Як обчислити число Рейнольдса у Python за допомогою UliEngineering
Ви можете легко обчислити число Рейнольдса за допомогою бібліотеки Python UliEngineering. Число Рейнольдса — це безрозмірна величина, що прогнозує режими потоку в гідродинаміці:
from UliEngineering.Physics.Viscosity import reynolds_number
from UliEngineering.EngineerIO import *
# Обчислити число Рейнольдса для потоку води в трубі
density = 998.2 # kg/m³ (water)
velocity = 1.0 # m/s
characteristic_length = 0.01 # 1 cm (pipe diameter)
viscosity = 0.001 # Pa·s (water)
Re = reynolds_number(density, velocity, characteristic_length, viscosity)
print(f"Число Рейнольдса: {Re:.0f}")
# Обчислити число Рейнольдса для потоку повітря
density = 1.225 # kg/m³ (air)
velocity = 10.0 # m/s
characteristic_length = 0.1 # 10 cm
viscosity = 1.8e-5 # Pa·s (air)
Re = reynolds_number(density, velocity, characteristic_length, viscosity)
print(f"Число Рейнольдса повітря: {Re:.0f}")
# Обчислити число Рейнольдса для потоку гліцеролу
density = 1261.0 # kg/m³ (glycerol)
velocity = 0.1 # m/s
characteristic_length = 0.01 # 1 cm
viscosity = 1.412 # Pa·s (glycerol)
Re = reynolds_number(density, velocity, characteristic_length, viscosity)
print(f"Число Рейнольдса гліцеролу: {Re:.0f}")Приклад виводу
Число Рейнольдса: 9982
Число Рейнольдса повітря: 68083
Число Рейнольдса гліцеролу: 9Число Рейнольдса визначається як:
$$ Re = \frac{\rho v L}{\eta} $$де $Re$ — число Рейнольдса, $\rho$ — густина рідини, $v$ — швидкість потоку, $L$ — характерна довжина (наприклад, діаметр труби), а $\eta$ — динамічна в’язкість.
Число Рейнольдса вказує, чи є потік ламінарним або турбулентним:
- Re < 2300: Ламінарний потік (плавний, упорядкований)
- 2300 < Re < 4000: Перехідний потік
- Re > 4000: Турбулентний потік (хаотичний, змішування)
Графік вище показує, як число Рейнольдса змінюється зі швидкістю для води, що тече через трубу діаметром 1 см. Зелена пунктирна лінія при Re = 2300 позначає перехід від ламінарного до перехідного потоку, тоді як червона пунктирна лінія при Re = 4000 позначає початок турбулентного потоку.
Число Рейнольдса є фундаментальним для гідромеханіки та використовується в аналізі потоку в трубах, аеродинаміці, теплопередачі та багатьох інших інженерних застосуваннях. Воно відображає відношення сил інерції до сил в’язкості в рідині.
Пов’язані публікації
- How to compute kinematic viscosity in Python using UliEngineering
- How to compute Poiseuille flow rate in Python using UliEngineering
- How to compute Stokes drag in Python using UliEngineering
Скрипт генерації графіка
#!/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 reynolds_number
# Діапазон швидкостей для побудови графіка
v = np.linspace(0.001, 10, 100) # 0.001 to 10 m/s
# Створити графік
plt.figure(figsize=(10, 6))
# Фіксовані параметри (потік, схожий на воду, у трубі)
density = 1000.0 # kg/m³
characteristic_length = 0.01 # 1 cm (pipe diameter)
viscosity = 0.001 # Pa·s
# Обчислити число Рейнольдса
Re = reynolds_number(density, v, characteristic_length, viscosity)
plt.plot(v, Re, color='blue', linewidth=2)
plt.xlabel('Швидкість (м/с)', fontsize=12)
plt.ylabel('Число Рейнольдса', fontsize=12)
plt.title('Число Рейнольдса залежно від швидкості (вода у трубі 1 см)', fontsize=14, fontweight='bold')
plt.grid(True, alpha=0.3)
# Додати лінії переходу ламінарний/турбулентний
plt.axhline(y=2300, color='green', linestyle='--', linewidth=2, label='Ламінарна межа (2300)')
plt.axhline(y=4000, color='red', linestyle='--', linewidth=2, label='Початок турбулентності (4000)')
plt.legend(loc='upper left', fontsize=10)
plt.tight_layout()
plt.savefig('reynolds_plot.svg', format='svg', dpi=300)
print("Plot saved to reynolds_plot.svg")