模糊控制的Matlab仿真实例复习过程_第1页
模糊控制的Matlab仿真实例复习过程_第2页
模糊控制的Matlab仿真实例复习过程_第3页
模糊控制的Matlab仿真实例复习过程_第4页
模糊控制的Matlab仿真实例复习过程_第5页
已阅读5页,还剩160页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第一页,共165页。用用MATLAB的模糊的模糊(m hu)逻辑逻辑工具箱工具箱(Fuzzy toolbox)实现实现 lMatlab4.2以后的版本中推出的模糊工具箱(Fuzzy Toolbox),为仿真模糊控制系统提供了很大的方便。 l在Simulink环境下对PID控制系统进行建模是非常方便的,而模糊控制系统与PID控制系统的结构基本相同,仅仅(jnjn)是控制器不同。 l对模糊控制系统的建模关键是对模糊控制器的建模。Matlab软件提供了一个模糊推理系统(FIS)编辑器,只要在Matlab命令窗口键入Fuzzy就可进入模糊控制器编辑环境。 第二页,共165页。Matlab模糊逻辑模糊逻

2、辑(lu j)工具箱工具箱仿真仿真l模糊推理系统编辑器(模糊推理系统编辑器(FuzzyFuzzy) l模糊推理系统编辑器用于设计和显示模糊推理模糊推理系统编辑器用于设计和显示模糊推理系统的一些基本信息,如推理系统的名称,输系统的一些基本信息,如推理系统的名称,输入、输出变量的个数与名称,模糊推理系统的入、输出变量的个数与名称,模糊推理系统的类型、解模糊方法类型、解模糊方法(fngf)(fngf)等。其中模糊推理等。其中模糊推理系统可以采用系统可以采用MandaniMandani或或SugeuoSugeuo两种类型,解两种类型,解模糊方法模糊方法(fngf)(fngf)有最大隶属度法、重心法、有

3、最大隶属度法、重心法、加权平均等。加权平均等。l打开模糊推理系统编辑器,在打开模糊推理系统编辑器,在MATLABMATLAB的命令窗的命令窗(command windowcommand window)内键入:)内键入:fuzzy fuzzy 命令,弹命令,弹出模糊推理系统编辑器界面,如下图所示。出模糊推理系统编辑器界面,如下图所示。第三页,共165页。第四页,共165页。多个输入时,在多个输入时,在EditEdit菜单菜单(ci dn)(ci dn)中,选中,选Add Add variable -input,variable -input,加入新的输入加入新的输入input,input,如下图

4、所示如下图所示 选择选择(xunz)inp(xunz)input(ut(选中为红框选中为红框),),在界面右边在界面右边文字输入处键文字输入处键入相应的输入入相应的输入名称,例如名称,例如, ,温温度输入用度输入用 tmp- tmp-input, input, 磁能输磁能输入用入用 mag- mag-inputinput,等。,等。第五页,共165页。l隶属度函数编辑器隶属度函数编辑器(Mfedit)(Mfedit)l该编辑器提供一个友好的人机图形交互环境,用来设计该编辑器提供一个友好的人机图形交互环境,用来设计和修改模糊推理系中各语言变量对应的隶属度函数的相和修改模糊推理系中各语言变量对应的

5、隶属度函数的相关参数,如隶属度函数的形状、范围、论域大小等,系关参数,如隶属度函数的形状、范围、论域大小等,系统提供的隶属度函数有三角、梯形、高斯形、钟形等,统提供的隶属度函数有三角、梯形、高斯形、钟形等,也可用户自行也可用户自行(zxng)(zxng)定义。定义。l双击所选双击所选inputinput,弹出一新界面,在左下,弹出一新界面,在左下RangeRange处和处和Display RangeDisplay Range处处, ,填入取只范围,例如填入取只范围,例如 0 0至至9 9 (代表(代表0 0至至9090)。)。l在右边文字文字输入在右边文字文字输入NameName处,填写隶属函

6、数的名称,例处,填写隶属函数的名称,例如如ltlt或或LT(LT(代表低温代表低温) )。l在在TypeType处选择处选择trimf(trimf(意为:三角形隶属函数曲线,意为:三角形隶属函数曲线,triangle member function),triangle member function),当然也可选其它形状。当然也可选其它形状。 第六页,共165页。在在Params(Params(参数参数) )处,选择三角形涵盖的区间,填写三个值,分别处,选择三角形涵盖的区间,填写三个值,分别为三角形底边为三角形底边(d bin)(d bin)的左端点、中点和右端点在横坐标上的左端点、中点和右端

