當前位置:編程學習大全網 - 編程語言 - 模糊數學算法軟件

模糊數學算法軟件

matlab裏面沒有模糊軟件包嗎? /products/fuzzylogic/

用 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

  • 上一篇:ios 中用zbar怎樣自定義界面
  • 下一篇:2014年2月貴州省貴陽市白雲區人口計生局招聘編制外人員信息
  • copyright 2024編程學習大全網