Camino:  Equipo (Dispositivos) > PLC200 > Programa > Control >

PID2

Controlador Proporcional-Integral-Derivativo com Sintonia Automática (Auto Tuning)

Previous pageReturn to chapter overviewNext page

Bloque que ejecuta la sintonía automática de un controlador PID discreto. A partir las variables de entrada, calcula un controlador PID o PI a través de el método de los relés. Este bloque también implementa el controlador obtenido u otro que el usuario desee.

 

 

Representación Ladder

 

PID2_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 (pre-control)

ManualSetPoint

REAL

Referencia forzada (post-control)

SelectSetPoint

BOOL

Selecciona qué referencia utilizar

Feedback

REAL

Variable de retroalimentació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

Gaño proporcional

Ki

REAL

Gaño integral

Kd

REAL

Gaño derivativo

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]

Tune

BYTE

Inicio del proceso de sintonía conforme Tabela 2

Delta

REAL

Parámetro del método de los relés que representa la variación de la variable manipulada con relación al valor que alcanzó la referencia.

Hysteresis

REAL

Determina la histéresis en la conmutación del relé.

TuneTimeOut

DWORD

Tiempo máximo de espera hasta que se complete la sintonía [ms]

VAR_OUTPUT

ENO

BOOL

Habilitación de salida

Output

REAL

Salida del controlador

TuneStatus

BYTE

Estado de la sintonización automática según Tabla 3

KpOut

REAL

Ganancia proporcional obtenida en la sintonía

KiOut

REAL

Ganancia integral obtenida en la sintonía

KdOut

REAL

Ganancia derivada obtenida en la sintonía

VAR

PID2_INST_0

PID2

Instancia de acceso a la estructura del bloque

Tabla 1

 

 

Operación

 

El funcionamiento del bloque PID2 se divide en dos partes: la de Control y la de Sintonía Automática.

La variable Tune es la que define el modo de operación. Siempre que Tune = 0, el sistema opera en modo de control, con los valores de las ganancias definidas por el usuario, de la misma forma que el bloque PID.

La parte de control, es exactamente igual al bloque PID, vea en el Help del PID.

 

Cuando Tune recibe algún valor distinto de 0, se inicia el proceso de sintonía automática. Algunas reglas deben ser obedecidas para que la sintonía pueda ocurrir. Se presentarán en la secuencia.

 

 

La Sintonía Automática

Para la Sintonía Automática se utiliza el Método de los Relés que se basa en la obtención de la ganancia crítica y período crítico, que pueden ser utilizados para obtener las ganancias del controlador PID a través de diversas reglas de sintonía: Ziegler-Nichols, Ciancone-Marlin, Tyreus- Luyben, ITAE Mínimo, entre otras.

Durante el proceso de sintonización, el control es apagado y un "relé" pasa a determinar la salida del controlador (Output), como figura a continuación.

PID2_topology_academic

 

Al iniciar, el relé (Output) pasa al valor y después de un período la salida (Feedback) empieza a aumentar. En el momento en que la salida se vuelve superior al valor del setpoint + histéresis, el relé conmuta para y así sucesivamente, conforme la figura abajo

PID2_topology_paralell

 

Siendo el valor de la variable manipulada (Output) estabilizada en el punto de operación, tenemos que

No caso de la Figura acima,

De la curva de resta obtenida se retiran los parámetros necesarios para obtener el controlador.

 

Criterios para que la sintonía sea efectuada

Para que la sintonía automática pueda ser realizada adecuadamente, dos criterios necesitan, obligatoriamente, ser obedecidos:

1) colocar el sistema en el punto de operación que se desea calibrar (la diferencia debe ser menor que el 20%);

2) la variable , que es la variable manipulada, no puede estar presentando oscilación mayor que el 20%;

OBS: se puede utilizar el modo Manual del bloque para alcanzar el punto de operación sin grandes oscilaciones (a través de la variable ).

Paso a paso para ejecutar la sintonía

1) debe iniciarse con el valor cero;

2) Definir un valor para . Se recomienda un valor inicial del 10% del valor de la variable manipulada () que alcanzó el punto de consigna del sistema;

Ex: Suponiendo que para estabilizar en el punto de operación = 12.3. En este caso, utilizar

3) Definir un valor inicial para . Este valor debe ser ligeramente mayor que el ruido presente en el sistema. Se puede utilizar un valor inicial del 2% del valor del Setpoint si no se conoce el ruido;

Ex: para un = 60.0, utilizar

