洗衣机模糊控制matlab仿真
- 格式:doc
- 大小:282.50 KB
- 文档页数:9
洗衣机模糊控制仿真实验报告一、实验目的本实验旨在通过对洗衣机运行过程的模糊控制仿真实验,帮助学生更好地了解模糊控制的基本原理和实现方法。
二、实验原理洗衣机模糊控制系统主要包括模糊控制器、模糊推理机和输出规则等三个部分。
模糊控制器是模糊系统的核心部分,其主要作用是将输入信号转化为模糊集,并将控制输出信号转化为真实输出信号。
模糊控制器的输入为洗衣机工作状态的一些参数,例如水位、温度等,输出为洗衣机运行状态的一些控制命令,例如加热、搅拌等。
模糊推理机是由一系列规则组成的系统,它负责根据输入的模糊集和一组先验规则,进行模糊推理,得到控制输出信号的模糊集,即模糊控制器的中间变量。
输出规则主要为控制输出信号的模糊集赋值,即将模糊集中各个元素映射到真实输出信号的取值范围内。
三、实验步骤1、建立洗衣机的模糊控制系统模型,包括模糊控制器、模糊推理机和输出规则等。
2、设置洗衣机的运行参数,例如水位、温度等,作为模糊控制器的输入。
3、根据洗衣机的运行状态,制定一组先验规则,作为模糊推理机的输入,并进行模糊推理。
4、根据模糊推理得到的控制输出信号的模糊集,进行输出规则的映射,得到洗衣机的真实控制命令。
5、根据洗衣机的控制命令,模拟洗衣机的工作流程。
6、对洗衣机的工作流程进行仿真实验,并记录实验结果。
四、实验结果分析经过多次实验,得到了洗衣机的模糊控制系统的优化参数,能够实现洗衣机的良好控制。
通过对实验结果的分析,可以发现,模糊控制系统可以有效地调节洗衣机的运行状态,使其在不同的工作状态下保持稳定且高效的运行。
同时,模糊控制系统也具有很强的适应性和鲁棒性,可以自适应地调节参数,应对各种不同的运行环境。
五、实验总结本实验通过模拟洗衣机的工作流程,对模糊控制系统的基本原理和实现方法进行了深入探究,能够有效地帮助学生掌握模糊控制系统的设计和应用方法。
同时,在实验过程中,也需要注意对实验数据和结论的分析和总结,以便更好地优化模糊控制系统的参数和性能,实现最佳控制效果。
模糊控制Matlab仿真说明:a.控制对象为一阶系统,目的是为了简单,调通后可以修改控制对象,控制参数体会各个量对控制效果的影响。
b.一阶系统直接施加输入,如图1所示的控制对象,上升时间会很大。
完全可以使用PID 控制使控制效果满足需要。
这里使用模糊控制来代替PID控制器。
比较一下!模糊控制器设计模糊控制器的计算量是非常大的,我不从数学推导介绍。
讲一下利用matlab的模糊工具箱(Fuzzy logical toolbox)建立基本模糊控制器的方法。
在命令行输入fuzzy,就可以进入模糊推理系统编辑器(fis editor)。
利用这个工具制作一个*.fis的文件。
这个文件就是模糊控制器的核心!在simulink中和以往进行PID控制一样建立模型。
如图1,在simulink 的库里点击Fuzzy Logical toolbox,拖一个Fuzzyl logical controller with rule viewer,双击这个环节,在弹出的对话框的fis Matrix里填入你自己起的*.fis的名字,不需输入后缀fis。
在设计模糊控制器(*.fis)前,要想好,你设计的控制器需要几个输入,几个输出。
比如,本例中拟采用偏差E和偏差变化率Ec这两个量作为模糊控制器的输入,模糊控制器有一个输出。
很明显,这是利用模糊控制器代替PD控制的。
对应的模糊控制器的设计也要具有两个输入一个输出。
利用matlab的Fuzzy logical toolbox 设计模糊控制器(生成*.fis文件)的关键步骤:a.添加输入输出。
图3.fis编辑器默认的具有一个输出,添加第二个输入,并且分别命名为E,Ec,U。
b.确定隶属函数。
双击黄色和绿色的方框就可以进入隶属函数编辑对话框了。
设置E,Ec 的range为[-6,6],u的range为[-1,1]。
然后每一个变量再添加4个输入隶属函数,总共7个。
matlab提供了11种隶属函数,第一次用选择常用的三角形trimf,区别不大的。
实验一 洗衣机的模糊控制仿真一、实验目的本实验要求在学生掌握模糊控制器基本工作原理和设计方法基础上,熟悉MALAB 中的模糊控制工具箱,能针对实际问题设计模糊控制器,建立模糊控制系统,训练学生综合运用计算机来解决一些实际问题的能力。
二、实验设备计算机一台、MATLAB 软件三、实验要求设计一个模糊控制器,根据衣物的泥污和油污程度,输出衣物的洗涤时间,通过改变控制参数的大小,观察模糊控制的性能。
四、实验步骤1.确定模糊控制器的结构选用两输入单输出模糊控制器,控制器的输入为衣物的泥污和油污,输出为洗涤时间。
2. 定义输入、输出模糊集 将泥污分为三个模糊集:泥污少SD 、泥污中MD 、泥污大LD ;油污分为三个模糊集:油污少SG 、油污中MG 、油污大LG ;将洗涤时间分为五个模糊集:很短VS 、短S 、中等M 、长L 、很长VL 。
3. 定义隶属度函数选用三角形隶属度函数实现泥污、油污和洗涤时间的模糊化:(50)/50050/50050(100)/505010050100(50)/50x x x x x x x x μμμμ=-⎧≤≤⎪≤≤⎧⎪==⎨⎨-<≤⎩⎪⎪<≤=-⎩SD MD 泥污LD (50)/50050/50050(100)/505010050100(50)/50x x x x x x x x μμμμ=-⎧≤≤⎪≤≤⎧⎪==⎨⎨-<≤⎩⎪⎪<≤=-⎩SG MG 油污LG(50)/50010/50010(100)/501025/501025(100)/5025402540/504060(100)/504060(50)/50x z x z x z x z x z z x z x z x μμμμμμ=-⎧≤≤⎪⎧≤≤⎪=⎨⎪-<≤⎩⎪≤≤⎧⎪==⎨⎨-<≤⎩⎪⎪≤≤⎧⎪=⎨<≤-⎪⎩⎪≤≤=-⎩SG MG MG 洗涤时间MG LG实验结果:实验分析:6.模糊推理因模糊控制规则表对称,所以上图为input1 和input2分别为50时input2和input1与洗涤时间的关系。
基于MATLAB的洗衣机模糊控制设计MATLAB是一种功能强大的数学软件,可以用于模糊控制设计。
在本文中,我们将介绍如何使用MATLAB来设计一个基于模糊控制的洗衣机控制系统。
首先,我们需要定义洗衣机模糊控制系统的输入和输出变量。
在一个简单的洗衣机系统中,输入变量可以是衣物的脏度和水位,而输出变量可以是洗衣机的清洗时间和水温。
接下来,我们需要建立一个模糊控制器模型。
模糊控制器是一个基于模糊逻辑的控制器,能够处理模糊输入和输出变量。
在MATLAB中,我们可以使用Fuzzy Logic Toolbox来建立一个模糊控制器模型。
我们首先需要定义模糊输入变量的隶属函数。
在这个例子中,我们可以定义脏度变量的隶属函数为"低","中"和"高",水位变量的隶属函数为"低","中"和"高"。
然后,我们需要定义模糊输出变量的隶属函数。
在这个例子中,我们可以定义清洗时间变量的隶属函数为"短","适中"和"长",水温变量的隶属函数为"低","中"和"高"。
接下来,我们需要定义输入和输出变量之间的模糊规则。
在这个例子中,我们可以定义以下规则:规则1:如果脏度是低和水位是低,那么清洗时间是短和水温是低。
规则2:如果脏度是低和水位是中,那么清洗时间是适中和水温是中。
规则3:如果脏度是低和水位是高,那么清洗时间是长和水温是中。
规则4:如果脏度是中和水位是低,那么清洗时间是适中和水温是中。
规则5:如果脏度是中和水位是中,那么清洗时间是适中和水温是中。
规则6:如果脏度是中和水位是高,那么清洗时间是长和水温是高。
规则7:如果脏度是高和水位是低,那么清洗时间是长和水温是中。
规则8:如果脏度是高和水位是中,那么清洗时间是长和水温是高。
基于MATLAB的洗衣机模型模糊设计控制一、问题描述随着现代社会生活节奏的不断加快和人们生活水平的不断提高,人们对各种方便、快捷的家用电器需求量越来越大,为了提高人们的生活效率,全自动洗衣机应运而生。
洗衣机的技术发展日新月异,产品类型众多,但是从总体来看,人们对洗衣机的基本要求应该是:省时、省电、省水、磨损率小、操作方便、功能完善等。
模糊控制洗衣机不仅实现了洗衣机的全面自动化,也提高了洗衣的质量,具有很强的实用性和较好的发展前景。
本设计就是围绕着智能洗衣机进行研究。
本课题的主要目的就是设计一个比较合理的洗衣机模糊控制器,这种采用模糊控制的洗衣机能够自动检测洗衣桶内水的脏污程度和污渍性质(油污或者泥污);能自动预选洗涤时间,并适时调整这些运行参数,以达到最佳的洗涤效果。
二、解决方案本课题的主要是通过模糊控制来对洗衣机进行控制,通过MATLAB对其仿真。
课题的主要目的是设计一个比较合理的洗衣机模糊控制器,这种采用模糊控制的洗衣机能够自动检测洗衣桶内水的脏污程度和污渍性质(油污或者泥污);能自动预选水位和洗涤时间,并能够进行整个洗涤过程中实施监控,并适时调整这些运行参数,以达到最佳的洗涤效果。
模糊控制器的组成框图如图1所示图1三、实现步骤本设计选用两输入单输出模糊控制器。
控制器的输入为衣物的污泥和油脂,输出为洗涤时间。
将污泥分为3个模糊集:SD(污泥少),MD (污泥中),LD (污泥多);将油脂分为3个模糊集:NG (油脂少),MG (油脂中),LG (油脂多);将输出的洗涤时间分为5个模糊集:VS (很短),S (短),M (中等),L (长),VL (很长)。
1、定义隶属函数污泥含量选用如下隶属函数:()()()()()()⎪⎪⎩⎪⎪⎨⎧-=⎩⎨⎧-=-==50/5050/10050/50/50x x x x x x x μLDMD SD μμμ污泥1005010050500500≤<≤<≤≤≤≤x x x x采用三角隶属函数可实现污泥的模糊化采用Matlab 仿真,如图2所示。
智能控制课程作业模糊控制理论实验报告题目洗衣机系统模糊控制建模与仿真班级姓名学号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所示。
()()()()()()()()()()()()()()()()SD MD LD NG MG LGVS 50/50050/50050100/505010050/505010050/50050/5005011100/505010050/505010010/10010Sx x x x x x x x x x x y y y y y y y y y y y z z z z μμμμμμμμμμμ=-≤≤⎧⎪≤≤⎧⎪⎪==⎨⎨-<≤⎪⎩⎪⎪=-<≤⎩=-≤≤⎧⎪≤≤⎧⎪⎪==-⎨⎨-<≤⎪⎩⎪⎪=-<≤⎩=-≤≤=污泥油脂洗涤时间()()()()()()()()()VL /1001025/15102510/15102540/15254025/15254060/20406040/204060M L z z z z z z z z z z z z z z z z z μμμ⎧⎪≤≤⎪⎧⎪=⎨⎪-<≤⎪⎩⎪⎪-≤≤⎧⎪⎪=⎨⎨-<≤⎪⎪⎩⎪-≤≤⎧⎪⎪=⎨⎪-<≤⎪⎩⎪⎪=-≤≤⎩在MATLAB 中,定义本系统为一个Mamdani (普通)型模糊控制系统,命名为a 。
洗衣机模糊控制仿真
1.模糊控制背景
美国教授查徳(L.A.Zandeh)在1965年首先提出模糊集合的概念,由此打开了模糊数学及其应用的大门。
1974年英国教授马丹尼(E.H.Mamdani)首先将模糊集合理论应用于加热器的控制,创造了模糊控制的基本框架。
1980年,Sugeno开创了日本的首次模糊应用——控制一家富士电子水净化厂。
1983年他又开始研究模糊机器人。
随着模糊控制技术的不断发展,模糊控制逐渐被应用到日用家电产品的控制,例如电饭锅﹑照相机﹑吸尘器﹑洗衣机等。
2.仿真目的
本次仿真的主要目的是设计一个比较合理的洗衣机模糊控制器,它能够根据被洗涤衣物的污泥多少和油脂多少,综合得到洗涤时间,从而达到最佳的洗涤效果。
3.仿真方法
本次仿真借助matlab中集成的模糊控制工具箱,使用图形界面进行模糊控制器的设计。
最后随意给定几组输入,得到输出并作出简单分析。
4.模糊控制器的设计
4.1模糊控制器理论设计方法
①选择合适的模糊控制器类型;
②确定输入输出变量的实际论域;
③确定e,e
∆的模糊集个数及各模糊集的隶属度函数;
∆,u
④输出隶属度函数选为单点,可使解模糊简单;
⑤设计模糊控制规则集;
⑥选择模糊推理方法;
⑦解模糊方法。
4.2实际设计过程
①模糊控制器类型:选用两输入单输出模糊控制器,控制器输入为衣物的污泥和油脂,输出为洗涤时间。
②确定输入输出变量的实际论域:输入为Mud(污泥)和Grease (油脂),设置Range=[0 100](输入变化范围为[0,100]);输出为Time(洗涤时间),Range=[0 60](输出变化范围为[0,60])。
对应matlab 中模糊控制模块:
③确定模糊集个数及各模糊集的隶属度函数:将污泥分为3个模糊集:SD (污泥少)MD (污泥中)LD(污泥多);將油脂分为三个模糊集:NG (油脂少)MG (油脂中)LG (油脂多);将洗涤时间非为5个模糊集:VS (很短)S (短)M (中等)L (长)VL (很长)。
输入﹑输出隶属度函数都定为三角形隶属函数。
结合④输出隶属度函数选为单点,可使解模糊简单;定义污泥隶属函数如下 50)50()(x x SD -=μ 0≤x ≤50
50
x
0≤x ≤50
=Mad μ =)(x MD μ 50
)
100(x - 50<x ≤100
50)50()(-=x x LD μ 50<x ≤100
对应matlab 中隶属度函数仿真图如下:
由隶属函数设置污泥的3个模糊集参数为 [Input1] Name='Mud' NumMFs=3
MF1='SD':'trimf',[-50 0 50] MF2='MD':'trimf',[0 50 100] MF3='LD':'trimf',[50 100 150] 定义油脂隶属函数如下:
50)50()(y x SG -=μ 0≤y ≤50
50
y
0≤y ≤50
=Grease μ =)(x MG μ 50
)
100(y - 50<y ≤100 50)50()(-=y x LG μ 50<y ≤100
对应matlab中隶属度函数仿真图如下:
由隶属函数设置油脂3个模糊集参数为[Input2]
Name='Grease'
NumMFs=3
MF1='SG':'trimf',[-50 0 50]
MF2='MG':'trimf',[0 50 100]
MF3='LG':'trimf',[50 100 150]
定义输出时间隶属函数如下:
µVS(Z)=(10-Z)/10 0≤Z≤10
Z/10 0≤Z≤10
µS(Z)=
(25-Z)/15 10≤Z≤25
(Z-10)/15 10≤Z≤25
µM(Z)=
µ洗涤时间=(40-Z)/15 25≤Z≤40
(Z-25)/15 25≤Z≤40
µL(Z)=
(60-Z)/20 40≤Z≤60
µVL(Z)=(Z-40)/20 40≤Z≤60对应matlab中隶属度函数仿真图如下:
由隶属函数设置输出洗涤时间5个模糊集参数为
[Output1]
Name='Time'
NumMFs=5
MF1='S':'trimf',[0 10 25]
MF2='L':'trimf',[25 40 60]
MF3='VS':'trimf',[-10 0 10]
MF4='M':'trimf',[10 25 40]
MF5='VL':'trimf',[40 60 80]
⑤设计模糊控制规则:设计标准为污泥越多,油脂越多,洗涤时间越长;污泥适中,油脂适中,洗涤时间适中;污泥越少,油脂越少,洗涤时间越短。
建立模糊控制表如下:
洗涤时间Z
油脂y
SG MG LG
油脂X SD VS M L MD S M L LD M L VL
体现在matlab中模糊控制规则如下:
5.仿真实验
1.任給一输入[45,70],仿真结果如下,可以看出经过前面设计好的模糊控制器
得到输出时间为T=33.1。
2.输入为[0,0],仿真结果如下
分析:输出T=3.14,并不是0。
3.输入为[100,100],仿真结果如下
分析:输出为T=53.5,并不是60.
6.仿真结果综合分析
模糊推理方法常用的是Mamdani模糊推理法,由上面仿真结果能够看出虽然定义输出时间的变化范围是[0,60],但是仿真过程中并不能达到理想的最大最小输出时间。
这是因为在清晰化的过程中该仿真工具箱是采用一定的算法得到输出时间。
上面的仿真中总共设定了9条规则,当给定某一输入时,也就是给定了Mad与Grease的假定值,将该输入分别与9条规则中各自设定的隶属函数进行对应,并将两个输入综合作用的结果与相应规则中的输出时间Time对应得到一个输出结果,从而总共可以得到9个输出时间Time的隶属函数图,由仿真图就可以很方便的看到这个过程。
将9个输出按一定推理法整合在一个图上,这时再用到清晰化的方法比如最大隶属度法,中心法,加权平均法等进行解模糊,我们常使用的方法是取所有输出的中心或重心,最终确定一个输出时间,本仿真中最终输出就是最终洗涤时间Time。
另一方面,从输入分别为[0,0]和[100,100],输出时间为T=3.14和T=53.5可以看到,上面隶属函数的设定还是比较合理的。