proyecto de control de posición

Upload: jose-carreno

Post on 09-Jul-2015

1.155 views

Category:

Documents


0 download

TRANSCRIPT

SISTEMA DE CONTROL DE LA POSICIN DE UN MOTOR DE CORRIENTE CONTINUA

Yazan Hazem Senan Gonzalo Guelbenzu Villota Carlos Ivn del Valle Morales

NDICEPgina 1. Estructura del documento 2. Estudio del motor en lazo abierto como sistema de 3er orden 2.1 Clculo de las ecuaciones diferenciales 2.2 Clculo de la funcin de transferencia en lazo abierto 2.3 Simulacin en Matlab del motor en lazo abierto 2.3.1 Diagrama polos-ceros. Conclusiones 2.3.2 Respuesta al escaln, rampa y parbola. Conclusiones 2.3.3 Diagrama de Bode. Conclusiones 2.3.4 Diagrama de Nyquist. Conclusiones 3. Aproximacin del motor en lazo abierto como sistema de 2 orden 3.1 Justificacin 3.2 Clculo de la funcin de transferencia 3.3 Relacin entre los parmetros del motor (R, L, B y J) y los caractersticos de un sistema de 2 orden cannico ( y n) 3.4 Relacin de los parmetros de diseo en el tiempo y en la frecuencia con los parmetros caractersticos de un sistema de 2 orden ( y n) 3.4.1 Relaciones con los prametros de diseo de la respuesta transitoria a un escaln unitario 3.4.2 Relaciones con los prametros de diseo de la respuesta en frecuencia 4. Caracterizacin de los parmetros de diseo 4.1 Aplicacin implementada: Sistema de control para duplicacin de las plazas en un aparcamiento 4.2 Caracterizacin de los parmetros de diseo 4.2.1 Parmetros de diseo en el dominio del tiempo 4.2.2 Parmetros de diseo en el dominio de la frecuencia 1 2 2 4 6 7 9 12 15 17 17 18 19 20 20 22 25 25 26 26 27

5. Estudio del motor en un sistema en lazo cerrado 5.1 Justificacin 5.2 Clculo de la funcin de transferencia en lazo cerrado 5.3 Simulacin en Matlab del motor en lazo cerrado 5.3.1 Diagrama polos-ceros. Conclusiones 5.3.2 Respuesta al escaln, rampa y parbola. Conclusiones 5.3.3 Diagrama de Bode. Conclusiones 5.3.4 Diagrama de Nyquist. Conclusiones 6. Diseo de un controlador de dos grados grados de libertad 6.1 Estructura elegida 6.2 Clculo de las funciones de transferencia del controlador: Fyr(s), Fyd(s) y Fyn(s) 6.3 Diseo con Matlab del controlador 7. Estudio del controlador diseado 7.1 Diagrama y funciones de transferencia del diseo adoptado 7.2 Simulacin en Matlab del sistema completo 7.2.1 Caractersticas del sistema en el dominio del tiempo 7.2.3 Caractersticas del sistema en el dominio de la frecuencia 8. Comentarios finales 9. Referencias bibliogrficas 10. Anexo: Cdigo de las simulaciones 10.1 Modelado del motor en lazo abierto como sistema de tercer orden 10.2 Simulacin del motor en lazo abierto como sistema de tercer orden 10.3 Modelado del motor en lazo cerrado 10.4 Simulacin del motor en lazo cerrado 10.5 Pruebas para ver cmo se relacionan los parmetros de diseo con la posicin de los polos del sistema 10.6 Simulacin del controlador diseado

28 28 29 31 31 33 38 41 44 44 45 48 60 60 61 61 68 69 70 71 71 72 74 75 77 84

NDICE DE FIGURASPgina Figura 1: Figura 2: Figura 3: Figura 4: Figura 5: Figura 6: Figura 7: Figura 8: Figura 9: Figura 10: Figura 11: Figura 12: Figura 13: Figura 14: Figura 15: Figura 16: Figura 17: Figura 18: Figura 19: Figura 20: Figura 21: Figura 22: Figura 23: Figura 24: Figura 25: Modelo del motor de corriente continua Diagrama polos-ceros de la funcin de transferencia del motor en lazo abierto Respuesta a un escaln unitario del motor en lazo Abierto Respuesta a la rampa del motor en lazo abierto Respuesta a una parbola del motor en lazo abierto Diagrama de Bode del motor en lazo abierto Diagrama de Nyquist del motor en lazo abierto Estructura del sistema en lazo cerrado Diagrama polos-ceros de la funcin de transferencia del motor en lazo cerrado Respuesta a un escaln de 5 V del motor en lazo cerrado Respuesta a la rampa del motor en lazo cerrado Respuesta a una parbola del motor en lazo cerrado Diagrama de Bode del motor en lazo cerrado Diagrama de Nyquist del motor en lazo cerrado Estructura del controlador de dos grados de libertad Estructura del controlador de dos grados de libertad para el clculo de Fyr(s) Estructura del controlador de dos grados de libertad para el clculo de Fyd(s) Estructura del controlador de dos grados de libertad para el clculo de Fyn(s) Controlador de dos grados de libertad diseado Respuesta del sistema para r(t) constante Respuesta del sistema para d(t) constante Respuesta del sistema para n(t) constante Respuesta conjunta del sistema a r(t) y n(t) Respuestas del sistema a una rampa y una parbola Diagrama de Bode del sistema 2 8 9 10 11 13 16 29 32 34 36 37 39 43 44 45 46 47 60 61 63 64 65 67 68

1. Estructura del documentoEste documento pretende servir como gua de todo el procedimiento seguido para llevar a cabo el diseo de un controlador de posicin de dos grados de libertad para un motor de corriente continua. El documento est organizado del siguiente modo. Tras esta breve introduccin, el apartado 2. Estudio del motor en lazo abierto como sistema de 3er orden comienza con un anlisis del motor que utilizaremos para nuestro diseo. Este apartado proporciona el modelo matemtico del motor necesario para realizar todos los estudios posteriores Tras dicho anlisis, desarrollamos el apartado 3. Aproximacin del motor en lazo abierto como sistema de 2 orden, fundamentalmente terico. Este apartado realiza una simplificacin del modelo obtenido en el apartado anterior que nos permitir razonar sobre la planta como un sistema de segundo orden. En el apartado 4. Caracterizacin de los parmetros de diseo presentamos la aplicacin elegida para nuestro motor y las especificaciones en el dominio del tiempo y de la frecuencia que esperamos cumplir en nuestro diseo. Tras elegir nuestros objetivos y, antes de comenzar con el diseo del controlador propiamente dicho, desarrollamos el apartado 5. Estudio del motor en un sistema en lazo cerrado. En esta seccin cerramos el lazo de realimentacin de nuestro sistema y estudiamos las implicaciones. Ha sido de gran ayuda para realizar el apartado 6. Diseo de un controlador de dos grados de libertad en el que explicamos detalladamente los pasos seguidos para obtener nuestro controlador. El objetivo del apartado 7. Estudio del controlador diseado es verificar que nuestro sistema cumple las especificaciones esperadas. Finalmente, incluimos los apartados 8. Comentarios finales, 9. Referencias bibliogrficas y 10. Anexo: Cdigo de las simulaciones. En este ltimo aparece la implementacin en Matlab de los programas realizados durante el presente estudio.

