Python: VFT-Viskosität mit UliEngineering berechnen

English Deutsch

Du kannst leicht die VFT-Viskosität (Vogel-Fulcher-Tammann) von Flüssigkeiten mit der UliEngineering-Python-Bibliothek berechnen. Die VFT-Gleichung ist ein Dreiparametermodell, das eine hervorragende Genauigkeit für die Beschreibung der Temperaturabhängigkeit der Viskosität bietet, insbesondere für glasbildende Flüssigkeiten:

vft_viscosity.py
from UliEngineering.Physics.Viscosity import vft_viscosity, CommonLiquids
from UliEngineering.EngineerIO import *

# VFT-Viskosität von Wasser bei 20°C berechnen
T = 20 + 273.15  # In Kelvin umrechnen
eta = vft_viscosity(T, CommonLiquids.Water.vft)
print(f"Wasserviskosität bei 20°C: {format_value(eta, 'Pa·s')}")

# VFT-Viskosität von Ethanol bei 50°C berechnen
T = 50 + 273.15
eta = vft_viscosity(T, CommonLiquids.Ethanol.vft)
print(f"Ethanolviskosität bei 50°C: {format_value(eta, 'Pa·s')}")

# Mit benutzerdefinierten VFT-Konstanten
from UliEngineering.Physics.Viscosity import VFTConstants
custom = VFTConstants(name="Custom liquid", A=1.0e-5, B=500.0, T0=120.0)
eta = vft_viscosity(300.0, custom)
print(f"Custom-Flüssigkeitsviskosität bei 300K: {format_value(eta, 'Pa·s')}")

Beispielausgabe

vft_viscosity_output.txt
Wasserviskosität bei 20°C: 1.00 mPa·s
Ethanolviskosität bei 50°C: 1.06 µPa·s
Custom-Flüssigkeitsviskosität bei 300K: 2.38 mPa·s

vft viscosity plot.svg

Die VFT-Gleichung ist gegeben durch:

$$ \eta = A \cdot \exp\left(\frac{B}{T - T_0}\right) $$

wobei $\eta$ die dynamische Viskosität, $T$ die absolute Temperatur in Kelvin und $A$, $B$ sowie $T_0$ materialspezifische Konstanten sind. Der Parameter $T_0$ wird Vogel-Temperatur genannt und repräsentiert die Temperatur, bei der die Viskosität theoretisch gegen unendlich divergieren würde.

Das VFT-Modell ist besonders genau für glasbildende Flüssigkeiten und unterkühlte Flüssigkeiten, da es das nicht-arrheniusche Verhalten in der Nähe der Glasübergangstemperatur erfasst. Der obige Plot zeigt das VFT-Viskositätsmodell für mehrere häufige Flüssigkeiten über einen Temperaturbereich von 0°C bis 100°C.

Die UliEngineering-Bibliothek stellt vordefinierte VFT-Konstanten für häufige Flüssigkeiten wie Wasser, Ethanol, Methanol, Glycerin, Olivenöl, Quecksilber, Aceton und Benzol über die Klasse CommonLiquids bereit.

Verwandte Beiträge


Plot-Erzeugungsskript

plot_vft_viscosity.py
#!/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 (
    vft_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 verschiedene häufige Flüssigkeiten
liquids_to_plot = [
    ('Wasser', CommonLiquids.Water.vft, 'blue'),
    ('Ethanol', CommonLiquids.Ethanol.vft, 'green'),
    ('Methanol', CommonLiquids.Methanol.vft, 'red'),
    ('Glycerin', CommonLiquids.Glycerol.vft, 'purple'),
]

for name, constants, color in liquids_to_plot:
    eta = vft_viscosity(T_K, constants) * 1000  # In mPa·s umrechnen
    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('VFT-Viskositätsmodell für häufige 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 mehrere Größenordnungen umfassen

plt.tight_layout()
plt.savefig('vft_viscosity_plot.svg', format='svg', dpi=300)
print("Plot gespeichert als vft_viscosity_plot.svg")

Check out similar posts by category: Physics, Python