ch模煳逻辑工具箱的应用实用_第1页
ch模煳逻辑工具箱的应用实用_第2页
ch模煳逻辑工具箱的应用实用_第3页
ch模煳逻辑工具箱的应用实用_第4页
ch模煳逻辑工具箱的应用实用_第5页
已阅读5页,还剩76页未读 继续免费阅读

下载本文档

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

文档简介

会计学1ch模煳逻辑工具箱的应用实用GUI构造FIS的过程例4.1双输入、单输出小费问题。小费三条规则:

1.如果服务差或食品差,那么小费低;

2.如果服务好,那么小费中等;

3.如果服务极好或食品极好,那么小费高。设服务质量和食品质量都用0~10之间的一个数表示,10表示非常好,试建立一个模糊逻辑推理系统,可根据输入状态计算出应付多少小费。第1页/共81页GUI构造FIS的过程INPUTOUTPUTRulesINPUTOUTPUTtermstermsservicetipifserviceispoorthentipischeapifserviceisgoodthentipisaverageifserviceisexcellentthentipisgenerousservicetip(poor,(cheap,good,average,excellent)generous)TheGeneralCaseTheSpecificExampleTheFISEditorTheRuleEditorTheMembershipFunctionEditorTheGUIEditor第2页/共81页从GUI工具输入输出

在MATLAB中,模糊系统有两种保存方式:保存到磁盘中,文件后缀名为“.fis”;保存到MATLAB工作空间中,创建一个变量,该变量是一个FIS系统的MATLAB结构,变量名由用户决定。注意:如果只将新建的FIS保存到MATLAB工作空间中,而没有保存到磁盘中,那么在新的MATLAB会话期间,将无法使用该FIS系统。第3页/共81页从GUI工具输入输出第4页/共81页从GUI工具输入输出第5页/共81页FIS结构FIS:nametypeandMethodorMethoddefuzzMethodimpMethodaggMethodInput:namerangeOutput:namerangeRule:antecedentconsequentOutputMFs:nametypeparamsInput1MFs:nametypeparamsInput2MFs:nametypeparamsFIS层次结构方框图第6页/共81页一、新建/打开模糊推理系统的方法1.在commandwindow中输入命令行:fuzzy

弹出MATLAB默认的FIS编辑器,是一个单输入——单输出系统。以此为基础可根据用户需要,新建任意模糊推理系统。2.若需要打开已有的模糊推理系统“tipper.fis”,在commandwindow中输入命令行:fuzzytipperFIS编辑器第7页/共81页二、FIS编辑器窗口功能介绍FileEditView菜单项:允许用户使用5个基本GUI工具中的任意一个保存、打开、编辑模糊系统。FIS编辑器第8页/共81页FIS编辑器二、FIS编辑器窗口功能介绍第9页/共81页FIS编辑器二、FIS编辑器窗口功能介绍第10页/共81页FIS编辑器二、FIS编辑器窗口功能介绍第11页/共81页

输入变量图标双击打开隶属度函数编辑器

系统方框图标双击打开规则编辑器

输出变量图标双击打开隶属度函数编辑器FIS编辑器二、FIS编辑器窗口功能介绍FISNameUntilited

模糊系统的名称,可使用“File”、“Saveas…”菜单项改变。第12页/共81页FIS编辑器二、FIS编辑器窗口功能介绍用下拉菜单选择模糊推理函数缺省状态:Mamdani型推理FISTypeMamdani蕴含合成第13页/共81页

编辑输入、输出变量的名称FIS编辑器二、FIS编辑器窗口功能介绍第14页/共81页FIS编辑器二、FIS编辑器窗口功能介绍System“Untitled”:1input,1output,and0rules状态行描述最近的当前操作第15页/共81页三、构造双输入-单输出系统——增加输入变量FIS编辑器第16页/共81页FIS编辑器三、构造双输入-单输出系统——增加输入变量第17页/共81页三、构造双输入-单输出系统——变量名称更名

