UNIVERSIDAD NACIONAL DEL CALLAO
Facultad de Ingeniera Elctrica y Electrnica
Escuela Profesional de Ingeniera Electrnica
LABORATORIO DE CONTROL INTELIGENTE
Tema:
REGRESION DE LA CURVA CARACTERISTICA DE UN
TERMISTOR CON REDES NEURONALES
Profesor:
Ing. RODRIGUEZ BUSTINZA, RICARDO
Alumnos:
SALVATIERRA ALTAMIRANO, ESTEBAN
CADILLO VILLANUEVA ANTHONY
LORA VERAMENDI RONAL
1023220495
1023220236
102321013
LIMA -- PERU
2015-A
REGRESION DE LA CURVA CARACTERISTICA DE UN TERMISTOR CON
REDES NEURONALES
1.-Termistor NTC:
LABORATORIO DE CONTROL INTELIGENTE
Un termistor es un sensor resistivo de temperatura. Su funcionamiento se basa
en la variacin de la resistividad que presenta un semiconductor con la
temperatura. El trmino termistor proviene de Thermally Sensitive Resistor.
NTC (Negative Temperature Coefficient) coeficiente de temperatura negativo.
El siguiente modelo caracteriza la relacin entre la temperatura y la resistencia
mediante dos parmetros:
RT es la resistencia del termistor NTC a la temperatura T (K)
TR: o To es la temperatura de referencia (298K)
R0 es la resistencia del termistor NTC a la temperatura de referencia
(T=25C=298K)
B es la temperatura caracterstica del material, entre 2000 K y 5000 K.
Fig 1. Circuito de medicin de voltaje del NTC
Ecuaciones del diseo:
Temperatura en funcin del voltaje medido por la tarjeta de adquisicin de
datos y labview:
.Ecuacin 1
Parmetros de nuestro termistor utilizado:
2.- Adquisicin de datos:
Adquirimos los datos, en este caso ser la variacin del voltaje del sensor NTC
que ser convertida a temperatura mediante el software Labview.
ESCUELA PROFESIONAL DE INGENIERIA ELECTRONICA
LABORATORIO DE CONTROL INTELIGENTE
Fig 2. Esquema de adquisicin de datos
La adquisicion de datos se guarda en el archivo: data71.lvm
Fig 3. Plateo los datos en Matlab
3.- Algoritmo de entrenamiento para la adquisicin de temperatura:
Una vez obtenido los datos voltaje y temperatura del sensor NTC se procede a
elaborar el algoritmo usando redes neuronales multicapa [1-4-1]; usando una
entrada 4 neuronas ocultas y una neurona de salida.
P=voltaje=data71(:,2)'
T=temperatura=data71(:,4)'
Entrenamiento de la red neuronal:
Programa1:
%Termistor NTC Algoritmo TRN 2 CAPAS [4 1]
ESCUELA PROFESIONAL DE INGENIERIA ELECTRONICA
LABORATORIO DE CONTROL INTELIGENTE
close all; clear all; clc
%DATA P=IMPUT(Voltaje), T=TARGET(TEMPERATURA)
load data71.lvm
P=data71(:,2)';
T=data71(:,4)';
%CREANDO LA RED NEURONAL
NO=4; %numero de neuronas ena la capa 1 (capa oculta)
net=newff(minmax(P),[NO 1],{'logsig','purelin'},'trainlm');
%Pesos iniciales aleatorios
net.iw{1,1}=-1+2*rand(NO,1);
%Pesos capa oculta
net.lw{2,1}=-1+2*rand(1,NO);
%Pesos capa de salida
net.b{1}=-1+2*rand(NO,1);
%Bias capa oculta
net.b{2}=-1+2*rand(1);
%Bias capa de salida
%Parametros de entrenamiento
net.trainParam.epochs=500;
net.trainParam.lr=0.05;
net.trainParam.goal=1e-5;
net.trainParam.show=50;
[net,tr]=train(net,P,T);
%Simulando La RED y ERROR
a=sim(net,P);
e=T-a;
%Actualiza pesos y Bias
wh=net.iw{1,1};
wo=net.lw{2,1};
bh=net.b{1};
bo=net.b{2};
%Ploteo de Performance
figure(1)
subplot(211)
plot(tr.epoch,tr.perf,'r')
title('Performance de la red (E_{mse})');grid on
subplot(212)
plot(tr.epoch,tr.gradient,'k')
title('Evolucion del gradiente \nabla_x');grid on
%Ploteo de red neuronal entrenada
figure(2)
plot(P,T,'r','Linewidth',2);hold on
plot(P,a,'b','Linewidth',1)
title('Red neuronal entrenada');
xlabel('Voltaje [V]');ylabel('Temperatura [C]')
legend('Data','Red entrenada');grid on
Fig 4. Estructura de la red neuronal multicapa
ESCUELA PROFESIONAL DE INGENIERIA ELECTRONICA
LABORATORIO DE CONTROL INTELIGENTE
Fig 5. Ploteo de Performance
Fig 6. Ploteo de red neuronal entrenada
Programa2: algoritmo cdigo puro y data normalizada
% TERMISTOR NTC ALGORITMO PURO 2 CAPAS [1-4-1]
clear all, close all, clc;
% DATA NORMALIZADA [0 1], P=IMPUT(voltaje), T=TARGET(temperatura)
load data71.lvm
P=(1/(max(data71(:,2))-min(data71(:,2)))*(data71(:,2)-min(data71(:,2))))';
T=(1/(max(data71(:,4))-min(data71(:,4)))*(data71(:,4)-min(data71(:,4))))';
%PESOS INICIALES ALEATORIOS
nc1=4;
v=-1+2*rand(nc1,1); % numero de neuronas en la capa1 (capa oculta)
w=-1+2*rand(1,nc1);
% pesos capa ocuta
vo=-1+2*rand(nc1,1); % bias capa oculta
wo=-1+2*rand(1); % bias capa de salida
ESCUELA PROFESIONAL DE INGENIERIA ELECTRONICA
LABORATORIO DE CONTROL INTELIGENTE
% coeficiente de aprendizaje
af=0.7;
emse=1;
epochs=0;
fn=@(var)(1/(1+exp(-var))); % funcion sigmoide
while(epochs<500&&emse>1e-5)
a= zeros(1,length(T));
numIn = length (P(1,:));
for i=1:numIn
% CAPA OCULTA
for j= 1:nc1
s1(j) = vo(j)+P(i)*v(j);
z(j) = fn(s1(j));
end
% CAPA SALIDA
net = wo;
for j=1:nc1
net = net+z(j)*w(j);
end
a(i)=fn(net);
%ajuste de los incrementos para la capa de salida (net3)
% delta(wi) = xi*delta
%delta = (t-a)*a*(1*a)
delta2=(T(i)-a(i))*a(i)*(1-a(i));
%Ajuste de los incrementos para las capas ocultas
%El incremento final se obtiene al multiplicar deltas entre capas
%ocultas, y capa de salida(ver derivasdas parciales)
for j=1:nc1
delta1(j)=z(j)*(1-z(j))*w(j)*delta2;
end
%sumar cambios de pesos de los pesos originales
%y usar los nuevos pesos en una nueva iteracion
%delta weight=n*x*delta
for j=1:nc1
vo(j)=vo(j)+af*delta1(j);
v(j)=v(j)+af*P(i)*delta1(j);
w(j)=w(j)+af*z(j)*delta2;
end
wo=wo+af*delta2;
end
%error EMS;
e=T-a;
emse=mse(e);
epochs=epochs+1;
end
%ploteo de red neuronal entrenada
volt=data71(:,2)';
temp1=data71(:,4);
temp2=a*(max(data71(:,4))-min(data71(:,4)))+min(data71(:,4));
figure(1)
plot(volt,temp1,'r','LineWidth',2);hold on
plot(volt,temp2,'b','LineWidth',1);
title('Red Neuronal Entrenada')
xlabel('voltaje[v]');ylabel('Temperatura[C]');
legend('Data','Red Entrenada');grid on
ESCUELA PROFESIONAL DE INGENIERIA ELECTRONICA
LABORATORIO DE CONTROL INTELIGENTE
Fig 7. Ploteo de red neuronal entrenada (data normalizada)
CONCLUSIONES:
En la adquisicin de datos se hizo variar la temperatura del termistor
NTC lo mximo posible esto se logr utilizando un cautn de soldar. Para
obtener una data adecuada.
Gracias a l software Labview es posible ver la variacin de temperatura
de los sensores de forma ms clara.
Con la tarjeta de adquisicin de datos se facilita mucho este tipo de
implementaciones, debido al efecto de poder comunicar la seal de
salida de los sensores de temperatura con el computador para ver su
comportamiento.
El entrenamiento de la red se logr gracias a una red neuronal multicapa
[1 4 1], se realiz dos programaciones una usando la data entregada por
la tarjeta de adquisicin de datos y la otra normalizando esta data (solo
ceros y unos).
La grafica de la red entrenada mejoraba cada vez que se aumentaba el
nmero de iteraciones o disminuyendo el error mse.
ESCUELA PROFESIONAL DE INGENIERIA ELECTRONICA