Создайте подсистемы

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

Используя подсистемы:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Добавьте порты в подсистемы

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

Например, этот блок Subsystem имеет два входных порта и один выходной порт.

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

Автоматически добавить порты в блок Subsystem:

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

Отредактируйте метки порта на подсистемах

Можно непосредственно отредактировать метки порта на этих типах блоков подсистемы:

  • Регулярная подсистема

  • Подсистема с маской

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

  • Стройте диаграмму подсистемы

    Чтобы отредактировать метку порта на подсистеме блокируются в текущей модели:

    1. Укажите на метку порта. Появляется интерактивный сигнал метки порта (синее поле, окружающее метку порта). Кликните по сигналу.

      В качестве альтернативы выберите порт и нажмите F2. Сигнал вводит режим редактирования.

      Создание нового порта на блоке Subsystem с помощью автоматического создания порта также включает сигнал метки порта для быстрого редактирования.

      Editable port label cue

    2. Сигнал селектора порта, кажется, выше сигнала метки порта указывает на информацию о метке порта (имя блокировки порта, имя сигнала, вход шины или порт подключения), который редактируется. Для портов сигнала можно отредактировать и имя блокировки порта и имя сигнала порта от метки порта. Чтобы переключиться между значениями, кликните по соответствующему значку в селекторном сигнале или используйте горячие клавиши Ctrl+1,2.

    3. Войдите значение в метке порта выдают и нажимают Enter или Esc, или щелкают далеко.

      Port selector cue above a port label cue

    4. После того, как метка порта редактируется, Simulink автоматически обновляет имя связанного порта или сигнала в подсистеме.

      The updated port name inside the Subsystem

    Совет

    Сделать последовательную метку порта редактирует на блоке подсистемы:

    • Выберите порт на блоке.

    • Отредактируйте метку порта и нажмите Enter. Это действие включает клавиатурный набор портов.

    • Можно выбрать смежные порты с помощью стрелки вверх или клавиши курсора "вниз" и требуя у F2 быстрого редактирования.

    Эта таблица приводит действие обновления в зависимости от типа метки порта, заданной на блоке подсистемы.

    Type of port labelAction
    'none'Редактирование, не поддержанное.
    Значок порта

    Обновляет имена элементов в подсистеме в зависимости от параметра Icon display порта.

    Например, если значением параметра Icon display порта является Signal name, затем и значок на блокировке порта и имя соединенного сигнала обновляются.

    Примечание

    Для этого типа метки порта информация, показанная на метке порта после того, как, редактирование зависит от итогового редактирования, выполняемого на этикетке с помощью селекторного сигнала:

    • Если начальная метка порта показывает имя блокировки порта, и итоговое редактирование находится на имени сигнала, то параметр Icon display для базовой блокировки порта автоматически обновляется к Signal name. Так, после редактирования метка порта показывает имя сигнала по умолчанию.

    • Если начальная метка порта показывает имя сигнала порта, и итоговое редактирование находится на имени блокировки порта, то параметр Icon display для базовой блокировки порта автоматически обновляется к Port number. Так, после редактирования метка порта показывает имя блока по умолчанию.

    Имя блокировки портаОбновляет имя блока порта в подсистеме. Для этого типа метки порта можно отредактировать только имя блокировки порта с помощью сигнала селектора порта.
    Имя сигналаОбновляет имя сигнала, соединенного с портом.

Примечание

  • Simulink не показывает сигнал селектора порта для блоков Chart.

  • Редактирование меток порта на блоках Subsystem со значком маски не поддерживается.

  • Редактирование номеров портов от метки порта не поддерживается. Можно все еще отредактировать имя блокировки порта и предупредить об имени с помощью сигнала метки порта.

  • Редактирование имени распространенных сигналов от метки порта не поддерживается. Можно все еще отредактировать имя блокировки порта и внутреннее имя сигнала с помощью сигнала метки порта. Когда вы кликаете по сигналу, поле имени сигнала порта пусто, потому что внутренний сигнал не имеет имени.

    Метки порта подсистемы показывают имя распространенных сигналов, когда все эти условия верны:

    • Значением параметра Icon display для базовой блокировки порта является Signal name.

    • Внутренний сигнал в подсистеме соединяется, но не имеет имени.

    • Распространенный сигнал имеет имя.

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

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

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

  • Используйте коллбэки блока, чтобы выполнить действия в ответ на действия моделирования подсистемы, такие как обработка ошибки, удаление блока или линии в подсистеме или закрытия подсистемы. Для получения дополнительной информации о свойствах блока, таких как коллбэки, смотрите Specify Block Properties.

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

Параметр полномочий Чтения-записи средств управления блоком Subsystem уровень доступа допускал подсистему.

Примечание

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

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

Смотрите также

Похожие темы