Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Теоретические сведения о программе Stateflow




 

В основе диаграммы Stateflow лежит концепция конечного автомата. Система переходит из одного состояния в другое при выполнении определенного условия. Система MATLAB имеет графический инструмент построения Stateflow-диаграмм (state-состояние, flow-поток). Графический редактор имеет хороший инструментарий, определяющий набор объектов (состояний) и правил, которые управляют переходами между состояниями системы. Stateflow – это мощный графический инструмент проектирования и моделирования комплексных систем локального управления и супервизорного логического контроля.

Stateflow состоит из следующих компонентов:

Stateflow graphics editor – графический редактор;

Stateflow Explorer – проводник;

Stateflow Coder – генератор объектного кода;

Stateflow Debugger – отладчик;

Stateflow Dynamic Checker – динамическое проверочное устройство.

Во время выполнения задачи обеспечивает проверку таких условий, как зацикливание и нарушение диапазона данных. Stateflow позволяет использовать диаграммы потоков и диаграммы состояний и переходов в одной диаграмме. При включении Stateflow в рабочую конфигурацию MatLab библиотека Simulink дополняется разделом Stateflow, содержащим единственную компоненту – блок Chart (диаграмма), который может быть помещен в окно блок-диаграммы.

Просмотр Stateflow объектов пользователь может осуществлять через Stateflow-Exploer. Открыть редактор можно выбрав меню View→Model Exploer. Интерфейс редактора представлен на рис. 4.1 и состоит из двух панелей: модель иерархии модели (слева) и содержание модели (справа).

 

Р и с. 4.1. Интерфейс Model Exploer

 

На рис. 4.2 представлена панель графических элементов инструмента Stateflow.

 

Р и с. 4.2. Панель графических элементов инструмента Stateflow

 

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

Данная кнопка обеспечивает соединение с памятью.

 

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

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

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

 

Р и с. 4.3. Диаграмма Stateflow

 

При составлении диаграммы были использованы следующие объекты Stateflow. Важным объектом SF-диаграмм являются состояния (state). Это графический объект в виде прямоугольника с заметно скругленными углами, обычно построенный синими линиями. Активность или пассивность состояния динамически изменяется в зависимости от происходящих событий. Каждое состояние имеет состояние-родителя и может иметь дочерние состояния (состояния более низкого уровня). Дочернее состояние изображается вложенным в родительское. Если состояние является единственным, то его родителем является сама SF-диаграмма, называемая также корневой диаграммой.

Основное состояние, которое является внешним по отношению к встроенным в него состояниям, называется эксклюзивным. Если строится единственное состояние, то оно и будет эксклюзивным. Состояния могут быть нейтральными (neutral) и занятыми (engaged). Имеется два типа состояний – параллельные, то есть существующие одновременно (AND) и взаимно исключающие друг друга (OR). Взаимоисключающие (OR) состояния никогда не могут быть активными или выполняться в одно и то же время, и представлены графически – прямоугольником, выполненным сплошной линией (рис. 4.4).

Р и с. 4.4. Графическое представление

состояния (OR)

 

Параллельное состояние (AND) представлено графически штриховым прямоугольником (рис. 4.5).

Р и с. 4.5. Графическое представление

состояния (AND)

 

Работа системы кондиционирования воздуха содержит шесть состояний:

1. PowerOn – Питание системы кондиционирования включено.

2. PowerOff – Питание системы кондиционирования выключено.

3. FAN1 On – Первый вентилятор включен.

4. FAN1 Off – Первый вентилятор выключен.

5. FAN2 On – Второй вентилятор включен.

6. FAN2 Off – Второй вентилятор выключен.

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

