本文译自作者的韩语原文。 阅读原文(한국어)
水要流多远才变成抛物线 — 入口段长度与Hagen–Poiseuille
测点若放在入口段长度之前,中心速度还不是平均值的两倍。
把水龙头开到最大,水流会在一段距离内保持顺滑。管道内部也有类似的事发生。在入口处,水几乎感觉不到管壁的存在。速度分布几乎是平的。可是流过一段之后,断面速度分布就变成一条光滑的抛物线。中间这一段就是今天的主角。
把 Re 滑条从 100 推到 2000,橙色 fully developed 线会往右移。
这条线从五倍管径走到一百倍的过程里,入口的平坦分布还不是抛物线。中心速度变成平均值两倍的位置,只在线的下游。
管壁把消息传遍断面所需的距离
在管壁处流体不滑移(no-slip,壁面速度为零)。这个条件不会在入口一下子传遍整个断面。
一开始只有壁面附近出现一层薄薄的边界层(速度急剧变化的近壁层)。流动越往前走,这层就越往内生长。当上下两侧边界层在管中心相遇的那一刻,速度分布不再改变。从这一点起就称为充分发展(fully developed)流动。
从入口到充分发展的距离叫做水力入口段长度 。层流中它由管径 和雷诺数(惯性力与黏性力之比)决定。
其中 是断面平均速度, 是密度, 是黏性系数。当 时,入口段长度可达管径的100倍。在细实验管路里若测点选错,测到的就是仍在发展中的流动。
把数字代进去。 时 。管径 2 cm,入口段就是 2 m。代码里的条件是 、 m,于是 m,合 80 倍管径。入口往后 0.80 m,也就是 ,只走了一半。那个断面还没有充分发展。中心速度到不了 m/s。反过来 时 ,同一根 2 cm 管只要 10 cm。实验台上的短管在这个雷诺数下几乎已经发展完。管子不动、只加大流量,同一个测点就会从“发展后”变成“发展中”。
发展段的抛物线 — Hagen–Poiseuille#
一旦充分发展,轴向速度不再变化。此时 ,径向速度 。圆柱坐标下的动量方程随之简化。
压力梯度 是常数。在壁面施加 ,在中心施加 ,然后积分两次。
其中 是管半径, 是到中心的距离。结果很干净。中心线速度恰好是平均速度的两倍。这条抛物线就是Hagen–Poiseuille流动。
把 代进去,。代码里 m/s,中心就是 0.160 m/s。 的半径是 。壁面 处为 0。和这条抛物线接上的压力梯度是 。、 时 , Pa/m。按这个斜率走 10 m 是 64 Pa,走 80 m 是 512 Pa。不过这条直线只在充分发展之后成立。1.60 m 以前,边界层还在把动量抽走,中心仍在加速,压降比这条直线更陡。
压力为何以恒定速率下降 — 摩擦系数
把抛物线在断面上取平均,平均速度就与压力梯度直接挂钩。
梯度是常数,意味着压力沿管道线性下降。把这份损失打包成一个无量纲数,就得到达西摩擦系数 。
层流摩擦系数只由雷诺数决定。管壁粗糙度根本不参与。下面拖动雷诺数,让点沿着摩擦系数曲线移动。
在 区间,点精确地贴着 直线。越过门槛后曲线拐弯,换上另一条规律。
2300这道门槛 — 从层流到湍流#
当 超过约2300,原本顺滑的流动开始破碎。旋涡掺混进来,过渡为湍流。这道门槛在管内怎样分开,写在 水流变乱的那一个雷诺数 里。
湍流中入口段长度反而变短。 大致停在10到60之间,与层流的100倍形成对比。代价是摩擦增大。光滑管的一条经验式就是Blasius公式。
指数从 变缓到 。即便提高雷诺数,摩擦也不再像以前那样快速下降。要以更大的压力推动同样的流量。
用Python重现入口段长度与摩擦#
用数字追踪一根小管道吧。
import numpy as np
def entrance_length(Re, D):
# 层流水力入口段长度 [m]
return 0.05 * Re * D
def poiseuille_profile(r, R, u_mean):
# 充分发展的层流速度分布 (Hagen-Poiseuille)
return 2.0 * u_mean * (1.0 - (r / R) ** 2)
def darcy_friction(Re):
# 层流摩擦系数 (Re < 2300)
return 64.0 / Re
D = 0.02 # 管径 [m]
rho, mu = 1000.0, 1e-3
u_mean = 0.08 # 平均速度 [m/s]
Re = rho * u_mean * D / mu
print(f"Re = {Re:.0f}") # Re = 1600
print(f"入口段长度 = {entrance_length(Re, D):.2f} m") # 1.60 m
print(f"中心速度 = {poiseuille_profile(0, D/2, u_mean):.3f} m/s") # 0.160
dpdx = -32 * mu * u_mean / D**2
print(f"压力梯度 = {dpdx:.2f} Pa/m") # -6.40 Pa/m
print(f"摩擦系数 f = {darcy_friction(Re):.4f}") # 0.0400一根直径2 cm的管,入口段长度却有1.6 m,是管径的80倍。实验台上那些短管路,大多处理的是仍在发展中的流动。
测点落在入口段之前
压力测点若放在 之前, 还不是常数。代码打出来的 、、梯度 Pa/m,都属于充分发展之后。在 1.60 m 以内套同一条式子,损失会偏小。入口附近中心仍在加速,压降更陡。
跨进湍流以后,入口段变短,摩擦变大。 过了大约 2300, 落在 10 到 60。摩擦离开 ,改乘 Blasius 的 。 时 , 的四次方根是 10,于是 。大约五倍。管子短,不是继续用层流公式的理由。泵的扬程会不够。壁面剪切怎样接到外流分离上,接在 粗糙球为什么飞得更远 后面。
相关文章
如果对您有帮助,请分享。