模糊控制MATLAB实现具体过程(强势吐血推荐)
- 格式:ppt
- 大小:1.31 MB
- 文档页数:61
用 Matlab 的 Fuzzy 工具箱实现模糊控制Matlab, Fuzzy, 模糊控制, 工具箱用Matlab 中的Fuzzy 工具箱做一个简单的模糊控制,流程如下:1、创建一个FIS (Fuzzy Inference System ) 对象,a = newfis(fisName,fisType,andMethod,orMethod,impMethod, aggMethod,defuzzMethod)一般只用提供第一个参数即可,后面均用默认值。
2、增加模糊语言变量a = addvar(a,'varType','varName',varBounds)模糊变量有两类:input 和output。
在每增加模糊变量,都会按顺序分配一个index,后面要通过该index 来使用该变量。
3、增加模糊语言名称,即模糊集合。
a = addmf(a,'varType',varIndex,'mfName','mfType',mfParams)每个模糊语言名称从属于一个模糊语言。
Fuzzy 工具箱中没有找到离散模糊集合的隶属度表示方法,暂且用插值后的连续函数代替。
参数mfType 即隶属度函数(Membership Functions),它可以是Gaussmf、trimf、trapmf等,也可以是自定义的函数。
每一个语言名称也会有一个index,按加入的先后顺序得到,从 1 开始。
4、增加控制规则,即模糊推理的规则。
a = addrule(a,ruleList)其中ruleList 是一个矩阵,每一行为一条规则,他们之间是ALSO 的关系。
假定该FIS 有N 个输入和M 个输出,则每行有N+M+2 个元素,前N 个数分别表示N 个输入变量的某一个语言名称的index,没有的话用0 表示,后面的M 个数也类似,最后两个分别表示该条规则的权重和个条件的关系,1 表示AND,2 表示OR。
如何利用Matlab进行模糊控制引言近年来,随着科技的不断发展,模糊控制作为一种重要的控制方法,在各个领域得到了广泛的应用。
而Matlab作为一款功能强大的数学工具软件,对于模糊控制的实现提供了便捷的支持。
本文将介绍如何利用Matlab进行模糊控制,以及其在实际应用中的优势和局限性。
一、模糊控制简介模糊控制是一种基于模糊逻辑的控制方法,它通过将模糊规则应用于控制系统,使其能够对不确定性和模糊信息进行处理。
与传统的精确控制方法相比,模糊控制更适用于处理复杂系统或无法精确建模的系统。
二、Matlab中的模糊控制工具箱Matlab提供了专门的模糊控制工具箱,可以方便地实现模糊控制系统的建模、仿真和优化等操作。
在Matlab的模糊控制工具箱中,主要包括两个核心部分:模糊推理引擎和模糊控制器。
1. 模糊推理引擎模糊推理引擎是模糊控制系统的核心部分,它负责根据输入和模糊规则,对系统进行推理和输出控制量。
在Matlab中,可以使用命令"newfis"来创建一个新的模糊控制系统,然后通过定义输入和输出变量、设定隶属函数和模糊规则等步骤,来构建一个完整的模糊控制系统。
2. 模糊控制器模糊控制器是模糊控制系统的具体实现,它将模糊推理引擎与输入输出之间的映射关系结合起来。
在Matlab中,可以使用命令"newfis"创建一个新的模糊控制系统,然后使用"addInput"和"addOutput"来添加输入和输出变量,最后通过设定隶属函数和模糊规则等步骤,来实现模糊控制器的搭建。
三、模糊控制的实际应用模糊控制在实际应用中有着广泛的应用领域,例如机器人控制、汽车导航、电力系统等。
下面将以一个模拟小车控制的实例来介绍如何利用Matlab进行模糊控制。
假设有一个小车需要根据距离和角度来控制其行驶方向和速度。
首先要定义输入和输出变量,这里我们将距离划分为近、中、远三个模糊集,角度划分为左、中、右三个模糊集,行驶方向划分为左转、直行、右转三个模糊集,行驶速度划分为慢、中、快三个模糊集。
下面用一个简单的例子作介绍:(本例不是特别针对实现什么功能,只是为了介绍方便)第一部分创建一个模糊逻辑(.fis文件)第一步:打开模糊推理系统编辑器步骤:在Commond Window 键入fuzzy回车打开如下窗口,既模糊推理系统编辑器第二步:使用模糊推理系统编辑器本例用到两个输入,两个输出,但默认是一个输人,一个输出步骤:1、添加一个输入添加一个输出得如下图2、选择Input、output(选中为红框),在Name框里修改各输入的名称并将And method 改为prod,将Or method 改为probor提示:在命名时’_’在显示时为下标,可从上图看出。
第三步:使用隶属函数编辑器该编辑器提供一个友好的人机图形交互环境,用来设计和修改模糊推理系中各语言变量对应的隶属度函数的相关参数,如隶属度函数的形状、范围、论域大小等,系统提供的隶属度函数有三角、梯形、高斯形、钟形等,也可用户自行定义。
步骤:1、双击任何一个输入量(In_x、In_y)或输出量打开隶属度函数编辑器。
2、在左下处Range和Display Range处添加取值范围,本例中In_x和In_y的取值范围均为[0 10], Out_x和Out_y的取值范围均为[0 1]3、默认每个输入输出参数中都只有3个隶属度函数,本例中每个输入输出参数都需要用到五个,其余几个需要自己添加:选中其中一个输入输出参数点击Edit菜单,选Add MFS…打开下列对话框将MF type设置为trimf(三角形隶属度函数曲线,当然你也需要选择其他类型) 将Number of MFs设置为2点击OK按钮同样给其他三个加入隶属度函数4、选中任何一个隶属度函数(选中为红色),在Name中键入名称,在Type 中选择形状,在Params中键入范围,然后回车如下图:5、关闭隶属函数编辑器第四步:使用规则编辑器通过隶规则编辑器来设计和修改“IF...THEN”形式的模糊控制规则。
模糊控制在matlab中的实例以下是一个模糊控制的MATLAB实例:假设我们要控制一个水平摆,使其保持在垂直状态。
我们可以使用模糊控制器来实现这个任务。
首先,我们需要定义输入和输出变量。
对于输入变量,我们可以选择摆的角度和摆的角速度,对于输出变量,我们可以选择施加到摆上的力。
```matlab% 定义输入变量angle = fuzzymf("angle", [-90 -45 0 45 90], "trimf", [-90 -45 0 45 90]);angular_velocity = fuzzymf("angular_velocity", [-10 -5 0 5 10], "trimf", [-10 -5 0 5 10]);% 定义输出变量force = fuzzymf("force", [-20 -10 0 10 20], "trimf", [-20 -10 0 10 20]);```接下来,我们定义模糊规则。
这些规则描述了如果摆的角度和角速度是什么,我们应该施加多少力,以使摆保持垂直。
```matlab% 定义模糊规则rules = [1 1 3 1;1 2 4 1;1 3 5 2;2 1 2 1;2 23 1;2 3 4 2;3 1 1 2;3 2 2 1;3 3 3 1;4 1 1 3;4 2 2 2;4 3 3 1;5 1 1 3;5 2 2 2;5 3 4 3];% 定义模糊推理引擎fis = mamfis("Name", "Pendulum Fuzzy Controller", "NumInputs", 2, "NumOutputs", 1);fis.Inputs(1).MembershipFunctions = angle;fis.Inputs(2).MembershipFunctions = angular_velocity; fis.Outputs(1).MembershipFunctions = force;fis.Rules = rules;```最后,我们可以使用模糊控制器来控制水平摆。
使用Matlab技术进行模糊控制的基本方法随着科技的不断发展,控制系统越来越广泛地应用于各个领域,帮助我们解决实际问题。
在控制系统中,模糊控制技术因其适应性强、鲁棒性好等特点而备受关注。
而Matlab作为一个强大的计算工具,为我们提供了许多实现模糊控制的功能。
本文将介绍使用Matlab技术进行模糊控制的基本方法。
一、模糊控制的基本理论在介绍使用Matlab进行模糊控制的方法之前,我们先来了解一下模糊控制的基本理论。
模糊控制是一种基于模糊逻辑的控制方法,它模拟人类的思维方式进行控制,通过建立模糊规则库来实现对系统的控制。
在模糊控制中,输入和输出之间的关系由一组模糊规则来描述,这些模糊规则可以通过模糊推理进行计算得到系统的输出。
模糊控制主要有三个基本步骤:模糊化、模糊推理和去模糊化。
模糊化是将输入的实际值通过模糊隶属函数映射成模糊集合。
模糊推理则是根据模糊规则库进行推理计算,得到模糊输出。
最后,去模糊化将模糊输出转换为实际的控制量。
二、使用Matlab进行模糊控制的步骤1. 定义模糊集合和模糊规则库使用Matlab进行模糊控制的第一步是定义模糊集合和模糊规则库。
模糊控制中的模糊集合可以通过Matlab的fuzzymf函数来定义,它可以根据实际问题选择三角形、梯形、高斯函数等不同形状的隶属函数。
模糊规则库则是描述输入和输出之间关系的集合,它由一组模糊规则构成。
在Matlab中,可以使用fuzzylut函数来定义模糊规则库。
这个函数需要指定输入和输出的隶属函数以及规则的后件。
2. 模糊化和模糊推理定义好模糊集合和模糊规则库之后,接下来就是进行模糊化和模糊推理的计算了。
在Matlab中,可以使用fuzzy函数进行模糊化的计算。
这个函数需要输入模糊集合、输入的隶属函数和对应的输入值,然后计算得到模糊输入。
模糊推理可以通过fuzzy函数结合模糊规则库进行计算。
这个函数需要输入模糊规则库、模糊输入和输出的隶属函数,然后计算得到模糊输出。
Matlab技术模糊控制方法随着科技的不断进步,控制系统在各个领域中起着至关重要的作用。
为了适应不同的应用场景,不同的控制方法也应运而生。
其中,模糊控制方法因其对系统非线性特性的适应性和可解释性而备受关注。
本文将详细介绍Matlab技术中的模糊控制方法,包括模糊集合的表示与运算、模糊推理规则的建立、模糊控制器的设计与优化。
第一部分:模糊集合与模糊运算在模糊控制中,首先需要将系统的输入和输出用模糊集合的形式表示。
模糊集合是用隶属度函数来描述的,隶属度函数表示了某个元素属于该模糊集的程度。
Matlab中提供了一些方便的工具和函数来实现模糊集合的表示和计算。
首先,我们需要定义模糊集合的隶属度函数。
常见的隶属度函数有三角形隶属度函数、梯形隶属度函数、高斯隶属度函数等。
可以使用Matlab中的fuzzify函数来定义这些函数,并通过plot函数来可视化。
接下来,我们可以使用Matlab中的模糊运算函数来进行模糊集合的运算,例如交集运算和并集运算。
这些函数包括min、max、prod等函数。
通过这些函数,我们可以方便地实现模糊集合的合并和比较。
第二部分:模糊推理规则的建立模糊推理规则是模糊控制中的核心部分,它将模糊集合的输入映射为输出。
在Matlab中,我们可以使用fuzzy规则编辑器来定义和管理模糊推理规则。
首先,我们需要确定输入和输出的模糊集合。
在fuzzy规则编辑器中,我们可以指定输入和输出变量,并为其分配模糊集合。
接着,我们可以添加模糊规则,每个模糊规则包括条件和结论两个部分。
条件部分是输入变量的模糊集合的组合,结论部分是输出变量的模糊集合。
在添加模糊规则之后,我们可以使用fuzzify函数将输入变量模糊化,并使用inference函数进行推理。
推理结果将以模糊集合的形式表示。
第三部分:模糊控制器的设计与优化在模糊控制中,模糊控制器是通过将输入模糊集合映射为输出模糊集合来实现控制目标的。
在Matlab中,我们可以使用fuzzy控制器编辑器来设计和优化模糊控制器。
模糊控制在matlab中的实例模糊控制是一种基于经验知识的控制方法,与传统的精确控制方法不同,它允许对系统的行为进行模糊描述,并通过一套模糊规则来对系统进行控制。
在实际应用中,模糊控制常常用于处理非线性、复杂和不确定的系统,例如温度控制、汽车制动系统等。
在MATLAB中,可以通过使用Fuzzy Logic Toolbox工具箱来实现模糊控制。
下面以一个简单的温度控制系统为例,来介绍如何在MATLAB中进行模糊控制的实现。
首先,需要定义模糊控制器的输入和输出变量,以及它们的模糊集合。
在温度控制系统中,可以定义温度作为输入变量,定义加热功率作为输出变量。
可以将温度的模糊集合划分为"冷"、"适中"和"热"三个模糊集合,将加热功率的模糊集合划分为"低"、"中"和"高"三个模糊集合。
```temperature = readfis('temperature.fis');temp_input = [-10, 40];temp_output = [0, 100];temperature_inputs = ["冷", "适中", "热"];temperature_outputs = ["低", "中", "高"];```然后,需要定义模糊规则。
模糊规则用于根据输入变量的模糊集合和输出变量的模糊集合之间的关系来确定控制规则。
例如,当温度为"冷"时,加热功率应该为"高"。
可以根据经验知识定义一系列模糊规则。
```rules = ["冷", "高";"适中", "中";"热", "低";];```接下来,需要定义模糊控制器的输入和输出变量值。
利用Matlab进行模糊逻辑与控制的技巧与方法随着科技的不断进步和发展,模糊逻辑与控制作为一种新兴的控制方法受到了越来越多的关注和应用。
它可以模拟人类的思维方式,将模糊的输入转化为准确的输出结果,用于解决现实生活中的各种问题。
而Matlab作为一种强大的科学计算软件,不仅能够提供快速的数值计算能力,还为模糊逻辑与控制的分析和建模提供了便捷和高效的工具。
一、Matlab中的模糊逻辑工具箱Matlab提供了专门的模糊逻辑工具箱(Fuzzy Logic Toolbox),该工具箱集成了一系列的函数和工具,方便用户进行模糊逻辑的建模和仿真。
用户可以使用这些函数和工具来创建模糊输入、模糊输出和模糊规则,以及进行模糊推理和模糊控制系统的设计。
二、模糊逻辑建模的步骤在使用Matlab进行模糊逻辑建模时,一般需要按照以下步骤进行:1. 确定模糊变量和它们的隶属函数:模糊变量是用来描述问题中的模糊概念的变量,它可以是输入变量或输出变量。
隶属函数用来描述模糊变量的隶属关系,可以是高斯型、三角型、梯形型等不同形状的函数。
2. 确定模糊规则库:模糊规则库是一组模糊规则的集合,它描述了输入变量和输出变量之间的关系。
每个模糊规则由若干个前提条件和一个结论组成,前提条件是对输入变量的模糊化描述,结论是对输出变量的模糊化描述。
3. 进行模糊推理:模糊推理是根据输入变量和模糊规则,通过模糊推理引擎将模糊输入转化为模糊输出的过程。
Matlab提供了多种推理方法,如模糊最大化、模糊最小化等。
4. 进行模糊解模糊:模糊解模糊是将模糊输出转化为具体的输出值的过程。
常用的解模糊方法有模糊平均法、模糊加权法等。
5. 进行模糊控制系统的仿真和优化:使用Matlab提供的仿真和优化工具,对设计的模糊控制系统进行测试、分析和优化。
三、实例演示下面以一个简单的温度控制系统为例,演示如何利用Matlab进行模糊逻辑与控制的建模和仿真。
假设我们需要设计一个温度控制器,使室内温度始终保持在一个设定的温度范围内。
如何在MATLAB中进行模糊控制模糊控制是一种基于模糊逻辑理论的控制方法,它通过建立模糊规则、模糊集合和模糊推理等步骤,实现对复杂系统的控制。
在MATLAB中,我们可以利用模糊控制工具箱进行模糊控制设计和仿真。
本文将从模糊控制的基本原理、MATLAB中的模糊控制工具箱的使用以及实例应用等方面进行讨论。
一、模糊控制基本原理模糊控制的基本原理是将人类的经验和模糊逻辑理论应用于系统控制中。
它不需要准确的数学模型,而是通过模糊集合、模糊规则和模糊推理等方法来描述和制定控制策略。
下面我们将简要介绍一下模糊控制中的基本概念。
1. 模糊集合模糊集合是一种可以容纳不确定性的集合。
与传统集合论不同,模糊集合中的元素可以部分地、模糊地属于该集合。
在模糊控制中,我们通常使用隶属度函数来描述元素对模糊集合的隶属程度。
2. 模糊规则模糊规则是一种将输入和输出间的关系表示为一组语义规则的方法。
它基于专家的经验和知识,将输入变量的模糊集合与输出变量的模糊集合之间建立映射关系。
模糊规则通常采用IF-THEN的形式表示,例如:“IF 温度冷 AND 湿度高 THEN 空调制冷”。
3. 模糊推理模糊推理是基于模糊规则进行推理和决策的过程。
它通过对模糊集合的隶属度进行运算,计算出输出变量的模糊集合。
常用的推理方法有模糊关联、模糊交集和模糊合取等。
二、MATLAB中的模糊控制工具箱MATLAB提供了一套完整的模糊控制工具箱,包括模糊集合的创建、模糊规则的定义、模糊推理和模糊控制系统的仿真等功能。
下面我们将逐步介绍这些功能的使用方法。
1. 模糊集合的创建在MATLAB中,我们可以使用fuzzymf函数来创建模糊集合的隶属度函数。
该函数可以根据用户指定的类型和参数生成不同形状的隶属度函数。
常用的隶属度函数有三角型函数、梯形函数和高斯型函数等。
2. 模糊规则的定义在MATLAB中,我们可以使用addrule函数来定义模糊规则。
该函数将用户指定的输入变量、模糊集合和输出变量、模糊集合之间的关系转化为模糊规则,并添加到模糊推理系统中。
模糊控制在matlab中的实例以下是一个模糊控制在MATLAB中的简单实例:假设我们要设计一个模糊控制器来控制一个水箱中水位的高低。
我们可以先建立一个模糊推理系统,其中包含输入和输出变量以及规则。
1. 输入变量:水箱中的水位(假设范围为0到100)。
2. 输出变量:水泵的流量(假设范围为0到10)。
我们需要定义一组模糊规则,例如:如果水箱中的水位为低,则水泵的流量为低。
如果水箱中的水位为中等,则水泵的流量为中等。
如果水箱中的水位为高,则水泵的流量为高。
将这些规则转换成模糊集合,如下所示:输入变量:- 低:[0, 30]- 中等:[20, 50]- 高:[40, 100]输出变量:- 低:[0, 3]- 中等:[2, 6]- 高:[4, 10]接下来,我们可以使用MATLAB的Fuzzy Logic Toolbox来建立模糊推理系统。
以下是一个简单的MATLAB脚本:```% 定义输入变量water_level = fisvar("input", "Water Level", [0 100]); water_level.addmf("input", "low", "trapmf", [0 0 30 40]); water_level.addmf("input", "medium", "trimf", [20 50 80]);water_level.addmf("input", "high", "trapmf", [60 70 100 100]);% 定义输出变量pump_flow = fisvar("output", "Pump Flow", [0 10]);pump_flow.addmf("output", "low", "trapmf", [0 0 3 4]); pump_flow.addmf("output", "medium", "trimf", [2 6 8]); pump_flow.addmf("output", "high", "trapmf", [7 8 10 10]); % 建立模糊推理系统rule1 = "If Water Level is low then Pump Flow is low"; rule2 = "If Water Level is medium then Pump Flow is medium"; rule3 = "If Water Level is high then Pump Flow is high"; rules = char(rule1, rule2, rule3);fis = newfis("Water Tank Fuzzy Controller");fis = addvar(fis, water_level);fis = addvar(fis, pump_flow);fis = addrule(fis, rules);% 模糊控制器输入water_level_value = 70;% 运行模糊推理系统pump_flow_value = evalfis([water_level_value], fis);disp(["Water level: " num2str(water_level_value) "%"]); disp(["Pump flow: " num2str(pump_flow_value)]);```在这个简单的例子中,我们使用了Fuzzy Logic Toolbox来定义输入和输出变量以及规则,并运行模糊推理系统来计算输出值。
Matlab模糊控制工具箱为模糊控制器的设计提供了一种非常便捷的途径,通过它我们不需要进行复杂的模糊化、模糊推理及反模糊化运算,只需要设定相应参数,就可以很快得到我们所需要的控制器,而且修改也非常方便。
首先我们在Matlab的命令窗口(command window)中输入fuzzy,回车就会出来这样一个窗口。
下面我们都是在这样一个窗口中进行模糊控制器的设计。
1.确定模糊控制器结构:即根据具体的系统确定输入、输出量。
这里我们可以选取标准的二维控制结构,即输入为误差e和误差变化ec,输出为控制量u。
注意这里的变量还都是精确量。
相应的模糊量为E,EC和U,我们可以选择增加输入(Add Variable)来实现双入单出控制结构。
2.输入输出变量的模糊化:即把输入输出的精确量转化为对应语言变量的模糊集合。
首先我们要确定描述输入输出变量语言值的模糊子集,如{NB,NM,NS,ZO,PS,PM,PB},并设置输入输出变量的论域,例如我们可以设置误差E(此时为模糊量)、误差变化EC、控制量U的论域均为{-3,-2,-1,0,1,2,3};然后我们为模糊语言变量选取相应的隶属度函数。
在模糊控制工具箱中,我们在Member Function Edit中即可完成这些步骤。
首先我们打开Member Function Edit窗口.然后分别对输入输出变量定义论域范围,添加隶属函数,以E为例,设置论域范围为[-3 3],添加隶属函数的个数为7.然后根据设计要求分别对这些隶属函数进行修改,包括对应的语言变量,隶属函数类型。
3.模糊推理决策算法设计:即根据模糊控制规则进行模糊推理,并决策出模糊输出量。
首先要确定模糊规则,即专家经验。
对于我们这个二维控制结构以及相应的输入模糊集,我们可以制定49条模糊控制规则(一般来说,这些规则都是现成的,很多教科书上都有),如图。
制定完之后,会形成一个模糊控制规则矩阵,然后根据模糊输入量按照相应的模糊推理算法完成计算,并决策出模糊输出量。
如何使用Matlab进行模糊逻辑控制系统设计使用Matlab进行模糊逻辑控制系统设计摘要:模糊逻辑控制是一种模拟人类认知规则和思维方式的控制方法。
它可以处理不确定性和模糊性,并在不确定的环境中实现智能控制。
本文将介绍如何利用Matlab软件进行模糊逻辑控制系统设计,包括模糊逻辑原理、建立模糊控制器、模糊推理和控制器的优化。
1. 引言2. 模糊逻辑原理2.1 模糊集合和隶属函数2.2 模糊规则2.3 模糊推理3. 建立模糊控制器3.1 输入和输出变量定义3.2 规则库的建立3.3 建立模糊控制器4. 模糊推理4.1 模糊化4.2 模糊推理4.3 去模糊化5. 模糊控制器的优化5.1 控制器参数优化5.2 控制规则优化6. 实例分析7. 结论1. 引言现代工业控制系统中,需要根据不确定性和模糊性的环境来实现自适应和智能的控制。
模糊逻辑控制是一种基于模糊集合和模糊规则的控制方法,能够处理模糊的输入和模糊的输出。
Matlab是一款功能强大的数学软件,提供了丰富的工具箱用于模糊逻辑控制系统的设计和模拟。
在本文中,我们将介绍如何使用Matlab进行模糊逻辑控制系统设计的方法和步骤。
2. 模糊逻辑原理2.1 模糊集合和隶属函数模糊逻辑控制的核心是模糊集合和隶属函数的定义和运算。
模糊集合是一种特殊的集合,其中的元素具有模糊性和不确定性,可以用隶属函数来表示。
隶属函数描述了一个元素对一个模糊集合的隶属程度,通常以曲线、图像或数学方程的形式表示。
2.2 模糊规则模糊规则是模糊逻辑控制的基本规则。
它采用IF-THEN的形式,其中IF部分是输入变量的模糊集合,THEN部分是输出变量的模糊集合。
模糊规则通常是基于专家知识和经验得到的,可以用模糊控制的方式来实现复杂的控制逻辑。
2.3 模糊推理模糊推理是根据输入变量和模糊规则来获得输出变量的过程。
在模糊推理中,通过模糊化、模糊推理和去模糊化三个步骤来实现。
模糊化将输入变量映射为模糊集合,模糊推理使用模糊规则来计算输出变量的模糊集合,去模糊化将模糊集合映射为具体的输出值。
智能控制大作业第一次大作业:周庆强学号:1140810106哈尔滨工业大学2017年5月25日题目:对一个系统,假设给系统一个阶跃值r=30,采样时间为1s,系统的初始值为r(0)=0,利用常规的模糊控制器对系统进行控制。
思路:在仿真系统中,不需要考虑信号的A/D和D/A转换,模糊控制系统框图如下:1、选择观测量和控制量将偏差e,即当前位置-目标目标,作为观察量(输入量)1,%将偏差的变化量ec,即e(t)-e(t-1),作为观察量(输入量)2,选取阀门开度u为控制量。
2、输入量和输出量的模糊化将偏差e划分为5个模糊集,负大(NB)、负小(NS)、零(ZO)、正小(PS)、正大(PB),e为负表示当前水位低于目标水位,e为正表示当前水位高于目标水位。
设定e的取值范围为[-3,3],隶属度函数如下。
同理,将偏差的变化量ec划分为5个模糊集,负大(NB)、负小(NS)、零(ZO)、正小(PS)、正大(PB),ec为负表示该时刻水位比上一时刻水位小,ec 为郑表示该时刻水位比上一时刻水位大,。
设定ec的取值范围为[-3,3],隶属度函数如下。
同样将控制量u划分为5个模糊集,负大(NB)、负小(NS)、零(ZO)、正小(PS)、正大(PB),u为负表示减小控制量,u为正表示增大控制量。
设定u的取值范围为[-4,4],隶属度函数如下。
3、制定模糊规则模糊规则的制定是模糊控制的核心内容,控制性能的好坏很大程度上由模糊规则决定,本文主要是根据经验来制定相应的规则。
PB PB PB PB PB PB PB PS PS ZO PB PS ZO NS NB ZO PS NS NB NB NB NB NB NB NB PS PB NBNSZOPSPB ecueNB NS ZO将上述用语言描述的规则转化为“IF A ,THEN B ”的语句如下:1. If (e is NB) and (ec is NB) then (u is PB) 。