Red Btrabajo de Grado

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 101

Escola Universitaria d’Enginyers

Técnics Industrials de Barcelona


E.U.E.T.I.B

Proyecto:
Red Neuronal
para la Identificación de sistemas

Realizado por: José Luis Casas Martínez


Especialidad: Electrónica Industrial
Ponente: Joan Domingo
Curso 2003-2004
Red neuronal para identificación automática de sistemas Índice

Índice

1 Objeto del Proyecto ........................................................................................................ 1


2 Motivación y justificación................................................................................................ 2
3 Descripción del problema .............................................................................................. 4
3.1 Red Neuronal........................................................................................................... 4
3.1.1 Red Backpropagation ..................................................................................... 6
3.1.2 Red Elman........................................................................................................ 6
3.1.3 Red Jordan....................................................................................................... 9
3.1.4 Función de transferencia..............................................................................10
3.2 Donde implementar la Red ..................................................................................13
3.2.1 Implementación en un PIC ..........................................................................13
3.2.2 Implementación del entrenamiento en un PC ..........................................14
3.3 Adquisición de datos.............................................................................................15
3.4 Visualización y configuración de datos ..............................................................17
3.5 Salida de la Red Neuronal...................................................................................18
3.6 Comunicación con el PC......................................................................................19
3.7 Test del hardware exterior ...................................................................................19
4 Hardware ........................................................................................................................20
4.1 Diagrama de bloques............................................................................................20
4.2 PIC 18F452 ............................................................................................................20
4.3 Display 2x16...........................................................................................................23
4.4 Convertidor D/A y convertidor I/V .......................................................................23
4.5 Teclado 2x2 ............................................................................................................26
4.6 Circuito de adquisición .........................................................................................27
4.7 Comunicación serie (MAX 232) ..........................................................................29
4.8 Fuente de alimentación ........................................................................................30
4.9 Características del sistema..................................................................................31
5 Software ..........................................................................................................................33
5.1 Lista de programas ...............................................................................................33
5.2 Pseudocódigo ........................................................................................................33
5.2.1 Programa principal ........................................................................................33
5.2.2 Programa entrenamiento .............................................................................35

José Luis Casas Martínez -I-


Red neuronal para identificación automática de sistemas Índice

5.2.3 Programa ejecutar.........................................................................................36


5.2.4 Programa ejecutar red ..................................................................................37
5.2.5 Programa ejecutar entrada ..........................................................................37
5.2.6 Programa ejecutar salida .............................................................................38
5.2.7 Programa Opciones ......................................................................................38
5.2.8 Programa velocidad de aprendizaje ...........................................................40
5.2.9 Programa capas enterradas máximas .......................................................41
5.2.10 Programa capas enterradas mínimas........................................................42
5.2.11 Programa número de muestras ..................................................................42
5.2.12 Programa número de epoch’s .....................................................................43
5.2.13 Programa error mínimo ................................................................................44
5.2.14 Programa Adquisición ..................................................................................44
5.2.15 Programa Red Neuronal..............................................................................45
5.3 Mapa de memoria del programa.........................................................................46
5.4 Representación de los datos ...............................................................................49
6 Comunicaciones ............................................................................................................51
7 Manual de utilización del identificador .......................................................................52
7.1 Menú principal........................................................................................................52
7.2 Entrenamiento ........................................................................................................53
7.3 Ejecutar...................................................................................................................53
7.3.1 Ejecutar Red ..................................................................................................54
7.3.2 Ejecutar entrada ............................................................................................54
7.3.3 Ejecutar salida ...............................................................................................54
7.4 Opciones.................................................................................................................55
7.5 Adquisición.............................................................................................................55
7.6 Test ..........................................................................................................................56
7.6.1 Test entrada 1 ................................................................................................56
7.6.2 Test entrada 2 ................................................................................................56
7.6.3 Test salida ......................................................................................................56
7.7 Comunicación ........................................................................................................57
8 Simulaciones ..................................................................................................................58
8.1 Comparación entre las distintas redes ..............................................................58

José Luis Casas Martínez - II -


Red neuronal para identificación automática de sistemas Índice

8.2 Simulaciones con la Red Backpropagation ......................................................58


8.3 Simulaciones con la Red Elman.........................................................................62
8.3.1 Cuadripolo desfasador .................................................................................62
8.3.2 Cuadripolo R-C ..............................................................................................64
8.3.3 Cuadripolo formado por un diodo y una resistencia ................................66
8.3.4 Cuadripolo rectificador de media onda ......................................................68
8.4 Simulaciones con la Red Jordan........................................................................70
8.4.1 Cuadripolo RC ...............................................................................................71
8.4.2 Cuadripolo rectificador..................................................................................72
8.5 Barrido en frecuencia para un sistema de primer orden R-C ........................73
8.5.1 Red Elman......................................................................................................73
8.5.2 Red Jordan.....................................................................................................77
9 Ensayos ..........................................................................................................................81
9.1 Cuadripolo RC .......................................................................................................81
9.2 Cuadripolo rectificador..........................................................................................87
10 Conclusiones..............................................................................................................92
11 Mejoras posibles........................................................................................................93
12 Estudio económico....................................................................................................94
13 Bibliografía, referencias y enlaces..........................................................................97

José Luis Casas Martínez - III -


Red neuronal para identificación automática de sistemas 1-Objetivo del proyecto

1 Objeto del Proyecto

El objeto por el cual se realiza el siguiente proyecto, es básicamente, poner a prueba


todos los conocimientos adquiridos durante el tiempo de estancia en la universidad,
ya que el trabajo y diseño a realizar engloban gran parte de los conceptos tratados
en la carrera. Otra razón importante para escoger el proyecto es que el tema que
trata, Redes Neuronales, es un tema relativamente novedoso. Sobre todo su
utilización para la identificación de sistemas, se queda solo en soluciones teóricas,
que ahora se plasmarán prácticamente.

Esto es solo el principio de un proyecto que puede dar mucho de si, en un presente
y en un futuro. Se trata de copiar el funcionamiento de circuitos, sin importarnos la
composición de dicho circuito, un amplio abanico de posibilidades, con una sola red.

Hasta el momento este tipo de circuitos se ha utilizado para aplicaciones concretas


como puede ser el control de servosistemas no lineales, debido a la dificultad de
dichos controles sobre todo de cálculos.

En conclusión un pequeño paso al futuro.

José Luis Casas Martínez -1-


Red neuronal para identificación automática de sistemas 2 -Motivación y justificación

2 Motivación y justificación

La Red Neuronal para la identificación automática de sistemas, es un proyecto final


de carrera del plan de estudios 2002, en la especialidad de electrónica industrial
dentro de la especialización Automatización y control de procesos.

Un identificador es un dispositivo que tiene la función de hacer que tanto su señal de


entrada como su respuesta sean o parezcan idénticas. La función de dicho
identificador en el caso que se presenta, tal como se ha comentado, realiza la
función de copiar la respuesta de un cuadripolo tanto proporcional como de primer
orden, el cual es sometido a una excitación exterior, tratando al sistema a copiar
como una caja negra, la cual no conocemos ni su composición ni su respuesta a la
excitación exterior. El mecanismo encargado de copiar el funcionamiento del
cuadripolo, es una red neuronal entrenada con un algoritmo de entrenamiento
específico. Los parámetros de entrada, de dicha red, son la entrada y salida del
cuadripolo. Y como referencia, para que la red calcule el error que está cometiendo,
se toma la diferencia entre la salida de la red y la salida del cuadripolo.

Una vez se da por concluido el aprendizaje, el sistema identificador, será capaz de


reproducir la respuesta, si la entrada del dispositivo identificador es la señal de
entrada con la cual se ha entrenado la red.

Los parámetros de entrada, conocidos en el mundo de las redes neuronales como


patrones, y los de salida denominados objetivos, son almacenados en forma de tabla
antes de empezar el entrenamiento, de forma que se pueda procesar la información
para el entrenamiento.

José Luis Casas Martínez -2-


Red neuronal para identificación automática de sistemas 2 -Motivación y justificación

Fig. 2.1 Estructura de la conexión de la Red Neuronal al cuadripolo

El interface con el usuario, se hará a través de un display LCD y 4 pulsadores,


donde el usuario podrá seleccionar los diferentes parámetros para el entrenamiento
de la red neuronal, y ver los resultados de dicho entrenamiento, para comprobar que
el entrenamiento se está realizando convenientemente.

Una comunicación serie RS-232, con el PC, completa la información que se recibe
por el display.

José Luis Casas Martínez -3-


Red neuronal para identificación automática de sistemas 3-Descripción del problema

3 Descripción del problema

3.1 Red Neuronal

El problema con el que se trata en el siguiente proyecto, es el de copiar el


funcionamiento de cualquier cuadripolo, proporcional o de primer orden, sea cual
sea su composición, el cual puede tener respuestas lineales, no lineales,
exponenciales... Para ello se propone implementar una red neuronal, la cual
mediante el aprendizaje del modelo directo o inverso del cuadripolo, sea capaz de
responder de igual manera a las excitaciones de entrada a la que es sometido el
cuadripolo.

Fig. 3.1 (A) Modelo directo y (B) Modelo inverso

Utilizando la estructura del modelo directo, como se ha comentado en el capítulo 2,


la red por ella sola será capaz de mostrar la respuesta que hubiera dado el
cuadripolo a una entrada concreta, las cuales anteriormente se han de haber
enseñado a la red. Se ha de tener en cuenta a la hora del entrenamiento que, la
variable de entrada (Salida de la red neuronal), ha de ser el valor anterior de la
salida de la red neuronal, ya que a la hora de poner la estructura final, como se
muestra en la Fig. 3.2, al realimentar la salida a una de las entradas, el valor que ve
la Red Neuronal para calcular la próxima salida, es siempre el valor anterior de dicha
salida. La estructura final quedaría de la siguiente manera:

José Luis Casas Martínez -4-


Red neuronal para identificación automática de sistemas 3-Descripción del problema

Fig. 3.2 Estructura final con la red entrenada en modelo directo

Si se utiliza como opción el modelo inverso del cuadripolo, lo que conseguimos, es


una estructura que nos realice una función de control, en serie sobre dicho
cuadripolo. Es decir, una vez se tiene entrenado el modelo inverso (contando que al
estar realimentada la señal de salida de la red, se ha de entrenar con su valor
anterior en una de las entradas), se coloca en serie con el cuadripolo, e
introduciendo por una entrada la salida del cuadripolo y por otra la realimentación de
la salida de la red, se obtiene a la salida de la red, la señal de entrada del cuadripolo
que se le haya enseñado, tal como muestra la Fig. 3.3.

Fig. 3.3 Estructura final con la red entrenada en modelo inverso

De las dos opciones, se pude seccionar que tipo de entrenamiento se desea realizar
de los dos modelos, enseñando por display como disminuye el error en cada uno de
los modelos, una vez entrenados se podrá utilizar el que más convenga a las
necesidades del usuario. En un principio no se puede saber que número de
neuronas enterradas, se deben utilizar para encontrar la solución, así de esta
manera, la Red hace diferentes entrenamientos desde un número de capas
enterradas mínimo, a un número máximo. La solución escogida es el mejor resultado
de todos los entrenamientos.

José Luis Casas Martínez -5-


Red neuronal para identificación automática de sistemas 3-Descripción del problema

Dentro del campo de las redes neuronales hay diferentes estructuras para la
identificación de sistemas [1], para el caso que se presenta, se han hecho pruebas
sobre tres tipos de estructuras diferentes:

3.1.1 Red Backpropagation

La backpropagation típica, entrenada con el algoritmo “feed-forward with fast


backpropagation”, donde la velocidad de aprendizaje es variable según van pasando
las Epoch's, y dependiente de si el valor del error aumenta o disminuye.

Su funcionamiento es correcto, con según que funciones, aunque bastante variable


en su resultado, si no se consigue llegar al error mínimo, cosa no asegurada con
este tipo de entrenamiento.

No se realizó ningún tipo de ensayo más con este tipo de Red, aunque se puede
descartar de su implementación en el PIC, ya que los resultados no hubiesen sido
óptimos.

3.1.2 Red Elman

Una de las soluciones para la realización del identificador, y primera utilizada en los
ensayos es una Red Elman.

Con este tipo de Red es posible identificar, todos los circuitos de orden 0, es decir
circuitos resistivo puros o junto a algún semiconductor. Así como circuitos de orden
1, circuito RC y RL.

1
G( s ) = k G( s ) =
as + 1

Los ensayos son de una Red RC, con una señal cuadrada como entrada y con una
señal senoidal como entrada.

En las primeras simulaciones que se realizaron, se trabajó con Matlab, para ver el
comportamiento que tenía la Red, en el entrenamiento de dichos ensayos. Los
resultados de las redes quedan expuestos dentro del capítulo 8.

José Luis Casas Martínez -6-


Red neuronal para identificación automática de sistemas 3-Descripción del problema

Pero el objetivo del proyecto no es realizar la identificación mediante PC, sino que el
entrenamiento se realiza dentro del PIC 18F452. Se ha de mencionar que Matlab a
la hora del cálculo, trabaja con una serie de decimales, que a la hora de simular el
mismo entrenamiento en el PIC, consumiría demasiados recursos. Sobre estas
consideraciones, posteriormente se volvieron a repetir las mismas simulaciones,
pero esta vez reduciendo el número de decimales para el cálculo.

En cuanto a forma de entrenamiento de la Red, dos han sido los métodos utilizados:

- El primer método, actualiza los pesos y polarizaciones, cuando la Red había


presentado todos los patrones de entrenamiento (1 epoch). Varias eran las
particularidades de este entrenamiento:

§ Velocidad de aprendizaje variable en función del error, la cual acelera el


