郝可青,呂志剛,李 葉,邸若海,朱鴻杰
(1.西安工業(yè)大學 兵器科學與技術(shù)學院,西安 710021;2.西安工業(yè)大學 電子信息工程學院,西安 710021)
鋰離子電池在軍事應用中具有卓越的性能,因此廣泛應用于單兵系統(tǒng)、衛(wèi)星飛船以及無人戰(zhàn)機等諸多兵種。然而在鋰電池的循環(huán)使用中容易發(fā)生高溫腐蝕老化以及電流電壓參數(shù)的改變會導致鋰電池設(shè)備出現(xiàn)故障,從而造成不可預估的損失。因此對鋰電池進行剩余使用壽命(Remaining Useful Life,RUL) 預測是十分有必要的。目前,對于鋰電池的RUL預測主要分為基于模型的預測方法和數(shù)據(jù)驅(qū)動的預測方法。由于數(shù)據(jù)驅(qū)動的方法具有更高的預測精度并且能夠提高網(wǎng)絡的泛化能力,因此通常選用該方法進行鋰電池的RUL預測。
反向傳播神經(jīng)網(wǎng)絡(Back Propagation Neural Network,BPNN)是1986年由D.Rumelhart和J.McClelland為首的科學家提出的概念,是一種按照誤差逆向傳播算法訓練的多層前饋神經(jīng)網(wǎng)絡,是應用最廣泛的神經(jīng)網(wǎng)絡[1]。它具有大規(guī)模并行、分布式處理、自組織、自學習等優(yōu)點,已被廣泛應用于語音分析[2]、圖像識別[3]、計算機視覺[4]、模式識別與分類[5]、故障預測[6]等領(lǐng)域。
小樣本問題廣泛存在于各個行業(yè)中,廣義上來講,數(shù)據(jù)量少、樣本結(jié)構(gòu)不平衡、數(shù)據(jù)集信息覆蓋率低都屬于小樣本問題,由于鋰電池的加速老化試驗周期長且可測量參數(shù)較少,因此得到的失效數(shù)據(jù)樣本較少,且在小樣本條件下構(gòu)建的鋰電池預測模型會存在過擬合等問題,故無法用傳統(tǒng)的神經(jīng)網(wǎng)絡算法進行鋰電池小樣本數(shù)據(jù)的模型訓練。文獻[7]提出基于數(shù)據(jù)中心位置跟蹤方法(Central Location Tracking Method,CLTM)的神經(jīng)網(wǎng)絡權(quán)值確定方法,實驗證明該方法可以使用小數(shù)據(jù)集進行預測,但該方法隨機性較大,需要多次實驗才能準確驗證。文獻[8]提出基于先驗知識約束和少量樣本數(shù)據(jù)的Elman動態(tài)遞歸神經(jīng)網(wǎng)絡的算法,以混凝沉淀過程的兩個約束條件和數(shù)據(jù)集進行了算法驗證,但Elman網(wǎng)絡存在訓練速度慢和容易陷入局部極小值的問題。文獻[9]提出基于線性先驗的徑向基函數(shù)神經(jīng)網(wǎng)絡算法,開發(fā)了基于廣義約束線性神經(jīng)網(wǎng)絡-先驗(Generalized Constraint Neural Network-Linear priors,GCNN-LP)的工具箱,但是難以適用于其他網(wǎng)絡模型。文獻[10]提出基于虛擬樣本生成(Virtual Sample Generation,VSG)的神經(jīng)網(wǎng)絡算法,并利用加州大學歐文分校(University of CaliforniaIrvine,UCI)數(shù)據(jù)集驗證了該方法的有效性,但如果真實數(shù)據(jù)具有相關(guān)屬性,則該方法不能完全適用。文獻[11]提出利用Bootstrap法和核密度拉丁超立方采樣法擴充訓練樣本,利用擴充后的樣本訓練BPNN,在保障小樣本自身規(guī)律的情況下,解決了小樣本數(shù)據(jù)BPNN建模問題,但得到的參數(shù)結(jié)果都是隨機變量,這導致模型的預測精度較差。文獻[12]提出基于小樣本的殘差BPNN,通過將多個殘差BPNN模塊進行堆疊提高小樣本BPNN預測精度,但設(shè)計過程過于復雜。通過對上述文獻進行分析可得,解決小樣本條件下BPNN建模的方法可分為兩種:① 利用數(shù)據(jù)擬合模型或采樣的方法進行數(shù)據(jù)擴充,構(gòu)造合成樣本,但該方法得到的數(shù)據(jù)隨機性較大且質(zhì)量并不高,導致模型的預測精度并不高;② 把先驗知識作為已知的約束條件加入到神經(jīng)網(wǎng)絡的訓練過程中,構(gòu)建基于先驗知識的神經(jīng)網(wǎng)絡建模方法。因此,文中提出融合先驗知識的BPNN建模方法,以懲罰函數(shù)法的形式將單調(diào)性約束加入網(wǎng)絡性能函數(shù)中,完成神經(jīng)網(wǎng)絡優(yōu)化設(shè)計,并利用改進的粒子群算法(Particle Swarm Optimization,PSO)優(yōu)化初始權(quán)值和閾值,可以提高網(wǎng)絡的泛化能力以及避免網(wǎng)絡陷入局部最優(yōu)值。
先驗知識指的是領(lǐng)域?qū)<以趯ρ芯繂栴}的機理有一定的了解。胡包鋼等將先驗信息定義如下:“先驗信息是指在對目標系統(tǒng)實施建?;蚍治銮熬鸵阎娜魏蜗嚓P(guān)信息(廣義含義,包括知識、經(jīng)驗,常識和特定要求等)”[13]。常用的先驗知識有單調(diào)性、凹凸性和等式約束等。實際生產(chǎn)中任何復雜的數(shù)學關(guān)系,都可以將其某個區(qū)間劃分為具有單調(diào)關(guān)系的區(qū)段,然后利用單調(diào)性來進行處理。
如果在區(qū)間[x1,x2]內(nèi)都存在函數(shù)f(x),那么單調(diào)性的數(shù)學定義為
(1)
式(1)中若輸入輸出滿足該單調(diào)性關(guān)系,則稱f(x)在此區(qū)間為單調(diào)遞增函數(shù)。
因此,文中將單調(diào)性作為先驗知識,通過增加單調(diào)性信息來增加小數(shù)據(jù)集條件下BPNN訓練可獲得的信息量,使訓練所得模型更加真實有效,提高模型預測精度。
(2)
式中:w1為輸入層到隱含層的權(quán)值矩陣;w2為隱含層到輸出層的權(quán)值矩陣。
網(wǎng)絡均方誤差為
(3)
將輸入pi與輸出Y呈單調(diào)遞增的約束條件Ci進行數(shù)學推導,得到的結(jié)果為
(4)
根據(jù)最優(yōu)化原理中的懲罰函數(shù)法,將單調(diào)性作為先驗條件引入網(wǎng)絡,對神經(jīng)網(wǎng)絡模型訓練產(chǎn)生的輸出數(shù)據(jù)進行單調(diào)性判斷。如果實際數(shù)學關(guān)系是單調(diào)遞增(遞減)的,神經(jīng)網(wǎng)絡訓練結(jié)果也是單調(diào)遞增(遞減)的,那么說明符合這次訓練過程先驗知識,不加懲罰,如果判斷后結(jié)果與實際值相反,則給予懲罰處理。因此,性能函數(shù)應該由兩部分組成:① 最小均方誤差,其作用是盡量使實際輸出逼近目標值;② 約束項,懲罰函數(shù)的作用是盡量滿足先驗知識約束。重新定義的網(wǎng)絡性能函數(shù)f(e)為
f(e)=L(e)+μCi,
(5)
式中:Ci的取值為
(6)
式(5)中e為誤差輸出,μ為懲罰因子決定了第二部分對性能影響的權(quán)重。μ取0時,忽略約束;μ取的越小,訓練所得模型越容易違背先驗知識;μ取值越大,訓練所得模型越不容易違背先驗知識,但訓練所得實際輸出與目標值會有一定的偏差。
當Ci>0時,即當輸入輸出滿足單調(diào)遞增條件時,權(quán)值閾值更新為
(7)
式中:k為當前隱含層節(jié)點個數(shù);α為學習速率。
當Ci≤0時,即當輸入輸出違背單調(diào)遞增條件時,權(quán)值閾值更新為
(8)
由式(4)得
(9)
設(shè)網(wǎng)絡訓練算法采用最小均方誤差算法,則最終權(quán)值閾值更新為
(10)
由于初始權(quán)值和閾值的好壞會影響B(tài)P網(wǎng)絡訓練的時間和精度,“壞”的初始參數(shù)可能使BPNN訓練陷入局部最優(yōu)。因此,現(xiàn)有方法多將粒子群算法的全局尋優(yōu)能力與BP算法的局部尋優(yōu)能力相結(jié)合,利用粒子群算法來優(yōu)化神經(jīng)網(wǎng)絡的拓撲結(jié)構(gòu)、連接權(quán)值和閾值,以提高神經(jīng)網(wǎng)絡的泛化能力和學習性能。
實驗證明,粒子群算法中的慣性權(quán)重系數(shù)w的數(shù)值較大時能夠增強粒子進行整體搜索能力,慣性系數(shù)W數(shù)值較小時能夠增強粒子進行局部搜索能力[14]。為了權(quán)衡粒子局部搜索以及全局搜索的能力,文中將自適應權(quán)重和線性遞減權(quán)重結(jié)合提出改進的粒子群算法W-PSO來優(yōu)化神經(jīng)網(wǎng)絡的權(quán)值和閾值。W-PSO算法的具體表達如下:
設(shè)搜索空間是D維,那么第i個粒子的位置可表示為Xi=(xi1,xi2,…,xiD),速度可表示為Vi=(vi1,vi2,…,viD),個體最優(yōu)極值為Pi=(pi1,pi2,…,piD),全局最優(yōu)極值為Gi=(gi1,gi2,…,giD),i表示粒子的個數(shù)即i={1,2,…,m},VK+1為第K+1個的粒子速度與位置的更新為
VK+1=WVK+c1r1(PK-XK)+c2r2(GK-XK),
(11)
XK+1=XK+VK+1,
(12)
(13)
式(11)~式(12)中c1,c2為加速因子;r1,r2為隨機數(shù),一般取值在[0,1]之間;Wmax為開始時的慣性權(quán)重;Wmin為迭代數(shù)目達到最大值時的慣性系數(shù);f是當前的適應度值;favg為平均適應度值;fmin為最小適應度值;Tmax為迭代次數(shù)最大值;K為當前的迭代次數(shù);PK為當前個體最優(yōu)極值;XK,XK+1分別為第K和K+1個粒子的位值;GK為當前全局最優(yōu)極值。
融合W-PSO和單調(diào)性約束的BPNN算法步驟為
① 確定BPNN網(wǎng)絡結(jié)構(gòu),根據(jù)網(wǎng)絡的結(jié)構(gòu)初始化粒子種群及參數(shù);
② 根據(jù)式(11)~式(13)計算W-PSO算法的粒子適應度值,尋找個體最優(yōu)值和種群最優(yōu)值;
③ 判斷是否滿足終止迭代條件,若滿足,則對其進行解碼,獲得優(yōu)化的權(quán)值和閾值,若不滿足,則更新粒子速度和位置,返回②,重新尋找最優(yōu)值;
④ 根據(jù)式(2)~式(6)計算網(wǎng)絡輸出和添加約束的懲罰項系數(shù)大?。?/p>
⑤ 判斷是否滿足單調(diào)性約束,若滿足跳轉(zhuǎn)到⑥,若不滿足跳轉(zhuǎn)到⑦;
⑥ 計算式(5),采用式(7)更新權(quán)值閾值;
⑦ 計算式(5),采用式(10)更新權(quán)值閾值;
⑧ 判斷是否達到目標精度和最大循環(huán)次數(shù),重復④~⑦,直至滿足要求,結(jié)束網(wǎng)絡訓練。
圖1表示當種群個數(shù)為50,最大維數(shù)為50,最大迭代次數(shù)為500,c1=c2=2,Wmin=0.4,Wmax=0.9時,文中所提算法W-PSO和原始自適應權(quán)重PSO-adaption算法、線性遞減權(quán)重PSO-linear算法在測試函數(shù)Sphere Model和Generalized Griewank上的對比結(jié)果。其中Sphere Model為非線性的單峰單極值函數(shù),原點取最小值時,其f表達式為
(14)
Generalized Griewank為多峰多極值函數(shù),原點取最小值時,表達式為
(15)
由圖1可知,與PSO-adaption算法和PSO-linear算法相比,文中所提W-PSO算法具有更快的收斂速度和更高的收斂精度。
圖1 三種PSO算法的測試結(jié)果對比
2.2.1 先驗知識的獲取
為了驗證W-PSO算法的性能,文中使用Matlab 2020a實現(xiàn)網(wǎng)絡模型的構(gòu)建和訓練,操作系統(tǒng)為Windows 10,內(nèi)存16 GB。文中實驗采用美國國家航空航天局(National Aeronautics and Space Administration,NASA)鋰離子電池性能退化試驗數(shù)據(jù)集[15]進行算法驗證和模型比較,該數(shù)據(jù)庫選用18650鋰離子蓄電池進行循環(huán)充放電的老化試驗,循環(huán)充放電導致鋰離子電池的性能發(fā)生退化,造成實際電池容量衰減,每個完整的充放電周期包含充電、放電和阻抗測量三個工作過程。實驗過程如下:① 鋰離子電池在電流為1.5A恒流狀態(tài)下進行充電,電壓上升至4.2 V,在恒壓模式下繼續(xù)保持充電狀態(tài),直到充電電流降至 20 mA,則表示充電已經(jīng)結(jié)束; ② 鋰離子電池在恒流模式下進行放電,直到電壓達到設(shè)定的某一截止電壓時停止放電;③ 實驗測量鋰離子電池的阻抗通過EIS 頻率掃描來實現(xiàn),通常設(shè)置掃描范圍為0.1~5×103Hz。
文中將電池容量C作為鋰離子電池性能退化的直接健康因子,以F1~F5指標為間接影響因子,構(gòu)建BPNN。F1,F2分別表示為等壓升、等流降充電時間間隔,F(xiàn)3表示為等壓降放電時間間隔,F(xiàn)4,F5分別表示為充電、放電過程中的平均溫度。
其中第一個和第二個間接健康因子是從鋰電池的恒流/恒壓充電曲線中提取的。如圖2(a)所示,在恒流充電過程中,電壓從較低的值升為較高的值,取這一階段為F1。如圖2(b)所示,在恒壓充電過程中,電流從較高的值下降為一個穩(wěn)定值,這一階段為F2,鋰電池的總充電時間會隨著電池容量的衰減而逐漸縮短。由于在實際情況中,存在著不完全充放電的現(xiàn)象,故F1是人工設(shè)定的兩個電壓之間的時間間隔,F(xiàn)2也是人工設(shè)定的兩個電流之間的時間間隔。
圖2 F1,F2,F3間接影響因子提取
類比F1和F2的提取方法,從電池的放電電壓曲線中提取等壓降放電時間間隔為F3,如圖2(c)所示,可明顯看出等壓降放電時間間隔隨著充放電周期的增長而呈現(xiàn)遞減的趨勢。將充放電過程中的平均溫度作為F4和F5,可以使得在線容量的估計更為簡便,圖3(a)所示為F1開始時刻到F2結(jié)束時刻之間的電池平均溫度,圖3(b)所示為F3時間段內(nèi)的電池平均溫度。
通過對數(shù)據(jù)進行處理獲得先驗知識,如圖4所示。
圖3 F4,F5間接影響因子提取
圖4 獲取的先驗知識
其中,圖4(a)表示F1與C呈單調(diào)遞增關(guān)系;圖4(b)表示F2與C呈單調(diào)遞減關(guān)系;圖4(c)表示F3與C呈單調(diào)遞增關(guān)系;圖4(d)表示F5與C呈單調(diào)遞減關(guān)系。由圖4可知,獲得4條先驗知識均可添加到BPNN的訓練中,其中,F(xiàn)4與C并不存在單調(diào)性關(guān)系。
2.2.2 預測誤差對比
以增加一條先驗知識為例,證明所提算法的有效性。圖5為當懲罰因子μ=1,訓練集為40和30,增加F1與C單調(diào)遞增約束和W-PSO,128和138個測試集的預測結(jié)果。圖6為當懲罰因子μ=0.1和μ=0.5,訓練集為40,增加F1與剩余容量C單調(diào)遞增約束和W-PSO,128個測試集的預測結(jié)果。其中,預測結(jié)果的好壞以平均誤差R(R=均方誤差SSE/測試樣本個數(shù))的大小進行衡量,R越小,預測誤差越小,算法性能更優(yōu)。
圖5 不同算法預測平均誤差對比
圖6 不同算法預測平均誤差對比
由圖5可看出,標準PSO-BP算法的平均誤差R1最大,W-PSO無約束條件算法的平均誤差R2次之,文中所改進的W-PSO有約束條件算法的平均誤差R3最小,即文中算法在鋰電池數(shù)據(jù)為小樣本條件下具有更好的預測性能。
由圖6可知,懲罰因子μ的大小會影響文中算法性能,μ越大預測誤差越小,μ值的取值范圍可通過均方誤差的量級確定。當μ取值不同時,所對應的誤差見表1,其中R13表示W(wǎng)-PSO無約束的條件下與W-PSO有約束的條件下的差值,其中R23表示標準PSO的條件下與W-PSO有約束的條件下的差值。
表1 平均誤差分析
文中通過將先驗知識添加到BPNN的性能函數(shù)中以此提高鋰電池剩余使用壽命預測模型的精度以及增強網(wǎng)絡的魯棒性,可得到以下結(jié)論:
1) 構(gòu)建自適應變化的慣性權(quán)重系數(shù),提出W-PSO算法,將先驗知識以單調(diào)性約束的形式加入到BPNN性能函數(shù)中。
2) 利用W-PSO算法能夠增強權(quán)衡局部搜索以及全局搜索的能力,避免網(wǎng)絡陷入局部最優(yōu)解,當模型的訓練集個數(shù)相同時,誤差隨著約束項系數(shù)的增大而減小。
3) 采用NASA鋰電池失效數(shù)據(jù)集,通過實驗對比分析文中所提算法與其他常用鋰電池壽命預測算法,可得文中算法構(gòu)建的模型平均誤差下降了5%,具有更高的預測精度,且該方法可與大樣本條件下的模型預測方法進行對比分析研究。