标准卡尔曼滤波(KF)和扩展卡尔曼滤波(EKF)介绍及推导

一、标准卡尔曼滤波介绍及推导

卡尔曼滤波本质是最小均方差估计,通过构造真实值与估计值的误差协方差矩阵,使得误差最小,从而进行最优估计。
标准卡尔曼滤波适用于线性系统。

1、标准卡尔曼滤波方程

首先构建系统的离散方程,如下:

(1)系统状态方程
X ( k ) = A X ( k − 1 ) + B U ( k ) + W ( k ) X(k)=AX(k-1)+BU(k)+W(k) X(k)=AX(k1)+BU(k)+W(k)
(2)系统观测方程:
Z ( k ) = H X ( k ) + V ( k ) Z(k)=HX(k)+V(k) Z(k)=HX(k)+V(k)
其中:
X(k):是k时刻的系统状态;
U(k):是k时刻对系统的控制量;
A和B:是系统参数,对于多模型系统,他们为矩阵;
Z(k):是k时刻的测量值;
H:是测量系统的参数,对于多测量系统,H为矩阵。
W(k)和V(k):分别表示过程和测量的噪声。他们被假设成高斯白噪声(White Gaussian Noise),协方差分别是Q,R(这里假设他们不随系统状态变化而变化)。

卡尔曼滤波方程的五个公式如下:

(1) X ( k ∣ k − 1 ) = A X ( k − 1 ∣ k − 1 ) + B U ( k ) X(k|k-1)=AX(k-1|k-1)+B U(k) X(kk1)=AX(k1k1)+BU(k)

式(1)中,X(k|k-1)是利用上一状态预测的结果,X(k-1|k-1)是上一状态估计的最优结果,U(k)为某刻状态的控制量,如果没有控制量,它可以为0。

(2) P ( k ∣ k − 1 ) = A P ( k − 1 ∣ k − 1 ) A T + Q P(k|k-1)=AP(k-1|k-1)A^{T}+Q P(kk1)=AP(k1k1)AT+Q

式(2)中,P(k|k-1)是X(k|k-1)对应的协方差,P(k-1|k-1)是X(k-1|k-1)对应的协方差, A T A^{T} AT表示A的转置矩阵,Q是过程噪声的协方差。式子1,2就是卡尔曼滤波器5个公式当中的前两个,也就是对系统的预测。
前两个方程为预测过程,后三个方程为校正过程。

(3) K g ( k ) = P ( k ∣ k − 1 ) H T ( H P ( k ∣ k − 1 ) H T + R ) Kg(k)= \frac{P(k|k-1)H^{T}}{(H P(k|k-1)H^{T}+R) } Kg(k)=(HP(kk1)HT+R)P(kk1)HT

Kg为卡尔曼增益(Kalman Gain)。

(4) X ( k ∣ k ) = X ( k ∣ k − 1 ) + K g ( k ) ( Z ( k ) − H X ( k ∣ k − 1 ) ) X(k|k)=X(k|k-1)+Kg(k)(Z(k)-HX(k|k-1)) X(kk)=X(kk1)+Kg(k)(Z(k)HX(kk1))

某刻状态(k)的最优化估算值X(k|k)。

(5) P ( k ∣ k ) = ( I − K g ( k ) H ) P ( k ∣ k − 1 ) P(k|k)=(I-Kg(k)H)P(k|k-1) P(kk)=(IKg(k)H)P(kk1)

更新k状态下X(k|k)的协方差。

更新流程图如下图所示:
在这里插入图片描述

2、标准卡尔曼滤波方程推导

