1、模拟控制器的设计实例洗衣机的模糊控制模拟控制器的设计实例洗衣机的模糊控制传统的洗衣机都是人们用肉眼观看后,根据人的经验来调整洗衣时间和用水量,而模糊控制就是以人对被控对象的控制经验为依据而设计的控制器,这样就能实现控制器模拟人的思维方式来控制洗衣机。以模糊洗衣机的设计为例其控制是一个开环的决策过程,模糊控制按以下步骤进行。1.模糊控制器的结构选用单变量二维模糊控制器。控制器的输入为衣物的污泥和油脂,输出为洗涤时间。2.定义输入、输出模糊集将污泥分为3个模糊集:SD(污泥少),MD(污泥中),LD(污泥多);取值范围为0,100。3.定义隶属函数选用如下隶属函数采用三角形隶属函数可实现污泥的模糊
2、化。Matlab实现污泥隶属度函数的设计,其仿真程序为0001.mClose all; N=2;x=0:0.1:100;for i=1:N+1f(i)=100/N*(i-1);endu=trimf(x,f(1),f(1),f(2);figure(1);plot(x,u);for j=2:Nu=trimf(x,f(j-1),f(j),f(j+1);hold on;plot(x,u);endu=trimf(x,f(N),f(N+1),f(N+1);hold on;plot(x,u);xlabel(x);ylabel(Degree of membership);污泥程序仿真结果:将油脂分为三个模糊集
3、:NG(无油脂)MG(油脂中)LG(油脂多),取值范围为0,100选用如下隶属度函数采用三角形隶属函数实现油脂的模糊化。Matlab实现油脂隶属度函数的设计,其仿真程序为0002.Close all; N=2;x=0:0.1:100;for i=1:N+1f(i)=100/N*(i-1);endu=trimf(y,f(1),f(1),f(2);figure(1);plot(y,u);for j=2:Nu=trimf(y,f(j-1),f(j),f(j+1);hold on;plot(y,u);endu=trimf(y,f(N),f(N+1),f(N+1);hold on;plot(y,u);x
4、label(y);ylabel(Degree of membership);油脂程序仿真结果:将洗涤时间分为五个模糊集:VS(很短)S(短)M(中等)L(很长)取值范围为0,60选用如下隶属函数 采用三角形隶属函数实现洗涤时间的模糊化,其Matlab仿真程序如下:Close all;Z=0:0.1:60;U=trimf(z,0,0,10);Figure(1);Plot(z,u);U=trimf(z,0, 10,25);hold on;plot(z,u);U=trimf(z, 10,25,40);hold on;plot(z,u);U=trimf(z, 25,40,60);hold on;plo
5、t(z,u);U=trimf(z, 40,60,60);hold on;plot(z,u);xlabel(z)ylabel(“Degree of membership”);洗涤时间仿真程序结果:4.建立模糊控制规则根据人的操作经验设计模糊规则,模糊规则设计的标准为:“污泥越多,油脂越多,洗涤时间越长”;“污泥适中,油脂适中,洗涤时间适中”;“污泥越少,油脂越少,洗涤时将越短”。5.建立模糊控制表根据模糊规则设计标准,建立模糊规则表模糊洗衣机的洗涤规则洗 涤 时 间 z污 泥 xNGMGLG油脂ySDVS*MLMDSMLLDMLVL第 * 条规则为:“IF衣物污泥少且没有油脂THEN洗涤时间很短
6、”。模糊推理:分以下几步进行(1)规则匹配:假定当前传感器测得的信息(污泥)=60,(油脂)=70,分别代入所属的隶属函数中,求隶属度为, , 通过上述4种隶属度,可得到4条匹配的模糊规则模糊推理结果洗 涤 时 间 z污 泥 xNGMG(3/5)LG(2/5)油脂ySD000MD(4/5)0LG(1/5)0(2)规则触发由表3-2可知,被触发的规则有4条,即Rule 1:IF y is MD and x is MG THEN z is MRule 2:IF y is MD and x is LG THEN z is LRule 3:IF y is LD and x is MG THEN z i
7、s LRule 4:IF y is LD and x is LG THEN z is VL(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
8、)03/52/5LD(1/5)01/51/5(4)将上述两个表进行“与”运算得到每条规则总的可信度输出规则总的可信度洗 涤 时 间 z污 泥 xSGMG(3/5)LG(2/5)油脂yND000MD(4/5)0min()min()LD(1/5)0min()min()(5)模糊系统的输出模糊系统总的输出为各条规则可信度推理结果的并集,即 = 11可见,有3条规则被触发。(6)反模糊化模糊系统总的输出实际上是3个规则推理结果的并集,需要进行反模糊化才能得到更精确的推理结果。下面以最大平均法为例,进行反模糊化。洗衣机的模糊推理过程如图3-4和图3-5所示。由图可知,洗涤时间隶属度最大值为。将代入洗涤时
9、间隶属度函数中的,得到规则前提隶属度。与规则结论隶属度的交点,即得到采用最大平均值法,可得精确输出为即所需要的洗涤时间为25分钟。洗衣机的3个规则被触发仿真实例采用Matlab中模糊控制工具箱等的模糊命令设计洗衣机模糊控制系统。采用本节隶属函数按上述步骤设计。取,反模糊化采用重心法,模糊推理结果为33.6853。利用模糊命令ruleview可实现模糊控制的动态仿真洗衣机模糊控制系统仿真程序如下:close all:a=newfis(fuzz-wash);a=addvar(a,input,x,0,100);%Fuzzy Staina=addmf(a,input,1,SD,trimf,0,0,50
10、);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);%Fuzzy Axungea=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);%Fuzzy Timea=addmf(a,output,1,VS,trimf,0,0,10)
11、;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);rule list=1 1 1 1 1:1 2 3 1 1:1 3 4 1 1:2 1 2 1 1:2 2 3 1 1:2 3 4 1 1:3 1 3 1 1:3 2 4 1 1:3 3 5 1 1;a=addrule(a,rulelist);showrule(a) % showfuzzyrule b
12、aseal=setfis(a,Defuzz Method,mom);% Defuzzywritefis(al,wash); % Save to fuzzy file “washfis”a2=readfis(wash);figure(1);plotfis(a2);figure(2);plotmf(a,intput,1);figure(3);plotmf(a,intput,2);figure(4);plotmf(a,output,1);ruleview(wash); % Dynamic Simulationx=60;y=70;z=evalfis(x,y,a2) % Using fuzzy inference采用本节隶属函数按上述步骤设计取,反模糊化采用重心法,模糊推理结果为33.6853。利用模糊命令ruleview可实现模糊控制的动态仿真洗衣机的组合输出及反模糊化图3-6 动态仿真模糊系统通过上述内容,得出理论数值与仿真数值非常接近,所以设计的是符合理论和实际的。
copyright@ 2008-2023 冰点文库 网站版权所有
经营许可证编号:鄂ICP备19020893号-2