Variant Subsystem, Variant Model

Шаблонные подсистемы, содержащие Блоки Subsystem или Блоки Model в качестве вариантов

  • Библиотека:
  • Simulink/Порты и подсистемы

    HDL-кодер/порты и подсистемы

  • Variant Subsystem, Variant Model block
  • Variant Subsystem, Variant Model block

Описание

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

Блок Variant Subsystem может содержать смесь Subsystem и Model блоков, как Вариантные системы. Это может также включать Inport, Outport и Connection Port блоки. В блоках Variant Subsystem нет нарисованных соединений.

Блок Variant Subsystem с Model блоками в качестве выбора называется Variant Model блоком.

Каждая вариантная система связана с элементом управления Variant, который создается в глобальной рабочей области. Управление «Вариант» определяет, какая Вариантная система является активной. Управление Variant может быть выражением условия, Simulink.Variant объект, задающий выражение условия или вариант по умолчанию. Элемент управления Variant, который вычисляет, чтобы true определяет активный вариант.

Когда вы выбираете опцию Specify output when source is unconnected в блоке Outport, который находится в блоке Variant Subsystem, можно задать в качестве его выхода значение, отличное от заземления.

Примечание

Необходимо указать правильный тип данных в Signal Attributes разделе диалогового окна Outport блока.

Порты

Во время симуляции Simulink® отключает неактивные порты в блоке Variant Subsystem.

Вход

расширить все

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

Выход

расширить все

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

Параметры

расширить все

  • expression- Чтобы выбрать активный вариант на основе оценки условий варианта, используйте expression режим. Переменные Variant, используемые в условии Variant, должны быть созданы в глобальной рабочей области или в словаре данных.

  • Label- Чтобы выбрать активный Вариант на основе имени Варианта, заданного в параметре Label mode active choice, используйте label режим. В label mode, элемент управления Variant является строкой и не должен создаваться ни в каких рабочих областях.

    Когда вы выбираете label режим, значок «Вариант» указывает на изменение.

    Примечание

    Когда вы продвигаете параметр Label mode active choice в маску, Variant control mode отключается.

    • Если блок находится в expression режим при продвижении параметра Label mode active choice в маску можно изменить Variant control mode на label путем изменения параметра повышенного Label mode active choice из диалогового окна «Маска».

    • Если блок находится в label режим при продвижении параметра Label mode active choice в маску, вы не можете изменить Variant control mode на expression режим.

    Дополнительные сведения о продвижении параметров в маски см. в разделе «Продвижение параметра в маску».

  • sim codegen switching- Чтобы автоматически переключаться между рабочими процессами «Варианты для симуляции» и «Генерация кода», используйте sim codegen switching режим. Когда вы симулируете (Normal, Accelerator, Rapid Accelerator) модель, то Simulink автоматически выбирает sim ветвь как активный выбор. Точно так же, когда вы делаете симуляцию «Цикл» (SIL), «Процессор в цикле» (PIL) или генерируете код или используете режим external mode, Simulink автоматически выбирает codegen ветвь.

Когда вы устанавливаете этот параметр в различные значения, значок «Вариант» изменяется, как показано на Значках варианта.

Зависимости

Параметр Variant activation time доступен только, когда вы устанавливаете параметр Variant control mode равным expression или sim codegen switching.

