目录

  • 写在前面
  • 广播星历解读
  • 计算基本原理
  • 源代码及计算结果
  • 总结

写在前面

本篇博文用于充实个人分类专栏“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,详见这个资源。软件也会按需更新。
最后,希望这篇博文对你有帮助。

卫星位置计算基础讲解相关推荐

  1. RTKLIB学习总结(六)导航电文、卫星位置计算

    文章目录 一.导航电文 1.GNSS卫星信号的组成 2.导航电文的编排 3.遥测字(TLW) 4.交接字(HOW) 5.第一数据块 6.第二数据块 7.第三数据块 二.卫星钟差钟漂改正 1.时钟校正参 ...

  2. 卫星位置计算小程序(C#版)

    一.最终画面 二.程序代码 using System; using System.Collections.Generic; using System.ComponentModel; using Sys ...

  3. 【GPS卫星位置计算】

    GPS卫星位置计算 写在前面 准备工作 星历参数 计算过程 写在前面 GPS导航定位中需要用到卫星位置信息,本文档将对卫星位置计算进行详细介绍. 准备工作 星历文件 下载地址:武汉大学IGS数据中心 ...

  4. 卫星位置计算的c语言,C语言-详细计算GPS卫星位置.doc

    C语言-详细计算GPS卫星位置.doc C语言计算GPS卫星位置1 概述在用GPS信号进行导航定位以及制订观测计划时,都必须已知GPS卫星在空间的瞬间位置.卫星位置的计算是根据卫星电文所提供的轨道参数 ...

  5. 【Java】读取单颗北斗卫星导航星历文件进行卫星位置计算(RENIX3.04)

    该文章是[python]读取卫星星历(RENIX 3.04)进行卫星位置的计算(北斗卫星专题)​​​​​​的 一个其他语言实现的一个副本,其中可以计算出北斗GEO卫星的位置,进行检校. 其中文件的读取 ...

  6. GPS卫星位置计算(卫星位置计算小程序)java版

    目录 一.准备以及结果图 二.数据 三.计算 四.全部代码 附: 一.准备以及结果图 软件:eclipse(2020-6版本)带有WindowBuilder插件 编程语言:Java 结果图: 二.数据 ...

  7. 卫星位置计算的c语言,gps卫星位置的计算

    c语言的,还好啦,一般般的 #include #include #include #include #include #definebPI #definebGM84 #definebOMEGAE843 ...

  8. 【python】读取卫星星历(RENIX 3.04)进行卫星位置的计算(北斗卫星专题)

    最近的卫星导航数据处理,老师让我们进行卫星位置的计算,从而使用绘图工具进行对卫星星下点的轨迹进行绘图,这里首先的步骤是读取卫星星历数据,计算卫星位置. 这次的课程目标主要是针对北斗卫星,进行对卫星位置 ...

  9. 基于MATLAB计算卫星位置

    matlab卫星定位 认识星历文件观测文件及位置计算 星历文件 观测文件 matlab面对对象卫星位置计算 卫星高度角方位角计算(待更新...) 认识星历文件观测文件及位置计算 初学者,欢迎指正批评. ...

最新文章

  1. C#后台调用前台javascript的五种方法
  2. Java中父类的私有数据和静态数据在内存中是如何存储的?
  3. WCF技术剖析之二十七: 如何将一个服务发布成WSDL[基于HTTP-GET的实现](提供模拟程序)...
  4. mysql树节点路径,关于mysql:从使用物化路径编码树的表中选择,按深度优先排序(无递归/ ltree)...
  5. HTML5——Web Workers
  6. 【clickhouse】clickhouse 一些博客链接
  7. Django Ajax发送请求使用方法
  8. ros先订阅后发布 无法收到消息的解决办法
  9. 个人微信api接口调用-转账发红包
  10. 【JAVA】数据结构——二叉树 例题练习及代码详解
  11. vue的事件修饰符之.prevent
  12. 为什么红黑树查询快_面试被问“红黑树”,我一脸懵逼…
  13. Ubuntu常用软件合集
  14. (转载)神级代码编辑器 Sublime Text 全程指南
  15. 计算机基础(一):二进制详解
  16. 海康威视2022 校招/社招/实习 内推WHM8BQ
  17. 加减乘除在java中表示_java加减乘除是什么类
  18. Redis-常用数据结构
  19. ArcEngine——使用GP工具导出数据
  20. python Logger 高级教程

热门文章

  1. 高考数学题目:导数及其简单应用
  2. 发布支持VR的Web3D内容
  3. 使用tkinter开发GUI程序4 -- tkinter常见控件的特征属性(第二部分)
  4. 基于Vue2使用Vuex3
  5. idea的Terminal的git提示密码,修改git配置文件配置
  6. Nooploop空循环 TOFSense-F 高刷新频率 激光测距传感器 模块 红外测距测高
  7. 行业轮动的黄金律:日内动量与隔夜反转
  8. 小记一次海量数据实时查询域名库设计(下)
  9. 关于学习开展微信公众号前期推广
  10. 基于JAVA计算机在线学习管理系统-计算机毕业设计源码+系统+mysql数据库+lw文档+部署