Улучшать удобочитаемость Stateflow® стройте диаграмму, используйте перечисленные данные. С перечислимыми данными вы можете:
Создайте ограниченное множество значений и обратитесь к тем значениям по наименованию.
Связанные с группой значения в отдельные типы данных.
Постарайтесь не задавать длинный список констант.
Перечислимые данные поддерживаются в диаграммах Stateflow в Simulink® модели. Для получения дополнительной информации смотрите Ссылочные Значения по наименованию при помощи Перечислимых Данных.
В этом примере показано, как создать график, который использует перечисляемые значения, чтобы выпустить ключевое слово состояния.
В процессе моделирования действие графика чередует между состояниями A
и B
.
A
состояния
В начале симуляции утвердите A
вводится.
A
состояния выполняет
entry
действие путем присвоения значения RED
к перечислимым данным color
.
Данные y
шаг однажды на временной шаг (каждые 0.2 секунды) до условия [y > 6]
верно.
График берет переход от A
состояния утверждать
B
.
B
состояния
После перехода от A
состояния происходит,
B
состояния вводится.
B
состояния выполняет
entry
действие путем присвоения значения GREEN
к перечислимым данным color
.
Данные y
декременты однажды на временной шаг (каждые 0.2 секунды) до условия [y < 3]
верно.
График берет переход от 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
. 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 подсвечен, чтобы указать, что это имеет новые данные моделирования. Чтобы открыть Инспектора Данных моделирования, кликните по значку.
В Инспекторе Данных моделирования установите флажки для 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