Як обчислити швидкість потоку Пуазейля у Python за допомогою UliEngineering
Ви можете легко обчислити об’ємну швидкість потоку для ламінарної течії в циліндричних трубах за законом Пуазейля за допомогою бібліотеки Python UliEngineering:
from UliEngineering.Physics.Viscosity import poiseuille_flow_rate
from UliEngineering.EngineerIO import *
# Обчислити швидкість потоку для труби радіусом 5мм
radius = 0.005 # 5mm in meters
pressure_drop = 1000.0 # Pa
length = 1.0 # m
viscosity = 0.001 # Pa·s (water)
Q = poiseuille_flow_rate(radius, pressure_drop, length, viscosity)
print(f"Швидкість потоку: {format_value(Q, 'м³/с')}")
# Обчислити швидкість потоку для труби радіусом 10мм
radius = 0.01
Q = poiseuille_flow_rate(radius, pressure_drop, length, viscosity)
print(f"Швидкість потоку (труба 10мм): {format_value(Q, 'м³/с')}")
# Обчислити швидкість потоку з більшим перепадом тиску
pressure_drop = 5000.0
Q = poiseuille_flow_rate(0.005, pressure_drop, length, viscosity)
print(f"Швидкість потоку (перепад 5кПа): {format_value(Q, 'м³/с')}")Приклад виводу
Швидкість потоку: 4,91 мл/с
Швидкість потоку (труба 10мм): 78,5 мл/с
Швидкість потоку (перепад 5кПа): 24,5 мл/сЗакон Пуазейля задається формулою:
$$ Q = \frac{\pi \cdot r^4 \cdot \Delta P}{8 \cdot \eta \cdot L} $$де $Q$ — об’ємна швидкість потоку, $r$ — радіус труби, $\Delta P$ — перепад тиску вздовж труби, $\eta$ — динамічна в’язкість, а $L$ — довжина труби.
Закон Пуазейля описує ламінарну течію в циліндричних трубах і дійсний для чисел Рейнольдса нижче приблизно 2300. Сильна залежність від четвертого степеня радіуса означає, що подвоєння радіуса труби збільшує швидкість потоку в 16 разів.
Графік вище показує, як швидкість потоку змінюється залежно від радіуса труби при фіксованому перепаді тиску, довжині та в’язкості. Зверніть увагу на різке зростання швидкості потоку зі збільшенням радіуса відповідно до залежності $r^4$.
Цей закон є фундаментальним для гідродинаміки та використовується в застосуваннях від аналізу кровообігу до проєктування трубопроводів і мікрофлюїдики.
Пов’язані публікації
- How to compute Bingham stress in Python using UliEngineering
- How to compute Reynolds number in Python using UliEngineering
- How to compute kinematic viscosity in Python using UliEngineering
Скрипт генерації графіка
#!/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 poiseuille_flow_rate
# Діапазон радіусів труб для побудови графіка
r = np.linspace(0.001, 0.01, 100) # 1mm to 10mm
# Створити графік
plt.figure(figsize=(10, 6))
# Фіксовані параметри
pressure_drop = 1000.0 # Pa
length = 1.0 # m
viscosity = 0.001 # Pa·s (water-like)
# Обчислити швидкість потоку
Q = poiseuille_flow_rate(r, pressure_drop, length, viscosity) * 1e6 # Convert to mL/s
plt.plot(r * 1000, Q, color='blue', linewidth=2)
plt.xlabel('Радіус труби (мм)', fontsize=12)
plt.ylabel('Швидкість потоку (мл/с)', fontsize=12)
plt.title('Швидкість потоку Пуазейля залежно від радіуса труби', fontsize=14, fontweight='bold')
plt.grid(True, alpha=0.3)
plt.tight_layout()
plt.savefig('poiseuille_plot.svg', format='svg', dpi=300)
print("Plot saved to poiseuille_plot.svg")