金瑩
(咸陽職業技術學院,陜西 咸陽 712000)
在現實工程中,線性二次型控制器是以線性系統目標函數和輸入二次型函數為研究對象,調節狀態反饋控制器使二次型性能指標函數達到最優,而目前許多文獻提出的優化算法需多次調整才能得到較滿意的結果,這極大地影響其應用的有效性。粒子群(PSO) 算法是一種進化算法,利用適應度評價解的品質,通過搜索最優值確定全局最優解,具有收斂快速,模型簡單,計算量少等特點,引起了學界的廣泛關注[1-3]。本文將利用貝葉斯粒子群算法求解二次型控制參數,確定加權矩陣。
由于傳統的粒子群算法在優化過程中容易陷入局部最優解,無法直接用其進行權重矩陣優化。考慮到貝葉斯算法能夠對粒子群個體進行預處理的能力,本文在傳統粒子群算法中加入了貝葉斯思想。
傳統的PSO算法是將要研究的對象初始化為隨機粒子后,在每一次迭代中,通過跟蹤個體和全局極值點更新速度和位置。設第k個粒子信息為D維向量,位置為Xk,速度為Vk,其他向量類似。傳統的粒子群算法速度和位置見式(1)-式(2)。
v(t+1)=v(t)+c1×rand()×(pbestk-Xk)+c2×rand()×(gbestk-Xk)
(1)
Xk+1=Xk+Vk+1
(2)
其中:c1、c2為學習因子,調節向全局最好粒子和個體最好粒子方向飛行的最大步長。因此,在粒子群優化算法中c1、c2直接影響粒子群的搜索速度和精度。合適的c1、c2可加快算法的收斂速度,避免局部最優。根據文獻,一般取c1=c2=2;rand()是[0,1]之間的隨機數;pbestk和gbestk分別為粒子在第k次迭代中個體極值點和全局最優極值點的位置。
粒子的每一維速度v都會被集中在vmin、vmax之間,以防止粒子遠離搜索空間。若vmax太大,粒子偏離最優解,vmin太小,將會陷入局部最優。同樣假設將搜索空間中粒子位置定義為區間[vmin,vmax],每一維都用相同的設置方法[4]。由于傳統粒子群算法容易陷入局部最優解,而貝葉斯網絡可以對研究對象進行先驗描述,它是一種不確定性推理方法,廣泛用于表達和分析不確定性和概率性的領域,可以從不完全、不精確或不確定的知識或信息中做出推理,其網絡結構數據學習困難的問題一直制約著貝葉斯網絡理論的運用。為了提高粒子群算法的收斂速度和降低其他粒子的影響[5-8],本文利用貝葉斯網絡對粒子進行了預處理,將粒子群根據相互影響強度進行初步分類,對粒子向量進行了先驗概率描述,使得粒子在移動的過程中具有自我調節與判斷能力。
假設有K為粒子總體向量,K=[G1,G2,…,Gk],粒子總體向量K對應的先驗概率向量為Q,Q=[q1,q2,…,qk], 各總體的密度函數向量為F=[f1(x),f2(x),…,fk(x)],對于某個粒子x來講,它的后驗概率可以用式(3)描述:
(3)
并且當

(4)
時,則粒子x來自第h個子群體。
為了進一步提高粒子群體的所屬概率,本文在將錯判損失最小的概念作判決函數,把粒子x錯判歸第h個子群體的平均損失定義為:
(5)
其中L(h)稱為損失函數。它表示本來是第g子群體的樣品粒子錯判為第h子群體粒子的損失。顯然式(3)是對損失函數依概率加權平均的。
當h=g時,有L(h︱g)=0;當h≠g時,有L(h︱g)>0,建立判別準則為:

(6)
為了使貝葉斯網絡粒子群中的粒子個體在優化的過程中能夠快速收斂,在短時間內到達自己的最優位置,本文基于貝葉斯算法對參加優化的粒子進行預處理,并對粒子移動速度與方向的損失函數依概率加權平均,給予粒子移動方向性,使其能夠快速地逼近理想位置。
本文粒子群算法的更新就是在傳統粒子群算法的基礎上加入了慣性因子ωi,則根據式(1),粒子的更新速度可以重寫為:
Vk+1=wiVk+c1rand1×(pbestk-Xk)+c2rand2×(gbestk-Xk)
(7)
則改寫以后的粒子群算法的優化過程如下:
Step 1:粒子群參數的初始化。
定義c1、c2為學習因子,ωi為慣性因子,gen為最大迭代次數,pop為種群的大小,初始粒子的位置及其速度,每個粒子的pbest值為當前位置。
Step 2:利用貝葉斯網絡對粒子進行預處理。
Step 3:對粒子群中每一個粒子的進行評價。
通過式(1)、式(2)來計算群中各粒子的位置,通過速度極值來計算各粒子的適應度值。
Step 4:個體最優pbest和全局最優gbest值的求解。
粒子的適應度值優于當前個體極值時,將pbest設置為該粒子的位置,更新個體極值。個體極值最優值優于當前全局極值時,將gbest設置為該粒子的位置,記錄該粒子的序號,更新全局極值。
Step 5:判斷是否符合結束條件。
若滿足最優化條件,則停止迭代,輸出最優解。否則更新粒子。
Step 6:粒子的更新。
對每一個粒子的速度和位置進行更新時選用式(2)和式(7),然后轉入Step 4進行新一輪迭代。貝葉斯粒子群優化流程如圖1所示。

圖1 貝葉斯網絡與基本BNPSO流程示意圖
設有線性定常系統的動態方程為:

(8)
式中:n維狀態向量是x(t);r維控制向量為u(t);m維輸出向量為y(t);A(t)、B(t)、C(t)分別為時變矩陣。那么兼顧系統響應、控制輸入、末態精度三方面的要求可得到如下性能指標函數:
(9)
e(t)=yl(t)-y(t)
其中:Q(t)為狀態偏差矩陣;R(t)為控制能量矩陣;F為末態偏差的加權矩陣;e為誤差,e(t)是誤差向量。根據系統的實際要求確定各控制加權陣。事實上,控制加權陣在很大程度上靠經驗和試探,具體方法如下:
1) 控制末值項
φ[e(tf)]=eτ(tf)Fe(tf)
(10)
控制結束后,對系統末尾態≥跟蹤誤差的要求一般用二次型性能指標中的末值項表示。假設
F=diag{f1,f2,…,fl}≥0
(11)
表示對末態跟蹤誤差有不同的要求,則式(10)可以進一步表示為
(12)
若不限制末態跟蹤誤差,則可取F=0,此時性能指標J變為積分型。
2) 第一過程項
(13)
表示在系統控制過程中,對動態跟蹤誤差的要求。若取
Q(t)=diag{q1(t),q2(t),…,ql(t)}≥0
(14)
則有
(15)
于是,式(12)可以表示為
(16)
系統在運動過程中動態跟蹤誤差的總度量一般是指對動態跟蹤誤差加權平方和的積分要求。
3) 第二過程項
(17)
表示對控制所消耗能量的要求,若取
R(t)=diag{r1(t),r2(t),…,rm(t)}>0
(18)
則有
(19)
于是,式(16)可以表示為
(20)
是對系統加權后的控制能量消耗的總度量。
據此可知,二次型性能指標式(8)的物理意義是:使系統在控制過程中的動態誤差與能量消耗以及控制結束時的系統穩態誤差綜合最優。則二次型控制問題可以表述為求一控制u(t),使系統自初態的運動,導致二次型性能指標為最小。
(21)
其中:Q(t)、R(t)分別指一致非負定對稱陣和一致正定對稱陣;F是非負定對稱常數矩陣;末態時間tf是固定的。式(21)的最優控制的充分必要條件為:
u*(t)=-R-1(t)Bτ(t)P(t)x*(t)
(22)
式中是相應的最優軌線。P(t)是式(23)黎卡提矩陣微分方程的解:
P(t)B(t)R-1(t)Bτ(t)P(t)-Q(t)
P(tf)=F
(23)
對于線性定常系統,終端時刻tf大于系統過渡時間tp時,P(t)保持為常值。由黎卡提方程解的性質可知,黎卡提微分方程退化為黎卡提代數方程
PA+AτP-PBR-1BτP+Q=0
(24)
便能得到使性能指標達極小值的充分必要條件為:
u*(t)=-Kx*(t)
(25)
K=-R-1BτP
粒子群算法的關鍵是目標函數,依據最優控制,確定目標函數為J。對目標函數進行累加,得到在7s時間的累加值,即二次型目標函數值。輸入狀態偏差和控制能量可得優化函數,取信號為初值為0,終值為1,在t=1s時刻產生階躍的階躍信號,采樣時間為0.0001s。
必須保證Q為半正定,R為正定的,并對Q矩陣和R矩陣的元素有一定的限制。通過手動粗調,確定Q、R各元的區間范圍,Q(1,1)范圍為[700,1700],Q(2,2)為[500,4500],Q(3,3)為[1,50],Q(4,4)為[1,5],R為[20,50]。粒子的速度一般限制在[-1,1]之間。首先要確定好種群數目大小pop,學習因子c1和c2,再更新代數gen。c1=c2=2,gen=100,pop=25的前提下對粒子群算法編程。圖2為貝葉斯粒子群算法優化矩陣流程圖。

圖2 貝葉斯粒子群算法優化矩陣流程圖
實驗結果證明,w隨算法迭代而線性減小,改善算法的收斂性。設Wmax為最大值,Wmin為最小值,t為當前迭代次數,gen為最大迭代次數;設Wmax=0.9,Wmin=0.35。隨機產生1個種群,計算個體對應的目標函數值,得出pbest和gbest,然后對粒子更新得到新的種群,分別計算粒子目標函數值。
粒子群算法可簡化Q陣和R陣的求解過程,得出滿足性能指標的反饋增益矩陣。仿真結果如圖3-圖4所示。

圖3 貝葉斯粒子群算法性能指標變化圖

圖4 貝葉斯粒子群優化權重矩陣優化跟蹤曲線對比圖
貝葉斯粒子群算法在優化之前對粒子進行了預處理,能夠使得粒子在短時間內達到最優速度和移動方向。通過圖3可以觀察到,經過40次的迭代,粒子的移動速度與方向已經達到了穩定狀態,這個也就預示著對控制權重矩陣的優化達到了最優狀態。
由圖4可以看到,通過貝葉斯粒子群方法能夠對控制權重矩陣進行優化,貝葉斯粒子群方法能夠逼近期望曲線的變化,而且誤差均在μm量級之內。因此,貝葉斯粒子群算法能夠優化控制權重矩陣和增益矩陣K,提高系統的穩定性,超調小、響應速度快,優化前后的跟蹤位置及控制輸入基本一致。
本文通過在傳統粒子群算法中引入了貝葉斯思想,對粒子群尋優初始階段進行了預處理,使得粒子能夠按照最優的速度與方向移動,避免了傳統粒子群算法中陷入最優解的弊端,并將該方法運用到控制權重矩陣的優化中,通過實驗仿真驗證了貝葉斯粒子群算法的有效性。實驗證明:貝葉斯粒子群算法在控制權重矩陣的優化過程中能夠滿足性能指標要求,響應速度快,超調量小。