張政江
(浙江大學,浙江杭州,310027)
打漿過程是制漿造紙生產過程中極為重要的一環(huán)。造紙所用的漿料需要通過打漿的機械作用,使?jié){料獲得一些特定的性質,以滿足生產紙張的質量要求。由于未經打漿的原漿多種多樣,同時打漿過程中還存在許多擾動,這些因素都會影響成漿質量的穩(wěn)定性,因此有必要對打漿過程進行自動控制[1]。
目前國外廣泛用于打漿過程控制的機理假說是比邊緣負荷理論(Specific Edge Load Theory,簡稱SEL理論),這一假說是針對盤磨機打漿提出的。根據這一理論[2],通過控制比能量、比負荷就可以得到質量穩(wěn)定的成漿,因此為了實現打漿過程的控制就需要建立比能量、比負荷的動態(tài)模型。但比能量、比負荷與相關變量之間的定量關系還有待于進一步研究。
20世紀90年代發(fā)展起來的遺傳編程(Genetic Programming,簡寫為GP)[3-4]是一種自動編程技術。遺傳編程是一種與遺傳算法(Genetic Algorithm)很相似的進化算法,也是一種基于生物自然選擇與遺傳機理的隨機搜索算法,僅僅告訴計算機要做什么,而沒有明確告訴計算機如何逐步地去完成所要求的任務。自Koza提出遺傳編程以來,遺傳編程已經在許多領域得到應用,如用于一類化工過程靜態(tài)輸入輸出模型的建立[5]、動態(tài)模型的建立[6]等。其結果表明,遺傳編程具有自動選擇輸入變量、自動確定模型結構的特性,是一種新的建模方法。但遺傳編程存在進化速度慢,搜索效率低,進化到最優(yōu)解需要時間長等缺陷。
本研究包括兩部分內容:①在分析了遺傳編程進化速度慢的原因后,采用新的適應值調整方法,由此改善了進化速度;②進行基于遺傳編程的低濃打漿過程動態(tài)建模工作,利用遺傳編程具有自動選擇輸入變量、自動確定模型結構的特性,自動確定低濃打漿過程比能量、比負荷與各相關變量之間的定量關系。
遺傳編程是對個體的集合——群體進行遺傳操作。個體是一棵有根、有結點、帶標記、有序分支的樹,即用樹表示一個問題的可能解或一個表達式。遺傳編程的搜索空間是問題所有可能的函數和端點組合的集合。函數集可以由數學函數、條件算子或任意定義的特殊函數等組成。端點集可以由常數、傳感器的輸出、系統的狀態(tài)變量、系統的控制輸入等組成。
遺傳編程首先從函數集和端點集中隨機選擇元素組成初始群體,然后確定每個個體的適應值。適應值是反應個體與問題實際值之間的接近程度,通常是基于問題實際值與個體返回值之間的誤差計算的。確定了初始群體后,利用復制、交叉和變異操作從當前群體中產生新的群體。復制操作首先按基于適應值的某種選擇方法從當前群體中選擇1個個體,然后把它復制到下一代群體中。再按交叉率從當前群體中隨機選擇2個個體,通過交叉操作得到2個新的個體。交叉操作生成的子代個體不同于父代個體,但它們完全是根據父代個體的基因生成的。如果父代個體是問題的一個可能解,那么父代個體就會有與問題解有關的基因,由這些基因相結合而生成的子代個體就有可能更逼近于問題的最優(yōu)解。如此循環(huán),直至滿足準則或遺傳代數已達最大數,把當前代中最好的個體作為遺傳編程設計的最好結果。算法詳細介紹見文獻[5-8]。
遺傳編程存在遺傳進化速度慢,搜索效率低,進化到最優(yōu)解需要時間長的缺陷。傳統的遺傳編程是通過復制、交叉等操作生成新的下一代。由復制操作選擇適應值好的個體復制到交叉池中,再按交叉率隨即選擇個體進行交叉,產生新的一代,循環(huán)執(zhí)行這個過程,直至得到最優(yōu)解。從這個過程可以看出:①遺傳編程只是將適應值高的個體復制,也就是只著眼于當前代中好的個體,并沒有考慮個體的遺傳進化速度;②遺傳編程的目標是平均適應值的提高,隨著平均適應值的提高,最好的個體也就越接近問題的解。不難想象,增加對適應值較好的、進化速度快的個體的復制數,會有助于改善遺傳進化的收斂速度。文獻[9]根據群體的可進化性(Evolvability)概念對交叉或變異操作后產生的群體中適應值好于群體平均適應值的個體進行適應值激勵,以改善進化速度,提高遺傳算法的計算效率。而在遺傳編程中,由于交叉后的個體在計算過程動態(tài)響應時有可能產生溢出,為了維持群體的規(guī)模,在進化過程中需不斷用新產生的個體代替溢出的個體,而新個體的適應值往往是比較差的,這樣會使交叉后群體平均適應值降低。如果仍采用文獻[9]的對好于交叉后適應度平均值的個體進行適應值激勵,就有可能是對大多數個體進行適應值激勵,失去了進行適應值激勵的意義。因此,本研究采取如下方法:對好于復制后平均適應值的個體,根據其交叉前后適應值的變化量對適應值進行適當調整的方法。在交叉產生的群體中,考慮好于復制后群體平均適應值的個體O。假如個體O是由父代個體p1、p2交叉產生的,則個體O的調整后適應值計算為:
其中,f′(·)為調整后的適應值,f(·)為原適應值;如果個體O是從復制后群體中直接復制的,則f′(O)=f(O)。對于低于復制后群體平均適應值的個體O,f′(O)=f(O)。
本研究建模所用的低濃打漿工藝流程如圖1所示,為國內典型的φ450mm雙盤盤磨機打漿流程。流量為F0的清水和濃度為C1、流量為F1的原漿經漿泵混合后成為流量為F2、濃度為C2的漿進入盤磨機,在盤磨機中經打漿處理后成為成漿送入成漿池。文獻[10]根據SEL理論建立了該流程原漿流量、清水流量、盤磨機功率與比能量、比負荷之間的機理動態(tài)模型。
圖1 低濃打漿工藝流程圖
采用遺傳編程計算方法進行建模工作。根據打漿過程機理模型的響應,將所建模型的時域長度取為14。端點集選擇為4個輸入變量、1個輸出變量和一些任意取定的常數,即{u1(k),u1(k-1),…,u1(k-14),u2(k),u2(k-1),…,u2(k-14),u3(k),u3(k-1),…u3(k-14),u4(k),u4(k-1),…,u4(k-14),yi(k-1),…,yi(k-14),4.1,4.5,5.6,7.8};其中,u1表示清水流量,u2表示原漿流量,u3表示盤磨機功率,y1為比能量、y2為比負荷。為了檢驗遺傳編程是否具有選擇輸入變量的能力,加入了任意的變量u4。函數集取為{+,-,×,pow2,sqrt}。群體規(guī)模設為50個個體,初始個體的結點數為33,進化過程中個體的最大結點數為35。適應值函數取為:
式中,RMS(O)為某個體在所有試驗點上返回值與模型參考值之間的均方根誤差。適應值越大,則均方根誤差越小,即個體越接近問題的最優(yōu)解。復制操作時采取競賽規(guī)模為2的聯賽選擇方法,將2個個體中適應值好的個體復制到下一代群體。交叉率為0.8,在進行交叉操作時除保留最佳個體,即最佳個體直接復制到下一代,最佳個體也參與交叉。遺傳計算停止條件為均方根誤差小于0.06,或進化代數大于600。
個體中含有一些常數結點,如果對這些常數進行優(yōu)化辨識,會有助于改善個體適應值。遺傳編程雖然也可以對這些常數進行辨識[3],但遺傳編程更善于結構辨識,因此有必要采用其他的系數辨識方法[7]。本研究采用單純形法對常數結點系數進行優(yōu)化。將某個個體的系數(設總數為M)作為一個頂點(M維),再隨機產生M個頂點,利用單純形法進行系數優(yōu)化計算,優(yōu)化目標是頂點在各個試驗點上的個體返回值與模型參考值之間的均方根誤差為最小。當各個頂點的均方根誤差與均方根誤差平均值的差值小于設定值,或優(yōu)化迭代次數已達最大值,則結束優(yōu)化迭代,將均方根誤差最小的頂點作為該個體的優(yōu)化系數。
考慮了適應值調整和系數優(yōu)化后,動態(tài)建模的遺傳編程計算步驟如下:
(1)從函數集、端點集中隨機選擇元素生成初始個體,遍歷個體計算出個體的適應值;
(2)依照聯賽選擇方法進行復制操作,并計算復制后群體的平均適應度;
(3)滿足遺傳停止條件,則轉至(8);
(4)如果最好的適應值連續(xù)6次不變,則加入隨機產生的新個體;
(5)根據交叉率進行交叉操作;
(6)個體常數結點優(yōu)化計算,個體適應值計算,如有個體產生溢出現象,則以隨機產生的新樹代替;
(7)根據第2部分的個體適應值調整方法計算個體的適應值,返回(2);
(8)將當前代中適應值最好的個體作為問題的解,并結束計算。
將隨機產生的100點u1、u2、u3和u4的動態(tài)序列組作為文獻[10]機理模型的輸入,將所得到的動態(tài)響應y1、y2和u1、u2、u3、u4序列作為本研究遺傳編程的訓練數據;并分別產生y1、y2對于單位階躍輸入的響應,作為遺傳編程所得模型的校正數據,以檢驗模型的精度。
經遺傳計算所得的低濃打漿過程動態(tài)模型為:
式中,y1的RMS誤差為0.0615,y2的RMS誤差為0.0631。
原漿流量階躍作用下的新建模型比能量、比負荷響應曲線如圖2、圖3所示;盤磨機功率階躍作用下的新建比能量、比負荷響應曲線如圖4、圖5所示。結果說明,基于遺傳編程所建立的模型較好地反映了打漿過程中比能量、比負荷的變化。
在上述模型的輸入項中沒有出現清水流量u1,這跟工藝過程分析的情況不同。從過程的動態(tài)數據中發(fā)現,當清水流量發(fā)生變化時,對比能量、比負荷的影響比較小。而遺傳編程在搜索解空間時是依據適應值函數進行的,當某個輸入變量對輸出變量的作用比較小時,在個體中有這個輸入變量與沒有這個輸入變量的適應值相差很小,則在進化過程中這個輸入變量就有可能被當作無關的變量而舍去,由此使上述模型中不含清水流量。另外,上述模型中也沒有出現u4,因為u4是任意加入的變量,與y1、y2并沒有關聯,故遺傳編程也沒有選擇u4。
圖6為采用文獻[9]的激勵方法和本文第2部分的計算方法對上述動態(tài)過程中y1建模的遺傳編程計算結果對比。圖中縱座標為個體的RMS(O),曲線所示為一代中最小的RMS(O)。因此,該均方根誤差越小,所得的個體越接近問題的最優(yōu)解。結果說明,本研究的計算方法有助于改善群體的收斂速度。
本研究的結果表明,所采用的改進算法有助于改善遺傳編程的收斂速度,所建立的低濃打漿過程動態(tài)模型較好地反映了比能量、比負荷的變化。因此,遺傳編程適合于建立變量相互關系不明的打漿過程的模型。同時也要注意到,如果某一個輸入變量對輸出變量的作用不大,則遺傳編程有可能無法對該變量做出正確的選擇。
圖6 遺傳編程計算結果比較
[1]陳蘇平,皮道映,孫優(yōu)賢.打漿過程控制的現狀和趨勢[J].中國造紙,1994,13(3):51.
[2]皮道映,孫優(yōu)賢.打漿過程機理模型的研究現狀與展望[J].中國造紙學報,1995,10:86.
[3]Koza J R.Genetic programming:on the programming of computers by means of natural selection[C].USA:TheM IT Press,1992.
[4]Koza J R.Genetic programmingⅡ:automatic discovery of reusable programs[C].USA:TheM IT Press,1994.
[5]McKay B,Willis M,Barton G.Steady-state modeling of chemical process systems using genetic programming[J].Computers chem.Engng.,1997,21(9):981.
[6]W illisM,Hiden H,HinchliffeM.et al.Systemsmodeling using genetic programming[J].Computers chem.Engng.,1997,21(Suppl):1161.
[7]Gray G J,Murray-Smith D J,Li Y,et al.Nonlinearmodel structural identification using genetic programming[J].Control Engineering Practice,1998,6:1341.
[8]劉 勇,康立山,陳毓屏.非數值并行算法——遺傳算法[M].北京:科學出版社,1998.
[9]林 丹,李敏強,寇紀淞.用適應值激勵機制提高遺傳算法的效率[J].控制與決策,2000,15(6):759.
[10]皮道映.多模型控制及應用研究[D].杭州:浙江大學,1995.