exponenta event banner

каждый

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

Описание

пример

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

пример

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

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

пример

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

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

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

  • 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