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

Введите метку состояния. В этом примере, модели состояния прыгун с шестом, запускающийся вдоль плоской поверхности, таким образом, меткой состояния является 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.
Для получения дополнительной информации о редактировании данных, смотрите, Добавляют и Изменяют Данные, События и сообщения.