Está en la página 1de 14

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 7
3.2.2 Grficos en Scilab 7
3.3 Ejemplo 2 - Listados de instrucciones.....................................................8
3.4 Ejemplo 2 - Salida grfica........................................................................ 9
3.4.1 Grficos en Matlab 9
3.4.2 Grficos en Scilab 10

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


IE-431 Sistemas de control con Matlab y Scilab 1

1. Introduccin
En la actualidad, la utilizacin en los cursos de control automtico de algn programa de di
seo 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 lu
gar 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 apre
ciar 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 ejem
plos 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 pro
grama 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.

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


IE-431 Sistemas de control con Matlab y Scilab 2

2. Planteamiento de los problemas


A continuacin se dan los enunciados de dos problemas de control hipotticos. No se pre
tende 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 compara
cin.
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 sis
tema de control a un cambio escaln unitario en el valor deseado rt (servomecanismo)
y en la perturbacin zt (regulador).

z(s)
Controlador Proceso
+
r(s) + e(s) u(s) + y(s)
Gc(s) Gp(s)
-

Lazo de control realimentado

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


1
G p s=
5s12s1s1
y los controladores sern:
Proporcional (P)
G cP s=K c
Proporcional-Integral (PI)


G cPI s=K c 1
1
Tis
Proporcional-Derivativo (PD)
G cPD s=K c 1T d s
Proporcional-Integral-Derivativo (PID)


G cPI s=K c 1
1
Tis
T d s

Vma.ucr.ie431.matlab&scilab.odt V.M. Alfaro
IE-431 Sistemas de control con Matlab y Scilab 3

con los parmetros: K c=2.75, T i=5.0, T d=1.5 (los mismos para todos los controlado
res, segn se aplique)
Se deber mostrar en una misma ventana, pero en grficas separadas, la respuesta del ser
vomecanismo 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
1.5
G p s=
s12s14s1
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 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 4

3. Programas y respuestas
En el punto 3.1 siguiente se muestra el listado de instrucciones (scripts), tanto para Mat
lab 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 Programa en Scilab


%Sistemas de Control con Matlab //Sistemas de Control con Scilab
%(control_pid.m) //(control_pid.sce)
%V.M. Alfaro, 2004 //V.M. Alfaro, 2004, 2005
% //
clear clear
s=tf('s'); s=poly(0,'s');
%vector de tiempos //vector de tiempos
t=0:0.05:50; t=0:0.05:50;
% //
%funcin de transferencia de la //funcin de transferencia de la
%planta (3er orden) //planta (3er orden)
gp=1/((5*s+1)*(2*s+1)*(s+1)); gp=1/((5*s+1)*(2*s+1)*(s+1));
% //
%parmetros de los controladores //parmetros de los controladores
Kc=2.75;Ti=5;Td=1.5; Kc=2.75;Ti=5;Td=1.5;
% //
%ventana //ventana
figure(1) xset('window',1)
set(1,'Name','Sistemas de control xname('Sistemas de control con
con controladores PID') controladores PID')
%---------------------------------- //---------------------------------
%servomecanismos //servomecanismos
%control P //control P
gc=Kc; gc=Kc;
Mr=gc*gp/(1+gc*gp); Mr=gc*gp/(1+gc*gp);
yp=step(Mr,t); Mrs=syslin('c',Mr);
% yp=csim('step',t,Mrs);
% //
%control PI //control PI
gc=Kc*(1+1/(Ti*s)); gc=Kc*(1+1/(Ti*s));
Mr=gc*gp/(1+gc*gp); Mr=gc*gp/(1+gc*gp);

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


IE-431 Sistemas de control con Matlab y Scilab 5

Programa en Matlab Programa en Scilab


