Main Content

La traducción de esta página aún no se ha actualizado a la versión más reciente. Haga clic aquí para ver la última versión en inglés.

Gain

Multiplicar una entrada por una constante

  • Gain block

Bibliotecas:
Simulink / Commonly Used Blocks
Simulink / Math Operations
HDL Coder / Commonly Used Blocks
HDL Coder / HDL Floating Point Operations
HDL Coder / Math Operations

Descripción

El bloque Gain multiplica la entrada por un valor constante (ganancia). La entrada y la ganancia pueden ser un escalar, un vector o una matriz.

Especifique el valor de ganancia en el parámetro Gain. El parámetro Multiplication permite especificar una multiplicación elemento por elemento o de matrices. Para la multiplicación de matrices, este parámetro también permite indicar el orden de los multiplicandos.

La ganancia se convierte del tipo de datos dobles al tipo de datos especificado en la máscara de bloques sin conexión usando el redondeo al número más próximo y la saturación. La entrada y la ganancia se multiplican después y el resultado se convierte al tipo de datos de salida mediante los modos de redondeo y de desbordamiento.

Puertos

Entrada

expandir todo

El bloque Gain acepta una entrada que sea un escalar, un vector o una matriz con valores reales y complejos. El bloque Gain admite tipos de datos de punto fijo. Si la entrada del bloque Gain es real y la ganancia es compleja, la salida es compleja.

Tipos de datos: half | single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point

Salida

expandir todo

El bloque Gain produce como salida la entrada multiplicada por un valor de ganancia constante. Cuando la entrada al bloque Gain es real y la ganancia es compleja, la salida es compleja.

Tipos de datos: half | single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point

Parámetros

expandir todo

Principal

Especifique el valor por el que se multiplica la entrada. La ganancia puede ser un escalar, un vector o una matriz con valores reales o complejos.

Uso programático

Parámetro de bloque: Gain
Tipo: vector de caracteres
Valores: '1' | real- or complex-valued scalar, vector, or matrix
Predeterminado: '1'

Especifique uno de estos modos de multiplicación:

  • Element-wise(K.*u): cada elemento de la entrada se multiplica por cada elemento de la ganancia. En caso necesario, el bloque realiza expansiones de manera que la entrada y la ganancia tienen las mismas dimensiones.

  • Matrix(K*u): la entrada y la ganancia se multiplican por una matriz con la entrada como segundo operando.

  • Matrix(u*K): la entrada y la ganancia se multiplican por una matriz con la entrada como primer operando.

  • Matrix(K*u) (u vector): la entrada y la ganancia se multiplican por una matriz con la entrada como segundo operando. Este modo es idéntico a Matrix(K*u), salvo por cómo se determinan las dimensiones.

    Supongamos que K es una matriz de m-by-n. Matrix(K*u)(u vector) establece la entrada a un vector de longitud n y la salida en un vector de longitud m. En cambio, Matrix(K*u) usa la propagación para determinar las dimensiones de la entrada y la salida. Para una matriz de ganancia m-by-n, la entrada puede propagarse a una matriz de n-by-q y la salida se convierte en una matriz de m-by-q.

Uso programático

Parámetro: Multiplication
Tipo: vector de caracteres
Valor: 'Element-wise(K.*u)' | 'Matrix(K*u)' | 'Matrix(u*K)' | 'Matrix(K*u) (u vector)'
Predeterminado: 'Element-wise(K.*u)'

Especifique el intervalo de tiempo entre muestreos. Para heredar el tiempo de muestreo, establezca este parámetro en -1. Para obtener más información, consulte Especificar el tiempo de muestreo.

Dependencias

Este parámetro solo es visible si se establece en un valor distinto de -1. Para obtener más información, consulte, Blocks for Which Sample Time Is Not Recommended.

Uso programático

Parámetro de bloque: SampleTime
Tipo: escalar de cadena o vector de caracteres
Predeterminado: "-1"

Signal Attributes

Valor inferior del rango de salida que Simulink® comprueba.

Simulink usa el mínimo para:

Nota

Output minimum no satura o recorta la señal de salida real. Use el bloque Saturation en su lugar.

Uso programático

Parámetro de bloque: OutMin
Tipo: vector de caracteres
Valores: '[ ]'| escalar
Predeterminado: '[ ]'