1

2. Estudio del motor en lazo abierto como sistema de 3er orden2.1 Clculo de las ecuaciones diferenciales Un motor de corriente continua puede modelarse segn el siguiente esquema:

Figura 1: Modelo del motor de corriente continua

En lo sucesivo utilizaremos la siguiente nomenclatura: eb(t) es la tensin en bornas del motor. Se mide en V. i(t) es la corriente que circula por el motor. Se mide en A. u(t) es la entrada que introducimos al motor. Se mide en V. (t) es el ngulo de giro del motor. Se mide en rad. R es la resistencia del motor. Se mide en . L es inductancia del motor. Se mide en H J es la inercia del motor. Se mide en kgm2. B es el coeficiente de rozamiento. Se mide en Nmrad/s. es el par del motor. Se mide en Nm. L es el par de la carga. Se mide en Nm. k1 es la constante de FEM. Se mide en Vs/rad. k2 es la constante de par. Se mide en Nm/A.

2

Sabemos que en un motor de corriente continua se verifican las siguientes relaciones para la tensin en bornas del motor, eb(t), y para el par del motor, :eb (t ) = k1 d (t ) dt

= k 2 i (t )

Planteamos las ecuaciones diferenciales del circuito con ayuda del esquema de la pgina anterior:u (t ) = Ri (t ) + L di (t ) + eb (t ) dt

=J

d 2 (t ) d (t ) +B + L dt dt

Sustituyendo en estas ecuaciones diferenciales las expresiones de eb(t) y obtenemos las siguientes igualdades:u (t ) = Ri (t ) + L di (t ) d (t ) + k1 dt dt

k 2 i (t ) = J

d (t ) d 2 (t ) +B + L dt dt

Por simplicidad consideramos que el par de la carga es nulo, es decir, que, L = 0 . De esta forma las ecuaciones diferenciales que rigen el funcionamiento del motor de corriente continua se reducen a las siguientes expresiones:u (t ) = Ri (t ) + L di (t ) d (t ) + k1 dt dt

k 2 i (t ) = J

d (t ) d 2 (t ) +B dt dt

3

2.2 Clculo de la funcin de transferencia en lazo abierto Nuestro objetivo en este apartado es determinar en el dominio de Laplace la siguiente funcin de transferencia del motor:G(s) = ( s ) U ( s)

Esta expresin relaciona la transformada de Laplace de la salida, (s), con la transformada de Laplace de la entrada, U(t). Resultar indispensable para poder realizar las simulaciones oportunas en Matlab. Para calcularla partimos de las ecuaciones diferenciales obtenidas en el apartado anterior:u (t ) = Ri (t ) + L di (t ) d (t ) + k1 dt dt

k 2 i (t ) = J

d 2 (t ) d (t ) +B dt dt

Teniendo en cuenta las siguientes propiedades de la transformada de Laplace para la derivada de una funcin: df (t ) L = sF ( s ) f (0) dt d 2 f (t ) 2 & L = s F ( s ) s f ( 0) f ( 0) 2 dt

obtenemos la transformada de Laplace de las ecuaciones diferenciales del motor:U ( s ) = RI ( s ) + L[sI ( s ) i (0)] + k1 [s(s ) (0 )]

& k 2 I ( s ) = J s 2 ( s ) s (0) (0) + B[s(s ) (0 )]

[

]

Por simplicidad consideramos condiciones iniciales nulas, es decir, que se verifican las siguientes relaciones:i (0) = 0

(0) = 0

&(0) = 0

4

De esta forma las expresiones anteriores se reducen mucho:U ( s ) = RI ( s ) + LsI ( s ) + k1 s( s )

k 2 I ( s ) = Js 2 ( s ) + Bs( s )

Despejamos I(s) de la segunda ecuacin:Js 2 ( s ) + Bs( s ) (Js 2 + Bs ) I ( s) = = ( s ) k2 k2

Sustituimos el resultado en la primera ecuacin:U ( s ) = RI ( s ) + LsI ( s ) + k1 s( s )

U ( s ) = ( Ls + R ) I ( s ) + k1 s( s )

U ( s ) = ( Ls + R)

(Js(

2

+ Bs ) ( s ) + k1 s ( s ) k2

Js 2 + Bs U ( s ) = ( Ls + R ) + k1 s ( s ) k2 (Ls + R ) Js 2 + Bs + k1 k 2 s U (s) = ( s ) k2

)

(

)

U (s) =

[JLs

2

+ ( JR + BL )s + (BR + k1 k 2 ) s ( s ) k2

]

Por lo tanto, la funcin de transferencia de posicin para el motor de corriente continua es:G ( s) = k2 ( s ) = 2 U ( s ) JLs + ( JR + BL )s + (BR + k1 k 2 ) s

[

]

5

2.3 Simulacin en Matlab del motor en lazo abierto Para realizar la simulacin del motor de corriente continua hemos utilizado los datos proporcionados para el servomotor 117419 de Maxon: R = 4,91 L = 742,2 H = 742,210-6 H J = 43,8 gcm2 = 43,8 10-7 kg m2 B = 10-5 Nmrad/s k1 = 32,18 10-3 Vs/rad k2 = 32,18 mNm/A = 32,18 10-3 Nm/A Resaltamos dos cosas: La constante de rozamiento B no aparece en la hoja de caractersticas por lo que hemos tomado un valor muy pequeo, aproximadamente nulo. Hemos obligado a que el valor de k1 sea igual al valor de k2 en unidades del S.I. puesto que sabemos que se debe cumplir. Con estos datos y la funcin de obtenida en el apartado anterior, 2.2 Clculo de la funcin de transferencia en lazo abierto, hemos realizado una simulacin en Matlab. Dicho entorno ha resultado una herramienta indispensable para la ejecucin del presente diseo puesto que facilita enormemente la tarea de clculos y obtencin de grficas. Los detalles del cdigo se pueden ver en el punto 10. Anexo: Cdigo de las simulaciones En los diferentes estudios que realicemos a lo largo del trabajo incluiremos los siguientes resultados: Diagrama polos-ceros de la funcin de transferencia. Respuesta del sistema al escaln, rampa y parbola. Diagrama de Bode. Diagrama de Nyquist.

