Мучнистые машины являются конечными автоматами, в которых переходы происходят на фронтах синхроимпульса. В Мучнистых графиках вывод является функцией входа и состояния. На каждом временном шаге, Мучнистый график просыпается, оценивает его вход, и затем переходы к новой настройке активных состояний, также названных ее следующим состоянием. График вычисляет свой вывод, когда он переходит к следующему состоянию. Мучнистая семантика поддерживается только в графиках Stateflow® в моделях Simulink®.
Гарантировать, которые выводят, - функция входа и состояния, Мучнистая машина состояний осуществляет их семантика:
Выходные параметры не зависят от следующего состояния.
График вычисляет выходные параметры только в переходах, не в состояниях.
График периодически просыпается на основе системных часов.
График обеспечивает одну основу времени для входа и часов (см., Вычисляют Вывод и состояние при помощи Одной Основы Времени).
Чтобы соответствовать Мучнистому определению конечного автомата, гарантируйте, что каждый раз существует изменение на входном порте, график вычисляет выходные параметры.
Можно вычислить выходные параметры только в действиях условия внешних и внутренних переходов. Общий стиль моделирования для Мучнистых машин к тестовым воздействиям в условиях, и вычислите выходные параметры в связанном действии.
Вы не можете использовать акты государственной власти или действия перехода в Мучнистых графиках. Это ограничение осуществляет Мучнистую семантику:
Препятствование тому, чтобы график вычислил вывод, не рассматривая изменений на входном порте.
Обеспечение, которые выводят, зависит от текущего состояния а не следующего состояния.
В Мучнистых графиках применяются эти ограничения данных:
Ограничьте Порожденные Машиной Данные. Порожденные машиной данные являются данными, которые вы задаете для машины Stateflow. Машина Stateflow является высшим уровнем иерархии Stateflow. Когда вы задаете данные на этом уровне, каждый график в машине может считать и изменить данные. Чтобы гарантировать, что Мучнистые графики не получают доступ к данным, которые могут быть изменены непредсказуемо вне графика, не используйте порожденные машиной данные.
Не Задавайте Память Хранилища данных. Вы не можете задать память хранилища данных (DSM) в Мучнистых графиках, потому что объекты, внешние к графику, могут изменить DSM. Диаграмма Stateflow использует память хранилища данных, чтобы осуществлять обмен данными с моделью Simulink. Память хранилища данных действует как глобальные данные. В иерархии Simulink, которая содержит график, другие блоки и модели могут изменить DSM. Мучнистые графики не должны получать доступ к данным, которые могут измениться непредсказуемо.
Ограничьте использование событий в Мучнистых графиках:
Допустимое использование:
Используйте входные события, чтобы инициировать график.
Используйте основанную на событии временную логику, чтобы охранять переходы.
Изменение в значении временного логического условия ведет себя как событие, которое Мучнистый график планирует внутренне. На каждом временном шаге количестве меток деления, прежде чем выполняется временное событие, зависит только от состояния графика. Для получения дополнительной информации смотрите Операторы для Основанной на событии Временной Логики.
В Мучнистых графиках основное событие для временных логических операторов должно быть предопределенным событием, таким как tick
или wakeup
(см. Ключевые слова для Неявных Событий).
Недопустимое использование:
Вы не можете широковещательно передать событие никакого типа.
Вы не можете использовать локальные события, чтобы охранять переходы. Локальные события нарушают Мучнистую семантику, потому что они не детерминированы и могут произойти, в то время как график вычисляет свои выходные параметры.
Вы не можете использовать неявные события, такие как chg(data_name)
, en(state_name)
или ex(state_name)
.
Можно использовать одну основу времени для часов и ввести, как определено решателем Simulink. Решатель Simulink устанавливает тактовую частоту быть достаточно быстрой, чтобы получить входные изменения. В результате Мучнистый график обычно вычисляет выходные параметры и состояния изменений в том же временном шаге. Для получения дополнительной информации смотрите Решатели (Simulink).