Jak vypočítat Swindellsovu viskozitu v Pythonu pomocí UliEngineering
Můžete snadno vypočítat Swindellsovu korelaci viskozity pomocí knihovny UliEngineering v Pythonu. Swindellsova korelace je empirický model běžně používaný pro viskozitu vody:
from UliEngineering.Physics.Viscosity import swindells_viscosity, CommonLiquids
from UliEngineering.EngineerIO import *
# Výpočet Swindellsovy viskozity vody při 20°C
T = 20 + 273.15 # Převod na Kelviny
eta = swindells_viscosity(T, CommonLiquids.Water.swindells)
print(f"Water viscosity at 20°C: {format_value(eta, 'Pa·s')}")
# Výpočet Swindellsovy viskozity vody při 50°C
T = 50 + 273.15
eta = swindells_viscosity(T, CommonLiquids.Water.swindells)
print(f"Water viscosity at 50°C: {format_value(eta, 'Pa·s')}")
# Použití vlastních Swindellsových konstant
from UliEngineering.Physics.Viscosity import SwindellsConstants
custom = SwindellsConstants(name="Custom liquid", eta_ref=1.0e-3, T_ref=293.15, a=1.5, b=-150.0)
eta = swindells_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
Water viscosity at 50°C: 546 µPa·s
Custom liquid viscosity at 300K: 1.00 mPa·sSwindellsova korelace je dána:
$$ \eta = \eta_{ref} \cdot 10^{\left(-\frac{a \cdot (T - T_{ref})}{T + b}\right)} $$kde $\eta$ je dynamická viskozita, $T$ je absolutní teplota v Kelvinech, $\eta_{ref}$ je referenční viskozita při referenční teplotě $T_{ref}$ a $a$ a $b$ jsou empirické parametry specifické pro tekutinu.
Swindellsova korelace byla vyvinuta specificky pro vodu a poskytuje vynikající přesnost v širokém teplotním rozsahu. Je obzvláště užitečná v inženýrských aplikacích, kde je třeba vypočítat viskozitu vody při různých teplotách.
Graf výše ukazuje Swindellsovu korelaci pro vodu v teplotním rozsahu od 0°C do 100°C. Všimněte si charakteristického exponenciálního poklesu viskozity s rostoucí teplotou.
Knihovna UliEngineering poskytuje předdefinované Swindellsovy konstanty pro vodu prostřednictvím CommonLiquids.Water.swindells. Vlastní konstanty lze definovat pomocí datové třídy SwindellsConstants 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 Kestinvu 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 (
swindells_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í Swindellsovy korelace
eta = swindells_viscosity(T_K, CommonLiquids.Water.swindells) * 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('Swindellsova 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('swindells_viscosity_plot.svg', format='svg', dpi=300)
print("Plot saved to swindells_viscosity_plot.svg")