让GNSSRTK不再难【第二天-第7部分2】

状态更新计算过程:
  1. 计算卡尔曼增益
    根据预测的误差协方差矩阵 P k − P_k^- Pk 和观测噪声协方差矩阵 R R R 计算卡尔曼增益 K k K_k Kk
    K k = P k − H T ( H P k − H T + R ) − 1 K_k = P_k^- H^T (H P_k^- H^T + R)^{-1} Kk=PkHT(HPkHT+R)1

    带入预测的 P k − P_k^- Pk R R R 计算:

    P k − = [ C o v X X 0 0 0 0 0 0 C o v Y Y 0 0 0 0 0 0 C o v Z Z 0 0 0 0 0 0 C o v δ t δ t 0 0 0 0 0 0 ∗ ∗ 0 0 0 0 ∗ ∗ ] P_k^- = \begin{bmatrix} Cov_{XX} & 0 & 0 & 0 & 0 & 0 \\ 0 & Cov_{YY} & 0 & 0 & 0 & 0 \\ 0 & 0 & Cov_{ZZ} & 0 & 0 & 0 \\ 0 & 0 & 0 & Cov_{\delta t \delta t} & 0 & 0 \\ 0 & 0 & 0 & 0 & * & * \\ 0 & 0 & 0 & 0 & * & * \\ \end{bmatrix} Pk= CovXX000000CovYY000000CovZZ000000Covδtδt0000000000

    R = [ σ 1 2 0 ⋯ 0 0 σ 2 2 ⋯ 0 ⋮ ⋮ ⋱ ⋮ 0 0 ⋯ σ n 2 ] R = \begin{bmatrix} \sigma_1^2 & 0 & \cdots & 0 \\ 0 & \sigma_2^2 & \cdots & 0 \\ \vdots & \vdots & \ddots & \vdots \\ 0 & 0 & \cdots & \sigma_n^2 \\ \end{bmatrix} R= σ12000σ22000σn2

    假设观测矩阵 H H H 为设计矩阵 A A A

    A = [ l f 1 G 1 m f 1 G 1 n f 1 G 1 − 1 0 0 0 l f 2 G 2 m f 2 G 2 n f 2 G 2 − 1 0 0 0 l f 3 G 3 m f 3 G 3 n f 3 G 3 − 1 0 0 0 ⋮ ⋮ ⋮ ⋮ ⋮ ⋮ ⋮ l f n G n m f n G n n f n G n − 1 0 0 0 l f 1 C 1 m f 1 C 1 n f 1 C 1 − 1 0 − 1 0 l f 2 C 2 m f 2 C 2 n f 2 C 2 − 1 0 − 1 0 l f 3 C 3 m f 3 C 3 n f 3 C 3 − 1 0 − 1 0 ⋮ ⋮ ⋮ ⋮ ⋮ ⋮ ⋮ l f n C n m f n C n n f n C n − 1 0 − 1 0 ] A = \begin{bmatrix} l_{f_1}^{G_1} & m_{f_1}^{G_1} & n_{f_1}^{G_1} & -1 & 0 & 0 & 0 \\ l_{f_2}^{G_2} & m_{f_2}^{G_2} & n_{f_2}^{G_2} & -1 & 0 & 0 & 0 \\ l_{f_3}^{G_3} & m_{f_3}^{G_3} & n_{f_3}^{G_3} & -1 & 0 & 0 & 0 \\ \vdots & \vdots & \vdots & \vdots & \vdots & \vdots & \vdots \\ l_{f_n}^{G_n} & m_{f_n}^{G_n} & n_{f_n}^{G_n} & -1 & 0 & 0 & 0 \\ l_{f_1}^{C_1} & m_{f_1}^{C_1} & n_{f_1}^{C_1} & -1 & 0 & -1 & 0 \\ l_{f_2}^{C_2} & m_{f_2}^{C_2} & n_{f_2}^{C_2} & -1 & 0 & -1 & 0 \\ l_{f_3}^{C_3} & m_{f_3}^{C_3} & n_{f_3}^{C_3} & -1 & 0 & -1 & 0 \\ \vdots & \vdots & \vdots & \vdots & \vdots & \vdots & \vdots \\ l_{f_n}^{C_n} & m_{f_n}^{C_n} & n_{f_n}^{C_n} & -1 & 0 & -1 & 0 \end{bmatrix} A= lf1G1lf2G2lf3G3lfnGnlf1C1lf2C2lf3C3lfnCnmf1G1mf2G2mf3G3mfnGnmf1C1mf2C2mf3C3mfnCnnf1G1nf2G2nf3G3nfnGnnf1C1nf2C2nf3C3nfnCn11111111000000000000111100000000

    则卡尔曼增益 K k K_k Kk 计算为:
    K k = P k − A T ( A P k − A T + R ) − 1 K_k = P_k^- A^T (A P_k^- A^T + R)^{-1} Kk=PkAT(APkAT+R)1

    (1)计算 A P k − A T A P_k^- A^T APkAT
    A P k − A T = A [ C o v X X 0 0 0 0 0 0 C o v Y Y 0 0 0 0 0 0 C o v Z Z 0 0 0 0 0 0 C o v δ t δ t 0 0 0 0 0 0 ∗ ∗ 0 0 0 0 ∗ ∗ ] A T A P_k^- A^T = A \begin{bmatrix} Cov_{XX} & 0 & 0 & 0 & 0 & 0 \\ 0 & Cov_{YY} & 0 & 0 & 0 & 0 \\ 0 & 0 & Cov_{ZZ} & 0 & 0 & 0 \\ 0 & 0 & 0 & Cov_{\delta t \delta t} & 0 & 0 \\ 0 & 0 & 0 & 0 & * & * \\ 0 & 0 & 0 & 0 & * & * \\ \end{bmatrix} A^T APkAT=A CovXX000000CovYY000000CovZZ000000Covδtδt0000000000 AT

    (2)计算 A P k − A T + R A P_k^- A^T + R APkAT+R
    A P k − A T + R = A [ C o v X X 0 0 0 0 0 0 C o v Y Y 0 0 0 0 0 0 C o v Z Z 0 0 0 0 0 0 C o v δ t δ t 0 0 0 0 0 0 ∗ ∗ 0 0 0 0 ∗ ∗ ] A T + R A P_k^- A^T + R = A \begin{bmatrix} Cov_{XX} & 0 & 0 & 0 & 0 & 0 \\ 0 & Cov_{YY} & 0 & 0 & 0 & 0 \\ 0 & 0 & Cov_{ZZ} & 0 & 0 & 0 \\ 0 & 0 & 0 & Cov_{\delta t \delta t} & 0 & 0 \\ 0 & 0 & 0 & 0 & * & * \\ 0 & 0 & 0 & 0 & * & * \\ \end{bmatrix} A^T + R APkAT+R=A CovXX000000CovYY000000CovZZ000000Covδtδt0000000000 AT+R

    由于 A P k − A T + R A P_k^- A^T + R APkAT+R 是对角矩阵,其逆矩阵为:
    ( A P k − A T + R ) − 1 = [ ( C o v X X + σ 1 2 ) − 1 0 0 0 ( C o v Y Y + σ 2 2 ) − 1 0 0 0 ( C o v Z Z + σ 3 2 ) − 1 ] (A P_k^- A^T + R)^{-1} = \begin{bmatrix} (Cov_{XX} + \sigma_1^2)^{-1} & 0 & 0 \\ 0 & (Cov_{YY} + \sigma_2^2)^{-1} & 0 \\ 0 & 0 & (Cov_{ZZ} + \sigma_3^2)^{-1} \\ \end{bmatrix} (APkAT+R)1= (CovXX+σ12)1000(CovYY+σ22)1000(CovZZ+σ32)1

    (3)计算 K k K_k Kk
    K k = P k − A T ( A P k − A T + R ) − 1 K_k = P_k^- A^T (A P_k^- A^T + R)^{-1} Kk=PkAT(APkAT+R)1

    带入 P k − P_k^- Pk ( A P k − A T + R ) − 1 (A P_k^- A^T + R)^{-1} (APkAT+R)1
    K k = [ C o v X X 0 0 0 C o v Y Y 0 0 0 C o v Z Z 0 0 0 0 0 0 0 0 0 0 0 0 ] A T [ ( C o v X X + σ 1 2 ) − 1 0 0 0 ( C o v Y Y + σ 2 2 ) − 1 0 0 0 ( C o v Z Z + σ 3 2 ) − 1 ] K_k = \begin{bmatrix} Cov_{XX} & 0 & 0 \\ 0 & Cov_{YY} & 0 \\ 0 & 0 & Cov_{ZZ} \\ 0 & 0 & 0 \\ 0 & 0 & 0 \\ 0 & 0 & 0 \\ 0 & 0 & 0 \\ \end{bmatrix} A^T \begin{bmatrix} (Cov_{XX} + \sigma_1^2)^{-1} & 0 & 0 \\ 0 & (Cov_{YY} + \sigma_2^2)^{-1} & 0 \\ 0 & 0 & (Cov_{ZZ} + \sigma_3^2)^{-1} \\ \end{bmatrix} Kk= CovXX0000000CovYY0000000CovZZ0000 AT (CovXX+σ12)1000(CovYY+σ22)1000(CovZZ+σ32)1

    简化计算得到:
    K k = [ C o v X X ( C o v X X + σ 1 2 ) − 1 0 0 0 C o v Y Y ( C o v Y Y + σ 2 2 ) − 1 0 0 0 C o v Z Z ( C o v Z Z + σ 3 2 ) − 1 0 0 0 0 0 0 0 0 0 0 0 0 ] K_k = \begin{bmatrix} Cov_{XX} (Cov_{XX} + \sigma_1^2)^{-1} & 0 & 0 \\ 0 & Cov_{YY} (Cov_{YY} + \sigma_2^2)^{-1} & 0 \\ 0 & 0 & Cov_{ZZ} (Cov_{ZZ} + \sigma_3^2)^{-1} \\ 0 & 0 & 0 \\ 0 & 0 & 0 \\ 0 & 0 & 0 \\ 0 & 0 & 0 \\ \end{bmatrix} Kk= CovXX(CovXX+σ12)10000000CovYY(CovYY+σ22)10000000CovZZ(CovZZ+σ32)10000

    因此,卡尔曼增益 K k K_k Kk 为:
    K k = [ C o v X X C o v X X + σ 1 2 0 0 0 C o v Y Y C o v Y Y + σ 2 2 0 0 0 C o v Z Z C o v Z Z + σ 3 2 0 0 0 0 0 0 0 0 0 0 0 0 ] K_k = \begin{bmatrix} \frac{Cov_{XX}}{Cov_{XX} + \sigma_1^2} & 0 & 0 \\ 0 & \frac{Cov_{YY}}{Cov_{YY} + \sigma_2^2} & 0 \\ 0 & 0 & \frac{Cov_{ZZ}}{Cov_{ZZ} + \sigma_3^2} \\ 0 & 0 & 0 \\ 0 & 0 & 0 \\ 0 & 0 & 0 \\ 0 & 0 & 0 \\ \end{bmatrix} Kk= CovXX+σ12CovXX0000000CovYY+σ22CovYY0000000CovZZ+σ32CovZZ0000

  2. 更新状态估计
    根据观测值 z k z_k zk 和预测值 x ^ k − \hat{x}_k^- x^k 进行状态更新:
    x k = x ^ k − + K k ( z k − H x ^ k − ) x_k = \hat{x}_k^- + K_k (z_k - H \hat{x}_k^-) xk=x^k+Kk(zkHx^k)

    带入观测值 z k z_k zk 和预测值 x ^ k − \hat{x}_k^- x^k

    假设 x ^ k − \hat{x}_k^- x^k 为:
    x ^ k − = [ x ^ k , 1 − x ^ k , 2 − x ^ k , 3 − ⋮ x ^ k , 7 − ] \hat{x}_k^- = \begin{bmatrix} \hat{x}_{k,1}^- \\ \hat{x}_{k,2}^- \\ \hat{x}_{k,3}^- \\ \vdots \\ \hat{x}_{k,7}^- \end{bmatrix} x^k= x^k,1x^k,2x^k,3x^k,7

    观测值 z k z_k zk 为:
    z k = [ z k , 1 z k , 2 z k , 3 ] z_k = \begin{bmatrix} z_{k,1} \\ z_{k,2} \\ z_{k,3} \end{bmatrix} zk= zk,1zk,2zk,3

    假设观测矩阵 H H H 为设计矩阵 A A A

    A = [ l f 1 G 1 m f 1 G 1 n f 1 G 1 − 1 0 0 0 l f 2 G 2 m f 2 G 2 n f 2 G 2 − 1 0 0 0 l f 3 G 3 m f 3 G 3 n f 3 G 3 − 1 0 0 0 ⋮ ⋮ ⋮ ⋮ ⋮ ⋮ ⋮ l f n G n m f n G n n f n G n − 1 0 0 0 l f 1 C 1 m f 1 C 1 n f 1 C 1 − 1 0 − 1 0 l f 2 C 2 m f 2 C 2 n f 2 C 2 − 1 0 − 1 0 l f 3 C 3 m f 3 C 3 n f 3 C 3 − 1 0 − 1 0 ⋮ ⋮ ⋮ ⋮ ⋮ ⋮ ⋮ l f n C n m f n C n n f n C n − 1 0 − 1 0 ] A = \begin{bmatrix} l_{f_1}^{G_1} & m_{f_1}^{G_1} & n_{f_1}^{G_1} & -1 & 0 & 0 & 0 \\ l_{f_2}^{G_2} & m_{f_2}^{G_2} & n_{f_2}^{G_2} & -1 & 0 & 0 & 0 \\ l_{f_3}^{G_3} & m_{f_3}^{G_3} & n_{f_3}^{G_3} & -1 & 0 & 0 & 0 \\ \vdots & \vdots & \vdots & \vdots & \vdots & \vdots & \vdots \\ l_{f_n}^{G_n} & m_{f_n}^{G_n} & n_{f_n}^{G_n} & -1 & 0 & 0 & 0 \\ l_{f_1}^{C_1} & m_{f_1}^{C_1} & n_{f_1}^{C_1} & -1 & 0 & -1 & 0 \\ l_{f_2}^{C_2} & m_{f_2}^{C_2} & n_{f_2}^{C_2} & -1 & 0 & -1 & 0 \\ l_{f_3}^{C_3} & m_{f_3}^{C_3} & n_{f_3}^{C_3} & -1 & 0 & -1 & 0 \\ \vdots & \vdots & \vdots & \vdots & \vdots & \vdots & \vdots \\ l_{f_n}^{C_n} & m_{f_n}^{C_n} & n_{f_n}^{C_n} & -1 & 0 & -1 & 0 \end{bmatrix} A= lf1G1lf2G2lf3G3lfnGnlf1C1lf2C2lf3C3lfnCnmf1G1mf2G2mf3G3mfnGnmf1C1mf2C2mf3C3mfnCnnf1G1nf2G2nf3G3nfnGnnf1C1nf2C2nf3C3nfnCn11111111000000000000111100000000

    则状态更新为:

    x k = [ x ^ k , 1 − x ^ k , 2 − x ^ k , 3 − ⋮ x ^ k , 7 − ] + K k ( [ z k , 1 z k , 2 z k , 3 ] − A [ x ^ k , 1 − x ^ k , 2 − x ^ k , 3 − ⋮ x ^ k , 7 − ] ) x_k = \begin{bmatrix} \hat{x}_{k,1}^- \\ \hat{x}_{k,2}^- \\ \hat{x}_{k,3}^- \\ \vdots \\ \hat{x}_{k,7}^- \end{bmatrix}+ K_k \left( \begin{bmatrix} z_{k,1} \\ z_{k,2} \\ z_{k,3} \end{bmatrix} - A \begin{bmatrix} \hat{x}_{k,1}^- \\ \hat{x}_{k,2}^- \\ \hat{x}_{k,3}^- \\ \vdots \\ \hat{x}_{k,7}^- \end{bmatrix} \right) xk= x^k,1x^k,2x^k,3x^k,7 +Kk zk,1zk,2zk,3 A x^k,1x^k,2x^k,3x^k,7

    简化后:
    x k = [ x ^ k , 1 − x ^ k , 2 − x ^ k , 3 − ⋮ x ^ k , 7 − ] + K k [ z k , 1 − ( A x ^ k − ) 1 z k , 2 − ( A x ^ k − ) 2 z k , 3 − ( A x ^ k − ) 3 ] x_k = \begin{bmatrix} \hat{x}_{k,1}^- \\ \hat{x}_{k,2}^- \\ \hat{x}_{k,3}^- \\ \vdots \\ \hat{x}_{k,7}^- \end{bmatrix}+ K_k \begin{bmatrix} z_{k,1} - (A \hat{x}_k^-)_{1} \\ z_{k,2} - (A \hat{x}_k^-)_{2} \\ z_{k,3} - (A \hat{x}_k^-)_{3} \end{bmatrix} xk= x^k,1x^k,2x^k,3x^k,7 +Kk zk,1(Ax^k)1zk,2(Ax^k)2zk,3(Ax^k)3

    带入卡尔曼增益 K k K_k Kk 计算结果:
    K k = [ C o v X X C o v X X + σ 1 2 0 0 0 C o v Y Y C o v Y Y + σ 2 2 0 0 0 C o v Z Z C o v Z Z + σ 3 2 0 0 0 0 0 0 0 0 0 0 0 0 ] K_k = \begin{bmatrix} \frac{Cov_{XX}}{Cov_{XX} + \sigma_1^2} & 0 & 0 \\ 0 & \frac{Cov_{YY}}{Cov_{YY} + \sigma_2^2} & 0 \\ 0 & 0 & \frac{Cov_{ZZ}}{Cov_{ZZ} + \sigma_3^2} \\ 0 & 0 & 0 \\ 0 & 0 & 0 \\ 0 & 0 & 0 \\ 0 & 0 & 0 \\ \end{bmatrix} Kk= CovXX+σ12CovXX0000000CovYY+σ22CovYY0000000CovZZ+σ32CovZZ0000

    最终状态更新为:
    x k = [ x ^ k , 1 − x ^ k , 2 − x ^ k , 3 − ⋮ x ^ k , 7 − ] + [ C o v X X C o v X X + σ 1 2 0 0 0 C o v Y Y C o v Y Y + σ 2 2 0 0 0 C o v Z Z C o v Z Z + σ 3 2 0 0 0 0 0 0 0 0 0 0 0 0 ] [ z k , 1 − ( A x ^ k − ) 1 z k , 2 − ( A x ^ k − ) 2 z k , 3 − ( A x ^ k − ) 3 ] x_k = \begin{bmatrix} \hat{x}_{k,1}^- \\ \hat{x}_{k,2}^- \\ \hat{x}_{k,3}^- \\ \vdots \\ \hat{x}_{k,7}^- \end{bmatrix}+ \begin{bmatrix} \frac{Cov_{XX}}{Cov_{XX} + \sigma_1^2} & 0 & 0 \\ 0 & \frac{Cov_{YY}}{Cov_{YY} + \sigma_2^2} & 0 \\ 0 & 0 & \frac{Cov_{ZZ}}{Cov_{ZZ} + \sigma_3^2} \\ 0 & 0 & 0 \\ 0 & 0 & 0 \\ 0 & 0 & 0 \\ 0 & 0 & 0 \\ \end{bmatrix} \begin{bmatrix} z_{k,1} - (A \hat{x}_k^-)_{1} \\ z_{k,2} - (A \hat{x}_k^-)_{2} \\ z_{k,3} - (A \hat{x}_k^-)_{3} \end{bmatrix} xk= x^k,1x^k,2x^k,3x^k,7 + CovXX+σ12CovXX0000000CovYY+σ22CovYY0000000CovZZ+σ32CovZZ0000 zk,1(Ax^k)1zk,2(Ax^k)2zk,3(Ax^k)3

  3. 更新误差协方差矩阵
    更新误差协方差矩阵 P k P_k Pk

    P k = ( I − K k A ) P k − P_k = (I - K_k A) P_k^- Pk=(IKkA)Pk

    带入计算:

    假设 I I I 为单位矩阵:
    I = [ 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 ] I = \begin{bmatrix} 1 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 1 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 1 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 1 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 0 & 0 & 0 & 1 \\ \end{bmatrix} I= 1000000010000000100000001000000010000000100000001

    卡尔曼增益 K k K_k Kk 为:
    K k = [ C o v X X C o v X X + σ 1 2 0 0 0 C o v Y Y C o v Y Y + σ 2 2 0 0 0 C o v Z Z C o v Z Z + σ 3 2 0 0 0 0 0 0 0 0 0 0 0 0 ] K_k = \begin{bmatrix} \frac{Cov_{XX}}{Cov_{XX} + \sigma_1^2} & 0 & 0 \\ 0 & \frac{Cov_{YY}}{Cov_{YY} + \sigma_2^2} & 0 \\ 0 & 0 & \frac{Cov_{ZZ}}{Cov_{ZZ} + \sigma_3^2} \\ 0 & 0 & 0 \\ 0 & 0 & 0 \\ 0 & 0 & 0 \\ 0 & 0 & 0 \\ \end{bmatrix} Kk= CovXX+σ12CovXX0000000CovYY+σ22CovYY0000000CovZZ+σ32CovZZ0000

    假设观测矩阵 H H H 为设计矩阵 A A A
    A = [ l f 1 G 1 m f 1 G 1 n f 1 G 1 − 1 0 0 0 l f 2 G 2 m f 2 G 2 n f 2 G 2 − 1 0 0 0 l f 3 G 3 m f 3 G 3 n f 3 G 3 − 1 0 0 0 ⋮ ⋮ ⋮ ⋮ ⋮ ⋮ ⋮ l f n G n m f n G n n f n G n − 1 0 0 0 l f 1 C 1 m f 1 C 1 n f 1 C 1 − 1 0 − 1 0 l f 2 C 2 m f 2 C 2 n f 2 C 2 − 1 0 − 1 0 l f 3 C 3 m f 3 C 3 n f 3 C 3 − 1 0 − 1 0 ⋮ ⋮ ⋮ ⋮ ⋮ ⋮ ⋮ l f n C n m f n C n n f n C n − 1 0 − 1 0 ] A = \begin{bmatrix} l_{f_1}^{G_1} & m_{f_1}^{G_1} & n_{f_1}^{G_1} & -1 & 0 & 0 & 0 \\ l_{f_2}^{G_2} & m_{f_2}^{G_2} & n_{f_2}^{G_2} & -1 & 0 & 0 & 0 \\ l_{f_3}^{G_3} & m_{f_3}^{G_3} & n_{f_3}^{G_3} & -1 & 0 & 0 & 0 \\ \vdots & \vdots & \vdots & \vdots & \vdots & \vdots & \vdots \\ l_{f_n}^{G_n} & m_{f_n}^{G_n} & n_{f_n}^{G_n} & -1 & 0 & 0 & 0 \\ l_{f_1}^{C_1} & m_{f_1}^{C_1} & n_{f_1}^{C_1} & -1 & 0 & -1 & 0 \\ l_{f_2}^{C_2} & m_{f_2}^{C_2} & n_{f_2}^{C_2} & -1 & 0 & -1 & 0 \\ l_{f_3}^{C_3} & m_{f_3}^{C_3} & n_{f_3}^{C_3} & -1 & 0 & -1 & 0 \\ \vdots & \vdots & \vdots & \vdots & \vdots & \vdots & \vdots \\ l_{f_n}^{C_n} & m_{f_n}^{C_n} & n_{f_n}^{C_n} & -1 & 0 & -1 & 0 \end{bmatrix} A= lf1G1lf2G2lf3G3lfnGnlf1C1lf2C2lf3C3lfnCnmf1G1mf2G2mf3G3mfnGnmf1C1mf2C2mf3C3mfnCnnf1G1nf2G2nf3G3nfnGnnf1C1nf2C2nf3C3nfnCn11111111000000000000111100000000

    则更新误差协方差矩阵为:
    P k = ( [ 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 ] − [ C o v X X C o v X X + σ 1 2 0 0 0 C o v Y Y C o v Y Y + σ 2 2 0 0 0 C o v Z Z C o v Z Z + σ 3 2 0 0 0 0 0 0 0 0 0 0 0 0 ] [ l f 1 G 1 m f 1 G 1 n f 1 G 1 − 1 0 0 0 l f 2 G 2 m f 2 G 2 n f 2 G 2 − 1 0 0 0 l f 3 G 3 m f 3 G 3 n f 3 G 3 − 1 0 0 0 ⋮ ⋮ ⋮ ⋮ ⋮ ⋮ ⋮ l f n G n m f n G n n f n G n − 1 0 0 0 l f 1 C 1 m f 1 C 1 n f 1 C 1 − 1 0 − 1 0 l f 2 C 2 m f 2 C 2 n f 2 C 2 − 1 0 − 1 0 l f 3 C 3 m f 3 C 3 n f 3 C 3 − 1 0 − 1 0 ⋮ ⋮ ⋮ ⋮ ⋮ ⋮ ⋮ l f n C n m f n C n n f n C n − 1 0 − 1 0 ] ) [ C o v X X 0 0 0 0 0 0 C o v Y Y 0 0 0 0 0 0 C o v Z Z 0 0 0 0 0 0 C o v δ t δ t 0 0 0 0 0 0 ∗ ∗ 0 0 0 0 ∗ ∗ ] P_k = \left( \begin{bmatrix} 1 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 1 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 1 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 1 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 0 & 0 & 0 & 1 \\ \end{bmatrix} - \begin{bmatrix} \frac{Cov_{XX}}{Cov_{XX} + \sigma_1^2} & 0 & 0 \\ 0 & \frac{Cov_{YY}}{Cov_{YY} + \sigma_2^2} & 0 \\ 0 & 0 & \frac{Cov_{ZZ}}{Cov_{ZZ} + \sigma_3^2} \\ 0 & 0 & 0 \\ 0 & 0 & 0 \\ 0 & 0 & 0 \\ 0 & 0 & 0 \\ \end{bmatrix} \begin{bmatrix} l_{f_1}^{G_1} & m_{f_1}^{G_1} & n_{f_1}^{G_1} & -1 & 0 & 0 & 0 \\ l_{f_2}^{G_2} & m_{f_2}^{G_2} & n_{f_2}^{G_2} & -1 & 0 & 0 & 0 \\ l_{f_3}^{G_3} & m_{f_3}^{G_3} & n_{f_3}^{G_3} & -1 & 0 & 0 & 0 \\ \vdots & \vdots & \vdots & \vdots & \vdots & \vdots & \vdots \\ l_{f_n}^{G_n} & m_{f_n}^{G_n} & n_{f_n}^{G_n} & -1 & 0 & 0 & 0 \\ l_{f_1}^{C_1} & m_{f_1}^{C_1} & n_{f_1}^{C_1} & -1 & 0 & -1 & 0 \\ l_{f_2}^{C_2} & m_{f_2}^{C_2} & n_{f_2}^{C_2} & -1 & 0 & -1 & 0 \\ l_{f_3}^{C_3} & m_{f_3}^{C_3} & n_{f_3}^{C_3} & -1 & 0 & -1 & 0 \\ \vdots & \vdots & \vdots & \vdots & \vdots & \vdots & \vdots \\ l_{f_n}^{C_n} & m_{f_n}^{C_n} & n_{f_n}^{C_n} & -1 & 0 & -1 & 0 \end{bmatrix} \right) \begin{bmatrix} Cov_{XX} & 0 & 0 & 0 & 0 & 0 \\ 0 & Cov_{YY} & 0 & 0 & 0 & 0 \\ 0 & 0 & Cov_{ZZ} & 0 & 0 & 0 \\ 0 & 0 & 0 & Cov_{\delta t \delta t} & 0 & 0 \\ 0 & 0 & 0 & 0 & * & * \\ 0 & 0 & 0 & 0 & * & * \\ \end{bmatrix} Pk= 1000000010000000100000001000000010000000100000001 CovXX+σ12CovXX0000000CovYY+σ22CovYY0000000CovZZ+σ32CovZZ0000 lf1G1lf2G2lf3G3lfnGnlf1C1lf2C2lf3C3lfnCnmf1G1mf2G2mf3G3mfnGnmf1C1mf2C2mf3C3mfnCnnf1G1nf2G2nf3G3nfnGnnf1C1nf2C2nf3C3nfnCn11111111000000000000111100000000 CovXX000000CovYY000000CovZZ000000Covδtδt0000000000

    进一步计算得到:进一步计算得到:
    P k = ( [ 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 ] − [ C o v X X C o v X X + σ 1 2 0 0 0 C o v Y Y C o v Y Y + σ 2 2 0 0 0 C o v Z Z C o v Z Z + σ 3 2 0 0 0 0 0 0 0 0 0 0 0 0 ] ) [ C o v X X 0 0 0 0 0 0 C o v Y Y 0 0 0 0 0 0 C o v Z Z 0 0 0 0 0 0 C o v δ t δ t 0 0 0 0 0 0 ∗ ∗ 0 0 0 0 ∗ ∗ ] P_k = \left( \begin{bmatrix} 1 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 1 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 1 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 1 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 0 & 0 & 0 & 1 \\ \end{bmatrix} - \begin{bmatrix} \frac{Cov_{XX}}{Cov_{XX} + \sigma_1^2} & 0 & 0 \\ 0 & \frac{Cov_{YY}}{Cov_{YY} + \sigma_2^2} & 0 \\ 0 & 0 & \frac{Cov_{ZZ}}{Cov_{ZZ} + \sigma_3^2} \\ 0 & 0 & 0 \\ 0 & 0 & 0 \\ 0 & 0 & 0 \\ 0 & 0 & 0 \\ \end{bmatrix} \right) \begin{bmatrix} Cov_{XX} & 0 & 0 & 0 & 0 & 0 \\ 0 & Cov_{YY} & 0 & 0 & 0 & 0 \\ 0 & 0 & Cov_{ZZ} & 0 & 0 & 0 \\ 0 & 0 & 0 & Cov_{\delta t \delta t} & 0 & 0 \\ 0 & 0 & 0 & 0 & * & * \\ 0 & 0 & 0 & 0 & * & * \\ \end{bmatrix} Pk= 1000000010000000100000001000000010000000100000001 CovXX+σ12CovXX0000000CovYY+σ22CovYY0000000CovZZ+σ32CovZZ0000 CovXX000000CovYY000000CovZZ000000Covδtδt0000000000

    最终得到:
    P k = [ ( 1 − C o v X X C o v X X + σ 1 2 ) C o v X X 0 0 0 0 0 0 ( 1 − C o v Y Y C o v Y Y + σ 2 2 ) C o v Y Y 0 0 0 0 0 0 ( 1 − C o v Z Z C o v Z Z + σ 3 2 ) C o v Z Z 0 0 0 0 0 0 C o v δ t δ t 0 0 0 0 0 0 ∗ ∗ 0 0 0 0 ∗ ∗ ] P_k = \begin{bmatrix} \left(1 - \frac{Cov_{XX}}{Cov_{XX} + \sigma_1^2}\right) Cov_{XX} & 0 & 0 & 0 & 0 & 0 \\ 0 & \left(1 - \frac{Cov_{YY}}{Cov_{YY} + \sigma_2^2}\right) Cov_{YY} & 0 & 0 & 0 & 0 \\ 0 & 0 & \left(1 - \frac{Cov_{ZZ}}{Cov_{ZZ} + \sigma_3^2}\right) Cov_{ZZ} & 0 & 0 & 0 \\ 0 & 0 & 0 & Cov_{\delta t \delta t} & 0 & 0 \\ 0 & 0 & 0 & 0 & * & * \\ 0 & 0 & 0 & 0 & * & * \\ \end{bmatrix} Pk= (1CovXX+σ12CovXX)CovXX000000(1CovYY+σ22CovYY)CovYY000000(1CovZZ+σ32CovZZ)CovZZ000000Covδtδt0000000000

