PRÁCTICA 6 PROGRAMACIÓN AVANZADA: CONTROLADOR...

15
UNIVERSIDAD MIGUEL HERNÁNDEZ AUTOMATIZACIÓN INDUSTRIAL PRÁCTICA 6: PROGRAMACIÓN AVANZADA: CONTROLADOR PID 1

Transcript of PRÁCTICA 6 PROGRAMACIÓN AVANZADA: CONTROLADOR...

Page 1: PRÁCTICA 6 PROGRAMACIÓN AVANZADA: CONTROLADOR PIDumh2210.edu.umh.es/wp-content/uploads/sites/800/2013/02/Practica-6… · consigna o referencia del controlador PID en modo automático.

UNIVERSIDAD MIGUEL HERNÁNDEZ

AUTOMATIZACIÓN INDUSTRIAL

PRÁCTICA 6:

PROGRAMACIÓN AVANZADA: CONTROLADOR PID

1

Page 2: PRÁCTICA 6 PROGRAMACIÓN AVANZADA: CONTROLADOR PIDumh2210.edu.umh.es/wp-content/uploads/sites/800/2013/02/Practica-6… · consigna o referencia del controlador PID en modo automático.

1. INTRODUCCIÓN. CONTROLADORES DE TIPO PID En esta práctica se realizará un programa para controlar la velocidad de un motor de corriente continua ya usado en asignaturas previas. Para controlar el sistema se utilizará un tipo de controlador de uso muy frecuente: el controlador PID. En un controlador de tipo PID las iniciales corresponden a:

• P: efecto proporcional • I: efecto integral • D: efecto diferencial

