+ All Categories
Home > Documents > Práctica1 - coolab.umh.escoolab.umh.es/sea/control/Practica1.pdf · Title: Microsoft Word -...

Práctica1 - coolab.umh.escoolab.umh.es/sea/control/Practica1.pdf · Title: Microsoft Word -...

Date post: 08-Sep-2020
Category:
Upload: others
View: 0 times
Download: 0 times
Share this document with a friend
21
. ÍNDICE: a) Modelado de Sistemas Continuos: 1. Creación de modelos con Matlab. 2. Calculo de la respuesta del sistema con Matlab. 3. Transformación entre modelos de estado. 4. Obtención de la función de transferencia a partir del modelo en variables de estado. 5. Representación de modelos con Simulink. Cálculo de la respuesta. 6. Creación de otros modelos con Simulink. b) Solución de la Ecuación de Estado: 1. Introducción. 2. Solución de la ecuación de estado para un sistema continuo. 3. Representación gráfica. SISTEMAS ELECTRÓNICOS Y AUTOMÁTICOS PRÁCTICA 1. MODELADO DE SISTEMAS CONTINUOS EN EL ESPACIO DE ESTADOS.
Transcript
Page 1: Práctica1 - coolab.umh.escoolab.umh.es/sea/control/Practica1.pdf · Title: Microsoft Word - Práctica1.doc Author: lpaya Created Date: 11/20/2009 9:26:48 PM

.

ÍNDICE:

a) Modelado de Sistemas Continuos: 1. Creación de modelos con Matlab. 2. Calculo de la respuesta del sistema con Matlab. 3. Transformación entre modelos de estado. 4. Obtención de la función de transferencia a partir del modelo en variables de estado. 5. Representación de modelos con Simulink. Cálculo de la respuesta. 6. Creación de otros modelos con Simulink.

b) Solución de la Ecuación de Estado: 1. Introducción. 2. Solución de la ecuación de estado para un sistema continuo. 3. Representación gráfica.

SISTEMAS ELECTRÓNICOS Y AUTOMÁTICOS

PRÁCTICA 1.

MODELADO DE SISTEMAS CONTINUOS EN EL ESPACIO DE ESTADOS.

Page 2: Práctica1 - coolab.umh.escoolab.umh.es/sea/control/Practica1.pdf · Title: Microsoft Word - Práctica1.doc Author: lpaya Created Date: 11/20/2009 9:26:48 PM

Escuela Politécnica Superior de Elche

Ingeniería Industrial

2

1. CREACIÓN DE MODELOS CON MATLAB. Matlab posee un toolbox muy potente de control (Control System Toolbox). Este toolbox consta de una colección de funciones que implementan técnicas de diseño, análisis y modelado de sistemas de control lineales invariantes en el tiempo (LTI: Linear Time-Invariant). Sus características más importantes son:

- Los sistemas de control pueden ser modelados como funciones de transferencia o en el espacio de estados, permitiendo utilizar tanto técnicas clásicas como modernas.

- Permite trabajar con sistemas continuos y con sistemas discretos. - Se pueden realizar conversiones entre las diferentes representaciones de los sistemas. - Es posible calcular y representar repuestas en el dominio del tiempo, en el frecuencial, así

como el lugar de las raíces. - Existen funciones para asignación de polos, control óptimo, ... - Posee una interface gráfica (LTI Viewer) para el análisis de la respuesta de los sistemas.

Creación del modelo de un sistema continuo en el espacio de estados:

Un sistema de control lineal invariante en el tiempo (LTI) es modelado en Matlab como un objeto. Este objeto es una estructura de datos que permite manipular el modelo del sistema como si fuera una única variable de Matlab. Vamos a ver como se define en Matlab un sistema continuo modelado en representación interna. El sistema continuo lineal invariante en el tiempo modelado en representación interna como: ( ) ( ) ( )( ) ( ) ( )tuDtxCty

tuBtxAtx rrrrr&r

+=+=

se define en Matlab de la siguiente manera:

» sys = ss(A,B,C,D)

Por ejemplo, si quisiéramos definir el siguiente sistema en Matlab:

( )( )

( )( ) ( )

( ) [ ] ( )( )⎥⎦⎤

⎢⎣

⎡⋅=

⋅⎥⎦

⎤⎢⎣

⎡+⎥

⎤⎢⎣

⎡⋅⎥⎦

⎤⎢⎣

⎡−−

=⎥⎦

⎤⎢⎣

txtx

ty

tutxtx

txtx

2

1

2

1

2

1

06

10

3210

&

&

Los comandos necesarios en Matlab serían:

» A=[0 1;-2 -3]; » B=[0 1]'; » C=[6 0]; » D=0; » sys=ss(A,B,C,D)

a) MODELADO DE SISTEMAS CONTINUOS

Page 3: Práctica1 - coolab.umh.escoolab.umh.es/sea/control/Practica1.pdf · Title: Microsoft Word - Práctica1.doc Author: lpaya Created Date: 11/20/2009 9:26:48 PM

Escuela Politécnica Superior de Elche

Ingeniería Industrial

3

a =

x1 x2 x1 0 1.00000 x2 -2.00000 -3.00000

b =

u1 x1 0 x2 1.00000

c =

x1 x2 y1 6.00000 0

d =

u1 y1 0

Continuous-time system. »

