ch4-模糊逻辑工具箱的应用.ppt_第1页
ch4-模糊逻辑工具箱的应用.ppt_第2页
ch4-模糊逻辑工具箱的应用.ppt_第3页
ch4-模糊逻辑工具箱的应用.ppt_第4页
ch4-模糊逻辑工具箱的应用.ppt_第5页
已阅读5页,还剩77页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、5个基本GUI工具与模糊推理系统之间的关系,FIS editor,Fuzzy Inference System,Membership Function editor,Rule editor,Rule viewer,Surface viewer,Read-only tools,FIS 编辑器处理系统的高级属性:输入/输出量的数目、名字。,隶属度函数编辑器定义与每个变量相对应的隶属度函数形状。,规则编辑器定义系统行为的一系列规则。,规则观察器显示模糊推理方框图,可作为诊断工具使用。,显示输出输入之间的依赖关系,可生成和绘制输出曲面映射。,5个基本GUI可以相互作用并交换信息,它们中的任何一个(包括

2、只读型观察器)都可以对工作空间和磁盘进行读和写。 对于任意模糊推理系统,可以打开任意和所有5个GUI。 各种GUI窗口可以知道其它GUI窗口的存在,如果需要的话,将更新相关窗口。,GUI构造FIS的过程,INPUT OUTPUT,Rules,INPUT OUTPUT terms terms,The FIS Editor,The Rule Editor,The Membership Function Editor,The General Case,The GUI Editor,GUI构造FIS的过程,例4.1 双输入、单输出小费问题。 小费三条规则: 1. 如果服务差或食品差,那么小费低; 2.

3、 如果服务好,那么小费中等; 3. 如果服务极好或食品极好,那么小费高。 设服务质量和食品质量都用010之间的一个数表示,10表示非常好,试建立一个模糊逻辑推理系统,可根据输入状态计算出应付多少小费。,GUI构造FIS的过程,INPUT OUTPUT,Rules,INPUT OUTPUT terms terms,service tip,if service is poor then tip is cheap if service is good then tip is average if service is excellent then tip is generous,service ti

4、p (poor, (cheap, good, average, excellent) generous),The General Case,The Specific Example,从GUI工具输入输出,在MATLAB中,模糊系统有两种保存方式: 保存到磁盘中,文件后缀名为“.fis”; 保存到MATLAB工作空间中,创建一个变量,该变量是一个FIS系统的MATLAB结构,变量名由用户决定。 注意:如果只将新建的FIS保存到MATLAB工作空间中,而没有保存到磁盘中,那么在新的MATLAB会话期间,将无法使用该FIS系统。,从GUI工具输入输出,从GUI工具输入输出,FIS结构,FIS: na

5、me type andMethod orMethod defuzzMethod impMethod aggMethod,FIS层次结构方框图,一、新建/打开模糊推理系统的方法,1. 在command window中输入命令行:fuzzy 弹出MATLAB默认的FIS编辑器,是一个单输入单输出系统。 以此为基础可根据用户需要,新建任意模糊推理系统。 2. 若需要打开已有的模糊推理系统“tipper.fis”,在command window中输入命令行:fuzzy tipper,FIS编辑器,二、FIS编辑器窗口功能介绍,FIS编辑器,FIS编辑器,二、FIS编辑器窗口功能介绍,FIS编辑器,二、

6、FIS编辑器窗口功能介绍,FIS编辑器,二、FIS编辑器窗口功能介绍,FIS编辑器,二、FIS编辑器窗口功能介绍,FIS编辑器,二、FIS编辑器窗口功能介绍,FIS编辑器,二、FIS编辑器窗口功能介绍,FIS编辑器,二、FIS编辑器窗口功能介绍,三、构造双输入单输出系统增加输入变量,FIS编辑器,FIS编辑器,三、构造双输入单输出系统增加输入变量,三、构造双输入单输出系统变量名称更名,单击输入变量图标 图标从黑边黄框,变为红边黄框 空白编辑域与该输入变量相对应,FIS编辑器,FIS编辑器,三、构造双输入单输出系统变量名称更名,FIS编辑器,三、构造双输入单输出系统保存设置,FIS编辑器,三、构

