Variant Sink

Маршрут среди нескольких выходов с использованием вариантов

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

  • Variant Sink block

Описание

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

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

Во время симуляции Simulink® соединяет активный выбор непосредственно с входом портом блока Variant Sink и игнорирует неактивные варианты.

Порты

Вход

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

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

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

Выход

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

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

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

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

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

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

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

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

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

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

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

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

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

Когда вы выбираете Variant control mode как Label, доступна опция Label mode active choice. Можно выбрать активный вариант из Label mode active choice опций. Можно также щелкнуть значок правой кнопкой мыши на блоке Variant Sink и выбрать 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 Sink блока. Удаленные блоки игнорируются из схемы обновления или симуляции.

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

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

Зависимости

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

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

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

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

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

Параметры блоков: 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
Для просмотра документации необходимо авторизоваться на сайте