Skip to content
cfd-lab:~/zh/posts/2026-07-07-tab-droplet-b…online
NOTE #097DAY TUE 유체역학DATE 2026.07.07READ 4 min readWORDS 2,127#Atomization#Weber-Number#Droplet-Breakup#TAB-Model#Multiphase

雨滴为什么不是泪滴形 — Weber数与Taylor类比破碎(TAB)

用TAB模型再现液滴在气流中破碎的原理

伞的图标和表情符号都把雨滴画成泪滴形——上尖下圆的那种形状。现实中根本没有这样的雨滴。直径超过2毫米的大液滴会被压成底部扁平的汉堡面包形。再大一些,中央会像口袋一样鼓起,最后破裂。

这篇文章用数字来处理这种"破裂"。用一个Weber数就能判定液滴在气流中是否、何时破碎。然后取O'Rourke和Amsden于1987年建立的TAB(Taylor Analogy Breakup)模型,在Python里让一个液滴振荡,把它炸开。这是用一根弹簧预测液滴命运的故事。

雨滴不是泪滴

下落的液滴内部有两种力在较量。一种是周围空气拍打表面的空气动力,把液滴向两侧压扁。另一种是表面张力,想把液滴重新拉回球形。

对小液滴而言,表面张力完全占上风。所以小液滴永远是球形。液滴越大,或相对速度越快,空气动力就越强。到某个时刻,表面张力再也撑不住。液滴变扁、鼓起,最终碎成细小的液滴。这个过程称为二次破碎(secondary breakup),与喷嘴刚喷出的液柱变成液滴的一次破碎相区别。

柴油发动机、火箭喷注器、农药喷雾。所有把燃料或液体打碎的装置都建立在这一现象之上。液滴越小,表面积越大,蒸发和燃烧越快。

Weber数 — 惯性战胜表面张力的刻度#

把两种力的比值化为一个数,就得到Weber数(惯性力/表面张力之比)。

We=ρgurel2dσWe = \frac{\rho_g\, u_{rel}^2\, d}{\sigma}

其中ρg\rho_g是气体密度,urelu_{rel}是液滴与气体的相对速度,dd是液滴直径,σ\sigma是表面张力。分子是气体拍打液滴的动压,分母是表面张力抓住液滴的力。

WeWe小的时候,液滴只是安静地振荡。WeWe超过某个临界值,液滴就破碎。实验上这个临界Weber数大约在12附近。无论水滴还是燃料滴,在这个值以上都无法幸存。

这里还要加上衡量粘性作用的第二个无量纲数:Ohnesorge数(粘性力/√(惯性·表面张力))。

Oh=μlρlσdOh = \frac{\mu_l}{\sqrt{\rho_l\, \sigma\, d}}

μl\mu_l是液体粘度,ρl\rho_l是液体密度。粘性大的液滴(想象一滴蜂蜜)对变形的阻力很大。OhOh增大会把临界Weber数往上推,也就是更难破碎。

Taylor的类比:把液滴挂在弹簧上#

Weber数只告诉你液滴"会不会破"。要知道"何时、如何"破,必须求解液滴随时间的变形。这里出现了G.I. Taylor的洞见。他把振荡并变形的液滴,对应成一个弹簧–质量–阻尼振子

把三种力一一配对。弹簧的回复力是表面张力。作用在质量上的外力是气体的空气动力阻力。阻尼力是液体的粘性。把这个类比写成方程,就得到关于变形量yy的二阶常微分方程。

d2ydt2=CFCbρgρlu2r2Ckσρlr3yCdμlρlr2dydt\frac{d^2 y}{dt^2} = \frac{C_F}{C_b}\frac{\rho_g}{\rho_l}\frac{u^2}{r^2} - \frac{C_k \sigma}{\rho_l r^3}\, y - \frac{C_d \mu_l}{\rho_l r^2}\frac{dy}{dt}

yy是液滴赤道鼓起的程度(无量纲变形),rr是半径。右端第一项是空气推动的强迫力,第二项是表面张力的回复,第三项是粘性阻尼。系数CF,Ck,Cd,CbC_F, C_k, C_d, C_b由实验确定,O'Rourke–Amsden分别取1/3, 8, 5, 1/21/3,\ 8,\ 5,\ 1/2

当强迫力与回复力平衡,液滴会稳定在某个定常变形yeqy_{eq}

yeq=CFCbCkWery_{eq} = \frac{C_F}{C_b\, C_k}\, We_r