4) Definir un valor en milissegundos () para . Este valor depende del sistema que se está aplicando el bloque. Los sistemas más lentos necesitarán un mayor tiempo. Debe ser suficiente para que al menos 10 ciclos del relé sean completos, aunque con 5 ciclos el sistema generalmente ya se estabiliza;

5) Colocar el sistema en el punto de operación. Si se ha realizado un pre-control, se puede aplicar. Otra opción es utilizar el modo manual y variar la entrada hasta que el sistema se estabilice en el punto de operación, es decir, lo más cerca posible de ;

6) Habilitar la sintonía eligiendo el tipo de control (PI o PID y la regla usada) a través de la variable , conforme Tabla 2;

7) La salida se indicará el estado del proceso de sintonía automática, conforme Tabla 9. Al final del proceso, la salida recibirá el valor 8 si la calibración se efectúa con éxito y las salidas , y se actualizarán con los valores obtenidos en el proceso de sintonía.

Tune

Controlador

0

Deshabilitado

1

Controlador PID Automático

2

Controlador PI Automático

3

Controlador PID Tyreus-Luyben

4

Controlador PI Tyreus-Luyben

5

Controlador PID ITAE

6

Controlador PI ITAE

7

Controlador PID Ciancone-Marlin

8

Controlador PI Ciancone-Marlin

9

Controlador PID Ziegler-Nichols

10

Controlador PI Ziegler-Nichols

Tabla 2

 

Tune Status

Significado

0

Deshabilitado

1

Relé en nível alto

2

Relé en nível bajo

4

Sistema estabilizado

5

Estable y Relé a nivel alto

6

Estable y Relé a nivel bajo

8

Sintonización completa

16

Reservado

32

Timeout

64

Método inexistente

128

Busy: otro bloque en sintonia

Tabla 3

Los métodos de Tyreus-Luyben se recomiendan para sistemas con la constante de tiempo dominante con respecto al retraso del transporte. Los métodos de Ciancone-Marlin se recomiendan para sistemas con gran retraso en el transporte. El método ITAE mínimo es para situaciones intermediarias.

Se recomienda para sintonías iniciales o para usuarios sin mucha familiaridad con el método de los relés, el uso de la forma automática 1 o 2 para , dejando que el sistema opte por la forma más adecuada.

Después de la sintonización, el método se puede cambiar haciendo que un nuevo controlador se calcula sin realizar de nuevo el proceso de sintonía, ya que los datos necesarios se almacenan internamente. Esto permite que otros métodos sean fácilmente experimentados.

Para que una nueva sintonía se haga, debe recibir el valor cero primero.

 

Diagrama de Flujo del Bloque

 

N/D

 

 

Ejemplo en Ladder

 

PID2_example01

 

PID2_example02

 

PID2_example03

 

Ejemplo en ST

 

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

 

 

VAR

   SETPOINT : REAL := 30.0;

   MANUAL_MV : REAL := 30.0;

   SELECT_SP : BOOL := FALSE;

   FEEDBACK : REAL;

   KP2 : REAL := 6.2039423;

   KI2 : REAL := 1.3162537;

   KD2 : REAL := 1.8414314;

   TUNEENABLE2 : BYTE;

   DELTA : REAL;

   HISTERESE : REAL;

   MANIPULATED_VARIABLE : REAL;

   TUNESTATUS : BYTE;

   PID2_INST_1 : FB_PID2;

   TAU : REAL := 5.0;  

   LOWPASS_INST_3 : FB_LOWPASS;

END_VAR

 

PID2_INST_1.EN := DI1;

PID2_INST_1(

   SetPoint:=SETPOINT,

   ManualSetPoint:=MANUAL_MV,

   SelectSetPoint:=FALSE,

   Feedback:=FEEDBACK,

   MinimumOutput:=-1000,

   MaximumOutput:=1000,

   Kp:=KP2,

   Ki:=KI2,

   Kd:=KD2,

   TauSetPoint:=0.0,

   Type:=1,

   Action:=0,

   Ts:=500,

   Tune:=TUNEENABLE2,

   Delta:=DELTA,

   Hysteresis:=HISTERESE,

   TuneTimeOut:=1800000);

MANIPULATED_VARIABLE := PID2_INST_1.Output;

TUNESTATUS := PID2_INST_1.TuneStatus;

KP2 := PID2_INST_1.KpOut;

KI2 := PID2_INST_1.KiOut;

KD2 := PID2_INST_1.KdOut;

 

LOWPASS_INST_3(

   EN:=TRUE,

   Input:=MANIPULATED_VARIABLE,

   Tau:=TAU,

   Ts:=10);

FEEDBACK := LOWPASS_INST_3.Output;