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

文章目录

  • 工具箱介绍
  • 场景假设
  • 分析
  • FIS编辑器Fuzzy Logic Designer
  • 隶属度函数编辑器Membership Function Editor
  • 规则编辑器
  • 规则观测器和曲面观测器
  • 模糊推理系统的使用
  • 总结

工具箱介绍

模糊逻辑工具箱包括五个工具: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的模糊逻辑工具箱实现基本的模糊规则就是这么简单!!!
开始搭建自己的模糊系统吧!!!

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

  1. MATLAB函数gensurf,MATLAB模糊逻辑工具箱函数.ppt

    1 MATLAB模糊逻辑工具箱简介 2 利用模糊逻辑工具箱建立模糊推理系统 3 MATLAB模糊逻辑工具箱的图形用户界面 4 基于Simulink的模糊逻辑的系统模块 5.2.5 模糊推理计算与去模糊 ...

  2. 模糊控制matlab算例,matlab模糊逻辑工具箱

    基本FIS编辑器(MATLAB模糊逻辑工具箱函数)_IT/计算机_专业资料.基本FIS编辑器 MATLAB模糊逻辑工具箱函数 基本FIS 编辑器函数 fuzzy 格式 fuzzy %弹出未定义的基本 ...

  3. MATLAB模糊逻辑工具箱函数

    说明:本文档中所列出的函数适用于Matlab5.3以上版本,为了简明起见,只列出了函数名,若需要进一步的说明,请参阅MATLAB的帮助文档. 1. GUI工具 Anfisedit      打开ANF ...

  4. 一个项目学会前端实现登录拦截

    一个项目学会vue全家桶+axios实现登录.拦截.登出功能,以及利用axios的http拦截器拦截请求和响应. 前言 该项目是利用了Github 提供的personal token作为登录token ...

  5. 《终身成长》读书笔记(part3)--如果一个人能学会什么东西,那么世界上其他人也都可以学会

    觉得不错的句子 如果你去参加试演,但是并没有真正为之努力,没有真正好好准备,没有尽全力,那么你没有赢得这个机会,你至少有一个借口--可是,没有什么比说出'我付出了我的所有,但依然不够优秀'这句话更难的 ...

  6. 从一个OutOfMemoryError 学会了分析Java内存泄漏问题

    从一个OutOfMemoryError 学会了分析Java内存泄漏问题 以前都是好好的,最近出现了 oom. 问题 开始是: java.lang.OutOfMemoryError: Java heap ...

  7. 语句拼接_第2课:一个周末学会R语言数据处理:表拆分和拼接

    从一线收集了两百个文件,要整合到一起?总部一张全国两百个城市的汇总表,拆成两百个小文件?开什么玩笑,难道要复制粘贴到天荒地老... 不用这么麻烦,一个循环,一个语句,实现快速表拆分和表拼接,从此告别复 ...

  8. 一个月学会Python的Quora指南和资料放送

    欢迎关注天下博客:http://blog.genesino.com/2017/12/python-quora/ 如何一个月学会使用Python 文章翻译自Quora上的回帖,略有改动.原文链接:htt ...

  9. 一个Demo学会用Android兼容包新控件

    2019独角兽企业重金招聘Python工程师标准>>> 前言 伟大的Google为Android推出了一系列的兼容包,最新的就是Design Support Library了,这里我 ...

最新文章

  1. ASP 调用dll(VB)及封装dll实例
  2. [Python设计模式] 第17章 程序中的翻译官——适配器模式
  3. 互联网公司的安全风险
  4. win10 使用cmake编译opencv源码生成VS工程(二)
  5. 像智能手机一样造车,可能吗?
  6. mac php 单元测试,PHPUnit单元测试
  7. Head First设计模式笔记
  8. qq家园里游戏c语言,盘点腾讯旗下5款过气游戏,全部玩过的人都该结婚了吧
  9. UEFI 界面实例解析
  10. JS获取本地IP显示隐藏IP
  11. IntellJ IDEA 基础之 常用快捷键的简单整理
  12. 覆盖20个主流Niche高DA可投稿的谷歌博客外链分享
  13. java bulk_ElasticSearch-javaAPI-Bulk批量操作
  14. kickstart无人值守
  15. EXCEL 同一标签内容求和
  16. 连锁药店现状和信息化建设思路
  17. 基于RBF网络的信任值预测算法matlab仿真实现
  18. 云时通 X 九毛九 | SRM系统助力连锁餐饮行业高效管理供应链
  19. 电磁场与电磁波(二)
  20. php导入excel中文手册,使用PHP导入Excel和导出数据为Excel文件

热门文章

  1. 深度学习经典网络解析图像分类篇(二):AlexNet
  2. 按位取反(符号:~)
  3. 移动硬盘如何分区?易我分区大师帮你搞定!
  4. idea 如何合并其他分支的指定文件或代码块到当前分支
  5. mybatisSql编写小结
  6. memont高级使用说明
  7. python基础知识有哪些需要背(记住是基础知识)我是初学者
  8. 多方安全计算(MPC)发展脉络及应用实践
  9. 大学web基础期末大作业~仿品优购商城页面制作(HTML+CSS+JavaScript)
  10. 223. 矩形面积(JS实现)