资源简介

一个模糊控制与BP神经网络的例题,内含代码,综合结果的pdf,其中模糊控制器运行时需要加入一行代码:f4=readfis(‘f4’);

资源截图

代码片段和文件信息


close all
clear all
a=newfis(‘fuzzf‘);
f1=1;
a=addvar(a‘input‘‘e‘[-3*f13*f1]);
a=addmf(a‘input‘1‘NB‘‘zmf‘[-3*f1-1*f1]);
a=addmf(a‘input‘1‘NM‘‘trimf‘[-3*f1-2*f10]);
a=addmf(a‘input‘1‘NS‘‘trimf‘[-3*f1-1*f11*f1]);
a=addmf(a‘input‘1‘Z‘‘trimf‘[-2*f102*f1]);
a=addmf(a‘input‘1‘PS‘‘trimf‘[-1*f11*f13*f1]);
a=addmf(a‘input‘1‘PM‘‘trimf‘[02*f13*f1]);
a=addmf(a‘input‘1‘PB‘‘smf‘[1*f13*f1]);
f2=1;
a=addvar(a‘input‘‘ec‘[-3*f23*f2]);
a=addmf(a‘input‘2‘NB‘‘zmf‘[-3*f2-1*f2]);
a=addmf(a‘input‘2‘NM‘‘trimf‘[-3*f2-2*f20]);
a=addmf(a‘input‘2‘NS‘‘trimf‘[-3*f2-1*f21*f2]);
a=addmf(a‘input‘2‘Z‘‘trimf‘[-2*f202*f2]);
a=addmf(a‘input‘2‘PS‘‘trimf‘[-1*f21*f23*f2]);
a=addmf(a‘input‘2‘PM‘‘trimf‘[02*f23*f2]);
a=addmf(a‘input‘2‘PB‘‘smf‘[1*f23*f2]);
f3=1.5;
a=addvar(a‘output‘‘u‘[-3*f33*f3]);
a=addmf(a‘output‘1‘NB‘‘zmf‘[-3*f3-1*f3]);
a=addmf(a‘output‘1‘NM‘‘trimf‘[-3*f3-2*f30]);
a=addmf(a‘output‘1‘NS‘‘trimf‘[-3*f3-1*f31*f3]);
a=addmf(a‘output‘1‘Z‘‘trimf‘[-2*f302*f3]);
a=addmf(a‘output‘1‘PS‘‘trimf‘[-1*f31*f33*f3]);
a=addmf(a‘output‘1‘PM‘‘trimf‘[02*f33*f3]);
a=addmf(a‘output‘1‘PB‘‘smf‘[1*f33*f3]);
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(arulelist);
a1=setfis(a‘DefuzzMethod‘‘mom‘);%Defuzzy
writefis(a1‘fuzzf‘);
a2=readfis(‘fuzzf‘);
Ulist=zeros(77);
for i=1:7
    for j=1:7
        e(i)=-4+i;
        ec(j)=-4+j;
        Ulist(ij)=evalfis([e(i)ec(j)]a2);
    end
end
figure(1);
plotfis(a2);
figure(2);
plotmf(a‘input‘1);
figure(3);
plotmf(a‘input‘2);
figure(4);
plotmf(a‘output‘1);

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     文件         297  2012-06-21 19:42  fuzzy_control\PID1.m
     文件       28293  2012-06-27 15:25  fuzzy_control\PID30_2.mdl
     文件        1608  2012-06-27 09:27  fuzzy_control\f4.fis
     文件       20563  2012-06-27 16:13  fuzzy_control\fuzzy.png
     文件        2473  2012-06-21 19:49  fuzzy_control\fuzzy1.m
     文件       30721  2012-06-27 15:14  fuzzy_control\fuzzy30_2.mdl
     文件      153649  2012-07-10 19:59  fuzzy_control\模糊控制程序设计报告.pdf
     目录           0  2018-06-09 14:31  fuzzy_control\

评论

共有 条评论