智能控制 第2章 模糊控制仿真简介(2)_第1页
智能控制 第2章 模糊控制仿真简介(2)_第2页
智能控制 第2章 模糊控制仿真简介(2)_第3页
智能控制 第2章 模糊控制仿真简介(2)_第4页
智能控制 第2章 模糊控制仿真简介(2)_第5页
已阅读5页,还剩72页未读 继续免费阅读

下载本文档

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

文档简介

1、2.3 模糊控制系统仿真简介模糊控制系统仿真简介 参考文献参考文献:石辛民石辛民 编著编著. 模糊控制及其模糊控制及其MATLAB仿真仿真.北京北京:清华大学出版社清华大学出版社/北京交通大学出版北京交通大学出版社社,2008.32.3.1 MATLAB模糊逻辑工具箱模糊逻辑工具箱工具工具命令行函数(以 .m文件存放)图形交互工具(GUIGraphical User Interface)(图形用户界面)接口仿真逻辑模块(Simulink环境)建立模糊逻辑推理系统一、图形交互工具箱提供的图形化工具有五类:一、图形交互工具箱提供的图形化工具有五类:模糊推理系统编辑器Fuzzy隶属度函数编辑器Mfe

2、dit (Membership function)模糊规则编辑器Ruleedit模糊规则观察器Ruleview模糊推理输入输出曲面视图Surfview (Surface) 模糊推理系统编辑器模糊推理系统编辑器Fuzzy处理最顶层构建问题,例如输入输出变量的数目、变量名等激活(进入)方法:命令窗口(command window)执行Fuzzy命令。激活模糊推理系统系统编辑器 :组成输入模糊变量图形框双击Mfedit模糊规则图形框双击Ruleedit输出模糊变量图形框双击Mfedit基本属性基本属性基本属性包括:基本属性包括:1. 模糊集合合成运算(连接词的运算) andmin(最小法)prod(

3、乘积法) ormax(最大法)prober(概率法)prober(a,b)=a+b-ab2. 蕴涵计算(Implication)minprod (乘积法)3. 输出的合成计算Aggregation(模糊规则综合采用的方法)Aggregationmaxprober (概率法)sum(求和法)prober(a,b)=a+b-ab4. 逆模糊化计算(Defuzzification)centroid(重心法)mom(平均最大隶属度法)som(最大隶属度函数中的取最小值法)bisector(面积平分法)lom(最大隶属度函数中的取最大值法) 在命令窗口键入mfedit可激活隶属度函数编辑器二、命令函数二

4、、命令函数1、隶属度函数、隶属度函数函数函数trimf(仅介绍该函数仅介绍该函数)格式:y=trimf(x,a b c)其中:参数x指定变量论域范围,参数a,b和c指定三角形函数的形状,该函数在b点处取最大值1,a,c点为0。例:建立三角形隶属度函数并绘制曲线。 x=0:0.1:10;y=trimf(x, 3 6 8);plot(x,y)xlable(trimf,P=3 6 8) 功能:建立三角形隶属度函数。函数trapmf(trap表示trapezium梯形)格式:y=trapmf(x,a b c d)其中:参数x指定变量论域范围,参数a,b, c和d指定梯形隶属度函数的形状,该函数在b,c

5、点处取最大值1,a,d点为0。功能:建立梯形隶属度函数。例: x=0:0.1:10;y=trapmf(x, 1 5 7 8);plot(x,y)xlable(trapmf,P=1 5 7 8) 函数gaussmf格式:y=gaussmf(x,sig c)功能:建立高斯型隶属度函数。其中:参数x指定变量论域范围,参数c决定了函数的中心点,sig决定了函数曲线的宽度。21()2x cye高斯函数的表达式为:例: x=0:0.1:10;y=gaussmf(x, 2 5);plot(x,y)xlable(gaussmf,P=2 5)函数zmf 格式:y=zmf(x,a b)功能:建立Z型隶属度函数。说