Con esto se ha creado un objeto llamado sys, correspondiente al sistema anterior. La variable sys creada es una estructura de datos específica del modelo que permite manipular el sistema como una única entidad. Si quisiéramos extraer los datos asociados al sistema creado existen dos opciones: Opción 1: Utilizar la función ssdata:

» [A,B,C,D]=ssdata(sys)

Opción 2: Acceder directamente al miembro de la estructura que nos interese, poniendo el nombre de la variable, un punto y el nombre del elemento al que queremos acceder, por ejemplo, si hacemos:

» matriz = sys.A

Con este comando hemos creado una variable llamada matriz, que será igual a la matriz A del sistema sys. Además de utilizar la representación interna, es posible definir un modelo mediante representación externa (función de transferencia). Si queremos representar un sistema con función de transferencia:

( ) ( )( )sdensnumsG =

debemos utilizar la función tf, de la siguiente forma:

» g = tf(num,den) donde num y den son vectores que especifican los coeficientes del numerador y el denominador, en potencias decrecientes de s. Por ejemplo, si quisiéramos definir el sistema con función de transferencia:

Page 4: Práctica1 - coolab.umh.escoolab.umh.es/sea/control/Practica1.pdf · Title: Microsoft Word - Práctica1.doc Author: lpaya Created Date: 11/20/2009 9:26:48 PM

Escuela Politécnica Superior de Elche

Ingeniería Industrial

4

( )42

532 ++

+=

ssssG

tendríamos que utilizar el siguiente comando:

» sist = tf([3 5], [1 2 4]) Al ejecutar este comando, se ha creado una variable sist, correspondiente al sistema con esa función de transferencia.

Conversión de modelos:

Para realizar la conversión de un sistema entre diferentes representaciones se utilizan las mismas funciones que se usan para crear los modelos. Por ejemplo, para obtener el modelo del sistema en representación externa a partir de su modelo en representación interna se ejecutaría en Matlab:

» systf=tf(sys)

donde sys es el sistema modelado en representación interna y systf es el sistema modelado en representación externa. Para obtener el modelo del sistema en representación interna a partir de su modelo en representación externa se ejecutaría:

» sys=ss(systf)

donde systf es el sistema modelado en representación externa y sys es el sistema modelado en representación interna.

2. CÁLCULO DE LA RESPUESTA DEL SISTEMA CON MATLAB. El toolbox de control de Matlab también permite obtener la representación gráfica de la salida de un sistema ante diferentes tipos de entradas. A continuación se detallan las funciones que permiten obtener este resultado:

- Función step. Representa gráficamente la respuesta del sistema ante entrada escalón unitario, asumiendo que las condiciones iniciales son nulas. Este comando puede ejecutarse de dos modos:

» step(sys)

En este caso muestra una gráfica con la respuesta del sistema sys, pero no permite observar la trayectoria de los estados.

» [y,t,x]=step(sys);

En lugar de representarse la respuesta del sistema se obtiene un vector y con la respuesta del sistema, un vector t con el tiempo usado para la simulación, y una matriz x con la trayectoria de los estados. Para representar la evolución de las variables de estado tendríamos que ejecutar:

» plot(t,x)

Page 5: Práctica1 - coolab.umh.escoolab.umh.es/sea/control/Practica1.pdf · Title: Microsoft Word - Práctica1.doc Author: lpaya Created Date: 11/20/2009 9:26:48 PM

Escuela Politécnica Superior de Elche

Ingeniería Industrial

5

Dicha función nos mostrará la evolución de todas las variables de estado en función del tiempo, en una misma gráfica. Si quisiéramos representar únicamente una variable, por ejemplo, x1(t), tendíamos que ejecutar:

» plot(t,x(:,1))

- Función initial. Respuesta del sistema a las condiciones iniciales considerando que la entrada

es nula. Al igual que en el caso anterior, este comando puede ejecutarse de dos maneras. En primer lugar:

» initial(sys,x0)

Muestra una gráfica con la respuesta del sistema sys a las condiciones iniciales expresadas en el vector x0. En segundo lugar:

» [y,t,x]= initial(sys,x0);

Obtiene un vector y con la respuesta del sistema a las condiciones iniciales expresadas en el vector x0, un vector t con el tiempo usado para la simulación, y una matriz x con la trayectoria de los estados. La representación gráfica se puede llevar a cabo, de nuevo, mediante el comando plot.

- Función lsim. Respuesta ante una entrada arbitraria. Este comando, al igual que en los casos anteriores, puede ejecutarse de dos modos:

» lsim(sys,u,t,x0)

En este caso muestra una gráfica con la respuesta del sistema sys, pero no permite observar la trayectoria de los estados. El vector t indica el tiempo de la señal de entrada, que se expresa en el vector u. Las condiciones iniciales se expresan en el vector x0. Si se considera condiciones iniciales nulas, no es necesario incluir este parámetro.

» [y,ts,x]= lsim(sys,u,t,x0);

En este caso en lugar de representarse la respuesta del sistema se obtiene un vector y con la respuesta del sistema, un vector ts con el tiempo usado para la simulación, y una matriz x con la trayectoria de los estados. La representación gráfica se puede llevar a cabo, de nuevo, mediante el comando plot. El toolbox de control incorpora una interface interactiva que facilita el análisis de la respuesta de los modelos LTI, denominada LTI Viewer. Para acceder a esta herramienta simplemente hay que ejecutar en Matlab:

» ltiview

