智能控制课程作业模糊控制理论实验报告题目洗衣机系统模糊控制建模与仿真班级姓名学号2014年3月13日一.实验目的通过设计洗衣机洗涤时间的模糊控制系统,理解模糊控制的基本原理。
掌握模糊控制系统MATLAB建模与仿真的方法。
二.实验原理洗衣机洗涤时间的模糊控制是一个开环模糊决策过程,其基本原理框图如图1-1所示。
它的核心部分是模糊控制器,模糊控制器的控制律由计算机程序来实现。
图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所示。
在MATLAB 中,定义本系统为一个 Mamdani (普通)型模糊控制系统,命 名为a 。
根据式1-1,分段建立系统a 的x,y,z 变量隶属函数,如图1-2所示际(X )=(50—x y 50 0兰x 兰50 lx /500兰x 兰50D (X 鬥(100—x j/50 50 ex 兰100% (x )=(x _50)/5050 ex 兰100 »NG (y 尸f 50 - y )/500兰y 兰50 fy/500兰y 兰50 2 ^MG "尸((100 —y )/5050 cy 兰100 比G (y )=(y -50 y50 50 c y 兰100》s (z )=(10—z )/10 0兰z 兰10fz/100 Ez 兰10 比㈠尸 j (25_z )/15 10cz 兰25 ff z —10 M15 10兰z 兰25=« »M (Z }= i 、「 J40—z )/15 25 <z 兰40i7z_25 )/15 25兰z 兰40A L (Z )=<:J60-z )/20 40 cz 兰60 £L (z ) = (z —40)/20 40兰z 兰60'污泥 ■洗涤时间J] Figure 2回克 File Edit View Insert Tools Desktop Window Help * □曰PS图1-2 x,y,z 隶属函数2. 编辑控制规则在生成系统a 的基础上,在rulelist (规则表)矩阵中编辑系统a 的模糊控制 规则。
并利用命令showrule 观察规则库,如下:1. If (x is SD) and (y is NG) then (z is VS) (1)2. If (x is MD) and (y is NG) then (z is M) (1)3. If (x is LD) and (y is NG) then (z is L) (1)4. If (x is SD) and (y is MG) then (z is S) (1)5. If (x is MD) and (y is MG) then (z is M) (1)6. If (x is LD) and (y is MG) then (z is L) (1)7. If (x is SD) and (y is LG) then (z is M) (1)8. If (x is MD) and (y is LG) then (z is L) (1)9. If (x is LD) and (y is LG) then (z is VL) (1) d-vs-laquumlu ①也」b ma.一上巴曲qEeE 它 皿書6也 @上巴型qulmE 」口 3巴0 10 20 30 40 50 60 70 80 90 100 0 10 20 30 40 50 603. 反模糊化输出在生成了模糊控制规则库的基础上,用重心法(式(1-2))对系统a 反模糊化 处理。
z 、洗涤时间 z dz Zo ■.1! •洗涤时间 z dz利用函数 setfis (a,'DefuzzMethod','centroid')进行反模糊化(属性 centroid 代 表重心法,属性mom 为最大隶属度法),然后,调用plotfis (a )函数输出a 的模糊 控制结构特性,如图1-3所示。
B Figg 1 □ 回file Edit View Insert Tools Desktop Window Help---------- 1 |Od J ■ □ 'r 图1-3模糊控制系统结构特性取x=50, y=50,模糊处理结果为z=25,利用ruleview 实现模糊控制的动态 仿真,如图1-4所示(1-2) 9 rules4. MATLAB 源程序%Fuzzy Con trol for washerclear all;a=n ewfis('fuzz_wash'); %建立一个模糊控制系统a=addvar(a,'i nput','x',[0,100]);%Fuzzy Stain a=addmf(a,'i nput',1,'SD','trimf,[0,0,50]);a=addmf(a,'i nput',1,'MD','trimf,[0,50,100]);a=addmf(a,'i nput',1,'LD','trimf,[50,100,100]);a=addvar(a,'input','y',[0,100]);%Fuzzy Grease a=addmf(a,'i nput',2,'NG','trimf,[0,0,50]);a=addmf(a,'i nput',2,'MG','trimf,[0,50,100]);a=addmf(a,'i nput',2,'LG','trimf,[50,100,100]);a=addvar(a,'output','z',[0,60]);%Fuzzy Timea=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]);图1-4动态仿真模糊系统a=addmf(a,'output',1,'VL','trimf',[40,60,60]);rulelist=[1 1 1 1 1;2 13 1 1;3 14 1 1;1 2 2 1 1;2 23 1 1;3 24 1 1;1 3 3 1 1;2 3 4 1 1;3 3 5 1 1];a=addrule(a,rulelist); showrule(a)a1=setfis(a,'DefuzzMethod','centroid'); %Defuzzy 重心法 writefis(a1,'wash'); %Save to fuzzy file "wash.fis"a2=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'); %Dynamic Simulationx=40;y=60;z=evalfis([x,y],a2) %Using fuzzy inference 四. 结论基于重心法的模糊控制系统,对于不同输入变量,可得到恰当的输出结果。
理论上讲, 与最大隶属度法相比, 重心法可得到更平滑的输出推理控制。
因 此,不同的反模糊化方法对完全相同的系统和输入或许得到的不同的输出值。
%编辑模糊规则%Show fuzzy rule base。