Matlab在化工热力学教学中的应用
2022-12-17覃燕婷韦积材农正东黄英虎
覃燕婷,韦积材,农正东,黄英虎,李 伟
(百色学院化学与环境工程学院,广西 百色 533000)
作为化工专业的必修基础课程,化工热力学对解决工程实际问题意义重大。然而本课程包含众多乏味的概念与公式,尤其还涉及大量烦琐的模型计算,学生在学习中望而生畏,这严重阻碍了化工专业人才的培养。而采用计算机辅助教学则可以激发学生学习的主动性,提升课堂的教学效果[1]。
作为一种编程语言,Matlab语言易于学习,编程效率高,内置函数库丰富,语法较为灵活,数据的可视化易于实现,因此广泛应用于各种工程计算与工科教学中[2-4]。本文采用普遍化压缩因子法,以计算纯组分于一定温度压力下的压缩因子、剩余焓和剩余熵为例,介绍Matlab在化工热力学中的应用。
1 纯组分压缩因子的计算
计算示例:某工程设计中需要乙烷在 3446 kPa和93.3℃下的体积数据。试以三参数普遍化压缩因子法进行核算,已查到的文献值为0.02527 m3/kg[5]。
1.1 计算原理
计算公式:
式中
式中 Z0,Z1均为 pr、Tr的函数,可由 pr、Tr查图获取,也可以查表获取。本文采用查表法,数据来自附录B-1[6]。在编程前需先建立一个名为“三参数对应态压缩因子表”的excel文件,其扩展名为xlsx。其sheet1中储存Z0与pr、Tr的关系数据,sheet2中储存Z1与pr、Tr的关系数据。
1.2 计算程序
在Matlab中创建一个名为Uni_Z.m的函数文件,编辑代码如下:
1.3 计算结果
运行该程序,命令提示窗口出现下述结果:
从运行结果可以看出,采用本程序计算的结果与文献值误差小于0.5%,可以用于课程教学中。
本程序也可用于一种纯物质于多状态下压缩因子的计算。计算时只需在命令提示窗口中给出相应的温度和压力向量即可,无需修改自定义的Uni_Z函数。当用于多种纯物质多状态的压缩因子计算时,只需在主程序中使用循环结构调用Uni_Z函数即可。
2 纯组分剩余焓及剩余熵的计算
计算示例:试计算丙烷于50℃、3MPa(State1)和100℃、6 MPa(State 2)下的剩余焓、剩余熵。
2.1 计算原理
计算公式:
2.2 计算程序
在Matlab中创建一个名为residue_UniZ.m的函数文件,编辑代码如下:
2.3 计算结果
执行代码后,命令提示窗口出现下述结果:
通过结果可以看出,本文所建立的residue_UniZ函数可以求解某种纯组分于不同状态下剩余焓与剩余熵。求解时需注意,温度与压力需为长度一致的列向量,运行程序所得到的剩余焓与剩余熵均是对应条件下的列向量。与Uni_Z函数类似,当将本函数用于多种纯组分的剩余性质计算时,需要在主程序中循环调用residue_UniZ函数。
3 逸度系数与逸度的计算
计算示例:分别采用普遍化逸度系数法和剩余性质法计算乙烷于273 K、5.0 MPa下的逸度和逸度系数。
3.1 计算原理
计算公式:
普遍化逸度系数法:
剩余性质法:
式中HR、SR可以由2.1的式(4)和式(5)分别计算。
3.2 计算程序
新建一个名为Uni_phi.m的函数文件,编辑代码如下:
3.3 计算结果
执行代码后,命令提示窗口出现下述结果:
通过计算结果可以看出,两种方法计算所得的逸度和逸度系数相近,本节所编辑的函数与程序代码可以用于课堂教学中。此外,本文所建立的两个函数(Uni_phi和residue_UniZ)还可以用于计算单一组分于多状态下的逸度和逸度系数。计算时只需在命令提示窗口中输入温度和压力的列向量即可。
4 结语
作为一门重要的应用型课程,在化工热力学的课堂教学中引入Matlab,不仅可以降低模型计算的难度,而且可以激发学生的学习兴趣与热情、培养学生工程计算能力。本文所编辑的函数可以被其他程序所调用以完成更加复杂的化工计算。