作业报告--卫星坐标计算_第1页
作业报告--卫星坐标计算_第2页
作业报告--卫星坐标计算_第3页
作业报告--卫星坐标计算_第4页
作业报告--卫星坐标计算_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、GPS卫星导航定位技术与方法作业报告之卫星坐标计算1 作业任务 -32 作业思想 -33 作业条件及数据-34 作业过程 -45 源程序 - 56 计算结果 - 97心得体会与建议- 91 作业任务根据教材所给广播星历参数,编程计算UTC2004年1月30日8点0分00秒20分00秒,每隔1分钟的卫星号为7的卫星坐标。2作业思想根据教材提供广播星历参数,按照卫星坐标计算步骤一步一步求解表示卫星位置的量,最后求出卫星在地固坐标系中的空间直角坐标。根据历元间隔,计算出共21个历元的卫星坐标。此次作业的已知条件及计算步骤均为教材提供且思路清晰,简明易懂,只要在编程过程中注意个已知量、中间量和待求量的

2、表示及数据对应正确,涉及角度的计算时小心避免错误即可。3作业条件及数据由GPS卫星导航文件(表3.1)提取出7号卫星的轨道参数及其摄动改正项表3.1提取及整理后的广播星历参数:星历参数参数值参数含义n4.85305928777E-09 给定的星历参数计算值的平均速度no之改正数(弧度)a5+03 卫星轨道长半轴的平方根t0e4.60800000000E+05 星历的参考时刻,从星期日零时开始量度,以秒计M0-2+00 参考时刻t0e的平近点角(弧度)e1.25958691351E-02 轨道偏心率-1.85137234909E+00 近地点角

3、距(弧度)Cuc2.75485217571E-06 升交点角距的余弦调和改正项的振幅(弧度)Cus9.03755426407E-06 升交点角距的正弦调和改正项的振幅(弧度)Crc1.91875000000E+02 轨道半径的余弦调和改正项的振幅(弧度)Crs5.37812500000E+01 轨道半径的正弦调和改正项的振幅(弧度)Cic2.06753611565E-07 轨道倾角的余弦调和改正项的振幅(弧度)Cis-7.26431608200E-08 轨道倾角的正弦调和改正项的振幅(弧度)IDOT-1.31434044204E-10 轨道倾角的变率i09.37690094716E-01 参考

4、时刻的轨道倾角(弧度)-7.91890109042E-09 升交点赤经的变率(弧度/s)01.93198315097E+00 GPS周开始时刻的升交点经度(弧度)4作业过程 (10)升交点经度:t =0 +(-e)(t - t0e)-e t0e式中:e为地球自转角速度,e =7.2921151467×10-5rad/s;为升交点赤经变化率,0为GPS周开始时刻的升交点经度,和0均由星历文件给出;t0为参考时刻,一般取t0 = 0,为一周的开始(星期日的子夜);t0e为广播星历的参考历元时刻,从t0开始起算;(11)卫星在地固坐标系中的空间直角坐标为:式中:,为旋转矩阵,将其代入并展开

5、后得5 源程序#include <iomanip.h>#include <stdlib.h>#include <math.h>#include<fstream.h>#include<iostream.h>const int k=20;/历元数double Xk,Yk,Zk;/计算所得卫星坐标const double GM=3986004.418E8;/地球引力常数const double we=7.2921151467E-5;/地球自转角速度double dn,a05,t0e,M0,e,w,Cuc,Cus,Crc,Crs,Cic,Ci

6、s,IDOT,i0,WMG,WMG0;/定义广播星历参数/广播星历参数导入void Input() ifstream f1("广播星历参数.txt");if(!f1)cerr<<"广播星历参数.txt file not open!"<<endl;exit(1);f1>>dn;f1>>a05;f1>>t0e;f1>>M0;f1>>e;f1>>w;f1>>Cuc;f1>>Cus;f1>>Crc;f1>>Crs;f1&

7、gt;>Cic;f1>>Cis;f1>>IDOT;f1>>i0;f1>>WMG;f1>>WMG0;f1.close();/卫星坐标计算void Compute(double t,int k)double n0,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:E

