27
INGENIERÍA DE SISTEMAS Y AUTOMÁTICA - UMH 1 ELECTRÓNICA DE CONTROL PRÁCTICA 2. FUNCIÓN DE TRANSFERENCIA, ESTABILIDAD Y COMPORTAMIENTO DINÁMICO DE SISTEMAS Índice 1. Representación de un sistema mediante su función de transferencia 2. Representación en MATLAB de sistemas continuos 3. Respuesta a la señal escalón 4. Respuesta a una señal cualquiera 5. Reducción de diagramas de bloques con MATLAB 6. Transformadas y antitransformadas 7. Estudio de la estabilidad de sistemas 8. Estudio del comportamiento dinámico de sistemas 9. Cálculo del lugar de las raíces con MATLAB 10. Ejercicios 1. REPRESENTACIÓN DE UN SISTEMA MEDIANTE SU FUNCIÓN DE TRANSFERENCIA Recordemos el sistema físico analizado en la práctica 2. Se trata de una masa M unida a un muelle de constante K, y con un rozamiento viscoso B, tal y como se describe en la figura: Para obtener la representación del sistema mediante su función de transferencia, daremos los siguientes pasos: 1. Planteamiento de la ecuación diferencial En este caso, la ecuación diferencial es un dato del problema 2. Obtención de un punto de equilibrio Dado que trabajaremos con variables incrementales (valor inicial = 0) será necesario determinar el punto de equilibrio sobre el que se va a trabajar. En este caso se buscará el punto de equilibrio para una fuerza inicial: 0 10 En el punto de equilibrio las derivadas serán cero, por tanto: 0 ∙ 0 ∙ 0 ∙ 0 ⇒ 0 0 El objetivo es ver cuál es el efecto de la fuerza aplicada f(t) al movimiento de la masa, descrito por x(t) La ecuación diferencial que rige el comportamiento de este sistema es:

ELECTRÓNICA DE CONTROL - umh2279.edu.umh.esumh2279.edu.umh.es/wp-content/uploads/sites/421/2013/02/electronic... · bloque y un osciloscopio a la ... El formato para la ... Es conveniente

Embed Size (px)

Citation preview

Page 1: ELECTRÓNICA DE CONTROL - umh2279.edu.umh.esumh2279.edu.umh.es/wp-content/uploads/sites/421/2013/02/electronic... · bloque y un osciloscopio a la ... El formato para la ... Es conveniente

INGENIERÍA DE SISTEMAS Y AUTOMÁTICA - UMH

1

ELECTRÓNICA DE CONTROL

PRÁCTICA 2. FUNCIÓN DE TRANSFERENCIA, ESTABILIDAD Y COMPORTAMIENTO DINÁMICO DE SISTEMAS

Índice 1. Representación de un sistema mediante su función de transferencia 2. Representación en MATLAB de sistemas continuos 3. Respuesta a la señal escalón 4. Respuesta a una señal cualquiera 5. Reducción de diagramas de bloques con MATLAB 6. Transformadas y antitransformadas 7. Estudio de la estabilidad de sistemas 8. Estudio del comportamiento dinámico de sistemas 9. Cálculo del lugar de las raíces con MATLAB 10. Ejercicios 1. REPRESENTACIÓN DE UN SISTEMA MEDIANTE SU FUNCIÓN DE TRANSFERENCIA Recordemos el sistema físico analizado en la práctica 2. Se trata de una masa M unida a un muelle de constante K , y con un rozamiento viscoso B, tal y como se describe en la figura:

Para obtener la representación del sistema mediante su función de transferencia, daremos los siguientes pasos: 1. Planteamiento de la ecuación diferencial En este caso, la ecuación diferencial es un dato del problema 2. Obtención de un punto de equilibrio Dado que trabajaremos con variables incrementales (valor inicial = 0) será necesario determinar el punto de equilibrio sobre el que se va a trabajar. En este caso se buscará el punto de equilibrio para una fuerza inicial:

��0� � 10 En el punto de equilibrio las derivadas serán cero, por tanto:

��0� � � ∙ 0 ∙ 0 � ∙ ��0� ⇒ ��0� ���0�

���� � � ∙������

��� ∙

�����

�� � ∙ ����

El objetivo es ver cuál es el efecto de la fuerza aplicada f(t) al movimiento de la masa, descrito por x(t)

La ecuación diferencial que rige el comportamiento de este sistema es:

Page 2: ELECTRÓNICA DE CONTROL - umh2279.edu.umh.esumh2279.edu.umh.es/wp-content/uploads/sites/421/2013/02/electronic... · bloque y un osciloscopio a la ... El formato para la ... Es conveniente

INGENIERÍA DE SISTEMAS Y AUTOMÁTICA - UMH

2

3. Linealización de las ecuaciones y expresión en variables incrementales En este caso todos los términos de la ecuación son lineales; por tanto sólo hay que expresar la ecuación en variables incrementales:

Δ���� � � ∙ Δ����� ∙ Δ����� � ∙ Δ����

4. Paso de las ecuaciones al dominio de Laplace Una vez las ecuaciones expresadas en términos incrementales, el paso al dominio de Laplace es inmediato:

������ � ����

���� ���� � � ∙ ����

En el caso que nos ocupa, la ecuación queda:

F�s� � � ∙ �� ∙ ���� ∙ s ∙ ���� � ∙ X�s�

5. Función de transferencia Una vez las ecuaciones en el dominio de Laplace, es posible obtener la función de transferencia G(s) o función que permite obtener la salida X(s) a partir de la entrada F(s):

G�s� �����

�����

1

� ∙ �� ∙ s �

6. Diagrama de bloques Cada función de transferencia se representa en un diagrama de bloques como el operador que multiplicado por la entrada nos ofrece la salida:

En nuestro caso:

7. Simulación Para representar una función de transferencia en Simulink se debe usar el bloque ‘Transfer Fcn’ de la categoría ‘Continuous’ . Este bloque permite introducir funciones de transferencia como cociente de dos polinomios. Cada polinomio se especifica por sus coeficientes en orden decreciente de potencias.

F(s) X(s) 1

