如何使用 UliEngineering 在 Python 中计算运动粘度
你可以使用 UliEngineering Python 库,根据动力粘度和密度轻松计算运动粘度:
kinematic_viscosity.py
from UliEngineering.Physics.Viscosity import kinematic_viscosity
from UliEngineering.EngineerIO import *
# 计算水的运动粘度
dynamic_viscosity = 0.001 # Pa·s
density = 998.2 # kg/m³
nu = kinematic_viscosity(dynamic_viscosity, density)
print(f"运动粘度:{format_value(nu, 'm²/s')}")
# 计算空气的运动粘度
dynamic_viscosity = 1.8e-5 # Pa·s
density = 1.225 # kg/m³
nu = kinematic_viscosity(dynamic_viscosity, density)
print(f"空气的运动粘度:{format_value(nu, 'm²/s')}")
# 计算甘油的运动粘度
dynamic_viscosity = 1.412 # Pa·s,20°C 时
density = 1261.0 # kg/m³
nu = kinematic_viscosity(dynamic_viscosity, density)
print(f"甘油的运动粘度:{format_value(nu, 'm²/s')}")示例输出
kinematic_viscosity_output.txt
运动粘度:1.00 mm²/s
空气的运动粘度:14.7 mm²/s
甘油的运动粘度:1.12 cm²/s运动粘度由下式给出:
$$ \nu = \frac{\eta}{\rho} $$其中 $\nu$ 是运动粘度,$\eta$ 是动力粘度,$\rho$ 是密度。
运动粘度表示流体中粘性力与惯性力的比值,常用于流体动力学计算,尤其是确定雷诺数(Reynolds number)。动力粘度描述流体流动时的内部阻力,而运动粘度还考虑了流体的密度。
上图展示了在固定密度 1000 kg/m³(近似于水)下,动力粘度与运动粘度之间的线性关系。该直线的斜率等于密度的倒数。
运动粘度在涉及流体运动和动量传递的问题中特别有用,例如边界层分析、管道流动计算和空气动力学。它的单位是 m²/s,与扩散系数相同,反映了其在动量扩散中的作用。
相关文章
- 如何使用 UliEngineering 在 Python 中计算雷诺数
- 如何使用 UliEngineering 在 Python 中计算 Poiseuille 流量
- 如何使用 UliEngineering 在 Python 中计算 Stokes 阻力
绘图生成脚本
plot_kinematic_viscosity.py
#!/usr/bin/env python3
import matplotlib.pyplot as plt
import numpy as np
import sys
sys.path.insert(0, '/home/uli/dev/UliEngineering')
from UliEngineering.Physics.Viscosity import kinematic_viscosity
# 用于绘图的动力粘度范围
eta = np.linspace(1e-4, 1e-2, 100) # 0.1 到 10 mPa·s
# 创建图表
plt.figure(figsize=(10, 6))
# 固定密度(水类)
rho = 1000.0 # kg/m³
# 计算运动粘度
nu = kinematic_viscosity(eta, rho) * 1e6 # 转换为 mm²/s
plt.plot(eta * 1000, nu, color='blue', linewidth=2)
plt.xlabel('Dynamic Viscosity (mPa·s)', fontsize=12)
plt.ylabel('Kinematic Viscosity (mm²/s)', fontsize=12)
plt.title('Kinematic Viscosity vs Dynamic Viscosity (ρ = 1000 kg/m³)', fontsize=14, fontweight='bold')
plt.grid(True, alpha=0.3)
plt.tight_layout()
plt.savefig('kinematic_viscosity_plot.svg', format='svg', dpi=300)
print("图表已保存到 kinematic_viscosity_plot.svg")If this post helped you, please consider buying me a coffee or donating via PayPal to support research & publishing of new posts on TechOverflow