单击输入变量图标图标从黑边黄框,变为红边黄框空白编辑域与该输入变量相对应FIS编辑器第18页/共81页FIS编辑器三、构造双输入-单输出系统——变量名称更名第19页/共81页FIS编辑器三、构造双输入-单输出系统——保存设置第20页/共81页FIS编辑器三、构造双输入-单输出系统——保存设置第21页/共81页FIS编辑器三、构造双输入-单输出系统第22页/共81页隶属函数编辑器:一、打开隶属函数编辑器的方法二、模糊逻辑工具箱内置的隶属度函数三、隶属函数编辑器窗口功能介绍四、新建当前变量的隶属函数五、修改当前变量的隶属函数六、新建自己的隶属函数第23页/共81页一、打开隶属度函数编辑器的方法在FIS编辑器窗口,打开Edit下拉菜单,并选择MembershipFunctions…双击输出变量图标在命令行键入mfedit隶属度函数编辑器第24页/共81页二、模糊逻辑工具箱内置的隶属度函数隶属度函数编辑器

模糊逻辑工具箱中包含了11个内置的隶属度函数类型,这11个函数又由几个基函数构成:分段线性函数、高斯分布函数、S形函数、二次和三次多项式曲线。按MATLAB惯例,所有隶属度函数的最后两个字母都是“mf”。详见P197“附录1模糊逻辑工具箱函数简介”第25页/共81页三、隶属度函数编辑器窗口功能介绍FileEditView

菜单项:允许用户使用5个基本GUI工具中的任意一个保存、打开、编辑模糊系统。其中,“File”、“View”菜单项的功能同FIS编辑器隶属度函数编辑器第26页/共81页三、隶属度函数编辑器窗口功能介绍隶属度函数编辑器第27页/共81页三、隶属度函数编辑器窗口功能介绍变量模板域:单击这里的一个变量使其成为当前变量,并编辑它的隶属度函数。

显示当前变量的所有隶属度函数。单击一条曲线,选中当前变量的某一隶属度函数。拖动鼠标可改变或移动隶属度函数的形状。

当前变量属性域

当前隶属函数属性域隶属度函数编辑器第28页/共81页四、新建当前变量的隶属函数隶属度函数编辑器第29页/共81页四、新建当前变量的隶属函数隶属度函数编辑器第30页/共81页四、新建当前变量的隶属函数隶属度函数编辑器第31页/共81页四、新建当前变量的隶属函数隶属度函数编辑器第32页/共81页五、修改当前变量的隶属函数用鼠标拖动可改变隶属度函数形状隶属度函数编辑器第33页/共81页六、新建自己的隶属函数隶属度函数编辑器第34页/共81页六、新建自己的隶属函数隶属度函数编辑器

用户根据需要,用M文件编写自己的隶属度函数代码,并用与11个内置隶属函数不同的名称命名。注意:用户定义隶属度函数时,使用的参数不能超过16个。第35页/共81页

规则编辑器一、打开规则编辑器的方法二、规则编辑器窗口功能介绍三、规则的插入、改变与删除第36页/共81页一、打开规则编辑器的方法在隶属度函数编辑器窗口,打开Edit下拉菜单,并选择EditRules…在命令行键入ruleedit规则编辑器第37页/共81页二、规则编辑器窗口功能介绍规则编辑器FileEditViewOption菜单项:允许用户使用5个基本GUI工具中的任意一个保存、打开、编辑模糊系统。其中,“File”、“View”菜单项的功能同FIS编辑器第38页/共81页二、规则编辑器窗口功能介绍规则编辑器第39页/共81页二、规则编辑器窗口功能介绍规则编辑器第40页/共81页二、规则编辑器窗口功能介绍规则编辑器详述格式:if(serviceispoor)or(foodisrancid)then(tipischeap)符号格式:(service==poor)=>(tip==cheap)索引格式:1(1):1第41页/共81页二、规则编辑器窗口功能介绍规则编辑器使用GUI工具自动加入规则输入、输出选项菜单求反状态行删除、增加、改变规则连接规则第42页/共81页三、规则的插入、改变与删除规则编辑器第43页/共81页

