Advertisement

MATLAB计算卫星瞬时位置和瞬时速度

阅读量:

该文本描述了一种计算卫星瞬时位置和速度的方法,涉及多个参数和步骤。首先,通过调整时间tk和计算角速度n,确定卫星的运动状态。接着,通过计算平近点角Mk、偏近点角Ek和升交点角距wk等,得到卫星的轨道参数。最后,通过一系列计算,得出卫星的瞬时位置(xk, yk, zk)和速度分量(Xk, Yk, Zk)。整个过程详细描述了卫星轨道动力学模型的求解过程。

clc
clear
A=[ 244800 5153.65531 0.005912038265 0.984848407943
1.038062244 -1.717457876 -1.064739758 4.249105564e-9
7.422851197e-51 -8.151768125e-9 3.054738045e-7 2.237036824e-6
350.53125 2.53125 -8.381903172e-8 8.940696716e-8];
t=239050.7223;
GM=3.986005e+14;
tk=t-A(1,1); %规划时间
while(tk>302400 || tk<-302400)
if tk>302100
tk=tk-604800;
else
tk=tk+604800;
end
end
n0=sqrt(GM/(A(1,2)^6));
n=n0+A(2,4); %卫星平均角速度
Mk=A(2,3)+ntk; %卫星平近点角
while(Mk<0 || Mk>2
pi)
if Mk<0
Mk=Mk+2pi;
else
Mk=Mk-2
pi;
end
end
Ek=Mk;
for i=1:3 %卫星偏近点角
Ek=Mk+A(1,3)*sin(Ek);
end
% cosv=(cos(Ek)-A(1,3))/(1-A(1,3)*cos(Ek));
% sinv=(sqrt(1-A(1,3)^2)*sin(Ek))/(1-A(1,3)*cos(Ek));
vk=atan(sqrt(1-A(1,3)^2)sin(Ek)/(cos(Ek)-A(1,3))); %卫星真近点角
if sin(Ek)>0 && (cos(Ek)-A(1,3))<0
vk=vk+pi;
elseif sin(Ek)<0 && (cos(Ek)-A(1,3))<0
vk=vk-pi;
end
w=vk+A(2,2); %卫星升交点角距
uuk=A(3,4)sin(2w)+A(3,3)cos(2w); %摄动校正项
rrk=A(4,2)sin(2w)+A(4,1)cos(2w);
iik=A(4,4)sin(2w)+A(4,3)cos(2w);
uk=w+uuk; %校正后的升交点角距,卫星矢径长度,轨道倾角
rk=(A(1,2)^2)
(1-A(1,3)cos(Ek))+rrk;
ik=A(1,4)+A(3,1)tk+iik;
xxk=rk
cos(uk); %轨道平面的位置
yyk=rk
sin(uk);
wk=A(2,1)+(A(3,2)-7.2921151467e-5)*tk-A(1,1)7.2921151467e-5; %升交点赤经
while (wk<0 || wk>2
pi)

if wk<0
wk=wk+2pi;
else
wk=wk-2
pi;
end

end

disp('实时位置信息:')
x坐标由xxk乘以cos(wk)减去yyk乘以sin(ik)乘以sin(wk)计算得出 %WGS-84
y坐标由xxk乘以sin(wk)加上yyk乘以cos(ik)乘以cos(wk)计算得出
z坐标由yyk乘以sin(ik)计算得出

%计算瞬时速度
设平近点角为mk,其值为n。
计算偏近点角ek,公式为ek = mk / (1 - A(1,3) * cos(Ek))。
计算升交点角距Wk,公式为Wk = sqrt(1 - A(1,3)^2) * ek / (1 - A(1,3) * cos(Ek))。
计算摄动校正项Uuk,公式为Uuk = 2 * Wk * (A(3,4) * cos(2w) - A(3,3) * sin(2w))。
计算Rrk,公式为Rrk = 2 * Wk * (A(4,2) * cos(2w) - A(4,1) * sin(2w))。
计算Iik,公式为Iik = 2 * Wk * (A(4,4) * cos(2w) - A(4,3) * sin(2w))。
计算校正后的Uk,公式为Uk = Wk + Uuk。
计算Rk,公式为Rk = (A(1,2)^2) * A(1,3) * ek * sin(Ek) + Rrk。
计算Ik,公式为Ik = A(3,1) + Iik。
计算升交点赤经WK,公式为WK = A(3,2) - 7.2921151467e-5。

while (w_k < 0 || w_k > 2π)
%
if w_k < 0
w_k = w_k + 2π;
else
w_k = w_k - 2π;
end
%
% end
%
end
x_k = R_k \cos(u_k) - r_k U_k \sin(u_k);
y_k = R_k \sin(u_k) + r_k U_k \cos(u_k);

计算卫星瞬时速度:
Xk = -yk * WK - (Yyk * cos(ik) - zk * Ik) * sin(wk) + Xxk * cos(wk)
Yk = xk * WK + (Yyk * cos(ik) - zk * Ik) * cos(wk) + Xxk * sin(wk)
Zk = Yyk * sin(ik) + yyk * Ik * cos(ik)

全部评论 (0)

还没有任何评论哟~