Добавление переходов

Создайте его сами или используйте предоставленную модель

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

addpath(fullfile(docroot, 'toolbox', 'stateflow', 'gs', 'examples'))
Stage4Transitions

Конструктивные соображения для определения переходов между состояниями

Следующие разделы описывают решения, которые вы принимаете для определения изменений состояния.

Решение, как и когда перейти между рабочими режимами

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

Переходы имеют направление и представлены в графике Stateflow® строками с наконечниками стрелки. Переходы однонаправлены, не двунаправлены. Необходимо добавить переход для каждого направления потока между двумя состояниями.

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

Как правило, параллель (AND), состояния не требуют переходов, потому что они выполняются одновременно.

Воздушный Контроллер график моделирует систему, в которой степень может циклически повториться на и прочь и, в то время как степень включена, вентиляторы, может циклически повториться на и прочь. Шесть исключительных (OR) состояния представляют эти рабочие режимы. Чтобы смоделировать это действие, необходимо добавить следующие переходы между исключительным (OR) состояния:

  • PowerOff к PowerOn

  • PowerOn к PowerOff

  • FAN1.Off к FAN1.On

  • FAN1.On к FAN1.Off

  • FAN2.Off к FAN2.On

  • FAN2.On к FAN2.Off

Решение, куда поместить переходы по умолчанию

Хорошая практика проекта требует, чтобы вы задали переходы по умолчанию для исключительного (OR) состояния на каждом уровне иерархии. Переходы по умолчанию указывают, который исключительный (OR) состояние должно быть активным, когда существует неоднозначность между двумя или больше исключительными (OR) состояния на том же уровне в иерархии Stateflow. Существует три таких области неоднозначности в Воздушном Контроллере график:

  • Когда график просыпается, степень должна быть включена или прочь?

  • Когда FAN1 становится активным, он должен быть включен или прочь?

  • Когда FAN2 становится активным, он должен быть включен или прочь?

В каждом случае начальное состояние должно быть прочь, таким образом, вы добавите переходы по умолчанию к состояниям PowerOff, FAN1.Off и FAN2.Off.

Решение, как охране переходы

Защита перехода означает задавать условие, действие или событие, которое позволяет переходу быть взятым от одного состояния до другого. На основе проекта Воздушного Контроллера график вот требования для защиты переходов от одного исключительного рабочего режима до другого:

ПереходКогда это должно произойти?Как охране это

PowerOff к PowerOn

В интервалах постоянного времени

Задайте запускаемое фронтом событие

PowerOn к PowerOff

FAN1.Off к FAN1.On

Когда температура материальной части повышается выше 120 градусов

Задайте условие на основе температурного значения

FAN1.On к FAN1.Off

Когда температура материальной части падает ниже 120 градусов

FAN2.Off к FAN2.On

Когда температура повышается выше 150 градусов, порог, указывающий, что первый вентилятор не обеспечивает необходимое количество охлаждения

FAN2.On к FAN2.Off

Когда температура падает ниже 150 градусов

Рисование переходов между состояниями

В Конструктивных соображениях для Определения Переходов Между состояниями вы узнали, что следующие переходы происходят в Воздушном Контроллере график:

  • Степень для системы управления может циклически повториться на и прочь.

  • Каждый вентилятор может циклически повториться на и прочь.

Вы смоделируете это действие путем рисования переходов между PowerOn и состояниями PowerOff и между On и состояниями Off для каждого вентилятора. Выполните эти шаги:

  1. Откройте модель Stage3Actions — или та, которую вы создали в предыдущих упражнениях или предоставленной модели для этапа 3.

    Чтобы открыть предоставленную модель, введите следующую команду в посдказке MATLAB:

    addpath(fullfile(docroot, 'toolbox', 'stateflow', 'gs', 'examples'))
    Stage3Actions

  2. Сохраните модель как Stage4Transitions в вашей локальной папке работы.

  3. В Stage4Transitions дважды кликните блок Air Controller, чтобы открыть диаграмму Stateflow.

    График открывается на вашем рабочем столе.

  4. Чертите переходы между PowerOff к состояниям PowerOn:

    1. Переместите указатель через верхний край PowerOff до изменений формы указателя в кресте нитей.

    2. Удерживайте левую кнопку мыши, перетащите указатель к базовому краю PowerOn и выпустите мышь.

      Необходимо видеть, что переход указывает от PowerOff до PowerOn:

    3. Выполните ту же процедуру, чтобы чертить переход от PowerOn до PowerOff.

      Ваш график должен теперь выглядеть так:

  5. Выполните процедуру, описанную на шаге 3, чтобы чертить следующие переходы между Off и состояниями On для каждого вентилятора:

    • Переход от Off до On в FAN1

    • Переход от On до Off в FAN1

    • Переход от Off до On в FAN2

    • Переход от On до Off в FAN2

    Ваш график должен теперь выглядеть так:

  6. Сохраните Stage4Transitions, но оставьте график открытым для следующего осуществления.

