PRÁCTICA 4: IDENTIFICACIÓN Y CONTROL DE UN SERVOMECANISMO DE POSICIÓN CURSO 2007/2008 LABORATORIO DE CONTROL AUTOMÁTICO. 3er CURSO ING. TELECOMUNICACIÓN 1. OBJETIVOS En esta práctica se pretende que el alumno tome contacto con un servomecanismo de posición real, mediante su identificación y control haciendo uso de programas de ordenador, al tiempo que se ponen de manifiesto los problemas de implantación y limitaciones físicas (ruidos, zonas muertas, saturaciones, …) que surgen al trabajar con equipos reales. 2. DESCRIPCIÓN DEL SERVOMECANISMO DE POSICIÓN En esta práctica de laboratorio se va a controlar un servomecanismo de posición Feedback 33-100, que se muestra en la figura Carga Motor Engranaje Este sistema consta de las siguientes partes: 1. Motor de corriente continua, que acciona una determinada carga en forma de disco. Este disco se puede frenar de forma manual mediante un freno magnético. En este eje se aloja un tacogenerador, o sensor de velocidad, que proporciona una medida de la velocidad del eje. 2. Engranaje de relación 32:1 que transmite el movimiento del eje motor a una carga. 3. Carga cuya posición se desea controlar. Para ello, se dispone de un sensor óptico de posición (encoder) que proporciona una medida de la posición. Así pues, el sistema consta de un motor accionado por su tensión de alimentación que acciona, a través de un engranaje, el eje de carga en el que se sitúan los sensores de posición y velocidad. Este sistema se puede representar mediante el siguiente el diagrama de bloques funcional u(t) Carga motor MCC engranaje Carga Tacogenerador Encóder p(t) v(t) Las ecuaciones que modelan este sistema, despreciando el efecto de la inductancia del motor, se pueden expresar mediante el siguiente diagrama de bloques U K1 τ 1s + 1 V K2 s P en el que U(s) es la señal de tensión aplicada al motor, V(s) es la velocidad del eje de la carga y P(s) es la posición del mismo. Hay que resaltar el hecho de que este modelo es una idealización pues el sistema real presenta no linealidades tales como Zona muerta: el motor no responde cuando los valores de tensión aplicada están por debajo de un cierto límite. Esto se debe principalmente al efecto de la fricción de Coulomb. Saturación de las señales, lo cual limita a un intervalo la tensión de actuación así como el rango de medida de los sensores. 3. SISTEMA DE IDENTIFICACIÓN Y CONTROL POR ORDENADOR Para identificar y controlar el sistema, se dispone de un PC con una tarjeta que convierte señales analógicas en señales digitales (conversión A/D) y señales digitales en señales analógicas (conversión D/A). La conversión A/D permite tomar valores de señales analógicas y convertirlos en formato digital para su procesamiento en el PC. Este proceso se denomina muestreo y se suele hacer de forma periódica con un periodo de muestreo pequeño. Obsérvese que esto permite transmitir al ordenador señales medidas del equipo, tales como la velocidad y posición. Así, mediante un programa que se ejecuta en el PC se puede tomar esos datos y calcular de forma numérica la tensión necesaria a aplicar sobre el motor para controlar el sistema; es decir, que de esta forma el PC puede implementar el controlador. Por otro lado, la conversión D/A permite crear señales en el PC y transformarlas en señales analógicas. Gracias a esto, las actuaciones calculadas se pueden aplicar al motor de corriente continua y así se puede actuar sobre el sistema. El sistema de control dispuesto se muestra en la siguiente figura. Programa de Control p v Tarjeta A/D-D/A u El programa de identificación y control diseñado parar esta práctica (llamado controlmotor.vi) ha sido programado con la herramienta LabView y presenta la siguiente interfaz de usuario: 1 2 3 4 6 7 5 9 10 8 Los distintos elementos que aparecen (de izquierda a derecha, y de arriba abajo) son los siguientes: 1. 2. 3. 4. Período de muestreo del programa y puesta en marcha. El botón ON debe estar pulsado y, a continuación, pulsar sobre la flecha “RUN” para ejecutar el programa. Selección del tipo de entrada aplicada al motor: escalón (“STEP”), senoidal (“FREQUENCY”), control pid de la velocidad de giro del motor (“PID VELOCIDAD”) o compensación con red de avance de la posición del motor (“RED AVANCE POS”). Además permite fijar los parámetros para: entrada escalón (amplitud) y entrada senoidal (amplitud, frecuencia en radianes por segundo y desplazamiento). Señal aplicada a la entrada del motor. Será un escalón, senoide o señal de control en velocidad o posición, dependiendo de lo seleccionado en 2. Tiempo transcurrido del experimento. 5. Representación de la velocidad del motor (en azul) y de la referencia de velocidad (verde). Nótese que la referencia de velocidad sólo tiene sentido en el caso en que se esté realizando un control de la velocidad de giro del motor. 6. Parámetros del controlador PID para control de la velocidad de giro: velocidad de giro deseada, acción proporcional, acción integral y acción derivada). Sólo se aplican si la opción “PID VELOCIDAD” está seleccionada en 2. 7. Error entre la velocidad de giro deseada (referencia) indicada en 6 y la velocidad de giro actual del motor. 8. Representación de la posición de la carga (verde) y de la referencia de posición (azul). Nótese que la referencia de posición sólo tiene sentido en el caso en que se esté realizando un control de la posición. 9. Parámetros de la red de avance para el control de la posición de la carga: posición deseada, valor de acción proporcional, alpha y tau. Sólo se aplican si la opción “RED AVANCE POS” está seleccionada en 2. 10. Error entre la posición deseada de la carga (referencia) indicada en 9 y la posición actual de la carga. 4. DESCRIPCIÓN DE LA PRÁCTICA La práctica se puede dividir en 3 partes: una primera de identificación usando la respuesta temporal y frecuencial del sistema; posteriormente, el diseño de un controlador PI para el control en velocidad y, por último, diseño de una red de avance para el control de posición del servomotor. 4.1. Identificación del servomecanismo En esta parte se va a identificar los parámetros del modelo del motor para obtener la función de transferencia del sistema en bucle abierto. Como ya se ha comentado en la introducción, aunque el sistema en estudio no es de segundo orden, éste se puede modelar de forma bastante aproximada mediante un sistema de primer orden para la velocidad y un integrador con ganancia debida a la reductora para la salida en posición. Es decir el diagrama de bloques del sistema será: u K1 1 + τs v K2 s p donde u es la señal de control, v la velocidad del motor y p la posición del mismo, todo ello medido en voltios de tensión. En primer lugar, el alumno debe identificar la zona muerta y la saturación en velocidad del sistema. La zona muerta es la señal de entrada mínima que se requiere para que el sistema responda. En este apartado se pretende identificar la misma. Para ello, será necesario hallar los dos umbrales upos y uneg a partir de los cuales la señal de control comienza a ser efectiva. Para identificar la zona muerta introducir escalones pequeños (seleccionando “STEP”) en la señal de control hasta que el motor comience a moverse. Repetir lo mismo con escalones negativos, con lo que se tendrán identificados los umbrales de la zona muerta. Una vez identificada la zona muerta se aumentará la señal de control hasta que un aumento en la misma no produzca un aumento en la velocidad del motor. Este valor máximo de velocidad será el correspondiente a la saturación y será útil para decidir el valor máximo de la referencia cuando se controle la velocidad de giro del motor. Ya conocidos los valores de zona muerta y saturación se elegirá un punto de trabajo del sistema entre ambos valores y, después de parar y volver a arrancar el programa para empezar un nuevo experimento, se fijará dicho punto de trabajo en el valor de la referencia del escalón. Una vez ha transcurrido el tiempo necesario para que se haya estabilizado la velocidad de giro, se da un escalón en la señal de actuación u y se observa la salida en velocidad y posición del motor, guardándose en un fichero los resultados obtenidos. Para almacenar el archivo es necesario poner el botón “ON” a “OFF”, de modo que aparecerá una pantalla para seleccionar el directorio y nombre de archivo similar a la siguiente: A continuación se cargan los datos en MATLAB para su análisis usando la siguiente secuencia de comandos >> load nombre.extension >> >> >> >> u=nombre( v=nombre( p=nombre( t=nombre( 1 2 3 4 , , , , : : : : % % % % % % % para guardar los datos en una matriz llamada nombre la matriz tiene 4 filas con los datos del experimento la primera tiene la señal de control u la segunda la salida en velocidad v (CANAL 0) la tercera la salida en posición p (CANAL 1) la cuarta el vector de tiempos t a continuación se separan en variables distintas ); ); ); ); Una vez separadas se pueden representar usando: >> plot(t,u,t,v,t,p); y sobre la gráfica resultante hay que identificar los parámetros K1, τ y K2 . Una vez identificado el sistema se realiza en MATLAB el diagrama de bode teórico del sistema de primer orden (velocidad) y se identifican las frecuencias de interés para el control (frecuencias cercanas al polo, anteriores y posteriores, se recomienda identificar 1 década antes y después del polo). Conocidas esas frecuencias se pasa a comprobar el bode teórico con el experimental introduciendo, después de parar y volver a arrancar el programa para empezar un nuevo experimento, en la señal de actuación del sistema señales senoidales (seleccionar “FREQUENCY”) a las frecuencias de interés, poniendo en OFFSET el valor del punto de trabajo y con una amplitud que haga que el motor no cambie de sentido ni sature en velocidad. Con los datos obtenidos se vuelve a MATLAB y, tras cargar los datos del experimento, se mide la relación de amplitudes y el desfase entre la onda senoidal de entrada y de salida, comprobándose los resultados con los obtenidos con el bode teórico. 4.2. Diseño de un PI para el control en velocidad Se pretende controlar la velocidad de giro del motor de forma que se minimice el error al alcanzar la velocidad de giro deseada y se reduzca el tiempo necesario para alcanzar dicha velocidad deseada. Para ello se utilizará un control PI, cuyos parámetros se calcularán de forma que: • • El cero del PI sea igual al polo del sistema La constante de tiempo del sistema en bucle cerrado sea la mitad de la del sistema sin compensar. Una vez calculados analíticamente los parámetros del PI se introducen en la parte correspondiente de la pantalla (zona 6), poniendo Td a cero y seleccionando “PID VELOCIDAD” en el tipo de entrada (zona 2 de la pantalla) . Se probará la eficacia del controlador diseñado mediante una serie de experimentos en los cuales la referencia del sistema en bucle cerrado tenga escalones en distintas zonas. Los resultados se archivarán para su posterior presentación gráfica en la memoria de la práctica. Se modificarán los parámetros del PI de su punto de diseño y se verá cómo afectan a la respuesta en bucle cerrado. Se cambiará también la referencia de manera que se sature la velocidad del motor y se volverá a dar una referencia alcanzable para ilustrar el efecto de la saturación del término integral. 4.3. Diseño de una red de avance para el control en posición En este apartado se pretende diseñar una red de avance para que la posición del motor se ajuste a una referencia dada. Para ello se elegirá en primer lugar un controlador proporcional que produzca un error en posición suficientemente pequeño (hacer α=1 y τ=1 y modificar Kc) en la parte de Red de Avance en la pantalla (zona 9) y seleccionar “RED AVANCE POS” en el tipo de entrada (zona 2). Una vez determinada la ganancia del controlador diseñar una red para mejorar el régimen transitorio del sistema calculando los valores de α y τ. Variar dichos parámetros hasta que se encuentre una respuesta adecuada y grabar los datos del experimento. Para el cálculo de estos parámetros puede utilizarse el bode del modelo teórico del motor pero incluyendo también la ganancia del controlador Kc. 5. MEMORIA DE LA PRÁCTICA Cada grupo que realice la práctica deberá entregar una memoria justificativa del trabajo realizado, incluyendo todos los resultados obtenidos en el transcurso de la misma, así como la explicación de los modelos y controladores usados y comentarios sobre los problemas y soluciones encontrados durante la realización de la práctica. Adicionalmente, se pide que se de una valoración de la práctica, se indique si ha sido útil en el contexto de la asignatura, así como sugerencias de posibles modificaciones para mejorarla.