exponenta event banner

Добавить, Вычесть, Сумма элементов, Сумма

Добавление или вычитание входных данных

  • Библиотека:
  • Операции с симуляцией/математикой

    Кодер HDL/Операции с плавающей точкой HDL

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

  • Add block

Описание

Блок Sum выполняет сложение или вычитание на своих входах. Блоки «Добавить», «Вычесть», «Сумма элементов» и «Сумма» являются идентичными блоками. Этот блок может добавлять или вычитать скалярные, векторные или матричные входы. Он также может свернуть элементы сигнала и выполнить суммирование.

Операции блока задаются параметром Список знаков с плюсом (+), минус (-) и проставку (|).

  • Количество + и - символы равны количеству входов. Например, +-+ требует трех входов. Блок вычитает второй (средний) вход из первого (верхнего), а затем добавляет третий (нижний) вход.

  • Символ разделителя создает дополнительное пространство между портами на значке блока.

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

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

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

Расчет выхода блока

Расчет выходного сигнала для блока Sum зависит от количества входов блока и знака входных портов:

Если блок Sum имеет...И...Формула для расчета выходных данных...Где...

Один входной порт

Знак входного порта +

y = e [0] + e [1] + e [2]... + e [m]


e[i] - i-й элемент входа u

Знак входного порта -

y = 0,0 - e [0] - e [1] - e [2]... - e [м]


Два или более входных порта

Все знаки входных портов -

y = 0,0 - u [0] - u [1] - u [2]... - u [n]


u[i] является входом для i-го входного порта

k-ый входной порт является первым портом, где знак +

y = u [k] - u [0] - u [1] - u [2] - u [k-1] (+/-) u [k + 1]... (+/-) u [n]


Порты

Исходные данные

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

Входные данные могут иметь различные типы данных, если не выбран параметр Требовать, чтобы все входные данные имели один и тот же тип данных.

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

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

nвторой входной сигнал к операциям. Количество входов соответствует количеству знаков в параметре List of signes. Блок применяет операции к входам в указанном порядке. В качестве параметра List of signes можно также использовать числовое значение, равное количеству входных портов. Блок создает входные порты и применяет добавление ко всем входам. Например, при назначении 5 для параметра List of signes блок создает 5 входные порты и их сложение для получения выходных данных.

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

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

Параметры

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

Главный

Обозначьте форму значка блока как прямоугольную или круглую.

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

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

Параметр блока: IconShape
Текст: символьный вектор
Значения: 'rectangular' | 'round'
По умолчанию: 'round'

Введите операции сложения и вычитания, выполняемые на входах. Для каждой операции создается входной порт. Проставка (|) создает дополнительное пространство между портами ввода на значке блока. Добавление является операцией по умолчанию. Если требуется только добавить входные данные, введите количество входных портов. Операции выполняются в указанном порядке.

При вводе только одного элемента блок включает параметр Sum over. Для ввода одного вектора: + или - добавляет или вычитает элементы для всех размеров или для указанного размера.

Совет

Можно управлять положениями входных портов на блоке, вставляя распорки (|) между знаками в параметре Перечень знаков. Например, "++|--"создает дополнительное пространство между вторым и третьим портами ввода.

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

Параметр блока: Inputs
Текст: символьный вектор
Значения: '+' | '-' | | | целое число
По умолчанию: '++'

Выберите размер, над которым блок выполняет операцию суммирования.

Для всех размеров все входные элементы суммируются. При выборе параметра конфигурации Использовать алгоритмы, оптимизированные для макета массива основных строк, Simulink ® включает алгоритмы основных строк для моделирования. Чтобы создать основной код строки, установите параметр конфигурации Array layout (Simulink Coder) в значениеRow-major в дополнение к выбору Use algoriths optimized for row-major array layout (Использовать алгоритмы, оптимизированные для компоновки основных массивов строк). Алгоритмы «столбец-большая» и «строка-большая» различаются только порядком суммирования. В некоторых случаях из-за различной последовательности операций в одном и том же наборе данных могут возникнуть незначительные числовые различия в выходах алгоритмов «столбец-большая» и «строка-большая».

При выборе параметра Заданные размеры (Specified dimensions) появляется другой параметр Размер (Dimension). Выберите конкретный размер для суммирования векторного ввода.

Зависимость

Включено, если в параметре List of signes указан только один знак.

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

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