� ∙ �� ∙ � �

F(s) X(s) ����

���� � ���� ∙ ����

Page 3: ELECTRÓNICA DE CONTROL - umh2279.edu.umh.esumh2279.edu.umh.es/wp-content/uploads/sites/421/2013/02/electronic... · bloque y un osciloscopio a la ... El formato para la ... Es conveniente

INGENIERÍA DE SISTEMAS Y AUTOMÁTICA - UMH

3

En nuestro caso, si: • M = 1 • B = 0.5 • K =20

Tendremos como coeficientes del numerador: [1] Y como coeficientes del denominador: [1 0.5 20] Estos parámetros se introducirán como configuración del bloque ’Transfer Fcn’ tal y como muestra la figura inferior. El parámetro ‘Absolute tolerance’ hace referencia al máximo error permitido en la simulación y no se modificará.

Para simular, conectaremos una señal de entrada cualquiera (escalón, senoidal, etc.) a la entrada del bloque y un osciloscopio a la salida:

A continuación podríamos probar el efecto que produce la variación de los distintos parámetros del sistema (M, B y K ) sobre el comportamiento del mismo con sólo cambiar los valores de la función de transferencia.

F(s) X(s) 1

�� 0.5 ∙ � 20

Page 4: ELECTRÓNICA DE CONTROL - umh2279.edu.umh.esumh2279.edu.umh.es/wp-content/uploads/sites/421/2013/02/electronic... · bloque y un osciloscopio a la ... El formato para la ... Es conveniente

INGENIERÍA DE SISTEMAS Y AUTOMÁTICA - UMH

4

Podemos ver, por ejemplo, como al aumentar el parámetro B (rozamiento) el movimiento del muelle es más amortiguado (se producen menos oscilaciones):

NOTA IMPORTANTE: Las variables con las que estamos trabajando son incrementales: • Fuerza o variable de entrada: valor en el punto de equilibrio = 10N

Aplicar un escalón de valor 1 equivale a ejercer una fuerza de 11N f(0) = 10N Δf(t) = 1N f(t) = f(0) + Δf(t) = 11N

• Posición o variable de salida: valor en el punto de equilibrio = 10/K = 0.5m Una posición que en el gráfico aparece como 0.08 equivale a una posición real de 0.58mx(0) = 0.5m Δx(t) = 0.08m x(t) = x(0) + Δx(t) = 0.58m

2. REPRESENTACIÓN EN MATLAB DE SISTEMAS CONTINUOS Al igual que Simulink, Matlab también permite obtener la respuesta de sistemas continuos y discretos ante distintas señales de entrada. La forma de representar un sistema continuo es Matlab es mediante su función de transferencia en s, a través de la instrucción tf. Forma de utilizar la instrucción tf:

nombre_sistema = tf (numerador, denominador)

Ejemplo: Queremos representar el siguiente sistema continuo:

X(s) Y(s) � 10

�� 2� 10

Variable que identificará al

sistema numerador

Vector con los coeficientes

del polinomio del numerador

Vector con los coeficientes

del polinomio del numerador

Page 5: ELECTRÓNICA DE CONTROL - umh2279.edu.umh.esumh2279.edu.umh.es/wp-content/uploads/sites/421/2013/02/electronic... · bloque y un osciloscopio a la ... El formato para la ... Es conveniente

INGENIERÍA DE SISTEMAS Y AUTOMÁTICA - UMH

5

La instrucción de Matlab a utilizar será:

» sis1 = tf([1 10], [1 2 10]) Transfer function:

s + 10 ---------------- s^2 + 2 s + 10

A partir de este momento, la variable sis1 representará en Matlab el sistema correspondiente a esa función de transferencia. 3. RESPUESTA A LA SEÑAL ESCALÓN La instrucción step sirve para calcular la respuesta a escalón de cualquier sistema previamente definido. Caben dos posibilidades:

• Obtener la representación gráfica de la respuesta • Obtener los valores numéricos de la respuesta

Representación gráfica de la respuesta Obtendremos como ejemplo la respuesta a escalón del sistema continuo definido anteriormente:

Si suponemos que cuando creamos el sistema con la instrucción tf le dimos el nombre sis1, entonces la instrucción Matlab a teclear será la siguiente:

» step(sis1)

Y el resultado será el siguiente gráfico:

El gráfico representa el valor de la salida del sistema ante entrada escalón

X(s) Y(s) � 10

�� 2� 10

Page 6: ELECTRÓNICA DE CONTROL - umh2279.edu.umh.esumh2279.edu.umh.es/wp-content/uploads/sites/421/2013/02/electronic... · bloque y un osciloscopio a la ... El formato para la ... Es conveniente

INGENIERÍA DE SISTEMAS Y AUTOMÁTICA - UMH

6

Obtención de los valores numéricos de la respuesta: En este caso lo que deseamos no es obtener el gráfico sino descargar en una variable el valor de la respuesta en cada instante de tiempo. El formato para la instrucción es, en este caso:

» [y,t] = step(sis1); Y el resultado será el siguiente:

• El vector t contendrá los instantes de tiempo para los que se ha calculado el valor de la salida

• El vector y contendrá los valores de la salida correspondientes a cada instante de tiempo NOTA: recordemos que el punto y coma al final de la expresión sirve para que Matlab no muestre en pantalla el resultado de la operación; en otro caso habrían aparecido las ristras de valores de las variables. Como comprobación, podemos consultar un valor cualquiera de la variable t y de la variable y; por ejemplo el valor que hace el número 25 de todos los calculados:

» t(25) ans =

1.2590

» y(25) ans =

1.2285

Vemos que el valor 25 corresponde al instante de tiempo 1.259 segundos y que el valor de la señal de salida en ese instante de tiempo es 1.2285. Podemos comprobar estos valores aproximadamente sobre el gráfico de la respuesta que obtuvimos antes. Disponer de los valores numéricos de los datos es útil para realizar cualquier tipo de operación matemática, como buscar el máximo, obtener el valor exacto en un instante de tiempo concreto, etc. Forma de obtener la respuesta para un escalón no unitario Lo visto anteriormente considera que al sistema se le aplica un escalón de valor uno. Para escalones no unitarios basta con multiplicar el sistema por el valor del escalón. Por ejemplo, para obtener la respuesta a un escalón de 5 unidades bastará con teclear estas instrucciones:

