Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
StateFlow.doc
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
118.78 Кб
Скачать

Иерархия состояний

Цель работы: построение SF-диаграмм с иерархией состояний на примере простейшей модели управления автоматической коробкой передач автомобиля.

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

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

  2. Сформировать модель по описанию в разделе «практическая часть», изучить на модели функционирование процесса управления переключением передач.

  3. Выполнить индивидуальные задания. Составить отчет. Теоретическое введение

Stateflow представляет иерархию состояний с суперсостояниями и подсостояниями. Состояние называется подсостоянием, если оно находится внутри другого состояния. Состояние является суперсостоянием, если оно содержит другие состояния (подсостояния). Например, диаграмма Stateflow, представленная на рис. 3, имеет суперсостояние vkluch (передача включена), которое содержит три подсостояния: first (первая передача), second (вторая передача), third (третья передача). Суперсостояние vkluch - предок в иерархии по отношению к состояниям first, second, third.

Рис. 3. Последовательная декомпозиция состояний.

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

К состоянию можно применить декомпозицию, когда оно состоит из нескольких подсостояний. Для представления иерархии состояний существует несколько правил, в соответствии с которыми состояния группируются. Суперсостояние имеет параллельную (И) или последовательную (ИЛИ) декомпозицию. Параллельная (И) декомпозиция используется, если все состояния на данном уровне иерархии активны одновременно. Она отображается состояниями с пунктирными границами. Активность параллельных состояний независима. Последовательная (ИЛИ) декомпозиция отображается состояниями с непрерывными границами (см рис. 3). Эта декомпозиция используется в описании систем, режимы которых последовательны. На данном уровне иерархии в данное время может быть активным только одно состояние.

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

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

Подключаемые соединения Connective junction (точки принятия решений) представляют точки, в которых принимаются решения относительно выбора между альтернативными путями одного перехода. Подключаемые соединения позволяют представить различные возможные пути для одного перехода. Соединения делят переходы на сегменты. В этом случае переход состоит из сегментов перехода и в процессе определения действительности всего перехода каждый сегмент анализируется по отдельности. Сегмент перехода - единичная ориентированная ветвь на диаграмме. В следующем примере на рис. 4 имеется два сегментированных перехода: один от состояния first к состоянию second, а другой - от состояния first обратно к состоянию first. Сегмент перехода от состояния к подключаемому соединению, а от него назад к тому же самому состоянию, называется циклическим переходом.

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

Переход - графический объект, который в большинстве случаев связывает один объект с другим. Переходы характеризуются метками. Метки переходов описывают обстоятельства, под действием которых система переходит из одного состояния к другому. Метка может включать в себя имя события, условие, действие условия и/или действие перехода. Метки перехода имеют следующий основной формат: event[condition]{condition_action}/transition_action. Любая часть метки может отсутствовать. Переход происходит при наступлении события, но с учетом истинности условия, если оно определено. Определение имени события необязательно. Если имя события не указано, то переход произойдет при наступлении любого события.

Условия - это булевы выражения, которые должны быть истинны для осуществления перехода. Условия заключаются в квадратные скобки ([]). На диаграмме Stateflow (см рис. 4) условие [v>=20] должно быть истинным для того, чтобы переход стал возможен. Если ни одно условие не определено, подразумеваемое условие принимается за истинное и действие выполняется.

Действия условий следуют за условиями и заключаются в фигурные скобки ({}). Они выполняются тогда, когда условие становится истинным, но перед тем, как переход осуществится. Если ни одно условие не определено, подразумеваемое условие принимается за истинное и действие выполняется.

Действия перехода обозначаются символом (/). Действия перехода выполняются после того, как переход стал возможен и при истинности условия, если оно определено. В примере, показанном на рис. 4, если условие истинно и состояние second достигнуто, осуществляется действие перехода Switch2. Если переход состоит из сегментов, действие перехода выполняется только когда становится возможен полный путь перехода. Переход, заканчивающийся в состоянии, может иметь действие условия (condition action) и действие перехода (transition action). Однако переходы, которые заканчиваются в соединениях, могут иметь только действия условий (не допускаются действия переходов).

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

Объекты – данные; используются, чтобы хранить числовые значения для применения в диаграмме Stateflow. Они являются неграфическими объектами и таким образом не представлены непосредственно в диаграмме Stateflow. Данные создаются и изменяются в Stateflow Explorer. Они могут быть созданы на любом уровне иерархии. Для того, чтобы добавить данные в проводник SF-диаграммы, необходимо:

1. Открыть проводник SF-диаграммы (Tools→Explore).

2. Выбрать объект (машину состояний, диаграмму, или состояние) в иерархии объекта проводника там, где необходимо поместить новый элемент.

3. Выбрать Data из меню проводника Add.

4. Установить параметры: имя данных (name), область действия (scope).

Есть несколько параметров для свойств области действия данных: Lokal (быть локальными для диаграммы Stateflow), Input from Simulink (поступать в Stateflow диаграмму от модели Simulink), Output to Simulink (выходить из Stateflow диаграммы в модель Simulink), Constant (быть константами).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]