matlab模糊控制工具箱使用和模糊控制pid例項參考
Matlab模糊控制工具箱為模糊控制器的設計提供了一種非常便捷的途徑,通過它我們不需要進行復雜的模糊化、模糊推理及反模糊化運算,只需要設定相應引數,就可以很快得到我們所需要的控制器,而且修改也非常方便。下面將根據模糊控制器設計步驟,一步步利用Matlab工具箱設計模糊控制器。
1、模糊控制工具箱使用
首先我們在Matlab的命令視窗(command window)中輸入fuzzy,回車就會出來這樣一個視窗。
下面我們都是在這樣一個視窗中進行模糊控制器的設計。
1)確定模糊控制器結構:即根據具體的系統確定輸入、輸出量。
這裡我們可以選取標準的二維控制結構,即輸入為誤差e和誤差變化ec,輸出為控制量u。注意這裡的變數還都是精確量。相應的模糊量為E,EC和U,我們可以選擇增加輸入(Add Variable)來實現雙入單出控制結構。
2)輸入輸出變數的模糊化:即把輸入輸出的精確量轉化為對應語言變數的模糊集合。
首先我們要確定描述輸入輸出變數語言值的模糊子集,如{NB,NM,NS,ZO,PS,PM,PB},並設定輸入輸出變數的論域,例如我們可以設定誤差E(此時為模糊量)、誤差變化EC、控制量U的論域均為{-3,-2,-1,0,1,2,3};然後我們為模糊語言變數選取相應的隸屬度函式。
在模糊控制工具箱中,我們在Member Function Edit中即可完成這些步驟。首先我們開啟Member Function Edit視窗.
然後分別對輸入輸出變數定義論域範圍,新增隸屬函式,以E為例,設定論域範圍為[-3 3],新增隸屬函式的個數為7.
然後根據設計要求分別對這些隸屬函式進行修改,包括對應的語言變數,隸屬函式型別。
3)模糊推理決策演算法設計:即根據模糊控制規則進行模糊推理,並決策出模糊輸出量。
首先要確定模糊規則,即專家經驗。對於我們這個二維控制結構以及相應的輸入模糊集,我們可以制定49條模糊控制規則(一般來說,這些規則都是現成的,很多教科書上都有),如圖。
制定完之後,會形成一個模糊控制規則矩陣,然後根據模糊輸入量按照相應的模糊推理演算法完成計算,並決策出模糊輸出量。
4)對輸出模糊量的解模糊:模糊控制器的輸出量是一個模糊集合,通過反模糊化方法判決出一個確切的精確量,凡模糊化方法很多,我們這裡選取重心法。
5)然後Export to disk,即可得到一個.fis檔案,這就是你所設計的模糊控制器。
6)simulink中使用fis檔案,首先加入fuzzy模組,然後寫入模糊檔案,注意應用格式加單引號: 'fuzzpid.fis'
2、模糊控制pid例項
模糊PID控制,即利用模糊邏輯並根據一定的模糊規則對PID的引數進行實時的優化,以克服傳統PID引數無法實時調整PID引數的缺點。模糊PID控制包括模糊化,確定模糊規則,解模糊等組成部分。小車通過感測器採集賽道資訊,確定當前距賽道中線的偏差E以及當前偏差和上次偏差的變化ec,根據給定的模糊規則進行模糊推理,最後對模糊引數進行解模糊,輸出PID控制引數。
KP的模糊規則控制表
∆kp | EC | |||||||
NB | NM | MS | ZO | PS | PM | PB | ||
E | NB | PB | PB | PM | PM | PS | ZO | ZO |
NM | PB | PB | PM | PS | PS | ZO | NS | |
NS | PM | PM | PM | PS | ZO | NS | NS | |
ZO | PM | PM | PS | ZO | NS | NM | NM | |
PS | PS | PS | ZO | NS | NS | NM | NM | |
PM | PS | ZO | NS | NM | NM | NM | NB | |
PS | ZO | ZO | NM | NM | NM | NB | NB |
KI的模糊規則控制表
∆ki | EC | |||||||
NB | NM | NS | ZO | PS | PM | PB | ||
E | NB | NB | NB | NM | NM | NS | ZO | ZO |
NM | NB | NB | NM | NS | NS | ZO | ZO | |
NS | NB | NM | NS | NS | ZO | PS | PS | |
ZO | NM | NM | NS | ZO | PS | PM | PM | |
PS | NM | NS | ZO | PS | PS | PM | PB | |
PM | ZO | ZO | PS | PS | PM | PB | PB | |
PB | ZO | ZO | PS | PM | PM | PB | PB |
KD的模糊規則控制表
∆kd | EC | |||||||
NB | NM | NS | ZO | PS | PM | PB | ||
E | NB | PS | NS | NB | NB | NB | NM | PS |
NM | PS | NS | NB | NM | NM | NS | ZO | |
NS | ZO | NS | NM | NM | NS | NS | ZO | |
ZO | ZO | NS | NS | NS | NS | NS | ZO | |
PS | ZO | ZO | ZO | ZO | ZO | ZO | ZO | |
PM | PB | NS | PS | PS | PS | PS | PB | |
PB | PB | PM | PM | PM | PS | PS | PB |
模糊推理系統結構圖
輸入變數的隸屬取三角形函式,如下:
誤差變數E的隸屬函式
誤差變化變數EC的隸屬函式
輸出變數的隸屬同樣取三角形函式,如下:
輸出變數KP的隸屬函式
輸出變數KD的隸屬函式
輸出變數KI的隸屬函式
確定了輸入和輸出隸屬函式後,在模糊規則編輯器中,輸入表格中的模糊推理規則,共49條,如下圖
模糊推理編輯器
此時得到的三引數的變化如下圖
模糊推理KP變化圖
模糊推理KI變化圖
模糊推理KD變化圖
執行模擬得到結果
PS:有定製開發需求,可以QQ聯絡:1762016542
提供matlab simulink 培訓 1v1教學 或者思路溝通 答疑等諮詢服務,尤其擅長汽車控制、訊號處理、數學建模、電機領域
相關文章
- 模糊控制在matlab中常見的疑難問題及模糊邏輯工具箱的使用Matlab
- MATLAB模糊資料工具箱的使用Matlab
- 懸架模糊控制
- 基於模糊PID的直流電機控制系統simulink建模與模擬
- 基於模糊PID控制器的的無刷直流電機速度控制simulink建模與模擬
- PID控制
- PID 控制詳解
- pid 控制演算法演算法
- CSS3 translate導致字型模糊的例項程式碼CSSS3
- Mysql使用like全模糊和半模糊, Explain分析後的結果如何選擇?MySqlAI
- 智慧控制基礎實驗3:數字PID控制
- 基於GA遺傳最佳化的PID控制器最優控制引數整定matlab模擬Matlab
- jQuery控制div顯示和隱藏程式碼例項jQuery
- 阿里雲ECS,突發效能例項t5購買參考和使用建議阿里
- 廣告成本控制-PID演算法演算法
- c# Winform程式控制元件字型模糊、顯示不全問題記錄C#ORM控制元件
- React入門例項參考阮一峰部落格React
- .NET控制檯獲取依賴注入例項依賴注入
- mongo的‘模糊匹配’Go
- mysql 模糊查詢MySql
- PLC程式設計例項(星三角形控制與交通燈控制)C程式程式設計
- 單例項Primary快速搭建Standby RAC參考手冊(19.16 ADG)單例
- Python中使用MySQL模糊查詢的方法PythonMySql
- oracle 精確查詢和模糊查詢Oracle
- Android 簡單瀏覽器例項-webview控制元件Android瀏覽器WebView控制元件
- 如何使用QCompleter和QLineEdit實現支援模糊匹配的搜尋欄
- Mybatis之map操作使用者和模糊查詢擴充套件MyBatis套件
- 直播app開發,使用koa和MongoDB實現分頁和模糊查詢APPMongoDB
- redis scan迭代模糊匹配Redis
- CSS設定背景模糊CSS
- elasticsearch的模糊查詢Elasticsearch
- MyBatis模糊查詢LIKEMyBatis
- FuzzyScore與模糊搜尋
- 後處理 - 均值模糊
- 後處理 - 高斯模糊
- 模糊測試 FUZZING test
- mybatis - [07] 模糊查詢MyBatis
- 模糊綜合評價