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