文/周英 李凱 周宇媚
濾波是系統(tǒng)的狀態(tài)估計問題。經(jīng)典的卡爾濾波算法提供了線性高斯問題的最優(yōu)解決方法。然而現(xiàn)實生活中存在大量非線性特性的實際問題。粒子濾波算法在非線性、非高斯系統(tǒng)中表現(xiàn)出噪聲模型和系統(tǒng)模型不受限制,精度高等優(yōu)點(diǎn)。因此,它的應(yīng)用十分廣泛,如:目標(biāo)跟蹤、目標(biāo)定位及導(dǎo)航、通信領(lǐng)域、軍事領(lǐng)域等。
標(biāo)準(zhǔn)粒子濾波算法中,退化現(xiàn)象無法避免。經(jīng)過若干次迭代,少數(shù)有效粒子占據(jù)粒子集的大部分權(quán)值,而大部分粒子的權(quán)值很小。隨著迭代的繼續(xù)進(jìn)行,甚至?xí)霈F(xiàn)一個或幾個粒子權(quán)值非常大,而其他粒子權(quán)值基本為零的情況,這就是粒子集的退化分布。若迭代次數(shù)越多,大量的計算資源就會消耗在處理那些微不足道的粒子上。
粒子濾波以貝葉斯推理和重要性采樣為基本框架。它源于蒙特卡羅思想,即以某事件出現(xiàn)的頻率來指代該事件的概率。在濾波過程中,需要用到概率的地方,我們只需對變量進(jìn)行采樣,以大量采樣及其相應(yīng)的權(quán)值來近似表示該概率?;诖耍W訛V波算法可以在濾波過程中處理任意形式的概率。這也正是粒子濾波的一大優(yōu)勢。
粒子濾波過程分為初始狀態(tài)階段、預(yù)測階段、校正階段、重采樣階段、濾波階段,由此循環(huán)往復(fù)。粒子濾波算法與卡爾曼濾波算法類似,需要知道系統(tǒng)的模型。如果系統(tǒng)模型未知,必須構(gòu)建一個模型來進(jìn)行模擬。通常構(gòu)建模型是通過數(shù)學(xué)表達(dá)式來進(jìn)行,其中包括系統(tǒng)狀態(tài)方程和測量方程。
本文中采用一個應(yīng)用廣泛的標(biāo)量模型對粒子濾波算法應(yīng)用進(jìn)行仿真分析。假定在任意狀態(tài)下,系統(tǒng)的數(shù)學(xué)方程式如下:
狀態(tài)方程:
在公式(1)中,xk表示系統(tǒng)在k時刻狀態(tài)值,xk-1表示系統(tǒng)在k-1時刻狀態(tài)值,wk表示過程噪聲,xk和xk-1是非線性關(guān)系。
在公式(2)中,yk表示系統(tǒng)在k時刻的測量值,vk表示測量噪聲,yk和xk也是非線性關(guān)系。
當(dāng)k=0時,表示系統(tǒng)處于初始狀態(tài)。由于系統(tǒng)開始對x(0)一無所知,所有我們認(rèn)為x(0)在全狀態(tài)空間內(nèi)平均分布。然后將所有采樣輸入狀態(tài)轉(zhuǎn)移方程,得到預(yù)測粒子。仿真過程基于(1)和(2)式,采用SIR粒子濾波算法,每次迭代都用系統(tǒng)重采樣機(jī)制,得出仿真圖如圖1、圖2。
從圖1可以看出測量噪聲值V、過程噪聲值W、狀態(tài)值X、觀測值Y的變化情況;從圖2可以看出,系統(tǒng)在wk、vk均值為0;Qk=10,過程噪聲方差,Rk=1,測量噪聲方差的噪聲情況下,得出濾波器估計值和系統(tǒng)真實值。該濾波器估計輸出采用了最大后驗概率和后驗均值兩種方式,這兩種方式均能反應(yīng)出濾波估計的狀態(tài)能很好地跟隨真實狀態(tài)。
上述基本粒子濾波算法中,因為Q和R的值獲取比較困難,同時考慮到粒子退化現(xiàn)象等問題,做出改進(jìn)。改進(jìn)的方法有如下幾種:
(1)增加粒子數(shù);
(2)提高重采樣技術(shù);
(3)選擇合適的建議密度。
本文從選擇合適的建議密度方法著手,改進(jìn)粒子濾波算法。因在產(chǎn)生建議分布方法中,局部線性化是一種較好的方法。UKF(無跡卡爾曼濾波)就是局部線性化方法的一種,它要求系統(tǒng)是近似的高斯后驗分布模型,是一種遞歸的最小均方誤差估計方法。將UKF方法引入到粒子濾波算法中,就是本文改進(jìn)策略。
圖1:各參數(shù)值變化情況
圖2:非線性條件下粒子濾波仿真圖
圖3:系統(tǒng)狀態(tài)圖
該算法非常重要的環(huán)節(jié)就是:在采樣期間,用UKF算法給每個粒子計算其均值和方差,然后“指導(dǎo)”系統(tǒng)的采樣。也就是在粒子濾波算法的框架下,采用UKF算法得到最新的觀測信息,給每個粒子產(chǎn)生合理的高斯建議密度分布。其算法流程如下:
(1)初始化;
(2)重要性采樣;
(3)重采樣;
(4)輸出。
現(xiàn)在選用一維系統(tǒng)來仿真基本粒子濾波和改進(jìn)粒子濾波算法。假定在任意狀態(tài)下,系統(tǒng)的數(shù)學(xué)方程式如下:
從圖3的仿真結(jié)果得出,PF(基本粒子濾波)算法和改進(jìn)的PF算法都較好地跟隨了系統(tǒng)的真實值;從圖4的仿真結(jié)果可以看出,改進(jìn)的PF算法偏差能在較短時間內(nèi)達(dá)到極低水平,后續(xù)基本維持該水平,而PF算法的偏差值存在不小的波動;從圖5的仿真結(jié)果看出改進(jìn)的PF算法所耗去的計算時間較PF算法長,因此實時性較差。
本文從改善建議密度分布角度改進(jìn)粒子濾波算法,在跟隨真實系統(tǒng)的可靠性方面得到改善,但其計算量較大,響應(yīng)速度不快,同時系統(tǒng)還局限于高斯模型。因此,PF算法的改進(jìn)還可與其他算法進(jìn)行組合,如神經(jīng)網(wǎng)絡(luò)等結(jié)合改進(jìn),使其不受線性高斯模型限制,性能更強(qiáng)。
圖4:系統(tǒng)狀態(tài)偏差圖
圖5:系統(tǒng)實時性比較