MATLAB模糊逻辑.docx
第6章模糊逻辑6.1 隶属函数6.1.1 高斯隶属函数函数gaussmf格式y=gaussmf(x,sigcj)(X-C)2说明高斯隶属函数的数学表达式为:f(x;a,c)=eF",其中,c为参数,X为自变量,Sig为数学表达式中的参数.例6-1»x=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=gauss2mf(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的向量。例6-3»x=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-4»x=0:0.1:10;>>y=dsigmf(x,5257);>>plot(x,y)结果为图6-4图6-46.1.5 通用隶属函数计算函数evalmf格式y=evalmf(x,mfParams,m11ype)说明evalmf可以计算任意隶属函数,这里X是变量定义域,mfTypc是工具箱提供的,种隶属函数,mIParams是此隶属函数的相应参数,如果你想创建自定义的隶属函数,evalmf仍可以工作,因为它可以计算它不知道名字的任意隶属函数。例6-5»x=0:0.1:10;>>mfpa11ms=246J;>>mftype='gbellmf;>>y=evalmf(x,mfparams,mfiype);>>plot(x,y)>>xlabel(,gbellmf,P=246')结果为图6-5。图6-56.1.6 建立n型隶属函数函数primf格式y=pimf(x,abCd)说明向量X指定函数自变量的定义域,该函数在向量X的指定点处进行计算,参数a,b,c,d决定了函数的形状,a和d分别对应曲线下部的左右两个拐点,b和C分别对应曲线上部的左右两个拐点。例6-6»x=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,c是参数。PSigmf使用四个参数a,c,a2,C2,并且是两个Sigmoid型函数之积:f|(x;ai,Ci)*f2(x;a2,C2)»参数按顺序aCla2c2列出。例6-7»x=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-8»x=0:0.1:10;>>y=sigmf(x,24);>>plot(x,y)>>xlabel(,sigmf,P=24')结果为图6-8o图6-8例6-9»x=(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-10»x=0:0.1:10;>>y=smf(x,18);>>plot(x,y)结果为图6-10。*mt.P1)图6-10例6J1>>x=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,xaax<bbxc>cx<ddx或f(x;a,b,c,d)=max(min(-,1,-),0),定义域由向量X确定,曲线形状由参数b-ad-ca,bed确定,参数a和d对应梯形下部的左右两个拐点,参数b和C对应梯形上部的左右两个拐点。例6J2»x=0:0.1:10;>>y=trapmf(xj1578);>>plot(x,y)>>xlabel('trapmf,P=(l578,)结果为图6-12。例6-13>>x=(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三角形隶属函数表达式:XaaX<bbxcCX或者f(x;a,b,c,)=max(min(-),0)b-ac-b定义域由向量X确定,曲线形状由参数a,b,c确定,参数a和C对应三角形下部的左右两个顶点,参数b对应三角形上部的顶点,这里要求abc,生成的隶属函数总有一个统一的高度,若想有一个高度小于统一高度的三角形隶属函数,则使用trapmf函数。例6-14»x=0:0.1:10;>>y=trimf(x,(368);>>plot(x,y)>>xlabel(,trimf.P=368')结果为图6-14。图6-14例6-15»x=(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-16»x=0:0.1:10;>>y=zmf(x,37);>>plot(x,y)>>xlabel(,zmf,P=37')结果为图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为你要转换的隶属函数的类型的字符串名称,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编辑器。编辑器是任意模糊推理系统的高层显示,它允许你调用各种其它的编辑器来对其操作。此界面允许你方便地访问所有其它的编辑器,并以最灵活的方式与模糊系统进行交互。方框图:窗口上方的方框图显示了输入、输出和它们中间的模糊规则处理器。单击任意一个变量框,使选