この記事は著者が韓国語で書いた原文の翻訳です。 原文(한국어)を読む
回転する球がなぜ曲がるのか — 循環・マグナス効果・クッタ–ジューコフスキーの定理
揚力の式は循環だけを残して形を消しますが、その循環を決めるのは粘性です。
回転する砲弾がまっすぐ飛ばなかった日
1853年のベルリンで、Heinrich Magnus は、砲手がすでに知っていた問いを風洞へ上げました。回転する砲弾はまっすぐ飛ばず、横へずれます。軸を立てた円柱は、軸に垂直な方向へ一定の側力を出しました。
粘性のない流体でも表面は滑ります。それでも上面は速く、下面は遅いです。その差を作る量が循環 です。
のスライダーを0から上げると黄色い淀み点が下へ動き、 を超えるとその点が表面から離れます。
淀み点が底に集まる場所が臨界の回転です。そこを超えると、流線は円柱を一周したまま下へ抜けません。
同じ循環は翼にも付きます。付く始まりを、非粘性の理論だけでは起こせません。それは後で出発渦が閉じます。
循環 — 閉曲線を一周する積分
循環 の定義は一行です。
閉曲線 の上で、速度の接線成分を一周積分した量です。 は速度、 は微小接線です。
Stokes で面積分に移すと
は渦度、 は閉曲線が囲む面の法線微小面積です。循環は、その中に閉じ込められた渦度の総量です。
閉曲線の内部に渦度が一点もなくても、循環は0でないことがあります。中心に渦度が集まった点渦を囲む大きな環がそうです。単位も違います。渦度は [1/s]、循環は [m²/s] です。面積を掛けたあとの量です。
回転円柱が上方へ引き上げられる理由
非粘性・非回転・非圧縮で定常解を作るきれいな道は、基本解の重ね合わせです。一様流にダブレットを足すと静止円柱になります。中心に点渦を足すと回転円柱になります。
複素ポテンシャルにまとめると
三項が一様流、ダブレット、点渦です。 の正は時計回りです。表面 の接線速度は
上面 では二項が同じ符号で足され、 が大きくなります。下面 では打ち消されます。上が速いと Bernoulli
により上面の圧力が低くなります。周に沿って圧力差を積分すると、上向きの力が残ります。
淀み点は です。 です。臨界循環 では なので、解は の一つ、底だけです。前の図の黄色い点がそこに集まります。
クッタ–ジューコフスキーの定理 — L′ = ρU∞Γ#
表面圧力を積分すると、結果は短くなります。非粘性の定常流では抵抗は0で、単位幅の揚力は
1894年に Lanchester が仮説として出し、20世紀初めに Kutta と Joukowski が別に証明しました。
形が式から抜けます。二次元断面が何であれ、周りの循環が同じなら揚力は同じです。揚力は回転角速度ではなく循環に比例します。回らない翼でも、断面と迎え角が合えば周りに循環が生まれ、その循環が揚力を作ります。
抵抗が0になる場所は、循環のない円柱と同じです。一様流にダブレットを足した複素ポテンシャルが、その抵抗0を d'Alembert として残します。ここでの は、そのポテンシャルに点渦を一行足したものです。
出発渦と粘性の見えない役割
矛盾が残ります。止まった流体には渦度がなく、どの閉曲線の循環も0です。Kelvin の循環定理 — 非粘性で外力が保存的な流れでは、物質曲線に沿う循環は時間について一定 — は、その0が保たれると言います。
飛行機の揚力は、粘性を入れないと出てきません。翼が動き出した瞬間、非粘性の理論は後縁の尖った角で無限大の速度を要求します。実際の流体はその運動エネルギーをすぐ削り、後縁から渦が離れます。反時計回りの出発渦です。
Kelvin は、翼と後流を一緒に含む大きな閉曲線の総循環が0であることを要求します。だから翼の周りには同じ大きさの時計回りの循環が残ります。束縛渦であり、Kutta–Joukowski の です。
start motion を入れると後縁から反時計回りの渦が離れ、迎え角を上げるとその渦と翼の時計回りの循環が同じ大きさで増えます。
二つの循環の和は0のままです。粘性が一度剥離させた後を、非粘性の理論が読み直しているだけです。
コード: 表面速度と揚力係数
同じ表面速度を NumPy に移します。流れ関数、表面圧力係数、揚力係数です。
import numpy as np
def cylinder_streamfunction(x, y, U_inf, gamma, R):
"""流れ関数 ψ = U sinθ (r - R²/r) + Γ/(2π) ln(r/R)、Γ>0 を時計回りと約束."""
r = np.hypot(x, y)
theta = np.arctan2(y, x)
safe = np.maximum(r, 1e-9)
psi_uniform = U_inf * np.sin(theta) * (safe - R ** 2 / safe)
psi_vortex = (gamma / (2 * np.pi)) * np.log(safe / R)
return psi_uniform + psi_vortex
def surface_pressure_coeff(theta, U_inf, gamma, R):
"""表面 r=R での圧力係数 Cp = 1 - (u/U∞)²."""
u_theta = -2 * U_inf * np.sin(theta) - gamma / (2 * np.pi * R)
return 1.0 - (u_theta / U_inf) ** 2
def magnus_lift_coefficient(gamma, U_inf, R):
"""L' = ρU∞Γ → C_L = 2Γ/(U∞·d)、直径 d = 2R."""
return gamma / (U_inf * R)
# 三段階で実際に走らせてみる(ρ=1 と仮定)
U_inf, R = 10.0, 0.5
for gamma in [0.0, np.pi * U_inf * R, 4 * np.pi * U_inf * R]:
theta = np.linspace(-np.pi, np.pi, 360)
cp = surface_pressure_coeff(theta, U_inf, gamma, R)
L_per_span = U_inf * gamma
cl = magnus_lift_coefficient(gamma, U_inf, R)
print(f"Γ={gamma:6.2f} C_L={cl:5.2f}"
f" Cp_top={cp[270]:+.2f} Cp_bot={cp[90]:+.2f}"
f" L'/ρ={L_per_span:6.2f}")なら揚力は0で、上下の圧力係数は対称です。コードが回す三つの循環は 、、 です。、 で表面の式に を入れると、数が閉じます。
は順に 、、 です。上面の速度は 、、 です。下面は 、、 です。 なので上面は 、、、下面は 、、 です。最後の欄の下面速度0と が、底の淀み点です。
は 、、 です。注釈の は なので同じ式です。 は 、、 です。これは の解析値です。コードは360個の角度で拾うので、印刷インデックスはその角度から一枠ずれることがあります。その印刷値で表は作りませんでした。
二点の だけで力を見積もると、積分した揚力より大きくなります。臨界循環では下面の が1、上面が で、差は16です。動圧 に16を掛けると圧力差は です。その差を直径 にそのまま載せると、単位幅の力は です。定理が渡す値は で、 なら です。二点の見積もりは積分の 倍、約1.27倍です。周を回るあいだ圧力が二つの端の間を動き続けるからです。淀み点一つの では揚力は閉じません。中間の も同じ比です。そのとき上面の は 、下面は 、差は4です。二点の見積もりは 、定理の揚力は なので、比は再び です。上下だけを拾って過大に見る割合は、循環の大きさに寄りません。
縫い目が循環を決めると式は設計に使えません
三つの場合とも円柱はそのままです。変わったのは だけで、 は0から まで動きます。Kutta–Joukowski は形を消して循環だけを残します。循環をどう作るかは式の外です。
野球の縫い目は剥離を決め、剥離が循環を決めます。定理が設計式で止まる場所がそこなら、実際の球がどちらへ曲がるかは開いたままです。回転する球のマグナス効果が、その問いを球の表面で開き直します。
関連記事
役に立ったらシェアしてください。