Атомарная субдиаграмма является графическим объектом, который помогает вам создать независимые подкомпоненты в Stateflow® график. Атомарные субдиаграммы поддерживаются только в диаграммах Stateflow в Simulink® модели. Для получения дополнительной информации смотрите Создание переиспользуемых подкомпонентов при помощи атомарных субдиаграмм.
Графики Мура не имеют той же симуляции поведения, что и диаграммы Classic Stateflow с теми же конструкциями.
Непрерывные графики не поддерживают атомарные субдиаграммы.
Вы получаете предупреждение, когда следующие условия верны:
Свойство графика Execute (enter) Chart At Initialization включено.
Путь перехода по умолчанию для графика достигает атомарной субдиаграммы.
Если задан entry
действие внутри атомарной субдиаграммы требует доступа к входу на графике или памяти хранилища данных, можно получить неточные результаты. Чтобы избежать этого предупреждения, можно отключить Execute (enter) Chart At Initialization или перенаправить путь перехода по умолчанию от атомарной субдиаграммы.
Для получения дополнительной информации о поведении инициализации выполнения смотрите Выполнение графика при инициализации.
Когда вы используете связанные атомарные субдиаграммы, проверьте, что ваши настройки для семантики супер шага совпадают с настройками на основном графике. Для получения дополнительной информации см. Раздел «Семантика супер-шагов».
Обязательно задайте данные, которые появляются в атомарной субдиаграмме явно на основном графике. Атомарные субдиаграммы могут получить доступ только к данным основного графика, размер, тип и сложность которых полностью заданы. Для получения дополнительной информации смотрите Задать свойства данных.
Когда вы используете связанные атомарные субдиаграммы, сопоставьте переменные так, чтобы данные в субдиаграмме соответствовали правильным данным на основном графике. Сопоставьте переменные субдиаграммы вручную, если при добавлении субдиаграммы переменные не имеют тех же имен, что и соответствующие символы на основном графике. Для получения дополнительной информации смотрите Map Переменных для Atomic Субдиаграмм и Boxes.
Проверьте, что размер, тип и сложность переменных в субдиаграмме совпадают с настройками соответствующих переменных в основном графике. Для получения дополнительной информации смотрите Map Переменных для Atomic Субдиаграмм и Boxes.
Атомарные субдиаграммы не поддерживают массивы переменного размера. Если вы выбираете свойство Variable Size объекта данных субдиаграммы, ошибка возникает при попытке обновить схему или моделировать модель.
Когда память хранилища данных в атомарной субдиаграмме преобразуется в локальные данные уровня диаграммы, свойство First index локальных данных должно оставаться нулем. Если вы меняете First index на ненулевое значение, ошибка возникает, когда вы пытаетесь обновить схему или симулировать модель.
Если атомарная субдиаграмма сопоставляет переменные на уровне основного графика с другими возможностями, вы не можете записывать сигналы для графика.
Если ваш график содержит атомарные субдиаграммы, не используйте партированные с машиной данные со следующими свойствами:
Импортировано или экспортировано
Является 2-D или выше, или использует тип с фиксированной точкой
Помеченные машиной данные с этими свойствами препятствуют повторному использованию сгенерированного кода и другой оптимизации кода.
Если параметр в атомарной субдиаграмме совпадает с именем параметра встроенной подсистемы 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 локальных данных должно быть нулем, что является значением по умолчанию.
Состояние или субдиаграмма, который вы хотите преобразовать в атомарную субдиаграмму, не могут находиться в графике, которая использует данные с пометкой машины со следующими свойствами:
Импортировано или экспортировано
Является 2-D или выше, или использует тип с фиксированной точкой
Помеченные машиной данные с этими свойствами препятствуют повторному использованию сгенерированного кода и другой оптимизации кода.
Чтобы преобразовать состояние или субдиаграмму в атомарную субдиаграмму, ваш график должен использовать сильное типирование данных с входами и выходами Simulink. Для получения дополнительной информации смотрите Использование сильного набора данных с Simulink ввод-вывод.
Состояние или субдиаграмма, который вы хотите преобразовать в атомарную субдиаграмму, не может ссылаться на:
Локальные события, которые находятся вне возможностей этого состояния или субдиаграммы
Выходные события
Состояние или субдиаграмма, который вы хотите преобразовать, может ссылаться на входные события.
Вы не можете использовать маскированную библиотеку графика, содержащую параметры маски, в качестве атомарной субдиаграммы.