← --library
이과 · 24이과

유체 및 항공우주 추진공학

단계1단계2단계3단계4단계5

2단계: Navier-Stokes부터 로켓까지 — 진짜 유체의 세계로


들어가며 — 1단계를 다시 꺼내 들기

1단계에서 네가 배운 베르누이 방정식을 잠깐 떠올려 보자. . 이 식은 놀랍도록 깔끔하고, 날개가 양력을 만드는 이유를 설명해 주기도 했다. 그런데 이 식에 숨어 있는 전제를 기억하는가? 비압축성(incompressible), 비점성(inviscid), 정상 상태(steady). 쉽게 말하면 "밀도는 변하지 않고, 마찰은 없고, 시간이 지나도 흐름이 바뀌지 않는다"는 세 가지 거짓말이 동시에 깔려 있다. 현실에서 공기는 빠르게 움직이면 밀도가 변하고, 표면 가까이에서는 점성으로 인해 마찰이 생기고, 난류가 발생하면 속도 벡터가 카오틱하게 출렁인다. 2단계는 바로 그 "거짓말을 걷어내는 과정"이다. 그리고 그 거짓말을 걷어내는 순간, 계산은 손으로 할 수 없을 만큼 복잡해지지만, 대신 로켓 엔진이 어떻게 작동하는지, 전투기 날개 앞에 왜 충격파가 생기는지를 정확하게 이해할 수 있게 된다.


Part 1. 이론적 기초 — "진짜 유체"를 기술하는 언어

뉴턴 제2법칙을 유체에 붙여넣기

고등학교 물리에서 배웠을 뉴턴의 제2법칙 는 점(point mass), 즉 크기가 없는 입자에 대한 법칙이다. 유체는 어떤가? 유체는 수십억 개의 분자가 연속적으로 채워진 매질이다. 그러면 이 연속 매질에 를 적용하려면 어떻게 해야 할까? 답은 "아주 작은 유체 덩어리(fluid parcel)를 상상해서, 그 덩어리에 작용하는 모든 힘의 합이 질량 × 가속도와 같다고 쓰는 것"이다.

이 생각 실험을 수식으로 밀어붙이면 **오일러 방정식(Euler equation)**이 나온다. 오일러 방정식은 점성을 무시한 경우인데, 여기에 점성으로 인한 전단 응력(shear stress)을 더하면 비로소 **Navier-Stokes 방정식(NS 방정식)**이 완성된다. 1822년 나비에(Claude-Louis Navier)가 분자 간 힘을 이용해 처음 유도했고, 1845년 스토크스(George Gabriel Stokes)가 연속체 역학의 틀에서 엄밀하게 재유도했다. 비압축성 NS 방정식은 다음과 같이 쓴다.

왼쪽의 는 단위 부피당 질량 × 가속도, 즉 관성력(inertial force)이다. 오른쪽 첫 번째 항 는 압력 기울기에 의한 힘(pressure gradient force), 두 번째 항 는 점성력(viscous force), 세 번째 항 는 중력이다. 점성 계수(dynamic viscosity) 는 유체가 "얼마나 끈적한가"를 나타내는 물성치다. 꿀은 가 크고, 공기는 가 아주 작다. 베르누이 방정식에서 으로 놓으면, 즉 점성항을 지워버리면, 오일러 방정식으로 돌아가고, 에너지를 따라 적분하면 베르누이 식이 복원된다. 즉 1단계에서 배운 것은 이 방정식의 특수한 극한이었던 셈이다.

[노트 기록] NS 방정식의 각 항이 의미하는 물리적 힘을 직접 손으로 써보자. 좌변(관성), 우변(압력 + 점성 + 중력). 이것이 모든 CFD 해석의 출발점이다.

왜 손으로 풀 수 없는가 — 비선형성의 저주

