-
基本
FIS
编辑器
函数
fuzzy
格式
fuzzy %
弹出未
定义的基本
FIS
编辑器
fuzzy(fismat) %
使用
< br>fuzzy('tipper')
,弹出下图
FIS
p>
编辑器。
编辑
器是任意模糊推理系统的高层显示,它允许你调用各种其它的编辑器来对其操作。此界面允许你方便
地访问所有其它的编辑器,并以最灵活的方式与模糊系统进行交互。
方框图:窗口上方的方框图显示了输入、输出和它们中间的模糊规则处理器。单击任意一个变量
框,使选
中的方框成为当前变量,此时它变成红色高亮方框。双击任意一个变量,弹出隶
属度函数编辑器,双击模
糊规则编辑器,弹出规则编辑器。
<
/p>
菜单项:
FIS
编辑器的菜单棒允许你打
开相应的工具,打开并保存系统。
·
File
菜单包括:
New
mamdani FIS …
打开新
mamdani
型系统;
New Sugeno FIS
…
打开新
Sugeno
型系统;
Open from disk
…
从磁盘上打开指定的
.fis
文件系统;
Save to
disk
保存当前系统到磁盘上的一个
.fis
文件上;
Save to disk as
…
重命名方式保存当前系统到磁盘上;
Open from workspace …
从工作空间中指定的
FIS
结构变量装入一个
系统;
Save to workspace
…
保存系统到工作空间中当前命名的
FIS
结构变量中;
Save
to workspace as …
保存系统到工作空
间中指定的
FIS
结构变量中;
Close windows
关闭
GUI
;
·
Edit
菜单包括:
Add input
增加另一个输入到当前系统中;
Add output
增加另一个输出到当前系统中;
Remove variable
删除一个所选的变量;
Undo
恢复当前最近的改变;
·
View
菜单包括:
Edit MFs
…
调用隶属度函数编辑器;
Edit rules …
调用规则编辑器;
Edit
anfis …
只对单输出
Su
geno
型系统调用编辑器;
View rules …
调用规则观察器;
View
surface …
调用曲面观察器。
弹出式菜单:用五
个弹出式菜单来改变模糊蕴含过程中五个基本步骤的功能:
·
And method
:为一个定制
操作选择
min
、
prod
或
Custom
;
·
Or method
:为一个定制操
作选择
max
、
probor
(概率)或
Custom
;
·
Implication method
:为一个定制操作选择
min
、
prod
或
Custom
;此项对
Sugeno
型模糊系统不可用。
·
Aggregation method
:为一个定制操作选择
max
、
s
um
、
probor
或
Custom
。此项对
Sugeno
< br>型模糊系统不可
用。
·
Defuzzification method
:对
Mamdani
型推理,为一个定制操作选择
centroid
(面积中心法)、
b
isector
(面
积平分法)、
mo
m
(平均最大隶属度法)、
som
(最
大隶属度最小值法)、
lom
(最大隶属度最大值法)
或
Custom
。对
S
ugeno
型推理,在
wtaver
(
加权平均)或
wtsum
(加权和)之间选择。
6.1.15
隶属函数编辑器
函数
mfedit
格式
mfedit('a')
mfedit(a)
mfedit
说明
mfedit('a')
生成一
个隶属函数编辑器,他允许你检查和修改存储在文件
中
FIS
结构的所有隶属函
数。如图,
mfedit('tank')
以这种方式打开隶属函数编辑器并装入
p>
中存储的所有隶属函数。
mfedit(a)
对于
FIS
结构操作一个
MATLAB
工作空间变量
a
。
Mfedit
可单独弹出没有
装入
FIS
的隶属函数编
辑器
菜单项:在
ANFIS
编辑器
GUI
上,有一个菜单棒允许你打开相关的
GUI
工具、打开和保存系统等。
File
菜单与
FIS
编辑器上的
File
菜单功能相同。
·
p>
Edit
菜单项包括:
Add MF…
为当前语言变量增加隶属度函数;
Add custom MF…
为当前语言变量增加定制的隶属度函数;
Remove current MF
删除当前的隶属度函数;
Remove all MFS
删除当前语言变量的所有隶属度函数;
Undo
恢复当前最近的改变。
·
View
菜单项包括:
Edit FIS properties…
调用
FIS
编辑器;
< br>
Edit rules…
调用规则编辑器;
View
rules…
调用规则观察器;
View surface…
调用曲面观察器。
6.2
模糊推理结构
FIS
6.2.1
不使用数据聚类方法从数据生成
< br>FIS
结构
函数
genfis1
格式
fismat = genfis1(data)
fismat =
genfis1(data,numMFs,inmftype, outmftype)
说明
genfis1
为
anfis
训练生成一个
Sugeno
型作为初始条件的
FIS
结构(初始隶属函数)。<
/p>
genfis1(data,numMFs,inmftype, outmftype)
使用对数据的网格分割方法,从训练数据集生成一个
FIS
p>
结构。
Data
是训练数据矩阵,除最后一
列表示单一输出数据外,它的其它各列表示输入数据。
NumMFs
是一个向
量,它的坐标指定与每一输入相关的隶属函数的数量。如果你想使用每个输
入相关的相同数量的隶属函数,
那么只须使
numMFs
成为一个数就足够了。
Inmftype
是一
个字符串数组,它的每行指定与每个输入相关的
隶属函数类型。
outmftype
是一个字符串数组,它的指定与每个输出相关的隶属函数类型
例
6-19
>>data = [rand(10,1) 10*rand(10,1)-5
rand(10,1)];
>>numMFs = [3 7];
>>mfType = str2mat('pimf','trimf');
>>fismat = genfis1(data,numMFs,mfType);
>> [x,mf] = plotmf(fismat,'input',1);
>>subplot(2,1,1), plot(x,mf);
>>xlabel('input 1 (pimf)');
>>[x,mf] = plotmf(fismat,'input',2);
>>subplot(2,1,2), plot(x,mf);
>>xlabel('input 2 (trimf)');
6.2.2
使用减法聚类方法从数
椐生成
FIS
结构
函数
genfis2
格式
fismat =
genfis2(Xin,Xout,radii)
fismat =
genfis2(Xin,Xout,radii,xBounds)
fismat = genfis2(Xin,Xout,radii,xBounds,options)
说明
Xin
是一个矩阵,它的每一行
包含一个数据点的输入值;
Xout
是一个矩阵,它的每一行包
含一个数
据点的输出值;
randi
是
一个向量,它指定一个聚类中心在一个数据维上作用的范围,这里假定数据位于
一个单位
超立方体内:
xBounds
是一个
2
×
N
可选矩阵,它用于指定如何将
Xi
n
和
Xout
中的数据映射到一
个超立方体内,这里是数据的维数(行数);
options
是一个可选向量,它指定的值用于覆盖算法参数的
缺省值。
fismat = genfis2(Xin,Xout,0.5) <
/p>
这是使用此函数所需的最小变量数。这里对所有数据维指定
0.5
的作用范围。
fismat =
genfis2(Xin,Xout,[0.5 0.25 0.3])
这里假定组合
的维数是
3
。假设
Xin
有两维、
Xout
有一维,那么,
< br>0.5
和
0.25
是
Xin
数据维中每一维的作
用范围,
0.3
是
Xout
数据维的
作用范围。
fismat =
genfis2(Xin,Xout,0.5,[-10 -5 0; 10 5 20])
< br>这里指定了如何将
Xin
和
Xo
ut
中的数据规范化为
[0 1]
区间
中的值来进行处理。假设
Xin
有两维、
Xout
有
一维,那么
Xin
第一列中的数据是从
[-10 +10]
比例
变换后的值,
Xin
第二列中的数据是从
[-5 +5]
比例变换
后的值,
X
out
中的数据是从
[0
20]
比例变换后的值。
6.2.3
生成一个
FIS
输出曲面
函数
gensurf
格式
gensurf(fis) %
使用前两个输入和第一个输出来生成给定模糊推理系统
(fis)
< br>的输出曲面
gensurf(fis,inputs,output) %
使用分别由向量
p>
input
和标量
output
给定的输入(一个或两个)和输出(只
允许一个)来生成一个图形。
gensurf(fis,inputs,output,grids) %
指定<
/p>
X
(第一、水平)和
Y
< br>(第二、垂直)方向的网格数。如果是二
元向量,
X
p>
和
Y
方向上的网格可以独立设置。
gensurf(fis,inputs,output,grids,refinput) %
用于多于两个的输入,
refinput
向量的
长度与输入相同:
·
将对应于要显示
的输入的
refinput
项,设置为
NaN;
·
对其它输入的固定值设置为双精度实标量。
[x,y,z]=gensurf(…)
%
返回定义输出曲面的变量并且删除自动绘图。
例
6-21
>>a =
readfis('tipper');
>>gensurf(a)
6.2.4
将
mamdan
型
FIS
转换为
Sug
eno FIS
函数
mam2sug
格式
sug_fis=mam2sug(mam_fis)
说明
该函数将一个
< br>mamdani
型
FIS
结构(
不必是单输出)
mam_fis
转化为一个
sugeno
型结构
sug_fis
。返
回的
sugeno
型系统具有常
值输出隶属度函数。这些常值由原来
mamdani
型系统的后
件的隶属度函数的面
积中心法来确定。前件仍保持不变。
6.2.5
完成模糊推理计算
函数
evalfis
格式
output=
evalfis(input,fismat)
output=
evalfis(input,fismat, numPts)
[output, IRR, ORR, ARR]= evalfis(input,fismat)
[output, IRR, ORR, ARR]=
evalfis(input,fismat, numPts)
说明
input
:指定输入值的一个
数或一个矩阵,如果输入是一个
M×
N
矩阵,其中
N
是输入变量数,那么
ev
alfis
使用
input
的每一行
作为一个输入向量,并且为变量
output
返回
M×
L
矩阵,该矩阵每一行是一个向
量并且
L
是输出变量数;
<
/p>
fismat
:要计算的一个
FIS
p>
结构;
numPts
:一个可选变量,它表示在输入或输出范围内的采样点数,在这些点上计算隶属函数,如果
< br>
不使
用此变量,就使用
101
点的缺省值。
Evalfis
的值域如下:
Output
:大小为
ML
< br>的输出矩阵,这里
M
表示前面指定的输入值的数量,
p>
L
表示
FIS
的
输出变量数。
evalfis
的可选
值域变量只有当
input
是一个行向量时才计算这些可选值域
变量是:
IRR
:通过隶属函数计算
的输入变量的结果,这是一个大小为
numRulesN
的矩阵
,这里
numRules
是规则
条数,
N
是输入变量数。
< br>ORR
:通过隶属函数计算的输出变量的结果,这是一个大小为
< br>numPtsnumRulesL
的矩阵,这里
numR
ules
是规则条数,
L
是输出变量数
,此矩阵的第一组
numRules
列,对应于第一个输出,第
二组
numRules
对应
于第二个输出,依次类推。
p>
ARR
:对每个输出,在输出值域中,
nu
mPts
处采样合成值的
numPtsL
矩阵,当只有一个值域变量调用时,
该函数使用由结构
fis
mat
指定的模糊推理系统,由标量或矩阵
inout
指定的输入值计算输出向量
output
。
p>