Switch

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

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

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

    HDL-кодер/обычно используемые блоки

    HDL-кодер/сигнальная маршрутизация

  • Switch block

Описание

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

Поддержка шины

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

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

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

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

Можно использовать массив шин в качестве входного сигнала к блоку Switch. Для получения дополнительной информации об определении и использовании массива шин смотрите Group Nonvirtual Buses in Arrays of Buses. При использовании массива шин установите параметр Threshold на скалярное значение.

Ограничения

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

Порты

Вход

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

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

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

Управляйте сигналом, который блок использует, чтобы определить, передавать ли первый или второй вход данных на выход. Если вход управления соответствует набору условий в параметре 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 и Threshold.

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

Параметры

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

Главный

Выберите условие, при котором блок проходит первый вход данных. Если вход управления соответствует набору условий в параметре 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, которая помогает вам задать атрибуты type данных. Для получения дополнительной информации смотрите Задать типы данных Используя Data Type Assistant.

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

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

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

Более низкое значение выходной области значений, который Simulink® проверки.

Simulink использует минимум для выполнения:

Примечание

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

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

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

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

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

Примечание

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

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

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

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

Inherit: Inherit via internal rule

Для определения типа данных выходов используются следующие правила.

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

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

Inherit: Inherit same as first input

Использует тип данных первого входного порта данных.

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' | 'Inherit: Same as first input' | '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 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

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

.

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

.

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

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