任宇希,丁振偉,莫愁,覃柄涪,肖浩彬
(1.桂林電子科技大學(xué) 541004;2.桂林智工科技有限責(zé)任公司 541001)
隨著計(jì)算機(jī)技術(shù)的發(fā)展,PID控制因其簡(jiǎn)單、方便的優(yōu)勢(shì),被廣泛應(yīng)用于電子、自動(dòng)控制、航天等領(lǐng)域[1-2],在工程控制領(lǐng)域有著十分重要的地位,在實(shí)際系統(tǒng)中所占比例超過90%[3]。對(duì)于PID控制,最為關(guān)鍵的就是PID的參數(shù)整定,常規(guī)的參數(shù)整定方法,比較復(fù)雜難以實(shí)現(xiàn),而且多存在震蕩的情況。使用智能算法能有效快速地實(shí)現(xiàn)PID參數(shù)整定。文獻(xiàn)[4]提出了蝙蝠算法的PID參數(shù)整定,分別使用Ziegler-Nichols方法、粒子群算法和蝙蝠算法獲得PID參數(shù),對(duì)比了三種方法的系統(tǒng)閉環(huán)性能和運(yùn)行效率。
禿鷹搜索(bald eagle search,BES)優(yōu)化是馬來西亞學(xué)者Alsattar于2020年提出的一種新型元啟發(fā)式算法,該算法具有較強(qiáng)的全局搜索能力,能夠有效地解決各類復(fù)雜數(shù)值優(yōu)化問題的優(yōu)點(diǎn)[5]。其算法原理如下:
禿鷹是一種遍布于北美洲地區(qū)的猛禽,飛行中視力敏銳,觀察能力優(yōu)秀.以其捕食鮭魚為例,首先禿鷹會(huì)基于個(gè)體和種群到鮭魚的濃度來選擇搜索空間,朝一個(gè)特定區(qū)域飛行;其次在選定搜索空間內(nèi)搜索水面,直到發(fā)現(xiàn)合適的獵物;最后禿鷹會(huì)逐漸改變飛行高度,快速向下俯沖,從水中成功捕獲鮭魚等獵物。BES算法以禿鷹捕食獵物的行為進(jìn)行模擬,將其分為選擇搜索空間、搜索空間獵物和俯沖捕獲獵物三個(gè)階段。
在控制系統(tǒng)中,PID控制的應(yīng)用十分廣泛,傳統(tǒng)的PID控制一般是由控制器和受控對(duì)象所組成,是一種線性的控制系統(tǒng)。
PID 參數(shù)優(yōu)化的目的在于尋找一組 Kp、Ki、Kd,使系統(tǒng)的指標(biāo)達(dá)到最優(yōu)。
r(t)為系統(tǒng)的輸入,y(t)為系統(tǒng)的輸出,e(t)為系統(tǒng)的偏差,u(t)為PID控制器的輸出,故存在以下表達(dá)式:
PID控制的標(biāo)準(zhǔn)函數(shù)公式如下:
經(jīng)過標(biāo)準(zhǔn)簡(jiǎn)化的傳遞函數(shù)模型如下:
K為控制器增益,Ti為積分時(shí)間常數(shù),Td為微分時(shí)間常數(shù)。
影響系統(tǒng)性能的指標(biāo)有很多,單位階躍信號(hào)和穩(wěn)態(tài)誤差分別用來衡量閉環(huán)系統(tǒng)的動(dòng)態(tài)性能和穩(wěn)態(tài)性能,我們所指的動(dòng)態(tài)性能一般包括上升時(shí)間tr、峰值時(shí)間 tp、超調(diào)量 σ、調(diào)節(jié)時(shí)間 ts、震蕩次數(shù)N。使用禿鷹算法進(jìn)行PID參數(shù)優(yōu)化,每只禿鷹都可以分別作為Kp(比例)、Ki(積分)、Kd(微分)三個(gè)參數(shù),在搜索空間內(nèi),令 Kp∈[kpmin,kpmax],Ki∈[kimin,kimax],Kd∈[kdmin,kdmax],對(duì)種群進(jìn)行初始化、適應(yīng)度計(jì)算、迭代計(jì)算,搜索出一組(kp、ki、kd)使得全局解最優(yōu)。將全局最優(yōu)解對(duì)應(yīng)的參數(shù)賦值給 Kp、Ki、Kd,畫出單位階躍曲線和適應(yīng)度曲線。禿鷹算法整定PID參數(shù)系統(tǒng)框圖如圖1所示。
圖1 禿鷹算法整定PID參數(shù)
根據(jù)被控對(duì)象模型,經(jīng)過算法迭代尋找到全局最優(yōu)解,然后將對(duì)應(yīng)的最優(yōu)參數(shù)代入PID控制器,在每個(gè)迭代周期開始時(shí),首先需要確定禿鷹的搜索空間,再來更新禿鷹的位置、更新運(yùn)動(dòng)狀態(tài)進(jìn)行捕獲行動(dòng),接著更新捕獲行動(dòng)中的位置,局部尋優(yōu)的速度和準(zhǔn)確性有所提高。
在算法優(yōu)化參數(shù)的過程中,利用誤差絕對(duì)值時(shí)間指標(biāo)作為參數(shù)選擇的最小目標(biāo)函數(shù),在目標(biāo)函數(shù)中加入平方項(xiàng),可以有效預(yù)防控制能量溢出,目標(biāo)函數(shù)的公式如下:
同時(shí)為了避免超調(diào),設(shè)置懲罰函數(shù)功能,即如果產(chǎn)生超調(diào),將超調(diào)量作為最優(yōu)指標(biāo)其中的一項(xiàng)[6]。目標(biāo)函數(shù)如下所示:
式中,ω1取值為 0.999,ω2取值為 0.01,(t)為誤差,u(t)為控制器輸出。
實(shí)驗(yàn)基于Matlab平臺(tái),算法參數(shù)設(shè)置維度為3,種群數(shù)量為50,最大迭代次數(shù)為100,控制螺旋參數(shù) a=10,R=1.5。在控制領(lǐng)域,典型的系統(tǒng)一般為一階系統(tǒng)、二階系統(tǒng),為了驗(yàn)證禿鷹算法整定PID算法的性能,選用文獻(xiàn)[7]中一個(gè)經(jīng)典的控制系統(tǒng)模型進(jìn)行測(cè)試,并且與PSO-PID進(jìn)行比較,系統(tǒng)的開環(huán)傳遞函數(shù)如下:
基于該傳遞函數(shù)的適應(yīng)度曲線如圖2所示:
圖2 最優(yōu)適應(yīng)度曲線
圖3 BES-PID單位階躍曲線
圖4 PSO-PID單位階躍曲線
由實(shí)驗(yàn)的圖像可以看出,基于禿鷹算法的PID參數(shù)整定下的適應(yīng)度曲線相比PSO算法,通過較少的迭代之后達(dá)到穩(wěn)定。單位階躍曲線來看,BESPID的超調(diào)量峰值為1.012,小于PSO-PID的超調(diào)量峰值1.016。所以,BES算法的優(yōu)化PID參數(shù)在最優(yōu)適應(yīng)度曲線的迭代次數(shù)和優(yōu)化超調(diào)量方面皆優(yōu)于PSO算法。
本文引入了禿鷹算法進(jìn)行PID參數(shù)整定,該算法具有較強(qiáng)的全局搜索能力,能有效解決比較復(fù)雜的尋優(yōu)問題。輸入信號(hào)為單位階躍信號(hào),以一種常見的開環(huán)控制模型為傳遞函數(shù),并且與PSO粒子群算法進(jìn)行了比較,通過對(duì)實(shí)驗(yàn)仿真結(jié)果的分析,得到了禿鷹算法在最優(yōu)適應(yīng)度曲線穩(wěn)定所需時(shí)長(zhǎng)以及超調(diào)量方面均優(yōu)于PSO粒子群算法。