Python: Sutherland-Gasviskosität mit UliEngineering berechnen

English Deutsch

Du kannst leicht die Sutherland-Gasviskosität mit der UliEngineering-Python-Bibliothek berechnen. Das Sutherland-Modell wird häufig verwendet, um die Temperaturabhängigkeit der Gasviskosität zu beschreiben:

sutherland_viscosity.py
from UliEngineering.Physics.Viscosity import sutherland_gas_viscosity, CommonGases
from UliEngineering.EngineerIO import *

# Sutherland-Viskosität von Luft bei 20°C berechnen
T = 20 + 273.15  # In Kelvin umrechnen
mu = sutherland_gas_viscosity(T, CommonGases.Air.sutherland)
print(f"Luftviskosität bei 20°C: {format_value(mu, 'Pa·s')}")

# Sutherland-Viskosität von Stickstoff bei 100°C berechnen
T = 100 + 273.15
mu = sutherland_gas_viscosity(T, CommonGases.Nitrogen.sutherland)
print(f"Stickstoffviskosität bei 100°C: {format_value(mu, 'Pa·s')}")

# Mit benutzerdefinierten Sutherland-Konstanten
from UliEngineering.Physics.Viscosity import SutherlandConstants
custom = SutherlandConstants(name="Custom gas", mu0=1.8e-5, T0=273.15, C=120.0)
mu = sutherland_gas_viscosity(300.0, custom)
print(f"Custom-Gas-Viskosität bei 300K: {format_value(mu, 'Pa·s')}")

Beispielausgabe

sutherland_viscosity_output.txt
Luftviskosität bei 20°C: 18.3 µPa·s
Stickstoffviskosität bei 100°C: 20.9 µPa·s
Custom-Gas-Viskosität bei 300K: 18.4 µPa·s

sutherland viscosity plot.svg

Die Sutherland-Gleichung ist gegeben durch:

$$ \mu = \mu_0 \cdot \frac{T_0 + C}{T + C} \cdot \left(\frac{T}{T_0}\right)^{3/2} $$

wobei $\mu$ die dynamische Viskosität, $T$ die absolute Temperatur in Kelvin, $\mu_0$ die Referenzviskosität bei Referenztemperatur $T_0$ und $C$ die Sutherland-Konstante ist, die für jedes Gas spezifisch ist.

Im Gegensatz zu Flüssigkeiten steigt die Gasviskosität mit der Temperatur aufgrund erhöhter Molekularbewegung und Kollisionen. Das Sutherland-Modell erfasst dieses Verhalten präzise für einen weiten Temperaturbereich und ist besonders nützlich für technische Berechnungen mit Gasen.

Der obige Plot zeigt das Sutherland-Viskositätsmodell für häufige Gase (Luft, Stickstoff, Sauerstoff, Kohlendioxid und Helium) über einen Temperaturbereich von 0°C bis 1000°C. Beachte, dass alle Gase eine zunehmende Viskosität mit der Temperatur zeigen, wobei Helium insgesamt die höchste Viskosität aufweist.

Die UliEngineering-Bibliothek stellt vordefinierte Sutherland-Konstanten für häufige Gase wie Luft, Stickstoff, Sauerstoff, Kohlendioxid und Helium über die Klasse CommonGases bereit.

Verwandte Beiträge


Plot-Erzeugungsskript

plot_sutherland_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 (
    sutherland_gas_viscosity,
    CommonGases,
)

# Temperaturbereich in Celsius für Plotting
T_C = np.linspace(0, 1000, 200)  # 0 bis 1000°C
T_K = T_C + 273.15  # In Kelvin umrechnen

# Plot erstellen
plt.figure(figsize=(10, 6))

# Plot für verschiedene häufige Gase
gases_to_plot = [
    ('Luft', CommonGases.Air.sutherland, 'blue'),
    ('Stickstoff', CommonGases.Nitrogen.sutherland, 'green'),
    ('Sauerstoff', CommonGases.Oxygen.sutherland, 'red'),
    ('Kohlendioxid', CommonGases.CarbonDioxide.sutherland, 'purple'),
    ('Helium', CommonGases.Helium.sutherland, 'orange'),
]

for name, constants, color in gases_to_plot:
    mu = sutherland_gas_viscosity(T_K, constants) * 1e6  # In µPa·s umrechnen
    plt.plot(T_C, mu, label=name, color=color, linewidth=2)

plt.xlabel('Temperatur (°C)', fontsize=12)
plt.ylabel('Dynamische Viskosität (µPa·s)', fontsize=12)
plt.title('Sutherland-Gasviskositätsmodell für häufige Gase', fontsize=14, fontweight='bold')
plt.legend(loc='upper left', fontsize=10)
plt.grid(True, alpha=0.3)

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

Check out similar posts by category: Physics, Python