基于matlab的水箱液位模糊控制
基于MATLAB的水箱水位模糊控制系统的设计

小相位特性、不稳定性、时滞和负荷干扰等。若采用单一的水位反馈控制难以达到预期的控 制效果,所以采用了仿人的模糊控制方法依据操作人员的现场经验制成模糊控制表,通过判 断水位的偏差及偏差变化率来控制输出,并易于在 PLC 上实现。模糊 PID 控制器的特点是在 大范围内利用模糊推理的方法调整系统的控制量 U,而在小偏差范围内转换成 PID 控制,两 者的转换根据事先给定的偏差范围自动实现[3]。这样做的好处是:既保证动态响应效果,又 能改善稳态控制精度。图 3 为模糊 PID 控制器的系统方框图。
r
+ _
PID 控制器 e
ec 模糊控制器 d/dt
e y
对象 U
变送器
图 3 模糊 PID 控制器系统方框图
其中,模糊控制器和 PID 控制器的切换是通过在 MATLAB 的 M 文件中事先设定误差 e 的 范围来自动实现的[4]。选取水位误差 e 的基本论域为[-10cm,10cm],选取误差变化率 ec 的 基本论域为[-4,4],选取控制量 u 的基本论域为[0,4000]。e、ec、u 的语言变量值分别 为:e={NB,NM,NS,ZE,PS,PM,PB},ec={NB,NM,NS,ZE,PS,PM,PB},u={NB,NM, NS,ZE,PS,PM,PB}。
在现代工业生产及日常生活中,有很多方面都会涉及到水位控制这个问题。而在绝大多 数情况下,我们是很难或是不可能得到被控对象的精确数学模型的,因此采用数学工具或计 算机仿真技术的传统控制理论已经无法解决此类系统的控制问题。[1]智能控制的概念主要是 针对控制对象及其环境、目标和任务的不确定性和复杂性而提出来的,而模糊逻辑控制则作 为一种新颖的智能控制方式越来越受到人们的重视。模糊逻辑控制是智能控制领域的重要发 展方向,模糊控制技术被称为“21 世纪的核心技术”。
基于MATLAB的洗衣机模糊控制设计毕业设计

毕业设计基于MATLAB的洗衣机模糊控制设计摘要模糊控制洗衣机不仅实现了洗衣机的全面自动化,也提高了洗衣的质量,具有很强的实用性和较好的发展前景。
本设计的主要目的是设计一个比较合理的洗衣机模糊控制器,这种采用模糊控制的洗衣机能够通过洗衣桶内水的脏污程度和污渍性质(油污或者泥污)来自动预选水位和洗涤时间,以达到最佳的洗涤效果。
本文主要研究了基于MATLAB的洗衣机模糊控制。
首先介绍了模糊控制的基本原理,明确本设计中所要控制的变量,即水位和洗涤时间。
其次,定义了输入、输出模糊集,结合实际情况定义了隶属函数,然后建立模糊控制规则,给出模糊控制表,进行了模糊推理。
最后采用Simulink对该系统进行仿真,通过仿真曲线可以看出,文中采用的模糊控制方法是正确而有效的。
关键词:模糊控制;模糊集;隶属函数;控制规则;模糊推理AbstractFuzzy control of washing machine does not only achieve a fully automated washing machine, but also improve the quality of laundry; it has a strong practicality and a good development prospect.The main purpose of this design is to design a more reasonable washing machine fuzzy controller, fuzzy control of washing machine can automatically detect the dirty level of laundry bucket and the nature of stain (oil or sediment); it also can automatically pre-selected water level and washing time to achieve the best water quality.This paper mainly studies what based on the MATLAB fuzzy control of washing machines. First, it introduces the basic principles of fuzzy control, clearly the variables of this design to control, those are water level and washing time; Second, define the input and output fuzzy sets, and define the membership function combined the actual conditions, and then create the fuzzy control rules, give the fuzzy control table, then use these to the fuzzy reasoning. Finally, Simulink simulates the system; the simulation curves show that the text used in fuzzy control method is correct and effective.Key words:fuzzy control; fuzzy sets; the membership function; control rules; the fuzzy reasoning目录第1章前言 (1)1.1 选题的目的及意义 (1)1.2 国内外发展情况 (1)1.3 MATLAB简介 (2)1.4 模糊控制简介 (4)1.5 论文的主要内容 (4)第2章模糊控制器原理及设计 (6)2.1 模糊控制原理 (6)2.2 模糊控制系统的分类 (17)2.3 模糊控制器的设计 (18)第3章洗衣机的模糊控制 (21)3.1 洗衣机的时间控制 (21)3.2 洗衣机的水位控制 (28)3.3 本章小结 (31)结论 (32)参考文献 (33)致谢 (34)附录1 (35)附录2 (36)附录3 (37)附录4 (38)附录5 (40)第1章前言1.1 选题的目的及意义随着现代社会生活节奏的不断加快和人们生活水平的不断提高,人们对各种方便、快捷的家用电器需求量越来越大,为了提高人们的生活效率,全自动洗衣机应运而生。
水箱液位matlab模糊控制例程sltank详解【范本模板】

