Повторно используйте состояние несколько раз в графике

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

Исходная модель без атомарных субдиаграмм

Эта модель содержит два блока Sine Wave (Simulink): один с частотой 1 радиан в секунду, и другой с частотой 2 радиана в секунду.

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

Симуляция модели дает эти результаты.

Поскольку этот пример не использует атомарные субдиаграммы, вы должны вести каждый подкомпонент вручную. Для примера, если вы меняете логику в состоянии A, тогда вы должны сделать то же изменение в состоянии B.

Напротив, если вы заменяете состояния в этом примере атомарными субдиаграммами, можно повторно использовать тот же объект в модели и сохранить те же результаты симуляции. Можно сохранить состояние A как атомарная субдиаграмма в библиотечной модели, а затем используйте несколько связанные образцы этой субдиаграммы на графике. Изменения в модели библиотеки распространяются на все связанные образцы субдиаграммы.

Отредактируйте модель, чтобы использовать атомарные субдиаграммы

Шаг 1. Преобразование состояния в атомарную субдиаграмму

Щелкните правой кнопкой мыши состояние A и выберите Group & Subchart > Atomic Subchart. Конечные A изменяется на атомарной субдиаграмме и отображает метку Atomic в левом верхнем углу.

Шаг 2: Создайте библиотеку для атомарной субдиаграммы

  1. Создайте новую модель библиотеки.

  2. Скопируйте атомарную субдиаграмму и вставьте его в модель библиотеки.

  3. Сохраните модель библиотеки.

В модели библиотеки атомарная субдиаграмма появляется как независимая диаграмма с входом портом и выходом портом.

Шаг 3: Замените состояния связанными атомарными субдиаграммами

  1. Удалите оба состояния на графике.

  2. Скопируйте атомарную субдиаграмму в библиотеку и дважды вставьте его в график.

  3. Измените имя второй атомарной субдиаграммы на B.

Каждая связанная атомарная субдиаграмма появляется непрозрачным и содержит метку ссылка в левом верхнем углу.

Шаг 4: Правка отображения Входа и Выхода переменных

Если вы симулируете модель сейчас, выход для y2 равен нулю. Вы также видите предупреждения о неиспользованных данных. Эти предупреждения появляются из-за атомарной субдиаграммы B использует u1 и y1 вместо u2 и y2.

Чтобы исправить эти предупреждения, необходимо отредактировать отображения входа и выходных переменных.

  1. Щелкните правой кнопкой мыши субдиаграмма B и выберите Субдиаграмму Отображений.

  2. В разделе «Вход отображений» задайте символ главного графика для u1 чтобы быть u2.

  3. В разделе Output Mapping задайте символ основного графика для y1 чтобы быть y2.

  4. Нажмите кнопку ОК.

Запуск новой модели

Когда вы моделируете новую модель, результаты совпадают с результатами исходного проекта.

Распространение изменения в библиотечном Графике

Предположим, что в библиотечном графике вы редактируете переход от Pos на Neg.

Это изменение распространяется на все связанные атомарные субдиаграммы на вашем главном графике. Вы не должны обновлять каждое состояние индивидуально.

См. также

(Simulink)

Похожие темы