Jak vypočítat Andradeovu viskozitu v Pythonu pomocí UliEngineering
Můžete snadno vypočítat Andradeovu viskozitu kapalin pomocí knihovny UliEngineering v Pythonu. Andradeova rovnice je Arrheniova typu model, který popisuje teplotní závislost viskozity:
from UliEngineering.Physics.Viscosity import andrade_viscosity, CommonLiquids
from UliEngineering.EngineerIO import *
# Výpočet Andradeovy viskozity vody při 20°C
T = 20 + 273.15 # Převod na Kelviny
eta = andrade_viscosity(T, CommonLiquids.Water.andrade)
print(f"Water viscosity at 20°C: {format_value(eta, 'Pa·s')}")
# Výpočet Andradeovy viskozity ethanolu při 50°C
T = 50 + 273.15
eta = andrade_viscosity(T, CommonLiquids.Ethanol.andrade)
print(f"Ethanol viscosity at 50°C: {format_value(eta, 'Pa·s')}")
# Použití vlastních Andradeových konstant
from UliEngineering.Physics.Viscosity import AndradeConstants
custom = AndradeConstants(name="Custom liquid", A=1.0e-6, B=2000.0)
eta = andrade_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.00 mPa·s
Ethanol viscosity at 50°C: 1.05 µPa·s
Custom liquid viscosity at 300K: 2.35 mPa·sAndradeova rovnice je dána:
$$ \eta = A \cdot \exp\left(\frac{B}{T}\right) $$kde $\eta$ je dynamická viskozita, $T$ je absolutní teplota v Kelvinech a $A$ a $B$ jsou konstanty specifické pro materiál. Parametr $B$ souvisí s aktivační energií viskózního proudění.
Graf výše ukazuje Andradeův model viskozity pro několik běžných kapalin v teplotním rozsahu od 0°C do 100°C. Všimněte si, že viskozita exponenciálně klesá s teplotou, což je charakteristické pro většinu kapalin.
Knihovna UliEngineering poskytuje předdefinované Andradeovy konstanty pro běžné kapaliny jako voda, ethanol, methanol, glycerol, olivový olej, rtuť, aceton a benzen prostřednictvím třídy CommonLiquids.
Související příspěvky
- Jak vypočítat VFT viskozitu v Pythonu pomocí UliEngineering
- Jak vypočítat Sutherlandovu viskozitu plynu 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 (
andrade_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 různé běžné kapaliny
liquids_to_plot = [
('Voda', CommonLiquids.Water.andrade, 'blue'),
('Ethanol', CommonLiquids.Ethanol.andrade, 'green'),
('Methanol', CommonLiquids.Methanol.andrade, 'red'),
('Glycerol', CommonLiquids.Glycerol.andrade, 'purple'),
('Rtuť', CommonLiquids.Mercury.andrade, 'orange'),
]
for name, constants, color in liquids_to_plot:
eta = andrade_viscosity(T_K, constants) * 1000 # Převod na mPa·s
plt.plot(T_C, eta, label=name, color=color, linewidth=2)
plt.xlabel('Teplota (°C)', fontsize=12)
plt.ylabel('Dynamická viskozita (mPa·s)', fontsize=12)
plt.title('Andradeův model viskozity pro běžné kapaliny', fontsize=14, fontweight='bold')
plt.legend(loc='upper right', fontsize=10)
plt.grid(True, alpha=0.3)
plt.yscale('log') # Logaritmická stupnice protože viskozity pokrývají řádové velikosti
plt.tight_layout()
plt.savefig('andrade_viscosity_plot.svg', format='svg', dpi=300)
print("Plot saved to andrade_viscosity_plot.svg")