exponenta event banner

Упрощение диаграмм статусов за счет включения вывода активного состояния

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

В унаследованной модели old_sf_car, диаграмма Stateflow shift_logic отслеживает активность дочерних состояний в gear_state путем обновления значения выходных данных gear.

Путем включения данных активного состояния модель sf_car позволяет избежать ручного обновления данных, отражающего активность диаграммы. Вместо этого диаграмма автоматически выводит дочернюю активность состояния через выходную передачу активного состояния.

Изменение модели

Для упрощения конструкции old_sf_car модель, исключить данные, которые сильно коррелированы с иерархией диаграмм, и включить автоматический мониторинг активности дочерних состояний в gear_state.

Шаг 1: Исключить ручное отслеживание деятельности государства

  1. В модели old_sf_car, откройте диаграмму shift_logic.

  2. Откройте панель «Символы». На вкладке «Моделирование» выберите панель «Символы».

  3. В каждом подсостоянии gear_state, удалить действие ввода, присваивающее значение переменной выходных данных gear.

  4. На панели «Символы» щелкните правой кнопкой мыши выходную переменную. gear и выбрать Delete.

Шаг 2: Включить вывод активного состояния

  1. Откройте инспектор свойств. На вкладке «Моделирование» выберите «Инспектор свойств».

  2. В редакторе потока состояний выберите состояние gear_state.

  3. В инспекторе свойств установите флажок «Создать вывод для мониторинга» и выберите Child activity.

  4. В поле Имя данных введите имя gear данных активного состояния.

  5. В поле Имя перечисления введите имя gearType типа данных перечисления для данных активного состояния.

Шаг 3: Подключение сигнала к блокам Simulink

  1. В модели Simulink добавьте блок Cast To Double. Этот блок преобразует перечисленные выходные данные диаграммы Stateflow в сигнал типа double. Дополнительные сведения см. в разделе Преобразование типов данных (Simulink).

  2. Подключите выходной сигнал gear от shift_logic в блок «Приведение к двойному».

  3. Подключите выходной сигнал от блока Cast To Double к подсистеме передачи.

  4. Добавление блока памяти (Simulink). Этот блок предотвращает алгебраический цикл между диаграммой Stateflow и подсистемой вычисления порога.

  5. Создайте второе соединение из выходного сигнала от блока Литейная к двойной (Cast To Double) к блоку памяти.

  6. Подключите выход блока памяти к подсистеме вычисления пороговых значений.

Просмотр результатов моделирования

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

См. также

(Simulink) | (Simulink)

Связанные темы