第 6 章 Matlab 在模糊控制中的应用
Matlab(是“ Matrix Laboratory ”的缩写)是由美国 Mathworks 公司于 1984 年正式
推出的一套高性能的科学计算软件。针对模糊逻辑尤其是模糊控制的迅速推广应用,
MathWork 公司在其 MATLAB 版中添加了 Fuzzy Logic 工具箱。该工具箱由长期从事模
糊逻辑和模糊控制研究与开发工作的有关专家和技术人员编制。
MATLAB Fuzzy Logic
工具箱以其功能强大和方便易用的特点得到了用户的广泛欢迎。模糊逻辑的创始人
Zadeh 教授称赞该工具箱“在各方面都给人以深刻的印象,使模糊逻辑成为智能系统的
概念与设计的有效工具” 。
在本章中,以 Matlab6.5 为开发环境,基于模糊控制工具箱 (Fuzzy Logic Toolbox),
通过一些简单直观的例子,对模糊控制系统进行分析、设计与研究,并通过对部分例子
的详细说明,使读者能够初步掌握模糊逻辑工具箱的使用。
6.1 模糊逻辑工具箱函数
一、模糊逻辑工具箱函数简介
Matlab 的模糊逻辑工具箱函数为模糊控制系统的分析与设计提供了许多工具箱函
数,它们可按主题分为如下几大类: GUI(图形用户界面)工具、隶属度函数、 FIS(模
糊推理系统)数据结构管理、先进技术、 Simulink 仿真模块、模糊系统演示程序、其它
函数。以函数名称与对应的功能格式分别用表 6-1~6-7 表示。
表 6-1 GUI (图形用户界面)工具
功 能
打开 ANFIS 编辑器的 GUI
调用基本的 FIS 编辑器
隶属度函数编辑器
函 数
ruleedit
ruleview
surfview
表 6-2 隶属度函数
功 能
规则编辑器和解析器
规则观察器和模糊推理方框图
输出曲面观察器
功 能
函 数
功 能
表 6-3 先进技术
功 能
Sugeno 型 FIS 的训练程序
模糊 C 均值聚类
不使用数据聚类的方法从数据
中生成 FIS 结构
函 数
genfis2
subclust
1
功 能
使用减法聚类的方法从数据中生
成 FIS 结构
用减法聚类的方法寻找聚类中心
函 数
anfisedit
fuzzy
mfedit
函 数
dsigmf
gaussmf
gbellmf
pimf
函 数
anfis
fcm
genfis1
由两个 Sigmoid 型隶属度函
数之差构成的隶属度函数
gauss2mf
联合高斯型隶属度函数
高斯型隶属度函数
广义钟型隶属度函数
∏型隶属度函数
psigmf
sigmf
smf
trapmf
trimf
zmf
由两个 Sigmoid 型隶属度函数
的积构成的隶属度函数
Sigmoid 型隶属度函数
S 型隶属度函数
梯型隶属度函数
三角形型隶属度函数
Z 型隶属度函数
表 6-4 FIS 数据结构管理
函 数
addmf
addrule
addvar
defuzz
evalfis
evalmf
gensurf
getfis
mf2mf
功 能
在 FIS 中添加隶属度函数
在 FIS 中添加规则
在 FIS 中添加变量
对隶属度函数进行反模糊化
完成模糊推理计算
通用隶属度函数的计算
生成 FIS 输出曲面
获取模糊系统的特性
在两个隶属度函数之间进行
参数转换
newfis1
建立新的 FIS
函 数
parsrule
plotfis
piotmf
readfis
rmmf
revar
setfis
showfis
shoerule
writefis
功 能
模糊规则解析
绘图表示 FIS
绘制给定变量的所有隶属度函数
从磁盘中装入 FIS
从 FIS 中删除某一变量的某一隶
属度函数
从 FIS 中删除某一变量
设置模糊系统的属性
以分行的形式显示 FIS 结构的所
有属性
显示 FIS 的规则
将 FIS 保存到磁盘中
表 6-5 Simulink 仿真模块
函 数
功 能
函 数
功 能
fuzblock
Simulink 模糊逻辑控制器库
sffis
用于 Simulink 的模糊推理 S-函数
函 数
convertfis
findcluster
fuzarith
函 数
defuzzdm
fcdemo
gasdemo
juggler
invkine
irsfcm
表 6-6 其它函数
功 能
FIS 结构的版本变换
模糊 C 均值和减法聚类交换
函 数
mam2sug
功 能
将 Mamdanni 型的 FIS 变换成
Sugeno 型的 FIS
GUI
完成模糊算术运算
fuzdemos
模糊逻辑工具箱演示程序列表
表 6-7 模糊系统演示程序
功 能
去模糊方法
FCM 聚类方法演示(二维)
使用减法聚类的 ANFIS 演示
魔球演示
机械臂的倒置
FCM 聚类演示(四维)
函 数
noiedm
slbb
slcp
sltank
sltankrule
sltbu
功 能
自适应噪声消除
棒球控制
倒立摆控制
水位控制
带观测器的水位控制
卡车倒车控制
下面主要介绍 GUI(图形用户界面)工具、隶属度函数、 FIS 数据结构管理这三类
模糊逻辑工具箱的一些函数。
二、有关 GUI (图形用户界面)的工具箱函数
1. anfisedit
功能:打开 ANFIS 编辑器的 GUI。
格式: anfisedit(,a?)
anfisedit(a)
anfisedit
2
界面: anfisedit 函数打开 ANFIS 编辑器的 GUI 如图 6-1 所示。
说明:利用 anfisedit 函数打开 ANFIS 编辑器的 GUI,从中可装入数据集合并训
练 ANFIS 。利用 anfisedit('a')可从磁盘中装入名为 a.fis 的 FIS 结构文件,并打开 ANFIS
编辑器的 GUI。利用 anfisedit(a)可按同样方式打开 FIS 结构变量 a(只是此时的 a 保存
在工作空间中)。
菜单项:
(1)File 菜单下各子菜单
NEW FIS…:建立新的 FIS 系统,
可选择为 Mamdani 型的或者是 Sugeno
型的 FIS 系统。此时默认的文件名为
Untitled 。
Import from workspace …:从
工作空间中装入制定的 FIS 结构变量。
Import from disk …:从磁盘中
将指定的 .fis 文件装入系统。
图 6-1 ANFIS 编辑器的 GUI
Export to workspace …:将系统保存到工作空间指定的 FIS 结构变量中。
Export to disk …:将当前系统以自己指定的命名保存到磁盘中。
Print:打印指定的系统内容。
Close:关闭 GUI 窗口。
(2)Edit 菜单项下各子菜单
Undo:撤销最近的操作。
FIS properties …:打开 FIS 编辑器。
Membership functions …:打开隶属度函数编辑器。
Rules …:打开规则编辑器。
(3)View 菜单下各子菜单
Rules …:打开规则编辑器。
Surface …:打开曲面观测器。
2. fuzzy
功能:调用基本的 FIS 编辑器。
格式: fuzzy
fuzzy(fismat)
界面: fuzzy 函数打开 FIS 编辑器的 GUI 如图 6-2 所示。
3
说明:FIS 编辑器可让用户方
便的创建或修改 FIS(模糊推理系
统)的高级特性,如输入、输出
变量的个数、反模糊化方法等。
FIS 编辑器是 FIS 的高级显
示,它允许用户调用各种其他的
编辑器来进行 FIS 操作,这种接
口为访问更高级的编辑器提供了
方便。FIS 编辑器主要包括如下几
大部分:
图表:包括输入、输出和中
心模糊规则处理器三大部分。点
图 6-2 基本的 FIS 编辑器
击输入、输出变量框时所选框为当前变量,当前变量所对应的框为一个红色加亮的框,
此时可在相应的 Name 文本编辑栏中对变量进行命名或对变两名进行修改。还可以通过
Edit 菜单下的 Add Variable …来增加输入或输出变量,对于所选得当前变量,可以用键
盘上的 Delete 键直接删除,也可以用 Edit 菜单下的 Remove Selected Variable进行删除。
双击其中的 1 个变量,可进入隶属度函数编辑器。双击模糊规则处理器(输入、输出变
量框之间的那个方框)可进入规则编辑器。当规则框中没有规则时,输入、输出变量框
与规则处理器框之间相连的线为虚线,有规则后变为实线。
推理方法下拉式菜单由 5 个下拉式菜单可用于改变模糊推理过程的 5 种基本推理方
法:
(1) And method(与方法):可为其选择 min(最小)、prod(乘积)或 Custom(自定义)
运算。
(2) Or method(或方法):可以选择 max(最大)、probor(概率方法)或 Custom运算。
(3)Implication( 蕴含):可以选择 min、prod 或 Custom 运算 ,此方法不适应于 Sugeno
型的模糊推理。
(4)Aggregation(集结):可以选择 max、sum、probor 或 Custom 运算 ,此方法不适应
于 Sugeno型的模糊推理。
(5)Defuzzication(反模糊化):对 Mamdani 型模糊推理,可以选择 centroid(区域重
心法)、bisector(区域等分法)、mom(极大平均法)、som(极大最小法)、lom(极大最大
法)或 Custom;对 Sugeno型的模糊推理,可以选择 wtaver(加权平均)或 stsum(加权求
和)。
菜单项:
(1) File 菜单下的子菜单:与 ANFIS 编辑器中 File 菜单相同 .
(2) Edit 菜单下的子菜单:
4
Undo:撤销最近的操作。
Add Input Variable:在当前系统中增加 1 个输入变量。
Add Output Variable:在当前系统中增加 1 个输出变量。
Remove Selected Variable:删除选中的变量。
Membership functions …:打开隶属度函数编辑器。
Rules …:打开规则编辑器。
3. mfedit
功能:隶属度函数编辑器。
格式: mfedit
mfedit('a')
mfedit(a)
界面: mfedit 函数打开 MF 编辑器的 GUI 如图 6-3 所示。
说明: mfedit 可用于打开隶
属度函数编辑器; mfedit(,a?)可打
开隶属度函数编辑器,其中包含
文件 a.fis的隶属度函数 ,通过编辑
器可对其进行修改;mfedit(a)可打
a 中的
开保存在工作空间变量
FIS 结构。对于每个隶属度函数,
我们可修改其名称、类型及其参
数。在隶属度函数编辑器中有 11
种内部的隶属度函数可供选择,
当然也可以建立用户自定义的隶
属度函数。隶属度函数编辑器主
要包括以下内容:
图 6-3 隶属度函数编辑器
图表:在窗口左上角的 FIS Variables标题下选择变量图标,此时在图形区域显示出
相应的隶属度函数,点击图形区域中的曲线可选择隶属度函数。
隶属度函数种类下拉式菜单: 右下角组合框中 Type 标签的右面有一个下拉式菜单,
其中有 11 种内部的隶属度函数可供选择。系统也提供了安装用户自定义隶属度函数的
选项。
菜单项:
(1)File 菜单下的子菜单:与 ANFIS 编辑器中 File 菜单相同。
(2)Edit 菜单下的子菜单:
Undo:撤销最近的操作。
Add Mfs …:在当前变量中添加隶属度函数。
5
Add Custom Mfs …:在当前变量中添加自定义的隶属度函数。
Remove Selected Mf:删除选中的隶属度函数。
Remove All Mfs: 删除当前变量的所有隶属度函数。
FIS Prolperties …:打开 FIS 编辑器。
Rules …:打开规则编辑器。
(3)View 菜单下的子菜单:与 ANFIS 编辑器中的 View 菜单项相同。
4. ruleedit
功能:规则编辑器和解析器。
格式: ruleedit(,a?)
ruleedit(a)
界面: ruleedit 函数打开规则编辑器的 GUI 如图 6-4 所示。
图 6-4 规则编辑器和解析器
说明:利用 ruleedit(,a?)可打开规则编辑器, 从中可以查看或修改文件 a.fis 所对应的
FIS 结构中的规则。 Ruleedit(a)格式可用来打开在工作空间中已存在的名为 a 的 FIS
结构所对应的规则编辑器。
利用规则编辑器建立规则,首先应定义 FIS 使用的所有输入和输出变量,然后利用
输入和输出变量的列表框和复选框进行选择,最后选择相应的联结方式及权值。
菜单项:
(1) File 菜单下的子菜单与 ANFIS 编辑器中 File 菜单相同。
(2) Edit 菜单下的子菜单
6
Undo: 撤销最近的操作。
FIS Properties …: 打开 FIS 编辑器。
Membership functions …: 打开隶属度函数编辑器。
(3) View 菜单下的子菜单与 ANFIS 编辑器中的 View 菜单项相同。
(4) Options 菜单下的子菜单
Language: 可选择不同的语言,有 English(英语)、Deutsch(德语)和 Francais
(法语) 3 种。
Format: 格式选择:
Verbose(详细):使用单词 “if ”、“then ”、“and”或“or ”等建立句子表达。例如,规
则“if A and B then C ”。
Symbolic(符号):利用逻辑推理符号表达。例如下面的规则可表达为: “A&B
=>C”。
Indexed(编号):用编号和模糊推理框图。
格式: ruleview(,a?)
ruleview(a)
界面: ruleview 函数打开规则观测器的 GUI 如图 6-5 所示。
说明: 利用 ruleview(,a?)可打开文件 a.fis 规则善的规则观测器,从中可对 a.fis 文
件的 FIS 结构画出模糊推理框图, 通常可显示整个推理框图, 这时改变各变量的输入值,
ruleview(a)用于打开工作空
可以立即得到系统重新调整后的情况,并计算出新的输出。
间中已存在的变量 a 规则观测器。
图 6-5 规则观测器和模糊推理框图
7
菜单项:
(1) File 菜单下的子菜单与 ANFIS 编辑器中 File 菜单相同。
(2) Edit 菜单下的子菜单
Undo:撤销最近的操作。
FIS Properties …:打开 FIS 编辑器。
Membership functions …:打开隶属度函数编辑器。
Rules …:打开规则编辑器。
(3) View 菜单下的子菜单
Surfview …:打开曲面观测器。
6. srufview
功能:输出曲面观测器。
格式: surfview(,a?)
界面: surfview 函数打开曲面观测器的 GUI 如图 6-6 所示。
说明:利用 surfview(,a?)
可打开输出曲面观测器,从中可查
看保存在文件 a.fis 中的单输入或双
输入 FIS 结构的输出曲面。由于它
不会改变推理系统及相应的 FIS 结
构。因此它是一个只读编辑器。利
用 X、Y、Z 轴对应的 3 个下拉式
菜单,可以选择输入、输出坐标轴
的变量。选择 Evaluate 按钮可完成
计算并绘制出输出曲面。
(1) File 菜 单 下 的 子 菜 单 与
ANFIS 编辑器中 File 菜单相同。
(2) Edit 菜单下的子菜单
Undo: 撤销最近的操作。
图 6-6 输出曲面观测器
FIS Properties …:打开 FIS 编辑器。
Membership functions …:打开隶属度函数编辑器。
Rules …:打开规则编辑器。
(3) View 菜单下的子菜单
Ruleview …:打开规则观测器。
(4) Options 菜单下的子菜单
Plot:它下面有 8 种绘图格式可供选择。
Color Map:用于选择不同的颜色方案。
8