91香蕉嫩草,久久久久久无码,亚洲精品久久国产高清情趣图文,日本韩无码福利片,永久免费精品,不卡的高清视频,天天综合天堂在线视频,忘忧草成片,9191精品国产费久久,66亚洲一卡2卡新区成片发布,奇米影视7777狠狠狠狠色,国产影片免费网站推荐,国产精品视频一区二区三区,国产综合永久精品嫩草,www深夜成人网站下载麻豆,精品国产站精品视频

首頁>新聞資訊>行業(yè)動態(tài)

深入淺出講解卡爾曼濾波(附Matlab程序)

發(fā)布時間:2019-07-17 10:28:18 瀏覽:16750

       簡單來說,卡爾曼濾波器是一個“optimal recursive data processing algorithm(最優(yōu)化自回歸數(shù)據(jù)處理算法)”。對于解決很大部分的問題,他是最優(yōu),效率最高甚至是最有用的。他的廣泛應(yīng)用已經(jīng)超過30年,包括機器人導航,控制,傳感器數(shù)據(jù)融合甚至在軍事方面的雷達系統(tǒng)以及導彈追蹤等等。近年來更被應(yīng)用于計算機圖像處理,例如頭臉識別,圖像分割,圖像邊緣檢測等等。

      在學習卡爾曼濾波器之前,首先看看為什么叫“卡爾曼”。跟其他著名的理論(例如傅立葉變換,泰勒級數(shù)等等)一樣,卡爾曼也是一個人的名字,而跟他們不同的是,他是個現(xiàn)代人!學過控制的應(yīng)該都知道,卡爾曼是現(xiàn)代控制理論的奠基人!

      卡爾曼全名Rudolf Emil Kalman,匈牙利數(shù)學家,1930年出生于匈牙利首都布達佩斯。1953,1954年于麻省理工學院分別獲得電機工程學士及碩士學位。1957年于哥倫比亞大學獲得博士學位。我們現(xiàn)在要學習的卡爾曼濾波器,正是源于他的博士論文和1960年發(fā)表的論文《A New Approach to Linear Filtering and Prediction Problems》(線性濾波與預(yù)測問題的新方法)。

      為了給大家能講解清楚卡爾曼濾波器,我們找到兩篇關(guān)于卡爾曼濾波器非常好的文章:

      第一篇來源于CSDN博客,為大家詳細的講解了卡爾曼的原理及應(yīng)用,算作“深入”

      第二篇來源于知乎,用一個簡單的例子,通俗易懂的講解了卡爾曼濾波,算作“淺出”

       此外,關(guān)于卡爾曼濾波的仿真程序在EETOP論壇里有很多,大家可以登錄論壇后搜索“卡爾曼”來查找。這里我們給大家提供了一個Matlab仿真程序,可以通過點擊左下角的“閱讀原文”進入論壇下載。


第一篇


     原文地址:http://blog.csdn.net/lanbing510/article/details/40936343

     1.卡爾曼濾波器的介紹(Introduction to the Kalman Filter)