规则观察器一、打开规则观察器的方法二、规则观察器窗口功能介绍第44页/共81页一、打开规则观察器的方法

在FIS编辑器、或隶属函数编辑器、或规则编辑器窗口,打开View下拉菜单,并选择Rules…规则观察器第45页/共81页二、规则观察器窗口功能介绍规则观察器FileEditViewOption菜单项:允许用户使用5个基本GUI工具中的任意一个保存、打开、编辑模糊系统。其中,“File”菜单项的功能同FIS编辑器第46页/共81页二、规则观察器窗口功能介绍规则观察器第47页/共81页二、规则观察器窗口功能介绍规则观察器第48页/共81页二、规则观察器窗口功能介绍规则观察器第49页/共81页二、规则观察器窗口功能介绍规则观察器service=5food=5输入变量值拖动此线,改变输入变量值显式输入输入变量值移动图形第50页/共81页二、规则观察器窗口功能介绍规则观察器3条规则的推理结果3条规则推理的组合结果,采用重心法求精确值tip=13.5输出变量值第51页/共81页

曲面观察器一、打开曲面观察器的方法二、曲面观察器窗口功能介绍第52页/共81页一、打开曲面观察器的方法

在FIS编辑器、或隶属函数编辑器、或规则编辑器窗口,打开View下拉菜单,并选择Surface…曲面观察器第53页/共81页曲面观察器二、曲面观察器窗口功能介绍指定X、Y、Z三轴与变量之间的对应关系,若只指定1个输入和输出,则显示一条曲线。第54页/共81页曲面观察器

二、曲面观察器窗口功能介绍第55页/共81页曲面观察器二、曲面观察器窗口功能介绍指定输入空间网格的密度

用鼠标左键点中图中任意一点,可实现图形的空间旋转,以便从不同角度观察曲面第56页/共81页曲面观察器二、曲面观察器窗口功能介绍第57页/共81页

