Está en la página 1de 12

Departamento de Automtica

IE 431 Sistemas de Control

Sistemas de control con Matlab y ScilabTM

Pro ! "#ctor M! Al aro

$ulio de %&&4 'e(! Diciembre de %&&)

IE*431

Sistemas de control con Matlab y Scilab

+A,-A DE C./+E/ID. 1! Introducci0n!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!1


1!1 Matlab!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!1 1!% Scilab!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!1

%! Planteamiento de los problemas!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!%


%!1 E1emplo 1 * Controladores PID!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!% %!% E1emplo % 2erramientas para el anlisis de un sistema de control! !3

3! Pro3ramas y respuestas!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!4
3!1 E1emplo 1 * -istados de instrucciones!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!4 3!% E1emplo 1 * Salida 3r ica!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!4
3!%!1 5r icos en Matlab 3!%!% 5r icos en Scilab 4 4

3!3 E1emplo % * -istados de instrucciones!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!6 3!4 E1emplo % * Salida 3r ica!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!7


3!4!1 5r icos en Matlab 3!4!% 5r icos en Scilab 7 1&

"ma!ucr!ie431!matlab8scilab!odt

"!M! Al aro

IE*431

Sistemas de control con Matlab y Scilab

1! Introducci0n
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 sola mente por permitir estos el uso de herramientas cu!a utilizacin en "orma manual puede ser mu! tediosa, si no principalmente por#ue agilizan el proceso de diseo al permitir realizar cambios en el sistema ! analizar las consecuencias de los mismos. $or e%emplo, se puede &ariar un parmetro del controlador o de la planta ! &isualizar su e"ecto en di"erentes caracter'sticas del sistema en "orma inmediata, "acilitando as' el anlisis ! el diseo de los sistemas de control realimentados. (dems, con ellos se puede analizar el comportamiento del sistema de control con mltiples t)c nicas como por e%emplo* en el dominio del tiempo (respuesta al escaln ! al impulso), el plano completo (localizacin de polos ! ceros, el lugar geom)trico de las ra'ces de E&ans) o la respuesta de "recuencia (+ode, N!#uist, +lac,). En la red de computadoras de la Escuela estn a disposicin de los estudiantes, el Matlab- ../ con sus herramientas de control ! otras ms, ! el ScilabTM 0.1. 2on los e%emplos #ue se presentan a continuacin, se pretende #ue el estudiante pueda apreciar las similitudes entre los dos 3lengua%es4, as' como sus di"erencias ! #ue esto le permita desarro llar sus programas para anlisis ! diseo de los sistemas de control con, cual#uiera de los dos pro gramas. 5os estudiantes matriculados en el curso pueden obtener los e%emplos programados tanto en Matlab como ScilabTM, entrando a las pginas 6eb del curso en el sistema de administracin de cursos de la Escuela (http*77888.eie.ucr.ac.cr7cursos7).

1!1 Matlab
El Matlab de The Math6or,s, 9nc., E:(. (http*77888.math8or,s.com7) es sin duda el programa de clculo num)rico t)cnico ! CACSD ms conocido. Este, %unto con su programa compaero de simulacin digital Simulink, son ampliamente utilizados en los e%emplos presentados en las edi ciones recientes de los libros de te;to de control ms utilizados. 5os manuales de la <ersin =.> en "ormato .pd" pueden obtener en la pgina de Recursos del sitio 6eb de la Escuela (http*77888.eie.ucr.ac.cr7recursos.html). 5amentablemente el alto costo del Matlab les hace imposible a casi todos los estudiantes el tener una copia personal, aun de la &ersin para estudiantes, la cual es bastante limitada.

1!% Scilab
El programa Scilab (http*77888.scilab.org7) es desarrollado por un consocio encabezado por el 9nstitut National de ?echerche en 9n"ormati#ue et en (utomati#ue (INRIA), @rancia, el cual es distribuido en "orma gratuita por 9nternet. Este es entonces una alternati&a mu! atracti&a para los estudiantes. En la pgina de Recursos de la Escuela (http*77888.eie.ucr.ac.cr7recursos.html) se pueden obte ner las &ersiones para 6indo8s ! 5inu; del Scilab 0.1.1.

%! Planteamiento de los problemas


"ma!ucr!ie431!matlab8scilab!odt "!M! Al aro

