Python: Swindells-Viskosität mit UliEngineering berechnen
Du kannst leicht die Swindells-Viskositätskorrelation mit der UliEngineering-Python-Bibliothek berechnen. Die Swindells-Korrelation ist ein empirisches Modell, das häufig für Wasserviskosität verwendet wird:
from UliEngineering.Physics.Viscosity import swindells_viscosity, CommonLiquids
from UliEngineering.EngineerIO import *
# Swindells-Viskosität von Wasser bei 20°C berechnen
T = 20 + 273.15 # In Kelvin umrechnen
eta = swindells_viscosity(T, CommonLiquids.Water.swindells)
print(f"Wasserviskosität bei 20°C: {format_value(eta, 'Pa·s')}")
# Swindells-Viskosität von Wasser bei 50°C berechnen
T = 50 + 273.15
eta = swindells_viscosity(T, CommonLiquids.Water.swindells)
print(f"Wasserviskosität bei 50°C: {format_value(eta, 'Pa·s')}")
# Mit benutzerdefinierten Swindells-Konstanten
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-Flüssigkeitsviskosität bei 300K: {format_value(eta, 'Pa·s')}")Beispielausgabe
Wasserviskosität bei 20°C: 1.00 mPa·s
Wasserviskosität bei 50°C: 546 µPa·s
Custom-Flüssigkeitsviskosität bei 300K: 1.00 mPa·sDie Swindells-Korrelation ist gegeben durch:
$$ \eta = \eta_{ref} \cdot 10^{\left(-\frac{a \cdot (T - T_{ref})}{T + b}\right)} $$wobei $\eta$ die dynamische Viskosität, $T$ die absolute Temperatur in Kelvin, $\eta_{ref}$ die Referenzviskosität bei Referenztemperatur $T_{ref}$ und $a$ sowie $b$ empirische Parameter sind, die spezifisch für das Fluid sind.
Die Swindells-Korrelation wurde speziell für Wasser entwickelt und bietet hervorragende Genauigkeit über einen weiten Temperaturbereich. Sie ist besonders nützlich in technischen Anwendungen, in denen die Wasserviskosität bei verschiedenen Temperaturen berechnet werden muss.
Der obige Plot zeigt die Swindells-Korrelation für Wasser über einen Temperaturbereich von 0°C bis 100°C. Beachte die charakteristische exponentielle Abnahme der Viskosität mit zunehmender Temperatur.
Die UliEngineering-Bibliothek stellt vordefinierte Swindells-Konstanten für Wasser über CommonLiquids.Water.swindells bereit. Benutzerdefinierte Konstanten können mit der SwindellsConstants-Datenklasse für andere Flüssigkeiten definiert werden.
Verwandte Beiträge
- How to compute Andrade viscosity in Python using UliEngineering
- How to compute VFT viscosity in Python using UliEngineering
- How to compute Kestin viscosity in Python using UliEngineering
Plot-Erzeugungsskript
#!/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,
)
# Temperaturbereich in Celsius für Plotting
T_C = np.linspace(0, 100, 200) # 0 bis 100°C
T_K = T_C + 273.15 # In Kelvin umrechnen
# Plot erstellen
plt.figure(figsize=(10, 6))
# Plot für Wasser mit Swindells-Korrelation
eta = swindells_viscosity(T_K, CommonLiquids.Water.swindells) * 1000 # In mPa·s umrechnen
plt.plot(T_C, eta, label='Wasser', color='blue', linewidth=2)
plt.xlabel('Temperatur (°C)', fontsize=12)
plt.ylabel('Dynamische Viskosität (mPa·s)', fontsize=12)
plt.title('Swindells-Viskositätskorrelation für Wasser', 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 gespeichert als swindells_viscosity_plot.svg")