模糊控制
模糊控制(fuzzy control)把人的經驗寫成「若…則…」的語意規則,例如「誤差大而且還在變大 → 用力推」,再用模糊集合與模糊推論算出明確的控制量。它不需要精確的數學模型,適合難以建模、但有操作經驗可循的系統。(說明為補充)
理論 Theory
簡介Introduction:模糊集合、歸屬函數、三個步驟
Mamdani 型Mamdani Type:截頂、聯集、重心
Sugeno 型Sugeno Type:加權平均
Fuzzy Logic ToolboxMatlab 工具箱的使用
範例 Examples
| 範例 | 型式 | 說明 |
|---|---|---|
| 小費問題/Sugeno 版 | Mamdani/Sugeno | 依服務與食物決定小費,用來熟悉推論過程 |
| MCK 模糊控制 I | Mamdani(單輸入) | 質量–彈簧–阻尼(MCK)系統的模糊控制 |
| MCK 模糊控制 II | Mamdani(雙輸入) | 同一系統改用兩個輸入 |
| MCK 模糊控制 III/IV | Sugeno 零階/一階 | 同一問題改用 Sugeno 型 |
| 水位控制模型、水位控制 FIS | Mamdani | 水槽液位控制(工具箱的經典範例) |
| 倒單擺台車模型(舊站)↗、倒單擺 FIS | Sugeno | 台車上的倒單擺平衡控制 |
延伸閱讀(原講義附檔):Fuzzy Logic(PDF)、FLC(PDF)、fuzzy.ppt。
Python 版 Colab Notebooks
▶ 在 Colab 開啟原課程的 MATLAB 程式已改寫成 Python 筆記本(模糊邏輯工具箱:readfis、evalfis、CreateFIS.m 等指令與 tipper 系列 .fis),可以直接在瀏覽器執行、修改參數。⬇ 下載 Fuzzy_toolbox.ipynb
▶ 在 Colab 開啟原課程的 MATLAB 程式已改寫成 Python 筆記本(模糊控制:MCK 四種控制器、水槽液位、台車倒單擺的 Simulink 模型),可以直接在瀏覽器執行、修改參數。⬇ 下載 Fuzzy_control.ipynb