Jak vypočítat Sutherlandovu viskozitu plynu v Pythonu pomocí UliEngineering

Můžete snadno vypočítat Sutherlandovu viskozitu plynu pomocí knihovny UliEngineering v Pythonu. Sutherlandův model je široce používán k popisu teplotní závislosti viskozity plynu:

K
Pa·s
K
K
sutherland_viscosity.py
from UliEngineering.Physics.Viscosity import sutherland_gas_viscosity, CommonGases
from UliEngineering.EngineerIO import *

# Výpočet Sutherlandovy viskozity vzduchu při 20°C
T = 20 + 273.15  # Převod na Kelviny
mu = sutherland_gas_viscosity(T, CommonGases.Air.sutherland)
print(f"Air viscosity at 20°C: {format_value(mu, 'Pa·s')}")

# Výpočet Sutherlandovy viskozity dusíku při 100°C
T = 100 + 273.15
mu = sutherland_gas_viscosity(T, CommonGases.Nitrogen.sutherland)
print(f"Nitrogen viscosity at 100°C: {format_value(mu, 'Pa·s')}")

# Použití vlastních Sutherlandových konstant
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 viscosity at 300K: {format_value(mu, 'Pa·s')}")

Příklad výstupu

sutherland_viscosity_output.txt
Air viscosity at 20°C: 18.3 µPa·s
Nitrogen viscosity at 100°C: 20.9 µPa·s
Custom gas viscosity at 300K: 18.4 µPa·s

sutherland viscosity plot.svg

Sutherlandova rovnice je dána:

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

kde $\mu$ je dynamická viskozita, $T$ je absolutní teplota v Kelvinech, $\mu_0$ je referenční viskozita při referenční teplotě $T_0$ a $C$ je Sutherlandova konstanta specifická pro každý plyn.

Na rozdíl od kapalin viskozita plynu roste s teplotou v důsledku zvýšeného molekulárního pohybu a srážek. Sutherlandův model zachycuje toto chování přesně pro široký rozsah teplot a je obzvláště užitečný pro inženýrské výpočty zahrnující plyny.

Graf výše ukazuje Sutherlandův model viskozity pro běžné plyny (vzduch, dusík, kyslík, oxid uhličitý a helium) v teplotním rozsahu od 0°C do 1000°C. Všimněte si, že všechny plyny vykazují rostoucí viskozitu s teplotou, přičemž helium má celkově nejvyšší viskozitu.

Knihovna UliEngineering poskytuje předdefinované Sutherlandovy konstanty pro běžné plyny jako vzduch, dusík, kyslík, oxid uhličitý a helium prostřednictvím třídy CommonGases.

Související příspěvky


Skript pro generování grafu

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,
)

# Teplotní rozsah v Celsiu pro graf (-273 až 1000°C)
T_C = np.linspace(0, 1000, 200)  # 0 až 1000°C
T_K = T_C + 273.15  # Převod na Kelviny

# Vytvoření grafu
plt.figure(figsize=(10, 6))

# Graf pro různé běžné plyny
gases_to_plot = [
    ('Vzduch', CommonGases.Air.sutherland, 'blue'),
    ('Dusík', CommonGases.Nitrogen.sutherland, 'green'),
    ('Kyslík', CommonGases.Oxygen.sutherland, 'red'),
    ('Oxid uhličitý', 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  # Převod na µPa·s
    plt.plot(T_C, mu, label=name, color=color, linewidth=2)

plt.xlabel('Teplota (°C)', fontsize=12)
plt.ylabel('Dynamická viskozita (µPa·s)', fontsize=12)
plt.title('Sutherlandův model viskozity plynu pro běžné plyny', 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 saved to sutherland_viscosity_plot.svg")

Podívejte se na podobné články podle kategorie: Calculators, Physics, Python