(西北工業大學 電子信息學院, 西安 710072)
摘要:研究了對非線性動態系統作任意精度逼近的Volterra級數高階核的全新估計方法。該方法在核函數理論基礎上構造特殊線性空間,將求解Volterra級數的各階核的問題轉換為求用輸出觀測向量在希爾伯特空間中某一子空間上的投影問題,使原本復雜、難以計算的非線性系統的Volterra級數的逼近問題在所構建的線性空間中巧妙地以向量內積的方式解決,并給出了具體算法。相比于其他時域或頻域估計Volterra核的方法,該算法的優點在于理論體系嚴密、計算量不會隨著階數增高而呈幾何級數增加,辨識精度高,理論上能夠辨識出任意階的核,彌補了迄今現有的各種估計Volterra核的方法難以估計超過四階或更高階核的缺點,特別能夠應用在對動態系統和強非線性系統的建模上。仿真研究的結果證明了該方法的有效性。
關鍵詞:非線性系統; Volterra級數; 線性空間; 核; 泛函
中圖分類號:TP3016文獻標志碼:A
文章編號:1001-3695(2008)11-3340-03
Novel method based on projection of vectors in linear space
to identify Volterra kernels of arbitrary orders
SI Wei, DUAN Zhe-min, WANG Hai-tao
(College of Electronics Information, Northwestern Polytechnical University, Xi’an 710072, China)
Abstract:This paper proposed a novel method to identify Volterra kernels of nonlinearly dynamical systems. The new notions developed an implementation of accurate and efficient nonparametric algorithms for the identification of Volterra series of orders up to arbitrary degrees. Computational simulation shows the validity and efficiency of the algorithm.
Key words:nonlinear system; Volterra series; linear space; kernel; functional
相對于成熟的線性系統的辨識理論,非線性系統的辨識沒有統一的理論方法,Votlerra級數是諸多方法中理論基礎最堅實的。Volterra 級數能以任意精度逼近緊集上的連續函數,能夠建立非線性時不變動態系統的數學模型,而且Volterra級數核(特別是頻域核)具有明確的物理意義(時域核是廣義沖擊響應,頻域核是廣義頻率響應)。基于Volterra級數的以上優點, 一百多年以來,很多人選用具有成熟數學理論基礎的Vol-terra級數來進行非線性時不變動態系統的辨識。但用Volterra級數來逼近非線性系統還存在兩個主要問題:a)在模型階次選擇上,隨著階數的增多,需要估計的Volterra級數核的項數呈幾何級數增加。在國內外很多文獻中,為了回避計算復雜度高的高階核問題,一般將Volterra級數只截取到二階,很少有計算到四階或更高階的實例。這就不可避免地造成所辨識出來的非線性系統的模型的非線性度遠遠低于原始系統的非線性度;另外使得系統對輸入信號的范圍有嚴格要求,即必須在某一點的一個很小的鄰域內。實際上,忽略高階核造成了辨識模型與所辨識系統之間存在較大誤差。這就是為什么Volterra級數的應用直到今天還局限在低階、弱非線性系統的建模上。b)在算法方面,傳統的Volterra級數的計算方法存在諸多問題。至今常用的算法不外乎隨機響應法[1,2]、脈沖響應法[1]、全耦合LMS法[3]、部分解耦LMS法[4]、全解耦RLS法[5]、利用多音信號測量出Volterra級數頻域核后反算出時域核, 用輸入為高斯白噪聲觀察輸出的Lee-Schetzen[6]試驗法。所有這些方法都存在計算量大、不宜于計算Volterra級數高階核的缺點;LMS、RLS算法還存在收斂慢的問題。為了解決Volterra級數高階核的計算問題,從而將Volterra級數應用到更一般、強非線性系統的建模上,本文提出了新的方法。新方法的理論基礎是目前快速發展的核函數理論以及在上世紀中期建立起來的再生核希爾伯特空間理論[7]。本文利用希爾伯特線性空間的再生核理論,將求解Volterra級數的各階核的問題轉換為線性空間中向量的內積,也就是用輸出觀測向量在希爾伯特空間中某一子空間上的投影方式求解Volterra級數的各階尤其是高階核。這個方法的優點是:數學基礎牢固、計算量較小、能夠估計任意高階的核、估計精度高、能夠估計動態系統和強非線性系統。
1理論
11理論基礎
Volterra級數的離散形式為
y(u)=h0+∑∞n=1[∑m-1l1=0∑m-1l2=0…∑m-1lj=0hn(l1,l2,…,ln)∏ni=1u(t-li)] (1)
其中:m是記憶長度,t為時間。設系統輸入向量為u=(u1=u(t),…,ui=u(t-(i-1)),…, um=u(t-m+1))。設計算Volterra級數核到p階。定義映射
чi(u)=(s︱s=ui11ui22ui33…uimm),i=i1+i2+…+im,
0≤i1,i2,…,im≤i(2)
令ч=(ч1,ч2,…,чi,…,чp),如果按元素寫為ч=(η1,η2,…,ηi,…,ηq)。不同的非線性系統對應惟一的一組Volterra核向量(核向量統一用對稱核向量表示)(h0,h1,h2,h3,…,hn),令H=(h1,h2,h3,…,hn)。現在Volterra級數就可以被表示為線性形式 h0+(ч,H)。
12理論創新
121Volterra級數在希爾伯特空間中的線性表示
現在證明Volterra級數可以表示為輸出響應向量在希爾伯特空間中的子空間的投影。
設所有可以用Volterra級數建模的非線性時不變動態系統的總體為И, 空間И可以表示為
y(u)=(ч,H)=h0+∑qi=1hiηi(u)(3)
這里的hi∈R,q可以是無窮大,即無窮級數。
在空間И中定義內積為
(y1(u),y2(u))=((h0+∑qi=1hiηi),(h0+∑qi=1h′iηi))=h20+∑qi=1hih′i
(4)
線性空間И在建立內積后就是希爾伯特空間。
定義輸入向量的函數:
k(u,v)=1+∑qi=1ηi(u)ηi(v)(5)
函數k有兩個性質:
a)固定v,k(B,v)是希爾伯特空間И中的元素(B代表任意一個輸入向量)。
證明:
k(B,v)=1+∑qi=1ηi(B)ηi(v)=1+∑qi=1(ηi(v))ηi(B)
令(ηi(v))=hi,1=h0,上式變為k(B,v)=h0+∑qi=1hiηi(B)。對照式(3),k(B,v)∈И。
b)對希爾伯特空間И中的任一個元素y(B)=h0+∑qi=1hiηi(B),k(B,v)與其的內積為y在v處的值y(v)。
證明:
(k(B,v),y(B))=((1+∑qi=1(ηi(v))ηi(B)),(h0+∑qi=1hiηi(B))=h0+∑qi=1hiηi(v)=y(v)
(6)
在再生核希爾伯特空間理論[7]中,擁有上述兩個性質的希爾伯特空間的線性泛函k(B,v)就成為希爾伯特空間中的再生核。利用再生核希爾伯特空間理論[7],可以將非線性系統表示為希爾伯特空間中的元素。如果知道非線性系統的一些離散的輸入值和對應的輸出值,就可以重建這個系統,也就是用Volterra級數建模。
對于某組輸入值(u1,u2,…,uN),經過非線性系統后的觀察值為y=(y1,y2 ,…,yN)。
根據希爾伯特空間中的再生核的第二個性質(式(6)), y(u)=(k(B,u),y(B)。
現在要解出上式的y(B)來,就知道了對于任何輸入的響應y的值,也就求出了非線性系統的Volterra級數:
(k(B,u1),y(B)=y(u1)
(k(B,u2),y(B)=y(u2)
(k(B,uN),y(B)=y(uN)
根據線性空間的理論,待辨識的非線性系統對應于輸入(u1,u2 ,…,uN)的輸出值就是任意輸入信號的響應在k(B,u1),k(B,u2),…,k(B,uN)所張成的線性子空間中的投影[7]。根據再生核希爾伯特空間理論,非線性系統的Volterra級數表示y的最佳近似,可以用k(B,u1),k(B,u2),…,k(B,uN)的線性組合來表示。
y(B)=∑Nj=1qjk(B,uj)(7)
122各中間參量及Volterra級數的核的顯式表達式
將式(7)中的B分別再用ui∈(u1,u2,…,ui,…,uN)代換得
y(ui)=∑Nj=1qjk(ui,uj);i∈(1,…,N)(8)
令K=k11…k1N……kN1…kNN 。其中kij=k(ui,uj)。
寫成矩陣形式為y=KQ,從中解得Q=K-1y,上標“-1”表示矩陣的廣義逆。根據式(8)得
y(u)=∑Nj=1qjk(u,uj)=∑Nj=1qj(1+∑qi=1ηi(u)ηi(uj))=
∑Nj=1qj+∑qi=1(∑Nj=1qjηi(uj))ηi(u)(9)
將式(9)對比式(3)可以得到Volterra級數的核:
h0=∑Nj=1qj,hj=∑Nj=1qjηi(uj) (當i >0)
2具體計算步驟
給定一個待辨識系統做N次實驗,每次實驗有按時間序列輸入的m個值,當最后一個值輸入后,立刻觀察系統輸出值。ui=(u1,u2,…,us,…,um),對應的輸出分別為y1,y2,…,yi,…,yN,計算kij=k(ui,uj)=1+∑qi=1ηi(ui)ηi(uj),寫出矩陣K解出Q=K-1y。
Volterra級數核為h0=∑Nj=1qj,hi=∑Nj=1qjηi(uj)(當i>0)。
3仿真研究
31Volterra級數時域核的計算
考慮非線性模型的離散表示為
yt=31+sin(2.1ut+1.3ut-1+0.6ut-2)/(e-3(2.1ut+1.3ut-1+0.6ut-2)+2)
這是一個高度非線性模型,展開成Volterra級數為
1+0.2333ut+0.1444ut-1+0.0667ut-2
+0.4356ut2+0.5393utut-1+0.2489utut-2+0.1669ut-12
+0.1541ut-1ut-2+0.03556ut-22
-(0.8935u3+1.6593u2ut-1+0.7659u2ut-2+1.0272uut-12+0.9482uut-1ut-2+0.2188uut-22+0.2120ut-13+0.2935ut-12ut-2+0.1355ut-1ut-22+0.0208ut-23)
-(0.7502uut-1ut-22 +1.2371u4+3.0632u3ut-1+2.6256u2ut-1ut-2+1.6254uut-12ut-2+1.4138u3ut-2+2.8444u2ut-12+0.6059u2ut-22+1.1739uut-13+0.1154uut-23+0.3354ut-13ut-2+0.2322ut-12ut-22+0.0714ut-1ut-23+0.1817ut-14 +0.0082ut-24)+O(.)5
加在系統輸入的激勵信號是由MATLAB產生的均勻分布在(-0.15,0.15)的隨機信號,觀察輸出響應,所得數據為500組。用本文方法辨識出的Volterra級數的核向量為
(1 0.2339 0.1439 0.0662 0.4353 0.5398 0.2492 0.1671 0.1539 0.0355 -0.8931 -1.6595 -0.7638 -1.0275 -0.9479 -0.2181 -0.2124 -0.2938 -0.1342 -0.0219
-0.7509 -1.2365 -3.0615 -2.6321 -1.6258 -1.4142 -2.8427 -0.6075 -1.1746 -0.1159-0.3359 -0.2319 -0.0718
-0.1814 -0.0081)
為示例簡明起見只做到四階,實際上可以做到任意高階。
32辨識精度校驗
321時域輸出對比
用MATLAB模擬,加在系統輸入端的激勵為信號0.124(131/133)t sin t,采樣點數為120,得到系統的輸出響應以及辨識出來的模型上得到的輸出響應分別如圖1所示。可見除了信號中部和尾部的部分點外,大部分點處的逼近程度良好。辨識結果還能夠隨著計算更高階的Volterra級數核的進行而達到更高精度。理論上誤差是由計算機的舍入誤差和級數的截斷誤差造成的。
322一階廣義頻率響應對比
因系統輸出的直流分量對幅頻響應的影響是一個直流分量,對相頻響應沒有影響。忽略零階和高階Volterra核后,理想系統的頻率響應和辨識所得模型的頻率響應分別如圖2、3所示。
可以看出,在任意點上,振幅的誤差不超過1.2 dB,相角的誤差不超過4°。
323二階廣義頻率響應對比
為觀察方便,圖4~7中圖形在MATLAB的統一視點為azimuth=-20,elevation=20。為符合本刊規定要求,圖片縱向經過壓縮。
實際上,還可以畫出三階和更高階的廣義頻率相應,只因三階以上用三維圖表示不方便,本文略去。
4結束語
Volterra級數作為非線性系統建模的一套獨特和完備的理論,由于級數的項數隨著階次的增高和記憶長度的增加而成指數規模增多,計算的困難嚴重阻礙了其進一步應用。迄今為止,國內外的文獻中幾乎沒有將Volterra級數計算到四階的例子,用本方法能夠在不顯著增加運算量的前提下估計更高階的Volterra核,示例計算到四階。
對一個輸入信號是離散的,具有有限記憶長度的非線性動態系統,可以用本方法求出其高階Volterra級數核,由此求出的辨識模型理論上可以以任意精度逼近待辨識系統。本文研究證明:用輸出觀測向量在希爾伯特空間中某一子空間上的投影的方式求解Volterra級數的各階尤其是高階核的方法是可行的。
這種間接求Volterra級數核的方法的優點是:理論體系嚴密、可以根據辨識目的和應用環境的不同確定截取的Volterra級數的核的項數,從而根據實際需要對模型進行任意精度的逼近,能夠達到預先設定的任何精度。運算相對于迄今為止其他的求級數核的算法復雜程度低,尤其擅長于估計具有有限長記憶特征或存在記憶衰減的動態系統和強非線性系統。
限于篇幅,本文只是提出了新理論,在后續的工作中將會研究更加復雜的非線性過程,將會求解六階以上Volterra級數的核,另外會用適當的方法給出三階及更高階廣義頻率響應的圖示。Volterra級數作為具有堅實數學基礎和物理意義的非線性動態系統的建模方法,隨著算法的突破,一定會被大量應用于信號處理、模式識別、系統建模和自適應控制的工程實踐中。
參考文獻:
[1]NOWAK R D,Van VEEN B D. Random and pseudorandom inputs for Volterra system identification[J]. IEEE Trans on Signal Proces-sing, 1994,42(8):2124-2135.
[2]方洋旺, 焦李成.MIMO 非線性系統辨識: Volterra 級數法[J]. 電路與系統學報,2000,5(4):38-42.
[3]MATHEWS V J. Adaptive polynomial filters[J].IEEE Signal Proc Magazine,1991,8(3):10-26.
[4]GRIFFITH D W, ARCE G R. Partially decoupled Volterra filters:formulation and LMS adaptation[J].IEEE Trans on Signal Proces-sing, 1997,45(6):1485-1494.
[5]孔祥玉,韓崇昭,馬紅光,等.基于Volterra 級數的全解耦RLS自適應辨識算法[J].系統仿真學報,2004,16(4):807-809.
[6]LEE Y W, SCHETZEN M. Measurement of the Wiener kernels of a nonlinear system by crosscorrelation[J].International Journal of Control,1965,2(3):237-254.
[7]ARONSZAJIN N. Theory of reproducing kernels[J].Trans on the American Mathematical Society,1950,68(3):337-404.
[8]張華君,韓崇昭.一種Volterra級數簡化辨識方法及其應用研究[J].計算機仿真,2006,23(9):140-143.
[9]RUGHW J.Nonlinear system theory:the Volterra/Wiener approach[M]. London: Johns Hopkins University Press,1981:142-148.
[10] RUI F D, THOMAS A. A best approximation framework and implementation for simulatoin of large-scale non-linear systems[J]. IEEE Trans on Circuits and Systems,1980,27(11):124.
[11]RUI F D. A generalized Fock space framework for non-linear system and signal analysis[J].IEEE Trans on Circuits and Systems, 1983,30(9):637-647.
[12]HELMBERG G. Introduction to spectral theory in hilbert space[M].New York:American Elsevier,1969:125-187.
[13]SCHETZEN M. The Volterra and Wiener theories of nonlinear systems[M] . Hoboken: Wiley, 1980:189-205.