郭 波,鄒麗梅,錢學毅
GUO Bo, ZOU Li-mei, QIAN Xue-yi
(武夷學院 機電工程學院,武夷山 354300)
PID控制通過調節比例P、積分I與微分D三個參數,分別與輸出偏差值相乘,其代數和輸入系統,從而調節系統輸出響應,期望滿足快速、準確和穩定的控制需求。PID控制算法歷史悠久,簡單可靠,參數物理意義明確,控制器容易實現,至今仍在工業控制中占統治地位。PID控制難點在于整定合適的PID參數值,許多場合仍采取人工整定參數的方式。目前許多設備的自動整定功能局限于整定過程的特定條件,且整定效果不夠理想。利用智能優化算法實現PID參數的全局尋優是當前自動整定的一個發展方向,算法實現一般以編程模擬PID控制過程,求取誤差積分準則的目標函數作為優化目標。
但工業應用中PID控制器種類繁多,控制目標與實現方式千差萬別。程序模擬跟蹤此控制過程,求取誤差建立目標函數的難度較高。因此許多文獻資料的算法僅測試最簡化PID控制仿真,難以說明實際控制效果。MATLAB Simulink提供了動態建模仿真開發環境,是目前開發實際控制模型的最簡單可行的方法。若目標函數程序設計用命令行仿真技術實現,建模過程可替代傳統編程工作方法,使優化開發過程更為簡便。若模型程序接近實際控制系統,優化的PID參數整定結果就可直接應用于實際工業控制過程。
Simulink是一個面向多域仿真并和基于模型設計的框模塊圖環境,是MATLAB軟件的擴展。用戶可利用功能塊化的模塊搭接生成系統模型,不需編程就可完成系統的輸入輸出仿真,仿真輸出值不僅可通過Scope模塊(示波器)直接觀察,還可輸出至MATLAB工作空間中。

圖1 PID控制模型
圖中設計三個仿真過程數據輸出,其中Out1模塊輸出系統仿真過程誤差值的平方,Out2模塊為經過限幅的控制值的平方,Out3模塊為系統輸出值。
Gain、Gain1、Gain2增益模塊設置為PID控制參數整定對象的變量,并聲明為MATLAB全局變量,便可接受多個M程序的數值調用。優化算法的優化對象即是此變量組成的向量。
實際控制系統雖然遠比以上算例復雜,但實現模型中若干個參數的尋優原理是相同的,相對MATLAB自帶的優化工具箱,該方法的尋優算法可根據需要選擇。方法實現核心在于應用MATLAB的命令行仿真技術。
大多數控制算法與優化算法都需要目標函數比較控制優化效果,在MATLAB中通常用M文件編寫。MATLAB提供了用于M文件的命令行仿真函數sim(),可實現在程序中調用模型動態仿真,其命令格式為:

參數model為仿真的模型文件名稱,timespan為設置系統仿真的時間范圍,可單設終止時間tFinal,也可設置起始時間、終止時間與時間間隔,如仿真時間20秒,仿真間隔0.01秒,仿真模型名為pid的命令為:

仿真間隔決定仿真耗費的時間與函數值計算工作量,但較大的時間間隔可能影響到優化結果的準確性。PID參數尋優過程可能使仿真產生大量過零,引起Simulink錯誤停止仿真,因此需要在Simulink參數選項中關閉過零錯誤。
輸出矩陣t為仿真時間向量,x為仿真中間狀態矩陣,按先連續狀態后離散狀態輸出過程中間值,y為仿真輸出矩陣,當模型有Out1至Out3的三個輸出,y即為三列輸出。對圖1PID控制模型仿真后,y輸出矩陣的第一列y(:,1)輸出誤差平方,第二列y(:,2)輸出控制值平方,第三列y(:,3)輸出系統輸出值,目標函數所需數據可采用類似方式設置輸出。
目標函數程序一般定義為M函數文件,方便在優化算法的M腳本文件中調用。PID優化向量在仿真前必須做全局變量聲明。命令行仿真所獲得的輸出矩陣y提供了求取性能指標所需數據。
PID控制系統目標是使輸出值y(:,3)的變化過程與期望過程盡量接近。系統的階躍響應要接近輸入的階躍過程,按照不同的控制品質需求,有超調量、穩態誤差、調節時間等多目標值。
許多技術文獻將誤差積分準則設置為優化目標函數。常見的有平方誤差積分準則,縮寫為ISE,準則形式為其中e(t)為實際輸出或主反饋信號之間的偏差,目標函數可通過累加y(:,1)實現。
不同的準則提供不同的目標函數性能,基于ISE的性能著重于抑制過渡過程中的大偏差的出現,基于ISTE的性能指標在控制大偏差的同時還可縮短調節時間。但是任何誤差積分準則均有局限性,不可能完全適應多樣的實際控制需求。
經過反復PID參數優化比較,將組成誤差積分準則的多個目標,如偏差e(t)、時間t、控制值y(:,2)、輸出值y(:,3)、超調量、穩態誤差等仿真結果組合構成單一目標函數適應度值。當偏差與控制值取100至0.01數量比值,輸出值超調作為懲罰項,分別五次優化的取最優控制輸出結果比較如圖2所示。

