作业卫星坐标计算.docx
《作业卫星坐标计算.docx》由会员分享,可在线阅读,更多相关《作业卫星坐标计算.docx(12页珍藏版)》请在冰豆网上搜索。
作业卫星坐标计算
GPS卫星导航定位技术与方法作业报告之
卫星坐标计算
1作业任务------------------------------------------------------------------------------------3
2作业思想---------------------------------------------------------------------------------------3
3作业条件及数据--------------------------------------------------------------------3
4作业过程---------------------------------------------------------------------------4
5源程序-----------------------------------------------------------------------------5
6计算结果---------------------------------------------------------------------------9
7心得体会与建议-----------------------------------------------------------------------------9
1作业任务
根据教材所给广播星历参数,编程计算UTC2004年1月30日8点0分00秒—20分00秒,每隔1分钟的卫星号为7的卫星坐标。
2作业思想
根据教材提供广播星历参数,按照卫星坐标计算步骤一步一步求解表示卫星位置的量,最后求出卫星在地固坐标系中的空间直角坐标。
根据历元间隔,计算出共21个历元的卫星坐标。
此次作业的已知条件及计算步骤均为教材提供且思路清晰,简明易懂,只要在编程过程中注意个已知量、中间量和待求量的表示及数据对应正确,涉及角度的计算时小心避免错误即可。
3作业条件及数据
由GPS卫星导航文件(表3.1)提取出7号卫星的轨道参数及其摄动改正项
表3.1
提取及整理后的广播星历参数:
星历参数
参数值
参数含义
Δn
4.85305928777E-09
给定的星历参数计算值的平均速度no之改正数(弧度)
√a
5.15373039818E+03
卫星轨道长半轴的平方根
t0e
4.60800000000E+05
星历的参考时刻,从星期日零时开始量度,以秒计
M0
-2.14992476872E+00
参考时刻t0e的平近点角(弧度)
e
1.25958691351E-02
轨道偏心率
ω
-1.85137234909E+00
近地点角距(弧度)
Cuc
2.75485217571E-06
升交点角距的余弦调和改正项的振幅(弧度)
Cus
9.03755426407E-06
升交点角距的正弦调和改正项的振幅(弧度)
Crc
1.91875000000E+02
轨道半径的余弦调和改正项的振幅(弧度)
Crs
5.37812500000E+01
轨道半径的正弦调和改正项的振幅(弧度)
Cic
2.06753611565E-07
轨道倾角的余弦调和改正项的振幅(弧度)
Cis
-7.26431608200E-08
轨道倾角的正弦调和改正项的振幅(弧度)
IDOT
-1.31434044204E-10
轨道倾角的变率
i0
9.37690094716E-01
参考时刻的轨道倾角(弧度)
Ω
-7.91890109042E-09
升交点赤经的变率(弧度/s)
Ω0
1.93198315097E+00
GPS周开始时刻的升交点经度(弧度)
4作业过程
(10)升交点经度:
λt=Ω0+(Ω-ωe)(t-t0e)-ωet0e
式中:
ωe为地球自转角速度,ωe=7.2921151467×10-5rad/s;Ω为升交点赤经变化率,Ω0为GPS周开始时刻的升交点经度,Ω和Ω0均由星历文件给出;t0为参考时刻,一般取t0=0,为一周的开始(星期日的子夜);t0e为广播星历的参考历元时刻,从t0开始起算;
(11)卫星在地固坐标系中的空间直角坐标为:
式中:
,为旋转矩阵,将其代入并展开后得
5源程序
#include
#include
#include
#include
#include
constintk=20;//历元数
doubleX[k],Y[k],Z[k];//计算所得卫星坐标
constdoubleGM=3986004.418E8;//地球引力常数
constdoublewe=7.2921151467E-5;//地球自转角速度
doubledn,a05,t0e,M0,e,w,Cuc,Cus,Crc,Crs,Cic,Cis,IDOT,i0,WMG,WMG0;//定义广播星历参数
//广播星历参数导入
voidInput()
{
ifstreamf1("广播星历参数.txt");
if(!
f1)
{
cerr<<"广播星历参数.txtfilenotopen!
"<exit
(1);
}
f1>>dn;
f1>>a05;
f1>>t0e;
f1>>M0;
f1>>e;
f1>>w;
f1>>Cuc;
f1>>Cus;
f1>>Crc;
f1>>Crs;
f1>>Cic;
f1>>Cis;
f1>>IDOT;
f1>>i0;
f1>>WMG;
f1>>WMG0;
f1.close();
}
//卫星坐标计算
voidCompute(doublet,intk)
{
doublen0,n,tk,Mk,E0,Ek,Vk,fk,du,dr,di,uk,rk,ik,xk,yk,Lt;//定义卫星坐标计算过程中间量
//()计算平均角速度n:
n0=sqrt(GM/pow(a05,6));
n=n0+dn;
//()计算规化时刻tk:
tk=t-t0e;
//()计算平近点角Mk:
Mk=M0+n*tk;
//()迭代计算偏近点角Ek:
E0=Mk;
do
{
Ek=Mk+e*sin(E0);
E0=Ek;
}while(Mk+e*sin(E0)-E0>=1e-8);
//()计算真近点角Vk:
doublev1=sqrt(1-e*e)*sin(Ek);
doublev2=cos(Ek)-e;
Vk=atan2(v1,v2);
//()计算升交角距fk:
fk=Vk+w;
//()摄动改正:
du=Cuc*cos(2*fk)+Cus*sin(2*fk);//升交角距改正du
dr=Crc*cos(2*fk)+Crs*sin(2*fk);//轨道向径改正dr
di=Cic*cos(2*fk)+Cis*sin(2*fk);//轨道倾角改正di
uk=fk+du;//改正后的升交角距uk
rk=a05*a05*(1-e*cos(Ek))+dr;//改正后的轨道向径rk
ik=i0+di+IDOT*tk;//改正后的轨道倾角ik
//()计算卫星在升交点轨道直角坐标系的坐标:
xk=rk*cos(uk);
yk=rk*sin(uk);
//()计算升交点精度:
Lt=WMG0+(WMG-we)*(t-t0e)-we*t0e;
//()计算卫星空间直角坐标:
X[k]=xk*cos(Lt)-yk*cos(ik)*sin(Lt);
Y[k]=xk*sin(Lt)+yk*cos(ik)*cos(Lt);
Z[k]=yk*sin(ik);
}
voidmain()
{
Input();
for(inti=0;i{
doublet=t0e+i*60;
Compute(t,i);
}
cout<<"历元/s卫星号X/mY/mZ/m卫地距离"<for(i=0;i{
cout.precision(11);
cout<}
//输出结果到“卫星坐标计算结果.txt”
ofstreamoutfile;
outfile.open("卫星坐标计算结果.txt");
if(outfile.is_open())
{
outfile<<"历元/s卫星号X/mY/mZ/m卫地距离"<for(inti=0;i{
outfile.precision(11);
outfile<}
}
outfile.close();
}
6计算结果
表6.1卫星坐标计算结果
历元/s
卫星号
X/m
Y/m
Z/m
460800
7
-13413856.780
16092624.867
16628017.859
460860
7
-13535898.784
16110553.892
16507426.350
460920
7
-13657027.021
16128646.858
16385596.447
460980
7
-13777233.046
16146894.386
16262536.953
461040
7
-13896508.546
16165287.016
16138256.762
461100
7
-14014845.333
16183815.202
16012764.866
461160
7
-14132235.351
16202469.318
15886070.351
461220
7
-14248670.673
16221239.658
15758182.394
461280
7
-14364143.505
16240116.437
15629110.267
461340
7
-14478646.186
16259089.796
15498863.336
461400
7
-14592171.191
16278149.799
15367451.057
461460
7
-14704711.126
16297286.439
15234882.978
461520
7
-14816258.739
16316489.636
15101168.738
461580
7
-14926806.913
16335749.242
14966318.067
461640
7
-15036348.668