计算智能——模糊控制运算
模糊控制运算
1、算法简介
模糊控制是以模糊集理论、模糊语言变量和模糊逻辑推理为基础的一种智能控制方法,它是从行为上模仿人的模糊推理和决策过程的一种智能控制方法。该方法首先将操作人员或专家经验编成模糊规则,然后将来自传感器的实时信号模糊化,将模糊化后的信号作为模糊规则的输入,完成模糊推理,将推理后得到的输出量加到执行器上。
2、算法流程
2.1算法流程:
1、计算控制变量:输入、输出
2、模糊量化处理:将观测到的数值集合转换成模糊集合
3、构建模糊控制规则
4、解模糊化处理(即非模糊化处理)
5、模糊推理
2.2代码介绍:
观测雨水和阳光对种子的影响,变量1是雨水,变量2是阳光,输出的是种子的生长情况。
雨水和阳光分别有:很少,少,中,多,很多五种情况,而种子的生长情况有几乎不长,慢,中,快四种。
2.3运行代码:
%模糊控制器设计
a=newfis('fuzzf'); %创建新的模糊推理系统%输入1
f1=1;
a=addvar(a,'input','雨水',[0,100*f1]); %添加 e 的模糊语言变量
a=addmf(a,'input',1,'很少','zmf',[0,15*f1]);
a=addmf(a,'input',1,'少','trimf',[10*f1,20*f1,40*f1]); %隶属度函数为三角形
a=addmf(a,'input',1,'中','trimf',[25*f1,45*f1,70*f1]);
a=addmf(a,'input',1,'多','trimf',[50*f1,70*f1,90*f1]);
a=addmf(a,'input',1,'很多','smf',[70*f1,100*f1]); %输入2
f2=1;
a=addvar(a,'input','阳光',[0,60*f2]); %添加 ec 的模糊语言变量a=addmf(a,'input',2,'很少','zmf',[0,15*f1]);
a=addmf(a,'input',2,'少','trimf',[10,15*f2,20*f2]);
a=addmf(a,'input',2,'中','trimf',[15*f2,30*f2,45*f2]);
a=addmf(a,'input',2,'多','trimf',[30*f2,40*f2,50*f2]);
a=addmf(a,'input',2,'很多','smf',[40*f2,60*f2]); %输出
f3=1;
a=addvar(a,'output','某种子生长情况',[0,4*f3]); %添加 u 的模糊语言变量
a=addmf(a,'output',1,'几乎不长','zmf',[0,1.5*f3]);
a=addmf(a,'output',1,'慢','trimf',[0.5*f3,1.5*f3,2.5*f3]);
a=addmf(a,'output',1,'中等','trimf',[1.5*f3,2.5*f3,3*f3]);
a=addmf(a,'output',1,'快','smf',[2*f3,4*f3]);%规则库
rulelist=[ %编辑模糊规则,前三个数分别是输入1和2,第三个数是输出,后俩个数分别是规则权重和AND OR选项1 1 1 1 1; 1 2 1 1 1;1 3 2 1 1;1 4 2 1 1;1 5 1 1 1;2 1 1 1 1;2 2 2 1 1;2 3 3 1 1;2 4 4 1 1;2 5 2 1 1;3 1 1 1 1;3 2 2 1 1;3 3 3 1 1;3 4 4 1 1;3 5 3 1 1;4 1 1 1 1;4 2 2 1 1;4 3 3 1 1;4 4 4 1 1;4 5 4 1 1;5 1 1 1 1;5 2 3 1 1;5 3 4 1 1;5 4 4 1 1;5 5 3 1 1;
];a=addrule(a,rulelist); %添加模糊规则函数
showrule(a) %显示模糊规则函数
a1=setfis(a,'DefuzzMethod','centroid'); %设置解模糊方法
writefis(a1,'fuzzf'); %保存模糊系统
a2=readfis('fuzzf'); %从磁盘读出保存的模糊系统
disp('fuzzy Controller table:e=[0,100],ec=[0,60]');%显示矩阵和数组内容%推理
Ulist=zeros(7,7); %全零矩阵
for i=1:7for j=1:7e(i)=-4+i;ec(j)=-4+j;Ulist(i,j)=evalfis([e(i),ec(j)],a2); %完成模糊推理计算end
end
% Ulist=ceil(Ulist) %朝正无穷方向取整Ulist %朝正无穷方向取整%画出模糊系统
figure(1); plotfis(a2);
figure(2);plotmf(a,'input',1);
figure(3);plotmf(a,'input',2);
figure(4);plotmf(a,'output',1);
2.4运行结果:
由左图可知,这个模糊推理系统的名字为fuzzf,它有两个输入分别为雨水和阳光,一个输出为种子的生长情况,共构造了25个规则。两个输入分别由5个隶属函数,输出有4个隶属函数,采用的解模糊方法为平均最大隶属度法(mom)。
右图是第一个输入(雨水)的隶属函数

左图是第二个输入(阳光)的隶属函数
右图是输出(种子生长情况)的隶属函数

Ulist是完成模糊推理计算之后的结果

这段是通过disp输出的,告诉了我们雨水和阳光的定义域

列举出一共25个规则

3、总结
模糊控制,就是对难以用已有规律描述的复杂系统,采用自然语言(如少,中,多)加以叙述,借助定性的、不精确的及模糊的条件语句来表达,模糊控制是一种基于语言的智能控制。他有如下特点:
(1)比常规逻辑更接近人直观的思维方式
(2)有比较高的容错性,可以通过优化去不断适应新的参数
但也有缺点:模糊控制的设计尚缺乏系统性, 无法定义控制目标。
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
