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

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

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

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

Описание

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

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

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

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

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

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

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

Ограничения

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

Порты

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

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

Сначала двух вводов данных. Блок распространяет или первый или второй ввод данных к выводу. Блок выбирает, которые вводят, чтобы передать на основе входного параметра управления. Задайте условие для входного параметра управления, чтобы передать первый входной параметр с помощью Критериев передачи первого входного параметра и Пороговых параметров.

Типы данных: единственный | удваиваются | int8 | int16 | int32 | uint8 | uint16 | uint32 | булевская переменная | фиксированная точка | перечисленный | шина

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

Типы данных: единственный | удваиваются | int8 | int16 | int32 | uint8 | uint16 | uint32 | булевская переменная | фиксированная точка | перечисленный | шина

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

Типы данных: единственный | удваиваются | int8 | int16 | int32 | uint8 | uint16 | uint32 | булевская переменная | фиксированная точка | перечисленный | шина

Вывод

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

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

Типы данных: единственный | удваиваются | int8 | int16 | int32 | uint8 | uint16 | uint32 | булевская переменная | фиксированная точка | перечисленный | шина

Параметры

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

Основной

Выберите условие, при котором блок передает первый ввод данных. Если входной параметр управления соответствует набору условия в Критериях передачи первого входного параметра, блок передает первый входной параметр. В противном случае блок передает второй сигнал ввода данных от входного параметра 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> = Порог' | 'u2> Порог' | 'u2 ~ =0'
Значение по умолчанию: 'u2 >= Threshold'

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

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

  • [1 4 8 12]

  • [MyColors.Red, MyColors.Blue]

Зависимости

Установка Критериев передачи первого входного параметра к u2 ~=0 отключает этот параметр.

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

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

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

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

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

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

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

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

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

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

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

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

Примечание

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

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

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

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

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

Примечание

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

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

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

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

Inherit: Inherit via internal rule

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

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

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

'double'

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

единственный

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

int8

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

uint8

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

int16

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

uint16

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

int32

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

uint32

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

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
Ввод: символьный вектор
Значения: 'Наследуйтесь: Наследуйтесь через внутреннее правило |, 'Наследуйтесь: Наследуйтесь через обратное распространение' | 'дважды' | 'single' | 'int8' | 'uint8' | 'int16' | 'uint16', 'int32' | 'uint32' | 'fixdt (1,16)' | 'fixdt (1,16,0)' | 'fixdt (1,16,2^0,0)' | Перечисление: <имя класса> |' <выражение типа данных>'
Значение по умолчанию: 'Inherit: Inherit via internal rule'

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

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

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

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

Ceiling

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

Convergent

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

Пол

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

Самый близкий

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

Вокруг

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

Simplest

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

Zero

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

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

Блочный параметр: RndMeth
Ввод: символьный вектор
Значения: 'Потолок' | 'Конвергентный' | 'Пол' | 'Самый близкий' | 'Вокруг' | 'Самый Простой' | 'Нуль'
Значение по умолчанию: пол

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

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

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

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

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

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

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

Совет

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

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

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

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

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

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

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

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

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

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

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

Блокируйте характеристики

Типы данных

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

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

No

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

Yes

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

Yes

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

Yes

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

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

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

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

Была ли эта тема полезной?