Control de Un Motor de Pasos Con Un Grupo de Perceptrones

1. Tema Implementación de un control de motor con redes neuronales. 2. Objetivo  Diseñar e implementar el control de

Views 36 Downloads 0 File size 515KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

1. Tema Implementación de un control de motor con redes neuronales.

2. Objetivo 

Diseñar e implementar el control de un motor mediante un grupo de con un grupo de perceptrones

3. Materiales         

Protoboard Sensor de luz CNY70 Amplificadores operacionales LM741 Comparador LM311 Resistencias Motor Tarjeta arruino Cables de conexión Multímetro

4. Marco teórico 4.1. Definición De Una Red Neuronal Artificial Las RNA se definen como sistemas de mapeos no lineales cuya estructura se basa en principios observados en los sistemas nerviosos de humanos y animales. Constan de un número grande de procesadores simples ligados por conexiones con pesos. Las unidades de procesamiento se denominan neuronas. Cada unidad recibe entradas de otros nodos y genera una salida simple escalar que depende de la información local disponible, guardada internamente o que llega a través de las conexiones con pesos. Pueden realizarse muchas funciones complejas dependiendo de las conexiones. Las neuronas artifi ciales simples fueron introducidas por McCulloch y Pitts en 1943. Una red neuronal se caracteriza por los siguientes elementos: 1. Un conjunto de unidades de procesamiento o neuronas. 2. Un estado de activación para cada unidad, equivalente a la salida de la unidad. 3. Conexiones entre las unidades, generalmente defi nidas por un peso que determina el efecto de una señal de entrada en la unidad. 4. Una regla de propagación, que determina la entrada efectiva de una unidad a partir de las entradas externas.

5. Una función de activación que actualiza el nuevo nivel de activación basándose en la entrada efectiva y la activación anterior. 6. Una entrada externa que corresponde a un término determinado como bias para cada unidad. 7. Un método para reunir la información, correspondiente a la regla del aprendizaje 8. Un ambiente en el que el sistema va a operar, con señales de entrada e incluso señales de error. En muchas redes las unidades de proceso tienen respuesta de la forma:

y=f ( ∑ wk x k ) k

xk : señales de salida de otros nodos o entradas externas. wk : pesos de las ligas de conexión. f (•) : función no lineal simple. La función f puede ser sigmoidal, tangente hiperbólica, escalón, entre otras. En MATLAB® se tiene diferentes funciones de activación como tansig, hardlim y purelin, entre otras, lo cual facilita las aproximaciones que se requieran hacer, empleando RNA. Cada unidad de proceso tiene una tarea simple: recibe la entrada de otras unidades o de fuentes externas y procesa la información para obtener una salida que se propaga a otras unidades. Una red puede tener una estructura arbitraria, pero las capas que contienen estas estructuras están definidas de acuerdo con su ubicación en la topología de la red neuronal. Las entradas externas son aplicadas en la primera capa, y las salidas se consideran la última capa. Las capas internas que no se observan como entradas o salidas se denominan capas ocultas. Por convención, las entradas no se consideran como capa porque no realizan procesamiento. La entrada total u de una unidad k es la suma de los pesos de las entradas conectadas, más un bias

θ :

u=∑ w j x j +θ j

Si el peso él es positivo se habla de una excitación y si el peso es negativo se considera una inhibición de la entrada. Si consideramos a las entradas como funciones del tiempo, la expresión anterior se convierte en:

u(t)=∑ w j ( t ) x j (t)+θ j

4.2. Funciones De Activación La regla que logra establecer el efecto de la entrada total u(t) en la activación de la unidad k se denomina Función de activación (Fk):

y (t +1 )=Fk ( y (t ), u(t )).

En muchas ocasiones esta función es de la forma no decreciente respecto a la entrada total de la unidad:

Algunas de las funciones de activación más usadas son las siguientes: Función escalón La función de activación escalón se asocia a neuronas binarias en las cuales, cuando la suma de las entradas es mayor o igual que el umbral de la neurona, la activación es 1; si es menor, la activación es 0 (o -1).

