Camino:  Equipo (Dispositivos) > CFW100 > Ladder > Control >

PID

Controle Proporcional-Integral-Derivativo

Previous pageReturn to chapter overviewNext page

Bloque que ejecuta la función de un controlador PID discreto. A partir de las variables de entrada, calcula la salida correspondiente del controlador.

 

Representación Ladder

 

PID_block

 

Estructura del Bloque

 

Tipo de Variable

Nombre

Tipo de Dato

Descripción

VAR_INPUT

EN

BOOL

Habilitación del bloque

SetPoint

REAL

Referencia automática (precontrol)

ManualSetPoint

REAL

Referencia forzada (post control)

SelectSetPoint

BOOL

Selecciona la referencia a utilizar

Feedback

REAL

Variable de realimentación de la malla

MinimumOutput

REAL

Valor mínimo de la salida del controlador

MaximumOutput

REAL

Valor máximo de la salida del controlador

Kp

REAL

Ganancia proporcional

Ki

REAL

Ganancia integral

Kd

REAL

Ganancia derivativa

TauSetPoint#

REAL

Constante de tiempo del filtro de entrada de referencia automática

Type#

BYTE

Tipo de controlador

Action#

BYTE

Acción de control

Ts#

UINT

Período de muestreo [ms]

VAR_OUTPUT

ENO

BOOL

Habilitación de salida

Output

REAL

Salida del controlador

VAR

PID_INST_0

PID

Instancia de acceso a la estructura del bloque

 

Operación

 

En la transición positiva de flanco en EN, Output recibe valor cero, y el bloque ejecuta su funcionalidad mientras que EN esté en nivel TRUE.

 

Cuando es habilitado, este bloque ejecuta una rutina de control PID con los parámetros Kp, Ki y Kd escogidos. La topología PID utilizada podrá ser la Académica o la Paralela, dependiendo de lo que sea escogido en Type#.

 

Topología académica:

PID_topology_academic

 

Topología paralela:

PID_topology_paralell

 

Los niveles de la señal de la salida del controlador son saturados por el valor de MinimumOutput y MaximumOutput. La entrada SelectSetPoint en nivel FALSE hace que la referencia adoptada sea SetPoint, permitiendo que el controlador ejerza dominio sobre el proceso. Cuando SelectSetPoint pasa a nivel TRUE, el controlador no ejerce más dominio, ya que que ManualSetPoint pasa a ser considerada la señal de salida del controlador.

 

Action# definirá la operación de realimentación. Se Action# for DIRECT, la operación será SetPoint – Feedback. Si Action# es REVERSE, la operación será Feedback – SetPoint.

 

Feedback recibe la variable de proceso considerada como salida de la planta. Ts# recibe el período de muestreo para el controlador y TauSetPoint# recibe la constante de tiempo para el filtro de entrada de la referencia automática.

 

Cuando EN tiene valor FALSE, Output permanece inalterado.

 

El valor de ENO pasa al próximo bloque Ladder el valor de EN luego de finalizada la operación.

 

wpshelp_common_fig_note

¡NOTA!

Efecto de la alteración de las ganancias sobre el proceso

Si disminuye Kp, el proceso se vuelve más lento; generalmente más estable o menos oscilante; tiene menos sobrepico (overshoot).
Si aumenta Kp, el proceso responde más rápido; puede mostrarse inestable o más oscilante; tiene más sobrepico (overshoot).
Si disminuye Ki, el proceso se vuelve más lento, tardando para llegar al "SetPoint"; se muestra más estable o menos oscilante; tiene menos sobrepico (overshoot).
Si aumenta Ki, el proceso responde más rápido, llegando rápidamente al "SetPoint"; se muestra más inestable o más oscilante; tiene más sobrepico (overshoot).
Si disminuye Kd, el proceso se vuelve más lento; tiene menos sobrepico (overshoot).
Si aumentar Kd, tiene más sobrepico (overshoot).

 

wpshelp_common_fig_note

¡NOTA!

Como mejor desempeño del proceso por el ajuste de las ganancias (válido para el PID Académico)

Si el desempeño del proceso está casi bueno, pero el sobrepico (overshoot) está un poco alto, intente: (1) reducir el Kp en 20%, (2) disminuir Ki en 20% y/o (3) disminuir Kd en 50%.
Si el desempeño del proceso está casi bueno, pero no tiene sobrepico (overshoot) y tarda para llegar al "SetPoint", intente: (1) aumentar Kp en 20%, (2) aumentar Ki en 20%, (3) aumentar Kd en 50%.
Si el desempeño del proceso está bueno, pero la salida del proceso está variando demás, intente: (1) aumentar Kd en 50%, (2) disminuir Kp en 20%.
Si el desempeño del proceso está mal, o sea, después del arranque, el transitorio dura varios períodos de oscilación, que reduce muy lentamente o no reduce, intente: (1) disminuir Kp en 50%.
Si el desempeño del proceso está mal, o sea, después del arranque avanza lentamente en dirección al "SetPoint", sin sobrepico (overshoot), pero aún está muy lejos y la salida del proceso es menor que el valor nominal, intente: (1) aumentar Kp en 50%, (2) aumentar Ki en 50%, (3) aumentar Kd en 70%.

 

 

Diagrama de Flujo del Bloque

 

PID_flowchart

 

Ejemplo en Ladder

 

PID_example01

 

El ejemplo de arriba crea una malla de un PID académico digital, con tiempo de muestreo de 50 ms, utilizando las constantes KP, KI y KD para el control. Es utilizada la referencia automática SETPOINT, filtrada por un filtro de primer orden con constante de tiempo 0.01. La señal de error es calculada como la diferencia entre la referencia filtrada y la variable SAIDA_PLANTA. La salida del controlador es saturada entre los valores 0.1 y 2.5 y es enviada hacia la variable ENTRADA_PLANTA.

 

Ejemplo en ST

 

 El siguiente ejemplo muestra las instrucciones para aplicar el ejemplo anterior en el lenguaje ST.

 

 

VAR

   SETPOINT, SAIDA_PLANTA, ENTRADA_PLANTA : REAL;

   KP : REAL := 6.2;

   KI : REAL := 1.3;

   KD : REAL := 1.8;

   PID_INST_2 : FB_PID;

END_VAR

 

PID_INST_2.EN := DI1;

PID_INST_2(

   SetPoint:=SETPOINT,

   ManualSetPoint:=1,

   SelectSetPoint:=FALSE,

   Feedback:=SAIDA_PLANTA,

   MinimumOutput:=0.1,

   MaximumOutput:=2.5,

   Kp:=KP,

   Ki:=KI,

   Kd:=KD,

   TauSetPoint:=0.01,

   Type:=0,

   Action:=0,

   Ts:=50);

ENTRADA_PLANTA := PID_INST_2.Output;

DO1 := PID_INST_2.ENO;