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

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

Моделирование модели дает эти результаты.

Поскольку в этом примере не используются атомарные подчасти, ведение каждого подкомпонента необходимо выполнять вручную. Например, если изменить логику в состоянии A, то вы должны сделать то же самое изменение в состоянии B.
В отличие от этого, при замене состояний в этом примере атомарными подшаблонами можно повторно использовать один и тот же объект в модели и сохранить те же результаты моделирования. Состояние можно сохранить A в качестве атомарного подзаголовка в библиотечной модели, а затем использовать несколько связанных экземпляров этого подзаголовка в диаграмме. Изменения в библиотечной модели распространяются на все связанные экземпляры вложенной диаграммы.
Шаг 1: Преобразование состояния в атомарную подшарту
Щелкните правой кнопкой мыши состояние A и выберите «Группа и подшаблон» > «Атомарный подшаг». Государство A изменяет атомарную вложенную диаграмму и отображает метку Atomic в левом верхнем углу.

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

Шаг 3: Заменить состояния связанными атомарными субчартами
Удалите оба состояния на диаграмме.
Скопируйте атомарную вложенную диаграмму в библиотеку и вставьте ее в диаграмму дважды.
Измените имя второго атомарного подначисления на B.
Каждый связанный атомарный подчисток выглядит непрозрачным и содержит метку Link в левом верхнем углу.

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

Чтобы исправить эти предупреждения, необходимо отредактировать сопоставление входных и выходных переменных.
Правой кнопкой мыши на вложенной диаграмме B и выберите «Сопоставления вложенных диаграмм».
В разделе «Сопоставление входных данных» укажите символ главной диаграммы для u1 быть u2.
В разделе «Сопоставление выходных данных» укажите символ главной диаграммы для y1 быть y2.
Нажмите кнопку ОК.

При моделировании новой модели результаты соответствуют результатам исходной конструкции.

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

Это изменение распространяется на все связанные атомарные подчасти в главной диаграмме. Обновление каждого состояния по отдельности не требуется.
Синусоидальная волна (Simulink)