保姆级教程:CoolProp热物性计算库5分钟从零跑起来
2026/8/24 1:37:13 网站建设 项目流程

保姆级教程:CoolProp热物性计算库5分钟从零跑起来

【免费下载链接】CoolPropThermophysical properties for the masses项目地址: https://gitcode.com/gh_mirrors/co/CoolProp

做制冷仿真、换热器设计或热泵选型时,最磨人的往往不是数学模型本身,而是翻手册查物性——查表、插值、核对单位,一耗就是一下午。CoolProp 就是这样一款开源免费的热物性计算库:它能一次给出 120 多种纯流体和大量混合物的密度、焓、熵、声速等参数,功能对标商业软件 REFPROP,却完全开放。这篇保姆级教程不搞教科书式的平台罗列,直接给你最快的上手路径、一张看懂的分平台差异表,以及一份能自检的高频问题速查表,读完就能跑通第一个物性计算。

第一步:最快上手路径,一行命令装好

如果你只是用 Python 算物性,恭喜你,这是全流程最简单的一步。CoolProp 官方为 Windows、Linux、macOS 三大平台发布了预编译的 wheel 包,pip直接下载二进制核心,全程不触发本地编译:

pip install coolprop

要求 Python 3.9 或更高版本,依赖会自动带上 numpy,无需手动处理。装完立刻做一次冒烟测试,30 秒验证核心是否可用:

python -c "from CoolProp.CoolProp import PropsSI; print(PropsSI('T','P',101325,'Q',0,'Water'))"

如果输出约373.12,说明水在 1 个大气压下的饱和温度算出来了,安装成功。

为什么pip是默认捷径?因为 CoolProp 的核心是一个庞大的 C++ 状态方程库,自己编译可能要等十分钟以上,而预编译 wheel 把这一步省掉了。绝大多数用户到此就可以停手,下面的源码编译只面向特殊需求。

上图是 CoolProp 算出的温度-熵图,等压线、等熵过程、实际压缩过程一目了然——这正是库在过程热力学中的典型应用场景。

第二步:第一次算物性,读懂 PropsSI 的五个参数

Python 接口的高层入口只有一个函数:PropsSI。它把所有参数塞进一串很直观的调用里,先记住结构再谈细节:

from CoolProp.CoolProp import PropsSI # 算水在 1 atm 下的饱和温度 T_sat = PropsSI('T', 'P', 101325, 'Q', 0, 'Water')

从左到右六个位置的含义是:要算的输出量 → 第一组输入量 → 输入值 → 第二组输入量 → 输入值 → 流体名称。用表格对照更清楚:

参数位含义本示例取值其他常见取值
1想得到的输出量'T'(温度)'D'密度、'H'焓、'S'
2第一组输入量'P'(压力)'T''D''H'
3第一组输入的值101325(单位 Pa)按输入量对应的国际单位
4第二组输入量'Q'(干度)'T''P''D'
5第二组输入的值0(饱和液态)1表示饱和气态
6流体名称'Water''R134a''Ammonia''CO2'

为什么示例要用 T+Q 组合?状态方程以温度和密度为自变量,因此 T 参与的输入对算得最快;而在饱和线上(P、T 不独立),必须再用干度 Q 才能唯一确定是液态还是气态。Q=0 取饱和液,Q=1 取饱和气。

再写两行,感受一下能拿到的结果:

rho = PropsSI('D', 'T', 300, 'P', 101325, 'R134a') # R134a 气相密度,约 4.1 kg/m³ Tc = PropsSI('Tcrit', 'R134a') # R134a 临界温度,约 374.21 K

多问一句:焓、熵这类量算出来怎么和别的软件对不上?别慌——它们是与参考态相关的相对值,不同软件选的参考零点不同(IIR、ASHRAE、NBP 三种常见参考态),要比就比两个状态之间的差值,绝对值没有可比意义。

第三步:分平台差异,一张表看懂

装了 pip 包之后,Windows、Linux、macOS 在用法上没有任何区别。只有当你需要从源码编译时,平台差异才真正显现,浓缩成一张表:

平台推荐路径源码编译前提典型编译命令
Windowspip install coolpropVisual Studio 2015+(或 VS2022)+ CMakecmake .. -G "Visual Studio 17 2022" -A x64后用 MSBuild 编译
Linuxpip install coolpropgccg++、CMake、makecmake .. -DCMAKE_BUILD_TYPE=Releasemake -j4
macOSpip install coolpropXcode Command Line Tools + CMake与 Linux 相同

第四步:什么时候才需要源码编译

这张决策表能帮你快速判断,避免在编译上白花一小时:

