Prctica 1 Integrador, realimentación y control 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.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.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: sqrt(16) 1 2 PRCTICA 1. INTEGRADOR, REALIMENTACIÓN Y CONTROL Figura 1.1: Ventana de herramientas de Simulink (izquierda) y ventana de órdenes de Matlab (derecha). 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.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. 1.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 cual 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. Figura 1.2: Integral de un escalón. 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). EsteR componente proporciona una salida y igual a la integración temporal de su entrada u (y(t) = 0t u(τ )dτ ). En la figura 1.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) para que ambas sean mostradas en la gráfica dibujada con el bloque visor (scope). Trabajo en el laboratorio: • Crear el diagrama de la figura 1.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]. • Pulsar dos veces sobre el bloque escalón para acceder a sus propiedades. Cambiar las opciones del escalón para cambiar el tiempo en el que el escalón cambia de valor y la amplitud del mismo. Rehacer la simulación (pulsando el botón ⊲) y observar los cambios en la gráfica. • Medir el valor de y(t) en t = 14 segundos frente a u(t) = 0.5 ∗ escalon(t − 1) y y(0) = 5 [p3]. 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. 4 PRCTICA 1. INTEGRADOR, REALIMENTACIÓN Y CONTROL Figura 1.3: Realimentando un integrador se obtiene un sistema de primer orden. • Para cambiar el instante final de la simulación acceder a: Menu-Simulation-Simulation parameters-Stop time. • Las condiciones iniciales del integrador se cambian pulsando dos veces con el ratón sobre el bloque. 1.3 Realimentación A partir del diagrama del punto anterior se puede crear el mostrado en la figura 1.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: 1 (1.1) 1+s 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. G(s) = Trabajo en el laboratorio: • Crear el diagrama de la figura 1.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 (bloque Sum o Add). El bloque es redondo y se puede cambiar 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. Figura 1.4: El bloque “función de transferencia” de Simulink. 1.4 Función de transferencia Para utilizar funciones de transferencia dentro de Simulink basta con incluir un bloque de la biblioteca de bloques de tiempo continuo tal y como se presenta en la figura 1.4. Para lograr que el bloque “función de transferencia” de Simulink 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 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 1.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) b = 1 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. 6 PRCTICA 1. INTEGRADOR, REALIMENTACIÓN Y CONTROL 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 1.7. 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]. • 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”. Simulink devuelve 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). 1.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 1.6. Figura 1.5: Ejemplo de modelo para simular un sistema descrito mediante una función de transferencia. Figura 1.6: Diagrama para el control de la posición de un motor de corriente continua. 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. Trabajo previo: θ(s) • Calcule la función de transferencia del sistema realimentado Gbc (s) = R(s) cuya salida es θ(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 1.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. 8 PRCTICA 1. INTEGRADOR, REALIMENTACIÓN Y CONTROL • 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 1.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 tomar diferentes valores. Para hacer el diagrama hay que sustituir el bloque escalón por un bloque de señal sinusoidal. • Medir la amplitud de la posición en régimen permanente cuando se excita con una onda sinusoidal de Ω = 1 [p19], con una onda sinusoidal de Ω = 10 [p20], con una onda sinusoidal de Ω = 50 [p21] y con una onda sinusoidal de Ω = 0.1 [p22]. Notas: • Para realizar la simulación con entradas senoidales, cambiar el método numérico de integración de Simulink Menu-Simulation-Simulation parameters-Solver-Ode23. Figura 1.7: Menu para cambiar el método de integración de Simulink. 1.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 siguiente lı́neas: p14 = 7; p15 = [3 0 0.45]; 3s2 7 + 0.45 10 PRCTICA 1. INTEGRADOR, REALIMENTACIÓN Y CONTROL • 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;