7、造双输入单输出系统保存设置,FIS编辑器,三、构造双输入单输出系统,隶属函数编辑器: 一、打开隶属函数编辑器的方法 二、模糊逻辑工具箱内置的隶属度函数 三、隶属函数编辑器窗口功能介绍 四、新建当前变量的隶属函数 五、修改当前变量的隶属函数 六、新建自己的隶属函数,一、打开隶属度函数编辑器的方法,在FIS编辑器窗口,打开Edit下拉菜单,并选择 Membership Functions 双击输出变量图标 在命令行键入mfedit,隶属度函数编辑器,二、模糊逻辑工具箱内置的隶属度函数,隶属度函数编辑器,模糊逻辑工具箱中包含了11个内置的隶属度函数类型,这11个函数又由几个基函数构成:分段线性函数、

8、高斯分布函数、S形函数、二次和三次多项式曲线。 按MATLAB惯例,所有隶属度函数的最后两个字母都是“mf”。 详见P197“附录1 模糊逻辑工具箱函数简介”,三、隶属度函数编辑器窗口功能介绍,隶属度函数编辑器,三、隶属度函数编辑器窗口功能介绍,隶属度函数编辑器,三、隶属度函数编辑器窗口功能介绍,隶属度函数编辑器,四、新建当前变量的隶属函数,隶属度函数编辑器,四、新建当前变量的隶属函数,隶属度函数编辑器,四、新建当前变量的隶属函数,隶属度函数编辑器,四、新建当前变量的隶属函数,隶属度函数编辑器,五、修改当前变量的隶属函数,用鼠标拖动可改变隶属度函数形状,隶属度函数编辑器,六、新建自己的隶属函数

9、,隶属度函数编辑器,六、新建自己的隶属函数,隶属度函数编辑器,用户根据需要,用M文件编写自己的隶属度函数代码,并用与11个内置隶属函数不同的名称命名。 注意:用户定义隶属度函数时,使用的参数不能超过16个。,规则编辑器 一、打开规则编辑器的方法 二、规则编辑器窗口功能介绍 三、规则的插入、改变与删除,一、打开规则编辑器的方法,在隶属度函数编辑器窗口,打开Edit下拉菜单,并选择Edit Rules 在命令行键入ruleedit,规则编辑器,二、规则编辑器窗口功能介绍,规则编辑器,二、规则编辑器窗口功能介绍,规则编辑器,二、规则编辑器窗口功能介绍,规则编辑器,二、规则编辑器窗口功能介绍,规则编辑

10、器,详述格式: if (service is poor) or (food is rancid) then (tip is cheap) 符号格式: (service=poor) = (tip=cheap) 索引格式: 1 (1) : 1,二、规则编辑器窗口功能介绍,规则编辑器,三、规则的插入、改变与删除,规则编辑器,规则观察器 一、打开规则观察器的方法 二、规则观察器窗口功能介绍,一、打开规则观察器的方法,在FIS编辑器、或隶属函数编辑器、或规则编辑器窗口,打开View下拉菜单,并选择Rules,规则观察器,二、规则观察器窗口功能介绍,规则观察器,二、规则观察器窗口功能介绍,规则观察器,二、

11、规则观察器窗口功能介绍,规则观察器,二、规则观察器窗口功能介绍,规则观察器,二、规则观察器窗口功能介绍,规则观察器,二、规则观察器窗口功能介绍,规则观察器,曲面观察器 一、打开曲面观察器的方法 二、曲面观察器窗口功能介绍,一、打开曲面观察器的方法,在FIS编辑器、或隶属函数编辑器、或规则编辑器窗口,打开View下拉菜单,并选择Surface,曲面观察器,曲面观察器,二、曲面观察器窗口功能介绍,曲面观察器,二、曲面观察器窗口功能介绍,曲面观察器,二、曲面观察器窗口功能介绍,曲面观察器,二、曲面观察器窗口功能介绍,命令行工作方式 一、装入系统 二、获得系统的结构信息 三、修改系统的结构信息 四、产

12、生GUI工具窗口的函数 五、系统显示函数 六、建立一个系统 七、FIS求值,相关的命令行详见P197“附录1.3”,一、装入系统,命令行工作方式,在commond window中输入命令行:a=readfis(tipperdemo.fis ),a = name: tipperdemo type: mamdani andMethod: min orMethod: max defuzzMethod: centroid impMethod: min aggMethod: max input: 1x2 struct output: 1x1 struct rule: 1x3 struct,二、获得系统的