6

2.3.1 Diagrama polos-ceros. Conclusiones Para la obtencin de los polos y ceros de la funcin de transferencia del motor en lazo abierto partimos de dicha funcin, calculada en el apartado 2.2 Clculo de la funcin de transferencia en lazo abierto:G ( s) = k2 ( s ) = 2 U ( s ) JLs + ( JR + BL )s + (BR + k1 k 2 ) s

[

]

Es inmediato ver que el sistema en lazo abierto: No tiene ceros, puesto que no hay valores que anulen el numerador de la funcin de transferencia. Tiene tres polos dado que el denominador es un polinomio de grado 3. Uno de ellos est en el origen. Los otros dos deben ser polos reales porque si fuesen complejos querra decir que el motor tiene una respuesta oscilatoria. Calculamos analticamente la posicin de dichos polos mediante la conocida expresin para la resolucin de ecuaciones de segundo grado:

[JLs

2

+ ( JR + BL )s + (BR + k1 k 2 ) s = 0

]

p1 = 0

y

p 2,3 =

( JR + BL )

(JR + BL )2 4JL(BR + k1k 2 )2 JL

Sustituyendo los valores indicados anteriormente obtenemos que los polos del sistema estn en: p1 = 0 p2 = - 50,808 p3 = - 6566,943 Con ayuda de Matlab hemos comprobado que los resultados obtenidos de forma analtica y mediante la funcin tf2zp() coinciden, como era de esperar.

7

Para representar grficamente el diagrama de polos y ceros del sistema utilizamos la funcin proporcionada por Matlab denominada pzmap(), que recibe como argumento nuestra funcin de transferencia. La grfica obtenida es la siguiente:

Figura 2: Diagrama polos-ceros de la funcin de transferencia del motor en lazo abierto

Observando la grfica podemos comprobar de un solo vistazo que: Los tres polos de la funcin de transferencia del motor en lazo abierto son reales. Uno de los polos est situado en el origen. Por lo tanto el sistema es de tipo 1. Existe de forma clara un polo dominante. El polo dominante es el que est situado ms cerca del origen, en la posicin p2 = - 50,808. Este hecho justifica la aparicin en el presente estudio del apartado 3. Aproximacin del motor en lazo abierto como sistema de 2 orden, donde eliminaremos de la funcin de transferencia el polo no dominante. Se trata de un sistema crticamente estable puesto que tiene un polo en el origen y el resto se encuentran en el semiplano izquierdo del plano complejo s. Se trata de un sistema de fase mnima puesto que no tiene ceros ni polos en el semiplano derecho del plano s.

8

2.3.2 Respuesta al escaln, rampa y parbola. Conclusiones Respuesta al escaln La respuesta del sistema a un escaln unitario vendr dada por la siguiente expresin, donde hemos tenido en cuenta que la transformada de Laplace de un escaln u (t ) = 1 es U ( s) = :( s ) = G ( s )U ( s ) =

1 s

[

k2 1 JLs + ( JR + BL )s + (BR + k1 k 2 ) s s2

]

(t ) = L1 [( s )] = L1

k2 2 JLs + ( JR + BL )s + (BR + k1 k 2 ) s

[

2

]

Aunque el clculo de (t) es complicado, podemos determinar fcilmente el valor en rgimen permanente utilizando el Teorema del Valor Final: (t ) R.P = lim (t ) = lim s( s ) = lim st s 0 s 0

[

k2 = JLs + ( JR + BL )s + (BR + k1 k 2 ) s 22

]

Este resultado nos permite concluir que si alimentamos el motor con un escaln de 1 V, el motor comenzar a girar indefinidamente. Esto es debido a que el sistema es crticamente estable. Podemos visualizar este resultado con ayuda del comando step() de Matlab:

Figura 3: Respuesta a un escaln unitario del motor en lazo abierto

9

Respuesta a una rampa La respuesta del sistema a una rampa vendr dada por la siguiente expresin, donde hemos tenido en cuenta que la transformada de Laplace de una rampa u (t ) = t es U ( s ) =( s ) = G ( s )U ( s ) =

1 : s2

[

k2 1 2 JLs + ( JR + BL )s + (BR + k1 k 2 ) s s2

]

(t ) = L1 [( s )] = L1

k2 2 3 JLs + ( JR + BL )s + (BR + k1 k 2 ) s

[

]

Como hemos comentado para el caso de la respuesta al escaln, el clculo de (t) es complicado. Sin embargo podemos determinar fcilmente el valor en rgimen permanente utilizando el Teorema del Valor Final: (t ) R.P = lim (t ) = lim s( s ) = lim st s 0 s 0

[

k2 = JLs + ( JR + BL )s + (BR + k1 k 2 ) s 32

]

Para visualizar el resultado de forma grfica utilizamos los comandos lsim() y plot() de Matlab:

Figura 4: Respuesta a la rampa del motor en lazo abierto

Comprobamos que, efectivamente, la salida crece indefinidamente. Esto quiere decir que, para una rampa como entrada, el motor mantiene su giro indefinidamente.10

Respuesta a una parbola Teniendo en cuenta que la transformada de Laplace de una parbolau (t ) = t 2 es U ( s ) = 1 , podemos obtener la salida del sistema para dicha s3

entrada as:( s ) = G ( s )U ( s ) =

[

k2 1 3 JLs + ( JR + BL )s + (BR + k1 k 2 ) s s2

]

(t ) = L1 [( s )] = L1

k2 2 4 JLs + ( JR + BL )s + (BR + k1 k 2 ) s

[

]

Como hemos comentado para el caso de la respuesta al escaln y de la rampa, el clculo de (t) es complicado. Sin embargo podemos determinar el valor en rgimen permanente utilizando el Teorema del Valor Final: (t ) R.P = lim (t ) = lim s( s ) = lim st s 0 s 0

[

k2 = JLs + ( JR + BL )s + (BR + k1 k 2 ) s 42

]

Podemos visualizar este resultado con ayuda del comando lsim() de Matlab:

Figura 5: Respuesta a una parbola del motor en lazo abierto

