Lab1 Funcion de Transferencia

Laboratorio de Control Prof. Clevis Lozano PARTE I: FUNCIONES DE TRANSFERENCIA, POLOS Y CEROS Objetivos: a) Escribir p

Views 240 Downloads 3 File size 473KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

Laboratorio de Control

Prof. Clevis Lozano

PARTE I: FUNCIONES DE TRANSFERENCIA, POLOS Y CEROS Objetivos: a) Escribir polinomios y funciones de transferencia. b) Obtener raíces de polinomios (polos y ceros). c) Generar la función de transferencia, en las formas: Polinómica decreciente, Factorizada (polos, ceros y ganancia) y Fracciones parciales. Introducción: Si y(t) es la (o una) variable de salida de un sistema, y x(t) la (o una) variable de entrada, entonces la función de transferencia del sistema es G(s)Y(s)/X(s), donde X(s) y Y(s) son, respectivamente, las variables x y y en el dominio de s.

Y ( s) X (s)



b m s m  b m1s m1  b m 2 s m 2 ...b1s  b 0 s n  a n1s n1  a n 2 s n 2 ...a1s  a 0



salida entrada

con condiciones iniciales  0

La función de transferencia (en adelante f.t.) sólo se define para un sistema lineal e invariante en el tiempo (slit). Sin embargo, el enfoque de f.t. se usa extensamente en el análisis y el diseño de tales sistemas. La f.t. es independiente de la entrada del sistema. Usando el concepto de f.t. se puede representar la dinámica de un slit por ecuaciones algebraicas en s. Dado que la función de transferencia es una fracción polinómica, hay muchas formas de expresarla: ya sea en la forma común (polinomios decrecientes en el numerador y denominador), ya sea en forma factorizada o expandiendo la fracción en fracciones parciales. La forma factorizada nos informa inmediatamente cuáles son los polos (raíces del denominador de la f.t.), ceros (raíces del numerador de la f.t.) y ganancia (coeficiente de la mayor potencia del numerador de la f.t.) del sistema, parámetros que determinan el comportamiento y estabilidad del mismo. Por su parte, la forma en fracciones parciales facilita el cálculo de la respuesta en el tiempo del sistema, puesto que a cada término en fracción parcial se le puede aplicar luego la transformada inversa de LaPlace. Referencia Rápida: El siguiente cuadro resume los nombres, uso y sintaxis de las funciones más frecuentemente utilizadas en este laboratorio: Nombre

Uso

conv deconv poly roots poly2str

multiplica dos polinomios divide dos polinomios polinomio a partir de las raíces raíces a partir del polinomio despliega los coeficientes de un vector como un polinomio despliega los coeficientes de dos vectores como una función de transferencia de una fracción polinómica a fracciones parciales residue cuando hay polos repetidos

printsys

residue resi2 tf2zp zp2tf

Sintaxis conv(a,b) [c,d]=deconv(a,b) p=poly(r) r=roots(p) poly2str(a,'variable') printsys(n1,d1,'variable')

[r,p,k]=residue(num,den) resi2(num,den,polo,q,potencia)

de la función de transferencia polinómica [z,p,k]=tf2zp(num,den) a ella en polos y ceros de la función de transferencia en polos y [num,den]=zp2tf(z,p,k) ceros a ella polinómica

Página 1 de 11

Laboratorio de Control

Prof. Clevis Lozano

Procedimiento: Sección 1: Polinomios y raíces Para generar polinomios existen varias alternativas: a) Guardar en un vector fila los coeficientes de las potencias del polinomio; b) A partir de las raíces del polinomio; c) A partir de dos o más polinomios existentes anteriormente (mediante convolución, lo veremos en la Sección 2). 4 3 La primera alternativa es quizá la más obvia y sencilla. Por ejemplo, si el polinomio fuese s + 3s + 2 11s  7s  36, entonces el polinomio (llamémosle p) sería: » p=[1 3 11 -7 -36] p = 1

3

11

-7

-36

Deben anotarse en el vector a los coeficientes en orden decreciente. Veamos otro ejemplo: » num=[1 20 -83 0 117 2549] num = 1

20

-83

0

5

4

117

2549

3

