模糊控制-隶属度函数.docx
第6章模糊逻辑【转】2009-04-1621:48高斯隶属函数函数gaussmf格式y=gaussmf(x,sigc)说明高斯隶属函数的数学表达式为:,其中为参数,X为自变量,sig为数学表达式中的参数。例6-1»x=0:0,1:10;>>y=gaussmf(x,25);>>plot(x,y)»xlabel(,gaussmf,P=25')结果为图6-1。图6-1函数gauss2mf格式y=gauss2mf(x,siglclsig2c2)说明SigUcUSig2、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。函数gbellmf格式Y=gbellmf(x,params)说明一般钟型隶属函数依靠函数表达式这里X指定变量定义域范围,参数b通常为正,参数c位于曲线中心,第二个参数变量params是一个各项分别为a,b和C的向量。例6-3»x=0:0.1:10;>>y=gbellmf(x,246);>>plot(x,y)>>xlabel(,gbellmf,P=246')结果为图6-3O图6-26-3两个sigmoid型隶属函数之差组成的隶属函数函数dsigmf格式y=dsigmf(x,alcla2c2)说明这里SigInoid型隶属函数由下式给出X是变量,a,c是参数。dsigmf使用四个参数a”C,a2,c2,并且是两个SigmOid型函数之差:,参数按顺序列出。例6-4»x=0:0.1:10;>>y=dsigmf(x,5257);>>plot(x,y)结果为图6-4图6-4通用隶属函数计算函数evalmf格式y=evalmf(x,mfParams,mfType)说明evalmf可以计算任意隶属函数,这里X是变量定义域,InfTyPe是工具箱提供的-种隶属函数,HifParams是此隶属函数的相应参数,如果你想创立自定义的隶属函数,evalmf仍可以工作,因为它可以计算它不知道名字的任意隶属函数。例6-5»x=0:0.1:10;»mfparams=246;>>mftype=,gbellmf,;>>y=evalmf(x,mfparams,mftype);>>plot(x,y)>>xlabel(,gbellmf,P=246')结果为图6-5og®ewMrtoo*sQmm*e>*口Ii1111-T1!109-/-I08-:-JI8-I1'i-/Ofi-ii/05-III/04-I1,-0.3-I|(-/02-.:/01-!-Ijl1j-Illllll<,012345678910gbl4>vP46Jqj力<wmma.I.MTuIB|i0.曜;:图6-5建立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=14510')结果为图6-6O通过两个sigmoid型隶属函数的乘积构造隶属函数函数psigmf格式y=psigmf(x,alcla2c2)说明这里Siglnoid型隶属函数由下式给出并且是两个sigmoid型函数X是变量,a,c是参数。PSiglnf使用四个参数a】,ctfa2,c2之积:,参数按顺序列出。例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-7建立Sigmoid型隶属函数函数sigmf格式y=sigmf(x,ac)说明,定义域由向量X给出,形状由参数a和C确定。例6-8»x=0:0.1:10;>>y=sigmf(x,24);>>plot(x,y)>>xlabel(,sigmf,P=24')图6-8例6-9»x二(0:0.2:10),;> >y=sigmf(x,-15);> >y2=sigmf(x,-35);> >y3=sigmf(x,45);> >y4=sigmf(x,85);> >subplot(2,1,1),plot(x,y,y2y3y4);»y)=sigmf(x,52);> >y2=sigmf(x,54);> >y3=sigmf(x,56);>>y=sigmf(x,58);>>subplot(2,1,2),plot(x,y1y2y3yj);图6-9建立S型隶属函数函数smf格式 y 二 smf (x, a b)%X为变量,a为b参数,用于定位曲线的斜坡局部。例6-10»x=0:0.1:10;>>y=smf(x,18);>>plot(x,y)结果为图6-10。图6-10例6-11»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);plot(x,smf(x,64);ZjSwLaaaI*3图6-11建立梯形隶属函数函数trapmf格式y=trapmf(x,abed)说明这里梯形隶属函数表达式:或f(x;a,b,c,d)=max(min(,定义域由向量X确定,曲线形状由参数a,b,c,d确定,参数a和d对应梯形下部的左右两个拐点,参数b和C对应梯形上部的左右两个拐点。例6-12»x=0:0.1:10;>>y-trapmf(x,1578);>>plot(x,y)»xlabel(,trapmf,P=1578')结果为图6-12。例6-13»x二(0:0.1:10),;»yi=trapmf(x,2379);> >y2=trapmf(x,3468);> >y3=trapmf(x,4557);> >y4=trapmf(x,5646);> >plot(x,yiy2y3y);图6-12图6-13建立三角形隶属函数函数trimf格式y=trimf(x,params)y二trimf(x,abc)说明三角形隶属函数表达式:或者f(x;a,b,c,)=max(min(定义域由向量X确定,曲线形状由参数a,b,c确定,参数a和C对应三角形下部的左右两个顶点,参数b对应三角形上部的顶点,这里要求a,生成的隶属函数总有一个统一的高度,假设想有一个高度小于统一高度的三角形隶属函数,那么使用trapmf函数。例6-14»x=0:0,1:10;>>y=trimf(x,368);>>plot(x,y)>>xlabel(,trimf,P=368')结果为图6-14o图6-14例6-15»x=(0:0.2:10),;»yi=trimf(x,345);> >y2=trimf(x,247);> >y3=trimf(x,149);> >subplot1,1),plot(x,y1y2y3);> >yj-trimf(x,235);> >y2=trimf(x,347);> >y3=trimf(x,459);> >subplot(2,1,2),plot(x,yly2y3);结果为图6-15o图6-15建立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-17»x=0:0.1:10;>>subplot(3,1,1);plot(x,zmf(x,28);>>subplot(3,1,2);plot(x,zmf(x,46);>>subplot(3,1,3);plot(x,zmf(x,64);结果为图6-17。图6-16两个隶属函数之间转换参数函数mf2mf格式OutParams-mf2mf(inParams,inType,outType)三6-18说明此函数根据参数集,将任意内建的隶属函数类型转换为另一种类型,inParams为你要转换的隶属函数的参数,inType为你要转换的隶属函数的类型的字符串名称,outType:你要转换成的目标隶属函数的字符串名称。例6-18»x=0:0.1:5;> >mfpl=123;> >mfp2=mf2mf(mfpl,gbellmf,trimf,);> >plot(x,gbellmf(x,mfpl),x,trimf(x,mfp2)结果为图6-18。