伪距单点定位基础讲解

目录

  • 写在前面
  • 文件解读
    • 观测(o)文件识读
    • 气象(m)文件识读
    • 广播星历(n)文件识读
  • 计算基本原理
    • 选择一个历元中的某个卫星
    • 计算站星近似几何距离
    • 误差改正
    • 迭代求解测站位置
    • 最小二乘求解及迭代终止条件
  • 源代码及计算结果
    • o文件读取函数
    • m文件读取函数
    • 计算用的脚本
  • 总结

写在前面

本篇博文用于充实个人分类专栏“GNSS课程”,同时希望能够对有需要的朋友有所帮助。
教材采用《GPS测量原理及应用 第3版》徐绍铨等。
另有疏漏之处,还请评论指出。

文件解读

观测(o)文件识读

伪距单点定位基础讲解_第1张图片
伪距单点定位基础讲解_第2张图片

气象(m)文件识读

伪距单点定位基础讲解_第3张图片

广播星历(n)文件识读

星历文件识读在上一篇里有介绍,这里不再赘述。

计算基本原理

选择一个历元中的某个卫星

伪距单点定位基础讲解_第4张图片

计算站星近似几何距离

伪距单点定位基础讲解_第5张图片

误差改正

伪距单点定位基础讲解_第6张图片

迭代求解测站位置

伪距单点定位基础讲解_第7张图片

最小二乘求解及迭代终止条件

伪距单点定位基础讲解_第8张图片

源代码及计算结果

自编的代码分为3个部分,在之前卫星星历计算卫星位置的基础上,增加了O文件、M文件的读取函数readfileo.m和readfilem.m,以及计算测站位置的主脚本Prange_Positioning.m。使用者在主脚本中的“配置参数”区域,正确配置相关的参数后,运行此脚本即可得到结果。这些参数包括观测时刻的UTC时,测站的大地高,导航电文中电离层的Alpha和Beta参数,去头的n、o、m文件。需要注意的是,程序对于时间的查找除了n文件外,都是严格查找,也就是说,受限于m文件的观测时间间隔,观测时刻的分位只能是5的整数倍,秒位只能是0。经过相应的调试后,可以接受小范围的变动。

o文件读取函数

伪距单点定位基础讲解_第9张图片
伪距单点定位基础讲解_第10张图片
伪距单点定位基础讲解_第11张图片

m文件读取函数

伪距单点定位基础讲解_第12张图片

计算用的脚本

伪距单点定位基础讲解_第13张图片
伪距单点定位基础讲解_第14张图片
伪距单点定位基础讲解_第15张图片
伪距单点定位基础讲解_第16张图片
伪距单点定位基础讲解_第17张图片

总结

这里不再详细介绍卫星位置计算的方法了,这部分详见这里。
本篇博文采用的编程语言是MATLAB,所使用的数据文件已放在链接资源里了,需要请自取。
另外,采用MATLAB的Appdesigner,编写了一个UI,同时改变了数据的存储结构,引入结构体来操作数据,减少与文件的交互,以减少计算时间,可以用来处理RINEX格式的文件。软件也会按需更新。资源请见这里。
最后,希望这篇博文对你有帮助。

你可能感兴趣的:(GNSS课程,经验分享)