Control1 Guiguia a Lab

Embed Size (px)

DESCRIPTION

guia

Citation preview

Document

GuadePracticasdeLaboratorioTeoradeControlAutomatico1Preparado por:Ing. Juan CutipaIng. Oscar SalazarIng. Daniel Yanyachi30de mayo de 2008

Indice general1.Introduccion al Matlab12.Simulacion numerica63.Respuesta en frecuencia de los Sistemas de Control Automatico104.Respuesta Temporal de los Sistemas de Control Automatico135.Estabilidad de los Sistemas de Control Automatico18A.Tutorial Basico de Matlab21i

Indice de guras1.1.Escalon Unitario y Peine de Dirac........................52.1.Diagrama de Bloques...............................83.1.Suspension simple. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .103.2.Filtro Activo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .113.3.Sistema Controlado................................124.1.Modelo dinamico de un motor DC. . . . . . . . . . . . . . . . . . . . . . . .134.2.Respuesta escalon del sistema controlado . . . . . . . . . . . . . . . . . . . .164.3.Diagrama de Bloques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .164.4.Curva de respuesta escalon unitario.. . . . . . . . . . . . . . . . . . . . . . .164.5.Sistema mecanico.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .175.1.Amplicador con realimentacion negativa. . . . . . . . . . . . . . . . . . . .185.2.Diagrama de bloques del sistema de control. . . . . . . . . . . . . . . . . . .19ii

Indice de tablas4.1.Coecientes para el modelo dinamico del motor DC . . . . . . . . . . . . . .14iii

Captulo 1Introduccion al Matlab1.Repetir y ejercitar los siguientes comandos en Matlab.Denicion de una constante:a=1b=[1 2]Escribiendo numeros complejos:a=2+ib=-5-3*iExpresion booleana:a==1Vector constante:v=[1 2 3 4 5]ov=1:5Matriz constante:A=[2 2 300759-1]oA=[2 2 3;0 0 7;5 9 -1]Podemos formar matrices usando operaciones con objetos denidos anteriormente:a=1;b=2;Observe que si colocamos punto y coma al nal de la expresion, el resultado no esmostrado en la pantalla, lo que puede ser conveniente en algunas situaciones.1

A=[a+b pi 3b^2 0 atan(a)5sin(b) -1]Podemos formar matrices y vectores de zeros:B=zeros()Matriz de zeros con 2 las y 3 columnas:B=zeros(2,3)Matriz de zeros con las dimensiones de la matriz A:A=[2 2 3;0 0 7;5 9 -1];B=zeros(A)De modo semejante, podemos formar matrices y vectores de unos:Matriz de unos con 2 las e 3 columnas:C=ones(2,3)Matrices diagonales:Matriz diagonal con los elementos da diagonal principal yendo de 1 a 5:D=diag(1:5)Extrayendo los elementos de la diagonal principal:A=[1 2 3456789]B=diag(A)Formandounamatrizdiagonalconloselementosdeladiagonalprincipaldeunamatriz:C=diag(diag(A))Operaciones: Matriz identidad:A=diag(ones(1,3))oA=eye(3)Suma de matrices (recuerde las matrices deben tener la misma dimension):B=A+ASumar 1 a todos los elementos de una matriz:C=B+12

Multiplicacion de matrices:A=[1 2 3;4 5 6;7 8 9]C=[1 2 0;0 0 1;0 2 3]D=A*CMultiplicacion elemento a elemento:A=[1 0 0;0 2 3;5 0 4]B=[2 0 0;0 2 2;0 0 3]C=A.*BExtraccion de la la 2:a=C(2,:)Extraccion da columna 3:b=C(:,3)Traza de una matriz:A=[1 2 3; 4 5 6; 7 8 9]t=trace(A)Rank (rango) de una matriz:r=rank(A)Matriz transpuesta:B=A'Inversa de una matriz:A=[0 1;-2 -3]B=inv(A)A*BDeterminante de una matriz:d=det(A)Polinomios:Polinomio p1 con races en 0 e -1:v=[0 -1]p1=poly(v)Polinomio p2 con coecientes 1 e 2 e 1:3

