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

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

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

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

Почему расширяют подсистему?

Расширьте подсистему, если вы хотите сгладить иерархию модели путем обеспечения содержимого подсистемы один уровень.

Расширение подсистемы полезно при рефакторинге модели. Выравнивание иерархии модели может быть конечным результатом, или всего одним шагом в рефакторинге. Например, вы могли вытянуть набор блоков до родительской системы путем расширения подсистемы, отменить выбор блоков, которые вы хотите оставить в родительском элементе, и затем создать подсистему из остающихся выбранных блоков.

Какие подсистемы можно расширить?

Можно расширить виртуальные подсистемы, которые не маскируются, соединяются или комментируются. При попытке расширить маскированное, соединенный, или прокомментировали подсистему с помощью Редактора Simulink®, сообщение дает вам, опция наличия Simulink изменяет подсистему так, чтобы можно было затем расширить его.

Вид подсистемыМодификация

Подсистема маскированная

Удаляет всю информацию о маскировании

Ссылки библиотеки

Разрывает связь

Прокомментированная подсистема

Не комментирует подсистема

Вы не можете расширить эти подсистемы:

  • Атомарные подсистемы

  • Условные подсистемы

  • Конфигурируемые подсистемы

  • Различные подсистемы

  • Подсистемы с набором параметра Read/Write permissions к ReadOnly или NoReadWrite

  • Подсистемы с InitFcn, StartFcn, PauseFcn, ContinueFcn, или StopFcn 'callback'

  • Подсистемы со связанными требованиями (использующий программное обеспечение 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 удаляет те приоритетные настройки блока, когда вы расширяете ту подсистему.

Хранилища данных

Расширение подсистемы, которая содержит Блок памяти Хранилища данных, что другие подсистемы, считанные из или запись к, могут изменить необходимую запись хранилища данных и считать последовательность. Вы, возможно, должны реструктурировать свою модель. Для получения дополнительной информации смотрите Хранилище данных Порядка доступ.

Похожие темы