模糊控制的Matlab仿真实例分析

合集下载

第五章模糊控制系统的MATLAB仿真

第五章模糊控制系统的MATLAB仿真

2. 表述模糊规则的语言和格式编辑 1)语言型 2)符号型 3)索引型 3. 模糊规则的编辑方法 1)编辑一条新模糊规则的方法 2)修改模糊规则 3)删除编好的模糊规则
例题: (1)确定结构 (2)编辑输入变量“level”和“rate” (3)编辑输出量“valve” (4)编辑模糊规则 (5)保存液位FIS并退出FIS编辑系统
4)编修模糊子集位置 5)删除模糊子集的方法 • 单击 • 删除
3. SUGeno型FIS隶属函数MF的编辑 1)进入二维SUGeno型FIS编辑器 2)调出Sugeno型MF编辑器
5.2.4 模糊规则编辑器 1. 模糊规则编辑器界面简介 2. 1)Rule编辑器上的主菜单 3. 2)Rule编辑器上的显示区和编辑区 4. 3)Rule编辑器上的“显示带” 5. 4)Rule编辑器上的编辑功能按钮
Sugeno型模糊推理系统编辑器的模糊逻辑算法与Mamdani型有所不同
5.2.3 隶属函数编辑器 1.MF编辑器界面简介
2. Mamdani型FIS中隶属函数(MF)的编辑 1)编辑输入变量的论域和显示范围 2)增加覆盖输入量模糊子集的数目 • 编辑MF类型 • 编辑隶属函数的数目
• • • • 3)编修隶属函数曲线 MF的命名 细化MF的类型 非标准函数MF的编修
5.2 模糊推理系统的设计与仿真
5.2.1 模糊推理系统的图形用户界面简介
5.2.2 模糊推理系统编辑器 1.FIS编辑器界面简介 • 菜单条和模框区 File Edit View
模糊逻辑区和当前变量区 2. FIS推理系统的编辑 3.编辑FIS的维数 4.编辑FIS输入、输出量的名称
5.编辑FIS的名称 6.编辑模糊逻辑推理的具体算法 在下部模糊逻辑区中

模糊控制在matlab中的实例

模糊控制在matlab中的实例

模糊控制在matlab中的实例
MATLAB 是一种广泛使用的数学软件,可以用于模糊控制的研究和应用。

以下是一些在 MATLAB 中的模糊控制实例:
1. 模糊控制器的设计:可以通过建立模糊控制器的数学模型,使用 MATLAB 进行建模和优化,以实现精确的控制效果。

2. 模糊控制应用于电动机控制:可以使用 MATLAB 对电动机进行模糊控制,以实现精确的速度和位置控制。

3. 模糊控制在工业过程控制中的应用:在工业过程中,可以使用模糊控制来优化生产过程,例如温度控制、流量控制等。

4. 模糊控制在交通运输中的应用:在交通运输中,可以使用模糊控制来优化车辆的行驶轨迹和速度,以提高交通运输的安全性和效率。

5. 模糊控制在机器人控制中的应用:可以使用模糊控制来优化机器人的运动和操作,以实现更准确和高效的操作。

这些实例只是模糊控制应用的一部分,MATLAB 作为一种强大的数学软件,可以用于各种模糊控制的研究和应用。

模糊控制MATLAB仿真

模糊控制MATLAB仿真

模糊控制MATLAB仿真
实验报告本课程名称:MATLAB模糊控制上机实验
2013~2014学年第⼀学期
⼴东⽯油化⼯学院计算机与电⼦信息学院
实验⽬的:
1、了解MATLAB中各种仿真⼯具。

2、掌握MATLAB仿真⼯具中图形化界⾯以及模糊逻辑⼯具箱函数的仿真⽅法。

上机实验⼀:
设计⼀个温度模糊控制器,具体要求见课本P59要求采⽤下⾯两种MATLAB⼯具进⾏仿真。

1、⼯具箱提供的图形化界⾯
2、模糊逻辑⼯具箱函数
仿真⽅法:
1、采⽤MATLAB语⾔根据具体的控制算法编程
2、利⽤MATLAB提供的模糊逻辑⼯具箱函数
3、利⽤模糊逻辑⼯具箱的图形界⾯与Simulink动态仿真环境
在matlab⼯作窗⼝输⼊:fuzzy+回车或fuzzy + ⽂件名(.fis)进⼊图形界⾯编辑
增加输⼊变量
输⼊mfedit或选择编辑⾪属度函数菜单输⼊误差e的⾪属度函数
输⼊误差变化de的⾪属度函数
输出u的⾪属度函数
输⼊ruleedit,或选择编辑模糊规则菜单
浏览模糊规则
模糊推理输⼊输出曲⾯视图,完成模糊推理系统的构建。

洗衣机模糊控制matlab仿真

