24小时热门版块排行榜    

查看: 1543  |  回复: 0

xiaoniuyyy

新虫 (初入文坛)

[求助] 模糊控制非常简单的程序,但是结果和书上给出的结果不一样,很不理解。

a=newfis('fuzzf');%创建新的模糊推理系统
a=addvar(a,'input','e',[0,100]);
a=addmf(a,'input',1,'SD','trimf',[0,0,50]);
a=addmf(a,'input',1,'MD','trimf',[0,50,100]);
a=addmf(a,'input',1,'LD','trimf',[50,100,100]);
a=addvar(a,'input','ec',[0,100]);
a=addmf(a,'input',2,'NG','trimf',[0,0,50]);
a=addmf(a,'input',2,'MG','trimf',[0,50,100]);
a=addmf(a,'input',2,'LG','trimf',[50,100,100]);
a=addvar(a,'output','u',[0,60]);
a=addmf(a,'output',1,'VS','trimf',[0,0,10]);
a=addmf(a,'output',1,'S','trimf',[0,10,25]);
a=addmf(a,'output',1,'M','trimf',[10,25,40]);
a=addmf(a,'output',1,'L','trimf',[25,40,60]);
a=addmf(a,'output',1,'VL','trimf',[40,60,60]);
rulelist=[1 1 1 1 1;
          1 2 2 1 1;
          1 3 3 1 1;
          2 1 3 1 1;
          2 2 3 1 1;
          2 3 4 1 1;
          3 1 4 1 1;
          3 2 4 1 1;
          3 3 5 1 1];
a=addrule(a,rulelist);
showrule(a)
a1=setfis(a,'DefuzzMethod','mom');
writefis(a1,'fuzzf');
a2=readfis('fuzzf');
x=60;
y=70;
Ulist=evalfis([x,y],a2);
Ulist=Ulist
figure(1);plotfis(a2);
figure(2);plotmf(a,'input',1);
figure(3);plotmf(a,'input',2);
figure(4);plotmf(a,'output',1);


书上的计算结果是(19+31)/2=25


但是程序运行的结果却是24.9
这是为什么啊?
这是刘金琨老师编写的<<智能控制>>书上第四章后面的一段程序
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

智能机器人

Robot (super robot)

我们都爱小木虫

找到一些相关的精华帖子,希望有用哦~

科研从小木虫开始,人人为我,我为人人
相关版块跳转 我要订阅楼主 xiaoniuyyy 的主题更新
信息提示
请填处理意见