exponenta event banner

Преобразовать диаграммы между Mealy и Moore Semantics

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

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

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

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

Трансформировать диаграмму из Мили в семантику Мура

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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