В конечном автомате состояние является комбинацией локальных данных и действий диаграммы. «Вычислительное состояние» означает обновление локальных данных и переход из текущего активного состояния в новое состояние. В моделях конечных автоматов следующее состояние является функцией текущего состояния и его входов:
(n), u)
В этом уравнении:
X (n) представляет состояние на временном этапе n.
X (n + 1) представляет состояние на следующем шаге времени n + 1.
u представляет входы.
Состояние сохраняется от одного временного шага к следующему временному шагу.
Машины Мили и Мура часто считаются базовыми, отраслевыми стандартными парадигмами моделирования конечных автоматов. Можно создавать диаграммы, реализующие чистую семантику Mealy или Moore как подмножество семантики диаграмм Stateflow ®. Диаграммы Mealy и Moore можно использовать для моделирования и создания кода с помощью ПО Embedded Coder ®, Simulink ® Coder™ и HDL Coder™. Семантика Мили и Мура поддерживается только в чартах Stateflow в моделях Simulink.
Машины Mealy - конечные конечные машины, в которых происходят переходы на фронтах часов. Выходные данные диаграммы Меали являются функцией входных данных и состояния:
, u)
На каждом шаге времени просыпается диаграмма Мили, оценивает её ввод, а затем переходит в новую конфигурацию активных состояний, называемую также её следующим состоянием. Диаграмма вычисляет свои выходные данные при переходе в следующее состояние.
Чтобы гарантировать, что выходные данные являются функцией входных данных и состояния, конечные автоматы Mealy применяют следующие семантики:
Выходные данные не зависят от следующего состояния.
Диаграмма вычисляет выходные данные только в переходах, а не в состояниях.
Диаграмма периодически просыпается на основе системных часов.
Машины Mealy вычисляют свой выход на переходах. Поэтому диаграммы Mealy могут вычислять свои первые выходные данные во время выполнения пути по умолчанию для диаграммы. Если для диаграммы Mealy включено свойство Execute (enter) Chart At Initialization, это вычисление выполняется при t = 0 (первый шаг времени). В противном случае это происходит при t = 1 (следующий временной шаг). Дополнительные сведения см. в разделе Выполнение (ввод) диаграммы при инициализации.
Машины Мура являются конечными конечными автоматами, в которых выходной сигнал модифицируется на фронтах синхронизации. Вывод диаграммы Мура является функцией только состояния:
(X)
На каждом шаге времени диаграмма Мура просыпается, вычисляет свой выход, а затем оценивает свой вход, чтобы перенастроиться на следующий шаг времени. Например, после оценки своих входных данных диаграмма может перейти в новую конфигурацию активных состояний. Диаграмма вычисляет выходные данные перед оценкой входных данных и обновлением состояния.
Чтобы гарантировать, что вывод является функцией только текущего состояния, конечные автоматы Мура применяют эту семантику:
Выходы не зависят от входов.
Выходы не зависят от предыдущих выходов.
Выходы не зависят от временной логики.
Машины Мура вычисляют их выход в состояниях. Поэтому машины Мура могут вычислять выходы только после выполнения пути по умолчанию. До тех пор выходные данные принимают значения по умолчанию.
При создании диаграммы Stateflow типом по умолчанию является модель гибридного конечного автомата, называемая классической диаграммой. Классические чарты сочетают семантику чартов Мили и Мура с расширенной семантикой чарта Stateflow.
Для создания диаграммы Mealy в командной строке MATLAB ® введите:
sfnew -Mealy![]()
Для создания диаграммы Мура в командной строке MATLAB введите:
sfnew -Moore![]()
Кроме того, после добавления блока диаграммы Stateflow в модель Simulink можно выбрать тип семантики для диаграммы, установив свойство «Тип диаграммы конечного автомата». Дополнительные сведения см. в разделе Тип конечного автомата.
Графики Мили и Мура предлагают следующие преимущества по сравнению с чартами Classic Stateflow:
Можно убедиться, что созданные диаграммы Мили и Мура соответствуют их формальным определениям и семантическим правилам. Сообщения об ошибках появляются во время компиляции (не во время разработки).
Графики Мура обеспечивают более эффективную реализацию, чем классические графики для целей C/C + + и HDL.
Для моделирования цикла обратной связи можно использовать диаграмму Мура. В диаграммах Мура входные данные не имеют прямого прохождения. Можно создать цикл с обратной связью от выходного порта к входному порту без введения алгебраического цикла. Диаграммы Мили и Классика имеют прямой проход и производят ошибку при наличии алгебраического цикла.