6、明:曲线在(a,b)之间是光滑的样条曲线,在a左段为1,b右段为0,跳跃点是(a+b)/2。参数x指定变量论域范围。例: x=0:0.1:10;y=zmf(x, 2 8);plot(x,y)xlable(zmf,P=2 8)函数smf格式:y=smf(x,a b)功能:建立S型隶属度函数。说明:曲线在(a,b)之间是光滑的样条曲线,在a左段为0,b右段为1,跳跃点是(a+b)/2。参数x指定变量论域范围。例: x=0:0.1:10;y=smf(x, 2 8);plot(x,y)xlable(smf,P=2 8)2、模糊逻辑系统输入输出变量及隶属度函数的添加、模糊逻辑系统输入输出变量及隶属度函数

7、的添加函数addvar功能:向模糊推理系统中添加语言变量。格式:a=addvar(a, varType, varName, varBounds)说明:参数列表中,a为模糊推理系统对应的矩阵变量名, varType用于指定语言变量的类型为字符型(如input或output); varName用于指定语言变量的名; varBounds用于指定语言变量的论域范围。注意:对于添加到同一个模糊推理系统的语言变量,按先后顺序自动编号,编号从1开始,逐渐递增。对于分属于输入与输出的不同语言变量则独立地分别编号。例:a=newfis(tipper); /创建并返回一个新的FIS系统 a=addvar(a,in

8、put,service,0 10); getfis(a,input,1) /取得FIS的部分或全部属性函数addmf功能:向模糊推理系统的语言变量添加隶属度函数。格式:a=addmf(a, varType, varIndex,mfName,mfType, mfParams)说明:隶属度函数只能为模糊推理系统中已经存在的某一语言变量的语言值添加隶属度函数。参数列表中,a为模糊推理系统对应的矩阵变量名, varType指定语言变量类型的字符串(如input或output); varIndex指定语言变量编号的数字;mfName指定隶属度函数名称;mfType指定隶属度函数类型; mfParams指

9、定隶属度函数的参数。注意:对于每个语言变量的隶属度函数按该函数被添加的顺序编号,编号从1开始,依次递增。例:a=newfis(tipper); a=addvar(a,input,service,0 10); a=addmf(a,input,1,poor,guassmf,1.5 0); a=addmf(a,input,1,good,guassmf,1.5 5); a=addmf(a,input,1,excellent,guassmf,1.5 10); plot(a,input,1)3、FIS系统相关操作系统相关操作 函数newfis功能:创建并返回一个新的模糊推理系统。格式:a=newfis(f

10、isName)函数readfis功能:从磁盘中读出并返回模糊推理系统结构变量。格式:Fismat=readfis(filename)例:fismat=readfis(tipper); /tipper.fis已经存在说明:打开一个由filename指定的数据文件(.fis),并将其加载到当前的工作空间(Workspace)中的变量Fismat中。函数getfis功能:取得模糊推理系统的部分或全部属性。格式:getfis(a) /显示系统所有属性 getfis(a,fisprop) /显示系统某一属性 getfis(a,vartype,varindex,varprop)例:a=readfis(ti

11、pper); getfis(a)输出结果:Name=tipper Type=mamdani NumInputs=2 例:getfis(a,input,1)注:属性为input或output时,后面的第三个参数指定某一个输入或输出语言变量。输出结果:Name=service NumMFs=3 MFLabels=poor good excellent Range=0 10例:getfis(a,input,1,name)输出结果:service 函数showfis功能:以分行的形式显示模糊推理系统矩阵的所有属性。格式:showfis(fismat) 函数writefis功能:将以矩阵形式保存在内存中

12、的模糊推理系统的数据写入磁盘文件中。格式:writefis(fismat,filename)例:writefis(a,my_file) type my_file.fis 函数setfis功能:设置、改变模糊推理系统的属性。格式:FIS2=setfis(fis1,fispropname,newPropValue)说明:参数fis1指明模糊推理系统的名称;fispropname指明模糊推理系统的全局属性; newPropValue指明此属性的新值。例:a=readfis(tipper); a2=setfis(a,DefuzzMethod,mom);Defuzzification:centroid(

13、重心法:系统默认)mom(平均最大隶属度法)som(最大隶属度函数中的取最小值法)bisector(面积平分法)lom(最大隶属度函数中的取最大值法)4、系统图形显示函数、系统图形显示函数 函数plotfis功能:绘制模糊推理系统的推理过程结构框图。例:plotfis(tipper) 函数plotmf功能:绘制语言变量所有语言值的隶属度函数曲线。格式:plotmf(fismat,varType,varIndex)说明:参数fismat指明模糊推理系统的对应矩阵变量名称;varType指明变量类型(input或output);varIndex指明输入或输出语言变量的编号。例: plotmf(a,

14、input,2)5、模糊规则建立、模糊规则建立函数addrule功能:向模糊推理系统添加模糊规则。格式:a=addrule(a,rulelist)说明:参数a为模糊推理系统对应的矩阵变量名称,rulelist以向量的形式给出需要添加的模糊规则。如果模糊推理系统有m个输入语言变量和n个输出语言变量,则向量rulelist的列数必须为m+n+2,而行数等于需要添加的规则数目。 在rulelist的每一行中,前m个数字表示各输入语言变量的语言值(隶属度函数的编号),随后的n个数字表示输出语言变量的语言值,第n+m+1个数字是该规则的权重,权重的值在0到1之间,一般设定为1;第n+m+2个数字为0或1

