Активируйте диаграмму 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, не является допустимым возрастающим триггером ребра.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Simulink model that uses two signals of type double as input events to a Stateflow chart.

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

Simulink model that uses a signal of type boolean and a signal of type double as input events to a Stateflow chart. This configuration produces a run-time error.

Похожие темы