NS 방정식이 풀기 어려운 핵심 이유는 왼쪽의 에 있다. 속도 가 자기 자신의 기울기와 곱해지는 이 항은 비선형(nonlinear) 항이다. 선형 방정식은 "두 해를 더하면 그것도 해가 된다"는 중첩(superposition) 원리가 성립하지만, 비선형 방정식에서는 그 원리가 깨진다. 이것이 왜 문제인가? 수학에서 대부분의 강력한 풀이 도구들(푸리에 분석, 그린 함수 등)이 선형성을 전제하기 때문이다. 실제로 NS 방정식의 완전한 수학적 해가 항상 존재하는지, 존재한다면 유한한지를 증명하는 문제는 클레이 수학 연구소의 밀레니엄 문제 7개 중 하나로, 풀면 100만 달러의 상금이 걸려 있다. 아직 아무도 풀지 못했다.

그렇다면 엔지니어들은 어떻게 하는가? 포기하지 않고 **수치 해석(numerical analysis)**을 쓴다. 공간을 작은 격자(mesh)로 쪼개고, 시간도 작은 스텝으로 나눠서, 연속적인 편미분 방정식을 유한한 수의 대수 방정식으로 바꿔 컴퓨터로 반복 계산하는 것이다. 이 분야 전체를 **전산 유체 역학(Computational Fluid Dynamics, CFD)**이라고 부른다. 핵심 이산화(discretization) 기법으로는 유한 차분법(Finite Difference Method, FDM), 유한 체적법(Finite Volume Method, FVM), **유한 요소법(Finite Element Method, FEM)**이 있다. OpenFOAM, ANSYS Fluent 같은 소프트웨어는 주로 FVM을 사용한다.

난류 — 카오스를 모델링하는 법

조용한 물줄기를 생각해보자. 처음에는 매끄럽게 흐르다가 속도가 빨라지면 어느 순간 물이 소용돌이치고 불규칙해진다. 전자를 층류(laminar flow), 후자를 **난류(turbulent flow)**라고 한다. 언제 전환이 일어나는가? 1단계에서 짧게 언급했을 수도 있는 **레이놀즈 수(Reynolds number)**가 그 기준이다.

는 대표 속도, 은 대표 길이 척도(예: 파이프 직경), 는 점성 계수다. 가 작으면 점성이 지배해 층류, 가 크면 관성이 지배해 난류가 된다. 파이프 내부 유동에서 을 넘으면 난류가 시작된다. 비행기 날개 주위 유동에서 는 수백만에 달한다. 이 말은 실제 항공 유동이 거의 항상 난류라는 뜻이다.

난류를 NS 방정식으로 직접 계산하려면(Direct Numerical Simulation, DNS) 소용돌이의 가장 작은 스케일까지 격자를 만들어야 하는데, 가 커질수록 필요한 격자 수가 에 비례해 폭발한다. 현재 슈퍼컴퓨터로도 비행기 전체를 DNS로 계산하는 것은 불가능하다. 그래서 엔지니어들은 RANS(Reynolds-Averaged Navier-Stokes) 접근을 쓴다. 속도를 평균값과 변동값으로 분리해서, 평균 흐름만 직접 풀고 변동의 효과는 **난류 모델(turbulence model)**로 근사한다. 가장 널리 쓰이는 것이 - 모델이다. 여기서 는 난류 운동 에너지(turbulent kinetic energy), 은 그 에너지의 소산율(dissipation rate)이다. 이 두 변수에 대한 추가 수송 방정식을 NS 방정식과 함께 풀면 난류 효과를 비교적 저렴한 계산 비용으로 모사할 수 있다.

[노트 기록] RANS의 핵심 아이디어: "평균 + 변동 = 실제". 평균만 직접 계산하고, 변동의 영향은 추가 방정식으로 모델링. - 모델은 CFD에서 기본 중의 기본이다.


Part 2. 본 내용 (1) — 압축성 유동과 충격파

소리의 속도와 마하 수