proceso de aprendizaje, pero no asegura que la función llegue al mínimo
global. Así si la Red entra dentro de un mínimo local imposibilita su correcto
entrenamiento.

§ Parámetro momentum, es una manera de acelerar la convergencia del error


hacía el mínimo de la función. Consiste en sumar al cambio de pesos que se
lleva acabo en la fase de actualización, el valor de variación, más una fracción
del valor de variación anterior.

§ Variaciones de pesos y polarizaciones solo si el error cuadrático en el epoch


actual es menor que el error cuadrático del epoch anterior.

- El otro tipo de entrenamiento sobre la Red Elman, es actualizar los pesos y


polarizaciones en cada patrón, independientemente que el error aumente o
disminuya. Con este tipo de entrenamiento se puede obtener un resultado
aceptable con una velocidad de aprendizaje fija. Pero en este caso no se puede
asegurar que el error obtenido, sea el error mínimo de la función, porque cabe la
posibilidad de entrar dentro de un error local, y al tener una velocidad de
aprendizaje fija no pueda salir de este.

José Luis Casas Martínez -7-


Red neuronal para identificación automática de sistemas 3-Descripción del problema

Otro inconveniente de utilizar la velocidad de aprendizaje fija, es que con el


propósito de alcanzar un error determinado, demasiado pequeño, llega un
momento en que la Red en lugar de aprender, comienza a memorizar los
patrones.

Este fenómeno se denomina sobreaprendizaje, y su repercusión en el resultado


final es que se aleja de lo esperado. Por lo tanto cuando se detecta este
momento, fácil de detectar ya que el error aumenta en vez de disminuir, se debe
parar el entrenamiento.

Fig. 3.4 Ejemplo de memorización de la Red

Aunque la mejor manera de sacarle partido a este tipo de entrenamiento, es utilizar


una velocidad de aprendizaje variable de un valor prefijado a 0, en un determinado
número de epoch’s, y repetir hasta llegar al número de epoch’s máximo o llegar al
error deseado.

Fig. 3.5 Entrenamiento con lr variable

José Luis Casas Martínez -8-


Red neuronal para identificación automática de sistemas 3-Descripción del problema

Con este método la Red es capaz de salir de errores locales y dirigirse hacía
el error mínimo de la función. Las diferentes “sacudidas”, a que es sometida la
Red cada cierto número de epoch’s, hace que el error aumente para luego
bajar hacía un error menor.

Conclusión: Este tipo de Red tiene mejores resultados en circuitos de primer orden,
donde se pretende obtener la respuesta de un circuito en a un amplio margen de
frecuencias. Pero al no poder representar este tipo de ensayos físicamente, y en otro
tipo de ensayos la Red Jordan es más rápida en cuanto a cálculo y sus resultados
son similares, la Red Elman se descarta para su implementación dentro del PIC.

3.1.3 Red Jordan

La Red Jordan se diferencia a la anterior, en que en vez de tomar la realimentación


de la salida de las capas enterradas, se toma de la salida de la propia Red.
Principalmente una de las ventajas por la que se a elegido este tipo de Red, como
se comentó anteriormente, es por el ahorro de tiempo de cálculo y que respecto a la
Red Elman es más rápida a la hora de la simulación.

El tipo de entrenamiento que se lleva a cabo es el backpropagation con velocidad de


aprendizaje variable, de un número máximo de epoch’s a 0, durante un número
determinado de epoch’s.

También se tiene en cuenta el no llegar al sobreaprendizaje, parando el


entrenamiento si durante 6 pasos por 0 de la velocidad de aprendizaje, el error
actual no es menor que el anterior.

Se escoge este tipo de entrenamiento, porque con ningún otro explicado


anteriormente, hay posibilidad de salir de los errores locales, y difícilmente se
llegaría al error mínimo de la función.

Dentro del capítulo 8, se verán todas las simulaciones con esta Red.

José Luis Casas Martínez -9-


Red neuronal para identificación automática de sistemas 3-Descripción del problema

3.1.4 Función de transferencia

Si el lector está familiarizado con el mundo de las redes neuronales, sabrá que
después de cada capa el resultado denominado Entrada Neta, pasa por una función
de transferencia para dar el resultado final.

En este caso, se utilizan dos funciones de transferencia diferentes:

- tangente sigmoidal
- Lineal

Con la función lineal no hay ningún problema, ya que el Net input es igual al
resultado final, pero en el caso de la tangente sigmoidal, la función que la define es
la siguiente:

2
n= −1
(1 + e − 2· NI )
Como se ve en la función, tiene un factor exponencial, bastante largo de programar
en el PIC. Se intentó hacer una tabla con diferentes valores de la función de salida,
es decir que para una serie de valores de entrada, tendría la misma salida:

Fig. 3.6 Valores de la tabla

En el caso de la figura: De 0-a à 0


De a-b à f
De b-c à e ...

José Luis Casas Martínez - 10 -


Red neuronal para identificación automática de sistemas 3-Descripción del problema

Pero los resultados obtenidos en el entrenamiento, no se aproximan en nada a los


obtenidos con la función original. Por eso se buscó la alternativa de dividir la función,
en varios tramos lineales. En el caso que se propone se dividió en cinco partes.

Fig. 3.7 Función tangente sigmoidal linealizada

En la figura solo sale representada la parte de valores positivos de la función, para


los valores negativos solo hay que cambiar el signo del resultado.

El resultado de la linealización, queda descrito por cinco fórmulas, que son la


regresión lineal de los tramos delimitados.

F1à Para valores de entrada de 0 a 0,525 Y = 0,9237 * NIY + 0,0086

F2à Para valores de entrada de 0,525 a 0,87 Y = 0,6351 * NIY + 0,15603

F3à Para valores de entrada de 0,87 a 1,2 Y = 0,3982 * NIY + 0,36101

F4à Para valores de entrada de 1,2 a 1,6 Y = 0,2175 * NIY + 0,5783

F5à Para valores de entrada de 1,6 a 2,4 Y = 0,0729 * NIY + 0,81435

F6à Para valores de entrada superiores a 2,4 Y =1

José Luis Casas Martínez - 11 -


Red neuronal para identificación automática de sistemas 3-Descripción del problema

Comparando los resultados obtenidos en los entrenamientos con esta función, y los
de la función original, son muy similares. A continuación se presenta una serie de
valores de entrada, para que se pueda comprobar que los valores de salida que se
obtienen tanto con una función como con otra son similares:

Entrada Salida función orig. Salida función lin.


1 0.25 0,245 0,239
2 0.97 0,749 0,772
3 1.56 0,915 0,917

Fig. 3.8 Función resultante de la linealización

Mediante Matlab, se ha simulado la función de transferencia y el resultado es el


mostrado en la figura anterior.

José Luis Casas Martínez - 12 -


Red neuronal para identificación automática de sistemas 3-Descripción del problema

3.2 Donde implementar la Red

Para poder implementar el algoritmo de la red neuronal se cuentan con algunas


opciones que pueden ser factibles:

3.2.1 Implementación en un PIC

Una posible solución implementar dicho algoritmo en un PIC, donde como se


explicará posteriormente, también se realiza la adquisición de datos, la gestión de la
comunicación para visualizar por display, la comunicación con el PC, y la ejecución
del sistema una vez este halla sido entrenado.

Con esta opción el sistema seria autónomo y podría trabajar sin necesidad de
incorporar ningún otro dispositivo. El inconveniente es la complejidad de cálculo que
tiene el entrenamiento de la red neuronal, bastante engorroso de implementar en el
PIC, y el no menos preocupante tiempo de cálculo de dicha Red a la hora de la
ejecución. Dicho tiempo de cálculo hace que el tiempo entre patrón y patrón sea del
orden de 0,7ms.

Inicialmente se pretendía implementar dentro del PIC 16F876 o 16F877, pero al


encontrar el problema de tiempo de cálculo, se opto por otras opciones.

- Como primera opción se consideró, colocar un pequeño PIC que solo haga de
multiplicador, junto con el mismo 16F877. Existe la serie 18F1x20 con 18
patillas, el cual incorpora una instrucción de multiplicación de 8 bits, que
acelera el proceso de calculo de una manera considerable. De esta manera y
utilizando el puerto B del PIC libre, y el puerto E, como control, se tiene un
multiplicador externo que solventa en parte el problema.

- Otra solución que tiene más ventajas que inconvenientes, es cambiar el PIC
16F877, por un 18F452, también de 40 patillas y con una estructura interna
muy similar al anterior, con la ventaja de tener la instrucción de multiplicación
mencionada anteriormente, con lo cual ya no se ha de colocar el multiplicador
auxiliar.

José Luis Casas Martínez - 13 -


Red neuronal para identificación automática de sistemas 3-Descripción del problema

A parte, otra ventaja del cambio es el aumento de memoria RAM que supone.
Se pasa de tener 368 bytes a 1536 bytes, con lo cual se evita colocar otro
chip adicional de memoria RAM, que posiblemente hubiera sido necesario por
la gran cantidad de datos a almacenar.

Y la más importante, que todo lo diseñado anteriormente es válido, ya que el


cambio de PIC no afecta en prácticamente nada, el circuito final diseñado con
anterioridad.

Como se verá más adelante, el excesivo tiempo de cálculo impide que la Red
físicamente sea incapaz de identificar según que respuestas.

3.2.2 Implementación del entrenamiento en un PC

Otra solución que aceleraría, lo que es el entrenamiento de la Red, es utilizando el


mismo PIC, pero esta vez para enviar los datos, necesarios para el entrenamiento,
de forma serie al PC, y así de esta manera utilizar toda la potencia de este, en los
cálculos que se han de realizar en el aprendizaje. Al finalizar el aprendizaje el PC
retorna los datos de los pesos y polarizaciones obtenidos, con los que quedará
constituida la red neuronal. Las ventajas son que se acelera considerablemente el
tiempo que tarda en entrenar la Red, pero el sistema deja de ser autónomo y no se
soluciona el problema importante el excesivo tiempo de ejecución, que sigue
ejecutando el mismo PIC.

José Luis Casas Martínez - 14 -


Red neuronal para identificación automática de sistemas 3-Descripción del problema

3.3 Adquisición de datos

Para recoger los valores tanto de la entrada como de la salida del cuadripolo,
contamos con las dos señales físicas de forma analógica. La solución es utilizar un
convertidor A/D, que como se muestra en el apartado 4.2, el PIC18F452 lleva
incorporado uno internamente. Se irán tomando valores y guardando en la memoria
RAM, en forma de tabla, los cuales servirán luego para el entrenamiento de la Red.

Se ha de comentar que al disponer solo de un convertidor, los valores de entrada y


de salida estarán desfasados un tiempo mínimo, que será igual al tiempo de
conversión. Según fabricante aproximadamente el tiempo de conversión será de:

TCONVERSIÓN = 35µs

Como ya se ha mencionado antes, una vez el sistema esté en modo ejecución, es


decir, se adquiere un dato de entrada, la Red calcula y da su respuesta, la distancia
entre respuesta y respuesta es fija, de aprox. 0,7ms. Por lo tanto habrá que esperar
en la adquisición a tomar la siguiente pareja de valores entrada-salida del
cuadripolo, (0,7ms – 2*35µs = 630µs).

Fig. 3.9 Adquisición de dos parejas de datos

José Luis Casas Martínez - 15 -


Red neuronal para identificación automática de sistemas 3-Descripción del problema

Otro dato a tener en cuenta, es que el convertidor A/D tiene una resolución de 10
bits, lo que da para una tensión de 5V, que cada bit tiene un peso de 0,005V:

V 5V
Vbit = max
= = 0,005 V
2 Nº de bits
−1 2 −1
10

El problema que tiene trabajar con 10 bits es que, al incluir el PIC una memoria RAM
de 8 bits, y al tener la necesidad de guardar los datos para posteriormente
mostrarlos a la red para que se los aprenda, se limita el número de datos que se
pueden guardar en la memoria.

La solución que se puede tomar en este caso, para no perder espacio de


almacenamiento es truncar el dato y limitarlo a 8 bits. Al guardar el dato el
convertidor A/D, una vez acabada la conversión, lo hace en dos registros de 8 bits.
Una de las opciones que tiene el PIC para guardarlo, y la que se utilizará en el
proyecto, es la “justificación a la izquierda”:

Fig. 3.10 Justificación a la izquierda del convertidor A/D

La que se cogerá será la parte alta del resultado final, de esta manera se perderá
algo de resolución, admisible para la aplicación. La resolución resultante con 8 bits
es de 0,02V. Con los 2 bits que se eliminan, se realizará el redondeo, si su valor en
binario es mayor o igual a 2, se suma 1 a los 8 bits del resultado, pero si su valor es
menor que 2, el resultado queda como está.

Parte Alta à 54h Parte Baja à 00h Resultado à 54h


Parte Alta à 54h Parte Baja à 40h Resultado à 54h
Parte Alta à 54h Parte Baja à 80h Resultado à 55h
Parte Alta à 54h Parte Baja à C0h Resultado à 55h

José Luis Casas Martínez - 16 -


Red neuronal para identificación automática de sistemas 3-Descripción del problema

3.4 Visualización y configuración de datos

Otro apartado es el tema de visualización de los resultados y configuración de los


parámetros del entrenamiento. Para ello se dispone de la visualización por display:

• A través de un menú de opciones se pueden configurar todos los parámetros


para el entrenamiento de la red:

o Velocidad de aprendizaje
o Nº de Epoch's totales
o Error cuadrático al que se desea llegar
o Nº de capas enterradas que se desea que tenga la red

Todos estos parámetros se pueden seleccionar a través de 4 pulsadores, que


hacen la función de selección (tanto de opción, como de valor), aceptar y
cancelar. Así, con una combinación de 4 bits, se podrá mostrar al PIC la acción
que se quiere que realice.

