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