» step(5*sis1) o bien:

» [y,t] = step(5*sis1); Forma de obtener la respuesta para instantes de tiempo posteriores En el ejemplo realizado, Matlab calcula la respuesta del sistema hasta el instante t = 6 segundos (se puede comprobar sobre el gráfico). Si se desea obtener la respuesta para instantes posteriores basta con especificar un valor para el tiempo final en la instrucción step. Por ejemplo, si qeremos obtener la respuesta ante escalón del sistema sis1 no hasta el instante t=6 sino hasta el instante t=12 deberíamos teclear el siguiente comando Matlab:

» step(sis1, 12)

Page 7: ELECTRÓNICA DE CONTROL - umh2279.edu.umh.esumh2279.edu.umh.es/wp-content/uploads/sites/421/2013/02/electronic... · bloque y un osciloscopio a la ... El formato para la ... Es conveniente

INGENIERÍA DE SISTEMAS Y AUTOMÁTICA - UMH

7

Y el resultado sería el que mostramos en el gráfico que aparece a continuación:

4. RESPUESTA A UNA SEÑAL CUALQUIERA Al igual que la instrucción step nos ofrece la respuesta de un sistema a una señal escalón, también es posible obtener mediante Matlab la respuesta de un sistema ante una entrada cualquiera. Para ello se utiliza la instrucción lsim que, al igual que la instrucción step, permite obtener los resultados de dos formas distintas:

• Como una representación gráfica • Como valores numéricos

Hemos dicho que la instrucción lsim permite obtener la respuesta de un sistema ante una entrada cualquiera. El primer paso, antes de utilizar la instrucción, será definir la entrada a utilizar. Por ejemplo, si deseamos conocer la respuesta del sistema sis1 definido anteriormente ante una entrada x(t) como la representada en la figura, deberemos en primer lugar definir esa señal x(t):

Una señal cualquiera se definirá mediante dos vectores: • Un vector de instantes de tiempo • Un vector de valores para la señal en cada uno de esos instantes de tiempo

X(s) Y(s) � 10

�� 2� 10

Page 8: ELECTRÓNICA DE CONTROL - umh2279.edu.umh.esumh2279.edu.umh.es/wp-content/uploads/sites/421/2013/02/electronic... · bloque y un osciloscopio a la ... El formato para la ... Es conveniente

INGENIERÍA DE SISTEMAS Y AUTOMÁTICA - UMH

8

Con el objeto de representar la señal con la mayor precisión posible, es recomendable utilizar un gran número de valores o, lo que es lo mismo, hacer que los instantes de tiempo entre cada dos valores sean lo más pequeños posible. Formatos para la instrucción lsim: • Si lo que se desea es la representación gráfica de la respuesta:

lsim (nombre_sistema, valor_entrada, t_entrada)

• Si lo que se desea es obtener los valores numéricos de la respuesta:

[y, t] = lsim (nombre_sistema, valor_entrada, t_ent rada)

Al igual que con la instrucción step, los vectores y y t definen la señal de salida; de este modo es posible realizar cualquier operación matemática sobre esos datos. Ejemplo: Obtendremos la respuesta del sistema sis1 a la siguiente señal de entrada:

Como primer paso, debemos definir mediante dos vectores t (tiempo) y u (valores) la señal de entrada. De acuerdo con lo que se ha visto en prácticas anteriores, la definición de la señal se hará en tres tramos mediante las siguientes instrucciones de Matlab:

» t1 = [0:0.1:10]; % de 0 a 10 seg. a intervalos de 0.1 seg. » u1 = 0.5*t1; % primer tramo de la señal » t2 = [10.1:0.1:30]; % de 10.1 a 30 seg. » u2 = 5*ones(size(t2)) % segundo tramo de la señal » t3 = [30.1:0.1:40]; % de 30.1 a 40 seg. » u3 = –0.5*(t3-30)+5; % tercer tramo de la señal » t = [t1, t2, t3]; % concatenación de los vectores de tiempo » u = [u1, u2, u3]; % concatenación de los vectores de datos

Es conveniente comprobar que se han definido correctamente las variables u y t. Para ello el procedimiento más inmediato es utilizar la orden plot de Matlab, con la que podemos representar la variable u (señal) en función de la variable t (tiempo):

» plot(t,u)

Identificador del

sistema

Vector con los instantes de

tiempo de la señal de entrada

Vector con los valores

de la señal de entrada

Vector de

valores de la

señal de salida

Vector de

instantes de la

señal de salida

Page 9: ELECTRÓNICA DE CONTROL - umh2279.edu.umh.esumh2279.edu.umh.es/wp-content/uploads/sites/421/2013/02/electronic... · bloque y un osciloscopio a la ... El formato para la ... Es conveniente

INGENIERÍA DE SISTEMAS Y AUTOMÁTICA - UMH

9

El resultado debe ser un gráfico similar al siguiente:

Una vez comprobado que los vectores se han definido correctamente, podemos lanzar la instrucción lsim:

» lsim(sis1,u,t)

Y el resultado será un gráfico con la respuesta que ofrece nuestro sistema sis1 a la entrada anterior:

Podemos ver cómo la salida del sistema reproduce aproximadamente la entrada al mismo.

Page 10: ELECTRÓNICA DE CONTROL - umh2279.edu.umh.esumh2279.edu.umh.es/wp-content/uploads/sites/421/2013/02/electronic... · bloque y un osciloscopio a la ... El formato para la ... Es conveniente

INGENIERÍA DE SISTEMAS Y AUTOMÁTICA - UMH

10

5. REDUCCIÓN DE DIAGRAMAS DE BLOQUES CON MATLAB Matlab también permite obtener sistemas equivalentes para las principales combinaciones de bloques: en serie, en paralelo y en realimentación. De este modo, es posible reducir los diagramas de bloques. Equivalente de dos bloques en serie: Es el producto de los dos bloques, en Matlab se obtiene con el comando series:

