您好,欢迎访问三七文档
当前位置:首页 > 机械/制造/汽车 > 综合/其它 > 模拟【控制专区】器的设计实例——洗衣机的模糊【控制专区】
chengcheng模拟控制器的设计实例——洗衣机的模糊控制传统的洗衣机都是人们用肉眼观看后,根据人的经验来调整洗衣时间和用水量,而模糊控制就是以人对被控对象的控制经验为依据而设计的控制器,这样就能实现控制器模拟人的思维方式来控制洗衣机。以模糊洗衣机的设计为例其控制是一个开环的决策过程,模糊控制按以下步骤进行。1.模糊控制器的结构选用单变量二维模糊控制器。控制器的输入为衣物的污泥和油脂,输出为洗涤时间。2.定义输入、输出模糊集将污泥分为3个模糊集:SD(污泥少),MD(污泥中),LD(污泥多);取值范围为[0,100]。3.定义隶属函数选用如下隶属函数50/5050/10050/50/50xxxxxxxμLDMDSD污泥1005010050500500xxxx采用三角形隶属函数可实现污泥的模糊化。Matlab实现污泥隶属度函数的设计,其仿真程序为0001.mCloseall;N=2;x=0:0.1:100;fori=1:N+1f(i)=100/N*(i-1);endu=trimf(x,[f(1),f(1),f(2)]);figure(1);chengchengplot(x,u);forj=2:Nu=trimf(x,[f(j-1),f(j),f(j+1)]);holdon;plot(x,u);endu=trimf(x,[f(N),f(N+1),f(N+1)]);holdon;plot(x,u);xlabel(‘x’);ylabel(‘Degreeofmembership’);污泥程序仿真结果:010203040506070809010000.10.20.30.40.50.60.70.80.91xDegreeofmembership将油脂分为三个模糊集:NG(无油脂)MG(油脂中)LG(油脂多),取值范围为[0,100]选用如下隶属度函数50/5050/10050/50/50yyyyyyyLGMGNG油脂1005010050500500yyyy采用三角形隶属函数实现油脂的模糊化。Matlab实现油脂隶属度函数的设计,其仿真程序为0002.Closeall;N=2;chengchengx=0:0.1:100;fori=1:N+1f(i)=100/N*(i-1);endu=trimf(y,[f(1),f(1),f(2)]);figure(1);plot(y,u);forj=2:Nu=trimf(y,[f(j-1),f(j),f(j+1)]);holdon;plot(y,u);endu=trimf(y,[f(N),f(N+1),f(N+1)]);holdon;plot(y,u);xlabel(‘y’);ylabel(‘Degreeofmembership’);油脂程序仿真结果:010203040506070809010000.10.20.30.40.50.60.70.80.91yDegreeofmembership将洗涤时间分为五个模糊集:VS(很短)S(短)M(中等)L(很长)取值范围为[0,60]chengcheng选用如下隶属函数20/4020/6015/2515/4015/1015/2510/10/10zzzzzzzzzzzzzVLLMSVS洗涤时间604060404025402525102510100100zzzzzzzz采用三角形隶属函数实现洗涤时间的模糊化,其Matlab仿真程序如下:Closeall;Z=0:0.1:60;U=trimf(z,[0,0,10]);Figure(1);Plot(z,u);U=trimf(z,[0,10,25]);holdon;plot(z,u);U=trimf(z,[10,25,40]);holdon;plot(z,u);U=trimf(z,[25,40,60]);holdon;plot(z,u);U=trimf(z,[40,60,60]);holdon;plot(z,u);xlabel(‘z’)ylabel(“Degreeofmembership”);洗涤时间仿真程序结果:chengcheng010203040506000.10.20.30.40.50.60.70.80.91zDegreeofmembership4.建立模糊控制规则根据人的操作经验设计模糊规则,模糊规则设计的标准为:“污泥越多,油脂越多,洗涤时间越长”;“污泥适中,油脂适中,洗涤时间适中”;“污泥越少,油脂越少,洗涤时将越短”。5.建立模糊控制表根据模糊规则设计标准,建立模糊规则表模糊洗衣机的洗涤规则洗涤时间z污泥xNGMGLG油脂ySDVS*MLMDSMLLDMLVL第*条规则为:“IF衣物污泥少且没有油脂THEN洗涤时间很短”。模糊推理:分以下几步进行chengcheng(1)规则匹配:假定当前传感器测得的信息0x(污泥)=60,0y(油脂)=70,分别代入所属的隶属函数中,求隶属度为5460MD,5160LD5370GM,5270LG通过上述4种隶属度,可得到4条匹配的模糊规则模糊推理结果洗涤时间z污泥xNGMG(3/5)LG(2/5)油脂ySD000MD(4/5)0)(zM)(zLLG(1/5)0)(zL)(zVL(2)规则触发由表3-2可知,被触发的规则有4条,即Rule1:IFyisMDandxisMGTHENzisMRule2:IFyisMDandxisLGTHENzisLRule3:IFyisLDandxisMGTHENzisLRule4:IFyisLDandxisLGTHENzisVL(3)规则前提推理在同一条规则内,前提之间通过“与”的关系得到规则结论。前提的可信度之间通过取小运算,得到每一条规则总前提的可信度为规则1前提的可信度为:min(4/5,3/5)=3/5规则2前提的可信度为:min(4/5,2/5)=2/5规则3前提的可信度为:min(1/5,3/5)=1/5规则4前提的可信度为:min(1/5,2/5)=1/5由此得到洗衣机规则前提可信度表,即规则强度表规则前提可信度洗涤时间z污泥xNGMG(3/5)LG(2/5)油脂ySD000MD(4/5)03/52/5LD(1/5)01/51/5chengcheng1.04/5MDMGM1.0100x1.0100yz100003/53/5(4)将上述两个表进行“与”运算得到每条规则总的可信度输出规则总的可信度洗涤时间z污泥xSGMG(3/5)LG(2/5)油脂yND000MD(4/5)0min()(53zM,)min()(52zL,)LD(1/5)0min()(51zL,)min()(51zVL,)(5)模糊系统的输出模糊系统总的输出为各条规则可信度推理结果的并集,即)(51min,)(51min,)(52min)(53minmax)(zzzzzVLLLMagg,,,,,=)(5min)(52min)(53minmaxzzzVLLM,,,,1,[11]可见,有3条规则被触发。(6)反模糊化模糊系统总的输出)(zagg实际上是3个规则推理结果的并集,需要进行反模糊化才能得到更精确的推理结果。下面以最大平均法为例,进行反模糊化。洗衣机的模糊推理过程如图3-4和图3-5所示。由图可知,洗涤时间隶属度最大值为53。将53代入洗涤时间隶属度函数中的)(zM,得到规则前提隶属度53。与规则结论隶属度)(zM的交点,即531540)(531510)(zzzzMM,得到311921,zz采用最大平均值法,可得精确输出为2523119221zzz即所需要的洗涤时间为25分钟。chengcheng洗衣机的3个规则被触发仿真实例采用Matlab中模糊控制工具箱等的模糊命令设计洗衣机模糊控制系统。采用本节隶属函数按上述步骤设计。取7060yx,,反模糊化采用重心法,模糊推理结果为33.6853。利用模糊命令ruleview可实现模糊控制的动态仿真洗衣机模糊控制系统仿真程序如下:closeall: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]);%FuzzyAxungea=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:12311:13411:21211:22311:23411:31311:32411:33511];a=addrule(a,rulelist);showrule(a)%showfuzzyrulebaseal=setfis(a,‘DefuzzMethod’,‘mom’);%Defuzzywritefis(al,‘wash’);%Savetofuzzyfile“washfis”a2=readfis(‘wash’);figure(1);plotfis(a2);figure(2);plotmf(a,‘intput’,1);figure(3);plotmf(a,‘intput’,2);figure(4);chengchengplotmf(a,‘output’,1);ruleview(‘wash’);%DynamicSimulationx=60;y=70;z=evalfis([x,y],a2)%Usingfuzzyinference采用本节隶属函数按上述步骤设计取7060yx,,反模糊化采用重心法,模糊推理结果为33.6853。利用模糊命令ruleview可实现模糊控制的动态仿真洗衣机的组合输出及反模糊化图3-6动态仿真模糊系统10LMVL1.03/52/51/5019314060zchengcheng通过上述内容,得出理论数值与仿真数值非常接近,所以设计的是符合理论和实际的。
本文标题:模拟【控制专区】器的设计实例——洗衣机的模糊【控制专区】
链接地址:https://www.777doc.com/doc-7245489 .html