卡爾曼濾波演算法
首先引入乙個離散控制過程的系統,用乙個線性隨機微分方程來描述:x(k)
=a x(k-1
)+b u(k)
+w(k),系統的測量值:
z(k)
=h x(k)
+v(k) 。x(k)是k時刻的系統狀態,u(k)是k時刻對系統的控制量。a和b是系統引數,對於多模型系統,他們為矩陣。z(k)是k時刻的測量值,h 是測量系統的引數,對於多測量系統,h為矩陣。w(k)和v(k)分別表示過程和測量的雜訊。他們被假設成高斯白雜訊,他們的covariance 分別是q,r(這裡我們假設他們不隨系統狀態變化而變化)。
利用系統的過程模型,來**下一狀態的系統。假設現在的系統狀態是k,根據系統的模型,可以基於系統的上一狀態而**出現在狀態:
x(k|k
-1)=
a x(k-1
|k-1
)+b u(k) ……….. (1)
式(1)中,x(k|k
-1)是利用上一狀態**的結果,x(k-1
|k-1
)是上一狀態最優的結果,u(k)為現在狀態的控制量,如果沒有控制量,它可以為0。
到現在為止,系統結果已經更新了,可是,對應於x(k|k
-1)的covariance還沒更新。我們用p表示covariance:
p(k|k
-1)=
a p(k-1
|k-1
) a』
+q ……… (2)
式(2) 中,p(k|k
-1)是x(k|k
-1)對應的covariance,p(k-1
|k-1
)是x(k-1
|k-1
)對應的covariance,a』表示 a的轉置矩陣,q是系統過程的covariance。式子1,2就是卡爾曼濾波器5個公式當中的前兩個,也就是對系統的**。
現在我們有了現在狀態的**結果,然後我們再收集現在狀態的測量值。結合**值和測量值,我們可以得到現在狀態(k)的最優化估算值x(k
|k):
x(k|k)
=x(k|k
-1)+
kg(k) (z(k)
-h x(k|k
-1)) ……… (3)
其中kg為卡爾曼增益(kalman gain):
kg(k)
=p(k|k
-1) h』
/(h p(k|k
-1) h』
+r) ……… (4)
到現在為止,我們已經得到了k狀態下最優的估算值x(k
|k)。但是為了要另卡爾曼濾波不斷的執行下去直到系統過程結束,我們還要更新k狀態下x(k
|k)的covariance:
p(k|k)
=(i-kg(k) h)p(k|k
-1) ……… (5)
其中i 為1的矩陣,對於單模型單測量,i=1
。當系統進入k
+1狀態時,p(k
|k)就是式子(
2)的p(k-1
|k-1
)。這樣,演算法就可以自回歸的運算下去。
卡爾曼 卡爾曼濾波 1
今天主要介紹一下卡爾曼濾波器,所謂卡爾曼濾波器其實是一種最優化遞迴數字處理演算法 optimal recursive data processing algorithm 卡爾曼濾波器應用 既然我們有了測量儀器,這些測量儀器可以目標給出準確測量值。還需要卡爾曼濾波器進行估計嗎?下面解釋一下為什麼需要卡...
卡爾曼 基礎卡爾曼濾波
卡爾曼濾波器是一種基礎 定位演算法。原理非常簡單易懂。核心過程可以用乙個圖說明 本質上就是這兩個狀態過程的迭代,來逐步的準確定位。更新 更具感測器獲取到比較準確的位置資訊後來更新當前的 問位置,也就是糾正 的錯誤。你可能要問為什麼有感測器的資料了還要進行更新?因為在現實世界中感測器是存在很多雜訊干擾...
卡爾曼濾波
卡爾曼濾波本來是控制系統課上學的,當時就沒學明白,以為以後也不用再見到它了,可惜沒這麼容易,後來學計算機視覺和影象處理,發現用它的地方更多了,沒辦法的時候只好耐心學習和理解了。一直很想把學習的過程記錄一下,讓大家少走彎路,可惜總也沒時間和機會,直到今天。我一直有乙個願望,就是把抽象的理論具體化,用最...