用python计算ph_用于水和水蒸汽物性计算的Python模块——iapws
在进行热力循环分析、流动传热计算时,需获得水和水蒸汽的物性参数。网上主流的水蒸汽物性计算程序是上海成套所的杨宇教授开发的,有Fortran、C、C#、VB等多个语言版本,还有桌面版本,被本专业学生和研究人员广泛使用。可以说杨教授为同行的便利做了很大贡献,本想贴一下他的个人博客的,但发现他的博客链接挂了。
最近打算使用混合编程,写个Python版本的水蒸汽物性计算的接口程序,搞个在线查询的web,然而google后发现已经有了用于水和水蒸汽物性计算的Python模块——iapws,不得不安利给大家。其实工科领域用Python的不多,要是有人用的话希望别重复造轮子。
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:逸度系数[ - ]
region:地区
rho:密度[kg /m³]
f:逸度[MPa]
v0:理想比容[m³/ kg]
h:比焓[kJ / kg]
γ:等熵指数[ - ]
u0:理想的内能[kJ / kg]
u:特定内能[kJ / kg]
alfav:等压膨胀系数[1 / K]
h0:理想比焓[kJ / kg]
s:比熵[kJ / kg·K]
xkappa:等温压缩率[1 / MPa]
s0:理想比熵[kJ / kg·K]
cp:定压比热[kJ / kg·K]
kappas:绝热可压缩率[1 / MPa]
a0:理想亥姆霍兹自由能[kJ / kg]
cv:定容比热[kJ / kg·K]
alfap:相对压力系数[1 / K]
g0:理想比吉布斯自由能[kJ / kg]
g:比Gibbs自由能[kJ / kg]
betap:等温应力系数[kg /m³]
cp0:理想定压比热[kJ / kg·K]
n:折射率[ - ]
Pr:折算压力[ - ]
cv0:理想定容比热[kJ / kg·K]
Prandt:普朗特数[ - ]
Tr:折算温度[ - ]
Svap:蒸发熵[kJ / kg·K]
μ:动态粘度[Pa·s]
w0:理想音速[m / s]
gamma0:理想等熵指数[ - ]
nu:运动粘度[m²/ s]
k:导热系数[W / m·K]
epsilon:介电常数[ - ]
w:音速[m / s]
alfa:热扩散系数[m²/ s]
Hvap:汽化热[kJ / kg]
sigma:表面张力[N / m]
查看源码发现,使用IAPWS97类进行物性查询时,先执行calculable方法判断输入条件是否可计算,若可以计算则执行calculo方法,判断输入参数确定的物性状态所处的区域,随后计算各物性。下面是示例:
>>> from iapws importIAPWS97#>>>> 常压常温水 <<<<
>>> water=IAPWS97(T=24+273.15,P=0.013)#焓值
>>>water.h100.66509664191254
#密度
>>>water.rho997.2595184928771
#>>>> 高压蒸汽 <<<<
>>> vapor = IAPWS97(P=15.5, x=1.0)#温度
>>>vapor.T617.9415516035506
#饱和汽焓
>>>vapor.h2596.2167214338015
#饱和水焓
>>> IAPWS97(P=15.5, x=0).h1629.8502994294881
当输入无效的参数组合时,实例会正常产生但不进行物性计算,实例的calculable方法返回空字符串;当输入有效的参数组合时,若可查询则calculable方法返回查询组合,若超出查询范围则抛出异常。
#>>>> 无效的输入 <<<<
>>> test1 = IAPWS97(h=2000.0, T=300.0)#未绑定属性h
>>>test1.h
Traceback (most recent call last):
File"", line 1, in AttributeError:'IAPWS97' object has no attribute 'h'
#calculable返回空字符串
>>>test1.calculable''
#>>>> 有效的输入 <<<<
>>> vapor = IAPWS97(P=15.5, x=1.0)#calculable返回输入的组合
>>>vapor.calculable'Px'
#>>>> 超出查询范围的输入 <<<<
>>> test2 = IAPWS97(P=100.0, T=45.0)
Traceback (most recent call last):
...
NotImplementedError: Incoming out of bound
IAPWS97类提供了丰富的物性计算,若仅是为了查询物性,直接使用该类就行了。但在瞬态计算或其他需要频繁计算物性的场合下,通过IAPWS97类计算物性是不够明智的。因为一般情况下仅仅需要输出一个物性参数就足够了,如根据压力、焓值计算温度,而IAPWS97类计算了许多我们不需要的参数,这会拖慢程序的运行效率。本来程序具有超实时的运行能力,由于物性查询方法的错误使用,程序可能变得巨慢。物性查询成为程序的性能瓶颈,这显然是不合理的。
iapws.iapws97模块提供了一系列的基本方程(fundamental equations)和向后方程(backward equation),用于特定场合下的物性计算。
2.2 基本方程
iapws.iapws97模块提供了如下基本方程,用于不同区域内的物性计算。形如_Regionr()的函数,根据输入的参数,确定区域r内的状态,返回一个字典;_TSat_P、_PSat_T这两个函数计算饱和线上的物性。
_Region1(T, P)
_Region2(T, P)
_Region3(rho, T)
_Region4(P, x)
_Region5(s)
_TSat_P(P)
_PSat_T(s)
_Region1和_Region2的输入均是T、P,那么在使用时要预先判断T、P所指示的区域:
from iapws importiapws97#>>>> 区域1计算示例 <<<
>>> iapws97._Bound_TP(300,3)1
#获得比容
>>> iapws97._Region1(300,3)['v']0.0010021516796866943
#获得比焓
>>> iapws97._Region1(300,3)['h']115.3312730214384
#>>>> 区域2计算示例 <<<
>>> iapws97._Bound_TP(700,3)2
#获得比容
>>> iapws97._Region1(300,3)['v']0.0010021516796866943
#获得比熵
>>> iapws97._Region1(300,3)['s']0.39229479240262427
饱和线上的物性计算:
#计算饱和温度
>>> iapws97._TSat_P(15.5)617.9415516035506
#计算饱和压力
>>> iapws97._PSat_T(100+273.15)0.10141797792131013
>>>
2.3 向后方程
向后方程指形如_Backwardr_x_yz的方程,其中r为物性区域,yz为输入参数,x为返回参数。
_Backward1_T_Ph
_Backward1_T_Ps
_Backward1_P_hs
_Backward2_T_Ph
...
需要注意,和基本方程一样,向后方程也不进行区域判断。当选择错误的函数时,将输出离奇的计算结果:
>>> from iapws importiapws97#错误的使用示例
>>> iapws97._Backward2_T_Ph(3,500)4.1313215739117547e+21
#错误的使用示例
>>> iapws97._Backward3_T_Ph(3,500)-1637746.3600011615
#判断区域
>>> iapws97._Bound_Ph(3,500)1
#正确的使用示例
>>> iapws97._Backward1_T_Ph(3,500)391.7985087624256
用python计算ph_用于水和水蒸汽物性计算的Python模块——iapws相关推荐
- python物性库能调用哪些物质_用于水和水蒸汽物性计算的Python模块——iapws
在进行热力循环分析.流动传热计算时,需获得水和水蒸汽的物性参数.网上主流的水蒸汽物性计算程序是上海成套所的杨宇教授开发的,有Fortran.C.C#.VB等多个语言版本,还有桌面版本,被本专业学生和研 ...
- 用matlab水和水蒸汽热力性质,新的水和水蒸汽热力性质国际标准IAPWS—IF97及计算软件...
0引言1967年国际公式化委员会通过IFC67水和水蒸汽热力性质计算公式后,该公式迅速得到了国际电力界的认可和广泛使用.在我国该公式已广泛用于汽轮机锅炉设计,电厂热力系统循环计算,性能试验等涉及到水和 ...
- python扩展库用于科学计算的有哪些_数据科学必备的十大 Python 库
Python 已成为当今使用最广泛的编程语言之一,尤其是在数据科学领域. Python 是一种高性能的语言,易于学习和调试,并且具有广泛的库支持.这些库都有自己独特的功能,一些专注于数据挖掘,一些专 ...
- python的输入函数是什么意思_在Python中,用于获取用户输入的函数是
在Python中,用于获取用户输入的函数是 Whichofthefollowingmodernfarmtoolsaredevelopedbasedonpushsickle?A:Reaper.B:Gra ...
- 在python中用于获取用户输入的是-在Python中,用于获取用户输入的函数是
在Python中,用于获取用户输入的函数是 Whichofthefollowingmodernfarmtoolsaredevelopedbasedonpushsickle?A:Reaper.B:Gra ...
- 用matlab水和水蒸汽热力性质,基于Matlab的水与蒸汽热力学性质查询软件设计
水与水蒸汽由于其干净环保.无燃爆性,能量大且价格低廉等优点被广泛应用于火力发电.核电.家庭供暖等领域,是化工行业一种重要的工质.所以水与蒸汽常被用于这些领域的生产与科研.准确.快速地获取水与蒸汽的热力 ...
- python三维数据转换成二维_Python科学计算全生态工具锦集
没关注? 伸出手指点这里 AI Python目前是与科学计算结合最好的一门编程语言,包括大数据分析.机器学习.人工智能.可视化,甚至是天文学.生物学(神经科学).量子力学等等都有强大的工具包支持 P ...
- python主要运用于-Python的8大主要应用领域,看看哪个是你的菜?
如今,Python已经成为一种再主流不过的编程语言了.它天生丽质,易于读写,非常实用,从而赢得广泛的群众基础,被誉为"宇宙最好的编程语言",被无数程序员热烈追捧.随着时代的发展越来 ...
- python主要运用于-Python八大主要应用领域,你都知道吗?
python八大主要应用领域,你都知道吗?Python作为一种功能强大且通用的编程语言而广受好评,它具有非常清晰的语法特点,适用于多种操作系统,目前在国际上非常流行,因此Python的应用领域也越来越 ...
- python主要运用于-python主要应用领域有哪些?看这一篇就够了
Python是一个工具而已,工具没有好坏,关键看工具被怎么用,这里就来总结下python主要应用领域有哪些? 甚至有人预言,Python会成为继C++和Java之后的第三个主流编程语言.那我们一起来看 ...
最新文章
- Java项目:前台+后台精品图书管理系统(java+SSM+jsp+mysql+maven)
- python flask表单语法_Flask框架如何使用表单
- CSS文本超出2行就隐藏并且显示省略号
- linux 跨物理 集群,linux学习之使用keepalived结合lvs搭建高可用负载均衡集群
- jQuery必知必熟基础知识
- FastText原理总结
- 百度大脑公开课!快速定制高精度计算机视觉模型
- aspen二元体系共沸组分_应用Aspen Plus分离共沸物
- Docker-安装Vim
- 蓝绿部署、滚动发布、灰度发布等方案对比总结
- mysql indexkey提取,MySQL元数据获取基础笔记day06
- 离散数学 习题篇 —— 集合相等与子集关系判断
- 新买的联想笔记本计算机选项,联想笔记本电脑进入BIOS界面,以选择将硬盘设置为首次启动的选项...
- RedHat7 安装 MySQL 5.7
- 测试手机芯片体质软件,高通cpu体质测试软件
- Java 将中文文件名称修改为拼音首字母、拼音全称(附GitHub)
- java后端应届生面试题,附答案解析
- 实验2014052801:动态网页中的动态思想
- pycharm ssh interpreter 搭建
- python手把手安装_小白手把手搭建python开发环境
热门文章
- Webmax简易入门操作手册(一)
- mpu6050惯性导航学习记录
- 大工《画法几何与机械制图》课程设计大作业离线作业
- FPGA原型验证、硬件加速器(emulater 模拟器)、和aws FPGA公有云区别
- 97、锐捷交换机常用配置命令汇总
- 计算机控制技术期中测试素材2020版
- 【python小练习】彩票系列-七乐彩
- 驱动精灵w8ndows xp sp2,爱普生Epson TM-T90打印机驱动官方正式版下载,适用于winxp,winvista,win7,win8,win10-驱动精灵...
- GHOST XP SP3 遐想网络 纯净驱动预览版 2.0
- MyFirefox v2.6.2 - 打造自己的 Firefox 便携版