Skip to content
cfd-lab:~/zh/posts/2026-07-02-froude-hydrau…online
NOTE #092DAY THU 유체역학DATE 2026.07.02READ 4 min readWORDS 2,009#유체역학#Froude-Number#Hydraulic-Jump#Open-Channel-Flow#유동현상

厨房水槽里每天都有的激波 — 弗劳德数与水跃

明渠流的比能、临界水深,以及浅水与可压缩流的相似

打开水龙头,让水落到平坦的水槽底部。水冲击点周围铺开一层薄而快的水膜,然后在某个半径处水突然堆起,形成一圈厚厚的环。这个环就是水跃(hydraulic jump)。厨房里每天发生的这个现象,令人惊讶的是竟遵循与超声速喷管中诞生的激波相同的方程。本文用一段小小的 Python 代码和两个仿真,讲清楚支配明渠(open channel)流动的弗劳德数是什么、为什么水深会在瞬间跃升、以及浅水如何模仿可压缩气体。读到最后,你会明白水槽里的环与拉瓦尔喷管中的激波为何是表亲。

不填满管道的流动#

明渠是顶部向大气敞开的水道。河流、排水沟、灌溉渠都属于这一类。充满封闭管道流动的水,靠进出口的压差被推动。明渠里的水不同。渠底坡度和重力驱动流动。

关键在于自由表面可以自由起伏。波沿着这个自由表面传播。在浅水中,小的表面波传播速度只由水深决定。

c=ghc = \sqrt{g h}

其中 cc 是浅水波(shallow-water wave)的传播速度,gg 是重力加速度,hh 是水深。水越深,波越快。

比能与临界水深#

以渠底为基准、把流动所具有的能量用水头(head,长度单位的能量)表示出来,就是比能(specific energy)。在宽度 bb 恒定的矩形渠道中,把单位宽度流量记为 q=Q/bq = Q/b,则

E=h+u22g=h+q22gh2E = h + \frac{u^2}{2g} = h + \frac{q^2}{2 g h^2}

第一项 hh 是位能(水深),第二项是动能。固定 qq 而把 EE 画成 hh 的函数,会出现一条有趣的曲线。水深太浅则流速变大、动能剧增;太深则位能变大。在两者之间的某处,EE 取得最小值。

求解 dE/dh=0dE/dh = 0 就得到该点的水深。

hc=(q2g)1/3h_c = \left( \frac{q^2}{g} \right)^{1/3}

这个 hch_c 就是临界水深(critical depth)。在此点 Emin=32hcE_{\min} = \tfrac{3}{2} h_c,而流速恰好等于波速:uc=ghcu_c = \sqrt{g h_c}

在下面的图中亲手操作一下。改变 qq 和水深 hh,看看你落在曲线的哪一支上。

u = q/h = 4.00 m/s
Fr = u/√(gh) = 2.86
E = 1.02 m
h_c = 0.40 m
supercritical (사류)

请注意,同一个 EE 对应两个水深:上支(深而慢的流动)和下支(浅而快的流动)。越过临界水深 hch_c 的鼻尖,两个世界就分开了。

弗劳德数:缓流与急流#

流速与波速之比决定流动的性格。这个无量纲数就是弗劳德数(惯性力与重力波速度之比)

Fr=ughFr = \frac{u}{\sqrt{g h}}

Fr<1Fr < 1 时,流速比波慢。下游障碍物造成的水面变化能够逆流而上传回上游。这种深而平缓的流动称为缓流(subcritical flow)。当 Fr>1Fr > 1 时,流速超过波速。下游的信号到不了上游。这种浅而快的流动是急流(supercritical flow)Fr=1Fr = 1 是临界状态,此时水深恰为 hch_c

你大概已经有感觉了。弗劳德数扮演着与气体动力学中马赫数(流速与声速之比)完全相同的角色。就像声音在可压缩气体中传递信息一样,在明渠中浅水波传递信息。急流对应超声速,缓流对应亚声速。

水跃:水变厚的瞬间#

当急流必须变为缓流时,麻烦出现了。在比能曲线上,从下支平滑地过渡到上支没有路可走。自然用一个不连续来解决:浅而快的水突然跃升为厚而慢的水。这就是水跃。

联系水跃前后的关系,不来自能量,而来自动量守恒,因为水跃内部的湍流滚轴(roller)会毫不留情地吞噬能量。在水跃两侧配平动量通量和静水压力,就在跃前水深 h1h_1 与跃后水深 h2h_2 之间得到共轭水深(conjugate depth)关系。

h2h1=12(1+8Fr121)\frac{h_2}{h_1} = \frac{1}{2} \left( \sqrt{1 + 8\,Fr_1^2} - 1 \right)

Fr1Fr_1 是水跃之前(急流)的弗劳德数。水跃中损失的比能可以干净地求出。

ΔE=(h2h1)34h1h2\Delta E = \frac{(h_2 - h_1)^3}{4\, h_1 h_2}

