董如意,唐玉玉,桑可可
(吉林化工學(xué)院 信息與控制工程學(xué)院,吉林 吉林 132022)
隨著人類科技的迅速發(fā)展,PID控制器廣泛應(yīng)用于航天、工業(yè)、國防、農(nóng)業(yè)、化工等領(lǐng)域,PID控制器的應(yīng)用與我們當(dāng)前的生活息息相關(guān)[1].在被控對象系統(tǒng)的結(jié)構(gòu)和系數(shù)都無法完全設(shè)定時,PID控制器可以利用其比列、積分和微分3個環(huán)節(jié)調(diào)節(jié)控制系統(tǒng),以降低系統(tǒng)誤差,操作簡單、設(shè)計方便簡潔.但是對于PID控制器3個參數(shù)的選擇,過程相當(dāng)冗長煩瑣.所以,為了解決傳統(tǒng)PID控制器參數(shù)很難整定到最優(yōu)的問題,本文提出了一種經(jīng)過改進(jìn)的粒子群優(yōu)化的算法,來對PID參數(shù)進(jìn)行自適應(yīng)調(diào)整[2].改進(jìn)粒子群優(yōu)化算法采用不斷迭代自動尋求最佳解的方式,并具有求解速度快的優(yōu)勢,在Matlab環(huán)境下完成模擬仿真實驗,并把模擬仿真結(jié)果同典型PSO算法的PID整定方法加以對比,進(jìn)一步表明了該方法的可行性和優(yōu)越性.
PID控制器,由比例P、積分I和微分D3個參數(shù)所構(gòu)成.作為二階線性控制器,比例、積分和微分這3個參數(shù)可以直接影響PID控制器的控制效果.所以,通過對比例、積分和微分3個參數(shù)進(jìn)行調(diào)整[3],使系統(tǒng)達(dá)到良好的控制特性.協(xié)調(diào)這3個參數(shù)來實現(xiàn)控制器目標(biāo)的最優(yōu)值,并引入改進(jìn)粒子群算法的特性,在給定的范圍內(nèi)對3個參數(shù)進(jìn)行優(yōu)化使其能達(dá)到最為合適的值,進(jìn)而使整個控制系統(tǒng)性能達(dá)到最優(yōu).
在控制工業(yè)中最常見到的PID控制器的工作原理為:
(1)
其中,e(t)為控制誤差,即:
e(t)=r(t)-y(t),
(2)
用傳遞函數(shù)表示,則為:
(3)
其中,Kp為比例系數(shù);Ki為積分系數(shù);Kd為微分系數(shù).
粒子群算法(PSO)是一種較為成熟的群智能算法,啟發(fā)于鳥群、蜂群等覓食的場景,把生物個體當(dāng)作一個個粒子,并都處在一個D維空間進(jìn)行搜索,通過迭代尋找最優(yōu)解,并用適應(yīng)度來評價解的好壞,最后根據(jù)當(dāng)前搜索到的最優(yōu)解來尋找全局最優(yōu)解[4-6].在迭代過程中,粒子群由速度和位置兩部分組成,其粒子速度由慣性部分、自我認(rèn)知、社會經(jīng)驗3部分構(gòu)成.粒子群的優(yōu)化方程如公式(4)和公式(5)所示.
vij(t+1)=vij(t)+c1r1(t)[pij(t)-xij(t)]+c2r2(t)[pgt(t)-xij(t)],
(4)
Xij(t+1)=Xij(t)+vij(t+1),
(5)
式中小標(biāo)j表示微粒的第j維;i表示微粒i;t表示迭代次數(shù);r1、r2是相互獨立的隨機(jī)函數(shù)(取值范圍在0-1之間).c1、c1為學(xué)習(xí)因子加速常量(取值范圍在0-2之間),是調(diào)節(jié)全局最優(yōu)粒子飛行方向和粒子飛行步長的關(guān)鍵參數(shù),所以適當(dāng)?shù)倪x擇學(xué)習(xí)因子對整個系統(tǒng)是非常關(guān)鍵的[7].學(xué)習(xí)因子選擇過大或者過小都會導(dǎo)致粒子不會飛向目標(biāo)區(qū)域,c1、c1的適當(dāng)選擇需要考慮收斂速度的同時還要考慮算法陷入局部最優(yōu),所以通常把c1、c1學(xué)習(xí)因子的值設(shè)定為2.
通過對標(biāo)準(zhǔn)粒子群算法的分析,可以確定粒子群更新方程的效果是否理想是粒子群算法性能優(yōu)化的關(guān)鍵.在原始的粒子群更新方程中,粒子的位置和速度是按照自身當(dāng)前狀況、群體當(dāng)前狀況以及社會經(jīng)驗進(jìn)行更新的,如果出現(xiàn)兩個粒子足夠接近時,即學(xué)習(xí)因子c1=c1=0,粒子也就會循著當(dāng)前方向減速飛行,粒子陷入局部最優(yōu),從而使整個粒子群過早收斂.
遺傳算法(GA)是一個較為經(jīng)典的啟發(fā)式算法,選擇、交叉、變異是該算法的主要過程.在遺傳算法的交叉過程中,把兩個父代個體的部分結(jié)構(gòu)進(jìn)行重構(gòu),生成一個新的個體,其種群規(guī)模與父代一致,當(dāng)交叉概率值越大時,算法的收斂性也得到了加快,具有很強(qiáng)的局部優(yōu)化能力[8].在前期迭代搜索過程中粒子群算法加入遺傳算法的交叉操作,生成了兩個新的個體[9-10],方程如公式(6)所示.同時為了維護(hù)種群的多樣性,增強(qiáng)全局搜索能力,引入動態(tài)的慣性權(quán)重參數(shù),如公式(7)所示.
(6)
(p,q),
(7)
其中,ωmin和ωmax分別為初始權(quán)重和最大迭代次數(shù)時的權(quán)重;tmax最大迭代次數(shù);σ為慣性因子;α為[0,1]之間的隨機(jī)數(shù).
改進(jìn)的粒子群優(yōu)化算法流程如下:
Step1 設(shè)置參數(shù)并且初始化.確定粒子種群數(shù)量、最大迭代次數(shù)、粒子的隨機(jī)位置閾值和速度閾值等參數(shù),每個粒子的pbest設(shè)置為當(dāng)前位置,gbest為當(dāng)前種群的最優(yōu)值.
Step2 計算每個粒子的適應(yīng)度值.結(jié)合傳遞函數(shù)和種群位置更新方程,確定PID控制參數(shù)的設(shè)定,對種群的歷史pbest的適應(yīng)值和全局gbest的適應(yīng)度值進(jìn)行比較,對pbest和gbest進(jìn)行更新.
Step3 種群迭代更新.通過公式進(jìn)行迭代操作,更新每個粒子的位置和速度.
Step4 引入遺傳算法.保留適應(yīng)度值比較好的,并對其進(jìn)行交叉操作,產(chǎn)生同數(shù)量的子代,對子代粒子計算適應(yīng)度值,并同父代的適應(yīng)度值進(jìn)行比較,保留較好的進(jìn)行下一代.
Step5 獲取最優(yōu)解.看迭代次數(shù)有沒有超過最大迭代次數(shù),或者是否獲得最優(yōu)的適應(yīng)值.如果達(dá)到,轉(zhuǎn)入step6;否則轉(zhuǎn)入step2.
Step6 輸出gbest.
其算法流程圖如圖1所示.
為驗證基于動態(tài)慣性權(quán)重的交叉算子PSO算法在PID控制參數(shù)整定的優(yōu)化效果,本文采用的是一階傳遞函數(shù)進(jìn)行測試,方程如公式(8)所示.同時,適應(yīng)度函數(shù)的選取常用的有積分平方差(ISE)、積分時間乘絕對值誤差(ITAE)和積分絕對值誤差(IAE)[11],本文選用ITAE作為評判指標(biāo),其方程如公式(9)所示.
(8)
(9)
采用Matlab來實現(xiàn)改進(jìn)的PSO算法,Matlab軟件進(jìn)行PID整定參數(shù)的仿真,利用選擇單位階躍信號作為PID的輸入信號.在本次實驗中,初始種群的規(guī)模為100,最大迭代次數(shù)為100,c1=c2=1.5,交叉概率為0.6,變異概率設(shè)置為0.02[12-14],采用改進(jìn)的粒子群優(yōu)化算法對PID參數(shù)的整定并與標(biāo)準(zhǔn)的粒子群算法進(jìn)行比較,比較這兩種算法對PID控制器優(yōu)化的階躍響應(yīng)控制效果.
由圖2可知,ITAE性能指數(shù)會根據(jù)迭代次數(shù)的增加而不斷下降,這說明算法有較快的收斂速度,并且改進(jìn)的PSO算法其收斂速度得到了加快,明顯比標(biāo)準(zhǔn)的PSO要收斂得迅速.同時也很好地表明改進(jìn)的PSO算法可以對PID控制器的3個參數(shù)做出更合適的選擇,從而使得PID控制器的性能得到進(jìn)一步的改善,實現(xiàn)了本文提出的性能改善.
由圖3中各曲線PID控制輸出結(jié)果比較我們可以看到,標(biāo)準(zhǔn)的粒子群算法得到的單位階躍響應(yīng)曲線上升時間雖然比改進(jìn)的粒子群算法要稍微快一些,但系統(tǒng)產(chǎn)生了振蕩和超大調(diào).而用遺傳算法改進(jìn)的粒子群算法在PID參數(shù)整定中系統(tǒng)運行超調(diào)現(xiàn)象不明顯,達(dá)到對系統(tǒng)準(zhǔn)確、快速、穩(wěn)定的要求.
表1為本文所提出的改進(jìn)方案與標(biāo)準(zhǔn)PSO方案應(yīng)用于PID參數(shù)整定的性能對比分析.
表1 數(shù)據(jù)優(yōu)化結(jié)果平均值
從表1中可以發(fā)現(xiàn),在相同的迭代次數(shù)下,與標(biāo)準(zhǔn)PSO相比改進(jìn)粒子群算法其優(yōu)化效果要好,在快速達(dá)到整定狀態(tài)和找到全局最優(yōu)解方面也要比標(biāo)準(zhǔn)的PSO算法好.由此可知,在PID參數(shù)整定中,運用改進(jìn)的PSO算法具有更好的系統(tǒng)優(yōu)化性能,實現(xiàn)了更快的收斂速度,并防止了過早收斂.
結(jié)合遺傳算法中交叉算子和粒子群收斂快、運行簡單的優(yōu)點上,提出了一種改進(jìn)的粒子群算法.在前期搜索過程中,粒子群位置方程公式轉(zhuǎn)化為PID 3個參數(shù)對其進(jìn)行迭代更新,并同時引入交叉算子,防止收斂過快陷入局部最優(yōu),又為了保證種群的多樣性加入動態(tài)的權(quán)重因子,使控制系統(tǒng)的全局優(yōu)化性能得到改善.實驗結(jié)果表明,改進(jìn)粒子群算法優(yōu)化的PID參數(shù)使得系統(tǒng)性能指標(biāo)改善得更好:系統(tǒng)沒有超調(diào)量、穩(wěn)態(tài)誤差相對較小,基本達(dá)到預(yù)期的效果.