您好,欢迎来到意榕旅游网。
搜索
您的当前位置:首页基于MATLAB模糊洗衣机设计

基于MATLAB模糊洗衣机设计

来源:意榕旅游网
模糊控制洗衣机设计

1模糊控制结构

本次设计的控制对象是应用范围广泛的家用洗衣机,这里简化了模糊自动洗衣机的输入和输出个数。选用双输入单输出的模糊控制,其中,把负载(衣物量)和污浊度作为输入条件、洗衣机工作时间作为输出结果。 2输入隶属度函数确定

1) 对于负载(衣物量)(x)而言建立了四个模糊子集,分别为:很少(HS)、少(S)、多(D)、很多(HD)。其中HS和HD模糊子集选用梯形隶属度函数;S、D选用三角形隶属度函数。 输入1隶属度分布如图1所示。

图1 负载隶属度函数分布

2) 对于污浊度(y)而言,同样建立了四个模糊子集,分别为:轻脏(QZ)、较脏(JZ)、脏(Z)、很脏(HZ)。其中QZ和HZ模糊子集选用梯形隶属度函数;JZ、Z选用三角形隶属度函数。输入2隶属度分布如图2所示。

图2 污浊度隶属度函数分布

3输出隶属度函数确定

对于洗衣机工作时间(t)来说,建立了五个模糊子集,分别为很短(HD)、短(D)、中等(Z)、长(C)、很长(HC)。为了保证洗衣机的最低工作时间,其中HD选用梯形隶属度函

数,其余则为三角形隶属度函数,输出1的隶属度分布如图3所示。

图3 工作时间的隶属度函数分布

4模糊规则建立

根据经验(衣服越多,越污浊,则洗涤时间越长。反之则相反)可以归纳总结出如下16条规则,如表1所示。

表1 模糊控制规则表

X HS S D HD Y t QZ JZ Z HZ HD HD D Z HD D Z C D Z C HC Z C HC HC 5输出模糊量清晰化

本次选用的清晰化方法为最大隶属度平均值法(mom) 6测试

分别随机选取三组输入测试 1) x=1、y=2

2) x=5、y=6

3) x=8、y=9

7模糊控制程序 %模糊控制程序 clc

clear all; close all;

a=newfis('xiyiji');%新建模糊控制 f1=1;

a=addvar(a,'input','x',[0,10*f1]); %建立模糊输入负载的隶属度函数 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,'JZ','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*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];

a=addrule(a,rulelist);

%showrule(a) % 显示模糊规则

a1=setfis(a,'DefuzzMethod','mom'); % 设置清晰化函数为mom writefis(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);

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- yrrf.cn 版权所有

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务