周 洲,陳宇軒,程 鑫
(長安大學(xué)信息工程學(xué)院,陜西 西安 710064)
汽車底盤測功機(jī)是一種檢測汽車動力性、輸出功率和尾氣排放等性能的機(jī)械設(shè)備,它通過PID 控制影響飛輪慣性的轉(zhuǎn)動慣量,以此對汽車駕駛時的轉(zhuǎn)動慣量進(jìn)行仿真,從而對汽車的運行狀況進(jìn)行動態(tài)檢測[1-2]。PID 算法的系數(shù)整定是一個復(fù)雜的問題,而當(dāng)其應(yīng)用于汽車底盤測功機(jī)這種復(fù)雜的時變非線性、具有強(qiáng)慣性的大型設(shè)備時,系數(shù)的整定會更加困難[3-4]。
文獻(xiàn)[5]在PID 算法參數(shù)整定過程中結(jié)合模糊推理機(jī)制,首先根據(jù)輸入誤差確定模糊論域與隸屬度函數(shù),接著采用Mamdani算法作為模糊推理的方法,最后確定出一個符合當(dāng)前情況的模糊矩陣表,根據(jù)該表整定對應(yīng)的PID 參數(shù)。這種方法的特點是能夠?qū)ID 算法參數(shù)進(jìn)行實時矯正,提高精確度。但由于需要預(yù)先通過一系列流程建立模糊矩陣表,且該表不具備普遍性,因此費時費力,不適用于需要經(jīng)常改變條件的實際應(yīng)用中。文獻(xiàn)[6]利用神經(jīng)網(wǎng)絡(luò)具有自主學(xué)習(xí)的功能,且善于處理多輸入、非線性對象的特點,成功將BP 神經(jīng)網(wǎng)絡(luò)與增量式PID 算法相結(jié)合,并引入相應(yīng)的工業(yè)運用當(dāng)中。通過實驗證明了BP 神經(jīng)網(wǎng)絡(luò)與PID 算法的結(jié)合使控制響應(yīng)速度變快,是實現(xiàn)提高PID 算法效果的有效方法。文獻(xiàn)[7]進(jìn)一步將PID 算法中的神經(jīng)網(wǎng)絡(luò)改為RBF 徑向基神經(jīng)網(wǎng)絡(luò),憑借徑向基神經(jīng)網(wǎng)絡(luò)能夠降低網(wǎng)絡(luò)復(fù)雜度,減少輸出層部分神經(jīng)元與網(wǎng)絡(luò)權(quán)值的數(shù)量,使得網(wǎng)絡(luò)收斂速度變快、參數(shù)自整定能力變強(qiáng)。根據(jù)實驗結(jié)果,徑向基神經(jīng)網(wǎng)絡(luò)PID 控制算法實際效果良好,且具有很強(qiáng)的魯棒性及抗干擾能力。相關(guān)一系列研究均說明了在汽車底盤測功機(jī)上使用神經(jīng)網(wǎng)絡(luò)PID 控制方法的可行性。文獻(xiàn)[8]在汽車底盤測功機(jī)PID 控制過程中使用了基于RBF 徑向基函數(shù)神經(jīng)網(wǎng)絡(luò)的策略。首先通過分析汽車底盤測功機(jī)實際運行情況建立了加載模型,接著根據(jù)底盤測功機(jī)的加載力輸出特性設(shè)計了結(jié)合RBF 徑向基函數(shù)神經(jīng)網(wǎng)絡(luò)的工作模型,最后在神經(jīng)網(wǎng)絡(luò)的訓(xùn)練基礎(chǔ)上進(jìn)行PID 控制。這種方法的特點是底盤測功機(jī)的輸出力上升過程穩(wěn)定且快速,并且不需要費時費力的進(jìn)行PID參數(shù)整定工作,但算法在控制過程中的初始階段依然存在明顯的超調(diào)情況。由于底盤測功機(jī)渦流機(jī)的運作具有一個加載時間,導(dǎo)致汽車底盤測功機(jī)的響應(yīng)延遲。因此采用傳統(tǒng)增量式PID 控制的過程中積分項會不斷累積,在啟動、停止或大幅度更改控制目標(biāo)時,積分項輸出通常造成汽車底盤測功機(jī)出現(xiàn)大額超調(diào)現(xiàn)象。文獻(xiàn)[9-11]均提出在工業(yè)應(yīng)用當(dāng)中使用變速積分PID 算法控制,該算法能夠有效的使PID 控制中的積分項效果在系統(tǒng)偏差較大時減小或取消,而在系統(tǒng)偏差較小時則相對增大。通過變化的積分項參數(shù)來消除PID 在一些情況下對控制穩(wěn)定性的負(fù)面影響,從而在不對系統(tǒng)造成干擾的情況下減小靜態(tài)誤差與超調(diào)。
在此背景下,對神經(jīng)網(wǎng)絡(luò)PID 思想與變速積分PID 方法分別進(jìn)行研究,將二者進(jìn)行了融合改良,設(shè)計出一種BP+RNN 變速積分PID 算法控制系統(tǒng),將其應(yīng)用于汽車底盤測功機(jī),實現(xiàn)快速的整定PID 參數(shù)與減少超調(diào)、增加控制性能。
BP+RNN 變速積分PID 算法控制系統(tǒng)是把BP 神經(jīng)網(wǎng)絡(luò)與RNN 網(wǎng)絡(luò)組合應(yīng)用到汽車底盤測功機(jī)的控制當(dāng)中,并搭配能夠消除控制超調(diào)的變速積分PID 算法,融合這些方法的優(yōu)點,從而對傳統(tǒng)增量式PID 算法在控制汽車底盤測功機(jī)時存在的一系列問題進(jìn)行優(yōu)化。BP+RNN 變速積分PID 算法控制系統(tǒng)能夠大致分為兩個部分,如圖1 所示。
圖1 BP+RNN 變速積分PID 控制流程圖Fig.1 Flow Chart of BP+RNN Variable Speed Integral PID Control
第一個部分是變速積分PID 控制環(huán)節(jié)。從神經(jīng)網(wǎng)絡(luò)輸出端實時接受三個PID 參數(shù)KP、KD與KI,輸入變速積分PID 算法中進(jìn)行計算,得到當(dāng)前汽車底盤測功機(jī)所需控制量u(k),將該控制量傳送給汽車底盤測功機(jī)的滾筒進(jìn)行控制。通過內(nèi)置計數(shù)器每間隔5ms 采樣一次汽車底盤測功機(jī)在該組PID 參數(shù)控制下的運行狀態(tài)r(k),將該運行狀態(tài)傳送到BP 與RNN 網(wǎng)絡(luò)進(jìn)行自學(xué)習(xí)調(diào)整。
第二個部分是BP 神經(jīng)網(wǎng)絡(luò)與RNN 的自學(xué)習(xí)。首先設(shè)置一組初始PID 比例項參數(shù)KP、微分項參數(shù)KD與積分項參數(shù)KI,在此條件下控制運行汽車底盤測功機(jī),每間隔5ms 采樣一次汽車底盤測功機(jī)在該組參數(shù)控制下的運行狀態(tài)r(k)。將其與目標(biāo)值y(k)帶入均方誤差法損失函數(shù),得到神經(jīng)網(wǎng)絡(luò)損失值,利用損失值反向傳遞訓(xùn)練BP 神經(jīng)網(wǎng)絡(luò)和RNN 網(wǎng)絡(luò),優(yōu)化兩個網(wǎng)絡(luò)的權(quán)值參數(shù)ω。同時將該運行狀態(tài)r(k)與目標(biāo)值y(k)相減得到當(dāng)前時刻誤差。將得到的本次誤差作為RNN 網(wǎng)絡(luò)模型的輸入,并把本次誤差e(k)、上次誤差e(k-1)及上上次誤差e(k-2)作為BP 神經(jīng)網(wǎng)絡(luò)模型的輸入,通過神經(jīng)網(wǎng)絡(luò)計算得出一組PID 參數(shù)。將該組參數(shù)作為新的PID 參數(shù)重復(fù)控制運行汽車底盤測功機(jī)。最終可以從BP 神經(jīng)網(wǎng)絡(luò)模型中得到實際運行狀態(tài)下汽車底盤測功機(jī)PID控制器中的比例項參數(shù)KP和微分項參數(shù)KD,并從RNN 網(wǎng)絡(luò)模型中輸出實時符合當(dāng)前誤差狀態(tài)的時變積分項參數(shù)KI。隨著控制的進(jìn)行,變化的積分項參數(shù)也將實時更新,不斷改變控制量的大小,使底盤測功機(jī)的運行效果滿足工業(yè)要求。
傳統(tǒng)的增量式PID 控制策略在處理車輛底盤測功機(jī)這種具有較高延遲性的場景時,積分項容易在控制調(diào)節(jié)工作中超額累加,從而導(dǎo)致整個系統(tǒng)的控制出現(xiàn)大額超調(diào)。變速積分PID 是一種改良的PID 算法,它能夠控制積分項的實時系數(shù)大小,從而與實際運行情況相匹配[12]。使該算法在汽車底盤測功機(jī)誤差較大時積分項減小或歸零,相反在汽車底盤測功機(jī)誤差較小時積分項則增大,從而達(dá)到大幅度減小PID 控制超調(diào)的效果。變速積分的PID 算法的表達(dá)式為:
式中:e(k)—誤差,是汽車底盤測功機(jī)中滾筒的控制目標(biāo)狀態(tài)y(k)減去實際運行狀態(tài)r(k),等式相加的第三項即為算法積分項。可以看到變速積分PID 為積分項參數(shù)KI增添了一個矯正函數(shù)f[e(k)],此函數(shù)通常是關(guān)于誤差的,原則上當(dāng)誤差增大時f[e(k)]減小,反之則增大。
變速積分PID 算法的優(yōu)勢在于根據(jù)實際運行的誤差大小自動調(diào)節(jié)積分項的控制參數(shù),提高整個系統(tǒng)的適應(yīng)性,能夠減小底盤測功機(jī)在起步、急停等狀態(tài)變化較大的非穩(wěn)定運行狀態(tài)下,目標(biāo)積分項階躍輸入對實際控制的影響,提高系統(tǒng)的控制穩(wěn)定性。
圖2 BP 神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)圖Fig.2 Structure of BP Neural Network
對實驗所用的汽車底盤測功機(jī)實際控制效果進(jìn)行分析,建立三層結(jié)構(gòu)BP 神經(jīng)網(wǎng)絡(luò)模型并進(jìn)行初始化,該模型包含3 個輸入層神經(jīng)元,3 個隱含層神經(jīng)元和2 個輸出層神經(jīng)元。其結(jié)構(gòu)圖,如圖2 所示。
設(shè)置初始PID 比例、微分項參數(shù),實時采樣當(dāng)前參數(shù)運行情況,計算得到的汽車底盤測功機(jī)實時控制過程誤差,將當(dāng)前誤差e(k)、上次誤差e(k-1)、上上次e(k-2)誤差作為訓(xùn)練BP 神經(jīng)網(wǎng)絡(luò)輸入層節(jié)點的輸入。即網(wǎng)絡(luò)輸入層輸入為:
正向計算BP 神經(jīng)網(wǎng)絡(luò),得到隱藏層神經(jīng)元的輸入與輸出為:
式中:ω(2)—隱藏層權(quán)重矩陣,f[·]=tanh(x)。標(biāo)記(1)、(2)依次對應(yīng)輸入層、隱藏層。進(jìn)一步正向計算得到BP 神經(jīng)網(wǎng)絡(luò)輸出層神經(jīng)元的輸入與輸出為:
圖3 RNN 網(wǎng)絡(luò)結(jié)構(gòu)圖Fig.3 Structure of RNN Network
對實驗所用的汽車底盤測功機(jī)實際控制效果進(jìn)行分析,建立三層結(jié)構(gòu)RNN 神經(jīng)網(wǎng)絡(luò)模型并進(jìn)行初始化,該模型包含1 個輸入層神經(jīng)元,1 個隱含層神經(jīng)元和1 個輸出層神經(jīng)元。其結(jié)構(gòu)圖,如圖3 所示。
采樣得到被控汽車底盤測功機(jī)滾筒的實時加載扭力,利用該扭力與目標(biāo)加載扭力相減計算,得到系統(tǒng)實時運行誤差,將該誤差e(k)作為RNN 網(wǎng)絡(luò)自學(xué)習(xí)時輸入層節(jié)點的輸入。即網(wǎng)絡(luò)輸入層輸入為:
正向計算RNN 網(wǎng)絡(luò),得到隱藏層神經(jīng)元的輸入與輸出為:
式中:ω(2)—隱藏層權(quán)重矩陣;υ(2)—隱藏層上一時刻對這一時刻影響的權(quán)重矩陣,f[·]=tanh(x)。標(biāo)記(1)、(2)依次對應(yīng)輸入層、隱藏層。進(jìn)一步帶入式(4)正向計算,得到RNN 網(wǎng)絡(luò)輸出層神經(jīng)元的輸入與輸出。其中,O(3)(k)=KI即所求的時變積分項參數(shù)。
將得到的積分項參數(shù)KI與BP 神經(jīng)網(wǎng)絡(luò)計算出的比例項參數(shù)KP和微分項參數(shù)KD帶入式(1)變速積分PID 算法中,計算得到PID 控制器當(dāng)前時刻控制量,通過式(5)采用均方誤差(Mean squarederror)法計算當(dāng)前時刻神經(jīng)網(wǎng)絡(luò)損失。選擇學(xué)習(xí)率η=0.05,動量系數(shù)α=0.05,按照梯度下降法對輸出層的權(quán)值ω(3)進(jìn)行優(yōu)化,調(diào)整算式為式(6)。接著按照梯度下降法對隱藏層的權(quán)值ω(2)進(jìn)行優(yōu)化,調(diào)整算式為:
同理按照梯度下降法修正隱藏層上一次值對這一次值影響的權(quán)重矩陣υ(2),調(diào)整算式為:
其中,f′[·]=[1-f2(x)]/2。
MATLAB 是一款系統(tǒng)模型庫的功能十分豐富的仿真平臺,因此使用MATLAB 建立仿真系統(tǒng),使用模擬的數(shù)據(jù)進(jìn)行仿真實驗,并觀察仿真結(jié)果,證實算法可行性,充分提高了工作效率。選擇相同的初始條件針對底盤測功機(jī)的恒力運行狀態(tài)進(jìn)行仿真控制,分別使用傳統(tǒng)增量式PID 算法、一般神經(jīng)網(wǎng)絡(luò)PID 算法以及文中提出的BP+RNN 變速積分PID 算法控制系統(tǒng)建立系統(tǒng)仿真模型。根據(jù)結(jié)果進(jìn)行對比分析。
首先測試傳統(tǒng)增量式PID 算法,通過初步測試選擇KP=0.75、KD=0.5、KI=0.15 作為PID 算法的三個參數(shù)值,同時將這三組參數(shù)作為一般神經(jīng)網(wǎng)絡(luò)PID 算法以及BP~RNN 變速積分PID 控制算法的參數(shù)初值。仿真系統(tǒng)采用階躍信號作為其輸入,傳統(tǒng)增量式PID 算法仿真結(jié)果,如圖4(a)所示。從圖中可以得到,使用傳統(tǒng)增量式PID 算法控制,系統(tǒng)需要經(jīng)過大約80ms 趨于穩(wěn)定,且控制時出現(xiàn)較大超調(diào)與震蕩,效果不理想。
圖4 算法仿真結(jié)果Fig.4 Algorithm Simulation Results
然后測試一般神經(jīng)網(wǎng)絡(luò)PID 算法的仿真結(jié)果,如圖4(b)所示。從圖中可以得到,系統(tǒng)只需約50ms 便可趨于穩(wěn)定。相比于傳統(tǒng)增量式PID 算法,控制時間大幅縮短,且未出現(xiàn)大幅震蕩現(xiàn)象,控制效果大幅提高,但在控制初始階段依然出現(xiàn)較大超調(diào)。
最后測試文中提出的BP+RNN 變速積分PID 算法控制系統(tǒng)的仿真結(jié)果,如圖4(c)所示。從圖中可得系統(tǒng)約花費50ms 便趨于穩(wěn)定,且相比于一般神經(jīng)網(wǎng)絡(luò)PID 算法,控制初始階段的超調(diào)基本消除,系統(tǒng)準(zhǔn)確度大幅提升。由仿真實驗結(jié)果得出該算法實施的可行性。
該次實驗利用BP+RNN 變速積分PID 算法控制系統(tǒng)對某型號汽車地盤測功機(jī)進(jìn)行實際應(yīng)用測試,實驗場所位于長安某實驗場進(jìn)行,實驗工作場地,如圖5 所示。
圖5 實驗工作場地Fig.5 Experimental Work Site
圖6 實際應(yīng)用控制效果圖Fig.6 Practical Application Mode Diagram
根據(jù)國家質(zhì)量監(jiān)督檢驗檢疫總局2018 年發(fā)布的底盤測功機(jī)使用標(biāo)準(zhǔn),底盤測功機(jī)運行狀態(tài)的工業(yè)要求誤差不大于2.0%,加載響應(yīng)需在時間300ms 內(nèi)達(dá)到90%。經(jīng)過基本標(biāo)定與測試后選擇當(dāng)前控制條件下初始的PID 參數(shù)KP=0.633、KD=2.315、KI=0.347。將參數(shù)帶入傳統(tǒng)增量式PID 算法進(jìn)行汽車底盤測功機(jī)的控制,其控制效果,如圖6(a)所示。從圖中可以得到,控制花費約100ms 趨于穩(wěn)定,但該使用該算法花費了大量時間用于整定PID參數(shù),且控制初始階段出現(xiàn)大量超調(diào);接著將初始化的參數(shù)帶入一般神經(jīng)網(wǎng)絡(luò)PID 算法進(jìn)行汽車底盤測功機(jī)的控制,其控制效果,如圖6(b)所示。從圖中可以得到控制花費約100ms 趨于穩(wěn)定,僅出現(xiàn)輕微超調(diào);最后將參數(shù)帶入這里的BP~RNN 變速積分PID 控制算法進(jìn)行汽車底盤測功機(jī)的控制,其控制效果,如圖6(c)所示??刂苹ㄙM約60ms 趨于穩(wěn)定,且沒有出現(xiàn)超調(diào)。從實際實驗結(jié)果中可以看出此BP~RNN 變速積分PID 控制算法應(yīng)用在汽車底盤測功機(jī)時的優(yōu)越性與穩(wěn)定性。
這里介紹了一種BP+RNN 變速積分PID 算法控制系統(tǒng)在汽車底盤測功機(jī)應(yīng)用的原理與效果。利用變速積分PID 算法在系統(tǒng)偏差較大時積分項減小或取消,而在系統(tǒng)偏差較小時增大的特點,在不對系統(tǒng)造成干擾的情況下減小靜態(tài)誤差與超調(diào),解決了在處理高度非線性、時滯性、運行機(jī)器的條件復(fù)雜的汽車底盤測功機(jī)系統(tǒng)時,增量式PID 容易出現(xiàn)積分飽和的問題。在參數(shù)的整定方面,采用BP 神經(jīng)網(wǎng)絡(luò)整定變速積分PID 算法的比例項、微分項參數(shù),做到參數(shù)的快速自適應(yīng)調(diào)節(jié)。同時利用RNN 網(wǎng)絡(luò)具有時序性因素的能力、能夠根據(jù)歷史數(shù)據(jù)推斷結(jié)果的特點,整定變速積分PID 算法的時變積分項參數(shù)。
經(jīng)過重復(fù)多組不同條件下的實際運行,證明該系統(tǒng)兼顧了高效與準(zhǔn)確的優(yōu)點,擁有出色的實際運行結(jié)果。相比與普通汽車底盤測功機(jī)控制效果,該系統(tǒng)能夠準(zhǔn)確快速的整定出PID 系數(shù),并且能夠有效避免控制的過程中積分項的不斷累積,可以消除在啟動、停止或大幅度更改控制目標(biāo)時,積分項輸出造成汽車底盤測功機(jī)出現(xiàn)大額超調(diào)現(xiàn)象,同時避免測功機(jī)改變目標(biāo)環(huán)境時產(chǎn)生的震蕩與靜態(tài)誤差。該BP+RNN 變速積分PID 算法控制系統(tǒng)的未來方向是進(jìn)一步豐富完善設(shè)計,從而能夠得到更準(zhǔn)確的控制效果,并且可以運用到更多場合。