Supuestos definidos los sistemas sys1 y sys2, teclearíamos en Matlab:

» sistema_equivalente = series (sys1, sys2)

Equivalente de dos bloques en paralelo: Es la suma de los dos bloques, en Matlab se obtiene con el comando parallel:

Supuestos definidos los sistemas sys1 y sys2, teclearíamos en Matlab:

» sistema_equivalente = parallel (sys1, sys2) Equivalente para un esquema de realimentación: Se calcula en Matlab mediante el comando feedback:

Supuestos definidos los sistemas sistema_1 y sistema_2, teclearíamos en Matlab:

» sistema_equivalente = feedback (sys1, sys2)

Page 11: ELECTRÓNICA DE CONTROL - umh2279.edu.umh.esumh2279.edu.umh.es/wp-content/uploads/sites/421/2013/02/electronic... · bloque y un osciloscopio a la ... El formato para la ... Es conveniente

INGENIERÍA DE SISTEMAS Y AUTOMÁTICA - UMH

11

Ejemplo:

Dado el siguiente diagrama de bloques obtener el sistema reducido equivalente:

» sis1 = tf([1 10], [1 2 10]) » sis2 = tf([1], [1 2]) » sis3 = 10

» sistema = feedback( series(sis1, parallel(sis2, s is3)), 1)

Transfer function: 10 s^2 + 121 s + 210 -------------------------- s^3 + 14 s^2 + 135 s + 230

6. TRANSFORMADAS Y ANTITRANSFORMADAS

Matlab permite obtener transformadas y antitransformadas de Fourier y Laplace mediante su módulo de matemática simbólica. Procedimiento:

• Declarar una variable simbólica con la instrucción syms • Obtener la transformada para una expresión definida utilizando la variable simbólica anterior

Instrucciones de Matlab correspondientes a cada una de las transformadas:

• fourier transformada de Fourier • ifourier transformada inversa de Fourier • laplace transformada de Laplace • ilaplace transformada inversa de Laplace

Ejemplo:

Obtendremos la antitransformada de Laplace de la siguiente expresi�� ��

!∙�!"#.$�n:

R(s) A(s) � 10

�� 2� 10

-

+

10

1

� 2

+

Y(s) + E(s)

Page 12: ELECTRÓNICA DE CONTROL - umh2279.edu.umh.esumh2279.edu.umh.es/wp-content/uploads/sites/421/2013/02/electronic... · bloque y un osciloscopio a la ... El formato para la ... Es conveniente

INGENIERÍA DE SISTEMAS Y AUTOMÁTICA - UMH

12

Las instrucciones de Matlab que utilizaremos serán:

» syms s » ilaplace (2/(s*(s+0.5))) ans =

4-4*exp(-1/2*t)

Por lo tanto, hemos obtenido como respuesta:���� � 4 & 4 ∙ '(#.$) Comprobación: haciendo el procedimiento inverso buscaremos la transformada de Laplace de f(t):

» syms t » laplace (4-4*exp(-0.5*t)) ans =

4/s-4/(s+1/2)

Se obtiene como resultado:

���� �4

�&

4

� 0.5�4�� 0.5� & 4�

� ∙ �� 0.5��

2

� ∙ �� 0.5�

... que es la misma función F(s) de partida Como ejercicio, se obtendrán antitransformadas de Laplace para las siguientes funciones:

�*��� ��� 2� 3

�� 1�,�* � �� ∙ '() '()

����� �5� 5

� ∙ ��� 2� 5��� � 1 & '()-cos�2�� & 2 ∙ �'0�2��1

7. ESTUDIO DE LA ESTABILIDAD DE SISTEMAS Teóricamente se dispone de tres medios para determinar la estabilidad de un sistema:

• A partir de su respuesta impulsional. • A partir de la situación de los polos de la función de transferencia. • A partir de los coeficientes del denominador de la función de transferencia (tabla de Routh).

Con Matlab podemos proceder de dos formas:

• Calcular los polos de la función de transferencia. • Simular el comportamiento del sistema y ver si es estable ante entrada escalón (en principio

también será estable ante cualquier otra entrada acotada). Veamos esto sobre un ejemplo: Se pretende averiguar el rango de valores del parámetro K que hacen estable el siguiente sistema:

���� �3� 5

�, 3�� 2� �

La forma de operar manualmente sería aplicar el criterio de Routh:

• En primer lugar, todos los coeficientes del denominador deben tener igual signo, con lo cual se obtiene la primera condición que debe cumplir K:

� 2 0

Page 13: ELECTRÓNICA DE CONTROL - umh2279.edu.umh.esumh2279.edu.umh.es/wp-content/uploads/sites/421/2013/02/electronic... · bloque y un osciloscopio a la ... El formato para la ... Es conveniente

INGENIERÍA DE SISTEMAS Y AUTOMÁTICA - UMH

13

• En segundo lugar, se debe calcular la tabla de Routh y exigir como condición que no se produzca ningún cambio de signo en la primera columna:

�, 1 2

�� 3 �

�*6 & �

3

�# �

Las condiciones que se obtienen para el parámetro K son: 6 & � 2 0 ⇒ � 4 6 � 2 0 Combinando todos los resultados, se obtiene como conclusión que el sistema es estable si cumple: 0 4 K 4 6 A continuación se comprobarán estos resultados con Matlab. Comenzaremos por elegir un valor de K que haga al sistema estable, por ejemplo K=3. Para este valor de K crearemos una función de transferencia como la pedida mediante la instrucción tf que ya conocemos:

» k = 3; » sis = tf([3 5], [1 3 2 k]) Transfer function: 3 s + 5 --------------------- s^3 + 3 s^2 + 2 s + 3

Lo primero que haremos será calcular la situación de los polos de la función de transferencia. Esto puede hacerse con la instrucción pole, tal y como se indica a continuación:

» pole(sis) ans = -2.6717 -0.1642 + 1.0469i -0.1642 - 1.0469i

