智能控制模糊控制器设计_第1页
智能控制模糊控制器设计_第2页
智能控制模糊控制器设计_第3页
智能控制模糊控制器设计_第4页
智能控制模糊控制器设计_第5页
已阅读5页,还剩42页未读 继续免费阅读

下载本文档

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

文档简介

★一.模糊控制器的设计步骤如下:1.确定模糊控制器的总体结构2.实现清晰量的模糊化①定义输入/输出量对应的论域及其模糊集②定义模糊集的隶属函数,确定论域内元素对模糊集的隶属度3.

编制模糊控制规则建立模糊控制规则表4.

模糊推理5.

清晰化1.基本论域与模糊论域(1)基本论域本次设计中要求系统在运行时,液位偏差能够稳定在

[-2m2m]之间,则:e的基本论域为[-22]。根据实际经验和模糊控制器设计情况:ec的基本论域定为:[-0.2,0.2]。1.确定模糊控制器的结构二维2.实现清晰量的模糊化?(2)模糊论域偏差语言变量E所取的模糊集合的论域为:X={-n,-n+1,…,0,…,n-1,n},偏差变化率语言变量EC所取的模糊集合的论域为:Y={-m,-m+1,…,0,…,m-1,m}

本次设计中液位偏差语言变量E所取的模糊集合的论域为:X={-3,-2,-1,0,1,2,3}。偏差变化率语言变量EC所取的模糊集合的论域为:Y={-3,-2,-1,0,1,2,3}。控制阀门开度语言变量U所取的模糊集合的论域为:Z={-4.5,-3,-1.5,0,1.5,3,4.5}(3).量化因子偏差、偏差变化率的量化因子分别用下面两式确定:=n/,=m/在本次设计中:n=3,=2,则=3/2=1.5

m=3,=0.2,则=3/0.2=15

3.定义模糊集合及其隶属度函数表(1)定义模糊集合考虑偏差、偏差变化及控制量的正负性,我们选取语言变量的语言值为7个:PB(正大),PM(正中),PS(正小),Z(零),NS(负小),NM(负中),NB(负大)因此,模糊子集可表示为:

{

NB,NM,NS,Z,PS,PM,PB}。

(2)隶属度函数语言变量论域上的模糊子集由其论域上的隶属度函数μ(x)来描述其中偏差e与偏差的变化率ec的各个隶属函数的参数分别为[–3,–1],[–3,–2,0],

[–3,–1,+1],[–2,0,+2],[–1,1,+3],

[0,+2,+3],[+1,+3]。控制量u的各个隶属函数的参数分别为

[–4.5,–1.5],[–4.5,–3,0],[–4.5,–1.5,1.5],

[–3,0,+3],[–1.5,1.5,+4.5],[0,+3,+4.5],[+1.5,+4.5]控制量u的七个等级代表的意思分别是:NB:快速关,NM:中速关,NS:慢速关,PS:慢速开,PM:中速开,PB:快速开,

Z:阀门不动。-3-2-10123PB000000.51.0PM00000.51.00PS0000.51.00.50Z000..51.00.500NS00.51.00.5000NM01.00.50000NB1.00.500000e、ec的隶属度函数表-4.5-3-1.501.534.5PB000000.51.0PM00000.51.00PS0000.51.00.50Z000.51.00.500NS00.501.00.5000NM01.00.50000NB1.00.5000000u的隶属度函数表3.编制模糊控制规则,建立模糊控制规则表

e的语言值有7个,ec的语言值也有7个,若按排列组合来考虑,有7×7=49条模糊控制规则,将其整理成模糊控制规则表,如表4-3所示。控制量u偏差eNBNMNSZPSPMPB偏差变化量ecNBNBNBNMNMNSZZNMNBNBNMNSNSZPSNSNMNMNMNSZPSPSZNMNMNSZPSPMPMPSNSNSZPSPSPMPMPMNSZPSPMPMPMPBPBZZPMPMPMPBPB模糊控制规则表将模糊控制规则加入规则编辑器:模糊控制量的选取一般遵循如下原则:1).当偏差大或者较大时,模糊控制量的选择应以消除偏差为主;2).当偏差较小时,模糊控制量的选择应以系统的稳定性为主,防止系统超调。因为在本设计中e=-3,ec=-3

