ImageVerifierCode 换一换
格式:DOCX , 页数:13 ,大小:212.46KB ,
资源ID:2465266      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-2465266.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(作业报告卫星坐标计算.docx)为本站会员(b****1)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

作业报告卫星坐标计算.docx

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.15373039818E+03 卫星轨道长半轴的平方根t0e4.60800000000E+05 星历的参考时刻,从星期日零时开始量度,以秒计M0-2.14992476872E+00 参考时刻t0e的平近点角(弧度)e1.25958691351E-02 轨道偏心率-1.851372

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

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

5、,将其代入并展开后得5 源程序#include #include #include #include#includeconst 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,Cis,IDOT,i0,WMG,WMG0;/定义广播星历参数/广播星历参数导入void Input() ifstream f1(广播星历参数.txt);

6、 if(!f1) cerr广播星历参数.txt file not open!dn; f1a05; f1t0e; f1M0; f1e; f1w; f1Cuc; f1Cus; f1Crc; f1Crs; f1Cic; f1Cis; f1IDOT; f1i0; f1WMG; f1WMG0; 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=n

7、0+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: 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);/升交角距改正du dr=Crc*cos(2*fk)+Crs

8、*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; /()计算卫星空间直角坐标: Xk=xk*cos(Lt)-yk*cos(ik)*sin(Lt); Yk=x

9、k*sin(Lt)+yk*cos(ik)*cos(Lt); Zk=yk*sin(ik);void main() Input(); for(int i=0;ik;i+) double t=t0e+i*60; Compute(t,i); cout 历元/s 卫星号 X/m Y/m Z/m 卫地距离endl; for(i=0;ik;i+) cout.precision(11); coutt0e+i*60 7 Xi Yi Zi sqrt(Xi*Xi+Yi*Yi+Zi*Zi)endl; /输出结果到“卫星坐标计算结果.txt” ofstream outfile; outfile.open(卫星坐标计算结

10、果.txt); if(outfile.is_open () outfile 历元/s 卫星号 X/m Y/m Z/m 卫地距离endl; for(int i=0;ik;i+) outfile.precision(11); outfilet0e+i*60 7 Xi 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.8921650742

11、6.3504609207-13657027.02116128646.85816385596.4474609807-13777233.04616146894.38616262536.9534610407-13896508.54616165287.01616138256.7624611007-14014845.33316183815.20216012764.8664611607-14132235.35116202469.31815886070.3514612207-14248670.67316221239.65815758182.3944612807-14364143.50516240116.43

12、715629110.2674613407-14478646.18616259089.79615498863.3364614007-14592171.19116278149.79915367451.0574614607-14704711.12616297286.43915234882.9784615207-14816258.73916316489.63615101168.7384615807-14926806.91316335749.24214966318.0674616407-15036348.66816355055.04214830340.7834617007-15144877.166163

13、74396.75514693246.7954617607-15252385.71016393764.03614555046.0994618207-15358867.74216413146.47614415748.7814618807-15464316.85116432533.61014275365.0134619407-15568726.76516451914.91114133905.0534620007-15672091.35816471279.79713991379.2457 心得体会与建议 此次作业是本学期“GPS卫星导航定位技术与方法”课程的第一次编程实践作业。在学习了教材第三章“卫星

14、轨道运动及卫星坐标计算”之后,初步对卫星坐标计算有一定认识,担不是很深刻。开始此次作业时,又温习了一遍这个部分的内容,进一步理解勒表示卫星位置的一些参数和量,还有计算的过程和步骤,然后根据已知条件从GPS导航文件中提取出计算所需的广播星历计算参数,按照程序导入文件要求的相应格式输入到txt文本中,作为导入已知数据准备。 在编程的过程中,由于去年摄影测量课程的编程基础,感觉编写的代码还算得心应手,没有遇到什么特别大的困难。不过有些小地方出错,例如:1.忘记调用导入已知数据的子程序;2.还有计算过程中,求弧度值的反正切涉及的函数选择问题,一开始使用的是tan()函数,但是这个函数不能很好解决弧度区

15、间的问题,以至计算错误,后来改用了tan2()函数便解决这个问题;3.当解决了前两个问题,调用函数之后对比计算结果与教材中计算结果,发现差别很大,于是又找原因,在与同学的交流之后才发现原来是书上的地球自转角速度we的数量级写错了,不是12而是-5,改正之后再次调用,得到正确的计算结果,总算完成了作业的主要任务。 完成此次作业的过程中,不仅加深了对该部分内人的理解和记忆,也提供机会使我们对c+编程更为熟悉。这次作业最大的收获,不只是完成了作业任务,从中我也体会了不少,自己以后应该更加耐心,出现错误不要紧,要学会细心找原因然后解决问题,同时,多和老师同学交流一定是有益的,多学习别人的思想的优处,多反思自己的缺陷。 也感谢老师让我们又锻炼了一次。 谢谢老师的审阅!辛苦了!O(_)O

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2