一个例程学会使用——模糊逻辑工具箱

参考文献:基于matlab的系统分析与设计—模糊系统
是不是原理看了几遍,脑袋里面还是朦朦胧胧的。动手实现一下就可以更好的理解模糊逻辑!!!

工具箱介绍

模糊逻辑工具箱包括五个工具:FIS编辑器、隶属度函数编辑器、规则编辑器、规则观测器和曲面观测器。
FIS编辑器: 可处理模糊系统的高层次问题,如系统中有多少个输入和输出变量。
隶属度函数编辑器: 用来定义每个变量的隶属度函数的形状及参数。
规则编辑器: 用来编辑FIS的规则。
规则观测器和曲面观测器: 分别用来观察FIS的规则和输出曲面。

%%打开方式如下
fuzzy
ruleedit
mfedit
ruleview
surfview

场景假设

例:考虑两个输入和一个输出的侍者小费问题。当你在饭店里用餐后,会根据侍者的服务和饭店菜肴的质量付给侍者小费。如果用0-10表示饭店的服务质量,菜肴的质量也用0-10表示,那么如何给小费?这里设计一个模糊推理系统来完成,输入为服务质量和菜肴质量,输入为小费。

分析

根据美国人的用餐习惯,可以得到三条模糊规则:

  1. If 服务差 or 菜肴差 then 小费低;
  2. If 服务好 then 小费中等;
  3. 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编辑器中间的图片即可打开规则编辑器。
根据之前的提到的模糊规则

  1. If 服务差 or 菜肴差 then 小费低;
  2. If 服务好 then 小费中等;
  3. If 服务很好 or 菜肴好 then 小费高;
    可在规则编辑器GUI上产生这些规则;操作步骤如下
  4. 由于规则前件之间应该采用or连接,因此首先在GUI的左下角选择or连接符。
  5. 根据每条模糊规则添加对应的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的模糊逻辑工具箱实现基本的模糊规则就是这么简单!!!
开始搭建自己的模糊系统吧!!!

  • 15
    点赞
  • 110
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值