Como en el caso de la rampa, tambin comprobamos que la salida crece indefinidamente. Por lo tanto, para una parbola como entrada, el motor nunca para de girar.

11

2.3.3 Diagrama de Bode. Conclusiones En este apartado vamos a obtener el diagrama de Bode de la funcin de transferencia del motor en lazo abierto. Como es bien sabido, el diagrama de Bode representa el mdulo y la fase de la respuesta en frecuencia de un determinado sistema. Para obtenerlo comenzamos calculando la respuesta en frecuencia de nuestro motor:G ( s) = k2 ( s ) = U ( s ) JLs 2 + ( JR + BL )s + (BR + k1 k 2 ) s

[

]

G ( s) =

k2 JLs + ( JR + BL )s 2 + (BR + k1 k 2 )s3

k2

G ( j ) = G ( s ) s = j =

JL( j ) + ( JR + BL )( j ) + (BR + k1 k 2 )( j )3 2

G ( j ) =

k2 jJL ( JR + BL ) 2 + j (BR + k1 k 2 )3

G ( j ) =

k2 ( JR + BL ) + j (BR + k1 k 2 ) JL 32

[

]

A partir de ella determinamos su mdulo y fase:G ( j ) =

(JR + BL )2 4 + [(BR + k1k 2 ) JL 3 ]2

k2

arg(G ( j ) ) = arctg

(BR + k1k 2 ) JL 3 ( JR + BL ) 2

Matlab proporciona la funcin bode() para realizar todos los clculos anteriores y su representacin grfica de forma sencilla.

12

Haciendo uso de la funcin indicada, el resultado alcanzado es el siguiente:

Figura 6: Diagrama de Bode del motor en lazo abierto

Del diagrama de Bode se puede extraer mucha informacin. Para ello hemos realizado un programa en Matlab que calcula algunos parmetros caractersticos de la respuesta en frecuencia del sistema: El motor funciona como un filtro paso bajo en frecuencia. El ancho de banda es: B = 36,97 rad s Podemos determinar la posicin de los polos buscando los puntos donde cambia de pendiente el mdulo de la respuesta en frecuencia: Como la grfica del mdulo empieza con una pendiente de -20 dB/dec podemos concluir que hay un polo en 0. En concreto, hemos visto que el polo est en = 0. Hay otro polo entre = 10 rad/s y = 100 rad/s. En el apartado 2.3.1 Diagrama polos-ceros. Conclusiones hemos calculado que el polo est situado en = 50,808 rad/s. El tercer polo est situado entre = 1000 rad/s y = 10000 rad/s. Tericamente hemos calculado previamente que el polo est situado en = 6566.943 rad/s.

13

Adems, podemos sacar algunas conclusiones sobre la estabilidad del sistema en lazo cerrado calculando el margen de ganancia MG, el margen de fase MF, la frecuencia de cruce de fase cp y la frecuencia de cruce de ganancia cp (ver definiciones en el apartado 3.4.2. Relaciones con los parmetros de diseo de la respuesta en frecuencia) MG(dB) = 46,97dB MF = 62,37 cp = 577,62 rad s cg = 26,34 rad s Dado que se verifica que: MG (dB) = 46,97dB > 0 MF = 62,37 > 0 podemos concluir que el sistema en lazo cerrado tiene una estabilidad garantizada, aun cuando la ganancia en lazo abierto y las constantes de tiempo de los componentes varen en cierto grado. Esperamos comprobar estos resultados en el apartado 5. Estudio del motor en un sistema en lazo cerrado.

14

2.3.4 Diagrama de Nyquist. Conclusiones El diagrama de Nyquist consiste en representar simultneamente el mdulo y la fase de la respuesta en frecuencia de un determinado sistema. Para obtenerlo hacemos uso de los resultados obtenidos en el apartado 2.3.1 Diagrama polos-ceros. Conclusiones. En dicho apartado hemos llegado a la conclusin de que el sistema en lazo abierto no tiene ceros y tiene tres polos reales, uno de ellos en el origen (es un sistema tipo 1). Por lo tanto, la funcin de transferencia se puede expresar de modo genrico de la siguiente forma:G ( s) = s (s p2 )(s p3 ) K

Entonces, la respuesta en frecuencia ser:G ( j ) = G (s ) s = j = K j ( j p2 )( j p3 )

Expresada de forma genrica es fcil determinar su mdulo y fase:G ( j ) = K2 p + 2 p3 + 2 2 2

arctg arg(G ( j )) = 90 arctg p p 2 3

Para dibujar el diagrama de Nyquist habra que ir dando valores a y obtener el valor asociado de |G(j )| y arg(G(j )). Por ejemplo, para = 0 tenemos que:G ( j ) = 0 = K2 2 p 2 + 2 p3 + 2

= =0

arg(G ( j ) ) =0 = 90 arctg = 90 arctg (0 ) arctg (0 ) = 90 p arctg p 2 3 =0

15

y para = :G ( j ) = = K2 2 p 2 + 2 p3 + 2

=0 =

arg(G ( j ) ) = = 90 arctg = 90 arctg ( ) arctg ( ) = 270 p arctg p 2 3 =

Estos resultados coinciden con los obtenidos en el diagrama de Bode. Adems, son los esperados para un sistema tipo 1 del que sabemos que: El trmino j del denominador contribuye -90 al ngulo de fase total de G(j) para 0 . En = 0 , la magnitud de G(j) es infinita y el ngulo de fase se convierte en -90. En bajas frecuencias, el diagrama polar es asinttico hacia una lnea paralela al eje imaginario negativo. En = , la magnitud se vuelve cero y la curva converge hacia el origen y es tangente a uno de los ejes. En este caso, es tangente al semieje imaginario positivo. Obtenemos el diagrama de Nyquist completo con ayuda del comando nyquist() de Matlab. Hemos tenido cuidado para que slo aparezca el diagrama correspondiente a la regin de frecuencias positivas puesto que Matlab, por defecto, representa tambin la parte asociada a las frecuencias negativas, que no tienen sentido fsicamente. El resultado obtenido es el siguiente:

Figura 7: Diagrama de Nyquist del motor en lazo abierto16

3. Aproximacin del motor en lazo abierto como sistema de 2 orden3.1 Justificacin Antes de nada, reflejar que este apartado es principalmente terico. Hemos decidido incluirlo porque nos parece importante dejar constancia de que, aunque el motor se trate de un sistema de tercer orden, podemos aproximarlo por un sistema de segundo orden. En el apartado anterior, 2. Estudio del motor en lazo abierto como sistema de 3er orden, hemos obtenido entre otros resultados la funcin de transferencia del motor para la posicin.G ( s) = k2 ( s ) = 2 U ( s ) JLs + ( JR + BL )s + (BR + k1 k 2 ) s

