Упростите диаграммы Stateflow путем слияния активного Выхода состояния

Активные данные состояния могут упростить проект некоторых графиков 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. Откройте панель Символов. Во вкладке Modeling выберите Symbols Pane.

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

  4. В панели Символов щелкните правой кнопкой по выходной переменной gear и выберите Delete.

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

  1. Откройте Property Inspector. Во вкладке Modeling выберите Property Inspector.

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

  3. В Property Inspector выберите Create выход для контроля флажка и выберите Child activity.

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

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

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

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

  2. Соедините выходной сигнал gear от shift_logic стройте диаграмму с блоком Cast To Double.

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

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

  5. Установите вторую связь от выходного сигнала от блока Cast To Double до Блока памяти.

  6. Соедините выход Блока памяти к Пороговой подсистеме Вычисления.

Просмотрите результаты симуляции

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

Смотрите также

(Simulink) | (Simulink)

Похожие темы