可压缩湍流建模

分类:流体分析(CFD) | 统合版 2026-04-06
CAE visualization for compressible turbulence theory - technical simulation diagram
可压缩湍流建模

可压缩湍流建模的理论基础

可压缩湍流的基础理论

🧑‍🎓

老师,可压缩湍流与不可压缩湍流有什么区别?k-epsilon模型这样的模型能直接使用吗?


🎓

这是个很好的问题。在可压缩湍流中,密度变动变得不可忽视。在不可压缩流中,Reynolds分解 $u_i = \bar{u}_i + u_i'$ 可以直接使用,但在可压缩流中,需要引入Favre平均(密度加权平均)。


🎓

Favre平均的定义如下。


$$ \tilde{u}_i = \frac{\overline{\rho u_i}}{\bar{\rho}} $$

使用这个方法,质量守恒方程的形式与不可压缩的情况相同,这样更容易处理。


🧑‍🎓

我明白了,密度的变动被并入到平均中。但具体会出现什么样的附加项呢?


通过Favre平均的RANS方程

🎓

Favre平均化后的动量方程具有以下形式。


$$ \frac{\partial(\bar{\rho}\tilde{u}_i)}{\partial t} + \frac{\partial(\bar{\rho}\tilde{u}_i\tilde{u}_j)}{\partial x_j} = -\frac{\partial \bar{p}}{\partial x_i} + \frac{\partial \bar{\tau}_{ij}}{\partial x_j} - \frac{\partial(\bar{\rho}\widetilde{u_i''u_j''})}{\partial x_j} $$

其中 $u_i'' = u_i - \tilde{u}_i$ 是Favre变动分量。最后一项对应于Reynolds应力张量。


🧑‍🎓

Reynolds应力的部分看起来和不可压缩情况相同。那么湍流能量方程怎么样呢?


🎓

Favre平均的湍流动能 $\tilde{k} = \widetilde{u_i''u_i''}/2$ 的输运方程包含不可压缩情况下没有的可压缩性特有项。


$$ \frac{\partial(\bar{\rho}\tilde{k})}{\partial t} + \frac{\partial(\bar{\rho}\tilde{k}\tilde{u}_j)}{\partial x_j} = P_k - \bar{\rho}\varepsilon + \Pi_d + M_t + T_k $$

