黃小英
(福建水利電力職業(yè)技術(shù)學(xué)院,福建 永安 366000)
基于遞推濾波算法的卡爾曼濾波器在動態(tài)數(shù)據(jù)處理中的應(yīng)用研究
黃小英
(福建水利電力職業(yè)技術(shù)學(xué)院,福建 永安 366000)
文章介紹了一種基于遞推濾波算法的卡爾曼濾波器,并對卡爾曼濾波器在對隨機運動物體的位置估計——航天航空領(lǐng)域中的應(yīng)用進行討論,最后應(yīng)用MATLAB軟件對觀測信號進行濾波仿真,給出計算機仿真結(jié)果,得到卡爾曼濾波器對消除觀測噪聲的作用。
遞推濾波算法;卡爾曼濾波器;MATLAB
數(shù)字卡爾曼濾波器是一種最優(yōu)遞歸估計濾波器,它可以用于濾除一個附加在隨機信號上的觀測噪聲,也可以預(yù)測一個動態(tài)模型的正確參數(shù)。如果給定初始條件,就能夠預(yù)測這種模型的參數(shù),并且能夠隨著每次新的觀測對參數(shù)進行修正,給出估計誤差的范圍,卡爾曼濾波器是一個不斷地預(yù)測、修正的遞推過程,它對于測量噪聲和模型噪聲都具有非常好的效果,并且由于它具有便于計算機模擬的結(jié)構(gòu),使得卡爾曼濾波器在計算機跟蹤設(shè)備中有廣泛的應(yīng)用,也就是說在某些情況下,卡爾曼濾波器的性能要優(yōu)于其他的線性濾波器。
卡爾曼濾波器求解時不需要貯存大量的觀測數(shù)據(jù),并且當(dāng)?shù)玫叫碌挠^測數(shù)據(jù)時,可隨時算得新的參數(shù)濾波值,便于實時地處理觀測結(jié)果,因此,卡爾曼濾波被越來越多地應(yīng)用于動態(tài)數(shù)據(jù)處理中,尤其是GPS動態(tài)數(shù)據(jù)處理、慣性導(dǎo)航等。
20世紀(jì)60年代初,隨著空間技術(shù)發(fā)展對于處理統(tǒng)計特性具有非平穩(wěn)性(即時變性)的多維隨機信號和干擾的迫切需要,卡爾曼(R.E.Kalman)和布西(R.S. Bucy)提出了遞推濾波算法。通過引入狀態(tài)變量法建立反映被估計信號生成和演化機理的“消息模型”直接計算狀態(tài)的估計值及其均方誤差。實行遞推算法和引出狀態(tài)變量是卡爾曼濾波的兩個明顯特點。
卡爾曼濾波是由于維納濾波在實際中遇到了困難而提出來的。維納濾波的關(guān)鍵是求解維納-霍夫方程,以期得到最佳線性濾波器的沖擊響應(yīng)。維納濾波的模型如圖1所示。
圖1 維納濾波模型
求解維納-霍夫方程只有在平穩(wěn)條件和有理譜密度情況下才是可行的??柭x開了維納-霍夫方程,不去給出消息模型的協(xié)方差信息,而是給出了類似于動態(tài)線性系統(tǒng)的狀態(tài)模型。由動態(tài)線性系統(tǒng)研究知,消息模型為:
式中x(t)為n維狀態(tài)變量,u(t)為r維隨機動態(tài)噪聲,A(t)和B(t)為已知的隨時間變化的n×n維和n×t維的矩陣。u(t)的意義需進一步說明,以免與下邊將遇到的測量噪聲ω(t)混淆。如果我們進行的是彈道估計,那么u(t)就是伴隨信號的寬帶擾動,它是伴隨著x (t)一起到來的,是由隨機牽引、引力不確定等因素決定的。u(t)與x(t)的初始值x(t0)是不相關(guān)的??柭僭O(shè)的測量模型:
式中z(t)為m維測量變量,ω(t)為s維隨機測量噪聲,C(t)為已知的隨時間變化的m×n維矩陣。測量噪聲ω(t)是在測量過程中引入的。
下面為濾波過程。假設(shè)隨機動態(tài)噪聲u(t)與測量噪聲ω(t)均為零均值白噪聲,則
式中U(t)為r×r維非負定陣,W(t)為s×s維非負定陣,δ(t-τ)為狄拉克函數(shù)。用δ(t-τ)描述u(t)或ω (t)的協(xié)方差函數(shù)是數(shù)學(xué)上的理想化,因為δ(t-τ)是物理不可實現(xiàn)的,而自然界中嚴(yán)格的白噪聲也是不存在的,但是它是許多噪聲的一種近似。在此基礎(chǔ)上,卡爾曼給出了濾波模型:
式中
所以式(7)可以寫為
稱K(t)為增益矩陣,P(t)為狀態(tài)估計中的誤差協(xié)方差陣。P(t)是下述微分方程式的唯一的解:
這是一個非線性方程,是著名的黎卡蒂方程。
圖2是卡爾曼濾波器的結(jié)構(gòu)圖。它是由式(1)所示的消息模型、式(2)所示的測量模型及式(10)的濾波模型所組成的。
圖2 卡爾曼濾波器模型
假設(shè)某一系統(tǒng)為一架航天飛機,從它的推進器噴射出的氣體燃料的燃燒對于火箭的推進作用是一個隨機過程,而推進器帶有一個反饋控制系統(tǒng)。航空控制中心檢測和預(yù)測航天飛機的運行軌跡從而對航天飛機進行控制需要用到數(shù)字卡爾曼濾波器。為了用數(shù)字卡爾曼濾波器消除信號中的噪聲,被測量的進程必須能用線性系統(tǒng)描述。
例如飛行中的航天飛機,其狀態(tài)由航天飛機的方位P和速度V構(gòu)成。輸入u是控制加速度,而輸出y則是測量位置。假定每隔T秒都能改變加速度并測量飛機的方位,根據(jù)物理學(xué)基本定律,速度V將由下述方程描述:
因此,下一時刻(T秒之后)的速度將等于當(dāng)前速度加上控制加速度與T的乘積,實際上該速度將受到風(fēng)及其它意外噪聲的干擾。這些速度噪聲是隨時間變化的隨機變量,因此下述方程能更好地反映V的實際情況:
其中 表示速度噪聲。類似地,可以推導(dǎo)出方位P的方程:
矢量X包含了系統(tǒng)狀態(tài)的所有信息,但是它卻是我們無法直接測量得到的。我們已知測量輸出應(yīng)該等于飛機的方位值,所以我們用矢量X代替上面的P和V,從而可以得到線性系統(tǒng)的狀態(tài)方程如下:
其中,zk表示測量儀器的原因產(chǎn)生的測量噪聲。
我們的目的是根據(jù)對系統(tǒng)行為的認識和測量值,能最好的估計未來的航天飛機的方位和速度,即矢量X,從而通過反饋系統(tǒng)來對航天飛機的方位進行調(diào)整和控制。從系統(tǒng)的方程我們可以知道系統(tǒng)的行為,但是要怎么樣才能決定哪種估計才是對系統(tǒng)變化的最優(yōu)估計?當(dāng)然不能僅僅依靠我們的觀測數(shù)據(jù),因為其中包含有非常大的測量噪聲??柭鼮V波器正是狀態(tài)估計的有效工具。
卡爾曼濾波器方程有很多公式表達方法,選擇其中一種,表述如下:
上面的四個方程,每個方程都包含矩陣運算。在上述方程中,上標(biāo)-1表示矩陣求逆,上標(biāo)T表示矩陣轉(zhuǎn)置。S表示觀測值的協(xié)方差矩陣,K矩陣稱為卡爾曼增益矩陣,而P矩陣為預(yù)測誤差的協(xié)方差矩陣。
卡爾曼濾波算法的一個重要特點是遞推性,它工作在“預(yù)測-修正”的方式中,即把修正項加到預(yù)測的估計值中去,最后得到濾波后的估計值。因此,上述狀態(tài)估計方程相當(dāng)直觀。方程中用來推導(dǎo)k+1時刻狀態(tài)估計值的第一項等于A與k時刻狀態(tài)估計的乘積。如果沒有測量噪聲的話,這一項就是狀態(tài)的估計值。換句話說,狀態(tài)估計可以像系統(tǒng)模型中的狀態(tài)向量一樣傳送至后續(xù)時刻。方程中第二項為修正項,代表在我們的測量條件下,要怎樣校正對傳送的狀態(tài)估計進行修正。方程中,Kk表示增益矩陣。Kk表示新的測量值作用的大小。K方程表明:如果測量噪聲遠小于過程噪聲,Kk將很大,也就是說當(dāng)Kk較大時,新的量測值的作用就大,對預(yù)測的估計值的修正就大;反之就表明預(yù)測的估計值比較準(zhǔn)確,也就是表明測量噪聲遠大于過程噪聲。
我們在計算機上使用MATLAB來仿真式(13)和式(14)所描述的具有由隨機噴發(fā)所帶來的加速度的動態(tài)系統(tǒng),并用數(shù)字卡爾曼濾波器對測量到的信號進行濾波。
假設(shè)我們所測量的航天飛機的方位與其實際方位相比具有10英尺的誤差,即方位測量的誤差為10英尺。又令其加速度具有0.5英尺/平方秒的標(biāo)準(zhǔn)偏差或者稱為加速度噪聲(accelnoise)。方位測量的周期為0.1秒(T=0.1)。
因為T=0.1,系統(tǒng)的線性模型可表示如下:
由于我們假設(shè)了測量噪聲具有10英尺的標(biāo)準(zhǔn)偏差,所以測量噪聲的協(xié)方差矩陣Sz就等于100。此外,我們還需要推導(dǎo)出過程噪聲的協(xié)方差矩陣。根據(jù)假設(shè),我們可用下式來求出過程噪聲的協(xié)方差矩陣。
其中,^表示冪運算,dt為測量時間間隔,即dt=0. 1。假設(shè)整個過程持續(xù)了50秒。我們使用MATLAB軟件來進行仿真,仿真以后可以非常清楚的看到,盡管存在非常大的測量噪聲,但是仍然可以使用卡爾曼濾波器來比較準(zhǔn)確的估計出航天飛機的正確位置。下圖3到圖6是仿真的結(jié)果。
圖3 航天飛機實際方位軌跡
圖4 航天飛機的測量方位軌跡
圖5 卡爾曼濾波后的估計方位軌跡
圖6 預(yù)測值與實際值以及測量值的對比
從圖4我們可以看到方位曲線混有非常大的噪聲,圖5是如圖4所示的信號經(jīng)卡爾曼濾波之后的航天飛機方位軌跡的估計值曲線。在圖6我們可以更清楚的對比一下估計值曲線于實際方位曲線之間的誤差,可以發(fā)現(xiàn)卡爾曼濾波器可以比較好的濾除混雜在信號中的噪聲。
由上圖結(jié)果可以看出:在線性系統(tǒng)中,盡管系統(tǒng)的觀測值和實際值相差較大,但卡爾曼濾波系統(tǒng)卻能較好的估計出下一時刻的位置。而且誤差和協(xié)方差較小,證明了卡爾曼濾波器在預(yù)測估計方面的有效性。
卡爾曼濾波對消除觀測噪聲的作用是很明顯的。目前,在許多實際控制系統(tǒng)中都采用計算機進行實時處理,在采樣過程中,必然帶進許多觀測噪聲??柭鼮V波器求解時不需要貯存大量的觀測數(shù)據(jù),并且當(dāng)?shù)玫叫碌挠^測數(shù)據(jù)時,可隨時算得新的參數(shù)濾波值,便于實時地處理觀測結(jié)果,因此,卡爾曼濾波被越來越多地應(yīng)用于動態(tài)數(shù)據(jù)處理中,尤其是GPS動態(tài)數(shù)據(jù)處理、慣性導(dǎo)航等。在核電站設(shè)備、人口統(tǒng)計建模、制造業(yè)、地層放射探測以及模糊邏輯和神經(jīng)網(wǎng)絡(luò)學(xué)等方面卡爾曼濾波器也具有很重要的作用。
[1]張有為編.維納與卡爾曼濾波理論導(dǎo)論[M].北京:人民教育出版社,1980年7月.
[2][澳]B.D.O.安德森,J.B.摩爾著.盧伯英譯.最佳濾波[M].北京:國防工業(yè)出版社,1983年12月.
[3][英]S.M.鮑齊克著.凌云旦譯.數(shù)字濾波和卡爾曼濾波[M].北京:科學(xué)出版社1984年2月
[4]陳炳和著.隨機信號處理[M].北京:國防工業(yè)出版社,1996年2月.
[5]徐寧壽著.隨機信號估計與系統(tǒng)控制[M].北京:北京工業(yè)大學(xué)出版社,2001年1月.
[6]柏菁,劉建業(yè),袁信.模糊自適應(yīng)卡爾曼濾波技術(shù)研究[M].南京:航空航天大學(xué),2001年9月.
Research on Application of Kalman Filter Based on Recursive Filtering Algorithm in Dynamic Data Processing
HUANG Xiao-ying
(Fujian College of Water Conservancy and Electric Power,Yong'an366000,Fujian)
In this paper,a Kalman filter based on recursive filtering algorithm is introduced,and the application of Kalman filter to the estimation of the position of random moving objects in aerospace field is discussed,at last,MATLAB is used to filter the observed signals,and the results of computer simulation are given to get the effect of Kalman filter on observation noise.
recursive filtering algorithm;Kalman filtering;MATLAB
TN91
A
1671-5004(2017)02-0007-04
2017-1-4
福建水利電力職業(yè)技術(shù)學(xué)院院級科研課題“切比雪夫微波帶通濾波器的設(shè)計及仿真研究”(項目編號:XY1411C)
黃小英(1980-),女,漢族,福建省連城縣人,福建水利電力職業(yè)技術(shù)學(xué)院信息工程系講師,工程碩士,研究方向:電子與通信工程。