Simulink模糊控制教程-精编_第1页
Simulink模糊控制教程-精编_第2页
Simulink模糊控制教程-精编_第3页
已阅读5页,还剩49页未读 继续免费阅读

下载本文档

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

文档简介

1、1,MATLAB应用技术,清华大学出版社,2,6 MATLAB与模糊控制系统,3,61 模糊系统的MATLAB 实现,611 模糊集简介,模糊集是一种边界不分明的集合,模糊集与普通集合既有区别又有联系。,2 模糊集的表示,1模糊概念,模糊集菜用隶属度来表示,论域X上的一个模糊集A,对于任意,,都指定了一个数,,叫做x对A的隶属程度 称做A的隶属函数。,隶属度函数有以下11种: (1)高斯型隶属度函数,(2) 双侧高斯型隶属度函数,(3) 钟形隶属度函数,4,(4)Sigmoid函数型隶属度函数,(5)差型sigmoid隶属度函数,(6) 积型sigmoid隶属度函数,(7) Z形隶属度函数,(

2、8) 形隶属度函数,(9) S形隶属度函数,(10) 梯形隶属度函数,(11) 三角形隶属度函数,5,3模糊逻辑运算,与运算,或运算,非运算,直积,逻辑与(A AND B),逻辑或(A OR B),逻辑非(NOT A),普通逻辑:,模糊逻辑,6,4 模糊规则,模糊 推理系统工程中,模糊规则以模糊语言 的形式描述人类的经验和知识,规则是否正确反映人类专家的经验和知识更新,是否能反映对象的特性,直接决定了模糊推理系统的性能,通常通过模糊规则的形式是“ifthen”,前提由对模糊语言变量的语言什描述构成,如“温度较高”,“压力较低”等,结论由对输出模糊语言变量表示成输入量的精确什的组合,模糊规则的这

3、种形式化表示的符合人们通过自然对许多知识的描述和记忆习惯的。,模糊规则的建立,总结操作人员工、专家的经验和知识。,基于过程的模糊模型。,基于学习的方法。,7,最简单的ifthen规则的形式是:“如果x是A,则y是B。”复合型的ifthen规则的形式很多,例如: “ if m是A且x 是B then y 是C,否则z是D” ; “ if m是A且x 是B 且 y 是C,then z是D” ; “ if m是A或x 是B then y 是C,或z是D” ; “ if m是A且x 是B then y 是C,且z是D” ; 这里A,B,C,D分别是论域M,X,Y,Z,中模糊集的主义值,if 部分是前提

4、或前件,then 部分是结论或后件。,输入模糊化 确定出ifthen规则前提中每个命题或断言为真的程度(即隶属度)。 应用模糊算子 召唤果规则的前提有几部分,则利用模糊算子可以确定出整个前提为真的程度(即整个前提的隶属度)。 应用蕴含算子 由前提的隶属度和蕴含琥子,可以确定出结论为真的程度 (即结论的隶属度)。,8,5模糊推理,模推理是采用模糊逻辑由给定的输入到输出的映射过程。模糊推理包括五个方面: (1)输入变量模糊化,即把确定的输入转化为由隶属度描述的模糊集。 (2)在模糊规则的前件中应用模糊算子(与、或、非)。 (3)根据模糊蕴含运算由前提推断结论。 (4)合成每一个规则的结论部分,得出

5、总的结论。 (5)反模糊化,即把输出的模糊量转化为确定的输出。,9,6 模糊控制,在自动控制理论中,控制器的分析与综合依赖于精确的数学模型。而系统在实际运行过程中,人们将观察到的过程输出与设定值比较,得到过程输出偏离设定值程度的模糊语义描述或过程输出偏离设定值变化快慢的模糊语义描述,经逻辑推理得出控制量的模糊量:“适量减少燃料”,经反模糊化且,转化为一精确的控制量,实现整个控制过程,以模糊集和模糊推理为基础,对上述手工操作过程进行建模,即可得到期模糊控制器。,10,612 模糊推理系统与MATLAB的应用,1 模糊推理系统结构,最常见的模糊推理系统的三类: 1、纯模糊逻辑系统 2、Sugeno

6、型模糊逻辑系统 3、Mamdani型模糊系统,11,2 Mamdani型模糊逻辑系统构建,Mamdani型是典型的模糊逻辑系统,MATLAB模糊逻辑工具箱中的模糊推理系统有五个过程:输入变量的模糊化、模糊关系运算、模糊合成运算、不同规则结果的综合、去模糊化。,(1) 输入模糊化,(2) 输入模糊集合的合成运算,(3)模糊蕴含方法,(4)输出的合成Aggregation,(5)逆模糊化(解模糊化),12,6.1.3 模糊推理系统的MATLAB模糊工具箱的图形界面实现,模糊推理系统可通过MATLAB模糊工具箱的图形界面工具来实现,方法简单并且直观,也可利用MATLAB提供的命令行方式的模糊逻辑函数

