Product of Elements

Скопируйте или инвертируйте один скалярный вход или сверните один нескалярный вход

  • Библиотека:
  • Simulink / Математические операции

    HDL Coder / Операции Плавающей точки HDL

    HDL Coder / Математические операции

  • Product of Elements block

Описание

Блок Product of Elements вводит один скаляр, вектор или матрицу. Можно использовать блок для:

  • Скопируйте скалярный неизменный вход

  • Инвертируйте скалярный вход (разделитесь 1 на него),

  • Сверните вектор или матрицу к скаляру путем умножения вместе всех элементов или взятия последовательных инверсий элементов

  • Сверните матрицу к вектору с помощью одной из этих опций:

    • Умножьте вместе элементы каждой строки или столбца

    • Возьмите последовательные инверсии элементов каждой строки или столбца

Блок Product of Elements является функционально блоком Product, который имеет два предварительно установленных значения параметров:

  • Multiplication: Element-wise(.*)

  • Number of inputs: *

Устанавливание значений не по умолчанию или для тех параметров может изменить блок Product of Elements, чтобы быть функционально эквивалентным блоку Product или для блоку Divide.

Порты

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

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

Сначала введите, чтобы умножиться или разделиться, обеспеченный как скаляр, вектор, матрица или массив N-D.

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

Энный вход, чтобы умножиться или разделиться, обеспеченный как скаляр, вектор, матрица или массив N-D.

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

Входной сигнал, который будет умножен с другими входными параметрами.

Зависимости

Чтобы включить один или несколько портов X, задайте один или несколько * символы для параметра Number of inputs.

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

Входной сигнал для операций деления или инверсии.

Зависимости

Чтобы включить один или несколько портов ÷, задайте один или несколько / символы для параметра Number of inputs.

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

Вывод

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

Выведите вычисленный путем умножения, делясь или инвертируя входные параметры.

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

Параметры

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

Основной

Управляйте двумя свойствами блока:

  • Количество входных портов на блоке

  • Умножен ли каждый вход или разделен на выход

Когда вы задаете:

  • 1 или * или /

    Блок имеет один входной порт. В поэлементном режиме блок обрабатывает вход как описано для блока Product of Elements. В матричном режиме, если значением параметров является 1 или *, блок выводит входное значение. Если значением является /, вход должен быть квадратной матрицей (включая скаляр как вырожденный случай), и блок выводит обратную матрицу. Смотрите Поэлементный Режим и Матричный Режим для получения дополнительной информации.

  • Целочисленное значение> 1

    Блок имеет количество входных параметров, данных целочисленным значением. Входы умножены вместе в поэлементном режиме или матричном режиме, как задано параметром Умножения. Смотрите Поэлементный Режим и Матричный Режим для получения дополнительной информации.

  • Неупомянутая строка двух или больше * и / 'characters'

    Блок имеет количество входных параметров, данных длиной вектора символов. Каждый вход, который соответствует * символ умножается в выход. Каждый вход, который соответствует / символ разделен на выход. Операции происходят в поэлементном режиме или матричном режиме, как задано параметром Умножения. Смотрите Поэлементный Режим и Матричный Режим для получения дополнительной информации.

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

Параметры блоков: Inputs
Ввод: символьный вектор
Значения: '2' | '*' | '**' | '*/' | '*/*' | ...
Значение по умолчанию: '*'

Задайте, выполняет ли блок Element-wise(.*) или Matrix(*) умножение.

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

Параметры блоков: Multiplication
Ввод: символьный вектор
Значения: 'Element-wise(.*)' | 'Matrix(*)'
Значение по умолчанию: 'Element-wise(.*)'

Задайте размерность, чтобы умножиться по как All dimensions, или Specified dimension.

Когда вы выбираете All dimensions и выберите параметр конфигурации Use algorithms optimized for row-major array layout, Simulink® включает упорядоченные по строкам алгоритмы для симуляции. Чтобы сгенерировать упорядоченный по строкам код, установите параметр конфигурации Array layout (Simulink Coder) к Row-major в дополнение к выбору Use algorithms optimized for row-major array layout. Упорядоченные по столбцам и упорядоченные по строкам алгоритмы отличаются только по порядку умножения. В некоторых случаях, из-за различной операции заказывают на том же наборе данных, вы можете испытать незначительные числовые различия в выходных параметрах упорядоченных по столбцам и упорядоченных по строкам алгоритмов.

Когда вы выбираете Specified dimension, можно задать Dimension как 1 или 2.

Зависимости

Чтобы включить этот параметр, установите Number of inputs на * и Multiplication к Element-wise (.*).

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

Параметры блоков: CollapseMode
Ввод: символьный вектор
Значения: 'All dimensions' | 'Specified dimension'
Значение по умолчанию: 'All dimensions'

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

Зависимости

Чтобы включить этот параметр, установите:

  • Number of inputs к *

  • Multiplication к Element-wise (.*)

  • Multiply over к Specified dimension

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

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

Задайте шаг расчета как значение кроме-1. Для получения дополнительной информации см. Настройку времени выборки.

Зависимости

Этот параметр не отображается, если он явным образом не установлен в значение кроме -1. Чтобы узнать больше, смотрите Блоки, для Которых Не Рекомендуется Шаг расчета.

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

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

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

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

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

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

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

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

Примечание

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

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

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

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

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

Примечание

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

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

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

