卡尔曼滤波公式及推导
1 前言
卡尔曼滤波 (Kalman Filter) 是一种关于线性离散系统滤波问题的递推算法。其使用递推的形式对系统的状态进行估计,以测量中产生的误差为依据对估计值进行校正,使被估计的状态不断接近真实值。
卡尔曼滤波的基本思想:根据系统的状态空间方程,利用前一时刻系统状态的估计值和当前时刻系统的观测值对状态变量进行最优估计,求出当前时刻系统状态的估计值。
假设线性离散系统的状态空间方程如下:
{ X(k+1)=AX(k)+v(k)Y(k)=HX(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)
式中,AAA 为状态矩阵,HHH 为输出矩阵。X(k)X(k)X(k) 为 kkk 时刻的系统状态,Y(k)Y(k)Y(k) 为 kkk 时刻的系统输出,即系统的观测值。v(k)v(k)v(k) 是过程噪声,服从均值为 000 ,方差为 QkQ_kQk 的高斯分布;w(k)w(k)w(k) 是传感器测量噪声,服从均值为 000 ,方差为 RkR_kRk 的高斯分布。v(k)v(k)v(k) 和 w(k)w(k)w(k) 相互独立。QkQ_kQk 和 RkR_kRk 都是协方差矩阵、对称半正定矩阵。Qk=E{ v(k)vT(k)}Q_k = E\left\{v(k)v^T(k)\right\}Qk=E{ v(k)vT(k)} ,Rk=E{ w(k)wT(k)}R_k = E\left\{w(k)w^T(k)\right\}Rk=E{ w(k)wT(k)} 。
2 卡尔曼滤波公式
2.1 预测
根据 kkk 时刻的最优状态估计预测 k+1k+1k+1 时刻的状态和误差的协方差矩阵。
X(k+1∣k)=AX(k∣k)(2.1) X(k+1|k) = AX(k|k) \tag{2.1} X(k+1∣k)=AX(k∣k)(2.1)
P(k+1∣k)=AP(k∣k)AT+Qk(2.2) P(k+1|k) = AP(k|k)A^T + Q_k \tag{2.2} P(k+1∣k)=AP(k∣k)AT+Qk(2.2)
式 (2.1)(2.1)(2.1) 是状态预测方程。其中,X(k∣k)X(k|k)X(k∣k) 是 kkk 时刻系统状态的最优估计,X(k+1∣k)X(k+1|k)X(k+1∣k) 是根据 kkk 时刻的系统状态最优估计 X(k∣k)X(k|k)X(k∣k) 对 k+1k+1k+1 时刻系统状态的预测。
式 (2.2)(2.2)(2.2) 是误差的协方差矩阵预测方程。其中,P(k∣k)P(k|k)P(k∣k) 是 kkk 时刻系统状态的最优估计 X(k∣k)X(k|k)X(k∣k) 对应的误差协方差矩阵,P(k+1∣k)P(k+1|k)P(k+1∣k) 是系统状态的预测 X(k+1∣k)X(k+1|k)X(k+1∣k) 对应的误差协方差矩阵。QkQ_kQk 是 kkk 时刻系统过程噪声的协方差矩阵。
2.2 校正
根据系统 k+1k+1k+1 时刻实际的观测值(系统输出)对上一步得到的 k+1k+1k+1 时刻系统状态的预测进行校正,得到在 k+1k+1k+1 时刻系统状态的最优估计。
X(k+1∣k+1)=X(k+1∣k)+K(k+1)[Y(k+1)−HX(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+1∣k+1)=X(k+1∣k)+K(k+1)[Y(k+1)−HX(k+1∣k)](2.3)
其中,X(k+1∣k+1)X(k+1|k+1)X(k+1∣k+1) 是 k+1k+1k+1 时刻系统状态的最优估计;K(k+1)K(k+1)K(k+1) 是卡尔曼增益矩阵,其计算方法如下:
K(k+1)=P(k+1∣k)HT[HP(k+1∣k)HT+Rk+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+1∣k)HT[HP(k+1∣k)HT+Rk+1]−1(2.4)
其中,Rk+1R_{k+1}Rk+1 是 k+1k+1k+1 时刻测量噪声的协方差矩阵。
为了能使递推算法继续进行,还需要更新 k+1k+1k+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+1∣k+1)=[I−K(k+1)H]P(k+1∣k)(2.5)
其中,III 为单位矩阵,P(k+1∣k+1)P(k+1|k+1)P(k+1∣k+1) 是 k+1k+1k+1 时刻系统状态的最优估计 X(k+1∣k+1)X(k+1|k+1)X(k+1∣k+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)
卡尔曼滤波详解:预测与校正公式推导

本文详细解析了卡尔曼滤波的核心公式,包括状态预测、误差协方差预测、卡尔曼增益计算和误差协方差更新。通过递归形式展示如何利用前一时刻状态估计和观测值优化当前时刻状态估计。
最低0.47元/天 解锁文章
862

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



