Временная логика управляет выполнением графика в терминах времени. В актах государственной власти и переходах, можно использовать два типа временной логики: основанный на событии и абсолютно-разовый. Основанная на событии временная логика отслеживает повторяющееся событие. Абсолютно-разовая временная логика задает периоды времени на основе времени симуляции вашего графика. Чтобы работать с этими повторяющимися событиями или временем симуляции, вы используете названные временные логические операторы встроенных функций.
Временные логические операторы могут появиться в только:
Акты государственной власти
Переходы, которые происходят из состояний
Сегменты перехода, которые происходят из соединений, когда весь путь к переходу соединяет два состояния
Это ограничение означает, что вы не можете использовать временные логические операторы в переходах по умолчанию или переходах блок-схемы.
Каждый временный логический оператор имеет ассоциированную страну, которая является состоянием, в котором появляется действие или из которого происходит переход.
Используйте обозначение события, чтобы выразить основанную на событии временную логику в актах государственной власти. Смотрите Обозначение для Основанной на событии Временной Логики.
Можно использовать любое явное или неявное событие в качестве основного события для темпорального оператора. Основное событие является повторяющимся событием, с которым работает темпоральный оператор.
Для графика без входных событий можно использовать tick
событие, чтобы обозначить неявное событие графика пробуждение.
Используйте одно из ключевых слов sec
, msec
, или usec
задать время симуляции в секундах, миллисекундах, или микросекунды, которые протекли начиная с активации состояния. Эти ключевые слова допустимы только в актах государственной власти и в переходах, которые происходят из состояний.
Используйте абсолютно-разовую временную логику вместо неявного tick
событие по этим причинам:
Задержите выражения, что абсолютно-разовая временная логика использования независима от шага расчета модели. Однако tick
событие зависит от шага расчета.
Абсолютно-разовая временная логика работает в графиках, которые имеют входные события вызова функции. tick
событие не работает в графиках с входными параметрами вызова функции.
Для основанной на событии временной логики используйте операторы, описанные в этой таблице.
Оператор | Синтаксис | Описание |
---|---|---|
after |
| Возвращает В графике без входных событий, Сбрасывает счетчик для |
в |
| Возвращает В графике без входных событий, Сбрасывает счетчик для |
прежде |
| Возвращает В графике без входных событий, Сбрасывает счетчик для |
каждый |
| Возвращает В графике без входных событий, Сбрасывает счетчик для |
temporalCount |
| Шаг 1 и возвращает положительное целочисленное значение для каждого вхождения основного события В графике без входных событий, Сбрасывает счетчик для |
Можно использовать кавычки, чтобы заключить ключевое слово 'tick'
. Например, after(5,'tick')
эквивалентно after(5,tick)
.
Временные логические операторы сравнивают порог n
к внутреннему счетчику целочисленного типа. Если n
номер фиксированной точки, заданный или при помощи наклона, который не является целочисленной степенью двойки или ненулевым смещением, затем сравнение может дать к неожиданным результатам из-за округления. Для получения дополнительной информации смотрите Реляционные операции для Данных Фиксированной точки.
Эти примеры иллюстрируют использование основанной на событии временной логики в актах государственной власти и переходах.
Оператор | Использование | Пример | Описание |
---|---|---|---|
| Акт государственной власти ( |
| Сообщение о состоянии появляется во время каждого |
| Переход |
| Переход из ассоциированной страны происходит только на широковещательной передаче |
| Акт государственной власти ( |
|
|
| Переход |
| Переход из ассоциированной страны происходит только на широковещательной передаче |
| Акт государственной власти ( |
| Сообщение о состоянии появляется точно в 10 |
| Переход |
| Переход из ассоциированной страны происходит только на широковещательной передаче |
| Акт государственной власти ( |
| Сообщение о состоянии появляется каждые 5 |
| Акт государственной власти ( |
| Это действие считает и возвращает целое число меток деления, которые протекли начиная с активации состояния. Затем действие присваивает переменной |
Можно использовать одно из двух обозначений, чтобы выразить основанную на событии временную логику.
Используйте обозначение события, чтобы задать акт государственной власти или условие перехода, которое зависит только от основного события.
Обозначение события следует за этим синтаксисом:
tlo(n,E)[C]
где
tlo
булев временный логический оператор (after
, before
, at
, или every
)
n
количество вхождения оператора
E
основное событие оператора
C
дополнительное выражение условия
Используйте условное обозначение, чтобы задать условие перехода, которое зависит от основных и неосновных событий.
Условное обозначение следует за этим синтаксисом:
E1[tlo(n,E2) && C]
где
E1
любое неосновное событие
tlo
булев временный логический оператор (after
, before
, at
, или every
)
n
количество вхождения оператора
E2
основное событие оператора
C
дополнительное выражение условия
Обозначение | Использование | Пример | Описание |
---|---|---|---|
Событие | Акт государственной власти ( |
|
|
Событие | Переход |
| Переход из ассоциированной страны происходит если |
Условное выражение | Переход |
| Переход из ассоциированной страны происходит только на широковещательной передаче |
Необходимо использовать обозначение события в актах государственной власти, потому что синтаксис актов государственной власти не поддерживает условное обозначение.
Для абсолютно-разовой временной логики используйте операторы, описанные в этой таблице.
Оператор | Синтаксис | Описание |
---|---|---|
after |
| Возвращает Сбрасывает счетчик для |
прежде |
| Возвращает Сбрасывает счетчик для |
каждый |
| Возвращает Сбрасывает счетчик для Использование |
temporalCount |
| Количества и возвращают номер заданных секунд ( Сбрасывает счетчик для |
прошедший |
| Эквивалентный Сбрасывает счетчик для |
количество |
| Возвращает количество меток деления после условного выражения, В модели Simulink®, значении для |
длительность |
| Возвращает номер секунд после условного выражения, |
Можно использовать кавычки, чтобы заключить ключевые слова 'sec'
, 'msec'
, и 'usec'
. Например, after(5,'sec')
эквивалентно after(5,sec)
.
Временные логические операторы сравнивают порог n
к внутреннему счетчику целочисленного типа. Если n
номер фиксированной точки, заданный или при помощи наклона, который не является целочисленной степенью двойки или ненулевым смещением, затем сравнение может дать к неожиданным результатам из-за округления. Для получения дополнительной информации смотрите Реляционные операции для Данных Фиксированной точки.
Эти примеры иллюстрируют абсолютно-разовую временную логику в актах государственной власти и переходах.
Оператор | Использование | Пример | Описание |
---|---|---|---|
| Акт государственной власти ( |
| После 12,3 секунд времени симуляции начиная с активации состояния, |
| Переход |
| После того, как 8 миллисекунд времени симуляции передали начиная с активации состояния происходит переход из ассоциированной страны. |
| Переход |
| После того, как 5 микросекунд времени симуляции передали начиная с активации состояния происходит переход из ассоциированной страны. |
| Переход |
| Если переменная |
| Акт государственной власти ( |
| Это действие считает и возвращает номер секунд времени симуляции, которые передают между активацией и деактивацией состояния. |
Этот график непрерывного времени задает две абсолютных задержки переходов.
Стройте диаграмму выполнение состоит из этих шагов:
Когда график просыпается, Input
состояния активируется сначала.
После 5,33 миллисекунд времени симуляции, перехода от Input
к Output
происходит.
Input
состояния деактивируется, и затем
Output
состояния активируется.
После 10,5 секунд времени симуляции, перехода от Output
к Input
происходит.
Output
состояния деактивируется, и затем
Input
состояния активируется.
Шаги 2 - 5 повторяются, пока симуляция не заканчивается.
Если график имеет дискретный шаг расчета, любое действие в графике происходит в целочисленных множителях этого шага расчета. Например, предположите, что вы изменяете параметры конфигурации так, чтобы решатель Simulink® использовал фиксированный шаг размера 0,1 секунды. Затем первый переход от Input
состояния утверждать
Output
происходит в t = 0,1 секунды. Это поведение применяется, потому что решатель не будит график в точно t = 5,33 миллисекунд. Вместо этого решатель будит график в целочисленных множителях 0,1 секунд, таких как t = 0,0 и 0,1 секунды.
В этой модели блок Step предоставляет модульный вход шага графику.
График определяет когда вход u
равняется 1:
Если вход равняется 1 прежде t = 2 секунды, переход происходит от Start
к Fast
.
Если вход равняется 1 между t = 2 и t = 5 секунд, переход происходит от Start
к Good
.
Если вход равняется 1 после t = 5 секунд, переход происходит от Start
к Slow
.
Можно использовать абсолютно-разовую временную логику в графике, который находится в условно выполняемой подсистеме. Когда подсистема отключена, график становится неактивным, и временный логический оператор делает паузу, в то время как график спит. Оператор не продолжает считать время симуляции, пока подсистема не повторно включена, и график бодрствует.
Эта модель имеет активированную подсистему со Штатами при включении набора параметра к held
.
Подсистема содержит график, который использует after
оператор.
Блок Signal Builder предоставляет входному сигналу эти характеристики:
Сигнал включает подсистему в t = 0.
Сигнал отключает подсистему в t = 2.
Сигнал повторно включает подсистему в t = 6.
Этот график показывает, что общее время протекло в активированном состоянии (любой A
или B
).
Когда входной сигнал включает подсистему во время t = 0, A
состояния становится активным, или включил. В то время как состояние активно, время протекло увеличения. Однако, когда подсистема отключена в t = 2, график засыпает и
A
состояния становится неактивным.
Для 2 <t <6, время, истекшее в активированном состоянии, остается замороженным в 2 секунды, потому что никакое состояние не активно. Когда график просыпается в t = 6, A
состояния становится активным снова, и истекшее время начинает увеличиваться. Переход от
A
состояния утверждать B зависит от времени, истекшего в то время как
A
состояния включен, не на времени симуляции. Поэтому
A
состояния остается активен до t = 9, так, чтобы время протекло в тот общие количества состояния 5 секунд.
Когда переход от A
к B
происходит в t = 9, выходное значение y
изменения от 0 до 1.
Это поведение модели применяется только к подсистемам, где вы устанавливаете Разрешать состояния параметров блоков при включении к held
. Если вы устанавливаете параметр на reset
, график повторно инициализирует полностью, когда подсистема повторно включена. Другими словами, переходы по умолчанию выполняются и любой временный логический сброс счетчиков к 0.
Они семантика также применяются к before
оператор.
after
Оператор, чтобы заменить at
ОператорЕсли вы используете at
оператор с абсолютно-разовой временной логикой, сообщение об ошибке появляется, когда вы пытаетесь симулировать свою модель. Используйте after
оператор вместо этого.
Предположим, что вы хотите задать задержку с помощью перехода at(5.33, sec)
.
Измените переход к after(5.33, sec)
, как показано в этом графике.
after
Оператор, чтобы заменить every
ОператорВ модели Stateflow, если вы используете every
оператор с абсолютно-разовой временной логикой, сообщение об ошибке появляется, когда вы пытаетесь симулировать свою модель. Используйте внешний переход самоцикла с after
оператор вместо этого.
Предположим, что вы хотите распечатать сообщение о состоянии для активного состояния каждые 2.5 секунды во время выполнения графика, как показано в акте государственной власти Check_status
.
Замените акт государственной власти на внешний переход самоцикла, как показано в этом графике.
Также добавьте соединение истории в состоянии так, чтобы график помнил настройки состояния до каждого перехода самоцикла. Смотрите Действие состояния Записи при помощи Соединений Истории.
Код сгенерировал для дискретных графиков, которые не являются в целочисленных счетчиках использования инициированной или активированной подсистемы, чтобы отследить время вместо Simulink, обеспеченного время. Это допускает более эффективную генерацию кода в терминах издержек и памяти, а также разрешающий этот код для использования в программном обеспечении в цикле (SIL) и процессоре в цикле (PIL) режимы симуляции. Для получения дополнительной информации см. SIL и PIL симуляции (Embedded Coder).
после | в | прежде | количество | длительность | прошедший | каждый | temporalCount