《基于MATLAB模糊洗衣机设计.pdf》由会员分享,可在线阅读,更多相关《基于MATLAB模糊洗衣机设计.pdf(4页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、模糊控制洗衣机设计模糊控制洗衣机设计1 1 模糊控制结构模糊控制结构本次设计的控制对象是应用范围广泛的家用洗衣机, 这里简化了模糊自动洗衣机的输入和输出个数。选用双输入单输出的模糊控制,其中,把负载(衣物量)和污浊度作为输入条件、洗衣机工作时间作为输出结果。2 2 输入隶属度函数确定输入隶属度函数确定1) 对于负载(衣物量) (x)而言建立了四个模糊子集,分别为:很少(HS) 、少(S) 、多(D) 、很多(HD) 。其中 HS 和 HD 模糊子集选用梯形隶属度函数;S、D 选用三角形隶属度函数。 输入 1 隶属度分布如图 1 所示。图 1 负载隶属度函数分布2) 对于污浊度(y)而言,同样建
2、立了四个模糊子集,分别为:轻脏( QZ) 、较脏(JZ) 、脏(Z) 、很脏(HZ) 。其中 QZ 和 HZ 模糊子集选用梯形隶属度函数;JZ、Z 选用三角形隶属度函数。输入2 隶属度分布如图 2 所示。图 2 污浊度隶属度函数分布3 3 输出隶属度函数确定输出隶属度函数确定对于洗衣机工作时间(t)来说,建立了五个模糊子集,分别为很短( HD) 、短(D) 、中等(Z) 、长(C) 、很长(HC) 。为了保证洗衣机的最低工作时间,其中HD 选用梯形隶属度函数,其余则为三角形隶属度函数,输出1 的隶属度分布如图 3 所示。图 3 工作时间的隶属度函数分布4 4 模糊规则建立模糊规则建立根据经验(
3、衣服越多,越污浊,则洗涤时间越长。反之则相反)可以归纳总结出如下16 条规则,如表 1 所示。表 1 模糊控制规则表XHSSDHDYtQZJZZHZHDHDDZHDDZCDZCHCZCHCHC5 5 输出模糊量清晰化输出模糊量清晰化本次选用的清晰化方法为最大隶属度平均值法(mom)6 6 测试测试分别随机选取三组输入测试1) x=1、y=22) x=5、y=63) x=8、y=97 7 模糊控制程序模糊控制程序%模糊控制程序clcclear all;close all;a=newfis(xiyiji);%新建模糊控制f1=1;a=addvar(a,input,x,0,10*f1); %建立模糊
4、输入负载的隶属度函数a=addmf(a,input,1,HS,trapmf,0,0,2*f1,4*f1);a=addmf(a,input,1,S,trimf,2*f1,4*f1,6*f1);a=addmf(a,input,1,D,trimf,4*f1,6*f1,8*f1);a=addmf(a,input,1,HD,trapmf,6*f1,8*f1,10*f1,10*f1);f2=1;a=addvar(a,input,y,0,10*f2); %建立模糊输入污浊度的隶属度函数a=addmf(a,input,2,QZ,trapmf,0,0,2*f2,4*f2);a=addmf(a,input,2,J
5、Z,trimf,2*f2,4*f2,6*f2);a=addmf(a,input,2,Z,trimf,4*f2,6*f2,8*f2);a=addmf(a,input,2,HZ,trapmf,6*f2,8*f2,10*f2,10*f2);f3=1;a=addvar(a,output,t,0,60*f3); %建立模糊输时间的隶属度函数a=addmf(a,output,1,HD,trapmf,0,0,10*f3,20*f3);a=addmf(a,output,1,D,trimf,10*f3,20*f3,30*f3);a=addmf(a,output,1,Z,trimf,20*f3,30*f3,45*
6、f3);a=addmf(a,output,1,C,trimf,30*f3,45*f3,60*f3);a=addmf(a,output,1,HC,trimf,45*f3,60*f3,60*f3);%建立模糊规则库,共 16 条规则rulelist = 1 1 1 1 1; 1 2 1 1 1; 1 3 2 1 1; 1 4 3 1 1; 2 1 1 1 1; 2 2 2 1 1; 2 3 3 1 1; 2 4 4 1 1; 3 1 2 1 1; 3 2 3 1 1; 3 3 4 1 1; 3 4 5 1 1; 4 1 3 1 1; 4 2 4 1 1; 4 3 5 1 1; 4 4 5 1 1;
7、a=addrule(a,rulelist);%showrule(a) % 显示模糊规则a1=setfis(a,DefuzzMethod,mom); % 设置清晰化函数为 momwritefis(a1,xiyiji); % 储存模糊文件a2=readfis(xiyiji); % 读取模糊文件disp(负载 x 范围:0,10,污浊度 y 范围:0,10);x=input(负载:); %输入负载y=input(污浊度:); %输入污浊度t=evalfis(x,y,a2); %调用模糊控制函数t=ceil(t); %取整fprintf(工作时间 t 为%d 分钟n,t); %输出工作时间figure(1); %显示模糊控制器plotfis(a2);figure(2); %显示输入 1 的隶属度plotmf(a,input,1);figure(3); %显示输入 2 的隶属度plotmf(a,input,2);figure(4); %显示输出 1 的隶属度plotmf(a,output,1);