4.3. Entrenamiento De Las Redes Neurales Se denomina entrenamiento al proceso de confi guración de una red neuronal para que las entradas produzcan las salidas deseadas a través del fortalecimiento de las conexiones. Una forma de llevar esto a cabo es a partir del establecimiento de pesos conocidos con anterioridad, y otro método implica el uso de técnicas de retroalimentación y patrones de aprendizaje que cambian los pesos hasta encontrar los adecuados. Además, el aprendizaje puede dividirse en supervisado o asociativo y no supervisado o auto-organizado. En el primer caso se introducen entradas que corresponden a determinadas salidas, ya sea por un agente externo o por el mismo sistema. En el segundo caso el entrenamiento se enfoca a encontrar características estadísticas entre agrupamientos de patrones en las entradas. Un tipo de regla que se usa para el entrenamiento mediante el ajuste de pesos es la Hebbiana, propuesta por Hebb en 1949 y que ha dado pie a diversas variantes propuestas en el transcurso del tiempo. Si dos unidades j y k están activas al mismo tiempo, la conexión entre las dos debe ser fortalecida mediante la modifi cación del peso:

Donde

γ

es una constante de proporcionalidad positiva que representa la tasa de

aprendizaje. Otra regla usada comúnmente implica el ajuste de los pesos a través de la diferencia entre la activación actual y la deseada; se le conoce como Regla Delta:

Donde dk es la activación deseada.

4.4. El perceptrón

Figura. 1. Perceptron

Es un modelo que nos ayuda a dividir patrones linealmente separables y lo que hace este entrenamiento es deducir cuándo una entrada pertenece a una de las dos clases. Dentro del campo de las redes neuronales tiene dos acepciones. Puede referirse a un tipo de red neuronal artificial desarrollado por Frank Rosenblatt.Y dentro de la misma teoría de Rosenblatt. También puede entenderse como la neurona artificial y unidad básica de inferencia en forma de discriminador lineal, es decir, un algoritmo capaz de generar un criterio para seleccionar un sub-grupo, de un grupo de componentes más grande. La limitación de este algoritmo es que si dibujamos en un plot estos elementos, se deben poder separar con un hiperplano los elementos "deseados" de los "no deseados". El perceptrón puede utilizarse con otros perceptrones u otro tipo de neurona artificial, para formar redes neuronales más complicadas.

4.5. ADALINE (Adaptive Linear Neuron) La red ADALINE tiene una topología similar a la del perceptrón, excepto porque emplea una función de activación lineal, usando para su entrenamiento un método de mínimos cuadrados (LMS).

Entre sus aplicaciones se encuentran:   

Procesamiento de señales. Canceladores de ECO, en señales telefónicas. Sistemas de predicción.

Un esquema de predicción básico es el siguiente, en el cual se presenta un entrenamiento con datos del sistema tanto de la entrada como de la salida. Después de realizado el entrenamiento se elimina la entrada de datos de la salida del sistema, como lo muestra la fi gura

Figura. 2. Red ADALINE

Figura. 3. ADALINE con salida de activación

Las redes ADALINE son estructuras de una capa con una función de escalón como no linealidad. Adicionalmente, las entradas pueden ser de forma continua, mientras que en el perceptrón son binarias de

∓ 1. Los pesos son ajustados mediante la regla de

Widrow-Hoff para minimizar la diferencia entre la salida y el objetivo. Este algoritmo es una implementación iterativa de la regresión lineal, reduciendo el error cuadrado de un ajuste lineal. (Cruz, 2010)

5. Procedimiento El desarrollo de este ejercicio es a través del entrenamiento de dos neuronas: la primera de ellas será entrenada para decidir la dirección de un sistema que consta de dos sensores de luz y que va a girar hacia la izquierda o hacia la derecha por medio de un motor, dependiendo qué sensor se active con la incidencia de luz. La segunda neurona será entrenada para decidir a qué velocidad va a girar el sistema antes mencionado de acuerdo con la combinación que presenten dos interruptores. 5.1.