La interface permite obtener la respuesta de cualquier sistema definido ante diferentes señales de entradas.

Page 6: Práctica1 - coolab.umh.escoolab.umh.es/sea/control/Practica1.pdf · Title: Microsoft Word - Práctica1.doc Author: lpaya Created Date: 11/20/2009 9:26:48 PM

Escuela Politécnica Superior de Elche

Ingeniería Industrial

6

Ejercicio 1: Considérese el siguiente sistema continuo definido en representación interna:

( ) ( ) ( )

( ) [ ] ( )txty

tutxtx

rr

rr&r

⋅=

⋅⎥⎥⎥

⎢⎢⎢

⎡+⋅

⎥⎥⎥

⎢⎢⎢

−−−=

0030

100

102050100010

Utilizando las funciones oportunas del toolbox de control de Matlab, deben realizarse los siguientes apartados:

a) Representar el sistema como un objeto LTI (Linear-Time invariant). b) Obtener en Matlab la respuesta (salida) del sistema continuo, la evolución de las

variables de estado y la trayectoria de los estados, considerando una entrada en escalón unitario y condiciones iniciales nulas.

c) Obtener en Matlab la respuesta (salida) del sistema continuo, la evolución de las

variables de estado y la trayectoria de los estados, considerando condiciones iniciales x0 = [2, 5, -1]T y entrada nula.

d) Obtener en Matlab la respuesta (salida) del sistema continuo, la evolución de las

variables de estado y la trayectoria de los estados, considerando condiciones iniciales x0 = [2, 5, -1]T y entrada escalón unitario.

e) Obtener la respuesta del sistema cuando la entrada es la que se muestra en la figura y

el estado inicial es nulo.

0

u(t)

t

5

0 2.5 7.5 10s

Nota. Para definir los vectores u y t que hay que pasar a la función lsim como parámetros, consultar la práctica 0 (pag. 17).

f) Obtener la función de transferencia del sistema y obtener la salida de dicha función de

transferencia mediante Matlab cuando la entrada es un escalón unitario. Comprobar como el resultado es idéntico al obtenido en el apartado b.

Page 7: Práctica1 - coolab.umh.escoolab.umh.es/sea/control/Practica1.pdf · Title: Microsoft Word - Práctica1.doc Author: lpaya Created Date: 11/20/2009 9:26:48 PM

Escuela Politécnica Superior de Elche

Ingeniería Industrial

7

3. Transformación entre modelos de estado. - Función ss2ss. Permite realizar transformaciones lineales de estado.

» sys = ss2ss(sys,T)

La instrucción anterior realiza la transformación z(t) = Tx(t) sobre el vector de estados x(t) del sistema sys, de forma que la nueva representación del estado es z(t). El sistema resultante es: ( ) ( ) ( )( ) ( ) ( )tuDtxCty

tuBtxAtx⋅+⋅=⋅+⋅= rrrr&r

( ) ( ) ( )( ) ( ) ( )tuDtzCTty

tuTBtzTATtz⋅+⋅=⋅+⋅=

rrrr&r

1

1 Nota: Esta transformación es diferente de la definición clásica de transformación lineal (que es la que usamos en clase), en la que la relación entre el estado antiguo x(t) y el nuevo w(t) es: x(t) = Tw(t), que da lugar al sistema: ( ) ( ) ( )( ) ( ) ( )tuDtxCty

tuBtxAtx⋅+⋅=⋅+⋅= rrrr&r

( ) ( ) ( )( ) ( ) ( )tuDtwCTty

tuBTtwATTtw⋅+⋅=

⋅+⋅= −−

rrrr&r 11

Este hecho se debe tener en cuenta a la hora de usar la función ss2ss. Otra opción consiste en no usar esta función y calcular las matrices del nuevo modelo An, Bn, Cn y Dn en función de las antiguas realizando las operaciones en Matlab:

» An = inv(T)*A*T » Bn = inv(T)*B » Cn = C*T » Dn = D

- Función tf2ss. Permite obtener la representación interna del sistema (modelo de estado) a partir de

la función de transferencia de la misma. El comando: » [A,B,C,D] = tf2ss(num,den)

calcula la representación en el espacio de estados: ( ) ( ) ( )( ) ( ) ( )tuDtxCty

tuBtxAtx⋅+⋅=⋅+⋅= rrrr&r

del sistema:

( ) ( )( )sdensnumsG =

Nota: La función tf2ss realiza una representación en el espacio de estados en variables de fase. Sin embargo esta representación no coincide exactamente con la que estudiamos en clase. Para demostrar que la representación obtenida está en forma de variables de fase hay que invertir el orden de las variables de estado. Sea: ( ) ( ) ( )( ) ( ) ( )tuDtxCty

tuBtxAtx⋅+⋅=⋅+⋅= rrrr&r

Page 8: Práctica1 - coolab.umh.escoolab.umh.es/sea/control/Practica1.pdf · Title: Microsoft Word - Práctica1.doc Author: lpaya Created Date: 11/20/2009 9:26:48 PM

Escuela Politécnica Superior de Elche

Ingeniería Industrial

8

el sistema definido en variables de fase. Si se definen nuevas variables de estado de la siguiente manera:

( )( )

( )

( )( )

( )⎥⎥⎥⎥

⎢⎢⎢⎢

⎥⎥⎥⎥

⎢⎢⎢⎢

=

⎥⎥⎥⎥

⎢⎢⎢⎢

