Está en la página 1de 12

Departamento de Automtica

IE 431 Sistemas de Control

Sistemas de control con Matlab y ScilabTM

Prof. Vctor M. Alfaro

Julio de 2004 Rev. Diciembre de 2005

IE-431

Sistemas de control con Matlab y Scilab

TABLA DE CONTENIDO 1. Introduccin........................................................................................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 anlisis de un sistema de control. .3

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

3.3 Ejemplo 2 - Listados de instrucciones.....................................................8 3.4 Ejemplo 2 - Salida grfica........................................................................9


3.4.1 Grficos en Matlab 3.4.2 Grficos en Scilab 9 10

Vma.ucr.ie431.matlab&scilab.odt

V.M. Alfaro

IE-431

Sistemas de control con Matlab y Scilab

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.

2. Planteamiento de los problemas


Vma.ucr.ie431.matlab&scilab.odt V.M. Alfaro

IE-431

Sistemas de control con Matlab y Scilab

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.

2.1 Ejemplo 1 - Controladores PID


Para el sistema de control mostrado en la Figura N 1, en donde G p s es la funcin de transferencia de la planta y Gc s la del controlador, se desea obtener la respuesta del sistema de control a un cambio escaln unitario en el valor deseado r t (servomecanismo) y en la perturbacin z t (regulador).
z(s) + u(s) +

Controlador r(s) + e(s) Gc(s)

Proceso Gp(s) y(s)

Lazo de control realimentado

Para el ejemplo se emplear una planta cuya funcin de transferencia es

G p s =
y los controladores sern:

1 5s1 2s1 s1

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 1 T d s

Proporcional-Integral-Derivativo (PID)
GcPI s=K c 1

1 T d s Tis

con los parmetros: gn se aplique)

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

Sistemas de control con Matlab y Scilab

Se deber mostrar en una misma ventana, pero en grficas separadas, la respuesta del servomecanismo y del regulador con los cuatro controladores.

2.2 Ejemplo 2 Herramientas para el anlisis de un sistema de control


En este otro caso, para el sistema de control de la figura anterior, se emplear una planta cuya funcin de transferencia es

G p s =
y el controlador uno puramente proporcional

1.5 s1 2s 14s1

GcP s =K c =2.5
Se debe de obtener:

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

y mostrarlos todos estos grficos en una sola ventana.

Vma.ucr.ie431.matlab&scilab.odt

V.M. Alfaro

IE-431

Sistemas de control con Matlab y Scilab

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.

3.1 Ejemplo 1 - Listados de instrucciones Programa en Matlab


%Sistemas de Control con Matlab %(control_pid.m) %V.M. Alfaro, 2004 % clear s=tf('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 figure(1) set(1,'Name','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);

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

Sistemas de control con Matlab y Scilab

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

Sistemas de control con Matlab y Scilab

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

Sistemas de control con Matlab y Scilab

3.2 Ejemplo 1 - Salida grfica


En las siguientes curvas de respuesta se puede apreciar el efecto que tiene la adicin del modo integral o derivativo sobre el comportamiento dinmico del sistema. 3.2.1 Grficos en Matlab

3.2.2 Grficos en Scilab


y(t) Respuesta al escaln - servomecanismo y(t) Respuesta al escaln - regulador

1.5
control P control PI control PD control PID

0.35
control P

0.30 0.25 0.20 0.15

control PI control PD control PID

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

Sistemas de control con Matlab y Scilab

3.3 Ejemplo 2 - Listados de instrucciones Programa en Matlab


%%Sistemas de Control con Matlab %(control_herramientas.m) %V.M. Alfaro, 2004 % clear s=tf('s'); %vector de tiempos t=0:0.1:30; % %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. de lazo abierto gla=gc*gp; % %funcin de trans. de lazo cerrado glc=feedback(gla,1); % %uso de las herramientas de control figure(1) set(1,'Name','Anlisis de un sistema de control con varias herramientas') % %respuesta a un escaln unitario %lazo cerrado subplot(2,2,1) step(glc,t),grid on title('Respuesta a un scaln unitario') xlabel('tiempo'),ylabel('y(t)') % %lugar de las races (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

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

Sistemas de control con Matlab y Scilab

3.4 Ejemplo 2 - Salida grfica


Las siguientes figuras permiten estudiar el comportamiento dinmico, la estabilidad y otras caractersticas del sistema de control. 3.4.1 Grficos en Matlab

Vma.ucr.ie431.matlab&scilab.odt

V.M. Alfaro

IE-431

Sistemas de control con Matlab y Scilab

10

0.4

3.4.2 Grficos en Scilab


0.75 1.2 1.0 0.8 0.6 0.4 0.2 tiempo 0.0 0 4 8 12 16 20 24 28 32 y(t) Respuesta a un scaln unitario Evans root locus Imag. axis 1.0 0.75 open loop poles 0.8 0.6 0.5 asymptotic directions 0.4 0.2 0.0 -0.2 -0.4 -0.6 -0.8 Real axis -1.0 -1.9 -1.7 -1.5 -1.3 -1.1 -0.9 -0.7 -0.5 -0.3 -0.1 0.1 Magnitude

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

También podría gustarte