Расширение содержимого подсистемы

Чтобы переместить содержимое подсистемы в содержащую систему, можно развернуть подсистему.

Для примера, 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.

Похожие темы