山石姣,馬吉明,蘇日建,溫旭琴
(鄭州輕工業(yè)大學(xué) 計(jì)算機(jī)與通信工程學(xué)院,鄭州 450002)
近年來,隨著學(xué)習(xí)算法和優(yōu)化算法的不斷深入發(fā)展,一些學(xué)者根據(jù)自然界生物的覓食等行為提出了很多種仿生群集智能優(yōu)化算法.這一系列優(yōu)化算法因?yàn)槟軌蚪鉀Q復(fù)雜優(yōu)化問題,所以受到了當(dāng)今人工智能研究領(lǐng)域的追捧[1].天牛須搜索算法[2-3](beetle antennae search algorithm,BAS)作為一種新型的單體智能優(yōu)化算法,是由Jiang在2017年提出的.
天牛須搜索算法作為其中一種較新的優(yōu)化智能算法,相對(duì)于遺傳算法[4]、粒子群算法[5-6]等,BAS具有更大潛能,也被應(yīng)用于多種優(yōu)化問題,比如電力調(diào)度問題、神經(jīng)網(wǎng)絡(luò)、機(jī)器人、路徑規(guī)劃以及無人機(jī)等多個(gè)領(lǐng)域[7-14].基本BAS算法,雖然相比其他的群體智能算法,其運(yùn)算量大大降低,但當(dāng)?shù)_(dá)到一定次數(shù)后,步長的銳減會(huì)導(dǎo)致天牛在各個(gè)方向上的移動(dòng)分量過小,從而陷入局部最優(yōu)后難以跳出.采用定步長可跳過最優(yōu)點(diǎn),混沌擾動(dòng)可擴(kuò)大搜索范圍[15-18],但容易導(dǎo)致結(jié)果不穩(wěn)定,并因?yàn)樵缡焓諗恳紫萑刖植孔顑?yōu)問題.
經(jīng)過多次實(shí)驗(yàn)測(cè)試,本文將天牛須算法融入蝙蝠種群,在全局最優(yōu)鄰近進(jìn)行加倍詳細(xì)的局部搜索,以促進(jìn)天牛種群進(jìn)行尋優(yōu).同時(shí),因?yàn)锽AS的單一性,這種結(jié)合蝙蝠算法的方式也增加了BAS的豐富度.挑選6個(gè)經(jīng)典測(cè)試函數(shù),用Matlab進(jìn)行仿真,將改進(jìn)后的算法與傳統(tǒng)的天牛須算法(BAS)仿真結(jié)果進(jìn)行比較,結(jié)果顯示,BAS-BA算法計(jì)算出的最優(yōu)值總體上優(yōu)于BA算法,從而證明了天牛須—蝙蝠混合算法(BAS-BA)能夠較有效地避免BAS算法易陷入局部極值、收斂速度慢的問題.將BAS-BA用在優(yōu)化PID的參數(shù)整定,得到參數(shù)值.并在離線的情況下與傳統(tǒng)BAS對(duì)于PID的控制進(jìn)行Simulink仿真對(duì)比,結(jié)果顯示,BAS-BA方法優(yōu)化的PID控制器沒有超調(diào)現(xiàn)象,而BAS方法優(yōu)化有超調(diào)現(xiàn)象.總體上看,基于BAS-BA優(yōu)化系統(tǒng)調(diào)節(jié)能力比基于BAS優(yōu)化系統(tǒng)優(yōu)異.
基本的BAS主要步驟如下.
第1步:設(shè)定搜索公式,對(duì)隨機(jī)生成的天牛的位置、天牛須的朝向進(jìn)行描述,并進(jìn)行歸一化處理.
(1)
式中,d表示空間維度,rands(d,1)表示隨機(jī)函數(shù).
第2步:通過天牛觸須的感知,進(jìn)行向左和向右搜索,建立天牛的左須和右須以及質(zhì)心的表達(dá)式.
(2)
(3)
式中,x為天牛的質(zhì)心在第t(t=0,1,2,…,n)次迭代的位置,xri為天牛右須在第t次迭代的位置,xli為天牛左須在第t次迭代的位置,d0為天牛兩個(gè)須之間第t次迭代的距離.
第3步:建立天牛的位置更新迭代模型.
(4)
(5)
etat=0.95×etat-1,
(6)
式中,eta為搜索的步長因子,f(x)為x位置的氣味濃度,該函數(shù)為適應(yīng)度函數(shù),sign(.)為符號(hào)函數(shù),返回參數(shù)的正負(fù).式(5)和式(6)表示搜索參數(shù)d0和eta的更新規(guī)則.
基本的蝙蝠算法(BA)[19-20]的主要步驟如下.
第1步:初始化種群位置為xi(i=1,2,3,…,N)和速度vi,搜尋目前蝙蝠群中最優(yōu)蝙蝠位置為x*;并根據(jù)以下公式更新種群速度和位置.
fi=fmin+(fmax-fmin)α,
(7)
(8)
(9)
式中,fmax和fmin分別表示脈沖頻率的最大值和最小值,fi為第i只蝙蝠的脈沖頻率,α為隨機(jī)數(shù),在[0,1]上均勻分布.
第2步:隨機(jī)生成一個(gè)數(shù)值R1,ri為第i只蝙蝠的脈沖頻度,如果R1 第3步:生成一個(gè)隨機(jī)數(shù)R2,如果R2 (10) (11) BA是基于迭代的優(yōu)化算法,且在最優(yōu)解周圍通過隨機(jī)飛行產(chǎn)生局部新解,加強(qiáng)了局部搜索.所以本文提出一種天牛須-蝙蝠混合算法(BAS-BA),解決BAS早熟收斂易陷入局部最優(yōu)問題.BA種群中的每只蝙蝠都可以描述成天牛進(jìn)行搜索,將BA算法最優(yōu)解的隨機(jī)游走思想融入天牛的位置更新過程中,可以增加天牛種群的多樣性和位置多樣性,增加了天牛搜索的豐富度.算法的具體過程描述如下. 第1步:初始化參數(shù).種群的規(guī)模、范圍,蝙蝠的響度、脈沖頻率,天牛種群的初始步長.初始化種群的位置、速度. 第2步:初始化種群最優(yōu)位置,在全局最優(yōu)個(gè)體處進(jìn)行局部尋優(yōu). 第3步:根據(jù)天牛群的位置更新公式(12)、(13)和公式(14)更新種群全局最優(yōu)位置.根據(jù)蝙蝠種群位置更新公式改進(jìn)的天牛群的位置更新公式如下: (12) (13) (14) 圖1 BAS-BA算法流程Fig.1 BAS-BA algorithm flow chart 第4步:根據(jù)BA算法的第2步和第3步可知,蝙蝠通過在全局最優(yōu)個(gè)體處發(fā)射脈沖信號(hào)產(chǎn)生局部解來實(shí)現(xiàn)局部最優(yōu)搜索,再通過比較個(gè)體位置優(yōu)劣,以及響度的大小來更新位置和新解.將該步驟融入新算法位置和最優(yōu)值比較,同時(shí),用BAS算法進(jìn)行全局的最優(yōu)搜索,引導(dǎo)天牛個(gè)體向全局最優(yōu)位置處移動(dòng). 第5步:判斷是否達(dá)到最大迭代次數(shù)、精度標(biāo)準(zhǔn),若未滿足則轉(zhuǎn)向第2步. 算法流程圖如圖1所示. 為了驗(yàn)證改進(jìn)的BAS-BA算法的性能,選取6個(gè)標(biāo)準(zhǔn)測(cè)試函數(shù)進(jìn)行仿真測(cè)試.其中,f1是典型的二維測(cè)試函數(shù);f2是一種典型的單模函數(shù),可以測(cè)試算法的準(zhǔn)確性;在有規(guī)律解的情況下,f3可以測(cè)試算法的實(shí)用性;f4函數(shù)振蕩強(qiáng)烈并且難以獲得全局最優(yōu)解,可以很好地測(cè)試算法的性能;f5函數(shù)基本上是平坦的區(qū)域,由余弦波調(diào)制形成單獨(dú)的孔或峰,難以用優(yōu)化算法處理;f6函數(shù)是一個(gè)典型的非線性多模態(tài)函數(shù),局部最小和搜索空間多,難以尋優(yōu).標(biāo)準(zhǔn)測(cè)試函數(shù)的公式如表1所示,測(cè)試函數(shù)均是非線性函數(shù),理論最小值均為0.函數(shù)的搜索范圍均為[-10,10]. 表1 測(cè)試函數(shù)Tab.1 Test functions 實(shí)驗(yàn)環(huán)境是在window10系統(tǒng)Matlab R2015a軟件,CPU:i5-3470 3.20 GHz,RAM:4 GB. BAS-BA算法的參數(shù)設(shè)置:最大迭代次數(shù)Tmax設(shè)為100;種群大小N設(shè)為50;初始響度A設(shè)為0.25;響度衰減系數(shù)w設(shè)置為0.95;初始發(fā)射比率R設(shè)為0.75;發(fā)射比率增加系數(shù)r設(shè)為0.05;最大頻率fmax和最小頻率fmin分別為1和-1;天牛步長遞減系數(shù)為0.95;須長率和初始步長分別為5和1.針對(duì)每一個(gè)函數(shù),兩個(gè)算法分別在搜索維度為2、10和30上獨(dú)立運(yùn)行30次,將計(jì)算結(jié)果進(jìn)行對(duì)比分析,并分析算法性能. 圖2 PID控制器系統(tǒng)框架圖Fig.2 PID controller system diagram 圖3 BAS-BA的PID參數(shù)整定控制Fig.3 PID parameter setting control diagram of BAS-BA 圖4 Simulink環(huán)境搭建PID控制系統(tǒng)結(jié)構(gòu)Fig.4 Construction of PID control system structure in Simulink environmen 2.2.1 PID控制原理 PID控制器[21]的原理圖如圖2所示.控制器由4部分組成:第一部分為r(t),表示期望值,即控制系統(tǒng)的目標(biāo)信號(hào);第二部分u(t)為控制器的輸出,控制公式如式(15)所示,在整個(gè)系統(tǒng)中起到關(guān)鍵作用;第三部分為具體問題中的被控對(duì)象;第四個(gè)部分y(t)表示實(shí)際輸出的結(jié)果,為控制系統(tǒng)最終得到的響應(yīng)結(jié)果. 控制方程為: (15) 式中,e(t)=r(t)-y(t)代表控制偏差,Kp、Ki、Kd為與之組成的系數(shù),通過公式(15)中3個(gè)系數(shù)與偏差的組成形式,將Kp叫作比例系數(shù),Ki叫作積分系數(shù),Kd叫作微分系數(shù).偏差和相應(yīng)的系數(shù)Kp、Ki、Kd組成了它的3個(gè)重要環(huán)節(jié),這3個(gè)系數(shù)的不同組合會(huì)影響控制系統(tǒng)響應(yīng)的性能指標(biāo)的值,所以Kp、Ki、Kd這3個(gè)系數(shù)的優(yōu)化是PID控制的關(guān)鍵[22-23]. 2.2.2 PID參數(shù)整定的基本思想 利用BAS-BA尋優(yōu)和整定PID控制器的3個(gè)參數(shù):算法每次迭代后,得到更新的位置信息,然后將位置上的3個(gè)維度的分解量分別賦值給Kp、Ki和Kd.并在Simulink環(huán)境中,對(duì)PID系統(tǒng)進(jìn)行仿真,最后將系統(tǒng)產(chǎn)生的誤差代入到適應(yīng)度函數(shù)中,然后計(jì)算其適應(yīng)度值.將獲得的適應(yīng)度值傳遞到BAS-BA中,與設(shè)定的閾值進(jìn)行比較,得到PID的最優(yōu)參數(shù).系統(tǒng)框圖如圖3所示. 2.2.3 仿真設(shè)計(jì) 利用Matlab的Simulink環(huán)境搭建PID控制系統(tǒng).利用BAS-BA不斷調(diào)用PID控制器模型,進(jìn)而用算法迭代得到最優(yōu)的PID參數(shù).并與BAS算法得到的PID參數(shù)進(jìn)行對(duì)比. BAS和BAS-BA算法的參數(shù)調(diào)整為:維度設(shè)置為3;天牛兩個(gè)須的距離為2;初始步長step設(shè)置為2;搜索范圍為[0,1].BAS-BA其他參數(shù)不變. 選取的被控對(duì)象的傳遞函數(shù)為: (16) 適應(yīng)度函數(shù)選擇誤差性能指標(biāo)ITAE: (17) Simulink環(huán)境搭建PID控制系統(tǒng)結(jié)構(gòu)圖如圖4所示:圖中上半部分為BAS-BA算法中的ITAE性能指標(biāo)的值;下半部分為PID控制結(jié)構(gòu). 將f1~f6函數(shù)在兩個(gè)算法運(yùn)行下所得平均值、最差值、最優(yōu)值和方差作為算法精度和魯棒性的衡量指標(biāo),測(cè)試函數(shù)在2維和20維的運(yùn)行結(jié)果如表2、表3中數(shù)據(jù)所示,為了多角度分析結(jié)果,選取10維的進(jìn)化曲線進(jìn)行對(duì)比.圖5中橫軸為迭代次數(shù),縱軸為最優(yōu)適應(yīng)度值.進(jìn)化曲線如圖5所示. 表2 搜索維度為2維時(shí)6個(gè)函數(shù)的性能比較 表3 搜索維度為20維時(shí)6個(gè)函數(shù)的性能比較 表4 參數(shù)值Tab.4 Parameter values (a) Booth function函數(shù) (b) Sphere函數(shù) (c) Rastrigin函數(shù) (d) Salomon函數(shù) (e) Griewank函數(shù) (f) Ackley函數(shù)圖5 搜索函數(shù)為10維時(shí)各個(gè)函數(shù)的進(jìn)化曲線Fig.5 Evolution curve of each function when the search functions are 10 dimensions 從表2、表3和圖5可以看出,當(dāng)測(cè)試函數(shù)在2維、10維和20維時(shí),BAS-BA算法總體上比BAS算法的精度更高、魯棒性更好.BAS-BA算法解決了BA算法在多維運(yùn)算上的劣勢(shì),又豐富了BA算法的豐富度.雖然BA算法本身的優(yōu)勢(shì)是單體智能,使得運(yùn)算量降低,運(yùn)算速度快,但是精確度不高,容易陷入局部最優(yōu),BAS-BA有效地避免了這些缺點(diǎn). BAS與BAS-BA算法得到的PID中三個(gè)參數(shù)的迭代變化趨勢(shì)以及得到的最優(yōu)個(gè)體適應(yīng)度值如圖6-7所示.為了驗(yàn)證基于BAS-BA的PID參數(shù)整定的優(yōu)良效果,將BAS和BAS-BA算法應(yīng)用于PID控制器的結(jié)果進(jìn)行對(duì)比,其參數(shù)和性能如表4所示,可以明顯地看出BAS-BA計(jì)算出的性能指標(biāo)優(yōu)于BAS計(jì)算出的性能指標(biāo). 圖6 BAS算法優(yōu)化參數(shù)值及適應(yīng)度曲線Fig.6 BAS algorithm optimization parameter values and fitness curves 圖7 BAS-BA算法優(yōu)化參數(shù)值以及適應(yīng)度曲線Fig.7 BAS-BA algorithm optimization parameter values and fitness curves 從圖8和圖9的PID階躍響應(yīng)曲線可以看出,BAS優(yōu)化和BAS-BA優(yōu)化方法得到的PID控制器達(dá)到系統(tǒng)設(shè)定值的時(shí)間差不多,但BAS優(yōu)化方法存在超調(diào)現(xiàn)象.綜合比較,使用BAS-BA方法優(yōu)化的PID控制系統(tǒng)調(diào)節(jié)能力比基于BAS優(yōu)化方法的優(yōu)異,具有良好的控制性能. 圖8 BAS優(yōu)化的PID控制器階躍響應(yīng)曲線圖9 BAS-BA優(yōu)化的PID控制器階躍響應(yīng)曲線Fig.8 BAS optimized PID controller step response curve Fig.9 BAS-BA optimized PID controller step response curve 本文提出了天牛須蝙蝠融合算法(BAS-BA),解決了天牛須搜索算法(BAS)出現(xiàn)收斂速度慢、精度低、易因?yàn)樵缡焓諗肯萑刖植孔顑?yōu)等問題,使得算法能快速地尋找到更優(yōu)的位置,從而加快了收斂速率.運(yùn)用6個(gè)基本測(cè)試函數(shù)分別在2維、10維、20維進(jìn)行對(duì)比實(shí)驗(yàn),驗(yàn)證了BAS-BA算法相比于傳統(tǒng)的BAS算法的收斂速度和魯棒性更優(yōu).最后用BAS-BA算法優(yōu)化PID控制器參數(shù),通過與BAS算法得到的仿真結(jié)果進(jìn)行對(duì)比,實(shí)驗(yàn)數(shù)據(jù)表明,BAS-BA算法得到的PID三個(gè)參數(shù)的性能指標(biāo)明顯優(yōu)于BAS算法得到的結(jié)果.下一步工作將考慮群體智能技術(shù)應(yīng)用于微型軟體機(jī)器人運(yùn)動(dòng)控制的其它環(huán)節(jié)、大數(shù)據(jù)降維等相關(guān)多目標(biāo)[24]求解及優(yōu)化問題中.1.3 天牛須-蝙蝠混合算法(BAS-BA)
2 實(shí)驗(yàn)仿真設(shè)計(jì)
2.1 測(cè)試函數(shù)及測(cè)試環(huán)境
2.2 基于BAS-BA的PID參數(shù)整定仿真模型
3 仿真結(jié)果與分析
3.1 測(cè)試函數(shù)實(shí)驗(yàn)分析
3.2 BAS與BAS-BA算法仿真對(duì)比分析
4 結(jié)論