Продолжение, начало здесь.
Дроссельная шайба применяется для создания дополнительного сопротивления движению рабочей среды (дополнительных потерь давления) в трубопроводе (см.[1]).
Потери давления обычно выражаться в Па или в метрах столба жидкости.
$\Delta p = \Delta H \rho g$, где $\Delta p$ - потери давления в Па, $\Delta H$ - потери давления в метрах, $\rho$ - плотность рабочей среды, $кг/м^3$; $g$ - ускорение свободного падения (9,80665 $м/с^2$).
Под потерями давления подразумеваются потери полного давления $\bar{p} = p + p_д$, где $p$ - статическое давление, $p_д = \rho w^2 / 2$ - динамическое давление, где $w$ - скорость потока внутри трубы, м/с. В случае использования в качестве единиц измерения давления метров столба жидкости, выражение для динамического давления будет иметь вид $H_д = w^2/(2g)$.
Удобство использования в качестве единиц измерения давления метров столба жидкости состоит в том, что результы гидравлического расчёта в этом случае в основном не зависят от плотности рассматриваемой жидкости. В частности, от плотности рабочей среды не зависят выраженные в метрах потери давления от местных гидравлических сопротивлений. Для разных жидкостей и для одной и той же жидкости при разных температурах будут отличаться потери давления от трения в той степени в какой друг от друга будут отличаться коэффициенты кинематической вязкости. Плотность жидкости следует учитывать при выборе мощности электродвигателя для насоса, т.к. мощность насоса пропорциональна плотности рабочей среды.
Уровень потерь давления на участке трубопровода может задаваться следующими величинами:
В [1] необходимые для балансировки линий дополнительные сопротивления задавались величиной $R_H$, в [2] сопротивление дроссельной шайбы определяется величиной $\zeta$. Требуется связать эти две величины между собой, выразив $\zeta$ через $R_H$. Запишем все необходимые для этого выражения.
где $D_1$ - внутренний диаметр трубы, м, $F_1$ - площадь внутреннего сечения трубы, $м^2$.
Для вывода искомой формулы воспользуемся средствами символьного вычисления.
import sympy
dH = sympy.Symbol("\Delta H")
RH, Q, zeta, w, g, D1, F1, pi = sympy.symbols("R_H Q \zeta w g D_1 F_1 \pi")
dH = RH * Q ** 2
F1 = pi * D1 ** 2 / 4
w = Q / F1 / 3600
zeta = 2 * g * dH / w ** 2
zeta
#Диаметр D1 должен задаваться в метрах!
#[Коэффициент гидравлических потерь] =
Используя формулу пересчёта $R_H$ в $\zeta$, можно добавить в класс Orifice
следующие методы:
calc_d0_RH(RH)
- определение диаметра отверстия по значению $R_H = \Delta H / Q^2$ (размерность $ч^2/м^5$);calc_d0_Rp(Rp, dens=998.2)
- определение диаметра отверстия по значению $R_p = \Delta p / Q^2$ (размерность $Па \cdot ч^2/м^6$), $R_p = \rho g R_H$. Для данного метода необходимо передать значение плотности жидкости $\rho$. По умолчанию плотность равна плотности воды при нормальном давлении и температуре 20 С. calc_RH(D0)
- определение значения $R_H$ по заданному диаметру отверстия в шайбе;calc_Rp(D0, dens=998.2)
- определение значения $R_p$ по заданному диаметру отверстия в шайбе и плотности жидкости.Скачать класс Orifice
.
В [1] этап расчёта потерь давления на каждом из участков сети при движении рабочей среды внутри трубопроводов с заданной геометрией был пропущен за ненадобностью. Были заданы гидравлические сопротивления каждого потребителя и значения расходов в каждой линии потребителя.
Qs = [50, 20, 100] #м3/ч
Попробуем "угадать" трубы какого диаметра были использованы в линиях каждого потребителя. Примем, что скорость рабочей среды в трубопроводе должна находиться в диапазоне 1,5 - 3 м/с. Найдём для каждой линии значение внутреннего диаметра трубы при условии, что скорость движения рабочей среды по трубопроводу равна (1,5 + 3) / 2 = 2,25 м/с.
import numpy as np
from math import sqrt, pi
w = 2.25
Qs = np.array(Qs)
F1s = Qs / 3600 / w
D1s = np.sqrt(4 * F1s / pi) * 1000 # в мм
print(*np.round(D1s))
89.0 56.0 125.0
#Выберем размеры труб из номенклатурного ряда ГОСТ 8732-78 Трубы стальные бесшовные горячедеформированные
D1s[0] = 89 - 2 * 3.5 #89 мм - внешний диаметр трубы; 3,5 мм - толщина стенки
D1s[1] = 57 - 2 * 3.0
D1s[2] = 133 - 2 * 4.0
Из [1] возьмём значения дополнительных сопротивлений $R_H$ (там они названы dRs
)
RHs = [0.008032, 0.0271, 0.0]
#Найдём диаметры отверстий в шайбах
from orifice import Orifice
l = 10 # ширина шайбы, мм
D0s = [] # искомые диаметры отверстий в шайбах
for i, RH in enumerate(RHs):
orif = Orifice(D1s[i], l)
D0s.append(orif.calc_d0_RH(RH))
print(*np.round(D0s,1))
35.5 25.3 125.0
g = 9.80665 # ускорение свободного падения, м/с2
#Рассмотрим линию первого потребителя из [1]
Q = Qs[0]; D0 = D0s[0]; D1 = D1s[0];
orif = Orifice(D1, l)
grc = orif.calc_grc(D0) #коэффициент гидравлического сопротивления
D1 /= 1000 #переводим в метры
F1 = pi * D1 * D1 / 4 #площадь сечения трубы
w = Q / F1 / 3600 #скорость рабочей среды в трубе
dH = grc * w * w / 2 /g #потери давления, м
RH = dH / Q / Q #гидравлическое сопротивление шайбы
#Сравниваем с целевым значением гидравлического сопротивления
#Относительное отклонение, %
(RHs[0] - RH) / RHs[0] * 100
6.479295851506998e-14
#Проверим как класс Orifice рассчитывает RH по значению D0
RH_orif = orif.calc_RH(D0)
(RHs[0] - RH_orif) / RHs[0] * 100
2.1597652838356664e-14
#Проверим корректность вычисления гидравлического сопротивления Rd
dens = 998.2 #плотность воды при нормальном давлении и t = 20 C
dp = grc * dens * w * w / 2 #Потери давления в Па
Rp = dp / Q / Q #гидравлическое сопротивление шайбы
#гидравлическое сопротивление шайбы, найденное методом calc_Rp
Rp_orif = orif.calc_Rp(D0, dens)
(Rp - Rp_orif) / Rp * 100
-5.4222496983734067e-14
Rp = RH * dens * g #Rp через RH
(Rp - Rp_orif) / Rp * 100
-5.4222496983734067e-14
Инженерные расчёты на Python, С.В. Медведев, 2020
Использование Python и Jupyter Notebook для инженерных расчётов, С.В. Медведев, 2020