根据前面模糊化结果,此时有:

=()◦[()→]

=[◦(→)][◦(→)]

=()===[10.500000]=[10.500000]=[10.500000]С′=(

=()◦×)◦R×××

对于表4-3模糊控制规则表第一行第一列的模糊控制规则:若e为NBandec为NB,则u为NB,根据表4.1和表4.2可得:

=→=→

=∧[1.00.500000]==[10.500000]=[10.500000]=[10.500000]=(→)=[1.00.500000]◦=[1.00.500000]=→=→

=∧

[1.00.500000]==◦(→)=[10.500000]◦

=[1.00.500000]==[1.00.500000]

◦按如上同样的方法即可依次求得最终求得:

==[10.500000]四.反模糊化加权平均法FuzzyControllerDesignclearall;closeall;a=newfis('fuzzf');f1=1;a=addvar(a,'input','e',[-3*f1,3*f1]);%Parameterea=addmf(a,'input',1,'NB','zmf',[-3*f1,-1*f1]);a=addmf(a,'input',1,'NM','trimf',[-3*f1,-2*f1,0]);a=addmf(a,'input',1,'NS','trimf',[-3*f1,-1*f1,1*f1]);a=addmf(a,'input',1,'Z','trimf',[-2*f1,0,2*f1]);a=addmf(a,'input',1,'PS','trimf',[-1*f1,1*f1,3*f1]);a=addmf(a,'input',1,'PM','trimf',[0,2*f1,3*f1]);a=addmf(a,'input',1,'PB','smf',[1*f1,3*f1]);f2=1;a=addvar(a,'input','ec',[-3*f2,3*f2]);%Parametereca=addmf(a,'input',2,'NB','zmf',[-3*f2,-1*f2]);a=addmf(a,'input',2,'NM','trimf',[-3*f2,-2*f2,0]);a=addmf(a,'input',2,'NS','trimf',[-3*f2,-1*f2,1*f2]);a=addmf(a,'input',2,'Z','trimf',[-2*f2,0,2*f2]);a=addmf(a,'input',2,'PS','trimf',[-1*f2,1*f2,3*f2]);a=addmf(a,'input',2,'PM','trimf',[0,2*f2,3*f2]);a=addmf(a,'input',2,'PB','smf',[1*f2,3*f2]);f3=1.5;a=addvar(a,'output','u',[-3*f3,3*f3]);%Parameterua=addmf(a,'output',1,'NB','zmf',[-3*f3,-1*f3]);a=addmf(a,'output',1,'NM','trimf',[-3*f3,-2*f3,0]);a=addmf(a,'output',1,'NS','trimf',[-3*f3,-1*f3,1*f3]);a=addmf(a,'output',1,'Z','trimf',[-2*f3,0,2*f3]);a=addmf(a,'output',1,'PS','trimf',[-1*f3,1*f3,3*f3]);a=addmf(a,'output',1,'PM','trimf',[0,2*f3,3*f3]);a=addmf(a,'output',1,'PB','smf',[1*f3,3*f3]);rulelist=[11111;%Editrulebase12111;13211;14211;15311;16411;17411;21111;22111;23211;24311;25311;26411;27511;31211;32211;33211;34311;35411;36511;37511;

41211;42211;43311;44411;45511;46611;47611;51311;52411;53411;54511;55511;56611;57611;

61311;62411;63511;64611;65611;66611;67711;71411;72411;73611;74611;75611;76711;77711];

