模糊控制系统及其MATLAB实现
模糊控制的Matlab仿真实例

其他例子
模型Shower.mdl―淋浴温度调节模糊控制系统仿真; 模型slcp.mdl―单级小车倒摆模糊控制系统仿真; 模型 slcp1.mdl―变长度倒摆小车模糊控制系统仿
真; 模型 slcpp1.mdl—定长、变长二倒摆模糊控制系
统仿真; 模型slbb.mdl―球棒模糊控制系统仿真; 模型sltbu.mdl―卡车智能模糊控制倒车系统仿真; 模型sltank2.mdl ― 用子系统封装的水箱控制仿
为简单起见,我们直接利用系统里已经编辑好的 模糊推理系统,在它的基础上进行修改。这里我 们采用与tank . fis中输入输出变量模糊集合完 全相同的集合隶属度函数定义,只是对模糊规则 进行一些改动,来学习模糊工具箱与仿真工具的 结合运用。对于这个问题,根据经验和直觉很显 然可以得到如下的模糊度示 波器
冷水阀子系统
这个仿真模型的输出是用示波器来表示的,如 图所示。通过示波器上的图形我们可以清楚地 看到温度和水流量跟踪目标要求的性能。
水温示波器
水流示波器
水温偏差区间模糊划分及隶属度函数
水流量偏差区间模糊划分及隶属度函数
输出对冷水阀控制策略的模糊化分及隶属度函数
选Edit菜单,选择Rules, 弹出一新界面Rule Editor. 在底部的选择框内,选择相应的 IF…AND…THEN 规则,点击Add rule 键,上部 框内将显示相应的规则。本例中用9条左右的规 则,依次加入。如下图所示:
模糊逻辑工具箱仿真结果
模糊规则浏览器用于显示各条模糊控制规则对 应的输入量和输出量的隶属度函数。通过指定 输入量,可以直接的显示所采用的控制规则, 以及通过模糊推理得到相应输出量的全过程, 以便对模糊规则进行修改和优化。
这样的结果与实际情况还是有些不符。通常顾客都是给15%的 小费,只有服务特别好或特别不好的时候才有改变,也就是说, 希望在图形中间部分的响应平坦些,而在两端(服务好或坏) 有凸起或凹陷。这时服务与小费是分段线性的关系。例如,用 下面 MATLAB 语句绘出的下图的情况。
如何利用Matlab进行模糊控制

如何利用Matlab进行模糊控制引言近年来,随着科技的不断发展,模糊控制作为一种重要的控制方法,在各个领域得到了广泛的应用。
而Matlab作为一款功能强大的数学工具软件,对于模糊控制的实现提供了便捷的支持。
本文将介绍如何利用Matlab进行模糊控制,以及其在实际应用中的优势和局限性。
一、模糊控制简介模糊控制是一种基于模糊逻辑的控制方法,它通过将模糊规则应用于控制系统,使其能够对不确定性和模糊信息进行处理。
与传统的精确控制方法相比,模糊控制更适用于处理复杂系统或无法精确建模的系统。
二、Matlab中的模糊控制工具箱Matlab提供了专门的模糊控制工具箱,可以方便地实现模糊控制系统的建模、仿真和优化等操作。
在Matlab的模糊控制工具箱中,主要包括两个核心部分:模糊推理引擎和模糊控制器。
1. 模糊推理引擎模糊推理引擎是模糊控制系统的核心部分,它负责根据输入和模糊规则,对系统进行推理和输出控制量。
在Matlab中,可以使用命令"newfis"来创建一个新的模糊控制系统,然后通过定义输入和输出变量、设定隶属函数和模糊规则等步骤,来构建一个完整的模糊控制系统。
2. 模糊控制器模糊控制器是模糊控制系统的具体实现,它将模糊推理引擎与输入输出之间的映射关系结合起来。
在Matlab中,可以使用命令"newfis"创建一个新的模糊控制系统,然后使用"addInput"和"addOutput"来添加输入和输出变量,最后通过设定隶属函数和模糊规则等步骤,来实现模糊控制器的搭建。
三、模糊控制的实际应用模糊控制在实际应用中有着广泛的应用领域,例如机器人控制、汽车导航、电力系统等。
下面将以一个模拟小车控制的实例来介绍如何利用Matlab进行模糊控制。
假设有一个小车需要根据距离和角度来控制其行驶方向和速度。
首先要定义输入和输出变量,这里我们将距离划分为近、中、远三个模糊集,角度划分为左、中、右三个模糊集,行驶方向划分为左转、直行、右转三个模糊集,行驶速度划分为慢、中、快三个模糊集。
系统的模糊控制MATLAB实现

