Cómo calcular la viscosidad de gas Sutherland en Python usando UliEngineering
Puedes calcular fácilmente la viscosidad de gas de Sutherland usando la librería Python UliEngineering. El modelo de Sutherland se usa ampliamente para describir la dependencia de la viscosidad de los gases con la temperatura:
from UliEngineering.Physics.Viscosity import sutherland_gas_viscosity, CommonGases
from UliEngineering.EngineerIO import *
# Calcular viscosidad de Sutherland del aire a 20°C
T = 20 + 273.15 # Convertir a Kelvin
mu = sutherland_gas_viscosity(T, CommonGases.Air.sutherland)
print(f"Viscosidad del aire a 20°C: {format_value(mu, 'Pa·s')}")
# Calcular viscosidad de Sutherland del nitrógeno a 100°C
T = 100 + 273.15
mu = sutherland_gas_viscosity(T, CommonGases.Nitrogen.sutherland)
print(f"Viscosidad del nitrógeno a 100°C: {format_value(mu, 'Pa·s')}")
# Usar constantes de Sutherland personalizadas
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"Viscosidad del gas personalizado a 300K: {format_value(mu, 'Pa·s')}")Ejemplo de salida
Viscosidad del aire a 20°C: 18.3 µPa·s
Viscosidad del nitrógeno a 100°C: 20.9 µPa·s
Viscosidad del gas personalizado a 300K: 18.4 µPa·sLa ecuación de Sutherland viene dada por:
$$ \mu = \mu_0 \cdot \frac{T_0 + C}{T + C} \cdot \left(\frac{T}{T_0}\right)^{3/2} $$donde $\mu$ es la viscosidad dinámica, $T$ es la temperatura absoluta en Kelvin, $\mu_0$ es la viscosidad de referencia a la temperatura de referencia $T_0$, y $C$ es la constante de Sutherland específica de cada gas.
A diferencia de los líquidos, la viscosidad de los gases aumenta con la temperatura debido al aumento del movimiento molecular y las colisiones. El modelo de Sutherland captura este comportamiento con precisión para un amplio rango de temperaturas y es particularmente útil para cálculos de ingeniería que involucran gases.
La gráfica anterior muestra el modelo de viscosidad de Sutherland para gases comunes (Aire, Nitrógeno, Oxígeno, Dióxido de Carbono y Helio) en un rango de temperatura de 0°C a 1000°C. Observa que todos los gases muestran viscosidad creciente con la temperatura, con el Helio teniendo la viscosidad más alta en general.
La librería UliEngineering proporciona constantes de Sutherland predefinidas para gases comunes como Aire, Nitrógeno, Oxígeno, Dióxido de Carbono y Helio a través de la clase CommonGases.
Entradas relacionadas
- Cómo calcular la viscosidad Andrade en Python usando UliEngineering
- Cómo calcular la viscosidad VFT en Python usando UliEngineering
- Cómo calcular la viscosidad de Swindells en Python usando UliEngineering
Script de generación de la gráfica
#!/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,
)
# Temperature range in Celsius for plotting (-273 to 1000°C as user suggested)
T_C = np.linspace(0, 1000, 200) # 0 to 1000°C
T_K = T_C + 273.15 # Convert to Kelvin
# Create plot
plt.figure(figsize=(10, 6))
# Plot for different common gases
gases_to_plot = [
('Air', CommonGases.Air.sutherland, 'blue'),
('Nitrogen', CommonGases.Nitrogen.sutherland, 'green'),
('Oxygen', CommonGases.Oxygen.sutherland, 'red'),
('Carbon Dioxide', 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 # Convert to µPa·s
plt.plot(T_C, mu, label=name, color=color, linewidth=2)
plt.xlabel('Temperature (°C)', fontsize=12)
plt.ylabel('Dynamic Viscosity (µPa·s)', fontsize=12)
plt.title('Sutherland Gas Viscosity Model for Common Gases', 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")