13
Desarrollo de Algoritmos Genéticos en entorno NI LabVIEW 1 TÉCNICAS INTELIGENTES APLICADAS AL CONTROL E IDENTIFICACIÓN DE SISTEMAS DESARROLLO DE ALGORITMOS GENETICOS EN ENTORNO NI LABVIEW

93412259-Algoritmos-geneticos-Labview

Embed Size (px)

Citation preview

Page 1: 93412259-Algoritmos-geneticos-Labview

Desarrollo de Algoritmos Genéticos en entorno NI LabVIEW

1

TÉCNICAS INTELIGENTES APLICADAS AL

CONTROL E IDENTIFICACIÓN DE SISTEMAS

DESARROLLO DE

ALGORITMOS GENETICOS

EN ENTORNO NI

LABVIEW

Page 2: 93412259-Algoritmos-geneticos-Labview

Desarrollo de Algoritmos Genéticos en entorno NI LabVIEW

2

INDICE

1. INTRODUCCIÓN .............................................................................................. 3

2. DESARROLLO DE REDES NEURONALES ........................................................... 4

2.1 Desarrollo de una XOR ....................................................................................... 4

2.2 Control de un motor de continua ......................................................................... 6

3. CONCLUSIONES ............................................................................................. 12

4. BIBLIOGRAFÍA .............................................................................................. 13

Page 3: 93412259-Algoritmos-geneticos-Labview

Desarrollo de Algoritmos Genéticos en entorno NI LabVIEW

3

1. INTRODUCCIÓN

El objeto del presente trabajo es el desarrollar redes neuronales artificiales (ANN) en el

entorno NI LabVIEW.

Por un lado, hay que reseñar que las Redes Neuronales Artificiales son un método muy

potente para el modelado y control de Sistemas. Por otro lado, LabVIEW es un entorno de

desarrollo gráfico desarrollado por National Instruments originalmente enfocado a

aplicaciones de adquisición de datos y control de instrumentos que se ha expandido

ampliamente y que consigue reducir el tiempo de desarrollo de aplicaciones de todo tipo.

Actualmente, National Intruments no tiene un toolbox para implementar redes neuronales. Sí

que existen de toolbox comerciales implementadas en LabVIEW, aunque las cuales suponen un

gasto adicional al proyecto en el caso de que se quieran utilizar [1].

Page 4: 93412259-Algoritmos-geneticos-Labview

Desarrollo de Algoritmos Genéticos en entorno NI LabVIEW

4

2. DESARROLLO DE REDES NEURONALES

Se han desarrollado diferentes ejercicios con redes neuronales con el objetivo de probar la

capacidad de su implementación en LabVIEW, las cuales se indican a continuación:

Desarrollo de una XOR

Control de un motor de continua

2.1 Desarrollo de una XOR

Este ejercicio se base en la implementación de una red neuronal para solucionar una XOR [2].

2.1.1 Diseño

A modo recordatorio, se muestra la tabla de verdad de una XOR.

A B A XOR B

0 0 0

0 1 1

1 0 1

1 1 0

Tabla 1. Tabla de verdad XOR.

La implementación de la XOR se basa en una estructura Perceptron [3]. A la unidad

procesadora del Perceptron le llegan las entradas ai por la parte izquierda y cada conexión con

la neurona j tiene asignada un peso de valor wji. La unidad procesadora realiza la suma

ponderada de las entradas según la siguiente ecuación:

Sj=∑ai wji

El Perceptron comprueba si la suma de las entradas ponderadas es mayor o menor que un

cierto valor umbral (en nuestro caso 0) y genera la salida ‘xj’ según la siguiente ecuación:

Si Sj > 0 entonces xj = 1

Si Sj <= 0 entonces xj = 1

Page 5: 93412259-Algoritmos-geneticos-Labview

Desarrollo de Algoritmos Genéticos en entorno NI LabVIEW

5

La salida xj es transmitida a lo largo de la línea de salida y constituye uno de los componentes

del vector de salida de red.

La red implementada incluye dos unidades de entrada, dos neuronas en la segunda capa y una

