В этом примере показано, как использовать соединенные атомарные подграфики, чтобы повторить ту же настройку состояний и trasitions многократно в графике Stateflow®. Атомарные подграфики поддерживаются только в диаграммах Stateflow в моделях Simulink®. Для получения дополнительной информации смотрите, Создают Допускающие повторное использование Субкомпоненты при помощи Атомарных Подграфиков.
Эта модель содержит два блока Sine wave: один с частотой 1 радиана в секунду и другим с частотой 2 радианов в секунду.
В графике каждое состояние использует логику сатуратора, чтобы преобразовать входную синусоиду в выходную прямоугольную волну той же частоты. Состояния выполняют те же действия и отличаются только по именам их входных и выходных данных.
Симуляция модели приводит к этим результатам.
Поскольку этот пример не использует атомарные подграфики, необходимо обеспечить каждый субкомпонент вручную. Например, если вы изменяете логику в A
состояния, затем необходимо внести то же изменение в
B
состояния.
В отличие от этого, если вы заменяете состояния в этом примере с атомарными подграфиками, можно снова использовать тот же объект в модели и сохранить те же результаты симуляции. Можно сохранить A
состояния как атомарный подграфик в модели библиотеки и затем используют несколько соединенных экземпляров того подграфика в вашем графике. Изменения в модели библиотеки распространяют ко всем соединенным экземплярам подграфика.
Шаг 1: преобразуйте состояние в атомарный подграфик
Щелкните правой кнопкой по A
состояния и выберите Group & Subchart> Atomic Subchart.
A
состояния изменения в атомарном подграфике и отображениях метка Atomic в верхнем левом углу.
Шаг 2: создайте библиотеку для атомарного подграфика
Создайте новую модель библиотеки.
Скопируйте атомарный подграфик и вставьте его в вашу модель библиотеки.
Сохраните свою модель библиотеки.
В модели библиотеки атомарный подграфик появляется как независимый график с входным портом и выходным портом.
Шаг 3: замените состояния на соединенные атомарные подграфики
Удалите оба состояния в графике.
Скопируйте атомарный подграфик в своей библиотеке и вставьте его в ваш график дважды.
Поменяйте имя второго атомарного подграфика к B
.
Каждый соединенный атомарный подграфик кажется непрозрачным и содержит метку Link в верхнем левом углу.
Шаг 4: отредактируйте отображение переменных ввода и вывода
Если вы симулируете модель теперь, выход для y2
нуль. Вы также видите предупреждения о неиспользованных данных. Эти предупреждения появляются потому что атомарный подграфик B
использование u1
и y1
вместо u2
и y2
.
Чтобы зафиксировать эти предупреждения, необходимо отредактировать отображение переменных ввода и вывода.
Щелкните правой кнопкой подстроят диаграмму B
и выберите Subchart Mappings.
При Входном Отображении задайте основной символ графика для u1
быть u2
.
При Выходном Отображении задайте основной символ графика для y1
быть y2
.
Нажать ОК.
Когда вы симулируете новую модель, результаты совпадают с теми из первоначального проекта.
Предположим, что в графике библиотеки вы редактируете переход от Pos
к Neg
.
Это изменение распространяет ко всем соединенным атомарным подграфикам в вашем основном графике. Вы не должны обновлять каждое состояние индивидуально.