p2=poly([1 2 1])Calculo de races:p=roots(p1)Autovalores e autovectores (eigenvalues and eigenvectors):Autovalores:A=[0 1;-2 -3]r=eig(A)% r vector de autovaloreso[V,D]=eig(A)% produce un matriz diagonal D de autovalores% y una matriz completa V cuyas columnas son% sus correspondientes autovectores. Asi (A*V=V*D)Funciones:function[y]=mifuncion(x)% definimos un archivo mifuncion.mif x10,x >20px21+x22en los demas casos(1.2)Haga un .m le que ayude a encontrar el mnimo def(x)=x32x5, dentro delintervalo (0,2)Construya una se~nal escalon unitario, de 0 a 50 segundos, constepinicial en 25 s. Elpaso debera ser de 0.5s. Plotee el resultadoConstruya una se~nalpeine de diracPlotee el resultado.5

Captulo 2Simulacion numerica1.Ecuaciones diferenciales (Repetir la siguiente actividad) Determine la solucion de la ecuacion diferencial _y=[1y(t)] 2usando el metododeEuler. Plotear el graco dey(t)en funcion det, y el graco de la solucion exactaye(t)en funcion det.instante inicial:t=0instante nal :tf=10solucion exacta de la ecuacion diferencial:ye(t)=1e(1t=2)Primero, implementamos la funcion en edo1.mfunction [ydot]=edol(y)ydot=(1-y)/2;Segundo, cree el archivo euler ode1.m t(1)=0;% Instante inicialtf=10;% Instante finaly(1)=0;% Condicion inicialye(1)=0;% Valor inicial de la soluccion exata%%Paso de integracion (experimente alterar el paso):h=0.5;% Calculo de numero de pasos):n=round(tf/h);% Integracion numerica usando el metodo de Euler:% Comando for:for i=1:n% Vector de tiempo:t(i+1)=t(i)+h;% Vector ydot (derivada en el tiempo de y):ydot(i)=edol(y(i));% Solucion numerica:y(i+1)=y(i)+h*ydot(i);% Solucion exata:6

ye(i+1)=1-exp(-t(i+1)/2);% Finaliza comando for:end% Determinacion del ultimo termino del vector ydot:ydot(n+1)=edol(y(n+1));% Ploteando la solucion exata 'ye' y la solucion numerica 'y', ambos versus el vetor de tiempo 't':plot(t,y,t,ye,'r:');% Colocando una leyenda en la parte superior derecha de la figura:legend('solucion exacta','solucion numerica - Euler')% Colocando titulo en la parte superior y etiquetas en las coordenadastitle('Comparacion entre la solucion exata y la solucion numerica')xlabel('Tiempo (s)')ylabel('Amplitud ()')Para ejecutar la simulacion, en el workspace digiteeuler ode1 Obs:Losarchivos.mdebenserguardadoseneldirectoriodetrabajo,quegeneralmentees: C:nMATLAB6p5nworkComentario:UnodelosmetodosnumericosmasusadoseselmetodoRungeKuttadecuartaorden(RK4),quebrindasolucionesmasexactasencomparacionconelmetodoEuler.2.Repita las instrucciones, le ayudara a entender como introducir funciones de transfer-encia (LTI) en matlab:Denimos nuestro sistema expresado por la F.T.H(s)=1=(s+1)h=tf(1,[1 1])Denimos nuestro sistemaGexpresado en espacio de estados:_x=Ax+Buy=Cx+Dug=ss([0 1;-5 -2],[0;3],[0 1],0)Obtenciondel numerador y denominador de la F.T.a partir delas matricesA;B;CyD(matrices del modelo en espacio de estados).[num,den]=ss2tf([0 1;-5 -2],[0;3],[0 1],0)Principales gracas para facilitar el analisis de sistemas LTI.g = tf([16],[1 9 16]) % definimos nuestro sistemasubplot(2,2,1)bode(g)% grafico de bodesubplot(2,2,2)pzmap(g)% grafico de polos y zerossubplot(2,2,3)step(g)% respuesta escalon unitariosubplot(2,2,4)nyquist(g)% grafico de nyquist7

