伪距单点定位基础讲解
目录
写在前面
本篇博文用于充实个人分类专栏“GNSS课程”,同时希望能够对有需要的朋友有所帮助。
教材采用《GPS测量原理及应用 第3版》徐绍铨等。
另有疏漏之处,还请评论指出。
文件解读
观测(o)文件识读
气象(m)文件识读
广播星历(n)文件识读
星历文件识读在上一篇里有介绍,这里不再赘述。
计算基本原理
选择一个历元中的某个卫星
计算站星近似几何距离
误差改正
迭代求解测站位置
最小二乘求解及迭代终止条件
源代码及计算结果
自编的代码分为3个部分,在之前卫星星历计算卫星位置的基础上,增加了O文件、M文件的读取函数readfileo.m和readfilem.m,以及计算测站位置的主脚本Prange_Positioning.m。使用者在主脚本中的“配置参数”区域,正确配置相关的参数后,运行此脚本即可得到结果。这些参数包括观测时刻的UTC时,测站的大地高,导航电文中电离层的Alpha和Beta参数,去头的n、o、m文件。需要注意的是,程序对于时间的查找除了n文件外,都是严格查找,也就是说,受限于m文件的观测时间间隔,观测时刻的分位只能是5的整数倍,秒位只能是0。经过相应的调试后,可以接受小范围的变动。
o文件读取函数
m文件读取函数
计算用的脚本
总结
这里不再详细介绍卫星位置计算的方法了,这部分详见这里。
本篇博文采用的编程语言是MATLAB,所使用的数据文件已放在链接资源里了,需要请自取。
另外,采用MATLAB的Appdesigner,编写了一个UI,同时改变了数据的存储结构,引入结构体来操作数据,减少与文件的交互,以减少计算时间,可以用来处理RINEX格式的文件。软件也会按需更新。资源请见这里。
最后,希望这篇博文对你有帮助。