К системам модели, которые переключаются между периодической или непрерывной динамикой времени, используйте Simulink® основанные состояния. Основанные на Simulink состояния не поддерживаются в автономном Stateflow® графики в MATLAB®. Для получения дополнительной информации смотрите Подсистемы Simulink как состояния.
Можно создать основанное на Simulink состояние при помощи палитры объектов. К системам повторного использования из отдельных моделей Simulink копия и вставка включили подсистемы. К подсистемам повторного использования в нескольких диаграммах Stateflow, копии и подсистемах действия вставки, которые сохранены в библиотеке.
Чтобы создать основанное на Simulink состояние, выполнить одно из следующих действий:
Создайте пустое основанное на Simulink состояние при помощи основанного на Simulink значка палитры состояния.
Создайте основанное на Simulink состояние из другой модели путем копирования активированной подсистемы или подсистемы действия к диаграмме Stateflow.
Создайте соединенное основанное на Simulink состояние путем копирования подсистемы действия от библиотеки до диаграммы Stateflow.
В палитре объектов кликните по значку состояния Simulink.
На холсте графика кликните по местоположению для нового основанного на Simulink состояния.
Введите имя для состояния. В этом примере, модели состояния прыгун с шестом, запускающийся вдоль плоской поверхности, таким образом, меткой состояния является Run_up
. Основанные на Simulink состояния являются подсистемами действия, таким образом, Порт Действия появляется с вашим новым состоянием.
Создайте свою Подсистему Simulink. Эта подсистема выводит Декартовы координаты прыгуна с шестом. Для получения дополнительной информации об этой модели, смотрите доступ к Данным о Состоянии блока.
Чтобы создать основанное на Simulink состояние в вашей диаграмме Stateflow, скопируйте включенные подсистемы с отдельных моделей Simulink. Можно снова использовать компоненты из моделей Simulink в диаграмме Stateflow, не создавая совершенно новое основанное на Simulink состояние.
Откройте sf_clutch_enabled_subsystems
модель.
Из модели скопируйте блок Slipping
к вашей диаграмме Stateflow.
Импорт и выходные порты вашей Подсистемы Simulink появляются как неопределенные символы в вашей диаграмме Stateflow. Чтобы добавить соответствующие входные и выходные данные в вашу диаграмму Stateflow, нажмите кнопку Resolve undefined symbols.
Чтобы создать соединенное основанное на Simulink состояние в вашей диаграмме Stateflow, скопируйте подсистему действия от библиотеки до Stateflow. Когда библиотечный блок обновляется, изменения отражаются во всех диаграммах Stateflow, содержащих блок.
Откройте модель библиотеки.
Скопируйте и вставьте библиотечный блок Run_up
к вашей диаграмме Stateflow.
Чтобы отобразить ссылку в нижней части крайний левый угол на соединенной подсистеме, во вкладке Debug, выбирают Information Overlays> Show All Links.
Выходные порты этой Подсистемы Simulink, xy
, появляется как неопределенный символ в вашей диаграмме Stateflow. Чтобы добавить соответствие выходные данные в вашу диаграмму Stateflow, нажмите кнопку Resolve undefined symbols.
При использовании основанных на Simulink состояний импорт и выходные порты для вашей Подсистемы Simulink соединяются с входными и выходными данными на уровне диаграммы Stateflow. Эта связь позволяет модели Simulink верхнего уровня считывать данные из подсистемы, содержавшей в вашем основанном на Simulink состоянии.
Когда вы создаете пустое основанное на Simulink состояние, Stateflow создает вводы и выводы в вашей Подсистеме Simulink, которые соответствуют вводам и выводам, которые существуют в родительской диаграмме Stateflow. Однако, если вы добавляете импорт и выходные порты к вашему основанному на Simulink состоянию после того, как оно создается, необходимо создать соответствующие входные и выходные данные для диаграммы Stateflow.
Создать дополнительный импорт или выходные порты для основанного на Simulink состояния:
Откройте свое основанное на Simulink состояние.
Кликните по холсту Simulink, введите in1
, и нажмите Enter. Создается неопределенный импорт.
Неопределенный символ in1
появляется в панели Символов вашей диаграммы Stateflow. Чтобы разрешить неопределенный символ, нажмите кнопку Resolve undefined symbols.
Импорт графика под названием In1
создается.
В этом примере вы создаете дополнительный выходной порт для модели sf_pole_vault
:
Откройте модель.
Откройте график PoleVaulter
и дважды кликните основанный на Simulink Take_off
состояния.
Нажмите основанный на Simulink холст состояния и введите out1
и нажмите Enter. Создается неопределенный выходной порт. Переименуйте выходной порт theta_out
и соедините его с сигналом для theta.
В панели Символов PoleVaulter
, неопределенный символ для theta_out
появляется. Чтобы разрешить неопределенный символ, нажмите кнопку Resolve undefined symbols.
Stateflow создает выход в графике под названием theta_out
это соответствует выходному порту theta_out
.
Для получения дополнительной информации о редактировании данных, смотрите, Добавляют и Изменяют Данные, События и сообщения.