Este vector corresponde al polinomio s + 20s  83s + 117s + 2549 (note que al polinomio le falta el término 2 s , y de allí la presencia del cero en el vector). Para poder apreciar el vector como polinomio, se utiliza la función poly2str: » poly2str(num,'s') ans = s^5 + 20 s^4 - 83 s^3 + 117 s + 2549 » poly2str(p,'s') ans = s^4 + 3 s^3 + 11 s^2 - 7 s - 36 La otra alternativa para generar polinomios es a partir de un vector cuyos elementos son las raíces del polinomio. Digamos, por ejemplo, que las raíces de un polinomio son 1, 1+ j3, 1j3, 2 y 4. Entonces generamos el vector de raíces (llamémosle r) y con la función poly generamos el polinomio: » r=[-1 -1+3j -1-3j -2 4]; » pol=poly(r) pol = 1

1

-2

-38

-116

-80

A su vez, pueden calcularse las raíces de un polinomio con la función roots, o sea que ella es la inversa de la función poly. Usando el polinomio recién calculado: » r1=roots(pol) r1 = 4.0000 -1.0000 + 3.0000i -1.0000 - 3.0000i -2.0000 -1.0000 Página 2 de 11

Laboratorio de Control

Prof. Clevis Lozano

La exactitud (o inexactitud) de roots y poly depende sobretodo de la información de entrada, pero también del algoritmo interno de estas funciones. Note qué ocurre cuando tratamos de generar pol a partir de r1: » pol=poly(r1) pol = 1.0000

1.0000

-2.0000

-38.0000 -116.0000

-80.0000

Por lo tanto, cuando se trabaja con las raíces para generar el polinomio hay que procurar ser lo más exactos posibles. Sección 2: Convolución La tercera alternativa para generar polinomios es multiplicando dos o más polinomios existentes. Ello se logra con la función conv. Pongamos el caso de los polinomios (s + 3) y (2s + 7). El producto de los 2 polinomios es 2s + 13s + 21. Veamos como se procede en Matlab: » conv([1 3],[2 7]) ans = 2

13

21

Cuando se quiera multiplicar más de dos polinomios, entonces se puede realizar la convolución de una convolución; por ejemplo, si n1, n2 y n3 son los tres polinomios, y n es el resultado, la convolución que da como resultado n podría ser conv( conv( n1,n2 ), n3) (o la misma sintaxis con cualquier otro ordenamiento de n1, n2 y n3). La operación inversa (la división) se logra con la función deconv (de la palabra deconvolución). Para esta función son necesarios dos argumentos de salida: el cociente y el residuo. Sección 3: Funciones de transferencia polinómica, factorizada y en fracciones parciales Una función de transferencia polinómica consta del polinomio del numerador y del denominador. Por tanto, sólo hace falta definir los vectores de ambos polinomios. Imortante: el grado del numerador debe ser menor o igual que el del denominador. Veamos un ejemplo. Si la función de transferencia es

5s  5 s 3  8s 2  11s  18

, entonces ella se escribe así:

» n1=[5 5]; » d1=[1 8 11 18]; Cada vez que se haya definido el numerador y denominador de un bloque, puede usar la función printsys para verificar que lo que escribió está correcto. » printsys(n1,d1) num/den = 5 s + 5 ----------------------s^3 + 8 s^2 + 11 s + 18 La función tf2zp permite hallar la ganancia, ceros y polos de la f.t.: » [z,p,k]=tf2zp(n1,d1) z = -1 Página 3 de 11

Laboratorio de Control

Prof. Clevis Lozano

p = -6.7676 -0.6162 + 1.5100i -0.6162 - 1.5100i k = 5 Matlab almacena en k la ganancia, en z los ceros, y en p los polos. Por tanto, la función de transferencia factorizada (o en la forma polo-cero) es:

5( s  1) ( s  6.7676)( s  0.6162  j15100 . )( s  0.6162  j15100 . ) La función inversa a tf2zp (que es el mnemónico de "from transfer function to (2) zero-pole") es zp2tf: » [n2,d2]=zp2tf(z,p,k) n2 = 0

0

5

5

d2 = 1.0000

8.0000

11.0000

18.0000

