IF 组合 PPP 卡尔曼滤波状态转移矩阵初探

sucy 20260617


1. 模型边界

本文讨论的是:

动态 IF 组合 PPP + 常速度运动模型(Dynamic IF-PPP + Constant Velocity, CV)

本文只讨论 IF 浮点 PPP 的时间更新,不讨论非组合 PPP 的电离层状态,也不讨论 PPP-AR 的整数固定策略。

基本假设如下:

  1. 接收机可运动,状态中估计接收机位置 r\mathbf rr 和速度 v\mathbf vv
  2. 接收机钟差、天顶湿延迟和 IF 组合相位模糊度进入滤波状态;
  3. 几何距离 ρ\rhoρ 不是独立状态,而是由接收机位置和卫星位置计算得到;
  4. 双频 IF 组合消除一阶电离层延迟,但会放大观测噪声;
  5. IF 组合相位模糊度 BIFB_{IF}BIF 以 m 为单位,通常是浮点参数,不是整数周模糊度。

2. IF 组合观测模型

设两个频点频率为 f1,f2f_1,f_2f1,f2,IF 组合系数为:

α=f12f12−f22,β=−f22f12−f22\alpha=\frac{f_1^2}{f_1^2-f_2^2}, \qquad \beta=-\frac{f_2^2}{f_1^2-f_2^2}α=f12f22f12,β=f12f22f22

伪距 IF 组合为:

PIF=αP1+βP2P_{IF}=\alpha P_1+\beta P_2PIF=αP1+βP2

载波相位通常先换算成距离,再做 IF 组合:

LIF=αλ1φ1+βλ2φ2L_{IF}=\alpha \lambda_1\varphi_1+\beta \lambda_2\varphi_2LIF=αλ1φ1+βλ2φ2

其中 P1,P2P_1,P_2P1,P2 单位为 m,φ1,φ2\varphi_1,\varphi_2φ1,φ2 单位为 cycle,λ1,λ2\lambda_1,\lambda_2λ1,λ2 单位为 m/cycle。

经过精密轨道、卫星钟差、相对论效应、天线相位中心、潮汐、相位缠绕等改正后,简化观测方程可写为:

PIFs=ρs(r)+br+mwsZw+εPsP_{IF}^s = \rho^s(\mathbf r) + b_r + m_w^s Z_w + \varepsilon_P^sPIFs=ρs(r)+br+mwsZw+εPs

LIFs=ρs(r)+br+mwsZw+BIFs+εLsL_{IF}^s = \rho^s(\mathbf r) + b_r + m_w^s Z_w + B_{IF}^s + \varepsilon_L^sLIFs=ρs(r)+br+mwsZw+BIFs+εLs

符号说明:

符号单位含义
ρs(r)\rho^s(\mathbf r)ρs(r)m接收机到第 sss 颗卫星的几何距离,由接收机位置和卫星位置计算
br=cδtrb_r=c\delta t_rbr=trm接收机钟差的距离形式
δtr\delta t_rδtrs接收机钟差的时间形式
ZwZ_wZwm天顶湿延迟,Zenith Wet Delay
mwsm_w^smwssss 颗卫星对应的湿延迟映射函数
BIFsB_{IF}^sBIFsmsss 颗卫星连续弧段的 IF 组合相位浮点模糊度
εPs,εLs\varepsilon_P^s,\varepsilon_L^sεPs,εLsm伪距和载波相位 IF 组合观测噪声及未建模误差

本文把接收机钟差状态统一写成距离形式 br=cδtrb_r=c\delta t_rbr=tr。如果工程实现中估计的是秒形式 δtr\delta t_rδtr,则对应的过程噪声方差也必须使用 s2^22,不能与 m2^22 混用。


3. 状态向量

kkk 个历元的状态向量定义为:

xk=[rkTvkTbr,kZw,kBIF,kT]T\mathbf x_k= \begin{bmatrix} \mathbf r_k^T & \mathbf v_k^T & b_{r,k} & Z_{w,k} & \mathbf B_{IF,k}^T \end{bmatrix}^Txk=[rkTvkTbr,kZw,kBIF,kT]T

