MATLAB模糊逻辑.docx
《MATLAB模糊逻辑.docx》由会员分享,可在线阅读,更多相关《MATLAB模糊逻辑.docx(27页珍藏版)》请在课桌文档上搜索。
1、第6章模糊逻辑6.1 隶属函数6.1.1 高斯隶属函数函数gaussmf格式y=gaussmf(x,sigcj)(X-C)2说明高斯隶属函数的数学表达式为:f(x;a,c)=eF,其中,c为参数,X为自变量,Sig为数学表达式中的参数.例6-1x=0:0.1:10;y=gaussmf(x,25);plot(x,y)xlabel(gaussmf,P=25)结果为图6-1。图6-16.1.2 两边型高斯隶属函数函数gauss2mf格式y=gauss2mf(x,siglclsig2c2)说明SigKckSig2、c2为命令1中数学表达式中的两对参数例6-2 x=(0:0.1:10);yl=gauss
2、2mf(x,|2418); y2=gauss2mf(x,2517); y3=gauss2mf(x,2616);y4=gauss2mf(x,|2715);y5=gauss2mf(x,2814);plot(x,yly2y3y4y5);set(gcf.name,gauss2mf.,numbertitle,.off);结果为图6-2。6.1.3 建立一般钟型隶属函数函数gbcllmf格式y=gbellmf(x,params)说明一般钟型隶属函数依靠函数表达式f(x;a,b,c)=!l+2b这里X指定变量定义域范围,参数b通常为正,参数C位于曲线中心,第二个参数变量ParamS是一个各项分别为a,b和C
3、的向量。例6-3x=0:0.1:10;y=gbellmf(x,246);plot(x,y)xlabel(,gbellmt;P=246)结果为图6-3。图6-26.1.4 两个sigmoid型隶属函数之差组成的隶属函数函数dsigmf格式y=dsigmf(x,alcla2c2)说明这里sigmoid型隶属函数由下式给出f(x;a,c)=-匕=1+e,X是变量,a,c是参数。dsigmf使用四个参数a,c,a2,C2,并且是两个Sigmoid型函数之差:f|(x;ahci)-f2(x;a2,c2),参数按顺序ca?c?歹U出。例6-4x=0:0.1:10;y=dsigmf(x,5257);plot
4、(x,y)结果为图6-4图6-46.1.5 通用隶属函数计算函数evalmf格式y=evalmf(x,mfParams,m11ype)说明evalmf可以计算任意隶属函数,这里X是变量定义域,mfTypc是工具箱提供的,种隶属函数,mIParams是此隶属函数的相应参数,如果你想创建自定义的隶属函数,evalmf仍可以工作,因为它可以计算它不知道名字的任意隶属函数。例6-5x=0:0.1:10;mfpa11ms=246J;mftype=gbellmf;y=evalmf(x,mfparams,mfiype);plot(x,y)xlabel(,gbellmf,P=246)结果为图6-5。图6-56
5、.1.6 建立n型隶属函数函数primf格式y=pimf(x,abCd)说明向量X指定函数自变量的定义域,该函数在向量X的指定点处进行计算,参数a,b,c,d决定了函数的形状,a和d分别对应曲线下部的左右两个拐点,b和C分别对应曲线上部的左右两个拐点。例6-6x=0:0.1:10;y=pimf(x,(14510);plot(x,y)xlabel(,pimf,P=l4510)结果为图6-6。6.1.7 通过两个SigmOid型隶属函数的乘积构造隶属函数函数psigmf格式y=psigmf(x,alCla2c2)说明这里sigmoid型隶属函数由下式给出f(x;a,c)=-1.1+e,X是变量,a
6、,c是参数。PSigmf使用四个参数a,c,a2,C2,并且是两个Sigmoid型函数之积:f|(x;ai,Ci)*f2(x;a2,C2)参数按顺序aCla2c2列出。例6-7x=0:0.1:10;y=psigmf(x,23-58);plot(x,y)xlabel(,psigmf,P=23-58)结果为图6-7。图6-6图6-76.1.8建立Sigmoid型隶属函数函数sigmf格式y=sigmf(x,ac)说明f(x;a,c)=-Z-T-T-,定义域由向量X给出,形状由参数a和C确定。1+e1;例6-8x=0:0.1:10;y=sigmf(x,24);plot(x,y)xlabel(,sig
7、mf,P=24)结果为图6-8o图6-8例6-9x=(0:0.2:10)*; y=sigmf(x4-l5); y2=sigmf(x,-35);y?=sigmf(x,45); y4=sigmf(xJ85); subplot(2,1,1),plot(x,yiYly3y4); y=sigmf(x,52); y2=Sigmf(X,54);ys=sigmf(x,56); y4=sigmf(x,58); subplot(2,1,2),plot(x,y1y2y3y4);结果为图6-9。图6-9 .1.9建立S型隶属函数函数smf格式y=smf(x,abj)%x为变量,a为b参数,用于定位曲线的斜坡部分。例6
8、-10x=0:0.1:10;y=smf(x,18);plot(x,y)结果为图6-10。*mt.P1)图6-10例6J1x=0:0.1:10;subplot(3,1,1);plot(x,smf(x,|28);subplot(3,1,2);plot(x,smf(x,46);subplot(3,1,3)lot(x.smf(x,64);结果为图6-11。图6-II .1.10建立梯形隶属函数函数trapmf格式y=trapmf(x,abcd)0,说明这里梯形隶属函数表达式:X-ab-af(x;a,b,c,d)=I,xaaxcxy=trapmf(xj1578);plot(x,y)xlabel(trap
9、mf,P=(l578,)结果为图6-12。例6-13x=(0:0.1:10); y=trapnf(x,2379); y=irapmf(x,3468);y?=trapmf(x,4557);y4=trapmf(x,5646); plot(x,yy2yaju);结果为图6-13。图&136.1.11建立三角形隶属函数函数trimf说明格式y=trimf(x,params)y=trimf(x,abc)0,X-ab-a,f(x;a,b,c,)=C-Xc-b,0三角形隶属函数表达式:XaaXy=trimf(x,(368);plot(x,y)xlabel(,trimf.P=368)结果为图6-14。图6-1
10、4例6-15x=(0:0.2:10/; y=trimf(x,345); y2=trimf(x,247); yj=trimf(x,l49); subploi(2,1.1),ploi(x,yyzy?); y=trimf(x,235); y=trimf(x,347);y?=trimf(x,459); subplot(2,l,2),plot(x,yyzy3);结果为图6-15。图6456.1.12 建立Z型隶属函数函数Zmf格式y=zmf(x,ab)%x为自变量,a和b为参数,确定曲线的形状。例6-16x=0:0.1:10;y=zmf(x,37);plot(x,y)xlabel(,zmf,P=37)结
11、果为图6-16,例6-17 x=0:0.1:10; subplot(3,l,1);PIot(X,zmf(x,28); subplot(3,1,2)plot(x,zmf(x,46); subplot(3,1,3);PIOt(X,zmf(x,64);结果为图6-17。I.P(37|图6-16j一图6-17图6-186.1.13 两个隶属函数之间转换参数函数mf2mf格式OutParams=mf2mf(inParams,inType,OutType)说明此函数根据参数集,将任意内建的隶属函数类型转换为另一种类型,inParams为你要转换的隶属函数的参数,inType为你要转换的隶属函数的类型的字符
12、串名称,OUtTyPe:你要转换成的目标隶属函数的字符串名称。例6例x=0:0.1:5;mfpl=I23;mfp2=mf2mf(mfp1,gbellmf,trinf);plot(x,gbellmf(x,mfpl),x,(rimf(x,mfp2)结果为图6-18。6.1.14 基本FIS编辑器函数fuzzy格式fuzzy%弹出未定义的基本FIS编辑器fuzzy(fismal)%使用fuzzy(tipper),弹出下图FlS编辑器。编辑器是任意模糊推理系统的高层显示,它允许你调用各种其它的编辑器来对其操作。此界面允许你方便地访问所有其它的编辑器,并以最灵活的方式与模糊系统进行交互。方框图:窗口上方
13、的方框图显示了输入、输出和它们中间的模糊规则处理器。单击任意一个变量框,使选中的方框成为当前变量,此时它变成红色高亮方框。双击任意一个变量,弹出隶属度函数编辑器,双击模糊规则编辑器,弹出规则编辑器。图6-19菜单项:FIS编辑器的菜单棒允许你打开相应的工具,打开并保存系统。 FiIe菜单包括:NewmamdaniFIS.打开新mamdani型系统;NewSugenoFIS.打开新Sugeno型系统;Openfromdisk.从磁盘上打开指定的.fis文件系统;Savetodisk保存当前系统到磁盘上的一个.fis文件上;Savetodiskas.重命名方式保存当前系统到磁盘上;Openfrom
14、workspace.从工作空间中指定的FIS结构变量装入一个系统;Savetoworkspace.保存系统到工作空间中当前命名的FIS结构变量中;Savetoworkspaceas.保存系统到工作空间中指定的FIS结构变量中;Closewindows关闭GUI; Edil菜单包括:Addinput增加另一个输入到当前系统中;Addoutput增加另一个输出到当前系统中;Removevariable删除一个所选的变量;Undo恢复当前最近的改变; View菜单包括:EditMFs.调用隶属度函数编辑器;Editrules.调用规则编辑器;Editanfis.只对单输出SUgenO型系统调用编辑器
15、;Viewrules.调用规则观察器;Viewsurface.调用曲面观察器。弹出式菜单:用五个弹出式菜单来改变模糊蕴含过程中五个基本步骤的功能: Andmethod:为一个定制操作选择min、prod或Custom; Ormethod:为一个定制操作选择max、probor(概率)或CUSlom;Implicationmethod:为一个定制操作选择minprod或Custom;此项对Sugeno型模糊系统不可用。,Aggregationmethod:为一个定制操作选择max、sum、Probor或CUStOmo此项对SUgeno型模糊系统不可用。,Defuzzificationmethod
16、:对Mamdani型推理,为一个定制操作选择Centroid(面积中心法)、bisector(面积平分法)、mom(平均最大隶属度法)、som(最大隶属度最小值法)、Iom(最大隶属度最大值法)或CUStom。对Sugeno型推理,在WtaVeI(加权平均)或WtSUm(加权和)之间选择。6.1.15隶属函数编辑器函数mfedit格式mfedit(a,)mfedit(八)mfedit说明mfedit(然)生成一个隶属函数编辑器,他允许你检查和修改存储在文件a.fis中FIS结构的所有隶属函数。如图,mfeditCtank)以这种方式打开隶属函数编辑器并装入tank.fis中存储的所有隶属函数。
17、mfedit(八)对于FIS结构操作一个MAT1.AB工作空间变量a。Mfedit可单独弹出没有装入FIS的隶属函数编辑器图6-20菜单项:在ANFlS编辑器GUl上,有一个菜单棒允许你打开相关的GUl工具、打开和保存系统等。File菜单与FIS编辑器上的File菜单功能相同。 Edil菜单项包括:AddMF.为当前语言变量增加隶属度函数;AddcustomMF.为当前语言变量增加定制的隶属度函数;RemovecurrenlMF删除当前的隶属度函数;RemoveallMFS删除当前语言变量的所有隶属度函数;Undo恢复当前最近的改变。 View菜单项包括:EditFISproperties.调
18、用FIS编辑器;Editrules.调用规则编辑器:Viewrules.调用规则观察器;Viewsurface.调用曲面观察器。6.2模糊推理结构FIS6.2.1 不使用数据聚类方法从数据生成FIS结构函数genfisl格式fismat=genfis1(data)fismat=genfis1(data,numMFs,inmftype,outmftype)说明genfisl为anfis训练生成一个Sugeno型作为初始条件的FIS结构(初始隶属函数)。genfisl(data,numMFs,inmftype,OUtmftyPe)使用对数据的网格分割方法,从训练数据集生成一个FIS结构。Data是
19、训练数据矩阵,除最后一列表示单一输出数据外,它的其它各列表示输入数据。NUmMFS是一个向量,它的坐标指定与每一输入相关的隶属函数的数量。如果你想使用每个输入相关的相同数量的隶属函数,那么只须使numMFs成为一个数就足够了。Inmftype是一个字符串数组,它的每行指定与每个输入相关的隶属函数类型。outmftype是一个字符串数组,它的指定与每个输出相关的隶属函数类型例6-19data=rand(10,l)10*rand(10.1)-5rand(10,1)1;numMFs=37;m11ype=sir2mal(,pimf.,trimf);fismat=genfis1(data,numMFs,
20、mfType);x,mf=plotmf(fismat,input,1);subploi(2,l.l).plot(x,mO;xlabel(input1(pimf);x,mf=PIotmf(fismat,input,2);subplot(2,l,2),plot(x,mf);xlabel(input2(trimf),);结果为图6-21。k*ut2(lrkn图6-216.2.2 使用减法聚类方法从数据生成FIS结构函数genfis2格式fismat=genfis2(Xin,Xout,radii)fismat=genfis2(Xin,Xout,radii,xBounds)fismat=genfis2(
21、Xin,Xout,radii,xBounds,options)说明Xin是一个矩阵,它的每一行包含一个数据点的输入值;XoUt是一个矩阵,它的每一行包含一个数据点的输出值;randi是一个向量,它指定一个聚类中心在一个数据维上作用的范围,这里假定数据位于个单位超立方体内:XBoUndS是一个2XN可选矩阵,它用于指定如何将Xin和XoUt中的数据映射到一个超立方体内,这里是数据的维数(行数);options是一个可选向量,它指定的值用于覆盖算法参数的缺省值。例6-20fismat=genfis2(Xin,Xout,0.5)这是使用此函数所需的最小变量数。这里对所有数据维指定0.5的作用范围。f
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MATLAB 模糊 逻辑
链接地址:https://www.desk33.com/p-1416382.html