exponenta event banner

Создание и редактирование состояний на основе Simulink

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

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

Создание состояния на основе Simulink

Чтобы создать состояние на основе Simulink, выполните одно из следующих действий.

  • Создайте пустое состояние на основе Simulink с помощью инструмента рисования состояния на основе Simulink.

  • Создайте состояние на основе Simulink из другой модели, скопировав включенную подсистему или подсистему действий в диаграмму Stateflow.

  • Создайте связанное состояние на основе Simulink, скопировав подсистему действий из библиотеки в диаграмму Stateflow.

Создание пустого состояния на основе Simulink

  1. Добавление блока диаграммы Stateflow в модель Simulink. Чтобы открыть редактор статусов, дважды щелкните блок.

  2. На палитре объектов выберите инструмент рисования состояний на основе Simulink. Переместите курсор на диаграмму.

  3. Чтобы разместить новое состояние на основе Simulink, щелкните холст Stateflow. Появляется закрашенное состояние.

  4. Введите метку состояния. В этом примере состояние моделирует прыгуна с шестом, проходящего вдоль плоской поверхности, поэтому метка состояния Run_up. Состояния на основе Simulink - это подсистемы действий, поэтому появляется порт действий с новым состоянием.

  5. Создайте подсистему Simulink. Эта подсистема выводит декартовы координаты прыгуна с шестом. Дополнительные сведения об этой модели см. в разделе Данные состояния блока доступа.

Создание состояния на основе Simulink из включенной подсистемы

Чтобы создать состояние на основе Simulink в диаграмме Stateflow, скопируйте включенные подсистемы из отдельных моделей Simulink. Можно повторно использовать компоненты из моделей Simulink в диаграмме Stateflow без создания совершенно нового состояния на основе Simulink.

  1. Откройте окно sf_clutch_enabled_subsystems модель.

  2. Скопируйте блок из модели Slipping в диаграмму State low.

  3. Входные и выходные данные подсистемы Simulink отображаются на диаграмме Stateflow как неопределенные символы. Чтобы добавить соответствующие входные и выходные данные в диаграмму Stateflow, нажмите кнопку Разрешить неопределенные символы.

Создание связанного состояния на основе Simulink

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

  1. Откройте модель библиотеки.

  2. Копирование и вставка блока библиотеки Run_up в диаграмму State low.

  3. Чтобы отобразить ссылку в крайнем нижнем левом углу связанной подсистемы, на вкладке «Отладка» выберите «Информационные наложения» > «Показать все связи».

  4. Выходы этой подсистемы Simulink, xy, отображается как неопределенный символ в диаграмме Stateflow. Чтобы добавить соответствующие выходные данные в диаграмму Stateflow, нажмите кнопку Разрешить неопределенные символы.

Создание входов и выходов

При использовании состояний на основе Simulink входы и выходы подсистемы Simulink подключаются к входным и выходным данным на уровне диаграммы Stateflow. Это подключение позволяет модели Simulink верхнего уровня считывать данные из подсистемы, находящейся в состоянии на основе Simulink.

При создании пустого состояния на основе Simulink модуль Stateflow создает входы и выходы в подсистеме Simulink, соответствующие входам и выходам родительской диаграммы Stateflow. Однако при добавлении входов и выходов в состояние на основе Simulink после его создания необходимо создать соответствующие входные и выходные данные для диаграммы Stateflow.

Для создания дополнительных входов или выходов для состояния на основе Simulink:

  1. Откройте состояние на основе Simulink.

  2. Щелкните холст Simulink, введите in1и нажмите Enter. Создается неопределенный порт ввода.

  3. Неопределенный символ in1 появляется на панели Символы (Symbols) диаграммы «Поток состояний» (Stateflow). Чтобы разрешить неопределенный символ, нажмите кнопку Разрешить неопределенные символы.

  4. Вход диаграммы с именем In1 создается.

Создание дополнительного исходящего порта

В этом примере создается дополнительный выезд для модели. sf_pole_vault:

  1. Открытие модели.

  2. Открыть диаграмму PoleVaulter и дважды щелкните Состояние на основе Simulink Take_off.

  3. Щелкните холст состояния на основе Simulink и введите out1 и нажмите Enter. Создается неопределенный выходной порт. Переименование внешнего порта theta_out и подключите его к сигналу для тета.

  4. На панели «Символы» PoleVaulter, неопределенный символ для theta_out появляется. Чтобы разрешить неопределенный символ, нажмите кнопку Разрешить неопределенные символы (Resolve undefined symbols).

  5. Stateflow создает вывод на диаграмме с именем theta_out который соответствует исходному порту theta_out.

Дополнительные сведения о редактировании данных см. в разделе Добавление и изменение данных, событий и сообщений.

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