16.2 站星双差Kalman滤波伪距差分定位流程

站星双差仅有位置状态量,所以其Kalman滤波流程更加简单。

对于时间更新步骤,基本就使用单点结果对概略位置进行填充,所以实际上已经降级为最小二乘,因为前后历元状态量在时间序列上不存在相关性。

但对于观测更新过程,观测值的方差需要考虑因星间作差引入的相关性。

对于没有做星间单差之前

V u d = [ p 1 p 2 p 3 p 4 ] R u d = [ σ 1 2 0 0 0 0 σ 2 2 0 0 0 0 σ 3 2 0 0 0 0 σ 4 2 ] V_{ud} = \begin{bmatrix} p^1 \\ p^2 \\ p^3 \\ p^4 \end{bmatrix} \quad R_{ud} = \begin{bmatrix} \sigma_1^2 & 0 & 0 & 0 \\ 0 & \sigma_2^2 & 0 & 0 \\ 0 & 0 & \sigma_3^2 & 0 \\ 0 & 0 & 0 & \sigma_4^2 \end{bmatrix} Vud= p1p2p3p4 Rud= σ120000σ220000σ320000σ42

星间单差之后

V s d = [ p 2 − p 1 p 3 − p 1 p 4 − p 1 ] R s d = [ σ 2 2 + σ 1 2 σ 2 2 + σ 1 2 σ 2 2 + σ 1 2 σ 1 2 + σ 3 2 σ 1 2 + σ 3 2 σ 1 2 + σ 3 2 σ 1 2 + σ 4 2 σ 1 2 + σ 4 2 σ 1 2 + σ 4 2 ] V_{sd} = \begin{bmatrix} p^2 - p^1 \\ p^3 - p^1 \\ p^4 - p^1 \end{bmatrix} \quad R_{sd} = \begin{bmatrix} \sigma_2^2 + \sigma_1^2 & \sigma_2^2 + \sigma_1^2 & \sigma_2^2 + \sigma_1^2 \\ \sigma_1^2 + \sigma_3^2 & \sigma_1^2 + \sigma_3^2 & \sigma_1^2 + \sigma_3^2 \\ \sigma_1^2 + \sigma_4^2 & \sigma_1^2 + \sigma_4^2 & \sigma_1^2 + \sigma_4^2 \end{bmatrix} Vsd= p2p1p3p1p4p1 Rsd= σ22+σ12σ12+σ32σ12+σ42σ22+σ12σ12+σ32σ12+σ42σ22+σ12σ12+σ32σ12+σ42

