Download modelado mediante redes neuronales de sistema de
Document related concepts
Transcript
MODELADO MEDIANTE REDES NEURONALES DE SISTEMA DE LEVITACIÓN CON PROPULSIÓN POR HÉLICE E. González Sarabia, L. Alonso Rentería, J.R. Llata García, J. Pérez Oria Departamento de Tecnología Electrónica e Ingeniería de Sistemas y Automática E. T. S. de Ingenieros Industriales y de Telecomunicación, Universidad de Cantabria Avda. Los Castros s/n, 39005, Santander, Cantabria, SPAIN E-mail: [esther, alonso, llata, oria]@teisa.unican.es Resumen El análisis completo del sistema puede verse en [1]. En el presente trabajo se realiza el modelado de un sistema de levitación con propulsión por hélice mediante redes neuronales. Debido a las grandes no linealidades del sistema se ha escogido este método por la gran capacidad que poseen las redes de backpropagation para reproducir sistemas no lineales. La planta consiste en una barra de aluminio que puede girar en torno a un eje horizontal, en uno de cuyos extremos va colocado el motor con la hélice que proporciona la propulsión; en el extremo opuesto se coloca un contrapeso. salida Palabras Clave: Modelado, Redes neuronales, backpropagation, sistemas no lineales. entrada 1 potencia INTRODUCCIÓN Figura 2: Representación del sistema El objeto del trabajo es el modelado de una barra giratoria en torno a un eje horizontal por su punto medio, propulsada por medio de una hélice acoplada a un motor de corriente continua, el cual estará colocado en uno de los extremos de la barra, y cuya velocidad se regula variando la tensión de alimentación. La no linealidad del sistema se debe a dos factores: en primer lugar, la hélice proporciona una fuerza de propulsión y un par resistente debidos a la fricción con el aire, que son funciones cuadráticas de la velocidad de giro; en segundo lugar, el propio diseño mecánico del sistema hace que la fuerza necesaria para mantener una posición angular determinada dependa de dicha posición (coseno del ángulo respecto de la horizontal). Para el funcionamiento del sistema se introduce la tensión de referencia al circuito de potencia. Éste proporciona la tensión de alimentación del motor de corriente continua, con la cual se regula su velocidad. En función de dicha velocidad, la hélice proporciona un par de fricción con el aire que actúa como carga para el motor, y una fuerza de propulsión que actúa sobre el sistema mecánico, el cual se colocará en una determinada posición angular respecto de la horizontal. Dicha posición (salida del sistema) se traduce a tensión mediante un potenciómetro colocado en el eje de giro. La figura 3 muestra un diagrama de bloques del sistema mecánico y las variables que intervienen: F 2 rm/J + - DESCRIPCIÓN DEL SISTEMA El diagrama de bloques se muestra en la figura 1: Tensión de entrada V motor 1 omega s 1 theta s * (Pm·rm P - c·rc) / J w potencia alfa cos(u) Figura 3: diagrama de bloques hélice Donde: Tensión de salida θ potenciómetro TL sistema mecánico Figura 1: diagrama de bloques F Pm = peso del conjunto motor – hélice; Pc = peso del contrapeso; F = fuerza de la hélice; rm = distancia del eje del motor al eje de giro; rc = distancia del contrapeso al eje de giro; theta = ángulo de la barra con la horizontal. La figura 4 muestra el diagrama de bloques correspondiente al motor de corriente continua. 3 ESTRUCTURA EMPLEADA PARA EL MODELO DE REDES NEURONALES DEL SISTEMA TL(s) V(s) + - I(s) 1 kt T(s) Ls+R + W(s) 1 Js+f Para el sistema descrito anteriormente se ha tratado la obtención de un modelo por medio de redes neuronales. Para ello se han utilizado redes de tipo feedforward de dos capas. E(s) kv Debido a las grandes no linealidades que presenta el sistema se han utilizado redes formadas por dos capas de neuronas, donde la primera capa corresponde a neuronas no lineales de tipo sigmoide logarítimica, y la segunda capa está formada por una neurona lineal. Figura 4: diagrama de bloques del motor donde: SALIDA ENTRADAS R = resistencia del inducido, ohm TL = par de carga J = momento de inercia del rotor W= velocidad del motor f = coeficiente de fricción viscosa kv = constante de tensión kt (= kv) = constante de par L = inductancia del inducido V = tensión de alimentación I = corriente de alimentación T = par en el árbol del motor E = fuerza contraelectromotriz La hélice es otro elemento de alinealidad en el sistema total. La figura 5 muestra su diagrama de bloques. Jh * Capa 1 dw/dt w b1*u+b2*u^2 + + T L F a 1*u+a2*u^2 Figura 5: diagrama de bloques de la hélice. Capa 2 Figura 6: Estructura de red neuronal utilizada En la figura 6 puede verse la estructura de la red. Por medio del modelo de redes neuronales se desea obtener la posición angular del levitador en todo instante de tiempo cuando la entrada al sistema es la tensión de alimentación del motor de corriente continua. f(u) Tensión de entrada Entrada f(u) Posición du/dt f(u) Mux Deriv Velocidad Capa 1 Capa 2 du/dt f(u) Red Red Deriv1 Aceleración neuronal neuronal f(u) Coseno Mux Figura 7: Esquema de la red para el caso 1. . f(u) Fcn2 Posic 4 ESQUEMAS DE DATOS ENTRADA EMPLEADOS DE Como se desea obtener el modelo dinámico del sistema y las redes neuronales de tipo feedforward no poseen memoria dinámica se ha optado por crear un modelo donde en cada instante la información presente en las entradas al modelo sea además de la tensión de entrada y de la posición, la velocidad, la aceleración y el coseno del ángulo formado por el eje del levitador con la horizontal. Para el entrenamiento se han utilizado datos de la respuesta del sistema en un rango de tensiones de entrada que varía entre 0v y 5v, por medio de la introducción al sistema de escalones y rampas de diferentes valores de tensión en el rango considerado. Todos los datos utilizados para las redes neuronales han sido normalizados entre 0 y 1. Se analizan a continuación tres casos para el modelado del sistema, en el primero se considera solamente la información correspondiente al instante anterior para obtener la siguiente posición del levitador. En el segundo caso se utiliza la información de las dos últimas muestras de cada señal de entrada al sistema. Y por último en el tercer caso se utiliza la información de las tres últimas muestras de las entradas. 4.1 CASO 1: PARA CADA SEÑAL SE UTILIZA LA MUESTRA ANTERIOR Para ello, el esquema inicial utilizado ha sido el mostrado en la figura 7. En este caso se consideran como variables de entrada al modelo, la tensión del motor, la posición, la velocidad, la aceleración y el coseno del ángulo formado con la horizontal, en el instante anterior. En la figura 8 puede verse la respuesta del sistema original ante una señal de entrada que corresponde con un escalón de tensión de entrada de 3.3 voltios que dura desde el tiempo 0 segundos hasta los 25 segundos. En la figura puede verse por tanto la evolución del sistema cuando la entrada pasa de 0v (reposo del sistema) a un valor de entrada de 3.3v, observándose su transitorio y régimen permanente, así como la respuesta del sistema al anular de nuevo la entrada a los 25 segundos. lineales. Puede observarse que según se aumenta el número de neuronas no lineales el modelo se adapta mejor a la dinámica del sistema. 0 -0.5 -1 -1.5 0 10 20 30 40 Tiempo (seg) Figura 8: Respuesta del sistema ante escalón de 3.3V de entrada. 0 -0.5 -1 -1.5 0 10 20 30 40 Tiempo (seg) Figura 9: Respuesta del modelo con 5 neuronas no lineales 0 -0.5 -1 En línea continua se representa la posición del levitador y en línea discontinua la velocidad adquirida. Esta gráfica servirá de comparación para las respuestas obtenidas con los diferentes modelos de redes neuronales considerados. -1.5 La figura 9 representa la respuesta del modelo con 5 neuronas en la capa no lineal. Y la figura 10 representa la respuesta considerando 6 neuronas no Figura 10: Respuesta del modelo con 6 neuronas no lineales. 0 10 20 30 40 Time (seg) 4.2 CASO 2: PARA CADA SEÑAL SE UTILIZAN DOS MUESTRAS ANTERIORES. En este caso, para la construcción del modelo se han utilizado los mismos parámetros que en el caso anterior pero considerando las dos ultimas muestras de cada una de las señales según se muestra en la figura 11. figura 13 puede verse la respuesta de este modelo cuando se han utilizado 8 neuronas no lineales. 0 -0.5 0.5 -1 0 -1.5 -0.5 0 -1 20 Time (seg) 30 40 Figura 13. Respuesta con dos datos de cada señal y 8 neuronas no lineales. -1.5 4.3 -2 0 10 10 20 30 40 CASO 3: PARA CADA SEÑAL SE UTILIZAN TRES MUESTRAS ANTERIORES. Time (seg) Figura 12. Respuesta con 2 datos de cada señal y 5 neuronas no lineales. Comparando la respuesta con la obtenida en la figura 9, puede observarse que para el mismo número de neuronas, el sistema de la figura 12 es capaz de memorizar mejor la dinámica del sistema aunque presenta todavía grandes diferencias respecto al modelo real. Si se aumenta el número de neuronas no lineales se mejora la respuesta del modelo visiblemente. En la Entrada En este caso en la figura 15 puede observarse los resultados obtenidos para el ejemplo considerando 5 neuronas no lineales. Puede compararse la respuesta del sistema con la de la figura 13. Se observa que se obtienen resultados similares utilizando 5 neuronas en vez de 8. f(u) Tensión t f(u) Posición t du/dt Deriv Por último se ha tomado como modelo una red neuronal con 15 entradas que representan las señales anteriormente indicadas pero considerando las tres últimas muestras de cada señal. Ver figura 14. Tensión t-1 Posición t-1 f(u) Velocidad t Mux Velocidad t-1 du/dt f(u) Deriv1 Acelación t f(u) Coseno t Capa 1 Capa 2 Red Red neuronal neuronal Aceleración t-1 Coseno t-1 Mux Figura 11. Esquema de la red para el caso 2. f(u) Posición Posic f(u) Tensión t Entrada Tensión t-1 Tensión t-2 f(u) Posición t Posición t-1 Posición t-2 du/dt f(u) Deriv1 Velocidad t Mux Velocidad t-1 du/dt f(u) Deriv2Aceleración t Capa 1 Capa 2 Red Red neuronal neuronal Velocidad t-2 . f(u) Norm Posic Aceleración t-1 Aceleración t-2 f(u) Coseno t Coseno t-1 Coseno t-2 Mux Figura 14. Esquema de la red para el caso 3. Tabla 1: Tiempos y errores de entrenamiento. 0 Tipo de red Error Iterac. Sin retardos Nº Neuronas 5 0.39 15 Sin retardos 6 0.28 15 Sin retardos 7 0.19 23 1 retardo 5 0.15 20 1 retardo 1 retardo 6 7 0.21 0.21 16 12 1 retardo 8 0.13 15 2 retardos 5 0.13 14 -0.5 -1 -1.5 0 10 20 30 40 Time (seg) Figura 15: Respuesta del modelo con dos retardos y 5 neuronas ocultas. La tabla 1 muestra un resumen de las estructuras utilizadas, el número de neuronas consideradas y los tiempos de entrenamiento necesarios expresado en forma de iteraciones del proceso de entrenamiento. Se presentan también en dicha tabla los errores mínimos alcanzados para cada una de las diferentes estructuras consideradas para obtener el modelo del sistema. 5 CONCLUSIONES Las redes neuronales son un método útil para la identificación de sistemas y creación de modelos de sistemas dinámicos. Es especialmente útil para el caso de los sistemas no lineales. Este procedimiento puede ser una alternativa diferente a los métodos clásicos para el modelado de sistemas. Por medio de las redes neuronales se ha obtenido un modelo para un sistema no lineal que reproduce el funcionamiento del sistema original para el rango de valores que halla sido definido en el entrenamiento. Para ello sólo es necesario conocer suficiente información numérica de la respuesta del sistema que se desea modelar en dicho rango de valores de entrada. Referencias [1] Alonso, L., Elorduy, P, Llata J.R. , Arce J., “Sistema de control de levitación con propulsión por hélice”, XX Jornadas de Automática , 1999. Comparando los resultados obtenidos para las diferentes estructuras puede verse cómo según se van incrementando el número de neuronas se consigue un mejor ajuste del modelo, esto es cierto hasta un límite de neuronas añadidas, donde el modelo comenzaría de nuevo a degradarse debido a los problemas de sobreajuste que pueden aparecer. Por tanto el número de neuronas debe ajustarse sin añadir más de las necesarias para el mínimo error deseado. [2] Fausett, L. “Fundamentals of Neural Networks”, Prentice Hall, 1994. [3] Narendra and Parthasathy, “Identification and Control of Dynamical Systems Using Neural Networks”, IEEE Transactions on Neuroal Networks, March 1990, pp 4-27. [4] Neural Network Toolbox. The Mathworks, 1994. [5] Von Mises, R., Theory of flight Se ha visto también cómo otro posible medio para mejorar el ajuste del modelo es la introducción de memoria a la red por medio del incremento de entradas al modelo, donde se incluyen para cada una de las variables consideradas las muestras anteriores a la actual. Esto permite a la red un mejor control de la dinámica del sistema. Cuanto mayor sea el número de datos de instantes anteriores considerados mejor es también el comportamiento del modelo.