其中:

rk=[XkYkZk]T,vk=[VX,kVY,kVZ,k]T\mathbf r_k= \begin{bmatrix}X_k&Y_k&Z_k\end{bmatrix}^T, \qquad \mathbf v_k= \begin{bmatrix}V_{X,k}&V_{Y,k}&V_{Z,k}\end{bmatrix}^Trk=[XkYkZk]T,vk=[VX,kVY,kVZ,k]T

BIF,k=[BIF,k1BIF,k2⋯BIF,kn]T\mathbf B_{IF,k}= \begin{bmatrix}B_{IF,k}^1&B_{IF,k}^2&\cdots&B_{IF,k}^n\end{bmatrix}^TBIF,k=[BIF,k1BIF,k2BIF,kn]T

状态维度为:

dim⁡(xk)=3+3+1+1+n=8+n\dim(\mathbf x_k)=3+3+1+1+n=8+ndim(xk)=3+3+1+1+n=8+n

状态维度单位含义
r\mathbf rr3mECEF 坐标系下的接收机位置
v\mathbf vv3m/sECEF 坐标系下的接收机速度
brb_rbr1m接收机钟差的距离形式
ZwZ_wZw1m天顶湿延迟
BIF\mathbf B_{IF}BIFnnnmIF 组合载波相位浮点模糊度

nnn 表示当前滤波器中连续跟踪弧段的模糊度个数。卫星升落、失锁、周跳和重新捕获都会改变 nnn,因此状态转移矩阵的维度只在“相邻历元状态集合不变”时保持固定。


4. Kalman 时间更新

状态预测为:

xk−=Φk,k−1xk−1++wk−1\mathbf x_k^-= \boldsymbol\Phi_{k,k-1}\mathbf x_{k-1}^+ + \mathbf w_{k-1}xk=Φk,k1xk1++wk1

过程噪声为:

wk−1∼N(0,Qk−1)\mathbf w_{k-1}\sim\mathcal N(\mathbf 0,\mathbf Q_{k-1})wk1N(0,Qk1)

协方差预测为:

Pk−=Φk,k−1Pk−1+Φk,k−1T+Qk−1\mathbf P_k^-= \boldsymbol\Phi_{k,k-1} \mathbf P_{k-1}^+ \boldsymbol\Phi_{k,k-1}^T + \mathbf Q_{k-1}Pk=Φk,k1Pk1+Φk,k1T+Qk1

其中:

  • ΦPΦT\boldsymbol\Phi\mathbf P\boldsymbol\Phi^TΦPΦT 表示把上一历元的不确定度传播到当前历元;
  • Q\mathbf QQ 表示运动模型、钟差模型、对流层模型等无法解释的新增不确定度;
  • Q\mathbf QQ 是过程噪声协方差,不是伪距、载波相位观测噪声协方差 R\mathbf RR

5. 常速度模型

相邻历元时间间隔为:

Δt=tk−tk−1\Delta t=t_k-t_{k-1}Δt=tktk1

常速度模型写为:

rk−=rk−1++Δt vk−1+\mathbf r_k^-= \mathbf r_{k-1}^+ + \Delta t\,\mathbf v_{k-1}^+rk=rk1++Δtvk1+

vk−=vk−1+\mathbf v_k^-=\mathbf v_{k-1}^+vk=vk1+

对应的位置速度状态转移矩阵为:

ΦrvCV=[I3ΔtI303I3]\boldsymbol\Phi_{rv}^{CV}= \begin{bmatrix} \mathbf I_3 & \Delta t\mathbf I_3\\ \mathbf 0_3 & \mathbf I_3 \end{bmatrix}ΦrvCV=[I303ΔtI3I3]

完整状态转移矩阵为:

Φk,k−1=diag⁡(ΦrvCV,1,1,In)\boldsymbol\Phi_{k,k-1} = \operatorname{diag} \left( \boldsymbol\Phi_{rv}^{CV}, 1, 1, \mathbf I_n \right)Φk,k1=diag(ΦrvCV,1,1,In)