"공기는 비압축성이다"라는 가정이 깨지는 시점은 언제인가? 유동 속도가 **음속(speed of sound, )**에 가까워질 때다. 음속은 공기 중 압력 교란이 전파되는 속도이며,

로 쓴다. 여기서 비열비(ratio of specific heats), 공기의 경우 약 1.4, 은 기체 상수(공기의 경우 287 J/kg·K), 는 절대 온도다. 해수면 표준 대기(T ≈ 288 K)에서 m/s, 즉 약 1224 km/h다. 이를 기준으로 유동 속도 를 무차원화한 것이 마하 수(Mach number) 다. 이면 아음속(subsonic), 이면 초음속(supersonic), 근방은 천음속(transonic), 이면 극초음속(hypersonic)이라 한다.

근방에서 물리가 극적으로 달라지는가? 비행체가 공기를 헤치고 나갈 때 앞에서는 "압력 교란 신호"가 음속으로 사방에 퍼져나가 공기에게 "비켜!"라고 미리 알려준다. 그런데 비행체 속도가 음속을 초과하면, 비행체가 자신이 만드는 압력 교란보다 빠르게 움직이므로 앞쪽 공기는 비행체가 오는 것을 전혀 모른다. 공기가 "사전 경고" 없이 갑작스럽게 비행체와 만나게 되고, 이 조건에서 압력·밀도·온도가 극히 짧은 거리에서 불연속적으로 도약하는 현상이 일어난다. 이것이 **충격파(shock wave)**다.

충격파의 구조 — 랭킨-위고니오 관계식

충격파는 수학적으로 "두께가 거의 0인 불연속면"으로 다룬다(실제로는 수 분자 평균 자유 경로 정도의 두께를 가진다). 충격파를 가로질러 질량, 운동량, 에너지가 보존되어야 하므로 이 세 보존 법칙을 동시에 적용하면 충격파 전후의 물리량을 연결하는 **랭킨-위고니오 관계식(Rankine-Hugoniot relations)**이 나온다. 충격파에 수직으로 부딪히는 **수직 충격파(normal shock)**의 경우:

아래 첨자 1은 충격파 앞(upstream), 2는 충격파 뒤(downstream)다. 이 식들을 보면 세 가지 사실이 즉시 눈에 띈다. 첫째, 충격파를 통과하면 밀도와 압력이 올라간다. 둘째, 마하 수는 내려간다(, 즉 수직 충격파 뒤에서는 항상 아음속이 된다). 셋째, 이 과정은 **비가역적(irreversible)**이어서 엔트로피가 증가한다 — 즉 에너지 손실이 발생한다. 비행체 설계에서 충격파는 곧 항력과 열하중 증가를 의미하므로, 충격파를 약화시키거나 비행체 형상으로 유리하게 제어하는 것이 초음속 설계의 핵심 과제다.

날개와 같이 비스듬한 면에서 충격파는 **경사 충격파(oblique shock)**로 나타나며, 이 경우 충격파 각도 와 유동 편향 각도 사이에 -- 관계가 성립한다. 반대로 볼록한 표면에서는 충격파가 아닌 **팽창파(expansion fan, Prandtl-Meyer expansion)**가 발생해 압력이 감소하고 마하 수가 증가한다. 이 두 현상은 초음속 유동에서 날개 형상을 설계할 때 핵심 도구가 된다.

[노트 기록] 충격파 전후 변화: 압력↑, 밀도↑, 온도↑, 마하수↓, 엔트로피↑. 이 다섯 가지 부등호 방향을 외워두면 나중에 노즐 해석과 직결된다.


Part 3. 본 내용 (2) — 로켓 추진 원리와 노즐 설계

추력은 어디서 나오는가

