Gain

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

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

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

    HDL-кодер/обычно используемые блоки

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

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

  • 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 проверяет.

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 отображает ошибку в Diagnostic Viewer.

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

Зависимости

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

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

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

Выберите этот параметр, чтобы предотвратить переопределение инструментами с фиксированной точкой типа данных 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++ с помощью Coder™ Simulink ®

.

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

.

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

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