可压缩流动(Compressible Flow) — CAE术语解说
可压缩流动是什么
可压缩流动与普通流体分析有什么区别?与水的流动是不同的东西吧?
最大的区别是"密度不是常数"。水这样的液体即使加压也几乎不会被压缩,所以密度ρ可以作为常数处理。这就是不可压缩流动。但空气这样的气体高速流动时,密度、压力、温度会发生大幅变动。这种情况下,必须把密度作为未知数来处理才能再现物理过程。这就是可压缩流动。
定义与马赫数
需要考虑可压缩性的流速是多少?有什么判断标准吗?
判断标准是马赫数 $\mathrm{Ma} = U / a$。$U$ 是流速,$a$ 是音速。参考标准是 Ma < 0.3 时密度变化在5%以下,可以使用不可压缩模型。当 Ma > 0.3 时,压缩性的影响就无法忽视了。此外,按马赫数来分类流动是标准做法。
按马赫数分类具体是怎样的?
大致可以分为4类。
- 亚音速(Subsonic): Ma < 1 — 客运飞机的巡航(Ma ≈ 0.8)属于这个范围
- 跨音速(Transonic): Ma ≈ 0.8〜1.2 — 局部超音速与亚音速混合的复杂区域
- 超音速(Supersonic): 1.2 < Ma < 5 — 战斗机和导弹的飞行范围
- 极超音速(Hypersonic): Ma > 5 — 大气圈再入和极超音速飞行器的世界
例如客运飞机的机翼在巡航马赫数=0.85时,翼面上会出现局部Ma>1的区域。这里就会产生冲击波。
冲击波与膨张波
经常听到冲击波这个词,但具体是什么现象?流动中发生了什么?
当超音速流动撞到障碍物,或流道变窄而突然减速时,压力、温度、密度会在极薄的面上不连续地跳跃。这就是冲击波(shock wave)。冲击波的厚度只有平均自由程的几倍,微米级。从连续体力学角度,基本上可以看作不连续面处理。
通过冲击波后会发生什么?能量守恒吗?
冲击波前后满足质量、动量、能量守恒(Rankine-Hugoniot关系式)。但是熵会增加,所以总压(滞止点压力)会不可逆地下降。也就是说能量的"质量"变差了。这就是航空机设计中必须最小化冲击波总压损失(波阻)的原因。
与冲击波相反,超音速流动扇形加速的现象叫做膨张波(expansion wave)。这是等熵过程,没有总压损失。Prandtl-Meyer膨张是典型例子。
垂直冲击波前后关系式(Rankine-Hugoniot):
$$\frac{p_2}{p_1} = \frac{2\gamma \mathrm{Ma}_1^2 - (\gamma - 1)}{\gamma + 1}$$ $$\frac{\rho_2}{\rho_1} = \frac{(\gamma + 1)\mathrm{Ma}_1^2}{(\gamma - 1)\mathrm{Ma}_1^2 + 2}$$ $$\frac{T_2}{T_1} = \frac{p_2}{p_1} \cdot \frac{\rho_1}{\rho_2}$$其中 $\gamma$ 是比热比(空气为 $\gamma = 1.4$),下标1表示冲击波前(上游),下标2表示冲击波后(下游)。
密度基础求解器与压力基础求解器
听说CFD求解可压缩流动时有"密度基础求解器"和"压力基础求解器",有什么区别吗?
最大的区别是"选择什么作为主变量来构建方程体系"。
- 密度基础(Density-based): 直接时间发展保存变量 $(\rho, \rho u, \rho v, \rho w, \rho E)$。用保存形式离散化欧拉方程或Navier-Stokes方程,所以能清晰捕捉冲击波等不连续现象。采用Roe法或HLSC法等黎曼求解器是其特点。
- 压力基础(Pressure-based): 用SIMPLE型算法求解压力修正方程。最初为不可压缩流动开发,但近期的求解器已加入密度更新式,可以处理可压缩性。在低马赫数的可压缩流动中通常比密度基础更稳定。
实务中怎样选择?例如在ANSYS Fluent中应该选哪一个?
Fluent中可以在Solver Type中选择"Density-Based"或"Pressure-Based"。选择标准如下。
- Ma > 1 且冲击波占主导 → 密度基础更稳定、精度更高
- Ma < 0.3 的低速可压缩或不可压缩 → 压力基础更高效
- 跨音速(Ma ≈ 0.8〜1.2)有冲击波和低速区域混合 → 两者都可以,但密度基础对冲击波的分辨率通常更高
OpenFOAM中 rhoCentralFoam 是密度基础,rhoSimpleFoam / rhoPimpleFoam 是压力基础的可压缩求解器。
航空航天CFD实务
在航空航天领域可能经常需要分析可压缩流动,有什么实务上的注意点吗?
在航空航天CFD中处理可压缩流动有3个特别重要的要点。
1. 网格分辨率: 要正确捕捉冲击波的位置和结构,需要在冲击波附近充分细化网格。通常的做法是使用自适应网格加密(AMR)或事先预测冲击波位置,在该区域布置密集网格。
2. 数值格式的选择: 在冲击波附近,中心差分格式容易产生非物理的振荡(Gibbs现象)。通常用TVD(Total Variation Diminishing)格式或WENO格式来抑制振荡。但数值耗散过大会导致冲击波"模糊",这个平衡很难把握。
3. 边界条件: 超音速进口需要指定5个变量全部(ρ, u, v, w, p)。超音速出口只有上游的信息单向传播,所以出口边界条件不指定任何值(外推)。如果处理不当,会产生非物理的反射波,计算会崩溃。
极超音速会出现更多问题吗?比如大气圈再入那样的情况。
当Ma > 5进入极超音速时,冲击波后温度会达到数千K,空气比热比 $\gamma$ 为常数的前提就不成立了。要考虑分子振动模态激发、解离反应(N₂ → 2N、O₂ → 2O),甚至电离。要用化学平衡模型或非平衡热化学模型代替理想气体状态方程 $p = \rho R T$。NASA的US3D和DLR的TAU代码是这个领域的代表求解器。
控制方程
可压缩Navier-Stokes方程(保存形式):
$$\frac{\partial \rho}{\partial t} + \nabla \cdot (\rho \mathbf{u}) = 0$$ $$\frac{\partial (\rho \mathbf{u})}{\partial t} + \nabla \cdot (\rho \mathbf{u} \otimes \mathbf{u} + p\mathbf{I}) = \nabla \cdot \boldsymbol{\tau}$$ $$\frac{\partial (\rho E)}{\partial t} + \nabla \cdot [(\rho E + p)\mathbf{u}] = \nabla \cdot (\boldsymbol{\tau} \cdot \mathbf{u}) + \nabla \cdot (k \nabla T)$$其中 $E = e + |\mathbf{u}|^2/2$ 是单位质量的全能量,$\boldsymbol{\tau}$ 是粘性应力张量,$k$ 是热导率。加上理想气体状态方程 $p = \rho R T$ 来闭合方程组。与不可压缩流动的决定性区别是密度 $\rho$ 是未知数,且能量方程与速度场强耦合。
马赫数的定义:
$$\mathrm{Ma} = \frac{U}{a} = \frac{U}{\sqrt{\gamma R T}}$$音速 $a$ 由介质的温度和比热比决定。在标准大气(T = 288.15 K)中,空气的音速约为340 m/s。
相关术语
- 马赫数 — 流速与音速的比。量化压缩性程度的最重要无量纲数
- Reynolds数 — 惯性力与粘性力的比。在可压缩流动中也是判断湍流转变的重要指标
- Roe法 — 近似黎曼求解器的代表,在密度基础求解器中广泛使用
- 黎曼问题 — 保存律的初值问题,从不连续初始条件求解。冲击波、接触不连续和膨张波在解中出现
- 欧拉方程 — 忽略粘性的可压缩流动基础方程
对CAE术语的准确理解是团队沟通的基础。— Project NovaSolver也着眼于支持实务工作者的学习。
请告诉我们可压缩流动实务中遇到的课题
Project NovaSolver致力于解决CAE工程师日常面临的课题——建模的复杂性、计算成本、结果解释——的解决方案。您的实务经验将成为开发更好工具的原动力。
联系我们(准备中)