Proporcional + Integral (PI)

Esta información se aplica a los controladores
CompactLogix
5370,
ControlLogix
5570,
Compact GuardLogix
5370,
GuardLogix
5570,
CompactLogix
5380,
ControlLogix
5580 y ControlLogix 5590.
La instrucción PI proporciona dos métodos de funcionamiento. El primer método sigue el algoritmo PI convencional en el que la ganancia proporcional y la ganancia integral permanecen constantes en el rango de la señal de entrada (error). El segundo método utiliza un algoritmo no lineal en el que las ganancias proporcional e integral varían en el rango de la señal de entrada. La señal de entrada es la desviación entre el punto de ajuste y la retroalimentación del proceso.
Idiomas disponibles
Diagrama de lógica de escalera
Esta instrucción no está disponible en el diagrama de escalera.
Bloque de funciones
PI_FBD_avail_v31
Texto estructurado
PI(PI_tag);
Operandos
Bloque de funciones
Operando
Tipo
Formato
Descripción
PI tag
PROP_INT
estructura
Estructura PI
Texto estructurado
Operando
Tipo
Formato
Descripción
PI tag
PROP_INT
estructura
Estructura PI
Consulte
Sintaxis de texto estructurado
para obtener más información sobre la sintaxis de las expresiones dentro de texto estructurado.
Estructura PROP_INT
Parámetro de entrada
Tipo de datos
Descripción
EnableIn
BOOL
Habilita la entrada. Si no está activada, la instrucción no se ejecuta y las salidas no se actualizan.
Está establecido de forma predeterminada.
In
REAL
La entrada de la señal de error del proceso. Esta es la diferencia entre punto de ajuste y retroalimentación.
Válido = cualquier punto flotante
Valor predeterminado = 0,0
Initialize
BOOL
El comando de inicialización de la instrucción. Cuando se establece, Out y el integrador interno se establecen igual al valor de InitialValue.
Está borrado de forma predeterminada.
InitialValue
REAL
La entrada del valor inicial. Cuando Initialize está establecido, Out y el integrador se establecen al valor de InitialValue. El valor de InitialValue se limita usando HighLimit y LowLimit.
Válido = cualquier punto flotante
Valor predeterminado = 0
Kp
REAL
La ganancia proporcional. Esto afecta al valor calculado para los algoritmos de control proporcional e integral. Si no es válido, la instrucción fija Kp en los límites y establece el bit apropiado en Status.
Válido = cualquier número flotante > 0,0
Valor predeterminado = punto flotante positivo mínimo
Wld
REAL
La frecuencia principal en radianes/segundo. Esto afecta al valor calculado del algoritmo de control integral. Si no es válido, la instrucción fija Wld en los límites y establece el bit apropiado en Status.
Válido = consulte la sección Descripción a continuación para ver los rangos válidos
Valor predeterminado = 0,0
HighLimit
REAL
El valor de límite alto. Esto es el valor máximo para Out. Si HighLimit Less than or equal to LowLimit, la instrucción establece HighAlarm y LowAlarm, establece el bit apropiado en Status y establece Out = LowLimit.
Válido = LowLimit < HighLimit Less than or equal to punto flotante positivo máximo
Valor predeterminado = punto flotante positivo máximo
LowLimit
REAL
El valor de límite bajo. Esto es el valor mínimo para Out. Si HighLimit Less than or equal to LowLimit, la instrucción establece HighAlarm y LowAlarm, establece el bit apropiado en Status y establece Out = LowLimit.
Válido = punto flotante negativo máximo Less than or equal to LowLimit < HighLimit
Valor predeterminado = punto flotante negativo máximo
HoldHigh
BOOL
El comando de retención de límite alto. Cuando está establecido, al valor del integrador interno no se le permite aumentar en valor.
Está borrado de forma predeterminada.
HoldLow
BOOL
El comando de retención de límite bajo Cuando está establecido, al valor del integrador interno no se le permite disminuir en valor.
Está borrado de forma predeterminada.
ShapeKpPlus
REAL
El multiplicador de ganancia de modelación Kp positiva Se utiliza cuando In es Greater than or equal to0. Si no es válido, la instrucción fija ShapeKpPlus en los límites y establece el bit apropiado en Status. No se utiliza cuando NonLinearMode está desactivado.
Válido = de 0,1 a 10,0
Valor predeterminado = 1,0
ShapeKpMinus
REAL
El multiplicador de ganancia de modelación Kp negativo. Se utiliza cuando In es < 0. Si no es válido, la instrucción fija ShapeKpMinus en los límites y establece el bit apropiado en Status. No se utiliza cuando NonLinearMode está desactivado.
Válido = de 0,1 a 10,0
Valor predeterminado = 1,0
KpInRange
REAL
El rango de modelación de ganancia proporcional. Define el rango de In (error) sobre el que la ganancia proporcional aumenta o disminuye como una función de la relación de | In | / KpInRange. Si | In | > KpInRange, la instrucción calcula el cambio del error proporcional utilizando la ganancia de modelación Kp x (In - KpInRange). Si no es válido, la instrucción fija KpInRange en los límites y establece el bit apropiado en Status. No se utiliza cuando NonLinearMode está desactivado.
Válido = cualquier número flotante > 0,0
Valor predeterminado = punto flotante positivo máximo
ShapeWldPlus
REAL
El multiplicador de ganancia de modelación Wld positivo. Se utiliza cuando In es Greater than or equal to 0. Si no es válido, la instrucción fija ShapeWldPlus en los límites y establece el bit apropiado en Status. No se utiliza cuando NonLinearMode está desactivado.
Válido = de 0,0 a 10,0
Valor predeterminado = 1,0
ShapeWldMinus
REAL
El multiplicador de ganancia de modelación Wld negativo. Se utiliza cuando In es < 0. Si no es válido, la instrucción fija ShapeWldMinus en los límites y establece el bit apropiado en Status. No se utiliza cuando NonLinearMode está desactivado.
Válido = de 0,0 a 10,0
Valor predeterminado = 1,0
WldInRange
REAL
El rango de modelación de la ganancia integral. Define el rango de In (error) sobre el que la ganancia integral aumenta o disminuye como una función de la relación de | In | / WldInRange. Cuando
|In| > WldInRange, la instrucción limita In a WldInRange cuando calcula el error integral. Si no es válido, la instrucción fija WldInRange en los límites y establece el bit apropiado en Status. No se utiliza cuando NonLinearMode está desactivado.
Válido = cualquier número flotante > 0,0
Valor predeterminado = punto flotante positivo máximo
NonLinearMode
BOOL
Habilita el modo de ganancia no lineal. Cuando está establecido, la instrucción utiliza el modo de ganancia no lineal seleccionado por ParabolicLinear para calcular las ganancias proporcional e integral reales. Cuando está desactivada, la instrucción inhabilita el modo de ganancia no lineal y utiliza los valores Kp y Wld como ganancia proporcional e integral.
Está borrado de forma predeterminada.
ParabolicLinear
BOOL
Selecciona el modo de ganancia no lineal. Los modos son lineal o parabólico. Cuando está establecida, la instrucción utiliza el método de ganancia parabólica de y=a * x
2
+ b para calcular las ganancias proporcional e integral reales. Si está desactivada, la instrucción utiliza el método de ganancia lineal de y=a * x + b.
Está borrado de forma predeterminada.
TimingMode
DINT
Selecciona el modo de ejecución de temporización.
0 = Modo Periódico
1 = Modo Sobremuestreo
2 = Modo Muestreo en tiempo real
Para obtener más información sobre los modos de temporización, consulte “Atributos del bloque de funciones”.
Válido = de 0 a 2
Valor predeterminado = 0
OversampleDT
REAL
Tiempo de ejecución del modo de Sobremuestreo.
Válido = de 0 a 4194,303 segundos
Valor predeterminado = 0
RTSTime
DINT
Período de actualización de módulo para el modo de muestreo en tiempo real
Válido = de 1 a 32.767 ms
Valor predeterminado = 1
RTSTimeStamp
DINT
Valor del sello de tiempo del módulo para el modo de muestreo en tiempo real.
Válido = de 0 a 32.767 ms
Valor predeterminado = 0
Parámetro de salida
Tipo de datos
Descripción
EnableOut
BOOL
Indica el estado de ejecución de la instrucción.
Out
REAL
La salida calculada del algoritmo PI. Se establecen marcas de estado matemático para esta salida.
HighAlarm
BOOL
El indicador de alarma del límite máximo. Se establece cuando el valor calculado de Out Greater than or equal to HighLimit y la salida y el integrador se fijan en HighLimit.
LowAlarm
BOOL
El indicador de alarma del límite mínimo. Se establece cuando el valor calculado de Out Less than or equal to LowLimit y la salida y el integrador se fijan en LowLimit.
DeltaT
REAL
Tiempo transcurrido entre actualizaciones. Este es el tiempo transcurrido en segundos utilizado por el algoritmo de control para calcular la salida del proceso.
Status
DINT
Estado del bloque de funciones.
InstructFault (Status.0)
BOOL
La instrucción detectó uno de los siguientes errores de ejecución. No se trata de un error mayor o menor del controlador. Se comprueban los bits de estado restantes para determinar lo que ha ocurrido.
KpInv (Status.1)
BOOL
Kp < mínimo o Kp > máximo.
WldInv (Status.2)
BOOL
Wld < mínimo o Wld > máximo.
HighLowLimsInv (Status.3)
BOOL
HighLimit Less than or equal to LowLimit.
ShapeKpPlusInv (Status.4)
BOOL
ShapeKpPlus < mínimo o ShapeKpPlus > máximo.
ShapeKpMinusInv (Status.5)
BOOL
ShapeKpMinus < mínimo o ShapeKpMinus > máximo.
KpInRangeInv (Status.6)
BOOL
KpInRange < mínimo o KpInRange > máximo.
ShapeWldPlusInv (Status.7)
BOOL
ShapeWldPlus < mínimo o ShapeWldPlus > máximo.
ShapeWldMinusInv (Status.8)
BOOL
ShapeWldMinus < mínimo o ShapeWldMinus > máximo.
WldInRangeInv (Status.9)
BOOL
WldInRange < mínimo o WldInRange > máximo.
TimingModeInv (Status.27)
BOOL
TimingMode no válido.
Para obtener más información sobre los modos de temporización, consulte “Atributos del bloque de funciones”.
RTSMissed (Status.28)
BOOL
Solo se utiliza en el modo de muestreo en tiempo real. Se establece cuando
ABS | DeltaT - RTSTime | > 1 (0,001 segundos).
RTSTimeInv (Status.29)
BOOL
Valor de RTSTime no válido.
RTSTimeStampInv (Status.30)
BOOL
Valor de RTSTimeStamp no válido.
DeltaT (Status.31)
BOOL
Valor de DeltaT no válido.
Descripción
La instrucción PI utiliza el formato de posición del algoritmo PI. Esto significa que los términos de ganancia se aplican directamente a la señal de la entrada en lugar de al cambio en la señal de la entrada. La instrucción PI está diseñada para ejecutarse en una tarea en la que el índice de escaneado se mantiene constante.
En el algoritmo no lineal, las ganancias proporcional e integral varían a medida que cambia la magnitud de la señal de la entrada. La instrucción PI admite dos modos de ganancia no lineal: lineal y parabólico. En el algoritmo lineal, las ganancias varían linealmente a medida que cambia la magnitud de la entrada. En el algoritmo parabólico, las ganancias varían de acuerdo con una curva parabólica a medida que cambia la magnitud de la entrada.
La instrucción PI calcula Out con esta ecuación:
PI_fbd_eq
Siempre que el valor calculado para la salida no sea válido, NAN o Plus or Minus sign INF, la instrucción establece Out en el valor no válido y establece la marca de estado de desbordamiento matemático. Los parámetros internos no se actualizan. En cada uno de los escaneados posteriores, la salida se calcula utilizando los parámetros internos desde el último escaneado en el que la salida era válida.
Funcionamiento en modo lineal
En modo lineal, el modo de ganancia no lineal está deshabilitado. Los valores Kp y Wld son las ganancias proporcional e integral que utiliza la instrucción. La instrucción calcula el valor de Out con estas ecuaciones:
Value
Ecuación
ITerm
PI_fbd_ITerm_eq
donde DeltaT se expresa en segundos
PTerm
Kp x In
Salida
ITerm + PTerm
con estos límites en Wld:
  • Límite bajo > 0,0
  • Límite alto = 0,7
    p
    /DeltaT
  • WldInput = In
