周建新,黃劍雄
(華北理工大學(xué)電氣工程學(xué)院,河北 唐山 063210)
蟻群算法自20世紀(jì)90年代提出以來(lái)就一直是控制科學(xué)領(lǐng)域研究的熱點(diǎn)課題。然而,由于傳統(tǒng)蟻群算法自身存在缺陷,對(duì)控制系統(tǒng)難以直接應(yīng)用,為此近年來(lái)不少專(zhuān)家學(xué)者對(duì)蟻群算法進(jìn)行改進(jìn)來(lái)解決這一問(wèn)題。唐立等人提出了一種改進(jìn)蟻群算法對(duì)無(wú)人機(jī)進(jìn)行路徑規(guī)劃,其通過(guò)泰森多邊形構(gòu)造初始解,并加入約束條件,研究發(fā)現(xiàn)此算法使螞蟻搜索路徑長(zhǎng)度更短,收斂速度更快[1]。王曉燕等人提出了一種改進(jìn)勢(shì)場(chǎng)蟻群算法對(duì)機(jī)器人進(jìn)行路徑規(guī)劃,通過(guò)引入啟發(fā)信息遞減系數(shù)和初始信息素不均衡分配原則,并設(shè)置迭代閾值,研究表明該方法提高了算法的搜索效率[2]。喻鍇等人利用遺傳算法對(duì)蟻群算法的參數(shù)進(jìn)行優(yōu)化,并應(yīng)用優(yōu)化后的蟻群算法去調(diào)節(jié)PID控制器的參數(shù),研究表明蟻群算法參數(shù)優(yōu)化后,系統(tǒng)的穩(wěn)定性和魯棒性明顯加強(qiáng)[3]。
雖然PID神經(jīng)網(wǎng)絡(luò)對(duì)于某些復(fù)雜的控制系統(tǒng)可以產(chǎn)生較好的控制效果,但傳統(tǒng)的PID神經(jīng)網(wǎng)絡(luò)需要大量時(shí)間進(jìn)行學(xué)習(xí),并需要對(duì)其權(quán)值進(jìn)行反復(fù)修正。針對(duì)這一問(wèn)題,將智能算法與PID神經(jīng)網(wǎng)絡(luò)結(jié)合,能夠達(dá)到較好的控制效果。杜永等人提出了一種將遺傳算法與PID神經(jīng)網(wǎng)絡(luò)相結(jié)合的方法,其仿真研究表明當(dāng)被控對(duì)象的參數(shù)產(chǎn)生變化時(shí),系統(tǒng)也能夠保持系統(tǒng)的動(dòng)態(tài)和靜態(tài)特性,提高了系統(tǒng)的魯棒性[4];黃曉萍等人采用粒子群算法對(duì)PID神經(jīng)網(wǎng)絡(luò)進(jìn)行優(yōu)化,研究發(fā)現(xiàn)該方法不僅克服了神經(jīng)網(wǎng)絡(luò)的缺陷,還提高了控制精度和響應(yīng)速度[5];孫浩水等人將模糊算法與神經(jīng)網(wǎng)絡(luò)相結(jié)合建立模糊神經(jīng)網(wǎng)絡(luò)模型,并采用免疫算法對(duì)參數(shù)進(jìn)行整定,其研究表明該算法降低了控制系統(tǒng)的穩(wěn)態(tài)誤差,控制效果較好[6]。
上述研究雖然能夠解決復(fù)雜系統(tǒng)的部分控制問(wèn)題,但是對(duì)于PID神經(jīng)網(wǎng)絡(luò)控制器的優(yōu)化仍然存在局限性。因此,本文采用改進(jìn)蟻群免疫算法對(duì)PID神經(jīng)網(wǎng)絡(luò)的權(quán)值進(jìn)行優(yōu)化,利用改進(jìn)蟻群免疫算法收斂速度快的優(yōu)點(diǎn),使其盡快搜索到PID神經(jīng)網(wǎng)絡(luò)的最優(yōu)權(quán)值,以減少PID神經(jīng)網(wǎng)絡(luò)的尋優(yōu)時(shí)間。該方法能有效縮短PID神經(jīng)網(wǎng)絡(luò)控制器達(dá)到穩(wěn)態(tài)所需時(shí)間并減小超調(diào)量,因此其具有一定的理論研究和實(shí)際應(yīng)用的價(jià)值。
蟻群算法主要是對(duì)螞蟻的覓食行為進(jìn)行模擬,利用在螞蟻覓食過(guò)程中所釋放的信息素進(jìn)行正反饋傳遞,螞蟻則會(huì)根據(jù)狀態(tài)轉(zhuǎn)移規(guī)則以較大的概率選擇信息素大的路徑[7]。隨著搜索過(guò)程的進(jìn)行,較差路徑和較優(yōu)路徑的信息素差異會(huì)明顯增大,最終所有螞蟻都會(huì)集中到一條路徑上去,該路徑便是最優(yōu)路徑,而螞蟻便以最優(yōu)的方式到達(dá)食物源獲取食物。
螞蟻主要根據(jù)路徑上信息素濃度和路徑長(zhǎng)度來(lái)選擇下一個(gè)到達(dá)的節(jié)點(diǎn),其狀態(tài)轉(zhuǎn)移概率公式為:
(1)
式中,α為信息啟發(fā)式因子;β為期望啟發(fā)式因子;τij(t)為t時(shí)刻節(jié)點(diǎn)i和節(jié)點(diǎn)j之間的信息量;ηij為啟發(fā)函數(shù);allowedk為下一步允許到達(dá)的節(jié)點(diǎn)。
所有螞蟻完成一次迭代過(guò)后,需要對(duì)路徑上殘留的信息素進(jìn)行處理,其按照式(2)進(jìn)行更新:
(2)
免疫算法以生物免疫系統(tǒng)中對(duì)于抗原的處理為主要出發(fā)點(diǎn),通過(guò)抗體的生成、克隆、交叉變異以及免疫記憶等操作,最終與抗原結(jié)合并殺死抗原[8]。
免疫算法具有自組織、自適應(yīng)和群體多樣性等特點(diǎn)并且其全局搜索能力相比于其他智能算法更好,可以快速地搜索到各個(gè)極值點(diǎn)。針對(duì)蟻群算法搜索速度慢,到達(dá)某節(jié)點(diǎn)處容易出現(xiàn)停滯現(xiàn)象等問(wèn)題,本文將免疫算法中親和力的概念引入到蟻群算法。免疫算法中把需要解決的問(wèn)題作為抗原,因此抗體為該問(wèn)題的解,克隆、變異與選擇是免疫算法的三個(gè)基本操作,親和力主要體現(xiàn)在選擇策略過(guò)程中。
抗體間的親和力為兩抗體間的相似程度,引入到蟻群算法之中主要體現(xiàn)為螞蟻之間的差異,因此該方法豐富了蟻群多樣性,親和力計(jì)算如下:
p(Ai(k))=αf(Ai(k))+(1-α)d(Ai(k))
(3)
式中,f(Ai(k))為第i只螞蟻的適應(yīng)度;d(Ai(k))為第i只螞蟻的濃度;α為權(quán)重系數(shù)。
基本蟻群算法的數(shù)學(xué)模型主要由狀態(tài)轉(zhuǎn)移規(guī)則和信息素更新規(guī)則兩部分組成,而對(duì)于蟻群算法改進(jìn)也主要從這兩方面入手。首先在傳統(tǒng)的狀態(tài)轉(zhuǎn)移規(guī)則中引入搜索熱區(qū)的概念[9],以蟻穴和食物源為對(duì)角畫(huà)出一個(gè)矩形,將其作為搜索熱區(qū),最短路徑在矩形內(nèi)的概率遠(yuǎn)遠(yuǎn)大于在矩形外的概率。在狀態(tài)轉(zhuǎn)移概率公式中加入搜索權(quán)重,則蟻群轉(zhuǎn)移概率變?yōu)椋?/p>
(4)
(5)
其次,傳統(tǒng)的信息素更新只考慮了蟻群迭代完成時(shí)根據(jù)總和數(shù)據(jù)進(jìn)行更新,而沒(méi)有考慮到螞蟻路途中不同階段不同信息素的分布特點(diǎn),因此傳統(tǒng)的信息素更新規(guī)則無(wú)法使算法達(dá)到最優(yōu)。將信息素更新方式改為動(dòng)態(tài)調(diào)節(jié),其根據(jù)不同時(shí)間階段的算法收斂情況對(duì)局部信息素更新和全局信息素更新進(jìn)行調(diào)整[10],其更新公式如下:
τij(t+n)=2/δ+1(1-ρ)τij(t)
(6)
τij(t+1)=(1-ε)δτij(t)
(7)
式中,Tbs為蟻群本次搜索的最優(yōu)路徑;δ為自適應(yīng)變量。
其中,式(6)為全局信息素更新規(guī)則,式(7)為局部信息素更新規(guī)則,當(dāng)δ<1時(shí),公式(6)的作用增強(qiáng),公式(7)的作用減弱;當(dāng)δ>1時(shí)則相反。上述對(duì)于信息素的調(diào)節(jié)方式是根據(jù)收斂次數(shù)建立的一個(gè)負(fù)反饋過(guò)程,保證了算法收斂和搜索的穩(wěn)定性。
PID神經(jīng)網(wǎng)絡(luò)控制器結(jié)構(gòu)簡(jiǎn)單,應(yīng)用于大多數(shù)控制系統(tǒng),尤其對(duì)于一些復(fù)雜的控制系統(tǒng)有著不錯(cuò)的控制效果。但是PID神經(jīng)網(wǎng)絡(luò)控制器如果不能找到合適的網(wǎng)絡(luò)權(quán)值參數(shù),就很難發(fā)揮出它的優(yōu)勢(shì),實(shí)現(xiàn)其良好的控制性能。本文所提出的改進(jìn)蟻群免疫算法,可以對(duì)PIDNN的權(quán)值進(jìn)行優(yōu)化訓(xùn)練,以達(dá)到良好的控制性能。
PIDNN是一種多層前向神經(jīng)元網(wǎng)絡(luò),但與大多數(shù)多層前向神經(jīng)元網(wǎng)絡(luò)的輸入輸出特性不同,其不僅具有靜態(tài)特性,還因隱含層輸入輸出函數(shù)的原因具有動(dòng)態(tài)特性[11]。誤差反向傳播算法對(duì)于解決PIDNN調(diào)節(jié)連接權(quán)重有著不錯(cuò)的效果,主要是對(duì)其進(jìn)行在線(xiàn)的訓(xùn)練與學(xué)習(xí),最終使系統(tǒng)的目標(biāo)函數(shù)得到最優(yōu)解。
SPIDNN控制系統(tǒng)的輸入為設(shè)定值r和輸出反饋值x的偏差,控制量為網(wǎng)絡(luò)的輸出v,SPIDNN控制系統(tǒng)結(jié)構(gòu)如圖1所示。
圖1 SPIDNN控制系統(tǒng)結(jié)構(gòu)
對(duì)于任意采樣時(shí)間k,SPIDNN的算法模型如下:
1)輸入層
xi(k)=ui(k)
(8)
2)隱含層
隱含層輸入的總均值為:
(9)
隱含層各個(gè)神經(jīng)元的輸出狀態(tài)為:
(10)
隱含層各個(gè)神經(jīng)元的輸出為:
(11)
3)輸出層
SPIDNN的輸出層只包含一個(gè)神經(jīng)元,負(fù)責(zé)神經(jīng)元網(wǎng)絡(luò)的整體輸出,其輸入為:
(12)
輸出層神經(jīng)元的輸出為:
(13)
輸出層神經(jīng)元的輸出就等于整個(gè)神經(jīng)網(wǎng)絡(luò)控制器的總輸出v(k):
v(k)=x(k)
(14)
對(duì)SPIDNN進(jìn)行學(xué)習(xí)與訓(xùn)練是為了使神經(jīng)網(wǎng)絡(luò)的實(shí)際輸出值和理想輸出值之差的平方和E達(dá)到最小,亦系統(tǒng)穩(wěn)態(tài)誤差達(dá)到最小,即:
(15)
本文利用抗體與抗體之間親和力原理和改進(jìn)的轉(zhuǎn)移規(guī)則、信息素更新規(guī)則對(duì)傳統(tǒng)蟻群算法進(jìn)行改進(jìn),并利用改進(jìn)蟻群算法神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練。PID神經(jīng)網(wǎng)絡(luò)依據(jù)公式(15)進(jìn)行訓(xùn)練,蟻群的適應(yīng)度函數(shù)為公式(15)所示[12],使得輸出值和給定值之間的誤差最小。
首先,建立一個(gè)神經(jīng)網(wǎng)絡(luò)權(quán)值參數(shù)的集合,螞蟻從初始位置出發(fā)去覓食,即蟻群中的每只螞蟻在權(quán)值參數(shù)的集合中選擇一個(gè)權(quán)值,這樣整個(gè)蟻群就會(huì)選擇出一組神經(jīng)網(wǎng)絡(luò)權(quán)值。搜索過(guò)程中,每只螞蟻對(duì)地點(diǎn)的選擇行為是相互獨(dú)立的,會(huì)根據(jù)每個(gè)地點(diǎn)的信息素和狀態(tài)轉(zhuǎn)移概率進(jìn)行選擇。當(dāng)螞蟻經(jīng)過(guò)一系列地點(diǎn)之后就會(huì)到達(dá)食物所在的位置,最后調(diào)節(jié)每個(gè)地點(diǎn)的信息素。上述過(guò)程反復(fù)進(jìn)行,直到達(dá)到要求的迭代次數(shù)或進(jìn)化的趨勢(shì)不明顯為止,整個(gè)算法流程如下:
1)參數(shù)初始化;
2)將m只螞蟻放入n個(gè)節(jié)點(diǎn)中,并把該節(jié)點(diǎn)添加進(jìn)該螞蟻的禁忌表之中;
3)判斷禁忌表,根據(jù)狀態(tài)轉(zhuǎn)移規(guī)則公式選擇下一個(gè)節(jié)點(diǎn);
4)螞蟻選擇完成后,根據(jù)局部信息素更新規(guī)則公式對(duì)路徑進(jìn)行調(diào)整,直到全部螞蟻完成搜索為止;
5)記錄全部螞蟻產(chǎn)生的最優(yōu)解,形成螞蟻的抗體群;
6)從螞蟻的抗體群中選擇初始抗體群,對(duì)初始抗體群進(jìn)行克隆、變異和選擇等操作,進(jìn)而產(chǎn)生新一代抗體群;
7)更新最優(yōu)解,并根據(jù)全局信息素更新規(guī)則公式更新;
8)重復(fù)步驟(2)~(7)直到滿(mǎn)足終止條件為止,并輸出SPIDNN控制器的權(quán)值系數(shù)wij和wj。
為了驗(yàn)證本文所提出的改進(jìn)蟻群免疫算法的有效性和優(yōu)越性,確定參數(shù):蟻群規(guī)模m=40,信息啟發(fā)式因子α=1,期望值啟發(fā)式因子β=10,信息素殘留系數(shù)ρ=0.5,克隆比例NB=4,最大迭代次數(shù)NC=100。仿真結(jié)果如圖2和圖3所示。
圖2和圖3分別為傳統(tǒng)蟻群算法和改進(jìn)蟻群免疫算法的收斂曲線(xiàn),由圖可知改進(jìn)蟻群免疫算法在最小路徑長(zhǎng)度上要短于傳統(tǒng)蟻群算法,在迭代次數(shù)上也展現(xiàn)出明顯的優(yōu)勢(shì),收斂速度顯著提升。
圖3 改進(jìn)蟻群算法收斂曲線(xiàn)
圖2 傳統(tǒng)蟻群算法收斂曲線(xiàn)
改進(jìn)蟻群免疫算法的PIDNN控制器應(yīng)用范圍很廣,本文對(duì)熱連軋加熱爐的溫度進(jìn)行控制,并將理想溫度值設(shè)定為1200 ℃。由于加熱爐具有很強(qiáng)的非線(xiàn)性,難以對(duì)其精確建模,其數(shù)學(xué)模型選用二階系統(tǒng)純滯后環(huán)節(jié)表示,其傳遞函數(shù)為:
(16)
式中,K/(s+1)(Ts+1)代表二階慣性部分;e-τs代表純滯后部分,其參數(shù)選擇為T(mén)=220、τs=30s、K=100,其仿真結(jié)果如圖4和圖5所示。
圖4和圖5分別為傳統(tǒng)PIDNN加熱爐溫度控制和改進(jìn)蟻群免疫算法的PIDNN加熱爐溫度控制曲線(xiàn)。由仿真結(jié)果可知,傳統(tǒng)PIDNN加熱爐溫度控制到達(dá)設(shè)定溫度需要44 min,而改進(jìn)蟻群免疫算法的PIDNN加熱爐溫度控制到達(dá)設(shè)定溫度只需要31 min,系統(tǒng)的調(diào)節(jié)時(shí)間明顯縮短,并且改進(jìn)蟻群免疫算法的PIDNN加熱爐溫度控制曲線(xiàn)的超調(diào)量更小,取得了比較滿(mǎn)意的控制效果。
圖4 傳統(tǒng)PIDNN加熱爐溫度控制
圖5 改進(jìn)蟻群算法的PIDNN加熱爐溫度控制
本文在傳統(tǒng)蟻群算法的狀態(tài)轉(zhuǎn)移規(guī)則和信息素更新規(guī)則改進(jìn)的基礎(chǔ)上,引入免疫處理機(jī)制,加快了算法的收斂速度,并得到較短的最小路徑長(zhǎng)度;同時(shí),應(yīng)用改進(jìn)蟻群免疫算法優(yōu)化了神經(jīng)網(wǎng)絡(luò)權(quán)值,加快了加熱爐控制系統(tǒng)的收斂速度并降低了超調(diào)量,控制效果明顯改善,說(shuō)明基于改進(jìn)蟻群免疫算法的PIDNN加熱爐溫度控制具有一定的理論和實(shí)踐價(jià)值。