Моделирование системы вентиляции в здании с системой терморегулирования¶
В данном примере продемонстрировано моделирование системы вентиляции в здании с системой терморегулирования.
Принцип работы модели¶
Модель системы вентиляции здания описывается блоками библиотек физического моделирования, такими как "Газ" и "Тепло".
Подсистемы Параметры системы и внешние условия и Система управления температурой состоят из направленных блоков базовой библиотеки.
Подсистема Вентиляционная установка состоит из блоков библиотеки "Газ", а также блоков базовой библиотеки.
Блоки Зона 1, Зона 2, Зона 3 и Зона 4 представляют собой объёмы воздуха в разных помещениях.
Охлаждённый воздух поступает в Зону 1 из Вентиляционной установки и распределяется в Зону 2 и 4, попадая затем в Зону 3, из которой выбрасывается в окружающую среду через Вытяжку или направляется обратно в Вентиляционную установку через Воздуховод.
Схема модели:
Регулирование температуры происходит в Зоне 1, датчик подаёт сигнал в Систему управления температурой, где вычисляется сигнал рассогласования и формируется управляющий сигнал. Сигнал управления поступает в подсистему Вентиляционная установка, где проходит через блок Табличная функция для вычисления необходимого массового расхода блока Вентилятор.
Подсистема "Параметры системы и внешние условия"¶
Подсистема "Система управления температурой"¶
Подсистема "Вентиляционная установка"¶
Подсистема "Теплообмен с внешней средой"¶
Определение функции для загрузки и запуска модели:¶
function start_model_engee()
try
engee.close("building_ventilation_control", force=true) # закрытие модели
catch err # в случае, если нет модели, которую нужно закрыть и engee.close() не выполняется, то будет выполнена её загрузка после catch
m = engee.load("$(@__DIR__)/building_ventilation_control.engee") # загрузка модели
end;
try
engee.run(m) # запуск модели
catch err # в случае, если модель не загружена и engee.run() не выполняется, то будут выполнены две нижние строки после catch
m = engee.load("$(@__DIR__)/building_ventilation_control.engee") # загрузка модели
engee.run(m) # запуск модели
end
end
Запуск симуляции¶
start_model_engee();
Выделение из переменной simout данных о температуре участков и их запись в переменные:
result = simout;
res = collect(result)
Запись сигналов с датчиков температуры в переменные:
T1 = collect(res[1])
T2 = collect(res[7])
T3 = collect(res[8])
T4 = collect(res[2])
T5 = collect(res[9])
T6 = collect(res[6])
door = collect(res[3])
recycling = collect(res[10]);
Визуализация результатов моделирования¶
График температур с зонах, внешняя температура и значение температуры, регулируемое пользователем:
using Plots
gr()
plot(T1[:,1], T1[:,2], label=L"T, C^o, Зона 1", linewidth=3)
plot!(T2[:,1], T2[:,2], label=L"T, C^o, Зона 2", linewidth=3)
plot!(T3[:,1], T3[:,2], label=L"T, C^o, Зона 3", linewidth=3)
plot!(T4[:,1], T4[:,2], label=L"T, C^o, Зона 4", linewidth=3)
plot!(T5[:,1] .- 273.15, T5[:,2] .- 273.15, label="Внешняя температура", linewidth=3)
plot!(T6[:,1], T6[:,2], label="Режимы пользователя", linewidth=3, legend=:right)
Факторы, оказывающие влияние на циркуляцию воздуха - открытие двери и принудительная рециркуляция:
plot(recycling[:,1], recycling[:,2] .* 2, linewidth=4, label="Рециркуляция, %")
plot!(door[:,1], door[:,2] ./ 10000, linewidth=2, label="Открытие двери, %")
Вывод:¶
В данном примере было продемонстрировано моделирование системы вентиляции в здании с системой автоматического управления температурой воздуха. В приведённом сценарии моделирования на систему оказывалось влияние посредством открытия двери (управляемое сужение) и рециркуляционного контура (воздуховод). Проанализировав результаты можно заметить, что открытие двери не имеет заметного влияния на зональное распределение температур, в то время как рециркуляция серьезно меняет картину этого распределения. Температурный режим, выставленный пользователем, корректно соблюдается для зоны 1, но не в остальных зонах, ввиду их удалённости от вентиляционной установки.