本文译自作者的韩语原文。 阅读原文(한국어)
粗糙的球为何飞得更远 — 阻力危机与边界层分离
粗糙度0.85把飞行点的Cd降到0.116,拉到1.0后同一70 m/s又回到0.124。
同样的速度,光滑球似乎应该更干净地切开空气。高尔夫球把这个猜测打破了。表面有几百个凹坑(dimple,小凹陷),飞得却比光滑球将近远一倍。差距来自阻力危机(drag crisis):阻力系数在某一段雷诺数上像悬崖一样掉下去。
把边界层按钮从层流拨到湍流,分离点就向后移,阴影里的尾流变窄。
Toggle the boundary layer. The turbulent one carries momentum closer to the wall, separates later, and leaves a thinner wake — the shaded region behind the cylinder shrinks and the pressure drag drops.
看湍流一侧尾流收了多少。宽度一下来,压差阻力就掉到一半以下。更乱的边界层反而在削阻力。
压差阻力与摩擦阻力
球受到的力有两路。粘性贴着表面刮出来的摩擦阻力(skin friction)。前后压差造成的压差阻力(form drag)。
像球这样的钝体(bluff body),压差项几乎是全部。前面空气撞上来,压力高。后面是流动已经离开的地方,留下低压。这道差把球向后拉。
整段阻力收进一个系数。
是密度,是相对速度,是迎风面积,是阻力系数。高尔夫球动的是。这个值随雷诺数先铺着,然后突然掉下去。
是直径,是粘性系数。是惯性力与粘性力之比。
边界层离开壁面的瞬间
压差阻力有多大,取决于流动何时离开壁面。这就是边界层分离(separation)。
球的前半段空气加速,压力下降。后半段反过来。空气减速,压力重新升高。这是逆压梯度(adverse pressure gradient,压力沿流动方向增大)。
靠近壁面的空气已经把不少动量耗在粘性上。它顶不住这股逆风。先停住,再被推回去。边界层就在那里离开,身后留下一片宽的低压尾流(wake)。
分离越早,尾流越宽。尾流越宽,压差阻力越大。
层流边界层与湍流边界层的分工
分离角取决于边界层是层流还是湍流。
层流边界层各层互不掺混。壁面附近又慢又缺动量,一碰上逆压梯度就早早屈服。从前驻点算起大约82°。
湍流边界层把外层的快流体拽向壁面。壁面附近更结实,同一股逆风能多撑一会儿。分离被推到大约120°,尾流变窄。上面那个按钮里宽度的变化,就是这个角度差。壁面附近为什么撑得住,得连着管内分层被搅开的结构一起看,数字才站得住。
阻力危机 — 如悬崖般骤降#
光滑球的从到停在大约0.4–0.5。
到附近跌破0.1。流动方向没有反过来。边界层从层流转捩(transition)成湍流,分离点被向后推。变窄的尾流把系数拖下悬崖。这次骤降就是阻力危机。
表面越粗糙,转捩就越在更低的开始。凹坑是故意做粗糙的表面。高尔夫球的飞行(约)若放在光滑球上,仍在危机之前,停在高一侧。凹坑把悬崖提前,让飞行速度已经用上低。能用手拖动的曲线,放在数字输出的正后面。
Python — 阻力危机前后的高尔夫球#
光滑球和凹坑球放进同一个速度。直径0.0427 m,速度70 m/s。
import math
def cd_subcritical(Re):
# Clift-Gauvin 关联式 (在 Re < 3e5 时有效)
return (24.0 / Re) * (1 + 0.15 * Re**0.687) + 0.42 / (1 + 42500 * Re**-1.16)
def smoothstep(x, a, b):
t = max(0.0, min(1.0, (x - a) / (b - a)))
return t * t * (3 - 2 * t)
def drag_coefficient(Re, roughness):
# roughness 0(光滑)~1(凹坑): 把临界 Re 左移
sub = cd_subcritical(Re)
log_re = math.log10(Re)
log_crit = 5.55 - 1.35 * roughness
t = smoothstep(log_re, log_crit - 0.18, log_crit + 0.18)
sup = 0.08 + 0.13 * smoothstep(log_re, log_crit, 7.0) # 危机之后的分支
return sub * (1 - t) + sup * t
def drag_force(U, D, roughness, rho=1.2, mu=1.8e-5):
Re = rho * U * D / mu
Cd = drag_coefficient(Re, roughness)
A = math.pi * (D / 2) ** 2 # 正面投影面积
Fd = 0.5 * rho * U**2 * A * Cd
return Re, Cd, Fd
D = 0.0427 # 高尔夫球直径 [m]
U = 70.0 # 击出后的速度 [m/s]
for label, rough in [("smooth", 0.0), ("dimpled", 0.85)]:
Re, Cd, Fd = drag_force(U, D, rough)
print(f"{label}: Re={Re:.2e} C_D={Cd:.3f} F_D={Fd:.3f} N")输出:
smooth: Re=1.99e+05 C_D=0.487 F_D=2.049 N
dimpled: Re=1.99e+05 C_D=0.116 F_D=0.488 Ncyan: sphere C_D · green: Stokes 24/Re. Raise roughness and the drag-crisis cliff slides toward lower Re — a dimpled ball trips the boundary layer early.
把roughness滑块拉高,悬崖就向左移。把logRe标记放在5.3附近,光滑曲线还在平台上,粗糙曲线已经落到底。输出里的0.487和0.116就是这两个位置。
输出里的2.049 N和0.488 N来自同一个动压。 Pa。直径0.0427 m的迎风面积约 m²,与动压相乘是4.210 N。乘上0.487得到2.049 N,乘上0.116得到0.488 N,比值是4.20。
临界对数是 roughness。粗糙度为0时是5.55,约。0.85时是4.40,约。飞行的对数是5.299。光滑球的转捩窗口从5.37才打开,所以5.299还在窗外,亚临界分支给出0.487。凹坑球已经站在超临界分支上。这条分支从0.08出发,到对数7升到0.21。roughness为0.85时smoothstep是0.275,,与输出一致。
把roughness推到1,同一个5.299的smoothstep变成0.341,回到0.124,力大约回到0.52 N。凹坑临界的中点,约,对应8.9 m/s。70 m/s在它上方。球慢到这个速度,粗糙表面也会走回高。
凹坑,以及其他舞台
同样的角度也出现在别的装置上。汽车把车尾收顺,用来延后分离、缩小尾流。板球只打磨一侧,让两个分离点错开。圆柱上缠一道绊线(trip wire,故意把边界层变成湍流的细丝),危机就被提前。
决定阻力的,与其说是粘性直接刮掉的摩擦,不如说是流动何时离开壁面。
再加粗反而把阻力抬回去的位置
70 m/s已经在危机之后。在这里把roughness加到0.85以上,会从0.116回到0.124。输出里4.20倍的差距,不是滑块的终点。
把凹坑做在还要传热的表面上,壁面摩擦会一起变大。这道摩擦怎样换成传热,是只测阻力来对准热量在问的事。为了压低压差阻力而提前转捩的表面,会不会另收一张热的账单?
相关文章
如果对您有帮助,请分享。