Добавление переходов по умолчанию

В Решении, Где к Переходам Плэйс-Дефо, вы узнали, что необходимо добавить переходы по умолчанию к PowerOff, FAN1.Off и FAN2.Off. Выполните эти шаги:

  1. В редакторе Stateflow щелкните левой кнопкой по значку перехода по умолчанию в объектной палитре:

  2. Переместите указатель в область рисунка.

    Указатель изменяется на диагональную стрелку.

  3. Поместите указатель на левом крае состояния PowerOff.

  4. Когда стрелка станет ортогональной к ребру, отпустите кнопку мыши.

    Переход по умолчанию присоединяет к состоянию PowerOff. Это появляется как направленная строка со стрелкой в своей голове и закрытом хвосте:

  5. Повторите ту же процедуру, чтобы добавить переходы по умолчанию в верхних краях FAN1.Off и FAN2.Off.

    Ваш график должен теперь выглядеть так:

    Совет

    Местоположение хвоста перехода по умолчанию определяет состояние, которое это активирует. Поэтому убедитесь, что ваш переход по умолчанию соответствует полностью в родительском элементе состояния, которое это активирует. В Воздушном Контроллере график, изображенный выше, заметьте, что переход по умолчанию для FAN1.Off правильно находится в метрополии, FAN1. Теперь рассмотрите этот график:

    В этом примере хвост перехода по умолчанию находится в PowerOn, не в FAN1. Поэтому это активирует FAN1 вместо FAN1.Off.

  6. Сохраните Stage4Transitions, но оставьте график открытым для следующего осуществления.

Добавление условий к переходам охраны

Условия являются выражениями, заключенными в квадратные скобки, которые оценивают к TRUE или FALSE. Когда условие верно, переход взят к целевому состоянию; когда условие является ложным, переход не взят, и состояние источника остается активным.

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

Выполните эти шаги:

  1. Кликните по переходу от FAN1.Off до FAN1.On.

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

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

  3. Введите следующее выражение:

    [temp >= 120]

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

  4. Повторите эти шаги, чтобы добавить следующие условия в другие переходы в FAN1 и FAN2:

    ПереходУсловие
    FAN1.On к FAN1.Off[временный файл <120]
    FAN2.Off к FAN2.On[временный файл> = 150]
    FAN2.On к FAN2.Off[временный файл <150]

    Ваш график должен выглядеть так:

  5. Сохраните Stage4Transitions, но оставьте график открытым для следующего осуществления.

Добавление Событий к переходам охраны

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

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

Выполните эти шаги, чтобы задать запускаемое фронтом событие и сопоставить его с переходами:

  1. В редакторе Stateflow добавьте входное событие путем выбора Chart> Add Inputs & Outputs> Event Input From Simulink.

    Диалоговое окно свойств Event открывается на вашем рабочем столе:

    Обратите внимание на то, что событие присвоено инициировать порт 1.

  2. Отредактируйте следующие свойства:

    СвойствоЧто задать
    ИмяПоменяйте имя на SWITCH.
    ТриггерВыберите Either из выпадающего меню, таким образом, событие может быть инициировано или возрастающим ребром или падающим ребром сигнала.
  3. Нажмите OK, чтобы записать изменения и закрыть диалоговое окно.

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

    Когда вы задаете одно или несколько входных событий для графика, программное обеспечение Stateflow добавляет один триггерный порт в блок. Внешние блоки Simulink® могут инициировать входные события через сигнал или вектор сигналов, соединенных с триггерным портом.

  5. Назад в редакторе Stateflow, сопоставьте входное событие SWITCH с переходами:

    1. Выберите переход от PowerOff до PowerOn и кликните по вопросительному знаку, чтобы получить текстовый курсор.

    2. Введите имя события, которое вы только задали, SWITCH.

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

    3. Повторите эти шаги, чтобы добавить то же событие, SWITCH, к переходу от PowerOn до PowerOff.

    Ваш график должен теперь выглядеть примерно так:

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

    Обратите внимание на то, что модель sf_aircontrol уже задала импульсный SWITCH сигнала в блоке Signal Builder в верхнем уровне иерархии модели:

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

  6. Сохраните Stage4Transitions.

Куда пойти затем.  Теперь вы готовы реализовать запускаемое фронтом событие, чтобы разбудить график равномерно. Смотрите Реализацию Триггеров.