Variant Source

Трассируйте между несколькими входами, используя Варианты

  • Библиотека:
  • Simulink/Маршрутизация сигнала

  • Variant Source block

Описание

Блок Variant Source имеет один или несколько входных портов и один выходной порт. Можно задать Варианты как блоки, которые соединяются с входом портом, так что, самое большее, один выбор активен.

Каждый входной порт сопоставлен с управлением Variant. Элемент управления Variant, который вычисляет, чтобы true, определяет, какой входной порт является активным.

Когда для опции Variant activation time в диалоговом окне блока задано значение update diagram, затем во время симуляции Simulink® соединяет активный выбор непосредственно с выходом портом блока Variant Source и игнорирует неактивные варианты.

Порты

Вход

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

Input port сопоставлен с первым управлением Variant. Элемент управления Variant, который вычисляет, чтобы true, определяет, какой входной порт является активным.

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

Input port сопоставлен с управлением Nth Variant. Элемент управления Variant, который вычисляет, чтобы true, определяет, какой входной порт является активным.

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

Выход

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

Выходной сигнал от активного варианта.

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

Параметры

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

  • 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 Source во время схемы обновления или компиляции кода. Этот параметр также определяет, какую изменчивость включить в сгенерированный код для целей 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 Source. Это значение доступно только для чтения.

Щелкните, чтобы добавить порт или удалить существующий.

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

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

Чтобы отредактировать имя варианта, дважды кликните камеру Variant control expression и введите в выражение Variant control. Щелкните Apply после редактирования имени элемента управления «Вариант». Если вы добавляете или удаляете элемент управления Variant без применения изменений, предыдущие изменения имени элемента управления Variant теряются.

Значение Variant control, которое вычисляется как true определяет, какой входной порт должен быть активным.

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

Параметры блоков: VariantControls
Тип: массив ячеек из векторов символов
Значение: Управление вариантом, которое связано с выбором варианта
По умолчанию: 'Variant'

Отображает Condition для элементов управления «Варианты», которые Simulink.Variant объекты. Создайте или измените условие варианта в Simulink.Variant диалоговое окно параметра или в глобальной рабочей области.

Для получения дополнительной информации смотрите Создание исполнительных элементов управления программно и Simulink.Variant.

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

В раскрывающемся списке Label mode active choice отображаются все элементы управления вариант, которые в настоящее время определены в глобальной рабочей области или словаре данных. Использовать действительный MATLAB® идентификаторы для определения элементов управления вариант. Для получения дополнительной информации смотрите Simulink.Variant.

Примечание

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

Зависимости

Чтобы включить этот параметр, выберите Label режим.

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

Параметры блоков: LabelModeActivechoice
Тип: Вектор символов
Значение: Задается выражением Variant control.
По умолчанию: Choice_1

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

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

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

Зависимости

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

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

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

Когда вы выбираете эту опцию, Simulink аннотирует каждый элемент управления (выражение условия) в Variant Source портах блоков.

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

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

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

Типы данных

Boolean | bus | double | enumerated | fixed point | half | integer | single | string

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

no

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

no

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

no

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

no

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

Генерация кода C/C + +
Сгенерируйте код C и C++ с помощью Coder™ Simulink ®

.

Преобразование с фиксированной точкой
Разрабатывайте и моделируйте системы с фиксированной точкой с помощью Fixed-Point Designer™.

Введенный в R2016a