You are on page 1of 10

AUTOMATIZACIÓN Y ROBÓTICA

TAREA Nº1
“REDES NEURONALES”

Nombre: Cristian Villegas Muñoz


Profesor: Michael Miranda Sandoval
Carrera: Ingeniería Civil Mecánica (diurno)
Código asignatura: 15179-0-A-1
Fecha de entrega: 13/08/2018
REDES NEURONALES

Índice
Título Pág.

1.- Resumen............................................………………………………......……………………….……..3

2.- Problema Propuesto……………………...………………………………….......……….………………4

3.- Solución del Problema………………………………………………….……....….………………..…...5

4.- Código…………………………….………………...………………………….….....…..........................7

5.- Explicación de la Solución y Conclusiones………………..........................................…………....10

2
REDES NEURONALES

1. Resumen

En esta tarea se realizó la aplicación de las “Redes Neuronales” para resolver un


problema práctico en el gran rubro de la minería chilena. Particularmente para un
chancador secundario, el cual está sometido constantemente bajo vibraciones a
causa de la disminución en la granulometría de la roca. Proceso el cual se ve
reflejado en la corriente del equipo y en base al código de la red estimaremos las
salidas (output) de dicho problema con el objetivo de prevenir una posible falla de
los componentes.

Objetivo General:

 Familiarizar al estudiante en la resolución de problemas utilizando redes


neuronales.

Objetivos específicos:

 Resolver un problema práctico cumpliendo con:


o Estudio de las redes neuronales.
o Proponer un problema para resolver con redes neuronales.
o Obtención de una red para un problema en particular.
o Analizar y concluir en base a los datos obtenidos.

3
REDES NEURONALES

2. Problema Propuesto

Dentro del negocio en la minería chilena tenemos varios equipos que son
fundamentales para la obtención tanto de pulpa de cobre como cátodos de los
mismos. Para el área seca de una mina los equipos fundamentales se denominan
chancadores, éstos son los encargados de moler la roca hasta un determinado
tamaño (granulometría). Debido a esto, los chancadores se encuentran en
constante trabajo realizando esta tarea, lo que provoca que todas las partes y
componentes de este equipo se encuentren vibrando a una determinada frecuencia.

Para éste caso, nos centraremos en el anillo de ajuste del chancador, el cual se
encuentran vibrando a medida que va pasando la roca por el equipo. Tal como se
muestra en la Figura.1:

Anillo de ajuste

Figura 1. Chancador MP Series

El anillo de ajuste posee 4 sensores, los cuales entregan información sobre la


vibración a la que está siendo sometido (en porcentaje). Para efectos prácticos
tomaremos una muestra de 50 datos solamente.

4
REDES NEURONALES

3. Solución del problema

Para la creación de la red neuronal, dispusimos de dos matrices importantes. La


primera solamente con datos relacionados a las vibraciones, en este caso
consideradas nuestras entradas o input. La segunda matriz está relacionada con la
corriente del equipo, considerado nuestro target, ya que a medida que va
ingresando material al chancador éste vibra realizando una exigencia que se ve
reflejada en los valores de corriente, los cuales deben mantenerse dentro de un
rango estandarizado por el fabricante. Finalmente, una vez realizada la creación de
la red con 5 capas ocultas, el diagrama queda demostrado por la Figura.2:

Figura.2 Red Neuronal asociada a las vibraciones del anillo.

Una vez obtenidos los datos del entrenamiento de la red podemos observar en las
gráficas a continuación los errores asociados a este proceso y a la validación misma
de los valores otorgados por la red.

Figura.3 Algoritmos utilizados

5
REDES NEURONALES

Figura.4 Desviaciones y errores en la red

Una vez obtenidos los resultados para los datos de salida (outputs) podemos
realizar una proyección del comportamiento de estos valores discriminando el uso
de los componentes y los cambios que se requieran hacer para futuros ciclos de
producción. Cabe destacar que el uso de este tipo de herramientas tiene un
potencial relevante dentro del uso de la programación en la parte técnica tanto en
el sector de la industria pública como las empresas privadas.

6
REDES NEURONALES

4. Código
% Solve an Input-Output Fitting problem with a Neural
Network
% Script generated by Neural Fitting app
% Created 09-Aug-2018 15:41:49
% This script assumes these variables are defined:
% i - input data.
% t - target data.

x = i;
t = t;

% Choose a Training Function


% For a list of all training functions type: help
nntrain
% 'trainlm' is usually fastest.
% 'trainbr' takes longer but may be better for
challenging problems.
% 'trainscg' uses less memory. Suitable in low memory
situations.
trainFcn = 'trainlm'; % Levenberg-Marquardt
backpropagation.

% Create a Fitting Network


hiddenLayerSize = 10;
net = fitnet(hiddenLayerSize,trainFcn);