7、点在横坐标上的值。这些值由设计者确定。的值。这些值由设计者确定。第七页,共165页。用类似的方法设置输出用类似的方法设置输出outputoutput的参数。比如:共有的参数。比如:共有9 9个规则,所以个规则,所以相应地有相应地有9 9个输出隶属函数。默认个输出隶属函数。默认3 3个隶属函数,剩下个隶属函数,剩下6 6个由设计者个由设计者加入加入(jir)(jir)。点击。点击EditEdit菜单,选菜单,选 Add Custom MS- Add Custom MS-继续填入继续填入相应参数即可。相应参数即可。第八页,共165页。l模糊推理规则编辑器Ruleeditl通过隶属度函数编辑器来设计

8、和修改“IF.THEN”形式的模糊控制规则。由该编辑器进行模糊控制规则的设计非常方便,它将输入量各语言变量自动匹配,而设计者只要通过交互式的图形环境选择相应的输出语言变量,这大大简化了规则的设计和修改。另外,还可为每条规则选择权重,以便进行模糊规则的优化。l选Edit菜单,选择Rules, 弹出一新界面Rule Editor. 在底部的选择框内,选择相应的 IFANDTHEN 规则,点击Add rule 键,上部框内将显示相应的规则。本例中用9条左右的规则,依次加入(jir)。如下图所示: 第九页,共165页。第十页,共165页。第十一页,共165页。第十二页,共165页。l上图表示当温度为4

9、5度、磁能为45瓦时,输出(shch)干度为约70个单位。左右拉动界面中的两支红线,拉到欲选的近似值,右边图顶显示相应的干度结果。l上图中选菜单View, 选择Surface,弹出一新界面Surface Viewer,弹出该课题结果的三维图。如下图所示。第十三页,共165页。第十四页,共165页。注意将鼠标箭头放置图内,移动注意将鼠标箭头放置图内,移动(ydng)(ydng)鼠标可鼠标可得到不同角度的视图,如下图所示。得到不同角度的视图,如下图所示。第十五页,共165页。Matlab模糊控制仿真模糊控制仿真(fn zhn)演示例子演示例子l模型sltank.mdl 使用模糊控制器对水箱水位进行

10、控制。l假定(jidng)水箱有一个进水口和一个出水口,可以通过控制一个阀门来控制流入的水量(即水位高度),但是流出的速度取决于出水口的半径(定值)和水箱底部的压力(随水箱中的水位高度变化)。系统有许多非线性特性。l要求设计的目标是一个合适的进水口阀门的控制器,能够根据水箱水位的实时测量结果对进水阀门进行相应控制,使水位满足特定要求(即特定输入信号)。一般情况下,控制器以水位偏差(理想水位和实际水位的差值)及水位变化率作为输入,输出的控制结果是进水阀打开或关闭的速度。第十六页,共165页。第十七页,共165页。l在Matlab中仿真,可以看到出现一个(y )水箱模型的仿真动画窗口。该动画由一个

11、(y )S函数”animtank.m”实现。从动画中,可以观察到实际系统的水位跟随殊荣的要求水位信号变化。l如果对S函数的实现(shxin)感兴趣,可以键入命令open animtank(或edit animtank)来查看” animtank.m”文件第十八页,共165页。l在Simulink编辑窗口左边的模块浏览区可以看到在水箱仿真系统中包括水箱子模型、阀门(f mn)子模型及 PID 控制子模型。直接在浏览区中点击或右键点击它们,并在弹出菜单中选择 look under mask 】 ,可以看到这些模块实现的细节结构,如图 所示。第十九页,共165页。第二十页,共165页。第二十一页,共

12、165页。l这里暂时不讨论具体的系统模型的构造问题,我们可以先在这个已经建立好的系统模型上进行修改,体验模糊逻辑与仿真环境结合使用的优势。l对于仿真模型系统中已经建立的水箱模块、阀门模块以及动画仿真显示(xinsh)模块可以直接使用,这里我们重点讨论与模糊推理系统设计问题相关的模糊系统变量 tank (即 MATLAB 的模糊逻辑推理系统)。在 MATLAB 命令窗口中键入命令 fuzzy tank ,就可以开始对模糊系统 tank 进行编辑了。第二十二页,共165页。l为简单起见,我们直接利用系统(xtng)里已经编辑好的模糊推理系统(xtng),在它的基础上进行修改。这里我们采用与tank