命令行工作方式一、装入系统二、获得系统的结构信息三、修改系统的结构信息四、产生GUI工具窗口的函数五、系统显示函数六、建立一个系统七、FIS求值相关的命令行详见P197“附录1.3”第58页/共81页一、装入系统命令行工作方式在commondwindow中输入命令行:a=readfis('tipperdemo.fis'

)a=name:'tipperdemo'type:'mamdani'andMethod:'min'orMethod:'max'defuzzMethod:'centroid'impMethod:'min'aggMethod:'max'input:[1x2struct]output:[1x1struct]rule:[1x3struct]第59页/共81页二、获得系统的结构信息——getfis(a)命令行工作方式注意:a是已存在于MATLAB工作空间中的变量,利用readfis()函数获得,是一个FIS结构。Name=tipperdemoType=mamdaniNumInputs=2InLabels=servicefoodNumOutputs=1OutLabels=tipNumRules=3AndMethod=minOrMethod=maxImpMethod=minAggMethod=maxDefuzzMethod=centroidans=mamdania.type第60页/共81页二、获得系统的结构信息——showfis(a)命令行工作方式1.Nametipper2.Typemamdani3.Inputs/Outputs[21]4.NumInputMFs[32]5.NumOutputMFs36.NumRules37.AndMethodmin8.OrMethodmax9.ImpMethodmin10.AggMethodmax11.DefuzzMethodcentroid12.InLabelsservice13.food14.OutLabelstip15.InRange[010]16.[010]17.OutRange[030]18.InMFLabelspoor19.good20.excellentrancid22.delicious23.OutMFLabelscheap24.average25.generous26.InMFTypesgaussmf27.gaussmf28.gaussmf29.trapmf30.trapmf31.OutMFTypestrimf32.trimf33.trimf34.InMFParams[1.5000]35.[1.5500]36.[1.51000]37.[0013]38.[791010]39.OutMFParams[05100]40.[1015200]41.[2025300]42.RuleAntecedent[11]43.[20]……第61页/共81页三、修改系统的结构信息命令行工作方式a=name:'tipperdemo'type:'mamdani'andMethod:'min'orMethod:'max'defuzzMethod:'centroid'impMethod:'min'aggMethod:'max'input:[1x2struct]output:[1x1struct]rule:[1x3struct]1)=‘test’2)a=setfis(a,’name’,’test’)第62页/共81页四、产生GUI工具窗口的函数命令行工作方式fuzzy(a)产生FIS编辑器mfedit(a)产生隶属度函数编辑器ruleedit(a)产生规则编辑器ruleview(a)产生规则观察器surfview(a)产生曲面观察器第63页/共81页五、系统显示函数——plotfis(a)命令行工作方式用方框图显示整个系统第64页/共81页五、系统显示函数——plotmf(a,'input',1)命令行工作方式第65页/共81页五、系统显示函数——plotmf(a,'output',1)命令行工作方式第66页/共81页五、系统显示函数——gensurf(a)命令行工作方式第67页/共81页六、建立一个系统——方法一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.50];......a.output(1).name='tip';......建立新的名为“tipper”的模糊逻辑系统建立新的名为“service”的输入变量指定输入变量“service”的取值范围为输入变量“service”,建立新的名为“poor”的隶属度函数指定隶属度函数“poor”的类型指定隶属度函数“poor”的参数建立新的名为“tip”的输出变量命令行工作方式第68页/共81页a.rule(1).antecedent=[11];a.rule(1).consequent=[1];a.rule(1).weight=1;a.rule(1).connection=2;......规则1采用两个输入变量的第一个隶属度函数:poor、rancid规则1的输出规则1的权为1规则1对两个输入条件采用“or”操作六、建立一个系统——方法一命令行工作方式第69页/共81页a=newfis('tipper');a=addvar(a,'input',1,'service‘,[0,10]);a=addmf(a,'input',1,'poor','gaussmf',[1.50]);......a=addvar(a,‘output',1,‘tip‘,[0,30]);a=addmf(a,‘output',1,‘cheep',‘trimf',[0510]);......rulelist=[11112 2021132312];a=addrule(a,rulelist);六、建立一个系统——方法二索引方式命令行工作方式第70页/共81页七、FIS求值——evalfis()命令行工作方式1)求给定一个输入的输出值a=readfis('tipper');evalfis([12],a)运行结果:ans=5.55862)求给定多个输入的输出值a=readfis('tipper');evalfis([35;27],a)运行结果:ans=12.21847.7885第71页/共81页

应用实例——模糊控制洗衣机1.选择模糊控制参数模糊控制洗衣机的控制对象是洗衣机的洗涤时间;假定输入是被洗衣物的污泥和油脂,输出是洗涤时间。输入/输出参数分别定义如下:污泥{SD(污泥少),MD(中等污泥),LD(污泥多)}

油脂{NG(无油脂),MG(中等油脂),LG(油脂多)}

洗涤时间{VS(很短),S(短),M(中等),L(长),VL(很长)}

设污泥和油脂的论域范围为:[0,100];洗涤时间的论域范围为:[0,60]。第72页/共81页

应用实例——模糊控制洗衣机隶属函数的解析式表示如下:第73页/共81页

应用实例——模糊控制洗衣机第74页/共81页

应用实例——模糊控制洗衣机2.设计控制规则洗衣机的洗涤规则如下表所示:

油脂污泥NG(无油脂)MG(中等油脂)LG(油脂多)SD(污泥少)VSML

温馨提示

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

评论

0/150

提交评论