Автономный график Stateflow® является классом MATLAB®, который задает поведение конечного автомата. Автономные графики реализуют классическую семантику графика с MATLAB как язык действия. Можно программировать график при помощи полной функциональности MATLAB, включая те функции, которые ограничиваются для генерации кода в Simulink®. Для получения дополнительной информации смотрите, Создают диаграммы Stateflow для Выполнения как Объекты MATLAB.
Файл sf_chart.sfx содержит автономную диаграмму Stateflow sf_chart. График имеет локальные данные u, x и y.

Этот пример показывает, как выполнить этот график от редактора Stateflow и в Окне Команды MATLAB.
К модульному тесту и отладке автономный график, можно выполнить график непосредственно от редактора Stateflow. Во время выполнения вы вводите значения данных и широковещательно передаете события от пользовательского интерфейса.
Откройте график в редакторе Stateflow:
edit sf_chart.sfxВ окне Symbols введите значение u = 1 и кликните по значку Run
. Редактор создает объект my_sf_chart диаграммы Stateflow и выполняет переход по умолчанию. График:
Инициализирует x к значению 0.
Делает A состояния активным состоянием.
Присвоения y к значению 1.
Увеличивает значение x к 1.
Анимация графика подсвечивает активный A состояния. Окно Symbols отображает значения u = 1, x = 1, и y = 1. График поддерживает свое текущее состояние и локальные данные до следующей команды выполнения.

Кликните по значку Run
снова. Поскольку значение u не удовлетворяет условие [u<0] к переходу из A состояния, это состояние остается активным, и значения x и y увеличиваются до 2. Окно Symbols теперь отображает значения u = 1, x = 2, и y = 2.

В окне Symbols введите значение u = −1 и кликните по значку Run
. Отрицательное значение данных инициировало переход, чтобы утвердить B. Окно Symbols отображает значения u = −1, x = 1, и y = 3.

Можно изменить значение любых данных о графике в окне Symbols. Например, введите значение x = 3. График будет использовать это значение данных в следующий раз шаг выполнения.
Введите значение u = 2 и кликните по значку Run
. Переходы графика назад, чтобы утвердить A. Окно Symbols отображает значения u = 2, x = 4, и y = 5.

Чтобы остановить анимацию графика и удалить объект my_sf_chart диаграммы Stateflow из рабочего пространства MATLAB, кликните по значку Stop
.
Чтобы прервать выполнение и шаг посредством каждого действия в графике, добавьте точки останова, прежде чем вы выполните график. Для получения дополнительной информации смотрите Отладку Автономная диаграмма Stateflow.
Можно выполнить автономный график в MATLAB, не открывая редактора Stateflow. Если график открыт, то редактор Stateflow подсвечивает активные состояния и переходы посредством анимации графика.
Откройте график в редакторе Stateflow. В Окне Команды MATLAB, введите:
edit sf_chart.sfxСоздайте объект диаграммы Stateflow при помощи имени файла sfx для автономного графика как функция. Задайте начальное значение для данных u как пара "имя-значение".
s = sf_chart('u',1)Stateflow Chart
Execution Function
y = step(s)
Local Data
u : 1
x : 1
y : 1
Active States: {'A'}s, выполняет переход по умолчанию и инициализирует значения x и y. Редактор Stateflow анимирует график и подсвечивает активный A состояния.

Чтобы выполнить график, вызовите функцию step. Например, предположите, что вы вызываете функцию step со значением u = 1:
step(s,'u',1)disp(s)
Stateflow Chart
Execution Function
y = step(s)
Local Data
u : 1
x : 2
y : 2
Active States: {'A'}u не удовлетворяет условие [u<0] к переходу из A состояния, это состояние остается активным, и значения x и y увеличиваются до 2.

Выполните график снова, на этот раз со значением u = −1:
step(s,'u',-1)disp(s)
Stateflow Chart
Execution Function
y = step(s)
Local Data
u : -1
x : 1
y : 3
Active States: {'B'}B. Значение x уменьшается к 1, и значение y увеличивается до 3.

Чтобы получить доступ к значению любых данных о графике, используйте запись через точку. Например, можно присвоить значение 3 к локальным данным x путем ввода:
s.x = 3
Stateflow Chart
Execution Function
y = step(s)
Local Data
u : -1
x : 3
y : 3
Active States: {'B'}Выполните график со значением u = 2:
step(s,'u',2)disp(s)
Stateflow Chart
Execution Function
y = step(s)
Local Data
u : 2
x : 4
y : 5
Active States: {'A'}A и изменяют значения x и y.

Чтобы остановить анимацию графика, удалите объект s диаграммы Stateflow из рабочего пространства MATLAB:
delete(s)
Можно выполнить несколько объектов диаграммы, заданных тем же автономным графиком. Параллельные объекты диаграммы поддерживают свое внутреннее состояние независимо, но остаются связанными к тому же графику в редакторе. Анимация графика отражает состояние объекта диаграммы, последний раз выполняемого. Выполнение нескольких объектов диаграммы, в то время как редактор Stateflow открыт, может привести к запутывающим результатам и не рекомендуется.