RTKLIB学习(二)–1、PPP方程和扩展卡尔曼滤波等算法详解

学习rtklib的PPP模块,先对重要的算法进行原理性阐述

更加详细的算法可以前往:

PPP算法-CSDN博客

一、PPP原理

精密单点定位采用双频伪距观测值P_{1}P_{2}和载波相位观测值L_{1}L_{2}获得测点的三维位置。在基本观测方程的基础上,通常有三种模型,分别是传统的无电离层组合观测模型、UofC模型(半和模型)、以及非差非组合模型。

基本观测方程:

假定接收机i在t_{r}时刻接收到卫星j于t_{s}时刻发送的卫星信号,则对于载波相位观测值L_{1}L_{2}和P码伪距观测值P_{1}P_{2},可建立观测方程:

{L_{1}}_{r}^{j}(t_{r})=\rho (t_{s},t_{r})-c\delta{t _{j}^{S}}+c\delta{t _{i}^{R}}-Ion*^{f_{2}^{2}}/({f_{1}^{2}}-{f_{2}^{2}})+\delta{Trop_{i}^{j}}+c{N_{1}}_{i}^{j}/f_{1}+\sum \delta _{L1}

{L_{2}}_{r}^{j}(t_{r})=\rho (t_{s},t_{r})-c\delta{t _{j}^{S}}+c\delta{t _{i}^{R}}-Ion*^{f_{1}^{2}}/({f_{1}^{2}}-{f_{2}^{2}})+\delta{Trop_{i}^{j}}+c{N_{2}}_{i}^{j}/f_{2}+\sum \delta _{L2}

{P_{1}}_{r}^{j}(t_{r})=\rho (t_{s},t_{r})-c\delta{t _{j}^{S}}+c\delta{t _{i}^{R}}-Ion*^{f_{2}^{2}}/({f_{1}^{1}}-{f_{2}^{2}})++\sum \delta _{P1}

{P_{2}}_{r}^{j}(t_{r})=\rho (t_{s},t_{r})-c\delta{t _{j}^{S}}+c\delta{t _{i}^{R}}-Ion*^{f_{1}^{2}}/({f_{1}^{2}}-{f_{2}^{2}})+\delta{Trop_{i}^{j}}+\sum \delta _{P2} 

式中,\rho (t_{s},t_{r})为卫星到接收机的几何距离,c为真空中的光速,\delta t_{j}^{S}为卫星j在信号发射时刻t_{s}相对于GPS时间的钟差,\delta t_{i}^{R}为接收机i在信号接收时刻t_{r}相对于GPS时间的钟差,Ion为电离层延迟参数,\delta Trop_{i}^{j} 为对流层延迟改正,{N_{1}}_{i}^{j}为L1载波整周模糊度,{N_{2}}_{i}^{j}为L2载波整周模糊度,\sum \delta为其他必须顾及的改正,如天线相位中心改正、天线相位缠绕、地球固体潮改正、大洋负荷改正、引力延迟改正、相对论效应改正等。

1、传统无电离层组合模型

卫星信号所收到的电离层延迟影响与频率的平方成反比,利用这一性质,可将伪距观测值P_{1}P_{2}和载波相位观测值L_{1}L_{2}组合成合适的组合观测值,消除电离层影响: 

{L_{IF}}_{i}^{j}(t_{r})=f_{1}^{2}/(f_{1}^{2}-f_{2}^{2})*{L_{1}}_{i}^{j}(t_{r})-f_{2}^{2}/(f_{1}^{2}-f_{2}^{2})*{L_{2}}_{i}^{j}(t_{r})=\rho (t_{s},t_{r})-c\delta t_{j}^{S}+c\delta Trop_{i}^{j}+\lambda _{IF}{N_{Ion-Free}}_{i}^{j}+\sum \delta _{L_{IF}}

{P_{IF}}_{i}^{j}(t_{r})=f_{1}^{2}/(f_{1}^{2}-f_{2}^{2})*{P_{1}}_{i}^{j}(t_{r})-f_{2}^{2}/(f_{1}^{2}-f_{2}^{2})*{P_{2}}_{i}^{j}(t_{r})=\rho (t_{s},t_{r})-c\delta t_{j}^{S}+c\delta Trop_{i}^{j}+\sum \delta _{P_{IF}} 

