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

Transcripción

PRÁCTICA 6: PROGRAMACIÓN AVANZADA: CONTROLADOR PID
UNIVERSIDAD MIGUEL HERNÁNDEZ
AUTOMATIZACIÓN
INDUSTRIAL
PRÁCTICA 6:
PROGRAMACIÓN AVANZADA:
CONTROLADOR PID
1
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:
I:
D:
efecto proporcional
efecto integral
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á:
u (t ) =K P ⋅ e(t )
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
u (t ) =K I ⋅ ∫ e(t ) ⋅ dt
0
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
sobreoscilación
t
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:
d
u (t ) =K D ⋅ e(t )
dt
Un controlador PID presenta los tres efectos simultáneamente:
t
u (t ) =K P ⋅ e(t ) + K I ⋅ ∫ e(t ) ⋅ dt + K D ⋅
0
d
e(t )
dt
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.
3
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
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
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
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
•
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
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
•
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.
Pulsar para configurar
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
10
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
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
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
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
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

Documentos relacionados