模糊控制系统及其MATLAB实现

合集下载

模糊控制在matlab中的实例

模糊控制在matlab中的实例

模糊控制在matlab中的实例模糊控制(模糊逻辑控制)是一种基于模糊数学理论的控制方法,它可以用于控制系统的稳定性、精度和响应速度等方面的优化。

在MATLAB 中,可以使用模糊逻辑工具箱(FLUS)来应用模糊控制。

以下是一个简单的实例,展示了如何使用 MATLAB 中的模糊逻辑工具箱来对温度控制系统进行控制:首先,我们需要创建一个温度控制系统,该系统将使用模糊控制来控制传感器的读数。

假设我们有四个传感器,分别为温度传感器、湿度传感器、压力和传感器,每个传感器读数为实数。

```matlab% 创建模型T = [120 100 80 50]; % 温度控制器输出R1 = [1.2 0.8 0.4 0.2]; % 湿度控制器输出R2 = [0.9 0.1 0.3 0.5]; % 压力控制器输出R3 = [1.4 0.6 0.2 0.1]; % 传感器误差P1 = [125 125 125 125]; % 温度控制器输入P2 = [100 100 90 80]; % 湿度控制器输入P3 = [85 85 80 75]; % 压力控制器输入F1 = [0.3 0.2 0.1 0.1]; % 温度控制器输出F2 = [0.4 0.3 0.2 0.1]; % 湿度控制器输出F3 = [0.5 0.4 0.3 0.1]; % 压力控制器输出y1 = [100 85 75 60]; % 实际温度y2 = [120 95 80 70]; % 实际湿度y3 = [135 110 90 80]; % 实际压力% 创建模糊控制器go1 = @(t,u,v) if t > 100 then ((1-v)*F1 + v*R1 +(1+v)*R2)/(1-v)*y1 else 0;go2 = @(t,u,v) if t < 50 then ((1-v)*F3 + v*R1 +(1+v)*R2)/(1-v)*y2 else 0;go3 = @(t,u,v) if t == 0 then ((1-v)*F1 + v*R1 +(1+v)*R2)/(1-v)*y3 else 0;% 创建模糊控制器的优化器var = [0 0 0 0];go1(0,:,:) = var;matlab.模糊控制.优化器.LevenbergMarquardt(var,go1);% 运行模糊控制器[t,u,v] = ode45(go1,[0 1],[120 100 80 50],y1);% 输出结果disp(["实际温度:" num2str(t)]);disp(["实际湿度:" num2str(u)]);disp(["实际压力:" num2str(v)]);```在这个例子中,我们使用 MATLAB 中的 ode45 工具箱来拟合温度控制器和湿度控制器的输出响应函数。

模糊控制的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实现具体过程(强势吐血推荐)

plot(a,’input’,1)
注意:对于每个语言变量的隶属度函数按该函数被添加的顺 序编号,编号从1开始,依次递增。
3、FIS系统相关操作
① 函数newfis
功能:创建并返回一个新的模糊推理系统。
格式:a=newfis(‘fisName’) ②函数readfis 功能:从磁盘中读出并返回模糊推理系统结构变量。 格式:Fismat=readfis(‘filename’) 说明:打开一个由filename指定的数据文件(.fis),并将 其加载到当前的工作空间(Workspace)中的变量Fismat中。
例:fis=readfis(‘tipper’);
out=evalfis([2 1; 4 9],fis) 输出结果:out=7.0169
19.6810
MATLAB模糊控制系统设计实例1
一、设计目的:了解用MATLAB模糊工具箱的图形界面可视化 工具实现模糊控制系统的方法。 二、系统设计要求: 1、输入变量:偏差e、偏差变化率de;输出变量:u 相应隶属度函数为:
②函数addmf
功能:向模糊推理系统的语言变量添加隶属度函数。
格式:a=addmf(a, varType, varIndex,mfName,mfType, mfParams)
说明:隶属度函数只能为模糊推理系统中已经存在的某 一语言变量的语言值添加隶属度函数。参数列表中,a为 模糊推理系统对应的矩阵变量名, varType指定语言变量 类型的字符串(如‘input’或‘output’); varIndex指定 语言变量编号的数字;mfName指定隶属度函数名称; mfType指定隶属度函数类型; mfParams指定隶属度函数 的参数。
③ 函数gaussmf 功能:建立高斯型隶属度函数。

模糊控制matlab

模糊控制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作为一个功能强大、易于使用的软件工具,为模糊系统的建模和控制提供了丰富的支持。

在本文中,我们将探讨利用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中的实例以下是一个模糊控制的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提供了强大的神经网络工具包,如神经网络工具箱(Neural Network Toolbox),可以方便地构建和训练神经模糊系统。

2. 神经模糊系统的建模方法神经模糊系统的建模方法通常涉及三个重要步骤:输入-输出数据采集、模糊化和降维、神经网络训练和优化。

首先,需要采集系统的输入和输出数据,以便进行后续的建模和控制。

在Matlab中,可以使用数据采集工具箱(Data Acquisition Toolbox)来实现数据的采集和处理。

接下来,需要对输入和输出数据进行模糊化和降维处理,以便训练神经网络模型。

Matlab提供了模糊逻辑工具箱(Fuzzy Logic Toolbox),可以方便地实现数据的模糊化和模糊推理。

最后,通过使用Matlab的神经网络工具箱,可以构建和训练神经网络模型,并进行优化。

神经网络模型可以根据具体的需求选择,如BP神经网络、RBF神经网络等。

3. 神经模糊系统的应用领域神经模糊系统在各个领域具有广泛的应用,如控制系统、模式识别、信号处理等。

以控制系统为例,神经模糊系统可以实现对动力系统、机器人和自动化设备的建模和控制。

例如,在机器人领域,神经模糊系统可以用于路径规划、运动控制和感知决策等方面。

二、模糊控制设计技巧1. 模糊控制的基本原理模糊控制是通过使用模糊逻辑和模糊推理来实现对非线性系统的控制。

模糊控制在matlab中的实例

模糊控制在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. 然后,定义模糊规则。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

模糊控制系统及其MATLAB实现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隶属度函数,用,()x表示,它满足: AxA,1, ,x(),,AxA,0,用0-1之间的数来表示x属于集合A的程度,集合A等价与它的隶属度函数,()x A模糊系统是一种基于知识或基于规则的系统。

它的核心就是由所谓的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系统模型许多工业控制对象都可以等效为二阶环节。

以下面的二阶环节为例:20 Hs(),21.64.41ss,,设计它的模糊控制器,观察其阶跃响应。

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 和kde两者之间也相互影响, 在选择量化因子时则相当于总的放大倍数。

此外,ke要充分考虑这一点。

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进行控制:2 Gs(),2ss,模糊控制器的输入量为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期。

相关文档
最新文档