after

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

Описание

пример

after(n,E) возвращает true если событие E произошел, по крайней мере, n времена, поскольку ассоциированная страна стала активной. В противном случае оператор возвращает false.

пример

after(n,tick) возвращает true если график разбудил, по крайней мере, n времена, поскольку ассоциированная страна стала активной. В противном случае оператор возвращает false.

Неявное событие tick не поддерживается когда Stateflow® стройте диаграмму в Simulink® модель ввела события.

пример

after(n,time_unit) возвращает true если, по крайней мере, n модули времени протекли, поскольку ассоциированная страна стала активной. В противном случае оператор возвращает false.

В графиках в модели Simulink задайте time_unit как секунды (sec), миллисекунды (msec), или микросекунды (usec). Если вы задаете n как выражение, график настраивает временную задержку как значение изменений выражения во время симуляции.

В автономных диаграммах в MATLAB®, задайте n со значением, больше, чем или равный 0.001 и time_unit как секунды (sec). Оператор создает timer MATLAB объект, который генерирует неявное событие, чтобы разбудить график. MATLAB timer объекты ограничиваются 1 точностью миллисекунды. Для получения дополнительной информации смотрите События в Автономных диаграммах.

  • timer объект создается, когда график закончил выполнять entry действия ассоциированной страны и ее подсостояний. Если вы задаете n как выражение, изменения значения которого во время выполнения графика, график не настраивает временную задержку timer объект.

  • timer объект начинает запускаться в конце шага графика, когда ассоциированная страна становится активной. Этот шаг может включать выполнение других параллельных состояний в графике.

  • Если график обрабатывает другую операцию, когда это получает неявное событие от timer объект, график ставит событие в очередь. Когда текущий шаг завершается, график обрабатывает событие.

  • Если состояние, сопоставленное с временным логическим оператором, становится неактивным, прежде чем график обработает неявное событие, событие не будит график.

Примеры

развернуть все

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

on after(3,E):
   disp('ON');

Stateflow chart that uses the after operator in a state.

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

after(5,E)

Stateflow chart that uses the after operator in a transition.

Переход из ассоциированной страны, если состояние было активно по крайней мере для пяти широковещательных сообщений события E.

В графиках в модели Simulink, введите:

[after(5,E)]

Stateflow chart that uses the after operator in a transition.

Условное обозначение для временных логических операторов не поддерживается в автономных диаграммах в MATLAB.

Переход из ассоциированной страны, когда график просыпается, по крайней мере, в седьмой раз начиная с состояния, стал активным, но только если переменная temp больше 98.6.

after(7,tick)[temp > 98.6]

Stateflow chart that uses the after operator in a transition.

Установите temp переменная к LOW каждый раз, когда график просыпается, начиная, когда ассоциированная страна активна в течение по крайней мере 12,3 секунд.

on after(12.3,sec):
   temp = LOW;

Stateflow chart that uses the after operator in a state.

Советы

  • Можно использовать кавычки, чтобы заключить ключевые слова 'tick'секунда, 'msec', и 'usec'. Например, after(5,'tick') эквивалентно after(5,tick).

  • Диаграмма Stateflow сбрасывает счетчик, используемый after оператор каждый раз ассоциированная страна повторно активирует.

  • Синхронизация для абсолютно-разовых временных логических операторов зависит от типа диаграммы Stateflow:

    • Графики в модели Simulink задают абсолютно-разовую временную логику в терминах времени симуляции.

    • Автономные диаграммы в MATLAB задают абсолютно-разовую временную логику в терминах тактового стеной времени, которое ограничивается 1 точностью миллисекунды.

    Различие в синхронизации может влиять на поведение графика. Например, предположите, что этот график выполняет during действие A состояния.

    Stateflow chart with two states. The during action in state A calls a function f. The transition to state B uses the expression after(2,sec). The entry action in state B displays the elapsed time.

    • В модели Simulink, вызове функции к f выполняется в одном временном шаге и не способствует времени симуляции. Переход от A состояния утверждать B происходит в первый раз, когда график просыпается и A состояния было активно в течение по крайней мере 2 секунд. Значение отображено entry действие в B состояния зависит только от размера шага, используемого решателем Simulink.

    • В автономной диаграмме, вызове функции к f может занять несколько секунд тактового стеной времени, чтобы завершиться. Если вызов длится больше чем две секунды, график ставит в очередь неявное событие, сопоставленное с after оператор. Переход от A состояния утверждать B происходит когда функциональный f выполнение концов. Значение отображено entry действие в B состояния зависит от времени вызов функции к f берет, чтобы завершиться.

Введенный в R2014b