Skip to content
cfd-lab:~/zh/posts/2026-07-14-kelvin-helmho…● online

本文译自作者的韩语原文。 阅读原文(한국어)

NOTE #102DAY TUE 유체역학DATE 2026.07.14UPDATED 2026.10.19READ 5 min read#Kelvin-Helmholtz#Shear-Instability#Vortex#Stratified-Flow#Flow-Phenomena

挂在天上的波浪 — 开尔文-亥姆霍兹不稳定性

密度相等且没有重力与表面张力时,增长率等于 kΔU/2,短波会一路跑掉。

天空偶尔挂着一排像冻住的海浪。钩状波峰卷起来,排得像海滩上的碎浪。照片像合成的。云是真的。开尔文-亥姆霍兹云。空气把波浪破碎前的一瞬间抄了下来。

这些钩子从快流与慢流相接的薄边界长出来。剪切层。这层边界为什么卷成漩涡,什么时候卷、什么时候安静,都压在一个增长率公式里。最后把一层薄涡层卷起来,做出那些钩子。

拨动剪切 ΔU\Delta U、密度比、重力、表面张力的滑条,增长率曲线要么贴到地上,要么橙色带从两侧收窄。

UNSTABLE — fastest growth at λ* ≈ 0.79 cm (σ ≈ 597.78 /s)

把 ΔU\Delta U 降到 6 附近,曲线翻成 “STABLE”。加大重力或表面张力,不稳定带从两边缩短。密度比靠近 1 时,很弱的剪切也会把曲线顶起来。

挂在天上的波浪

开尔文-亥姆霍兹云并非唯一。同样的事到处都在发生。木星条纹裂开的边界,海水中不同密度的水互相滑动形成的内波,往咖啡里倒牛奶时瞬间出现的螺旋。就连一缕香烟的烟直直上升后突然散乱的那个点,也是同一个道理。

它们有一个共同点。两层速度不同的流体并排流动。上层快,下层慢。两者之间那层薄薄的边界在滑动。这个滑动(剪切)就是种子。

直觉上,你会觉得两股流只要并排擦过去就好。实际并非如此。边界面上哪怕只有极小的扰动,那扰动也会自行增长。这就是开尔文-亥姆霍兹不稳定性(由剪切引起的界面不稳定)。

两股流滑动时发生了什么

假设边界面上鼓起了一个小峰。上方的快流必须越过它。越过峰顶的通道变窄了。要保持流量相同,狭窄处的速度就会加快。

速度快,压强就低。这是伯努利原理(流动快的地方压强低)。峰顶上方压强降低,峰就被进一步向上吸。而在波谷处则相反,流动变慢、压强升高,波谷被压得更深。

归纳一下就是:峰更高,谷更深。小扰动喂养自己,这是一种正反馈。一旦开始就停不下来。这就是不稳定性的核心机制。

这里有一个常见误解:“重的水在下、轻的空气在上,不是很稳定吗?”只看重力,确实如此。但只要剪切足够强,就能压过重力的稳定化作用。稳定的分层在强风面前也会崩溃。

色散关系 — 哪些波长会增长

这场角力可以压缩成一个方程。上层(密度 ρ1\rho_1)与下层(密度 ρ2\rho_2)以相对速度 ΔU\Delta U 互相滑动,界面上作用着重力 gg 和表面张力 TT。波数为 kk(单位长度内的波数)的扰动增长的速度,也就是增长率 σ\sigma,如下所示。

σ(k)=kρ1ρ2(ρ1+ρ2)2(ΔU)2−g(ρ2−ρ1)(ρ1+ρ2) k−Tkρ1+ρ2\sigma(k) = k\sqrt{\frac{\rho_1\rho_2}{(\rho_1+\rho_2)^2}(\Delta U)^2 - \frac{g(\rho_2-\rho_1)}{(\rho_1+\rho_2)\,k} - \frac{T k}{\rho_1+\rho_2}}

σ\sigma 是扰动变大的速度。根号里第一项是剪切(引起不稳定),第二项是重力(重流体在下则起稳定作用),第三项是表面张力(把界面绷紧而起稳定作用)。

若根号内为正,σ\sigma 为实数,扰动指数增长。若为负,σ\sigma 为虚数,扰动只振荡而不增长。不稳定条件就是根号内为正,也就是剪切项胜过其余两项。

ρ1ρ2ρ1+ρ2(ΔU)2>g(ρ2−ρ1)k+Tk\frac{\rho_1\rho_2}{\rho_1+\rho_2}(\Delta U)^2 > \frac{g(\rho_2-\rho_1)}{k} + T k

看看最纯粹的情形。若两层密度相等(ρ1=ρ2=ρ\rho_1=\rho_2=\rho),且没有重力和表面张力,公式会简化得惊人。

σ=k ΔU2\sigma = \frac{k\,\Delta U}{2}

波数越大,也就是波长越短,增长越快。若完全没有刹车,任意短的波长都会爆炸式增长。在真实流动中,粘性会在短波长一端切断这种失控。

重力和表面张力踩下刹车

两个刹车拦住不同的波长。重力项正比于 1/k1/k,因此压制长波(小 kk)。表面张力项正比于 kk,因此压制短波(大 kk)。二者之间留下一条不稳定波长的带。

若剪切较弱,这条带根本打不开。加大剪切,到某一刻会在某个特定波长处最先突破不稳定。这个阈值正是风开始在平静水面掀起波浪的最小风速。