式中,\lambda_{IF}{N_{IF}}_{i}^{j}分别为无电离层组合观测值的波长及模糊度,此时模糊度参数不再具有整周特性,即

\lambda _{IF}=cf_{1}/(f_{1}^{2}-f_{2}^{2}) 

{N_{IF}}_{i}^{j}={N_{1}}_{i}^{j}-f_{2}/f_{1}*{N_{2}}_{i}^{j} 

2、UofC模型(半和模型) 

 半和模型除了采用传统的无电离层载波相位组合观测值,还包括L_{1}L_{2}频率上的P码/载波组合观测值,利用电离层影响在测码伪距方程和相位方程中的大小相等,互为相反数的性质。表达式如下:

{L_{IF}}_{i}^{j}(t_{r})=f_{1}^{2}/(f_{1}^{2}-f_{2}^{2})*{L_{1}}_{i}^{j}(t_{r})-f_{2}^{2}/(f_{1}^{2}-f_{2}^{2})*{L_{2}}_{i}^{j}(t_{r})=\rho (t_{s}-t_{r})-c\delta t_{j}^{S}+c\delta Trop_{i}^{j}+\lambda _{IF}{N_{Ion-Free}}_{i}^{j}+\sum \delta _{L_{IF}}

{P_{IF,L_{2}}}_{i}^{j}(t_{r})=1/2*({P_{2}}_{i}^{j}(t_{r})+{L_{2}}_{i}^{j}(t_{r}))=\rho (t_{s},t_{r})-c\delta t_{j}^{S}+c\delta t_{i}^{R}+c\delta Trop_{i}^{j}+c{N_{1}}_{i}^{j}/f_{2}/2+\sum \delta _{P_{IF},L_{2}} 

{P_{IF,L_{1}}}_{i}^{j}(t_{r})=1/2*({P_{1}}_{i}^{j}(t_{r})+{L_{1}}_{i}^{j}(t_{r}))=\rho (t_{s},t_{r})-c\delta t_{j}^{S}+c\delta t_{i}^{R}+c\delta Trop_{i}^{j}+c{N_{1}}_{i}^{j}/f_{1}/2+\sum \delta _{P_{IF},L_{1}} 

 3、非差非组合模型

 消电离层的组合观测方程不仅会造成一些有用信息的丢失,还会放大观测噪声,因此基于原始观测值的非差非组合模型显得尤为重要,rklib中一般采用非差非组合模型和消电离层模型。

{L_{1}}_{r}^{j}(t_{r})=\rho (t_{s},t_{r})-c\delta{t _{j}^{S}}+c\delta{t _{i}^{R}}-Ion*^{f_{2}^{2}}/({f_{1}^{2}}-{f_{2}^{2}})+\delta{Trop_{i}^{j}}+c{N_{1}}_{i}^{j}/f_{1}+\sum \delta _{L1}

 {L_{1}}_{r}^{j}(t_{r})=\rho (t_{s},t_{r})-c\delta{t _{j}^{S}}+c\delta{t _{i}^{R}}-Ion*^{f_{2}^{2}}/({f_{1}^{2}}-{f_{2}^{2}})+\delta{Trop_{i}^{j}}+c{N_{1}}_{i}^{j}/f_{1}+\sum \delta _{L1}

 {L_{2}}_{r}^{j}(t_{r})=\rho (t_{s},t_{r})-c\delta{t _{j}^{S}}+c\delta{t _{i}^{R}}-Ion*^{f_{1}^{2}}/({f_{1}^{2}}-{f_{2}^{2}})+\delta{Trop_{i}^{j}}+c{N_{2}}_{i}^{j}/f_{2}+\sum \delta _{L2}

 {P_{1}}_{r}^{j}(t_{r})=\rho (t_{s},t_{r})-c\delta{t _{j}^{S}}+c\delta{t _{i}^{R}}-Ion*^{f_{2}^{2}}/({f_{1}^{1}}-{f_{2}^{2}})++\sum \delta _{P1}

 {P_{2}}_{r}^{j}(t_{r})=\rho (t_{s},t_{r})-c\delta{t _{j}^{S}}+c\delta{t _{i}^{R}}-Ion*^{f_{1}^{2}}/({f_{1}^{2}}-{f_{2}^{2}})+\delta{Trop_{i}^{j}}+\sum \delta _{P2}

