Активные данные о состоянии могут упростить проект некоторых графиков Stateflow ®, потому что вы не должны поддерживать данные, которые сильно коррелированы с иерархией графика. Когда вы активируете активные данные о состоянии, Stateflow сообщает об активности состояния через выходной порт в Simulink ® или как локальные данные на графике. Этот пример показов, как упростить проект диаграммы Stateflow путем добавления данных выходов активного состояния. Для получения дополнительной информации смотрите Мониторинг активности состояния через данные активного состояния.
В унаследованной модели old_sf_car
, диаграмма Stateflow shift_logic отслеживает активность дочернего состояния в gear_state
путем обновления значения выходных данных gear
.
Путем включения данных о активном состоянии, модель sf_car
избегает ручных обновлений данных, отражающих активность графика. Вместо этого график автоматически выходы действие дочернего состояния через активное состояние выхода передачи.
Чтобы упростить проект old_sf_car
модель, устранить данные, которые сильно коррелируют с иерархией графика и включить автоматический мониторинг активности дочернего состояния в gear_state
.
Шаг 1: Исключить ручное отслеживание деятельности государства
В модель old_sf_car
, откройте график shift_logic
.
Откройте панель «Символы». На вкладке Моделирование (Modeling) выберите Панель символов (Symbols Pane).
В каждом подсостоянии gear_state
удалите действие входа, присвоив значение переменного выхода данных gear
.
На панели «Символы» щелкните правой кнопкой мыши переменный выход gear
и выберите Delete
.
Шаг 2: Включите выход активного состояния
Откройте Property Inspector. На вкладке « Моделировании» выберите Property Inspector.
В редакторе Stateflow выберите состояние gear_state
.
В Property Inspector установите флажок Создать выход для мониторинга и выберите Child activity
.
В поле Data name введите имя gear
данных о активном состоянии.
В поле Имя перечисления введите имя gearType
типа данных перечисления для данных о активном состоянии.
Шаг 3: Соедините сигнал с блоками Simulink
В модели Simulink добавьте блок Cast To Double. Этот блок преобразует перечисленный выход из диаграммы Stateflow в сигнал типа double
. Для получения дополнительной информации смотрите Преобразование типа данных (Simulink).
Подключите выход сигнал gear
от shift_logic
график для блока Cast To Double.
Подключите сигнал выхода от блока Cast To Double к Подсистеме Передачи.
Добавьте блок памяти (Simulink). Этот блок препятствует алгебраическому циклу между диаграммой Stateflow и подсистемой Threshold Calculation.
Выполните второе подключение от выхода сигнала от блока Cast To Double к блоку Памяти.
Соедините выход блока Memory с подсистемой Threshold Calculation.
Выходной сигнал gear
- перечисленный тип, управляемый Stateflow. Можно просмотреть выход сигнала активного состояния во время симуляции, соединив график с блоком Scope. Имена перечисленных значений совпадают с именами подсостояний в gear_state
. Дополнительное перечисленное значение None
указывает временные шаги, когда нет активного дочернего элемента.
Data Type Conversion (Simulink) | Memory (Simulink)