展开为:

Φk,k−1=[ΦrvCV06×106×106×n01×61001×n01×60101×n0n×60n×10n×1In]\boldsymbol\Phi_{k,k-1}= \begin{bmatrix} \boldsymbol\Phi_{rv}^{CV} & \mathbf 0_{6\times1} & \mathbf 0_{6\times1} & \mathbf 0_{6\times n} \\ \mathbf 0_{1\times6} & 1 & 0 & \mathbf 0_{1\times n} \\ \mathbf 0_{1\times6} & 0 & 1 & \mathbf 0_{1\times n} \\ \mathbf 0_{n\times6} & \mathbf 0_{n\times1} & \mathbf 0_{n\times1} & \mathbf I_n \end{bmatrix}Φk,k1=ΦrvCV01×601×60n×606×1100n×106×1010n×106×n01×n01×nIn

**关键理解:**常速度模型不是说接收机真实运动一定匀速,而是说滤波器用“上一历元速度外推位置”,车辆加速、转弯、船体晃动等未建模运动通过过程噪声 Qrv\mathbf Q_{rv}Qrv 表达。


6. 常速度模型的过程噪声

常速度模型通常配合“白加速度驱动”过程噪声。设三轴白加速度噪声功率谱密度矩阵为:

Qa=diag⁡(qaX,qaY,qaZ)\mathbf Q_a= \operatorname{diag}(q_{aX},q_{aY},q_{aZ})Qa=diag(qaX,qaY,qaZ)

则位置速度过程噪声协方差为:

QrvCV=[Δt33QaΔt22QaΔt22QaΔtQa]\mathbf Q_{rv}^{CV} = \begin{bmatrix} \frac{\Delta t^3}{3}\mathbf Q_a & \frac{\Delta t^2}{2}\mathbf Q_a\\ \frac{\Delta t^2}{2}\mathbf Q_a & \Delta t\mathbf Q_a \end{bmatrix}QrvCV=[3Δt3Qa2Δt2Qa2Δt2QaΔtQa]

若三轴运动噪声强度相同,即 Qa=qaI3\mathbf Q_a=q_a\mathbf I_3Qa=qaI3,则:

QrvCV=qa[Δt33I3Δt22I3Δt22I3ΔtI3]\mathbf Q_{rv}^{CV} = q_a \begin{bmatrix} \frac{\Delta t^3}{3}\mathbf I_3 & \frac{\Delta t^2}{2}\mathbf I_3\\ \frac{\Delta t^2}{2}\mathbf I_3 & \Delta t\mathbf I_3 \end{bmatrix}QrvCV=qa[3Δt3I32Δt2I32Δt2I3ΔtI3]

其中 qaq_aqa 的单位为 m2^22/s3^33。直观上,加速度噪声积分一次影响速度,积分两次影响位置,因此速度方差项与 Δt\Delta tΔt 成正比,位置方差项与 Δt3/3\Delta t^3/3Δt3/3 成正比。


7. 其他状态的转移和过程噪声

综合各类状态,过程噪声矩阵为:

Qk−1=diag⁡(QrvCV,Qclk,Qzwd,Qamb)\mathbf Q_{k-1} = \operatorname{diag} \left( \mathbf Q_{rv}^{CV}, Q_{clk}, Q_{zwd}, \mathbf Q_{amb} \right)Qk1=diag(QrvCV,Qclk,Qzwd,Qamb)

7.1 接收机钟差

本文统一使用距离形式钟差 brb_rbr

br,k−=br,k−1++wclk,k−1b_{r,k}^-=b_{r,k-1}^+ + w_{clk,k-1}br,k=br,k1++wclk,k1

Qclk=qclkΔtQ_{clk}=q_{clk}\Delta tQclk=qclkΔt

其中 QclkQ_{clk}Qclk 单位为 m2^22qclkq_{clk}qclk 单位为 m2^22/s。

