📄 fuzz_pid.m
字号:
a = newfis('fuzz_pid');
k1 = 1.0;
k11 = 0.5;
a = addvar(a,'input','deta1',[-4*k1,4*k1]);
a = addmf(a,'input',1,'NVH','gaussmf',[k11,-4*k1]);
a = addmf(a,'input',1,'NH','gaussmf',[k11,-3*k1]);
a = addmf(a,'input',1,'NL','gaussmf',[k11,-2*k1]);
a = addmf(a,'input',1,'NVL','gaussmf',[k11,-1*k1]);
a = addmf(a,'input',1,'ZERO','gaussmf',[k11,0*k1]);
a = addmf(a,'input',1,'PVL','gaussmf',[k11,1*k1]);
a = addmf(a,'input',1,'PL','gaussmf',[k11,2*k1]);
a = addmf(a,'input',1,'PH','gaussmf',[k11,3*k1]);
a = addmf(a,'input',1,'PVH','gaussmf',[k11,4*k1]);
k2 = 1.0;
k21 = 0.5;
a = addvar(a,'input','deta2',[-4*k2,4*k2]);
a = addmf(a,'input',2,'NVH','gaussmf',[k21,-4*k2]);
a = addmf(a,'input',2,'NH','gaussmf',[k21,-3*k2]);
a = addmf(a,'input',2,'NL','gaussmf',[k21,-2*k2]);
a = addmf(a,'input',2,'NVL','gaussmf',[k21,-1*k2]);
a = addmf(a,'input',2,'ZERO','gaussmf',[k21,0*k2]);
a = addmf(a,'input',2,'PVL','gaussmf',[k21,1*k2]);
a = addmf(a,'input',2,'PL','gaussmf',[k21,2*k2]);
a = addmf(a,'input',2,'PH','gaussmf',[k21,3*k2]);
a = addmf(a,'input',2,'PVH','gaussmf',[k21,4*k2]);
k3 = 1.0;
k31 = 0.05;
a = addvar(a,'output','lamed',[0*k3,1*k3]);
a = addmf(a,'output',1,'ZERO','gaussmf',[k31,0*k3]);
a = addmf(a,'output',1,'PVVL','gaussmf',[k31,0.125*k3]);
a = addmf(a,'output',1,'PVL','gaussmf',[k31,0.25*k3]);
a = addmf(a,'output',1,'PL','gaussmf',[k31,0.375*k3]);
a = addmf(a,'output',1,'PM','gaussmf',[k31,0.5*k3]);
a = addmf(a,'output',1,'PH','gaussmf',[k31,0.625*k3]);
a = addmf(a,'output',1,'PVH','gaussmf',[k31,0.75*k3]);
a = addmf(a,'output',1,'PVVH','gaussmf',[k31,0.875*k3]);
a = addmf(a,'output',1,'PMAX','gaussmf',[k31,1*k3]);
rulelist = [1 1 9 1 1;
1 2 8 1 1;
1 3 7 1 1;
1 4 6 1 1;
1 5 5 1 1;
1 6 6 1 1;
1 7 7 1 1;
1 8 8 1 1;
1 9 9 1 1;
2 1 8 1 1;
2 2 7 1 1;
2 3 6 1 1;
2 4 5 1 1;
2 5 4 1 1;
2 6 5 1 1;
2 7 6 1 1;
2 8 7 1 1;
2 9 8 1 1;
3 1 7 1 1;
3 2 6 1 1;
3 3 5 1 1;
3 4 4 1 1;
3 5 3 1 1;
3 6 4 1 1;
3 7 5 1 1;
3 8 6 1 1;
3 9 7 1 1;
4 1 6 1 1;
4 2 5 1 1 4 3 4 1 1;
4 4 3 1 1;
4 5 2 1 1;
4 6 3 1 1;
4 7 4 1 1;
4 8 5 1 1;
4 9 6 1 1;
5 1 5 1 1;
5 2 4 1 1;
5 3 3 1 1;
5 4 2 1 1;
5 5 1 1 1;
5 6 2 1 1;
5 7 3 1 1;
5 8 4 1 1;
5 9 5 1 1;
6 1 6 1 1;
6 2 5 1 1;
6 3 4 1 1;
6 4 3 1 1;
6 5 2 1 1;
6 6 3 1 1;
6 7 4 1 1;
6 8 5 1 1;
6 9 6 1 1;
7 1 7 1 1;
7 2 6 1 1;
7 3 5 1 1;
7 4 4 1 1;
7 5 3 1 1;
7 6 4 1 1;
7 7 5 1 1;
7 8 6 1 1;
7 9 7 1 1;
8 1 8 1 1;
8 2 7 1 1;
8 3 6 1 1;
8 4 5 1 1;
8 5 4 1 1;
8 6 5 1 1;
8 7 6 1 1;
8 8 7 1 1;
8 9 8 1 1;
9 1 9 1 1;
9 2 8 1 1;
9 3 7 1 1;
9 4 6 1 1;
9 5 5 1 1;
9 6 6 1 1;
9 7 7 1 1;
9 8 8 1 1;
9 9 9 1 1;
];
a = addrule(a,rulelist);
%showrule(a);
%ruleview(a);
a1 = setfis(a,'DefuzzMethod','centroid'); %defuzzy
writefis(a1,'fuzzyPID');
fuzzyload = readfis('fuzzyPID');
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -