资源描述:
《模糊控制实验报告》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、HarbinInstituteofTechnology实验模糊控制实验实验报告哈尔滨工业大学航天学院控制科学与工程系专业:自动化班级:姓名:日期:2014年12月10日20实验2一、实验目的利用Matlab软件实现模糊控制系统仿真实验,了解模糊控制的查询表方法和在线推理方法的基本原理及实现过程,并比较模糊控制和传统PID控制的性能的差异。二、实验要求设计一个二维模糊控制器分别控制一个一阶被控对象和二阶被控对象。先用模糊控制器进行控制,然后改变控制对象参数的大小,观察模糊控制的鲁棒性。为了进行对比,再设计
2、PID控制器,同样改变控制对象参数的大小,观察PID控制的鲁棒性。也可以用其他语言编制模糊控制仿真程序。三、实验内容(一)查询表式模糊控制器实验设计查询表法是模糊控制中的最基本的方法,用这种方法实现模糊控制决策过程最终转化为一个根据模糊控制系统的误差和误差变化来查询控制量的方法。本实验利用了Matlab仿真模块——直接查询表(Directlook-uptable)模块(在Simulink下的FunctionsandTables模块下去查找),将模糊控制表中的数据输入给Directlook-uptable
3、,如图1所示。设定采样时间(例如选用0.01s),在仿真中,通过逐步调整误差量化因子Ke,误差变化的量化因子Kec以及控制量比例因子Ku的大小,来提高和改善模糊控制器的性能。模糊控制器设计步骤:1、选定误差E和误差变化EC作为模糊控制器的输入(二维模糊控制器),控制量U作为模糊控制器的输出。E,EC和U的模糊集及其论域定义如下:语言变量EC和U选取的语言值集均为{NB,NM,NS,ZO,PS,PM,PB}语言变量E选取的语言值集为{NB,NM,NS,NO,PO,PS,PM,PB}E和EC论域为{-6,-
4、5,-4,-3,-2,-1,0,1,2,3,4,5,6}U的论域为{-7,-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6,7}对模糊语言值进行量化:对模糊语言值进行量化,就是将语言值用特定的模糊集合来描述,从而确定出论域内元素对应相应模糊集合的隶属度。具体的赋值表见《模糊控制》一书的93页。利用计算机根据赋值表进行计算,并采用最大隶属度法的解模糊方法,可以得到模糊控制查询表,如表1所示。20表1模糊控制表UECE-6-5-4-3-2-10+1+2+3+4+5+6-676767774420
5、00-56666666442000-47676777442000-37666666320-1-1-1-24445444100-1-1-1-14445441000-3-2-1-04445110-1-1-1-4-4-4+04445110-1-1-1-4-4-4+1222200-1-4-4-3-4-4-4+212120-3-4-4-4-3-4-4-4+30000-3-3-6-6-6-6-6-6-6+4000-2-4-4-7-7-7-6-7-6-7+5000-2-4-4-6-6-6-6-6-6-6+6000-2
6、-4-4-7-7-7-6-7-6-7在进行仿真时将上述表格中元素以矩阵形式输入到matlab直接查询表(Directlook-uptable)模块中,直接查询表模块参数的修改可以直接在对话框中修改(注意,各行元素之间须以分号隔开),也可以在Simulink/Tools/Look-uptableeditor中进行修改。图1查询表法的仿真模型2、建立仿真模型仿真模型如图1所示。考虑到输入变量的变化范围,有可能超出表中给定的值,20选择了两个饱和环节saturation1和saturation2(在simul
7、ink/discontinuities查找这个模块)作为超限的保护。Roundingfunction(在simulink/math中查找)是四舍五入环节,将小数转换为整数。因为directlook-uptable中行和列的起始号都是从零开始的,所以输入到directlook-uptable中的变量要加一个偏移量+6。Scope模块(在simulink/sinks中查找)是示波器,可以直接观察系统的输出曲线,并可以进行存储、打印。3.1设置仿真模型中各个模块的参数先设置一阶对象中的T1为2,二阶对象中的T
8、1、T2的分别为2和4,然后设定仿真时间(点击仿真模型窗口上simulation/simulationparameters进行设定)。打开directlook-uptable,将表1中的元素以矩阵形式输入到Tabledata中。然后调节Ke,Kec,和Ku的参数(对一阶系统参考数据分别是100,1,-1,二阶系统参考数据是200,5,-200),直到符合要求(如误差小于1%或者超调量小于5%)为止,观察输出曲线。改变控制对象参数(在Matl