% produce i grafici per il classico ragionamento MaxMin impiegato
% nel controllo fuzzy
% Non chiama altre funzioni
% E' chiamata da GUmenu
% Per un uso manuale scommentare la linea 25
% GU Mar03


xb = (0:0.1:9.9)';
len=max(size(xb));

a1=trap_mf(xb, [-0.1, 0, 2, 4]);
a2=trap_mf(xb, [2, 4, 5, 7]);
a3=trap_mf(xb, [5, 7, 10.2, 10.3]);


s=3;
c1=exts_mf(xb, [2, 8, s]) ;
c2=exts_mf(xb, [9, 3, s]) ;

figure(1)
% subplot(211),plot([a1,a2,a3])
% subplot(212),plot([c1, c2])

in1=U1val; in2=U2val;
%in1=25; in2=35;

%R1: a1&a2-->c1;
v11=a1(in1);  v12=a2(in2);
vv1=min(v11,v12);
C1=min(c1,vv1);

%R2: a2&a1-->c2;
v21=a2(in1);  v22=a1(in2);
vv2=min(v21,v22);
C2=min(c2,vv2);

C=max(C1,C2);

%figure
subplot(331)
plot(a1); hold on;
plot([in1, in1],[0, 1],'r');
plot([1,len],[v11,v11],'r');
ylabel('R1')
hold off

subplot(332)
plot(a2); hold on;
plot([in2, in2],[0, 1],'r');
plot([1,len],[v12,v12],'r');
hold off

subplot(333)
plot(c1); hold on;
plot([1,len],[vv1,vv1],'r');
plot(C1,'g')
hold off

subplot(334)
plot(a2); hold on;
plot([in1, in1],[0, 1],'r');
plot([1,len],[v21,v21],'r');
xlabel('in1')
ylabel('R2')
hold off

subplot(335)
plot(a1); hold on;
plot([in2, in2],[0, 1],'r');
plot([1,len],[v22,v22],'r');
xlabel('in2')
hold off

subplot(336)
plot(c2); hold on;
plot([1,len],[vv2,vv2],'r');
plot(C2,'g')
hold off

subplot(339)
plot(C), axis([1,len,0,1])
text(30,0.8,['defuzz=', num2str(defuzzy(xb,C,1))])
