rtklib代码详解——ppp.c


主函数: pppos

1 申请变量,初始化标志位

 

2 更新状态

 

 

状态更新函数: udstate_ppp

1 位置更新

 

2 时钟更新

 

3 对流层参数更新(如果配置为对流层参数估计模式

 

4 电离层参数更新(如果配置为电离层参数估计模式

 

5 更新L5接收机硬件延迟参数(如果频点配置大于等于3,包含L5

 

6 整周模糊度更新

 

PPP位置更新函数: udpos_ppp

1 如果是PMODE_PPP_FIXED模式,则直接初始化,用已知的固定点坐标

 

2 检测状态量的值,如果是首次进入,则进行位置和在台赋初值(spp的位置和速度信息 或者前一历元的位置和速度信息??????

         (动态模式,则还需要额外对速度和加速度赋值

 

3 如果是PMODE_PPP_STATIC 模式,状态量不变,只更新p阵,赋初值

 

4 如果是PMODE_PPP_KINEMA模式,但是运动模型不是动态,则直接初始化位置和方差

 

5 F阵设置

 

6 状态转移

 

7 Q阵更新

 

PPP时钟更新函数: udpos_ppp

1 循环遍历每一模式

 

2 检测是否为精密星历EPHOPT_PREC精密星历的时间是基于gps时间,忽略系统间的偏差

 

3 否则利用前一秒的结果,并考虑系统间时差信息

 

4 初始化时钟信息和方差值

 

PPP对流层更新函数:udtrop_ppp

需要对对流层的模型估计做一个详细的了解???

1 判断状态量是否为0,需要进行赋初值

sbstropcorr 对应 TROPOPT_SBAS修正还是????

如果模型大于TROPOPT_ESTG,则赋初值不一致?????

 

2 如果已经有初值,则直接更新p阵 

如果模型大于TROPOPT_ESTG,则P阵更新的方式不一致?????

 

ppp电离层更新函数:udiono_ppp

1 检测相位中断是否超过门限,重置电离层参数

 

2 遍历各个卫星的电离层参数:

 

3 如果检测为0, 根据伪距计算电离层初值,并进行初始化

用到ionmapf,ionosphere mapping function ????

 

4 否则,根据高度角,更新P阵

 

ppp硬件延迟参数更新函数:uddcb_ppp

1 如果检测为0,直接赋初值

认为是稳定的,没有噪声驱动,固定的

PPP整周模糊度更新函数:udbias_ppp

1 检测边界时间翻转(?????

 

2 清除卫星周跳标志位

 

3 检测周跳:LLI

 

4 检测周跳:几何无关gf

 

5 检测周跳:MW组合

 

6 前一时刻位置转化:ECEF->LLA

 

7 遍历各个频点,更新模糊度量:

 

8 遍历各个卫星,如果检测到相位中断大于门限,或单历元模式,或检测到

时钟跳变,则重新赋值模糊度参数

 

9 遍历各个卫星:

 

  9.1 观测量量修正,得到修正后的观测量和修正后的无电离层组合观测量(天线相位中心修正, 相位缠绕修正,卫星硬件延迟修正

 

  9.2 无电离层组合,bias赋值

 

  9.3 否则,根据单个观测量的载波相位,减去伪距,在补偿根据双频伪距估算出来的电离层延迟,得到模糊度初值

 

  9.4 检测值是否有效,是否周跳,如果正常,统计初始模糊度和状态量之间的整体偏差(反映载波相位和伪距的一致性)

 

9 根据9.4得到的计算结果,判断如果满足补偿门限,进行补偿(门限值挺大的??

 

10 遍历各个卫星,进行P阵更新

         (如果状态量无效,或有周跳发生,则用bias进行重置

          重置模糊度固定标志位

 

LLI周跳检测函数:detslp_ll

 

gf周跳检测函数:detslp_gf

         根据双频观测量相减,剩余电离层残差以及整周模糊度,稳定项,前后做差检测周跳

 

mw周跳检测函数:detslp_mw

主要受伪距噪声和多路径的影响

 

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM