陳 亮 ,李助軍 ,鄒偉全 ,李西兵
(1.福建農(nóng)林大學(xué)機(jī)電工程學(xué)院,福建 福州 350000;2.廣州鐵路職業(yè)技術(shù)學(xué)院機(jī)電工程學(xué)院,廣東 廣州 510000)
在工業(yè)4.0 時(shí)代背景下,精密控制技術(shù)的應(yīng)用將變得更加廣泛。例如,外科手術(shù)中的醫(yī)用機(jī)器人可用更精準(zhǔn)、侵入性更小的方式進(jìn)行手術(shù)[1-2]。精密控制涉及多種技術(shù)和方法,包括傳感器技術(shù)、控制算法、運(yùn)動(dòng)控制技術(shù)、機(jī)器視覺(jué)等。其中,控制算法是精密控制的核心部分,常用的控制算法包括比例積分微分(PID)控制、模糊控制、神經(jīng)網(wǎng)絡(luò)控制等。PID 控制器作為最常見(jiàn)的控制器,算法實(shí)現(xiàn)簡(jiǎn)單,應(yīng)用范圍廣。自從PID 控制器產(chǎn)生以來(lái),如何快速、方便地整定PID 參數(shù)一直是學(xué)術(shù)界、產(chǎn)業(yè)界的研究重點(diǎn)。傳統(tǒng)的PID 控制器往往容易出現(xiàn)超調(diào)、響應(yīng)時(shí)間長(zhǎng)、易發(fā)生震蕩等缺點(diǎn)。由于計(jì)算機(jī)的處理性能不斷提升,越來(lái)越多的智能優(yōu)化算法運(yùn)用在PID 參數(shù)優(yōu)化中。臺(tái)灣學(xué)者Pan 在2011 年提出了一種模仿果蠅覓食行為的群智能算法——果蠅優(yōu)化算法(FOA)[3]。該算法具有簡(jiǎn)單、計(jì)算量小、適用度高、容易和其他算法結(jié)合得到更優(yōu)的算法等優(yōu)點(diǎn),被多個(gè)學(xué)者進(jìn)行優(yōu)化并且運(yùn)用在不同領(lǐng)域[4-5]。李明輝等提出一種自適應(yīng)果蠅優(yōu)化算法的PID 參數(shù)優(yōu)化法,以控制偏差絕對(duì)值和輸入平方項(xiàng)的時(shí)間積分作為適應(yīng)度函數(shù),經(jīng)過(guò)迭代尋優(yōu)得到最優(yōu)的PID 參數(shù)值[6]。Liu 等將混沌搜索與FOA 算法結(jié)合來(lái)整定PID 參數(shù),有效降低了適應(yīng)度波動(dòng)[7]。韋修喜等將混沌映射、判別因子與變步長(zhǎng)機(jī)制引入果蠅優(yōu)化算法得到改進(jìn)后的自適應(yīng)混沌果蠅優(yōu)化算法(fruit fly optimization algorithm with chaos and discriminant factors, CDFOA),利用CDFOA 優(yōu)化BP神經(jīng)網(wǎng)絡(luò)的初始權(quán)值與閾值,解決了BP 神經(jīng)網(wǎng)絡(luò)存在預(yù)測(cè)精度不佳、預(yù)測(cè)結(jié)果不穩(wěn)定的問(wèn)題[8]。李猛等采用變換函數(shù)確定自適應(yīng)步長(zhǎng),提出一種動(dòng)態(tài)步長(zhǎng)果蠅優(yōu)化算法(dynamic step fruit fly optimization algorithm, DSFOA),提升了算法的收斂精度和搜尋效率[9]。
對(duì)基本果蠅優(yōu)化算法(FOA)的PID 參數(shù)整定在收斂過(guò)程中比較緩慢且容易過(guò)早陷入局部最優(yōu)的缺陷的問(wèn)題進(jìn)行了研究,提出了混合果蠅優(yōu)化算法(HFOA)PID 參數(shù)整定方案。通過(guò)粒子群搜索機(jī)制和適應(yīng)度函數(shù)選擇出多個(gè)優(yōu)秀粒子,在優(yōu)秀粒子周圍生成果蠅種群,再用FOA 對(duì)種群進(jìn)行迭代尋優(yōu),尋找出最優(yōu)參數(shù)。仿真結(jié)果表明,該算法收斂速度快并且能夠準(zhǔn)確地尋找到最優(yōu)參數(shù),很大程度上避免了陷入局部最優(yōu)的情況,有效提高了PID控制器的控制精度。
PID的控制規(guī)律為:
式中,KP為比例系數(shù);KI=KP/TI,為積分增益;微分增益為KD=KPTD。
比例系數(shù)KP用于反映系統(tǒng)的偏差信號(hào)e(t),當(dāng)系統(tǒng)輸出結(jié)果出現(xiàn)偏差,控制器立即成比例地產(chǎn)生控制作用,減少誤差,KP越大系統(tǒng)達(dá)到目標(biāo)越迅速,但過(guò)大的比例系數(shù)容易使系統(tǒng)產(chǎn)生超調(diào)。積分增益KI主要用于消除系統(tǒng)靜態(tài)誤差,提高系統(tǒng)的無(wú)差度,KI越大系統(tǒng)越容易達(dá)到目標(biāo)位置,但過(guò)大的積分增益也容易導(dǎo)致積分過(guò)飽和從而出現(xiàn)超調(diào)。微分增益為KD反映了偏差信號(hào)的變化率,并在偏差信號(hào)過(guò)大時(shí)引入一個(gè)有效的矯正信號(hào),從而減少系統(tǒng)的調(diào)節(jié)時(shí)間,KD越大越能有效減少系統(tǒng)超調(diào),但同時(shí)也會(huì)延長(zhǎng)系統(tǒng)的調(diào)節(jié)時(shí)間。所以,要選擇合適的控制參數(shù)才能夠使系統(tǒng)的輸出滿足穩(wěn)定、準(zhǔn)確、快速三個(gè)指標(biāo)。
果蠅優(yōu)化算法(FOA)是一種模仿果蠅覓食過(guò)程的區(qū)域內(nèi)全局優(yōu)化的新方法。果蠅本身在感官知覺(jué)上優(yōu)于其他物種,尤其在嗅覺(jué)與視覺(jué)上。果蠅的嗅覺(jué)器官能很好地搜集飄浮在空氣中的各種氣味,甚至能嗅到40 km 以外的食物源,在果蠅個(gè)體依靠嗅覺(jué)發(fā)現(xiàn)食物源位置方向后,立刻朝該方向飛去,到達(dá)食物位置附近后再依靠敏銳的視覺(jué)發(fā)現(xiàn)食物和同伴聚集的位置,并且往該方向飛去[10]。果蠅覓食行為示意圖如圖1所示。

圖1 果蠅覓食行為示意圖
果蠅優(yōu)化算法尋優(yōu)過(guò)程如下:
1)初始化果蠅種群數(shù)量、迭代次數(shù)和每個(gè)果蠅個(gè)體的初始位置(x,y)。
2)每個(gè)果蠅(x,y)隨機(jī)向不同方向和不同距離前進(jìn)到(xi,yi)。
其中,a為隨機(jī)生成的值。
3)由于不能確定食物的具體位置,計(jì)算果蠅到原點(diǎn)的距離Di,然后得到味道濃度判定值Si,代入適應(yīng)度函數(shù)F(Si)中得到果蠅個(gè)體的味道濃度Smelli。
4)在果蠅種群中找到最優(yōu)的味道濃度和個(gè)體。
5)記錄最優(yōu)味道濃度Smellbest=bestSmell并將坐標(biāo)(xb,yb)保留下來(lái)。
重復(fù)步驟2 至步驟5 進(jìn)行迭代尋優(yōu),記錄當(dāng)前濃度并判斷是否優(yōu)于前一次的最佳濃度,如果是便替代最佳濃度進(jìn)行下一次迭代。
由于果蠅算法無(wú)論在尋優(yōu)初期還是后期均根據(jù)式(2)進(jìn)行位置分配,固定搜索位置就導(dǎo)致在算法搜索前期搜索效率低而在搜索后期又容易錯(cuò)過(guò)最優(yōu)解。通常情況下,在尋優(yōu)過(guò)程初期,需要更好的全局搜索能力[11]。混合果蠅優(yōu)化算法流程如圖2 所示,由于算法的初始解是隨機(jī)生成的,為了減少迭代過(guò)程中的計(jì)算次數(shù),可以根據(jù)優(yōu)化目標(biāo)函數(shù)值對(duì)初始解進(jìn)行初步篩選[12]。在果蠅迭代尋優(yōu)前,利用粒子群算法優(yōu)秀的全局搜索能力在范圍內(nèi)標(biāo)記出多個(gè)優(yōu)質(zhì)粒子,優(yōu)質(zhì)粒子在果蠅覓食過(guò)程中代表的就是食物更容易出現(xiàn)的點(diǎn),再在優(yōu)質(zhì)粒子附近生成若干果蠅形成的種群,種群內(nèi)每個(gè)果蠅隨機(jī)向不同方向和不同距離前進(jìn)并進(jìn)行迭代。根據(jù)適應(yīng)度函數(shù)對(duì)所有果蠅篩選出最優(yōu)的果蠅個(gè)體以及對(duì)應(yīng)的種群,記錄下所在種群經(jīng)過(guò)迭代后的最優(yōu)果蠅個(gè)體位置。

圖2 混合果蠅優(yōu)化算法流程圖
為了防止初始誤差較大影響獲取理想的動(dòng)態(tài)特性,采用誤差絕對(duì)值的時(shí)間積分性能指標(biāo)作為最小目標(biāo)函數(shù)[13]。所以本文在粒子群優(yōu)秀個(gè)體的篩選和果蠅迭代過(guò)程中都采用絕對(duì)誤差積分作為主要的性能指標(biāo):
其中,e(t)=rin(t)-yout(t),rin(t)為輸入量,yout(t)為經(jīng)過(guò)PID控制系統(tǒng)后的輸出。
為了避免系統(tǒng)出現(xiàn)超調(diào),應(yīng)當(dāng)引入w2|e(t)|作為懲罰機(jī)制。當(dāng)系統(tǒng)出現(xiàn)超調(diào)時(shí),即當(dāng)e(t)>0 時(shí),性能指標(biāo)為:
其中,w2>>w1,本文取w2=100,w1=1。
優(yōu)質(zhì)粒子的適應(yīng)度范圍為:
其中,ITAEh(i)為達(dá)到優(yōu)秀粒子條件的最大適應(yīng)度,ITAEmin(i)為最佳適應(yīng)度,n為常數(shù)。
基于混合果蠅優(yōu)化算法的PID 參數(shù)整定原理如圖3所示。

圖3 HFOA 的PID參數(shù)整定原理
HFOA 算法用于PID參數(shù)整定的步驟如下:
1)粒子群初始化,如粒子群規(guī)模、粒子群生成范圍、粒子所在位置等,由于PID 控制器有KP、KI、KD三個(gè)參數(shù),故選定粒子位置為:
2)通過(guò)式(7)計(jì)算各粒子適應(yīng)度ITAE(i),用式(8)篩選出優(yōu)質(zhì)粒子并進(jìn)行保存。優(yōu)質(zhì)粒子所在位置為:
3)在優(yōu)質(zhì)粒子周圍區(qū)域生成果蠅種群,設(shè)置果蠅種群大小sizepop 最大迭代次數(shù)maxgen。初始化每個(gè)果蠅個(gè)體位置X。可以根據(jù)實(shí)際應(yīng)用場(chǎng)景限定果蠅個(gè)體位置出現(xiàn)范圍:
其中,X(1)、X(2)、X(3)對(duì)應(yīng)優(yōu)質(zhì)粒子X(jué)的三個(gè)坐標(biāo)kp、ki、kd,a、b、c為選定的常數(shù)。
4)根據(jù)式(12)隨機(jī)分配果蠅尋找食物的方向和距離,為了保證果蠅迭代后種群收斂,引入收斂系數(shù)wn=w*λi,其中λ=0.95,w為常數(shù),i為當(dāng)前種群個(gè)體迭代次數(shù)。
5)通過(guò)式(7)計(jì)算每個(gè)種群適應(yīng)度,從果蠅種群中尋找最優(yōu)的濃度和個(gè)體,果蠅自適應(yīng)搜索位置更新。
6)進(jìn)行果蠅迭代尋優(yōu),步驟4、步驟5 循環(huán)進(jìn)行,判斷此次濃度是否優(yōu)于上一次最佳濃度、是否小于最大迭代次數(shù),如果是,便更新最佳濃度。輸出最優(yōu)個(gè)體氣味濃度Smellbest和PID控制的最優(yōu)參數(shù)Xbest。
在工業(yè)控制中,大多數(shù)控制對(duì)象可以看作二階延遲系統(tǒng)。將兩個(gè)典型二階帶延遲的傳遞函數(shù)作為控制對(duì)象進(jìn)行研究,分別用FOA、PSO、HFOA 對(duì)PID 控制器的參數(shù)進(jìn)行整定。選定的兩個(gè)控制對(duì)象傳遞函數(shù)為:
對(duì)系統(tǒng)進(jìn)行仿真,仿真環(huán)境為MATLAB2021a。輸入信號(hào)采用單位階躍信號(hào),采樣周期為0.001 s。
在FOA 和PSO 算法中,設(shè)置粒子群規(guī)模為300,初始控制參數(shù)KP、KI、KD為5、0.1、0.1。KP的隨機(jī)范圍為[0,100],KI的隨機(jī)范圍為[0,20],KD的隨機(jī)范圍為[0,20]。設(shè)定果蠅種群大小為30,迭代次數(shù)為100。
在HFOA 算法中,設(shè)置粒子群規(guī)模為300,KP的隨機(jī)范圍為[0,100],KI的隨機(jī)范圍為[0,20],KD的隨機(jī)范圍為[0,20]。設(shè)定果蠅種群大小為30,迭代次數(shù)為100。迭代過(guò)程中果蠅個(gè)體出現(xiàn)的范圍KP、KI、KD根據(jù)式(2)、式(10)確定,其中,收斂系數(shù)wn=w*λi,w1=1、w2=0.02、w3=0.1、λ=0.95,i為當(dāng)前種群個(gè)體迭代次數(shù),a、b、c分別取10、0.2、0.05。
選取上升時(shí)間、調(diào)節(jié)時(shí)間、超調(diào)量和ITAE作為控制性能衡量指標(biāo);使用三種算法對(duì)PID 參數(shù)分別進(jìn)行優(yōu)化,計(jì)算100 次取平均值,所得出的計(jì)算結(jié)果如表1所示。

