1. 程式人生 > >卡爾曼濾波基本原理及公式推導

卡爾曼濾波基本原理及公式推導

一、卡爾曼濾波基本原理

既然是濾波,那肯定就是一種提純資料的東西。怎麼理解呢,如果現在有一個任務,需要知道家裡橘子樹今年長了多少個橘子。你想到去年、前年、大前年這三年你把橘子吃到過年,按每天吃3個來算,大概知道每年橘子樹產了多少橘子,今年的情況應該也差不多。這叫數學模型預測法;不過你懶得去想去年吃了多少個,就打算給鄰居家的小孩一把糖果讓他去數,小孩三下五除二就數完了,但是他數的仔細不仔細和有沒有摘幾個回家吃就不知道了,這叫感測器直接測量法。很明顯這兩種方法都不那麼靠譜,卡爾曼濾波就是將這兩種方法測得的資料融合起來,得到一個靠譜的資料。

 

二、公式推導之前回顧一些知識

1、正態分佈

曲線兩頭低,中間高,左右對稱。

隨機變數X服從一個數學期望為μ、方差為σ^2的正態分佈,記為N(μ,σ^2)。期望值μ決定了其位置,其標準差σ決定了分佈的幅度。σ越大麴線越矮胖,σ越小則越瘦長。————來自百度百科

 

2、協方差

協方差用來描述兩個變數在變化時的聯絡情況,是同向變化,還是反向變化?你變大,同時我也變大,說明兩個變數是同向變化的,這時協方差就是正的。你變大,同時我變小,說明兩個變數是反向變化的,這時協方差就是負的。

 

三、公式推導

這裡有一篇很不錯的文章講解推導的先貼在這裡

如何通俗並儘可能詳細解釋卡爾曼濾波? - 米開朗基羅趙的回答 - 知乎 https://www.zhihu.com/question/23971601/answer/375355599


數學模型估計資料 


1、假設我們現在要獲取一個系統中某些狀態稍微精確的資料,比如是智慧小車的速度、位置,\small x_{k}=\left [ p,v \right ]^{T},p是position小車位置。

那麼由數學模型,k時刻狀態估計值可以由k-1時刻大致推匯出來

                                                                                  \small \check{x_{k}^{-}}=F\cdot \check{x_{k-1}}

 

F:狀態轉移矩陣,通常由機理關係得到,比如\small x_{t}=x_{t-1}+\Delta t\cdot \dot{x_{t-1}}

\small \check{x_{k}^{-}}:注意右邊帶有小斜槓,這是先驗估計

\small \check{x_{k-1}^{}}:這是上一時刻的後驗估計

先驗估計是還沒有結合感測器資料的純模型估計值,後驗估計是模型資料和感測器資料融合之後的也就是我們需要的精確資料。

 

當然在這些資料轉移的時候,變數之間的關係(協方差)也會隨著改變。\small \check{P_{k}^{}}為協方差

                                                    \small \check{P_{k}^{-}}=F\cdot \check{P_{k-1}}\cdot F^{T}                           來源於:\small if :cov(x)=\sum ,then:cov(Ax)=A\sum A^{T}

 

2、當然狀態不可能只受上一時刻狀態的影響,比如智慧小車有來自電機驅動的動能,小車有時會獲得一個加速度。那麼狀態還要加上這一外部作用力的影響

                                                   \small \check{x_{k}^{-}}=F\cdot \check{x_{k-1}}+B\check{u_{k-1}}

 

3、出來已知的外部作用力,還有一些不確定性因素會影響系統的狀態變化,比如地上坑坑窪窪,智慧小車抖那麼一下,狀態都會發生改變。這就是白噪聲的影響,假設白噪聲服從方差\small \sum =Q_{k}正態分佈。這一部分的影響要加到協方差中去。

                                                 \small \check{P_{k}^{-}}=F\cdot \check{P_{k-1}}\cdot F^{T}+Q_{k}

 

4、以上模型所有要考慮的因素基本都囊括進去了,但是的模型資料要和感測器資料融合起來,量綱肯定要統一,假設通過矩陣\small H_{k}變化。還是據智慧小車的例子,假如我們要利用編碼器獲取小車的速度,我們設計的數學模型關於速度的單位肯定是米每秒,但是編碼器採集的資料有可能是一個脈衝數,它還要通過車輪轉一米固定多少個脈衝這樣一個間接方法才能獲得小車的速度。

所以有:(數學模型估計正態分佈的平均值和方差)

(敲公式太累了,偷懶!)


 

 

感測器資料


5、感測器的資料也符合正態分佈,假設平均值是\small \acute{z_{k}},方差是\small R_{k}

 

開始融合


現有兩個高斯分佈資料,卡爾曼老先生將這兩個高斯斑直接相乘,得到了一個新的高斯斑,就是我們要的更加精確的資料。直接通過相乘就得到了滿意的結果,果然是大道至簡,牛皮。

暫停一下,吃飯去了,明天再改改。。。