Configurable Subsystem

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

  • Библиотека:
  • Simulink / Ports & Subsystems

Описание

Примечание

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

  • Можно смешать блоки Model и блоки Subsystem как варианты.

  • Можно задать варианты, которые имеют различные количества портов ввода и вывода.

Для получения дополнительной информации о преобразовании блока Configurable Subsystem с блоком Variant Subsystem смотрите, Преобразуют Конфигурируемую Подсистему в Различную Подсистему.

Для получения дополнительной информации о Различной Подсистеме смотрите Различную Подсистему, Различную Модель.

Блок Configurable Subsystem представляет один из набора блоков, содержавшихся в заданной библиотеке блоков. Контекстное меню блока Configurable Subsystem позволяет вам выбрать, какой блок конфигурируемая подсистема представляет.

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

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

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

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

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

Создать основную конфигурируемую подсистему:

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

  2. Сохраните библиотеку.

  3. Создайте экземпляр блока Configurable Subsystem в библиотеке.

    Для этого перетащите копию блока Configurable Subsystem из библиотеки Simulink Ports & Subsystems в библиотеку, которую вы создали на предыдущем шаге.

  4. Отобразите диалоговое окно блока Configurable Subsystem путем двойного клика по нему. Диалоговое окно отображается список других блоков в библиотеке.

  5. Под List of block choices в диалоговом окне выберите блоки, которые представляют различные настройки конфигурируемых подсистем, которые вы создаете.

  6. Чтобы применить изменения и закрыть диалоговое окно, нажмите кнопку OK.

  7. Выберите Block Choice из контекстного меню блока Configurable Subsystem.

    Контекстное меню отображает подменю, перечисляющее блоки, которые может представлять подсистема.

  8. Выберите блок, который вы хотите, чтобы подсистема представляла по умолчанию.

  9. Сохраните библиотеку.

    Примечание

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

Если вы изменяете библиотечный блок, который является выбором блока по умолчанию для конфигурируемой подсистемы, изменение сразу не распространяет к конфигурируемой подсистеме. Чтобы распространить это изменение, выполнить одно из следующих действий:

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

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

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

  • Преобразуйте конфигурируемую подсистему в различную подсистему. Щелкните правой кнопкой по конфигурируемой подсистеме и выберите Subsystem and Model Reference> Convert Subsystem to> Variant Subsystem.

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

Создание экземпляра конфигурируемой подсистемы

Создать экземпляр конфигурируемой подсистемы в модели:

  1. Откройте библиотеку, содержащую основную конфигурируемую подсистему.

  2. Перетащите копию ведущего устройства в модель.

  3. Выберите Block Choice из контекстного меню того экземпляра Configurable Subsystem.

  4. Выберите блок, который вы хотите, чтобы конфигурируемая подсистема представляла.

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

Установка параметров блоков экземпляра

Как с другими блоками, можно использовать диалоговое окно параметра конфигурируемого экземпляра подсистемы, чтобы установить его параметры в интерактивном режиме и set_param команда, чтобы установить параметры из командной строки MATLAB® или в файле MATLAB. Если вы используете set_param, необходимо задать имя полного пути текущего выбора блока конфигурируемой подсистемы в качестве первого аргумента set_param, например:

curr_choice = get_param('mymod/myconfigsys', 'BlockChoice');
curr_choice = ['mymod/myconfigsys/' curr_choice];
set_param(curr_choice, 'MaskValues', ...);

Отображение Портов ввода-вывода

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

  • Сопоставьте каждый исключительно именованный порт ввода/вывода в библиотеке к отдельному порту ввода/вывода того же имени на Конфигурируемом блоке Subsystem.

  • Сопоставьте все тождественно именованные порты ввода/вывода в библиотеке к тем же портам ввода/вывода на Конфигурируемом блоке Subsystem.

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

Это отображение позволяет пользователю изменять библиотечный блок, представленный блоком Configurable Subsystem, не имея необходимость повторно соединять связи с блоком Configurable Subsystem.

Например, предположите, что библиотека содержит два блока A и B и тот блок A имеет входные порты, пометил aB, и c и выходной порт пометил d и тот блок B имеет входные порты, пометил a и b и выходной порт пометил e.

Блок Configurable Subsystem на основе этой библиотеки имел бы три входных порта, пометил aB, и c, соответственно, и два выходных порта пометили d и e.

В этом примере, порте a на Configurable Subsystem блок соединяется с портом a из выбранного библиотечного блока, неважно, какой блок выбран. Порт c на Configurable Subsystem функционирует блок, только если библиотечный блок A выбран. В противном случае это просто завершает работу.

Примечание

Блок Configurable Subsystem не обеспечивает порты, которые соответствуют портам non-I/O, таким как триггер и включают порты на инициированных и активированных подсистемах. Таким образом вы не можете использовать блок Configurable Subsystem непосредственно, чтобы представлять блоки, которые имеют такие порты. Можно сделать так косвенно, однако, путем переноса таких блоков в блоки подсистемы, которым соединили порты ввода или вывода с портами non-I/O.

Преобразуйте в различную подсистему

Щелкните правой кнопкой по конфигурируемой подсистеме и выберите Subsystems and Model Reference> Convert Subsystem To> Variant Subsystem.

Во время преобразования Simulink выполняет следующие операции:

  • Замены the Subsystem блокируются с блоком Variant Subsystem, сохраняя порты и связи.

  • Добавляет исходная подсистема как вариант в блоке Variant Subsystem.

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

  • Консервы соединяются с библиотеками. Для соединенных подсистем Simulink добавляет соединенную подсистему как вариант.

    Simulink также сохраняет маски блока подсистемы, и он копирует маски в вариант.

Смотрите Variant Subsystem для получения дополнительной информации о вариантах.

Порты

Входной параметр

развернуть все

Входной сигнал к Configurable Subsystem. Блок, который представляет Configurable Subsystem, определяет поддерживаемые типы данных и размерности входного сигнала.

Зависимости

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

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point | enumerated | bus

Вывод

развернуть все

Выходной сигнал Configurable Subsystem. Блок, который представляет Configurable Subsystem, определяет типы выходных данных и размерности.

Зависимости

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

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point | enumerated | bus

Параметры

развернуть все

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

Программируемое использование

Параметры блоков: MemberBlocks
Ввод: массив ячеек из символьных векторов
Значения: массив ячеек имен блока как векторы символов
Значение по умолчанию: {''}

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

Характеристики блока

Типы данных

Boolean[a] | bus[a] | double[a] | enumerated[a] | fixed point[a] | integer[a] | single[a] | string[a]

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

no

Многомерные сигналы

limited[a]

Сигналы переменного размера

limited[a]

Обнаружение пересечения нулем

no

[a]  Фактическая поддержка типа данных или возможности зависит от реализации блока.

Расширенные возможности

Генерация HDL-кода
Сгенерируйте Verilog и код VHDL для FPGA и проекты ASIC с помощью HDL Coder™.

Представлено до R2006a