Sei sulla pagina 1di 6

Assignment No 3

Fuzzy Control Systems


Muhammad Hasanat Ismaeel
19-MS-EE-009
Code:
clear all;
close all;
clc
a=newfis('assignment3');

%%Error as input and its MFs


a=addvar(a,'input','e',[-3,3]);
a=addmf(a,'input',1,'NB','zmf',[-3,-1]);
a=addmf(a,'input',1,'NM','trimf',[-3,-2,0]);
a=addmf(a,'input',1,'NS','trimf',[-3,-1,1]);
a=addmf(a,'input',1,'Z','trimf',[-2,0,2]);
a=addmf(a,'input',1,'PS','trimf',[-1,1,3]);
a=addmf(a,'input',1,'PM','trimf',[0,2,3]);
a=addmf(a,'input',1,'PB','smf',[1,3]);

%%Change in error as input and its MFs


a=addvar(a,'input','ec',[-3,3]);
a=addmf(a,'input',2,'NB','zmf',[-3,-1]);
a=addmf(a,'input',2,'NM','trimf',[-3,-2,0]);
a=addmf(a,'input',2,'NS','trimf',[-3,-1,1]);
a=addmf(a,'input',2,'Z','trimf',[-2,0,2]);
a=addmf(a,'input',2,'PS','trimf',[-1,1,3]);
a=addmf(a,'input',2,'PM','trimf',[0,2,3]);
a=addmf(a,'input',2,'PB','smf',[1,3]);

%%Output and its MF's


f=5
a=addvar(a,'output','u',[-4*f,4*f]);
a=addmf(a,'output',1,'NB','zmf',[-4*f,-1.5*f]);
a=addmf(a,'output',1,'NM','trimf',[-4*f,-2.5*f,-0.5*f]);
a=addmf(a,'output',1,'NS','trimf',[-4*f,-1*f,2*f]);
a=addmf(a,'output',1,'Z','trimf',[-3*f,0,3*f]);
a=addmf(a,'output',1,'PS','trimf',[-2*f,1*f,4*f]);
a=addmf(a,'output',1,'PM','trimf',[0.5*f,2.5*f,4*f]);
a=addmf(a,'output',1,'PB','smf',[2*f,4*f]);

%%Rule List
rulelist=[1 1 1 1 1;
1 2 1 1 1;
1 3 2 1 1;
1 4 2 1 1;
1 5 3 1 1;
1 6 3 1 1;
1 7 4 1 1;

2 1 1 1 1;
2 2 2 1 1;
2 3 2 1 1;
2 4 3 1 1;
2 5 3 1 1;
2 6 4 1 1;
2 7 5 1 1;

3 1 2 1 1;
3 2 2 1 1;
3 3 3 1 1;
3 4 3 1 1;
3 5 4 1 1;
3 6 5 1 1;
3 7 5 1 1;

4 1 2 1 1;
4 2 3 1 1;
4 3 3 1 1;
4 4 4 1 1;
4 5 5 1 1;
4 6 5 1 1;
4 7 6 1 1;

5 1 3 1 1;
5 2 3 1 1;
5 3 4 1 1;
5 4 5 1 1;
5 5 5 1 1;
5 6 6 1 1;
5 7 6 1 1;

6 1 3 1 1;
6 2 4 1 1;
6 3 5 1 1;
6 4 5 1 1;
6 5 6 1 1;
6 6 6 1 1;
6 7 7 1 1;

7 1 4 1 1;
7 2 5 1 1;
7 3 5 1 1;
7 4 6 1 1;
7 5 6 1 1;
7 6 7 1 1;
7 7 7 1 1];

a=addrule(a,rulelist);
showrule(a)

%Storing in FIS file


writefis(a,'assignment3');
a=readfis('assignment3');

Ulist=zeros(7,7);
for i=1:7
for j=1:7
e(i)=-4+i;
ec(j)=-4+j;
Ulist(i,j)=evalfis([e(i),ec(j)],a);
end
end
j=ceil(Ulist)

figure(1);
plotfis(a);
figure(2);

plotmf(a,'input',1);
figure(3);
plotmf(a,'input',2);
figure(4);
plotmf(a,'output',1);
figure(5);
gensurf(a);

System Diagram:
Input E Membership Function:

Input CE Membership Function:


Output Membership Function:

Fuzzy Simulink:
Output Membership:

Output Membership with Reference:

Potrebbero piacerti anche