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