MATLAB模糊逻辑工具箱函数.ppt
《MATLAB模糊逻辑工具箱函数.ppt》由会员分享,可在线阅读,更多相关《MATLAB模糊逻辑工具箱函数.ppt(104页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1,1 MATLAB模糊逻辑工具箱简介 2 利用模糊逻辑工具箱建立模糊推理系统 3 MATLAB模糊逻辑工具箱的图形用户界面 4 基于Simulink的模糊逻辑的系统模块,MATLAB模糊逻辑 工具箱函数,2,针对模糊逻辑尤其是模糊控制的迅速推广应用,MathWorks公司在其MATLAB版中添加了Fuzzy Logic工具箱。该工具箱由长期从事模糊逻辑和模糊控制研究与开发工作的有关专家和技术人员编制。MATLAB Fuzzy Logic工具箱以其功能强大和方便易用的特点得到了用户的广泛欢迎。模糊逻辑的创始人Zadeh教授称赞该工具箱“在各方面都给人以深刻的印象,使模糊逻辑成为智能系统的概念与
2、设计的有效工具。”,3,1.1 模糊逻辑工具箱的功能特点 1易于使用 模糊逻辑工具箱提供了建立和测试模糊逻辑系统的一整套功能函数,包括定义语言变量及其隶属度函数、输入模糊推理规则、整个模糊推理系统的管理以及交互式地观察模糊推理的过程和输出结果。,1 MATLAB模糊逻辑工具箱简介,4,2. 提供图形化的系统设计界面 在模糊逻辑工具箱中包含五个图形化的系统设计工具,这五个设计工具是: 模糊推理系统编辑器,该编辑器用于建立模糊逻辑系统的整体框架,包括输入与输出数目、去模糊化方法等; 隶属度函数编辑器,用于通过可视化手段建立语言变量的隶属度函数; 模糊推理规则编辑器; 系统输入输出特性曲面测览器;
3、模糊推理过程浏览器。,5,3. 支持模糊逻辑中的高级技术 自适应神经模糊推理系统(ANFIS,Adaptive Neural Fuzzy Inference System); 用于模式识别的模糊聚类技术; 模糊推理方法的选择,用户可在广泛采用的 Mamdani型推理方法和 Sugeno型推理方法两者之间选择。,6,4. 集成的仿真和代码生成功能 模糊逻辑工具箱不但能够实现Simulink的无缝连接,而且通过 RealTime Workshop能够生成ANSI C源代码,从而易于实现模糊系统的实时应用。 5. 独立运行的模糊推理机 在用户完成模糊逻辑系统的设计后,可以将设计结果以ASCII码文件
4、保存;利用模糊逻辑工具箱提供的模糊推理机,可以实现模糊逻辑系统的独立运行或者作为其他应用的一部分运行。,7,5.1.2 模糊推理系统的基本类型 在模糊系统中,模糊模型的表示主要有两类:一类是模糊规则的后件是输出量的某一模糊集合,如NB,PB等,由于这种表示比较常用,且首次由Mamdani采用,因而称它为模糊系统的标准模型或Mamdani模型表示;另一类是模糊规则的后件是输入语言变量的函数,典型的情况是输入变量的线性组合。由于该方法是日本学者高木(Takagi)和关野(Sugeno)首先提出来的,因此通常称它为模糊系统的Takagi-Sugeno(高木-关野)模型,或简称为Sugeno模型。,8
5、,1 基于标准模型的模糊逻辑系统 在标准型模糊逻辑系统中,模糊规则的前件和后件均为模糊语言值,即具有如下形式: IF x1 is A1 and x2 is A2 andand xn is An THEN y is B 其中Ai(i=1,2,n)是输入模糊语言值,B是输出模糊语言值。,图5-1 基于标准模型的模糊逻辑系统原理图,基于标准模型的模糊逻辑系统的框图如图5-1。图中的模糊规则库由若干“IFTHEN”规则构成。模糊推理机在模糊推理系统中起着核心作用,它将输入模糊集合按照模糊规则映射成输出模糊集合。它提供了一种量化专家语言信息和在模糊逻辑原则下系统地利用这类语言信息的一般化模式。,9,2
6、基于高木关野(TakagiSugeno)模型的模糊逻辑系统 高木关野模糊逻辑系统是一类较为特殊的模糊逻辑系统,其模糊规则不同于一般的模糊规则形式。 在高木关野模糊逻辑系统中,采用如下形式的模糊规则: IF x1 is A1 and x2 is A2 andand xn is An THEN 其中Ai(i=1,2,n)是输入模糊语言值,ci(i=1,2,n)是真值参数。,10,可以看出,高木-关野模糊逻辑系统的输出量是精确值。这类模糊逻辑系统的优点是输出量可用输入值的线性组合来表示,因而能够利用参数估计方法来确定系统的参数ci(i=1,2,n);同时,可以应用线性控制系统的分析方法来近似分析和设
7、计模糊逻辑系统。其缺点是规则的输出部分不具有模糊语言值的形式,因此不能充分利用专家的控制知识,模糊逻辑的各种不同原则在这种模糊逻辑系统中应用的自由度也受到限制。,11,5.1.3 模糊逻辑系统的构成 前面讨论了模糊逻辑系统的基本类型,标准型模糊逻辑系统应用最为广泛。在MATLAB模糊逻辑工具箱中主要针对这一类型的模糊逻辑系统提供了分析和设计手段,但同时对高木一关野模糊逻辑系统也提供了一些相关函数。下面将以标准型模糊逻辑系统作为主要讨论对象。,12,构造一个模糊逻辑系统,首先必须明确其主要组成部分。一个典型的模糊逻辑系统主要由如下几个部分组成: (1)输入与输出语言变量,包括语言值及其隶属度函数
8、; (2)模糊规则; (3)输入量的模糊化方法和输出变量的去模糊化方法; (4)模糊推理算法。,13,针对模糊逻辑系统的以上主要构成,在MATLAB模糊逻辑工具箱中构造一个模糊推理系统有如下步骤: (1)模糊推理系统对应的数据文件,其后缀为.fis,用于对该模糊系统进行存储、修改和管理; (2)确定输入、输出语言变量及其语言值; (3)确定各语言值的隶属度函数,包括隶属度函数的类型与参数; (4)确定模糊规则; (5)确定各种模糊运算方法,包括模糊推理方法、模糊化方法、去模糊化方法等。,14,5.2 利用模糊逻辑工具箱建立模糊推理系统 5.2.1 模糊推理系统的建立、修改与存储管理 前面讨论了
9、模糊推理系统的主要构成部分,即一个模糊推理系统由输入、输出语言变量及其隶属度函数、模糊规则、模糊推理机和去模糊化方法等各部分组成,在MATLAB模糊逻辑工具箱中,把模糊推理系统的各部分作为一个整体,并以文件形式对模糊推理系统进行建立、修改和存储等管理功能。表5-1所示为该工具箱提供的有关模糊推理系统管理的函数及其功能。,15,表2-7 模糊推理系统的管理函数,表5-1 模糊推理系统的管理函数,16,1 .创建新的模糊推理系统函数newfis( ) 该函数用于创建一个新的模糊推理系统,模糊推理系统的特性可由函数的参数指定,其参数个数可达7个。调用格式为 fisMat=newfis(fisName
10、,fisType,andMethod,orMethod,impMethod,aggMethod,defuzzMethod),17,例: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,18,2. 从磁盘中加载模糊
11、推理系统函数readfis( ) 调用格式 fisMat=readfis(filemame),19,例如利用以下命令可加载一个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 = mi
12、n AggMethod = max DefuzzMethod = 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
13、=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),22,4. 将模糊推理系统以矩阵形式保存在内存中的数据
14、写入磁盘文件函数writefis( ) 模糊推理系统在内存中的数据是以矩阵形式存储的,其对应的矩阵名为fisMat。当需要将模糊推理系统的数据写入磁盘文件时,就可利用writefis( )函数。其调用格式为 writefis(fisMat) writefis(fisMat,filename) writefis(fisMat,filename,dialog) 例: fisMat=newfis(tipper);writefis(fisMat,my_ file),23,5. 以分行的形式显示模糊推理系统矩阵的所有属性函数showfis( ) 调用格式 showfis(fisMat) 其中 fisMa
15、t为模糊推理系统在内存中的矩阵表示。 例: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);,24,该函数可以有3个、5个或7个输入参数。例 fisMat=readfis(tipper
16、);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为模糊推理系统对应的矩阵名称。 例:fisMat=readfis(tipper); plotfis(fisMat) 8. 将
17、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 模糊语言变量及其语言值 在模糊推理系统中,专家的控制知识以模糊规
18、则形式表示。为直接反映人类自然语言的模糊性特点,模糊规则的前件和后件中引入语言变量和语言值的概念。语言变量分为输入语言变量和输出语言变量,输入语言变量是对模糊推理系统输入变量的模糊化描述,通常位于模糊规则的前件中,输出语言变量是对模糊推理系统输出变量的模糊化描述,通常位于模糊规则的后件中。,27,语言变量具有多个语言值,每个语言值对应一个隶属度函数。语言变量的语言值构成了对输入和输出空间的模糊分割,模糊分割的个数即语言值的个数以及语言值对应的隶属度函数决定了模糊分割的精细化程度。模糊分割的个数也决定了模糊规则的个数,模糊分割数越多,控制规则数也越多。因此在设计模糊推理系统时,应在模糊分割的精细
19、程度与控制规则的复杂性之间取得折衷。,28,在MATLAB模糊逻辑工具箱中,提供了向模糊推理系统添加或删除模糊语言变量及其语言值的函数,如表5-2所示。 表5-2 添加或删除模糊语言变量函数,29,1向模糊推理系统添加语言变量函数addvar( ) 调用格式 fisMat2=addvar(fisMat1,varType,varName,varBounds) 例fisMat=newfis(mysys);fisMat=addvar(fisMat,input,service,0 10),30,2. 从模糊推理系统中删除语言变量rmvar( ) 调用格式 fisMat2=rmvar(fisMat1,v
20、arType,varIndex) 当一个模糊语言变量正在被当前的模糊规则集使用时,则不能删除该变量。在一个模糊语言变量被删除后,MATLAB模糊逻辑工具箱将会自动地对模糊规则集进行修改,以保证一致性。例 fisMat=newfis(mysys);fisMat=addvar(fisMat,input,temperature,0 100); fisMat1=rmvar(fisMat,input,1),31,5.2.3 模糊语言变量的隶属度函数 每个模糊语言变量具有多个模糊语言值。模糊语言值的名称通常具有一定的含义,如 NB(负大)、NM(负中)、NS(负小)、ZE(零)、PS(正小)、PM(正中)
21、、PB(正大)等。每个语言值都对应一个隶属度函数。隶属度函数可有两种描述方式,即数值描述方式和函数描述方式。数值描述方式适用于语言变量的论域为离散的情形,此时隶属度函数可用向量或表格的形式来表示;对于论域为连续的情况,隶属度函数则采用函数描述方式。,32,在MATLAB模糊逻辑工具箱中支持的隶属度函数类型有如下几种:高斯型、三角型、梯形、钟型、Sigmoid型、型以及Z型。利用工具箱中提供的函数可以建立和计算上述各种类型隶属度函数。 隶属度函数曲线的形状决定了对输入、输出空间的模糊分割,对模糊推理系统的性能有重要的影响。在MATLAB模糊逻辑工具箱中提供了丰富的隶属度函数类型的支持,利用工具箱
22、的有关函数可以方便地对各类隶属度函数进行建立、修改和删除等操作,函数如表5-3所示。,33,表5-3 语言变量的隶属度的函数,34,1. 绘制语言变量的隶属度曲线函数plotmf( ) 调用格式 x,mf=plotmf(fisMat,varType,varIndex),2. 向模糊推理系统的语言变量添加隶属度函数addmf( ) 函数addmf( )只能给模糊推理系统中存在的某一语言变量添加隶属度函数,而不能添加到一个不存在的语言变量中。某个语言变量的隶属度函数(即语言值)按照添加的顺序加以编号,第一个添加的隶属度函数被编为1号,此后依次递增。该函数调用格式为 fisMat2=addmf(fi
23、sMat1,varType,varIndex,mfName, mfType,mfParams),35,例如利用以下命令,可得如图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); pl
24、otmf(fisMat,input,1),36,3. 从模糊推理系统中删除一个语言变量的某一隶属度函数rmmf( ) 当一个隶属度函数正在被当前模糊推理规则使用时,则不能删除。调用格式为 fisMat2=rmmf(fisMat1,varType,varIndex,mf,mfIndex),37,4. 建立高斯型隶属度函数gaussmf( ) 调用格式 ygaussmf(x,params) ygaussmf(x,sig c) 其中 c决定了函数的中心点,sig决定了函数曲线的宽度。高斯型函数的形状由sig和c两个参数决定,高斯函数的表达式如下: 参数x用于指定变量的论域。 例利用以下命令,可建立如
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- matlab 模糊 隐约 依稀 模胡 逻辑 工具箱 函数
限制150内