Fig. 3.11 Muestra de los parámetros variables por el PIC

José Luis Casas Martínez - 17 -


Red neuronal para identificación automática de sistemas 3-Descripción del problema

• En el caso que se ejecute el entrenamiento, en pantalla se puede visualizar como


se va ejecutando el mismo:

o Error cuadrático que se tiene en cada momento


o Nº de epoch en la que está el entrenamiento
o Valor de la velocidad de aprendizaje

Fig. 3.12 Parámetros visualizados en el entrenamiento

• Una vez se hallan obtenido los valores digitales, tanto de la entrada como de la
salida del cuadripolo, habrá la opción de poder sacar al exterior la secuencia de
valores, tanto de la entrada como de la salida, con el fin de comprobar que los
datos recogidos son coherentes.

3.5 Salida de la Red Neuronal

Una vez configurada debidamente y entrenada la red, llegará la hora de probar su


funcionamiento. Para ello a través de la misma entrada donde se adquiría la entrada
del cuadripolo, se introducirá esta misma señal pero esta vez solo a la red. La otra
entrada estará al aire, al no necesitar ninguna entrada física de la salida de la red, si
no que la realimentación se hará a través de software. Se ejecutará la función de la
red para cada valor de entrada, por consiguiente, se obtendrá una salida para cada
entrada.

Como ya se conoce la manera de adquirir los datos de entrada, se hablará de cómo


se pasa la salida de forma digital, a forma analógica. Para ello se utilizará un
convertidor D/A, el cual junto con un montaje a través de un Amplificador operacional
(I/V), nos dará la salida deseada. Este convertidor acepta a la entrada 8 bits, y el
resultado que se obtiene, es una corriente proporcional a los pesos del dato digital

José Luis Casas Martínez - 18 -


Red neuronal para identificación automática de sistemas 3-Descripción del problema

introducido. Y después del operacional se obtendrá siempre una señal analógica de


entre 0 y 5V, igual a la secuencia que se había enseñado a la red.

3.6 Comunicación con el PC.

Para completar el tema de visualización de los datos obtenidos, en referencia al


entrenamiento, se transmite al PC los datos tanto de los pesos como de las
polarizaciones que han sido calculadas por el algoritmo de entrenamiento. También
se visualizarán algunos datos significativos del entrenamiento (error cuadrático
conseguido y nº de capas enterradas).

3.7 Test del hardware exterior

Antes de empezar a funcionar con el circuito, el sistema incorpora una función de


test en el menú de opciones.

El menú se compone de tres partes, dos de ellas que se encargan de testear la


entrada y una la salida.

- El test de las entradas consiste, en colocar en la entrada seleccionada un


valor de tensión conocido, siempre dentro de los márgenes de trabajo, y al
pulsar la tecla aceptar, por el display LCD aparecerá el dato leído, con ello se
comprueba el funcionamiento del bloque exterior de la adquisición.

- Y el test de las salidas, a través de las teclas de selección se escoge un valor


de tensión entre 0 y 5V, una vez se tenga en pantalla el valor deseado, al
pulsar la tecla aceptar en la salida debe aparecer la tensión seleccionada. En
caso contrario, habrá que comprobar el bloque exterior.

José Luis Casas Martínez - 19 -


Red neuronal para identificación automática de sistemas 4 -Hardware

4 Hardware

4.1 Diagrama de bloques

Fig. 4.1 Diagrama de bloques del identificador

A continuación se irá detallando cada parte, del diagrama de bloques del sistema:

4.2 PIC 18F452

Es el corazón del sistema identificador, se encarga de sincronizar todas las tareas


que realiza el sistema:

- Adquisición de datos
- Visualización por display
- Comunicación con el PC
- Ejecución de la función de la Red Neuronal para obtener la salida
- Comunicación con el usuario a través de teclado

Se ha optado por la utilización del PIC 18F452, a parte de la valoración de las


características técnicas, a ayudado a la elección, los buenos resultados obtenidos en
otras aplicaciones realizadas en la EUETIB, no ya con este dispositivo
concretamente, sino de otros del mismo fabricante. Dichos resultados servirán de

José Luis Casas Martínez - 20 -


Red neuronal para identificación automática de sistemas 4 -Hardware

referencia para empezar el desarrollo de los diferentes programas. Algunas de las


características importantes para su elección en el proyecto son las siguientes:

- Integración en el mismo PIC de:

o Memoria RAM para guardar los valores adquiridos de las señales tanto
de entrada como de salida, que harán de patrones y de objetivos de la
Red Neuronal.

o Memoria EEPROM con posibilidad de escribir y borrar con la tensión


de alimentación, así como escribir y borrar cuando se esté ejecutando
el programa.

o Memoria de programa FLASH, posibilidad de borrar y volver a escribir,


pero con el programa parado.

o Un conversor A/D, útil en la aplicación del identificador, para la


adquisición de los diferentes puntos de las señales de entrada y salida
del cuadripolo.

o El dispositivo tiene internamente, programable por software, la


posibilidad de multiplicar por 4 la frecuencia de entrada de cristal de
cuarzo, así con un cristal de cuarzo de 10MHz el dispositivo trabajará a
la frecuencia de 40MHz.

- Incorpora una instrucción de multiplicación de 8 bits, útil para las operaciones


a realizar tanto en el entrenamiento, como en la ejecución.

- Se dispone de tres puertos de entrada-salida, de 8 bits, uno de 6 bits y uno de


3 bits.

o Comunicación con el Display à Puerto B


o Salida de la Red à Puerto D
o Entrada de teclado à Puerto A
o Entradas analógicas cuadripolo à Puerto A

José Luis Casas Martínez - 21 -


Red neuronal para identificación automática de sistemas 4 -Hardware

A la vista de los puertos utilizados, ¿por qué se utiliza un PIC, con dos puertos
más?, La explicación es que cabe la posibilidad de aumentar las posibilidades del
circuito en un futuro, quedando un puerto libre de ocho bits, y cuatro patitas más de
control, se puede colgar del circuito o una extensión de memoria RAM serie, o un
multiplicador exterior, que haga esta función y desahogar e PIC principal. También
es posible realizar una comunicación serie, mediante las patillas RC6 y RC7 del
puerto C, que corresponden a la comunicación serie RS-232 del PIC (Rx, Tx).

Es interesante lo comentado anteriormente, de colocar un cristal de cuarzo de


10MHz, y poder trabajar como si de un cristal de 40MHz se tratara. Ya que con esta
posibilidad, se reducen interferencias ocasionadas por una frecuencia de oscilación
del cristal muy grande.

En el siguiente cuadro se ve detalladamente con qué otras características se cuenta:

PIC 18F452
Frecuencia de operación DC-40MHz
RESETS (y retardos) POR, BOR (PWRT, OST)
RESET Instruction
Stack Full, Stack Underflow
Memoria de programa FLASH (14 bits) 32K
Memoria de datos RAM (8 bits) 1536
Memoria de datos EEPROM 256
Interrupciones 18
Puertos E/S Puertos A, B, C, D, E
Timers 4
Comunicación serie MSSP, Adressable USART
Modulo A/D de 10 bits 8 canales de entrada
Juego de instrucciones 75 instrucciones

Para más información acerca del PIC, remitirse al Anexo 1 [2], donde se encuentra
el manual de información del componente.

José Luis Casas Martínez - 22 -


Red neuronal para identificación automática de sistemas 4 -Hardware

4.3 Display 2x16

El display utilizado es el tipo PC1602F, de la casa Powertip [7], cuya información


técnica se encuentra dentro del anexo 5. Es un display estándar de 2 filas por 16
caracteres y el controlador que utiliza es un HD 44780. El display no incorpora luz
backlight, así que el consumo que tiene es muy pequeño.

Como se ha explicado en anteriores capítulos, ya se conoce la función de este en el


circuito. El dispositivo LCD se controla a través del puerto B, donde tres bits son de
control y cuatro son los bits que se utilizan para enviar datos.

Fig. 4.2 Esquema de conexión del PIC al Display

4.4 Convertidor D/A y convertidor I/V

La necesidad de tener una respuesta en forma de señal a la salida de la Red


Neuronal, hace que el resultado que se obtiene del algoritmo de la Red en forma
digital, ha de ser transformado a un valor analógico, físicamente medible con el
osciloscopio y poder ver su apariencia en forma de onda, rampa, exponencial,...
Para ello se utilizará un convertidor digital-analógico de la casa Nacional
Semiconductors [5], DAC0800. Se trata de un convertidor de 8 bits, el cual da una
corriente proporcional al número de bits activos en su entrada. Esta corriente es
transformada en tensión por un sencillo convertidor corriente-tensión, compuesto por
un amplificador operacional de bajo ruido, en montaje inversor. El tipo de
amplificador es el modelo NE5534P, de la casa Philips Semiconductors [6]. Los
información técnica, tanto del convertidor digital analógico, como del amplificador
operacional se encuentran dentro del anexo 5.

José Luis Casas Martínez - 23 -


Red neuronal para identificación automática de sistemas 4 -Hardware

Se considera esta opción, por su facilidad de montaje y rapidez de respuesta aprox.


de 100ns. El montaje estándar utilizado en el proyecto es el siguiente:

Fig. 4.3 Esquema de salida analógica de la Red

Cálculos del convertidor D/A y el convertidor I/V:

Fig. 4.4 Esquema definitivo del convertidor D/A y I/V

Por parte del convertidor D/A, su corriente máxima de salida con todos los bits a
uno, se obtiene con la fórmula siguiente:

+ Vref 255
I FS = · : Io + Io = I FS
R8 + P3 256

Si se limita esta corriente de salida IFS = 1mA, se obtiene los valores de R8 y P3.

José Luis Casas Martínez - 24 -


Red neuronal para identificación automática de sistemas 4 -Hardware

+ Vref 255 + 5 255


R8 + P3 = · = · = 4980kΩ
I FS 256 1·10−3 256

R8 = 4 k 9Ω P3 = 200Ω

R9 ≈ R8 + P3 = 4k 9Ω

En cuanto al amplificador inversor, se tiene que su salida máxima será de 5V, por lo
tanto R12+P4:

Fig. 4.5 Esquema del convertidor I/V

Vout 5v
P 4 + R12 = = = 5k Ω
I FS 1·10 − 3

R12 = 4k 9Ω P4 = 200Ω R13 = R10 = R12 + P4 = 4k 9Ω

Para el cálculo del filtro de salida, se coge como frecuencia de corte la frecuencia de
muestreo de la Red à 0,7ms

Para tener una impedancia de salida baja, se escoge una resistencia de valor bajo:

1 1
Rà 50Ω fcà 1500Hz C= = = 2µF
2·π·R· fc 2·π·50·1500

José Luis Casas Martínez - 25 -


Red neuronal para identificación automática de sistemas 4 -Hardware

4.5 Teclado 2x2

El teclado incorpora 4 teclas, las cuales están conectadas de forma matricial:

Fig. 4.6 Esquema del teclado

El teclado funciona de la siguiente manera, todas las teclas se cuentan como activas
cuando en la entrada del PIC, este ve un 0. Por lo tanto la secuencia es la siguiente.

Primero se lee el estado del puerto A, y se comprueba patilla por patilla a ver si hay
alguna a 0, en caso afirmativo el dispositivo identifica cual es y actúa en
consecuencia. Internamente hay retardos para evitar, que no se ejecuten acciones
que no se desean.

Tecla Nº Tecla Nº Tecla Nº Tecla Nº


Cancelar 1 Aceptar 2 Subir 3 Bajar 4

Fig. 4.7 Ubicación del teclado en el C.I.

José Luis Casas Martínez - 26 -


Red neuronal para identificación automática de sistemas 4 -Hardware

4.6 Circuito de adquisición

El circuito de adquisición de señal para el convertidor A/D está compuesto por un


seguidor de tensión de entrada, el filtro anti-ruido, un limitador de tensión tanto
positiva como negativa, y otro seguidor para tener en la entrada del convertidor A/D
la impedancia recomendada por el fabricante.

Fig. 4.8 Esquema de adquisición de datos

Los amplificadores operacionales utilizados para la realización de los seguidores de


tensión son del modelo NE5534P, de la casa Philips Semiconductors [6], con los que
se ha obtenido un buen resultado en la realización del convertidor corriente-tensión,
en la parte de salida del circuito. Como se comento anteriormente, para más
información, el informe de características técnicas del componente se encuentra
dentro del anexo 5.

Primero para poder realizar la adquisición, se ha tenido en cuenta el no alterar el


circuito del cual se extraerán los datos. Para ello se conectará, dicha señal a la
entrada de un seguidor de tensión, realizado con un operacional. Con la inclusión de
este seguidor se obtiene una impedancia de entrada muy alta, del orden de 106Ω,
con lo cual, la adquisición de datos no afectará en nada el funcionamiento del
cuadripolo a muestrear.

La misión del zener es que la entrada que se introduce al PIC, no supere los 5V, y el
diodo mismo diodo zener, limita la entrada negativa a –0,5V. Con estos valores se
cumple los requisitos del fabricante.

José Luis Casas Martínez - 27 -


Red neuronal para identificación automática de sistemas 4 -Hardware

Fig. 4.9 Esquema interno de una entrada analógica

Como segundo bloque de la adquisición de datos, se tiene el filtro para ruido e


interferencias. Se trata de un filtro de primer orden RC. Al cual se ha calculado la
frecuencia de corte a 1500Hz, ya que la frecuencia de muestreo de la Red Neuronal,
puede llegar a esta frecuencia.

Se ha de comentar que la impedancia, que vea el PIC, de este sistema de


