exponenta event banner

после

Выполнение диаграммы после трансляции события или указанного времени

Описание

пример

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). Оператор создает MATLAB timer объект, генерирующий неявное событие для пробуждения диаграммы. 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', 'sec', '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