Tutorial de controladores PID

Anuncio
CTM: PID Tutorial
Page 1 of 8
Tutorial de controladores PID
Introduccion
El controlador de 3 terminos
Las caracteristicas de los controladores P, I y D
Problema Ejemplo
Respuesta de Lazo Abierto al escalon
Control Proporcional
Control Proporcional - Derivativo
Control Proporcional-Integrativo
Control Proporcional-Integrativo-Derivativo
Consejos generales para el disenho de una controlador PID
Introduccion
En este tutorial se mostraran las caracteristicas de los controladores proporcionales (P), integrativos
(I) y derivativos (D). Se mostrara tambien en forma basica como utilizarlos para obtener la respuesta
deseada. Para el efecto, se considerara el siguiente sistema realimentado:
Planta: Un sistema a ser controlado
Controlador: provee la excitacion para la planta; esta disenhado para controlar el
comportamiento del sistema
El controlador de tres terminos
La funcion de transferencia de un controlador PID posee la siguiente forma:
Kp = ganancia proporcional
http://www.ing.una.py/APOYO/CONTROL%20CON%20SCILAB/PID/PID.html
03/11/2010
CTM: PID Tutorial
Page 2 of 8
KI = ganancia integral
Kd = ganancia derivariva
Inicialmente, se vera el modo en que el controlador PID trabaja en un sistema de lazo cerrado,
utilizando el esquema mostrado mas arriba. La variable (e) representa el error, es decir, la diferencia
entre la entrada de referencia (R) y la salida medidad del sistema (Y). Esta senhal de error (e) se
envia al controlador PID, donde el mismo computa tanto la derivada como la integran de esta senhal.
La senhal (u) a la salida del controlador es igual a (Kp) por el error mas (Ki) por la integral del error
mas (Kd) por la derivada del error.
La senhal (u) se envia a la planta, para obtener asi una nueva salida (Y). Esta nueva salida (Y) se
envia nuevamente al sensor para calcular la nueva senhal de error (e). El controlador toma esta nueva
senhal y calcula nuevamente la integral y la derivada del mismo.
Las caracteristicas de los controladores P, I, y D
Un controlador proporcional (Kp) tendra el efecto de reducir el tiempo de crecimiento y reducira
(pero no elimina) el error de estado estable. Un control integrativo (Ki) tendra el efecto de eliminar
el error de estado estable, pero sin embargo podria empeorar la respuesta transitoria. Un control
derivativo (Kd) tendra el efecto de aumentar la estabilidad del sistema al disminuir el sobrepico,
mejorando la respuesta transitoria. Los efectos de cada uno de los controladores Kp, Kd, y Ki en un
sistema de lazo cerrado estan resumidos en la tabla que se presenta debajo.
Controlador T. Crecimiento
Kp
Disminuye
Ki
Disminuye
Kd
Poco cambio
Sobrepico T. Establecimiento Error Estado Estable
Aumenta
Poco cambio
Disminuye
Aumenta
Aumenta
Elimina
Disminuye
Disminuye
Poco cambio
Notese que estas correlaciones podria no ser exactamente precisas, ya que el efecto de cada
controlador sera dependiente de los otros. Por este motivo, la tabla mostrada solo debe ser utilizada
como referencia para determinar los valores de Ki, Kp y Kd.
Problema Ejemplo
Supongase un sistema compuesto por una masa, un resorte y un amortiguador.
La ecuacion que modela el sistema es
http://www.ing.una.py/APOYO/CONTROL%20CON%20SCILAB/PID/PID.html
03/11/2010
CTM: PID Tutorial
Page 3 of 8
(1)
Tomando la transformada de Laplace de la ecuacion (1)
La funcion de transferencia entre el desplazamiento X(s) y la entrada F(s) sera entonces
Sea
M = 1kg
b = 10 N.s/m
k = 20 N/m
F(s) = 1
Reemplazando estos valores en la funcion de transferencia arriba, tenemos
La meta en este caso es mostrar como cada uno de los parametros Kp, Ki y Kd contribuyen a
obtener:
Tiempo de crecimiento rapido
Minimo sobrepico
Eliminacion de error de estado estable
Respuesta de lazo abierto al escalon
Se vera, inicialmente la respuesta de lazo abierto al escalon. Para esto, se creara un nuevo archivo
script "pdi1.sce" y se incluira en el mismo el siguiente codigo:
// se define la variable
s=poly(0,"s");
// definicion de los polinomios numerador y denominador
num=poly([1],"s","coeff");
den=poly([20 10 1],"s","coeff");
// se define el sistema basado en los polinomios
[sistema1]=syslin('c',num/den);
// intervalo de tiempo
t=0:0.005:2;
// respuesta a funcion escalon
[y X]=csim("step",t,sistema1);
plot2d(t,y);
Al ejecutar el script por medio del comando
http://www.ing.una.py/APOYO/CONTROL%20CON%20SCILAB/PID/PID.html
03/11/2010
CTM: PID Tutorial
Page 4 of 8
-->exec('pdi1.sce')
se obtendra el grafico que se muestra.
La ganacia DC de la funcion de transferencia de la planta es igual a 1/20, de modo tal que el valor
final de la salida para una entrada unitaria sera 0.05. Esto corresponde a un error de estado estable de
0.95, lo que en realidad es bastante grande. Puede apreciarse tambien que el tiempo de crecimiento
es aproximadamente igual a un segundo, con un tiempo de establecimiento de 1.5 segundos
aproximadamente. Procederemos ahora a disenhar un controlador que reduzca el tiempo de
crecimiento y el tiempo de establecimiento, al mismo tiempo que elimina el error de estado estable.
Control Proporcional
De la tabla presentada con anterioridad, se ve que el controlador proporcional (Kp) reduce el tiempo
de crecimiento, aumenta el sobrepico y reduce el error de estado estable. La funcion de transferencia
de lazo cerrado del sistema presentado con la inclusion de un controlador proporcional sera:
Sea la ganancia (Kp) igual a 300. En el archivo script, la definicion del numerador debera ser
modificada:
Kp=300;
num=poly([Kp],"s","coeff");
den=poly([20+Kp 10 1],"s","coeff");
El grafico obtenido en este caso al ejecutar el archivo sera:
http://www.ing.una.py/APOYO/CONTROL%20CON%20SCILAB/PID/PID.html
03/11/2010
CTM: PID Tutorial
Page 5 of 8
El grafico muestra como el comtrolador proporcional reduce tanto el tiempo de crecimiento y el error
de estado estable, mientras aumenta el sobrepico y disminuye ligeramente el tiempo de
establecimiento.
Control Proporcional - Derivativo
Analizaremos ahora el control PD. De la tabla mostrada arriba, se recuerda que el cotrolador
derivativo (Kd) reduce tanto el sobrepico como el tiempo de establecimiento.La funcion de
transferencia de lazo cerrado del sistema con el controlador PD incluido sera entonces:
Sea Kp igual a 300 y sea Kd igual a 10. El archivo script debera ser modificado como se muestra:
// Inclusion de un controlador PD
Kp=300;
Kd=10;
num=poly([Kd Kp],"s","coeff");
den=poly([20+Kp 10+Kd 1],"s","coeff");
[sistema3]=syslin('c',num/den);
[y X]=csim("step",t,sistema3);
plot2d(t,y);
http://www.ing.una.py/APOYO/CONTROL%20CON%20SCILAB/PID/PID.html
03/11/2010
CTM: PID Tutorial
Page 6 of 8
Este grafico muestra que la parte derivativa del controlador reduce tanto el sobrepico como el tiempo
de establecimiento, con poca influencia en el tiempo de crecimiento y el error en estado estable.
Control Proporcional Integrativo
Antes de analizar el controlador PID propiamente dicho, nos detendremos en un controlador del tipo
PI. De la tabla, puede verse que un controlador integral (Ki) disminuye el tiempo de crecimiento,
aumenta tanto el sobrepico como el tiempo de establecimiento, y elimina el error de estado estable.
Para el sistema dado, la funcion de transferencia de lazo cerrado con la adicion del controlador sera:
Establecemos Kp = 30, y Ki =70. Las modificaciones en el archivo script seran las siguientes:
// Inclusion de un controlador PI
Kp=30;
Ki=70;
num=poly([Kp Ki],"s","coeff");
den=poly([Ki 20+Kp 10 1],"s","coeff");
[sistema4]=syslin('c',num/den);
[y X]=csim("step",t,sistema4);
plot2d(t,y);
El grafico obtenido:
http://www.ing.una.py/APOYO/CONTROL%20CON%20SCILAB/PID/PID.html
03/11/2010
CTM: PID Tutorial
Page 7 of 8
Se ha reducido la ganacia proporcional (Kp) debido a que el controlador integrativo tanbien reduce el
tiempo de crecimiento y aumenta el sobrepico al igual que el controlador proporcional (doble
efecto). La respuesta de arriba muestra como el controlador integral elimino el error en estado
estable.
Controlador Proporcional, Integrativo y Derivativo
Ahora, trabajaremos sobre el controlados PID propiamente dicho. La funcion de transferencia de
lazo cerrado, en este caso sera:
Luego del proceso de ensayo y error (facilmente implementable gracias a SCILAB), las ganancias
Kp=350, Ki=300, y Kd=50 proveen la respuesta deseada. Para verificar esto, incluya las siguientes
lineas en el archivo:
// Inclusion de un controlador PDI
Kp=350;
Ki=300;
Kd=50;
num=poly([Ki Kp Kd],"s","coeff");
den=poly([Ki 20+Kp 10+Kd 1],"s","coeff");
[sistema5]=syslin('c',num/den);
[y X]=csim("step",t,sistema5);
plot2d(t,y);
http://www.ing.una.py/APOYO/CONTROL%20CON%20SCILAB/PID/PID.html
03/11/2010
CTM: PID Tutorial
Page 8 of 8
Asi, se ha obtenido un sistema sin sobrepico, con rapido tiempo de establecimiento y crecimiento, y
sin error de estado estable.
Consejos generales para el disenho de un controlador PDI
En el proceso de determinar un controlador PID con SCILAB para un sistema dado, los siguientes
pasos son utiles para obtener una respuesta deseada.
1.
2.
3.
4.
5.
Ontemga la respuesta la lazo cerrado y determine las caracteristicas a ser mejoradas
Agregue un control proporcional para mejorar el tiempo de crecimiento
Agregue un control derivativo para mejorar el sobrepico
Agregue un control integrativo para eliminar el error de estado estable
Ajuste cada una de las ganancias Kp, Ki, y Kd hasta que se obtenga la respuesta deseada.
Utilice para esto la tabla de referencia.
Finalmente, debe tenerse en cuenta que no es necesario implementar los 3 controladores en todo
caso. Por ejemplo, sin un controlador PI ofrece una buena respuesta, no es necesario adicionar el
control derivativo. Debe mantenerse el controlador lo mas simple posible.
http://www.ing.una.py/APOYO/CONTROL%20CON%20SCILAB/PID/PID.html
03/11/2010
Descargar