Атомарная вложенная диаграмма - это графический объект, который помогает создавать повторно используемые подкомпоненты в диаграмме Stateflow ®. Атомарная рамка - это графический объект, который помогает совместно использовать графическую таблицу, таблицу истинности, функции MATLAB ® и Simulink ® в нескольких диаграммах. Атомарные подграфы и поля поддерживаются только в диаграммах Stateflow в моделях Simulink. Дополнительные сведения см. в разделах Создание многократно используемых подкомпонентов с помощью атомных подчисток и Повторное использование функций с помощью атомных полей.
Чтобы гарантировать, что каждый символ в атомарном подкадре или рамке получает доступ к правильному символу в основной диаграмме, отредактируйте сопоставление символов подкадра. Щелкните правой кнопкой мыши вложенную диаграмму или поле и выберите «Сопоставления вложенных диаграмм». На вкладке «Сопоставления» диалогового окна «Свойства» в раскрывающемся списке «Символ главной диаграммы» укажите, какой символ на главной диаграмме соответствует каждому символу на вложенной диаграмме. Кроме того, можно ввести выражение, определяющее:
Поле структуры Stateflow. См. раздел Индексирование и присвоение значений структурам потока состояний.
Элемент вектора или матрицы. См. раздел Поддерживаемые операции для векторов и матриц.
Любая допустимая комбинация полей структуры или индексов матрицы, например struct.field(1,2) или struct.field[0][1].
Если оставить поле Символ главной диаграммы пустым, то Stateflow попытается сопоставить символ атомной вложенной диаграммы с символом главной диаграммы с тем же именем.
Можно сопоставить символ в атомарном подразделе с символом в основной диаграмме, который имеет другую область действия. В этой таблице перечислены возможные сопоставления.
| Область действия символа атомарного подштриха | Область обозначения главной диаграммы |
|---|---|
| Вход | Вход, Выход, Локальный, Параметр |
| Продукция | Выходные данные, локальные |
| Параметр | Параметр |
| Память хранилища данных | Память хранилища данных, локальная |
| Входное событие | Входное событие |
При сопоставлении памяти хранилища данных в атомарном подграфе с локальными данными перечислимого типа имеется два варианта задания начального значения памяти хранилища данных:
В диалоговом окне Свойства данных установите поле Начальное значение для локальных данных на уровне диаграммы.
Чтобы применить значение по умолчанию перечисляемого типа, оставьте поле Начальное значение пустым.
Эта модель содержит два блока синусоидальной волны, которые подают входные сигналы на диаграмму.

Диаграмма состоит из двух связанных атомных подсхем из одной библиотеки.

Обе атомарные подчасти содержат логику сатуратора для преобразования входной синусоидальной волны в выходную квадратную волну одинаковой частоты.

При моделировании модели вывод для y2 равно нулю.

Поскольку символы в атомарном подграфе А имеют то же имя, что и символы u1 и y1 на главной диаграмме они сопоставляются с правильными переменными. Символы в атомарном подшарте B не отображаются на u2 и y2 в основной диаграмме, поэтому необходимо отредактировать сопоставление.
Щелкните правой кнопкой мыши вложенную диаграмму B и выберите «Сопоставления вложенных диаграмм».
В разделе «Сопоставление входных данных» укажите символ главной диаграммы для u1 быть u2.
В разделе «Сопоставление выходных данных» укажите символ главной диаграммы для y1 быть y2.
Нажмите кнопку ОК.

При повторном запуске модели получаются эти результаты.

Эта модель содержит два блока синусоидальной волны, которые подают сигналы через шину на диаграмму.

Диаграмма состоит из двух связанных атомных подсхем из одной библиотеки. Обе атомарные подчасти содержат логику сатуратора для преобразования входной синусоидальной волны в выходную квадратную волну одинаковой частоты.