Valor superior del rango de salida que Simulink comprueba.

Simulink usa el valor máximo para:

Nota

Output maximum no satura o recorta la señal de salida real. Use el bloque Saturation en su lugar.

Uso programático

Parámetro de bloque: OutMax
Tipo: vector de caracteres
Valores: '[ ]'| escalar
Predeterminado: '[ ]'

Elija el tipo de datos para la salida. El tipo puede heredarse, especificarse directamente o expresarse como un objeto de tipo de datos, como Simulink.NumericType.

Cuando selecciona una opción heredada, el bloque muestra estos comportamientos:

  • Inherit: Inherit via internal rule: Simulink elige un tipo de datos para equilibrar la precisión numérica, el rendimiento y el tamaño del código generado, al mismo tiempo que tiene en cuenta las propiedades del hardware objetivo integrado. Si cambia la configuración del objetivo integrado, el tipo de datos seleccionado por la norma interna puede cambiar. Por ejemplo, si el bloque multiplica una entrada de tipo int8 por una ganancia de int16, y ASIC/FPGA está especificado como el tipo de hardware objetivo, el tipo de datos de salida es sfix24. Si Unspecified (assume 32-bit Generic), es decir, un microprocesador genérico de 32 bit se especifica como hardware objetivo, el tipo de datos de salida es int32. Si ninguna de las longitudes de palabras proporcionadas por el microprocesador objetivo puede adecuarse al rango de salida, el software de Simulink muestra un error en el visor de diagnósticos.

  • Inherit: Keep MSB: Simulink elige un tipo de datos que mantiene el rango completo de la operación y, luego, reduce la precisión de la salida hasta un tamaño adecuado para el hardware objetivo integrado.

    Sugerencia

    Para un código generado más eficiente, desmarque el parámetro Saturate on integer overflow.

    Esta norma nunca genera desbordamientos.

  • Inherit: Match scaling: Simulink elige un tipo de datos cuyo escalado coincide con el escalado de los tipos de entrada. Si el rango completo del tipo no encaja en el hardware objetivo integrado, el rango se reduce hasta producir un tipo adecuado para el hardware objetivo integrado. Esta norma puede generar desbordamientos.

    El software no siempre puede optimizar la eficiencia del código y la precisión numérica al mismo tiempo. Si estas normas internas no cumplen con sus necesidades de precisión numérica o rendimiento, use una de las siguientes opciones:

    • Especifique el tipo de datos de salida de manera explícita.

    • Use la opción Inherit: Same as input.

    • Especifique de manera explícita un tipo de datos predeterminado como fixdt(1,32,16) y, luego, use la herramienta de punto fijo para proponer tipos de datos al modelo. Para obtener más información, consulte fxptdlg (Fixed-Point Designer).

    • Para especificar su propia regla de herencia, use Inherit: Inherit via back propagation y, luego, use un bloque Data Type Propagation. Puede encontrar ejemplos de cómo usar este bloque en el bloque Data Type Propagation Examples de la biblioteca Signal Attributes.

  • Inherit: Inherit via back propagation: usa el tipo de datos del bloque controlador.

  • Inherit: Same as input: usa el tipo de datos de la señal de entrada.

Dependencias

Cuando la entrada es un tipo de datos de punto flotante más pequeño que la precisión simple, el tipo de datos de salida Inherit: Inherit via internal rule depende de los ajustes del parámetro de configuración Inherit floating-point output type smaller than single precision. Los tipos de datos son más pequeños que la precisión simple cuando el número de bits necesarios para codificar el tipo de datos es inferior a los 32 bits necesarios para codificar el tipo de datos de precisión simple. Por ejemplo, half e int16 son más pequeños que la precisión simple.

Uso programático

Parámetro de bloque: OutDataTypeStr
Tipo: vector de caracteres
Valores: '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>'
Predeterminado: 'Inherit: Inherit via internal rule'

Seleccione este parámetro para evitar que las herramientas de punto fijo anulen el tipo de datos de Output que se especificó en el bloque. Para obtener más información, consulte Use Lock Output Data Type Setting (Fixed-Point Designer).

Uso programático

Parámetro de bloque: LockScale
Tipo: vector de caracteres
Valores: 'off' | 'on'
Predeterminado: 'off'

Especifique el modo de redondeo para operaciones de punto fijo. Para obtener más información, consulte Rounding (Fixed-Point Designer).

Los parámetros de bloque siempre se redondean al valor representable más cercano. Para controlar el redondeo de los parámetros de bloque, introduzca una expresión mediante una función de redondeo de MATLAB® en el campo de máscara.

Uso programático

Parámetro de bloque: RndMeth
Tipo: vector de caracteres
Valores: 'Ceiling' | 'Convergent' | 'Floor' | 'Nearest' | 'Round' | 'Simplest' | 'Zero'
Predeterminado: 'Floor'

Especifique si los desbordamientos saturan o ajustan valores.

AcciónRacionalImpacto en desbordamientosEjemplo

Seleccione esta casilla (on).

El modelo tiene un desbordamiento posible y desea una protección explícita de saturación en el código generado.

Los desbordamientos saturan al valor mínimo o máximo que el tipo de datos puede representar.

El valor máximo que el tipo de datos int8 (entero de 8 bits con signo) puede representar es 127. Cualquier resultado de la operación del bloque mayor que este valor máximo provocará el desbordamiento del entero de 8 bits. Con la casilla seleccionada, la salida del bloque satura a 127. De forma similar, la salida del bloque satura a un valor de salida mínimo de -128.

No seleccione esta casilla (off).

Desea optimizar la eficiencia del código generado.

No desea especificar cómo trata un bloque las señales fuera de rango. Para obtener más información, consulte Troubleshoot Signal Range Errors.

Los desbordamientos se ajustan al valor adecuado que el tipo de datos puede representar.

El valor máximo que el tipo de datos int8 (entero de 8 bits con signo) puede representar es 127. Cualquier resultado de la operación del bloque mayor que este valor máximo provocará el desbordamiento del entero de 8 bits. Con la casilla desmarcada, el software interpreta que el valor que provoca el desbordamiento es int8, que puede provocar un resultado no intencionado. Por ejemplo, un resultado del bloque de 130 (binario 1000 0010) expresado como int8, es -126.

Cuando se selecciona esta casilla, la saturación se aplica a cada operación interna en el bloque, no solo a la salida o al resultado. Por lo general, el proceso de generación de código puede detectar cuándo el desbordamiento no es posible. En este caso, el generador de código no produce código de saturación.

Uso programático

Parámetro de bloque: SaturateOnIntegerOverflow
Tipo: vector de caracteres
Valores: 'off' | 'on'
Predeterminado: 'off'

Selecciona la categoría de datos que desee especificar.

  • Inherit: reglas de herencia para tipos de datos. Seleccionar Inherit activa un menú secundario o cuadro de texto a la derecha donde se puede seleccionar el modo de herencia.

  • Built in: tipos de datos integrados. Cuando selecciona Built in, se activa un menú secundario o cuadro de texto a la derecha donde se puede seleccionar un tipo de datos integrado.

  • Fixed point: tipos de datos de punto fijo. Cuando selecciona Fixed point, se activan parámetros adicionales que se pueden usar para especificar un tipo de datos de punto fijo.

  • Expression: expresiones que evalúan los tipos de datos. Cuando selecciona Expression, se activa un menú secundario o cuadro de texto a la derecha, donde se puede introducir la expresión.

Para obtener más información, consulte Specify Data Types Using Data Type Assistant.

Dependencias

Para activar este parámetro, haga clic en el botón Show data type assistant.

Seleccione el modo de anulación del tipo de datos para esta señal.

  • Cuando selecciona Inherit, Simulink hereda la configuración de anulación del tipo de datos de su contexto, es decir, del bloque, el objeto Simulink.Signal o el gráfico de Stateflow® en Simulink que está utilizando la señal.

  • Cuando selecciona Off, Simulink ignora la configuración de anulación del tipo de datos de su contexto y usa el tipo de datos de punto fijo especificado para la señal.

Para obtener más información, consulte Specify Data Types Using Data Type Assistant en la documentación de Simulink.

Dependencias

Para activar este parámetro, establezca Mode en Built in o Fixed point.

Sugerencias

La capacidad de desactivar la anulación del tipo de datos para un tipo de datos individual proporciona más control sobre el tipo de datos del modelo cuando aplica la anulación de tipo de datos. Por ejemplo, puede utilizar esta opción para garantizar que el tipo de datos cumplen los requisitos de los bloques descendentes independientemente de la configuración de la anulación del tipo de datos.