La instrucción nos devuelve los valores de los polos; podemos comprobar como todos ellos tienen parte real negativa, lo que corresponde a un sistema estable. Una segunda comprobación de la estabilidad del sistema la podemos hacer calculando la respuesta que ofrecería el sistema ante una entrada tipo escalón, mediante la instrucción step, también conocida:

» step(sis)

Page 14: ELECTRÓNICA DE CONTROL - umh2279.edu.umh.esumh2279.edu.umh.es/wp-content/uploads/sites/421/2013/02/electronic... · bloque y un osciloscopio a la ... El formato para la ... Es conveniente

INGENIERÍA DE SISTEMAS Y AUTOMÁTICA - UMH

14

Podemos ver sobre el gráfico devuelto por Matlab como la respuesta ante una entrada escalón es una señal que se estabiliza en un valor determinado, es acotada, por lo que podemos considerar que para cualquier otro tipo de entrada también lo será. Consideraremos comprobado que el sistema es estable. A continuación realizaremos las mismas pruebas pero para valores del parámetro K fuera del rango de estabilidad. En primer lugar probaremos con un valor de K por encima del límite superior de estabilidad, por ejemplo K=9.

» k = 9; » sis = tf([3 5], [1 3 2 k]) Transfer function: 3 s + 5 --------------------- s^3 + 3 s^2 + 2 s + 9

Calculamos los polos de la función de transferencia:

» pole(sis) ans = -3.2400 0.1200 + 1.6623i 0.1200 - 1.6623i

Y comprobamos como, efectivamente, dos de ellos tienen parte real positiva, lo que corresponde a un sistema inestable. Como segunda comprobación, también obtenemos la respuesta ante entrada escalón:

» step(sis, 35)

Page 15: ELECTRÓNICA DE CONTROL - umh2279.edu.umh.esumh2279.edu.umh.es/wp-content/uploads/sites/421/2013/02/electronic... · bloque y un osciloscopio a la ... El formato para la ... Es conveniente

INGENIERÍA DE SISTEMAS Y AUTOMÁTICA - UMH

15

Podemos ver como en este caso la señal de respuesta crece indefinidamente en amplitud, no está acotada, y por tanto debemos considerar el sistema como inestable. Consideraremos por último el caso en el que el parámetro K se encuentra también fuera del rango de estabilidad pero en este caso por debajo del límite inferior, por ejemplo K = -2

» k=-2; » sis = tf([3 5], [1 3 2 k]) Transfer function: 3 s + 5 --------------------- s^3 + 3 s^2 + 2 s - 2

Si calculamos los polos de la función de transferencia:

» pole(sis) ans = -1.7607 + 0.8579i -1.7607 - 0.8579i 0.5214

Podemos ver de nuevo como uno de ellos tiene parte real positiva, por tanto corresponde a un sistema inestable. Haciendo la segunda comprobación, calcularemos la respuesta ante una entrada en escalón:

>> step(sis)

Page 16: ELECTRÓNICA DE CONTROL - umh2279.edu.umh.esumh2279.edu.umh.es/wp-content/uploads/sites/421/2013/02/electronic... · bloque y un osciloscopio a la ... El formato para la ... Es conveniente

INGENIERÍA DE SISTEMAS Y AUTOMÁTICA - UMH

16

De nuevo podemos comprobar como la señal de respuesta crece indefinidamente, no está acotada, lo que corrobora que el sistema es inestable.

8. ESTUDIO DEL COMPORTAMIENTO DINÁMICO DE SISTEMAS

Sabemos por teoría que el comportamiento dinámico de sistemas en régimen transitorio depende de la situación de los polos de la función de transferencia sobre el plano complejo. A continuación se comprobarán estos resultados teóricos mediante Matlab. Comportamiento dinámico de sistemas de primer orden Un sistema de primer orden responde a la siguiente función de transferencia:

���� ��

1 6�

Y el único polo del sistema (valor de s que anula el denominador) se encuentra en s = -1/T De acuerdo con lo explicado en teoría, el sistema presentará un comportamiento en régimen transitorio más rápido cuanto más alejado se encuentre el polo del eje imaginario (cuanto menor sea la constante de tiempo T) Comprobaremos estos resultados con 3 sistemas en los que varía únicamente la constante de tiempo T:

�*��� �6

1 0.5������ �

6

1 2��,��� �

6

1 5�

Para ello obtendremos en cada caso la respuesta a escalón mediante el comando step de Matlab. Para poder comparar los resultados correctamente, en todos los casos simularemos el comportamiento del sistema durante un tiempo de 20 segundos:

Page 17: ELECTRÓNICA DE CONTROL - umh2279.edu.umh.esumh2279.edu.umh.es/wp-content/uploads/sites/421/2013/02/electronic... · bloque y un osciloscopio a la ... El formato para la ... Es conveniente

INGENIERÍA DE SISTEMAS Y AUTOMÁTICA - UMH

17

Pare el primer sistema, tendremos: » sis1 = tf(6, [.5 1]) Transfer function: 6 --------- 0.5 s + 1 » step(sis1, 20)

Para el segundo sistema:

» sis2 = tf(6, [2 1]) Transfer function: 6 ------- 2 s + 1 » step(sis2, 20)

Page 18: ELECTRÓNICA DE CONTROL - umh2279.edu.umh.esumh2279.edu.umh.es/wp-content/uploads/sites/421/2013/02/electronic... · bloque y un osciloscopio a la ... El formato para la ... Es conveniente

INGENIERÍA DE SISTEMAS Y AUTOMÁTICA - UMH

18

Y por último, para el tercer sistema: » sis3 = tf(6, [5 1]) Transfer function: 6 ------- 5 s + 1 » step(sis3, 20)

Debe quedar comprobado como al aumentar el valor de T (polos más cercanos al eje imaginario) la respuesta del sistema se hace más lenta. Comportamiento dinámico de sistemas de segundo orden Un sistema de segundo orden responde a la siguiente función de transferencia:

���� �� ∙ 78

�� 29 ∙ � 78�

Y los dos polos del sistema se obtienen igualando a cero el polinomio del denominador (ecuación característica):

En función de los valores que tomen el coeficiente de amortiguamiento y la frecuencia natural no

