Создание подсистем

Когда модель увеличивается в размере и сложности, можно упростить ее, сгруппировав блоки в подсистемы. Подсистема является набором блоков, которые вы группируете в один Subsystem блок.

Использование подсистем:

  • Устанавливает иерархическую блок-схему, где блок Subsystem находится на одном слое, а блоки, составляющие подсистему, находятся на другом.

  • Сохраняет функционально связанные блоки вместе.

  • Помогает уменьшить количество блоков, отображаемых в окне модели.

  • Устанавливает интерфейс с входами и выходами.

Когда вы делаете копию подсистемы, эта копия не зависит от исходной подсистемы. Чтобы повторно использовать содержимое подсистемы в модели или между моделями, рассмотрите ссылочные подсистемы, модели-ссылки или подсистемы, связанные с блоком в пользовательской библиотеке. Для получения дополнительной информации смотрите Выбор среди типов компонентов модели.

Типы подсистем

Подсистема может быть виртуальной или невиртуальной. virtual subsystem обеспечивает графическую иерархию в модели и не влияет на выполнение модели. nonvirtual subsystem выполняется как один модуль в модели.

Совет

Для контроллеров и других автономных компонентов задайте жёсткий контур вокруг связанных блоков с помощью невиртуальной подсистемы или ссылочных моделей. Определение жёсткого контура заранее избегает дорогостоящего рефакторинга, когда вы хотите сгенерировать код для компонента.

Simulink® классифицирует невиртуальные подсистемы в следующие типы:

Тип подсистемыОписание
Atomic Subsystem

Подсистема, которая выполняется как один модуль.

Enabled Subsystem

Подсистема, выполнение которой разрешено внешним входом.

Triggered Subsystem

Подсистема, выполнение которой инициируется внешним входом.

Function-Call Subsystem

Подсистема, выполнением которой управляет внешний вход функции.

Enabled and Triggered Subsystem

Подсистема, выполнение которой включено и инициировано внешними входами.

Resettable Subsystem

Подсистема, состояния блока которой сбрасываются с помощью внешнего триггера.

If Action Subsystem

Подсистема, выполнение которой разрешено блоком If.

Switch Case Action SubsystemПодсистема, выполнение которой управляется блоком Switch Case.
While Iterator Subsystem

Подсистема, которая повторяет выполнение во время временного шага симуляции, в то время как логическое условие верно.

For Iterator SubsystemПодсистема, которая повторяет выполнение во время времени симуляции для заданного количества итераций.
For Each Subsystem

Подсистема, которая повторяет выполнение на каждом элементе или подрешетке входного сигнала и конкатенирует результаты.

Создание подсистем

Чтобы создать подсистему, можно:

  • В Редактор дважды кликните и начните вводить тип подсистемы, затем выберите из меню соответствующий блок.

  • В редакторе Simulink Editor перетащите рамку выбора, чтобы очертить подсистему, которую вы хотите создать, затем выберите тип подсистемы.

  • Перетащите блок Subsystem из браузера библиотек.

  • Скопируйте и вставьте блок Subsystem из модели.

Когда вы создаете подсистему из поля выбора, выбор может быть пустым или может содержать несколько блоков в одной области модели.

На панели действий выберите тип подсистемы, которую вы хотите создать.

Когда выбор содержит блоки, которые соответствуют входным и выходным портам, новая подсистема включает копии этих блоков. Новая подсистема не содержит копии блоков, которые соответствуют портам управления.

Тип подсистемы можно изменить после создания.

  • Чтобы выполнить подсистему как модуль, щелкните Subsystem блок. На вкладке Subsystem выберите Is Atomic Subsystem.

  • Чтобы выполнить подсистему условно, добавьте блок, который соответствует порту управления.

  • Чтобы выполнить подсистему безоговорочно, удалите блоки, которые соответствуют портам управления.

Добавление портов к подсистемам

Порты блока Subsystem соответствуют блокам внутри подсистемы.

Для примера этот Subsystem блок имеет два порта входа и один порт выхода.

Подсистема содержит два блока Inport (In1 и In2) и один Outport блок (Out1), которые соответствуют портам на блоке Subsystem.

Чтобы добавить порты в подсистему:

  • Щелкните ребром блока Subsystem, затем выберите тип порта для создания.

  • Перетащите линию к ребру Subsystem блока.

  • Откройте подсистему двойным кликом по блоку Subsystem, затем добавьте соответствующие блоки в подсистему.

    Тип портаСоответствующий блок
    Порт сигнала, входInport блок
    Порт сигнала, выходOutport блок
    Порт шины, входIn Bus Element блок
    Порт шины, выходOut Bus Element блок
    Порт управления, включенEnable блок
    Порт управления, срабатываниеTrigger блок
    Порт управления, вызов функцииTrigger блок с Trigger type установленным на function-call
    Управляйте портом, сбрасывайтеReset блок
    Порт управления, действиеAction Port блок
    Порт соединенияConnection Port (Simscape) блок

Чтобы изменить расположение порта на блоке Subsystem, перетащите порт в новое место на любой стороне блока Subsystem.

A port is dragged from the left side of the block to the top side of the block.

По умолчанию Simulink помечает порты на блоке Subsystem. Чтобы задать, как Simulink помечает порты подсистемы:

  1. Выберите Subsystem блок.

  2. На вкладке Format панели инструментов Simulink выберите одну из опций маркировки из меню Port Labels. Для получения дополнительной информации смотрите Показать метки портов.

Сконфигурируйте подсистемы

Вы можете изменить имя блока Subsystem и изменить блок так, как вы делаете с любым другим блоком. Для примера можно:

  • Применить маски блоков, чтобы скрыть содержимое подсистемы, сделав его отображаемым как атомарный блок с собственным значком и диалоговым окном параметра. Для получения дополнительной информации см. раздел Основ маскирования.

  • Используйте коллбэки блоков для выполнения действий в ответ на действия моделирования подсистемы, такие как обработка ошибки, удаление блока или линии в подсистеме или закрытие подсистемы. Дополнительные сведения о свойствах блоков, таких как коллбэки, см. в разделе «Задание свойств блоков».

Ограничение доступа к подсистемам

Параметр Read/Write permissions блока Subsystem управляет уровнем доступа, разрешенным для подсистемы.

Примечание

Ограничение доступа для чтения или записи не препятствует изменению ограничений доступа. Чтобы скрыть проприетарную информацию, рассмотрите использование защищенной модели. Для получения дополнительной информации см. «Исследование возможностей защищенной модели».

Когда подсистема хранится в пользовательской библиотеке, можно использовать параметр Read/Write permissions на родительском библиотечном блоке для управления доступом к связанным образцам блока. Пока ссылка на библиотеку остается нетронутой, ограниченный доступ может помешать людям просматривать или изменять содержимое подсистемы, одновременно позволяя им использовать ее в модели. Для получения дополнительной информации см. раздел «Связанные блоки».

См. также

Похожие темы

Для просмотра документации необходимо авторизоваться на сайте