智能控制讲义第六章Matlab在模糊控制中的应用_第1页
智能控制讲义第六章Matlab在模糊控制中的应用_第2页
智能控制讲义第六章Matlab在模糊控制中的应用_第3页
智能控制讲义第六章Matlab在模糊控制中的应用_第4页
智能控制讲义第六章Matlab在模糊控制中的应用_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

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

文档简介

1、第6章 Matlab在模糊控制中的应用Matlab(是“Matrix Laboratory”的缩写)是由美国Mathworks公司于1984年正式推出的一套高性能的科学计算软件。针对模糊逻辑尤其是模糊控制的迅速推广应用,MathWork公司在其MATLAB版中添加了Fuzzy Logic工具箱。该工具箱由长期从事模糊逻辑和模糊控制研究与开发工作的有关专家和技术人员编制。MATLAB Fuzzy Logic 工具箱以其功能强大和方便易用的特点得到了用户的广泛欢迎。模糊逻辑的创始人Zadeh教授称赞该工具箱“在各方面都给人以深刻的印象,使模糊逻辑成为智能系统的概念与设计的有效工具”。在本章中,以M

2、atlab6.5为开发环境,基于模糊控制工具箱(Fuzzy Logic Toolbox),通过一些简单直观的例子,对模糊控制系统进行分析、设计与研究,并通过对部分例子的详细说明,使读者能够初步掌握模糊逻辑工具箱的使用。6.1 模糊逻辑工具箱函数一、模糊逻辑工具箱函数简介Matlab的模糊逻辑工具箱函数为模糊控制系统的分析与设计提供了许多工具箱函数,它们可按主题分为如下几大类:GUI(图形用户界面)工具、隶属度函数、FIS(模糊推理系统)数据结构管理、先进技术、Simulink仿真模块、模糊系统演示程序、其它函数。以函数名称与对应的功能格式分别用表6-16-7表示。表6-1 GUI(图形用户界面

3、)工具 函 数功 能 函 数功 能anfiseditfuzzymfedit打开ANFIS编辑器的GUI调用基本的FIS编辑器隶属度函数编辑器ruleeditruleviewsurfview规则编辑器和解析器规则观察器和模糊推理方框图输出曲面观察器表6-2 隶属度函数 函 数 功 能 函 数 功 能dsigmfgauss2mfgaussmfgbellmfpimf 由两个Sigmoid型隶属度函数之差构成的隶属度函数 联合高斯型隶属度函数 高斯型隶属度函数 广义钟型隶属度函数 型隶属度函数psigmfsigmfsmftrapmftrimfzmf 由两个Sigmoid型隶属度函数的积构成的隶属度函数

4、 Sigmoid型隶属度函数 S 型隶属度函数 梯型隶属度函数 三角形型隶属度函数 Z型隶属度函数表6-3 先进技术 函 数功 能 函 数功 能anfisfcmgenfis1Sugeno型FIS的训练程序模糊C均值聚类不使用数据聚类的方法从数据中生成FIS结构genfis2subclust使用减法聚类的方法从数据中生成FIS结构用减法聚类的方法寻找聚类中心表6-4 FIS数据结构管理 函 数 功 能 函 数 功 能addmfaddruleaddvardefuzzevalfisevalmfgensurfgetfismf2mfnewfis1 在FIS中添加隶属度函数 在FIS中添加规则 在FIS中

5、添加变量 对隶属度函数进行反模糊化 完成模糊推理计算 通用隶属度函数的计算 生成FIS输出曲面 获取模糊系统的特性 在两个隶属度函数之间进行参数转换 建立新的FISparsruleplotfispiotmfreadfisrmmfrevarsetfisshowfisshoerulewritefis模糊规则解析绘图表示FIS绘制给定变量的所有隶属度函数从磁盘中装入FIS从FIS中删除某一变量的某一隶属度函数从FIS中删除某一变量设置模糊系统的属性以分行的形式显示FIS结构的所有属性显示FIS的规则将FIS保存到磁盘中表6-5 Simulink仿真模块 函 数功 能 函 数功 能fuzblockSi