adquisición es muy importante que sea estable, ya que el tiempo de adquisición
depende en parte de esta impedancia, y si esta varía según el circuito que
conectemos a la entrada del sistema de adquisición nunca tendremos un tiempo de
adquisición de datos constantes. El valor recomendado por el fabricante de dicha
impedancia es de 2.5kΩ.

Para ello con el montaje que se ha realizado, sea cual sea, el circuito conectado a la
entrada, la impedancia que verá el PIC, será el valor de 2,5kΩ, resistencia que hay
en la salida del segundo seguidor de tensión.

Por último para el cálculo del filtro RC, tomamos como valor del condensador 0,1µF

fc = 1500 Hz

1 1
R= = = 1100Ω ⇒ 1k 2Ω
2·π· fc·C 2·π·1500·0,1·10 − 6

José Luis Casas Martínez - 28 -


Red neuronal para identificación automática de sistemas 4 -Hardware

4.7 Comunicación serie (MAX 232)

En la comunicación serie se tiene la posibilidad, a través del puerto C del PIC, de


comunicarse en protocolo RS-232, configurable a través de software, con el PC.
Aunque el único inconveniente es que tanto el PIC, como el PC, trabajan a tensiones
diferentes. Una de las posibles soluciones, y la cual se ha utilizado en el proyecto, es
colocar el integrado MAX-232, de la casa Maxim [10].

Este integrado tiene la particularidad de adaptar la tensión de salida tanto del PIC,
como del PC, para que al llegar a cada una de las entradas, estas estén dentro de
los márgenes permitidos. Es una solución fácil y de bajo coste.

Fig. 4.10 Transmisión entre el PIC y el PC

Para más información sobre el integrado MAX-232, ver el catálogo del fabricante, en
el anexo 5.

José Luis Casas Martínez - 29 -


Red neuronal para identificación automática de sistemas 4 -Hardware

4.8 Fuente de alimentación

La fuente de alimentación que se utiliza en el diseño, está constituida por el bloque


de rectificación, filtraje y estabilización final a través del regulador de tensión
LM7805 o similar, para la tensión de 5V, y dos reguladores simétricos de ±12V, el
7812 y el 7912

Fig. 4.11 Diagrama de bloques de la fuente de alimentación de 5V

Fig. 4.12 Diagrama de bloques de la fuente simétrica de ± 12V

Para más información acerca de los controladores de la serie 78xx y 79xx consultar
los catálogos del fabricante, en el anexo 5 [8],[9].

José Luis Casas Martínez - 30 -


Red neuronal para identificación automática de sistemas 4 -Hardware

4.9 Características del sistema

Para empezar a hablar de las características del sistema, se empezará a hablar del
bloque de entrada.

En el bloque de entrada, hay unas ciertas limitaciones tanto de tensión, como de


frecuencia, debido al filtro y al zener de entrada. Propiciado obviamente por los
niveles de trabajo del microcontrolador.

Mínima Máxima Valor


Tensión de entrada -0.5 5.1 (V)
Frecuencia de entrada 0 1500 (Hz)

Como se ha comentado en algún otro apartado, el tiempo de muestreo está entre


diferentes valores que van de 0,7ms a 1,5ms, de ahí el límite de frecuencia a la cual
el sistema puede trabajar. El sistema podrá reproducir señales con un slew-rate
menor o igual a à 1,6· 10-3V/µs si su frecuencia de muestreo es de 1,5ms

3,5· 10-3V/µs si su frecuencia de muestreo es de 0,7ms

Como se comentó en el apartado 3.3, el retraso entre la adquisición de la entrada


Vin1 y la entrada Vin2 es de unos 35µs. Este retraso junto al tiempo de muestreo y
el retardo del convertidor D/A (100ns), es el desfase entre lo que sería la señal
original de salida del cuadripolo y la salida de la Red, siempre y cuando se
desprecien los desfases de los filtros de entrada y de salida, ya que ha frecuencias
bajas su valor es despreciable. Toda variación de este tiempo es debido al error que
la Red comete al reproducir la función original.

Retardo = Tiempo de muestreo + Retardo convertidor D/A + retardo de adquisición

Retardo = Tiempo de muestreo + 35,1µs

José Luis Casas Martínez - 31 -


Red neuronal para identificación automática de sistemas 4 -Hardware

A continuación se muestra el margen de valores, que pueden tomar los diferentes


parámetros de la Red Neuronal.

Mínimo Máximo
Velocidad de aprendizaje 0,008 0,1
Nº de capas enterradas 2 15
Nº de epoch’s 100 9900
Error mínimo 0,001 0,1
Nº de muestras a adquirir 2 254

Como características de salida, en cuanto a niveles de tensión y rango de frecuencia


de trabajo, son las siguientes:

Mínima Máxima Valor


Tensión de salida 0 5 (V)
Frecuencia de salida 0 1500 (Hz)

José Luis Casas Martínez - 32 -


Red neuronal para identificación automática d e sistemas 5 -Software

5 Software

5.1 Lista de programas

La lista de programas a utilizados para la realización del PFC:

- Como simulador del PIC, el programa que se utilizará es el MP-Lab,


disponible en la página web del fabricante del PIC 18F452 [3].

- Como programa para las pruebas de la Red Neuronal, se utilizará MATLAB,


donde utilizando sus toolbox sobre Redes Neuronales, se verá si la Red es
capaz de copiar el funcionamiento del cuadripolo.

5.2 Pseudocódigo

5.2.1 Programa principal

Inicio secuencia
Iniciar_PIC; {Desactivar interrupciones, watchdog, puertos I/O}
Borrar puertos
Inicializar_Red {Iniciar los datos por defecto de la Red Neuronal}
Iniciar_LCD {LCD con 4 bits de datos}
visualizar_LCDà 1ª línea (ENTRENAMIENTO); 2ª línea (EJECUTAR);
opción=entrenar; {Opción por defecto entrenamiento}
Repetir
Mirar_tecla
Si ((tecla=subir)&(opción=entrenamiento) o(tecla=bajar)&(opción=opciones))
entonces
visualizar_LCDà 1ª línea (EJUCUTAR); 2ª línea (OPCIONES);
opción=ejecutar; {Se elige la opción de ejecutar}
Fin_si
Si ((tecla=subir)&(opción=ejecutar)o(tecla=bajar)&(opción=adquisición))
entonces
visualizar_LCDà 1ª línea (OPCIONES); 2ª línea (ADQUISICION);
opción=opciones {Se elige la opción de opciones}

José Luis Casas Martínez - 33 -


Red neuronal para identificación automática d e sistemas 5 -Software

Fin_si
Si ((tecla=subir)&(opción=opciones)o(tecla=bajar)&(opción=test))
entonces
visualizar_LCDà 1ª línea (ADQUISICION); 2ª línea (TEST I/O);
opción=adquisición {Se elige la opción de adquisición}
Fin_si
Si ((tecla=subir)&(opción=adquisición)o(tecla=bajar)&(opción=entrenamiento))
entonces
visualizar_LCDà 1ª línea (TEST I/O); 2ª línea (ENTRENAMIENTO);
opción=test {Se elige la opción de ejecutar}
Fin_si
Si ((tecla=subir)&(opción=test)o(tecla=bajar)&(opción=ejecutar))
entonces
visualizar_LCDà 1ª línea (ENTRENAMIENTO); 2ª línea (EJECUTAR);
opción=entrenamiento {Se elige la opción de ejecutar}
Fin_si
Repetir hasta que (tecla=aceptar)
Si tecla=aceptar entonces
Si opción=entrenamiento entonces Ejecutar Programa entrenar;
Fin_si
Si opción=ejecutar entonces Ejecutar Programa ejecutar;
Fin_si
Si opción=opciones entonces Ejecutar Programa opciones;
Fin_si
Si opción=adquisición entonces Ejecutar Programa adqusición;
Fin_si
Si opción=test entonces Ejecutar Programa test;
Fin_si
Fin_secuencia

José Luis Casas Martínez - 34 -


Red neuronal para identificación automática d e sistemas 5 -Software

5.2.2 Programa entrenamiento

Inicio secuencia
Desde i=nº enterradas mínimo hasta nº enterradas máximo
Iniciar_Pesos {Inicializar según el número de capas enterradas
los valores de los pesos y polarizaciones}
Iniciar_velocidad_de_aprendizaje
Iniciar_nº_de_epoch’s_actual
Iniciar_error_actual
visualizar_LCDà 1ª línea (Nº de epoch, Velocidad de aprendizaje);
2ª línea (Error actual);
Desde a=1 hasta epoch máximo/100
Desde 1 hasta 100
Mirar_tecla
Si error actual<error consigna o tecla=cancelar
Entonces acabar entrenamiento
Fin_si
Programa Red Neuronal
LR=LR-LRoriginal/100
Fin_desde
Fin_desde
Si Error obtenido< Error red anterior {Se comparan los resultados de cada
entrenamiento, con las diferentes
capas enterradas}
Entonces guardar pesos en EEPROM.
Fin_si
Fin_desde
visualizar_LCDà 1ª línea (SOLUCION, Nº de capas enterradas);
2ª línea (Error final);
Repetir
Mirar_tecla
Repetir hasta que tecla=aceptar
Fin_secuencia

José Luis Casas Martínez - 35 -


Red neuronal para identificación automática d e sistemas 5 -Software

5.2.3 Programa ejecutar

Inicio secuencia
visualizar_LCDà 1ª línea (EJECUTAR RED); 2ª línea (EJEC. ENTRADA);
opción=ejecutar red; {Opción por defecto ejecutar red}
Repetir
Mirar_tecla
Si ((tecla=subir)&(opción=ejecutar red)
o (tecla=bajar)&(opción=ejecutar salida))
entonces
visualizar_LCDà 1ª línea (EJEC. ENTRADA);
2ª línea (EJEC. SALIDA);
opción=ejecutar entrada;
Fin_si
Si ((tecla=subir)&(opción=ejecutar entrada)
o (tecla=bajar)&(opción=ejecutar red))
entonces
visualizar_LCDà 1ª línea (EJEC. SALIDA);
2ª línea (EJECUTAR RED);
opción=ejecutar salida;
Fin_si
Si ((tecla=subir)&(opción=ejecutar salida)
o (tecla=bajar)&(opción=ejecutar entrada))
entonces
visualizar_LCDà 1ª línea (EJECUTAR RED);
2ª línea (EJEC. ENTRADA);
opción=ejecutar red;
Fin_si
Repetir hasta que (tecla=aceptar)
Si tecla=aceptar entonces
Si opción= ejecutar red entonces
Ejecutar Programa ejecutar red;
Fin_si

José Luis Casas Martínez - 36 -


Red neuronal para identificación automática d e sistemas 5 -Software

Si opción=ejecutar entrada entonces


Ejecutar Programa ejecutar entrada;
Fin_si
Si opción=ejecutar salida entonces
Ejecutar Programa ejecutar salida;
Fin_si
Fin_secuencia

5.2.4 Programa ejecutar red

Inicio secuencia
Repetir
Iniciar cuenta de 1 milisegundo
Iniciar_CAD {Inicializar convertidor y pasar a entradas
analógicas PA0 y PA1}
Convertir dato entrada 1;
Función Red Neuronal (Dato entrada 1);
Espera hasta que cuenta 1 milisegundo acabe
EntradasA_digitales {Pasar las entradas del puerto A, todas a digitales}
Mirar_tecla
Repetir hasta que (tecla=cancelar)
Si tecla=cancelar entonces
Volver Programa principal;
Fin_si
Fin_secuencia

5.2.5 Programa ejecutar entrada

Inicio secuencia
Repetir
Desde n=1 hasta patrón máximo+1
Iniciar cuenta de 1 milisegundo
PuertoD=Patrón(n,Entrada)
Espera hasta que cuenta 1 milisegundo acabe

José Luis Casas Martínez - 37 -


Red neuronal para identificación automática d e sistemas 5 -Software

Fin_desde
Mirar_tecla
Repetir hasta que (tecla=cancelar)
Si tecla=cancelar entonces
Volver Programa principal;
Fin_si
Fin_secuencia

5.2.6 Programa ejecutar salida

Inicio secuencia
Repetir
Desde n=1 hasta patrón máximo+1
Iniciar cuenta de 1 milisegundo
PuertoD=Patrón(n,Salida)
Espera hasta que cuenta 1 milisegundo acabe
Fin_desde
Mirar_tecla
Repetir hasta que (tecla=cancelar)
Si tecla=cancelar entonces Volver Programa principal;
Fin_si
Fin_secuencia

5.2.7 Programa Opciones

visualizar_LCDà 1ª línea (VEL. APRENDIZ.);


2ª línea (ENTERRADAS MAX);
opción=lr; {Opción por defecto lr}
Repetir
Mirar_tecla
Si ((tecla=subir)&(opción=lr) o(tecla=bajar)&(opción=entmin))
entonces
visualizar_LCDà 1ª línea (ENTERRADAS MAX);
2ª línea (ENTERRADAS MIN);

José Luis Casas Martínez - 38 -


Red neuronal para identificación automática d e sistemas 5 -Software

opción=entmax;
Fin_si
Si ((tecla=subir)&(opción=entmax)o(tecla=bajar)&(opción=muestras))
entonces
visualizar_LCDà 1ª línea (ENTERRADAS MIN);
2ª línea (Nº MUESTRAS);
opción=entmin
Fin_si
Si ((tecla=subir)&(opción=entmin)o(tecla=bajar)&(opción=epoch))
entonces
visualizar_LCDà 1ª línea (Nº MUESTRAS);
2ª línea (Nº EPOCHS);
opción=muestras
Fin_si
Si ((tecla=subir)&(opción=muestras)o(tecla=bajar)&(opción=error))
entonces
visualizar_LCDà 1ª línea (Nº EPOCHS);
2ª línea (ERROR MIN);
opción=epoch
Fin_si
Si ((tecla=subir)&(opción= epoch)o(tecla=bajar)&(opción=lr))
entonces
visualizar_LCDà 1ª línea (ERROR MIN);
2ª línea (VEL. APRENDIZ.);
opción=error
Fin_si
Si ((tecla=subir)&(opción=error)o(tecla=bajar)&(opción=entmax))
entonces
visualizar_LCDà 1ª línea (VEL. APRENDIZ.);
2ª línea (ENTERRADAS MAX);
opción=lr
Fin_si

