MATLAB模糊逻辑工具箱函数PPT文档格式.ppt
- 文档编号:8603518
- 上传时间:2023-05-12
- 格式:PPT
- 页数:104
- 大小:555.50KB
MATLAB模糊逻辑工具箱函数PPT文档格式.ppt
《MATLAB模糊逻辑工具箱函数PPT文档格式.ppt》由会员分享,可在线阅读,更多相关《MATLAB模糊逻辑工具箱函数PPT文档格式.ppt(104页珍藏版)》请在冰点文库上搜索。
,7,5.1.2模糊推理系统的基本类型在模糊系统中,模糊模型的表示主要有两类:
一类是模糊规则的后件是输出量的某一模糊集合,如NB,PB等,由于这种表示比较常用,且首次由Mamdani采用,因而称它为模糊系统的标准模型或Mamdani模型表示;
另一类是模糊规则的后件是输入语言变量的函数,典型的情况是输入变量的线性组合。
由于该方法是日本学者高木(Takagi)和关野(Sugeno)首先提出来的,因此通常称它为模糊系统的Takagi-Sugeno(高木-关野)模型,或简称为Sugeno模型。
8,1基于标准模型的模糊逻辑系统在标准型模糊逻辑系统中,模糊规则的前件和后件均为模糊语言值,即具有如下形式:
IFx1isA1andx2isA2andandxnisAnTHENyisB其中Ai(i=1,2,n)是输入模糊语言值,B是输出模糊语言值。
图5-1基于标准模型的模糊逻辑系统原理图,基于标准模型的模糊逻辑系统的框图如图5-1。
图中的模糊规则库由若干“IFTHEN”规则构成。
模糊推理机在模糊推理系统中起着核心作用,它将输入模糊集合按照模糊规则映射成输出模糊集合。
它提供了一种量化专家语言信息和在模糊逻辑原则下系统地利用这类语言信息的一般化模式。
9,2基于高木关野(TakagiSugeno)模型的模糊逻辑系统高木关野模糊逻辑系统是一类较为特殊的模糊逻辑系统,其模糊规则不同于一般的模糊规则形式。
在高木关野模糊逻辑系统中,采用如下形式的模糊规则:
IFx1isA1andx2isA2andandxnisAnTHEN其中Ai(i=1,2,n)是输入模糊语言值,ci(i=1,2,n)是真值参数。
10,可以看出,高木-关野模糊逻辑系统的输出量是精确值。
这类模糊逻辑系统的优点是输出量可用输入值的线性组合来表示,因而能够利用参数估计方法来确定系统的参数ci(i=1,2,n);
同时,可以应用线性控制系统的分析方法来近似分析和设计模糊逻辑系统。
其缺点是规则的输出部分不具有模糊语言值的形式,因此不能充分利用专家的控制知识,模糊逻辑的各种不同原则在这种模糊逻辑系统中应用的自由度也受到限制。
11,5.1.3模糊逻辑系统的构成前面讨论了模糊逻辑系统的基本类型,标准型模糊逻辑系统应用最为广泛。
在MATLAB模糊逻辑工具箱中主要针对这一类型的模糊逻辑系统提供了分析和设计手段,但同时对高木一关野模糊逻辑系统也提供了一些相关函数。
下面将以标准型模糊逻辑系统作为主要讨论对象。
12,构造一个模糊逻辑系统,首先必须明确其主要组成部分。
一个典型的模糊逻辑系统主要由如下几个部分组成:
(1)输入与输出语言变量,包括语言值及其隶属度函数;
(2)模糊规则;
(3)输入量的模糊化方法和输出变量的去模糊化方法;
(4)模糊推理算法。
13,针对模糊逻辑系统的以上主要构成,在MATLAB模糊逻辑工具箱中构造一个模糊推理系统有如下步骤:
(1)模糊推理系统对应的数据文件,其后缀为.fis,用于对该模糊系统进行存储、修改和管理;
(2)确定输入、输出语言变量及其语言值;
(3)确定各语言值的隶属度函数,包括隶属度函数的类型与参数;
(4)确定模糊规则;
(5)确定各种模糊运算方法,包括模糊推理方法、模糊化方法、去模糊化方法等。
14,5.2利用模糊逻辑工具箱建立模糊推理系统5.2.1模糊推理系统的建立、修改与存储管理前面讨论了模糊推理系统的主要构成部分,即一个模糊推理系统由输入、输出语言变量及其隶属度函数、模糊规则、模糊推理机和去模糊化方法等各部分组成,在MATLAB模糊逻辑工具箱中,把模糊推理系统的各部分作为一个整体,并以文件形式对模糊推理系统进行建立、修改和存储等管理功能。
表5-1所示为该工具箱提供的有关模糊推理系统管理的函数及其功能。
15,表2-7模糊推理系统的管理函数,表5-1模糊推理系统的管理函数,16,1.创建新的模糊推理系统函数newfis()该函数用于创建一个新的模糊推理系统,模糊推理系统的特性可由函数的参数指定,其参数个数可达7个。
调用格式为fisMat=newfis(fisName,fisType,andMethod,orMethod,impMethod,aggMethod,defuzzMethod),17,例:
fisMat=newfis(mysys);
getfis(fisMat)显示:
Name=mysysType=mamdaniNumInputs=0InLabels=NumOutputs=0OutLabels=NumRules=0AndMethod=minOrMethod=maxImpMethod=minAggMethod=maxDefuzzMethod=centroid,18,2.从磁盘中加载模糊推理系统函数readfis()调用格式fisMat=readfis(filemame),19,例如利用以下命令可加载一个MATLAB自带的关于“小费”问题的模糊推理系统tipper.fis。
fisMat=readfis(tipper);
getfis(fisMat);
结果显示:
Name=tipperType=mamdaniNumInputs=2InLabels=servicefoodNumOutputs=1OutLabels=tipNumRules=3AndMethod=minOrMethod=maxImpMethod=minAggMethod=maxDefuzzMethod=centroid,20,3.获得模糊推理系统的属性函数getfis()利用getfis()可获取模糊推理系统的部分或全部特性,格式为getfis(fisMat)getfis(fisMat,fisPropname)getfis(fisMat,varType,varIndex,varPropname);
getfis(fisMat,varType,varIndex,mf,mfIndex)getfis(fisMat,varType,varIndex,mf,mfIndex,mfPropname);
21,例fisMat=readfis(tipper)或fisMat=readfis(tipper);
getfis(fisMat,type)fisMat=readfis(tipper);
getfis(fisMat,input,1);
getfis(fisMat,input,1,name)fisMat=readfis(tipper);
getfis(fisMat,input,1,mf,2);
getfis(fisMat,input,1,mf,2,name),22,4.将模糊推理系统以矩阵形式保存在内存中的数据写入磁盘文件函数writefis()模糊推理系统在内存中的数据是以矩阵形式存储的,其对应的矩阵名为fisMat。
当需要将模糊推理系统的数据写入磁盘文件时,就可利用writefis()函数。
其调用格式为writefis(fisMat)writefis(fisMat,filename)writefis(fisMat,filename,dialog)例:
fisMat=newfis(tipper);
writefis(fisMat,my_file),23,5.以分行的形式显示模糊推理系统矩阵的所有属性函数showfis()调用格式showfis(fisMat)其中fisMat为模糊推理系统在内存中的矩阵表示。
例:
showfis(fisMat)6.设置模糊推理系统的属性函数setfis()调用格式fisMat=setfis(fisMat,propname,newprop)fisMat=setfis(fisMat,vartype,varindex,propname,newprop)fisMat=setfis(fisMat,vartype,varindex,mf,mfindex,propname,nemeprop);
24,该函数可以有3个、5个或7个输入参数。
例fisMat=readfis(tipper);
fisMat=setfis(fisMat,name,eating)或fisMat=readfis(tipper);
fisMat=setfis(fisMat,input,1,name,help)fisMat=readfis(tipper);
fisMat=setfis(fisMat,input,1,mf,2,name,wretched),25,7.绘图表示模糊推理系统的函数plotfis()该函数的调用格式为plotfis(fisMat)其中,fisMat为模糊推理系统对应的矩阵名称。
plotfis(fisMat)8.将Mamdani型模糊推理系统转换成Sugeno型模糊推理系统的函数mam2sug()函数mam2sug()可将Mamdani型模糊推理系统转换成零阶的Sugeno型模糊推理系统。
得到的Sugeno型模糊推理系统具有常数隶属度函数,其常数值由原来Mamdani型系统得到的隶属度函数的质心确定,并且其前件不变,该函数的调用格式为sug_fisMat=mam2sug(mam_fisMat)例:
mam_fisMat=readfis(tipper);
sug_fisMat=mam2sug(mam_fisMat),26,5.2.2模糊语言变量及其语言值在模糊推理系统中,专家的控制知识以模糊规则形式表示。
为直接反映人类自然语言的模糊性特点,模糊规则的前件和后件中引入语言变量和语言值的概念。
语言变量分为输入语言变量和输出语言变量,输入语言变量是对模糊推理系统输入变量的模糊化描述,通常位于模糊规则的前件中,输出语言变量是对模糊推理系统输出变量的模糊化描述,通常位于模糊规则的后件中。
27,语言变量具有多个语言值,每个语言值对应一个隶属度函数。
语言变量的语言值构成了对输入和输出空间的模糊分割,模糊分割的个数即语言值的个数以及语言值对应的隶属度函数决定了模糊分割的精细化程度。
模糊分割的个数也决定了模糊规则的个数,模糊分割数越多,控制规则数也越多。
因此在设计模糊推理系统时,应在模糊分割的精细程度与控制规则的复杂性之间取得折衷。
28,在MATLAB模糊逻辑工具箱中,提供了向模糊推理系统添加或删除模糊语言变量及其语言值的函数,如表5-2所示。
表5-2添加或删除模糊语言变量函数,29,1向模糊推理系统添加语言变量函数addvar()调用格式fisMat2=addvar(fisMat1,varType,varName,varBounds)例fisMat=newfis(mysys);
fisMat=addvar(fisMat,input,service,010),30,2.从模糊推理系统中删除语言变量rmvar()调用格式fisMat2=rmvar(fisMat1,varType,varIndex)当一个模糊语言变量正在被当前的模糊规则集使用时,则不能删除该变量。
在一个模糊语言变量被删除后,MATLAB模糊逻辑工具箱将会自动地对模糊规则集进行修改,以保证一致性。
例fisMat=newfis(mysys);
fisMat=addvar(fisMat,input,temperature,0100);
fisMat1=rmvar(fisMat,input,1),31,5.2.3模糊语言变量的隶属度函数每个模糊语言变量具有多个模糊语言值。
模糊语言值的名称通常具有一定的含义,如NB(负大)、NM(负中)、NS(负小)、ZE(零)、PS(正小)、PM(正中)、PB(正大)等。
每个语言值都对应一个隶属度函数。
隶属度函数可有两种描述方式,即数值描述方式和函数描述方式。
数值描述方式适用于语言变量的论域为离散的情形,此时隶属度函数可用向量或表格的形式来表示;
对于论域为连续的情况,隶属度函数则采用函数描述方式。
32,在MATLAB模糊逻辑工具箱中支持的隶属度函数类型有如下几种:
高斯型、三角型、梯形、钟型、Sigmoid型、型以及Z型。
利用工具箱中提供的函数可以建立和计算上述各种类型隶属度函数。
隶属度函数曲线的形状决定了对输入、输出空间的模糊分割,对模糊推理系统的性能有重要的影响。
在MATLAB模糊逻辑工具箱中提供了丰富的隶属度函数类型的支持,利用工具箱的有关函数可以方便地对各类隶属度函数进行建立、修改和删除等操作,函数如表5-3所示。
33,表5-3语言变量的隶属度的函数,34,1.绘制语言变量的隶属度曲线函数plotmf()调用格式x,mf=plotmf(fisMat,varType,varIndex),2.向模糊推理系统的语言变量添加隶属度函数addmf()函数addmf()只能给模糊推理系统中存在的某一语言变量添加隶属度函数,而不能添加到一个不存在的语言变量中。
某个语言变量的隶属度函数(即语言值)按照添加的顺序加以编号,第一个添加的隶属度函数被编为1号,此后依次递增。
该函数调用格式为fisMat2=addmf(fisMat1,varType,varIndex,mfName,mfType,mfParams),35,例如利用以下命令,可得如图5-2所示的隶属度函数曲线。
fisMat=addvar(fisMat,input,service,010);
fisMat=addmf(fisMat,input,1,poor,gaussmf,1.50);
fisMat=addmf(fisMat,input,1,good,gaussmf,1.55);
fisMat=addmf(fisMat,input,1,excellent,gaussmf,1.510);
plotmf(fisMat,input,1),36,3.从模糊推理系统中删除一个语言变量的某一隶属度函数rmmf()当一个隶属度函数正在被当前模糊推理规则使用时,则不能删除。
调用格式为fisMat2=rmmf(fisMat1,varType,varIndex,mf,mfIndex),37,4.建立高斯型隶属度函数gaussmf()调用格式ygaussmf(x,params)ygaussmf(x,sigc)其中c决定了函数的中心点,sig决定了函数曲线的宽度。
高斯型函数的形状由sig和c两个参数决定,高斯函数的表达式如下:
参数x用于指定变量的论域。
例利用以下命令,可建立如图5-3所示的高斯型隶属度函数曲线。
x=0:
0.1:
10y=gaussmf(x,25);
plot(x,y)xlabel(gaussmf,p=25),38,5.建立双边高斯型隶属度函数gauss2mf()调用格式y=gauss2mf(x,params)y=gauss2mf(x,sig1c1sig2c2)双边高斯型函数的曲线由两个中心点相同的高斯型函数的左、右半边曲线组合而成,其表达式如下式所示。
参数sigl,c1,sig2,c2分别对应左、右半边高斯函数的宽度与中心点,c2c1。
例利用以下命令,可建立如图5-4所示的双边高斯型隶属度函数。
10;
y=gauss2mf(x,1334);
plot(x,y),xlabel(gauss2mf,p=1334),39,6.建立一般的钟形隶属度函数gbellmf()调用格式y=gbellmf(x,params)y=gbellmf(x,abc)其中参数x指定变量的论域范围,abc指定钟形函数的形状,钟形函数的表达式如下:
例利用以下命令,可建立如图5-5所示的钟形隶属度函数曲线。
10y=gbellmf(x,246);
plot(x,y)xlabel(gbellmf,p=246),40,7.建立型隶属度函数pimf()型函数是一种基于样条的函数,由于其形状类似字母而得名。
该函数调用格式为:
y=pimf(x,params)y=pimf(x,abcd)其中参数x指定函数的自变量范围,abcd决定函数的形状,a,b分别对应曲线下部的左右两个拐点,b和c分别对应曲线上部的左右两个拐点。
例利用以下命令,可建立如图5-6所示的型隶属度函数曲线x=0:
y=pimf(x,14510);
plot(x,y),xlabel(pimf,p=14510),41,8.建立Sigmoid型隶属度函数sigmf()调用格式y=sigmf(x,params)y=sigmf(x,ac)其中参数x用于指定变量的论域范围,ac决定了Sigmoid型函数的形状,其表达式如下:
Sigmoid型函数曲线具有半开的形状,因而适于作为“极大”、“极小”等语言值的隶属度函数。
例利用以下命令,可建立如图5-7所示的sigmoid型隶属度函数曲线。
y=sigmf(x,24);
plot(x,y),xlabel(sigmf,p=24),42,9.建立梯形隶属度函数trapmf()调用格式y=trapmf(x,params)y=trapmf(x,a,b,c,d)其中参数x指定变量的论域范围,参数a、b、c和d指定梯形隶属度函数的形状,其对应的表达式如下:
例利用以下命令,可建立如图5-8所示的梯形隶属度函数曲线。
y=trapmf(x,1578);
plot(x,y),xlabel(trapmf,p=1578),43,10.建立三角形隶属度函数trimf()调用格式y=trimf(x,params)y=trimf(x,a,b,c)其中参数x指定变量的论域范围,参数a、b和c指定三角形函数的形状,其表达式如下:
例利用以下命令,可建立如图5-9所示的三角形隶属度函数并绘制曲线。
y=trimf(x,368);
plot(x,y),xlabel(trimf,p=368),44,11.建立Z形隶属度函数曲线函数zmf()调用格式y=zmf(x,params)y=zmf(x,a,b,c)Z形函数是一种基于样条插值的函数,两个参数a和b分别定义样条插值的起点和终点;
参数x指定变量的论域范围。
例利用以下命令,可建立如图5-10所示的Z形隶属度函数曲线。
y=zmf(x,368);
plot(x,y),xlabel(trimf,p=368),45,12.通过两个Sigmoid型函数的乘积来构造新的隶属度函数psigmf()为了得到更符合人们习惯的隶属度函数形状,可以利用两个sigmoid型函数之和或乘积来构造新的隶属度函数类型,模糊逻辑工具箱中提供了相应的函数,参见psigmf()和dsigmf()。
调用格式y=psigmf(x,params)y=psigmf(x,a1c1a2c2)其中参数al,c1和a2,c2分别用于指定两个Sigmoid型函数的形状,参数x指定变量的利用范围。
新的函数表达式如下:
46,例利用以下命令,由两个sigmoid型函数的乘积来构造新的隶属度函数,如图5-11所示。
y=psigmf(x,2358);
plot(x,y)xlabel(psigmf,p=23-58),47,13.通过计算两个sigmoid型函数之和来构造新的隶属度函数dsigmf()调用格式y=dsigmf(x,params)y=dsigmf(x,a1,c1,a2,c2)本函数的用法与函数psigmf()类似,参数a1、c1和a2、c2分别用于指定两个Sigmoid型函数的形状,构造得到的新的隶属度函数表达式为:
例利用以下命令,绘制两个sigmoid型函数之和的隶属度函数曲线,如图5-12所示。
10y=dsigmf(x,5257);
plot(x,y)xlabel(dsigmf,p=5257),48,14.进行不同类型隶属度函数之间的参数转换函数mf2mf()调用格式outParams=mf2mf(inParams,inType,outType)其中inParams为转换前的隶属度函数的参数;
outParams为转换后的隶属度函数的参数;
inType为转换前的隶属度函数的类型;
outType为转换后的隶属度函数的类型。
该函数将尽量保持两种类型的隶属度函数曲线在形状上的近似,特别是保持隶属度等于0.5处的点的重合。
但不可避免地会丢失一些信息。
所以当再次使用该函数进行反向转换时将无法得到与原来函数相同的参数。
49,例利用以下命令,实现钟型隶属度函数向三角形隶属度函数的转换,如图5-13所示。
5;
mfp1=123;
mfp2=mf2mf(mfp1,gbellmf,trimf);
plot(x,gbellmf(x,mfp1),x,trimf(x,mfp2),50,15.隶属度函数的计算函数fuzarith()调用格式C=fuzarith(x,A,B,operator)其中,x为要计算的隶属度函数的论域;
A,B为隶属度函数的值;
operator为模糊运算符,可以是sum(加)、sub(减)、prod(乘)和div(除)四种运算中的任一种;
C为A,B模糊运算后的隶属度函数值。
例x=0:
A=trapmf(x,1368);
B=trimf(x,479);
C=fuzarith(x,A,B,sum);
plot(x,A,-,x,B,-,x,C,x),51,16.计算隶属度函数的值evalmf()调用格式y=evalmf(x,myParams,myType)其中,x为要计算的隶属度函数的论域;
myPa
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MATLAB 模糊 逻辑 工具箱 函数
![提示](https://static.bingdoc.com/images/bang_tan.gif)