卫星星下点matlab程序

更新时间:2023-08-17 15:47:01 阅读量: 资格考试认证 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

这是做卫星通信的课程设计时涉及的卫星星下点的作图程序,matlab编写。

我们对卫星星下点的代码做了点修改,把地球自转也考虑进去了。

卫星星下点的运行轨迹如下:

卫星纬度050100150200

卫星经度250300350400

代码如下:(红色的为修改部分)

clc

close all

clear all

%% % % % % % % % % % % %

义 % % % % % % % % % % % % % % % % % % % % % %

PI = 3.1415926;

W_EARTH = 7.29e-5;% 地球自转速度(rad)

GGC = 3.986e5;% 地心引力常数

N_T =10;% 实验观测周期数,可延长观察时间

% 轨道六根数

a = 20000;% 轨道长半轴(Km)

e = 0.3;% 轨道偏心率

i = 30 * PI/180;% 轨道倾角(rad)

w = 70 * PI/180;% 轨道近地点幅角(rad)

RAAN = 10 * PI/180;% 升交点赤经

T = 2 * PI * sqrt((a^3) / GGC);

% % % % % 变量定

这是做卫星通信的课程设计时涉及的卫星星下点的作图程序,matlab编写。

% 轨道真近心角f(rad),由以下公式计算

Ts = 5;% 采样时间间隔(s)

t = [0:Ts:fix(N_T*T)];% 采样时间点

tp = 5400;

n = sqrt(GGC/a^3);% 卫星平运动速度(rad)

M = n * (t - tp);% 卫星平近点角(rad)

f = M + (2*e - e^3/4)*sin(M) + 1.25*e^2 * sin(2*M) +13/12 * e^3 * sin(3*M);% 轨道真近心角(rad)

%% % % % % % % % % % % % % % % % % 计算星下点轨迹 % % % % % % % % % % % % % % Rz_RAAN = [cos(RAAN) -sin(RAAN) 0 ; sin(RAAN) cos(RAAN) 0 ; 0 0 1];

Rz_w = [cos(w) -sin(w) 0 ; sin(w) cos(w) 0 ; 0 0 1];

Rx_i = [1 0 0 ; 0 cos(i) -sin(i) ; 0 sin(i) cos(i)];

R = a*(1-e^2)./(1+e*cos(f));% 卫星距地心的距离,考虑f离散值

r_sv = [R;R;R] .* [cos(f);sin(f);zeros(1,size(f,2))];% 卫星在轨道坐标系中的坐标

r_so = Rz_RAAN * Rx_i * Rz_w * r_sv;% 卫星在地心惯性坐标系中的坐标

x_so = r_so(1,:) ; y_so = r_so(2,:) ;z_so = r_so(3,:) ;% 卫星在地心惯性坐标系的分量

% 卫星纬度delta,大于零为北纬

delta = atan( z_so ./sqrt((x_so .^2+y_so .^2)) ) * 180/PI;

% 卫星经度alpha,大于180为西经

for m = 1:1:size(r_so,2)

if (r_so(1,m) < 0)

alpha(m) = 180 + atan(r_so(2,m)/r_so(1,m)) * 180/PI;

else

if (r_so(2,m)>0)

alpha(m) = atan(r_so(2,m)/r_so(1,m)) * 180/PI;

else

alpha(m) = 360 + atan(r_so(2,m)/r_so(1,m)) * 180/PI;

end

end

end

% 计算地心经度alpha1

alpha1 = rem((alpha - W_EARTH*t*180/PI + N_T*360),360);

plot(alpha1,delta,'.');grid; xlabel('卫星经度');ylabel('卫星纬度');

本文来源:https://www.bwwdw.com/article/6k8j.html

Top