張 燕 申 森
(河北工業(yè)大學(xué)控制科學(xué)與工程學(xué)院,天津 300130)
快速正交搜索(Fast Orthogonal Search,F(xiàn)OS)算法能夠最大限度地減小估算量相對(duì)于目標(biāo)數(shù)據(jù)的均方誤差[1]。與神經(jīng)網(wǎng)絡(luò)相比,F(xiàn)OS算法不是依靠耗時(shí)的迭代實(shí)現(xiàn)最小化,而是直接在一次迭代中就選擇出合適的候選函數(shù),并且計(jì)算出相應(yīng)的系數(shù)。該算法的實(shí)現(xiàn)是在所有的候選函數(shù)中選擇基礎(chǔ)函數(shù),能夠使均方誤差的減小量最大的候選函數(shù)被確定為合適的基礎(chǔ)函數(shù),并從候選函數(shù)中移除;在剩余的候選函數(shù)中重復(fù)上述選擇過(guò)程,直到相應(yīng)的停止條件滿足時(shí)結(jié)束選擇[2]。與普通的最小二乘法相比,F(xiàn)OS算法的優(yōu)勢(shì)是能夠用更少的模型項(xiàng)建立一個(gè)精確的模型,模型項(xiàng)減少的同時(shí)也減小了噪聲的干擾,從而使系統(tǒng)估算更為準(zhǔn)確。目前,F(xiàn)OS算法已經(jīng)有了很多的實(shí)際應(yīng)用,包括遞歸濾波去除圖像中的高斯噪聲和脈沖噪聲,語(yǔ)音信號(hào)的壓縮,磁共振成像和正電子發(fā)射斷層掃描,以及非線性系統(tǒng)的控制和基因的識(shí)別及其對(duì)治療的反應(yīng)的預(yù)測(cè)等[3]。
筆者從非線性預(yù)測(cè)控制的角度出發(fā),利用FOS算法對(duì)非線性系統(tǒng)進(jìn)行辨識(shí),利用辨識(shí)模型建立預(yù)測(cè)控制器,實(shí)現(xiàn)基于FOS算法的預(yù)測(cè)控制。
一個(gè)非線性系統(tǒng)可以表示為:
y(k)=F[y(k-1),…,y(k-N),u(k-1),…,
u(k-L)]+e(k)
(1)
式中e(k)——系統(tǒng)誤差,數(shù)據(jù)記錄的時(shí)間長(zhǎng)度n=0,…,N;
F[·]——形式未知的連續(xù)非線性函數(shù);
N、L——輸入和輸出的階次;
y(k)——系統(tǒng)的輸出。
在FOS算法中,式(1)可以進(jìn)一步改寫(xiě)為:
Pm(k)=y(k-n1),…,y(k-ni),u(k-l1),…,
u(k-lj)
(2)
i≥0,1≤n1≤N,…,1≤ni≤N
j≥0,1≤l1≤L,…,1≤li≤L
式中am——Pm(k)的權(quán)值系數(shù)。
此時(shí),系統(tǒng)的均方誤差mse可以表示為:
上式上方的短橫線表示數(shù)據(jù)記錄在時(shí)間長(zhǎng)度的平均值,該算法在所有的候選函數(shù)Pm(k)中進(jìn)行搜索,選擇對(duì)均方誤差貢獻(xiàn)最大的候選函數(shù)作為模型項(xiàng),添加到構(gòu)建的辨識(shí)模型當(dāng)中。
為了實(shí)現(xiàn)這一搜索過(guò)程,首先要得到未知結(jié)構(gòu)的非線性系統(tǒng)模型,利用格拉姆·施密特正交方法[4],可以將式(2)改寫(xiě)為:
其中g(shù)m是wm(k)的權(quán)值,e(k)為誤差,wm(k)是利用格拉姆·施密特正交方法將非正交函數(shù)Pm(k)正交化后得到的兩兩正交的函數(shù)序列。其計(jì)算過(guò)程具體如下:
(3)
其中正交系數(shù):
(4)
此時(shí)系統(tǒng)的均方誤差可以改寫(xiě)為:
(5)
正交函數(shù)的權(quán)值系數(shù)gm可以表示成:
這種正交方法的好處是它不需要輸入上有自動(dòng)校正功能,在數(shù)據(jù)記錄的時(shí)間內(nèi)沒(méi)有引入任何誤差。然而,正交函數(shù)的計(jì)算非常耗費(fèi)時(shí)間,而且需要內(nèi)存有相當(dāng)大的數(shù)據(jù)存儲(chǔ)空間[5]。
為了避免上述問(wèn)題,F(xiàn)OS算法采用隱式正交法,不用單獨(dú)計(jì)算出每一個(gè)正交函數(shù)wm(k),只需計(jì)算出正交系數(shù)αmr。
因此,不用計(jì)算基礎(chǔ)正交函數(shù)wr(k)就能得出式(4)的分子,類(lèi)比式(3)可得:
(6)
同樣,式(4)的分母可以表示成:
(7)
這樣,αmr的值就可以通過(guò)式(6)、(7)計(jì)算出來(lái)。同理,式(5)的分子、分母也可以改寫(xiě)為如下形式:
(8)
(9)
從而gm就可以由式(8)、(9)計(jì)算出來(lái)。
根據(jù)式(5)可知,在增加第m個(gè)函數(shù)wm(k)后,均方誤差mse的減小量可以表示為:
因此增加一個(gè)模型項(xiàng)后,剩余的均方誤差mse可以表示成:
msem=msem-1-Qm
這就使得每一個(gè)非正交候選函數(shù)Pm(k)對(duì)系統(tǒng)均方誤差的影響清楚地展現(xiàn)出來(lái)。在所有候選函數(shù)中,對(duì)應(yīng)產(chǎn)生減小量Qm最大的一個(gè)被選為模型項(xiàng),并從候選函數(shù)中去除。接下來(lái)算法繼續(xù)在剩余的候選函數(shù)中重復(fù)上述搜索過(guò)程,直到停止搜索的條件滿足時(shí)結(jié)束搜索。
停止的條件主要有:當(dāng)系統(tǒng)的剩余誤差達(dá)到足夠?。灰欢〝?shù)量的模型項(xiàng)已經(jīng)被選出;剩余的候選函數(shù)不能使系統(tǒng)的誤差產(chǎn)生足夠的減小量[6]。
當(dāng)搜索完成時(shí),利用αmr和gm可以計(jì)算出被選出的模型項(xiàng)Pm(k)的系數(shù)am,即:
通過(guò)上面的討論,F(xiàn)OS算法將會(huì)不斷搜索適合的候選函數(shù)直到一些預(yù)定義的停止條件得到滿足為止。FOS算法的步驟為:
a. 將非正交候選函數(shù)序列Pm(k)經(jīng)過(guò)隱式正交化后得到正交函數(shù)序列wm(k);
b. 計(jì)算正交函數(shù)wm(k)的權(quán)值系數(shù)gm,計(jì)算每一個(gè)候選函數(shù)相對(duì)于均方誤差的減小量Qm,選擇Qm最大的候選函數(shù)作為模型項(xiàng);
c. 重復(fù)步驟a、b,直到任何一個(gè)終止條件得到滿足為止;
d. 由得出的gm和αmr遞歸計(jì)算am,完成對(duì)非線性系統(tǒng)辨識(shí)模型的構(gòu)建。
一個(gè)非線性系統(tǒng)可以表示為:
y(k)=F[y(k-1),…,y(k-N),u(k-1),…,u(k-L)]
式中F[·]——連續(xù)非線性函數(shù)[7];
N、L——輸入和輸出的階次。
函數(shù)模型通常是未知的,經(jīng)過(guò)FOS算法進(jìn)行辨識(shí),可以得到一個(gè)新模型:
…+blu(k-l)
y(k+1)=a1y(k)+…+any(k-n+1)+b1u(k)+…+blu(k-l+1)
用yr(k+1)代替y(k+1),yr(k+1)為設(shè)定值的柔化序列,以期望辨識(shí)系統(tǒng)的輸出逼近設(shè)定值,則上式可以改寫(xiě)成:
yr(k+1)=a1y(k)+…+any(k-n+1)+b1u(k)+…+blu(k-l+1)
可以得出:
引入性能指標(biāo)[9]為:
其中λ為控制加權(quán)因子。對(duì)性能指標(biāo)進(jìn)行滾動(dòng)優(yōu)化[10],每次優(yōu)化計(jì)算出u(k),并將u(k)作為控制信號(hào)輸入,計(jì)算出實(shí)際的輸出y(k+1)。
選取非線性系統(tǒng)模型:
0.6u(k-1)+0.5u(k-2)
采用FOS算法進(jìn)行訓(xùn)練時(shí),模型項(xiàng)數(shù)量M=5,設(shè)定的輸出序列為方波信號(hào),柔化因子α=0.4。辨識(shí)結(jié)果如圖1所示。
圖1 系統(tǒng)辨識(shí)效果
利用上述辨識(shí)模型建立預(yù)測(cè)控制器,對(duì)非線性系統(tǒng)進(jìn)行預(yù)測(cè)控制,同時(shí)與廣義預(yù)測(cè)控制效果進(jìn)行對(duì)比,結(jié)果如圖2所示。
圖2 預(yù)測(cè)效果
采用FOS算法對(duì)非線性系統(tǒng)進(jìn)行辨識(shí),從辨識(shí)的結(jié)果可以看出,F(xiàn)OS算法得出的估算模型對(duì)非線性系統(tǒng)有良好的跟隨效果。利用估算模型建立預(yù)測(cè)模型,對(duì)系統(tǒng)進(jìn)行閉環(huán)優(yōu)化控制。通過(guò)對(duì)實(shí)際的非線性模型進(jìn)行仿真實(shí)驗(yàn),驗(yàn)證了所提方法的可行性和有效性。