Выберите выходной сигнал на основе управляющего сигнала
Simulink / Маршрутизация Сигнала
HDL Coder / Маршрутизация Сигнала
Блок Multiport Switch определяет, какие из нескольких входных параметров с блоком передают выходу. Блок основывает это решение о значении первого входа. Первый вход является входом управления, и остающиеся входные параметры являются вводами данных. Значение входа управления определяет, который ввод данных передает выходу.
Таблица суммирует, как блок интерпретирует вход управления и определяет ввод данных, который передается выходу.
Вход управления | Усечение | Установка для порядка порта данных | Блокируйте поведение в процессе моделирования | |
---|---|---|---|---|
Индексация, чтобы выбрать ввод данных | Условие из области значений | |||
Целочисленное значение | 'none' | Zero-based contiguous | Основанная на нуле индексация | Вход управления меньше |
One-based contiguous | Индексация на основе одна | Вход управления меньше | ||
Specify indices | Индексы вы задаете | Вход управления не соответствует никакому заданному индексу порта данных. | ||
Не целочисленное значение | Блок обрезает значение до целого числа путем округления, чтобы обнулить. | Zero-based contiguous | Основанная на нуле индексация | Усеченный вход управления меньше |
One-based contiguous | Индексация на основе одна | Усеченный вход управления меньше | ||
Specify indices | Индексы вы задаете | Усеченный вход управления не соответствует никакому заданному индексу порта данных. |
Для получения информации о том, как блок обрабатывает условие из области значений, смотрите Как Указатели Блока Вход Управления Из области значений.
Index Vector является специальной настройкой блока Multiport Switch, в котором вы задаете один ввод данных, и вход управления основан на нуле. Блок выход является элементом входного вектора, индекс которого совпадает с входом управления. Например, если входным вектором является [18 15 17 10]
и входом управления является 3
, элемент, который совпадает с индексом 3 (основанный на нуле), равняется 10, и это становится выходным значением.
Чтобы сконфигурировать блок Multiport Switch, чтобы работать блоком Index Vector, установите Number of data ports на 1
и Data port order к Zero-based contiguous
.
Для входа с целочисленным значением меньше, чем intmax(‘int32’)
, вход вне области значений, когда значение не совпадает ни с какими индексами порта данных. Для входа управления, который не является целочисленным значением, вход вне области значений, когда усеченное значение не совпадает ни с какими индексами порта данных. В обоих случаях поведение блока зависит от ваших настроек для Data port for default case и Diagnostic for default case.
Если вход управления больше, чем intmax(‘int32’)
, блок переносит входное значение к целому числу.
Следующее поведение применяется только к симуляции для вашей модели.
Порт данных для случая по умолчанию | Диагностика для случая по умолчанию | ||
---|---|---|---|
'none' | Предупреждение | Ошибка | |
|
Используйте последний порт данных и не сообщайте ни о каком предупреждении или ошибке. |
Используйте последний порт данных и сообщите о предупреждении. |
Сообщите об ошибке и симуляции остановки. |
|
Используйте дополнительный порт данных с |
Используйте дополнительный порт данных с |
Сообщите об ошибке и симуляции остановки. |
Следующее поведение применяется к генерации кода за вашу модель.
Порт данных для случая по умолчанию | Диагностика для случая по умолчанию | ||
---|---|---|---|
'none' | Предупреждение | Ошибка | |
|
Используйте последний порт данных. |
Используйте последний порт данных. |
Используйте последний порт данных. |
|
Используйте дополнительный порт данных с |
Используйте дополнительный порт данных с |
Используйте дополнительный порт данных с |
Если два сигнала имеют различное количество размерностей или различные длины размерности, можно использовать сигналы в качестве вводов данных с блоком Multiport Switch. В диалоговом окне блока выберите параметр Allow different data input sizes. В этом случае выход блока является сигналом переменного размера. Если вы не выбираете этот параметр, блок генерирует ошибку.
Для получения дополнительной информации о параметре, смотрите, Позволяют различные размеры ввода данных (Результаты в выходном сигнале переменного размера). Для получения дополнительной информации о сигналах переменного размера, смотрите Основы Сигнала Переменного Размера.
Вы задаете количество вводов данных с Number of data ports.
Если вы устанавливаете Number of data ports на 1, блок ведет себя как селектор индекса или вектор индекса и не как многопортовый переключатель. Для получения дополнительной информации смотрите Многопортовый Переключатель, Сконфигурированный как Блок Вектора индекса.
Если вы устанавливаете Number of data ports на целое число, больше, чем 1, блок ведет себя как многопортовый переключатель. Блок выход является вводом данных, который соответствует значению входа управления. Если по крайней мере один из вводов данных является вектором, блок выход является вектором. В этом случае блок расширяет любые скалярные входные параметры до векторов.
Если все вводы данных являются скаляром, выход является скаляром.
Когда порт управления на блоке Multiport Switch будет иметь перечислимый тип, следуйте этим инструкциям:
Сценарий | Что сделать | Объяснение |
---|---|---|
Перечислимый тип содержит значение, которое представляет недопустимый, из области значений, или деинициализирует значения. |
|
Эта настройка блока обрабатывает недопустимые значения, которые явным образом представляет перечислимый тип. |
Перечислимый тип содержит только допустимые перечисляемые значения. Однако порт ввода данных может получить недопустимые значения перечислимого типа. |
|
Эта настройка блока обрабатывает недопустимые значения, которые явным образом не представляет перечислимый тип. |
Перечислимый тип содержит только допустимые перечисляемые значения. Порты ввода данных никогда не могут получать недопустимые значения перечислимого типа. |
|
Эта настройка блока избегает ненужного диагностического действия. |
Блок не имеет порта ввода данных для каждого значения перечислимого типа. |
|
Эта настройка блока обрабатывает перечисляемые значения, которые не имеют порта ввода данных, наряду с недопустимыми значениями. |
Если вводы данных с блоком Multiport Switch являются шинами, имена элементов обеих шин должны быть тем же самым. Используя те же имена элементов гарантирует, что выходная шина имеет те же имена элементов, неважно, какую входную шину блок выбирает. Чтобы гарантировать, что ваша модель удовлетворяет это требование, используйте объект шины задать шины и установить диагностику Element name mismatch на error
. См. Обзор Диагностики Возможности соединения для получения дополнительной информации.
Типы данных |
|
Прямое сквозное соединение |
|
Многомерные сигналы |
|
Сигналы переменного размера |
|
Обнаружение пересечения нулем |
|