15、两者之一,为1表示模糊规则各输入语言变量之间是and关系,为0则表示是or关系。函数showrule格式:showrule(fis) showrule(fis,indexlist) showrule(fis,indexlist,format)说明:fis为模糊推理系统矩阵变量的名称;indexlist为规则编号,可以以向量形式指定显示多条规则;format为显示方式,有三种显示方式,即语句方式(verbose),符号方式(symbolic)和索引方式(indexed)。例:showrule(a,1:2,indexed)输出结果:1 1,1(1):1 1 2,2(1):16、计算模糊推理输出结果

16、函数、计算模糊推理输出结果函数evalfis格式:y=evalfis(U,FIS)说明:参数U是输入数据,FIS是模糊推理矩阵。U的每一行是一个特定的输入向量,Y的每一行是一个特定的输出向量。 如果输入U是M*N矩阵,则系统是N输入的,返回的Y是M*L矩阵,L是系统的输出的数目。例:fis=readfis(tipper); out=evalfis(2 1; 4 9,fis)输出结果:out=7.0169 19.68102.3.2 、MATLAB模糊控制设计实例模糊控制设计实例1 (用图形交互工具箱)(用图形交互工具箱)一、设计目的:了解用一、设计目的:了解用MATLAB模糊工具箱的图形界面可视

17、化工具实模糊工具箱的图形界面可视化工具实现模糊控制系统的方法。现模糊控制系统的方法。二、系统设计要求:二、系统设计要求:1、输入变量:偏差、输入变量:偏差e、偏差变化率、偏差变化率de;输出变量:;输出变量:u相应隶属度函数为:相应隶属度函数为:2、规则要求:、规则要求:3、反模糊化方法:平均最大隶属度函数法、反模糊化方法:平均最大隶属度函数法mom。三、设计步骤:三、设计步骤:1、进入MATLAB系统,在MATLAB命令窗口执行fuzzy命令即可激活基本模糊推理系统编辑器,首先增加一个输入变量。 2、在图形界面中通过鼠标双击就能激活隶属度函数编辑器和模糊规则编辑器等相应的编辑窗口,在窗口中进

18、行相应属性设置即可;再在模糊推理系统编辑器中设置反模糊化方法。3、进入Ruleview观察器,观察模糊推理系统的输出情况。四、设计结果要求1、记录模糊规则编辑器Ruleedit中索引indexed方式显示的规则。2、记录Ruleview观察器中模糊推理系统的输出情况: 当e=2,de=1时u为多少?当e=1,de=2时u为多少?激活模糊推理系统编辑器激活模糊推理系统编辑器 :增加一个输入变量:双击进入双击进入Mfedit:修改每个变量的论域和隶属度函数:修改每个变量的论域和隶属度函数:trimf三角形(triangular membership function)trapmf(trapeziu

19、m梯形)Gaussmf(高斯型)zmf(Z型) smf(S型)NB选哪种Type?增加隶属度函数个数:PB选哪种Type?trapmf(trapezium梯形)Gaussmf(高斯型)zmf(Z型) smf(S型)添加规则:添加规则:语句表示的规则:语句表示的规则:规则显示方式:规则显示方式:Verbose:语句:语句Symbolic:符号:符号Indexed:索引:索引索引索引indexed方式显示的规则:方式显示的规则: 第一条规则1 1,5(1):1是啥意思?分别是规则的权重和前件变量为“与”。符号符号symbolic方式显示的规则:方式显示的规则: 在在FIS Editor中设置反模糊

