Выполните график после трансляции события или заданного времени
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 миллисекунда. Для получения дополнительной информации см. раздел События в автономных диаграммах.
The timer
создается, когда график завершает выполнение entry
действия связанного состояния и его подсостояний. Если вы задаете n
как выражение, значение которого изменяется во время выполнения диаграммы, график не корректирует временную задержку timer
объект.
The timer
объект начинает запускаться в конце шага графика, когда связанное состояние становится активным. Этот шаг может включать в себя выполнение других параллельных состояний на графике.
Если график обрабатывает другую операцию, когда он получает неявное событие от timer
объект, график помещает событие в очередь. Когда текущий шаг завершен, график обрабатывает событие.
Если состояние, сопоставленное с оператором временной логики, становится неактивным, прежде чем график обработает неявное событие, событие не пробуждает график.
Можно использовать кавычки, чтобы заключить ключевые слова 'tick'
, 'sec'
, 'msec'
, и 'usec'
. Для примера, after(5,'tick')
эквивалентно after(5,tick)
.
Диаграмма Stateflow сбрасывает счетчик, используемый after
оператор каждый раз, когда связанное состояние повторно активируется.
Время для абсолютно-временных логических операторов зависит от типа диаграммы Stateflow:
Графики в модели Simulink задают абсолютную временную логику с точки зрения времени симуляции.
Автономные диаграммы в MATLAB определяют временную логику в абсолютном времени с точки зрения времени настенного времени, которая ограничена точностью 1 миллисекунда.
Различие во времени может повлиять на поведение графика. Например, предположим, что этот график выполняет during
действие состояния A
.
В модели Simulink функция вызывает f
выполняется за один временной шаг и не способствует времени симуляции. Переход от состояния A
в состояние B
происходит при первом пробуждении графика и ее состоянии A
активен не менее 2 секунд. Значение, отображаемое entry
действие в состоянии B
зависит только от размера шага, используемого решателем Simulink.
На автономной диаграмме вызов функции f
может занять несколько секунд настенного времени. Если вызов длится более двух секунд, график помещает неявное событие, сопоставленное со after
оператор. Переход от состояния A
в состояние B
происходит, когда функция f
завершает выполнение. Значение, отображаемое entry
действие в состоянии B
зависит от времени вызова функции f
принимает, чтобы завершить.