冯 剑,葛秀涛,薛连海,郑建东,任兰正,冯建华
(滁州学院 化学与生命科学系,安徽 滁州239012)
VBA在化工热力学多媒体教学中的应用
冯 剑,葛秀涛,薛连海,郑建东,任兰正,冯建华
(滁州学院 化学与生命科学系,安徽 滁州239012)
本文通过状态方程求解和汽液相平衡计算两个典型实例,介绍了在化工热力学课程的多媒体教学过程中,使用PowerPoint的Visual Basic for Application(VBA)技术来演示利用化工热力学解决实际问题的计算方法。VBA的应用不仅有助于提高学生的知识应用能力,还有助于提高学生学习化工热力学的兴趣。
VBA;化工热力学;多媒体教学
化工热力学是化学工程学科的一个重要分支,也是化学工程与化学工艺等专业学生必修的专业基础课。化工热力学具有很强的应用性,它广泛应用于化工分离、萃取、结晶等过程中的物质组成计算和能量分析等。可以说没有化工热力学就没有现代的化学工程[1]。现代化工热力学已经从传统的石油化工扩展到精细化工、环境工程、生命和生物工程、应用纳米技术、材料科学等多个方面。化工热力学是在热力学普遍化原理基础上,借助面向实际体系的状态方程或活度系数模型,完成对该体系所有的热力学计算。因此它既具有较强的理论性,也有广泛的应用性。在理论方面,它是物理化学中热力学方法在化工领域的拓展和深化。它不仅引入了有效能、理想功等新概念,还着重介绍了均相和非均相混合体系的热力学性质计算方法。从应用方面来讲,化工热力学不仅涉及到很多具体的经验或半经验半理论公式,还涉及到蒸汽动力循环和制冷等过程的能量分析,以及不同物系的相平衡计算等。
由于化工热力学自身特点,给教学工作带来很大的挑战。表面上,化工热力学的理论大部分都是以数学公式表达,似乎并不适宜使用多媒体教学。但化工热力学更关注于热力学在化工中的应用过程。化工热力学课程中涉及到的大量经验公式、相图、多种过程的能量分析,以及相平衡计算流程等。也就是说化工热力学充满复杂的公式和图表,而这部分知识则最适宜使用多媒体教学。通过图文并茂的页面,对过程的动画演示等不仅提高学生的学习兴趣,也提高学生的理解能力。事实上也降低了这些内容的授课难度,提高了授课效率。利用计算机计算技术来处理化工热力学中的各类计算,近年来也得到较大关注。为了提高学生应用化工热力学的能力,目前一些化工热力学课程[2]或辅导材料[3]就提供了计算程序或源代码。也有一些工作介绍了 Matlab[4]或 Mathematica[5]等数值计算软件在化工热力学教学和数据处理中的应用。对于这部分提高学生化工热力学数值计算能力的教学内容,不使用多媒体技术是不可能完成的。
化工热力学计算程序规模一般都不大,编制也不复杂,虽然有使用Aspen或Material Studio中的Equlibria模块进行相平衡计算,但大多数科研或应用工作都是自己编制相应的计算机程序。有使用通用的Fortran、C或C++等语言的,也有使用Matlab等数值计算软件。这些语言的编译器或数值软件的规模都较大,不适宜在化工热力学教学中使用。另外,在使用这些软件时会造成当前教学过程的中断。目前的多媒体教学课件一般都使用微软Office软件中的Powerpoint(PPT)来完成。自1994年开始,微软就在Office软件中增加了Visual Basic for Applications(VBA)宏语言来提高Office软件的自动化程度[6]。VBA语法比较简单,可以看作是为Office专门修改的Visual Basic(VB)语言的子集。在PPT课件中就可以直接使用VBA技术实现化工热力学的数值计算过程。使用VBA技术不需要安装额外的软件,可以实现在不中断当前的教学内容来完成,避免了教学过程的中断。为了不至于将化工热力学课程演变成一个数值算法课,相反降低了学生的学习热情。在介绍计算机处理方法时,一般选择化工热力学教材中的典型例题,将求解过程转变为计算机程序,进而求解出结果。在此基础上,逐步深化计算内容,形成一个功能完善的数值计算程序。进而提高了学生应用知识的能力。在实际教学过程中取得了较好的反响。本文选取马沛生等编著的《化工热力学》(通用型)第二版教材[1](以下简称为教材)中的两个例题来介绍VBA在化工热力学教学中的应用问题。本文的介绍的PPT环境为Office 2003。
在教材第11页的例2-2是使用RK方程计算给定温度和压力下的异丙醇蒸汽的摩尔体积。该计算需要利用教材第9页中的(2-17)迭代式。为了计算方便,例题中使用一个比较接近实际解的初值,按照迭代式经过一次迭代就得到满足要求的解。按照例题计算步骤很容易将该题转变为VBA程序。首先在PPT课件页面中增加用于温度和压力输入以及计算结果输出的三个文本框,以及一个执行程序的命令按钮。方法是点击PPT菜单“视图”-“工具栏”-“控件工具箱”,弹出控件窗口。依次点击文本框三次和命令按钮一次在PPT页面绘制三个文本框和一个命令按钮。三个文本框的默认名分别是TextBox1、TextBox2和TextBox3,命令按钮的名称为CommandButton1。这些名称可以修改,本文使用这些默认名。右键点击命令按钮,弹出右键菜单。在右键菜单中点击“属性”项,弹出属性编辑器,利用该属性编辑器可以修改该控件的各种属性。如修改属性编辑器中的Caption项,输入“执行”。如果只是修改命令按钮的标题,可以点击命令按钮右键菜单的“命令按钮对象”-“编辑”直接修改。设置好后可以双击命令按钮打开宏编辑器,光标定位在命令按钮单击事件的CommandButton1_Click过程中,输入相关代码即可。图1给出了相应的PPT显示页面。为了让学生了解该过程的迭代算法,在PPT页面中贴出了CommandButton1_Click事件中的VBA代码。注意,由于PPT课件含有求解RK状态方程的宏程序,在使用前需要对PPT的宏安全性进行设置,在PPT菜单“工具”-“宏”-“安全性…”对话框中设置安全级为“中”,这样在打开PPT课件时出现的安全警告对话框中点击“启用宏”即可。利用立方型RK方程求解摩尔体积时,在体系温度低于临界温度时最多有三个实根,最小的对应于液相摩尔体积,最大的对应于汽相摩尔体积,介于最小和最大值间的中间根舍去。迭代算法只能求出一个根,作为课后练习,可以让学生查阅相关文献寻找出可以同时解出三个实数根的方法。
图1 RK方程求解PPT演示页面
相平衡计算是化工热力学的重要应用。涉及液相的相平衡计算主要有活度系数法和状态方程法。教材第166页的例6-4是利用活度系数法计算一个大气压下甲醇摩尔分数为0.4的水溶液的泡点温度和汽相组成。该例题中,液相的活度系数使用Wilson方程计算,纯物质的饱和蒸气压使用Antoine方程计算。由于该实例是求解低压下的汽液平衡计算,汽相组元的逸度系数近似等于1。因此在利用教材第163页图6-9流程中不需要计算汽相组元的逸度系数,使得整个计算流程变得相当简单。利用计算所得的汽相中各组元的摩尔分数和是否与1在一定容许范围内作为判断条件,来执行循环过程。
图2 泡点温度和组成计算
本实例要比前面的RK方程求解过程复杂。前面例子中将程序代码放置在幻灯片(Slide)模块中,本例采用更为一般的方法,即将程序源代码放入普通的模块中。点击PPT菜单“工具”-“宏”-“宏…”,在弹出的宏对话框中键入宏名BUBLT,点击“编辑”按钮,光标定位在“模块1”中的BUBT过程中,在其中输入相应代码。由于该相平衡计算的代码量较大,为了方便采用模块化编程。除BUBLT过程外,还增加了Antonie函数计算纯组分的饱和蒸气压,MolV函数计算纯液体的摩尔体积,LBD函数来计算Wilson方程参数,以及通过Wilson方程计算液体混合物的活度系数的AC_Wilson函数。循环过程的判断条件是汽相组元摩尔分数是否归一化,否则则调节系统温度重新计算。教材中调节温度步长为0.1K,由于采用了很接近目标解的初值,所以经过一步迭代就获得了体系的解。实际的计算程序中温度变化初始值可以由用户自行设定,在目标值附近按照固定温度变化调节温度时容易出现震荡,而无法得到目标解。该部分代码的关键是当前后两次迭代的汽相组元摩尔体积和在1附近出现震荡时则需要将温度变化减半。下面的代码演示了这种技巧,其中sumy为汽相组元总摩尔分数和,flag变量判断前后震荡情况,T和dT分别为体系温度和温度调节值。
程序中调用InputBox函数来接受用户输入,结果输出调用MsgBox函数。所有程序编制好后,按照前面的方法在PPT课件中增加“执行程序”按钮,双击该按钮,在该按钮单击事件中添加Call BUBLT语句来调用BUBLT过程,执行相平衡计算。
在普通模块中获取幻灯片(Slide1)中的控件属性需要在控件对象名称前指定属于的幻灯片对象,如下面是将文本框1和文本框2中的输入值相加后赋值给文本框3的VBA语句a= Slide1.TextBox1.Text
也可以利用with语句来完成,如
在本例基础上,要求学生将该程序扩展到汽相组元的逸度系数变化的情形。汽相组元逸度系数计算采用第5章介绍的方法结合相应的状态方程来计算。这样就可以将该BUBLT程序扩展为完整的活度系数+状态方程法计算体系泡点温度和汽相组成的计算程序。
VBA是PPT内嵌的一个重要的脚本语言,本文通过RK状态方程求解和汽液相平衡的活度系数法计算两个实例简单介绍了化工热力学多媒体教学过程中,利用VBA技术解决化工热力学教材中的应用问题。化工热力学课件中合理使用VBA技术,可以在不中断教学过程情况下,不仅激发了学生的学习兴趣,更有助于学生应用化工热力学方法和计算机技术来解决实际问题的能力。
[1]马沛生,李永红.化工热力学(通用型)第二版[M].北京:化学工业出版社,2009,1-4.
[2]陈新志,蔡振云,胡望明,钱 超.化工热力学(第三版)[M].北京:化学工业出版社,2009.
[3]高光华,于养信.化工热力学-基本内容、习题详解和计算程序[M].北京:清华大学出版社,2000.
[4]李克娥,苏铁军.Matlab在处理化工热力学数据中的应用[J].重庆科技 学院学报(自然科学版),2005,7(3):100-102.
[5]罗明检,张海燕.Mathematica软件在化工热力学教学中的应用[J].化工高等教育,2009,(109):73-77.
[6]戴维斯.VBA从入门到精通(第二版)[M].杨 密,杨 乐,柯树森译.北京:电子工业出版社,2008.
Application of VBA to Multimedia Teaching of Chemical Engineering Thermodynamics
Feng Jian,Ge Xiutao,Xue Lianhai,Zhen Jiandong,Ren Lanzhen,Feng 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-),男,博士、副教授。研究方向:分子热力学,分子模拟。
滁州学院教研项目(2010jyz017);安徽省应用化学省级重点建设学科(200802187C)
2010-07-11