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