Cómo calcular la viscosidad Andrade en Python usando UliEngineering
Puedes calcular fácilmente la viscosidad Andrade de líquidos usando la librería Python UliEngineering. La ecuación de Andrade es un modelo tipo Arrhenius que describe la dependencia de la viscosidad con la temperatura:
from UliEngineering.Physics.Viscosity import andrade_viscosity, CommonLiquids
from UliEngineering.EngineerIO import *
# Calcular viscosidad Andrade del agua a 20°C
T = 20 + 273.15 # Convertir a Kelvin
eta = andrade_viscosity(T, CommonLiquids.Water.andrade)
print(f"Viscosidad del agua a 20°C: {format_value(eta, 'Pa·s')}")
# Calcular viscosidad Andrade del etanol a 50°C
T = 50 + 273.15
eta = andrade_viscosity(T, CommonLiquids.Ethanol.andrade)
print(f"Viscosidad del etanol a 50°C: {format_value(eta, 'Pa·s')}")
# Usar constantes Andrade personalizadas
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"Viscosidad del líquido personalizado a 300K: {format_value(eta, 'Pa·s')}")Ejemplo de salida
Viscosidad del agua a 20°C: 1.00 mPa·s
Viscosidad del etanol a 50°C: 1.05 µPa·s
Viscosidad del líquido personalizado a 300K: 2.35 mPa·sLa ecuación de Andrade viene dada por:
$$ \eta = A \cdot \exp\left(\frac{B}{T}\right) $$donde $\eta$ es la viscosidad dinámica, $T$ es la temperatura absoluta en Kelvin, y $A$ y $B$ son constantes específicas del material. El parámetro $B$ está relacionado con la energía de activación del flujo viscoso.
La gráfica anterior muestra el modelo de viscosidad Andrade para varios líquidos comunes en un rango de temperatura de 0°C a 100°C. Observa que la viscosidad disminuye exponencialmente con la temperatura, lo cual es característico de la mayoría de los líquidos.
La librería UliEngineering proporciona constantes Andrade predefinidas para líquidos comunes como Agua, Etanol, Metanol, Glicerol, Aceite de Oliva, Mercurio, Acetona y Benceno a través de la clase CommonLiquids.
Entradas relacionadas
- Cómo calcular la viscosidad VFT en Python usando UliEngineering
- Cómo calcular la viscosidad de gas Sutherland 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 (
andrade_viscosity,
CommonLiquids,
)
# Temperature range in Celsius for plotting
T_C = np.linspace(0, 100, 200) # 0 to 100°C
T_K = T_C + 273.15 # Convert to Kelvin
# Create plot
plt.figure(figsize=(10, 6))
# Plot for different common liquids
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('Temperature (°C)', fontsize=12)
plt.ylabel('Dynamic Viscosity (mPa·s)', fontsize=12)
plt.title('Andrade Viscosity Model for Common Liquids', fontsize=14, fontweight='bold')
plt.legend(loc='upper right', fontsize=10)
plt.grid(True, alpha=0.3)
plt.yscale('log') # Log scale because viscosities span orders of magnitude
plt.tight_layout()
plt.savefig('andrade_viscosity_plot.svg', format='svg', dpi=300)
print("Plot saved to andrade_viscosity_plot.svg")