曾雄飛
(中山市基信鎖芯有限公司,廣東中山 528400)
隨著科技的發(fā)展,工業(yè)控制系統(tǒng)變得愈加復(fù)雜,各種非平穩(wěn)、時變和不確定控制需求越來越多,而傳統(tǒng)PID 控制參數(shù)需要事先設(shè)定并且無法實時在線調(diào)整,在面對復(fù)雜控制需求時逐漸顯露疲態(tài),無法獲得預(yù)期的控制效果[1-4]。近年來人工智能和機器學(xué)習(xí)浪潮逐漸興起,將智能算法與PID 技術(shù)相結(jié)合,利用智能算法對PID 參數(shù)進行整定,從而提升傳統(tǒng)PID 系統(tǒng)性能,成為了研究的熱點[5]。文獻[6]將模糊理論與PID 控制相結(jié)合,提出一種模糊PID 控制算法,相對于傳統(tǒng)PID 具有更高的控制精度;文獻[7]提出一種遺傳模擬退火算法,利用遺傳模擬退火算法的全局搜索能力對PID 參數(shù)進行在線整定,提升了PID 的控制精度和響應(yīng)速度;神經(jīng)網(wǎng)絡(luò)具備在線自適應(yīng)學(xué)習(xí)和多任務(wù)并行處理能力,將其與PID 組合,能夠獲得對任意復(fù)雜非線性系統(tǒng)的逼近映射,被廣泛應(yīng)用于對非平穩(wěn)時變系統(tǒng)建模和控制,文獻[8]將BP 神經(jīng)網(wǎng)絡(luò)與PID相結(jié)合組成BP-PID控制系統(tǒng),利用MATLAB仿真實驗對系統(tǒng)性能進行驗證,結(jié)果表明,所提方法相對于模糊PID 能夠獲得更高的控制精度和穩(wěn)定性,然而文獻[9]分析指出,BP-PID 控制模型初始參數(shù)的設(shè)定對控制性能影響較大,初值設(shè)置不當,系統(tǒng)容易陷入局部極值狀態(tài)從而導(dǎo)致控制失穩(wěn)現(xiàn)象發(fā)生。
在上述研究的基礎(chǔ)上,該文提出一種基于改進粒子群(Particle Swarm Optimization,PSO)算法優(yōu)化的BP-PID 控制方法,首先利用BP 神經(jīng)網(wǎng)絡(luò)的自適應(yīng)學(xué)習(xí)能力對PID 參數(shù)進行整定,構(gòu)建具備實時在線調(diào)整能力的BP-PID 控制系統(tǒng),然后針對BP-PID 初始參數(shù)設(shè)置問題,利用PSO 算法的全局尋優(yōu)能力進行優(yōu)化,同時針對PSO 固定搜索步長的缺陷,提出自適應(yīng)變步長算法,提升收斂速度,基于仿真數(shù)據(jù)的實驗結(jié)果表明,所提方法相對于傳統(tǒng)BP-PID 控制系統(tǒng)具備更高的控制精度和控制穩(wěn)定度。
傳統(tǒng)PID 控制器作為一種線性控制器,具備結(jié)構(gòu),容易實現(xiàn)的優(yōu)點,其基本原理是將系統(tǒng)的實際輸出值和期望輸出值之間的偏差按照比例、積分和微分的形式進行線性組合,構(gòu)成控制量,實現(xiàn)對目標的反饋控制,控制性能取決于P、I、D 3 個參數(shù),然而由于傳統(tǒng)PID 的控制參數(shù)需要根據(jù)經(jīng)驗預(yù)先設(shè)置且不能在線實時調(diào)整,因此在面對非平穩(wěn)時變系統(tǒng)時存在穩(wěn)定性差、控制精度不理想等問題。
BP 神經(jīng)網(wǎng)絡(luò)是目前應(yīng)用最為廣泛的一種神經(jīng)網(wǎng)絡(luò)模型,作為一種多層前向反饋神經(jīng)網(wǎng)絡(luò),具備并行計算和自適應(yīng)學(xué)習(xí)能力,理論上能夠以任意精度逼近于非線性函數(shù)[10-12],因此該文將BP 神經(jīng)網(wǎng)絡(luò)與傳統(tǒng)PID 控制器相結(jié)合,利用BP 神經(jīng)網(wǎng)絡(luò)對P、I、D 3 個參數(shù)進行自適應(yīng)在線調(diào)整,從而提高PID 系統(tǒng)面對非平穩(wěn)非線性系統(tǒng)時的穩(wěn)定性和控制精度。
該文采用如圖1 所示的4-5-3 三層BP 神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),圖中j、i和l分別對應(yīng)輸入層神經(jīng)元、中間層神經(jīng)元和輸出層神經(jīng)元。其中輸入層神經(jīng)元為系統(tǒng)實際輸出值、期望輸出值、系統(tǒng)偏差和控制量4 個變量,輸出層神經(jīng)元為PID 控制器的3 個參數(shù)kP、kI和kD,參考文獻[12]將中間層神經(jīng)元個數(shù)設(shè)置為5。
圖1 所用三層BP神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)
將BP 神經(jīng)網(wǎng)絡(luò)和PID 控制相結(jié)合組成的BPPID 控制器結(jié)構(gòu)如圖2 所示,可以看出其基本思路是將BP 神經(jīng)網(wǎng)絡(luò)加入到PID 控制過程中,根據(jù)當前系統(tǒng)的運行狀態(tài),利用BP 網(wǎng)絡(luò)的自適應(yīng)學(xué)習(xí)能力,實現(xiàn)對PID 系統(tǒng)kP、kI和kD3 個參數(shù)的實時在線調(diào)整,然后通過傳統(tǒng)PID 完成對系統(tǒng)的閉環(huán)控制。
圖2 BP-PID控制原理圖
根據(jù)BP 神經(jīng)網(wǎng)絡(luò)的輸入變量xj,利用Sigmoid函數(shù)f()· 可以得到其中間層節(jié)點的輸入和輸出為:
系統(tǒng)實際輸出與預(yù)期輸出之間的偏差為e(k)=Oi-xj,則采用增量式PID 控制算法可以計算得到PID 控制量的值u(k),對其進行離散化得到的結(jié)果如式(4)所示:
其中,TI和TD分別為積分和微分時間參數(shù)。進一步可以得到PID 的控制增量,如式(5)所示:
定義BP-PID 的性能指標函數(shù)為:
利用梯度下降法對式(6)進行求解,可得模型參數(shù)的更新公式,如式(7)所示:
其中,h′(x)=h(x)(1-h(x)),f′(x)=(1-f2(x))/2,α為BP神經(jīng)網(wǎng)絡(luò)的慣性系數(shù),η為BP 神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)率。
由于傳統(tǒng)BP 神經(jīng)網(wǎng)絡(luò)采用梯度下降法進行參數(shù)迭代和自適應(yīng)學(xué)習(xí),該過程中學(xué)習(xí)率η和慣性系數(shù)α的初值設(shè)置對結(jié)果影響較大,初值設(shè)置不當容易造成算法陷入局部極值,從而導(dǎo)致網(wǎng)絡(luò)出現(xiàn)振蕩,控制性能下降。針對該問題,該文將PSO 算法引入BP-PID 控制系統(tǒng),在迭代過程中利用PSO 算法對η和α進行全局尋優(yōu),保證算法收斂于全局最優(yōu)解,以提升算法性能。
PSO 算法是通過對鳥群覓食行為進行抽象建模而得到的一種隨機搜索算法,具備原理簡單、容易實現(xiàn)以及模型參數(shù)少、收斂速度快等優(yōu)點[13-17]。PSO 算法將鳥群中的每只小鳥作為一個擁有位置和速度信息的粒子,算法初期每個粒子按照初始位置和速度方向?qū)ふ沂澄?,迭代過程中根據(jù)事先定義的適應(yīng)度函數(shù)值判斷當前位置是否為最優(yōu)位置,若是,則記錄該位置信息為,當前時刻整個群體的最優(yōu)位置信息為,PSO 算法按式(8)所示模型對每個粒子的速度和位置信息進行更新:
從式(8)可以看出,PSO 算法的收斂速度由慣性因子s決定,s越大每個粒子更新的步長越長,算法的全局搜索能力就越強,但是局部搜索能力越弱,反之,s越小每個粒子更新的步長越小,算法的局部搜索能力就越強,但是全局搜索能力則越弱,傳統(tǒng)PSO算法的慣性因子s是固定的,導(dǎo)致算法難以兼顧全局和局部搜索能力。因此該文將PSO 的慣性因子取值與迭代次數(shù)聯(lián)系起來,采取如下自適應(yīng)變步長慣性因子迭代方法:
其中,t為當前迭代次數(shù),T為總迭代次數(shù),st為第t步迭代對應(yīng)的慣性因子,smax為初始設(shè)置的最大慣性因子,從式(9)可以看出,開始迭代時,t較小,此時st較大,隨著迭代次數(shù)的增加,t逐漸逼近于總迭代次數(shù)T,st隨之減小,從而使改進后的PSO算法兼具快的收斂速度和高的收斂精度。
圖3 給出了所提PSO-BP-PID 控制算法的流程圖,其具體步驟可以總結(jié)為:
圖3 PSO-BP-PID算法流程圖
步驟1:BP 網(wǎng)絡(luò)結(jié)構(gòu)初始化。按1.1 小節(jié)構(gòu)建4-5-3 結(jié)構(gòu)神經(jīng)網(wǎng)絡(luò)模型,設(shè)置BP 網(wǎng)絡(luò)學(xué)習(xí)率、慣性系數(shù)初始參數(shù)和變化范圍;
步驟2:PSO 算法初始化。將BP 神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)率和慣性系數(shù)作為PSO 的粒子,設(shè)置初始種群數(shù)、初始化粒子速度和位置向量;
步驟3:粒子更新。按照式(8)對每個粒子的速度和位置信息進行更新,并計算得到每個粒子的Pi以及整個集群的Pg;
步驟4:粒子更新。按照式(8)對每個粒子的速度和位置信息進行更新;
步驟5:PSO 迭代終止判斷。判斷當前狀態(tài)是否滿足迭代終止條件,若滿足,則迭代終止,否則轉(zhuǎn)至步驟3;
步驟6:PSO 迭代終止時,輸出最優(yōu)學(xué)習(xí)率和慣性系數(shù),作為BP-PID 控制系統(tǒng)的初始參數(shù)。
為了驗證所提PSO-BP-PID 控制系統(tǒng)的性能,采用智能車車速控制數(shù)據(jù)集開展實驗,數(shù)據(jù)集中包含某型智能車在市郊道路進行測試過程中記錄的3 min 的實測車速,車速的具體變換情況如圖4 所示,可以看出測試過程中車速變換范圍在0~60 km/h 之間。
圖4 某實際路況車速測試數(shù)據(jù)
根據(jù)圖3 所示算法流程,實驗開始時首先設(shè)置BP 神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)為4-5-3,初始化學(xué)習(xí)率η=0.85,取值范圍為[0.1,1],初始化慣性系數(shù)α=10,取值范圍為[1,100]。設(shè)置PSO 算法種群數(shù)為2,最大迭代次數(shù)為100 次,慣性因子初值為s=smax=10。
圖5 給出了利用所提改進PSO 算法對BP 神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)率和慣性系數(shù)優(yōu)化過程中的取值變化曲線,可以看出只需要大約15 次迭代,算法就能達到收斂狀態(tài),此時最優(yōu)學(xué)習(xí)率η=0.21,最優(yōu)慣性系數(shù)α=63.5。
圖5 參數(shù)優(yōu)化曲線
在工業(yè)控制應(yīng)用中,控制精度和穩(wěn)定度是評估一個控制算法優(yōu)劣的兩項關(guān)鍵指標,對于該文實驗所用智能車速度控制需求,采用車速跟蹤誤差均值emean指標對控制精度進行定量評估,采用車速跟蹤誤差均方根estd指標對控制穩(wěn)定度進行定量評估,其具體定義如式(10)和式(11)所示,其中,e(t)為t時刻真實車速與控制車速之間的誤差。
圖6 中圓圈實線給出了利用所提方法進行車速跟蹤控制實驗得到的速度跟蹤誤差曲線,為了對比,同時給出了在相同條件下采用傳統(tǒng)BP-PID 算法得到的速度跟蹤結(jié)果,如圓圈虛線所示。從圖6 可以看出,利用所提方法對智能車速度開展控制實驗得到的速度跟蹤誤差在[-0.398 7,0.423 5]范圍內(nèi),而在相同條件下傳統(tǒng)BP-PID 方法得到的速度跟蹤誤差在[-1.237 6,1.153 8]范圍內(nèi)。表1 進一步給出了按照式(10)和式(11)計算得到的控制精度和控制穩(wěn)定度指標。從圖6 和表1 所示結(jié)果可以看出,所提方法在控制精度和控制穩(wěn)定度方面相對于傳統(tǒng)BP-PID方法有明顯提升,達到預(yù)期效果。
圖6 不同方法車速跟蹤結(jié)果
表1 不同方法控制精度和穩(wěn)定度
傳統(tǒng)PID 控制器存在參數(shù)整定困難,不能實時在線調(diào)整等缺點,不滿足時變非平穩(wěn)系統(tǒng)的控制需求,該文首先將BP 神經(jīng)網(wǎng)絡(luò)與PID 控制器相結(jié)合,利用4-5-3 結(jié)構(gòu)BP 神經(jīng)網(wǎng)絡(luò)的自適應(yīng)學(xué)習(xí)能力實時對PID 控制器的參數(shù)進行調(diào)整,提升對時變非平穩(wěn)系統(tǒng)的適應(yīng)能力,同時針對BP-PID 控制系統(tǒng)初值設(shè)置問題,提出一種改進PSO 算法,對其進行優(yōu)化,確保其收斂于全局最優(yōu)解,基于仿真實驗的結(jié)果表明,所提PSO-BP-PID 方法相對于傳統(tǒng)方法能過獲得更高的控制精度和控制穩(wěn)定度,具有一定的應(yīng)用前景。
由于BP 神經(jīng)網(wǎng)絡(luò)自學(xué)習(xí)過程需要消耗較多的運算資源,對算法運行硬件提出了較高的要求,同時較高的運算復(fù)雜度導(dǎo)致算法實時性一般,因此如何降低算法復(fù)雜度,提升實時性是接下來的研究重點。