7

【Kalman】卡尔曼滤波

 2 years ago
source link: https://www.guofei.site/2018/09/04/kalman.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

【Kalman】卡尔曼滤波

2018年09月04日

Author: Guofei

文章归类: 4-1-统计模型 ,文章编号: 409


版权声明:本文作者是郭飞。转载随意,但需要标明原文链接,并通知本人
原文链接:https://www.guofei.site/2018/09/04/kalman.html

Edit

什么是卡尔曼滤波?

你想对某一组指标进行预测,现在已经有两组不是很准的方案:

  1. 你已经有了预测方程,进而可以预测均值和方差(假设这一组指标)
  2. 测量某些指标,从而推断你的指标

这种情况非常适合Kalman滤波 卡尔曼滤波的的优点如下:

  1. 可以有效利用多个粗糙数据之间的关系,而单独面对这些数据你可能都无从下手。
  2. 卡尔曼滤波尤其适合动态系统。
  3. 它对于内存要求极低(它仅需要保留系统上一个状态的数据,空间复杂度O(1))。它运算很快,这使得它非常适合解决实时问题和应用于嵌入式系统。

step1

1. 预测部分

xk=Axk−1+Buk−1+wk−1xk=Axk−1+Buk−1+wk−1
其中,
xk−1xk−1是一个多维正态分布,代表系统状态
uk−1uk−1是对系统的控制量,
ww是多维正态分布,是系统噪声

如果仅仅使用预测迭代式进行迭代,预测误差会越来越大,最终没有意义。

2. 测量部分

zk=Hxk+vkzk=Hxk+vk

step2

这一步,分别使用以上两种模型去求随机变量zkzk

预测部分

在第k-1次迭代中,求得了xk−1∼N(x^k−1,Pk−1)xk−1∼N(x^k−1,Pk−1),带入预测公式,可以求得:
xk∼N(x^k,Pk)xk∼N(x^k,Pk)
带入zk=Hkxkzk=Hkxk
得到zk∼N(Hkxk,HkPkHTk)zk∼N(Hkxk,HkPkHkT)
(这里有个运算法则:多元正态分布乘以矩阵后,仍是多元正态分布,且均值和方差满足以上公式)

测量部分

zk∼N(z^k,Rk)zk∼N(z^k,Rk)

step3

现在有了两种方案得到的zkzk的分布,我们希望以此得到一个更准确的zkzk分布。
(这一步看到过有贝叶斯法、最小均方差、正态分布乘法法,都是等价的,这里用正态分布乘法进行推导)

N(u0,Σ0)×N(u1,Σ1)=N(u0+k(u1−u0),Σ0−KΣ0)N(u0,Σ0)×N(u1,Σ1)=N(u0+k(u1−u0),Σ0−KΣ0)
其中,K=Σ0(Σ0+Σ1)−1K=Σ0(Σ0+Σ1)−1(定理见于这里

step2中已经得到:
zk∼N(Hkxk,HkPkHTk)zk∼N(Hkxk,HkPkHkT)
zk∼N(z^k,Rk)zk∼N(z^k,Rk)
如此,便可求出这次迭代中,两个信息都用到的最佳xkxk所对应的zkzk(记录这个最佳xkxk为x′kxk′,它也是下次迭代的输入)

Hkx^′k=Hkx^k+K(z−Hkx^k)Hkx^k′=Hkx^k+K(z−Hkx^k)
HkP′kHTk=HkPkHTk−KHpPkHTkHkPk′HkT=HkPkHkT−KHpPkHkT
其中,K=HkPkHTk(HkPkHTk+Rk)(−1)K=HkPkHkT(HkPkHkT+Rk)(−1)

5个核心公式

时间更新
x^′k=Ax^′k−1+Buk−1x^k′=Ax^k−1′+Buk−1
P′k=APk−1AT+QPk′=APk−1AT+Q
状态更新
Kk=P′kHT(HP′kHT+R)−1Kk=Pk′HT(HPk′HT+R)−1
x^k=x^′k+Kk(yk−Hx^′k)x^k=x^k′+Kk(yk−Hx^k′)
Pk=(I−KkH)P′kPk=(I−KkH)Pk′

参考资料

如何通俗并尽可能详细解释卡尔曼滤波? - 米开朗基罗赵的回答 - 知乎 Understanding the Basis of the Kalman Filter Via a Simple and Intuitive Derivation
最后再提一句,有资料说,Kalman与HMM有一定的深刻联系,只不过HMM的隐变量是离散的。


您的支持将鼓励我继续创作!

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK