張 震,趙文豪,張晨宇,張國欣
(武漢工程大學(xué),電氣信息學(xué)院,湖北 武漢430200)
PID控制器結(jié)構(gòu)簡單,在諸多領(lǐng)域都得到廣泛的應(yīng)用,但是,一方面,當(dāng)被控對象變得復(fù)雜時,傳統(tǒng)的PID控制器在面對時變系統(tǒng)和非線性系統(tǒng)很難取得較好的控制效果[1]。神經(jīng)網(wǎng)絡(luò)控制可以克服以上問題。另一方面[2],采用常規(guī)PID控制器雖然簡單易行,但一組固定不變的PID參數(shù)無法適應(yīng)參數(shù)變化,難以獲得滿意的控制效果。甚至當(dāng)參數(shù)變化范圍太大時,系統(tǒng)性能會明顯變差?;谏窠?jīng)網(wǎng)絡(luò)的優(yōu)點,把PID控制和與其結(jié)合起來,構(gòu)成BP神經(jīng)網(wǎng)絡(luò)PID控制,能夠?qū)崿F(xiàn)較好的控制效果。
BP神經(jīng)網(wǎng)絡(luò)的優(yōu)點在于他可以逼近任意的非線性函數(shù),而且不需要太復(fù)雜的結(jié)構(gòu)就可以擬合復(fù)雜曲線,它已經(jīng)有了較為成熟的算法,可以通過BP神經(jīng)網(wǎng)絡(luò)的算法擬合P、I、D三個參數(shù)之間的非線性關(guān)系?;贐P神經(jīng)網(wǎng)絡(luò)的PID控制系統(tǒng)結(jié)構(gòu)如圖1所示。
圖1 BP神經(jīng)網(wǎng)絡(luò)P I D控制結(jié)構(gòu)圖
在增量式數(shù)字PID的控制算式將kp、ki、kd作為系統(tǒng)運行狀態(tài)的可調(diào)系數(shù)時,可得
假設(shè)BP神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示,有4個輸入神經(jīng)元,5個隱含神經(jīng)元,3個輸出神經(jīng)元。輸出分別對應(yīng)PID控制器的三個參數(shù)kp、ki、kd,輸出層神經(jīng)元的激活函數(shù)取非負(fù)的函數(shù)。
圖2 BP神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)圖
網(wǎng)絡(luò)輸入層的輸入為:
網(wǎng)絡(luò)隱含層的輸入,輸出為
本研究中使用的是最速梯度法調(diào)整各層權(quán)值,并附加一使搜索快速收斂全局極小的慣性項[2]。
本研究中,BP神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)為圖2,分為三層:輸入層、隱含層、輸出層。輸入層有4個神經(jīng)元,隱含層有5個神經(jīng)元,輸出層有3個神經(jīng)元。習(xí)速率為 0.1,慣性系數(shù)為0.01,各層之間的初始權(quán)值取[-0.5,0.5]上的隨機(jī)數(shù),輸入變量為:給定期望輸出量 rin(t)、實際輸出量 you(k)、偏差 e(k)及常數(shù) 1。輸出變量為:PID 三個可調(diào)參數(shù) kp、ki、kd[4]。
1)確定神經(jīng)網(wǎng)絡(luò)輸入層節(jié)點及數(shù)目、隱含層數(shù)目、各層權(quán)系數(shù)的初值、學(xué)習(xí)率、慣性系數(shù);
2)采樣得到 rin(t)、you(t),計算該時刻誤差;
3)計算神經(jīng)網(wǎng)絡(luò)各層神經(jīng)元的輸入、輸出
4)計算PID控制器的輸出;
5進(jìn)行神經(jīng)網(wǎng)絡(luò)學(xué)習(xí),在線調(diào)整加權(quán)系數(shù);實現(xiàn)PID控制參數(shù)的自適應(yīng)調(diào)整;
模糊控制的優(yōu)點在于它有較好的自適應(yīng)能力,對非線性的系統(tǒng)和含大滯的系統(tǒng)有較好的控制效果。而自適應(yīng)模糊PID控制就是根據(jù)實際情況實時調(diào)整比例、積分、微分系數(shù),以達(dá)到控制作用在任何時候均為最優(yōu)[3]。其結(jié)構(gòu)如圖3所示。
圖3 模糊P I D控制系統(tǒng)結(jié)構(gòu)
在圖 3 中,rin(t)表示輸入信號、you(t)表示輸出信號,e、表示誤差 ec 表示誤差變化率。kp、ki、kd是模糊PID控制器的三個控制輸出,這三個控制輸出作為常規(guī)PID控制器的比例系數(shù)、積分系數(shù)和微分系數(shù)。PID的參數(shù)模糊自整定的實質(zhì)就是找出控制器中PID的3個參數(shù)與e和ec之間的實際存在的非線性關(guān)系,然后根據(jù)事先設(shè)定好的模糊控制的規(guī)則來實時修改這個三個輸出參數(shù)并輸出,這樣就可以滿足不同e和ec所需要的不同控制參數(shù),從而達(dá)到控制效果[2]。
本次研究中用到的偏差e、偏差的變化率ec所對應(yīng)隸屬度函數(shù)用的就是三角隸屬度函數(shù),而且輸出參數(shù)kp、ki、kd也都是三角隸屬度函數(shù),在這里設(shè)置的模糊論域也都是一樣的{-3,-2,-1,0,1,2,3},與之相對應(yīng)的模糊子集是{NB,NM,NS,0,PS,PM,PB},模糊子集中的元素代表{負(fù)大,負(fù)中,負(fù)小,零,正小,正中,正大}?,F(xiàn)在已知條件下設(shè) e,ec 和 kp、ki、kd都服從一般的正態(tài)分布,則可以得出各模糊子集所對應(yīng)的隸屬度,然后根據(jù)每個模糊子集隸屬度的賦值表和每個參數(shù)模糊控制的模型,通過模糊合成再推理設(shè)計出PID三個輸出參數(shù)的三個模糊矩陣表,最后進(jìn)行計算得到三個控制的輸出參數(shù)。主要過程是對模糊邏輯規(guī)則產(chǎn)生的結(jié)果進(jìn)行處理、查表和運算,然后再完成對PID三個參數(shù)的在線自動的校正[4-5]。
(1)獲取當(dāng)前采樣值;
(2)計算誤差得 e(k)Ec(k);
(3)對 e(k)、Ec(k)模糊化;
(4)模糊整定△kp、△ki、△kd;
(5)計算PID控制器輸出。
為了對比常規(guī)PID、BP神經(jīng)網(wǎng)絡(luò)和模糊PID的控制效果,這里是基于MATLAB平臺來進(jìn)行的仿真驗證,傳遞函數(shù)模型為[6-10]:
此傳遞函數(shù)是從水輪機(jī)的實際模型抽象出來的,此模型為三階含非最小相位系統(tǒng),比較難控制。原系統(tǒng)的階躍響應(yīng)如圖4所示。
圖4 原系統(tǒng)階躍響應(yīng)
常規(guī)PID控制和模糊PID控制仿真效果如圖5所示。
圖5 常規(guī)P I D和模糊P I D階躍響應(yīng)
基于BP神經(jīng)網(wǎng)絡(luò)的PID控制器的控制效果如圖6-9所示。
圖6 kp參數(shù)整定曲線
圖7 ki參數(shù)整定曲線
圖8 kd參數(shù)整定曲線
圖9 輸出響應(yīng)曲線
在同等給定的階躍條件下對常規(guī)PID控制、模糊PID控制和BP神經(jīng)網(wǎng)絡(luò)PID控制系統(tǒng)的響應(yīng)曲線進(jìn)行誤差分析、比較,結(jié)果見表1。
表1 階躍響應(yīng)動態(tài)性能比較
從各系統(tǒng)仿真圖和表1數(shù)據(jù)對比中可以看出:原系統(tǒng)有穩(wěn)態(tài)誤差,階躍響應(yīng)的效果很差。用常規(guī)PID控制之后,系統(tǒng)的存在超調(diào)且達(dá)到25%,調(diào)節(jié)時間很長,但是不存在穩(wěn)態(tài)誤差;模糊PID控制的響應(yīng)速度比較快,超調(diào)只達(dá)到10%而且調(diào)節(jié)時間比常規(guī)PID縮短了6.7s,沒有穩(wěn)態(tài)誤差;神經(jīng)網(wǎng)絡(luò)PID控制超調(diào)下降到了8%,調(diào)節(jié)時間也縮短到了10 s,穩(wěn)態(tài)誤差為零。綜上所述,模糊PID和神經(jīng)網(wǎng)絡(luò)PID的效果明顯好于常規(guī)PID,更適合于控制該系統(tǒng)的,但在超調(diào)方面BP神經(jīng)網(wǎng)絡(luò)的控制效果要稍稍好于模糊PID控制的效果。
BP神經(jīng)網(wǎng)絡(luò)本身就擁有自學(xué)習(xí)、自適應(yīng)、并行分布處理和較強(qiáng)的魯棒性及容錯性等特點,BP神經(jīng)網(wǎng)絡(luò)算法與常規(guī)PID控制相結(jié)合可以產(chǎn)生間接的自適應(yīng)校正控制策略,其能夠自動的整定控制器的三個參數(shù),使系統(tǒng)能夠處在較好的性能下面運行。