做CFD的同行应该都有这种体会:凡是涉及液体射流进气体的算例,喷雾破碎模型总是绕不过去的一道坎。不管是发动机缸内直喷、燃气轮机喷嘴雾化,还是化工塔里的喷淋冷却,模拟结果准不准,一半看湍流模型,另一半基本就看破碎模型选得对不对、参数调得合不合理。这篇文章我想把喷雾破碎模型从理论到CFD落地的全链路梳理一遍,把每个主流模型的适用边界和实操参数讲透,也聊聊我自己在算例中踩过的坑。适合刚接触多相流雾化仿真的学生,也适合已经在用Fluent、OpenFOAM做喷雾但经常被破碎模型弄得头疼的工程师。
我最早接触喷雾破碎是读书时做的一个柴油喷油器仿真,那时候对模型的理解停留在"选WAVE就行"的层面,结果换一个工况就偏得离谱。后来把TAB、WAVE、KHRT、LISA这几个模型的推导逻辑和适用条件彻底啃了一遍,才发现每个模型背后都有明确的物理假设,用错地方才是误差的真正来源。再往后几年,我开始尝试用类PINN(物理信息神经网络)的思路辅助标定破碎模型的经验常数,虽然还远谈不上成熟,但至少让我重新审视了传统模型里那些"拍脑袋"参数背后的数学结构。所以这篇内容不光是模型公式的罗列,更是从工程实用角度出发,帮你搞清楚"什么时候该用哪个模型"以及"模型参数到底在改什么"。
1. 喷雾破碎到底在模拟什么
1.1 从液柱到液滴的级联过程
喷雾破碎模拟的物理对象,本质上是一条连续液相在高速射入气相后逐渐"断开"的级联过程。液柱从喷嘴出来后,先受气液界面剪切作用产生表面波,表面波幅值增长到一定程度就把液柱撕成较大的液块或液带,这是初次破碎;随后这些大液块在运动中继续变形、被气流撕裂成更小的液滴,这是二次破碎。实际喷雾场里,这个级联过程通常同时发生,而且和蒸发、碰撞、湍流扩散叠加在一起,非常复杂。
工程上做CFD仿真,极少有人直接去分辨液柱破碎的连续界面。绝大多数工业算例采用的是Lagrangian离散相框架,把液相分成一个个粒子包(parcel),每个parcel代表一群真实液滴;而破碎模型就负责计算这些液滴在运动过程中如何分裂、分裂出多大尺寸的子液滴。换句话说,破碎模型是一个"亚网格模型",它不直接解析界面,而是用半经验公式去描述界面不稳定性的净效应。
从这个定位出发,就能理解为什么不同破碎模型之间差别那么大。TAB模型把液滴变形类比成弹簧振子,WAVE模型假设破碎由KH不稳定波主导,KHRT模型额外叠加了RT不稳定性,LISA模型则针对液膜射流做了专门推导——它们的数学形式不同,适用射流形态和韦伯数范围也不同。选模型前先搞清楚模拟对象处于哪个破碎机制区间,比盲目追求"先进模型"重要得多。
1.2 为什么CFD结果对破碎模型这么敏感
喷雾场的下游行为,比如液滴粒径分布、蒸发速率、油气混合均匀度,很大程度上由初始粒径和初始速度决定。破碎模型从喷嘴出口开始就在改这两个量,等于给整个喷雾场定基调。我见过不少算例,湍流模型和数值格式都没问题,就是因为破碎模型没选对,计算得到的SMD(索特平均直径)偏大20%左右,下游浓度场自然对不上实验。
另一个容易忽略的点是破碎模型和网格、时间步长的耦合关系。液滴在一个时间步内如果穿越了多个计算单元,破碎计算的空间位置就已经失真了;反过来,时间步长过大,液滴变形量的时间积分误差也会被放大,表现出来就是粒径分布出现不正常的"振荡"或者局部堆积。这让我在实际工作中养成了一个习惯:评估喷雾算例时,先做一版不带破碎的纯轨迹追踪,确认流动场合理后再打开破碎模型,从对比中锁定误差来源。
1.3 模型生态的两个层次
主流商用软件和开源工具里的破碎模型,大致可以分成两个层次。第一层是"通用单模型",比如Fluent里的TAB、WAVE、KHRT,OpenFOAM里的ReitzDiwakar、ETAB等,它们的共同点是针对单液滴或液柱破碎给出线性或半线性描述,适合中等复杂度的工程评估。第二层是"组合模型机制",比如Fluent的KHRT本身就包含KH和RT两个子模型的串接,另外一些常用做法是用WAVE做初次破碎、用TAB做二次破碎,这种组合策略能覆盖更宽的工况范围。
这两个层次的区分对新手尤其重要。很多人第一次做喷雾仿真,一上来就想直接用最新论文里的改进模型,结果版本不兼容、参数缺失,算出来还不如基础模型。我的建议是,先把第一层模型的物理假设和适用边界吃透,再根据具体工况决定是否组合、要不要UDF二次开发。CFD喷雾破碎的核心从来不是"模型越多越好",而是"每段破碎机制都有对应的数学描述"。
2. 主流破碎模型的原理拆解与适用边界
2.1 TAB模型:把液滴当成弹簧振子
TAB(Taylor Analogy Breakup)模型是J.O. Taylor在1963年前后提出的经典类比,后来被O'Rourke和Amsden整理成CFD可用的形式。它的核心思路非常直观:一个振荡变形中的液滴,可以类比成一个受迫弹簧-质量-阻尼系统。气动力是外部激励,表面张力相当于弹簧恢复力,液体黏性相当于阻尼;当液滴的变形量超过临界值,液滴就被判定为破碎。
TAB模型最大的优点是计算开销小、稳定性好,适合快速评估喷雾趋势,尤其对中低韦伯数下的液滴振荡破碎比较适用。但它也有明显短板:它假设液滴从开始变形到破碎是一个线性过程,而实际上高韦伯数下的液滴会经历剧烈的非线性拉伸和袋状破碎,TAB给出的粒径分布往往偏窄,并且无法很好地表示沿射流方向的液柱断裂。
在参数上,TAB模型包含一个自定义的Webber数修正系数、临界变形比例、以及破碎产物粒径的分布指数。工程上初期可以把分布指数设为2左右,再根据实验的SMD或粒径分布去反推调整。如果你做的是低速细水雾或医药喷雾,韦伯数不高,TAB一般够用;但如果是高压共轨柴油喷雾那种韦伯数四五百以上的工况,TAB就会显得"力不从心"。
2.2 WAVE模型:追上KH不稳定波
WAVE模型由Reitz在1987年提出,是目前应用最广泛的初次破碎模型之一。它直接对液柱表面的Kelvin-Helmholtz不稳定波做线性稳定性分析,认为液滴的破碎由波长最大、增长率最快的不稳定波主导,破碎后的新液滴半径与这个最不稳定波长成正比,破碎时间尺度也与波的增长率成反比。
这个模型的优势在于它天然匹配"液柱射入静止气体"的物理场景,所以非常适合做柴油喷雾、煤油射流这一类的单孔直射雾化。WAVE模型里有两个核心常数:一个是B1,控制液滴破碎时间尺度;另一个是B0,控制破碎后子液滴的粒径。B0通常取0.61,这是线性稳定性理论给出来的一致值;B1则弹性很大,工程上常见取值范围在1.73到60之间,B1越小破碎越快,喷雾锥角越宽,穿透距离越短。
我在实际算例中踩过最大的坑就是B1的敏感性:同一个喷油工况,B1从5改到20,计算得到的液相贯穿距可以差出15%到20%。这让我后来养成了一个习惯——不把WAVE模型的B1当默认值处理,而是先用实验的喷雾贯穿距照片反过来标定B1,标定完再去做蒸发或燃烧耦合计算。WAVE模型不适合低速液滴的二次破碎模拟,因为在那种工况下KH波并不占主导,硬算会给出偏大的粒径。
2.3 KHRT模型:初次加二次的两段式组合
KHRT模型是WAVE模型的升级版,在Reitz团队后来的一系列研究中逐渐成型,现在几乎所有商用CFD软件的喷雾模块里都能找到它。它最大的特点是同时考虑了两种不稳定性:KH波主导液柱的初次破碎,RT波主导高速运动液滴的二次破碎。RT不稳定性形容的是"轻流体推动重流体"时界面加速产生的失稳,在高速液滴迎风面减速时非常显著,正好补上了WAVE模型对二次破碎描述不足的短板。
KHRT模型的实际计算过程是这样的:先由KH波计算液柱破碎产生的"母液滴"粒径和速度;母液滴进入气相后,如果RT波的波长小于当前液滴直径,就启动RT破碎,生成更小的"子液滴"。这个串行机制和真实实验观察到的级联破碎比较接近,所以KHRT在高压喷射、高速射流的工况下通常比单独的WAVE模型更能贴合实验数据。
参数方面,KHRT除了包含WAVE的B0和B1,还有RT波的尺寸常数C_RT和破碎时间常数C_tau。C_RT的经验值一般是0.1到1.0,它决定RT破碎产物的粒径尺度;C_tau通常设成1.0。要注意的是,KHRT并不是在所有情况下都优于WAVE,因为RT波的判定需要依赖液滴的相对速度,在液滴已经明显减速的下游区域,KHRT的二次破碎可能被过早触发,导致粒径偏小。这时候需要对比实验的粒径分布来判断是否要调高C_RT。
2.4 LISA模型:面向液膜雾化的专用方案
前面几个模型主要针对圆孔直射液柱,但工程上还有一大类喷嘴——压力旋流喷嘴和扇形喷嘴——液体从喷嘴出来先形成液膜,之后液膜才破碎成液丝和液滴。对这类工况再用WAVE模型就不太合适了,因为液膜的破碎机制是"表面波增长+液膜边缘剥离",和液柱的KH波主导模式并不一样。LISA(Linearized Instability Sheet Atomization)模型就是专门为液膜雾化设计的。
LISA模型把计算分成两步:先计算液膜的初始状态,包括液膜厚度和速度,这通常由喷嘴的流量系数和几何参数推算;然后再对液膜做线性稳定性分析,得到液膜破碎长度和最优势波长,进而给出初始液滴直径。这样处理后,旋流喷嘴的喷雾锥角、液膜长度、粒径分布都能在一个框架内统一计算,这也是为什么燃气轮机和工业烧嘴的CFD仿真里LISA出场率非常高。
使用LISA模型时,喷嘴参数的正确输入是成败关键。流量系数、液膜厚度系数、喷雾锥角这几个量直接决定初始液膜条件,如果喷嘴几何是变工况的,这些参数就要做插值,不能一直用额定工况的值。我有一次做燃气轮机值班喷嘴的喷雾模拟,最初按说明书"推荐流量系数"输入,结果喷雾锥角比实验窄了接近10度;后来在低流量工况下用实测流量标定系数,误差立刻回到5%以内。
3. CFD实操前的模型选型策略
3.1 按韦伯数和射流形态定方向
面对一个喷雾仿真任务,模型选型不需要从零开始做理论推导,完全可以走一套“经验判别法”。第一步看喷嘴类型:是圆孔直射、压力旋流还是空气辅助雾化。圆孔直射优先考虑WAVE或KHRT,压力旋流优先LISA,空气辅助雾化则要结合气液相对速度和液膜形态来定。第二步看韦伯数范围:韦伯数不高、液滴振荡破碎为主,TAB就能胜任;韦伯数几百以上、有明显的高速二次破碎,就要上KHRT。
这里我给出我自己常用的选型参考表:
| 工况特征 | 优先模型 | 备选方案 | 备注 |
|---|---|---|---|
| 低速细水雾、韦伯数较低 | TAB | WAVE | 计算成本最低,趋势评估首选 |
| 中压圆孔直射、单孔喷射 | WAVE | KHRT | 初次破碎主导,B1需标定 |
| 高压直喷、贯穿距大、二次破碎明显 | KHRT | WAVE+TAB组合 | 注意RT参数对粒径的影响 |
| 压力旋流喷嘴、液膜雾化 | LISA | KHRT | 喷嘴参数输入必须准确 |
| 空气助力雾化、气液强剪切 | LISA或自定义 | KHRT | 需考虑气液动量比 |
这张表并不是绝对标准,但它能帮你快速收窄范围,避免在模型库里盲目试错。真正的模型确认还是要靠一两个典型工况的实验数据做back-to-back验证,选型表只能作为起点。
3.2 模型组合与UDF开发的轻量思路
当单一模型无法满足精度要求时,组合策略往往是性价比最高的方案。最常用的是WAVE做初次破碎加TAB做二次破碎,把初次破碎的产物作为TAB的输入液滴;这样既保留了KH波对液柱断裂的预测能力,又避免了KHRT的RT波在某些工况下的误触发。Fluent和OpenFOAM都支持这种组合,但要注意两种模型的时间步进顺序和产物粒径传递需要一致。
另一个轻量思路是用UDF或者自定义源项去修正模型常数,而不是重写整个破碎模型。比如你已经有实验的SMD数据,可以通过一个简单的比例系数去修正WAVE模型的B0输出,让计算粒径与实验吻合。这种做法在工程上争议不大,因为破碎模型的常数本来就是半经验标定出来的,关键是修正逻辑要透明、要限定适用范围。
至于类PINN的思路,我自己做过一些尝试,但定位很朴素:不追求用神经网络完全替代破碎模型,而是用PINN去拟合"模型常数与工况参数(韦伯数、雷诺数、气液密度比)之间的关系"。传统做法是固定一组常数算所有工况,PINN的替代方案是让常数随工况连续变化,理论上能提升跨工况预测的泛化能力。这个方向目前还没有形成工业标准,但值得关注。
3.3 网格策略与时间步长的配合
破碎模型对网格和时间步长的敏感度经常被低估。液滴在网格中的位置、液滴速度插值、气液相对速度的获取,都依赖当地网格精度。如果喷嘴出口附近的网格太粗,液滴在大涡结构里的速度波动会被抹平,破碎模型输入的相对速度偏低,破碎自然偏弱,导致粒径偏大。
我自己做喷雾网格时有一个基本要求:喷嘴出口下游至少保证轴向两个网格内,网格尺度不超过喷嘴直径的一半;喷雾的核心穿透区域内,网格尺度控制在液滴初始直径的5到10倍左右。时间步长方面,CFL数保持在0.5以下,尤其要保证液滴在一个时间步内的移动距离不超过一个网格尺度,否则液滴可能"穿网格"导致破碎位置失真。
还有一个容易忽略的细节:破碎模型在OpenFOAM里是通过连续相与离散相耦合计算的,如果流场本身的pimple/piso循环还没收敛就开喷雾,破碎模型看到的流场含大量数值噪声,算出来的粒径分布会异常发散。所以我的建议是先用纯气相流场算几百步,让流场充分发展后再释放液滴。
4. 一个完整算例的实操过程
4.1 算例设定与初始条件梳理
为了把前面的理论落到实际上,我拿一个典型的压力旋流喷雾算例来走一遍完整流程。工况是这样的:喷嘴入口压力1.2MPa,流量4.5kg/h,介质是水,环境为常温常压空气,模拟目标是预测距离喷嘴100mm截面上的SMD和喷雾锥角。这个工况韦伯数中等偏上,液膜雾化特征明显,所以我选择LISA模型作为主破碎模型,湍流模型用realizable k-epsilon,离散相用Lagrangian DPM。
初始条件需要整理一组喷嘴参数:流量系数、液膜厚度系数、喷雾锥角、喷嘴出口直径。流量系数如果只有设计值,我建议先用对比实验流量的方式做一个快速标定;液膜厚度系数没有实验数据时取默认值也不会有大问题,但喷雾锥角必须认真对待,最好有厂家提供的实测值。如果厂家手册里给的是"SMD=50μm"这类结果,可以直接用于验证,不要反过来当输入。
4.2 LISA模型关键参数在求解器中的配置
在Fluent的DPM设置面板里,选择LISA模型后会出来一组参数:upstream pressure、injector inner diameter、sheet thickness coefficient、spray angle、dispersion angle等。upstream pressure对应喷嘴上游压力,injector inner diameter是喷嘴出口直径,sheet thickness coefficient默认取12.0左右,这个值控制液膜初始厚度,偏大相当于液膜更厚、破碎更慢、粒径偏大。
spray angle是喷雾锥角,dispersion angle是液滴的随机扩散角,后者通常设成与喷雾锥角成比例的小量,用来模拟液滴的湍流扩散。这一组参数里最容易出问题的是sheet thickness coefficient和dispersion angle的匹配:如果厚度系数偏大而扩散角偏小,计算出的喷雾形态会又窄又粗;反过来则喷雾过散、粒径偏小。我的标定顺序是先调spray angle匹配喷雾锥角,再调sheet thickness coefficient匹配SMD,最后微调dispersion angle匹配粒径分布的宽度。
配置完模型参数,还需要注意注入方式的选择。压力旋流喷嘴建议用cone injection加solid-cone分布,不要用hollow-cone,因为旋流雾化在近喷嘴区域往往更接近实锥;如果实验显示空心锥特征明显,再改成hollow-cone并配合swirl parameter调整切向速度分量。
4.3 结果后处理与验证指标
计算完成后,后处理阶段最核心的两个量是SMD和喷雾贯穿距。SMD可以在后处理界面里对某一截面上的液滴做面积-体积加权平均,喷雾贯穿距则用液相体积分数或液滴数量密度阈值来判断。这两个量分别反映破碎模型的"粒径预测能力"和"动量/几何预测能力",如果有实验数据,应该同时对比,而不是只看一个量。
如果SMD偏大,优先怀疑sheet thickness coefficient和initial droplet diameter相关参数;如果SMD对了但贯穿距偏短,问题多半出在气液动量交换或液滴拖曳力模型上,而不是破碎模型本身。这是很多人容易搞混的地方——喷雾形态和贯穿问题并不一定都能靠破碎模型解决。还有一点,液滴的二次破碎不会在喷嘴出口立刻完成,至少要监测不同轴向距离上的SMD变化曲线,才能判断模型对"液滴沿程细化"的描述是否合理。
我还习惯把液滴粒径分布导成Rosin-Rammler分布的一组参数,和实验粒径分布曲线叠在一张图里看。因为SMD只是一个平均量,两个工况可能SMD相同但粒径分布形态完全不同;这时就要回到dispersion angle和分布指数去调整。这些后处理细节做多了,你对模型参数的理解会从"调数字"变成"调物理"。
5. 常见问题排查与避坑技巧
5.1 为什么算出来的SMD总是偏大
这是喷雾CFD里反馈最多的问题,没有之一。SMD系统性偏大,最常见的三个原因:一是初次破碎产物的初始粒径偏大,源头在喷嘴参数或模型常数不贴合实际工况;二是湍流扩散和气液相对速度被低估,液滴得不到足够的剪切力去二次破碎;三是网格太粗导致液滴与环境气体的相对速度被平滑掉,破碎强度下降。
排查思路我建议按"先看单液滴行为,再看统计结果"的顺序来。先关闭蒸发和碰撞模型,只保留破碎模型,输出单个代表性液滴的粒径随时间的演化曲线,如果这条曲线在短时间内没有明显下降,说明破碎强度本身不足;如果单液滴破碎正常但喷雾场统计结果偏大,那么问题就在液滴分布或相对速度的计算上。这个排查顺序能快速定位模型问题还是场耦合问题。
5.2 喷雾锥角和实验对不上
喷雾锥角偏差是另一个高频问题。锥角偏窄,通常意味着液滴的径向速度分量不够,这时候需要检查喷嘴的swirl参数和spray angle设置,而在LISA模型中还要检查液膜厚度的初始分布。锥角偏宽,则可能是数值耗散太强或者湍流扩散被高估,可以试着降低离散相与连续相的双向耦合频率,或者检查近喷嘴区域是否存在回流区把液滴往外带。
还有一类特殊情况,实验照片里看到的"锥角"其实是液滴数密度较高区域的包络,不是个别液滴的最外侧轨迹。后处理时如果用了过低的数密度阈值,包络面会明显外扩,造成"计算锥角偏大"的假象。我在对比实验时,会同步输出液滴通量云图,用液滴质量通量最高的波峰位置来定义锥角,而不是简单地取最外侧粒子包络,这样和实验照片的对应关系更可靠。
5.3 液滴穿网格和不稳定的处理
液滴穿过计算网格边界、不被壁面捕捉,是Lagrangian喷雾仿真里非常头疼的问题。最常见的原因是时间步长过大,液滴在一个时间步内移动了多个网格尺度,与壁面的碰撞检测漏判。解决方法是缩短时间步长,或在壁面附近加密网格,让液滴在每个时间步内的位移小于边界层第一层网格厚度。
另一个不稳定来源是颗粒源项与连续相流场之间的双向耦合震荡。当喷雾流量较大时,液滴对气相的动量源项很强,如果每步都做完全双向耦合,流场会出现数值振荡。我的经验做法是设置耦合频率为5到10步一次,或者用欠松弛的方式加载颗粒源项,把源项的松弛因子调到0.5以下,流场和喷雾的稳定性都能得到明显改善。
5.4 破碎模型参数标定的几条心得
关于模型常数标定,我总结几条在实际项目中反复验证过的经验:
- 永远优先标定最敏感的常数,对WAVE是B1,对KHRT是C_RT,对LISA是sheet thickness coefficient。不要在多个参数上同时微调,否则永远找不到哪个参数在起作用。
- 标定数据要多工况覆盖,至少要有高、中、低三个流量点。只用单一点标定出来的参数,外推到其他工况往往非常脆弱。
- 标定完成后的参数一定要记录适用的韦伯数和雷诺数范围,写进项目文档。否则半年后换个人接手,看到一组常数值完全不知道能不能用。
- 如果实验数据本身不确定性较大,比如粒径测量来自不同批次,先评估数据可重复性再决定要不要以它为标定基准。
6. 数据驱动方法带来的新视角
6.1 为什么PINN开始被用在喷雾建模里
传统破碎模型的结构是"物理假设+经验常数",优点是计算成本低、物理可解释,缺点也很明显:经验常数的标定依赖实验,跨工况泛化能力有限。而PINN的核心思路是把物理方程作为约束嵌入神经网络的损失函数,让网络在拟合数据的同时满足控制方程。用在喷雾破碎上,比较现实的切入点是用它来建立"工况参数到模型常数"的映射,替代人工标定的过程。
我接触到的几个尝试中,最常见的形式是把韦伯数、雷诺数、气液密度比、黏度比作为输入,输出WAVE模型的B1或KHRT的C_RT。训练数据来自实验粒径分布或高精度解析解,损失函数里同时加上模型预测与实验的偏差项,以及模型常数的平滑性约束。这样做出来的效果是,模型常数可以随工况连续变化,而不再是一组固定值,理论上能够改善跨工况的预测精度。
6.2 轻量尝试路径与展望
对于普通CFD工程师来说,直接上手PINN的门槛不低,但也不是无从下手。可以先用Python加PyTorch搭一个简单MLP网络,输入输出各两三个变量,训练数据用自己算例里已经标定好的几组工况参数;损失函数里加入一个简单的物理约束项,比如"粒径预测结果必须随韦伯数单调下降",然后对比一下纯数据拟合和带物理约束的拟合效果。这个流程不需要改CFD求解器,就能直观感受到PINN的"物理约束"带来的泛化差异。
我自己的体会是,数据驱动方法在喷雾破碎领域的价值不在于取代传统模型,而在于把传统模型里"人对实验数据的经验判断"自动化、可复用化。CFD工程师熟悉物理、熟悉数据、又了解模型痛点,反而是做这种结合的最佳人选。当然,现阶段工业落地还是要以传统模型为主,用PINN做辅助标定和不确定性分析是更务实的方向。
回到最初的主题,喷雾破碎模型从来不是一个可以"一选了之"的设置项。它背后是几十年研究者对液滴破碎物理的逐步逼近,也是CFD工程中精度和成本反复博弈的缩影。把模型原理、适用边界、参数敏感性和标定方法串起来,你才能真正让它为自己的算例服务。