UliEngineering Python kütüphanesini kullanarak sıvıların Andrade viskozitesini kolayca hesaplayabilirsiniz. Andrade denklemi, viskozitenin sıcaklık bağımlılığını tanımlayan Arrhenius tipi bir modeldir:
from UliEngineering.Physics.Viscosity import andrade_viscosity, CommonLiquids
from UliEngineering.EngineerIO import *
# 20°C'de suyun Andrade viskozitesini hesapla
T = 20 + 273.15 # Kelvin'e dönüştür
eta = andrade_viscosity(T, CommonLiquids.Water.andrade)
print(f"Water viscosity at 20°C: {format_value(eta, 'Pa·s')}")
# 50°C'de etanolün Andrade viskozitesini hesapla
T = 50 + 273.15
eta = andrade_viscosity(T, CommonLiquids.Ethanol.andrade)
print(f"Ethanol viscosity at 50°C: {format_value(eta, 'Pa·s')}")
# Özel Andrade sabitleri kullanma
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"Custom liquid viscosity at 300K: {format_value(eta, 'Pa·s')}")Örnek çıktı
Water viscosity at 20°C: 1.00 mPa·s
Ethanol viscosity at 50°C: 1.05 µPa·s
Custom liquid viscosity at 300K: 2.35 mPa·sAndrade denklemi şu şekilde verilir:
$$ \eta = A \cdot \exp\left(\frac{B}{T}\right) $$burada $\eta$ dinamik viskozite, $T$ Kelvin cinsinden mutlak sıcaklık ve $A$ ile $B$ malzemeye özgü sabitlerdir. $B$ parametresi viskoz akışın aktivasyon enerjisi ile ilişkilidir.
Yukarıdaki grafik, 0°C’den 100°C’ye sıcaklık aralığında birkaç yaygın sıvı için Andrade viskozite modelini gösterir. Çoğu sıvıya özgü olan, viskozitenin sıcaklıkla üstel olarak azaldığına dikkat edin.
UliEngineering kütüphanesi, CommonLiquids sınıfı aracılığıyla Su, Etanol, Metanol, Gliserol, Zeytinyağı, Cıva, Aseton ve Benzen gibi yaygın sıvılar için önceden tanımlanmış Andrade sabitleri sağlar.
İlgili yazılar
- UliEngineering kullanarak Python’da VFT viskozitesini hesaplama
- UliEngineering kullanarak Python’da Sutherland gaz viskozitesini hesaplama
- UliEngineering kullanarak Python’da Swindells viskozitesini hesaplama
Grafik üretim betiği
#!/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,
)
# Grafik için Celsius sıcaklık aralığı
T_C = np.linspace(0, 100, 200) # 0'dan 100°C'ye
T_K = T_C + 273.15 # Kelvin'e dönüştür
# Grafiği oluştur
plt.figure(figsize=(10, 6))
# Farklı yaygın sıvılar için grafiği çiz
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 # mPa·s'ye dönüştür
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') # Viskoziteler büyüklük sıralarını kapsadığı için logaritmik ölçek
plt.tight_layout()
plt.savefig('andrade_viscosity_plot.svg', format='svg', dpi=300)
print("Plot saved to andrade_viscosity_plot.svg")