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

К системам модели, которые переключаются между периодической или непрерывной динамикой времени, используйте Simulink® основанные состояния. Основанные на Simulink состояния не поддерживаются в автономном Stateflow® графики в MATLAB®. Для получения дополнительной информации смотрите Подсистемы Simulink как состояния.

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

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

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

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

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

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

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

  1. В палитре объектов кликните по значку состояния Simulink.

  2. На холсте графика кликните по местоположению для нового основанного на Simulink состояния.

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

  4. Создайте свою Подсистему Simulink. Эта подсистема выводит Декартовы координаты прыгуна с шестом. Для получения дополнительной информации об этой модели, смотрите доступ к Данным о Состоянии блока.

Создайте основанное на Simulink состояние из Enabled подсистемы

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

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

  2. Из модели скопируйте блок Slipping к вашей диаграмме Stateflow.

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

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

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

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

  2. Скопируйте и вставьте библиотечный блок Run_up к вашей диаграмме Stateflow.

  3. Чтобы отобразить ссылку в нижней части крайний левый угол на соединенной подсистеме, во вкладке Debug, выбирают Information Overlays> Show All Links.

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

Создайте входные и выходные порты

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

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

Создать дополнительный импорт или выходные порты для основанного на Simulink состояния:

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

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

  3. Неопределенный символ in1 появляется в панели Символов вашей диаграммы Stateflow. Чтобы разрешить неопределенный символ, нажмите кнопку Resolve undefined symbols.

  4. Импорт графика под названием In1 создается.

Создайте дополнительный выходной порт

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

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

  2. Откройте график PoleVaulter и дважды кликните основанный на Simulink Take_off состояния.

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

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

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

Для получения дополнительной информации о редактировании данных, смотрите, Добавляют и Изменяют Данные, События и сообщения.

Похожие темы