鄧 肖 劉宗玲 楊 朝 胡慕伊
(南京林業(yè)大學(xué)江蘇省制漿造紙科學(xué)與技術(shù)重點(diǎn)實(shí)驗(yàn)室,江蘇南京,210037)
在堿回收蒸發(fā)工段,系統(tǒng)蒸發(fā)罐內(nèi)黑液液位的變化會(huì)導(dǎo)致罐內(nèi)壓力的變化,使蒸發(fā)器內(nèi)受熱不均勻,黑液黏度變大,造成蒸發(fā)板結(jié)垢,黑液得不到充分的蒸發(fā)熱,蒸發(fā)失效。因此,對(duì)堿回收蒸發(fā)工段控制來(lái)說(shuō),各效蒸發(fā)器、閃蒸罐、黑液槽及自蒸發(fā)器液位的精確控制至關(guān)重要。在堿回收控制系統(tǒng)中黑液液位受蒸汽溫度、壓力及自身不斷變化(能量傳遞給液體或從液體吸收能量)特性等因素的影響,具有非線性、大時(shí)滯及時(shí)變性等特點(diǎn),難以用完整的數(shù)學(xué)解析式來(lái)描述液位變化的真實(shí)情況。因此,要使黑液液位控制取得最佳響應(yīng),依靠一般PID控制算法進(jìn)行控制效果不理想[1]。
PID神經(jīng)網(wǎng)絡(luò)(PIDNN)是一種將常規(guī)PID控制技術(shù)和神經(jīng)網(wǎng)絡(luò)融為一體的新型神經(jīng)網(wǎng)絡(luò),PIDNN既具常規(guī)PID控制器結(jié)構(gòu)簡(jiǎn)單的優(yōu)點(diǎn),又具有神經(jīng)網(wǎng)絡(luò)自學(xué)習(xí)、自適應(yīng)之能力,能夠在很大程度上克服一般神經(jīng)網(wǎng)絡(luò)收斂速度慢、容易陷入局部最小值的問(wèn)題。通過(guò)在Matlab環(huán)境中進(jìn)行仿真實(shí)驗(yàn),結(jié)果表明,PIDNN具有一定的自適應(yīng)性和魯棒性,與常規(guī)PID算法和基于BP神經(jīng)網(wǎng)絡(luò)算法相比,根據(jù)仿真結(jié)果可以推論,PIDNN算法可較好地實(shí)現(xiàn)對(duì)黑液液位的有效控制。
基于PIDNN的單變量控制[2]系統(tǒng)結(jié)構(gòu)如圖1所示。PIDNN作為控制器,其輸入值是被控量設(shè)定值和被控量實(shí)際值,網(wǎng)絡(luò)的輸出作為控制量送入被控對(duì)象輸入端。
PIDNN的輸入層有2個(gè)神經(jīng)元,可分別輸入系統(tǒng)的給定值r和測(cè)量值y。
輸入層神經(jīng)元的輸入為:輸入層神經(jīng)元的輸出與輸入相等。
隱含層是神經(jīng)網(wǎng)絡(luò)中最重要的層次,PIDNN的隱含層有3個(gè)神經(jīng)元,分別為比例元、積分元和微分元,神經(jīng)元各自的輸入均為:
式中,Wij為輸入層至隱含層的連接權(quán)重值。
比例元的狀態(tài)為:u1'(k)=net1'(k)
積分元的狀態(tài)為:u2'(k)=u2'(k-1)+net2'(k)
微分元的狀態(tài)為:u3'(k)=net3'(k)-net3'(k-1)
隱含層各神經(jīng)元的輸出為:
PIDNN的輸出層結(jié)構(gòu)簡(jiǎn)單,只包含1個(gè)神經(jīng)元,完成網(wǎng)絡(luò)的總和輸出功能為:
式中,xj'(k)為隱含層各神經(jīng)元輸出值;Wj'為隱含層至輸出層的連接權(quán)重值。
圖1 PIDNN單變量控制系統(tǒng)結(jié)構(gòu)圖
輸出層神經(jīng)元的狀態(tài)為:
輸出層神經(jīng)元的輸出函數(shù)與網(wǎng)絡(luò)中其他神經(jīng)元的輸出函數(shù)相同,輸出為:
而PIDNN的輸出u(k)等于輸出層神經(jīng)元的輸出,即:
通過(guò)誤差反傳算法[3]完成網(wǎng)絡(luò)權(quán)重值的修改、學(xué)習(xí)和記憶的功能。PIDNN訓(xùn)練和學(xué)習(xí)的目的是使被控變量設(shè)定值和被控變量實(shí)際值的偏差最小。即整個(gè)網(wǎng)絡(luò)以偏差最小為訓(xùn)練學(xué)習(xí)的準(zhǔn)則和目標(biāo)。
當(dāng)網(wǎng)絡(luò)學(xué)習(xí)k步后,隱含層至輸出層的權(quán)重迭代公式為:
式中,ηj為學(xué)習(xí)步長(zhǎng)。
當(dāng)網(wǎng)絡(luò)學(xué)習(xí)k步后,輸入層至隱含層的權(quán)值迭代公式為:
式中,ηi為學(xué)習(xí)步長(zhǎng)。
神經(jīng)網(wǎng)絡(luò)連接權(quán)重初值決定了網(wǎng)絡(luò)的起始點(diǎn)和收斂的初始方向,恰當(dāng)?shù)臋?quán)重初值可使網(wǎng)絡(luò)的學(xué)習(xí)和收斂速度加快,且能避免陷入局部最小值。常規(guī)神經(jīng)網(wǎng)絡(luò)連接權(quán)重初值的選取一般取隨機(jī)數(shù),但會(huì)存在以下問(wèn)題。
(1)權(quán)重初值取隨機(jī)數(shù),網(wǎng)絡(luò)學(xué)習(xí)的起始點(diǎn)和收斂的初始方向都是隨機(jī)的,需要經(jīng)過(guò)反復(fù)訓(xùn)練和學(xué)習(xí),收斂速度慢。此外,對(duì)于采用反傳算法的神經(jīng)網(wǎng)絡(luò),隨機(jī)的初始權(quán)值容易使收斂陷入局部最小值。
(2)神經(jīng)網(wǎng)絡(luò)作為控制系統(tǒng)中的控制器,若網(wǎng)絡(luò)初始權(quán)值取隨機(jī)數(shù),很難保證系統(tǒng)初始的穩(wěn)定性,無(wú)應(yīng)用價(jià)值。
PIDNN是內(nèi)嵌PID控制規(guī)律的神經(jīng)網(wǎng)絡(luò),其權(quán)重初值的選取有獨(dú)特的原則,可以參照PID控制器的特點(diǎn)確定[4]。
根據(jù)PID控制算法的特點(diǎn),為了實(shí)現(xiàn)(r,y)→e的映射,選取輸入層至隱含層的連接權(quán)重初值為:
W1j=1,W2j=-1
選取PIDNN隱含層至輸出層的初始權(quán)值,使PIDNN的初始輸出等價(jià)于PID控制器的輸出。故隱含層至輸出層的初始權(quán)值選取為:
W1'=kP,W2'=kI,W3'=kD
按照以上規(guī)則選取初始權(quán)值時(shí),經(jīng)PIDNN前向計(jì)算得:
由公式(13)可知,PIDNN選取合適的權(quán)重初值時(shí)可以與PID控制器等價(jià)。因此,可利用PID經(jīng)驗(yàn)值確定PIDNN的初始權(quán)值,使系統(tǒng)初始穩(wěn)定,不陷入局部極小值。在此基礎(chǔ)上,通過(guò)在線學(xué)習(xí)和訓(xùn)練,調(diào)整網(wǎng)絡(luò)連接權(quán)重值,從而使PIDNN具備較好的控制效果。
對(duì)于沒(méi)有PID控制規(guī)律先驗(yàn)知識(shí)的系統(tǒng),一般選取隨機(jī)數(shù)為連接權(quán)初始值,這樣網(wǎng)絡(luò)學(xué)習(xí)的起始點(diǎn)和收斂起始方向是隨機(jī)的,若要使收斂方向歸于正確,必然需要經(jīng)過(guò)長(zhǎng)期反復(fù)訓(xùn)練激勵(lì)和學(xué)習(xí)。因此,對(duì)于無(wú)PID先驗(yàn)知識(shí)的系統(tǒng)初始值必須加以改進(jìn)。
PIDNN具有PID控制和神經(jīng)網(wǎng)絡(luò)的雙重優(yōu)點(diǎn)。為完善PIDNN控制系統(tǒng)的性能,擴(kuò)大其使用范圍,可做如下改進(jìn)[3]。
將PIDNN的輸出值限制在[-1,1]內(nèi),可以加快數(shù)據(jù)處理速度,使收斂加快。PIDNN輸出部分函數(shù)一般采用比例閥值函數(shù),使神經(jīng)網(wǎng)絡(luò)的輸出x″(k)被閥值函數(shù)限幅在[-1,1]。若PIDNN輸出層的輸出連續(xù)出現(xiàn)x″=1(或 x″=-1),則被控對(duì)象的輸入值u(k)=u(k-1)為1或-1,則sgn(u(k)-u(k-1))=0,從而使得反傳算法中的 Wj'(k)≈Wj'(k),Wij(k)=Wij(k-1),由此造成網(wǎng)絡(luò)收斂速度緩慢,甚至可能陷入局部極小值。
改進(jìn)的方法是用正切函數(shù)tanh替換比例閥值函數(shù),雙曲線函數(shù)tanh(x)是逐漸逼近1和-1的,在一個(gè)大的范圍內(nèi)盡可能地使反傳算式中的sgn(u(k)-u(k-1))≠0,從而避免神經(jīng)網(wǎng)絡(luò)過(guò)早陷入局部極小值。
由于PIDNN與BP都是以梯度下降為調(diào)整權(quán)值依據(jù),因此,用于BP的增加動(dòng)量項(xiàng)也應(yīng)該可以適用于PIDNN。附加動(dòng)量項(xiàng)后,網(wǎng)絡(luò)在修正權(quán)值時(shí)不僅考慮誤差在梯度上的作用,而且考慮誤差曲面上變化的趨勢(shì)。動(dòng)量項(xiàng)的本質(zhì)就是每個(gè)加權(quán)調(diào)節(jié)量上加一項(xiàng)正比于前次加權(quán)變化量的值[5]。其形式為:
式中,α為動(dòng)量系數(shù),一般取小于0.9的小數(shù)。引入動(dòng)量項(xiàng)后,促使權(quán)值的調(diào)節(jié)向著誤差曲面底部的平均方向變化。當(dāng)權(quán)值進(jìn)入誤差曲面底部的平坦區(qū)時(shí),避免出現(xiàn)ΔW=0,從而使網(wǎng)絡(luò)不陷入局部極小值。
為了驗(yàn)證PIDNN控制的優(yōu)越性,本研究通過(guò)對(duì)黑液液位控制系統(tǒng)的常規(guī)PID算法、基于BP神經(jīng)網(wǎng)絡(luò)算法和PIDNN算法的仿真,進(jìn)行了黑液液位控制效果的比較。在進(jìn)行仿真的過(guò)程中,黑液液位變化過(guò)程的數(shù)學(xué)模型可以近似等效為一階慣性環(huán)節(jié)加純滯后,經(jīng)過(guò)相關(guān)推導(dǎo)得到黑液液位傳遞函數(shù)[6]為:
本文中進(jìn)行的系統(tǒng)仿真設(shè)計(jì)均在Matlab環(huán)境下進(jìn)行。
(1)在常規(guī) PID 算法中,kp=3.05,ki=2.3,kd=1.01。
(2)在基于BP神經(jīng)網(wǎng)絡(luò)算法中,神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)選擇4-5-3,學(xué)習(xí)步長(zhǎng)選擇η=0.2。
輸入層至隱含層初始權(quán)重值選取為:
隱含層至輸出層初始權(quán)重值選取為:
(3)PIDNN控制系統(tǒng)流程
第一步,將被控對(duì)象的傳遞函數(shù)轉(zhuǎn)化為差分方程形式,Matlab控制系統(tǒng)工具箱中提供了c2d()函數(shù)[6],將連續(xù)系統(tǒng)變?yōu)椴蓸酉到y(tǒng)。
式中,T為采樣時(shí)間,取T=1 s;method為采樣方法,選取zoh零階保持器。
第二步,初始化設(shè)置,PIDNN的輸入層至隱含層的權(quán)系數(shù)、隱含層至輸出層的權(quán)系數(shù)以及學(xué)習(xí)步長(zhǎng)等參數(shù)。其中:
輸入層至隱含層初始權(quán)值:Wij=rand(3,2)/4;
隱含層至輸出層初始權(quán)值:Wj'=rand(1,3)/4;
網(wǎng)絡(luò)的學(xué)習(xí)步長(zhǎng):η=0.2。
第三步,令k=k+1,k≤200(采樣步數(shù))。
第四步,根據(jù)給定的輸入信號(hào),進(jìn)行前向算法,計(jì)算出控制器的輸出u(k)。
第五步,進(jìn)行反傳算法,調(diào)整PIDNN的各項(xiàng)參數(shù)。
第六步,判斷k值,如果k≤200,返回第四步。否則,執(zhí)行下一步。
第七步,畫圖。
在Matlab中編程實(shí)現(xiàn)PIDNN算法,下面給出算法的部分核心代碼:
%前向算法
ui(1,k)=ri(k);%輸入層計(jì)算
ui(2,k)=Y(k);
for i=1:2
xi(i,k)=ui(i,k);
end
for j=1:3;%隱含層計(jì)算
uj(j,k)=0;
for
i=1:2;
uj(j,k)=uj(j,k)+xi(i,k)*wij(i,j,n);
end
end
…………
%反傳算法
disp([‘反傳算法開始:迭代次數(shù):’,num2str(n),‘/’,num2str(MaxNum)]);
if Je(n)<miniE%如果目標(biāo)函數(shù)值小于預(yù)定值,停止
disp(‘反傳算法break結(jié)束’);
break;
end
if n==1‖(n>1&(Je(n)<=Je(n-1)))%如果本次目標(biāo)函數(shù)小于或等于上次目標(biāo)值,權(quán)值改變?yōu)樾轮?/p>
disp(‘權(quán)值改變?yōu)樾轮怠?;
……
用上述3種控制方法,在Matlab中進(jìn)行仿真,給定值取為單位階躍函數(shù),該函數(shù)下控制系統(tǒng)性能指標(biāo)見表1;黑液控制系統(tǒng)的曲線如圖2所示。
表1 階躍輸入下的控制系統(tǒng)性能指標(biāo)
由圖2和表1可知,與常規(guī) PID算法相比,PIDNN算法系統(tǒng)調(diào)節(jié)時(shí)間減少了28 s,超調(diào)量減少(82.4%)更加明顯,控制性能的提升十分明顯;PIDNN算法與BP神經(jīng)網(wǎng)絡(luò)算法相比,調(diào)節(jié)時(shí)間減少了22 s,超調(diào)量減少53.8%,性能的優(yōu)越性比較明顯,PIDNN的上升時(shí)間也較短,說(shuō)明PIDNN的響應(yīng)速度較快,而且PIDNN算法的權(quán)重初值相較于BP神經(jīng)網(wǎng)絡(luò)算法的權(quán)重初值的選取更加簡(jiǎn)單。
為了進(jìn)一步驗(yàn)證PIDNN算法的效果,用PIDNN進(jìn)行時(shí)變單變量非線性系統(tǒng)的控制,選取時(shí)變單變量系統(tǒng)對(duì)象模型為:
控制系統(tǒng)的輸入:r(k)=1(k),控制器輸出計(jì)算與權(quán)系數(shù)調(diào)整算法,與上述相同。仿真結(jié)果如圖3~圖6所示。
由圖3~圖6可知,對(duì)象特性發(fā)生變化時(shí),由于PID神經(jīng)網(wǎng)絡(luò)控制器權(quán)系數(shù)不斷調(diào)整,使控制量u(k)變化,當(dāng)系統(tǒng)的輸出經(jīng)過(guò)一段時(shí)間調(diào)整,仍能跟蹤輸入。
綜上,PIDNN算法有自學(xué)習(xí)及自適應(yīng)能力,在不知道對(duì)象參數(shù)的情況下通過(guò)自學(xué)習(xí)和參數(shù)調(diào)整,最后成功解決了復(fù)雜對(duì)象的控制。系統(tǒng)在保證很短輸出上升時(shí)間的同時(shí),只出現(xiàn)很小的超調(diào)量,無(wú)靜差,有較好的穩(wěn)定性。
圖2 黑液液位階躍響應(yīng)曲線
圖3 階躍響應(yīng)曲線
圖4 目標(biāo)函數(shù)E的曲線
由于MCGS工控機(jī)組態(tài)軟件系統(tǒng)本身的限制,復(fù)雜的控制算法由其內(nèi)置的實(shí)時(shí)數(shù)據(jù)庫(kù)和腳本語(yǔ)言難以實(shí)現(xiàn),故PID神經(jīng)網(wǎng)絡(luò)(PIDNN)控制算法采用開發(fā)第三方功能構(gòu)件的方法,使用VB語(yǔ)言編寫算法處理程序,生成包含MCGS工控機(jī)接口的ActiveDLL策略模塊(PIDNN策略模塊),供 MCGS進(jìn)行策略調(diào)用[8]。其實(shí)質(zhì)就是將MCGS的實(shí)時(shí)數(shù)據(jù)庫(kù)作為一個(gè)可調(diào)用的對(duì)象封裝起來(lái),VB程序通過(guò)MCGS提供的調(diào)用接口和操作實(shí)時(shí)數(shù)據(jù)庫(kù)的函數(shù)、方法,從實(shí)時(shí)數(shù)據(jù)庫(kù)取得測(cè)控?cái)?shù)據(jù),運(yùn)用VB強(qiáng)大的運(yùn)算能力進(jìn)行數(shù)據(jù)分析和算法運(yùn)算,得到控制量再寫回到實(shí)時(shí)數(shù)據(jù)庫(kù)交由MCGS使用。本實(shí)驗(yàn)MCGS工控機(jī)實(shí)際數(shù)據(jù)庫(kù)對(duì)應(yīng)于液位控制的實(shí)時(shí)數(shù)據(jù),網(wǎng)絡(luò)經(jīng)過(guò)在線訓(xùn)練、調(diào)整權(quán)值,最后對(duì)液位實(shí)施控制。
用改進(jìn)的PID神經(jīng)網(wǎng)絡(luò)控制系統(tǒng)對(duì)黑液液位進(jìn)行控制時(shí),系統(tǒng)運(yùn)行效果如圖7所示。圖7可知,該控制系統(tǒng)控制效果較好。
圖5 部分權(quán)值調(diào)整過(guò)程曲線
圖6 控制量u的曲線
圖7 PIDNN在MCGS工控機(jī)中對(duì)黑液液位的控制曲線
對(duì)堿回收蒸發(fā)工段的黑液液位進(jìn)行了仿真控制,給出了用BP神經(jīng)網(wǎng)絡(luò)和常規(guī)PID相結(jié)合的PIDNN神經(jīng)網(wǎng)絡(luò)控制器,解決了PID對(duì)非線性時(shí)變系統(tǒng)難以精確控制的問(wèn)題,避免了BP神經(jīng)網(wǎng)絡(luò)權(quán)重值難以確定以及可能陷入局部極小值的缺點(diǎn)。根據(jù)仿真結(jié)果可以推論,PIDNN控制算法可較好地實(shí)現(xiàn)黑液液位的有效控制,PIDNN表現(xiàn)出了良好的自適應(yīng)性和魯棒性。
[1]曹 露,胡慕伊.神經(jīng)網(wǎng)路在堿回收蒸發(fā)工段中的應(yīng)用研究[D].南京:南京林業(yè)大學(xué),2012.
[2]舒懷林.PID神經(jīng)網(wǎng)路及其控制系統(tǒng)[M].北京:國(guó)防工業(yè)出版社,2006.
[3]徐麗娜.神經(jīng)網(wǎng)絡(luò)控制([M].2版.北京:電子工業(yè)出版社,2009.
[4]李文峰,劉軍營(yíng),盛 蕾.PID神經(jīng)網(wǎng)絡(luò)控制系統(tǒng)的穩(wěn)定性分析與改進(jìn)[J].山東理工大學(xué)學(xué)報(bào):自然科學(xué)版,2008,22(2):57.
[5]呂 俊,張興華.幾種快速BP算法的比較研究[J].現(xiàn)代電子技術(shù),2003,167(24):96.
[6]高進(jìn)更.模糊控制在造紙堿回收系統(tǒng)中的應(yīng)用研究[D].蘭州:蘭州理工大學(xué),2009.
[7]蔡啟仲.控制系統(tǒng)計(jì)算機(jī)輔助設(shè)計(jì)[M].北京:科學(xué)出版社,2000.
[8]祝佳寧.計(jì)算機(jī)控制實(shí)驗(yàn)裝置及PID神經(jīng)網(wǎng)絡(luò)控制系統(tǒng)研究[D].廣州:廣州大學(xué),2009.