Date post: | 13-Dec-2015 |
Category: |
Documents |
Upload: | daniel-nahuis-tisnado |
View: | 19 times |
Download: | 4 times |
UNIVERSIDAD NACIONAL DEL CALLAOFacultad de Ingeniería Eléctrica y ElectrónicaEscuela Profesional de Ingeniería Electrónica
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 1023220495
CADILLO VILLANUEVA ANTHONY 1023220236
LORA VERAMENDI RONAL 102321013
LIMA -- PERU
2015-A
LABORATORIO DE CONTROL INTELIGENTE
REGRESION DE LA CURVA CARACTERISTICA DE UN TERMISTOR CON REDES NEURONALES
1.-Termistor NTC:Un termistor es un sensor resistivo de temperatura. Su funcionamiento se basa en la variación de la resistividad que presenta un semiconductor con la temperatura. El término termistor proviene de Thermally Sensitive Resistor. NTC (Negative Temperature Coefficient) – coeficiente de temperatura negativo.
El siguiente modelo caracteriza la relación entre la temperatura y la resistencia mediante dos parámetros:
RT es la resistencia del termistor NTC a la temperatura T (K)TR: o To es la temperatura de referencia (298°K)R0 es la resistencia del termistor NTC a la temperatura de referencia (T=25°C=298°K)B es la temperatura característica del material, entre 2000 K y 5000 K.
Fig 1. Circuito de medición de voltaje del NTC
Ecuaciones del diseño:
Temperatura en función del voltaje medido por la tarjeta de adquisición de datos y labview:
…….Ecuación 1Parámetros de nuestro termistor utilizado:
ESCUELA PROFESIONAL DE INGENIERIA ELECTRONICA 2
LABORATORIO DE CONTROL INTELIGENTE
2.- Adquisición de datos:Adquirimos los datos, en este caso será la variación del voltaje del sensor NTC que será convertida a temperatura mediante el software Labview.
Fig 2. Esquema de adquisición 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 adquisición 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)'
ESCUELA PROFESIONAL DE INGENIERIA ELECTRONICA 3
LABORATORIO DE CONTROL INTELIGENTE
Entrenamiento de la red neuronal:Programa1:%Termistor NTC Algoritmo TRN 2 CAPAS [4 1]close all; clear all; clc%DATA P=IMPUT(Voltaje), T=TARGET(TEMPERATURA)load data71.lvmP=data71(:,2)';T=data71(:,4)';%CREANDO LA RED NEURONALNO=4; %numero de neuronas ena la capa 1 (capa oculta)net=newff(minmax(P),[NO 1],{'logsig','purelin'},'trainlm');%Pesos iniciales aleatoriosnet.iw{1,1}=-1+2*rand(NO,1); %Pesos capa ocultanet.lw{2,1}=-1+2*rand(1,NO); %Pesos capa de salidanet.b{1}=-1+2*rand(NO,1); %Bias capa ocultanet.b{2}=-1+2*rand(1); %Bias capa de salida%Parametros de entrenamientonet.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 ERRORa=sim(net,P);e=T-a;%Actualiza pesos y Biaswh=net.iw{1,1};wo=net.lw{2,1};bh=net.b{1};bo=net.b{2};%Ploteo de Performancefigure(1)subplot(211)plot(tr.epoch,tr.perf,'r')title('Performance de la red (E_{mse})');grid onsubplot(212)plot(tr.epoch,tr.gradient,'k')title('Evolucion del gradiente \nabla_x');grid on%Ploteo de red neuronal entrenadafigure(2)plot(P,T,'r','Linewidth',2);hold onplot(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 4
LABORATORIO DE CONTROL INTELIGENTE
Fig 5. Ploteo de Performance
Fig 6. Ploteo de red neuronal entrenada
Programa2: algoritmo código 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.lvmP=(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 ALEATORIOSnc1=4;v=-1+2*rand(nc1,1); % numero de neuronas en la capa1 (capa oculta)w=-1+2*rand(1,nc1); % pesos capa ocutavo=-1+2*rand(nc1,1); % bias capa oculta wo=-1+2*rand(1); % bias capa de salida
ESCUELA PROFESIONAL DE INGENIERIA ELECTRONICA 5
LABORATORIO DE CONTROL INTELIGENTE
% coeficiente de aprendizajeaf=0.7;emse=1;epochs=0;fn=@(var)(1/(1+exp(-var))); % funcion sigmoidewhile(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 entrenadavolt=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 onplot(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 6
LABORATORIO DE CONTROL INTELIGENTE
Fig 7. Ploteo de red neuronal entrenada (data normalizada)
CONCLUSIONES:
En la adquisición de datos se hizo variar la temperatura del termistor NTC lo máximo posible esto se logró utilizando un cautín de soldar. Para obtener una data adecuada.
Gracias a él software Labview es posible ver la variación de temperatura de los sensores de forma más clara.
Con la tarjeta de adquisición de datos se facilita mucho este tipo de implementaciones, debido al efecto de poder comunicar la señal 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 adquisición 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 número de iteraciones o disminuyendo el error mse.
ESCUELA PROFESIONAL DE INGENIERIA ELECTRONICA 7