从最优估计角度理解卡尔曼滤波(Kalman Filter)

从最优估计角度理解卡尔曼滤波(Kalman Filter)


卡尔曼滤波是一种利用线性系统状态方程,通过系统输入输出观测数据,对系统状态进行最优估计的算法。由于观测数据中包括系统中的噪声和干扰的影响,所以最优估计也可看作是滤波过程。
若含噪声的系统观测模型如下:
X ( k + 1 ) = A X ( k ) + B u ( k ) + C w ( k ) Z ( k ) = H X ( k ) + v ( k ) \begin{array}{c} X(k+1)=A X(k)+B u(k)+C w(k) \\ Z(k)=H X(k)+v(k) \end{array} X(k+1)=AX(k)+Bu(k)+Cw(k)Z(k)=HX(k)+v(k)
其中 v , w v,w v,w服从多元高斯分布,二者相互独立,Q,R为噪声变量的协方差矩阵
p ( w ) ∼ N ( 0 , Q ) p ( v ) ∼ N ( 0 , R ) \begin{array}{l} p(w) \sim N(0, Q) \\ p(v) \sim N(0, R) \end{array} p(w)N(0,Q)p(v)N(0,R)
则根据反馈的思想,对状态量的估计值可表示为下式:
X ^ ( k ) = X ~ ( k ) + K ( k ) ( Z ( k ) − Z ~ ( k ) ) = X ~ ( k ) + K ( k ) ( Z ( k ) − H X ~ ( k ) ) \begin{aligned} \hat{X}(k)&=\tilde{X}(k)+K(k)(Z(k)-\tilde{Z}(k)) \\ &=\tilde{X}(k)+K(k)(Z(k)-H \tilde{X}(k)) \end{aligned} X^(k)=X~(k)+K(k)(Z(k)Z~(k))=X~(k)+K(k)(Z(k)HX~(k))
其中X ̃(k)为根据模型计算的预测值,Z(k)为测量值,Z ̃(k)为根据预测值计算的观测值的预测。
X ~ ( k ) = A X ^ ( k − 1 ) + B u ( k ) Z ~ ( k ) = H X ~ ( k ) \begin{array}{c} \tilde{X}(k)=A \hat{X}(k-1)+B u(k) \\ \tilde{Z}(k)=H \tilde{X}(k) \end{array} X~(k)=AX^(k1)+Bu(k)Z~(k)=HX~(k)
Z ~ ( k ) − Z ~ ( k ) \tilde{Z}(k)-\tilde{Z}(k) Z~(k)Z~(k)为实际观测输出值与预测值的误差,
那么目标是求得一个 K ( k ) K(k) K(k)使得 e ( k ) = X ( k ) − X ^ ( K ) e(k)=X(k)-\hat{X}(K) e(k)=X(k)X^(K)的均方差最小,那么就意味着估计出的状态量与真实值最接近,也即估计最优。
真实值与估计值的误差的协方差矩阵为
P ( k ) = E [ e ( k ) e ( k ) ⊤ ] P(k)=E\left[e(k)e(k)^\top\right] P(k)=E[e(k)e(k)]
同理,真实值与预测值误差的协方差矩阵为
P ′ ( k ) = E [ e ′ ( k ) e ′ ( k ) ⊤ ] e ′ ( k ) = X ( k ) − X ~ ( k ) {P^{'}}(k)=E\left[e^{'}(k)e^{'}(k)^\top\right]\\ e^{'}(k)=X(k)-\tilde{X}(k) P(k)=E[e(k)e(k)]e(k)=X(k)X~(k)
因为状态量与测量误差相互独立,所以上式可展开为
P ( k ) = P ′ ( k ) − K ( k ) H P ′ ( k ) − P ′ ( k ) H ⊤ K ( k ) ⊤ + K ( K ) ( H P ′ ( k ) H ⊤ + R ) K ( k ) ⊤ \begin{aligned} P(k)=&P^{'}(k)-K(k)HP^{'}(k)-P^{'}(k)H^{\top}K(k)^{\top}\\ &+K(K)(HP^{'}(k)H^{\top}+R)K(k)^{\top} \end{aligned} P(k)=P(k)K(k)HP(k)P(k)HK(k)+K(K)(HP(k)H+R)K(k)
且协方差矩阵的对角线元素即为各状态分量的方差,矩阵的迹即为误差e(k)的均方差。
那么求解
d    tr ( P ( k ) ) d    K ( k ) = 0 \frac{d\,\,\text{tr}(P(k))}{d\,\,K(k)}=0 dK(k)dtr(P(k))=0
即可得到满足需求的K(k)矩阵。
K ( k ) = P ′ ( k ) H ⊤ ( H P ′ ( k ) H ⊤ + R ) − 1 K(k)=P^{'}(k)H^{\top}(HP^{'}(k)H^{\top}+R)^{-1} K(k)=P(k)H(HP(k)H+R)1
带入 P ( k ) P(k) P(k)可得
P ( k ) = ( I − K ( k ) H ) P ′ ( k ) P(k)=(I-K(k)H)P^{'}(k) P(k)=(IK(k)H)P(k)
其中,因为状态变量与噪声相互独立,可以写成
P ′ ( k + 1 ) = E [ e ′ ( k + 1 ) e ′ ( k + 1 ) T ] = E [ ( A ( x ( k ) − X ~ ( k ) ) + C w ( k ) ) ( A ( x ( k ) − X ~ ( k ) ) + C w ( k ) ) T ] = E [ ( A e ( k ) ) ( ( A e ( k ) ) T ] + E [ C w ( k ) w ( k ) T C T ] = A P ( k ) A T + C Q C T \begin{aligned} P^{\prime}(k+1)&=E\left[e^{\prime}(k+1) e^{\prime}(k+1)^{T}\right]\\ &=E\left[(A(x(k)-\tilde{X}(k))+C w(k))(A(x(k)-\tilde{X}(k))+C w(k))^{T}\right]\\ &=E\left[(A e(k))\left((A e(k))^{T}\right]+E\left[C w(k) w(k)^{T} C^{T}\right]\right.\\ &=A P(k) A^{T}+C Q C^{T} \end{aligned} P(k+1)=E[e(k+1)e(k+1)T]=E[(A(x(k)X~(k))+Cw(k))(A(x(k)X~(k))+Cw(k))T]=E[(Ae(k))((Ae(k))T]+E[Cw(k)w(k)TCT]=AP(k)AT+CQCT
综上,可得卡尔曼滤波公式
X ^ ( k ) = X ~ ( k ) + K ( k ) ( Z ( k ) − H X ~ ( k ) ) X ~ ( k ) = A X ^ ( k − 1 ) + B u ( k ) K ( k ) = P ′ ( k ) H T ( H P ′ ( k ) H T + R ) − 1 P ′ ( k + 1 ) = A P ( k ) A T + C Q C T P ( k ) = ( I − K ( k ) H ) P ′ ( k ) \begin{aligned} \hat{X}(k)&=\tilde{X}(k)+K(k)(Z(k)-H \tilde{X}(k))\\ \tilde{X}(k)&=A \hat{X}(k-1)+B u(k) \\ K(k)&=P^{\prime}(k) H^{T}\left(H P^{\prime}(k) H^{T}+R\right)^{-1}\\ P^{\prime}(k+1)&=A P(k) A^{T}+C Q C^{T}\\ P(k)&=(I-K(k) H) P^{\prime}(k) \end{aligned} X^(k)X~(k)K(k)P(k+1)P(k)=X~(k)+K(k)(Z(k)HX~(k))=AX^(k1)+Bu(k)=P(k)HT(HP(k)HT+R)1=AP(k)AT+CQCT=(IK(k)H)P(k)
Q Q Q表示对模型的信任程度

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
滤波是一种用来估计系统状态的递归滤波算法,适用于线性系统且满足高斯分布的噪声。该滤波器是由R. E. Kalman提出的。 滤波的原理是基于两个假设:系统动态方程能由线性方程描述,测量方程能由线性方程描述。在每个时间步,滤波器通过两个步骤进行估计和更新:预测步骤和校正步骤。预测步骤是根据系统动态方程和上一个时间步的估计状态预测当前状态的均值和方差。校正步骤是根据测量方程和当前观测得到的测量值以及预测的状态,利用贝叶斯定理更新状态的均值和方差,得到最终的估计值。 推导滤波算法的公式如下: 预测步骤: 预测状态: $ x^- = A \cdot x + B \cdot u $ 预测状态协方差矩阵: $ P^- = A \cdot P \cdot A^T + Q $ 校正步骤: 增益: $ K = P^- \cdot H^T \cdot (H \cdot P^- \cdot H^T + R)^{-1} $ 修正后的状态: $ x = x^- + K \cdot (z - H \cdot x^-) $ 修正后的状态协方差矩阵: $ P = (I - K \cdot H) \cdot P^- $ 其中,x是系统状态向量,A是状态转移矩阵,B是输入矩阵,u是输入向量,P是后验状态的误差协方差矩阵,Q是预测误差协方差矩阵,H是测量矩阵,R是测量误差的协方差矩阵,z是观测向量。 通过上述公式的迭代,滤波器可以递归地估计系统的状态,并通过校正步骤利用最新的观测值来更新估计值。这种算法在估计方差较大的实时系统中具有势,可以去除噪声和不确定性,提高系统的估计精度。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值