Práctica 1 - Ingeniería de Sistemas y Automática

Anuncio
Práctica 1: Integrador, realimentación y control
o
Fundamentos de Control Automático, 2 GIQ
El programa Simulink es un programa incluido dentro de Matlab que sirve para realizar la
integración numérica de ecuaciones diferenciales a efectos de simular el comportamiento de
sistemas dinámicos. Dicho de otro modo, Simulink permite realizar simulaciones.
El programa se usa mediante un entorno gráfico con ratón, menús y botones. El modelo del
sistema dinámico se construye agregando bloques a un diagrama en una ventana del programa
Matlab. El diagrama contiene bloques que producen señales de entrada, bloques que representan
funciones de transferencia y visores para observar la evolución de las señales de salida.
En esta práctica se va a estudiar el uso de los bloques integrador, sumador, ganancia y función
de transferencia. Se construirán modelos simples de sistemas lineales continuos en Simulink y
se observarán que los resultados de las simulaciones se corresponden con lo que se ha estudiado
en las clases teóricas.
1
Realización
Se recomienda al alumno que siga estos pasos:
• Antes de la práctica lea detenidamente estas notas y repase los conceptos y desarrollos
teóricos de los temas 1 al 5. En base a esto, debe realizar el trabajo previo para obtener
las respuestas correspondientes a dicho trabajo.
• Durante la práctica vaya realizando los ejercicios que se proponen y tome nota en una hoja
aparte de los resultados obtenidos.
• Una vez terminada, rellene el formulario de repuestas en Goodle (ver la última sección).
• La práctica contiene material abundante para que nadie quede ocioso. No tenga prisa
por llegar al final. En lugar de eso observe adecuadamente cada simulación y extraiga
conclusiones que le sirvan para afianzar los conocimientos teóricos.
1.1
Matlab y Simulink
Para poner en marcha el programa Matlab se ha de pulsar el icono correspondiente en el escritorio
de Windows. Al arrancar el programa aparecerán una ventana conteniendo varias subventanas.
Sólo se va a utilizar la que tiene por nombre Command Window, ventana de órdenes por lo que
pueden cerrar las otras subventanas.
El programa Matlab permite realizar cálculos matemáticos de manera parecida a una calculadora. Se utiliza escribiendo operaciones en la ventana de órdenes. Por ejemplo, si se escribe:
1
Figure 1: Ventana de herramientas de Simulink (izquierda) y ventana de órdenes de Matlab
(derecha).
sqrt(16)
el programa realiza la operación indicada y responde en la pantalla con el resultado que es la
raı́z cuadrada (SQuare RooT) de 16.
Para realizar simulaciones de sistemas dinámicos hay que poner en marcha una componente de
Matlab llamada Simulink. Para ello basta con escribir simulink en la ventana de órdenes. Se
abre con ello una nueva ventana que contiene las herramientas con las que se trabajará en esta
práctica.
La figura 1 muestra el aspecto de la ventana de órdenes de Matlab y la ventana de herramientas
de Simulink llamada también Biblioteca de Bloques.
Para comenzar a usar Simulink es preciso abrir un nuevo diagrama. Para ello se puede pulsar
sobre el icono:
de la ventana de herramientas o bien en el menú File→New→Model.
Aparece una nueva ventana que contendrá el modelo del sistema que se quiere simular. Esta
ventana recibe el nombre de ventana del modelo o ventana del diagrama del modelo.
Para construir un diagrama se arrastrarán elementos desde la ventana de herramientas hasta la
ventana de diagrama. Los elementos se unirán luego con flechas, dando lugar a un diagrama
de bloques. Cada flecha representa una señal diferente de la cual podremos obtener, al realizar
una simulación, su valor a lo largo del tiempo. El aspecto de los bloques en la pantalla puede
diferir de unas versiones a otras de Matlab por lo que deberá poner atención a los nombres que
aparecen debajo de cada bloque.
2
Figure 2: Integral de un escalón.
2
Integradores
Los integradores nos permiten modelar sistemas dinámicos lineales y no lineales descritos mediante un modelo en espacio de estados. El hecho de que los sistemas sean representados mediante
ecuaciones diferenciales implica que será necesario integrar dichas ecuaciones para poder simular cuál será la evolución temporal del sistema. Simulink ofrece una herramienta de integración
numérica que incluye varios métodos de integración. Esto permite integrar señales temporales,
independientemente de que el sistema sea lineal o no.
Para integrar directamente señales temporales Simulink incluye un bloque llamado “integrador”
(Integrator), el cual puede obtenerse de la biblioteca de elementos de tiempo continuo (Continuous). Este
componente proporciona una salida y igual a la integración temporal de su entrada
R
u (y(t) = 0t u(τ )dτ ).
En la figura 2 se propone un pequeño modelo para ilustrar cómo funciona el bloque integrador.
Se introduce a su entrada un escalón y se observa que la salida del integrador es una rampa.
La señal de entrada del integrador proviene en este ejemplo de un bloque escalón (Step) sacado
de la biblioteca de fuentes (Sources). La salida del bloque integrador se reúne con la entrada en
el bloque multiplexador (Mux, en la biblioteca Signal Routing) para que ambas sean mostradas
en la gráfica dibujada con el bloque visor (Scope, en la biblioteca Sinks).
Trabajo en el laboratorio:
• Crear el diagrama de la figura 2 utilizando el ratón para arrastrar los bloques necesarios
a la ventana de trabajo y para conectarlos mediante lı́neas.
• Poner en marcha la simulación y observar que el resultado obtenido en la gráfica es el
esperado.
• Medir el valor de y(t) en t = 8 segundos frente a u(t) = 3 ∗ escalon(t − 3) [p1] y frente a
u(t) = −escalon(t − 5) [p2].
• Medir el valor de y(t) en t = 14 segundos frente a u(t) = 0.5 ∗ escalon(t − 1) y y(0) = 5
[p3].
3
Figure 3: Realimentando un integrador se obtiene un sistema de primer orden.
Notas:
• Todos los bloques de Simulink tienen parámetros que podemos cambiar pulsando dos veces
con el ratón en el diagrama.
• La bifurcación de señales se consigue mediante el botón secundario del ratón.
• Para cambiar el instante final de la simulación acceder a: Menu→Simulation→Configuration
Parameters→Stop time. De forma más cómoda, en las versiones recientes de Simulink,
puede escribirse el instante final de la simulación en el cuadro que se encuentra a la derecha
del botón ..
• Las condiciones iniciales del integrador se cambian pulsando dos veces con el ratón sobre
el bloque.
3
Realimentación
A partir del diagrama del punto anterior se puede crear el mostrado en la figura 3. Se observa
que la salida del integrador ha sido realimentada. Este modelo representa la siguiente ecuación
diferencial:
dy(t)
= u(t) − y(t)
dt
Este sistema dinámico tiene la siguiente función de transferencia:
G(s) =
1
1+s
(1)
Es decir, el bloque es un sistema lineal de primer orden con ganancia estática igual a uno y
constante de tiempo igual a un segundo.
Trabajo en el laboratorio:
4
Figure 4: El bloque “función de transferencia” de Simulink.
• Crear el diagrama de la figura 3.
• Poner en marcha la simulación.
• Observar que el resultado obtenido en la gráfica de la pantalla es el correcto.
• Medir el valor de y(t) en t = 5 segundos frente a r(t) = 3 ∗ escalon(t − 3) con y(0) = 0
[p4] y el valor de y(t) en t = 4 segundos frente a r(t) = −2 ∗ escalon(t − 2) con y(0) = 1
[p5].
Notas:
• El bloque para sumar señales se encuentra en la librerı́a Math Operations (bloques Add o
Sum). Estos bloques son de forma cuadrada o redonda y en ellos puede cambiarse el signo
de la suma y el número de entradas, accediendo a las propiedades del mismo.
• La entrada al sistema realimentado se denomina r(t). La señal u(t) es la entrada al
integrador.
4
Función de transferencia
Para utilizar funciones de transferencia dentro de Simulink basta con incluir un bloque Transfer
Function de la biblioteca de tiempo continuo (Continuous) tal y como se presenta en la figura 4.
Para lograr que dicho bloque se corresponda con una función de transferencia dada, por ejemplo
G(s) =
1.5
2s2 + s
basta con modificar los parámetros del mismo. Para ello se ha de arrastrar el bloque hasta la
ventana de trabajo y se ha de pulsar dos veces sobre el mismo. Aparece un cuadro de diálogo
5
en el que se introducen los coeficientes del numerador y denominador de G(s). El numerador es
el polinomio N (s) = 1.5, mientras que el denominador es D(s) = 2s2 + s + 0, lo cual se indica
mediante los dos vectores siguientes: [1.5] y [2 1 0], como se muestra en la figura 4.
Para realizar un caso práctico se va a utilizar la función de transferencia correspondiente a un
motor de corriente continua (caso simplificado). Tomando como salida la posición del eje de la
carga θ [rad] y como entrada la tensión aplicada sobre el mismo u [V], la ecuación diferencial
del modelo es
d2 θ
dθ
τm 2 + b
= Km u
dt
dt
Los parámetros del modelo se obtienen a partir de las dos últimas cifras del DNI (D7 y D8),
según la siguientes expresiones.
Km = 0.5(D7 + 1)
τm = (D8 + 1)
h
b = 1
h
[N · m/V ]
Kg · m2
i
i
Kg · m2 /s
Por ejemplo, para un número de DNI 48.324.263, D7 = 6 y D8 = 3, por lo que Km = 3.5 y
τm = 4.
Trabajo previo:
• Calcule la función de transferencia Gv (s) que relaciona la velocidad de giro del motor θ̇
con la tensión u. Almacene el numerador en [p6] y el denominador en [p7] utilizando el
mismo formato usado para definir el bloque función de transferencia.
• Determine θ̇(t) en t = 2 frente a u(t) = 5∗ escalon(t) V [p8].
• Calcule la función de transferencia Gp (s) tomando como salida θ. Almacene el numerador
en [p9] y el denominador en [p10] utilizando el mismo formato usado para definir el
bloque función de transferencia.
• Determine θ(t) en t = 3 frente a u(t) = 5∗ escalon(t) V [p11].
Trabajo en el laboratorio:
• Crear un diagrama usando un bloque función de transferencia para simular la respuesta
de la velocidad del motor frente a una entrada escalón, ver figura 5. Incluir un bloque
función de transferencia para modelar Gv (s), una entrada en escalón, un multiplexor y un
visor.
• Poner en marcha la simulación y observar que el resultado obtenido en la gráfica es el
esperado.
• Medir el valor de la velocidad 2 segundos después de un escalón a la entrada de amplitud
u(t) = 5V [p12].
6
• Crear un diagrama usando un bloque función de transferencia para simular la respuesta
de la posición del motor frente a una entrada escalón. Incluir un bloque función de transferencia para modelar Gp (s), una entrada en escalón, un multiplexor y un visor.
• Poner en marcha la simulación y observar que el resultado obtenido en la gráfica es el
esperado.
• Medir el valor de la posición 3 segundos después de un escalón a la entrada de amplitud
u(t) = 5V [p13].
Notas:
• No definir el denominador o el numerador de una función de transferencia con un vector
que comience con un “0”. El corrector devolverá un error en ese caso.
• Un sistema descrito mediante una función de transferencia parte de condiciones iniciales
nulas, mientras que un sistema descrito mediante una ecuación diferencial (usando integradores) puede partir de cualquier condición inicial (modificando el valor inicial de los
integradores).
Figure 5: Ejemplo de modelo para simular un sistema descrito mediante una función de transferencia.
5
Realimentación del motor
Mediante la realimentación se puede lograr el control de la salida de un sistema. En este ejercicio
se va a partir del diagrama anterior correspondiente al sistema dado por Gp (s) y se va a añadir
la realimentación de la salida (posición o ángulo girado). El diagrama que resulta se muestra en
la figura 6.
Obsérvese que la señal en escalón no es el voltaje, sino el ángulo deseado o ángulo de referencia.
Esta señal (a la que denotaremos con r(t) = θd (t)) indica cuál es el valor que se quiere que tome la
salida del sistema como resultado del control. El voltaje u(t) = Va (t) es ahora una variable intermedia que se obtiene como resultado de multiplicar el error de posición r(t) − y(t) = θd (t) − θ(t)
por la ganancia A. La ganancia A es un parámetro del sistema que puede tomar diferentes
valores. En Simulink usaremos el bloque Gain de la librerı́a Math Operations.
7
Figure 6: Diagrama para el control de la posición de un motor de corriente continua.
Trabajo previo:
θ(s)
cuya salida es
• Calcule la función de transferencia del sistema realimentado Gbc (s) = R(s)
θ(t) y cuya entrada es r(t) para A = 1. Almacene el numerador en [p14] y el denominador
en [p15] utilizando el mismo formato usado para definir el bloque función de transferencia.
• Determine θ(t) en t = 5s cuando r(t) = 0.5 ∗ escalon(t) rad para A = 1 [p16].
Trabajo en el laboratorio:
• Crear el diagrama de la figura 6 para simular el motor realimentado ante una entrada
escalón.
• Poner en marcha la simulación y observar que el resultado obtenido en la gráfica es el
esperado.
• Calcule experimentalmente el mayor valor de la ganancia A que hace que el sistema no
presente sobreoscilaciones ante frente r(t) = 0.5∗escalon(t) [p17]. Un sistema no presenta
sobreoscilaciones si la señal no supera nunca el valor de régimen permanente durante el
transitorio.
• Calcule experimentalmente el mayor valor de la ganancia A que hace que θ(t) ≤ 0.6 rad
para todo instante de tiempo t frente r(t) = 0.5 ∗ escalon(t) [p18].
• Compruebe que con la función de transferencia del sistema realimentado se obtienen
idénticos resultados. Para ello crear un diagrama usando un bloque función de transferencia para simular la respuesta de la posición del motor en bucle cerrado. Incluir un
bloque función de transferencia para modelar Gbc (s), una entrada en escalón, un multiplexor y un visor. Es un modelo de Simulink diferente pero que simula el comportamiento
del mismo sistema.
• Modificar el diagrama 6 para realizar una simulación del motor realimentado con A = 1
cuando se excita con una onda sinusoidal r(t) = sen(Ωt). Ω es un parámetro que puede
8
tomar diferentes valores. Para hacer el diagrama hay que sustituir el bloque escalón por
un bloque de señal sinusoidal.
• Medir la amplitud (tome la mitad del valor de pico a pico) de la posición en régimen
permanente cuando se excita con una onda sinusoidal de Ω = 1 rad/s [p19], con una onda
sinusoidal de Ω = 10 [p20], con una onda sinusoidal de Ω = 50 rad/s [p21] y con una
onda sinusoidal de Ω = 0.1 rad/s [p22].
Notas:
• Tenga en cuenta el tiempo de respuesta del sistema a la hora de decidir cuándo comienza
el estacionario.
• Para realizar la simulación con entradas senoidales, cambiar el valor máximo del paso de
integración (Menu→Simulation→Configuration Parameters→Max. step size) del método
numérico de integración de Simulink. Por defecto, el valor de este parámetro suele ser
auto; para la tarea a realizar puede bastar con imponer un paso de integración máximo de
0.01 segundos.
Figure 7: Opción para cambiar el paso máximo de integración de Simulink.
Cabe esperar que, como consecuencia de la modificación anterior, el número de puntos en
los que se lleva a cabo la simulación aumente notablemente. En relación con el elemento
Scope, esto puede provocar que, si la simulación dura el tiempo suficiente, el buffer que
tiene para el registro de las variables que recibe se vea desbordado. Esto llevarı́a a que
se pierda el registro de la primera parte del experimento (por defecto sólo mantiene el
registro de los últimos 5000 puntos). Este problema puede solventarse de forma inmediata, accediendo a las propiedades del elemento Scope y desactivando, en la pestaña Data
History, la limitación del buffer, tal y como se muestra en la figura 8.
9
Figure 8: Opción para desactivar la limitación del buffer del Scope.
10
6
Instrucciones para entregar las respuestas en Goodle
Las respuestas del módulo entregarán en Goodle. La página web del servidor es:
http://bono.us.es/sdocencia
Para entregar el proyecto hay que darse de alta en Goodle siguiendo las instrucciones del fichero
“guia.pdf” disponible en la página web de la asigntura. La entrega de los resultados consiste en
rellenar el formulario de texto siguiendo las siguientes instrucciones:
• Cada respuesta correspondiente a una cuestión de trabajo en el centro de cálculo tiene
asignado un nombre. En el enunciado de la práctica se indica con una etiqueta entre
corchetes cada respuesta que hay que entregar.
Ejemplo: A la primera respuesta (valor de la salida del integrador en t = 8 segundos frente
a u(t) = 3 ∗ escalon(t − 3)) le corresponde el nombre p1 y a la última respuesta (amplitud
de la posición del sistema realimentado en régimen permanente frente a r(t) = sen(0.1t))
le corresponde el nombre p22.
• Para cada respuesta hay que escribir una lı́nea con el siguiente formato:
nombre = valor;
Ejemplo: Para responder que el valor de la salida del integrador en t = 8 segundos frente
a u(t) = 3 ∗ escalon(t − 3) es 65 y que la amplitud de la posición del sistema realimentado
en régimen permanente frente a r(t) = sen(0.1t) es de 0.45 hay que escribir las siguiente
lı́neas:
p1 = 65;
p22 = 0.45;
• Para las respuestas p6, p7, p9, p10, p14 y p15 hay que utilizar el formato usado para
definir un bloque función de transferencia. Por ejemplo para indicar que
Gbc(s) =
2.4s + 1
3s2 + 0.45
hay que escribir las siguiente lı́neas:
p14 = [2.4 1];
p15 = [3 0 0.45];
Nota: En el caso de que alguno de los polinomios sea una constante, no utilizar los
corchetes. Por ejemplo para indicar que
Gbc(s) =
hay que escribir las siguientes lı́neas:
11
3s2
7
+ 0.45
p14 = 7;
p15 = [3 0 0.45];
• Los decimales se separan utilizando el punto, no la coma:
p7 = 0.5;
• Goodle rechaza los envı́os con errores de sintaxis.
• Es recomendable guardar la respuesta en un fichero de texto plano antes de enviarla, por
ejemplo utilizando el bloc de notas de Windows.
Ejemplo de formulario relleno
(los números son aleatorios)
p1 = 3;
p2 = 4.3;
p3 = 0.65;
p4 = 23.4;
p5 = 34;
p6 = [9 0 2];
p7 = [7 3 2 1];
p8 = 12;
p9 = 1;
p10 = [9 3];
p11 = 43.5;
p12 = 34.1;
p13 = 5.2;
p14 = [2.4 1];
p15 = [3 0 0.45];
p16 = 4.5;
p17 = 0.001;
p18 = 0.03;
p19 = 45.3;
p20 = 2;
p21 = 4.5;
p22 = 32;
12
Descargar