amortiguada 78, el comportamiento en régimen transitorio será distinto.

Nos fijaremos en el caso más común en el que 0 < < 1 correspondiente a sistemas subamortiguados.

En este caso los polos se pueden expresar como:

Donde :y 7; representan el módulo de la parte real y la parte imaginaria de las raíces respectivamente. Teóricamente se puede demostrar que el comportamiento en régimen transitorio de un sistema de segundo orden subamortiguado presenta sobreoscilaciones que se reducen en amplitud con el tiempo. Estas oscilaciones tienen una frecuencia igual a 7; y decrecen en amplitud tanto más rápido cuanto mayor sea el valor de :.

122,1 −±−= ζωζω nns

ζ

ζ

)10(1 22,1 ≤<⋅±−=→−⋅+⋅= ζωσζωωζ dnn jsjs

Page 19: ELECTRÓNICA DE CONTROL - umh2279.edu.umh.esumh2279.edu.umh.es/wp-content/uploads/sites/421/2013/02/electronic... · bloque y un osciloscopio a la ... El formato para la ... Es conveniente

INGENIERÍA DE SISTEMAS Y AUTOMÁTICA - UMH

19

Este comportamiento lo podemos verificar sobre Matlab estudiando la respuesta a escalón de 3 sistemas en los que varían los parámetros : y 7;.

�*��� �4

�� 2� 10����� �

10.4

�� 2� 26�,��� �

10.1

�� � 25.25

Comenzando por el primer sistema, las instrucciones Matlab necesarias para obtener el valor de los polos y para comprobar la respuesta ante escalón serían las siguientes:

» sis1 = tf(4, [1 2 10]) Transfer function: 4 -------------- s^2 + 2 s + 10 » pole(sis1) ans = -1.0000 + 3.0000i -1.0000 - 3.0000i » step(sis1,10)

A partir de los datos devueltos por Matlab en la instrucción pole, podemos comprobar cómo para la función de transferencia G1(s) se obtiene : � 1 y 7; � 3. Haciendo las mismas operaciones con la segunda función de transferencia, se obtendrá:

» sis2 = tf(10.4, [1 2 26]) Transfer function: 10.4 -------------- s^2 + 2 s + 26 » pole(sis2) ans = -1.0000 + 5.0000i -1.0000 - 5.0000i » step(sis2,10)

Page 20: ELECTRÓNICA DE CONTROL - umh2279.edu.umh.esumh2279.edu.umh.es/wp-content/uploads/sites/421/2013/02/electronic... · bloque y un osciloscopio a la ... El formato para la ... Es conveniente

INGENIERÍA DE SISTEMAS Y AUTOMÁTICA - UMH

20

Y podemos ver como la respuesta llega al mismo valor final pero se comporta de un modo distinto en el régimen transitorio. La diferencia con los polos del sistema anterior se encuentra en el valor de la parte imaginaria, que ha aumentado hasta 7; � 5. El efecto sobre el comportamiento del sistema es el esperable, aumenta la frecuencia de las sobreoscilaciones pero la amplitud de las mismas se reduce a la misma velocidad que en el sistema anterior (s no ha variado). Si repetimos las operaciones con la tercera función de transferencia, tendremos:

» sis3 = tf(10.1, [1 1 25.25]) Transfer function: 10.1 --------------- s^2 + s + 25.25 » pole(sis3) ans = -0.5000 + 5.0000i -0.5000 - 5.0000i » step(sis3,10)

Podemos ver de nuevo como la respuesta llega al mismo valor final que en el caso anterior y presenta la misma frecuencia de sobreoscilación (7; no ha cambiado) pero la amplitud de la sobreoscilación decrece más lentamente, debido a la reducción del parámetro :.

Page 21: ELECTRÓNICA DE CONTROL - umh2279.edu.umh.esumh2279.edu.umh.es/wp-content/uploads/sites/421/2013/02/electronic... · bloque y un osciloscopio a la ... El formato para la ... Es conveniente

INGENIERÍA DE SISTEMAS Y AUTOMÁTICA - UMH

21

9. CÁLCULO DEL LUGAR DE LAS RAÍCES CON MATLAB El toolbox de control de Matlab también dispone de comandos para el cálculo del lugar de las raíces. Las instrucciones que utilizaremos serán rlocus y rlocfind . Normalmente partimos de un sistema como el siguiente:

El lugar de las raíces nos muestra la evolución de los polos del sistema realimentado o en cadena cerrada M(s) cuando el parámetro K varía desde 0 hasta ∞. Las instrucción rlocus permite obtener este trazado, y utiliza como argumento el sistema en cadena abierta definido por la función de transferencia G(s)H(s). Ejemplo: obtendremos el lugar de las raíces para el siguiente sistema:

El primer paso es definir las funciones de transferencia G(s), H(s) y G(s)·H(s). Llamaremos a estas funciones sis_g, sis_h y sis_gh, respectivamente:

» sis_g = tf(1, [1 4 3]) Transfer function: 1 ------------- s^2 + 4 s + 3 » sis_h = tf([1], [1 5]) Transfer function: 1 ----- s + 5 » sis_gh = series(sis_g, sis_h) Transfer function: 1 ----------------------- s^3 + 9 s^2 + 23 s + 15

Page 22: ELECTRÓNICA DE CONTROL - umh2279.edu.umh.esumh2279.edu.umh.es/wp-content/uploads/sites/421/2013/02/electronic... · bloque y un osciloscopio a la ... El formato para la ... Es conveniente

INGENIERÍA DE SISTEMAS Y AUTOMÁTICA - UMH

22

A continuación utilizaremos el sistema sis_gh recién creado como argumento para la instrucción rlocus:

» rlocus(sis_gh) Matlab generará un gráfico como el siguiente:

Interpretar el gráfico resultante es sencillo: muestra la situación en el plano complejo de los polos del sistema realimentado o en cadena cerrada M(s). Cada rama representa la situación de uno de los polos; en este caso aparecen tres ramas dibujadas con tres colores distintos para mayor claridad. Los puntos de comienzo (K=0) de cada rama coinciden con los polos en cadena abierta (cruces sobre el gráfico) y puntos de finalización (K=∞) de cada rama tienden a infinito en este caso. Si no se añade ningún parámetro extra, Matlab elegirá automáticamente los valores de K entre 0 e ∞ para los cuales calculará el lugar de las raíces. En determinadas ocasiones interesa elegir manualmente el rango de valores deseado para K. Para ello basta con introducir un nuevo parámetro en rlocus:

» rlocus(sis_gh, [0:.1:100]) %K de 0 a 100 a interv alos de 0.1 El resultado sería el siguiente:

Si no se desea un resultado gráfico, sino que se desea conocer los valores numéricos de los polos en cadena cerrada para cada valor de K la instrucción a teclear será:

[r, k] = rlocus(sis_gh); La variable k contendrá los valores del parámetro K utilizados para el cálculo del lugar de las raíces; la variable r contendrá los polos del sistema para cada valor de K . También es posible comprobar sobre el propio gráfico los valores del parámetro K correspondientes a cada punto del lugar de las raíces. Para ello se emplea la instrucción rlocfind . Esta instrucción, ejecutada a continuación de rlocus, permite pinchar con el ratón sobre un punto cualquiera del lugar de las raíces y obtener el valor del polo más cercano al punto donde se ha pinchado, el valor de K correspondiente a ese polo y la situación del resto de polos para ese valor de K (aparecen marcados en rojo sobre el diagrama):

» rlocus(sis_gh) » rlocfind(sis_gh)

Page 23: ELECTRÓNICA DE CONTROL - umh2279.edu.umh.esumh2279.edu.umh.es/wp-content/uploads/sites/421/2013/02/electronic... · bloque y un osciloscopio a la ... El formato para la ... Es conveniente

INGENIERÍA DE SISTEMAS Y AUTOMÁTICA - UMH

23

Select a point in the graphics window

A continuación se debe pinchar con el ratón sobre un punto cualquiera del lugar de las raíces:

La repuesta que aparece en la ventana de comandos indica el valor de s en el punto del lugar de las raíces donde se ha pinchado (selected point) y el valor de K correspondiente (ans):

selected_point = -1.2558 + 2.3509i

ans = 30.6040

Tal y como indica Matlab, en este caso el punto donde se ha pinchado es s = -1.2558+2.3509j y el valor de K para el cual el sistema presenta ese polo es K = 30.604. En el ejemplo, es interesante conocer el valor de K correspondiente a dos de los puntos del gráfico: el punto a partir del cual aparecen dos polos complejos conjugados y el punto a partir del cual aparecen dos polos inestables. Si buscamos estos puntos con la ayuda de rlocfind deberíamos obtener los siguientes resultados: • Punto a partir del cual aparecen los polos complejos: K=3.08 • Punto a partir del cual aparecen los polos inestables: K=192 La forma de comprobar este comportamiento es asignar valores a K y comprobar mediante la instrucción step la respuesta a escalón del sistema realimentado M(s). La forma de calcular el sistema realimentado M(s) será mediante la instrucción feedback vista anteriormente. Probaremos en primer lugar un valor de K=2, de modo que los polos sean reales. En el gráfico de la respuesta a escalón obtenido se debe comprobar cómo no existe sobreoscilación:

» k=2; » sis_m = feedback(k*sis_g, sis_h) Transfer function: 2 s + 10 ----------------------- s^3 + 9 s^2 + 23 s + 17 » step(sis_m)

Page 24: ELECTRÓNICA DE CONTROL - umh2279.edu.umh.esumh2279.edu.umh.es/wp-content/uploads/sites/421/2013/02/electronic... · bloque y un osciloscopio a la ... El formato para la ... Es conveniente

INGENIERÍA DE SISTEMAS Y AUTOMÁTICA - UMH

24

A continuación se repite la misma secuencia de comandos de Matlab, pero haciendo K=20. En este caso la respuesta a escalón sí presenta una sobreoscilación clara:

Por último, se prueba un valor K=200 y se aprecia como el sistema, para ese valor de K , se hace inestable:

NOTA: A la hora de hacer un estudio de este tipo se debe tener en cuenta que los polos que más influirán en el comportamiento transitorio del sistema serán los más próximos al eje imaginario, lo que se ha venido denominando polos dominantes.

Page 25: ELECTRÓNICA DE CONTROL - umh2279.edu.umh.esumh2279.edu.umh.es/wp-content/uploads/sites/421/2013/02/electronic... · bloque y un osciloscopio a la ... El formato para la ... Es conveniente

INGENIERÍA DE SISTEMAS Y AUTOMÁTICA - UMH

25

EJERCICIO OPCIONAL: CÁLCULO DE ESTABILIDAD

Se estudiará el rango de valores de K que hacen estable el siguiente sistema:

���� �5

��, �� 2� � 5

Al igual que en el ejemplo, se calculará teóricamente el rango de estabilidad y a continuación se comprobarán con Matlab los resultados obtenidos. Resultados a obtener:

• Desarrollo teórico completo (tabla de Routh) que permite determinar el rango de estabilidad del sistema planteado.

• Para un valor de K dentro del rango de estabilidad: o Instrucciones Matlab que permiten crear la función de transferencia para ese valor de K. o Valor de los polos tal y como es devuelto por Matlab. o Respuesta a escalón en la que se vea claramente que el sistema es estable. Para ello se deberá

añadir un parámetro a la instrucción step de modo que se simule el comportamiento del sistema durante los 50 primeros segundos.

• Para un valor de K por encima del límite superior de estabilidad: o Repetir los mismos apartados del punto anterior. En este caso debe verse claramente como el

sistema es inestable. • Para un valor de K por debajo del límite inferior de estabilidad:

o Repetir los mismos apartados del punto anterior.

Page 26: ELECTRÓNICA DE CONTROL - umh2279.edu.umh.esumh2279.edu.umh.es/wp-content/uploads/sites/421/2013/02/electronic... · bloque y un osciloscopio a la ... El formato para la ... Es conveniente

INGENIERÍA DE SISTEMAS Y AUTOMÁTICA - UMH

26

EJERCICIO 1: TREN-BALA Se desea estudiar el comportamiento de un tren-bala a altas velocidades. Se supondrá que existen dos fuerzas antagónicas:

fP: fuerza de propulsión producida por el motor fR: fuerza de resistencia aerodinámica que se opone al avance

Las ecuaciones de comportamiento del sistema son las siguientes:

�<��� � �< ∙ =����

�>��� � �> ∙ ?���

� ∙�=���

��� �>��� & �<���

Se pide: • Operar como en el ejercicio anterior (muelle) hasta llegar a la función de transferencia que relaciona la

velocidad del tren con la posición de la palanca de mando del motor. El sistema es NO lineal, por lo que se analizará el problema sobre el sistema linealizado entorno a la posición de equilibrio correspondiente a una posición de la palanca de mando = 40 mm.

Dado que en este caso no partimos de una única ecuación sino de varias ecuaciones y por tanto de varios bloques, caben dos posibilidades: representar el diagrama de bloques en Simulink o reducir el mismo hasta obtener un único bloque y representar sólo este bloque en Simulink. En cualquier caso, la variable Z(s) será la entrada y la variable V(s) la salida:

• Realizar en Simulink los tres posibilidades siguientes y representarlas en el mismo Scope:

o Función de transferencia del sistema linealizado en un único bloque o Diagrama de bloques del sistema linealizado o Diagrama de bloques del sistema sin linealizar

• Utilizar como entrada un escalón de 2 unidades (cambio brusco de 2 mm. en la palanca de mando) y comprobar cuál es el efecto en la velocidad del tren. Se deberán obtener los siguientes valores midiendo sobre el gráfico así como mediante una función creada en Matlab (tren_bala_análisis):

o Velocidad final alcanzada por el tren. o Tiempo que tarda el tren en alcanzar la mitad del incremento de velocidad total.

• Variar la masa del tren y la constante de resistencia aerodinámica y explicar cómo afecta a la salida obtenida (del sistema linealizado).

• Aplicar diferentes entradas de tipo escalón (amplitud 2, 20 y 50) y comprobar la diferencia entre el sistema linealizado y el sistema sin linealizar. ¿Explicar las diferencias observadas en función de la amplitud del escalón de entrada?

AYUDA: • La función ‘elevar al cuadrado’ se obtiene con el bloque ‘Math function’ perteneciente a la categoría

‘Math Operations’ . • Para comparar valores correctamente, utilizaremos como variables de entrada y salida los valores

incrementales de ∆v(t) y ∆z(t). Deberemos por tanto realizar la conversión a la entrada y salida en el sistema no lineal de estas variables utilizando un bloque constante.

=��� � =�0� Δv�t� ?��� � ?�0� Δz�t�

• Recordar que debe simularse respecto a un punto de equilibrio no nulo, en el integrador del sistema no lineal debe configurarse el valor inicial v(0) calculado.

Z(s) V(s) ����

v(t) = velocidad del tren (m/s) z(t) = posición palanca de mando (mm) KR = constante resistencia aerodinámica = 4Ns2/m2 KP = constante del propulsor = 1000 N/mm M = masa del tren = 5000 Kg

Page 27: ELECTRÓNICA DE CONTROL - umh2279.edu.umh.esumh2279.edu.umh.es/wp-content/uploads/sites/421/2013/02/electronic... · bloque y un osciloscopio a la ... El formato para la ... Es conveniente

INGENIERÍA DE SISTEMAS Y AUTOMÁTICA - UMH

27

EJERCICIO 2: COMPORTAMIENTO DINÁMICO Trabajaremos sobre un montaje ya estudiado en otra práctica: el servomecanismo de posición accionado mediante un motor eléctrico. Recordemos que el objetivo es actuar sobre el motor o aplicar al motor una tensión v(t) de forma que la pieza móvil se sitúe en el lugar x(t) que se le indique mediante la referencia x0(t):

El diagrama de bloques correspondiente a este montaje es el siguiente:

Donde los valores de las constantes del sistema son las siguientes:

• R = 1.25 (resistencia de los devanados del motor) • I = 0.8 (momento de inercia del conjunto) • B = 0.5 (coeficiente de rozamiento viscoso) • KP = 3 (constante de par del motor) • KV = 0.01 (constante de velocidad del motor)

La constante K C representa el controlador empleado: la acción sobre el motor v(t) será proporcional al error o a la diferencia entre la referencia x0(t) y la posición real x(t) siendo la constante de proporcionalidad K C.

Ajustar el controlador equivale en este caso a elegir el valor de K C que hace que el comportamiento del sistema sea el deseado. Se pide: • Representar el esquema anterior en Simulink y obtener la respuesta ante escalón de 20 unidades para

los 3 valores siguientes de la constante K C: K C=0.1, KC=0.3 y K C=0.5. El sistema debe simularse durante 30 segundos, y se debe ajustar el parámetro ‘max step size’ a 0.01 segundos para que la representación de la respuesta sea suficientemente detallada.

• Anotar para cada valor de K C la sobreoscilación que se produce en la señal de salida x(t) (sobreoscilación = exceso porcentual sobre el valor final) y el tiempo de pico (tiempo de pico = instante en el que se alcanza el máximo valor). Debe comprobarse cómo la sobreoscilación aumenta al aumentar K C y el tiempo de pico disminuye al aumentar K C.

• Sobre Simulink, probar con distintos valores de K C hasta encontrar uno que cumpla las siguientes especificaciones: o Sobreoscilación < 28% o Tiempo de pico < 4 segundos

• Una vez elegido el valor adecuado para K C, calcular con la ayuda de Matlab la situación de los polos del sistema resultante. Se deberán emplear las siguientes instrucciones de Matlab: tf para crear las funciones de transferencia; series y feedback para reducir el diagrama de bloques; y finalmente pole para determinar la posición de los polos en el sistema resultante.

• Obtener también el lugar de las raíces (LDR ) de la función de trasferencia obtenida en Matlab y verificar que el valor de Kc obtenido cumple con la sobreoscilación y el tiempo de pico sobre el diagrama.