WerWe_r是以半径为基准的Weber数。要点在于变形与Weber数成正比。Weber翻倍,液滴也压扁一倍。

变形参数 y 与破碎的扳机#

TAB模型的规则很简单。一旦y>1y>1,液滴就破碎。y=1y=1是液滴赤道的鼓起等于半径的时刻。振幅增大到那个程度,液滴就无法保持圆形。

这里无阻尼振荡的性质很关键。从静止状态突然受到强迫力,振子不会停在定常值yeqy_{eq},而是过冲,最大达到2yeq2y_{eq}。所以即使yeqy_{eq}只有0.5,也就是定常变形只有一半,也可能在第一次振荡就达到y=1y=1而破裂。这种过冲在理论上降低了临界Weber数。

在下面的模拟中亲自操作一下。左边是迎着气流的液滴,右边是变形y(t)y(t)的轨迹。

把Weber调到12以下,yy曲线够不到红线(y=1y=1),只是振荡。调到12以上,第一个峰就越过红线,液滴粉碎。把Ohnesorge调大,曲线很快平息。粘性吃掉了振荡,在相同Weber下也能幸存。

Python — 让一个液滴振荡到破裂#

把上面的类比直接搬进代码。用无量纲时间积分,寻找yy越过1的时刻。

import numpy as np
 
def weber(rho_g, u, d, sigma):
    """气体惯性与表面张力之比(以直径为基准)。"""
    return rho_g * u**2 * d / sigma
 
def tab_breakup(We, Oh, dt=0.01, t_max=40.0):
    """积分无量纲TAB振子,返回破碎时刻(无量纲tau)。
    y>1 表示破碎;到最后 y<1 则返回 None(幸存)。"""
    C_F, C_k, C_d, C_b = 1/3, 8.0, 5.0, 1/2
    omega2 = C_k                       # 无量纲固有频率^2
    forcing = (C_F / C_b) * (We / 2)   # 定常变形 y_eq = forcing/omega2 = We/24
    damp = C_d * Oh * np.sqrt(C_k)     # Ohnesorge 增大阻尼
    y, ydot, t = 0.0, 0.0, 0.0
    while t < t_max:
        acc = forcing - omega2 * y - damp * ydot
        ydot += acc * dt
        y += ydot * dt
        t += dt
        if y >= 1.0:
            return t                   # 破碎!
    return None
 
for We in [6, 10, 12, 20, 40]:
    tau = tab_breakup(We, Oh=0.02)
    tag = f"破碎 tau={tau:.2f}" if tau else "幸存"
    print(f"We={We:5.1f}  ->  {tag}")

输出直接读出了临界Weber数。

We=  6.0  ->  幸存
We= 10.0  ->  幸存
We= 12.0  ->  破碎 tau=1.14
We= 20.0  ->  破碎 tau=0.74
We= 40.0  ->  破碎 tau=0.50

到We=10为止,过冲够不到1,液滴幸存。到We=12,第一个峰勉强越过红线。Weber越大,破碎时刻τ\tau越短。打得越狠,破得越快。与物理精确吻合。

破碎模式的阶梯

越过临界值并不意味着每个液滴都以同样方式破碎。随着Weber数升高,破碎的形态会变化:振荡 → 袋状(bag) → 混合(multimode) → 薄膜剥离(sheet-thinning) → 灾变(catastrophic)。每个阶段都有实验能清晰区分的大致Weber边界。

推动下面的阶梯,观察每种模式的形态。

We12We \approx 12附近的袋状破碎,是液滴中央鼓成薄膜然后爆开的最低能量破碎。当WeWe达到数百,表面本身像波浪一样剥离,成为灾变破碎。TAB模型最初就是针对袋状破碎区域设计的。所以在低Weber下吻合得好,但在Weber极大的区域(如超过40MPa的高压喷射)会低估贯穿距离。那个区域要叠加KHRT或波动破碎模型。

抄进实验记录本的

TAB模型的本质是一句话。破碎的液滴是一根振荡的弹簧,破裂就是振幅超过半径的那一刻。

  • Weber数 ≈ 12是液滴生存的边界。在它之上,表面张力输给惯性。
  • 过冲降低了临界值。即使定常变形只有一半,也可能在第一次振荡就破裂。
  • Ohnesorge数引入了粘性。粘稠的液滴振荡被阻尼,能撑得更久。

下次在暴雨中开车,看到一颗大液滴在挡风玻璃上被压扁并破裂时——那就是它越过Weber 12的瞬间。

如果对您有帮助,请分享。