funciones en matlab.pdf

download funciones en matlab.pdf

of 14

Transcript of funciones en matlab.pdf

  • 7/24/2019 funciones en matlab.pdf

    1/14

    21/3/2014 1. MATLAB Y LOS SISTEMAS DE CONTROL

    http://lra.unileon.es/es/book/export/html/92 1/14

    1. MATLAB Y LOS SISTEMAS DE CONTROL

    Manejo y programacin de Matlab como paquete informtico aplicado a SERVOSISTEMAS.

    En esta prctica destacaremos:

    - Definicin de funciones de transferencia.

    - Otros formatos y sus conversiones.

    - Obtencin de los residuos de una f.d.t.

    Explicacin

    La toolbox de control contiene funciones tiles de ingenera de control. Los sistemas de control son modelados mediante funciones de transferencia

    o en formatos de variables de estado.Las caractersticas a destacar son:

    - Permite el manejo de sistemas continuos en el tiempo o sistemas discretos.

    - Tambin posee funciones de cambio de un formato o modelo a otro.

    - Respuesta en el tiempo.

    - Respuesta en frecuencia.

    - Lugar de la races.

    - etc...

    En la presente prctica nos didicaremos: a definir f.d.t., a obtener otras formas de representacin de las mismas, as como realizar reducciones de

    sistemas formados por varios bloques o f.d.t.

    Modelos de sistemas en matlab

    Empleado para sistemas lineales invarientes en el tiempo. Los modelos a emplear pueden ser:

    - Contnuos en el tiempo

  • 7/24/2019 funciones en matlab.pdf

    2/14

    21/3/2014 1. MATLAB Y LOS SISTEMAS DE CONTROL

    http://lra.unileon.es/es/book/export/html/92 2/14

    - Discretos en el tiempo

    Y estos sistemas se pueden representar en Matlab de diversas formas:

    1. Variables de estado

    Ecuaciones diferenciales en el formato:

    Donde:

    u es un vector que contiene las entradas de control

    x es un vector que contiene los elementos del vector estado

    y es un vector que contiene las salidas

    A, B, C, y D matrices que lo definen.

    2. Funciones de transferencia

    Es la representacin equivalente de sistemas de variables de estado empleando la transofrmada de Laplace.

    3. Ganancia-Polos-Zeros

    Una funcin de transferencia puede representarse en formato factorizado de ganancia-polos-ceros

    Donde:

    kpuede ser vector fila que contiene la/s ganancias.

  • 7/24/2019 funciones en matlab.pdf

    3/14

    21/3/2014 1. MATLAB Y LOS SISTEMAS DE CONTROL

    http://lra.unileon.es/es/book/export/html/92 3/14

    ppuede ser vector columna que contiene los polos.

    z es vector columna que contiene los ceros.

    4. Fracciones parciales

    Una f.d.t. puede tambin representarse en fracciones parciales o en formato de residuos:

    Donde:

    p un vector columna contiene los polos.

    run vector columna contiene los residuos.

    k contiene el plinomio independiente.

    Conversin de modelos

    [num, den]=ss2tf(a,b,c,d,iu) De variables de estado a funcin de transferencia.

    [z,p,k]=sstzp(a,b,c,d,iu) De variable de estado a polos-ceros.

    [a,b,c,d]=tf2ss(num,den) Funcin de transferencia a variables de estado.

    [z,p,k]=tf2zp(num,den) Funcin de transferencia a polos-ceros.

    [a,b,c,d]=zp2ss(z,p,k) Polos-ceros a variables de estado.

    [num,den]=zp2tf(z,p,k) Polos-ceros a funcin de transferencia.

    [r,p,k]=residue(num,den) Funcin de trasferencia a residuos.

    [num,den]=residue(r,p,k) Residuos a funcin de transferencia.

    Para cualquier duda sobre las fucniones de Matlab, se puede pedir informacin de las mismas tecleando el comando help.

    >> help residue

  • 7/24/2019 funciones en matlab.pdf

    4/14

    21/3/2014 1. MATLAB Y LOS SISTEMAS DE CONTROL

    http://lra.unileon.es/es/book/export/html/92 4/14

    RESIDUE Partial-fraction expansion (residues).

    [R,P,K] = RESIDUE(B,A) finds the residues, poles and direct term of

    a partial fraction expansion of the ratio of two polynomials B(s)/A(s).

    If there are no multiple roots,

    B(s) R(1) R(2) R(n)

    ---- = -------- + -------- + ... + -------- + K(s)

    A(s) s - P(1) s - P(2) s - P(n)

    Vectors B and A specify the coefficients of the numerator and

    denominator polynomials in descending powers of s. The residues are returned in the column vector R, the pole locations in column

    vector P, and the direct terms in row vector K. The number of

    poles is n = length(A)-1 = length(R) = length(P). The direct term

    coefficient vector is empty if length(B) < length(A), otherwise

    length(K) = length(B)-length(A)+1.

    If P(j) = ... = P(j+m-1) is a pole of multplicity m, then the

    expansion includes terms of the form

    R(j) R(j+1) R(j+m-1)

    -------- + ------------ + ... + ------------

    s - P(j) (s - P(j))^2 (s - P(j))^m

    [B,A] = RESIDUE(R,P,K), with 3 input arguments and 2 output arguments,

    converts the partial fraction expansion back to the polynomials with

    coefficients in B and A.

    Warning: Numerically, the partial fraction expansion of a ratio of

    polynomials represents an ill-posed problem. If the denominator

    polynomial, A(s), is near a polynomial with multiple roots, then

    small changes in the data, including roundoff errors, can make

    arbitrarily large changes in the resulting poles and residues.

    Problem formulations making use of state-space or zero-pole representations are preferable.

    Class support for inputs B,A,R:

    float: double, single

    See also poly, roots, deconv.

    Reference page in Help browser

    doc residue

  • 7/24/2019 funciones en matlab.pdf

    5/14

    21/3/2014 1. MATLAB Y LOS SISTEMAS DE CONTROL

    http://lra.unileon.es/es/book/export/html/92 5/14

    Matlab en control

    Definicin de funciones de trasferencia

    Manejamos las f.d.t. mediante polinomios. Un polinomio se prespresnta mediante un vector que contiene los coerficientes del polinomio, donde el

    primer componente es el coeficiente de mayor potencia de s, y el ltimo es el coeficiente de orden 0.

    se representa por : p=[1 3 5]

    Los polinomios del numerador y del denominador de la f.d.t. se manteienen separados. As dada la f.d.t.:

    se definen dos polinomios: num=[1]; den=[1 3 5];

    Multiplicacin de polinomios

    Dados dos polinomios p1=[1 2] y p2=[3 5] los podemos multiplicar mediante la funcin convcomo en el ejemplo:

    >> p1=[1 2]; p2=[3 5];

    >> p=conv(p1,p2);

    p =

    3 11 10

    Multiplicacin de bloques

    Dos bloques en serie, se combinan al multiplicar los polinomios, o lo que es lo mismo al convolucionar las dos repuestas impulso asociadas.

    Dadas dos funciones:

  • 7/24/2019 funciones en matlab.pdf

    6/14

    21/3/2014 1. MATLAB Y LOS SISTEMAS DE CONTROL

    http://lra.unileon.es/es/book/export/html/92 6/14

    >> g1n=[1 0]; g1d=[1 2];>> g2n=[4 4]; g2d=[1 4 5];

    >> gn=conv(g1n, g2n)

    gn =

    4 4 0

    >> gd=conv(g1d, g2d)

    gd =

    1 6 13 10

    >> ceros=roots(gn)

    ceros =

    0

    -1

    >> polos=roots(gd)

    polos =

    -2.0000 + 1.0000i

    -2.0000 - 1.0000i

    -2.0000

  • 7/24/2019 funciones en matlab.pdf

    7/14

    21/3/2014 1. MATLAB Y LOS SISTEMAS DE CONTROL

    http://lra.unileon.es/es/book/export/html/92 7/14

    Suma y resta de funciones

    La suma y resta de dos funciones el algo ms complicada, debido a que Matlab trabaja con polinomios, tendremos que emplear lo siguiente.

    Dados dos polinomios cualesquiera el polinomio suma ser:

    Tendremos que recordar que al sumar dos vectores, estos tienen que tener la misma longitud:

    >> gn1=[1 0]; gd1=[1 2];

    >> gn2=[4 4]; gd2=[1 4 5];

    >> gn=conv(gn1,gd2)+conv(gd1,gn2)

    gn =

    1 8 17 8

    >> gd=conv(gd1,gd2)

    gd =

    1 6 13 10

    Funciones de reduccin de bloques para control

    - serie Genera en un sistema SISO la f.d.t. de dos bloques SISO en serie.

    [NUM,DEN] = series (NUM1,DEN1,NUM2,DEN2)

    - parallelGenera la f.d.t. resultado de dos funciones de transferencia en paralelo.

    [NUM,DEN] = parallel (NUM1,DEN1,NUM2,DEN2)

    - feedbackGeneral la f.d.t. de un sistema SISO al conectar dos bloques en bucle cerrado, con realimentaciones positiva o negativoa.

  • 7/24/2019 funciones en matlab.pdf

    8/14

    21/3/2014 1. MATLAB Y LOS SISTEMAS DE CONTROL

    http://lra.unileon.es/es/book/export/html/92 8/14

    [NUM,DEN] = feedback (NUM1,DEN1,NUM2,DEN2,SIGNO,)

    - cloopSistema como el anterior pero con realimentacin unitaria

    [NUM,DEN] = cloop (NUM1,DEN1,SIGNO)

    - Otras funciones

    Las races de un polinomio p=[1 3 5], se obtienen mediante la funcin roots:

    >> p=[1 3 5];

    >> roots(p)

    ans =

    -1.5000 + 1.6583i

    -1.5000 - 1.6583i

    o guardar el resultado en un array columna llamado 'raices'

    >> p=[1 3 5];

    >> raices=roots(p)

    raices =

    -1.5000 + 1.6583i-1.5000 - 1.6583i

    Si dicho polinomio es el numeroador de una f.d.t. obtenemos los ceros de la funcin, y si es el denominador obtenemos los polos.

    Otras formas de representar las f.d.t.

    Otra forma de representar las funciones de transferencia es la llamda forma de ceros y polos.

    [z, p, k]=tf2zp(num, den)

  • 7/24/2019 funciones en matlab.pdf

    9/14

    21/3/2014 1. MATLAB Y LOS SISTEMAS DE CONTROL

    http://lra.unileon.es/es/book/export/html/92 9/14

    Obtenemos los factores de la f.d.t.:

    donde:

    z son los ceros (tantas columnas como filas en num)ppolos del sistema

    k ganancia

    >> num=[1 2];

    >> den=[1 3 5 8];

    >> [z,p,k]=tf2zp(num,den)

    z =

    -2

    Inf

    Inf

    p =

    -2.3283

    -0.3359 + 1.8230i

    -0.3359 - 1.8230i

    k =

    1

    Para pasar del formato polos.ceros a f.d.t. utilizamos:

    [num, den]=tf2zp(z, p, k)

  • 7/24/2019 funciones en matlab.pdf

    10/14

    21/3/2014 1. MATLAB Y LOS SISTEMAS DE CONTROL

    http://lra.unileon.es/es/book/export/html/92 10/14

    donde:

    z es una matriz columna con los ceros.

    n es un vector columna con los polos.

    k ganancia

    >> z=[-2];

    >> p=[-2 3 4];>> k=5;

    >> [num, den]=tf2zp(z, p, k)

    num =

    5 10

    den =

    1 -5 -2 24

    Matlab dispone de una funcin que permite el clculo de residuos; es decir, nos permiten expandir una funcin en fracciones parciales:

    [r, p, ki]=residue(num, den)

    donde:

    r son los residuos.

    n son los polos.

    ki terminos independientes

    >> num=[16 80];

    >> den1=[1 4 8]; den2=[1 10];

    >> den=conv(den1,den2);

    >> [r,p,ki]=tf2zp(num,den)

  • 7/24/2019 funciones en matlab.pdf

    11/14

    21/3/2014 1. MATLAB Y LOS SISTEMAS DE CONTROL

    http://lra.unileon.es/es/book/export/html/92 11/14

    r =

    -1.1765

    0.5882 - 1.6471i

    0.5882 + 1.6471i

    p =

    -10.0000

    -2.0000 + 2.0000i

    -2.0000 - 2.0000i

    k =

    [ ]

    Si se desea determinar la magnitud y el ngulo que forma los residuos, emplearemos las funciones abs(), y angle():

    >> magr=abs(r)

    magr =

    1.17651.7489

    1.7489

    >> angr=angle(r)*180/pi

    angr =

    180.0000

    -70.346270.3462

  • 7/24/2019 funciones en matlab.pdf

    12/14

    21/3/2014 1. MATLAB Y LOS SISTEMAS DE CONTROL

    http://lra.unileon.es/es/book/export/html/92 12/14

    Ejercicios

    1.Determinar en Matlab las siguientes f.d.t.

    2.Visualizar las f.d.t. anteriores en otros formatos, comentar la funcin empleada y describe los elementos que los definen:

    a) De variables de estado

    b) Polos-cerosc) Residuos

    3.Comentar las siguientes lneas y definir sus elementos:

    num=[4 11 9];

    den=[1 6 11 6];

    [r,p,ki]=residue(num,den)

  • 7/24/2019 funciones en matlab.pdf

    13/14

    21/3/2014 1. MATLAB Y LOS SISTEMAS DE CONTROL

    http://lra.unileon.es/es/book/export/html/92 13/14

    4.Determina el bloque final de los sistemas siguientes

    Donde:

  • 7/24/2019 funciones en matlab.pdf

    14/14

    21/3/2014 1. MATLAB Y LOS SISTEMAS DE CONTROL

    http://lra.unileon.es/es/book/export/html/92 14/14

    5. Definir la accin que realizan los comandos

    a) who

    b) whos