智能控制技术-第四课模糊控制
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
为简单起见,我们直接利用系统里已经编辑好的模糊推理 系统,在它的基础上进行修改。这里我们采用与tank . fis中输入输出变量模糊集合完全相同的集合隶属度函 数定义,只是对模糊规则进行一些改动,来学习模糊工 具箱与仿真工具的结合运用。对于这个问题,根据经验 和直觉很显然可以得到如下的模糊控制规则:
从上图可以看出,在增加了模糊控制规则后,系统的动态 特性得到较大改善,不但具有较短的响应时间,而且超 调量也很小。可以用 Surfview tank 命令来显示模糊 控制系统的输出曲面,如图所示。
在这个例子中,还可以用传统的 PID 控制方法与模糊逻辑推理 控制进行比较。在水箱仿真环境主界面中将控制方法选择开关 中间的 const 模块的值由由-1 改为 1 ,这时系统将用传统的 PID 控制方法进行控制,如图所示。
模糊逻辑工具箱命令函数应用
模糊控制还可以用命令行方式来实现模糊逻辑推理。运用命令行 方式工作需要掌握相应的一些工具函数的使用,下面就详细介 绍这些工具函数的使用。
模糊逻辑工具基本函数分类表
模糊逻辑工具基本函数包括图形工具类函数、隶属度函数类函数、 FIS 结构的相关类操作函数、 Sugeno 型模糊系统应用函数、 仿真模块库相关操作函数以及演示范例程序函数等。
1.
Matlab模糊逻辑工具箱仿真
模糊推理系统编辑器(Fuzzy) 模糊推理系统编辑器用于设计和显示模糊推理系统的一些基本信 息,如推理系统的名称,输入、输出变量的个数与名称,模糊 推理系统的类型、解模糊方法等。其中模糊推理系统可以采用 Mandani或Sugeuo两种类型,解模糊方法有最大隶属度法、重 心法、加权平均等。 打开模糊推理系统编辑器,在MATLAB的命令窗(command window) 内键入:fuzzy 命令,弹出模糊推理系统编辑器界面,如下图 所示。
热水阀子系统
水量示 波器
温度示 波器 冷水阀子系统
这个仿真模型的输出是用示波器来表示的,如图所示。通过示波 器上的图形我们可以清楚地看到温度和水流量跟踪目标要求的 性能。
水温示波器
水流示波器
水温偏差区间模糊划分及隶属度函数
水流量偏差区间模糊划分及隶属度函数
输出对冷水阀控制策略的wenku.baidu.com糊化分及隶属度函数
输出对热水阀控制策略的模糊化分及隶属度函数
其中输入变量水温与流速的偏差与输出热水阀、冷水阀的控制 方法的经验表格如表1及表2所示。
根据这两个输出控制表,可以产生九条模糊控制规则,如 下:
系统的模糊推理运算相关定义如下:
其余例子,请各位同学自行打开研究学习。
如何将viewsurf转化为查询表:思路
If (水位误差小)then(阀门大小不变(权重 1 ) If (水位低) then (阀门迅速打开)(权重 1 ) If (水位高) then (阀门迅速关闭)(权重 1 )
这相当于在原有模糊系统模型上减少两条模糊规则得到的新的模 糊推理系统。 改动完成后进行仿真,观察示波器模块,可以得到系统水位变化, 如图所示。
1 .图形工具类函数
2 .隶属度函数类函数
3 . FIS 结构的相关类操作函数
4 .仿真模块库相关操作函数
5 .演示范例程序函数
MATLAB 工具箱内置隶属度函数应用例解
1. 根据系统实际情况,选择e,de和u的论域
e range : [-1 1]
de range: [-0.1 0.1] u range: [0 2]
2. e,de和u语言变量的选取
e 8个:NB,NM,NS,NZ,PZ,PS,PM,PB de 7个:NB,NM,NS,Z,PS,PM,PB U 7个:NB,NM,NS,Z,PS,PM,PB
在Simulink编辑窗口左边的模块浏览区可以看到在水箱仿真系统 中包括水箱子模型、阀门子模型及 PID 控制子模型。直接在 浏览区中点击或右键点击它们,并在弹出菜单中选择[ look under mask 】 ,可以看到这些模块实现的细节结构,如图 所 示。
这里暂时不讨论具体的系统模型的构造问题,我们可以先在 这个已经建立好的系统模型上进行修改,体验模糊逻辑与仿 真环境结合使用的优势。 对于仿真模型系统中已经建立的水箱模块、阀门模块以及动 画仿真显示模块可以直接使用,这里我们重点讨论与模糊推 理系统设计问题相关的模糊系统变量 tank (即 MATLAB 的 模糊逻辑推理系统)。在 MATLAB 命令窗口中键入命令 fuzzy tank ,就可以开始对模糊系统 tank 进行编辑了。
其他例子
模型Shower.mdl―淋浴温度调节模糊控制系统仿真; 模型slcp.mdl―单级小车倒摆模糊控制系统仿真; 模型 slcp1.mdl―变长度倒摆小车模糊控制系统仿真; 模型 slcpp1.mdl—定长、变长二倒摆模糊控制系统仿真; 模型slbb.mdl―球棒模糊控制系统仿真; 模型sltbu.mdl―卡车智能模糊控制倒车系统仿真; 模型sltank2.mdl ― 用子系统封装的水箱控制仿真。
多个输入时,在Edit菜单中,选Add variable… ->input,加 入新的输入input,如下图所示
选择input(选 中为红框),在 界面右边文字 输入处键入相 应的输入名称, 例如,温度输 入用 tmpinput, 磁能 输入用 maginput,等。
隶属度函数编辑器(Mfedit) 该编辑器提供一个友好的人机图形交互环境,用来设计和 修改模糊推理系中各语言变量对应的隶属度函数的相关 参数,如隶属度函数的形状、范围、论域大小等,系统 提供的隶属度函数有三角、梯形、高斯形、钟形等,也 可用户自行定义。 双击所选input,弹出一新界面,在左下Range处和 Display Range处,填入取值范围,例如 0至9。
从上图的仿真控制结果曲线中可以看出上述由三条模糊规 则组成的模糊控制系统的结果并不理想,因此可以再增 加如下两条模糊控制规则: If (水位误差小且变化率为正) then (阀门缓慢关闭) (权重 1 ) If (水位误差小且变化率为负) then (阀门缓慢打开) (权重 1 ) 系统的输出变化曲线如下图所示。
模型sltank.mdl ——使用模糊控制器对水箱水位进行控制。 假定水箱有一个进水口和一个出水口,可以通过控制一个阀 门来控制流入的水量(即水位高度),但是流出的速度取 决于出水口的半径(定值)和水箱底部的压力(随水箱中 的水位高度变化)。系统有许多非线性特性。 要求设计的目标是一个合适的进水口阀门的控制器,能够根 据水箱水位的实时测量结果对进水阀门进行相应控制,使 水位满足特定要求(即特定输入信号)。一般情况下,控 制器以水位偏差(理想水位和实际水位的差值)及水位变 化率作为输入,输出的控制结果是进水阀打开或关闭的速 度。
PID控 制模块 阀门 模型 水箱 模型 仿真动 画演示
模糊控 制模块
在Matlab中仿真,可以看到 出现一个水箱模型的仿真动 画窗口。该动画由一个S函 数”animtank.m”实现。从 动画中,可以观察到实际系 统的水位跟随殊荣的要求水 位信号变化。
如果对S函数的实现感兴趣,可以键入命令open animtank (或edit animtank)来查看” animtank.m”文件
第二章 模糊逻辑控制
主讲人:徐鸣,沈希
• 模糊控制在MATLAB中的实现
用MATLAB的模糊逻辑工具箱(Fuzzy toolbox)实现
Matlab4.2以后的版本中推出的模糊工具箱(Fuzzy Toolbox),为 仿真模糊控制系统提供了很大的方便。 在Simulink环境下对PID控制系统进行建模是非常方便的,而模 糊控制系统与PID控制系统的结构基本相同,仅仅是控制器不 同。 对模糊控制系统的建模关键是对模糊控制器的建模。Matlab软件 提供了一个模糊推理系统(FIS)编辑器,只要在Matlab命令 窗口键入Fuzzy就可进入模糊控制器编辑环境。
在右边文字文字输入Name处,填写隶属函数的名称,例如 lt或LT(代表低温)。
在Type处选择trimf(意为:三角形隶属函数曲线, triangle member function),当然也可选其它形状。
在Params(参数)处,选择三角形涵盖的区间,填写三个值,分 别为三角形底边的左端点、中点和右端点在横坐标上的值。这 些值由设计者确定。
学习 MATLAB 仿真工具的一个快速有效的方法就是学习示 例模型,通过看懂这些模型和模块的功能以及搭建过程, 可以很快熟悉和掌握如何使用 MATLAB 仿真工具来设计 和搭建自己独特的模型。
下面以模型Shower.mdl的结构作一个介绍,方便读者更好 地理解和学习这个例子。
模型Shower.mdl是一个淋浴温度及水量调节的模糊控制系 统的仿真,该模糊控制器的输入变量分别是水流量和水 温,输出变量分别是对热水阀和冷水阀的控制方式。该 问题是一个典型的经验查表法控制示例,是 Mamdani型 系统,其模糊控制矩阵存为磁盘文件shower.fis。
例:假定被控对象的传递函数为:
4.228 G2 s 0.5 s 2 1.64s 8.456
设计一模糊PD控制器使其超调量不超过1%,输出的上升时间<0.3。
步骤
1. 确定e,de和u的论域 2. e,de和u语言变量的选取 3. 规则的制定 4. 推理方法的确定
利用MATLAB的Toolbox工具
选Edit菜单,选择Rules, 弹出一新界面Rule Editor. 在 底部的选择框内,选择相应的 IF…AND…THEN 规则, 点击Add rule 键,上部框内将显示相应的规则。本 例中用9条左右的规则,依次加入。如下图所示:
模糊逻辑工具箱仿真结果 模糊规则浏览器用于显示各条模糊控制规则对应的输入量和输出 量的隶属度函数。通过指定输入量,可以直接的显示所采用的 控制规则,以及通过模糊推理得到相应输出量的全过程,以便 对模糊规则进行修改和优化。 所有规则填入后,选菜单View, 选择Rules,弹出一新界面Rule Viewer,如下图所示。
用类似的方法设置输出output的参数。比如:共有9个规则,所 以相应地有9个输出隶属函数。默认3个隶属函数,剩下6个由设 计者加入。点击Edit菜单,选 Add Custom MS…->继续填入相 应参数即可。
模糊推理规则编辑器Ruleedit 通过隶属度函数编辑器来设计和修改“IF...THEN”形式 的模糊控制规则。由该编辑器进行模糊控制规则的设 计非常方便,它将输入量各语言变量自动匹配,而设 计者只要通过交互式的图形环境选择相应的输出语言 变量,这大大简化了规则的设计和修改。另外,还可 为每条规则选择权重,以便进行模糊规则的优化。
de
Z NS NM NB
4. 隐含和推理方法的制定
隐含采用 ‘mamdani’方法: ‘max-min‘
推理方法, 即 ‘min‘ 方法
去模糊方法:面积中心法。 选择隶属函数的形式:三角型
-1
1
-0.1
0.1
0
2
也可以用viewsurf菜单命令看模糊控制器的输出量
Scope 2
Matlab模糊控制仿真演示例子
上图表示当温度为45度、磁能为45瓦时,输出干度为约70个单 位。左右拉动界面中的两支红线,拉到欲选的近似值,右边图 顶显示相应的干度结果。 上图中选菜单View, 选择Surface,弹出一新界面Surface Viewer, 弹出该课题结果的三维图。如下图所示。
注意将鼠标箭头放置图内,移动鼠标可得到不同角度的 视图,如下图所示。
3.模糊规则确定
e U
PB PM PS NB PL PL PL PL PL PL PL NM PM PM PM PM PM PL PL NS NM NM NS PS PS PS PL NZ NM NM NS Z PS PS PM PZ NM NM NS Z PS PM PM PS NL NS NS NS PS PM PM PM NL NS NM NM NM NM NM PB NB NB NB NB NB NB NB