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

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

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

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

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

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

Этот пример показывает, как использовать Мучнистый график, чтобы смоделировать торговый автомат, как описано в Модели Торговый автомат при помощи Мучнистой Семантики.

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

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

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

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

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

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

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

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

Этот пример показывает, как использовать график Мура, чтобы смоделировать светофор, как описано в Модели Светофор при помощи Семантики Мура.

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

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

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

  • Переход от Stop утверждает к состоянию StopForTraffic, которое не вычисляет новые выходные параметры.

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

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

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

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

Похожие темы