Crear las tablas de verdad para las cuales el sistema funcionara el motor. Tabla 1. Dirección V1 V2 Salida 0 0 0 0 1 0 1 0 1 1 1 1 1 →izquierda 0 →derecha Tabla 2. Velocidad V1 0 0 1 1

V2 0 1 0 1

Salida 0 0 0 1

1→rápido 0 →lento 5.2.

Con ayuda de un programa de computador C++ se halla los pesos

La inicialización de los pesos de la neurona de dirección fue:

w 1=1 w 2=1 w 3=1 Los pesos que resultan son:

w 1=3 w 2=0.5 w 3=1.2 La inicialización de los pesos de la neurona de velocidad fue:

w 1=1 w 2=1 w 3=1 Los pesos que resultan son:

w 1=0.55 w 2=0. 4 5 w 3=1.14

5.3.

Realizamos la suma de las entradas por los pesos ecuación:

y (t )=f [ w1 X 1 +w 2 X 2−w θ X θ ]

de la

Mediante

el

siguiente uso

de

amplificadores operacionales En el caso de la entrada negativa previamente se debe invertir la entrada posteriormente se hace la suma y finalmente se compara como lo indica la siguiente figura

Figura. 4Configuración de los Amplificadores operacionales.

5.4.

Verificar las entradas y las salidas que cumplan la tabla de verdad

Figura. 5. Entradas V1= 0, V2= 0

Figura. 6. Entrada V1=0, V2=1

Figura. 7. Entrada de V1=1,V2=0

Figura. 8 Entrada de V1=1, V2=1

5.5.

Programamos el pic para las salidas deseadas #include // libreria del pic #fuses XT,NOWDT // Configuracion de fusibles #use delay(clock=4M ) int i; void main () { set_tris_b(0x00); //Configura el puerto como salida set_tris_a(0xff); output_low(PIN_B0); output_low(PIN_B1);

while(TRUE) { // Gira izquierda //a0=v1,a1=v2 if( input(pin_a0)==0 && input(pin_a1)==0 || input(pin_a0)==0 && (input(pin_a1)==1 )) { output_high(PIN_B0); output_low(PIN_B1); delay_ms(500); } // Gira derecha //a0=v1,a1=v2 if(input(pin_a0)==1 && input(pin_a1)==0 ) { output_low(PIN_B0); output_high(PIN_B1); } if(input(pin_a0)==1 && input(pin_a1)==1 ) { output_low(PIN_B0); output_high(PIN_B1); } } } 5.6.

Adicionamos la parte de control del motor

Figura. 9. Funcionamiento del motor

5.7.

Procedemos armar el protoboa|rd

Figura. 10. Implementación .

6. Análisis de resultados. Para evaluar la salida de la red neuronal se hace uso de la siguiente fórmula.

y (t )=f [ w1 X 1 +w 2 X 2−w θ X θ ]

Con la que obtuvimos los siguientes resultados

donde 0= 0V y 1=5V.

Tabla 3. Direccion V1

V2

Salida(V

) 0 0 0.01 0 1 0.02 1 0 12.7 1 1 15.2 1 →izquierda 0 →derecha Tabla 4. Velocidad V1

V2

Salida(

0 0 1 1

0 1 0 1

V) 0.01 0.02 0.02 5.09

1→rápido 0 →lento

7. Conclusiones. 

Los pesos en el control mediante el uso de perceptores, son el factor más determinante por el cual permite deducir cuándo una entrada pertenece a una



de las dos clases. Las resistencias en una red neuronal hacen las funciones de los pesos mientras que los Amplificadores operacionales se encargan de realizar las operaciones aritméticas lógicas.



En entrenamiento de la red neuronal estás dado por los pesos y esta a su vez por el valor la las resistencias que se implementan.

8. Recomendaciones 

Tener en cuenta los valores de resistencias comerciales disponibles en el mercado ya que difieren en alto rango de las calculadas

9. Bibliografía Cruz, P. P. (2010). INTELIGENCIA ARTIFICIAL CON APLICACIONES A LA INGENIERIA. Mexico: Alfaomega. Recuperado el 01 de Junio de 2015