[

]

Como decamos, esta funcin de transferencia pertenece a un sistema de tercer orden dado que tiene tres polos. En el apartado 3.2. Clculo de la funcin de transferencia vamos a simplificar esta funcin por la de un sistema de segundo orden con slo dos polos. Esta simplificacin nos va a permitir desarrollar el apartado 3.3 Relacin entre los parmetros del motor (R, L, B y J) y los caractersticos de un sistema de 2 orden cannico ( y n). La ventaja de hacer esto es que conocemos expresiones que relacionan los parmetros de diseo que fijaremos en el apartado 4. Caracterizacin de los parmetros de diseo con el coeficiente de amortiguamiento y la frecuencia natural no amortiguada n propios de un sistema de segundo orden. Hemos recogido esas expresiones en el apartado 3.4 Relacin de los parmetros de diseo en el tiempo y en la frecuencia con los parmetros caractersticos de un sistema de 2 orden ( y n).

17

3.2 Clculo de la funcin de transferencia En el desarrollo del apartado 2.3.1. Diagrama polos-ceros. Conclusiones hemos determinado que los polos de la funcin de transferencia para la posicin de un motor:G ( s) = k2 ( s ) = 2 U ( s ) JLs + ( JR + BL )s + (BR + k1 k 2 ) s

[

]

son:p1 = 0

p2 =

( JR + BL ) +

(JR + BL )2 4JL(BR + k1k 2 )2 JL

= 50,808

p3 =

( JR + BL )

(JR + BL )2 4JL(BR + k1k 2 )2 JL

= 6566,943

Como el polo p3 es dos rdenes de magnitud superior que p2, podemos considerar que ste ltimo es el polo dominante. De esta forma se justifica que la funcin de transferencia expresada como cociente de ceros y polos:( s ) 9,89910 6 K = = G ( s) = U ( s ) s(s p2 )(s p3 ) s(s + 50,808)(s + 6566,943)

se puede simplificar por un sistema de segundo orden:G ( s ) orden 2 ( s ) 9,89910 6 K = = = U ( s ) s(s p2 ) s(s + 50,808)

18

3.3 Relacin entre los parmetros del motor (R, L, B y J) y los caractersticos de un sistema de 2 orden ( y n) La expresin cannica de un sistema de 2 orden en lazo abierto viene dada por la siguiente expresin, donde es el coeficiente de amortiguamiento y n es la pulsacin natural no amortiguada:G ( s ) cannica2 n = s(s + 2 n )

Identificando trminos con la expresin de G(s)orden2 calculada en el apartado anterior obtenemos que el valor de la frecuencia natural no amortiguada del motor simplificado es:2 n = K =

k2 JL

k2 = 9,89910 6 = 3,146 krad s JL

n = K =

y que el valor de la constante de amortiguamiento es:2 n = p 2

( JR + BL ) +

=

p2 = 2 n

(JR + BL )2 4JL(BR + k1k 2 )2 JL 2 n

=

50,808 = 0,008 23,14610 3

Este valor del coeficiente de amortiguamiento tan bajo clasifica nuestro sistema con una dinmica de subamortiguamiento, puesto que = 0,008 < 1 . Como esperamos comprobar en el apartado 5. Estudio del motor en un sistema en lazo cerrado, este valor de va a implicar que la respuesta al escaln tenga sobreelongacin, esto es, que la salida va a sobrepasar su valor final durante el rgimen transitorio.

19

3.4 Relacin de los parmetros de diseo en el tiempo y en la frecuencia con los parmetros caractersticos de un sistema de 2 orden ( y n) Este apartado es totalmente terico. Presentamos la definicin de los parmetros de diseo para la respuesta transitoria y en frecuencia de un sistema as como un conjunto de expresiones que relacionan estos parmetros con los parmetros caractersticos de un sistema de 2 orden. La informacin ha sido extrada de varias fuentes que se pueden consultar en el apartado 9. Referencias bibliogrficas. 3.4.1 Relaciones con los parmetros de diseo de la respuesta transitoria a un escaln unitario Tiempo de retardo, td El tiempo de retardo es el tiempo requerido para que la respuesta alcance la primera vez la mitad del valor final.td 1 + 0,7

n

,

0 <

R L J B k1 k2

= = = = = =

resistencia en bornes inductancia en bornes inercia del rotor friccin mecnica constante de FEM constante de par

% Parmetros del motor en SI R = R; % Ohm L = L * 10^(-6); % H J = J * 10^(-7); % kg*m^2 B = B; % N*m*rad/s k1 = k1 * 10^(-3); % V*s/rad k2 = k2 * 10^(-3); % N*m/A

--> --> --> --> --> -->

R L J B k1 k2

= = = = = =

resistencia en bornes inductancia en bornes inercia del rotor friccin mecnica constante de FEM constante de par

% Funcin de transferencia del motor para la posicin num = k2; den = [J*L (J*R + B*L) (B*R + k1*k2) 0]; G = tf (num,den);

71

10.2 Simulacin del motor en lazo abierto como sistema de tercer orden% -------------------------------------------------------------------% SIMULACIN DEL MOTOR EN LAZO ABIERTO COMO SISTEMA DE TERCER ORDEN % -------------------------------------------------------------------lazoabierto; % Clculo analtico de los ceros y polos del sistema p1 = 0; p2 = (-(J*R+B*L)+sqrt((J*R+B*L)^2-4*J*L*(B*R+k1*k2)))/(2*J*L); p3 = (-(J*R+B*L)-sqrt((J*R+B*L)^2-4*J*L*(B*R+k1*k2)))/(2*J*L); % Clculo de los ceros y polos del sistema mediante la funcin tf2zp [z,p,k] = tf2zp(num,den); % Diagrama polos-ceros del motor en lazo abierto pzmap(G); title ('Diagrama polos-ceros de la funcin de transferencia del motor en lazo abierto'); pause; % Respuesta al escaln del motor en lazo abierto step(G); title('Respuesta a un escaln unitario del motor en lazo abierto'); xlabel('Tiempo'); ylabel('Salida (rad)'); pause; % Respuesta a la rampa del motor en lazo abierto t = 0:0.1:100; u_rampa = t; z = lsim(G,u_rampa,t); plot (z,t); title ('Respuesta a una rampa del motor en lazo abierto'); xlabel('Tiempo (sec)'); ylabel('Salida (rad)'); pause; % Respuesta a una parbola del motor en lazo abierto u_parabola = t.^2; z = lsim(G,u_parabola,t); plot (z,t); title ('Respuesta a una parbola del motor en lazo abierto'); xlabel('Tiempo (sec)'); ylabel('Salida (rad)'); pause; % Bode del motor en lazo abierto w = logspace (-1,6,200); bode (G,w); title('Diagrama de Bode del motor en lazo abierto');

