張 燕 申 森
(河北工業大學控制科學與工程學院,天津 300130)
快速正交搜索(Fast Orthogonal Search,FOS)算法能夠最大限度地減小估算量相對于目標數據的均方誤差[1]。與神經網絡相比,FOS算法不是依靠耗時的迭代實現最小化,而是直接在一次迭代中就選擇出合適的候選函數,并且計算出相應的系數。該算法的實現是在所有的候選函數中選擇基礎函數,能夠使均方誤差的減小量最大的候選函數被確定為合適的基礎函數,并從候選函數中移除;在剩余的候選函數中重復上述選擇過程,直到相應的停止條件滿足時結束選擇[2]。與普通的最小二乘法相比,FOS算法的優勢是能夠用更少的模型項建立一個精確的模型,模型項減少的同時也減小了噪聲的干擾,從而使系統估算更為準確。目前,FOS算法已經有了很多的實際應用,包括遞歸濾波去除圖像中的高斯噪聲和脈沖噪聲,語音信號的壓縮,磁共振成像和正電子發射斷層掃描,以及非線性系統的控制和基因的識別及其對治療的反應的預測等[3]。
筆者從非線性預測控制的角度出發,利用FOS算法對非線性系統進行辨識,利用辨識模型建立預測控制器,實現基于FOS算法的預測控制。
一個非線性系統可以表示為:
y(k)=F[y(k-1),…,y(k-N),u(k-1),…,
u(k-L)]+e(k)
(1)
式中e(k)——系統誤差,數據記錄的時間長度n=0,…,N;
F[·]——形式未知的連續非線性函數;
N、L——輸入和輸出的階次;
y(k)——系統的輸出。
在FOS算法中,式(1)可以進一步改寫為:
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)的權值系數。
此時,系統的均方誤差mse可以表示為:
上式上方的短橫線表示數據記錄在時間長度的平均值,該算法在所有的候選函數Pm(k)中進行搜索,選擇對均方誤差貢獻最大的候選函數作為模型項,添加到構建的辨識模型當中。
為了實現這一搜索過程,首先要得到未知結構的非線性系統模型,利用格拉姆·施密特正交方法[4],可以將式(2)改寫為:
其中gm是wm(k)的權值,e(k)為誤差,wm(k)是利用格拉姆·施密特正交方法將非正交函數Pm(k)正交化后得到的兩兩正交的函數序列。其計算過程具體如下:
(3)
其中正交系數:
(4)
此時系統的均方誤差可以改寫為:

(5)
正交函數的權值系數gm可以表示成:
這種正交方法的好處是它不需要輸入上有自動校正功能,在數據記錄的時間內沒有引入任何誤差。然而,正交函數的計算非常耗費時間,而且需要內存有相當大的數據存儲空間[5]。
為了避免上述問題,FOS算法采用隱式正交法,不用單獨計算出每一個正交函數wm(k),只需計算出正交系數αmr。
因此,不用計算基礎正交函數wr(k)就能得出式(4)的分子,類比式(3)可得:
(6)
同樣,式(4)的分母可以表示成:
(7)
這樣,αmr的值就可以通過式(6)、(7)計算出來。同理,式(5)的分子、分母也可以改寫為如下形式:
(8)
(9)
從而gm就可以由式(8)、(9)計算出來。
根據式(5)可知,在增加第m個函數wm(k)后,均方誤差mse的減小量可以表示為:
因此增加一個模型項后,剩余的均方誤差mse可以表示成:
msem=msem-1-Qm
這就使得每一個非正交候選函數Pm(k)對系統均方誤差的影響清楚地展現出來。在所有候選函數中,對應產生減小量Qm最大的一個被選為模型項,并從候選函數中去除。接下來算法繼續在剩余的候選函數中重復上述搜索過程,直到停止搜索的條件滿足時結束搜索。
停止的條件主要有:當系統的剩余誤差達到足夠小;一定數量的模型項已經被選出;剩余的候選函數不能使系統的誤差產生足夠的減小量[6]。
當搜索完成時,利用αmr和gm可以計算出被選出的模型項Pm(k)的系數am,即:
通過上面的討論,FOS算法將會不斷搜索適合的候選函數直到一些預定義的停止條件得到滿足為止。FOS算法的步驟為:
a. 將非正交候選函數序列Pm(k)經過隱式正交化后得到正交函數序列wm(k);
b. 計算正交函數wm(k)的權值系數gm,計算每一個候選函數相對于均方誤差的減小量Qm,選擇Qm最大的候選函數作為模型項;
c. 重復步驟a、b,直到任何一個終止條件得到滿足為止;
d. 由得出的gm和αmr遞歸計算am,完成對非線性系統辨識模型的構建。
一個非線性系統可以表示為:
y(k)=F[y(k-1),…,y(k-N),u(k-1),…,u(k-L)]
式中F[·]——連續非線性函數[7];
N、L——輸入和輸出的階次。
函數模型通常是未知的,經過FOS算法進行辨識,可以得到一個新模型:

…+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)為設定值的柔化序列,以期望辨識系統的輸出逼近設定值,則上式可以改寫成:
yr(k+1)=a1y(k)+…+any(k-n+1)+b1u(k)+…+blu(k-l+1)
可以得出:

引入性能指標[9]為:
其中λ為控制加權因子。對性能指標進行滾動優化[10],每次優化計算出u(k),并將u(k)作為控制信號輸入,計算出實際的輸出y(k+1)。
選取非線性系統模型:

0.6u(k-1)+0.5u(k-2)
采用FOS算法進行訓練時,模型項數量M=5,設定的輸出序列為方波信號,柔化因子α=0.4。辨識結果如圖1所示。

圖1 系統辨識效果
利用上述辨識模型建立預測控制器,對非線性系統進行預測控制,同時與廣義預測控制效果進行對比,結果如圖2所示。

圖2 預測效果
采用FOS算法對非線性系統進行辨識,從辨識的結果可以看出,FOS算法得出的估算模型對非線性系統有良好的跟隨效果。利用估算模型建立預測模型,對系統進行閉環優化控制。通過對實際的非線性模型進行仿真實驗,驗證了所提方法的可行性和有效性。