资源描述
,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,MATLAB,应用技术,1,MATLAB,应用技术,清华大学出版社,2,6 MATLAB,与模糊控制系统,3,6,1,模糊系统的,MATLAB,实现,6,1,1,模糊集简介,模糊集是一种边界不分明的集合,模糊集与普通集合既有区别又有联系。,2,模糊集的表示,1,模糊概念,模糊集菜用隶属度来表示,论域,X,上的一个模糊集,A,,对于任意,,都指定了一个数,,叫做,x,对,A,的隶属程度 称做,A,的隶属函数。,隶属度函数有以下,11,种:,(,1,)高斯型隶属度函数,(2),双侧高斯型隶属度函数,(,3,)钟形隶属度函数,4,(,4,),Sigmoid,函数型隶属度函数,(,5,)差型,sigmoid,隶属度函数,(,6,)积型,sigmoid,隶属度函数,(,7,),Z,形隶属度函数,(,8,),形隶属度函数,(,9,),S,形隶属度函数,(,10,)梯形隶属度函数,(,11,)三角形隶属度函数,5,3,模糊逻辑运算,与运算,或运算,非运算,直积,逻辑与(,A AND B,),逻辑或(,A OR B,),逻辑非(,NOT A,),普通逻辑:,模糊逻辑,6,4,模糊规则,模糊 推理系统工程中,模糊规则以模糊语言 的形式描述人类的经验和知识,规则是否正确反映人类专家的经验和知识更新,是否能反映对象的特性,直接决定了模糊推理系统的性能,通常通过模糊规则的形式是,“,if,then,”,,前提由对模糊语言变量的语言什描述构成,如,“,温度较高,”,,,“,压力较低,”,等,结论由对输出模糊语言变量表示成输入量的精确什的组合,模糊规则的这种形式化表示的符合人们通过自然对许多知识的描述和记忆习惯的。,模糊规则的建立,总结操作人员工、专家的经验和知识。,基于过程的模糊模型。,基于学习的方法。,7,最简单的,if,then,规则的形式是:,“,如果,x,是,A,,则,y,是,B,。,”,复合型的,if,then,规则的形式很多,例如:,“,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,部分是前提或前件,,then,部分是结论或后件。,输入模糊化,确定出,if,then,规则前提中每个命题或断言为真的程度(即隶属度)。,应用模糊算子,召唤果规则的前提有几部分,则利用模糊算子可以确定出整个前提为真的程度(即整个前提的隶属度)。,应用蕴含算子,由前提的隶属度和蕴含琥子,可以确定出结论为真的程度(即结论的隶属度)。,8,5,模糊推理,模推理是采用模糊逻辑由给定的输入到输出的映射过程。模糊推理包括五个方面:,(,1,)输入变量模糊化,即把确定的输入转化为由隶属度描述的模糊集。,(,2,)在模糊规则的前件中应用模糊算子(与、或、非)。,(,3,)根据模糊蕴含运算由前提推断结论。,(,4,)合成每一个规则的结论部分,得出总的结论。,(,5,)反模糊化,即把输出的模糊量转化为确定的输出。,9,6,模糊控制,在自动控制理论中,控制器的分析与综合依赖于精确的数学模型。而系统在实际运行过程中,人们将观察到的过程输出与设定值比较,得到过程输出偏离设定值程度的模糊语义描述或过程输出偏离设定值变化快慢的模糊语义描述,经逻辑推理得出控制量的模糊量:,“,适量减少燃料,”,,经反模糊化且,转化为一精确的控制量,实现整个控制过程,以模糊集和模糊推理为基础,对上述手工操作过程进行建模,即可得到期模糊控制器。,10,6,1,2,模糊推理系统与,MATLAB,的应用,1,模糊推理系统结构,最常见的模糊推理系统的三类:,1,、纯模糊逻辑系统,2,、,Sugeno,型模糊逻辑系统,3,、,Mamdani,型模糊系统,11,2 Mamdani,型模糊逻辑系统构建,Mamdani,型是典型的模糊逻辑系统,,MATLAB,模糊逻辑工具箱中的模糊推理系统有五个过程:输入变量的模糊化、模糊关系运算、模糊合成运算、不同规则结果的综合、去模糊化。,(,1,)输入模糊化,(,2,)输入模糊集合的合成运算,(,3,)模糊蕴含方法,(,4,)输出的合成,Aggregation,(,5,)逆模糊化(解模糊化),12,6.1.3,模糊推理系统的,MATLAB,模糊工具箱的图形界面实现,模糊推理系统可通过,MATLAB,模糊工具箱的图形界面工具来实现,方法简单并且直观,也可利用,MATLAB,提供的命令行方式的模糊逻辑函数编辑实现,有利于比较复杂的模糊推系统。,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,),命令窗口键入,“,surfview,”,18,6,1,4,模糊逻辑工具箱与,Simulink,的接口,1 MATLAB,的模糊的图形化系统建模和仿真工具,Simulink,当在模糊逻辑工具箱中建立了模糊推理系统后,首先,对模糊逻辑工具箱中建立的模糊推理系统后生成,FIS,文件,然后,在,MATLAB,命令窗口键入命令,Simulink,或是直接点击工具栏上的,Simulink,图标,可以打开,Simulink,模块库浏览环境,在,Simulink,模块库浏览环境里通过选择菜单,【File】,、,【New】,、,【Model】,或直接点击工具栏上的相应图标来创建一个新的模型。在新的仿真模型编辑主窗口中搭建仿真控制系统模型。,19,例 设计典型二阶环节,,的模糊控制器,使系统输出尽快跟随系统输入。,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,环境中建立二级系统的仿真模型如下:,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,(图形用户界面)工具,函数,功能,anfisedit,打开,ANFIS,编辑器的,GUI,(图形界面),fuzzy,调用基本功的,FIS,编辑器,mfedit,隶属度函数编辑器,ruleedit,规则编辑器和解析器,ruleview,规则观测器和模糊推理框图,surfview,输出曲面观测器,26,隶属度函数,函数,功能,dsigmf,由两个,S,形隶属度函数的差构成的隶属度函数,gauss2mf,联合高斯型隶属度函数,gaussmf,高斯型隶属度函数,gbellmf,广义钟形隶属并函数,pimf,形隶属度函数,psigmf,由两个,S,形隶属度函数的积构成的隶属度函数,smf,S,状隶属度函数,sigmf,S,形隶属并函数,trapmf,梯形隶属度函数,trimf,三角形隶属度函数,zmf,Z,形隶属度函数,27,FIS,数据结构管理,函数,功能,addmf,隶属度函添加到,FIS,(模糊推理系统),addrule,在,FIS,中添加规则,addvar,在,FIS,中添加变量,defuzz,反模糊化的隶属度函数,evalfis,完成模糊推理计算,evalmf,普通隶属度函数的计算,gensurf,产生,FIS,输出曲面,getfis,获取模糊系统的特性,mf2mf,在隶属度函数之间进行参数变换,newfis,建立新的,FIS,parsrule,模糊规则解析,plotfis,绘图表示,FIS,plotmf,绘制出给定变量的所有隶属度函数,readfis,从磁盘中装入,FIS,rmmf,从,FIS,中删除隶属度函数,rmvar,从,FIS,中删除变量,setfis,设置模糊系统的特性,showfis,显示带注释的,FIS,showrule,显示,FIS,规则,writefis,将,FIS,结构保存到磁盘文件中,28,先进技术,函数,功能,anfis,Sugeno,型的训练程序,fcm,模糊,C,均值聚类,genfis1,从示加聚类的数据中产生,FIS,结构,genfis2,利用减法聚类从数据中产生,FIS,结构,subclust,找出减法聚类的聚类中心,29,Simulink,仿真方框,函数,功能,fuzblock,模糊逻辑控制器框图仿真,sffis,Simulink,中和模糊推理,S,函数,30,其余函数,函数,功能,convertfis,FIS,结构的版本变换,findcluster,模糊,C,均值和减法聚类的交互聚类,GUI,fuzarith,完成模糊算术运算,mam2sug,将,Mamdani,型的,FIS,变换成,Sugeno,型,FIS,fuzdemos,模糊逻辑工具箱演示程序列表,help fuzzy,31,模糊 系统演示程序,函数,功能,defuzzdm,去模糊方法,fcmdemo,FCM,聚类方法演示(二维),gasdemo,使用减法聚类的,ANFIS,演示,juggler,魔球演示,invkine,机械臂的倒置,irisfcm,FCM,聚类演示(四维),noisedm,自适应噪声对消,slbb,球棒控制,slcp,倒立摆控制,sltank,水位控制,sltankrule,水位控制(得用规则观测器),sltbu,卡车倒车控制,32,6,2,2 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,功能:广义钟形隶属度函数。,格式:,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,,,a b c),(,11,),zmf,功能:,Z,形隶属度函数。,格式:,y=zmf(x,a b),35,2,FIS,数据结构管理,(,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=defuzz(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.,格式:,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),38,(,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,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,19,Showrule,功能:显示,FIS,规则。,格式:,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,结构。,格式:,fismat=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,flag,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,6,2,3 MATLAB,模糊逻辑工具箱命令函数应用实例,设计典型二阶环节:,的模糊控制器,使系统输出尽快跟随系统输入。,47,隶属度函数,误差隶属度函数,误差变化率隶属度函数,48,输出隶属度函数,49,FC,的模糊推量规则表,ue,de,NB,NS,ZR,PS,PB,NB,PB,PB,PS,PS,ZR,NS,PB,PS,PS,ZR,ZR,ZR,PS,PS,ZR,ZR,NS,PS,PS,ZR,ZR,NS,NS,PB,ZR,ZR,NS,NS,NB,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);,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,trimf,0,1,2);,a=addmf(a,output,1,PB,trapmf,1,2,3,3);,%,模糊规则矩阵,51,%,模糊规则矩阵,rr=5 5 4 4 3,5 4 4 3 3,4 4 3 3 2,4 3 3 2 2,3 3 2 2 1;,rr=zeros(prod(size(rr),3);,k=1;,for i=1:size(rr,1),for j=1:size(rr,2),r1(k,:)=i,j,rr(i,j);,k=k+1;,end,end,r,s=size(r1);,r2=ones(r,2);,rulelist=r1,r2;,a=addrule(a,rulelist);,52,%,模糊控制系统仿真,e=0;,de=0;,ke=30;,kd=20;,ku=1;,for k=1:N,e1=ke*e;,de1=kd*de;,if e1=6,e1=6;,elseif e1=6,de1=6;,elseif de1=-6,de1=-6;,end,53,%,模糊推理,计算被控对象输入,in=e1 de1;,u=ku*evalfis(in,a);,uu(1,k)=u;,%,控制作用于被控系统,计算系统输出,k0=a1*x+b*u;,k1=a1*(x+h*k0/2)+b*u;,k2=a1*(x+h*k1/2)+b*u;,k3=a1*(x+h*k2)+b*u;,x=x+(k0+2*k1+2*k2+k3)*h/6;,y=c*x+d*u;,yy(1,k)=y;,%,计算系统输出误差及误差变化率,e1=e;,e=y-R(1,k);,de=(e-e1)/T;,end,%,模糊控制输出曲线,kk=1:N*T;,figure(1);,plot(kk,R,k,kk,yy,r);,grid on,54,系统阶跃响应曲线,
展开阅读全文