Разработка водонагревательной системы с рециркуляцией горячей воды
Введение
Одним из способов описания взаимосвязанных процессов является конечный автомат. Эта математическая абстракция используется в системах с определенным числом различных состояний и в зависимости от входного сигнала и правил перехода между ними формирует выходной сигнал. При этом автомат в определенный момент времени может находиться только в одном состоянии.
Цель работы
- Приобрести первичные навыки для моделирования систем управления с применением библиотеки Конечные автоматы в SimInTech
Задачи работы
- Изучить принцип построения систем на основе конечных автоматов в SimInTech
- Разработать модель системы управления температурой воды
- Проанализировать работу разработанной системы
- Построить график изменения температуры воды
Основные теоретические сведения
Одним из способов описания взаимосвязанных процессов является конечный автомат. Данная модель применяется в большом количестве сфер деятельности: от моделирования бизнес-процессов до описания алгоритмов работы технических устройств. Конечные автоматы позволяют автоматизировать многие производственные процессы. Также с их помощью возможно исследовать логику работы электронных вычислительных машин.
Конечный автомат – это объект, имеющий конечное число внутренних состояний и конечное число входов. Выходные сигналы конечного автомата однозначно определяются входными сигналами. Каждая переменная данной системы может принимать только конечное число различных состояний.
В качестве входных и выходных переменных при исследовании объектов выбираются наблюдаемые и/или измеряемые переменные, а промежуточные переменные в большинстве случаев неизвестны или их измерение невозможно. Однако для составления зависимости между входными и выходными переменными важен не характер их изменения, а их комбинированное действие. Это действие называется состоянием конечного автомата.
Состояние конечного автомата в любой момент времени является такой переменной, которая вместе с входным сигналом дает возможность определить выходной сигнал в данный тактовой момент и состояние в следующий тактовый момент. Конечный автомат в определенный момент времени может пребывать только в одном из конечного множества состояний. Изменение внутреннего состояния называется переходом между состояниями, однако осуществление перехода возможно по определенным правилам.
Пусть имеется панель для ввода чисел с индикатором, который светится красным, если введено нечетное число, и зеленым, если введено четное число. Требуется разработать конечный автомат для данной системы.
- Состояния: красный и зеленый
- Входной сигнал: число
- Выходной сигнал: цвет индикатора
| Текущее состояние | Переход в состояние | Условие перехода |
| Красный | Зеленый | Число четное |
| Зеленый | Красный | Число нечетное |

Объект исследования
В данной лабораторной работе рассматривается система управления температурой воды с применением рециркуляции. Система управления должна поддерживать заданное значение температуры. В качестве входного сигнала принимается разница между заданной температурой, Tзад, и текущей температурой воды в нагревателе, T.
Водонагревательная система с рециркуляцией применяется в частных домах, когда нагревательный прибор находится вдали от жилых помещений. Такое расположение водонагревателя приводит к закономерному увеличению протяженности труб с горячей водой. При включении горячей воды в водоразборном приборе требуется значительное время для слива холодной воды.
Для предотвращения повышенных экономических и ресурсных затрат используется рециркуляционный насос, который остается включенным некоторое время после отключения водонагревателя и обеспечивает циркуляцию воды по трубам. Таким образом обеспечивается постоянный подогрев воды в трубопроводной системе.
Выполнение лабораторной работы
- создать новый проект
- поместить блоки на схему, соединить их линиями связи и задать подписи
- задать свойства блоков
- построить график изменения температуры воды в зависимости от состояния нагревательной системы
- разработать модель системы управления с использованием конечных автоматов
- построить и произвести сравнение графиков фактической и заданной температуры воды
Создание нового проекта
- В главном окне SimInTech нажать кнопку Файл и выбрать пункт Новый проект
- В выпадающем меню выбрать пункт Схема модели общего вида (Рис. 2)

Рис. 2. Главное окно SimInTech c выделенным меню создания нового проекта.

