实际气体效应
实际气体效应的理论基础
概述
老师,「实际气体效应」就是说理想气体的假设不成立的情况吧?什么情况下会成为问题呢?
大致分为两种情况。一种是 高温 下气体分子发生振动激发、解离、电离的情况(极超音速再入、等离子体等)。另一种是 高压、低温 下分子间力或分子体积不可忽视的情况(超临界CO₂循环、LNG工艺等)。两种情况下 $pv = RT$ 理想气体状态方程的偏离都是本质的。
用压缩因子 $Z$ 来衡量偏离,对吧?
完全同意。压缩因子定义为
对于理想气体,$Z = 1$。高压天然气时 $Z \approx 0.8$,超临界CO₂时 $Z$ 可以降到0.2-0.5。
状态方程(EOS)
除了理想气体,还要使用什么样的状态方程呢?
我们来看一下代表性的EOS(状态方程)。
van der Waals方程:
其中 $a$ 表示分子间引力,$b$ 表示排除体积。这在历史上很重要,但精度有限。实际应用中广泛使用Peng-Robinson(PR)和Soave-Redlich-Kwong(SRK)。
Peng-Robinson EOS:
其中 $\kappa = 0.37464 + 1.54226\omega - 0.26992\omega^2$,$\omega$ 是偏心因子。
有了临界温度 $T_c$、临界压力 $p_c$ 和偏心因子 $\omega$,就能用于任意物质,对吧。
是的。对于CO₂,$T_c = 304.1$ K, $p_c = 7.38$ MPa, $\omega = 0.225$。但是PR-EOS倾向于使液相密度偏低5-15%。有时会加入Peneloux体积修正项来补正。
高温空气的热化学模型
高温侧的实际气体效应怎样建模呢?
对于空气,随温度上升会依次发生以下现象。
| 温度范围 | 现象 | 影响 |
|---|---|---|
| < 800 K | 理想气体性质 | $\gamma \approx 1.4$ |
| 800-2500 K | O₂振动激发 | $\gamma$ 下降 |
| 2500-4000 K | O₂解离 | O原子生成 |
| 4000-9000 K | N₂解离 | N原子生成 |
| > 9000 K | 电离 | e⁻, N⁺, O⁺ 生成 |
假设化学平衡时,通过Gibbs自由能最小化来求解各化学种的组成。有限速率反应模型则需指定各反应的Arrhenius参数。
比热比 $\gamma$ 随温度变化,这影响很大吧。
确实。冲击波后温度超过3000 K时,$\gamma$ 从1.4下降到1.1-1.2。这样冲击波角和密度比会与理想气体预测大相径庭。
van der Waals在1873年的发现——分子有「大小」
实际气体理论的基础由荷兰物理学家Johannes van der Waals建立。他在1873年的博士论文中提出了革命性的想法:"气体分子有有限的大小,分子间存在引力"。由此导出的van der Waals状态方程能够描述高压、低温区域的气体行为,是第一个有实际应用意义的模型。现代工程中使用的Peng-Robinson或Redlich-Kwong方程都是在van der Waals思想基础上的改进。150年前的博士论文至今还直接影响着可压缩性CFD的状态方程选择。
实际气体效应的数值计算方法
EOS的数值实现
将实际气体EOS融入CFD时,计算上有什么问题吗?
有几个重要问题。理想气体中,从守恒变量($\rho, \rho\mathbf{u}, \rho E$)到温度和压力的转换可以解析进行,但PR-EOS等需要迭代计算。
具体来说,给定内部能 $e$ 和密度 $\rho$,需要从
用Newton法求解温度 $T$。其中 $e_{departure}$ 是从EOS导出的偏离函数(departure function),对于PR-EOS为
这种迭代计算需要执行(单元数×时间步数)次,所以计算成本增加。
相比理想气体,计算会慢多少呢?
一般来说2-5倍左右。EOS计算成为主要瓶颈,所以实务中普遍采用查表法(look-up table)加速。事先计算温度和压力的二维查表,运行时只需插值。
超临界流体的数值困难
超临界状态在数值上有什么困难呢?
临界点附近热力学特性变化剧烈。定压比热 $c_p$ 在拟临界温度(pseudo-critical temperature)附近有峰值,密度也急剧变化。这种剧烈变化会导致数值振荡或发散。
例如CO₂超临界条件(p = 8 MPa, T = 305 K附近),$c_p$ 会跳到通常值的10倍以上。密度仅温度改变几K,就会从700 kg/m³快速下降到200 kg/m³。
变化这么剧烈啊。数值格式需要特别处理吧。
完全同意。推荐的方法如下。
- 查表法:从NIST的REFPROP数据库生成物性表,用双线性插值访问
- 隐式方法:密度变化大,所以隐式压力-密度耦合对稳定性必须
- 网格分辨率:拟临界过渡发生的区域要用细网格
- 时间步长:自适应时间步来应对密度急变
黎曼求解器的扩展
实际气体中Roe格式或HLLC也能用吗?
可以用但需要修改。Roe平均状态的计算时要摒弃理想气体假设。实际气体的Roe格式中,平均音速用
其中采用广义的 $\Gamma = v/(c_p)(\partial p / \partial T)_v$ 来计算(Vinokur定式等)。HLLC对EOS的依赖性较小,实现也容易,所以实际气体中HLLC更常用。
考虑到实现的便利性,HLLC更实用吧。
是的。OpenFOAM的rhoCentralFoam基于KNP格式,对EOS无依赖性,只需替换EOS模块就能进行实际气体计算。
实际气体查表的「网格点不足」问题
实时计算状态方程(van der Waals法、Peng-Robinson法等)会让CFD速度下降几十倍。所以现场普遍采用预先计算的温度·压力格点热力学量查表(LUT)。问题是「表格格点太少会导致插值误差大,太多会增加内存和读取时间」的权衡。将表格的密集网格集中在冲击波经过的高温高压区域,在缓和区域使用粗网格的「自适应表格」效率最高,但这种设计本身就是一种技术诀窍。
实际气体效应的实务应用
超临界CO₂涡轮的分析
超临界CO₂用于发电系统吧?CFD怎么处理呢?
超临界CO₂布雷顿循环是下一代发电的前景技术。压缩机入口在临界点附近(31°C, 7.4 MPa),密度接近液体,可以小型化设备。我们整理一下CFD处理的注意事项。
| 项目 | 设置 | 备注 |
|---|---|---|
| EOS | Span-Wagner(CO₂专用高精度EOS) | 当需要高精度时PR-EOS可能不够 |
| 物性表 | REFPROP或CoolProp生成 | 温度200-800K,压力1-30 MPa |
| 乱流模型 | SST k-omega + 低Re修正 | 密度急变影响乱流输运 |
| 网格 | y⁺ < 1,拟临界线周围密集 | 解析壁面附近密度变化 |
| 求解器 | Pressure-Based Coupled | 超临界时比密度基方法更稳定 |
Span-Wagner EOS有什么不同呢?
这是为CO₂量身定制的Helmholtz自由能型EOS,在临界点附近的精度远超PR-EOS。NIST的REFPROP中有实现。Fluent可以以NIST Real Gas Property(RGP)表格形式导入。
LNG工艺的实际气体效应
LNG(液化天然气)的阀门和管道CFD中实际气体很重要吗?
LNG条件(甲烷主成分,-162°C,大气压液化)下用PR-EOS+混合律处理多成分系统。BOG(Boil Off Gas)生成和闪蒸预测需要气液平衡计算,超出了通常CFD范畴。
Fluent能做LNG的气液两相流计算吗?
Fluent用蒸发-凝聚模型(Lee model)和PR-EOS结合可以粗略计算,但要精确处理多成分LNG的相平衡还是CFX更强。CFX内置多成分多相相平衡计算。
高温气体的验证事例
高温实际气体的验证用什么实验数据?
代表性的基准案例如下。
- 正常冲击波温度:用理想气体/平衡/非平衡模型比较冲击波前后温度、密度比(Anderson教科书有详细数据)
- 冲击波管实验:从已知的驱动/测试条件验证冲击波速度和后部状态
- 圆柱周围弓形冲击波:M=6-10时驻立距离强烈依赖气体模型
- NASA CEA:化学平衡组成与CFD结果对照
想定量看理想气体和实际气体结果差多少。
举例来看M=10的垂直冲击波。理想气体($\gamma=1.4$)下 $T_2/T_1 \approx 20.4$, $\rho_2/\rho_1 = 5.71$,但包含解离的实际气体中温度会降低,密度比会超过10。冲击层变薄是因为密度升高,这直接影响再入体的冲击波驻立距离。
实务检查清单
开始实际气体CFD时,能总结一份检查清单吗?
以下项目都要确认。
- 工作流体的临界点($T_c, p_c$)与运行条件的距离是否足够 → 临界点附近则推荐查表法
- EOS精度是否经过验证 → 用REFPROP对比已知状态点
- 比热的温度依存性是否正确输入 → NASA多项式(7系数)的温度范围要确认
- 输运系数(粘性、热传导率)是否在RGP表中
- 网格是否在物性急变区足够细
实际气体CFD的实务——查表会让计算时间剧变
要精确处理实际气体效应,需要用NIST流体数据库或化学平衡表代替理想气体状态方程(PV=nRT)。但这些查表操作计算成本很高,每个时间步对压力、温度、焓进行三变量插值,会导致理想气体计算的3~5倍计算时间。实务中常用「只在高温高压区用实际气体查表,其他区域用理想气体近似」的混合方法。液体火箭推进剂(液态氢、液态氧)喷射计算中,这种切换边界的设定会大幅影响结果精度。
实际气体效应的软件比较
实际气体支持工具比较
哪些CFD工具支持实际气体?
来比较一下主要工具的实际气体支持情况。
| 工具 | 立方型EOS | 查表法 | 多成分混合 | 相变化 | 化学反应 |
|---|---|---|---|---|---|
| ANSYS Fluent | PR, SRK | NIST RGP | 混合律 | Lee模型 | Species Transport |
| ANSYS CFX | PR, SRK, RK | CFX-RGP | 详细混合律 | 相平衡 | 反应流 |
| STAR-CCM+ | PR, SRK | 查表 | 多成分 | Flash计算 | 详细化学 |
| OpenFOAM | PR(扩展版) | 自定义 | 基础 | 有限 | reactingFoam |
| COMSOL | PR, SRK等 | 查表 | 混合律 | 相变化模型 | 反应工程 |
| CoolProp | 多种EOS | - | GERG-2008 | 相平衡 | 无(物性库) |
CoolProp是CFD工具吗?
不是CFD工具,而是开源热力学物性库。可从Python/C++调用,200多种流体的物性能高精度计算。REFPROP是付费的,CoolProp免费。前处理生成RGP表的用途很理想。
ANSYS Fluent的实际气体设置
Fluent中使用实际气体的具体步骤请讲一下。
有两种方法。
方法1:Peng-Robinson EOS
- Materials → Fluid → Density:选择
real-gas-peng-robinson - 输入临界温度、临界压力、偏心因子、分子量
- 注意:$c_p$ 用NASA多项式指定温度依存性
方法2:NIST RGP表
- 用REFPROP或CoolProp生成物性表(.rgp格式)
- Materials → Fluid → Density:选择
real-gas-property-table - 读取.rgp文件
- 确认表的温度和压力范围覆盖计算条件
哪个更推荐呢?
远离临界点的条件下PR-EOS就够了。接近临界点的超临界流体必用查表法。表法计算也更快。网格分辨率以温度方向200点、压力方向100点为目标。
STAR-CCM+的实际气体功能
STAR-CCM+怎么样?
STAR-CCM+支持Multi-Component Gas模型和PR-EOS,另外还有IAPWS-IF97(水蒸气专用高精度EOS)。查表法也能通过Field Function灵活实现。
特别是在LNG领域,Multiphase + Equation of State结合能做包括气液平衡的两相流计算。内置Flash计算(压力-焓闪蒸)也有用于LNG的BOG预测实绩。
各工具的专长很明显呢。
总结就是,超临界CO₂用Fluent或CFX的RGP表,LNG多成分用STAR-CCM+或CFX,高温解离空气用专用代码(DPLR, hy2Foam)。
实际气体求解器的「数据库依赖」问题
处理实际气体效应的CFD求解器将热力学特性(比热、焓、熵)作为温度·压力函数表保存。这个表的数据来源是NASA的Gordon-McBride数据库还是JANAF表,会导致高温区(3000K以上)的计算值略有差异。选择商用工具时,「内置数据库来自哪个来源」「用户能否添加自定义物质」很重要。特别是在研究新推进剂或特殊气体混合物时,默认数据库往往无法应对,这时数据库的可扩展性就成为关键。
实际气体效应的前沿研究
超临界喷射的最前线
实际气体效应研究中现在关注什么主题?
超临界喷射(supercritical injection)在空间推进和燃气涡轮都很活跃。液体火箭发动机中燃烧室压力超过临界压力,燃料喷射在超临界状态进行。此时表面张力变成零,传统液滴模型不适用。
不是液滴,而是密度不同的气体混合的概念吧?
完全同意。超临界喷射需当成diffuse interface(扩散界面)处理。具体方法有以下几种。
- 多物种实际气体方法:每个化学种应用PR-EOS和混合律
- Phase-field法:用Cahn-Hilliard方程追踪界面
- Entropy-stable DG法:高阶精度、物理上一致的格式
GERG-2008混合物模型
天然气这样的多成分混合物有精密的EOS吗?
有GERG-2008。这是针对21成分天然气组成(甲烷、乙烷、丙烷、N₂, CO₂等)的Helmholtz自由能型高精度混合物模型。比PR-EOS的混合律(van der Waals 1-fluid model)精度高得多,还是ISO标准流量计校验的标准。
能融入CFD吗?
REFPROP和CoolProp中有实现,可以输出为表并导入CFD。直接融入时可以把CoolProp的C++库链接到UDF或OpenFOAM源码。但计算成本是立方型EOS的10-100倍,查表法更现实。
数据驱动型EOS
用机器学习做EOS有研究吗?
有很活跃的研究。有两种方法。
1. 神经网络EOS:$(\rho, T) \to (p, e, c_p, \mu, \lambda)$ 映射用神经网络学习。训练数据来自REFPROP输出
2. 物理约束神经网络:用NN表示Helmholtz自由能的函数形式,约束条件包含热力学一致性(Maxwell关系式等)
优点是比查表插值更平滑、导数连续。缺点是训练数据范围外的信赖性和推理时计算成本。
热力学法则作为约束很聪慧呢。
例如熵的偏微分关系 $c_v = T(\partial s / \partial T)_v$ 会自动满足这样的NN架构设计。这样能防止非物理物性预测。
实际气体效应的故障排除
常见故障和解决办法
用实际气体计算时常见的故障请讲一下。
我们来看实际气体特有的问题模式。
1. 非物理的负压力、负温度
症状:PR-EOS计算中温度或压力变成负数并发散
这常见吗?
很常见。PR-EOS在低温、低密度区会返回非物理压力。特别是在气液共存区(van der Waals环),压力可能为负。
对策:
- 换用查表法(表不覆盖非物理区)
- 设置温度和压力的裁剪下限(Fluent的
temperature-limits) - 谨慎设置初始条件(避开低温区)
- 先用理想气体得到初值,再切换实际气体
2. 拟临界遍遇时发散
症状:超临界流体穿过拟临界温度区域时残差增大
物性急变区呢。
是的。$c_p$ 上升10倍,密度急变,数值格式变不稳定。
对策:
- 提高表的分辨率(拟临界线附近0.1 K刻度)
- 减小伪时间步长(松弛因子设到0.3以下)
- 用Pressure-Based Coupled求解器(比SIMPLE系更稳定)
- 适当加人工扩散(数值粘性)来稳定(精度会降)
3. RGP表范围外错误
症状:Temperature/Pressure out of table range 错误停止
计算过程中条件超出表范围吧。
初期过渡或局部膨胀、压缩中温度、压力超出预想范围。
对策:
- 表的范围比计算条件宽20-30%
- 允许表外推(Fluent的RGP选项)
- 初始条件设到计算条件中心值来减小过渡振幅
4. 输运系数的不一致
症状:物性表密度正确,粘性和热传导率不连续
密度EOS对,输运系数错的情况?
Fluent用PR-EOS时,有人对粘性直接用Sutherland式,但在超临界区Sutherland式完全不准。
对策:
- 将粘性、热传导率也纳入RGP表(REFPROP输出4列表)
- 用Chung et al.相关式(高压区用)
- 超临界CO₂用Fenghour相关式推荐
5. 混合物的EOS参数
多成分混合物二元相互作用参数 $k_{ij}$ 怎么决定呢?
$k_{ij}$ 是PR-EOS混合律的参数,从气液平衡数据拟合得到。通常用文献值,无数据系统只能设 $k_{ij} = 0$。
要确认的事:
- 在DDB(Dortmund Data Bank)或NIST TDE查 $k_{ij}$ 文献值
- 做敏感性分析($\pm$0.05变化如何影响结果)
- 如可能,用相平衡实验数据验证EOS预测精度
实际气体故障排除需要数值方法和热力学两方面知识呢。
是的。不仅CFD设置,还要理解状态方程的适用范围和物性数据品质,否则会得到看似正确其实错误的结果。
实际气体计算的「音速变虚数」bug为何发生
实际气体模型计算时偶见「音速变虚数(负值开方)导致计算落败」的错误。理想气体音速 $a = \sqrt{\gamma RT}$ 恒为正,但实际气体从状态方程偏微分求音速时,数值上$(\partial P/\partial \rho)_s$可能为负。多数情况是表的插值超出范围或初始条件进入状态方程「物理上无意义的区域」。对策是扩大状态表范围或确认初始条件在气液两相区之外。
错误