6、mulink模糊逻辑控制器库sffis用于Simulink的模糊推理S-函数表6-6 其它函数 函 数功 能 函 数功 能convertfisfindclusterfuzarithFIS结构的版本变换模糊C均值和减法聚类交换GUI完成模糊算术运算mam2sugfuzdemos将Mamdanni型的FIS变换成Sugeno型的FIS 模糊逻辑工具箱演示程序列表表6-7 模糊系统演示程序 函 数功 能 函 数功 能defuzzdmfcdemogasdemojugglerinvkineirsfcm去模糊方法FCM聚类方法演示(二维)使用减法聚类的ANFIS演示魔球演示机械臂的倒置FCM聚类演示(四维

7、)noiedmslbbslcpsltanksltankrulesltbu自适应噪声消除棒球控制倒立摆控制水位控制带观测器的水位控制卡车倒车控制下面主要介绍GUI(图形用户界面)工具、隶属度函数、FIS数据结构管理这三类模糊逻辑工具箱的一些函数。二、有关GUI(图形用户界面)的工具箱函数 1. anfisedit 功能:打开ANFIS编辑器的GUI。 格式:anfisedit(a) anfisedit(a) anfisedit 界面:anfisedit函数打开ANFIS编辑器的GUI如图6-1所示。图6-1 ANFIS编辑器的GUI 说明:利用anfisedit函数打开ANFIS编辑器的GUI,

8、从中可装入数据集合并训练ANFIS。利用anfisedit('a')可从磁盘中装入名为a.fis的FIS结构文件,并打开ANFIS编辑器的GUI。利用anfisedit(a)可按同样方式打开FIS结构变量a(只是此时的a保存在工作空间中)。 菜单项:(1)File菜单下各子菜单 NEW FIS:建立新的FIS系统,可选择为Mamdani型的或者是Sugeno型的FIS系统。此时默认的文件名为Untitled。Import from workspace:从工作空间中装入制定的FIS结构变量。Import from disk:从磁盘中将指定的 .fis文件装入系统。Export t

9、o workspace:将系统保存到工作空间指定的FIS结构变量中。Export to disk:将当前系统以自己指定的命名保存到磁盘中。Print:打印指定的系统内容。Close:关闭GUI窗口。(2)Edit菜单项下各子菜单 Undo:撤销最近的操作。 FIS properties:打开FIS编辑器。 Membership functions:打开隶属度函数编辑器。 Rules:打开规则编辑器。(3)View菜单下各子菜单 Rules:打开规则编辑器。 Surface:打开曲面观测器。 2. fuzzy 功能:调用基本的FIS编辑器。 格式:fuzzy fuzzy(fismat) 界面:f

10、uzzy函数打开FIS编辑器的GUI如图6-2所示。 图6-2 基本的FIS编辑器说明:FIS编辑器可让用户方便的创建或修改FIS(模糊推理系统)的高级特性,如输入、输出变量的个数、反模糊化方法等。FIS编辑器是FIS的高级显示,它允许用户调用各种其他的编辑器来进行FIS操作,这种接口为访问更高级的编辑器提供了方便。FIS编辑器主要包括如下几大部分:图表:包括输入、输出和中心模糊规则处理器三大部分。点击输入、输出变量框时所选框为当前变量,当前变量所对应的框为一个红色加亮的框,此时可在相应的Name文本编辑栏中对变量进行命名或对变两名进行修改。还可以通过Edit菜单下的Add Variable来

11、增加输入或输出变量,对于所选得当前变量,可以用键盘上的Delete键直接删除,也可以用Edit菜单下的Remove Selected Variable进行删除。双击其中的1个变量,可进入隶属度函数编辑器。双击模糊规则处理器(输入、输出变量框之间的那个方框)可进入规则编辑器。当规则框中没有规则时,输入、输出变量框与规则处理器框之间相连的线为虚线,有规则后变为实线。推理方法下拉式菜单由5个下拉式菜单可用于改变模糊推理过程的5种基本推理方法:(1) And method(与方法):可为其选择min(最小)、prod(乘积)或Custom(自定义)运算。(2) Or method(或方法):可以选择m

12、ax(最大)、probor(概率方法)或Custom运算。(3)Implication(蕴含):可以选择min、prod或Custom运算,此方法不适应于Sugeno型的模糊推理。(4)Aggregation(集结):可以选择max、sum、probor或Custom运算,此方法不适应于Sugeno型的模糊推理。(5)Defuzzication(反模糊化):对Mamdani型模糊推理,可以选择centroid(区域重心法)、bisector(区域等分法)、mom(极大平均法)、som(极大最小法)、lom(极大最大法)或Custom;对Sugeno型的模糊推理,可以选择wtaver(加权平均)

13、或stsum(加权求和)。 菜单项: (1) File菜单下的子菜单:与ANFIS编辑器中File菜单相同. (2) Edit菜单下的子菜单: Undo:撤销最近的操作。 Add Input Variable:在当前系统中增加1个输入变量。 Add Output Variable:在当前系统中增加1个输出变量。 Remove Selected Variable:删除选中的变量。 Membership functions:打开隶属度函数编辑器。 Rules:打开规则编辑器。 3. mfedit 功能:隶属度函数编辑器。 格式:mfedit mfedit('a') mfedit(a

14、)界面:mfedit函数打开MF编辑器的GUI如图6-3所示。图6-3 隶属度函数编辑器说明:mfedit可用于打开隶属度函数编辑器;mfedit(a)可打开隶属度函数编辑器,其中包含文件a.fis的隶属度函数,通过编辑器可对其进行修改;mfedit(a)可打开保存在工作空间变量a中的FIS结构。对于每个隶属度函数,我们可修改其名称、类型及其参数。在隶属度函数编辑器中有11种内部的隶属度函数可供选择,当然也可以建立用户自定义的隶属度函数。隶属度函数编辑器主要包括以下内容:图表:在窗口左上角的FIS Variables标题下选择变量图标,此时在图形区域显示出相应的隶属度函数,点击图形区域中的曲线

15、可选择隶属度函数。隶属度函数种类下拉式菜单:右下角组合框中Type标签的右面有一个下拉式菜单,其中有11种内部的隶属度函数可供选择。系统也提供了安装用户自定义隶属度函数的选项。菜单项:(1)File 菜单下的子菜单:与ANFIS编辑器中File菜单相同。(2)Edit菜单下的子菜单: Undo:撤销最近的操作。 Add Mfs:在当前变量中添加隶属度函数。 Add Custom Mfs:在当前变量中添加自定义的隶属度函数。 Remove Selected Mf:删除选中的隶属度函数。 Remove All Mfs:删除当前变量的所有隶属度函数。 FIS Prolperties:打开FIS编辑器

16、。 Rules:打开规则编辑器。 (3)View菜单下的子菜单:与ANFIS编辑器中的View菜单项相同。 4. ruleedit 功能:规则编辑器和解析器。 格式:ruleedit(a) ruleedit(a) 界面:ruleedit函数打开规则编辑器的GUI如图6-4所示。图6-4 规则编辑器和解析器说明:利用ruleedit(a)可打开规则编辑器,从中可以查看或修改文件a.fis所对应的FIS结构中的规则。Ruleedit(a)格式可用来打开在工作空间中已存在的名为a的FIS结构所对应的规则编辑器。利用规则编辑器建立规则,首先应定义FIS使用的所有输入和输出变量,然后利用输入和输出变量的

17、列表框和复选框进行选择,最后选择相应的联结方式及权值。菜单项: (1) File菜单下的子菜单与ANFIS编辑器中File菜单相同。 (2) Edit菜单下的子菜单 Undo: 撤销最近的操作。 FIS Properties: 打开FIS编辑器。 Membership functions: 打开隶属度函数编辑器。 (3) View菜单下的子菜单与ANFIS 编辑器中的View菜单项相同。 (4) Options菜单下的子菜单 Language: 可选择不同的语言,有English(英语)、Deutsch(德语)和Francais(法语)3种。 Format: 格式选择: Verbose(详细)

18、:使用单词“if”、“then”、“and”或“or”等建立句子表达。例如,规则“if A and B then C”。 Symbolic(符号):利用逻辑推理符号表达。例如下面的规则可表达为:“AB>C”。 Indexed(编号):用编号和模糊推理框图。 格式: ruleview(a) ruleview(a)界面: ruleview函数打开规则观测器的GUI如图6-5所示。说明: 利用ruleview(a)可打开文件a.fis规则善的规则观测器,从中可对a.fis文件的FIS结构画出模糊推理框图,通常可显示整个推理框图,这时改变各变量的输入值,可以立即得到系统重新调整后的情况,并计算出

19、新的输出。ruleview(a)用于打开工作空间中已存在的变量a规则观测器。图6-5 规则观测器和模糊推理框图菜单项:(1) File菜单下的子菜单与ANFIS编辑器中File菜单相同。(2) Edit菜单下的子菜单 Undo:撤销最近的操作。 FIS Properties:打开FIS编辑器。 Membership functions:打开隶属度函数编辑器。 Rules:打开规则编辑器。(3) View菜单下的子菜单 Surfview:打开曲面观测器。6. srufview 功能:输出曲面观测器。 格式: surfview(a) 界面:surfview函数打开曲面观测器的GUI如图6-6所示。

20、图6-6 输出曲面观测器 说明:利用surfview(a)可打开输出曲面观测器,从中可查看保存在文件a.fis中的单输入或双输入FIS结构的输出曲面。由于它不会改变推理系统及相应的FIS结构。因此它是一个只读编辑器。利用X、Y、Z轴对应的3个下拉式菜单,可以选择输入、输出坐标轴的变量。选择Evaluate按钮可完成计算并绘制出输出曲面。(1) File菜单下的子菜单与ANFIS编辑器中File菜单相同。(2) Edit菜单下的子菜单 Undo: 撤销最近的操作。 FIS Properties:打开FIS编辑器。 Membership functions:打开隶属度函数编辑器。 Rules:打开

21、规则编辑器。(3) View菜单下的子菜单 Ruleview:打开规则观测器。(4) Options菜单下的子菜单 Plot:它下面有8种绘图格式可供选择。 Color Map:用于选择不同的颜色方案。Always evaluate:选中该项时,一旦对系统进行了修改,就自动进行计算并绘制出新的曲面。再选一次可使它无效。三、隶属度函数在Matlab的模糊逻辑工具箱内部本身有11种隶属度函数可供用户选择,由于篇幅所限,在此不做详细介绍。四、FIS数据结构管理函数1addmf功能:将隶属度函数加到FIS(模糊推理系统)。格式:a=addmf(a,varType,varIndex,mfName,mfT

22、ype,mfParams)。说明:隶属度函数只能添加到MATLAB工作空间中已经建立的FIS结构中。按隶属度函数添加的顺序将其编号,这样给变量添加的第一个隶属度函数称为该变量的1号隶属度函数,如果系统中只有1个输入变量,则不能给第2个变量添加隶属度函数。addmf函数有6个输入变量:(1) a:工作空间中的FIS结构变量名;(2) varType:要添加的隶属度函数的变量类型(input或output);(3) varIndex:要添加的隶属度函数的变量编号;(4) mfName:新添加的隶属度函数名;(5) mfType:新隶属度函数的类型;(6) mfParams:指定隶属度函数的参数变量

23、。示例: a=newfis(Simple); %建立新的FIS系统 a=addvar(a,input,e,-6,6); %给FIS添加新的输入变量“e” a=addmf(a,input,1,NL,trapmf,-6,-6,-5,-3); a=addmf(a,input,1,NS,trapmf,-5,-3,-2,0); a=addmf(a,input,1,ZR,trimf,-2,0,2)。2addrule功能:在FIS中添加规则。格式:a=addrule(a,ruleList)说明:addrule函数有2个变量,第1个变量a为FIS的变量名,第2个变量ruleList表示规则矩阵。规则列表矩阵的

24、格式有严格的要求:当模糊系统由m个输入,n个输出时,规则列表矩阵有m+n+2列,前m列表示系统的输入,每列数值表示输入变量隶属度函数的编号;接着的n列表示系统的输出,每列的数值表示输出变量隶属度函数的编号;第m+n+1列的内容为该条规则的权值:0到1之间的值,通常设定为1;第m+n+2列的值决定模糊操作符的类型:1(当模糊操作符为and时)或2(当模糊操作符为or时)。示例: ruleList=1 1 1 1 1;1 2 2 1 1; a=addrule(a, ruleList);如果系统a有2个输入(X和Y)和1个输出(Z),则上述定义的第1条规则为If X is x1 and Y is y

25、1 then Z is z1。3addvar 功能:在FIS中添加变量。 格式:a=addvar (a, varType, varName,varBounds) 说明:addvar函数有4个输入变量。(1) a:工作空间中FIS的变量名;(2) varType:要添加的变量类型(input或output);(3) varName:要添加的变量名;(4) varBounds:变量的取值范围。添加的变量按其添加的顺序进行编号,这样添加到系统的第1个变量总是称为系统的输入变量1,输入与输出变量分开编号。示例: a=newfis(Simple); %建立新的FIS系统 a=addvar(a,input

26、,e,-6,6); %给FIS添加新的输入变量“e” 4defuzz 功能:对模糊隶属度函数进行反模糊化。 格式:out=defuzz(x,mf,type) 说明:defuzz(x,mf,type)可得到输入为x时隶属度函数mf的反模糊化值,其反模糊化的策略由type指定。变量type可取:(1) centroid:区域重心法;(2) bisector:区分等分法;(3) mom:极大平均法;(4) som:极大最小值法;(5) lom:极大最大值法;如果type不取上述各种方法,则默认为用户自定义的方法,x和mf通过这一函数可以产生反模糊化的结果。示例: x=10:0:10; mf=trap