智能控制大作业第一次大作业:周庆强学号: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) 。
模糊控制matlab

模糊控制matlab模糊控制是一种基于模糊数学理论的控制方法,它可以有效地处理非线性系统和模糊系统的控制问题。
在模糊控制中,通过将输入、输出和中间变量用模糊集合表示,设计模糊逻辑规则以实现控制目标。
本文将介绍如何用Matlab实现模糊控制,并通过实例讲解其应用和效果。
1. 模糊集合的表示在Matlab中,我们可以使用fuzzy工具箱来构建和操纵模糊系统。
首先,我们需要定义输入和输出的模糊集合。
例如,如果我们要控制一个直线行驶的自动驾驶汽车,可以定义速度和方向作为输入,定义方向盘角度作为输出。
我们可以将速度和方向分别划分为缓慢、中等、快速三个模糊集合,将方向盘角度划分为左转、直行、右转三个模糊集合。
可以使用Matlab的fuzzy工具箱中的fuzzy集合函数实现:slow = fuzzy(fis,'input',[-10 -10 0 20]);gap = fuzzy(fis,'input',[0 20 60 80 100]);fast = fuzzy(fis,'input',[60 80 110 110]);其中,fis为模糊系统对象,输入和输出的模糊集合分别用fuzzy函数定义,分别用输入或输出、模糊集合变量名、模糊集合界限参数表示,如fuzzy(fis,'input',[-10 -10 0 20])表示定义一个输入模糊集合,变量名为slow,其界限参数为[-10 -10 0 20],即表示此模糊集合上下界是[-10,-10]和[0,20]。
2. 设计模糊控制规则在Matlab中,可以使用fuzzy工具箱的ruleviewer函数来设计模糊控制的规则库。
规则库由模糊条件和模糊结论构成,用if-then形式表示。
例如,定义类别均为slow和keep的输入,输出为类别均为left的控制操作的规则如下:rule1 = "if (slow is slow) and (keep is keep) then (left is left);";其中,slow和keep为输入的模糊变量名,left为输出的模糊变量名。
利用Matlab进行模糊系统建模与控制

利用Matlab进行模糊系统建模与控制近年来,模糊系统在控制工程领域得到了广泛的应用。
由于其能够处理不确定性和模糊性的特性,模糊控制具有很好的鲁棒性和适应性。
而Matlab作为一个功能强大、易于使用的软件工具,为模糊系统的建模和控制提供了丰富的支持。
在本文中,我们将探讨利用Matlab进行模糊系统建模与控制的方法和技巧。
1. 模糊系统建模在进行模糊系统建模之前,首先需要确定模糊规则库和隶属函数。
模糊规则库是描述输入和输出之间关系的规则集合,而隶属函数则定义了输入和输出模糊集的形状。
在Matlab中,可以利用Fuzzy Logic Toolbox进行模糊系统的建模。
首先,我们需要定义输入和输出变量以及它们的隶属函数。
在Matlab中,可以使用fuzzy函数来定义模糊集。
例如,假设我们要建模一个温度控制系统,可以定义一个输入变量temperature和一个输出变量power,它们的隶属函数可以分别使用trimf和trapmf函数来定义。
接下来,我们需要确定模糊规则库。
在Matlab中,可以使用addrule函数将规则加入到规则库中。
规则的形式通常是“如果输入是A,并且输入是B,那么输出是C”,其中A、B、C是模糊集的标识符。
可以使用fuzzyrule函数来创建模糊规则对象,并使用addrule函数将其添加到规则库中。
2. 模糊系统控制一旦完成了模糊系统的建模,就可以进行模糊系统的控制。
在Matlab中,可以使用fuzzy函数来创建一个模糊系统对象,并使用evalfis函数来评估模糊系统的输出。
evalfis函数的输入是一个模糊系统对象和一个输入向量,输出是一个模糊输出向量。
在进行模糊系统控制之前,需要确定输入的模糊集的分布情况。
可以使用readfis函数来读取一个模糊系统对象的文件,并使用plotmf函数来绘制输入和输出变量的隶属函数。
通过观察隶属函数的形状,可以对输入进行模糊化。
接下来,可以使用evalfis函数来评估模糊系统的输出。
模糊控制在matlab中的实例