Этот параметр определяет, устанавливает ли Simulink активный выбор блока Variant Subsystem во время схемы обновления или компиляции кода. Этот параметр также определяет, какую изменчивость включить в сгенерированный код для целей ERT. Если вы принимаете решение включить все варианты, варианты заключаются в условные операторы препроцессора C (# if и # endif) в сгенерированном коде.

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

Можно задать параметр Variant activation time как:

  • update diagram- Simulink устанавливает активный выбор во время обновления схемы перед распространением атрибутов сигнала. Неактивные варианты удаляются до распространения атрибутов сигнала, поэтому сгенерированный код содержит только активный выбор.

  • update diagram analyze all choices- Simulink устанавливает активный выбор во время обновления схемы после распространения атрибутов сигнала. Атрибуты сигнала распространяются как на активный, так и на неактивный выбор. Все варианты анализируются, чтобы гарантировать согласованность всех вариантных ветвей между результатами симуляции и генерации кода. Неактивные варианты удаляются в конце схемы обновления до начала модели. Сгенерированный код содержит только активные варианты. Этот рабочий процесс остается неизменным для симуляции и генерации кода.

  • code compile- Для симуляции рабочий процесс аналогичен update diagram analyze all choices. Однако неактивные варианты не удаляются во время генерации кода. Сгенерированный код содержит активные и неактивные варианты, и варианты заключаются в условные операторы препроцессора C #if и #endif.

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

Для получения дополнительной информации смотрите Представление источника исполнения и блоков приемника в Сгенерированном коде (Embedded Coder).

Зависимости

  • Когда вы устанавливаете Variant control mode на expression, этот параметр может быть установлен в update diagram, update diagram analyze all choices, или code compile.

  • Когда вы устанавливаете Variant control mode на sim codegen switching, этот параметр может быть установлен на любое update diagram или update diagram analyze all choices. The code compile опция становится недоступным.

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

Параметры блоков: VariantActivationTime
Тип: Вектор символов
Значения: update diagram | update diagram analyze all choices | code compile
По умолчанию: update diagram

Таблица имеет строку для каждой Вариантной системы, содержащегося в Подсистеме вариантов. Если нет вариантных систем, таблица пуста.

Для изменения элементов таблицы можно использовать кнопки слева от Variant choices таблицы.

Кому...Нажмите...
Create and add a new subsystem choice: Поместите новый вариант Подсистемы в таблицу и создайте блок Subsystem в блок-схеме Исполнительной Подсистемы.
Create and add a new model variant choice: Поместите новый выбор Model Variant в таблицу и создайте блок Model в блоке Variant Subsystem.
Create/Edit selected variant object: Создайте Simulink.Variant объект в глобальной рабочей области и откройте Simulink.Variant диалоговое окно параметра объекта для задания Condition вариант.
Open selected variant choice block: Откройте блок Subsystem для выбранной строки в таблице Variant choices.
Refresh dialog information from Variant Subsystem contents: Обновляйте таблицу Variant choices в соответствии с вариантной системой и значениями элемента управления Variant в глобальной рабочей области.

Это поле только для чтения основано на имени Вариантной системы. Чтобы добавить вариант подсистемы, щелкните. Чтобы добавить вариант модели, щелкните.

Чтобы ввести имя варианта, дважды щелкните камеру Variant control в новой строке и введите в выражение управления вариантом.

Чтобы ввести нечисловые управляющие значения Variant, используйте перечисленные данные. Для получения информации об использовании перечисленных данных смотрите Использование перечисленных данных в моделях Simulink

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

Поле структуры: Представлено доступной только для чтения variant.Name поле в Variant структура параметра
Тип: Вектор символов
Значение: Управление вариантом, которое связано с выбором варианта
По умолчанию: 'variant'

Это поле только для чтения основано на условии для связанного элемента управления Variant в глобальной рабочей области. Создайте или измените условие варианта в Simulink.Variant диалоговое окно параметра или в глобальной рабочей области.

Когда вы выбираете Variant control mode для Label, доступна опция Label mode active choice. Можно выбрать активный вариант из Label mode active choice опций. Можно также щелкнуть значок правой кнопкой мыши на блоке Variant Subsystem и выбрать Label Mode Active Choice.

Для Label mode active choice опции управление Variant не должно быть выражением логического условия или Simulink.Variant объект. Варианты управляют, которые начинаются с % символ игнорируется.

Примечание

Label mode active choice опция недоступна в Expression режим.

Зависимости

Чтобы включить этот параметр, выберите Label опция из Variant control mode параметра.

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

Параметр: LabelModeActivechoice
Тип: Вектор символов
Значение: если не задан активный выбор режима Label, значение пустое. Если задан активный выбор Label mode, значение является именем активного выбора Label mode.
По умолчанию: ''

Чтобы симулировать модель (содержащую вариантную систему) без активного варианта, выберите опцию Allow zero active variant controls. Когда вы выбираете эту опцию и если нет активного варианта, Simulink отключает все блоки, соединенные с входным и выходным потоком блока Variant Subsystem. Отключенные блоки игнорируются из схемы обновления или симуляции.

Если вы не выбираете эту опцию, Simulink генерирует ошибку, когда нет активного выбора варианта.

Зависимости

  • Опция (по умолчанию) «Вариант» не выбрана

  • Expression выбрана опция из Variant control mode.

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

Параметр: AllowZeroVariantControls
Тип: Вектор символов
Значение: 'off' | 'on'
По умолчанию: 'off'

При выборе этой опции Simulink распространяет условия исполнения базовых блоков на блоки, расположенные вне блока Variant Subsystem. Компоненты вне Подсистемы, подключенные к активному выбору, становятся активными, а компоненты, подключенные к неактивному выбору, становятся неактивными во время симуляции.

Выбор этой опции гарантирует, что компоненты, не входящие в состав Подсистемы вариантов, осведомлены об активном и неактивном состоянии блоков в блоке Подсистемы вариантов. Для получения дополнительной информации см. раздел Адаптивный интерфейс для подсистем вариантов.

При выборе этой опции значок «Вариант» указывает на изменение.

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

Параметр: PropagateVariantConditions
Тип: Вектор символов
Значение: 'off' | 'on'
По умолчанию: 'off'

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

Типы данных

Булев[a] | шина[a] | double[a] | перечисленные[a] | фиксированную точку[a] | половину[a] | целое число[a] | сингл[a] | строка[a]

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

no

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

ограниченный[a]

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

ограниченный[a]

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

no

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

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

.
Введенный в R2010b