Especifique si datos de punto fijo con o sin signo. Los datos con signo pueden representar valores positivos y negativos, pero los datos sin signo solo representan valores positivos.

  • Signed especifica los datos de punto fijo con signo.

  • Unsigned especifica los datos de punto fijo sin signo.

Para obtener más información, consulte Specify Data Types Using Data Type Assistant.

Dependencias

Para activar este parámetro, establezca Mode en Fixed point.

Especifique el tamaño en bits de la palabra que contiene el entero cuantizado. Para obtener más información, consulte Specifying a Fixed-Point Data Type.

Dependencias

Para activar este parámetro, establezca Mode en Fixed point.

Especifique el método para escalar los datos de punto fijo para evitar condiciones de desbordamiento y reducir los errores de cuantización. Para obtener más información, consulte Specifying a Fixed-Point Data Type.

Dependencias

Para activar este parámetro, establezca Mode en Fixed point.

Especifique la inclinación para el tipo de datos de punto fijo. Para obtener más información, consulte Specifying a Fixed-Point Data Type.

Dependencias

Para activar este parámetro, establezca Scaling en Slope and bias.

Especifique el sesgo para el tipo de datos de punto fijo como un número real cualquiera. Para obtener más información, consulte Specifying a Fixed-Point Data Type.

Dependencias

Para activar este parámetro, establezca Scaling en Slope and bias.

Especifique la longitud de fracción para el tipo de datos de punto fijo como un entero positivo o negativo. Para obtener más información, consulte Specifying a Fixed-Point Data Type.

Dependencias

Para activar este parámetro, establezca Scaling en Binary point.

Atributos de parámetro

Especifique el valor mínimo de ganancia. El valor predeterminado es [] (no especificado). Simulink usa este valor para:

Uso programático

Parámetro de bloque: ParamMin
Tipo: vector de caracteres
Valor: escalar
Predeterminado: '[ ]'

Especifique el valor máximo de ganancia. El valor predeterminado es [] (no especificado). Simulink usa este valor para:

Uso programático

Parámetro de bloque: ParamMax
Tipo: vector de caracteres
Valor: escalar
Predeterminado: '[ ]'

Especifique el tipo de datos del parámetro Gain.

Ajustar el valor del parámetro Gain cuando el tipo de datos del parámetro está establecido en Inherit via internal rule

Si se establece Parameter Data type en Inherit: Inherit via internal rule, permite al bloque Gain seleccionar un tipo de datos basado en una heurística interna que mira el valor de ganancia actual y ofrece un tipo de datos de precisión total para representar al valor de ganancia actual. Cuando se actualiza el diagrama, Simulink deduce un tipo de datos para que encaje el valor de ganancia 3 con una precisión alta y sin pérdida de rango. Por ejemplo, con esta heurística, si el valor de ganancia especificado es 3, el bloque Gain deduce un tipo de datos seleccionado de sfix32_En29. Por consiguiente, este tipo de datos deducido no puede retener valores mayores que 4. Durante la simulación, si ajusta el valor de ganancia a 6, se produce un desbordamiento en el tipo de datos seleccionado y el comportamiento es inesperado.

Cuando ajuste un parámetro con esta configuración de Parameter Data type, especifique los parámetros Parameter Minimum y Parameter Maximum. Estas configuraciones indican a Simulink el rango de valores que se desea durante la simulación y permite a Simulink ofrecer un tipo de datos de precisión total con suficiente rango como para permitir un ajuste seguro del valor de ganancia dentro del rango especificado.

Uso programático

Parámetro de bloque: ParamDataTypeStr
Tipo: vector de caracteres
Valores: '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>'
Predeterminado: 'Inherit: Inherit via internal rule'

Características del bloque

Tipos de datos

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

Paso directo

Señales multidimensionales

Señales de tamaño variable

Detección de cruce por cero

no

Capacidades ampliadas

Generación de código C/C++
Genere código C y C++ mediante Simulink® Coder™.

Generación de código PLC
Genere código de texto estructurado mediante Simulink® PLC Coder™.

Conversión de punto fijo
Diseñe y simule sistemas en punto fijo mediante Fixed-Point Designer™.

Historial de versiones

Introducido antes de R2006a