Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Методичка Stateflow

.pdf
Скачиваний:
282
Добавлен:
16.04.2015
Размер:
775.52 Кб
Скачать

4.3. Внутренние переходы

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

Внутренний переход показан на рис. 10. Данная диаграмма эквивалентна диаграмме Stateflow системы с двумя переключателями, показанной на рис. 4. При первом обновлении диаграммы происходит переход по умолчанию в суперсостояние LightSys, затем сразу же следует переход по умолчанию в подсостояние UpUp. После этого, каждый раз при обновлениях диаграммы, происходит безусловный внутренний переход к соединительному переходу. Если какое-либо из указанных условий выполняется, происходит срабатывание соответствующего перехода. В противном случае, переход является не завершённым и текущее подсостояние остаётся активным. Следует заметить, что, если проверка значения Light не присутствует в каждом условии, при обновлении диаграммы будет происходить сначала выход из активного подсостояния, а затем повторный вход в него. Таким образом, при отсутствии проверки значения Light, поведение данной диаграммы будет совершенно отличным от поведения диаграммы Stateflow системы, состоящей из двух переключателей, показанной на рис. 4.

Рис. 10. Система, состоящая из двух переключателей, использующая внутренний переход

5. Начало работы

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

11

которой зависит от событий, которые происходят в модели системы Simulink, а именно: значение выходной переменной равно 1, когда значение входного сигнала u находится в диапазоне 0 ≤ u ≤ 0,5 и при этом значение u увеличивается, в противном случае выходная переменная равна 0. Процедура создания рассмотренной модели включает несколько этапов:

1)Создается новая модель в системе Simulink.

2)Формируется схема, приведенная на рисунке.

3)Производится задание параметров блоков схемы. При этом блок Hit Crossing с именем Cross zero rising настраивается следующим образом: в диалоговом окне блока в текстовом поле Hit crossing offset задается значение 0

изатем в списке Hit crossing direction выбирается пункт rising. Блок Cross 1/2 настраивается следующим образом: в текстовом поле Hit crossing offset задается 0.5 и в списке Hit crossing direction выбирается пункт either.

4)Блок Chart перемещается из библиотеки блоков подсистемы Stateflow в окно модели.

12

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

6) В окне модели размещаются два блока состояния. Для этого их необходимо переместить из панели пиктограмм в окно модели.

13

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

8)Аналогичным способом отрисовывается переход от верхнего блока состояния к нижнему.

9) Производится вставка в схему перехода по умолчанию. Для этого необходимо выбрать пиктограмму Default Transition, поместить указатель мыши на границу верхнего блока состояния и нажать левую кнопку мыши.

14

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

11)Выбирается мышью знак вопроса (при этом появляется курсор ввода текста) и вводится требуемый текст.

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

13) Задаются два события. Для этого необходимо выбрать команду Event меню Add окна Stateflow и в меню второго уровня выбрать команду Input from Simulink. В диалоговом окне Event настраиваются параметры события. Аналогичным образом добавляется второе событие с именем Cross-Half. При этом в диалоговом окне второго события в списке Trigger выбирается пункт Either edge. Следует обратить внимание, что в поле Index в диалоговом окне первого события содержит значение 1 и в диалоговом окне второго события – значение 2.

15

14) Задается выходной порт. Для этого необходимо выбрать команду Data меню Add окна Stateflow и в меню второго уровня выбрать команду Output to Simulink. В диалоговом окне Data задаются параметры и нажимается кнопка

ОК.

15) Следует заметить, что у блока Stateflow в Simulink появился триггерный входной порт и выходной порт. На триггерный входной порт подаётся вектор входной переменной, элементами которого являются события, порядок следования которых соответствует порядку, в котором они заданы в диаграмме Stateflow. Выходным сигналом является переменная InRange, которая определена в диаграмме Stateflow.

16

16) Далее в модели системы Simulink следует выполнить изображения блока на 180 градусов и завершить соответствующим образом формирование модели.

17) Затем выбирается команда Simulation Parameters меню Simulation и в диалогом окне Simulation Parameters на вкладке Solver производятся следующие настройки: в левом списке Type выбирается пункт Fixed Step, в правом списке Type выбирается пункт Discrete, в текстовом поле Fixed step size задаётся произвольное малое число, например, 0.004, в текстовом поле Stop time задается значение 20.0.

17

На этом процесс формирования модели можно считать завершенным. Для запуска процесса моделирования и просмотра результатов следует выполнить следующие действия:

1)Открыть диалоговое окно блока Scope.

2)Выбрать пиктограмму Simulation Parameters (или команду Start меню

Simulation).

После выполнения п. 2 последует задержка на несколько секунд, в течение которой система Simulink производит компиляцию диаграммы Stateflow, и затем начнется процесс моделирования. В ходе выполнения моделирования изображения переходов и состояний диаграммы Stateflow будут изменять свой цвет, по мере того как они становятся активными. По окончании процесса моделирования в окне блока Scope отображается график, приведенный на рис. 11.

Рис. 11. Выходной сигнал модели Stateflow

6. Отрисовка диаграммы Stateflow

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

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

18

6.1. Блоки состояний

Блоки состояний (и суперсостояний) отображаются в виде прямоугольников со скругленными краями с использованием соответствующих пиктограмм на панели инструментов. Для изменения размера изображения блока состояния следует выделить данный блок и переместить мышью его соответствующую грань или вершину.

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

1)Поместить блок состояния в окно диаграммы.

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

Чтобы удалить блок состояния, необходимо его выбрать и нажать клавишу

Delete.

6.2. Переходы

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

19

Чтобы переместить какой-либо конец перехода, необходимо выполнить следующие действия:

1) Указатель мыши помещается на тот конец перехода, который необходимо переместить. При этом указатель мыши принимает вид кружочка.

2) Конец ветви перехода перемещается в указанное положение. При этом новое расположение конца ветви перехода может быть как на том же самом блоке состояния, так и на другом блоке состояния.

Для изменения формы перехода необходимо переместить мышью любую точку ветви перехода. Для перемещения метки перехода её необходимо выделить и перемещением указателя мыши задать фиксированное положение.

6.3. Соединительные переходы

20