Переключатель

Объедините несколько сигналов в один сигнал

  • Библиотека:
  • Simulink / Обычно Используемые Блоки

    Simulink / Маршрутизация Сигнала

    HDL Coder / Обычно Используемые Блоки

    HDL Coder / Маршрутизация Сигнала

Описание

Блок switch проходит через первый вход или третий входной сигнал на основе значения второго входа. Первые и третьи входные параметры являются вводом данных. Второй вход является входом управления. Задайте условие, при котором блок передает первый вход при помощи параметров Threshold и Criteria for passing first input.

Соедините шиной поддержку

Блок switch является способным к шине блоком. Вводы данных могут быть виртуальными или невиртуальными сигналами шины, подвергающимися следующим ограничениям:

  • Все шины должны быть эквивалентными (та же иерархия с идентичными именами и атрибутами для всех элементов).

  • Все сигналы в невиртуальном входе шины к блоку switch должны иметь тот же шаг расчета. Требование содержит, даже если элементы связанного объекта шины задают наследованные шаги расчета.

Можно использовать блок Rate Transition, чтобы изменить шаг расчета отдельного сигнала, или всех сигналов в шине. Смотрите Задают Шаги расчета Сигнала Шины и Способные к шине Блоки для получения дополнительной информации.

Можно использовать массив шин как входной сигнал к блоку switch. Для получения дополнительной информации об определении и использовании массива шин, смотрите Шины Объединения в Массив Шин. При использовании массива шин, установленных параметр Threshold на скалярное значение.

Ограничения

  • Если вводы данных к блоку switch являются шинами, имена элементов обеих шин должны быть тем же самым. Используя те же имена элементов гарантирует, что выходная шина имеет те же имена элементов, неважно, какую входную шину блок выбирает. Чтобы гарантировать, что ваша модель удовлетворяет это требование, используйте объект шины задать шины и установить диагностику Element name mismatch на error. См. Обзор Диагностики Возможности соединения для получения дополнительной информации.

Порты

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

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

Сначала двух вводов данных. Блок распространяет или первый или второй ввод данных к выводу. Блок выбирает, которые вводят, чтобы передать на основе входа управления. Задайте условие для входа управления, чтобы передать первый вход с помощью параметров Threshold и Criteria for passing first input.

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

Управляющий сигнал использование блока, чтобы определить, передать ли первый или второй ввод данных выводу. Если вход управления соответствует набору условия в параметре Criteria for passing first input, то блок передает вход First Data. В противном случае блок передает второй ввод данных.

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

Второй из двух вводов данных. Блок распространяет или первый или второй ввод данных к выводу. Блок выбирает, которые вводят, чтобы передать на основе входа управления. Задайте условие для входа управления, чтобы передать первый или второй вход с помощью параметров Threshold и Criteria for passing first input.

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

Вывод

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

Выходной сигнал, распространенный или от первого или от второго входного сигнала, на основе значения управляющего сигнала.

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

Параметры

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

Основной

Выберите условие, при котором блок передает вход First Data. Если вход управления соответствует набору условия в параметре Criteria for passing first input, блок передает первый вход. В противном случае блок передает второй сигнал ввода данных от входа Port_3.

u2 >= Threshold

Проверки, больше ли вход управления, чем или равен пороговому значению.

u2 > Threshold

Проверки, больше ли вход управления, чем пороговое значение.

u2 ~=0

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

Примечание

Блок switch не поддерживает режим u2 ~=0 для перечислимых типов данных.

Совет

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

  • u2 >= Threshold, где пороговое значение равняется 1

  • u2 > Threshold, где пороговое значение равняется 0

  • u2 ~=0

В противном случае блок switch игнорирует пороговые значения и использует булево значение для маршрутизации сигнала. Для значения 1, блок передает первый вход, и для значения 0, блок передает третий вход. Предупреждающее сообщение, которое описывает это поведение также, появляется в Командном окне MATLAB®.

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

Параметры блоков: Criteria
Ввод: символьный вектор
Значение: 'u2 >= Threshold' | 'u2 > Threshold' | 'u2 ~=0'
Значение по умолчанию: 'u2 >= Threshold'

Присвойте порог, используемый в Criteria for passing first input, который определяет, которые вводят передачи блока в вывод. Threshold должен быть больше, чем Output minimum и меньше, чем Output maximum.

Чтобы задать нескалярный порог, используйте скобки. Например, следующие записи допустимы:

  • [1 4 8 12]

  • [MyColors.Red, MyColors.Blue]

Зависимости

Установка Criteria for passing first input к u2 ~=0 отключает этот параметр.

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

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

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

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

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

Атрибуты сигнала

Нажмите кнопку Show data type assistant, чтобы отобразить Data Type Assistant, который помогает вам установить атрибуты типа данных. Для получения дополнительной информации смотрите, Задают Типы данных Используя Ассистент Типа данных.

Потребуйте, чтобы все вводы данных имели совпадающий тип данных.

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

Параметры блоков: InputSameDT
Ввод: символьный вектор
Значение:
Значение по умолчанию: '0'

Нижнее значение выходной области значений, которую проверяет Simulink®.

Simulink использует минимум, чтобы выполнить:

Примечание

Output minimum не насыщает или отсекает фактический выходной сигнал. Используйте блок Saturation вместо этого.

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

