난류가 화염을 빠르게 하다 꺾이는 지점 — Damköhler 주름 가설과 bending
난류 화염 속도가 직선으로 오르다 꺾이고 소염되는 세 구간의 물리
산불은 바람이 셀수록 빨리 번진다. 초속 5 m의 바람에서 불길은 사람이 뛰어서 못 따라잡는 속도로 달린다. 그런데 바람을 계속 올리면 어느 지점에서 불이 스스로 꺼진다. 소방 현장에서 blow-off라 부르는 현상이다. 예혼합 난류 화염을 실험실 버너에서 재도 곡선 모양이 똑같다.
난류 강도 를 올리면 난류 화염 속도 가 처음에는 거의 직선으로 오른다. 그러다 꺾인다. 이 꺾임을 bending 효과라 부른다. 더 밀면 소염된다. 이 글은 그 곡선의 세 구간을 각각 다른 물리로 설명한다. 직선 구간은 Damköhler의 주름 가설로, 꺾임과 소염은 Karlovitz 수로, 그리고 화염이 난류에 되돌려주는 힘은 baroclinic 토크로 짚는다.
왜 난류는 화염을 빠르게 하는가#
메탄-공기 예혼합 화염의 층류 화염 속도(정지한 기체 속을 화염면이 스스로 전파하는 속도) 은 상온·상압에서 약 0.40 m/s다. 화염 두께 은 0.5 mm 남짓이다. 이 숫자로는 엔진이 돌아가지 않는다. 보어 40 mm를 2 ms 안에 건너려면 20 m/s가 필요하다. 의 50배다.
그 차이를 메우는 것이 난류다. 그래서 난류 화염 속도 라는 양을 정의한다. 정의는 반응률의 적분에서 나온다. 평균 연료 질량분율 수송방정식을 화염 브러시 법선 방향으로 적분하고 확산항을 소거하면 이렇게 남는다.
는 미연 기체 밀도, 와 는 미연·기연 측 연료 질량분율, 는 평균 연료 반응률, 은 평균 화염 브러시의 법선 좌표다.
이 식이 층류에서 쓰던 관계식을 그대로 확장한 형태라는 점이 중요하다. 층류판은 대신 순간 반응률이 들어간다. 즉 는 속도로 정의된 양이 아니다. 단위 면적당 태우는 능력을 적분한 양이다. 이 사실이 뒤에서 전부를 설명한다.
틀린 직관 — 난류가 연료를 더 잘 섞어준다?#
가장 흔한 설명은 이렇다. 난류가 연료와 공기를 잘 섞어주니까 반응이 빨라진다. 예혼합 화염에서는 틀렸다.
예혼합이라는 말 그대로, 연료와 공기는 점화 전에 이미 섞여 있다. 화염면 앞의 기체는 이미 완벽한 혼합기다. 난류가 더 섞을 것이 남아 있지 않다. 혼합이 속도를 지배하는 쪽은 확산 화염(연료와 산화제가 따로 공급되는 화염)이지 예혼합 화염이 아니다.
두 번째 버전도 있다. 난류가 유효 확산계수를 키우니까 화염이 빨라진다는 설명이다. 층류 화염 속도는 로 스케일한다. 여기서 를 난류 확산계수 로 갈아 끼우면 가 된다. 제곱근이다. 그런데 실험이 보여주는 초기 기울기는 직선이다. 지수가 맞지 않는다.
여기서 더 어긋나는 지점이 있다. 두 설명 모두 화염이 난류를 가만히 놔둔다고 가정한다. 실제로는 반대다. 점화 직후 온도가 300 K에서 2000 K 위로 뛴다. 동점성계수 는 대략 로 오르므로 20배 넘게 커진다. 국소 Reynolds 수 는 그만큼 떨어진다. 잘 발달한 난류가 점화 후 층류로 되돌아갈 수 있다는 뜻이다. 난류가 화염을 흔드는 동안 화염도 난류를 죽이고 있다.
Damköhler의 답: 속도가 아니라 면적이다#
Damköhler는 다른 그림을 내놓았다. 난류는 국소 연소를 빠르게 하지 않는다. 화염면을 접는다.
가정은 하나다. 주름진 화염면의 모든 점이 국소적으로는 여전히 로 전파한다. 화학은 건드리지 않고 기하만 바꾼다. 그러면 질량 보존이 답을 준다. 주름진 실제 면적 를 통과하는 미연 기체와, 평균 화염 브러시의 투영 면적 를 통과하는 미연 기체가 같아야 한다.
는 주름 인자(wrinkling factor), 곧 단위 투영 면적당 화염면 면적이다. 좌변이 면적비이고 우변이 속도비다. 두 개는 같은 수다.
주름의 크기는 난류가 정한다. 크기 의 와류가 화염면을 의 속도로 밀어내는 동안 화염면 자신은 로 되밀린다. 두 변위의 비가 주름의 기울기를 정하고, 기울기가 면적 증가를 정한다. 여기서 Damköhler의 선형 법칙이 나온다.
는 미연 기체의 RMS 속도 변동, 은 층류 화염 속도다. 이면 로 돌아간다.
이 그림이 성립하려면 화염면이 와류보다 얇아야 한다. 두 무차원수가 그 조건을 잰다.
는 Damköhler 수(난류 시간 / 화학 시간), 는 Karlovitz 수(화학 시간 / Kolmogorov 시간)다. 는 와류 회전 시간, 는 화학 반응 시간, 는 가장 작은 와류의 시간 규모다. 이면 화염이 와류보다 빠르게 반응한다. 이면 가장 작은 와류조차 화염 두께 안으로 못 들어간다. 이 둘이 동시에 성립하는 영역이 flamelet 영역이고, Damköhler의 선형 법칙은 그 안에서만 유효하다.
주름을 직접 만들어 본다#
아래 시뮬레이션에서 주름을 직접 만들어보자.
What to watch: the drawn front's measured arc length is forced to equal S_T/S_L, so a faster flame is a literally longer line. Raise u'/S_L and the amber linear-law ghost runs away from the real front — that gap is the bending effect. Lower l_t/δ_L to drive Ka past 25 and the sheet thickens, desaturates, then breaks into holes.
을 0에서 6까지 올리면 화염면이 촘촘하게 접히고, 측정된 가 4 근처에서 더 오르지 않는다. 옆의 직선 Damköhler 예측은 7까지 올라가 있으므로 두 선이 눈에 띄게 갈라진다. 이제 을 2로 내린 채 을 12까지 밀어보라. 가 29를 넘으면서 배지가 quenching으로 바뀌고 는 3.5에서 2.0까지 주저앉는다.
실험이 보여준 꺾임 — bending과 소염#
실험 데이터는 세 구간을 그린다. 처음에는 거의 직선. 그다음 평평해짐. 마지막에 소염.
평평해지는 이유는 셋이 겹친다. 첫째, 주름은 생성만 되는 것이 아니라 소멸도 한다. 화염면은 스스로 법선 방향으로 전파하므로 볼록한 첨점(cusp)을 계속 깎아낸다. 생성과 소멸이 균형을 이루면 가 포화한다. 둘째, 가 1을 넘으면 작은 와류가 예열대 안으로 들어가 화염을 두껍게 만든다. 국소 자체가 떨어진다. 셋째, 강한 변형률이 국소적으로 화염편을 꺼뜨려 화염 시트에 구멍을 낸다.
이 셋을 한 식으로 압축한 형태를 이 글에서 쓴다.
는 주름 포화 상한(여기서 6.0), 는 소염 Karlovitz 수(여기서 25.0), 는 0과 1 사이의 소염 감쇠 인자다. 분모의 포화항이 bending을 만들고, 가 소염을 만든다.
여기서 정직해야 한다. 이 식은 유도된 법칙이 아니다. 관찰된 곡선 모양을 재현하도록 맞춘 현상론적 형태다. 과 은 물리 상수가 아니라 튜닝 값이고, 연료·압력·버너 형상이 바뀌면 같이 바뀐다. 소스 문헌도 같은 말을 한다. 곡선의 꺾임을 예측하는 것은 어렵고, 소염 한계를 예측하는 것은 "거의 불가능하다". 직선 구간만 물리에서 나왔고 나머지 두 구간은 아직 상관식이다.
화염도 난류를 바꾼다 — baroclinic 토크#
화염면을 지나면 기체가 팽창한다. 질량 플럭스는 보존되어야 하므로
는 기연 기체 밀도, 는 화염면을 빠져나오는 기체 속도다. 화염면은 유동을 일곱 배로 가속하는 장치다. 이 가속이 난류에 그대로 작용한다.
와도 수송방정식의 네 항이 그 경로를 보여준다.
는 와도 벡터, 는 속도, 는 밀도, 는 압력이다. I은 와류 신장, II는 팽창(dilatation), III은 점성 소산, IV는 baroclinic 토크(밀도 구배와 압력 구배가 어긋날 때 생기는 회전력)다.
차가운 난류에서는 II와 IV가 0이다. 화염이 있으면 둘 다 살아난다. 화염면에서 이므로 II는 와도를 줄인다. 반면 IV는 새 와도를 만든다. 화염면을 가로지르는 는 면에 수직으로 크고, 가속이 만드는 는 방향이 다르다. 둘의 외적이 0이 아니다. 이것이 "flame-generated turbulence"의 출처다.
아래 시뮬레이션에서 와류 하나를 화염면에 직접 던져보자.
What to watch: at the defaults (u_θ/S_L = 2, r/δ_L = 10) the vortex dies on the front and a violet counter-rotating pair is all that is left. Push u_θ/S_L past ~9 and it punches through, dragging a cusp that stays. The arrows get ρ_u/ρ_b times longer on the burnt side — that jump is the dilatation term; set ρ_u/ρ_b = 1 and the baroclinic pair disappears entirely.
을 2 근처에 두고 Release를 누르면 와류가 화염면에서 부서지고, 그 자리에 반대로 도는 와도가 새로 태어난다. 같은 값을 10 근처로 올리면 와류가 거의 그대로 통과하며 깊은 첨점만 남긴다. 를 1로 내리면 가 사라져 baroclinic 생성이 통째로 꺼지는 것도 확인된다.
이 되먹임에는 성가신 부작용이 하나 있다. 곡선에서 말하는 ""가 어디의 인지 모호해진다는 점이다. 미연 기체에서 잰 값, 기연 기체에서 잰 값, 화염 브러시 전체에서 잰 값이 서로 다른 숫자다. 밀도 가중을 하지 않은 브러시 평균은 미연·기연 두 상태를 오가는 간헐성까지 변동으로 세어버려 값이 부풀려진다. 이 구분은 모델에 잘 반영되지 않는다. RANS 코드가 화염 근처에서 비물리적인 거동을 보이는 이유 중 하나다.
Python으로 그리는 bending 곡선#
위 모델을 그대로 코드로 옮긴다. 두 가지 난류 규모에서 선형 예측과 bending 예측을 나란히 찍는다.
import math
SIGMA_INF = 6.0 # 주름 포화 상한
KA_QUENCH = 25.0 # 소염 Karlovitz 수
def damkohler_number(u_ratio, l_ratio):
"""Da = 난류 시간 / 화학 시간."""
return l_ratio / u_ratio
def karlovitz_number(u_ratio, l_ratio):
"""Ka = 화학 시간 / Kolmogorov 시간."""
return u_ratio**1.5 * l_ratio**-0.5
def quench_factor(ka):
"""Ka가 커지면 0으로 떨어지는 소염 감쇠 인자."""
return math.exp(-(ka / KA_QUENCH) ** 2)
def wrinkling_factor(u_ratio, l_ratio):
"""Sigma = S_T / S_L (포화 + 소염 포함)."""
ka = karlovitz_number(u_ratio, l_ratio)
return 1.0 + quench_factor(ka) * u_ratio / (1.0 + u_ratio / SIGMA_INF)
def turbulent_flame_speed(s_laminar, u_ratio, l_ratio):
"""난류 화염 속도 [m/s]."""
return s_laminar * wrinkling_factor(u_ratio, l_ratio)
U_RATIOS = [0.5, 1, 2, 3, 4, 6, 8, 10, 12]
for l_ratio in (10.0, 2.0):
print(f"l_t/delta_L = {l_ratio:.0f}")
print(f"{'u/SL':>6}{'Da':>9}{'Ka':>9}{'linear':>9}{'bending':>9}")
for u_ratio in U_RATIOS:
da = damkohler_number(u_ratio, l_ratio)
ka = karlovitz_number(u_ratio, l_ratio)
lin = 1.0 + u_ratio # Damkohler 선형 법칙
ben = wrinkling_factor(u_ratio, l_ratio) # 포화 + 소염
print(f"{u_ratio:6.1f}{da:9.2f}{ka:9.2f}{lin:9.2f}{ben:9.2f}")
print()
print("S_T at S_L = 0.40 m/s, u'/S_L = 6, l_t/delta_L = 10 :",
round(turbulent_flame_speed(0.40, 6.0, 10.0), 3), "m/s")출력은 이렇다.
l_t/delta_L = 10
u/SL Da Ka linear bending
0.5 20.00 0.11 1.50 1.46
1.0 10.00 0.32 2.00 1.86
2.0 5.00 0.89 3.00 2.50
3.0 3.33 1.64 4.00 2.99
4.0 2.50 2.53 5.00 3.38
6.0 1.67 4.65 7.00 3.90
8.0 1.25 7.16 9.00 4.16
10.0 1.00 10.00 11.00 4.20
12.0 0.83 13.15 13.00 4.03
l_t/delta_L = 2
u/SL Da Ka linear bending
0.5 4.00 0.25 1.50 1.46
1.0 2.00 0.71 2.00 1.86
2.0 1.00 2.00 3.00 2.49
3.0 0.67 3.67 4.00 2.96
4.0 0.50 5.66 5.00 3.28
6.0 0.33 10.39 7.00 3.52
8.0 0.25 16.00 9.00 3.28
10.0 0.20 22.36 11.00 2.68
12.0 0.17 29.39 13.00 2.00
S_T at S_L = 0.40 m/s, u'/S_L = 6, l_t/delta_L = 10 : 1.559 m/s두 열을 비교하면 지점이 보인다. 까지는 선형과 bending이 15% 안에서 겹친다. 에서 이미 7.00 대 3.90으로 벌어진다. 그리고 큰 규모()에서는 까지 밀어도 가 4 근처를 지킨다. 작은 규모()에서는 같은 에서 가 29를 넘어 2.0까지 떨어진다. 난류 강도가 같아도 규모가 작으면 먼저 꺼진다.
다음에 난류 화염을 만나면#
를 속도로 읽지 말고 면적으로 읽는 습관이 절반을 해결한다. 난류가 화학을 빠르게 만든 것이 아니다. 같은 로 타는 면을 더 넓게 펼쳐 놓았을 뿐이다. 실험에서 가 안 오르면 반응 속도를 의심하기 전에 화염면 면적이 왜 포화했는지를 먼저 본다.
하나로 판단하지 않는 것이 나머지 절반이다. 이 같아도 이 다르면 가 열 배 차이 난다. 위 표에서 일 때 가 4.03이거나 2.00이었다. 갈린 것은 난류 강도가 아니라 난류 규모다. 를 같이 계산하지 않은 상관식은 절반만 말하고 있다.
그리고 계산기가 뱉은 bending 곡선을 법칙으로 취급하지 않는다. 직선 구간은 기하에서 나왔고, 꺾임과 소염은 데이터에 맞춘 것이다. RANS 결과가 화염 근처에서 이상하면 난류 모델 상수를 먼저 만지는 대신 를 어디서 재고 있는지부터 확인하는 편이 빠르다.
도움이 됐다면 공유해주세요.