原创 关于matlab fuzzy anfis

2008-11-10 22:46 4861 7 7 分类: 工业电子



有一段时间没有在博客里写东西了,有的时候是不愿意写,把一些东西写在了自己的日记本里,有的时候是没有时间,而更多的时候是觉得不想写一些自己都看不懂的东西。所以一直都很慎重,但是每次还是会出好多好多的错误,事后自己看到都觉得可笑,呵呵……



前一段时间,写过一些关于模糊控制的东西,其实我也是一知半解,也没有多深入的研究和学习,因为我本身的专业和现在做的东西没有涉及到那方面,甚至自从重新做了电脑系统之后我连matlab都没有装。要不是今天“Here I am”网友的提醒,我都忘了,在此谢谢她了。呵呵……



下面是针对她的一些问题,写的一点东西,仅作参考,不全,请原谅!



如何利用matlab中的Anfis调试你的fuzzy控制。这里仅仅是一个流程,肯定有很多东西没有涉及到,而且有很多东西我也是一知半解,所以有任何错误请指出,并相互探讨。



首先在matlab的命令行中直接输入:anfisedit。然后会出现如下的界面:

62c0324c-a5e4-4666-b465-c628793b3ccf.jpg



然后编辑你自己的FIS属性,按如下的实例进行。

30c7f3cd-595a-46c3-930d-efe0bced999c.jpg



则出现如下的界面:

c35a25c9-ce5b-4bfd-b419-69da181eb275.jpg

      



在这里你可以修改你的模糊输入量的个数和输出量的数目。通常情况下我们选择两个输入,一个输出。具体的操作如下。

df1a8fd7-b5dd-4eaa-b5f2-226c79e78010.jpg



这样你的输入和输出的数目就确定了,然后下一步应该是根据你的实际项目要求来定义各个量的属性了。那么如何进入呢?如下图所示:

b6657649-2d96-469a-9f0a-4df586839f64.jpg

然后会出现输入量与输出量的隶属度函数的定义界面:

2e7e6c84-9df6-48f8-a11e-e1db4a9d995d.jpg



在这里,你就可以根据自己的实际需要修改各变量的隶属度函数了。具体怎么设置,可以在matlabhelp文件中找到各相关设置的意义和方法。下面,我们具体看一下输出的type,好吧。

d8d5c873-d27d-47d4-924c-2eefbc4664b4.jpg








从上图中我们可以看到,实际上输出有两种,一种是“constant”,另一种是“linear”。我的理解是:前一种是一种单值的输出函数,也就是说它的各输出值是不连续的,而后一种是连续的。网友“Here I am”,问的如何将输出设置为单值,我想应该是在这里选择了。因为以前我也是这样设置的,在这里就不再赘述了。



等各参数的隶属度函数设置好之后,下一步就应该是来做我们的“黑匣子”了,即设置你自己的模糊控制规则库“rule”了。有两种方式进入,如下面的两个图。



1

5a3d9916-8dcb-4fa7-8a1c-5835a8fc559e.jpg



2

ef81aedb-c873-4fca-beba-5c0f33051231.jpg





得到如下的“rule”设置界面:

132cfb9e-9e2e-4d13-9b90-5d0a8900a10c.jpg



按理讲,上图中的各个设置都是很“所见即所得”式的吧。自己试着捣鼓几次就可以了。呵呵



好了,今天就写到这里吧,有些累了,回去了。各位,晚安!呵呵


















PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
7
关闭 站长推荐上一条 /3 下一条