馮 劍,葛秀濤,薛連海,鄭建東,任蘭正,馮建華
(滁州學(xué)院 化學(xué)與生命科學(xué)系,安徽 滁州239012)
VBA在化工熱力學(xué)多媒體教學(xué)中的應(yīng)用
馮 劍,葛秀濤,薛連海,鄭建東,任蘭正,馮建華
(滁州學(xué)院 化學(xué)與生命科學(xué)系,安徽 滁州239012)
本文通過狀態(tài)方程求解和汽液相平衡計算兩個典型實(shí)例,介紹了在化工熱力學(xué)課程的多媒體教學(xué)過程中,使用PowerPoint的Visual Basic for Application(VBA)技術(shù)來演示利用化工熱力學(xué)解決實(shí)際問題的計算方法。VBA的應(yīng)用不僅有助于提高學(xué)生的知識應(yīng)用能力,還有助于提高學(xué)生學(xué)習(xí)化工熱力學(xué)的興趣。
VBA;化工熱力學(xué);多媒體教學(xué)
化工熱力學(xué)是化學(xué)工程學(xué)科的一個重要分支,也是化學(xué)工程與化學(xué)工藝等專業(yè)學(xué)生必修的專業(yè)基礎(chǔ)課?;崃W(xué)具有很強(qiáng)的應(yīng)用性,它廣泛應(yīng)用于化工分離、萃取、結(jié)晶等過程中的物質(zhì)組成計算和能量分析等??梢哉f沒有化工熱力學(xué)就沒有現(xiàn)代的化學(xué)工程[1]。現(xiàn)代化工熱力學(xué)已經(jīng)從傳統(tǒng)的石油化工擴(kuò)展到精細(xì)化工、環(huán)境工程、生命和生物工程、應(yīng)用納米技術(shù)、材料科學(xué)等多個方面。化工熱力學(xué)是在熱力學(xué)普遍化原理基礎(chǔ)上,借助面向?qū)嶋H體系的狀態(tài)方程或活度系數(shù)模型,完成對該體系所有的熱力學(xué)計算。因此它既具有較強(qiáng)的理論性,也有廣泛的應(yīng)用性。在理論方面,它是物理化學(xué)中熱力學(xué)方法在化工領(lǐng)域的拓展和深化。它不僅引入了有效能、理想功等新概念,還著重介紹了均相和非均相混合體系的熱力學(xué)性質(zhì)計算方法。從應(yīng)用方面來講,化工熱力學(xué)不僅涉及到很多具體的經(jīng)驗(yàn)或半經(jīng)驗(yàn)半理論公式,還涉及到蒸汽動力循環(huán)和制冷等過程的能量分析,以及不同物系的相平衡計算等。
由于化工熱力學(xué)自身特點(diǎn),給教學(xué)工作帶來很大的挑戰(zhàn)。表面上,化工熱力學(xué)的理論大部分都是以數(shù)學(xué)公式表達(dá),似乎并不適宜使用多媒體教學(xué)。但化工熱力學(xué)更關(guān)注于熱力學(xué)在化工中的應(yīng)用過程?;崃W(xué)課程中涉及到的大量經(jīng)驗(yàn)公式、相圖、多種過程的能量分析,以及相平衡計算流程等。也就是說化工熱力學(xué)充滿復(fù)雜的公式和圖表,而這部分知識則最適宜使用多媒體教學(xué)。通過圖文并茂的頁面,對過程的動畫演示等不僅提高學(xué)生的學(xué)習(xí)興趣,也提高學(xué)生的理解能力。事實(shí)上也降低了這些內(nèi)容的授課難度,提高了授課效率。利用計算機(jī)計算技術(shù)來處理化工熱力學(xué)中的各類計算,近年來也得到較大關(guān)注。為了提高學(xué)生應(yīng)用化工熱力學(xué)的能力,目前一些化工熱力學(xué)課程[2]或輔導(dǎo)材料[3]就提供了計算程序或源代碼。也有一些工作介紹了 Matlab[4]或 Mathematica[5]等數(shù)值計算軟件在化工熱力學(xué)教學(xué)和數(shù)據(jù)處理中的應(yīng)用。對于這部分提高學(xué)生化工熱力學(xué)數(shù)值計算能力的教學(xué)內(nèi)容,不使用多媒體技術(shù)是不可能完成的。
化工熱力學(xué)計算程序規(guī)模一般都不大,編制也不復(fù)雜,雖然有使用Aspen或Material Studio中的Equlibria模塊進(jìn)行相平衡計算,但大多數(shù)科研或應(yīng)用工作都是自己編制相應(yīng)的計算機(jī)程序。有使用通用的Fortran、C或C++等語言的,也有使用Matlab等數(shù)值計算軟件。這些語言的編譯器或數(shù)值軟件的規(guī)模都較大,不適宜在化工熱力學(xué)教學(xué)中使用。另外,在使用這些軟件時會造成當(dāng)前教學(xué)過程的中斷。目前的多媒體教學(xué)課件一般都使用微軟Office軟件中的Powerpoint(PPT)來完成。自1994年開始,微軟就在Office軟件中增加了Visual Basic for Applications(VBA)宏語言來提高Office軟件的自動化程度[6]。VBA語法比較簡單,可以看作是為Office專門修改的Visual Basic(VB)語言的子集。在PPT課件中就可以直接使用VBA技術(shù)實(shí)現(xiàn)化工熱力學(xué)的數(shù)值計算過程。使用VBA技術(shù)不需要安裝額外的軟件,可以實(shí)現(xiàn)在不中斷當(dāng)前的教學(xué)內(nèi)容來完成,避免了教學(xué)過程的中斷。為了不至于將化工熱力學(xué)課程演變成一個數(shù)值算法課,相反降低了學(xué)生的學(xué)習(xí)熱情。在介紹計算機(jī)處理方法時,一般選擇化工熱力學(xué)教材中的典型例題,將求解過程轉(zhuǎn)變?yōu)橛嬎銠C(jī)程序,進(jìn)而求解出結(jié)果。在此基礎(chǔ)上,逐步深化計算內(nèi)容,形成一個功能完善的數(shù)值計算程序。進(jìn)而提高了學(xué)生應(yīng)用知識的能力。在實(shí)際教學(xué)過程中取得了較好的反響。本文選取馬沛生等編著的《化工熱力學(xué)》(通用型)第二版教材[1](以下簡稱為教材)中的兩個例題來介紹VBA在化工熱力學(xué)教學(xué)中的應(yīng)用問題。本文的介紹的PPT環(huán)境為Office 2003。
在教材第11頁的例2-2是使用RK方程計算給定溫度和壓力下的異丙醇蒸汽的摩爾體積。該計算需要利用教材第9頁中的(2-17)迭代式。為了計算方便,例題中使用一個比較接近實(shí)際解的初值,按照迭代式經(jīng)過一次迭代就得到滿足要求的解。按照例題計算步驟很容易將該題轉(zhuǎn)變?yōu)閂BA程序。首先在PPT課件頁面中增加用于溫度和壓力輸入以及計算結(jié)果輸出的三個文本框,以及一個執(zhí)行程序的命令按鈕。方法是點(diǎn)擊PPT菜單“視圖”-“工具欄”-“控件工具箱”,彈出控件窗口。依次點(diǎn)擊文本框三次和命令按鈕一次在PPT頁面繪制三個文本框和一個命令按鈕。三個文本框的默認(rèn)名分別是TextBox1、TextBox2和TextBox3,命令按鈕的名稱為CommandButton1。這些名稱可以修改,本文使用這些默認(rèn)名。右鍵點(diǎn)擊命令按鈕,彈出右鍵菜單。在右鍵菜單中點(diǎn)擊“屬性”項(xiàng),彈出屬性編輯器,利用該屬性編輯器可以修改該控件的各種屬性。如修改屬性編輯器中的Caption項(xiàng),輸入“執(zhí)行”。如果只是修改命令按鈕的標(biāo)題,可以點(diǎn)擊命令按鈕右鍵菜單的“命令按鈕對象”-“編輯”直接修改。設(shè)置好后可以雙擊命令按鈕打開宏編輯器,光標(biāo)定位在命令按鈕單擊事件的CommandButton1_Click過程中,輸入相關(guān)代碼即可。圖1給出了相應(yīng)的PPT顯示頁面。為了讓學(xué)生了解該過程的迭代算法,在PPT頁面中貼出了CommandButton1_Click事件中的VBA代碼。注意,由于PPT課件含有求解RK狀態(tài)方程的宏程序,在使用前需要對PPT的宏安全性進(jìn)行設(shè)置,在PPT菜單“工具”-“宏”-“安全性…”對話框中設(shè)置安全級為“中”,這樣在打開PPT課件時出現(xiàn)的安全警告對話框中點(diǎn)擊“啟用宏”即可。利用立方型RK方程求解摩爾體積時,在體系溫度低于臨界溫度時最多有三個實(shí)根,最小的對應(yīng)于液相摩爾體積,最大的對應(yīng)于汽相摩爾體積,介于最小和最大值間的中間根舍去。迭代算法只能求出一個根,作為課后練習(xí),可以讓學(xué)生查閱相關(guān)文獻(xiàn)尋找出可以同時解出三個實(shí)數(shù)根的方法。
圖1 RK方程求解PPT演示頁面
相平衡計算是化工熱力學(xué)的重要應(yīng)用。涉及液相的相平衡計算主要有活度系數(shù)法和狀態(tài)方程法。教材第166頁的例6-4是利用活度系數(shù)法計算一個大氣壓下甲醇摩爾分?jǐn)?shù)為0.4的水溶液的泡點(diǎn)溫度和汽相組成。該例題中,液相的活度系數(shù)使用Wilson方程計算,純物質(zhì)的飽和蒸氣壓使用Antoine方程計算。由于該實(shí)例是求解低壓下的汽液平衡計算,汽相組元的逸度系數(shù)近似等于1。因此在利用教材第163頁圖6-9流程中不需要計算汽相組元的逸度系數(shù),使得整個計算流程變得相當(dāng)簡單。利用計算所得的汽相中各組元的摩爾分?jǐn)?shù)和是否與1在一定容許范圍內(nèi)作為判斷條件,來執(zhí)行循環(huán)過程。
圖2 泡點(diǎn)溫度和組成計算
本實(shí)例要比前面的RK方程求解過程復(fù)雜。前面例子中將程序代碼放置在幻燈片(Slide)模塊中,本例采用更為一般的方法,即將程序源代碼放入普通的模塊中。點(diǎn)擊PPT菜單“工具”-“宏”-“宏…”,在彈出的宏對話框中鍵入宏名BUBLT,點(diǎn)擊“編輯”按鈕,光標(biāo)定位在“模塊1”中的BUBT過程中,在其中輸入相應(yīng)代碼。由于該相平衡計算的代碼量較大,為了方便采用模塊化編程。除BUBLT過程外,還增加了Antonie函數(shù)計算純組分的飽和蒸氣壓,MolV函數(shù)計算純液體的摩爾體積,LBD函數(shù)來計算Wilson方程參數(shù),以及通過Wilson方程計算液體混合物的活度系數(shù)的AC_Wilson函數(shù)。循環(huán)過程的判斷條件是汽相組元摩爾分?jǐn)?shù)是否歸一化,否則則調(diào)節(jié)系統(tǒng)溫度重新計算。教材中調(diào)節(jié)溫度步長為0.1K,由于采用了很接近目標(biāo)解的初值,所以經(jīng)過一步迭代就獲得了體系的解。實(shí)際的計算程序中溫度變化初始值可以由用戶自行設(shè)定,在目標(biāo)值附近按照固定溫度變化調(diào)節(jié)溫度時容易出現(xiàn)震蕩,而無法得到目標(biāo)解。該部分代碼的關(guān)鍵是當(dāng)前后兩次迭代的汽相組元摩爾體積和在1附近出現(xiàn)震蕩時則需要將溫度變化減半。下面的代碼演示了這種技巧,其中sumy為汽相組元總摩爾分?jǐn)?shù)和,flag變量判斷前后震蕩情況,T和dT分別為體系溫度和溫度調(diào)節(jié)值。
程序中調(diào)用InputBox函數(shù)來接受用戶輸入,結(jié)果輸出調(diào)用MsgBox函數(shù)。所有程序編制好后,按照前面的方法在PPT課件中增加“執(zhí)行程序”按鈕,雙擊該按鈕,在該按鈕單擊事件中添加Call BUBLT語句來調(diào)用BUBLT過程,執(zhí)行相平衡計算。
在普通模塊中獲取幻燈片(Slide1)中的控件屬性需要在控件對象名稱前指定屬于的幻燈片對象,如下面是將文本框1和文本框2中的輸入值相加后賦值給文本框3的VBA語句a= Slide1.TextBox1.Text
也可以利用with語句來完成,如
在本例基礎(chǔ)上,要求學(xué)生將該程序擴(kuò)展到汽相組元的逸度系數(shù)變化的情形。汽相組元逸度系數(shù)計算采用第5章介紹的方法結(jié)合相應(yīng)的狀態(tài)方程來計算。這樣就可以將該BUBLT程序擴(kuò)展為完整的活度系數(shù)+狀態(tài)方程法計算體系泡點(diǎn)溫度和汽相組成的計算程序。
VBA是PPT內(nèi)嵌的一個重要的腳本語言,本文通過RK狀態(tài)方程求解和汽液相平衡的活度系數(shù)法計算兩個實(shí)例簡單介紹了化工熱力學(xué)多媒體教學(xué)過程中,利用VBA技術(shù)解決化工熱力學(xué)教材中的應(yīng)用問題?;崃W(xué)課件中合理使用VBA技術(shù),可以在不中斷教學(xué)過程情況下,不僅激發(fā)了學(xué)生的學(xué)習(xí)興趣,更有助于學(xué)生應(yīng)用化工熱力學(xué)方法和計算機(jī)技術(shù)來解決實(shí)際問題的能力。
[1]馬沛生,李永紅.化工熱力學(xué)(通用型)第二版[M].北京:化學(xué)工業(yè)出版社,2009,1-4.
[2]陳新志,蔡振云,胡望明,錢 超.化工熱力學(xué)(第三版)[M].北京:化學(xué)工業(yè)出版社,2009.
[3]高光華,于養(yǎng)信.化工熱力學(xué)-基本內(nèi)容、習(xí)題詳解和計算程序[M].北京:清華大學(xué)出版社,2000.
[4]李克娥,蘇鐵軍.Matlab在處理化工熱力學(xué)數(shù)據(jù)中的應(yīng)用[J].重慶科技 學(xué)院學(xué)報(自然科學(xué)版),2005,7(3):100-102.
[5]羅明檢,張海燕.Mathematica軟件在化工熱力學(xué)教學(xué)中的應(yīng)用[J].化工高等教育,2009,(109):73-77.
[6]戴維斯.VBA從入門到精通(第二版)[M].楊 密,楊 樂,柯樹森譯.北京:電子工業(yè)出版社,2008.
Application of VBA to Multimedia Teaching of Chemical Engineering Thermodynamics
Feng Jian,Ge Xiutao,Xue Lianhai,Zhen Jiandong,Ren Lanzhen,F(xiàn)eng Jianhua
(Department of Chemistry and Life Sciences,Chuzhou University,Chuzhou 239012,China)
Through two typical examples of root solving of equation of state and vapor-liquid equilibrium calculation in the multimedia teaching of chemical engineering thermodynamics,the technology of Visual Basic for Application(VBA)in PowerPoint is used to demonstrate the computational method to solve practical problems by chemical engineering thermodynamics.VBA helps not only to improve students'ability of knowledge application,but also to stimulate their interest in learning chemical engineering thermodynamics.
VBA;chemical engineering thermodynamics;multimedia teaching.
G642
:A
:1673-1794(2010)05-0075-03
馮 劍(1969-),男,博士、副教授。研究方向:分子熱力學(xué),分子模擬。
滁州學(xué)院教研項(xiàng)目(2010jyz017);安徽省應(yīng)用化學(xué)省級重點(diǎn)建設(shè)學(xué)科(200802187C)
2010-07-11