La respuesta que devuelve zp2tf es tal que el vector del numerador tiene tantos elementos como el denominador. En Matlab, el grado del numerador debe ser siempre menor o igual al grado del numerador; en caso de que esto no se cumpla, debe emparejarse el grado del denominador al del numerador ocupando las posiciones con eps. Por ejemplo, si la función de transferencia fuese G(s)=s, el numerador sería [1 0]; pero el denominador no podría ser [1] o [0 1], sino [eps 1]. Sin embargo, esto puede traer errores de cálculo cuando se usa con algunas funciones, y en lo posible debe evitarse. La representación en fracciones parciales de una función de transferencia puede lograrse mediante la función residue. Consideremos nuevamente a n1 y d1: » [R,P,K]=residue(n1,d1) R = -0.7188 0.3594 - 0.1915i 0.3594 + 0.1915i P = -6.7676 -0.6162 + 1.5100i -0.6162 - 1.5100i K = [] Matlab averigua primero si la fracción es propia o impropia. De ser propia, K=[ ] (el conjunto vacío). De no serlo (caso poco común pero que puede darse) K almacena los coeficiente del cociente entre numerador y denominador, y el residuo (junto con el denominador) forman una fracción propia que se descompone en fracciones parciales. Los valores de R y P son correspondientes: R(1) es la ganancia de la fracción cuyo denominador es s  P(1), y así sucesivamente. De esta forma, la descomposición en fracciones parciales de n1/d1 es:

0.7188 0.3594  j01915 . 0.3594  j01915 .   s  6.7676 s  0.6162  j15100 . s  0.6162  j15100 . Página 4 de 11

Laboratorio de Control

Prof. Clevis Lozano

Si este resultado se va a utilizar para hallar la respuesta de un sistema a una entrada impulso, los residuos de las fracciones con polos complejos deben transformarse a la forma polar. Para ello se puede usar la función cart2pol (consulte el help de esta función en Matlab para más información): » [angulo,magnitud]=cart2pol(real(R(2)),imag(R(2))) angulo = (El ángulo está dado en radianes)

-0.4896 magnitud = 0.4072

Supóngase que, nuevamente, n1 y d1 son el numerador y denominador respectivamente de una f.t. de un sistema que está sometido a una entrada que no es un impulso; digamos, por ejemplo, que la entrada es 10s 10*cos(4t). La transformada de LaPlace de la entrada es ; y como la salida es igual al producto de la 2 s  16 entrada por la f.t. (bajo condiciones iniciales nulas), entonces sería necesario multiplicar (usar la función conv) 2 n1 por 10s, y d1 por s + 16, para luego aplicar residue (y cart2pol) para poder obtener la respuesta en forma analítica. Veamos qué ocurre: » [R,P]=residue(n,d) R = 0.7871 -0.3800 -0.3800 -0.0136 -0.0136

+ + + -

0.0000i 0.8400i 0.8400i 0.4668i 0.4668i

P = -6.7676 0.0000 0.0000 -0.6162 -0.6162

+ + -

4.0000i 4.0000i 1.5100i 1.5100i

(Ya sabíamos que la fracción es propia, por lo que no nos interesa saber K.) » [ang1,mag1]=cart2pol(real(R(2)),imag(R(2))) ang1 =

-1.9956

mag1 =

0.9220

» [ang2,mag2]=cart2pol(real(R(4)),imag(R(4))) ang2 =

1.5998

mag2 =

0.4670

Página 5 de 11

Laboratorio de Control

Prof. Clevis Lozano

La expansión en fracciones parciales es:

0.9220 19956 . (0.9220 19956 . )* 0.4670 15998 . (0.4670 15998 . )* 0.7871     s  6.7676 s  j4 s  j4 s  0.6162  j15100 . s  0.6162  j15100 . A la que al aplicársele la transformada inversa de LaPlace, resulta en:

0.7871e 6.7676 t  2(0.9220) cos( 4t  19956 . )  2(0.4670) e 0.6162 t cos(15100 . t  15998 . )  0.7871e 6.7676 t  1844 . cos( 4t  19956 . )  0.9340 e 0.6162 t cos(15100 . t  15998 . ) El uso de resi2 se reserva para cuando se presentan polos repetidos, y se duda de la precisión de residue. Asignación 1- Encuentre la expansión en fracciones parciales de las siguientes funciones: a) F( s) 

1 s( s  2)( s  5)

c)

F( s) 

s1 s( s  2)( s 2  6s  10)

b) F( s) 

1 s( s 2  2s  10)

d)

F( s) 

s1 ( s  2s  2)( s 2  6s  10) 2

