Создайте пользовательские системы постановки в очередь с помощью диаграмм Stateflow дискретных событий

Блок Discrete-Event Chart похож на Stateflow® график, но используется для дискретных событий. Можно использовать блок для получения, обработки и отправки SimEvents® сущности. Блок Discrete-Event Chart обеспечивает графические переходы состояния и MATLAB® язык действий для создания пользовательских моделей SimEvents.

Отличительная характеристика блока Discrete-Event Chart заключается в том, что он выполняется на основе событий, а не времени. Чтобы смоделировать пользовательские системы дискретных событий, используйте следующие Discrete-Event Chart поведения блоков:

Примечание

С помощью программного обеспечения SimEvents можно просматривать, редактировать и симулировать Discrete Event Chart пользовательский блок в модели примера SimEvents. Однако, чтобы сохранить модель, вы должны иметь лицензию Stateflow.

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

Сущности, которые вы используете с дискретными графиками событий, могут быть объектами шины или анонимными сущностями.

Свойства дискретно-событийных Графиков

Свойства графика дискретных событий позволяют вам задать, как ваш график взаимодействует с Simulink® и SimEvents. Эти свойства являются подмножеством свойств диаграммы Stateflow.

Чтобы задать свойства для одного графика:

  1. Дважды кликните график.

  2. Щелкните правой кнопкой мыши открытую область графика и выберите Свойства.

    Все графики обеспечивают общие свойства и свойства документации.

  3. Обратите внимание, что график позволяет настраивать только эти свойства на вкладке General. Он также поддерживает вкладки Fixed-point properties и Documentation.

    Дополнительные сведения о свойствах графика см. в разделе «Задание свойств для диаграмм Stateflow» (Stateflow).

Примечание

SimEvents поддерживает только язык действий MATLAB и всегда поддерживает массивы переменного размера.

Определение локальных сообщений

Подобно диаграмме Stateflow, можно задать локальные сообщения для графика дискретных событий с помощью редактора Stateflow или Model Explorer.

Чтобы добавить локальное сообщение для графика дискретного события:

  1. Выберите Symbols Pane и Create Message.

  2. Выберите Local Message и переименуйте его в EntityOut.

  3. Чтобы задать свойства локальной очереди сообщений, такие как емкость, политика сортировки и поведение при переполнении, щелкните правой кнопкой мыши EntityLocal и выберите Inspect чтобы открыть Property Inspector.

Задайте свойства сообщения

Графики с дискретным событием имеют дополнительные свойства для выхода сообщений и локальных сообщений.

Свойства Input port сообщенияОписание
PriorityЕсли два события сообщения происходят одновременно, чтобы решить, что обработать первым, график дискретного события использует этот приоритет. Меньшее числовое значение указывает на более высокий приоритет.

Срабатывание события

Событие в Stateflow является объектом, который запускает действия. Для получения дополнительной информации смотрите Синхронизация компонентов модели посредством широковещательных событий (Stateflow).

SimEvents Discrete-Event Chart поддержать подмножество следующих событий:

  • Сообщение

  • Временный

  • Местный

  • Неявные события, enter, exit, on, change

SimEvents Discrete-Event Chart не поддерживает и не поддерживает эти события:

  • Условия без события

  • during, tick

  • Входной параметр события из Simulink

  • Выход события в Simulink

Примечание

Календарь событий SimEvents отображает и определяет приоритеты сообщений и временных событий. События этих типов выполняются в соответствии с календарным расписанием событий.

Календарь событий не отображает и не определяет приоритеты локальных и неявных событий. В среде SimEvents эти события выполняются как зависимые события сообщений или временных событий. Для параллельных состояний локальные и неявные события выполняются в порядке выполнения состояния.

Триггер сообщений

Когда сообщение или сущность приходит в вход сообщений или локальную очередь, график дискретного события реагирует на сообщение следующим образом:

  • Если график дискретного события находится в состоянии ожидания сообщения, график дискретного события просыпается и делает возможные переходы. График немедленно просыпается в порядке приоритета сообщения, обрабатывая сначала сообщение с наивысшим приоритетом. Для получения примера смотрите Триггер Графика Дискретного События по Прибытию Сообщения.

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

Временные триггеры

В дискретном графике событий можно использовать как основанные на событиях, так и абсолютные основанные на времени временные логические операторы. При использовании абсолютных основанных на времени временных логических операторов, программное обеспечение SimEvents использует заданное значение задержки точно. Для получения примера смотрите Дискретное-событие Графика Точное время.

Например, активация временной логики 'after(3,sec)' заставляет график проснуться через три секунды времени симуляции.

При использовании временных логических операторов в абсолютном времени наблюдайте эти различия от окружения Stateflow.

ОператорОписание

after

Вы можете использовать в качестве обозначения события как в состояниях активности, так и в переходах.

before

Когда вы используете в качестве обозначения события переход, вы не можете использовать дополнительные обозначения условия на этом переходе. Можно применить соединительное соединение для проверки дополнительных условий, пока соединительное соединение имеет один безусловный переход.

В условном обозначении Discrete-Event Chart поддерживает обе after и before.

См. также

Похожие темы