Index Vector

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

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

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

  • 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, смотрите Multiport Switch страницы с описанием блока.

Порты

Вход

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

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

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

Ограничения

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

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

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

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

Первый вход данных, заданный как скаляр или вектор. Порт помечается 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, проверьте, что порт управления не имеет перечисленного типа. Это строение устарело и приводит к ошибке. Можно запустить Upgrade Advisor в модели, чтобы заменить каждый 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 проверяет.

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 - Использует тип данных ведущего блока.

  • Inherit: Same as first data input - Использует тип данных первого входного порта данных.

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

Параметры блоков: 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)' | 'string' | '<data type expression>'
По умолчанию: 'Inherit: Inherit via internal rule'

Выберите, чтобы заблокировать настройку типа выходных данных этого блока от изменений с помощью Fixed-Point Tool и Fixed-Point Advisor. Для получения дополнительной информации смотрите Использование настройки типа выходных данных блокировки (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++ с помощью Coder™ Simulink ®

.

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

.

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

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