José Luis Casas Martínez - 39 -


Red neuronal para identificación automática d e sistemas 5 -Software

Repetir hasta que (tecla=aceptar)


Si tecla=aceptar entonces
Si opción=lr entonces
Ejecutar Programa velocidad de aprendizaje;
Fin_si
Si opción=entmax entonces
Ejecutar Programa capas enterradas máximas;
Fin_si
Si opción=entmin entonces
Ejecutar Programa capas enterradas mínimas;
Fin_si
Si opción=muestras entonces
Ejecutar Programa número de muestras;
Fin_si
Si opción=epoch entonces
Ejecutar Programa número de epoch’s;
Fin_si
Si opción=error entonces
Ejecutar Programa error mínimo;
Fin_si
Fin_secuencia

5.2.8 Programa velocidad de aprendizaje

Inicio secuencia
Repetir
visualizar_LCDà 1ª línea (VEL. APRENDIZ.);
2ª línea (“Valor actual de lr”);
Mirar_tecla
Si tecla=aceptar
Entonces Volver al Programa Opciones
Fin_si
Si tecla=cancelar

José Luis Casas Martínez - 40 -


Red neuronal para identificación automática d e sistemas 5 -Software

Entonces Volver al Programa Opciones


Fin_si
Si tecla=subir
Entonces lr=lr+1
Fin_si
Si tecla=bajar
Entonces lr=lr-1
Fin_si
Repetir hasta que tecla= aceptar o tecla=cancelar
Fin_secuencia

5.2.9 Programa capas enterradas máximas

Inicio secuencia
Repetir
visualizar_LCDà 1ª línea (ENTERRADAS MAX);
2ª línea (“Valor actual de enterrmax”);
Mirar_tecla
Si tecla=aceptar
Entonces Volver al Programa Opciones
Fin_si
Si tecla=cancelar
Entonces Volver al Programa Opciones
Fin_si
Si tecla=subir
Entonces enterrmax=enterrmax+1
Fin_si
Si tecla=bajar
Entonces enterrmax=enterrmax-1
Fin_si
Repetir hasta que tecla= aceptar o tecla=cancelar
Fin_secuencia

José Luis Casas Martínez - 41 -


Red neuronal para identificación automática d e sistemas 5 -Software

5.2.10 Programa capas enterradas mínimas

Inicio secuencia
Repetir
visualizar_LCDà 1ª línea (ENTERRADAS MIN);
2ª línea (“Valor actual de enterrmin”);
Mirar_tecla
Si tecla=aceptar
Entonces Volver al Programa Opciones
Fin_si
Si tecla=cancelar
Entonces Volver al Programa Opciones
Fin_si
Si tecla=subir
Entonces enterrmin=enterrmin+1
Fin_si
Si tecla=bajar
Entonces enterrmin=enterrmin-1
Fin_si
Repetir hasta que tecla= aceptar o tecla=cancelar
Fin_secuencia

5.2.11 Programa número de muestras

Inicio secuencia
Repetir
visualizar_LCDà 1ª línea (Nº MUESTRAS);
2ª línea (“Valor actual de numues”);
Mirar_tecla
Si tecla=aceptar
Entonces Volver al Programa Opciones
Fin_si
Si tecla=cancelar
Entonces Volver al Programa Opciones

José Luis Casas Martínez - 42 -


Red neuronal para identificación automática d e sistemas 5 -Software

Fin_si
Si tecla=subir
Entonces numues =numues+1
Fin_si
Si tecla=bajar
Entonces numues = numues -1
Fin_si
Repetir hasta que tecla= aceptar o tecla=cancelar
Fin_secuencia

5.2.12 Programa número de epoch’s

Inicio secuencia
Repetir
visualizar_LCDà 1ª línea (Nº EPOCHS);
2ª línea (“Valor actual de epoch”);
Mirar_tecla
Si tecla=aceptar
Entonces Volver al Programa Opciones
Fin_si
Si tecla=cancelar
Entonces Volver al Programa Opciones
Fin_si
Si tecla=subir
Entonces epoch = epoch +1
Fin_si
Si tecla=bajar
Entonces epoch = epoch -1
Fin_si
Repetir hasta que tecla= aceptar o tecla=cancelar
Fin_secuencia

José Luis Casas Martínez - 43 -


Red neuronal para identificación automática d e sistemas 5 -Software

5.2.13 Programa error mínimo

Inicio secuencia
Repetir
visualizar_LCDà 1ª línea (ERROR MIN);
2ª línea (“Valor actual de sse”);
Mirar_tecla
Si tecla=aceptar
Entonces Volver al Programa Opciones
Fin_si
Si tecla=cancelar
Entonces Volver al Programa Opciones
Fin_si
Si tecla=subir
Entonces sse = sse +1
Fin_si
Si tecla=bajar
Entonces sse = sse -1
Fin_si
Repetir hasta que tecla= aceptar o tecla=cancelar
Fin_secuencia

5.2.14 Programa Adquisición

Inicio secuencia
Iniciar_CAD {Inicializar convertidor y pasar a entradas analógicas PA0 y PA1}
Desde n=1 hasta patrón máximo+1
Convertir dato entrada1;
Guardarlo en (posición entrada+(n-1));
Convertir dato entrada 2;
Guardarlo en (posición salida+(n-1));
Fin_desde
Apagar_CAD {Apagar convertidor y pasar a entradas digitales PA0 y PA1}
Fin_secuencia

José Luis Casas Martínez - 44 -


Red neuronal para identificación automática d e sistemas 5 -Software

5.2.15 Programa Red Neuronal

Inicio secuencia
Entrada2=Patrón (1,Salida)
Desde i=2 hasta patrón máximo+1
Entrada1=Patrón (i,Entrada) {Valor actual de la entrada}
Entrada2=Patrón (i-1,Salida) {Valor anterior de la salida}
Target= Patrón (i,Salida) {Valor actual de la salida}
Algoritmo Red neuronal
Fin_desde
Fin_secuencia

José Luis Casas Martínez - 45 -


Red neuronal para identificación automática d e sistemas 5 -Software

5.3 Mapa de memoria del programa

A continuación se muestra que disposición tienen en la memoria las variables más


significativas de la Red:

- Pesos y polarizaciones: se componen de los pesos y polarizaciones que van


ha ser utilizados por la Red en el entrenamiento y en la ejecución.

Dirección de memoria RAM à 0200 h - 02E3 h

- Resultados de la capa enterrada: Son los resultados después de pasar por la


función tangente sigmoidal.

Dirección de memoria RAM à0300 h - 032C h

- Muestras de la Red: son las muestras que se utilizan en el entrenamiento


para que la Red aprenda el funcionamiento.

Dirección de memoria RAM à 0100 h – 01FF h

- Nº capas enterradas, pesos y polarizaciones finales: variables guardadas en


EEPROM, que son el resultado final del entrenamiento.

Dirección de memoria EEPROM à 000 h - 0E3 h

- Parámetros de entrenamiento: las variables de los parámetros de


entrenamiento que se varían en RAM, pasan a ser fijas en la EEPROM.

Dirección de memoria EEPROM à 0F8 h - 0FF h

- Pesos y polarizaciones actuales mínimas: dentro del entrenamiento cada 100


epoch’s, se van guardando los pesos y polarizaciones, cuyo error sea menor
que el anterior. Es decir, si en el epoch 200 el valor del error cuadrático es
menor que en el del epoch 100, los valores de pesos y polarizaciones se
guardan en estas variables.

Dirección de memoria RAM à 0400 h - 04E3 h

José Luis Casas Martínez - 46 -


Red neuronal para identificación automática d e sistemas 5 -Software

Fig. 5.1 Variable en memoria RAM

Fig. 5.2 Disposición de variables en EEPROM

José Luis Casas Martínez - 47 -


Red neuronal para identificación automática d e sistemas 5 -Software

Entre las direcciones de la RAM 00 y 07F, se encuentran todas las variables


auxiliares de la Red, en las cuales se encuentran:

- el error cuadrático à SSE5:SSE0


- la velocidad de aprendizaje à LRHORIG:LRLORIG
- Nº de epochs à EPOCH
- Nº de capas enterradas máximo à ENTERRMX
- Nº de capas enterradas mínimo à ENTERRMN
- Punteros de las variables mencionadas anteriormente
- Diferentes registros para guardar tanto operandos como resultados
- Variables auxiliares

José Luis Casas Martínez - 48 -


Red neuronal para identificación automática d e sistemas 5 -Software

5.4 Representación de los datos

Como se ha comentado en capítulos anteriores, para que el entrenamiento sea


efectivo, los datos con los que se trabaja deben llevar una serie de decimales, los
cuales necesitan poder representarlo internamente dentro del PIC.

Para el caso que ocupa, se ha decidido finalmente trabajar con 4 decimales. Se


consideró la opción, de trabajar con datos en coma flotante, pero a parte de
consumir bastantes recursos, el tiempo de cálculo era excesivo y se optó por utilizar
datos en coma fija. Este tipo de datos utiliza 3 bytes para su representación, y el
tiempo de cálculo es bastante aceptable.

Forma en que se representa el número:

- El primer byte, corresponde al número entero.


- El segundo y tercer byte, corresponden a la parte decimal.

Todos los datos se componen de tres o dos bytes, dependiendo si lleva parte entera
o no, excepto la variable de error cuadrática, que al superar el rango de
representación en la parte entera, incorpora otro byte para esta.

Fig. 5.3 Dato de 3 bytes

Fig. 5.4 Dato de 4 bytes

José Luis Casas Martínez - 49 -


Red neuronal para identificación automática d e sistemas 5 -Software

El rango de representación de las variables de 3 bytes es:

- Para el número positivo à +127,9999


- Para el número negativo à -128,9999

El rango de representación de las variables de 3 bytes es:

- Para el número positivo à +32767,9999


- Para el número negativo à -32768,9999

Para que a la hora de calcular los números no fuese un quebradero de cabeza, se


realizó una tabla de Excel, Coma fija, la cual poniendo solo el valor decimal, lo pasa
a sistema binario, ya que la parte entera es bastante intuitiva pasarla a binario.

A continuación a modo de ejemplo se presentan algunas variables en base decimal,


y su correspondiente valor, en su codificación:

Número Parte entera Parte decimal Número completo


3,5643 03 90/75 03/90/75
2.1487 02 26/11 02/26/11
4.8962 04 E5/6D 04/E5/6D
0.5789 00 94/32 00/94/32
1.2496 01 3F/E5 01/3F/E5

José Luis Casas Martínez - 50 -


Red neuronal para identificación automática de sistemas 6 -Comunicación

6 Comunicaciones

El identificador de sistemas utiliza una comunicación serie RS-232, para


comunicarse con el PC. Este tipo de comunicación se realiza a través del USART
del PIC, ya que las salidas serie están ubicadas en el puerto C, libre para este tipo
de aplicaciones. Para entrar por el PC, se ha realiza o por el COM1 o el COM 2.

El interface entre el PIC y el PC, es básicamente el integrado MAX-232, comentado


en el capítulo 4, el cual se encarga únicamente de adaptar las tensiones, entre los
dos dispositivos.

Todas las simulaciones pertenecientes a la comunicación RS-232, están dentro del


Anexo 6, así como los comentarios al respecto.

José Luis Casas Martínez - 51 -


Red neuronal para identificación automática de sistemas 7 - Manual de utilización del identificador

7 Manual de utilización del identificador

En este apartado se explica la utilización del dispositivo, para que el usuario sea
capaz de utilizar el sistema con toda facilidad.

Antes de empezar la explicación de los diferentes menús, a continuación se


presenta de forma gráfica, las teclas de las que dispone el sistema y su función en el
dispositivo.

à (3) Tecla arriba; sirve tanto para irse moviendo en los menús, como
para variar los valores de los parámetros modificables.

à (4) Tecla abajo; sirve tanto para irse moviendo en los menús, como
para variar los valores de los parámetros modificables.

à (2) Tecla aceptar; Utilizada para aceptar una opción y dar la orden para
iniciar alguna secuencia.

à (1) Tecla cancelar; Sirve para cancelar selecciones, o salir de cualquier


secuencia.

7.1 Menú principal

Dentro del menú principal se encuentran las siguientes opciones:

- Entrenamiento
- Ejecutar
- Opciones
- Adquisición
- Test
- Comunicación

José Luis Casas Martínez - 52 -


Red neuronal para identificación automática de sistemas 7 - Manual de utilización del identificador

Dentro del menú para moverse en el mismo, es posible con las teclas (3) y (4), la
opción seleccionada es aquella, que en su derecha tiene el símbolo (<).

Para ejecutar cualquiera de las opciones es necesario, seleccionarla como se


describe anteriormente, y pulsar la tecla (2).

7.2 Entrenamiento

Sin ningún otro menú, según las opciones de entrenamiento que se hallan
preseleccionado, mirar opciones, y los datos adquiridos del cuadripolo, mirar
adquisición, se realizará el entrenamiento de la Red Neuronal.

Es posible acabar el entrenamiento en cualquier momento pulsando la tecla (1).

En pantalla, cuando el entrenamiento esté en ejecución, mostrará la evolución a lo


largo del número de epoch’s, de la velocidad de aprendizaje y del error cuadrático.

