Skip to content
cfd-lab:~/zh/posts/mach-architect● online

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

NOTE #008DAY WED CFD기법DATE 2026.03.11UPDATED 2026.10.19READ 2 min read#CFD#Compressible-Flow#Interactive#Isentropic#Nozzle

Mach Architect: 通过设计喷管学习可压缩流

γ=1.4时喉部阻塞压力比为0.5283,出口马赫数2所需面积比约为1.6875。背压落在这两者之间,正激波会停在喷管内部。

Mach Architect#

只看教科书上 A/A∗A/A^* 和 Pb/P0P_b/P_0 的图,状态怎么切换并不会留在手上。

上下拖动喉部的蓝点,并用右侧滑块改变 Pb/P0P_b/P_0。出口马赫数和激波位置会一起动。

把喉部收窄,看质量流量是否顶住。把背压降到 0.5283 以下,看激波是否向出口滑。

操作方法

  • 喷管形状: 在 SVG 上拖动蓝色控制点(control point)上下调整截面积
  • 背压: 右侧滑块调节 Pb/P0P_b/P_0
  • 关卡选择: 上方 LV1~LV4 按钮切换

关卡解析

Level 1: 亚音速加速#

最基础的问题。在收缩喷管中,亚音速流动随截面减小而加速。 等熵关系式:

AA∗=1M[2γ+1(1+γ−12M2)]γ+12(γ−1)\frac{A}{A^*} = \frac{1}{M}\left[\frac{2}{\gamma+1}\left(1+\frac{\gamma-1}{2}M^2\right)\right]^{\frac{\gamma+1}{2(\gamma-1)}}

由于 M<1M < 1,AA 减小时 MM 增大。目标是出口马赫数 0.45~0.55。

Level 2: 阻塞#

流动**阻塞(choke)**时喉部 M=1M = 1。此状态下继续降低背压不会改变喉部上游的质量流量。

临界压力比 (γ=1.4\gamma = 1.4):

P∗P0=(2γ+1)γγ−1=0.5283\frac{P^*}{P_0} = \left(\frac{2}{\gamma+1}\right)^{\frac{\gamma}{\gamma-1}} = 0.5283

将背压降至该值以下,或将喉部做得足够窄。

Level 3: 超音速喷管设计#

C-D 喷管中,喉部之后截面再次扩大就会加速到超音速。要达到 M=2M = 2:

AeA∗=12[2γ+1(1+γ−12⋅4)]γ+12(γ−1)≈1.6875\frac{A_e}{A^*} = \frac{1}{2}\left[\frac{2}{\gamma+1}\left(1+\frac{\gamma-1}{2}\cdot 4\right)\right]^{\frac{\gamma+1}{2(\gamma-1)}} \approx 1.6875

把 M=2M=2、γ=1.4\gamma=1.4 代进面积比,印出来的 1.6875 会原样出现。(γ−1)/2=0.2(\gamma-1)/2=0.2,M2=4M^2=4,括号里是 1+0.8=1.81+0.8=1.8。再乘 2/(γ+1)=1/1.22/(\gamma+1)=1/1.2,得到 1.5。指数 (γ+1)/(2(γ−1))(\gamma+1)/(2(\gamma-1)) 是 3。1.53=3.3751.5^3=3.375。乘上 1/M=1/21/M=1/2,就是 1.6875。喉部为 1 时,出口必须是这个倍数才能到 M=2M=2。

亚音速目标 0.45 到 0.55 是同一个式子的另一侧。M=0.45M=0.45 时 A/A∗≈1.45A/A^*\approx1.45,M=0.55M=0.55 时约 1.25。区间很窄。喉部稍动一点,出口马赫数就出了窗口。喉部之后必须变宽才加速,这和拉伐尔喷管反过来的地方是同一个关系。

背压要降到设计压力 Pb_design,没有激波的超音速才会一直走到出口。

Level 4: 激波定位#

背压高于设计压力但低于临界压力时,喷管内部会出现正激波(normal shock)。

激波前后关系:

M22=M12(γ−1)/2+1γM12−(γ−1)/2M_2^2 = \frac{M_1^2(\gamma-1)/2 + 1}{\gamma M_1^2 - (\gamma-1)/2} P2P1=2γM12−(γ−1)γ+1\frac{P_2}{P_1} = \frac{2\gamma M_1^2 - (\gamma-1)}{\gamma+1}

把 M1=2M_1=2 代进激波关系,约分很干净。M22=(4×0.2+1)/(1.4×4−0.2)=1.8/5.4=1/3M_2^2=(4\times0.2+1)/(1.4\times4-0.2)=1.8/5.4=1/3,所以 M2≈0.577M_2\approx0.577。压力比是 (2×1.4×4−0.4)/2.4=10.8/2.4=4.5(2\times1.4\times4-0.4)/2.4=10.8/2.4=4.5。按马赫数 2 设计,却把背压留在设计值之上,管内某处压力会跳到 4.5 倍,马赫数落到 0.58 附近。

背压升高,激波往喉部走。背压降低,激波往出口走。第 4 关的目标 x=0.65∼0.80x = 0.65 \sim 0.80 就是把这次跳跃放在出口附近。


模拟器的物理模型

本模拟器基于以下假设:

  1. 1D 准一维(quasi-1D)流: 仅考虑截面积变化,忽略粘性/传热
  2. 等熵流(激波除外): P0P_0, T0T_0 守恒
  3. 量热完全气体: γ=1.4\gamma = 1.4(空气)
  4. 正激波: 应用 Rankine-Hugoniot 关系式
  5. 喷管形状: Hermite 插值生成光滑的截面积分布

激波位置通过离散搜索满足出口压力条件的位置。激波前方为等熵超音速,后方为反映总压损失的等熵亚音速。


设计背压留得太高, M=2 会被激波吃掉#

面积比配到 1.6875,背压却留在设计值之上,第 3 关做出的 M=2M=2 会在管内掉到 M2≈0.577M_2\approx0.577。压力跳到 4.5 倍。背压一落在 0.5283 和设计值之间,喉部仍然阻塞,超音速段就在激波前停住。

把这次跳跃放到网格上,得故意给它一个厚度。故意把激波涂糊的人工黏性就是这个选择。这个模拟器只离散地找位置,激波厚度一个格子也不分辨。背压滑块把 xx 从 0.65 挪到 0.80 时,先看压力比有没有离开 4.5。

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