neurona en la tercera etapa. Por otra parte, los pesos son fijados manualmente.

Figura 1. Esquema de red Neuronal XOR

2.1.2 Implementación

En primer lugar, se desarrolla un vi con la neurona Perceptron tal y como se ha explicado en el

punto anterior.

Figura 2. Neurona Perceptron implementada en LabVIEW

A continuación se incluye esta neurona en otro vi en el que se implementará la XOR.

Page 6: 93412259-Algoritmos-geneticos-Labview

Desarrollo de Algoritmos Genéticos en entorno NI LabVIEW

6

Figura 3. Red Neuronal XOR implementada en LabVIEW

2.1.3 Resultados

Después de probar todos los casos de la tabla de verdad, se comprueba que se obtienen los

resultados correctos.

2.2 Control de un motor de continua

Este ejercicio se base en la implementación del control de velocidad de un motor eléctrico CC a

través de una red neuronal [4].

2.2.1 Diseño

Para su implementación se utiliza una red neuronal Backpropagation de dos capas. La función

de activación de la capa de entrada es una función identidad mientras que en el caso de la

capa oculta y de la capa de salida es la función sigmoidal.

Figura 4. Arquitectura de la red neuronal

Page 7: 93412259-Algoritmos-geneticos-Labview

Desarrollo de Algoritmos Genéticos en entorno NI LabVIEW

7

Las redes Backpropagation tienen un método de entrenamiento supervisado. El algoritmo de

aprendizaje conlleva una fase de propagación hacia delante y otra fase de propagación hacia

atrás.

Feed Forward

En esta fase de propagación hacia delante las unidades de entrada toman el valor de su

correspondiente elemento del patrón de entrada y se calcula el valor de activación o nivel de

salida de la primera capa. A continuación las demás capas realizarán la fase de propagación

hacia delante que determina el nivel de activación de las otras capas.

La unidad procesadora j obtiene la cantidad Sj según la siguiente ecuación:

Sj=∑ai wji

y genera la salida o nivel de activación según la una función umbral genérica, que en este caso

es la función Sigmoidal.

Salida=f(Sj)=

El valor de la salida de la unidad j es enviado a lo largo de todas las conexiones de dicha unidad

Figura 5. Fase de propagación hacia delante.

Back Propagation

Una vez completado la fase de propagación hacia delante se inicia la fase de corrección o fase

de propagación hacia atrás. Los cálculos de las modificaciones de todos los pesos de las

conexiones empiezan por la capa de salida y continúa hacia atrás a través de todas las capas de

la red hasta la capa de entrada.

El desarrollo del cálculo del error está explicado de una forma muy intuitiva en [5] y [6]. Dentro

del cual, cabe destacar la ventaja que aporta la función sigmoidal para el cálculo de su

derivada, paso necesario para calcular el error.

Page 8: 93412259-Algoritmos-geneticos-Labview

Desarrollo de Algoritmos Genéticos en entorno NI LabVIEW

8

2.2.2 Implemetación

Red Neuronal

El algoritmo de la red neuronal esta implementado en un bloque subVI tal y como muestra el

siguiente bloque de diagramas.

Figura 6. Diagrama de bloques de la red neuronal backpropagation

Modelo del Motor CC

En este trabajo, el controlador basado en redes neuronales es usado para mejorar el control

de un motor de corriente continua. El objetivo del controlador es conseguir una precisa

trayectoria de control cuando son desconocidos la dinámica de la carga y el drive de CC. Este

motor de corriente continua está controlado por el método PWM (Pulso y Modulación) donde

la velocidad puede ser controlada modificando el ciclo de trabajo del PWM

Figura 7. Modelo del motor de corriente continua

Las ecuaciones que definen el modelo son las siguientes

Page 9: 93412259-Algoritmos-geneticos-Labview

Desarrollo de Algoritmos Genéticos en entorno NI LabVIEW

9

El motor de CC que se ha modelado tiene los siguientes parámetros: Ke=3475Nm/A, J=0,068

kgm2, Ra=7,56 ohm y La=0,055 H. A partir de estos valores, la función de transferencia del

