Як обчислити в'язкість Андрáде у Python за допомогою UliEngineering

Ви можете легко обчислити в’язкість рідин Андрáде за допомогою бібліотеки Python UliEngineering. Рівняння Андрáде — це модель типу Арреніуса, яка описує температурну залежність в’язкості:

K
Pa·s
K
andrade_viscosity.py
from UliEngineering.Physics.Viscosity import andrade_viscosity, CommonLiquids
from UliEngineering.EngineerIO import *

# Обчислити в'язкість Андрáде води при 20°C
T = 20 + 273.15  # Convert to Kelvin
eta = andrade_viscosity(T, CommonLiquids.Water.andrade)
print(f"В'язкість води при 20°C: {format_value(eta, 'Па·с')}")

# Обчислити в'язкість Андрáде етанолу при 50°C
T = 50 + 273.15
eta = andrade_viscosity(T, CommonLiquids.Ethanol.andrade)
print(f"В'язкість етанолу при 50°C: {format_value(eta, 'Па·с')}")

# Використання власних констант Андрáде
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"В'язкість власної рідини при 300K: {format_value(eta, 'Па·с')}")

Приклад виводу

andrade_viscosity_output.txt
В'язкість води при 20°C: 1,00 мПа·с
В'язкість етанолу при 50°C: 1,05 мкПа·с
В'язкість власної рідини при 300K: 2,35 мПа·с

Графік моделі в’язкості Андрáде

Рівняння Андрáде має вигляд:

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

де $\eta$ — динамічна в’язкість, $T$ — абсолютна температура у Кельвінах, а $A$ та $B$ — константи, специфічні для матеріалу. Параметр $B$ пов’язаний з енергією активації в’язкого потоку.

Графік вище показує модель в’язкості Андрáде для кількох поширених рідин у діапазоні температур від 0°C до 100°C. Зверніть увагу, що в’язкість експоненціально зменшується з температурою, що є характерним для більшості рідин.

Бібліотека UliEngineering надає попередньо визначені константи Андрáде для поширених рідин, таких як вода, етанол, метанол, гліцерол, оливкова олія, ртуть, ацетон та бензен, через клас CommonLiquids.

Пов’язані публікації


Скрипт генерації графіка

plot_andrade_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 (
    andrade_viscosity,
    CommonLiquids,
)

# Діапазон температур у Цельсіях для побудови графіка
T_C = np.linspace(0, 100, 200)  # 0 to 100°C
T_K = T_C + 273.15  # Convert to Kelvin

# Створити графік
plt.figure(figsize=(10, 6))

# Побудувати графік для різних поширених рідин
liquids_to_plot = [
    ('Вода', CommonLiquids.Water.andrade, 'blue'),
    ('Етанол', CommonLiquids.Ethanol.andrade, 'green'),
    ('Метанол', CommonLiquids.Methanol.andrade, 'red'),
    ('Гліцерол', CommonLiquids.Glycerol.andrade, 'purple'),
    ('Ртуть', 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('Температура (°C)', fontsize=12)
plt.ylabel('Динамічна в'язкість (мПа·с)', fontsize=12)
plt.title('Модель в'язкості Андрáде для поширених рідин', fontsize=14, fontweight='bold')
plt.legend(loc='upper right', fontsize=10)
plt.grid(True, alpha=0.3)
plt.yscale('log')  # Логарифмічна шкала, оскільки в'язкості охоплюють кілька порядків величини

plt.tight_layout()
plt.savefig('andrade_viscosity_plot.svg', format='svg', dpi=300)
print("Plot saved to andrade_viscosity_plot.svg")

Дивіться схожі статті за категоріями: Calculators, Physics, Python