- В главном окне SimInTech нажать кнопку Файл и выбрать пункт Сохранить проект как
- В появившемся окне выбрать или, при необходимости, создать папку, в которую будет сохранен данный проект
- В поле Имя файла указать желаемое имя проекта либо оставить имя проекта по умолчанию и нажать на кнопку Сохранить
Разработка модели водонагревательной системы
Необходимо разработать модель водонагревательной системы. Система состоит из нагревателя объемом 25 л и насоса.
- Если нагреватель и насос выключены, то система находится в режиме охлаждения, и вода охлаждается со скоростью 0.5 град/с
- Если нагреватель выключен, а насос включен, то система находится в режиме поддержания температуры, и вода охлаждается со скоростью 0.01 град/с
- Если нагреватель и насос включены, то система находится в режиме нагрева, и вода нагревается со скоростью 3 град/с
Насос включается вместе с нагревателем и продолжает работать после его выключения в течение 30 секунд. Нагреватель не может работать без насоса.
Добавление блоков на схему
- В главном окне SimInTech в палитре блоков выбрать вкладку
Субструктуры (Рис. 4)

Рис. 4. Главное окно SimInTech с выбранной вкладкой "Субструктуры" в палитре блоков. - Одинарным нажатием левой кнопкой мыши выбрать блок Субмодель
- Перевести курсор мыши на рабочую область проекта. В рабочей области окна проекта появится графическое изображение блока Субмодель, которое будет следовать за указателем мыши
- В рабочей области окна проекта выбрать место для установки блока и
установить блок одинарным нажатием левой кнопкой мыши (Рис. 5)

Рис. 5. Окно проекта с добавленным блоком "Субмодель".
После установки блока его можно переместить. Для перемещения блока внутри рабочей области окна проекта необходимо нажать на блок левой кнопкой мыши и, удерживая, переместить.
- Выделить на схеме левый блок Субмодель одинарным нажатием левой
кнопкой мыши по нему (Рис. 6)

Рис. 6. Окно проекта с выделенным блоком "Субмодель". - Открыть область подписи блока двойным нажатием левой кнопкой мыши на
прямоугольную область, расположенную рядом с выделенным блоком, и задать
подпись "Модель нагревательной системы" (Рис. 7)

Рис. 7. Окно проекта с заданной подписью блока. - Для перемещения поля подписи блока необходимо нажать левой кнопкой мыши на красный прямоугольник в верхней части этого поля и переместить его, не отпуская левую кнопку мыши

- 3 блока Константа из вкладки Источники – с помощью данных блоков будет задаваться скорость нагрева/охлаждения воды
- 2 блока Порт входа и 1 блок Порт выхода из вкладки Субструктуры – данные блоки необходимы для приема и передачи данных через порты блока Субмодель
- 2 блока Ключ-3 из вкладки Ключи – данные блоки будут отвечать за переключение режимов работы водонагревательной системы
- 1 блок Интегратор из вкладки Динамические – данный блок вычисляет текущую температуру воды в нагревателе


Перед тем как приступать к выполнению следующего пункта лабораторной работы, необходимо сохранить проект.
Соединение блоков на схеме
- Навести курсор мыши на выходной порт блока Константа (курсор мыши изменится на вертикальную стрелку) и нажать левую кнопку мыши
- Появившуюся линию соединить с нижним входным портом блока Ключ-3 и нажать левую кнопку мыши. После выполнения этих действий появится линия связи (Рис. 11)


Задание свойств блоков
Перед началом моделирования необходимо задать свойства блокам на схеме.
- Одинарным нажатием левой кнопки мыши выделить блок Константа с подписью "Режим охлаждения"
- Одинарным нажатием правой кнопкой мыши по выделенному блоку вызвать
контекстное меню блока и в нем выбрать пункт Свойства объекта
(Рис. 13)

Рис. 13. Окно проекта с контекстным меню блока с выделенным пунктом "Свойства объекта". - Откроется окно Свойства, в котором задаются свойства блока (Рис. 14)

Рис. 14. Окно "Свойства" блока "Константа" со свойствами по умолчанию. - В поле "Формула" задать значение свойства "Значение" равным
"-0.75". Данное значение равно скорости охлаждения воды в
нагревателе, когда нагреватель и насос выключены (Рис. 15)

