TALLER Rta SistemasMatlab

Embed Size (px)

Citation preview

  • 8/18/2019 TALLER Rta SistemasMatlab

    1/11

    TALLER SIMULACIÓN DIGITAL

    MODELADO Y SIMULACIÓN DE SISTEMAS EN TIEMPO CONTINUO

    Introducción.

    Para el desarrollo de las actividades propuestas en este taller, se deben considerar los modelosmatemáticos cuantitativos y en tiempo continuo de los diversos componentes y sistemas físicos.En este sentido, las ecuaciones diferenciales que describen el comportamiento dinámico delsistema físico se utilizan para construir un modelo matemático. Los sistemas físicos consideradosincluyen sistemas mecánicos, eléctricos, de fluidos y termodinámicos. Es posible utilizaraproximaciones lineales usando desarrollos en serie de Taylor respecto al punto de operación,para obtener una aproximación lineal de pequeña señal para componentes no lineales. Entonces,con la aproximación de un sistema lineal, se puede emplear la transformación de Laplace  y surelación de entrada-salida asociada dada por la función de transferencia. El método de la funciónde transferencia para sistemas lineales permite al analista determinar la respuesta del sistema adiferentes señales de entrada en términos de la localización de los polos y ceros de la función detransferencia. Empleando las notaciones de la función de transferencia, es posible desarrollar losmodelos de los diagramas de bloques para los sistemas de componentes interconectados. De estaforma, mediante diagramas de bloques es posible analizar la relación entre las variables de unsistema complejo con realimentación y diferentes procesos intermedios.

    Objetivos

    La finalidad de las actividades propuestas, consiste en afianzar conocimientos para determinar unmodelo matemático útil para sistemas físicos que incluyan realimentación y procesos intermedios.

    De tal forma que a partir del desarrollo del concepto de función de transferencia para un sistemalineal se estudie la relación entre las variables del sistema usando el diagrama de bloques.Además, considerar la utilidad de la simulación por computador para sistemas lineales y nolineales, con el objeto de determinar la respuesta (tiempo y frecuencia) de un sistema paradiferentes condiciones de sus parámetros y el entorno.

    Ejercicios desarrollados.

    La aplicación de muchas de las herramientas de análisis de sistemas físicos se basa en modelosmatemáticos. MATLAB se puede utilizar con sistemas descritos en la forma de función detransferencia.

    Se comienza mostrando cómo utilizar MATLAB para ayudar en el análisis de un típico modelomatemático de un sistema mecánico formado por un resorte-masa-amortiguador. Utilizando unprograma escrito en MATLAB, se desarrollará una capacidad de análisis interactivo para estudiarlos efectos de la frecuencia natural y el amortiguamiento sobre la respuesta no forzada deldesplazamiento de la masa.

    Posteriormente, se presentarán las funciones de transferencias y los diagramas de bloques. Enparticular, el interés se centra en cómo MATLAB puede servir de ayuda para manipular

  • 8/18/2019 TALLER Rta SistemasMatlab

    2/11

    polinomios, calcular funciones de transferencia en lazo cerrado, obtener reducciones de losdiagramas de bloques y calcular la respuesta de un sistema a un escalón de entrada unitario.

    ANÁLISIS EN EL TIEMPO DE SISTEMAS LIT

    En la figura 1 se muestra un sistema mecánico resorte-masa-amortiguador. El movimiento de la

    masa, denotado por y(t), se describe por la ecuación diferencial

    + + = (t)

    Figura 1. Sistema mecánico

    La respuesta dinámica no forzada, y (t), del sistema mecánico resorte-masa-amortiguador es:

    = 0 1 − 2 − ( 1 − 2 + ) 

    Donde = −1(). El desplazamiento inicial es y (0). La respuesta transitoria del sistema essub-amortiguada cuando < 1, sobre-amortiguada cuando > 1  y críticamente amortiguadacuando = 1. Se puede utilizar MATLAB para visualizar la respuesta temporal no forzada deldesplazamiento de la masa a partir de un desplazamiento inicial y(0). Sea el caso sub-amortiguado

    0 = 0.15 m, =  2 , 2 = 12 2  ( = 2 , = 1) Las órdenes en MATLAB para generar las gráficas de la respuesta no forzada son:

    >> y0=0.15;

    >> wn=sqrt(2); ← −− − − − − − − − − − − − − − − − − −   

  • 8/18/2019 TALLER Rta SistemasMatlab

    3/11

    >> zeta=1/(2*sqrt(2)); ← −− − − − − − − − − − − − − − − −   >> t=[0:0.1:10];

    >> unforced

    Unforced.m

    % Calcular la respuesta no forzada a una condición inicial.

    c= (y0/sqrt(1-zeta^2)); ← −− − − − − − − − − − − − − − − −  (0)/  1 − 2 y=c*exp(-zeta*wn*t).*sin(wn*sqrt(1-zeta^2)*t+acos(zeta));

     bu=c*exp(-zeta*wn*t); bl=-bu; ← −− − − − − − − − − − − − −   − envolvente plot(t,y,t,bu,'--',t,bl,'--'),grid

    xlabel(„Time(Sec)‟), ylabel(„y(t) (meters)‟) 

    legend([„\omega_n=‟,num2str(wn),‟ \zeta=‟,num2str (zeta)])

    En la preparación de MATLAB, las variables y(0), , t y  son entradas al espacio de trabajo alnivel de órdenes. Al ejecutar el programa se obtiene la figura 2.

    Figura 2. Respuesta no forzada del resorte-masa-amortiguador

    0 1 2 3 4 5 6 7 8 9 10-0.2

    -0.15

    -0.1

    -0.05

    0

    0.05

    0.1

    0.15

    0.2

    Time(Sec)

      y   (   t   )   (  m  e   t  e  r  s   )

    n=1.4142 =0.35355

  • 8/18/2019 TALLER Rta SistemasMatlab

    4/11

    Lo anterior crea una capacidad de análisis interactivos para estudiar los efectos de la frecuencianatural y el amortiguamiento sobre la respuesta no forzada del desplazamiento de la masa. Sepueden investigar los efectos de la frecuencia natural y del amortiguamiento sobre la respuestatemporal simplemente introduciendo los nuevos valores de   y   en la línea de órdenes deMATLAB y ejecutando el programa “unforced.m” otra vez.

    Para el problema masa-resorte-amortiguador, la solución no forzada de la ecuación diferencial estádisponible de forma inmediata. En general, cuando se simula un sistema de control con

    realimentación sujeto a una variedad de entradas y condiciones iniciales, es difícil obtener la

    solución analíticamente. En estos casos, se puede utilizar MATLAB para calcular las soluciones

    numéricamente y visualizar la solución de forma gráfica.

    MATLAB se puede utilizar para analizar sistemas descritos por funciones de transferencia. Como la

    función de transferencia es una razón de polinomios, se comienza por investigar cómo MATLAB

    maneja polinomios, recordando que con funciones de transferencia este trabajo significa que ambos

     polinomios del numerador y del denominador deben especificarse.

    En MATLAB, los polinomios se representan por vectores filas que contienen los coeficientes del

     polinomio en orden descendente. Por ejemplo, el polinomio

    P(s) = S3+3S2+4

    Se introduce en MATLAB de la siguiente forma:

    >> p = [1 3 0 4]; ← −− − − − − − − − − − − − − − − −  = 3 + 32 + 4 Obsérvese que incluso aunque el coeficiente del término en S es cero, se incluye en la definición de

    la entrada p(s).

    Para calcular las raíces del polinomio se ejecuta el siguiente comando:

    >> R = roots (p) ← −− − − − − − − − − − − −   í   = 3 + 32 + 4 R = -3.3553

    0.1777 + 1.0773i

    0.1777 - 1.0773i

    De esta forma, si p es un vector fila que contiene los coeficientes de p(s) en orden descendente,

    entonces mediante la función “roots”  se obtiene el vector columna R que contiene las raíces del

     polinomio. Inversamente, si R es un vector columna que contiene las raíces del polinomio, entonces

    la función “ poly” entrega un vector fila con los coeficientes del polinomio en orden descendente

    así:

    >> p = poly(R)

     p = [1.0000 3.0000 0.0000 4.0000]

    La multiplicación de polinomios se lleva a cabo con la función “conv”. Supóngase que se desea

    expandir el polinomio

  • 8/18/2019 TALLER Rta SistemasMatlab

    5/11

    n(s) = (3s2+2s+1) (s+4)

    Las órdenes asociadas en MATLAB son:

    >> p = [3 2 1]; q = [1 4];

    >> n=conv(p,q) ← −− − − − − − − − − − − −     () n = [3 14 9 4] ← −− − − − − − −       = 3s3+14s2+9s+4Además, la función “ polyval” se utiliza para evaluar el valor de un polinomio en el valor dado de la

    variable. El polinomio n(s) tiene el valor n(-5) = -66 tal como se muestra a continuación:

    >> value=polyval(n,-5) ← −− − − − − − − − − − − −       = −5 value= -66

    RESPUESTA AL ESCALÓN Y RESPUESTA AL IMPULSO

    La función “step” es muy importante, puesto que las especificaciones de comportamiento de un

    sistema se suelen dar con frecuencia en función de la respuesta [y(t)] a un escalón unitario [u(t)],

    como se observa en la figura 8.

    Figura 8. Respuesta al escalón

    Si el objetivo solamente es dibujar la salida y(t), se puede utilizar la función “step” sin losargumentos del lado izquierdo y así obtener de forma automática la gráfica con etiquetas en los ejes.

    Como ejemplo, se considera una unidad de disco con los siguientes parámetros (Capítulo 2 del libro

    sistemas de control moderno Richard C.Dorf):

    Parámetros Símbolo Valor típicoInercia del brazo y cabeza de lectura J 1 N.m.s

    2/rad

    Fricción B 20 Kg/m/s

    Amplificador K a  10-1000

    Constante de la fuerza contraelectromotriz R 1Ω 

    Resistencia del motor K m  5 N.m/A

    Inductancia del motor L 1 mH

    El modelo queda especificado por la función de transferencia:

    = 5000 + 20( + 1000) La respuesta al escalón se obtiene como:

  • 8/18/2019 TALLER Rta SistemasMatlab

    6/11

    >> numg=[5000];deng=conv([1 0],conv([1 20],[1 1000]));G=tf(numg,deng)

    Transfer function:

    5000

    ------------------------

    s^3 + 1020 s^2 + 20000 s

    >> step(G)

    Figura 9. Respuesta al escalón de una unidad de disco.

    Se observa que el sistema descrito por G(s) es inestable. Además, el sistema tiene tres polos

    ubicados en s=0, s= -20 ( = 50 ) y s= -1000 ( = 1 ), claramente los polos ubicados en 0 y -20 contienen el comportamiento dominante de la respuesta transitoria del sistema. Lo anterior

    significa que es posible aproximar el comportamiento de la unidad de disco como un sistema de

    segundo orden, así:

    = 5 + 20 La respuesta al escalón para el sistema aproximado es:

    0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4 0.45 0.50

    0.02

    0.04

    0.06

    0.08

    0.1

    0.12Step Response

    Time (sec)

          A     m     p      l      i      t    u      d     e

  • 8/18/2019 TALLER Rta SistemasMatlab

    7/11

    >> numg=[5];deng=conv([1 0],[1 20]);G=tf(numg,deng)

    Transfer function:

    5

    ----------

    s^2 + 20 s

    >> step(G)

    Figura 10. Respuesta al escalón de la unidad de disco aproximada a un sistema de Segundo orden.

    Se observa que no existen diferencias significativas en la respuesta al escalón del sistema

    aproximado.

    La respuesta al impulso se calcula mediante la función “impulse”: 

    >> impulse(G)

    0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4 0.45 0.50

    0.02

    0.04

    0.06

    0.08

    0.1

    0.12Step Response

    Time (sec)

       A  m  p   l   i   t  u   d  e

  • 8/18/2019 TALLER Rta SistemasMatlab

    8/11

     

    Figura 11. Respuesta al impulso de la unidad de disco con el modelo aproximado

    De la respuesta al impulso se concluye que el sistema es inestable, causal y con memoria.

    ANÁLISIS MEDIANTE MODELOS EN VARIABLES DE ESTADO

    El método en el dominio del tiempo utiliza una representación en el espacio de estados del modelo

    del sistema dada por:

      =  +     = +  El vector x es el estado del sistema, A es la matriz del sistema constante nxn,  B es la matriz deentrada constante nxm, C es la matriz de salida constante pxn, y D es una matriz constante pxm. Elnúmero de entradas, m, y el número de salidas, p. Los elementos principales de la representación en

    el espacio de estados son el vector de estado x y las matrices A, B, C y D.

    Dada una función de transferencia, se puede obtener la representación equivalente en el espacio de

    estados y viceversa. La función “tf” puede utilizar se para convertir una representación en el espacio

    de estados a una representación en función de transferencia; la función “ss” se utiliza para convertir

    una representación en función de transferencia a una representación en espacio de estados.

    Por ejemplo, considérese el sistema de tercer orden

    = 22 + 8 + 63 + 82 + 16 + 6 La representación en espacio de estados queda como:

    0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4 0.45 0.50

    0.05

    0.1

    0.15

    0.2

    0.25Impulse Response

    Time (sec)

       A  m  p   l   i   t  u   d  e

  • 8/18/2019 TALLER Rta SistemasMatlab

    9/11

    >> numT=[2 8 6];denT=[1 8 16 6];sysT=tf(numT,denT);

    >> ssT=ss(sysT)

    a =

    x1 x2 x3

    x1 -8 -4 -1.5

    x2 4 0 0

    x3 0 1 0

     b =

    u1

    x1 2

    x2 0

    x3 0

    c =

    x1 x2 x3

    y1 1 1 0.75

    d =

    u1

    y1 0

    Continuous-time model.

    En este caso las matrices que modelan el sistema en el espacio de estado del sistema corresponden

    a:

    A=−8 −4 −1.54 0 00 1 0

    , = 200

    . = 1 1 0.75    = [0] La respuesta temporal del sistema está dada por la solución de la ecuación diferencial vectorial:

  • 8/18/2019 TALLER Rta SistemasMatlab

    10/11

    =  (0) +  −()0

     

    La función exponencial matricial es la matriz de transición de estados , definida como:

    =

      

    Se puede utilizar la función “expm” para calcular la matriz de transición en un determinado instante

    de tiempo. Por ejemplo, considerando la red RLC de la figura 12, con R=3Ω, L=1H y C=1/2 F.

    Figura 12. Circuito RLC serie

    La representación en espacio de estados queda como:

      = 0 −21 −3 , = 20 , = 1 0    = [0] 

    Si las condiciones iniciales son x1(0) = x2(0) = 1 y la entrada u(t) = 0. En t=0.2 la matriz de

    transición de estados (Phi) es:

    >> A=[0 -2; 1 -3];dt=0.2;Phi=expm(A*dt)

    Phi =

    0.9671 -0.2968

    0.1484 0.5219

    Al evaluar x(t), mediante los métodos de transición de estados, se obtienen los estados predichos:

    1

    2

    =0.2= 0.9671 −0.2968

    0.1484 0.5219 1

    2

    =0= 0.6703

    0.6703 

    La respuesta temporal del sistema también puede obtenerse utilizando la función “lsim”, la cual

    acepta condiciones distintas de cero y una función de entrada. De este modo, la respuesta para la

    red RLC es como se muestra en la figura 13, obtenida mediante las siguientes instrucciones enMATLAB:

    >> A=[0 -2;1 -3];B=[2;0];C=[1 0];D=[0];

    >> sys=ss(A,B,C,D); ← −− − − − − − − − − − − −       

  • 8/18/2019 TALLER Rta SistemasMatlab

    11/11

    >> x0=[1 1]; ← −− − − − − − − − − − − −    >> t=[0:0.01:1];

    >> u=0*t; ← −− − − − − − − − − − − −    >> [y,T,x]=lsim(sys,u,t,x0);

    >> subplot(2,1,1 ),plot(T,x(:,1))

    >> xlabel('Time(seconds)'),ylabel('X_1')

    >> subplot(2,1,2 ),plot(T,x(:,2))

    >> xlabel('Time(seconds)'),ylabel('X_2')

    Figura 13. Respuesta temporal usando lsim

    El estado en t=0.2 predicho con la función “lsim” es x1(0.2)= x2(0.2)=0.6703. Si se comparan los

    resultados obtenidos con la función “lsim” con los obtenidos multiplicando el vector de estado de

    condiciones iniciales por la matriz de transición de estados se observará que son idénticos.

    0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 10

    0.5

    1

    Time(seconds)

       X   1

    0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 10

    0.2

    0.4

    0.6

    0.8

    1

    Time(seconds)

       X   2