查表采用MATLABFcn实现。二维PD型模糊控制器误差和 下载本文

内容发布更新时间 : 2024/4/30 17:57:47星期一 下面是文章的全部内容请认真阅读。

因教学需要,用MATLAB/SIMULINK做了个简单的查表模糊控制仿真系统,查表采用MATLAB Fcn实现。二维PD型模糊控制器,误差和误差的变化率的论域为[-3,-2,......+2,+3],控制器输出u的论域为[-6,-5,......+5,+6],两个量化因子分别为60和2.5,比例因子为2,对于不同模型和不同的精度要求,这几个因子要做一些调整。SIMULINK仿真图如图1所示,为离散连续混合仿真,图中的零阶保持器Zero-Order Hold的采样时间设置为0.0005。经过模糊推理、解模糊后获得的模糊查询表参见下面代码中的utab数组,模糊控制规则表、各模糊子集隶属函数略,MATLAB Fcn模块中的设置为“myfuzy(u(1),u(2))”,其中myfuzy为查表函数,代码如下:

function u=myfuzy(x,y)

utab=[

-6 -6 -4 -4 -2 -2 0 -6 -4 -4 -2 -2 0 2 -4 -4 -2 -2 0 2 2 -4 -2 -2 0 2 2 4 -2 -2 0 2 2 4 4 -2 0 2 2 4 4 6 0 2 2 4 4 6 6];

if x>3

x=3; end if y>3

y=3; end

if x<-3 x=-3; end if y<-3

y=-3; end

xx=round(x); yy=round(y);

u=utab(xx+4,yy+4);

该仿真系统仅作为向学生演示用的,很简陋,可能有些地方也没考虑太多。仿真曲线如图2所示,可以看出,由于是PD型模糊控制,系统有静差。由论域范围

和比例因子的求取方法可知,有关限幅环节已经隐式实现了。