nicolef 发表于 2008-4-1 13:54

simulink模糊控制结果出错,请高手帮忙啊

初次采用模糊控制工具箱设计,模型和参数仿照一篇硕士论文,结果却完全不一样,请各位高手指点!仿真曲线最终应该稳定在30,可是我的结果却是0.012

bsppp 发表于 2008-4-6 10:54

请问一下你这个MDL文件是用MATLAB的哪个版本创建的?我的6.5打不开。

另:我看了一下你的FIS文件,这个文件的规则应该有一些问题,对于E和EC的输入,只有一个U的输出,你定义了49条规则,感觉这样肯定有不必要的规则在里面,一般的是用E和EC对PID的三个参数进行整定,而且目前我看到的论文都是在已经定下PID三个参数的大的基础上用模糊规则进行微调,我还没有看到只用E和EC对U直接进行控制的,如果这个可以,那这个相当于一个PD控制器,应该无法消除稳态误差,而且这些规则的确定还有待进一步探讨。

[ 本帖最后由 bsppp 于 2008-4-6 10:55 编辑 ]

nicolef 发表于 2008-4-6 21:51

回复 2楼 的帖子

首先谢谢你的回复,我用的是matlab7.0.4,你的6,5不兼容
我看到论文里面确实也有你说的那种情况,但是我采用的这种方法,也是一篇硕士论文里的,他也提到有稳态余差,在论文的后面部分又提出了混合型模糊PID控制、自适应模糊PID控制。我也是初次接触模糊控制,所以规则是参考论文给出的,选用此论文也是因为他给出的参数比较齐全,可惜我照着做却没有出现他论文中给出的结果,不知是怎么回事。本打算以附件形式把论文发出来,可是太大了不能发,如果你想看,可以留下邮箱,或者自己下载《锅炉汽包水位模糊PID控制的研究》,华侨大学06级硕士毕业论文。希望能给予指正

bsppp 发表于 2008-4-9 16:00

我查阅了有关用 E 和 EC 控制 U 的一些资料,的确有现成的规则可以参考,个人思考后觉得这些教材上的规则应该是正确的,那么接着一个问题就是论域的问题,我查看了近年发表的一些有关变论域模糊控制方面的数十篇论文,觉得其中有许多问题,尽管李洪兴教授已经论述了有关变论域模糊控制的数学理论基础,但我在实际的练习中却发现了一些问题。

我目前做的方向是粗糙集控制,但是对于已有的传递函数构成的 MDL 模型,我觉得粗糙集无用武之地的感觉,可能是个人学习还不够吧。

我下载不了硕士论文,麻烦你发给我一份,我仔细看后尽快给你回复,共同谈讨一下有关模糊控制方面的问题。

另:我正在试变论域的问题,如果有兴趣的话,可以一起交流。

邮箱:mybsppp@163.com

yufeng 发表于 2008-4-10 11:06

规则可能有问题 论域肯定有问题

nicolef 发表于 2008-4-10 13:02

回复 4楼 的帖子

我已经给你发过去了,请查收,期待你的回复,希望共同学习:handshake

nicolef 发表于 2008-4-10 13:03

回复 5楼 的帖子

可不可以具体一点?给点明确的建议。不胜感谢

bsppp 发表于 2008-4-10 13:48

我已经收到你发的论文了,用你写的那个FIS文件中的规则我对自己的一个系统进行了控制,应该说大致是能控的,不过我用的被控系统是高阶的(5阶)的,所以在稳态时会有常值误差出现。

需要注意的是,我只用了你的那个FIS文件中的规则,其中解模糊的方法改成了 mom 方法,如果用默认的 centroid ,那在开始仿真阶段便会停止,原因是该模糊控制器输出的控制电压不断地在最大与最小之间跳跃,导致 EC 的输出也在剧烈地振荡,具体原因待查。

我会尽快将你发我的这篇论文中的例子做一下,看看具体问题出现在哪儿,共同探讨。

bsppp 发表于 2008-4-10 13:52

再:其实模糊控制本身就只是论域与规则的问题,建议可以用限幅器将模糊控制器的输入进行限幅,这样的话,至少不会出现在论域外的信号进入模糊控制器。

bsppp 发表于 2008-4-10 14:49

这个论文中有关模糊控制的这一块我已经仿真过了,用的规则是你的FIS中的规则,不过将其解模糊方式改为了 mom ,并且在模糊控制器的输入端加入了限幅为(-6 ~ +6)的限幅器,程序运行通过,不过 MATLAB 提示在MDL文件中存在一个代数环,但是程序运行结果和作者论文中的基本一致,的确存在静差,在加入一个挠动后,仿真曲线会有一个小的向上跳变,和文中的曲线基本一致。

我已经将FIS文件和MDL文件发到你邮箱,请查收,运行环境为 MATLAB6.5。
若MATLAB7,可能打不开 MDL 文件,不过你可将你的 FIS 文件稍更一下解模糊方式,并在 MDL 文件中模糊控制器的输入端加入限幅器,理由是在仿真初始段被控系统还无输出时,已经存在输入信号进来,此时为1X15的信号,已经超过 FUZZY 控制器的论域值-6~+6,故须设限幅。

关于5楼同学的说法回复:模糊规则与论域对这篇论文的系统而言都没有问题。

[ 本帖最后由 bsppp 于 2008-4-10 14:58 编辑 ]

nicolef 发表于 2008-4-11 14:13

回复 10楼 的帖子

已收到你的邮件回复:victory: ,感激涕零啊
刚开始学习模糊控制,对机理了解不深,看了你的讲解,受益菲浅,还请以后多多指教

bsppp 发表于 2008-4-11 18:03

回复 11楼 的帖子

共同学习。

满田 发表于 2008-5-3 23:34

回复 12楼 的帖子

我和楼主做的是一样的东西,也参考了楼主的说的那篇论文。波形也不对,水位的那个阶跃好像都不起作用。能告诉我问题出在哪里了吗?是哪里设定的问题吗

[ 本帖最后由 满田 于 2008-5-3 23:35 编辑 ]

nicolef 发表于 2008-5-8 18:24

回复 13楼 的帖子

我看了你的模型,你应该在模糊控制器的两个输入,加入限幅器,因为你的初始值已经在论域外面了

满田 发表于 2008-5-14 22:39

回复 14楼 的帖子

呵呵。谢谢了。我才看到。已经加上了。正在开始准备做模糊PID呢。不懂的地方多帮助呀。
页: [1] 2
查看完整版本: simulink模糊控制结果出错,请高手帮忙啊