一问题描述水位控制系统是由水箱(Tank),进水管、出水管和控制阀门等构成。
在进水管上,安装有一液压阀门,控制它的位置,可以控制流入水箱的流量.出水管道的面积(Out pipe crossection)保持常数,因此,流出出水管的流量主要与水箱的水位和水压有关。
系统具有明显的非线性特性.我们的目的是构建一个模糊闭环控制系统.其控制目的是通过调整控制阀门的开度,达到控制水箱水位的目的,并使其能够快速跟随所设定的水位(给定输入)。
除控制对象外,控制系统应包含有水位检测装置,控制器(常规PID 控制器或模糊控制器)及执行机构。
二控制系统动态结构图流速计算依据为简化伯努利方程或托里拆利定律,二者结论一致。
其中托里拆利定律内容为:忽略粘滞性,任何液体止点从小孔中流出的速度与它从h高度处自由落下的速度相等。
Level flow out动态模型中主要用到的计算关系式如下:液位=容积/底面积level=tank volume/area流量=流速*出水口面积流速=(2*g*level)^0.5被控对象水箱模型搭建按照上述动态结构图进行,实际设计的水箱模型如下:封装后执行机构:VALVE三水位控制系统模型四模型使用方法启动matlab,命令行输入sltank,既可打开水位模糊控制仿真模型. 设置const大于等于0,系统工作于PID控制模式设置const小于0,系统工作于模糊控制模式模糊控制时液位输入输出关系(双击Comparison示波器)液位动画PID控制时液位的输入输出关系比较两种控制模式下液位曲线可以发现PID控制有超调,这一点在液位动画中也有体现.修改模型参数PID参数的调整可以直接双击PID Controller模块设置,这里着重介绍模糊控制器参数的修改.用到的主要命令如下:例如可通过以下代码以文本形式显示tanka=readfis(’tank’)%读取tank文件showfis(a); %显示在这里通过模糊推理的用户界面来修改水位控制的规则库,查看对控制效果的影响。
模糊控制水箱液位调节

