Атомарная субдиаграмма является графическим объектом, который помогает вам создать независимые субкомпоненты в графике Stateflow®. Атомарные субдиаграммы поддерживаются только в диаграммах Stateflow в моделях Simulink®. Для получения дополнительной информации смотрите, Создают Допускающие повторное использование Субкомпоненты при помощи Атомарных Субдиаграмм.
Графики Мура не имеют того же поведения симуляции как Классические диаграммы Stateflow с теми же построениями.
Графики непрерывного времени не поддерживают атомарные субдиаграммы.
Вы получаете предупреждение, когда следующие условия верны:
Свойство диаграммы Execute (enter) Chart At Initialization включено.
Путь к переходу по умолчанию графика достигает атомарной субдиаграммы.
Если entry
действие в атомарной субдиаграмме требует доступа к входу графика или памяти хранилища данных, можно получить неточные результаты. Чтобы избежать этого предупреждения, можно отключить Execute (enter) Chart At Initialization или перенаправить путь к переходу по умолчанию далеко от атомарной субдиаграммы.
Для получения дополнительной информации о выполните в инициализации поведение, смотрите Выполнение Графика при Инициализации.
Когда вы используете соединенные атомарные субдиаграммы, проверяете, что ваши настройки для супер семантики шага совпадают с настройками в основном графике. Для получения дополнительной информации смотрите Супер Семантику Шага.
Обязательно задайте данные, которые появляются в атомарной субдиаграмме явным образом в основном графике. Атомарные субдиаграммы могут только получить доступ к основным данным о графике, размер которых, введите, и сложность полностью задана. Для получения дополнительной информации смотрите Set Data Properties.
Когда вы используете соединенные атомарные субдиаграммы, сопоставляете переменные так, чтобы данные в субдиаграмме соответствовали правильным данным в основном графике. Сопоставьте переменные субдиаграммы вручную, если, когда вы добавляете субдиаграмму, переменные не имеют тех же имен как соответствующие символы в основном графике. Для получения дополнительной информации смотрите Переменные Карты для Атомарных Субдиаграмм и Полей.
Проверьте, что размер, введите, и сложность переменных в субдиаграмме совпадает с настройками соответствующих переменных в основном графике. Для получения дополнительной информации смотрите Переменные Карты для Атомарных Субдиаграмм и Полей.
Атомарные субдиаграммы не поддерживают массивы переменного размера. Если вы выбираете свойство Variable Size объекта данных субдиаграммы, ошибка происходит, когда вы пытаетесь обновить схему или симулировать модель.
Когда память хранилища данных в атомарной субдиаграмме сопоставляет с уровнем графика локальные данные, свойство First index локальных данных должно остаться нуль. Если вы изменяете First index в ненулевое значение, ошибка происходит, когда вы пытаетесь обновить схему или симулировать модель.
Если атомарная субдиаграмма сопоставляет переменные с переменными на основном уровне графика с различным осциллографом, вы не можете регистрировать сигналы для графика.
Если ваш график содержит атомарные субдиаграммы, не используйте порожденные машиной данные со следующими свойствами:
Импортированный или экспортируемый
2D или выше, или использует фиксированную точку
Порожденные машиной данные с этими свойствами предотвращают повторное использование сгенерированного кода и другой оптимизации кода.
Если параметр в атомарной субдиаграмме совпадает с именем Simulink встроенный параметр подсистемы, единственное отображение допускало тот параметр, Inherited
. Определение любого другого отображения параметра во вкладке Mappings диалогового окна свойств вызывает ошибку. Можно, однако, изменить значение параметров в подсказке MATLAB® так, чтобы все экземпляры того параметра имели то же значение.
Получить список параметров Подсистемы Simulink, введите:
param_list = sort(fieldnames(get_param('built-in/subsystem', 'ObjectParameters')));
Входные события в атомарной субдиаграмме должны все использовать запускаемый фронтом тип, или они должны все использовать тип вызова функции. Это ограничение сопоставимо с поведением для контейнерного графика. Для получения дополнительной информации смотрите Лучшые практики для Использования Событий в диаграммах Stateflow.
Вы не можете использовать исходящие переходы от атомарной субдиаграммы, которая использует локальные события в верхнем уровне субдиаграммы. Используя эту настройку вызывает ошибку симуляции.
Каждое входное событие в атомарной субдиаграмме должно сопоставить с входным событием того же триггерного типа в контейнерном графике.
Каждое входное событие в атомарной субдиаграмме должно сопоставить с уникальным входным событием в контейнерном графике. Можно проверить уникальные отображения входных событий путем открытия диалогового окна свойств для атомарной субдиаграммы и проверки раздела Input Event Mapping вкладки Mappings.
Если ваша атомарная субдиаграмма содержит вызов функции к функции уровня графика, этой функции экспорта путем выбора Export Chart Level Functions. Не экспортируйте графические функции от атомарной субдиаграммы, которая сопоставляет переменные с переменными на основном уровне графика с различным осциллографом. Для получения дополнительной информации смотрите Экспорт Функции Stateflow для Повторного использования.
Состояние или субдиаграмма, которую вы хотите преобразовать в атомарную субдиаграмму, не могут иметь никаких суперпереходов, пересекающих контур.
Чтобы преобразовать состояние или субдиаграмму к атомарной субдиаграмме, доступ к объектам, не порожденным состоянием или субдиаграммой, должен быть одним из следующего:
Данные уровня графика
Графические функции уровня графика
Введите события
Если состояние или субдиаграмма получают доступ к графической функции уровня графика, график должен экспортировать эту функцию. Для получения дополнительной информации смотрите Экспорт Функции Stateflow для Повторного использования.
Не экспортируйте графические функции от атомарной субдиаграммы, которая сопоставляет переменные с переменными на основном уровне графика с различным осциллографом.
Состояние или субдиаграмма, которую вы хотите преобразовать в атомарную субдиаграмму, не могут получить доступ к локальным данным, где свойство First index является ненулевым. Для процесса преобразования, чтобы работать, свойство First index локальных данных должно быть нулем, который является значением по умолчанию.
Состояние или субдиаграмма, которую вы хотите преобразовать в атомарную субдиаграмму, не могут находиться в графике, который использует порожденные машиной данные со следующими свойствами:
Импортированный или экспортируемый
2D или выше, или использует фиксированную точку
Порожденные машиной данные с этими свойствами предотвращают повторное использование сгенерированного кода и другой оптимизации кода.
Чтобы преобразовать состояние или субдиаграмму к атомарной субдиаграмме, ваш график должен использовать сильный ввод данных с вводами и выводами Simulink. Для получения дополнительной информации смотрите Использование сильный ввод данных с вводом-выводом Simulink.
Состояние или субдиаграмма, которую вы хотите преобразовать в атомарную субдиаграмму, не могут относиться к:
Локальные события, которые выходят за рамки того состояния или субдиаграммы
Выведите события
Состояние или субдиаграмма, которую вы хотите преобразовать, могут относиться, чтобы ввести события.
Вы не можете использовать график библиотеки маскированный, содержащий параметры маски как атомарная субдиаграмма.