Skip to content
cfd-lab:~/ko/posts/2026-06-18-de-laval-nozz…online
NOTE #078DAY THU 유체역학DATE 2026.06.18READ 4 min readWORDS 2,049#유동현상#Compressible-Flow#De-Laval-Nozzle#Choked-Flow#Gas-Dynamics

음속을 넘으려면 관을 넓혀라 — 수축-확산 노즐과 초킹

면적-마하 관계부터 배압에 따른 7가지 노즐 유동까지

정원 호스 끝을 손으로 누르면 물이 더 빨리 나간다. 좁히면 빨라진다 — 우리 직관은 여기서 멈춘다. 그런데 로켓 노즐은 정반대로 생겼다. 목 뒤가 나팔처럼 넓어진다. 음속을 넘긴 기체는 관을 넓혀야 더 빨라지기 때문이다. 이 포스트는 그 반전이 왜 일어나는지를 면적-마하 관계로 따라가고, 배압을 낮춰가며 노즐 안에서 벌어지는 일곱 단계를 직접 조작해본다.

좁히면 빨라진다, 음속을 넘으면 거꾸로다#

압축성 유동(밀도가 변하는 흐름)에서는 면적과 속도의 관계가 마하수에 따라 뒤집힌다. 1차원 등엔트로피 흐름의 면적-속도 관계가 이를 한 줄로 말해준다.

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

여기서 AA는 단면적, VV는 속도, MM은 마하수(속도/음속)다. 부호가 핵심이다.

아음속(M<1M<1)에서는 M21<0M^2-1<0이다. 속도를 올리려면(dV>0dV>0) 면적을 줄여야 한다(dA<0dA<0). 호스를 누르는 직관 그대로다.

초음속(M>1M>1)에서는 M21>0M^2-1>0이다. 속도를 더 올리려면 면적을 키워야 한다. 부호가 뒤집힌다.

그래서 기체를 음속 너머로 가속하려면 먼저 좁혀서 음속까지 올린 뒤, 그 지점부터 넓혀야 한다. 좁아졌다 넓어지는 이 형상이 수축-확산 노즐(de Laval 노즐)이다. 가장 좁은 곳을 노즐목(throat)이라 부른다.

한 면적에 두 개의 마하수#

면적-마하 관계는 등엔트로피 흐름에서 단면적과 마하수를 묶는다.

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

여기서 AA^*M=1M=1이 되는 임계 단면적(노즐목 면적), γ\gamma는 비열비(정압비열/정적비열, 공기는 약 1.4)다.

이 식의 우변은 M=1M=1에서 최솟값 1을 갖는 U자 곡선이다. 따라서 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에 가까워지고 초음속 해는 점점 커진다. 같은 노즐 형상이라도 어느 가지를 타느냐는 노즐 끝에 걸린 압력, 즉 배압이 결정한다.

초킹 — 노즐목이 더는 못 받아들이는 순간#

배압을 서서히 낮추면 노즐을 지나는 질량 유량이 늘어난다. 하지만 무한정 늘지 않는다. 노즐목 속도가 음속(M=1M=1)에 도달하는 순간 한계에 닿는다.

이유는 정보 전달 속도에 있다. 압력 교란은 음속으로 상류에 전파된다. 노즐목이 음속이면 하류의 압력 변화 신호가 상류로 거슬러 올라가지 못한다. 노즐목 상류는 배압이 더 내려가는 것을 "알 수 없다". 질량 유량이 최댓값에 묶인다. 이 상태를 초킹(choking)이라 한다.

초킹된 노즐의 최대 질량 유량은 노즐목 면적 AA^*와 정체 조건만으로 정해진다.

m˙=Ap0γ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은 기체 상수다. 배압이 아무리 더 내려가도 이 값은 변하지 않는다. 로켓 엔진의 추력을 노즐목 크기로 설계하는 근거가 여기 있다.

배압을 낮춰가며 일어나는 일곱 단계#

초킹 이후가 진짜 드라마다. 배압 pbp_b를 정체 압력 p0p_0에서부터 천천히 낮추면 노즐 내부 유동이 단계적으로 바뀐다.

아래 시뮬레이션에서 직접 조작해보자. 배압비 슬라이더를 1.0에서 0.05까지 내리면서 노즐 내부 색(마하수)과 아래 압력 곡선을 관찰한다.

순서대로 정리하면 이렇다.

(a) 아음속 벤투리. 배압이 충분히 높으면 전 구간이 아음속이다. 노즐목에서 가장 빨라졌다가 확산부에서 다시 느려진다. 압력은 노즐목에서 최저, 출구에서 거의 회복된다.

(b) 첫 임계점. 배압을 더 낮추면 노즐목이 정확히 M=1M=1에 닿는다. 여기서 초킹이 시작된다.

(c)~(d) 노즐 내부 충격파. 더 낮추면 확산부에서 유동이 초음속으로 가속하다가 수직충격파(normal shock, 유동을 갑자기 아음속으로 되돌리는 불연속면)를 만난다. 충격파 뒤는 아음속이라 다시 감속하며 배압에 맞춰진다. 배압을 낮출수록 충격파는 출구 쪽으로 밀려난다.

(e) 과팽창. 충격파가 출구를 벗어나면 노즐 내부는 완전히 초음속이다. 다만 출구 압력이 배압보다 낮아, 노즐 바깥에서 경사충격파로 압력이 맞춰진다. 이를 과팽창(overexpanded)이라 한다.

(f) 설계점. 출구 압력이 배압과 정확히 같아지는 한 점이다. 노즐 안팎에 충격파가 없다. 가장 효율적인 작동 조건이다.

(g) 과소팽창. 배압이 설계점보다 더 낮으면 출구 기체가 노즐 밖에서 팽창파로 더 부푼다. 이를 과소팽창(underexpanded)이라 한다.

로켓이 고도를 올리며 대기압(배압)이 떨어지면 (e)→(f)→(g)를 순서대로 지난다. 지상에서 과팽창이던 노즐이 고공에서 설계점을 지나 과소팽창이 되는 이유다.

코드로 노즐을 풀어보자#

면적-마하 관계의 두 해를 이분법으로 찾고, 출구 면적비로 설계 압력을 구하는 코드다.

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

면적비 4.0인 노즐은 마하 2.94까지 가속하며, 그때 출구 압력은 정체 압력의 약 3%다. 즉 배압이 p0p_0의 3% 수준일 때가 이 노즐의 설계점이다. 역산한 면적비가 입력 4.0과 일치하니 두 함수가 서로 정확히 역관계임도 확인된다.

기억할 점#

  • 음속 아래에선 좁힐수록 빨라지지만, 음속을 넘으면 넓혀야 빨라진다. 그래서 노즐은 수축-확산 형상이다.
  • 노즐목이 M=1M=1에 닿으면 초킹된다. 배압을 더 낮춰도 질량 유량은 늘지 않는다.
  • 같은 노즐이라도 배압에 따라 벤투리·내부 충격파·과팽창·설계점·과소팽창을 오간다. 출구 압력과 배압이 같아지는 한 점이 설계점이다.

도움이 됐다면 공유해주세요.