exponenta event banner

Многократное повторное использование состояния в диаграмме

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

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

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

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

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

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

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

Правка модели для использования атомных вложенных диаграмм

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

Щелкните правой кнопкой мыши состояние A и выберите «Группа и подшаблон» > «Атомарный подшаг». Государство A изменяет атомарную вложенную диаграмму и отображает метку Atomic в левом верхнем углу.

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

  1. Создание новой библиотечной модели.

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

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

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

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

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

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

  3. Измените имя второго атомарного подначисления на B.

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

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

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

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

  1. Правой кнопкой мыши на вложенной диаграмме B и выберите «Сопоставления вложенных диаграмм».

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

  3. В разделе «Сопоставление выходных данных» укажите символ главной диаграммы для y1 быть y2.

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

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

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

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

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

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

См. также

(Simulink)

Связанные темы