2. Factorice los siguientes polinomios. Note que siempre que hay una potencia del polinomio con signo negativo o que sea cero, al menos una raíz tiene parte real positiva o cero. a) s3 + 13s2 + 33s + 30 5 4 3 2 b) s + 3s + 28s + 226s + 600s + 400

c) s4 + 2s3 + +3s +6 4 d) 2s + 25s + 4

3. Construya la función de transferencia en forma polinómica, dados los siguientes datos. a) k=7; ceros: 2.5; polos: 1.33, 0.577. b) numerador: los factores son s + 0.21 y s; denominador: los factores son s2 + 6s + 30 y (s – 1). c) numerador: los factores son s + 0.88 y s + 0.10; polos: 0.42, 0.80 y 0.99. d) ceros: 1, 3, 5; denominador: los factores son 4, s + 6, s + 4 y s + 1. e) k=1; ceros: ninguno; polos: 2, 0.40.

4. Hallar la representación en cero-polo de las siguientes funciones de transferencia.

Página 6 de 11

Laboratorio de Control

Prof. Clevis Lozano

PARTE II. VARIABLES DE ESTADO, PARTE I: REPRESENTACIONES Objetivos: 1- Aprender el uso de funciones para pasar de cualquier representación en función de transferencia al espacio de estado, y viceversa. 2- Calcular los valores propios de un sistema. Introducción: La teoría de control moderna se basa en la descripción de las ecuaciones de un sistema en términos de n ecuaciones diferenciales de primer orden que pueden combinarse en una ecuación diferencial vectorial-matricial de primer orden. El uso de la notación vectorial-matricial simplifica la representación matemática de sistemas de ecuaciones. Incluso complicados sistemas de múltiples entradas y salidas pueden resolverse por procedimientos apenas algo más complejos que los requeridos para el análisis de sistemas de ecuaciones diferenciales escalares de primer orden. Desde el punto de vista computacional, los métodos de espacio de estado son particularmente adecuados para los cálculos en computadora digital, debido a su enfoque en el dominio del tiempo. Dado que tanto las funciones de transferencia como las representaciones en el espacio de estado provienen ambas de las ecuaciones diferenciales de los sistemas, es posible pasar de una representación a otra. Pero en principio, es necesario analizar el sistema para encontrar su modelo, no importa qué forma tenga éste. La característica más notable de un sistema (al estudiar su modelo matemático) son los polos del sistema. La información de los polos del sistema está contenida en el polinomio característico (en el caso de una función de transferencia) o en la matriz A (en el caso del espacio de estado). Los valores propios no son más que los polos del sistema. Referencia Rápida: Nombre

Uso

Sintaxis

tf2ss

de una función de transferencia polinómica al espacio de estado (forma canónica asociada) del espacio de estado a una función de transferencia polinómica de una función de transferencia en polos y ceros al espacio de estado del espacio de estado a una función de transferencia en polos y ceros cálculo de los valores propios despliega los coeficientes de un vector como un polinomio

[A,B,C,D]=tf2ss(num,den)

ss2tf zp2ss ss2zp eig poly2str

[num,den]=ss2tf(A,B,C,D) [A,B,C,D]=zp2ss(z,p,k) [z,p,k]=ss2zp(A,B,C,D) eig(A) poly2str(a,'variable')

Procedimiento: Sección 1: del dominio de Laplace al espacio de estado Las funciones tf2ss y zp2ss permiten pasar de una función de transferencia al espacio de estado. Ejemplo 1: Para obtener una representación en el espacio de estado para las siguientes funciones de transferencia a)

X(s) 5  U(s) (s  1) 2 (s  2) Página 7 de 11

Laboratorio de Control

b) Gs 

Prof. Clevis Lozano

s4 s 3  6s 2  11s  6

se procede de la siguiente forma: » %-----Parte a)----» z=[]; %No hay ceros » p=[-1 -1 -2]'; %Polos » k=5; %Ganancia » [A,B,C,D]=zp2ss(z,p,k) A = -1.0000 1.0000 0

0 -3.0000 1.4142

0 -1.4142 0

0

3.5355

B = 1 0 0 C = 0 D = 0 » » » » »

%-----Parte b)----num=[1 4]; %numerador den=[1 6 11 6]; %denominador [a,b,c,d]=tf2ss1(num,den)

a = 0 0 -6

