MATLAB模糊逻辑工具箱函数课件

上传人:艳*** 文档编号:242967880 上传时间:2024-09-13 格式:PPT 页数:104 大小:479KB
返回 下载 相关 举报
MATLAB模糊逻辑工具箱函数课件_第1页
第1页 / 共104页
MATLAB模糊逻辑工具箱函数课件_第2页
第2页 / 共104页
MATLAB模糊逻辑工具箱函数课件_第3页
第3页 / 共104页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,*,*,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,1 MATLAB,模糊逻辑工具箱简介,2,利用模糊逻辑工具箱建立模糊推理系统,3 MATLAB,模糊逻辑工具箱的图形用户界面,4,基于,Simulink,的模糊逻辑的系统模块,MATLAB模糊逻辑,工具箱函数,1,针对模糊逻辑尤其是模糊控制的迅速推广应用,,MathWorks,公司在其,MATLAB,版中添加了,Fuzzy Logic,工具箱。该工具箱由长期从事模糊逻辑和模糊控制研究与开发工作的有关专家和技术人员编制。,MATLAB Fuzzy Logic,工具箱以其功能强大和方便易用的特点得到了用户的广泛欢迎。模糊逻辑的创始人,Zadeh,教授称赞该工具箱“在各方面都给人以深刻的印象,使模糊逻辑成为智能系统的概念与设计的有效工具。”,2,1.1 模糊逻辑工具箱的功能特点,1易于使用,模糊逻辑工具箱提供了建立和测试模糊逻辑系统的一整套功能函数,包括定义语言变量及其隶属度函数、输入模糊推理规则、整个模糊推理系统的管理以及交互式地观察模糊推理的过程和输出结果。,1 MATLAB模糊逻辑工具箱简介,3,2. 提供图形化的系统设计界面,在模糊逻辑工具箱中包含五个图形化的系统设计工具,这五个设计工具是:, 模糊推理系统编辑器,该编辑器用于建立模糊逻辑系统的整体框架,包括输入与输出数目、去模糊化方法等;, 隶属度函数编辑器,用于通过可视化手段建立语言变量的隶属度函数;, 模糊推理规则编辑器;, 系统输入输出特性曲面测览器;,模糊推理过程浏览器。,4,3. 支持模糊逻辑中的高级技术, 自适应神经模糊推理系统(ANFIS,Adaptive Neural Fuzzy Inference System);, 用于模式识别的模糊聚类技术;,模糊推理方法的选择,用户可在广泛采用的,Mamdani,型推理方法和,Sugeno,型推理方法两者之间选择。,5,4. 集成的仿真和代码生成功能,模糊逻辑工具箱不但能够实现Simulink的无缝连接,而且通过 RealTime Workshop能够生成ANSI C源代码,从而易于实现模糊系统的实时应用。,5. 独立运行的模糊推理机,在用户完成模糊逻辑系统的设计后,可以将设计结果以,ASCII,码文件保存;利用模糊逻辑工具箱提供的模糊推理机,可以实现模糊逻辑系统的独立运行或者作为其他应用的一部分运行。,6,模糊推理系统的基本类型,在模糊系统中,模糊模型的表示主要有两类:一类是模糊规则的后件是输出量的某一模糊集合,如,NB,,,PB,等,,由于这种表示比较常用,且首次由Mamdani采用,因而称它为模糊系统的标准模型或Mamdani模型表示;,另一类是模糊规则的后件是输入语言变量的函数,典型的情况是输入变量的线性组合。由于该方法是日本学者高木(,Takagi,)和关野(,Sugeno,)首先提出来的,因此通常称它为模糊系统的,Takagi,-,Sugeno,(高木-关野)模型,或简称为,Sugeno模型,。,7,1 基于标准模型的模糊逻辑系统,在标准型模糊逻辑系统中,模糊规则的前件和后件均为模糊语言值,即具有如下形式:,IF x,1,is A,1,and x,2,is A,2,andand x,n,is A,n,THEN y is B,其中A,i,(i=1,2,n)是输入模糊语言值,B是输出模糊语言值。,图5-1 基于标准模型的模糊逻辑系统原理图,基于标准模型的模糊逻辑系统的框图如图5-1。图中的模糊规则库由若干“IFTHEN”规则构成。模糊推理机在模糊推理系统中起着核心作用,它将输入模糊集合按照模糊规则映射成输出模糊集合。它提供了一种量化专家语言信息和在模糊逻辑原则下系统地利用这类语言信息的一般化模式。,8,2 基于高木关野(TakagiSugeno)模型的模糊逻辑系统,高木关野模糊逻辑系统是一类较为特殊的模糊逻辑系统,其模糊规则不同于一般的模糊规则形式。,在高木关野模糊逻辑系统中,采用如下形式的模糊规则:,IF x,1,is A,1,and x,2,is A,2,andand x,n,is A,n,THEN,其中,A,i,(i=1,2,n),是输入模糊语言值,,c,i,(i=1,2,n),是真值参数。,9,可以看出,高木-关野模糊逻辑系统的输出量是精确值。这类模糊逻辑系统的优点是输出量可用输入值的线性组合来表示,因而能够利用参数估计方法来确定系统的参数,c,i,(i=1,2,n),;同时,可以应用线性控制系统的分析方法来近似分析和设计模糊逻辑系统。其缺点是规则的输出部分不具有模糊语言值的形式,因此不能充分利用专家的控制知识,模糊逻辑的各种不同原则在这种模糊逻辑系统中应用的自由度也受到限制。,10,模糊逻辑系统的构成,前面讨论了模糊逻辑系统的基本类型,标准型模糊逻辑系统应用最为广泛。在MATLAB模糊逻辑工具箱中主要针对这一类型的模糊逻辑系统提供了分析和设计手段,但同时对高木一关野模糊逻辑系统也提供了一些相关函数。下面将以标准型模糊逻辑系统作为主要讨论对象。,11,构造一个模糊逻辑系统,首先必须明确其主要组成部分。一个典型的模糊逻辑系统主要由如下几个部分组成:,(1)输入与输出语言变量,包括语言值及其隶属度函数;,(2)模糊规则;,(3)输入量的模糊化方法和输出变量的去模糊化方法;,(,4,)模糊推理算法。,12,针对模糊逻辑系统的以上主要构成,在MATLAB模糊逻辑工具箱中构造一个模糊推理系统有如下步骤:,(1)模糊推理系统对应的数据文件,其后缀为.fis,用于对该模糊系统进行存储、修改和管理;,(2)确定输入、输出语言变量及其语言值;,(3)确定各语言值的隶属度函数,包括隶属度函数的类型与参数;,(4)确定模糊规则;,(,5,)确定各种模糊运算方法,包括模糊推理方法、模糊化方法、去模糊化方法等。,13,5.2,利用模糊逻辑工具箱建立模糊推理系统,5.2.1 模糊推理系统的建立、修改与存储管理,前面讨论了模糊推理系统的主要构成部分,即一个模糊推理系统由输入、输出语言变量及其隶属度函数、模糊规则、模糊推理机和去模糊化方法等各部分组成,在,MATLAB,模糊逻辑工具箱中,把模糊推理系统的各部分作为一个整体,并以文件形式对模糊推理系统进行建立、修改和存储等管理功能。表,5-1,所示为该工具箱提供的有关模糊推理系统管理的函数及其功能。,14,表2-7 模糊推理系统的管理函数,函 数 名,功 能,newfis( ),创建新的模糊推理系统,readfis( ),从磁盘读出存储的模糊推理系统,getfis( ),获得模糊推理系统的特性数据,writefis( ),保存模糊推理系统,showfis( ),显示添加注释了的模糊推理系统,setfis( ),设置模糊推理系统的特性,plotfis( ),图形显示模糊推理系统的输入输出特性,表,5-1,模糊推理系统的管理函数,15,1 .创建新的模糊推理系统函数newfis( ),该函数用于创建一个新的模糊推理系统,模糊推理系统的特性可由函数的参数指定,其参数个数可达7个。调用格式为,fisMat=newfis(fisName,fisType,andMethod,orMethod,impMethod,aggMethod,defuzzMethod),16,例:fisMat=newfis(mysys);getfis(fisMat),显示:Name = mysys,Type = mamdani,NumInputs = 0,InLabels =,NumOutputs = 0,OutLabels =,NumRules = 0,AndMethod = min,OrMethod = max,ImpMethod = min,AggMethod = max,DefuzzMethod = centroid,17,2. 从磁盘中加载模糊推理系统函数readfis( ),调用格式,fisMat=readfis(filemame),18,例如利用以下命令可加载一个MATLAB自带的关于“小费”问题的模糊推理系统tipper.fis。,fisMat=readfis(tipper);getfis(fisMat);,结果显示:,Name = tipper,Type = mamdani,NumInputs = 2,InLabels =,service,food,NumOutputs = 1,OutLabels =,tip,NumRules = 3,AndMethod = min,OrMethod = max,ImpMethod = min,AggMethod = max,DefuzzMethod = centroid,19,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);,20,例, fisMat=readfis(tipper),或 fisMat=readfis(tipper); getfis(fisMat,type),fisMat=readfis(tipper); getfis(fisMat,input,1);,fisMat=readfis(tipper); getfis(fisMat,input,1,name),fisMat=readfis(tipper); getfis(fisMat,input,1,mf,2);,fisMat=readfis(tipper); getfis(fisMat,input,1,mf,2,name),21,4. 将模糊推理系统以矩阵形式保存在内存中的数据写入磁盘文件函数writefis( ),模糊推理系统在内存中的数据是以矩阵形式存储的,其对应的矩阵名为fisMat。当需要将模糊推理系统的数据写入磁盘文件时,就可利用writefis( )函数。其调用格式为,writefis(fisMat),writefis(fisMat,filename),writefis(fisMat,filename,dialog),例:,fisMat=newfis(tipper);writefis(fisMat,my_ file),22,5. 以分行的形式显示模糊推理系统矩阵的所有属性函数showfis( ),调用格式,showfis(fisMat),其中 fisMat为模糊推理系统在内存中的矩阵表示。,例:fisMat=readfis(tipper);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);,23,该函数可以有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),24,7. 绘图表示模糊推理系统的函数plotfis( ),该函数的调用格式为,plotfis(fisMat),其中,fisMat为模糊推理系统对应的矩阵名称。,例:fisMat=readfis(tipper); 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),25,5.2.2 模糊语言变量及其语言值,在模糊推理系统中,专家的控制知识以模糊规则形式表示。为直接反映人类自然语言的模糊性特点,模糊规则的前件和后件中引入语言变量和语言值的概念。语言变量分为输入语言变量和输出语言变量,输入语言变量是对模糊推理系统输入变量的模糊化描述,通常位于模糊规则的前件中,输出语言变量是对模糊推理系统输出变量的模糊化描述,通常位于模糊规则的后件中。,26,语言变量具有多个语言值,每个语言值对应一个隶属度函数。语言变量的语言值构成了对输入和输出空间的模糊分割,模糊分割的个数即语言值的个数以及语言值对应的隶属度函数决定了模糊分割的精细化程度。模糊分割的个数也决定了模糊规则的个数,模糊分割数越多,控制规则数也越多。因此在设计模糊推理系统时,应在模糊分割的精细程度与控制规则的复杂性之间取得折衷。,27,在MATLAB模糊逻辑工具箱中,提供了向模糊推理系统添加或删除模糊语言变量及其语言值的函数,如表5-2所示。,表,5-2,添加或删除模糊语言变量函数,函 数 名,功 能,addvar( ),添加模糊语言变量,rmvar( ),删除模糊语言变量,28,1向模糊推理系统添加语言变量函数addvar( ),调用格式,fisMat2=addvar(fisMat1,varType,varName,varBounds),例,fisMat=newfis(mysys);fisMat=addvar(fisMat,input,service,0 10),29,2. 从模糊推理系统中删除语言变量rmvar( ),调用格式,fisMat2=rmvar(fisMat1,varType,varIndex),当一个模糊语言变量正在被当前的模糊规则集使用时,则不能删除该变量。在一个模糊语言变量被删除后,MATLAB模糊逻辑工具箱将会自动地对模糊规则集进行修改,以保证一致性。,例,fisMat=newfis(mysys);fisMat=addvar(fisMat,input,temperature,0 100);,fisMat1=rmvar(fisMat,input,1),30,5.2.3 模糊语言变量的隶属度函数,每个模糊语言变量具有多个模糊语言值。模糊语言值的名称通常具有一定的含义,如 NB(负大)、NM(负中)、NS(负小)、ZE(零)、PS(正小)、PM(正中)、PB(正大)等。每个语言值都对应一个隶属度函数。隶属度函数可有两种描述方式,即数值描述方式和函数描述方式。数值描述方式适用于语言变量的论域为离散的情形,此时隶属度函数可用向量或表格的形式来表示;对于论域为连续的情况,隶属度函数则采用函数描述方式。,31,在MATLAB模糊逻辑工具箱中支持的隶属度函数类型有如下几种:高斯型、三角型、梯形、钟型、Sigmoid型、型以及Z型。利用工具箱中提供的函数可以建立和计算上述各种类型隶属度函数。,隶属度函数曲线的形状决定了对输入、输出空间的模糊分割,对模糊推理系统的性能有重要的影响。在,MATLAB,模糊逻辑工具箱中提供了丰富的隶属度函数类型的支持,利用工具箱的有关函数可以方便地对各类隶属度函数进行建立、修改和删除等操作,函数如表,5-3,所示。,32,表,5-3,语言变量的隶属度的函数,函 数 名,功 能,plotmf( ),绘制隶属度函数曲线,addmf( ),添加模糊语言变量的隶属度函数,rmmf( ),删除隶属度函数,gaussmf( ),建立高斯型隶属度函数,gauss2mf( ),建立双边高斯型隶属度函数,gbellmf( ),建立一般的钟型隶属度函数,pimf( ),建立,型隶属度函数,sigmf( ),建立sigmiod型的隶属度函数,trapmf( ),建立梯形隶属度函数,trimf( ),建立三角型隶属度函数,zmf( ),建立Z型隶属度函数,mf2mf( ),隶属度函数间的参数转换,psigmf( ),计算两个sigmiod隶属度函数之积,dsigmf( ),计算两个sigmiod隶属度函数之和,33,1. 绘制语言变量的隶属度曲线函数plotmf( ),调用格式,x,mf=plotmf(fisMat,varType,varIndex),2. 向模糊推理系统的语言变量添加隶属度函数addmf( ),函数addmf( )只能给模糊推理系统中存在的某一语言变量添加隶属度函数,而不能添加到一个不存在的语言变量中。某个语言变量的隶属度函数(即语言值)按照添加的顺序加以编号,第一个添加的隶属度函数被编为1号,此后依次递增。该函数调用格式为,fisMat2=addmf(fisMat1,varType,varIndex,mfName,mfType,mfParams),34,例如利用以下命令,可得如图5-2所示的隶属度函数曲线。,fisMat=newfis(mysys );,fisMat=addvar(fisMat,input,service,0 10);,fisMat=addmf(fisMat,input,1,poor,gaussmf,1.5 0 );,fisMat=addmf(fisMat,input,1,good,gaussmf,1.5 5);,fisMat=addmf(fisMat,input,1,excellent,gaussmf,1.5 10);,plotmf(fisMat,input,1),35,3. 从模糊推理系统中删除一个语言变量的某一隶属度函数rmmf( ),当一个隶属度函数正在被当前模糊推理规则使用时,则不能删除。调用格式为,fisMat2=rmmf(fisMat1,varType,varIndex,mf,mfIndex),36,4. 建立高斯型隶属度函数gaussmf( ),调用格式 ygaussmf(x,params),ygaussmf(x,sig c),其中 c决定了函数的中心点,sig决定了函数曲线的宽度。高斯型函数的形状由sig和c两个参数决定,高斯函数的表达式如下:,参数x用于指定变量的论域。,例利用以下命令,可建立如图5-3所示的高斯型隶属度函数曲线。,x=0:0.1:10,y=gaussmf(x,2 5);,plot(x,y),xlabel(gaussmf, p=2 5),37,5. 建立双边高斯型隶属度函数gauss2mf( ),调用格式 y=gauss2mf(x,params),y=gauss2mf(x,sig1 c1 sig2 c2),双边高斯型函数的曲线由两个中心点相同的高斯型函数的左、右半边曲线组合而成,其表达式如下式所示。参数sigl,c1,sig2,c2分别对应左、右半边高斯函数的宽度与中心点,c2c1。,例利用以下命令,,可建立如图5-4所,示的双边高斯型隶属度函数。,x=0:0.1:10;,y=gauss2mf(x, 1 3 3 4);,plot(x,y),xlabel(gauss2mf, p=1 3 3 4),38,6 . 建立一般的钟形隶属度函数gbellmf( ),调用格式 y=gbellmf(x,params),y=gbellmf(x,a b c),其中 参数x指定变量的论域范围,a b c指定钟形函数的形状,钟形函数的表达式如下:,例利用以下命令,可建立如图5-5所示的钟形隶属度函数曲线。,x=0:0.1:10,y=gbellmf(x, 2 4 6);,plot(x,y),xlabel(gbellmf, p=2 4 6),39,7. 建立,型隶属度函数,pimf( ),型函数是一种基于样条的函数,由于其形状类似字母,而得名。该函数调用格式为:,y=pimf(x,params),y=pimf(x,a b c d),其中 参数x指定函数的自变量范围,a b c d决定函数的形状,a,b分别对应曲线下部的左右两个拐点,b和c分别对应曲线上部的左右两个拐点。,例利用以下命令,可建立如图5-6所示的,型隶属度函数曲线,x=0:0.1:10;y=pimf(x, 1 4 5 10 );,plot(x,y),xlabel(pimf,p=1 4 5 10),40,8. 建立Sigmoid型隶属度函数sigmf( ),调用格式,y=sigmf(x,params),y=sigmf(x,a c),其中 参数x用于指定变量的论域范围,a c决定了Sigmoid型函数的形状,其表达式如下:,Sigmoid型函数曲线具有半开的形状,因而适于作为“极大”、“极小”等语言值的隶属度函数。,例利用以下命令,可建立如图5-7,所示的sigmoid型隶属度函数曲线。,x=0:0.1:10;y=sigmf(x, 2 4 );,plot(x,y),xlabel(sigmf, p=2 4 ),41,9. 建立梯形隶属度函数trapmf( ),调用格式 y=trapmf(x,params),y=trapmf(x,a,b,c,d),其中 参数x指定变量的论域范围,参数a、b、c和d指定梯形隶属度函数的形状,其对应的表达式如下:,例利用以下命令,可建立如图5-8所示的梯形隶属度函数曲线。,x=0:0.1:10;y=trapmf(x,1 5 7 8);,plot(x,y),xlabel(trapmf,p=1 5 7 8),42,10. 建立三角形隶属度函数trimf( ),调用格式 y=trimf(x,params),y=trimf(x,a,b,c),其中 参数x指定变量的论域范围,参数a、b和c指定三角形函数的形状,其表达式如下:,例利用以下命令,可建立如图5-9所示的三角形隶属度函数并绘制曲线。,x=0:0.1:10;y=trimf(x,3 6 8);,plot(x,y),xlabel(trimf,p=3 6 8),43,11. 建立Z形隶属度函数曲线函数zmf( ),调用格式,y=zmf(x,params),y=zmf(x,a,b,c),Z形函数是一种基于样条插值的函数,两个参数a和b分别定义样条插值的起点和终点;参数x指定变量的论域范围。,例利用以下命令,可建立如图5-10所示的Z形隶属度函数曲线。,x=0:0.1:10;,y= zmf(x,3 6 8);,plot(x,y),xlabel(trimf,p=3 6 8),44,12. 通过两个Sigmoid型函数的乘积来构造新的隶属度函数psigmf( ),为了得到更符合人们习惯的隶属度函数形状,可以利用两个sigmoid型函数之和或乘积来构造新的隶属度函数类型,模糊逻辑工具箱中提供了相应的函数,参见psigmf( )和dsigmf( )。调用格式,y=psigmf(x,params),y=psigmf(x,a1 c1 a2 c2),其中 参数al,c1和a2,c2分别用于指定两个Sigmoid型函数的形状,参数x指定变量的利用范围。新的函数表达式如下:,45,例利用以下命令,由两个sigmoid型函数的乘积来构造新的隶属度函数,如图5-11所示。,x=0:0.1:10;y=psigmf(x,2 3 5 8);,plot(x,y),xlabel(psigmf,p=2 3 -5 8),46,13. 通过计算两个sigmoid型函数之和来构造新的隶属度函数dsigmf( ),调用格式 y=dsigmf(x,params),y=dsigmf(x,a1,c1,a2,c2),本函数的用法与函数psigmf( )类似,参数a1、c1和a2、c2分别用于指定两个Sigmoid型函数的形状,构造得到的新的隶属度函数表达式为:,例利用以下命令,绘制两个sigmoid型函数之和的隶属度函数曲线,如图5-12所示。,x=0:0.1:10,y=dsigmf(x,5 2 5 7);,plot(x,y),xlabel(dsigmf,p=5 2 5 7),47,14. 进行不同类型隶属度函数之间的参数转换函数mf2mf( ),调用格式 outParams=mf2mf(inParams,inType,outType),其中 inParams为转换前的隶属度函数的参数;outParams为转换后的隶属度函数的参数;inType为 转换前的隶属度函数的类型;outType为转换后的隶属度函数的类型。,该函数将尽量保持两种类型的隶属度函数曲线在形状上的近似,特别是保持隶属度等于0.5处的点的重合。但不可避免地会丢失一些信息。所以当再次使用该函数进行反向转换时将无法得到与原来函数相同的参数。,48,例利用以下命令,实现钟型隶属度函数向三角形隶属度函数的转换,如图5-13所示。,x=0:0.1:5;mfp1=1 2 3;,mfp2=mf2mf(mfp1,gbellmf,trimf);,plot(x,gbellmf(x,mfp1),x,trimf(x,mfp2),49,15.隶属度函数的计算函数fuzarith( ),调用格式,C=fuzarith (x, A,B,operator),其中,x为要计算的隶属度函数的论域;A,B为隶属度函数的值;operator为模糊运算符,可以是sum(加)、sub(减)、prod(乘)和div(除)四种运算中的任一种;C为A,B模糊运算后的隶属度函数值。例,x=0:0.1:10;A=trapmf(x,1 3 6 8);B=trimf(x,4 7 9);,C=fuzarith(x,A,B,sum);plot(x,A,-, x,B,-,x,C,x),50,16.计算隶属度函数的值evalmf( ),调用格式,y=evalmf(x, myParams,myType),其中,x为要计算的隶属度函数的论域;myParams为隶属度函数的参数值;myType为隶属度函数的类型;y为隶属度函数的值。,例利用以下命令,可得钟型隶属度函数的计算结果曲线,如图5-14所示。,x=0:0.1:10;myParams=2 4 6;,y=evalmf(x,myParams,gbellmf);,plot(x,y);xlabel(gbellmf,x=2 4 6),51,5.2.4 模糊规则的建立与修改,在模糊推理系统中,模糊规则以模糊语言的形式描述人类的经验和知识,规则是否正确地反映人类专家的经验和知识,是否反映对象的特性,直接决定模糊推理系统的性能。通常模糊规则的形式是“,IF,前件,THEN,后件”,前件由对模糊语言变量的语言值描述构成,如“温度较高,压力较低”。在一般的模糊推理系统中,后件由对输出模糊语言变量的语言值描述构成,但在高木关野模糊推理系统中,后件将输出变量表示成输入量的精确值的组合。模糊规则的这种形式化表示是符合人们通过自然语言对许多知识的描述和记忆习惯的。,52,模糊规则的建立是构造模糊推理系统的关键。在实际应用中,初步建立的模糊规则往往难以到达良好的效果,必须不断加以修正和试凑。在模糊规则的建立修正和试凑过程中,应尽量保证模糊规则的完备性和相容性。在MATLAB模糊逻辑工具箱中,提供了有关对模糊规则建立和操作的函数,如表5-4所示。,表,5-4,模糊规则建立和修改函数,函 数 名,功 能,addrule( ),向模糊推理系统添加模糊规则函数,parsrule( ),解析模糊规则函数,showrule( ),显示模糊规则函数,53,1. 向模糊推理系统添加模糊规则函数addrule( ),调用格式,fisMat2=addrule(fisMat1,rulelist),其中,参数fisMat1/2为填加规则前后模糊推理系统对应的矩阵名称;rulelist以向量的形式给出需要添加的模糊规则,该向量的格式有严格的要求,如果模糊推理系统有m个输入语言变量和n个输出语言变量,则向量rulelist的列数必须为mn2,而行数任意。在rulelist的每一行中,前m个数字表示各输入变量对应的隶属度函数的编号,其后的n个数字表示输出变量对应的隶属度函数的编号,第mn1个数字是该规则适用的权重,权重的值在0到 1之间,一般设定为 l;第mn2个数字为0或1两个值之一,如果为1则表示模糊规则前件的各语言变量之间是“与”的关系,如果是0则表示是“或”的关系。,54,例如系统fisMat有两个输入和一个输出,其中两条模糊规则分别为:,IF x is X1 and y is Y1 THEN z is Z1,IF x is X1 and y is Y2 THEN z is Z2,则可采用如下的MATLAB命令来实现以上两条模糊规则。,rulelist=1 1 1 1 1;,1 2 2 1 1;,fisMat=addrule(fisMat,rulelist),55,例5-1,假设一单输入单输出系统,输入为表征饭店侍者服务好坏的值(0,10),输出为客人付给的小费(0,30)。其中规则有如下三条:,IF 服务 差 THEN 小费 低,IF 服务 好 THEN 小费 中等,IF 服务 很好 THEN 小费 高,适当选择服务和小费的隶属度函数后,设计一基于Mamdani模型的模糊推理系统,并绘制输入/输出曲线。,解,利用以下程序,可得如图5-15所示的隶属度函数的设定与输入/输出曲线。,%ex5_1.m,56,由图5-15可见,由于隶属度函数的合适选择,模糊系统的输出是输入的严格递增函数,也就是说,付给客人的小费是随着服务质量的提高而增加。当隶属度函数的选取不能保证相邻模糊量的交点大于0.5时(如将以上程序中服务隶属度函数的参数1.8修改为1.0),输出将不是输入的严格递增函数,这时小费有时可能会随着服务质量的提高而减少。,57,例5-2,假设一单输入单输出系统,输入x,0,15模糊化成三级:小、中和大;输出y,0,15由下列三条规则确定:,IF x is 小 THEN y=x,IF x is 中 THEN y=-0.5x+9,IF x is 大 THEN y=2x-18.,设计一基于Sugeno模型的模糊推理系统,并绘制输入/输出曲线。,解,在利用MATLAB设计Sugeno模糊系统时,其步骤仍然与建立Mamdani模糊系统相似,只是输出变量值的隶属度的概念被模糊规则中的线性函数或是常数取代了,因此推理的过程就省略蕴涵运算以及不同模糊规则之间结果的合成运算,以致在后面介绍的基本模糊推理系统编辑器(fuzzy)环境里的“Implication”和“Aggregation”算法选择项都不能使用。,58,但是这里对于输出仍然会用到“隶属度函数”的提法,只是对于Sugeno型系统输出变量的“隶属度函数”不是通常模糊逻辑意义中的隶属度函数,而是输出变量取值关于输入变量的线性或是常值函数(姑且将它们看作单点模糊集,因此也可将系统的输出看作模糊量,其隶属度函数分别采用constant和linear)。这样也就使的输出变量的范围无法直接确定(论域不能事先确定),因而在MATLAB中对于Sugeno型系统输出变量的范围(Rang)指定是没有作用的。利用以下MATLAB程序,可得如图5-16所示的输入隶属度函数的设定与输入/输出曲线。,%ex5_2.m,59,由图5-16可见,由于隶属度函数的合适选择,模糊系统的输出曲线是光滑的。从以上的输入输出关系图上可以清楚地看到,经过Sugeno方法运算后,输入输出的关系由原来给定的三个线性函数内插为一条光滑的输入输出曲线,这也说明了Sugeno系统是一种将线性方法用于非线性系统的简单有效的手段。这一点正是它被广泛使用在诸如系统控制、系统建模等领域的一个重要原因。,60,2. 解析模糊规则函数parsrule( ),函数parsrule( )对给定的模糊语言规则进行解析并添加到模糊推理系统矩阵中,其调用格式,fisMat2=parsrule(fisMat1,txtRuleList,ruleFormat,lang),例,:,fisMat1=readfis(tipper);ruleTxt=if service is poor then tip is generous;,fisMat2=parsrule(fisMat1,ruleTxt,verbose);showrule(fisMat2),61,3 . 显示模糊规则函数showrule( ),调用格式: showrule(fisMat,indexList,format,lang),本函数用于显示指定的模糊推理系统的模糊规则,模糊规则可以按三种方式显示,即:详述方式(verbose)、符号方式(symbolic)和隶属度函数编号方式(membership function index referencing)。第一个参数是模糊推理系统矩阵的名称,第二个参数是规则编号,第三个参数是规则显示方式。规则编号可以以向量形式指定多个规则。例,fisMat=readfis(tipper); showrule(fisMat,1),fisMat=readfis(tipper);showrule(fisMat,2),fisMat=readfis(tipper);showrule(fisMat,3 1,symbolic),fisMat=readfis(tipper);showrule(fisMat,1:3,indexed),62,5.2.5 模糊推理计算与去模糊化,在建立好模糊语言变量及其隶属度的值,并构造完成模糊规则之后,就可执行模糊推理计算了。模糊推理的执行结果与模糊蕴含操作的定义、推理合成规则、模糊规则前件部分的连接词“and”的操作定义等有关,因而有多种不同的算法。,目前常用的模糊推理合成规则是“极大一极小”合成规则,设R表示规则:“X为A,Y,为 B”表达的模糊关系,则当X为 A时,按照“极大一极小”规则进行模糊推理的结论B计算如下:,63,基于模糊蕴含操作的不同定义,人们提出了多种模糊推理算法,其中较为常用的是 Mamdani模糊推理算法和Larsen模糊推理算法。另外,对于输出为精确量的一类特殊模糊逻辑系统Takagi-Sugeno型模糊推理系统,采用了将模糊推理与去模糊化结合的运算操作。与其他类型的模糊推理方法不同,TakagiSugeno型模糊推理将去模糊化也结合到模糊推理中,其输出为精确量。这是由TakagiSugeno型模糊规则的形式所决定的,在Sugeno型模糊规则的后件部分将输出量表示为输入量的线性组合,零阶Sugeno型模糊规则具有如下形式。,IF x为A 且 y为B THEN z=k,其中,k为常数。,64,而一阶Sugeno型模糊规则的形式如下:,IF x为A 且 y为B THEN z=p*x+q*y+r,式中 p,q,r均为常数。,对于一个由n条规则组成的Sugeno型模糊推理系统,设每条规则具有下面的形式:,R,i,:IF x为A,i,且y为B,i,THEN z=z,i,(i=1,2,n),则系统总的输出用下式计算:,65,在MATLAB模糊逻辑工具箱中提供了有关对模糊推理计算与去模糊化的函数,如表5-5所示。,表,5-5,模糊推理计算与去模糊化的函数,函 数 名,功 能,evalfis( ),执行模糊推理计算函数,defuzz( ),执行输出去模糊化函数,gensurf( ),生成模糊推理系统的输出曲面并显示函数,66,1. 执行模糊推理计算函数evalfis( ),该函数用于计算已知模糊系统在给定输入变量时的输出值,其调用格式,output=evalfis(input,fisMat),67,例5-3,某一工业过程要根据测量的温度和压力来确定阀门开启的角度。假设输入温度,0,30 模糊化成两级:冷和热;压力,0,3模糊化成两级:高和正常;输出阀门开启角度的增量,-10,10模糊化成三级:正、负和零。模糊规则为:,IF 温度 is 冷 and 压力 is 高 THEN 阀门角度的增量 is正,IF 温度 is 热 and 压力 is 高 THEN 阀门角度的增量 is负,IF 压力 is 正常 THEN 阀门角度的增量 is零,适当选择隶属度函数后,设计一基于Mamdani模型的模糊推理系统,计算当温度和压力分别为5和1.5以及11和2时阀门开启的角度的增量,并绘制输入/输出曲面图。,解,利用以下MATLAB程序,可得如下结果和如图5-17所示的系统输入/输出曲面图。,%ex5_3.m,68,执行结果:,out =,2.5000,3.3921,由以上结果可知,当温度和压力分别为5和1.5时,阀门开启角度的增量为2.5;温度和压力分别为11和2时,角度的增量为3.3921。,69,2. 执行输出去模糊化函数defuzz( ),调用格式: out=defuzz(x,mf,type),其中,参数x是变量的论域范围;mf为待去模糊化的模糊集合;type是去模糊化的方法,去模糊化的方法包括5种,即centroid(面积中心法)、bisector(面积平分法)、mom(平均最大隶属度方法)、som(最大隶属度中的取最小值方法)、lom(最大隶属度中的取最大值方法)。例:,x=-10:0.1:10;mf=trapmf(x,-10 -8 -4 7);xx=defuzz(x,mf,centroid),输出结果:,xx =,-3.2857,70,3. 生成模糊推理系统的输出曲面并显示函数gensurf( ),调用格式,gensurf(fisMat),gensurf(fisMat,inputs,outputs),gensurf(fisMat,inputs,outputs,grids,refinput),其中,参数fisMat为模糊推理系统对应的矩阵;inputs为模糊推理系统的一个或两个输入语言变量的编号;output为模糊系统的输出语言变量的编号;参数grids用干指定x和y坐标方向的网络数目;当系统输入变量多于两个时,参数refinput用于指定保持不变的输入变量。,71,由于gensurf( )函数只能绘制二维平面图或三维曲面图,当系统的输入参数多于两个时,函数gensurf(fisMat)(仅有一个参数fisMat)生成由模糊推理系统的前两个输入和第一个输出构成的三维曲面,否则应指明绘制哪两个输入和哪一个输出的三维曲面。,例针对两输入单输出的模糊推理系统tipper,函数gensurf( )有以下几种使用方法:,fisMat=readfis(tipper);gensurf(fisMat),或 fisMat=readfis(tipper);gensurf(fisMat,1 2,1),fisMat=readfis(tipper);gensurf(fisMat,1,1),fisMat=readfis(tipper);gensurf(fisMat,2,1),72,5.3 MATLAB模糊逻辑工具箱的图形用户界面,前面介绍了模糊逻辑工具箱中有关构造模糊推理系统的函数,这些函数都是直接在,MATLAB,命令行窗口执行并显示结果的。为了进一步方便用户,模糊逻辑工具箱供了一套用于构造模糊推理系统的图形用户界面,它具有以下五大功能。,73,5.3.1 基本模糊推理系统编辑器(Fuzzy),基本模糊推理系统编辑器提供了利用图形界面(,GUI,)对模糊系统的高层属性的编辑、修改功能,这些属性包括输入、输出语言变量的个数和去模糊化方法等。用户在基本模糊编辑器中可以通过菜单选择激活其他几个图形界面编辑器,如隶属度函数编辑器(,mfedit,)、模糊规则编辑器(,ruleedit,)等。,74,在MATLAB命令窗口中,可以用以下两种方法启动基本模糊推理系统编辑器FIS Editer:,1) 在MATLAB的命令窗口中直接键入fuzzy命令;,2) 首先利用MATLAB左下角的Start,Toolboxes,Fuzzy Logic命令,打开模糊逻辑系统工具箱菜单窗口。然后利用鼠标双击模糊逻辑系统(Fuzzy Logic)中的FIS Editor Viewer项。,75,在以上两种方式启动下,基本模糊推理系统编辑器的图形界面如图,5-18,所示。,图5-18 基本模糊推理系统编辑器图形界面,76,从图5-18中可以看到,在窗口上半部以图形框的形式列出了模糊推理系统的基本组成部分,即输入模糊变量(input1)、模糊规则(Mamdani型或Sugeno型)和输出模糊变量(output1)。通过鼠标双击上述图形框,能够激活隶属度函数编辑器和模糊规则编辑器等相应的编辑窗口。在窗口下半部分的右侧,列出了当前选定的模糊语言变量(Current Variable)的名称、类型及其论域范围。窗口的下半部分的左侧列出了模糊推理系统的名称(FIS Name)、类型(FIS Type)和一些基本属性,包括“与”运算 (And method)、“或”运算 (Or methed)、蕴含运算(Implication)、模糊规则的综合运算(Aggregation)以及去模糊化 (Defuzzification)等。,77,用户只需用鼠标即可设定相应的属性。其中“与”运算 (And method)可为其选择min(最小)、prod(乘积)或custom(自定义)运算;“或”运算 (Or methed) 可为其选择max(最大)、probor(概率方法)或custom运算;蕴含运算(Implication) 可为其选择min、prod或custom运算,但不适用于Sugeno型的模糊推理;模糊规则的综合运算(Aggregation) 可为其选择max、sum(求和)、probor或custom运算,但不适用于Sugeno型的模糊推理;去模糊化 (Defuzzification) 对Mamdani型模糊推理系统,可为其选择centroid(区域重心法)、bisector(区域等分法)、mom(极大平均法)、som(极大最小法)、lom(极大最大法)或custom;对于Sugeno型模糊推理系统,可为其选择wtaver(加权平均)或wtsum(加权求和)。,78,在图5-18中,模糊推理系统的基本属性默认设定为:“与”运算采用极小运算(min),“或”运算采用极大运算(max),模糊蕴含采用极小运算(min),模糊规则综合采用极大运算(max),去模糊化采用重心法(centroid)。,79,1文件(FIIe)菜单,文件菜单的主要功能包括:,New Mamdani FIS新建Mamdani型模糊推理系统;,New Sugeno FIS新建Sugeno型模糊推理系统;,Import From Workspace从工作空间加载一个模糊推理系统;,Import From File从磁盘文件加载一个模糊推理系统;,Export to Workspace将当前的模糊推理系统保存到工作空间;,Export to File将当前的模糊推理系统保存到磁盘文件;,Print打印模糊推理系统的信息;,Close Window关闭窗口。,80,2编辑(Edit)菜单,编辑菜单的功能包括:,Undot撤消最近的操作;,Add Variable. Input添加输入语言变量;,Add Variable. Output一添加输出语言变量;,Remove Selected Variable删除所选语言变量;,Add MFs在当前变量中添加系统所提供的隶属度函数;,Add Custom MF一在当前变量中添加用户自定义的隶属度函数(.m文件);,Remove Selected MF删除所选隶属度函数;,Remove All MFs删除当前变量的所有隶属度函数;,Membership Functions打开隶属度函数编辑器(Mfedit);,Rules打开模糊规则编辑器(Ruleedit);,FIS Properties打开模糊推理系统编辑器(Fuzzy)。,81,3视图(View)菜单,视图菜单的功能包括:,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > PPT模板库


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!