Сообщество Engee

Расчет трубопровода

Автор
avatar-nkapyrinnkapyrin
Notebook

Моделирование системы с частично заполненными трубами

Инженеры часто сталкиваются с задачами моделирования систем, где трубы заполнены жидкостью не полностью. Это актуально для систем водоснабжения, канализации, топливных магистралей и других гидравлических систем. В Engee для таких расчётов удобно использовать блок Частично заполненная труба (Partially Filled Pipe (IL)), который позволяет моделировать процессы заполнения и опорожнения труб и резервуаров.

Разберём, как работает этот блок, и рассмотрим две модели: простую и сложную (Y-образную конфигурацию).

Описание модели

Блок "Частично заполненная труба" представляет собой трубу, частично заполненную жидкостью. С его помощью можно моделировать сложные разветвленные системы, где важен уровень жидкости в каждом компоненте жидкостной системы, а не только в баках, цистернах и резервуарах.

Простая модель

Самая простая конфигурация включает один блок "Частично заполненная труба", подключённый к резервуару. Модель демонстрирует:

  • как изменяется уровень жидкости в трубе после опорожнения бака,

  • как влияет начальный уровень жидкости на динамику процесса.

Такую модель можно использовать для проверки параметров трубы (диаметра, длины, угла наклона) перед интеграцией в более сложную систему.

image.png

Запустим модель и посмотрим на динамику уровня жидкости в цистерне и в трубе:

In [ ]:
initial_tank_liquid_level = 1; # м
pReservoir = 0.101325; # МПа

engee.open("PartiallyFilledPipe.engee")
data = engee.run("PartiallyFilledPipe")

plot(
    plot(data["Цистерна"].time, data["Цистерна"].value, title="Уровень воды в цистерне", c=1),
    plot(data["Труба"].time, data["Труба"].value, title="Уровень воды в трубе", c=2),
    layout=(2,1), titlefont = font(11), lw=3, legend=false
)
Out[0]:

Мы видим, что исходный уровень (1 м) воды вытек из резервуара примерно за 12.5 секунд, после чего уровень воды в трубе, расположенной вертикально, быстро опустился до нуля.

Y-образная конфигурация

Более сложный вариант – система из трёх блоков "Частично заполненная труба", соединённых в виде буквы Y. Такая конфигурация позволяет моделировать:

  • разветвлённые трубопроводы,

  • системы с несколькими источниками или стоками жидкости,

  • сценарии, где жидкость перераспределяется между несколькими резервуарами.

image.png

Запустим эту модель и изучим динамику:

In [ ]:
tank1_inlet_height = 0.1; # м
tank2_inlet_height = 0.1; # м
tank1_initial_liquid_level = 1; # м
tank2_initial_liquid_level = 1; # м
pReservoir = 0.101325; # МПа

engee.open("PartiallyFilledPipeY.engee")
data = engee.run("PartiallyFilledPipeY")

Цистерна_1 = collect(data["Цистерна_1"]); Цистерна_2 = collect(data["Цистерна_2"]);
Труба_1 = collect(data["Труба_1"]); Труба_2 = collect(data["Труба_2"]); Труба_3 = collect(data["Труба_3"]);

plot(
    plot(Цистерна_1.time, [Цистерна_1.value Цистерна_2.value], title="Уровень воды в цистернах", c=[1 2]),
    plot(Труба_1.time, [Труба_1.value Труба_2.value], title="Уровень воды в трубах 1 и 2", c=[3 4]),
    plot(Труба_3.time, Труба_3.value, title="Уровень воды в выпускной трубе 3", c=5),
    layout=(3,1), titlefont = font(11), lw=3, legend=false
)
Out[0]:

Порт AL блока Частично заполненная труба отвечает за характер его работы: если AL <= 0, то система моделирует трубу как резервуар, жидкость из которого вытекает через порт B. Если же AL > 0, то используются уравнения для расчета заполненной трубы, жидкость в которую поступает из порта A. Соответственно, порт A всегда должен быть "выше", чем порт B.

Заключение

Блок Частично заполненная труба позволяет проверять простые сценарии, анализировать сложные разветвлённые системы и рассчитывать их пропускную способность и динамику.

Попробуйте поменять уровни в цистернах или параметры трубопроводов и изучить нелинейные эффекты, которые могут возникнуть при некоторых комбинациях количества жидкости и пропускной способности сети.