在进行热力循环分析、流动传热计算时,需获得水和水蒸汽的物性参数。网上主流的水蒸汽物性计算程序是上海成套所的杨宇教授开发的,有Fortran、C、C#、VB等多个语言版本,还有桌面版本,被本专业学生和研究人员广泛使用。可以说杨教授为同行的便利做了很大贡献,本想贴一下他的个人博客的,但发现他的博客链接挂了。
最近打算使用混合编程,写个Python版本的水蒸汽物性计算的接口程序,搞个在线查询的web,然而google后发现已经有了用于水和水蒸汽物性计算的Python模块——iapws,不得不安利给大家。其实工科领域用Python的不多,要是有人用的话希望别重复造轮子。
iapws官网:https://github.com/jjgomera/iapws/tree/master/docs
1、简介
iapws是IAPWS标准的Python实现,包含一下几个模块:
- IAPWS-IF97——水蒸汽
- IAPWS-95——水蒸汽
- IAPWS-06——冰
- IAPWS-08——海水
- IAPWS-17—— 重水
- ......
iapws依赖于numpy-scipy科学计算模块。本文主要介绍IAPWS-IF97模块的使用。IAPWS-IF97实现了5个区域的基本方程(下图)。可以看出压力、温度的范围是很宽的,足够满足工程需要。
2、使用
直接在控制台执行:pip install iapws,安装iapws时会自动安装numpy scipy这两个模块。
2.1 IAPWS97类
可以使用该IAPWS97类创建一个特定热力学状态的对象,该类的构造函数的关键字参数包括:
- T:温度[K]
- P:压力[MPa]
- h:比焓[kJ/kg]
- s:比熵[kJ/kgK]
- x:干度[-]
有效的参数组合有:
- T, P: 对两相无效
- P, h
- P, s
- h, s
- T, x: 仅适用于两相
- P, x: 仅适用于两相
计算的物性参数如下表所示。我将自己认为常用的参数列在前面了。许多参数不知道什么意思,翻译也不知道有没有问题。可参考:http://iapws.readthedocs.io/en/latest/iapws.iapws97.html
P:压力[MPa] | a:亥姆霍兹自由能[kJ / kg] | joule:焦耳 - 汤姆森系数[K / MPa] |
T:温度[K] | Z:压缩系数[ - ] | deltat:等温节流系数[kJ / kg·MPa] |
v:比容量[m³/ kg] | fi:逸度系数[ - ] | r |