实验二:模糊控制水箱液位调节一实验目的1.掌握模糊控制的原理2.加强模糊控制在实践中的应用二实验器材装有Matlab软件PC电脑一台三实验原理模糊控制的基本原理:它的核心部分为模糊控制器,模糊控制器的控制规律由有计算机程序实现。
详见P32(模糊控制原理)。
四原代码clear allclose allq1=0; %定义第一个水箱的入水量q2=0; %定义第一个水箱的出水量q3=0; %定义第二个水箱的出水量q4=0; %定义第三个水箱的出水量b=1.4; %定义第一个水箱入水量的控制系数a1=8.6; %定义第一个水箱出水量的控制系数a2=8.6; %定义第一个水箱出水量的控制系数h1=100; %定义第一个水箱中水的初始高度h2=100; %定义第二个水箱中水的初始高度h3=100; %定义第三个水箱中水的初始高度v=119; %定义sin函数的系数s=190; %定义水箱底面积k=10; %定义开关控制量e=0; %定义误差e_1=0;ec=0;H=130; %定义第三个水箱的期望高度e=H-h1;a=newfis('fuzz'); %误差函数a=addvar(a,'input','e',[-25,25]);a=addmf(a,'input',1,'NB','zmf',[-25,-10]);a=addmf(a,'input',1,'PS','trimf',[-25,-10,0]);a=addmf(a,'input',1,'Z','trimf',[-10,0,10]);a=addmf(a,'input',1,'PS','trimf',[0,10,25]);a=addmf(a,'input',1,'PB','smf',[10,25]);a=addvar(a,'output','u',[0,100]); %控制量输出函数a=addmf(a,'output',1,'NB','zmf',[0,30]);a=addmf(a,'output',1,'NS','trimf',[0,30,50]);a=addmf(a,'output',1,'Z','trimf',[30,50,70]);a=addmf(a,'output',1,'PS','trimf',[50,70,100]);a=addmf(a,'output',1,'PB','smf',[70,100]);rulelist=[1 1 1 1;2 2 1 1;3 3 1 1;4 4 1 1;5 5 1 1];a = addrule(a, rulelist);for i=1:1:8000tt(i)=i; %时间轴q1=b*k; %第一个水箱的进水量q2=a1*sqrt(h1); %第一个水箱的出水量h1=h1+(q1-q2)/s; %第一个水箱中水的高度q3=a2*sqrt(h2); %第二个水箱的进水量h2=h2+(q2-q3)/4; %第二个水箱中水的高度q4=v*abs(sin(2.3*pi*i+0.35)); %第二个谁想的出水量h3=h3+(q3-q4)/s; %第三个水箱中的高度hh(i)=h3;k=evalfis(e,a);e=H-h3;endplot(tt,hh)五、插图。
智能控制及MATLAB实现—水箱液位模糊控制仿真设计

智能控制及MATLAB实现—水箱液位模糊控制仿真设计智能控制是一种利用先进的智能技术和算法来实现自动控制的方法。
在智能控制中,模糊控制是一种常见且有效的方法之一、模糊控制通过将模糊逻辑应用于控制系统中的输入和输出,根据模糊规则来进行决策和控制。
水箱液位控制是一个典型的控制问题,常常用于工业和民用领域中的自动化系统。
在许多控制应用中,水箱液位的控制是一个关键的问题,因为它需要根据系统的液位情况来实现稳定的控制。
在模糊控制中,首先需要建立一套模糊规则系统,该系统包括模糊化、模糊推理和解模糊化这三个步骤。
模糊化是将实际输入转换为模糊集合的过程。
在水箱液位控制中,可以将液位分为低、中和高三个模糊集合。
通过将实际液位值映射到这些模糊集合中的一个,来表示液位状态。
模糊推理是根据一组模糊规则,将模糊输入转换为模糊输出的过程。
通过将输入和规则进行匹配,确定输出的模糊集合。
在水箱液位控制中,可以使用如下规则:如果液位低且液位变化小,则控制信号为增大水流量;如果液位高且液位变化大,则控制信号为减小水流量;如果液位中等且液位变化适中,则控制信号为不变。
解模糊化是将模糊输出转换为实际的控制信号的过程。
在水箱液位控制中,可以使用模糊加权平均值的方法来进行解模糊化。
通过将模糊集合和其对应的权重进行加权平均计算,得到最终的控制信号。
在MATLAB中,可以使用Fuzzy Logic Toolbox来实现水箱液位模糊控制仿真设计。
首先需要建立输入和输出的模糊化和解模糊化函数,然后根据实际的模糊规则,构建模糊系统。
最后通过设定输入的模糊值,使用模糊系统进行推理和解模糊,得到最终的控制信号。
总结起来,智能控制及MATLAB实现水箱液位模糊控制仿真设计包括建立模糊规则系统,进行模糊化、模糊推理和解模糊化三个步骤,通过Fuzzy Logic Toolbox来实现模糊控制系统的构建和仿真。
通过利用模糊控制的方法,可以实现水箱液位的自动稳定控制,并提高了控制系统的鲁棒性和适应性。
智能控制及MATLAB实现—水箱液位模糊控制仿真设计