k时刻的真实值与最优估计值之间的误差为:
e ( k ) = X ( k ) − X ( k ∣ k ) e(k)=X(k)-X(k|k) e(k)=X(k)X(kk)
而最优估计值x(k|k)为:
X ( k ∣ k ) = X ( k ∣ k − 1 ) + K g ( k ) Z ^ ( k ) X(k|k)=X(k|k-1)+Kg(k)\hat{Z}(k) X(kk)=X(kk1)+Kg(k)Z^(k)
= X ( k ∣ k − 1 ) + K g ( k ) ( Z ( k ) − H X ( k ∣ k − 1 ) ) X(k|k-1)+Kg(k)(Z(k)-HX(k|k-1)) X(kk1)+Kg(k)(Z(k)HX(kk1))
= X ( k ∣ k − 1 ) + K g ( k ) ( H X ( k ) + V ( k ) − H X ( k ∣ k − 1 ) ) X(k|k-1)+Kg(k)(HX(k)+V(k)-HX(k|k-1)) X(kk1)+Kg(k)(HX(k)+V(k)HX(kk1))
其中 Z ^ ( k ) \hat{Z}(k) Z^(k)为测量余差,即真实观测值相对于预测值的偏差。最优估计为预测量+测量余差的kg倍。
通过以上两个公式可得:
e ( k ) = X ( k ) − X ( k ∣ k ) e(k)=X(k)-X(k|k) e(k)=X(k)X(kk)
= X ( k ) − X ( k ∣ k − 1 ) − K g ( k ) H X ( k ) − K g V ( k ) + K g H X ( k ∣ k − 1 ) X(k)-X(k|k-1)-Kg(k)HX(k)-KgV(k)+KgHX(k|k-1) X(k)X(kk1)Kg(k)HX(k)KgV(k)+KgHX(kk1)
= ( 1 − K g ( k ) H ) X ( k ) − ( 1 − K g ( k ) H ) X ( k ∣ k − 1 ) − K g V ( k ) (1-Kg(k)H)X(k)-(1-Kg(k)H)X(k|k-1)-KgV(k) (1Kg(k)H)X(k)(1Kg(k)H)X(kk1)KgV(k)
= ( 1 − K g ( k ) H ) ( X ( k ) − X ( k ∣ k − 1 ) ) − K g ( k ) V ( k ) (1-Kg(k)H)(X(k)-X(k|k-1))-Kg(k)V(k) (1Kg(k)H)(X(k)X(kk1))Kg(k)V(k)
误差的协方差矩阵为:
P ( k ) = E ( e ( k ) e ( k ) T ) P(k)=E(e(k)e(k)^{T}) P(k)=E(e(k)e(k)T)= E { [ ( 1 − K g ( k ) H ) ( X ( k ) − X ( k ∣ k − 1 ) ) − K g V ( k ) ] [ ( 1 − K g ( k ) H ) ( X ( k ) − X ( k ∣ k − 1 ) ) − K g V ( k ) ] T } E\left \{[(1-Kg(k)H)(X(k)-X(k|k-1))-KgV(k)][(1-Kg(k)H)(X(k)-X(k|k-1))-KgV(k)]^{T}\right \} E{[(1Kg(k)H)(X(k)X(kk1))KgV(k)][(1Kg(k)H)(X(k)X(kk1))KgV(k)]T}
= ( 1 − K g ( k ) H ) E [ ( X ( k ) − X ( k ∣ k − 1 ) ) ( X ( k ) − X ( k ∣ k − 1 ) ) T ] ( 1 − K g ( k ) H ) T + K g ( k ) E [ V ( k ) V ( k ) T ] K g ( k ) T (1-Kg(k)H)E[(X(k)-X(k|k-1))(X(k)-X(k|k-1))^{T}](1-Kg(k)H)^{T}+Kg(k)E[V(k)V(k)^{T}]Kg(k)^{T} (1Kg(k)H)E[(X(k)X(kk1))(X(k)X(kk1))T](1Kg(k)H)T+Kg(k)E[V(k)V(k)T]Kg(k)T…(1)
其中:
P ( k ∣ k − 1 ) = E [ ( X ( k ) − X ( k ∣ k − 1 ) ) ( X ( k ) − X ( k ∣ k − 1 ) ) T ] P(k|k-1)=E[(X(k)-X(k|k-1))(X(k)-X(k|k-1))^{T}] P(kk1)=E[(X(k)X(kk1))(X(k)X(kk1))T]为真实值与预测值之间的协方差。
R = E [ V ( k ) V ( k ) T ] R=E[V(k)V(k)^{T}] R=E[V(k)V(k)T]
将上述两式带入方程(1)得:
P ( k ) P(k) P(k)= ( 1 − K g ( k ) H ) P ( k ∣ k − 1 ) ( 1 − K g ( k ) H ) T + K g ( k ) R K g ( k ) T (1-Kg(k)H)P(k|k-1)(1-Kg(k)H)^{T}+Kg(k)RKg(k)^{T} (1Kg(k)H)P(kk1)(1Kg(k)H)T+Kg(k)RKg(k)T
= P ( k ∣ k − 1 ) − 2 K g ( k ) H P ( k ∣ k − 1 ) + K g ( k ) ( H P ( k ∣ k − 1 ) H T + R ) K g ( k ) T P(k|k-1)-2Kg(k)HP(k|k-1)+Kg(k)(HP(k|k-1)H^{T}+R)Kg(k)^{T} P(kk1)2Kg(k)HP(kk1)+Kg(k)(HP(kk1)HT+R)Kg(k)T…(2)
需要求得Kg使得协方差P(k)最小,两边对Kg求导。
d ( P ( k ) ) d ( K g ( k ) ) \frac{d(P(k))}{d(Kg(k))} d(Kg(k))d(P(k))= d { − 2 K g ( k ) H P ( k ∣ k − 1 ) + K g ( k ) ( H P ( k ∣ k − 1 ) H T + R ) K g ( k ) T } d ( K g ( k ) ) \frac{d\left \{-2Kg(k)HP(k|k-1)+Kg(k)(HP(k|k-1)H^{T}+R)Kg(k)^{T}\right \}}{d(Kg(k))} d(Kg(k))d{2Kg(k)HP(kk1)+Kg(k)(HP(kk1)HT+R)Kg(k)T}
= d { − 2 K g ( k ) H P ( k ∣ k − 1 ) } d ( K g ( k ) ) + d { K g ( k ) ( H P ( k ∣ k − 1 ) H T + R ) K g ( k ) T } d ( K g ( k ) ) \frac{d\left \{-2Kg(k)HP(k|k-1)\right \}}{d(Kg(k))}+\frac{d\left \{Kg(k)(HP(k|k-1)H^{T}+R)Kg(k)^{T}\right \}}{d(Kg(k))} d(Kg(k))d{2Kg(k)HP(kk1)}+d(Kg(k))d{Kg(k)(HP(kk1)HT+R)Kg(k)T}
= − 2 ( H P ( k ∣ k − 1 ) ) T + 2 K g ( k ) ( H P ( k ∣ k − 1 ) H T + R ) -2(HP(k|k-1))^{T}+2Kg(k)(HP(k|k-1)H^{T}+R) 2(HP(kk1))T+2Kg(k)(HP(kk1)HT+R)
令其等于0,则得到:
K g ( k ) Kg(k) Kg(k)= P ( k ∣ k − 1 ) H T H P ( k ∣ k − 1 ) H T + R \frac{P(k|k-1)H^{T}}{HP(k|k-1)H^{T}+R} HP(kk1)HT+RP(kk1)HT 卡尔曼增益
P ′ ( k ) = E [ ( X ( k ) − X ( k ∣ k − 1 ) ) ( X ( k ) − X ( k ∣ k − 1 ) ) T ] P'(k)=E[(X(k)-X(k|k-1))(X(k)-X(k|k-1))^{T}] P(k)=E[(X(k)X(kk1))(X(k)X(kk1))T]
= E { [ A X ( k − 1 ) + B U ( k ) + W ( k ) − A X ^ ( k − 1 ) − B U ( k ) ] [ A X ( k − 1 ) + B U ( k ) + W ( k ) − A X ^ ( k − 1 ) − B U ( k ) ] T } E\left \{[AX(k-1)+BU(k)+W(k)-A\hat{X}(k-1)-BU(k)][AX(k-1)+BU(k)+W(k)-A\hat{X}(k-1)-BU(k)]^{T}\right \} E{[AX(k1)+BU(k)+W(k)AX^(k1)BU(k)][AX(k1)+BU(k)+W(k)AX^(k1)BU(k)]T}
= E { [ A X ( k − 1 ) + W ( k ) − A X ^ ( k − 1 ) ] [ A X ( k − 1 ) + W ( k ) − A X ^ ( k − 1 ) ] T } E\left \{[AX(k-1)+W(k)-A\hat{X}(k-1)][AX(k-1)+W(k)-A\hat{X}(k-1)]^{T}\right \} E{[AX(k1)+W(k)AX^(k1)][AX(k1)+W(k)AX^(k1)]T}
= E { [ A ( X ( k − 1 ) − X ^ ( k − 1 ) ) + W ( k ) ] [ A ( X ( k − 1 ) − X ^ ( k − 1 ) ) + W ( k ) ] T } E\left \{[A(X(k-1)-\hat{X}(k-1))+W(k)][A(X(k-1)-\hat{X}(k-1))+W(k)]^{T}\right \} E{[A(X(k1)X^(k1))+W(k)][A(X(k1)X^(k1))+W(k)]T}
= E [ ( A e ( k − 1 ) ) ( A e ( k − 1 ) ) T ] E[(Ae(k-1))(Ae(k-1))^{T}] E[(Ae(k1))(Ae(k1))T]+ E [ W ( k − 1 ) W T ( k − 1 ) ] E[W(k-1)W^{T}(k-1)] E[W(k1)WT(k1)]
= A P ( k − 1 ) A T + Q AP(k-1)A^{T}+Q AP(k1)AT+Q
至于 P ( k ∣ k ) P(k|k) P(kk)
P ( k ∣ k ) P(k|k) P(kk)= P ( k ∣ k − 1 ) − K g ( k ) H P ( k ∣ k − 1 ) − P ( k ∣ k − 1 ) H T K g ( k ) T + K g ( k ) ( H P ′ ( k ) H T + R ) K g ( k ) T P(k|k-1)-Kg(k)HP(k|k-1)-P(k|k-1)H^{T}Kg(k)^{T}+Kg(k)(HP'(k)H^{T}+R)Kg(k)^{T} P(kk1)Kg(k)HP(kk1)P(kk1)HTKg(k)T+Kg(k)(HP(k)HT+R)Kg(k)T
将kg带入则,
P ( k ∣ k ) P(k|k) P(kk)= ( I − K g ( k ) H ) P ′ ( k ) (I-Kg(k)H)P'(k) (IKg(k)H)P(k)

二、扩展卡尔曼滤波介绍及推导

1、扩展卡尔曼滤波介绍

扩展卡尔曼滤波中心思想就是将非线性系统线性化之后再做KF处理。具体就是利用泰勒级数展开将非线性系统线性化,然后采用卡尔曼滤波框架再对信号作处理,是一种次优滤波。
假设离散系统状态空间模型为:
(1)系统状态方程
X ( k ) = f ( X ( k − 1 ) ) + Γ ( k − 1 ) W ( k − 1 ) X(k)=f(X(k-1))+\Gamma(k-1)W(k-1) X(k)=f(X(k1))+Γ(k1)W(k1)
(2)观测方程
Z ( k ) = h ( X ( k ) ) + V ( k ) Z(k)=h(X(k))+V(k) Z(k)=h(X(k))+V(k)
其中:
X(k):是k时刻的系统状态;
f(X(k-1))、h(X(k)):非线性的;
Z(k):是k时刻的测量值;
W(k)和V(k):分别表示过程和测量的噪声,协方差分别是Q,R(这里假设他们随系统状态变化而变化)。*。

则扩展卡尔曼滤波的五个方程如下:
(1) X ( k ∣ k − 1 ) = f ( X ( k − 1 ∣ k − 1 ) ) X(k|k-1)=f(X(k-1|k-1)) X(kk1)=f(X(k1k1))

(2) P ( k ∣ k − 1 ) = F P ( k − 1 ∣ k − 1 ) F T + Γ ( k − 1 ) Q ( k ) Γ ( k − 1 ) P(k|k-1)=FP(k-1|k-1)F^{T}+\Gamma(k-1)Q(k)\Gamma(k-1) P(kk1)=FP(k1k1)FT+Γ(k1)Q(k)Γ(k1)
其中,F(k|k-1)为雅可比矩阵。
F ( k ∣ k − 1 ) = J ( f ( X ( k − 1 ∣ k − 1 ) ) ) = ∂ f ( X ( k − 1 ∣ k − 1 ) ) ∂ X ( k − 1 ∣ k − 1 ) F(k|k-1)=J(f(X(k-1|k-1)))=\frac{\partial f(X(k-1|k-1))}{\partial X(k-1|k-1)} F(kk1)=J(f(X(k1k1)))=X(k1k1)f(X(k1k1))

(3) K g ( k ) = P ( k ∣ k − 1 ) H ( k ) T H ( k ) P ( k ∣ k − 1 ) H ( k ) T + R ( k ) Kg(k)= \frac{P(k|k-1)H(k)^{T}}{H(k) P(k|k-1)H(k)^{T}+R(k)} Kg(k)=H(k)P(kk1)H(k)T+R(k)P(kk1)H(k)T
其中,H(k)为雅可比矩阵,h(X(k)在X(k)'处的导数。
H ( k ) = J ( h ( X ( k ) ) ) = ∂ h ( X ( k ) ) ∂ X ( k ) ′ H(k)=J(h(X(k)))=\frac{\partial h(X(k))}{\partial {X(k)}'} H(k)=J(h(X(k)))=X(k)h(X(k))

(4) X ( k ∣ k ) = X ( k ∣ k − 1 ) + K g ( k ) ( Z ( k ) − h ( X ( k ∣ k − 1 ) ) ) X(k|k)=X(k|k-1)+Kg(k)(Z(k)-h(X(k|k-1))) X(kk)=X(kk1)+Kg(k)(Z(k)h(X(kk1)))

(5) P ( k ∣ k ) = ( I − K g ( k ) H ) P ( k ∣ k − 1 ) P(k|k)=(I-Kg(k)H)P(k|k-1) P(kk)=(IKg(k)H)P(kk1)

2、扩展卡尔曼滤波推导

具体推导过程可参考文章:
https://blog.csdn.net/weixin_42647783/article/details/89054641
无非就是将非线性方程做泰勒一阶展开,由此会得到F及H(均为雅可比矩阵),基于泰勒展开公式和标准卡尔曼滤波方程,就可直接写出扩展卡尔曼滤波方程的整个推导过程。

  • 7
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
推导卡尔曼滤波方程和扩展卡尔曼滤波方程的方法有多种。其中一种常用的方法是通过最小方差估计原理或广义最小二乘原理来推导。根据引用和引用的描述,可以得知卡尔曼滤波方程可以通过广义最小二乘原理推导得到,扩展卡尔曼滤波方程可以通过EM算法和极大后验概率估计推导得到。 具体推导过程可以描述如下: 1. 首先,根据广义最小二乘原理或最小方差估计原理,可以建立卡尔曼滤波方程。该方程包括两个步骤:预测步骤和更新步骤。在预测步骤中,利用系统动态模型和先验信息对状态进行预测;在更新步骤中,利用观测模型和测量数据对状态进行更新。这样就可以通过递归的方式实现对状态的估计。 2. 扩展卡尔曼滤波卡尔曼滤波在非线性情形下的一种扩展形式。与标准卡尔曼滤波不同,扩展卡尔曼滤波使用了线性化的近似方法来处理非线性系统。在扩展卡尔曼滤波中,通过对非线性系统进行局部线性化,将其转化为线性系统。然后,可以使用卡尔曼滤波方程对线性化后的系统进行状态估计。 3. 对于扩展卡尔曼滤波推导,引用中提到了它是一种高效率的递归滤波器,说明它是通过递归的方式实现的。同时,引用中也提到了扩展卡尔曼滤波的传播和更新形式与标准卡尔曼滤波的形式一致,只是在计算过程中对非线性函数进行了线性化。 综上所述,推导卡尔曼滤波方程和扩展卡尔曼滤波方程可以通过最小方差估计原理或广义最小二乘原理来进行。扩展卡尔曼滤波利用线性化的近似方法来处理非线性系统,并通过递归的方式实现对状态的估计。<span class="em">1</span><span class="em">2</span><span class="em">3</span><span class="em">4</span>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值