邵會(huì)鋒
(通化鋼鐵股份有限公司氧氣廠,吉林通化134003)
PID控制器結(jié)構(gòu)簡(jiǎn)單,對(duì)模型誤差具有魯棒性和易于操作等優(yōu)點(diǎn),推出半個(gè)多世紀(jì)以來在各個(gè)控制領(lǐng)域中得到了廣泛的應(yīng)用。PID控制器是按偏差的比例(P)、積分(I)和微分(D)通過線性組合構(gòu)成控制量,對(duì)被控對(duì)象進(jìn)行控制。這3個(gè)參數(shù)整定的好壞不但會(huì)影響到控制的質(zhì)量,而且還會(huì)影響到控制器的魯棒性。因此對(duì)PID控制器參數(shù)整定的研究成了人們關(guān)注的重要問題之一。
隨著PID參數(shù)整定技術(shù)的不斷發(fā)展,人們提出了各種各樣的整定方法。常規(guī)的方法一般是基于模型或者基于規(guī)則的自整定,隨著智能算法的發(fā)展,人們提出了一系列的PID自整定方法,如基于模糊規(guī)則[1]、基于神經(jīng)網(wǎng)絡(luò)[2]以及遺傳算法[3]的自整定方法等等。
微粒群優(yōu)化(Particle Swarm Optimization,PSO)算法具有算法簡(jiǎn)單易實(shí)現(xiàn)的優(yōu)點(diǎn),已經(jīng)被應(yīng)用于眾多工程領(lǐng)域。本文將在原有算法的基礎(chǔ)上提出一種改進(jìn)的微粒群算法,將其應(yīng)用于PID控制器的參數(shù)整定中。該算法克服了傳統(tǒng)PID控制器參數(shù)尋優(yōu)的不足,仿真結(jié)果表明該算法優(yōu)于遺傳算法的基本微粒群算法。
PID控制器基本系統(tǒng)原理如圖1所示。
圖1 模擬PID控制系統(tǒng)原理框圖
PID是一種線性控制器,它根據(jù)給定值rin(t)與實(shí)際輸出值yout(t)構(gòu)成控制偏差。PID控制器用離散型式的增量控制算式表示為:
其中:△u(k)是控制器輸出地增量,e(k)是控制量偏差,Kp、Ki和Kd分別是比例常數(shù)、積分時(shí)間常數(shù)和微分時(shí)間常數(shù)。PID控制器的參數(shù)優(yōu)化整定就是要尋找一個(gè)合適的Kp、Ki和Kd的組合,平衡控制系統(tǒng)的快速性和穩(wěn)定性,減少超調(diào),提高系統(tǒng)的響應(yīng)速度。
微粒群算法(particle swarm optimization,簡(jiǎn)稱PSO)是Eberhart和Kennedy等人模擬鳥類的捕食行為,于1995年提出的一種新的全局進(jìn)化優(yōu)化算法[4]?;驹硎牵簩?yōu)化問題的每個(gè)解作用一個(gè)粒子,每個(gè)粒子在n維空間中以一定的速度飛行,并通過一定的適應(yīng)度函數(shù)來判斷粒子位置的優(yōu)劣,每個(gè)粒子根據(jù)自身的飛行經(jīng)驗(yàn)以及群體的飛行經(jīng)驗(yàn)來調(diào)整自己的飛行狀態(tài),向空間中的更優(yōu)位置飛行。粒子自身經(jīng)過的最優(yōu)位置稱為個(gè)體最優(yōu)值(pBest),整個(gè)群體經(jīng)過的最優(yōu)位置稱為全局極值(gBest)。粒子狀態(tài)用 D 維速度 vi=(vi1,vi2,…viD)和位置 pi=(pi1,pi2,…piD)表示,每個(gè)粒子根據(jù)下面的公式更新自己的狀態(tài),從而產(chǎn)生新一代的群體。
其中:w是慣性權(quán)重,c1和c2為加速因子,r1d和r2d是在[0,1] 范圍內(nèi)的兩個(gè)隨機(jī)數(shù),k為迭代次數(shù)。為了防止粒子遠(yuǎn)離搜索空間,粒子的每一維速度vd都被限制在[-vdmax,vdmax] 之間。
PSO算法具有概念簡(jiǎn)單、易于實(shí)現(xiàn)、以及較強(qiáng)的全局收斂能力和魯棒性等優(yōu)點(diǎn),但是它同時(shí)也具有智能群體算法的固有缺陷,容易陷入局部最優(yōu)。為了克服粒子群算法的缺點(diǎn),引入克隆免疫機(jī)制構(gòu)造一種克隆免疫粒子群算法。免疫算法(Immune Algorithm,IA)是受到免疫系統(tǒng)啟發(fā)而發(fā)展起來的一類仿生算法,該算法主要是模擬自然界生物免疫系統(tǒng)的機(jī)理和功能而實(shí)現(xiàn)的[5]??寺∵x擇算法是免疫算法中基于克隆選擇學(xué)說而提出。由于克隆選擇算法中存在著選擇,克隆以及變異操作可以保證解的多樣性。
本文的做法是在粒子群算法外部建立一個(gè)規(guī)模為初始粒子個(gè)數(shù)1/10的最優(yōu)解集m。每當(dāng)粒子群算法出現(xiàn)一個(gè)新的全局最優(yōu)解gBest,就將其加入到最優(yōu)解集中,替換最優(yōu)解集中適應(yīng)度最小的解,使最優(yōu)解集中解的數(shù)目保持不變。設(shè)置一個(gè)變異閥值k,當(dāng)gBest連續(xù)k代沒有更新時(shí)就認(rèn)為粒子陷入了局部最優(yōu),此時(shí)進(jìn)行克隆選擇操作。本文中的克隆、變異和選擇按照以下定義進(jìn)行:
定義1:克隆算子,將最優(yōu)解集m中的每個(gè)粒子克隆復(fù)制10倍。
定義2:變異算子,對(duì)克隆復(fù)制后的每個(gè)粒子進(jìn)行柯西變異,柯西密度函數(shù)為
其中:t是尺度參數(shù),并且t>0。經(jīng)過柯西變異后,粒子 pi變成 p′i,p′i=pi+ηδk,式中:δk是由柯西方程產(chǎn)生的隨機(jī)數(shù),η是修正步長(zhǎng)。
定義3:選擇算子,用經(jīng)過柯西變異后產(chǎn)生的粒子直接代替當(dāng)前的所有粒子。
克隆免疫粒子群算法與基本微粒群算法不同的時(shí),它在原有微粒群算法基礎(chǔ)上加入了克隆免疫操作。當(dāng)粒子群算法陷入局部最優(yōu)時(shí),對(duì)外部最優(yōu)解集中的粒子進(jìn)行克隆復(fù)制、克隆變異和克隆選擇操作,提高了粒子的多樣性,幫助算法跳出局部最優(yōu)解,避免早熟收斂,提高了解的精度。
利用PSO算法來優(yōu)化PID控制器的3個(gè)參數(shù)Kp、Ki和 Kd,采用實(shí)數(shù)編碼方式,粒子編碼串為[Kp、Ki,Kd] 。參數(shù)優(yōu)化的目的是使階躍響應(yīng)的控制偏差趨于零,響應(yīng)速度盡可能快,響應(yīng)偏差盡可能小。采用誤差絕對(duì)值時(shí)間積分性能指標(biāo)作為參數(shù)選擇的最小目標(biāo)函數(shù),選用下式作為參數(shù)選取的最優(yōu)指標(biāo)[6]:
其中:e(t)表示系統(tǒng)誤差,u(t)為控制器輸出,tu為上升時(shí)間,w1,w2,w3為權(quán)值。
為了避免產(chǎn)生超調(diào),采用懲罰功能,一旦產(chǎn)生超調(diào),將超調(diào)作為最優(yōu)指標(biāo)的一項(xiàng),此時(shí)最優(yōu)指標(biāo)為:
其中:w3為權(quán)重,且w4>>w1,ey(t)=y(tǒng)out(t)-yout(t-1),yout(t)為被控對(duì)象輸出。
應(yīng)用克隆免疫粒子群算法實(shí)現(xiàn)PID控制器參數(shù)優(yōu)化的算法流程如下:
Step1:在規(guī)定的搜索空間中隨機(jī)初始化粒子群位置、速度、歷史最優(yōu)值pBest和全局最優(yōu)值gBest,并確定 PID 控制器 Kp、Ki和Kd的取值范圍;
Step2:按照式(5)計(jì)算每個(gè)粒子的適應(yīng)值,并根據(jù)適應(yīng)值更新pBest和gBest以及外部最優(yōu)解集m;
Step3:判斷算法是否陷入局部最優(yōu),如果沒有,則根據(jù)式(1)和式(2)更新粒子速度和位置;否則轉(zhuǎn)式(5);
Step4:判斷是否滿足結(jié)束條件,滿足則輸出最優(yōu)解,結(jié)束;否則轉(zhuǎn)Step2;
Step5:對(duì)最優(yōu)解集中的粒子進(jìn)行克隆免疫操作。
Step5.1:根據(jù)克隆算子對(duì)最優(yōu)解集中的每個(gè)粒子進(jìn)行克隆操作;
Step5.2:根據(jù)變異算子對(duì)克隆后的每個(gè)粒子進(jìn)行變異操作;
Step5.3:根據(jù)選擇算子對(duì)變異后的每個(gè)粒子進(jìn)行選取,更新當(dāng)前所有粒子;
轉(zhuǎn)Step4。
模型的輸入信號(hào)rin=1為階躍信號(hào),采樣周期為0.001s。
基于MATLAB6.5進(jìn)行仿真實(shí)驗(yàn),比較了改進(jìn)粒子群算法IPSO和基本粒子群算法BPSO以及遺傳算法GA在PID控制器線性調(diào)節(jié)中的表現(xiàn)。算法參數(shù)設(shè)置:在PID參數(shù)優(yōu)化過程中Kp取值范圍為[0,60] ,Ki和 Kd取值范圍均為[0,1] 。在 GA 算法中交叉概率pc=0.9,變異概率pm=0.033。在BPSO和IPSO中初始粒子種群均為N=30,進(jìn)化代數(shù)為100代。慣性權(quán)重:
其中:wmax為 0.94,wmin為 0.32,itermax為算法執(zhí)行的最大迭代次數(shù),iter為當(dāng)前迭代次數(shù),隨著算法的迭代次數(shù)增加w動(dòng)態(tài)的減小,有利于加快算法收斂速度。在IPSO算法中變異閥值k=5,外部最優(yōu)解集規(guī)模為 3。評(píng)價(jià)函數(shù)的參數(shù) w1=0.999,w2=0.001,w3=2.0,w4=100。經(jīng)過 100 此迭代,圖 2 所示為三種不同算法優(yōu)化PID參數(shù)的評(píng)價(jià)函數(shù)值收斂趨勢(shì)圖,圖3所示為參數(shù)整定后系統(tǒng)單位階躍響應(yīng)的比較圖,表1所示為三種方法參數(shù)整定和評(píng)價(jià)函數(shù)的最終結(jié)果。
圖2 三種算法優(yōu)化PID參數(shù)的收斂曲線圖
圖3 三種算法階躍響應(yīng)曲線圖
表1 三種算法PID參數(shù)整定結(jié)果比較
從圖2、圖3以及表1可以看出:收斂速度、搜索能力以及在系統(tǒng)響應(yīng)時(shí)間上改進(jìn)的微粒群算法都要優(yōu)于基本微粒群算法和遺傳算法。
本文基于克隆選擇算子提出了一種改進(jìn)的粒子群算法,其收斂速度和精度都優(yōu)于遺傳算法和基本微粒群算法,并有效避免了算法容易陷入局部最優(yōu)的缺點(diǎn)。將其應(yīng)用于PID參數(shù)整定,通過仿真實(shí)驗(yàn)證明了算法的可行性和有效性。
[1] Linc,Xu J X,Hang C C.Comparison Between a Fuzzy PID Controller and a Kind of Nonlinear PID Controller[C] .Proc 36th IEEE Int Conf On Decision and Control S Diego(CA),1997.
[2] 張世峰,李鵬.基于神經(jīng)網(wǎng)絡(luò)的自整定PID參數(shù)控制器設(shè)計(jì)[J] .自動(dòng)化儀表,2009,30(7):64-66.
[3] 周志,干樹川.基于遺傳算法的控制參數(shù)優(yōu)化研究[J] .計(jì)算機(jī)應(yīng)用,2007,27:191-192.
[4] Kennedy J,Eberhart RC.Particie Swarm Optimization[C] .In:Proc.of the IEEE Int’1 Conf on Neural Networks.Perth:IEEE Inc,1995:1942-1948.
[5] Dasgupta D.Artificial Immune System and Their Applications[M] .Springer-Verlag,1999.
[6] 劉金琨.先進(jìn)PID控制MATLAB仿真[M] .第2版.北京:電子工業(yè)出版社,2004:223-228.