Переходы (transition) – еще один важный класс графических объектов SF-диаграмм. Они отражают переходы от одного объекта к другому и представляются обычно красными стрелками. Переходы не имеют своей кнопки в панели инструментов. Они создаются мышью, как только вы укажете (при нажатой левой кнопке) объект, от которого должна исходить стрелка перехода, и начнете двигать указатель к тому объекту, к которому направляется переход. Переходы имеют метки, которые описывают обстоятельства или условия, при которых происходит переход из одного места диаграммы в другое. Переходы это графические объекты, которые соединяют одно состояние с другим и определяют направление потока. Переходы в представленной модели представлены однонаправленными стрелками (рис. 4.6).

Р и с. 4.6. Графическое изображение

переходов на SF-диаграмме

 

Диаграмма системы кондиционирования содержит шесть переходов:

1. От PowerOn к PowerOff.

2. От PowerOff к PowerOn.

3. FAN1. От ON к Off.

4. FAN1. От Off к ON.

5. FAN2. От ON к Off.

6. FAN2. От Off к ON.

Для указания альтернативных путей перехода систем из одного состояния в другое служат признаки альтернативы (connection junction). Это графические объекты в виде черных окружностей, закрашенных внутри красным цветом и имеющих стрелку перехода. Применение таких объектов упрощает построение SF-диаграмм, исключая необходимость пересечения переходов. Кроме того, альтернативные пути переходов способствуют повышению эффективности работы SF-диаграмм и облегчают генерацию программного кода.

Событие (event) – важнейшее понятие в пакете Stateflow. Возникновение события меняет статус связанных с ним состояний и может запустить заданное действие или переход.

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

- локальные – видимые только в пределах данной SF-диаграммы;

- входные – передаваемые в SF-диаграмму из Simulink-модели;

- выходные – передаваемые из SF-диаграммы в Simulink-модель;

- экспортируемые – передаваемые из SF-диаграммы или Simulink-модели во внешнюю программу;

- импортируемые – получаемые из внешних программ.

Процедура (action) не является графическим объектом. Для описания процедур служит специальный язык процедур – Action language.

Есть две модели конечных автоматов для процедур:

- модель Мура, связывающая процедуры с состояниями;

- модель Мили, связывающая процедуры с переходами.

Данные (data) представляют в SF-модели числовые значения. Данные не являются графическими объектами и непосредственно на SF-диаграмме не указываются. Они могут создаваться на любом уровне иерархии модели и имеют свойства. Для создания и модификации данных служит команда Data меню Add редактора SF-диаграмм. Данные, классифицируемые по области видимости, могут быть следующих типов:

- локальные – видимые только в пределах данной SF-диаграммы;

- входные – передаваемые в SF-диаграмму из Simulink-модели;

- выходные – передаваемые из SF-диаграммы в Simulink-модель;

- временные (промежуточные);

- сохраняемые – хранящиеся в рабочей области MatLAB;

- константы;

- экспортируемые – передаваемые из SF- или Simulink-модели во внешнюю программу;

- импортируемые – получаемые из внешних программ.

Описание объектов

При создании состояния в левом верхнем углу его графического образа появляется знак вопроса. На его место вводится описание состояния – в простейшем случае его имя. Общая структура состояния следующая:

nаmе/

entry:

during:

exit:

on event_name

Смысл этих определений дан ниже:

- during или du – действия, которые выполняются как часть процедуры пребывания в некотором состоянии;

- entry или en – действия, которые выполняются как часть процедуры входа в состояние;

- entry (state_name) или en (state_name) – генерация локального события при входе в состояние state_name;

- exit или ex – действия, которые выполняются как часть процедуры выхода из состояния;

- exit (state_name) или ex (state_name) – генерация локального события при выходе из состояния statename;

- on event_name – процедура, задающая выполнение каких-либо действий при возникновении события event_name.

Подготовка модели Simulink с заготовкой SF-диаграммы

Составим и испытаем в работе простую модель электрического выключателя, который в исходном состоянии выключен. После запуска Simulink, создадим new model, куда поместим источник переменного напряжения и осциллограф, затем откроем раздел библиотек Stateflow и перенесем в окно Simulink-модели блок SF-диаграммы. Подключим этот блок к проводнику, соединяющему источник переменного напряжения с входом осциллографа (рис. 4.7).

 

