ImageVerifierCode 换一换
格式:PPT , 页数:104 ,大小:555.50KB ,
资源ID:7890342      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-7890342.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(MATLAB模糊逻辑工具箱函数.ppt)为本站会员(wj)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

MATLAB模糊逻辑工具箱函数.ppt

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,1 基于标准模型的模糊逻辑系统

5、在标准型模糊逻辑系统中,模糊规则的前件和后件均为模糊语言值,即具有如下形式: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 基于高木关野(TakagiSugen

6、o)模型的模糊逻辑系统 高木关野模糊逻辑系统是一类较为特殊的模糊逻辑系统,其模糊规则不同于一般的模糊规则形式。在高木关野模糊逻辑系统中,采用如下形式的模糊规则: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)输入与输出语言变量,包括语言值及其隶属度函数;(2)模糊规则;(3)输入量的模糊化方法

8、和输出变量的去模糊化方法;(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,fisType,andMethod,orMethod,impMet

10、hod,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.从磁盘中加载模糊推理系统函数readfis()调用格式fisMat=readfis(filemame),19,例如利用以下命令可加载一个

11、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,20,3.获得模糊推理系统的属性函数getfis()利用getfis()可获取模糊推理系统的部分

12、或全部特性,格式为 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,i

13、nput,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.将模糊推理系统以矩阵形式保存在内存中的数据写入磁盘文件函数writefis()模糊推理系统在内存中的数据是以矩阵形式存储的,其对应的矩阵名为fisMat。当需要将模糊推理系统的数据写入磁盘文件时,就可利用writefis()函数。其调用格式为 writefis

14、(fisMat)writefis(fisMat,filename)writefis(fisMat,filename,dialog)例:fisMat=newfis(tipper);writefis(fisMat,my_ file),23,5.以分行的形式显示模糊推理系统矩阵的所有属性函数showfis()调用格式showfis(fisMat)其中 fisMat为模糊推理系统在内存中的矩阵表示。例:fisMat=readfis(tipper);showfis(fisMat)6.设置模糊推理系统的属性函数setfis()调用格式fisMat=setfis(fisMat,propname,newpro

15、p)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=s

16、etfis(fisMat,input,1,mf,2,name,wretched),25,7.绘图表示模糊推理系统的函数plotfis()该函数的调用格式为 plotfis(fisMat)其中,fisMat为模糊推理系统对应的矩阵名称。例:fisMat=readfis(tipper);plotfis(fisMat)8.将Mamdani型模糊推理系统转换成Sugeno型模糊推理系统的函数mam2sug()函数mam2sug()可将Mamdani型模糊推理系统转换成零阶的Sugeno型模糊推理系统。得到的Sugeno型模糊推理系统具有常数隶属度函数,其常数值由原来Mamdani型系统得到的隶属度函数

17、的质心确定,并且其前件不变,该函数的调用格式为 sug_fisMat=mam2sug(mam_fisMat)例:mam_fisMat=readfis(tipper);sug_fisMat=mam2sug(mam_fisMat),26,5.2.2 模糊语言变量及其语言值 在模糊推理系统中,专家的控制知识以模糊规则形式表示。为直接反映人类自然语言的模糊性特点,模糊规则的前件和后件中引入语言变量和语言值的概念。语言变量分为输入语言变量和输出语言变量,输入语言变量是对模糊推理系统输入变量的模糊化描述,通常位于模糊规则的前件中,输出语言变量是对模糊推理系统输出变量的模糊化描述,通常位于模糊规则的后件中。

18、,27,语言变量具有多个语言值,每个语言值对应一个隶属度函数。语言变量的语言值构成了对输入和输出空间的模糊分割,模糊分割的个数即语言值的个数以及语言值对应的隶属度函数决定了模糊分割的精细化程度。模糊分割的个数也决定了模糊规则的个数,模糊分割数越多,控制规则数也越多。因此在设计模糊推理系统时,应在模糊分割的精细程度与控制规则的复杂性之间取得折衷。,28,在MATLAB模糊逻辑工具箱中,提供了向模糊推理系统添加或删除模糊语言变量及其语言值的函数,如表5-2所示。表5-2 添加或删除模糊语言变量函数,29,1向模糊推理系统添加语言变量函数addvar()调用格式fisMat2=addvar(fisM

19、at1,varType,varName,varBounds)例fisMat=newfis(mysys);fisMat=addvar(fisMat,input,service,0 10),30,2.从模糊推理系统中删除语言变量rmvar()调用格式fisMat2=rmvar(fisMat1,varType,varIndex)当一个模糊语言变量正在被当前的模糊规则集使用时,则不能删除该变量。在一个模糊语言变量被删除后,MATLAB模糊逻辑工具箱将会自动地对模糊规则集进行修改,以保证一致性。例fisMat=newfis(mysys);fisMat=addvar(fisMat,input,temper

20、ature,0 100);fisMat1=rmvar(fisMat,input,1),31,5.2.3 模糊语言变量的隶属度函数 每个模糊语言变量具有多个模糊语言值。模糊语言值的名称通常具有一定的含义,如 NB(负大)、NM(负中)、NS(负小)、ZE(零)、PS(正小)、PM(正中)、PB(正大)等。每个语言值都对应一个隶属度函数。隶属度函数可有两种描述方式,即数值描述方式和函数描述方式。数值描述方式适用于语言变量的论域为离散的情形,此时隶属度函数可用向量或表格的形式来表示;对于论域为连续的情况,隶属度函数则采用函数描述方式。,32,在MATLAB模糊逻辑工具箱中支持的隶属度函数类型有如下几

21、种:高斯型、三角型、梯形、钟型、Sigmoid型、型以及Z型。利用工具箱中提供的函数可以建立和计算上述各种类型隶属度函数。隶属度函数曲线的形状决定了对输入、输出空间的模糊分割,对模糊推理系统的性能有重要的影响。在MATLAB模糊逻辑工具箱中提供了丰富的隶属度函数类型的支持,利用工具箱的有关函数可以方便地对各类隶属度函数进行建立、修改和删除等操作,函数如表5-3所示。,33,表5-3 语言变量的隶属度的函数,34,1.绘制语言变量的隶属度曲线函数plotmf()调用格式 x,mf=plotmf(fisMat,varType,varIndex),2.向模糊推理系统的语言变量添加隶属度函数addmf

22、()函数addmf()只能给模糊推理系统中存在的某一语言变量添加隶属度函数,而不能添加到一个不存在的语言变量中。某个语言变量的隶属度函数(即语言值)按照添加的顺序加以编号,第一个添加的隶属度函数被编为1号,此后依次递增。该函数调用格式为fisMat2=addmf(fisMat1,varType,varIndex,mfName,mfType,mfParams),35,例如利用以下命令,可得如图5-2所示的隶属度函数曲线。fisMat=newfis(mysys);fisMat=addvar(fisMat,input,service,0 10);fisMat=addmf(fisMat,input,1

23、,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),36,3.从模糊推理系统中删除一个语言变量的某一隶属度函数rmmf()当一个隶属度函数正在被当前模糊推理规则使用时,则不能删除。调用格式为fisMat2=rmmf(fisMat1,varType,varIndex,mf,mfIndex),37,4.建立高斯型隶属度函数gaussmf()调用格式 ygauss

24、mf(x,params)ygaussmf(x,sig c)其中 c决定了函数的中心点,sig决定了函数曲线的宽度。高斯型函数的形状由sig和c两个参数决定,高斯函数的表达式如下:参数x用于指定变量的论域。例利用以下命令,可建立如图5-3所示的高斯型隶属度函数曲线。x=0:0.1:10y=gaussmf(x,2 5);plot(x,y)xlabel(gaussmf,p=2 5),38,5.建立双边高斯型隶属度函数gauss2mf()调用格式 y=gauss2mf(x,params)y=gauss2mf(x,sig1 c1 sig2 c2)双边高斯型函数的曲线由两个中心点相同的高斯型函数的左、右半

25、边曲线组合而成,其表达式如下式所示。参数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),39,6.建立一般的钟形隶属度函数gbellmf()调用格式 y=gbellmf(x,params)y=gbellmf(x,a b c)其中 参数x指定变量的论域范围,a b c指定钟形函数的形状,钟形函数的表达式如下:例利用以下命令,可建立如图5-5所示的钟形隶属度函数曲线。

