您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > 模糊控制位置跟踪的SIMULINK仿真
智能控制作业二“模糊控制位置跟踪的SIMULINK仿真一、题目设被控对象的传递函数为sssG252500)(2,输入信号为方波,周期为1秒,幅值为1,(可以用PulseGenerator模块来产生)。1)试设计两输入单输出模糊控制器,输入为偏差E和偏差变化率EC,输出为控制量U,使系统输出能实时跟踪输入信号。2)通过仿真理解并分析E和EC的参数选择对系统稳态误差和动态性能的影响,这些参数包括模糊子集的个数,论域的范围等。作业中最好把不同参数下的仿真结果附上。二、MATLAB解决方案1、模糊控制模块的创建在MATLAB命令窗口中输入fuzzy命令,会弹出模糊控制GUI界面,打开隶属度函数编辑窗口,输入变量为E和EC,输出变量为U,输入输出论域均设置为[-33],每个变量都设置NB,NM,NS,ZO,PS,PM,PB七个模糊子集,每个变量的隶属度函数均如图1所示,为了使输入误差在零附近反应敏感,这一部分隶属度函数设置得比较尖。图1隶属度函数编辑窗口根据如表1输入控制规则,如图2所示:表1控制规则编辑完成后可以看到如图3所示的模糊输入与输出的三维示意图:图2控制规则输入窗口图3输出三维示意图2、simulink的仿真新建一个model,搭建如图4所示的控制框图,保存为fuc2文件夹中的fuz_ctrl.mdl。其中增益模块用来控制将输入或输出与模糊控制器的论域相匹配。图4simulink控制框图3、调试后的仿真结果经过调试优化,最终得到的仿真波形如图5所示。其中Ke=3,Kec=0.06,Ku=1.图5最终运行结果三、控制参数对控制结果的影响1、论域对控制结果的影响这里采用Ke和Kec来起到控制输入变量的论域的作用,当增大量化因子,相当于缩小了输入变量的论域,当减小量化因子时,相当于增大了输入变量的论域。在原来的基础上改变Ke,Kec的值,通过观察跟踪效果来说明论域对控制结果的影响。首先讨论偏差E的论域对控制结果的影响:保持Kec=0.06,当Ke=4时,运行结果如图6所示:图6Ke=4时的运行结果当Ke=1时的运行结果如图7所示:图7Ke=1时运行结果从以上两幅图的对比可以看出,当偏差E的论域过大时,响应速度回变慢,超调会减小,当论域过小时,响应速度回变快,但会出现超调。下面讨论偏差的变化率对控制结果的影响:保持Ke=3,当Kec=0.4时的运行结果如图8所示:图8Kec=0.04时的运行结果当Kec=0.12时的运行结果如图9所示:图9Kec=0.12时的运行结果从以上两图的对比可以看出,偏差的变化率的论域增大有利于提高响应时间,但会引起过大的超调,论域减小有利于减小超调,但会减慢响应速度,在实际控制中应该综合考虑以上两点。2、模糊子集个数对控制结果的影响本示例中设置了七个模糊子集,在同样的控制参数下,模糊子集个数为5和3时的控制结果图:其中模糊子集数为5时的仿真模型保存为文件夹fuc2_1中的fuz_ctrl2.mdl,模糊子集数为3的仿真模型保存为文件夹fuc2_2中fuz_ctrl3.mdl。图10模糊子集为5个是响应波形图11模糊子集为7个和5个时局部放大比较图12模糊子集个数为3时的响应波形从上述几幅波形对比可以看到,模糊子集个数越少,其控制就越不精确,引起的误差也越大,但当模糊子集个数太大时,每一步计算花费的时间会变长,在实际设计中应综合考虑这两个因素。四、讨论与心得此次大作业主要利用了模糊控制的GUI界面为simulink创建一个论域连续的模糊控制模型,然后将其运用到实际的控制过程当中去。在刚开始时,隶属度函数和控制规则就采用常用的函数和控制规则。最初遇到的问题就是论域我都选择了[-33],然后仿真出来的波形根本不对,于是我查阅了相关的文献,在输入和输出的环节中都加入了一个量化因子,用示波器观察了偏差和偏差的变化率的变化范围以后,按照课本中的公式2eHLmKee,2ecHLnKecec,初步选择了Ke和Kec,Ku初步选择为1,然后再调整各个量化因子,观察各个参数对结果的影响,最后得到一个比较理想的结果。由于修改论域比较麻烦,我就采用了这种量化因子的方式对论域进行了讨论,因为这两者的效果是一样的。经过调整后得到图形后,发现在误差快为零的那一段变化不是很敏感,因此我又对隶属度函数进行了适当的修改,使得误差较小时的隶属度函数变得尖一点,使得系统对误差较小时的响应变得比较敏感,分辨率提高。总体来说,这个跟踪效果还是比较理想的。
本文标题:模糊控制位置跟踪的SIMULINK仿真
链接地址:https://www.777doc.com/doc-5553328 .html