Преобразуйте графики между семантикой Мура и мучнистым

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

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

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

ОтКРезультат
МучнистыйКлассикаДиаграммы Мили сохраняют свою семантику, когда изменено на Классический тип.
КлассикаМучнистыйЕсли Классический график задает свой выход на каждом временном шаге и соответствует Мучнистым семантическим правилам, диаграмма Мили предоставляет поведение, эквивалентное исходному Классическому графику.
МурКлассикаСостояния активности в графике Мура ведут себя как 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 в каждом выходном сигнале

Похожие темы