Атомарная субдиаграмма является графическим объектом, который помогает вам создать допускающие повторное использование субкомпоненты в Stateflow® график. Атомарное поле является графическим объектом, который помогает вам совместно использовать графический, таблица истинности, MATLAB®, и Simulink® функции через несколько графиков. Атомарные субдиаграммы и поля не поддерживаются в автономных диаграммах Stateflow в MATLAB. Для получения дополнительной информации смотрите, Создают Допускающие повторное использование Субкомпоненты при помощи Атомарных Субдиаграмм и Функции Повторного использования при помощи Атомарных Полей.
Чтобы гарантировать, что каждый символ в вашей атомарной субдиаграмме или поле получает доступ к правильному символу в основном графике, отредактируйте отображение символов субдиаграммы. Щелкните правой кнопкой по субдиаграмме или полю и выберите 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>
.
Нажать ОК.