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


После того, как вы развернете подсистему сгорания, верхний уровень sldemo_enginewc модель включает в себя блоки и сигналы подсистемы сжигания. Расширение удаляет блок Subsystem и блоки Inport и Outport.

Разверните подсистему, если требуется выровнять иерархию модели, подняв содержимое подсистемы на один уровень.
Расширение подсистемы полезно при рефакторинге модели. Сведение иерархии модели может быть конечным результатом или всего лишь одним шагом в рефакторинге. Например, можно переместить набор блоков в родительскую систему, развернув подсистему, отменить выделение блоков, которые необходимо оставить в родительской системе, а затем создать подсистему из оставшихся выбранных блоков.
Можно развернуть виртуальные подсистемы, которые не маскируются, не связаны и не комментируются. При попытке развернуть подсистему с масками, связями или комментариями с помощью Simulink ® Editor появляется сообщение о том, что Simulink может изменить подсистему таким образом, чтобы ее можно было развернуть.
| Тип подсистемы | Модификация |
|---|---|
Маскированная подсистема | Удаляет все сведения о маскировании |
Ссылки на библиотеки | Разрыв ссылки |
Подсистема с комментариями | Раскомментирует подсистему |
Невозможно развернуть следующие подсистемы:
Атомные подсистемы
Условные подсистемы
Конфигурируемые подсистемы
Вариационные подсистемы
Подсистемы с параметром разрешения на чтение/запись, равным ReadOnly или NoReadWrite
Подсистемы с InitFcn, StartFcn, PauseFcn, ContinueFcn, или StopFcn отзыв
Подсистемы со связанными требованиями (с использованием программного обеспечения Simulink Requirements™)
Для интерактивного развертывания подсистемы щелкните правой кнопкой мыши блок «Подсистема» и в контекстном меню выберите «Подсистема и ссылка на модель» > «Развернуть подсистему».
Чтобы программно развернуть подсистему, используйте Simulink.BlockDiagram.expandSubsystem функция.
Совет
Расширение подсистемы относится к текущему выбранному уровню подсистемы. Simulink не расширяет другие подсистемы в иерархии вложенных подсистем.
Чтобы улучшить удобочитаемость при развертывании вложенных подсистем, сначала разверните подсистему самого высокого уровня, которую необходимо развернуть, а затем продвигайтесь вниз по иерархии, насколько нужно развернуть.
При развертывании подсистемы Simulink:
Удаление блока подсистемы
Удаляет корневые блоки Inport, root Outport и Simscape™ Connection Port, которые находились в подсистеме
Соединяет сигнальные линии, идущие к входному и выходному портам подсистемы, непосредственно с портами блоков модели, подключенных к подсистеме
Распределяет блоки и маршрутизирует сигналы для удобочитаемости.
Пути для блоков, которые находились в развернутой подсистеме, изменяются. После расширения обновите сценарии и тестовые жгуты, которые зависят от иерархических путей к блокам, которые находились в развернутой подсистеме.
Если развернуть подсистему с отсутствующим соединением на внешней или внутренней стороне подсистемы, Simulink сохраняет метки линии, но использует имя и свойства сигнала только из одной из линий. Для строк, соответствующих:
Входной порт подсистемы, Simulink использует имя и свойства сигнала в системе, в которой существует подсистема
Выходной порт подсистемы, Simulink использует имя сигнала и свойства подсистемы
Отображаемые слои блоков (другими словами, блоки, появляющиеся спереди или сзади для перекрывающихся блоков) после расширения не изменяются. Блоки перед блоком подсистемы остаются над расширенным содержимым, а блоки под блоком подсистемы остаются под расширенным содержимым.
При компиляции модели Simulink сортирует блоки по порядку выполнения блоков. Расширение подсистемы может изменить имена путей блоков, что в редких случаях может повлиять на порядок выполнения блоков.
Если явно задать порядок выполнения блока, установив приоритеты блока в подсистеме, Simulink удалит эти настройки приоритета блока при развертывании этой подсистемы.
Расширение подсистемы, которая содержит блок памяти хранилища данных, с которого считываются или записываются другие подсистемы, может изменить требуемую последовательность записи и чтения хранилища данных. Может потребоваться реструктуризация модели. Дополнительные сведения см. в разделе Доступ к хранилищу данных заказа.