Моделирование управления давлением в трубопроводе в Engee
Моделирование управления давлением в трубопроводе
В статье рассматривается актуальная задача автоматического управления давлением в трубопроводах, важная для повышения надежности и эффективности промышленных систем. Описан подход к моделированию таких систем с использованием среды разработки Engee, которая позволяет создавать физико-математические модели, интегрировать PID-регуляторы и визуализировать процессы. Отмечены задачи прогнозирования превышения рабочих значений давления, динамики давления, объема запаса в системе и реагирования на аварийные ситуации и сезонные изменения. Модель управления построена как замкнутая система, включающая источник давления, регулирующий клапан, датчик давления, блоки утечек и резервуар. Управление осуществляется PID- или PI-регулятором, который корректирует клапан по ошибке между заданным и фактическим давлением. Среди элементов модели — насыщение сигнала, ограничение скорости изменения и антиинтегральная коррекция для предотвращения перерегулирования. Модель способна численно имитировать переходные процессы и возмущения, например, утечки.
Рассмотрена архитектура моделей: источник давления, регулирующий клапан, объем трубы, датчики и блоки утечки, смоделированные в Engee. Приведены алгоритмы настройки регулятора с параметрами Kp и Ki, обеспечивающие баланс между быстродействием и устойчивостью. Модель экспортирует данные в CSV, строит графики и позволяет исследовать сценарии аварийных режимов и изменений параметров окружающей среды.
Использование Engee позволяет инженерам создавать цифровые двойники систем, тестировать управление без рисков для оборудования, анализировать нештатные ситуации и автоматически переносить алгоритмы в аппаратную среду. Это ускоряет проектирование инновационных систем управления, повышая надежность и безопасность трубопроводного транспорта и промышленного оборудования. Статья базируется на материалах Engee Helpcenter и нормативных документах ГОСТ.
Таким образом, представлена эффективная методология моделирования и автоматизации управления давлением на базе Engee с возможностью гибкой настройки и расширения моделей для промышленных нужд, направленная на повышение надежности и цифровизации технологических систем.
Принцип работы модели
Трубопровод описывается блоками библиотеки физического моделирования, в частности, за его объём отвечает блок Объём.
Через Клапан 1 жидкость поступает из блока Источник в блок Объём. К нему, в свою очередь, присоединён Датчик давления, с которого сигнал поступает на систему управления, представленную сумматором, задатчиком и PID-регулятором.
Схема модели:

PID-регулятор посылает управляющий сигнал на Клапан 1, чтобы тот открылся или закрылся, обеспечивая регулирование давления.
Справа от блока Объём, по пути движения жидкости, находится блок Утечка, который представляет собой, как и Клапан 1 управляемый дроссель.
Блок Утечка создаёт некоторое "случайное" истечение жидкости из моделируемого трубопровода.
Жидкость, проходящая через этот блок по итогу поступает в Сброс, который описывается бесконечным резервуаром с заданным давлением.
Граничные условия
- В источнике давление всегда поддерживается 151,3 кПа.
- В резервуаре, характеризующем пространство, куда осуществляется сброс жидкости через утечку, давление всегда равно 50 кПа.
Начальные условия:
- Начальное давление в трубопроводе равно 100 кПа.
- Сигнал задатчика равен 100000, что в контексте регулирования означает 100 кПа.
Определение функции для загрузки и запуска модели:
function start_model_engee()
try
engee.close("liquid_pressure_regulator", force=true) # закрытие модели
catch err # в случае, если нет модели, которую нужно закрыть и engee.close() не выполняется, то будет выполнена её загрузка после catch
m = engee.load("$(@__DIR__)/liquid_pressure_regulator.engee") # загрузка модели
end;
try
engee.run(m) # запуск модели
catch err # в случае, если модель не загружена и engee.run() не выполняется, то будут выполнены две нижние строки после catch
m = engee.load("$(@__DIR__)/liquid_pressure_regulator.engee") # загрузка модели
engee.run(m) # запуск модели
end
end
Запуск симуляции
try
start_model_engee() # запуск симуляции с помощью специальной функции, реализованной выше
catch err
end;
Выделение из переменной simout данных о температуре участков и их запись в переменные:
result = simout;
res = collect(result)
Запись в переменные сигналов задатчика и датчика давления:
control_signal = collect(res[4])
pressure = collect(res[12])
Визуализация результатов моделирования
using Plots
plot(control_signal[:,1], control_signal[:,2], label="Задатчик", linewidth=3)
plot!(pressure[:,1], pressure[:,2], label="Датчик давления", linewidth=3)

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