Ejercicios Controladores Pid
Ejercicios Controladores Pid
Ejercicios Controladores Pid
Ejercicios de controladores
ndice
Ejemplo 1: Modelacin de un sistema de Control de Marcha Ejemplo 2: Modelacin de Velocidad del Motor de DC Reconocimiento Fsico y sistema de ecuaciones
Ejemplo 3: Modelacin de Posicin de un Motor de DC Ejemplo 4: Modelacin de un de Sistema de Suspensin Para un Bus usando Funcin de Transferencia Ejemplo 5: Modelacin de un Control de Inclinacin Ejemplo 6: Modelacin del Experimento Barra y Bola Valores propuestos para cada ejercicio Bibliografa
Usando la ley de Newton, las ecuaciones de modelado para este sistema son:
(1) Donde u es el esfuerzo del motor. Para este ejemplo, asumamos que: m = 1000kg b = 50N sec/m u = 500N Requerimientos de diseo El paso siguiente para modelar este sistema es incorporar algunos criterios de diseo. Cuando el motor proporciona una fuerza de 500 Newton, el auto alcanzar una velocidad mxima de 10 m/s (22 mph). Un auto debera poder
acelerar hasta esa velocidad en menos de 5 segundos. Como este es slo un sistema de control de marcha, un 10% de sobrepico en la velocidad no har mucho dao. Un 2% de error de estado estacionario es tambin aceptable por la misma razn.
Teniendo en mente lo anterior, hemos propuesto los siguientes criterios de diseo para este problema: Tiempo de subida < 5 seg. Sobrepico < 10% Error de Estado Estacionario < 2% Representacin en Matlab 1. Funcin de Transferencia Para hallar la funcin de transferencia del sistema continuo de arriba, necesitamos tomar la transformada de Laplace de las ecuaciones del modelo (1). Cuando se encuentra la funcin de transferencia, debe asumirse condiciones iniciales nulas. La transformada Laplace de las dos ecuaciones se muestra abajo.
Para resolver este problema usando Matlab. m=1000; b=50; u=500; num=[1]; den=[m b]; Respuesta a lazo abierto
Ahora veamos cmo responde el sistema a lazo abierto a una entrada escaln. Copie el siguiente comando al final del archivo-m escrito para la funcin de transferencia (el archivo-m con las matrices num y den) y ejectelo en la ventana de comandos del Matlab: step(u*num,den)
Funcin de transferencia a Lazo Cerrado Para resolver este problema y mejorar la performance del sistema, adicionaremos un controlador y una realimentacin unitaria. La figura que se muestra abajo es el diagrama en bloque de un sistema tpico.
La funcin de transferencia de la planta es la funcin de transferencia derivada arriba {Y(s)/U(s)=1/m.s + b}. El controlador se disear para satisfacer todos los criterios de diseo. Para la poder resolver el problema se usan controladores proporcional, integral y diferencial.
Control proporcional Funcin de transferencia a lazo cerrado con el controlador proporcional es:
Un controlador proporcional (Kp) decrementa el tiempo de elevacin. Por ahora, hagamos Kp igual a 100 y vea qu sucede con la respuesta. Representacin de los comandos utilizados para el programa. kp=100; m=1000; b=50; u=10; num=[kp]; den=[m b+kp]; t=0:0.1:20; step(u*num,den,t) axis([0 20 0 10]) Corriendo este programa en Matlab nos debe dar la siguiente respuesta al escaln.
Usando el comando cloop para hallar la respuesta a lazo cerrado directamente de la funcin de transferencia a lazo abierto. Si elige en hacerlo con el siguiente programa y debera obtenerse la misma figura coma la de abajo. kp=100; m=1000; b=50; u=10; num=[1]; den=[m b]; [numc,denc]=cloop(kp*num,den,-1); t = 0:0.1:20; step (u*numc,denc,t) axis([0 20 0 10]) Como puede ver del grfico, tanto el error de estado estacionario cuanto el tiempo de elevacin no satisfacen nuestros criterios de diseo. Puede incrementar la ganancia proporcional (Kp) para mejorar la salida del sistema. Cambiando Kp = 10000, Debera verse la figura siguiente.
Control PI La funcin de transferencia a lazo cerrado de este sistema de control de marcha con controlador PI es:
Un controlador integral al sistema elimina el error de estado estacionario. Por ahora, haga Kp = 600 y Ki = 1 y vea qu sucede con la respuesta. kp = 600; ki = 1; m=1000; b=50; u=10; num=[kp ki]; den=[m b+kp ki]; t=0:0.1:20; step(u*num,den,t) axis([0 20 0 10]) Para obtener la respuesta a lazo cerrado directamente de la funcin de transferencia a lazo abierto, ingrese los siguientes comandos en lugar de los que se muestran abajo: kp = 600; ki = 1; m = 1000; b = 50; u = 10; num = [1]; den = [m b]; num1= [kp ki]; den1= [1 0]; num2=conv(num,num1); den2=conv(den,den1); [numc,denc]=cloop(num2,den2,-1); t=0:0.1:20; step(u*numc,denc,t) axis([0 20 0 10]) Cualquiera sea el archivo-m que corra, debera obtenerse la siguiente salida:
Ahora ajustemos tanto la ganancia proporcional (Kp) cuanto la ganancia integral (Ki) para obtener la respuesta deseada. Cuando usted ajuste la ganancia integral (Ki), mejor que empiece con un valor chico, ya que grandes (Ki) casi siempre inestabilizan la respuesta.
Con Kp igual a 800 y Ki igual a 40, la respuesta al escaln lucir como la siguiente:
Como puede ver, esta respuesta al escaln cumple con todos los criterios de diseo. Control PID Para este ejemplo particular, no se requiri la implementacin de un controlador derivativo para obtener una salida acorde con lo requerido. Sin embargo, quisiera ver cmo trabajar con un controlador PID para futuras referencias. La funcin de transferencia a lazo cerrado de este sistema de control de marcha con el controlador PID es.
Hagamos Kp = 1, Ki = 1, y Kd = 1 . kp=1; ki=1; kd=1; m=1000; b=50; u=10; num=[kd kp ki]; den=[m+kd b+kp ki]; t=0:0.1:20; step(u*num,den,t) axis([0 20 0 10])
10
Luego de correr este programa nos debera dar la respuesta al escaln del sistema con el controlador PID. Ajuste los valores de Kp, Kd, y Ki hasta que obtenga resultados satisfactorios. Lo dejaremos como ejercicio para que lo trabaje. Sugerencia: Usualmente escoger ganancias adecuadas requiere de un proceso de prueba y error. La mejor forma de atacar este proceso es ajustar una sola variable (Kp, Kd, o Ki) a la vez y observar cmo cambiando slo esa, se influye en la salida del sistema.
11
Reconocimiento Fsico y sistema de ecuaciones El motor de DC es un actuador comn en control sistemas. Provee movimiento rotatorio directamente y, acoplado con ruedas dentadas o poleas y cables, puede proveer movimiento transicional. El circuito elctrico de la armadura y el diagrama de cuerpo libre del rotor se muestran en la siguiente figura:
Para este ejemplo, asumimos los valores siguientes para los parmetros fsicos. Estos valores se derivaron experimentalmente de un motor real del laboratorio de control para alumnos de grado del Carnegie Mellon.
momento de inercia del rotor (J) = 0.01 kg.m^2/s^2 coeficiente de amortiguamiento del sistema mecnico (b) = 0.1 Nms constante de fuerza electromotriz (K=Ke=Kt) = 0.01 Nm/Amp resistencia elctrica (R) = 1 ohm inductancia elctrica (L) = 0.5 H entrada (V): Fuente de Tensin salida (theta): posicin del eje el rotor y eje se consideran rgidos
El torque del motor, T, se relaciona con la corriente de armadura, i, por un factor constante Kt. La fuerza contra electromotriz (fme), e, se relaciona con la velocidad de rotacin mediante las siguientes ecuaciones
12
En unidades del sistema internacional SI (las que usaremos), la Kt (constante de armadura) es igual a Ke (constante del motor). De la figura de arriba podemos escribir las siguientes ecuaciones basadas en la ley de Newton combinado con la ley de Kirchhoff:
Funcin de Transferencia Usando Transformadas de Laplace, las ecuaciones del modelo de arriba pueden expresarse en trminos de s.
Eliminando I(s) podemos obtener la siguiente funcin de transferencia a lazo abierto, donde la velocidad de rotacin es la salida y el voltaje es la entrada.
Espacio de Estado En la forma espacio de estado, las ecuaciones de arriba pueden expresarse escogiendo la velocidad de rotacin y corriente elctrica como las variables de estado y la tensin como una entrada. La salida se elige que sea la velocidad de rotacin.
Requerimientos de diseo Primero, el motor sin compensar puede rotar solo a 0.1 rad/seg. Con una tensin de entrada de 1 Volt (esto se demostrar luego cuando se simule la respuesta a lazo abierto). Como el requerimiento ms bsico de un motor es que debe rotar a la velocidad deseada, el error de estado estacionario de la velocidad del motor debe ser menor que 1%. El otro requerimiento de performance es que
13
el motor debe acelerarse hasta su velocidad de estado estacionario apenas se encienda. En este caso, queremos tener un tiempo de establecimiento de 2 segundos. Como una velocidad mayor que la referencia podra daar el equipo, queremos tener un sobrepico menor que 5%. Si simulamos la entrada de referencia (r) con una entrada escaln unitario, entonces la salida velocidad del motor debera tener:
Tiempo de establecimiento menor que 2 segundos Sobrepico menor que 5% error de estado estacionario menor que 1%
Representacin en Matlab y respuesta a lazo abierto Funcin de Transferencia Podemos representar la funcin de transferencia anterior en Matlab definiendo las matrices numerador y denominador como sigue:
Programa para hallar la funcin de transferencia de lazo abierto. J=0.01; b=0.1; K=0.01; R=1; L=0.5; num=K; den=[(J*L) ((J*R)+(L*b)) ((b*R)+K^2)]; Ahora veamos qu hace el sistema original a lazo abierto. Agregue los siguientes comandos y ejecutarlo. step(num,den,0:0.1:3) title('Respuesta al Escaln del sistema a lazo abierto')
14
De la figura vemos que cuando se aplica 1 volt al sistema, el motor puede lograr solo una velocidad mxima de 0.1 rad/seg., diez veces menor que la velocidad deseada. Adems, el motor tiene 3 segundos para alcanzar su velocidad de estado estacionario; esto no satisface los 2 segundos del criterio de tiempo de establecimiento. Espacio de Estado Podemos tambin representar el sistema usando las ecuaciones de espacio de estado. Pruebe los siguientes comandos en un nuevo archivo-m. J=0.01; b=0.1; K=0.01; R=1; L=0.5; A=[-b/J K/J -K/L -R/L]; B=[0 1/L]; C=[1 0]; D=0; step(A, B, C, D) Corra este archivo-m en la ventana de comandos del Matlab, y obtenga la misma salida que la de arriba.
A partir del problema principal, las ecuaciones dinmicas y la funcin transferencia a lazo abierto del Motor de DC son:
15
Tiempo de establecimiento menor que 2 segundos Sobrepico menor que 5% Steady-stage error menor que 1%
Diseemos ahora un controlador PID adicionmoslo al sistema. Cree primero un archivo-m nuevo y tipee los siguientes comandos (pinche en Modelacin del motor de cc por detalles sobre estos comandos). J=0.01; b=0.1; K=0.01; R=1; L=0.5; num=K; den=[(J*L) ((J*R)+(L*b)) ((b*R)+K^2)];
Control proporcional Tratemos de usar primero un controlador proporcional con una ganancia de 100. Agregue el siguiente cdigo al final de su archivo-m:
16
Kp=100; numa=Kp*num; dena=den; Para hallar la funcin de transferencia a lazo cerrado, usamos el comando cloop . Agregue la siguiente lnea a su archivo-m: [numac,denac]=cloop(numa,dena); Note que numac y denac son el numerador y el denominador de la funcin de transferencia a lazo cerrado general. Ahora veamos cmo se ve la respuesta al escaln, agregue lo siguiente al final de su archivo-m, y ejectelo en la ventana de comandos: t=0:0.01:5; step(numac,denac,t) title('Respuesta al escaln con Control Proporcional') Debera obtenerse la figura siguiente:
Control PID De la figura de arriba vemos que tanto el error de estado estacionario cuanto el sobrepico son muy grandes. Recordemos del tutorial PID que incorporando un trmino integral se eliminar el error de estado estacionario y un trmino
17
derivativo reducir el sobrepico. Probemos un controlador PID con Ki y Kd pequeos. Modifique su archivo-m de manera que se sea ve lo siguiente. Luego de correr este nuevo archivo-m se da la figura siguiente. J=0.01; b=0.1; K=0.01; R=1; L=0.5; num=K; den=[(J*L) ((J*R)+(L*b)) ((b*R)+K^2)]; Kp=100; Ki=1; Kd=1; numc=[Kd, Kp, Ki]; denc=[1 0]; numa=conv(num,numc); dena=conv(den,denc); [numac,denac]=cloop(numa,dena); step(numac,denac) title('Control PID con pequeo Ki and Kd')
Sintonizacin de ganancias Ahora el tiempo de establecimiento es muy largo. Incrementemos Ki para reducir el tiempo de establecimiento. Regrese Al programa anterior y cambie K i a 200. Vuelva a ejecutar el archivo y debera obtenerse un grfico como ste:
18
Ahora vemos que la respuesta es mucho ms rpida que antes, pero el Ki grande ha empeorado la respuesta transitoria (gran sobrepico). Incrementemos Kd para reducir el sobrepico. Vuelva programa antgerior y cambie Kd a 10. Vuelva a correrlo para obtener este grfico:
Entonces sabemos que si usamos un controlador PID con Kp=100, Ki=200, Kd=10,
19
Para este ejemplo, asumimos los valores siguientes para los parmetros fsicos. Estos valores se derivaron experimentalmente de un motor real del laboratorio de control para alumnos de grado del Carnegie Mellon.
momento de inercia del rotor (J) = 0.01 kg.m^2/s^2 coeficiente de amortiguamiento del sistema mecnico (b) = 0.1 Nms constante de fuerza electromotriz (K=Ke=Kt) = 0.01 Nm/Amp resistencia elctrica (R) = 1 ohm inductancia elctrica (L) = 0.5 H entrada (V): Fuente de Tensin salida (theta): posicin del eje el rotor y eje se consideran rgidos
20
Ecuaciones del Sistema El torque del motor, T, se relaciona con la corriente de armadura, i, por un factor constante Kt. La fuerza contra electromotriz (fme), e, se relaciona con la velocidad de rotacin mediante las siguientes ecuaciones
En unidades del sistema internacional SI (las que usaremos), Kt (constante de armadura) es igual a Ke (constante del motor). De la figura de arriba podemos escribir las siguientes ecuaciones basadas en la ley de Newton combinado con la ley de Kirchhoff:
1. Funcin de Transferencia Usando Transformadas de Laplace las ecuaciones del modelo de arriba pueden expresarse en trminos de s.
Eliminando I(s) podemos obtener la siguiente funcin de transferencia, donde la velocidad de rotacin es la salida y la tensin es una entrada.
Sin embargo como durante este ejemplo estamos mirando a la posicin, como que es la salida. Podemos obtener la posicin integrando Theta Punto, por lo tanto solo necesitamos dividir la funcin de transferencia por s.
21
2. Espacio de Estado Estas ecuaciones pueden tambin representarse en la forma espacio de estado. Si elegimos posicin del motor, velocidad del motor, y corriente de armadura como las variables de estado, podemos escribir las ecuaciones como sigue:
Requerimientos de diseo Quisiramos poder posicionar muy precisamente al motor, entonces el error de estado estacionario de la posicin del motor debera ser cero. Adems quisiramos que el error de estado estacionario debido a una perturbacin tambin sea nulo. El otro requerimiento a la performance es que el motor alcance muy rpidamente su posicin final. En este caso, queremos tener un tiempo de establecimiento de 40ms. y un sobrepico menor que 16%. Si simulamos la entrada de referencia (R) por una entrada escaln unitario, entonces la salida velocidad del motor debera tener:
Tiempo de establecimiento menor que 40 milisegundos Sobrepico menor que 16% Error de estado estacionario nulo Sin error de estado estacionario debido a una perturbacin
Representacin en Matlab y respuesta a lazo abierto 1. Funcin de Transferencia Podemos poner la funcin de transferencia en Matlab definiendo el numerador y el denominador como vectores: Variables del programa: J=3.2284E-6; b=3.5077E-6;
22
K=0.0274; R=4; L=2.75E-6; num=K; den=[(J*L) ((J*R)+(L*b)) ((b*R)+K^2) 0]; Ahora veamos qu hace el sistema original a lazo abierto. Con la siguiente variable. step(num,den,0:0.001:0.2) Debera obtenerse la figura siguiente:
De la figura vemos que cuando se aplica 1 volt al sistema, la posicin del motor cambia en 6 radianes, seis veces mayor que la posicin deseada. Para una entrada escaln de 1 volt, el motor debe girar alrededor de 1 radian. Adems, el motor alcanza un estado estacionario que no satisface los criterios de diseo. A partir del problema principal las ecuaciones dinmicas en la forma funcin de transferencia son las siguientes:
23
Tiempo de establecimiento menor que 0.04 segundos Sobrepico menor que 16% No error de estado estacionario No error de estado estacionario debido a una perturbacin
Programa de la funcin de transferencia: J=3.2284E-6; b=3.5077E-6; K=0.0274; R=4; L=2.75E-6; num=K; den=[(J*L) ((J*R)+(L*b)) ((b*R)+K^2) 0]; Recordemos que la funcin de transferencia para un controlador PID es:
Control proporcional Tratemos de usar primero un controlador proporcional con una ganancia de 1.7. agregando al programa los siguientes comandos: Kp=1.7; numcf=[Kp]; dencf=[1]; numf=conv(numcf,num); denf=conv(dencf,den); Para hallar la funcin de transferencia a lazo cerrado, usamos el comando cloop . [numc,denc]=cloop(numf,denf);
24
Note que numc y denc son el numerador y el denominador de la funcin de transferencia a lazo cerrado general. Ahora veamos cmo luce la respuesta al escaln. Agregando como ultimo los comandos siguientes: t=0:0.001:0.2; step(numc,denc,t) Debera obtenerse la figura siguiente:
Veamos ahora la respuesta a una perturbacin escaln agregando los siguientes comandos: numdcl=conv(numc,1); dendcl=conv(denc,Kp); step(numdcl,dendcl,t); Debera obtenerse la figura siguiente:
25
Control PID De las figuras de arriba vemos que a pesar que el error de estado estacionario se v bien, el tiempo de establecimiento es muy grande, as como el sobrepico. Tambin vemos que el error de estado estacionario a una perturbacin es grande. Recordemos del PID, que incorporando un trmino integral se elimina el error de estado estacionario y un trmino derivativo reducir el sobrepico. Probemos primero el controlador PI para anular el error de estado estacionario a la perturbacin. Cambiar el archivo anterior por estos nuevos comandos: J=3.2284E-6; b=3.5077E-6; K=0.0274; R=4; L=2.75E-6; num=K; den=[(J*L) ((J*R)+(L*b)) ((b*R)+K^2) 0]; Kp=1.7; Ki=20; numcf=[Kp Ki]; dencf=[1 0]; numf=conv(numcf,num); denf=conv(dencf,den); [numc,denc]=cloop(numf,denf,-1); t=0:0.001:0.4; step(numc,denc,t) Debera obtenerse la siguiente respuesta al escaln:
26
Veamos que ha sucedido con la respuesta a una perturbacin escaln, agregue lo siguiente a su archivo-m: figure numdcl=conv(numc,dencf); dendcl=conv(denc,numcf); step(numdcl,dendcl,t); Debera obtenerse la figura siguiente:
Sintonizacin de ganancias
27
El tiempo de establecimiento todava es alto. Incrementemos las ganancias para acelerar la respuesta. Regrese a su archivo-m y cambie Ki a 200 y Kp a 17. Vuelva a ejecutar el archivo y obtenga grficos como estos:
Ahora vemos que la respuesta es ms rpida que antes, pero Ki ha estropeado la respuesta transitoria (sobrepico grande). Intentemos con un controlador PID para reducir el sobrepico. Regrese al programa anterior y efecte las siguientes modificaciones para ver la respuesta al escaln. Kp=17; Ki=200; Kd=0.15; numcf=[Kd Kp Ki]; dencf=[1 0]; numf=conv(numcf,num); denf=conv(dencf,den);
28
Vemos que nuestra respuesta al escaln se v realmente bin, tiene un sobrepico menor que el 16%, y el tiempo de establecimiento es cercano a los 40ms, y hay error de estado estacionario cero. Sin embargo la respuesta a una perturbacin escaln ahora es lentsima. Incrementemos Ki para acelerar la respuesta a la perturbacin. Modifique Ki a 600 y vuelva a correr el programa. Debera obtenerse los grficos siguientes:
29
Ejemplo 4.- Modelacin de un de Sistema de Suspensin para un Bus usando Funcin de Transferencia
Reconocimiento Fsico
El diseo de un sistema de suspensin automtico para un colectivo se vuelve un problema de control interesante. Cuando se disea el sistema de suspensin, se usa 1/4 del modelo del colectivo (una de las cuatro ruedas) para simplificar el problema a un sistema masa-resorte unidimensional. Abajo aparece un diagrama de este sistema:
30
Dnde: * masa del cuerpo (m1) = 2500 kg, * masa suspendida (m2) = 320 kg, * constante de elasticidad del sistema de suspensin(k1) = 80,000 N/m, * constante de elasticidad rueda y neumtico(k2) = 500,000 N/m, * constante de amortiguacin del sistema de suspensin(b1) = 350 Ns/m. * constante de amortiguacin rueda y neumtico(b2) = 15,020 Ns/m. * fuerza de control (u) = fuerza del controlador que estamos diseando. Requerimientos de diseo: Un buen sistema de suspensin debera tener un satisfactorio agarre al camino, que provea confort aun cuando transita sobre lomas y baches en la ruta. Cuando el colectivo est experimentando cualquier perturbacin en el camino (es decir, rajaduras, pavimento no balanceado),la carrocera del colectivo no debe sufrir grandes oscilaciones, y las mismas deben disiparse rpido. Como la distancia X1-W es muy difcil de medir, y la deformacin del neumtico(X2-W) se desprecia, usaremos la distancia X1-X2 en lugar de X1-W como la salida en nuestro problema. Tenga en cuenta que esta es una estimacin. La perturbacin del camino (W) en este problema se simular por una entrada escaln. Este escaln podra representar al colectivo saliendo de un pozo. Queremos disear un controlador realimentado de modo que la salida (X1-X2) tenga un sobrepico menor que 5% y un tiempo de establecimiento menor que 5 segundos. Por ejemplo, cuando el colectivo corre hacia un gran escaln de 10 cm, la carrocera del colectivo oscilar en un rango de +/- 5 mm y volver a una marcha suave dentro de 5 segundos.
Ecuaciones del movimiento: De la figura de arriba y de la ley de Newton, podemos obtener las ecuaciones dinmicas siguientes:
31
Ecuacin de Funcin de Transferencia: Asuma que todas las condiciones iniciales son nulas, as que estas ecuaciones representan la situacin de cuando las ruedas del colectivo suben una loma. Las ecuaciones dinmicas de arriba pueden expresarse en la forma de matriz de transferencia tomando Transformada de Laplace de las ecuaciones de arriba. La derivacin de las Funciones de Transferencia G1(s) y G2(s) de salida, X1-X2, y dos entradas, U y W, son como sigue.
Halle la inversa de la matriz A y entonces multiplique a derecha por las entradas U(s)y W(s) como lo siguiente:
Cuando queremos considerar una sola entrada U(s) , hacemos W(s) = 0. Por lo que obtenemos la funcin de transferencia G1(s) como sigue:
32
Cuando queremos considerar la entrada W(s) sola, hacemos U(s) = 0. Por lo que obtenemos la funcin de transferencia G2(s) como sigue:
Tambin podemos expresar y derivar las ecuaciones de arriba en la forma espacio de estado. A pesar que este procedimiento expresar las primeras dos ecuaciones arriba en la forma matricial estndar, se simplificar la funcin de transferencia sin pasar por el lgebra, porque podemos usar una funcin ss2tf para pasar de la forma espacio de estado a forma funcin de transferencia para ambas entradas
Ingreso de ecuaciones en Matlab Podemos poner las ecuaciones de Funcin de Transferencia de arriba en el Matlab definiendo el numerador y denominador de las Funciones de Transferencia en la forma, nump/denp para fuerza de entrada actuante y num1/den1 para la entrada de perturbacin , de la funcin de transferencia estndar G1(s) y G2(s): G1(s) = nump/denp G2(s) = num1/den1 Comandos del programa: m1=2500; m2=320; k1=80000; k2=500000; b1 = 350; b2 = 15020; nump=[(m1+m2) b2 k2]; denp=[(m1*m2) (m1*(b1+b2))+(m2*b1) (m1*(k1+k2))+(m2*k1)+(b1*b2) (b1*k2)+(b2*k1) k1*k2]; 'G(s)1' printsys(nump,denp) num1=[-(m1*b2) -(m1*k2) 0 0]; den1=[(m1*m2) (m1*(b1+b2))+(m2*b1) (m1*(k1+k2))+(m2*k1)+(b1*b2) (b1*k2)+(b2*k1) k1*k2];
33
'G(s)2' printsys(0.1*num1,den1)
Respuesta a lazo abierto Podemos usar Matlab para mostrar cmo evoluciona el sistema original a lazo abierto (sin ningn control por realimentacin). Agregue los siguientes comandos al programa y ejectelo para ver la respuesta a la fuerza actuante de entrada escaln unitario y tambin perturbacin de entrada escaln unitario .Note que el comando step generar las entrada escaln unitario para cada entrada. step(nump,denp)
De este grfico de la respuesta a lazo abierto para una fuerza actuante escaln unitario, podemos ver que el sistema es sub-amortigado. La gente sentada en el colectivo sentir apenas una pequea oscilacin y el error de estado estacionario ronda los 0.013 mm. Pero an, el colectivo se toma un inaceptablemente largo tiempo en alcanzar el estado estacionario o el tiempo de establecimiento es muy largo. La solucin a este problema es agregar un controlador realimentado en el diagrama en bloques del sistema. step(0.1*num1,den1)
34
Para ver algunos detalles, puede cambiar los ejes: axis([0 10 -.1 .1])
De este grfico de respuesta a lazo abierto para una perturbacin escaln de 0.1 m , podemos ver que cuando el colectivo pasa sobre una loma alta de 10 cm en el camino, la carrocera del colectivo oscilar por un tiempo inaceptablemente largo(100 segundos) con mayor amplitud, 13 cm, que el impacto inicial. La gente sentada en el colectivo no estar conforme con tal oscilacin. El gran sobrepico (del mismo impacto) y el lento tiempo de establecimiento causar dao al sistema de suspensin. La solucin a este problema es agregar un controlador realimentado en el sistema para mejorar la performance. El esquema del sistema a lazo cerrado es el siguiente:
35
De la funcin de transferencia y esquema de arriba, podemos dibujar el diagrama en bloques del sistema del colectivo como sigue:
Del esquema de arriba vemos que: Plant = nump/denp F * Plant=num1/den1 De modo que: F=num1/(den1*Plant)
Las ecuaciones que gobiernan el movimiento de un avin es un conjunto de seis ecuaciones diferenciales no lineales acopladas muy complicado. Sin embargo,
36
bajo ciertas consideraciones, pueden linealizarse y desacoplarse en las ecuaciones longitudinal y lateral. El control de Inclinacin es el problema longitudinal, y en este ejemplo, disearemos un piloto automtico que controla la elevacin de un avin (inclinacin entre cola y proa). Las coordenadas bsicas y las fuerzas actuantes en un avin se muestran en la figura de abajo:
Asuma que el avin est en estado nominal (crucero) a altitud y velocidad constantes; esto es, se cancelan el empuje y el arrastre, y el esfuerzo elevador y el peso se contrarrestan mutuamente. Adems, asuma que un cambio en el ngulo de inclinacin vertical no cambia la velocidad de un avin bajo ninguna circunstancia (no es lo real pero simplifica bastante el problema). Bajo estas consideraciones, la ecuacin longitudinal de movimiento del avin puede escribirse como:
(1) Para este sistema, la entrada ser el ngulo de deflexin del elevador, y la salida ser el ngulo de inclinacin vertical. Requerimientos de diseo El paso siguiente es establecer algunos criterios de diseo. Queremos disear un controlador realimentado de modo que la salida tenga un sobrepico menor que 10%, tiempo de subida menor que 2 segundos, tiempo de establecimiento menor que 10 segundos, y error de estado estacionario menor que 2%. Por ejemplo, si la entrada es 0.2 rad (11 grados), el ngulo de inclinacin vertical no exceder los 0.22 rad, llegando a 0.2 rad antes de los 2 segundos, y
37
permaneciendo dentro del 2% del estado estacionario a los 10 segundos, o sea permanece entre 0.196 a 0.204 rad. a partir del estado estacionario.
Sobrepico: Menor que el 10% Tiempo de Subida: Menor que 2 segundos Tiempo de establecimiento: Menor que 10 segundos error de estado estacionario: Menor que el 2%
Funcin de Transferencia y Espacio de Estado Antes de hallar la funcin de transferencia y el modelo en espacio de estado, introduzcamos algunos valores numricos para simplificar las ecuaciones del modelo (1) de abajo.
(2) Estos valores se tomaron de los datos de un avin comercial de la Boeing. 1. Funcin de Transferencia Para hallar la funcin de transferencia del sistema continuo de arriba, necesitamos tomar transformada de Laplace de las ecuaciones del modelo de arriba (2). Recordemos de su libro de control, cuando se halla la funcin de transferencia, debe asumirse condiciones iniciales nulas. La transformada de Laplace de las ecuaciones de arriba se muestra abajo
2. Espacio de estado Conociendo el hecho de que las ecuaciones del modelo (2) ya estn en la forma en variables de estado, podemos re-escribirlas en el modelo en espacio de estado.
38
Representacin en Matlab y respuesta a lazo abierto Obtengamos primero un sistema a lazo abierto a una entrada escaln y determinemos cules caractersticas del sistema necesitan mejorarse. Ponga la entrada (delta e) en 0.2 rad (11 grados). de=0.2; num=[1.151 0.1774]; den=[1 0.739 0.921 0]; step (de*num,den)
Corriendo este archivo-m, la ventana de comandos del Matlab le debera dar la figura siguiente.
39
De la figura, vemos que la respuesta a lazo abierto no satisface para nada el criterio de diseo. De hecho la respuesta a lazo abierto es inestable. El programa de arriba usa los valores numricos de la funcin de transferencia. Para usar el modelo en espacio de estado, ingresando los siguientes comandos en el programa anterior (en lugar del de abajo). de=0.2; A=[-0.313 56.7 0; -0.0139 -0.426 0; 0 56.7 0]; B=[0.232; 0.0203; 0]; C=[0 0 1]; D=[0]; step(A,B*de,C,D) Debera obtenerse la misma respuesta que la de abajo.
Para resolver este problema, se adicionar un controlador en realimentacin para mejorar la performance del sistema. La figura que se muestra abajo es el diagrama en bloque de un sistema tpico con realimentacin unitaria.
40
Debe disearse un controlador para que la respuesta al escaln satisfaga todos los requerimientos de diseo. En la Modelacin del Control de Inclinacin, la funcin de transferencia se deriv como
La entrada (ngulo de deflexin del elevador, delta e) ser 0.2 rad (11 grados), y la salida es el ngulo de inclinacin vertical (theta). Los requerimientos de diseo son
Sobrepico: Menor que el 10% Tiempo de Subida: Menor que 2 segundos Tiempo de establecimiento: Menor que 10 segundos error de estado estacionario: Menor que el 2%
Para estudiar la salida del sistema, implementaremos una combinacin de controladores proporcional (Kp), integral (Ki), y derivativo (Kd) en un sistema de realimentacin unitaria tal como se muestra abajo. Control proporcional Lo primero a resolver en este problema es hallar la funcin de transferencia a lazo cerrado con un control proporcional (Kp). sta puede obtenerse ya sea a mano o con la funcin del Matlab denominada cloop. Por cualquier mtodo, se obtendr la funcin de transferencia a lazo cerrado como:
Coeficientes numricos del numerador y denominador de la funcin de transferencia a lazo cerrado. Kp = [1]; %Ingrese cualquier nmero para la ganancia proporcional num = [1.151 0.1774]; num1= conv(Kp,num); den1= [1 0.739 0.921 0]; [numc,denc]=cloop (num1,den1)
41
Por ahora, haga la ganancia proporcional (Kp) igual a 2 y observe el comportamiento del sistema. Se usar la funcin de transferencia a lazo cerrado calculada a mano. Ingrese los siguientes comandos en el programa anterior y ejectelo en la ventana de comandos del Matlab. Debera obtener la respuesta al escaln similar a la que se ve abajo: de = 0.2; Kp = 2; numc=Kp*[1.151 0.1774]; denc=[1 0.739 1.151*Kp+0.921 0.1774*Kp]; t=0:0.01:30; step (de*numc,denc,t)
Como ve, tanto el sobrepico cuanto el tiempo de establecimiento necesitan alguna mejora. Control PD Recordemos del Tutorial PID , el controlador derivativo reducir tanto el sobrepico cuanto el tiempo de establecimiento. Probemos un Controlador PD. La funcin de transferencia a lazo cerrado del sistema con un Controlador PD es:
Usando los comandos de abajo y luego de un proceso de prueba y error, una ganancia proporcional (Kp) de 9 y una ganancia derivativa (Kd) de 4 proveen una razonable respuesta. Para confirmarlo, cambie su archivo-m al siguiente y ejectelo en la ventana de comandos del Matlab. Debera obtener la respuesta al escaln similar a la de abajo:
42
de=0.2; Kp=9; Kd=4; numc=[1.151*Kd 1.151*Kp+0.1774*Kd 0.1774*Kp]; denc=[1 0.739+1.151*Kd 0.921+1.151*Kp+0.1774*Kd 0.1774*Kp]; t=0:0.01:10; step (de*numc,denc,t)
Esta respuesta al escaln muestra un tiempo de elevacin menor que 2 segundos, el sobrepico menor que 10%, tiempo de establecimiento menor que 10 segundos, y el error de estado estacionario menor que 2%. Todos los requerimientos de diseo se satisfacen. Control PID A pesar que todos los requerimientos de diseo estn satisfechos con el Controlador PD, puede agregarse el controlador integral (Ki) para reducir el pico agudo y obtener una respuesta suave. Luego de varias iteraciones pruebaerror, la ganancia proporcional (Kp) de 2, la ganancia integral (Ki) de 4, y la ganancia derivativa (Kd) de 3 proveen respuesta al escaln ms suave que an satisface todos los requerimientos de diseo. Para confirmarlo, se tiene el programa siguiente. Debera obtener la respuesta al escaln de abajo: Esta vez usaremos la funcin cloop para hallar la funcin de transferencia a lazo cerrado , y entonces obtener la respuesta al escaln . de=0.2; Kp=2; Kd=3; Ki=4;
43
numo=[1.151 0.1774]; deno=[1 0.739 0.921 0]; numpid=[Kd Kp Ki]; denpid=[1 0]; num1=conv(numo,numpid); den1=conv(deno,denpid); [numc,denc] = cloop(num1,den1); t=0:0.01:10; step (de*numc,denc,t)
44
Para este problema, asumimos que la bola rueda sin resbalamiento y la friccin entre la barra y bola es despreciable. Las constantes y variables para este ejemplo se definen como sigue: M masa de la bola 0.11 kg R radio de la bola 0.015 m d offset de brazo de palanca 0.03 m g aceleracin gravitacional 9.8 m/s^2 L longitud de la barra 1.0 m J momento de inercia de la bola 9.99e-6 kgm^2 r coordenada de posicin de la bola alpha coordenada angular de la barra theta ngulo del servo engranaje Los criterios de diseo para este problema son: Tiempo de Establecimiento menor que 3 segundos Sobrepico menor que 5% Ecuaciones del Sistema El movimiento para la bola est dado por la siguiente ecuacin:
La linealizacin de esta ecuacin alrededor del ngulo de la barra , alpha = 0, nos da la siguiente aproximacin lineal del sistema:
45
La ecuacin que relaciona el ngulo de la barra con el ngulo del engranaje puede aproximarse a una relacin lineal mediante la ecuacin de abajo:
1. Funcin de Transferencia Tomando transformada de Laplace de la ecuacin de arriba, se encuentra la siguiente ecuacin:
NOTA: Cuando se toma Transformada de Laplace para hallar la funcin de transferencia se asume que las condiciones iniciales son nulas. Reacomodando encontramos la funcin de transferencia del ngulo del engranaje (theta(s)) a la posicin de la bola (R(s)).
Debe notarse que la funcin de transferencia de la planta de arriba es un doble integrador. Como sta es marginalmente estable nos proveer de un arduo problema de control. 2. Espacio de Estado El sistema de ecuaciones linealizado puede representarse tambin en la forma espacio de estado. Esto puede hacerse seleccionando la posicin de la bola (r) y velocidad (rdot, por r punto) como las variables de estado y el ngulo del
46
Sin embargo, para nuestro ejemplo de espacio de estado usaremos un modelo ligeramente diferente. La misma ecuacin se aplica todava para la bola pero en lugar de controlar la posicin a travs del ngulo del engranaje, theta, controlaremos alfa doble punto. Esto es esencialmente el control del torque de la barra. La representacin de
47
La funcin de transferencia encontrada a partir de la transformada de Laplace puede implementarse en Matlab entrando el numerador y el denominador como vectores. Para lograrlo debemos crear un programa como se muestra a continuacin. m = 0.111; R = 0.015; g = -9.8; L = 1.0; d = 0.03; J = 9.99e-6; K = (m*g*d)/(L*(J/R^2+m)); num = [-K]; den = [1 0 0]; printsys(num,den) La salida debera ser: num/den = 0.21 / s^2 Ahora, le gustara observar la respuesta de la bola a una entrada escaln de 0.25 m . Para hacerlo necesitar agregar la siguiente linea al programa: step(0.25*num,den) Debera verse la figura siguiente mostrando las posiciones de la bola como funcin del tiempo:
De esta figura es claro que el sistema es inestable a lazo abierto, causando que la bola se deslice afuera de la barra. Por lo tanto, se requiere de algn mtodo para controlar la posicin de la bola en este sistema. Abajo se listan tres ejemplos de
48
diseo del controlador para el problema de la FT. Puede elegir entre PID, Lugar de Races, y Respuesta en Frecuencia. 2. Espacio de Estado Las ecuaciones de espacio de estado pueden representarse en Matlab con los siguientes comandos (estas ecuaciones son para el modelo de control de torque).
m = 0.111; R = 0.015; g = -9.8; J = 9.99e-6; H = -m*g/(J/(R^2)+m); A=[0 1 0 0 00H0 0001 0 0 0 0]; B=[0;0;0;1]; C=[1 0 0 0]; D=[0];
La respuesta al escaln de 0.25m (posicin deseada) puede verse corriendo el comando siguiente:
step(A,B*.25,C,D)
49
Al igual que el esquema para la funcin de transferencia, esta figura muestra que el sistema es inestable y que la bola se va a salir de la barra. Por lo tanto, requerimos algn mtodo de control de la posicin de la bola en este sistema. Abajo se muestra el ejemplo de cmo implementar un controlador en Espacio de Estado para este tipo de sistema. Solucin al Problema de la Barra y Bola Usando Control PID La funcin de transferencia a lazo abierto de la planta para experimento de la barra y bola se da abajo:
Representacin a Lazo Cerrado El diagrama en bloque para este ejemplo con un controlador y realimentacin unitaria de la posicin de la bola se muestra abajo:
50
Primero estudiaremos la respuesta del sistema mostrado abajo cuando se usa un controlador proporcional. Entonces, se adicionar si es necesario control integral y/o derivativo. Recordemos, que la funcin de transferencia para un controlador PID es:
Control Proporcional La funcin de transferencia a lazo cerrado para un controlador proporcional con una ganancia proporcional (kp) igual a 100, puede modelarse con el siguiente programa. m = 0.111; R = 0.015; g = -9.8; L = 1.0; d = 0.03; J = 9.99e-6; K = (m*g*d)/(L*(J/R^2+m)); %simplifica entrada num = [-K]; den = [1 0 0]; kp = 1; numP = kp*num; [numc, denc] = cloop(numP, den) El numerador y denominador deberan ser: numc = 0 0 0.2100 denc = 1.0000 0 0.2100 Ahora, podemos modelar la respuesta del sistema a una entrada escaln de 0.25 m. Agregue la siguiente lnea de cdigo a su archivo-m y ejectelo: step(0.25*numc,denc) Debera obtenerse la siguiente salida:
51
Como puede ver la adicin de ganancia proporcional no estabiliza el sistema. Pruebe cambiando el valor de kp y note que el sistema permanece inestable. Se prob con los otros valores y el sistema sigue inestable. Control Proporcional-Derivativo Ahora, agregaremos un trmino derivativo al controlador. Con este programa veremos si el sistema queda estable. m = 0.111; R = 0.015; g = -9.8; L = 1.0; d = 0.03; J = 9.99e-6; K = (m*g*d)/(L*(J/R^2+m)); %simplifica entrada num = [-K]; den = [1 0 0]; kp = 10; kd = 10; numPD = [kd kp]; numh = conv(num, numPD); [numc, denc] = cloop(numh, den); t=0:0.01:5; step(0.25*numc,denc,t) El diagrama debera ser similar al siguiente:
52
Ahora el sistema es estable pero el sobrepico es demasiado alto y el tiempo de asentamiento necesita bajarse un poco. De la pgina tutorial de PID en la seccin de caractersticas de controladores P, I, y D , vemos que incrementando kd podemos bajar el sobrepico y disminuir apenas el tiempo de establecimiento. Por lo tanto, haga kd = 20 y la salida debera ser:
El criterio de sobrepico est logrado pero el tiempo de establecimiento necesita bajarse un poco. Para bajar el tiempo de establecimiento podemos intentar incrementar apenas kp para incrementar el tiempo de elevacin. La ganancia derivativa (kd) puede tambin incrementarse para bajar algo del sobrepico que el incremento kp causar. Luego de experimentar un poco con las ganancias, puede lograrse la siguiente respuesta al escaln con kp = 15 y kd = 40:
53
Como puede ver de la figura de arriba todos los objetivos de control han sido logrados sin el uso de un controlador integral (el tiempo de establecimiento para este ejemplo se considera logrado cuando la respuesta es menor que el 2% de su valor final). Recuerde, que para un problema de control hay ms que una solucin.
% VALORES DE LAS VARIABLES DE LA FUNCION DE TRANSFERENCIA DE LAZO ABIERTO m=8000; b=300; u=1200;
54
% FUNCION DE TRANFERENCIA disp 'Y(s)/U(s)== [1/ms + b]' num=[1]; den=[m b]; step(u*num,den) title('Curva de la funcin de transferencia sin controlador')
Usando un Control PI Para este ejemplo usamos solo un controlador PI por hace que el sistema sea mas estable. Un controlador integral al sistema elimina el error de estado estacionario. Por ahora, haga Kp = 800 y Ki = 1 y vea qu sucede con la respuesta.
% Valores de las variables de la F.T de lazo cerrado kp = 750; ki = 1; m = 6300; b = 850 ; u = 11.5; % F.T de lazo cerrado de un controlador PI disp 'Y(s)/u(s)== [Kps + Ki / ms^2 + (b + Kd)s + Ki]' num = [1]; den = [m b]; num1= [kp ki]; den1= [1 0]; num2=conv(num,num1); den2=conv(den,den1); [numc,denc]=cloop(num2,den2,-1); t=0:0.1:20; step(u*numc,denc,t)
55
Ahora ajustemos tanto la ganancia proporcional (Kp) cuanto la ganancia integral (Ki) para obtener la respuesta deseada. Cuando usted ajuste la ganancia integral (Ki), mejor que empiece con un valor chico, ya que grandes (Ki) casi siempre inestabilizan la respuesta. Con Kp igual a 950 y Ki igual a 55, la respuesta al escaln lucir como la
56
R=1; L=0.6; num=K; den=[(J*L) ((J*R)+(L*b)) ((b*R)+K^2)]; step(num,den,0:0.1:3) title('Respuesta al Escaln del sistema de lazo abierto')
De la figura vemos que cuando se aplica 1 volt al sistema, el motor puede lograr solo una velocidad mxima de 0.3 rad/seg., diez veces menor que la velocidad deseada. Adems, el motor tiene 3 segundos para alcanzar su velocidad de estado estacionario; esto no satisface los 2 segundos del criterio de tiempo de establecimiento
Usamos un control Control proporcional Este controlador es usado porque con ello hacemos que el sobrepico sea menos de 1 segundo. En la grfica se puede observar cmo se encuentra. Tratemos de usar primero un controlador proporcional con una ganancia de 300.
57
Control PID De la figura de arriba vemos que tanto el error de estado estacionario cuanto el sobrepico son muy grandes. Recordemos del tutorial PID que incorporando un trmino integral se eliminar el error de estado estacionario y un trmino derivativo reducir el sobrepico. Probemos un controlador PID con Ki y Kd pequeos. Modifique su archivo-m de manera que se sea ve lo siguiente. Luego de correr este nuevo archivo-m se da la figura siguiente.
J=0.05; b=0.4; K=0.05; R=1; L=0.6;num=K; den=[(J*L) ((J*R)+(L*b)) ((b*R)+K^2)]; Kp=100; Ki=1; Kd=1; numc=[Kd, Kp, Ki]; denc=[1 0]; numa=conv(num,numc); dena=conv(den,denc); [numac,denac]=cloop(numa,dena); step(numac,denac) title('Control PID con pequeo Ki and Kd')
58
Sintonizacin de ganancias Ahora el tiempo de establecimiento es muy largo. Incrementemos Ki para reducir el tiempo de establecimiento. Regrese Al programa anterior y cambie K i a 100. Vuelva a ejecutar el archivo y debera obtenerse un grfico como ste:
59
Ahora vemos que la respuesta es mucho ms rpida que antes, pero el Ki grande ha empeorado la respuesta transitoria (gran sobrepico). Incrementemos Kd para reducir el sobrepico. Vuelva programa antgerior y cambie Kd a 11. Vuelva a correrlo para obtener este grfico:
60
momento de inercia del rotor (J) = 0.03 kg.m^2/s^2 coeficiente de amortiguamiento del sistema mecnico (b) = 0.3 Nms constante de fuerza electromotriz (K=Ke=Kt) = 0.03 Nm/Amp resistencia elctrica (R) = 3 ohm inductancia elctrica (L) = 0.8 H entrada (V): Fuente de Tensin salida (theta): posicin del eje el rotor y eje se consideran rgidos
Representacin en Matlab y respuesta a lazo abierto 1. Funcin de Transferencia Podemos poner la funcin de transferencia en Matlab definiendo el numerador y el denominador como vectores: Variables del programa:
% Valores de la F.T de lazo abierto J=0.03; b=0.3; K=0.03; R=3; L=0.8; % F.t de lazo abierto sin controlador disp 'Y(s)/U(s)== [K/(s((Js+b)(Ls+R)+K^2))]' num=K; den=[(J*L) ((J*R)+(L*b)) ((b*R)+K^2) 0]; step(num,den,0:0.001:0.2) title('Resultado de escaln de lazo abierto'
61
Usando un Control proporcional El controlador proporcional es usado por que tiende hacer menos su sobrepico que los de un PID o un PD. El controlador proporcional con una ganancia de 4.5, el programa queda de la siguiente manera.
% Valores de la F.T de lazo abierto J=0.03; b=0.3; K=0.03; R=3; L=0.8; % F.t de lazo abierto sin controlador disp 'Y(s)/U(s)== [Kp/(s((Js+b)(Ls+R)+K^2))]' num=K; den=[(J*L) ((J*R)+(L*b)) ((b*R)+K^2) 0]; Kp=1.7; numcf=[Kp]; dencf=[1]; numf=conv(numcf,num); denf=conv(dencf,den); [numc,denc]=cloop(numf,denf); t=0:0.001:0.2; step(numc,denc,t) title(' respuesta de escaln con un controlador P')
62
Como podemos observar el sobrepico cumple con los diseos requeridos. Veamos ahora la respuesta a una perturbacin escaln agregando los siguientes comandos:
numdcl=conv(numc,1); dendcl=conv(denc,Kp); step(numdcl,dendcl,t);
Ejemplo 4
63
% valores de las varibles de la funcion de transferecncia m1=3500; m2=350; k1=90500; k2=600123; b1 = 440; b2 = 16567; % funcion de transferencia para G1(s) disp 'Y(s)/U(s)== (m1+m2) b2 k2/((m1*m2) (m1*(b1+b2))+(m2*b1) (m1*(k1+k2))+(m2*k1)+(b1*b2) (b1*k2)+(b2*k1) k1*k2)' nump=[(m1+m2) b2 k2]; denp=[(m1*m2) (m1*(b1+b2))+(m2*b1) (m1*(k1+k2))+(m2*k1)+(b1*b2) (b1*k2)+(b2*k1) k1*k2]; 'G(s)1' printsys(nump,denp) % funcion de transferencia para G1(s) disp 'Y(s)/U(s)== -(m1*b2) -(m1*k2) 0 0/((m1*m2) (m1*(b1+b2))+(m2*b1) (m1*(k1+k2))+(m2*k1)+(b1*b2) (b1*k2)+(b2*k1) k1*k2)' num1=[-(m1*b2) -(m1*k2) 0 0]; den1=[(m1*m2) (m1*(b1+b2))+(m2*b1) (m1*(k1+k2))+(m2*k1)+(b1*b2) (b1*k2)+(b2*k1) k1*k2]; 'G(s)2' printsys(0.1*num1,den1) step(0.1*num1,den1) axis([0 10 -.1 .1]) title('Respuesta de la Funcin de Trasferencia') step(nump,denp)
64
De este grfico de la respuesta a lazo abierto para una fuerza actuante escaln unitario, podemos ver que el sistema es sub-amortigado. La gente sentada en el colectivo sentir apenas una pequea oscilacin y el error de estado estacionario ronda los 0.013 mm. Pero an, el colectivo se toma un inaceptablemente largo tiempo en alcanzar el estado estacionario o el tiempo de establecimiento es muy largo. La solucin a este problema es agregar un controlador realimentado en el diagrama en bloques del sistema.
65
% valores de las contantes y variables m = 3; R = 0.3; g = -5.8; L = 5.5; d = 0.2; J = 6.99e-6; % fucnion de transferencia
66
disp 'R(s)/U(s)== (m*g*d)/((L*(J/R^2+m))' K = (m*g*d)/(L*(J/R^2+m)); num = [-K]; den = [1 0 0]; printsys(num,den) step(0.50*num,den) title(' resultado de la funcion de transferencia') step(0.15*num,den)
La funcin de transferencia encontrada a partir de la transformada de Laplace puede implementarse en Matlab entrando el numerador y el denominador como vectores. Para lograrlo debemos crear un programa como se muestra a continuacin. Ahora, le gustara observar la respuesta de la bola a una entrada escaln de 0.50 m . Para hacerlo necesitar agregar la siguiente linea a su archivo-m: step(0.15*num,den) Debera verse la figura siguiente mostrando las posiciones de la bola como funcin del tiempo:
Espacio de Estado
67
Las ecuaciones de espacio de estado pueden representarse en Matlab con los siguientes comandos (estas ecuaciones son para el modelo de control de torque).
% valores de las contantes y variables m = 3; R = 0.3; g = -5.8; L = 5.5; d = 0.2; J = 6.99e-6; J = 9.99e-6; % fucnion de transferencia disp 'R(s)/U(s)== (m*g*d)/((L*(J/R^2+m))' H = -m*g/(J/(R^2)+m); A=[0 1 0 0 0 0 H 0 0 0 0 1 0 0 0 0]; B=[0;0;0;1]; C=[1 0 0 0]; D=[0]; step(A,B*.50,C,D) title(' resultado de la funcion de transferencia') step(A,B*.50,C,D)
68
La respuesta al escaln de 0.50m (posicin deseada) puede verse corriendo el comando siguiente:
step(A,B*.50,C,D)
Control Proporcional-Derivativo Ahora, agregaremos un trmino derivativo al controlador. Con este programa veremos si el sistema queda estable.
% valores de las contantes y variables m = 3; R = 0.3; g = -5.8; L = 5.5; d = 0.2; J = 6.99e-6; J = 9.99e-6; % fucnion de transferencia disp 'R(s)/U(s)== (m*g*d)/((L*(J/R^2+m))' K = (m*g*d)/(L*(J/R^2+m)); num = [-K];
69
den = [1 0 0]; % valores del controlador PD kp = 15; kd = 40; numPD = [kd kp]; numh = conv(num, numPD); [numc, denc] = cloop(numh, den); t=0:0.01:5; step(0.50*numc,denc,t) title('resultado del controlador PD')
70
BIBLIOGRAFA
www.engin.umich.edu/group/ctm/basic/basic.htm/ www.engin.umich.edu/group/ctm/PID/PID.htm/
71