Jak vypočítat Swindellsovu viskozitu v Pythonu pomocí UliEngineering

Můžete snadno vypočítat Swindellsovu korelaci viskozity pomocí knihovny UliEngineering v Pythonu. Swindellsova korelace je empirický model běžně používaný pro viskozitu vody:

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

# Výpočet Swindellsovy viskozity vody při 20°C
T = 20 + 273.15  # Převod na Kelviny
eta = swindells_viscosity(T, CommonLiquids.Water.swindells)
print(f"Water viscosity at 20°C: {format_value(eta, 'Pa·s')}")

# Výpočet Swindellsovy viskozity vody při 50°C
T = 50 + 273.15
eta = swindells_viscosity(T, CommonLiquids.Water.swindells)
print(f"Water viscosity at 50°C: {format_value(eta, 'Pa·s')}")

# Použití vlastních Swindellsových konstant
from UliEngineering.Physics.Viscosity import SwindellsConstants
custom = SwindellsConstants(name="Custom liquid", eta_ref=1.0e-3, T_ref=293.15, a=1.5, b=-150.0)
eta = swindells_viscosity(300.0, custom)
print(f"Custom liquid viscosity at 300K: {format_value(eta, 'Pa·s')}")

Příklad výstupu

swindells_viscosity_output.txt
Water viscosity at 20°C: 1.00 mPa·s
Water viscosity at 50°C: 546 µPa·s
Custom liquid viscosity at 300K: 1.00 mPa·s

swindells viscosity plot.svg

Swindellsova korelace je dána:

$$ \eta = \eta_{ref} \cdot 10^{\left(-\frac{a \cdot (T - T_{ref})}{T + b}\right)} $$

kde $\eta$ je dynamická viskozita, $T$ je absolutní teplota v Kelvinech, $\eta_{ref}$ je referenční viskozita při referenční teplotě $T_{ref}$ a $a$ a $b$ jsou empirické parametry specifické pro tekutinu.

Swindellsova korelace byla vyvinuta specificky pro vodu a poskytuje vynikající přesnost v širokém teplotním rozsahu. Je obzvláště užitečná v inženýrských aplikacích, kde je třeba vypočítat viskozitu vody při různých teplotách.

Graf výše ukazuje Swindellsovu korelaci pro vodu v teplotním rozsahu od 0°C do 100°C. Všimněte si charakteristického exponenciálního poklesu viskozity s rostoucí teplotou.

Knihovna UliEngineering poskytuje předdefinované Swindellsovy konstanty pro vodu prostřednictvím CommonLiquids.Water.swindells. Vlastní konstanty lze definovat pomocí datové třídy SwindellsConstants pro další tekutiny.

Související příspěvky


Skript pro generování grafu

plot_swindells_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 (
    swindells_viscosity,
    CommonLiquids,
)

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

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

# Graf pro vodu pomocí Swindellsovy korelace
eta = swindells_viscosity(T_K, CommonLiquids.Water.swindells) * 1000  # Převod na mPa·s
plt.plot(T_C, eta, label='Voda', color='blue', linewidth=2)

plt.xlabel('Teplota (°C)', fontsize=12)
plt.ylabel('Dynamická viskozita (mPa·s)', fontsize=12)
plt.title('Swindellsova korelace viskozity pro vodu', fontsize=14, fontweight='bold')
plt.legend(loc='upper right', fontsize=10)
plt.grid(True, alpha=0.3)

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

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