模糊控制的MATLAB实现具体过程(强势吐血推荐)
模糊控制的MATLAB实现具体过程(强势吐血推荐)..64页PPT
![模糊控制的MATLAB实现具体过程(强势吐血推荐)..64页PPT](https://img.taocdn.com/s3/m/00562b1f1711cc7931b716a3.png)
模糊控制的MATLAB实现具体过程(强
势吐血推荐)..
21、没有人陪你走一辈子,所以你要 适应孤 独,没 有人会 帮你一 辈子, 所以你 要奋斗 一生。 22、当眼泪流尽的时候,留下的应该 是坚强 。 23、要改变命运,首先改变自己。
24、勇气很有理由被当作人类德性之 首,因 为这种 德性保 证了所 有其余 的德性 。--温 斯顿. 丘吉尔 。 25、梯子的梯阶从来不是用来搁脚的 ,它只 是让人 们的脚 放上一 段时间 ,以便 让别一 只脚能 够再往 上登。
66、节制使快乐增加并使享受加强。 ——德 谟克利 特 67、今天应做的事没有做,明天再早也 是耽误 了。——裴斯 泰洛齐 68、决定一个人的一生,以及整个命运 的,只 是一瞬 之间。 ——歌 德 69、懒人无法享受休息之乐。——拉布 克 70、浪费时间是一桩大罪过。——卢梭
模糊控制在matlab中的实例
![模糊控制在matlab中的实例](https://img.taocdn.com/s3/m/2594a2cd760bf78a6529647d27284b73f24236b6.png)
模糊控制在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仿真实例](https://img.taocdn.com/s3/m/b759a03c793e0912a21614791711cc7931b77899.png)
其他例子
模型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下模糊控制器设计步骤](https://img.taocdn.com/s3/m/2169e33ca7c30c22590102020740be1e650ecce0.png)
MATLAB下模糊控制器设计步骤模糊控制器简介模糊控制是指采用专家经验知识来处理模糊、不确定或复杂问题的一种控制方法。
模糊控制器是一个基于模糊逻辑的控制器,能够将输入变量和输出变量之间的映射关系进行模糊化,从而设计出具有模糊推理能力的控制器。
MATLAB下模糊控制器的设计步骤步骤一:确定系统控制目标在设计模糊控制器之前,需要明确系统控制的目标,如控制系统的稳态误差、响应时间、超调量等。
根据控制目标,设计模糊控制器的输入变量和输出变量。
步骤二:确定模糊控制器的输入变量与输出变量输入变量是控制系统的输入参数,包括状态量和操作量。
例如,在温度控制系统中,输入变量可以是温度传感器的输入、加热器控制器的输出等。
输出变量是控制系统的输出结果,影响系统的控制效果。
例如,在温度控制系统中,输出变量可以是加热器的功率、温度的变化率等。
步骤三:构建模糊集合对于每个输入和输出变量,构建一组模糊集合。
模糊集合是一种模糊变量值的表示方法,能够准确地描述模糊情况下的变量。
例如,对于温度控制系统中的温度传感器输入变量,可以构建模糊集合:{冷、凉、温、热、很热}。
每个模糊集合由若干个模糊语言变量组成,以便对该变量进行模糊控制。
步骤四:确定模糊规则库模糊规则库是模糊控制器的核心,描述输入变量与输出变量之间的映射关系。
模糊规则库是根据专家经验知识或试验数据得出的,其形式一般为:如果输入变量A是模糊集合X,且输入变量B是模糊集合Y,那么输出变量C是模糊集合Z。
例如,对于温度控制系统,一个模糊规则库可以是:如果输入变量为“温”且输出变量为“较强”则输出结果为“右转”。
步骤五:进行模糊推理模糊推理是利用模糊控制器的输入变量、模糊规则库和模糊推理算法来确定输出变量的过程。
在MATLAB中,可以使用Fuzzy Logic Toolbox工具箱来进行模糊推理。
步骤六:模糊控制器的评估在完成模糊推理后,需要对模糊控制器进行评估,以确定其控制效果。
模糊控制在MATLAB中的实现共47页
![模糊控制在MATLAB中的实现共47页](https://img.taocdn.com/s3/m/302261a7b84ae45c3b358cfb.png)
16、业余生活要有意义,不要越轨。——华盛顿 17、一个人即使已登上顶峰,也仍要自强不息。——罗素·贝克 18、最大的挑战和突破在于用人,而用人最大的突破在于信任人。——马云 19、自己活着,就是为了使别人过得更美好。——雷锋 20、要掌握书,莫被书掌握;要为生而读,莫为读而生。——布尔沃
金时代是在我们的前面,而不在 我们的 后面。
•
7、心急吃不了热汤圆。
•
8、你可以很有个性,但某些时候请收 敛。
•
9、只为成功找方法,不为失败找借口 (蹩脚 的工人 总是说 工具不 好)。
•
10、只要下定决心克服恐惧,便几乎 能克服 任何恐 惧。因 为,请 记住, 除了在 脑海中 ,恐惧 无处藏 身。-- 戴尔. 卡耐基 。
END
MATLAB技术模糊控制实例
![MATLAB技术模糊控制实例](https://img.taocdn.com/s3/m/a5ab5f6c3d1ec5da50e2524de518964bcf84d28a.png)
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)](https://img.taocdn.com/s3/m/0606ef482e3f5727a5e96230.png)
2012-1-10
22
2012-1-10
23
2012-1-10
24
插入规则
为在规则编辑器中插入第一条规则,如下选择: 1) 在变量service下选poor; 2) 在变量food下选rancid; 3) 在Connection框内选中无线按钮or; 4) 在输出变量tip下选cheap。 产生的第一条规则是: 1) 1 if (service is poor) or (food is rancid) then (tip is cheap) (1) 第二、三条规则 2)if (service is good) then (tip is average) (1) 3)if (service is excellent) or (food is delicious) then (tip is generous) (1) (.)为权值,缺省为1
2012-1-10 26
规则观察器
① ⑥ ② ⑧ ③ ⑨ ④ ⑤
2012-1-10
⑦
⑩
27
小费问题曲面观察器
2012-1-10
28
如果要观察某一输入变量对输出的影响,则可将另一变量屏 蔽。下图仅给出了服务与小费间的关系(可选择用于绘图的任 意两个输入和任意一个输出绘制3D图形)。
2012-1-10
特别浓缩的规则版本:
1 1, 1 (1) : 2 2 0, 2 (1) : 1 3 2, 3 (1) : 2 这是机器处理的版本。此结构中的第一列对应于输入变 量,第二列对应于输出变量,第三列显示作用于规则上的权 值,第四列是指明或者是OR(2)规则或者是AND(1)规则的简 写。前两列中的数表示隶属度函数的索引号。
2012-1-10 15
模糊控制在matlab中的实例
![模糊控制在matlab中的实例](https://img.taocdn.com/s3/m/dcbb7c59b94ae45c3b3567ec102de2bd9605deb2.png)
模糊控制在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实现](https://img.taocdn.com/s3/m/ef31effd01f69e31433294c7.png)
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进行模糊控制设计](https://img.taocdn.com/s3/m/c849e8beb8d528ea81c758f5f61fb7360b4c2b6d.png)
使用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技术模糊控制方法](https://img.taocdn.com/s3/m/81c46712905f804d2b160b4e767f5acfa1c78311.png)
Matlab技术模糊控制方法随着科技的不断进步,控制系统在各个领域中起着至关重要的作用。
为了适应不同的应用场景,不同的控制方法也应运而生。
其中,模糊控制方法因其对系统非线性特性的适应性和可解释性而备受关注。
本文将详细介绍Matlab技术中的模糊控制方法,包括模糊集合的表示与运算、模糊推理规则的建立、模糊控制器的设计与优化。
第一部分:模糊集合与模糊运算在模糊控制中,首先需要将系统的输入和输出用模糊集合的形式表示。
模糊集合是用隶属度函数来描述的,隶属度函数表示了某个元素属于该模糊集的程度。
Matlab中提供了一些方便的工具和函数来实现模糊集合的表示和计算。
首先,我们需要定义模糊集合的隶属度函数。
常见的隶属度函数有三角形隶属度函数、梯形隶属度函数、高斯隶属度函数等。
可以使用Matlab中的fuzzify函数来定义这些函数,并通过plot函数来可视化。
接下来,我们可以使用Matlab中的模糊运算函数来进行模糊集合的运算,例如交集运算和并集运算。
这些函数包括min、max、prod等函数。
通过这些函数,我们可以方便地实现模糊集合的合并和比较。
第二部分:模糊推理规则的建立模糊推理规则是模糊控制中的核心部分,它将模糊集合的输入映射为输出。
在Matlab中,我们可以使用fuzzy规则编辑器来定义和管理模糊推理规则。
首先,我们需要确定输入和输出的模糊集合。
在fuzzy规则编辑器中,我们可以指定输入和输出变量,并为其分配模糊集合。
接着,我们可以添加模糊规则,每个模糊规则包括条件和结论两个部分。
条件部分是输入变量的模糊集合的组合,结论部分是输出变量的模糊集合。
在添加模糊规则之后,我们可以使用fuzzify函数将输入变量模糊化,并使用inference函数进行推理。
推理结果将以模糊集合的形式表示。
第三部分:模糊控制器的设计与优化在模糊控制中,模糊控制器是通过将输入模糊集合映射为输出模糊集合来实现控制目标的。
在Matlab中,我们可以使用fuzzy控制器编辑器来设计和优化模糊控制器。
最新第4章模糊控制的matlab实现教学讲义PPT
![最新第4章模糊控制的matlab实现教学讲义PPT](https://img.taocdn.com/s3/m/54b10dbbb84ae45c3a358c7e.png)
4.1 认识实验
4.1.1 GUI(图形用户界面) 工具箱函数
1. anfisedit
功能:打开ANFIS编辑器的GUI 格式: anfisedit(‘a’)
anfisedit(a) anfisedit 说明:利用anfisedit函数打开ANFIS编辑器的GUI, 从中可装入数据集合并训练ANFIS。 利用anfisedit(‘a’)可从磁盘中装入名为a.fis的FIS 文件,并打开ANFIS编辑器。利用anfisedit(a)可按同 样的方式打开FIS结构变量a。
4.1.4 Simulink仿真模块
1. fuzblock 功能:模糊逻辑控制器仿真模块 格式: fuzblock 说明:此命令将打开Simulink系统的模糊逻辑模块库, 里面含有有关模糊逻辑器件的演示框图。
2. sffis 功能:Simulink中的模糊推理S函数 格式: output=sffis(t,x,u,flag,fismat) 说明:用此函数可得到一个由Simulink使用的MEX文件
4.2 水箱水位控制实验
水箱水位模糊推理系统(FIS)的建立
模糊推理系统的任务
对测量数据进行模糊化 建立模糊控制规则表 进行输出信息的模糊判决
4. ruleedit
功能: ruleedit (‘a’) ruleedit (a)
说明:利用ruleedit (‘a’)可打开规则编辑器,从中可 以查看或修改文件a.fis所对应的FIS结构中的规则。
ruleedit (a)格式可用来打开在工作空间中已存在 的名为a的FIS结构所对应的规则编辑器。
2. addrule 功能:在FIS中添加规则 格式:a=addrule(a,ruleList) 例:ruleList=[1 1 1 1 1 ;1 2 2 1 1];
如何在MATLAB中进行模糊控制
![如何在MATLAB中进行模糊控制](https://img.taocdn.com/s3/m/87b1b6177275a417866fb84ae45c3b3567ecdd90.png)
如何在MATLAB中进行模糊控制模糊控制是一种基于模糊逻辑理论的控制方法,它通过建立模糊规则、模糊集合和模糊推理等步骤,实现对复杂系统的控制。
在MATLAB中,我们可以利用模糊控制工具箱进行模糊控制设计和仿真。
本文将从模糊控制的基本原理、MATLAB中的模糊控制工具箱的使用以及实例应用等方面进行讨论。
一、模糊控制基本原理模糊控制的基本原理是将人类的经验和模糊逻辑理论应用于系统控制中。
它不需要准确的数学模型,而是通过模糊集合、模糊规则和模糊推理等方法来描述和制定控制策略。
下面我们将简要介绍一下模糊控制中的基本概念。
1. 模糊集合模糊集合是一种可以容纳不确定性的集合。
与传统集合论不同,模糊集合中的元素可以部分地、模糊地属于该集合。
在模糊控制中,我们通常使用隶属度函数来描述元素对模糊集合的隶属程度。
2. 模糊规则模糊规则是一种将输入和输出间的关系表示为一组语义规则的方法。
它基于专家的经验和知识,将输入变量的模糊集合与输出变量的模糊集合之间建立映射关系。
模糊规则通常采用IF-THEN的形式表示,例如:“IF 温度冷 AND 湿度高 THEN 空调制冷”。
3. 模糊推理模糊推理是基于模糊规则进行推理和决策的过程。
它通过对模糊集合的隶属度进行运算,计算出输出变量的模糊集合。
常用的推理方法有模糊关联、模糊交集和模糊合取等。
二、MATLAB中的模糊控制工具箱MATLAB提供了一套完整的模糊控制工具箱,包括模糊集合的创建、模糊规则的定义、模糊推理和模糊控制系统的仿真等功能。
下面我们将逐步介绍这些功能的使用方法。
1. 模糊集合的创建在MATLAB中,我们可以使用fuzzymf函数来创建模糊集合的隶属度函数。
该函数可以根据用户指定的类型和参数生成不同形状的隶属度函数。
常用的隶属度函数有三角型函数、梯形函数和高斯型函数等。
2. 模糊规则的定义在MATLAB中,我们可以使用addrule函数来定义模糊规则。
该函数将用户指定的输入变量、模糊集合和输出变量、模糊集合之间的关系转化为模糊规则,并添加到模糊推理系统中。
模糊控制在matlab中的实例
![模糊控制在matlab中的实例](https://img.taocdn.com/s3/m/1a66ea1be3bd960590c69ec3d5bbfd0a7956d590.png)
模糊控制在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来定义输入和输出变量以及规则,并运行模糊推理系统来计算输出值。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
注意:对于添加到同一个模糊推理系统的语言变量,按 先后顺序自动编号,编号从1开始,逐渐递增。对于分属 于输入与输出的不同语言变量则独立地分别编号。
2. 蕴涵计算(Implication) min prod (乘积法)
3. 输出的合成计算Aggregation(模糊规则综合采用的方法)
Aggregation
max sum(求和法)
prober (概率法)
prober(a,b)=a+b-ab
4. 逆模糊化计算(Defuzzification)
说明:隶属度函数只能为模糊推理系统中已经存在的某 一语言变量的语言值添加隶属度函数。参数列表中,a为 模糊推理系统对应的矩阵变量名, varType指定语言变量 类型的字符串(如‘input’或‘output’); varIndex指定 语言变量编号的数字;mfName指定隶属度函数名称; mfType指定隶属度函数类型; mfParams指定隶属度函数 的参数。
例: 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=smf(x, [2 8]); plot(x,y) xlable(‘smf,P=[2 8]’)
2、模糊逻辑系统输入输出变量及隶属度函数的添加 ①函数addvar 功能:向模糊推理系统中添加语言变量。 格式:a=addvar(a, varType, varName, varBounds)
例: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)
例:a=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)
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。
高斯函数的表达式为:
Байду номын сангаас
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指定变量论 域范围。
访问方法
①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。 例:建立三角形隶属度函数并绘制曲线。
组成
双击
输入模糊变量图形框
Mfedit
双击
模糊规则图形框
Ruleedit
输出模糊变量图形框 双击 Mfedit
基本属性包括:
1. 模糊集合合成运算(连接词的运算) min(最小法)
① and prod(乘积法)
② or max(最大法) prober(概率法)
prober(a,b)=a+b-ab
例: 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决定了函数曲线的宽度σ 。
MATLAB模糊逻辑工具箱 建立模糊逻辑推理系统 命令行函数(以 .m文件存放) 工具 图形交互工具(GUI-Graphical User Interface) (图形用户界面) 接口仿真逻辑模块(Simulink环境) 图形交互工具箱提供的图形化工具有五类:
模糊推理系统编辑器Fuzzy 隶属度函数编辑器Mfedit (Membership function) 模糊规则编辑器Ruleedit
模糊规则观察器Ruleview 模糊推理输入输出曲面视图Surfview (Surface)
⑴ 模糊推理系统编辑器Fuzzy 处理最顶层构建问题,例如输入输出变量的数目、变量名等
激活(进入)方法:命令窗口(command window)执行 Fuzzy命令。
激活模糊推理系统系统编辑器 :
基本属性
centroid(重心法)
lom(最大隶属度函数中的取最大值法)
bisector(面积平分法) som(最大隶属度函数中的取最小值法)
mom(平均最大隶属度法)
⑵ 在命令窗口键 入mfedit可激活隶 属度函数编辑器
MATLAB的FIS结构和存储
1、FIS(模糊推理系统)结构
模糊推理系统是以一种FIS的结构来表示和存储的