洗衣机模糊控制matlab仿真

洗衣机模糊控制仿真1.模糊控制背景美国教授查徳(L.A.Zandeh)在1965年首先提出模糊集合的概念.由此打开了模糊数学及其应用的大门。

1974年英国教授马丹尼(E.H.Mamdani)首先将模糊集合理论应用于加热器的控制.创造了模糊控制的基本框架。

1980年.Sugeno开创了日本的首次模糊应用——控制一家富士电子水净化厂。

1983年他又开始研究模糊机器人。

随着模糊控制技术的不断发展.模糊控制逐渐被应用到日用家电产品的控制.例如电饭锅﹑照相机﹑吸尘器﹑洗衣机等。

2.仿真目的本次仿真的主要目的是设计一个比较合理的洗衣机模糊控制器.它能够根据被洗涤衣物的污泥多少和油脂多少.综合得到洗涤时间.从而达到最佳的洗涤效果。

3.仿真方法本次仿真借助matlab中集成的模糊控制工具箱.使用图形界面进行模糊控制器的设计。

最后随意给定几组输入.得到输出并作出简单分析。

4.模糊控制器的设计4.1模糊控制器理论设计方法①选择合适的模糊控制器类型;②确定输入输出变量的实际论域;③确定e,e∆的模糊集个数及各模糊集的隶属度函数;∆,u④输出隶属度函数选为单点.可使解模糊简单;⑤设计模糊控制规则集;⑥选择模糊推理方法;⑦解模糊方法。

4.2实际设计过程①模糊控制器类型:选用两输入单输出模糊控制器.控制器输入为衣物的污泥和油脂.输出为洗涤时间。

②确定输入输出变量的实际论域:输入为Mud(污泥)和Grease (油脂).设置Range=[0 100](输入变化范围为[0,100]);输出为Time(洗涤时间).Range=[0 60](输出变化范围为[0,60])。

对应matlab 中模糊控制模块:③确定模糊集个数及各模糊集的隶属度函数:将污泥分为3个模糊集:SD (污泥少)MD (污泥中)LD(污泥多);將油脂分为三个模糊集:NG (油脂少)MG (油脂中)LG (油脂多);将洗涤时间非为5个模糊集:VS (很短)S (短)M (中等)L (长)VL (很长)。

第三章模糊控制模糊控制的MATLAB仿真优秀课件

第三章模糊控制模糊控制的MATLAB仿真优秀课件
>> r=2; % 键入半径
>> area=pi*r^2; % 计算面积
Hale Waihona Puke 三、变量和数值显示格式1、变量
(1)变量名称
MATLAB对使用变量名称的规定:
1. 变量名称的英文大小写是有区别的(apple, Apple, AppLe,三个变量不同)。
2. 变量的长度上限为 31 个字元。
3. 变量名的第一个字必须是一英文字,随后可 以掺杂英文字、数字或是底线。变量中不能 包含有标点符号。
>> r=2, area=pi*r^2
>> r=2; area=pi*r^2;
请注意上述二式的差异,前者有计算值显示, 而后者则无。
另外一个符号注解是由%起头,也就是说在%之后 的任何文字都被视为程式的注解。注解的功能是 简要的说明程式的内容。任何可能产生混淆的地 方都应该加注解,适量的注解可在以后想了解程 式时能节省一些不必要的时间。例如:
❖ format只是影响结果的显示,不影响其计算与存储; MATLAB总是以双字长浮点数(双精度)来执行所 有的运算。
MATLAB可以将计算结果以不同的精确度的数字格式显示,我们可 以直接在指令视窗键入以下的各个数字显示格式的指令,以π值 为例 :
>> pi ans = 3.1416 >> format long >> pi ans = 3.14159265358979 >> format short e >> pi ans = 3.1416e+000
如果结果为整数,则显示没有小数;如果结果不是整数, 则输出形式有:
四、简单的数学运算(例exp02_01.m)

模糊控制器的MATLAB仿真

模糊控制器的MATLAB仿真

实验一模糊控制器的MATLAB仿真一、实验目的本实验要求利用MATLAB/SIMULINK与FUZZYTOOLBOX对给定的二阶动态系统,确定模糊控制器的结构,输入和输出语言变量、语言值及隶属函数,模糊控制规则;比较其与常规控制器的控制效果;研究改变模糊控制器参数时,系统响应的变化情况;掌握用 MATLAB 实现模糊控制系统仿真的方法。

二、实验原理模糊控制器它包含有模糊化接口、知识库(规则库、数据库)、模糊推理机、解模糊接口等部分。

输人变量e(t)是过程实测变量y(t)与系统设定值s(t)之差值。

输出变量y(t)是系统的实时控制修正变量。

模糊控制的核心部分是包含语言规则的规则库和模糊推理机。

