Está en la página 1de 6

Universidad Autnoma De Occidente 1

SIMULACIN DE UN SISTEMA NO LINEAL


MEDIANTE EL USO DE RNA Y EL MODELO DE
ESTIMACIN LINEAL ARX
J. C. Arenas1, S. Cantillo2, L.F. Chacn3
1,2,3Ingenieria Mecatrnica, Universidad Autnoma de Occidente, Cali Colombia

Palabras Clave Modelo ARX, Red Neuronal, Sistema No Lineal, Simulacin pura, Prediccin a un paso, caracterizacin

Abstract El presente informe present el desarrollo e componentes, un ejemplo para entenderlo mejor son los sistemas
implementacin de una red neuronal artificial que se comporte masa-resorte; se puede describir de manera efectiva mediante
de forma similar a un sistema no lineal segn un rango dado de ecuaciones como la ley de Hooke y la segunda ley de Newton. Por
valores en la entrada. Lo primero que se requiri para iniciar el el contrario, los modelos relacionados con comportamientos
proceso fue la adecuacin del sistema en la derivada de mayor humanos son cajas negras, esto se debe, a que su comportamiento
grado otorgada por el docente para determinar as las dems no es predecible, es decir, se puede realizar una aproximacin,
variables del sistema representadas por el manejo de pero no es posible tener certeza de que ocurre dentro del proceso.
integradores, con el fin de entrenar una red neuronal con
entradas de los valores pasados de la misma funcin al igual que Teniendo el conocimiento de los tipos de modelos es posible
de los valores de la entrada, para finalmente obtener los pesos determinar la importancia de las redes neuronales, ya que estos,
sinpticos obtenidos del entrenamiento y adecuarlos a un despus de haber recibido un entrenamiento adecuado, pueden
algoritmo en Arduino que permita simular el comportamiento de comportarse como cada uno de estos sistemas y aproximarse de
una planta con la funcin entregada. manera adecuada a la respuesta que tendra este sistema a una
entrada determinada. Cabe destacar que las neuronas funcionan
con seales discretas, por ello su respuesta frente a un estmulo se
I. INTRODUCCIN ver representada en tiempo discreto por lo que es muy importante
tener en cuenta la frecuencia de la toma de datos para evitar
La razn del porqu se procede con la investigacin de las redes Aliasing (perdida de informacin).
neuronales y sus aplicaciones, es debido a que funcionan de
manera diferente a como lo hacen los computadores digitales
normalmente, esto quiere decir que las redes funcionan de tal II. MARCO TERICO
manera que pueden ser entrenadas y simular el comportamiento de
mltiples sistemas, adems al ser un sistema muy complejo y En el siguiente contenido, se identificarn aspectos y
paralelo, permite la realizacin de estas tareas en tiempos mucho caractersticas netamente tericas para dar entendimiento a los
ms cortos. trminos implementados durante todo el documento.

Se debe tener en cuenta que hay modelos ms complejos que otros,


por ello, se clasifican entre aquellos que es posible conocer todas RED NEURONAL ARTIFICIAL
las caractersticas del sistema y aquellos que no son fcilmente
predecibles. Las RNA son conjuntos de procesamiento de informacin cuya
estructura y funcionamiento se encuentran inspirados en el
funcionamiento de las redes neuronales biolgicas (Hilera y
Martnez, 1995). Se encuentran constituidas por un nmero de
elementos simples de procesamiento llamados nodos o neuronas
que a su vez se hallan organizados en capas.

Figura.1 Descripcin de modelos

En la figura 1 Se observa que los modelos matemticos y fsicos


son bsicamente cajas blancas, puesto que, se pueden observar las Figura 2. Estructura de una RNA [8]
Universidad Autnoma De Occidente 2

Cada neurona est conectada con otras neuronas mediante enlaces


de comunicacin como se puede evidenciar en la figura 1, donde
cada uno de estas conexiones tiene un peso sinptico asociado,
estos pesos representan la informacin que ser usada por la red
neuronal para resolver un problema determinado.

De este modo, las RNA son sistemas adaptativos que aprenden de


la experiencia, esto quiere decir que se encuentran en la capacidad
de aprender a llevar a cabo ciertas tareas mediante un
entrenamiento con ejemplos ilustrativos, Mediante este
entrenamiento o aprendizaje, las RNA crean su propia
representacin interna del problema, por tal motivo se dice que son Figura 2. Seal seno en tiempo continuo
autoorganizadas.
La figura 2 permite visualizar una seal seno en tiempo continuo,
Posteriormente, pueden responder adecuadamente cuando se les como se observa la seal, como su nombre lo indica es un conjunto
presentan situaciones a las que no haban sido expuestas infinito de puntos que se encuentran en la capacidad de formar una
anteriormente, es decir, las RNA son capaces de generalizar de lnea continua.
casos anteriores a casos nuevos.

