В [1] и [2] были описаны методики расчёта потерь давления в трубе и в отводе. Там же были приведены примеры использования функций из модуля hydrcalc
для расчёта потерь давления в этих элементах трубопровода.
В версию 3 модуля hydrcalc
(скачать) были добавлены функции для расчёта потерь давления по значению пропускной способности $K_V$ Kv_calc_dH(Q, D, Kv)
и по значению коэффициента местного сопротивления $\zeta$ lrc_calc_dH(Q, D, lrc)
.
Для расчёта потерь давления в трубопроводе предназначена функция ppln_calc_dH(Q, elems, **kwargs)
, которая возвращает список значений потерь давления (в метрах столба жидкости) для каждого элемента трубопровода.
from hydrcalc import ppln_calc_dH
#Описание функции ppln_calc_dH
help(ppln_calc_dH)
Help on function ppln_calc_dH in module hydrcalc: ppln_calc_dH(Q, elems, **kwargs) Расчёт потерь давления (метры столба жидкости) в трубопроводе Возвращает список значений потерь давления (метры столба жидкости) для каждого элемента трубопровода Q: объёмный расход, м3/ч elems: список элементов трубопровода. Каждый элемент списка - словарь параметров kwargs: словарь параметров со значениями по умолчанию
В функцию ppln_calc_dH
в качестве одного из параметров необходимо передать список элементов рассматриваемого трубопровода. Каждый элемент трубопровода представлен словарём. В каждом словаре должен быть задан ключ 'type'.
import hydrcalc
hydrcalc.types
#элементы трубопровода
['pipe', 'elbow', 'Kv', 'lrc']
'pipe' - труба, 'elbow' - отвод, 'Kv' - значение пропускной сособности, 'lrc' - значение коэффициента местного сопротивления.
Так же словарь должен содержать значения параметров элемента трубопровода.
hydrcalc.params
#Список ключей параметров для каждого элемента
{'pipe': ['D', 'Delta', 'kvisc', 'qty'], 'elbow': ['D', 'deg', 'RD', 'Delta', 'kvisc', 'qty'], 'Kv': ['D', 'value', 'qty'], 'lrc': ['D', 'value', 'qty']}
'D' - внутренний диаметр, м; 'Delta' - абсолютная шероховатость внутренних стенок элемента, м; 'kvisc' - кинематическая вязкость рабочей среды, м2/с; 'deg' - угол поворота отвода, градусы; 'RD' - относительный радиус закругления отвода; 'value' - значение пропускной способности (для элемента 'Kv') или значение коэффициента местного сопротивления (для элемента 'lrc'); 'qty' - количество данных элементов в трубопроводе (для 'pipe' 'qty' - это длина трубы в метрах).
#Пример задания параметров для отвода
elbow = {'type': 'elbow', 'D': 0.1, 'deg': 90, 'RD': 1.5, 'Delta': 0.2e-3, 'kvisc': 1e-6, 'qty': 2}
elbow
{'type': 'elbow', 'D': 0.1, 'deg': 90, 'RD': 1.5, 'Delta': 0.0002, 'kvisc': 1e-06, 'qty': 2}
elems = [elbow]
Q = 50 #объёмный расход, м3/ч
#Найдём потери давления в отводе в метрах водяного столба
ppln_calc_dH(Q, elems)
[0.13437720561433802]
Можно задать значение параметров по умолчанию. Например, внутренний диаметр, шероховатость стенок, кинематическая вязкость рабочей среды для всех элементов трубопровода скорее всего будут одинаковыми. Для задания значений параметров по умолчанию необходимо их передать в функцию ppln_calc_dH
в качестве именованных параметров.
elbow = {'type': 'elbow', 'deg': 90, 'RD': 1.5, 'qty': 2}
pipe = {'type': 'pipe', 'qty': 50}
elems = [elbow, pipe]
ppln_calc_dH(Q, elems, D = 0.1, Delta = 0.2e-3, kvisc = 1e-6)
[0.13437720561433802, 1.9466690247241643]
Для формирования словаря параметров с значениямипо умолчанию удобно использовать функцию ppln_get_defs
.
from hydrcalc import ppln_get_defs
help(ppln_get_defs)
Help on function ppln_get_defs in module hydrcalc: ppln_get_defs(D, Delta=0.0002, kvisc=1e-06, deg=90, RD=1.5, qty=1) Формирование словаря параметров элементов трубопровода со значениями по умолчанию D: внутренний диаметр, м Delta: абсолютная шероховатость, м (по умолчанию - 0.2 мм) kvisc: кинематическая вязкость, м2/с (по умолчанию - вязкость воды при 20 С) deg: угол поворота отвода, градусы (по умолчанию - 90 градусов) RD: относительный радиус закругления отвода (по умолчанию - R/D = 1,5) qty: количество элементов трубопровода каждого типа (по умолчанию - 1)
defs = ppln_get_defs(0.1) #передаём значение диаметра
defs
{'D': 0.1, 'Delta': 0.0002, 'kvisc': 1e-06, 'deg': 90, 'RD': 1.5, 'qty': 1}
#Теперь нет необходимости задавать для каждого элемента все параметры
elbow = {'type': 'elbow', 'qty': 2}
pipe = {'type': 'pipe', 'qty': 50}
elems = [elbow, pipe]
ppln_calc_dH(50, elems, **defs)
[0.13437720561433802, 1.9466690247241643]
Расмотрим следующую схему: насос перекачивает воду температурой 20 С из одного бака в другой с производительностью $Q = 50\, м^3/ч$. На всасе и на напоре насоса стоят запорные вентили, общая длина труб - 50 метров, внутренний диаметр трубопровода 100 мм (0.1 м), количество отводов 90 градусов - 10 штук, отводов 45 градусов - 4 штуки, относительный радиус загругления отводов $R/D = 2$, шероховатость внутренних стенок трубопровода $\Delta = 0.3\, мм$.
Значение коэффициента местного сопротивления при входе воды в трубопровод из бака составляет $\zeta_{вх} = 0.5$, при выходе из трубопровода (потери с выходной скоростью) - $\zeta_{вых} = 1.0$. Для запорных вентелей производители предоставляют данные о значении пропускной способности запорного вентиля в полностью открытом положении. Примем, что для полностью открытого запорного вентиля DN 100, значение пропускной способности равно $K_V = 185\,м^3/ч$.
Q = 50 # расход через трубопровод, м3/ч
D = 0.1 # внутренний диаметр трубопровода, м
defs = ppln_get_defs(D) # формируем словарь параметров со значениями по умолчанию
defs
{'D': 0.1, 'Delta': 0.0002, 'kvisc': 1e-06, 'deg': 90, 'RD': 1.5, 'qty': 1}
#корректируем значения по умолчанию некоторых параметров
defs['Delta'] = 0.3e-3; defs['RD'] = 2.
#Формируем список элементов трубопровода
enter = {'type': 'lrc', 'value': 0.5} #вход в трубопровод
pipe = {'type': 'pipe', 'qty': 50} # труба
elbow90 = {'type': 'elbow', 'qty': 10} # отвод 90 градусов
elbow45 = {'type': 'elbow', 'deg': 45, 'qty': 4} # отвод 45 градусов
stop_valve = {'type': 'Kv', 'value': 185, 'qty': 2} #запорный вентиль
exit = {'type': 'lrc', 'value': 1} #выход из трубопровода
elems =[enter, pipe, elbow90, elbow45, stop_valve, exit]
elems
[{'type': 'lrc', 'value': 0.5}, {'type': 'pipe', 'qty': 50}, {'type': 'elbow', 'qty': 10}, {'type': 'elbow', 'deg': 45, 'qty': 4}, {'type': 'Kv', 'value': 185, 'qty': 2}, {'type': 'lrc', 'value': 1}]
#Расчёт потерь даления, метры водяного столба
dHs = ppln_calc_dH(Q, elems, **defs)
dHs
[0.07972133771466502, 2.1466099864475305, 0.6467737875056502, 0.14983068967051927, 1.4897241971920099, 0.15944267542933005]
Для того чтобы узнать общие потери давления в трубопроводе необходимо сумировать потери давления в каждом элементе трубопровода
dH = sum(dHs)
dH
#потери давления в трубопроводе в метрах водяного столба
4.672102673959705
Инженерные расчёты на Python, С.В. Медведев, 2020
Использование Python и Jupyter Notebook для инженерных расчётов, С.В. Медведев, 2020