宋 櫻
(江蘇大學電氣信息工程學院 鎮江 212013)
Wiener模型是一種模塊化的非線性系統,其中線性時不變動態子系統與非線性無記憶塊串聯。在實際工程應用中一大類非線性系統都可以通過具有任意高精度的Wiener模型近似得到,因此Wiener模型廣泛應用于不同的科學和工程領域[1]。
許多工業過程本質上是非線性的,為了實現所需的系統性能,需要采用基于非線性過程模型的高級控制方法。關于Wiener系統的辨識問題已經研究了數十年,并演化出許多辨識方法[2]。例如,基于相關性分析[3]、非線性優化等方法[4],對于Wiener模型非線性模塊或其逆函數的建模通常采用分段線性函數[5]、多項式[6]、最小二乘支持向量機[7]表示,而線性部分大多采用有限脈沖響應模型[8]、狀態空間模型[9]或廣義正交基函數[10]。但是當系統的回歸量與系統干擾有關時,其參數估計效果不好。且大多數研究是針對無噪聲過程[11]或帶有輸出噪聲的Wiener模型[12],對于帶有中間噪聲的Wiener模型研究內容較少,而在實際過程中,中間噪聲會隨著非線性模塊的增益對系統造成很大的干擾,且這部分噪聲難以消除。因此為了得到一致的參數估計,本文采用CSA-RLS算法對Wiener模型的結構和參數進行辨識。
假設非線性函數f(z2)連續、單調且存在反函數;線性部分的輸出擾動{ε(k)}為一個均值為0,方差為的高斯白噪聲,并且與輸入信號u(k)無關;

圖1 含中間噪聲的Wiener系統
用高階ARX模型來近似Wiener模型的線性部分:

又因為非線性部分可逆,因此z2(k)=f-1(y(k)),式(1)則可以表示為

那么定義模型參數估計損失函數為

對于Wiener模型采用三次樣條函數對非線性模塊反函數進行擬合:

其中,y2,y3,…,ynγ-1是內部聚點,且各聚點滿足y1=ymin 令An(q)=1,則對于線性模塊,用有限脈沖響應逼近其傳遞函數 根據式(5)和式(6)可以得到 那么Wiener模型的參數化表示為 則Wiener模型的參數辨識問題就轉換為利用觀測到的參數集{u(k),y(k)}估計參數θ。 為了獲得一致的參數估計,文章采用CSA-RLS算法參數Wiener模型的結構和參數,待估參數的表達式可以表示為 其 中:yN=[y(1)y(2) …y(N)]T,φN=[φ(1)φ(2) …φ(N)]T,則參數表達式可進一步轉化為θ=(φTNφN)-1φTNyN,從上述表達式可知,最小二乘算法要進行逆運算。在解決多參數高維度問題時,這將大大增加運算量,而利用RLS算法將減少求解過程的計算量,提高算法運行速度同時也確保參數的一致性。 RLS算法在迭代過程中不斷地獲得新的數據,并對前一時刻的參數估計值進行修正[13]。隨著觀測數據增加,參數估計值逐漸收斂于參數真值。k時刻的參數估計值公式如下所示: 考慮到φk=,yk=,結合式(9)和式(10),則 令P(k)=(φTkφk)-1,則P(k-1)=(φTk-1φk-1)-1,P(k)=(P-1(k-1)+φT(k)φ(k))-1,根 據 矩 陣 求 逆 引理[14],可得RLS算法公式為 式中,K(k),θ(k),P(k)分別為增益矩陣、參數向量和逆矩陣。 噪聲方差用下式估計: Wiener模型的中間變量由與噪聲干擾不便于測量得到,所以采用傳統的VR方法不能準確確定線性模塊的模型階次[15]。因此采用OVR的方法,具體實現過程如下: 令nb=9,根據式(14)計算中間變量z1(k)的估計值z?1(k): 其中 △z1(k)=(k)-?(k),同 理 計 算(nb)=D({Δz2(k)}),則根據式(16)確定模型階次。 非線性模塊模型階次的準確與否直接影響了系統模型的精度與計算復雜度,甚至導致過擬合問題,為了確保模型階次的準確性本文采用最終輸出誤差準則(FOE)確定模型階次[16]。 其中,Vεz2o e為使用估計數據的輸出誤差(或者仿真誤差)準則,N為估計數據的樣本容量,d為模型參數個數。因子一般用來修正過匹配的影響。 考慮如下帶中間噪聲的Wiener系統 其中輸入信號為[0,0.3]之間均勻分布的隨機數,ε(k)是均值為0,方差為0.02的高斯白噪聲。數據樣本容量為800。 1)線性模塊模型階次確定 從圖2中可以看出,采用的OVR定階方法確定的模型階次在圖形的拐點處,即nb=3,符合實際模型階次變化,而采用的VR方法確定的nb=4,并不是模型的實際階次,由此說明采用OVR方法確定模型階次更有效。 2)非線性模塊模型階次確定 在均值為0,方差分別為0.012,0.022,0.032的高斯白噪聲下運用最終輸出誤差準則確定非線性模塊模型階次,從圖3可知,當nγ=7時,FOE值最小。但同時也能發現,隨著噪聲水平的增加,FOE值也會有所增加,但總體而言,采用FOE方法定階的效果是令人滿意的。由此可以確定非線性模塊階次nγ=7,線性模塊階次nb=3。 線性部分估計誤差通過AR E確定為 衡量非線性逼近誤差采用M S E,綜合誤差采用CE確定: 圖2 線性模塊定階圖 圖3 非線性模塊定階圖 圖4 待估參數變化圖 表1 CSA-LS和CSA-RLS的辨識結果比較 從圖4中可知,當采用CSA-RLS算法辨識參數線性模塊參數時,b1,b2,b3分別在115,79,83處收斂,而采用的CSA-LS算法辨識結果分別在137,188,125處收斂;對于參數b2,b3,CSA-LS算法并沒有收斂到其實際值,由此可見CSA-RLS算法在辨識參數的收斂性和準確性上要比CSA-LS算法好。表1也可進一步地看出,CSA-RLS算法辨識參數的準確性比CSA-LS算法辨識結果更好。由此說明,CSA-RLS算法能有效地提高算法的精確度。 對于帶中間噪聲的Wiener模型辨識問題,文中采用了三次樣條逼近模型的非線性結構,采用有限脈沖響應逼近模型的線性部分,其參數辨識問題則利用RLS算法進行辨識。模型的階次確定分別采用OVR和FOE方法定階。算法經數值仿真證明,CSA-RLS算法在辨識問題的準確度和收斂性上表現效果均好于CSA-LS算法。




3 CSA-RLS算法





4 模型階次選擇
4.1 線性模塊階次確定



4.2 非線性模塊階次確定

5 數值仿真







6 結語