仲國民 俞其樂 汪黎明
(浙江工業(yè)大學信息工程學院 杭州 310023)
時變參數(shù)估計問題在系統(tǒng)辨識領域一直受到人們關注。實際場合中廣泛存在時變性和非線性,因此時變非線性系統(tǒng)的辨識問題逐漸成為系統(tǒng)辨識領域較為熱門的研究課題之一[1-3]。
線性系統(tǒng)的模型結構可以用統(tǒng)一的模型描述,如差分方程、狀態(tài)空間模型等[4],非線性系統(tǒng)結構復雜,難以直接進行參數(shù)估計?;趬K結構的非線性模型在諸如化學過程和生物生理系統(tǒng)[3]、熱反應和化學反應[5]、控制系統(tǒng)[6]和生物信息學[7]中被廣泛采用。本文研究的Hammerstein-Wiener 系統(tǒng)[1]作為塊結構非線性系統(tǒng)中最為復雜的一種,該模型由輸入靜態(tài)非線性環(huán)節(jié)、動態(tài)線性子系統(tǒng)以及輸出靜態(tài)非線性環(huán)節(jié)串聯(lián)構成,通常用來描述在輸入輸出部分存在非線性元素的系統(tǒng)?,F(xiàn)有的塊結構Hammerstein-Wiener 非線性系統(tǒng)參數(shù)估計方法主要有:最優(yōu)兩階段辨識法[1]、盲辨識法[2]、迭代辨識法[8]、偏差補償最小二乘法[9]、遞推辨識[10]和梯度或最小二乘迭代辨識法[11]等。文獻[12]借助線性變權粒子群算法對Hammerstein-Wiener 時滯系統(tǒng)進行辨識,利用粒子群優(yōu)化和迭代辨識技術實現(xiàn)同步控制所有參數(shù)和未知時延的估計。文獻[13]突破了Hammerstein-Wiener 非線性系統(tǒng)元素參數(shù)化的限制,線性和非線性塊參數(shù)估計可以在一個階段進行。文獻[14]針對Wiener-Hammerstein 系統(tǒng)辨識問題,提出了2 種估計分別恢復靜態(tài)非線性特性和線性動態(tài)塊。文獻[15]使用非參數(shù)高斯過程對結構化非線性系統(tǒng)進行建模,并驗證了所提出的非參數(shù)建模方法可以有效地建模和辨識。
針對特定模型的非線性系統(tǒng),需要將現(xiàn)有的先驗信息,特別是結構先驗知識納入到算法中,通常會采用特定的辨識算法?,F(xiàn)有的遞推最小二乘法被證明不具備時變參數(shù)的跟蹤能力,本文提出的迭代學習辨識方法,其動機來自迭代學習控制的基本思想[16]。對于遞推算法而言,假設時變參數(shù)的變化規(guī)律未知,其估計就難以獲得一致收斂性。針對重復運行的系統(tǒng),無論其時變參數(shù)隨時間如何變化,沿任意時刻重復軸對應的參數(shù)緩變,考慮將時間軸上的遞推思想運用于重復軸的學習,構建沿重復軸的“遞推”算法[17]。針對文獻[18]中所給有限區(qū)間上重復運行的Hammerstein-Wiener 非線性時變系統(tǒng),非線性輸出部分是可逆的,將該部分反函數(shù)通過多項式展開以構造回歸模型。給出能夠衡量重復估計性能的指標函數(shù),推導該系統(tǒng)帶遺忘因子迭代學習梯度算法(iterative learning gradient algorithm with forgetting factor for Hammerstein-Wiener systems,HW-FILG)和帶遺忘因子迭代學習最小二乘算法(iterative learning least squares algorithm with forgetting factor for Hammerstein-Wiener systems,HWFILLS)。仿真結果顯示在重復持續(xù)激勵條件下,2種算法能夠獲得時變參數(shù)的完全估計,驗證了該算法的有效性。
考慮如下時變Hammerstein-Wiener 非線性系統(tǒng),如圖1 所示,其線性動態(tài)子系統(tǒng)描述如下。
圖1 Hammerstein-Wiener 模型
uk(t)和yk(t) 是系統(tǒng)t時刻的輸入和輸出,其中非線性函數(shù)f-1和g可以用不同的函數(shù)結構來建模,如神經(jīng)網(wǎng)絡結構、多項式函數(shù)、飽和函數(shù)、死區(qū)函數(shù)等。文中把其看作是已知基函數(shù)的多項式線性組合,vk(t)是t時刻零均值、方差為σ2的白噪聲序列,假設非線性函數(shù)f-1和g可逆。
定義參數(shù)矢量:
信息矢量為
從而,式(1)可以獲得回歸形式如下:
式(2)回歸模型系統(tǒng)參數(shù)存在耦合現(xiàn)象,獨立參數(shù)的數(shù)量大于未知參數(shù)的數(shù)量,無法辨識得到唯一的結果。為了確定唯一性,需對其系數(shù)進行歸一化處理,通過辨識首先得到aik(t)d1k(t) 和bik(t)c1k(t),取cik(t) 的第1 項c1k(t)=1,dik(t) 的第1 項d1k(t)=1,對其做除法可以得到aik(t) 和bik(t),再對其做除法和算術平均處理。
可依次得到獨立的參數(shù)變量[19-20],從而獲得唯一確定的估計參數(shù)θlk。
系統(tǒng)在給定的作業(yè)區(qū)間上重復運行時,記錄或量測由第1 次到第k次運行時的輸入輸出數(shù){yi(t),ui(t),φi(t),0 ≤t≤N,i=1,2,…,k},對于固定的時刻,其中ui(t) 和yi(t) 為第i次運行的系統(tǒng)輸入和輸出,φi(t) 是第i次運行的信息向量,對于某一固定時刻,記
第k次重復運行后,系統(tǒng)所有運行特性的矩陣形式可表示為
為獲得系統(tǒng)時變參數(shù)的估計,首先介紹帶遺忘因子的迭代學習梯度算法,如算法1 所示。引入遺忘因子λ,λ∈(0,1],定義:
基于負梯度搜索算法,可沿輸出殘差平方的負梯度方向修正,從而得到迭代學習梯度算法的參數(shù)更新率。
其中r0(t)=1,式(6)及式(7)便構成了該模型帶遺忘因子迭代學習梯度算法。當λ=1 時,該算法簡化為一般的迭代學習梯度算法。
遞推最小二乘算法解決了最小二乘法中數(shù)據(jù)量較大、內(nèi)存占用多等問題。同時,在此基礎上引入遺忘因子增強新數(shù)據(jù)權重,防止數(shù)據(jù)飽和,對于時變系統(tǒng)可以獲得更好的參數(shù)跟蹤效果。下面介紹沿重復軸的帶遺忘因子迭代學習最小二乘算法[21],如算法2所示。引入遺忘因子λ,λ∈(0,1],定義:
式(15)及式(23)構成該模型帶遺忘因子迭代學習最小二乘算法。其中,當λ=1 時,該算法簡化為普通的迭代學習最小二乘算法。
本節(jié)將完成具體的算例仿真,考慮如下時變Hammerstein 模型:
分別采用帶遺忘因子迭代學習梯度算法和帶遺忘因子迭代學習最小二乘算法對該模型進行參數(shù)估計,仿真中數(shù)據(jù)長度t=1000,迭代次數(shù)取k=500。為了說明本文所提學習算法的有效性,引入現(xiàn)有帶遺忘因子梯度算法和帶遺忘因子遞推最小二乘算法對該模型進行參數(shù)估計,仿真中數(shù)據(jù)長度t=500。仿真時,vk(t) 采用均值為零、方差σ2=0.12的隨機白噪聲序列,對應的信噪比為7.66%,輸入uk(t)采用零均值、不相關可測隨機信號序列。輸入輸出部分非線性函數(shù)取。為避免參數(shù)耦合問題,線性部分參數(shù):
取λ=0.8,初始化θ0=[0,0,0,0,0,0,0]T,P0(t)=I×106,r0(t)=1。對于固定的第k次迭代,選取在所有時刻t上,跟蹤誤差絕對值最大的時刻t1和參數(shù)誤差絕對值最大的時刻t2,t1和t2時刻對應的值ek(t1) 和δk(t2) 分別作為該次迭代的跟蹤誤差和參數(shù)誤差。定義參數(shù)誤差δk(t) 和跟蹤誤差ek(t):
由于三維曲面上難以直觀表達采用迭代學習算法所獲得的參數(shù)估計情況,以迭代次數(shù)k=500、時間軸t=100 時刻前的數(shù)據(jù),作為沿時間軸快變參數(shù)估計結果,以及t=1000、迭代次數(shù)k=100 前的數(shù)據(jù),作為沿迭代軸緩變參數(shù)估計的結果來驗證算法的性能。通過估計得到的參數(shù),分析算法對該模型時變參數(shù)沿時間軸和迭代軸的跟蹤效果。如圖2~7所示。
圖2 帶遺忘因子梯度算法跟蹤誤差
圖3 迭代學習梯度算法跟蹤誤差
圖4 帶遺忘因子迭代學習梯度算法跟蹤誤差
圖5 帶遺忘因子遞推最小二乘算法跟蹤誤差
圖6 迭代學習最小二乘算法跟蹤誤差
圖7 帶遺忘因子迭代學習最小二乘算法跟蹤誤差
仿真結果顯示,帶遺忘因子梯度算法和帶遺忘因子遞推最小二乘算法無法實現(xiàn)對該模型時變參數(shù)的完全估計;而迭代學習梯度算法和迭代學習最小二乘算法均可較好地實現(xiàn)對該模型時變參數(shù)的跟蹤。引入遺忘因子進一步改善了迭代軸時變參數(shù)的辨識效果。如圖8~15 所示。
圖8 帶遺忘因子梯度算法參數(shù)誤差
圖9 迭代學習梯度算法參數(shù)誤差
圖10 帶遺忘因子迭代學習梯度算法參數(shù)誤差
圖11 帶遺忘因子遞推最小二乘算法參數(shù)誤差
圖12 迭代學習最小二乘算法參數(shù)誤差
圖13 帶遺忘因子迭代學習最小二乘算法參數(shù)誤差
圖14 采用帶遺忘因子迭代學習最小二乘算法估計沿時間軸快變參數(shù)的結果
針對時變Hammerstein-Wiener 模型的辨識,本研究采用了沿迭代軸的重復學習算法,該算法可用于解決時變系統(tǒng)的參數(shù)估計問題。針對文中給定的時變Hammerstein-Wiener 模型,假設輸出非線性部分可逆,通過算例仿真證明系統(tǒng)在重復持續(xù)激勵的條件下,傳統(tǒng)的沿時間軸遞推算法估計該模型時變參數(shù)時誤差不收斂,無法獲得參數(shù)的完全估計;迭代學習梯度算法和迭代學習最小二乘算法可以實現(xiàn)對時變參數(shù)的估計,同時引入遺忘因子可以有效解決沿迭代軸發(fā)生緩變參數(shù)的估計問題。