王江榮,李東旭
(1.蘭州石化職業(yè)技術(shù)學(xué)院 信息處理與控制工程系,甘肅 蘭州 730060;2.電子科技大學(xué) 生命與技術(shù)學(xué)院,四川 成都 611731)
PID控制系統(tǒng)因其簡(jiǎn)單、穩(wěn)定性好和可靠性高等優(yōu)點(diǎn),被廣泛應(yīng)用到工業(yè)過程控制中。PID控制器的性能取決于它的三個(gè)參數(shù)(比例、積分和微分)的整定是否合理,因此,優(yōu)化PID控制器參數(shù)具有重要意義。但是PID參數(shù)的整定一般需要經(jīng)驗(yàn)豐富的工程技術(shù)人員來完成,這種方法不僅費(fèi)時(shí),而且不能保證獲得最佳性能。粒子群算法(Particle Swarm Optimization,PSO)是一種有效的全局尋優(yōu)算法,本文將使用PSO對(duì)PID控制器的參數(shù)進(jìn)行優(yōu)化設(shè)計(jì)。另外,在有噪聲干擾的控制系統(tǒng)中,噪聲往往是非平穩(wěn)隨機(jī)過程,因其時(shí)變性,致使功率譜不固定。卡爾曼濾波(R.E Kalman)是一種具有最小無偏差性,適用于非平穩(wěn)序列濾波的算法,它是能夠剔除隨機(jī)干擾誤差,獲取逼近真實(shí)情況的有用信息,且能自適應(yīng)地處理觀測(cè)值。基于此,本文建立了基于粒子群算法和卡爾曼濾波器的PID控制方法,有效地解決了PID控制系統(tǒng)中存在的參數(shù)的整定及控制干擾信號(hào)和測(cè)量噪聲信號(hào)問題。仿真結(jié)果表明該方法具有良好的控制效果,明顯地改善了系統(tǒng)的靜態(tài)和動(dòng)態(tài)特性。
粒子群優(yōu)化算法(Particle Swarm Optimization,PSO)是Kennedy和Eberhart受鳥群覓食行為啟發(fā)于1995年提出的一種全局優(yōu)化算法[1-2]。PSO算法(一種仿生算法)具有搜索能力強(qiáng)、收斂速度快、設(shè)置參數(shù)少、程序易實(shí)現(xiàn)和無需梯度信息等特點(diǎn)。所有的粒子(搜索空間中的鳥)都有一個(gè)由被優(yōu)化函數(shù)決定的適應(yīng)值和一個(gè)決定它們運(yùn)動(dòng)方向和運(yùn)動(dòng)距離的速度,問題的解就是搜索空間中的一只鳥的位置。PSO算法的主要特點(diǎn)為:(1)每一粒子都被賦予了初始隨機(jī)速度并在解空間中流動(dòng);(2)個(gè)體具有記憶功能;(3)個(gè)體的進(jìn)化主要是它本身的飛行經(jīng)驗(yàn)以及同伴的飛行經(jīng)驗(yàn)進(jìn)行動(dòng)態(tài)調(diào)整,通過迭代找到最優(yōu)解。在每一次迭代過程中,粒子通過追逐兩個(gè)極值來更新自己的位置。一個(gè)是粒子自身所找到的當(dāng)前最優(yōu)解,這個(gè)解稱為個(gè)體極值pbest;另一個(gè)是整個(gè)群體當(dāng)前找到的最優(yōu)解,這個(gè)解稱為全局極值pbest
PSO 算法如下[3]:
設(shè)在一個(gè)D維搜索空間中,由n個(gè)粒子組成的種群X=(X1,X2,…,Xn),其中第i個(gè)粒子表示為一個(gè)D維的向量Xi=(xi1,xi2,…,xiD)T,代表第i個(gè)粒子在 D維搜索空間中的位置,亦代表問題的一個(gè)潛在解。根據(jù)目標(biāo)函數(shù)即可計(jì)算出每個(gè)粒子位置Xi對(duì)應(yīng)的適應(yīng)度值。第 i個(gè)粒子的速度為 Vi=(vi1,vi2,…,viD)T,i=1,2,…,n。記第i個(gè)粒子搜索到的最優(yōu)位置(即個(gè)體最優(yōu)值pbest)為Pi=(pi1,pi2,…,piD)T;整個(gè)粒子群搜索到的最優(yōu)位置(全局最優(yōu)值gbest)為Pg=(pg1,pg2,…,pgD)T。當(dāng)兩個(gè)最優(yōu)解都找到后,每個(gè)粒子根據(jù)下式來更新自己的狀態(tài)。
粒子狀態(tài)更新操作如下:
其中,vid(t+1)表示第 i個(gè)粒子在 t+1次迭代中第 d(d=1,2,…,D)維上的速度;w為慣性權(quán)重,η1,η2為加速常數(shù)(學(xué)習(xí)因子),rand()為0~1之間的隨機(jī)數(shù)。此外,為使粒子速度不致過大,可設(shè)置速度上下限,即 vid∈[-vmax,vmax],vmax是之前設(shè)定的最大速率(邊界值),t為當(dāng)前迭代次數(shù)。Pt是粒子迄今為止搜索到的最優(yōu)位置;Gt是整個(gè)粒子群迄今為止搜索到的最優(yōu)位置。
用于參數(shù)估計(jì)的PSO算法具體實(shí)現(xiàn)過程如下:
(1)初始化粒子群,隨機(jī)產(chǎn)生所有粒子群的位置和速度,并確定粒子的Pt和Gt。
(2)對(duì)每個(gè)粒子,將其適應(yīng)值與該粒子所經(jīng)歷過的最優(yōu)位置Pt的適應(yīng)值進(jìn)行比較,如較好,則將其作為當(dāng)前的。
(3)對(duì)每個(gè)粒子,將其適應(yīng)值與整個(gè)粒子群所經(jīng)歷過的最優(yōu)位置Gt的適應(yīng)值進(jìn)行比較,如較好,則將其作為當(dāng)前的Pt。
(4)按式(1)和(2)更新粒子的速度和位置。
(5)如果沒有滿足終止條件(通常為預(yù)設(shè)的最大迭代次數(shù)和適應(yīng)值下限值),則返回步驟(2);否則,退出算法,得到最優(yōu)解。
卡爾曼濾波是以最小均方誤差為準(zhǔn)則的最佳線性估計(jì),它根據(jù)前一個(gè)估計(jì)值和最近一個(gè)觀測(cè)數(shù)據(jù)來估計(jì)信號(hào)的當(dāng)前值,利用狀態(tài)方程和遞推方法進(jìn)行估計(jì),而且得到的解也是以估計(jì)值的形式給出的,最大的特點(diǎn)是能夠去除測(cè)量系統(tǒng)中的隨機(jī)誤差,來獲取更接近真實(shí)值的信息,能較好的應(yīng)用于處理多變量系統(tǒng),時(shí)變系統(tǒng)及非線性系統(tǒng)的最佳濾波等??柭鼮V波器結(jié)構(gòu)[4]如圖1。
對(duì)于離散域線性系統(tǒng)[4]:
式中x(k)是系統(tǒng)的n維狀態(tài)向量;yv是m維帶有噪聲的測(cè)量向量;A是 n×n維非奇異狀態(tài)一步轉(zhuǎn)移矩陣;矩陣B是n×l維可選的控制輸入u∈Rl的增益;C是m×n維觀測(cè)矩陣。系統(tǒng)的n維過程激勵(lì)噪聲w(k)和m維測(cè)量噪聲v(k)是不相關(guān)的零均值高斯白噪聲。
離散卡爾曼濾波器遞推算法為:
圖1 卡爾曼濾波結(jié)構(gòu)圖
誤差的協(xié)方差為:errcov(v(k))=CP(k)CT
基于粒子群算法和卡爾曼濾波的PID控制系統(tǒng)結(jié)構(gòu)如圖2所示。
圖2 與粒子群優(yōu)化算法和卡爾曼濾波相結(jié)合的PID系統(tǒng)結(jié)構(gòu)
控制系統(tǒng)通過卡爾曼濾波器對(duì)混有控制干擾信號(hào)和測(cè)量噪聲信號(hào)進(jìn)行濾波,反饋到系統(tǒng)輸入端,利用粒子群算法對(duì)PID控制器的參數(shù)進(jìn)行優(yōu)化。
圖2中粒子群算法與PID控制系統(tǒng)之間連接的橋梁是粒子(即PID控制器參數(shù))和該粒子對(duì)應(yīng)的適應(yīng)值(即控制系統(tǒng)的性能指標(biāo))。優(yōu)化過程如下:PSO產(chǎn)生粒子群(可以是初始化粒子群,也可以是更新后的粒子群),將該粒子群中的粒子依次賦值給PID控制器的參數(shù)Kp,Ki,Kd,然后運(yùn)行控制系統(tǒng)模型,得到該組參數(shù)對(duì)應(yīng)的性能指標(biāo),該性能指標(biāo)傳遞到PSO中作為該粒子的適應(yīng)值,最后判斷是否可以退出算法。
設(shè)被控對(duì)象為系統(tǒng)[5]:
設(shè)采樣時(shí)間為0.001 s,將傳遞函數(shù)進(jìn)行離散化得到:
假設(shè)系統(tǒng)的初值[6]x(0)=,u(0)=0,D=[0],P(0)=BQBT,取 Q=1,R=1。輸入信號(hào)為一階躍信號(hào),控制干擾信號(hào)w(k)和測(cè)量噪聲信號(hào)V(k)幅值均為0.002的白噪聲信號(hào),采用卡爾曼濾波器實(shí)現(xiàn)信號(hào)濾波。粒子群算法中的參數(shù)為:慣性因子w=0.6,加速常數(shù)c1=c2=2,維數(shù)為3(有3 個(gè)待優(yōu)化參數(shù) kp,ki,kd),粒子群規(guī)模為30,待優(yōu)化函數(shù)為:
圖3 常規(guī)PID控制階躍響應(yīng)
最大迭代次數(shù)為100,最小適應(yīng)值為0.1,速 度 范 圍 為[-1,1],3 個(gè)待優(yōu)化參數(shù) kp,ki,kd范圍均為[0,10]。
(1)取kp=6.0,ki=0.8,kd=0.2(經(jīng)驗(yàn)值),則常規(guī)的PID控制下系統(tǒng)的仿真結(jié)果如圖3所示。
圖4 基于卡爾曼濾波的PID階躍響應(yīng)
圖5 仿真結(jié)果比較圖
圖中 r,y為無因次量,其中y為實(shí)際值,r為階躍值,且r=1。橫軸為時(shí)間軸,單位為 s;縱軸為數(shù)值軸,以下(圖4及圖6)相同。
(2)基于 R.E Kalman-PID控制系統(tǒng)的仿真結(jié)果如下圖4。
(3)經(jīng)粒子群算法優(yōu)化后得到的參數(shù)為kp=9.307 1;ki=9.680 8;kd=0.477 0。基于 R.E Kalman-PSO-PID 的系統(tǒng)仿真結(jié)果與基于R.E Kalman-PID的系統(tǒng)仿真結(jié)果比較如圖5所示。
比較圖3與圖4,可以看出,采用卡爾曼濾波的PID控制,可以得到穩(wěn)定的系統(tǒng)輸出,能夠顯著地減小噪聲的影響。圖5表明經(jīng)粒子群優(yōu)化算法和卡爾曼濾波算法的PID控制除了能夠效抑制噪聲對(duì)系統(tǒng)穩(wěn)定性造成的不利影響外,還能夠能夠有效減少系統(tǒng)的峰值時(shí)間,減小震蕩次數(shù)和超調(diào)量,使系統(tǒng)快速達(dá)到穩(wěn)定狀態(tài),提高的系統(tǒng)的動(dòng)態(tài)性能和靜態(tài)性能,增強(qiáng)的系統(tǒng)的魯棒性。另外,在利用粒子群算法對(duì)參數(shù)進(jìn)行優(yōu)化時(shí),如果將搜索范圍擴(kuò)大到[0,300],我們得到另一組優(yōu)化參數(shù):kp=166.258 4,ki=294.035 1,kd=1.242 8,可以進(jìn)一步提高控制器的控制品質(zhì),使上升時(shí)間更短,且使系統(tǒng)進(jìn)入的穩(wěn)態(tài)時(shí)間縮短了約50%,快速達(dá)到目標(biāo)值,仿真結(jié)果如圖6。
圖6 參數(shù)優(yōu)化系統(tǒng)仿真曲線
本文提出基于粒子群算法和卡爾曼濾波器的PID控制方法,有效地解決了PID控制系統(tǒng)中參數(shù)的整定以及控制干擾信號(hào)和測(cè)量噪聲信號(hào)問題,提高了系統(tǒng)的抗干擾能力和控制品質(zhì)。仿真結(jié)果表明這種控制方法能使系統(tǒng)各項(xiàng)指標(biāo)有了明顯的提高,尤其是超調(diào)量有了明顯的減少,縮短上升時(shí)間。該方法有一定的實(shí)用價(jià)值。
[1]史峰,王輝,胡斐,等.MATLAB智能算法30個(gè)案例分析[M].北京:北京航空航天大學(xué)出版社,2012:130-131.
[2]許國(guó)根 ,賈瑛.模式識(shí)別與智能計(jì)算的MATLAB實(shí)現(xiàn)[M].北京:北京航空航天大學(xué)出版社,2012:211-212.
[3]楊淑瑩.模式識(shí)別與智能計(jì)算——MATLAB技術(shù)實(shí)現(xiàn)[M].北京:電子工業(yè)出版社,2011:345-347..
[4]劉金琨.先進(jìn)PID控制MATLAB仿真[M].北京:電子工業(yè)出版社,2011:64-65.
[5]胖永新,金迪,孟憲東.球桿系統(tǒng)的建模、仿真與控制器設(shè)計(jì)[J].武漢大學(xué)學(xué)報(bào)(工學(xué)版),2005,38(6):142 -146.
[6]謝新月,廉鳳慧,于亦凡.卡爾曼濾波器在PID控制器中的應(yīng)用研究[J].工程與試驗(yàn),2009,49(3):16-18.