При моделировании модели возникает ошибка, так как u1 входные данные в каждом подграфе не сопоставляются ни с какими переменными в основной диаграмме. Редактирование сопоставления для u1 в каждом подграфе:
Щелкните правой кнопкой мыши вложенную диаграмму A и выберите «Сопоставления вложенных диаграмм».
В разделе «Сопоставление входных данных» укажите символ главной диаграммы для u1 быть первым элементом в шине: BusIn.u1.
Нажмите кнопку ОК.
Повторите для подшарника B, указав символ главной диаграммы для u1 быть вторым элементом в шине: BusIn.u2.
При повторном запуске модели получаются эти результаты.

При ссылке на элементы вектора или матрицы, независимо от языка действия диаграммы, используйте:
Одноосновное индексирование, разделенное скобками и запятыми. Например, A(4,5).
Индексация на основе нуля, ограниченная скобками. Например, A[3][4].
Индексы могут быть числами или параметрами на диаграмме. Использование других выражений в качестве индексов не поддерживается.
Например, эта модель содержит два блока синусоидальной волны, которые подают сигналы через диагональную матрицу на диаграмму.

Диаграмма состоит из двух связанных атомных подсхем из одной библиотеки. Обе атомарные подчасти содержат логику сатуратора для преобразования входной синусоидальной волны в выходную квадратную волну одинаковой частоты.

При моделировании модели возникает ошибка, так как u1 входные данные в каждом подграфе не сопоставляются ни с какими переменными в основной диаграмме. Редактирование сопоставления для u1 в каждом подграфе:
Щелкните правой кнопкой мыши вложенную диаграмму A и выберите «Сопоставления вложенных диаграмм».
В разделе «Сопоставление входных данных» укажите символ главной диаграммы для u1 является левым верхним элементом в матрице. Формат индексирования на основе нуля для этого элемента: M[0][0].
Нажмите кнопку ОК.
Повторите для подшарника B, указав символ главной диаграммы для u1 является нижним правым элементом в матрице. Одноосновный формат индексирования для этого элемента: M(2,2).
При повторном запуске модели получаются эти результаты.

Для параметров в атомной вложенной диаграмме можно задать выражение, объединяющее константы, переменные в базовой рабочей области и параметры в основной диаграмме.
Например, эта модель содержит два блока синусоидальной волны, которые подают входные сигналы на диаграмму.

Диаграмма состоит из двух связанных атомных вложенных диаграмм из одной библиотеки. Обе атомарные подчасти содержат логику сатуратора для преобразования входной синусоидальной волны в выходную квадратную волну одинаковой частоты.

При моделировании модели возникает ошибка, так как параметр T не определен. Чтобы исправить эту ошибку, укажите выражение для T для оценки на основной диаграмме:
Щелкните правой кнопкой мыши вложенную диаграмму A и выберите «Сопоставления вложенных диаграмм».
В разделе «Сопоставление параметров» в качестве значения для T, введите -1.
Нажмите кнопку ОК.
Повторите для подшарника B, указав значение T как 2.

При повторном запуске модели получаются эти результаты.

Эта модель содержит блок Mux, который передает входные события на диаграмму.

Диаграмма содержит два суперсостояния: Active и Inactive. Active состояние использует входные события для защиты переходов между различными подстанциями.

Чтобы преобразовать Active состояние к атомарному подначертанию:
Щелкните правой кнопкой мыши Active и выберите «Group & Subchart» > «Atomic Subchart».
Щелкните правой кнопкой мыши атомарную вложенную диаграмму и выберите «Сопоставления вложенных диаграмм».
В разделе Сопоставление входных событий (Input Event Mapping) сопоставьте каждый атомарный символ подначисления с соответствующим входным событием на главной диаграмме.
Нажмите кнопку ОК.

Отключить входные события для атомных вложенных диаграмм
Не каждое входное событие в атомарном подграфе должно соответствовать событию в основной диаграмме. Например, можно создать связанную атомарную вложенную диаграмму, которая не использует весь набор событий, определенных в библиотечной диаграмме. Чтобы отключить входное событие в атомарном подграфе, выполните следующие действия.
Щелкните правой кнопкой мыши атомарную вложенную диаграмму и выберите «Сопоставления вложенных диаграмм».
В разделе Сопоставление событий ввода в выпадающем списке Символ главной диаграммы выберите <disabled>.
Нажмите кнопку ОК.
