Python : calculer la viscosité de Kestin avec UliEngineering
Vous pouvez facilement calculer la corrélation de viscosité de Kestin à l’aide de la bibliothèque Python UliEngineering. La corrélation de Kestin est un modèle à trois paramètres qui fournit des prédictions de viscosité précises pour les liquides :
from UliEngineering.Physics.Viscosity import kestin_viscosity, CommonLiquids
from UliEngineering.EngineerIO import *
# Calculer la viscosité de Kestin de l'eau à 20°C
T = 20 + 273.15 # Convertir en Kelvin
eta = kestin_viscosity(T, CommonLiquids.Water.kestin)
print(f"Viscosité de l'eau à 20°C : {format_value(eta, 'Pa·s')}")
# Calculer la viscosité de Kestin de l'eau à 50°C
T = 50 + 273.15
eta = kestin_viscosity(T, CommonLiquids.Water.kestin)
print(f"Viscosité de l'eau à 50°C : {format_value(eta, 'Pa·s')}")
# Utilisation de constantes de Kestin personnalisées
from UliEngineering.Physics.Viscosity import KestinConstants
custom = KestinConstants(name="Custom liquid", A=1.0e-5, B=300.0, C=150.0)
eta = kestin_viscosity(300.0, custom)
print(f"Viscosité du liquide personnalisé à 300K : {format_value(eta, 'Pa·s')}")Exemple de sortie
Viscosité de l'eau à 20°C : 1.01 mPa·s
Viscosité de l'eau à 50°C : 549 µPa·s
Viscosité du liquide personnalisé à 300K : 1.00 mPa·sLa corrélation de Kestin est donnée par :
$$ \eta = A \cdot \exp\left(\frac{B}{T - C}\right) $$où $\eta$ est la viscosité dynamique, $T$ est la température absolue en Kelvin, et $A$, $B$ et $C$ sont des constantes spécifiques au matériau. Le paramètre $C$ représente un décalage de température en dessous duquel le modèle n’est pas valide.
La corrélation de Kestin est similaire en forme à l’équation VFT, mais elle est souvent utilisée pour des applications différentes et peut offrir une meilleure précision pour certains fluides. Elle a été développée grâce à des recherches approfondies sur les propriétés des fluides et est particulièrement utile pour l’eau et les solutions aqueuses.
Le graphique ci-dessus montre la corrélation de Kestin pour l’eau sur une plage de températures allant de 0°C à 100°C. Le modèle capture la diminution exponentielle de la viscosité avec la température, caractéristique des liquides.
La bibliothèque UliEngineering fournit des constantes de Kestin prédéfinies pour l’eau via CommonLiquids.Water.kestin. Des constantes personnalisées peuvent être définies à l’aide de la dataclass KestinConstants pour d’autres fluides.
Articles liés
- Comment calculer la viscosité d’Andrade en Python avec UliEngineering
- Comment calculer la viscosité VFT en Python avec UliEngineering
- Comment calculer la viscosité de Swindells 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 (
kestin_viscosity,
CommonLiquids,
)
# Plage de températures en Celsius pour le tracé
T_C = np.linspace(0, 100, 200) # 0 à 100°C
T_K = T_C + 273.15 # Convertir en Kelvin
# Créer le graphique
plt.figure(figsize=(10, 6))
# Tracé pour l'eau avec la corrélation de Kestin
eta = kestin_viscosity(T_K, CommonLiquids.Water.kestin) * 1000 # Convertir en mPa·s
plt.plot(T_C, eta, label='Eau', color='blue', linewidth=2)
plt.xlabel('Température (°C)', fontsize=12)
plt.ylabel('Viscosité dynamique (mPa·s)', fontsize=12)
plt.title('Corrélation de viscosité de Kestin pour l\'eau', fontsize=14, fontweight='bold')
plt.legend(loc='upper right', fontsize=10)
plt.grid(True, alpha=0.3)
plt.tight_layout()
plt.savefig('kestin_viscosity_plot.svg', format='svg', dpi=300)
print("Graphique enregistré dans kestin_viscosity_plot.svg")