11MATLAB模糊逻辑工具箱简介2利用模糊逻辑工具箱建立模糊推理系统3MATLAB模糊逻辑工具箱的图形用户界面4基于Simulink的模糊逻辑的系统模块MATLAB模糊逻辑工具箱函数2针对模糊逻辑尤其是模糊控制的迅速推广应用,MathWorks公司在其MATLAB版中添加了FuzzyLogic工具箱。该工具箱由长期从事模糊逻辑和模糊控制研究与开发工作的有关专家和技术人员编制。MATLABFuzzyLogic工具箱以其功能强大和方便易用的特点得到了用户的广泛欢迎。模糊逻辑的创始人Zadeh教授称赞该工具箱“在各方面都给人以深刻的印象,使模糊逻辑成为智能系统的概念与设计的有效工具。”31.1模糊逻辑工具箱的功能特点1.易于使用模糊逻辑工具箱提供了建立和测试模糊逻辑系统的一整套功能函数,包括定义语言变量及其隶属度函数、输入模糊推理规则、整个模糊推理系统的管理以及交互式地观察模糊推理的过程和输出结果。1MATLAB模糊逻辑工具箱简介42.提供图形化的系统设计界面在模糊逻辑工具箱中包含五个图形化的系统设计工具,这五个设计工具是:•模糊推理系统编辑器,该编辑器用于建立模糊逻辑系统的整体框架,包括输入与输出数目、去模糊化方法等;•隶属度函数编辑器,用于通过可视化手段建立语言变量的隶属度函数;•模糊推理规则编辑器;•系统输入输出特性曲面测览器;•模糊推理过程浏览器。53.支持模糊逻辑中的高级技术•自适应神经模糊推理系统(ANFIS,AdaptiveNeuralFuzzyInferenceSystem);•用于模式识别的模糊聚类技术;•模糊推理方法的选择,用户可在广泛采用的Mamdani型推理方法和Sugeno型推理方法两者之间选择。64.集成的仿真和代码生成功能模糊逻辑工具箱不但能够实现Simulink的无缝连接,而且通过Real-TimeWorkshop能够生成ANSIC源代码,从而易于实现模糊系统的实时应用。5.独立运行的模糊推理机在用户完成模糊逻辑系统的设计后,可以将设计结果以ASCII码文件保存;利用模糊逻辑工具箱提供的模糊推理机,可以实现模糊逻辑系统的独立运行或者作为其他应用的一部分运行。75.1.2模糊推理系统的基本类型在模糊系统中,模糊模型的表示主要有两类:一类是模糊规则的后件是输出量的某一模糊集合,如NB,PB等,由于这种表示比较常用,且首次由Mamdani采用,因而称它为模糊系统的标准模型或Mamdani模型表示;另一类是模糊规则的后件是输入语言变量的函数,典型的情况是输入变量的线性组合。由于该方法是日本学者高木(Takagi)和关野(Sugeno)首先提出来的,因此通常称它为模糊系统的Takagi-Sugeno(高木-关野)模型,或简称为Sugeno模型。81基于标准模型的模糊逻辑系统在标准型模糊逻辑系统中,模糊规则的前件和后件均为模糊语言值,即具有如下形式:IFx1isA1andx2isA2and…andxnisAnTHENyisB其中Ai(i=1,2,…,n)是输入模糊语言值,B是输出模糊语言值。图5-1基于标准模型的模糊逻辑系统原理图基于标准模型的模糊逻辑系统的框图如图5-1。图中的模糊规则库由若干“IF——THEN”规则构成。模糊推理机在模糊推理系统中起着核心作用,它将输入模糊集合按照模糊规则映射成输出模糊集合。它提供了一种量化专家语言信息和在模糊逻辑原则下系统地利用这类语言信息的一般化模式。92基于高木——关野(Takagi——Sugeno)模型的模糊逻辑系统高木——关野模糊逻辑系统是一类较为特殊的模糊逻辑系统,其模糊规则不同于一般的模糊规则形式。在高木——关野模糊逻辑系统中,采用如下形式的模糊规则:IFx1isA1andx2isA2and…andxnisAnTHEN其中Ai(i=1,2,…,n)是输入模糊语言值,ci(i=1,2,…,n)是真值参数。niiixcy110可以看出,高木-关野模糊逻辑系统的输出量是精确值。这类模糊逻辑系统的优点是输出量可用输入值的线性组合来表示,因而能够利用参数估计方法来确定系统的参数ci(i=1,2,…,n);同时,可以应用线性控制系统的分析方法来近似分析和设计模糊逻辑系统。其缺点是规则的输出部分不具有模糊语言值的形式,因此不能充分利用专家的控制知识,模糊逻辑的各种不同原则在这种模糊逻辑系统中应用的自由度也受到限制。115.1.3模糊逻辑系统的构成前面讨论了模糊逻辑系统的基本类型,标准型模糊逻辑系统应用最为广泛。在MATLAB模糊逻辑工具箱中主要针对这一类型的模糊逻辑系统提供了分析和设计手段,但同时对高木一关野模糊逻辑系统也提供了一些相关函数。下面将以标准型模糊逻辑系统作为主要讨论对象。12构造一个模糊逻辑系统,首先必须明确其主要组成部分。一个典型的模糊逻辑系统主要由如下几个部分组成:(1)输入与输出语言变量,包括语言值及其隶属度函数;(2)模糊规则;(3)输入量的模糊化方法和输出变量的去模糊化方法;(4)模糊推理算法。13针对模糊逻辑系统的以上主要构成,在MATLAB模糊逻辑工具箱中构造一个模糊推理系统有如下步骤:(1)模糊推理系统对应的数据文件,其后缀为.fis,用于对该模糊系统进行存储、修改和管理;(2)确定输入、输出语言变量及其语言值;(3)确定各语言值的隶属度函数,包括隶属度函数的类型与参数;(4)确定模糊规则;(5)确定各种模糊运算方法,包括模糊推理方法、模糊化方法、去模糊化方法等。145.2利用模糊逻辑工具箱建立模糊推理系统5.2.1模糊推理系统的建立、修改与存储管理前面讨论了模糊推理系统的主要构成部分,即一个模糊推理系统由输入、输出语言变量及其隶属度函数、模糊规则、模糊推理机和去模糊化方法等各部分组成,在MATLAB模糊逻辑工具箱中,把模糊推理系统的各部分作为一个整体,并以文件形式对模糊推理系统进行建立、修改和存储等管理功能。表5-1所示为该工具箱提供的有关模糊推理系统管理的函数及其功能。15表2-7模糊推理系统的管理函数函数名功能newfis()创建新的模糊推理系统readfis()从磁盘读出存储的模糊推理系统getfis()获得模糊推理系统的特性数据writefis()保存模糊推理系统showfis()显示添加注释了的模糊推理系统setfis()设置模糊推理系统的特性plotfis()图形显示模糊推理系统的输入—输出特性表5-1模糊推理系统的管理函数161.创建新的模糊推理系统函数newfis()该函数用于创建一个新的模糊推理系统,模糊推理系统的特性可由函数的参数指定,其参数个数可达7个。调用格式为fisMat=newfis(‘fisName’,fisType,andMethod,orMethod,impMethod,aggMethod,defuzzMethod)17例:fisMat=newfis(‘mysys’);getfis(fisMat)显示:Name=mysysType=mamdaniNumInputs=0InLabels=NumOutputs=0OutLabels=NumRules=0AndMethod=minOrMethod=maxImpMethod=minAggMethod=maxDefuzzMethod=centroid182.从磁盘中加载模糊推理系统函数readfis()调用格式fisMat=readfis(‘filemame’)19例如利用以下命令可加载一个MATLAB自带的关于“小费”问题的模糊推理系统tipper.fis。fisMat=readfis('tipper');getfis(fisMat);结果显示:Name=tipperType=mamdaniNumInputs=2InLabels=servicefoodNumOutputs=1OutLabels=tipNumRules=3AndMethod=minOrMethod=maxImpMethod=minAggMethod=maxDefuzzMethod=centroid203.获得模糊推理系统的属性函数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=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')224.将模糊推理系统以矩阵形式保存在内存中的数据写入磁盘文件函数writefis()模糊推理系统在内存中的数据是以矩阵形式存储的,其对应的矩阵名为fisMat。当需要将模糊推理系统的数据写入磁盘文件时,就可利用writefis()函数。其调用格式为writefis(fisMat)writefis(fisMat,’filename’)writefis(fisMat,’filename’,’dialog’)例:fisMat=newfis(’tipper’);writefis(fisMat,’my_file’)235.以分行的形式显示模糊推理系统矩阵的所有属性函数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);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=setfis(fisMat,'input',1,'mf',2,'name','wretched')257.绘图表示模糊推理系统的函数plotfis()该函数的调用格式为plotfis(fisMat)其中,fisMat为模糊推理系统对应的矩阵名称。例:fisMat=readfis('tipper');plotfis(fisMat)8.将Mamdani型模糊推理系统转换成Sugeno型模糊推理系统的函数mam2sug()函数mam2sug()可将Mamdani型模糊推理系统转换成零阶的Sugeno型模糊推理系统。得到的Sugeno型模糊推理系统具有常数隶属度函数,其常数值由原来Mamdani型系统得到的隶属度函数的质心确定,并且其前件不变,该函数的调用格式