卡尔曼滤波公式及其详细推导(不涉及矩阵求导)

卡尔曼滤波公式及推导

1 前言

卡尔曼滤波 (Kalman Filter) 是一种关于线性离散系统滤波问题的递推算法。其使用递推的形式对系统的状态进行估计,以测量中产生的误差为依据对估计值进行校正,使被估计的状态不断接近真实值。

卡尔曼滤波的基本思想:根据系统的状态空间方程,利用前一时刻系统状态的估计值和当前时刻系统的观测值对状态变量进行最优估计,求出当前时刻系统状态的估计值。

假设线性离散系统的状态空间方程如下:

{ X ( k + 1 ) = A X ( k ) + v ( k ) Y ( k ) = H X ( k ) + w ( k ) (1.1) \left\{ \begin{aligned} X(k+1) &= AX(k) + v(k) \\ Y(k) &= HX(k) + w(k) \tag{1.1} \end{aligned} \right. {X(k+1)Y(k)=AX(k)+v(k)=HX(k)+w(k)(1.1)

式中, A A A 为状态矩阵, H H H 为输出矩阵。 X ( k ) X(k) X(k) k k k 时刻的系统状态, Y ( k ) Y(k) Y(k) k k k 时刻的系统输出,即系统的观测值。 v ( k ) v(k) v(k) 是过程噪声,服从均值为 0 0 0 ,方差为 Q k Q_k Qk 的高斯分布; w ( k ) w(k) w(k) 是传感器测量噪声,服从均值为 0 0 0 ,方差为 R k R_k Rk 的高斯分布。 v ( k ) v(k) v(k) w ( k ) w(k) w(k) 相互独立。 Q k Q_k Qk R k R_k Rk 都是协方差矩阵、对称半正定矩阵。 Q k = E { v ( k ) v T ( k ) } Q_k = E\left\{v(k)v^T(k)\right\} Qk=E{v(k)vT(k)} R k = E { w ( k ) w T ( k ) } R_k = E\left\{w(k)w^T(k)\right\} Rk=E{w(k)wT(k)}

2 卡尔曼滤波公式

2.1 预测

根据 k k k 时刻的最优状态估计预测 k + 1 k+1 k+1 时刻的状态和误差的协方差矩阵。

X ( k + 1 ∣ k ) = A X ( k ∣ k ) (2.1) X(k+1|k) = AX(k|k) \tag{2.1} X(k+1k)=AX(kk)(2.1)
P ( k + 1 ∣ k ) = A P ( k ∣ k ) A T + Q k (2.2) P(k+1|k) = AP(k|k)A^T + Q_k \tag{2.2} P(k+1k)=AP(kk)AT+Qk(2.2)

( 2.1 ) (2.1) (2.1) 是状态预测方程。其中, X ( k ∣ k ) X(k|k) X(kk) k k k 时刻系统状态的最优估计, X ( k + 1 ∣ k ) X(k+1|k) X(k+1k) 是根据 k k k 时刻的系统状态最优估计 X ( k ∣ k ) X(k|k) X(kk) k + 1 k+1 k+1 时刻系统状态的预测。

( 2.2 ) (2.2) (2.2) 是误差的协方差矩阵预测方程。其中, P ( k ∣ k ) P(k|k) P(kk) k k k 时刻系统状态的最优估计 X ( k ∣ k ) X(k|k) X(kk) 对应的误差协方差矩阵, P ( k + 1 ∣ k ) P(k+1|k) P(k+1k) 是系统状态的预测 X ( k + 1 ∣ k ) X(k+1|k) X(k+1k) 对应的误差协方差矩阵。 Q k Q_k Qk k k k 时刻系统过程噪声的协方差矩阵。

2.2 校正

根据系统 k + 1 k+1 k+1 时刻实际的观测值(系统输出)对上一步得到的 k + 1 k+1 k+1 时刻系统状态的预测进行校正,得到在 k + 1 k+1 k+1 时刻系统状态的最优估计。

X ( k + 1 ∣ k + 1 ) = X ( k + 1 ∣ k ) + K ( k + 1 ) [ Y ( k + 1 ) − H X ( k + 1 ∣ k ) ] (2.3) X(k+1|k+1) = X(k+1|k) + K(k+1) \left[Y(k+1) - HX(k+1|k)\right] \tag{2.3} X(k+1k+1)=X(k+1k)+K(k+1)[Y(k+1)HX(k+1k)](2.3)

其中, X ( k + 1 ∣ k + 1 ) X(k+1|k+1) X(k+1k+1) k + 1 k+1 k+1 时刻系统状态的最优估计; K ( k + 1 ) K(k+1) K(k+1) 是卡尔曼增益矩阵,其计算方法如下:

K ( k + 1 ) = P ( k + 1 ∣ k ) H T [ H P ( k + 1 ∣ k ) H T + R k + 1 ] − 1 (2.4) K(k+1) = P(k+1|k)H^T\left[HP(k+1|k)H^T + R_{k+1}\right]^{-1} \tag{2.4} K(k+1)=P(k+1k)HT[HP(k+1k)HT+Rk+1]1(2.4)

其中, R k + 1 R_{k+1} Rk+1 k + 1 k+1 k+1 时刻测量噪声的协方差矩阵。

为了能使递推算法继续进行,还需要更新 k + 1 k+1 k+1 时刻的误差协方差矩阵:

P ( k + 1 ∣ k + 1 ) = [ I − K ( k + 1 ) H ] P ( k + 1 ∣ k ) (2.5) P(k+1|k+1) = \left[I - K(k+1)H\right]P(k+1|k) \tag{2.5} P(k+1k+1)=[IK(k+1)H]P(k+1k)(2.5)

其中, I I I 为单位矩阵, P ( k + 1 ∣ k + 1 ) P(k+1|k+1) P(k+1k+1) k + 1 k+1 k+1 时刻系统状态的最优估计 X ( k + 1 ∣ k + 1 ) X(k+1|k+1) X(k+1k+1) 对应的误差协方差矩阵。

以上五个公式在推导过程中的对应关系:

  • ( 2.1 ) → ( 3.1 ) (2.1) \rightarrow (3.1) (2.1)(3.1)
  • ( 2.2 ) → ( 3.14 ) (2.2) \rightarrow (3.14) (2.2)(3.14)
  • ( 2.3 ) → ( 3.4 ) (2.3) \rightarrow (3.4) (2.3)(3.4)
  • ( 2.4 ) → ( 3.19 ) (2.4) \rightarrow (3.19) (2.4)(3.19)
  • ( 2.5 ) → ( 3.20 ) (2.5) \rightarrow (3.20) (2.5)(3.20)

3 推导过程

假设在系统运行的过程中,已经得到了 k k k 时刻系统状态的最优估计 X ( k ∣ k ) X(k|k) X(kk) 。那么如何得到 k + 1 k+1 k+1 时刻系统状态的最优估计呢?

根据系统的状态空间方程,式 ( 1.1 ) (1.1) (1.1) ,我们可以使用当前状态的最优估计 X ( k ∣ k ) X(k|k) X(kk) 预测下一时刻的系统状态 X ( k + 1 ∣ k ) X(k+1|k) X(k+1k) ,即:

X ( k + 1 ∣ k ) = A X ( k ∣ k ) (3.1) X(k+1|k) = AX(k|k) \tag{3.1} X(k+1k)=AX(kk)(3.1)

同时,也可以预测下一时刻的测量值,即系统输出:

Y ( k + 1 ∣ k ) = H X ( k + 1 ∣ k ) (3.2) Y(k+1|k) = HX(k+1|k) \tag{3.2} Y(k+1k)=HX(k+1k)(3.2)

当下一时刻到来时,我们可以得到实际的测量值 Y ( k + 1 ) Y(k+1) Y(k+1) 。显然,实际的测量值与预测的测量值之间存在误差:

Y ( k + 1 ) − Y ( k + 1 ∣ k ) = Y ( k + 1 ) − H X ( k + 1 ∣ k ) (3.3) Y(k+1) - Y(k+1|k) = Y(k+1) - HX(k+1|k) \tag{3.3} Y(k+1)Y(k+1k)=Y(k+1)HX(k+1k)(3.3)

根据 1 前言 中卡尔曼滤波的基本思想,我们要用式 ( 3.3 ) (3.3) (3.3) 表示的误差对系统状态的预测 X ( k + 1 ∣ k ) X(k+1|k) X(k+1k) 进行校正,从而得到系统状态的最优估计 X ( k + 1 ∣ k + 1 ) X(k+1|k+1) X(k+1k+1) ,即:

X ( k + 1 ∣ k + 1 ) = X ( k + 1 ∣ k ) + K ( k + 1 ) [ Y ( k + 1 ) − Y ( k + 1 ∣ k ) ] = X ( k + 1 ∣ k ) + K ( k + 1 ) [ Y ( k + 1 ) − H X ( k + 1 ∣ k ) ] (3.4) \begin{aligned} X(k+1|k+1) &= X(k+1|k) + K(k+1)\left[Y(k+1) - Y(k+1|k)\right] \\ &= X(k+1|k) + K(k+1)\left[Y(k+1) - HX(k+1|k)\right] \tag{3.4} \end{aligned} X(k+1k+1)=X(k+1k)+K(k+1)[Y(k+1)Y(k+1k)]=X(k+1k)+K(k+1)[Y(k+1)HX(k+1k)](3.4)

其中, K ( k + 1 ) K(k+1) K(k+1) 是待求的卡尔曼增益矩阵。

K ( k + 1 ) K(k+1) K(k+1) 的取值应该满足最优估计误差的协方差矩阵 P ( k + 1 ∣ k + 1 ) P(k+1|k+1) P(k+1k+1) 最小。

下面我们来求卡尔曼增益矩阵 K ( k + 1 ) K(k+1) K(k+1)

k + 1 k+1 k+1 时刻的系统状态真实值 X ( k + 1 ) X(k+1) X(k+1) 与系统状态的最优估计 X ( k + 1 ∣ k + 1 ) X(k+1|k+1) X(k+1k+1) 之间的误差为 e ( k + 1 ∣ k + 1 ) e(k+1|k+1) e(k+1k+1)
k + 1 k+1 k+1 时刻的系统状态真实值 X ( k + 1 ) X(k+1) X(k+1) 与系统状态的预测值 X ( k + 1 ∣ k ) X(k+1|k) X(k+1k) 之间的误差为 e ( k + 1 ∣ k ) e(k+1|k) e(k+1k)

有:

e ( k + 1 ∣ k + 1 ) = X ( k + 1 ) − X ( k + 1 ∣ k + 1 ) (3.5) e(k+1|k+1) = X(k+1) - X(k+1|k+1) \tag{3.5} e(k+1k+1)=X(k+1)X(k+1k+1)(3.5)

e ( k + 1 ∣ k ) = X ( k + 1 ) − X ( k + 1 ∣ k ) (3.6) e(k+1|k) = X(k+1) - X(k+1|k) \tag{3.6} e(k+1k)=X(k+1)X(k+1k)(3.6)

将状态空间方程 ( 1.1 ) (1.1) (1.1) 和式 ( 3.4 ) (3.4) (3.4)代入式 ( 3.5 ) (3.5) (3.5) ,得:

e ( k + 1 ∣ k + 1 ) = X ( k + 1 ) − X ( k + 1 ∣ k + 1 ) = A X ( k ) + v ( k ) − X ( k + 1 ∣ k ) − K ( k + 1 ) [ Y ( k + 1 ) − H X ( k + 1 ∣ k ) ] = A X ( k ) + v ( k ) − A X ( k ∣ k ) − K ( k + 1 ) [ H A X ( k ) + H v ( k ) + w ( k + 1 ) − H A X ( k ∣ k ) ] = A [ X ( k ) − X ( k ∣ k ) ] − K ( k + 1 ) H A [ X ( k ) − X ( k ∣ k ) ] + v ( k ) − K ( k + 1 ) H v ( k ) − K ( k + 1 ) w ( k + 1 ) = [ I − K ( k + 1 ) H ] A [ X ( k ) − X ( k ∣ k ) ] + [ I − K ( k + 1 ) H ] v ( k ) − K ( k + 1 ) w ( k + 1 ) = [ I − K ( k + 1 ) H ] A e ( k ∣ k ) + [ I − K ( k + 1 ) H ] v ( k ) − K ( k + 1 ) w ( k + 1 ) (3.7) \begin{aligned} e(k+1|k+1) =& X(k+1) - X(k+1|k+1) \\ =& AX(k) + v(k) - X(k+1|k) - K(k+1)\left[Y(k+1) - HX(k+1|k)\right] \\ =& AX(k) + v(k) - AX(k|k) \\ &- K(k+1)\left[HAX(k) + Hv(k) + w(k+1) - HAX(k|k)\right] \\ =& A\left[X(k) - X(k|k)\right] - K(k+1)HA\left[X(k) - X(k|k)\right] + v(k) \\ &- K(k+1)Hv(k) - K(k+1)w(k+1) \\ =& \left[I - K(k+1)H\right]A\left[X(k) - X(k|k)\right] + \left[I - K(k+1)H\right]v(k) - K(k+1)w(k+1) \\ =& \left[I - K(k+1)H\right]Ae(k|k) + \left[I - K(k+1)H\right]v(k) - K(k+1)w(k+1) \tag{3.7} \end{aligned} e(k+1k+1)======X(k+1)X(k+1k+1)AX(k)+v(k)X(k+1k)K(k+1)[Y(k+1)HX(k+1k)]AX(k)+v(k)AX(kk)K(k+1)[HAX(k)+Hv(k)+w(k+1)HAX(kk)]A[X(k)X(kk)]K(k+1)HA[X(k)X(kk)]+v(k)K(k+1)Hv(k)K(k+1)w(k+1)[IK(k+1)H]A[X(k)X(kk)]+[IK(k+1)H]v(k)K(k+1)w(k+1)[IK(k+1)H]Ae(kk)+[IK(k+1)H]v(k)K(k+1)w(k+1)(3.7)

将状态空间方程 ( 1.1 ) (1.1) (1.1) 和式 ( 3.1 ) (3.1) (3.1) 代入式 ( 3.6 ) (3.6) (3.6) ,得:

e ( k + 1 ∣ k ) = X ( k + 1 ) − X ( k + 1 ∣ k ) = A X ( k ) + v ( k ) − A X ( k ∣ k ) = A [ X ( k ) − X ( k ∣ k ) ] + v ( k ) = A e ( k ∣ k ) + v ( k ) (3.8) \begin{aligned} e(k+1|k) &= X(k+1) - X(k+1|k) \\ &= AX(k) + v(k) - AX(k|k) \\ &= A\left[X(k)- X(k|k)\right] + v(k) \\ &= Ae(k|k) + v(k) \tag{3.8} \end{aligned} e(k+1k)=X(k+1)X(k+1k)=AX(k)+v(k)AX(kk)=A[X(k)X(kk)]+v(k)=Ae(kk)+v(k)(3.8)

设:
系统过程噪声 v ( k ) v(k) v(k) 的协方差矩阵
Q k = E { v ( k ) v T ( k ) } (3.9) Q_k = E\left\{v(k)v^T(k)\right\} \tag{3.9} Qk=E{v(k)vT(k)}(3.9)
测量噪声 w ( k ) w(k) w(k) 的协方差矩阵
R k = E { w ( k ) w T ( k ) } (3.10) R_k = E\left\{w(k)w^T(k)\right\} \tag{3.10} Rk=E{w(k)wT(k)}(3.10)

因为卡尔曼滤波算法假设:系统状态最优估计误差 e ( k ∣ k ) e(k|k) e(kk) 、系统过程噪声 v ( k ) v(k) v(k) 、测量噪声 w ( k + 1 ) w(k+1) w(k+1) 两两不相关,即协方差矩阵为 0 0 0 ,有:

E { e ( k ∣ k ) v T ( k ) } = 0 E\left\{e(k|k)v^T(k)\right\} = 0 E{e(kk)vT(k)}=0
E { e ( k ∣ k ) w T ( k + 1 ) } = 0 E\left\{e(k|k)w^T(k+1)\right\} = 0 E{e(kk)wT(k+1)}=0
E { v ( k ) w T ( k + 1 ) } = 0 E\left\{v(k)w^T(k+1)\right\} = 0 E{v(k)wT(k+1)}=0

设最优估计误差的协方差矩阵:

P ( k + 1 ∣ k + 1 ) = E { e ( k + 1 ∣ k + 1 ) e T ( k + 1 ∣ k + 1 ) } (3.11) P(k+1|k+1) = E\left\{e(k+1|k+1)e^T(k+1|k+1)\right\} \tag{3.11} P(k+1k+1)=E{e(k+1k+1)eT(k+1k+1)}(3.11)

将式 ( 3.7 ) (3.7) (3.7) 、式 ( 3.9 ) (3.9) (3.9) 、式 ( 3.10 ) (3.10) (3.10) 代入式 ( 3.11 ) (3.11) (3.11) ,所有交叉项中期望部分都为 0 0 0 ,整理得:

P ( k + 1 ∣ k + 1 ) = E { e ( k + 1 ∣ k + 1 ) e T ( k + 1 ∣ k + 1 ) } = [ I − K ( k + 1 ) H ] A E { e ( k ∣ k ) e T ( k ∣ k ) } A T [ I − K ( k + 1 ) H ] T + [ I − K ( k + 1 ) H ] E { v ( k ) v T ( k ) } [ I − K ( k + 1 ) H ] T + K ( k + 1 ) E { w ( k + 1 ) w T ( k + 1 ) } K T ( k + 1 ) = [ I − K ( k + 1 ) H ] A P ( k ∣ k ) A T [ I − K ( k + 1 ) H ] T + [ I − K ( k + 1 ) H ] Q k [ I − K ( k + 1 ) H ] T + K ( k + 1 ) R k + 1 K T ( k + 1 ) = [ I − K ( k + 1 ) H ] [ A P ( k ∣ k ) A T + Q k ] [ I − K ( k + 1 ) H ] T + K ( k + 1 ) R k + 1 K T ( k + 1 ) (3.12) \begin{aligned} P(k+1|k+1) =& E\left\{e(k+1|k+1)e^T(k+1|k+1)\right\} \\ =& \left[I - K(k+1)H\right]AE\left\{e(k|k)e^T(k|k)\right\}A^T\left[I - K(k+1)H\right]^T \\ &+ \left[I - K(k+1)H\right]E\left\{v(k)v^T(k)\right\}\left[I - K(k+1)H\right]^T \\ &+ K(k+1)E\left\{w(k+1)w^T(k+1)\right\}K^T(k+1) \\ =& \left[I - K(k+1)H\right]AP(k|k)A^T\left[I - K(k+1)H\right]^T \\ &+ \left[I - K(k+1)H\right]Q_k\left[I - K(k+1)H\right]^T \\ &+ K(k+1)R_{k+1}K^T(k+1) \\ =& \left[I - K(k+1)H\right]\left[AP(k|k)A^T + Q_k\right]\left[I - K(k+1)H\right]^T \\ &+ K(k+1)R_{k+1}K^T(k+1) \tag{3.12} \end{aligned} P(k+1k+1)====E{e(k+1k+1)eT(k+1k+1)}[IK(k+1)H]AE{e(kk)eT(kk)}AT[IK(k+1)H]T+[IK(k+1)H]E{v(k)vT(k)}[IK(k+1)H]T+K(k+1)E{w(k+1)wT(k+1)}KT(k+1)[IK(k+1)H]AP(kk)AT[IK(k+1)H]T+[IK(k+1)H]Qk[IK(k+1)H]T+K(k+1)Rk+1KT(k+1)[IK(k+1)H][AP(kk)AT+Qk][IK(k+1)H]T+K(k+1)Rk+1KT(k+1)(3.12)

设预测误差的协方差矩阵:

P ( k + 1 ∣ k ) = E { e ( k + 1 ∣ k ) e T ( k + 1 ∣ k ) } (3.13) P(k+1|k) = E\left\{e(k+1|k)e^T(k+1|k)\right\} \tag{3.13} P(k+1k)=E{e(k+1k)eT(k+1k)}(3.13)

将式 ( 3.8 ) (3.8) (3.8) 、式 ( 3.9 ) (3.9) (3.9) 、式 ( 3.11 ) (3.11) (3.11) 代入式 ( 3.13 ) (3.13) (3.13) ,所有交叉项中期望部分都为 0 0 0 ,整理得:

P ( k + 1 ∣ k ) = E { e ( k + 1 ∣ k ) e T ( k + 1 ∣ k ) } = A E { e ( k ∣ k ) e T ( k ∣ k ) } A T + E { v ( k ) v T ( k ) } = A P ( k ∣ k ) A T + Q k (3.14) \begin{aligned} P(k+1|k) &= E\left\{e(k+1|k)e^T(k+1|k)\right\} \\ &= AE\left\{e(k|k)e^T(k|k)\right\}A^T + E\left\{v(k)v^T(k)\right\} \\ &= AP(k|k)A^T + Q_k \tag{3.14} \end{aligned} P(k+1k)=E{e(k+1k)eT(k+1k)}=AE{e(kk)eT(kk)}AT+E{v(k)vT(k)}=AP(kk)AT+Qk(3.14)

再将式 ( 3.14 ) (3.14) (3.14) 代入式 ( 3.12 ) (3.12) (3.12) ,得:

P ( k + 1 ∣ k + 1 ) = [ I − K ( k + 1 ) H ] P ( k + 1 ∣ k ) [ I − K ( k + 1 ) H ] T + K ( k + 1 ) R k + 1 K T ( k + 1 ) (3.15) P(k+1|k+1) = \left[I - K(k+1)H\right]P(k+1|k)\left[I - K(k+1)H\right]^T + K(k+1)R_{k+1}K^T(k+1) \tag{3.15} P(k+1k+1)=[IK(k+1)H]P(k+1k)[IK(k+1)H]T+K(k+1)Rk+1KT(k+1)(3.15)

将式 ( 3.15 ) (3.15) (3.15) 展开并整理,得:

P ( k + 1 ∣ k + 1 ) = P ( k + 1 ∣ k ) − K ( k + 1 ) H P ( k + 1 ∣ k ) − P ( k + 1 ∣ k ) H T K T ( k + 1 ) + K ( k + 1 ) H P ( k + 1 ∣ k ) H T K T ( k + 1 ) + K ( k + 1 ) R k + 1 K T ( k + 1 ) = P ( k + 1 ∣ k ) − K ( k + 1 ) H P ( k + 1 ∣ k ) − P ( k + 1 ∣ k ) H T K T ( k + 1 ) + K ( k + 1 ) [ H P ( k + 1 ∣ k ) H T + R k + 1 ] K T ( k + 1 ) (3.16) \begin{aligned} P(k+1|k+1) =& P(k+1|k) - K(k+1)HP(k+1|k) - P(k+1|k)H^TK^T(k+1) \\ &+ K(k+1)HP(k+1|k)H^TK^T(k+1) + K(k+1)R_{k+1}K^T(k+1) \\ =& P(k+1|k) - K(k+1)HP(k+1|k) - P(k+1|k)H^TK^T(k+1) \\ &+ K(k+1)\left[HP(k+1|k)H^T + R_{k+1}\right]K^T(k+1) \tag{3.16} \end{aligned} P(k+1k+1)==P(k+1k)K(k+1)HP(k+1k)P(k+1k)HTKT(k+1)+K(k+1)HP(k+1k)HTKT(k+1)+K(k+1)Rk+1KT(k+1)P(k+1k)K(k+1)HP(k+1k)P(k+1k)HTKT(k+1)+K(k+1)[HP(k+1k)HT+Rk+1]KT(k+1)(3.16)

P ( k + 1 ∣ k + 1 ) P(k+1|k+1) P(k+1k+1) 是关于 K ( k + 1 ) K(k+1) K(k+1) 的二次函数。

因为 H P ( k + 1 ∣ k ) H T + R k + 1 HP(k+1|k)H^T + R_{k+1} HP(k+1k)HT+Rk+1 为对称正定矩阵,所以存在非奇异矩阵 M M M ,使得 M M T = H P ( k + 1 ∣ k ) H T + R k + 1 MM^T = HP(k+1|k)H^T + R_{k+1} MMT=HP(k+1k)HT+Rk+1

于是式 ( 3.16 ) (3.16) (3.16) 可化为:

P ( k + 1 ∣ k + 1 ) = P ( k + 1 ∣ k ) − K ( k + 1 ) H P ( k + 1 ∣ k ) − P ( k + 1 ∣ k ) H T K T ( k + 1 ) + K ( k + 1 ) M M T K T ( k + 1 ) (3.17) \begin{aligned} P(k+1|k+1) =& P(k+1|k) - K(k+1)HP(k+1|k) - P(k+1|k)H^TK^T(k+1) \\ &+ K(k+1)MM^TK^T(k+1) \tag{3.17} \end{aligned} P(k+1k+1)=P(k+1k)K(k+1)HP(k+1k)P(k+1k)HTKT(k+1)+K(k+1)MMTKT(k+1)(3.17)

N = P ( k + 1 ∣ k ) H T M − T N = P(k+1|k)H^TM^{-T} N=P(k+1k)HTMT ,对式 ( 3.17 ) (3.17) (3.17) 配方,有:

P ( k + 1 ∣ k + 1 ) = P ( k + 1 ∣ k ) + [ K ( k + 1 ) M − N ] [ K ( k + 1 ) M − N ] T − N N T (3.18) P(k+1|k+1) = P(k+1|k) + \left[K(k+1)M - N\right]\left[K(k+1)M - N\right]^T - NN^T \tag{3.18} P(k+1k+1)=P(k+1k)+[K(k+1)MN][K(k+1)MN]TNNT(3.18)

因为式 ( 3.18 ) (3.18) (3.18) P ( k + 1 ∣ k ) P(k+1|k) P(k+1k) N N T NN^T NNT 两项均与 K ( k + 1 ) K(k+1) K(k+1) 无关,所以当 K ( k + 1 ) = N M − 1 K(k+1) = NM^{-1} K(k+1)=NM1 时, P ( k + 1 ∣ k + 1 ) P(k+1|k+1) P(k+1k+1) 最小。

即:

K ( k + 1 ) = P ( k + 1 ∣ k ) H T M − T M − 1 = P ( k + 1 ∣ k ) H T ( M M T ) − 1 = P ( k + 1 ∣ k ) H T [ H P ( k + 1 ∣ k ) H T + R k + 1 ] − 1 (3.19) \begin{aligned} K(k+1) &= P(k+1|k)H^TM^{-T}M^{-1} \\ &= P(k+1|k)H^T(MM^T)^{-1} \\ &= P(k+1|k)H^T\left[HP(k+1|k)H^T + R_{k+1}\right]^{-1} \tag{3.19} \end{aligned} K(k+1)=P(k+1k)HTMTM1=P(k+1k)HT(MMT)1=P(k+1k)HT[HP(k+1k)HT+Rk+1]1(3.19)

将式 ( 3.19 ) (3.19) (3.19) 代入式 ( 3.16 ) (3.16) (3.16) ,得:

P ( k + 1 ∣ k + 1 ) = P ( k + 1 ∣ k ) − K ( k + 1 ) H P ( k + 1 ∣ k ) − P ( k + 1 ∣ k ) H T K T ( k + 1 ) + K ( k + 1 ) [ H P ( k + 1 ∣ k ) H T + R k + 1 ] K T ( k + 1 ) = P ( k + 1 ∣ k ) − K ( k + 1 ) H P ( k + 1 ∣ k ) − P ( k + 1 ∣ k ) H T K T ( k + 1 ) + P ( k + 1 ∣ k ) H T K T ( k + 1 ) = [ I − K ( k + 1 ) H ] P ( k + 1 ∣ k ) (3.20) \begin{aligned} P(k+1|k+1) =& P(k+1|k) - K(k+1)HP(k+1|k) - P(k+1|k)H^TK^T(k+1) \\ &+ K(k+1)\left[HP(k+1|k)H^T + R_{k+1}\right]K^T(k+1) \\ =& P(k+1|k) - K(k+1)HP(k+1|k) - P(k+1|k)H^TK^T(k+1) \\ &+ P(k+1|k)H^TK^T(k+1) \\ =& \left[I - K(k+1)H\right]P(k+1|k) \tag{3.20} \end{aligned} P(k+1k+1)===P(k+1k)K(k+1)HP(k+1k)P(k+1k)HTKT(k+1)+K(k+1)[HP(k+1k)HT+Rk+1]KT(k+1)P(k+1k)K(k+1)HP(k+1k)P(k+1k)HTKT(k+1)+P(k+1k)HTKT(k+1)[IK(k+1)H]P(k+1k)(3.20)

回顾公式对应关系:

  • ( 2.1 ) → ( 3.1 ) (2.1) \rightarrow (3.1) (2.1)(3.1)
  • ( 2.2 ) → ( 3.14 ) (2.2) \rightarrow (3.14) (2.2)(3.14)
  • ( 2.3 ) → ( 3.4 ) (2.3) \rightarrow (3.4) (2.3)(3.4)
  • ( 2.4 ) → ( 3.19 ) (2.4) \rightarrow (3.19) (2.4)(3.19)
  • ( 2.5 ) → ( 3.20 ) (2.5) \rightarrow (3.20) (2.5)(3.20)
  • 3
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
卡尔曼滤波器是一种用于估计系统状态的递归滤波器,其目标是通过对测量数据进行加权对比,提供精确且稳定的状态估计。它通过结合系统模型和传感器测量信息,持续更新状态估计,并根据测量误差和系统动态特性进行自适应调整。卡尔曼滤波器的推导主要基于以下步骤: 1. 建立系统模型:首先,需要确定系统的线性状态空间模型。该模型由状态转移方程和测量方程构成。状态转移方程描述系统状态如何从一个时刻传递到下一个时刻,而测量方程描述系统状态如何与传感器测量值相关联。 2. 初始化状态估计:在滤波器的开始阶段,需要初始化状态估计。通常根据系统的先验信息和观测数据进行初始化。 3. 预测步骤:通过状态转移方程和状态估计值进行状态预测。这一步骤利用系统动态特性进行状态的时间更新。 4. 更新步骤:将测量数据与预测的状态进行比较,通过卡尔曼增益将测量值的误差修正到状态估计中。卡尔曼增益由系统动态特性和测量误差共同决定。 5. 调整状态估计:根据测量值的精度和系统的动态特性,对估计的状态进行优化。这一步骤利用测量数据对状态进行空间更新。 6. 循环迭代:将预测步骤和更新步骤连续进行,实现持续的状态估计和滤波。 通过以上步骤,卡尔曼滤波器能够在实时的系统状态估计问题中提供准确和稳定的解决方案。它已广泛应用于各种领域,如航空航天、导航、机器人、自动驾驶等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值