Skip to content
cfd-lab:~/ja/posts/2026-06-18-de-laval-nozz…● online

この記事は著者が韓国語で書いた原文の翻訳です。 原文(한국어)を読む

NOTE #076DAY THU 유체역학DATE 2026.06.18UPDATED 2026.10.19READ 6 min read#Flow-Phenomena#Compressible-Flow#De-Laval-Nozzle#Choked-Flow#Gas-Dynamics

超音速にするには管を広げよ — 先細末広ノズルとチョーキング

背圧を0.0298より下げても質量流量は増えません。変わるのは、垂直衝撃波が拡大部に残るかどうかです。

庭のホースの先をつまむと、水は勢いよく出ます。狭めれば速くなります。ロケットノズルはスロートの後ろでラッパのように開きます。音速を過ぎた気体は、管を広げないとこれ以上速くなりません。

面積比のスライダーを1より上へ動かすと、一つの面積に付いたマッハ数の根が二つ、左右へ分かれます。

M=1M=0.20M=2.64Mach numberA / A*
subsonic: M=0.197, p/p0=0.973  |  supersonic: M=2.637, p/p0=0.047

亜音速の根は0へ降り、超音速の根は上がります。面積比4の近くで超音速の根が2.94付近に来るなら、うしろの出力はこの曲線上の一点です。

狭めると速くなる、音速を超えると逆になる

圧縮性流れ(密度が変わる流れ)では、面積と速度の関係がマッハ数で反転します。一次元等エントロピー流れの面積速度関係が、その反転を一行に書きます。

dAA=(M2−1) dVV\frac{dA}{A} = (M^2 - 1)\,\frac{dV}{V}

ここで AA は断面積、VV は速度、MM はマッハ数(速度÷音速)です。符号が、面積をどちらへ押すかを分けます。

M=0.5M=0.5 では M2−1=−0.75M^2-1=-0.75 です。速度を1%上げるには面積を0.75%減らせば足ります。M=2M=2 では M2−1=3M^2-1=3 です。同じ1%をさらに得るには面積を3%広げる必要があります。3を0.75で割ると4です。係数の大きさは4倍で、符号は逆です。ホースをつまむ感覚は、亜音速の係数0.75しか知らないのです。

亜音速(M<1M<1)では M2−1<0M^2-1<0 です。速度を上げる(dV>0dV>0)には面積を減らします(dA<0dA<0)。ホースをつまむ感覚はこちらです。

超音速(M>1M>1)では M2−1>0M^2-1>0 です。さらに速くするには面積を広げます。符号が反転します。

同じ符号の反転を衝撃波の飛びと並べて読むと、超音速では広げないと速くならない理由へ続きます。

ですから気体を音速の向こうへ送るには、まず狭めて M=1M=1 に触れさせ、その地点から広げます。先が細く後ろが広い形が、先細末広ノズル(de Laval ノズル)です。最も狭い場所がスロートです。

一つの面積に二つのマッハ数

面積マッハ関係は、等エントロピー流れで断面積とマッハ数を結びます。

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)}}

A∗A^* は M=1M=1 となる臨界断面積(スロート面積)、γ\gamma は比熱比(定圧比熱÷定容比熱、空気で約1.4)です。

右辺は M=1M=1 で最小値1をとるU字です。1より大きい面積比には、マッハ数の根が二つ付きます。亜音速が一つ、超音速が一つです。

上の面積比スライダーでは、その二つの根がすでに分かれています。面積比を大きくするほど亜音速の根は0に張り付き、超音速の根は大きくなります。同じ形でも、どちらの枝へ乗るかは出口の背圧が選びます。

チョーキング — スロートがもう受け入れられない瞬間

背圧を下げると質量流量は増えます。際限はありません。スロート速度が音速(M=1M=1)に触れたところで止まります。

圧力の擾乱は音速で上流へ上がります。スロートが音速だと、下流の圧力信号はそこを越えて上流へ行けません。スロート上流は、背圧がさらに下がったことを聞きません。流量は最大値に固定されます。この状態がチョーキングです。

チョークした最大流量は、スロート面積 A∗A^* とよどみ状態だけで書かれます。

m˙=A∗ p0γRT0(2γ+1)γ+12(γ−1)\dot{m} = A^* \, p_0 \sqrt{\frac{\gamma}{R T_0}} \left(\frac{2}{\gamma+1}\right)^{\frac{\gamma+1}{2(\gamma-1)}}

p0p_0 はよどみ圧力、T0T_0 はよどみ温度、RR は気体定数です。

質量流量の式で γ\gamma だけが残る因子は (2/(γ+1))(γ+1)/(2(γ−1))(2/(\gamma+1))^{(\gamma+1)/(2(\gamma-1))} です。γ=1.4\gamma=1.4 なら (2/2.4)3=(5/6)3≈0.5787(2/2.4)^3=(5/6)^3\approx 0.5787 です。(5/6)3=125/216=0.5787037(5/6)^3=125/216=0.5787037 なので、0.5787は4桁目で丸めた値です。背圧 pbp_b はこの式に出てきません。スロートが音速になったあとの流量を固定するのは A∗A^*, p0p_0, T0T_0, RR, そしてこの0.5787です。背圧をさらに下げても流量の数字はそのままです。残る選択は、拡大部が衝撃波を飲み込むか、出口の外へ押し出すかです。

ロケットの推力をスロートの大きさで決める理由が、この式です。背圧は因子の外にあります。