ypi=step(Mr,t); Mrs=syslin('c',Mr);
% ypi=csim('step',t,Mrs);
% //
%control PD //control PD
gc=Kc*(1+Td*s); gc=Kc*(1+Td*s);
Mr=gc*gp/(1+gc*gp); Mr=gc*gp/(1+gc*gp);
ypd=step(Mr,t); Mrs=syslin('c',Mr);
% ypd=csim('step',t,Mrs);
% //
%control PID //control PID
gc=Kc*(1+1/(Ti*s)+Td*s); gc=Kc*(1+1/(Ti*s)+Td*s);
Mr=gc*gp/(1+gc*gp); Mr=gc*gp/(1+gc*gp);
ypid=step(Mr,t); Mrs=syslin('c',Mr);
% ypid=csim('step',t,Mrs);
% //
%respuesta de los servomecanismos //respuesta de los servomecanismos
%grfico //grfico
subplot(1,2,1) subplot(1,2,1);xset('font',2,3)
plot(t,[yp ypi ypd ypid]) plot2d(t',[yp; ypi; ypd;
grid on ypid]',style=[2,3,5,6]),xgrid(4)
%ttulos y otras leyendas //ttulos y otras leyendas
title('Respuesta al escaln - xtitle('Respuesta al escaln
servomecanismo') servomecanismo','tiempo','y(t)');
xlabel('tiempo'),ylabel('y(t)') legends(['control P';'control
legend('control P','control PI';'control PD';'control
PI','control PD', 'control PID',0); PID'],[2,3,5,6],opt=1)
text(22,0.6,'Kc= 8, Ti= 8, Td= xstring(22,0.6,'Kc= 8, Ti= 8, Td=
1.5') 1.5')
%---------------------------------- //---------------------------------
%reguladores //reguladores
%control P //control P
gc=Kc; gc=Kc;
Mz=gp/(1+gc*gp); Mz=gp/(1+gc*gp);
yp=step(Mz,t); Mzs=syslin('c',Mz);
% yp=csim('step',t,Mzs);
% //
%control PI //control PI
gc=Kc*(1+1/(Ti*s)); gc=Kc*(1+1/(Ti*s));
Mz=gp/(1+gc*gp); Mz=gp/(1+gc*gp);
ypi=step(Mz,t); Mzs=syslin('c',Mz);
% ypi=csim('step',t,Mzs);
% //
%control PD //control PD
gc=Kc*(1+Td*s); gc=Kc*(1+Td*s);
Mz=gp/(1+gc*gp); Mz=gp/(1+gc*gp);
ypd=step(Mz,t); Mzs=syslin('c',Mz);
% ypd=csim('step',t,Mzs);
% //

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


IE-431 Sistemas de control con Matlab y Scilab 6

Programa en Matlab Programa en Scilab


%control PID //control PID
gc=Kc*(1+1/(Ti*s)+Td*s); gc=Kc*(1+1/(Ti*s)+Td*s);
Mz=gp/(1+gc*gp); Mz=gp/(1+gc*gp);
ypid=step(Mz,t); Mzs=syslin('c',Mz);
% ypid=csim('step',t,Mzs);
% //
%respuesta de los reguladores //respuesta de los reguladores
%grfico //grfico
subplot(1,2,2) subplot(1,2,2),xset('font',2,3)
plot(t,[yp ypi ypd ypid]) plot2d(t',[yp; ypi; ypd;
grid on ypid]',style=[2,3,5,6]),xgrid(4)
%ttulos y otras leyendas //ttulos y otras leyendas
title('Respuesta al escaln - xtitle('Respuesta al escaln -
regulador') regulador','tiempo','y(t)')
xlabel('tiempo'),ylabel('y(t)') legends(['control P','control
legend('control P','control PI','control PD','control
PI','control PD', 'control PID',0); PID'],[2,3,5,6],opt=1)
text(22,0.12,'Kc= 8, Ti= 8, Td= xstring(22,0.12,'Kc= 8, Ti= 8, Td=
1.5') 1.5')

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


IE-431 Sistemas de control con Matlab y Scilab 7

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 0.35
control P control P
0.30
control PI control PI

control PD control PD
0.25
control PID control PID

1.0 0.20

0.15
Kc= 8, Ti= 8, Td= 1.5
0.10
Kc= 8, Ti= 8, Td= 1.5

0.5 0.05

0.00

-0.05

0.0 tiempo -0.10 tiempo


0 5 10 15 20 25 30 35 40 45 50 0 5 10 15 20 25 30 35 40 45 50

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


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 //Sistemas de Control con Scilab
%(control_herramientas.m) //(control_herramientas.sce)
%V.M. Alfaro, 2004 //V.M. Alfaro, 2004
% //
clear clear
s=tf('s'); s=poly(0,'s');
%vector de tiempos //vector de tiempos
t=0:0.1:30; t=0:0.1:32;
% //
%funcin de transferencia, planta //funcin de transferencia, planta
gp=1.5/((s+1)*(2*s+1)*(4*s+1)); gp=1.5/((s+1)*(2*s+1)*(4*s+1));
% //
%funcin de trans., controlador (P) //funcin de trans., controlador (P)
gc=2.5; gc=2.5;
% //
%funcin de trans. de lazo abierto //funcin de trans., lazo abierto
gla=gc*gp; gla=gc*gp;glas=syslin('c',gla);
% //
%funcin de trans. de lazo cerrado //funcin de trans. lazo cerrado
glc=feedback(gla,1); gu=1;glc=gla/.gu;
% glcs=syslin('c',glc);
%uso de las herramientas de control //uso de las herramientas
figure(1) xset('window',1)
set(1,'Name','Anlisis de un sistema xname('Anlisis de un sistema de
de control con varias herramientas') control con varias herramientas')
% //
%respuesta a un escaln unitario //respuesta a un escaln unitario
%lazo cerrado //lazo cerrado
subplot(2,2,1) subplot(2,2,1),xgrid(4)
step(glc,t),grid on plot2d(t,csim('step',t,glcs),style=2
title('Respuesta a un scaln )
unitario') xtitle('Respuesta a un scaln
xlabel('tiempo'),ylabel('y(t)') unitario','tiempo','y(t)')
% //
%lugar de las races (LGR) //lugar de las races (LGR)
subplot(2,2,2) subplot(2,2,2),xgrid(4)
rlocus(gla);sgrid([0.75 0.4],[1 evans(glas,2.5)
1.5]) sgrid([0.75 0.4],[0.5 0.75],2)
% //
%diagrama de Nyquist //diagrama de Nyquist
subplot(2,2,3) subplot(2,2,3)
nyquist(gla) nyquist(glas)
% //
%diagrama de Bode //diagrama de Bode
subplot(2,2,4) subplot(2,2,4)
bode(gla),grid on bode(glas,0.001,10)

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


IE-431 Sistemas de control con Matlab y Scilab 9

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
Respuesta a un scaln unitario Evans root locus
y(t) Imag. axis
1.2 1.0
0.8 open loop poles 0.75
1.0 0.6 0.5
0.4 asymptotic directions
0.8
0.2
0.6 0.0
-0.2
0.4 -0.4
-0.6
0.2
tiempo -0.8 Real axis
0.0 -1.0
0 4 8 12 16 20 24 28 32 -1.9 -1.7 -1.5 -1.3 -1.1 -0.9 -0.7 -0.5 -0.3 -0.1 0.1
Magnitude
Nyquist plot 20 db
Im(h(2i*pi*f)) 0
3
-0.036 -0.025 -20
-0.017 -40
2 -0.052 -60
-80
-100 Hz
1 -120 -3
-0.002 -2 -1 0 1
-1000 10 10 10 10 10
0 Phase
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 Hz
-3 -300 -3 -2 -1 0 1
-1 0 1 2 3 4
10 10 10 10 10

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