IE*431

Sistemas de control con Matlab y Scilab

( continuacin se dan los enunciados de dos problemas de control hipot)ticos. No se pretende con ellos e;plotar las capacidades de estos dos programas, ms bien por el contrario, se tratar de utilizar solo las instrucciones bsicas., de manera #ue sir&an estos de comparacin.

%!1 E1emplo 1 * Controladores PID


$ara el sistema de control mostrado en la @igura NA 1, en donde G p s es la "uncin de trans"e rencia de la planta ! Gc s la del controlador, se desea obtener la respuesta del sistema de con trol a un cambio escaln unitario en el &alor deseado r t (ser&omecanismo) ! 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

$ara el e%emplo se emplear una planta cu!a "uncin de trans"erencia es

G p s =
! los controladores sern*

1 5s1 2s1 s1

$roporcional (P)
G cP s =K c

$roporcional 9ntegral (PI)


GcPI s=K c 1

1 Tis

$roporcional Beri&ati&o (PD)


G cPD s =K c 1 T d s

$roporcional 9ntegral Beri&ati&o (PID)


GcPI s=K c 1

1 T d s Tis

con los parmetros* gn se apli#ue)

K c=2.75, T i=5.0, T d=1.5 (los mismos para todos los controladores, se

"ma!ucr!ie431!matlab8scilab!odt

"!M! Al aro

IE*431

Sistemas de control con Matlab y Scilab

Ce deber mostrar en una misma 3&entana4, pero en gr"icas separadas, la respuesta del ser&ome canismo ! del regulador con los cuatro controladores.

%!% E1emplo % 2erramientas para el anlisis de un sistema de control


En este otro caso, para el sistema de control de la "igura anterior, se emplear una planta cu!a "uncin de trans"erencia es

G p s =
! el controlador uno puramente proporcional

1.5 s1 2s 14s1

GcP s =K c =2.5
Ce debe de obtener*

la respuesta del sistema de control a un cambio escaln unitario en el &alor deseado el lugar geom)trico de las ra'ces (5D?) para 0K c el diagrama de N!#uist el diagrama de +ode

! mostrarlos todos estos gr"icos en una sola &entana.

"ma!ucr!ie431!matlab8scilab!odt

"!M! Al aro

IE*431

Sistemas de control con Matlab y Scilab

3! Pro3ramas y respuestas
En el punto 0.1 siguiente se muestra el listado de instrucciones (3scripts4), tanto para Matlab como para Scilab, necesarias para resol&er los problemas planteados en E./ arriba, los cuales se han colocado de manera #ue se pueda hacer una comparacin, casi l'nea a l'nea, de los dos pro gramas. En el punto 0.E se muestran las gr"icas de las respuestas obtenidas con cada uno de los programas. En "orma similar al anterior, en el punto 0.0 se muestran los listados de instrucciones para el E%emplo E ! en el punto 0.F las salidas gr"icas correspondientes.

3!1 E1emplo 1 * -istados 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);

"ma!ucr!ie431!matlab8scilab!odt

"!M! Al aro

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)')

"ma!ucr!ie431!matlab8scilab!odt

"!M! Al aro

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')

"ma!ucr!ie431!matlab8scilab!odt

"!M! Al aro

IE*431

Sistemas de control con Matlab y Scilab

3!% E1emplo 1 * Salida 3r ica


En las siguientes cur&as de respuesta se puede apreciar el e"ecto #ue tiene la adicin del modo integral o deri&ati&o sobre el comportamiento dinmico del sistema. 3!%!1 5r icos en Matlab

3!%!% 5r icos en Scilab


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

1.>
control P control PI control PD control PID

/.0>
control P

/.0/ /.E> /.E/ /.1>

control PI control PD control PID

1./

GcH I, TiH I, TdH 1.> GcH I, TiH I, TdH 1.> /.> /.1/ /./> /.// /./> /./ / > 1/ 1> E/ E> 0/ 0> F/ F> >/
tiempo

/.1/ / > 1/ 1> E/ E> 0/ 0> F/ F> >/

tiempo

"ma!ucr!ie431!matlab8scilab!odt

"!M! Al aro

IE*431

Sistemas de control con Matlab y Scilab

3!3 E1emplo % * -istados de instrucciones Programa en Matlab


