西南交通大学
《卫星坐标计算实验》
实验报告
专业:
班级:
姓名:
学号:
成绩:
2017年3月20日
一、实验步骤:
1、将星历文件中需要的数据作为矩阵导入MA TLAB 中的变量。
2、编写计算程序代码
1)计算平均角速度0n :
03GM n a
=
2)改正平角速度n : 0n n n =+∆
3)计算平近点角t M :
0()t e M M n t t =+⨯-
4)通过迭代计算,计算偏近点角t E :
sin t t t E M e E =+
5)计算真近点角ν:
21sin =atan cos t t e E E e
ν-- 6)计算升交距角0u :
0u νω=+
7)计算卫星轨道摄动项改正数:
2cos sin cos sin cos sin u u Cuc Cus r Crc Crs i Cic Cis ϕϕϕ
ϕϕ
ϕϕ
=⨯∆=+∆=+∆=+
8)计算改正后的真近点角ν: 0t u u u =+∆
9)计算改正后的向径t r :
0t r r r =+∆
10)计算改正后的倾角t i :
0()t e i i i i t t =+∆+⨯-
11)计算轨道平面内的坐标:
cos sin 0t t t t t
t t x r u y r u z ⎡⎤⎡⎤⎢⎥⎢⎥=⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦
12)计算观测瞬间升交点的经度t l :
0()t e e e
l l t t t ω=+Ω++ 13)计算旋转矩阵:
1000cos()sin()0sin()cos()x t t t t R i i i i ⎡⎤
⎢⎥=-⎢⎥⎢⎥⎣⎦ cos()sin()0sin()cos()
000
1t t z
t t
l l R l l -⎡⎤⎢⎥=⎢⎥⎢⎥⎣⎦
14)卫星坐标:
t z x t t X x Y R R y Z z ⎡⎤⎡⎤
⎢⎥⎢
⎥
=⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦
15)计算钟差:
2012()()e e t a a t t a t t ∆=+⨯-+⨯-
二、实现代码:
function pos=SPOS(br,dt)
GM=3.986005e+14;
we=7.2921151467e-5;
%a0 a1 a2
a0=br(1,2);
a1=br(1,3);
a2=br(1,4);
% IODE Crs dn M0
Crs=br(2,2);
dn=br(2,3);
M0=br(2,4);
% Cuc e Cus sqA
Cuc=br(3,1);
e=br(3,2);
Cus=br(3,3);
sqA=br(3,4);
% toe Cic OM0 Cis
toe =br(4,1);
Cic =br(4,2);
OM0 =br(4,3);
Cis =br(4,4);
% i0 Crc w DOM
i0 =br(5,1);
Crc =br(5,2);
w =br(5,3);
DOM =br(5,4);
% Di week
Di=br(6,1);
n0=sqrt(GM)/sqA^3;
n=n0+dn;
Mk=M0+n*dt;
Ek=Mk;Te=inf;
while abs(Te-Ek)>1e-14
Te=Ek;
Ek=Mk+e*sin(Ek);
end
xx=cos(Ek)-e;yy=sqrt(1-e*e)*sin(Ek);
v=atan2(yy,xx);
u=v+w;
du=Cuc*cos(2*u)+Cus*sin(2*u);
dr=Crc*cos(2*u)+Crs*sin(2*u);
di=Cic*cos(2*u)+Cis*sin(2*u);
uk=u+du;
rk=sqA*sqA*(1-e*cos(Ek))+dr;
ik=i0+di+Di*dt;
X=[rk*cos(uk);rk*sin(uk);0];
Rx=[1 0 0;0 cos(ik) -sin(ik);0 sin(ik) cos(ik)]; lt=OM0+(DOM-we)*(toe+dt)-DOM*toe;
Rz=[cos(lt) -sin(lt) 0;sin(lt) cos(lt) 0;0 0 1];
%计算钟差
ddt=a0+a1*(dt-toe)+a2*(dt-toe)^2;
disp(ddt);
pos=Rz*Rx*X;
end
三、实验结果:。