8、0=Mk;doEk=Mk+e*sin(E0);E0=Ek;while(Mk+e*sin(E0)-E0>=1e-8);/()计算真近点角Vk:double v1=sqrt(1-e*e)*sin(Ek);double v2=cos(Ek)-e;Vk=atan2(v1,v2);/()计算升交角距fk:fk=Vk+w;/()摄动改正:du=Cuc*cos(2*fk)+Cus*sin(2*fk);/升交角距改正dudr=Crc*cos(2*fk)+Crs*sin(2*fk);/轨道向径改正drdi=Cic*cos(2*fk)+Cis*sin(2*fk);/轨道倾角改正diuk=fk+du;/改正后

9、的升交角距ukrk=a05*a05*(1-e*cos(Ek)+dr;/改正后的轨道向径rkik=i0+di+IDOT*tk;/改正后的轨道倾角ik/()计算卫星在升交点轨道直角坐标系的坐标:xk=rk*cos(uk);yk=rk*sin(uk);/()计算升交点精度:Lt=WMG0+(WMG-we)*(t-t0e)-we*t0e;/()计算卫星空间直角坐标:Xk=xk*cos(Lt)-yk*cos(ik)*sin(Lt);Yk=xk*sin(Lt)+yk*cos(ik)*cos(Lt);Zk=yk*sin(ik);void main()Input();for(int i=0;i<k;i+

10、)double t=t0e+i*60;Compute(t,i);cout<<" 历元/s 卫星号 X/m Y/m Z/m 卫地距离"<<endl;for(i=0;i<k;i+)cout.precision(11);cout<<t0e+i*60<<" 7 "<<Xi<<" "<<Yi<<" "<<Zi<<" "<<sqrt(Xi*Xi+Yi*Yi+Zi*Zi)&

11、lt;<endl;/输出结果到“卫星坐标计算结果.txt” ofstream outfile;outfile.open("卫星坐标计算结果.txt");if(outfile.is_open () outfile<<" 历元/s 卫星号 X/m Y/m Z/m 卫地距离"<<endl;for(int i=0;i<k;i+) outfile.precision(11); outfile<<t0e+i*60<<" 7 "<<Xi<<" "

12、<<Yi<<" "<<Zi<<" "<<sqrt(Xi*Xi+Yi*Yi+Zi*Zi)<<endl; outfile.close();6 计算结果表6.1卫星坐标计算结果历元/s卫星号X/mY/mZ/m4608007-13413856.78016092624.86716628017.8594608607-13535898.78416110553.89216507426.3504609207-13657027.02116128646.85816385596.4474609807-137

13、77233.04616146894.38616262536.9534610407-13896508.54616165287.01616138256.7624611007-14014845.33316183815.20216012764.8664611607-14132235.35116202469.31815886070.3514612207-14248670.67316221239.65815758182.3944612807-14364143.50516240116.43715629110.2674613407-1447864679615498863.336461

14、4007-14592171.19116278149.79915367451.0574614607-14704711.12616297286.43915234882.9784615207-14816258.73916316489.63615101168.7384615807-14926806.91316335749.24214966318.0674616407-15036348.66816355055.04214830340.7834617007-15144877.16616374396.75514693246.7954617607-15252385.71016393764.0361455504

15、6.0994618207-15358867.74216413146.47614415748.7814618807-15464316.85116432533.61014275365.0134619407-15568726.76516451914.91114133905.0534620007-15672091.35816471279.79713991379.2457 心得体会与建议 此次作业是本学期“GPS卫星导航定位技术与方法”课程的第一次编程实践作业。在学习了教材第三章“卫星轨道运动及卫星坐标计算”之后,初步对卫星坐标计算有一定认识,担不是很深刻。开始此次作业时,又温习了一遍这个部分的内容,进

16、一步理解勒表示卫星位置的一些参数和量,还有计算的过程和步骤,然后根据已知条件从GPS导航文件中提取出计算所需的广播星历计算参数,按照程序导入文件要求的相应格式输入到txt文本中,作为导入已知数据准备。 在编程的过程中,由于去年摄影测量课程的编程基础,感觉编写的代码还算得心应手,没有遇到什么特别大的困难。不过有些小地方出错,例如:1.忘记调用导入已知数据的子程序;2.还有计算过程中,求弧度值的反正切涉及的函数选择问题,一开始使用的是tan()函数,但是这个函数不能很好解决弧度区间的问题,以至计算错误,后来改用了tan2()函数便解决这个问题;3.当解决了前两个问题,调用函数之后对比计算结果与教材中计算结果,发现差别很大,于是又找原因,在与同学的交流之

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论