智慧型控制 Intelligent Control

Fuzzy Logic Toolbox

Matlab 的 Fuzzy Logic Toolbox 可以用圖形介面或指令建立、檢視、模擬模糊推論系統(FIS),並把它放進 Simulink 當控制器。一個 FIS 存成 .fis 文字檔,記錄輸入、輸出變數、各自的歸屬函數與規則;本章的範例都附有 .fis 檔。(說明為補充)

五個圖形介面工具 GUI Tools

工具指令用途
FIS Editorfuzzy設定輸入、輸出變數的個數與名稱,選 Mamdani/Sugeno 與各種運算方法
Membership Function Editormfedit設定每個變數的範圍與歸屬函數形狀、參數
Rule Editorruleedit以「若…則…」的形式編輯規則
Rule Viewerruleview輸入一組值,逐條看推論過程與輸出(即 Mamdani 頁的推論圖)
Surface Viewersurfview畫出輸出對一或兩個輸入的曲面

常用指令 Command-Line Functions

fis = readfis('tipper');          % 讀入 tipper.fis
out = evalfis([3 8], fis)         % 計算服務 3、食物 8 時的小費(18.0)
plotmf(fis, 'input', 1)           % 畫第 1 個輸入的歸屬函數
showrule(fis)                     % 以文字列出規則
gensurf(fis)                      % 畫輸出曲面
writefis(fis, 'mytipper')         % 存成 mytipper.fis
▶ 在 Colab 開啟原課程的 MATLAB 程式已改寫成 Python 筆記本(第 2 節:readfis、evalfis、plotmf、showrule、gensurf、writefis),可以直接在瀏覽器執行、修改參數。⬇ 下載 Fuzzy_toolbox.ipynb

以上是原講義所用 Matlab 版本的寫法。新版 Matlab(R2018b 起)改用 mamfis、sugfis、addInput、addMF、addRule 等函數建立 FIS,evalfis 的引數順序也改成 evalfis(fis, input);舊的 .fis 檔仍可用 readfis 讀入。

工具箱使用手冊(原講義附檔):Fuzzy Logic Toolbox User's Guide(PDF)