Документация Engee

Узлы Конечных автоматов

Узел (connective junction) — это точки соединения переходов в системе. Узел является точкой принятия решения на пути перехода.

Если переход из узла зациклен и условия для него всегда выполняются, то должен быть безусловный выход из этого цикла, чтобы избежать ошибки решателя. Например, так делать нельзя (бесконечный цикл):

state machines not to do

Потоковые диаграммы

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

Потоковая диаграмма (flow chart) — это графическая конструкция, представляющая собой поток выполнения операций или логики в системе. Диаграмма строится из комбинаций соединительных узлов и переходов. Такие диаграммы применяются в моделировании деревьев решений, итерационных циклов и т.д.

Логика работы потоковой диаграммы:

  • Потоковая диаграмма выполняется на каждом шаге работы блока Chart.

  • Результат каждого выполнения потоковой диаграммы не зависит от предыдущего.

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

  • На переходах задаются действия и условия, определяющие поведение модели.

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

Примеры реализации конструкций if-else и while с помощью потоковых диаграмм:

If-Else While

stateflow flow chart 1

sf loop 1 1

if x > 2
    y = 9;
else
    y = 15;
end
i = 0
while y < 15
    y += 2 * i
    i += 1
end