(江南大學 輕工過程先進控制教育部重點實驗室,江蘇 無錫 214122)
PID控制是最早發展起來的控制方案之一,由于其具有魯棒性能好、可靠性高等特點,被廣泛應用于工業過程控制中[1]。油庫定量發油的過程具有滯后、慣性以及時變性等特點,普通PID控制不能很好地適應參數變化,很難滿足油庫發油的控制要求。為了提高油庫發油的控制性能,滿足油庫發油的控制要求,有必要研究一種智能PID發油控制系統。
針對油庫定量發油過程,本文將一種蟻群算法優化PID參數的方法用于油庫發油控制,并取得了較好結果??刂葡到y采用S7-1200 PLC作為中央控制器,通過SCL語言實現蟻群算法對PID參數的優化。實驗表明,基于蟻群算法優化后的PID發油控制器具有動態響應速度更快、上升時間更短等優點。
針對油庫發油的控制要求,設計了系統的結構框圖,如圖1所示。根據油庫現場控制的要求,對所需要的控制模塊進行合理的規劃。其中,數字量輸入點包括靜電接地、溢油檢測、鶴管到位、鶴管復位和啟停開關等信號輸入。數字量輸出點包括油泵、靜電聲光報警、溢油聲光報警、發油指示等信號輸出。模擬量包括電液閥模擬量輸出點、溫度傳感器模擬量輸入點。
該控制系統需要控制6個鶴管,對I/O口進行分配,包括36個數字量輸入點、24個數字量輸出點、6個模擬量輸入點、6個模擬量輸出點。在S7-1200中含有部分I/O端口,考慮到添加10%的裕量,對模擬量I/O和數字量模塊進行了合理的配置。硬件的詳細模塊參數如表1所示。

表1 系統模塊選型

圖1 油庫發油控制系統結構圖
控制參數的優化對于PID性能的好壞起著決定性的作用。常規的整定方法有試湊法和理論計算整定法。然而,當參數發生變化時,常規的系統整定方法會使控制器的性能變差。因此,需要一種智能優化方法對控制器的參數進行實時優化,采用蟻群算法來優化PID控制的3個參數,使之能夠達到良好的整定效果[2]。
該蟻群算法的PID控制是PID控制器和蟻群算法兩個部分組成[3]。PID控制器對被控對象進行閉環控制,系統的優化指標大于設定指標時調用蟻群算法對Kp、Ki、Kd3個參數進行實時優化,當優化指標小于設定指標時,停止參數優化;蟻群算法以性能指標的最優化為目的,根據系統的運行狀態,調節PID控制器的參數[4]。蟻群算法優化PID控制系統結構圖如圖2所示。

圖2 控制系統結構圖
PID控制的Kp、Ki、Kd3個參數為優化變量,設均保留3位小數,各需要4個數字來表示,共需要12個數字。利用Z-N法得到的參數初步確定Kp、Ki、Kd的數值Kp=1.231、Ki=0.124 、Kd=1.023并將Kp、Ki、Kd數值抽象體現在XOY平面上如圖3所示。

圖3 節點及路徑生成示意圖
在XOY平面上一共有12×10個節點,用C(xi,yi,j)表示一個節點,其中xi表示節點的橫坐標,yi,j表示節點的縱坐標[5]。假設螞蟻的出發點為原點O,其爬行的路徑為:Path=(0,y1,j,y2,j,…,y12,j)。該路徑表示的Kp、Ki、Kd3個參數的值可按如下公式計算:
(1)
在實際設置各節點的過程中,根據Z-N法整定出的Kp、Ki、Kd按照式(2)對螞蟻的搜索范圍進行一定的縮小,使螞蟻在有可能出現最優解的范圍內進行搜索,加快了蟻群算法的收斂速度[6]。
(2)
式中,ε為[0,1]內選定的某一數值。
目標函數的建立是為了使系統具有更好的性能,因此以系統的性能指標為根本依據來建立目標函數[7]。本設計選擇式(3)絕對誤差矩的積分作為評價用的性能指標,利用該性能指標3的多種性質,來綜合反映控制系統的精確性和快速性,在兼顧較小超調量的同時能夠兼顧較快的響應速度[8]。
(3)
式中,e(t)為控制系統中輸入量與輸出量的誤差,目標函數F越小,表明系統的性能指標越優異。
在螞蟻的搜索空間中,信息素為螞蟻路徑的指引,在尋優的過程中不斷選擇并調整路徑[9]。
① 本文中螞蟻的狀態轉移概率計算公式為
(4)
式中,α為遺留信息量的重要程度;β為啟發信息的重要程度;τ(xi,yi,j,t)為t時刻在節點上殘留的信息量;η(xi,yi,j,t)為節點C(xi,yi,j)上信息量的能見度,且
(5)

