郭 波,鄒麗梅,錢學(xué)毅
GUO Bo, ZOU Li-mei, QIAN Xue-yi
(武夷學(xué)院 機(jī)電工程學(xué)院,武夷山 354300)
PID控制通過調(diào)節(jié)比例P、積分I與微分D三個(gè)參數(shù),分別與輸出偏差值相乘,其代數(shù)和輸入系統(tǒng),從而調(diào)節(jié)系統(tǒng)輸出響應(yīng),期望滿足快速、準(zhǔn)確和穩(wěn)定的控制需求。PID控制算法歷史悠久,簡單可靠,參數(shù)物理意義明確,控制器容易實(shí)現(xiàn),至今仍在工業(yè)控制中占統(tǒng)治地位。PID控制難點(diǎn)在于整定合適的PID參數(shù)值,許多場合仍采取人工整定參數(shù)的方式。目前許多設(shè)備的自動(dòng)整定功能局限于整定過程的特定條件,且整定效果不夠理想。利用智能優(yōu)化算法實(shí)現(xiàn)PID參數(shù)的全局尋優(yōu)是當(dāng)前自動(dòng)整定的一個(gè)發(fā)展方向,算法實(shí)現(xiàn)一般以編程模擬PID控制過程,求取誤差積分準(zhǔn)則的目標(biāo)函數(shù)作為優(yōu)化目標(biāo)。
但工業(yè)應(yīng)用中PID控制器種類繁多,控制目標(biāo)與實(shí)現(xiàn)方式千差萬別。程序模擬跟蹤此控制過程,求取誤差建立目標(biāo)函數(shù)的難度較高。因此許多文獻(xiàn)資料的算法僅測試最簡化PID控制仿真,難以說明實(shí)際控制效果。MATLAB Simulink提供了動(dòng)態(tài)建模仿真開發(fā)環(huán)境,是目前開發(fā)實(shí)際控制模型的最簡單可行的方法。若目標(biāo)函數(shù)程序設(shè)計(jì)用命令行仿真技術(shù)實(shí)現(xiàn),建模過程可替代傳統(tǒng)編程工作方法,使優(yōu)化開發(fā)過程更為簡便。若模型程序接近實(shí)際控制系統(tǒng),優(yōu)化的PID參數(shù)整定結(jié)果就可直接應(yīng)用于實(shí)際工業(yè)控制過程。
Simulink是一個(gè)面向多域仿真并和基于模型設(shè)計(jì)的框模塊圖環(huán)境,是MATLAB軟件的擴(kuò)展。用戶可利用功能塊化的模塊搭接生成系統(tǒng)模型,不需編程就可完成系統(tǒng)的輸入輸出仿真,仿真輸出值不僅可通過Scope模塊(示波器)直接觀察,還可輸出至MATLAB工作空間中。
圖1 PID控制模型
圖中設(shè)計(jì)三個(gè)仿真過程數(shù)據(jù)輸出,其中Out1模塊輸出系統(tǒng)仿真過程誤差值的平方,Out2模塊為經(jīng)過限幅的控制值的平方,Out3模塊為系統(tǒng)輸出值。
Gain、Gain1、Gain2增益模塊設(shè)置為PID控制參數(shù)整定對(duì)象的變量,并聲明為MATLAB全局變量,便可接受多個(gè)M程序的數(shù)值調(diào)用。優(yōu)化算法的優(yōu)化對(duì)象即是此變量組成的向量。
實(shí)際控制系統(tǒng)雖然遠(yuǎn)比以上算例復(fù)雜,但實(shí)現(xiàn)模型中若干個(gè)參數(shù)的尋優(yōu)原理是相同的,相對(duì)MATLAB自帶的優(yōu)化工具箱,該方法的尋優(yōu)算法可根據(jù)需要選擇。方法實(shí)現(xiàn)核心在于應(yīng)用MATLAB的命令行仿真技術(shù)。
大多數(shù)控制算法與優(yōu)化算法都需要目標(biāo)函數(shù)比較控制優(yōu)化效果,在MATLAB中通常用M文件編寫。MATLAB提供了用于M文件的命令行仿真函數(shù)sim(),可實(shí)現(xiàn)在程序中調(diào)用模型動(dòng)態(tài)仿真,其命令格式為:
參數(shù)model為仿真的模型文件名稱,timespan為設(shè)置系統(tǒng)仿真的時(shí)間范圍,可單設(shè)終止時(shí)間tFinal,也可設(shè)置起始時(shí)間、終止時(shí)間與時(shí)間間隔,如仿真時(shí)間20秒,仿真間隔0.01秒,仿真模型名為pid的命令為:
仿真間隔決定仿真耗費(fèi)的時(shí)間與函數(shù)值計(jì)算工作量,但較大的時(shí)間間隔可能影響到優(yōu)化結(jié)果的準(zhǔn)確性。PID參數(shù)尋優(yōu)過程可能使仿真產(chǎn)生大量過零,引起Simulink錯(cuò)誤停止仿真,因此需要在Simulink參數(shù)選項(xiàng)中關(guān)閉過零錯(cuò)誤。
輸出矩陣t為仿真時(shí)間向量,x為仿真中間狀態(tài)矩陣,按先連續(xù)狀態(tài)后離散狀態(tài)輸出過程中間值,y為仿真輸出矩陣,當(dāng)模型有Out1至Out3的三個(gè)輸出,y即為三列輸出。對(duì)圖1PID控制模型仿真后,y輸出矩陣的第一列y(:,1)輸出誤差平方,第二列y(:,2)輸出控制值平方,第三列y(:,3)輸出系統(tǒng)輸出值,目標(biāo)函數(shù)所需數(shù)據(jù)可采用類似方式設(shè)置輸出。
目標(biāo)函數(shù)程序一般定義為M函數(shù)文件,方便在優(yōu)化算法的M腳本文件中調(diào)用。PID優(yōu)化向量在仿真前必須做全局變量聲明。命令行仿真所獲得的輸出矩陣y提供了求取性能指標(biāo)所需數(shù)據(jù)。
PID控制系統(tǒng)目標(biāo)是使輸出值y(:,3)的變化過程與期望過程盡量接近。系統(tǒng)的階躍響應(yīng)要接近輸入的階躍過程,按照不同的控制品質(zhì)需求,有超調(diào)量、穩(wěn)態(tài)誤差、調(diào)節(jié)時(shí)間等多目標(biāo)值。
許多技術(shù)文獻(xiàn)將誤差積分準(zhǔn)則設(shè)置為優(yōu)化目標(biāo)函數(shù)。常見的有平方誤差積分準(zhǔn)則,縮寫為ISE,準(zhǔn)則形式為其中e(t)為實(shí)際輸出或主反饋信號(hào)之間的偏差,目標(biāo)函數(shù)可通過累加y(:,1)實(shí)現(xiàn)。
不同的準(zhǔn)則提供不同的目標(biāo)函數(shù)性能,基于ISE的性能著重于抑制過渡過程中的大偏差的出現(xiàn),基于ISTE的性能指標(biāo)在控制大偏差的同時(shí)還可縮短調(diào)節(jié)時(shí)間。但是任何誤差積分準(zhǔn)則均有局限性,不可能完全適應(yīng)多樣的實(shí)際控制需求。
經(jīng)過反復(fù)PID參數(shù)優(yōu)化比較,將組成誤差積分準(zhǔn)則的多個(gè)目標(biāo),如偏差e(t)、時(shí)間t、控制值y(:,2)、輸出值y(:,3)、超調(diào)量、穩(wěn)態(tài)誤差等仿真結(jié)果組合構(gòu)成單一目標(biāo)函數(shù)適應(yīng)度值。當(dāng)偏差與控制值取100至0.01數(shù)量比值,輸出值超調(diào)作為懲罰項(xiàng),分別五次優(yōu)化的取最優(yōu)控制輸出結(jié)果比較如圖2所示。
圖2 權(quán)重?cái)?shù)量級(jí)尋優(yōu)結(jié)果對(duì)比
從結(jié)果曲線可看出,控制值決定系統(tǒng)的輸入量改變與速度變化,實(shí)際系統(tǒng)的控制量不可能無限大,較小的控制量影響著系統(tǒng)能耗,控制值權(quán)重最大的曲線響應(yīng)緩慢,穩(wěn)態(tài)誤差大。偏差值是最主要的指標(biāo)量,決定了輸出過程信號(hào)與期望過程的接近程度,偏差值權(quán)重最大的曲線出現(xiàn)了較陡的超調(diào),以偏差為指標(biāo)的優(yōu)化結(jié)果將趨向高比例增益,強(qiáng)震蕩的控制輸出,反而有害。時(shí)間t與偏差e(t)相乘,可擴(kuò)大穩(wěn)態(tài)精度的影響。對(duì)優(yōu)化過程比較分析,優(yōu)化算法僅能根據(jù)適應(yīng)度最小值使優(yōu)化目標(biāo)收斂,多目標(biāo)誤差積分準(zhǔn)則影響著控制曲線的不同特性,當(dāng)追求均衡的控制效果,必須設(shè)置數(shù)值為均衡的多目標(biāo)誤差積分,多目標(biāo)權(quán)重比在10倍以內(nèi),即是使其累計(jì)數(shù)值處于同一數(shù)量級(jí)上下,PID控制曲線則可獲得較滿意的控制品質(zhì)。
粒子群優(yōu)化算法(particle swarm optimization, PSO)是近年發(fā)展出的群智能優(yōu)化算法,利用鳥群生物原理,模擬鳥群覓食的社會(huì)行為,基于迭代進(jìn)行優(yōu)化。MATLAB實(shí)現(xiàn)粒子群算法整定PID參數(shù)具體流程如下:
1)建立如圖1的Simulink PID控制模型。
2)建立M函數(shù)文件fitness作為粒子群適應(yīng)度函數(shù)。函數(shù)在命令行仿真后,設(shè)定目標(biāo)函數(shù)為累加輸出誤差平方y(tǒng)(:,1)×權(quán)重值,累加控制值y(:,2)×權(quán)重值,累加輸出值y(:,3)懲罰項(xiàng)。
3)初始化粒子群規(guī)模N=40,在可行域隨機(jī)產(chǎn)生每一粒子的位置Xi和速度Vi,取權(quán)重初值為1,計(jì)算每一粒子適應(yīng)度,初始化每個(gè)粒子個(gè)體極值Pi與全局極值Pg。計(jì)算極值粒子偏差值與控制值數(shù)量級(jí),更改權(quán)重值調(diào)整至兩者數(shù)量級(jí)相同。
4)迭代群體所有粒子,按照下面公式更新粒子的速度Vi和位置Xi。
其中c1、c2為常數(shù),稱為學(xué)習(xí)因子;rand ()是[0,1]上的隨機(jī)數(shù);w是慣性權(quán)重(inertia weight);pBest[i]為對(duì)應(yīng)個(gè)體極值的粒子位置,pBest[g]為對(duì)應(yīng)全局極值的粒子位置。
5)對(duì)更新后的粒子計(jì)算適應(yīng)度,與粒子個(gè)體極值比較,若優(yōu)于個(gè)體極值則替代最優(yōu)個(gè)體位置,并更新個(gè)體極值。與粒子全局極值比較,若優(yōu)于全局極值則替代全局極值位置,并更新全局極值。
6)當(dāng)適應(yīng)度值達(dá)到精度要求或迭代次數(shù)達(dá)到上限,則給出最優(yōu)結(jié)果,否則迭代次數(shù)加1,跳回流程4)。
優(yōu)化執(zhí)行過程若打開了Simulink模型,則可實(shí)時(shí)觀察優(yōu)化后的仿真輸出,可以明顯觀察到優(yōu)化效果。針對(duì)圖1PID控制模型,以40個(gè)粒子迭代100次,反復(fù)10次優(yōu)化獲得的PID參數(shù)如表1所示,最優(yōu)的5個(gè)控制輸出曲線如圖3所示??梢娬▍?shù)后的PID控制有控制輸出曲線調(diào)節(jié)時(shí)間小,超調(diào)量小,穩(wěn)態(tài)精度高的特點(diǎn),優(yōu)化結(jié)果滿足工程實(shí)踐的整定需要。
表1 PID控制模型參數(shù)整定結(jié)果
圖3 仿真輸出示波器結(jié)果
隨著計(jì)算機(jī)技術(shù)進(jìn)步,仿真速度不斷提升,使提取仿真數(shù)據(jù),建立目標(biāo)函數(shù)的誤差積分準(zhǔn)則的方法變得有效。基于模型仿真技術(shù)的PID參數(shù)整定優(yōu)化具有簡單、通用等特點(diǎn),優(yōu)化的重心將建立在模型的準(zhǔn)確性與算法的選擇上。
比較整定實(shí)驗(yàn)與仿真結(jié)果,利用優(yōu)化算法整定PID控制器參數(shù),依賴某一單獨(dú)誤差積分準(zhǔn)則為目標(biāo)函數(shù),難以獲得滿意的優(yōu)化結(jié)果。根據(jù)控制實(shí)際,設(shè)計(jì)誤差積分準(zhǔn)則構(gòu)成,提取Simulink模型仿真輸出矩陣,構(gòu)建算法目標(biāo)函數(shù),通過粒子群優(yōu)化算法對(duì)PID控制參數(shù)尋優(yōu),是一種有效的計(jì)算機(jī)輔助離線PID參數(shù)整定方法。
[1] 何晉元,周國鵬.用于控制器參數(shù)尋優(yōu)的目標(biāo)函數(shù)研究[J].微計(jì)算機(jī)信息.2006(07):86-88
[2] 周國鵬,柳學(xué)坤,何晉元.基于控制系統(tǒng)優(yōu)化的ITSE目標(biāo)函數(shù)的研究[J].微計(jì)算機(jī)信息.2006(22):46-47.
[3] Kennedy J, Eberhart R.Particle swarm optimization[A].IEEE International Conference on Neural Networks: Perth, Australia. Piscataway. NJ: IEEE Service Center[C].1995:1942-1948.
[4] Eberhart R,Kennedy J. A new optimizer using particle swarm theory[A].Roc. Sixth International Symposium on Micro Machine and Human Science: Nagoya, Japan. Piscataway,NJ: IEEE Service Center[C].1995:39-43.
[5] 張利彪.基于粒子群優(yōu)化算法的研究[D].吉林大學(xué),2004.
[6] 劉道.基于改進(jìn)粒子群優(yōu)化算法的PID參數(shù)整定研究[D].南華大學(xué),2012.
[7] 李剛,王慶林.基于階躍跟蹤響應(yīng)的PID控制器性能評(píng)價(jià)與調(diào)節(jié)[J].系統(tǒng)仿真學(xué)報(bào).2008(14):3763-3766.