您好,欢迎访问三七文档
智能控制课程作业模糊控制理论实验报告题目洗衣机系统模糊控制建模与仿真班级姓名学号2014年3月13日一.实验目的通过设计洗衣机洗涤时间的模糊控制系统,理解模糊控制的基本原理。掌握模糊控制系统MATLAB建模与仿真的方法。二.实验原理洗衣机洗涤时间的模糊控制是一个开环模糊决策过程,其基本原理框图如图1-1所示。它的核心部分是模糊控制器,模糊控制器的控制律由计算机程序来实现。传感器油脂质量污泥质量AD转换计算机控制变量模糊量化处理模糊控制规则模糊决策重心法反模糊化处理得到洗涤时间z执行机构(电机)xy模糊控制器(微机)Z图1-1系统原理框图系统选用两输入单输出的模糊控制器。控制器的输入为衣物的污泥量x和油脂量y,输出为洗涤时间z。将污泥分为3个模糊集:SD(污泥少),MD(污泥中),LD(污泥多);将油脂分为3个模糊集:NG(油脂少),MG(油脂中),LG(油脂多);将洗涤时间分为5个模糊集:VS(很短),S(短),M(中等),L(长),VL很长。首先,定义输入x,y变量,输出z变量的隶属函数。根据“污泥越多,油脂越多,洗涤时间越长”;“污泥适中,油脂适中,洗涤时间适中”;“污泥越少,油脂越少,洗涤时间越短”的规律建立洗衣机模糊规则表。然后,根据模糊规则进行模糊推理并得到洗涤时间的模糊集合。最终,利用重心法对模糊系统反模糊化,将洗涤时间的推理结果转化成精确值z输出。三.实验内容利用MATLAB软件实现上述洗衣机系统模糊控制的建模与仿真。1.建立x,y,z的隶属函数洗衣机系统变量x,y,z的隶属函数分段表达式,如式1-1所示。SDMDLDNGMGLGVS50/50050/50050100/505010050/505010050/50050/5005011100/505010050/505010010/10010Sxxxxxxxxxxxyyyyyyyyyyyzzzz污泥油脂洗涤时间VL/1001025/15102510/15102540/15254025/15254060/20406040/204060MLzzzzzzzzzzzzzzzzz在MATLAB中,定义本系统为一个Mamdani(普通)型模糊控制系统,命名为a。根据式1-1,分段建立系统a的x,y,z变量隶属函数,如图1-2所示。图1-2x,y,z隶属函数2.编辑控制规则在生成系统a的基础上,在rulelist(规则表)矩阵中编辑系统a的模糊控制规则。并利用命令showrule观察规则库,如下:1.If(xisSD)and(yisNG)then(zisVS)(1)2.If(xisMD)and(yisNG)then(zisM)(1)3.If(xisLD)and(yisNG)then(zisL)(1)4.If(xisSD)and(yisMG)then(zisS)(1)5.If(xisMD)and(yisMG)then(zisM)(1)6.If(xisLD)and(yisMG)then(zisL)(1)7.If(xisSD)and(yisLG)then(zisM)(1)8.If(xisMD)and(yisLG)then(zisL)(1)9.If(xisLD)and(yisLG)then(zisVL)(1)3.反模糊化输出在生成了模糊控制规则库的基础上,用重心法(式(1-2))对系统a反模糊化处理。(12)ozzdzzzdz洗涤时间洗涤时间利用函数setfis(a,'DefuzzMethod','centroid')进行反模糊化(属性centroid代表重心法,属性mom为最大隶属度法),然后,调用plotfis(a)函数输出a的模糊控制结构特性,如图1-3所示。图1-3模糊控制系统结构特性取x=50,y=50,模糊处理结果为z=25,利用ruleview实现模糊控制的动态仿真,如图1-4所示图1-4动态仿真模糊系统4.MATLAB源程序%FuzzyControlforwasherclearall;a=newfis('fuzz_wash');%建立一个模糊控制系统a=addvar(a,'input','x',[0,100]);%FuzzyStaina=addmf(a,'input',1,'SD','trimf',[0,0,50]);a=addmf(a,'input',1,'MD','trimf',[0,50,100]);a=addmf(a,'input',1,'LD','trimf',[50,100,100]);a=addvar(a,'input','y',[0,100]);%FuzzyGreasea=addmf(a,'input',2,'NG','trimf',[0,0,50]);a=addmf(a,'input',2,'MG','trimf',[0,50,100]);a=addmf(a,'input',2,'LG','trimf',[50,100,100]);a=addvar(a,'output','z',[0,60]);%FuzzyTimea=addmf(a,'output',1,'VS','trimf',[0,0,10]);a=addmf(a,'output',1,'S','trimf',[0,10,25]);a=addmf(a,'output',1,'M','trimf',[10,25,40]);a=addmf(a,'output',1,'L','trimf',[25,40,60]);a=addmf(a,'output',1,'VL','trimf',[40,60,60]);rulelist=[11111;%编辑模糊规则21311;31411;12211;22311;32411;13311;23411;33511];a=addrule(a,rulelist);showrule(a)%Showfuzzyrulebasea1=setfis(a,'DefuzzMethod','centroid');%Defuzzy重心法writefis(a1,'wash');%Savetofuzzyfilewash.fisa2=readfis('wash');plotfis(a2);figure(2);subplot(3,1,1);plotmf(a,'input',1);subplot(3,1,2);plotmf(a,'input',2);subplot(3,1,3)plotmf(a,'output',1);ruleview('wash');%DynamicSimulationx=40;y=60;z=evalfis([x,y],a2)%Usingfuzzyinference四.结论基于重心法的模糊控制系统,对于不同输入变量,可得到恰当的输出结果。理论上讲,与最大隶属度法相比,重心法可得到更平滑的输出推理控制。因此,不同的反模糊化方法对完全相同的系统和输入或许得到的不同的输出值。
本文标题:洗衣机模糊控制建模
链接地址:https://www.777doc.com/doc-5582404 .html