tw

twtw

tx

txtx

nn

M

K

MMNM

K

K

M2

1

2

1

001

010100

entonces la nueva ecuación de estado: ( ) ( ) ( )( ) ( ) ( )tuDtwCTty

tuBTtwATTtw⋅+⋅=

⋅+⋅= −−

rrrr&r 11

también está en representada en variables de fase. Esta representación es la que utiliza la función de Matlab tf2ss.

- Función ss2tf. Permite obtener la representación externa (función de transferencia) del sistema a

partir de su modelo de estado. El comando: » [num,den] = ss2tf(A,B,C,D)

calcula la función de transferencia:

( ) ( )( )sdensnumsG =

del sistema: ( ) ( ) ( )( ) ( ) ( )tuDtxCty

tuBtxAtx⋅+⋅=⋅+⋅= rrrr&r

4. Obtención de la función de transferencia a partir del modelo en variables de estado. La función de transferencia también se puede obtener mediante la fórmula estudiada en clase: ( ) ( ) DBAsICsG +⋅−⋅= −1

Por ejemplo, para calcular la función de transferencia del sistema:

( )( )

( )( ) ( )

( ) [ ] ( )( )⎥⎦⎤

⎢⎣

⎡⋅=

⋅⎥⎦

⎤⎢⎣

⎡+⎥

⎤⎢⎣

⎡⋅⎥⎦

⎤⎢⎣

⎡−−

=⎥⎦

⎤⎢⎣

txtx

ty

tutxtx

txtx

2

1

2

1

2

1

06

10

3210

&

&

haríamos:

Page 9: Práctica1 - coolab.umh.escoolab.umh.es/sea/control/Practica1.pdf · Title: Microsoft Word - Práctica1.doc Author: lpaya Created Date: 11/20/2009 9:26:48 PM

Escuela Politécnica Superior de Elche

Ingeniería Industrial

9

>> A=[0 1;-2 -3]; >> B=[0 1]'; >> C=[6 0]; >> D=0; >> syms s; >> G=C*inv(s*eye(2)-A)*B+D G = 6/(s^2+3*s+2)

Es decir, la función de transferencia obtenida es: ( )23

62 ++

=ss

sG .

Ejercicio 2: Considérese el siguiente sistema continuo cuya función de transferencia es:

( )34

22 ++

+=

ssssG

Utilizando las funciones oportunas de Matlab, deben realizarse los siguientes apartados:

a) Obtener una representación interna del sistema mediante la función tf2ss.

b) Obtener la representación del sistema en el formato de variables de fase, realizando la transformación adecuada sobre el modelo obtenido en el apartado a, mediante la función ss2ss.

c) Obtener la representación del sistema en el formato de variables de Jordan. Esta representación se debe obtener usando la función ss. Los coeficientes de las matrices A, B, C y D se deben obtener mediante la descomposición en fracciones parciales de la función de transferencia.

Nota: Para realizar la descomposición en fracciones parciales con Matlab, se puede utilizar la función residue. Si se quiere realizar la siguiente descomposición:

( ) ( )( )

( )( )

( )( )

( )( )nPs

nRPs

RPs

RKsAsBsG

−++

−+

−+== K

22

11

debe utilizarse el comando: >>[R,P,K]=residue(B,A)

donde B y A son dos vectores que deben contener los coeficientes del numerador y denominador de la función de transferencia. La función devuelve dos vectores R y P con los coeficientes de los numeradores y denominadores de la descomposición y la constante K.

d) Obtener la respuesta del cada uno de los tres sistemas obtenidos ante entrada escalón unitario y condiciones iniciales nulas en Matlab. Comprobar como en todos los casos, la salida es idéntica.

e) Obtener la función de transferencia correspondiente al modelo de estado del apartado c (variables de Jordan). Comprobar como es idéntica a la función de transferencia dada por el enunciado.

Page 10: Práctica1 - coolab.umh.escoolab.umh.es/sea/control/Practica1.pdf · Title: Microsoft Word - Práctica1.doc Author: lpaya Created Date: 11/20/2009 9:26:48 PM

Escuela Politécnica Superior de Elche

Ingeniería Industrial

10

5. Representación de modelos con Simulink. Cálculo de la respuesta. Para representar en Simulink un sistema continuo en representación interna (modelo de estado), se utiliza el bloque State-Space de la librería Linear. Este bloque nos permite simular el comportamiento del sistema ante diferentes entradas, y visualizar el comportamiento de la salida. En concreto, si quisiéramos estudiar el comportamiento del sistema: ( ) ( ) ( )( ) ( ) ( )tuDtxCty

tuBtxAtx⋅+⋅=⋅+⋅= r

r&r

ante entrada escalón unitario, tendríamos que implementar el siguiente esquema Simulink:

Figura 1. Representación interna de un sistema continuo en Simulink.

La configuración del bloque Step se explica con detalle en la Práctica 0 (pag. 30). En cuanto al bloque State-Space, la ventana de configuración es:

