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

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

Нажмите Step.
Потому что значение u![]()
не удовлетворяет условию [u<0] для перехода из состояния A, это состояние остается активным и значения x и y увеличение до 2. Теперь на панели «Символы» отображаются значения u = 1, x = 2, и y = 2.

На панели «Символы» введите значение u = − 1 и нажмите Step
. Отрицательное
значение данных запускает переход в состояние B. На панели «Символы» отображаются значения u = −1, x = 1, и y = 3.

Можно изменить значение любых данных графика на панели «Символы». Для примера введите значение x = 3. Это значение данных будет использовано графиком на следующем этапе выполнения.
Введите значение u = 2 и нажмите Step.
График переходит
назад в состояние A. На панели «Символы» отображаются значения u = 2, x = 4, и y = 5.

Чтобы остановить анимацию графика, нажмите Stop.
![]()
Чтобы прервать выполнение и пройти через каждое действие на графике, добавьте точки останова перед выполнением диаграммы. Для получения дополнительной информации см. раздел «Отладка автономной диаграммы Stateflow».
Можно выполнить автономную диаграмму в MATLAB, не открывая Редактора 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.

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