13、 . fis中输入输出变量模糊集合完全相同的集合隶属度函数定义,只是对模糊规则进行一些改动,来学习模糊工具箱与仿真工具的结合运用。对于这个问题,根据经验和直觉很显然可以得到如下的模糊控制规则: lIf (水位误差小)then(阀门大小不变(权重 1 )lIf (水位低) then (阀门迅速打开)(权重 1 ) lIf (水位高) then (阀门迅速关闭)(权重 1 )第二十三页,共165页。l这相当于在原有模糊系统模型上减少两条模糊规则得到的新的模糊推理系统。l改动完成后进行(jnxng)仿真,观察示波器模块,可以得到系统水位变化,如图所示。第二十四页,共165页。第二十五页,共165页。

14、l从上图的仿真控制结果曲线中可以看出上述由三条模糊规则组成(z chn)的模糊控制系统的结果并不理想,因此可以再增加如下两条模糊控制规则:lIf (水位误差小且变化率为负) then (阀门缓慢关闭)(权重 1 ) lIf (水位误差小且变化率为正) then (阀门缓慢打开)(权重 1 ) l系统的输出变化曲线如下图所示。第二十六页,共165页。第二十七页,共165页。l从上图可以看出,在增加了模糊控制规则后,系统的动态特性得到较大改善,不但(bdn)具有较短的响应时间,而且超调量也很小。可以用 Surfview tank 命令来显示模糊控制系统的输出曲面,如图所示。第二十八页,共165页。

15、l在这个例子中,还可以用传统的 PID 控制(kngzh)方法与模糊逻辑推理控制(kngzh)进行比较。在水箱仿真环境主界面中将控制(kngzh)方法选择开关中间的 const 模块的值由由-1 改为 1 ,这时系统将用传统的 PID 控制(kngzh)方法进行控制(kngzh),如图所示。第二十九页,共165页。第三十页,共165页。其他其他(qt)例子例子l模型Shower.mdl淋浴温度调节模糊控制系统(kn zh x tn)仿真; l模型slcp.mdl单级小车倒摆模糊控制系统(kn zh x tn)仿真;l模型 slcp1.mdl变长度倒摆小车模糊控制系统(kn zh x tn)仿真

16、;l模型 slcpp1.mdl定长、变长二倒摆模糊控制系统(kn zh x tn)仿真;l模型slbb.mdl球棒模糊控制系统(kn zh x tn)仿真;l模型sltbu.mdl卡车智能模糊控制倒车系统仿真;l模型sltank2.mdl 用子系统封装的水箱控制仿真。第三十一页,共165页。l学习 MATLAB 仿真工具的一个快速有效的方法就是学习示例模型,通过看懂这些模型和模块的功能以及搭建过程,可以很快熟悉和掌握如何使用 MATLAB 仿真工具来设计和搭建自己独特的模型。l下面以模型Shower.mdl的结构作一个介绍,方便读者更好地理解和学习这个例子。l模型Shower.mdl是一个淋浴

17、温度及水量调节的模糊控制系统的仿真,该模糊控制器的输入变量分别是水流量和水温,输出变量分别是对热水阀和冷水(lngshu)阀的控制方式。该问题是一个典型的经验查表法控制示例,是 Mamdani型系统,其模糊控制矩阵存为磁盘文件shower.fis。第三十二页,共165页。第三十三页,共165页。l这个仿真模型的输出是用示波器来表示(biosh)的,如图所示。通过示波器上的图形我们可以清楚地看到温度和水流量跟踪目标要求的性能。第三十四页,共165页。水温示波器水温示波器第三十五页,共165页。水流水流(shuli)示波器示波器第三十六页,共165页。水温偏差区间模糊水温偏差区间模糊(m hu)划

18、分及隶属度函数划分及隶属度函数第三十七页,共165页。水流量偏差水流量偏差(pinch)区间模糊划分及隶属度函数区间模糊划分及隶属度函数第三十八页,共165页。输出对冷水阀控制策略的模糊化分及隶属输出对冷水阀控制策略的模糊化分及隶属(lsh)度函数度函数第三十九页,共165页。输出对热水输出对热水(r shu)阀控制策略的模糊化分及隶属度函数阀控制策略的模糊化分及隶属度函数第四十页,共165页。其中输入变量水温与流速的偏差与输出热水阀、冷水阀的控制方法的经验(jngyn)表格如表1及表2所示。第四十一页,共165页。根据这两个(lin )输出控制表,可以产生九条模糊控制规则,如下:第四十二页,

19、共165页。系统(xtng)的模糊推理运算相关定义如下:其余例子,请各位同学自行(zxng)打开研究学习。第四十三页,共165页。通过通过Maltab命令(程序命令(程序(chngx))创建和计算模糊逻辑)创建和计算模糊逻辑系统系统l前面介绍过如何使用图形化工具建立模糊逻辑系统,我们也可以完全用命令行或程序段的方式来实现。l小费问题:l实际生活中有着许多模糊的概念和逻辑方式,“给小费”问题就是一个可以用模糊逻辑来分析的经典(jngdin)的例子。下图表示的是一个关于饭店的服务质量和顾客所给小费之间的关系图,左边表示饭店的服务质量,作为输入;右边表示顾客所给的小费,作为输出,两者是有一定逻辑关系

20、的。第四十四页,共165页。l图中的黑箱表示一种映射规则,将服务质量映射到小费。这个黑箱就是这一逻辑关系的核心部分,它可以理解为各种不同的逻辑,例如模糊逻辑、线性逻辑、专家系统、神经网络、微分方程、多维表格查询(chxn)或者随机选择器等。在上述问题中,模糊逻辑被证明是最佳的。第四十五页,共165页。l在国外饭店就餐后一般需要付给侍者小费,这是国外模糊系统的教材中一个非常经典的例子。下面我们通过小费问题来说明模糊逻辑的作用。l“小费”问题的核心(hxn)就是:多少小费是“合适”的?我们先把问题简化,假定用从 0 10 的数字代表服务的质量(10 表示非常好,0 表示非常差),小费应该给多少?这

21、里还考虑到问题的背景 在美国平均的小费是餐费15,但具体多少随服务质量而变。第四十六页,共165页。l首先考虑最简单(jindn)的情况,顾客总是多给总账单的15作为小费:l用 MATLAB 语句绘图(hu t),如下图所示。第四十七页,共165页。虽然是简单虽然是简单(jindn)的线性关系,但这样的线性关系,但这样的结果已经基本能够的结果已经基本能够反映服务质量对小费反映服务质量对小费的影响效果了,如果的影响效果了,如果考虑到顾客所给的小考虑到顾客所给的小费也应当能反映食物费也应当能反映食物的质量,那么问题就的质量,那么问题就在原来的基础上扩展在原来的基础上扩展为:给定两个从为:给定两个从

22、 0 到到 10 的数字分别代表服的数字分别代表服务和食物的质量(务和食物的质量( 10 表示非常好,表示非常好, 0 表示表示非常差),这时小费非常差),这时小费与它们之间的关系又与它们之间的关系又应当如何反映呢?应当如何反映呢?第四十八页,共165页。假设假设(jish)是二元线性关系是二元线性关系用下列用下列(xili) MATLAB 语句可绘出下图语句可绘出下图 。第四十九页,共165页。第五十页,共165页。可以看到,如果不考虑服务质量因素比食物质量因素对于小可以看到,如果不考虑服务质量因素比食物质量因素对于小费的支付占有更大的比重,上面的关系图形已经能够反映一费的支付占有更大的比重

23、,上面的关系图形已经能够反映一些实际些实际(shj)(shj)的情况了。假如希望服务质量占小费的的情况了。假如希望服务质量占小费的 80 80 % , % , 而食物仅占而食物仅占 20 20 。这里可以设定权重因子:。这里可以设定权重因子:用下列用下列(xili) MATLAB (xili) MATLAB 语句可绘语句可绘出下图出下图第五十一页,共165页。第五十二页,共165页。第五十三页,共165页。这样的结果与实际情况还是有些不符。通常顾客都是给这样的结果与实际情况还是有些不符。通常顾客都是给1515的小费,只的小费,只有服务特别好或特别不好的时候才有改变,也就是说,希望在图形中间有服

24、务特别好或特别不好的时候才有改变,也就是说,希望在图形中间部分的响应平坦些,而在两端(服务好或坏)有凸起或凹陷部分的响应平坦些,而在两端(服务好或坏)有凸起或凹陷(oxin)(oxin)。这时服务与小费是分段线性的关系。例如,用下面。这时服务与小费是分段线性的关系。例如,用下面 MATLAB MATLAB 语句绘出语句绘出的下图的情况。的下图的情况。第五十四页,共165页。上图没有考虑食物质量的影响上图没有考虑食物质量的影响(yngxing)(yngxing),我们加入这个,我们加入这个因素后,扩展为三维的,就有如下的结果:因素后,扩展为三维的,就有如下的结果:用下列用下列(xili) MAT

25、LAB (xili) MATLAB 语句语句可绘出图可绘出图第五十五页,共165页。第五十六页,共165页。第五十七页,共165页。第五十八页,共165页。l现在的结果比较好了,可是函数看起来有点复杂,而且程序也越来越长,将来不便于修改和增加新的规则及排除检查错误。对于不清楚设计过程的人来说,设计人员的思维是不容易被理解的。l模糊系统可以很好地结合(jih)人类的自然语言。对于小费问题,现在只考虑关键因素,把问题简化,得出下面三条规则:l 当服务很差的时候,小费比较少。l 当服务比较好的时候,小费中等。 l 当服务非常好的时候,小费比较高。第五十九页,共165页。l如果我们把食物对小费(xio

26、fi)的影响考虑进来,可以增加下面两条规则: l 当食物很差时,小费(xiofi)比较少。 l 当食物很好时,小费(xiofi)比较高。l上面五条规则不分先后顺序,但是各条规则的重要性可以是不同的,在没有特殊要求的情况下,可以认为这些规则的重要性(权重)是相同的。第六十页,共165页。l可以把服务和食物的质量综合起来,总结为如下三条规则: l 当服务差或食物差的时候,小费少。 l 当服务好的时候,小费中等。l 当服务很好或食物好的时候,小费高。l当我们已经(y jing)得到上述三条模糊逻辑系统的推理规则后,只要再给出其中的模糊变量(例如“服务差”、“服务好”、“服务非常好”等概念)的定义和表

27、示,就建立了该问题的一个完整的模糊推理系统的方案。这个系统的核心就是上述三条规则以及相关模糊变量的定义。l使用Matlab图形化工具,可以方便地建立起模糊控制系统。第六十一页,共165页。第六十二页,共165页。第六十三页,共165页。第六十四页,共165页。第六十五页,共165页。第六十六页,共165页。第六十七页,共165页。用命令行函数实现用命令行函数实现(shxin)模糊模糊逻辑系统逻辑系统l前面主要介绍了 MATLAB 图形化工具的使用, MATLAB 同样也提供了一些函数命令来实现模糊逻辑系统。l这些函数不仅能完全实现图形化方式所提供的功能,同时还可以实现图形化方式所难以实现的功能

28、。l特别是对于(duy)那些比较复杂的模糊推理系统,在输入输出变量、隶属度函数、模糊规则数目比较多的时候,如果要在图形化界面中人工输入,效率就很低。第六十八页,共165页。l如果通过命令行方式的编程,就可以让计算机完成许多重复性的输入工作,大大减少了工作量。l还有其他一些情况,如输入输出变量、隶属度函数、模糊规则等是由程序计算得到的,这时如果采用命令行的编程会更加简单方便。lMATLAB 模糊工具箱的图形化工具与命令行函数是统一的,我们可以将它们结合使用。l无论是命令行方式或是图形化方式创建的系统,其格式都是一样的。因此,如果根据需要同时使用两种方法来编辑一个模糊逻辑系统,往往会达到(d do

29、)更好的效果。第六十九页,共165页。命令行函数使用命令行函数使用(shyng)示例入示例入门门小费问题是模糊(m hu)逻辑工具箱中提供的一个模糊(m hu)推理系统的示例。在 MATLAB 中一个模糊(m hu)逻辑推理系统被当作是一种 FIS 结构。例如,我们在命令行工作环境键入命令:结果(ji gu):第七十页,共165页。该命令加载小费问题模糊推理系统的数据文件到当前的工作(gngzu)空间中,并存为变量 a , a 是一种 FIS 结构的变量。在上面的结果之列中,冒号左边的标号表示 MATLAB 的 FIS 结构中的与 tipper . fis 相关的结构成员变量名,可以通过“结构

30、名成员名”的方式来访问这些结构成员变量。例如键入命令:第七十一页,共165页。其实在 MATLAB 里,模糊推理系统是以特定(tdng)的语法用文本方式来存储的。如果键入命令:type tipper.fis就可以看到这个用 ASCll 代码存储的模糊系统。函数 readfis 得到了这个数据文件中的所有属性,并把它们存入一个结构(也可以看作是一个广义的矩阵)。上面的例子中通过语句 a = readfis ( tipper . fis ) 变量 a 被赋予(fy)一个 FIS ( Fuzzy Inference system )结构变量矩阵。这个矩阵主要由 ASCll 代码构成,通常表现为数字的

31、排列,这样就不便于阅读,因此需要特定的函数来显示系统属性。函数 getfis ( a )返回结果是关于模糊推理系统的一般属性,比如说系统名称,输入、输出变量的名称等等。例如键入命令: getfis ( a )第七十二页,共165页。结果(ji gu):第七十三页,共165页。从上面的结果我们可以看到,有些属性并不是结构变量 a 中所包含(bohn)的。例如键入:系统返回(fnhu)如下错误信息:但是,如果(rgu)键入:系统返回结果:getfis 函数还有若干种使用方法,可以键入右边命令试一试,看看结果。第七十四页,共165页。前述功能同样可以通过“结构名成员名”的方式来访问,只是具体(jt)

32、的访问方式与成员的类型相关。例如,要得到上述 getfis ( a ,Inlabels )命令的结果,可以采用如下的方式:返回(fnhu)结果:setfis是和getfis相对应的函数,它允许改变一个 FIS系统的特性。如果想将上述系统的名字 tipper 改为 gratuity ,可以运行(ynxng)命令:第七十五页,共165页。返回(fnhu)结果:在结果中可以看到 name 变为 gratuity ,同样上面的操作也可以用命令“ a .name = gratuity ” ,来实现。如果想要知道更详细的内容,通过函数 showfis ( a )就可以得到这个 FIS 矩阵的详细属性。这个

33、函数最主要是用来进行(jnxng)程序调试,但同时它也能分行显示所有记录在 FIS 矩阵的信息。第七十六页,共165页。在这里结构变量 a 代表一个小费问题的模糊推理系统,前面提到的图形化编辑工具都可以用来对它进行相关操作。下面这些函数命令将打开相应(xingyng)的小费系统图形化工具界面。如果 a 是一个 Sugeno 型的模糊系统,命令 anfisedit ( a )将打开 ANFIS (模糊神经网络系统)图形编辑(binj)界面。第七十七页,共165页。通过通过 MATLAB 命令(程序命令(程序(chngx))创建和计算模糊逻辑)创建和计算模糊逻辑系统系统l前面介绍过如何用图形化工具

34、建立模糊逻辑系统,这些也可以(ky)完全用命令行或程序段的方式实现。l仍然使用小费问题的例子作为范例,在这个例子中将用到 newfis 、 addvar 、 addmf 、 addrde 等几个函数。l在用命令行建立模糊逻辑系统的过程中,往往最令人迷惑的就是模糊规则在系统中的简述表达方式。第七十八页,共165页。规则是通过函数 addrule 来加入的,每一个输入或输出的变量都有一个索引 ( index )值,同样每一个隶属(lsh)度函数也有一个 index 值,输入规则的函数就是使用这些索引来创建相应的模糊规则,在 MATLAB 中模糊规则一般具有如下形式:模糊规则按照下面的逻辑被转化成一

35、种数据结构(或矩阵)的形式(xngsh)来表示:如果系统由 m 个输入、 n 个输出变量和 k 条模糊规则组成,则该规则结构是一个( m + n + 2 , k )的矩阵。该矩阵的每个行向量代表一条模糊规则(guz),这个行向量的前 m 个数表示前 m 个输入变量对应的隶属度函数的索引值第七十九页,共165页。例如,第一列表示第一个输入变量(binling)在各条规则的相应的隶属度函数的索引,第二列表示第二个输入变量(binling)相应的隶属度函数的索引。接着的 n 列表示 n 个输出变量对应的隶属度函数的索引值。第 m + n + 1 列的数分别表示各条规则的权重(qun zhn)(一般为

36、 1 ) ,第 m + n + 2 列表示各条规则之间的相互连接方式( and = l , or = 2 )。这样,上面这条规则用MATLAB的结构表示为一个行向量。如果输入或是输出变量加了否定修饰词not的话,则只需在相应的隶属度函数索引值前键入一个负号。例如(lr),对于规则:第八十页,共165页。其对应的行向量变为:-1 3 2 0.5 2,依次解释(jish)如下:-1表示not MF1;3表示MF3;2表示MF2;0.5表示weight=0.5;2表示or。下面是用“结构名成员名”表达方式编写的创建小费模糊推理系统(xtng) tipper. fis的命令行程序示例。例 用命令行方式

37、建立小费(xiofi)推理系统模糊模型。第八十一页,共165页。第八十二页,共165页。这样的程序相当繁琐,如果用前面所提到(t do)的规则结构变量以及相应的一些 MATLAB函数来实现会简单得多,例如:第八十三页,共165页。第八十四页,共165页。使用模糊逻辑推理系统对于给定输入得到相应的输出结果才是实际使用中最终的目的(md),这个过程在 MATLAB 里可以通过函数 evalfis 来完成。例如,下面的命令行用来计算小费推理系统对于输入变量为 1 , 2 的输出结果:第八十五页,共165页。MATLAB 的的 FIS 结构结构(jigu)和和存储存储l在 MATLAB 中模糊推理系统

38、是以一种 FIS 的结构(jigu)类型来表示和存储的。无论是图形化的工具或是像 getfis 和 setfis 这样的函数,都可以对这种结构(jigu)进行直接的操作,同样也可以用“结构(jigu)名成员名” ( “ Structure . field ” )的语法方式来访问。l FIS 的结构(jigu)组成很简单,是将 MATLAB 模糊逻辑的各个函数统一起来使用的基础。l FIS 结构(jigu)可以看作是一种层次结构(jigu),如下图所示。第八十六页,共165页。模糊推理系统模糊推理系统 FIS FIS 结构结构(jigu)(jigu)层次层次第八十七页,共165页。可以用 Sho

39、wfis 函数(hnsh)来生成关于 FIS 结构变量的详细信息列表。例如键入除了图形化环境, MATLAB 的命令行方式(fngsh)提供了下列与 FIS 结构的创建和编辑相关的函数: getfis 、 setfis 、 showfis 、 addvar 、 addmf 、 addrule 、 rmvar 及 rnmlf 。关于这些函数的使用方法将在后面的内容里介绍。第八十八页,共165页。* . fis 文件格式及存储文件格式及存储(cn ch)l在 MATLAB 中模糊推理系统使用一种特定格式的文本文件来存储,通常以后缀 fis 命名。工具(gngj)箱提供了 readfis 和 wri

40、tefis 两个函数分别来读写这种文件。l FIS 文件是以文本方式存储,也可以不用图形工具(gngj)或是相关函数而直接用文本编辑器来编辑它。但是这样往往比较复杂而且容易出错,因为改动了一个参数可能需要在文件的许多地方进行考虑和修改。第八十九页,共165页。l例如,如果删除了一条隶属度函数,那么所有与该隶属度函数相关的规则就得删除,而且其他隶属度函数的序号也会发生改变,其他规则也要做相应改动。l在 FIS 文件(wnjin)中,模糊规则是以 index 方式表示的。直接用文本编辑器或是用命令 type tipper.fis (或 open tipper.fis, edit tipper.fi

41、s )都可以查看到小费问题模糊推理系统的文件(wnjin) tipper . fis ,例如:第九十页,共165页。第九十一页,共165页。前面提到的一些函数,例如 readfis 、 getfis 、 setfis 、 showfis 等,都是模糊工具箱提供(tgng)的命令行函数,直接调用这些函数就可以实现对模糊推理系统进行建立、修改以及存储等操作,下面将详细介绍常用的命令行函数。第九十二页,共165页。说明:在参数列表中, a 为模糊推理系统对应的矩阵变量名, varType 用于指定语言变量的类型为字符型(如input 或 output ) ; varName 也为字符型变量,用于指定

42、语言变量的名; varBoundS 用于指定语言变量的论域范围。对于添加到同一个模糊推理系统的语言变量,将按照添加的先后顺序自动编号,编号从 1 开始,逐渐递增。对于分属于输入(shr)与输出的不同语言变量则独立地分别编号。第九十三页,共165页。第九十四页,共165页。说明:当一个模糊语言变量正在被当前的模糊规则集使用时,试图删除该变量会导致其他相关规则被删除。系统出现(chxin)询问对话框,问是否确认删除命令。在一个模糊语言变量被删除后,Matlab模糊逻辑工具箱将会自动地对模糊规则集进行修改以保证一致性。从varType表示语言变量的类型,为字符型,如input 或 output ;

43、varIndex表示语言变量的编号。第九十五页,共165页。第九十六页,共165页。第九十七页,共165页。说明:隶属度函数只能为模糊推理系统(xtng)中已经存在的某一语言变量的语言值添加隶属度函数,而不能添加到一个尚不存在的语言变量中。对于每个语言变量的隶属度函数按照该函数被添加的顺序加以编号,第一个添加的隶属度函数被编为1号,此后依次递增编号。函数必须指定输入以下六个参数:第九十八页,共165页。第九十九页,共165页。例 加入(jir)三条高斯型隶属度函数,如图所示。第一百页,共165页。说明:当一个隶属度函数正在被当前模糊推理规则(guz)使用时,如果删除该隶属度函数将会删除涉及它的

44、模糊规则(guz),系统会出现要求确认消息框,如果确认删除将自动删除相关的一些规则(guz)。各参数的含义说明如下:第一百零一页,共165页。第一百零二页,共165页。第一百零三页,共165页。例 删除(shnch)隶属度函数结果。第一百零四页,共165页。第一百零五页,共165页。例 删除被模糊规则使用(shyng)的隶属度函数。第一百零六页,共165页。第一百零七页,共165页。FIS 系统相关系统相关(xinggun)操作操作第一百零八页,共165页。说明:该函数用于创建并返回一个新的模糊推理系统,模糊推理系统的特性可由函数的参数指定,其参数个数可达 7 个。如果不指定相应参数则取为缺省

45、值。参数的含义(hny)及类型说明如下:第一百零九页,共165页。例 使用缺省参数(cnsh)的 newfis 函数创建 mamdani 和 sugeno 型模糊系统。第一百一十页,共165页。第一百一十一页,共165页。说明:打开一个由 filename 指定的模糊推理系统的数据文件(wnjin)( . fis ) ,并将其加载到当前的工作空间( workspace )中的变量 FISMAT 中。当未指定文件(wnjin)名时, MATLAB 将会打开一个文件(wnjin)对话窗口,提示用户指定某一 fis 文件(wnjin)。第一百一十二页,共165页。第一百一十三页,共165页。说明:使

46、用该函数是获得模糊推理系统及其对应矩阵(j zhn)的所有属性的基本方法。也可以用“结构名成员名” ( Structure . field )的语法方式来替代这个函数。在参数列表中, a 为模糊推理系统结构在内存中对应的矩阵(j zhn)变量,必须已经存在,这是必须指定的参数,后面的其他参数则可以省略。仅有参数 a 时,函数将列出模糊推理系统的所有属性。第一百一十四页,共165页。第一百一十五页,共165页。说明: fismat 为 MATLAB 工作环境内存(ni cn)中的模糊推理系统结构的矩阵变量。例 以分行的形式显示模糊推理系统(xtng) tipperfis 矩阵的所有属性。第一百一

47、十六页,共165页。第一百一十七页,共165页。第一百一十八页,共165页。第一百一十九页,共165页。第一百二十页,共165页。说明(shumng):该函数的参数个数可以有 3 、 5 、 7 三种情况。当参数个数为 3 时,用于设定模糊推理系统的全局属性,包括:第一百二十一页,共165页。当参数个数为 5 个时,用于设定模糊推理系统矩阵某一个语言变量(binling)的属性,包括: name (变量(binling)名称)和 bounds (论域范围)。当参数个数为 7 时,用于设定一个语言变量(binling)的某一隶属度函数的属性,包括 name (隶属度函数名称)、 type (类型

48、)和 params (参数)。第一百二十二页,共165页。系统系统(xtng)图形显示函数图形显示函数l模糊逻辑工具箱中提供了三个函数: plotfis 、 plotmf 和 gensurf ,用于模糊推理系统的图形显示(xinsh)。下面详细介绍这三个函数。第一百二十三页,共165页。第一百二十四页,共165页。第一百二十五页,共165页。模糊逻辑工具箱命令模糊逻辑工具箱命令(mng lng)函数应用函数应用l前一节简要介绍了用命令行方式来实现模糊(m hu)逻辑推理。运用命令行方式工作需要掌握相应的一些工具函数的使用,下面就详细介绍这些工具函数的使用。第一百二十六页,共165页。模糊逻辑工

49、具基本模糊逻辑工具基本(jbn)函数分函数分类表类表l模糊逻辑工具基本函数包括图形工具类函数、隶属度函数类函数、 FIS 结构的相关类操作函数、 Sugeno 型模糊系统应用(yngyng)函数、仿真模块库相关操作函数以及演示范例程序函数等。第一百二十七页,共165页。1 图形工具图形工具(gngj)类函数类函数第一百二十八页,共165页。2 隶属隶属(lsh)度函数类函数度函数类函数第一百二十九页,共165页。3 . FIS 结构结构(jigu)的相关类操的相关类操作函数作函数第一百三十页,共165页。第一百三十一页,共165页。4 仿真模块库相关仿真模块库相关(xinggun)操作函数操作

50、函数第一百三十二页,共165页。5 演示范例演示范例(fnl)程序函数程序函数第一百三十三页,共165页。MATLAB 工具箱内置隶属度函数工具箱内置隶属度函数(hnsh)应用例解应用例解l在 MATLAB 模糊逻辑工具箱中支持的隶属度函数类型有如下几种:高斯型、三角形、梯形、钟型、 Sigmo 记型、 n 型以及 Z 型。l利用工具箱中提供的函数可以建立和计算上述(shngsh)各种类型隶属度函数。l还可以自己定义隶属度函数用于调用。l下面介绍工具箱中内含的隶属度函数。第一百三十四页,共165页。说明:参数 x 用于指定变量的论域范围,参数 a 、 b 和 c 指定三角形函数的形状,要求(y

51、oqi) a b c 。该函数在 b 点处取最大值 1 , a 、 c 点为 0 (如果要获得顶点小于 1的三角形函数可以使用 trapmf),函数返回该隶属度函数对应于坐标矩阵 x 的函数值矩阵。其表达式如下:第一百三十五页,共165页。例 建立三角形隶属(lsh)度函数并绘制曲线,如图所示第一百三十六页,共165页。例 改变参数(cnsh)曲线对比,如图所示。第一百三十七页,共165页。说明:参数 x 用于指定变量的论域范围,参数 a 、 b 、 c 和 d 用于指定梯形(txng)隶属度函数的形状,要求 a = b 且 c = c 函数退化为三角形。函数返回该隶属度函数对应于坐标矩阵 x

52、 的函数值矩阵。其对应的表达式如下:第一百三十八页,共165页。例 建立并绘制(huzh)梯形隶属度函数曲线,如图所示。第一百三十九页,共165页。例 改变(gibin)参的数曲线对比,如图所示。第一百四十页,共165页。说明:高斯(o s)型函数的形状由两个参数决定: sig和 c ,其中 c 决定了函数的中心点, sig决定了函数曲线的宽度。参数 x 是用于指定变量论域的矩阵,函数返回该隶属度函数对应于坐标矩阵 x 的函数值矩阵。高斯(o s)函数的表达式如下:第一百四十一页,共165页。例 建立(jinl)高斯型隶属度函数,如图所示。第一百四十二页,共165页。例 不同(b tn)参数对比,如图所示。第一百四十三页,共165页。说明:参数(cnsh) x 是用于指定变量论域的矩阵,函数返回该隶属度函数对应于坐标矩阵 x 的函数值。矩阵双边高斯型函数的曲线由两个中心点相同的高斯型函数的左、右半边曲线组合而成,其左右两段表达式如下:第一百四十四页,共165页。参数 sig1、c1、sig2、c2分别对应左、右半边(bnbin)高斯函数的宽度与中心点,当 c1 = c2时,双边高斯函数在( cl , c2 )段达到最大值 1,否则最大值小于 1 。例 建立(jinl)双边高斯型隶属度函数,如图所示。第一百四十五页,共165页。例 不同参数(cnsh)对比,如图

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论