- 12
- 0
- 约4.79千字
- 约 15页
- 2016-04-27 发布于湖北
- 举报
调用fuzzy工具箱,生成的是一个.fis的文件,文件名就是你在工具箱里边定义的名字,如图中的4位置。
通过调用file—import—from file可以导入使用文本编辑其编辑好的fis文件,进行修改。
可以把编辑好的模糊推理器导出到文件中。File—export
如图中1位置,当选中一个模块的时候,相应的模块边框会变色。双击就可以对他进行编辑,输入的模糊话,输出(图总位置3)的去模糊。
双击图中2位置的模块添加相应的模糊推理规则,对应生成的fis文件当中的[rules]下边的东东。
图中位置5和位置6对应的地方的内容基本不用变,目前模糊推理一般都用的这种方法。
图中位置7的位置是选中上边的模块的时候,相应的信息,可以修改名字,但不能编辑其他的内容。
这个图是模糊推理 输入输出成员函数(membership function)的编辑其,选中位置1的其中一个,就可以编辑对应的隶属度函数。
Add MFS 是成组添加隶属度函数。这种方式添加的时候,隶属度函数的类型是一样的,比如都用三角函数,或都用高斯函数。用三角的多。
Add custom mf这个是单独添加一个隶属度函数。
其中涉及到得几个变量是:模糊语言变量名称。如图总共的mf1,mf2,对应实际用的NB NM之类的。还有就是隶属度函数类型。再一个就是隶属函数对应的几个端点。高斯和三角都有三个,s型函数和z型函数有两个。
当然添加隶属度函数的时候,可以先确定形状,选用什么类型的函数,然后是用几个,完了先粗略的添加进来。之后可以在上图位置2对应要修改的隶属函数,选中以后,移动各个小方块,再细改。注意位置2右上角的,那个是函数曲线显示的点数,显示的越多,越精细,但是可能就越耗cpu。
我见过的一般都用三角,计算简单。顶多最左边用z型函数,最右边用s函数。中间用一个高斯。
输入输出隶属度函数确定后,完了就是编辑模糊规则
位置1为添加好的规则。
位置2为输入组合逻辑,mf1,mf2对应各个输入的模糊语言变量,具体看实际是定的名字。如NB,NM。。。。。
可以对某个模糊语言变量执行not逻辑。输入组合的时候可以选择and或者是or。
权重一般都是1。。。。
位置3的地方是对应的左边的2的每个阻隔逻辑,输出要输出的那个模糊语言变量。
最红点addrule 就可以在位置1看到相应的新添加的模糊规则。
完了点最上边模糊工具箱的file---export---to workspace 导入模糊推力器到工作空间
File—export—to file是到出到文件。最好导出到文件,这样下次还可以用,文件名就是你在simulink调用模糊逻辑块是要写的名字,加后缀,然后用单引号括起来。
到此,一个完整的模糊推理机(模糊控制器)就完成了。
下边是我用到的2输入3输出,输入、输出每个都有7个模糊语言变量,共有7*7共49条rules,下边是抓图。
下边是生成的fis文件。在这个里边修改也可以达到同样的效果。
在fis文件当中,不能有注释什么的。
[System] 这个是关键字
Name=fuzzypid 模糊推理机名字,这个最好和文件名字统一
Type=mamdani 类型,不用变
Version=2.0 版本
NumInputs=2 输入变量个数,按实际的来
NumOutputs=3 输出变来那个个数,按实际的来
NumRules=49 rules个数
AndMethod=min 不用变
OrMethod=max 不用变
ImpMethod=min 不用变
AggMethod=max 不用变
DefuzzMethod=centroid 不用变,解模糊方法
[Input1] 不能变,第一个输入变量
Name=e 输入变量的名字
Range=[-3 3] 论域范围
NumMFs=7 模糊语言个数
MF1=NB:zmf,[-3 1] 第一个模糊语言变来那个对应的隶属度函数,改后边的就成,分别是模糊语言变量名,隶属函数形状,关键点。下同,输入变量,输出变量
MF2=NM:trimf,[-3 -2 0]
MF3=NS:trimf,[-3 -1 1]
MF4=Z:trimf,[-2 0 2]
MF5=PS:trimf,[-1 1 3]
MF6=PM:trimf,[0 2 3]
MF7=PB:smf,[-1 3]
[Input2] 第二个输入
Name=ec
Range=[-3 3]
NumMFs=7
MF1=NB:zmf,[-3 1]
MF2=NM:trimf,[-3 -2 0]
MF3=NS:trimf,[-3 -1 1]
MF4=Z:trimf,[-2 0 2]
MF5=P
原创力文档

文档评论(0)