13、结构信息getfis(a),命令行工作方式,注意:a是已存在于MATLAB工作空间中的变量,利用readfis()函数获得,是一个FIS结构。,Name = tipperdemo Type = mamdani NumInputs = 2 InLabels = service food NumOutputs = 1 OutLabels = tip NumRules = 3 AndMethod = min OrMethod = max ImpMethod = min AggMethod = max DefuzzMethod = centroid,ans = mamdani,a.type,二、获得系

14、统的结构信息showfis(a),命令行工作方式,1. Name tipper 2. Type mamdani 3. Inputs/Outputs 2 1 4. NumInputMFs 3 2 5. NumOutputMFs 3 6. NumRules 3 7. AndMethod min 8. OrMethod max 9. ImpMethod min 10. AggMethod max 11. DefuzzMethod centroid 12. InLabels service 13. food 14. OutLabels tip 15. InRange 0 10 16. 0 10 17.

15、 OutRange 0 30 18. InMFLabels poor 19. good 20. excellent rancid 22. delicious,23. OutMFLabels cheap 24. average 25. generous 26. InMFTypes gaussmf 27. gaussmf 28. gaussmf 29. trapmf 30. trapmf 31. OutMFTypes trimf 32. trimf 33. trimf 34. InMFParams 1.5 0 0 0 35. 1.5 5 0 0 36. 1.5 10 0 0 37. 0 0 1 3

16、 38. 7 9 10 10 39. OutMFParams 0 5 10 0 40. 10 15 20 0 41. 20 25 30 0 42. Rule Antecedent 1 1 43. 2 0 ,三、修改系统的结构信息,命令行工作方式,a = name: tipperdemo type: mamdani andMethod: min orMethod: max defuzzMethod: centroid impMethod: min aggMethod: max input: 1x2 struct output: 1x1 struct rule: 1x3 struct,1) a.n

17、ame = test 2) a = setfis(a,name,test),四、产生GUI工具窗口的函数,命令行工作方式,fuzzy (a) 产生FIS编辑器 mfedit(a) 产生隶属度函数编辑器 ruleedit(a) 产生规则编辑器 ruleview(a) 产生规则观察器 surfview(a) 产生曲面观察器,五、系统显示函数plotfis(a),命令行工作方式,用方框图显示整个系统,五、系统显示函数plotmf(a,input,1),命令行工作方式,五、系统显示函数plotmf(a,output,1),命令行工作方式,五、系统显示函数gensurf(a),命令行工作方式,六、建立一

18、个系统方法一,a=newfis(tipper); a.input(1).name=service; a.input(1).range=0,10; a.input(1).mf(1).name=poor; a.input(1).mf(1).type=gaussmf; a.input(1).mf(1).params=1.5 0; . a.output(1).name=tip; .,建立新的名为“tipper”的模糊逻辑系统,建立新的名为“service”的输入变量,指定输入变量“service”的取值范围,为输入变量“service”,建立新的名为“poor”的隶属度函数,指定隶属度函数“poor”

19、的类型,指定隶属度函数“poor”的参数,建立新的名为“tip”的输出变量,命令行工作方式,a.rule(1).antecedent=1 1; a.rule(1).consequent=1; a.rule(1).weight=1; a.rule(1).connection=2; .,规则1采用两个输入变量的第一个隶属度函数:poor、rancid,规则1的输出,规则1的权为1,规则1对两个输入条件采用“or”操作,六、建立一个系统方法一,命令行工作方式,a=newfis(tipper); a=addvar(a,input,1,service,0,10); a=addmf(a, input,1,

20、poor,gaussmf,1.5 0); . a=addvar(a,output,1,tip,0,30); a=addmf(a, output,1,cheep,trimf,0 5 10); . rulelist=1 1 1 1 2 2 0 2 1 1 3 2 3 1 2; a=addrule(a,rulelist);,六、建立一个系统方法二,命令行工作方式,七、FIS求值evalfis(),命令行工作方式,1) 求给定一个输入的输出值 a=readfis(tipper); evalfis(1 2,a),运行结果: ans = 5.5586,2) 求给定多个输入的输出值 a=readfis(tipper); evalfis(3 5; 2 7,a),运行结果: ans = 12.2184 7.7885,应用实例模糊控制洗衣机,1. 选择模糊控制参数 模糊控制洗衣机的控制对象是洗衣机的洗涤时间; 假定输入是被洗衣物的污泥和油脂,输出是洗涤时间。 输入/输出参数分别定义如下: 污泥SD(污

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论