Автономный график 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 открыт, может привести к запутывающим результатам и не рекомендуется.