这个损失正是工程师在大坝溢洪道和消力池中故意制造水跃的原因。他们把快水破坏性的动能散入湍流,保护下游河床免受冲刷。

在下面的仿真中改变上游侧的 Fr1Fr_1。这是从侧面看,薄薄的急流经过水跃变为厚厚的缓流的图。

h2/h1 = 3.77Fr2 = 0.41ΔE/h1 = 1.41

Fr1Fr_1 降到 1.5 附近,水跃减弱,水面平缓地隆起。升到 5 以上,h2/h1h_2/h_1 超过 6 倍,白色泡沫滚轴变得剧烈。

用代码再现#

我们直接计算共轭水深和能量损失。取单位宽度流量 q=0.8 m2/sq = 0.8\ \mathrm{m^2/s},跃前水深 h1=0.2 mh_1 = 0.2\ \mathrm{m}

import numpy as np
 
g = 9.81  # m/s^2
 
def froude(u, h):
    """弗劳德数 = 流速 / 浅水波速度。"""
    return u / np.sqrt(g * h)
 
def critical_depth(q):
    """单位宽度流量 q 对应的临界水深(比能最小)。"""
    return (q**2 / g) ** (1.0 / 3.0)
 
def specific_energy(h, q):
    """比能 E = h + q^2 / (2 g h^2)。"""
    return h + q**2 / (2.0 * g * h**2)
 
def conjugate_depth(h1, q):
    """对跃前水深 h1(急流)求跃后水深 h2。"""
    u1 = q / h1
    fr1 = froude(u1, h1)
    return 0.5 * h1 * (np.sqrt(1.0 + 8.0 * fr1**2) - 1.0)
 
def jump_dissipation(h1, h2):
    """水跃中损失的比能(湍流耗散)。"""
    return (h2 - h1)**3 / (4.0 * h1 * h2)
 
q, h1 = 0.8, 0.2
u1 = q / h1
h2 = conjugate_depth(h1, q)
u2 = q / h2
 
print(f"上游(急流)  u1={u1:.2f} m/s  Fr1={froude(u1,h1):.2f}")
print(f"水跃后      h2={h2:.3f} m  u2={u2:.2f} m/s  Fr2={froude(u2,h2):.2f}")
print(f"临界水深    hc={critical_depth(q):.3f} m")
print(f"能量损失    dE={jump_dissipation(h1,h2):.3f} m")

输出如下。

上游(急流)  u1=4.00 m/s  Fr1=2.86
水跃后      h2=0.714 m  u2=1.12 m/s  Fr2=0.42
临界水深    hc=0.403 m
能量损失    dE=0.238 m

Fr1=2.86Fr_1 = 2.86 的急流经过水跃变成了 Fr2=0.42Fr_2 = 0.42 的缓流。水深变厚 3.6 倍,流速以同样的倍率变慢(连续方程 uh=constu h = \text{const})。代价是 0.238 m 的比能散入湍流。跃后水深 h2=0.714h_2 = 0.714 m 大于临界水深 hc=0.403h_c = 0.403 m,这证实了流动现在是缓流。

当浅水冒充气体#

这里是本文的精华。宽度恒定的浅水槽中定常流的连续方程是 uh=constu h = \text{const}。截面恒定的管道中可压缩气体定常流的连续方程是 ρv=const\rho v = \text{const}。水深 hh 与气体密度 ρ\rho 精确对应。

对浅水能量方程 h+u2/(2g)=consth + u^2/(2g) = \text{const} 求微分得到 udu+gdh=0u\,du + g\,dh = 0,代入波速 uc=ghu_c = \sqrt{g h},就会发现浅水波占据着与气体中声波相同的位置。汇总起来就得到下面的相似。

浅水可压缩气体
水深 hh密度 ρ\rho
浅水波速度 gh\sqrt{gh}声速 κRT\sqrt{\kappa R T}
弗劳德数 FrFr马赫数 MM
急流 / 缓流超声速 / 亚声速
水跃激波

这个相似对应于 κ=2\kappa = 2 的假想气体(hTh \leftrightarrow Th2ph^2 \leftrightarrow p)。所以早期的航空研究者不用昂贵的超声速风洞,而是把物体放进"浅水水槽(shallow water table)",通过观察水面的水跃来定性研究激波形态。水槽里的环之所以像二维物体前的弓形激波(bow shock),正是因为这个原因。

值得记住的几点#

  • 弗劳德数 Fr=u/ghFr = u/\sqrt{gh} 是明渠流的马赫数。Fr<1Fr<1 为缓流(平缓),Fr>1Fr>1 为急流,Fr=1Fr=1 为临界。
  • 水跃是急流变为缓流的不连续。共轭水深 h2/h1=12(1+8Fr121)h_2/h_1 = \tfrac{1}{2}(\sqrt{1+8Fr_1^2}-1) 来自动量守恒而非能量守恒,剩余的能量耗散为湍流。
  • 浅水与可压缩流的相似把水深对应到密度、浅水波对应到声波、水跃对应到激波。你厨房水槽里的水环,是你每天都在做的激波实验。

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