智能控制及MATLAB实现—水箱液位模糊控制仿真设计
智能控制及MATLAB实现—水箱液位模糊控制仿真设计智能控制是一种利用先进的智能技术和算法来实现自动控制的方法。
在智能控制中,模糊控制是一种常见且有效的方法之一、模糊控制通过将
模糊逻辑应用于控制系统中的输入和输出,根据模糊规则来进行决策和控制。
水箱液位控制是一个典型的控制问题,常常用于工业和民用领域中的
自动化系统。
在许多控制应用中,水箱液位的控制是一个关键的问题,因
为它需要根据系统的液位情况来实现稳定的控制。
在模糊控制中,首先需要建立一套模糊规则系统,该系统包括模糊化、模糊推理和解模糊化这三个步骤。
模糊化是将实际输入转换为模糊集合的过程。
在水箱液位控制中,可
以将液位分为低、中和高三个模糊集合。
通过将实际液位值映射到这些模
糊集合中的一个,来表示液位状态。
模糊推理是根据一组模糊规则,将模糊输入转换为模糊输出的过程。
通过将输入和规则进行匹配,确定输出的模糊集合。
在水箱液位控制中,
可以使用如下规则:如果液位低且液位变化小,则控制信号为增大水流量;如果液位高且液位变化大,则控制信号为减小水流量;如果液位中等且液
位变化适中,则控制信号为不变。
解模糊化是将模糊输出转换为实际的控制信号的过程。
在水箱液位控
制中,可以使用模糊加权平均值的方法来进行解模糊化。
通过将模糊集合
和其对应的权重进行加权平均计算,得到最终的控制信号。
在MATLAB中,可以使用Fuzzy Logic Toolbox来实现水箱液位模糊
控制仿真设计。
首先需要建立输入和输出的模糊化和解模糊化函数,然后
根据实际的模糊规则,构建模糊系统。
最后通过设定输入的模糊值,使用模糊系统进行推理和解模糊,得到最终的控制信号。
总结起来,智能控制及MATLAB实现水箱液位模糊控制仿真设计包括建立模糊规则系统,进行模糊化、模糊推理和解模糊化三个步骤,通过Fuzzy Logic Toolbox来实现模糊控制系统的构建和仿真。
通过利用模糊控制的方法,可以实现水箱液位的自动稳定控制,并提高了控制系统的鲁棒性和适应性。
双容水箱液位控制系统设计matlab
双容水箱液位控制系统设计matlab在MATLAB中设计双容水箱液位控制系统,可以使用控制系统工具箱来完成。
以下是一个简单的步骤:1. 创建模型:使用StateSpace函数创建一个双容水箱的状态空间模型。
该模型将包括液位和出流控制的状态变量。
2. 设计控制器:使用控制系统工具箱中的pidtuner函数来设计控制器。
pidtuner函数可以根据指定的性能指标,自动调整PID 控制器的参数。
3. 闭环模拟:使用sim函数对闭环系统进行模拟。
将控制器和系统模型连接起来,并通过输入信号来观察系统的响应。
4. 优化控制器:根据模拟结果,调整控制器的参数以优化系统的性能。
可以使用pidtuner函数的自动调整功能,也可以手动调整参数。
5. 验证性能:通过模拟和实际测试,验证系统的性能是否达到了预期的要求。
如果需要进一步优化,可以返回第4步。
下面是一个简单的示例代码,演示如何在MATLAB中设计和模拟双容水箱液位控制系统:```matlab% 创建模型A = [0 1; 0 -1];B = [0; 1];C = [1 0];D = 0;sys = ss(A, B, C, D);% 设计控制器controller = pidtuner(sys, "pid");% 闭环模拟t = 0:0.01:10;r = 0.5*ones(size(t)); % 设定值[y, t, x] = lsim(controller, r, t);% 绘制结果figureplot(t, y, "b", "LineWidth", 2)hold onplot(t, r, "r--", "LineWidth", 2)xlabel("Time (s)")ylabel("Level")legend("Output", "Reference")% 优化控制器controller = pidtuner(sys, "pid", controller); % 验证性能[y, t, x] = lsim(controller, r, t);% 绘制结果figureplot(t, y, "b", "LineWidth", 2)hold onplot(t, r, "r--", "LineWidth", 2)xlabel("Time (s)")ylabel("Level")legend("Output", "Reference")```这个例子演示了使用PID控制器来控制双容水箱液位。
基于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的水箱水位模糊控制————————————————————————————————作者:————————————————————————————————日期:2目录前言1.模糊控制概述1.1模糊控制的产生及特点 (3)1。
2 模糊控制技术的发展 (4)1。
3 模糊控制理论的研究现状 (5)2.模糊推理原理2。
1模糊控制的基本工作原理 (6)3.基于MATLAB的水箱供水模糊控制3。
1水箱水位模糊控制系统设计 (8)小结 (16)参考文献 (17)第1页前言随着社会经济的迅速发展,水对人们生活与工业生产的影响越来越重要,尤其是近几年,随着居民生活水平的显著提高和城市化进程的加快,居民生活用水和工业用水增长幅度加大,原有的供水系统已经不能满足人们的需求。
为了保证正常的供水,这里应用模糊控制技术,实现对水箱水位的自动控制.第2页3、基于MATLAB的水箱供水模糊控制3。
1水箱水位模糊控制系统设计本系统设计基于MATLAB图形模糊推理系统,设计步骤如下:(1)打开MATLAB,输入指令fuzzy,打开模糊逻辑工具箱的图形用户界面窗口,新建一个Mamdani模糊推理系统。
图3.1 在FIS Editor窗口中新建水位控制模糊推理系统(2)增加一个输入变量,将输入变量命名为水位误差、误差变化,将输出变量命名为阀门开关速度.这样就建立了一个两输入单输出的模糊推理系统,保存为shuixiang.fis。
第3页图3。
2 增加一个输入变量(3)设计模糊化模块:设水位误差的论域为[-1 1],误差变化的论域为[—0.1 0。
1];两个输入量的模糊集都定为5个:其中水位误差定为高、偏高、合适、偏低、低五等;参数分别为[0.3 —1]、[0。
3 —0.5]、[0.3 0]、[0。
3 0.5]、[0.3 1];第4页图3.3 设计水位误差模块误差变化分为大、偏大、合适、偏小、小五等。
参数分别为[0.03 —0。
水箱液位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)五、插图。
水箱液位控制PID的MATLAB参数整定及仿真
水箱液位控制PID的MATLAB参数整定及仿真摘要:PID控制器主要针对控制对象来进行参数调节。
PID的归一参数整定法和试凑法费时,费力。
针对这一问题,探讨MATLAB实现PID参数整定及仿真,同时观察控制参数对PID控制规律的影响。
关键词:PID;参数整定;仿真1 引言PID控制器又称为PID调节器,是按偏差的比例P、积分I、微分D进行控制的调节器的简称,它主要针对控制对象来进行参数调节。
因为它算法简单、稳定性好、工作可靠、鲁棒性好,在工程上易于实现,但PID控制器的参数整定方法复杂,通常采用PID归一参数法和试凑法来确定,但较费时、费力。
针对这一问题,文中探讨用MATLAB实现PID参数整定及仿真的方法及控制参数对PID控制规律的影响。
利用MATLAB强大的计算仿真能力,解决了利用试凑法来整定参数浩繁的工作,可以方便、快速地找到使系统达到满意性能指标的参数。
2 PID控制器的原理与算法图1是典型PID控制系统结构图。
在PID调节器作用下,对误差信号分别进行比例、积分、微分控制。
PID控制算法的模拟表达式为μ (t) =Kp [ + +Td de(t) dt ]相应的传递函数为:Gc(s)= Kp(1 +S + TdS)3 水箱水位调节系统:一个典型的水箱水位自动控制系统如下图所示。
这个水位控制系统中,水池的进水量Q1来自手动控制开度的进水阀门,通过调节出水阀门调节出水量Q2,使水箱水位保持设定水位不变。
这个系统是个典型单冲量自动调节系统,在该系统中:系统中各组成单元的模型如下:水箱对象模型:G(s)=液位传感器:量程0~40cm执行阀:对应0~100%开度系统的方框图如图所示:4 PID控制器的MATLAB仿真PID控制器的参数Kp、Ti、Td分别对系统性能产生不同的影响。
在控制过程中如何把Kp、Ti、Td 3参数调节到最佳状态,需要深入了解PID控制中3参数对系统动态性能的影响。
下面讨论水箱水位调节系统中当一个参量发生变化,对应曲线的实时变化。
基于MATLAB水箱液位控制系统的设计课程设计(可编辑)
基于MATLAB水箱液位控制系统的设计课程设计太原理工大学过程控制系统课程设计设计名称水箱液位系统的控制设计目录摘要III任务书IV第1章绪论 41.1过程控制的定义 41.2过程控制的目的 41.3过程控制的特点 51.4过程控制的发展与趋势5第2章水箱液位控制系统的原理 62.1 人工控制与自动控制 6 2.2 水箱液位控制系统的原理框图 7 2.3 水箱液位控制系统的数学模型 8第3章水箱液位控制系统的组成113.1 被控制变量的选择113.2 执行器的选择 113. 3 PID控制器的选择143.4 液位变送器的选择15第4章PID控制规律174.1 比例控制174.2积分控制(I) 194.3微分控制(D) 194.4比例积分控制(PI) 204.5比例积分微分控制(PID) 20第5章利用MATLAB进行仿真设计..205.1MATLAB设计205.2 MATLAB设计任务215.3 MATLAB设计要求215.4 MATLAB设计任务分析215.5 MATLAB设计内容255.5.1主回路的设计255.5.2副回路的设计255.5.3主、副回路的匹配265.5.4 单回路PID控制的设计27 5.5.5串级控制系统的设计32 5.5.6串级控制系统的PID参数整定 34总结36参考文献36摘要在人们生活以及工业生产等诸多领域经常涉及到液位和流量的控制问题,?例如居民生活用水的供应,?饮料、食品加工,?溶液过滤,?化工生产等多种行业的生产加工过程,?通常需要使用蓄液池,?蓄液池中的液位需要维持合适的高度,?既不能太满溢出造成浪费,?也不能过少而无法满足需求。
因此液面高度是工业控制过程中一个重要的参数,特别是在动态的状态下,采用适合的方法对液位进行检测、控制,能收到很好的效果。
?PID控制(比例、积分和微分控制)是目前采用最多的控制方法。
本文主要是对一水箱液位控制系统的设计过程,涉及到液位的动态控制、控制系统的建模、PID算法、传感器和调节阀等一系列的知识。
模糊控制及matlab仿真
模糊控制及matlab仿真1 .实例某个液位控制系统的液体容器中,液体的流出量变化无常,无法建立起数学模型,只能通过控制进液阀门开度调节液位,使容器中的液位保持平衡。
根据积累的操作经验,归纳总结出使液体容器液位保持恒定的下述几条操作规律。
1.如果液位正好,则阀门开度不变;If level is okay then value is no change2.如果液位偏低,则增大阀门开度;If level is low then value is open fast3.如果液位偏高,则减小阀门开度;If level is high then value is close fast4.如果液位正好而进液流速快,则逐渐减小阀门开度;If level is okay and rate is positive then value is close slow5.如果液位正好而进液流速慢,则逐渐增大阀门开度;If level is okay and rate is negation then value is open slow 2. simulink模块及fis文件本系统采用曼达尼模型进行仿真,通过matlab模糊控制编辑器进行控制规则的建立,以及模糊控制器的搭建。
Fis编辑器如下图所示,该控制器为两输入一输出系统。
其中两输入分别为液位高度,及液位变化速率,输出为阀门开度。
“与”算法用求积来表达,“或”算法用代数和来表达,“蕴含”算法用求积来表达,“综合”算法为各条模糊规则结果取并,“清晰化”算法用面积中心法来描述。
隶属函数编辑器液位隶属函数液位变化速率隶属函数阀门开度隶属函数控制规则编写Simulink模块3. 仿真及结果分析液位初始波动与经过阀门调节后系统液位曲线比较。
智能控制及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 水位控制仿真
3-2水箱模糊控制器(MATLAB 演示)控制问题:水箱有一个进水口和一个出水口。
假设出水口固定不变,水箱水位则与出水速度有关。
出水速度是与水压有关,水压反过来又与水位高度有关,这是个非线性关系。
我们希望通过控制进水阀门,实现对水箱水位的任意控制。
最常用我们用方波信号来评价控制性能。
1 打开FIS编辑器: fuzzy tank1)模糊推理系统结构图:2)水箱FIS系统结构参数:-----------------------------------a=readfis('tank')---------------------------------a =name: 'tank'type: 'mamdani'andMethod: 'prod'orMethod: 'probor'defuzzMethod: 'centroid'impMethod: 'prod'aggMethod: 'max'input: [1x2 struct]output: [1x1 struct]rule: [1x5 struct]3)水箱FIS详细参数--------------------------------------a=readfis('tank')showfis(a)---------------------------------------1. Name tank2. Type mamdani3. Inputs/Outputs [2 1]4. NumInputMFs [3 3]5. NumOutputMFs 56. NumRules 57. AndMethod prod ;求积运算8. OrMethod probor ;代数和运算9. ImpMethod prod10. AggMethod max11. DefuzzMethod centroid12. InLabels level 输入变量名13. rate14. OutLabels valve 输出变量名15. InRange [-1 1] ;输入论域16. [-0.1 0.1]17. OutRange [-1 1] 输出论域18. InMFLabels high 输入1模糊参考集名称19. okay20. low21. negative 输入2模糊参考集名称22. none23. positive24. OutMFLabels close_fast ;输出模糊参考集名称25. close_slow26. no_change27. open_slow28. open_fast29. InMFTypes gaussmf ;输入模糊参考集形状,高斯型30. gaussmf31. gaussmf32. gaussmf33. gaussmf34. gaussmf35. OutMFTypes trimf ;输出模糊参考集形状,三角形36. trimf37. trimf38. trimf39. trimf40. InMFParams [0.3 -1 0 0] 模糊参考集形状参数41. [0.3 0 0 0]42. [0.3 1 0 0]43. [0.03 -0.1 0 0]44. [0.03 0 0 0]45. [0.03 0.1 0 0]46. OutMFParams [-1 -0.9 -0.8 0]47. [-0.6 -0.5 -0.4 0]48. [-0.1 0 0.1 0]49. [0.2 0.3 0.4 0]50. [0.8 0.9 1 0]51. Rule Antecedent [2 0] 模糊规则前件52. [3 0]53. [1 0]54. [2 3]55. [2 1]51. Rule Consequent 3 模糊规则后件52. 553. 154. 255. 451. Rule Weight 152. 153. 154. 155. 151. Rule Connection 152. 153. 154. 155. 14)列出水箱FIS的模糊规则------------------------------------a=readfis('tank');showrule(a)------------------------------------ans =1. If (level is okay) then (valve is no_change) (1)2. If (level is low) then (valve is open_fast) (1)3. If (level is high) then (valve is close_fast) (1)4. If (level is okay) and (rate is positive) then (valve is close_slow) (1)5. If (level is okay) and (rate is negative) then (valve is open_slow) (1) 5)隶属函数形状6)模糊推理过程图7)模糊推理输入输出关系图sltank,进入Simlink环境观察输入与输出的关系(1)模糊控制器与PID控制器作比较将开关选择“const”, 由-1改为1,表示PID控制器工作观察输出响应情况(4)观察模糊规则变化的影响键入命令:ruleedit tank删除最后两条规则,将结果临时存入工作空间: File /Export / To workspace(退出ruleedit窗口时不要选择保存选择,否则会破坏源程序设置)1. If (level is okay) then (valve is no_change) (1)2. If (level is low) then (valve is open_fast) (1)3. If (level is high) then (valve is close_fast) (1)4. If (level is okay) and (rate is positive) then (valve is close_slow) (1)5. If (level is okay) and (rate is negative) then (valve is open_slow) (1)(c)切换到sltank的Simlink环境,观察结果。