% Setup Division of Data for Training, Validation,


Testing
net.divideParam.trainRatio = 70/100;
net.divideParam.valRatio = 15/100;
net.divideParam.testRatio = 15/100;
% Train the Network
[net,tr] = train(net,x,t);
% Test the Network
y = net(x);
e = gsubtract(t,y);
performance = perform(net,t,y)
% View the Network
view(net)
% Plots
% Uncomment these lines to enable various plots.
%figure, plotperform(tr)
%figure, plottrainstate(tr)

7
REDES NEURONALES

%figure, ploterrhist(e)
%figure, plotregression(t,y)
%figure, plotfit(net,x,t)

% Solve an Input-Output Fitting problem with a Neural


Network
% Script generated by Neural Fitting app
% Created 09-Aug-2018 15:42:48
%
% This script assumes these variables are defined:
%
% i - input data.
% t - target data.

x = i;
t = t;

% Choose a Training Function


% For a list of all training functions type: help
nntrain
% 'trainlm' is usually fastest.
% 'trainbr' takes longer but may be better for
challenging problems.
% 'trainscg' uses less memory. Suitable in low memory
situations.
trainFcn = 'trainlm'; % Levenberg-Marquardt
backpropagation.

% Create a Fitting Network


hiddenLayerSize = 10;
net = fitnet(hiddenLayerSize,trainFcn);

% Choose Input and Output Pre/Post-Processing Functions


% For a list of all processing functions type: help
nnprocess
net.input.processFcns =
{'removeconstantrows','mapminmax'};
net.output.processFcns =
{'removeconstantrows','mapminmax'};

% Setup Division of Data for Training, Validation,


Testing
% For a list of all data division functions type: help
nndivide
net.divideFcn = 'dividerand'; % Divide data randomly

8
REDES NEURONALES

net.divideMode = 'sample'; % Divide up every sample


net.divideParam.trainRatio = 70/100;
net.divideParam.valRatio = 15/100;
net.divideParam.testRatio = 15/100;

% Choose a Performance Function


% For a list of all performance functions type: help
nnperformance
net.performFcn = 'mse'; % Mean Squared Error

% Choose Plot Functions


% For a list of all plot functions type: help nnplot
net.plotFcns =
{'plotperform','plottrainstate','ploterrhist', ...
'plotregression', 'plotfit'};

% Train the Network


[net,tr] = train(net,x,t);

% Test the Network


y = net(x);
e = gsubtract(t,y);
performance = perform(net,t,y)

% Recalculate Training, Validation and Test Performance


trainTargets = t .* tr.trainMask{1};
valTargets = t .* tr.valMask{1};
testTargets = t .* tr.testMask{1};
trainPerformance = perform(net,trainTargets,y)
valPerformance = perform(net,valTargets,y)
testPerformance = perform(net,testTargets,y)

% View the Network


view(net)

% Plots
% Uncomment these lines to enable various plots.
%figure, plotperform(tr)
%figure, plottrainstate(tr)
%figure, ploterrhist(e)
%figure, plotregression(t,y)
%figure, plotfit(net,x,t)
% Deployment
% Change the (false) values to (true) to enable the
following code blocks.

9
REDES NEURONALES

% See the help for each generation function for more


information.
if (false)
% Generate MATLAB function for neural network for
application
% deployment in MATLAB scripts or with MATLAB
Compiler and Builder
% tools, or simply to examine the calculations your
trained neural
% network performs.
genFunction(net,'myNeuralNetworkFunction');
y = myNeuralNetworkFunction(x);
end
if (false)
% Generate a matrix-only MATLAB function for neural
network code
% generation with MATLAB Coder tools.

genFunction(net,'myNeuralNetworkFunction','MatrixOnly','
yes');
y = myNeuralNetworkFunction(x);
end
if (false)
% Generate a Simulink diagram for simulation or
deployment with.
% Simulink Coder tools.
gensim(net);
end

5. Explicación de la solución y Conclusiones


Obtenidos los output de la red neuronal podemos decir que las corrientes dependen
de las vibraciones del anillo y sus valores a medida que muelen la roca, por lo tanto
podemos proyectar estos valores como una función del tiempo para visualizar en
que momento el componente es propenso a sufrir una falla. Con esto, podemos
decir que sabemos en qué valores se va comportando la corriente del equipo y por
ejemplo, emitir alguna alerta en caso que los valores se vayan saliendo del tango
adecuado emitido por el fabricante. Finalmente, a modo de conclusión las redes
neuronales tienen un campo de aplicación enorme y las posibilidades de poder
aportar en procesos productivos, automatizando el control de las variables son muy
viables, siempre y cuando se maneje la parte técnica y el funcionamiento del
componente que se está analizando.

10

You might also like