72

% Clculo del ancho de banda [mag,phase,w] = bode (G,w); n = 1; while 20*log10(mag(n)) >= -3 n = n+1; end ancho_banda = w(n); % Clculo del MF, MG, frecuencia de cruce de fase y frecuencia % de cruce de ganancia [MG,MF,wcp,wcg] = margin (G); MGdB = 20*log10(MG); [MGdB MF wcp wcg]; pause; % Nyquist del motor en lazo abierto w = 0:0.1:1000; [re,im] = nyquist(G,w); for i = 1:length(w) real(i,1) = re(1,1,i); imag(i,1) = im(1,1,i); end plot(real,imag); axis ([-2 2 -10 10]); title('Diagrama de Nyquist del motor en lazo abierto'); xlabel('Eje real'); ylabel('Eje imaginario'); grid; pause; close;

73

10.3 Modelado del motor en lazo cerrado% -------------------------------------------------------------------% Modelado del motor en lazo cerrado % -------------------------------------------------------------------lazoabierto; % Funcin de transferencia del motor en lazo cerrado num2 = k2; den2 = [J*L (J*R + B*L) (B*R + k1*k2) k2]; F = tf (num2,den2); % Funcin de transferencia del motor en lazo cerrado (alternativa) % F = feedback(G,1);

74

10.4 Simulacin del motor en lazo cerrado% -------------------------------------------------------------------% SIMULACIN DEL MOTOR EN LAZO CERRADO % -------------------------------------------------------------------lazocerrado; % Clculo de los ceros y polos del sistema mediante la funcin tf2zp [z,p,k] = tf2zp(num2,den2); % Diagrama polos-ceros del motor en lazo cerrado pzmap(F); title ('Diagrama polos-ceros de la funcin de transferencia del motor en lazo cerrado'); axis ([-7000 1000 -40 40]); pause; % Respuesta al escaln de 5V del motor en lazo cerrado step (pi/4*F); axis ([0 0.5 0 1]); title('Respuesta a un escaln de \pi/4 V del motor en lazo cerrado'); xlabel('Tiempo'); ylabel('Salida (rad)'); % Clculo de los parmetros del rgimen transitorio t = 0:0.001:3; [y,t] = step(pi/4*F,t); % Tiempo de subida r = 1; while y(r) < pi/4 + 0.001 r = r+1; end tiempo_subida = (r-1)*0.001; % Tiempo de pico y sobreelongacin mxima [ymax,tp] = max(y); tiempo_pico = (tp - 1)*0.001 sobreelongacion_max = ymax; sobreelongacion_max_porc = (ymax - pi/4)*100/(pi/4); % Tiempo de asentamiento s = length(t); while y(s) > (0.98*pi/4) & y(s) < (1.02*pi/4); s = s - 1; end tiempo_asentamiento = (s - 1)*0.001; pause;

75

% Respuesta a la rampa del motor en lazo cerrado t = 0:0.1:100; u_rampa = t; z = lsim(F,u_rampa,t); plot (z,t); title ('Respuesta a una rampa del motor en lazo cerrado'); xlabel('Tiempo (sec)'); ylabel('Salida (rad)'); pause; % Respuesta a una parbola del motor en lazo cerrado u_parabola = t.^2; z = lsim(F,u_parabola,t); plot (z,t); title ('Respuesta a una parbola del motor en lazo cerrado'); xlabel('Tiempo (sec)'); ylabel('Salida (rad)'); pause; % Bode del motor en lazo cerrado w = logspace (-1,6,1000); bode(F,w); title('Diagrama de Bode del motor en lazo cerrado'); % Clculo de la frecuencia de resonancia, el pico de resonancia % y el ancho de banda [mag,phase,w] = bode (F,w); [Mr,k] = max(mag); pico_resonante = 20 * log10(Mr); frecuencia_resonante = w(k); n = 1; while 20*log10(mag(n)) >= -3 n = n + 1; end ancho_banda = w(n); pause; % Nyquist del motor en lazo cerrado w = 0:0.1:1000; [re,im] = nyquist(F,w); for i = 1:length(w) real(i,1) = re(1,1,i); imag(i,1) = im(1,1,i); end plot(real,imag); title('Diagrama de Nyquist del motor en lazo cerrado'); xlabel('Eje real'); ylabel('Eje imaginario'); grid; pause; close;

76

10.5 Pruebas para ver cmo se relacionan los parmetros de diseo con la posicin de los polos del sistema% % % % -------------------------------------------------------------------Pruebas para ver cmo se relacionan los parmetros de diseo con la posicin de los polos del sistema --------------------------------------------------------------------

r=0; t = 0:0.001:3; % PRUEBA 1 % Fijamos b,c,d = 1 y variamos 1 < a < 100 for i=1:100 % Establecimiento de los parmetros a = i; b = 1; c = 1; d = 1; % Creacin de las funciones de transferencia Fyr y Fyd numer1 = [(a^2+b^2+2*a*(c+d)+c*d) ((c+d)*(a^2+b^2)+2*a*c*d) c*d*(a^2+b^2)]; numer2 = [9.899*10^6 0]; denom = [1 (2*a+c+d) (a^2+b^2+2*a*(c+d)+c*d) ((c+d)*(a^2+b^2)+2*a*c*d) c*d*(a^2+b^2)]; Fyr = tf (numer1,denom); Fyd = tf (numer2,denom); % Respuesta al escaln de Fyr y Fyd [yr,t] = step(pi/4*Fyr,t); [yd,t] = step(Fyd,t); % Clculo de los parmetros del rgimen transitorio Mp1 = max(yr); Mp2 = max(yd); s = length(t); while yr(s) > (0.98*pi/4) & yr(s) < (1.02*pi/4) s = s - 1; end ts = (s - 1)*0.01; wn = sqrt(a^2+b^2); epsilon = a/wn; r = r+1; tabla(r,:) = [a b c d Mp1 Mp2 (Mp1+Mp2) ts epsilon]; end

77

