模糊邏輯工具箱在Simulink中…

一條堅忍的魚發表於2016-05-23

下面用一個簡單的例子作介紹:

(本例不是特別針對實現什麼功能,只是為了介紹方便)

第一部分 建立一個模糊邏輯(.fis檔案)

第一步:開啟模糊推理系統編輯器

步驟:

在Commond Window 鍵入fuzzy

回車

[轉載]模糊邏輯工具箱在Simulink中的使用
開啟如下視窗,既模糊推理系統編輯器
[轉載]模糊邏輯工具箱在Simulink中的使用

第二步:使用模糊推理系統編輯器

本例用到兩個輸入,兩個輸出,但預設是一個輸人,一個輸出

步驟:

1、新增一個輸入 

[轉載]模糊邏輯工具箱在Simulink中的使用
 新增一個輸出
[轉載]模糊邏輯工具箱在Simulink中的使用
得如下圖

[轉載]模糊邏輯工具箱在Simulink中的使用
2、選擇Input、output(選中為紅框),在Name框裡修改各輸入的名稱

並將And method 改為prod,將Or method 改為 probor

[轉載]模糊邏輯工具箱在Simulink中的使用
提示:在命名時’_’在顯示時為下標,可從上圖看出。

第三步:使用隸屬函式編輯器

該編輯器提供一個友好的人機圖形互動環境,用來設計和修改模糊推理系中各語言變數對應的隸屬度函式的相關引數,如隸屬度函式的形狀、範圍、論域大小等,系統提供的隸屬度函式有三角、梯形、高斯形、鐘形等,也可使用者自行定義。

步驟:

1、 雙擊任何一個輸入量(In_xIn_y)或輸出量開啟隸屬度函式編輯器。

[轉載]模糊邏輯工具箱在Simulink中的使用
2、在左下處RangeDisplay Range處新增取值範圍,本例中In_xIn_y的取值範圍均為[0 10], Out_xOut_y的取值範圍均為[0 1]

3、預設每個輸入輸出引數中都只有3個隸屬度函式,本例中每個輸入輸出引數都需要用到五個,其餘幾個需要自己新增:

選中其中一個輸入輸出引數

點選Edit選單,選Add MFS…開啟下列對話方塊

[轉載]模糊邏輯工具箱在Simulink中的使用
MF type設定為trimf(三角形隸屬度函式曲線,當然你也需要選擇其他型別)

Number of MFs 設定為2

點選OK按鈕

同樣給其他三個加入隸屬度函式

4、選中任何一個隸屬度函式(選中為紅色),在Name 中鍵入名稱,在Type中選擇形狀,在Params中鍵入範圍,然後回車如下圖:

[轉載]模糊邏輯工具箱在Simulink中的使用
本例中:In_x,In_y隸屬度函式相同,如下

 

Name

Type

Params

IXL2IYL2

zmf

[1 1.5]

IXL1IYL1

trimf

[1 2.5 4]

IXZIYZ

trimf

[3 5 7]

IXR1IYR1

trimf

[6 7.5 9]

IXR2IYR2

smf

[8.5 9]

 

 

 

 

 

 

Out_x,Out_y隸屬度函式相同,如下:

Name

Type

Params

OXL2OYL2

zmf

[0.1 0.15]

OXL1OYL2

trimf

[0.1 0.25 0.4]

OXZOYZ

trimf

[0.3 0.5 0.7]

OXR1OYR1

trimf

[0.6 0.75 0.9]

OXR2OYR2

smf

[0.85 0.9]

 

 

 

 

 


[轉載]模糊邏輯工具箱在Simulink中的使用
5、關閉隸屬函式編輯器

第四步:使用規則編輯器

通過隸規則編輯器來設計和修改“IF...THEN”形式的模糊控制規則。由該編輯器進行模糊控制規則的設計非常方便,它將輸入量各語言變數自動匹配,而設計者只要通過互動式的圖形環境選擇相應的輸出語言變數,這大大簡化了規則的設計和修改。另外,還可為每條規則選擇權重,以便進行模糊規則的優化。

步驟:

1、開啟規則編輯器

點選Edit選單,選Rules…

[轉載]模糊邏輯工具箱在Simulink中的使用
 開啟下了對話方塊

[轉載]模糊邏輯工具箱在Simulink中的使用
 2、新增規則

選中IXL2,IYL2,OXL2,none(表示不被選中任何隸屬度函式),and選項,權重Weight均設為1,然後點選Add rule 新增規則,同理新增其他規則。

下圖為新增所有role後:

 

 

[轉載]模糊邏輯工具箱在Simulink中的使用
3、關閉規則編輯器

 

第五步:儲存並檢視結果

步驟:

1、 儲存

[轉載]模糊邏輯工具箱在Simulink中的使用
 儲存為Test.fis

2View->Rules開啟Rule Viewer

 

 

[轉載]模糊邏輯工具箱在Simulink中的使用
3View->Surface開啟Surface Viewer

[轉載]模糊邏輯工具箱在Simulink中的使用
 

第二部分:將模糊邏輯新增到Simulink

第一步:建立一個Simulink檔案

步驟:

1、開啟Simulink

[轉載]模糊邏輯工具箱在Simulink中的使用
 

2、點選新建按鈕建立一個新的.mdl檔案

[轉載]模糊邏輯工具箱在Simulink中的使用
 

第二步:新增模糊邏輯

步驟:

1、在Simulink Library Brower 的搜尋框內鍵入Fuzzy Logic Controller找到Fuzzy Logic Controller並將其拖拽到新建的mdl檔案中

[轉載]模糊邏輯工具箱在Simulink中的使用

2、雙擊Fuzzy Logic Controller,開啟如下對話方塊,比在其內部鍵入Test

[轉載]模糊邏輯工具箱在Simulink中的使用
 

3、關閉對話方塊

第三步:新增其他模組

如下圖,都是常用模組,請自己新增

[轉載]模糊邏輯工具箱在Simulink中的使用

第四步:儲存並執行

步驟:

1、 儲存為Test.mdl

2、 初始化模糊邏輯控制器,即在Command Window中鍵入Test = readfis('Test.fis'),回車

[轉載]模糊邏輯工具箱在Simulink中的使用

1、 執行Test.mdl

這裡可以比較一下結果

[轉載]模糊邏輯工具箱在Simulink中的使用

相關文章