Як обчислити швидкість потоку Пуазейля у Python за допомогою UliEngineering

Ви можете легко обчислити об’ємну швидкість потоку для ламінарної течії в циліндричних трубах за законом Пуазейля за допомогою бібліотеки Python UliEngineering:

poiseuille_flow_rate.py
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, 'м³/с')}")

Приклад виводу

poiseuille_flow_rate_output.txt
Швидкість потоку: 4,91 мл/с
Швидкість потоку (труба 10мм): 78,5 мл/с
Швидкість потоку (перепад 5кПа): 24,5 мл/с

poiseuille plot.svg

Закон Пуазейля задається формулою:

$$ Q = \frac{\pi \cdot r^4 \cdot \Delta P}{8 \cdot \eta \cdot L} $$

де $Q$ — об’ємна швидкість потоку, $r$ — радіус труби, $\Delta P$ — перепад тиску вздовж труби, $\eta$ — динамічна в’язкість, а $L$ — довжина труби.

Закон Пуазейля описує ламінарну течію в циліндричних трубах і дійсний для чисел Рейнольдса нижче приблизно 2300. Сильна залежність від четвертого степеня радіуса означає, що подвоєння радіуса труби збільшує швидкість потоку в 16 разів.

Графік вище показує, як швидкість потоку змінюється залежно від радіуса труби при фіксованому перепаді тиску, довжині та в’язкості. Зверніть увагу на різке зростання швидкості потоку зі збільшенням радіуса відповідно до залежності $r^4$.

Цей закон є фундаментальним для гідродинаміки та використовується в застосуваннях від аналізу кровообігу до проєктування трубопроводів і мікрофлюїдики.

Пов’язані публікації


Скрипт генерації графіка

plot_poiseuille.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 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")

Дивіться схожі статті за категоріями: Physics, Python