7、编辑实现,有利于比较复杂的模糊推系统。,1 图形界面工具箱简介,MATLAB模糊工具箱提供的图形化工具有五类: 模糊推理系统编辑器Fuzzy; 隶属度函数编辑器Mfedit; 模糊规则编辑器Ruleedit; 模糊规则观察器Ruleview; 模糊推理输入输出曲面视图Surfview。,13,2模糊推理系统编辑器(Fuzzy),执行Fuzzy命令,14,3隶属度函数编辑器(Mfedit),命令窗口键入”mfedit”,15,4模糊规则编辑器(Ruleedit),16,5模糊规则观察器(Ruleview),命令窗口键入“ruleview”,17,6模糊推理输入输出曲面视图(Surfview),命

8、令窗口键入“surfview”,18,614模糊逻辑工具箱与Simulink的接口,1 MATLAB的模糊的图形化系统建模和仿真工具Simulink,当在模糊逻辑工具箱中建立了模糊推理系统后,首先,对模糊逻辑工具箱中建立的模糊推理系统后生成FIS文件,然后,在MATLAB命令窗口键入命令Simulink或是直接点击工具栏上的Simulink图标,可以打开Simulink模块库浏览环境 ,在Simulink模块库浏览环境里通过选择菜单【File】、【New】、【Model】或直接点击工具栏上的相应图标来创建一个新的模型。在新的仿真模型编辑主窗口中搭建仿真控制系统模型。,19,例 设计典型二阶环节

9、,,的模糊控制器,使系统输出尽快跟随系统输入。,20,设系统输入为R=10,系统输出误差为e ,误差导数为de,则可根据系统输出的误差和误差导数设计出模糊控制器(FC)。FC的输入为e 和de的模糊量,输出为u 的模糊量,论域分别为:、,其模糊语言分别为: E :“大”;“小” de:“正”“零”、“负”; u :“负大NB”、“负小NS”、“零ZR”、“正小PS”、“正大PB”。,21,使用ATLABL图形界面工具设计模糊控制器FC: 确定隶属度函数 确定模糊控制器规则 将编制好的文件生成FIS文件 上述过程按前面讲解完成,该例子的文件名为H.fis; 在MATLAB下的Simulink环境

10、中建立二级系统的仿真模型如下:,22,将MATLAB下的GH.fis文件导入Simulink模型中,作为的模糊控制器FC的参数:,步骤: (1)选取择上图中的模糊模块控制器(双击其图标),打开对话框并给导入到仿真系统中的模糊控制器命名为gh.fis,(2)在MATLAB环境下使用命令:gh=read(GH.FIS)执行即可 (3)模型中变量修改使用FIS中的Wizard模块将编制的模糊控制器标准化,23,模糊控制器参数类型转换图,24,系统输出,25,6.2 MATLAB模糊逻辑工具箱命令行函数应用,6.2.1 MATLAB模糊逻辑工具箱函数,GUI(图形用户界面)工具,26,隶属度函数,27

11、,FIS数据结构管理,28,先进技术,29,Simulink仿真方框,30,其余函数,31,模糊 系统演示程序,32,622 MATLAB命令行函数使用,1、隶属度函数,(1)dsigmf 功能:由两个S形隶属度函数的差构成的隶属度函数。 格式:y=dsigmf(x,a1 c1 a2 c2),(2)Gauss2mf 功能:联合高斯(Gaussian)型隶属函数 格式:y=gauss2mf(x,sig1 c1 sig2 c2),(3)gaussmf 功能:高斯(Gaussian)型隶属度函数。 格式:y=gaussmf(x,sig c),33,(4)gbellmf 功能:广义钟形隶属度函数。 格

12、式:y=gbellmf(x,params),(5)primf 功能:形隶属度函数。 格式:y=pimf(x,a b c d),(6)psigmf 功能:由两个S形隶属度函数的积成的隶属度函数。 格式:y=psigmf(x,a1 c1 a2 c2),(7)smf 功能:S状隶属度函数。 格式:y=smf(x,a b),34,(8)Sigmf 功能:S形隶属度函数。 格式:y=sigmf(x,a c),(9)trapmf 功能:梯形隶属度函数。 格式:y=trapmf(x,a b c d),(10) trimf 功能:三角形隶属度函数。 格式:y=trimf(x,params) y=trimf(x

13、,a b c),(11) zmf 功能:Z形隶属度函数。 格式:y=zmf(x,a b),35,2FIS数据结构管理,(1)addmf 功能:隶属度函数添加到FIS(模糊推理系统)。 格式:a=addmf(a,varType,varIndex,mfName,mfType,mfParams),(2)addrule 功能:在FIS中添加规则。 格式:a=addrule(a,ruleList),(3)addvar 功能:在FIS中添加变量: 格式:a=addvar(a, varType, varName,varBounds),36,(4)defuzz 功能:反模糊化的隶属度函数。 格式:out=de

14、fuzz(x,mf,type),(5)evalfis 功能:完成模糊推理计算。 格式:output=evalfis(input,fismat) Output=evalfis(input,fismat,numPts) output,IRR,ORR,ARR=evalfis(input,fismat) output,IRR,ORR,ARR=evalfis(input,fismat,numPts),(6)evalmf 功能:普通隶属度函数的计算。,(7)gensurf 功能:产生FIS输出曲面。,37,(8)getfis 功能:获取模糊系统的特性。,(10)newfis 功能:建立新的FIS. 格式:

