4 Моделирование и расчет режимов работы

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

4.1 Моделирование теплогидравлики

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

Перед моделированием необходимо проверить и/или задать параметры для расчета. Во вкладке «Параметры расчета» в принципе можно оставить значения по умолчанию, можно максимальный шаг задать равным 0.01. Проверьте их, сравнив с рисунками (Рисунок 1, Рисунок 2, Рисунок 3):

Рисунок 1. Параметры расчета

Рисунок 2. Параметры проекта - синхронизация с реальным временем

Рисунок 3. Параметры проекта - настройка базы данных

Чтобы проверить работоспособность схемы и правильность выполнения всех предыдущих действий, давайте зададим (примерно) стационарные значения положения клапанов для расхода подпитки, равного 160 тонн в час. Для сохранения всех параметров схемы более или менее постоянными (стационарными) при таком расходе, следует выставить следующие положения клапанов: 46% для К2, 43% для К1В и 45% для К1А.

Далее запустите схему на расчет, измените значение расхода с 30 т/ч на 160 тонн в час с помощью кнопки и текстового редактора, и посмотрите на изменение значений расходов в каналах, давлений в узлах и изменение уровня в конденсаторе. Если вы выполняли все верно по данной методике, то внешний вид в момент расчета должен примерно соответствовать рисунку (Рисунок 4, на рисунке представлен мгновенный снимок около 150-ой секунды расчета).

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

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

Посмотрите в момент расчета на лист РУК02 – на нем, из-за того, что нижний насос выключен, весь расход делится на две части между двумя верхними насосами. Перепад давления на насосах составляет примерно 1,5 МПа.

Рисунок 4. Стационарный режим при расчете гидравлической модели

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

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

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

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

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

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

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

1) На схемном окне нажать кнопку «Параметры расчета».

2) В появившемся диалоговом окне настроек перейти на закладку «База данных».

3) В строке редактирования «Модуль базы данных проекта» необходимо ввести следующий текст: $(Root)\sdb.dll (sdb.dll – имя динамической библиотеки программного модуля базы данных).

4) В строке редактирования «Имя файла базы данных проекта» надо ввести hs.db (подключаем к этому проекту уже созданный файл базы данных сигналов из модели теплогидравлики).

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

Рисунок 5. Закладка настройки базы данных проекта

6) Закрыть диалоговое окно нажатием кнопки «Ок».

7) Выполнить сохранение текущего проекта, нажав кнопку сохранить на главном окне программы.

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

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

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

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

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

  • Категории
  • Группы сигналов
  • Сигналы и данные для групп

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Рисунок 9. Положения задвижек заданы в базе данных

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

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

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

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

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

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

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

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

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

  • Уставка для расхода через ТО БЭЖ: 30 (свойство элемента «Константа»).

  • Сравнивающее устройство: [1, -1].

  • Общий коэффициент усиления: 0.5 (первое приближение).

  • ПИД, коэффициент усиления: 2.

  • ПИД, интегратор: 0.07.

  • ПИД, инерционно-дифференцирующее звено: коэффициент 5, постоянная времени 3, начальные условия 0.

  • Сумматор: [1,1,1].

  • Реле с зоной нечувствительности: «-1», «-0.8», «0.8», «1», «-1», «1».

  • Интегратор с ограничением: «100/25», «0», «100», «45».

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

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

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

4.3 Совместный расчет схемы теплогидравлики и автоматики

Теперь, когда готов один алгоритм (для клапана «К1А»), можно для тестирования запустить совместный расчет двух проектов. Для этого необходимо чтобы в одном пакетном «pak»-файле были объединены два наших проекта. Сделайте это, при помощи кнопки «Добавить проект» на панели проектов, если пока что еще не сделали:

Рисунок 12. Пакет проектов (схема теплогидравлики и автоматики)

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

Перед запуском расчета требуется привести в соответствии с Рисунок 13 парметры расчета для схемы автоматики, а также сять галочку во вкладке «Синхронизация» в графе «Синхронизировать с реальным временем».

Рисунок 13. Парметры расчета для схемы автоматики

При запуске пакета проектов на расчет, в процессе расчета можно увидеть, что клапан «К1А» уже не находится в стационарном начальном положении «45%», а управляется схемой автоматики и движется в сторону открытия или закрытия.

Если вывести значение расхода и положение клапана на графики, то вы увидите примерно такую картину, как на рисунках (см. Рисунок 14 и Рисунок 15).

Рисунок 14. Положение клапана К1А

Схема регулирования имеет один большой недостаток - поскольку измеренный расход никогда не будет в точности равен заданному, то рассогласование всегда будет ненулевым и, поступая на вход в интегратор (И-ветка регулятора), будет увеличивать или уменьшать значение на выходе интегратора. Таким образом, через какие-то промежутки времени величина накопленная на интеграторе превысит зону нечувствительности в реле и клапан будет совершать (периодически) движения то в одну сторону то в другую, пытаясь найти оптимальное положение. Но он никогда его не найдёт.

Для корректировки этого недостатка можно использовать разные приёмы – либо периодически сбрасывать значение интегратора, либо ввести управляющее реле на входе в интегратор, т.е. осуществлять регулирование не «точным» образом, а с каким-то наперёд указанным допуском.

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

Таким образом, мы ознакомились с возможностями SimInTech создавать гидравлические схемы и схемы автоматики для совместной работы.

Рисунок 15. Расход через ТО БЭЖ

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

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

Давайте создадим схему алгоритма управления для клапанов К1В и К2 по аналогии с уже созданной схемой для клапана К1А. Для этого вернитесь на верхний уровень схемы автоматики, добавьте на нее еще две субструктуры SimInTech и переименуйте каждую из них в соответствии с Рисунок 16. Или можно скопировать существующую субмодель – так будет проще.

Рисунок 16. Верхний уровень схемы автоматики

Алгоритмы управления клапанами К1В и К2 в настоящем пособии будут похожи на алгоритм управления клапаном К1А – они будут основаны на применении ПИД-регулятора и рассогласовании значения уровня в конденсаторе и заданного значения уровня (1000 мм или 1 м). Поэтому, для ускорения набора каждой из схем, можно просто скопировать схему автоматики из первой субструктуры во вторую и в третью (либо скопировать саму субмодель).

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

Для этого необходимо выполнить следующие шаги:

1) В базе данных создать Задвижку с именем К1B (создайте сразу К2 для следующей схемы автоматики).

2) На схеме теплогидравлики в свойствах клапана К1B изменить значение свойства «Положение» таким образом, чтобы оно считывалось из базы данных (сигнал K1B_state).

3) На схеме автоматики изменить уставку на «Z_L» (заданный уровень) и сравнивать ее с сигналом от датчика KL.

4) Положение клапана записывать в базу данных для клапана К1B, т.е. надо изменить имя сигнала на выходе схемы автоматики.

5) Задать следующие параметры: коэффициенты усиления для усилителей равны «-1» (общий коэффициент) и «5» соответственно (П-ветка). Коэффициенты для интегратора: «0.5», для инерционно-дифференцирующего звена: «300» и постоянная времени «2».

6) Параметры зоны нечувствительности: «-0.2», «-0.2», «0.2», «0.2».

7) Начальное значение для интегратора с ограничением: «45».

8) Остальные элементы остаются со значениями, как и для клапана К1А.

Этими шагами мы создали схему автоматического управления клапаном К1B на базе схемы для клапана К1А. Далее нужно провести те же действия для создания схемы автоматики для клапана К2, только с несколько отличными от схемы К1B коэффициентами, а именно:

1) Задать следующие параметры: коэффициенты усиления для усилителей равны «-1» и «10» соответственно. Коэффициент для интегратора: «1», для инерционно-дифференцирующего звена: «500» и постоянная времени «11».

2) Параметры зоны нечувствительности: «-1», «-1», «1», «1».

3) Начальное значение для интегратора с ограничением: «46».

4) Остальные элементы остаются со значениями, как и для клапана К1B.

Таким образом, вы настроили автоматику клапана К1B более чувствительной к изменениям уровня в конденсаторе по сравнению с клапаном К2.

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

4.5 Проведение расчета некоторых динамических режимов

Чтобы излишне не загромождать данную методику, здесь приведены графики расчета двух режимов:

1) Постоянный расход подпитки 160 т/час,

2) Увеличение расхода с 30 до 160 т/час и снижение обратно – до 30 т/час. Во втором случае увеличение и снижение расхода проведено скачкообразно при помощи соответствующей кнопки на схеме теплогидравлики.

Графики первого режима приведены на рисунках (Рисунок 17, Рисунок 18, Рисунок 19).

Рисунок 17. Режим 1. График уровня в конденсаторе

Рисунок 18. Режим 1. График расхода через ТО БЭЖ

Рисунок 19. Режим 1. Положение клапанов

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

Давайте теперь рассмотрим режим 2 – со следующим изменением расхода подпитки: 30 т/час → 160 т/час → 30 т/час. Изменения были проведены в моменты времени 150 секунд и 350 секунд (примерно). На графике уровня видны характерные изломы (сначала в сторону увеличения из-за резкого увеличения входящего расхода, а потом в сторону уменьшения из-за резкого снижения входящего расхода).

Рисунок 20. Режим 2. График уровня в конденсаторе

Рисунок 21. Режим 2. График расхода через ТО БЭЖ

Рисунок 22. Режим 2. Положение клапанов

На графике уровня воды (Рисунок 20) видны небольшие изломы – в моменты времени ~150 с и ~350 с – именно в эти моменты происходило скачкообразное увеличение и уменьшение расхода подпитки. Но, поскольку в системе управления используется дифференциальное звено, которое практически мгновенно реагирует на изменение данного параметра, то клапаны в эти моменты времени соответственно отреагировали на изменение расхода и скачок скорости изменения уровня в баке.

Расход через ТО БЭЖ также на протяжении всего расчета остается примерно на заданном уровне около 30 кг/с.

Как видно из этих рисунков, созданная нами система управления поддерживает уровень в конденсаторе в заданных пределах, но при этом происходит перерегулирование и «дребезжание» клапана К1B, из-за чего уровень в конденсаторе не может выйти точно на заданное значение и колеблется около 1000 мм. Это происходит из-за несовершенства алгоритма управления и подобранных коэффициентов регуляторов. То есть системе управления нужна доработка.

Из-за скачков клапана происходит и резкое изменение расхода через ТО БЭЖ, и, как следствие, клапан К1А пытаеся также «подстроиться» для того чтобы через ТО БЭЖ обеспечить заданный расход в 30 кг/с.

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

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