资源描述
Matlab模糊控制器的设计以及simulink下对模糊控制器系统的仿真
首先,在Matlab的命令窗口(command window)中输入fuzzy,回车就会出来这样一个窗口:
接下来在上述窗口中进行模糊控制器的设计:
1. 双输入,单输出:点击Edit----Add Variable---input
2. 为E添加隶属度函数,E的论域为{-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6},E的模糊集合为{NB,NM,NS,NZ,PZ,PS,PM,PB},Edit—Membership Function edit,如下图所示:
3. 为EB添加隶属度函数,EB的论域为{-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6},EB的模糊集合为{NB,NM,NS,ZE,PS,PM,PB},Edit—Membership Function edit,如下图所示:
4. 为U添加隶属度函数,U的论域为{-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6},U的模糊集合为{NB,NM,NS,ZE,PS,PM,PB},Edit—Membership Function edit,如下图所示:
其中E,EB,U均为模糊量。
5. 为模糊控制器设计模糊规则,由于E的语言变量有8个,EB的语言变量有7个,所以模糊控制器的模糊规则总共有8*7=56条,接下来为模糊控制器添加规则:双击untitled,则有下面的表格:
制定完成后,会形成模糊规则矩阵,系统会根据模糊输入量E,EB,经过模糊控制规则[56条],进而确定输出量U。
6. 对输入量模糊化以及对输出量清晰化,我们采取最小最大重心法。
7. 点击export—to file. ***#$.fis文件就是所设计的控制器。
8. 下面对我们设计的模糊控制器进行检验,所构建的系统如下:
系统分析:
模糊控制器:双输入单输出,输入为误差以及误差的变化率的模糊量,输出为控制量的模糊量,模糊控制器中有56条规则。
给定的信号:给定信号为阶跃响应,给定为100,整个系统是+反馈系统。
实际范围与模糊论域之间的比例关系,又叫量化因子,分别为三个增益:误差0.06,误差变化率0.0005,输出量10,增益必须认真选取,增益必须认真选取,增益的选取对模糊控制器的控制效果有很大的影响。
9. 对系统进行仿真结果如下:
仿真结果分析:
由仿真结果可以看到,问题1,系统在14s时已趋于稳定,给定的阶跃信号是100,最终系统却稳定在了83左右;问题2,系统的超调偏大,快速性不好。
问题1,分析原因,这和我们预先设定的规则有关系,在80+时已经默认达到PB,模糊控制器便不再调节,继而稳定在83左右,这也验证了模糊控制器是有差控制。
问题2,分析原因,这和系统的控制规则以及输入输出的增益有关系,具体的改善,可以调节增益值以及修改相关规则改善,但是不能完全消除。
展开阅读全文