Python: Bingham-Plastik-Schubspannung mit UliEngineering berechnen
Die Schubspannung für Bingham-Plastik-Fluide lässt sich mit der UliEngineering-Python-Bibliothek einfach 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. Alle Materialien haben einen von null verschiedenen Achsenabschnitt (Fließgrenze) und steigen dann linear mit der Schergeschwindigkeit an, 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. Ohne angegebene Konstanten werden Standard-Beispielwerte (τ₀ = 10 Pa, μₚ = 0,1 Pa·s) verwendet.
Verwandte Beiträge
- Poiseuille-Volumenstrom mit UliEngineering in Python berechnen
- Stokes-Widerstand mit UliEngineering in Python berechnen
- Reynolds-Zahl mit UliEngineering in Python berechnen
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")