Рис. 15. Окно "Свойства" блока "Константа" с заданными свойствами.
- Для блока Константа с подписью "Режим поддержания" задать значение "-0.01". Данное значение равно скорости охлаждения воды в нагревателе, когда нагреватель выключен, а насос включен
- Для блока Константа с подписью "Режим нагрева" задать значение "3". Данное значение равно скорости нагрева воды в нагревателе, когда нагреватель и насос включены

- Значение свойства "Начальные условия" равным "10". Это значение соответствует начальной температуре воды в нагревателе
- Значение свойства "Коэффициенты усиления" равным "1/25". Это значение соответствует объему воды в нагревателе
Перед тем как приступать к выполнению следующего пункта лабораторной работы, необходимо сохранить проект.
Изменение названий портов субмодели
- Двойным нажатием по блоку Порт входа открыть окно Порт субмодели (Рис. 17)

Рис. 17. Окно "Порт субмодели" блока "Порт входа". - В области "Имена портов субмодели" заменить "in" на
"pump". Данный блок принимает сигнал о состоянии насоса
(Рис. 18)

Рис. 18. Окно "Порт субмодели" блока "Порт входа" с измененным названием порта.
- Блок Порт входа с именем "Heater" принимает сигнал о состоянии нагревателя через порт блока Субмодель
- Блок Порт выхода с именем "T" осуществляет передачу данных о текущей температуре воды в нагревателе через порт блока Субмодель


Перед выполнением следующего пункта лабораторной работы необходимо сохранить проект.
Проверка работы модели водонагревательной системы
- "1" соответствует включенному состоянию
- "0" соответствует выключенному состоянию
- 2 блока Меандр из вкладки Источники – с помощью данных блоков будут формироваться сигналы состояния насоса и нагревателя
- 1 блок Временной график из вкладки Вывод данных – с помощью данного блока будут отображаться результаты моделирования
Необходимо изменить количество портов блока Временной график на схеме. Для этого требуется одинарным нажатием правой кнопкой мыши по блоку вызвать контекстное меню и выбрать пункт Свойства объекта. В открывшемся окне Свойства задать "Количество входных портов" равным "3".

Необходимо сформировать сигнал состояния нагревателя, который будет равен "1" в течение 20 секунд и равен "0" в течении 20 секунд.

Необходимо сформировать сигнал состояния насоса, который будет равен "1" в течение 30 секунд и равен "0" в течении 10 секунд.

Перед тем как приступать к выполнению следующего пункта лабораторной работы, необходимо сохранить проект.
Настройка параметров расчета

- "Минимальный шаг" – "0.01"
- "Максимальный шаг" – "0.01"
- "Конечное время расчета" – "100"

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

После завершения процесса моделирования необходимо открыть окно графика двойным нажатием левой кнопкой мыши по блоку Временной график, а затем настроить режим и параметры отображения результатов моделирования.
- Вызвать контекстное меню графика одинарным нажатием правой кнопкой мыши по окну графика
- Активировать пункт Многошкальный режим (Рис. 27)

Рис. 27. Контекстное меню окна "График" с активированным режимом "Многошкальный режим".
В результате в окно графика будет выведено три шкалы, что соответствует количеству параметров, выводимых на график.

- На вкладке Графики и оси для
верхнего графика:
- в поле "Название графика" задать название "Температура воды"
- в колонке "Ось Y" задать значение свойства "Название оси" равным "Температура, °C" (Рис. 29)

Рис. 29. Окно "Свойства графика" блока "Временной график" с выделенными свойствами, которые необходимо изменить. - Для второго графика:
- "Название графика" = "Состояние насоса"
- "Название оси" в колонке "Ось Y" = "On/Off"
- Для третьего графика:
- "Название графика" = "Состояние нагревателя"
- "Название оси" в колонке "Ось Y" = "On/Off"
- На вкладке Общие ввести в поле "Заголовок" название графика
"График изменения температуры воды в зависимости от состояния
нагревательной системы" (Рис. 30)

Рис. 30. Окно "Свойства графика" блока "Временной график". - Необходимо применить внесенные изменения. Для этого следует в области кнопок, расположенной в левой нижней части окна, нажать на кнопку Ok

