회전하는 공은 왜 휘어지는가 — 마그누스 효과와 순환
스핀을 지우지 않고 비행축에 맞추면 벡터곱이 0이 되어 옆힘이 사라진다. 휘는 양은 스핀 비 S가 정한다.
1742년, 영국의 벤저민 로빈스는 이상한 것을 보고 있었다. 머스킷 총알이 곧게 날아가지 않았다. 같은 총, 같은 화약, 같은 조준인데 어떤 탄은 왼쪽으로, 어떤 탄은 오른쪽으로 휘었다. 총구를 빠져나온 둥근 탄이 제멋대로 돌고 있었다. 회전과 휘어짐. 둘은 짝으로 나타났다.
100년 뒤 구스타프 마그누스가 그 옆힘을 실험으로 고정했다. 회전하는 물체가 유동 속에서 옆으로 밀린다. 그 힘의 크기를 적는 양이 순환(circulation)이다.
스핀 슬라이더를 0에서 백스핀으로 올리면 위쪽 유선이 촘촘해지고, 힘 화살표가 위를 향한다.
정체점이 아래로 밀리는지 본다. 스핀을 반대로 뒤집으면 화살표도 뒤집힌다.
휘어지는 포탄이라는 오래된 골칫거리#
로빈스 이전에도 포병들은 알고 있었다. 대포알은 표적을 비껴간다. 바람 탓만은 아니었다. 주조 공정의 공차 때문에 포신과 포환 사이에 틈(당시 용어로 windage)이 있었고, 발사 순간 포환은 포신 벽을 튕기며 예측 불가능한 회전을 얻었다. 그 회전이 비행 중 궤적을 휘게 했다.
문제는 심각했다. 탄도학은 국가의 생존이 걸린 계산이었다. 뉴턴은 『프린키피아』에서 포물선 궤적을 유도했지만, 실제 탄은 포물선을 벗어났다. 로빈스는 그 이탈의 일부가 공기저항이고, 일부는 회전임을 실험으로 갈라냈다.
핵심 질문은 이것이다. 왜 회전이 옆 방향 힘을 만드는가.
옆으로 미는 힘은 순환에서 나온다#
먼저 힘의 크기부터 보자. 회전하는 원통이 속도 의 균일류 안에 놓였을 때, 단위 길이당 받는 옆 방향 힘은 놀랍도록 단순하다.
여기서 는 유체 밀도, 는 자유류 속도, 는 순환이다. 이 관계를 순환이 양력을 만드는 쿠타–주코프스키 정리라 부른다. 양력은 오직 순환에만 비례한다. 물체 모양은 순환을 얼마나 만드느냐로만 개입한다.
순환은 닫힌 경로를 따라 속도를 적분한 양이다.
는 유속, 은 경로 접선 방향 미소 벡터다. 순환이 0이 아니면 물체 주위를 도는 알짜 회전 흐름이 있다는 뜻이다. 회전하는 반지름 , 각속도 의 원통은 표면이 유체를 끌어 이 알짜 흐름을 만든다.
방향은 벡터곱으로 정해진다.
는 회전 각속도 벡터다. 이 식이 뒤에서 강선의 비밀을 풀 열쇠가 된다.
라서 가 두 배가 되면 순환도 두 배다. 정상 양력 도 두 배다. 모양은 이 식에 없다. 반지름 는 제곱으로 들어간다. 같은 각속도라도 공이 크면 순환이 빨리 커진다. 방향은 다. 두 벡터가 나란하면 곱은 0이고 옆힘은 사라진다. 강선이 뒤에서 쓰는 정렬이 이 한 줄이다.
회전이 순환을 만드는 진짜 이유#
순환은 왜 생기나. 답은 점성과 점착 조건(no-slip condition, 벽에서 유체 속도가 벽 속도와 같아짐)에 있다.
회전하는 공의 한쪽 면은 유동과 같은 방향으로 돌고, 반대쪽 면은 유동을 거슬러 돈다. 유동과 같이 도는 쪽에서는 표면이 경계층을 밀어줘 흐름이 더 늦게 떨어진다(박리 지연). 거슬러 도는 쪽에서는 흐름이 일찍 떨어진다. 결과적으로 후류가 한쪽으로 휜다.
후류가 아래로 휘면, 유체는 아래 방향 운동량을 얻는다. 반작용으로 공은 위로 밀린다. 이것이 마그누스 힘의 본질이다. 공이 흐름을 한쪽으로 꺾고, 그 대가로 반대쪽 힘을 받는다.
얼마나 휘느냐는 스핀 비가 정한다#
레이놀즈 수는 잠시 접어두자. 마그누스 효과의 세기를 지배하는 무차원수는 스핀 비(spin ratio)다.
분자는 표면 속도, 분모는 자유류 속도다. 는 "공 표면이 바람보다 몇 배 빠르게 도는가"를 뜻한다. 가 커질수록 순환이 커지고 양력계수도 커진다. 야구 커브볼은 대략 , 축구 무회전킥의 반대편인 강한 감아차기는 그보다 높다.
간단한 2차원 비행을 적분해 궤적을 그려보자. 항력과 마그누스 힘만 넣는다.
import numpy as np
def magnus_trajectory(u0, spin, cm=0.16, cd=0.006, dt=0.012, steps=900):
# 위에서 내려다본 평면. x는 전진, y는 옆 방향.
pos = np.array([0.0, 0.0])
vel = np.array([u0, 0.0]) # 처음엔 곧게 발사
path = [pos.copy()]
for _ in range(steps):
sp = np.hypot(*vel) + 1e-9
# 마그누스: 속도에 수직 (-vy, vx), 부호는 스핀이 결정
a_magnus = cm * spin * np.array([-vel[1], vel[0]])
a_drag = -cd * sp * vel # 항력: 속도 반대 방향
vel = vel + (a_magnus + a_drag) * dt
pos = pos + vel * dt
path.append(pos.copy())
if pos[0] > 30:
break
return np.array(path)
for s in (0.0, 1.0, 2.0):
p = magnus_trajectory(14.0, s)
print(f"spin={s}: 옆 방향 이탈 = {p[-1, 1]:6.2f} m")
# spin=0.0: 옆 방향 이탈 = 0.00 m
# spin=1.0: 옆 방향 이탈 = 3.71 m
# spin=2.0: 옆 방향 이탈 = 6.90 m스핀이 2배가 되어도 이탈이 정확히 2배는 아니다. 궤적이 휘면 속도 방향이 바뀌고, 그러면 힘의 방향도 계속 회전하기 때문이다. 비선형이다.
코드는 , , , , 최대 900스텝, 에서 멈춘다. 출력은 spin 0에서 옆 이탈 0.00 m, spin 1에서 3.71 m, spin 2에서 6.90 m다. 3.71의 두 배는 7.42다. 6.90은 그보다 0.52 m 짧다. 궤적이 휘는 순간 마그누스 가속도 도 같이 돈다. 힘이 처음의 옆 방향에 고정되지 않아서 이탈이 선형으로 늘지 않는다. 스핀 비 에서 분모가 줄면 가 커진다. 발사 속도를 낮추면 같은 로도 더 휜다. 야구 커브의 는 이 비의 한 구간이다. 레이놀즈를 접어둔 이유는 양력 식에 Re가 없기 때문이다.
스핀 슬라이더를 왼쪽 끝에서 오른쪽 끝으로 옮기고 발사 속도를 낮추면, 점선 기준으로 파란 궤적이 뒤집히고 같은 스핀의 이탈이 커진다.
스핀을 왼쪽 끝에서 오른쪽 끝으로 옮기면 파란 궤적이 점선(무회전 기준선)을 기준으로 반대편으로 뒤집힌다. 발사 속도를 낮추면 같은 스핀에서도 더 크게 휜다. 표면 속도가 상대적으로 커져 가 오르기 때문이다.
강선이라는 거꾸로 된 해법#
여기서 역설이 등장한다. 로빈스가 찾은 해법은 회전을 없애는 게 아니라, 회전을 통제하는 것이었다. 총신 안에 나선 홈(강선, rifling)을 파서 탄이 비행 방향 축을 중심으로 돌게 만든다.
왜 이게 통하나. 마그누스 힘은 에 비례한다. 강선이 주는 회전축은 비행 방향, 즉 가 와 나란하다. 두 벡터가 평행하면 벡터곱은 0이다. 옆 방향 힘이 사라진다.
동시에 이 축 회전은 팽이처럼 자이로스코프 안정성을 준다. 탄이 제멋대로 뒤집히며 얻던 무작위 스핀을 하나의 정해진 축으로 묶어버린다. 무작위 마그누스가 사라지고 탄은 곧게 난다. 회전을 없애서가 아니라, 회전을 옆 방향 힘이 0이 되는 각도로 정렬해서 이긴 것이다.
강선 축을 비행 방향에 못 맞추면 옆힘이 남는다#
마그누스 힘은 다. 강선이 회전축을 비행 방향과 나란히 두면 두 벡터가 평행하고 벡터곱은 0이다. 옆 힘이 사라진다. 동시에 그 축 회전은 팽이처럼 자이로 안정으로, 포신 벽에서 튕기며 생기던 무작위 스핀을 한 축에 묶는다. 회전을 지운 게 아니다. 옆힘이 0인 각도로 돌린 것이다.
순환이 0이 아니면 물체 주위 알짜 회전이 있다. 원통은 로 그 회전을 표면에서 끌어 만든다. 후류가 아래로 휘면 유체는 아래 운동량을 얻고, 공은 위로 밀린다. 레이놀즈를 이 힘의 크기를 적는 자리에 두면 와 엇갈린다. Reynolds 수가 유동의 스케일을 가르는 쪽은 박리에는 들어가도, 의 줄에는 안 들어간다.
관련
도움이 됐다면 공유해주세요.