27、mf(x,-10 -8 -4 7); xx=defuzz(x,mf,centroid)。 5evalfis 功能:完成模糊推理计算。 格式:out= evalfis(input,fismat) out= evalfis(input,fismat,numPts) output,IRR,ORR,ARR= evalfis(input,fismat) output,IRR,ORR,ARR= evalfis(input,fismat, numPts)说明:evalfis函数具有下列参数。(1) input:指定输入的数值或矩阵。如果输入为矩阵时(n为输入变量维数),则evalfis将输入的每一行看作输入

28、变量,并在输出变量output中产生矩阵,其中每一行为输出向量,1为输出变量数。(2) fismat:要计算的FIS结构。(3) numPts:计算输入和输出隶属度函数时采用的取样点数,如果缺省,则采用缺 省值101。(4) output:evalfis函数的输出变量矩阵,其中m表示输入变量数,1表示输出变量数。(5) IRR:输入值通过隶属度函数后的结果,这是numRules矩阵,其中numrules为规则数,n为输入变量数。(6) ORR:输出值通过隶属度函数后的结果,这是,其中numRules为规则数,1为输出变量数。这个矩阵的前numRules列对应于第1个输出,接下来的numRule

29、s列对应于第2个输出,如此等等。(7) ARR:沿着每个输出的取值范围已numPts取样得到的矩阵。只有当输入变量为行向量时,evalfis才计算可选的输出变量值。当只有1个输出变量引用evalfis函数时,可计算出由结构fismat指定的FIS和由input指定的输出向量output。6evalmf 功能:普通隶属度函数的计算。 格式:y= evalmf(x,mfParams,mfType) 说明:evalmf函数可计算任意的隶属度函数,其中x为要计算的隶属度函数取值,mfType为工具箱中存在的一只能够隶属度函数,mfParams为该函数的相应参数。如果建立了自己的隶属度函数,evalmf

30、函数也能很好的工作,这是因为evalmf只计算隶属度函数,并不对其名字进行识别。 7gensurf 功能:产生FIS输出曲面。 格式:gensurf(fis) gensurf(fis,input,output) gensurf(fis,input,output,grids,refinput) 说明:gensurf(fis)函数针对给定FIS的前两个输入和第一个输出绘制出曲面。gensurf(fis,input,output)可在绘制输出曲面时用input和output指定的输入和输出。gensurf(fis,input,output,grids,refinput)中grids指定X和Y方向的栅

31、格数,refinput指定系统不变的输入。 8getfis 功能:获取模糊系统的特性。 格式:getfis(a) getfis(a,fisprop) getfis(a,varType,varIndex ,fisprop) getfis(a,varType,varIndex ,mf,mfIndex) getfis(a,varType,varIndex ,mf,mfIndex,mfProp) 说明:这是C的基本访问函数,利用这一函数获取FIS的每个部分。Getfis函数的输入变量的含义说明如下。(1) a:FIS结构的变量名。(2) varType:变量类型的字符串,可取input或output。

32、(3) varIndex:变量序号。(4) mf:要搜索的隶属度函数信息的字符串。(5) mfIndex:要搜索信息的隶属度函数的序号。 9mf2mf 功能:在隶属度函数之间进行参数交换。格式:outParams=mf2mf(inParams,inType,outType)说明:mf2mf函数可根据隶属度函数的参数集,将一种隶属度函数变换成另一种,原则上,mf2mf函数在新旧隶属度函数的对称点上进行匹配。这种变换偶尔也会导致信息的丢失,因此如果再将其变换回原来的隶属度函数类型时,则可能会与原隶属度函数不一致。mf2mf的输入变量有:(1) inParams:要变换的隶属度函数的参数。(2) i

