(吐槽:被老師叫來寫卡爾曼濾波的教案
卡爾曼濾波是目前應用最為廣泛的濾波方法,在通訊,導航,制導與控制等多領域得到了較好的應用。卡爾曼濾波在測量方差已知的情況下能夠從一系列存在測量雜訊的資料中,估計動態系統的狀態且由於它便於計算機程式設計實現。
我們先看圖:
狀態轉移方程
這是乙個運算小車模型,很容易我們就可以得到小車的狀態方程,這是未經過修正的方程,即輸出的狀態變數是乙個中間值(右上角帶-號),通常狀態方程在末尾我們會加上乙個噪音,用w表示。
觀察方程
觀察方程就是我們的測量值,受測量誤差影響,我們需要在右側加上噪音v
協方差矩陣是個比較難理解的點,協方差矩陣對角線上的元素代表著單個狀態變數的誤差,非對角線元素是相等的,代表兩個不同變數的誤差的相關性,即當狀態變數互不相干的時候,非對角線元素為零。
協方差矩陣的傳遞
這個是我們由上一時刻的協方差矩陣的結果遞推出我們下一時刻協方差矩陣的**值,利用狀態方程中的系統矩陣來推導出**的誤差協方差矩陣,並加上上述提到過的過程噪音矩陣。
上面兩個帶-號的方程為**方程,卡爾曼濾波分為**和更新過程,現在我們講解更新方程。
上圖
左側方程:我們所求的狀態是我們**的狀態,加上乙個帶有增益係數的殘差,殘差代表著我們測量的輸出和我們**輸出的差,其代表這我們修正我們狀態,得到最優的狀態估計。k_t是卡爾曼濾波增益,它代表著我們對我們測量值的相信程度,若k_t大,則我們更加信任本次測量的結果,我們由下面對k_t的公式定性的分析,若測量雜訊越大,則r越大,則k_t越小,代表我們不信任本次測量結果。
右側方程:這是由下一時刻的協方差矩陣的**值更新出下一時刻的協方差矩陣,在這一次更新中,由於增加一次測量值,所以我們對雜訊的不確定性是會減小的,若我們此次測量結果越準確,k_t就越大,噪音的協方差矩陣就會越小,但是到下一輪**時,由於有過程噪音的存在,噪音的協方差矩陣會增加。
左側給出兩個**方程,此為未經過修正的方程,僅僅依靠前面時刻的測量值得到,所以更新出來的值右上角帶有負號且帶入值無t時刻結果。右側給出三個更新方程,更新方程輸出為修正後的結果,為我們得到的最優化結果。我們在進行程式設計運算時需要先帶入初始值,然後依靠我們得到的模型,帶入**方程,再將**的數值帶入更新值,得到這一時刻的最優化結果。
初始協方差矩陣p的選擇
給出初始取值無窮大時和過程噪音為0時的迭代過程:
為了簡單起見,我們取乙個零階系統,若想要更高階的系統,同學們可自行嘗試。我們假設我們沒有任何先驗資訊,即代表著我們對系統無任何了解,所以取初始協方差矩陣為無窮大,經過一輪迭代我們可以發現,由於沒有過程噪音,我們的**對於協方差矩陣的更新結果100%信任。如我們前面講的,協方差矩陣會越來越小,結果的誤差就會越來越小。
上圖(雷達追蹤下落物體的建模)
假設物體在高度為400000英呎的地方開始下落,初始下落速度為6000英呎每秒,根據物理學,我們可以知道物體下落高度和速度的理論值,但是由於雷達測量時會含有誤差,我們取測量誤差的方差為\sigma^2,並且我們假設我們對該模型有百分比確定性,即過程誤差q等零。我們將卡爾曼濾波中初始的高度速度加速度都設為0,且協方差矩陣取無窮大,這代表我們對我們初始的設定值無確定性。接下來看卡爾曼濾波結果
可以看到,卡爾曼濾波對於高度的追蹤有著幾乎100%的追蹤精度,對於速度和加速度,在一定時間後也會有很好的效果。
卡爾曼濾波的理解
首先了解一下濾波 濾波 filtering is weighting 濾波即加權 濾波的作用就是給不同的訊號分量不同的權重。最簡單的loss pass filter,就是直接把低頻的訊號給0權重,而給高頻部分1權重。常見的貝葉斯濾波和卡爾曼濾波 貝葉斯濾波我覺得關鍵在於對先驗概率和後驗概率的理解上,...
卡爾曼濾波學習理解
首先,我們引入乙個離散控制過程的系統。該系統可用乙個線性隨機微分方程來描述 x k ax k 1 bu k w k z k hx k v k x k 是k時刻的系統狀態,u k 是k時刻對系統的控制量。a和b是系統引數,對於多模型系統,他們為矩陣。z k 是k時刻的測量值,h是測量系統的引數,對於多...
卡爾曼濾波簡單理解
卡爾曼濾波是對系統的狀態 如汽車的速度 加速度等 進行最優估計,因為觀測資料中包含雜訊和干擾,所以最優估計也可看作是濾波過程。下面是卡爾曼濾波的兩個例子。例1 估計發動機內部溫度 如果想要測量火箭發動機內部的溫度,可以將感測器放入發動機內部測出內部溫度tin t ti n 但是感測器在內部會損壞無法...