car_ap1.m

来自「一个汽车的fuzzy的控制,能很好地应用FUZZY的特点」· M 代码 · 共 65 行

M
65
字号
%load ac;
%load fin1;
%load fout;
%numpts=length(fin1(1,:));
%data=[fin1(2,:)' fin1(3,:)' fout(1,:)'];
data=[...
1   0   1
1 -pi/4 0.7
1 -pi/2 -0.1;
1 -(3*pi)/4 -0.7;
1 -pi -1;
1 (3*pi)/4 -0.7;
1 pi/2 0.1;
1 pi/4 0.7;
0.5 0 0.9;
0.5 -pi/4 0.5;
0.5 -pi/2 -0.1;
0.5 -(3*pi)/4 -0.3;
0.5 -pi -0.6;
0.5 (3*pi)/4 -0.3;
0.5 pi/2 0.3;
0.5 pi/4 0.5;
0.1 0 0.6;
0.1 -pi/4 0.5;
0.1 -pi/2 -0.1;
0.1 -(3*pi)/4 -0.2;
0.1 -pi -0.4;
0.1 (3*pi)/4 -0.2;
0.1 pi/2 0.3;
0.1 pi/4 0.4;
0   0   0.4;
0 -pi/4 0.2;
0 -pi/2 -0.1;
0 -(3*pi)/4 -0.15;
0 -pi -0.4;
0 (3*pi)/4 -0.15;
0 pi/2 0.1;
0 pi/4 0.2];
numpts=length(data(:,1));
trndata=data(1:1:numpts,:);
chkdata=data(2:2:numpts,:);
figure(1);
plot3(trndata(:,1),trndata(:,2),trndata(:,3),'o',chkdata(:,1),chkdata(:,2),chkdata(:,3),'x');
nummfs=8
mftype='gbellmf';
fismat=genfis1(trndata,nummfs,mftype);
[x,mf_x]=plotmf(fismat,'input',1);
[y,mf_y]=plotmf(fismat,'input',2);
figure(2);
plot(x,mf_x,'o');hold on;
plot(y,mf_y,'x');hold on;
numepochs=30;
[fismat1,trnerr,ss,fismat2,chkerr]=anfis(trndata,fismat,numepochs,NaN,chkdata);
figure(3);
[x,mf_x]=plotmf(fismat1,'input',1);
[y,mf_y]=plotmf(fismat1,'input',2);
plot(x,mf_x,'o');hold on;
plot(y,mf_y,'x');hold on;
out=evalfis([trndata(:,1) trndata(:,2)],fismat1);
figure(4);
trndata=data(1:1:numpts,:);
chkdata=data(2:2:numpts,:);
plot3(trndata(:,1),trndata(:,2),trndata(:,3),'o',chkdata(:,1),chkdata(:,2),chkdata(:,3),'x');hold on;
plot3(trndata(:,1),trndata(:,2),out);

⌨️ 快捷键说明

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