Данные активного состояния могут упростить проектирование некоторых диаграмм 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.
Откройте панель «Символы». На вкладке «Моделирование» выберите панель «Символы».
В каждом подсостоянии gear_state, удалить действие ввода, присваивающее значение переменной выходных данных gear.
На панели «Символы» щелкните правой кнопкой мыши выходную переменную. gear и выбрать Delete.
Шаг 2: Включить вывод активного состояния
Откройте инспектор свойств. На вкладке «Моделирование» выберите «Инспектор свойств».
В редакторе потока состояний выберите состояние gear_state.
В инспекторе свойств установите флажок «Создать вывод для мониторинга» и выберите Child activity.
В поле Имя данных введите имя gear данных активного состояния.
В поле Имя перечисления введите имя gearType типа данных перечисления для данных активного состояния.

Шаг 3: Подключение сигнала к блокам Simulink
В модели Simulink добавьте блок Cast To Double. Этот блок преобразует перечисленные выходные данные диаграммы Stateflow в сигнал типа double. Дополнительные сведения см. в разделе Преобразование типов данных (Simulink).
Подключите выходной сигнал gear от shift_logic в блок «Приведение к двойному».
Подключите выходной сигнал от блока Cast To Double к подсистеме передачи.
Добавление блока памяти (Simulink). Этот блок предотвращает алгебраический цикл между диаграммой Stateflow и подсистемой вычисления порога.
Создайте второе соединение из выходного сигнала от блока Литейная к двойной (Cast To Double) к блоку памяти.
Подключите выход блока памяти к подсистеме вычисления пороговых значений.

Выходной сигнал gear является перечисляемым типом, управляемым Stateflow. При моделировании можно просмотреть передачу выходного сигнала активного состояния, подключив диаграмму к блоку области. Имена перечисленных значений совпадают с именами подсостояний в gear_state. Дополнительное перечисляемое значение None указывает временные шаги, когда ни один дочерний элемент не активен.

Преобразование типов данных (Simulink) | Память (Simulink)