曾雄飛
(中山市基信鎖芯有限公司,廣東中山 528400)
隨著科技的發展,工業控制系統變得愈加復雜,各種非平穩、時變和不確定控制需求越來越多,而傳統PID 控制參數需要事先設定并且無法實時在線調整,在面對復雜控制需求時逐漸顯露疲態,無法獲得預期的控制效果[1-4]。近年來人工智能和機器學習浪潮逐漸興起,將智能算法與PID 技術相結合,利用智能算法對PID 參數進行整定,從而提升傳統PID 系統性能,成為了研究的熱點[5]。文獻[6]將模糊理論與PID 控制相結合,提出一種模糊PID 控制算法,相對于傳統PID 具有更高的控制精度;文獻[7]提出一種遺傳模擬退火算法,利用遺傳模擬退火算法的全局搜索能力對PID 參數進行在線整定,提升了PID 的控制精度和響應速度;神經網絡具備在線自適應學習和多任務并行處理能力,將其與PID 組合,能夠獲得對任意復雜非線性系統的逼近映射,被廣泛應用于對非平穩時變系統建模和控制,文獻[8]將BP 神經網絡與PID相結合組成BP-PID控制系統,利用MATLAB仿真實驗對系統性能進行驗證,結果表明,所提方法相對于模糊PID 能夠獲得更高的控制精度和穩定性,然而文獻[9]分析指出,BP-PID 控制模型初始參數的設定對控制性能影響較大,初值設置不當,系統容易陷入局部極值狀態從而導致控制失穩現象發生。
在上述研究的基礎上,該文提出一種基于改進粒子群(Particle Swarm Optimization,PSO)算法優化的BP-PID 控制方法,首先利用BP 神經網絡的自適應學習能力對PID 參數進行整定,構建具備實時在線調整能力的BP-PID 控制系統,然后針對BP-PID 初始參數設置問題,利用PSO 算法的全局尋優能力進行優化,同時針對PSO 固定搜索步長的缺陷,提出自適應變步長算法,提升收斂速度,基于仿真數據的實驗結果表明,所提方法相對于傳統BP-PID 控制系統具備更高的控制精度和控制穩定度。
傳統PID 控制器作為一種線性控制器,具備結構,容易實現的優點,其基本原理是將系統的實際輸出值和期望輸出值之間的偏差按照比例、積分和微分的形式進行線性組合,構成控制量,實現對目標的反饋控制,控制性能取決于P、I、D 3 個參數,然而由于傳統PID 的控制參數需要根據經驗預先設置且不能在線實時調整,因此在面對非平穩時變系統時存在穩定性差、控制精度不理想等問題。
BP 神經網絡是目前應用最為廣泛的一種神經網絡模型,作為一種多層前向反饋神經網絡,具備并行計算和自適應學習能力,理論上能夠以任意精度逼近于非線性函數[10-12],因此該文將BP 神經網絡與傳統PID 控制器相結合,利用BP 神經網絡對P、I、D 3 個參數進行自適應在線調整,從而提高PID 系統面對非平穩非線性系統時的穩定性和控制精度。
該文采用如圖1 所示的4-5-3 三層BP 神經網絡結構,圖中j、i和l分別對應輸入層神經元、中間層神經元和輸出層神經元。其中輸入層神經元為系統實際輸出值、期望輸出值、系統偏差和控制量4 個變量,輸出層神經元為PID 控制器的3 個參數kP、kI和kD,參考文獻[12]將中間層神經元個數設置為5。

圖1 所用三層BP神經網絡結構
將BP 神經網絡和PID 控制相結合組成的BPPID 控制器結構如圖2 所示,可以看出其基本思路是將BP 神經網絡加入到PID 控制過程中,根據當前系統的運行狀態,利用BP 網絡的自適應學習能力,實現對PID 系統kP、kI和kD3 個參數的實時在線調整,然后通過傳統PID 完成對系統的閉環控制。

圖2 BP-PID控制原理圖
根據BP 神經網絡的輸入變量xj,利用Sigmoid函數f()· 可以得到其中間層節點的輸入和輸出為:



系統實際輸出與預期輸出之間的偏差為e(k)=Oi-xj,則采用增量式PID 控制算法可以計算得到PID 控制量的值u(k),對其進行離散化得到的結果如式(4)所示:

其中,TI和TD分別為積分和微分時間參數。進一步可以得到PID 的控制增量,如式(5)所示:

定義BP-PID 的性能指標函數為:

利用梯度下降法對式(6)進行求解,可得模型參數的更新公式,如式(7)所示:

其中,h′(x)=h(x)(1-h(x)),f′(x)=(1-f2(x))/2,α為BP神經網絡的慣性系數,η為BP 神經網絡的學習率。
由于傳統BP 神經網絡采用梯度下降法進行參數迭代和自適應學習,該過程中學習率η和慣性系數α的初值設置對結果影響較大,初值設置不當容易造成算法陷入局部極值,從而導致網絡出現振蕩,控制性能下降。針對該問題,該文將PSO 算法引入BP-PID 控制系統,在迭代過程中利用PSO 算法對η和α進行全局尋優,保證算法收斂于全局最優解,以提升算法性能。
PSO 算法是通過對鳥群覓食行為進行抽象建模而得到的一種隨機搜索算法,具備原理簡單、容易實現以及模型參數少、收斂速度快等優點[13-17]。PSO 算法將鳥群中的每只小鳥作為一個擁有位置和速度信息的粒子,算法初期每個粒子按照初始位置和速度方向尋找食物,迭代過程中根據事先定義的適應度函數值判斷當前位置是否為最優位置,若是,則記錄該位置信息為,當前時刻整個群體的最優位置信息為,PSO 算法按式(8)所示模型對每個粒子的速度和位置信息進行更新:

從式(8)可以看出,PSO 算法的收斂速度由慣性因子s決定,s越大每個粒子更新的步長越長,算法的全局搜索能力就越強,但是局部搜索能力越弱,反之,s越小每個粒子更新的步長越小,算法的局部搜索能力就越強,但是全局搜索能力則越弱,傳統PSO算法的慣性因子s是固定的,導致算法難以兼顧全局和局部搜索能力。因此該文將PSO 的慣性因子取值與迭代次數聯系起來,采取如下自適應變步長慣性因子迭代方法:

其中,t為當前迭代次數,T為總迭代次數,st為第t步迭代對應的慣性因子,smax為初始設置的最大慣性因子,從式(9)可以看出,開始迭代時,t較小,此時st較大,隨著迭代次數的增加,t逐漸逼近于總迭代次數T,st隨之減小,從而使改進后的PSO算法兼具快的收斂速度和高的收斂精度。
圖3 給出了所提PSO-BP-PID 控制算法的流程圖,其具體步驟可以總結為:

圖3 PSO-BP-PID算法流程圖
步驟1:BP 網絡結構初始化。按1.1 小節構建4-5-3 結構神經網絡模型,設置BP 網絡學習率、慣性系數初始參數和變化范圍;
步驟2:PSO 算法初始化。將BP 神經網絡學習率和慣性系數作為PSO 的粒子,設置初始種群數、初始化粒子速度和位置向量;
步驟3:粒子更新。按照式(8)對每個粒子的速度和位置信息進行更新,并計算得到每個粒子的Pi以及整個集群的Pg;
步驟4:粒子更新。按照式(8)對每個粒子的速度和位置信息進行更新;
步驟5:PSO 迭代終止判斷。判斷當前狀態是否滿足迭代終止條件,若滿足,則迭代終止,否則轉至步驟3;
步驟6:PSO 迭代終止時,輸出最優學習率和慣性系數,作為BP-PID 控制系統的初始參數。
為了驗證所提PSO-BP-PID 控制系統的性能,采用智能車車速控制數據集開展實驗,數據集中包含某型智能車在市郊道路進行測試過程中記錄的3 min 的實測車速,車速的具體變換情況如圖4 所示,可以看出測試過程中車速變換范圍在0~60 km/h 之間。

圖4 某實際路況車速測試數據
根據圖3 所示算法流程,實驗開始時首先設置BP 神經網絡結構為4-5-3,初始化學習率η=0.85,取值范圍為[0.1,1],初始化慣性系數α=10,取值范圍為[1,100]。設置PSO 算法種群數為2,最大迭代次數為100 次,慣性因子初值為s=smax=10。
圖5 給出了利用所提改進PSO 算法對BP 神經網絡學習率和慣性系數優化過程中的取值變化曲線,可以看出只需要大約15 次迭代,算法就能達到收斂狀態,此時最優學習率η=0.21,最優慣性系數α=63.5。

圖5 參數優化曲線
在工業控制應用中,控制精度和穩定度是評估一個控制算法優劣的兩項關鍵指標,對于該文實驗所用智能車速度控制需求,采用車速跟蹤誤差均值emean指標對控制精度進行定量評估,采用車速跟蹤誤差均方根estd指標對控制穩定度進行定量評估,其具體定義如式(10)和式(11)所示,其中,e(t)為t時刻真實車速與控制車速之間的誤差。

圖6 中圓圈實線給出了利用所提方法進行車速跟蹤控制實驗得到的速度跟蹤誤差曲線,為了對比,同時給出了在相同條件下采用傳統BP-PID 算法得到的速度跟蹤結果,如圓圈虛線所示。從圖6 可以看出,利用所提方法對智能車速度開展控制實驗得到的速度跟蹤誤差在[-0.398 7,0.423 5]范圍內,而在相同條件下傳統BP-PID 方法得到的速度跟蹤誤差在[-1.237 6,1.153 8]范圍內。表1 進一步給出了按照式(10)和式(11)計算得到的控制精度和控制穩定度指標。從圖6 和表1 所示結果可以看出,所提方法在控制精度和控制穩定度方面相對于傳統BP-PID方法有明顯提升,達到預期效果。

圖6 不同方法車速跟蹤結果

表1 不同方法控制精度和穩定度
傳統PID 控制器存在參數整定困難,不能實時在線調整等缺點,不滿足時變非平穩系統的控制需求,該文首先將BP 神經網絡與PID 控制器相結合,利用4-5-3 結構BP 神經網絡的自適應學習能力實時對PID 控制器的參數進行調整,提升對時變非平穩系統的適應能力,同時針對BP-PID 控制系統初值設置問題,提出一種改進PSO 算法,對其進行優化,確保其收斂于全局最優解,基于仿真實驗的結果表明,所提PSO-BP-PID 方法相對于傳統方法能過獲得更高的控制精度和控制穩定度,具有一定的應用前景。
由于BP 神經網絡自學習過程需要消耗較多的運算資源,對算法運行硬件提出了較高的要求,同時較高的運算復雜度導致算法實時性一般,因此如何降低算法復雜度,提升實時性是接下來的研究重點。