Для повышения читаемости Stateflow® график, используйте перечисленные данные. С помощью перечисленных данных можно:
Создайте ограниченное множество значений и обратитесь к этим значениям по имени.
Сгруппировать связанные значения в отдельные типы данных.
Избегайте определения длинного списка констант.
Перечисленные данные поддерживаются в диаграммах Stateflow в Simulink® модели. Для получения дополнительной информации смотрите Ссылку значений по Имени при помощи перечисленных данных.
В этом примере показано, как создать график, которая использует перечисленные значения для выдачи ключевого слова status.

Во время симуляции действие графика чередуется между состояниями A и B.
A
В начале симуляции состояние A введен.
Конечные A выполняет entry действие путем присвоения значения RED к перечисленным данным color.
Область данных y Шаги один раз в временные шаги (каждые 0,2 секунды) до состояния [y > 6] является true.
График принимает переход от состояния A в состояние B.
B
После перехода от состояния A происходит, состояние B введен.
Конечные B выполняет entry действие путем присвоения значения GREEN к перечисленным данным color.
Область данных y уменьшается один раз в раз за временной шаг (каждые 0,2 секунды) до условия [y < 3] является true.
График принимает переход от состояния B вернуться в состояние A.
Чтобы создать модель Simulink с пустым графиком, в MATLAB® в командной строке введите sfnew.
На пустой графике добавьте состояния A и B. В текстовом приглашении введите соответствующие операторы действий.
Добавьте переход по умолчанию в состояние A и переходы между состояниями A и B.
Дважды кликните каждый переход. В текстовом приглашении введите соответствующее условие.
Чтобы создать файл, в котором можно хранить определение типов, на вкладке Home на панели инструментов MATLAB, выберите New > Class.
В редакторе MATLAB введите:
classdef TrafficColors < Simulink.IntEnumType enumeration RED(0) GREEN(10) end end
classdef раздел задает тип перечисленных данных на основе целого числа с именем TrafficColors. The enumeration раздел содержит перечисленные значения, которые позволяет этот тип данных, и их базовое числовое значение.Сохраните файл как TrafficColors.m в папке по путь поиска файлов MATLAB.
Чтобы разрешить неопределенные данные, на панели «Символы» щелкните значок Resolve undefined symbols.
Редактор Stateflow присваивает соответствующие возможности видимости каждому символу на графике.
| Символ | Возможности |
|---|---|
color | Выходные данные |
y | Локальные данные |
GREEN | Параметрические данные |
RED | Параметрические данные |
Чтобы задать color как перечисленные данные, в Property Inspector:
В Type поле выберите Enum: <class name>. Замените <class name> с TrafficColors, имя ранее заданного типа данных.
В разделе Logging установите флажок Log signal data.
Чтобы задать возможности и тип y, в Property Inspector:
В Scope поле выберите Output.
В Type поле выберите uint8.
В разделе Logging установите флажок Log signal data.
На панели «Символы» удалите символы GREEN и RED. Редактор Stateflow неправильно определил эти символы как параметры перед указанием color как перечисленные данные.
Когда вы моделируете модель, значок Simulation Data Inspector
подсвечивается, чтобы указать, что у него есть новые данные моделирования. Чтобы открыть Данные моделирования Inspector, щелкните значок.
В Данные моделирования Inspector установите флажки для color и y сигналы так, чтобы они отображались на отдельных осях.


Для доступа к записанным данным в рабочем пространстве MATLAB вызовите объект логгирования сигналов logsout. Для примера в командной строке введите:
losgout = out.logsout; colorLog = logsout.getElement('color'); Tbl = table(colorLog.Values.Time,colorLog.Values.Data); Tbl.Properties.VariableNames = {'SimulationTime','Color'}
Tbl =
9×2 table
SimulationTime Color
______________ _____
0 RED
1.6 GREEN
2.8 RED
4 GREEN
5.2 RED
6.4 GREEN
7.6 RED
8.8 GREEN
10 RED