景紹學
(淮陰師范學院 物理與電子電氣工程學院,江蘇 淮安 223300)
近年來,非線性系統(tǒng)的辨識與控制引起了研究人員的廣泛關注.模塊化非線性系統(tǒng)是非線性系統(tǒng)的一種類型,因結(jié)構(gòu)簡單、實用性強,在非線性系統(tǒng)建模中獲得了廣泛應用[1].Wiener系統(tǒng)是一種典型的模塊化非線性系統(tǒng),由一個線性動態(tài)模塊后面串聯(lián)一個非線性靜態(tài)模塊組成的.目前,Wiener系統(tǒng)已經(jīng)成功應用于許多的工業(yè)過程建模中,如pH值中和過程、熱交換器、蒸餾塔等[2-3].
Wiener系統(tǒng)的辨識問題引起了系統(tǒng)辨識研究人員的持續(xù)關注,大量的研究成果得以發(fā)表.其中主要的算法包括:Pawlak等[4]在非參數(shù)辨識方面提出一種兩部算法,先用非線性最小二乘估計線性模塊的脈沖響應函數(shù),基于得到的線性參數(shù)用非參數(shù)核回歸得到非線性模塊的參數(shù)估計值;Bai[5]提出了一種非參數(shù)方法用于確定辨識線性環(huán)節(jié)參數(shù)所需的最少的非線性先驗知識;Michalkiewicz[6]基于改進的神經(jīng)網(wǎng)絡算法對一類Wiener系統(tǒng)進行了辨識;Tang等[7]先用一系列幅值不等的階躍信號激勵Wiener系統(tǒng)以獲得非線性模塊的結(jié)構(gòu)形式,然后基于粒子群優(yōu)化算法對一類Wiener系統(tǒng)的參數(shù)進行了辨識;Duwaish等[8]基于遺傳算法對一類Wiener系統(tǒng)的參數(shù)辨識問題進行了研究;對于時變參數(shù)Wiener系統(tǒng),Kobayashi等[9]在不需要估計中間變量的情況下,基于一種神經(jīng)網(wǎng)絡結(jié)構(gòu)對一類Wiener系統(tǒng)進行了辨識.Nordsjo等[10]運用EKF算法將Wiener系統(tǒng)的辨識問題轉(zhuǎn)換為帶不等約束的非線性優(yōu)化問題,并提出了一種CEKF算法;在Wiener系統(tǒng)的頻域辨識方面,Giri等[11]針對由非參數(shù)線性模塊和間隙非線性模塊構(gòu)成的Wiener系統(tǒng),運用正弦激勵提出了一種頻域辨識算法,可以得到參數(shù)的一致估計;非線性形式的表達方面,研究人員也提出了相應的方案,如:Totterman等[12]利用支持向量機回歸辨識非線性模塊,Kozek等[13]用最優(yōu)局部線性模型表達分段線性表示的非線性函數(shù),Voros[14]用多段線性表示非線性模塊;在收斂性分析方面,Hu等[15]給出了一種針對遞推辨識算法的強收斂性結(jié)果,Li等[16]分析了一種定點迭代算法的收斂性.
然而,Wiener系統(tǒng)的辨識問題遠未得到解決.目前存在的主要難點有:
1)在模型結(jié)構(gòu)已知的情況下,大多數(shù)辨識算法首先參數(shù)化系統(tǒng),然后利用傳統(tǒng)的算法辨識含有參數(shù)乘積項的過參數(shù)系統(tǒng),隨后再進行參數(shù)的分離工作以得到待辨識的單個參數(shù)向量.由于含參數(shù)乘積項,導致待辨識參數(shù)向量的維數(shù)較高,算法的計算量較大,辨識代價較高,實時性較差.
2)相當一部分算法在辨識時沒有考慮全噪聲的問題,或僅考慮了輸出噪聲的影響,對于工業(yè)上存在的過程噪聲下的Wiener系統(tǒng)的辨識問題,相關文獻較少.
為解決上述問題,本文提出一種含過程噪聲Wiener系統(tǒng)的遞推兩階段參數(shù)估計算法.主要內(nèi)容包括:用有限脈沖響應函數(shù)和一種多項式函數(shù)分別表達系統(tǒng)的動態(tài)環(huán)節(jié)的傳遞函數(shù)和靜態(tài)環(huán)節(jié)的反函數(shù);提出一種兩階段算法以消除過程噪聲的影響;基于遞推思想以減小算法的計算量.
考慮離散非線性Wiener系統(tǒng)(圖1).圖1中u(k)和y(k)分別為系統(tǒng)的輸入、輸出信號,v(k)為均值為零的高斯白噪聲信號.其中,噪聲v(k)作用在線性子模塊和非線性子模塊的中間,即該噪聲為過程噪聲.B(z-1)為線性動態(tài)子模塊的傳遞函數(shù),N(x2(k))為非線性靜態(tài)函數(shù).x1(k)和x2(k)為不可測中間變量.過程噪聲v(k)在較大程度上增加了辨識的難度.
圖1 過程噪聲擾動的Wiener系統(tǒng)
系統(tǒng)的線性動態(tài)傳遞函數(shù)可用一個階次為nb的有限脈沖響應函數(shù)表示,即:
(1)
其中
θb=[b1,b2,…,bnb]T∈nb×1,φb(k)=[u(k-1),u(k-2),…,u(k-nb)]T∈nb×1
(2)
為了描述連續(xù)非線性靜態(tài)函數(shù),多項式函數(shù)被廣泛采用.圖1中非線性函數(shù)N(x2(k))的反函數(shù)可用如下的階次為nβ的多項式逼近:
(3)
其中
θβ=[β1,β2,…,βnβ]T∈nβ×1,φβ(k)=[y(k),y2(k),…,ynβ(k)]T∈nβ×1
(4)
對于過程噪聲擾動的Wiener系統(tǒng),考慮式(1),有
(5)
(6)
(7)
(8)
不失一般性,令式(8)中β1=1,由式(7)和(8)得
(9)
其中
(10)
(11)
定義并最小化如下的準則函數(shù)
(12)
(13)
將式(12)改寫成二次型的形式
(14)
其中
(15)
(16)
對于式(16)給出的參數(shù)估計值
(17)
由于式(11)和式(15)中的信息向量φ(k)中包含了受噪聲v(k)污染的系統(tǒng)輸出y(k),導致式(17)中的等式右邊第二項中Φ中包含噪聲項,因此式(16)給出的最小二乘估計是有偏估計.
(18)
為此,可采用輔助變量法[17].根據(jù)輔助變量的選取規(guī)則,選擇由上述最小二乘估計計算出的線性動態(tài)模塊的輸出估計值作為輔助變量.即:
(19)
(20)
(21)
于是,式(16)變?yōu)?/p>
(22)
其中
(23)
(24)
其中θ0表示參數(shù)的真實值.
證明在式(22)的兩邊同時取數(shù)學期望,當L→∞時
(25)
為減小計算量,推導算法的遞推形式.將式(22)改寫成
(26)
定義
(27)
由于
(28)
由式(26)可得
(29)
則
(30)
在式(30)兩邊同乘以P-1(k-1)
(31)
考慮到式(27)和(31)和,式(29)變?yōu)?/p>
(32)
令
(33)
式(32)可寫成
(34)
進一步把P(k)改成遞推形式,由式(28)
(35)
運用矩陣求逆公式,得
(36)
將式(36)代入式(33)得
(37)
綜合式(34),(36)和(37)得到基于輔助變量的參數(shù)估計遞推公式如下:
(38)
至此,所提估計算法的步驟歸納如下:
Step1:設置辨識初值
Step2:收集輸入、輸出數(shù)據(jù)u(k)和y(k);
Step6:令k=k+1,如果k
由于算法在參數(shù)估計時分Step3和Step7兩個階段遞推進行,因此所提的算法被稱為遞推兩階段估計算法(recursive 2-stage algorithm,R2S).與此相對應,兩個階段均采用一次完成算法的辨識算法被稱為一次完成兩階段算法(One-shot 2-stage algorithm,O2S).
所提算法的計算復雜度如表1所示.由于一般情況下n遠小于L,所以所提的遞推算法R2S的計算量遠小于一次完成算法O2S,仿真例的運行時間也證實了該結(jié)論.
表1 R2S和O2S算法比較
考慮圖1所示的Wiener系統(tǒng),可得:
(39)
其中,輸入幅值在[1,2]之間且服從均勻分布,噪聲為零均值高斯白噪聲.
所提算法R2S對算例的辨識結(jié)果如表2所示,參數(shù)估計誤差隨數(shù)據(jù)長度變化情況如圖3所示,其中噪聲方差為0.012.從表2和圖3中可以看出,隨著辨識的進行,估計誤差逐漸減小并趨于穩(wěn)定,當數(shù)據(jù)長度為3 000時,估計誤差為1.77%,表明所提算法具有較高的辨識精度.
表2 R2S算法辨識結(jié)果
作為比較,O2S算法的參數(shù)估計誤差如表3所示.不難看出,在數(shù)據(jù)長度和噪聲水平相同的情況下,遞推算法和一次完成算法的估計誤差相差較小,說明兩種算法的精度基本一致,而所提遞推算法的計算量遠小于傳統(tǒng)O2S算法.
表3 不同噪聲水平下R2S和O2S估計誤差
為了顯示所提算法的優(yōu)越性,用單階段RLS算法對仿真例進行了辨識,參數(shù)估計誤差如圖2中虛線所示,圖中實線為R2S算法的估計誤差曲線.對比兩條曲線不難看出,在同等條件下,所提算法的估計誤差要遠小于對比的RLS算法,印證了單階段RLS算法給出的參數(shù)是有偏的.
圖2 R2S與RLS算法估計誤差 圖3 不同噪聲水平下R2S算法估計誤差
運用所提算法,在不同噪聲水平下對所給仿真例進行了辨識,圖3顯示了所提算法在不同噪聲水平下的估計誤差曲線.
從圖3中可以看出:
1)隨著辨識數(shù)據(jù)的增加,3種噪聲水平下估計誤差均有下降,表明不同噪聲水平下估計誤差均隨辨識數(shù)據(jù)的長度的增長而減??;
2)在辨識的初始階段,3條曲線參數(shù)估計值均出現(xiàn)了較大的波動,隨著辨識的進行,參數(shù)估計誤差逐漸穩(wěn)定,表明所提算法能給出較穩(wěn)定的參數(shù)估計值;
3)隨著噪聲水平的提高,曲線波動的幅度變大,表明噪聲對辨識的影響在增加,并且最終的估計誤差也在變大,說明噪聲水平的升高導致辨識精度變差,估計誤差與噪聲水平呈正相關.
為了辨識一類過程噪聲擾動的Wiener系統(tǒng)的參數(shù),在用FIR函數(shù)和多項式分別逼近待辨識Wiener的線性動態(tài)傳遞函數(shù)和非線性反函數(shù)的基礎上,提出了一種遞推兩階段參數(shù)估計算法.在參數(shù)化系統(tǒng)的基礎上,分別使用最小二乘算法和輔助變量法進行參數(shù)辨識,得到參數(shù)的無偏估計.在進行參數(shù)估計時,為了減小算法的計算量,兩個階段均采用了遞推算法.數(shù)值仿真表明所提算法是有效的.