На графике отображается изменение температуры воды в нагревателе в зависимости от состояния водонагревательной системы. Каждые 20 секунд, когда нагреватель включен, вода нагревается. Когда нагреватель выключается, насос остается включенным следующие 10 секунд, а температура воды остается неизменной. После выключения нагревателя и насоса вода в течение 10 секунд охлаждается.
Изменение температуры воды соответствует ожидаемому результату. Модель нагревательной системы работает корректно.
Перед тем как приступать к выполнению следующего пункта лабораторной работы, необходимо сохранить проект.
Разработка модели регулятора температуры воды
Необходимо разработать модель регулятора температуры воды, который должен поддерживать температуру в пределах Tзад ± 1°C, где Tзад – заданное значение температуры. На вход регулятора будет поступать текущее и заданное значения температуры, а на выходе формироваться сигнал состояния насоса и нагревателя.
- Выделить блок и вызвать контекстное меню блока
- В контекстном меню блока выбрать пункт Удалить (Рис. 32)
(удаление также возможно через выделение блока и использование клавиши
"Delete")

Рис. 32. Окно проекта с контекстным меню блока с выделенным пунктом "Удалить".
Аналогичным образом удалить все линии связи между блоками.
- 1 блок Константа из вкладки Источники – данный блок необходим для формирования заданной температуры воды, Тзад
- 1 блок Сравнивающее устройство из вкладки Операторы – данный блок необходим для наличия в системе отрицательной обратной связи
- 1 блок Карта состояний конечного автомата из вкладки Конечные автоматы – данный блок необходим для реализации алгоритма регулирования температуры воды с помощью конечных автоматов
- 1 блок Временной график из вкладки Вывод данных – данный блок необходим для отображения результатов моделирования


- 1 блок Порт входа из вкладки Субструктуры – данный блок необходим для получения данных через входной порт блока Карта состояний конечного автомата
- 1 блок В память из вкладки Субструктуры – данный блок необходим для передачи значения изменения температуры
- 3 блока Состояние автомата из вкладки Конечные автоматы – данные блоки необходимы для формирования алгоритма работы водонагревательной системы в активном состоянии
- 2 блока Селектор данных состояния из вкладки Конечные автоматы – данные блоки необходимы для считывания сигналов состояния нагревателя и насоса
- 2 блока Порт выхода из вкладки Субструктуры – данные блоки необходимы для передачи данных через выходной порт блока Карта состояний конечного автомата

- Блоку Состояние автомата "State 1" необходимо задать подпись "Режим охлаждения". Внутри данного блока будет сформирован алгоритм работы водонагревательной системы, когда нагреватель и насос выключены
- Блоку Состояние автомата "State 2" необходимо задать подпись "Режим нагрева". Внутри данного блока будет сформирован алгоритм работы водонагревательной системы, когда нагреватель и насос включены
- Блоку Состояние автомата "State 3" необходимо задать подпись "Режим поддержания". Внутри данного блока будет сформирован алгоритм работы водонагревательной системы, когда нагреватель выключен, и насос включены
- Верхнему блоку Порт выхода следует поменять название порта на "pump". Этот порт необходим для передачи состояния насоса из субмодели
- Нижнему блоку Порт выхода следует изменить название порта на "heater". Этот порт необходим для передачи состояния нагревателя из субмодели
- Блоку Порт входа следует изменить название порта на "delta_T". Этот порт входа необходим для передачи отклонения температуры от заданного значения

- Выделить блок, расположенный слева от блока Порт выхода "pump" и вызвать его контекстное меню
- Выбрать пункт Свойства и в открывшемся окне в поле
"Значение" поменять "Имя данных состояния" на "pump"
(Рис. 37). Это порт необходим для считывания данных о состоянии насоса из
состояний конечного автомата

Рис. 37. Окно "Свойства" блока "Селектор данных состояния" с измененным именем данных состояния.
- Двойным нажатием левой кнопки мыши открыть диалоговое окно верхнего блока В память
- Изменить имя переменной на "delta_T". Данная переменная обозначает флаг включенного состояния
- Одинарным нажатием на кнопку Изменить имя
переменной добавить переменную в область
"Переменные блока" и нажать на кнопку
Оk (Рис. 38)

