Professional Documents
Culture Documents
INTEGRANTES:
cd.: 1093277423
cd.: 1093.792.338
cd.: 1140417450
cd.: 1090.504.412
UNIVERSIDAD DE PAMPLONA
INGENIERIA MECATRONICA
2017
INTEGRANTES:
Cd.: 1093277423
Cd.: 1093.792.338
Cd.: 1140417450
Cd.: 1090.504.412
PRESENTADO AL DOCENTE:
UNIVERSIDAD DE PAMPLONA
INGENIERIA MECATRONICA
2017
Tabla de contenido
INTRODUCCIN ....................................................................................................................... 7
OBJETIVOS ............................................................................................................................... 8
CAPITULO 1 ............................................................................................................................. 9
CAPITULO 2 ........................................................................................................................... 14
CAPITULO 3 ........................................................................................................................... 36
3.3.2 Nmero de pocas ........................................................................................... 46
3.3.3 Nmero de error permitido .............................................................................. 47
CAPITULO 4 ........................................................................................................................... 49
CAPITULO 5 ........................................................................................................................... 63
CONCLUSIONES ..................................................................................................................... 65
BIBLIOGRAFIA ................................................................................................................... 67
LISTA DE FIGURAS
INTRODUCCIN
OBJETIVOS
CAPITULO 1
Aprendizaje de NNTOOL
Actividad a realizar: Crear y validar una RNA que emule sus plantas realizadas. Para ello, es
necesario ingresar la data de entrada y de salida de la planta mediante array. Comparar la
respuesta de la RNA con la respuesta real y con la funcin transferencia identificada por
ustedes.
Una vez observados los videos tutoriales asignados para este punto, se procedi a crear y
validar una RNA que emule la planta realizada, para lo cual se recurre la data promedio, donde
exportamos los datos de la entrada (pwm-MANDO) y la salida (cm-nivel).
En matlab: Primero creamos los vectores vacos llamados entrada y salida y se le asigna la
data anteriormente mostrada:
Ya teniendo los vectores llenos de la entrada y la salida del sistema, se procede a iniciar la
toolbox en Matlab llamada NNTOOL:
En la esquina superior izquierda aparece un cuadro llamado INPUT DATA; es en ese cuadro
donde vamos a importar del workspace de Matlab el vector llamado ENTRADA.
Lo mismo pasa en la esquina superior derecha donde aparece un cuadro llamado OUTPUT
DATA y es en ese cuadro es donde vamos a importar del workspace de Matlab el vector
llamado SALIDA.
Al darle importar, queda agregada las datas correspondientes. Ahora para configurar el tipo
de red neuronal que se quiere disear, se ingresa a la pestaa New donde se configura el
Una vez creada la RNA se procede a realizar su entrenamiento, dando doble click en el nombre
que se encuentra en la parte media de la ventana de la toolbox. Nos abrir la siguiente
ventana. En donde seleccionamos la pestaa Train, seleccionamos la variable de entrada y
salida y le damos en Train Network.
CAPITULO 2
>> Data=[];
>> Normal=[];
DATA 1 HOJA 1 DEL EXCEL
net.trainparam.goal=0.1e-4;
%meta de error de 1 x 10 e -4
net = train(net,entradas,salidas);
net=net';
gensim(net)
entradas=0;
salidas=0;
Al correr dicho cdigo se obtiene la RNA ya entrenada y lista para ser simulada y confrontada.
%normal0=[];
vector0=data;
vector0=data';
entradas=[vector0];
salidas=[normal'];
net=newff(minmax(entradas),[25 1],{'tansig' 'purelin'},'trainlm');
%crea la red neuronal MLP
net.trainParam.epochs = 5000;
%100 epocas de entrenamiento
net.trainparam.goal=0.000001e-4;
%meta de error de 1 x 10 e -4
net = train(net,entradas,salidas);
net=net';
%gensim(net)
entradas=0;
salidas=0;
Se pre-dispone un error mnimo al cual debe llegar el aprendizaje de la RNA. En este caso
se programa la RNA para que tenga un error mucho ms pequeo, que genera una
respuesta mucho ms exacta y parecida a la data real.
net.trainparam.goal=0.000001e-4;
Al correr dicho cdigo se obtiene la RNA ya entrenada y lista para ser simulada y confrontada.
Figura 16. Comparacin: Salida RNA entrenada por cdigo 2 (azul) vs salida data real (violeta)
Figura 17. Comparacin: RNA con cdigo 1 (azul) vs RNA con cdigo 2 (roja)
Al correr dicho cdigo se obtiene la RNA ya entrenada y lista para ser simulada y confrontada.
Se pre-dispone un error mnimo al cual debe llegar el aprendizaje de la RNA. En este caso
se programa la RNA para que tenga un error mucho ms pequeo, que genera una
respuesta mucho ms exacta y parecida a la data real.
net.trainparam.goal=0.000001e-4;
Al correr dicho cdigo se obtiene la RNA ya entrenada y lista para ser simulada y confrontada.
Figura 24. Simulacin de la RNA entrenada con cdigo 1 vs con cdigo 2 de la data 2
Figura 26. Comparacin: Salida RNA entrenada por cdigo 2(azul) vs salida data real (violeta) de la data 2
Figura 27. Comparacin: RNA con cdigo 1 (azul) vs RNA con cdigo 2 (roja)
A la hora de comparar los dos cdigos se llega a la conclusin que el segundo cdigo es ms
preciso y clono mucho mejor el proceso debido a que en el cdigo se esper ms tiempo por
lo tanto se le dejo al algoritmo hacer ms iteraciones para que aprenda ms y se fue ms
riguroso con el error permitido de la neurona, hasta que l tenga un error casi perfecto o casi
que nulo el no detenga el entrenamiento y por esas razones es que el cdigo dos arrojo una
clonacin ms precisa.
Codigo1:
Teniendo en cuenta que la data promedio real de nuestra planta contiene muchos datos y a
la de querer entrenar la rna el computador no es capaz de hacerlo, por lo tanto, vamos a
tomar una data promedio, pero de la simulacin donde vamos a reducir el numero de datos
obtenidos en dicha simulacin. Cabe recordar que para la identificacin de nuestra planta el
mejor mtodo dado fue el mtodo de identificacin SUNDARESON.
Ahora se procede a simular la ecuacin que el mtodo nos arrojo con un escaln de entrada
de 130 y se espera a que estabilice y as tomar esa data y poder entrenar nuestra RNA.
Figura 29. Salida de la Simulacin con menos datos para entrenar la RNA.
Ingresamos las dos columnas de datos en Matlab; donde el vector data contiene las entradas
hasta el numero 4001 y el vector normal contiene la salida que nos arrojo el sistema, osea el
nivel.
Figura 33. Salida de la RNA enseada con respecto a nuestro sistema de nivel
Donde en la figura 34 se puede observar que dicha red neuronal queda bien enseada, pero
le hacen falta iteraciones o pocas, ya que solamente con 100 pocas no se alcanza a apreciar
toda la data del proceso de nivel real. Por lo tanto, se concluye que la red funciona de manera
correcta, pero le hacen falta iteraciones para poder apreciar mejor la data real del proceso de
nivel.
Cdigo 2:
Con los mismos datos que se usaron para entrenar la RNA con el cdigo
cdigo_entrenamiento_red se entrena la segunda RNA con el segundo cdigo llamado:
cdigo_entrenamiento_red2. Dicho codigo contiene 25 capas de neuronas que conforman la
red y se realiza en 4000 pocas de entrenamiento o iteraciones. Y nos arroja la siguiente salida
de la RNA:
Figura 36. Salida de la RNA enseada con respecto a nuestro sistema de nivel con el codigo2.
Figura 37.Comparando la salida de la RNA enseada vs la data del proceso con el cdigo 2
En la figura 28 se ve notablemente que la RNA con 100 iteraciones (cdigo 1) era muy poco
para que aprendiera toda la data que se le ingreso debido, a que despus de las 100
iteraciones queda en un valor fijo; al contrario del cdigo 2 que tenia 4000 iteraciones donde
claramente se puede observar que si tiene las suficientes capas y si aprende toda la data que
se le ingreso. Esto pasa debido a la cantidad de datos que se le ingresaron y por lo tanto se
necesitaban como mnimo la misma cantidad de iteraciones para la RNA para que aprendiera
todo lo ingresado.
La red neuronal es un algoritmo recursivo, por lo tanto, ella lo que hace es evaluar las entradas
versus las salidas y bsicamente interpolar los pesos de las capas que se le asignan y generar
dichas salidas. Por lo tanto, lo que en verdad significa un escaln es simplemente un nico
cambio sostenido y la red neuronal tiene una evolucin dinmica hasta llegar a converger y
ella solamente va a graficar el ultimo valor o mejor dicho ella lo que va a recrear es un escaln
igual al que se le ingreso. Lo que pasa es que una RNA lo que aprende son patrones VARIABLES
y por lo tanto a la entrada no se le puede ingresar el valor de escaln, se ingresan son
muestras, donde cada muestra tiene el valor de nivel que va marcando el sensor.
1 0.7956
2 0.9556
Figura 39. Forma correcta de ingresar datos a la RNA
130 0.7956
130 0.9556
CAPITULO 3
Actividad a realizar:
En la carpeta llamada control neuronal encontrara un modelo de simulink llamado
RNA_PROCESO y un cdigo de entrenamiento llamado RNA_MEI. En RNA_PROCESO
encontrara un ejemplo de un proceso en el cual se ha realizado la clonacin del controlador
y se compara con el resultado de una RNA entrenada previamente usando el cdigo
RNA_MEI.
Analizar el cdigo de entrenamiento, y usando las simulaciones del mejor controlador clsico
desarrollados para sus plantas de caso de estudio y aplicando 4 retrasos cree la data de
entrada y salida para entrenar una RNA para clonarlo. Modifique los datos de configuracin
del Cdigo para lograr mejores clonaciones.
Figura 41. Lazo de control para obtener las variables de entrada y salida.
En la figura 41 se muestra el lazo de control con la funcin de transferencia que nos arroj el
mtodo de sundareson, siendo esta la mas similar a la curva del proceso real. Adems, se
observa el bloque PID el cual tiene los valores del controlador que nos arroj Z&N 1er mtodo.
En la figura 49 se puede observar que el error de clonacin de la RNA es muy bajo queriendo
decir que la red quedo bien enseada y que la similitud con la seal original del controlador
clsico es muy alta.
Realice un anlisis modificando el set point en diferentes valores y establezca si la RNA sigue
controlando y argumente los resultados.
Modificando los valores del Set-point en diferentes valores se llega a la conclusin que la RNA
no funciona debido a que la red fue entrenada para un solo set-point por lo cual tuvo el
aprendizaje para un solo tipo de comportamiento. Ya que una RNA aprende lo que se le
ensea y a ella se le enseo por medio de unos datos de entrada y salida, que fueron tomados
de un determinado set-point, por este motivo es que la RNA no funciona para distintos set-
points que no sea el set-point en el que la red fue diseada.
Como hara para hacer que la RNA controle no en un punto sino en rango amplio.
Argumente su respuesta.
Para que la RNA controle en un amplio rango de Set-point lo que se hara es hacer una escalera
de set-points en serie donde cada uno entra en un determinado tiempo, pero siempre
teniendo en cuenta que se debe esperar el tiempo necesario para que el proceso converja en
el Set-Point deseado. De esta manera ya se estara enseando a la RNA que debe converger
en distintos valores de Set-points dados. Esto garantiza que para cualquier valor de Set-point
enseado, la RNA ser capaz de generar una salida acorde y que garantice el correcto
funcionamiento del controlador.
Dado que la RNA es un algoritmo recursivo, ella lo que hace es evaluar las entradas versus las
salidas y bsicamente interpolar los pesos de las capas que se le asignan y generar dichas
salidas.
Para que la RNA funcione de una manera correcta fue necesario tomar una data con distintos
valores de set-points, ya que si se tomaba la data que se obtuvo anteriormente de los otros
controladores, la data era con un nico valor de set-point lo que haramos es un cambio
sostenido y no seran patrones variables para que la RNA aprendiera de manera exitosa.
Figura 52. Cadena de Set-Points para tomar data con controlador FUZZY.
Con base a lo anterior para que la RNA aprenda de una manera exitosa se ingresan son
muestras del ERROR, EL DELTA DE ERROR, LA SUMATORIA DEL ERROR Y EL VALOR DE SET-
POINT el cual fue variable, donde la salida debera contener el valor de pwm que es enviado
al elemento final de control del proceso y as poder cumplir con la funcin de controlar.
comportamientos diferentes que no se tienen cuando se ingresa otro set-point, esto hace que
a la red se le ensee de una mejor manera porque ella va a tener muchos ms valores
caractersticos y as la red podr aprender de una manera correcta.
En la figura 13 se puede observar cmo se guardan las variables de entrada de la RNA, las
cuales se envan al workspace de Matlab con nombres Error, Delta_E, Integral_Error y de esa
forma se pudieran guardar en un Excel para su debido tratamiento (Figura 54).
En total se ingresaron 16.667 datos a cada entrada de la red, sea que en total para que la
red aprendiera de una manera correcta se ingresaron 66.668 datos en total, dndole una
riqueza considerable de conocimiento a la red para que la clonacin del controlador fuera
exitosa.
El nmero de pocas usadas para la RNA fueron de 5000; este nmero de pocas debido a la
cantidad de informacin que se tena para entrenarla y tambin se quera tener una
confiabilidad alta de que la RNA aprendiera de una manera correcta. Para esta cantidad de
pocas el aprendizaje de la neurona demoro 40 minutos.
Se fue muy estricto con el error permitido de la RNA para asi poder tener un mejor
resultado y obtener un buen comportamiento de la misma y a su vez poder superar las
mrgenes de respuesta de hasta el momento el mejor controlador obtenido que fue FUZZY.
CAPITULO 4
Proponga un clasificador de 5 clases usando el siguiente cdigo:
ans =
1.0000
>> evalfis(18,out_fis)
ans =
2.0000
>> evalfis(29,out_fis)
ans =
3.0000
>> evalfis(43,out_fis)
ans =
4.0000
>> evalfis(65,out_fis)
ans =
5.0000
SISTEMA ANFIS
En la figura 52 se ingres la data proveniente del cdigo Script quien lee la data del proceso,
distingue las variables de entrada y salida y las optimiza para su ingreso a la Toolbox.
Figura 69. Carga y evaluacin de la data real con la aprendida por el sistema ANFIS
Figura 71. Grfica comparativa del ANFIS con la respuesta del sistema
Ejercicio 2: Del lazo de control clsico de la planta desarrollada para la materia, cree la data
de entrada (error y delta de error, por ejemplo) y de salida para crear un sistema ANFIS que
clone el controlador. Ver ejemplo en carpeta llamada ejerciciopidANFIS. Qu tendra que
hacer para que el sistema ANFIS clone el controlador en rango amplio?
Se ingres la data de error, delta de erro y la salida en PWM del controlador clsico de nuestra
planta y se ingresaron a la toolbox como se aprecia en la figura 73.
Ingresando nuestra red neuronal junto con la funcin de transferencia de nuestra planta y el
controlador PID se obtuvieron los siguientes resultados
Nota: para validar el proceso se muestra de un lateral la grfica de respuesta del sistema del
tipo de falla detectado y se marca en rojo en el diagrama en bloque la respectiva
configuracin realizada.
Como se pudo observar en las grficas anteriores se ve la seal de alerta de forma satisfactoria
del tipo de falla que ocurri en el sistema. Esto nos indica que el uso de red neuronal para el
diagnostico de fallas y averas puede llegar a ser muy til para esta labor, siempre y cuando
la RNA se desarrolle adecuadamente es decir se le ensee bien el proceso.
CAPITULO 5
ALGORITMOS GENTICOS
A la hora de querer crear el algoritmo gentico nos genera un error respecto a que la
funcion esta indefinida para argumentos de entrada tipo doble.
CONCLUSIONES
La seleccin del mejor controlador para tener como base para la RNA fue el
controlador fuzzy debido a que sus mrgenes de respuesta fueron mejores en
comparacin con los otros mrgenes de respuesta de los anteriores controladores
sintonizados.
A la hora de querer clonar un controlador se debe tener en cuenta que la red a escoger
debe ser de tipo aprendizaje adaptativo que tiene la capacidad de aprender a realizar
tareas basadas en un entrenamiento o en una experiencia inicial. A su vez la red
neuronal debe ser tambin de tipo aprendizaje supervisado para lo cual se disponen
patrones de entrada y de salida que queremos obtener para la entrada de la red y en
funcin de ellos la red modifica los pesos de las sinopsis para ajustar el valor de la
salida
BIBLIOGRAFIA
http://www.redes-neuronales.com.es/tutorial-redes-neuronales/aprendizaje-
supervisado-en-redes-neuronales.htm
https://es.wikipedia.org/wiki/Red_neuronal_artificial
Clases dictadas por el MsC. OSCAR DUQUE en las instalaciones de la universidad de
pamplona.
Videos tutoriales de la pgina Redes Neuronales- Fcil y desde cero.