卡尔曼滤波---简述(一)

感慨

虽然本人只是个小小码农,主攻java后台开发,但吾以为,学习技术,应当不分领域。
本文首先假设读者像我当初一样,是个对卡尔曼滤波望而生畏的小白。

参考链接

https://zhuanlan.zhihu.com/p/39912633
该链接是本人觉得描述得比较好理解的一篇文章了,从基础一步一步推进,推导出卡尔曼滤波的过程。

https://zh.wikipedia.org/wiki/卡尔曼滤波
该链接有很详尽的说明,不得不提,维基百科是个学习的好地方

公式

时间更新方程

x^kˉ=Ax^k1+Buk1                {\hat{x}}_{\bar{k}}=A{\hat{x}}_{{k-1}}+Bu_{k-1} ~~~~~~~~~~~~~~~ ①
Pkˉ=APk1AT+Q                P_{\bar{k}}=AP_{k-1}A^T+Q ~~~~~~~~~~~~~~~ ②

状态更新方程

Kk=PkˉHTHPkˉHT+R                K_k=\frac {P_{\bar{k}}H^T} {HP_{\bar{k}}H^T+R}~~~~~~~~~~~~~~~ ③
x^k=x^kˉ+Kk(zkHx^kˉ)                {\hat{x}}_{k}={\hat{x}}_{\bar{k}}+K_k(z_k-H{\hat{x}}_{\bar{k}})~~~~~~~~~~~~~~~ ④
Pk=IKkHPkˉ                P_k=(I-K_kH)P_{\bar{k}}~~~~~~~~~~~~~~~ ⑤

时间更新方程解读

为何要称它为时间更新方程,主要在于等式左边都是当前值,而右边变量则都是上一时刻值。故方程是随着时间在推进的。
方程的目标在于,预测一个当前值以及得到该预测值的误差。假设我们再知道测量值以及测量值的误差,那么就可以按照 z=ax+(1a)yz=ax+(1-a)y 进行融合,即
=+结果=预测值占一定比例+测量值占一定比例
决定比例大小的因素就是误差,误差小更可信,占比会更大。

①式解读

本式子是一个预测模型的表示,通俗地翻译公式为:
=+ 当前预测值=上一个最优估计值+外力作用
其中的A和B矩阵用于转换关系的表示,并不影响理解。
一般来讲,有没有外力都无所谓的,甚至你采用的预测模型不够准确,也是可以应用卡尔曼滤波的,只要你的预测值不要与实际差个十万八千里即可

②式解读

翻译公式为:
=+ 先验估计协方差=上一后验估计协方差+噪声协方差
首先搞清楚何为先验,何为后验。
举一个先验的例子,两个骰子,和为5的概率。共36种可能性,其中和为8有1+4,2+3,3+2,4+1四种,故概率为1/9。
举一个后验的例子,两个骰子,现在摇出5点,求一个是1另一个是4的概率。由上面列举可见,概率为1/2。
主要是①式两边求协方差得到的,其中使用到如下公式
Cov(Ax)=ACov(x)AT Cov(Ax)=ACov(x)A^T

状态更新方程解读

状态更新方程两边都是k量,目标是融合出一个最优估计值,同时求出其协方差。

③式解读

翻译公式为:
=+ 卡尔曼增益=先验估计协方差+量噪声协方差
卡尔曼增益指明了预测值和测量值之间的以何种比例进行结果融合,这涉及两个高斯分布之间的融合,参考链接中有详细说明

④式解读(目标)

翻译公式为:
=+ 最优估计值=预测值+一定比例的(测量值-当前预测值)
乍一看,好像哪里不对,加号右边的预测值比左边的预测值多了一个HkH_k,原因其实是最开始都带了HkH_k,从而两边都消掉了HkH_k,而加号右边的预测值携带的HkH_k无法被消掉,从而在公式上显得比较突兀,实际表达的意思和z=ax+(1a)yz=ax+(1-a)y是一致的。
本式子也是我们最关心的一个式子,该式子对外输出了最优估计值,而其他的式子,对外并不输出外部关心的信息。

⑤式解读

没得翻译,是通过对④式两边求协方差得来的。

总结

讲解卡尔曼滤波的文章有很多,小弟也只是初学,表达一下个人粗浅看法,纯属笔记。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章