水箱水位模糊控制系统设计一.在MATLAB命令窗口中输入sltank,便可打开如图所示的模型窗口。
图1 sltank仿真图(1)打开MATLAB,输入指令fuzzy,打开模糊逻辑工具箱的图形用户界面窗口,新建一个Mamdani模糊推理系统。
(2)增加一个输入变量,将输入变量命名为水位误差、误差变化,将输出变量命名为阀门开关速度。
这样就建立了一个两输入单输出的模糊推理系统,保存为shuiwei1。
图2 增加一个输入变量(3)设计模糊化模块;设水位误差level的论域为[2、95 3、05],误差变化率rate的论域为[-0、2 0、2];两个输入量的模糊集为level设为为7个,rate设为5个:其中水位误差level定为NB、NM、NS、ZE、PS、PM、PB;参数分别为[0、01 2、95]、[0、01 2、97],[0、01 2、99]、[0、01 3]、[0、01 3、01]、[0、01 3、03]、[0、01 3、05],隶属度均为高斯函数;图3 输入量level的参数设定误差变化率rate分别为负大,负小,不变,正小,正大。
参数分别为,[0、03 -0、2]、[0、03 -0、1]、[0、03 0]、[0、03 0、1]、[0、03 -0、2],隶属度函数均为高斯函数。
图4 误差变化率rate的参数设定阀门的开关速度设为七个等级:快关,中关,慢关,不动,慢开,中开,快开,其论域为[2、95 3、05]。
参数分别为;[2、94 2、95 2、96]、[2、965 2、97 2、975]、[2、99 2、99 2、995]、[2、999 3 3、001]、[3、005 3、01 3、015]、[3、02 3、03 3、035]、[3、04 3、05 3、06],隶属函数为三角形函数。
图5 输出量valve的参数设定(4)设计模糊规则打开Ruel Editor窗口,通过选择添加模糊规则;1)If (level is NB) and (rate is 负大) then (valve is 快关) (1)2)If (level is NB) and (rate is 负小) then (valve is 快关) (1) 3)If (level is NB) and (rate is 不变) then (valve is 快关) (1) 4)If (level is NB) and (rate is 正小) then (valve is 中关) (1)5)If (level is NB) and (rate is 正大) then (valve is 不动) (1) 6)If (level is NM) and (rate is 负大) then (valve is 快关) (1) 7)If (level is NM) and (rate is 负小) then (valve is 快关) (1) 8)If (level is NM) and (rate is 不变) then (valve is 快关) (1) 9)If (level is NM) and (rate is 正小) then (valve is 中关) (1)10)If (level is NM) and (rate is 正大) then (valve is 不动) (1) 11)If (level is NS) and (rate is 负大) then (valve is 中关) (1) 12)If (level is NS) and (rate is 负小) then (valve is 中关) (1) 13)If (level is NS) and (rate is 不变) then (valve is 中关) (1) 14)If (level is NS) and (rate is 正小) then (valve is 不动) (1) 15)If (level is NS) and (rate is 正大) then (valve is 慢开) (1) 16)If (level is ZE) and (rate is 负大) then (valve is 中关) (1) 17)If (level is ZE) and (rate is 负小) then (valve is 慢关) (1) 18)If (level is ZE) and (rate is 不变) then (valve is 不动) (1)19)If (level is ZE) and (rate is 正小) then (valve is 慢开) (1) 20)If (level is ZE) and (rate is 正大) then (valve is 中开) (1) 21)If (level is PS) and (rate is 负大) then (valve is 慢关) (1) 22)If (level is PS) and (rate is 负小) then (valve is 不动) (1) 23)If (level is PS) and (rate is 不变) then (valve is 中开) (1) 24)If (level is PS) and (rate is 正小) then (valve is 中开) (1) 25)If (level is PS) and (rate is 正大) then (valve is 中开) (1) 26)If (level is PM) and (rate is 负大) then (valve is 不动) (1) 27)If (level is PM) and (rate is 负小) then (valve is 中开) (1) 28)If (level is PM) and (rate is 不变) then (valve is 快开) (1) 29)If (level is PM) and (rate is 正小) then (valve is 快开) (1) 30)If (level is PM) and (rate is 正大) then (valve is 快开) (1) 31)If (level is PB) and (rate is 负大) then (valve is 不动) (1) 32)If (level is PB) and (rate is 负小) then (valve is 中开) (1) 33)If (level is PB) and (rate is 不变) then (valve is 快开) (1) 34)If (level is PB) and (rate is 正小) then (valve is 快开) (1) 35)If (level is PB) and (rate is 正大) then (valve is 快开) (1) 这35条模糊控制规则的权重都为1、图6 模糊控制规则的设定(5)利用编辑器的 to Workspace, 将当前的模糊推理系统,以shuiwei1保存到工作空间中。
-基于MATLAB的双容水箱液位的模糊神经控制

