<progress id="rfbpr"><ruby id="rfbpr"><th id="rfbpr"></th></ruby></progress>
      <delect id="rfbpr"><video id="rfbpr"></video></delect>

      <ins id="rfbpr"><video id="rfbpr"></video></ins>

      <menuitem id="rfbpr"><pre id="rfbpr"><sub id="rfbpr"></sub></pre></menuitem>

      <delect id="rfbpr"><video id="rfbpr"></video></delect>

          <menuitem id="rfbpr"></menuitem>
            <menuitem id="rfbpr"></menuitem>

                首頁>新聞資訊>行業動態

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

                發布時間:2019-07-17 10:28:18 瀏覽:9592

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

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

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

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

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

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

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


                第一篇


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

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

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

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

                     假如我們要估算k時刻的是實際溫度值。首先你要根據k-1時刻的溫度值,來預測k時刻的溫度。因為你相信溫度是恒定的,所以你會得到k時刻的溫度預測值是跟k-1時刻一樣的,假設是23度,同時該值的高斯噪聲的偏差是5度(5是這樣得到的:如果k-1時刻估算出的最優溫度值的偏差是3,你對自己預測的不確定度是4度,他們平方相加再開方,就是5)。然后,你從溫度計那里得到了k時刻的溫度值,假設是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比較?。ū容^相信溫度計),所以估算出的最優溫度值偏向溫度計的值。
                      現在我們已經得到k時刻的最優溫度值了,下一步就是要進入k+1時刻,進行新的最優估算。到現在為止,好像還沒看到什么自回歸的東西出現。對了,在進入k+1時刻之前,我們還要算出k時刻那個最優值(24.22度)的偏差。算法如下:

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

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

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

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


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

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




                五個更新方程為:


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

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

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

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

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

                      3.簡單例子(A Simple Example)
                這里我們結合第二第三節,舉一個非常簡單的例子來說明卡爾曼濾波器的工作過程。所舉的例子是進一步描述第二節的例子,而且還會配以程序模擬結果。
                根第二節的描述,把房間看成一個系統,然后對這個系統建模。當然,我們見的模型不需要非常地精確。我們所知道的這個房間的溫度是跟前一時刻的溫度相同的,所以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)
                因為測量的值是溫度計的,跟溫度直接對應,所以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=0時刻所有狀態的向量,比如:
                [速度大小5m/s, 速度方向右, 位置坐標0],反正有了這個向量就可以完全預測t=1時刻小車的狀態)

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

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


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


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

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

                關注手機微信

                聯系電話

                029-88814881
                88814882 / 88814883

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

                技術支持/名遠科技
                日本韩国欧美亚洲,AV无码国产在线看免,77777欧美日本在线,a一级爱做片免费观看欧美,东京热无码一区二区三区AV <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <文本链> <文本链> <文本链> <文本链> <文本链> <文本链>