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