ΔUmin⁡2=2(ρ1+ρ2)ρ1ρ2g T (ρ2−ρ1)\Delta U_{\min}^2 = \frac{2(\rho_1+\rho_2)}{\rho_1\rho_2}\sqrt{g\,T\,(\rho_2-\rho_1)}

代入空气与水,可得 ΔUmin⁡≈6.6 m/s\Delta U_{\min} \approx 6.6\ \mathrm{m/s},最先突破的波长约为 1.7 cm。这是开尔文在19世纪算出的值。(真实水面由于粘性,在更低的风速下也会起涟漪——这是理想理论的局限。)

在连续分层的流动中,用理查森数(浮力与剪切之比)来判定。Ri=N2/(dU/dz)2\mathrm{Ri} = N^2/(dU/dz)^2,其中 NN 是浮力频率。根据迈尔斯-霍华德定理,在 Ri<1/4\mathrm{Ri} < 1/4 的某处可能出现不稳定。它是预测大气与海洋中何时爆发湍流的实用判据。

前面曲线上的橙色带,就是在这个门槛上第一次打开的窗口。卷起来之后涡核里的速度分布,和 强制涡与自由涡 分成的那张图叠在一起。

用 Python 画出增长率曲线#

把公式直接搬进代码,就能立刻看出在任意风速下哪个波长最先增长。

import math
 
def kh_growth_rate(k, dU, rho_u, rho_l, g=9.81, T=0.072):
    """开尔文-亥姆霍兹模态的增长率 sigma(k)。"""
    shear   = rho_u * rho_l * dU**2 / (rho_u + rho_l)**2   # 不稳定化 (剪切)
    gravity = g * (rho_l - rho_u) / ((rho_u + rho_l) * k)  # 稳定长波
    tension = T * k / (rho_u + rho_l)                      # 稳定短波
    disc = shear - gravity - tension
    return k * math.sqrt(disc) if disc > 0 else 0.0
 
rho_air, rho_water = 1.225, 1000.0
ks = [1 + 0.2 * i for i in range(4000)]
for dU in (3.0, 6.6, 10.0):
    s = [kh_growth_rate(k, dU, rho_air, rho_water) for k in ks]
    smax = max(s)
    if smax > 0:
        kstar = ks[s.index(smax)]
        lam = 2 * math.pi / kstar * 100   # cm
        print(f"dU={dU:4.1f} m/s -> unstable, lambda*={lam:5.2f} cm, sigma_max={smax:6.2f} /s")
    else:
        print(f"dU={dU:4.1f} m/s -> stable (no waves)")

运行结果如下。

dU= 3.0 m/s -> stable (no waves)
dU= 6.6 m/s -> unstable, lambda*= 1.69 cm, sigma_max=  4.89 /s
dU=10.0 m/s -> unstable, lambda*= 0.78 cm, sigma_max=183.30 /s

把涡数和剪切 ΔU\Delta U 的滑条往上推,卷起的速度和钩子的间距一起变。

一条平缓的线几秒内缠成猫眼。ΔU\Delta U 加大就卷得更快。个数增加,钩子就切得更细。Reset 回到平坦的波浪。

风速每秒 3 m 时水面是静的。一过 6.6 m/s,最先长出来的是 λ∗=1.69\lambda^*=1.69 cm、σmax⁡=4.89\sigma_{\max}=4.89 /s 的涟漪。10 m/s 时 λ∗=0.78\lambda^*=0.78 cm,σmax⁡=183.30\sigma_{\max}=183.30 /s。风速从 6.6 到 10,大约 1.5 倍,增长率却从 4.89 到 183.30,大约 37 倍。刚过门槛,根号里面很薄。

代码里的 1.69 cm 对应 k=2π/0.0169k=2\pi/0.0169,大约 372 m−1372\ \mathrm{m}^{-1}。把刹车全部拿掉的 σ=kΔU/2\sigma=k\Delta U/2,代入 ΔU=6.6\Delta U=6.6,σ\sigma 是每秒上千。输出的 4.89 /s 差着一个量级。6.6 m/s 是剪切与重力、表面张力几乎抵消的地方。密度是空气 1.225、水 1000,g=9.81g=9.81,T=0.072T=0.072。这四个数做出 ΔUmin⁡≈6.6\Delta U_{\min}\approx 6.6 m/s。波长从 1.69 cm 收到 0.78 cm,是短波一侧开始占上风。

线性之后才出现猫眼

不稳定刚开始长的时候,线性理论是对的。峰一大,故事就变了。界面不会停在波浪上,而是整个卷起来。薄涡层缠成一列涡。这就是钩状云,斯图尔特猫眼(cat's eye)。

增长率公式只看见线性阶段,也就是波刚变大的那段。猫眼是非线性阶段。界面在拉自己。每个点用无粘诱导速度拽邻居。波先立起来,然后才卷。

Ri 超过 1/4,单靠剪切卷不起来#

Ri=N2/(dU/dz)2\mathrm{Ri}=N^2/(dU/dz)^2 大于 1/4 时,迈尔斯-霍华德定理不允许不稳定。分层压住了剪切。空气与水的界面上,ΔU\Delta U 低于 6.6 m/s,输出也是 stable。3 m/s 那一行一个波都不打开。

同一条界面若只靠张力断成液滴,是 液柱的 Plateau–Rayleigh 断裂。这里只看剪切能不能压过那份张力。像 σ=kΔU/2\sigma=k\Delta U/2 那样没有刹车,短波会一直赢下去。粘性把那一头切掉。天上的钩子,是切断之前剪切已经赢了的位置。

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