Index Vector

Переключатель выводится между различными входными параметрами на основе значения первого входа

  • Библиотека:
  • Simulink / Маршрутизация Сигнала

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

  • Index Vector block

Описание

Блок 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.

Для получения дополнительной информации о Многопортовом блоке switch, смотрите страницу с описанием блока Multiport Switch.

Порты

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

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

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

Для получения информации об управляющих сигналах перечислимого типа см. Инструкции по Установке Параметров для Перечислимого Порта управления на блоке Multiport Switch касательно страницы.

Ограничения

  • Если управляющий сигнал является числовым, управляющий сигнал не может быть комплексным.

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

  • Если базовое целое число не соответствует вводу данных, ошибка происходит.

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

Вход First Data в виде скаляра или вектора. Порт помечен 0, когда вы устанавливаете Data port order на Zero-based contiguous, и пометил 1, когда вы устанавливаете Data port order на One-based contiguous.

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

Вывод

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

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

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

Параметры

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

Основной

Задайте тип упорядоченного расположения для ваших портов ввода данных.

  • Zero-based contiguous — Блок использует основанную на нуле индексацию для упорядоченного расположения непрерывных портов данных. Это - значение по умолчанию блока Index Vector.

  • One-based contiguous — Блок использует индексацию на основе одну для упорядоченного расположения непрерывных портов данных. Это - значение по умолчанию блока Multiport Switch.

  • Specify indices — Блок использует индексацию, состоящую из нескольких несмежных участков, для упорядоченного расположения портов данных. Это значение поддерживается только для настроек с двумя или больше портами входных данных.

Советы

  • Когда порт управления будет иметь перечислимый тип, выберите Specify indices.

  • Если вы выбираете Zero-based contiguous или One-based contiguous, проверьте, что порт управления не имеет перечислимого типа. Эта настройка удерживается от использования и производит ошибку. Можно запустить Советника по вопросам Обновления на модели, чтобы заменить каждый блок Multiport Switch этой настройки с блоком, который явным образом задает индексы порта данных. Смотрите Обновление моделей.

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

    Если блок имеет неиспользованные порты данных, и порядок порта данных:Блок производит:
    Zero-based contiguous или One-based contiguous Предупреждение
    Specify indices Ошибка

Зависимости

Выбор Zero-based contiguous или One-based contiguous включает параметр Number of data ports.

Выбор Specify indices включает параметр Data port indices.

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

Параметры блоков: DataPortOrder
Ввод: символьный вектор
Значения: 'Zero-based contiguous' | 'One-based contiguous' | 'Specify indices'
Значение по умолчанию: 'Zero-based contiguous'

Задайте количество портов ввода данных с блоком.

Зависимости

Чтобы включить этот параметр, установите Data port order на Zero-based contiguous или One-based contiguous.

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

Параметры блоков: Inputs
Ввод: символьный вектор
Значения: целое число между 1 и 65536
Значение по умолчанию: '1'

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

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

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

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

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

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

Примечание

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

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

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

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

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

Примечание

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

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

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

Выберите тип данных для выхода. Тип может быть наследован, задан непосредственно или описан как объект типа данных, такой как Simulink.NumericType.

Когда вы выбираете наследованную опцию, блок ведет себя можно следующим образом:

  • Inherit: Inherit via internal rule— Simulink выбирает тип данных, чтобы сбалансировать числовую точность, эффективность и размер сгенерированного кода, при принятии во внимание свойств оборудования целевого процессора. Если вы изменяете настройки целевого процессора, тип данных, выбранный внутренним правилом, может измениться. Для программного обеспечения не всегда возможно оптимизировать КПД кода и числовую точность одновременно. Если внутреннее правило не удовлетворяет ваши определенные потребности для числовой точности или эффективности, используйте одну из следующих опций:

    • Задайте тип выходных данных явным образом.

    • Явным образом задайте тип данных по умолчанию, такой как fixdt(1,32,16) и затем используйте Fixed-Point Tool, чтобы предложить типы данных для вашей модели. Для получения дополнительной информации смотрите fxptdlg (Fixed-Point Designer).

    • Чтобы задать ваше собственное правило наследования, используйте Inherit: Inherit via back propagation и затем используйте блок Data Type Propagation. Примеры того, как использовать этот блок, доступны в библиотеке Signal Attributes блок Data Type Propagation Examples.

  • Inherit: Inherit via back propagation — Использует тип данных ведущего блока.

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

Параметры блоков: 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)' | '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'

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

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

  • Off — Требует, чтобы все нескалярные сигналы ввода данных были одного размера.

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

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

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

Типы данных

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

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

yes

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

yes

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

yes

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

no

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

Генерация кода C/C++
Генерация кода C и C++ с помощью Simulink® Coder™.

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

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

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