Compensador pid

509 views

Published on

Compensador pid

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
509
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
20
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Compensador pid

  1. 1. Departamento de Automática IE – 431 Sistemas de Control Sistemas de control con Matlab® y ScilabTM Prof. Víctor M. Alfaro Julio de 2004 Rev. Diciembre de 2005
  2. 2. IE-431 Sistemas de control con Matlab y Scilab TABLA DE CONTENIDO 1. Introducción........................................................................................1 1.1 Matlab........................................................................................................1 1.2 Scilab..........................................................................................................1 2. Planteamiento de los problemas........................................................2 2.1 Ejemplo 1 - Controladores PID...............................................................2 2.2 Ejemplo 2 – Herramientas para el análisis de un sistema de control..3 3. Programas y respuestas.....................................................................4 3.1 Ejemplo 1 - Listados de instrucciones.....................................................4 3.2 Ejemplo 1 - Salida gráfica........................................................................7 3.2.1 Gráficos en Matlab 7 3.2.2 Gráficos en Scilab 7 3.3 Ejemplo 2 - Listados de instrucciones.....................................................8 3.4 Ejemplo 2 - Salida gráfica........................................................................9 3.4.1 Gráficos en Matlab 9 3.4.2 Gráficos en Scilab 10 Vma.ucr.ie431.matlab&scilab.odt V.M. Alfaro
  3. 3. IE-431 Sistemas de control con Matlab y Scilab 1 1. Introducción En la actualidad, la utilización en los cursos de control automático de algún programa de diseño de sistemas de control asistido por computadora (CACSD), se ha hecho indispensable. No sola- mente por permitir estos el uso de herramientas cuya utilización en forma manual puede ser muy tediosa, si no principalmente porque agilizan el proceso de diseño al permitir realizar cambios en el sistema y analizar las consecuencias de los mismos. Por ejemplo, se puede variar un parámetro del controlador o de la planta y visualizar su efecto en diferentes características del sistema en forma inmediata, facilitando así el análisis y el diseño de los sistemas de control realimentados. Además, con ellos se puede analizar el comportamiento del sistema de control con múltiples téc- nicas como por ejemplo: en el dominio del tiempo (respuesta al escalón y al impulso), el plano completo (localización de polos y ceros, el lugar geométrico de las raíces de Evans) o la respuesta de frecuencia (Bode, Nyquist, Black). En la red de computadoras de la Escuela están a disposición de los estudiantes, el Matlab® 7.0 con sus herramientas de control y otras más, y el ScilabTM 3.1. Con los ejemplos que se presentan a continuación, se pretende que el estudiante pueda apreciar las similitudes entre los dos “lenguajes”, así como sus diferencias y que esto le permita desarro- llar sus programas para análisis y diseño de los sistemas de control con, cualquiera de los dos pro- gramas. Los estudiantes matriculados en el curso pueden obtener los ejemplos programados tanto en Matlab® como ScilabTM , entrando a las páginas Web del curso en el sistema de administración de cursos de la Escuela (http://www.eie.ucr.ac.cr/cursos/). 1.1 Matlab El Matlab de The MathWorks, Inc., EUA. (http://www.mathworks.com/) es sin duda el programa de cálculo numérico técnico y CACSD más conocido. Este, junto con su programa compañero de simulación digital Simulink®, son ampliamente utilizados en los ejemplos presentados en las edi- ciones recientes de los libros de texto de control más utilizados. Los manuales de la Versión 6.5 en formato .pdf pueden obtener en la página de Recursos del sitio Web de la Escuela (http://www.eie.ucr.ac.cr/recursos.html). Lamentablemente el alto costo del Matlab les hace imposible a casi todos los estudiantes el tener una copia personal, aun de la versión para estudiantes, la cual es bastante limitada. 1.2 Scilab El programa Scilab (http://www.scilab.org/) es desarrollado por un consocio encabezado por el Institut National de Recherche en Informatique et en Automatique (INRIA), Francia, el cual es distribuido en forma gratuita por Internet. Este es entonces una alternativa muy atractiva para los estudiantes. En la página de Recursos de la Escuela (http://www.eie.ucr.ac.cr/recursos.html) se pueden obte- ner las versiones para Windows y Linux del Scilab 3.1.1. 2. Planteamiento de los problemas Vma.ucr.ie431.matlab&scilab.odt V.M. Alfaro
  4. 4. IE-431 Sistemas de control con Matlab y Scilab 2 A continuación se dan los enunciados de dos problemas de control hipotéticos. No se pretende con ellos explotar las capacidades de estos dos programas, más bien por el contrario, se tratará de utilizar solo las instrucciones básicas., de manera que sirvan estos de comparación. 2.1 Ejemplo 1 - Controladores PID Para el sistema de control mostrado en la Figura Nº 1, en donde Gps es la función de transfe- rencia de la planta y Gc s la del controlador, se desea obtener la respuesta del sistema de con- trol a un cambio escalón unitario en el valor deseado rt (servomecanismo) y en la perturbación zt (regulador). Para el ejemplo se empleará una planta cuya función de transferencia es Gp s= 1 5s12s1s1 y los controladores serán: • Proporcional (P) GcPs=K c • Proporcional-Integral (PI) GcPI s=K c 1 1 Ti s • Proporcional-Derivativo (PD) GcPDs=K c 1T d s • Proporcional-Integral-Derivativo (PID) GcPI s=K c 1 1 Ti s Td s  con los parámetros: K c=2.75, T i=5.0, Td=1.5 (los mismos para todos los controladores, se- gún se aplique) Vma.ucr.ie431.matlab&scilab.odt V.M. Alfaro Gp(s)Gc(s) r(s) z(s) y(s)e(s) u(s) + + + - Lazo de control realimentado Controlador Proceso
  5. 5. IE-431 Sistemas de control con Matlab y Scilab 3 Se deberá mostrar en una misma “ventana”, pero en gráficas separadas, la respuesta del servome- canismo y del regulador con los cuatro controladores. 2.2 Ejemplo 2 – Herramientas para el análisis de un sistema de control En este otro caso, para el sistema de control de la figura anterior, se empleará una planta cuya función de transferencia es Gps= 1.5 s12s14s1 y el controlador uno puramente proporcional GcPs=K c=2.5 Se debe de obtener: • la respuesta del sistema de control a un cambio escalón unitario en el valor deseado • el lugar geométrico de las raíces (LGR) para 0≤K c≤∞ • el diagrama de Nyquist • el diagrama de Bode y mostrarlos todos estos gráficos en una sola ventana. Vma.ucr.ie431.matlab&scilab.odt V.M. Alfaro
  6. 6. IE-431 Sistemas de control con Matlab y Scilab 4 3. Programas y respuestas En el punto 3.1 siguiente se muestra el listado de instrucciones (“scripts”), tanto para Matlab como para Scilab, necesarias para resolver los problemas planteados en 2.0 arriba, los cuales se han colocado de manera que se pueda hacer una comparación, casi línea a línea, de los dos pro- gramas. En el punto 3.2 se muestran las gráficas de las respuestas obtenidas con cada uno de los programas. En forma similar al anterior, en el punto 3.3 se muestran los listados de instrucciones para el Ejemplo 2 y en el punto 3.4 las salidas gráficas correspondientes. 3.1 Ejemplo 1 - Listados de instrucciones Programa en Matlab Programa en Scilab %Sistemas de Control con Matlab %(control_pid.m) %V.M. Alfaro, 2004 % clear s=tf('s'); %vector de tiempos t=0:0.05:50; % %función de transferencia de la %planta (3er orden) gp=1/((5*s+1)*(2*s+1)*(s+1)); % %parámetros de los controladores Kc=2.75;Ti=5;Td=1.5; % %ventana figure(1) set(1,'Name','Sistemas de control con controladores PID') %---------------------------------- //Sistemas de Control con Scilab //(control_pid.sce) //V.M. Alfaro, 2004, 2005 // clear s=poly(0,'s'); //vector de tiempos t=0:0.05:50; // //función de transferencia de la //planta (3er orden) gp=1/((5*s+1)*(2*s+1)*(s+1)); // //parámetros de los controladores Kc=2.75;Ti=5;Td=1.5; // //ventana xset('window',1) xname('Sistemas de control con controladores PID') //--------------------------------- %servomecanismos %control P gc=Kc; Mr=gc*gp/(1+gc*gp); yp=step(Mr,t); % % %control PI gc=Kc*(1+1/(Ti*s)); Mr=gc*gp/(1+gc*gp); ypi=step(Mr,t); % % %control PD gc=Kc*(1+Td*s); Mr=gc*gp/(1+gc*gp); //servomecanismos //control P gc=Kc; Mr=gc*gp/(1+gc*gp); Mrs=syslin('c',Mr); yp=csim('step',t,Mrs); // //control PI gc=Kc*(1+1/(Ti*s)); Mr=gc*gp/(1+gc*gp); Mrs=syslin('c',Mr); ypi=csim('step',t,Mrs); // //control PD gc=Kc*(1+Td*s); Mr=gc*gp/(1+gc*gp); Vma.ucr.ie431.matlab&scilab.odt V.M. Alfaro
  7. 7. IE-431 Sistemas de control con Matlab y Scilab 5 Programa en Matlab Programa en Scilab ypd=step(Mr,t); % % %control PID gc=Kc*(1+1/(Ti*s)+Td*s); Mr=gc*gp/(1+gc*gp); ypid=step(Mr,t); % % %respuesta de los servomecanismos %gráfico subplot(1,2,1) plot(t,[yp ypi ypd ypid]) grid on %títulos y otras leyendas title('Respuesta al escalón - servomecanismo') xlabel('tiempo'),ylabel('y(t)') legend('control P','control PI','control PD', 'control PID',0); text(22,0.6,'Kc= 8, Ti= 8, Td= 1.5') %---------------------------------- Mrs=syslin('c',Mr); ypd=csim('step',t,Mrs); // //control PID gc=Kc*(1+1/(Ti*s)+Td*s); Mr=gc*gp/(1+gc*gp); Mrs=syslin('c',Mr); ypid=csim('step',t,Mrs); // //respuesta de los servomecanismos //gráfico subplot(1,2,1);xset('font',2,3) plot2d(t',[yp; ypi; ypd; ypid]',style=[2,3,5,6]),xgrid(4) //títulos y otras leyendas xtitle('Respuesta al escalón – servomecanismo','tiempo','y(t)'); legends(['control P';'control PI';'control PD';'control PID'], [2,3,5,6],opt=1) xstring(22,0.6,'Kc= 8, Ti= 8, Td= 1.5') //--------------------------------- %reguladores %control P gc=Kc; Mz=gp/(1+gc*gp); yp=step(Mz,t); % % %control PI gc=Kc*(1+1/(Ti*s)); Mz=gp/(1+gc*gp); ypi=step(Mz,t); % % %control PD gc=Kc*(1+Td*s); Mz=gp/(1+gc*gp); ypd=step(Mz,t); % % %control PID gc=Kc*(1+1/(Ti*s)+Td*s); Mz=gp/(1+gc*gp); ypid=step(Mz,t); % % %respuesta de los reguladores %gráfico subplot(1,2,2) plot(t,[yp ypi ypd ypid]) grid on %títulos y otras leyendas title('Respuesta al escalón - regulador') //reguladores //control P gc=Kc; Mz=gp/(1+gc*gp); Mzs=syslin('c',Mz); yp=csim('step',t,Mzs); // //control PI gc=Kc*(1+1/(Ti*s)); Mz=gp/(1+gc*gp); Mzs=syslin('c',Mz); ypi=csim('step',t,Mzs); // //control PD gc=Kc*(1+Td*s); Mz=gp/(1+gc*gp); Mzs=syslin('c',Mz); ypd=csim('step',t,Mzs); // //control PID gc=Kc*(1+1/(Ti*s)+Td*s); Mz=gp/(1+gc*gp); Mzs=syslin('c',Mz); ypid=csim('step',t,Mzs); // //respuesta de los reguladores //gráfico subplot(1,2,2),xset('font',2,3) plot2d(t',[yp; ypi; ypd; ypid]',style=[2,3,5,6]),xgrid(4) //títulos y otras leyendas xtitle('Respuesta al escalón - regulador','tiempo','y(t)') Vma.ucr.ie431.matlab&scilab.odt V.M. Alfaro
  8. 8. IE-431 Sistemas de control con Matlab y Scilab 6 Programa en Matlab Programa en Scilab xlabel('tiempo'),ylabel('y(t)') legend('control P','control PI','control PD', 'control PID',0); text(22,0.12,'Kc= 8, Ti= 8, Td= 1.5') legends(['control P','control PI','control PD','control PID'], [2,3,5,6],opt=1) xstring(22,0.12,'Kc= 8, Ti= 8, Td= 1.5') Vma.ucr.ie431.matlab&scilab.odt V.M. Alfaro
  9. 9. IE-431 Sistemas de control con Matlab y Scilab 7 3.2 Ejemplo 1 - Salida gráfica En las siguientes curvas de respuesta se puede apreciar el efecto que tiene la adición del modo integral o derivativo sobre el comportamiento dinámico del sistema. 3.2.1 Gráficos en Matlab 3.2.2 Gráficos en Scilab Vma.ucr.ie431.matlab&scilab.odt V.M. Alfaro Kc= 8, Ti= 8, Td= 1.5 Respuesta al escalón - servomecanismo tiempo y(t) 0 5 10 15 20 25 30 35 40 45 50 0.0 0.5 1.0 1.5 control P control PI control PD control PID Kc= 8, Ti= 8, Td= 1.5 Respuesta al escalón - regulador tiempo y(t) 0 5 10 15 20 25 30 35 40 45 50 -0.10 -0.05 0.00 0.05 0.10 0.15 0.20 0.25 0.30 0.35 control P control PI control PD control PID
  10. 10. IE-431 Sistemas de control con Matlab y Scilab 8 3.3 Ejemplo 2 - Listados de instrucciones Programa en Matlab Programa en Scilab %%Sistemas de Control con Matlab %(control_herramientas.m) %V.M. Alfaro, 2004 % clear s=tf('s'); %vector de tiempos t=0:0.1:30; % %función de transferencia, planta gp=1.5/((s+1)*(2*s+1)*(4*s+1)); % %función de trans., controlador (P) gc=2.5; % %función de trans. de lazo abierto gla=gc*gp; % %función de trans. de lazo cerrado glc=feedback(gla,1); % %uso de las herramientas de control figure(1) set(1,'Name','Análisis de un sistema de control con varias herramientas') % %respuesta a un escalón unitario %lazo cerrado subplot(2,2,1) step(glc,t),grid on title('Respuesta a un scalón unitario') xlabel('tiempo'),ylabel('y(t)') % %lugar de las raíces (LGR) subplot(2,2,2) rlocus(gla);sgrid([0.75 0.4],[1 1.5]) % %diagrama de Nyquist subplot(2,2,3) nyquist(gla) % %diagrama de Bode subplot(2,2,4) bode(gla),grid on //Sistemas de Control con Scilab //(control_herramientas.sce) //V.M. Alfaro, 2004 // clear s=poly(0,'s'); //vector de tiempos t=0:0.1:32; // //función de transferencia, planta gp=1.5/((s+1)*(2*s+1)*(4*s+1)); // //función de trans., controlador (P) gc=2.5; // //función de trans., lazo abierto gla=gc*gp;glas=syslin('c',gla); // //función de trans. lazo cerrado gu=1;glc=gla/.gu; glcs=syslin('c',glc); //uso de las herramientas xset('window',1) xname('Análisis de un sistema de control con varias herramientas') // //respuesta a un escalón unitario //lazo cerrado subplot(2,2,1),xgrid(4) plot2d(t,csim('step',t,glcs),style=2 ) xtitle('Respuesta a un scalón unitario','tiempo','y(t)') // //lugar de las raíces (LGR) subplot(2,2,2),xgrid(4) evans(glas,2.5) sgrid([0.75 0.4],[0.5 0.75],2) // //diagrama de Nyquist subplot(2,2,3) nyquist(glas) // //diagrama de Bode subplot(2,2,4) bode(glas,0.001,10) Vma.ucr.ie431.matlab&scilab.odt V.M. Alfaro
  11. 11. IE-431 Sistemas de control con Matlab y Scilab 9 3.4 Ejemplo 2 - Salida gráfica Las siguientes figuras permiten estudiar el comportamiento dinámico, la estabilidad y otras características del sistema de control. 3.4.1 Gráficos en Matlab Vma.ucr.ie431.matlab&scilab.odt V.M. Alfaro
  12. 12. IE-431 Sistemas de control con Matlab y Scilab 10 3.4.2 Gráficos en Scilab Vma.ucr.ie431.matlab&scilab.odt V.M. Alfaro 0 4 8 12 16 20 24 28 32 0.0 0.2 0.4 0.6 0.8 1.0 1.2 Respuesta a un scalón unitario tiempo y(t) -1.9 -1.7 -1.5 -1.3 -1.1 -0.9 -0.7 -0.5 -0.3 -0.1 0.1 -1.0 -0.8 -0.6 -0.4 -0.2 0.0 0.2 0.4 0.6 0.8 1.0 ××× × open loop poles asymptotic directions Evans root locus Real axis Imag. axis 0.5 0.75 0.75 0.4 -1 0 1 2 3 4 -3 -2 -1 0 1 2 3 -1 0 1 2 3 4 -3 -2 -1 0 1 2 3 -1000 -0.052 -0.036 -0.025 -0.017 -0.002 0.013 0.0210.029 0.041 0.061 Nyquist plot Re(h(2i*pi*f)) Im(h(2i*pi*f)) -3 10 -2 10 -1 10 0 10 1 10 -120 -100 -80 -60 -40 -20 0 20 Magnitude Hz db -3 10 -2 10 -1 10 0 10 1 10 -300 -260 -220 -180 -140 -100 -60 -20 20 Phase Hz degrees

×