摘 要:經典卡爾曼濾波器要求假設系統的動態模型和觀測模型的噪聲統計特性已知,而組合導航系統的噪聲具有非先驗性。為了解決這一問題,提出小腦模型神經網絡(CMAC)輔助卡爾曼濾波器。仿真試驗結果表明,該輔助算法的精度與經典卡爾曼濾波算法相比提高了2倍,收斂時間縮短近200 s,并有效地克服了傳統神經網絡學習速度慢,泛化能力弱的缺點,使系統具有自適應能力,以應付動態環境的擾動。
關鍵詞:組合導航; 卡爾曼濾波; BP神經網絡; 小腦模型神經網絡
中圖分類號:TN96-34文獻標識碼:A
文章編號:1004-373X(2010)21-0051-03
Application of CMAC-based Kalman Filtering Technology in Integrated Navigation System
ZHANG Yuan, YANG Bin, SUN Jiang-lei
(Department of Navigation, Benghu Navy Petty Officer Academy ofPLA, Benghu 233012, China)
Abstract: The conventional Kalman filter needs to assume that the statistical properties of the noise in dynamic model and observation system are exactly known, but the noise in integrated navigation system is uncertain. Soa new method that the cerebellar model articulation controller (CMAC) neural network assists Kalman filter is put forward to solve the problem. The simulation results indicate that the precision of CMAC is 2 times better and convergence time is 200 s less than those of Kalman filtering algorithm. Thus it can overcome the shortcomings of the conventional neural network, such as slow learning and poor generalization ability, and make the whole system has the adaptive capability to deal with the disturbance in dynamic situation.
Keywords: integrated navigation; Kalman filtering; BP neural network; CMAC neural network
0 引 言
卡爾曼濾波是目前組合導航系統常用的一種濾波算法,但經典卡爾曼濾波理論要求精確的系統數學模型和噪聲統計特性,而組合導航系統實際上是一個復雜的動力系統,要給出其精確的數學模型以及系統噪聲和測量噪聲的統計特性都存在著困難。因此在實際應用中,為了給出較精確的系統描述,需要高階的數學模型,這勢必導致很大的計算量,為高階卡爾曼濾波器的實現和算法的實時性帶來了困難;如果采用簡化系統模型的方法,雖減小了計算量,但同時也降低了系統精度[1-2]。
本文將小腦模型神經網絡(CMAC)與卡爾曼濾波器相結合,提出小腦模型神經網絡(CMAC)輔助卡爾曼濾波器進行最優估計的信息融合方法,并將算法應用于組合導航系統中。通過計算機仿真,檢驗了小腦模型神經網絡(CMAC)輔助卡爾曼濾波的精度優于經典卡爾曼濾波算法和其他神經網絡輔助卡爾曼濾波算法。
1 CMAC輔助卡爾曼濾波設計
1.1 CMAC網絡模型[3]
CMAC是由Albus根據小腦在生物運動協調方面的重要作用而提出的一種小腦模型關節控制器,是一種表達復雜非線性函數的表格查詢型自適應神經網絡,該網絡可通過學習算法改變表格的內容,具有信息分類存儲的能力[4]。
CMAC的基本思想在于:在輸入空間中給出一個狀態,從存儲單元中找到對應于該狀態的地址,將這些存儲單元中的內容通過求和得到CMAC 的輸出;將此響應值與期望輸出值進行比較,并根據學習算法修改這些已經激活的存儲單元的內容。CMAC網絡由輸入層、中間層和輸出層組成,如圖1所示。
CMAC神經網絡的設計主要包括輸入空間的劃分、輸入層值輸出層非線性映射的實現以及輸出層權值學習算法。CMAC是前饋網絡,輸入/輸出之間的非線性關系由兩個基本映射實現。
圖1 CMAC結構圖
(1) 概念映射(u→AC)
設輸入空間向量為up=[u1p,u2p,…,unp]T,量化編碼為[up],輸入空間映射至AC中c個存儲單元(c為二進制非零單元的數目)。采用式(1)表示映射后的向量:
Rp=S([up])=[s1(up),s2(up),…,sc(up)]T
(1)
式中:sj([up])=1,j=1,2,…,c。
(2) 實際映射(AC→AP)
網絡的輸出為AP中c個單元的權值之和。只考慮單輸出:
y(t)=∑cj=1wjsj([up])
(2)
1.2 CMAC學習算法
CMAC 算法的基本思想是將學習數據存儲在交疊的存儲單元中,輸出為相應激活單元數據的累加和,將實際值與期望輸出值比較,并根據學習算法修改已激活的存儲單元內容。其權值調整公式為:
wij=wi-1j+mCs(ys-ys)
(3)
ys=∑Nj=1Cswi-1j
(4)
式中:ys為狀態s的期望輸出;ys為狀態s的實際輸出;為學習常數;N為存儲單元數;Cs為第j個存儲單元是否被狀態s激活的指示,當某個狀態僅有m個存儲單元被激活時,其Cs值為1,而其他存儲單元的Cs值均為0。該算法中誤差被平均分配到所有被激活的存儲單元,經多次迭代后,各存儲單元由于學習歷史不同,所以有不同的可信度。
為提高學習速度以滿足系統要求,本文采用一種基于信度分配的CMAC神經網絡模型,其權值調整公式為:
wij=wi-1j+Cs[f(j)+1]-k0∑mj=1[f(j)+1]-k0(ys-∑Nj=1Cswi-1j)
(5)
式中:f(j)為第j個存儲單元的學習次數;m為某狀態激活的存儲單元數;k0為一平衡學習數;wij為經過第i次迭代后存儲在第j個存儲單元的權值。由式(5)可以看出,f(j)越大,其存儲的知識越大;k0越大,對學習次數f(j)較大的存儲單元,其權值改變較小,網絡學習中“已經學習知識的保持”占主導地位;反之,當k0很小時,學習次數f(j)對信度分配的影響也較小,網絡學習中“遺忘”占據主導地位[5-7]。
1.3 基于CMAC卡爾曼濾波設計
首先確定CMAC神經網絡模型的輸入與輸出變量,將能直接影響卡爾曼濾波估計誤差的參數作為神經網絡的輸入。這些信號可分為三部分[1,8]:
(1) 狀態向量的預測或一步動態外推與濾波估計之差[k/k-1-k/k];
(2) 實際觀測值與卡爾曼估計觀測值之差[Zk-h(k/k,K)];
(3) 卡爾曼增益矩陣Kk。
CMAC神經網絡模型的輸出量為系統狀態向量的卡爾曼估計與滿足誤差精度的相對真值的誤差:
E=[k-k/k],其中,k為相對真值。
因此借鑒文獻[1]中提出的基本思想,構造基于CMAC卡爾曼濾波器如圖2所示。
圖2 基于CMAC卡爾曼濾波器
2 仿真結果
本文著重討論基于CMAC卡爾曼濾波算法的可行性,利用如下簡化組合導航系統模型和圖3的算法結構進行討論,并分別與經典卡爾曼濾波算法和BP神經網絡輔助卡爾曼濾波算法進行比較。
Xk+1=1h01Xk+Wk,
Yk=[1 0]Xk+Vk
(6)
狀態變量X1為航跡距離,X2為航跡速度,取h=10。仿真參數設置如下[9]:k0=1.2,N=10, =0.05。訓練樣本根據實驗選取。基于CMAC卡爾曼濾波算法、經典卡爾曼濾波算法和BP神經網絡輔助卡爾曼濾波算法的仿真都通過Matlab軟件來完成。基于CMAC卡爾曼濾波算法的結構如圖3所示,仿真結果如圖4所示。
圖3 基于CMAC卡爾曼濾波算法結構圖
由仿真結果可知,圖4(a)~圖4(c)為標準卡爾曼濾波算法、BP神經網絡輔助卡爾曼濾波算法和CMAC輔助卡爾曼濾波算法所得的位移估計誤差值和速度估計誤差值。從圖4和表1中可以看出,CMAC輔助卡爾曼濾波算法的精度和收斂時間要比前面兩種算法優越。
表1 三種算法結果比較
指標
項目
位移誤差(ΔS)航速誤差(ΔV)
KalmanAided BPAided CMACKalmanAided BPAided CMAC
收斂時間(T)820700610920810600
穩態時段方差(σ)0.030 90.018 50.010 10.031 50.025 30.012 2
圖4 仿真結果
3 結 論
理論分析和仿真結果表明,本文提出的CMAC輔助卡爾曼濾波算法具有容錯性能好,收斂速度快,泛化能力強的特點,比標準卡爾曼濾波算法更為優越。
參考文獻
[1]白宇駿,徐曉蘇,劉國燕.神經網絡輔助卡爾曼濾波技術在組合導航系統中的應用研究[J].中國慣性技術學報,2003,11(2):40-43.
[2]許麗佳,陳陽舟,崔平遠.基于神經網絡的組合導航系統狀態估計[J].中國慣性技術學報,2004,12(2):40-46.
[3]劉金錕.智能控制[M].北京:電子工業出版社,2005.
[4]李士勇.模糊控制#8226;神經控制和智能控制[M].哈爾濱:哈爾濱工業大學出版社,1998.
[5]SHUN F S, TED T, HUNG T H. Credit assigned CMAC and its application to online earning robust controllers[J].IEEE Trans. on Systams, Man and Cybernetics, 2003, 33(2): 202-213.
[6]LIN C S, CHIANG C T.Learning convergence of CMAC technique [J].LIEEE Trans.Neural Networks,1997,8(6):1281-1292.
[7]張偉,朱大奇,孔敏,等.基于改進的CMAC神經網絡與PID并行控制的研究[J].計算機測量與控制,2005,13(12):1359-1360.
[8]CHIN L. Application of neural network in target tracking data fusion[J]. IEEE Trans. on Aerospace and Electronic Systems, 1994,30(1):281-287.
[9]朱大奇,張偉.基于平衡學習的CMAC神經網絡非線性辨識算法[J].控制與決策,2004,19(12):1425-1428.