Professional Documents
Culture Documents
Nombre de la prctica: Sistema de inferencia difusa, y redes neuronales. Nombres: Real Trujillo Nora Helena
Introduccin.-
Reporte de practicas de Sistemas Neurodifusos 2MM6 Lunes y Martes de 8:30-10:00 Una red neuronal se compone de unidades llamadas neuronas. Cada neurona recibe una serie de entradas a travs de interconexiones y emite una salida. Esta salida viene dada por tres funciones: 1. Una funcin de propagacin (tambin conocida como funcin de excitacin), que por lo general consiste en el sumatorio de cada entrada multiplicada por el peso de su interconexin (valor neto). Si el peso es positivo, la conexin se denomina excitatoria; si es negativo, se denomina inhibitoria. 2. Una funcin de activacin, que modifica a la anterior. Puede no existir, siendo en este caso la salida la misma funcin de propagacin. 3. Una funcin de transferencia, que se aplica al valor devuelto por la funcin de activacin. Se utiliza para acotar la salida de la neurona y generalmente viene dada por la interpretacin que queramos darle a dichas salidas. Algunas de las ms utilizadas son la funcin sigmoidea (para obtener valores en el intervalo [0,1]) y la tangente hiperblica (para obtener valores en el intervalo [-1,1]). Planteamiento del problema 1.Se desea orientar la posicin del generador segn el de la veleta. La veleta estar sin mantener una posicin especifica, ya que se orientara sola con respecto al aire. Una vez que la veleta esta posicionada, hay que orientar el generador en la misma posicin de la veleta. Objetivo 1.Que el alumno implemente los sistemas de inferencia difusa para poder resolver problemas que puedan ser solucionados con este mtodo simplificando su control. Desarrollo 1.primero se realiz un programa a partir de FIS, utilizando el toolbox de MATLAB donde se modelo una veleta y el generador, se establecieron los parmetros de las velocidades, posiciones y sentidos bajo los cuales se regir nuestro sistema. Programa 1.fprintf('\Orientacion de Generador con respecto a Veleta\n'); %caracterizacion de universos i=1; for x= 0:360 if x<60 GNorte1(i)=1; VNorte1(i)=1; GEste(i)=0; GSur(i)=0;
UN1=VNorte1(Vvel+1); UE=VEste(Vvel+1); US=VSur(Vvel+1); UO=VOeste(Vvel+1); UN2=VNorte2(Vvel+1); % UGN1=GNorte1(Vgen+1); UGE=GEste(Vgen+1); UGS=GSur(Vgen+1); UGO=GOeste(Vgen+1); UGN2=GNorte2(Vgen+1); %Evaluacion de reglas R1=min(UN1,UGN1); R2=min(UE,UGN1); R3=min(US,UGN1); R4=min(UO,UGN1); R5=min(UN2,UN1); R6=min(UN1,UGE); R7=min(UE,UGE); R8=min(US,UGE); R9=min(UO,UGE); R10=min(UN2,UGE); R11=min(UN1,UGS); R12=min(UE,UGS); R13=min(US,UGS); R14=min(UO,UGS); R15=min(UN2,UGS); R16=min(UN1,UGO); R17=min(UE,UGO); R18=min(US,UGO); R19=min(UO,UGO); R20=min(UN2,UGO); R21=min(UN1,UGN2); R22=min(UE,UGN2); R23=min(US,UGN2); R24=min(UO,UGN2); R25=min(UN2,UGN2); CorteBaja=max([R1,R2,R5,R7,R8,R13,R14,R18,R19,R20,R21,R24,R25]'); CorteMedia=max([R3,R4,R6,R9,R12,R15,R16,R22]'); CorteAlta=max([R10,R11,R17,R23]'); % CorteNoMover=([R1,R5,R7,R13,R19,R21,R25]'); CorteHorario=([R2,R3,R8,R9,R10,R11,R14,R15,R16,R17,R20,R22]'); CorteAntihorario=([R4,R6,R12,R18,R24]'); %Recorte de conjuntos de salida %Velocidad for x=0:100 if Baja(x+1) < CorteBaja BajaRec(x+1)=Baja(x+1); else BajaRec(x+1)=CorteBaja; end if Media(x+1)<CorteMedia MediaRec(x+1)=Media(x+1); else
% % %end for x=0:30 if Horario(x+1)<CorteHorario HorarioRec(x+1)=Horario(x+1); else HorarioRec(x+1)=CorteHorario; end if Nomover(x+1)<CorteNomover NomoverRec(x+1)=Nomover(x+1); else NomoverRec(x+1)=CorteNomover; end
if Antihorario(x+1)<CorteAntihorario AntihorarioRec(x+1)=Antihorario(x+1); else AntihorarioRec(x+1)=CorteAntihorario; end end %union de conjuntos recortador para poder defuzzyficar CurvaVel=max([BajaRec;MediaRec;AltaRec]); CurvaSen=max([HorarioRec;NoMoverRec;AntihorarioRec]); %Defuzzyficacion
Planteamiento del problema 2.Modelar el comportamiento de una compuerta NOR bipolar. Objetivo 2.Que el alumno implemente los sistemas de inferencia difusa para poder resolver problemas que puedan ser solucionados con este mtodo simplificando su control. Desarrollo 2.Se planteo la tabla de verdad de la compuerta y lo necesario para poder separarla en sus puntos. De ah establecer como se entrenara la neurona. Programa 2.close; clear all; clc; %w=[0,0]; w=rand(1,2); p1=[0;0]; p2=[0;1]; p3=[1;0]; p4=[1;1]; b=rand; f=input('Introduzca el nmero de interacciones: for x=0:f a=hardlim(w*p1+b); e= 1-a; w=w+e*p1'; b=b+e; a=hardlim(w*p2+b); e= 0-a; w=w+e*p2'; b=b+e; a=hardlim(w*p3+b); e= 0-a; w=w+e*p3'; b=b+e; a=hardlim(w*p4+b); e= -a; w=w+e*p4'; b=b+e;
');
end w b pe=-w(2)/w(1); x=-3:0.1:3; x2=-1:0.1:0; y=pe.*x; plot(x,y); axis([-3 3 -3 3]) grid on hold on y2=-1./pe.*x2; plot(p1(1),p1(2),'*b'); hold on; plot(p2(1),p2(2),'*b'); hold on; plot(p3(1),p3(2),'*b'); hold on; plot(p4(1),p4(2),'*b'); hold on; plot(x2,y2); pf(1)=input('primer valor de p: '); pf(2)=input('segundo valor de p: '); hold on; plot(pf(1),pf(2),'*r'); a=hardlim(w*pf'+b)
a1=hardlim(w1*p8+b1); e=0-a1; w1=w1+e*p8'; b1=b1+e; a2=hardlim(w2*p8+b2); e=0-a2; w2=w2+e*p8'; b2=b2+e; end w1 w2 b1 b2 pe1=-w1(2)/w1(1); pe2=-w2(2)/w2(1); x=-3:0.1:3; x2=-1:0.1:0; x3=0:0.01:0.3; y1=pe1.*x; y2=pe2.*x; plot(x,y1); axis([-3 3 -3 3]) grid on hold on plot(x,y2,'r'); hold on; y3=-1./pe1.*x2; y4=-1./pe2.*x3; plot(p1(1),p1(2),'<b'); hold on; plot(p2(1),p2(2),'<b'); hold on; plot(p3(1),p3(2),'ob'); hold on; plot(p4(1),p4(2),'ob'); hold on; plot(p5(1),p5(2),'*b'); hold on;
Graficas.Los siguientes conjuntos son los mismos para la veleta y el generador, los mismos valores en las mismas fronteras, solo que con diferentes nombres, ya que uno se posiciona sola y solo se establece bajo que parmetros esta, y el otro tiene que llegar a los parmetros.
Representacin de los 5 conjuntos de Representacin los conjuntos difusos orientacin utilizados. de la velocidad.
Obtenida con Fuzzy Logic del Superficie de control obtenida toolbox MATLAB. por el programa realizado.