로켓이 우주로 날아가는 원리를 한 줄로 표현하면 뉴턴 제3법칙 — "반작용(reaction)"이다. 노즐에서 가스를 뒤로 내뿜으면 그 반작용으로 로켓이 앞으로 나아간다. 그런데 엔지니어는 "직관"이 아니라 정량적인 표현을 원한다. 로켓의 **추력(thrust, )**은 다음과 같이 쓸 수 있다.

여기서 질량 유량(mass flow rate), 는 노즐 출구에서의 배기 속도(exhaust velocity), 는 출구 압력, 는 주변 대기압, 는 출구 면적이다. 첫 번째 항 는 운동량 추력(momentum thrust), 두 번째 항 는 압력 추력(pressure thrust)이다. 추력을 극대화하려면? 를 높이거나, 을 높이거나, 가 되도록 노즐을 설계해야 한다. 마지막 조건을 설계 팽창(design expansion) 또는 완전 팽창(full expansion) 조건이라 한다.

이 식을 시간에 대해 적분하고 로켓 질량이 감소함을 고려하면, 로켓이 얻을 수 있는 속도 변화량 는 유명한 **치올콥스키 로켓 방정식(Tsiolkovsky rocket equation)**으로 표현된다.

는 초기 질량(연료 포함), 는 최종 질량(연료 연소 후), 는 **비추력(specific impulse)**으로 "단위 질량의 추진제로 얼마나 오래 1 N의 추력을 낼 수 있는가"를 초(s) 단위로 나타낸 것이다. 가 높을수록 연료 효율이 좋다. 수소-산소 엔진(예: 스페이스 셔틀 SSME)의 는 진공에서 약 453 s, 케로신-산소 엔진(Falcon 9의 멀린 엔진)은 약 311 s다.

수렴-확산 노즐 — 드 라발 노즐

그렇다면 어떻게 배기 속도 를 음속 이상으로 끌어올리는가? 단순히 압력을 높여서 가스를 밀어내면 되지 않을까? 여기서 비압축성 유동에서 배운 연속 방정식과 압축성 유동의 차이가 결정적으로 나타난다. 아음속에서는 파이프를 좁히면 속도가 빨라진다(단면적 감소 → 속도 증가). 그런데 초음속에서는 반대로 단면적을 넓혀야 속도가 빨라진다. 왜인가?

연속 방정식은 다. 압축성 유동에서 가속될 때 밀도 도 줄어든다. 아음속()에서는 속도 증가 효과가 밀도 감소 효과보다 크므로 단면적을 줄여야 한다. 초음속()에서는 밀도 감소 효과가 더 크므로 단면적을 늘려야 질량 유량이 보존된다. 따라서 음속()은 정확히 단면적이 최소인 **목(throat)**에서 달성된다. 이 원리를 이용해 설계된 것이 수렴-확산 노즐(convergent-divergent nozzle), 또는 **드 라발 노즐(de Laval nozzle)**이다. 가스가 수렴부에서 가속되어 목에서 (임계 조건)에 도달하고, 확산부에서 계속 가속되어 출구에서 초음속이 된다. 이것이 로켓 엔진 노즐의 기본 원리다.

면적-마하 수 관계식(Area-Mach number relation)은 등엔트로피(isentropic, 마찰과 열전달이 없는 이상적인) 유동 가정 하에서:

는 목의 면적이다. 주어진 면적비 에 대해 이 식은 두 개의 해(아음속 해와 초음속 해)를 가진다. 노즐 설계 시 어떤 해를 원하느냐에 따라 출구 조건이 달라진다.

[노트 기록] 드 라발 노즐의 핵심 규칙: 아음속 → 면적 줄이면 가속. 초음속 → 면적 늘리면 가속. 목에서 M=1. 이 세 줄이 모든 노즐 설계의 기초다.


Part 4. 테크니컬 디테일 — 실무에서 쓰는 도구와 방법