若希望把接收机钟差近似为逐历元白噪声,可在时间更新时给 QclkQ_{clk}Qclk 取很大,或逐历元重新初始化钟差。写成 Φclk=1\Phi_{clk}=1Φclk=1Qclk=qclkΔtQ_{clk}=q_{clk}\Delta tQclk=qclkΔt 时,本质仍是随机游走模型。

7.2 天顶湿延迟

天顶湿延迟通常按慢变随机游走处理:

Zw,k−=Zw,k−1++wzwd,k−1Z_{w,k}^-=Z_{w,k-1}^+ + w_{zwd,k-1}Zw,k=Zw,k1++wzwd,k1

Qzwd=qzwdΔtQ_{zwd}=q_{zwd}\Delta tQzwd=qzwdΔt

其中 QzwdQ_{zwd}Qzwd 单位为 m2^22qzwdq_{zwd}qzwd 单位为 m2^22/s。天顶干延迟通常由模型改正,湿延迟受水汽影响更明显,因此常作为状态估计。

7.3 IF 组合相位模糊度

连续跟踪且无周跳时:

BIF,k−=BIF,k−1+\mathbf B_{IF,k}^- = \mathbf B_{IF,k-1}^+BIF,k=BIF,k1+

Φamb=In,Qamb=0n×n\boldsymbol\Phi_{amb}=\mathbf I_n, \qquad \mathbf Q_{amb}=\mathbf 0_{n\times n}Φamb=In,Qamb=0n×n

一旦发生周跳、失锁或卫星重新捕获,对应模糊度不能继续沿用旧状态,应重新初始化并赋较大初始方差:

PBiBi,k←σB,02P_{B_iB_i,k}\leftarrow \sigma_{B,0}^2PBiBi,kσB,02

若希望吸收极小的未建模相位硬件变化,也可给模糊度设置很小随机游走:

Qamb=qambΔtIn\mathbf Q_{amb}=q_{amb}\Delta t\mathbf I_nQamb=qambΔtIn

但常规 IF 浮点 PPP 更常用的处理是:连续弧段内常数,弧段中断后重置。


8. 常加速度模型

常加速度模型不能直接套用第 5 章的 6×66\times66×6 常速度矩阵。如果把加速度作为状态,应使用:

xdyn,k=[rkTvkTakT]T\mathbf x_{dyn,k}= \begin{bmatrix} \mathbf r_k^T&\mathbf v_k^T&\mathbf a_k^T \end{bmatrix}^Txdyn,k=[rkTvkTakT]T

对应状态转移为:

[rk−vk−ak−]=[I3ΔtI312Δt2I303I3ΔtI30303I3]⏟ΦrvaCA[rk−1+vk−1+ak−1+]+wrva,k−1\begin{bmatrix} \mathbf r_k^-\\ \mathbf v_k^-\\ \mathbf a_k^- \end{bmatrix} = \underbrace{ \begin{bmatrix} \mathbf I_3 & \Delta t\mathbf I_3 & \frac{1}{2}\Delta t^2\mathbf I_3\\ \mathbf 0_3 & \mathbf I_3 & \Delta t\mathbf I_3\\ \mathbf 0_3 & \mathbf 0_3 & \mathbf I_3 \end{bmatrix} }_{\boldsymbol\Phi_{rva}^{CA}} \begin{bmatrix} \mathbf r_{k-1}^+\\ \mathbf v_{k-1}^+\\ \mathbf a_{k-1}^+ \end{bmatrix} + \mathbf w_{rva,k-1}rkvkak=ΦrvaCAI30303ΔtI3I30321Δt2I3ΔtI3I3rk1+vk1+ak1++wrva,k1

因此,常加速度模型的动态状态块是 9×99\times99×9,完整 PPP 状态维度会从 8+n8+n8+n 变为 11+n11+n11+n

xkCA=[rkTvkTakTbr,kZw,kBIF,kT]T\mathbf x_k^{CA}= \begin{bmatrix} \mathbf r_k^T& \mathbf v_k^T& \mathbf a_k^T& b_{r,k}& Z_{w,k}& \mathbf B_{IF,k}^T \end{bmatrix}^TxkCA=[rkTvkTakTbr,kZw,kBIF,kT]T