Выберите тип данных для выхода. Тип может быть наследован, задан непосредственно или описан как объект типа данных, такой как Simulink.NumericType. Для получения дополнительной информации смотрите Типы данных Управления Сигналов.

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

  • Inherit: Inherit via internal rule — Simulink выбирает тип данных, чтобы сбалансировать числовую точность, эффективность и размер сгенерированного кода, при принятии во внимание свойств оборудования целевого процессора. Если вы изменяете настройки целевого процессора, тип данных, выбранный внутренним правилом, может измениться. Например, если блок умножает вход типа int8 усилением int16 и ASIC/FPGA задан как целенаправленный тип оборудования, типом выходных данных является sfix24. Если Unspecified (assume 32-bit Generic), другими словами, типовой 32-битный микропроцессор, задан как целевой компьютер, типом выходных данных является int32. Если ни один из размеров слова, обеспеченных целевым микропроцессором, не может вместить выходную область значений, программное обеспечение Simulink отображает ошибку в Диагностическом Средстве просмотра.

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

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

    • Используйте простой выбор Inherit: Same as input.

    • Явным образом задайте тип данных по умолчанию, такой как 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 input — Используйте тип данных первого входного сигнала.

Зависимости

Когда введенный тип данных с плавающей точкой, меньший, чем одинарная точность, Inherit: Inherit via internal rule тип выходных данных зависит от установки Того, чтобы наследовать выходной тип с плавающей точкой, меньший, чем параметр конфигурации одинарной точности. Типы данных меньше, чем одинарная точность, когда количество битов должно было закодировать тип данных, меньше, 32 бита должны были закодировать тип данных с одинарной точностью. Например, half и int16 меньше, чем одинарная точность.

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

Параметры блоков: OutDataTypeStr
Ввод: символьный вектор
Значения: 'Inherit: Inherit via internal rule | 'Inherit: Same as first input' | 'Inherit: Inherit via back propagation' | 'double' | 'single' | 'int8' | 'uint8' | 'int16' | 'uint16' | 'int32' | 'uint32' | 'int64' | 'uint64' | 'fixdt(1,16)' | 'fixdt(1,16,0)' | 'fixdt(1,16,2^0,0)' | '<data type expression>'
Значение по умолчанию: 'Inherit: Inherit via internal rule'

Выберите этот параметр, чтобы препятствовать тому, чтобы Fixed-Point Tool заменили тип данных Output, который вы задаете на блоке. Для получения дополнительной информации смотрите, что Тип Выходных данных Блокировки Использования Устанавливает (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 функция.

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

Параметры блоков всегда вокруг к самому близкому представимому значению. Чтобы управлять округлением параметров блоков, введите выражение с помощью функции округления MATLAB в поле маски.

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

Параметры блоков: RndMeth
Ввод: символьный вектор
Значения: 'Ceiling' | 'Convergent' | 'Floor' | 'Nearest' | 'Round' | 'Simplest' | 'Zero'
Значение по умолчанию: 'Floor'

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

ДействиеОбъяснениеПовлияйте на переполнениеПример

Установите этот флажок (on).

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

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

Максимальное значение, что int8 (8-битное целое число со знаком) тип данных может представлять, 127. Любой результат блочной операции, больше, чем это максимальное значение, вызывает переполнение 8-битного целого числа. С установленным флажком блок выход насыщает в 127. Точно так же блок выход насыщает в минимальном выходном значении-128.

Не устанавливайте этот флажок (off).

Вы хотите оптимизировать КПД своего сгенерированного кода.

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

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

Максимальное значение, что int8 (8-битное целое число со знаком) тип данных может представлять, 127. Любой результат блочной операции, больше, чем это максимальное значение, вызывает переполнение 8-битного целого числа. Со снятым флажком программное обеспечение интерпретирует вызывающее переполнение значение как int8, который может привести к непреднамеренному результату. Например, результат блока 130 (двоичный файл 1000 0010) описанный как int8,-126.

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

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

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

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

Типы данных

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

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

yes

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

yes

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

yes

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

no

Алгоритмы

Блок Product of Elements использует эти алгоритмы, чтобы выполнить поэлементные операции на входных параметрах встроенного целого числа с плавающей точкой и фиксированные точки.

Входной параметрПоэлементная операцияАлгоритм

Действительный скаляр, u

Умножениеy = u
Делениеy = 1/u

Вектор действительных чисел или матрица с элементами u1, u2, u3, ..., uN

Умножениеy = u1*u2*u3*...*uN
Делениеy = ((((1/u1)/u2)/u3).../uN)

Объедините скаляр, u

Умножениеy = u
Делениеy = 1/u

Комплексный вектор или матрица с элементами u1, u2, u3, ..., uN

Умножениеy = u1*u2*u3*...*uN
Делениеy = ((((1/u1)/u2)/u3).../uN)

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

Главный блок Product of Elements сворачивает матричный вход к скаляру путем взятия последовательных инверсий этих четырех элементов:

  • y = ((((1/2+i)/3)/4-i)/5)

Нижний блок Product of Elements сворачивает матричный вход к вектору путем взятия последовательных инверсий вдоль второго измерения:

  • y(1) = ((1/2+i)/3)

  • y(2) = ((1/4-i)/5)

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

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

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

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

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

| |

Представлено до R2006a
Для просмотра документации необходимо авторизоваться на сайте