% PRUEBA 2 % Fijamos b,c,d = 100 y variamos 1 < a < 100 for i=1:100 % Establecimiento de los parmetros a = i; b = 100; c = 100; d = 100; % Creacin de las funciones de transferencia Fyr y Fyd numer1 = [(a^2+b^2+2*a*(c+d)+c*d) ((c+d)*(a^2+b^2)+2*a*c*d) c*d*(a^2+b^2)]; numer2 = [9.899*10^6 0]; denom = [1 (2*a+c+d) (a^2+b^2+2*a*(c+d)+c*d) ((c+d)*(a^2+b^2)+2*a*c*d) c*d*(a^2+b^2)]; Fyr = tf (numer1,denom); Fyd = tf (numer2,denom); % Respuesta al escaln de Fyr y Fyd [yr,t] = step(pi/4*Fyr,t); [yd,t] = step(Fyd,t); % Clculo de los parmetros del rgimen transitorio Mp1 = max(yr); Mp2 = max(yd); s = length(t); while yr(s) > (0.98*pi/4) & yr(s) < (1.02*pi/4) s = s - 1; end ts = (s - 1)*0.01; wn = sqrt(a^2+b^2); epsilon = a/wn; r = r+1; tabla(r,:) = [a b c d Mp1 Mp2 (Mp1+Mp2) ts epsilon]; end

78

% PRUEBA 3 % Fijamos a,c,d = 1 y variamos 1 < b < 100 for i=1:100 % Establecimiento de los parmetros a = 1; b = i; c = 1; d = 1; % Creacin de las funciones de transferencia Fyr y Fyd numer1 = [(a^2+b^2+2*a*(c+d)+c*d) ((c+d)*(a^2+b^2)+2*a*c*d) c*d*(a^2+b^2)]; numer2 = [9.899*10^6 0]; denom = [1 (2*a+c+d) (a^2+b^2+2*a*(c+d)+c*d) ((c+d)*(a^2+b^2)+2*a*c*d) c*d*(a^2+b^2)]; Fyr = tf (numer1,denom); Fyd = tf (numer2,denom); % Respuesta al escaln de Fyr y Fyd [yr,t] = step(pi/4*Fyr,t); [yd,t] = step(Fyd,t); % Clculo de los parmetros del rgimen transitorio Mp1 = max(yr); Mp2 = max(yd); s = length(t); while yr(s) > (0.98*pi/4) & yr(s) < (1.02*pi/4) s = s - 1; end ts = (s - 1)*0.01; wn = sqrt(a^2+b^2); epsilon = a/wn; r = r+1; tabla(r,:) = [a b c d Mp1 Mp2 (Mp1+Mp2) ts epsilon]; end

79

% PRUEBA 4 % Fijamos a,c,d = 100 y variamos 1 < b < 100 for i=1:100 % Establecimiento de los parmetros a = 100; b = i; c = 100; d = 100; % Creacin de las funciones de transferencia Fyr y Fyd numer1 = [(a^2+b^2+2*a*(c+d)+c*d) ((c+d)*(a^2+b^2)+2*a*c*d) c*d*(a^2+b^2)]; numer2 = [9.899*10^6 0]; denom = [1 (2*a+c+d) (a^2+b^2+2*a*(c+d)+c*d) ((c+d)*(a^2+b^2)+2*a*c*d) c*d*(a^2+b^2)]; Fyr = tf (numer1,denom); Fyd = tf (numer2,denom); % Respuesta al escaln de Fyr y Fyd [yr,t] = step(pi/4*Fyr,t); [yd,t] = step(Fyd,t); % Clculo de los parmetros del rgimen transitorio Mp1 = max(yr); Mp2 = max(yd); s = length(t); while yr(s) > (0.98*pi/4) & yr(s) < (1.02*pi/4) s = s - 1; end ts = (s - 1)*0.01; wn = sqrt(a^2+b^2); epsilon = a/wn; r = r+1; tabla(r,:) = [a b c d Mp1 Mp2 (Mp1+Mp2) ts epsilon]; end

80

% PRUEBA 5 % Fijamos a,b = 1 y variamos 1 < c,d < 100 for i=1:100 % Establecimiento de los parmetros a = 1; b = 1; c = i; d = i; % Creacin de las funciones de transferencia Fyr y Fyd numer1 = [(a^2+b^2+2*a*(c+d)+c*d) ((c+d)*(a^2+b^2)+2*a*c*d) c*d*(a^2+b^2)]; numer2 = [9.899*10^6 0]; denom = [1 (2*a+c+d) (a^2+b^2+2*a*(c+d)+c*d) ((c+d)*(a^2+b^2)+2*a*c*d) c*d*(a^2+b^2)]; Fyr = tf (numer1,denom); Fyd = tf (numer2,denom); % Respuesta al escaln de Fyr y Fyd [yr,t] = step(pi/4*Fyr,t); [yd,t] = step(Fyd,t); % Clculo de los parmetros del rgimen transitorio Mp1 = max(yr); Mp2 = max(yd); s = length(t); while yr(s) > (0.98*pi/4) & yr(s) < (1.02*pi/4) s = s - 1; end ts = (s - 1)*0.01; wn = sqrt(a^2+b^2); epsilon = a/wn; r = r+1; tabla(r,:) = [a b c d Mp1 Mp2 (Mp1+Mp2) ts epsilon]; end

81

% PRUEBA 6 % Fijamos a,b = 100 y variamos 1 < c,d < 100 for i=1:100 % Establecimiento de los parmetros a = 100; b = 100; c = i; d = i; % Creacin de las funciones de transferencia Fyr y Fyd numer1 = [(a^2+b^2+2*a*(c+d)+c*d) ((c+d)*(a^2+b^2)+2*a*c*d) c*d*(a^2+b^2)]; numer2 = [9.899*10^6 0]; denom = [1 (2*a+c+d) (a^2+b^2+2*a*(c+d)+c*d) ((c+d)*(a^2+b^2)+2*a*c*d) c*d*(a^2+b^2)]; Fyr = tf (numer1,denom); Fyd = tf (numer2,denom); % Respuesta al escaln de Fyr y Fyd [yr,t] = step(pi/4*Fyr,t); [yd,t] = step(Fyd,t); % Clculo de los parmetros del rgimen transitorio Mp1 = max(yr); Mp2 = max(yd); s = length(t); while yr(s) > (0.98*pi/4) & yr(s) < (1.02*pi/4) s = s - 1; end ts = (s - 1)*0.01; wn = sqrt(a^2+b^2); epsilon = a/wn; r = r+1; tabla(r,:) = [a b c d Mp1 Mp2 (Mp1+Mp2) ts epsilon]; end

82

