exponenta event banner

Приемник варианта

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

  • Библиотека:
  • Одновременная маршрутизация/маршрутизация сигналов

  • 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 режим. В label элемент управления Variant является строкой и не должен создаваться ни в одной рабочей области.

    При выборе label , значок Вариант (Variant) указывает на изменение.

    Примечание

    При продвижении параметра активного выбора режима метки в маску режим управления исполнениями отключается.

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

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

    Сведения о повышении параметров до масок см. в разделе Повышение параметров до маски.

  • sim codegen switching- Для автоматического переключения между вариантами для процессов моделирования и создания кода используйте sim codegen switching режим. При моделировании модели (Normal, Accelerator, Rapid Accelerator) Simulink автоматически выбирает sim ветвь как активный выбор. Аналогично, при моделировании ПО в цикле (SIL), процессора в цикле (PIL) или при генерации кода или использовании внешнего режима 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.

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

Дополнительные сведения см. в разделе Представление источников вариантов и блоков приемников в сгенерированном коде (встроенный кодер).

Зависимости

  • При установке для режима управления исполнениями значения expression, этот параметр может быть установлен в update diagram, update diagram analyze all choices, или code compile.

  • При установке для режима управления исполнениями значения sim codegen switching, этот параметр может быть установлен на update diagram или update diagram analyze all choices. code compile параметр становится недоступным.

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

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

Номер входного порта, подключенного к одному выбору варианта в восходящем направлении от блока приемника варианта. Это значение доступно только для чтения.

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

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

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

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

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

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

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

Дополнительные сведения см. в разделе Программное создание элементов управления исполнениями и Simulink.Variant.

При выборе режима управления исполнениями в качестве Label, доступна опция Активный выбор режима метки (Label mode active choice). Можно выбрать активный вариант исполнения из опций активного варианта режима метки. Можно также щелкнуть правой кнопкой мыши значок в блоке «Variant Sink» и выбрать «Label Mode Active Choice».

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

Примечание

Опция активного выбора режима метки недоступна в Expression режим.

Зависимости

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

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

Параметр блока: LabelModeActivechoice
Текст: символьный вектор
Значения: Указано контрольным выражением Variant
По умолчанию: Choice_1

Чтобы смоделировать модель (содержащую блок исполнения) без активного варианта исполнения, выберите опцию Разрешить нулевой активный элемент управления исполнения. При выборе этой опции и отсутствии активного выбора варианта Simulink отключает все блоки, подключенные к входному и выходному потоку блока приемника варианта. Удаленные блоки игнорируются в схеме обновления или моделировании.

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

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

Зависимости

Expression выбрана опция из режима управления «Вариант».

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

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

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

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

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

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

Типы данных

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

Прямой проход

no

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

no

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

no

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

no

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

Создание кода C/C + +
Создайте код C и C++ с помощью Simulink ® Coder™

.

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

Представлен в R2016a