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