其余流程相同,不再推导。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/26050.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用 PlatformIO 将文件上传到 ESP32-S3 的 SPIFFS 文件系统

PlatformIO环境 将文件上传到 ESP32-S3 的 SPIFFS 文件系统 介绍: PlatformIO 是一个流行的开发平台,用于编写、构建和上传嵌入式项目。ESP32-S3 是 Espressif 推出的一款功能强大的嵌入式开发板,具有丰富的外设和通信接口。本文将介绍如何…

前端 JS 经典:动态执行 JS

前言:怎么将字符串当代码执行。有 4 中方式实现 eval、setTimeout、创建 script 标签、new Function 1. eval 特点:同步执行,当前作用域 var name "yq"; function exec(string) {var name "yqcoder";eval(string); …

「C系列」C 数组

文章目录 一、C 数组1. 声明数组2. 初始化数组3. 访问数组元素4. 数组越界5. 多维数组 二、C 操作数组的方法有哪些三、C 数组-应用场景1. 存储固定数量的数据2. 实现算法(如排序)3. 处理数据集合 四、相关链接 一、C 数组 在C语言中,数组是…

Java 类与对象 -- Java 语言的类与对象、构造器、static、final、包和 JAR

大家好,我是栗筝i,这篇文章是我的 “栗筝i 的 Java 技术栈” 专栏的第 006 篇文章,在 “栗筝i 的 Java 技术栈” 这个专栏中我会持续为大家更新 Java 技术相关全套技术栈内容。专栏的主要目标是已经有一定 Java 开发经验,并希望进一步完善自己对整个 Java 技术体系来充实自…

认识Spring中的BeanFactoryPostProcessor

先看下AI的介绍 在Spring 5.3.x中,BeanFactoryPostProcessor是一个重要的接口,用于在Spring IoC容器实例化任何bean之前,读取bean的定义(配置元数据),并可能对其进行修改。以下是关于BeanFactoryPostProce…

【学习笔记】finalshell上传文件夹、上传文件失败或速度为0

出现标题所述的情况,大概率是finalshell上传文件的过程中的权限不够。 可参照:Finalshell上传文件失败或者进度总为百分之零解决方法 如果不成功,建议关闭客户端重试。 同时建议在设置finalshell的ssh连接时根据不同用户设置多个连接&#xf…

OJ刷题——2086.AI=?、2087.剪花布条、KPM算法

2086.AI&#xff1f; 题目描述 Problem - 2086 运行代码 #include <iostream> #include <cstdio> using namespace std; const int N 3005; int main() {int n;double Ao, An;double num[N];while (cin>>n) {cin >> Ao>>An;for (int i 1; i…

java技术专家面试指南100问【java学习+面试宝典】(二)

适配器模式是什么&#xff1f;什么时候使用&#xff1f; 适配器模式&#xff08;Adapter Pattern&#xff09;是作为两个不兼容的接口之间的桥梁。这种类型的设计模式属于结构型模式&#xff0c;它结合了两个独立接口的功能。适配器模式提供对接口的转换。如果你的客户端使用某…

kubernetes(k8s)集群部署(2)

目录 k8s集群类型 k8s集群规划&#xff1a; 1.基础环境准备&#xff1a; &#xff08;1&#xff09;保证可以连接外网 &#xff08;2&#xff09;关闭禁用防火墙和selinux &#xff08;3&#xff09;同步阿里云服务器时间&#xff08;达到集群之间时间同步&#xff09; &…

html+CSS+js部分基础运用20

根据下方页面效果如图1所示&#xff0c;编写程序&#xff0c;代码放入图片下方表格内 图1.效果图 <!DOCTYPE html> <html lang"en"> <head> <meta charset"UTF-8"> <meta http-equiv"X-UA-Compatible" conte…

LabVIEW调用DLL时需注意的问题

在LabVIEW中调用DLL&#xff08;动态链接库&#xff09;是实现与外部代码集成的一种强大方式&#xff0c;但也存在一些常见的陷阱和复杂性。本文将从参数传递、数据类型匹配、内存管理、线程安全、调试和错误处理等多个角度详细介绍LabVIEW调用DLL时需要注意的问题&#xff0c;…

UE5实战篇二(对话系统1):导语

实现一款商业游戏中使用的对话系统插件。 虚幻商店链接&#xff1a; https://www.unrealengine.com/marketplace/zh-CN/product/0b84eaa9343543f58138bc4956a2fa8f 1. 内容可配置 2. 多分支对话、旁白对话、对话序列动画、文字显示及各种特效 3. 可配置文字、音效、呈现位…

UML 统一建模语言简介

UML&#xff08;统一建模语言&#xff0c;Unified Modeling Language&#xff09;是一种标准化的建模语言&#xff0c;广泛用于软件工程中以可视化、描述、构建和记录系统的结构和行为。UML 提供了多种图表&#xff0c;用于不同的建模需求。以下是 UML 的主要使用方法和一些常见…

邻接矩阵深度优先遍历

深度优先遍历&#xff0c;就是一条路&#xff0c;走到底&#xff0c;然后再走下一个岔路。 下面代码就主要使用递归来进行&#xff0c;当然也可以借助栈来实现。 private void traverse(char v, boolean[] visited) {int index _getIndexOfV(v);//获取v顶点在vertexS字符数组…

【Spring Boot】过滤敏感词的两种实现

文章目录 项目场景前置知识前缀树 实现方式解决方案一&#xff1a;读取敏感词文件生成前缀树构建敏感词过滤器1. 导入敏感词文件 src/main/resources/sensitive_words.txt2. 构建敏感词过滤器 SensitiveFilter3. 测试与使用 解决方案二&#xff1a;使用第三方插件 houbb/sensit…

Prisma数据库ORM框架学习

初始化项目 中文网站 点击快速开始,点击创建sql项目,后面一步一步往后走 这个博主也挺全的,推荐下 可以看这个页面初始化项目跟我下面是一样的,这里用得是ts,我下面是js,不需要额外的配置了 1.vscode打开一个空文件夹 2.npm init -y 初始化package.json 3.安装相关依赖 …

「前端+鸿蒙」鸿蒙应用开发-TS接口-语法多态

在 TypeScript 中&#xff0c;接口&#xff08;Interfaces&#xff09;是一种强大的方式来定义对象的结构&#xff0c;它们用于类型检查和确保对象符合特定的结构。接口也可以用于类&#xff0c;实现类似多态的特性。以下是 TypeScript 中接口的语法和多态的快速入门指南。 TS快…

常用的通信协议

最近在做项目&#xff0c;用到了一些通信协议&#xff0c;这里详细整理一下相关的通信协议&#xff0c;方便以后查阅。 常用的通信协议 单工 半双工 全双工单工通信&#xff08;Simplex Communication&#xff09;半双工(Half-duplex Communication)全双工&#xff08;Full-dup…

速卖通如何放关联?

大家都知道&#xff0c;想要进行多账号操作必须一再小心&#xff0c;否则会有很大的关联风险&#xff0c;而账号关联所带来的后果是卖家绝对不能轻视的&#xff0c;严重的话会导致封号&#xff0c;这样一来自己前期的辛苦运营就全都打水漂了&#xff0c;因此防关联很重要&#…

Python框架scrapy有什么天赋异禀

Scrapy框架与一般的爬虫代码之间有几个显著的区别&#xff0c;这些差异主要体现在设计模式、代码结构、执行效率以及可扩展性等方面。下面是一些关键的不同点&#xff1a; 结构化与模块化&#xff1a; Scrapy&#xff1a;提供了高度结构化的框架&#xff0c;包括定义好的Spider…