之前常用的物性计算软件是 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










网友评论