金瑩
(咸陽(yáng)職業(yè)技術(shù)學(xué)院,陜西 咸陽(yáng) 712000)
在現(xiàn)實(shí)工程中,線(xiàn)性二次型控制器是以線(xiàn)性系統(tǒng)目標(biāo)函數(shù)和輸入二次型函數(shù)為研究對(duì)象,調(diào)節(jié)狀態(tài)反饋控制器使二次型性能指標(biāo)函數(shù)達(dá)到最優(yōu),而目前許多文獻(xiàn)提出的優(yōu)化算法需多次調(diào)整才能得到較滿(mǎn)意的結(jié)果,這極大地影響其應(yīng)用的有效性。粒子群(PSO) 算法是一種進(jìn)化算法,利用適應(yīng)度評(píng)價(jià)解的品質(zhì),通過(guò)搜索最優(yōu)值確定全局最優(yōu)解,具有收斂快速,模型簡(jiǎn)單,計(jì)算量少等特點(diǎn),引起了學(xué)界的廣泛關(guān)注[1-3]。本文將利用貝葉斯粒子群算法求解二次型控制參數(shù),確定加權(quán)矩陣。
由于傳統(tǒng)的粒子群算法在優(yōu)化過(guò)程中容易陷入局部最優(yōu)解,無(wú)法直接用其進(jìn)行權(quán)重矩陣優(yōu)化??紤]到貝葉斯算法能夠?qū)αW尤簜€(gè)體進(jìn)行預(yù)處理的能力,本文在傳統(tǒng)粒子群算法中加入了貝葉斯思想。
傳統(tǒng)的PSO算法是將要研究的對(duì)象初始化為隨機(jī)粒子后,在每一次迭代中,通過(guò)跟蹤個(gè)體和全局極值點(diǎn)更新速度和位置。設(shè)第k個(gè)粒子信息為D維向量,位置為Xk,速度為Vk,其他向量類(lèi)似。傳統(tǒng)的粒子群算法速度和位置見(jiàn)式(1)-式(2)。
v(t+1)=v(t)+c1×rand()×(pbestk-Xk)+c2×rand()×(gbestk-Xk)
(1)
Xk+1=Xk+Vk+1
(2)
其中:c1、c2為學(xué)習(xí)因子,調(diào)節(jié)向全局最好粒子和個(gè)體最好粒子方向飛行的最大步長(zhǎng)。因此,在粒子群優(yōu)化算法中c1、c2直接影響粒子群的搜索速度和精度。合適的c1、c2可加快算法的收斂速度,避免局部最優(yōu)。根據(jù)文獻(xiàn),一般取c1=c2=2;rand()是[0,1]之間的隨機(jī)數(shù);pbestk和gbestk分別為粒子在第k次迭代中個(gè)體極值點(diǎn)和全局最優(yōu)極值點(diǎn)的位置。
粒子的每一維速度v都會(huì)被集中在vmin、vmax之間,以防止粒子遠(yuǎn)離搜索空間。若vmax太大,粒子偏離最優(yōu)解,vmin太小,將會(huì)陷入局部最優(yōu)。同樣假設(shè)將搜索空間中粒子位置定義為區(qū)間[vmin,vmax],每一維都用相同的設(shè)置方法[4]。由于傳統(tǒng)粒子群算法容易陷入局部最優(yōu)解,而貝葉斯網(wǎng)絡(luò)可以對(duì)研究對(duì)象進(jìn)行先驗(yàn)描述,它是一種不確定性推理方法,廣泛用于表達(dá)和分析不確定性和概率性的領(lǐng)域,可以從不完全、不精確或不確定的知識(shí)或信息中做出推理,其網(wǎng)絡(luò)結(jié)構(gòu)數(shù)據(jù)學(xué)習(xí)困難的問(wèn)題一直制約著貝葉斯網(wǎng)絡(luò)理論的運(yùn)用。為了提高粒子群算法的收斂速度和降低其他粒子的影響[5-8],本文利用貝葉斯網(wǎng)絡(luò)對(duì)粒子進(jìn)行了預(yù)處理,將粒子群根據(jù)相互影響強(qiáng)度進(jìn)行初步分類(lèi),對(duì)粒子向量進(jìn)行了先驗(yàn)概率描述,使得粒子在移動(dòng)的過(guò)程中具有自我調(diào)節(jié)與判斷能力。
假設(shè)有K為粒子總體向量,K=[G1,G2,…,Gk],粒子總體向量K對(duì)應(yīng)的先驗(yàn)概率向量為Q,Q=[q1,q2,…,qk], 各總體的密度函數(shù)向量為F=[f1(x),f2(x),…,fk(x)],對(duì)于某個(gè)粒子x來(lái)講,它的后驗(yàn)概率可以用式(3)描述:
(3)
并且當(dāng)
(4)
時(shí),則粒子x來(lái)自第h個(gè)子群體。
為了進(jìn)一步提高粒子群體的所屬概率,本文在將錯(cuò)判損失最小的概念作判決函數(shù),把粒子x錯(cuò)判歸第h個(gè)子群體的平均損失定義為:
(5)
其中L(h)稱(chēng)為損失函數(shù)。它表示本來(lái)是第g子群體的樣品粒子錯(cuò)判為第h子群體粒子的損失。顯然式(3)是對(duì)損失函數(shù)依概率加權(quán)平均的。
當(dāng)h=g時(shí),有L(h︱g)=0;當(dāng)h≠g時(shí),有L(h︱g)>0,建立判別準(zhǔn)則為:
(6)
為了使貝葉斯網(wǎng)絡(luò)粒子群中的粒子個(gè)體在優(yōu)化的過(guò)程中能夠快速收斂,在短時(shí)間內(nèi)到達(dá)自己的最優(yōu)位置,本文基于貝葉斯算法對(duì)參加優(yōu)化的粒子進(jìn)行預(yù)處理,并對(duì)粒子移動(dòng)速度與方向的損失函數(shù)依概率加權(quán)平均,給予粒子移動(dòng)方向性,使其能夠快速地逼近理想位置。
本文粒子群算法的更新就是在傳統(tǒng)粒子群算法的基礎(chǔ)上加入了慣性因子ωi,則根據(jù)式(1),粒子的更新速度可以重寫(xiě)為:
Vk+1=wiVk+c1rand1×(pbestk-Xk)+c2rand2×(gbestk-Xk)
(7)
則改寫(xiě)以后的粒子群算法的優(yōu)化過(guò)程如下:
Step 1:粒子群參數(shù)的初始化。
定義c1、c2為學(xué)習(xí)因子,ωi為慣性因子,gen為最大迭代次數(shù),pop為種群的大小,初始粒子的位置及其速度,每個(gè)粒子的pbest值為當(dāng)前位置。
Step 2:利用貝葉斯網(wǎng)絡(luò)對(duì)粒子進(jìn)行預(yù)處理。
Step 3:對(duì)粒子群中每一個(gè)粒子的進(jìn)行評(píng)價(jià)。
通過(guò)式(1)、式(2)來(lái)計(jì)算群中各粒子的位置,通過(guò)速度極值來(lái)計(jì)算各粒子的適應(yīng)度值。
Step 4:個(gè)體最優(yōu)pbest和全局最優(yōu)gbest值的求解。
粒子的適應(yīng)度值優(yōu)于當(dāng)前個(gè)體極值時(shí),將pbest設(shè)置為該粒子的位置,更新個(gè)體極值。個(gè)體極值最優(yōu)值優(yōu)于當(dāng)前全局極值時(shí),將gbest設(shè)置為該粒子的位置,記錄該粒子的序號(hào),更新全局極值。
Step 5:判斷是否符合結(jié)束條件。
若滿(mǎn)足最優(yōu)化條件,則停止迭代,輸出最優(yōu)解。否則更新粒子。
Step 6:粒子的更新。
對(duì)每一個(gè)粒子的速度和位置進(jìn)行更新時(shí)選用式(2)和式(7),然后轉(zhuǎn)入Step 4進(jìn)行新一輪迭代。貝葉斯粒子群優(yōu)化流程如圖1所示。
圖1 貝葉斯網(wǎng)絡(luò)與基本BNPSO流程示意圖
設(shè)有線(xiàn)性定常系統(tǒng)的動(dòng)態(tài)方程為:
(8)
式中:n維狀態(tài)向量是x(t);r維控制向量為u(t);m維輸出向量為y(t);A(t)、B(t)、C(t)分別為時(shí)變矩陣。那么兼顧系統(tǒng)響應(yīng)、控制輸入、末態(tài)精度三方面的要求可得到如下性能指標(biāo)函數(shù):
(9)
e(t)=yl(t)-y(t)
其中:Q(t)為狀態(tài)偏差矩陣;R(t)為控制能量矩陣;F為末態(tài)偏差的加權(quán)矩陣;e為誤差,e(t)是誤差向量。根據(jù)系統(tǒng)的實(shí)際要求確定各控制加權(quán)陣。事實(shí)上,控制加權(quán)陣在很大程度上靠經(jīng)驗(yàn)和試探,具體方法如下:
1) 控制末值項(xiàng)
φ[e(tf)]=eτ(tf)Fe(tf)
(10)
控制結(jié)束后,對(duì)系統(tǒng)末尾態(tài)≥跟蹤誤差的要求一般用二次型性能指標(biāo)中的末值項(xiàng)表示。假設(shè)
F=diag{f1,f2,…,fl}≥0
(11)
表示對(duì)末態(tài)跟蹤誤差有不同的要求,則式(10)可以進(jìn)一步表示為
(12)
若不限制末態(tài)跟蹤誤差,則可取F=0,此時(shí)性能指標(biāo)J變?yōu)榉e分型。
2) 第一過(guò)程項(xiàng)
(13)
表示在系統(tǒng)控制過(guò)程中,對(duì)動(dòng)態(tài)跟蹤誤差的要求。若取
Q(t)=diag{q1(t),q2(t),…,ql(t)}≥0
(14)
則有
(15)
于是,式(12)可以表示為
(16)
系統(tǒng)在運(yùn)動(dòng)過(guò)程中動(dòng)態(tài)跟蹤誤差的總度量一般是指對(duì)動(dòng)態(tài)跟蹤誤差加權(quán)平方和的積分要求。
3) 第二過(guò)程項(xiàng)
(17)
表示對(duì)控制所消耗能量的要求,若取
R(t)=diag{r1(t),r2(t),…,rm(t)}>0
(18)
則有
(19)
于是,式(16)可以表示為
(20)
是對(duì)系統(tǒng)加權(quán)后的控制能量消耗的總度量。
據(jù)此可知,二次型性能指標(biāo)式(8)的物理意義是:使系統(tǒng)在控制過(guò)程中的動(dòng)態(tài)誤差與能量消耗以及控制結(jié)束時(shí)的系統(tǒng)穩(wěn)態(tài)誤差綜合最優(yōu)。則二次型控制問(wèn)題可以表述為求一控制u(t),使系統(tǒng)自初態(tài)的運(yùn)動(dòng),導(dǎo)致二次型性能指標(biāo)為最小。
(21)
其中:Q(t)、R(t)分別指一致非負(fù)定對(duì)稱(chēng)陣和一致正定對(duì)稱(chēng)陣;F是非負(fù)定對(duì)稱(chēng)常數(shù)矩陣;末態(tài)時(shí)間tf是固定的。式(21)的最優(yōu)控制的充分必要條件為:
u*(t)=-R-1(t)Bτ(t)P(t)x*(t)
(22)
式中是相應(yīng)的最優(yōu)軌線(xiàn)。P(t)是式(23)黎卡提矩陣微分方程的解:
P(t)B(t)R-1(t)Bτ(t)P(t)-Q(t)
P(tf)=F
(23)
對(duì)于線(xiàn)性定常系統(tǒng),終端時(shí)刻tf大于系統(tǒng)過(guò)渡時(shí)間tp時(shí),P(t)保持為常值。由黎卡提方程解的性質(zhì)可知,黎卡提微分方程退化為黎卡提代數(shù)方程
PA+AτP-PBR-1BτP+Q=0
(24)
便能得到使性能指標(biāo)達(dá)極小值的充分必要條件為:
u*(t)=-Kx*(t)
(25)
K=-R-1BτP
粒子群算法的關(guān)鍵是目標(biāo)函數(shù),依據(jù)最優(yōu)控制,確定目標(biāo)函數(shù)為J。對(duì)目標(biāo)函數(shù)進(jìn)行累加,得到在7s時(shí)間的累加值,即二次型目標(biāo)函數(shù)值。輸入狀態(tài)偏差和控制能量可得優(yōu)化函數(shù),取信號(hào)為初值為0,終值為1,在t=1s時(shí)刻產(chǎn)生階躍的階躍信號(hào),采樣時(shí)間為0.0001s。
必須保證Q為半正定,R為正定的,并對(duì)Q矩陣和R矩陣的元素有一定的限制。通過(guò)手動(dòng)粗調(diào),確定Q、R各元的區(qū)間范圍,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]之間。首先要確定好種群數(shù)目大小pop,學(xué)習(xí)因子c1和c2,再更新代數(shù)gen。c1=c2=2,gen=100,pop=25的前提下對(duì)粒子群算法編程。圖2為貝葉斯粒子群算法優(yōu)化矩陣流程圖。
圖2 貝葉斯粒子群算法優(yōu)化矩陣流程圖
實(shí)驗(yàn)結(jié)果證明,w隨算法迭代而線(xiàn)性減小,改善算法的收斂性。設(shè)Wmax為最大值,Wmin為最小值,t為當(dāng)前迭代次數(shù),gen為最大迭代次數(shù);設(shè)Wmax=0.9,Wmin=0.35。隨機(jī)產(chǎn)生1個(gè)種群,計(jì)算個(gè)體對(duì)應(yīng)的目標(biāo)函數(shù)值,得出pbest和gbest,然后對(duì)粒子更新得到新的種群,分別計(jì)算粒子目標(biāo)函數(shù)值。
粒子群算法可簡(jiǎn)化Q陣和R陣的求解過(guò)程,得出滿(mǎn)足性能指標(biāo)的反饋增益矩陣。仿真結(jié)果如圖3-圖4所示。
圖3 貝葉斯粒子群算法性能指標(biāo)變化圖
圖4 貝葉斯粒子群優(yōu)化權(quán)重矩陣優(yōu)化跟蹤曲線(xiàn)對(duì)比圖
貝葉斯粒子群算法在優(yōu)化之前對(duì)粒子進(jìn)行了預(yù)處理,能夠使得粒子在短時(shí)間內(nèi)達(dá)到最優(yōu)速度和移動(dòng)方向。通過(guò)圖3可以觀察到,經(jīng)過(guò)40次的迭代,粒子的移動(dòng)速度與方向已經(jīng)達(dá)到了穩(wěn)定狀態(tài),這個(gè)也就預(yù)示著對(duì)控制權(quán)重矩陣的優(yōu)化達(dá)到了最優(yōu)狀態(tài)。
由圖4可以看到,通過(guò)貝葉斯粒子群方法能夠?qū)刂茩?quán)重矩陣進(jìn)行優(yōu)化,貝葉斯粒子群方法能夠逼近期望曲線(xiàn)的變化,而且誤差均在μm量級(jí)之內(nèi)。因此,貝葉斯粒子群算法能夠優(yōu)化控制權(quán)重矩陣和增益矩陣K,提高系統(tǒng)的穩(wěn)定性,超調(diào)小、響應(yīng)速度快,優(yōu)化前后的跟蹤位置及控制輸入基本一致。
本文通過(guò)在傳統(tǒng)粒子群算法中引入了貝葉斯思想,對(duì)粒子群尋優(yōu)初始階段進(jìn)行了預(yù)處理,使得粒子能夠按照最優(yōu)的速度與方向移動(dòng),避免了傳統(tǒng)粒子群算法中陷入最優(yōu)解的弊端,并將該方法運(yùn)用到控制權(quán)重矩陣的優(yōu)化中,通過(guò)實(shí)驗(yàn)仿真驗(yàn)證了貝葉斯粒子群算法的有效性。實(shí)驗(yàn)證明:貝葉斯粒子群算法在控制權(quán)重矩陣的優(yōu)化過(guò)程中能夠滿(mǎn)足性能指標(biāo)要求,響應(yīng)速度快,超調(diào)量小。