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