В этом примере показано, как использовать соединенные атомарные субдиаграммы, чтобы повторить ту же настройку состояний и переходов многократно в графике Stateflow®. Атомарные субдиаграммы поддерживаются только в диаграммах Stateflow в моделях Simulink®. Для получения дополнительной информации смотрите, Создают Допускающие повторное использование Субкомпоненты при помощи Атомарных Субдиаграмм.
Эта модель содержит два Sine wave (Simulink) блоки: один с частотой 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
.
Это изменение распространяет ко всем соединенным атомарным субдиаграммам в вашем основном графике. Вы не должны обновлять каждое состояние индивидуально.
Sine Wave (Simulink)