3.Ejercicio:realicelasimulacionnumericadelaecuaciondiferencialdescritaenelitem1.EstavezimplementeelalgoritmoRK4,envezdelmetodoEuler.Hagaunacomparacionentre las soluciones: Exacta, Euler y RK4.4.Ejercicio: repetir 1, usando la ecuacion diferencial (no-lineal) siguiente:_y=2;5[y(1y)]y(0)=0;9Condicion inicialh=0;85Pasotf=600sInstante nal(2.1)5.Ejercicio: reducir el diagrama de bloques de la gura 2 y expresar la funcion de trans-ferencia entreCyRen funcion de (G1,G2yH)Figura 2.1: Diagrama de Bloques.6.Ejercicio:elpropositodeestosejerciciosesfamiliarizarseconlasfuncionesdetransfer-encia,surepresentacionyrespuesta.Ud.podraexplorarlarelacionentrelalocalizacionde polos y zeros, la respuesta temporal y la respuesta frecuencial. Por tanto, para lassiguientes funciones de transferencia graque (i) el diagrama de polos y zeros, (ii) eldiagrama de bode y (iii) la respuesta escalon unitario:a)Sistema de primer ordenH1(s)=1 s+1b)Sistema de segundo orden (se adiciono un polo a una frecuencia mas elevada)H2(s)=2 (s+1)(s+2)c)Sistema de primer orden (adicionamos un zero, primero en el RHP (semiplanoderecho), luego en el LHP (semiplano izquierdo))H3(s)=1 2s2 s+1H4(s)=1 2s+2 s+1d)El siguiente sistema es un sistema de segundo orden, con!n=5 y=0;2H5(s)=25 s2+2s+25e)Ahora adicionamos un zero sobre el origen. (No olvide quesen el dominio de lafrecuencia corresponde ad=dten el dominio del tiempo)H6(s)=25s s2+2s+258

f)Ahora adicionamos un zero a 5rad=sH7(s)=5(s+5) s2+2s+25g)UntercerpoloesadicionadoaH5,primeroabajafrecuencia,luegoaaltafrecuencia.H8(s)=25 (s+1)(s2+2s+25)H9(s)=125 (s+5)(s2+2s+25)9

Captulo 3Respuesta en frecuencia de losSistemas de Control Automatico Figura 3.1: Suspension simple.1.Para nes didacticos, iremos analizar la respuesta en frecuencia de un sistema de sus-pension de automovil.%//////////////////////////////////////////////% Sistema de Suspension //% /////////////////////////////////////////////clear % borra las variables antiguas% /////////////////////////////////////////////%Parametrosm=250; % masa suspensa (kg)k=10000; % rigidez del resorte (N/m)b=316.23; % amortecimiento (Ns/m)%Matrices del sistemaA=[0 1;-k/m -b/m];B=[-1;b/m];C=[-k/m -b/m];D=[b/m];%Sistema en el espacio de estadosG=ss(A,B,C,D);%Respuesta en frequencia%Diagrama de Bode del sistema (observe las escalas de los graficos):10

bode(G)%La escala horizontal es logaritmica, y muestra la frequencia en rad/s.%La escala vertical del grafico superior es lineal, y muestra la%ganancia en db.%La escala vertical del grafico inferior es lineal y muestra la fase%en grados.% Matlab asigna valores por defecto a nuestro grafico de Bode, el Matlab% mostro que la amplitud de la ganancia esta entre -0db e +40db, la% fase esta entre -90 e 90 grados, y que la frequencia esta entre 10 y% 1000 rad/s. Vamos construir un vector w donde el logaritmo de la% distancia entre un valor y otro es constante, comenzando en 10% elevado a (-3), terminando en 10 elevado a (4), con 2000 puntos, y% convencionando que la unidad es rad/s:w=logspace(-3,4,2000);% Determinamos los vetores de magnitud y fase,[mag,phase]=bode(G,w);% mag y fase son arrays de 3 dimensiones, esto quiere decir que la% funcion bode trabaja con sistemas multivariable (MIMO)% Entonces, para nuestro caso, debemos solo capturar el vector% correspondientemag=mag(1,:);phase=phase(1,:);% Plotenado el Bode de gananciasubplot(2,1,1)semilogx(w,20*log10(mag)) % semilogx realiza un plot semilogaritmicoaxis([10^-3 10^4 -70 60]) % definimos los margenes de la ventanagrid% rejilla% Ploteando el Bode de fasesubplot(2,1,2)semilogx(w,phase) % semilogx realiza un plot semilogaritmicoaxis([10^-3 10^4 -100 100]) % definimos los margenes de la ventanagrid% rejilla2.Ejercicio: Encuentre la respuesta en frecuencia del ltro activo mostrado en la gura2.Encuentre el Margen de Fase (MF) y el Margen de Amplitud (MA).Figura 3.2: Filtro Activo.3.Ejercicio:Dadalasiguienteestructuradecontrol(vergura3),dondeG(s)eslaplantaqueseracontroladaporelcontroladorGc(s).Sedebepredecireldesempe~nodelsistema11