CFD 해석의 실제 흐름은 크게 세 단계로 나뉜다. **전처리(pre-processing)**에서는 기하형상을 정의하고 계산 격자(mesh)를 생성하며 경계 조건(boundary conditions)을 설정한다. 격자의 질이 해석 정확도에 매우 큰 영향을 미친다. **해석(solving)**에서는 이산화된 NS 방정식을 반복적으로 풀어 잔차(residual, 각 방정식의 오차)가 충분히 작아질 때까지 수렴시킨다. 수렴 기준으로 보통 잔차가 또는 이하가 될 때까지 반복한다. **후처리(post-processing)**에서는 압력 분포, 속도 벡터, 스트림라인, 마하 수 등을 시각화하고 양력·항력 계수, 열전달율 등을 계산한다.

OpenFOAM에서 압축성 정상 유동을 풀 때는 rhoSimpleFoam 또는 rhoCentralFoam 솔버를 사용한다. 입력 파일 구조는 0/(초기 조건), constant/(물성치와 난류 모델 설정), system/(해석 설정, 격자 분할 설정)으로 나뉜다. 난류 모델은 보통 constant/turbulenceProperties에서 RASModel로 설정하고 kEpsilon이나 kOmegaSST를 선택한다. - SST 모델-이 약한 역압력 기울기(adverse pressure gradient) 영역에서 더 나은 예측을 보여 항공우주 응용에서 선호된다. 노즐처럼 경계층 내부와 자유류 영역이 모두 중요한 경우 특히 유리하다.

충격파 해석에서는 격자 적응(adaptive mesh refinement, AMR)이 중요하다. 충격파는 매우 얇은 불연속면이므로, 충격파 위치 근방에 격자를 집중시켜야 정확한 압력 점프를 포착할 수 있다. OpenFOAM의 dynamicMesh 기능이나 상용 소프트웨어의 자동 적응 격자 기능을 이용한다. 수치 격차(numerical diffusion)를 줄이기 위해 고차 정확도 도식(예: MUSCL scheme, 2차 풍상 도식)을 선택하는 것도 중요하다.


Part 5. 프로젝트 문제 — 손으로 생각해봐

아래 세 프로젝트는 순서대로 난이도가 올라간다. 각 문제를 읽고 풀이 과정을 종이에 먼저 설계해 본 다음, 시뮬레이션 또는 계산을 진행해라. 정답은 없다. 네가 어떤 가정을 세우고 어떤 근거로 판단하는지가 핵심이다.


[프로젝트 A] 파이프 내 난류 유동 CFD 설정 설계

직경 m, 길이 m인 원형 파이프에 공기가 들어오고 있다. 입구 속도 m/s, 공기 밀도 kg/m³, 동점성 계수 m²/s다.

(1) 이 유동의 레이놀즈 수를 계산하고, 층류인지 난류인지 판단하라. 판단 근거를 서술하라.

(2) 이 파이프를 2D 축대칭(axisymmetric) CFD 모델로 설정하려고 한다. 경계 조건을 어떻게 설정해야 하는가? 최소 4개의 경계면(입구, 출구, 벽면, 축)에 대해 각각 적용할 조건의 종류와 이유를 서술하라. (예: 입구 → 속도 입구 조건, 이유: ...)

(3) - 모델을 쓰기로 했다면, 입구 경계 조건으로 값도 지정해야 한다. 난류 강도(turbulence intensity) , 난류 길이 척도(turbulent length scale) 를 사용하는 경험식은 , ()이다. 수치를 계산해 넣어라.

(4) 계산이 수렴했을 때 파이프 출구 중심선에서 예상되는 속도 프로파일의 형태를 그림으로 스케치하고, 층류 포물선형과 어떻게 다른지 설명하라.


[프로젝트 B] 수직 충격파 전후 조건 분석

어떤 풍동(wind tunnel)에서 의 균일한 초음속 공기 흐름이 있다. 표준 대기압 Pa, 온도 K, 라고 하자. 이 유동 앞에 수직 충격파가 발생했다.

