Преобразование диаграмм между семантикой Мили и Мура

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

Лучшая практика - не переходить от одного типа диаграммы Stateflow к другому в середине разработки. Невозможно автоматически преобразовать семантику исходного графика в соответствии с правилами проекта нового типа диаграммы. Изменение типа графика обычно требует, чтобы вы изменили дизайн графика, чтобы достичь эквивалентного поведения исходного графика, так что оба графиков создают одну и ту же последовательность выходов, заданную одной и той же последовательностью входов. Иногда, однако, нет возможности перевести конкретное поведение, не нарушая определений графика.

В этой таблице приводятся сводные данные того, что происходит при изменении типов графиков проекта.

ОтКомуРезультат
МучнистыйКлассикДиаграммы Мили сохраняют свою семантику при изменении на Classic type.
КлассикМучнистыйЕсли Классический график определяет свой выход в каждый временной шаг и соответствует семантическим правилам Мили, диаграмма Мили показывает поведение, эквивалентное исходному Классическому графику.
МурКлассикСостояния активности на графике Мура ведут себя следующим entry и during действия, поскольку они не помечены. Классический график показывает поведение, которое не эквивалентно исходному графику Мура. Требует редизайна.
КлассикМурДействия, которые не помечены в Классическом графике (entry и during действия по умолчанию) вести себя как during и exit действия. График Мура показывает поведение, которое не эквивалентно исходному Классическому графику. Требует редизайна.
МучнистыйМурПравила Мили и Мура о размещении действий являются взаимоисключающими. Преобразование типов графиков между семантиками Мили и Мура не приводит к эквивалентному поведению. Требует редизайна.
МурМучнистый

Преобразование графика из Мили в семантику Мура

В этом примере показано, как использовать диаграмму Мили для моделирования торгового автомата, как описано в Модели торгового автомата при помощи семантики Мили.

На диаграмме Мили каждое состояние представляет один из трёх возможных входов монеты: никель, дайм или нет монеты. Каждое действие условия вычисляет выход (освобождается ли сода) на основе входов (полученная монета), когда график переходит к следующему состоянию. Если вы измените тип графика на Mooreвы получаете диагностическое сообщение во время компиляции, указывающее, что график нарушает семантику диаграммы Мура. Согласно семантике Мура, вывод графика soda не может зависеть от значения входа coin.

Чтобы преобразовать график в действительную семантику Мура, перепроектируйте график, перемещая логику, которая вычисляет выход из переходов и в состояния. На графике Мура каждое состояние должен представлять как полученные монеты, так и условие релиза соды (soda = 0 или soda = 1). В результате переработанный график требует большего количества состояний.

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

Сравнение семантики торговых автоматов

В этой таблице сравнивается семантика графиков до и после преобразования.

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

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

Преобразование графика из Мура в семантику Мили

В этом примере показано, как использовать график Мура для моделирования светофора, как описано в Модели Светофора при помощи семантики Мура.

На графике Мура каждое состояние представляет цвета светофора в двух противоположных направлениях и длительность текущего цвета. Каждое состояние активности вычисляет выход (цвета светофора) независимо от входа (если есть машины, ожидающие датчика). Если вы измените тип графика на Mealy, вы получаете диагностическое сообщение во время компиляции, указывающее, что график нарушает семантику диаграммы Мили. Согласно семантике Мили, график не может вычислить свои выходы в состояниях активности.

Чтобы преобразовать график в допустимую семантику Мили, перепроектируйте график, перемещая логику, которая вычисляет выход из состояний и в переходы. Переработанная диаграмма Мили состоит из пяти состояний, так же как график Мура. В большинстве переходов временное логическое выражение или логический вход sens защищает действие условия, вычисляющее выходы y1 и y2. Исключение составляют только:

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

  • Переход от Stop состояние в StopForTraffic состояние, которое не вычисляет новые выходы.

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

Сравнение семантики контроллеров светофора

В этой таблице сравнивается семантика графиков до и после преобразования.

Светофорный Контроллер МураСветофорный Контроллер Мили
Использует пять состоянийИспользует пять состояний
Вычисляет выходы в состояниях активностиВычисляет выходы в действиях условия
Обновляет выход перед оценкой входаОбновляет вывод на основе входа, требуя блока Delay в каждом выходном сигнале

Похожие темы