IDENTIFICACION DE SISTEMAS DINAMICOS CON REDES


EFECTO ALIASING NEURONALES ARTIFICIALES
Cuando la frecuencia a la que se muestrea una determinada seal Es considerada la identificacin de sistemas dinmicos como parte
en tiempo continuo es inferior a la frecuencia de Nyquist, se de las reas disciplinarias tratadas por el control automtico,
produce el efecto Aliasing, que es la perdida de informacin, cuando las tcnicas de estadstica y de estimacin tales como los
produciendo fcilmente, la perdida completa o parcial de la seal, mnimos cuadrados o verosimilitud mxima eran muy conocidos.
tratndose de una seal completamente diferente, una breve
manifestacin de ello es mostrada en la figura 3. Existen numerosos mtodos de identificacin, pero en general
todos siguen unos patrones en comn, como los siguientes:

Preprocesado de la informacin
Seleccin del modelo
Minimizacin del error de aproximacin
Validacin del modelo

Este proceso de identificacin para poder ser realizado, est


constituido por los siguientes componentes:

Los datos, son pares de vectores de entrada


correspondientes a los regresores del modelo y la salida
ya en tiempo discreto del sistema a analizar.
El modelo, es una funcin que se encarga del proceso de
estimacin de las salidas a partir de las entradas y la
informacin temporal que almacena gracias a los retrasos
Figura 3. Efecto Aliasing que la constituyen.
Los parmetros, son la descripcin del modelo en si para
En la figura se puede apreciar que las seales de alta y baja un respectivo proceso de identificacin.
frecuencia al ser muestreadas a un valor determinado de La medida del error, el error es el encargado de permitir
frecuencia poseen los mismos valores en las muestras tomadas, una ponderacin de que tan efectivo es un modelo, dicha
debido a que la seal deseada que en este caso era la de mayor medida es realizada a travs de una norma, que suele ser
frecuencia fue submuestreada a tal punto de ser idntica a la de cuadrtica.
mucha menor frecuencia. Algoritmo de minimizacin de error, es la forma en cmo
se disminuye el error, puede ser directa, iterativa,
heurstica, estocstica, analtica, entre otras.
SEAL DE TIEMPO CONTINUO:
Los modelos clsicos de identificacin lineal, (ARMAX, OE, BJ)
Son aquellas funciones en las cuales su dominio puede expresarse y sus versiones no lineales pueden ser expresables en forma de red
en base a todo el conjunto de los nmeros reales, es decir se neuronal artificial, principalmente a que constituyen una
encuentra clasificada para un valor real de tiempo (t). estructura de modelado con ventajas sobre otras debido a que su
Universidad Autnoma De Occidente 3

costo es mucho ms bajo porque puede albergar varios modelos al


tiempo, haciendo su implementacin una inversin razonable.

III. DESCRIPCIN DEL PROBLEMA

El problema que se plante para el presente documento, fue que al


emplear una ecuacin de salida de forma no lineal otorgada por el
docente, adecuar dicha ecuacin de forma tal que responda a
diferentes valores acotados de entrada y realizar adquisicin de
estos datos; con esta informacin se espera entrenar una red
Figura 4. Estructura neuronal tipo ARX o NARX
neuronal que funcione como un modelo ARX y que frente a los
diferentes valores que se le puedan plantear dentro del rango
Luego de obtenidos los datos, se realiza el entrenamiento de la red
definido, responda de la misma manera tanto en las modalidades
en Matlab con el mismo tiempo de muestreo encontrado
de simulacin pura y prediccin one-step (a un paso).
anteriormente y las entradas correspondientes a los 2 instantes
Finalmente se desea realizar la implementacin de este mismo anteriores tanto de las entradas como de las salidas de esta funcin,
teniendo en cuenta que la capa oculta fue entrenada con una
proceso en un Arduino, de modo tal que el comportamiento de la
funcin de activacin sigmoidal mientras que la salida fue
funcin sea apreciable en su puerto serial.
activada por una funcin lineal, el bloque obtenido debe ser
revisado mediante la comparacin con la seal original de modo
tal que la red se encuentre en la capacidad de estimar y tomar los
IV. PLANTEAMIENTO DE LA SOLUCIN valores que el sistema original tomara, con el fin de obtener las
matrices de pesos sinpticos tanto de la capa oculta como de la
En primer lugar, se debe tomar la expresin otorgada por el capa de salida.
docente, en el caso particular una funcin no lineal descrita por la
siguiente ecuacin para dejarla en funcin de la derivada de mayor Finalmente se toman estos valores, de modo tal que puedan ser
grado llevados a lenguaje de sketch de Arduino, empleando las matrices
que Arduino maneja al igual que tomar los valores de
+ 0.7 + 0.2 + 0.3 3 = 0 normalizacin de las entradas y el proceso inverso para la salida
mediante el manejo del algoritmo minmax donde se determinan
Se llevara a esta expresin: los valores mnimos y mximos, en este caso tanto los valores de
la entrada como los de la salida.
= 0.7 0.2 0.3 3 Teniendo estos valores, se debe realizar el mismo proceso que
realiza Matlab para el entrenamiento de la red, es decir realizar las
A partir de esta expresin es posible llevarla a bloques en la respectivas operaciones entre las matrices y funciones de
herramienta Simulink de Matlab y realizar las debidas operaciones activacin respectivas, de forma manual debido a que Arduino no
matemticas para encontrar los respectivos elementos es decir los posee estas operaciones de forma automatizada, adecuando el
elementos de la variable y y realizar la respectiva adquisicin de cdigo para recibir las diferentes variables respectivas y
datos. finalmente ser mostradas por el puerto serial.

