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

Ви можете легко обчислити дотичне напруження для бінгамівських пластичних рідин за допомогою бібліотеки Python UliEngineering. Модель бінгамівської пластичної рідини описує рідини, які поводяться як тверді тіла при низькому дотичному напруженні та течуть як рідини при напруженні, вищому за межу текучості:

bingham_stress.py
from UliEngineering.Physics.Viscosity import bingham_stress, BinghamConstants
from UliEngineering.EngineerIO import *

# Обчислити напруження Бінгама з типовими константами
gamma = 10.0  # Shear rate in s^-1
tau = bingham_stress(gamma)
print(f"Дотичне напруження при {gamma} с^-1: {format_value(tau, 'Па')}")

# Обчислити напруження Бінгама для бурового розчину
drilling_mud = BinghamConstants(name='Drilling mud', tau0=20.0, mu_p=0.3)
gamma = 25.0
tau = bingham_stress(gamma, drilling_mud)
print(f"Дотичне напруження бурового розчину при {gamma} с^-1: {format_value(tau, 'Па')}")

# Обчислити напруження Бінгама для зубної пасти
toothpaste = BinghamConstants(name='Toothpaste', tau0=50.0, mu_p=0.5)
gamma = 5.0
tau = bingham_stress(gamma, toothpaste)
print(f"Дотичне напруження зубної пасти при {gamma} с^-1: {format_value(tau, 'Па')}")

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

bingham_stress_output.txt
Дотичне напруження при 10,0 с^-1: 11,0 Па
Дотичне напруження бурового розчину при 25,0 с^-1: 27,5 Па
Дотичне напруження зубної пасти при 5,0 с^-1: 52,5 Па

bingham plot.svg

Модель бінгамівської пластичної рідини задається формулою:

$$ \tau = \tau_0 + \mu_p \cdot \dot{\gamma} $$

де $\tau$ — дотичне напруження, $\tau_0$ — межа текучості (мінімальне напруження, необхідне для початку течії), $\mu_p$ — пластична в’язкість, а $\dot{\gamma}$ — швидкість зсуву.

Бінгамівські пластичні рідини — це неньютонівські рідини, які мають межу текучості, нижче якої вони поводяться як тверді тіла. Вище цієї межі текучості вони течуть з постійною пластичною в’язкістю. Типові приклади включають бурові розчини, зубну пасту, фарби та деякі харчові продукти, наприклад кетчуп.

Графік вище показує модель бінгамівської пластичної рідини для різних матеріалів у діапазоні швидкостей зсуву. Зверніть увагу, що всі матеріали мають ненульовий перетин (межу текучості), а потім зростають лінійно зі швидкістю зсуву, причому нахил визначається пластичною в’язкістю.

Бібліотека UliEngineering надає дата-клас BinghamConstants для визначення межі текучості та пластичної в’язкості, специфічних для матеріалу. Якщо константи не надані, використовуються типові прикладні значення (τ₀ = 10 Па, μₚ = 0,1 Па·с).

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


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

plot_bingham.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 (
    bingham_stress,
    BinghamConstants,
)

# Діапазон швидкостей зсуву для побудови графіка
gamma = np.linspace(0, 50, 100)  # 0 to 50 s^-1

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

# Побудувати графік для різних бінгамівських матеріалів
materials = [
    ('Буровий розчин', BinghamConstants(name='Drilling mud', tau0=20.0, mu_p=0.3), 'blue'),
    ('Зубна паста', BinghamConstants(name='Toothpaste', tau0=50.0, mu_p=0.5), 'green'),
    ('Фарба', BinghamConstants(name='Paint', tau0=10.0, mu_p=0.1), 'red'),
    ('Глиняна суспензія', 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('Швидкість зсуву (с⁻¹)', fontsize=12)
plt.ylabel('Дотичне напруження (Па)', fontsize=12)
plt.title('Модель бінгамівської пластичної рідини для різних матеріалів', 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")

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