1 0 -11

0 1 -6

1

0

b = 0 0 1 c = 4 d = 0

En el primer caso, se definen los ceros, polos y ganancias del sistema; en el se definen los coeficientes del numerador y denominador de la función de transferencia.

Página 8 de 11

Laboratorio de Control

Prof. Clevis Lozano

Sección 2: Modelo de un sistema en el espacio de estado. Cómo pasar del espacio de estado al dominio de Laplace. Valores propios. Problema ejemplo. En la figura 1 se muestra un circuito RLC. Las variables de estado son vc(t) e i(t). 1Hallar una representación en variables de estado. 2Hallar la función de transferencia en forma: a- polinómica b- de polos y ceros 3Halle los valores propios e indique si el sistema es estable o no. L

R

Figura 1: Circuito RLC

+ e1(t) 

+ 

i(t)

C

+ VC(t) 

Solución: para este sistema, aplicamos LVK y luego las relaciones voltaje-corriente para cada elemento. e(t) = VR(t) + VL(t) + VC(t)

dV (t ) di(t ) ; i(t )  C C dt dt Si elegimos a VC(t) y a i(t) como variables de estado, las ecuaciones diferenciales de primer orden son: dVC (t ) 1  i(t ) dt C di(t ) 1 1  VL (t )  e(t )  VR (t )  VC (t ) dt L L 1 R 1   VC (t )  i(t )  e(t ) L L L En forma matricial: VR =R*i(t);

VL (t )  L

1  dVC (t )    0  dt   0 C   VC (t )   1e(t )  di(t )    1    R       i(t )   L  L  dt   L Una vez se sepan los valores de R, L y C, y se definan las matrices A, B, C, D, en función de esos parámetros, entonces podemos proceder a la resolución en Matlab: » » » » » »

% PROBLEMA EJEMPLO R=1e3; L=1e-3; C=1e6; A=[0 1/C;-1/L -R/L]; B=[0; 1/L]; % Asumir como salida i(t). C=[0 1]; D=0;

%Parámetros

Página 9 de 11

Laboratorio de Control

Prof. Clevis Lozano

» % Transformación a una función de transferencia polinómica: » [num,den]=ss2tf(A,B,C,D); %haremos uso del printsys » printsys(num,den,'s') num/den = 1000 s + 9.895e-007 -------------------------s^2 + 1e+006 s + 0.0009895 » » % Transformación a función de transferencia ceros-polos: » [z,p,k]=ss2zp(A,B,C,D) %el printsys no es aplicable aquí z = 0 p = 1.0e+005 * 0.0000 -10.0000 k = 1000 La función eig tiene varias aplicaciones, entre ellas calcular los valores propios de un sistema o los valores propios de la matriz A. » % eigenvalores (son los polos del sistema) » eigenvalues=eig(A) eigenvalues = 1.0e+005 * 0.0000 -10.0000 » eigenvalues(1) ans = -9.8953e-010 » eigenvalues(2) ans = -1.0000e+006

El saber los valores propios del sistema nos permite saber si el sistema es estable o inestable (en este caso el sistema es estable). Asignaciones Conociendo estas cinco nuevas funciones, y combinándolas con las aprendidas anteriormente, es posible resolver problemas un poco más complicados. 1El diagrama de bloques mostrad es de un sistema automático de control de profundidad para un robot submarino. La profundidad se mide mediante un transductor de presión. La ganancia del Página 10 de 11

Laboratorio de Control

Prof. Clevis Lozano -4

actuador del alerón de popa es K=10 cuando la velocidad es de 8 m/s. El submarino tiene la función de transferencia aproximada G( s) 

profundidad + deseada R(s)

s  0.2 2

s

2



 0.01

y el transductor de retroalimentación es H(s)=1.



1 s

G(s)

K

profundidad C(s)

actuador H(s) medición de presión Diagrama de bloque para el problema 1

a- Hallar una representación en variables de estado. b- Hallar la función de transferencia. 2-

Para el siguiente diagrama de bloque, las variables de estado x1(t), x2(t) y x3(t) ahí indicadas. U(s) +



2 s3

X2(s)

+

X3(s)



2 s s  1

X1(s)

s

Diagrama de bloque para el problema 2.

a- Hallar la representación en el espacio de estado. b- Halle los valores propios.

Página 11 de 11