gen_tippa.m

来自「书籍代码:遗传演算法原理与应用_活用MATLAB(Source Code)」· M 代码 · 共 52 行

M
52
字号
% gen_tippa.m
% Generate a FIS from scratch.

% PenChen Chou, Aug. 19, 2001.

% New FIS with Sugeno style.
a=newfis('tippa','sugeno','prod','probor','min','max','wtaver');  % NAME of FIS

% SHOW YOU THAT ARGUMENTS CAN BE CHANGED THROUGH VARIABLES
% APPEND VARS AND MFS to tippa.
a=addvar(a,'input','cart',[-2 2]);
a=rmmf(a,'input',1,'mf1',1);
a=rmmf(a,'input',1,'mf2',1);
a=rmmf(a,'input',1,'mf3',1);
a=addmf(a,'input',1,'near_A','trapmf',[-2 -2 -0.5 0.5]);
a=addmf(a,'input',1,'near_B','trapmf',[-0.5 0.5 2 2]);

a=addvar(a,'input','prop',[-3 3]);
a=rmmf(a,'input',2,'mf1',1);
a=rmmf(a,'input',2,'mf2',1);
a=rmmf(a,'input',2,'mf3',1);
a=addmf(a,'input',2,'L','trapmf',[-3 -3 3 3]);
a=addvar(a,'input','int',[-10 10]);
a=rmmf(a,'input',3,'mf1',1);
a=rmmf(a,'input',3,'mf2',1);
a=rmmf(a,'input',3,'mf3',1);
a=addmf(a,'input',3,'L','trapmf',[-10 -10 10 10]);
a=addvar(a,'input','deriv',[-300 300]);
a=rmmf(a,'input',4,'mf1',1);
a=rmmf(a,'input',4,'mf2',1);
a=rmmf(a,'input',4,'mf3',1);
a=addmf(a,'input',4,'L','trapmf',[-300 -300 300 300]);

a=addvar(a,'output','control',[-3e16 3e16]);
a=rmmf(a,'output',1,'mf1',1);
a=rmmf(a,'output',1,'mf2',1);
a=rmmf(a,'output',1,'mf3',1);
a=addmf(a,'output',1,'loose','linear',[0 5 1 2 0]);
%a=addmf(a,'output',1,'tight','linear',[0 60 4 14 0]);

% This line must be used with other program such as gga_fis.m
a=addmf(a,'output',1,'tight','linear',[0 Kp Ki Kd 0]);

% APPEND RULES to tipp
rule_List=[...
1 1 1 1 1 1 1
2 1 1 1 2 1 1
];
a=addrule(a,rule_List);
writefis(a,'tippa');  % SAVE to tipp.fis
tippa=readfis('tippa'); % READ it BACK for fuzzy GUI use.

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?