Р и с. 4.7. Окно Simulink -модели с блоком SF -диаграммы

Подготовка SF-диаграммы в редакторе

Двойным щелчком на SF-блоке On-off откроем окно редактора SF-диаграмм. Используя первую сверху кнопку панели инструментов, перенесем в окно редактора два графических объекта состояния и присвоим им имена.

Для перехода от состояния Power on к состоянию Power_off надо установить указатель мыши на выход блока Power_on и, нажав левую кнопку мыши, начать строить стрелку перехода, перемещая ее к входу блока Power_off. В отличие от моделей Simulink, графические объекты состояний не имеют четко обозначенных мест ввода и вывода, так что их можно выбирать произвольно. Установим названия переходов.

Кроме того, нам надо указать переход к Simulink-модели у состояния Power_off. Зададим его как альтернативный переход с помощью соответствующей кнопки панели инструментов редактора SF-диаграмм. В итоге SF-диаграмма примет окончательный вид, приведенный на рис. 4.8.

 

 

Р и с. 4.8. Диаграмма состояний системы

Возможна установка параметров SF-диаграммы с помощью проводника. Параметры состояний SF-диаграммы можно установить в окне гра­фического редактора диаграмм с помощью команды Event меню Add. Эта команда открывает меню с необходимыми установками. Познакомимся с еще одним способом установки параметров – с помощью проводника Stateflow Explorer. Для его запуска используется команда меню Tools> Explore. Она вызывает появление окна проводника, которое показано на рис. 4.9.

 

Р и с. 4.9. Диалоговое окно проводника Stateflow Explorer

В левой половине окна проводника отражена иерархия объектов – Object Hierarchy. Выделив объект Onn_off, надо исполнить команду Add>Event с помощью меню проводника. При этом появится окно Event, с помощью которого можно установить необходимые параметры. Прежде всего, нужно ввести имя switch в поле Name, в переключателе областей видимости Scope надо установит Input from Simulink, поскольку SF-диаграмма будет работать от Simulink-модели. В списке Trigger надо выбрать вариант Rising Edge. После этих установок окно события и проводника можно закрыть.

Запуск модели. Перед запуском Simulink-модели следует установить параметры моделирования. Запуск производится командой Start из меню Simulation или активизацией кнопки Start в панели инструментов.

Средства отладки SF-моделей

С точки зрения программной реализации, SF-модель представляет собой S-функцию. В программе могут содержаться как логические, так и синтаксические ошибки. Проверка на синтаксические ошибки выполняется при выборе команды Parse (синтаксический разбор), входящей в меню Tools (инструменты) графического редактора (рис. 4.10).

 

Р и с. 4.10. Средства отладки SF-моделей

 

Отладка логических ошибок возможна при автономном запуске SF-модели, которая производится командой Start меню Simulation графического редактора Stateflow. Проверку значения параметров модели можно осуществить при выборе команды Chart Properties входящей в меню Fail графического редактора (рис. 4.11).

Окно содержит следующие элементы:

1. Name (имя) – имя SF-диаграммы. Представляет собой статическую текстовую область, которая реализована как гиперссылка: щелчок мышью на ней приводит к активизации окна SF-диаграммы.

2. Simulink Subsystem (подсистема Simulink) – имя S-модели, в состав которой входит SF-диаграмма. Simulink Subsystem представляет собой статическую текстовую область, которая реализована как гиперссылка: щелчок мышью на ней приводит к активизации окна блок-диаграммы.

3. Parent (родитель) – имя SF-диаграммы более высокого уровня («родителя») или Stateflow-машины. Представляет собой статическую текстовую область, которая реализована как гиперссылка: щелчок мышью на ней приводит к открытию диалогового окна настройки параметров соответствующей SF-диаграммы.

4. Update Method (метод коррекции) – раскрывающийся список позволяет выбрать способ управления работой SF-диаграммы.

 

Р и с. 4.11. Отладка логических ошибок

