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