Una vez acabado el entrenamiento mostrará la solución obtenida, con la tecla (2), se
volverá al menú principal.

7.3 Ejecutar

Dentro del menú ejecutar se pueden encontrar las siguientes opciones:

- Ejecutar Red
- Ejecutar Entrada
- Ejecutar Salida

Dentro del menú para moverse en el mismo, es posible con las teclas (3) y (4), la
opción seleccionada es aquella, que en su derecha tiene el símbolo (<).

Para ejecutar cualquiera de las opciones es necesario, seleccionarla como se


describe anteriormente, y pulsar la tecla (2).

José Luis Casas Martínez - 53 -


Red neuronal para identificación automática de sistemas 7 - Manual de utilización del identificador

7.3.1 Ejecutar Red

Esta opción es para que una vez entrenada la Red, y con los valores de pesos
calculados, se ejecuta la Red tomando como entrada Vin1. En la salida, si el
entrenamiento hubiese sido correcto, se debería tener la respuesta esperada.

El primer mensaje que se verá antes de empezar la ejecución es (‘Pulsa aceptar


para iniciar’). Pulsando la tecla (2), se comenzará la ejecución, si por el contrario la
tecla que se pulsa, es la (1), el programa volverá al menú de Ejecutar.

Una vez iniciada la ejecución, en pantalla el mensaje que se ve en pantalla es (‘...En


Marcha’). Es posible acabar la ejecución en cualquier momento pulsando la tecla (1).

7.3.2 Ejecutar entrada

Esta opción tiene la finalidad de comprobar que valores se han adquirido, por la
entrada Vin1. En la salida del sistema, aparecerá la señal almacenada de la
adquisición de Vin1.

El primer mensaje que se verá antes de empezar la ejecución es (‘Pulsa aceptar


para iniciar’). Pulsando la tecla (2), se comenzará la ejecución, si por el contrario la
tecla que se pulsa, es la (1), el programa volverá al menú de Ejecutar.

Una vez iniciada la ejecución, en pantalla el mensaje que se ve en pantalla es (‘...En


Marcha’). Es posible acabar la ejecución en cualquier momento pulsando la tecla (1).

7.3.3 Ejecutar salida

Esta opción tiene la finalidad de comprobar que valores se han adquirido, por la
entrada Vin2. En la salida del sistema, aparecerá la señal almacenada de la
adquisición de Vin2.

El primer mensaje que se verá antes de empezar la ejecución es (‘Pulsa aceptar


para iniciar’). Pulsando la tecla (2), se comenzará la ejecución, si por el contrario la
tecla que se pulsa, es la (1), el programa volverá al menú de Ejecutar.

Una vez iniciada la ejecución, en pantalla el mensaje que se ve en pantalla es (‘...En


Marcha’). Es posible acabar la ejecución en cualquier momento pulsando la tecla (1).

José Luis Casas Martínez - 54 -


Red neuronal para identificación automática de sistemas 7 - Manual de utilización del identificador

7.4 Opciones

Dentro del menú opciones se pueden encontrar las siguientes opciones:

- Velocidad de aprendizaje
- Nº de capas enterradas máxima
- Nº de capas enterradas mínima
- Nº de muestras
- Nº de epoch’s
- Error cuadrático mínimo

Dentro del menú para moverse en el mismo, es posible con las teclas (3) y (4), la
opción seleccionada es aquella, que en su derecha tiene el símbolo (<).

Para ejecutar cualquiera de las opciones es necesario, seleccionarla como se


describe anteriormente, y pulsar la tecla (2). Con la tecla (1) se vuelve al menú
principal.

Una vez dentro de los diferentes opciones, mediante las teclas (3) y (4), se aumenta
y disminuye el valor de la opción escogida. Con la tecla (2) aceptamos el valor y con
la tecla (1) cancelamos.

7.5 Adquisición

Sin ningún otro menú, según el número de muestras escogidas en el menú


opciones, el sistema recogerá los patrones y objetivos para el entrenamiento.

El primer mensaje que se verá antes de empezar la adquisición es (‘Pulsa aceptar


para iniciar’). Pulsando la tecla (2), se comenzará la ejecución, si por el contrario la
tecla que se pulsa, es la (1), el programa volverá al menú de principal.

Una vez iniciada la adquisición, en pantalla el mensaje que se ve es (‘...En Marcha’),


y una vez finalizada el mensaje que se mostrará es (‘...OK’). Para volver al menú
principal, es necesario pulsar la tecla (2).

José Luis Casas Martínez - 55 -


Red neuronal para identificación automática de sistemas 7 - Manual de utilización del identificador

7.6 Test

Dentro del menú opciones se pueden encontrar las siguientes opciones:

- Test entrada 1
- Test entrada 2
- Test salida

Dentro del menú para moverse en el mismo, es posible con las teclas (3) y (4), la
opción seleccionada es aquella, que en su derecha tiene el símbolo (<).

Para ejecutar cualquiera de las opciones es necesario, seleccionarla como se


describe anteriormente, y pulsar la tecla (2). Con la tecla (1) se vuelve al menú
principal.

7.6.1 Test entrada 1

La opción test de entrada 1, es una opción de configuración de la etapa de


adquisición 1. Por pantalla una vez seleccionada esta opción, se mostrará el nivel de
tensión que el dispositivo recibe de la entrada física Vin1, cada vez que se pulse la
tecla (2).

Para volver al menú test, es necesario pulsar la tecla (1).

7.6.2 Test entrada 2

La opción test de entrada 2, es una opción de configuración de la etapa de


adquisición 2. Por pantalla una vez seleccionada esta opción, se mostrará el nivel de
tensión que el dispositivo recibe de la entrada física Vin2, cada vez que se pulse la
tecla (2).

Para volver al menú test, es necesario pulsar la tecla (1).

7.6.3 Test salida

La opción test de salida, es una opción de configuración de la etapa de salida. Por


pantalla una vez seleccionada esta opción, se mostrará el nivel de tensión que el
dispositivo sacará por su salida, cada vez que se pulse la tecla (2).

José Luis Casas Martínez - 56 -


Red neuronal para identificación automática de sistemas 7 - Manual de utilización del identificador

Este nivel de tensión, que aparecerá en la salida, se puede variar por medio de las
teclas (3) y (4).

Es decir, si por pantalla se tiene la tensión de 5,000 (V), hasta que la tecla (2) no se
pulse, esta tensión no aparecerá por la salida.

Para volver al menú test, es necesario pulsar la tecla (1).

7.7 Comunicación

Sin ningún otro menú, la función de esta opción es mandar al PC los valores de
pesos y polarizaciones que el sistema a encontrado como solución.

El primer mensaje que se verá antes de empezar la comunicación es (‘Pulsa aceptar


para iniciar’). Pulsando la tecla (2), se comenzará la comunicación, si por el contrario
la tecla que se pulsa, es la (1), el programa volverá al menú de principal.

Una vez iniciada la comunicación, en pantalla el mensaje que se ve es (‘...En


Marcha’), y una vez finalizada el mensaje que se mostrará es (‘...OK’). Para volver al
menú principal, es necesario pulsar la tecla (2).

José Luis Casas Martínez - 57 -


Red neuronal para identificación automática de sistemas 8 -Simulaciones

8 Simulaciones

8.1 Comparación entre las distintas redes

Desfasador R-C(entr. R-C(entr. Rectificador Barrido frec. RC


cuadrada) senoidal)
Backpropagation X X --- --- ---
2 - 14 - 1 2-8-1
Elman X X X X X
17 - 15 - 1 8-6-1 12 - 10 - 1 12 - 10 - 1 16 - 14 - 1
Jordan X X X X X
3 – 18 - 1 3-9-1 3-9-1 3 - 10 - 1 3 - 18 - 1

El cuadro anterior explica de una manera rápida cuales han sido los resultados, de
las redes utilizadas en las simulaciones.

Todas las archivos Matlab con las simulaciones, dentro del anexo 4.

8.2 Simulaciones con la Red Backpropagation

Simulaciones con una Red Backpropagation, entrenada con el algoritmo Fast-


Backpropagation.

Los parámetros de la red entrenada son los siguientes:

Nº de Epochs realizados 7608 / 10000


Error cuadrático que se desea alcanzar 0.001
Nº de capas enterradas 14
Velocidad de aprendizaje 0.02
Intervalo de muestreo 100µs

José Luis Casas Martínez - 58 -


Red neuronal para identificación automática de sistemas 8 -Simulaciones

Las señales las cuales se desea, que la Red aprenda son:

Fig. 8.1 Señales de entrada y salida del cuadripolo

Una vez realizado el entrenamiento el valor de salida que da la red, respecto del que
se le había enseñado.

Fig. 8.2 Respuesta de la Red a una entrada como la del cuadripolo

Se puede comprobar que la salida obtenida por la Red dibujada en verde, es


idéntica a la salida, que se esperaba. Por lo tanto se puede dar como bueno el
resultado.

José Luis Casas Martínez - 59 -


Red neuronal para identificación automática de sistemas 8 -Simulaciones

Que pasaría si se variase el número de capas enterradas, dejando igual los otros
parámetros. El numero de capas enterradas pasa a ser 18:

Fig. 8.3 Señal de salida de la Red errónea

Como se puede comprobar, es sensible al sobredimensionamiento, al aparecer


deformaciones de la salida, para ciertos valores de entrada.

Simulación con la misma Red, pero ahora con diferente entrada y diferente salida:

Los parámetros de la red entrenada son los siguientes:

Nº de Epochs realizados 10000 / 10000


Error cuadrático que se desea alcanzar 0.01
Nº de capas enterradas 8
Velocidad de aprendizaje 0.02
Intervalo de muestreo 100µs

José Luis Casas Martínez - 60 -


Red neuronal para identificación automática de sistemas 8 -Simulaciones

Las señales las cuales se desea que la Red aprenda, y la salida de dicha Red son
las siguientes:

Fig. 8.4 Salida de la Red respecto de la esperada

Como se puede comprobar, la salida de la Red, mantiene un error, con la salida


esperada, esto es debido a que la red es incapaz, por lo menos con el número de
Epoch's probados, de bajar el error a no mucho menos de 0,3. De todos modos, se
puede apreciar que, aunque la exactitud no sea muy buena, la reproduce bastante
bien durante todo el periodo, sin ningún valor fuera de la secuencia.

Como pruebas de la Red Backpropagation, no se han realizado ninguna más ya que


los resultados son bastante sensibles a los cambios de capas enterradas y para
según que simulaciones es imposible obtener buenos resultados con esta Red.

José Luis Casas Martínez - 61 -


Red neuronal para identificación automática de sistemas 8 -Simulaciones

8.3 Simulaciones con la Red Elman

Fig. 8.5 Red Elman

Simulación con una Red Elman, entrenada con un algoritmo de velocidad de


aprendizaje variable dependiendo de si el error aumenta o disminuye, como en el
caso e la Backpropagation.

8.3.1 Cuadripolo desfasador

Red Elman con una entrada senoidal y un desfasador en el cuadripolo.


(ElmanIaut1.m, SimelmanIaut1.m)

Fig. 8.6 Entrada senoidal y un desfasador en el cuadripolo

José Luis Casas Martínez - 62 -


Red neuronal para identificación automática de sistemas 8 -Simulaciones

Los parámetros de la red entrenada son los siguientes:

Nº de Epoch's realizados 4300 / 5000


Error cuadrático que se desea alcanzar 0.001
Nº de capas enterradas 18
Velocidad de aprendizaje 4
Intervalo de muestreo 100µs

Las señales las cuales se desea, que la Red aprenda son las mismas que en la
primera simulación realizada con la Red Backpropagation, ver Fig. 8.1

Al contrario que con la Red Backpropagation, el sobredimensionamiento de la Red


no afecta a la salida, no como en la simulación anterior.

Su respuesta es la siguiente:

Fig. 8.7 Salida de la Red Elman

En la figura se pude ver en color verde, la salida de la red, y en líneas discontinuas


azules, aunque son difíciles de ver porque está superpuesta la otra señal, se tiene la
señal que se deseaba obtener. Es un buen resultado, similar al de la otra Red con la
salvedad que el resultado no depende tanto del número de capas enterradas con las
que se entrena la Red.

José Luis Casas Martínez - 63 -


Red neuronal para identificación automática de sistemas 8 -Simulaciones

8.3.2 Cuadripolo R-C

Red Elman con una entrada escalón y una Red RC en el cuadripolo. (ElmanIaut2.m,
SimelmanIaut2.m)

Fig. 8.8 Entrada escalón y una Red RC en el cuadripolo

Los parámetros de la red entrenada son los siguientes:

Nº de Epoch's realizados 5000 / 5000


Error cuadrático que se desea alcanzar 0.01
Nº de capas enterradas 4
Velocidad de aprendizaje 0.04
Intervalo de muestreo 100 µs

Su error mínimo que alcanza con 5000 epoch's es de 0.08, y el resultado que se
obtiene, es:

Fig. 8.9 Respuesta a una entrada escalón de la Red Elman

José Luis Casas Martínez - 64 -


Red neuronal para identificación automática de sistemas 8 -Simulaciones

Una vez comprobado que el funcionamiento de la Red es bueno a una entrada


escalón, se comprueba si su funcionamiento sería correcto si la señal en vez de ser
un transitorio, fuese una señal cuadrada alterna.

Red Elman con una entrada cuadrada y una Red RC en el cuadripolo.


(ElmanIaut3.m, SimelmanIaut3.m)

Fig. 8.10 entrada cuadrada y una Red RC en el cuadripolo

Los parámetros de la red entrenada son los siguientes:

Nº de Epoch's realizados 2351 / 5000


Error cuadrático que se desea alcanzar 0.02
Nº de capas enterradas 6
Velocidad de aprendizaje 0.0001
Intervalo de muestreo 100µs