Figura 2. Parámetros del bloque State-Space. En esta ventana debemos introducir los valores de las matrices A, B, C y D del sistema, y las condiciones iniciales x0 (en caso que sean distintas de 0). El valor de estas variables se puede introducir directamente en esta ventana (como se ha hecho con la matriz A, que en este caso sería una matriz 2x2 cuyos elementos son todos 1) o bien, si estas variables ya están definidas en Matlab, se puede pone directamente el nombre de la variable de Matlab (como se ha hecho con las matrices B, C, D y x0 en el ejemplo). Una vez hayamos simulado el esquema, al abrir el bloque Scope aparecerá una gráfica con la evolución de la salida del sistema ante entrada escalón unitario. Mediante el bloque State-Space, únicamente es posible representar la salida del sistema, pero no podemos visualizar la evolución de las variables de estado. Si quisiéramos conocer esta evolución, tendríamos que implementar el esquema completo del sistema en representación interna, que tal y como se estudió en el tema 1 es:

Page 11: Práctica1 - coolab.umh.escoolab.umh.es/sea/control/Practica1.pdf · Title: Microsoft Word - Práctica1.doc Author: lpaya Created Date: 11/20/2009 9:26:48 PM

Escuela Politécnica Superior de Elche

Ingeniería Industrial

11

Figura 3. Representación interna de un sistema continuo.

En este esquema, las matrices del sistema se han definido mediante bloques Matrix Gain, la integral se ha representado mediante el bloque Integrator, en el cual se deben configurar las condiciones iniciales de la integral (valor inicial de las variables de estado, x0), y los sumadores se han representado mediante bloques Sum. 6. Creación de otros modelos con Simulink. En Simulink existe la posibilidad de crear nuevos bloques a partir de bloques existentes mediante la creación de subsistemas. Asimismo se pueden asignar a los bloques creados cajas de diálogo en las que introducir los parámetros que utiliza el subsistema. Con el objetivo de utilizar el esquema implementado en próximas prácticas se va a crear un subsistema y se le va a asignar una máscara para introducir los parámetros asociados. En el caso del modelo de estados continuo deben realizarse los siguientes pasos:

1) Seleccionar los bloques correspondientes al espacio de estados implementado, ver figura 4, y crear un subsistema (Edit Create Subsystem). La apariencia del subsistema creado debe ser como la que se muestra en la figura 5.

Figura 4. Área con los bloques a seleccionar para crear el subsistema.

Page 12: Práctica1 - coolab.umh.escoolab.umh.es/sea/control/Practica1.pdf · Title: Microsoft Word - Práctica1.doc Author: lpaya Created Date: 11/20/2009 9:26:48 PM

Escuela Politécnica Superior de Elche

Ingeniería Industrial

12

Figura 5. Subsistema correspondiente a la representación interna continua.

2) Crear una máscara para el subsistema. Para ello debe ejecutarse la opción del menú de Simulink Edit Mask Subsystem, que abre el editor de máscaras. En el editor de máscaras se especifican los parámetros que utiliza el subsistema, de forma que al pinchar dos veces sobre el subsistema aparecerá una caja de diálogo que pedirá los valores de dichos parámetros. Asimismo se define la apariencia del bloque del subsistema creado. La apariencia final de la caja de diálogo asociada al subsistema creado debe ser similar a la que se muestra en la figura 6. Los valores que deben introducirse en cada una de las ventanas del editor de máscaras se muestran en la figura 7.

Figura 6. Caja de diálogo con los parámetros del subsistema creado.

Page 13: Práctica1 - coolab.umh.escoolab.umh.es/sea/control/Practica1.pdf · Title: Microsoft Word - Práctica1.doc Author: lpaya Created Date: 11/20/2009 9:26:48 PM

Escuela Politécnica Superior de Elche

Ingeniería Industrial

13

Figura 7. Valores a introducir en cada una de las ventanas del editor de máscaras. Nota: Una vez que se ha creado la máscara, para modificarla hay que seleccionar la opción del menú Edit Mask. En el caso de que se quiera acceder al subsistema creado hay que ejecutar Edit Look Under Mask. Realizando los dos pasos especificados el modelo en representación interna continua será como el que se muestra en la figura 8.

Figura 8. Modelo en representación interna continua.

Page 14: Práctica1 - coolab.umh.escoolab.umh.es/sea/control/Practica1.pdf · Title: Microsoft Word - Práctica1.doc Author: lpaya Created Date: 11/20/2009 9:26:48 PM

Escuela Politécnica Superior de Elche

Ingeniería Industrial

14

Ejercicio 3: Un tren de laminación está formado por dos grupos de rodillos, el segundo de los cuales debe girar a una velocidad proporcional a la del primero:

Figura 9. Tren de laminación. El diagrama de bloques del modelo simplificado de un tren de laminación se muestra en la figura siguiente:

Figura 10. Diagrama de bloques del tren de laminación.

En el diagrama de bloques: - ωr es la velocidad de referencia para el primer grupo de rodillos. - ω1 es la velocidad real de giro del primer grupo de rodillos. - ω2 es la velocidad real de giro del segundo grupo de rodillos.

Las funciones de transferencia del primer y segundo grupo de rodillos son, respectivamente:

( ) ( ) ( )( )22080

110

21 ++=

+=

sssG

ssG

KT1 y KT2 son captadores de velocidad (tacómetros) que generan una señal proporcional a la velocidad que miden. Asumiremos KT1= KT2=0.5. La constante K determina la relación entre la velocidad del primer grupo de rodillos y el segundo. Se considerará K=5. Se pide:

a) Calcular la función de transferencia global del sistema, ( ) ( )( ).

2

sssG

rωω

= Este cálculo se

puede hacer a mano, o bien utilizando las funciones series y feedback de Matlab.

