徐志成,陶國正,王樹青
(1.常州機(jī)電職業(yè)技術(shù)學(xué)院 電氣工程學(xué)院,常州 213164) (2.浙江大學(xué)工業(yè)控制技術(shù)國家重點實驗室 先進(jìn)控制研究所,杭州 310027)
生產(chǎn)實際過程中非線性系統(tǒng)的數(shù)學(xué)模型通常難以預(yù)測,在不需要精確的非線性系統(tǒng)數(shù)學(xué)模型情況下,預(yù)測控制研究顯得很有必要[1-3].對于非線性系統(tǒng)的預(yù)測控制,采用線性化模型或分層遞階優(yōu)化方法將非線性問題轉(zhuǎn)化為線性問題是目前常用的一種方式[4-5],該處理對弱非線性系統(tǒng)是合適的,但對一些強(qiáng)非線性過程,如姿態(tài)控制、化學(xué)過程控制等,并不總能獲得滿意效果,尤其當(dāng)工作在操作點附近大范圍內(nèi)以及操作點攝動時,甚至連穩(wěn)定性也難以保證.文獻(xiàn)[6-7]中直接用Hammerstein模型、Volterra模型等模型作為預(yù)測模型,它們能描述許多化工設(shè)備或過程的非線性特性,如蒸餾塔、熱交換器等,并且模型結(jié)構(gòu)簡單,方便數(shù)學(xué)處理,但只適用于工業(yè)環(huán)境中的一些特定過程[4,8-9].
支持向量機(jī)(support vector machine,SVM)方法建立在統(tǒng)計學(xué)習(xí)理論基礎(chǔ)上,其利用結(jié)構(gòu)風(fēng)險最小原理和VC維理論解決了優(yōu)化問題中的非線性、小樣本、局部極小等問題[9-11].利用SVM方法的優(yōu)點構(gòu)建最小二乘支持向量機(jī)(least square-support vector machine, LS-SVM),作為非線性系統(tǒng)建模的有力工具,可以以任意精度逼近非線性系統(tǒng)[12-13].
菌群優(yōu)化(bacterial swarm foraging for optimization,BSFO)[14-15]算法作為一種新型優(yōu)化方法,可進(jìn)行多變量隨機(jī)迭代問題求解,種群內(nèi)每個細(xì)菌個體的狀態(tài)表示待優(yōu)化問題的一個解,個體根據(jù)自身位置和其他細(xì)菌傳遞過來的信息不斷更新其自身狀態(tài),產(chǎn)生新解,從而通過個體間的協(xié)作和競爭實現(xiàn)全局搜索,可用來快速有效地解決預(yù)測控制器設(shè)計中目標(biāo)函數(shù)的優(yōu)化問題[15].
預(yù)測模型的精確度是預(yù)測控制的關(guān)鍵,由于非線性系統(tǒng)的預(yù)測模型是非線性的,求解控制量的優(yōu)化問題是非線性約束優(yōu)化問題, 當(dāng)控制量序列很長時,優(yōu)化問題變得復(fù)雜,且可能耗費較長時間,不能滿足系統(tǒng)實時性要求,優(yōu)化結(jié)果也不一定最優(yōu),因此在每個采樣時刻優(yōu)化求解的控制量序列應(yīng)該盡可能短[16].針對這一問題,文中提出了一種基于BSFO算法和模型學(xué)習(xí)的單步預(yù)測控制算法,算法通過LS-SVM方法建立系統(tǒng)數(shù)學(xué)模型,在每個采樣時刻預(yù)測下個時刻的輸出,獲得系統(tǒng)輸出估計值,通過反饋校正誤差,得到控制量和偏差的優(yōu)化目標(biāo),利用BSFO算法具有全局性、快速性、較高精度和較低資源占用等特點,進(jìn)行在線實時滾動優(yōu)化,得到控制量.通過對單變量和多變量非線性系統(tǒng)的仿真結(jié)果表明算法具有良好的魯棒性和自適應(yīng)性.
文獻(xiàn)[14]中提出一種智能仿生優(yōu)化算法[14],與其他進(jìn)化算法類似,也采用群體和進(jìn)化的概念,算法包括趨藥性行為、聚集行為、繁殖行為和消散行為等步驟[15,17].
趨藥性行為包括前進(jìn)和翻轉(zhuǎn)兩部分.前進(jìn)是按照前一步的方向做動作,翻轉(zhuǎn)是按照某一新方向前進(jìn).翻轉(zhuǎn)一次后的位置為:
θi(j+1,k,l)=θi(j,k,l)+C(i)φ(j)
(1)
式中:θi(j,k,l)為第i個菌體在第j個趨化步、第k個繁殖步、第l個消散步后的更新位置;φ(j)為單位長度的隨機(jī)向量;C(i)>0為行為步長.細(xì)菌在同一方向前進(jìn)的最大限制步數(shù)為Ns,細(xì)菌在一個趨藥性循環(huán)中的趨藥性行為步數(shù)為Nc.
聚集行為用下式表示:
(2)
聚集行為后的適應(yīng)度函數(shù)為:
J(i,j+1,k,l)=J(i,j,k,l)+JCC(θ)
(3)
繁殖行為就是健康的細(xì)菌繼續(xù)繁殖,不夠健康的被淘汰.對于給定的k、l、i=1,2,…,S,定義
(4)
為細(xì)菌i的健康度函數(shù),將細(xì)菌按健康度函數(shù)值由大到小排列,值越大意味著細(xì)菌越不健康,排列靠前的,健康度函數(shù)值較大的一半細(xì)菌被淘汰,健康度函數(shù)值較小的,后面一半細(xì)菌進(jìn)行繁殖,每個繁殖得到子代,生成的子代與父代具有同樣的生理特征,子代與父代組成新的種群,算法通過此行為確保整個群體規(guī)模不發(fā)生改變,并且保留了適應(yīng)能力強(qiáng)的細(xì)菌.
實際中,部分菌體由于外力的作用而消失,或者轉(zhuǎn)移到其他區(qū)域中,細(xì)菌的趨藥性行為被破壞,但有可能因此使細(xì)菌找到食物更好的區(qū)域,因此算法中設(shè)置了此步.從某種角度看,此步行為也屬于覓食行為的一種,其幫助算法脫離局部最優(yōu)值,尋找全局最優(yōu)值.菌群經(jīng)過繁殖行為后,以某一概率被隨機(jī)分布到尋優(yōu)區(qū)間,算法實施中假設(shè)此概率為ped.
對一個帶約束,輸入和輸出分別為m和n維的離散多變量非線性系統(tǒng):
(5)
u(k)=(u1(k),u2(k),…,um(k))∈Rm為k時刻輸入;y(k)=(y1(k),y2(k),…,yn(k))∈Rn為k時刻輸出;d為輸出延遲;q為輸入階次;p為輸出階次;控制量的取值范圍和變化幅度通過約束條件限定.
對于
(6)
將樣本從原空間映射到特征空間通過非線性映射φ實現(xiàn),特征空間中的LS-SVM估計模型為:
f(x)=ωTφ(x)+b
(7)
式中:ω為權(quán)重系數(shù);b為偏置.系統(tǒng)優(yōu)化目標(biāo)是使函數(shù):
(8)
函數(shù)的最優(yōu)估計使目標(biāo)函數(shù)式(9)最小化:
(9)
利用下面的Lagrange函數(shù)對上式進(jìn)行求解.
(10)
αk(k=1,…,N)為Lagrange乘子.
根據(jù)KKT條件和Mercer條件[21],令Lagrange函數(shù)偏導(dǎo)等于0,有:
(11)
得到LS-SVM預(yù)測模型為:
(12)
式中,Φ(xi,xj)=φT(xi)φ(xj)為定義的核函數(shù).
預(yù)測控制器框圖如圖1.
圖1 預(yù)測控制器框圖Fig.1 Block diagram of predictive controller
(13)
則修正輸出:
(14)
對m維輸入、n維輸出的非線性系統(tǒng)設(shè)計預(yù)測控制器,定義式(15)為控制量對應(yīng)的適應(yīng)值函數(shù),BSFO算法就是要獲得式(15)的最小值.
(15)
(1) 對系統(tǒng)狀態(tài)、LS-SVM及BSFO算法參數(shù)進(jìn)行初始化;
(2) 使用激勵信號得到輸入輸出數(shù)據(jù),從而構(gòu)成樣本集,然后對訓(xùn)練樣本使用LS-SVM算法獲得對應(yīng)的預(yù)測模型;
(3) 利用樣本對模型進(jìn)行測試,確保誤差在允許范圍內(nèi),如果不滿足要求,則調(diào)整LS-SVM參數(shù),重新訓(xùn)練直到滿足要求;
(5) 根據(jù)BSFO算法步驟,循環(huán)優(yōu)化得到最優(yōu)控制量u(k+1),算法終止條件是達(dá)到最大迭代次數(shù);
(6) 將u(k+1)作用于非線性系統(tǒng).
以非線性液位系統(tǒng)為研究對象[22-23],該單輸入單輸出系統(tǒng)數(shù)學(xué)模型描述為式(16).文獻(xiàn)[22]中設(shè)計了NN自 適 應(yīng) 控 制 器,文獻(xiàn)[23]中采用基于遞歸模糊NN的廣義預(yù)測控制,控制效果均不錯.然而,前者需要系統(tǒng)精確的數(shù)學(xué)模型且其瞬態(tài)增益必須為正;后者控制器復(fù)雜且計算量大.
輸入為[0,1]均勻分布隨機(jī)序列,輸出延遲d=1,分別選取200和300組形如[ys(k),ys(k-1),us(k),us(k-1)),ys(k+1)]的樣本集作為訓(xùn)練集和測試集.利用LS-SVM建立預(yù)測模型,正則化參數(shù)γ=1 000,高斯核函數(shù)的寬度參數(shù)σ2=10.為方便比較,使用BP神經(jīng)網(wǎng)絡(luò)建立預(yù)測模型,參數(shù)最大訓(xùn)練次數(shù)為3 000,允許誤差為10-5,算法結(jié)果表明LS-SVM預(yù)測模型結(jié)果優(yōu)于BP-NN算法(表1).
ys(k+1)=0.972 2ys(k)+0.357 8us(k)-
0.129 5us(k-1)-0.310 3ys(k)us(k)-
0.308 4ys(k)ys(k-1)us(k-1)+
0.108 7ys(k-1)us(k)us(k-1)
s.t. -2≤us≤2
(16)表1 LS-SVM和BP-NN結(jié)果比較Table 1 Comparison results of LS-SVM and BP-NN
BSFO算法參數(shù)S=10,Ns=3,Nc=5,Nre=5,Ned=2,ped=0.25,dattract=0.1,ωattract=0.2,hrepellant=0.8,ωrepellant=10.系統(tǒng)初值us(1)=0.613 3,ys(1)=0.667 7,ys(2)=0.612 5.算法優(yōu)化獲得每個控制量的時間不超過1.2 s,算法終止條件為迭代次數(shù)達(dá)到10,系統(tǒng)參考軌跡為單位幅值的方波,圖2為控制量輸出,圖3為系統(tǒng)輸出.
圖2 單輸入單輸出系統(tǒng)控制量輸出Fig.2 Control variable output of SISO system
為測試控制器的自適應(yīng)性和魯棒性,參考值前80個時刻為0.2,80個時刻后變?yōu)橐粋€頻率逐漸變大的余弦信號,并且在第56個時刻變成大小為0.4的干擾信號.圖4為系統(tǒng)輸出.可以看出,系統(tǒng)輸出雖然出現(xiàn)一定的擾動,但影響不大,并且能很快恢復(fù)正常.因此,通過BSFO算法優(yōu)化得到的LS-SVM預(yù)測控制器能夠在不改變?nèi)魏螀?shù)的情況下快速跟蹤新的參考軌跡,具有較好的自適應(yīng)性和魯棒性.
圖3 單輸入單輸出系統(tǒng)輸出Fig.3 Output of SISO system
圖4 加干擾信號后單輸入單輸出系統(tǒng)輸出Fig.4 Output of SISO system with interference signal
選取式(17)的非線性系統(tǒng)作為研究對象:
(17)
輸入為[0,1]均勻分布隨機(jī)序列,d=2,分別選取形如[(y1(k),u1(k-1),u2(k-2)),y1(k+1)]和[(y2(k),u1(k-2),u2(k-1)),y2(k+1)]的900和200組數(shù)據(jù)作為訓(xùn)練樣本集和測試樣本集,用LS-SVM建立預(yù)測模型,參數(shù)γ=1 000,σ2=3,結(jié)果如表2.
表2 LS-SVM預(yù)測模型訓(xùn)練和測試結(jié)果Table 2 Training and testing results of LS-SVM predictive model
u(1)=0,y(1)=y(2)=y(3)=2.5,BSFO算法參數(shù)和參考軌跡設(shè)置與單輸入單輸出相同,算法終止條件為迭代次數(shù)達(dá)到15,優(yōu)化每個控制量的時間小于0.7 s.圖5~8分別為系統(tǒng)對方波跟蹤的效果和相應(yīng)的控制量.
圖5 多輸入多輸出系統(tǒng)輸出y1Fig.5 Output y1 of MIMO system
圖6 多輸入多輸出系統(tǒng)輸出y2Fig.6 Output y2 of MIMO system
圖7 多輸入多輸出系統(tǒng)控制量輸出u1Fig.7 Control variable output u1 of MIMO system
圖8 多輸入多輸出系統(tǒng)控制量輸出u2Fig.8 Control variable output u2 of MIMO system
可以看出,當(dāng)輸入發(fā)生變化時,控制量能及時調(diào)整,系統(tǒng)能較好地跟蹤輸入變化,因此,對于MIMO系統(tǒng),用文中方法設(shè)計的控制器同樣適用.
綜上,與文獻(xiàn)[20]和[21]中的方法相比,文中算法不需要系統(tǒng)精確的數(shù)學(xué)模型,計算量較小,并且所設(shè)計的預(yù)測控制器具有較好的自適應(yīng)能力和魯棒性.
文中將BSFO算法應(yīng)用到非線性系統(tǒng)預(yù)測控制中,提出了一種基于BSFO算法的單步預(yù)測控制方法,利用LS-SVM方法來建立非線性系統(tǒng)的預(yù)測模型,通過BSFO算法在線實時滾動優(yōu)化確定控制量,有效解決了非線性系統(tǒng)預(yù)測控制器設(shè)計問題.通過單變量和多變量非線性系統(tǒng)實例對算法進(jìn)行了仿真研究,結(jié)果表明了算法具有較好的自適應(yīng)能力和魯棒性.