Switch

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

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

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

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

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

  • Switch block

Описание

Блок 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 | half | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point | enumerated | bus

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

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

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

Типы данных: 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

Параметры

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

Основной

Выберите условие, при котором блок передает вход 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

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

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

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

double

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

single

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

half

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

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.

string

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

<data type expression>

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

Совет

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

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

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

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

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

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

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

Ceiling

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

Convergent

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

Floor

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

Nearest

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

Round

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

Simplest

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

Zero

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

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

Параметры блоков: 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 | half | integer | single | string

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

yes

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

yes

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

yes

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

yes

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

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

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

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

|

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