b) Realizar la simulación del sistema en Simulink en representación externa, considerando como entrada un escalón unitario. Obtener la gráfica de la respuesta del sistema. La función de transferencia global se representa en Simulink mediante el bloque Transfer fcn.

Page 15: Práctica1 - coolab.umh.escoolab.umh.es/sea/control/Practica1.pdf · Title: Microsoft Word - Práctica1.doc Author: lpaya Created Date: 11/20/2009 9:26:48 PM

Escuela Politécnica Superior de Elche

Ingeniería Industrial

15

c) Implementar en Simulink el esquema completo (figura 10) y simular ante entrada escalón

unitario. Representar gráficamente la velocidad de cada bloque de rodillos. Comprobar como la respuesta es la misma que la obtenida en el apartado b.

d) Modelar el sistema utilizando (i) la representación en variables de fase y (ii) la

representación en variables de Jordan. Simular cada modelo del sistema en Simulink (esquema figura 1) y comprobar que la respuesta del sistema coincide en los dos casos con la obtenida cuando se utiliza la representación externa. Considerar que el estado inicial es nulo.

e) Obtener la función de transferencia del sistema a partir de la representación interna en

variables de Jordan. Comprobar como se obtiene la misma función de transferencia inicial.

f) Implementar el sistema en representación interna (figura 3) y obtener la evolución de las

variables de estado y de la salida ante entrada escalón unitario (y condiciones iniciales nulas) utilizando (i) el modelo en variables de fase e (ii) el modelo en variables de Jordan. Comprobar como en ambos casos la salida sigue siendo la misma que en el apartado c, pero las variables de estado cambian dependiendo de la representación elegida.

g) Crear un subsistema, con su correspondiente máscara, para el modelo en

representación interna creado en el apartado anterior. Comprobar el correcto funcionamiento del subsistema ante entrada escalón unitario.

Page 16: Práctica1 - coolab.umh.escoolab.umh.es/sea/control/Practica1.pdf · Title: Microsoft Word - Práctica1.doc Author: lpaya Created Date: 11/20/2009 9:26:48 PM

Escuela Politécnica Superior de Elche

Ingeniería Industrial

16

1. INTRODUCCIÓN. En los anteriores apartados se ha descrito cómo obtener la evolución de la salida y las variables de estado utilizando Matlab y Simulink. En todos los casos, se ha obtenido una gráfica con dichas evoluciones, pero no ha sido posible obtener la expresión matemática. En este apartado se estudiarán diversos métodos para obtener dicha expresión matemática. Estos métodos no serán más que la implementación en Matlab de las expresiones estudiadas en el tema 2. Antes de estudiar la solución de la ecuación de estado, veamos algunas funciones avanzadas para análisis matricial en Matlab. Obtención de los valores propios de una matriz: Para obtener los valores propios de la matriz A (polos del sistema), utilizaremos la función eig. Por ejemplo:

>> A = [1 -3 -2; -1 1 -1; 2 4 5]; >> eig(A) ans =

2.0000 2.0000 3.0000

Como se puede observar, la matriz A introducida tiene un polo doble en s=2 y un polo simple en s=3. Diagonalización de una matriz en cajas de Jordan: Para transformar una matriz a su expresión diagonal en cajas de Jordan, se utiliza la función Jordan. A continuación se muestra un ejemplo de uso con la matriz utilizada en el ejemplo anterior. Esta función calcula la matriz diagonalizada en cajas de Jordan (que se almacena en la variable J en el ejemplo) y la matriz cambio de base correspondiente (matriz T en el ejemplo).

>> A = [1 -3 -2; -1 1 -1; 2 4 5]; >> [T,J] = jordan(A) T =

-1 -1 1 0 -1 0 1 2 0

J = 3 0 0 0 2 1 0 0 2

Se observa claramente como aparecen dos bloques de Jordan, correspondientes al polo simple en s=3 y al polo doble en s=2. A continuación se muestra un segundo ejemplo de diagonalización en cajas de Jordan.

>> A = [2 0 -3;0 -1 0;1 0 -1]; >> [T,J] = jordan(A) T =

0 0.5000 - 0.8660i 0.5000 + 0.8660i 1 0 0 0 0 - 0.5774i 0 + 0.5774i

b) SOLUCIÓN DE LA ECUACIÓN DE ESTADO:

Page 17: Práctica1 - coolab.umh.escoolab.umh.es/sea/control/Practica1.pdf · Title: Microsoft Word - Práctica1.doc Author: lpaya Created Date: 11/20/2009 9:26:48 PM

Escuela Politécnica Superior de Elche

Ingeniería Industrial

17

J = -1 0 0 0 0.5000 + 0.8660i 0 0 0 0.5000 - 0.8660i

En este caso, aparece un valor propio real (s = −1) y dos polos complejos conjugados (s = 0.5 ± 0.866j). Como se puede observar, la función Jordan devuelve la forma de Jordan en el plano complejo. En clase vimos que cuando tenemos un valor propio complejo s = a ± bj , se puede trabajar

en el plano real definiendo su caja de Jordan asociada como .⎥⎦

⎤⎢⎣

⎡− ab

ba Si queremos trabajar de esta

forma, debemos usar la siguiente función:

>> [T,J]=cdf2rdf(T,J) T =

0 0.5000 -0.8660 1.0000 0 0 0 0 -0.5774

J = -1.0000 0 0 0 0.5000 0.8660 0 -0.8660 0.5000

