摘要:在水面上撒上微粒,然后允许水流从很小的高度入射到水面。在一定条件下,微粒可能开始沿水流向上移动。此现象的发生机理为马兰戈尼效应,本文对其进行了深入的研究,重点分析了水流冲击力和表面张力梯度力的大小对微粒运动的影响。并基于此进行了动力学仿真,得到了一系列相关的规律与数据。
关键词:上游流; 马兰戈尼效应; 表面张力梯度
1 背景介绍
- 1题目
在水面上撒上微粒,然后允许水流从很小的高度入射到水面。在一定条件下,微粒可能开始沿水流向上移动。研究并解释这一现象。
- 2研究目的
探究在特定条件下,当水流从较小高度入射水面时,在水面上撒上轻质颗粒后,微粒可能沿水流向上运动的现象。具体研究目的包括:
· 确定条件:确定使微粒沿水流向上运动的关键条件,例如水流速度、水面特性、微粒特性等。
·解释机制:通过实验观察和理论分析,揭示导致微粒沿水流向上运动的物理机制,探讨可能的驱动力和力平衡。
· 马兰戈尼效应验证:通过对实验结果的分析,验证马兰戈尼效应是否能够解释该现象,进一步了解该效应在此现象中的作用。
2 预实验
通过控制变量法设计一个预实验,以确定水面微粒沿水流向上运动现象可能与哪些因素有关。通过对不同因素进行逐个控制和观察,可以初步了解可能影响现象产生的因素。
在每个实验中,只改变一个因素,其他因素保持不变。可以控制的因素包括:
·微粒大小:使用不同大小的微粒来观察其对现象产生的影响。
·水面温度:使用不同温度的水面来观察对现象产生的影响。
·水流入射高度:调整水流从不同高度入射水面的高度。
·水面特性:在不同的水面状态下进行实验,如平静水面和有波动的水面。
预实验发现,上游流现象与水面温度和微粒大小关联紧密,考虑到表面张力是温度和浓度的函数,初步判断上游流可能是由马兰戈尼效应引起。
3 理论分析
3.1 基本原理
撒在水面上的微粒可以通过吸附包裹在液体表面上,从而改变液体的表面张力。当微粒存在于液体表面上时,它们可以与液体分子相互作用并吸附到表面上。吸附的微粒可以改变液体表面的分子排列和相互作用,从而导致表面张力的变化。微粒的吸附主要通过以下三种方式改变表面张力:
1. 形成表面膜:微粒在液体表面上形成一层薄膜,这层薄膜可以降低液体表面的自由能,从而降低表面张力。
2. 形成胶束:微粒可以在液体中形成胶束结构。胶束是由表面活性剂分子或吸附的微粒组成的微小聚集体。这些胶束能够降低液体表面的张力,因为它们在液体-气体界面上形成一层相对较低的张力区域。
3.表面扩散:微粒的存在可以改变液体表面的分子扩散行为。微粒的吸附可以增加表面分子的流动性,从而改变表面张力。
值得一提的是,温度也会对表面张力大小也会造成显著影响。温度升高会增加液体分子的热运动能量,使分子更容易克服相互之间的吸引力,从而减小液体表面的张力。在我们的预实验中,分别向23℃、35℃、52℃的撒有微粒的水面上入射小高度水流,52℃下的现象最为明显。
根据马兰戈尼效应,从较小高度入射的水流表面张力大于撒入微粒的水面表面张力,因此两者的介面存在表面张力梯度,所以使微粒(质量)发生传送。
3.2 模型分析
符号规定
符号 | 含义 |
h | 水流源到水面的高度差 |
v | 水流速度 |
P1 | 水流源的压强 |
P2 | 水面上微粒所在位置的压强 |
A | 微粒的横截面积 |
γ | 表面张力系数 |
m | 微粒的质量 |
l | 微粒所在区域水面的线长度 |
ρ | 水的密度 |
g | 重力加速度 |
微粒在模型分析过程中,考虑到浮力基本不变,故重力和浮力保持相等,在这里忽略其影响。
先根据Bernoulli方程描述流体在水流入射水面时的压力分布:
对于水流源,有 P1+ 0.5ρv² + ρgh = constant (1)
对于水面,有 P2 = constant (2)
故P2 - P1 = 0.5ρv² + ρgh (3)
P2 - P1包含了水流形成的静态压强,将尾项ρgh减去,可得水流的冲击压强P:
P = 0.5ρv²(4)
故水流的冲击力F1 = 0.5ρAv² (5)
再考虑由于表面张力梯度引起的推动力:
撒有微粒的水面表面张力f1 = γ1l (γ1为水面表面张力系数) (6)
入射水流的表面张力f2 = γ2l (γ2为水流表面张力系数) (7)
表面梯度引起的推动力F2 = (γ2 - γ1 )l (8)
水面表面张力方向垂直于水面的方向,朝向水面内部;水流表面张力方向垂直于水面的方向,朝向水面内部。
我们将F1,F2进行矢量合成,得到最终的推动力F:
F = F2 - F1= (γ2 - γ1 )l - 0.5ρAv²,方向沿水流向上 (9)
3.3 仿真计算
图3-1
这里我们的仿真实验环境温度在23℃,且微粒以烟丝作为实物代替,实验中所需的各种参数设定如图3-1。由查表可得,23℃下,水的表面张力系数为0.07228N/m。
仿真计算的是微粒随时间的运动情况,这里我们仿真的总时长是1s,计算步长为0.01s,总步数为100次。在微粒上升过程中,我们保持水流源的表面张力系数不变,将微粒上升时周围水的表面张力系数设定为关于高度的线性函数。并基于此计算出各时刻下,微粒所受的驱动力,再利用动量定理实时更新微粒的速度和位置。
图3-2
经过计算,得到微粒运动状况如下表:
表3-1 微粒运动状况一览表
类型 | 数值 | 所需时间(s) |
最大高度 | 0.009549 m | 0.22 |
最大速度 | 0.066075 m/s | 0.57 |
最大加速度 | 0.912000 m/s² | 0.01 |
周期 | 0.45 s | / |
微粒上升高度随时间变化曲线如图3-3所示,与实验现象基本符合。
图3-3
4 结论
本研究通过实验和理论分析,揭示了微粒沿水流向上运动的现象,并对其进行了深入的研究和解释。重点分析了水流冲击力和表面张力梯度力的大小,进行了微粒的动力学仿真计算,得到了关于微粒“上游流”模型的一系列理论数据。本文为微粒沿水流向上运动现象的理解提供了新的视角,对于流体力学和颗粒运动的研究具有一定的指导意义,同时也为相关领域的实际应用提供了有益的参考。
参考文献
- L. E. SCRIVEN,C. V. STERNLING.The Marangoni Effects【Z】.Nature.
- C. V. Sternling,L. E. Scriven.Interfacial turbulence: Hydrodynamic instability and the marangoni effect【Z】.AIChE Journal.
- D. G. Suciu,Octavian Smigelschi,Eli Ruckenstein.Some experiments on the Marangoni effect【Z】.AIChE Journal.
- 百度百科.马兰戈尼效应.[EB/OL].https://baike.baidu.com/item/马兰戈尼效应/17048004?fr=aladdin.
全部代码内容见下
import matplotlib.pyplot as plt
##本文以烟丝作为微小颗粒进行探究,假定温度在23℃
# 模拟参数
h=0.01 #水流源高度(单位:m)
v = 0.1 # 水流速度(单位:m/s)
A = 0.00001 # 微粒的横截面积(单位:m²)
l =0.02 #微粒所在区域水面的线长度(单位:m)
m = 0.00005 #微粒的质量(单位:kg)
g = 9.8 #重力加速度(单位:m/s²)
y1 = 0.07228 #水流的表面张力系数(单位:N/m)
y2 = 0.06075 #水面的表面张力系数(单位:N/m)
ρ = 1000 #水的密度(单位:kg/m³)
# 模拟时间和步长
dt = 0.01 # 时间步长(单位:秒)
total_time = 1 # 模拟总时间(单位:秒)
num_steps = int(total_time / dt)
# 初始化位置和速度
particle_pos = 0.0 # 微粒的初始位置
particle_vel = 0.0 # 微粒的初始速度
#计算冲击力
force1=0.5*ρ*A*v**2
# 模拟主循环
maxpos = 0
maxv=0
maxa=0
i=0
for step in range(num_steps):
i+=1
# 计算表面张力梯度引起的力F2
y2=0.0675+(particle_pos/h)*(0.07228-0.0675)
force2 = (y1 - y2) * l
# 计算推动力
force = force2-force1 # 推动力计算(根据公式(9))
# 更新微粒的位置和速度
particle_vel += (force * dt)/m # 根据动量定理更新速度
particle_pos += particle_vel * dt # 根据速度更新位置
#计算所能上升的最大高度及其时间
if particle_pos>=maxpos:
maxpos=particle_pos
time1=i*0.01
#计算最大速度和时间
if particle_vel>=maxv:
maxv=particle_vel
time2=i*0.01
#计算最大加速度和时间
if force>=maxa:
maxa=force/m
time3=i*0.01
# 可视化微粒位置随时间的变化
plt.plot(step * dt, particle_pos, 'bo')
print('最大上升高度:',maxpos,"上升最大高度所用时间:",time1)
print('最大速度:',maxv,"达到最大速度所用时间:",time2)
print('最大加速度:',maxa,"达到最大加速度所用时间:",time3)
# 显示图形
plt.xlabel('Time (s)')
plt.ylabel('elevation (m)')
plt.title('Upper stream particle elevation curve')
plt.grid(True)
plt.show()