Разработка систем управления по объему и по уровню жидкости в баке с использованием языка программирования SimInTech

Лабораторная работа №2.

Построение модели с использованием языка программирования SimInTech

Цель работы:

  • Ознакомиться с возможностями SimInTech на основе модели управления наполнением и опорожнением бака с жидкостью.

Задачи работы:

  • Разработать модель процесса наполнения и опорожнения бака произвольной формы.
  • Разработать комплексную модель работы процесса наполнения и опорожнения жидкости в баке и работы простейшего возвратного клапана.
  • Разработать алгоритм наполнения бака до заданного уровня.
  • Исследовать работу модели системы.

Описание модели управления наполнением и опорожнением бака

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

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

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

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

Для создания нового проекта необходимо выполнить следующие действия:
  1. В главном окне SimInTech нажать левой кнопкой мыши на кнопку «Файл» и выбрать пункт «Новый проект».
  2. В выпадающем меню выбрать пункт «Схема модели общего вида».
Откроется новое окно проекта с рабочей областью. Разместить в окне проекта:
  • 2 блока «Кнопка» из вкладки «Ключи» - данные блоки позволяют включать/отключать клапан наполнения и клапан опорожнения.
  • 1 блок «Усилитель» из вкладки «Операторы» - данный блок позволяет задать интенсивность входного потока.
  • 1 блок «Язык программирования» из вкладки «Динамические» - данный блок моделирует работу бака.
  • 1 блок «Временной график» из вкладки «Вывод данных» - данный блок выводит значения результатов моделирования в виде графика.

Сохранить проект под именем «tank_1.prt».

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

Рисунок 1. Рабочая область проекта с выделенной кнопкой «Скрипт».

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

Рисунок 2. Окно «Скрипт страницы» с инициализацией параметров бака и с выделенной кнопкой «Закрыть и применить».

Задав параметры для моделируемого бака, необходимо разработать математическую модель наполнения и опорожнения жидкости в баке, с помощью блока «Язык программирования». Для этого необходимо двойным нажатием левой кнопкой мыши по блоку «Язык программирования» открыть текстовый редактор и записать код согласно рисунку (Рисунок 3). Подтвердить изменение и закрыть окно «Блок «Язык программирования»».

Рисунок 3. Окно редактора блока «Язык программирования».

После закрытия окна текстового редактора блока «Язык программирования» вид блока в окне проекта изменится: увеличится количество портов входа и выхода и изменятся подписи к портам согласно заданным в начале скрипта переменным. Поскольку подписи портов перекрываются, необходимо изменить размеры блока. Для изменения размера блока необходимо одинарным нажатием левой кнопкой мыши выбрать блок и навести курсор мыши на край блока. Курсор мыши изменится на курсор «Изменение размера по диагонали» согласно рисунку (Рисунок 4).

Рисунок 4. Рабочая область проекта с выделенным блоком «Язык программирования».

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

Рисунок 5. Рабочая область проекта с измененными параметрами блока «Язык программирования».

Вывод значения уровня и объема жидкости в баке будет осуществляться блоком «Временной график», для отображения данных двух параметров на одном графике необходимо увеличить количество входных портов блока «Временной график». Для этого необходимо открыть окно «Свойства» блока «Временной график» и в поле «Значение» задать значение свойства «Количество входных портов» равным «3» (Рисунок 6).

Рисунок 6. Окно «Свойства» блока «Временной график».

Соединить блоки линиями связи и задать им размер и подписи согласно рисунку (Рисунок 7).

Рисунок 7. Рабочая область проекта с моделью процесса наполнения и опорожнения жидкости в баке.

После того, как была создана модель процесса наполнения и опорожнения жидкости в баке, необходимо задать интенсивность наполнения жидкостью бака равным 0.25 кубометров в секунду, для этого необходимо открыть окно «Свойства» блока «Усилитель» с подписью «Входной поток (м3/с)», в поле «Значение» задать значение свойства «Коэффициент усиления» равным «0.25» (Рисунок 8).

Рисунок 8. Окно «Свойства» блока «Усилитель».

Прим.: подпись над блоком «Усилитель» с подписью «Входной поток (м3/с)» после изменения параметра «Коэффициент усиления» изменилась на «0.25», что подтверждает изменение параметра блока на схеме (Рисунок 9).

Рисунок 9. Рабочая область проекта с измененным свойством выделенного блока «Усилитель».

По завершению настройки параметров блоков, необходимо проанализировать корректность работы созданной модели бака. Для моделирования процесса наполнения бака необходимо включить клапан наполнения и отключить клапан опорожнения. Для изменения состояния кнопок необходимо:
  1. Нажать на кнопку «Инициализация», выделенную на рисунке на панели кнопок (Рисунок 10) для запуска инициализации проекта.
    Прим.: при инициализации проекта интерпретатором SimInTech производится считывание заданных значений свойств блоков, проверка правильности задания свойств в блоках, соединения блоков между собой и другое. После инициализации при отсутствии ошибок становится доступна кнопка запуска моделирования.
  2. Изменить состояние блока «Кнопка» с подписью «Включение клапана опорожнения» из состояния «1» в состояние «0» согласно рисунку (Рисунок 10).
  3. Остановить моделирование нажатием на кнопку «Стоп».

Рисунок 10. Рабочая область проекта со схемой с переключенным состоянием блока «Кнопка» и с выделенной кнопкой «Инициализация».

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

Рисунок 11. Окно «Параметры проекта».

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

Рисунок 12. Окно «Свойства графика».

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

На этом этапе настройка проекта завершена, необходимо запустить проект на моделирование. По завершению процесса моделирования открыть окно «График» для отображения изменения уровня и объема жидкости в баке после моделирования (Рисунок 13).

Рисунок 13. Окно блока «Временной график» с увеличением объема и уровня жидкости в баке.

Моделирование процесса наполнения бака выполнено без ошибок, далее необходимо проверить моделирование процесса опорожнения бака. Для моделирования процесса опорожнения бака необходимо включить клапан опорожнения и отключить клапан наполнения, для этого необходимо нажать на кнопку «Инициализация», после чего изменить состояние блока «Кнопка» с подписью «Включение клапана опорожнения» из состояния «0» в состояние «1», а блока «Кнопка» с подписью «Включение клапана наполнения» из состояния «1» в состояние «0».

Установив режим опорожнения бака, запустить проект на моделирование. При повторном запуске проекта на моделирование начальный уровень в баке будет установлен на уровне 2 метра, а объем жидкости при этом будет равен 4 кубометра, поскольку в скрипте проекта указан начальный уровень в баке параметром «h_init» (Рисунок 2). Исходя из вышесказанного, необходимо изменить отображение результатов моделирования, выделив интересующий диапазон значений по оси Y до 4 метров, для этого необходимо открыть окно «График» блока «Временной график», в открывшемся окне «График» открыть свойства графика и задать значения согласно рисунку (Рисунок 14).

Рисунок 14. Окно «Свойства графика».

Запустить проект на моделирование. По завершению процесса моделирования, открыть окно «График» для анализа полученных результатов. При анализе полученных графиков видно, что изменившийся уровень жидкости в баке после опорожнения, на графике это синяя линия с подписью «Уровень жидкости в баке», не равен нулю (Рисунок 15), этот уровень задан в скрипте проекта (Рисунок 2) параметром «h_out», который отвечает за высоту конечного уровня жидкости в баке, и равен «1», а скорость течения потока определяется параметром «s_out», который отвечает за сечение выходного потока, и равен «0.05».

Рисунок 15. Окно блока «Временной график» с уменьшением объема и уровня жидкости в баке.

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

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

По завершению разработки модели бака необходимо создать новый проект с алгоритмом управления наполнением и опорожнением бака. Для создания нового проекта необходимо выполнить следующие действия:
  1. В главном окне SimInTech нажать левой кнопкой мыши на кнопку «Файл» и выбрать пункт «Новый проект».
  2. В выпадающем меню выбрать пункт «Схема модели общего вида».
Поместить в рабочую область проекта:
  • 1 блок «Константа» из вкладки «Источники» - данный блок позволяет задать значение целевого уровня жидкости в баке.
  • 1 блок «Сравнивающее устройство», блок «Знак» и блок «Усилитель» из вкладки «Операторы» - данные блоки позволяют сформировать алгоритмы управления.
  • 2 блока «Релейное с зоной нечувствительности» из вкладки «Нелинейные» - данные блоки позволяют задать зоны нечувствительности управляющего сигнала.
  • 2 блока «Импульс по фронту» из вкладки «Задержки и импульсы» - данный блок позволяет смоделировать импульс, для предотвращения ошибок в работе триггера.
  • 2 блока «Оператор НЕ» и 2 блока «Оператор И» из вкладки «Логические» - данные блоки позволяют сформировать алгоритм управления.
  • 2 блока «Кнопка» из вкладки «Ключи» - данные блоки позволяют включить/отключить режим вывода неисправности в работе клапана.
  • 2 блока «RS-триггер с приоритетом по сбросу» из вкладки «Триггеры» - данные блоки ограничивают работу двух клапанов одновременно на наполнение и опорожнение.
  • 1 блок «Временной график» из вкладки «Вывод данных» - данный блок позволяет вывести значения результатов моделирования в виде графика.
  • 2 блока «Субмодель» из вкладки «Субструктуры» - данные блоки позволяют сгруппировать блоки по функциональному назначению.
Разместив перечисленные блоки в рабочей области созданного проекта, добавить подписи к блокам «Субмодель» согласно рисунку (Рисунок 16).

Рисунок 16. Рабочая область проекта с размещенными блоками.

Для создания модели бака необходимо открыть блок «Субмодель» с подписью «Модель бака» и поместить в рабочую область:
  • 1 блок «Порт входа» и 1 блок «Порт выхода» из вкладки «Субструктуры»
  • 1 блок «Язык программирования» с подписью «Модель бака» из предыдущего проекта «tank_1.prt» (Рисунок 7).
Разместив порты входа и выхода, необходимо изменить их названия, для изменения названия входных портов необходимо открыть окно «Порт субмодели» и в поле «Имена портов субмодели» задать названия портов «Входной поток» и «Открыть» согласно рисунку (Рисунок 17).

Рисунок 17. Окно «Порт субмодели».

После внесенных изменений в рабочей области субмодели увеличится количество выходных портов блока «Порт входа» (Рисунок 18).

Рисунок 18. Рабочая область субмодели с увеличенным количеством портов входа.

Чтобы изменить названия выходных портов необходимо открыть окно «Порт субмодели» и в поле «Имена портов субмодели» задать названия портов «Уровень в баке», «Объем в баке».

По завершению настроек портов субмодели необходимо разместить блоки в субмодели и соединить их линиями связи согласно рисунку (Рисунок 19).

Рисунок 19. Рабочая область блока «Субмодель» с моделью бака.

Создание модели бака завершено, далее необходимо выйти из субмодели и установить параметры и начальный уровень жидкости в баке, для этого необходимо скопировать из предыдущего проекта «tank_1.prt» скрипт проекта и разместить в скрипте нового проекта (Рисунок 20).

Рисунок 20. Окно «Скрипт страницы» со скопированным скриптом

По завершению настройки параметров бака, модель бака является подключенной к новому проекту. Сохранить проект под именем «tank_2.prt».

Подключив к проекту модель бака, далее необходимо подключить клапаны, отвечающие за наполнение и опорожнение бака, которые были разработаны в предыдущей лабораторной работе, путем копирования блоков из субмодели с подписью «КЛАПАН» в субмодель с подписью «Клапан наполнения». Для этого необходимо открыть проект «Valve_2.prt» из лабораторной работы №1 (Рисунок 21),

Рисунок 21. Рабочая область проекта проект «Valve_2.prt» из лабораторной работы №1.

Войти в блок «Субмодель» с подписью «КЛАПАН» в проекте «Valve_2.prt» и перенести схему простейшего возвратного клапана с режимом отказа датчика конечного состояния клапана в субмодель с подписью «Клапан наполнения» проекта «tank_2.prt». Внутри субмодели с подписью «КЛАПАН» необходимо нажать левой кнопкой мыши на свободную область субмодели и не отпуская выделить расположенные в субмодели блоки, либо выделить все блоки сочетанием клавиш «Ctrl+A», далее вызвать контекстное меню и выбрать пункт «Копировать» или скопировать с использованием сочетания клавиш «Ctrl + C» (Рисунок 22).

Рисунок 22. Рабочая область блока «Субмодель» с подписью «КЛАПАН» проекта «Valve_2.prt» с выделенными блоками для копирования.

После копирования блоков, необходимо разместить их внутри субмодели с подписью «Клапан наполнения» проекта «tank_2.prt», для этого необходимо открыть в проекте «tank_2.prt» рабочую область пустого блока «Субмодель» c подписью «Клапан наполнения» и разместить скопированные блоки, нажатием правой кнопкой мыши на свободное пространство проекта, и выбрав в контекстном меню пункт «Вставить», или вставить с использованием сочетания клавиш «Ctrl + V». Для снятия выделения всех блоков необходимо нажать левой кнопкой мыши на свободное пространство проекта (Рисунок 23). После этого необходимо закрыть проект «Valve_2.prt».

Рисунок 23. Рабочая область блока «Субмодель» проекта «tank_2.prt» с моделью клапана.

Блок модели клапана подготовлен, далее необходимо выйти из рабочей области блока «Субмодель» с подписью «Клапан наполнения» проекта «tank_2.prt» (Рисунок 24). Создания модели клапана завершено.

Рисунок 24. Рабочая область проекта «tank_2.prt» после введения в проект модели бака и модели клапана наполнения.

Для введения в систему модели клапана опорожнения, необходимо сделать копию разработанного выше блока, поскольку работа клапанов наполнения и опорожнения идентична. Для этого необходимо скопировать блок «Субмодель» с подписью «Клапан наполнения», который выделен на рисунке (Рисунок 25), и разместить в рабочей области проекта «tank_2.prt» (Рисунок 26).

Рисунок 25. Рабочая область проекта «tank_2.prt» с выделенным блоком «Субмодель» с подписью «Клапан наполнения».

Поскольку скопированная модель клапана наполнения, выделенная на рисунке (Рисунок 27), имеет подпись «Клапан наполнения», то для обозначения, что модель является клапаном опорожнения, необходимо изменить подпись на «Клапан опорожнения».

Рисунок 26. Рабочая область проекта «tank_2.prt» с выделенной копией блока «Субмодель» с подписью «Клапан наполнения».

Создание модели клапанов наполнения и опорожнения завершено, далее необходимо разместить блоки в окне проекта, соединить их линиями связи и задать им подписи согласно рисунку (Рисунок 27).

Рисунок 27. Рабочая область проекта «tank_2.prt» с моделью системы управления течением жидкости в баке.

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

Ввиду того, что зона нечувствительности сигнала управления зависит от скорости перемещения клапанов, то необходимо задать скорость. Скорость перемещения клапанов задается коэффициентом усиления блока «Интегратор с ограничением», для его изменения необходимо открыть рабочую область блока «Субмодель» с подписью «Клапан наполнения», задать в свойствах блока «Интегратор с ограничениями» значение свойства «Коэффициент усиления» равным «0.2», что соответствует полному перемещению клапана за 5 секунд (Рисунок 28).

Рисунок 28. Окно «Свойства» блока «Интегратор с ограничениями».

Выйти из рабочей области блока «Субмодель» с подписью «Клапан наполнения» и изменить значение скорости перемещения клапана опорожнения, для этого необходимо открыть рабочую область блока «Субмодель» с подписью «Клапан опорожнения» и изменить в блоке «Интегратор с ограничениями» значение свойства «Коэффициент усиления» на значение равное «0.2».

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

Рисунок 29. Окно «Свойства» блока «Релейное с зоной нечувствительности» с подписью «Реле 1».

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

Рисунок 30. Окно «Свойства» блока «Релейное с зоной нечувствительности» с подписью «Реле 2».

По завершению настройки зоны нечувствительности для управляющего сигнала, необходимо настроить скорость течения потока. Для уменьшения скорости течения входного потока в бак, необходимо открыть окно «Свойства» блока «Усилитель», задать в поле «Значение» значение свойства «Коэффициент усиления» равным «0.25» и добавить подпись к блоку «Входной потокв бак».

Основные настройки параметров блоков подготовлены, далее необходимо настроить отображение результатов моделирования. В результате моделирование необходимо получить график со значениями состояния клапана наполнения и клапана опорожнения, а также значениями уровня и объема в баке, соответственно, необходимо увеличить количество входных портов блока «Временной график». Для этого необходимо открыть окно «Свойства» блока «Временной график», в поле «Значение» задать значение свойства «Количество входных портов» равным «4» и добавить подпись к блоку «Уровень и объем».

Увеличив количество выходных данных, которые будут отображаться на графике после запуска моделирования, необходимо изменить названия графиков в блоке «Временной график» с подписью «Уровень и объем». Для этого необходимо открыть окно «Свойства графика» блока «Временной график» с подписью «Уровень и объем», на вкладке «Графики и оси» установить значения согласно рисунку (Рисунок 31). На вкладке «Общие» ввести название графика «Уровень и объем» в поле «Заголовок».

Рисунок 31. Окно «Свойства графика» для блока «Временной график» с подписью «Уровень и объем».

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

Рисунок 32. Окно примитива «Редактирование текста».

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

Рисунок 33. Рабочая область проекта с добавленными подписями.

Настройка параметров блоков завершена, перейти к моделированию проекта, однако перед запуском проекта на моделирование необходимо изменить в параметрах расчета проекта конечное время моделирования, для этого необходимо открыть «Параметры расчета» и задать значение параметра «Конечное время расчета» равным «75». А также в параметрах расчета проекта установить синхронизацию с реальным временем для изменения целевого уровня жидкости в баке в процессе моделирования, для этого необходимо во вкладке «Синхронизация» окна параметров проекта выбрать параметр «Синхронизировать с реальным временем» (Рисунок 34).

Рисунок 34. Окно «Параметры проекта» вкладка «Синхронизация».

Необходимо включить режим моделирования работы системы с отображением отказа датчика состояния клапана на графике блока «Временной график» с подписью «Уровень и объем», необходимо в блоках «Кнопка», сигналы которых поступают на вход субмодели с подписью «Клапан наполнения» и субмодели с подписью «Клапан опорожнения», перевести из состояния «1» в состояние «0».

Настройка проекта завершена, далее необходимо проверить модель на работоспособность, изменяя уровень жидкости в баке:
  • До 30 секунды необходимо установить целевой уровень жидкости в баке равным три метра.
  • После 30 секунды установить целевой уровень жидкости в баке на ноль.

Задающим воздействием является блок «Константа», в котором устанавливается требуемое значение уровня жидкости. Для изменения целевого уровня жидкости необходимо открыть окно «Свойства» блока «Константа» в поле «Значение» задать значение свойства «Значение» равным «3», что соответствует целевому уровню жидкости в баке – 3 метра.

Запустить проект на моделирование, нажатием на кнопку «Пуск». В процессе моделирования:
  • от 0 до 5 секунды клапан наполнения будет постепенно открываться для наполнения бака, при этом значение уровня и объема жидкости в баке будет постепенно возрастать;
  • от 12 до 17 секунды, клапан наполнения будет постепенно закрываться, наполняя бак до целевого уровня, при этом клапан опорожнения с 15 до 18 секунды откроется и закроется для установки целевого уровня жидкости в баке, поскольку установленная зона нечувствительности на управляющий сигнал не является минимальной;
  • от 17 до 30 секунды значение уровня жидкости в баке составит 3 метра, после чего необходимо изменить значение целевого уровня на 0;
  • от 30 до 35 секунды клапан опорожнения будет открываться, для опорожнения жидкости в баке;
  • от 35 до 75 секунды клапан опорожнения будет открыт для опорожнения жидкости в баке.

После запуска проекта на моделирование, необходимо открыть окно «Уровень и объем» для анализа полученных результатов. Результаты моделирования представлены на рисунке (Рисунок 35).

Исходя из полученных результатов, можно сделать выводы: скорость перемещения клапана как на открытие, так и на закрытие составляет 5 единиц в секунду: на графике линии «Клапан наполнения» и «Клапан опорожнения» с 0 секунды по 5 секунду, с 12 секунды до 17 и с 30 секунды по 35 секунду. Входной поток 0.25 кубометров в секунду. Начальный уровень в баке задан параметром «h_init», который указан в скрипте проекта на рисунке (Рисунок 20), и равен «2», что соответствует объему 4 кубометра. Конечный уровень жидкости в баке задан параметром «h_out» и равен «1», поэтому уровень жидкости в баке, на рисунке (Рисунок 35) синяя линия с подписью «Уровень в баке», не достиг нуля.

Рисунок 35. Окно блока «Временной график» с подписью «Уровень и объем».

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

После проверки модели на работоспособность необходимо исследовать модель для нахождения минимальной зоны нечувствительности, при которой будет выполняться наполнение до целевого уровня жидкости в баке. Для этого необходимо изменить целевой уровень жидкости в баке до 5 метров, а также задать зону нечувствительности равной «0». Для этого необходимо изменить значение свойств блока «Релейное с зоной нечувствительности». Открыть окно «Свойства» блока «Релейное с зоной нечувствительности» с подписью «Реле 1». В поле «Значение» задать значение свойства «Нижняя граница переключения» и «Нижняя граница зоны нечувствительности» равным «0» (Рисунок 36).

Рисунок 36. Окно «Свойства» блока «Релейное с зоной нечувствительности» с подписью «Реле 1».

После установки зоны нечувствительности на управляющий сигнал, необходимо задать целевое значение уровня жидкости в баке до 5 метров, для этого необходимо открыть окно «Свойства» блока «Константа», в поле «Значение» задать значение свойства «Значение» равным «5».

Проект настроен. Перед запуском моделирования необходимо изменить параметры расчета проекта. Для этого необходимо открыть «Параметры расчета» и задать значение параметра «Конечное время расчета» равным «45».

После настройки конечного времени расчета запустить проект на моделирование. По завершению процесса моделирования открыть окно «Уровень и объем» для анализа полученных результатов. Исходя из результатов моделирования на графике (Рисунок 37), было выявлено превышение целевого уровня жидкости в баке почти на 0.2 метра: начиная с 34.5 секунды на графике (Рисунок 37) синяя линия с подписью «Уровень в баке» пересекла отметку 5 метров по оси Y.

Рисунок 37. Окно блока «Временной график» с подписью «Уровень и объем».

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

Изменить параметры зоны нечувствительности для нахождения минимальной зоны нечувствительности при целевом уровне жидкости в баке 5 метров. Для этого необходимо оставить целевой уровень жидкости, а зону нечувствительности задать равным «0.4». Открыть окно «Свойства» блока «Релейное с зоной нечувствительности» с подписью «Реле 1», в поле «Значение» задать значение свойства «Нижняя граница переключения» и «Нижняя граница зоны нечувствительности» равным «0.4».

Настройка проекта завершена, запустить проект на моделирование. По завершению процесса моделирования открыть окно «Уровень и объем» для анализа полученных результатов. Исходя из результатов моделирования на графике (Рисунок 38), было выявлено, что при установке зоны нечувствительности на 0.4, переполнения жидкости в баке не происходит.

Рисунок 38. Окно блока «Временной график» с подписью «Уровень и объем».

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

Изменить параметры зоны нечувствительности для нахождения минимальной зоны нечувствительности при целевом уровне жидкости в баке 5 метров, задав зону нечувствительности равной «0.2», для этого необходимо открыть окно «Свойства» блока «Релейное с зоной нечувствительности» с подписью «Реле 1», в поле «Значение» задать значение свойства «Нижняя граница переключения» и «Нижняя граница зоны нечувствительности» равным «0.2».

После настройки параметров зоны нечувствительности, необходимо изменить отображение результатов моделирования, для этого необходимо открыть окно «Свойства графика» блока «Временной график» с подписью «Уровень и объем», на вкладке «Графики и оси» установить значение в поле «Шаг сетки» раздела «Ось Y» равным «0.1».

Проект настроен, запустить проект на моделирование. По завершению процесса моделирования открыть окно «Уровень и объем» для анализа полученных результатов. Исходя из результатов моделирования на графике (Рисунок 39), было выявлено, что при зоне нечувствительности 0.2 метра целевой уровень жидкости превышает на 0.02 метра: начиная с 37 секунды на графике синяя линия с подписью «Уровень в баке» пересекла отметку 5 метров по оси Y.

Рисунок 39. Окно блока «Временной график» с подписью «Уровень и объем».

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

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

Изменить значение целевого уровня жидкости в баке, для этого необходимо открыть окно «Свойства» блока «Константа», в поле «Значение» задать значение свойства «Значение» равным «3».

Изменить зону нечувствительности управляющего сигнала, открыв окно «Свойства» блока «Релейное с зоной нечувствительности» с подписью «Реле 1», и в поле «Значение» задав значение свойства «Нижняя граница переключения» и «Нижняя граница зоны нечувствительности» равным «0.4».

Проект настроен, запустить проект на моделирование, однако перед запуском необходимо изменить параметры расчета проекта, для этого необходимо открыть окно «Параметры проекта», в открывшемся окне во вкладке «Параметры расчета» и задать значение параметра «Конечное время расчета» равным «24».

Запустить проект на моделирование. По завершению процесса моделирования открыть окно «Уровень и объем» для анализа полученных результатов. Исходя из результатов моделирования на графике (Рисунок 40), было выявлено, что при зоне нечувствительности 0.4 метра уровень жидкости в баке не достиг 3 метров: начиная с 13.7 секунды на графике синяя линия с подписью «Уровень в баке» переходит в установившуюся отметку 2.8 по оси Y.

Рисунок 40. Окно блока «Временной график» с подписью «Уровень и объем».

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

Изменить параметры зоны нечувствительности для нахождения минимальной зоны нечувствительности при целевом уровне жидкости в баке 3 метра. Для этого необходимо изменить зону нечувствительности на «0». Открыть окно «Свойства» блока «Релейное с зоной нечувствительности» с подписью «Реле 1», в поле «Значение» задать значение свойства «Нижняя граница переключения» и «Нижняя граница зоны нечувствительности» равным «0».

Настройка проекта завершена, запустить проект на моделирование. По завершению процесса моделирования открыть окно «Уровень и объем» для анализа полученных результатов. Исходя из результатов моделирования на графике (Рисунок 41), было выявлено, что при отсутствии зоны нечувствительности целевой уровень жидкости превышает на 0.2 метра: начиная с 18.5 секунды на графике синяя линия с подписью «Уровень в баке» пересекла отметку 3 метра по оси Y.

Рисунок 41. Окно блока «Временной график» с подписью «Уровень и объем».

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

Изменить параметры зоны нечувствительности для нахождения минимальной зоны нечувствительности при целевом уровне жидкости в баке 3 метра. Для этого необходимо оставить целевой уровень жидкости в баке - 3 метра, а зону нечувствительности задать равным «0.2». Открыть окно «Свойства» блока «Релейное с зоной нечувствительности» с подписью «Реле 1». В поле «Значение» задать значение свойства «Нижняя граница переключения» и «Нижняя граница зоны нечувствительности» равным «0.2».

Перед запуском проекта на моделирование необходимо изменить отображение результатов моделирования, для этого необходимо открыть окно «Свойства графика» блока «Временной график» с подписью «Уровень и объем». На вкладке «Графики и оси» установить значение в поле «Шаг сетки» раздела «Ось Y» равным «0».

Запустить проект на моделирование. По завершению процесса моделирования необходимо открыть окно «Уровень и объем» для анализа полученных результатов. Исходя из результатов моделирования на графике (Рисунок 42), было выявлено, что при зоне нечувствительности 0.2 метра наполнение бака выполнено до заданного уровня, что позволяет сделать вывод, что при целевом уровне жидкости в 3 метра, необходимая точность наполнения жидкостью бака достигается при меньшей зоне нечувствительности, чем при наполнении до 5 метров.

Рисунок 42. Окно блока «Временной график» с подписью «Уровень и объем».

В результате проведенных исследований выявлена зависимость точности отработки не только от характеристик работы клапана, но и от геометрии бака. Поскольку объем жидкости в баке изменяется пропорционально входному потоку, то изменение уровня носит явно нелинейный характер, определяемый геометрией бака. Следовательно, для управления наполнением бака предпочтительным подходом будет наполнение не по уровню, а по объему. Такой подход применяют при отсутствии датчиков объема и при наличии только дискретных датчиков конечного уровня, и при этом необходимо учесть, что значения этих датчиков должны быть пересчитаны в соответствующий объем. Сохранить проект под именем «tank_2_level.prt» и сделать его копию под именем «tank_2_volume.prt».

Поскольку при управлении наполнением и опорожнением жидкостью бака по объему система становится линейной, то необходимо в проекте изменить управление наполнением бака с управления по уровню на управление по объему, для этого необходимо открыть проект «tank_2_volume.prt» и на вход блока «Сравнивающее устройство» подать значение объема из блока «Субмодель» с подписью «Модель бака» (Рисунок 43).

Рисунок 43. Рабочая область проекта с моделью процесса заполнения бака с управлением по объему.

Если сделать ряд допущений о том, что выполняются следующие условия:
  • входной поток на клапан (P) постоянен;
  • эффективное сечение клапана за время его открытия (Tk) изменяется линейно во времени;
  • поток в бак пропорционален степени открытия клапана;
то значение зоны нечувствительности определяется из следующего выражения:

В рассматриваемой модели входной поток P = 0.25 кубометров в секунду, а время полного открытия клапана Tk = 5 секунд. При подстановке данных значений в приведенное выше выражения, зона нечувствительности будет равняться 0.625.

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

Рисунок 44. Окно «Свойства» блока «Релейное с зоной нечувствительности» с подписью «Реле 1».

Установив зоны нечувствительности управляющего сигнала, провести моделирование процесса наполнения жидкостью бака для разных значений его объема, для этого необходимо изменить целевой объем бака до 7 метров, для этого необходимо открыть окно «Свойства» блока «Константа». В поле «Значение» задать значение свойства «Значение» равным «7».

Настройка параметров проекта завершена, запустить проект на моделирование. По завершению процесса моделирования открыть окно «Уровень и объем» для анализа полученных результатов. Исходя из результатов моделирования на графике (Рисунок 45), было выявлено, что при зоне нечувствительности равной 0.625 наполнение жидкостью бака по объему выполняется без погрешностей.

Рисунок 45. Окно блока «Временной график» с подписью «Уровень и объем».

Исходя из полученных результатов моделирования, видно, что уменьшается погрешность процесса наполнения бака жидкостью, однако необходимо удостоверится, что при изменении целевого объема бака погрешность процесса наполнения не изменяется. Для этого необходимо изменить целевой объем бака до 12 метров, для этого необходимо открыть окно «Свойства» блока «Константа», в поле «Значение» задать свойство «Значение» равным «12».

После изменения целевого объема бака, необходимо перед запуском проекта на моделирование изменить параметры расчета проекта, открыв окно «Параметры проекта» и в открывшемся окне во вкладке «Параметры расчета» задав значение параметра «Конечное время расчета» равным «50».

Запустить проект на моделирование. По завершению процесса моделирования необходимо открыть окно «Уровень и объем» для анализа полученных результатов. Исходя из результатов моделирования на графике (Рисунок 46), было выявлено, что при изменении объема бака погрешность процесса наполнения не изменилось

Рисунок 46. Окно блока «Временной график» с подписью «Уровень и объем».

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

Заключение

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

Данная работа позволила освоить в SimInTech базовые приемы:
  • математического моделирования;
  • разработки блоков на основе языка программирования.

Задания к лабораторной работе

  1. Исследовать работу модели, используя разные исходные и конечные объемы. Оценить полученные результаты и установить влияние на них установленной зоны нечувствительности.
  2. Реализовать модификацию модели управления объемом жидкости бака и проанализировать его работу. Значение свойств блока «Релейное с зоной нечувствительности» установить согласно рисунку (Рисунок 47).

    Рисунок 47. Окно «Свойства» блока «Релейное с зоной нечувствительности».

  3. Значения параметров расчета установить согласно рисунку (Рисунок 48) для наиболее эффективного процесса моделирования и отладки проекта.

    Рисунок 48. Окно «Параметры проекта».

  4. Изучить в справочной системе SimInTech раздел «Графика и анимация».