Чтобы переместить содержимое подсистемы в содержание системы, можно расширить подсистему.
Например, 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 удаляет те приоритетные настройки блока, когда вы расширяете ту подсистему.
Расширение подсистемы, которая содержит Блок памяти Хранилища данных, что другие подсистемы, считанные из или запись к, могут изменить необходимую запись хранилища данных и считать последовательность. Вы, возможно, должны реструктурировать свою модель. Для получения дополнительной информации смотрите Хранилище данных Порядка доступ.