% PRUEBA 7 % Fijamos b = a/2, c,d = (6617.751-2*a)/2 y variamos 1 < a < 100 for i=1:100 % Establecimiento de los parmetros a = i; b = a/2; c = (6617.751-2*a)/2; d = c; % Creacin de las funciones de transferencia Fyr y Fyd numer1 = [(a^2+b^2+2*a*(c+d)+c*d) ((c+d)*(a^2+b^2)+2*a*c*d) c*d*(a^2+b^2)]; numer2 = [9.899*10^6 0]; denom = [1 (2*a+c+d) (a^2+b^2+2*a*(c+d)+c*d) ((c+d)*(a^2+b^2)+2*a*c*d) c*d*(a^2+b^2)]; Fyr = tf (numer1,denom); Fyd = tf (numer2,denom); % Respuesta al escaln de Fyr y Fyd [yr,t] = step(pi/4*Fyr,t); [yd,t] = step(Fyd,t); % Clculo de los parmetros del rgimen transitorio Mp1 = max(yr); Mp2 = max(yd); s = length(t); while yr(s) > (0.98*pi/4) & yr(s) < (1.02*pi/4) s = s - 1; end ts = (s - 1)*0.01; wn = sqrt(a^2+b^2); epsilon = a/wn; r = r+1; tabla(r,:) = [a b c d Mp1 Mp2 (Mp1+Mp2) ts epsilon]; end

83

10.6 Simulacin del controlador diseado% -------------------------------------------------------------------% Simulacin del controlador diseado % -------------------------------------------------------------------% --------------------------------------------------% Funciones de transferencia % --------------------------------------------------calculosauxiliares; r=0; t = 0:0.00001:3; % a b c d Establecimiento de los parmetros de los polos = 20; = 10; = (6617.751-2*a)/2; = c;

% Numerador de Fyr numer1 = [(a^2+b^2+2*a*(c+d)+c*d) ((c+d)*(a^2+b^2)+2*a*c*d) c*d*(a^2+b^2)]; % Numerador de Fyd numer2 = [9.899*10^6 0]; % Numerador de Fyn numer3 = [-K*k -K*k*(amasb) -K*k*ab]; % Denominador comn denom = [1 (2*a+c+d) (a^2+b^2+2*a*(c+d)+c*d) ((c+d)*(a^2+b^2)+2*a*c*d) c*d*(a^2+b^2)]; % Funciones de transferencia Fyr = tf (numer1, denom); Fyd = tf (numer2, denom); Fyn = tf (numer3, denom);

% --------------------------------------------------% Respuesta al escaln de Fyr % --------------------------------------------------step(pi/4*Fyr,t); axis ([0 0.15 0 0.9]); title('Respuesta del sistema para r(t) constante'); xlabel('Tiempo'); ylabel('Salida (rad)'); % Clculo de los parmetros [yr,t] = step(pi/4*Fyr,t); % Tiempo de subida r = 1; while yr(r) < pi/4 + 0.001 r = r+1; end tiempo_subida_Fyr = (r-1)*0.00001;

84

% Tiempo de pico y sobreelongacin mxima [ymax,tp] = max(yr); tiempo_pico_Fyr = (tp - 1)*0.00001; sobreelongacion_max_Fyr = ymax; sobreelongacion_max_porc_Fyr = (ymax - pi/4)*100/(pi/4); % Tiempo de asentamiento s = length(t); while yr(s) > (0.98*pi/4) & yr(s) < (1.02*pi/4); s = s - 1; end tiempo_asentamiento_Fyr = (s - 1)*0.00001; pause; % --------------------------------------------------% Respuesta al escaln de Fyd % --------------------------------------------------step(Fyd,t); axis ([0 1 0 0.02]); title('Respuesta del sistema para d(t) constante'); xlabel('Tiempo'); ylabel('Salida (rad)'); % Clculo de los parmetros [yd,t] = step(Fyd,t); % Tiempo de pico y amplitud mxima [ymax,tp] = max(yd); tiempo_pico_Fyd = (tp - 1)*0.00001; amplitud_max_Fyd = ymax; pause; % --------------------------------------------------% Respuesta al escaln de Fyn % --------------------------------------------------[yn,t] = step(Fyn,t); step(Fyn,t); axis ([0 0.2 -1.4 0]); title('Respuesta del sistema para n(t) constante'); xlabel('Tiempo'); ylabel('Salida (rad)'); pause; % --------------------------------------------------% Respuesta conjunta de r(t) y d(t) % --------------------------------------------------ydr = yd + yr; plot (t, ydr); axis([0 0.2 0 1]); title('Respuesta conjunta del sistema a r(t) y d(t)'); xlabel('Tiempo (sec)'); ylabel('Salida (rad)'); % Tiempo de subida r = 1; while ydr(r) < pi/4 + 0.001 r = r+1; end tiempo_subida_Fydr = (r-1)*0.00001;

85

% Tiempo de pico y sobreelongacin mxima [ymax,tp] = max(ydr); tiempo_pico_Ydr = (tp - 1)*0.00001; sobreelongacion_max_Ydr = ymax; sobreelongacion_max_porc_Ydr = (ymax - pi/4)*100/(pi/4); % Tiempo de asentamiento s = length(t); while ydr(s) > (0.98*pi/4) & ydr(s) < (1.02*pi/4); s = s - 1; end tiempo_asentamiento_Ydr = (s - 1)*0.00001; pause; % --------------------------------------------------% Respuesta a la rampa % --------------------------------------------------u_rampa = t; z = lsim(Fyr,u_rampa,t); plot (z,t); axis([0 3 0 3]); title ('Respuesta del sistema a una rampa'); xlabel('Tiempo (sec)'); ylabel('Salida (rad)'); pause; % --------------------------------------------------% Respuesta a la parbola % --------------------------------------------------u_parabola = t.^2; z = lsim(Fyr,u_parabola,t); plot (z,t); axis([0 9 0 3]); title ('Respuesta del sistema a una parbola'); xlabel('Tiempo (sec)'); ylabel('Salida (rad)'); pause;

% --------------------------------------------------% Diagrama de Bode del sistema % --------------------------------------------------w = logspace (-1,6,1000); bode(Fyr,w); title('Diagrama de Bode del sistema'); % Clculo de la frecuencia de resonancia, el pico de resonancia % y el ancho de banda [mag,phase,w] = bode (Fyr,w); [Mr,k] = max(mag); pico_resonante = 20 * log10(Mr) frecuencia_resonante = w(k) n = 1; while 20*log10(mag(n)) >= -3 n = n + 1; end ancho_banda = w(n) pause;

86

87