Fuzzy Logic Toolbox
Matlab 的 Fuzzy Logic Toolbox 可以用圖形介面或指令建立、檢視、模擬模糊推論系統(FIS),並把它放進 Simulink 當控制器。一個 FIS 存成 .fis 文字檔,記錄輸入、輸出變數、各自的歸屬函數與規則;本章的範例都附有 .fis 檔。(說明為補充)
GUI Tools五個圖形介面工具
Working With Simulink把 FIS 放進 Simulink 模型
Working From the Command Window用指令讀取與計算 FIS
Building a FIS Without GUI Tools完全用程式建立 FIS
五個圖形介面工具 GUI Tools
| 工具 | 指令 | 用途 |
|---|---|---|
| FIS Editor | fuzzy | 設定輸入、輸出變數的個數與名稱,選 Mamdani/Sugeno 與各種運算方法 |
| Membership Function Editor | mfedit | 設定每個變數的範圍與歸屬函數形狀、參數 |
| Rule Editor | ruleedit | 以「若…則…」的形式編輯規則 |
| Rule Viewer | ruleview | 輸入一組值,逐條看推論過程與輸出(即 Mamdani 頁的推論圖) |
| Surface Viewer | surfview | 畫出輸出對一或兩個輸入的曲面 |
常用指令 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)