Python: Andrade-Viskosität mit UliEngineering berechnen
Du kannst leicht die Andrade-Viskosität von Flüssigkeiten mit der UliEngineering-Python-Bibliothek berechnen. Die Andrade-Gleichung ist ein Arrhenius-Typ-Modell, das die Temperaturabhängigkeit der Viskosität beschreibt:
from UliEngineering.Physics.Viscosity import andrade_viscosity, CommonLiquids
from UliEngineering.EngineerIO import *
# Andrade-Viskosität von Wasser bei 20°C berechnen
T = 20 + 273.15 # In Kelvin umrechnen
eta = andrade_viscosity(T, CommonLiquids.Water.andrade)
print(f"Wasserviskosität bei 20°C: {format_value(eta, 'Pa·s')}")
# Andrade-Viskosität von Ethanol bei 50°C berechnen
T = 50 + 273.15
eta = andrade_viscosity(T, CommonLiquids.Ethanol.andrade)
print(f"Ethanolviskosität bei 50°C: {format_value(eta, 'Pa·s')}")
# Mit benutzerdefinierten Andrade-Konstanten
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"Viskosität der benutzerdefinierten Flüssigkeit bei 300K: {format_value(eta, 'Pa·s')}")Beispielausgabe
Wasserviskosität bei 20°C: 1.00 mPa·s
Ethanolviskosität bei 50°C: 1.05 µPa·s
Viskosität der benutzerdefinierten Flüssigkeit bei 300K: 2.35 mPa·sDie Andrade-Gleichung lautet:
$$ \eta = A \cdot \exp\left(\frac{B}{T}\right) $$wobei $\eta$ die dynamische Viskosität, $T$ die absolute Temperatur in Kelvin und $A$ und $B$ materialspezifische Konstanten sind. Der Parameter $B$ steht in Beziehung zur Aktivierungsenergie des viskosen Fließens.
Das obige Diagramm zeigt das Andrade-Viskositätsmodell für mehrere gängige Flüssigkeiten über einen Temperaturbereich von 0°C bis 100°C. Beachte, dass die Viskosität exponentiell mit der Temperatur abnimmt, was für die meisten Flüssigkeiten charakteristisch ist.
Die UliEngineering-Bibliothek stellt vordefinierte Andrade-Konstanten für gängige Flüssigkeiten wie Wasser, Ethanol, Methanol, Glycerin, Olivenöl, Quecksilber, Aceton und Benzol über die CommonLiquids-Klasse bereit.
Verwandte Beiträge
- How to compute VFT viscosity in Python using UliEngineering
- How to compute Sutherland gas viscosity in Python using UliEngineering
- How to compute Swindells viscosity in Python using UliEngineering
Diagramm-Estellungsskript
#!/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,
)
# Temperaturbereich in Celsius für das Diagramm
T_C = np.linspace(0, 100, 200) # 0 bis 100°C
T_K = T_C + 273.15 # In Kelvin umrechnen
# Diagramm erstellen
plt.figure(figsize=(10, 6))
# Für verschiedene gängige Flüssigkeiten darstellen
liquids_to_plot = [
('Water', CommonLiquids.Water.andrade, 'blue'),
('Ethanol', CommonLiquids.Ethanol.andrade, 'green'),
('Methanol', CommonLiquids.Methanol.andrade, 'red'),
('Glycerol', CommonLiquids.Glycerol.andrade, 'purple'),
('Mercury', CommonLiquids.Mercury.andrade, 'orange'),
]
for name, constants, color in liquids_to_plot:
eta = andrade_viscosity(T_K, constants) * 1000 # Convert to mPa·s
plt.plot(T_C, eta, label=name, color=color, linewidth=2)
plt.xlabel('Temperatur (°C)', fontsize=12)
plt.ylabel('Dynamische Viskosität (mPa·s)', fontsize=12)
plt.title('Andrade-Viskositätsmodell für gängige Flüssigkeiten', fontsize=14, fontweight='bold')
plt.legend(loc='upper right', fontsize=10)
plt.grid(True, alpha=0.3)
plt.yscale('log') # Log-Skala, da Viskositäten über mehrere Größenordnungen reichen
plt.tight_layout()
plt.savefig('andrade_viscosity_plot.svg', format='svg', dpi=300)
print("Plot saved to andrade_viscosity_plot.svg")