33、nType:要变换的隶属度函数的字符串。(3) outType:要变换的隶属度函数类型的字符串。 示例:mfp1=1 2 3;mfp2=mf2mf (mfp1,gbellmf,trimf);mfp1代表 gbellmf的参数,mfp2 代表变换为trimf后对应的参数。10newfis功能:建立新的FIS。格式:a=newfis(fisName,fisType,andMethod,orMethod,impMethod,aggMethod,defuzzMethod)说明:这一函数可建立新的FIS结构,newfis函数最多可有7个输入变量,其输出变量为FIS结构。newfis函数7个输入变量为:(

34、1) fisName:FIS结构名,其后缀默认为.fis。(2) fisType:FIS类型。(3) andMethod,orMethod,impMethod,aggMethod,defuzzMethod分别表示与,或,蕴含,结集和反模糊化方法。 11parsrule 功能:模糊规则解析。 格式:fis2=parsrule(fis,txtRuleList) fis2=parsrule(fis,txtRuleList,ruleFormat) fis2=parsrule(fis,txtRuleList,ruleFormat,lang) 说明:这一函数可对MATLAB工作空间中FIS变量定义的规则进

35、行解析,如果原来的FIS结构具有初始的规则,则它们将在新的结构中被取代,这里可通过ruleFormat指定3种格式:verbose,symbolic和indexd,其缺省格式为verbose。当对lang选项进行设定时,规则按verbose模式解析,lang可设定为English、Deutsh或Francais、English为默认设置。12plotfis 功能:绘图表示FIS。 格式:plotfis(fismat) 说明:plotfis函数可绘制出FIS结构的框图,图中包含输入及其隶属度函数(左边),规则处理器方框(中间),输出及其隶属度函数(右边)。 13plotmf 功能:绘制出指定变量

36、的所有隶属度函数。 格式:plotmf(fismat,varTypt,varIndex)说明:plotmf函数可以绘制FIS结构种指定变量的所有隶属度函数,fismat表示指定的FIS结构,varTypt指定变量类型(input或output),varIndex指定变量的序号。14readfis功能:从磁盘中装入FIS。格式:fismat=readfis(filename)说明:从磁盘.fis文件中读取模糊推理系统,并保存于工作空间中。fismatreadfis将打开读取文件的对话框,以便输入文件名及其路径。15rmmf功能:从FIS中删除隶属度函数。格式:fis=rmmf(fis, varT

37、ype,varIndex,mf,mfIndex)说明:rmmf可从FIS中删除指定的隶属度函数,其中fis指定FIS结构,varIndex指定变量序号,varType指定变量类型,mfIndex指定要删除的隶属度函数的序号,字符串mf指定要删除的隶属度函数。 16rmvar 功能:从FIS中删除变量。 格式:fis2,errorStr=rmvar(fis,varType, varIndex) fis2= rmvar(fis,varType, varIndex) 说明:fis2= rmvar(fis,varType, varIndex)可从FIS中删除变量,其中fis指定FIS结构,varInd

