Для повышения читаемости 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