В этом примере показано, как использовать связанные атомарные субдиаграммы, чтобы повторить одно и то же строение состояний и переходов несколько раз в графике Stateflow ®. Атомарные субдиаграммы поддерживаются только в диаграммах Stateflow в моделях Simulink ®. Для получения дополнительной информации смотрите Создание переиспользуемых подкомпонентов при помощи атомарных субдиаграмм.
Эта модель содержит два блока Sine Wave (Simulink): один с частотой 1 радиан в секунду, и другой с частотой 2 радиана в секунду.
На графике каждое состояние использует логику сатуратора, чтобы преобразовать вход синусоиды в выход квадратную волну с той же частотой. Состояния выполняют те же действия и отличаются только именами своих входных и выходных данных.
Симуляция модели дает эти результаты.
Поскольку этот пример не использует атомарные субдиаграммы, вы должны вести каждый подкомпонент вручную. Для примера, если вы меняете логику в состоянии A
, тогда вы должны сделать то же изменение в состоянии B
.
Напротив, если вы заменяете состояния в этом примере атомарными субдиаграммами, можно повторно использовать тот же объект в модели и сохранить те же результаты симуляции. Можно сохранить состояние A
как атомарная субдиаграмма в библиотечной модели, а затем используйте несколько связанные образцы этой субдиаграммы на графике. Изменения в модели библиотеки распространяются на все связанные образцы субдиаграммы.
Шаг 1. Преобразование состояния в атомарную субдиаграмму
Щелкните правой кнопкой мыши состояние A
и выберите Group & Subchart > Atomic Subchart. Конечные A
изменяется на атомарной субдиаграмме и отображает метку Atomic в левом верхнем углу.
Шаг 2: Создайте библиотеку для атомарной субдиаграммы
Создайте новую модель библиотеки.
Скопируйте атомарную субдиаграмму и вставьте его в модель библиотеки.
Сохраните модель библиотеки.
В модели библиотеки атомарная субдиаграмма появляется как независимая диаграмма с входом портом и выходом портом.
Шаг 3: Замените состояния связанными атомарными субдиаграммами
Удалите оба состояния на графике.
Скопируйте атомарную субдиаграмму в библиотеку и дважды вставьте его в график.
Измените имя второй атомарной субдиаграммы на B
.
Каждая связанная атомарная субдиаграмма появляется непрозрачным и содержит метку ссылка в левом верхнем углу.
Шаг 4: Правка отображения Входа и Выхода переменных
Если вы симулируете модель сейчас, выход для y2
равен нулю. Вы также видите предупреждения о неиспользованных данных. Эти предупреждения появляются из-за атомарной субдиаграммы B
использует u1
и y1
вместо u2
и y2
.
Чтобы исправить эти предупреждения, необходимо отредактировать отображения входа и выходных переменных.
Щелкните правой кнопкой мыши субдиаграмма B
и выберите Субдиаграмму Отображений.
В разделе «Вход отображений» задайте символ главного графика для u1
чтобы быть u2
.
В разделе Output Mapping задайте символ основного графика для y1
чтобы быть y2
.
Нажмите кнопку ОК.
Когда вы моделируете новую модель, результаты совпадают с результатами исходного проекта.
Предположим, что в библиотечном графике вы редактируете переход от Pos
на Neg
.
Это изменение распространяется на все связанные атомарные субдиаграммы на вашем главном графике. Вы не должны обновлять каждое состояние индивидуально.
Sine Wave (Simulink)