卡爾曼濾波入門、簡介及其算法MATLAB實現(xiàn)代碼.doc_第1頁
卡爾曼濾波入門、簡介及其算法MATLAB實現(xiàn)代碼.doc_第2頁
卡爾曼濾波入門、簡介及其算法MATLAB實現(xiàn)代碼.doc_第3頁
卡爾曼濾波入門、簡介及其算法MATLAB實現(xiàn)代碼.doc_第4頁
卡爾曼濾波入門、簡介及其算法MATLAB實現(xiàn)代碼.doc_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

卡爾曼濾波入門:卡爾曼濾波是用來進行數(shù)據(jù)濾波用的,就是把含噪聲的數(shù)據(jù)進行處理之后得出相對真值。卡爾曼濾波也可進行系統(tǒng)辨識。卡爾曼濾波是一種基于統(tǒng)計學理論的算法,可以用來對含噪聲數(shù)據(jù)進行在線處理,對噪聲有特殊要求,也可以通過狀態(tài)變量的增廣形式實現(xiàn)系統(tǒng)辨識。用上一個狀態(tài)和當前狀態(tài)的測量值來估計當前狀態(tài),這是因為上一個狀態(tài)估計此時狀態(tài)時會有誤差,而測量的當前狀態(tài)時也有一個測量誤差,所以要根據(jù)這兩個誤差重新估計一個最接近真實狀態(tài)的值。信號處理的實際問題,常常是要解決在噪聲中提取信號的問題,因此,我們需要尋找一種所謂有最佳線性過濾特性的濾波器。這種濾波器當信號與噪聲同時輸入時,在輸出端能將信號盡可能精確地重現(xiàn)出來,而噪聲卻受到最大抑制。維納(Wiener)濾波與卡爾曼(Kalman)濾波就是用來解決這樣一類從噪聲中提取信號問題的一種過濾(或濾波)方法。(1)過濾或濾波-從當前的和過去的觀察值x(n),x(n-1),x(n-2),估計當前的信號值稱為過濾或濾波;(2)預測或外推-從過去的觀察值,估計當前的或將來的信號值稱為預測或外推;(3)平滑或內插-從過去的觀察值,估計過去的信號值稱為平滑或內插;因此,維納過濾與卡爾曼過濾又常常被稱為最佳線性過濾與預測或線性最優(yōu)估計。這里所謂“最佳”與“最優(yōu)”是以最小均方誤差為準則的。維納過濾與卡爾曼過濾都是解決最佳線性過濾和預測問題,并且都是以均方誤差最小為準則的。因此在平穩(wěn)條件下,它們所得到的穩(wěn)態(tài)結果是一致的。然而,它們解決的方法有很大區(qū)別。維納過濾是根據(jù)全部過去的和當前的觀察數(shù)據(jù)來估計信號的當前值,它的解是以均方誤差最小條件下所得到的系統(tǒng)的傳遞函數(shù)H(z)或單位樣本響應h(n)的形式給出的,因此更常稱這種系統(tǒng)為最佳線性過濾器或濾波器。而卡爾曼過濾是用前一個估計值和最近一個觀察數(shù)據(jù)(它不需要全部過去的觀察數(shù)據(jù))來估計信號的當前值,它是用狀態(tài)方程和遞推的方法進行估計的,它的解是以估計值(常常是狀態(tài)變量值)形式給出的。因此更常稱這種系統(tǒng)為線性最優(yōu)估計器或濾波器。維納濾波器只適用于平穩(wěn)隨機過程,而卡爾曼濾波器卻沒有這個限制。維納過濾中信號和噪聲是用相關函數(shù)表示的,因此設計維納濾波器要求已知信號和噪聲的相關函數(shù)。卡爾曼過濾中信號和噪聲是狀態(tài)方程和量測方程表示的,因此設計卡爾曼濾波器要求已知狀態(tài)方程和量測方程(當然,相關函數(shù)與狀態(tài)方程和量測方程之間會存在一定的關系??柭^濾方法看來似乎比維納過濾方法優(yōu)越,它用遞推法計算,不需要知道全部過去的數(shù)據(jù),從而運用計算機計算方便,而且它可用于平穩(wěn)和不平穩(wěn)的隨機過程(信號),非時變和時變的系統(tǒng)。但從發(fā)展歷史上來看維納過濾的思想是40年代初提出來的,1949年正式以書的形式出版??柭^濾到60年代初才提出來,它是在維納過濾的基礎上發(fā)展起來的,雖然如上所述它比維納過濾方法有不少優(yōu)越的地方,但是最佳線性過濾問題是由維納過濾首先解決的,維納過濾的物理概念比較清楚,也可以認為卡爾曼濾波僅僅是對最佳線性過濾問題提出的一種新的算法??柭鼮V波在數(shù)學上是一種統(tǒng)計估算方法,通過處理一系列帶有誤差的實際量測數(shù)據(jù)而得到的物理參數(shù)的最佳估算。例如在氣象應用上,根據(jù)濾波的基本思想,利用前一時刻預報誤差的反饋信息及時修正預報方程,以提高下一時刻預報精度。作溫度預報一般只需要連續(xù)兩個月的資料即可建立方程和遞推關系。EKF(擴展卡爾曼濾波)僅僅利用了非線性函數(shù)Taylor展開式的一階偏導部分(忽略高階項),常常導致在狀態(tài)的后驗分布的估計上產生較大的誤差,影響濾波算法的性能,從而影響整個跟蹤系統(tǒng)的性能。最近,在自適應濾波領域又出現(xiàn)了新的算法無味變換Kalman濾波器(UnscentedKalmanFilter-UKF)。UKF的思想不同于EKF濾波,它通過設計少量的點,由點經(jīng)由非線性函數(shù)的傳播,計算出隨機向量一、二階統(tǒng)計特性的傳播。因此它比EKF濾波能更好地逼近狀態(tài)方程的非線性特性,從而比EKF濾波具有更高的估計精度。上面這段文字所體現(xiàn)出的UKF與EFK的具體區(qū)別能否詳細的總結一下。另外還想請教一下,無味卡爾曼的具體算法時什么?以及與擴展卡爾曼以及卡爾曼的區(qū)別。我在GOOGLE上搜了很多,基本都時卡爾曼濾波的算法,很少涉及UKF方面的具體算法,一些論文網(wǎng)站的部分論文還收費,所以對于UKF還是非常不明白。另外還想請教一下UKF的發(fā)展歷程以及目前國內外研究現(xiàn)狀。EKF是對非線性系統(tǒng)模型(方程)進行的線性化近似,以利用KF算法進行濾波估計。而UKF是對狀態(tài)的概率統(tǒng)計近似,即設計少量的點,由點經(jīng)由非線性函數(shù)的傳播,計算出隨機向量一、二階統(tǒng)計特性的傳播,對于高斯噪聲的假設,UKF能夠達到三階估計精度,而EKF只能達到二階精度,但其算法仍然是利用KF的算法?,F(xiàn)在國內外的文獻大都是對UKF算法的改進和應用進行論述,但對算法的穩(wěn)定性等沒有系統(tǒng)的論述。我了解得沈陽自動化所做的這方面的工作很多。參考資料:TheUnscentedKalmanFilterforNonlinearEstimation.pdf卡爾曼濾波算法簡介最佳線性濾波理論起源于40年代美國科學家Wiener和前蘇聯(lián)科學家等人的研究工作,后人統(tǒng)稱為維納濾波理論。從理論上說,維納濾波的最大缺點是必須用到無限過去的數(shù)據(jù),不適用于實時處理。為了克服這一缺點,60年代Kalman把狀態(tài)空間模型引入濾波理論,并導出了一套遞推估計算法,后人稱之為卡爾曼濾波理論??柭鼮V波是以最小均方誤差為估計的最佳準則,來尋求一套遞推估計的算法,其基本思想是:采用信號與噪聲的狀態(tài)空間模型,利用前一時刻地估計值和現(xiàn)時刻的觀測值來更新對狀態(tài)變量的估計,求出現(xiàn)時刻的估計值。它適合于實時處理和計算機運算??柭鼮V波簡介說明及其算法MATLAB實現(xiàn)代碼卡爾曼濾波算法實現(xiàn)代碼(C,C分別實現(xiàn)) 卡爾曼濾波器簡介 近來發(fā)現(xiàn)有些問題很多人都很感興趣。所以在這里希望能盡自己能力跟大家討論一些力所能及的算法?,F(xiàn)在先討論一下卡爾曼濾波器,如果時間和能力允許,我還希望能夠寫寫其他的算法,例如遺傳算法,傅立葉變換,數(shù)字濾波,神經(jīng)網(wǎng)絡,圖像處理等等。因為這里不能寫復雜的數(shù)學公式,所以也只能形象的描述。希望如果哪位是這方面的專家,歡迎討論更正。卡爾曼濾波器 Kalman Filter1什么是卡爾曼濾波器(What is the Kalman Filter?)在學習卡爾曼濾波器之前,首先看看為什么叫“卡爾曼”。跟其他著名的理論(例如傅立葉變換,泰勒級數(shù)等等)一樣,卡爾曼也是一個人的名字,而跟他們不同的是,他是個現(xiàn)代人!卡爾曼全名Rudolf Emil Kalman,匈牙利數(shù)學家,1930年出生于匈牙利首都布達佩斯。1953,1954年于麻省理工學院分別獲得電機工程學士及碩士學位。1957年于哥倫比亞大學獲得博士學位。我們現(xiàn)在要學習的卡爾曼濾波器,正是源于他的博士論文和1960年發(fā)表的論文A New Approach to Linear Filtering and Prediction Problems(線性濾波與預測問題的新方法)。如果對這編論文有興趣,可以到這里的地址下載: /welch/media/pdf/Kalman1960.pdf。 簡單來說,卡爾曼濾波器是一個“optimal recursive data processing algorithm(最優(yōu)化自回歸數(shù)據(jù)處理算法)”。對于解決很大部分的問題,他是最優(yōu),效率最高甚至是最有用的。他的廣泛應用已經(jīng)超過30年,包括機器人導航,控制,傳感器數(shù)據(jù)融合甚至在軍事方面的雷達系統(tǒng)以及導彈追蹤等等。近年來更被應用于計算機圖像處理,例如頭臉識別,圖像分割,圖像邊緣檢測等等。2卡爾曼濾波器的介紹(Introduction to the Kalman Filter)為了可以更加容易的理解卡爾曼濾波器,這里會應用形象的描述方法來講解,而不是像大多數(shù)參考書那樣羅列一大堆的數(shù)學公式和數(shù)學符號。但是,他的5條公式是其核心內容。結合現(xiàn)代的計算機,其實卡爾曼的程序相當?shù)暮唵危灰憷斫饬怂哪?條公式。在介紹他的5條公式之前,先讓我們來根據(jù)下面的例子一步一步的探索。假設我們要研究的對象是一個房間的溫度。根據(jù)你的經(jīng)驗判斷,這個房間的溫度是恒定的,也就是下一分鐘的溫度等于現(xiàn)在這一分鐘的溫度(假設我們用一分鐘來做時間單位)。假設你對你的經(jīng)驗不是100%的相信,可能會有上下偏差幾度。我們把這些偏差看成是高斯白噪聲(White Gaussian Noise),也就是這些偏差跟前后時間是沒有關系的而且符合高斯分配(Gaussian Distribution)。另外,我們在房間里放一個溫度計,但是這個溫度計也不準確的,測量值會比實際值偏差。我們也把這些偏差看成是高斯白噪聲。好了,現(xiàn)在對于某一分鐘我們有兩個有關于該房間的溫度值:你根據(jù)經(jīng)驗的預測值(系統(tǒng)的預測值)和溫度計的值(測量值)。下面我們要用這兩個值結合他們各自的噪聲來估算出房間的實際溫度值。假如我們要估算k時刻的是實際溫度值。首先你要根據(jù)k-1時刻的溫度值,來預測k時刻的溫度。因為你相信溫度是恒定的,所以你會得到k時刻的溫度預測值是跟 k-1時刻一樣的,假設是23度,同時該值的高斯噪聲的偏差是5度(5是這樣得到的:如果k-1時刻估算出的最優(yōu)溫度值的偏差是3,你對自己預測的不確定度是4度,他們平方相加再開方,就是5)。然后,你從溫度計那里得到了k時刻的溫度值,假設是25度,同時該值的偏差是4度。由于我們用于估算k時刻的實際溫度有兩個溫度值,分別是23度和25度。究竟實際溫度是多少呢?相信自己還是相信溫度計呢?究竟相信誰多一點,我們可以用他們的 covariance來判斷。因為Kg2=52/(52+42),所以Kg=0.78,我們可以估算出k時刻的實際溫度值是:23+0.78* (25-23)=24.56度??梢钥闯?,因為溫度計的covariance比較?。ū容^相信溫度計),所以估算出的最優(yōu)溫度值偏向溫度計的值?,F(xiàn)在我們已經(jīng)得到k時刻的最優(yōu)溫度值了,下一步就是要進入k+1時刻,進行新的最優(yōu)估算。到現(xiàn)在為止,好像還沒看到什么自回歸的東西出現(xiàn)。對了,在進入 k+1時刻之前,我們還要算出k時刻那個最優(yōu)值(24.56度)的偏差。算法如下:(1-Kg)*52)0.5=2.35。這里的5就是上面的k時刻你預測的那個23度溫度值的偏差,得出的2.35就是進入k+1時刻以后k時刻估算出的最優(yōu)溫度值的偏差(對應于上面的3)。就是這樣,卡爾曼濾波器就不斷的把covariance遞歸,從而估算出最優(yōu)的溫度值。他運行的很快,而且它只保留了上一時刻的covariance。上面的Kg,就是卡爾曼增益(Kalman Gain)。他可以隨不同的時刻而改變他自己的值,是不是很神奇!下面就要言歸正傳,討論真正工程系統(tǒng)上的卡爾曼。3卡爾曼濾波器算法(The Kalman Filter Algorithm)在這一部分,我們就來描述源于Dr Kalman 的卡爾曼濾波器。下面的描述,會涉及一些基本的概念知識,包括概率(Probability),隨即變量(Random Variable),高斯或正態(tài)分配(Gaussian Distribution)還有State-space Model等等。但對于卡爾曼濾波器的詳細證明,這里不能一一描述。首先,我們先要引入一個離散控制過程的系統(tǒng)。該系統(tǒng)可用一個線性隨機微分方程(Linear Stochastic Difference equation)來描述:X(k)=A X(k-1)+B U(k)+W(k) 再加上系統(tǒng)的測量值:Z(k)=H X(k)+V(k) 上兩式子中,X(k)是k時刻的系統(tǒng)狀態(tài),U(k)是k時刻對系統(tǒng)的控制量。A和B是系統(tǒng)參數(shù),對于多模型系統(tǒng),他們?yōu)榫仃?。Z(k)是k時刻的測量值,H 是測量系統(tǒng)的參數(shù),對于多測量系統(tǒng),H為矩陣。W(k)和V(k)分別表示過程和測量的噪聲。他們被假設成高斯白噪聲(White Gaussian Noise),他們的covariance 分別是Q,R(這里我們假設他們不隨系統(tǒng)狀態(tài)變化而變化)。對于滿足上面的條件(線性隨機微分系統(tǒng),過程和測量都是高斯白噪聲),卡爾曼濾波器是最優(yōu)的信息處理器。下面我們來用他們結合他們的covariances 來估算系統(tǒng)的最優(yōu)化輸出(類似上一節(jié)那個溫度的例子)。首先我們要利用系統(tǒng)的過程模型,來預測下一狀態(tài)的系統(tǒng)。假設現(xiàn)在的系統(tǒng)狀態(tài)是k,根據(jù)系統(tǒng)的模型,可以基于系統(tǒng)的上一狀態(tài)而預測出現(xiàn)在狀態(tài):X(k|k-1)=A X(k-1|k-1)+B U(k) . (1)式(1)中,X(k|k-1)是利用上一狀態(tài)預測的結果,X(k-1|k-1)是上一狀態(tài)最優(yōu)的結果,U(k)為現(xiàn)在狀態(tài)的控制量,如果沒有控制量,它可以為0。到現(xiàn)在為止,我們的系統(tǒng)結果已經(jīng)更新了,可是,對應于X(k|k-1)的covariance還沒更新。我們用P表示covariance:P(k|k-1)=A P(k-1|k-1) A+Q (2)式 (2)中,P(k|k-1)是X(k|k-1)對應的covariance,P(k-1|k-1)是X(k-1|k-1)對應的 covariance,A表示A的轉置矩陣,Q是系統(tǒng)過程的covariance。式子1,2就是卡爾曼濾波器5個公式當中的前兩個,也就是對系統(tǒng)的預測?,F(xiàn)在我們有了現(xiàn)在狀態(tài)的預測結果,然后我們再收集現(xiàn)在狀態(tài)的測量值。結合預測值和測量值,我們可以得到現(xiàn)在狀態(tài)(k)的最優(yōu)化估算值X(k|k):X(k|k)= X(k|k-1)+Kg(k) (Z(k)-H X(k|k-1) (3)其中Kg為卡爾曼增益(Kalman Gain):Kg(k)= P(k|k-1) H / (H P(k|k-1) H + R) (4)到現(xiàn)在為止,我們已經(jīng)得到了k狀態(tài)下最優(yōu)的估算值X(k|k)。但是為了要另卡爾曼濾波器不斷的運行下去直到系統(tǒng)過程結束,我們還要更新k狀態(tài)下X(k|k)的covariance:P(k|k)=(I-Kg(k) H)P(k|k-1) (5)其中I 為1的矩陣,對于單模型單測量,I=1。當系統(tǒng)進入k+1狀態(tài)時,P(k|k)就是式子(2)的P(k-1|k-1)。這樣,算法就可以自回歸的運算下去??柭鼮V波器的原理基本描述了,式子1,2,3,4和5就是他的5 個基本公式。根據(jù)這5個公式,可以很容易的實現(xiàn)計算機的程序。下面,我會用程序舉一個實際運行的例子。4簡單例子(A Simple Example)這里我們結合第二第三節(jié),舉一個非常簡單的例子來說明卡爾曼濾波器的工作過程。所舉的例子是進一步描述第二節(jié)的例子,而且還會配以程序模擬結果。根據(jù)第二節(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)因為測量的值是溫度計的,跟溫度直接對應,所以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)現(xiàn)在我們模擬一組測量值作為輸入。假設房間的真實溫度為25度,我模擬了200個測量值,這些測量值的平均值為25度,但是加入了標準偏差為幾度的高斯白噪聲(在圖中為藍線)。為了令卡爾曼濾波器開始工作,我們需要告訴卡爾曼兩個零時刻的初始值,是X(0|0)和P(0|0)。他們的值不用太在意,隨便給一個就可以了,因為隨著卡爾曼的工作,X會逐漸的收斂。但是對于P,一般不要取0,因為這樣可能會令卡爾曼完全相信你給定的X(0|0)是系統(tǒng)最優(yōu)的,從而使算法不能收斂。我選了 X(0|0)=1度,P(0|0)=10。該系統(tǒng)的真實溫度為25度,圖中用黑線表示。圖中紅線是卡爾曼濾波器輸出的最優(yōu)化結果(該結果在算法中設置了Q=1e-6,R=1e-1)。最佳線性濾波理論起源于 40 年代美國科學家 Wiener 和前蘇聯(lián)科學家 等人的研究工作,后人統(tǒng)稱為維納濾波理論。從理論上說,維納濾波的最大缺點是必須用到無限過去的數(shù)據(jù),不適用于實時處理。為了克服這一缺點, 60 年代 Kalman 把狀態(tài)空間模型引入濾波理論,并導出了一套遞推估計算法,后人稱之為卡爾曼濾波理論??柭鼮V波是以最小均方誤差為估計的最佳準則,來尋求一套遞推估計的算法,其基本思想是:采用信號與噪聲的狀態(tài)空間模型,利用前一時刻地估計值和現(xiàn)時刻的觀測值來更新對狀態(tài)變量的估計,求出現(xiàn)時刻的估計值。它適合于實時處理和計算機運算。 現(xiàn)設線性時變系統(tǒng)的離散狀態(tài)防城和觀測方程為: X(k) = F(k,k-1)X(k-1)+T(k,k-1)U(k-1) Y(k) = H(k)X(k)+N(k) 其中 X(k)和Y(k)分別是k時刻的狀態(tài)矢量和觀測矢量 F(k,k-1)為狀態(tài)轉移矩陣 U(k)為k時刻動態(tài)噪聲 T(k,k-1)為系統(tǒng)控制矩陣 H(k)為k時刻觀測矩陣 N(k)為k時刻觀測噪聲 則卡爾曼濾波的算法流程為: 預估計X(k)= F(k,k-1)X(k-1) 1. 計算預估計協(xié)方差矩陣C(k)=F(k,k-1)C(k)F(k,k-1)+T(k,k-1)Q(k)T(k,k-1)Q(k) = U(k)U(k) 2. 計算卡爾曼增益矩陣K(k) = C(k)H(k)H(k)C(k)H(k)+R(k)(-1)R(k) = N(k)N(k) 3. 更新估計X(k)=X(k)+K(k)Y(k)-H(k)X(k) 4. 計算更新后估計協(xié)防差矩陣C(k) = I-K(k)H(k)C(k)I-K(k)H(k)+K(k)R(k)K(k) 5. X(k+1) = X(k)C(k+1) = C(k)重復以上步驟 Kalman Filter科技 2010-05-29 21:13:49 閱讀90 評論0 字號:大中小訂閱 Kalman Filter是一個高效的遞歸濾波器,它可以實現(xiàn)從一系列的噪聲測量中,估 計動態(tài)系統(tǒng)的狀態(tài)。廣泛應用于包含Radar、計算機視覺在內的等工程應用領域,在控制理論和控制系統(tǒng)工程中也是一個非常重要的課題。連同線性均方規(guī)劃,卡爾曼濾波器可以用于解決LQG(Linear-quadratic-Gaussian control)問題??柭鼮V波器,線性均方歸化及線性均方高斯控制器,是大部分控制領域基礎難題的主要解決途徑。目錄 1應用實例 2 命名和發(fā)展歷史 3 基本動態(tài)系統(tǒng)模型 4 卡爾曼濾波器 4.1 預測4.2 更新4.3 不變量 5 實例 6 推導 6.1 后驗估計協(xié)方差矩陣推導 6.2 Kalman 增益推導6.3 后驗誤差協(xié)方差矩陣簡化7 信息濾波8 非線性濾波器 8.1擴展Kalman 濾波8.2 Unscented Kalman filter9 Kalman-Bucy濾波 10應用 11參見 12參考文獻 13外部鏈接 1應用實例一個簡單的應用是估計物體的位置和速度;簡要描述如下:假設我們可以獲取一個物體的包含噪聲的一系列位置觀測數(shù)據(jù),我們可以獲得此物體的精確速度和位置連續(xù)更新信息。例如,對于雷達來說,我們關心的是跟蹤目標,而目標的位置,速度,加速度的測量值是時刻含有誤差的,卡爾曼濾波器利用目標的動態(tài)信息,去掉噪聲影響,獲取目標此刻好的位置估計(濾波),將來位置估計(預測),也可以是過去位置估計的(插值或平滑) 2 命名和發(fā)展歷史 這個濾波器以它的發(fā)明者Rudolf.E.Kalman 而命名,但是在Kanlman之前,Thorvald Nicolai Thiele和Peter Swerling 已經(jīng)提出了類似的算法。Stanley Schmidt 首次實現(xiàn)了Kalman濾波器。在一次對NASA Ames Research Center訪問中,卡爾曼發(fā)現(xiàn)他的方法對于解決阿波羅計劃的軌跡預測很有用,后來阿波羅飛船導航電腦就使用了這種濾波器。這個濾波器可以追溯到Swerling(1958),Kalman(1960),Kalman和Bucy(1961)發(fā)表的論文。 這個濾波器有時叫做Stratonovich-Kalman-Bucy濾波器。因為更為一般的非線性濾波器最初由Ruslan L.Stratonovich發(fā)明,而Stratonovich-Kalman-Bucy濾波器只是非線性濾波器的一個特例。事實上,1960年夏季,Kalman和Stratonovich在一個Moscow召開的會議中相遇,而作為非線性特例的線性濾波方程,早已經(jīng)由Stratonovich在此以前發(fā)表了。 在控制領域,Kalman濾波被稱為線性二次型估計,目前,卡爾曼濾波已經(jīng)有很多不同的實現(xiàn),有施密特擴展濾波器、信息濾波器以及一系列的Bierman和Thornton 發(fā)明的平方根濾波器等,而卡爾曼最初提出的形式現(xiàn)在稱為簡單卡爾曼濾波器。也許最常見的卡爾曼濾波器應用是鎖相環(huán),它在收音機、計算機和幾乎全部視頻或通訊設備中廣泛存在。3 基本動態(tài)系統(tǒng)模型Kalman濾波基于時域描述的線性動態(tài)系統(tǒng),它的模型是Markov Chain,而Markov Chain建立在一個被高斯噪聲干擾的線性算子之上。系統(tǒng)的狀態(tài)可以用一個元素為實數(shù)的向量表示。 隨著離散時間的增加,這個線性算子就會作用到當前狀態(tài)之上,產生一個新的狀態(tài),并且會帶入一定的噪聲,同時一些已知的控制信息也會加入。同時另外一個受噪聲干擾的線性算子將產生這些隱含狀態(tài)的可見輸出。Kalman 濾波可以被看作為類似隱馬爾科夫模型,它們的顯著不同點在于:隱狀態(tài)變量的取值空間是一個連續(xù)的空間,而離散狀態(tài)空間則不是;另為,隱馬爾科夫模型可以描述下一個狀態(tài)的一個任意分布,這也與應用于Kalman濾波器中的高斯噪聲模型相反。Kalman濾波器方程和隱馬爾科夫方程之間有很大的二重性,關于Kalman 濾波方程和隱馬爾科夫方程之間二重性參看Roweis and Ghahramani(1999)4。 為了從一系列的噪聲觀測中,應用Kalman濾波估計觀測過程的內部狀態(tài)。我們必須把這個過程在Kalman 濾波器的框架下建立模型, 這就意味著,對于 每一步k 我們要定義矩陣 、 、 、 、 如下: Kalman Filter 假設k 時刻的真實狀態(tài)是從k-1時刻演化而來,符合下式這里是作用在前一狀態(tài)的狀態(tài)轉移模型(狀態(tài)轉移矩陣)是作用在控制向量 上的控制輸入模型(輸入輸出矩陣) 是過程噪聲,假設是均值為0的白噪聲,協(xié)方差為 則: 在k時刻,假設真實狀態(tài) 的觀測, 滿足如下公式: 其中 是觀測模型(觀測矩陣),它把真實狀態(tài)映射到觀測空間, 是觀測噪聲,假設它是均值是0,方差是 的高斯白噪聲: Kalman Filter基本動態(tài)系統(tǒng)模型如圖(1)所示,圓圈代表向量,方塊代表矩陣,星號代表高斯噪聲,其協(xié)方差在右下方標出。初始狀態(tài)以及每一時刻的噪聲向量x0, w1, ., wk, v1 . vk 都為認為是互相獨立的。實際中,真實世界中動態(tài)系統(tǒng)并不是嚴格的符合此模型。但是Kalman模型是設計在噪聲過程工作的,一個近似的符合已經(jīng)可以使這個濾波器非常有用了,更多復雜模型關于Kalman Filter模型的變種,將在下述中討論: 圖(1) 4 卡爾曼濾波器Kalman Filter 是一個遞歸的估計,即只要獲知上一時刻的狀態(tài)估計和當前狀態(tài)的觀測就可以計算出當前狀態(tài)的估計,不同于其他的估計技術,Kalman 濾波器不需要觀測或/和估計的歷史記錄,Kalman Filter 是一個純粹的時域濾波器,而不像低通濾波器等頻域濾波器那樣,需要在頻域中設計,然后轉換到時域中應用。下面,代表已知從m到n-1包括m時刻的觀測在n時刻的估計值卡爾曼濾波器的狀態(tài)由以下兩個變量表示: 已知k時刻以前時刻觀測值,k時刻的狀態(tài)估計值 誤差協(xié)方差矩陣,度量狀態(tài)估計的精度程度Kalman 濾波包括兩個階段:預測和更新;在估計階段,濾波器應用上一狀態(tài)的估計做出對當前狀態(tài)的估計。在更新階段,濾波器利用在當前狀態(tài)的觀測值優(yōu)化預測階段的預測值,以獲的一個更精確的當前狀態(tài)的估計。4.1 預測狀態(tài)預測: 估計協(xié)方差預測:4.2 更新新息或測量余量 新息協(xié)方差 Kalman 增益 狀態(tài)估計更新 狀態(tài)協(xié)方差更新 使用上述公式計算 僅在最優(yōu)卡爾曼增益的時候有效。使用其他增益公式要復雜一些,看見推導4.3 不變量如果模型準確, 和 值將準確反映最初狀態(tài)的分布,那么下面所有不變量保持不變,所有估計的誤差均值為0: 這里 表示 的期望,而協(xié)方差矩陣則反映的估計的協(xié)方差 5實例考慮在一個無摩擦、無限長的直軌道上的一輛小車,它的初始位置在0點,但是它會隨機的受到?jīng)_擊作用,我們每隔測量一次小車的位置,但是這些測量數(shù)據(jù)不是很精確。我們想建立一個關于小車位置和速度的模型,這里我們描述如何建立這個模型,以及從這個模型出發(fā)如何推導出Kalman 濾波器。因為小車沒有控制輸入,我們可以忽略和。由于F,H,R和Q全是恒值,我們可以忽略時間下標。小車的位置和速度用線性空間可以描述如下:這里表示速度,也就是位置對時間的微分。我們假設在時間間隔k-1和k之間,小車受到一個恒定的沖擊 ,服從均值為0,方差為的正態(tài)分布,根據(jù)Newton 動力學方程,可得到:其中, 我們發(fā)現(xiàn): 在每一時刻,我們獲取真實位置的.我們假設噪聲服噪聲干擾測量,假設測量噪聲服從均值為0,標準差為正態(tài)分布。其中 H= 1 0, 我們可以得到足夠精度的初始狀態(tài)數(shù)據(jù),所以我們可以初始化 , 如果初始位置和速度不是精確的知道,那么協(xié)方差矩陣應該初始化為一個對角線元素B為適當大小的矩陣如下:這樣與模型中已有信息相比,濾波器更趨向于使用首次的測量數(shù)據(jù)信息。 6 推導6.1 后驗估計協(xié)方差矩陣推導首先開始不變量后驗估計協(xié)方差矩陣的推導: 帶入 定義,可得 ,代入 可得 代入 可得 整理誤差向量可得, 由于誤差向量 與其他不相關,所以 由協(xié)方差矩陣性質則 :使用不變量Pk|k-1以及Rk的定義這一項可以寫作 ,此公式(Joseph form)對任意增益Kk的都成立,如果Kk最優(yōu)卡爾曼增益,則可以進一步簡化,見下文。6.2 Kalman 增益推導Kalman 濾波器是一個最小均方誤差估計器,先驗狀態(tài)誤差估計可表示為 我們最小化這個矢量幅度平方的期望值 ,這等價于最小化后驗估計協(xié)方差矩陣 的跡,通過展開合并公式,可得 當矩陣導數(shù)為0時,矩陣的跡取最小值, 從這個式子解出Kalman增益 這個增益就是最優(yōu)Kalman增益,應用它可以得到最小均方誤差。6.3 后驗誤差協(xié)方差矩陣簡化當應用上述最優(yōu)Kalman增益時,后驗誤差協(xié)方差可以得到簡化,在最優(yōu)Kalman增益兩邊同時乘以 ,可得 ,參見后驗誤差協(xié)方差公式展開 ,帶入上式,可得: 這個公式的計算比較簡

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論