exponenta event banner

Рекомендации по проектированию диаграмм Mealy

Машины Mealy - конечные конечные машины, в которых происходят переходы на фронтах часов. В диаграммах Мили вывод является функцией ввода и состояния. На каждом шаге времени просыпается диаграмма Мили, оценивает её ввод, а затем переходит в новую конфигурацию активных состояний, называемую также её следующим состоянием. Диаграмма вычисляет свои выходные данные при переходе в следующее состояние. Семантика Mealy поддерживается только в диаграммах Stateflow ® в моделях Simulink ®.

Семантика Мили

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

  • Выходные данные не зависят от следующего состояния.

  • Диаграмма вычисляет выходные данные только в переходах, а не в состояниях.

  • Диаграмма периодически просыпается на основе системных часов.

    Примечание

    Диаграмма предоставляет одну временную базу для ввода и синхронизации (см. Расчет выходных данных и состояния с использованием одной временной базы).

Правила проектирования диаграмм Mealy

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

Вычислять выходные данные только в действиях условий

Вычислять выходные данные можно только в действиях условий внешнего и внутреннего переходов. Обычным стилем моделирования для машин Mealy является тестирование входных данных в условиях и вычисление выходных данных в соответствующем действии.

Не использовать действия состояния или действия перехода

Нельзя использовать действия состояния или действия перехода в диаграммах Mealy. Это ограничение обеспечивает семантику Mealy посредством:

  • Предотвращение вычисления выходных данных диаграммы без учета изменений входного порта.

  • Обеспечение того, что выход зависит от текущего состояния, а не от следующего состояния.

Ограничить область данных

В диаграммах Mealy применяются следующие ограничения данных:

  • Ограничить данные, полученные от компьютера. Машинно-зависимые данные - это данные, определенные для машины Stateflow. Машина Stateflow является самым высоким уровнем иерархии Stateflow. При определении данных на этом уровне каждая диаграмма в машине может считывать и изменять данные. Чтобы гарантировать, что диаграммы Mealy не имеют доступа к данным, которые могут быть непредсказуемо изменены вне диаграммы, не используйте машинно-зависимые данные.

  • Не определять память хранилища данных. Невозможно определить память хранилища данных (DSM) в диаграммах Mealy, поскольку внешние для диаграммы объекты могут изменять DSM. Диаграмма Stateflow использует память хранилища данных для совместного использования данных с моделью Simulink. Память хранилища данных действует как глобальные данные. В иерархии Simulink, содержащей диаграмму, другие блоки и модели могут изменять DSM. Диаграммы Mealy не должны получать доступ к данным, которые могут изменяться непредсказуемо.

Ограничить использование событий

Ограничить использование событий в диаграммах Mealy:

  • Допустимые виды использования:

    • Используйте входные события для запуска диаграммы.

    • Используйте временную логику на основе событий для защиты переходов.

      Изменение значения временного логического условия ведет себя как событие, которое диаграмма Мили планирует внутренне. На каждом временном шаге количество делений перед выполнением временного события зависит только от состояния диаграммы. Дополнительные сведения см. в разделе Операторы временной логики.

      Примечание

      В диаграммах Mealy базовым событием для операторов временной логики должно быть предопределенное событие, например tick (см. Неявные события, основанные на данных и состояниях).

  • Недопустимые виды использования:

    • Нельзя транслировать событие любого типа.

    • Нельзя использовать локальные события для защиты переходов. Локальные события нарушают семантику Mealy, поскольку они не являются детерминированными и могут происходить во время вычисления выходных данных диаграммы.

    • Нельзя использовать неявные события, такие как chg(data_name), en(state_name), или ex(state_name).

Расчет выходных данных и состояния с использованием единой базы времени

Для часов и входных данных можно использовать одну базу времени, определяемую решателем Simulink. Решатель Simulink устанавливает тактовую частоту достаточно высокой, чтобы фиксировать изменения на входе. В результате диаграмма Мили обычно вычисляет выходные данные и изменяет состояния на одном и том же временном шаге. Дополнительные сведения см. в разделе Сравнение решателей (Simulink).

Связанные темы