En segundo lugar, se realizar la toma de los valores con las que


sera entrenada la red neuronal, para ello antes se requera V. RESULTADOS
encontrar el tiempo de muestreo adecuado, de modo tal que en el
diagrama de simulink al emplear los retrasos, as como la captura En primer lugar, se muestra la caracterizacin de la seal no lineal
de datos se pudiera representar de forma fiel la funcin no lineal tomando los valores mnimos y mximos para determinar los
objetivo, para esto se tomarn los valores extremos de la seal para tiempos de muestreo y de generacin en el escaln.
verificar los tiempos de respuesta; con el tiempo ms rpido
obtenido se toma como el valor de tiempo referencia tau para
obtener el tiempo de muestreo y el ms lento puede contribuir a
encontrar un valor de tiempo donde el sistema se estabilice en un
valor y sea la cantidad de tiempo utilizado por la seal aleatoria
creada.

Se realiza la aclaracin que el modelo de red neuronal obedece a


un modelo de estimacin ARX como el de la siguiente figura. Del
mismo modo al ser la variable Y de mayor orden, se considera un
sistema de orden 2, de modo tal que se decidi implementar 2
retrasos temporales obteniendo una red de configuracin [2,2,1]
tomando desde la primera muestra anterior. Figura 5. Respuesta al ingresar 1 al sistema
Universidad Autnoma De Occidente 4

Del mismo modo se realiz el mismo proceso con el mximo valor A partir de estos elementos se determin que el sistema responda
considerado, que para este caso particular fue 10. Se puede de forma similar a la ecuacin no lineal planteada, debido a que se
apreciar en la figura 6, que el sistema tiene ms sobreimpulso en sobrescriben las grficas, esta situacin se puede evidenciar la
el mismo espacio de tiempo que el caso anterior, de all se tom el figura 8, siendo la figura azul la respuesta de la planta y los puntos
valor de tau necesario para realizar el muestreo teniendo en cuenta rojos serian la estimacin de la red neuronal.
el criterio emprico de tomar la dcima parte de este valor, que
para efectos prcticos fue 0.25 segundos.

Figura 6. Respuesta al ingresar 10 al sistema Figura 8. Respuesta del sistema vs Respuesta estimada por la
red.
Al determinar los valores se entrena la red de tipo Feedforward
que emular el comportamiento de la planta, de modo tal que se Al ser determinados exitosamente los valores estimados de la
emple la siguiente porcin de cdigo y el diagrama en simulink salida de la red, se procede a realizar la extraccin de los valores
respectivo, limitando a 100 iteraciones el entrenamiento, de los pesos sinpticos y realizar la debida implementacin en
empleando funciones de activacin tangente sigmoidal en la capa Arduino, pero antes de ello se realizan las debidas instanciaciones
oculta y funcin lineal en la capa de salida; generando el bloque de variables necesarias.
respectivo en simulink con el comando gensim.

U=IN;
Y=OUT;
phi=[Y(2:end-1),Y(1:end-2),U(2:end-
1),U(1:end-2)]';
Yreal=Y(3:end)';

