Конфигурируемая подсистема

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

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

Описание

Примечание

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  3. Создайте экземпляр Конфигурируемого блока Subsystem в библиотеке.

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

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

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

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

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

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

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

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

    Примечание

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

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

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

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

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

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

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

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

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

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

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

  3. Выберите Block Choice из контекстного меню того Конфигурируемого экземпляра Подсистемы.

  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.

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

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

Конфигурируемый блок Subsystem на основе этой библиотеки имел бы три входных порта, маркировал a, b и c, соответственно, и два выходных порта маркировали d и e.

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

Примечание

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

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

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

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

  • Заменяет блок Subsystem на Различный блок Subsystem, сохраняя порты и связи.

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

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

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

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

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

Порты

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

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

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

Зависимости

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

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

Вывод

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

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

Зависимости

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

Типы данных: 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