自 1932 年奈魁斯特(H.Nyquist)的有关反馈放大器稳定性论文发表以来,控制理 论的发展已走过了近 80 年的历程。前 30 年是经典控制理论的发展和成熟阶段,后 50 年是现代控制理论的形成和发展阶段。随着研究的对象和系统越来越复杂,借助 于数学模型描述和分析的传统控制理论已难以解决复杂系统的控制问题。智能控制是 针对控制对象及其环境、目标和任务的不确定性和复杂性而产生和发展起来的。从 20 世纪 60 年代起,计算机技术和人工智能技术迅速发展,为了提高控制系统的自主 学习能力,人工智能技术被学者们提出并广泛应用于控制系统。1965 年,美籍华裔 科学家傅京孙教授首先把人工智能的启发式推理规则用于学习控制系统;1966 年,
2 系统建模与 MATLAB 环境 ......................................................................................4 2.1 过程控制系统的建模方法..................................................................................4 2.1.1 机理法 ...........................................................................................................4 2.1.2 测试法 ...........................................................................................................4 2.2 双容水箱液位控制系统的建模..........................................................................4 2.3 MATLAB 环境及 Simulink 模型 .......................................................................8 2.3.1 MATLAB 软件简介 .....................................................................................8 2.3.2 Simulink 模型................................................................................................8
基于MATLAB水箱液位控制系统的设计

基于MATLAB水箱液位控制系统的设计水箱液位控制系统是水处理领域的一个重要应用,可以实现对水箱液位的监测和控制。
本文将基于MATLAB平台设计一个水箱液位控制系统,并详细介绍其工作原理、设计步骤和实现方法。
1.设计目标和原理设计目标是实现水箱液位的实时监测和自动控制,保持液位在设定值附近波动。
系统原理是通过传感器实时检测水箱液位,将液位信号传输给控制器进行处理,控制器根据设定值和实际液位偏差调整执行机构的动作,使液位保持在设定值范围内。
2.设计步骤(1)确定传感器和执行机构:选择合适的液位传感器和执行机构,如浮球传感器和电动阀门。
(2)建立数学模型:根据系统特性建立数学模型,描述液位与传感器输出和执行机构控制信号之间的关系。
(3)设计控制器:根据液位模型设计控制器,如PID控制器。
(4)编写MATLAB程序:使用MATLAB编写程序,实现液位监测、控制器设计和控制信号输出。
3.系统实现方法(1)建立模拟环境:在MATLAB中建立水箱液位模拟环境,包括液位模型、传感器模型和执行机构模型。
(2)液位监测:读取传感器输出信号,获取实时液位信息。
(3)控制器设计:根据实时液位和设定值计算控制信号,可以使用PID控制器进行设计。
(4)控制信号输出:将控制信号发送给执行机构,实现对阀门的开关控制。
(5)反馈调整:根据执行机构的反馈信号对控制器参数进行调整,以进一步优化系统性能。
4.系统性能指标和优化(1)稳定性:控制系统在干扰的情况下能够保持液位稳定。
(2)响应速度:控制系统对液位变化的响应速度,可以通过调整控制器参数来实现快速响应。
(3)偏差:控制系统的液位偏差大小,可以通过调整控制器参数和设定值来控制偏差范围。
(4)抗干扰性能:控制系统对外界干扰(如水源变化)的抵抗能力。
(5)稳定性分析:通过系统稳定性分析,确定系统参数的合理范围。
(6)优化方法:通过试验和仿真,不断调整控制器参数和设定值,以实现最佳控制效果。