② 節點信息素更新按式(6)確定。
τ(xi,yi,j,t)=ρτ(xi,yi,j,t)+Δτ(xi,yi,j,t)
(6)
式中,ρ為信息素揮發系數;Δτ(xi,yi,j,t)為t時刻節點上C(xi,yi,j)的信息素的總變化量,按照式(7)來確定。
(7)
式中,Δτk(xi,yi,j,t)為k只螞蟻爬過后節點C(xi,yi,j)上的信息素的變化量,按照式(8)來確定。
(8)
式中,Fk為第k只螞蟻在本次循環中的目標函數值;Q為一個常數,表示螞蟻在完成一次探索時所釋放的信息素總濃度。
(1) 初始化。
設定初始參數,螞蟻數量m,信息素初始濃度C,α,β,ρ,Q,最大迭代次數NC。
(2) 尋優。
① 將螞蟻放在原點,開始爬行,按照式(4)計算各節點的狀態轉移概率P,并選擇下一個爬行節點;
② 當螞蟻爬過Li線段上任意一點的時候,完成一次循環,并記錄各點的縱坐標;
③ 當螞蟻完成一次爬行,按式(1)計算Kp、Ki、Kd,并賦值給PID控制器;
④ 運行控制系統模型,得到目標函數值,并返回,記錄本次的最優結果。
(3) 按照式(6)更新信息素,迭代次數加1。
(4) 進入下一個循環中直到達到最大的迭代次數NC,輸出最優PID參數。
蟻群PID的優化程序采用西門子STEP7中的SCL語言編寫。SCL語言符合國際標準IEC 61131-3,是一種類似于PASICAL的高級編程語言。SCL語言為PLC做了優化,不僅具有PLC的典型元素,而且具有高級語言的特性。
SCL語言是西門子STEP7支持的結構化語言,編寫后封裝成FB功能塊,在主程序OB功能塊中調用。具體的程序流程如圖4所示。

圖4 程序流程圖
蟻群算法PID具體在PLC上的實現由兩個部分組成,即蟻群算法的優化PID參數和PID控制器。蟻群算法優化PID參數用SCL進行編寫并封裝成FB功能塊,并可以由其他程序調用,在實際應用中還要與PID控制器相結合,最終實現蟻群PID控制器的設計。
S7-1200上有集成的PID控制模塊,在具體的實現上,需要將蟻群PID控制器上的3個輸出值即Kp、Ki、Kd,通過接口模塊賦值給PID控制器,還需要對蟻群算法優化PID參數的功能模塊的背景參數進行正確設置,實現PID參數的在線調整。
為了驗證本文給出的蟻群算法優化PID參數的控制方案的可行性和有效性,對該控制方案進行實驗,根據現場的發油管道,設置發油量為20 kg/s。按照前文的步驟首先確定由Z-N法得到的PID參數,即Kp=1.231、Ki=0.124、Kd=1.023 ,以此來確定搜索范圍,減少搜索時間,并取α=1,β=1.5,ρ=0.4,Q=10,m=10,N=20利用蟻群逐步迭代優化得到的PID參數為Kp=0.940,Ki=0.082,Kd=1。系統的響應如圖5所示。為了更直觀地觀察仿真實驗結果,將兩種控制方法的仿真參數列出。具體兩種控制方法的仿真參數如表2所示。

表2 兩種控制方法的PID參數及性能指標

圖5 優化前后系統響應曲線
由圖5和表2中的數據可以看出利用蟻群算法得到的PID控制系統響應更快,有較小的超調量且過度平穩,控制效果較好。
本系統采用蟻群算法優化PID參數的策略,經過實際仿真表明:與常規PID控制相比具有動態響應速度快、上升時間短等特點。該控制算法通過西門子結構化控制語言(SCL)在PLC上實現,改善了控制效果。油庫的實際應用驗證了該系統的實用性和可靠性。