这里重要的是压力膨胀相关性 $\Pi_d = \overline{p'\frac{\partial u_k''}{\partial x_k}}$ 和可压缩性耗散 $\varepsilon_c$(膨胀耗散)。


🧑‍🎓

$\Pi_d$ 和 $\varepsilon_c$ 是可压缩性特有的项。这些项在什么情况下会变得很重要?


可压缩性修正模型

🎓

当湍流马赫数 $M_t = \sqrt{2k}/a$($a$ 是音速)变大时,这些项开始发挥重要作用。具体来说,当 $M_t > 0.3$ 时,影响就变得明显了。让我介绍一些代表性的可压缩性修正模型。


模型可压缩性耗散适用范围
Sarkar (1992)$\varepsilon_c = \alpha_1 \bar{\rho} \varepsilon M_t^2$自由剪切流、混合层
Zeman (1990)$\varepsilon_c = \alpha_2 \bar{\rho} \varepsilon f(M_t)$包含激波的流动
Wilcox (1992)$k$-$\omega$ 的可压缩性修正一般可压缩流动
SST可压缩性修正$F(M_t)$ 函数修正Menter SST模型的扩展
🎓

在Sarkar模型中,$\alpha_1 \approx 1.0$,能够很好地再现高马赫数混合层的扩散率降低。实验表明,对流马赫数 $M_c$ 增加时混合层成长速率显著降低,要准确捕捉这一点,可压缩性修正是必不可少的。


🧑‍🎓

湍流马赫数超过0.3就要注意。老师,这与超音速射流的噪声预测有关吗?


🎓

完全正确。在超音速射流噪声预测中,可压缩湍流的准确建模直接影响声源强度的估计精度。NASA等研究机构在这个领域也在积极进行研究。


Coffee Break 有趣话题

可压缩湍流的"密度脉动"——实际上在消耗湍流能量

在亚音速湍流中,密度几乎保持恒定,所以"只需要关注流速的波动"。但当马赫数超过0.3时,密度脉动就不能忽视了。根据Morkovin假说,在低到中等马赫数时,密度脉动的影响很小,但在极超音速领域(马赫5以上),情况就不同了。1990年代,Sarkar等人表明,除了速度耗散外,还存在"压力与膨胀相互作用"导致的能量耗散途径。忽视这一项会导致湍流能量被过度评估,热流量预测会出现较大偏差——这对高速飞行器的热设计来说可能是致命的错误。

可压缩湍流建模的数值计算方法

数值方法的详细说明

🧑‍🎓

用CFD求解可压缩湍流时,数值格式与不可压缩情况是否不同?


🎓

差别很大。在可压缩流中,会出现激波这样的不连续面,所以对流项的离散化必须采用迎风格式(upwind scheme)。让我整理一下代表性的格式。


格式特点精度可压缩湍流中的注意事项
Roe近似Riemann求解器2阶(配合MUSCL)低马赫数过度耗散
AUSM+质量流量分裂型2阶以上低/高马赫数都适用
HLLC3波近似Riemann求解器2阶接触不连续解析度良好
中心差分+人工粘性Jameson型2阶适合LES,耗散控制是关键
🧑‍🎓

用LES求解可压缩湍流时怎么样?格式的选择会改变吗?


LES/DES中的可压缩湍流

🎓

LES(大涡模拟)中,格子过滤用密度加权的Favre过滤形式进行,称为Favre过滤Navier-Stokes方程。SGS(子网格尺度)模型也需要适应可压缩性。


$$ \bar{\rho} \frac{\partial \tilde{u}_i}{\partial t} + \bar{\rho} \tilde{u}_j \frac{\partial \tilde{u}_i}{\partial x_j} = -\frac{\partial \bar{p}}{\partial x_i} + \frac{\partial}{\partial x_j}(\bar{\tau}_{ij} - \bar{\rho}\tau_{ij}^{sgs}) $$

🎓

作为SGS模型,常用Smagorinsky模型的可压缩性扩展或WALE(墙面适应局部涡粘性)模型。另外,DES(分离涡模拟)在壁面附近使用带可压缩性修正的SST模型进行RANS计算,在分离域使用SGS模型进行LES计算。


🧑‍🎓

数值耗散与物理耗散的平衡看起来很重要。网格分辨率有什么建议标准吗?


🎓

壁面附近理想情况下 $y^+ < 1$,但在可压缩流中,激波附近的网格密度也很关键。激波厚度不需要达到几个平均自由程的水平,但在激波前后至少要保证5到10个单元。Courant数的管理也很重要,对于显式格式,必须严格遵守 $\text{CFL} < 1$ 的条件。


时间推进法

🧑‍🎓

可压缩流的时间积分方法有专门的吗?


🎓

对于需要定常解的RANS,局部时间步进法或隐式LU-SGS方法很有效。对于瞬态的LES/DES,则使用双时间步进法或显式Runge-Kutta法(3阶或4阶)是标准方法。


$$ \frac{\partial \mathbf{U}}{\partial \tau} + \frac{3\mathbf{U}^{n+1} - 4\mathbf{U}^n + \mathbf{U}^{n-1}}{2\Delta t} + \mathbf{R}(\mathbf{U}^{n+1}) = 0 $$

这是双时间步进的方程,其中 $\tau$ 是伪时间,$\mathbf{R}$ 是空间残差。在保持物理时间二阶精度的同时,用伪时间隐式收敛。


🧑‍🎓

明白了,定常和瞬态需要区别对待。实现中有什么陷阱吗?


🎓

最常见的失误是忘记启用可压缩性修正。比如Fluent的k-epsilon模型中,"Compressibility Effects"复选框默认是关闭的。高马赫数混合层的计算中忘记这一点,会大幅过度预测扩散率。


Coffee Break 有趣话题

Morkovin假说——为什么湍流模型在音速附近会"变化"

1962年,Mark Morkovin提出了一个大胆的假说:"如果可压缩湍流中密度变动较小,不可压缩湍流模型可以直接使用"。这就是Morkovin假说。实际上,在马赫5以下时这个假说还算有效,但超过马赫5时,密度变动变得不可忽视,假说就崩溃了。业界经常听到"不知为什么SST模型就收敛了"的说法,但这可能只是因为计算恰好在Morkovin假说成立的速度范围内。

可压缩湍流建模的实务应用

可压缩湍流建模的实际应用指南

🧑‍🎓

老师,开始进行可压缩湍流分析时,能从头到尾教我流程吗?


🎓

好的,我以超音速射流混合层分析为例,具体进行说明。


分析流程(超音速射流混合示例)

🎓

1. 问题定义:射流马赫数 $M_j = 1.5$,全温 $T_0 = 600$ K,喷嘴出口直径 $D = 50$ mm

2. 计算区域:上游 $5D$,下游 $30D$,径向 $10D$

3. 网格:在喷嘴唇部附近,分辨率应小于剪切层厚度的1/10。主要采用六面体,使用O-H型拓扑

4. 湍流模型选择RANS→SST+可压缩性修正,非定常→DES/DDES

5. 边界条件:入口采用pressure-inlet(全压、全温指定),出口采用pressure-outlet


🧑‍🎓

湍流模型的选择有什么标准吗?RANS和LES的区别在哪里?


湍流模型选择指南

🎓

按用途分类是这样的。


用途推荐模型理由
设计阶段的概略评价SST k-omega + 可压缩性修正计算成本低,精度足够
射流噪声预测DDESIDDES需要涡旋的非定常行为
激波/湍流干涉WMLES或ZDES壁面附近精度至关重要
含燃烧的流动Flamelet + LES湍流-化学反应相互作用
🧑‍🎓

网格 $y^+$ 值设置多少比较好?马赫数会影响吗?


🎓

分辨壁面时 $y^+ \approx 1$ 是基本要求,但在可压缩流中,壁面摩擦速度 $u_\tau$ 的估计与不可压缩情况不同。高温壁面粘性变大,所以按不可压缩公式估算的 $y^+$ 值往往会偏大。使用Van Driest变换的壁面律时,$y^+ < 50$ 左右也可以。


初始条件和收敛技巧

🧑‍🎓

听说高马赫数计算很难收敛,有什么诀窍吗?


🎓

重要的几点我列出来。

  • CFL数逐步增加:初期从CFL=1开始,等残差开始下降后逐步增加到CFL=10~100
  • 初始场设置:用等熵关系根据主流条件设置初始场,比全区域均匀流初始化的收敛速度要快
  • under-relaxation:密度基求解器中谨慎设置Courant数,压力基求解器中设置under-relaxation因子
  • FMG(完全多重网格)初始化:Fluent提供此功能。从粗网格逐级补插得到初始场

🧑‍🎓

实际工作中最容易踩坑的地方在哪?


🎓

从经验来看,最常见的是远场边界条件的反射问题。在可压缩流中,边界处激波反射导致非物理解出现。使用非反射边界条件(NRBC)或海绵层很重要。


Coffee Break 有趣话题

超音速发动机的湍流建模,现场怎么应对

在可压缩湍流的实务中,最麻烦的是"湍流模型的标定在不同速度下不能通用"。马赫数上升时,可压缩性修正项(如Sarkar修正)变得重要,但系数怎么设置是case-by-case的问题。做火箭发动机燃烧室分析的工程师讲,有个案例中不加修正计算的湍流能量接近实验值的2倍。"先不加修正跑一遍,与实验值对比后再启用修正"已成为现场的标准流程。

可压缩湍流建模的软件比较

商用工具的可压缩湍流支持

🧑‍🎓

能处理可压缩湍流的CFD软件各有什么特点?


🎓

比较一下主流CFD求解器的可压缩湍流相关功能。


功能ANSYS FluentSTAR-CCM+OpenFOAMCFD++
Sarkar可压缩性修正支持支持需要UDF支持
SST可压缩性修正支持支持支持支持
DDES/IDDES支持支持支持支持
WMLES支持(v2024+)支持支持有限支持
密度基求解器支持耦合求解器rhoCentralFoam等标准配置
AMR(自适应网格细化)支持支持有限支持支持
🧑‍🎓

Fluent和STAR-CCM+哪个更适合可压缩湍流?


Ansys Fluent的设置

🎓

Fluent中可压缩流的基础是选择密度基求解器(density-based solver)。设置的要点如下。


  • Solver:Density-Based, Implicit
  • Flux Type:Roe-FDS或AUSM
  • Gradient:Green-Gauss Node Based(提高精度)
  • Turbulence:SST k-omega → 将Compressibility Effects设置为ON
  • 使用DDES时:基于SST启用DES选项,Shield Function = yes

🧑‍🎓

OpenFOAM中可压缩湍流应该用哪个求解器?


OpenFOAM的实现

🎓

OpenFOAM为可压缩流提供了多个求解器。


  • rhoCentralFoam:中心差分基础,采用KNP(Kurganov-Noelle-Petrova)格式。适合激波捕捉
  • rhoSimpleFoam:定常可压缩RANS。采用SIMPLE算法族
  • rhoPimpleFoam:非定常可压缩。采用PIMPLE(PISO+SIMPLE)算法。用于DES/LES
  • sonicFoam:跨音速到超音速求解器,显式格式

🎓

可压缩性修正在turbulenceProperties字典文件中设置。例如使用Sarkar修正时,需要在kEpsilon模型的coeffs子字典中添加 alphaK1 1.0; 这样的系数,或创建自定义的turbulence model类。


🧑‍🎓

NASA等研究机构用什么代码?


🎓

NASA主要使用FUN3D(非结构网格)和OVERFLOW(重叠网格)。JAXA开发了FaSTAR(非结构网格可压缩求解器)。这些代码的优势在于高马赫数精度经过充分验证。


🧑‍🎓

商用工具和研究代码怎么选择?


🎓

设计工作中,商用工具的图形界面和技术支持直接关系到生产效率。而需要研究级精度或新湍流模型的实现、验证时,研究代码或OpenFOAM的灵活性更占优势。理想情况是两种都能使用。


Coffee Break 有趣话题

商用工具的"可压缩湍流选项"并不都一样

用Fluent、CFD++和OpenFOAM做"用k-ω SST加可压缩性修正"计算,结果并不会相同。这是因为各求解器采用的修正项实现方式不同(Wilcox修正、Sarkar修正还是Zeman修正)。特别是在马赫数超过1.5的超音速射流分析中,求解器间的差异在激波后的湍流强度中可能达到10~20%。选择工具时养成"仔细查规格书,看采用的是哪种修正模型"的习惯,能避免后期大坑。

可压缩湍流建模的先进研究

先进话题

🧑‍🎓

可压缩湍流研究现在朝什么方向发展?


🎓

大体分三个方向。一是DNS(直接数值模拟)来深化物理认识,二是机器学习改进湍流模型,三是壁面模型LES(WMLES)的精度提升。


DNS对可压缩湍流的理解

🎓

随着超算发展,现在可以进行可压缩湍流通道流的DNS计算,雷诺数 $Re_\tau \sim 1000$,马赫数 $M_{bulk} \sim 4$ 的情况已经可行。这使Morkovin假说(密度波动不影响湍流结构)的适用限制变得清晰。


$$ \frac{\overline{\rho'^2}}{\bar{\rho}^2} \ll 1 \quad \text{(Morkovin假说)} $$

DNS结果表明,$M > 3$ 时该假说开始失效。也就是说,高马赫数壁面湍流中,仅凭传统的可压缩性变换(Van Driest变换)是不够的。


🧑‍🎓

这样的话,壁面律也需要修正吗?


🎓

没错。最近提出的Trettel-Larsson变换考虑了温度和密度波动,据说对 $M \sim 5$ 有效。


通过机器学习改进湍流模型

🧑‍🎓

最近什么都用AI,湍流模型也能用吗?


🎓

可以。用Physics-Informed Neural Network(PINN)或Neural ODE学习RANS模型的可压缩性修正项的研究很活跃。还有从DNS数据直接学习Reynolds应力张量异方性的方法(张量基神经网络,TBNN)。


🎓

但也有难点。学习数据范围外的泛化性能,以及物理实现条件(Schumann三角形约束)的保证都困难。目前最实用的还是"模型系数调优支持"这个水平。


壁面模型LES(WMLES)

🎓

在高雷诺数可压缩壁面湍流中,LES的网格成本按 $Re^{13/7}$ 增长。这对工业界 $Re \sim 10^7$ 的情况来说现实不可行。所以WMLES变得很重要。


🧑‍🎓

WMLES是在壁面附近用模型,外部用LES对吧?


🎓

对。壁面附近($y^+ < 50$ 左右)用代数壁模或ODE壁模替代,仅外层用LES求解。可压缩WMLES需要同时考虑壁面摩擦的温度依赖性和压力梯度效应。最近的iWMLES(集成WMLES)方法从RANS方程的薄层近似而不是壁律来求壁面应力,前景看好。


🧑‍🎓

这个领域还在不断进展。5年后会不会更容易用?


🎓

GPU计算进步和模型改进,预计2030年左右WMLES就能成为设计工具。NASA的"CFD Vision 2030"中也把WMLES实用化列为重要目标。


Coffee Break 有趣话题

可压缩湍流的"Favre平均"——为什么要加密度权重

通常RANS用Reynolds平均(简单时间平均),但可压缩流中密度变动,只对速度做时间平均的话方程会充满可怕的相关项。所以1965年法国研究者Flavio Favre提出了"用密度加权平均",即Favre平均。这样方程就简洁得多了。物理上可理解为"以质量流量为基准的平均"。在超音速极超音速CFD代码中Favre平均是标准配置,但后处理可视化速度场时会发现与Reynolds平均有微妙差异,容易让工程师困惑。

可压缩湍流建模的故障排除

可压缩湍流建模的故障排除

🧑‍🎓

老师,可压缩湍流计算常见的陷阱有哪些?


🎓

把实务中经常遇到的问题和对策整理给你。


1. 混合层的增长率过大

🎓

表现:超音速混合层的扩散角比实验值大2~3倍


原因:未启用可压缩性修正。标准k-epsilon和k-omega是按不可压缩流标定的,无法预测可压缩效应(成长率抑制)。


对策

  • 启用Sarkar或Zeman可压缩性修正
  • Fluent中:Viscous Model → Options → Compressibility Effects打上勾
  • 确认对流马赫数 $M_c = (U_1 - U_2)/(a_1 + a_2)$。$M_c > 0.3$ 时修正必须启用

🧑‍🎓

只要勾个复选框,结果就能大幅改善啊。


2. 激波附近湍流量的非物理性增加

🎓

表现:垂直激波正后方,湍流动能 $k$ 出现数倍的尖峰


原因:激波引起的压力梯度被湍流生成项 $P_k$ 过度评估。生成项限制器未设置。


对策

  • 启用SST k-omega的Production Limiter:$P_k = \min(P_k, C_{lim} \cdot \bar{\rho} \beta^* k \omega)$,$C_{lim} = 10$
  • Fluent中使用"Production Limiter"或"Kato-Launder modification"
  • 细化激波附近网格,减小数值激波厚度

3. 密度基求解器的发散

🧑‍🎓

计算开始不久就NaN了,经常遇到…


🎓

表现:计算开始后数十步,残差发散,出现NaN


原因和对策

  • 初始场不恰当:全区域用M=0静止场初始化,超音速入口处会产生不匹配,初期产生激波导致发散→用等熵关系设置恰当的初始场
  • CFL数太大:初期从CFL = 0.5~1.0开始,逐步增加
  • 边界条件不匹配:超音速出口用pressure outlet,背压可能与流场矛盾→超音速出口用外推(extrapolation)边界条件

4. DES计算中出现GID(网格诱导分离)

🎓

表现:边界层在没有物理根据的地方分离。特别在附着流区域出现。


原因:DES中RANS→LES切换在边界层内发生,应该用RANS求解的区域因为LES网格分辨率不足而分离。


对策

  • DDES(延迟DES)。$f_d$ 屏蔽函数保护边界层为RANS区域
  • 改用IDDES(改进型DDES)。包含WMLES功能,更稳定
  • 检查网格设计:壁面平行方向网格长宽比不要太大

🧑‍🎓

改用DDES就保险吗?


🎓

多数情况下可以,但网格过渡区(RANS→LES)的设计依然重要。Log-layer mismatch(对数层不匹配)问题还没完全解决,一定要验证壁面摩擦系数和速度剖面。


🧑‍🎓

可压缩湍流陷阱真的多。我编个检查清单吧。


🎓

好主意。最少要检查这四点:湍流马赫数确认、可压缩性修正启用、生成项限制器设置、边界条件一致性检验。每次都养成这个习惯。


Coffee Break 有趣话题

可压缩湍流收敛缓慢的真实原因

可压缩流湍流计算不收敛时,首先要检查"湍流强度初值是否恰当"。初值设太高,湍流粘性过剩,一直不稳定。太低的话,激波附近湍流能量会瞬间爆炸导致发散。实务中从"自由流湍流强度0.1~1%、涡粘性比1~10"开始试,边观察边调是经验法则。还有个常见原因是壁面Y+设置错误。用低雷诺数模型却在Y+=30以上的网格上计算,壁面附近湍流生成项计算不对,残差就一直降不下来。

相关模拟器

在此领域的交互式模拟器中体验理论

模拟器列表

相关领域

热分析V&V·质量保证结构分析
本文评价
感谢反馈!
有帮助
希望
更详细
报告
错误
有帮助
0
希望更详细
0
报告错误
0
Written by NovaSolver Contributors
匿名工程师与AI — 网站地图
查看资料