a=addrule(a,rulelist);注:①addrule函数有两个变量,第一个变量a为FIS的变量名,第二个变量rulelist表示规则的矩阵。②规则列表矩阵的格式有严格的要求:当模糊系统有m个输入、n个输出时,规则列表矩阵为m+n+2列,前m列表示系统的输入,每列的数值表示输入变量隶属度函数的编号;接着的n列表示系统的输出,每列的数值表示输出变量隶属度函数的编号;第m+n+1的内容为该条规则的权值(0~1);第m+n+2列的值决定模糊操作符的类型1(and),2(or)%showrule(a)%Showfuzzyrulebase-4a1=setfis(a,'DefuzzMethod','mom');%Defuzzy(注:setfis设置模糊系统的特性)writefis(a1,'fuzzf');%savetofuzzyfile"fuzz.fis"whichcanbesimulatedwithfuzzytool注:①writefis可将Matlab工作空间中的FIS结构变量

fismat保存到磁盘文件中。②writefis(fismat,'filename')可直接指定文件名

filename.fis,这时不会出现对话框,文件保存在当前目录中。③writefis(fismat,'filename','dialog')可打开对话框,并且以filename.fis为省缺文件名)。a2=readfis('fuzzf');注:①

filename格式fismat=readfis(‘filename’)表示从磁盘的.fis文件(文件名为filename)中读取模糊推理系统,并保存在工作空间中。②格式fismat(结构变量)=readfis(不带输入变量)将打开读取文件的对话框,以便输入文件名及其路径disp('-------------------------------------------------------');disp('fuzzycontrollertable:e=[-3,+3],ec=[-3,+3]');disp('-------------------------------------------------------');Ulist=zeros(7,7);fori=1:7forj=1:7e(i)=-4+i;ec(j)=-4+j;Ulist(i,j)=evalfis([e(i),ec(j)],a2);注:①格式output=evalfis(input,fismat)表示完成模糊推理计算。其中:input指定输入的数值或矩阵。

②fismat为要计算的FIS结构endendUlist=ceil(Ulist)(注:ceil表示对+∞方向取整数)figure(1);plotfis(a2);figure(2);plotmf(a,'input',1);figure(3);plotmf(a,'input',2);figure(4);plotmf(a,'output',1);-------------------------------------------------------fuzzycontrollertable:e=[-3,+3],ec=[-3,+3]-------------------------------------------------------Ulist=-4-4-2-2-1-10-4-2-2-1-102-2-2-1-1022-2-1-10223-1-102233-10223350223355a1=setfis(a,'DefuzzMethod',‘centroid');%Defuzzy-------------------------------------------------------fuzzycontrollertable:e=[-3,+3],ec=[-3,+3]-------------------------------------------------------Ulist=-3-2-2-1-101-2-2-2-1011-2-2-10112-1-100122-100123301223331123334一.进入FIS编辑器在Matlab的CommandWindow窗口的提示符下,键入Fuzzy可打开FIS编辑器。二.建立初步的模糊推理系统

在FIS编辑器的界面上所需做的工作为:

(1)首先,由于本例有2个输入变量,因此需要添加1个输入变量,进行的操作为:菜单Edit→Addvariable…→Input此时,系统便有2个输入变量,1个输出变量。其次,给输入、输出变量命名:点输入框(input1或input2)或输出框(output1),在CurrentVariable组合框的Name编辑栏内修改变量名。本例中,input1命名为e,input2命名为ec,output命名u。(3)第三,保存系统:菜单File→Export→ToDisk…。这里,将我们创建的系统命名为YWControl。

三.建立各变量的隶属函数打开隶属函数编辑器在FIS编辑器的GUI界面上双击变量E(或从FIS编辑器的View下拉菜单下选择“Editmembershipfunctions...”,或在命令行键入“mfedit”),打开隶属函数编辑器。四.打开模糊规则编辑器

双击FIS编辑器上部中央表示模糊推理系统的“YWCONTRSYS”白色方块(或从FIS编辑器的View下拉菜单选中“Editrules...”),将打开模糊规则编辑器。

加入模糊控制规则选择模糊规则编辑器左边输入变量E的语言值为NB,E

温馨提示

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

评论

0/150

提交评论