Skip to content
cfd-lab:~/ko/posts/2026-04-30-cavitation-nu…online
NOTE #029DAY THU 유체역학DATE 2026.04.30READ 5 min readWORDS 2,297#유체역학#Cavitation#Multiphase#Bernoulli#유동현상

20도의 물도 끓는다 — 캐비테이션의 물리

감압이 만드는 끓음, 캐비테이션 수, 거품 폭축의 충격

물은 20°C에서도 끓는다. 압력만 충분히 낮추면. "물의 비등점은 100°C"라는 외움은 사실 1기압이라는 단서가 빠진 반쪽 진실이다. 끓음을 결정하는 건 온도가 아니라 포화 증기압과 주변 압력의 균형이다. 펌프 날개 입구나 선박 프로펠러 끝에서 물이 가속되어 정압이 떨어지면, 상온의 물도 갑자기 끓는다. 이것이 캐비테이션(cavitation, 공동현상) 이다. 이 글은 캐비테이션이 왜 시작되는지, 한 숫자로 어떻게 위험을 재는지, 거품이 사라지면서 1만 기압 충격이 어떻게 솟는지 정리한다. 마지막엔 벤투리 관에서 캐비테이션 영역을 찾는 짧은 Python 코드와 직접 만질 수 있는 시뮬레이터가 있다.

끓는점은 온도가 정하지 않는다#

물의 포화 증기압은 온도의 함수다.

온도포화 증기압 pvp_v
20°C2.34 kPa (≈ 17.5 mmHg)
60°C19.9 kPa
100°C101.3 kPa (≈ 760 mmHg)
200°C1554 kPa (≈ 15 atm)

100°C가 특별한 건 그 온도에서 pvp_v가 1기압과 같아지기 때문이다. 압력솥(약 2 atm)에서는 비등점이 120°C로 올라가고, 에베레스트 정상(0.3 atm)에서는 70°C에서 끓는다.

같은 논리를 거꾸로 돌리면: 20°C 물을 끓이고 싶다면 외기압을 1/40로 낮추면 된다. 약 2.5 kPa. 진공 펌프 한 대만 있으면 부엌에서도 미지근한 물을 끓일 수 있다.

문제는 흐르는 물에서는 진공 펌프가 따로 필요하지 않다는 점이다.

흐름이 만드는 저압 — Bernoulli의 그늘#

비점성·정상 유동에서 한 유선을 따라 베르누이 방정식이 성립한다.

p+12ρu2+ρgz=constp + \tfrac{1}{2}\rho u^2 + \rho g z = \text{const}

pp는 정압, ρ\rho는 밀도, uu는 속도, zz는 높이다. 같은 높이라면 속도가 빨라지는 곳에서 정압이 떨어진다. 단면이 좁아지는 벤투리 목, 익형의 흡입면, 펌프 임펠러 입구 — 흐름이 가속되는 모든 지점에서 압력이 같이 내려간다.

극단적으로, 정압이 작동 온도의 pvp_v 아래로 떨어지면 액체가 더 이상 액체로 머무를 수 없다. 분자 사이의 인장 결합이 끊어지고, 미세한 가스 핵(nucleus)을 씨앗 삼아 증기 거품이 폭발적으로 자란다. 이것이 캐비테이션의 출생 순간이다.

핵심은 한 줄. 캐비테이션은 가열이 아니라 유체역학적 감압으로 시작된 끓음이다.

캐비테이션 수 σ — 한 숫자로 위험을 잰다#

설계자는 "이 펌프가 캐비테이션을 일으키는가"라는 질문을 한 무차원수로 환원한다. 캐비테이션 수다.

σ=ppv12ρU2\sigma = \frac{p_\infty - p_v}{\tfrac{1}{2}\rho U_\infty^2}

pp_\infty는 기준 위치의 정압, UU_\infty는 기준 속도, pvp_v는 작동 온도의 포화 증기압이다. 분자는 "증기압 위에 남은 압력 여유분", 분모는 "흐름이 만들어낼 수 있는 동압의 한도".

σ\sigma가 클수록 안전하다. 흐름이 아무리 가속돼도 동압을 다 써서는 증기압을 못 뚫기 때문이다. σ\sigma가 임계값 σi\sigma_i 아래로 내려가면 캐비테이션이 시작된다(initiation). 익형이나 임펠러 형상마다 σi\sigma_i가 다르고, 보통 풍동·수동 실험으로 측정한다.

실무에서는 펌프 흡입측의 NPSH(net positive suction head) 가 같은 역할을 한다. NPSH가 부족하면 곧 σ\sigma가 작은 것이고, 펌프가 끓는다.

거품의 죽음 — 1만 기압 충격#

캐비테이션이 거품을 만드는 데서 끝났다면 큰 문제가 아닐 것이다. 진짜 파괴는 거품이 사라질 때 일어난다.

거품은 저압 구간을 지나 압력이 회복되는 영역으로 휩쓸려 내려간다. 거기서 거품 내부의 증기가 액체에 갑자기 짓눌린다. 구형 거품의 반경 R(t)R(t) 진화는 Rayleigh–Plesset 방정식이 기술한다.

RR¨+32R˙2=pBpρ4νR˙R2γρRR\,\ddot R + \tfrac{3}{2}\,\dot R^2 = \frac{p_B - p_\infty}{\rho} - \frac{4\nu \dot R}{R} - \frac{2\gamma}{\rho R}