表1 3種算法的 PID 優(yōu)化參數(shù)對(duì)比
其中,上升時(shí)間是輸出信號(hào)從穩(wěn)態(tài)值10%上升到90%所需的時(shí)間;超調(diào)量是響應(yīng)過(guò)程中輸出量超出穩(wěn)態(tài)值的最大偏差值所占穩(wěn)態(tài)值的百分比;調(diào)節(jié)時(shí)間是輸出衰減到穩(wěn)態(tài)值的偏差小于2%或5%所經(jīng)歷的時(shí)間,在本文中選定偏差小于2%所經(jīng)歷的時(shí)間。由此可見(jiàn),上升時(shí)間越短,系統(tǒng)響應(yīng)越快;超調(diào)量越小,系統(tǒng)越穩(wěn)定;調(diào)節(jié)時(shí)間越短,系統(tǒng)達(dá)到穩(wěn)態(tài)值越迅速,系統(tǒng)越準(zhǔn)確。
由表1 計(jì)算結(jié)果中的ITAE值可知:基于HFOA 的PID 控制方法的收斂精度要高于其他兩種方法。此外,由表1 給出的上升時(shí)間和調(diào)節(jié)時(shí)間也可以得出:基于HFOA 的PID 控制方法在控制過(guò)程中,被控系統(tǒng)達(dá)到穩(wěn)定的時(shí)間相對(duì)較短。
被控系統(tǒng)G1(S)、G2(S)分別采用三種算法控制的系統(tǒng)單位階躍響應(yīng)輸出曲線和運(yùn)算迭代曲線如圖4、圖5、圖6和圖7所示。

圖4 系統(tǒng)1的階躍響應(yīng)

圖5 系統(tǒng)1的適應(yīng)度函數(shù)曲線

圖6 系統(tǒng)2的階躍響應(yīng)

圖7 系統(tǒng)2 的適應(yīng)度函數(shù)曲線
由圖中的系統(tǒng)運(yùn)算結(jié)果可以得出:HFOA 相對(duì)于其他兩種算法迭代次數(shù)更少,誤差積分波動(dòng)更小,表明了HFOA 算法收斂更加迅速并且更加穩(wěn)定,體現(xiàn)了HFOA 在PID參數(shù)優(yōu)化中的有效性。
針對(duì)基于基本果蠅優(yōu)化算法(FOA)的PID 參數(shù)整定由于算法局限性而出現(xiàn)參數(shù)收斂速度慢且容易過(guò)早陷入局部最優(yōu)的問(wèn)題,對(duì)基本果蠅算法進(jìn)行算法協(xié)同學(xué)習(xí)優(yōu)化研究,提出了一種將粒子群算法和果蠅算法融合的PID 參數(shù)的整定方法,該算法在迭代前期使用具有更高的全局搜索效率的PSO 算法提高收斂速度;在迭代后期使用具有較強(qiáng)局部尋優(yōu)能力的FOA 算法提高收斂精度,實(shí)現(xiàn)對(duì)全局搜索和局部搜索過(guò)程的優(yōu)化。使用MATLAB2021a 進(jìn)行仿真,仿真結(jié)果表明,相比于PSO 算法和FOA 算法,基于HFOA的PID 控制器參數(shù)整定的上升時(shí)間、調(diào)節(jié)時(shí)間和超調(diào)量等指標(biāo)更優(yōu),能夠使系統(tǒng)有更好的響應(yīng)性能。與FOA 算法和PSO 算法相互比較可知,HFOA 算法迭代次數(shù)少并且迭代穩(wěn)定性好。同時(shí),使用HFOA 算法對(duì)PID 參數(shù)進(jìn)行整定不需要初始的KP、KI、KD控制參數(shù),相對(duì)于基本FOA 算法具有更高的適用性。因此,基于HFOA 算法的PID 參數(shù)優(yōu)化研究對(duì)精密控制領(lǐng)域具有一定的參考價(jià)值。