%%Sistemas de Control con Matlab %(control_herramientas.m) %V.M. Alfaro, 2004 % clear s=tf('s'); %vector de tiem os t=0!0."!#0; % %f$nci%n de transferencia, lanta & =".'(((s)")*(2*s)")*(4*s)")); % %f$nci%n de trans., controlador (+) &c=2.'; % %f$nci%n de trans. de la,o a-ierto &la=&c*& ; % %f$nci%n de trans. de la,o cerrado &lc=feed-ac.(&la,"); % %$so de las herramientas de control fi&$re(") set(",'/ame','An0lisis de $n sistema de control con varias herramientas') % %res $esta a $n escal%n $nitario %la,o cerrado s$- lot(2,2,") ste (&lc,t),&rid on title('1es $esta a $n scal%n $nitario') 2la-el('tiem o'),3la-el('3(t)') % %l$&ar de las ra4ces (561) s$- lot(2,2,2) rloc$s(&la);s&rid(70.8' 0.49,7" ".'9) % %dia&rama de /3:$ist s$- lot(2,2,#) n3:$ist(&la) % %dia&rama de ;ode s$- lot(2,2,4) -ode(&la),&rid on

Programa en Scilab
//Sistemas de Control con Scilab (((control_herramientas.sce) ((V.M. Alfaro, 2004 (( clear s= ol3(0,'s'); ((vector de tiem os t=0!0."!#2; (( ((f$nci%n de transferencia, lanta & =".'(((s)")*(2*s)")*(4*s)")); (( ((f$nci%n de trans., controlador (+) &c=2.'; (( ((f$nci%n de trans., la,o a-ierto &la=&c*& ;&las=s3slin('c',&la); (( ((f$nci%n de trans. la,o cerrado &$=";&lc=&la(.&$; &lcs=s3slin('c',&lc); (($so de las herramientas 2set('<indo<',") 2name('An0lisis de $n sistema de control con varias herramientas') (( ((res $esta a $n escal%n $nitario ((la,o cerrado s$- lot(2,2,"),2&rid(4) lot2d(t,csim('ste ',t,&lcs),st3le=2 ) 2title('1es $esta a $n scal%n $nitario','tiem o','3(t)') (( ((l$&ar de las ra4ces (561) s$- lot(2,2,2),2&rid(4) evans(&las,2.') s&rid(70.8' 0.49,70.' 0.8'9,2) (( ((dia&rama de /3:$ist s$- lot(2,2,#) n3:$ist(&las) (( ((dia&rama de ;ode s$- lot(2,2,4) -ode(&las,0.00","0)

"ma!ucr!ie431!matlab8scilab!odt

"!M! Al aro

IE*431

Sistemas de control con Matlab y Scilab

3!4 E1emplo % * Salida 3r ica


5as siguientes "iguras permiten estudiar el comportamiento dinmico, la estabilidad ! otras caracter'sticas del sistema de control. 3!4!1 5r icos en Matlab

"ma!ucr!ie431!matlab8scilab!odt

"!M! Al aro

IE*431

Sistemas de control con Matlab y Scilab

1&

/.F

3!4!% 5r icos en Scilab


/..> 1.E 1./ /.I /.= /.F /.E tiempo /./ / F I 1E 1= E/ EF EI 0E !(t) ?espuesta a un scaln unitario E&ans root locus 9mag. a;is 1./ /..> open loop poles /.I /.= /.> as!mptotic directions /.F /.E /./ /.E /.F /.= /.I ?eal a;is 1./ 1.J 1.. 1.> 1.0 1.1 /.J /.. /.> /.0 /.1 /.1 Magnitude

E/ db 9m(h(EiKpiK")) / 0 /./E> E/ /./0= /./1. F/ E /./>E =/ I/ 1// 1 1E/ 0 E /.//E 1/// 1/ 1/ / E/ degrees E/ 1 /./=1 =/ 1// /./10 1F/ E /./F1 1I/ /./EJ /./E1 ?e(h(EiKpiK")) EE/ E=/ 0 0// 0 E 1 / 1 E 0 F 1/ 1/ N!#uist plot

Lz
1 / 1

1/ $hase

1/

1/

Lz
1 / 1

1/

1/

1/

"ma!ucr!ie431!matlab8scilab!odt

"!M! Al aro

También podría gustarte