enlazocerrado(LC)apartirdelanalisisenlazoabierto(LA).Portantosedebeteneren consideracion los siguientes items: El sistema debe mostrarse estable en LC a partir de los diagramas de Bode delsistema en LA. La frecuencia crossover de la ganancia (Wcg)debe ser menor que la frecuenciacrossoverdelafase(Wcf).EstoesWcgCual es el efecto de la accion proporcional?b)Accion Proporcional Integral (PI)clear allh=pidmotor(1.79,20,0)t=0:0.001:0.3;% tiempo de la simulacionstep(h,t)xlabel('Tiempo (s)')ylabel('Posicion (rad)')gridIncremente el valor deKI, primero a 50, luego a 200.Observe. >Cual es el efecto de la accion integral?.En los casos anteriores, el tiempo de acomodacion es muy largo. Para reducirloy obtener una respuesta mas rapida, hacemos las modicacionesKP= 17 yKI=200.c)Accion Proporcional Integral Derivativo (PID)Enelultimocaso,obtuvimosunarespuestarapida,peroelovershootincrementodemasiado.Portanto,parareduciresteefecto,introduciremoslaaccionderivativa.Con los datosKP=17,KI=200 yKD=0;15obtenemos:clear allh=pidmotor(17,200,0.15)t=0:0.001:0.3;% tiempo de la simulacionstep(h,t)xlabel('Tiempo (s)')ylabel('Posicion (rad)')gridObserve. >Cual es el efecto de la accion derivativa?Finalmente hemos alcanzado las especicaciones de dise~no de controlador. El re-sultado muestra unovershootpor debajo de 16%, un tiempo de acomodacioninferior a 40msy no hay error en regimen permanente.2.Dado el sistema de segundo orden descrito en la Ec. (5),H(s)=!2n s2+2! sn+!2n(4.5)ploteeel mapa de polos y la respuesta temporal para los siguientes casos.i)=0;7y!n=[0:0;25:4] rad/sii)=0;5y!n=[0:0;25:4] rad/siii)=[0:0;25:3] y!n=2 rad/siv)=[0:0;25:3] y!n=3 rad/s15

0 0.02 0.04 0.06 0.08 0.1 0 0.2 0.4 0.6 0.8 1 Tiempo (s)Posicion (rad)Figura4.2:Respuestaescalondelsistemacon-trolado (S) G(S)PID(S) +V(S)R(S)Voltaje aplicadoVelocidad de salidaVelocidad deseadaFigura 4.3: Diagrama de BloquesRecomendaciones:Useelvectort=[0:0;1:5]segundosparalarespuestatemporal.Comente el comportamiento del sistema cuando essubamortiguado,sobreamortiguadoy cuando= 1, comente tambien cual es el comportamiento del sistema cuando seincrementa el valor de la frecuencia natural!n.3.Plotee la respuesta temporal del sistema:G(s)=2600 4s4+128s3+1053s2+1990s+2600(4.6)Identiqueyetiquetelosvaloresenelgraco:tr,t tpsyMp.Uselanotacionsiguiente(adoptado de OGATA, 1998, 3ra Edicion): tr: tiempo de levantamiento (rise time), es el tiempo requerido para que la re-spuesta pase del 10% al 90%, del 5% al 95% o del 0% al 100% de su valornal. tp: tiempo de pico (peak time), es el tiempo requerido para que la respuestaalcance el primer pico maximo.Figura 4.4: Curva de respuesta escalon unitario.16

Figura 4.5: Sistema mecanico. ts: tiempo de asentamiento (settling time), es el tiempo requerido para que larespuesta entre en la barrera detolerancia permisible.Dicha barrera esta , por logeneral, entre 2 a 5% del valor nal. Mp:sobrepasomaximo(overshoot),eselvalordelarespuestaensupicomaximo,generalmente expresado en%, de acuerdo a la relacion siguiente:Mp(%)=c(tp)c(1) c(1)100%(4.7)4.Considere el sistema de la ecuacion (5). Determine los valores dey!npara que elsistema responda a una entrada escalon con un sobrepaso de aproximadamente 5%y con un tiempo de asentamiento (ts)de 2 segundos. (Use el criterio de 2% para latolerancia permisible.Compare con los resultados analticos)5.Implemente una nueva funcion (similar a la funcion pidmotor del item 1). Usando esanueva funcion, encuentre los parametros del controlador PID (KP,KIyKD)para elsistema mecanico siguiente:X(s) F(s)=1 ms2+bs+k(4.8)donde:m=2 kg (masa del movil)b=15 Ns=m (coef. del amortiguador)k=25 N=m (coef. del resorte)Recomendacion:Elsistemacontroladodeberatenerunarespuestarapida(t