Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Ejercicio Bode Lab 3
Ejercicio Bode Lab 3
IE*431
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
"ma!ucr!ie431!matlab8scilab!odt
"!M! Al aro
IE*431
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.
IE*431
( 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.
G p s =
! los controladores sern*
1 5s1 2s1 s1
$roporcional (P)
G cP s =K c
1 Tis
1 T d s Tis
"ma!ucr!ie431!matlab8scilab!odt
"!M! Al aro
IE*431
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.
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
"ma!ucr!ie431!matlab8scilab!odt
"!M! Al aro
IE*431
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.
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
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
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
1.>
control P control PI control PD control PID
/.0>
control P
1./
GcH I, TiH I, TdH 1.> GcH I, TiH I, TdH 1.> /.> /.1/ /./> /.// /./> /./ / > 1/ 1> E/ E> 0/ 0> F/ F> >/
tiempo
tiempo
"ma!ucr!ie431!matlab8scilab!odt
"!M! Al aro
IE*431
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
"ma!ucr!ie431!matlab8scilab!odt
"!M! Al aro
IE*431
1&
/.F
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