白曉波,邵景峰,和 征,田建剛
(1.西安工程大學(xué)管理學(xué)院,陜西 西安 710048; 2.陸軍邊海防學(xué)院信息與兵種教研室,陜西 西安 710108)
卡爾曼濾波(Kalman Filter, KF)于1960年由卡爾曼提出,為線性高斯問題提出了解決方案,至今被廣泛應(yīng)用于眾多現(xiàn)實(shí)問題[1]。然而,很多科學(xué)或工程問題為非線性非高斯的,為了解決這類問題,擴(kuò)展卡爾曼濾波(Extended Kalman Filter, EKF)[2]基于Taylor展開式,對非線性系統(tǒng)局部線性化,取得了較為理想的濾波效果,并得到廣泛應(yīng)用[3-5]。劉永進(jìn)等[6]基于EKF對離散化后的故障模型設(shè)計(jì)擴(kuò)展卡爾曼濾波器的殘差產(chǎn)生器。文獻(xiàn)[7]利用EKF估計(jì)水面和車輛的距離和速度。但是,EKF在針對強(qiáng)非線性系統(tǒng)時(shí),濾波效果很不穩(wěn)定,甚至發(fā)散。因此,眾多學(xué)者對此進(jìn)行了研究。文獻(xiàn)[8]基于拉格朗日中值定理,以選擇更好的線性展開點(diǎn)和雅可比矩陣的計(jì)算點(diǎn),對EKF進(jìn)行改進(jìn),改進(jìn)算法的濾波精度有所提高,但是卻較大地增加了運(yùn)算量,進(jìn)而影響算法實(shí)時(shí)性。劉毛毛等[9]基于多新息理論對EKF的估計(jì)值進(jìn)行修正,在算法運(yùn)算量增加不大的情況下,提高了EKF的濾波精度,但是新息數(shù)的選擇受限于現(xiàn)實(shí)系統(tǒng),而新息數(shù)的選擇影響濾波精度、算法收斂性和實(shí)時(shí)性。文獻(xiàn)[10]通過計(jì)算加權(quán)高斯積分的基本容積點(diǎn)及其對應(yīng)權(quán)值對EKF進(jìn)行改進(jìn)。劉國海等[11]提出基于插值公式的EKF改進(jìn)算法。寧倩慧等[12]在考慮斜距誤差和多普勒誤差相關(guān)性的情況下將多普勒量測包含于擴(kuò)展卡爾曼濾波算法,從而提高了目標(biāo)跟蹤的精度。吳漢洲等[13]提出基于多項(xiàng)式擬合的EKF改進(jìn)算法,以提高濾波精度,并在一定程度上提高了算法實(shí)時(shí)性。其他如文獻(xiàn)[14-15]利用迭代的方法提高濾波精度,但是卻較大地增加了算法運(yùn)算量,降低了算法實(shí)時(shí)性。
國內(nèi)外學(xué)者都提出了擴(kuò)展卡爾曼濾波的改進(jìn)算法,但是濾波效果與系統(tǒng)方程、過程噪聲方差和量測噪聲方差緊密相關(guān),且這些參數(shù)具有時(shí)變特性,使得算法的應(yīng)用有其局限性。因此,研究系統(tǒng)參數(shù)不確定、過程方差和量測方差信息不準(zhǔn)確導(dǎo)致的EKF估計(jì)隨時(shí)序誤差較大的問題,具有較強(qiáng)的理論意義和工程實(shí)踐意義。為此,本文提出基于核偏最小二乘法優(yōu)化EKF的濾波方法KPLS-EKF。
擴(kuò)展卡爾曼濾波EKF的核心思想是,利用非線性函數(shù)泰勒級(jí)數(shù)展開線性化方法近似表示原系統(tǒng)的狀態(tài)方程和量測方程。
擴(kuò)展卡爾曼濾波的狀態(tài)方程和量測方程表示如下:
(1)
式中,xk為系統(tǒng)狀態(tài)矩陣,zk為量測矩陣,uk為系統(tǒng)輸入量,f(·)為非線性映射函數(shù),利用上一時(shí)刻k-1時(shí)的估計(jì)狀態(tài)計(jì)算當(dāng)前時(shí)刻k時(shí)的預(yù)測狀態(tài);h(·)以預(yù)測的狀態(tài)計(jì)算預(yù)測的測量值;wk和vk分別為系統(tǒng)狀態(tài)噪聲矩陣和量測噪聲矩陣。wk和vk相互獨(dú)立,均值和協(xié)方差如下:
(2)
式中,δ(k-j)為Kronecker函數(shù)。EKF算法如下所示[16]。
預(yù)測方程:
(3)
(4)
更新方程:
(5)
(6)
(7)
(8)
Pk|k=(I-KkHk)Pk|k-1
(9)
式中:
EKF隨時(shí)序變化的濾波效果出現(xiàn)較大偏差。這是由于EKF在非線性函數(shù)泰勒展開時(shí)僅用了一階項(xiàng),而忽略了高階項(xiàng),同時(shí)在EKF中構(gòu)建的系統(tǒng)狀態(tài)方程和量測方程的參數(shù)的不確定和噪聲信息的不準(zhǔn)確,即模型參數(shù)和噪聲隨時(shí)序變化,為濾波效果帶來了較大誤差。如圖1所示。
圖1 擴(kuò)展卡爾曼濾波估計(jì)誤差
在圖1中表示了誤差隨時(shí)序變化的趨勢。因此,為了解決由于系統(tǒng)參數(shù)不確定和噪聲信息不準(zhǔn)確引起的估計(jì)偏差隨時(shí)序增大的問題,在EKF中融入KPLS學(xué)習(xí)算法,以抑制其誤差增大。
為了解決非線性系統(tǒng)的預(yù)測問題,Trejo和Rosipal教授[17]將核函數(shù)引入PLS,提出核偏最小二乘法(Kernel Partial Least Square, KPLS),其基本原理是,通過非線性核函數(shù)將輸入空間映射到高維特征空間,在特征空間中構(gòu)建線性偏最小二乘回歸,從而實(shí)現(xiàn)原始輸入空間的非線性建模。核偏最小二乘算法的詳細(xì)步驟如下[18]。
步驟1計(jì)算核矩陣:
(10)
利用高斯核函數(shù)計(jì)算矩陣元素,高斯核函數(shù)表示如下:
(11)
式中σl(l=1,2,…,p)表示高斯核函數(shù)寬度。
步驟2對核矩陣K中心化處理:
(12)
步驟3隨機(jī)初始化Y的得分向量u。
步驟4計(jì)算特征空間中X的得分向量th并進(jìn)行歸一化:
(13)
步驟5計(jì)算Yh的權(quán)值向量ch:
(14)
步驟6計(jì)算Yh的得分向量uh并歸一化:
(15)
步驟7重復(fù)步驟4~步驟6,直到th收斂。
步驟8將矩陣K、 Y縮小,重復(fù)步驟3~步驟7,取得p個(gè)t、 u:
(16)
(17)
以下為訓(xùn)練樣本的擬合公式:
(18)
預(yù)測樣本擬合公式為:
(19)
Kt=Φ(xnew)Φ(x)T
(20)
2.2.1 KPLS優(yōu)化EKF理論分析
根據(jù)式(3)、式(5)和式(8)可知,在標(biāo)準(zhǔn)的EKF濾波算法中,k時(shí)的預(yù)測,只利用了線性化后k-1時(shí)刻的狀態(tài)估計(jì),而忽略了k-2,k-3,…,k-p時(shí)的狀態(tài)估計(jì)信息,這樣隱含的系統(tǒng)參數(shù)時(shí)變信息就不能在以后的狀態(tài)估計(jì)中體現(xiàn)。
KPLS具有較強(qiáng)的泛化性能和抗噪能力,且在預(yù)測精度和訓(xùn)練時(shí)間與SVM(Support Vector Machine)相當(dāng)。而KPLS基于歷史采樣數(shù)據(jù),實(shí)現(xiàn)從原始輸入空間到輸出的非線性建模和預(yù)測,且不用關(guān)注非線性系統(tǒng)的狀態(tài)方程和過程方差等信息。因此,可以利用KPLS建立量測與EKF收斂估計(jì)之間的核模型,再以此模型計(jì)算k時(shí)的預(yù)測值,并和EKF預(yù)測值合成,將此合成值作為k時(shí)狀態(tài)估計(jì)的重要參數(shù)。
基于以上分析,根據(jù)EKF對非線性系統(tǒng)狀態(tài)的估計(jì)過程,基于KPLS對動(dòng)態(tài)非線性系統(tǒng)的模型重新定義如下:
Y=X·B
(21)
(22)
式中Y為系統(tǒng)狀態(tài)各分量在k時(shí)的狀態(tài)預(yù)測,X為系統(tǒng)各分量xl在k-1,k-2,k-3,…,k-p時(shí)刻的量測矩陣,B為模型的參數(shù)向量,由核偏最小二乘法辨識(shí)得到。
2.2.2 基于滑動(dòng)窗口更新KPLS預(yù)測模型
基本思想是設(shè)定固定長度的樣本作為訓(xùn)練樣本,并使窗口隨著新樣本的采集不斷向前滑動(dòng),以替換舊樣本,從而模型能夠定期更新,實(shí)現(xiàn)KPLS實(shí)時(shí)預(yù)測。具體過程如下。
步驟1對于變量X∈Rn×p,因變量Y∈Rn,自變量個(gè)數(shù)為p, n表示樣本個(gè)數(shù)。其輸入構(gòu)成一個(gè)n×p的矩陣,用公式(6)和公式(7)處理后,得核矩陣K。因此,設(shè)定窗口長度為n,滑動(dòng)距離為q。
圖2 滑動(dòng)窗口更新采樣數(shù)據(jù)過程
2.2.3 高斯核函數(shù)寬度參數(shù)σ的取值
在KPLS中,重點(diǎn)在于核函數(shù)中的寬度參數(shù)σ的取值,其值影響KPLS的性能。σ較大時(shí),主要應(yīng)用于平緩變化的樣本,具有更優(yōu)的泛化能力;σ較小時(shí),主要應(yīng)用于劇烈變化的樣本。在多輸入變量的情況下,各變量的寬度參數(shù)σ不同,且隨時(shí)序變化。通常σ的取值可參照小波變換中尺度變化規(guī)律,多尺度小波核有近似正交的特點(diǎn),適用于連續(xù)函數(shù)的擬合及數(shù)字信號(hào)的局部分析、信噪分離和突變信號(hào)的檢測。具體方法如下。
σi=2iσ, i=0,1,2,…
(23)
2.2.4 KPLS-EKF量測噪聲協(xié)方差估計(jì)
為了增強(qiáng)KPLS-EKF的適應(yīng)性,需要解決噪聲信息不準(zhǔn)確的問題。通常,在標(biāo)準(zhǔn)EKF中,濾波增益與系統(tǒng)狀態(tài)估計(jì)協(xié)方差和量測噪聲協(xié)方差都有關(guān),而量測噪聲對濾波效果有更大的影響。因此,基于Sage-Husa算法對量測噪聲協(xié)方差進(jìn)行估計(jì),而忽略系統(tǒng)狀態(tài)估計(jì)協(xié)方差的估計(jì),以提高算法效率。量測噪聲協(xié)方差的估計(jì)如下所示[20]。
R(k)= dk{[1-H(k)K(k-1)]V(k)VT(k)·
[1-H(k)K(k-1)]T+H(k)P(k-1)HT(k)}+
(1-dk)R(k-1)
(24)
式中,dk為遺忘因子:
(25)
在濾波過程中,量測噪聲協(xié)方差并非需要及時(shí)更新。那么就需要明確量測噪聲協(xié)方差的更新條件。通常,采用濾波收斂性作為判據(jù),判據(jù)表示方法如下:
V(k)VT(k)H(k)P(k|k-1)HT(k)+R(k)
(26)
若式(26)為真,則濾波收斂,無需更新量測協(xié)方差,令R(k)=R(k-1);否則,利用式(24)更新量測協(xié)方差。
2.2.5 KPLS-EKF算法
基于2.2.1節(jié)~2.2.4節(jié)的內(nèi)容,設(shè)計(jì)KPLS-EKF算法流程如圖3所示。
KPLS-EKF的詳細(xì)步驟如下。
步驟1采樣與KPLS建模階段。
(a)利用標(biāo)準(zhǔn)EKF對系統(tǒng)狀態(tài)進(jìn)行初始估計(jì),以形成歷史數(shù)據(jù)。
(b)用式(26)判定EKF是否收斂,若收斂,則執(zhí)行步驟(c);否則,返回步驟(a)進(jìn)行下一時(shí)刻的預(yù)測。
(c)將量測數(shù)據(jù)與狀態(tài)估計(jì)值采樣。
(d)判斷樣本數(shù)是否等于N,若等于N,則執(zhí)行步驟(e);否則,返回步驟(a)進(jìn)行下一時(shí)刻系統(tǒng)狀態(tài)估計(jì)。
(e)以量測數(shù)據(jù)作為輸入矩陣,狀態(tài)估計(jì)值矩陣作為輸出,利用式(10)~式(19)初始化KPLS模型。
圖3 KPLS-EKF算法流程圖
步驟2KPLS預(yù)測與模型更新。
(g)KPLS窗口向前滑動(dòng),若滑動(dòng)距離d=q,執(zhí)行步驟(h);否則,KPLS模型不變,返回步驟(f)。
(h)生成隨機(jī)數(shù)i, i∈[1,5],利用公式(23)取核參數(shù)σ,再更新KPLS模型,返回步驟(f)。
步驟3EKF預(yù)測與更新。利用EKF的公式(3)預(yù)測得k時(shí)狀態(tài)xk|k-1。
(27)
式中ρKPLS表示KPLS預(yù)測信度,ρEKF表示EKF預(yù)測信度,理想狀態(tài)下ρKPLS=ρEKF=1/2,即KPLS和EKF預(yù)測的信度相同。
步驟5利用EKF的公式(5)~公式(8)進(jìn)行狀態(tài)估計(jì)得最終系統(tǒng)狀態(tài)xk|k,并將其作為KPLS模型更新的樣本。
步驟6利用公式(9)更新協(xié)方差矩陣Pk|k。
步驟7若式(26)成立,則系統(tǒng)量測噪聲協(xié)方差不變,執(zhí)行R(k)=R(k-1);否則,用式(24)更新R(k)。
在以上KPLS-EKF算法中,融入了基于滑動(dòng)窗口的KPLS,通過時(shí)序采樣、訓(xùn)練與學(xué)習(xí),構(gòu)建量測與狀態(tài)的收斂估計(jì)的核矩陣,而無需建立具體的系統(tǒng)狀態(tài)模型,可以避免由于系統(tǒng)模型參數(shù)的不準(zhǔn)確導(dǎo)致的估計(jì)誤差。另外,通過濾波收斂性判定量測協(xié)方差的更新,提高KPLS-EKF算法在量測噪聲信息不準(zhǔn)確的情況下的濾波精度。
從理論上分析,KPLS優(yōu)化EKF的可行性KPLS-EKF是在EKF的基礎(chǔ)上融入KPLS,而EKF本身時(shí)間復(fù)雜度較低,具有較高的實(shí)時(shí)性。在融入基于學(xué)習(xí)的KPLS后,整個(gè)算法的時(shí)間復(fù)雜度必定高于標(biāo)準(zhǔn)EKF的時(shí)間復(fù)雜度,因此針對KPLS-EKF算法的詳細(xì)過程進(jìn)行分析,有利于選取合適的參數(shù),在取得預(yù)期濾波精度的情況下,實(shí)時(shí)性也能夠得到保證。由圖3及其詳細(xì)步驟,可以將KPLS-EKF算法分為如下3部分。
1)數(shù)據(jù)采集和KPLS模型初始化。該階段作為模型的學(xué)習(xí)和訓(xùn)練階段,其運(yùn)算量取決于2方面,一是采樣的樣本數(shù)N,二是非線性迭代求解T和U時(shí),設(shè)置的終止迭代次數(shù)t和收斂判據(jù),以及輸入空間自變量個(gè)數(shù)m,若不能滿足收斂判據(jù),達(dá)到迭代終止條件后則終止。那么,最壞情況下,學(xué)習(xí)訓(xùn)練KPLS模型的時(shí)間復(fù)雜度為O(N2+m×t)。但是,該階段作為模型學(xué)習(xí)與訓(xùn)練的必要時(shí)間開銷,可以不作為系統(tǒng)狀態(tài)估計(jì)時(shí)的時(shí)間開銷。
3)KPLS模型更新階段。該階段從本質(zhì)上分析,是在達(dá)到模型更新條件時(shí)對核矩陣進(jìn)行更新,整個(gè)過程和核矩陣初始建模沒有任何區(qū)別,故其時(shí)間復(fù)雜度仍然表示為O(N2+m×t)。
綜合以上分析,在系統(tǒng)狀態(tài)實(shí)時(shí)估計(jì)階段,KPLS-EKF的時(shí)間復(fù)雜度表示為O(2N2+M3+m×t)。在實(shí)際應(yīng)用時(shí),t、N和M取值都較小,一般在10以內(nèi),而即使迭代次數(shù)t=100,最壞情況下其迭代運(yùn)算量僅為1000。因此,綜合分析,基于學(xué)習(xí)的KPLS優(yōu)化EKF解決非線性系統(tǒng)的狀態(tài)估計(jì),在理論上具有可行性。
利用實(shí)驗(yàn)仿真的方法重點(diǎn)探究以下3個(gè)問題。
1)量測與估計(jì)的樣本數(shù)N的取值。N的大小影響到2個(gè)方面。一是算法時(shí)間復(fù)雜度。N越大,算法運(yùn)算量越大;反之,運(yùn)算量越小。二是合適的樣本數(shù)量有利于構(gòu)建準(zhǔn)確的KPLS核矩陣,從而提高算法的收斂性和預(yù)測準(zhǔn)確度。但是運(yùn)算效率與收斂性和精度之間是個(gè)矛盾的問題,因此,這里需要找到合適的樣本數(shù)N,在效率與性能之間找到平衡。
2)KPLS-EKF算法收斂性分析。主要從實(shí)驗(yàn)仿真的角度分析KPLS-EKF在經(jīng)過多少次迭代以后,估計(jì)值與真值的誤差趨向于穩(wěn)定,或者相較于固定值合理波動(dòng)。
3)KPLS-EKF性能分析。重點(diǎn)和其它算法相比,其濾波精度如何,主要通過均方根誤差(Root Mean Square Error, RMSE)作對比分析。由于每次實(shí)驗(yàn)具有隨機(jī)性,因此,每次取均方根誤差的均值作為對比依據(jù)。
以上實(shí)驗(yàn)的運(yùn)行環(huán)境為Windows XP系統(tǒng),Intel(R) Core(TM) i3-2130 CPU @ 3.40 GHz & 3.39 GHz, 4 GB內(nèi)存,500 GB硬盤,仿真軟件為Matlab R2012a。實(shí)驗(yàn)的非線性系統(tǒng)狀態(tài)方程如下:
Xk=f(xk-1,uk,wk)=F×Xk-1+G×sqrt(Q)×rand(2,1)
式中:
F為狀態(tài)轉(zhuǎn)移矩陣,G為過程噪聲驅(qū)動(dòng)矩陣,Q為過程噪聲方差;T為雷達(dá)掃描周期,觀測站的位置為Xstation=[x0,y0]。量測方程如下:
Z(k)=Dist(X(:,k),Xstation)+sqrt(R)·rand
式中Dist(·)表示目標(biāo)與觀測站的距離,R為量測方差。
系統(tǒng)的初始化數(shù)據(jù)為T=1,總采樣次數(shù)N=200/T,初始狀態(tài)為X(:,1)=[-100,10,200,20],-100為x方向位置,10為x方向速度,200為y方向位置,20為y方向速度。觀測站的位置x0=200, y0=300,即Xstation=[200,300]。
通過多次實(shí)驗(yàn)仿真的方法,分析樣本數(shù)量的選擇對濾波精度的影響。具體方法如下。
分別取樣本數(shù)N=2,3,…,20建立KPSL核矩陣,并分別進(jìn)行50次仿真實(shí)驗(yàn)。在此基礎(chǔ)上記錄下選取每個(gè)樣本數(shù)時(shí)濾波的RMSE,并計(jì)算50次實(shí)驗(yàn)的RMSE均值,計(jì)算方法如下:
(28)
式中M為取不同的樣本數(shù)時(shí)實(shí)驗(yàn)仿真次數(shù),N為建立KPLS核矩陣時(shí)的樣本數(shù)。下面所有的RMSE均值計(jì)算都基于公式(28)。以X方向的速度估計(jì)為例,實(shí)驗(yàn)結(jié)果如圖4所示。
(a) N=2
(b) N=3
(c) N=4
(d) N=5
在圖4中,濾波的起始為KPLS-EKF采樣和學(xué)習(xí)階段,在達(dá)到訓(xùn)練樣本以后,有相應(yīng)的濾波結(jié)果輸出。在后續(xù)的濾波階段,KPLS-EKF的值更接近于EKF,即訓(xùn)練樣本為2時(shí),能夠較快地建立KPLS核矩陣,但是其濾波效果更接近EKF的估計(jì)值,而在N=4時(shí),其效果更加顯著。而到了N=5時(shí),效果并不明顯,這是因?yàn)檫^多歷史數(shù)據(jù)的采樣反而會(huì)抑制基于訓(xùn)練樣本構(gòu)建的核模型帶來的有效增益。因此,選取合適的訓(xùn)練樣本數(shù)顯得尤為重要。
基于以上4項(xiàng)實(shí)驗(yàn)結(jié)果,初步得出如下結(jié)論。即樣本數(shù)的增加,KPLS-EKF的濾波結(jié)果逐步靠近真值,雖然較EKF能夠較快收斂于真值附近,卻需要樣本收集和訓(xùn)練為代價(jià)。為了進(jìn)一步分析KPLS-EKF中訓(xùn)練樣本對濾波結(jié)果的影響,考慮實(shí)驗(yàn)的隨機(jī)性,取樣本數(shù)N=2,3,…,20,對每個(gè)取值進(jìn)行50次實(shí)驗(yàn),并利用式(28)計(jì)算在X方向上速度估計(jì)值和真值的RMSE均值,得出如圖5所示的結(jié)果。
訓(xùn)練樣本數(shù)N∈[3,8] 之間為宜。這是因?yàn)樵趫D5中,整體上隨著樣本數(shù)N 的增加,RMSE均值減小,濾波精度逐步提高。但是,隨著樣本數(shù)的增加,RMSE均值穩(wěn)定在一定范圍內(nèi),呈一定的波動(dòng)性,主要是因?yàn)閷?shí)驗(yàn)時(shí)量測與估計(jì)值都具有隨機(jī)性,其波動(dòng)值在合理范圍內(nèi),且過多地增加訓(xùn)練樣本并不能有效地增加算法的濾波精度。另外,根據(jù)2.3節(jié)的分析,過多的訓(xùn)練樣本必然帶來時(shí)間復(fù)雜度的增加,影響算法的實(shí)時(shí)性。
圖5 不同樣本數(shù)下KPLS-EKF的RMSE均值
為了分析KPLS-EKF的收斂性,根據(jù)3.1節(jié)的實(shí)驗(yàn)結(jié)論,設(shè)定樣本數(shù)量N=4,觀察系統(tǒng)狀態(tài)2個(gè)參數(shù)x方向速度和y方向速度的收斂情況。實(shí)驗(yàn)結(jié)果如圖6所示。
(a) X方向速度
(b) Y方向速度
圖6所示的實(shí)驗(yàn)結(jié)果與圖4中樣本數(shù)N=4時(shí)的結(jié)果接近。在KPLS-EKF樣本的搜集階段,以EKF的估計(jì)值作為濾波結(jié)果,在達(dá)到樣本數(shù)以后,能夠較快地收斂于真值附近,用了近20步,EKF為40步。以上實(shí)驗(yàn)結(jié)果具有一定的隨機(jī)性,因此,進(jìn)行了50次實(shí)驗(yàn)求KPLS-EKF、標(biāo)準(zhǔn)EKF和改進(jìn)MI-EKF[21],在x和y的2個(gè)方向速度的收斂步數(shù)均值。結(jié)果如表1所示。
表1中的p表示新息數(shù),N 為訓(xùn)練樣本數(shù)。
從表1中的2個(gè)參數(shù)Vx、 Vy在不同算法的不同參數(shù)下的收斂步數(shù)可以得出以下結(jié)論:
1)KPLS-EKF算法收斂速度和改進(jìn)MI-EKF算法的接近,均優(yōu)于標(biāo)準(zhǔn)EKF算法。但在整體上,KPLS-EKF的收斂速度略好于改進(jìn)MI-EKF算法。
2)通過增加樣本數(shù),KPLS-EKF算法能夠提高收斂速度,但是,增加到一定程度后,其收斂性并不能顯著提高,這是因?yàn)楹线m的采樣數(shù)據(jù)能夠?qū)V波產(chǎn)生積極的優(yōu)化效果,然而,過多的訓(xùn)練數(shù)據(jù)對最終估計(jì)值產(chǎn)生了累積干擾。所以,需要在有效優(yōu)化和抑制累積之間找到相對平衡點(diǎn)。
表1 3種濾波算法同一參數(shù)收斂步數(shù)均值
序號(hào)濾波算法參數(shù)收斂步數(shù)VxVy1EKF42482KPLS-EKF(N=2)40453KPLS-EKF(N=3)35374KPLS-EKF(N=4)25235KPLS-EKF(N=5)24236改進(jìn)MI-EKF(p=2)38407改進(jìn)MI-EKF(p=3)35368改進(jìn)MI-EKF(p=4)30339改進(jìn)MI-EKF(p=5)2930
為了進(jìn)一步說明KPLS-EKF算法的有效性,本文選取訓(xùn)練樣本數(shù)為4,將KPLS-EKF算法與標(biāo)準(zhǔn)EKF算法、MI-EKF算法[9]和文獻(xiàn)[21]的改進(jìn)MI-EKF算法進(jìn)行RMSE均值對比,以分析其濾波精度和運(yùn)行效率。
(a) X方向速度
(b) Y方向速度
根據(jù)圖7中4種濾波算法的對比結(jié)果,初步得出結(jié)論為:KPLS-EKF在濾波的初始階段,未采集到足夠的收斂訓(xùn)練樣本,使用EKF的估計(jì)值,故其結(jié)果和EKF相同;在達(dá)到訓(xùn)練樣本數(shù)以后,KPLS-EKF的估計(jì)值相比其它幾種濾波算法,更靠近真實(shí)值。但是,考慮實(shí)驗(yàn)仿真過程存在隨機(jī)性,重復(fù)進(jìn)行50次實(shí)驗(yàn),設(shè)過程噪聲方差Q=5×diag([0.5,1]),觀測噪聲方差R=5+rand([1,1]),利用式(28)計(jì)算4種算法的估計(jì)值和真值的均方根誤差(RMSE)均值。實(shí)驗(yàn)結(jié)果如表2所示。
表2 4種算法濾波性能對比
序號(hào)濾波算法RMSE均值VxVy運(yùn)行時(shí)間均值/s1KPLS-EKF(N=2)8.652611.76180.02252KPLS-EKF(N=3)4.24327.35240.02313KPLS-EKF(N=4)2.16844.27760.02384EKF9.109112.21830.02125MI-EKF(p=2)7.368210.47740.02196MI-EKF(p=3)5.56268.67180.02267MI-EKF(p=4)2.38515.49430.02358改進(jìn)MI-EKF(p=2)7.175910.28510.02219改進(jìn)MI-EKF(p=3)5.36258.47170.022410改進(jìn)MI-EKF(p=4)2.27444.38860.0236
表2中參數(shù)p、 N 的含義同表1。
由表2的實(shí)驗(yàn)數(shù)據(jù)得出結(jié)論如下:
1)KPLS-EKF在算法效率上較MI-EKF和改進(jìn)的MI-EKF略有降低,是因?yàn)樵跒V波過程中,需要不斷更新核矩陣,增加了算法運(yùn)算量,但是增加量并不明顯,當(dāng)樣本數(shù)2N4 時(shí),運(yùn)行時(shí)間增加值在0.0001 s~0.0007 s之間,增加幅度在可接受范圍內(nèi)。
2)KPLS-EKF在訓(xùn)練樣本數(shù)N>2時(shí),RMSE均值均小于EKF、 MI-EKF和改進(jìn)的MI-EKF。在樣本數(shù)N=3時(shí),KPLS-EKF在X方向速度的RMSE均值為4.2432, Y方向速度的RMSE均值為7.3524,效果優(yōu)于其它3種算法。而到了樣本數(shù)為4,MI-EKF和改進(jìn)的MI-EKF的新息數(shù)為4時(shí),這3種算法的濾波效果相近。
擴(kuò)展卡爾曼濾波在對非線性系統(tǒng)狀態(tài)估計(jì)時(shí),需要狀態(tài)方程準(zhǔn)確的參數(shù)、量測與噪聲方差信息,且這些參數(shù)信息存在時(shí)序變化的問題,所以通常建立的系統(tǒng)狀態(tài)方程,難以適應(yīng)時(shí)變系統(tǒng)的狀態(tài)估計(jì)。因此,將KPLS融入擴(kuò)展卡爾曼濾波,即通過學(xué)習(xí)算法,建立量測與EKF收斂估計(jì)值之間的預(yù)測模型,從而避免了系統(tǒng)狀態(tài)方程、量測與過程方差信息不準(zhǔn)確導(dǎo)致EKF估計(jì)值隨時(shí)序發(fā)散的問題。然而,在算法的初始采樣階段,其濾波精度并未有效改善,另外,在固定的訓(xùn)練樣本數(shù)下導(dǎo)致算法運(yùn)行效率低于MI-EKF和改進(jìn)的MI-EKF,下一步應(yīng)該在此基礎(chǔ)上研究提高算法效率的方法。