而模糊推理就是一种模糊变换,它将输入变量模糊集变换为输出变量的模糊集,实现论域的转换。

工程上为了便于微机实现,通常采用“或”运算处理这种较为简单的推理方法。

Mamdani推理方法是一种广泛采用的方法。

它包含三个过程:隶属度聚集、规则激活和输出总合。

模糊控制器的组成框图如图2.1所示。

图2.1 模糊控制器的组成框图三、模糊推理系统的建立一个模糊推理系统的建立分为三个步骤:首先,对测量数据进行模糊化;其次,建立规则控制表;最后,输出信息的模糊判决,即对模糊量进行反模糊化,得到精确输出量。

模糊推理系统的建立,往往是设计一个模糊控制系统的基础。

建立一个模糊推理系统有两类方法:一种是利用GUI建立模糊推理系统;另一种是利用MATLAB命令建立。

下面根据实验内容,利用GUI建立模糊推理系统。

例:对循环流化床锅炉床温,对象模型为()()1140130120++s s采用simulink 图库,实现常规PID 和模糊自整定PID 。

模糊自整定PID 为2输入3输出的模糊控制器。

1、 进入FIS 编辑器在MATLAB 的命令窗口中键入fuzzy 即可打开FIS 编辑器,其界面如下图所示。

此时编辑器里面还没有FIS 系统,其文件名为Untitled ,且被默认为Mandani 型系统。

MATLAB技术模糊控制实例

MATLAB技术模糊控制实例

MATLAB技术模糊控制实例一、引言在现代控制领域中,模糊控制是一种应用广泛的方法。

它通过将模糊逻辑和模糊运算引入控制系统中,来处理非线性、不确定性和模糊性问题。

而MATLAB作为一种常用的工具和编程语言,在模糊控制技术的实现中也起到了重要的作用。

二、模糊控制基础2.1 模糊集合和隶属度函数在模糊控制中,模糊集合是指某个具有模糊性质的事物的集合。

而隶属度函数则是用来描述一个元素对某个模糊集合的隶属程度的函数。

MATLAB提供了一系列的函数来实现模糊集合和隶属度函数的定义与计算。

2.2 模糊规则和推理机制模糊规则是模糊控制系统中的核心部分,它是一种以if-then形式表示的规则,用于将输入变量映射到输出变量。

推理机制则是模糊控制系统中用于根据模糊规则进行推理和决策的方法。

在MATLAB中,可以使用模糊推理系统工具箱来实现模糊规则和推理机制。

三、MATLAB模糊控制实例下面以一个简单的温度控制系统为例,介绍如何使用MATLAB进行模糊控制的实现。

3.1 系统建模假设我们要设计一个模糊控制器来控制一个恒温器,使得恒温器能够根据当前环境温度自动调整加热功率。

首先,我们需要进行系统建模,即确定输入变量、输出变量和规则库。

在这个例子中,输入变量为环境温度和加热功率的变化率,输出变量为加热功率的大小。

规则库包括一系列的模糊规则,用于根据当前环境温度和加热功率的变化率来决策加热功率的大小。

3.2 模糊集合和隶属度函数的定义在MATLAB中,可以使用fuzzy集合函数来定义模糊集合和隶属度函数。

例如,我们可以使用triangle函数来定义一个三角形隶属度函数,用于表示环境温度的低、中、高。

3.3 模糊规则和推理机制的设计在MATLAB中,使用fuzzy规则编辑器可以方便地设计模糊规则和推理机制。

首先,我们需要定义输入和输出的模糊集合,然后输入模糊集合和输出模糊集合之间的关系。

接下来,根据规则库的要求,添加相应的模糊规则。

第三章模糊控制(2)模糊控制的MATLAB仿真

第三章模糊控制(2)模糊控制的MATLAB仿真

七.其它功能
1.用↑↓二个游标键可以将所下过的指令叫回来 重覆使用。按下↑则前一次指令重新出现, 之后再按Enter键,即再执行前一次的指令。 而↓键的功用则是往后执行指令。 2.在键盘上的几个键如→,←, Delete等,其功 能则显而易见,试用即知无须多加说明。
3.Ctrl-C(即同时按Ctrl及C二个键)可以用来 中止执行中的MATLAB的工作。 4.命令窗口的分页输出 more off:不允许分页 more on:允许分页 more(n):指定每页输出的行数 回车键前进一行 空格键显示下一页 q键结束当前显示
5.2
MATLAB阵列与矩阵
一、简易阵列 MATLAB的运算事实上是以阵列 (array) 及矩阵 (matrix) 方 式在做运算,而这二者在MATLAB的基本运算性质不同, 阵列强调元素对元素的运算,而矩阵则采用线性代数的运 算方式。 宣告一变数为阵列或是矩阵时,如果是要个别键入元素, 须用中括号[ ] 将元素置于其中。阵列为一维元素所构成, 而矩阵为多维元素所组成,例如 : >> x = [1 2 3] % 一维 1x3 阵列

