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

В этом примере показано, как использовать соединенные атомарные подграфики, чтобы повторить ту же настройку состояний и trasitions многократно в графике 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.

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

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

Похожие темы