概述
参考文献:基于matlab的系统分析与设计—模糊系统
是不是原理看了几遍,脑袋里面还是朦朦胧胧的。动手实现一下就可以更好的理解模糊逻辑!!!
文章目录
- 工具箱介绍
- 场景假设
- 分析
- FIS编辑器Fuzzy Logic Designer
- 隶属度函数编辑器Membership Function Editor
- 规则编辑器
- 规则观测器和曲面观测器
- 模糊推理系统的使用
- 总结
工具箱介绍
模糊逻辑工具箱包括五个工具:FIS编辑器、隶属度函数编辑器、规则编辑器、规则观测器和曲面观测器。
FIS编辑器: 可处理模糊系统的高层次问题,如系统中有多少个输入和输出变量。
隶属度函数编辑器: 用来定义每个变量的隶属度函数的形状及参数。
规则编辑器: 用来编辑FIS的规则。
规则观测器和曲面观测器: 分别用来观察FIS的规则和输出曲面。
%%打开方式如下
fuzzy
ruleedit
mfedit
ruleview
surfview
场景假设
例:考虑两个输入和一个输出的侍者小费问题。当你在饭店里用餐后,会根据侍者的服务和饭店菜肴的质量付给侍者小费。如果用0-10表示饭店的服务质量,菜肴的质量也用0-10表示,那么如何给小费?这里设计一个模糊推理系统来完成,输入为服务质量和菜肴质量,输入为小费。
分析
根据美国人的用餐习惯,可以得到三条模糊规则:
- If 服务差 or 菜肴差 then 小费低;
- If 服务好 then 小费中等;
- If 服务很好 or 菜肴好 then 小费高;
我们假定小费低为餐费的5%,小费中等为15%,小费高为25%
FIS编辑器Fuzzy Logic Designer
在matlab下,输入
fuzzy
本例有两个输入,因此首先的FIS编辑器界面的Edit下选择Add input,使系统变成两个输入、一个输出。
给输入、输出变量命名
File下export中可以选择to workspace 或者 to flie
隶属度函数编辑器Membership Function Editor
在FIS编辑器界面中双击输入或输出图标即可加入隶属度函数编辑器。
打开隶属度函数编辑器后,可在左上角选择变量,然后在Edit中选择Add MFs,可以打开i专门用于输入隶属度函数的窗口,从中输入所选变量的隶属度函数。(本例选择gaussmf和数量为3)(这里是新增隶属度函数,有的打开就存在隶属度函数,所以这步需要视情况而定)
本例第一个隶属度函数曲线参数设置如下:
第一条隶属度曲线:名称(差) Params(【1.8 0】)
第二条隶属度曲线:名称(好) Params(【1.8 5】)
第三条隶属度曲线:名称(很好) Params(【1.8 10】)
同理
给输入变量“菜肴”建立两个梯形隶属度函数(差、好),参数范围【1 10】,其参数分别为:【0 0 1 3】
给输出变量“小费”建立三个三角形隶属度函数(低、中等、高),参数范围【0 30】,其参数分别为:【0 6 12】、【8 15 22】、【18 24 30】。
至此已经完成了对输入输出变量的隶属度函数定义。
规则编辑器
双击FIS编辑器中间的图片即可打开规则编辑器。
根据之前的提到的模糊规则
- If 服务差 or 菜肴差 then 小费低;
- If 服务好 then 小费中等;
- If 服务很好 or 菜肴好 then 小费高;
可在规则编辑器GUI上产生这些规则;操作步骤如下 - 由于规则前件之间应该采用or连接,因此首先在GUI的左下角选择or连接符。
- 根据每条模糊规则添加对应的rule
至此建立了模糊推理系统,在FIS编辑器的File下选择Export to File,即可得到后缀为fis的模糊推理系统文件。
规则观测器和曲面观测器
我们可以利用规则观测器和曲面观测器来查看模糊规则推理和输出曲面。
在FIS编辑器的View中选择View rules,可打开规则观测器
在FIS编辑器的View中选择View surface,可打开曲面观测器
模糊推理系统的使用
%% 利用surfview命令绘制系统输出曲面
% surfview(tip);
%% 利用plotfis命令可绘制出所建立的FIS系统
% plotfis(tip)
%% 利用evalfis可计算出指定输入的输出值
% evalfis([1.5 5],tip);
% evalfis([8 2.5],tip);
%% 另外可以利用evalfis函数绘制输入输出曲线,
%例如:若当计算当菜肴中为中等(5)时,小费与服务之间的关系,可输入
x1=0:0.1:10;x2=5;
y=evalfis([x1' x2*ones(size(x1'))],tip);
figure(2)
plot(x1',y),xlabel('服务'),ylabel('小费');
gtext('菜肴固定为5');
总结
使用matlab的模糊逻辑工具箱实现基本的模糊规则就是这么简单!!!
开始搭建自己的模糊系统吧!!!
最后
以上就是拉长诺言为你收集整理的一个例程学会使用——模糊逻辑工具箱的全部内容,希望文章能够帮你解决一个例程学会使用——模糊逻辑工具箱所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复