Чтобы переместить содержимое подсистемы в содержащую систему, можно развернуть подсистему.
Для примера, sldemo_enginewc
модель включает Подсистему Горения.
После расширения Подсистемы Горения верхний уровень sldemo_enginewc
модель включает блоки и сигналы Подсистемы Горения. Расширение удаляет блок Subsystem и блоки Inport и Outport.
Разверните подсистему, если вы хотите выровнять иерархию модели, доведя содержимое подсистемы до одного уровня.
Расширение подсистемы полезно при рефакторинге модели. Уплощение иерархии модели может быть конечным результатом или всего одним шагом в рефакторинге. Например, вы можете потянуть набор блоков к родительской системе, развернув подсистему, отменить выбор блоков, которые вы хотите оставить в родительском элементе, а затем создать подсистему из остальных выбранных блоков.
Можно развернуть виртуальные подсистемы, которые не маскированы, не связаны и не комментируются. Если вы пытаетесь развернуть маскированную, связанную или комментируемую подсистему с помощью Simulink® Редактор, сообщение дает вам опцию, чтобы Simulink изменил подсистему, чтобы вы могли затем развернуть ее.
Вид подсистемы | Модификация |
---|---|
Маскированная подсистема | Удаляет всю информацию о маскировке |
Библиотечные ссылки | Разрывает ссылку |
Подсистема с комментариями | Удаление подсистемы |
Вы не можете развернуть эти подсистемы:
Атомарные подсистемы
Условные подсистемы
Конфигурируемые подсистемы
Варианты подсистем
Подсистемы с Read/Write permissions, набор параметров для ReadOnly
или NoReadWrite
Подсистемы с InitFcn
, StartFcn
, PauseFcn
, ContinueFcn
, или StopFcn
коллбэк
Подсистемы со связанными требованиями (с использованием программного обеспечения Simulink Requirements™)
Чтобы интерактивно развернуть подсистему, щелкните правой кнопкой мыши блок Subsystem и в контекстном меню выберите Subsystem & Model Reference > Expand Subsystem.
Чтобы программно расширить подсистему, используйте Simulink.BlockDiagram.expandSubsystem
функция.
Совет
Расширение подсистемы применяется к текущему выбранному уровню подсистемы. Simulink не расширяет другие подсистемы во вложенной иерархии подсистем.
Чтобы улучшить читаемость, когда вы расширяете вложенные подсистемы, начните с расширения подсистемы самого высокого уровня, которую вы хотите расширить, и затем поработайте вниз по иерархии, насколько вы хотите расширить.
Когда вы расширяете подсистему, Simulink:
Удаляет Subsystem блок
Удаляет корневые Inport, корневые Outport и Simscape™ блоки Connection Port, которые находились в подсистеме
Соединяет сигнальные линии, которые шли к входному и выходному портам подсистемы непосредственно к портам блоков в модели, которые соединяются с подсистемой
Распределяет блоки и маршрутизирует сигналы для читаемости.
Пути для блоков, которые находились в расширенной подсистеме, изменяются. После расширения обновляйте скрипты и тестовые обвязки, которые полагаются на иерархические пути к блокам, которые находились в расширенной подсистеме.
Если вы расширяете подсистему с отсутствующим соединением снаружи или внутри подсистемы, Simulink сохраняет метки линий, но использует имя сигнала и свойства только одной из строк. Для линий, соответствующих:
Входной порт подсистемы, Simulink использует имя сигнала и свойства из сигнала в системе, в которой существует подсистема
Выходной порт подсистемы, Simulink использует имя сигнала и свойства от подсистемы
Отображения слои блоков (другими словами, какие блоки появляются спереди или сзади для перекрытия блоков) после расширения не изменяются. Блоки перед блоком Subsystem остаются над развернутым содержимым, а блоки под блоком Subsystem остаются под развернутым содержимым.
Когда вы компилируете модель, Simulink сортирует блоки с точки зрения порядка выполнения блоков. Расширение подсистемы может изменить имена путей блоков, что в редких случаях может повлиять на порядок выполнения блоков.
Если вы явным образом задаете порядок выполнения блока путем установки приоритетов блоков в подсистеме, Simulink удаляет эти настройки приоритета блоков, когда вы расширяете эту подсистему.
Расширение подсистемы, содержащей блок Data Store Memory, который другие подсистемы считывают или записывают в, может изменить необходимую последовательность записи и чтения хранилища данных. Вам может потребоваться реструктуризация модели. Для получения дополнительной информации смотрите Order Data Store Access.