Рис. 38. Окно блока "В память" с добавленной переменной "delta_T" и выделенной кнопкой "Изменить имя переменной".
Перед тем как приступать к выполнению следующего пункта лабораторной работы, необходимо сохранить проект.
Разработка алгоритма функционирования конечного автомата в состоянии "Режим охлаждения"
Необходимо разработать алгоритм функционирования конечного автомата в состоянии "Режим охлаждения". В этом состоянии нагреватель и насос находятся в выключенном состоянии.
- 1 блок Из памяти из вкладки Субструктуры – данный блок необходим для передачи флага включенного состояния
- 1 блок Релейное неоднозначное (гистерезис) из вкладки Нелинейные – данный блок необходим для осуществления перехода в следующее состояние в зависимости от разницы между текущей температурой воды T и заданной Tзад
- 2 блока Константа из вкладки Источники – данные блоки необходимы для формирования сигнала состояния насоса и нагревателя
- 2 блока Оператор НЕ из вкладки Логические – данные блоки необходимы для формирования сигнала выключенного состояния насоса и нагревателя
- 2 блока Выход данных состояния из вкладки Конечные автоматы – данные блоки необходимы для передачи сигналов состояния насоса и нагревателя

- Верхнему блоку следует задать значение "heater" – данный блок будет передавать сигнал о состоянии нагревателя в блок Селектор данных состояния
- Нижнему блоку следует задать значение "pump" – данный блок будет передавать сигнал о состоянии насоса в блок Селектор данных состояния
- Двойным нажатием левой кнопки мыши по блоку Из памяти вызвать его диалоговое окно
- В диалоговом окне в области "Источник" выделить переменную "delta_T"
- Нажать на кнопку Добавить, и переменная "delta_T"
переместится в область "Приемник" (Рис. 40)

Рис. 40. Окно блока "Из памяти" с добавленной переменной "delta_T" и выделенной кнопкой "Добавить". - Нажать на кнопку Оk для применения внесенных изменений

- В свойстве "Нижняя граница переключения" в столбце "Значение" изменить значение на "0"
- В свойстве "Нижнее значение функции" в столбце "Значение" изменить значение на "0"
Разработка алгоритма функционирования конечного автомата в состоянии "Режим охлаждения" завершена. Необходимо выйти из рабочей области субмодели.
Перед тем как приступать к выполнению следующего пункта лабораторной работы, следует выйти из рабочей области субмодели и сохранить проект.
Разработка алгоритма функционирования конечного автомата в состоянии "Режим нагрева"
Необходимо разработать алгоритм функционирования конечного автомата в состоянии "Режим нагрева". В этом состоянии нагреватель и насос находятся в включенном состоянии.
- 1 блок Из памяти из вкладки Субструктуры – данный блок необходим для передачи флага включенного состояния
- 1 блок Релейное неоднозначное (гистерезис) из вкладки Нелинейные – данный блок необходим для осуществления перехода в следующее состояние в зависимости от разницы между текущей температурой воды T и заданной Tзад.
- 1 блок Вход состояния из вкладки Конечные автоматы – данный блок необходим для формирования дополнительного входа в состояние "Нагрев"
- 2 блока Выход данных состояния из вкладки Конечные автоматы – данные блоки необходимы для передачи сигналов состояния насоса и нагревателя
- 2 блока Константа из вкладки Источники – данные блоки необходимы для формирования сигнала состояния насоса и нагревателя

- Изменить имена данных состояний у блоков Выход данных состояния на "heater" и "pump"
- Добавить переменную "delta_T" в блок Из памяти