(1) 충격파 전방 음속 을 계산하고, 유동 속도 을 구하라.

(2) 랭킨-위고니오 관계식을 이용해 충격파 후방의 , , , 을 구하라. 단, 밀도비는 (이상 기체 법칙)으로 검산하라.

(3) 충격파를 통과하면서 전압력(total pressure, stagnation pressure) 이 변하는가? 충격파 전후로 를 계산하고, 변화량과 그 의미(엔트로피 관점)를 서술하라.

(4) 만약 이 비행체를 에서 비행하는 전투기 에어 인테이크(air intake) 설계에 응용한다면, 수직 충격파 대신 어떤 대안을 고려할 수 있는지, 그 이유와 함께 제안하라. (힌트: 경사 충격파와 수직 충격파의 전압력 손실 비교를 생각해보라.)


[프로젝트 C] 드 라발 노즐 설계 및 성능 평가

어떤 로켓 엔진의 노즐을 설계하려 한다. 요구 조건은 다음과 같다: 출구 마하 수 , 연소실 압력 Pa(=30 bar), 연소 가스 비열비 , 가스 분자량 g/mol, 연소실 온도 K, 질량 유량 kg/s라 하자. 기체 상수 , 범용 기체 상수 J/kmol·K.

(1) 면적-마하 수 관계식을 이용해 를 계산하라.

(2) 등엔트로피 유동 관계식을 이용해 출구에서의 압력 와 온도 를 구하라: , .

(3) 연속 방정식과 연소실 정체 조건을 이용해 목(throat) 면적 를 구하라. 목에서 속도는 음속: 이며, 이다.

(4) 주변 대기압을 Pa(해수면)과 Pa(진공)로 두 경우를 비교해 추력 를 각각 계산하라. 두 경우의 추력 차이가 왜 발생하는지 설명하라.

(5) 비추력 를 두 경우에 대해 구하라( m/s²). 현실적인 로켓 엔진의 값과 비교해 설계가 합리적인지 판단하라. (가 터무니없이 낮거나 높다면, 어떤 가정이 비현실적인가?)


마치며 — 이 단계가 끝나면 무엇이 보이는가

지금까지 이론적으로는 베르누이의 "거짓말 없는 버전"인 NS 방정식을, 수치적으로는 CFD라는 도구를, 고속 유동에서는 충격파를, 그리고 추진공학에서는 드 라발 노즐과 치올콥스키 방정식을 연결해서 배웠다. 이 모든 것이 사실은 하나의 맥락에 놓여 있다. 연소실에서 가스가 생성되고(열역학), 노즐에서 팽창하며(압축성 유동 + 면적-마하 수 관계), 배기 가스가 빠져나가며 추력을 낸다(뉴턴 제3법칙의 정량화). 3단계에서 배울 궤도 역학은 "이 추력으로 어떤 궤도를 어떻게 도달하는가"의 문제이므로, 2단계의 개념이 직접 입력값이 된다. 프로젝트 C의 마지막 문항에서 스스로 의심하고 검증해보는 과정 자체가 엔지니어의 사고방식이다. 숫자가 나왔다고 끝이 아니라, 그 숫자가 말이 되는지를 판단하는 것 — 그것이 이 단계에서 가장 중요한 능력이다.


참고 문헌

  • Anderson, J. D. (2003). Modern Compressible Flow: With Historical Perspective (3rd ed.). McGraw-Hill. — 충격파 및 노즐 이론의 표준 교재
  • White, F. M. (2015). Fluid Mechanics (8th ed.). McGraw-Hill. — NS 방정식 및 CFD 기초
  • Sutton, G. P., & Biblarz, O. (2016). Rocket Propulsion Elements (9th ed.). Wiley. — 추력 방정식 및 노즐 설계
  • Pope, S. B. (2000). Turbulent Flows. Cambridge University Press. — RANS 및 - 모델 이론
← 단계 1단계 3