Параметры блоков: OutMin
Ввод: символьный вектор
Значения: '[ ]' | скаляр
Значение по умолчанию: '[ ]'

Верхнее значение выходной области значений это Simulink Check.

Simulink использует максимальное значение, чтобы выполнить:

Примечание

Output maximum не насыщает или отсекает фактический выходной сигнал. Используйте блок Saturation вместо этого.

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

Параметры блоков: OutMax
Ввод: символьный вектор
Значения: '[ ]' | скаляр
Значение по умолчанию: '[ ]'

Задайте тип выходных данных.

Inherit: Inherit via internal rule

Использует следующие правила, чтобы определить тип выходных данных.

Тип данных первого входного портаТип выходных данных
Имеет большую положительную область значений, чем третий входной портНаследованный от первого входного порта
Имеет ту же положительную область значений как третий входной портНаследованный от третьего входного порта
Имеет меньшую положительную область значений, чем третий входной порт
Inherit: Inherit via back propagation

Тип данных использования ведущего блока.

double

Указывает, что типом выходных данных является double.

single

Указывает, что типом выходных данных является single.

int8

Указывает, что типом выходных данных является int8.

uint8

Указывает, что типом выходных данных является uint8.

int16

Указывает, что типом выходных данных является int16.

uint16

Указывает, что типом выходных данных является uint16.

int32

Указывает, что типом выходных данных является int32.

uint32

Указывает, что типом выходных данных является uint32.

int64

Указывает, что типом выходных данных является int64.

uint64

Указывает, что типом выходных данных является uint64.

fixdt(1,16,0)

Указывает, что тип выходных данных является фиксированной точкой fixdt(1,16,0).

fixdt(1,16,2^0,0)

Указывает, что тип выходных данных является фиксированной точкой fixdt(1,16,2^0,0).

Enum: <class name>

Использует перечислимый тип данных, например, Enum: BasicColors.

<data type expression>

Использует объект типа данных, например, Simulink.NumericType.

Совет

Когда вывод имеет перечислимый тип, оба ввода данных должны использовать тот же перечислимый тип в качестве вывода.

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

Параметры блоков: OutDataTypeStr
Ввод: символьный вектор
Значения: 'Inherit: Inherit via internal rule | 'Inherit: Inherit via back propagation' | 'double' | 'single' | 'int8' | 'uint8' | 'int16' | 'uint16', 'int32' | 'uint32' | 'int64' | 'uint64' | 'fixdt(1,16)' | 'fixdt(1,16,0)' | 'fixdt(1,16,2^0,0)' | Enum: <class name> | '<data type expression>'
Значение по умолчанию: 'Inherit: Inherit via internal rule'

Выберите этот параметр, чтобы препятствовать тому, чтобы Fixed-Point Tool заменили типы данных, которые вы задаете на этом блоке. Для получения дополнительной информации смотрите Блокировку Установка Типа Выходных данных (Fixed-Point Designer).

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

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

Выберите один из этих режимов округления.

Ceiling

Раунды и положительные и отрицательные числа к положительной бесконечности. Эквивалентный функции ceil MATLAB.

Convergent

Номер раундов к самому близкому представимому значению. Если связь происходит, раунды к самому близкому даже целое число. Эквивалентный функции convergent Fixed-Point Designer™.

Floor

Раунды и положительные и отрицательные числа к отрицательной бесконечности. Эквивалентный функции floor MATLAB.

Nearest

Номер раундов к самому близкому представимому значению. Если связь происходит, раунды к положительной бесконечности. Эквивалентный Fixed-Point Designer функция nearest.

Round

Номер раундов к самому близкому представимому значению. Если связь происходит, округляет положительные числа к положительной бесконечности и округляет отрицательные числа к отрицательной бесконечности. Эквивалентный Fixed-Point Designer функция round.

Simplest

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

Zero

Номер раундов к нулю. Эквивалентный функции fix MATLAB.

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

Параметры блоков: RndMeth
Ввод: символьный вектор
Значения: 'Ceiling' | 'Convergent' | 'Floor' | 'Nearest' | 'Round' | 'Simplest' | 'Zero'
Значение по умолчанию: 'Floor'

Смотрите также

Для получения дополнительной информации смотрите Округление (Fixed-Point Designer).

Задайте, насыщает ли переполнение или переносится.

  • 'off' Переполнение переносится к соответствующему значению, которое может представлять тип данных.

    Например, номер 130 не помещается в 8-битное целое число со знаком и переносится к-126.

  • on — Переполнение насыщает или к минимальному или к максимальному значению, которое может представлять тип данных.

    Например, переполнение, сопоставленное с 8-битным целым числом со знаком, может насыщать к-128 или 127.

Совет

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

  • Полагайте, что снятие этого флажка когда это необходимо оптимизирует эффективность вашего сгенерированного кода.

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

  • Когда вы устанавливаете этот флажок, насыщение применяется к каждой внутренней операции на блоке, не только выводу или результату.

  • В целом процесс генерации кода может обнаружить, когда переполнение не возможно. В этом случае генератор кода не производит код насыщения.

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

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

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

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

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

Образцовые примеры

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

Типы данных

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

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

yes

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

yes

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

yes

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

yes

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

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

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

Представлено до R2006a