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