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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  1. Щелкните правой кнопкой по субдиаграмме B и выберите Subchart Mappings.

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

  3. При Выходном Отображении задайте основной символ графика для y1 быть y2.

  4. Нажать ОК.

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

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

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

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

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

Смотрите также

Похожие темы