exponenta event banner

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

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

Семантика Мура

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

  • Выходы не зависят от входов.

  • Выходы не зависят от предыдущих выходов.

  • Выходы не зависят от временной логики.

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

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

Ограничения действий государства

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

  • Объединить действия. В диаграммы Мура можно включить только одно действие для каждого штата. Действие может состоять из нескольких инструкций команды. Stateflow оценивает состояния в чартах Мура с верхнего уровня вниз. Активные состояния в диаграммах Мура выполняют действие состояния перед оценкой переходов. Следовательно, выходные данные вычисляются на каждом временном шаге, является ли внешний переход действительным или нет.

  • Не маркировать действия состояния. Не помечайте действия состояния в диаграммах Мура какими-либо ключевыми словами, такими как entry,during, или exit. По умолчанию диаграммы Мура выполняют действия в активных состояниях перед оценкой входных данных и обновлением состояния.

Ограничения на действия перехода

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

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

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

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

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

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

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

Не использовать coder.extrinsic Вызов внешних функций

При вызове внешних функций с помощью coder.extrinsic, невозможно обеспечить, чтобы выходные сигналы зависели только от текущего состояния. Вызов внешней функции с помощью coder.extrinsic на диаграмме Мура вызывает ошибку.

Не использовать функции Simulink

Нельзя использовать функции Simulink в диаграммах Мура. Это ограничение предотвращает нарушения семантики Мура во время выполнения диаграммы.

Не экспортировать функции

Нельзя экспортировать функции в диаграмму Мура.

Не отключать вложение

Семантика диаграммы Мура требует встраивания.

Не включать супершаговую семантику

Нельзя использовать супершаговую семантику в диаграмме Мура.

Не использовать сообщения

Нельзя использовать сообщения в диаграмме Мура.

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

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

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

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

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

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

      Примечание

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

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

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

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

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

Не использовать диаграммы Мура для моделирования систем непрерывного времени

В диаграммах Мура нельзя задать для метода обновления значение Continuous. Для моделирования систем с непрерывным временем в Stateflow используйте диаграммы Classic или Mealy.

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