matlab计算gps格式_卫星位置计算基础讲解

写在前面
本文旨在完善个人分类专栏"GNSS课程"的内容,并希望能帮助到有需要的读者。教材采用《GPS测量原理及应用 第3版》徐绍铨等著。如有不足之处,请各位读者批评指正。
更多请见:
卫星位置计算基础讲解_越来越废的SB的博客-博客blog..net

广播星历解读

头文件:导航文档中的前八行通常属于头文件部分,并包含一些基本信息如电离层相关参数、数据类型以及由于闰秒导致的时间增量等重要细节。这些内容主要用于计算UTC时间相关的历书参数等信息。
卫星的相关参数:从第9行开始的部分中每隔8行形成一个独立的数据块,并且每个数据块都遵循相同的格式。
每个这样的数据块的第一行为占位符区域(通常占据开头多出来的三位),随后占据连续19位的空间存储相关数据。
从而每个这样的独立区域都可以被视为一个由8行5列组成的表格结构。

第一列仅存于第一行中一个位置上其余位置均为空值。 第一行第二列之后依次记录以下关键参数:时钟时间(年月日时分秒)、卫星钟差a0、卫星钟数a1以及钟差变化率a2等信息。 第二行第二列之后包含数据龄期Crs卫星平均角速度差异值Delta_n以及参考时刻平近点角M0等重要指标。 第三行第二列之后包括轨道偏心率Cuc轨道倾角e以及平方根轨道长半轴sqrt(A)等参数信息。 第四行第二列之后记录星历参考时刻 toe升交点赤经 OMEGA近地点角距omega以及升交点赤经变化率OMEGA_DOT等要素信息。 本次计算仅需输入至第六行第二列中的IDOT即轨道倾角变化率这一参数即可完成后续计算过程直至全部完成所需参数的读取。
计算基本原理
(1)计算卫星运动的平均角速度

(2)计算信号发射时卫星的平近点角

(3)计算偏近点角 (4)计算真近点角

(5)计算升交距角 (6)计算摄动改正项



(7)确定经过摄动修正的近地点幅角、径向矢量以及轨道倾角。(8)求解该卫星在本质面坐标系内的位置信息。

(9)计算发射时刻升交点的经度 (10)计算卫星在地固坐标系下的坐标


源代码及计算结果
采用文件打包策略进行组织展示的方式下编写代码结构设计说明书中相关技术方案部分










总结
这里只是基本的卫星位置计算方法,并同时提供了获取RINEX文件的方法。尽管显得 somewhat rudimentary, 但仍然奏效。如有更好的建议或意见,请随时留言讨论。文中的编程语言是MATLAB。将来有需求的话会尝试用C++来编写。相关数据及代码已放在下面链接里。
卫星位置数据处理(附带示例文件及配套软件).zip_卫星位置计算工具-专业指导工具包-电子资源包下载

另外,采用MATLAB的Appdesigner,编写了一个UI,详见这个资源。
卫星位置计算器(实验材料).zip-专业指导资源-下载download..net

软件也会按需更新。
最后,希望这篇博文对你有帮助。