20、化的方法中设置反模糊化的方法:进入Ruleview观察器,观察模糊推理系统的输出情况:1,2,9指的是啥?当当e=2,de=1时时u为多少?为多少?当当e=1,de=2时时u为多少?为多少?保存此FIS系统后:双击1.fis后的命令行函数:一、设计目的:了解用一、设计目的:了解用MATLAB模糊工具箱的模糊工具箱的命令行方式命令行方式的模糊逻辑函数来实现模糊控制系统的方法。的模糊逻辑函数来实现模糊控制系统的方法。 二、基本原理:二、基本原理:MATLAB提供了一些函数命令来实现模糊提供了一些函数命令来实现模糊控制逻辑系统,这些函数不仅能完全实现图形化方式所控制逻辑系统,这些函数不仅能完全实现图

21、形化方式所提供的功能,同时还可以实现图形化方式所难以实现的提供的功能,同时还可以实现图形化方式所难以实现的功能,特别是对那些复杂的模糊推理系统而言更有优势。功能,特别是对那些复杂的模糊推理系统而言更有优势。 2.3.2 、MATLAB模糊控制设计实例模糊控制设计实例2 (用命令行方式)(用命令行方式)三、系统设计要求:三、系统设计要求:1、输入变量:偏差、输入变量:偏差e、偏差变化率、偏差变化率de;输出变量:;输出变量:u相应隶属度函数为:相应隶属度函数为:2、规则要求:、规则要求:3、模糊化方法:平均最大隶属度函数法、模糊化方法:平均最大隶属度函数法mom。4、程序运行后要求用图形显示输入

22、、输出变量的、程序运行后要求用图形显示输入、输出变量的隶属度函数曲线;显示模糊控制系统的推理过隶属度函数曲线;显示模糊控制系统的推理过程结构框图,并把此系统保存到程结构框图,并把此系统保存到fuzzy.fis文件中。文件中。四、设计步骤:四、设计步骤:1、进入、进入MATLAB系统,先新建一个系统,先新建一个 .m文件,在其中用命文件,在其中用命令行形式写入完成本系统的相应程序。令行形式写入完成本系统的相应程序。2、运行本程序看结果。、运行本程序看结果。3、把、把fuzzy.fis文件导入到文件导入到MATLAB模糊工具箱的图形界面模糊工具箱的图形界面可视化工具中看输出情况。可视化工具中看输出

23、情况。五、设计结果要求五、设计结果要求1、画出显示的模糊控制系统的推理过程结构框图。、画出显示的模糊控制系统的推理过程结构框图。2、当、当e=1,de=2时时u为多少?当为多少?当e=2,de=1时时u为多少?为多少?进入MATLAB系统,先新建一个 .m文件: 写入相应程序 :a=newfis(fuzzy);a=addvar(a,input,e,-3,3);a=addmf(a,input,1,N,trimf,-3,-3,0);a=addmf(a,input,1,Z,trimf,-3,0,3);a=addmf(a,input,1,P,trimf,0,3,3);figure(1); %图1plo

24、tmf(a,input,1);a=addvar(a,input,de,-3,3);a=addmf(a,input,2,N,trimf,-3,-3,0);a=addmf(a,input,2,Z,trimf,-3,0,3);a=addmf(a,input,2,P,trimf,0,3,3);figure(2); %图2plotmf(a,input,2);a=addvar(a,output,u,-4,4);a=addmf(a,output,1,NB,zmf,-4,-1);a=addmf(a,output,1,NS,trimf,-4,-2,1);a=addmf(a,output,1,ZE,trimf,-2,0,2);a=addmf(a,output,1,PS,trimf,-1,2,4);a=addmf(a,output,1,PB,smf,1,4);figure(3); %图3plotmf(a,output,1);例程:试画出图1、图3?rulelist=1 1 5 1 1; 1 2 4 1 1; 1 3 3 1 1; 2 1 3 1 1; 2 2 3 1 1; 2 3 2 1 1; 3 1 2 1 1 3 2 2 1 1; 3 3 1 1 1;a=add

温馨提示

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

评论

0/150

提交评论