При выборе параметра Сумма над (Sum over) параметра Заданный размер (Specified dimension) укажите размер, над которым будет выполняться операция.

Блок следует тем же правилам суммирования, что и MATLAB ®sum функция.

Предположим, что имеется матрица 2 на 3 U.

  • Установка размера в 1 в результате выходные данные Y вычисляются следующим образом:

    Y=∑i=12U (i, j)

  • Установка размера в 2 в результате выходные данные Y вычисляются следующим образом:

    Y=∑j=13U (i, j)

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

Зависимость

Включено при выборе Specified dimension для параметра Sum over.

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

Параметр блока: CollapseDim
Текст: символьный вектор
Значение: integer
По умолчанию: '1'

Укажите время выборки в качестве значения, отличного от -1. Дополнительные сведения см. в разделе Указание времени образца.

Зависимости

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

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

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

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

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

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

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

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

Выберите тип данных накопителя. Тип может быть унаследован, указан непосредственно или выражен как объект типа данных, например Simulink.NumericType. При выборе Inherit: Inherit via internal ruleSimulink выбирает тип данных, чтобы сбалансировать числовую точность, производительность и размер сгенерированного кода с учетом свойств встроенного целевого оборудования.

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

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

Меньшее значение диапазона вывода, которое проверяет Simulink.

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

Примечание

Минимальный выходной сигнал не насыщает и не отсекает фактический выходной сигнал. Вместо этого используйте блок «Насыщенность».

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

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

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

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

Примечание

Выходной максимум не насыщает и не отсекает фактический выходной сигнал. Вместо этого используйте блок «Насыщенность».

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

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

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

При выборе унаследованной опции блок ведет себя следующим образом:

  • Inherit: Inherit via internal rule- Simulink выбирает тип данных, чтобы сбалансировать числовую точность, производительность и размер сгенерированного кода, принимая во внимание свойства встроенного целевого оборудования .

    Примечание

    Внутреннее правило накопителя способствует большей цифровой точности, возможно, за счет менее эффективного генерируемого кода. Чтобы получить такую же точность для выходных данных, установите тип выходных данных в Inherit: Inherit same as accumulator.

    Примечание

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

  • Inherit: Keep MSB- Simulink выбирает тип данных, который поддерживает полный диапазон операций, затем снижает точность вывода до размера, соответствующего встроенному целевому оборудованию.

    Совет

    Для более эффективного создания кода установите тип данных Accumulator равным Inherit: Inherit via internal ruleи отмените выбор параметра Saturate on integer overflow.

    Это правило никогда не приводит к переполнению.

  • Inherit: Keep LSB- Simulink выбирает тип данных, который поддерживает точность операции, но уменьшает диапазон, если полный тип не умещается на встроенном целевом оборудовании.

    Совет

    Для более эффективного создания кода установите тип данных Accumulator равным Inherit: Inherit via internal ruleи отмените выбор параметра Saturate on integer overflow.

    Это правило может привести к переполнению.

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

    • Явно укажите тип выходных данных.

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

    • Явно укажите тип данных по умолчанию, например fixdt(1,32,16) а затем с помощью инструмента «Фиксированная точка» предложите типы данных для модели. Дополнительные сведения см. в разделе fxptdlg (Конструктор фиксированных точек).

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

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

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

  • Inherit: Inherit same as accumulator- Использовать тип данных накопителя.

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

Параметр блока: OutDataTypeStr
Текст: символьный вектор
Значения: 'Inherit: Inherit via internal rule|'Inherit: Keep MSB'|'Inherit: Keep LSB' | 'Inherit: Inherit via back propagation''Inherit: Same as first input' | 'Inherit: Same as accumulator' | 'double' | 'single' | 'half' | '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'

Выберите этот параметр, чтобы заблокировать параметры типа данных этого блока от изменений с помощью инструмента «Фиксированная точка» и помощника по фиксированным точкам. Дополнительные сведения см. в разделе Блокировка параметров типа выходных данных (конструктор фиксированных точек).

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

Параметр блока: LockScale
Значения: 'off' | 'on'
По умолчанию: 'off'

Укажите режим округления для операций с фиксированной точкой. Дополнительные сведения см. в разделе Округление (конструктор фиксированных точек).

Параметры блока всегда округляются до ближайшего представимого значения. Для управления округлением параметра блока введите выражение с помощью функции округления 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

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

Создание кода C/C + +
Создайте код C и C++ с помощью Simulink ® Coder™

.

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

.

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

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