你的情况结论
只想用 Python 算纯流体、混合物、湿空气物性直接用 pip,跳过编译
需要 C++、Fortran、Excel、Matlab 等原生接口源码编译,构建 C++ 核心库
想改核心代码、给项目提 PR源码编译 + 跑src/Tests/测试
想尝鲜 IF97、SVDSBTL 等特殊后端源码编译(pip 包也自带这些后端,通常不必)

确需编译时,通用流程如下:

git clone https://gitcode.com/gh_mirrors/co/CoolProp cd CoolProp mkdir build && cd build cmake .. -DCMAKE_BUILD_TYPE=Release make -j4

Linux/macOS 走到make即可,Windows 则用 CMake 生成 Visual Studio 工程后再编译。核心逻辑是:CMake 负责生成构建文件,编译器负责把 C++ 状态方程代码变成库,两者缺一不可。

第五步:再进一步,混合物和湿空气怎么算

纯流体的计算用 PropsSI 就够了,但工程场景往往更复杂:制冷剂混合物、湿空气、非共沸工质。CoolProp 把它们都封装成了后端(backend),你只需在流体名里带上前缀,例如HEOS::R410A走亥姆霍兹高精度后端、IF97::Water走工业用水公式(水专用、速度更快)、REFPROP::xxx走 REFPROP 接口。

上图是 CoolProp 内部的 PT 闪蒸流程:给定压力温度后,先做稳定性分析,再通过平衡常数迭代和 Gibbs 自由能最小化判断最终是液相、气相还是两相。混合物计算就是靠这套算法在背后兜底。

湿空气则需要换一个专用入口HumidAirProp,因为湿空气的状态变量是含湿量、相对湿度这一套,和纯流体的 T、P、Q 不通用。普通用户记住一句话即可:纯流体找 PropsSI,混合物加后端前缀,湿空气找 HumidAirProp

第六步:可执行的验证脚本

把下面的脚本存成verify_coolprop.py运行,一次校验五个关键结果,输出符合预期即安装无误:

from CoolProp.CoolProp import PropsSI # 1) 水在 1 atm 下的饱和温度,预期约 373.12 K print(f"水的饱和温度: {PropsSI('T','P',101325,'Q',0,'Water'):.2f} K") # 2) R134a 在 300 K、1 atm 下的气相密度,预期约 4.1 kg/m³ print(f"R134a 气相密度: {PropsSI('D','T',300,'P',101325,'R134a'):.3f} kg/m3") # 3) R134a 的临界温度,预期约 374.21 K print(f"R134a 临界温度: {PropsSI('Tcrit','R134a'):.2f} K") # 4) 氮气在常压常温下的等压比热,预期约 1040 J/(kg·K) print(f"氮气 Cp: {PropsSI('Cpmass','T',300,'P',101325,'Nitrogen'):.1f} J/(kg·K)") # 5) 氨的临界压力,预期约 11.33 MPa print(f"氨的临界压力: {PropsSI('pcrit','Ammonia')/1e6:.2f} MPa")

第七步:高频问题速查表

遇到报错先别慌,八成能在下表找到答案:

现象原因解法
ModuleNotFoundError: No module named 'CoolProp'装到了错误的 Python 环境确认pip --version与运行脚本的解释器一致,用pip install coolprop重装
CMake 提示找不到编译器缺 Visual Studio / GCC / Xcode 工具链Windows 用 Installer 勾选 C++ 桌面开发,macOS 装 Command Line Tools
编译报error trying to exec 'cc1plus'只有 gcc 没有 g++Linux 上sudo apt-get install g++
运行时提示找不到动态库库未进入系统搜索路径把 build 目录加入LD_LIBRARY_PATH(macOS 用DYLD_LIBRARY_PATH
计算报状态点无效输入超范围,或正好落在饱和线附近核对流体的温度压力适用范围,改用 T+Q / P+Q 组合
混合物报Could not match the binary pair该二元组缺少相互作用参数换流体组合,或用set_mixture_binary_pair_data手工补充

下一步:按图索骥

装好、跑通、排错之后,值得继续深入的地方都在项目里:

  • 高层接口文档:Web/coolprop/HighLevelAPI.rst,PropsSI 全部输入输出参数表
  • 底层接口文档:Web/coolprop/LowLevelAPI.rst,面向需要精细控制状态的高级用户
  • 更多示例:Web/coolprop/examples.rst 与 wrappers/Python/examples/
  • 流体定义与源码:所有流体的 JSON 物性文件在 dev/fluids/,各状态方程后端在 src/Backends/,测试代码在 src/Tests/

新手阶段的建议很朴素:先把 PropsSI 用熟,再用底层接口,最后才碰源码。等你把常用流体的关键物性都算过一遍,你大概就比多数人更懂"物性库"这件事了。

【免费下载链接】CoolPropThermophysical properties for the masses项目地址: https://gitcode.com/gh_mirrors/co/CoolProp

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询