С различными переходами можно создать графики Stateflow® в моделях Simulink®, которые генерируют код, который может использоваться во множестве различных ситуаций с программным обеспечением. Различные переходы позволяют вам моделировать полное подмножество изменений в одной диаграмме Stateflow так, чтобы можно было выбрать, какое изменение вы хотите, когда вы генерируете код или когда вы компилируете сгенерированный код.
Различные переходы охраняют параметры Simulink или переменные MATLAB® в условии и состояниях подключения в рамках вашего графика, которые являются изменениями от базовой конфигурации диаграммы. Различные условия перехода оценены во время компиляции кода или генерации кода вместо во времени выполнения. В дополнение к этому сгенерированный код только содержит элементы данных, должен был выполнить в настоящее время выбранную настройку программного обеспечения.
Стройте диаграмму изменения поддерживаются только в генерации кода. Диаграммы Stateflow, которые вы разрабатываете с различными переходами, симулируют, согласно которому фрагмент вашего графика активен.
Различные переходы не могут использоваться в сочетании с действиями с путями к переходу по умолчанию состояния или графика.
Различные настройки варианта connect переходов к вашей базовой диаграмме Stateflow. Различные настройки только активны, когда различное условие перехода верно.
В этом примере вы добавите различные настройки в основную систему управления, которая включает и выключает лампу. Различные настройки позволяют лампе потускнеть несколькими способами. Если вы добавляете в различных настройках к своей диаграмме Stateflow, можно принять решение сгенерировать код для любой настройки.
Первоначально, ваша диаграмма Stateflow включает два состояния, Off
и On
. Свет включает когда событие, SWITCH_ON
, отправляется в график. Свет выключает когда событие, SWITCH_OFF
, отправляется в график.
Некоторые лампы имеют способность, которая будет недоступна. В том подмножестве существуют лампы, которые могут быть установлены высоко или низко и лампы, которые могут только быть установлены на High, носитель, или низко. Чтобы добавить эти возможности в диаграмму Stateflow, вы добавляете в трех изменениях: Dimmer1
, Dimmer2
, и NoDimmer
. Dimmer1
имеет три подсостояния, High
, Medium
, и Low
. Dimmer2
имеет два подсостояния, High
и Low
.
Запись в различные настройки охраняет условие перехода, которое использует параметр Simulink или переменную MATLAB, которая задана в базовом рабочем пространстве. Чтобы изменить переход к различному переходу, кликните по переходу. Во вкладке Transition выберите Variant Transition. Переход появляется на графике с # символом, который указывает, что переход является различным переходом.
В этом примере различные настройки охраняет условие параметром Simulink. В этом случае, HAS_DIMMER1
объект параметра. Для различной настройки, чтобы быть активным, условие [HAS_DIMMER1 == 1]
должно быть верным. Для получения дополнительной информации о параметрах Simulink, смотрите Установленные Значения Параметров блоков (Simulink).
В процессе моделирования ваша диаграмма Stateflow выполняет только активный фрагмент вашей диаграммы Stateflow. Неактивный фрагмент появляется grayed на холсте Stateflow. Чтобы измениться, какой фрагмент графика в настоящее время активен, обновите параметр защиты в базовом рабочем пространстве.
У вас должны быть Simulink Coder™ или Embedded Coder®, чтобы сгенерировать код от вашей диаграммы Stateflow. По умолчанию сгенерированный код только содержит активный различный конечный автомат.
Если вы используете Embedded Coder, можно принять решение включать условный оператор препроцессора в сгенерированный код. В редакторе Stateflow, на вкладке Modeling, под Design Data, выбирают Property Inspector. Под Advanced выберите Generate preprocessor conditionals.
Для получения дополнительной информации о генерации кода, смотрите, Генерируют Код Используя Simulink® Coder™ (Simulink Coder) и Генерируют Код Используя Embedded Coder® (Embedded Coder).
Различный менеджер является центральным инструментом, который позволяет вам управлять различными настройками в своей системной модели. В редакторе Stateflow, на вкладке Modeling, под Design Data, выбирают Variant Manager.
Для получения дополнительной информации о Различном менеджере, см. Различный Обзор менеджера (Simulink).