% RED NEURONAL
Red=newff(phi,Yreal,[10],{'tansig','purelin
'},'trainlm');
Red.dividefcn='';
Red.trainparam.epochs=100;
Red=train(Red,phi,Yreal);
Se realiz la debida instanciacin de variables, donde se especifica
una red de 4 entradas pertenecientes a instantes anteriores de la
gensim(Red,0.25); entrada y la salida de la funcin original, una capa de 10 neuronas
oculta y una sola salida. Se puede apreciar en la parte inferior que
se especifican los rangos de normalizacin que utiliza el programa
Matlab, son necesarios para que los pesos sinpticos extrados
queden normalizados y puedan trabajar correctamente.

Figura 7. Diagrama funcional del sistema en Matlab


Universidad Autnoma De Occidente 5

En el anterior fragmento, se encuentran los nmeros que fueron


ingresados a la red neuronal desde Matlab, estos valores se pueden
obtener con el mando de minmax. En este caso tenemos que X1
y X2 son la retroalimentacin de la salida, es decir, Yk-1 y Yk-2
respectivamente, X3 y X4 son las entradas con retardo Uk-1 y U
k-2 respectivamente. Por ltimo, D es la salida deseada de la red.

Finalmente, debido a que los clculos se hicieron con un rango de


valores entre -1 y 1, se procede a realizar el proceso de invertir el
proceso de normalizacin para dar la salida deseada, y para poder
imprimirla en el puerto serial.

En el fragmento anterior, se encuentran los pesos sinpticos de la


capa oculta y la capa de salida con sus respectivos bias, se puede
evidenciar esto gracias al tamao de las matrices obtenidas, del
mismo modo con el siguiente fragmento el programa realiza los
valores de la entrada de la red con nmeros aleatorios y que son
ingresados a la red cada determinado tiempo, en este caso 10 s por
el tiempo de estabilizacin de la respuesta de la red, teniendo en
cuenta retrasos ubicados al final del cdigo. Finalmente, al utilizar el comando print de la librera serial de
Arduino y haciendo uso del monitor serial se obtuvo lo siguiente:

Figura 8. Entrada del sistema vs Respuesta estimada por la red


en Arduino (Serial)
Como ltimo paso para realizar los clculos correspondientes a la
red, se normalizan los valores antes proporcionados a un rango que VI. CONCLUSIONES
sea compatible con Matlab a travs de la frmula que utiliza, luego
procede a la activacin de la capa oculta y la capa de salida
La frecuencia de muestreo con la que se realice la actividad es
mediante un ciclo for de la siguiente manera
clave, debido a que una mala seleccin u obtencin puede
determinar el aprendizaje o no del comportamiento de la planta
Universidad Autnoma De Occidente 6

por la red neuronal, debido a problemas como el Aliasing, el


submuestreo entre otros fenmenos procedentes de la misma
situacin. Por tal motivo se emplean mtodos de obtencin de esta
frecuencia mediante los tiempos de respuesta a una determinada
entrada.

Un elemento muy importante a tener en cuenta es el aspecto de la


normalizacin de las entradas de la red neuronal, esto se debe a
que Matlab realiza labores de entrenamiento con valores entre -1
y 1, de modo tal que internamente el realiza este mapeo de los
valores mximos y mnimos de las entradas a estos valores, del
mismo modo se debe realizar el proceso inverso al momento de
entregar las seales provenientes de la red, se realiza la aclaracin
de que este proceso se debe realizar en la implementacin externa,
en este caso para un Arduino.

VII. REFERENCIAS

[1]A. Palmer Pol and J. Montao Moreno, Qu son las redes


neuronales artificiales? Aplicaciones realizadas en el mbito de
las adicciones, 1st ed. 2017.

[2] Martin T. Hagan, Howard B. Demuth, Oklahoma State


University, Neural Network design, second edition.

[3] Minaya Villasana, Introduccin a Las redes Neuronales


(Neurales) CO-6612, Introduccin a las Redes Neuronales
Artificiales, Visitado el 16 de noviembre del 2013, Disponible en
internet en: http://prof.usb.ve/mvillasa/redes/Introduccion-vl.pdf.

[4] Estudio de Redes Neuronales Modulares para el Modelado de


Sistemas Dinmicos no Lineales [en lnea]. Disponible en:
http://www.tesisenred.net/bitstream/handle/10803/6179/05Cap2.
pdf?sequence=5 [Fecha de Acceso: 07-Mar-2017]

[5] F. Izaureta and C. Saavedra, Redes Neuronales: Conceptos


Bsicos y Aplicaciones., Universidad Concepcin, Concepcin,
Chile [En lnea]. Disponible en:
http://www.uta.cl/charlas/volumen16/Indice/Ch-csaavedra.pdf
[Fecha de acceso: 07-Mar-2017]

[6] S. Kajan, NEURAL CONTROLLERS FOR NONLINEAR


SYSTEMS IN MATLAB, 1st ed. Bratislava.

También podría gustarte