鄧 麗 蔣 婧 費(fèi)敏銳
(上海大學(xué)機(jī)電工程與自動化學(xué)院,上海 200072)
在工業(yè)過程控制中,PID控制具有步驟簡單、魯棒性強(qiáng)等優(yōu)點,被廣泛應(yīng)用于各個領(lǐng)域。據(jù)統(tǒng)計,PID控制策略在實際控制系統(tǒng)中所占的比例超過90%,而針對PID控制器的參數(shù)整定和自適應(yīng)一直是最重要的問題所在。Ziegler和Nichols在1942年設(shè)計出了Z-N整定公式,這是最早的PID參數(shù)整定方法,至今它還普遍應(yīng)用在各種工業(yè)控制場合。1953年,Cohen和Coon繼承和發(fā)展了Z-N公式,設(shè)計了一種考慮被控過程時滯大小的 Cohen-Coon 整定公式[1]。
傳統(tǒng)PID控制器的結(jié)構(gòu)普遍存在積分飽和、超調(diào)量大,以及由于微分作用對高頻干擾敏感而導(dǎo)致的系統(tǒng)失穩(wěn)等缺點。此外,傳統(tǒng)PID控制的另一個問題是不能使目標(biāo)值跟蹤特性和干擾抑制特性同時最優(yōu),而任何一個工業(yè)過程對擾動抑制品質(zhì)和跟蹤給定品質(zhì)都是有要求的。如今,將自適應(yīng)控制、最優(yōu)控制、預(yù)測控制、魯棒控制和智能控制策略引入傳統(tǒng)PID控制,逐步發(fā)展成為一種新型PID控制[2]。
文獻(xiàn)[3]嘗試將粒子群(particle swarm optimization,PSO)算法引入PID控制。PSO算法是一種從仿生學(xué)進(jìn)化而來的優(yōu)化算法,計算過程簡捷,優(yōu)化效果好,但是PSO算法具有容易陷入早熟等缺點。為了解決這個問題,本文引入免疫算法。免疫算法具有免疫和遺傳等特點,能夠幫助防止粒子群陷入早熟;同時,將PSO算法和免疫算法相結(jié)合,也避免了免疫算法計算過程繁復(fù)冗長的缺點。
PID控制是基于對變量“過去”、“現(xiàn)在”和“未來”信息估計的交叉控制算法。系統(tǒng)主要由被控對象和PID控制器兩部分組成,如圖1所示。
圖1 PID控制系統(tǒng)圖Fig.1 PID control system
常規(guī)的PID一般為線性控制器,實際輸出值和給定值會存在一個偏差,將偏差按比例、積分和微分的線性組合來構(gòu)成控制量,從而對被控對象進(jìn)行控制。這個過程稱為PID控制器。
PID控制器的參數(shù)整定與自適應(yīng)是指根據(jù)系統(tǒng)模型和各種性能指標(biāo),將控制器確定為PID形式的情況下,采用各種方法調(diào)整PID控制器的參數(shù),使由控制對象、控制器、執(zhí)行元件、反饋元件等組成的控制回路的動態(tài)特性與靜態(tài)特性能滿足期望的要求,達(dá)到理想的控制目標(biāo)。
近年來,粒子群算法(PSO)作為一種新生的隨機(jī)進(jìn)化計算方法,由于具有簡捷通用、適合并行處理、對目標(biāo)函數(shù)和約束條件要求低等特點而得到廣泛應(yīng)用。但由于PSO算法是根據(jù)全體粒子和自身的搜索經(jīng)驗向著最優(yōu)解的方向“飛行”,在進(jìn)化過程中粒子群多樣性會下降,因此當(dāng)算法收斂到一定精度時,無法繼續(xù)優(yōu)化,容易陷入局部最優(yōu),造成所能達(dá)到的精度較差[4]。粒子迭代更新公式如式(1)所示。
式中:d為迭代次數(shù);ω為慣性權(quán)重;c1、c2為學(xué)習(xí)因子;rand()為均勻分布在(0,1)之間的隨機(jī)數(shù)。
免疫算法也是科學(xué)家從人類仿生學(xué)上得到啟發(fā)而設(shè)計的一種算法[5]。在生命科學(xué)領(lǐng)域,人們已經(jīng)對遺傳與免疫等自然現(xiàn)象進(jìn)行了廣泛而深入的研究。從遺傳算法演變而來的免疫算法幾乎與遺傳算法一樣,只是多使用了一個免疫函數(shù),它是遺傳算法的變體,不用雜交,而是采用注入疫苗的方法。
基于免疫選擇的粒子群算法(immunity selectionparticle swarm optimization,ISPSO)將免疫系統(tǒng)的免疫信息處理機(jī)制引入PSO算法中,將待求解問題視為抗原,每一個抗體代表問題的一個解,同時每個抗體也即是粒子群中的一個粒子??乖c抗體的親和力由PSO算法中的適應(yīng)度來衡量,反映了對目標(biāo)函數(shù)以及約束條件的滿足程度;抗體之間的親和力則反映了粒子之間的差異,即種群的多樣性。
與標(biāo)準(zhǔn)PSO算法相比,免疫粒子群算法主要由以下3個部分組成。
①基本的PSO算法,可獨立運(yùn)行,用于控制整個算法的優(yōu)化迭代過程;
②免疫記憶與自我調(diào)節(jié)功能的實現(xiàn),用于保證種群的多樣性;
③疫苗接種的實現(xiàn),用于提高算法的收斂性能[6]。
基于免疫選擇的粒子群(ISPSO)算法流程如下。
①初始化粒子群:在允許范圍內(nèi)隨機(jī)產(chǎn)生N個粒子的位置及其速度,計算適應(yīng)值,得到初始化群體的個體極值和全局極值。
②產(chǎn)生免疫疫苗:即將全局最優(yōu)粒子作為免疫“疫苗”。
③更新粒子的位置和速度:按照式(1)對每個粒子的速度和位置進(jìn)行更新。
④群體的更新:將更新后粒子的適應(yīng)值與更新前粒子的適應(yīng)值進(jìn)行比較,如果適應(yīng)值增加,則粒子的位置才進(jìn)行更新,否則保留原來粒子的位置。
⑤隨機(jī)產(chǎn)生新的粒子:為了增加群體的多樣性,在每次迭代過程中都隨機(jī)產(chǎn)生M個新粒子,并計算適應(yīng)值。
⑥概率選擇N個粒子形成新的群體:從(N+M)個粒子形成的群體中,按照概率選擇N個粒子形成新的群體[7]。
⑦免疫接種和免疫選擇:用步驟②產(chǎn)生的免疫“疫苗”對群體中的R個粒子進(jìn)行疫苗接種,計算接種疫苗后的粒子適應(yīng)度值,并根據(jù)適應(yīng)度值進(jìn)行免疫選擇。如果適應(yīng)值減小,則保留該粒子,否則取消疫苗。這樣就形成了新一代群體。
⑧更新群體的個體極值和全局極值:根據(jù)新一代群體的適應(yīng)值,更新群體的個體極值和全局極值。
⑨判斷是否滿足約束條件:如果迭代次數(shù)大于最大迭代次數(shù),則結(jié)束循環(huán)、輸出結(jié)果;否則轉(zhuǎn)到步驟②。
采用基于免疫選擇的粒子群優(yōu)化算法整定PID控制器參數(shù),必須建立綜合評價各項性能指標(biāo)的適應(yīng)度函數(shù),用于評價粒子的優(yōu)劣,并作為個體最優(yōu)粒子和全局最優(yōu)粒子更新的依據(jù),使得初始解逐步向最優(yōu)解進(jìn)化。
通常一組好的PID控制參數(shù)Kp、Ki和Kd會產(chǎn)生良好的階躍響應(yīng)曲線和最小時域性能指標(biāo)。時域性能指標(biāo)主要包括:調(diào)節(jié)時間ts、上升時間tr、最大超調(diào)量Mp和穩(wěn)態(tài)誤差ess。本文定義適應(yīng)度函數(shù)為ITAE[8],如式(3)所示。
選用a、b、c三個系統(tǒng),其傳遞函數(shù)如式(4)~式(6)所示[9-12]。利用基于免疫選擇的粒子群優(yōu)化算法進(jìn)行迭代計算,并與簡單的PSO優(yōu)化算法進(jìn)行比較,運(yùn)用Matlab軟件進(jìn)行仿真。程序中算法參數(shù)選取如下:粒子數(shù)N=40;學(xué)習(xí)因子c1=c2=2.0;ω在0.4~0.9之間取值,并且隨著迭代次數(shù)的增加而線性減小;迭代次數(shù)最大為100。
三個系統(tǒng)的Matlab仿真結(jié)果如圖2所示。三個系統(tǒng)均經(jīng)過PID控制器調(diào)整后,再經(jīng)過反饋最終達(dá)到穩(wěn)定狀態(tài)。由圖2可知,系統(tǒng)a在PID控制器作用下比較容易穩(wěn)定,其次是b系統(tǒng);階數(shù)越高,越難用算法計算出較好的控制器參數(shù);本文的算法效果較單純的PSO算法好。
三個系統(tǒng)的計算結(jié)果和動態(tài)特性如表1所示[13-15]。
圖2 Matlab仿真結(jié)果Fig.2 Results of Matlab simulation
表1 三個系統(tǒng)的計算結(jié)果和動態(tài)特性Tab.1 Calculated results and dynamic characteristics of 3 systems
由表1可以看出,在采用本文算法計算出的控制器的控制下,系統(tǒng)的超調(diào)量和調(diào)節(jié)時間明顯減少。另外,由表1中系統(tǒng)c的PSO的Kp數(shù)據(jù)可以看出,經(jīng)計算,粒子群已經(jīng)飛向邊界并且陷入早熟[16-19]。因此,綜合上述分析可知本文提出的算法效果更佳。
針對常規(guī)PID控制方法的不足,本文提出采用基于免疫選擇的粒子群優(yōu)化算法來自整定PID控制器參數(shù)?;诿庖哌x擇的粒子群優(yōu)化算法不僅保持了PSO算法的快速跟蹤效果和免疫算法的平穩(wěn)性,同時可有效地避免PSO算法和免疫算法陷入局部解。在加入擾動因素之后,免疫粒子群優(yōu)化算法的魯棒性明顯優(yōu)于PSO算法和免疫算法。Matlab仿真結(jié)果表明,該算法能夠減小系統(tǒng)調(diào)節(jié)時間和超調(diào)量,系統(tǒng)動態(tài)性能得到較大改善,對于大慣性、非線性、時變控制系統(tǒng)具有良好的控制性能。
[1]王蕾,宋文忠.PID 控制[J].自動化儀表,2004,25(4):1 -5.
[2]楊智,陳志堂,范正平,等.基于改進(jìn)粒子群優(yōu)化算法的PID控制器整定[J].控制理論與應(yīng)用,2010,27(10):1345 -1352.
[3]張家駿.基于粒子群算法的PID控制器參數(shù)優(yōu)化研究[J].計算機(jī)仿真,2010(10):191-193.
[4]馮駿,薛云燦,江金龍.一種新的改進(jìn)粒子群算法研究[J].河海大學(xué)常州分校學(xué)報,2006,20(1):10 -13.
[5]王磊,潘進(jìn),焦李成.免疫算法[J].電子學(xué)報,2000(7):74 -78.
[6]吳靜敏,左洪福,陳勇.基于免疫粒子群算法的組合預(yù)測方法[J].系統(tǒng)工程理論方法應(yīng)用,2006,15(3):229 -233.
[7]陳曦,蔣加伏.免疫粒子群優(yōu)化算法求解旅行商問題[J].計算機(jī)與數(shù)字工程,2006,34(6):10 -12.
[8]李自強(qiáng),薛美盛.用于PID參數(shù)自整定的性能指標(biāo)仿真研究[J].自動化與儀表,2009(2):30-33.
[9]張蛟,李銀伢,盛安冬.一階參數(shù)不確定滯后過程的魯棒PID控制器設(shè)計[J].計算機(jī)仿真,2006(12):174-178.
[10]Kennedy J,Eberhart R.Particle swarm optimization[C]//Proceedings of International Conference on Neural Networks,Perth,Australia:IEEE,1995:1942-1948.
[11]Gaing Z L.A particle swarm optimization approach for optimum design of PID controller in AVR system[J].IEEE Transactions on Energy Conversion,2004,9(2):384 -391.
[12]Shi Y,Eberhart R.A modified particle swarm optimizer[C]//Proceedings of International Conference on Evolutionary Computation,Anchorage,Alaska:IEEE,1998:69 -73.
[13]Cohen G H,Coon G A.Theoretical consideration of retarded control[J].Transactions of ASME,1953,75(4):827 -834.
[14]鄧偉林,胡桂武.粒子群算法研究與展望[J].現(xiàn)代計算機(jī):專業(yè)版,2006(11):12-15.
[15]王芳.粒子群算法的研究[D].重慶:西南大學(xué),2006.
[16]盧澤生.控制理論及其應(yīng)用[M].哈爾濱:哈爾濱工業(yè)大學(xué)出版社,2005.
[17]歐陽黎明.MATLAB控制系統(tǒng)設(shè)計[M].北京:國防工業(yè)出版社,2001.
[18]薛定宇.控制系統(tǒng)仿真與計算機(jī)輔助設(shè)計[M].北京:機(jī)械工業(yè)出版社,2005.
[19]黃忠霖.控制系統(tǒng)MATLAB計算及仿真[M].北京:國防工業(yè)出版社,2001.