程宗政,施一萍,劉 瑾,呂晨悅,張金立
(上海工程技術大學 電子電氣工程學院,上海 201600)
閃蒸罐是復雜工業(yè)生產(chǎn)中的重要化工單元,一直以來都被廣泛應用于加氫裂化和硫化尾氣回收的過程[1]。但由于其屬于非線性、大滯后的復雜控制系統(tǒng),傳統(tǒng)比例—積分—微分(proportional-integral-differential,PID)算法很難滿足控制要求。因此,越來越多的智能算法被應用到PID參數(shù)的整定上。金滔等人[2]提出利用改進粒子群優(yōu)化(particle swarm optimization,PSO)算法整定PID參數(shù),但存在易陷入局部最優(yōu)的問題。周勇等人[3]提出改進遺傳PID算法的控制策略,依然都存在算法收斂速度較慢,壓力控制實時性不夠的問題。鑒于此,本文提出天牛須蜂群PID算法,大大提高了算法的收斂速度和全局尋優(yōu)精度,在此基礎上設計壓力控制器對閃蒸罐的壓力進行控制,為閃蒸罐壓力控制提供了一種全新策略。
人工蜂群(artificial bee colony,ABC)算法是由Karaboga根據(jù)蜜蜂群體不同角色相互協(xié)作進行覓食的原理提出的新型智能尋優(yōu)算法[4],蜂群模型由三種蜜蜂組成:雇傭蜂、旁觀蜂和偵察蜂[5,6]。整個過程是利用雇傭蜂搜索空間并記錄食物源的位置,然后將信息傳遞給旁觀蜂。根據(jù)雇傭蜜蜂傳遞的信息,旁觀蜂選擇食物源。若一個食物源耗盡,雇傭蜂轉變?yōu)閭刹旆洌⒅匦麻_始搜索。
雇傭蜜蜂和旁觀者蜜蜂根據(jù)式(1)搜索食物來源
xij(n)=xij(n-1)+φij[xij(n-1)-xkj(n-1)]
(1)
式中j和i為隨機數(shù);j為第i個食物源的一個維度;xij(n-1)和xij(n)為新舊食物源的位置;φij為介于-1和1之間的隨機數(shù);k為一個隨機索引,并且k≠i。
可能性值由式(2)計算
(2)
式中Pi為旁觀者蜜蜂選擇第i個食物源的可能性值,F(xiàn)oodNumber為可行解數(shù)量,f(i)為第i個食物源的目標函數(shù)值。
trail是可行解xi(第i個食物源位置)未改進的次數(shù),limit表示它的最大次數(shù)。當?shù)趇個食物源trail>limit時,證明其已陷入局部最優(yōu)解。因此,雇傭蜂放棄位置,成為偵察蜂,根據(jù)式(3)在全局范圍內(nèi)尋找新的食物源
Xi(0)=Xlb+(Xub-Xlb)rand(0,1)
(3)
式中Xlb為可行解的下界,Xub為可行解的上界。
在常規(guī)ABC算法中,雇傭蜂搜索新的食物源時,是從現(xiàn)有食物源中隨機選擇食物源,這將導致算法的收斂速度降低。為了解決進化方向隨機、收斂速度慢的問題,引入了天牛須搜索(beetle antennae search,BAS)算法[7,8]對ABC算法進行改進。
在BAS算法中,天牛能通過比較左右觸角所接收到的氣味強度,選擇強側作為下一個移動方向,這種特性提高了搜索食物源的能力。由于食物源的搜索更具方向性,算法的收斂性也將得到顯著改善。
首先,選擇食物源的一維作為進化的方向,用以下公式來描述方向
(4)
式中 rand(·)為一個隨機函數(shù),k為食物源的維數(shù)之一。然后,模擬左右兩側的搜索行為,如下所示
(5)
式中xir(n)為位于右側的位置,xil(n)為位于左側的位置。l為根據(jù)搜索能力確定的食物源一維中觸角的搜索長度。
其次,比較左右兩側目標函數(shù)值的大小,得出檢測行為,使用以下方程式來描述檢測過程
(6)
式中δt為搜索的步長,隨著搜索周期的增加而減小。符號sign(·)為比較左右兩側目標函數(shù)值大小的函數(shù)。如果f(xir)大于f(xil),則符號sign(·)取-1;如果f(xir)小于f(xil),則符號sign(·)取1。
結合以上兩個方面,在尋找雇傭蜂的新食物源之前,確保在每次搜索之前確定搜索方向,而不是隨機選擇。
針對工業(yè)生產(chǎn)中閃蒸罐壓力控制難題,引入了天牛須蜂群算法設計了一種BABC-PID壓力控制器,利用改進的天牛須蜂群算法優(yōu)化PID控制器參數(shù)。BABC算法將求解最優(yōu)PID參數(shù)問題變?yōu)榍蠼夥淙旱淖顑?yōu)蜜源問題[9,10]?;贐ABC-PID閃蒸罐壓力控制器如圖1所示。
圖1 BABC-PID壓力控制器
選取ITAE作為適應度函數(shù),并在式中加入控制量平方,如下式所示
(7)
式中Q1,Q2為系數(shù);F為適應度。若e(t)=r(t)-y(t)<0,則啟用超調懲罰功能,F(xiàn)如下式所示
(8)
式中Q3為系數(shù),令Q1=0.999,Q2=0.001,Q3=100。
BABC算法對PID參數(shù)整定流程如下:1)確立PID控制器參數(shù)的解向量,并通過BAS算法確定雇傭峰的搜索方向;2)計算解向量的適應度值,得到最小適應度值的最優(yōu)解參數(shù);3)設置雇傭蜂未更新次數(shù)trail為0;4)根據(jù)式(1)尋優(yōu)新解,若新解適應度未能減小,則將適應度值減小并將trail加1;5)根據(jù)式(2)計算雇傭蜂解向量的適應度值比例,比例越大越容易被旁觀蜂選擇,旁觀蜂則根據(jù)貪心法則確定更優(yōu)解,并根據(jù)步驟(4)的方法確定雇傭蜂未更新次數(shù)trail;6)計算本次迭代的最小適應度值,如果優(yōu)于之前的最小適應度值,則將其賦值給全局最小適應度值,并將其對應的最優(yōu)解賦值給全局最優(yōu)解;7)若trail>limit,則放棄當前蜜源。同時將該蜜源對應的雇傭蜂改為偵察蜂,按照式(3)重新計算新的蜜源來替代原本的蜜源xi;8)若迭代結束則輸出最優(yōu)PID參數(shù),否則跳至步驟(4)。
選取Sphere,Rosenbrock,Rastrigin,Griewark,Achley共5個基準函數(shù),分別表示為f1,f2,f3,f4,f5。利用其對BABC算法、ABC算法以及PSO算法進行測試,基準函數(shù)維數(shù)為50[11],參數(shù)限制設定為50,種群設置為100,最大迭代次數(shù)為5 000,經(jīng)過100次運行獲得的結果如下表1所示。無論是單峰基準函數(shù)還是多峰基準函數(shù),運行結果都表明BABC算法在求解精度和收斂速度方面都明顯優(yōu)于粒子群優(yōu)化(particle swarm optimization,PSO)算法和常規(guī)ABC算法。
表1 PSO,ABC和BABC性能測試表
為了更好地了解BABC算法的實際尋優(yōu)效果,使用MATLAB編程m文件對比PSO、ABC和BABC算法的適應度變化情況。并且結合文獻[3]中閃蒸罐壓力系統(tǒng)的數(shù)學模型G(s)=9e-10s/(100s+1)進行階躍響應仿真實驗。種群規(guī)模設為30,最大迭代次數(shù)為50,各算法適應度變化如圖2所示。PSO算法和ABC算法趨于穩(wěn)定的迭代次數(shù)分別為35次和17次,而BABC算法趨于穩(wěn)定的迭代次數(shù)僅為8次,迭代次數(shù)明顯減少。BABC算法提高了其在PID參數(shù)整定時的動態(tài)響應特性,同時BABC算法具有更好的收斂性,所得結果同用基準函數(shù)測試的性能結果一致。
圖2 PSO,ABC和BABC算法適應度變化曲線
圖3為BABC-PID,ABC-PID以及PSO-PID三種算法對閃蒸罐在兩種壓力要求下的控制性能情況,階躍響應曲線的各項參數(shù)如表2所示。在兩種工況下,PSO-PID算法的超調量都較小,但自身的調整時間過長,不能滿足閃蒸罐壓力調節(jié)的實時性要求。相比于PSO-PID算法,ABC-PID算法在調整時間和快速性上有很大的提升,但缺點是存在一定的超調量,給閃蒸罐罐體的承壓和物料輸送造成負擔。而BABC-PID算法在反應時間幾乎不變的情況下,超調量減小到了0.1 %,調整時間縮短了31 s,大大提高了閃蒸罐壓力控制的實時性和穩(wěn)定性。
圖3 PSO,ABC和BABC算法的階躍響應曲線
表2 閃蒸罐壓力系統(tǒng)階躍響應參數(shù)指標
本文通過MATLAB對BABC-PID算法在閃蒸罐數(shù)學模型上進行了仿真實驗,為進一步了解算法的應用效果,借助SMPT-1000高級過程控制實驗設備和西門子的SIMATIC PCS7軟件設計了閃蒸罐的壓力控制實驗。本文分別用傳統(tǒng)PID算法和BABC-PID算法對混合物料進入閃蒸罐時的壓力進行控制,實驗結果如圖4所示。
圖4 二種算法的壓力控制效果
圖4(a)中給出壓力階躍信號后,傳統(tǒng)PID算法對閃蒸罐壓力的調整時間為1 400 s左右,超調量超過了30 %。而圖4(b)的BABC-PID算法對閃蒸罐壓力的調整時間僅為1 000 s左右,并大大降低了超調量,使得閃蒸壓力控制的實時性和安全性得到提高。通過閃蒸罐的壓力實驗和仿真實驗表明BABC-PID算法的動靜態(tài)性能都得到很大程度的提高。
本文提出一種BABC-PID算法對閃蒸罐壓力系統(tǒng)進行控制。閃蒸罐壓力控制的調整時間的降低改進了壓力控制的實時性,同時超調的降低減少閃蒸罐在閃蒸分離時承受的負擔,極大地提高了閃蒸罐的穩(wěn)定性和動態(tài)特性,對閃蒸罐的分離提純具有很重要的意義。