Создание простого алгоритма управления

Постановка задачи для создания алгоритмов

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

Выполняя шестое учебное упражнение, мы смоделировали блок управления оборудованием. В данном учебном упражнении мы составим два алгоритма управления с использованием созданного блока. В данном учебном задании мы не делаем различия между работой клапанов и задвижек.

Откройте созданный на предыдущем занятии файл проекта Схема автоматики 2.prt.

Добавьте на схему два новых блока Субмодель из закладки «Субструктуры». Создайте подписи под блоками «Алгоритм управления задвижкой Z1» и «Алгоритм управления задвижкой Z2», с тем чтобы внешний вид схемы соответствовал рисунку, приведенному ниже (Рисунок 1).

Рисунок 1. Схема модели управления

Данные алгоритмы будут управлять двумя клапанами в модели теплогидравлики, созданной при выполнении учебного упражнения 3.

Алгоритм управления первой задвижкой

Войдите в субмодель «Алгоритм управления задвижкой Z1» и поместите на схему блок Чтение сигналов из группы Данные (Рисунок 2). Данный блок позволяет получать сигналы из базы данных аналогично блоку Чтение из списка сигналов.

Рисунок 2. Блок «Чтение сигналов»

Поместите на схему блок выход Выход алгоритма (Рисунок 2). Данный блок позволяет не только записывать в базу данных значение ранее занесенных сигналов, но также и создавать новые сигналы.

Рисунок 3. Блок «Выход алгоритма»

Схема должна выглядеть, как представлено следующем рисунке Рисунок 4.

Рисунок 4. Схема с алгоритма с добавленными блоками

Редактирование блоков «Чтение сигналов» и «Выход алгоритма»

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

Выполните двойной клик на блоке Чтение сигналов. Появится диалоговое окно настройки чтения/записи, изображенное на рисунке ниже (Рисунок 5).

Рисунок 5. Окно редактирования блока чтения сигналов

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

Для добавления строк необходимо нажать кнопку Добавить строку.

Для добавления пустых строк в таблицу необходимо сначала добавить строку, затем удалит текст из столбца ID.

Для заполнения строки необходимо выделить нужную строку и нажать кнопку Заполнить выделенное из базы.

В алгоритме для управления первой задвижкой мы будем использовать сигнал «Давление в промежуточном узле». Для получения этого сигнала выполните следующие действия:

  1. Выделите первую строку.
  2. Нажмите кнопку Заполнить выделенное из базы.
  3. В появившемся окне Редактор базы данных выберите последовательно: Категории – Датчики; группа сигналов – RT238; сигналы и данные для групп – Р (см. Рисунок 6).
  4. Нажмите кнопку Добавить в панели «Выбранные данные» (см. Рисунок 6).

    Рисунок 6. Окно редактора базы данных

  5. Закройте редактор базы данных нажав на кнопку Ok.
  6. Выполните настройки внешнего вида с помощью диалогового окна «Редактор чтения\записи сигналов» как показано на следующем рисунке (cм. Рисунок 7).

    Рисунок 7. Настройка блока чтения сигнала

  7. Закройте окно «Редактор чтения\записи сигналов» нажатием кнопки Ok.

Выполните настройку блока Выход алгоритма, выбрав из базы данных сигналы управления первой задвижкой: Команда Открыть и Команда Закрыть. В столбце ID введите B1 для строки Команда Открыть и B2 для строки Команда Закрыть. В поле Имя алгоритма введите строку al01 (Рисунок 8).

Рисунок 8. Настройка блока «Выход алгоритма»

Если все настройки выполнены правильно, то схемное окно блока управления первой задвижкой должно содержать две таблицы, как представлено на рисунке (Рисунок 9):

Рисунок 9. Внешний вид схемы после настройки блоков «Чтение сигналов» и «Выход алгоритма»

Структурная схема управления первой задвижкой

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