motor CC queda como:

Estructura del controlador ANN para el Motor CC

Se utilizan dos sistemas de redes neuronales para el controlador. Un sistema recibe la

velocidad deseada como entrada, mientras que el otro recibe como entrada el error. Ambos

envían el ciclo de trabajo PWM como salida. Por último, estos valores se suman y el resultado

se convierte en la señal de control para el motor DC.

Figura 8. Arquitectura del controlador de la red neuronal.

2.2.3 Simulación

El siguiente paso es entrenar a la red neuronal para que se pueda identificar el sistema

dinámico. El objetivo es conseguir el mismo comportamiento entre la planta y la red neuronal.

De esta forma, se tendrá como entrada el ciclo de trabajo y como salida la velocidad del motor

real.

Durante el entrenamiento es necesario ajustar el bias para reducir el error existente. Para ello,

se le fija un valor cercano a cero y se incrementando para conseguir reducir el error. Es decir,

se va incrementando el bias a medida que la red neuronal converge pero sigue teniendo un

error intolerable.

Page 10: 93412259-Algoritmos-geneticos-Labview

Desarrollo de Algoritmos Genéticos en entorno NI LabVIEW

10

Figura 9. Bloque de diagramas para el entrenamiento.

Una vez entrenado la red neuronal, ya se puede utilizar en el sistema.

Figura 10. Bloque de diagramas del sistema

2.2.4 Resultados

Después del entrenamiento, los mejores resultados se consiguieron con los siguientes

parámetros.

Peso de entrada 1 = -3,12317

Peso entrada 2 = -7,0356

Peso Bias entrada 1 = -0,211902

Peso Bias entrada 2 = -0,211902

Peso Salida 1 = -3,12317

Page 11: 93412259-Algoritmos-geneticos-Labview

Desarrollo de Algoritmos Genéticos en entorno NI LabVIEW

11

Peso Salida 2 = -7,0356

Peso Bias Salida = 11,8467

Bias Entrada = 0

Bias Salida = 0,2

Con estos valores, el controlador implementado con redes neuronales consigue un buenos

resultados en cuanto a capacidad de seguimiento de entrada.

Salida ANN VS Tiempo

Figura 11. Gráfica Salida ANN – Tiempo

Velocidad del motor & Error VS Tiempo

Figura 12. Gráfica Velocidad del motor & Error - Tiempo

Page 12: 93412259-Algoritmos-geneticos-Labview

Desarrollo de Algoritmos Genéticos en entorno NI LabVIEW

12

3. CONCLUSIONES

Tal y como se ha visto, LabVIEW es un sistema que te permite implementar redes neuronales

de una forma sencilla e intuitiva. Por otro lado, los resultados de simulación obtenidos

muestran que el uso de redes neuronales es una opción viable de control. Dentro de la

documentación entregada con este trabajo, se añaden más archivos que se pueden tomar

como base para futuros proyectos, como por ejemplo añadir la capacidad de modificar

automáticamente el número de neuronas por capa.

Page 13: 93412259-Algoritmos-geneticos-Labview

Desarrollo de Algoritmos Genéticos en entorno NI LabVIEW

13

4. BIBLIOGRAFÍA

[1] P. Ponce-Cruz, F. Ramirez-Figueroa.”Intelligent Control Systems with LabVIEW”. Mexico

D.F., Mexico, Springer-Verlag, 2010.

*2+ Williamlweaver, ‘LabVIEW XOR Neural Net’, 2008. Available at

http://www.youtube.com/watch?v=8vlfsullaEk. Last access March 2012.

[3] X. Basogain. ‘Redes Neuronales Artificiales y sus Aplicaciones’ Bilbao, 2012,

[4] Jerome et al, LabVIEW based Intelligent Controllers for Speed Regulation of Electric Motor,

Instrumentation and Measurement Technology Conference Ottawa, Canada, Mayo 2005.

[5] nqramjets, Neural network tutorial: The back-propagation algorithm (Part 1), 07/01/2012,

available at http://www.youtube.com/watch?v=aVId8KMsdUU