2.MATLAB提供基本的算术运算: 加 (+)、减 (-)、乘 (*)、除 (/)、幂次方 (^),范例 为:5+3, 5-3, 5*3, 5/3, 5^3 其它在计算常用的功能我们用一个算式来说明。 例:要计算面积Area = ,半径r = 2,则可键入 r=2; area=pi*r^2; area = 12.5664
mean(x) ——向量的平均值
sum(x) ——向量的总和 sort(x) ——向量的排序
x+yi或x+yj ——复数
imag ——复数的虚部

模糊控制在MATLAB中的实现

模糊控制在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作为一款功能强大的数学计算软件,在模糊控制设计中发挥着重要的作用。

本文将介绍使用MATLAB进行模糊控制设计的基本原理、步骤以及一些实际的应用案例。

一、模糊控制基本原理1.1 模糊逻辑模糊逻辑是基于模糊集的一种数学逻辑推理方法。

与传统的布尔逻辑不同,模糊逻辑考虑了中间状态的存在,可以用模糊集的隶属度来描述事物之间的模糊关系。

模糊逻辑的基本运算包括模糊与、模糊或、模糊非等。

1.2 模糊控制器的基本结构模糊控制系统由模糊化、模糊推理和去模糊化三个主要部分组成。

模糊化将输入转换为模糊集,模糊推理基于预定义的模糊规则进行逻辑推理,得到输出的模糊集,然后通过去模糊化将模糊结果转换为实际的控制信号。

二、使用MATLAB进行模糊控制设计的步骤2.1 建立模糊逻辑系统在MATLAB中,可以使用fuzzy工具箱来建立模糊逻辑系统。

首先,需要定义输入和输出的模糊集,可以选择三角形、梯形或高斯函数等形状。

然后,定义模糊规则,设置每个输入和输出之间的关系。

最后,确定输入和输出的范围,以便后续模糊控制器的设计和仿真。

2.2 设计模糊控制器在MATLAB中,可以使用fuzzy工具箱中的fuzzy控制器对象来设计模糊控制器。

首先,需要将前一步中建立的模糊逻辑系统与fuzzy控制器对象相关联。

然后,设置输入的变化范围和输出的变化范围。

接下来,可以选择使用模糊控制器设计方法来优化模糊规则和模糊集的参数。

最后,可以进行控制系统的仿真和性能评估。

2.3 优化模糊控制器优化模糊控制器是为了使模糊控制系统能够更好地适应实际环境变化和控制要求。

在MATLAB中,可以使用模糊控制器的仿真结果进行性能评估和参数调整。

可以通过修改模糊规则、模糊集的参数或输入输出的变化范围等方式来优化模糊控制器。

三、模糊控制设计的实际应用案例3.1 模糊温度控制模糊温度控制是一个常见的实际应用案例。

模糊控制在matlab中的实例

模糊控制在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仿真

洗衣机模糊控制matlab仿真

洗衣机模糊控制仿真1.模糊控制背景1980年,Sugeno 开创了日本的首次模糊应用——控制一家富士电子水净化厂。

1983年他又开始研究模糊机器人。

随着模糊控制技术的不断发展,模糊控制逐渐被应用到日用家电产品的控制,例如电饭锅﹑照相机﹑吸尘器﹑洗衣机等。

2.仿真目的本次仿真的主要目的是设计一个比较合理的洗衣机模糊控制器,它能够根据被洗涤衣物的污泥多少和油脂多少,综合得到洗涤时间,从而达到最佳的洗涤效果。

3.仿真方法本次仿真借助matlab 中集成的模糊控制工具箱,使用图形界面进行模糊控制器的设计。

最后随意给定几组输入,得到输出并作出简单分析。

4.模糊控制器的设计4.1模糊控制器理论设计方法①选择合适的模糊控制器类型;②确定输入输出变量的实际论域;③确定e ,e ∆,u ∆的模糊集个数及各模糊集的隶属度函数;④输出隶属度函数选为单点,可使解模糊简单;⑤设计模糊控制规则集;⑥选择模糊推理方法;⑦解模糊方法。

4.2实际设计过程①模糊控制器类型:选用两输入单输出模糊控制器,控制器输入为衣物的污泥和油脂,输出为洗涤时间。

②确定输入输出变量的实际论域:输入为Mud(污泥)和Grease (油脂),设置Range=[0 100](输入变化范围为[0,100]);输出为Time(洗涤时间),Range=[0 60](输出变化范围为[0,60])。

