Download marco teorico
Document related concepts
Transcript
IV.- MARCO TEORICO 4.1 INTRODUCCION Las redes Neuronales artificiales ( RNA) , también conocido como red con aprendizaje conexionista y procesamiento de distribución paralela, está encontrando aplicaciones en diversas áreas: muchas ramas de ingeniería, ciencias de la salud, ciencias cognoscitivas, la arqueología, las finanzas, etc. En estos campos, hay dos categorías de problemas que se han resuelto con éxito usando la metodología de la Ellos son el reconocimiento de patrones provenientes de diferentes datos, la identificación de parámetros de sistemas y el control (conocido/desconocido) de sistemas dinámicos. Hasta la fecha existe un creciente interés en los sistemas de control que incluyen redes neuronales artificiales como elementos de control, por lo que se han implementado un importante número de soluciones. Las aplicaciones exitosas más relevantes i luyen desde elementos que operan como identificadores hasta aquellos que trabajan como controladores de optimización utilizando modelos del proceso . Hoy en día la inteligencia artificial está siendo usad n la industria, por ejemplo En control de calidad, para la identificación de material s defectuosos. Identificar fisuras en piezas mecánicas mediante fotografía. El estudio de los neurocontroladores ha sido utilizado en sistemas de control, debido a que una red neuronal tiene la capacidad de aproximar cualquier función no lineal, como lo demuestra el teorema de Funahashi. Ent nces, se puede entrenar a una red neuronal para que se comporte como un controlador no lineal. Es así que nacen los Neurocontroladores, que es la aproximación de un contr no lineal, por lo que su análisis es muy similar a cuando tenemos sistemas de c ntrol no lineales. Lo importante del diseño de un neurocontrolador es que podemos usarlos para diversas áreas de Sistemas de control , entre ellas en la robótica, en la automatización. Los neurocontroladores no están ajenos a esta innovaci n tecnológica, actualmente se están haciendo pruebas de neurocontroladores para ser incorporados a la industria como solución a problemas más complejos que requieran de la optimización. 8 LA PLANTA DE POS ICION Y VELOCIDAD (PPV) Y REDES NEURONALES ARTIFICIALES La planta de posición y velocidad denominado PPV es un dispositivo mecánico compuesto básicamente por una barra que oscila libreme e en un plano, soportada por uno de sus extremos en el cual puede pivotear libremente ests algunas veces lo denominamos péndulo invertido . La barra del péndulo puede estar montada sobre una base ya sea móvil o estática, ver figura 2.1. ang ul o Ba r r a F Pi v o t e Pi e z a ba s e Fig.4.1 Representación de la planta PPV (Péndulo invertido) Para mantener en equilibrio un Péndulo Invertido en su posición vertical se puede aplicar una fuerza de control al sistema mediant mecánicas entre las cuales se puede mencionar la del P stintas configuraciones ulo Invertido Simple de base móvil [1-4], el Péndulo Invertido Simple de Base Estática [5-7] y el Péndulo de Furuta [8 -10]. En este trabajo se emplea un péndulo de la forma “ Pendulo Invertido simple de base móvil” (figura 2.2) por las ventajas económicas y de manufac ura que presenta su implementación. En dicho prototipo la fuerza aplicada a la base móvil se realiza a través de una banda de transmisión cionada por un motor eléctrico de corriente continua. El movimiento de la base móvi está limitado a un solo eje por medio de una barra guía y una superficie de soporte. El Sistema Pendulo simple denominado Planta de posición y velocidad denominado “PPV” es un sistema no lineal (las ecuaciones que representan dicho sistema son de naturaleza no lineal), inestable el péndulo puede volcarse en cualquier momento y en cualquier dirección) y sub-actuado ya que el péndulo no recibe directamente ninguna señal de control (la señal de control es aplicada a 9 la base móvil), sin embargo puede ser modelado como un sistema lineal en torno a la posición de equilibrio para facilitar la implementación del controlador . Bar r a g ui a Ba nda t r a ns mi s i o n mo t o r : M1 mo t o r : M2 So po r t e Fig.4.2 Planta de Posición y Velocidad: PPV (sistema p ndulo Invertido simple con base móvil) 4.1.1 MODELADO DE LA PLANTA DE POS ICION Y VELOCIDAD En la literatura existe una gran cantidad de métodos q permiten obtener el modelo matemático de un PPV [1, 5, 7, 8, 10, 12, 14-18], en nuestro caso el desarrollo del modelo matemático tomara como base la metodología empleada en el sitio web de The University Michigan [17], y se apoya en los diagramas de cuerpo libre mostrados en la figura 2.3, en dicha figura se considera una fuerza externa, que actúa sobr la base móvil, esta es la señal de control. Se determinan las ecuaciones dinámicas que modelan el sistema, y posteriormente se linealizan en torno al punto en el cual el ángulo del péndulo ? = p (asumiendo que el péndulo no se mueve más que unos poc s grados a ambos lados de la vertical, a la cual se le ha asignado el ángulo p ). 10 P N mx ' ' bx ' F mg mo ' ' -N -P X X' Fig.4.3 Diagrama de cuerpo libre para el Sistema Pend o simple En el desarrollo del modelo matemático se consideran las siguientes variables y constantes del sistema, los cuales deben expresarse en un sistema de unidades coherente: M Masa del carro m Masa del péndulo b Fricción entre la base móvil y la superficie de despla amiento l Longitud del pivote al centro de gravedad del péndulo I Inercia del péndulo F Fuerza aplicada al carro x Posición de carro ? Ángulo del péndulo desde la vertical superior Py N Componentes de la fuerza de reacción en el punto de pi teo Sumando las fuerzas que actúan sobre el carro en dirección horizontal, se obtiene la siguiente ecuación de movimiento: M x&& + bx& + N = F Ec.4.1 Haciendo lo mismo para el péndulo N = m&x& + mlq&& cos q − mlq& 2 senq Ec.4.2 11 Si se sustituye el valor de N definido en la ecuación 4.2 dentro de la ecuación 4.1, se obtiene la primera ecuación de movimiento del sistema ompleto: Ec. 4.3 ( M + m) &x& + bx& + mlq&& cosq − mlq& 2 senq = F Posteriormente se suman las fuerzas que actúan perpendiculares al péndulo Psenq + N cosq − mgsen q = ml q&& + m&x& cosq Ec.4.4 Para aislar los términos P y N de la ecuación anterior se suman los momentos alrededor del centro de gravedad del péndulo para obtener la ecuación siguiente Plsen q − Nl cos q = Iq&& Ec.4.5 Al combinar la ecuación 4.4 con la 4.5 se obtiene la ecuación dinámica del sistema ( I + ml 2 )q&& + mglsenq = − ml&x& cosq Ec.4.6 Como se menciono anteriormente, las ecuaciones obtenid s son no lineales y es necesario linealizarlas en torno a un ángulo ?=p. Asumiendo que ?= p+ø (donde ø representa un ángulo pequeño desde la vertical y que 1 + sen(? )˜ 1? , sen(? )˜ -ø y cos(? )˜ -1)). Por lo tanto, cos(?) = -1,sin(? ) =-ø, y (d? /dt)2 = 0. Después de linealizar se ob tienen las siguientes ecuaciones: ( I + ml 2 )f&& − mglf = ml&x& Ec.4.7 ( M + m) &x& + bx& − mlf&& = u Ec.4.8 Donde u representa la señal de control o fuerza aplicada) 4.1.2 DISEÑO DE UN CONTROLADOR PARA EL PPV La primera solución al problema de control del sistema Péndulo Invertido fue descrita por James K. Roberge . Una vez obtenidas las ecuaciones representativas del sistema se pueden emplear distintos métodos de control para equilibrar el sistema, algunos de ellos trabajan en el dominio de la frecuencia por lo que es cesario obtener la Transformada 12 de Laplace de las ecuaciones del sistema (suponiendo condiciones iniciales nulas), lo que da como resultado variables en el dominio de la variables (X(s),U(s) y F (s) ): Ec.4.9 ( I + ml 2 ) Φ ( s ) s − mglΦ ( s ) = mlX ( s ) s 2 Ec.4.10 ( M + m) X ( s ) s 2 + bX ( s ) + mlΦ ( s ) s 2 = U ( s ) Algunos de estos métodos están limitados a que los controladores solo analizan una señal como salida a controlar del sistema. Si consideramos el ángulo ? como la salida a observar del sistema, obtendríamos la siguiente función de transferencia: m 2 s Φ (s ) q = U ( s) b( I + ml 2 ) 3 (M + m)mgl bmgl s4 + s − s − s q q q Ec.4.11 Donde: q = [( M + m)( I + ml 2 ) − ( ml 2 )] Ec.4.12 Para salvar esta limitación de tener una sola salida controlable podría diseñarse el controlador empleando variables de estado en la expresión de las ecuaciones dinámicas ,tomando como base la siguiente representación general : Y considerando el vector X compuesto de las siguientes variables: x& = Ax + Bu Ec.4.13 y = Cx + Du &] ( x1 , x 2 , x 3 , x 4 ) = [ x , x& , Φ , Φ Ec.4.14 Ec.4.15 Se pueden obtener las siguientes matrices de estado: 1 0 x& − ( I + ml 2 )b &x& 0 2 = I (M + m) + Mml & 0 Φ 0 − mlb Φ 0 & & I (M + m) + Mml 2 0 m 2 gl 2 I ( M + m ) Mml 2 0 mgl ( M + m ) I ( M + m ) + Mml 2 0 0 x I + ml 2 0 & 2 x + I ( M + m ) + Mml u 1 Φ 0 ml & 0 Φ 2 I ( M + m ) + Mml x 1 0 0 0 x& 0 y = + u 0 0 1 0 Φ 0 & Φ 13 Al tener una representación matricial con variables de estado es posible diseñar controladores empleando distintas técnicas de control: mediante el ajuste de polos, empleando una entrada de referencia, empleando realime ación de estado o mediante un observador, etc. [1, 2, 6]. Estas técnicas de control permiten esta izar más de un parámetro del sistema. El éxito en la estabilización del sistema PIS, mediante el controlador creado con alguna de estas técnicas, dependerá en gran parte de lo cercano que sea el modelo obtenido en relación a la dinámica actual del sistema. Podemos decir que un control tradicional, en los casos que se conocen sus ecuaciones dinámicas presentaría la forma general de la siguiente ecuación [16]. & F1 = b1 x + b2 x& + b3Φ + b4 Φ Ec.4.16 En la cual se asume que la fuerza de control es una función lineal las cuatro variables de estado y además con coeficientes constantes. En los dos métodos mencionados es necesario contar con suficiente conocimiento del sistema así como realizar un adecuado desarrollo matemático para obtener un modelo adecuado. Dado que en ocasiones es difícil y en ocasiones casi imposible obtener la información necesaria para diseñar un sistema de contr clásico, se han investigado otras alternativas, entre ellas podemos mencionar el uso de Redes Neuronales Artificiales, Lógica Difusa, sistemas híbridos y controles adaptativos. 14 4.2 REDES NEURONALES ARTIFICIALES El interés por crear máquinas que de alguna forma emul el comportamiento humano tiene siglos de antigüedad, ya en el siglo primero de nuestra era se realizaban mecanismos animados, los de Herón de Alejandría, y en el siglo XVII Jacques de Vaucason creó el primer mecanismo que podríamos llamar humanoide, aunque no es sino hasta el siglo XX cuando se presenta una cooperación más activa entre diferentes ramas de la ciencia que permitieron hacer más viable dicha idea. Al incrementarse la complejidad de las tareas a realizar por una máquina se vio la necesidad de desarrollar nuevas técnicas que facilitar n el control de dichos mecanismos, de esta forma surgió la nueva rama de la c putación conocida como computación suave (Soft Computing), la cual pretende e ular el comportamiento inteligente de los seres vivos con el fin de dotar de inteligencia a máquinas o procesos . Dentro de la computación suave podemos mencionar las téc as que emplean: Lógica Difusa, Algoritmos Genéticos y Redes Neuronales Artificiales (RNA’ s). Las RNA´s tienen su inspiración en la forma en que se modela el funcionamiento del cerebro humano. El procesamiento de la información que percibe el cerebro mediante los sentidos es un mecanismo de procesamiento de datos en forma paralela e involucra fenómenos electro-químicos. Neurona Biológica Se estima que hay 26,000 millones de neuronas en el ce ebro humano y en un ´área de 1 mm2 hay aproximadamente 50.000. Ellas se comunican a través de una red de conexiones sinápticas teniendo una densidad de aproximadamente 104 sinapsis por neurona. El tama ño y formas de las neuronas es variable, pero todas poseen las mismas subdivisiones anatómicas. El tejido nervioso es el más diferenciado del organismo y está constituido por células nerviosas, fibras nerviosas y la neuroglia, que está f da por varias clases de células. La célula nerviosa se denomina neurona, que es la unidad funcional del sistema nervioso. Hay neuronas bipolares, con dos prolongaciones de fibras y multipolares, con numerosas prolongaciones. Pueden ser neuronas sensoriales, motoras y de asociación. Las partes principales de una neurona biológica pueden observarse en la figura 4 .4. El tamaño y la forma de las neuronas son variables, pero tienen la mismas subdivisiones básicas. El cuerpo de la neurona contiene el núcleo o soma. 15 El soma se encarga de todas las actividades metabólicas de la neurona y recibe la información de otras neuronas vecinas a través de las conexiones sinápticas. Las dendritas son las conexiones de entrada de la neurona. Por su parte el axón es la "salida" de la neurona y se utiliza para enviar impulsos o señales a otras células nerviosas. Cuando el axón esta cerca de sus células destino se divide en muchas ramificaciones que forman sinapsis con el soma o axones de otras células. Esta unión puede ser "inhibidora" o "excitadora" según el transmisor que las libere . Fig.4.4. Partes Principales de una neurona 16 Características del Cerebro Humano El cerebro humano tiene varias características deseables para un sistema artificial, por ese motivo sirve como patrón para su estudio. Entre las caracter ísticas más sobresalientes tenemos: a) Es robusto y tolerante a fallas, diariamente mueren neuronas sin afectar su desempeño. b) Es flexible, se ajusta a nuevos ambientes de aprendiza e no hay que programarlo. c) Puede manejar información difusa, con ruido o inconsistente. d) Es altamente paralelo. e) Es pequeño compacto y consume poca energía. Los desarrollos obtenidos en las últimas décadas en el área de electrónica y computación ha permitido emular la neurona biológica generando lo que ahora se conoce como neurona artificial, dicha emulación actualmente se puede realizar a nivel software o hardware , en este trabajo se opto por simular el modelo de la RNA a nivel software. Modelo de la Neurona Biológica Las redes neuronales son modelos matemáticos que inten an imitar la estructura y funcionamiento del cerebro humano. Una red neuronal está formada por un conjunto de elementos simples interconectados, que es capaz de procesar la información disponible para realizar un aprendedizaje fig.4.5. Fig.4.5 modelo de una ne urona En la figura 4.6 se muestra una posible clasificación de los métodos empleados en la implementación de RNA´s. 17 La flexibilidad se refiere a las facilidades que ofrece el sistema para modificar el modelo de RNA. la eficiencia hace referencia al grado de adaptación de la red con la aplicación en términos de autonomía, velocidad de cálculo y densidad de empaquetamiento (neuronas artificiales por área) . EFI CI ENCI A FLEXI BI LI DAD NEUROCOMPUTADORAS NEUROCOMPUTADORAS DE USO ESPECI FI CO NEURO CHI PS MI XTOS A/ D ANALOG NEUROCOMPUTADORAS DE USO GENERAL MATRI S DE PROCESADORES DI GI TAL SI MULADORES SOFTWARE PARA PC USO GENERAL PC PARALELO CONVENCI ONAL PC SERI E CONVENCI ONAL TARJ ETAS COPROCESADORES NEURO CHI PS Fig.4.6 Diferentes métodos de implementación de RNa’s La ventaja que presentan las RNA´s a otros tipos de controladores es que estas aprenden el funcionamiento deseado mediante ejemplos sin necesidad de un modelado matemático que represente la tarea a realizar, incluso las RNA´s tienen capacidad de aproximar funciones no lineales complejas . 4.2.1 BREVE HISTORIA DE LAS RNA´S La primera acción encaminada a emular las neuronas biológicas se dio en 1943 cuando Warren McCulloch, un neurofisiólogo, y un matemático, alter Pitts, escribieron un documento referente a la manera en la que podían funcionar las neuronas en el cual consideraron la salida de las neuronas de forma binaria]. Para reforzar este concepto de las neuronas y como trabajan fue escrito un libro por Donal Hebb, La organización del comportamiento (The Organization Behavior), el cual fue escrito en 1949 . 18 Este trabajo resaltó el hecho de que, las rutas de comunicación (sinapsis) de las neuronas se fortalecen en el grado en que son empleada esto es, en alguna forma desarrollaban nuevas habilidades . En 1957 Jhon Von Neumann sugirió imitar las funciones simples de las neuronas empleando relevadores de telégrafo o tubos de vacío. En el mismo año, Frank Rosenblatt, comenzó a trabajar con el Perceptron. Éste era el modelo de una red de neuronas simple que considera la salida de las neuronas como salida binaria . El Perceptron, que resulto de estas investigaciones, fue construido en hardware. Posteriormente Minsky y Papert mostraron las limitaciones que presentaba el Perceptron ya que por la limitación de su salida binaria solo podía separar un espacio de muestras en dos clases . En 1959 Bernard Widrow y Marcian Off de Stanford desar ollaron modelos que ellos llamaron ADALINE y MADALINE. Estos modelos fueron nomb os de esta manera por el uso de múltiples elementos de adaptación lineal (Multiple ADAptive LINear Elements) y a diferencia del Perceptron incluían un peso de conexión con entrada constante de1 (sesgo o bias).y empleaba una función de activación bipolar . Durante las siguientes dos décadas hubo un aletargamie en el desarrollo de las RNA´s y a principios de los 80´s se presentaron dos aportaciones que nuevamente despertaron el interés de los investigadores, uno de ellos fue el trabajo de Hopfield en el cual aproximaba el funcionamiento de las neuronas desd el punto de vista energético, y el otro trabajo fue la presentación del algoritmo de a rendizaje de Retro propagación empleado en una red Perceptron de capas Múltiples, propuesto por Verbos . 4.2.2 CARACTERÍSTICAS DE LAS RNA´S Las RNA´s tienen características que no se encuentran presentes en el modelo de computador propuesto por Von Neumann, algunas de estas son . • Procesamiento Paralelo • Calculo y representación distribuida • Habilidad de aprender Socráticamente (por medio de ejemplos) • Habilidad de generalizar Adaptabilidad • Tolerancia a fallas • Las conexiones en la RNA almacenan la información del rón de entrenamiento 19 4.2.3 NEURONA ARTIFICIAL El elemento básico de una RNA es la Neurona Artificial (también conocida como; PE por sus siglas en Ingles, Process Element, elemento de procesamiento básico ó procesador elemental). La neurona artificial o PE propuesto por McCullon y Pitts se puede observar en la figura 4.7 y es una de las más simples. b ( u mbr a l ) pe s o1 ENTRADAS pe s o2 s a l i da de l a ne ur o na e nt r a da a la ne ur o na u o umbral o o pe s o n Fig.4.7 Modelo McCullon-Pitts de una neurona Se presentan varias señales de entrada a la neurona, y cada una de estas señales es multiplicada por un valor (peso de conexión). En el caso más simple (este caso), estos productos solo son sumados, y alimentados a través de na función de transferencia de límites rígidos para finalmente generar un resultado binario. i la entrada a la neurona es menor al valor de Umbral entonces la salida será 0 en caso contrario será 1. En este modelo las conexiones de entrada (flechas) modelan los axónes y dendritas de una neurona biológica, los pesos de conexión a las sinapsis, y l unción de límites rígidos a la actividad del soma. Este modelo presenta una gran cantidad de simplificaciones que no reflejan el verdadero funcionamiento de una neurona biológica. El modelo matemático de la neurona McCulloc -Pitts está dado por n u = ∑ wi yi + q Ec.4.17 i =1 Donde: u = Valor de la señal de salida de la neurona, regularme e se considera igual al nivel de activación de la neurona. w = Peso de la entrada j. 20 y= Valor de señal de entradaj. ? = Valor de umbral o sesgo de la función. n = Numero de entradas a la neurona La implementación de una neurona artificial también es posible mediante estructuras de redes que utilizan otras funciones de sumatoria o dife entes funciones de transferencia, el caso general se ve representado en la figura 2.7 o o o o o o o o o Y1 W1 Func i on de e nt r ada Func i on de ac t i vac i on Func i on de s al i da u Wn Yn Nu c l e o d e n e u r o n a Fig.4.8 Modelo de Neurona artificial Genenral Las funciones de entrada más empleadas y conocidas son : a) sumatoria del producto de los valores de entrada por sus respectivos pesos. n ∑w y i i Ec.4.18 i=0 b) Productoria de las entradas pesadas (producto de todos los valores de entrada, multiplicados por sus correspondientes pesos). n ∏w y i i Ec.4.19 i=0 c) Máximo de las entradas pesadas. Solo considera el val r de entrada más fuerte, max i ( wi y i ) Ec.4.20 21 d) Distancia euc lidiana. n ∑=0 ( y j − wij ) 2 Ec.4.21 j Una neurona artificial puede estar activa o inactiva; sto significa que tiene un estado de activación. Algunas neuronas artificiales pueden encontrarse en un valor de vación dentro de un conjunto determinado La función de activación calcula el estado de activida de una neurona, esta es una función del valor proporcionado por la función de entrada (valor de salida en función de entrada). Las funciones de activación más empleadas se mencionan en seguida, y muestran en la figura 4.8: McCullock y Pitts (1943) son reconocidos por el diseño de la primera red neuronal. La activación de una neurona es binaria. Es decir, la neurona se dispara (la activaci´on es uno) o no dispara (la activaci´on es cero). Las neuronas son una red de McCulloch-Pitts se conecta directamente por los caminos de pesos sinápticos. La función activación pa ra la un id a d y es f (Yin) = 1, i f Yin = ? e ls e , 0 Si el peso en un camino es positivo el camino es excitatorio, en otro caso es inhibitorio. Todas las conexiones excitadoras en una neurona particular tienen el mismo peso, aunque diferente conexi´on de pesos que pueden ser entradas a neuronas diferentes. Cada neurona tiene un threshold fijo. Si la entrada neta en la neurona es mayor que el threshold, la neurona se dispara. 22 El threshold es fijo para cualquier entrada inhibitoria no cero que impedir a la neurona se dispare. 4.2.4 Diseño de un Neurocontrolador Las redes neuronales han sido utilizadas en control por su capacidad de aproximar cualquier función no lineal, como lo demuestra el teorema de Funahashi. Se puede entrenar a una red neuronal para que se comporte como un controlador no lineal. Es as í que nacen los Neurocontroladores. Que es la aproximación de un controlador no lineal, por lo que su análisis es muy similar a los sistemas de control no lineales fig.4.9 Fig.4.9 Red ne uronal como controlador Red Neuronal como Polinomio Multivariable Considere la red mostrada en la Figura. 4.10 La red presenta la función de activación sigmoide logistic en la capa oculta. La expansión de la serie de Taylor : 23 Agrupando términos. Fig.4.10 Red con sigmoide logistic Estructuras de Control Neuronal a) Esquema de control adaptivo 24 b) Control optimo c) Esquema de control modelo referencia Fig.4.11 Configuración de sistemas de control con red uronal 25 4.3 DESCRIPCION DEL SISTEMA PPV En la implementación del sistema se emplea una combina ión de elementos software y hardware, ver figura 4.12 P C: M AT L A B L a b VI E W FUENTE DE ALIMENTACION -12V; 12V;+5V T AR J E T A D E AD Q UI SI CIO N D E D AT O S I NTERFAZ DE POTENCI A PUEN TE H PLANTA DE POSI CI ON Y VELOCI DAD PPV CI R CU I T O D E M E DID A P O SI CIO N Y VE L O CI D AD Fig.4.12 Diagrama del sistema PPV Para la implementación de las RNA´s empleadas en el control del péndulo invertido se utiliza la caja de herramientas Neural Networks Toolbox de Matlab 7.0 (en adelante Matlab 7.0 será nombrado Matlab). La interfaz para la quisición y envío de datos desde el software hacia “el mundo real” es la tarjeta de adquisición de datos NIDAQ PCI 6221 de National Instruments o desde la NIDAQ USB 6008/6009 .La DATA debe ser procesada y posteriormente evaluada usando las herramientas del software de simulación de LabVIEW o de Matlab Debido a las limitaciones de tensión y corriente de salida que maneja la tarjeta de interfaz es necesario implementar una interfaz de potencia ( puente H), para proporcionar la tensión y corriente necesaria tanto para el motor de c.c. 26 4.3.1 RNA´S EN MATLAB. Matlab cuenta con una caja de herramientas (Neural Network Toolboox) que permite diseñar RNA´s. La implementación en Matlab de una RNA ara funciones de control puede realizarse de tres formas: • Mediante código desde la línea de comandos o desde el spacio de trabajo de Matlab (workspace),. • Utilizando el conjunto de bloques incluidos en el tool ox de Control Systems de • Neural Networks Blockseten Simulink . Empleando la Interfase Grafica de Usuario (GUI por sus siglas en ingles) de RNA´s, la cual se puede desplegar empleando el comandonntool (Neural Network Toolbox). Al crear una RNA mediante el espacio de trabajo de Matlab es necesario introducir los comandos adecuados para obtener la arquitectura deseada en la RNA. Esta forma de diseñar RNA´s permite personalizar la arquitectura y presenta la ventaja de poder emplear funciones de entrada, de activación y de salida definidas por el usuario o, una combinación de las ya implementadas en el propio Matla . Empleando el conjunto de bloques en Control Systems se puede seleccionar una de las opciones de RNA´s ya diseñadas para controlar sistemas la desventaja de esta herramienta es que para la versión de Matlab 7.0 y ant riores no es posible generar el código necesario para ejecutarla en tiempo real mediante Real Time Workshop o Real Time Windows Target Por último, la tercer forma de diseñar una RNA es mediante la GUInntool. Esta herramienta nos permite crear RNA´s de distintas arqui cturas mediante la selección en un menú de la arquitectura deseada. Para este trabajo selecciono la GUInnt ool para crear las RNA´s empleadas en el control del PIS. Para información de cómo emplear las primeras dos formas de crear RNA´s en Mat b se puede consultar el Manual de Usuario de Neural Networks Toolbox . Cuando se crea una RNA en Matlab, las capas generadas incluyen la combinación de: pesos, operaciones de multiplicación y suma (en este caso realizadas como un producto entre vectores(W*P), el sesgo b, y la función de transferencia F . El arreglo de entradas (el vector P) no se considera parte de la capa, por lo que será necesario crear el vector correspondiente, si es que se desea emular la RNA crea a. Cuando se emplea la notación abreviada de RNA´s , las dimensiones de la matriz se muestran debajo de los elementos matriciales, y se pueden observar en la vista (view) de la RNA creada. 27 4.3.1.1 ESTRUCTURA DE LOS DATOS Existen dos clases de neuronas las estáticas (no tiene realimentación o retardos de tiempo) y las dinámicas (contiene retardos de tiempo). Cada una de ellas presenta requerimientos distintos en el formato de sus datos de entrada. Existen dos tipos básicos de vectores de entradas: aquellos que son concurrentes (ocurren al mismo tiempo, su secuencia de tiempo no importa), y aquellos que suceden de forma secuencial con respecto al tiempo. Para los vectores concurrentes, el orden no importa, p ra los vectores secuénciales el orden es de gran importancia. La forma más simple de simular una RNA se presenta cuando la RNA e estática. En este caso no es necesario tomar precauciones respecto a si el vector de entradas ocurre en una secuencia de tiempo determinada, y las entradas se pueden tratar como concurrentes. Además se puede simplificar el problema umiendo que la RNA tiene solo un vector de entrada. Cuando una RNA contiene retardos de tiempo, la entrada a la RNA debe ser normalmente una secuencia de vectores de entrada que o urren con un determinado orden de tiempo. Las entradas secuénciales son present a una RNA como si fueran elementos de un arreglo de celdas, por ejemplo: P = {y1 y2 ... y N } Ec.4.22 Al introducir de esta manera la entrada, la RNA produce un arreglo de celdas conteniendo una secuencia de salidas. Al no asignar una condición inicial a los retardos de tiempo empleados en una RNA, Matlab asume que son cero. En el caso especial que se desee simular la respuesta de la RNA con secuencias distintas y al mismo tiempo, la RNA se podrá confrontar con un con unto concurrente de secuencias. En este caso la entrada será un arreglo de celdas, donde cada elemento del arreglo contiene los elementos de cada secuencia que ocurre al mismo tiempo, por ejemplo, para dos secuencias distintas: [ P = {y1, ±1 ][ y1, ±2 y 2 , ±1 ] [ y 2 , ±2 [..... ...] y N , ±1 La salida que se obtendrá será de tal forma que la pri y N , ±2 ]} Ec.4.23 columna de cada matriz contendrá la secuencia de salida producida por la primera secuencia de entrada, y así sucesivamente. No existe interacción entre cada secuen concurrente y el 28 funcionamiento de la RNA será como si cada una de las secuencias se presentara a distintas RNA´s ejecutándose en paralelo. 4.3.2 RED MADALINE Cuando se emplea la regla LMS (también conocida como Regla Widrow-Hoff) para entrenar una RNA tipo Madaline, esta permite aumentar potencial de la RNA en su aplicación al poder manipular la colocación de la frontera de decisión en la clasificación de sus patrones de entrenamiento. En Matlab se emplea dicha regla de aprendizaje por omisión al crear una RNA Adaline o Madaline (comando en Matlab:learnwh). En la GUInntool solo es posible crear RNA´s Madaline de una la capa, esto debido a que cualquier RNA Madaline compuesta por varias capas lineales siempre pu e ser sustituida por una RNA equivalente compuesta de una sola capa lineal. 4.3.2.1 CREACION DE UNA RNA TIPO MADALINE MEDIANTE LA GUInntool Para acceder a la GUI de RNA´s es necesario introducir el comandonntoo l en el espacio de trabajo de Matlab, lo que permite acceder a la ventana Administradora de RNA´s (Network/ Data Manager) mostrada en la figura 4.13. Fig. 4.13 Ventana Networ k/ Da ta Mana ger de la GUInntool. 29 La GUInntool, permite: • Crear una RNA nueva mediante la opción New Network… • Crear vectores o matrices mediante la opción New Data. Los datos de los vectores o matrices pueden ser ya sea de entradas, salidas desead , valores para retardos de tiempo empleados en las entradas, valores para los retardos de tiempo empleados en las capas ocultas o de salida, valores de salidas, o valores de error. • Importar vectores o matrices de datos desde el espacio de trabajo de Matlab o desde un archivo almacenado en algún dispositivo de memoria mediante la opción Import… • Exportar datos al espacio de trabajo de Matlab o almacenar estos datos en algún dispositivo de memoria presente en el sistema utilizando la opción Export… • Cuando ya se cuenta con una RNA en el administrador se puede: observar su diagrama representativo (View), Eliminarla (Delete), inicializar sus pesos (Initialize…), • Simular la RNA previamente entrenada (Simulate…), entrenar una RNA creada o definida en el administrador de RNA´s (Train…) o adaptar (actualizar) los pesos y sesgos de una RNA´s previamente entrenada (Adapt…) La opciónSimulate..Toma los valores de un vector de entradas previamente definido en la ventana Network/Data Manager y genera alida correspondiente de la RNA. Al activar la opción New Network…se despliega la ventana Create New Network (mostrada en la figura 3.3), la cual permite seleccion r la arquitectura deseada para la nueva RNA. Fig. 4.14 Ventana Cr ea te Ne w Ne tw ork 30 La ventana Create New Network permite introducir los p dependiendo del tipo de RNA a crear. Los parámetros a etros necesarios nsiderar en la creación de una RNA tipo Madaline se pueden observar al seleccionar la opción Linear Layer (design) contenida en el menú Network Type. Dichos parámetros se pueden observar en la figura 4.15. En la ventana Create New Network desplegada se puede introducir: el nombre de la RNA a crear (en el espacio Network Name), los valores para los datos de entradas (en el espacio Input data), y de salidas deseadas (en el espacio Target data). La introducción de los datos de entradas y salidas deseadas puede realizarse de manera manual en el espacio correspondiente o extrayendo estos de algún ve or o matriz de datos previamente declarado en la ventana Network/Data Manager mediante los menú desplegables Set to imputy Set to target Figura 4.15 Ventana Cre a te New Ne t work para una RNA tipo Adaline o Madaline. El formato del elemento que contenga los datos de entradas y de salidas deseadas definirá la cantidad de entradas a la RNA y la cantidad de neuronas lineales empleadas en la capa de salida (cada renglón en el vector o matr de datos correspondiente representa una entrada o neurona de salida). Después de introducir los datos de valores de entrada de salida deseados se puede observar la RNA (mediante la opciónView) o crearla y colocar en la ventana Network/Data Manager(mediante la opciónCreate). En la figura 4.16 se muestra una RNA tipo Madaline de cuatro entradas y dos neuronas lineales 31 Fig.4.16 Diagrama representativo de una Red lineal creada en la GUIn nto ol. La GUI tiene su propio espacio de trabajo en la memoria del sistema el cual esta ubicado fuera del espacio de trabajo de Matlab. Debido a esto, cuando se emplea una GUI, se deben exportar los resultados de la GUI a la línea de comandos o espacio de trabajo de Matlab. De la misma manera si se desea emplear algún valor del espacio de trabajo de Matlab se deben Importar dichos datos. Una vez que se ha creado una RNA y la ventana Network/ ata Manager se encuentra activa, se puede, observar la RNA, entrenar, simular y xportar los resultados finales al espacio de trabajo de Matlab. 4.3.2.2 FILTRO LINEAL DE RESPUESTA A IMPULSOS FINITOS Para hacer uso pleno de la funcionalidad de una RNA ti Madaline se requiere emplear un conjunto de retardos de tiempo (en Matlab Tapped Delay Line, TDL) de tal forma que se convierta esta RNA en un filtro adaptativo. En campo del Procesamiento de Señales a dicho filtro se le conoce como Filtro Lineal de Respuesta a Impulsos Finitos (FIR por sus siglas en ingles). De esta forma el vecto de entradas a la RNA esta conformado por el valor de la señal actual yn-1 valores pasados de dicha señal (siendo n la cantidad de entradas en la RNA tipo Madaline). La salida de una RNA Madaline modificada de esta forma seria la siguiente: N u (1) = ∑ wij * u ( t − i + 1) + b Ec.4.24 j Donde: R es la cantidad de entradas a la RNA t es el ciclo actual de muestreo, t-1 seria el ciclo anterior. 32 4.3.3 RNA TIPO BP La RNA tipo BP estándar es una RNA entrenada mediante una generalización de la Regla de Aprendizaje de Widrow-Hoff y dicha regla de entrenamiento puede aplicarse a RNA´s de capas múltiples y con funciones de salida no ineales, con la única condición de que sean diferenciables. El proceso general para implementar una RNA de este tipo requiere cuatro pasos: •Adquisición de datos de entrenamiento •Creación de la red •Entrenamiento de la red •Simulación de la respuesta de la red ante nuevas entr das 4.3.3.1 CREACION DE UNA RNA TIPO BP MEDIANTE LA GUInntool La GUInntool permite crear RNA´s tipo BP con distintas uitecturas. La arquitectura de la red BP más empleada es la RNA tipo BP de capas múltiples con pre alimentación (Feed- Forward Backpropagation), otra de ellas empleada en esta tesis es la RNA BP con retardos de tiempo. Para crear una RNA tipo BP de capas múltiples con prealimentación es necesario seleccionar la opción Feed-forward backprop del menú Network Type en la ventana Create New Network. Al realizar esta acción se desplie la ventana mostrada en la figura 3.6 la cual muestra los parámetros a introducir con el fin de personalizar la RNA. Fig. 4.17 Ventana desplegada para crear una RNA tipo BP de pre alimentación . 33 El primer dato a introducir con el fin de personalizar RNA BP es el nombre que se le asignara, esto dentro del espacio Network Name:, Matla le asigna un nombre por omisión (ejemplo:net work1). El área Network Type: además de mostrar un menú para la selección de la arquitectura, cuenta con sub-menús que permiten personalizar la arquitectura seleccionada. El primero de ellos, Input ranges:, permite definir los limites de los valores en las señales de entrada. Estos valores pueden ser asignados automáticamente por Matlab, ubicando los valores máximo y mínimo de un vector previamente declarado como de entradas en la ventana Network/Data Manager. La dimensión del vector de entradas debe ser: dos columnas, una para el límite inferior y otra para el límite superior, y la misma cantidad de renglones como de entradas que se hayan declarado en el espacio Number of layers:. El numero e nodos en la capa de entrada será la cantidad introducida en el espacio Number of layers:. Durante el entrenamiento de una RNA BP los pesos y sesgos son ajustados de forma interactiva de tal forma que se minimice la función de ejecución de la RNA. La función de ejecución por omisión para la red con pre alimentación es la del error medio al cuadrado (MSEpor sus siglas en ingles), esto es: el error cuadrado promedio entre las salidas de la redu y las salidas deseadas t (ver figura 4.18 en la opción Performance función:). Otras opciones de funciones de ejecución son MSEREGy SSE. Esta opción determina la forma en la que los pesos de la RNA son ajustados, para una descripción de la manera en la que trabajan las opciones MSERE Gy SSE . Fig. 4.18 RNA BP personalizada 34 En el entrenamiento de una RNA BP el formato de las en radas puede ser como un solo vector o una matriz que agrupe un conjunto de vectores de entrada en el cual cada elemento de entrada ocupa un renglón (conocido como simulación por lotes). Para entrenar una RNA BP se requiere de vectores que contengan las entradas a la RNA y los valores correctos de las salidas correspondientes. Al diseñar una BP se puede seleccionar la función de transferencia a emplear tanto en la capa oculta como en la de salida. La selección de función de transferencia a utilizar, s realiza dentro del espacio Propiedades de capas (Properties for:) en el menú Transfer Function: (ver figura 4.18). las posibles opciones son tres: Función Lineal (PURELIN, figura 1.8a), Tangente Sigmoidea (TANSIG, figura 1.8b) y Sigmoidea Logarítmica (LOGSIG, figura 1.8c). En el menúProperties for: la capa Layer 1 representa la capa oculta y Layer 2 la capa de salida de la RNA BP creada. De la misma forma se puede definir el numero de neuronas en la capa seleccionada dentro del espacio en blanco Number of neurons:. El algoritmo a emplear para la etapa de entrenamiento selecciona en el menú Tra i ning function:(ver figura 4.19), como se menciona anteriormente la RNA BP estándar es la que emplea una generalización de la Regla de Aprendizaje de Widrow-Hoff (en este caso la opción TRAINGD) la cual actualiza los pesos y sesgos de la RNA en la dirección en la cual la función de ejecución (Performance function:) disminuye más rápidamente. Existen siete parámetros de entrenamiento asociados con el entrenamiento de gradiente descendente, ver figura 4.19 . El parámetrolr (learning rate) es un factor de entrenamiento que multiplica el gradiente negativo de la función de ejecución, y determina la magnitud de los cambios a realizar en los pesos y sesgos de la RNA BP. La opción show determina la cantidad de iteraciones del algoritmo a es de desplegar su estado actual (se le puede asignar el valor Na N para anular dicho despliegue). La opción epochs determina la cantidad de iteraciones a realizar antes de parar el entrenamiento. El entrenamiento podría parar antes de realizar la cantidad de iteraciones determinadas en epochs si el valor de la función de ejecución toma un valor menor al del parámetro goal, si el valor del gradiente es menor al valor introducido e ingrad, o si el tiempo de entrenamiento es mayor que el consignado en el espacio time (en segundos). 35 El parámetromax_fail está relacionado con técnicas de optimización del paro de entrenamiento. Fig. 4.19 Ventana Training Parameters en la opciónTrain. Después de haber personalizado la RNA creada se puede eleccionar la opción Create para generar en la ventana Network/Data Manager el objeto que emula la RNA BP con los parámetros introducidos. Estando lista para inicializar sus pesos (Initialize…), entrenarse (Train…), simularse (simulate…) ó actualizarse (adapt…). En la tabla 41 se muestran los algoritmos de entrenamiento disponible para una RNA BP. Func ión Ma t la b RAI NGD Descripc ión Los pesos y sesgos de la RNA se actualizan en la dirección del gradiente negativo de la función de ejecución. Respuesta lenta TRAI NGDM Los pesos y sesgos de la RNA se actualizan en la dirección del gradiente negativo de la función de ejecución. Se emplea un nuevo parámetro (momento) que permite esquivar mínimos locales. De esta forma la actualización es función del último cambio realizado y del gradiente 36 4.3.4 ENTRENAMIENTO DE UNA RNA Para entrenar la RNA creada, primero se debe seleccion cha RNA en la ventana Network /Data Manager. Posteriormente se presiona el b ón Train. Al hacer esto se activa una nueva ventana con el titulo Network:Nombre de la RNA, vea la figura 4.20. Dicha ventana permite observar datos concernientes al stado de la RNA, tal como valores de inicialización, parámetros de simulación, y su arquitectura. La teclaTraincontiene opciones que permiten definir los d os de entrada y salida mediante la ventanaTraining Info, figura 4.21. En dicha ventana se puede observar en el área de Training Results que el archivo con los datos de salida y errores tienen in do al inicio el nombre de la RNA. Esto permite identificarlos fácilmente si se desea exportarlos al espacio de trabajo de Matlab. Fig. 4.20 Ventana con información del proceso de entrenamiento nnntool. Para definir los parámetros que regirán durante el ent enamiento, tal como numero de épocas, y error final es necesario dirigirse a la ventana Training Parameters que cuenta con apartados que permiten definir dichos valores, figura 4.20. Después de haber definido los parámetros adecuados es ible activar el botón Train Network el cual iniciara la ejecución de dicha tarea. Para verificar que una RNA ha sido entrenada adecuadamente es necesario retornar a la ventana Network/ Data Manager y seleccionar la opción Simulate… del apartado Networks Only, dicha opción activara la ventana de la y en ese momento se selecciona la opción Simulate…, en la ventana desplegada por esta opción se puede 37 modificar el nombre del archivo que almacena los datos e salida, así como los valores de entrada y su origen, figura 4.21 . Después de hacer las modificaciones pertinentes se presiona el botón Simulate network ubicado en la parte inferior derecha. Fig. 4.21 Ventana para introducir los datos a emplear en la simulación de una RNA 4.3.5 EXPORTANDO DATOS A LA VENTANA DE TRABAJO DE MATLAB Para exportar los datos generados por una RNA con destino el espacio de trabajo de Matlab es necesario retornar a la pantalla Network / D Manager, figura 4.22. Al estar en la ventana Network / Data Manager se puede seleccionar los datos que se desea sean exportados al espacio de trabajo de Matlab y seleccionar el botónExp o rtlo cual dará las opciones Exporto Save from Network / Data Manager, figura 4.22. Si so lo se desea exportar los datos al espacio de trabajo de Matlab se cciona la opciónExpo rt. De otra manera la segunda opciónSa ve almacenara los datos en un archivo MAT. Fig. 4.22 Ventana para exportar datos desdenntoo l 38 LIMPIAR LA VENTANA NETWORK / DATA MANAGER Para limpiar la ventana Network/ Data Manager es necesario seleccionar cada una de las variables presentes en la ventana y activar la opción Delete,. De otra manera será necesario salir de Matlab, para volver a emplear el comandonntool y generar una ventana limpia. IMPORTANDO DATOS DESDE EL ESPACIO DE TRABAJO DE MATLAB En la ventana Network / Data Manager existe la opción Import la cual permite importar los datos de una variable ubicada en el espacio de trabajos de Matlab o en un archivo de unidad disco y generar su variable en la ventana Netwo k / Data Manager, durante este proceso se le puede asignar un nombre distinto a la variable generada en la ventana Network/ Data Manager. 4.3.6 SIMULINK Para crear en S imulink el modelo de una RNA creada en la caja de herramient ool y previamente exportarla al espacio de trabajo de Matlab, se emplea el comando gensim(net,tm) donden et es el nombre de la RNA a la cu l se le desea generar su modelo y tm es el tiempo de muestreo del bloque a gen ar, el valor por omisión para el tiempo de muestreo es de -1, esto es muestreo continuo y es aplicable solo cuand la RNA no contiene retardos de tiempo en alguna de sus cap s. 3.2.1 USO DEL BLOQUE TAPPED DELAY El bloque Tapped Delay puede encontrarse en la ventana Simulink Library Browser dentro de la libreríaDiscrete , figura 4.23. Este bloque nos permite retardar una señal escalar durante múltiples periodos de muestreo y retorna todos los valores correspondientes a los retardos. El periodo de tiempo entre cada una de las muestras se introduce mediante el parámetro Sample time :, ver figura 4.24. La cantidad de retardos de tiempo a aplicar en la señal se introduce en el espacio Numbers of delays:. El bloque cibe una entrada escalar y genera una salida por cada retardo de tiempo. El orden en los elementos del vector de salida se determina en la lista de opciones Order output vector starting whit:. Las dos opciones posibles son Oldest que ordena los elementos del vector de salida c menzando 39 con la el valor más antiguo de la señal y finalizando on el más actual y New es t que los ordena comenzando de forma contraria. Los valores en la salida del bloque para el primer periodo de muestreo se especifica en el parámet o Initial condition. La opción Include current input in output vector permite incluir los valores actuales de la señal en el vector de salida. Fig. 4.23 Ventana con librerías de bloques en Simulink Fig. 4.24 Parámetros de ajuste para un bloque de retardos de tiempo . 40 4.3.3 REAL TIME WORKSHOP Real-Time Workshop(RTW) es una extensión de capacidades par Simulink y Matlab que permite compilar y generar automáticamente el código fuente de modelos desarrollados en Simu link. De esta manera se pueden crear aplicaciones software en tiempo real. Algunos de los principales componentes y objetos que manejaRTW son: • El Generador de Código Simulink (Simulink Code Generator), el cual automáticamente genera el código C que representa exactamente al modelo desarrollado en Simulink • El Creador de Proceso (Make Process), el Creador de Proceso permite construir aplicaciones con especificaciones particulares en la compilación y conexión del código generado. • Modo Externo de Simulink (Simulink External Mode), permite la comunicación entre Simulink y un modelo que se este ejecutando en tiempo real. Mediante esta opción se puede ajustar algunos parámetros de ejecución, de almacenamiento de datos, y observar el modelo mediante la ventana deSimulin k. • Soporte de Dispositivos (Targeting Support), mediante ta herramienta se pueden emplear una gran variedad de drivers incluidos dentro deRTW que permiten diseñar aplicaciones para ejecutarse en dispos tivos o plataformas ya declaradas enRTW. Se puede emplear una gran variedad d tarjetas de adquisición de datos de terceros fabricantes. 4.3.7.1 DESARROLLO DE UNA APLICACIÓN EN RTW La forma en que se desarrolla una aplicación con RTW puede observarse en el diagrama de flujo en la figura 4.25. En primer lugar se deben determinar los parámetros ade uados de configuración referentes a la ejecución del programa, al hardware a emplear, a la optimización de las tareas y a parámetros deRTW. Para realizar esto se utiliza la ventana Configuración Parameter la cual se puede acceder en el menú Simulation de Simulink. La modificación de los parámetros de configuración afectara el comportamiento de un modelo en la simulación y en la generación de su código. Para una lista y descripción de las posibles opciones e configuración se puede consultar el capitulo 2 del manual Getting Started . 41 Después de introducir los parámetros adecuados de configuración es conveniente ejecutar la aplicación en forma de prueba antes de gen ra el código fuente. En la ventana del modelo (Simulink) se puede elegir la opción Model Advisor del menú Tools que permite ejecutar en modo de prueba un modelo y generar un reporte con los parámetros de configuración así como diagnostico de eficiencia en sus tareas. I d e n t i f i c a c i o n de r e q u e r i mi e n t o s pa r a l a s o p c i o n e s de c on f i g u r ac i o n de l a a pl i c ac i o n a j u s t e d e p a r a me t r o s d e c on f i gu r a c i o n Ej e c uc u i on de l a a pl i c ac i o n si Se r equi er e a j us t a r l a c on f i g u r ac i o n Ge n e r ar c o d i go No ¿ Es c o r r e c t o e l c o d i g o ? g e n e nr a r c o di g o y u n p r o gr a ma d e e j e c u c i o n Ve r i f i c ar e l p r og r ama de e j e c uc i o n No l os r e s u l t a d os e mi t an l a s i mu l ac i o n Si l Gu a r d a n l os v al o r e s d e c on f i gu r ac i o n fin Fig. 4.25 Diagrama de flujo para la creación de una aplicación en RT W . Después de obtener un comportamiento adecuado en la ejecución del modelo se puede proceder a generar el código del modelo, es probable que se desee solo generar el código del modelo sin necesidad de generar archivo ejecutable, esto se puede realizar mediante la selección de la opc ón Generate code only de la ventana Configuración Parámetros, en el menú Real-Time Workshop, figura 4.26. De esta forma se puede analizar si la respuesta del ilado es la adecuada o si es necesario realizar modificaciones. Si la respuesta es la adecuada se puede proceder a crear el archivo ejecutable. Para to se emplea la opción Build presente en la ventana Configuración Parameter, de esta forma se crean los archivos necesarios dentro del directorio de trabajo. a mayoría de las 42 aplicaciones realizadas en Simu lin k requieren modificar el tipo de solucionador (Solver options: Type) que indica el algoritmo a emplear durante la ejecución de tareas Fig. 4.26 Ventana parámetros de configuración para RT W. Otra forma de verificar los parámetros pero en forma individual para cada uno de los elementos del modelo es mediante la ventana Model Explorer ubicada en el menúView en Simulink, ver figura 4.27. Mediante esta ventana se pueden analizar, modificar y guardar parámetros correspondientes a un modelo deter nado. Fig. 4.27 Ventana para explorar modelos deSimulink. Desde la ventana del modelo creado en Simulink se puede generar el código y su archivo ejecutable mediante la opción Build Model… (ctrl.+B), en el submenú Real43 Time Workshop del menú desplegable Tools. Durante el proceso de compilación se crean una gran variedad de archivos temporales y otros requerido r RTW, estos son colocados dentro del directorio de trabajo en una carpeta con el nombre del modelo. Al crear una aplicación particular se requiere especificar el elemento final que la ejecutara (System Target), RTW cuenta con algunas configuraciones ya definidas de tal manera que al seleccionar alguna de ellas se realizan os ajustes adecuados en los elementos a emplear, en este trabajo se utilizara Real-Time Window Target como ambiente de ejecución del programa a realizar por lo que es necesario seleccionar la opción rtwintlc del menú RTW system target file en la ventana Configuración Parameters. Si se desea monitorear o almacenar en un archivo alguna de las señales generadas durante la ejecución del programa se puede seleccionar la opción Enable archiving presen e en la ventana External Data Archiving del submenú External Model Control Panel… del menútools de Simulink. Después de generar el archivo de la aplicación en tiempo real es necesario habilitar la opción External del menú Simulation en Simulink para poder ejecutarlo. Existen parámetros de los bloques empleados en el modelo que pueden ser actualizados durante su ejecución, otros requieren parar la aplicación para ser modificados y posteriormente volver a generar la aplicación de tiempo real (Build) a que son parte de la estructura del código generado. 4.3.8 REAL TIME WINDOWS TARGET Real Time Windows Target (RTWT) es una caja de herramientas de Matlab que permite extender las habilidades de Simulink, de tal forma que los modelos generados en Simu link puedan ser empleados como interfase grafica entre el usuario y una aplicación de tiempo real, permitiendo visualizar señales, ajusta parámetros y controlar la aplicación en tiempo real . La ventana que nos permite emplear bloques de conexión entre la aplicación software y el sistema físico empleando RTWT se puede acceder en la ventana de librerías de Simu link (Simulink Library Browser), figura 4.28, en el submenú Real-Time Windows Target. En la ventana de bloques de RTWT se puede seleccionar alguna de los canales de señal disponible en los dispositivos configurados. tipo de bloque que pueda utilizarse dependerá del dispositivo seleccionado. Los parámetros de configuración de la señal seleccionada se pueden modificar en la ventana Block Parameters : Analog Input, 44 figura 4.29. Los parámetros comunes en una gran cantidad de tarjetas son: El tiempo de muestreo (Sample Time:), que determinara la frecuencia con la que se realizan las mediciones en las señales de entrada o salida y la uni ad de tiempo que se emplea es el segundo. El numero de entrada o salida que se pretende emplear, Input channels:, por si existen varios canales de entrada o salida en el dispositivo seleccionado. El rango de valores en las señales de entrada, Input range:. Y el tipo de dat a la salida del bloque seleccionado, Block output signal:. Fig. 4.28 Ventana de la caja de herramientas RTWT Fig. 4.29 Ventana de configuración para una entrada analógica en RTWT. 45 Block Parameters: se puede dar de alta alguna de las t as de adquisición de datos compatible conRTWT, dentro de la opción Install new bo se puede seleccionar alguna de las tarjetas de terceros fabricantes, figura 4.30, dentro de este menú se puede seleccionar la tarjeta . Fig. 4.30 Selección de tarjeta compatible conRTWT. 4.3.8.1 TARJETA DE ADQUISICION DE DATOS En la computadora es posible tener dispositivos para la adquisición de datos de forma sencilla. Estos se pueden instalar a través de los puertos de comunicación estándar PCI/PXI, USB, RS232, etc. La forma en que convierten estos dispositivos las señales analógicas a digitales esta basado en el teorema de Nyquist. De acuerdo a este teorema el periodo de muestreo debe ser el doble de la frecuen ia mayor encontrada en la señal a examinar para que ésta pueda ser reconstruida posterio ente sin pérdida de información. A la mitad de la frecuencia de muestreo se le conoce como frecuencia de Nyquist. Teóricamente, es posible recuperar informació de una señal cuya frecuencia sea cercana o menor al valor de la frecuencia de Nyquist . La tarjeta PCI6014 de National Instruments es una herramienta utilizada para la adquisición de datos. Puede ser usada, entre otras aplicaciones, como lectora de señales proveniente de sensores ya que cuenta con 16 entradas de 16 bits a una 46 frecuencia máxima de muestreo de 200 KHz. Estas y otras características técnicas de la tarjeta se encuentran en la Tabla 4.2. La conexión eléctrica entre la tarjeta PCI6014 y el PIS se realizaron empleando un bloque de conexiones CB-68LPR de National Instruments adecuado para este tipo e tarjetas ya que cuenta con 68 bornes de conexión. El cable de conexión entre la tarjeta y el bloque de conexiones fue un cable blindado SH68-68-E Tabla 4.2 Datos técnicos de la tarjeta PCI 6014 de National Instruments [ 4] . 4.3.9 INTERFAZ DE POTENCIA La interfaz entre la tarjeta de adquisición de datos y el motor de c.c. de l PPV se realiza mediante un amplificador de corriente lineal implement do con un amplificador operacional (CI 1) y transistores BJT (T1 y T2). En el circuito se emplean dos transistores con características eléctricas idénticas PNP y el otro NPN) en configuración emisor-seguidor, con los emisores conectados entre sí (ver figura 4.31). El motor de c.c. es alimentado a través de los transis ores BJT. Cuando el control del PIS requiere que el motor gire en un sentido y a ciert velocidad, el amplificador operacional acopla la señal de la tarjeta 6014 con los transistores de potencia. Estos amplifican la señal en corriente para mover al motor c n la velocidad y giro adecuado. El amplificador operacional se realimenta (a través de R2) del voltaje que le llega al motor para asegurarse que la señal recibida de la tarjeta se transfiera fielmente al motor. La corriente que proporcionan los transistores al motor son tomados de una fuente de voltaje adicional. Esta fuente de voltaje proporciona voltaje de +V=12 V. y –V=-12 V a 3 amperios. Con la finalidad de mantener un voltaje de alimentación constante en los sensores de posición S1 y S2 se utilizó un diodo Zener. Como refer cia para la selección del diodo zener y su resistencia limitadora de corriente R3 se puede consultar a Zbar . 47 4.3.10 SISTEMA PPV Para convertir el movimiento oscilatorio del péndulo y el movimiento lineal de la base en una señal eléctrica observable se emplearon dos potenciómetros, RV1 y RV2 respectivamente, tal como se muestra en la figura 4.31. El potenciómetro es un elemento resistivo con un conta o móvil (cursor) que puede ser posicionado en cualquier lugar a lo largo del elemento resistivo. La posición deseada se logra mediante un vástago que está unido por un extremo al cursor y por otro hacia el mecanismo que lo mueve. La relación posición angular/r sistencia de RV1 y RV2 es lineal, es decir, la resistencia del potenciómetro est istribuida de manera uniforme en toda la carrera que recorre el cursor. Para que el potenciómetro proporcione una señal de tens ón proporcional a la posición del cursor éste se conecta como divisor de tensión. La ter inal de uno de los extremos se conecta al voltaje fijo regulado por R3 y DZ1 y la del otro extremo a tierra. De la terminal central con respecto a tierra se obtiene el voltaje pr porcional al ángulo de giro. Para conocer la posición del péndulo se monitorea la señal S1 y para la posición de R3 1 2 120 D1 R V1 R1 1 TI P3 1 Q1 MG1 R2 1 1 10K LM7 41 + - 10K A 1 JH2 S2 + 1 2 RV2 3 JH1 S1 3 1 1 JH3 1 la base móvil la señal S2. 2 MOTOR SER VO TI P3 2 Q3 JH4 1 1 Fig.4.31 sistema de PPV con sensor de Posición angular y desplazamiento El elemento impulsor para desplazar la base móvil del PPV es un motor de corriente directa de 12 V y 1 A. Para transformar el movimiento giratorio del motor a un movimiento lineal (y permita el desplazamiento horizontal de la base móvil) se ha utilizado un engrane y una banda dentada como se puede observar en la figura 4.32. La 48 carrera (longitud de movimiento horizontal) del la base móvil es de 30 cm. aproximadamente. Esta base se mueve horizontalmente sobre una barra guía para mantenerse en movimiento en un solo eje. Fig.4.32 49