Конструктивные соображения для графиков Мура

Машины Мура являются конечными автоматами, в которых вывод изменяется во фронтах синхроимпульса. В графиках Мура вывод является функцией текущего состояния только. На каждом временном шаге график Мура просыпается, вычисляет свой вывод, и затем оценивает свой вход, чтобы реконфигурировать себя для следующего временного шага. Например, после оценки его входа, график может перейти к новой настройке активных состояний. График вычисляет свой вывод прежде, чем оценить его вход и обновить его состояние. Семантика Мура поддерживается только в графиках 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 или wakeup (см. Ключевые слова для Неявных Событий).

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

    • Вы не можете широковещательно передать событие никакого типа.

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

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

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

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

Похожие темы

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