胡黃水, 趙思遠(yuǎn), 劉清雪, 王出航, 王婷婷
(1. 長(zhǎng)春工業(yè)大學(xué) 計(jì)算機(jī)科學(xué)與工程學(xué)院, 長(zhǎng)春 130012; 2. 吉林建筑科技學(xué)院 計(jì)算機(jī)科學(xué)與工程學(xué)院, 長(zhǎng)春 130114;3. 長(zhǎng)春師范大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院, 長(zhǎng)春 130032)
PID(比例-積分-微分)控制算法是工業(yè)控制中的通用方法之一, 因其結(jié)構(gòu)簡(jiǎn)單而廣泛應(yīng)用于冶金、 輕工和機(jī)械等工業(yè)控制中, 控制效果由PID參數(shù)決定[1-3]. 在實(shí)際工業(yè)控制中, 根據(jù)不同的控制效果需求用專(zhuān)家經(jīng)驗(yàn)設(shè)置PID參數(shù), 無(wú)法實(shí)時(shí)調(diào)整, 因此PID控制算法在非線(xiàn)性和復(fù)雜系統(tǒng)中應(yīng)用效果較差[4-6].
近年來(lái), 利用智能控制算法對(duì)PID參數(shù)整定成為研究熱點(diǎn), 如神經(jīng)網(wǎng)絡(luò)PID、 模糊邏輯PID、 遺傳算法PID等, 這些智能控制算法均具有較強(qiáng)的學(xué)習(xí)能力[7-9]. 神經(jīng)網(wǎng)絡(luò)在智能控制、 預(yù)測(cè)控制[10-11]、 模式識(shí)別[12-13]和信號(hào)處理[14]等領(lǐng)域應(yīng)用廣泛. 其中BP神經(jīng)網(wǎng)絡(luò)具有并行分布式處理、 魯棒性強(qiáng)和容錯(cuò)性強(qiáng)等特點(diǎn), 并具有自適應(yīng)學(xué)習(xí)和較強(qiáng)的逼近非線(xiàn)性映射能力, 因此神經(jīng)網(wǎng)絡(luò)PID控制算法是控制復(fù)雜系統(tǒng)的常用方法之一[15-16], 廣泛應(yīng)用于建模和控制較復(fù)雜的非線(xiàn)性系統(tǒng)[17]中. 但傳統(tǒng)的BP神經(jīng)網(wǎng)絡(luò)在學(xué)習(xí)過(guò)程中學(xué)習(xí)率始終保持不變, 若學(xué)習(xí)率選取過(guò)小, 則每次權(quán)值的調(diào)整量小, 網(wǎng)絡(luò)收斂速度慢; 若學(xué)習(xí)率選取過(guò)大, 則每次權(quán)值的調(diào)整量大, 而較大權(quán)值調(diào)整量可能導(dǎo)致網(wǎng)絡(luò)在誤差最小值處產(chǎn)生振蕩現(xiàn)象, 網(wǎng)絡(luò)因此變得發(fā)散而不能收斂[18]. 針對(duì)上述傳統(tǒng)BP神經(jīng)網(wǎng)絡(luò)具有訓(xùn)練過(guò)程中易陷入局部極小值和收斂速度較慢的缺點(diǎn), 研究人員已提出了各種改進(jìn)的BP神經(jīng)網(wǎng)絡(luò)控制算法: 文獻(xiàn)[19]提出了一種既可加快學(xué)習(xí)速度又可保持穩(wěn)定的方法, 即在迭代公式中增加一個(gè)動(dòng)量項(xiàng), 可有效抑制網(wǎng)絡(luò)訓(xùn)練中可能出現(xiàn)的振蕩現(xiàn)象, 具有緩沖平滑的作用, 并有利于脫離平坦區(qū), 加快訓(xùn)練速度; 文獻(xiàn)[20]提出了一種添加多重動(dòng)量項(xiàng)的方法, 該方法能有效減少網(wǎng)絡(luò)訓(xùn)練次數(shù), 加快收斂速度; 文獻(xiàn)[21]提出了一種改進(jìn)的BP算法, 該算法的動(dòng)量系數(shù)根據(jù)當(dāng)前的梯度最速下降方向和權(quán)值上一步的改變方向自適應(yīng)變化. 為進(jìn)一步加快神經(jīng)網(wǎng)絡(luò)的收斂速度, 在借鑒現(xiàn)有改進(jìn)算法的基礎(chǔ)上, 本文設(shè)計(jì)一種新的BP神經(jīng)網(wǎng)絡(luò)PID參數(shù)自適應(yīng)整定算法, 該算法通過(guò)動(dòng)量因子優(yōu)化學(xué)習(xí)率和增加動(dòng)量項(xiàng)抑制網(wǎng)絡(luò)訓(xùn)練中由于學(xué)習(xí)速率選取過(guò)大可能導(dǎo)致的振蕩現(xiàn)象, 優(yōu)化了神經(jīng)網(wǎng)絡(luò)的收斂速度.
傳統(tǒng)PID控制器屬于一種線(xiàn)性控制器, 其原理是系統(tǒng)的實(shí)際輸出值與期望值形成系統(tǒng)偏差, 通過(guò)對(duì)偏差量的調(diào)整控制目標(biāo). 傳統(tǒng)PID的控制參數(shù)不能實(shí)時(shí)調(diào)整, 在實(shí)際控制中, 傳統(tǒng)PID控制算法的穩(wěn)定性、 時(shí)變性和自適應(yīng)性控制效果較差, 且在非線(xiàn)性控制上效果不明顯. 針對(duì)傳統(tǒng)PID控制器的缺點(diǎn), 本文將BP神經(jīng)網(wǎng)絡(luò)和PID控制器相結(jié)合, 利用BP神經(jīng)網(wǎng)絡(luò)在線(xiàn)自適應(yīng)調(diào)整控制參數(shù), 實(shí)現(xiàn)PID參數(shù)的最優(yōu)組合, 從而提高系統(tǒng)穩(wěn)定性, 取得良好的控制效果.
BP神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示, 采用三層結(jié)構(gòu): 輸出層、 隱含層和輸入層, 其中j,i,l分別表示輸入層節(jié)點(diǎn)、 隱含層節(jié)點(diǎn)、 輸出層節(jié)點(diǎn). 輸入層的輸入節(jié)點(diǎn)數(shù)目為4, 隱含層的隱藏節(jié)點(diǎn)數(shù)目為5, 輸出層的輸出節(jié)點(diǎn)數(shù)目為3. 輸入節(jié)點(diǎn)對(duì)應(yīng)系統(tǒng)的期望值、 實(shí)際值、 偏差和控制量, 輸出層節(jié)點(diǎn)與PID控制算法的Kp,Ki,Kd3個(gè)參數(shù)一一對(duì)應(yīng).
BP神經(jīng)網(wǎng)絡(luò)單元和PID控制器單元組合成BP神經(jīng)網(wǎng)絡(luò)PID控制器, 其原理是BP神經(jīng)網(wǎng)絡(luò)根據(jù)系統(tǒng)當(dāng)前的運(yùn)行狀態(tài), 通過(guò)自學(xué)習(xí)和權(quán)系數(shù)的調(diào)整輸出最優(yōu)的PID控制參數(shù), 從而使PID控制器的3個(gè)可調(diào)參數(shù)自適應(yīng)改變, 其結(jié)構(gòu)如圖2所示.
圖1 BP神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)Fig.1 Structure of BP neural network
圖2 BP神經(jīng)網(wǎng)絡(luò)PID控制器的結(jié)構(gòu)Fig.2 Structure of PID controller based on BP neural network
BP神經(jīng)網(wǎng)絡(luò)輸入層的輸入量為
(1)
BP神經(jīng)網(wǎng)絡(luò)隱含層的輸入量和輸出量分別為
(2)
(3)
(4)
BP神經(jīng)網(wǎng)絡(luò)輸出層的輸入量和輸出量分別為
(5)
(6)
即
(7)
(8)
性能指標(biāo)函數(shù)為
(9)
為加快收斂速度, 增加一個(gè)使搜索快速收斂到全局極小的慣性項(xiàng), 根據(jù)梯度下降法修正神經(jīng)網(wǎng)絡(luò)權(quán)系數(shù)的公式[21]為
(10)
其中:η為學(xué)習(xí)率;α為動(dòng)量因子. 由式(7)可得
(11)
從而可得BP神經(jīng)網(wǎng)絡(luò)輸出層權(quán)計(jì)算公式為
經(jīng)典增量式PID控制器計(jì)算公式為
(13)
其中:Kp,Ki,Kd分別為PID控制器的比例、 積分、 微分系數(shù);μ(k)為PID控制器輸出量;y(k)為被控對(duì)象輸出實(shí)際值;r(k)為系統(tǒng)期望值;e(k)為系統(tǒng)偏差.
傳統(tǒng)BP神經(jīng)網(wǎng)絡(luò)在學(xué)習(xí)過(guò)程中, 學(xué)習(xí)率始終保持不變, 若學(xué)習(xí)率取值過(guò)大, 則較大的權(quán)值調(diào)整量可能導(dǎo)致網(wǎng)絡(luò)在誤差最小值處振蕩, 使網(wǎng)絡(luò)無(wú)法收斂[18].
為改進(jìn)BP神經(jīng)網(wǎng)絡(luò)的性能, 本文添加了動(dòng)量項(xiàng), 并對(duì)其進(jìn)行改進(jìn). 動(dòng)量項(xiàng)的作用是記憶上一時(shí)刻連接權(quán)的變化方向, 增加動(dòng)量項(xiàng)可得到較大的學(xué)習(xí)速率系數(shù), 提高學(xué)習(xí)速度, 振蕩現(xiàn)象可能出現(xiàn)在神經(jīng)網(wǎng)絡(luò)的訓(xùn)練過(guò)程中, 而動(dòng)量項(xiàng)的“慣性效應(yīng)”具有抑制振蕩和緩沖的作用[20]. 權(quán)值的修正公式為
(14)
其中α1為(n-1)時(shí)刻的動(dòng)量因子. 為進(jìn)一步加快神經(jīng)網(wǎng)絡(luò)的收斂速度, 在其基礎(chǔ)上增加(n-2)時(shí)刻的權(quán)值變化量, 改進(jìn)后的權(quán)值修正公式為
(15)
其中α2為(n-2)時(shí)刻的動(dòng)量因子. 添加(n-2)時(shí)刻動(dòng)量項(xiàng), 記憶前兩個(gè)時(shí)刻連接權(quán)的變化方向, 可得到較大的學(xué)習(xí)速率系數(shù), 以提高學(xué)習(xí)速度. 增加(n-2)時(shí)刻動(dòng)量項(xiàng)后“慣性效應(yīng)”更強(qiáng), 抑制網(wǎng)絡(luò)訓(xùn)練中可能出現(xiàn)的振蕩能力也更強(qiáng). 權(quán)值和誤差的變化范圍會(huì)隨著神經(jīng)網(wǎng)絡(luò)訓(xùn)練過(guò)程進(jìn)入誤差曲面的平坦區(qū)域而減小, 從而可得
Δω(n)≈Δω(n-1)≈Δω(n-2),
將其代入式(15), 有
(16)
有利于加速脫離平坦區(qū)域.
通過(guò)上述改進(jìn)后的BP神經(jīng)網(wǎng)絡(luò)結(jié)合PID控制器組成新的BP神經(jīng)網(wǎng)絡(luò)PID控制器(NBPPID), 其結(jié)構(gòu)如圖3所示.
圖3 改進(jìn)的BP神經(jīng)網(wǎng)絡(luò)PID控制器結(jié)構(gòu)Fig.3 Structure of PID controller based on improved BP neural network
改進(jìn)算法步驟如下:
1) 確定BP神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu), 初始化BP神經(jīng)網(wǎng)絡(luò)輸入層、 隱含層和輸出層權(quán)重系數(shù), 并選擇合適的動(dòng)量因子α1,α2和學(xué)習(xí)率η, 令k=1;
2) 采樣得到輸入量和輸出量, 并計(jì)算偏差量;
3) 確定BP神經(jīng)網(wǎng)絡(luò)輸入層、 隱含層和輸出層神經(jīng)元的輸入量和輸出量, 其中PID控制器的控制參數(shù)Kp,Ki,Kd由輸出層的輸出量決定;
4) PID控制器輸出控制量;
5) BP神經(jīng)網(wǎng)絡(luò)通過(guò)在線(xiàn)調(diào)整加權(quán)系數(shù), 自適應(yīng)調(diào)節(jié)PID控制參數(shù);
6) 令k=k+1, 返回步驟1).
下面驗(yàn)證改進(jìn)后的BP神經(jīng)網(wǎng)絡(luò)PID控制算法控制性能, 將改進(jìn)的控制算法(NBPPID)與傳統(tǒng)的BP神經(jīng)網(wǎng)絡(luò)PID控制算法(BPPID)和增加動(dòng)量項(xiàng)的BP神經(jīng)網(wǎng)絡(luò)PID控制算法(MBPPID)進(jìn)行對(duì)比. 利用MATLAB進(jìn)行仿真實(shí)驗(yàn), 取時(shí)變的非線(xiàn)性仿真系統(tǒng)[18]為
(17)
其中
a(k)=1.3(1-0.6e-0.2k).
圖4 3種控制算法的輸出曲線(xiàn)Fig.4 Output curves of three control algorithms
BP神經(jīng)網(wǎng)絡(luò)采用4-5-3的結(jié)構(gòu), 學(xué)習(xí)率η=0.2,α1=0.5,α2=0.1. 圖4為3種控制算法的輸出曲線(xiàn), 其中rin為期望值. 由圖4可見(jiàn), 將NBPPID和MBPPID算法與傳統(tǒng)BP神經(jīng)神經(jīng)網(wǎng)絡(luò)PID控制算法相比均能有效緩解振蕩現(xiàn)象, 且NBPPID先于MBPPID算法到達(dá)期望值, 加快了收斂速度. 圖5為3種控制算法PID的控制參數(shù)曲線(xiàn). 由圖5可見(jiàn), NBPPID控制算法PID控制參數(shù)最優(yōu)值為
Kp=0.053,Ki=0.047,Kd=0.008.
綜上所述, 本文提出了一種新的BP神經(jīng)網(wǎng)絡(luò)PID參數(shù)自適應(yīng)整定算法. 該算法通過(guò)對(duì)學(xué)習(xí)率和動(dòng)量因子進(jìn)行改進(jìn), 利用動(dòng)量因子優(yōu)化學(xué)習(xí)率和增加動(dòng)量項(xiàng)抑制網(wǎng)絡(luò)訓(xùn)練中可能出現(xiàn)的振蕩現(xiàn)象. 控制過(guò)程中, NBPPID控制算法自適應(yīng)整定PID參數(shù). 實(shí)驗(yàn)結(jié)果表明, 改進(jìn)算法有效緩解了振蕩現(xiàn)象, 并加快了算法的收斂速度.
圖5 3種控制算法的PID控制參數(shù)曲線(xiàn)Fig.5 PID control parameter curves of three control algorithms