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

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

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

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

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

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

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

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

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

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

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

  3. Чтобы поместить новое основанное на Simulink состояние, кликните по холсту Stateflow. Появляется теневое состояние.

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

  5. Создайте свою Подсистему 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. Чтобы отобразить ссылку в нижней части крайний левый угол на соединенной подсистеме, выберите Display> Library Links> All.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Похожие темы