模糊控制MATLAB实现具体过程(强势吐血推荐)
模糊控制的MATLAB实现具体过程(强势吐血推荐)..64页PPT

模糊控制的MATLAB实现具体过程(强
势吐血推荐)..
21、没有人陪你走一辈子,所以你要 适应孤 独,没 有人会 帮你一 辈子, 所以你 要奋斗 一生。 22、当眼泪流尽的时候,留下的应该 是坚强 。 23、要改变命运,首先改变自己。
24、勇气很有理由被当作人类德性之 首,因 为这种 德性保 证了所 有其余 的德性 。--温 斯顿. 丘吉尔 。 25、梯子的梯阶从来不是用来搁脚的 ,它只 是让人 们的脚 放上一 段时间 ,以便 让别一 只脚能 够再往 上登。
66、节制使快乐增加并使享受加强。 ——德 谟克利 特 67、今天应做的事没有做,明天再早也 是耽误 了。——裴斯 泰洛齐 68、决定一个人的一生,以及整个命运 的,只 是一瞬 之间。 ——歌 德 69、懒人无法享受休息之乐。——拉布 克 70、浪费时间是一桩大罪过。——卢梭
用 Matlab 的 Fuzzy 工具箱实现模糊控制

用 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 中,可以使用模糊逻辑工具箱(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仿真实例

其他例子
模型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下模糊控制器的设计步骤步骤一:确定系统控制目标在设计模糊控制器之前,需要明确系统控制的目标,如控制系统的稳态误差、响应时间、超调量等。
根据控制目标,设计模糊控制器的输入变量和输出变量。
步骤二:确定模糊控制器的输入变量与输出变量输入变量是控制系统的输入参数,包括状态量和操作量。
例如,在温度控制系统中,输入变量可以是温度传感器的输入、加热器控制器的输出等。
输出变量是控制系统的输出结果,影响系统的控制效果。
例如,在温度控制系统中,输出变量可以是加热器的功率、温度的变化率等。
步骤三:构建模糊集合对于每个输入和输出变量,构建一组模糊集合。
模糊集合是一种模糊变量值的表示方法,能够准确地描述模糊情况下的变量。
例如,对于温度控制系统中的温度传感器输入变量,可以构建模糊集合:{冷、凉、温、热、很热}。
每个模糊集合由若干个模糊语言变量组成,以便对该变量进行模糊控制。
步骤四:确定模糊规则库模糊规则库是模糊控制器的核心,描述输入变量与输出变量之间的映射关系。
模糊规则库是根据专家经验知识或试验数据得出的,其形式一般为:如果输入变量A是模糊集合X,且输入变量B是模糊集合Y,那么输出变量C是模糊集合Z。
例如,对于温度控制系统,一个模糊规则库可以是:如果输入变量为“温”且输出变量为“较强”则输出结果为“右转”。
步骤五:进行模糊推理模糊推理是利用模糊控制器的输入变量、模糊规则库和模糊推理算法来确定输出变量的过程。
在MATLAB中,可以使用Fuzzy Logic Toolbox工具箱来进行模糊推理。
步骤六:模糊控制器的评估在完成模糊推理后,需要对模糊控制器进行评估,以确定其控制效果。
模糊控制的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作为一种常用的工具和编程语言,在模糊控制技术的实现中也起到了重要的作用。
二、模糊控制基础2.1 模糊集合和隶属度函数在模糊控制中,模糊集合是指某个具有模糊性质的事物的集合。
而隶属度函数则是用来描述一个元素对某个模糊集合的隶属程度的函数。
MATLAB提供了一系列的函数来实现模糊集合和隶属度函数的定义与计算。
2.2 模糊规则和推理机制模糊规则是模糊控制系统中的核心部分,它是一种以if-then形式表示的规则,用于将输入变量映射到输出变量。
推理机制则是模糊控制系统中用于根据模糊规则进行推理和决策的方法。
在MATLAB中,可以使用模糊推理系统工具箱来实现模糊规则和推理机制。
三、MATLAB模糊控制实例下面以一个简单的温度控制系统为例,介绍如何使用MATLAB进行模糊控制的实现。
3.1 系统建模假设我们要设计一个模糊控制器来控制一个恒温器,使得恒温器能够根据当前环境温度自动调整加热功率。
首先,我们需要进行系统建模,即确定输入变量、输出变量和规则库。
在这个例子中,输入变量为环境温度和加热功率的变化率,输出变量为加热功率的大小。
规则库包括一系列的模糊规则,用于根据当前环境温度和加热功率的变化率来决策加热功率的大小。
3.2 模糊集合和隶属度函数的定义在MATLAB中,可以使用fuzzy集合函数来定义模糊集合和隶属度函数。
例如,我们可以使用triangle函数来定义一个三角形隶属度函数,用于表示环境温度的低、中、高。
3.3 模糊规则和推理机制的设计在MATLAB中,使用fuzzy规则编辑器可以方便地设计模糊规则和推理机制。
首先,我们需要定义输入和输出的模糊集合,然后输入模糊集合和输出模糊集合之间的关系。
接下来,根据规则库的要求,添加相应的模糊规则。
模糊控制在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 中的实例:假设你有一个被控对象,它的输出值 y 取决于输入值 u。
你想要设计一个模糊控制器来控制该对象。
首先,你需要定义模糊控制器的输入和输出变量以及它们的隶属度函数。
示例中,我们定义了两个输入变量 x1 和 x2 以及一个输出变量y,每个变量都由三个隶属度函数组成。
```matlab% 定义输入和输出变量及其隶属度函数x1 = fuzzyvar("input", [-5 5], "bellmf", [1 2 3]);x2 = fuzzyvar("input", [-5 5], "trimf", [-4 0 4]);y = fuzzyvar("output", [-10 10], "trimf", [-8 0 8]);```接下来,我们需要定义规则库。
规则库是一系列模糊规则的集合,每条规则由前提和结论组成。
在这个示例中,我们定义了九条规则,将输入变量 x1 和 x2 映射到输出变量 y。
```matlab% 定义规则库ruleList = ["If (x1 is 1) and (x2 is 1) then (y is -7)";"If (x1 is 1) and (x2 is 2) then (y is -9)";"If (x1 is 1) and (x2 is 3) then (y is -9)";"If (x1 is 2) and (x2 is 1) then (y is -5)";"If (x1 is 2) and (x2 is 2) then (y is -7)";"If (x1 is 2) and (x2 is 3) then (y is -8)";"If (x1 is 3) and (x2 is 1) then (y is -3)";"If (x1 is 3) and (x2 is 2) then (y is -5)";"If (x1 is 3) and (x2 is 3) then (y is -6)";];```现在我们可以创建模糊控制器,并将输入变量和输出变量与规则库相结合。
模糊控制matlab

模糊控制matlab
《模糊控制matlab》是指使用Matlab软件进行模糊控制的实现过程。
模糊控制是一种基于模糊理论的控制方法,可以在不确定和复杂的环境下实现控制。
Matlab是一款功能强大的数学计算软件,可以进行符号计算、数据可视化、编程等多种操作,非常适合用于模糊控制的实现。
在进行模糊控制matlab实验之前,需要先了解模糊控制的基本概念和理论,并掌握Matlab的基本操作和编程语言。
模糊控制matlab的实现过程可以分为模糊化、规则库、推理、去模糊化等几个步骤。
通过模糊控制matlab,可以实现对各种复杂系统的控制,例如机器人控制、车辆控制、空调控制等。
- 1 -。
模糊控制的MATLAB实现具体过程(强势吐血推荐)..共64页PPT

•
46、寓形宇内复几时,曷不委心任去 留。
•
47、采菊东篱下,悠然见南山。
•
48、啸傲东轩下,聊复得此生。
•
49、勤学如春起之苗,不见其增,日 有所长 。
•
50、环堵萧然,不蔽风日;短褐穿结 ,箪瓢 屡空, 晏如也 。
16、业余生活要有意义,不要越轨。——华盛顿 17、一个人即使已登上顶峰,也仍要自强不息。——罗素·贝克 18、最大的挑战和突破在于用人,而用人最大的突破在于信任人。——马云 19、自己活着,就是为了使别人过得更美好。——雷锋 20、要掌握书,莫被书掌握;要为生而读,莫为读而生。——布尔沃
END
模糊控制的matlab实现

6. surfview
功能:输出曲面观测器 格式: surfview (‘a’)
surfview (a) 说明:利用surfview (‘a’)可打开输出曲面观测器,从 中可查看保存在文件a.fis中的单输入或双输入FIS结 构的输出曲面。
4.1.2 隶属度函数
1. Gaussmf
功能:高斯(Gaussian)型隶属度函数 格式:y=gaussmf(x,[sig c]) 说明:对称的高斯型函数取决于2个参数σ(sig)和c:
0
x
a
f
x,
a
,b,c
b c
a x
c b
例:
0
xa
a x b
b
x
c
x c
x = 0:0.1:10;
y = trimf(x,[3 6 8]);
plot(x,y);
text(0.2,0.88,’trimf’);
text(0.2,0.78,’P = [3 6 8]’);
参数a和c确定三角 形的“脚”,而 参数b确定三角形 的“峰”
2. addrule 功能:在FIS中添加规则 格式:a=addrule(a,ruleList) 例:ruleList=[1 1 1 1 1 ;1 2 2 1 1];
a=addrule(a,ruleList);
3. addvar 功能:在FIS中添加变量 格式:a=addvar(a,’varType’,varBounds) 例:a=newfis(‘Simple’);
x c 2
f
x, ,c
e
2 2
gaussmf函数的参数以向量[sig,c]形式给出。
例:
x = 0:0.1:10;
使用MATLAB进行模糊控制设计

使用MATLAB进行模糊控制设计导言:模糊控制是一种基于模糊逻辑的自适应控制方法,它使用模糊规则来处理难以准确建模的系统。
MATLAB作为一款功能强大的数学计算软件,在模糊控制设计中发挥着重要的作用。
本文将介绍使用MATLAB进行模糊控制设计的基本原理、步骤以及一些实际的应用案例。
一、模糊控制基本原理1.1 模糊逻辑模糊逻辑是基于模糊集的一种数学逻辑推理方法。
与传统的布尔逻辑不同,模糊逻辑考虑了中间状态的存在,可以用模糊集的隶属度来描述事物之间的模糊关系。
模糊逻辑的基本运算包括模糊与、模糊或、模糊非等。
1.2 模糊控制器的基本结构模糊控制系统由模糊化、模糊推理和去模糊化三个主要部分组成。
模糊化将输入转换为模糊集,模糊推理基于预定义的模糊规则进行逻辑推理,得到输出的模糊集,然后通过去模糊化将模糊结果转换为实际的控制信号。
二、使用MATLAB进行模糊控制设计的步骤2.1 建立模糊逻辑系统在MATLAB中,可以使用fuzzy工具箱来建立模糊逻辑系统。
首先,需要定义输入和输出的模糊集,可以选择三角形、梯形或高斯函数等形状。
然后,定义模糊规则,设置每个输入和输出之间的关系。
最后,确定输入和输出的范围,以便后续模糊控制器的设计和仿真。
2.2 设计模糊控制器在MATLAB中,可以使用fuzzy工具箱中的fuzzy控制器对象来设计模糊控制器。
首先,需要将前一步中建立的模糊逻辑系统与fuzzy控制器对象相关联。
然后,设置输入的变化范围和输出的变化范围。
接下来,可以选择使用模糊控制器设计方法来优化模糊规则和模糊集的参数。
最后,可以进行控制系统的仿真和性能评估。
2.3 优化模糊控制器优化模糊控制器是为了使模糊控制系统能够更好地适应实际环境变化和控制要求。
在MATLAB中,可以使用模糊控制器的仿真结果进行性能评估和参数调整。
可以通过修改模糊规则、模糊集的参数或输入输出的变化范围等方式来优化模糊控制器。
三、模糊控制设计的实际应用案例3.1 模糊温度控制模糊温度控制是一个常见的实际应用案例。
模糊控制在matlab中的实例

模糊控制在matlab中的实例模糊控制是一种基于经验知识的控制方法,与传统的精确控制方法不同,它允许对系统的行为进行模糊描述,并通过一套模糊规则来对系统进行控制。
在实际应用中,模糊控制常常用于处理非线性、复杂和不确定的系统,例如温度控制、汽车制动系统等。
在MATLAB中,可以通过使用Fuzzy Logic Toolbox工具箱来实现模糊控制。
下面以一个简单的温度控制系统为例,来介绍如何在MATLAB中进行模糊控制的实现。
首先,需要定义模糊控制器的输入和输出变量,以及它们的模糊集合。
在温度控制系统中,可以定义温度作为输入变量,定义加热功率作为输出变量。
可以将温度的模糊集合划分为"冷"、"适中"和"热"三个模糊集合,将加热功率的模糊集合划分为"低"、"中"和"高"三个模糊集合。
```temperature = readfis('temperature.fis');temp_input = [-10, 40];temp_output = [0, 100];temperature_inputs = ["冷", "适中", "热"];temperature_outputs = ["低", "中", "高"];```然后,需要定义模糊规则。
模糊规则用于根据输入变量的模糊集合和输出变量的模糊集合之间的关系来确定控制规则。
例如,当温度为"冷"时,加热功率应该为"高"。
可以根据经验知识定义一系列模糊规则。
```rules = ["冷", "高";"适中", "中";"热", "低";];```接下来,需要定义模糊控制器的输入和输出变量值。
模糊控制的MATLAB实现具体过程(强势吐血推荐)..PPT共64页

ቤተ መጻሕፍቲ ባይዱ
模糊控制的MATLAB实现具体过程(强 势吐血推荐)..
46、法律有权打破平静。——马·格林 47、在一千磅法律里,没有一盎司仁 爱。— —英国
48、法律一多,公正就少。——托·富 勒 49、犯罪总是以惩罚相补偿;只有处 罚才能 使犯罪 得到偿 还。— —达雷 尔
50、弱者比强者更能得到法律的保护 。—— 威·厄尔
6、最大的骄傲于最大的自卑都表示心灵的最软弱无力。——斯宾诺莎 7、自知之明是最难得的知识。——西班牙 8、勇气通往天堂,怯懦通往地狱。——塞内加 9、有时候读书是一种巧妙地避开思考的方法。——赫尔普斯 10、阅读一切好书如同和过去最杰出的人谈话。——笛卡儿
如何在MATLAB中进行模糊控制

如何在MATLAB中进行模糊控制模糊控制是一种基于模糊逻辑理论的控制方法,它通过建立模糊规则、模糊集合和模糊推理等步骤,实现对复杂系统的控制。
在MATLAB中,我们可以利用模糊控制工具箱进行模糊控制设计和仿真。
本文将从模糊控制的基本原理、MATLAB中的模糊控制工具箱的使用以及实例应用等方面进行讨论。
一、模糊控制基本原理模糊控制的基本原理是将人类的经验和模糊逻辑理论应用于系统控制中。
它不需要准确的数学模型,而是通过模糊集合、模糊规则和模糊推理等方法来描述和制定控制策略。
下面我们将简要介绍一下模糊控制中的基本概念。
1. 模糊集合模糊集合是一种可以容纳不确定性的集合。
与传统集合论不同,模糊集合中的元素可以部分地、模糊地属于该集合。
在模糊控制中,我们通常使用隶属度函数来描述元素对模糊集合的隶属程度。
2. 模糊规则模糊规则是一种将输入和输出间的关系表示为一组语义规则的方法。
它基于专家的经验和知识,将输入变量的模糊集合与输出变量的模糊集合之间建立映射关系。
模糊规则通常采用IF-THEN的形式表示,例如:“IF 温度冷 AND 湿度高 THEN 空调制冷”。
3. 模糊推理模糊推理是基于模糊规则进行推理和决策的过程。
它通过对模糊集合的隶属度进行运算,计算出输出变量的模糊集合。
常用的推理方法有模糊关联、模糊交集和模糊合取等。
二、MATLAB中的模糊控制工具箱MATLAB提供了一套完整的模糊控制工具箱,包括模糊集合的创建、模糊规则的定义、模糊推理和模糊控制系统的仿真等功能。
下面我们将逐步介绍这些功能的使用方法。
1. 模糊集合的创建在MATLAB中,我们可以使用fuzzymf函数来创建模糊集合的隶属度函数。
该函数可以根据用户指定的类型和参数生成不同形状的隶属度函数。
常用的隶属度函数有三角型函数、梯形函数和高斯型函数等。
2. 模糊规则的定义在MATLAB中,我们可以使用addrule函数来定义模糊规则。
该函数将用户指定的输入变量、模糊集合和输出变量、模糊集合之间的关系转化为模糊规则,并添加到模糊推理系统中。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2. 蕴涵计算(Implication) min prod (乘积法)
3. 输出的合成计算Aggregation(模糊规则综合采用的方法)
Aggregation
max sum(求和法)
prober (概率法)
prober(a,b)=a+b-ab
4. 逆模糊化计算(Defuzzification)
例:a=newfis(‘tipper’); //创建并返回一个新的FIS系统
a=addvar(a,’input’,’service’,[0 10]);
getfis(a,’input’,1) //取得FIS的部分或全部属性
②函数addmf
功能:向模糊推理系统的语言变量添加隶属度函数。
格式:a=addmf(a, varType, varIndex,mfName,mfType, mfParams)
组成
双击
输入模糊变量图形框
Mfedit
双击
模糊规则图形框
Ruleedit
输出模糊变量图形框 双击 Mfedit
基本属性包括:
1. 模糊集合合成运算(连接词的运算) min(最小法)
① and prod(乘积法)
② or max(最大法) prober(概率法)
prober(a,b)=a+b-ab
说明:参数列表中,a为模糊推理系统对应的矩阵变量名, varType用于指定语言变量的类型为字符型(如‘input’ 或‘output’); varName用于指定语言变量的名; varBounds用于指定语言变量的论域范围。
注意:对于添加到同一个模糊推理系统的语言变量,按 先后顺序自动编号,编号从1开始,逐渐递增。对于分属 于输入与输出的不同语言变量则独立地分别编号。
例: x=0:0.1:10; y=zmf(x, [2 8]); plot(x,y) xlable(‘zmf,P=[2 8]’)
⑤函数smf
功能:建立S型隶属度函数。
格式:y=smf(x,[a b])
说明:曲线在(a,b)之间是光滑的样条曲线,在a左 段为0,b右段为1,跳跃点是(a+b)/2。参数x指定变量论 域范围。
x=0:0.1:10;
y=trimf(x, [3 6 8]);
plot(x,y)
xlable(‘trimf,P=[3 6 8]’)
②函数trapmf(trap表示trapezium梯形)
功能:建立梯形隶属度函数。
格式:y=trapmf(x,[a b c d])
其中:参数x指定变量论域范围,参数a,b, c和d指定梯形隶 属度函数的形状,该函数在b,c点处取最大值1,a,d点为0。
例: x=0:0.1:10; y=trapmf(x, [1 5 7 8]); plot(x,y) xlable(‘trapmf,P=[1 5 7 8]’)
③ 函数gaussmf 功能:建立高斯型隶属度函数。
格式:y=gaussmf(x,[sig c])
其中:参数x指定变量论域范围,参数c决定了函数的中心 点,sig决定了函数曲线的宽度σ。
高斯函数的表达式为:
1 ( xc )2
ye 2
例: x=0:0.1:10; y=gaussmf(x, [2 5]); plot(x,y) xlable(‘gaussmf,P=[2 5]’)
④函数zmf
功能:建立Z型隶属度函数。
格式:y=zmf(x,[a b])
说明:曲线在(a,b)之间是光滑的样条曲线,在a左 段为1,b右段为0,跳跃点是(a+b)/2。参数x指定变量论 域范围。
模糊规则观察器Ruleview 模糊推理输入输出曲面视图Surfview (Surface)
⑴ 模糊推理系统编辑器Fuzzy 处理最顶层构建问题,例如输入输出变量的数目、变量名等
激活(进入)方法:命令窗口(command window)执行 Fuzzy命令。
激活模糊推理系统系统编辑器 :
基本属性
说明:隶属度函数只能为模糊推理系统中已经存在的某 一语言变量的语言值添加隶属度函数。参数列表中,a为 模糊推理系统对应的矩阵变量名, varType指定语言变量 类型的字符串(如‘input’或‘output’); varIndex指定 语言变量编号的数字;mfName指定隶属度函数名称; mfType指定隶属度函数类型; mfPa=newfis(‘tipper’); a=addvar(a,’input’,’service’,[0 10]); a=addmf(a,’input’,1,’poor’,’guassmf’,[1.5 0]); a=addmf(a,’input’,1,’good’,’guassmf’,[1.5 5]); a=addmf(a,’input’,1,’excellent’,’guassmf’,[1.5 10]); plot(a,’input’,1)
MATLAB模糊逻辑工具箱 建立模糊逻辑推理系统 命令行函数(以 .m文件存放) 工具 图形交互工具(GUI-Graphical User Interface) (图形用户界面) 接口仿真逻辑模块(Simulink环境) 图形交互工具箱提供的图形化工具有五类:
模糊推理系统编辑器Fuzzy 隶属度函数编辑器Mfedit (Membership function) 模糊规则编辑器Ruleedit
centroid(重心法)
lom(最大隶属度函数中的取最大值法)
bisector(面积平分法) som(最大隶属度函数中的取最小值法)
mom(平均最大隶属度法)
⑵ 在命令窗口键 入mfedit可激活隶 属度函数编辑器
MATLAB的FIS结构和存储
1、FIS(模糊推理系统)结构
模糊推理系统是以一种FIS的结构来表示和存储的
例: x=0:0.1:10; y=smf(x, [2 8]); plot(x,y) xlable(‘smf,P=[2 8]’)
2、模糊逻辑系统输入输出变量及隶属度函数的添加 ①函数addvar 功能:向模糊推理系统中添加语言变量。 格式:a=addvar(a, varType, varName, varBounds)
访问方法
①GUI工具 ②函数
③结构名.成员名
2、存储( .fis文件)
访问
readfis-读 writefis-写
命令函数 1、隶属度函数 ①函数trimf(表示triangular membership function) 功能:建立三角形隶属度函数。 格式:y=trimf(x,[a b c]) 其中:参数x指定变量论域范围,参数a,b和c指定三角形 函数的形状,该函数在b点处取最大值1,a,c点为0。 例:建立三角形隶属度函数并绘制曲线。