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

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

Цель примера

Рассмотрите эту модель:

Главный блок Sine Wave использует частоту 1 радиана в секунду, и нижний блок Sine Wave использует частоту 2 радианов в секунду. Блоки используют ту же амплитуду (1) и сдвиг фазы (0).

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

Когда вы запускаете модель, вы получаете следующие результаты:

Предположим, что вы хотите снова использовать содержимое состояния в графике. Можно преобразовать то состояние в атомарный подграфик и затем использовать несколько соединенных экземпляров того подграфика в графике.

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

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

ШагЗадачаСсылка
1Измените одно из состояний в атомарный подграфик.Преобразуйте состояние в атомарный подграфик
2Создайте библиотеку, которая содержит этот атомарный подграфик.Создайте библиотеку для атомарного подграфика
3Замените состояния в своем графике с соединенными атомарными подграфиками.Замените состояния на соединенные атомарные подграфики
4Отредактируйте отображение переменных ввода и вывода в случае необходимости.Отредактируйте отображение переменных ввода и вывода

Совет

Можно пропустить шаги преобразования и получить доступ к новой модели непосредственно.

Преобразуйте состояние в атомарный подграфик

Чтобы преобразовать состояние в атомарный подграфик, щелкните правой кнопкой по состоянию и выберите Group & Subchart> Atomic Subchart. Состояние изменения в атомарном подграфике:

Создайте библиотеку для атомарного подграфика

Чтобы включить повторное использование атомарного подграфика, вы создали в Преобразовании состояние к Атомарному Подграфику, сохраните атомарный подграфик в библиотеке:

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

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

    Атомарный подграфик появляется как автономный график с входом и выводом. Это автономное свойство позволяет вам снова использовать содержимое атомарного подграфика.

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

Замените состояния на соединенные атомарные подграфики

Заменять состояния в вашем графике с соединенными атомарными подграфиками:

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

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

  3. Переименуйте второй экземпляр как B.

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

Отредактируйте отображение переменных ввода и вывода

Если вы моделируете модель теперь, вывод для y2 является нулем:

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

  1. Откройте диалоговое окно свойств для B.

  2. Кликните по вкладке Mappings.

  3. Под Input Mapping выберите u2 из выпадающего списка.

    Входная переменная в вашем атомарном подграфике теперь сопоставляет с правильной входной переменной в основном графике.

  4. Под Output Mapping выберите y2 из выпадающего списка.

    Выходная переменная в вашем атомарном подграфике теперь сопоставляет с правильной выходной переменной в основном графике.

  5. Нажмите OK.

Запустите новую модель

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

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

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

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