本文译自作者的韩语原文。 阅读原文(한국어)
旋转的球为什么会拐弯 — 环量、马格努斯效应与库塔–儒科夫斯基定理
升力公式只留下环量、抹掉外形,但把环量定下来的是粘性。
旋转的炮弹拒绝直飞的那一天
1853年,柏林。Heinrich Magnus 把炮手已经知道的问题放进了风洞。旋转的炮弹不走直线,往侧面滑。轴竖起来的圆柱,在垂直于轴的方向上给出定常的侧力。
没有粘性,表面照样滑。可上面还是快,下面还是慢。造成这个差别的量是环量 。
把 滑块从0往上推,黄色驻点就往下走;超过 ,这个点离开表面。
驻点聚到底部的地方,就是临界旋转。再往上,流线绕圆柱一圈,不再从下方溜走。
同样的环量也能贴在机翼上。非粘理论自己开不了这个头。后面用起动涡把它收住。
环量 — 闭曲线上的一行积分
环量 的定义是一行。
在闭曲线 上把速度的切向分量积一圈。 是速度, 是微元切向。
用 Stokes 挪到面积分,
是涡量, 是闭曲线所围曲面的法向微元。环量就是困在里面的涡量总和。
闭曲线里面可以一个涡量点都没有,环量照样不是0。围着点涡的大环就是这样。单位也不一样。涡量是 [1/s],环量是 [m²/s],涡量再乘面积。
旋转圆柱为什么被向上拽起
在无粘、无旋、不可压里,干净的定常解是基本解的叠加。均匀流加偶极子,得到静止圆柱。中心再加点涡,就变成旋转圆柱。
收成一个复势,
三项是均匀流、偶极子、点涡。 为正是顺时针。表面 的切向速度是
上表面 ,两项同号相加, 变大。下表面 ,互相抵消。上面更快,由 Bernoulli
上表面压力就低。沿周向把压力差积起来,剩下向上的力。
驻点是 ,于是 。临界环量 时 ,解只剩 ,在底部。前面图里的黄点就聚在那里。
库塔–儒科夫斯基定理 — L′ = ρU∞Γ#
把表面压力积完,结果很短。无粘定常流里阻力是0,单位宽度升力是
1894年 Lanchester 把它写成猜想。20世纪初 Kutta 和 Joukowski 各自证明了它。
外形从式子里掉出去。二维截面是什么都行,只要绕一周的环量相同,升力就相同。升力正比于环量,不是转速。不转的机翼,只要截面和迎角对得上,周围也会长出环量,升力就来自那个环量。
阻力掉到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。乘上动压 ,压差就是 。把这个差原样铺在直径 上,单位宽度的力会是 。定理给出的是 ,而 ,所以 。两点估计是积分的 倍,大约1.27倍。因为绕一周时压力一直在两个极端之间变动。一个驻点的 闭不上升力。中间值 也是同一个比。那时上表面 ,下表面 ,差是4。两点估计是 ,定理的升力是 ,比又是 。只取上下两点而高估的比例,并不跟着环量的大小走。
缝线一旦定下环量,升力公式就不再是设计式
三种情形里圆柱没变。变的只有 , 从0走到 。Kutta–Joukowski 抹掉外形,只留环量。环量怎么产生,在公式外面。
棒球的缝线决定分离,分离决定环量。如果定理在这里不再是设计式,真实的球到底往哪边弯?旋转球的马格努斯升力把这个问题重新放回球的表面。
相关文章
如果对您有帮助,请分享。