- В свойстве "Верхняя граница переключения" в столбце "Значение" изменить значение на "0"
- В свойстве "Нижнее значение функции" в столбце "Значение" изменить значение на "1"
- В свойстве "Верхнее значение функции" в столбце "Значение" изменить значение на "0"
Перед тем как приступать к выполнению следующего пункта лабораторной работы, необходимо выйти из рабочей области субмодели и сохранить проект.
Разработка алгоритма функционирования конечного автомата в состоянии "Режим поддержания"
Необходимо разработать алгоритм функционирования конечного автомата в состоянии "Режим поддержания". В этом состоянии нагреватель находится в выключенном состоянии, а насос в включенном состоянии в течение 30 секунд.
- 1 блок Выдержка состояния из вкладки Конечные автоматы –данный блок необходим для установки времени работы насоса после отключения нагревателя
- 1 блок Из памяти из вкладки Субструктуры – данный блок необходим для передачи флага включенного состояния
- 1 блок Релейное неоднозначное (гистерезис) из вкладки Нелинейные – данный блок необходим для осуществления перехода в следующее состояние в зависимости от разницы между текущей температурой воды T и заданной Tзад
- 1 блок Выход состояния из вкладки Конечные автоматы – данный блок необходим для формирования дополнительного порта выхода из состояния
- 2 блока Константа из вкладки Источники – данные блоки необходимы для формирования сигнала состояния насоса и нагревателя
- 1 блок Оператор НЕ из вкладки Логические – данный блок необходим для формирования сигнала выключенного состояния нагревателя
- 2 блока Выход данных состояния из вкладки Конечные автоматы – данные блоки необходимы для передачи сигналов состояния насоса и нагревателя

Необходимо задать время выдержки состояния равным 30 секундам, чтобы после отключения нагревателя насос оставался включенным следующие 30 секунд. Для блока Выдержка состояния требуется задать значение свойства "Время до перехода, сек" равным "30".
- Изменить имена данных состояний у блоков Выход данных состояния на "heater" и "pump"
- Добавить переменную "delta_T" в блок Из памяти

- В свойстве "Нижняя граница переключения" в столбце "Значение" изменить значение на "0"
- В свойстве "Нижнее значение функции" в столбце "Значение" изменить значение на "0"
Разработка алгоритма функционирования конечного автомата в состоянии "Режим поддержания" завершена. Необходимо выйти из рабочей области субмодели.
Перед тем как приступать к выполнению следующего пункта лабораторной работы, необходимо выйти из рабочей области субмодели и сохранить проект.
Соединение блоков на схеме
После добавления дополнительных блоков Вход состояния и Выход состояния для блоков с подписями "Режим нагрева" и "Режим поддержания" количество входных и выходных портов у данных состояний изменилось.
Необходимо соединить блоки Состояние автомата линиями связи состояния. Данные линии обеспечивают переход между состояниями конечного автомата. Для соединения блоков линиями связи состояния необходимо воспользоваться тем же порядком действий, что используется при соединении блоков обычными линиями связи.

Разработка регулятора температуры воды с помощью конечных автоматов завершена. Необходимо выйти из рабочей области блока Карта состояний конечного автомата.

Запуск моделирования и построение графиков
Необходимо провести моделирование работы системы регулирования температуры воды.
Перед началом моделирования требуется задать значение в блоке Константа с подписью "Заданная температура" равным "35". Система регулирования температуры воды должна поддерживать температуру в пределах Tзад ± 1°C.
Также требуется изменить параметр "Конечное время расчёта" в Параметры расчёта на значение "1000".
Следует запустить проект на расчет. После окончания процесса моделирования открыть график изменения температуры.
- Открыть окно Свойства графика
- На вкладке Графики и оси
задать следующие значения:
- для первого графика "Название графика" = "Заданная температура"
- для второго "Название графика" = "Текущая температура"
- "Название оси "в колонке "Ось Y" = "Температура, °C"
- На вкладке Общие ввести в поле "Заголовок" название графика "Сравнительный график изменения температуры воды и заданной температуры".

На полученном при моделировании графике видно, что система регулирования поддерживает заданное значение температуры в диапазоне Tзад ± 1°C.
Разработанная система регулирования температуры воды в нагревателе с помощью конечных автоматов выполняет поставленную перед ней задачу.
Перед завершением выполнения лабораторной работы необходимо сохранить проект.
Заключение
В данной лабораторной работе был изучен принцип работы библиотеки Конечные автоматы, разработаны модели нагревательной системы и регулятора температуры, а также проведено моделирование работы системы регулирования температуры воды. Результаты моделирования подтвердили работоспособность данной системы.