Las señales las cuales se desea, que la Red aprenda son:

Fig. 8.11 Entrada y salida teóricas de la Red RC

José Luis Casas Martínez - 65 -


Red neuronal para identificación automática de sistemas 8 -Simulaciones

Una vez realizado el entrenamiento el valor de salida que da la red, respecto del que
se le había enseñado.

Fig. 8.12 Resultado después del entrenamiento

8.3.3 Cuadripolo formado por un diodo y una resistencia

Red Elman con una entrada senoidal y una red compuesta por un Diodo y una
resistencia en el cuadripolo. (ElmanIaut4.m, SimelmanIaut4.m)

Fig. 8.13 Entrada senoidal y cuadripolo compuesto por un diodo y una resistencia

Los parámetros de la red entrenada son los siguientes:

Nº de Epoch’s realizados 5000 / 5000


Error cuadrático que se desea alcanzar 0.002
Nº de capas enterradas 8
Velocidad de aprendizaje 0.02
Intervalo de muestreo 100µs

José Luis Casas Martínez - 66 -


Red neuronal para identificación automática de sistemas 8 -Simulaciones

Las señales las cuales se desea, que la Red aprenda son:

Fig. 8.14 Entrada y salida teóricas de la Red formada por el diodo y la resistencia

Una vez realizado el entrenamiento, el valor de salida que da la red respecto del que
se le había enseñado es el siguiente:

Fig. 8.15 Resultado después del entrenamiento

José Luis Casas Martínez - 67 -


Red neuronal para identificación automática de sistemas 8 -Simulaciones

8.3.4 Cuadripolo rectificador de media onda

Red Elman con una entrada senoidal y rectificador de media onda en el cuadripolo.
(ElmanIaut5.m, SimelmanIaut5.m)

Fig. 8.16 entrada senoidal y rectificador de media onda en el cuadripolo

Los parámetros de la red entrenada son los siguientes:

Nº de Epoch's realizados 5000 / 5000


Error cuadrático que se desea alcanzar 0.02
Nº de capas enterradas 10
Velocidad de aprendizaje 0.002
Intervalo de muestreo 100µs

Las señales las cuales se desea, que la Red aprenda son:

Fig. 8.17 Entrada y salida teóricas de la Red formada por el rectificador de media onda

José Luis Casas Martínez - 68 -


Red neuronal para identificación automática de sistemas 8 -Simulaciones

Una vez realizado el entrenamiento, el valor de salida que da la red respecto del que
se le había enseñado, es el que muestra la figura siguiente:

Fig. 8.18 Resultado final después del entrenamiento

En este caso, se ha trabajado con todos los recursos disponibles del PC, una vez se
obtuvieron buenos resultados, se limitó el número de decimales con los que Matlab
trabajaba, fueron muchas las pruebas para reducir el número al máximo, y para que
a la vez el resultado que se obtuviera fuera bastante bueno. Los resultados
obtenidos se aproximan bastante a los expuestos en la simulación anterior, y el
número de decimales a utilizar es 4.

En la próxima simulación el algoritmo de entrenamiento que se utiliza, como ya se


explicó anteriormente, es el backpropagation con velocidad de aprendizaje variable
desde un valor máximo hasta cero en un número de epoch’s determinado.

José Luis Casas Martínez - 69 -


Red neuronal para identificación automática de sistemas 8 -Simulaciones

8.4 Simulaciones con la Red Jordan

En las simulaciones que se realizaron con la Red Jordan, se exponen únicamente


las simulaciones realizadas con una velocidad de aprendizaje variable en forma de
rampa descendente, de un valor prefijado (velocidad de aprendizaje máxima), hasta
0 durante 100 epoch’s. No se exponen las pruebas realizadas con el otro tipo de
aprendizaje, ya que los resultados son buenos y se aproximan a los expuestos
dentro de las simulaciones con la Red Elman. Se hace especial mención a estos
resultados que se comentarán a continuación, ya que son los resultados, de alguna
manera teóricos, de la Red a implementar dentro del PIC. Los resultados de la cual
están expuestos en el capítulo 9.

Las respuestas que obtenemos en las distintas pruebas son las siguientes:

Fig. 8.19 Red Jordan

José Luis Casas Martínez - 70 -


Red neuronal para identificación automática de sistemas 8 -Simulaciones

8.4.1 Cuadripolo RC

Cuadripolo R-C, de entrada una señal cuadrada (9 neuronas enterradas):

Velocidad de aprendizaje máxima à 0.05

Fig. 8.20 Respuesta de la Red Jordan y gráfica del error durante el entrenamiento

Los picos de la curva de error son debidos a que en este caso el valor de velocidad
de aprendizaje máximo es un poco elevado para la Red, con valores menores su
respuesta es parecida y se eliminan estos picos.

Cuadripolo R-C, con una entrada senoidal (9 neuronas de entrada):

Velocidad de aprendizaje máxima à 0.01

Fig. 8.21 Respuesta de la Red Jordan y gráfica del error durante el entrenamiento

José Luis Casas Martínez - 71 -


Red neuronal para identificación automática de sistemas 8 -Simulaciones

Cuadripolo con una condensador cargándose con una intensidad constante (8


neuronas enterradas):

Velocidad de aprendizaje máxima à 0.005

Fig. 8.22 Respuesta de la Red Jordan y gráfica del error durante el entrenamiento

8.4.2 Cuadripolo rectificador

Cuadripolo Rectificador, con señal de entrada senoidal (10 neuronas de entrada):

Velocidad de aprendizaje máxima à 0.008

Fig. 8.23 Respuesta de la Red Jordan y gráfica del error durante el entrenamiento

José Luis Casas Martínez - 72 -


Red neuronal para identificación automática de sistemas 8 -Simulaciones

8.5 Barrido en frecuencia para un sistema de primer orden R-C

8.5.1 Red Elman

La prueba que a continuación se explica, se realiza sobre una Red Elman. La


respuesta que se enseña a la red, es una respuesta a distintas frecuencias (barrido
en frecuencia), de un sistema de primer orden R-C, con una entrada senoidal.

Fig. 8.24 Cuadripolo RC

Vo( s ) 1
=
Vi( s) RCs + 1

La respuesta de este sistema de una manera teórica tiene una respuesta plana,
hasta llegar a la frecuencia de corte, donde la amplitud cae 3dB, y más allá de esta
frecuencia según va aumentando la amplitud decae del orden de 20dB por década.

La fase entre la señal de entrada y la de salida también varia según va aumentando


la frecuencia de 0 a –90º.

Concretamente en la frecuencia de corte mencionada anteriormente, el desfase


entre la entrada y la salida es de –45º.

Para las pruebas con la Red Elman, se ha fijado la constante RC a un valor de


0,004. Se calcula de una manera teórica la frecuencia de corte del circuito:

- En el dominio de la frecuencia la señal de salida queda determinada por la


siguiente función.

José Luis Casas Martínez - 73 -


Red neuronal para identificación automática de sistemas 8 -Simulaciones

 Vo( t ) 
Vo( t )
=
1
→ Argumento  =
1  Fase [arctg(− wRC ) ]
Vi(t ) RC ( jw) + 1  Vi(t ) ( RCw) 2 + 12 
 
Vi
Vo(t ) = sen ( wt + arctg(− wRC ))
( RCw) 2 + 12

- Si se conoce que en la frecuencia de corte, el desfase entre entrada y salida


es de –45º, se calcula:

1 1
arctg( − wRC ) = −45º → − wRC = tg( −45º ) → w = = = 250 rad / s
RC 0,004
w 250
w = 2πfc → fc = = = 40 Hz
2π 2π

Los patrones que se introdujeron a la Red, pertenecían a señales senoidales de


frecuencias: (20, 40, 100, 200 y 400)Hz, y amplitud de 5V.

Comentar también que las muestras se tomaban cada 250µs.

Fig. 8.25 Barrido en frecuencia de 20 a 400 Hz

Los valores de entrenamiento de la Red son:

- 14 neuronas enterradas
- Error alcanzado por la Red = 0,4
- Número de epoch’s = 5000

José Luis Casas Martínez - 74 -


Red neuronal para identificación automática de sistemas 8 -Simulaciones

Los resultados una vez acabado el entrenamiento:

------- Señal de entrada


------- Señal de salida de la Red
-.-.-.- Señal deseada

Fig. 8.26 Respuestas, con señales de entrada de 20Hz y 30Hz

Fig. 8.27 Respuestas, con señales de entrada de 40Hz y 50Hz

José Luis Casas Martínez - 75 -


Red neuronal para identificación automática de sistemas 8 -Simulaciones

Fig. 8.28 Respuestas, con señales de entrada de 60Hz y 80Hz

Fig. 8.29 Respuestas, con señales de entrada de 100Hz y 150Hz

Fig. 8.30 Respuestas, con señales de entrada de 200Hz y 300Hz

José Luis Casas Martínez - 76 -


Red neuronal para identificación automática de sistemas 8 -Simulaciones

Fig. 8.31 Respuestas, con señales de entrada de 350Hz y 400Hz

Señalar que en las simulaciones con frecuencias cercanas a los 400Hz, las
muestras que se han utilizado son muy pocas, ya que si aumentamos el número de
muestras en estas frecuencias, las muestras totales que se toman y se han de
presentar a la Red, son muchas y aumenta mucho el tiempo de entrenamiento y
para el propósito de esta simulación no eran necesarias tantas muestras.

Queda claro que con la Red Elman y aumentando el número de muestras, es capaz
de reproducir totalmente el espectro de trabajo del sistema R-C.

8.5.2 Red Jordan

Para este caso se toman las mismas variables de entrada, que ha la Red
mencionada anteriormente, Fig. 8.25. Por lo tanto queda claro el propósito de la
siguiente simulación, lo único que se varía es el tipo de Red a utilizar. Las
respuestas de la simulación son las siguientes:

Los valores de entrenamiento de la Red son:

- 18 neuronas enterradas
- Error alcanzado por la Red = 2,1
- Número de epoch’s = 9000

José Luis Casas Martínez - 77 -


Red neuronal para identificación automática de sistemas 8 -Simulaciones

------- Señal de entrada


------- Señal de salida de la Red
-.-.-.- Señal deseada

Fig. 8.32 Respuesta Red Jordan a 20Hz y 30Hz

Fig. 8.33 Respuesta Red Jordan a 40Hz y 50Hz

José Luis Casas Martínez - 78 -


Red neuronal para identificación automática de sistemas 8 -Simulaciones

Fig. 8.34 Respuesta Red Jordan a 60Hz y 80Hz

Fig. 8.35 Respuesta Red Jordan a 100Hz y 200Hz

Fig. 8.36 Respuesta Red Jordan a 100Hz y 200Hz

José Luis Casas Martínez - 79 -


Red neuronal para identificación automática de sistemas 8 -Simulaciones

Los ensayos con la Red Jordan en cuanto, a identificación en el barrido de


frecuencia, son satisfactorias, también comentar que el resultado, en frecuencias
entre 200Hz y 400Hz, se aparta tanto del resultado esperado porque se recogen
pocas muestras en estas frecuencias, ya que el tiempo de muestreo era demasiado
alto.

Aunque los resultados entre la Red Elman y la Jordan sean tan parecidos, la
diferencia está en el número de vueltas que debe de dar y en el número de capas
enterradas que utilizan para solucionar el problema.

José Luis Casas Martínez - 80 -


Red neuronal para identificación automática de sistemas 9 -Ensayos

9 Ensayos

Los ensayos realizados en la Red física, se muestran a continuación. Todas las


señales, están sacadas del capturador de imágenes del osciloscopio Hammeg,
programa gratuito, con posibilidad de bajarlo desde la página oficial del fabricante
[5].

9.1 Cuadripolo RC

El primer cuadripolo del cual se sacan los patrones de entrada y de salida es una red
RC, la cual esta excitada por una señal cuadrada, de 0 a 2V de amplitud y una
frecuencia de 20Hz:

Fig. 9.1 Cuadripolo RC

Fig. 9.2 Entrada y salida de la red RC

José Luis Casas Martínez - 81 -


Red neuronal para identificación automática de sistemas 9 -Ensayos

En la figura 9.2, se presentan lo que son las señales reales tanto de entrada, como
de salida de la Red RC. Donde:

Muestra V/div Tiempo/div


Canal I Entrada cuadripolo 1 5ms
Canal II Salida cuadripolo 1 5ms

Una vez los datos fueron adquiridos por el sistema, a un tiempo 1,5ms por pareja de
patrones. El entrenamiento tubo como resultado, un error de 0,087 y un número de
neuronas enterradas de 10. Las características de las variables de entrenamiento
fueron las siguientes:

Valor
Velocidad de aprendizaje máxima 0,04
Nº de muestras 70
Nº de epoch’s 3000

Finalmente se ejecutó la Red para ver los resultados y se obtuvo:

Fig. 9.3 Entrada de la red RC y salida de la red Neuronal

José Luis Casas Martínez - 82 -


Red neuronal para identificación automática de sistemas 9 -Ensayos

Muestra V/div Tiempo/div


Canal I Entrada cuadripolo 1 5ms
Canal II Salida Red Neuronal 1 5ms

Si se compara la señal original con, la señal de salida se comprueba claramente que


hay un desfase entre ellas, que se puede calcular como se comentaba en el
apartado 4.9, tomando como tiempo de muestreo, 1,5ms. Aun así la respuesta es
bastante aproximada, salvando las diferencia que una es una señal digital y la otra
una señal analógica.

Fig. 9.4 Salida de la red RC y salida de la red Neuronal

Muestra V/div Tiempo/div


Canal I Salida cuadripolo 1 5ms
Canal II Salida Red Neuronal 1 5ms