模糊控制在matlab中的实例模糊控制是一种应用广泛的控制方法,它可以处理那些难以精确建立数学模型的系统。
在Matlab中,使用Fuzzy Logic Toolbox工具箱可以方便地实现模糊控制系统。
以下是一个简单的模糊控制器示例,控制一个小车的速度和方向,使得其能够沿着预设的轨迹行驶。
1. 首先,定义输入和输出变量。
这里我们需要控制小车的速度和转向角度。
代码如下:```speed = newfis("speed");speed = addvar(speed,"input","distance",[0 10]);speed = addmf(speed,"input",1,"slow","trimf",[0 0 5]);speed = addmf(speed,"input",1,"fast","trimf",[5 10 10]); speed = addvar(speed,"output","velocity",[-10 10]);speed = addmf(speed,"output",1,"reverse","trimf",[-10-10 -2]);speed = addmf(speed,"output",1,"stop","trimf",[-3 0 3]); speed = addmf(speed,"output",1,"forward","trimf",[2 10 10]);angle = newfis("angle");angle = addvar(angle,"input","position",[-1 1]);angle = addmf(angle,"input",1,"left","trimf",[-1 -1 0]);angle = addmf(angle,"input",1,"right","trimf",[0 1 1]); angle = addvar(angle,"output","steering",[-1 1]);angle = addmf(angle,"output",1,"hard_left","trimf",[-1 -1 -0.5]);angle = addmf(angle,"output",1,"soft_left","trimf",[-1 -0.5 0]);angle = addmf(angle,"output",1,"straight","trimf",[-0.5 0.5 0.5]);angle = addmf(angle,"output",1,"soft_right","trimf",[0 0.5 1]);angle = addmf(angle,"output",1,"hard_right","trimf",[0.5 1 1]);```2. 然后,定义模糊规则。
模糊控制在MATLAB中的实现

模糊控制在MATLAB中的实现模糊控制是一种基于模糊逻辑的控制方法,可以处理输入模糊或模糊输出的问题。
在MATLAB中,模糊控制可以通过Fuzzy Logic Toolbox实现。
Fuzzy Logic Toolbox提供了一套用于设计、模拟和分析模糊逻辑系统的工具。
它允许用户定义模糊集、模糊规则和模糊推理过程,从而实现模糊控制。
在实现模糊控制之前,首先需要确定输入和输出的模糊集以及它们之间的关系。
可以通过定义模糊集合的成员函数来描述输入和输出的模糊集。
常见的成员函数有三角形、梯形、高斯等。
例如,对于一个温度控制系统,可以定义三个模糊集:"冷","舒适"和"热"用于描述温度的状态。
每个模糊集可以具有不同的成员函数。
接下来,需要定义模糊规则,规则用于描述输入和输出之间的关系。
例如,当温度"冷"时,可以设定输出为"加热",当温度"舒适"时,输出为"保持",当温度"热"时,输出为"冷却"。
在MATLAB中,可以使用Fuzzy Logic Toolbox的命令createFIS来创建一个模糊逻辑系统(FIS),并使用addInput和addOutput命令来定义输入和输出的模糊集。
例如,以下代码片段演示了如何创建一个简单的模糊逻辑系统:```MATLABfis = createFIS('fuzzy_system');fis = addInput(fis, [0 100], 'Temperature');fis = addOutput(fis, [0 10], 'Control');fis = addMF(fis, 'input', 1, 'cold', 'trimf', [-10 0 10]);fis = addMF(fis, 'input', 1, 'hot', 'trimf', [40 100 160]);fis = addMF(fis, 'output', 1, 'cool', 'trimf', [-5 0 5]);fis = addMF(fis, 'output', 1, 'maintain', 'trimf', [0 5 10]);fis = addMF(fis, 'output', 1, 'heat', 'trimf', [5 10 15]);ruleList = [1 1 2 3 1;22221;33211];fis = addRule(fis, ruleList);```在定义模糊逻辑系统之后,可以使用evalfis命令对系统进行模糊推理和模糊控制。
使用MATLAB进行模糊控制设计

