1. 程式人生 > >卡爾曼濾波的理解以及推導過程

卡爾曼濾波的理解以及推導過程

針對的系統為:

狀態方程       X(k)=AX(k-1)+Bu(k-1)+W(k-1)

測量方程       Z(k)=HX(k)+V(k)                         0

W是狀態預測的噪聲 符合正態分佈N(0,Q)

V 是測量的噪聲     符合正態分佈N(0,R)

理解:

一般測量值Z(k)為外界提供,大概是採用一種不同的方式去獲取同一個目標值(值不一定相等),用來矯正預測的。於是我們得到了三個值,測量值Z(k),上一次綜合預測值和測量值得到的最優值X(k-1|k-1),對上一次最優值通過狀態方程預測的下一個結果

X(k|k-1)=AX(k-1|k-1)+Bu(k)。卡爾曼的濾波的目的是綜合測量值和預測值得到一個最優值,這裡採用的是分配權重的方式來綜合結果X(k|k)=X(k|k-1)+K(k)(Z(k)-HX(k|k-1))。到此已經得到了最優的解,但是權重怎麼計算?這裡的權重K就是卡爾曼增益(Kalman gain)。K的確定是通過求使得估計值X(k|k)與真實值Xk的均方誤差最小的K。得到K之後自然就是想辦法使得卡爾曼濾波可以無限迭代下去,這好像是卡爾曼最牛逼的地方。

推導過程:

要看懂推導過程需要一些矩陣的計算知識以及統計學知識。

預測方程

綜合預測值和測量值的最優解

要求使得估計值與預測值的均方差最小,自然要先求均方差,這裡是求協方差矩陣,協方差矩陣的對角線就是方差,只要求出了協方差矩陣就可以求該矩陣的痕跡即tr(矩陣的跡便是對角線上的元素累加起來),再對跡求導,使得求導後等於0,解方程即可得到K。

估計值X(k|k)和真實值X(k)之間的協方差矩陣

 

 

預測值X(k|k-1)和真實值X(k)之間的協方差矩陣(別問為什麼要求這個,這個是迭代的需要,具體我也不知道,接下來會用到)

 

將0式帶入2式,再將計算結果帶入3式可以得到

將5展開後將4式帶入可以得到

求6式的跡可以得到

對7式求K(k)的偏導,並使之等於0可得到

對8式移項可得

      

將9式帶入Pk可以得到

     

到此還差P(k|k-1)未知

將4式展開計算即可以得到

至此全部計算完畢。

標記黃色的即為卡爾曼的核心五條公式

使用:

使用步驟:

預測公式:

更新公式:

參考連線:

卡爾曼推導過程 http://blog.csdn.net/heyijia0327/article/details/17487467