流体力学基础 — 从纳维-斯托克斯方程到湍流模型完整解析
老师,我第一次打开OpenFOAM,感觉啥都不懂。流体力学跟结构分析有什么根本区别吗?
区别很大。结构分析里材料是固体,形状基本固定;流体分析里材料会流动,形态随时变化。最难的地方是:流体控制方程(纳维-斯托克斯方程)是非线性偏微分方程,求解比结构难得多。而且湍流问题到现在还没有完整的解析理论,这是物理上公认的"世纪难题"之一。
1. 流体基本性质
1.1 粘度
粘度是流体抵抗流动的能力,分为动力粘度 $\mu$(单位:Pa·s)和运动粘度 $\nu$:
牛顿流体(水、空气、大多数气体和低粘度液体)满足:
即剪应力与速度梯度成正比。非牛顿流体(血液、聚合物溶液、油漆)则不满足,需要更复杂的本构模型(幂律流体、Bingham流体等)。
1.2 可压缩性
液体可近似视为不可压缩流体(密度恒定);气体在马赫数 $Ma < 0.3$ 时也近似不可压缩,$Ma > 0.3$ 时密度变化不可忽略,必须用可压缩流方程。
| 流体 | 密度 ρ (kg/m³) | 动力粘度 μ (Pa·s) | 运动粘度 ν (m²/s) |
|---|---|---|---|
| 空气(20°C, 1atm) | 1.205 | 1.81×10⁻⁵ | 1.50×10⁻⁵ |
| 水(20°C) | 998 | 1.00×10⁻³ | 1.00×10⁻⁶ |
| 发动机润滑油(40°C) | 870 | 0.10 | 1.15×10⁻⁴ |
| 氢气(20°C, 1atm) | 0.083 | 8.8×10⁻⁶ | 1.06×10⁻⁴ |
2. 连续方程(质量守恒)
CFD里的控制方程有几个?先从哪个开始理解?
一共三大类:质量守恒(连续方程)、动量守恒(NS方程)、能量守恒(能量方程)。先从最直观的连续方程开始——它说的是"质量不会凭空产生或消失"。
一般形式(可压缩非定常):
不可压缩流体($\rho = \text{const}$)简化为:
物理含义:流入某控制体的质量流量 = 流出该控制体的质量流量。在CFD中,连续方程的残差是判断求解是否收敛的重要指标之一,通常要求降低3~5个数量级。
3. 纳维-斯托克斯方程(动量守恒)
NS方程是什么?听说很复杂,为什么流体分析都要用这个?
纳维-斯托克斯方程本质上是牛顿第二定律在流体中的应用:质量×加速度 = 所有力之和。对于粘性不可压缩流体:
各项物理含义:
- $\rho \frac{\partial \mathbf{u}}{\partial t}$:非定常惯性力(速度随时间变化产生的力)
- $\rho(\mathbf{u} \cdot \nabla)\mathbf{u}$:对流惯性力(流体流过空间时速度变化)—— 非线性项,难题根源!
- $-\nabla p$:压力梯度力(推动流体的动力)
- $\mu \nabla^2 \mathbf{u}$:粘性扩散力(粘度引起的内摩擦)
- $\rho \mathbf{g}$:重力体力
哦,那个"对流惯性力"就是为什么NS方程这么难解的原因?
完全正确!$(\mathbf{u} \cdot \nabla)\mathbf{u}$ 这个非线性对流项是所有难题的根源。雷诺数高时,这项主导,流动变得混沌——就是湍流。数学上,NS方程的解是否在所有情况下都光滑存在,到今天还没有证明,这是"千禧年七大数学难题"之一,悬赏100万美元!
3.1 无量纲NS方程
用特征速度 $U_\infty$、特征长度 $L$ 无量纲化,得到无量纲NS方程:
其中雷诺数 $Re = \rho U_\infty L / \mu$ 是唯一的无量纲参数。这说明几何相似且Re相同的两个流动,其流场完全相似——这是风洞实验缩比模型的物理基础。航空工程师用这一原理在小风洞里测真实飞机的气动特性。
3.2 伯努利方程(NS方程的特例)
对于无粘、定常、不可压缩、沿流线的流动,NS方程积分得到伯努利方程:
压力 + 动压 + 静压头 = 常数。飞机升力(机翼上下表面压差)、文丘里管流量计、皮托管测速,本质上都是伯努利原理的应用。
4. 能量方程
带热传导的流体能量方程(内能形式):
其中 $c_p$ 是比热容,$k$ 是导热系数,$\Phi = \mu\left[2\left(\frac{\partial u}{\partial x}\right)^2 + \cdots\right]$ 是粘性耗散项(高速流动中不可忽略),$S_e$ 是内热源(如电加热、化学反应放热)。
做电子散热仿真时,是流体分析和热分析一起做吗?怎么耦合?
对,就是共轭传热(CHT,Conjugate Heat Transfer)分析——同时求解流场(NS+能量方程)和固体中的热传导,在流固界面连续地交换热通量和温度。数据中心服务器散热、汽车发动机冷却系统、锂电池热管理,全都是CHT问题。流体和固体不能拆开单独算,因为它们在界面上是强耦合的。
4.1 无量纲数汇总
| 无量纲数 | 定义 | 物理含义 | 典型值范围 |
|---|---|---|---|
| 雷诺数 Re | $\rho U L/\mu$ | 惯性力/粘性力 | 层流<2300,湍流>4000 |
| 努塞尔数 Nu | $hL/k$ | 对流/导热 | 1(纯导热)到>1000(强对流) |
| 普朗特数 Pr | $\mu c_p/k$ | 动量/热量扩散比 | 空气0.71,水6.9,润滑油~100 |
| 格拉晓夫数 Gr | $g\beta\Delta T L^3/\nu^2$ | 浮力/粘性力(自然对流) | Gr>10⁹ 自然对流湍流 |
| 马赫数 Ma | $U/a$ | 流速/声速 | <0.3不可压,>1超音速 |
5. 雷诺数与流态
雷诺数是流体力学中最重要的无量纲数,决定流态:
| 流态 | Re范围(管道流) | 特征 | CFD处理 |
|---|---|---|---|
| 层流 | Re < 2,300 | 流线有序,无扰动 | 直接求解NS,无需湍流模型 |
| 过渡流 | 2,300 ~ 4,000 | 层流/湍流交替,不稳定 | 最难处理,γ-Reθ转捩模型 |
| 湍流 | Re > 4,000 | 速度随机脉动,高混合率 | RANS/LES/DNS |
5.1 典型工程场景的 Re 估算
| 场景 | 特征长度 | 典型流速 | 估算Re | 流态 |
|---|---|---|---|---|
| 血管(毛细管) | 10 μm | 0.1 mm/s | ~10⁻³ | 极低Re层流 |
| 水管(DN50) | 50 mm | 1 m/s | ~50,000 | 湍流 |
| 汽车(120 km/h) | 2 m | 33 m/s | ~4.4×10⁶ | 强湍流 |
| 波音747机翼(巡航) | 8 m | 260 m/s | ~1.4×10⁸ | 极强湍流 |
| 微流控芯片通道 | 100 μm | 1 mm/s | ~0.1 | 层流(蠕变流) |
6. 湍流基础与湍流模型
Fluent里有k-ε、k-ω、SST……好多湍流模型,不知道选哪个。能讲讲它们的区别吗?
湍流模型选择确实让新手头大。简单说一个结论:SST k-ω是工业CFD的默认首选,它在边界层用k-ω,自由流用k-ε,综合了两者优点。不知道选什么,先用SST k-ω准没错。
6.1 RANS方法——雷诺平均
RANS(Reynolds-Averaged Navier-Stokes)将速度分解为时均值和脉动值:$u_i = \bar{u}_i + u_i'$,对NS方程时间平均,出现雷诺应力项 $-\rho\overline{u_i'u_j'}$,需要用湍流模型封闭(这就是著名的"湍流封闭问题")。
6.2 涡粘假设(Boussinesq近似)
$\mu_t$ 是湍流粘度(湍动涡粘度,不是流体本身的粘度,而是湍流混合带来的"等效粘性"),$k = \frac{1}{2}\overline{u_i'u_i'}$ 是湍动能。不同湍流模型的核心区别就在于如何计算 $\mu_t$。
6.3 标准 k-ε 模型
求解湍动能 $k$ 和湍流耗散率 $\varepsilon$ 的输运方程:
湍流粘度:$\mu_t = C_\mu \rho k^2 / \varepsilon$,标准常数:$C_\mu=0.09$,$C_{1\varepsilon}=1.44$,$C_{2\varepsilon}=1.92$,$\sigma_k=1.0$,$\sigma_\varepsilon=1.3$。
适用:充分发展的内部流(管道、通道)、自由剪切流。不适用:有分离的流动(机翼失速、回流区)、强逆压梯度区域。
6.4 k-ω 模型
用比耗散率 $\omega = \varepsilon/(C_\mu k)$ 代替 $\varepsilon$。近壁区(粘性底层和缓冲层)无需壁面函数,可以直接积分到壁面(y⁺ < 1)。但对自由流入射湍流强度非常敏感,边界条件设置不当会导致结果差异大。
6.5 SST k-ω 模型(工业首选)
Menter(1994)提出的混合模型,通过混合函数 $F_1(r)$ 平滑切换:
- 近壁区($F_1 \approx 1$):标准 k-ω(精确处理边界层,不需要壁面函数)
- 远离壁面($F_1 \approx 0$):变换为 k-ε(对自由流湍流强度不敏感)
还加入了对湍流剪应力的限制(修正了过度预测涡粘的问题),对分离流和逆压梯度区域更准确。是Fluent、CFX、OpenFOAM、Star-CCM+的推荐默认模型。
6.6 大涡模拟(LES)与直接数值模拟(DNS)
| 方法 | 思路 | 精度 | 计算量 | 适用场景 |
|---|---|---|---|---|
| RANS(k-ε/SST) | 时间平均,全部湍流建模 | 低~中 | 基准(1×) | 工业设计,大多数稳态问题 |
| DES/DDES | 近壁RANS+远场LES | 中高 | 10~100× | 分离流、气动噪声(半工业) |
| LES | 直接模拟大涡,亚格子建模 | 高 | 100~1000× | 燃烧、噪声、非定常流(研究) |
| DNS | 全尺度直接求解,无建模 | 最高(精确) | Re^(9/4) 增长 | 基础研究,Re极低时可行 |
6.7 近壁处理与 y⁺
无量纲壁面距离 $y^+$ 是判断第一层网格是否合适的关键:
$y_1$ 是第一层网格中心到壁面的距离,$u_\tau$ 是摩擦速度。
| 湍流模型 | 推荐 y⁺ | 近壁处理 | 网格层数 |
|---|---|---|---|
| k-ε + 标准壁面函数 | 30 ~ 300 | 壁面函数(省计算) | 5~10层棱柱网格 |
| SST k-ω(低Re处理) | y⁺ < 1 | 直接积分到壁面 | 15~20层,比例≈1.2 |
| LES | y⁺ ≈ 1(x,z向也需细) | 壁面解析LES(WRLES) | 全方向均匀细化 |
实际工作中怎么快速估算需要多细的第一层网格?
先估算Re,用Blasius公式 $C_f \approx 0.058 Re_x^{-0.2}$ 估算摩擦系数,算出壁面剪应力 $\tau_w = C_f \cdot \frac{1}{2}\rho U^2$,再反推 $y_1 = y^+ \mu / (\rho u_\tau)$。比如汽车外流(Re~10⁶,U=33 m/s),要达到 y⁺~1,第一层网格大约0.01~0.05 mm。我们网站的y⁺计算器可以自动算,很方便。
7. 可压缩流动与激波
超音速飞行的CFD和普通流体分析有什么不同?
差别很大。超音速(Ma > 1)流动中,密度、压力、温度都会发生剧烈变化,必须加入能量方程和理想气体方程。最特别的现象是激波——一个极薄的间断面(厚度约几个分子自由程),流体参数在激波前后发生跳跃式变化。比如战斗机超音速飞行时,机头附近就会有正激波和斜激波,产生"音爆"。
7.1 马赫数与流动分区
$a$ 是声速(空气20°C时约343 m/s),$\gamma$ 是比热比(空气约1.4),$R$ 是气体常数(空气287 J/kg·K)。
| 马赫数范围 | 流态名称 | 主要特征 | CFD数值格式 |
|---|---|---|---|
| Ma < 0.3 | 不可压缩 | 密度变化可忽略(<5%) | 不可压缩求解器(速度基) |
| 0.3 ~ 0.8 | 亚音速可压缩 | 密度显著变化 | 可压缩求解器(密度基) |
| 0.8 ~ 1.2 | 跨音速 | 局部超音速区+正激波 | 密度基+激波捕捉(TVD格式) |
| 1.2 ~ 5 | 超音速 | 斜激波、膨胀波 | Roe格式/AUSM格式 |
| > 5 | 高超音速 | 极高温、气体离解、电离 | 化学非平衡流CFD |
7.2 正激波跳跃关系(Rankine-Hugoniot)
正激波前(下标1)、后(下标2)参数关系:
对于 $\gamma=1.4$(空气):激波越强($Ma_1$ 越大),压力比越大,密度比最大为 $(\gamma+1)/(\gamma-1) = 6$,激波后马赫数趋近但不会超过某极限值。
8. 数值流体力学(CFD)概述
CFD软件内部是怎么求解NS方程的?和FEA软件有什么不同?
商业CFD(Fluent、CFX)和开源CFD(OpenFOAM)主流用的是有限体积法(FVM):把流场划分为许多控制体(多面体),在每个控制体上对守恒方程积分,保证质量/动量/能量在每个控制体内守恒。FEA用有限元法(FEM),CFD用有限体积法(FVM),这是两者的核心差异。FVM天然守恒,适合流动问题。
8.1 压力-速度耦合算法
不可压缩NS方程中,压力和速度是耦合的——动量方程包含压力梯度,但没有独立的压力方程,需要通过连续方程导出压力修正方程:
- SIMPLE(Semi-Implicit Method for Pressure-Linked Equations):迭代解压力修正,稳健,适合复杂流场,Fluent稳态默认
- SIMPLEC:SIMPLE的改进变体,收敛略快
- PISO(Pressure Implicit with Splitting of Operators):两步预测-修正,适合非定常瞬态计算,OpenFOAM默认
- Coupled求解器:同时求解速度-压力系统,收敛快,内存需求大,适合高Ra数自然对流
8.2 对流项离散格式
- 一阶迎风(First-Order Upwind):稳健但数值扩散大,结果"太光滑",不推荐精度要求高的场景
- 二阶迎风(Second-Order Upwind):精度高,是工业CFD的标准选择(Fluent默认)
- QUICK:三阶精度,适合结构化六面体网格
- 有界中心差分(Bounded CD):LES推荐,最小数值扩散但需要限制器防振荡
8.3 CFD典型工作流程
- 几何准备:导入/创建计算域几何(包围盒、入口/出口);修复几何缺陷(间隙、重叠面)
- 网格划分:边界层棱柱网格(控制y⁺)+ 四面体/多面体体网格;检查网格质量
- 物理场设置:流体属性(密度、粘度、热导率);湍流模型;边界条件(入口速度/压力、出口压力、壁面无滑移等)
- 求解器设置:压速耦合算法;离散格式;收敛准则;监测点设置
- 求解:观察残差曲线;监测关键物理量(阻力、升力、压降)
- 后处理:流线/速度云图/压力分布;积分量(阻力系数、努塞尔数);导出数据
- 验证:网格无关性研究;与实验数据对比
9. 实际CFD注意事项
CFD结果的残差降下去了,是不是就代表收敛了、结果是对的?
不一定!残差降低只是必要条件,不是充分条件。更重要的是:监测你真正关心的物理量(阻力系数 $C_d$、压降 $\Delta p$、出口温度)是否稳定不变。很多情况下残差降了3个数量级但流场还没稳定,尤其是分离流动、旋转机械这类问题。残差降到1e-4未必够,有些流场需要1e-6才可信。
CFD常见错误与对策
- 计算域太小:入口/出口距离物体不够,边界条件干扰流场。建议:上游 ≥5倍特征尺寸,下游 ≥10~15倍,横向(外流)≥5倍
- 湍流入口条件随便填:湍流强度 I 和湍流长度尺度 L 要根据上游情况设置;管道进口通常 I=5%,自由来流 I=0.1%~1%
- y⁺不在湍流模型适用范围:用壁面函数但 y⁺<30,或用低Re处理但 y⁺>5,误差很大
- 时间步长过大(瞬态计算):CFL数 $Co = U\Delta t/\Delta x$ 应 <1(RANS),LES要求 <0.5
- 跳过网格无关性验证:至少做两套网格(粗/细网格比~1.5³),关键量差异 <5% 才能说网格已收敛
- 初始条件不合理导致发散:冷启动用零速度场容易发散,建议用势流或简化解初始化;非定常计算先做定常解作为初始场
- 忽略周期性波动(伪稳态):钝体绕流、旋转机械等本质上是非定常的,定常计算会得到无法收敛的振荡残差,需要瞬态模拟后时间平均
9.1 CFD精度预期(现实目标)
| 场景 | 关键量 | RANS精度(vs实验) | LES精度 |
|---|---|---|---|
| 管道压降(湍流) | ΔP | ±5%(SST k-ω) | ±2% |
| 圆柱绕流阻力系数 | Cd | ±10%(RANS) | ±3% |
| 翼型升力系数(无失速) | Cl | ±3% | ±1% |
| 翼型升力系数(失速区) | Cl | ±15~30%(RANS失效) | ±5% |
| 喷嘴出口温度 | T_out | ±3°C(CHT) | — |