使用MATLAB进行模糊控制设计导言:模糊控制是一种基于模糊逻辑的自适应控制方法,它使用模糊规则来处理难以准确建模的系统。
MATLAB作为一款功能强大的数学计算软件,在模糊控制设计中发挥着重要的作用。
本文将介绍使用MATLAB进行模糊控制设计的基本原理、步骤以及一些实际的应用案例。
一、模糊控制基本原理1.1 模糊逻辑模糊逻辑是基于模糊集的一种数学逻辑推理方法。
与传统的布尔逻辑不同,模糊逻辑考虑了中间状态的存在,可以用模糊集的隶属度来描述事物之间的模糊关系。
模糊逻辑的基本运算包括模糊与、模糊或、模糊非等。
1.2 模糊控制器的基本结构模糊控制系统由模糊化、模糊推理和去模糊化三个主要部分组成。
模糊化将输入转换为模糊集,模糊推理基于预定义的模糊规则进行逻辑推理,得到输出的模糊集,然后通过去模糊化将模糊结果转换为实际的控制信号。
二、使用MATLAB进行模糊控制设计的步骤2.1 建立模糊逻辑系统在MATLAB中,可以使用fuzzy工具箱来建立模糊逻辑系统。
首先,需要定义输入和输出的模糊集,可以选择三角形、梯形或高斯函数等形状。
然后,定义模糊规则,设置每个输入和输出之间的关系。
最后,确定输入和输出的范围,以便后续模糊控制器的设计和仿真。
2.2 设计模糊控制器在MATLAB中,可以使用fuzzy工具箱中的fuzzy控制器对象来设计模糊控制器。
首先,需要将前一步中建立的模糊逻辑系统与fuzzy控制器对象相关联。
然后,设置输入的变化范围和输出的变化范围。
接下来,可以选择使用模糊控制器设计方法来优化模糊规则和模糊集的参数。
最后,可以进行控制系统的仿真和性能评估。
2.3 优化模糊控制器优化模糊控制器是为了使模糊控制系统能够更好地适应实际环境变化和控制要求。
在MATLAB中,可以使用模糊控制器的仿真结果进行性能评估和参数调整。
可以通过修改模糊规则、模糊集的参数或输入输出的变化范围等方式来优化模糊控制器。
三、模糊控制设计的实际应用案例3.1 模糊温度控制模糊温度控制是一个常见的实际应用案例。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1. 模糊控制的相关理论和概念1.1 模糊控制的发展模糊控制理论是在美国加州伯克利大学的L.A.Zadeh 教授于1965 年建立的模糊集合论的数学基础上发展起来的。
之后的几年间Zadeh 又提出了模糊算法、模糊决策、模糊排序、语言变量和模糊IF-THEN 规则等理论,为模糊理论的发展奠定了基础。
1975年,Mamdani 和Assilian 创立了模糊控制器的基本框架,并用于控制蒸汽机。
1978年,Holmblad 和Ostergaard 为整个工业过程开发出了第一个模糊控制器——模糊水泥窑控制器。
20世纪80年代,模糊控制开始在工业中得到比较广泛的应用,日本仙台地铁模糊控制系统的成功应用引起了模糊领域的一场巨变。
到20世纪90年代初,市场上已经出现了大量的模糊消费产品。
近30 年来, 因其不依赖于控制对象的数学模型、鲁棒性好、简单实用等优点, 模糊控制已广泛地应用到图像识别、语言处理、自动控制、故障诊断、信息检索、地震研究、环境预测、楼宇自动化等学科和领域, 并且渗透到社会科学和自然科学许多分支中去, 在理论和实际运用上都取得了引人注目的成果。
1.2模糊控制的一些相关概念用隶属度法来定义论域U 中的集合A ,引入了集合A 的0-1隶属度函数,用()A x μ表示,它满足:1()0A x μ⎧=⎨⎩ x A x A ∈∉用0-1之间的数来表示x 属于集合A 的程度,集合A 等价与它的隶属度函数()A x μ模糊系统是一种基于知识或基于规则的系统。
它的核心就是由所谓的IF-THEN 规则所组成的知识库。
一个模糊的IF-THEN 规则就是一个用连续隶属度函数对所描述的某些句子所做的IF-THEN 形式的陈述。
例如:如果一辆汽车的速度快,则施加给油门的力较小。
这里的“快”和“较小”分别用隶属度函数加以描述。
模糊系统就是通过组合IF-THEN 规则构成的。
构造一个模糊系统的出发点就是要得到一组来自于专家或基于该领域知识的模糊IF-THEN 规则,然后将这些规则组合到单一系统中。
不同的模糊系统可采用不用的组合原则。
用隶属度函数表征一个模糊描述后,实质上就将模糊描述的模糊消除了。
模糊控制系统设计的关键在于模糊控制器的设计。
模糊控制器的设计主要有三个部分:(1) 输入量的模糊化所谓模糊化(Fuzzification) 就是先将某个输入测量量的测量值作标准化处理,把该输入测量量的变化范围映射到相应论域中,再将论域中的各输入数据以相应的模糊语言值的形式表示,并构成模糊集合。
这样就把输入的测量量转换为用隶属度函数表示的某一模糊语言变量。
(2) 模糊逻辑推理根据事先已定制好的一组模糊条件语句构成模糊规则库,运用模糊数学理论对模糊控制规则进行推理计算,从而根据模糊控制规则对输入的一系列条件进行综合评估,以得到一个定性的用语言表示的量,即模糊输出量。
完成这部分功能的过程就是模糊逻辑推理过程。
(3) 反模糊化过程反模糊化(Defuzzification) 有时又叫模糊判决。
就是将模糊输出量转化为能够直接控制执行部件的精确输出量的过程。
模糊控制器的核心部分又在于模糊推理系统(FIS) 的建立2.MATLAB/SIMULINK工具箱的应用模糊控制作为智能控制的一种, 实质是对人脑思维的一种模拟, 因此, 模糊控制器的设计在很大程度上依赖于设计者的实践经验, 若是用一般的编程语言(如C 语言) 来实现模糊控制系统的设计和仿真, 往往非常困难。
使用工具软件MATLAB中的SIMULINK工具箱可以方便地对模糊控制系统进行仿真。
SIMULINK工具箱是MATLAB软件的扩展,主要用于动态系统的仿真。
SIMULINK 模块库中提供了建立系统模型所需的大部分模块。
系统的模型建好后,用户可以根据系统的不同需要,设置或更改模块的参数,然后打开仿真菜单,设置仿真参数,起动仿真过程,仿真结束后用户可以通过输出示波器或plot绘图函数观察系统的仿真输出。
在MATLAB菜单窗口中输入命令fuzzy可进入FIS编辑器,在FIS编辑器中可以设置输入输入变量的模糊隶属度函数和模糊控制规则。
如下图所示:隶属度函数有三角形、梯形等不同种类。
设置好模糊推理系统FIS后保存设置结果,用菜单项里的File-〉Export-〉to workspace将它导出到Matlab的工作空间,这样在用SIMULINK仿真的时候FIS 才能被调用。
打开SIMULINK工具箱,选择相应的模块,设置好模型参数,在Fuzzy Logic Toolbox中选择Fuzzy Logic Controller,在FIS files or structure中填入已经保存的FIS文件名,建立起系统的动态模型。
点击仿真按钮,就可以在示波器中看到仿真结果。
SIMULINK 窗口Fuzzy Logic Controller 设置3模糊控制在一个二阶环节中的应用3.1系统模型许多工业控制对象都可以等效为二阶环节。
以下面的二阶环节为例: 220() 1.6 4.41H s s s =++ 设计它的模糊控制器,观察其阶跃响应。
3.2语言变量的选取以及隶属函数的确立假设系统输入为r = 1. 0 ,可取系统输出误差e 和误差变化de 作为模糊控制器的输入, 模糊控制器的输出u 作为被控对象的控制输入。
则可根据系统输出的误差和误差变化设计出模糊控制器FC ,并根据一系列的模糊推理过程推导出最终的输出控制量u 。
其中,误差e 误差变化量de 以及输出u 所对应的模糊语言变量分别为E 、DE 和U 。
E 和DE 的论域范围均为[ - 6 ,6 ] ,U 的论域范围为[ - 3 3 ] 。
每个语言变量都取5 个语言值:“正大( PB) ”、“正小( PS) ”、“零(ZR) ”、“负小(NS) ”、“负大(NB) ”,其隶属度函数图如图所示。
3.3模糊推理规则的定义根据前面定义的隶属度函数并且结合以往专家们所取得的经验,定义该模糊控制系统的模糊控制规则,如下表所示。
在规则编辑器中将以上25条规则加入规则库3.4 在SIMULINK中建立模糊控制系统并进行仿真取模糊量化因子Ke=5,Kde=0.05,比例因子Ku=2。
仿真得到的阶跃响应曲线如图所示。
3.5量化因子和比例因子对控制效果的影响设计模糊控制器除了要有一整套有效的控制规则外, 还必须合理地选择模糊控制器量化因子和比例因子系数, 大量的实验结果表明, 量化因子和比例因子的大小及量化因子之间的大小相对关系, 对模糊控制器的控制性能有非常大的影响。
量化因子ke和kde分别相当于模糊控制的比例作用和微分作用;比例因子ku 则相当于总的放大倍数。
此外,ke和kde两者之间也相互影响, 在选择量化因子时要充分考虑这一点。
ke对动态性能的影响是: ke越大,系统的调节惰性越小,上升速率越快。
Ke 过大,系统上升速率过大,产生的超调大,使调节时间增长,严重时还会产生振荡乃至系统不稳。
Ke过小,系统上升速率较小,系统调节隋性变大,同时也影响系统的稳态性能,使稳态精度降低.ke=5,kde=0.05,ku=2时ke=2,kde=0.05,ku=2时kde对动态性能的影响是:kec大, 反应快,上升速率小,调节时间长,超调量小;kde小, 反应较迟钝,调节时间短,超调量大ke=5,kde=0.05,ku=2时ke=5,kde=0.04,ku=2时ku增大,相当于系统总的放大倍数增大,系统的响应速度加快. ku过大,会导致系统输出上升速率过大,从而产生过大的超调乃至振荡和发散.ku过小,系统的前向增益很小,系统输出上升速率较小,快速性变差,稳态精度变差.ke=5,kde=0.05,ku=2时ke=5,kde=0.05,ku=5时量化因子和比例因子的选择并不是唯一的,可能有几组不同的值, 都能使系统获得较好的响应特性。
4.自适应模糊PID 控制器PID 控制器以其算法简单,计算量小,使用方便,鲁棒性较强等优点而得到广泛应用,并取得了良好的控制效果。
但是对于一些时变和非线性的系统常规PID 就显得无能为力了。
同时,在实际控制系统控制过程中,由于噪声、负载扰动和其他一些环境条件变化的影响,受控过程参数,模型结构均将发生变化。
在这种情况下,采用常规PID 控制器难以获得满意的控制效果,而模糊控制不依赖被控对象精确的数学模型,是在总结操作经验基础上实现自动控制的一种手段。
,但输出具有跳跃性,在论域0值附近自振荡.自适应模糊PID 控制器将模糊控制和PID 控制器两者结合起来,扬长避短,既具有模糊控制灵活而适应性强的优点,又具有PID 控制精度高的特点.它的原理是当误差小于某一阈值e0时, 采用PID 控制, 以提高系统的控制精度;当误差大于某一阈值e0时, 采用模糊控制, 以提高系统响应速度, 加快响应过程, 抑制超调。
对如下一个二阶系统使用模糊PID 进行控制:22()G s s s=+ 模糊控制器的输入量为E 和EC ,输出量为U 。
输入量E量化论域: - 6~6模糊状态:NB ,NM,NS ,NZ ,PZ ,PS ,PM,PB .输入量EC量化论域: - 6~6模糊状态:NB ,NM,NS ,Z ,PS ,PM,PB .输出量U量化论域: - 7~7模糊状态:NB ,NM,NS ,Z ,PS ,PM,PB .由专家经验得到的模糊控制规则表如下所示根据模糊控制规则表,在MATLAB的FIS编辑器中建立起模糊推理系统,在SIMULINK中建立系统的仿真图,设置量化因子Ke=3,Kec=0.1,Ku=1,PID参数Kp=15,Ki=1,Kd=2。
在选择开关的设置中,将参数“Threshold”设置为0.1,这样当偏差|e|>=0.1 时,开关Switch 只接通Fuzzy 控制器;当|e|<0.1 时,开关Switch 只接通PID 控制器。
完成各部分的参数设置后,点击仿真在示波器中观看系统的阶跃响应曲线。
规则编辑系统仿真图PID子系统自适应模糊PID控制的阶跃响应仿真结果纯PID控制的阶跃响应仿真结果从仿真的结果可以看到,采用Fuzzy-PID 控制器的阶跃响应超调量和调节时间都明显优于单一的PID控制器。
取得了比较好的控制效果。
参考文献1.Matlab在Fuzzy-PID控制器用于船舶操纵仿真中的应用,《机电设备》,2004年第3期2.基于MATLAB的两种模糊控制系统的仿真方法,《计算机仿真》,2004年第3期3.基于Matlab 的自适应模糊PID控制器的设计,《电气传动自动化》,2006年第3期4.论模糊控制器中量化因子和比例因子的作用,《内蒙古科技与经济》,2004年第19期5.Matlab在模糊控制系统仿真中的应用,《自动化与仪表》,2006年第6期6.基于Matlab的模糊控制系统的设计与仿真,《计算机时代》,2003年第1期。