(合肥工業(yè)大學(xué) 電氣與自動化工程學(xué)院,安徽 合肥 230009)
DMF是一種常見的有機溶劑,在很多化工工藝中起著重要的作用。高濃度DMF廢液是回收系統(tǒng)的原料,DMF廢液經(jīng)過收集、濃縮塔脫水后進(jìn)入精餾塔,塔內(nèi)的溫度控制是回收系統(tǒng)的核心[1-2]。精餾塔由導(dǎo)熱油供熱。導(dǎo)熱油溫度和流量都是溫度控制過程中的變量,由于導(dǎo)熱油溫度較為穩(wěn)定,改變導(dǎo)熱油閥門的開度來改變導(dǎo)熱油流量是DMF溶液回收系統(tǒng)溫度控制的主要思路[3]。因為精餾塔內(nèi)的溫度無法做到實時精確測量,所以精餾塔內(nèi)的液位高度是否穩(wěn)定成為反映塔內(nèi)溫度穩(wěn)定的重要指標(biāo)。因此,系統(tǒng)控制目的是使精餾塔液位保持穩(wěn)定或動態(tài)穩(wěn)定,并且與理想液位的誤差最小,使塔內(nèi)DMF廢液的進(jìn)料量和DMF溶液的揮發(fā)量保持平衡。此時能最大程度節(jié)約資源,降低企業(yè)生產(chǎn)成本。
對導(dǎo)熱油閥門開度進(jìn)行PID控制器設(shè)計,由于傳遞函數(shù)模型往往建立得不夠精確,同時導(dǎo)熱油閥門開度的設(shè)定往往由工人根據(jù)經(jīng)驗調(diào)節(jié)且閥門調(diào)節(jié)的頻率不能太高,傳統(tǒng)PID控制器很難滿足控制需要。因此,對其進(jìn)行基于AFSA-BP算法的模糊PID控制器設(shè)計。其結(jié)構(gòu)圖如圖1所示。它包括如下幾個部分:
① 積分分離PID控制器。根據(jù)PID參數(shù)直接對導(dǎo)熱油閥門開度進(jìn)行控制。
② 模糊邏輯。對導(dǎo)熱油閥門開度的偏差值e(k)和偏差值變化率Δe(k)進(jìn)行模糊化處理。
③ BP神經(jīng)網(wǎng)絡(luò)。確定BP神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)并與模糊規(guī)則相結(jié)合。
④ 算法學(xué)習(xí)。對BP神經(jīng)網(wǎng)絡(luò)的系數(shù)和權(quán)值用AFSF算法發(fā)現(xiàn)全局最優(yōu)解。
圖1 復(fù)雜PID系統(tǒng)控制結(jié)構(gòu)圖
PID控制器的數(shù)學(xué)表達(dá)式為
(1)
式中,U(k)為第k次測量精餾塔導(dǎo)熱油閥門開度的大小;err(k)為第k次閥門開度大小與理想閥門開度大小的偏差值;r(k)為理想閥門大小開度的輸出值。
導(dǎo)熱油閥門開度和導(dǎo)熱油流量正相關(guān),流量的大小決定了精餾塔溫度的高低,這也是溫度的控制核心。由于閥門開度控制難以建立精確的數(shù)學(xué)模型[3],塔內(nèi)的溫度不容易直接精確測量,所以往往根據(jù)工人的操作經(jīng)驗定性改變導(dǎo)熱油的開度,這也為模糊邏輯的設(shè)計提供了前提條件。模糊化處理的目的是在進(jìn)行模糊推理前,將輸入的精確量轉(zhuǎn)化為模糊量[4]。
設(shè)集合{PB,PM,PS,ZE,NS,NM,NB}分別對應(yīng)導(dǎo)熱油閥門開度的7個等級{正大,正中,正小,適中,負(fù)小,負(fù)中,負(fù)大}。對閥門開度的輸出值與理想值的偏差e(k)和偏差變化率Δe(k)進(jìn)行模糊化處理,分別對應(yīng)這7個等級。Kp、Ki、Kd的模糊化變量分別為ΔKp、ΔKi、ΔKd均對應(yīng)同樣的7個等級[5]。
BP神經(jīng)網(wǎng)絡(luò)包含輸入層、輸出層和隱含層,是一種建立在梯度下降法基礎(chǔ)上的有導(dǎo)師的學(xué)習(xí)算法,其學(xué)習(xí)過程包含正向傳播和反向傳播[6]。反向傳播通過對各層連接權(quán)值進(jìn)行反向?qū)W習(xí),以獲得最優(yōu)的控制參數(shù)。
因為本系統(tǒng)的輸出層有兩個輸入量,即精餾塔導(dǎo)熱油閥門開度的輸出量與理想輸出量的偏差值e(k)和偏差值變化率Δe(k)。這兩個值無法準(zhǔn)確獲得,所以在1.3節(jié)中提出了模糊規(guī)則,在輸入層之后加入一層模糊層。選擇合適的隸屬函數(shù),對輸入值閥門開度誤差和誤差變化率進(jìn)行模糊劃分。圖2為加入了模糊規(guī)則的5層BP神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)圖[7]。
圖2 模糊BP神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)圖
第1層為輸入層,包含兩個輸入量,偏差值e(k)和偏差值變化率Δe(k)分別設(shè)為x1和x2,有兩個輸入量,即M=2。
所選用的高斯隸屬函數(shù)為
(2)
式中,cij為隸屬函數(shù)曲線的中心點;σij為隸屬函數(shù)曲線的寬度,通常為正數(shù)。
第3層為隱含層,該層與典型BP神經(jīng)網(wǎng)絡(luò)的隱含層含義不同,由于在模糊層設(shè)定了模糊分割數(shù)7,所以可以根據(jù)模糊分割數(shù)和輸入節(jié)點數(shù)得出該層的節(jié)點數(shù)Q=7×7=49,同時,m=∏mi,對于兩個輸入量的系統(tǒng)而言,m=Q=49。49個節(jié)點每個都對應(yīng)一條模糊控制規(guī)則。每個節(jié)點的模糊規(guī)則為
(3)
式中,Q表示第幾條模糊規(guī)則,Q=1,2,…,49,j1∈{1,2,…7},j2∈{1,2,…7}。
第4層為歸一化層,對第3步得到的值進(jìn)行歸一化處理,得
(4)
第5層為輸出層,根據(jù)歸一化的隱含層節(jié)點輸出,得到PID參數(shù),有
(5)
式中,ωlj為第4層到第5層的權(quán)值。
對于函數(shù)曲線的中心點cij,函數(shù)曲線的寬度σij(i=1,2;j=1,2,3,…,mi)和隱含層到輸出層的權(quán)系數(shù)ωlj(l=1,2,3;j=1,2,…,m)而言,這3個系數(shù)都需要經(jīng)過學(xué)習(xí)才能得到。
AFSA是一種根據(jù)魚群生活習(xí)性衍生出的仿生算法,它的基本思路是:魚群在水域中總是會朝著食物濃度最高的區(qū)域移動,從而進(jìn)行覓食行為[8]。由此構(gòu)造出人工魚集群進(jìn)行全局尋優(yōu),可以有效解決BP神經(jīng)網(wǎng)絡(luò)反向傳播常用的最速下降法產(chǎn)生的容易陷入?yún)^(qū)域極大值的情況。
把輸出均方誤差的倒數(shù)作為人工魚群算法的適應(yīng)函數(shù)(食物濃度),得到[9]:
(6)
dp,q=‖Xp-Xq‖
(7)
對于距離給出如下定義:
(8)
式中,ωlj(l=1,2,3;j=1,2,…,m)為第4層到第5層的權(quán)值;cij(i=1,2;j=1,2,…,mi)為隸屬函數(shù)曲線的中心點;σij(i=1,2;j=1,2,…,mi)為隸屬函數(shù)曲線的寬度(下同)。
人工魚有以下幾種基本行為[10-12],對每種行為分別做以下說明。
① 覓食行為。Visual為人工魚視野,step為最大移動步長,rand()∈(0,1)為一個隨機數(shù),Xi為當(dāng)前人工魚狀態(tài),Xj為人工魚視野內(nèi)的隨機狀態(tài),當(dāng)該隨機狀態(tài)的食物濃度Yj大于當(dāng)前狀態(tài)Yi時,則朝該隨機位置移動,此時有
(9)
式中,ωlj、cij、σij的含義和取值同式(8);ωlj()、cij()、σij()為遞推時人工魚群的狀態(tài);ωlj(i)、cij(i)、σij(i)為當(dāng)前狀態(tài)Xi的訓(xùn)練參數(shù);ωlj(j)、cij(j)、σij(j)為隨機狀態(tài)Xj的訓(xùn)練參數(shù);ωlj(i+1)、cij(i+1)、σij(i+1)為執(zhí)行此種行為后的訓(xùn)練參數(shù)。
當(dāng)該隨機狀態(tài)的食物濃度Yj小于當(dāng)前狀態(tài)Yi時,則人工魚群隨機移動一步,則有
(10)
式中,ωlj()、cij()、σij()為遞推時人工魚群的狀態(tài)。
② 聚群行為。Xi為當(dāng)前人工魚狀態(tài),Xjc為人工魚視野內(nèi)的隨機狀態(tài)的中心點,n為該隨機狀態(tài)的區(qū)域的伙伴數(shù)量,δ為擁擠度因子,Yjc為隨機狀態(tài)中心的食物濃度,Yi為當(dāng)前位置的食物濃度,當(dāng)Yjc/n>σYi時,說明該隨機狀態(tài)中心有較多食物,人工魚應(yīng)該朝該中心位置移動,則有
(11)
式中,ωlj()、cij()、σij()為遞推時人工魚群的狀態(tài),否則執(zhí)行覓食行為。
③ 追尾行為。Xi為當(dāng)前人工魚狀態(tài),當(dāng)其視野內(nèi)存在一個Xj,其食物濃度為視野內(nèi)最大滿足Yj=Yjmax時,若Yjmax/n>δYi成立,說明該處有較多食物,人工魚應(yīng)該朝該處移動,則有
(12)
式中,ωlj()、cij()、σij()為遞推時人工魚群的狀態(tài),否則執(zhí)行覓食行為。
圖3為用AFSA-BP神經(jīng)網(wǎng)絡(luò)優(yōu)化PID參數(shù)的流程圖。其過程包含如下步驟。
① 確定模糊BP神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)。
② 初始化人工魚群算法的參數(shù)。
圖3 AFSA-BP神經(jīng)網(wǎng)絡(luò)優(yōu)化PID參數(shù)流程圖
③ 產(chǎn)生N條人工魚,即產(chǎn)生N組ωlj、σij和cij,計算各魚群的適應(yīng)函數(shù)Y,得到食物濃度的最大值,取值給公告欄。
④ 模擬執(zhí)行3種行為,然后按照執(zhí)行行為后的食物濃度選擇相應(yīng)的行為,缺省行為方式為覓食行為。
⑤ 根據(jù)步驟④確定魚群經(jīng)過某種行為后再次計算各魚群的適應(yīng)函數(shù)Y,若食物濃度最大值優(yōu)于公告欄的值,則把新的值賦值給公告欄。
⑥ 判斷是否達(dá)到最大迭代次數(shù)Nummax,若未達(dá)到則回到步驟③。
⑦ 達(dá)到最大迭代次數(shù),取得公告欄最優(yōu)值,得到BP神經(jīng)網(wǎng)絡(luò)的最優(yōu)連接權(quán)值和隸屬函數(shù)參數(shù)值。
⑧ BP神經(jīng)網(wǎng)絡(luò)運行得到最優(yōu)的PID優(yōu)化參數(shù)。
在現(xiàn)場DMF回收系統(tǒng)中,由于電機伺服系統(tǒng)頻繁改變轉(zhuǎn)向可能導(dǎo)致電機燒毀,所以導(dǎo)熱油閥門開度調(diào)節(jié)頻率不應(yīng)過高,精餾塔的體積較大、溫度分布不均勻,無法通過單點測量確認(rèn)塔內(nèi)整體溫度,所以通??梢詼y量液位高度的變化進(jìn)而判斷系統(tǒng)是否處于穩(wěn)定。當(dāng)精餾塔的DMF廢液進(jìn)料量和揮發(fā)量保持一致時,可以有效降低成本,即液位的變化量越小PID參數(shù)越好,回收效率越高。在現(xiàn)場生產(chǎn)過程中,采用的是西門子FM355PLC模塊控制導(dǎo)熱油閥門開度,該控制模塊包含PID參數(shù)的輸入。對精餾塔的液位高度變化進(jìn)行測量,當(dāng)液位高度變化很快或回收效率降低時,說明物料沒有達(dá)到動態(tài)平衡,此時會對PID參數(shù)進(jìn)行優(yōu)化,也就是一種離線優(yōu)化的過程。用AFSA-BP算法進(jìn)行系統(tǒng)仿真,根據(jù)系統(tǒng)實際輸出的情況確認(rèn)優(yōu)化后的PID參數(shù)。
收集實際實驗中的數(shù)據(jù),設(shè)定120組數(shù)據(jù),每組包括進(jìn)料流量、精餾塔內(nèi)單點溫度、閥門開度、理想液位和實際液位高度,得到采用BP神經(jīng)網(wǎng)絡(luò)最速下降法訓(xùn)練時與AFSA-BP算法時的數(shù)據(jù),比較液位高度的變化量,部分實驗結(jié)果如表1所示。
表1 訓(xùn)練參數(shù)后部分實驗數(shù)據(jù)組
實際實驗數(shù)據(jù)表明,AFSA-BP算法相較于BP神經(jīng)網(wǎng)絡(luò)算法可以有效降低液位高度的相對誤差,使液位處于動態(tài)穩(wěn)定狀態(tài),能夠有效節(jié)約能源,降低生產(chǎn)成本。
AFSA算法優(yōu)化模糊BP神經(jīng)網(wǎng)絡(luò),需要設(shè)定的參數(shù)包括步長step=0.4,視野Visual=0.6,最大迭代次數(shù)N=100,擁擠度因子δ=0.628,人工魚的樣本數(shù)量k,人工魚群的數(shù)量和神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)和待訓(xùn)練參數(shù)的個數(shù)有關(guān),根據(jù)神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),模糊度為7,輸入量為2,輸出量為3,隸屬函數(shù)有兩個訓(xùn)練參數(shù),一個連接權(quán)系數(shù),所以人工魚群數(shù)量k應(yīng)該設(shè)定為7×2×2+49×3=175。系統(tǒng)的仿真時間大約需要40 min。以120組數(shù)據(jù)中的30組數(shù)據(jù)為訓(xùn)練對象,逼近輸出均方誤差可以得到圖4所示的實驗結(jié)果。
由圖4可知,AFSA算法在進(jìn)行到第20次時,誤差已經(jīng)達(dá)到10-3級,此時訓(xùn)練誤差已經(jīng)比較理想。因此,AFSA-BP算法具有迭代次數(shù)少、快速性好的優(yōu)點。
系統(tǒng)可以在很大程度上降低誤差。在得到最優(yōu)的連接權(quán)系數(shù)和隸屬函數(shù)參數(shù)后,用實際實驗數(shù)據(jù)中的另外30組為測試對象,仿真得到系統(tǒng)預(yù)測精度,結(jié)果如圖5所示。
圖4 AFSA算法訓(xùn)練誤差
圖5 AFSA算法訓(xùn)練參數(shù)后的檢驗效果圖
圖5中綠色表示理想輸出值,紅色表示實際輸出值,通過用ASFA算法訓(xùn)練后得到的最優(yōu)連接權(quán)系數(shù)和隸屬函數(shù)參數(shù),賦給模糊BP神經(jīng)網(wǎng)絡(luò)后,絕大部分實際輸出值符合理想輸出值,只有在個別點有一定偏差,因此控制精度較高,滿足整體控制要求。
針對DMF回收系統(tǒng)中精餾塔的導(dǎo)熱油閥門開度控制難以建立精確數(shù)學(xué)模型的問題,提出了一種用AFSA算法來優(yōu)化模糊BP神經(jīng)網(wǎng)絡(luò)的PID控制器,控制目的是使精餾塔內(nèi)的DMF廢液進(jìn)料量和DMF溶液揮發(fā)量保持動態(tài)平衡,從而實現(xiàn)節(jié)約資源并降低企業(yè)的生產(chǎn)成本。AFSA算法具有全局尋優(yōu)能力強、迭代速度快、穩(wěn)定性好等優(yōu)點。通過實驗仿真,證明AFSA-BP算法迭代次數(shù)少,能夠減小精餾塔液位的誤差,使精餾塔內(nèi)液位高度保持動態(tài)平衡。