Наш простейший алгоритм осуществляет сравнение сигнала «Давление в узле» с уставной заданной константой. В случае, если давление превосходит уставу, формируется команда открыть задвижку, если давление ниже, формируется команда закрыть задвижку. Структурная схема данного алгоритма, выполненная из стандартных блоков, представлена на рисунке ниже (см. Рисунок 10). Попробуйте самостоятельно набрать схему приведенного алгоритма.

Рисунок 10. Внешний вид схемы после настройки блоков «Чтение сигналов» и «Выход алгоритма»

Проверка работы алгоритма управления первой задвижкой

Для проверки работы алгоритма запустим созданную схему на расчет. Схема алгоритма управления примет вид, представленный на рисунке ниже (Рисунок 11):

Рисунок 11. Вид схемы алгоритма во время моделирования

Во время расчета красным (фиолетовым) цветом подсвечиваются линии, значение сигнала в которых больше нуля. Поскольку расчет производится без подключения теплогидравлической модели, значение сигнала Давление в узле в базе данных равно нулю. Сравнивающее устройство, таким образом, на выходе имеет значение –127000, и сравнивающие блоки формируют значение сигнала «1» (логическая Истина) для сигнала Команда Открыть.

Перейдите в блок управления оборудованием и выполните двойной клик по линии связи между блоками Команда Открыть и БУЗ (см. Рисунок 12, такая линия связи имеет внутреннее наименование в SimInTech – «MBTYWire : Математическая связь»). В появившемся окне «Просмотр значений на линии связи» отражается список значений сигнала «Команда Открыть» для всех задвижек, занесенных в базу данных. Поскольку управление осуществляется только первой задвижкой, то и значение равное «1» имеет только первый элемент списка (см. Рисунок 12).

Рисунок 12. Вид схемы субмодели «Управление оборудованием» во время моделирования

Осуществите двойной клик на графике, в который передается положение задвижек из блока БУЗ. Созданная модель блока управления и двигателя задвижки осуществляет отработку сигнала Команда Открыть для первой задвижки и производит изменение положения задвижки с постоянной скоростью. При достижении положения «100» (полностью открыта) положение не изменяется; вторая задвижка не двигается и остаётся в положении «0» (полностью закрыта, Рисунок 13):

Рисунок 13. График изменения положения задвижки Z1 и Z2

Алгоритм управления второй задвижкой

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

Последовательность изменения будет задаваться блоком Кусочно линейная (зависимость) из закладки Источники (Рисунок 14):

Рисунок 14. Блок «Кусочно-линейная» (зависимость) на закладке «Источники»

Алгоритм управления осуществляет сравнение текущего положения задвижки с заданным положением, полученным с помощью блока Кусочно-линейная из закладки Источники. В случае расхождения подается команда на открытие или закрытие задвижки.

Для снятия непрерывных включений и выключений задвижки используется релейное звено с зоной нечувствительности – блок Релейное с зоной нечувствительности из закладки Нелинейные. Этот блок позволяет не посылать команду в том случае, когда отклонение положения находится в пределах заданной точности.

Рисунок 15. Блок «Релейное с зоной нечувствительности»

Схема алгоритма управления второй задвижкой приведена на следующем рисунке (Рисунок 16). В схеме данного алгоритма используются такие же блоки Чтение сигналов и Выход алгоритма, какие мы использовали в алгоритме управления первой задвижкой.

Рисунок 16. Схема управления второй задвижкой

Войдите в субмодель Алгоритм управления задвижкой Z2 и соберите схему, как показано на рисунке (Рисунок 16). Для блока Чтение сигналов задайте параметры, как показано на следующем рисунке (Рисунок 17):

Рисунок 17. Параметры блока чтение сигналов

Для блока Выход алгоритма задайте параметры, как показано на следующем рисунке (Рисунок 18).

Рисунок 18. Параметры блока выход алгоритма

Для блока Релейное с зоной нечувствительности задайте параметры, как на рисунке (Рисунок 19).

Рисунок 19. Параметры блока релейное с зоной нечувствительности

Работает данное звено следующий образом: выход блока y(t) либо принимает одно из трех значений Y1, 0, Y2 либо не изменяется: y(t) = y(t – Δt), где y(t – Δt) – значение выхода на предыдущем шаге интегрирования (на предыдущем шаге численного расчета).

y(t) = Y1, если x(t) < a1 – реле переключается на нижнее значение при уменьшении входного воздействия ниже нижней границы переключения.

y(t) = Y2, если x(t) > b1 – реле переключается на верхнее значение при увеличении входного воздействия выше верхней границы переключения.

y(t) = 0, если a < x(t) < b – реле находится в нулевом положении если, значение входа попадает в зону нечувствительности.

y(t) = y(t-Δt), если a1 ≤ x (t) ≤ a или b ≤ x (t) ≤ b2 – значение реле не изменяется, входное воздействие не пересекает зону переключения.

Заданные параметры блока (Рисунок 19) позволяют регулировать, или управлять положением задвижки с точностью ±0.01 от заданного значения.

Для задатчика положения второй задвижки используется кусочно-линейная зависимость от времени. Блок Кусочно линейная позволяет задать массив значений функции в различные моменты времени. Между заданными точками происходит линейное изменение значения выхода блока.

Зададим слудующий алгоритм для блока «Кусочно линейная»:

Для реализации этого алгоритма задайте параметры блока Кусочно линейная как показано на рисунке (Рисунок 20).

Рисунок 20. Параметры блока «Кусочно-линейная»

Проверка работы модели

Для детальной проверки работы алгоритма можно замедлить выполнение процесса моделирования. Для этого нажмите кнопку «Параметры расчета» на схемном окне (Рисунок 21)

Рисунок 21. Кнопка вызова параметров расчета

В диалоговом окне Свойства решателя перейдите на закладку Синхронизация и установите галочку Синхронизировать с реальным временем. Задайте коэффициент ускорения 1 (Рисунок 22).

Рисунок 22. Настройка скорости расчета в два раза медленнее реального времени

Перейдите не закладку Параметры расчёта и установите конечное время расчета 500 секунд (Рисунок 23).

Рисунок 23. Настройка конечного времени расчета

Запустите созданную схему на расчет.

Остановите расчет через 5 – 10 секунд после начала, нажав кнопку Пауза в главном окне программы.

Перейдите в субмодель Управление оборудованием и осуществите двойной клик по лини связи между блоками Команда Открыть и БУЗ (Рисунок 12). В появившемся окне Просмотр значений на линии связи отражается список значений сигнала Команда Открыть для всех задвижек, занесенных в базу данных. Поскольку мы добавили алгоритм управления второй задвижкой в начальный момент времени, значение, равное «1», имеют два первых элемента списка (Рисунок 24).

Рисунок 24. Вид схемы субмодели «Управление оборудованием» во время моделирования

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

Рисунок 25. Значение сигналов в базе данных

При создании алгоритма с использованием блока Выход алгоритма происходит автоматическое добавление в базу данных новых алгоритмов, с тем чтобы при разработке системы управления можно было использовать выходы алгоритмов в качестве входных воздействий в других частях модели системы управления. В нашем случае в базе данных появилась новая категория Алгоритмы и добавилось два алгоритма al01 и al02, сигналы которых соответствуют значениям рассчитанным в математической модели (см. Рисунок 26).

Рисунок 26. Новые сигналы в базе данных

Продолжите расчет модели (нажатием на кнопку «Пуск» главной панели управления). Перейдите в субмодель БУЗ, осуществите двойной щелчок по графику положения задвижек и убедитесь, что график примерно соответствует изображенному на рисунке ниже (Рисунок 27).

Рисунок 27. Положение задвижек при автономном моделировании схемы автоматики 2

Первая задвижка открывается полностью. Вторая задвижка изменяет свое положение согласно кучосно-линейной зависимости, установленной в алгоритме управления. Поскольку в алгоритме управления второй задвижкой присутствует блок Релейное с зоной нечувствительности изменение положения происходит «ступеньками».