飛控之卡爾曼濾波淺析


卡爾曼濾波

  濾波的方法有很多種,針對不同的情況選用的最優濾波方法也是不同的。卡爾曼濾波的特點就是采用遞歸方法解決線性濾波問題,只需要知道當前的測量值和上一時刻的最優值,就能對此刻進行最優值計算,計算量小,不需要大量儲存空間,適合性能不太強的單片機處理。二階卡爾曼濾波更加可靠,但計算量較大,通常使用的是一階。

現在網絡上卡爾曼濾波的資料有很多,大多是一位大佬生產,說不清的碼農搬磚,想要真正理解卡爾曼濾波的道理,還需靜下心來從數學理論慢慢體會。分享一個正在研究的文檔,比較深入的那種。

https://pan.baidu.com/s/11NCpqgciVc1KIx4H66upAA

既然要真正搞懂很難,那我就反其道而行之,邊用邊學吧。

卡爾曼濾波由五個基本方程式組成,列出了方程式,濾波也就完成了。

深入一點的方程式從那個文章中拷進來的,看一下就好,我們分析淺顯點的。

先把初始化賦值說一下,免得直接懵逼。在飛控中初始化時常用賦值如下:P(k-1)=0.02     Kg(k)=P(k)=X(k)=0    Q=0.001    R=0.5  

1.預測狀態方程

X(k)=A X(k-1)+B U(k)      -----深

X(k)= X(k-1)            ----------淺

簡單的說就是把上一時刻的卡爾曼濾波的最優值 X(k-1)  乘以一個系數賦給當前預測值,這個系數常為1。U(k) 為控制增益,一般為0。

2.預測協方差方程

P(k)=A P(k-1) A’+Q   -----深

P(k)= P(k-1) +Q     ----------淺

P(k)是此刻系統協方差,P(k-1)是k-1時刻系統協方差,Q是系統過程噪聲的協方差。在飛控中,這些值的初始化值是根據經驗和計算得來的,最后統一賦一下。

3.卡爾曼增益方程

Kg(k)= P(k) H’ / (H P(k) H’ + R)         -------深

Kg(k)=P(k)/(P(k)+R)     ----------淺

Kg(k)叫做卡爾曼增益,P(k)是剛算出來的此刻系統協方差,R是對象測量噪聲的協方差,初始化時直接給出,調試時可以根據需要調整大小,R大點時波形幅度減小,效果滯后,小點時相反,根據效果調整就好。

4.更新最優值方程

X(k)= X(k)+Kg(k) (Z(k)-H X(k))      -------深

X(k)= X(k)+Kg(k) (Z(k)- X(k))     ----------淺

X(k)就此刻的最優值,可以直接用的那種,X(k)是上一時刻的最優值,Z(k)是此刻對象的測量值,換句話說就是卡爾曼濾波函數的輸入值,要是測量值都沒了,還濾毛線啊,是吧。

5.更新協防差方程

P(k-1)= (I-Kg(k) H )P(k)      -------深

P(k-1)= (I-Kg(k) )P(k)      ----------淺

此刻的系統協方差一經計算變成舊的協方差,供下次使用。

這就結束了,被濾波的值是Z(k),濾波的結果是X(k)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM