Занятие 2. Разработка систем логического управления электроприводами

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

Занятие 2. Разработка систем логического управления электроприводами - student2.ru

Рис. 1.

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

1. Электропривод должен отрабатывать команды «Открыть», «Закрыть», «Стоп» с остановом при достижении заданного положения.

2. Электропривод должен выдавать сигнализацию о достижении конечных положений «Открыто» и «Закрыто»

3. Электропривод должен выдавать сигнализацию о своем состоянии – «Движение на открытие», «Движение на закрытие», «Остановлен».

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

В группе Stateflow находится единственный компонент под именем Chart. Данный компонент позволяет реализовывать конечный автомат - одно из самых широкоприменяемых устройств для логического управления.

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

Например, при управлении двигателем в реверсивном режиме можно выделить 3 логических состояния:

1. Остановлен

2. Движение вперед

3. Движение назад

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

Каждое состояние предполагает выполнение каких-то специфичных действий, характерных для данного состояния: в состоянии «Остановлен» необходимо снять напряжение с двигателя, в состоянии «Движение вперед» необходимо подать напряжение прямой последовательности, в состоянии «Движение назад» необходимо подать напряжения обратной последовательности. Пример графического представления данного конечного автомата показан на рис.2.

Занятие 2. Разработка систем логического управления электроприводами - student2.ru

Рис.2

Откройте окно редактирования модели и поместите компонент Chart из группы Stateflow. Сделайте двойной клик по компоненту, и перед вами откроется редактор диаграмм, в котором определяются все состояния и устанавливаются переходы между ними.

Занятие 2. Разработка систем логического управления электроприводами - student2.ru

Рис.3

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

В результате вы должны получить диаграмму, аналогичную с рис.3.

Кликните в прямоугольнике по знаку «?» и получите возможность задания имени состояния (рис.4.). Назовем одно состояние stop (остановлен), другое move (движение)

Занятие 2. Разработка систем логического управления электроприводами - student2.ru

Рис.4

Для того, чтобы осуществлялись переходы между состояниями, необходимо обеспечить ввод событий в систему. Выполните через меню окна редактора диаграмм команду Add-Event-Input from Simulink… (Рис.5), т.е. события мы будем имитировать средствами Симулинка.

В появившемся окне (рис.) задайте имя события (my_event_1) и тип события в поле Trigger (по нарастающему фронту, т.е. Rising), нажмите кнопку ОК.

Занятие 2. Разработка систем логического управления электроприводами - student2.ru

Рис.5

Аналогичным образом добавьте событие my_event_2 и тип события Falling (спадающий фронт).

Таким образом, мы задали два типа событий, вызывающие реакцию системы – на нарастающий фронт и спадающий фронт. Зададим события перехода между состояниями на диаграмме. Для этого необходимо выделить стрелку и вместо появившегося знака вопроса ввести имя события (рис.6)

Занятие 2. Разработка систем логического управления электроприводами - student2.ru

Рис.6

Так как события будут имитироваться средствами Симулинка, необходимо доработать модель системы в редакторе моделей (рис.7). Установите два компонента констант со значениями «1» и «-1». Установите ручной переключатель сигналов (группа Симулинк, подгруппа Signal Routing, компонент Manual Switch). В связи с тем, что в компоненте Chart мы установили 2 события (my_event_1 и my_event_2), необходимо превратить сигнал в вектор посредством мультиплексора ((группа Симулинк, подгруппа Signal Routing, компонент Mux).

Прежде чем запустить моделирование, зададим задержку при осуществлении переходов для того, чтобы существовала возможность наблюдать работу разработанного конечного автомата. Для этого необходимо подать команду Tools-Debug… (рис.8)

Занятие 2. Разработка систем логического управления электроприводами - student2.ru

Рис.7

Занятие 2. Разработка систем логического управления электроприводами - student2.ru

Рис.8

В появившемся окне необходимо включить анимацию (Animation – enabled) и установить время задержки (Delay) как 0,6 секунды (рис.9)

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

Устройство управления, не выдающее во внешнюю среду никаких сигналов, является бесполезным. Добавим выход к разработанному конечному автомату. Данный выход будет показывать необходимость включения контакторов (значение «1») или отключения (значение «0»).

Для добавления выхода необходимо подать команду Add-Data-Output to Simulink(рис.10).

Занятие 2. Разработка систем логического управления электроприводами - student2.ru

Рис.9

Занятие 2. Разработка систем логического управления электроприводами - student2.ru

Рис.10

В появившемся окне задайте имя выхода (поле Name) как contactor (название с маленькой буквы!). В окне редактора в компоненте Chart появится выход с именем contactor. Данный выход необходимо соединить с компонентом Display для визуализации результата работы разрабатываемого конечного автомата (рис.11). В редакторе диаграмм необходимо определить действия по отношению данного выхода. Для этого в прямоугольниках, обозначающих состояния, необходимо задать (см.рис.11 ):

1. en:contactor=0 для состояния stop

2. en:contactor=1 для состояния move

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

Занятие 2. Разработка систем логического управления электроприводами - student2.ru

Рис.11

Запустите моделирование и убедитесь в изменении показания компонента Display при формировании событий с помощью компонента Manual Switch.

Усложним рассматриваемый пример за счет введения ветвления при осуществлении переходов и добавлении входа для данных. Допустим, что в системе существует датчик температуры двигателя. При превышении заданной температуры необходимо запрещать пуск двигателя. Для введения входа для датчика температуры необходимо подать команду Add-Data-Input from Simulink(рис.12)

Занятие 2. Разработка систем логического управления электроприводами - student2.ru

Рис.12

В появившемся окне задайте имя входа (поле Name) как temperature и нажмите ОК. В окне редактора модели к появившемуся входу temperature компонента Chart прикрепите константу для задания температуры (рис.13).

В редакторе диаграмм, используя кнопку создания точек ветвления (рис.3), создайте диаграмму как на рис.13 В отличии от событий, при формировании условных переходов по входу данных (в данном случае temperature) необходимо применять знаки «[ ]» (см. рис.13).

Промоделируйте работу конечного автомата (имитируя события через Симулинк) при задании температуры более 100 градусов и менее 100 градусов.

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

Занятие 2. Разработка систем логического управления электроприводами - student2.ru

Рис.13

Наши рекомендации