Пример решения олимпиадных задач по ПАХТ
Задача 4
Водопровод снабжает водой три частных дома и одно производственное здание. Схема водопроводной сети с расположением потребителей показана на рисунке.

Вода в трубопровод поступает самотеком из водонапорной башни высотой . Башня заполняется водой из скважины до уровня 95% от высоты башни, затем насос отключается, минимальный уровень воды в башне 80% от высоты, при этом уровне башня начинает заполняться водой. Расстояние между всеми объектами (домами) одинаковое , глубина прокладки трубопровода , используется водопроводная ПНД труба диаметром 40×3мм, абсолютную шероховатость материала принять м. Суточное потребление воды частных потребителей , производственного здания 4 . (расход считать равномерным в течении суток). Температура воды в трубопроводе 5°С. В производственном помещении на высоте 2 м от уровня земли находится проточный водонагреватель. Необходимо определить минимальное и максимальное давление воды на входе в водонагреватель (величиной местных (локальных) гидравлических сопротивлений пренебречь). Ответ выразить в Па.
using Unitful
using PhysicalConstants.CODATA2018
g = StandardAccelerationOfGravitation #ускорение свободного падения
Исходные данные
d = (40-3*2) * 1u"mm" #внутренний диаметр трубы
Δ = 7 * 10^-6 * 1u"m" #абсолютная шероховатость
ε = Δ / d #относительная шероховатость
Vᵦ = 1u"m^3/d" #расход частных потребителей
Vₐ = 4u"m^3/d" #расход промышленного потребителя
l₀ = 50u"m" #растояние между объектами
hₘₐₓ = 9.5u"m" #максимальный уровень воды в башне
hₘᵢₙ = 8u"m" #минимальный кровень воды в башне
h₋ = 2u"m" #глубина залегания трубопровода
h₊ = 2u"m" #высота установки теплообменника
t = 5u"°C" #температура воды
S = π * d^2 /4 #площадь сечения трубопровода
Решение
Подключаем библиотеку CoolProp для определения свойств воды.
using CoolProp
ρ = PropsSI("D", "P", 1u"atm", "T", t, "water")
μ = PropsSI("V", "P", 1u"atm", "T", t, "water")
Создадим функцию для определения сопротивления.
В ламинарном режиме :
В диапазоне :
Шероховатые трубы:
function λ(Re, ε)
if Re < 2300
return 64 / Re
elseif Re < 10^5
return 0.316/Re^0.25
else
return (1 / (-2 * log10(ε/3.2 + (6.81/Re)^0.9))) ^ 2
end
end
Определяем расход на каждом из участков трубы:
V = Array{Any}(undef, 4) #массив с любым внутринним значением для каждлого участка трубы
V[1] = Vₐ + 3 * Vᵦ
V[2] = Vₐ + 2 * Vᵦ
V[3] = Vₐ + 1 * Vᵦ
V[4] = Vₐ
println("Расходы по участкам: ", V)
l = fill(l₀,4) #растояния между объектами одинаковое
l[1] = l[1] + h₋ #прибавляем глубину залегания первого участка
l[4] = l[4] + h₋ + h₊ #прибавляем глубину залегания и высоту до теплообменника для второго участка
println("Длины участков: ", l)
Среднюю скорость определяем по выражению
wₛ = @. V / S
wₛ .|> u"m/s" #скорость в метрах в секунду
Определяем критерий Рейнольдса по выражению :
Re = @. wₛ * d * ρ / μ
Re .|> upreferred #безразмерные значения критерия Рейнольдса
Потерянное давление определяем по выражению :
Δp = @. λ(Re,ε) * l / d * wₛ^2 * ρ / 2
Δp .|> u"Pa" #гидравлическое сопротивление на каждом участке в Па
∑Δp = sum(Δp) #гидравличсекое сопротивление сети до теплоообменника
pₘᵢₙ = (hₘᵢₙ - h₊) * ρ * g - ∑Δp |> u"Pa" #минимльное давление на входе в теплообменник
pₘₐₓ = (hₘₐₓ - h₊) * ρ * g - ∑Δp |> u"Pa" #максимальное давление на входе в теплообменник