為了可以更加容易的理解卡爾曼濾波器,首先應(yīng)用形象的描述方法來講解,然后我們結(jié)合其核心的5條公式進行進一步的說明和探索。結(jié)合現(xiàn)代的計算機,其實卡爾曼的程序相當?shù)暮唵?,只要你理解了他的?條公式。
在介紹他的5條公式之前,先讓我們來根據(jù)下面的例子做個直觀的解釋。

     假設(shè)我們要研究的對象是一個房間的溫度。根據(jù)你的經(jīng)驗判斷,這個房間的溫度是恒定的,也就是下一分鐘的溫度等于現(xiàn)在這一分鐘的溫度(假設(shè)我們用一分鐘來做時間單位)。假設(shè)你對你的經(jīng)驗不是100%的相信,可能會有上下偏差幾度。我們把這些偏差看成是高斯白噪聲(White Gaussian Noise),也就是這些偏差跟前后時間是沒有關(guān)系的而且符合高斯分配(Gaussian Distribution)。另外,我們在房間里放一個溫度計,但是這個溫度計也不準確的,測量值會比實際值偏差。我們也把這些偏差看成是高斯白噪聲。

     好了,現(xiàn)在對于某一分鐘我們有兩個有關(guān)于該房間的溫度值:你根據(jù)經(jīng)驗的預(yù)測值(系統(tǒng)的預(yù)測值)和溫度計的值(測量值)。下面我們要用這兩個值結(jié)合他們各自的噪聲來估算出房間的實際溫度值。

     假如我們要估算k時刻的是實際溫度值。首先你要根據(jù)k-1時刻的溫度值,來預(yù)測k時刻的溫度。因為你相信溫度是恒定的,所以你會得到k時刻的溫度預(yù)測值是跟k-1時刻一樣的,假設(shè)是23度,同時該值的高斯噪聲的偏差是5度(5是這樣得到的:如果k-1時刻估算出的最優(yōu)溫度值的偏差是3,你對自己預(yù)測的不確定度是4度,他們平方相加再開方,就是5)。然后,你從溫度計那里得到了k時刻的溫度值,假設(shè)是25度,同時該值的偏差是4度。
    由于我們用于估算k時刻的實際溫度有兩個溫度值,分別是23度和25度。究竟實際溫度是多少呢?相信自己還是相信溫度計呢?究竟相信誰多一點,我們可以用他們的covariance來判斷。因為Kg=5^2/(5^2+4^2),所以Kg=0.6098,我們可以估算出k時刻的實際溫度值是:23+0.6098*(25-23)=24.22度。可以看出,因為溫度計的covariance比較小(比較相信溫度計),所以估算出的最優(yōu)溫度值偏向溫度計的值。
      現(xiàn)在我們已經(jīng)得到k時刻的最優(yōu)溫度值了,下一步就是要進入k+1時刻,進行新的最優(yōu)估算。到現(xiàn)在為止,好像還沒看到什么自回歸的東西出現(xiàn)。對了,在進入k+1時刻之前,我們還要算出k時刻那個最優(yōu)值(24.22度)的偏差。算法如下:

      ((1-Kg)*5^2)^0.5=3.12。這里的5就是上面的k時刻你預(yù)測的那個23度溫度值的偏差,得出的3.12就是進入k+1時刻以后k時刻估算出的最優(yōu)溫度值的偏差(對應(yīng)于上面的3)。
        就是這樣,卡爾曼濾波器就不斷的把covariance遞歸,從而估算出最優(yōu)的溫度值。他運行的很快,而且它只保留了上一時刻的covariance。上面的Kg,就是卡爾曼增益(Kalman Gain)。他可以隨不同的時刻而改變他自己的值,是不是很神奇!
      下面就要言歸正傳,討論真正工程系統(tǒng)上的卡爾曼。

       2. 卡爾曼濾波器算法(The Kalman Filter Algorithm)

        在這一部分,我們就來描述源于Dr Kalman 的卡爾曼濾波器。下面的描述,會涉及一些基本的概念知識,包括概率(Probability),隨即變量(Random Variable),高斯或正態(tài)分配(Gaussian Distribution)還有State-space Model等等。但對于卡爾曼濾波器的詳細證明,這里不能一一描述。

         首先,我們先要引入一個離散控制過程的系統(tǒng)。該系統(tǒng)可用一個線性隨機微分方程(Linear Stochastic Difference equation)來描述,我們結(jié)合下面PPT截圖進行說明:


      上兩式子中,x(k)是k時刻的系統(tǒng)狀態(tài),u(k)是k時刻對系統(tǒng)的控制量。A和B是系統(tǒng)參數(shù),對于多模型系統(tǒng),他們?yōu)榫仃?。y(k)是k時刻的測量值,H是測量系統(tǒng)的參數(shù),對于多測量系統(tǒng),H為矩陣。q(k)和r(k)分別表示過程和測量的噪聲。他們被假設(shè)成高斯白噪聲(White Gaussian Noise),他們的covariance分別是Q,R(這里我們假設(shè)他們不隨系統(tǒng)狀態(tài)變化而變化)。

      對于滿足上面的條件(線性隨機微分系統(tǒng),過程和測量都是高斯白噪聲),卡爾曼濾波器是最優(yōu)的信息處理器。先給出KF算法的流程和五個核心更新方程如下:KF算法




五個更新方程為:


編寫公式不方便,所以寫成了PDF然后做了截圖粘在了下面,下面就上面的例子和五個核心的公式對Kalman算法進行下說明:

就這樣,算法就可以自回歸的運算下去。

看到這聰明的同學可能已經(jīng)看出來了,問道卡爾曼增益為什么會是第三步中那樣求,現(xiàn)在只大致說一下原理,具體推到比較復雜,有興趣的同學可以參考這文獻去推一推。
還記得前面我們說的誤差協(xié)方差矩陣$P_k$么,即求第k次最優(yōu)溫度的誤差協(xié)方差矩陣,對應(yīng)于上例中的3和3.12....這些值。看下面PPT,我們最小化P即可得到卡爾曼增益K,對應(yīng)上例求解K只最小化最優(yōu)溫度值的偏差,即最小化P(K):

       我們由第四步可以看出,k時刻系統(tǒng)的最優(yōu)溫度值=k-1時刻狀態(tài)估計值(由上一狀態(tài)的最優(yōu)溫度值加上過程誤差)+帶卡爾曼增益權(quán)值項的偏差。如果觀測誤差遠遠大于估計誤差,那么K就很小,k時刻的預(yù)測值約等于k時刻的狀態(tài)估計值,如果對i時刻的狀態(tài)估計值誤差遠遠大于觀測誤差,此時相應(yīng)的q較大,K較大,i時刻的狀態(tài)估計值更傾向于觀察的數(shù)據(jù)。

