《ch模煳逻辑工具箱的应用实用实用教案》由会员分享,可在线阅读,更多相关《ch模煳逻辑工具箱的应用实用实用教案(82页珍藏版)》请在金锄头文库上搜索。
1、GUI构造(guzo)FIS的过程例4.1 双输入、单输出小费问题。 小费三条规则: 1. 如果服务差或食品差,那么小费低; 2. 如果服务好,那么小费中等; 3. 如果服务极好(j ho)或食品极好(j ho),那么小费高。 设服务质量和食品质量都用010之间的一个数表示,10表示非常好,试建立一个模糊逻辑推理系统,可根据输入状态计算出应付多少小费。第1页/共81页第一页,共82页。GUI构造(guzo)FIS的过程 INPUT OUTPUT Rules INPUT OUTPUT terms terms service tipif service is poor then tip is ch
2、eapif service is good then tip is averageif service is excellent then tip is generous service tip (poor, (cheap, good, average, excellent) generous)The General CaseThe Specific Example The FIS Editor The Rule Editor The Membership Function EditorThe GUI Editor第2页/共81页第二页,共82页。从GUI工具(gngj)输入输出 在MATLA
3、B中,模糊系统有两种保存方式:保存到磁盘中,文件后缀名为“.fis”;保存到MATLAB工作空间中,创建一个变量,该变量是一个FIS系统的MATLAB结构(jigu),变量名由用户决定。注意:如果只将新建的FIS保存到MATLAB工作空间中,而没有保存到磁盘中,那么在新的MATLAB会话期间,将无法使用该FIS系统。第3页/共81页第三页,共82页。从GUI工具(gngj)输入输出第4页/共81页第四页,共82页。从GUI工具(gngj)输入输出第5页/共81页第五页,共82页。FIS结构(jigu)FIS:nametypeandMethodorMethoddefuzzMethodimpMet
4、hodaggMethodInput:namerangeOutput:namerangeRule:antecedentconsequentOutput MFs:nametypeparamsInput1 MFs:nametypeparamsInput2 MFs:nametypeparamsFIS层次结构方框图第6页/共81页第六页,共82页。一、新建/打开(d ki)模糊推理系统的方法1. 在command window中输入命令行:fuzzy 弹出MATLAB默认(mrn)的FIS编辑器,是一个单输入单输出系统。 以此为基础可根据用户需要,新建任意模糊推理系统。2. 若需要打开已有的模糊推理系统
5、“tipper.fis”,在command window中输入命令行:fuzzy tipperFIS编辑器第7页/共81页第七页,共82页。二、FIS编辑器窗口功能(gngnng)介绍File Edit View菜单项:允许用户使用5个基本GUI工具中的任意一个保存、打开、编辑模糊系统。FIS编辑器第8页/共81页第八页,共82页。FIS编辑器二、FIS编辑器窗口(chungku)功能介绍第9页/共81页第九页,共82页。FIS编辑器二、FIS编辑器窗口功能(gngnng)介绍第10页/共81页第十页,共82页。FIS编辑器二、FIS编辑器窗口(chungku)功能介绍第11页/共81页第十一
6、页,共82页。 输入变量图标 双击打开隶属度函数编辑器 系统方框图标 双击打开规则编辑器 输出变量图标 双击打开隶属度函数编辑器FIS编辑器二、FIS编辑器窗口(chungku)功能介绍FIS Name Untilited 模糊系统的名称,可使用“File”、“Save as”菜单项改变。第12页/共81页第十二页,共82页。FIS编辑器二、FIS编辑器窗口(chungku)功能介绍用下拉菜单选择模糊推理函数缺省状态:Mamdani型推理FIS Type Mamdani蕴含合成第13页/共81页第十三页,共82页。 编辑输入、输出变量的名称FIS编辑器二、FIS编辑器窗口功能(gngnng)介
7、绍第14页/共81页第十四页,共82页。FIS编辑器二、FIS编辑器窗口(chungku)功能介绍System “Untitled”: 1 input, 1 output, and 0 rules状态行描述最近的当前操作第15页/共81页第十五页,共82页。三、构造双输入(shr)单输出系统增加输入(shr)变量 FIS编辑器第16页/共81页第十六页,共82页。FIS编辑器三、构造双输入单输出系统(xtng)增加输入变量 第17页/共81页第十七页,共82页。三、构造(guzo)双输入单输出系统变量名称更名 单击输入(shr)变量图标 图标从黑边黄框,变为红边黄框 空白编辑域与该输入(shr
8、)变量相对应FIS编辑器第18页/共81页第十八页,共82页。FIS编辑器三、构造(guzo)双输入单输出系统变量名称更名 第19页/共81页第十九页,共82页。FIS编辑器三、构造(guzo)双输入单输出系统保存设置 第20页/共81页第二十页,共82页。FIS编辑器三、构造双输入单输出(shch)系统保存设置 第21页/共81页第二十一页,共82页。FIS编辑器三、构造(guzo)双输入单输出系统第22页/共81页第二十二页,共82页。隶属函数编辑器: 一、打开隶属函数编辑器的方法 二、模糊逻辑工具箱内置的隶属度函数 三、隶属函数编辑器窗口功能介绍 四、新建当前变量(binling)的隶属
9、函数 五、修改当前变量(binling)的隶属函数 六、新建自己的隶属函数第23页/共81页第二十三页,共82页。一、打开(d ki)隶属度函数编辑器的方法1.在FIS编辑器窗口,打开Edit下拉菜单,并选择 Membership Functions2.双击输出(shch)变量图标3.在命令行键入mfedit隶属(lsh)度函数编辑器第24页/共81页第二十四页,共82页。二、模糊(m hu)逻辑工具箱内置的隶属度函数隶属(lsh)度函数编辑器 模糊(m hu)逻辑工具箱中包含了11个内置的隶属度函数类型,这11个函数又由几个基函数构成:分段线性函数、高斯分布函数、S形函数、二次和三次多项式曲
10、线。 按MATLAB惯例,所有隶属度函数的最后两个字母都是“mf”。 详见P197“附录1 模糊(m hu)逻辑工具箱函数简介”第25页/共81页第二十五页,共82页。三、隶属度函数编辑器窗口(chungku)功能介绍File Edit View 菜单项:允许用户使用5个基本GUI工具中的任意一个保存、打开、编辑模糊系统。 其中,“File”、“View”菜单项的功能同FIS编辑器隶属(lsh)度函数编辑器第26页/共81页第二十六页,共82页。三、隶属(lsh)度函数编辑器窗口功能介绍隶属(lsh)度函数编辑器第27页/共81页第二十七页,共82页。三、隶属(lsh)度函数编辑器窗口功能介绍
11、变量模板域: 单击这里的一个变量使其成为当前变量,并编辑它的隶属度函数。 显示当前变量的所有隶属度函数。 单击一条曲线,选中当前变量的某一隶属度函数。拖动鼠标可改变或移动隶属度函数的形状。 当前变量属性域 当前隶属函数属性域隶属(lsh)度函数编辑器第28页/共81页第二十八页,共82页。四、新建当前变量(binling)的隶属函数隶属(lsh)度函数编辑器第29页/共81页第二十九页,共82页。四、新建当前变量的隶属(lsh)函数隶属(lsh)度函数编辑器第30页/共81页第三十页,共82页。四、新建当前(dngqin)变量的隶属函数隶属(lsh)度函数编辑器第31页/共81页第三十一页,共
12、82页。四、新建当前变量(binling)的隶属函数隶属(lsh)度函数编辑器第32页/共81页第三十二页,共82页。五、修改当前变量的隶属(lsh)函数用鼠标拖动可改变(gibin)隶属度函数形状隶属(lsh)度函数编辑器第33页/共81页第三十三页,共82页。六、新建自己的隶属(lsh)函数隶属(lsh)度函数编辑器第34页/共81页第三十四页,共82页。六、新建自己(zj)的隶属函数隶属(lsh)度函数编辑器 用户根据需要,用M文件编写自己的隶属度函数代码,并用与11个内置隶属函数不同(b tn)的名称命名。注意:用户定义隶属度函数时,使用的参数不能超过16个。第35页/共81页第三十五
13、页,共82页。 规则编辑器 一、打开规则编辑器的方法 二、规则编辑器窗口功能介绍(jisho) 三、规则的插入、改变与删除 第36页/共81页第三十六页,共82页。一、打开(d ki)规则编辑器的方法1.在隶属度函数编辑器窗口,打开(d ki)Edit下拉菜单,并选择Edit Rules2.在命令行键入ruleedit规则(guz)编辑器第37页/共81页第三十七页,共82页。二、规则编辑器窗口(chungku)功能介绍规则(guz)编辑器File Edit View Option菜单项: 允许用户使用5个基本GUI工具中的任意一个保存、打开、编辑模糊系统。 其中,“File”、“View”菜
14、单项的功能同FIS编辑器第38页/共81页第三十八页,共82页。二、规则(guz)编辑器窗口功能介绍规则(guz)编辑器第39页/共81页第三十九页,共82页。二、规则(guz)编辑器窗口功能介绍规则(guz)编辑器第40页/共81页第四十页,共82页。二、规则编辑器窗口功能(gngnng)介绍规则(guz)编辑器详述(xin sh)格式: if (service is poor) or (food is rancid) then (tip is cheap)符号格式: (service=poor) = (tip=cheap)索引格式: 1 (1) : 1第41页/共81页第四十一页,共82页
15、。二、规则编辑器窗口(chungku)功能介绍规则(guz)编辑器使用GUI工具自动加入规则输入、输出选项菜单求反状态行删除、增加、改变规则连接规则第42页/共81页第四十二页,共82页。三、规则的插入、改变(gibin)与删除规则(guz)编辑器第43页/共81页第四十三页,共82页。 规则观察器 一、打开(d ki)规则观察器的方法 二、规则观察器窗口功能介绍 第44页/共81页第四十四页,共82页。一、打开规则(guz)观察器的方法 在FIS编辑器、或隶属函数编辑器、或规则(guz)编辑器窗口,打开View下拉菜单,并选择Rules规则(guz)观察器第45页/共81页第四十五页,共82
16、页。二、规则观察器窗口(chungku)功能介绍规则(guz)观察器File Edit View Option菜单项: 允许用户使用5个基本GUI工具中的任意一个保存、打开、编辑模糊系统。 其中,“File”菜单项的功能同FIS编辑器第46页/共81页第四十六页,共82页。二、规则(guz)观察器窗口功能介绍规则(guz)观察器第47页/共81页第四十七页,共82页。二、规则观察器窗口功能(gngnng)介绍规则(guz)观察器第48页/共81页第四十八页,共82页。二、规则(guz)观察器窗口功能介绍规则(guz)观察器第49页/共81页第四十九页,共82页。二、规则观察器窗口(chungk
17、u)功能介绍规则(guz)观察器 service = 5 food = 5输入变量值拖动此线,改变输入变量值显式输入输入变量值移动图形第50页/共81页第五十页,共82页。二、规则观察器窗口功能(gngnng)介绍规则(guz)观察器3条规则的推理结果 3条规则推理的组合结果,采用重心法求精确值tip =13.5输出变量值第51页/共81页第五十一页,共82页。 曲面观察器 一、打开曲面观察器的方法 二、曲面观察器窗口功能(gngnng)介绍 第52页/共81页第五十二页,共82页。一、打开曲面(qmin)观察器的方法 在FIS编辑器、或隶属函数编辑器、或规则(guz)编辑器窗口,打开View
18、下拉菜单,并选择Surface曲面(qmin)观察器第53页/共81页第五十三页,共82页。曲面(qmin)观察器二、曲面观察器窗口(chungku)功能介绍指定X、Y、Z三轴与变量之间的对应关系,若只指定1个输入和输出,则显示一条曲线。第54页/共81页第五十四页,共82页。曲面(qmin)观察器 二、曲面(qmin)观察器窗口功能介绍第55页/共81页第五十五页,共82页。曲面(qmin)观察器二、曲面观察器窗口(chungku)功能介绍指定输入空间网格的密度 用鼠标左键点中图中任意一点,可实现图形的空间旋转,以便从不同角度观察曲面第56页/共81页第五十六页,共82页。曲面(qmin)观
19、察器二、曲面(qmin)观察器窗口功能介绍第57页/共81页第五十七页,共82页。 命令行工作方式 一、装入系统 二、获得系统的结构信息 三、修改系统的结构信息 四、产生GUI工具窗口的函数 五、系统显示函数 六、建立(jinl)一个系统 七、FIS求值 相关(xinggun)的命令行详见P197“附录1.3”第58页/共81页第五十八页,共82页。一、装入系统(xtng)命令行工作(gngzu)方式在commond window中输入(shr)命令行:a=readfis(tipperdemo.fis )a = name: tipperdemo type: mamdani andMethod:
20、 min orMethod: max defuzzMethod: centroid impMethod: min aggMethod: max input: 1x2 struct output: 1x1 struct rule: 1x3 struct第59页/共81页第五十九页,共82页。二、获得(hud)系统的结构信息getfis(a)命令行工作(gngzu)方式注意:a是已存在于MATLAB工作空间中的变量(binling),利用readfis()函数获得,是一个FIS结构。 Name = tipperdemo Type = mamdani NumInputs = 2 InLabels =
21、 service food NumOutputs = 1 OutLabels = tip NumRules = 3 AndMethod = min OrMethod = max ImpMethod = min AggMethod = max DefuzzMethod = centroidans =mamdani a.type第60页/共81页第六十页,共82页。二、获得系统的结构(jigu)信息showfis(a)命令行工作(gngzu)方式1. Name tipper2. Type mamdani3. Inputs/Outputs 2 14. NumInputMFs 3 25. NumOut
22、putMFs 36. NumRules 37. AndMethod min8. OrMethod max9. ImpMethod min10. AggMethod max11. DefuzzMethod centroid12. InLabels service13. food 14. OutLabels tip15. InRange 0 1016. 0 1017. OutRange 0 3018. InMFLabels poor 19. good 20. excellent21.rancid 22. delicious 23. OutMFLabels cheap 24. average 25.
23、 generous26. InMFTypes gaussmf27. gaussmf28. gaussmf29. trapmf 30. trapmf 31. OutMFTypes trimf32. trimf33. trimf34. InMFParams 1.5 0 0 0 35. 1.5 5 0 0 36. 1.5 10 0 037. 0 0 1 3 38. 7 9 10 10 39. OutMFParams 0 5 10 0 40. 10 15 20 041. 20 25 30 042. Rule Antecedent 1 143. 2 0第61页/共81页第六十一页,共82页。三、修改(x
24、igi)系统的结构信息命令行工作(gngzu)方式a = name: tipperdemo type: mamdani andMethod: min orMethod: max defuzzMethod: centroid impMethod: min aggMethod: max input: 1x2 struct output: 1x1 struct rule: 1x3 struct1) a.name = test2) a = setfis(a,name,test)第62页/共81页第六十二页,共82页。四、产生GUI工具(gngj)窗口的函数命令行工作(gngzu)方式fuzzy (a)
25、 产生FIS编辑器mfedit(a) 产生隶属度函数(hnsh)编辑器ruleedit(a) 产生规则编辑器ruleview(a) 产生规则观察器surfview(a) 产生曲面观察器第63页/共81页第六十三页,共82页。五、系统(xtng)显示函数plotfis(a) 命令行工作(gngzu)方式用方框图显示(xinsh)整个系统第64页/共81页第六十四页,共82页。五、系统显示(xinsh)函数plotmf(a,input,1)命令行工作(gngzu)方式第65页/共81页第六十五页,共82页。五、系统(xtng)显示函数plotmf(a,output,1)命令行工作(gngzu)方式
26、第66页/共81页第六十六页,共82页。五、系统(xtng)显示函数gensurf(a)命令行工作(gngzu)方式第67页/共81页第六十七页,共82页。六、建立一个(y )系统方法一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;.建立(jinl)新的名为“tipper”的模糊逻辑系统建立新的名为“
27、service”的输入(shr)变量指定输入变量“service”的取值范围为输入变量“service”,建立新的名为“poor”的隶属度函数指定隶属度函数“poor”的类型指定隶属度函数“poor”的参数建立新的名为“tip”的输出变量命令行工作方式第68页/共81页第六十八页,共82页。a.rule(1).antecedent=1 1;a.rule(1).consequent=1;a.rule(1).weight=1;a.rule(1).connection=2;.规则1采用两个输入变量的第一个隶属(lsh)度函数:poor、rancid规则(guz)1的输出规则(guz)1的权为1规则1
28、对两个输入条件采用“or”操作六、建立一个系统方法一命令行工作方式第69页/共81页第六十九页,共82页。a=newfis(tipper);a=addvar(a,input,1,service,0,10);a=addmf(a, input,1,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);六、建立(jinl)一个系统方法二索引方式命令行工
29、作(gngzu)方式第70页/共81页第七十页,共82页。七、FIS求值evalfis()命令行工作(gngzu)方式1) 求给定(i dn)一个输入的输出值 a=readfis(tipper); evalfis(1 2,a)运行(ynxng)结果:ans = 5.55862) 求给定多个输入的输出值 a=readfis(tipper); evalfis(3 5; 2 7,a)运行结果:ans = 12.2184 7.7885第71页/共81页第七十一页,共82页。 应用(yngyng)实例模糊控制洗衣机1. 选择模糊控制参数 模糊控制洗衣机的控制对象是洗衣机的洗涤时间; 假定输入是被洗衣物的
30、污泥和油脂(yuzh),输出是洗涤时间。 输入/输出参数分别定义如下: 污泥SD(污泥少),MD(中等污泥),LD(污泥多) 油脂(yuzh)NG(无油脂(yuzh),MG(中等油脂(yuzh),LG(油脂(yuzh)多) 洗涤时间VS(很短),S(短),M(中等),L(长),VL(很长) 设污泥和油脂(yuzh)的论域范围为:0,100; 洗涤时间的论域范围为:0,60。第72页/共81页第七十二页,共82页。 应用(yngyng)实例模糊控制洗衣机隶属函数(hnsh)的解析式表示如下: 第73页/共81页第七十三页,共82页。 应用(yngyng)实例模糊控制洗衣机第74页/共81页第七十
31、四页,共82页。 应用(yngyng)实例模糊控制洗衣机2. 设计(shj)控制规则 洗衣机的洗涤规则如下表所示: 油脂油脂污泥污泥NG(无油脂无油脂) MG(中等油脂中等油脂)LG(油脂多油脂多)SD(污泥少污泥少)VSMLMD(中等污泥中等污泥)SMLLD(污泥多污泥多)MLVL第75页/共81页第七十五页,共82页。 应用(yngyng)实例模糊控制洗衣机3. 规则评估 假定(jidng)传感器给出的精确输入为:x0(污泥)=60,y0(油脂)=70 0 MG(70)=3/5 LG(70)=2/50000 MD(60)=4/50 M(z) L(z) LD(60)=1/50 L(z) VL
32、(z)与模糊术语进行(jnxng)匹配,将精确量模糊化: 根据洗涤规则,洗衣机的推导决策表可简化为: 第76页/共81页第七十六页,共82页。 应用(yngyng)实例模糊控制洗衣机4. 消解(xioji)冲突 有4个规则被触发: Rule1:IF x is MD and y is MG THEN z is M; Rule2:IF x is MD and y is LG THEN z is L; Rule3:IF x is LD and y is MG THEN z is L; Rule4:IF x is LD and y is LG THEN z is VL; 计算4个规则(guz)的规则(
33、guz)强度:第77页/共81页第七十七页,共82页。 应用(yngyng)实例模糊控制洗衣机0 MG(70)=3/5 LG(70)=2/50000 MD(60)=4/503/52/5 LD(60)=1/501/51/5洗衣机的规则(guz)强度表示为: 0 MG(70)=3/5 LG(70)=2/50000 MD(60)=4/50min(3/5 , M(z)min(2/5 , L(z) LD(60)=1/50min(1/5 , L(z)min(1/5 , VL(z)将推导(tudo)强度表和规则强度表中对应的元素求小运算,得到控制输出: 第78页/共81页第七十八页,共82页。 应用(yng
34、yng)实例模糊控制洗衣机 由于规则2的输出被包含在规则3的输出中,所以洗衣机的组合输出实际上是三个削顶三角模糊数的并。 用最大隶属(lsh)度平均法,对模糊输出结果反模糊化: 第79页/共81页第七十九页,共82页。 实验课习题(xt):根据(gnj)4.8的分析,试用模糊逻辑工具箱建立模糊控制洗衣机的模糊推理系统。第80页/共81页第八十页,共82页。感谢您的欣赏(xnshng)!第81页/共81页第八十一页,共82页。内容(nirng)总结GUI构造FIS的过程。三、构造双输入单输出系统变量(binling)名称更名。aggMethod: max。a.input(1).range=0,10。a.output(1).name=tip。a.rule(1).connection=2。规则1的权为1。a=addvar(a,output,1,tip,0,30)。a=addrule(a,rulelist)。a=readfis(tipper)第八十二页,共82页。