鄭 權(quán),忻尚芝,錢建秋
(上海理工大學(xué) 光電信息與計(jì)算機(jī)工程學(xué)院,上海 200093)
PID 控制因其控制系統(tǒng)結(jié)構(gòu)簡單,適用對(duì)象廣泛,控制性能優(yōu)異,以及近年來控制硬件的高速發(fā)展,使得PID 控制已成為工業(yè)控制中常見的一種控制方法[1],特別是在擁有精準(zhǔn)數(shù)學(xué)模型的控制系統(tǒng)中。PID 控制參數(shù)的物理意義清楚[2];PID 控制器在線調(diào)整方便[3],但也存在限制著其控制精度,無法對(duì)具有不確定數(shù)學(xué)模型系統(tǒng)的參數(shù)進(jìn)行整定和優(yōu)化的問題[4]。
目前有多種PID 優(yōu)化方法,如間接尋優(yōu)方法、梯度法、Ziegler-Nichols 法、爬山法等。但這些方法都有自己的缺點(diǎn),尤其是依賴初始值的取樣,當(dāng)取樣無法涵蓋全部控制系統(tǒng)信息時(shí),這些尋優(yōu)方法容易尋找局部最優(yōu)解,造成尋優(yōu)失?。?]。同時(shí)在實(shí)際應(yīng)用中系統(tǒng)大多具有非線性,時(shí)變不確定性,應(yīng)用常規(guī)方法難以建立準(zhǔn)確數(shù)學(xué)模型。因此,在具有自適應(yīng)參數(shù)整定與優(yōu)化能力又要求算法簡單的PID 控制技術(shù),成為研究的主要方向[6]。遺傳算法是一種新型的智能算法,本質(zhì)是一種高效、并行、全局搜索的方法[7]。鑒于遺傳算法結(jié)構(gòu)的開放性,算法簡單,與問題結(jié)合密切,成功地應(yīng)用于求解多目標(biāo)多模型的復(fù)雜問題,本文智能算法采用改進(jìn)遺傳算法(IGA),對(duì)PID 參數(shù)進(jìn)行算法的改進(jìn),通過尋優(yōu)路徑的優(yōu)化使參數(shù)快速的整定,明顯提高了傳統(tǒng)PID 控制器的控制精度和效果。
編碼是應(yīng)用遺傳算法時(shí)要解決的一個(gè)關(guān)鍵步驟,目前常采用的編碼方法主要是二進(jìn)制編碼方法、符號(hào)編碼方法和浮點(diǎn)數(shù)編碼方法,而基本遺傳算法(SGA)使用的二進(jìn)制編碼不便于反應(yīng)所求問題的結(jié)構(gòu)特征,并且每個(gè)個(gè)體長度過大,占用計(jì)算機(jī)內(nèi)存空間太多,對(duì)于一些連續(xù)函數(shù)的優(yōu)化問題,也由于運(yùn)算的隨機(jī)特征使得局部搜索能力較差,難以提高尋優(yōu)精度。為改進(jìn)這個(gè)特征,本文采用格雷碼(Gary Code)來進(jìn)行個(gè)體編碼[8],格雷碼是使兩個(gè)整數(shù)所對(duì)應(yīng)的編碼之間僅有一個(gè)碼位不同,其余碼位均相同。本系統(tǒng)中有3 個(gè)參數(shù)需要優(yōu)化即為Kp,KI,Kd,可將這3 個(gè)參數(shù)組合為一個(gè)3維向量作為遺傳算法中的每個(gè)獨(dú)立的個(gè)體
適應(yīng)度函數(shù)也稱為評(píng)價(jià)函數(shù),是算法演化過程的驅(qū)動(dòng)力,也是進(jìn)行自然選擇的唯一選擇。本文的目標(biāo)函數(shù)如式(2)所示。
式中,e(t)為系統(tǒng)誤差;U(t)為控制器輸出;W1和W2為權(quán)值。
適應(yīng)度函數(shù)值總是非負(fù)的,任何情況下都希望其值越大越好,所以將目標(biāo)函數(shù)J 轉(zhuǎn)換為適應(yīng)度函數(shù)F,適應(yīng)度值函數(shù)F 如式(3)所示。
式中,是Fmax當(dāng)前生育帶中目標(biāo)函數(shù)的最大值。
本文采用均勻排序的方法進(jìn)行選擇,計(jì)算種群中所有個(gè)體的適應(yīng)度值,根據(jù)每個(gè)個(gè)體的適應(yīng)度值占總體適應(yīng)度值的比例,這個(gè)比例為其選擇概率。概率計(jì)算值如式(4)所示。
其中,F(xiàn)ci為某一代種群中第i 個(gè)個(gè)體的適應(yīng)度的值;F∑為全體適應(yīng)度值的總和。
這種方法成功地避免了輪盤賭法使適應(yīng)度高的個(gè)體淘汰,以及隨機(jī)競(jìng)爭選擇法中個(gè)體選擇概率相同的問題。
本文采用均勻交叉。首先系統(tǒng)隨機(jī)生成一個(gè)與單個(gè)個(gè)體編碼串長度相等的由0 和1 組成的字符串W=w1,w2,…,wl,其中L 為個(gè)體編碼串長度。選出相互配對(duì)的兩個(gè)個(gè)體A,B 作為父代,產(chǎn)生兩個(gè)新一代A*,B*。當(dāng)Wi=0 時(shí),子代A*在第i 位基因繼承父代A 對(duì)應(yīng)的基因,子代B*在第i 位基因繼承父代B 對(duì)應(yīng)的基因。當(dāng)Wi=1 時(shí),子代A*在第i 位基因繼承父代B 對(duì)應(yīng)的基因,子代B*在第i 位基因上繼承父代A 對(duì)應(yīng)的基因[9]。
本文采用均勻變異的方法,讓群體中每個(gè)個(gè)體的基因都能擁有變異的機(jī)會(huì)。根據(jù)種群個(gè)體適應(yīng)度值由小到大排序,根據(jù)式(5)計(jì)算每個(gè)個(gè)體的變異概率
式中,Pmi為某一代種群中第i 個(gè)個(gè)體的變異率,i=1,2,3,…,N。這樣就使原本適應(yīng)度小的個(gè)體獲得了較大的變異機(jī)會(huì),從而使其有較高的機(jī)會(huì)變成適應(yīng)度高的個(gè)體而保存下來,這樣使系統(tǒng)的基因多樣性有了保證,因?yàn)楸疚闹杏? 個(gè)變量,不會(huì)因?yàn)榭傮w適應(yīng)度不高,使一個(gè)參數(shù)的優(yōu)秀基因被舍棄掉[10]。
傳統(tǒng)的遺傳算法是提前設(shè)定一個(gè)最大迭代次數(shù),當(dāng)?shù)竭_(dá)后迭代次數(shù)時(shí)終止遺傳算法的操作。但由于遺傳算法是隨機(jī)搜索全局最優(yōu)解,尋優(yōu)路徑具有隨機(jī)性,當(dāng)運(yùn)算次數(shù)達(dá)到迭代次數(shù)時(shí),計(jì)算出來的解不一定是問題的最優(yōu)解,也有在達(dá)到迭代次數(shù)前很久就已經(jīng)計(jì)算出全局最優(yōu)解,但一定要等到迭代次數(shù)時(shí)才能終止,這影響了控制系統(tǒng)的整定與優(yōu)化速度。因此引入一種判斷標(biāo)準(zhǔn),當(dāng)判定運(yùn)算已經(jīng)在某一點(diǎn)附近來回震蕩,這時(shí)可以停止操作。這種方法計(jì)算量大,但能確保能找到全局最優(yōu)解[11],本文中目標(biāo)函數(shù)最小值Jmin作為這一判斷的標(biāo)準(zhǔn),當(dāng)最小值小于一個(gè)閾值時(shí)終止運(yùn)算。同時(shí)為了防止運(yùn)算進(jìn)入死循環(huán),設(shè)定一個(gè)較大數(shù)值作為迭代次數(shù)來終止運(yùn)算。以下為遺傳算法流程圖,如圖1 所示。
圖1 遺傳算法流程圖
PID 是比例、積分、微分3 種控制方式綜合應(yīng)用的控制器,簡稱PID 控制器??刂破鬟m用于被控對(duì)象負(fù)荷變化較大,干擾強(qiáng),要求控制質(zhì)量較高的場(chǎng)合。其原理框圖如圖2 所示。
圖2 PID 控制系統(tǒng)原理框圖
PID 控制器的規(guī)律為
或?qū)懗蓚鬟f函數(shù)的形式
其中,Ti為采樣周期;KI=Kp/Ti為積分?jǐn)?shù);Kd=Kp×Td為比例參數(shù);Kp,KI,Kd為控制器的3 個(gè)控制參數(shù),即為本文中待尋優(yōu)的3 個(gè)參數(shù)。
基于改進(jìn)遺傳算法的PID 控制器設(shè)計(jì)由傳統(tǒng)PID控制器和遺傳算法模塊兩部分組成。PID 控制器對(duì)被控對(duì)象進(jìn)行閉環(huán)循環(huán)控制,遺傳算法模塊根據(jù)實(shí)際系統(tǒng)運(yùn)行參數(shù),進(jìn)行計(jì)算,不斷優(yōu)化3 個(gè)參數(shù)的數(shù)值,實(shí)時(shí)調(diào)節(jié)PID 控制器的3 個(gè)參數(shù),快速計(jì)算出最優(yōu)解,從而使系統(tǒng)達(dá)到控制穩(wěn)態(tài)的最佳效果。遺傳算法模塊中將PID 的Kp,KI,Kd3 個(gè)參數(shù)組合在一起作為遺傳算法中的每個(gè)獨(dú)立的個(gè)體。根據(jù)遺傳算法流程進(jìn)行編碼,計(jì)算適應(yīng)度,對(duì)種群進(jìn)行選擇、交叉、變異操作,當(dāng)種群不斷迭代繁殖,直到找到全局最優(yōu)解。控制器系統(tǒng)結(jié)構(gòu)如圖3 所示。
圖3 基于改進(jìn)遺傳算法的PID 控制器設(shè)計(jì)
本文將用Matlab 中的Simulink 進(jìn)行電阻加熱爐控制系統(tǒng)仿真,來驗(yàn)證基于改進(jìn)遺傳算法的PID 控制器的可行性與有效性,被控對(duì)象為電阻加熱器。實(shí)驗(yàn)?zāi)P椭袀鬟f函數(shù)為
遺傳算法種群數(shù)量為N=30,迭代次數(shù)為200,交叉概率Pc為0.9,變異概率Pm由式(5)得出,仿真結(jié)果如圖4 所示。
圖4 仿真結(jié)果
如圖4 仿真結(jié)果中的兩條曲線所示,傳統(tǒng)PID 控制,超調(diào)量有20%,調(diào)節(jié)時(shí)間為13 s。采用改進(jìn)遺傳算法對(duì)PID 控制器參數(shù)進(jìn)行優(yōu)化,超調(diào)量只有5%,調(diào)節(jié)時(shí)間為7 s,震蕩時(shí)間只有傳統(tǒng)的1/2。因此采用遺傳算法,其整定速度快、優(yōu)化效果好、控制系統(tǒng)調(diào)節(jié)時(shí)間短、震蕩幅度小、超調(diào)量小,因此具有基于改進(jìn)遺傳算法的PID 控制器比常規(guī)PID 控制器的控制效果更優(yōu)越。
圖5 為Kp,KI,Kd這3 個(gè)參數(shù)的優(yōu)化曲線。從圖中可以看出,約在5 s 控制系統(tǒng)計(jì)算出了Kp,KI,Kd的3 個(gè)控制量的值,系統(tǒng)在5 s 時(shí)趨于穩(wěn)定,并在調(diào)節(jié)時(shí)間為7 s 時(shí)達(dá)到穩(wěn)態(tài),遺傳算法的優(yōu)越性使系統(tǒng)參數(shù)的計(jì)算快速完成,減少了控制系統(tǒng)的調(diào)節(jié)時(shí)間,具有更好的控制效果。
圖5 3 個(gè)參數(shù)的優(yōu)化曲線
在PID 控制器的應(yīng)用設(shè)計(jì)中,PID 參數(shù)的設(shè)定是重要的一個(gè)環(huán)節(jié)。本文應(yīng)用改進(jìn)遺傳算法設(shè)計(jì)并完成了PID 參數(shù)的整定與優(yōu)化,并用Matlab 進(jìn)行電阻加熱器控制系統(tǒng)仿真,實(shí)驗(yàn)結(jié)果表明:基于改進(jìn)遺傳算法的PID 控制器要比傳統(tǒng)PID 控制器在整定速度、優(yōu)化效果、控制系統(tǒng)調(diào)節(jié)時(shí)間、震蕩幅度、超調(diào)量等性能良好,實(shí)驗(yàn)也直接證明了采用改進(jìn)遺傳算法對(duì)PID 控制器參數(shù)進(jìn)行整定和優(yōu)化是有效的,并獲得了更好的控制效果。
[1] 何福忠,孫優(yōu)賢.基于穩(wěn)定參數(shù)空間的PID 調(diào)節(jié)器遺傳優(yōu)化設(shè)計(jì)[J].控制與決策,2000,15(4):507-509.
[2] 郭一楠,鞏敦衛(wèi).雙層進(jìn)化交互式遺傳算法的知識(shí)提取與利用[J].控制與決策,2007,22(12):1329-1334.
[3] 張志剛,杜永貴.基于遺傳算法的PID 參數(shù)整定[J].太原理工大學(xué)學(xué)報(bào),2005,36(4):417-420.
[4] Tan Wen,Liu Jizhen.Tuning of PID controllers for boiler turbine units[J].ISA Transactions,2004,43(2):571-573.
[5] 牛薌潔,王玉潔.基于遺傳算法的PID 控制器參數(shù)優(yōu)化研究[J].計(jì)算機(jī)仿真,2010,27(11):180-184.
[6] 劉瑞國,邵誠.一種可自適應(yīng)調(diào)節(jié)參數(shù)的改進(jìn)遺傳算法[J].信息與控制,2003,32(6):556-560.
[7] Vision A.Fuzzy logic based set-point weight tuning of PID controller[J].IEEE,2003,8(3):1540-1545.
[8] 陳祥光.遺傳算法在PID 控制器參數(shù)尋優(yōu)中的應(yīng)用研究[J].計(jì)算機(jī)仿真,2001,18(2):30-32.
[9] Stella Morris,Dash P K,Basu K P.UPFC controller design for power system stabilization with improved genetic algorithm[J].IEEE,Transactions on Computer Science,2003,8(3):1540-1545.
[10]Tang K S,Man K F.Genetic algorithmic and their applications[J].IEEE Signal Process,1999,13(6):22-27.
[11]林洪濤,王敏.基于遺傳算法的PID 參數(shù)整定[J].沈陽工業(yè)學(xué)院學(xué)報(bào),2004,23(4):27-31.