Существует несколько способов управления SF-диаграммами.

Triggered or inherited – метод используется в тех случаях, когда SF-диаграмма управляется событиями или данными, поступающими из S-модели; если вы определяете входные события для диаграммы, то она будет активизироваться каждый раз, когда на триггерный порт диаграммы поступает управляющий сигнал; если же определены только входные данные (входные события отсутствуют), то периодичность активизации диаграммы будет определяться интенсивностью поступления данных; при отсутствии информационных и «событийных» связей с Simulink периодичность выполнения диаграммы равна величине шага моделирования, установленного для s-модели.

Sampled (эталон) – периодичность активизации SF-диаграммы задается как значение параметра Sample time (эталонное время) соответствующего блока; Simulink генерирует управляющие события через равные интервалы времени, соответствующие значению этого параметра; при использовании этого метода следует учитывать, что другие блоки в S-модели могут иметь иное значение параметра Sample time; при выборе данного варианта управления становится доступно для редактирования расположенное справа от списка поле Sample time, в которое следует ввести значение этого параметра.

Continuous (непрерывно) – блок SF-диаграммы активизируется на каждом шаге моделирования, величина которого определяется параметрами S-модели.

Флажок Use Strong Data Typing with Simulink I/O (использовать только типы данных Simulink) позволяет запретить или разрешить использование данных, сохраненных Simulink в рабочей области MatLAB.

Флажок Execute(enter) chart At Initialization (выполнить диаграмму при инициализации) позволяет запретить или разрешить исполнение SF-диаграммы при запуске S-модели.

Флажок Debugger breakpoint (точка останова отладчика) позволяет использовать при отладке в качестве точки останова моментинициализации SF-диаграммы.

Флажок Editor (редактор) позволяет запретить любую модификацию SF-диаграммы.

Задание на выполнение лабораторной работы

Система представляет собой пять цилиндрических баков, расположенных вертикально на разной высоте таким образом, что дно первого и дно второго баков находятся на расстоянии H1 от дна третьего, дно третьего бака находится на расстоянии H2 от дна четвертого и дна пятого баков. H1=0.4м, H2=0.38м, H3=0.42м. Баки имеют одинаковую высоту h=1[м] и различные диаметры: первый – D1, второй – D2, третий – D3, четвертый – D4, пятый – D5. Система имеет несколько входных труб, находящихся на расстоянии h от дна. Баки соединены трубами, являющихся выходными трубами для одних баков (и располагающихся у самого дна) и входными трубами для других (располагающейся на расстоянии Н1 и H2 от дна). Также система имеет выходные трубы, располагающиеся у самого дна четвертого и пятого баков. Входные трубы системы снабжены входными кранами V1input, V2input, V3input и т.д. Трубы, соединяющие выход первого и второго баков с входом третьего, снабжена кранами V5 и V6 соответственно; трубы, соединяющие выход третьего бака со входом четвертого и пятого бака снабжены краном V9 и V10 соответственно. Выходные трубы системы снабжены выходными кранами V13 и V14. Подача воды в систему контролируется кранами V1input, V2input, V3input, V7input, которые открываются мгновенно и скорость входного потока воды определяется как (л/час). Краны V5, V6, V9, V10, V13 V14 являются медленными устройствами и открываются и закрываются с одной о той же постоянной скоростью, так что от момента начала открытия (закрытия) до полного открытия (закрытия) требуется S=85 сек. Их открытие и закрытие контролируется задвижкой, меняющей свое положение от значения P=0 (полное закрытие в условных единицах) до P=S (полное открытие).

Управление открытием/закрытием кранов осуществляется неким устройством, называемым контроллером и также входит в описываемую систему.

Схема моделирования представлена на рис. 4.12.

Р и с. 4.12. Схема для моделирования

 

Имеется модель работы системы управления протеканием воды через емкости, в виде цилиндрических баков, расположенных на разной высоте (файл Level.mdl). Регулирование уровней в баках осуществляется за счет открытия и закрытия кранов. В исходном состоянии все краны закрыты и все баки пусты. В начальный момент контроллер посылает сигнал входным кранам V1input, V2input, V3input, те мгновенно открываются и в течение времени Time1 [сек] наполняется только первый и второй баки. По истечении времени Time1 контроллер посылает команду открыть краны V5 и V6 и вода начинает поступать в третий бак. В это же время контроллер посылает сигнал на открытие крана V7input. Второе состояние сохраняется на протяжении Time2 [сек]. По истечении времени Time2 контроллер посылает команду открыть краны V9 и V10 и вода начинает поступать в четвертый и пятый баки. Третье состояние сохраняется на протяжении Time3 [сек]. По истечении времени Time3 начинает контролироваться положение кранов V13 и V14. А именно, если контроллер обнаруживает, что уровень воды, например, в четвертом баке опустился ниже значения L1_minus [м], поступает команда закрыть выходной кран, если вода в четвертом баке превышает уровень L1_plus [м] – выдается команда открыть выходной кран. В пятом баке происходит все аналогично (уровни L2_minus и L2_plus) Аварийными считаются ситуации, когда переполняется один из баков или происходит периодическое открытие и закрытие выходного крана. Нормальным режимом системы считается состояние, когда все краны открыты, и вода протекает через систему с постоянной скоростью.

Порядок выполнения работы

1. Ознакомиться со всеми пунктами методических указаний.

2. Запустить файл Level.mdl, представляющий собой модель системы из пяти баков.

3. Необходимо смоделировать систему при условиях, отображенных в табл. 4.1., согласно варианту.

Таблица 4.1

Условия работы системы

№ варианта Time1   Time2   Time3   L1_plus   L1_min   L2_plus   L2_min  
        0.94 0.2 0.98 0.12
        0.94 0.3 0.98 0.23
        0.94 0.2 0.98 0.12
        0.94 0.3 0.98 0.23
        0.94 0.2 0.98 0.12
        0.96 0.35 0.95 0.23
        0.96 0.2 0.95 0.12
        0.96 0.3 0.95 0.23
        0.96 0.25 0.95 0.12
        0.96 0.3 0.95 0.23

 

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

5. Разработать SF-диаграмму, описывающую работу контроллера, управляющего открытием и закрытием кранов по следующему алгоритму.

6. Установите параметры моделирования.

7. Запустите модель и проанализируйте полученные результаты.

8. Покажите преподавателю результаты работы.

Содержание отчета

1. Номер, название и цель работы.

2. Задание на выполнение лабораторной работы, согласно варианту.

3. Модель системы и отлаженная SF-диаграмма.

4. Результаты отладки модели.

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

6. Выводы по выполненной работе.

7. Ответы на контрольные вопросы.

Контрольные вопросы

1. Для каких целей предназначена программа Stateflow?

2. Из каких компонентов состоит Stateflow?

3. Дайте определение понятию «состояние объекта»?

4. Назовите существующие типы состояний?

5. Что отображают «переходы» от одного объекта к другому?

6. Назовите существующие типы событий?

7. Какова общая структура «состояния»?

8. В чем отличие логических ошибок от синтаксических при отладке SF-диаграмм?

9. Назовите средства отладки SF-диаграмм?

10. Какие должны быть заданы условия срабатывания, чтобы работа модели, задаваемая картой поведения, не началась и окончилась «в одно мгновение»?

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

12. Что представляет собой интерактивное вмешательство в работу модели?

13. Опишите алгоритм работы системы.

Лабораторная работа № 5

МОДЕЛИРОВАНИЕ РАБОТЫ САР НА ОСНОВЕ АДАПТИВНОЙ СИСТЕМЫ НЕЙРОНЕЧЕТКОГО ВЫВОДА ANFIS В СРЕДЕ MATLAB

Цель работы:

ü изучить основные понятия гибридных сетей и средства их разработки, предоставляемые системой MATLAB;

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

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...