Beruflich Dokumente
Kultur Dokumente
IE-431
3. Programas y respuestas.....................................................................4
3.1 Ejemplo 1 - Listados de instrucciones.....................................................4 3.2 Ejemplo 1 - Salida grfica........................................................................7
3.2.1 Grficos en Matlab 3.2.2 Grficos en Scilab 7 7
Vma.ucr.ie431.matlab&scilab.odt
V.M. Alfaro
IE-431
1. Introduccin
En la actualidad, la utilizacin en los cursos de control automtico de algn programa de diseo de sistemas de control asistido por computadora (CACSD), se ha hecho indispensable. No solamente por permitir estos el uso de herramientas cuya utilizacin en forma manual puede ser muy tediosa, si no principalmente porque agilizan el proceso de diseo al permitir realizar cambios en el sistema y analizar las consecuencias de los mismos. Por ejemplo, se puede variar un parmetro del controlador o de la planta y visualizar su efecto en diferentes caractersticas del sistema en forma inmediata, facilitando as el anlisis y el diseo de los sistemas de control realimentados. Adems, con ellos se puede analizar el comportamiento del sistema de control con mltiples tcnicas como por ejemplo: en el dominio del tiempo (respuesta al escaln y al impulso), el plano completo (localizacin de polos y ceros, el lugar geomtrico de las races de Evans) o la respuesta de frecuencia (Bode, Nyquist, Black). En la red de computadoras de la Escuela estn a disposicin de los estudiantes, el Matlab 7.0 con sus herramientas de control y otras ms, y el ScilabTM 3.1. Con los ejemplos que se presentan a continuacin, se pretende que el estudiante pueda apreciar las similitudes entre los dos lenguajes, as como sus diferencias y que esto le permita desarrollar sus programas para anlisis y diseo de los sistemas de control con, cualquiera de los dos programas. Los estudiantes matriculados en el curso pueden obtener los ejemplos programados tanto en Matlab como ScilabTM, entrando a las pginas Web del curso en el sistema de administracin 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 clculo numrico tcnico y CACSD ms conocido. Este, junto con su programa compaero de simulacin digital Simulink, son ampliamente utilizados en los ejemplos presentados en las ediciones recientes de los libros de texto de control ms utilizados. Los manuales de la Versin 6.5 en formato .pdf pueden obtener en la pgina 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 versin 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 pgina de Recursos de la Escuela (http://www.eie.ucr.ac.cr/recursos.html) se pueden obtener las versiones para Windows y Linux del Scilab 3.1.1.
IE-431
A continuacin se dan los enunciados de dos problemas de control hipotticos. No se pretende con ellos explotar las capacidades de estos dos programas, ms bien por el contrario, se tratar de utilizar solo las instrucciones bsicas., de manera que sirvan estos de comparacin.
G p s=
y los controladores sern:
1 5s12s1s1
Proporcional (P)
G cP s=K c
Proporcional-Integral (PI)
GcPI s=K c 1
1 Tis
Proporcional-Derivativo (PD)
G cPD s=K c 1T d s
Proporcional-Integral-Derivativo (PID)
GcPI s=K c 1
1 T d s Tis
K c=2.75, T i=5.0, T d=1.5 (los mismos para todos los controladores, se-
Vma.ucr.ie431.matlab&scilab.odt
V.M. Alfaro
IE-431
Se deber mostrar en una misma ventana, pero en grficas separadas, la respuesta del servomecanismo y del regulador con los cuatro controladores.
G p s=
y el controlador uno puramente proporcional
1.5 s12s14s1
la respuesta del sistema de control a un cambio escaln unitario en el valor deseado el lugar geomtrico de las races (LGR) para 0K c el diagrama de Nyquist el diagrama de Bode
Vma.ucr.ie431.matlab&scilab.odt
V.M. Alfaro
IE-431
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 comparacin, casi lnea a lnea, de los dos programas. En el punto 3.2 se muestran las grficas 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 grficas correspondientes.
Programa en Scilab
//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; // //funcin de transferencia de la //planta (3er orden) gp=1/((5*s+1)*(2*s+1)*(s+1)); // //parmetros 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); 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
IE-431
Programa en Matlab
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 %grfico subplot(1,2,1) plot(t,[yp ypi ypd ypid]) grid on %ttulos y otras leyendas title('Respuesta al escaln 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') %---------------------------------%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 %grfico subplot(1,2,2) plot(t,[yp ypi ypd ypid]) grid on %ttulos y otras leyendas title('Respuesta al escaln regulador')
Programa en Scilab
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 //grfico subplot(1,2,1);xset('font',2,3) plot2d(t',[yp; ypi; ypd; ypid]',style=[2,3,5,6]),xgrid(4) //ttulos y otras leyendas xtitle('Respuesta al escaln 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); 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 //grfico subplot(1,2,2),xset('font',2,3) plot2d(t',[yp; ypi; ypd; ypid]',style=[2,3,5,6]),xgrid(4) //ttulos y otras leyendas xtitle('Respuesta al escaln regulador','tiempo','y(t)')
Vma.ucr.ie431.matlab&scilab.odt
V.M. Alfaro
IE-431
Programa en Matlab
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')
Programa en Scilab
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
IE-431
1.5
control P control PI control PD control PID
0.35
control P
1.0
Kc= 8, Ti= 8, Td= 1.5 Kc= 8, Ti= 8, Td= 1.5 0.5 0.10 0.05 0.00 -0.05 0.0 0 5 10 15 20 25 30 35 40 45 50
tiempo
-0.10 0 5 10 15 20 25 30 35 40 45 50
tiempo
Vma.ucr.ie431.matlab&scilab.odt
V.M. Alfaro
IE-431
Programa en Scilab
//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; // //funcin de transferencia, planta gp=1.5/((s+1)*(2*s+1)*(4*s+1)); // //funcin de trans., controlador (P) gc=2.5; // //funcin de trans., lazo abierto gla=gc*gp;glas=syslin('c',gla); // //funcin de trans. lazo cerrado gu=1;glc=gla/.gu; glcs=syslin('c',glc); //uso de las herramientas xset('window',1) xname('Anlisis de un sistema de control con varias herramientas') // //respuesta a un escaln unitario //lazo cerrado subplot(2,2,1),xgrid(4) plot2d(t,csim('step',t,glcs),style=2 ) xtitle('Respuesta a un scaln unitario','tiempo','y(t)') // //lugar de las races (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
IE-431
Vma.ucr.ie431.matlab&scilab.odt
V.M. Alfaro
IE-431
10
0.4
20 db Im(h(2i*pi*f)) 0 3 -20 -0.036 -0.025 -0.017 -40 2 -0.052 -60 -80 -100 1 -120 -3 -2 -0.002 -1000 10 10 0 20 degrees -20 -1 0.061 -60 -100 0.013 -140 -2 0.041 -180 0.029 0.021 Re(h(2i*pi*f)) -220 -260 -3 -300 -3 -2 -1 0 1 2 3 4 10 10 Nyquist plot
Hz
-1 0 1
10 Phase
10
10
Hz
-1 0 1
10
10
10
Vma.ucr.ie431.matlab&scilab.odt
V.M. Alfaro