Атомарный подграфик является графическим объектом, который помогает вам создать допускающие повторное использование субкомпоненты в графике Stateflow®. Атомарное поле является графическим объектом, который помогает вам совместно использовать графический, таблица истинности, MATLAB® и функции Simulink® через несколько графиков. Атомарные подграфики и поля поддерживаются только в диаграммах Stateflow в моделях Simulink. Для получения дополнительной информации смотрите, Создают Допускающие повторное использование Субкомпоненты при помощи Атомарных Подграфиков и Функции Повторного использования при помощи Атомарных Полей.
Чтобы гарантировать, что каждый символ в вашем атомарном подграфике или поле получает доступ к правильному символу в основном графике, отредактируйте отображение символов подграфика. Щелкните правой кнопкой по подграфику или полю и выберите Subchart Mappings. Во вкладке Mappings диалогового окна свойств используйте Main chart symbol выпадающий список, чтобы задать, какой символ в основном графике соответствует каждому символу в подграфике. В качестве альтернативы можно ввести определение выражения:
Поле структуры Stateflow. Смотрите индекс и Значения Присвоения к Структурам Stateflow.
Элемент вектора или матрицы. Смотрите Поддерживаемые Операции для Векторов и Матриц.
Любая допустимая комбинация полей структуры или матричных индексов, таких как struct.field(1,2)
или struct.field[0][1]
.
Если вы оставляете поле Main chart symbol пустым, то Stateflow пытается сопоставить атомарный символ подграфика с основным символом графика с тем же именем.
Можно сопоставить символ в атомарном подграфике к символу в основном графике, который имеет различный осциллограф. Эта таблица приводит возможные отображения.
Атомарный осциллограф символа подграфика | Основной осциллограф символа графика |
---|---|
Входной параметр | Введите, Выход, локальный, параметр |
Вывод | Выведите, локальный |
Параметр | Параметр |
Память хранилища данных | Память хранилища данных, локальная |
Введите событие | Введите событие |
Когда вы сопоставляете память хранилища данных в атомарном подграфике к локальным данным перечислимого типа, у вас есть две опции для определения начального значения памяти хранилища данных:
В диалоговом окне Свойств данных, набор поле Initial value для уровня графика локальные данные.
Чтобы применить значение по умолчанию перечислимого типа, оставьте поле Initial value пустым.
Эта модель содержит два блока Sine wave, которые предоставляют входные сигналы к графику.
График состоит из двух соединенных атомарных подграфиков от той же библиотеки.
Оба атомарных подграфика содержат логику сатуратора, чтобы преобразовать входную синусоиду в выходную прямоугольную волну той же частоты.
Если вы симулируете модель, выход для y2
нуль.
Поскольку символы в атомарном подграфике A имеют то же имя как символы u1
и y1
в основном графике они сопоставляют с правильными переменными. Символы в атомарном подграфике B не сопоставляют с u2
и y2
в основном графике, таким образом, необходимо отредактировать отображение.
Щелкните правой кнопкой по подграфику B и выберите Subchart Mappings.
При Входном Отображении задайте основной символ графика для u1
быть u2
.
При Выходном Отображении задайте основной символ графика для y1
быть y2
.
Нажать ОК.
Когда вы запускаете модель снова, вы получаете эти результаты.
Эта модель содержит два блока Sine wave, которые предоставляют сигналы через шину к графику.
График состоит из двух соединенных атомарных подграфиков от той же библиотеки. Оба атомарных подграфика содержат логику сатуратора, чтобы преобразовать входную синусоиду в выходную прямоугольную волну той же частоты.
Если вы симулируете модель, вы получаете ошибку потому что u1
входные параметры в каждом подграфике не сопоставляют ни с какими переменными в основном графике. Отредактировать отображение для u1
в каждом подграфике:
Щелкните правой кнопкой по подграфику A и выберите Subchart Mappings.
При Входном Отображении задайте основной символ графика для u1
быть первым элементом в шине: BusIn.u1
.
Нажать ОК.
Повторитесь для подграфика B, задав основной символ графика для u1
быть вторым элементом в шине: BusIn.u2
.
Когда вы запускаете модель снова, вы получаете эти результаты.
Когда обращение к элементам вектора или матрицы, независимо от языка действия графика, использует:
Индексация на основе одна разграничена круглыми скобками и запятыми. Например, A(4,5)
.
Основанная на нуле индексация разграничена скобками. Например, A[3][4]
.
Индексы могут быть числами или параметрами в графике. Использование других выражений как индексы не поддержано.
Например, эта модель содержит два блока Sine wave, которые предоставляют сигналы через диагональную матрицу к графику.
График состоит из двух соединенных атомарных подграфиков от той же библиотеки. Оба атомарных подграфика содержат логику сатуратора, чтобы преобразовать входную синусоиду в выходную прямоугольную волну той же частоты.
Если вы симулируете модель, вы получаете ошибку потому что u1
входные параметры в каждом подграфике не сопоставляют ни с какими переменными в основном графике. Отредактировать отображение для u1
в каждом подграфике:
Щелкните правой кнопкой по подграфику A и выберите Subchart Mappings.
При Входном Отображении задайте основной символ графика для u1
быть верхним левым элементом в матрице. Основанным на нуле форматом индексации для этого элемента является M[0][0]
.
Нажать ОК.
Повторитесь для подграфика B, задав основной символ графика для u1
быть нижним правым элементом в матрице. Форматом индексации на основе одним для этого элемента является M(2,2)
.
Когда вы запускаете модель снова, вы получаете эти результаты.
Для параметров в атомарном подграфике можно задать константное выражение или выражение, которое зависит от одного или нескольких параметров в основном графике.
Например, эта модель содержит два блока Sine wave, которые предоставляют входные сигналы к графику.
График состоит из два, соединил атомарный подграфик от той же библиотеки. Оба атомарных подграфика содержат логику сатуратора, чтобы преобразовать входную синусоиду в выходную прямоугольную волну той же частоты.
Если вы симулируете модель, вы получаете ошибку потому что параметр T
isundefined. Чтобы зафиксировать эту ошибку, задайте выражение для T
оценивать в основном графике:
Щелкните правой кнопкой по подграфику A и выберите Subchart Mappings.
При Отображении Параметра, как значение для T
, введите -1
.
Нажать ОК.
Повторитесь для подграфика B, задав значение T
как 2
.
Когда вы запускаете модель снова, вы получаете эти результаты.
Эта модель содержит блок Mux, который предоставляет входные события к графику.
График содержит два сверхсостояния: Active
и Inactive
. Active
утвердите входные события использования, чтобы охранять переходы между различными подсостояниями.
Преобразовывать Active
утвердите к атомарному подграфику:
Щелкните правой кнопкой по Active
утвердите и выберите Group & Subchart> Atomic Subchart.
Щелкните правой кнопкой по атомарному подграфику и выберите Subchart Mappings.
При Входном Отображении События сопоставьте каждый атомарный символ подграфика с соответствующим входным событием в основном графике.
Нажать ОК.
Отключите входные События для атомарных подграфиков
Не каждое входное событие в атомарном подграфике должно соответствовать событию в основном графике. Например, можно создать соединенный атомарный подграфик, который не использует целый набор событий, которые заданы в графике библиотеки. Отключить входное событие в атомарном подграфике:
Щелкните правой кнопкой по атомарному подграфику и выберите Subchart Mappings.
При Входном Отображении События, в основном символе графика выпадающий список, выбирают <disabled>
.
Нажать ОК.