单输出基于Sugeno(TSK)推理的模糊控制器

1.问题描述:

设计两输入,单输出基于Sugeno(TSK)推理的模糊控制器。设输入大,小,输出Z是(x,y)的线性函数,并且有下列4条模糊控制规则。

if X小and Y小,then z=-x+y-3;

if X小and Y大,then z=x+y+1;

if X大and Y小,then z=-2y+2;

if X大and Y大,then z=2x+y-6;

编写MATLAB程序或用SIMULINK画出隶属函数曲线和输入输出三维曲面。

2.部分程序:

ts2=newfis('ts2','sugeno');
ts2=addvar(ts2,'input','X',[-5 5]);
ts2=addvar(ts2,'input','Y',[-10 10]);
ts2=addvar(ts2,'output','Z',[-15 15]);
ts2=addmf(ts2,'input',1,'小','gaussmf',[1.8 0]);
ts2=addmf(ts2,'input',1,'大','gaussmf',[1.8 5]);
ts2=addmf(ts2,'input',2,'小','gaussmf',[4.4 0]);
ts2=addmf(ts2,'input',2,'大','gaussmf',[4.4 10]);
ts2=addmf(ts2,'output',1,'第1区','linear',[-1 1 -3]);
ts2=addmf(ts2,'output',1,'第2区','linear',[1 1 1]);
ts2=addmf(ts2,'output',1,'第3区','linear',[0 -2 2]);
ts2=addmf(ts2,'output',1,'第4区','linear',[2 1 -6]);
rulelist=[1 1 1 1 1;1 2 2 1 1;2 1 3 1 1;2 2 4 1 1];
ts2=addrule(ts2,rulelist);
figure(1)
subplot 211
plotmf(ts2,'input',1)
xlabel('x'),ylabel('输入隶属度')
subplot 212
plotmf(ts2,'input',2)
xlabel('y'),ylabel('输入隶属度')
figure(2)
gensurf(ts2)
xlabel('x'),ylabel('y'),zlabel('z')

3.仿真结论:

根本题目要求和所给模糊控制规则编程实现模糊控制器,输入X、Y隶属函数曲线见图1,输入输出三维曲面见图2。

猜你喜欢

转载自blog.csdn.net/ccsss22/article/details/113917692