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