Создание схемы автоматики клапана К1А

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

Рисунок 1. Подключение базы сигналов к проекту

Создайте новую схему автоматики: для этого выберите пункт меню «Файл → Новый проект → Схема автоматики». Для дальнейшей работы необходимо сохранить данную схему в файле с новым именем и в каталоге где создавалась модель гидравлики.

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

Подключение базы данных сигналов к схеме автоматики осуществляется следующим образом:

  1. На схемном окне нажать кнопку «Параметры проекта».
  2. В появившемся диалоговом окне настроек перейти на закладку «Настройки».
  3. В строке редактирования «Модуль базы данных проекта» необходимо ввести следующий текст: $(Root)\sdb.dll (sdb.dll – имя динамической библиотеки программного модуля базы данных).
  4. В строке редактирования «Имя базы данных проекта» надо ввести произвольное имя файла для сохранения базы данных. Например: signals_ktz.db (В случае, когда не прописывается полный путь к файлу, по умолчанию считается, что он расположен в том же каталоге, что и файл проекта).
  5. Закрыть диалоговое окно нажатием кнопки «Ок».
  6. Выполнить сохранение текущего проекта, нажав кнопку сохранить на главном окне программы.

После этих действий станет доступным пункт меню «Инструменты → База данных». Именно здесь и осуществляется работа по наполнению и редактированию базы данных сигналов – с помощью модуля «Редактор базы данных».

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

После выбора пункта меню появляется диалоговое окно редактора базы данных проекта.

Более подробно интерфейс базы сигналов рассмотрен в 10 учебных заданиях.

Напомним здесь концепцию, заложенную в базу сигналов SDB, а именно: окно редактора содержит три основные панели:

Панель «Категории» содержит список типов объектов, которые могут быть помещены в базу данных. Например, БУЗ – блок управления задвижкой.

Панель «Группы сигналов» содержит список объектов, соответствующих выбранному типу (категории), имеющийся в базе данных проекта. Например, 1L01AS1 – код конкретной задвижки, существующий в базе данных и математической модели объекта. Под объектом подразумевается группа сигналов, отнесенная к этому объекту.

Панель «Сигналы и данные для групп» содержит таблицу с сигналами, соответствующими конкретной группе сигналов, выбранной в панели Группы сигналов.

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

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

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

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

Двойной клик на элементе «Новая категория» открывает диалоговое окно редактирования категории (Ошибка! Источник ссылки не найден.). В данном диалоговом окне пользователь заполняет таблицу сигналов, которые соответствуют выбранной категории. Например, для задвижки это могут быть вещественное значение положения штока, двоичное значение сигнала «открыта» или «закрыта» и т. д.

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

В процессе создания гидравлической модели мы создали два датчика – один измеряет расход в канале через ТО БЭЖ, другой – уровень воды в конденсаторе. Давайте для наших учебных целей и для наглядного примера на основе показания одного из датчиков (расходомера на ТО БЭЖ) создадим учебный алгоритм управления клапаном К1А. Сигналы в базу данных заводите самостоятельно, основываясь на дальнейших рисунках.

Алгоритм построим на простейшей схеме – будем сравнивать показание датчика с заданным расходом, и в зависимости от рассогласования заданного и текущего расхода – алгоритм будет подавать сигналы на закрытие или открытие клапана. Чтобы обмениваться сигналами между гидравлической схемой и схемой автоматики, нам потребуется на схеме гидравлики записывать в базу данных значение расхода через ТО БЭЖ, на схеме автоматики – считывать его из базы данных, и, на основе алгоритма управления, вырабатывать сигналы на закрытие и/или открытие клапана. Исполнительный механизм будем моделировать простейшим интегратором с ограничением (от 0 до 100%).

Рисунок 3. Субструктура с алгоритмом автоматики

Для начала, давайте вернемся к окну схемы автоматики, разместим на нем первую субструктуру, которую следует подписать как «Управление и модель клапана К1А» (Рисунок 3) и разместить внутри субструктуры два элемента – элемент чтения из списка сигналов и элемент записи в список (Рисунок 4).

Теперь следует указать, какой именно сигнал мы читаем из базы данных и какой записываем. Зайдите в свойства элемента «Чтение из списка сигналов». Следует изменить свойство «Имена сигналов». Для этого воспользуйтесь кнопкой слева внизу диалогового окошка свойств (кнопка называется «Найти значение в базе»). В следующем окне надо выбрать категорию «Датчики», далее датчик расхода «G» и имя сигнала «XQ02» (создайте предварительно этот сигнал в БД!).

По нажатию на кнопку «Добавить», появится новая строка в этой табличке. Таким образом мы выбрали сигнал, который будет прочитываться из базы данных на каждом шаге расчета схемы. Обратите внимание, что имя сигнала состоит из названия объекта, затем символ подчеркивания и название сигнала в объекте – в нашем случае сигнал называется «G_XQ02».

Рисунок 4. Элементы чтения и записи в список сигналов

Для записи сигнала «Положение клапана К1А» в базу данных, нам сначала следует создать объект К1А в базе данных. Если вы еще не создали категорию «Задвижки», создайте её, и затем добавьте в базу данных один объект такого типа с названием «К1А» или сразу все (три) задвижки.

После этого в свойствах элемента «Запись в список сигналов» выберите сигнал «Положение» у объекта «К1А» (название сигнала – K1A_XQ01). Теперь схема автоматики должна иметь вид, представленный на рисунке (Рисунок 6).

Рисунок 5. Добавление сигнала расхода в схему автоматики

Рисунок 6. Запись и чтение из списка сигналов, заполненные

Что касается передачи сигналов в схему автоматики и из нее в базу данных – это все, но остался еще один момент - нам нужно связать значение положения клапана в базе данных и в объекте на гидравлической схеме. Перейдите в окно гидравлической схемы, подключите её также в базе сигналов если она еще не подключена, и зайдите в свойства клапана К1А. Там выберите свойство «Положение, %», нажмите кнопку внизу слева «Найти значение в базе данных» и в появившемся окне базы данных найдите сигнал «К1А_xq01».

Добавьте этот сигнал в таблицу «Выбранные данные» и нажмите кнопку «Ок». Теперь значение положения клапана для схемы TPP будет считываться из базы данных на каждом шаге синхронизации.

Давайте еще раз рассмотрим в целом, как работает база данных. Вообще говоря, база данных представляет собой просто массив сигналов (таблицу) в памяти SimInTech, в которой записан сплошной список сигналов. Условно этот список классифицируется на типы объектов и объекты со «своими» сигналами. Когда мы разместили на схеме TPP датчик расхода и уровня воды в конденсаторе, то в базе данных появилось два новых сигнала (две новые строки в общей таблице сигналов). Это произошло автоматически без нашего участия (данный нюанс может изменяться в зависимости от версии ПО) – мы просто разместили элементы на схеме TPP. Далее в другом проекте – в схеме автоматики, мы с помощью элемента чтения сигнала из списка «вытаскиваем» значение нужного нам сигнала (расход через ТО БЭЖ), и сейчас будем его использовать для сравнивающего устройства в схеме автоматики. На выходе из схемы автоматики мы формируем сигнал, который будет характеризовать положение клапана К1А, и значение этого сигнала мы записываем в базу данных (пока еще не в схему TPP, а просто в общую таблицу сигналов записываем значение положения клапана TPP). Далее уже на схеме TPP мы используем значение этого сигнала – положение клапана К1А – для соответствующего свойства клапана. Важно помнить, что для того чтобы такая схема работала, нужно чтобы оба проекта использовали общую базу данных сигналов (в нашем случае это файл signals_ktz.db).

Вернемся снова к схеме автоматики – нам нужно набрать упрощенную схему управления исполнительным механизмом клапана К1А (включая и сам механизм). Попробуйте самостоятельно набрать схему, как показано на рисунке:

Рисунок 7. Схема управления клапаном К1А, первая версия

Рассмотрим алгоритм действия данной схемы: сигнал с датчика расхода сравнивается с заданным значением расхода и разница (рассогласование) подается на усилитель с подобранным коэффициентом усиления (точнее ослабления, прикидочное значение = 0,5). Далее ослабленный сигнал рассогласования, поступает на ПИД-регулятор (также с подобранными коэффициентами) и сумма выходов ПИД-регулятора передается в релейный блок с зоной нечувствительности (величину зоны можно установить в +1, -1, зона возврата = 0,5). Если на выходе из релейного блока сигнал равен 0, то клапан находится без движения. Если после реле сигнал «-1», то как бы подается сигнал «Закрыть», если «+1», то – «Открыть». Интегратор с ограничением моделирует исполнительный механизм (двигатель) клапана.

Таким образом реализован простейший алгоритм, поддерживающий заданный расход через ТО БЭЖ. В реальности, конечно, схема может быть сложней, в т.ч. состоять из нескольких листов и использовать субструктуры. Для наших целей пока что это не нужно, а важно понять, что проект автоматики работает как еще один расчетный слой, параллельно проекту гидравлики TPP, и эти два проекта (расчетных слоя) могут обмениваться сигналами через базу данных.

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

Данные параметры подобраны таким образом, чтобы система автоматики клапана «К1А» поддерживала на стационарном уровне расход через ТО БЭЖ, т.е. на уровне «30», как это и происходит в нашем расчете гидравлической схемы с расходом подпитки «160». Подчеркнем, что сейчас в нашу задачу не входит полное создание схемы автоматики, нам нужно научиться создавать и понимать механизм параллельной (совместной) работы двух проектов через общую базу данных.

Интегратор с ограничением моделирует двигатель клапана, с быстродействием ~ 4% в секунду, или (что тоже самое) время полного открытия = 25 секунд.

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

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