卡爾曼濾波

2021-04-17 20:30:03 字數 1547 閱讀 5535

卡爾曼濾波演算法

首先引入乙個離散控制過程的系統,用乙個線性隨機微分方程來描述: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 卡爾曼濾波器應用 既然我們有了測量儀器,這些測量儀器可以目標給出準確測量值。還需要卡爾曼濾波器進行估計嗎?下面解釋一下為什麼需要卡...

卡爾曼 基礎卡爾曼濾波

卡爾曼濾波器是一種基礎 定位演算法。原理非常簡單易懂。核心過程可以用乙個圖說明 本質上就是這兩個狀態過程的迭代,來逐步的準確定位。更新 更具感測器獲取到比較準確的位置資訊後來更新當前的 問位置,也就是糾正 的錯誤。你可能要問為什麼有感測器的資料了還要進行更新?因為在現實世界中感測器是存在很多雜訊干擾...

卡爾曼濾波

卡爾曼濾波本來是控制系統課上學的,當時就沒學明白,以為以後也不用再見到它了,可惜沒這麼容易,後來學計算機視覺和影象處理,發現用它的地方更多了,沒辦法的時候只好耐心學習和理解了。一直很想把學習的過程記錄一下,讓大家少走彎路,可惜總也沒時間和機會,直到今天。我一直有乙個願望,就是把抽象的理論具體化,用最...