Jak vypočítat Kestinvu viskozitu v Pythonu pomocí UliEngineering
Můžete snadno vypočítat Kestinvu korelaci viskozity pomocí knihovny UliEngineering v Pythonu. Kestiova korelace je tříparametrový model, který poskytuje přesné predikce viskozity pro kapaliny:
from UliEngineering.Physics.Viscosity import kestin_viscosity, CommonLiquids
from UliEngineering.EngineerIO import *
# Výpočet Kestiovy viskozity vody při 20°C
T = 20 + 273.15 # Převod na Kelviny
eta = kestin_viscosity(T, CommonLiquids.Water.kestin)
print(f"Water viscosity at 20°C: {format_value(eta, 'Pa·s')}")
# Výpočet Kestiovy viskozity vody při 50°C
T = 50 + 273.15
eta = kestin_viscosity(T, CommonLiquids.Water.kestin)
print(f"Water viscosity at 50°C: {format_value(eta, 'Pa·s')}")
# Použití vlastních Kestinových konstant
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"Custom liquid viscosity at 300K: {format_value(eta, 'Pa·s')}")Příklad výstupu
Water viscosity at 20°C: 1.01 mPa·s
Water viscosity at 50°C: 549 µPa·s
Custom liquid viscosity at 300K: 1.00 mPa·sKestiova korelace je dána:
$$ \eta = A \cdot \exp\left(\frac{B}{T - C}\right) $$kde $\eta$ je dynamická viskozita, $T$ je absolutní teplota v Kelvinech a $A$, $B$ a $C$ jsou konstanty specifické pro materiál. Parametr $C$ představuje teplotní posun, pod kterým model není platný.
Kestiova korelace je podobná tvaru VFT rovnici, ale často se používá pro různé aplikace a může poskytovat lepší přesnost pro určité tekutiny. Byla vyvinuta prostřednictvím rozsáhlého výzkumu vlastností tekutin a je obzvláště užitečná pro vodu a vodné roztoky.
Graf výše ukazuje Kestiovu korelaci pro vodu v teplotním rozsahu od 0°C do 100°C. Model zachycuje exponenciální pokles viskozity s teplotou charakteristický pro kapaliny.
Knihovna UliEngineering poskytuje předdefinované Kestinovy konstanty pro vodu prostřednictvím CommonLiquids.Water.kestin. Vlastní konstanty lze definovat pomocí datové třídy KestinConstants pro další tekutiny.
Související příspěvky
- Jak vypočítat Andradeovu viskozitu v Pythonu pomocí UliEngineering
- Jak vypočítat VFT viskozitu v Pythonu pomocí UliEngineering
- Jak vypočítat Swindellsovu viskozitu v Pythonu pomocí UliEngineering
Skript pro generování grafu
#!/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,
)
# Teplotní rozsah v Celsiu pro graf
T_C = np.linspace(0, 100, 200) # 0 až 100°C
T_K = T_C + 273.15 # Převod na Kelviny
# Vytvoření grafu
plt.figure(figsize=(10, 6))
# Graf pro vodu pomocí Kestiovy korelace
eta = kestin_viscosity(T_K, CommonLiquids.Water.kestin) * 1000 # Převod na mPa·s
plt.plot(T_C, eta, label='Voda', color='blue', linewidth=2)
plt.xlabel('Teplota (°C)', fontsize=12)
plt.ylabel('Dynamická viskozita (mPa·s)', fontsize=12)
plt.title('Kestiova korelace viskozity pro vodu', 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("Plot saved to kestin_viscosity_plot.svg")