MATLAB模糊工具箱使用指南设计2

上传人:大米 文档编号:504394519 上传时间:2023-06-01 格式:DOC 页数:14 大小:176KB
返回 下载 相关 举报
MATLAB模糊工具箱使用指南设计2_第1页
第1页 / 共14页
MATLAB模糊工具箱使用指南设计2_第2页
第2页 / 共14页
MATLAB模糊工具箱使用指南设计2_第3页
第3页 / 共14页
MATLAB模糊工具箱使用指南设计2_第4页
第4页 / 共14页
MATLAB模糊工具箱使用指南设计2_第5页
第5页 / 共14页
点击查看更多>>
资源描述

《MATLAB模糊工具箱使用指南设计2》由会员分享,可在线阅读,更多相关《MATLAB模糊工具箱使用指南设计2(14页珍藏版)》请在金锄头文库上搜索。

1、wordMATLAB模糊工具箱使用指南IMUST2011-4-20WO4WUHUITING本文简单介绍了matlab模糊工具箱的使用,如何添加输入和输出变量,以与其论域和隶属度函数的编辑,模糊规如此的建立。调用fuzzy工具箱,生成的是一个.fis的文件,文件名就是你在工具箱里边定义的名字,如图中的4位置。通过调用fileimportfrom file可以导入使用文本编辑其编辑好的fis文件,进展修改。可以把编辑好的模糊推理器导出到文件中。Fileexport如图中1位置,当选中一个模块的时候,相应的模块边框会变色。双击就可以对他进展编辑,输入的模糊话,输出图总位置3的去模糊。双击图中2位置的

2、模块添加相应的模糊推理规如此,对应生成的fis文件当中的rules下边的东东。图中位置5和位置6对应的地方的内容根本不用变,目前模糊推理一般都用的这种方法。图中位置7的位置是选中上边的模块的时候,相应的信息,可以修改名字,但不能编辑其他的内容。这个图是模糊推理 输入输出成员函数membership function的编辑其,选中位置1的其中一个,就可以编辑对应的隶属度函数。Add MFS 是成组添加隶属度函数。这种方式添加的时候,隶属度函数的类型是一样的,比如都用三角函数,或都用高斯函数。用三角的多。Add custom mf这个是单独添加一个隶属度函数。其中涉与到得几个变量是:模糊语言变量名

3、称。如图总共的mf1,mf2,对应实际用的NB NM之类的。还有就是隶属度函数类型。再一个就是隶属函数对应的几个端点。高斯和三角都有三个,s型函数和z型函数有两个。当然添加隶属度函数的时候,可以先确定形状,选用什么类型的函数,然后是用几个,完了先粗略的添加进来。之后可以在上图位置2对应要修改的隶属函数,选中以后,移动各个小方块,再细改。注意位置2右上角的,那个是函数曲线显示的点数,显示的越多,越精细,但是可能就越耗cpu。我见过的一般都用三角,计算简单。顶多最左边用z型函数,最右边用s函数。中间用一个高斯。输入输出隶属度函数确定后,完了就是编辑模糊规如此位置1为添加好的规如此。位置2为输入组合

4、逻辑,mf1,mf2对应各个输入的模糊语言变量,具体看实际是定的名字。如NB,NM。可以对某个模糊语言变量执行not逻辑。输入组合的时候可以选择and或者是or。权重一般都是1。位置3的地方是对应的左边的2的每个阻隔逻辑,输出要输出的那个模糊语言变量。最红点addrule 就可以在位置1看到相应的新添加的模糊规如此。完了点最上边模糊工具箱的file-export-to workspace 导入模糊推力器到工作空间Fileexportto file是到出到文件。最好导出到文件,这样下次还可以用,文件名就是你在simulink调用模糊逻辑块是要写的名字,加后缀,然后用单引号括起来。到此,一个完整的

5、模糊推理机模糊控制器就完成了。下边是我用到的2输入3输出,输入、输出每个都有7个模糊语言变量,共有7*7共49条rules,下边是抓图。下边是生成的fis文件。在这个里边修改也可以达到同样的效果。在fis文件当中,不能有注释什么的。System 这个是关键字Name=fuzzypid 模糊推理机名字,这个最好和文件名字统一Type=mamdani 类型,不用变 版本NumInputs=2 输入变量个数,按实际的来NumOutputs=3 输出变来那个个数,按实际的来NumRules=49 rules个数AndMethod=min 不用变OrMethod=max 不用变ImpMethod=min

6、 不用变AggMethod=max 不用变DefuzzMethod=centroid 不用变,解模糊方法Input1 不能变,第一个输入变量Name=e 输入变量的名字Range=-3 3 论域X围NumMFs=7 模糊语言个数MF1=NB:zmf,-3 1 第一个模糊语言变来那个对应的隶属度函数,改后边的就成,分别是模糊语言变量名,隶属函数形状,关键点。下同,输入变量,输出变量MF2=NM:trimf,-3 -2 0MF3=NS:trimf,-3 -1 1MF4=Z:trimf,-2 0 2MF5=PS:trimf,-1 1 3MF6=PM:trimf,0 2 3MF7=PB:smf,-1

