馬 超,李世平,張 進
(第二炮兵工程學院,陜西 西安 710025)
現(xiàn)在常用的動態(tài)測試誤差補償方法是對其輸出信號進行后處理,增加動態(tài)補償環(huán)節(jié)。近幾年,有不少學者利用神經(jīng)網(wǎng)絡(luò)的方法對系統(tǒng)進行動態(tài)誤差補償,但是神經(jīng)網(wǎng)絡(luò)的不足之處在于:(1)存在過學習問題,影響其整體的泛化能力;(2)由于訓練結(jié)構(gòu)的關(guān)系會使補償環(huán)節(jié)參數(shù)的確定存在一定的隨機性;(3)當樣本數(shù)據(jù)有限時,結(jié)果偏差較大。鑒于以上原因,運用神經(jīng)網(wǎng)絡(luò)的方法提高測量精度所付出的代價是運算量很大。為此,該文利用支持向量機(Support Vector Machines,SVM)對虛擬儀器進行動態(tài)補償,能夠在一定程度上解決上述問題。
支持向量機由美國N·Vapnik教授提出,是在小樣本情況下發(fā)展起來的統(tǒng)計機器學習理論,能有效地解決“維數(shù)災難”和“過學習”等問題。
該文提出了利用遺傳算法對支持向量機進行優(yōu)化且自動選擇最優(yōu)參數(shù)。仿真結(jié)果表明,利用該方法可以解決傳統(tǒng)參數(shù)選擇方法的缺點,并且動態(tài)誤差補償?shù)男Ч浅C黠@。
由于測試系統(tǒng)存在一定的響應滯后,因此輸出信號y(t)與被測信號x(t)之間存在較大的動態(tài)測試誤差。為提高測試精度可使測試系統(tǒng)輸出通過一個補償器,用補償器的輸出y^(t)替代 y(t)從而達到修正動態(tài)誤差的目的,其原理如圖1所示。
圖1 動態(tài)補償原理示意圖
實際應用中的動態(tài)補償環(huán)節(jié)可用單變量差分方程予以描述:
式中:z-1——延遲算子;
n,m——階次;
e(t)——輸出噪聲。
式(1)的向量形式為:
式中:b——常數(shù),ω=(-a1,…,-an,b0,b1,…,bm)T,Xt=(z-1y^(t),…,z-ny^(t),y(t),z-1y(t),…,z-my(t))T。
從式(2)來看,動態(tài)補償器的構(gòu)造過程其實就是對補償模型進行辨識,求取參數(shù)ω和b的過程。動態(tài)補償器原理如圖2。
SVM的基本思想是通過非線性變換將n維樣本從原空間映射到高維特征空間中,并從中構(gòu)造最優(yōu)線性回歸函數(shù),設(shè)給定的訓練樣本為:
首先用一個非線性映射φ把數(shù)據(jù)映射到一個高維數(shù)特征空間,然后在高維特征空間中進行線性回歸,設(shè)回歸函數(shù)為:
優(yōu)化問題是最小化:
約束為:
這是一個二次優(yōu)化問題,其對偶問題為:
約束為:
解這個二次優(yōu)化,可以得到α的值,w的表達式為:
于是回歸函數(shù)的表達式為:
可以證明,只要滿足Mercer條件核函數(shù)K(x,y),可以代替高維空間中的內(nèi)積運算,從而避免了復雜的高維計算問題。按照KKT定理,可以得到b的計算式如下:
由支持向量機回歸方法可以看出,在支持向量機優(yōu)化過程中,不敏感系數(shù)ε、懲罰系數(shù)C以及核函數(shù)中的結(jié)構(gòu)參數(shù)無法在優(yōu)化過程中自動選擇,只能憑經(jīng)驗或是交叉驗證的方法確定。這樣,一方面缺乏理論基礎(chǔ),另一方面也無法保證所選擇的參數(shù)是最優(yōu)的。而遺傳算法作為一種新的全局優(yōu)化搜索算法,正好可以對支持向量機中的這些參數(shù)進行優(yōu)化選擇,從而不僅使支持向量機模型中的這些參數(shù)的選擇更具理論性,而且可以保證模型的最優(yōu)。基于遺傳算法的支持向量機的算法結(jié)構(gòu)流程圖如圖3。
遺傳算法具體實施過程:
(1)適應度函數(shù)fit(C,σ,ε)。對于給定染色體ri,其適應度函數(shù)按下式計算:
式中:yi——數(shù)據(jù)實際值;
Ymax——ri所在世代中Yi的最大值。
(2)對變量 C,σ,ε賦初值。
(3)染色體編碼。染色體r采用二進制編碼,每個算子由三段編碼組成,即:
r=A1,A2,A3
其中 A1,A2,A3分別為 C,σ,ε 的代碼表示段。
(4)種群初始化。令gen=0,在各變量取值范圍之內(nèi),隨機生成規(guī)模為N的初始種群R。
(6)染色體變異。采用pm的概率進行染色體變異。隨機選取染色體上一位,將其按照0→1,1→0的規(guī)則進行變異。然后檢驗變異后染色體是否在變量取值范圍內(nèi),如不滿足則重新進行變異。
(7)計算連續(xù)五代染色體平均適應度差值,記其最大差值為ζ,如果ζ≤μ(μ為給定差值下限)或者gen≥Niter(Niter為給定最大進化代數(shù)),則停止進化,輸出該種群中的最優(yōu)結(jié)果。否則gen=gen+1,轉(zhuǎn)步驟(5)。
實驗中,構(gòu)建一個虛擬儀器數(shù)據(jù)采集系統(tǒng),將FLUKE5700作為標準信號源輸入,通過PCLD-8115傳輸,利用PCL-818HD數(shù)據(jù)采集卡進行采集,然后在虛擬儀器程序軟件LabVIEW中顯示(激勵信號采用單位階躍信號)。所采集動態(tài)信號如表1。
表1 采集到的數(shù)據(jù)1)
補償模型中遺傳算法參數(shù)NIND(個體數(shù)目)=60,Pm(變異概率)=0.75,Pc(交叉概率)=0.01,由遺傳算法得出的標準支持向量機參數(shù)gam(規(guī)則化參數(shù))=1.60237e+003;sig2(核函數(shù)參數(shù))=1.602 21e-003;補償結(jié)果如圖4。
如圖4所示,經(jīng)補償后的測試系統(tǒng)其相應的動態(tài)性能指標得到了較大提高,y(t)的振蕩得到了有效抑制,超調(diào)量明顯減小,同時達到穩(wěn)態(tài)的時間約縮短為補償前的1/5,動態(tài)誤差也得到了較好的補償。
該文詳細論述了標準SVM的基本原理與辨識方法,并討論了SVM在進行動態(tài)補償器構(gòu)造中的實際運用。通過以上仿真和實驗可以看出,利用遺傳算法對標準SVM進行優(yōu)化后,其動態(tài)補償效果非常明顯。因此,遺傳算法支持向量機(GASVM)為虛擬儀器動態(tài)補償提供了一種可靠的方法,理論和實驗均證明該方法可行。
[1]張國云.支持向量機算法及其應用研究[D].長沙:湖南大學,2006.
[2]李亞楠,耿伯英.基于支持向量機的傳感器非線性動態(tài)補償[J].傳感器技術(shù),2005,24(12):19-21.
[3]雷 劍.基于SVM和遺傳算法的建模與全局尋優(yōu)方法[J].科技廣場,2008(5):120-122.
[4]喻俊馨,王計生,黃惟公.基于神經(jīng)網(wǎng)絡(luò)和支持向量機的故障診斷[J].西華大學學報:自然科學版,2008,27(3):24-27.
[5]王 凌.智能優(yōu)化算法及其應用[M].北京:清華大學出版社,2004.
[6]楊樂平,李海濤.LabVIEW程序設(shè)計與應用[M].2版.北京:電子工業(yè)出版社,2005.
[7]費業(yè)泰.誤差理論與數(shù)據(jù)處理[M].北京:機械工業(yè)出版社,2003.
[8]趙洪波.基于遺傳算法的進化支持向量機研究 [J].紹興文理學院學報,2004,24(9):25-28.