陳東寧 張國(guó)峰 姚成玉 張瑞星
1.燕山大學(xué)河北省重型機(jī)械流體動(dòng)力傳輸與控制實(shí)驗(yàn)室,秦皇島,066004
2.燕山大學(xué)先進(jìn)鍛壓成形技術(shù)與科學(xué)教育部重點(diǎn)實(shí)驗(yàn)室,秦皇島,066004
3.燕山大學(xué)河北省工業(yè)計(jì)算機(jī)控制工程重點(diǎn)實(shí)驗(yàn)室,秦皇島,066004
近年來,人們模擬自然界生物群體行為發(fā)展出一系列群體智能仿生算法,其中,粒子群優(yōu)化(particle swarm optimization,PSO)算法和細(xì)菌覓食(bacterial foraging,BF)算法已在諸多領(lǐng)域展現(xiàn)了良好的應(yīng)用前景。
PSO算法具有概念簡(jiǎn)明、實(shí)現(xiàn)方便、收斂速度快等優(yōu)點(diǎn),在很多優(yōu)化問題中得到成功應(yīng)用。文獻(xiàn)[1]將PSO算法應(yīng)用于可靠性優(yōu)化,并通過串-并聯(lián)、橋式系統(tǒng)等可靠性優(yōu)化實(shí)例驗(yàn)證了方法的可行性。文獻(xiàn)[2]將混沌粒子群優(yōu)化的神經(jīng)網(wǎng)絡(luò)應(yīng)用于旋轉(zhuǎn)機(jī)械故障診斷,取得了良好效果。然而,PSO算法在求解優(yōu)化問題時(shí),容易陷入局部 最 優(yōu),引 起 早 熟 收 斂[3]。BF 算 法 是 由Passino[4]提出的一種新型仿生類算法,具有并行搜索、易跳出局部極小值等優(yōu)點(diǎn),在不同領(lǐng)域得到了廣泛應(yīng)用。文獻(xiàn)[5]將變鄰域BF算法用于求解作業(yè)車間調(diào)度問題,為車間調(diào)度問題提供了有效方法。文獻(xiàn)[6]將BF算法應(yīng)用于公交調(diào)度優(yōu)化,實(shí)現(xiàn)了交通系統(tǒng)的優(yōu)化配置,但該算法存在收斂速度慢的缺點(diǎn)。
近幾年有學(xué)者將PSO算法和BF算法融合,如Biswas等[7]提出了一種混合PSO細(xì)菌覓食算法——BSO算法,即在細(xì)菌趨化操作后對(duì)細(xì)菌執(zhí)行了一個(gè)僅使用全局最佳粒子的趨化前進(jìn)操作,該算法優(yōu)于BF算法和標(biāo)準(zhǔn)PSO算法。然而,BSO算法趨化前進(jìn)操作中沒有考慮個(gè)體最佳粒子這一因素。
為此,本文提出一種細(xì)菌群覓食優(yōu)化(bacterial swarm foraging optimization,BSFO)算法,利用PSO算法中粒子的速度更新公式來替代BF算法位置公式中的方向向量,并通過測(cè)試函數(shù)和控制系統(tǒng)仿真驗(yàn)證其優(yōu)化效果。
PSO算法將系統(tǒng)初始化為一組隨機(jī)解,通過迭代搜尋最優(yōu)值,粒子在解空間追隨最優(yōu)的粒子進(jìn)行搜索。每一次迭代中,粒子通過跟蹤2個(gè)“極值”來進(jìn)行自我調(diào)整,一個(gè)極值是粒子本身所經(jīng)歷過的最優(yōu)解,稱為個(gè)體最佳位置pbest,另一個(gè)極值是整個(gè)種群目前找到的最優(yōu)解,稱為全局最佳位置gbest。粒子在第k代的速度和位置更新過程如下[8]:
式中,vk、xk分別為第k代更新中粒子的速度和位置;vk+1、xk+1分別為第k+1代更新中粒子的速度和位置;r1、r2為[0,1]區(qū)間內(nèi)的隨機(jī)數(shù);c1、c2為加速常數(shù),代表將每個(gè)粒子推向pbest和gbest位置的統(tǒng)計(jì)加速項(xiàng)的權(quán)重,通常取為常數(shù)2;w為慣性權(quán)重。
式(1)、式(2)中的位置和速度不同于物理學(xué)中的含義,具有相同量綱,可以直接相加,下同。
慣性權(quán)重w表征上一代的速度對(duì)當(dāng)前代速度的影響程度。隨著迭代次數(shù)的增加,粒子離最優(yōu)點(diǎn)越來越近,為了減小振蕩,希望速度越來越小。為此,通常采用如下方式來調(diào)整慣性權(quán)重w:
式中,I為當(dāng)前迭代次數(shù);Imax為最大迭代次數(shù);wmax、wmin分別為慣性權(quán)重的最大值和最小值[9]。
細(xì)菌群的覓食行為可以看作是不斷優(yōu)化的過程,優(yōu)化問題的解對(duì)應(yīng)搜索空間內(nèi)細(xì)菌的狀態(tài),即優(yōu)化函數(shù)適應(yīng)度值。BF算法包括趨化、繁殖、驅(qū)散三個(gè)步驟。
1.2.1趨化
趨化是細(xì)菌朝含有營(yíng)養(yǎng)的區(qū)域聚集的行為。趨化過程中,細(xì)菌運(yùn)動(dòng)模式包括翻轉(zhuǎn)和前進(jìn)。翻轉(zhuǎn)是細(xì)菌向隨機(jī)方向移動(dòng)單位步長(zhǎng),每當(dāng)細(xì)菌完成一次翻轉(zhuǎn)后,檢查適應(yīng)度值是否改善,若是,則細(xì)菌將沿同一方向繼續(xù)前進(jìn)Ns步。趨化的位置更新公式為
式中,Pi(j,k,l)為第i個(gè)細(xì)菌在第j次趨化、第k次繁殖和第l次驅(qū)散中的位置;Δ(i)為隨機(jī)產(chǎn)生的方向向量;C(i)為細(xì)菌在任意方向被指定的步長(zhǎng)大小。
1.2.2繁殖
所有細(xì)菌完成趨化后,進(jìn)入繁殖階段。采用健康度作為評(píng)定各細(xì)菌優(yōu)劣的準(zhǔn)則,計(jì)算公式為
式中,Jh,i為第i個(gè)細(xì)菌的健康度;ji(j,k,l)為第i個(gè)細(xì)菌在第j次趨化、第k次繁殖和第l次驅(qū)散操作中的適應(yīng)度值;Nc為趨化步驟的最大次數(shù)。
將全部S個(gè)細(xì)菌根據(jù)健康度進(jìn)行升序排序,淘汰健康度較差的Sr(Sr=S/2)個(gè)細(xì)菌,保留健康度較好的Sr個(gè)細(xì)菌。將存活的Sr個(gè)細(xì)菌以一分為二的方式進(jìn)行繁殖,產(chǎn)生的子細(xì)菌具有和母細(xì)菌相同的位置和趨化步長(zhǎng)。
1.2.3驅(qū)散
細(xì)菌在Nre次繁殖結(jié)束后,將適應(yīng)度值差的細(xì)菌驅(qū)散。為確保細(xì)菌總數(shù)的不變,以概率Ped驅(qū)散相同數(shù)目的細(xì)菌到其他位置,剩余細(xì)菌的位置保持不變。細(xì)菌驅(qū)散步驟的最大次數(shù)為Ned。
BF算法中,一個(gè)細(xì)菌代表一個(gè)解,細(xì)菌在尋找最優(yōu)解時(shí)只依靠自己,群體間不存在信息共享機(jī)制。PSO算法中,一個(gè)粒子代表一個(gè)解,粒子在尋找最優(yōu)解時(shí),不僅依靠自身,也依靠其他的信息(個(gè)體歷史最優(yōu)解和全局最優(yōu)解)。針對(duì)這種情況提出了BSFO算法,即通過借鑒PSO算法中粒子之間的信息共享機(jī)制,利用PSO算法中粒子的速度更新公式來代替細(xì)菌趨化中翻轉(zhuǎn)操作的位置公式中的方向向量Δ(i),使細(xì)菌在更新自身運(yùn)動(dòng)位置時(shí),不斷感知周圍同伴的位置信息及細(xì)菌群體的歷史最優(yōu)位置信息,進(jìn)而克服PSO算法存在早熟收斂和BF算法收斂速度慢的缺陷。
將式(1)代入式(4),可得
為提高算法在優(yōu)化前期的全局搜索能力和優(yōu)化后期的局部搜索能力,趨化步長(zhǎng)不再像BF算法中設(shè)為固定值,而改設(shè)為動(dòng)態(tài)調(diào)整值:
式中,C(k,l)為第k次繁殖和第l次驅(qū)散的趨化步長(zhǎng);Lred為初始趨化步長(zhǎng);nk+l-1為第k+l-1次控制步長(zhǎng)下降梯度的參數(shù)。
由于C(k,l)是隨繁殖操作數(shù)k和驅(qū)散操作數(shù)l增加而下降的函數(shù),當(dāng)初期的k、l較小時(shí),步長(zhǎng)C(k,l)較大,以便在較大的空間內(nèi)搜索解。進(jìn)化的過程中,隨著k、l逐漸增大,步長(zhǎng)C(k,l)減小,使細(xì)菌在較好解的附近進(jìn)一步搜索最優(yōu)解,保證算法最終趨近全局最優(yōu)點(diǎn)。
BSFO算法步驟如下:
(1)初始化細(xì)菌位置、速度。
(2)評(píng)價(jià)適應(yīng)度值。
(3)三層循環(huán)。最內(nèi)層步驟是趨化,其中,細(xì)菌的運(yùn)動(dòng)模式為翻轉(zhuǎn),以式(6)進(jìn)行細(xì)菌位置更新;前進(jìn),更新個(gè)體最優(yōu)和全局最優(yōu)并用式(1)更新各細(xì)菌的速度。中間層步驟是繁殖。最外層步驟是驅(qū)散。
(4)輸出最優(yōu)解。
BSFO算法以BF算法為基礎(chǔ),在趨化時(shí)用PSO算法中粒子的速度更新公式(式(1))來代替細(xì)菌趨化公式(式(6))中隨機(jī)產(chǎn)生的方向向量Δ(i)。有目的的方向操作加快了細(xì)菌的收斂,全局最優(yōu)的引導(dǎo)作用提高了算法的精度。同時(shí),舍去PSO算法中的式(2),直接用式(6)計(jì)算細(xì)菌位置更新歷史最優(yōu)值。
為分析所提的BSFO算法搜索性能,以BF算法、μPSO 算 法[10]和 BSO 算 法[7]作 為 對(duì) 比 算法。其中,μPSO算法的原理是通過對(duì)一般粒子和當(dāng)代最優(yōu)粒子設(shè)置不同的速度、位置計(jì)算公式增強(qiáng)粒子的搜索能力,利用排斥項(xiàng)避免搜索進(jìn)程陷入早熟狀態(tài),從而有效提高PSO算法的優(yōu)化效率。
選擇表1所示的8個(gè)Benchmark函數(shù)對(duì)上述4種算法進(jìn)行數(shù)值試驗(yàn),這些函數(shù)廣泛應(yīng)用于評(píng)價(jià)優(yōu)化算法的性能。評(píng)價(jià)的標(biāo)準(zhǔn)包括優(yōu)化結(jié)果的平均值和標(biāo)準(zhǔn)差,平均值反映了在給定迭代次數(shù)下算法所能達(dá)到的精度,標(biāo)準(zhǔn)差反映了算法的穩(wěn)定性。
分別用BF算法、μPSO算法、BSO算法和BSFO算法優(yōu)化上述8個(gè)測(cè)試函數(shù),程序重復(fù)運(yùn)行30次所得函數(shù)極值的平均值和標(biāo)準(zhǔn)差見表2。從表2可以看出,與其他三種算法相比,BSFO算法對(duì)大部分測(cè)試函數(shù)更接近所求極值,標(biāo)準(zhǔn)差較小,具有較高的精度和穩(wěn)定性。
表1 8個(gè)測(cè)試函數(shù)
表2 4種算法所得優(yōu)化結(jié)果
這4種算法運(yùn)行30次的運(yùn)行時(shí)間平均值和標(biāo)準(zhǔn)差見表3。
表3 4種算法運(yùn)行時(shí)間的平均值和標(biāo)準(zhǔn)差 s
從表3可以看出:基本BF算法與BSO算法在時(shí)間消耗上是差不多的,BSFO算法比上述兩種算法耗時(shí)更少,μPSO耗時(shí)最少。綜合表2、表3可以看出,BSFO算法不僅具有較高求解精度,而且耗時(shí)較少。
以材料試驗(yàn)機(jī)電液位置伺服系統(tǒng)為研究對(duì)象,運(yùn)用BSFO算法對(duì)其PID控制器參數(shù)進(jìn)行優(yōu)化。材料試驗(yàn)機(jī)電液位置伺服系統(tǒng)原理如圖1所示,圖2為系統(tǒng)控制框圖。
圖1 材料試驗(yàn)機(jī)電液位置伺服系統(tǒng)示意圖
圖2 電液位置伺服系統(tǒng)框圖
忽略外力擾動(dòng)FL,得到開環(huán)傳遞函數(shù):
式中,Uf為傳感器反饋電壓;U為控制器輸出電壓;Ka為伺服放大器增益;Ksv為伺服閥流量增益系數(shù);Ap為液壓缸活塞有效面積;Kf為位移傳感器增益;Kce為總流量-壓力系數(shù);K為負(fù)載彈簧剛度;ωsv為伺服閥固有頻率;ξsv為伺服閥阻尼比;ωr為慣性環(huán)節(jié)轉(zhuǎn)折頻率;ω0為綜合固有頻率;ξ0為綜合阻尼比。
將材料試驗(yàn)機(jī)電液位置伺服系統(tǒng)實(shí)際參數(shù)代入后得到開環(huán)傳遞函數(shù):
作出系統(tǒng)的開環(huán)Bode圖(圖3),其幅值裕度為56dB,相位裕度為無窮大,可見該系統(tǒng)閉環(huán)穩(wěn)定。
計(jì)算該系統(tǒng)在1V指令(10mm)下閉環(huán)階躍響應(yīng),如圖4所示。可以看出,該系統(tǒng)在未加任何補(bǔ)償控制器之前,雖然系統(tǒng)閉環(huán)穩(wěn)定,但是存在較大的靜態(tài)誤差,且響應(yīng)很慢,遠(yuǎn)不能達(dá)到該材料試驗(yàn)機(jī)對(duì)準(zhǔn)確性的要求,因此必須設(shè)計(jì)合理的控制器才能使得該系統(tǒng)到達(dá)一定的使用要求。
圖3 系統(tǒng)的開環(huán)Bode圖
圖4 閉環(huán)系統(tǒng)的階躍響應(yīng)
數(shù)字計(jì)算需要對(duì)常規(guī)的PID算式通過采樣進(jìn)行離散化,離散化后的控制器即為數(shù)字PID控制器。數(shù)字PID控制器可分為位置式和增量式,增量式算法系統(tǒng)工作會(huì)更安全。一旦計(jì)算機(jī)出現(xiàn)故障,使控制信號(hào)Δu(kT)為零時(shí),執(zhí)行機(jī)構(gòu)的位置仍能保持前一步的位置u(kT),從而對(duì)系統(tǒng)安全不會(huì)有大的影響。因此,采用增量式數(shù)字PID控制器,表達(dá)式如下:
式中,u為控制輸出;e為誤差;Kp為比例系數(shù);Ki為積分系數(shù);Kd為微分系數(shù);T為采樣周期,T=0.001s;Ti為積分時(shí)間常數(shù);Td為微分時(shí)間常數(shù)。
細(xì)菌位置量P(式(1)中的x)編碼為[Kp,Ki,Kd],即為PID控制器的3個(gè)調(diào)節(jié)參數(shù)。目標(biāo)函數(shù)包括絕對(duì)誤差、控制器輸出平方、被控對(duì)象輸出增量和調(diào)節(jié)時(shí)間等。構(gòu)造目標(biāo)函數(shù):
式中,e(t)為控制誤差;u(t)為控制器輸出;ts為調(diào)整時(shí)間;w1、w2、w3、w4為 權(quán) 值,w1= 0.999,w2= 0.001,w3=2,w4=100;y(t)為被控對(duì)象輸出。
BSFO-PID算法流程如圖5所示。
圖5 BSFO-PID算法流程
BSFO-PID的參數(shù)設(shè)置如表4所示。最后求得PID控制器的參數(shù)和目標(biāo)函數(shù)值的優(yōu)化結(jié)果,如表5所示。從表5可以看出,BSFO-PID控制器的目標(biāo)函數(shù)值最小。
表4 BSFO算法參數(shù)設(shè)置
表5 不同算法參數(shù)優(yōu)化結(jié)果
Z-N PID、BSO-PID、μPSO-PID、BFPID和BSFO-PID幾種控制策略作用下控制器的輸出量如圖6所示。
圖6 不同控制策略下的控制器輸出
材料試驗(yàn)機(jī)的電液位置伺服系統(tǒng)的單位階躍響應(yīng)(1V,10mm)如圖7所示。
圖7 不同控制策略的階躍響應(yīng)
系統(tǒng)動(dòng)態(tài)性能指標(biāo)如表6所示。
表6 階躍響應(yīng)動(dòng)態(tài)性能指標(biāo)
仿真結(jié)果表明:運(yùn)用BSFO算法優(yōu)化的材料試驗(yàn)機(jī)電液位置伺服系統(tǒng)PID控制器較其他4種算法設(shè)計(jì)的控制器在響應(yīng)速度、收斂精度、超調(diào)量等方面具有更優(yōu)良的綜合控制性能。
(1)Benchmark函數(shù)測(cè)試結(jié)果表明:BSFO算法比BF算法、μPSO算法及BSO算法在收斂速度和計(jì)算精度上更為理想,克服了PSO算法早熟易陷入局部最優(yōu)和BF算法收斂速度慢的缺陷。
(2)將BSFO算法應(yīng)用于材料試驗(yàn)機(jī)電液位置伺服系統(tǒng)的PID控制器參數(shù)的尋優(yōu),通過仿真可得:與Z-N整定算法、BF算法、μPSO算法和BSO算法相比,應(yīng)用BSFO算法尋優(yōu)后的PID控制系統(tǒng)具有更好的控制性能,滿足了材料試驗(yàn)機(jī)的電液位置伺服系統(tǒng)控制性能要求。
[1]Zhao J H,Liu Z H,Dao M T.Reliability Optimization Using Multiobjective Ant Colony System Approaches[J].Reliability Engineering and System Safety,2007,92(1):109-120.
[2]仇國(guó)慶,唐賢倫,莊陵,等.基于混沌粒子群優(yōu)化的神經(jīng)網(wǎng)絡(luò)在旋轉(zhuǎn)機(jī)械故障診斷中的應(yīng)用[J].中國(guó)機(jī)械工程,2008,19(21):2642-2645.Qiu Guoqing,Tang Xianlun,Zhuang Ling,et al.Application of Neural Network Trained by Chaos Particle Swarm Optimization to Fault Diagnosis for Rotating Machinery[J].China Mechanical Engineering,2008,19(21):2642-2645.
[3]魏峰濤,宋俐,李言,等.基于改進(jìn)粒子群算法的四輥軋機(jī)機(jī)座結(jié)構(gòu)優(yōu)化設(shè)計(jì)[J].中國(guó)機(jī)械工程,2012,23(19):2361-2365.Wei Fengtao,Song Li,Li Yan,et al.Optimal Structural Design of 4-roller Rolling Mill Frame Based on an IPSO Algorithm[J].China Mechanical Engineering,2012,23(19):2361-2365.
[4]Passino K M.Biomimicry of Bacterial Foraging for Distributed Optimization and Control[J].IEEE Control Systems Magazine,2002,22(3):52-67.
[5]易軍,李太福.求解作業(yè)車間調(diào)度的變鄰域細(xì)菌覓食優(yōu)化算法[J].機(jī)械工程學(xué)報(bào),2012,48(12):178-183.Yi Jun,Li Taifu.Bacterial Foraging Optimization Algorithm Based on Variable Neighborhood for Job-shop Scheduling Problem[J].Chinese Journal of Mechanical Engineering,2012,48(12):178-183.
[6]高政威,龐哈利,汪定偉.基于菌群自適應(yīng)覓食的公交調(diào)度建模仿真與優(yōu)化[J].系統(tǒng)仿真學(xué)報(bào),2011,23(6):1151-1155,1160.Gao Zhengwei,Pang Hali,Wang Dingwei.Adaptive Bacterial Foraging Optimization and Its Application for Bus Scheduling[J].Journal of System Simulation,2011,23(6):1151-1155,1160.
[7]Biswas A,Desgupta S,Das S,et al.Synergy of PSO and Bacterial Foraging Optimization-A Comparative Study on Numerical Benchmarks[J].Innovations in Hybrid Intelligent Systems,Advances in Soft Computing.,2007,44:255-263.
[8]陳東寧,姜萬錄,王益群.基于粒子群算法的冷連軋機(jī)軋制負(fù)荷分配優(yōu)化[J].中國(guó)機(jī)械工程,2007,18(11):1303-1306.Chen Dongning,Jiang Wanlu,Wang Yiqun.Load Distribution Optimization of Tandem Cold Mill Based on PSO Algorithm[J].China Mechanical Engineering,2007,18(11):1303-1306.
[9]Shi Y,Eberhart R.A Modified Particle Swarm Optimizer[C]//IEEE International Conference on Evolutionary Computation.Anchorage,1998:69-73.
[10]Huang T,Mohan A S.Micro-particle Swarm Optimizer for Solving High Dimensional Optimization Problems(μPSO for High Dimensional Optimization Problems)[J].Applied Mathematics and Computation,2006,181(2):1148-1154.