sucy 20260617
1. 模型边界
本文讨论的是:
动态 IF 组合 PPP + 常速度运动模型(Dynamic IF-PPP + Constant Velocity, CV)
本文只讨论 IF 浮点 PPP 的时间更新,不讨论非组合 PPP 的电离层状态,也不讨论 PPP-AR 的整数固定策略。
基本假设如下:
- 接收机可运动,状态中估计接收机位置 r\mathbf rr 和速度 v\mathbf vv;
- 接收机钟差、天顶湿延迟和 IF 组合相位模糊度进入滤波状态;
- 几何距离 ρ\rhoρ 不是独立状态,而是由接收机位置和卫星位置计算得到;
- 双频 IF 组合消除一阶电离层延迟,但会放大观测噪声;
- 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}α=f12−f22f12,β=−f12−f22f22
伪距 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=cδtr | m | 接收机钟差的距离形式 |
| δtr\delta t_rδtr | s | 接收机钟差的时间形式 |
| ZwZ_wZw | m | 天顶湿延迟,Zenith Wet Delay |
| mwsm_w^smws | 无 | 第 sss 颗卫星对应的湿延迟映射函数 |
| BIFsB_{IF}^sBIFs | m | 第 sss 颗卫星连续弧段的 IF 组合相位浮点模糊度 |
| εPs,εLs\varepsilon_P^s,\varepsilon_L^sεPs,εLs | m | 伪距和载波相位 IF 组合观测噪声及未建模误差 |
本文把接收机钟差状态统一写成距离形式 br=cδtrb_r=c\delta t_rbr=cδ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,k2⋯BIF,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 rr | 3 | m | ECEF 坐标系下的接收机位置 |
| v\mathbf vv | 3 | m/s | ECEF 坐标系下的接收机速度 |
| brb_rbr | 1 | m | 接收机钟差的距离形式 |
| ZwZ_wZw | 1 | m | 天顶湿延迟 |
| BIF\mathbf B_{IF}BIF | nnn | m | IF 组合载波相位浮点模糊度 |
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,k−1xk−1++wk−1
过程噪声为:
wk−1∼N(0,Qk−1)\mathbf w_{k-1}\sim\mathcal N(\mathbf 0,\mathbf Q_{k-1})wk−1∼N(0,Qk−1)
协方差预测为:
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,k−1Pk−1+Φk,k−1T+Qk−1
其中:
- Φ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=tk−tk−1
常速度模型写为:
rk−=rk−1++Δt vk−1+\mathbf r_k^-= \mathbf r_{k-1}^+ + \Delta t\,\mathbf v_{k-1}^+rk−=rk−1++Δtvk−1+
vk−=vk−1+\mathbf v_k^-=\mathbf v_{k-1}^+vk−=vk−1+
对应的位置速度状态转移矩阵为:
Φ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,k−1=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,k−1=Φ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)Qk−1=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,k−1++wclk,k−1
Qclk=qclkΔtQ_{clk}=q_{clk}\Delta tQclk=qclkΔt
其中 QclkQ_{clk}Qclk 单位为 m2^22,qclkq_{clk}qclk 单位为 m2^22/s。
若希望把接收机钟差近似为逐历元白噪声,可在时间更新时给 QclkQ_{clk}Qclk 取很大,或逐历元重新初始化钟差。写成 Φclk=1\Phi_{clk}=1Φclk=1 且 Qclk=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,k−1++wzwd,k−1
Qzwd=qzwdΔtQ_{zwd}=q_{zwd}\Delta tQzwd=qzwdΔt
其中 QzwdQ_{zwd}Qzwd 单位为 m2^22,qzwdq_{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,k−1+
Φ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}rk−vk−ak−=ΦrvaCAI30303ΔtI3I30321Δt2I3ΔtI3I3rk−1+vk−1+ak−1++wrva,k−1
因此,常加速度模型的动态状态块是 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 | 静态位置模型 | 位置可视为常数或给极小随机游走,不必估计速度 |
| 普通车载、船载、手持动态 PPP | CV + 白加速度过程噪声 | 工程上最常用,参数少,鲁棒性好 |
| 高动态且有可靠先验/辅助传感器 | 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,k−1=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)Qk−1=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. 结论
- CV 状态转移矩阵是正确的:rk=rk−1+Δtvk−1\mathbf r_k=\mathbf r_{k-1}+\Delta t\mathbf v_{k-1}rk=rk−1+Δtvk−1,vk=vk−1\mathbf v_k=\mathbf v_{k-1}vk=vk−1。
- CV 模型并不假设真实运动无加速度,而是把未知加速度放进过程噪声 QrvCV\mathbf Q_{rv}^{CV}QrvCV。
- CA 转移矩阵本身正确,但必须把加速度加入状态,动态块从 6×66\times66×6 变为 9×99\times99×9。
- 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 等项。
- 接收机钟差状态必须统一单位:若状态用 br=cδtrb_r=c\delta t_rbr=cδtr,过程噪声用 m2^22;若状态用 δtr\delta t_rδtr,过程噪声用 s2^22。
- IF 组合相位模糊度在连续无周跳弧段内可视为常数;发生周跳、失锁或重新捕获后必须重置。

832

被折叠的 条评论
为什么被折叠?