对应matlab 中模糊控制模块:③确定模糊集个数及各模糊集的隶属度函数:将污泥分为3个模糊集:SD (污泥少)MD (污泥中)LD(污泥多);将油脂分为三个模糊集:NG (油脂少)MG (油脂中)LG (油脂多);将洗涤时间非为5个模糊集:VS (很短)S (短)M (中等)L (长)VL (很长)。

输入﹑输出隶属度函数都定为三角形隶属函数。

结合④输出隶属度函数选为单点,可使解模糊简单;定义污泥隶属函数如下50)50()(x x SD -=μ 0≤x ≤5050x 0≤x ≤5050)100(x - 50<x ≤100 50)50()(-=x x LD μ 50<x ≤100对应matlab 中隶属度函数仿真图如下:由隶属函数设置污泥的3个模糊集参数为[Input1]Name='Mud'NumMFs=3MF1='SD':'trimf',[-50 0 50]MF2='MD':'trimf',[0 50 100]MF3='LD':'trimf',[50 100 150]定义油脂隶属函数如下:50)50()(y x SG -=μ 0≤y ≤5050y 0≤y ≤5050)100(y - 50<y ≤100 50)50()(-=y x LG μ 50<y ≤100对应matlab 中隶属度函数仿真图如下:由隶属函数设置油脂3个模糊集参数为[Input2]Name='Grease'NumMFs=3MF1='SG':'trimf',[-50 0 50]MF2='MG':'trimf',[0 50 100]MF3='LG':'trimf',[50 100 150]定义输出时间隶属函数如下:μVS (Z )=(10-Z )/10 0≤Z ≤10Z /10 0≤Z ≤10μS (Z )=(25-Z )/15 10≤Z ≤25(Z -10)/15 10≤Z ≤25μM (Z )= μ洗涤时间= (40-Z )/15 25≤Z ≤40 (Z -25)/15 25≤Z ≤40μL (Z )=(60-Z )/20 40≤Z ≤60 μVL (Z )=(Z -40)/20 40≤Z ≤60对应matlab 中隶属度函数仿真图如下:由隶属函数设置输出洗涤时间5个模糊集参数为[Output1]Name='Time'NumMFs=5MF1='S':'trimf',[0 10 25]MF2='L':'trimf',[25 40 60]MF3='VS':'trimf',[-10 0 10]MF4='M':'trimf',[10 25 40]MF5='VL':'trimf',[40 60 80]⑤设计模糊控制规则:设计标准为污泥越多,油脂越多,洗涤时间越长;污泥适中,油脂适中,洗涤时间适中;污泥越少,油脂越少,洗涤时间越短。

模糊控制的Matlab仿真实例分析

模糊控制的Matlab仿真实例分析

.
18
在Simulink编辑窗口左边的模块浏览区可以看 到在水箱仿真系统中包括水箱子模型、阀门子 模型及 PID 控制子模型。直接在浏览区中点 击或右键点击它们,并在弹出菜单中选择 [ look under mask 】 ,可以看到这些模块实 现的细节结构,如图 所示。
.
19
.
20
.
21
这里暂时不讨论具体的系统模型的构造问题,我们可 以先在这个已经建立好的系统模型上进行修改,体验 模糊逻辑与仿真环境结合使用的优势。
字分别代表服务和食
物的质量( 10 表示
非常好, 0 表示非常
差),这时小费与它
.
们之间的关系又应4当8
如何反映呢?
假设是二元线性关系 用下列 MATLAB 语句可绘出下图 。
.
49
.
50
可以看到,如果不考虑服务质量因素比食物质量因素对 于小费的支付占有更大的比重,上面的关系图形已经能 够反映一些实际的情况了。假如希望服务质量占小费的 80 % , 而食物仅占 20 %。这里可以设定权重因子:
注意将鼠标箭头放置图内,移动鼠标可得到不同 角度的视图,如下图所示。
.
15
Matlab模糊控制仿真演示例子
模型sltank.mdl ——使用模糊控制器对水箱水位进 行控制。
假定水箱有一个进水口和一个出水口,可以通过控 制一个阀门来控制流入的水量(即水位高度),但 是流出的速度取决于出水口的半径(定值)和水箱 底部的压力(随水箱中的水位高度变化)。系统有 许多非线性特性。
真。
.
31
学习 MATLAB 仿真工具的一个快速有效的方法就 是学习示例模型,通过看懂这些模型和模块的功
能以及搭建过程,可以很快熟悉和掌握如何使用 MATLAB 仿真工具来设计和搭建自己独特的模型。

模糊逻辑控制matlab编程仿真(第七组)

模糊逻辑控制matlab编程仿真(第七组)

《智能控制》模糊逼近作业报告组员:李适、郑晓森、匡金龙、沈伟生、武云发黎浩炎、晏开、杜文学、杨晓星目录一、任务及要求 (3)二、系统分析及控制设计原理 (3)三、设计实现 (4)四、仿真验证 (7)五、讨论与分析 (12)一、任务及要求(1)任务设计一个在 上的模糊系统,使其以精度一致地逼近函数()()()()()ππππ2121cos sin cos sin x x x x x g ++=,并进行Matlab 仿真。

(2)要求先进行系统分析,然后给出完整详细的设计过程,可参见P74-75页例5.1和例5.2的仿真实例。

二、系统分析及控制设计原理自适应模糊控制是指具有自适应学习算法的模糊逻辑系统,其学习算法是依靠数据信息调整模糊逻辑系统的参数,且可以保证控制系统的稳定性。

一个自适应模糊控制器可以用一个单一的自适应模糊系统构成,也可以用若干个自适应模糊系统构成。

与传统的自适应控制相比,自适应模糊控制的优越性在于它可以利用操作人员提供的语言性模糊信息,而传统的自适应控制则不能。

这一点对具有高度不确定因素的系统尤其重要。

自适应模糊控制有两种不同形式:一种是直接自适应模糊控制,即根据实际系统性能与理想性能之间的偏差直接设计模糊控制器;另一种是间接自适应模糊控制,即通过在线模糊逼近获得对象的模型,然后根据所得模型在线设计控制器。

三、设计实现(1)模糊系统的设计步骤设二维模糊系统g(x)为集合22211],[],[R U ⊂⨯=βαβα上的一个函数,其解析式形式未知。

假设对任意一个U x ∈,都能得到g(x),则可设计一个逼近g(x)的模糊系统。

模糊系统的设计步骤为:步骤1:在],[i i βα上定义)2,1(=i N i 个标准的,一致的和完备的模糊集i N i i i i A A A A ,...,,,321。

[][]1,11,1-⨯-=U 1.0=ε步骤2:组建21N N M ⨯=条模糊集IF-THEN 规则,即21u i i R :如果1x 为11i A 且2x 为22i A ,则y 为21i i B式中,2211,...,2,1;,...,2,1N i N i ==,将模糊集21i i B 的中心表示为),(),(g 21121221i i i i e e g x x y==式中,j i e 为i x 在模糊集j i A 上的中间值或边界值()2,1;2,1==j i 。

模糊控制的Matlab仿真实例

模糊控制的Matlab仿真实例
控制精度问题:由于模糊逻辑的推理过程存在一定的近似和简化,可能会导致控制精度不如传统PID控制等精确控制方法。
THANK YOU
中心平均值去模糊化
去模糊化过程
04
Matlab仿真实例
输入输出变量定义
根据被控对象的特性,定义模糊控制系统的输入输出变量,如温度、湿度、压力等。
模糊化函数设计
为每个输入输出变量设计对应的模糊化函数,将实际值映射到模糊集合上。
模糊规则制定
根据专家知识和实际经验,制定模糊控制规则,如“如果温度过高,则调整冷却阀”。
输入输出关系
基于模糊逻辑运算和模糊集合的性质,建立输入和输出之间的映射关系。
推理规则
基于专家知识和经验,制定一系列的推理规则,用于指导模糊推理过程。
推理方法
常用的模糊推理方法包括最大值推理、最小值推理和中心平均值推理等。
模糊推理系统
02
Matlab模糊逻辑工具箱简介
模糊逻辑工具箱的功能
为了将模糊输出转换为实际输出,工具箱提供了多种去模糊化方法,如最大值去模糊化、最小值去模糊化和中心平均值去模糊化等。
性能指标选择
根据所选性能指标,采用合适的方法对模糊控制系统的性能进行评估,如极差分析法、方差分析法等。
性能评估方法
将模糊控制系统的性能与其他控制方法进行比较,如PID控制、神经网络控制等,以验证其优越性。
性能比较
01
02
03
模糊控制系统的性能评估
05
结论与展望
模糊控制对模型误差和参数变化具有较强的鲁棒性,能够适应不确定性和非线性系统。
输出模糊化
将模糊集合的输出映射到实际输出量上,同样采用隶属函数进行模糊化处理。
模糊化过程
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

假设是二元线性关系
用下列 MATLAB 语句可绘出下图 。
可以看到,如果不考虑服务质量因素比食物质量因素对 于小费的支付占有更大的比重,上面的关系图形已经能 够反映一些实际的情况了。假如希望服务质量占小费的 80 % , 而食物仅占 20 %。这里可以设定权重因子:
用下列 MATLAB 语句可绘出下图
在Params(参数)处,选择三角形涵盖的区间,填写三个 值,分别为三角形底边的左端点、中点和右端点在横坐标 上的值。这些值由设计者确定。
用类似的方法设置输出output的参数。比如:共有9个规 则,所以相应地有9个输出隶属函数。默认3个隶属函数, 剩下6个由设计者加入。点击Edit菜单,选 Add Custom MS„->继续填入相应参数即可。

首先考虑最简单的情况,顾客总是多给总账单 的15%作为小费: 用 MATLAB 语句绘图,如下图所示。

虽然是简单的线性关 系,但这样的结果已 经基本能够反映服务 质量对小费的影响效 果了,如果考虑到顾 客所给的小费也应当 能反映食物的质量, 那么问题就在原来的 基础上扩展为:给定 两个从 0 到 10 的数 字分别代表服务和食 物的质量( 10 表示 非常好, 0 表示非常 差),这时小费与它 们之间的关系又应当 如何反映呢?


前面介绍过如何使用图形化工具建立模糊逻辑系 统,我们也可以完全用命令行或程序段的方式来 实现。 小费问题: 实际生活中有着许多模糊的概念和逻辑方式, “给小费”问题就是一个可以用模糊逻辑来分析 的经典的例子。下图表示的是一个关于饭店的服 务质量和顾客所给小费之间的关系图,左边表示 饭店的服务质量,作为输入;右边表示顾客所给 的小费,作为输出,两者是有一定逻辑关系的。
热水阀子系统
水量示 波器
温度示 波器 冷水阀子系统

这个仿真模型的输出是用示波器来表示的,如 图所示。通过示波器上的图形我们可以清楚地 看到温度和水流量跟踪目标要求的性能。
水温示波器
水流示波器
水温偏差区间模糊划分及隶属度函数
水流量偏差区间模糊划分及隶属度函数
输出对冷水阀控制策略的模糊化分及隶属度函数


模糊推理规则编辑器Ruleedit 通过隶属度函数编辑器来设计和修改 “IF...THEN”形式的模糊控制规则。由该编辑 器进行模糊控制规则的设计非常方便,它将输入 量各语言变量自动匹配,而设计者只要通过交互 式的图形环境选择相应的输出语言变量,这大大 简化了规则的设计和修改。另外,还可为每条规 则选择权重,以便进行模糊规则的优化。 选Edit菜单,选择Rules, 弹出一新界面Rule Editor. 在底部的选择框内,选择相应的 IF„AND„THEN 规则,点击Add rule 键,上部 框内将显示相应的规则。本例中用9条左右的规 则,依次加入。如下图所示:
其他例子



模型Shower.mdl―淋浴温度调节模糊控制系统仿真; 模型slcp.mdl―单级小车倒摆模糊控制系统仿真; 模型 slcp1.mdl―变长度倒摆小车模糊控制系统仿 真; 模型 slcpp1.mdl—定长、变长二倒摆模糊控制系 统仿真; 模型slbb.mdl―球棒模糊控制系统仿真; 模型sltbu.mdl―卡车智能模糊控制倒车系统仿真; 模型sltank2.mdl ― 用子系统封装的水箱控制仿 真。


模糊逻辑工具箱仿真结果 模糊规则浏览器用于显示各条模糊控制规则对 应的输入量和输出量的隶属度函数。通过指定 输入量,可以直接的显示所采用的控制规则, 以及通过模糊推理得到相应输出量的全过程, 以便对模糊规则进行修改和优化。 所有规则填入后,选菜单View, 选择Rules,弹 出一新界面Rule Viewer,如下图所示。

图中的黑箱表示一种映射规则,将服务质量映射 到小费。这个黑箱就是这一逻辑关系的核心部分, 它可以理解为各种不同的逻辑,例如模糊逻辑、 线性逻辑、专家系统、神经网络、微分方程、多 维表格查询或者随机选择器等。在上述问题中, 模糊逻辑被证明是最佳的。


在国外饭店就餐后一般需要付给侍者小费,这 是国外模糊系统的教材中一个非常经典的例子。 下面我们通过小费问题来说明模糊逻辑的作用。 “小费”问题的核心就是:多少小费是“合适” 的?我们先把问题简化,假定用从 0 —10 的 数字代表服务的质量(10 表示非常好,0 表 示非常差),小费应该给多少?这里还考虑到 问题的背景 —在美国平均的小费是餐费15%, 但具体多少随服务质量而变。
Matlabdl ——使用模糊控制器对水箱水位进 行控制。 假定水箱有一个进水口和一个出水口,可以通过控 制一个阀门来控制流入的水量(即水位高度),但 是流出的速度取决于出水口的半径(定值)和水箱 底部的压力(随水箱中的水位高度变化)。系统有 许多非线性特性。 要求设计的目标是一个合适的进水口阀门的控制器, 能够根据水箱水位的实时测量结果对进水阀门进行 相应控制,使水位满足特定要求(即特定输入信 号)。一般情况下,控制器以水位偏差(理想水位 和实际水位的差值)及水位变化率作为输入,输出 的控制结果是进水阀打开或关闭的速度。


在Simulink编辑窗口左边的模块浏览区可以看 到在水箱仿真系统中包括水箱子模型、阀门子 模型及 PID 控制子模型。直接在浏览区中点 击或右键点击它们,并在弹出菜单中选择 [ look under mask 】 ,可以看到这些模块实 现的细节结构,如图 所示。


这里暂时不讨论具体的系统模型的构造问题,我们可 以先在这个已经建立好的系统模型上进行修改,体验 模糊逻辑与仿真环境结合使用的优势。 对于仿真模型系统中已经建立的水箱模块、阀门模块 以及动画仿真显示模块可以直接使用,这里我们重点 讨论与模糊推理系统设计问题相关的模糊系统变量 tank (即 MATLAB 的模糊逻辑推理系统)。在 MATLAB 命令窗口中键入命令 fuzzy tank ,就可以 开始对模糊系统 tank 进行编辑了。
输出对热水阀控制策略的模糊化分及隶属度函数
其中输入变量水温与流速的偏差与输出热水阀、冷水阀 的控制方法的经验表格如表1及表2所示。
根据这两个输出控制表,可以产生九条模糊控制规则, 如下:
系统的模糊推理运算相关定义如下:
其余例子,请各位同学自行打开研究学习。
通过Maltab命令(程序)创建和 计算模糊逻辑系统
多个输入时,在Edit菜单中,选Add variable„ >input,加入新的输入input,如下图所示
选择 input(选中 为红框),在 界面右边文 字输入处键 入相应的输 入名称,例 如,温度输入 用 tmpinput, 磁能 输入用 maginput,等。




隶属度函数编辑器(Mfedit) 该编辑器提供一个友好的人机图形交互环境,用 来设计和修改模糊推理系中各语言变量对应的隶 属度函数的相关参数,如隶属度函数的形状、范 围、论域大小等,系统提供的隶属度函数有三角、 梯形、高斯形、钟形等,也可用户自行定义。 双击所选input,弹出一新界面,在左下Range处 和Display Range处,填入取只范围,例如 0至9 (代表0至90)。 在右边文字文字输入Name处,填写隶属函数的名 称,例如lt或LT(代表低温)。 在Type处选择trimf(意为:三角形隶属函数曲线, triangle member function),当然也可选其它形 状。
PID控 制模块 阀门 模型 水箱 模型 仿真动 画演示
模糊控 制模块

在Matlab中仿真,可 以看到出现一个水箱 模型的仿真动画窗口。 该动画由一个S函 数”animtank.m”实 现。从动画中,可以 观察到实际系统的水 位跟随殊荣的要求水 位信号变化。
如果对S函数的实现感兴趣,可以键入命令open animtank(或edit animtank)来查看” animtank.m”文件

为简单起见,我们直接利用系统里已经编辑好的 模糊推理系统,在它的基础上进行修改。这里我 们采用与tank . fis中输入输出变量模糊集合完 全相同的集合隶属度函数定义,只是对模糊规则 进行一些改动,来学习模糊工具箱与仿真工具的 结合运用。对于这个问题,根据经验和直觉很显 然可以得到如下的模糊控制规则: If (水位误差小)then(阀门大小不变(权重 1 ) If (水位低) then (阀门迅速打开)(权重 1 ) If (水位高) then (阀门迅速关闭)(权重 1 )


这相当于在原有模糊系统模型上减少两条模糊 规则得到的新的模糊推理系统。 改动完成后进行仿真,观察示波器模块,可以 得到系统水位变化,如图所示。
从上图的仿真控制结果曲线中可以看出上述由三 条模糊规则组成的模糊控制系统的结果并不理想, 因此可以再增加如下两条模糊控制规则: If (水位误差小且变化率为负) then (阀门缓慢 关闭)(权重 1 ) If (水位误差小且变化率为正) then (阀门缓慢 打开)(权重 1 ) 系统的输出变化曲线如下图所示。
1. Matlab模糊逻辑工具箱仿真


模糊推理系统编辑器(Fuzzy) 模糊推理系统编辑器用于设计和显示模糊推理 系统的一些基本信息,如推理系统的名称,输 入、输出变量的个数与名称,模糊推理系统的 类型、解模糊方法等。其中模糊推理系统可以 采用Mandani或Sugeuo两种类型,解模糊方法 有最大隶属度法、重心法、加权平均等。 打开模糊推理系统编辑器,在MATLAB的命令窗 (command window)内键入:fuzzy 命令,弹 出模糊推理系统编辑器界面,如下图所示。


从上图可以看出,在增加了模糊控制规则后,系 统的动态特性得到较大改善,不但具有较短的响 应时间,而且超调量也很小。可以用 Surfview tank 命令来显示模糊控制系统的输出曲面,如图 所示。
相关文档
最新文档