背圧を下げながら起こる7つの段階#

チョーキングのあとが、ノズル内部の話です。背圧 pbp_b をよどみ圧力 p0p_0 から下げると、内部の流れは段を移します。背圧比1.0から0.05までがその段です。スライダーは、出力の設計圧力比を見てから置きます。

(a) 亜音速ベンチュリ。 背圧が十分高ければ全区間が亜音速です。スロートで最も速くなり、末広部で再び遅くなります。圧力はスロートで最低、出口でほぼ回復します。

(b) 第一臨界点。 背圧をさらに下げると、スロートがちょうど M=1M=1 に達します。ここでチョーキングが始まります。

(c)〜(d) ノズル内部の衝撃波。 さらに下げると末広部で流れが超音速に加速し、垂直衝撃波(流れを急に亜音速へ戻す不連続面)に出会います。衝撃波の後ろは亜音速なので再び減速し、背圧に合わせます。背圧を下げるほど衝撃波は出口側へ押しやられます。

(e) 過膨張。 衝撃波が出口を出ると、ノズル内部は完全に超音速になります。ただし出口圧力が背圧より低いため、ノズルの外で斜め衝撃波が差を埋めます。これを過膨張(overexpanded)と呼びます。

(f) 設計点。 出口圧力が背圧とちょうど等しくなる一点です。ノズルの内外に衝撃波がありません。最も効率の良い作動条件です。

(g) 不足膨張。 背圧が設計点より低くなると、出口の気体はノズルの外で膨張波によってさらに膨らみます。これを不足膨張(underexpanded)と呼びます。

ロケットが高度を上げて大気圧(背圧)が下がると、(e) → (f) → (g) を順に通過します。地上で過膨張だったノズルが、高空で設計点を経て不足膨張になるのはこのためです。

コードでノズルを解く

面積マッハ関係の超音速解を二分法で求め、出口面積比4.0の設計圧力を出します。

import numpy as np
 
def area_ratio(mach, gamma=1.4):
    """等エントロピー面積比 A/A*(Mach の関数)"""
    t = 1.0 + 0.5 * (gamma - 1.0) * mach**2
    expo = (gamma + 1.0) / (2.0 * (gamma - 1.0))
    return (1.0 / mach) * (2.0 / (gamma + 1.0) * t) ** expo
 
def invert_area_ratio(target, gamma=1.4, branch="sub"):
    """与えられた A/A* に対する Mach 解(亜音速/超音速の枝)"""
    lo, hi = (1e-4, 1.0) if branch == "sub" else (1.0, 8.0)
    for _ in range(80):
        mid = 0.5 * (lo + hi)
        f = area_ratio(mid, gamma)
        # 亜音速の枝は減少、超音速の枝は増加
        ascending = (branch == "sup")
        if (f < target) == ascending:
            lo = mid
        else:
            hi = mid
    return 0.5 * (lo + hi)
 
def pressure_ratio(mach, gamma=1.4):
    """静圧/よどみ圧力比 p/p0"""
    return (1.0 + 0.5 * (gamma - 1.0) * mach**2) ** (-gamma / (gamma - 1.0))
 
# 出口面積比4.0のノズルの設計条件
ae_over_astar = 4.0
m_exit = invert_area_ratio(ae_over_astar, branch="sup")
p_design = pressure_ratio(m_exit)
 
print(f"設計出口 Mach     = {m_exit:.3f}")
print(f"設計圧力比 pe/p0  = {p_design:.4f}")
print(f"逆算面積比の確認  = {area_ratio(m_exit):.3f}")

実行結果:

設計出口 Mach     = 2.940
設計圧力比 pe/p0  = 0.0298
逆算面積比の確認  = 4.000

背圧比のスライダーを1.0から0.05まで下げると、ノズル内部の色(マッハ数)と下の圧力曲線が (a) から (g) へ移ります。0.0298の近くでは出口圧力と背圧が会い、それより高いと拡大部の中に垂直衝撃波が残ります。さらに下げると、膨張は出口の外へ続きます。

γ=1.4\gamma=1.4 を M=1M=1 に入れると括弧の中は1になり、A/A∗A/A^* も1です。スロートがその点です。出力に出る設計点は超音速の枝で読んだ値です。M=2.940M=2.940 を同じ面積の式へ戻すと、面積比は3.9993、圧力比は0.029795になり、印刷された4.000と0.0298に張り付きます。面積比4のもう一つの根は亜音速です。同じ式を逆の枝で読むと MM は約0.1465、p/p0p/p_0 は約0.985です。リストは branch を sup に固定しているので、その根は印字されません。

印刷された設計点はマッハ2.940、圧力比0.0298です。出口圧力はよどみ圧力の約3%です。逆算の面積比が4.000へ戻るなら、二つの関数は互いの逆関数です。

背圧を0.0298より上に置くと、拡大部が衝撃波を飲み込む#

設計圧力比0.0298は、出口の静圧が背圧と等しくなる一点です。スライダーをその上に置くと、拡大部の超音速区間は垂直衝撃波で切れます。出口は再び亜音速になるので、広げた面積は加速ではなく減速に使われます。

それより下へ下げると、衝撃波は出口を出て斜め衝撃波になります。ノズルの外へこぼれる一枚と、ダクトの中に閉じ込められて繰り返す列は、同じ圧力比の結果なのでしょうか。超音速インレットの斜め衝撃波列が、その問いの続きです。

役に立ったらシェアしてください。