16
*Ana Silvia Avalos Ibarra No. De Control: M1313073 TORREÓN COAHUILA A 26 DE MAYO DE 2014. 1 Instituto Tecnológico de la Laguna Maestría en Ciencias en Ingeniería Eléctrica Instrumentación Electrónica Redes Neuronales Proyecto Final Profesor: Martín Vázquez Rueda Inteligencia Artificial

Proyecto Final Redes Neuronales

Embed Size (px)

DESCRIPTION

Describe un carro con cuatro motores de corriente directa controlados con 6 sensores de luz. Usando redes neuronales

Citation preview

*Ana Silvia Avalos Ibarra No. De Control: M1313073

Instituto Tecnolgico de la Laguna

Maestra en Ciencias en Ingeniera Elctrica

Instrumentacin Electrnica

Redes Neuronales

Proyecto Final

Profesor: Martn Vzquez Rueda

Inteligencia Artificial

TORREN COAHUILA A 26 DE MAYO DE 2014.

I. Introduccin

Redes Neuronales

Una red neuronal artificial es una estructura compuesta de un nmero de unidades interconectadas (neuronas artificiales). Cada unidad posee una caracterstica de entrada/salida e implementa una computacin local o funcin. La salida de cualquier unidad est determinada por su caracterstica de entrada/salida, su interconexin con otras unidades, y (posiblemente) de sus entradas externas. Sin embargo es posible un trabajo a mano, la red desarrolla usualmente una funcionalidad general a travs de una o ms formas de entrenamiento.

El cerebro humano contiene ms de 100 billones de elementos de procesos llamados neuronas, que se comunican a travs de conexiones llamadas sinapsis. Cada neurona eta compuesta por tres partes fundamentales: el cuerpo, dendritas y axn. El cuerpo en su capa externa tiene la capacidad nica de generar impulsos nerviosos. Las dendritas que son como las ramas que salen del cuerpo, poseen algunas conexiones sinpticas en donde se reciben seales que generalmente vienen de otros axones. El axn se encarga de activar o inhibir otras neuronas las cuales a su vez son activadas por cientos o miles de otras neuronas.

El funcionamiento de una neurona artificial est basado en este diseo. Bsicamente consiste en aplicar un conjunto de entradas, cada una representando la salida de otra neurona, o una entrada del medio externo, realizar una suma ponderada con estos valores y filtrar este valor como una funcin.

Figura 1.- Red Neuronal con tres entradas

,

Backpropagation

Backpropagation es un algoritmo de aprendizaje supervisado que se usa para entrenar redes neuronales artificiales. El algoritmo emplea un ciclo propagacin adaptacin de dos fases. Una vez que se ha aplicado un patrn a la entrada de la red como estmulo, este se propaga desde la primera capa a travs de las capas superiores de la red, hasta generar una salida. La seal de salida se compara con la salida deseada y se calcula una seal de error para cada una de las salidas. Las salidas de error se propagan hacia atrs, partiendo de la capa de salida, hacia todas las neuronas de la capa oculta que contribuyen directamente a la salida. Sin embargo las neuronas de la capa oculta solo reciben una fraccin de la seal total del error, basndose aproximadamente en la contribucin relativa que haya aportado cada neurona a la salida original. Este proceso se repite, capa por capa, hasta que todas las neuronas de la red hayan recibido una seal de error que describa su contribucin relativa al error total. La importancia de este proceso consiste en que, a medida que se entrena la red, las neuronas de las capas intermedias se organizan a s mismas de tal modo que las distintas neuronas aprenden a reconocer distintas caractersticas del espacio total de entrada. Despus del entrenamiento, cuando se les presente un patrn arbitrario de entrada que contenga ruido o que est incompleto, las neuronas de la capa oculta de la red respondern con una salida activa si la nueva entrada contiene un patrn que se asemeje a aquella caracterstica que las neuronas individuales hayan aprendido a reconocer durante su entrenamiento.

Estructura de la Red

Figura 2.- Estructura de la Red Backpropagation

Puede notarse que esta red de tres capas equivale a tener tres redes tipo Perceptrn en cascada; la salida de la primera red, es la entrada a la segunda y la salida de la segunda red es la entrada a la tercera. Cada capa puede tener diferente nmero de neuronas, e incluso distinta funcin de transferencia.

II. Software Utilizado

Matlab

Es una herramienta de software matemtico que ofrece unentorno de desarrollo integrado(IDE) con un lenguaje de programacin propio (lenguaje M) y servicio de especie. Est disponible para las plataformasUnix,Windows,Mac OS XyGNU/Linux.

Entre sus prestaciones bsicas se hallan: la manipulacin dematrices, la representacin de datos y funciones, la implementacin dealgoritmos, la creacin de interfaces de usuario (GUI) y la comunicacin con programas en otros lenguajesy con otros dispositivoshardware. El paquete MATLAB dispone de dos herramientas adicionales que expanden sus prestaciones, a saber, Simulink (plataforma de simulacin multidominio) y GUIDE (editor de interfaces de usuario - GUI). Adems, se pueden ampliar las capacidades de MATLAB con lascajas de herramientas (toolboxes); y las de Simulink con lospaquetes de bloques(blocksets).

Es unsoftwaremuy usado en universidades y centros de investigacin y desarrollo. En los ltimos aos ha aumentado el nmero de prestaciones, como la de programar directamenteprocesadores digitales de sealo crear cdigoVHDL.

Figura 3.- Logo de Matlab

LabVIEW

Es una plataforma y entorno de desarrollo para disearsistemas, con un lenguaje deprogramacinvisual grfico. Recomendado para sistemas hardware y software de pruebas, control y diseo, simulado o real y embebido, pues acelera la productividad. El lenguaje que usa se llamalenguaje G, donde la G simboliza que es lenguaje Grfico.

Los programas desarrollados con LabVIEW se llaman Instrumentos Virtuales, o VIs, y su origen provena del control de instrumentos, aunque hoy en da se ha expandido ampliamente no slo al control de todo tipo de electrnica (Instrumentacin electrnica) sino tambin a su programacin embebida, comunicaciones, matemticas, etc. Un lema tradicional de LabVIEW es:"La potencia est en elSoftware", que con la aparicin de los sistemasmultincleose ha hecho an ms potente. LabVIEW consigue combinarse con todo tipo de software y hardware, tanto del propio fabricante -tarjetas de adquisicin de datos, PAC, Visin, instrumentos y otroHardware- como de otros fabricantes.

Figura 4.- Logo de LabVIEW

Arduino

Es una plataforma dehardware libre, basada en unaplacacon unmicrocontroladory unentorno de desarrollo, diseada para facilitar el uso de la electrnica en proyectos multidisciplinares.

Elhardwareconsiste en una placa con un microcontroladorAtmel AVRy puertos deentrada/salida.Los microcontroladores ms usados son elAtmega168,Atmega328,Atmega1280,ATmega8por su sencillez y bajo coste que permiten el desarrollo de mltiples diseos. Por otro lado el software consiste en un entorno de desarrollo que implementa ellenguaje de programacinProcessing/Wiring y elcargador de arranqueque es ejecutado en la placa.4

Arduino se puede utilizar para desarrollar objetos interactivos autnomos o puede ser conectado a software tal comoAdobe Flash,Processing,Max/MSP,Pure Data). Las placas se pueden montar a mano o adquirirse. Elentorno de desarrollo integradolibre se puede descargar gratuitamente.

Arduino puede tomar informacin del entorno a travs de sus entradas analgicas y digitales, y controlar luces, motores y otros actuadores. El microcontrolador en la placa Arduino se programa mediante el lenguaje de programacin Arduino (basado en Wiring) y el entorno de desarrollo Arduino (basado en Processing). Los proyectos hechos con Arduino pueden ejecutarse sin necesidad de conectar a un computador.

Figura 4.- Logo de Arduino