38、ex指定要删除的变量序号,varType指定变量类型,fis2,errorStr=rmvar(fis,varType, varIndex)可在errorStr中得到错误信息。 17setfis 功能:设置模糊推理系统的特性。 格式:a=setfis(a,varPropname,newfisProp) a=setfis(a,varType,varIndex,varPropname,newfisProp a=setfis(a,varType,varIndex,mf,mfIndex,varPropname,newfisProp)说明:根据要设置的FIS特性不同,setfis命令可有3个,5个或7个输

39、入变量,下面给出了这些变量的含义说明。(1) a:工作空间中的FIS变量。(2) varType:变量类型。(3) varIndex:输入,输出变量序号。(4) mf:指定隶属函数。(5) mfIndex:所选变量隶属度函数的序号。(6) varPropname:表示要设置的FIS特性的字符串,这里可取Name、Type、andMethod、orMethod、impMethod、aggMethod、defuzzMethod。(7)newfisProp:描述要设置的FIS特性或方法的字符串。(8)varPropname:指定要设置的变量域名。可取Name或Range。(9) newvarProp

40、:当变量域名为Name时,这一部分为要设置的变量名的字符串;变量域名为Range时,这一部分为改变变量范围的阵列。(10) mfPropname:要设置的隶属度函数域名的字符串,可取Name,Type或Params。(11) newmfProp:当隶属度函数域名为Name或Type时,这一部分为要设置的隶属度函数域名或类型;为Params时,这一部分为参数阵列。18showfis功能:显示带注释的FIS。格式:showfis(fismat)说明:showfis(fismat)可显示出FIS结构fismat,从而更容易观察FIS结构各个域的重要性及内容。19showrule功能:显示FIS规则。

41、格式:showrule(fis) showrule(fis,indexList) showrule(fis,indexList,format) showrule(fis,indexList,format,lang) 说明:showrule可显示出FIS系统的规则,它可有1到4个输入变量:fis为FIS结构变量名;indexList为要显示的规则的序号向量;format用于指定规则显示的格式;lang用于指定显示规则的语言。当调用showrule4个变量都采用时,第3个变量format的设置必须是verbose。 20writefis 功能:将FIS结构保存到磁盘文件中。 格式:writefis

42、(fismat) writefis(fismat,filename) writefis(fismat,filename,dialog) 说明:writefis可将MATLAB工作空间中的FIS结构变量fismat保存到磁盘文件中。writefis(fismat)可打开一个对话框,以输入变量的文件名及其路径。writefis(fismat,filename)可直接指定文件名filename.fis,这时不会出现对话框,文件保存在当前目录中。writefis(fismat,filename,dialog)可打开对话框,并且以filename.fis为文件名。五Simulink仿真模块函数1fuzb

43、lock 功能:模糊逻辑控制器仿真模块。 格式:fuzblock 说明:此命令将打开Simulink系统的模糊逻辑模块库,里面含有有关模糊逻辑器件的演示框图,它们分别为:Fuzzy Logic Controller:模糊逻辑控制器;Fuzzy Logic Controller With Rule Viewer:带有规则观测器的模糊逻辑控制器;MemberShip Functions:隶属度函数,里面包含有11种内定的隶属度函数。2sffis 功能:Simulink中的模糊推理S函数。 格式:output=sffis(t,x,u,flag,fismat) 说明:用此函数可得到一个由Simulin

44、k使用的MEX文件,通常由evalfis函数完成计算工作,并且在Simulink环境中已经达到最优,这就意味着sffis可在Simulink仿真的初始阶段就建立起数据结构,并一直在仿真中使用。自变量t、x和flag为Simulink中S函数标准变量,变量u为Matlab工作空间FIS结构fismat的输入。关于模糊系统工具箱的其它内容可参考其它有关书籍,在此不再介绍。 6.2 模糊推理系统(FIS)的建立 一个模糊推理系统的任务可分为三大块,即可用三个步骤概括:首先,对测量数据进行Fuzzy化(即模糊化);其次,建立控制规则表;第三,输出信息的Fuzzy判决,即对模糊量进行反模糊化,得到精确输

45、出量。具体来说,Fuzzy化的过程,就是针对输入变量的量测值,根据实际工程需要,选取合适的论域范围,并分为几种可能的情况选取几个语言变量值,从而对输入量测值进行量化,每个语言变量值可以选用某种隶属度函数来表示;建立规则表,就是根据控制过程中的实际经验,依照推理合成法或其它方法建立一系列规则,组成规则表;输出信息的Fuzzy判决,就是通过一系列反模糊化方法对推理后所得模糊输出信息进行反模糊化运算(Defuzzication)。对Mamdani型模糊推理,通常可以选择centroid(区域重心法)、bisector(区域等分法)、mom(极大平均法)、som(极大最小法)、lom(极大最大法)或C

46、ustom;对Sugeno型模糊推理,可以选择wtaver(加权平均)或wtsum(加权求和)。 模糊推理系统的建立,往往是设计一个模糊控制系统的基础。要想建立一个模糊推理系统,通常可以用两类方法:一种是利用GUI(图形用户界面)建立模糊推理系统;另一种就是利用Matlab命令行建立模糊推理系统。下面分别用这两类方法结合具体的例子来介绍建立一个模糊推理系统的过程。 一、利用GUI建立模糊推理系统 在前面介绍模糊逻辑工具箱的图形用户界面工具中,我们对FIS编辑器、隶属度函数编辑器、规则编辑器、规则观测器、曲面观测器和ANFIS编辑器已有所了解。下面我们通过一个具体的例子介绍利用GUI建立FIS的

47、过程。 例6-1水箱水位控制问题,如图6-7所示。通过控制进水阀使得水箱水位保持在一定水平上。我们通常取水位误差e和误差变化率ec作为模糊控制器的输入变量。其中,e = r - y(误差设定值测量值)。选取误差e的论域范围为-1,1,3个语言变量值为negative、zero、positive,它们的隶属度函数均取gaussmf (高斯曲线);水位变化率ec的论域为 -0.1,0.1,3个语言变量值为negative、zero和positive,它们的隶属度函数也取gaussmf。确定输出变量数为1个,名字为u ,其论域为-1,1,5个语言变量值为close-fast、close-slow、n

48、o-change、open-slow和open-fast,隶度函数选为trimf(三角形曲线)。 根据水箱水位控制的实际经验,可得到如下控制规则(用if-then语句表达):图6-7 水箱水位控制设定模糊控制器压力传感器反馈控制量 (1) If e is negative then u is close-fast; (2 ) If e is zero then u is no-change; (3 ) If e is positive then u is open-fast; (4 ) If e is zero and ec is negative then u is open-slow; (

49、5 ) If e is zero and ec is positive then u is close-slow。利用GUI建立一个FIS系统的具体步骤说明如下。 1. 进入FIS编辑器在Matlab的Command Window窗口提示符下,键入fuzzy可打开FIS编辑器,其界面如图6-8所示。此时编辑器里还没有FIS系统,文件名为Untitled,且被默认为Mamdani型系统。此时上面图表部分有1个输入、1个输出,还有中间的规则处理器。在FIS编辑器界面中进行的工作说明如下:(1) 添加输入变量由于本例有2个输入变量,因此需要再添加1个输入变量,操作方法为:菜单Edit Add Var

50、iable Input。此时系统便有2个输入变量,1个输出变量。 (2) 命名输入-输出变量点击输入框(input1或input2)或输出框(output1),在Current Variable组合框的Name编辑栏内修改变量名。本例中input1 、Input2 和output1分别命名为e、ec和为u 。(3) 保存系统选择菜单File Export To Disk 。本例中将创建的水位控制系统命名为wl_control,此时,所显示的即为初始的水位模糊推理系统wl_control,如图6-9所示。也可以在FIS编辑器中删除不想要的输入或输出变量,方法为选中想要删除的变量EditRemov

51、e Selected Variable。也可以在选中变量后,直接按键盘上的Delete键进行删除。 利用FIS编辑器得到了初始模糊推理系统后,需要在隶属度函数编辑器中进行隶属度函数的定义。 2进入隶属度函数编辑器 进入隶属度函数编辑器有三种方法。 (1) 在FIS编辑器中双击任意一个输入或输出变量的图框; (2) 通过菜单Edit Membership Functions; (3) 在Matlab的Command Window (命令窗口) 提示符下键入mfedit (wl_control )。图6-8 基本的FIS编辑器图6-9 初始wl_control模糊推理系统 在隶属度函数编辑器中,可

52、以对各个变量的论域范围、隶属度函数进行编辑。首先,修改各变量的论域范围。点击FIS Variables下面的各输入输出变量框 在Current Variable组合框中Range右边编辑栏内,修改选中变量的论域范围。Range编辑栏修改后,Display Range 编辑栏内的值跟着改变,变得与Range编辑栏内的一致。本例中,输入变量e的Range为-1 1,输入变量ec的Range为-0.1 0.1,输出变量u的Range为-1 1。其次,编辑输入和输出变量的隶属函数所对应的Name(名字)、Type(类型)、Params(参数)。点击某个变量,在Membership function p

53、lots下面的图表中将显示所选变量的隶属度函数曲线,默认情况每个变量有3个隶属度函数,均为trimf(三角形隶属度函数)。若所选变量所需的隶属度函数个数少于3个,则可通过Edit Remove Selected MF删除多余的隶属度函数,也可通过键盘上的Delete键直接删除。若选中变量所需隶属度函数的个数多于3个,则可通过Edit Add MFs添加所需的隶属度函数。隶属度函数个数确定好后,需要对每个隶属度函数进行编辑,依次选中各隶属度函数曲线,对其Name、Type及Params进行编辑。在本例中,对于输入变量e,其隶属度函数正好3个,从mf1到mf3,逐个编辑,将它们的Name项分别设置为negative、zero、positive,Type均设定为gaussmf,Params分别设置为0.45 -1、0.45 0、0.45 1。对输入变量ec,其隶属度函数也是3个,从mf1到mf3,逐一编辑,将它

温馨提示

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

评论

0/150

提交评论