圖2 權重數量級尋優結果對比
從結果曲線可看出,控制值決定系統的輸入量改變與速度變化,實際系統的控制量不可能無限大,較小的控制量影響著系統能耗,控制值權重最大的曲線響應緩慢,穩態誤差大。偏差值是最主要的指標量,決定了輸出過程信號與期望過程的接近程度,偏差值權重最大的曲線出現了較陡的超調,以偏差為指標的優化結果將趨向高比例增益,強震蕩的控制輸出,反而有害。時間t與偏差e(t)相乘,可擴大穩態精度的影響。對優化過程比較分析,優化算法僅能根據適應度最小值使優化目標收斂,多目標誤差積分準則影響著控制曲線的不同特性,當追求均衡的控制效果,必須設置數值為均衡的多目標誤差積分,多目標權重比在10倍以內,即是使其累計數值處于同一數量級上下,PID控制曲線則可獲得較滿意的控制品質。
粒子群優化算法(particle swarm optimization, PSO)是近年發展出的群智能優化算法,利用鳥群生物原理,模擬鳥群覓食的社會行為,基于迭代進行優化。MATLAB實現粒子群算法整定PID參數具體流程如下:
1)建立如圖1的Simulink PID控制模型。
2)建立M函數文件fitness作為粒子群適應度函數。函數在命令行仿真后,設定目標函數為累加輸出誤差平方y(:,1)×權重值,累加控制值y(:,2)×權重值,累加輸出值y(:,3)懲罰項。
3)初始化粒子群規模N=40,在可行域隨機產生每一粒子的位置Xi和速度Vi,取權重初值為1,計算每一粒子適應度,初始化每個粒子個體極值Pi與全局極值Pg。計算極值粒子偏差值與控制值數量級,更改權重值調整至兩者數量級相同。
4)迭代群體所有粒子,按照下面公式更新粒子的速度Vi和位置Xi。

其中c1、c2為常數,稱為學習因子;rand ()是[0,1]上的隨機數;w是慣性權重(inertia weight);pBest[i]為對應個體極值的粒子位置,pBest[g]為對應全局極值的粒子位置。
5)對更新后的粒子計算適應度,與粒子個體極值比較,若優于個體極值則替代最優個體位置,并更新個體極值。與粒子全局極值比較,若優于全局極值則替代全局極值位置,并更新全局極值。
6)當適應度值達到精度要求或迭代次數達到上限,則給出最優結果,否則迭代次數加1,跳回流程4)。
優化執行過程若打開了Simulink模型,則可實時觀察優化后的仿真輸出,可以明顯觀察到優化效果。針對圖1PID控制模型,以40個粒子迭代100次,反復10次優化獲得的PID參數如表1所示,最優的5個控制輸出曲線如圖3所示。可見整定參數后的PID控制有控制輸出曲線調節時間小,超調量小,穩態精度高的特點,優化結果滿足工程實踐的整定需要。

表1 PID控制模型參數整定結果

圖3 仿真輸出示波器結果
隨著計算機技術進步,仿真速度不斷提升,使提取仿真數據,建立目標函數的誤差積分準則的方法變得有效。基于模型仿真技術的PID參數整定優化具有簡單、通用等特點,優化的重心將建立在模型的準確性與算法的選擇上。
比較整定實驗與仿真結果,利用優化算法整定PID控制器參數,依賴某一單獨誤差積分準則為目標函數,難以獲得滿意的優化結果。根據控制實際,設計誤差積分準則構成,提取Simulink模型仿真輸出矩陣,構建算法目標函數,通過粒子群優化算法對PID控制參數尋優,是一種有效的計算機輔助離線PID參數整定方法。
[1] 何晉元,周國鵬.用于控制器參數尋優的目標函數研究[J].微計算機信息.2006(07):86-88
[2] 周國鵬,柳學坤,何晉元.基于控制系統優化的ITSE目標函數的研究[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] 張利彪.基于粒子群優化算法的研究[D].吉林大學,2004.
[6] 劉道.基于改進粒子群優化算法的PID參數整定研究[D].南華大學,2012.
[7] 李剛,王慶林.基于階躍跟蹤響應的PID控制器性能評價與調節[J].系統仿真學報.2008(14):3763-3766.