美文网首页
Python 调用 CoolProp 计算介质的物性

Python 调用 CoolProp 计算介质的物性

作者: 洗洗睡吧i | 来源:发表于2019-01-28 19:18 被阅读0次

之前常用的物性计算软件是 Nist Refprop,在 Excel 中计算时调用起来非常好使。
但是计算方程组求解时 Excel 就不太好用了。。

发现了一个开源软件:CoolProp,它支持多种程序或语言的调用,接口比较好;
对 python 的支持也非常方便。

1. 安装 CoolProp

  • 直接使用 pip 安装:
pip install CoolProp
  • 或者安装开发版(稳定版偶尔有编译问题,导致安装失败):
# install the latest nightly release version
pip install -vvv --pre --trusted-host www.coolprop.dreamhosters.com --find-links http://www.coolprop.dreamhosters.com/binaries/Python/ -U --force-reinstall CoolProp

2. 基本使用

2.1 参数说明

参数 单位 说明 备注
P Pa Pressure 压力
T K Temp 温度
D kg/m^3 Mass density 密度
Q mol/mol Mass vapor quality 气体占比
H J/kg Enthalpy
  • 示例:
from CoolProp.HumidAirProp import HAPropsSI
from CoolProp.CoolProp import PropsSI

p = 101325
t = PropsSI('T', 'P', p, 'Q', 0, 'Water')
print('\n-------------CoolProp-------------')
print('- 在 {} Pa(abs) 时,水的饱和温度: {:.2f} K \n'.format(p, t))    # 373.12 K

2.2 直接定义一个类,方便调用

from CoolProp.CoolProp import PropsSI

class WaterProp(object):
    # 求特定压力下的物性
    def __init__(self, p=101325):
        self.T = PropsSI('T', 'P', p, 'Q', 0, 'Water')          # 饱和温度
        self.C = PropsSI('C', 'P', p, 'Q', 0, 'Water')          # 比热容
        self.D_l = PropsSI('D', 'P', p, 'Q', 0, 'Water')        # 液体密度
        self.D_v = PropsSI('D', 'P', p, 'Q', 1, 'Water')        # 蒸汽密度

        self.H_l = PropsSI('H', 'P', p, 'Q', 0, 'Water')
        self.H_v = PropsSI('H', 'P', p, 'Q', 1, 'Water')
        self.H = self.H_v - self.H_l                            # 汽化潜热
        self.L_l = PropsSI('L', 'P', p, 'Q', 0, 'Water')        # 导热系数
        self.I_l = PropsSI('I', 'P', p, 'Q', 0, 'Water')        # 表面张力

        self.U_l = PropsSI('V', 'P', p, 'Q', 0, 'Water')        # 动力粘度
        self.V_l = self.U_l / self.D_l                          # 运动粘度
        self.Prl = PropsSI('Prandtl', 'P', p, 'Q', 0, 'Water')  # 普朗特数

        self.print_prop()

    def print_prop(self):
        print('\n-------------CoolProp-------------')
        print('- {}: {:>10s}      {:<10}'.format('介质名称', 'Water',    '单位'))
        print('- {}: {:>10.2f}    {:<10}'.format('计算压力', p,          'Pa'))
        print('- {}: {:>10.2f}    {:<10}'.format('饱和温度', self.T,     'K'))
        print('- {}: {:>10.2f}    {:<10}'.format('液体密度', self.D_l,   'kg/m3'))
        print('- {}: {:>10.4f}    {:<10}'.format('蒸汽密度', self.D_v,   'kg/m3'))
        print('- {}: {:>10.2f}    {:<10}'.format('汽化潜热', self.H,     'J/kg'))
        print('- {}: {:>10.4f}    {:<10}'.format('导热系数', self.L_l,   'W/m.K'))
        print('- {}: {:>10.4e}    {:<10}'.format('运动粘度', self.V_l,   'm2/s'))
        print('- {}: {:>10.4f}    {:<10}'.format('普朗特数', self.Prl,   '-'))


WaterProp(p=101325)
'''
- 介质名称:      Water      单位
- 计算压力:  101325.00    Pa
- 饱和温度:     373.12    K
- 液体密度:     958.37    kg/m3
- 蒸汽密度:     0.5977    kg/m3
- 汽化潜热: 2256471.59    J/kg
- 导热系数:     0.6772    W/m.K
- 运动粘度: 2.9389e-07    m2/s
- 普朗特数:     1.7533    
'''

3. 湿空气计算

CoolProp 可以直接计算 湿空气的物性。

  • 参数说明:
参数 单位 说明 备注
P Pa Pressure 压力
T K Dry-Bulb Temp 干球温度
Twb K Wet-Bulb Temp 湿球温度
Tdp K Dew-Point Temp 露点温度
R Relative humidity 相对湿度
W kg/kga Humidity Ratio 含湿量
H J/kga Mixture Enthalpy 比焓
  • 示例:
from CoolProp.HumidAirProp import HAPropsSI

w = HAPropsSI('W', 'T', 273.15+25, 'P', 101325, 'R', 0.5)
t_dp = HAPropsSI('Tdp', 'T', 273.15+25, 'P', 101325, 'R', 0.5)
h = HAPropsSI('H', 'T', 273.15+25, 'P', 101325, 'R', 0.5)

print('\n-------------CoolProp-------------')
print('在 25℃ , 101325Pa 时,相对湿度为 50% 的湿空气, ')
print('- 含湿量为 {:>8.2%}  kg/kga'.format(w))               # 0.99%
print('- 露点为   {:>8.2f}  ℃'.format(t_dp-273.15))         # 13.87
print('- 比焓为   {:>8.2f}  kJ/kg'.format(h/1000))          # 50.42

更多用法见官网 : http://www.coolprop.org/coolprop/wrappers/Python/index.html#python

相关文章

网友评论

      本文标题:Python 调用 CoolProp 计算介质的物性

      本文链接:https://www.haomeiwen.com/subject/yxwajqtx.html