Cálculo de la exponencial de una matriz: Para calcular la exponencial de una matriz se usa la función expm. Si quisiéramos calcular la matriz de transición asociada a la siguiente matriz A:

.3421⎥⎦

⎤⎢⎣

⎡=A

La matriz de transición es: ( ) ( )., 0

0ttAett −⋅=Φ

Para hacer el cálculo en Matlab, hemos de definir previamente las variables t y t0 como variables simbólicas (mediante la función syms) y después calcular la exponencial:

>> syms t t0 >> A=[1 2; 4 3]; >> MTransicion = expm(A*(t-t0)) MTransicion = [2/3*exp(-t+t0)+1/3*exp(5*t-5*t0),1/3*exp(5*t-5*t0)-1/3*exp(-t+t0)] [2/3*exp(5*t-5*t0)-2/3*exp(-t+t0),1/3*exp(-t+t0)+2/3*exp(5*t-5*t0)]

Por lo tanto, la matriz de transición buscada es:

( ) ( )( ) ( ) ( ) ( )

( ) ( ) ( ) ( ) .222

231,

0000

00000

55

55

0 ⎥⎦

⎤⎢⎣

+−−+

⋅==Φ−−−−−−

−−−−−−−⋅

tttttttt

ttttttttttA

eeeeeeee

ett

Uno de los métodos que aprendimos en clase para calcular esta matriz de transición es el método de Jordan, que consistía en diagonalizar la matriz A (con el cambio de base correspondiente), calcular la exponencial de la matriz diagonalizada y devolver el resultado a la base original. Si seguimos en Matlab estos pasos:

Page 18: Práctica1 - coolab.umh.escoolab.umh.es/sea/control/Practica1.pdf · Title: Microsoft Word - Práctica1.doc Author: lpaya Created Date: 11/20/2009 9:26:48 PM

Escuela Politécnica Superior de Elche

Ingeniería Industrial

18

>> A=[1 2; 4 3]; >> [T,J] = jordan(A);

T =

0.6667 0.3333 -0.6667 0.6667

J =

-1 0 0 5

>> MTransJor = expm(J*(t-t0)) MTransJor = [ exp(-t+t0), 0] [ 0, exp(5*t-5*t0)] >> MTrans = T*MTransJor*inv(T) MTrans = [ 2/3*exp(-t+t0)+1/3*exp(5*t-5*t0), 1/3*exp(5*t-5*t0)-1/3*exp(-t+t0)] [ 2/3*exp(5*t-5*t0)-2/3*exp(-t+t0), 1/3*exp(-t+t0)+2/3*exp(5*t-5*t0)]

Resultado que coincide plenamente con el obtenido anteriormente. 2. SOLUCIÓN DE LA ECUACIÓN DE ESTADO PARA UN SISTEMA CONTINUO. En clase se han estudiado dos métodos para obtener la solución de la ecuación de estado:

Modo 1: Aplicando la expresión: ( ) ( ) ( ) ( ) ( ) ( ) ( ) .,,0

00 ττττ duBtxtttxtxtxt

tforzlibre ⋅⋅Φ+⋅Φ=+= ∫

rrrr

Según esta expresión, la evolución del estado consta de dos términos: la evolución libre del sistema (debida a las condiciones iniciales) y la evolución forzada, debida a la presencia de una entrada u(t). Para calcular una integral, podemos utilizar la función int, cuyo formato es:

resultado = int(funcion, v, a, b) int calcula la integral de la función funcion respecto a la variable v, entre los límites a y b. Supongamos que queremos calcular la solución de la siguiente ecuación de estado, ante entrada

escalón unitario, sabiendo que el estado inicial es ⎥⎥⎥

⎢⎢⎢

⎡−=21

1

0xr en .00 =t

( ) ( ) ( )tutxtx ⋅⎥⎥⎥

⎢⎢⎢

−+⋅

⎥⎥⎥

⎢⎢⎢

−−=

101

100020001

r&r

Las operaciones a realizar en Matlab serían:

>> syms t t0 tau >> A=[1 0 0;0 -2 0; 0 0 -1];

Page 19: Práctica1 - coolab.umh.escoolab.umh.es/sea/control/Practica1.pdf · Title: Microsoft Word - Práctica1.doc Author: lpaya Created Date: 11/20/2009 9:26:48 PM

Escuela Politécnica Superior de Elche

Ingeniería Industrial

19

>> B=[1; 0; -1]; >> x0=[1; -1; 2]; >> evolLibre = expm(A*t)*x0 evolLibre =

exp(t) -exp(-2*t) 2*exp(-t)

>> evolForzada=int(expm(A*(t-tau))*B*1, tau, 0, t) evolForzada =

-1+exp(t) 0 -1+exp(-t)

>> x=evolLibre+evolForzada x =

2*exp(t)-1 -exp(-2*t) 3*exp(-t)-1

Por tanto, la solución obtenida es ( ) .13

122

⎥⎥⎥

⎢⎢⎢

−−

−=

t

t

t

ee

etxr

Modo 2: Otro método para calcular la solución de la ecuación de estado era mediante el uso de la transformada inversa de Laplace, mediante la expresión: ( ) ( ) ( ) ( )[ ] ( ) ( )[ ].1

01 sBUAsIxAsItxtxtx forzlibre

−− −+−=+= -1-1 LLrrr