Ya por último y para acabar con este ensayo se muestran los resultados si se
aumenta la frecuencia de la señal de entrada. La señal de salida de la Red Neuronal
como se ve en la siguiente figura, generaliza bastante bien para frecuencias de
entrada diferentes.

José Luis Casas Martínez - 83 -


Red neuronal para identificación automática de sistemas 9 -Ensayos

Fig. 9.5 Salidas de la red RC y salidas de la red Neuronal

Muestra 1 V/div T/div Muestra 2 V/div T/div


Canal I Salida cuadripolo 1 5ms Salida cuadripolo 1 10ms
Canal II Salida Red Neuronal 1 5ms Salida Red Neuronal 1 10ms

El segundo cuadripolo del cual se sacan los patrones de entrada y de salida es


también una red RC, la cual esta excitada por una señal senoidal, de 0 a 2V de
amplitud y una frecuencia de 20Hz:

Fig. 9.6 Entrada y salida del cuadripolo

Muestra V/div Tiempo/div


Canal I Entrada cuadripolo 0,5 10ms
Canal II Salida cuadripolo 0,2 10ms

José Luis Casas Martínez - 84 -


Red neuronal para identificación automática de sistemas 9 -Ensayos

Una vez los datos fueron adquiridos por el sistema, a un tiempo 1,5ms por pareja de
patrones. El entrenamiento tubo como resultado, un error de 0,021 y un número de
neuronas enterradas de 8. Las características de las variables de entrenamiento
fueron las siguientes:

Valor
Velocidad de aprendizaje máxima 0,04
Nº de muestras 70
Nº de epoch’s 3000

Finalmente se ejecutó la Red para ver los resultados y se obtuvo:

Fig. 9.7 Entrada de la red RC y salida de la red Neuronal

Muestra V/div Tiempo/div


Canal I Entrada cuadripolo 0,5 10ms
Canal II Salida Red Neuronal 0,2 10ms

José Luis Casas Martínez - 85 -


Red neuronal para identificación automática de sistemas 9 -Ensayos

Si se compara la señal original con, la señal de salida se comprueba claramente que


hay un desfase entre ellas, que se puede calcular como se comentaba en el
apartado 4.9, tomando como tiempo de muestreo, 1,5ms. Aun así la respuesta es
bastante aproximada.

Fig. 9.8 Salida de la red RC y salida de la red Neuronal

Muestra V/div Tiempo/div


Canal I Salida cuadripolo 0,2 5ms
Canal II Salida Red Neuronal 0,2 5ms

José Luis Casas Martínez - 86 -


Red neuronal para identificación automática de sistemas 9 -Ensayos

¿Qué pasa si aumentamos la frecuencia de la señal de entrada?. La señal de salida


de la Red Neuronal como se ve en la siguiente figura, generaliza bastante bien para
frecuencias de entrada diferentes.

Fig. 9.9 Salida de la red RC y salida de la red Neuronal

Muestra V/div Tiempo/div


Canal I Salida cuadripolo 0,2 5ms
Canal II Salida Red Neuronal 0,2 5ms

9.2 Cuadripolo rectificador

El primer cuadripolo del cual se sacan los patrones de entrada y de salida es una red
rectificadora de media onda, la cual esta excitada por una señal senoidal, de 0 a 3V
de amplitud y una frecuencia de 10Hz:

Fig. 9.10 Cuadripolo rectificador de media onda

José Luis Casas Martínez - 87 -


Red neuronal para identificación automática de sistemas 9 -Ensayos

A continuación se presenta las señales de entrada y de salida del cuadripolo, la


señal de entrada tiene una continua de 1,5V, ya que de otro modo el PIC no podría
adquirir el semiperiodo negativo. De ahí el filtro pasa altos, en la entrada del
rectificador, para que el diodo haga su función de rectificador.

Fig. 9.11 Entrada y salida del cuadripolo rectificador

Muestra V/div Tiempo/div


Canal I Entrada cuadripolo 1 20ms
Canal II Salida cuadripolo 0,5 20ms

Una vez los datos fueron adquiridos por el sistema, a un tiempo 1,5ms por pareja de
patrones. El entrenamiento tubo como resultado, un error de 0,054 y un número de
neuronas enterradas de 8. Las características de las variables de entrenamiento
fueron las siguientes:

Valor
Velocidad de aprendizaje máxima 0,05
Nº de muestras 99
Nº de epoch’s 3000

José Luis Casas Martínez - 88 -


Red neuronal para identificación automática de sistemas 9 -Ensayos

Finalmente se ejecutó la Red para ver los resultados y se obtuvo:

Fig. 9.12 Entrada del cuadripolo y salida de la red Neuronal

Muestra V/div Tiempo/div


Canal I Entrada cuadripolo 1 20ms
Canal II Salida Red Neuronal 0,5 20ms

Si se compara la señal original con, la señal de salida se comprueba claramente que


hay un desfase entre ellas, que se puede calcular como se comentaba en el
apartado 4.9, tomando como tiempo de muestreo, 1,5ms. Aun así la respuesta es
bastante aproximada, salvando las diferencia que una es una señal digital y la otra
una señal analógica.

José Luis Casas Martínez - 89 -


Red neuronal para identificación automática de sistemas 9 -Ensayos

Fig. 9.13 Salida del cuadripolo y de la red Neuronal

Muestra V/div Tiempo/div


Canal I Salida cuadripolo 0,2 20ms
Canal II Salida Red Neuronal 0,2 20ms

José Luis Casas Martínez - 90 -


Red neuronal para identificación automática de sistemas 9 -Ensayos

¿Qué pasa si aumentamos la frecuencia de la señal de entrada?. La señal de salida


de la Red Neuronal como se ve en la siguiente figura, generaliza bastante bien para
frecuencias de entrada diferentes.

Fig. 9.14 Salida del cuadripolo y la red Neuronal

Muestra V/div Tiempo/div


Canal I Salida cuadripolo 0,2 50ms
Canal II Salida Red Neuronal 0,2 50ms

José Luis Casas Martínez - 91 -


Red neuronal para identificación automática de sistemas 10-Conclusiones

10 Conclusiones

- Comentar de alguna manera los buenos resultados obtenidos con la Red Jordan
utilizada en la implementación del PIC. Converge de una manera similar, a como
lo hacía en la simulaciones con Matlab, ahora ya con datos almacenados reales,
no teóricos.

La generalización que hace la Red a frecuencias o amplitudes diferentes de las


enseñadas a la Red, son bastante buenas. Sobre este tema hay que comentar,
que los resultados obtenidos prácticamente son bastante mejores que los
obtenidos, con las Redes teóricas.

- El tiempo de cálculo en la ejecución aún siendo una asignatura pendiente para


las posibles mejoras del proyecto, se ha podido bajar relativamente de 1,5ms
hasta 0,7ms. Con estos tiempos de ejecución es bastante difícil realizar pruebas
de respuesta en frecuencia, ya que el rango de trabajo es bastante corto.

- Con respecto al tiempo de entrenamiento, es bastante aceptable con respecto a


las simulaciones con Matlab.

- En el momento de adquirir los patrones para el entrenamiento, el bloque de


entrada hay que conectarlo al cuadripolo a identificar. Mencionar que el
cuadripolo no se ve afectado, como se preveía teóricamente.

- Una de las pegas del circuito, es que el diodo zener colocado para limitar la
tensión de entrada a 5V, debido a su curva característica, empieza a estabilizar
mucho antes de los 5V. Con lo cual se limita la tensión de entrada a poco más de
4V, si se pretende que la señal de adquisición sea fiable.

José Luis Casas Martínez - 92 -


Red neuronal para identificación automática de sistemas 11-Mejoras posibles

11 Mejoras posibles

Las mejoras que se proponen para futuras actualizaciones:

- Utilizar en vez de la comunicación serie RS-232, una comunicación serie por


el puerto USB.

- Procurar bajar el tiempo de cálculo, con algún otro dispositivo exterior, para
que las señales a representar puedan ser más complejas y con un rango de
frecuencia más grande, que las utilizadas en el actual identificador.

- Una vez comprobado el buen funcionamiento, con este tipo de Redes con
funciones de primer orden, buscar soluciones para circuitos de mayor orden.

- Tener la posibilidad de escoger entre 2 o 3 tipos de Redes Neuronales


diferentes, para poder entrenar una o otra según la aplicación.

- Procurar guardar, los resultados obtenidos, en algún archivo externo al PIC,


con alguna EEPROM externa, o mediante el PC. Para poder tener con una
misma placa, diferentes posibilidades de uso sin tener que volver a entrenar.

José Luis Casas Martínez - 93 -


Red neuronal para identificación automática de sistemas 12-Estudio económico

12 Estudio económico

Circuito impreso

Referencia Descripción Cantidad PVP(€)


R1,6,7,9,11,14 Resistencia 22kΩ 1/4W 5% 6 0,03
R2,3 Resistencia 2k5Ω 1/4W 1% 2 0,04
R4,5 Resistencia 1kΩ 1/4W 5% 2 0,01
R8,12 Resistencia 4k9Ω 1/4W 5% 2 0,01
R10,13 Resistencia 5k1Ω 1/4W 5% 2 0,01
R14 Resistencia 47Ω 1/2W 10% 1 0,01
P3,6 Potenciómetro multivuelta ajuste vertical 100kΩ 2 1,07
P2,5 Potenciómetro multivuelta ajuste vertical 200Ω 1 0,53
P4 Potenciómetro multivuelta ajuste vertical 25kΩ 1 0,53
C1,2,3,4,10
C11,12 Condensador cerámico 2’’ 22pF/100V 7 0,08
C5,6,7,8,9,13
C14,15,16,17
C18,19,20,21
C22,23,24,25
C26,27 Condensador cerámico 2’’ 0,1µF/63V 20 0,59
C28 Condensador electrolítico radial 1’ 1µF/100V 1 0,02
Z1,2 Diodo zener 5V1 400mW, DO-35 2 0,04
U1 PIC 18F452I, DIP40 1 7,49
U2 DAC0800 Convertidor D/A 8 bits, DIP16 1 0,84
U3,5,6,7,8 NE5534 Amplificador operacional 5 1,26
U4 PC1602F LCD 16 caracteres x 2 líneas 1 9,60
S1,2,3,4 Pulsador PB-307A , color blanco N.C 4 1,73
ZR08 Zócalo Pin torneado 8 Pins, paso 2,54mm 5 0,40
ZR16 Zócalo Pin torneado 16 Pins, paso 2,54mm 1 0,19
ZR40 Zócalo Pin torneado 40 Pins, paso 2,54mm 1 0,50
AWG2814 Cable plano gris de 14 conexiones AWG-28 1 0,38

José Luis Casas Martínez - 94 -


Red neuronal para identificación automática de sistemas 12-Estudio económico

X1 Cristal de cuarzo 10 MHz 1 0,37


U9 MAX232, envío / recepción RS-232 multicanal 1 2,30

Fuente de alimentación
Referencia Descripción Cantidad PVP(€)
D1,2,3,4,5,6 Diodo 1N4004 6 0,08
Trafo Transformador 220/18 18VA 1 7,00
C29 Condensador electrolítico radial 2’’ 1000µF/25V 1 0,16
C30,32 Condensador cerámico 2’’ 100nF/100V 2 0,06
C31,33 Condensador cerámico 2’’ 330nF/63V 2 0,12
C33 Condensador electrolítico radial 1’’ 1µF/100V 1 0,02
C34 Condensador electrolítico radial 1’’ 2,2µF/63V 1 0,02
U10 7805 Regulador de tensión +5V 1A TO-220 1 0,16
U11 7812 Regulador de tensión +12V 1A TO-220 1 0,18
U12 7912 Regulador de tensión –12V 1A TO-220 1 0,17
TOTAL 36,00

Tipo de trabajo y precio Nº horas PVP


- Trabajo administrativo (12€/h) 25 300,00€
- Montaje (15€/h) 5 75,00€
- Trabajo técnico (17€/h) 50 850,00€
- Diseño (36€/h) 100 3600,00€
------ -------------
- Total trabajo 180 4810,00€
- ------------------------------------------------------------------------------------------------------
- Total trabajo + Total componentes 4846,00€
- 10 % Beneficio +484,60€
--------------
- Total + Beneficio 5328,60€
- 16% IVA +852,58€
-----------------
TOTAL 6181,18€

José Luis Casas Martínez - 95 -


Red neuronal para identificación automática de sistemas 12-Estudio económico

El proyecto que se ha realizado es un prototipo, estos serian sus números si el


proyecto se llevara a la realidad. Dicho proyecto no está pensado para su
comercialización, sino como investigación de sus posibilidades y posibles utilidades.
Por lo tanto se descarta la opción de colocar un precio de mercado.

Barcelona 21 Enero 2004


El proyectista

José Luis Casas Martínez

José Luis Casas Martínez - 96 -


Red neuronal para identificación automática de sistemas 13-Bibliografía, referencias y enlaces

13 Bibliografía, referencias y enlaces

[1] Domingo, J. “Neurocontrol” Curso de postgrado


Angulo, I “Microcontroladores PIC, segunda parte” McGraw-Hill, 2000
[2] Microchip “PIC18Fxx2” data Sheet
[3] http://www.microchip.com
[4] http://www.national.com/pdf/DA/DAC0800.html
[5] http://www.hameg.es/index4.asp
[6] http://www.semiconductors.philips.com/pip/NE5534.html
[7] http://www.powertip.com.tw/product/pro_char.asp
[8] http://www.st.com/stonline/books/ascii/docs/2143.htm (7805 y 7812)
[9] http://www.st.com/stonline/books/ascii/docs/2149.htm (7912)
[10] http://dbserv.maxim-ic.com/

José Luis Casas Martínez - 97 -

También podría gustarte