Python: Bingham-Plastik-Schubspannung mit UliEngineering berechnen
Du kannst leicht die Schubspannung für Bingham-Plastik-Fluide mit der UliEngineering-Python-Bibliothek berechnen. Das Bingham-Plastik-Modell beschreibt Fluide, die sich bei niedriger Schubspannung wie Festkörper verhalten und oberhalb einer Fließgrenze wie Flüssigkeiten fließen:
from UliEngineering.Physics.Viscosity import bingham_stress, BinghamConstants
from UliEngineering.EngineerIO import *
# Bingham-Schubspannung mit Standardkonstanten berechnen
gamma = 10.0 # Schergeschwindigkeit in s^-1
tau = bingham_stress(gamma)
print(f"Schubspannung bei {gamma} s^-1: {format_value(tau, 'Pa')}")
# Bingham-Schubspannung für Bohrschlamm berechnen
drilling_mud = BinghamConstants(name='Drilling mud', tau0=20.0, mu_p=0.3)
gamma = 25.0
tau = bingham_stress(gamma, drilling_mud)
print(f"Bohrschlamm-Schubspannung bei {gamma} s^-1: {format_value(tau, 'Pa')}")
# Bingham-Schubspannung für Zahnpasta berechnen
toothpaste = BinghamConstants(name='Toothpaste', tau0=50.0, mu_p=0.5)
gamma = 5.0
tau = bingham_stress(gamma, toothpaste)
print(f"Zahnpasta-Schubspannung bei {gamma} s^-1: {format_value(tau, 'Pa')}")Beispielausgabe
Schubspannung bei 10.0 s^-1: 11.0 Pa
Bohrschlamm-Schubspannung bei 25.0 s^-1: 27.5 Pa
Zahnpasta-Schubspannung bei 5.0 s^-1: 52.5 PaDas Bingham-Plastik-Modell lautet:
$$ \tau = \tau_0 + \mu_p \cdot \dot{\gamma} $$wobei $\tau$ die Schubspannung, $\tau_0$ die Fließgrenze (minimale Spannung, die zum Einleiten des Fließens erforderlich ist), $\mu_p$ die plastische Viskosität und $\dot{\gamma}$ die Schergeschwindigkeit ist.
Bingham-Plastike sind nicht-Newtonsche Fluide, die eine Fließgrenze aufweisen, unterhalb derer sie sich wie Festkörper verhalten. Oberhalb dieser Fließgrenze fließen sie mit einer konstanten plastischen Viskosität. Häufige Beispiele sind Bohrschlamm, Zahnpasta, Farben und bestimmte Lebensmittel wie Ketchup.
Das obige Diagramm zeigt das Bingham-Plastik-Modell für verschiedene Materialien über einen Bereich von Schergeschwindigkeiten. Beachte, dass alle Materialien einen von null verschiedenen Achsenabschnitt (Fließgrenze) haben und dann linear mit der Schergeschwindigkeit ansteigen, wobei die Steigung durch die plastische Viskosität bestimmt wird.
Die UliEngineering-Bibliothek stellt die BinghamConstants-Datenklasse zur Definition materialspezifischer Fließgrenzen- und plastischer Viskositätsparameter bereit. Wenn keine Konstanten angegeben werden, werden Standard-Beispielwerte (τ₀ = 10 Pa, μₚ = 0,1 Pa·s) verwendet.
Verwandte Beiträge
- How to compute Poiseuille flow rate in Python using UliEngineering
- How to compute Stokes drag in Python using UliEngineering
- How to compute Reynolds number in Python using UliEngineering
Diagramm-Estellungsskript
#!/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 (
bingham_stress,
BinghamConstants,
)
# Schergeschwindigkeitsbereich für das Diagramm
gamma = np.linspace(0, 50, 100) # 0 bis 50 s^-1
# Diagramm erstellen
plt.figure(figsize=(10, 6))
# Für verschiedene Bingham-Materialien darstellen
materials = [
('Drilling mud', BinghamConstants(name='Drilling mud', tau0=20.0, mu_p=0.3), 'blue'),
('Toothpaste', BinghamConstants(name='Toothpaste', tau0=50.0, mu_p=0.5), 'green'),
('Paint', BinghamConstants(name='Paint', tau0=10.0, mu_p=0.1), 'red'),
('Clay slurry', BinghamConstants(name='Clay slurry', tau0=15.0, mu_p=0.2), 'purple'),
]
for name, constants, color in materials:
tau = bingham_stress(gamma, constants)
plt.plot(gamma, tau, label=name, color=color, linewidth=2)
plt.xlabel('Schergeschwindigkeit (s⁻¹)', fontsize=12)
plt.ylabel('Schubspannung (Pa)', fontsize=12)
plt.title('Bingham-Plastik-Modell für verschiedene Materialien', fontsize=14, fontweight='bold')
plt.legend(loc='upper left', fontsize=10)
plt.grid(True, alpha=0.3)
plt.tight_layout()
plt.savefig('bingham_plot.svg', format='svg', dpi=300)
print("Plot saved to bingham_plot.svg")