卡爾曼濾波器的原理基本描述就完成了,希望能幫助大家理解這這5個公式,其算法可以很容易的用計算機的程序?qū)崿F(xiàn)。下面,我會用程序舉一個實際運行的例子。

      3.簡單例子(A Simple Example)
這里我們結(jié)合第二第三節(jié),舉一個非常簡單的例子來說明卡爾曼濾波器的工作過程。所舉的例子是進一步描述第二節(jié)的例子,而且還會配以程序模擬結(jié)果。
根第二節(jié)的描述,把房間看成一個系統(tǒng),然后對這個系統(tǒng)建模。當然,我們見的模型不需要非常地精確。我們所知道的這個房間的溫度是跟前一時刻的溫度相同的,所以A=1。沒有控制量,所以u(k)=0。因此得出:
x(k|k-1)=x(k-1|k-1) ……… (6)
式子(2)可以改成:
P(k|k-1)=P(k-1|k-1) +Q ……… (7)
因為測量的值是溫度計的,跟溫度直接對應(yīng),所以H=1。式子3,4,5可以改成以下:
X(k|k)= X(k|k-1)+Kg(k) (Z(k)-X(k|k-1)) ……… (8)
Kg(k)= P(k|k-1) / (P(k|k-1) + R) ……… (9)
P(k|k)=(1-Kg(k))P(k|k-1) ……… (10)


第二篇

考慮軌道上的一個小車,無外力作用,它在時刻t的狀態(tài)向量只與相關(guān):
(狀態(tài)向量就是描述它的t=0時刻所有狀態(tài)的向量,比如:
[速度大小5m/s, 速度方向右, 位置坐標0],反正有了這個向量就可以完全預(yù)測t=1時刻小車的狀態(tài))

那么根據(jù)t=0時刻的初值,理論上我們可以求出它任意時刻的狀態(tài)。
當然,實際情況不會這么美好。
這個遞推函數(shù)可能會受到各種不確定因素的影響(內(nèi)在的外在的都算,比如刮風下雨地震,小車結(jié)構(gòu)不緊密,輪子不圓等等)導致并不能精確標識小車實際的狀態(tài)。
我們假設(shè)每個狀態(tài)分量受到的不確定因素都服從正態(tài)分布。
現(xiàn)在僅對小車的位置進行估計
請看下圖:t=0時小車的位置服從紅色的正態(tài)分布。

根據(jù)小車的這個位置,我們可以預(yù)測出t=1時刻它的位置:


分布變“胖”了,這很好理解——因為在遞推的過程中又加了一層噪聲,所以不確定度變大了。
為了避免純估計帶來的偏差,我們在t=1時刻對小車的位置坐標進行一次雷達測量,當然雷達對小車距離的測量也會受到種種因素的影響,于是測量結(jié)果告訴我們,小車t=1時的位置服從藍色分布:


好了,現(xiàn)在我們得到兩個不同的結(jié)果。前面有人提過加權(quán),Kalman老先生的牛逼之處就在于找到了相應(yīng)權(quán)值,使紅藍分布合并為下圖這個綠色的正態(tài)分布(啰嗦一句,這個綠色分布均值位置在紅藍均值間的比例稱為Kalman增益(比如下圖中近似0.8),就是各種公式里的K(t))

你問為什么牛逼?
綠色分布不僅保證了在紅藍給定的條件下,小車位于該點的概率最大,而且,而且,它居然還是一個正態(tài)分布!
正態(tài)分布就意味著,可以把它當做初值繼續(xù)往下算了!這是Kalman濾波能夠迭代的關(guān)鍵。
最后,把綠色分布當做第一張圖中的紅色分布對t=2時刻進行預(yù)測,算法就可以開始循環(huán)往復了。
你又要問了,說來說去綠色分布是怎么得出的呢?
其實可以通過多種方式推導出來,我們課上講過的就有最大似然法、Ricatti方程法,以及上面參考文獻中提及的直接對高斯密度函數(shù)變形的方法,這個不展開說了。

關(guān)注手機微信

聯(lián)系電話

029-88814881
88814882 / 88814883

Copyright ? 2018 西安精準測控有限責任公司 All Rights Reserved.  陜ICP備12005193號

技術(shù)支持/名遠科技