matlab画图模糊,[转载]matlab中模糊工具箱的使用
用 Matlab 中的 Fuzzy 工具箱做一個(gè)簡(jiǎn)單的模糊控制,流程如下:
1、創(chuàng)建一個(gè) FIS (Fuzzy Inference System ) 對(duì)象,
a =
newfis(fisName,fisType,andMethod,orMethod,impMethod,?aggMethod,defuzzMethod)
一般只用提供第一個(gè)參數(shù)即可,后面均用默認(rèn)值。
2、增加模糊語(yǔ)言變量
a = addvar(a,'varType','varName',varBounds)
模糊變量有兩類:input 和 output。在每增加模糊變量,都會(huì)按順序分配一個(gè) index,后面要通過該 index
來使用該變量。
3、增加模糊語(yǔ)言名稱,即模糊集合。
a = addmf(a,'varType',varIndex,'mfName','mfType',mfParams)
每個(gè)模糊語(yǔ)言名稱從屬于一個(gè)模糊語(yǔ)言。Fuzzy
工具箱中沒有找到離散模糊集合的隸屬度表示方法,暫且用插值后的連續(xù)函數(shù)代替。
參數(shù) mfType 即隸屬度函數(shù)(Membership Functions),它可以是
Gaussmf、trimf、trapmf等,也可以是自定義的函數(shù)。
每一個(gè)語(yǔ)言名稱也會(huì)有一個(gè) index,按加入的先后順序得到,從 1 開始。
4、增加控制規(guī)則,即模糊推理的規(guī)則。
a = addrule(a,ruleList)
其中 ruleList 是一個(gè)矩陣,每一行為一條規(guī)則,他們之間是 ALSO 的關(guān)系。
假定該 FIS 有 N 個(gè)輸入和 M 個(gè)輸出,則每行有 N+M+2 個(gè)元素,前 N 個(gè)數(shù)分別表示 N
個(gè)輸入變量的某一個(gè)語(yǔ)言名稱的 index,沒有的話用 0 表示,后面的 M
個(gè)數(shù)也類似,最后兩個(gè)分別表示該條規(guī)則的權(quán)重和個(gè)條件的關(guān)系,1 表示 AND,2 表示 OR。
例如,當(dāng)“輸入1” 為“名稱1” 和 “輸入2” 為“名稱3” 時(shí),輸出為?“ 輸出1”
的“狀態(tài)2”,則寫為:
[1 3 2 1 1]
5、給定輸入,得到輸出,即進(jìn)行模糊推理。
output = evalfis(input,fismat)
其中 fismat 為前面建立的那個(gè) FIS 對(duì)象。
一個(gè)完整的例子如下:
clear all;
a = newfis('myfis');
a = addvar(a,'input','E',[0 7]);
a = addmf(a,'input',1,'small','trimf',[0 1 4.333]);
a = addmf(a,'input',1,'big','trimf',[1.6667 6 7]);
a = addvar(a,'output','U',[0 7]);
a = addmf(a,'output',1,'small','trimf',[0 1 4.333]);
a = addmf(a,'output',1,'big','trimf',[1.6667 6 7]);
rulelist = [1 1 1 1;
2 2 1 1];
a = addrule(a,rulelist);
u = evalfis(4,a)
其結(jié)果為:
u = 4.221
總結(jié)
以上是生活随笔為你收集整理的matlab画图模糊,[转载]matlab中模糊工具箱的使用的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 试验设计与matlab数据分析 下载,试
- 下一篇: matlab 滤波_MATLAB之简单卡