8.1 常加速度模型的过程噪声

如果加速度状态允许缓慢变化,常用“白 jerk 驱动”模型。设 jerk 噪声功率谱密度为 qjq_jqj,单位为 m2^22/s5^55,则单轴过程噪声为:

Q1DCA=qj[Δt520Δt48Δt36Δt48Δt33Δt22Δt36Δt22Δt]\mathbf Q_{1D}^{CA} = q_j \begin{bmatrix} \frac{\Delta t^5}{20} & \frac{\Delta t^4}{8} & \frac{\Delta t^3}{6}\\ \frac{\Delta t^4}{8} & \frac{\Delta t^3}{3} & \frac{\Delta t^2}{2}\\ \frac{\Delta t^3}{6} & \frac{\Delta t^2}{2} & \Delta t \end{bmatrix}Q1DCA=qj20Δt58Δt46Δt38Δt43Δt32Δt26Δt32Δt2Δt

三轴形式可写成对应的 3×33\times33×3 块矩阵:

QrvaCA=[Δt520QjΔt48QjΔt36QjΔt48QjΔt33QjΔt22QjΔt36QjΔt22QjΔtQj]\mathbf Q_{rva}^{CA} = \begin{bmatrix} \frac{\Delta t^5}{20}\mathbf Q_j & \frac{\Delta t^4}{8}\mathbf Q_j & \frac{\Delta t^3}{6}\mathbf Q_j\\ \frac{\Delta t^4}{8}\mathbf Q_j & \frac{\Delta t^3}{3}\mathbf Q_j & \frac{\Delta t^2}{2}\mathbf Q_j\\ \frac{\Delta t^3}{6}\mathbf Q_j & \frac{\Delta t^2}{2}\mathbf Q_j & \Delta t\mathbf Q_j \end{bmatrix}QrvaCA=20Δt5Qj8Δt4Qj6Δt3Qj8Δt4Qj3Δt3Qj2Δt2Qj6Δt3Qj2Δt2QjΔtQj

其中:

Qj=diag⁡(qjX,qjY,qjZ)\mathbf Q_j=\operatorname{diag}(q_{jX},q_{jY},q_{jZ})Qj=diag(qjX,qjY,qjZ)

关键区别:

  • 常速度模型:状态为 [r,v][\mathbf r,\mathbf v][r,v],未知加速度作为过程噪声;
  • 常加速度模型:状态为 [r,v,a][\mathbf r,\mathbf v,\mathbf a][r,v,a],未知 jerk 作为过程噪声;
  • 若没有 IMU、轮速计或强动力学约束,普通 GNSS 观测对加速度状态约束较弱,盲目使用 CA 模型可能增加参数相关性和滤波不稳定性。

若加速度来自 IMU,则更合理的做法通常是 GNSS/INS 松组合、紧组合或深组合,而不是简单把 CA 矩阵直接塞进 PPP 滤波器。


9. 模型选择建议

场景推荐模型说明
静态 PPP静态位置模型位置可视为常数或给极小随机游走,不必估计速度
普通车载、船载、手持动态 PPPCV + 白加速度过程噪声工程上最常用,参数少,鲁棒性好
高动态且有可靠先验/辅助传感器CA 或 GNSS/INS 模型需要正确设置加速度或 jerk 噪声
发生周跳、失锁、卫星重新捕获重置对应模糊度不能继续沿用旧弧段模糊度

10. 公式汇总

10.1 CV 状态向量

xk=[rkTvkTbr,kZw,kBIF,kT]T\mathbf x_k= \begin{bmatrix} \mathbf r_k^T& \mathbf v_k^T& b_{r,k}& Z_{w,k}& \mathbf B_{IF,k}^T \end{bmatrix}^Txk=[rkTvkTbr,kZw,kBIF,kT]T

10.2 CV 状态转移矩阵

