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