7、3Input2 第二个输入Name=ecRange=-3 3NumMFs=7MF1=NB:zmf,-3 1MF2=NM:trimf,-3 -2 0MF3=NS:trimf,-3 -1 1MF4=Z:trimf,-2 0 2MF5=PS:trimf,-1 1 3MF6=PM:trimf,0 2 3MF7=PB:smf,-1 3Output1 第一个输出Name=kpRange=-0.3 0.3NumMFs=7MF1=NB:zmf,-0.3 -0.1MF2=NM:trimf,-0.3 -0.2 0MF3=NS:trimf,-0.3 -0.1 0.1MF4=Z:trimf,-0.2 0 0.2MF5

8、=PS:trimf,-0.1 0.1 0.3MF6=PM:trimf,0 0.2 0.3MF7=PB:smf,0.1 0.3Output2Name=kiRange=-0.06 0.06NumMFs=7MF1=NB:trimf,-0.06 -0.06 -0.02MF2=NM:trimf,-0.06 -0.04 0MF3=NS:trimf,-0.06 -0.02 0.02MF4=Z:trimf,-0.04 0 0.04MF5=PS:trimf,-0.02 0.02 0.06MF6=PM:trimf,0 0.04 0.06MF7=PB:trimf,0.02 0.06 0.06Output3Name=

9、kdRange=-3 3NumMFs=7MF1=NB:zmf,-3 1MF2=NM:trimf,-3 -2 0MF3=NS:trimf,-3 -1 1MF4=Z:trimf,-2 0 2MF5=PS:trimf,-1 1 3MF6=PM:trimf,0 2 3MF7=PB:smf,-1 3Rules 这个是模糊推理规如此 分别是输入,输出,(1):1这两个不用变。比如用的是NB,NM,NS,Z,PS,PM,PB的话,NB就是1,依次类推7*7=49条模糊规如此,主要是要遍历两个输入,每个输入有7个,就是49条了.1 1, 7 1 5 (1) : 11 2, 7 1 3 (1) : 11 3,

10、6 2 1 (1) : 11 4, 6 2 1 (1) : 11 5, 5 3 1 (1) : 11 6, 4 4 2 (1) : 11 7, 4 4 5 (1) : 12 1, 7 1 5 (1) : 12 2, 7 1 3 (1) : 12 3, 6 2 1 (1) : 12 4, 5 3 2 (1) : 12 5, 5 3 2 (1) : 12 6, 4 4 3 (1) : 12 7, 3 4 4 (1) : 13 1, 6 1 4 (1) : 13 2, 6 2 3 (1) : 13 3, 6 2 3 (1) : 13 4, 5 3 2 (1) : 13 5, 4 4 3 (1) :

11、13 6, 3 5 3 (1) : 13 7, 3 5 4 (1) : 14 1, 6 2 4 (1) : 14 2, 6 2 3 (1) : 14 3, 5 3 3 (1) : 14 4, 4 4 3 (1) : 14 5, 3 5 3 (1) : 14 6, 2 6 3 (1) : 14 7, 2 6 4 (1) : 15 1, 5 2 4 (1) : 15 2, 5 3 4 (1) : 15 3, 4 4 4 (1) : 15 4, 3 5 4 (1) : 15 5, 3 5 4 (1) : 15 6, 2 6 4 (1) : 15 7, 2 7 4 (1) : 16 1, 5 4 7

12、(1) : 16 2, 4 4 5 (1) : 16 3, 3 5 5 (1) : 16 4, 2 5 5 (1) : 16 5, 2 6 5 (1) : 16 6, 2 7 5 (1) : 16 7, 1 7 7 (1) : 17 1, 4 4 7 (1) : 17 2, 4 4 7 (1) : 17 3, 2 5 6 (1) : 17 4, 2 6 6 (1) : 17 5, 2 6 5 (1) : 17 6, 1 7 5 (1) : 17 7, 1 7 7 (1) : 1用m文件进展模糊仿真的话,你那个pid书里边就有程序,大概过程是:a=newfis(fuzzypid); 添加模糊推理

13、器aa=addvar(a,input,e,-3,3); 给推力器a添加变量,input或output,变量名字,X围,下边这句是添加membership function。a=addmf(a,input,1,NB,zmf,-3,1);哪个模糊推理器,变量类型IN/OUT,顺序在rule中用到,语言变量,函数类型,关键点。输入输出都一样。添加完输入输出变量得隶属度函数,下边就是添加模糊规如此。rulelist=1 1 7 1 5 1 1; 1 2 7 1 3 1 1;. 7 7 1 7 7 1 1;a=addrule(a,rulelist);先输入模糊规如此,然后调用addrule把模糊规如此添加到指定的模糊推理器a。a=setfis(a,defuzzmethod,centroid);解模糊方法writefis(a,fuzzypid);a=readfis(fuzzypid); 可用可不用。如果有现成的,上边的可以不用,直接用readfis就可以把保存的fis文件送给ak_pid=evalfis(e_1,ec_1,a);这句是在仿真时候,进展模糊推理,送一组输入,经模糊推理后,得到一组输出。模糊控制器的设计我认为最麻烦的是:输入输出的匹配问题,隶属函数的划分,关键点的处理,还有模糊规如此,没有可参照的程序,是个很麻烦的工作,得反复看曲线,然后修改,最终才可能得到有效的曲线。 /

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号