Sugeno模型模糊推理matlab实验
- 格式:doc
- 大小:157.50 KB
- 文档页数:4
模糊控制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为输出的模糊变量名。
实验五(1)模糊控制仿真实验一、模糊逻辑推理系统的总体特征模糊控制由于不依赖对象的数学模型而受到广泛的重视,计算机仿真是研究模糊控制系统的重要手段之一。
由Math Works公司推出的Matlab软件,为控制系统的计算机仿真提供了强有力的工具,特别是在Matlab4.2以后的版本中推出的模糊工具箱(Fuzzy Toolbox),为仿真模糊控制系统提供了很大的方便。
由于这样的模块都是由相关领域的著名学者开发的,所以其可信度都是很高的,仿真结果是可靠的。
在Simulink环境下对PID控制系统进行建模是非常方便的,而模糊控制系统与PID控制系统的结构基本相同,仅仅是控制器不同。
所以,对模糊控制系统的建模关键是对模糊控制器的建模。
Matlab软件提供了一个模糊推理系统(FIS)编辑器,只要在Matlab命令窗口键入Fuzzy就可进入模糊控制器编辑环境。
二、Matlab模糊逻辑工具箱仿真1.模糊推理系统编辑器(Fuzzy)模糊推理系统编辑器用于设计和显示模糊推理系统的一些基本信息,如推理系统的名称,输入、输出变量的个数与名称,模糊推理系统的类型、解模糊方法等。
其中模糊推理系统可以采用Mandani或Sugeuo两种类型,解模糊方法有最大隶属度法、重心法、加权平均等。
打开模糊推理系统编辑器,在MATLAB的命令窗(command window)内键入:fuzzy 命令,弹出模糊推理系统编辑器界面,如下图所示。
加入新的输入input,如下图所示。
选择input(选中为红框),在界面右边文字输入处键入相应的输入名称,例如,温度输入用 tmp-input, 磁能输入用 mag-input,等。
2.隶属度函数编辑器(Mfedit)该编辑器提供一个友好的人机图形交互环境,用来设计和修改模糊推理系中各语言变量对应的隶属度函数的相关参数,如隶属度函数的形状、范围、论域大小等,系统提供的隶属度函数有三角、梯形、高斯形、钟形等,也可用户自行定义。
摘要模糊推理是以模糊集合论为基础描述工具,对以一般集合论为基础描述工具的数理逻辑进行扩展,从而建立了模糊推理理论,是不确定推理的一种。
在人工智能技术开发中有重要意义。
模糊建模是指利用模糊系统逼近未知的非线性动态,从而逼近于整个系统。
本文全面回顾了模糊推理的产生背景、研究现状和发展方向,并介绍了模糊系统、模糊集合以及模糊建模等的基础理论知识。
详细阐述了Sugeno模型的建模过程,利用模糊推理系统对非线性函数进行逼近,通过matlab仿真实例说明该建模方法的有效性。
最后,对全文进行总结,概括本篇文章的主旨,并提出今后的研究方向。
关键词:模糊推理,模糊建模,仿真AbstractFuzzy reasoning based on fuzzy sets theory to describe tool,it is based on general set theory of mathematical logic described tools, so as to establish the extended fuzzy reasoning theory,it is an uncertainty reasoning. It is important to the development of artificial intelligence technology. Fuzzy model is refered to the use of fuzzy system to approach unknown nonlinear dynamic,then approach the whole system.This paper reviews the background of fuzzy reasoning,research status and development direction,and introduces fuzzy system,the fuzzy set and the fuzzy model and basic theoretical knowledge. It also expounds the Sugeno modeling process,and use fuzzy inference system to approximate nonlinear function. Through matlab simulation example shows the effectiveness of the modeling methodFinally,the full text is summarized to express the purpose of this article, and puts forward the direction of future research.Keywords: fuzzy reasoning,fuzzy modeling,simulation目录1.绪论 (1)1.1 模糊思想的起源 (1)1.1.1 精确思维的缺陷 (1)1.1.2 逻辑推理与模糊性 (1)1.2 模糊推理理论研究的进展 (3)1.3 模糊推理的研究领域和成果 (4)1.3.1 模糊推理在模糊控制中的研究与应用 (4)1.3.2 模糊推理在人工智能中的研究与应用 (4)2.模糊系统基础 (6)2.1 模糊集 (6)2.2 模糊集的表示一隶属度函数 (6)2.3 If...then规则 (7)2.4 模糊推理 (8)2.5 模糊聚类 (10)3.模糊建模 (11)3.1 模糊模型建模过程 (11)3.2 非线性系统的T-S模糊模型 (12)3.3 T-S模型的参数辨识 (13)4.仿真实例 (16)4.1 仿真软件简介 (16)4.2 设计原理 (16)4.3 仿真实例 (18)4.4 结论 (22)结束语 (24)参考文献 (25)致谢 (26)1.绪论1.1 模糊思想的起源1.1.1 精确思维的缺陷迄今,经典逻辑和精确数学的成功推动了精确科学的迅速发展; 精确科学的巨大成就也造成了人类对“精确”的顶礼膜拜。
使用Matlab进行模糊逻辑分析的技巧引言:在现代科学中,逻辑分析在决策、控制系统和模糊推理等领域发挥着重要的作用。
模糊逻辑是一种能够处理复杂和不确定的问题的有效工具。
而Matlab作为一种功能强大的数学软件,也提供了丰富的工具和函数来支持模糊逻辑的建模和分析。
本文将介绍使用Matlab进行模糊逻辑分析的一些技巧和实例。
一、安装模糊逻辑工具箱Matlab提供了自带的模糊逻辑工具箱,可以通过Matlab的插件管理器进行安装。
打开Matlab后,在工具栏中选择"Add-Ons",然后在搜索框中输入"模糊逻辑工具箱",点击搜索按钮,选择合适的版本进行安装。
安装完成后,即可在工具箱中找到并使用模糊逻辑相关的函数和工具。
二、建立模糊逻辑系统使用Matlab进行模糊逻辑分析的第一步是建立一个模糊逻辑系统。
可以使用命令"fuzzy"创建一个模糊逻辑系统对象,然后使用该对象进行后续的分析。
例如,创建一个简单的三角形隶属函数的模糊逻辑系统对象:```matlabfis = fuzzyfis = addInput(fis,[0 10],'Name','input1')fis = addOutput(fis,[0 20],'Name','output1')fis = addMF(fis,'input1','trimf',[2 5 7])fis = addMF(fis,'output1','trimf',[4 10 16])```上述代码创建了一个输入变量input1和一个输出变量output1,并添加了三角形隶属函数。
通过这种方式,可以根据实际问题的需求建立模糊逻辑系统。
三、设置模糊规则在模糊逻辑系统中,模糊规则是描述输入和输出之间关系的关键。
第6章模糊逻辑6.1 隶属函数6.1.1 高斯隶属函数函数gaussmf格式y=gaussmf(x,[sig c])说明高斯隶属函数的数学表达式为: , 其中为参数, x为自变量, sig为数学表达式中的参数。
例6-1>>x=0:0.1:10;>>y=gaussmf(x,[2 5]);>>plot(x,y)>>xlabel('gaussmf, P=[2 5]')结果为图6-1。
图6-16.1.2 两边型高斯隶属函数函数gauss2mf格式y = gauss2mf(x,[sig1 c1 sig2 c2])说明sig1.c1.sig2.c2为命令1中数学表达式中的两对参数例6-2>>x = (0:0.1:10)';>>y1 = gauss2mf(x, [2 4 1 8]);>>y2 = gauss2mf(x, [2 5 1 7]);>>y3 = gauss2mf(x, [2 6 1 6]);>>y4 = gauss2mf(x, [2 7 1 5]);>>y5 = gauss2mf(x, [2 8 1 4]);>>plot(x, [y1 y2 y3 y4 y5]);>>set(gcf, 'name', 'gauss2mf', 'numbertitle', 'off');结果为图6-2。
6.1.3 建立一般钟型隶属函数函数 gbellmf格式 y = gbellmf(x,params)说明 一般钟型隶属函数依靠函数表达式b 2|ac x |11)c ,b ,a ;x (f -+=这里x 指定变量定义域范围, 参数b 通常为正, 参数c 位于曲线中心, 第二个参数变量params 是一个各项分别为a, b 和c 的向量。
实验报告1
实验目的:
实现2输入单输出的sugeno模糊模型。
模糊规则如下:
If X是小(small)和Y是小,then z= -x+y+1;
If X是小(small)和Y是大,then z= -y+3;
If X是大(large)和Y是小,then z= -x +3;
If X是大(large)和Y是大,then z= x+y+2;
实验方法:
利用matlab提供的模糊控制工具箱(fuzzy)
实验步骤:
1.打开matlab软件在工作空间中输入fuzzy,调出模糊工具箱,如图1所示:
图1
2. 由于实验要求是2输入单输出,所以在edit下拉菜单中选择add variable—input
图2
3. 设置2个输入X和Y和1个输出Z的隶属度函数,输入X的隶属度函数设置为高斯型,输入Y的隶属度函数设置为钟型,如下图3和图4所示:
图3 X的隶属度函数Y的隶属度函数
由于是要目的中的推理规则符合是一般的一阶线性Sugeno模型规则的形式为:
if x is A and y is B then z = px + qy + r;
式中, x和y为输入语言变量, A和B为推理前件的模糊集合, z为输出语言变量, p, q, r为常数
根据要求依次将4个输出中的线性参数设置为:[-1 1 1];[0 -1 3];[-1 0 3] 和[1 1 2]
图4
4. 设置模糊规则:双击工具箱中间的规则块。
根据实验要求中的模糊规则,依次将规则添加到规则库中,如下所示:
图5
实验结论
经上面4个步骤就完成了该实验要求,可以观察该模糊模型的规则库和输入输出曲面图,结果如下图6和图7所示:
图6 Sugeno模糊推理的规则库
图7 Sugeno模糊推理输入输出曲面图。