pBp_B는 거품 내부 압력, γ\gamma는 표면장력, ν\nu는 동점성계수다. 외부 압력이 내부보다 훨씬 크면 R¨0\ddot R \ll 0, 거품은 마이크로초 단위로 폭축한다. 폭축 직전 단계에서 액체 속도는 음속에 가까워지고, 충돌 직후 자리에는 1만 기압급 충격파가 솟는다.

이 충격이 반복되면 금속 표면이 곰보처럼 패인다. 펌프 임펠러, 선박 프로펠러 끝, 수차 러너 — 익숙한 캐비테이션 침식(erosion)의 흔적이다.

코드: 벤투리 관에서 캐비테이션을 예측한다#

벤투리 단면적 A(x)A(x)가 주어지면 연속·베르누이로 압력 분포를 즉시 얻을 수 있다.

import numpy as np
 
def venturi_pressure_field(x, area_ratio, U_in, rho=1000.0, p_in=101300.0):
    """단면적이 cosine 모양으로 좁아졌다 회복되는 벤투리 관."""
    a0, a1, a2, a3 = 0.30, 0.42, 0.58, 0.70
    A = np.ones_like(x)
    m1 = (x >= a0) & (x < a1)
    s1 = 0.5 - 0.5 * np.cos(np.pi * (x[m1] - a0) / (a1 - a0))
    A[m1] = 1.0 + (area_ratio - 1.0) * s1
    A[(x >= a1) & (x <= a2)] = area_ratio
    m2 = (x > a2) & (x < a3)
    s2 = 0.5 - 0.5 * np.cos(np.pi * (x[m2] - a2) / (a3 - a2))
    A[m2] = area_ratio + (1.0 - area_ratio) * s2
 
    u = U_in / A                              # 연속방정식
    p = p_in + 0.5 * rho * (U_in**2 - u**2)   # Bernoulli
    return A, u, p
 
def cavitation_zone(p, p_vapor):
    """캐비테이션 발생 구간의 인덱스."""
    return np.where(p < p_vapor)[0]
 
x = np.linspace(0, 1, 400)
A, u, p = venturi_pressure_field(x, area_ratio=0.4, U_in=5.0)
p_vapor = 2339.0  # 20°C 물의 포화 증기압
 
zone = cavitation_zone(p, p_vapor)
sigma_min = (p.min() - p_vapor) / (0.5 * 1000.0 * 5.0**2)
 
print(f"최저 정압: {p.min()/1000:.1f} kPa")
print(f"sigma_min = {sigma_min:.3f}   (음수면 캐비테이션)")
print(f"캐비테이션 길이: 관 길이의 {zone.size/x.size*100:.0f}%")

area_ratio를 0.5에서 0.3으로 줄여보자. 목 속도가 1.7배 빨라지고 동압이 3배 가까이 뛰면서, 정압이 어렵지 않게 증기압을 뚫는다. σmin\sigma_{\min}이 음수로 떨어지는 순간이 곧 캐비테이션의 시작이다.

직접 캐비테이션을 만들어보자#

아래 시뮬레이터에서 입구 속도, 목 단면 비율, 수온을 직접 바꾸어 보자.

Top: venturi tube cross-section. Bubbles spawn where p(x) < p_vapor and collapse downstream (red ring). Bottom: pressure profile and vapor-pressure threshold. Reference: water at 20°C with p_vapor ≈ 2.3 kPa (Antoine fit used for slider).

수온 슬라이더를 60°C까지 올리면 같은 속도에서도 캐비테이션이 훨씬 쉽게 시작된다 — 증기압이 약 2 kPa에서 20 kPa로 점프하기 때문. 반대로 throat ratio를 0.6 이상으로 풀면, 웬만한 속도로는 거품이 생기지 않는다. 거품이 흐름 끝에서 빨간 링으로 무너지는 순간이 폭축의 시각적 단서다.

어디에서 만나는가 — 펌프, 프로펠러, 의학#

  • 펌프와 수차: 임펠러 입구 NPSH 부족이 압도적인 원인. 흡입관 손실, 액체 온도, 회전수가 모두 σ\sigma를 깎는다.
  • 선박 프로펠러: 블레이드 끝 와류 코어가 가장 먼저 캐비테이션을 일으켜 추진 효율과 가청 소음을 동시에 망친다. 잠수함이 의도적으로 회전수를 낮추는 이유.
  • 밸브·오리피스: 좁은 통로에서 압력 회복 곡선이 증기압 아래로 내려가면 하류 배관이 침식된다.
  • 의료 초음파(HIFU): 인체 조직 내에서 의도적으로 캐비테이션을 일으켜 결석을 부수거나 종양을 가열한다. 폭축 충격을 무기가 아니라 약으로 쓴다.
  • 수공해머: 수차 정지 직후 거꾸로 흐르는 물이 닫힌 밸브에 부딪힐 때 일시적으로 음압 영역이 만들어지며 캐비테이션 펄스가 뒤따른다.

다음에 거품을 보거든#

세 가지 인장 한계만 기억하면 된다.

  1. 액체는 가열 없이도 끓는다. 절대압이 그 온도의 pvp_v 아래로 떨어지기만 하면 된다.
  2. σ=(ppv)/(12ρU2)\sigma = (p_\infty - p_v)/(\tfrac{1}{2}\rho U_\infty^2) 가 작아질수록 위험이 커진다. 설계자가 이 숫자에 매달리는 이유다.
  3. 손상은 거품의 출생이 아니라 폭축에서 온다. 보호해야 할 곳은 압력이 회복되는 영역이다.

펌프 흡입관 도면을 다시 편다면, 굵은 형광펜으로 NPSH 여유를 표시해두자. 그 한 줄이 임펠러의 수명을 좌우한다.

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