matlab模糊控制工具箱使用和模糊控制pid实例参考
Matlab模糊控制工具箱為模糊控制器的設(shè)計提供了一種非常便捷的途徑,通過它我們不需要進(jìn)行復(fù)雜的模糊化、模糊推理及反模糊化運算,只需要設(shè)定相應(yīng)參數(shù),就可以很快得到我們所需要的控制器,而且修改也非常方便。下面將根據(jù)模糊控制器設(shè)計步驟,一步步利用Matlab工具箱設(shè)計模糊控制器。
1、模糊控制工具箱使用
首先我們在Matlab的命令窗口(command window)中輸入fuzzy,回車就會出來這樣一個窗口。
下面我們都是在這樣一個窗口中進(jìn)行模糊控制器的設(shè)計。
1)確定模糊控制器結(jié)構(gòu):即根據(jù)具體的系統(tǒng)確定輸入、輸出量。
這里我們可以選取標(biāo)準(zhǔn)的二維控制結(jié)構(gòu),即輸入為誤差e和誤差變化ec,輸出為控制量u。注意這里的變量還都是精確量。相應(yīng)的模糊量為E,EC和U,我們可以選擇增加輸入(Add Variable)來實現(xiàn)雙入單出控制結(jié)構(gòu)。
2)輸入輸出變量的模糊化:即把輸入輸出的精確量轉(zhuǎn)化為對應(yīng)語言變量的模糊集合。
首先我們要確定描述輸入輸出變量語言值的模糊子集,如{NB,NM,NS,ZO,PS,PM,PB},并設(shè)置輸入輸出變量的論域,例如我們可以設(shè)置誤差E(此時為模糊量)、誤差變化EC、控制量U的論域均為{-3,-2,-1,0,1,2,3};然后我們?yōu)槟:Z言變量選取相應(yīng)的隸屬度函數(shù)。
在模糊控制工具箱中,我們在Member Function Edit中即可完成這些步驟。首先我們打開Member Function Edit窗口.
然后分別對輸入輸出變量定義論域范圍,添加隸屬函數(shù),以E為例,設(shè)置論域范圍為[-3 3],添加隸屬函數(shù)的個數(shù)為7.
?
然后根據(jù)設(shè)計要求分別對這些隸屬函數(shù)進(jìn)行修改,包括對應(yīng)的語言變量,隸屬函數(shù)類型。
3)模糊推理決策算法設(shè)計:即根據(jù)模糊控制規(guī)則進(jìn)行模糊推理,并決策出模糊輸出量。
首先要確定模糊規(guī)則,即專家經(jīng)驗。對于我們這個二維控制結(jié)構(gòu)以及相應(yīng)的輸入模糊集,我們可以制定49條模糊控制規(guī)則(一般來說,這些規(guī)則都是現(xiàn)成的,很多教科書上都有),如圖。
制定完之后,會形成一個模糊控制規(guī)則矩陣,然后根據(jù)模糊輸入量按照相應(yīng)的模糊推理算法完成計算,并決策出模糊輸出量。
4)對輸出模糊量的解模糊:模糊控制器的輸出量是一個模糊集合,通過反模糊化方法判決出一個確切的精確量,凡模糊化方法很多,我們這里選取重心法。
????
5)然后Export to disk,即可得到一個.fis文件,這就是你所設(shè)計的模糊控制器。
6)simulink中使用fis文件,首先加入fuzzy模塊,然后寫入模糊文件,注意應(yīng)用格式加單引號:?'fuzzpid.fis'
?
2、模糊控制pid實例
模糊PID控制,即利用模糊邏輯并根據(jù)一定的模糊規(guī)則對PID的參數(shù)進(jìn)行實時的優(yōu)化,以克服傳統(tǒng)PID參數(shù)無法實時調(diào)整PID參數(shù)的缺點。模糊PID控制包括模糊化,確定模糊規(guī)則,解模糊等組成部分。小車通過傳感器采集賽道信息,確定當(dāng)前距賽道中線的偏差E以及當(dāng)前偏差和上次偏差的變化ec,根據(jù)給定的模糊規(guī)則進(jìn)行模糊推理,最后對模糊參數(shù)進(jìn)行解模糊,輸出PID控制參數(shù)。
?
?
KP的模糊規(guī)則控制表
| ?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的模糊規(guī)則控制表
| ?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的模糊規(guī)則控制表
| ?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 | |
?
模糊推理系統(tǒng)結(jié)構(gòu)圖
輸入變量的隸屬取三角形函數(shù),如下:
誤差變量E的隸屬函數(shù)
誤差變化變量EC的隸屬函數(shù)
輸出變量的隸屬同樣取三角形函數(shù),如下:
輸出變量KP的隸屬函數(shù)
?
輸出變量KD的隸屬函數(shù)
輸出變量KI的隸屬函數(shù)
確定了輸入和輸出隸屬函數(shù)后,在模糊規(guī)則編輯器中,輸入表格中的模糊推理規(guī)則,共49條,如下圖
模糊推理編輯器
此時得到的三參數(shù)的變化如下圖
模糊推理KP變化圖
模糊推理KI變化圖
模糊推理KD變化圖
?
運行仿真得到結(jié)果
PS:有定制開發(fā)需求,可以QQ聯(lián)系:1762016542
提供matlab simulink 培訓(xùn) 1v1教學(xué) 或者思路溝通 答疑等咨詢服務(wù),尤其擅長汽車控制、信號處理、數(shù)學(xué)建模、電機(jī)領(lǐng)域
歡迎關(guān)注公眾號:算法工程師的學(xué)習(xí)日志
?
總結(jié)
以上是生活随笔為你收集整理的matlab模糊控制工具箱使用和模糊控制pid实例参考的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python 复制、移动文件到指定目录并
- 下一篇: Linux 开机显示:welcome t