馬浩天,楊友良,馬翠紅,王 祿
(華北理工大學(xué)電氣工程學(xué)院,河北 唐山 063200)
在氯堿電解槽電解過程中,因為操作不準(zhǔn)確和參數(shù)測量的不穩(wěn)定以及對多參數(shù)信息的綜合分析能力有限,所以對于氯堿電解生產(chǎn)控制策略往往是不充分的。在現(xiàn)有作業(yè)制度和電解設(shè)備不需要做大改動情況之下,通過對氯堿電解槽的電解過程進行參數(shù)優(yōu)化,控制并調(diào)整各工藝參與以提高生產(chǎn)效率,降低能耗,具有一定的實際意義。
神經(jīng)網(wǎng)絡(luò)的非線性映射能力非常強,它是一種單向傳播的多層神經(jīng)網(wǎng)絡(luò),在沒有任何先驗公式的基礎(chǔ)上,可以通過訓(xùn)練自動總結(jié)出數(shù)據(jù)間的函數(shù)關(guān)系。但是神經(jīng)網(wǎng)絡(luò)有一些缺點,就是初始的權(quán)值與閾值的隨機設(shè)定會導(dǎo)致收斂速度較慢并容易陷入局部的極小值。遺傳算法可以用來優(yōu)化神經(jīng)網(wǎng)絡(luò)的閾值和初始權(quán)值,但是遺傳算法本身也是存在著一定缺點的,比如算子設(shè)定、初始種群的選擇等。為了解決這些問題,該文把K均值聚類的計算方法結(jié)合量子遺傳算法,利用K均值聚類算法將遺傳算法中的初始種群劃分為多個子種群,另多個子種群分別進化;對于傳統(tǒng)的方法之中使用的固定旋轉(zhuǎn)角,為了提高算法的收斂速度采用動態(tài)調(diào)整策略。用改進量子遺傳算法來在BP神經(jīng)網(wǎng)絡(luò)的初始閾值與權(quán)值之中進行尋優(yōu),最后通過仿真實驗檢測離子膜模型建立的效果。
該文利用神經(jīng)網(wǎng)絡(luò)的訓(xùn)練數(shù)據(jù),建立好函數(shù)關(guān)系,并將該函數(shù)作為目標(biāo)輸入函數(shù),利用復(fù)合形法對離子膜效率進行在線優(yōu)化,取得了很好的經(jīng)濟效益。
離子膜氯堿電解技術(shù)是目前世界上較為先進的電解生產(chǎn)工藝,其與金屬陽極法、石墨槽法、水銀法相比,具有能耗低、污染少、NaOH濃度高等優(yōu)點。
離子膜技術(shù)的特點是利用選擇性離子交換膜將電解槽的陰陽極室分隔開來,其膜原理是將陽離子Na+從陽極室?guī)У疥帢O室,并且阻止陰極室的OH-離子通過。這樣避免了液體與氣體之間的混合,又保證了電解室?guī)щ婋x子的平衡,從而產(chǎn)生高質(zhì)量與高純度的產(chǎn)物。
離子膜的效率即是對OH-離子的排斥能力以及對Na+的遷移能力。實際離子膜效率的計算公式為:
式中:q—堿液流量,kg/h;
cNaOH—堿液質(zhì)量的百分數(shù),%;
NA、NB—A列和B列的電解槽數(shù),一般每個電解槽的槽數(shù)是30個;
IA和IB—A列和B列的電流,kA;
T—計算膜效率的時間間隔,h。
離子膜生產(chǎn)過程中,離子膜效率越高,電解效率越高,電解能耗越低,因此可以帶來可觀的經(jīng)濟收益。所以,為了保證高質(zhì)量、高效率的生產(chǎn)過程,對電解槽的優(yōu)化控制是非常有必要的。但是影響電解槽生產(chǎn)效率的因素有很多,主要變量有,NaOH濃度、淡鹽水濃度、電流密度、槽溫等。該文用改進后的量子遺傳算法優(yōu)化BP神經(jīng)網(wǎng)絡(luò)對離子膜效率進行軟測量,然后再對離子膜的被控變量的設(shè)定值進行在線優(yōu)化調(diào)整,保證離子膜的性能達到最佳,從而達到節(jié)能降耗的目的。
神經(jīng)網(wǎng)絡(luò)是由一個個神經(jīng)元[4]來組成的。圖1是單輸入神經(jīng)元,其中x是輸入端,ω是權(quán)值,b是閾值,f是激勵函數(shù),而y是輸出。輸入值x經(jīng)過與權(quán)值、閾值的計算,得到激勵函數(shù)的輸入y=f(ωx+b)。其中,f的函數(shù)型該文選擇S型函數(shù)。
BP神經(jīng)網(wǎng)絡(luò)是多層前饋神經(jīng)網(wǎng)絡(luò)見圖2。網(wǎng)絡(luò)的結(jié)構(gòu)包括輸入層、輸出層和隱含層。其每一層由并行神經(jīng)元構(gòu)成,未在同一層神經(jīng)元都相互連接,同一層之間沒有連接,并且各層神經(jīng)元都選擇任意激勵函數(shù)。
圖1 單輸入神經(jīng)元
圖2 BP神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)
BP神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)算法組成:輸入樣本和誤差,其中輸入樣本為正向傳播而誤差是反向傳播。訓(xùn)練網(wǎng)絡(luò)時,權(quán)值和閾值是隨機的,用來訓(xùn)練的樣本從輸入端計算到輸出端,然后再將其與設(shè)定值進行比較,若誤差值未達標(biāo),則將誤差變化值信號反向傳播回去,同時修改每層神經(jīng)元的權(quán)值與閾值。前向傳播與反向傳播來回計算,直到輸值與設(shè)定值誤差平方和達標(biāo)或者計算次數(shù)達到設(shè)定的最大值,以此來獲得最合適的連接權(quán)值和閾值。假設(shè)輸出層神經(jīng)元是m個,且輸出值為,期望值為y,誤差平方和E得:
權(quán)值的修正值是:
式中,Δωij—ij之間的權(quán)值,Ij—激勵函數(shù),η—學(xué)習(xí)的速率。
量子遺傳算法的原理是使用量子特性之中的比特概率幅代表染色體編碼,這樣使染色體的狀態(tài)信息能夠增加很多,然后種群的更新則使用量子旋轉(zhuǎn)門來實現(xiàn),最后達到對目標(biāo)函數(shù)尋優(yōu)的目的。
一般計算中,一個比特的值為二進制0和1。然而在量子特性中,一個量子比特,不僅僅代表兩個數(shù)值,其能夠代表|0〉和|1〉之間的無限個中間態(tài),也就是說量子比特的狀態(tài)是|0〉和|1〉的線性組合:
式中,α和β 為復(fù)數(shù),被稱作量子態(tài)概率幅。|α|2和|β|2分別表示量子位在|0〉和|1〉狀態(tài)間的概率,而且滿足以下條件:
包含m個量子比特位系統(tǒng):
式中,|αi|2+|βi|2=1(i=1,2,…,m)。m 個比特位可以有2m種狀態(tài),且其中的狀態(tài)由2m個概率幅決定。所以,量子遺傳算法在種群多樣性和全局搜索能力比一般遺傳算法更加優(yōu)秀。
該算法更新種群的方法是旋轉(zhuǎn)門。操作方法如下:
式中,θ為旋轉(zhuǎn)角,大小以及方向按照表1來選擇,θ=s(αi,βi)δ。
表1中,f(x)是適應(yīng)度函數(shù),xi和besti分別代表第i個當(dāng)前的染色體與最優(yōu)的染色體的二進制編碼;s(αi,βi)代表旋轉(zhuǎn)角方向,s(αi,βi)其中的符號確定染色體收斂方向;δ代表旋轉(zhuǎn)角,能夠影響算法收斂速度,δ范圍是 0.005π~0.1π。
(1)先設(shè)定好種群的大小n和量子編碼的位數(shù)m。其中每個個體如公式(6)所示,所有的 αi、βi初始化成
(2)根據(jù)個體概率幅生成相對應(yīng)的二進制編碼。具體的操作:產(chǎn)生[0.1]的隨機數(shù),若隨機數(shù)大于|αi|2或者|βi|2,則取 1,否則取 0。
(3)計算個體適應(yīng)度值,并記錄適應(yīng)度最大個體,作為下一代的進化目標(biāo)。
(4)判斷終止條件是否滿足,如果滿足則算法終止,不滿足則執(zhí)行下一步。
(5)計算量子旋轉(zhuǎn)旋轉(zhuǎn)角,并更新每個個體概率幅值。
(6)代數(shù)加1,然后繼續(xù)進行(2)步驟。
量子遺傳算法中,種群之中的其余個體需要朝向最優(yōu)解的方向來更新自己的染色體,更新時由其本身與當(dāng)前最優(yōu)個體的概率幅值來決定。但如果當(dāng)前的最優(yōu)解個體是當(dāng)前全局次優(yōu)解,那就會陷入局部最優(yōu)。
表1 量子旋轉(zhuǎn)門的調(diào)整策略
為了解決這種問題,此文加入多種群的計算方法。將整體的種群進行分化,劃分成多個子種群并且每個自種群向著其中最優(yōu)的種群來進化,并且在進化到一定的代數(shù)時,通過移民方法來交換個體,這樣可以加快算法收斂速度,且避免過早收斂現(xiàn)象。但傳統(tǒng)多種群算法僅僅是將父種群隨機的劃分為多個子種群,其有盲目性和隨機性,不符合自然進化規(guī)律。所以這里利用K均值聚類的算法劃分種群。
K均值聚類算法:任意選擇其中的K個對象用作初始聚類中心,并計算群體之中個體與聚類中心的距離,令每個個體歸屬于其最近聚類中心。聚類中心和其被分配的個體代表一個子種群。如果所有個體都被分配,那么各個種群聚類中心將會根據(jù)聚類之中現(xiàn)有個體來重新計算。此過程不斷重復(fù)直至群體不再變化。
基于K均值的多種群的量子遺傳算法如下:
步驟1利用以上方法將父種群劃分為k個子種群。
步驟2各個子種群利用量子旋轉(zhuǎn)門來進行更新,然后計算出所有個體的適應(yīng)度值。
步驟3各個子種群進行移民操作:相鄰子種群適應(yīng)度最高的個體來代替本子種群適應(yīng)度最低的個體。
步驟4每一個子種群之中要選擇出適應(yīng)度值最好的那個個體保存到精華群。若最優(yōu)個體的最少保持代數(shù)小于設(shè)定值,則轉(zhuǎn)到步驟1,否則迭代終止。其中精華群里面的最優(yōu)個體則為最優(yōu)解。
子種群進化時的計算是由動態(tài)組建完成,且利用其他子種群的最優(yōu)個體代替本子種群最劣個體,此種方法能促進各個子種群間的信息交換,增加跳出局部最優(yōu)的概率。精華種群的作用是保證各子種群的最優(yōu)解不被丟失。
種群更新時需要比較各個個體與當(dāng)前的最優(yōu)個體的二進制編碼來決定轉(zhuǎn)角,若f(x)≥f(b),則需要調(diào)整個體中相對應(yīng)比特位,令(αi,βi)朝著x的方向進行旋轉(zhuǎn)。δ大小決定收斂速度,δ設(shè)定為固定值,計算過程中保持不變。但是此種方法有所不足:若設(shè)置過大,則會導(dǎo)致算法早熟;設(shè)置過小,則致迭代次數(shù)過多,收斂過慢。為解決此問題,需要一種自適應(yīng)調(diào)整策略,令旋轉(zhuǎn)角隨每個個體與當(dāng)前最優(yōu)個體差異大小來變化。
文獻[5]提出使用公式(8)的策略來調(diào)整旋轉(zhuǎn)角,公式如下:
式中,fmax和fmin分別代表當(dāng)前種群里面?zhèn)€體的最大適應(yīng)度值和最小適應(yīng)度值,f代表的是當(dāng)前個體適應(yīng)度值。
由公式(8)可知,若當(dāng)前個體的適應(yīng)度值比較小,且與最優(yōu)個體的適應(yīng)度值相差較大時使用較大旋轉(zhuǎn)角,相反則用較小旋轉(zhuǎn)角。且無論f是哪種情況,δ的取值都在δmax與δmin之間來取值。
由于影響離子膜效率的因素有很多,如果這些因素全部輸入到控制模型之中,這樣不僅會使計算結(jié)構(gòu)變的復(fù)雜,并且會拖慢運算速度,降低運算精度,使控制系統(tǒng)的泛化能力不足,達不到預(yù)期的可行性。在氯堿電解過程中,很多影響因素都具有耦合性,并且有些影響因素對于生產(chǎn)過程的影響相對來說較小。所以,建立控制模型之前,需要簡化影響因素的輸入,使模型較為清晰,增加實現(xiàn)程度。
本文采用的是核主元素分析法(Kernel Principal Component Analysis,KPCA)簡化數(shù)據(jù)屬性。核主元素分析法就是利用“核技巧”將線性的主成分分析法(Principal Component Analysis,PCA)進行拓展,成為非線性的PCA,對于傳統(tǒng)PCA來說,KPCA具有主成分特征更加明顯,參數(shù)維數(shù)較少,貢獻率更加集中等優(yōu)點,是一種處理非線性指標(biāo)的理想分析方法。
現(xiàn)場采集生產(chǎn)數(shù)據(jù)后,根據(jù)基本原理,計算KPCA的“累計貢獻率”的過程如下。
(1)將n個指標(biāo)(每個指標(biāo)有m個樣品)數(shù)據(jù)寫成(m×n)維的矩陣:
(2)計算核矩陣K;
(3)修正核矩陣得到KL;
(4)使用Jacobi迭代方法來計算KL的特征值λ1,…,λn即對應(yīng)的特征向量 v1,v2,…,vn;
通過施密特正交化方法,單位正交化特征向量,得到 α1,α2,…,αn;
計算特征值的累積貢獻率 B1,B2,…,Bn,根據(jù)給定的提取效率p,如果Bt≥p,則提取t個主分量α1,α2,…,αt。
所以,根據(jù)核主元素分析法,在槽溫、電流密度、電壓、NaOH濃度、淡鹽水濃度這5個變量中,選擇出3個主元作為模型的輸入。分析結(jié)果見表2。
核主元素分析法的原則是要求每個元素的累計貢獻率達到85%以上即可,由表2可知,只要選擇前兩個元素就能夠滿足,但是在分別仿真2個主元、3個主元、4個主元、5個主元作為輸入時仿真得到的預(yù)測誤差百分比,見表3。
表2 核主元素分析法分析結(jié)果
表3 膜效率預(yù)測誤差
由表3可知,用2個主元輸入模型到用3個主元輸入模型時,膜效率誤差有明顯下降。以3個主元、4個主元、5個主元來輸入模型時,膜效率的誤差雖然降低,但是誤差變化不大。所以,為了既保證原有樣本的基本信息,又能簡化神經(jīng)網(wǎng)絡(luò)的輸入模型,需要選擇前5個主元作為輸入模型,分別是槽溫(x0)、NaOH 濃度(x1)和淡鹽水濃度(x2)。
本文采用改進的多種群量子遺傳優(yōu)化BP神經(jīng)網(wǎng)絡(luò)算法建立氯堿電解槽膜效率軟測量模型。數(shù)據(jù)來自于某化工企業(yè)的生產(chǎn)過程記錄值。
經(jīng)過預(yù)先的數(shù)據(jù)處理后得到756組樣本數(shù)據(jù),然后隨機采取656組數(shù)據(jù)作為其中的訓(xùn)練樣本數(shù)據(jù),其中的100組數(shù)據(jù)作為測試數(shù)據(jù)。此時可以利用這些數(shù)據(jù)在matlab平臺上進行仿真,設(shè)置3-7-1的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),把x0,x1,x2這3組數(shù)據(jù)作為輸入數(shù)據(jù),y作為輸出數(shù)據(jù)來進行神經(jīng)網(wǎng)絡(luò)的訓(xùn)練。
圖3 氯堿電解膜效率輸出曲線圖
圖4 氯堿電解膜效率預(yù)測誤差百分比曲線圖
學(xué)習(xí)速率是0.01,設(shè)定誤差為0.000 1,迭代次數(shù)是500。父種群的規(guī)模是200,子種群的個數(shù)是5,個體的量子編碼和二進制編碼長度是20,最優(yōu)的個體保持的代數(shù)為10的時候終止算法。令期望輸出和實際輸出間的均方誤差的倒數(shù)作為適應(yīng)度的函數(shù)值,即1/MSE(y-y′)。氯堿電解的膜效率和誤差百分比的仿真結(jié)果分別見圖3和圖4。
圖3和圖4的仿真結(jié)果表明,基于BP神經(jīng)網(wǎng)絡(luò)遺傳算法對氯堿電解過程中的膜效率進行優(yōu)化,能將膜效率很好的預(yù)測出。
得到離子膜效率的軟測量模型之后,即可對離子膜的效率進行優(yōu)化,優(yōu)化的目的是計算出在給定的生產(chǎn)負荷下,最佳的電解槽溫度、堿液濃度和淡鹽水的濃度,并將其作為設(shè)定值輸入到控制系統(tǒng),從而來提高離子膜的生產(chǎn)效率。
因為得到的軟測量模型中的變量較少,所以本文選用復(fù)合形法來進行離子膜效率的尋優(yōu)。
從預(yù)測模型中得到的離子膜效率的目標(biāo)函數(shù)是
式中,x0,x1,x2為自變量分別代表的是槽溫、堿液濃度和淡鹽水濃度。在實際問題中要求的是極大值,令J=-η=-f(x0,x1,x2),J極小值的絕對值就是η的極大值。用復(fù)合形法求目標(biāo)函數(shù)J極小值的過程如下。
(1)復(fù)合形一共有2 n個頂點,本文中n為3,假設(shè)給定的初始復(fù)合形中第一個頂點坐標(biāo)(x00,x10,x20),并且此頂點坐標(biāo)應(yīng)滿足相應(yīng)的約束條件;
(2)在三維空間變量之中,再確定初始復(fù)合形其余的5個頂點。
利用偽隨機數(shù)按照約束的條件來產(chǎn)生第j個頂點,X(j)=(x0j,x1j,x2j),j=1,2,…,5,其中各個分量xij(i=0,1,2)為:式中:r為0~1之間的偽隨機數(shù);ai和bi是變量xij的常量約束條件,即 ai≤xij≤bi。
(3)確定好復(fù)合形2n=6個頂點后,計算每個頂點的目標(biāo)函數(shù)值
(4)確定最壞點XR與次壞點XG
(5)計算最壞點XR的對稱點
(6)確定新頂點替代最壞點XR構(gòu)成新的復(fù)合形,方法如下:
若f(XT)>f(G),則用下式修改XT:XT=(XF+XT)/2,直到f(XT)≤f(G)為止,若重復(fù)M次未找到XT使f(XT)≤f(G),則直接跳出來重新選擇初始的復(fù)合形頂點計算,若連續(xù)N次直接跳出都未能尋出結(jié)果,則選取N次之中最好的結(jié)果作為最優(yōu)解輸出[6];
然后檢查XT是否滿足所有的約束條件,如果對于某個分量XiT不能夠滿足常量的約束條件,即如果 XiT<ai或者 XiT>bi,則令 XiT=ai+δ或者 XiT=bi-δ。其中δ是一個很小的正數(shù),一般取δ=1×10-6。然后重復(fù)(6)。
此時令XR=XG,f(R)=f(XT),重復(fù)(4)~(6),直到各頂點的距離小于設(shè)定的精度為止,即可獲得目標(biāo)函數(shù)的最優(yōu)值。
離子膜效率優(yōu)化的結(jié)果見表4。
表4 最優(yōu)膜效率及試驗條件仿真結(jié)果
表4的仿真結(jié)果表明,此種方法得到的最優(yōu)膜效率93.96%,和其對對應(yīng)的生產(chǎn)條件。所以,此種方法能夠達到預(yù)期目標(biāo),并能夠應(yīng)用于實際生產(chǎn)之中。
本文從某化工廠采集的756組樣本數(shù)據(jù)的離子膜平均效率為92.85%。所以由此可知,此種方法能夠?qū)⒙葔A電解槽的離子膜效率提升0.5%左右,可以為氯堿生產(chǎn)帶來可觀的經(jīng)濟效益。
本文以氯堿電解槽生產(chǎn)過程為背景,提出利用改進的多種群量子遺傳優(yōu)化BP神經(jīng)網(wǎng)絡(luò)建立離子膜效率的軟測量,然后用遺傳算法對離子膜的電解效率進行優(yōu)化。此次利用神經(jīng)網(wǎng)絡(luò)遺傳算法計算出的膜效率為93.36%,在優(yōu)化之前,電解設(shè)備的膜效率僅為92.85%。通過此次優(yōu)化,膜效率能夠提升0.5%左右,帶來的經(jīng)濟效益約為200萬元/a,從而為氯堿生產(chǎn)過程提供了優(yōu)化操作指導(dǎo),可以成為其節(jié)能減排的一種方法[7]。