4、周跳探测  

M-W组合法

L_{6}=(f_{1}L_{1}-f_{2}L_{2})/(f_{1}-f_{2})-(f_{1}P_{1}-f_{2}P_{2})/(f_{1}+f_{2})

式中L_{6}为MW组合观测值,MW组合消除了卫星与接收机之间的几何距离、对流层延迟、电离层延迟、卫星钟差、和接收机钟差的影响。上式两边同除宽巷模糊度波长\lambda _{WL}=c/(f_{1}-f_{2})可得:

N_{w}=(L_{1}/\lambda _{1}-L_{2}/\lambda _{2})-(f_{1}-f_{2})/(f_{1}+f_{2})(P_{1}/\lambda _{1}+P_{2}/\lambda_{2} )

 N_{w}为宽巷模糊度。实际应用中,首先用历史数据计算宽巷模糊度的平均值\bar{N}_{w}^{i}=\bar{N}_{w}^{i-1}+1/i(N_{i}^{w}-\bar{N}_{w}^{i-1})

\sigma _{i}^{2}=(i-1)/i*\sigma _{i-1}^{2}+1/i*(N_{w}^{i}-\bar{N}_{w}^{i-1})^{2}

将当前历元的N_{w}与历史平均值做差,判断该历元是否发生周跳或者粗差。

参考:《GNSS精密单点定位及非差模糊度快速确定研究方法》李星星

           《GNSS数据处理》蒋卫平

二、扩展卡尔曼滤波原理

推荐文章:

卡尔曼滤波系列——(二)扩展卡尔曼滤波-CSDN博客

【精选】扩展卡尔曼滤波_菜鸟知识搬运工的博客-CSDN博客

卡尔曼滤波(Kalman Filter)原理浅析-数学理论推导-2_爱听歌的周童鞋的博客-CSDN博客

 扩展卡尔曼滤波相比卡尔曼滤波多了泰勒级数线性化的内容,解算步骤还是一样的。rtklib中用到的就是扩展卡尔曼滤波EKF

状态方程:x_{k}=\Phi _{k,k-1}x_{k-1}+\Gamma _{k-1}W_{k-1}

观测方程:z_{k}=H_{k}x_{k}+w_{m}

进行如下步骤: 

1、计算状态转移矩阵\Phi _{k-1},有的也用F_{k-1};

状态转移矩阵定义了状态向量随时间变化的规律。 

2、计算系统噪声协方差矩阵Q_{k-1};

该矩阵定义了在卡尔曼滤波模型噪声源的影响下,状态估计的不确定度随时间增长的规律。 

3、状态向量先验估计值的传播,从\hat{x}_{k-1}^{+}\hat{x}_{k}^{-}

 \hat{x}_{k}^{-}=\Phi _{k-1}\hat{x}_{k-1}^{+}

 4、误差协方差矩阵的传播(预测),从P_{k-1}^{+}P_{k}^{-};

 P_{k}^{-}=\Phi _{k-1}P_{k-1}^{+}\Phi _{k-1}^{T}+Q_{k-1}

5、计算观测矩阵H_{k}有的也用A_{k};

6、计算观测噪声协方差矩阵R_{k};

7、计算卡尔曼增益矩阵K_{k};

 K_{k}=P_{k}^{-}H_{k}^{T}(H_{k}P_{k}^{-}H_{k}^{T}+R_{k})^{-1}

8、构建观测向量z_{k}

9、状态向量后验估计值的更新\hat{x}_{k}^{-}\hat{x}_{k}^{+}

 \hat{x}_{k}^{+}=\hat{x}_{k}^{-}+K_{k}(z_{k}-H_{k}\hat{x}_{k}^{-})=\hat{x}_{k}^{-}+K_{k}\delta z_{k}^{-}

10、误差协方差矩阵的RTKLIB学习(二)--1、PPP方程和扩展卡尔曼滤波等算法详解更新(估计),从P_{k}^{-}P_{k}^{+}

 P_{k}^{+}=(I-K_{k}H_{k})P_{k}^{-}

三、代码分析 

在RTKLIB架构下的详细代码分析 可以前往:

RTKLIB学习(二)–2、PPP代码分析-CSDN博客

本文来自网络,不代表协通编程立场,如若转载,请注明出处:https://net2asp.com/06faac1c01.html