El ajuste de controladores de este tipo no es objeto de la asignatura, y se estudiará en asignaturas posteriores. En esta práctica nos limitaremos a describir brevemente su funcionamiento y comprobarlo experimentalmente usando los autómatas S7-1200. Efecto proporcional: Genera una acción de control proporcional al error. Es el efecto más corriente y más intuitivo: si el error es positivo (velocidad excesivamente baja), es necesario aumentar la tensión sobre el motor para aumentar la velocidad; si es negativo (velocidad excesiva), será necesario reducir la tensión de entrada al motor. Existe una constante de proporcionalidad que llamaremos KP que relaciona el error con la acción de control, de modo que para errores grandes las variaciones de intensidad serán también grandes. Si llamamos e(t) a la señal de error y u(t) a la acción sobre el sistema (tensión a aplicar sobre el motor), quedará:

)()( teKtu P ⋅= Efecto integral: En algunos casos, la aplicación de un efecto proporcional no consigue que el sistema alcance el valor de referencia indicado, aún después de un prolongado periodo de tiempo. Se dice que el sistema presenta error en régimen permanente. En estos casos la mejor opción es recurrir a un efecto integral, que no actúa en función del error sino en función de la integral del error. De este modo, mientras la referencia no sea alcanzada la integral del error no parará de crecer, y con ella la acción de control sobre el sistema, hasta que la acción sea suficiente para llevar al sistema al punto deseado. La constante propia del efecto integral se denominará KI, con lo que la relación entre error y acción de control será:

∫ ⋅⋅=t

I deKtu0

)()( tt

Efecto diferencial: Este efecto busca conseguir un comportamiento más suave del sistema de control. Utilizando exclusivamente los efectos anteriores, la forma de alcanzar el valor de referencia puede ser excesivamente brusca, presentando picos de sobreoscilación excesivos.

2

Page 3: PRÁCTICA 6 PROGRAMACIÓN AVANZADA: CONTROLADOR PIDumh2210.edu.umh.es/wp-content/uploads/sites/800/2013/02/Practica-6… · consigna o referencia del controlador PID en modo automático.

Para evitar este problema, se introduce un efecto extra que es el efecto diferencial: la acción de control es proporcional a la derivada de la señal de error. Esto evita que el sistema pase de largo la referencia: si la derivada del error es negativa (nos acercamos a la referencia), el efecto derivativo ‘frena’ ligeramente la acción de control. La constante propia de un efecto derivativo se denomina KD; y la expresión resultante queda:

)()( tedtdKtu D ⋅=

Un controlador PID presenta los tres efectos simultáneamente:

)()()()(0

tedtdKdtteKteKtu D

t

IP ⋅+⋅⋅+⋅= ∫

El ajuste o la sintonización de un regulador consiste en elegir los valores para KP, KI y KD que consiguen un funcionamiento adecuado del sistema (en términos de tiempo de respuesta aceptable, pico de sobreoscilación aceptable, etc). En esta práctica no se utilizará un procedimiento analítico para llegar a obtener el valor de estos parámetros, sino que nos limitaremos a comprobar experimentalmente los resultados obtenidos para distintos valores de cada una de estas variables.

t

sobreoscilación

3

Page 4: PRÁCTICA 6 PROGRAMACIÓN AVANZADA: CONTROLADOR PIDumh2210.edu.umh.es/wp-content/uploads/sites/800/2013/02/Practica-6… · consigna o referencia del controlador PID en modo automático.

2. SISTEMA A CONTROLAR

El sistema a controlar es el conjunto motor eléctrico-freno conocido de asignaturas previas:

Se realizarán experimentos de control de velocidad: • Variable a controlar: velocidad de giro del motor. • Señal de control: tensión aplicada al motor.

En el esquema, E(s) representa la señal de error y es la diferencia entre la velocidad deseada (referencia) y la velocidad real del motor. La zona marcada con línea discontinua representa el autómata programable (S7-1200), en el que se encuentra el sistema de control (PID) y desde el que se genera la señal de referencia.

4

Page 5: PRÁCTICA 6 PROGRAMACIÓN AVANZADA: CONTROLADOR PIDumh2210.edu.umh.es/wp-content/uploads/sites/800/2013/02/Practica-6… · consigna o referencia del controlador PID en modo automático.

3. CONTROL DE VELOCIDAD: CONEXIONADO

El flujo de información entre el autómata encargado del control y el motor eléctrico para el control de velocidad debe ser el siguiente:

El autómata debe recibir información sobre la velocidad angular a la que gira el eje del motor y debe enviar al mismo una tensión de accionamiento. Las conexiones a realizar para ello son las siguientes:

Nota: Antes de realizar las conexiones se desconectará la fuente de alimentación del servomotor y se pondrá el autómata en modo STOP.

Velocidad angular:

• Señal borna 'Tacogenerador: señal positiva' de la regleta (pin 35) a la primera entrada analógica del autómata.

• Masa: borna "Fuente de alimentación: 0V' de la regleta del servomotor (pin 11), o en la propia base del servomotor a la borna de masa de la entrada analógica del autómata.

Tensión de accionamiento:

• Señal borna 'Amplificador: entrada positiva' de la regleta del servomotor (pin 33) al conector de salida analógica del autómata.

• Masa: borna "Fuente de alimentación: 0V' de la regleta del servomotor (pin 11), o en la propia base del servomotor a la borna de masa de la salida analógica del autómata.

Una vez realizadas las conexiones, no se encenderá la fuente del servomotor hasta que no se haya configurado y programado el autómata para realizar el control PID de velocidad.

5

Page 6: PRÁCTICA 6 PROGRAMACIÓN AVANZADA: CONTROLADOR PIDumh2210.edu.umh.es/wp-content/uploads/sites/800/2013/02/Practica-6… · consigna o referencia del controlador PID en modo automático.

4. CONFIGURACIÓN Y PROGRAMACIÓN DE CONTROLADORES PID EN LOS AUTÓMATAS S7-1200

El programa de control PID debe realizar las siguientes operaciones:

• Leer de la entrada analógica el valor de la señal que se desea controlar (en este caso, la velocidad de giro del eje del motor.

• Comparar esta medida con la referencia (velocidad deseada) y obtener el error como resta de los dos valores.

• Aplicar el algoritmo de control PID al error, calculando los efectos proporcional, diferencial (derivada del error) e integral (integral del error).

• Escribir en la salida analógica el resultado calculado. Todas estas operaciones se deben repetir periódicamente, con una frecuencia ajustable (en principio, se utilizará un periodo de 1 ms). Dado que se trata de un programa relativamente complejo, el programa TIA Portal ofrece un asistente que permite generar el programa especificando únicamente los ajustes deseados: fundamentalmente el periodo de muestreo y valores de las constantes proporcional, integral y diferencial. Además, dicho asistente permite también sintonizar o ajustar automáticamente los valores de las constantes del controlador. A continuación se describe el procedimiento general a seguir para generar el programa de control de velocidad del motor. En este procedimiento se supone que se han realizado las conexiones para el control de velocidad descritas en el apartado anterior y que se ha creado un proyecto al que se le ha añadido un autómata S7-1200. Los pasos a seguir son los siguientes: • Paso 1. Añadimos un nuevo bloque de programa de organización del tipo

"interrupción cíclica", indicando como tiempo de ciclo 1 ms (periodo de muestreo del controlador). Para ello, sobre el árbol del proyecto, dentro de la opción "Bloques de programa", hacemos doble click sobre "Agregar nuevo bloque", como se muestra en la figura siguiente.

6

Page 7: PRÁCTICA 6 PROGRAMACIÓN AVANZADA: CONTROLADOR PIDumh2210.edu.umh.es/wp-content/uploads/sites/800/2013/02/Practica-6… · consigna o referencia del controlador PID en modo automático.

Aparecerá la ventana de "Agregar nuevo bloque" en la que deberemos seleccionar "Bloque de organización" en la columna de la izquierda y, a continuación, el tipo "Cyclic interrupt" en la parte central. Introduciremos como tiempo de ciclo 1 ms (cuadro de texto de la parte derecha). En la figura siguiente se muestra la ventana de Agregación de nuevo bloque con las opciones descritas.

7

Page 8: PRÁCTICA 6 PROGRAMACIÓN AVANZADA: CONTROLADOR PIDumh2210.edu.umh.es/wp-content/uploads/sites/800/2013/02/Practica-6… · consigna o referencia del controlador PID en modo automático.

• Paso 2. Insertamos en el bloque de interrupción cíclica creado una instrucción del tipo "PID_Compact". Para ello, podemos arrastrar la instrucción "PID_Compact" que puede encontrarse en la columna de instrucciones de la derecha, en el apartado "Tecnología", y dentro de la carpeta "PID Control"->"Compact PID", como se muestra en la figura siguiente.

Colocaremos esta instrucción en el primer segmento de la interrupción cíclica. Al colocarlo aparecerá una ventana para configurar el bloque de datos (DB) del PID. En esta ventana no modificaremos ninguna opción y pulsaremos el botón Aceptar.

La instrucción PID_Compact sirve para programar un controlador PID general con optimización integrada, que puede usarse en modo automático y manual

• Paso 3. En la instrucción PID_Compact rellenaremos los valores siguientes para los parámetros:

o Setpoint: 3 o Input_PER: IW64 o Output_PER: QW80

8

Page 9: PRÁCTICA 6 PROGRAMACIÓN AVANZADA: CONTROLADOR PIDumh2210.edu.umh.es/wp-content/uploads/sites/800/2013/02/Practica-6… · consigna o referencia del controlador PID en modo automático.

En la figura siguiente se muestra una imagen del PID con los parámetros introducidos. A continuación se describen estos tres parámetros:

o Setpoint (parámetro de entrada): es de tipo REAL y representa la consigna o referencia del controlador PID en modo automático. En nuestro caso este valor representará la velocidad de giro deseada del motor.

o Input_PER (parámetro de entrada de "periferia"): es de tipo WORD y representa la entrada analógica al controlador PID. En nuestro caso esta entrada analógica será la velocidad real de giro del motor, que será comparada (restada) con la referencia (el valor Setpoint). Con las conexiones realizadas en el apartado anterior, el valor real de entrada analógica se almacena en la dirección IW64 y por este motivo se escribe esta dirección en el parámetro Input_PER.

o Output_PER (parámetro de salida de "periferia"): es de tipo WORD y representa la salida analógica del controlador PID. En nuestro caso esta salida será la señal de control generada por el PID expresada como el voltaje necesario para que el motor gire a la velocidad deseada (Setpoint). Con las conexiones realizadas en el apartado anterior, el valor de esta salida deberá almacenarse en la dirección QW80 y por este motivo se escribe esta dirección en el parámetro Output_PER.

9

Page 10: PRÁCTICA 6 PROGRAMACIÓN AVANZADA: CONTROLADOR PIDumh2210.edu.umh.es/wp-content/uploads/sites/800/2013/02/Practica-6… · consigna o referencia del controlador PID en modo automático.

• Paso 4. Configuración del PID. Para configurar el PID pulsamos sobre el icono con forma de maletín en la esquina superior derecha de la instrucción del PID, como se muestra en la figura siguiente.

Aparecerá la ventana de configuración del PID en la que deberemos introducir los valores siguientes:

o Tipo de regulación (en "Ajustes básicos"): Tensión o Límite superior del valor real (en "Ajustes del valor real->Límites del

valor real"): 10.0 o Valor real superior escalado (en "Ajustes del valor real->Escala del

valor real"): 10.0 o Tiempo de muestreo (en "Ajustes avanzados->Parámetros PID"):

0.01 s (para introducir el periodo de muestreo deberá activarse la casilla "Activar entrada manual", escribir el periodo de muestreo y después volver a desactivar la casilla "Activar entrada manual").

Explicación de estos parámetros anteriores:

o Indicamos tipo de regulación "Tensión" ya que tanto la entrada como la salida del controlador son tensiones (la tensión de entrada al autómata es una tensión proporcional a la velocidad de giro).

o El límite superior del valor real y el valor real escalado tienen valor 10.0 ya que el motor admite como máximo 10 V de entrada.

o Elegimos un periodo de muestreo de 0.01 s, suficientemente pequeño para que funcione correctamente el controlador. Este valor

Pulsar para configurar

10

Page 11: PRÁCTICA 6 PROGRAMACIÓN AVANZADA: CONTROLADOR PIDumh2210.edu.umh.es/wp-content/uploads/sites/800/2013/02/Practica-6… · consigna o referencia del controlador PID en modo automático.

indica cada cuánto tiempo calcula el controlador PID la señal de control y se la envía al motor.

• Paso 5. Compilamos y cargamos el programa en el autómata de la forma habitual (hardware y software) y ponemos el autómata en modo RUN.

• Paso 6. Puesta en servicio del PID. Una vez que está ejecutándose el programa realizaremos lo siguiente para poner en marcha el controlador:

o Encendemos la fuente del motor y colocamos el freno en la posición superior (mínimo frenado).

o Hacemos doble click sobre la opción "Puesta en servicio", que se encuentra en el árbol del proyecto dentro de la opción "Objetos tecnológicos->PID_Compact1", como se muestra en la figura siguiente.

11

Page 12: PRÁCTICA 6 PROGRAMACIÓN AVANZADA: CONTROLADOR PIDumh2210.edu.umh.es/wp-content/uploads/sites/800/2013/02/Practica-6… · consigna o referencia del controlador PID en modo automático.

o Aparecerá la ventana de puesta en servicio del PID. En esta ventana pulsaremos el botón "Start" que aparece en la parte superior izquierda (empezar medición) y a continuación pulsamos el botón "Start" de la parte superior derecha (empezar optimización), usando la opción de optimización inicial. En este momento el autómata comenzará la sintonización automática del PID (el motor se moverá) y, si se sintoniza correctamente, veremos que el motor se mueve a la velocidad indicada como referencia previamente (Setpoint).

Si aparece un error indicando "Error al iniciar la optimización inicial. El valor real está demasiado cerca de la consigna" entonces deberemos iniciar la optimización fina.

Si el autómata no es capaz de sintonizar el PID entonces volveremos a pulsar el botón de optimizar pero eligiendo la opción "optimización fina". Si con esta opción no se consigue sintonizar el PID, se volverá a repetir el proceso de optimización inicial.

12

Page 13: PRÁCTICA 6 PROGRAMACIÓN AVANZADA: CONTROLADOR PIDumh2210.edu.umh.es/wp-content/uploads/sites/800/2013/02/Practica-6… · consigna o referencia del controlador PID en modo automático.

5. PRUEBAS A REALIZAR

Prueba 1. Anotación de los valores de las contantes del PID sintonizado

Una vez que el autómata ha sido capaz de sintonizar correctamente el PID, deberán anotarse los valores de los parámetros sintonizados del mismo (accesibles en la ventana de configuración del PID, donde se introdujo el periodo de muestreo)

Además, se propone realizar algunas pruebas adicionales para comprobar de forma experimental el funcionamiento del controlador.

Prueba 2. Introducción de perturbaciones (freno)

Una vez los parámetros ajustados para un buen comportamiento, el regulador debe ser capaz de mantener la velocidad del motor incluso en presencia de perturbaciones.

Se realizará el siguiente experimento: se esperará hasta que la referencia de velocidad se haya alcanzado. En ese momento, se aplicará completamente el freno del motor. El resultado debe ser que la velocidad descienda durante unos instantes, pero acabe restableciéndose gracias al efecto del regulador, que aumenta la tensión a aplicar al motor. El tiempo que tarde en restablecerse indicará el correcto o incorrecto ajuste de los parámetros.

Una prueba similar se puede efectuar llevando de nuevo el freno a la posición superior (mínimo frenado). En este caso la velocidad debe aumentar bruscamente pero el regulador también tiene que actuar reduciendo la tensión a aplicar sobre el motor para conseguir restablecer la velocidad adecuada. El tiempo que tarde en restablecerse también indicará si el ajuste de los parámetros es correcto o no.

Prueba 3. Introducción de distintas referencias en forma de escalón

En esta prueba vamos a variar la referencia de velocidad del PID (Setpoint). Para ello, introduciremos como parámetro "Setpoint" del PID la variable MD2.

A continuación agregamos una tabla de observación y forzado, introducimos la variable MD2, con visualización DEC (decimal). Usando esta tabla de forzado, variaremos el valor de MD2 de 3 a 0 y de 0 a 3, para comprobar la respuesta del sistema controlado ante una entrada escalón.

13

Page 14: PRÁCTICA 6 PROGRAMACIÓN AVANZADA: CONTROLADOR PIDumh2210.edu.umh.es/wp-content/uploads/sites/800/2013/02/Practica-6… · consigna o referencia del controlador PID en modo automático.

Prueba 4. Variación de los parámetros P, I, D del controlador

Usando la variable MD2 introducida en el paso anterior, en esta prueba vamos a comprobar el efecto que tiene variar los parámetros del controlador PID. Para ello, se propone realizar los experimentos siguientes:

o Cambiar el valor del parámetro "Ganancia proporcional" (valores grandes y valores pequeños) y comprobar el efecto que tiene sobre el comportamiento del sistema (aplicando escalones de entrada de 0 a 3 y de 3 a 0).

o Cambiar el valor del parámetro "Tiempo de integración" (valores grandes y valores pequeños) y comprobar el efecto que tiene sobre el comportamiento del sistema (aplicando escalones de entrada de 0 a 3 y de 3 a 0).

o Cambiar el valor del parámetro "Tiempo derivativo" (valores grandes y valores pequeños) y comprobar el efecto que tiene sobre el comportamiento del sistema (aplicando escalones de entrada de 0 a 3 y de 3 a 0).

14

Page 15: PRÁCTICA 6 PROGRAMACIÓN AVANZADA: CONTROLADOR PIDumh2210.edu.umh.es/wp-content/uploads/sites/800/2013/02/Practica-6… · consigna o referencia del controlador PID en modo automático.

ANEXO: CONECTOR ADAM-3937

A continuación se incluye un listado de todas las conexiones del servomotor accesibles a través del conector ADAM-3937:

15