您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 能源与动力工程 > 用MATLAB语言进行化工过程最优化
CHEMISTRY(THECHINESECHEM.SOC.,TAIPEI)Sept.2001Vol.59,No.3,pp.347~351用MATLAB語言進行化工過程最優化陳宏剛太原理工大學一碳化學與化工國家重點實驗室摘要:本文利用MATLAB及其最優化工具箱,建立了用於化工過程最優化計算的圖形用戶介面,只需調用相應的函數就可以方便地進行實現各種類型化工過程的最優化。通過各種計算實例證明,該方法具有編程效率高,計算結果穩定可靠等優點,可廣泛用於化工過程最優化的教學和科研實踐中。關鍵字:化工過程,最優化,MATLAB。前言近年來,化工系統工程取得了長足的進步,其應用也日趨廣泛。最優化是化工系統工程的核心。現有的有關化工過程優化的書籍只介紹基本的方法、原理,有些附有簡單的Basic和Fortran根源程式。目前國內用於最優化的軟體更是匱乏,這無疑大大阻礙了廣大的化工科研、教學、開發、生產和管理工作者進行最優化的應用開發工作產。通常進行最優化計算時,程式往往需要用戶自己編寫,既需要對有關演算法有深刻的認識,又需要熟練掌握所用語言的語法規則和編程技巧,對用戶的要求過於苛刻。即使有一些標準副程式也需用戶編制主調用程式,具有(1)使用不方便、(2)調用過程繁瑣、(3)執行程式過多、(4)不利於資料傳遞、(5)矩陣和陣列維數指定困難、(6)繪圖功能差等缺陷,還常常造成數值不穩定,計算結果有誤。此外這種最原始的編程方式效率很低,程式的調試花費大量保貴的精力和時間。為此筆者嘗試用新一代互動式電腦語言--MATLAB及其工具箱進行化工過程的最優化,有效地克服了上述缺陷。A.Constantinides和N.Mostoufi1用MATLAB對常規的化學工程問題進行了計算,王政等2提出了開發基於MATLAB化工工具箱的構想和方案。但採用MATLAB用其最優化工具箱求解更為複雜的化工最優化問題,還未見文獻報導。化學教育348中華民國九十年第五十九卷第三期MATLAB簡介MATLAB是一種用於工程計算的高性能語言,高度集成了計算功能和資料視覺化的環境。它以矩陣為基本編程單元、以函數調用為顯著特徵,把編輯、編譯、連接及執行和調試有機地融合為一體。用MATLAB編程與人類進行科學計算的思路和表達方式完全一致,極大地降低了對使用者的數學基礎和電腦語言知識的要求,它提供了豐富強大的矩陣處理功能,簡單的幾條命令就可以完成成百上千條Fortran或Basic的任務。MATLAB語言的顯著特點1.編程效率高。2.使用方便,調試手段豐富。3.擴充能力強,可以方便地建立、擴充新的庫和調用Fortran或C語言的副程式。4.語句簡潔,使用靈活方便,庫函數非常豐富。5.具有強大的繪圖功能。6.程式的可攜性好。7.根源程式具有開放性。需要特別指出的是,MATLAB帶有最優化工具箱(OptimizationToolbox),它以函數的形式給出了當今成熟的最優化演算法,用戶可以方便地選擇調用。圖形介面設計採用MATLAB提供的圖形介面編輯工具(控制面板、屬形編輯器、事件過程編輯器、對齊工具和功能表編輯器),設計圖形介面就像在紙上繪製介面一樣,非常方便、直觀。首先在MATLAB的命令視窗中鍵入命令guide,啓動控制面板;按照設想,通過用滑鼠的選中和拖動在合適的位置處畫好五個按鈕,一個靜態文本框和一個可編輯文本框。然後再利用屬形編輯器將窗口的Name屬形修改為“OptimizationofChemicalProcesses”;將靜態文本框和五個按鈕的String屬形分別修改為:“命令及計算結果”、“單變數過程最優化”、“無約束多變數過程最優化”、“平方和形式的函數極小問題”、“線性規劃”和“帶約束非線性問題最優化”。最後設置五個按鈕的Callback屬形分別為對應的M-文件。按上述步驟建立的圖形介面,見圖一。只需點擊相應按鈕,就可以進行各種最優化計算,調用命令及計算結果顯示在左側的文本框中,圖一所示為單變數問題最優化的計算結果。中華民國九十年第五十九卷第三期349圖一化工最優化圖形介面化工最優化應用實例筆者在PC機上,利用MATLAB及OptimizationToolbox計算了化工中的許多最優化實例,覆蓋了單變數最優化、無約束多變數最優化、線性規劃、以及帶約束非線性最優化等類型,冷卻器最優設計設計一逆流換熱冷卻器,使其年度總費用最小,具體資料及符號說明見文獻[3]。該優化問題的數學模型為:1000wJAJJwA⋅⋅+⋅⋅=θβ其中JA,β,JW,θ為已知參數,A,W通過熱平衡方程和傳熱速率方程由冷物流出口溫度t2決定。因無其他特殊限制,不需建立其他約束方程,屬單變數問題最優化。初始區間可由物理意義確定為[0,140],將目標函數單獨寫為一函數文件,調用MATLAB中的fmin函數,格式為:[x,options]=fmin('目標函數',0,140,options)可很快得出最優解=92.49℃,計算時間為0.06秒,參見圖一。連續攪拌槽式反應器(CSTR)的最優設計圖二反應器-分離器流程示意圖對於如圖二所示的CSTR反應器,文獻[3]建立了不考慮未反應物料和考慮未反應物料利用二種情形下的最優化模型,可視為無約束多變數優化問題,目標函數產物BFA0CA0反應器分離器原料AFA1FB迴圈物流(未反應原料A)熱裂解爐燃料油甲烷燃料丙烯丁二烯汽油丙烷乙烷DNG粗柴油乙烯2t350中華民國九十年第五十九卷第三期分別為:2.12.106.004.101)1(4.00.4AABAAxCFFCJ−+=15.05.0012)1(1.0AAAFxCJJ−+=FA0,CA0分別為新鮮進料量及濃度,FA1為反應器的總進料量。決策變數為CA0和XA,依其物理意義取初值為x0=[0.5,0.5]。調用命令:[x,options]=fmins('目標函數',x0)計算結果分別為(1)CA0=0.2383,XA=0.7143(2)CA0=0.2302,XA=0.4221,運算時間均為0.11秒。以上二例是用MATLAB本身的雙重函數(funfun)中的fmin和fmins完成的。對於更複雜的帶有各種約束條件的優化問題,則需借助最優化工具箱中的函數。吉利蘭(Gilliland)圖的擬合化學化工中常遇到曲線擬合問題,這類問題可化為平方和形式的函數極小問題,可以利用最優化工具箱中的最小二乘(leastsq)函數解決。Leastsq函數採用Leveberg-Marquart(缺省)和Gauss-Newton演算法。調用格式為:[x,options]=leastsq('目標函數',x0)得到吉利蘭關係式為:5720.0minmin)1(7423.07433.02+−−=+−RRRNNN計算時間為:0.16秒圖三熱裂解爐熱裂解爐的優化線性規劃是較為成熟的最優化演算法,在規劃、排產和資源最佳利用等方面應用廣泛。其一般形式為:minJ=cTxs.t.Ax≤b,x≥0對於圖三所示的熱裂解爐,文獻[4]建立了線性規劃模型,含有7個決策變數,3個等式約束和3個不等式約束。調用lp函數的格式為:[x,options]=lp(c,A,b,vlb,[],[],3)其中,c為價值係數向量,A為係數矩陣,b為線性約束右端向量,vlb代表決策變數的下限,第一個[]表示無上限限制,第二個[]表示不需要初值,3表示有3個等式約束。計算時間為:0.16秒烷基化工藝的優化在實際的工程實踐中遇到的往往是帶約束的非線性最優化問題,可用constr函數求解。constr函數採用的是序貫二次規劃演算法。其調用格式為:[x,options]=constr('目標函數',x0,options,vlb,vub)其中,目標函數規定了目標函數及約束條件,x0為初值,由options決定等式約束的數目,vlb為決策變數的下限,vub為上限。對於文獻[4]中的烷基化工藝的最優化模型,含有10個決策變數,3個等式約束和8個不等式約束。計算時間為:2.03秒結論用MATLAB及其工具箱,可以方便地設計出用戶圖形介面,調用有關函數,有效地解決化工最優化問題。通過實例說明,採用MATLAB,具有編程效率高,計算結果穩定可靠等優點。推薦在化工最優化教學和科研中廣泛使用。參考文獻1ConstantinidesA.;Mostoufi,N.NumericalMethodsforChemicalEngineerswithMATLABApplications,NewJersey:PrenticeHallPTR,1999.2王政;趙義;金思毅等,電腦與應用化學2000,17,382.3鄧正龍主編化工中的優化方法北京:化學工業出版社,1992,29.4Edgar,T.F.;Himmelblau,D.M.OptimizationofChemicalProcesses.McGraw-HillBookCompany,1988,534.中華民國九十年第五十九卷第三期3515魏壽彭過程系統優化技術北京:中國石化工業出版社,1995.(投稿日期:民國90年3月6日,接受日期:民國90年6月28日)352中華民國九十年第五十九卷第三期OptimizationofChemicalProcessesUsingMATLABHongGangChenStateKeyLaboratoryofC1ChemistryandTechnology,TaiyuanUniversityofTechnology,Taiyuan,030024AbstractUsingMATLABandoptimizationtoolbox,UGIcanbeeasilydesigned,andoptimizationofchemicalprocessescanbesolvedconvenientlybycallingthecorrespondingfunctions.Throughmanyexamples,itisdemonstratedthatprogrammingefficiencyisveryhigh,andresultsarestableandreliable.MATLABisrecommendedtobewidelyusedinchemicalprocessoptimization.Keywords:chemicalprocess,optimization,MATLAB.
本文标题:用MATLAB语言进行化工过程最优化
链接地址:https://www.777doc.com/doc-272236 .html