26、x=0:0.1:10y=gbellmf(x,2 4 6);plot(x,y)xlabel(gbellmf,p=2 4 6),40,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

27、=1 4 5 10),41,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),42,9.建立梯形隶属度函数trapmf()调用格式 y=trapmf(x,params

28、)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),43,10.建立三角形隶属度函数trimf()调用格式 y=trimf(x,params)y=trimf(x,a,b,c)其中 参数x指定变量的论域范围,参数a、b和c指定三角形函数的形状,其表达式如下:例利用以下命令,可建立如图5-9所示的三角形隶属度函数并绘制曲线。x=

29、0:0.1:10;y=trimf(x,3 6 8);plot(x,y),xlabel(trimf,p=3 6 8),44,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),45,12.通过两个Sigmoid型函数的乘积来构造新的隶属度函数psigmf()为了得到

30、更符合人们习惯的隶属度函数形状,可以利用两个sigmoid型函数之和或乘积来构造新的隶属度函数类型,模糊逻辑工具箱中提供了相应的函数,参见psigmf()和dsigmf()。调用格式y=psigmf(x,params)y=psigmf(x,a1 c1 a2 c2)其中 参数al,c1和a2,c2分别用于指定两个Sigmoid型函数的形状,参数x指定变量的利用范围。新的函数表达式如下:,46,例利用以下命令,由两个sigmoid型函数的乘积来构造新的隶属度函数,如图5-11所示。x=0:0.1:10;y=psigmf(x,2 3 5 8);plot(x,y)xlabel(psigmf,p=2 3

31、-5 8),47,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:10y=dsigmf(x,5 2 5 7);plot(x,y)xlabel(dsigmf,p=5 2 5 7),48,14.进行不同类型隶属度函数之间的参数转换函数mf

32、2mf()调用格式 outParams=mf2mf(inParams,inType,outType)其中 inParams为转换前的隶属度函数的参数;outParams为转换后的隶属度函数的参数;inType为 转换前的隶属度函数的类型;outType为转换后的隶属度函数的类型。该函数将尽量保持两种类型的隶属度函数曲线在形状上的近似,特别是保持隶属度等于0.5处的点的重合。但不可避免地会丢失一些信息。所以当再次使用该函数进行反向转换时将无法得到与原来函数相同的参数。,49,例利用以下命令,实现钟型隶属度函数向三角形隶属度函数的转换,如图5-13所示。x=0:0.1:5;mfp1=1 2 3;m

33、fp2=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: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),51,16.计算隶属度函数的值evalmf()调用格式y=evalmf(x,myParams,myType)其中,x为要计算的隶属度函数的论域;myPa

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2