参考彭成荣《航天器总体设计》8.2.2节
使用Matlab绘制卫星星下点轨迹
1.地球静止轨道卫星,倾角分别为0,30,90度。
clc; clear;
t = 0:1:6;
we = 360/24;
u = we*t;
i = 30;
fai = asind( sind(i)*sind(u) );
deltalmd = atand( cosd(i)*tand(u) );
if(i==90)
deltalmd(end) = 90;
end
lmd = deltalmd - we*t;
% use symetry to generate the other data
for j = 1:6
lmd(j+7) = -lmd(7-j);
fai(j+7) = fai(7-j);
end
for j = 1:12
lmd(j+13) = lmd(13-j);
fai(j+13) = -fai(13-j);
end
h = geoshow('landareas.shp', 'FaceColor', [1 1 1]);
grid on
hold on
plot(lmd, fai); title(['GEO¹ìµÀ£¬Çã½Çi=', num2str(i)])
2.回归轨道卫星,回归周期1天,倾角分别为60度,周期为4h。
clc; clear;
t = [0 1/3 1/2 2/3 4/5 1];
we = 360/24;
w = 180/2;
u = w*t;
i = 60;
fai = asind( sind(i)*sind(u) );
deltalmd = atand( cosd(i)*tand(u) );
lmd = deltalmd - we*t;
% use symetry to generate the other data
for j = 1:5
lmd(j+6) = lmd(6) + ( lmd(6) - lmd(6-j) );
fai(j+6) = fai(6-j);
end
for j = 1:10
if (lmd(11) + ( lmd(11) - lmd(11-j) )) > 180
lmd(j+11) = -180 + rem(lmd(11) + ( lmd(11) - lmd(11-j) ), 180);
else
lmd(j+11) = lmd(11) + ( lmd(11) - lmd(11-j) );
end
fai(j+11) = -fai(11-j);
end
cnt = 1;
for m = 1:5
for j = 1:21
if (lmd(j+21*(m-1)) + 60) > 180
lmd(j+21*m) = -180 + rem(lmd(j+21*(m-1)) + 60, 180);
record(m,cnt) = j; % record when tranverse from east to west
cnt = cnt + 1;
else
lmd(j+21*m) = lmd(j+21*(m-1)) + 60;
end
fai(j+21*m) = fai(j+21*(m-1));
end
cnt = 1;
end
load still
h = geoshow('landareas.shp', 'FaceColor', [1 1 1]);
grid on
hold on
plot(lmd1(2:20), fai1(2:20), 'b--'); % earth still
plot(lmd(1:6), fai(1:6), 'bo');
plot(lmd(21*6), fai(21*6), 'bo');
plot(lmd(1:13), fai(1:13)); plot(lmd(14:21), fai(14:21));
for m = 1:5
plot(lmd(21*m+1:record(m,1)+21*m-1), fai(21*m+1:record(m,1)+21*m-1)); plot(lmd(record(m,1)+21*m:21*(m+1)), fai(record(m,1)+21*m:21*(m+1)));
plot(lmd(21*m), fai(21*m), 'bo');
end
title(['ÐÇϵã¹ì¼££ºT=4h¹ìµÀ£¬Çã½Çi=', num2str(i)])
地球不转时的星下点
clc; clear; t = [0 1/3 1/2 2/3 4/5 1]; we = 360/24; w = 180/2; u = w*t; i = 60; fai = asind( sind(i)*sind(u) ); deltalmd = atand( cosd(i)*tand(u) ); lmd = deltalmd; % earth still
% use symetry to generate the other data for j = 1:5 lmd(j+6) = lmd(6) + ( lmd(6) - lmd(6-j) ); fai(j+6) = fai(6-j); end for j = 1:10 if (lmd(11) + ( lmd(11) - lmd(11-j) )) > 180 lmd(j+11) = -180 + rem(lmd(11) + ( lmd(11) - lmd(11-j) ), 180); else lmd(j+11) = lmd(11) + ( lmd(11) - lmd(11-j) ); end fai(j+11) = -fai(11-j); end for j = 1:21 if (lmd(j) + 180) > 180 lmd(j) = -180 + rem(lmd(j) + 180, 180); else lmd(j) = lmd(j) + 180; end fai(j) = fai(j); end lmd(11) = 0; lmd1 = lmd; fai1 = fai; save still lmd1 fai1 h = geoshow('landareas.shp', 'FaceColor', [1 1 1]); grid on hold on plot(lmd(2:20), fai(2:20)); % plot(lmd(1:13), fai(1:13)); plot(lmd(14:21), fai(14:21)); % for m = 1:5 % plot(lmd(21*m+1:record(m,1)+21*m-1), fai(21*m+1:record(m,1)+21*m-1)); plot(lmd(record(m,1)+21*m:21*(m+1)), fai(record(m,1)+21*m:21*(m+1))); % end title(['T=4h¹ìµÀ£¬Çã½Çi=', num2str(i)])
|
请发表评论