Φk,k−1=diag⁡(ΦrvCV,1,1,In)\boldsymbol\Phi_{k,k-1} = \operatorname{diag} \left( \boldsymbol\Phi_{rv}^{CV}, 1, 1, \mathbf I_n \right)Φk,k1=diag(ΦrvCV,1,1,In)

ΦrvCV=[I3ΔtI303I3]\boldsymbol\Phi_{rv}^{CV} = \begin{bmatrix} \mathbf I_3 & \Delta t\mathbf I_3\\ \mathbf 0_3 & \mathbf I_3 \end{bmatrix}ΦrvCV=[I303ΔtI3I3]

10.3 CV 过程噪声

Qk−1=diag⁡(QrvCV,Qclk,Qzwd,Qamb)\mathbf Q_{k-1} = \operatorname{diag} \left( \mathbf Q_{rv}^{CV}, Q_{clk}, Q_{zwd}, \mathbf Q_{amb} \right)Qk1=diag(QrvCV,Qclk,Qzwd,Qamb)

QrvCV=qa[Δt33I3Δt22I3Δt22I3ΔtI3]\mathbf Q_{rv}^{CV} = q_a \begin{bmatrix} \frac{\Delta t^3}{3}\mathbf I_3 & \frac{\Delta t^2}{2}\mathbf I_3\\ \frac{\Delta t^2}{2}\mathbf I_3 & \Delta t\mathbf I_3 \end{bmatrix}QrvCV=qa[3Δt3I32Δt2I32Δt2I3ΔtI3]

Qclk=qclkΔt,Qzwd=qzwdΔt,Qamb=0n×n连续无周跳弧段Q_{clk}=q_{clk}\Delta t, \qquad Q_{zwd}=q_{zwd}\Delta t, \qquad \mathbf Q_{amb}=\mathbf 0_{n\times n} \quad\text{连续无周跳弧段}Qclk=qclkΔt,Qzwd=qzwdΔt,Qamb=0n×n连续无周跳弧段

10.4 CA 状态转移矩阵

ΦrvaCA=[I3ΔtI312Δt2I303I3ΔtI30303I3]\boldsymbol\Phi_{rva}^{CA} = \begin{bmatrix} \mathbf I_3 & \Delta t\mathbf I_3 & \frac{1}{2}\Delta t^2\mathbf I_3\\ \mathbf 0_3 & \mathbf I_3 & \Delta t\mathbf I_3\\ \mathbf 0_3 & \mathbf 0_3 & \mathbf I_3 \end{bmatrix}ΦrvaCA=I30303ΔtI3I30321Δt2I3ΔtI3I3


11. 结论

  1. CV 状态转移矩阵是正确的:rk=rk−1+Δtvk−1\mathbf r_k=\mathbf r_{k-1}+\Delta t\mathbf v_{k-1}rk=rk1+Δtvk1vk=vk−1\mathbf v_k=\mathbf v_{k-1}vk=vk1
  2. CV 模型并不假设真实运动无加速度,而是把未知加速度放进过程噪声 QrvCV\mathbf Q_{rv}^{CV}QrvCV
  3. CA 转移矩阵本身正确,但必须把加速度加入状态,动态块从 6×66\times66×6 变为 9×99\times99×9
  4. CV + 白加速度噪声对应 Δt3/3,Δt2/2,Δt\Delta t^3/3,\Delta t^2/2,\Delta tΔt3/3,Δt2/2,Δt;CA + 白 jerk 噪声对应 Δt5/20,Δt4/8,Δt3/6\Delta t^5/20,\Delta t^4/8,\Delta t^3/6Δt5/20,Δt4/8,Δt3/6 等项。
  5. 接收机钟差状态必须统一单位:若状态用 br=cδtrb_r=c\delta t_rbr=tr,过程噪声用 m2^22;若状态用 δtr\delta t_rδtr,过程噪声用 s2^22
  6. IF 组合相位模糊度在连续无周跳弧段内可视为常数;发生周跳、失锁或重新捕获后必须重置。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱刷碗的苏泓舒

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值