Upload
julio-cesar
View
191
Download
1
Embed Size (px)
Citation preview
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
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
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].
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
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.
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
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.
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
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.
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
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
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.
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