模糊控制Matlab仿真

2013/9/26 15:08:26


說明:

a.控制對象為一階系統(tǒng),目的是為了簡單,調(diào)通后可以修改控制對象,控制參數(shù)體會各個量對控制效果的影響。

b.一階系統(tǒng)直接施加輸入,如圖1所示的控制對象,上升時間會很大。完全可以使用PID控制使控制效果滿足需要。這里使用模糊控制來代替PID控制器。比較一下!

模糊控制器設(shè)計

模糊控制器的計算量是非常大的,我不從數(shù)學(xué)推導(dǎo)介紹。講一下利用matlab的模糊工具箱(Fuzzy logical toolbox)建立基本模糊控制器的方法。在命令行輸入fuzzy,就可以進(jìn)入模糊推理系統(tǒng)編輯器(fis editor)。利用這個工具制作一個*.fis的文件。這個文件就是模糊控制器的核心!在simulink中和以往進(jìn)行PID控制一樣建立模型。如圖1,在simulink的庫里點(diǎn)擊Fuzzy Logical toolbox,拖一個Fuzzyl logical controller with rule viewer,雙擊這個環(huán)節(jié),在彈出的對話框的fis Matrix里填入你自己起的*.fis的名字,不需輸入后綴fis。

在設(shè)計模糊控制器(*.fis)前,要想好,你設(shè)計的控制器需要幾個輸入,幾個輸出。比如,本例中擬采用偏差E和偏差變化率Ec這兩個量作為模糊控制器的輸入,模糊控制器有一個輸出。很明顯,這是利用模糊控制器代替PD控制的。對應(yīng)的模糊控制器的設(shè)計也要具有兩個輸入一個輸出。

利用matlab的Fuzzy logical toolbox 設(shè)計模糊控制器(生成*.fis文件)的關(guān)鍵步驟:

a.添加輸入輸出。


圖3.fis編輯器

默認(rèn)的具有一個輸出,添加第二個輸入,并且分別命名為E,Ec,U。

b.確定隸屬函數(shù)。雙擊黃色和綠色的方框就可以進(jìn)入隸屬函數(shù)編輯對話框了。設(shè)置E,Ec的range為[-6,6],u的range為[-1,1]。然后每一個變量再添加4個輸入隸屬函數(shù),總共7個。matlab提供了11種隸屬函數(shù),第一次用選擇常用的三角形trimf,區(qū)別不大的。三角形隸屬函數(shù)有三個點(diǎn)確定,其實(shí)是三角形底邊兩個端點(diǎn)和中點(diǎn)。

c.確定模糊規(guī)則。

d.完畢。在窗口導(dǎo)出到磁盤,生成*.fis(如myexample.fis)即可。

分析

不要以為模糊控制可以模糊到弄個差不多就可以控制了。不是的!圖1中這個仿真中用到了3個系數(shù),Gain,Gain1,Gain2。調(diào)整這三個系數(shù)都會對整個控制效果有很大影響。

說明:

a.很明顯發(fā)這三個參數(shù)對控制器的性能有很大的影響,所以不要指望,基本模糊控制器可以實(shí)現(xiàn)不用人工調(diào)整就可以。

b.三個參數(shù)中Gain類似于PD控制中的P,過小則穩(wěn)態(tài)誤差大,上升時間長。過大,穩(wěn)態(tài)誤差小了,上升時間小了,但是出現(xiàn)超調(diào),繼續(xù)增大則出現(xiàn)振蕩。

c.參數(shù)Gain2類似于PD控制中的D,可以調(diào)整系統(tǒng)的"阻尼"。對于電容-電阻電路,傳遞函數(shù)分母為Ts+1,T=RC為系統(tǒng)的時間常數(shù)。修改Gain2可以改善系統(tǒng)的時間常數(shù),使上升時間減小或增加。其作用相當(dāng)于改變電容大小,放電時間減小或增大。對于機(jī)械的彈簧-阻尼系統(tǒng),T=f/k,調(diào)整D相當(dāng)于改變f。由仿真知,Gain2可以從負(fù)到正改變,值越大,系統(tǒng)的上升時間越大,響應(yīng)越慢。當(dāng)改為負(fù)值時,系統(tǒng)地上升時間越來越小,以至于阻尼太小,發(fā)生振蕩。

d.參數(shù)Gain1可修改的范圍比較大。對系統(tǒng)的影響相對較小。它是對誤差E的放大,或縮小,只要合適就行了。

仿真建立modle文件

注意事項(xiàng)

在仿真中使用matlab7.0,模糊控制工具箱,一運(yùn)行就出錯,提示一個max控件不能接受boolean輸入。解決方法在上篇日志中意給出。還有一個是仿真中要加零階保持器。否則,系統(tǒng)當(dāng)連續(xù)系統(tǒng)運(yùn)行,很慢!有時仿真中會提示警告,說步長過大,就不最大步長由自動改為較小的值。另外,*fis文件名必須和模糊控制器名字一致。

感悟

在很多的控制系統(tǒng)中,不是采用這種方式的,都是離線的計算一張所謂控制表。它與控制規(guī)則表類似。因?yàn)榇蠖嗫刂破鞑捎脝纹瑱C(jī)或DSP,這樣從頭到尾計算量太大。控制表使用時,檢測到輸入和輸出,把它歸為正大正小這些等級,四舍五入也好,別的方法也行,就丟失一些信息,換來速度,直接查表,也是一個數(shù),把這個輸作為控制量。整個過程完全就是精確控制,盜用模糊控制的名字而以。

由分析可知,選擇E,Ec的基本模糊控制基本就是PID控制效果,因?yàn)闆]有選擇E積分,穩(wěn)態(tài)誤差沒法消除。所以可以用PID控制的,再使用模糊控制就沒有什么意思了。只是用來學(xué)習(xí)一下思路。

模糊控制真正的那些不能用PID的場合發(fā)揮作用。比如洗衣機(jī),找不到數(shù)學(xué)模型時候,才能發(fā)揮它的魅力所在


投訴建議

提交

查看更多評論
其他資訊

查看更多

超越傳統(tǒng)直覺,MATLAB/Simulink助力重型機(jī)械的智能化轉(zhuǎn)型

新大陸自動識別精彩亮相2024華南國際工業(yè)博覽會

派拓網(wǎng)絡(luò)被Forrester評為XDR領(lǐng)域領(lǐng)導(dǎo)者

智能工控,存儲強(qiáng)基 | 海康威視帶來精彩主題演講

展會|Lubeworks路博流體供料系統(tǒng)精彩亮相AMTS展會