Esta expresión, de nuevo está compuesta por dos términos: la evolución libre y la evolución forzada del sistema. La secuencia de operaciones en Matlab sería:

>> syms t t0 s >> A=[1 0 0;0 -2 0; 0 0 -1]; >> B=[1; 0; -1]; >> x0=[1; -1; 2]; >> evolLibre = ilaplace(inv(s*eye(3)-A)*x0) evolLibre =

exp(t) -exp(-2*t) 2*exp(-t)

>> evolForzada = ilaplace(inv(s*eye(3)-A)*B*(1/s)) evolForzada =

-1+exp(t) 0 -1+exp(-t)

>> x=evolLibre+evolForzada

Page 20: Práctica1 - coolab.umh.escoolab.umh.es/sea/control/Practica1.pdf · Title: Microsoft Word - Práctica1.doc Author: lpaya Created Date: 11/20/2009 9:26:48 PM

Escuela Politécnica Superior de Elche

Ingeniería Industrial

20

x =

2*exp(t)-1 -exp(-2*t) 3*exp(-t)-1

El resultado es idéntico al obtenido mediante el método anterior. En ocasiones, el resultado devuelto no estará simplificado. En estos casos, nos será de utilidad la función simple, que realiza diversos tipos de simplificación y finalmente devuelve el resultado más corto posible, y la función pretty, que muestra una expresión simbólica en un formato más intuitivo. Por ejemplo, si x contiene la expresión simbólica que queremos simplificar y visualizar, ejecutaríamos:

>> simple(x) >> pretty(x)

3. REPRESENTACIÓN GRÁFICA. Una vez que hemos obtenido la respuesta del sistema (vector simbólico x, que contiene una expresión dependiente de t), es posible calcular valores en instantes determinados de esta respuesta, mediante la función subs. La forma de uso sería:

>> estado = subs(x, t, 5)

Con esta llamada, estamos sustituyendo en la expresión x, la variable t por el valor 5 y el resultado lo almacenamos en la variable estado. De esta forma, estado será igual a x en t=5 segundos. Por su parte, si quisiéramos representar gráficamente la expresión obtenida en un intervalo de tiempo determinado, podríamos hacer uso de la función ezplot. El formato es:

>> ezplot(x, [0, 10]) Con esta llamada, se representaría gráficamente la función x para tiempos entre 0 y 10 segundos.

Ejercicio 4. Considérese el siguiente sistema continuo definido en representación interna:

( ) ( ) ( )tutxtx ⋅⎥⎦

⎤⎢⎣

⎡−

+⋅⎥⎦

⎤⎢⎣

⎡−

−=

31

2001 r&r

Con ⎥⎦

⎤⎢⎣

⎡−

=4

20xr en .00 =t

Se pide calcular la expresión matemática de la evolución del estado, su valor en t=1 y en t=5 segundos y la representación gráfica entre t=0 y t=12 segundos en los siguientes casos:

a) Ante entrada nula. b) Cuando la entrada es un escalón unitario. c) Cuando la entrada es u(t) = sin(t).

Todos los apartados del problema se deben resolver utilizando los dos métodos vistos en clase (mediante la expresión de la integral y mediante la transformada inversa de Laplace).

Page 21: Práctica1 - coolab.umh.escoolab.umh.es/sea/control/Practica1.pdf · Title: Microsoft Word - Práctica1.doc Author: lpaya Created Date: 11/20/2009 9:26:48 PM

Escuela Politécnica Superior de Elche

Ingeniería Industrial

21

Ejercicio 6. Considérese el siguiente sistema continuo definido en representación interna:

( ) ( ) ( )tutxtx ⋅⎥⎥⎥

⎢⎢⎢

−+⋅

⎥⎥⎥

⎢⎢⎢

⎡=

102

340010221

r&r

Con ⎥⎥⎥

⎢⎢⎢

⎡−=11

1

0xr en .00 =t

Se pide:

a) Calcular los polos del sistema y pasar la matriz A a su expresión diagonal en cajas de Jordan.

b) Calcular la respuesta ante entrada escalón unitario utilizando el método de la integral y el método de la transformada inversa de Laplace.

c) Repetir el problema si ahora la matriz A toma la siguiente forma: .340010121

⎥⎥⎥

⎢⎢⎢

⎡=A

Comentar las diferencias.

Ejercicio 5. Considérese el siguiente sistema continuo definido en representación interna:

( ) ( ) ( )tutxtx ⋅⎥⎦

⎤⎢⎣

⎡+⋅⎥

⎤⎢⎣

⎡−−

=11

2210 r&r

Con ⎥⎦

⎤⎢⎣

⎡=

12

0xr en .00 =t

Se pide: a) Calcular la matriz de transición del sistema, calculando directamente la exponencial de

la matriz A. b) Calcular la matriz de transición, diagonalizando primero la matriz A en cajas de Jordan

en el plano complejo y deshaciendo posteriormente el cambio. c) Calcular la matriz de transición, diagonalizando primero la matriz A en cajas de Jordan

en el dominio real, y deshaciendo posteriormente el cambio. d) Obtener la salida del sistema ante entrada nula, utilizando el método de la integral. e) Obtener la salida del sistema ante entrada nula, utilizando la transformada inversa de

Laplace. f) Obtener la salida del sistema ante entrada escalón unitario, utilizando el método de la

integral. g) Obtener la salida del sistema ante entrada escalón unitario, utilizando la transformada

inversa de Laplace.


Recommended