卫星位置计算基础讲解
目录
写在前面
本篇博文用于充实个人分类专栏“GNSS课程”,同时希望能够对有需要的朋友有所帮助。
教材采用《GPS测量原理及应用 第3版》徐绍铨等。
另有疏漏之处,还请评论指出。
广播星历解读
头文件:导航文件的前八行一般为头文件部分,包括文件的一些基本信息,有电离层参数,数据类型,跳秒引起的时间增量,用来计算UTC时间的历书参数等。
卫星的相关参数:导航文件的第9行起,每8行为一个数据块,每一块具有相同的格式。每块的第一行在开头多出来的三位用来存放卫星号PRN。紧接着每19位存放一个数据。因此可将每个数据块视为一个8行5列的表格。
第一列只在第一行存放PRN,后面全空。
第一行第二列往后依次是toc(时钟时间,对应年月日时分秒)、a0(卫星钟差)、a1(卫星钟数)、a2(卫星钟数变化率)。
第二行第二列往后依次是IODE(数据龄期)、Crs、Delta_n(由精密星历计算得到的卫星平均角速度与按给定参数计算所得的平均角度速度之差)、M0(参考时刻的平近点角)。
第三行第二列往后依次是Cuc、e(轨道偏心率)、Cus、sqrt(A)(轨道长半轴的平方根)。
第四行第二列往后依次是toe(星历参考时刻)、Cic、OMEGA(参考时刻的升交点赤经)、Cis。
第五行第二列往后依次是i0(参考时刻的轨道倾角)、Crc、omega(近地点角距)、OMEGA_DOT(升交点赤经变化率)。
本次计算只取到第六行第二列IDOT(轨道倾角变化率)。
至此,本次计算所需的参数就全部读入。
计算基本原理
(1)计算卫星运动的平均角速度
(2)计算信号发射时卫星的平近点角
(3)计算偏近点角
(4)计算真近点角
(5)计算升交距角
(6)计算摄动改正项
(7)计算摄动改正后的升交距角、卫星矢径和轨道倾角
(8)计算卫星在轨道面坐标系中的坐标
(9)计算发射时刻升交点的经度
(10)计算卫星在地固坐标系下的坐标
源代码及计算结果
代码以文件夹打包的形式展示。代码主体有三个部分。主要的部分为卫星位置计算的函数代码comsatpos.m。该函数实现了,通过传入16参数,观测时间对应的GPS周内秒,toc对应的GPS周内秒,a0,a1,a2即可解算出卫星在地固坐标系中的位置坐标。实际操作时对函数readatandcomp.m进行相应的参数输入即可。readatandcomp.m分两层实现了comsatpos.m函数参数的自动录入。readatandcomp.m先筛选出与用户想要的卫星号相匹配的数据块,再从中选择与用户观测时间相差不到一小时的数据块,用于函数comsatpos.m的计算。此过程会产生n_selected.txt文件,用户可自行查看。再调用函数comsatpos.m,实现卫星位置的计算。还需要注意的是,readatandcomp.m函数要求用户事先去除卫星导航文件中的头部分,使卫星号PRN顶行,数据呈现规律性,并在readatandcomp.m函数中正确读入处理过的文件。
总结
这里只是最基础的卫星位置计算方法,并提供了一种提取RINEX文件的方法,虽然略显笨拙,但行之有效,如果有更好的文件读取方法,欢迎评论区交流。
文中采用的编程语言是MATLAB,将来有需求的话会尝试用C++来编写。已经把所有的实验数据和相关程序放在链接资源里了,需要请自取。
另外,采用MATLAB的Appdesigner,编写了一个UI,详见这个资源。软件也会按需更新。
最后,希望这篇博文对你有帮助。
- VUE2.0 全套 demo 讲解 基础3(计算属性)
- 网络基础 ip地址的概念和掩码计算(全面讲解)
- 云计算教程学习入门视频课件:云计算基础服务组件讲解
- VUE2.0 全套demo讲解 基础3(计算属性)
- Java实现对某一时刻GPS中圆轨道卫星的空间位置计算
- MATLAB计算卫星瞬时位置和瞬时速度
- cocos2d-x 基础讲解1==> 锚点和位置
- 分享卫星位置速度和轨道计算 MATLAB
- 计算GLONASS卫星位置积分时要注意的地方
- 程序员必须知道的10大基础实用算法及其讲解
- Linux-C基础知识学习:C语言作业-输入某个学生的信息(姓名,年龄,5门功课成绩),计算平均成绩并输出。(待完善)
- javascript基础:注释、代码位置、编写规则
- 计算机基础-常见的DOS命令讲解
- java基础复习-计算字符串中字母出现的次数
- OpenStack和云计算基础
- find命令基础讲解
- JSON 基础语法讲解,以及操作
- .NET4.0并行计算技术基础(11) 推荐
- 程序员必须知道的10大基础实用算法及其讲解
- 各种位置和高度计算:.position()、.offset()、.outerHeight()、.scrollTop、.scrollHeight、.clientHeight