Ejemplo de Compensacion Con Matlab
Ejemplo de Compensacion Con Matlab
Ejemplo de Compensacion Con Matlab
$a entrada %n ulo de de"le&in del ele#ador! delta e' ser ()* rad %++ rados'! , la salida es el n ulo de inclinacin #ertical %t-eta') $os re.uerimientos de diseo son
/obrepico: Menor .ue el +(0 1iempo de /ubida: Menor .ue 2 se undos 1iempo de establecimiento: Menor .ue +( se undos Error de estado estacionario: Menor .ue el *0
3ara #er las condiciones ori inales del problema! re"irase por "a#or a Control de Inclinacin : Modelacin)
Des raciadamente! este sistema es inestable a lazo abierto6 sin embar o! toda#5a podemos disear el sistema de realimentacin #ia mtodo de respuesta en "recuencia %a pesar .ue esta podr5a no ser la manera ms sencilla') 3rimero! eneremos el dia rama de 7ode a lazo abierto , #eamos cmo se #e) Cambie el arc-i#o4m al si uiente , #uel#a a ejecutarlo en la #entana de comandos del Matlab) Deber5a #erse un dia rama de 7ode similar al de abajo:
num=[1.151 0.1774]; den=[1 0.739 0.921 0]; bode (num,den)
De los re.uerimientos de diseo! podemos determinar .ue la "recuencia natural %8n' debe ser ma,or .ue ()9 , el coe"iciente de amorti uamiento %zeta' debe ser ma,or .ue ()2* %re"irase por "a#or a Control de Inclinacin: Mtodo del $u ar de Ra5ces para ma,ores detalles') :sando las dos ecuaciones de abajo! #emos .ue el ancho de banda y el margen de fase deben ser mayores que 0.9 y 52 grados! respecti#amente)
; ; ; ; ;
1r < 1iempo de /ubida 8n < Frecuencia natural 78 < Anc-o de banda zeta < Coe"iciente de amorti uamiento 3M < Mar en de "ase
A-ora tenemos el anc-o de banda de + rad=se ) , el mar en de "ase de >( rados) Estos #alores estn dentro de nuestra re in deseada) ?ra"i.uemos la respuesta a lazo cerrado al escaln , #eamos cmo se #e) 7orre el comando bode del arc-i#o4m anterior , a re ue los si uientes comandos) $ue o de correr este nue#o arc-i#o4m le deber5a dar la si uiente lazo cerrado respuesta al escaln :
como puede #er! la respuesta transitoria es peor ,a .ue resulta en un tiempo de establecimiento lar o) Implementaremos un compensador en adelanto para mejorar la respuesta del sistema)
Compensador en Adelanto
En re"erencia a la seccin de @Compensador por adelanto o atraso mediante respuesta en "recuencia@ en la p ina Compensador en Adelanto , Atraso! un compensador en adelanto #a a a re ar un "ase positi#a al sistema) :na "ase positi#a adicional incrementa el mar en de "ase6 por lo tanto! incrementar el amorti uamiento) El tiempo de establecimiento decrecer5a como resultado de este incremento en el amorti uamiento) $a "uncin de trans"erencia de un t5pico compensador de primer orden en adelanto es
Aecesitamos -allar alead! Tlead , lead) 3rimero! puede usarse el re.uerimiento de mar en de "ase , la si uiente ecuacin para -allar alead
Como es necesario tener un mar en de "ase de ma,or .ue 2* rados! alead debe ser ma,or .ue >)BC) :sando este alead! el re.uerimiento de anc-o de banda ma,or .ue ()9 , la si uiente ecuacin nos lle#a a tener un Tlead menor .ue ()C>*)
3or a-ora -a a lead i ual a ()+! alead i ual a +(! , Tlead i ual a ()C! in rese los si uientes comandos a un arc-i#o4m nue#o)
num=[1 151 0.1774]; den=[1 0.739 0.921 0]; !le!d=10; "le!d=0.3; !le!dtle!d=!le!d*"le!d; #=0.1; numle!d=#*[!le!dtle!d 1]; denle!d=["le!d 1]; num1=con$(num,numle!d); den1=con$(den,denle!d); bode(num1,den1) [numc,denc]=cloop(num1,den1,-1); de=0.2; t=0 0.01 10; %&'u(! step (de*numc,denc,t)
Corriendo este arc-i#o4m! la #entana de comandos del Matlab le da el si uiente dia rama de 7ode , respuesta al escaln)
A pesar .ue tanto el anc-o de banda cuanto el mar en de "ase se -an incrementado! la respuesta aDn no satis"ace los re.uerimientos de diseo) Incrementemos alead , bajemos Tlead) $ue o de #arias ejecuciones de prueba , error! se encontraron un alead de *((! Tlead de ()((*2! , lead de ()(2 ! lo .ue arroj el si uiente compensador en adelanto!
.ue pro#ee la respuesta transitoria deseada) 3ara #er la respuesta al escaln , el correspondiente dia rama de 7ode! in rese los si uientes comandos en un arc-i#o4m , ejecDtelo en la #entana de comandos) Deber5an #erse el dia rama de 7ode , la respuesta al escaln de abajo:
num=[1 151 0.1774]; den=[1 0.739 0.921 0]; !le!d=200; "le!d=0.0025; !le!dtle!d=!le!d*"le!d; #=0.05; numle!d=#*[!le!dtle!d 1]; denle!d=["le!d 1]; num1=con$(num,numle!d); den1=con$(den,denle!d); bode(num1,den1) [numc,denc]=cloop(num1,den1,-1); de=0.2; t=0 0.01 10; %&'u(! step (de*numc,denc,t)
/i compara dia rama de 7ode anterior con el ori inal! #er .ue el mar en de "ase , el anc-o de banda -an bajado) Incrementando ambos dos se mejora el tiempo de ele#acin! el sobrepico! , el tiempo de establecimiento! tal como se #e en el r"ico de respuesta al escaln de arriba) 3ara mejorar el error de estado estacionario! a re aremos un compensador en atraso al sistema)
Compensador en Atraso
En re"erencia a la seccin @Compensador en Atraso o en atraso de "ase mediante respuesta en "recuencia@ de la p ina Compensador en Adelanto , Atraso ! un compensador en atraso reduce el error de estado estacionario) $a "uncin de trans"erencia de primer orden t5pica de un compensador en adelanto es
El error de estado estacionario ser reducido en un "actor de alag) De la respuesta al escaln anterior! #emos .ue el error de estado estacionario es cercano al +(0) 3or lo .ue es necesario .ue alag sea apro&imadamente ()+) Tlag deber5a ser ma,or .ue alag!Tlag por.ue este compensador no cambia demasiado la respuesta transitoria) $ue o de #arias ejecuciones de prueba , error! se encontraron un alag de ()+! un Tlag de *(! , un lag de +)2! los .ue dieron el si uiente compensador en atraso!
con la respuesta deseada) 3ara #er la respuesta al escaln , el correspondiente dia rama de 7ode! in rese los si uientes comandos a un arc-i#o4m nue#o) $ue o de correr este arc-i#o4m en la #entana de comandos le deber5a dar los dos r"icos de abajo:
num=[1 151 0.1774]; den=[1 0.739 0.921 0]; !le!d=200; "le!d=0.0025; !le!dtle!d=!le!d*"le!d; #=0.05; numle!d=#*[!le!dtle!d 1]; denle!d=["le!d 1]; num1=con$(num,numle!d); den1=con$(den,denle!d); "l!'=20; !l!'=0.1; !t=!l!'*"l!'; #2=1.5; numl!'=#2)!l!'*[!t 1]; denl!'=["l!' 1]; num2=con$(num1,numl!'); den2=con$(den1,denl!');
bode (num2,den2)
[numc2,denc2]=cloop(num2,den2,-1); %&'u(! step (0.2*numc2,denc2,t)
/i obser#a el dia rama de 7ode! la anancia en baja "recuencia -a crecido mientras el anc-o de banda se mantiene i ual) Esto le dice .ue el error de estado estacionario se -a reducido mientras .ue se mantu#o el misma tiempo de subida) $a respuesta anterior al escaln muestra .ue se -a eliminado el error de estado estacionario) A-ora todos los re.uerimientos de diseo se -an satis"ec-o)
"ser feedbac#
8e Eould liFe to -ear about di""iculties ,ou -ad Eit- t-e tutorials! su estions ,ou -a#e "or impro#ement! errors ta-t ,ou "ound! or an, ot-er comments t-at ,ou -a#e) 1-is "eedbacF is anon,mous6 include ,our email address i" ,ou Eant a repl,)
Submit Feedback
Reset
Tutoriales
Matlab 7sico G Modelacin G 3ID G $u ar de Ra5ces G Respuesta en Frecuencia G Espacio de Estado G Control Di ital G Ejemplos
%Ogata K, Ingeniera de Control Moderna %Tercera Edicion %E emplo !"#, pag" $#% %--------------------------------------------close all&clear all&clc& 'print'()-------------------------------------------*n)+ 'print'()Diseo de un Compensador de Atraso-Adelanto*n)+ 'print'()Ogata K, Ingeniera de Control Moderna*n)+ 'print'()Tercera Edicion*n)+ 'print'()E emplo !"#, pag" $#%*n)+ 'print'()-------------------------------------------*n)+ %,e-uerimientos del sistemas ./012& M3D042&M5D042& %6lanta den1071 28& den%071 18& den#071 %8& den90con/(den1,den%+& den0con/(den9,den#+& ./a01:pol;/al(decon/(den,71 28+,2+& .0./:./a& num07.8& 'print'()*n<<6lanta del =istema<<*n)+ planta0t'(num,den+ %Diseo del COM6E>=ADO, DE AT,A=O DE 3A=E %Diagrama de ?ode de la planta @20logspace(-1,%,422+& 75an2,3ase280?ode(planta,@2+& 5andB20%2<log12(5an2+& %Aallamos el margen de 'ase ; ganancia @10logspace(-1,%,422+& 75an1,3ase180?ode(planta,@1+& 5and?10%2<log12(5an1+& %Margende 'ase indice10'ind(5and?1B02+& @cg10@1(indice1(1++& M303ase1(indice1(1++C1D2& %Margende ganancia indice%0'ind(3ase1B0-1D2+&
@c'10@1(indice%(1++& M50-5and?1(indice%(1++& %Margen deseado del compensador 3adic10-1D2CM3DC1%& %3recuencia del compensador indice#0'ind(3ase1B03adic1+& @gcomp0@1(indice#(1++& %Aallamos la ganancia de 'ase a esa 'recuencia 5an'05and?1(indice#(1++& %el compensador agrega ?eta012E(5an':%2+& %6ara asegurar una 'recuencia alta del compensador se Face T04:@gcomp& G1comp01:T& p1comp01:(?eta<T+& .1comp0.:?eta& numcomp0.1comp<71 G1comp8& dencomp071 p1comp8& Comp10t'(numcomp,dencomp+& =comp10series(planta,Comp1+& %COM6E>=ADO, DE ADEHA>TO DE 3A=E %6lanta C Compensador de Atraso @0logspace(-9,1,422+& 75an%,3ase%80?ode(=comp1,@+& 5and?%0%2<log12(5an%+& %Margen de 'ase IecIndice10'ind(5and?%B02+& Indice10IecIndice1(1+& Jogan0@(Indice1+& M3%03ase%(Indice1+C1D2& %3ase adicional 3adic%0M3D-M3%& %=e calcula el 'actor de atenuacion Al'a al'a0(1-sin(3adic%<pi:1D2++:(1Csin(3adic%<pi:1D2++& %>ue/o cruce de ganancia
%5anancia adicionada por el compensador r0%2<log12(1:s-rt(al'a++& IecIndice%0'ind(5and?%B0-r+& Indice%0IecIndice%(1+& Jm0@(Indice%+& T%01:7s-rt(al'a+<Jm 8& %parametros del compensador K%comp01:T%& 6%comp01:(al'a<T%+& .%comp01:al'a& numcomp%0.%comp<71 K%comp8& dencomp%071 6%comp8& Comp%0t'(numcomp%,dencomp%+& %6lanta Compensada 'print'()*n<<6lanta Compensada<<*n)+ plantacompensada0series(=comp1,Comp%+ %,espuesta en el Tiempo 'igure(1+&step('eed?ac.(planta,1++,Fold on, grid on step('eed?ac.(plantacompensada,1++ title(),espuesta en el Tiempo)+ legend()6lanta =in Compensador),)6lanta Compensada)+ %,espuesta en 3recuencia 'igure(%+&?ode(planta+,Fold on, grid on ?ode(plantacompensada+ title(),espuesta en 3recuencia)+ legend()6lanta =in Compensador),)6lanta Compensada)+ Compensacion BODE atraso
Programacin en Matlab Script: %--------------------------------------------%Diseo de un Compensador de Atraso %Ogata K, Ingeniera de Control Moderna %Tercera Edicion %Ejemplo !", pag! #"$ %--------------------------------------------close all%clear all%clc% &print&'(-------------------------------------------)n(* &print&'(Diseo de un Compensador de Atraso)n(* &print&'(Ogata K, Ingeniera de Control Moderna)n(*
&print&'(Tercera Edicion)n(* &print&'(Ejemplo !", pag! #"$)n(* &print&'(-------------------------------------------)n(* %+e,uerimientos del sistemas -./0% M12/34%M52/24% %6lanta den2/72 48% den"/72 28% den$/7!0 28% den3/con.'den2,den"*% den/con.'den3,den$*% -.a/29pol:.al'decon.'den,72 48*,4*% -/-.9-.a num/7-8% &print&'()n;;6lanta del <istema;;)n(* planta/t&'num,den* %<e =alla los .ectores de 5anancia : 1ase '&ase* >4/logspace'-",",044*% 75an,1ase8/?ode'num,den,>4*% 5and@/"4;log24'5an*% %Marge de &ase indice/&ind'5and@A/4*% >cgan/>4'indice'2**% M1/1ase'indice'2**B2C4% %Margende ganancia indice"/&ind'1aseA/-2C4*% >c&ase/>4'indice"'2**% M5/-5and@'indice"'2**% %Angulo de &ase 1adic/-2C4BM12B0% %@uscamos la &recuencia de corte >gc ,ue tenga esa &ase indice$/&ind'1aseA/1adic*% >gc/>4'indice$'2**% %5anancia de &ase a esa &recuencia de corte 5anD/5and@'indice$'2**% %AtenuaciEn del compensador ?eta/24F'5anD9"4*% %6ara asegurar una &recuencia alta del compensador se =ace T/09>gc% %6arGmetros del Compensador Hc/29T% pc/29'?eta;T*% -c/-9?eta% numc/-c;72 Hc8% denc/72 pc8% &print&'()n;;Compensador Diseado;;)n(* Comp/t&'numc,denc*
%6lanta Compensada &print&'()n;;6lanta Compensada;;)n(* plantacompensada/series'planta,Comp* %5rG&ica de @ode del Compensador en atraso %+espuesta en el Tiempo &igure'2*%step'&eed?ac-'planta,2**,=old on, grid on step'&eed?ac-'plantacompensada,2** title'(+espuesta en el Tiempo(* legend'(6lanta <in Compensador(,(6lanta Compensada(* %+espuesta en 1recuencia &igure'"*%?ode'planta*,=old on, grid on ?ode'plantacompensada* title'(+espuesta en 1recuencia(* legend'(6lanta <in Compensador(,(6lanta Compensada(*
close all*clear all*clc* +print+,--------------------------------------.n-/ +print+,-Diseo de un Compensador de Adelanto.n-/ +print+,-Ogata K, Ingenier a de Control !oderna.n-/ +print+,-"ercera #dicion.n-/ +print+,-#$emplo %&', pag& (').n-/ +print+,---------------------------------------.n-/ %0lanta num12*den13' 4 56* +print+,-.n770lanta del Sistema77.n-/ planta1t+,num,den/ %Re8uerimientos del sistemasDiseo k9145* !FD1)5*!:1)5* k9a1pol;9al,num,5/<pol;9al,decon9,den,3' 56/,5/* k1k9<k9a* %Se contin=a el diseo sobre plantaau>1k7planta numau>1k7num* denau>1den* plantaau>1t+,numau>,denau>/* %Se ?alla los 9ectores de :nancia ,gand@/ ; Fase ,+ase/ A1logspace,-',4,)55/*3gan,+ase61bode,numau>,denau>,A/* gand@1457log'5,gan/* %Se ?alla el margen de +aseB !F Cectindices1+ind,gand@D5/*indice19ectindices,'/*m+1'E5-,-+ase,indice//* % Se ?alla la +ase a compensarB Fadic Fadic1!FD-!FF)* %al+a al+a1,'-sin,Fadic7pi<'E5//<,'Fsin,Fadic7pi<'E5//*
%:anancia del Compensador r1457log'5,s8rt,'<al+a//* %Se ?alla la nue9a +recuencia de cruce de gananciaB An Cectindice41+ind,gand@D-r/*indice41Cectindice4,'/*Am1A,indice4/* %" "1'<s8rt,al+a/<Am* %0arGmetros del Compensador Hc1'<"*0c1'<al+a<"*Kc1k<al+a* +print+,-.n77Compensador Diseado77.n-/ Comp1t+,Kc73' Hc6,3' 0c6/ %0lanta Compensada +print+,-.n770lanta Compensada77.n-/ plantacompensada1series,planta,Comp/ %Respuesta en el "iempo +igure,'/*step,+eedback,planta,'//,?old on, grid on step,+eedback,plantacompensada,'// title,-Respuesta en el "iempo-/ legend,-0lanta Sin Compensador-,-0lanta Compensada-/ %Respuesta en Frecuencia +igure,4/*bode,planta/,?old on, grid on bode,plantacompensada/ title,-Respuesta en Frecuencia-/ legend,-0lanta Sin Compensador-,-0lanta Compensada-/ Resultados de la compilacin del programa: -----------------------------------------------------Diseo de un Compensador de Adelanto
Ogata K, Ingenier a de Control !oderna "ercera #dicion #$emplo %&', pag& (') ------------------------------------------------------770lanta del Sistema77 "rans+er +unctionB 2 --------sI4 F 4 s 77Compensador Diseado77 "rans+er +unctionB 25&J% s F 'KE&4 --------------s F 'K&E4 770lanta Compensada77 "rans+er +unctionB '('&) s F K'J ------------------------sIJ F '%&E4 sI4 F J)&() s
6A5I>A 6ODE,O=A
FttpL::.ontrol%altsupr"?logspot"com:%22M:2!:analisis-de-sistemas-de-control-r-l-c"Ftml