15、a=newfis(fisName,fisType,andMethod,orMethod,impMethod, aggMethod,defuzzMethod),(9)mf2mf 功能:在隶属度函数之间进行参数变换。 格式:outParams=mf2mf(inParams,inType,outType),(11) parsrule 功能:模糊规则解析。 格式:fis2=parsrule(fis,txtRuleList) fis2=parsrule(fis,txtRuleList,ruleFormat) fis2=parsrule(fis,txtRuleList,ruleFormat,lang),3

16、8,(12)plotfis 功能:绘图表示FIS。 格式:plotfis(fismat),(13)plotmf 功能:绘制出给定变量的所有隶属度函数。 格式:plotmf(fismat,varType,varIndex),(14)readfis 功能:从磁盘中装入FIS。 格式:fismat=raedfis(filename),(15)rmmf 功能:从FIS中删除隶属度函数。 格式:fis=rmmf(fis,varType,varIndex,mf,mfIndex),39,(16) rmvar 功能:从FIS中删除变量。 格式:fis2,errorStr=rmvar(fis, varType,

17、varIndex) fis2= rmvar(fis, varType,varIndex),(17) setfis 功能:设置模糊系统的特性。 格式:a=setfis(a,fisPropname,newfisProp); a= setfis(a,varType,varIndex,varPropname,newvarProp); a= setfis(a,varType,varIndex,mf,mfIndex,mfPropname,newmfProp);,(18) showfis 功能:显示带注释的FIS。 格式:showfis(fismat),40,19Showrule 功能:显示FIS规则。 格

18、式:showrule(fis) showrule(fis,indxList) showrule(fis,indexList,format) showrule(fis,indexList,format,Lang),41,3、先进技术,(1)anfis 功能:Sugeno型FIS的训练程序。,(2)fcm 功能:模糊C均值聚类。 格式:center,U,obj_fcn=fcn(data,cluster_n),(3)genfis1 功能:从未加聚类的数据中产生FIS 结构。 格式:fismat=genfis1(data),(4)genfis2 功能:利用减法聚类从数据中产生FIS结构。 格式:fis

19、mat=genfis2(Xin,Xout,radii) fismat=genfis2(Xin,Xout,radii,xBounds) fismat=genfis2(Xin,Xout,radii,xBounds,options),42,(5)Subclust 功能:找出减法聚类的聚类中心。 格式:C,S=subclust(X,radii,xBounds,options),43,4、Simulink 仿真方框,(1)fuzblock 功能:模糊逻辑控制器框图仿真。 格式:fuzblock,(2) sffis 功能:Simulink中的模糊推理S函数。 格式:output=sffis(t,x,u,f

20、lag,fismat),44,5、其余函数,(1)Convertfis 功能:FIS结构的版本变换。 格式:fis_new=converfis(fis_old),(2)findcluster 功能:模糊C均值和减法聚类的交互聚类GUI。 格式:findcluster,(3)fuzarith 功能:完成模糊算术运算。 格式:C=fuzarith(X,A,B,operator),45,(4)mam2sug 功能:将Mamdani型的FIS变换成Sugeno型FIS。,(5)fuzdemos 功能:模糊逻辑工具箱演示程序列表。 格式:fuzdemos,46,623 MATLAB模糊逻辑工具箱命令函数

21、应用实例,设计典型二阶环节:,的模糊控制器,使系统输出尽快跟随系统输入。,47,隶属度函数,误差隶属度函数,误差变化率隶属度函数,48,输出隶属度函数,49,FC的模糊推量规则表,50,MATLAB程序如下 num=20; den=1.6 4.4 1; a1 b c d=tf2ss(num,den); x=0;0; T=0.01;h=T; N=250; R=1.5*ones(1,N);参考输入 %定义输入输出变量与隶属度函数 a=newfis(Simple); a=addvar(a,input,e,-6 6); a=addmf(a,input,1,NB,trapmf,-6,-6,-5,-3);

22、 a=addmf(a,input,1,NS,trapmf,-5,-3,-2,0); a=addmf(a,input,1,ZR,trimf,-2,0,2); a=addmf(a,input,1,PS,trapmf,0,2,3,5); a=addmf(a,input,1,PB,trapmf,3,5,6,6); a=addvar(a,input,de,-6,6); a=addmf(a,input,2,NB,trapmf,-6,-6,-5,-3); a=addmf(a,input,2,NS,trapmf,-5,-3,-2,0); a=addmf(a,input,2,ZR,trimf,-2,0,2); a=addmf(a,input,2,PS,trapmf,0,2,3,5); a=addmf(a,input,2,PB,trapmf,3,5,6,6); a=addvar(a,output,u,-3,3); a=addmf(a,output,1,NB,trapmf,-3,-3,-2,-1); a=addmf(a,output,1,NS,trimf,-2,-1,0); a=addmf(a,output,1,ZR,trimf,-1,0,1); a=addmf(a,output,1,PS,

温馨提示

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

评论

0/150

提交评论