Активируйте диаграмму Stateflow путем отправки входных Событий

input event происходит вне графика Stateflow®, но видим только в том графике. Этот тип события позволяет другим блокам Simulink®, включая другие диаграммы Stateflow, уведомить определенный график событий, которые происходят снаружи. Задавать входное событие:

  1. Добавьте, что событие к диаграмме Stateflow, как описано в Задают События в Графике.

  2. Установите свойство Scope для события к Input from Simulink. Один триггерный порт появляется наверху блока Stateflow в модели Simulink.

  3. Входное событие может активировать диаграмму Stateflow через изменение в управляющем сигнале (триггер ребра) или вызов функции от блока Simulink.

    • Чтобы задать запускаемое фронтом входное событие, установите свойство Trigger на одну из этих опций:

      • Rising

      • Falling

      • Either

    • Чтобы задать входное событие вызова функции, установите свойство Trigger на Function call.

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

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

Активируйте диаграмму Stateflow при помощи триггеров ребра

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

Триггерный тип ребра

Описание

Rising

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

Falling

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

Either

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

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

Когда использовать запускаемое фронтом событие

Используйте запускаемое фронтом входное событие, чтобы активировать график, когда ваша модель потребует регулярного или периодического выполнения графика. Например, в модели sf_loop_scheduler, запускаемое фронтом входное событие активирует Ребро, чтобы Функционировать график равномерно. Для получения дополнительной информации см. Расписание Подсистема Многократно на Одном Шаге.

Поведение нескольких запускаемых фронтом входных Событий

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

Активируйте диаграмму Stateflow при помощи вызовов функции

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

Когда использовать входное событие вызова функции

Используйте входное событие вызова функции, чтобы активировать график, когда ваша модель потребует доступа к выходным данным из графика в том же временном шаге как вызов функции. Например, в модели sf_loop_scheduler, входное событие вызова функции активирует график Планировщика Цикличного выполнения. Для получения дополнительной информации см. Расписание Подсистема Многократно на Одном Шаге.

Поведение нескольких входных Событий вызова функции

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

Ассоциация входных Событий с управляющими сигналами

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

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

Типы данных, допускавшие входные События

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

Вы не можете мультиплексировать два входных сигнала различных типов данных, такие как boolean и double.

Похожие темы