Mdulo NI LabVIEW MathScript RT

Este software permite trabajar en LabVIEW como si se estuviera en el entorno de Matlab.

Caractersticas

Principio del formulario

Final del formulario

Despliega archivos .m personalizados a hardware en tiempo real

Puede reutilizar varios scripts creados con el software The MathWorks, Inc. MATLAB y otros

Desarrolla archivos .m con una interfaz interactiva de lnea de comando

Integre scripts en aplicaciones de LabVIEW usando el Nodo MathScript.

Figura 5.- Mathscript

III. Arquitectura del Programa

Panel de Control

Figura 6.- Panel frontal con indicadores para las resistencias

IV. Complementos Utilizados

Sensores Utilizados

Fotorresistencias

Unafotorresistenciaes uncomponente electrnicocuya resistencia vara en funcin de la luz.

Un fotorresistor est hecho de unsemiconductorde alta resistencia, si la luz que incide en el dispositivo es de altafrecuencia, losfotonesson absorbidos por las elasticidades del semiconductordando a loselectronesla suficiente energa para saltar labanda de conduccin. El electrn libre que resulta, y su hueco asociado, conducen la electricidad, de tal modo que disminuye laresistencia. Los valores tpicos varan entre 1 M, o ms, en la oscuridad y 100 con luz brillante.

Figura 7.- Fotorresistencia

Integrado Utilizado para acoplar los motores

El integradoL293Dincluye cuatro circuitos para manejar cargas de potencia media, en especial pequeos motores y cargas inductivas, con la capacidad de controlar corriente hasta 600 ma en cada circuito y una tensin entre 4,5 v a 36 v.

Figura 8.- Controlador L293D

V. Plataforma de LabVIEW

Modulo de Matlab en LabView

En el mdulo de Matlab Script se declar lo que ser la red neuronal, para esta red utilizo el algoritmo para redes de tipo backpropagation, y tengo siete entradas y siete salidas.

Figura 9.- Matlab Script

Inicio y cierre de la comunicacin

Mediante estos bloques se inicia y cierra la comunicacin con arduino, todo programa necesita llevarlos, en ello se declara el puerto que se utilizar, y la tarjeta, as como la velocidad de transmisin de datos y el tipo de comunicacin.

Figura 10.- Inicio y Cierre de la Comunicacin

Esquema de los Sensores

Figura 11.- Esquema de los Sensores

Conexin de los Sensores

En las siguientes imgenes se esquematiza la conexin de los sensores, tal como se muestra a continuacin ese bloque representa al pin anlogo de la arduino al que va conectado, su voltaje de alimentacin y la intensidad de luz que esta recibiendo la fotoresistencia (con valores entre un rango del 1-100).

Figura 12.- VI para Fotoceldas

Figura 13.- Caso DelanteroFigura 14.- Caso Trasero

Figura 15.- Caso DerechaFigura 16.- Caso Izquierda

Figura 17.- Caso Adelante RpidoFigura 18.- Caso Atrs Rpido

Esquema de comparaciones entre los sensores

Figura 19.- Esquema de Comparaciones

Mdulo de Matlab Script que ejecuta las salidas.

En el primer mdulo de Matlab script se entrena la red neuronal, en este dependiendo de la salida que se este obteniendo de los valores de los sensores se ejecuta el caso reconocido.

Figura 20.- Mdulo MatLab Script

Conexin de los Motores

En la siguiente imagen especifico a que pines de mi arduino conect los motores, estos los configuro como salidas y utilizo 8 porque usare 4 motores de directa, y cada uno utiliza dos para cambiar el sentido del giro.

Figura 21.- Conexin de Los motores

Caso 1

Para el caso 1 energizo los motores de la manera a continuacin presentada, cada caso tiene una manera diferente.

Caso 2

Caso 3

Caso 4

Caso 5

Caso 6

Caso 7

Vinculacin de LabView a Matlab.

Figura 22.- Plataforma de MatLab

1

1

13