Funcionamiento en modo no lineal
En modo no lineal, la instrucción utiliza el modo de ganancia no lineal seleccionado por ParabolicLinear para calcular las ganancias proporcional e integral reales.
Las ganancias especificadas por Kp y Wld se multiplican por 1,0 cuando In = 0. Los algoritmos proporcionales e integrales independientes aumentan o disminuyen la ganancia proporcional o integral a medida que cambia la magnitud del error. Estos algoritmos utilizan el rango de entrada y forman los parámetros de ganancia para calcular las ganancias proporcional e integral reales. El rango de entrada define el rango de In (es decir, error) sobre el que se modela la ganancia. KpInRange y WldInRange establecen los rangos de entrada. La ganancia de modelación define el multiplicador de ganancia para el cuadrante controlado por el parámetro de ganancia de modelación. ShapeKpPlus, ShapeKpMinus, ShapeWldPlus y ShapeWldMinus establecen las ganancias de modelación.
La entrada ParabolicLinear selecciona el modo de ganancia no lineal. Si ParabolicLinear está desactivado, se selecciona el modo lineal. Si ParabolicLinear está establecido, se selecciona el modo parabólico.
Para configurar una curva de ganancia de modelación en concreto, introduzca una ganancia de modelación 0,0-10,0 para la modelación integral, una ganancia de modelación 0,1-10,0 para la modelación proporcional y el rango de entrada sobre el que se debe aplicar la modelación. Kp y Wld se multiplican por el ShapeMultiplier calculado para obtener las ganancias proporcional e integral reales. Al introducir una ganancia de modelación de 1,0 se inhabilita el algoritmo no lineal que calcula la ganancia proporcional o integral del cuadrante.
Cuando la magnitud de In (error) es superior a InRange, ShapeMultiplier es igual al valor calculado cuando | In | era igual a InRange.
En el siguiente diagrama se ilustra las curvas de ganancia máxima y mínima que representan las ecuaciones de ganancia parabólica y lineal.
PI_fbd_GainCurves
La instrucción calcula el valor de Out con estas ecuaciones:
Value
Ecuación
Multiplicador de ganancia de modelación Kp
PI_fbd_KPShapeGainMult_eq
Relación de entrada Kp
PI_fbd_KPInputRatio_eq
Relación Kp
PI_fbd_KPRatio_eq
Ganancia de modelación Kps
PI_fbd_KPSShapingGain_eq
Salida proporcional
PI_fbd_PropOutput_eq
Ganancia de modelación Wld
PI_fbd_WLDShapingGain_eq
Entrada Wld
PI_fbd_WLDInput_eq
Relación de entrada Wld
PI_fbd_WLDInputRatio_eq
Relación Wld
PI_fbd_WLDRatio_eq
Ganancia de modelación Wlds
PI_fbd_WLDSShapingGain_eq
Límites Wlds
PI_fbd_WLDSLimits_eq
Salida integral
PI_fbd_IntegralOutput_eq
Salida
PI_fbd_Output_eq
Limitación
La instrucción detiene windup de ITerm basado en el estado de las entradas de retención.
Condición
Action
PI_fbd_Condition1
PI_fbd_Action1
PI_fbd_Condition2
PI_fbd_Action1
La instrucción también detiene windup del integrador basado en los valores HighLimit y LowLimit.
Condición
Action
Integrador > HighLimit
Integrador = HighLimit
Integrador > LowLimit
Integrador = LowLimit
Las instrucciones limitan el valor de Out basado en los valores HighLimit y LowLimit.
Condición
Action
HighLimit Less than or equal to LowLimit
Out = LowLimit
ITerm = LowLimit
Se establece HighLowLimsInv
Se establece HighAlarm
Se establece LowAlarm
WldInput = 0
Out Greater than or equal to HighLimit
Out = HighLimit
ITerm = ITerm
n-1
Se establece HighAlarm
ITerm > HighLimit
ITerm = HighLimit
Out Less than or equal to LowLimit
Out = LowLimit
ITerm = ITerm
n-1
Se establece LowAlarm
ITerm < LowLimit
ITerm = LowLimit
Afecta a las marcas de estado matemáticas
No
Fallos mayores/menores
No es específico para esta instrucción. Consulte los Atributos comunes para fallos relacionados con el operando.
Ejecución
Bloque de funciones
Condición
Acción realizada
Pre-escaneado
EnableIn y EnableOut se desactivan en falsos.
Tag.EnableIn es falso
Los bits EnableIn y EnableOut se establecen en falsos.
Tag.EnableIn es verdadero
El bit de EnableIn y EnableOut se establece en verdadero.
La instrucción se ejecuta.
Primera ejecución de instrucción
Out n-1 = 0
El algoritmo utilizado para calcular Out no se ejecutará.
Primer escaneado de instrucción
Out n-1 = 0
El algoritmo utilizado para calcular Out no se ejecutará.
Post-escaneado
Los bits EnableIn y EnableOut se establecen en falsos.
Texto estructurado
Condición/estado
Acción realizada
Pre-escaneado
Consulte Pre-escaneado en la tabla Bloque de funciones.
Ejecución normal
Consultar Tag.EnableIn es verdadero en la tabla Bloque de funciones.
Post-escaneado
Consulte Post-escaneado en la tabla Bloque de funciones.
Ejemplo
La instrucción PI es una instrucción de regulación con componentes de ganancia proporcional e integral. El usuario establece el componente de ganancia integral en radianes/s; esto establece la respuesta de frecuencia básica del regulador PI. La ganancia proporcional establece la ganancia global del bloque, incluidas la ganancia proporcional Y la ganancia integral del bloque.
Excluyendo la funcionalidad de inicialización y retención/fijación, en el siguiente diagrama se muestra el lazo de regulación básico del bloque PI mientras está en modo lineal.
Instrucción PI: Modo lineal
PI Instruction Linear Mode_v31
El siguiente ejemplo muestra la instrucción PI utilizada como un regulador de velocidad. En este ejemplo, el error de velocidad se crea substrayendo la señal de retroalimentación de velocidad (véase el ejemplo de instrucción PMUL) de la referencia de velocidad del sistema (a través de la instrucción SCRV). El error de velocidad se acciona directamente en la instrucción PI, que actúa sobre esta señal de acuerdo con la función que se muestra en el diagrama anterior.
Bloque de funciones
PI_FBD_example_v31
Texto estructurado
Reference_Select.In1 := Master_Machine_Ref;
Reference_Select.Select1 := Master_Machine_Select;
Reference_Select.In2 := Section_Jog;
Reference_Select.Select2 := Jog_Select;
SSUM(Reference_Select);
S_Curve.In := Reference_Select.Out;
S_Curve.AccelRate := accel_rate;
S_Curve.DecelRate := accel_rate;
SCRV(S_Curve);
PMUL_01.In := Resolver_Feedback;
PMUL_01.WordSize := 12;
PMUL_01.Multiplier := 100000;
PMUL(PMUL_01);
Speed_Feedback := PMUL_01.Out;
Velocity_Error := S_Curve.Out - Speed_Feedback;
PI_01.In := Velocity_Error;
PI_01.Initialize := Enable_Regulator;
PI_01.Kp := Velocity_Proportional_Gain;
PI_01.Wld := Velocity_Integral_Gain;
PI(PI_01);
Torque_Reference := PI_01.Out;
Entregue su opinión
¿Tiene dudas o comentarios acerca de esta documentación? Por favor deje su opinión aquí.
Normal