every

Выполняйте график через регулярные интервалы

Описание

пример

every(n,E) возвращает true на каждом nth вхождение события E поскольку связанное состояние стало активным. В противном случае оператор возвращается false.

пример

every(n,tick) возвращает true на каждом nth время, когда график просыпается с тех пор, как связанное состояние стало активным. В противном случае оператор возвращается false.

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

пример

every(n,sec) возвращает true каждый n с тех пор как связанное состояние стало активным. В противном случае оператор возвращается false.

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

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

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

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

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

Примечание

Использование every как абсолютный временной логический оператор поддерживается только в автономных диаграммах в MATLAB. В графиках в моделях Simulink используйте внешний переход с самоциклом со after вместо этого оператор. Для получения дополнительной информации смотрите Не использовать каждый для Абсолютно-временной временной логики в Графики в Simulink Модели.

Примеры

расширить все

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

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

Stateflow chart that uses the every operator in a state.

Переход из связанного состояния, когда график обрабатывает каждое пятое вещание события E после того, как состояние стало активным.

every(5,E)

Stateflow chart that uses the every operator in a transition.

Переход из связанного состояния каждый седьмой tick событие, поскольку состояние стало активным, но только если переменная temp больше 98,6.

every(7,tick)[temp > 98.6]

Stateflow chart that uses the every operator in a transition.

Увеличьте temp Переменная на 5 каждые 12,3 секунды, когда состояние активно.

В автономных диаграммах в MATLAB введите:

on every(12.3,sec):
   temp = temp+5;

Stateflow chart that uses the every operator in a state.

Использование every как абсолютный временной логический оператор не поддерживается в графиках в моделях Simulink.

Совет

  • Можно использовать кавычки, чтобы заключить ключевые слова 'tick' и 'sec'. Для примера, every(5,'tick') эквивалентно every(5,tick).

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

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

Введенный в R2014b