Comment calculer le débit de Poiseuille en Python avec UliEngineering
Vous pouvez facilement calculer le débit volumétrique pour un écoulement laminaire dans des tuyaux cylindriques à l’aide de la loi de Poiseuille avec la bibliothèque Python UliEngineering :
from UliEngineering.Physics.Viscosity import poiseuille_flow_rate
from UliEngineering.EngineerIO import *
# Calculer le débit pour un tuyau de rayon 5mm
radius = 0.005 # 5mm en mètres
pressure_drop = 1000.0 # Pa
length = 1.0 # m
viscosity = 0.001 # Pa·s (eau)
Q = poiseuille_flow_rate(radius, pressure_drop, length, viscosity)
print(f"Débit : {format_value(Q, 'm³/s')}")
# Calculer le débit pour un tuyau de rayon 10mm
radius = 0.01
Q = poiseuille_flow_rate(radius, pressure_drop, length, viscosity)
print(f"Débit (tuyau 10mm) : {format_value(Q, 'm³/s')}")
# Calculer le débit avec une chute de pression plus élevée
pressure_drop = 5000.0
Q = poiseuille_flow_rate(0.005, pressure_drop, length, viscosity)
print(f"Débit (chute 5kPa) : {format_value(Q, 'm³/s')}")Exemple de sortie
Débit : 4.91 mL/s
Débit (tuyau 10mm) : 78.5 mL/s
Débit (chute 5kPa) : 24.5 mL/sLa loi de Poiseuille est donnée par :
$$ Q = \frac{\pi \cdot r^4 \cdot \Delta P}{8 \cdot \eta \cdot L} $$où $Q$ est le débit volumétrique, $r$ est le rayon du tuyau, $\Delta P$ est la chute de pression le long du tuyau, $\eta$ est la viscosité dynamique, et $L$ est la longueur du tuyau.
La loi de Poiseuille décrit l’écoulement laminaire dans des tuyaux cylindriques et est valable pour des nombres de Reynolds inférieurs à environ 2300. La forte dépendance à la quatrième puissance du rayon signifie que doubler le rayon du tuyau augmente le débit d’un facteur 16.
Le graphique ci-dessus montre comment le débit varie en fonction du rayon du tuyau pour une chute de pression, une longueur et une viscosité fixes. Remarquez l’augmentation spectaculaire du débit à mesure que le rayon augmente, suivant la relation en $r^4$.
Cette loi est fondamentale pour la dynamique des fluides et est utilisée dans des applications allant de l’analyse du flux sanguin à la conception de pipelines et à la microfluidique.
Articles liés
- Comment calculer la contrainte de Bingham en Python avec UliEngineering
- Comment calculer le nombre de Reynolds en Python avec UliEngineering
- Comment calculer la viscosité cinématique en Python avec UliEngineering
Script de génération du graphique
#!/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
# Plage de rayons de tuyau pour le tracé
r = np.linspace(0.001, 0.01, 100) # 1mm à 10mm
# Créer le graphique
plt.figure(figsize=(10, 6))
# Paramètres fixes
pressure_drop = 1000.0 # Pa
length = 1.0 # m
viscosity = 0.001 # Pa·s (semblable à l'eau)
# Calculer le débit
Q = poiseuille_flow_rate(r, pressure_drop, length, viscosity) * 1e6 # Convertir en mL/s
plt.plot(r * 1000, Q, color='blue', linewidth=2)
plt.xlabel('Rayon du tuyau (mm)', fontsize=12)
plt.ylabel('Débit (mL/s)', fontsize=12)
plt.title('Débit de Poiseuille vs Rayon du tuyau', fontsize=14, fontweight='bold')
plt.grid(True, alpha=0.3)
plt.tight_layout()
plt.savefig('poiseuille_plot.svg', format='svg', dpi=300)
print("Graphique enregistré dans poiseuille_plot.svg")