prod和probor在matlab,基本FIS编辑器(MATLAB模糊逻辑工具箱函数)
2021年2月10日發(作者:產生)
基本
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<
p>
或
Custom
;
·
Or method
:為一個定制操
作選擇
max
、
probor
(概率)或
Custom
;
·
Implication method
:為一個定制操作選擇
min
、
prod
或
Custom
;此項對
Sugeno
型模糊系統不可用。
·
Aggregation method
:為一個定制操作選擇
max
、
s
um
、
probor
或
Custom
。此項對
Sugeno
<
br>型模糊系統不可
用。
·
Defuzzification method<
p>
:對
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
結構的所有隸屬函
數。如圖,<
p>
mfedit('tank')
以這種方式打開隸屬函數編輯器并裝入
p>
中存儲的所有隸屬函數。
mfedit(a)
對于
FIS
結構操作一個
MATLAB
工作空間變量
a
。
Mfedit
可單獨彈出沒有
裝入
FIS
的隸屬函數編
輯器
菜單項:在
ANFIS
編輯器
GUI
上,有一個菜單棒允許你打開相關的<
p>
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
是一個可選向量,它指定的值用于覆蓋算法參數的
缺省值。<
p>
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
是<
p>
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<
p>
給定的輸入(一個或兩個)和輸出(只
允許一個)來生成一個圖形。
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>
總結
以上是生活随笔為你收集整理的prod和probor在matlab,基本FIS编辑器(MATLAB模糊逻辑工具箱函数)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php如何连接wsdl,PHP如何调用w
- 下一篇: 快速广义的形态分量分析 matlab,独