Gain

Умножьте вход на константу

  • Библиотека:
  • Simulink / Обычно Используемые Блоки

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

    HDL Coder / Обычно Используемые Блоки

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

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

  • Gain block

Описание

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

Вы задаете значение усиления в параметре Gain. Параметр Multiplication позволяет вам задать поэлементное или умножение матриц. Для умножения матриц этот параметр также позволяет вам указать на порядок множимых.

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

Порты

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

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

Блок Gain принимает действительный или скаляр с комплексным знаком, вектор или матричный вход. Блок Gain поддерживает типы данных с фиксированной точкой. Если вход блока Gain действителен, и усиление является комплексным, выход является комплексным.

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

Вывод

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

Блок Gain выводит вход, умноженный на постоянное значение усиления. Когда вход с блоком Gain действителен, и усиление является комплексным, выход является комплексным.

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

Параметры

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

Основной

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

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

Параметры блоков: Gain
Ввод: символьный вектор
Значения: '1' | real- or complex-valued scalar, vector, or matrix
Значение по умолчанию: '1'

Задайте один из этих режимов умножения:

  • Element-wise(K.*u) — Каждый элемент входа умножается на каждый элемент усиления. Блок выполняет расширения, при необходимости, так, чтобы вход и усиление имели те же размерности.

  • Matrix(K*u) — Вход и усиление умножаются на матрицу с входом как второй операнд.

  • Matrix(u*K) — Вход и усиление умножаются на матрицу с входом как первый операнд.

  • Matrix(K*u) (u vector) — Вход и усиление являются матрицей, умноженной с входом как второй операнд. Этот режим идентичен Matrix(K*u), за исключением того, как определяются размерности.

    Предположим тот K m-by-n матрица. Matrix(K*u)(u vector) устанавливает вход на вектор из длины n и выход к вектору из длины m. В отличие от этого Matrix(K*u) распространение использования, чтобы определить размерности для ввода и вывода. Для m-by-n получите матрицу, вход может распространить к n-by-q матрица и выход становятся m-by-q матрица.

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

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

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

Зависимости

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

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

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

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

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

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: Keep MSB– Simulink выбирает тип данных, который обеспечивает полный спектр операции, затем уменьшает точность выхода к размеру, подходящему для оборудования целевого процессора.

    Совет

    Для более эффективного сгенерированного кода отмените выбор параметра Saturate on integer overflow.

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

  • Inherit: Match scaling– 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 input — Используйте тип данных входного сигнала.

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

Параметры блоков: OutDataTypeStr
Ввод: символьный вектор
Значения: 'Inherit: Inherit via internal rule' | 'Inherit: Keep MSB' | 'Inherit: Match scaling' | 'Inherit: Same as input' | 'Inherit: Inherit via back propagation' | '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'

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

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

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

Задайте округляющийся режим для операций фиксированной точки. Для получения дополнительной информации смотрите Округление (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'

Атрибуты параметра

Задайте минимальное значение усиления. Значением по умолчанию является [] (незаданный). Simulink использует это значение, чтобы выполнить:

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

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

Задайте максимальное значение усиления. Значением по умолчанию является [] (незаданный). Simulink использует это значение, чтобы выполнить:

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

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

Задайте тип данных параметра Gain.

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

Параметры блоков: ParamDataTypeStr
Ввод: символьный вектор
Значения: 'Inherit: Inherit via internal rule | 'Inherit: Same as input' | 'Inherit: Inherit via back propagation' | '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'

Примеры модели

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

Типы данных

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

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

yes

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

yes

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

yes

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

no

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

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

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

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

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