程雷相
(甘肅能源化工職業學院,甘肅 蘭州 730046)
MATALB是美國MathWorks公司開發的一種數學軟件,其用途是為科學和工程計算服務。MATALB擁有大量的函數集和命令集,主要功能包括數值分析、矩陣計算、科學數據可視化以及非線性動態系統的建模和仿真等,這些功能可用于科學研究、工程計算和設計以及進行有效數值計算的眾多科學領域。
化工企業中涉及的工程計算通常用到化工原理、化學反應工程、化工熱力學等知識,而這方面的計算非常復雜。因為以工程實際問題為背景的求解過程中,涉及的數值對象通常是數組,化工計算中用到的數學求解方法包括差值法、參數的擬合、常微分和偏微分的求解、線性方程和非線性方程的求解等一系列工程計算方法,計算量非常大,有些問題因缺乏計算條件,須反復計算幾次、甚至幾十次才能得到想要的結果。這給從業人員帶來的非常大的麻煩。然而我們利用MATLAB語言,可以輕松進行微分、積分、數學推導等工作,解決上述問題就會變得輕而易舉?;瘜W反應工程中的數學計算通常用于解決化工企業中涉及的實際生產問題。但是化學反應速率與溫度及濃度的關系是非線性的,求解過程中有很多復雜的工程計算方法,例如非線性方程(組)的計算、微分和偏微分方程(組)的計算、差值與曲線擬合、數值積分和圖形等。盡管市面上有很多用于解決上述問題的高級計算機語言(例如C語言、C++等),但相比于MATLAB軟件,這些高級計算機語言在編程與調試方法上非常煩雜。MATLAB軟件專門用于解決工程問題,它包含了600多個常用的內建函數,并且代碼公開,計算功能、圖形可視化功能和符號運算非常強大,既可以數值計算又可以編程,在解決化學工程中的數學計算問題方面,有明顯的優勢。
本文針對間歇反應釜中發生的多級平行-連串反應,采用MATLAB四-五階龍格-庫塔法函數ode45函數求解此類常微分方程組,得到各組分的濃度變化曲線或動態數據。由此我們可以看出MATLAB語言在解決化工中的數值計算問題上確有其獨特的優勢。
在間歇反應器中進行如下反應來制備產物F,A、B為反應物,C、D、M、N為副產物,A、B同時加入反應器。

已知:T=497.75K,t=0時,CA=CB=1Kmol/m,CC=CD=CF=CM=CN=0Kmol/m。
理想氣體常數(單位:KJ/kmol K)R=8.31434
指前因子(單位:1/s)k01=4.3602E12,k02=3.92334E10,k03=5.78052E10,k04=3.57860E7,k05=3.12765E7
活化能(單位:KJ/Kmol)Ea1=125770,Ea2=128903,Ea3=116632,Ea4=103421,E05=110216
求:1)求解各物質濃度隨反應時間t變化的動態數據;
2)求解產物F的收率、選擇性及反應物A的轉化率隨反應時間t變化的動態數據;
3)尋找CFmax對應的反應時間t-opt;
上述問題涉及間歇反應器中發生的多級平行一連串反應的最優化。具體反應如下:
分析上述反應我們得到其動力學方程:
由公式

對此我們只需要求解上述常微分方程組,問題就迎刃而解了。
該問題屬于非線性一階常微分方程組的非剛性初值問題,可選用MATLAB中的積分函數ode45進行積分求解。
圖1、圖2分別是間歇反應器中各物質的濃度隨時間變化和間歇反應器中F的濃度隨時間變化示意圖。

圖1 間歇反應器中各物質的濃度隨時間變化示意圖

圖2 間歇反應器中F的濃度隨時間變化示意圖
由圖可知:當時間t=142.8571,目標產物F有最大濃度,其CFmax=0.8701
對上述運算結果作如下分析:
目的產物F的濃度整體變化趨勢是隨反應時間的延長而增大的,但是隨反應時間的推移,增大到一定值時便開始緩慢減小,根據其參與的反應:C→E→F,開始時由于反應物C的濃度不斷增大,故其生成量不斷積累,但隨著C不斷消耗而濃度不斷減小,其生成量也減少,同時自己又作為反應物同D反應生成了F,故濃度又緩慢減小了。
由圖可知,各物質濃度隨時間推移的變化趨勢:
A(B):隨反應時間的推移呈指數形式減?。?/p>
C:隨反應時間的推移先增大,達到極值后緩慢減?。?/p>
D:隨反應時間的推移先增大,到一定值時緩慢減小,但趨勢沒有C明顯;
E:隨反應時間的推移先增大,到一定值時緩慢減小,同D有相似處;
F:隨反應時間的推移緩慢增大,同A、B相反。
具體分析如下:
A、B為反應物,隨反應的進行它們被消耗,其濃度必然減小。由于它們的初始濃度相等且反應速率也相等,因此變化趨勢一致。
C隨反應時間的推移先增大,達到極值后緩慢減小,圖線之所以有這樣一個拐點是因為它參與了一個連串反應:A+B→C→E,其主要特征是隨著反應的進行,中間產物濃度逐漸增大,達到極大值后又逐漸減少。本反應中,開始時A、B的濃度比較大,它是由A、B反應生成,其量不斷積累,隨著A、B量的不斷減小,其生成量也微乎其微,同時自己又作為反應物生成了E,故濃度又緩慢減小了。
D參與反應為:A+B→D→F,同C有相似處。由A、B分別生成C和D是一個平行反應,二者濃度多少的競爭取決于它們各自的活化能及反應速率常數的大小,根據它們的參數,顯然D沒有C的濃度大。開始時A、B的濃度比較大,D是由A、B反應生成,其量不斷積累,隨著A、B量的不斷減小,其生成量也減小,同時自己又作為反應物同E反應生成了F,故濃度又減小了。
E隨反應時間的推移先增大,到一定值時緩慢減小,參與反應:C→E→F,圖形同D相似。但作為目的產物,顯然其濃度遠遠大于D和其他反應中的物質。開始時反應物C的濃度不斷增大,其反應生成量也不斷積累,隨著C不斷消耗而濃度不斷減小,其生成量也減少,同時自己又作為反應物同D反應生成了F,故濃度又緩慢減小了。
F為最終副產物,隨反應的進行其濃度必然增大,但由于生成它的反應物D的濃度變化不大,因此其濃度隨反應時間的推移緩慢增大。
通過以上實例的計算與模擬不難發現,當一個實際化工過程的數學模型建立后,應用MATLAB數學軟件可以高效、便捷地解決反應中涉及的數學問題,尤其是在解非性方程(組)、微分方程和偏微分方程(組)、插值與曲線擬合、數值積分以及圖像處理等工程問題方面,其他軟件無法比擬,讓人從復雜的編程與調試中解脫出來,更注重化學反應工程本身所涉及的基本原理,是化學反應工程設計、分析、計算的好工具。