李智勇
(重慶郵電大學(xué)自動化學(xué)院模式識別及應(yīng)用研究所,重慶400065)
世界能源短缺、溫室氣體排放、環(huán)境污染等問題促使各國研究開發(fā)新能源和節(jié)能、環(huán)保產(chǎn)品。交通工具的能量消耗量占世界總能源消費的40%,汽車的能源消耗量約占1/4,面對節(jié)能和環(huán)保的巨大壓力,世界各國紛紛開發(fā)新能源汽車,包括純電動汽車EV、燃料電池電動車FC、混合動力電動汽車HEV。對比其技術(shù)經(jīng)濟(jì)特性,HEV 對于加油站等基礎(chǔ)設(shè)施不會為之改變,技術(shù)性能相對成熟,污染小,噪聲低,操作簡單,成本在三者最低,略等于傳統(tǒng)汽車的1.3 倍,比較可知HEV 在現(xiàn)階段最具節(jié)能環(huán)保優(yōu)勢。為此,國家在“十一五”計劃安排了“863”節(jié)能與新能源汽車項目,把此納入國家安全戰(zhàn)略高度來考慮?;旌蟿恿ζ囎灾餮邪l(fā),成為業(yè)內(nèi)追逐的熱點,普遍看好其應(yīng)用前景。
在混合動力汽車研發(fā)過程中,其核心就在于鎳氫電池組模塊的研發(fā)。電池組模塊下一時刻的最大充放電功率值直接關(guān)乎混合動力汽車啟動和爬坡性能,是其電池組模塊使用過程中的重要參數(shù)之一,如何準(zhǔn)確地預(yù)測一直是相關(guān)研究人員關(guān)注并投入大量精力研究的課題。
文中鎳氫電池組模塊是由120 個單體鎳氫電池串聯(lián)組成,每個單體鎳氫電池的上限電壓為1.6 V,下限電壓為0.8 V,額定電壓為1.2 V。文中所指的下一時刻是一個瞬時值,由于在本次實驗中是每隔10 ms 采集一次數(shù)據(jù),因此下一時刻定為10 ms 后那一時刻。因此下一時刻最大充放電功率值,即是指從t=0 到t=10 ms 之間鎳氫電池組模塊所能吸收或釋放出的累計的最大的功率值。在汽車啟動和爬坡中,能預(yù)知其在10 ms 內(nèi)電池所釋放出的最大功率值,是很有用的。
在大多數(shù)已經(jīng)發(fā)表的有關(guān)預(yù)測鎳氫電池組模塊下一時刻最大充放電功率的文獻(xiàn)中,用傳統(tǒng)估計算法、復(fù)合脈沖法、基于SOC 法[1-2]居多,還未看到有選用人工神經(jīng)網(wǎng)絡(luò)算法來預(yù)測鎳氫電池組模塊下一時刻最大充放電功率。
文中采用人工神經(jīng)網(wǎng)絡(luò)算法,該方法預(yù)測帶有較強(qiáng)的智能性,并具有很強(qiáng)的學(xué)習(xí)功能,在處理大量的不能用規(guī)則或公式描述的原始數(shù)據(jù)時表現(xiàn)出極大的靈活性和自適應(yīng)性[3-4]。通過大量樣本的反復(fù)訓(xùn)練,神經(jīng)網(wǎng)絡(luò)能夠更好地學(xué)習(xí)和適應(yīng)未知系統(tǒng)的動態(tài)特性,并將此特性隱含存儲在網(wǎng)絡(luò)內(nèi)部的連接權(quán)中。結(jié)果證明,文中提出的ANN 算法能夠準(zhǔn)確地預(yù)測混合動力汽車中鎳氫電池組模塊下一時刻最大充放電功率。
人工神經(jīng)網(wǎng)絡(luò)算法是屬于基于歷史數(shù)據(jù)的預(yù)測方法?;跉v史數(shù)據(jù)的預(yù)測,是指根據(jù)歷史數(shù)據(jù)來預(yù)測功率的方法,也就是在鎳氫電池組模塊若干個歷史數(shù)據(jù)(包括功率、電壓、電流、溫度等)和目標(biāo)值之間建立一種映射關(guān)系,方法包括人工神經(jīng)網(wǎng)絡(luò)方法、卡爾曼濾波法、持續(xù)性算法、ARMA 算法、線性回歸模型、自適應(yīng)模糊邏輯算法等。
神經(jīng)網(wǎng)絡(luò)的性能與樣本的選取密切相關(guān)。文中在混合動力汽車多種行駛工況下,每隔10 ms 采集一次數(shù)據(jù),得到混合動力汽車中鎳氫電池組模塊(由120 個單體鎳氫電池串聯(lián)組成)的實時電壓值、電流值、溫度值等基本參數(shù)。然后根據(jù)安時法得到SOC 值。
由于采集的數(shù)據(jù)之間存在一定的相似性,如直接提取訓(xùn)練樣本則會包含很多冗余數(shù)據(jù),所以先進(jìn)行了初步整理:舍棄各種造成功率劇烈突變的不合理點,周期性或變化趨勢一致的數(shù)據(jù)也只選取一組。所有的樣本數(shù)據(jù)應(yīng)該盡可能地相互獨立并且具有代表性,否則,隨著網(wǎng)絡(luò)輸入空間維數(shù)的增加,所需的網(wǎng)絡(luò)訓(xùn)練樣本數(shù)將迅速增加,從而容易使網(wǎng)絡(luò)出現(xiàn)過擬合現(xiàn)象。系統(tǒng)的輸入輸出特性包含在數(shù)據(jù)樣本中,網(wǎng)絡(luò)的訓(xùn)練時間也明顯與訓(xùn)練數(shù)據(jù)量有關(guān),因此數(shù)據(jù)量的選擇也需要注意。實驗在選擇樣本時,先用數(shù)據(jù)量多的樣本訓(xùn)練網(wǎng)絡(luò),后用數(shù)據(jù)量較少的樣本再訓(xùn)練樣本,最后選取結(jié)果較好的一組樣本。
按照上述方法,文中總共選取了15 組樣本數(shù)據(jù)。隨機(jī)抽取N 組作為訓(xùn)練樣本訓(xùn)練網(wǎng)絡(luò),其他15 ~N 組均可作為驗證樣本,用于驗證所得到網(wǎng)絡(luò)的預(yù)測正確性以及其泛化能力。N 的大小由訓(xùn)練算法決定。
通過相應(yīng)實驗可得到目標(biāo)值與電壓的對應(yīng)曲線、目標(biāo)值與SOC 的對應(yīng)曲線、目標(biāo)值與溫度的對應(yīng)曲線,形成所謂的匹配表,通過這個匹配表,也就是目標(biāo)值與電壓、SOC、溫度的關(guān)系,可得到不同時刻、不同條件下的目標(biāo)值。
匹配表原理如圖1 所示模塊。輸入為電壓、SOC、溫度三項,根據(jù)三項與目標(biāo)值一一對應(yīng)表得到各自對應(yīng)的目標(biāo)值,再在得到的3 個目標(biāo)值中取最小的一個值作為最終目標(biāo)值。為了避免因為電池參數(shù)測量誤差的原因?qū)е码姵毓β食霈F(xiàn)大的波動,在查表得到電池功率后,再將其跟前一時刻的功率值比較,使其不能大于1。
目前,在ANN 的實際應(yīng)用中,絕大部分的神經(jīng)網(wǎng)絡(luò)模型都是采用BP 神經(jīng)網(wǎng)絡(luò) (Back-Propagation Neural Network,BPNN)。研究表明,使用三層的BPNN 可以任意逼近實際函數(shù)f[5],因此文中也采用了最常用的三層BP 神經(jīng)網(wǎng)絡(luò)。
神經(jīng)網(wǎng)絡(luò)的輸入變量是否合適,變量數(shù)量是否恰當(dāng),都將直接影響神經(jīng)網(wǎng)絡(luò)預(yù)測的準(zhǔn)確性和計算量。這輸入變量的選取對于本次預(yù)測能否成功至關(guān)重要,在這步中需經(jīng)過多種變量組合的實驗,得到各種有可能讓人想象不到的意外情況,也因此得到一個結(jié)論,對于特定的目標(biāo)值,其輸入變量組合也是特定的那幾個。變量數(shù)量不可少也不可多,少了,算法無法收斂,最終無法得到結(jié)果,多了,算法就會過于冗長,增加無限計算量,最終也無法得到結(jié)果。這就需要經(jīng)過大量實驗得到其所需的輸入變量組合。
對于功率(下一時刻最大充放電功率,簡稱為功率),因為與電壓和電流的乘積有關(guān),輸入變量自然要有電壓和電流兩個量,這一點是毋庸置疑的。單把這兩個量作為輸入量,功率作為輸出量,最終得到的結(jié)果卻是無法收斂。所以就功率來講,只有電壓和電流作為輸入量是不夠的。因為當(dāng)電壓、電流都相同時,功率是不盡相同的。又知當(dāng)SOC 不同時,功率肯定也不同,根據(jù)SOC (剩余電荷量)的定義,SOC 對功率的影響應(yīng)比電壓、電流對其的影響都大,故SOC 也必然作為一個輸入量。各輸入量、輸出量短期內(nèi)(10 ms)是具有穩(wěn)定性和連續(xù)性的,那么短期內(nèi)根據(jù)前一時刻的數(shù)據(jù)來預(yù)測后一時刻的數(shù)據(jù)是可行的。舉個例,根據(jù)研究,預(yù)測SOC 值可用人工神經(jīng)網(wǎng)絡(luò)算法預(yù)測得到,輸入量為前一時刻(10 ms)的SOC 值、電流、電壓,輸入量為此時刻的SOC 值。輸入量就有前一時刻的目標(biāo)值,而且實驗證明把前一時刻的目標(biāo)值作為一輸入量是必不可少的,這也證明了之前提到的人工神經(jīng)網(wǎng)絡(luò)算法是基于歷史數(shù)據(jù)的算法。就算其他輸入量都完全相同的情況下,前一時刻的目標(biāo)值不一樣,結(jié)果也會不一樣。而且因為文中預(yù)測的目標(biāo)值(下一時刻最大充放電功率:t=0 到t =10 ms 累加的吸收或釋放的最大的功率值)跟SOC 一樣,也是一個累加值,所以前一時刻(t=-10 ms 到t=0)的目標(biāo)值不得不作為很重要的一個輸入量。實驗證明,算法很快就收斂了,為最終得到理想的結(jié)果提供了很大的幫助。溫度影響著電池內(nèi)阻的大小等,也影響著電池能量的釋放、吸收,因此溫度也是必不可少的一個輸入量。
上述提到的ANN 的輸入量有電壓、電流、SOC、上一時刻目標(biāo)值、溫度,但實驗證明全都作為輸入量,只會讓算法過于冗長,無限增加計算量,同樣得不到結(jié)果。經(jīng)過筆者反復(fù)從這五個輸入量中提取三、四個輸入量組合實驗,得到結(jié)論:電壓、溫度、上一時刻目標(biāo)值作為輸入量,能很好地得到預(yù)測結(jié)果,其算法收斂較快,預(yù)測誤差值在可控范圍內(nèi)。
因此文中研究的重點即是確定混合動力汽車鎳氫電池組模塊的下一時刻(t=0 到t=10 ms)最大充放電功率與電壓、溫度以及上一時刻(t=-10 ms 到t=0)預(yù)測出的最大充放電功率之間的關(guān)系,這是對函數(shù)曲線的預(yù)測,同時也可以將此理解為一個三元函數(shù)。
神經(jīng)元的傳遞函數(shù)都采用線性函數(shù)。在神經(jīng)網(wǎng)絡(luò)的設(shè)計中,增加隱含層的神經(jīng)元個數(shù)可以改善網(wǎng)絡(luò)與訓(xùn)練組匹配的精確度,但是隱含層的神經(jīng)元個數(shù)并不是越多越好。神經(jīng)元個數(shù)太多會讓網(wǎng)絡(luò)記住包括噪聲在內(nèi)的所有訓(xùn)練數(shù)據(jù),這會降低網(wǎng)絡(luò)的泛化能力。在文中實驗中,通過試湊法對比仿真結(jié)果后發(fā)現(xiàn),神經(jīng)網(wǎng)絡(luò)的隱含層采用10 個神經(jīng)元就可以比較準(zhǔn)確地描述輸入變量與輸出變量的曲線關(guān)系。
在實驗中為了避免網(wǎng)絡(luò)的過度訓(xùn)練,采用訓(xùn)練和仿真交替進(jìn)行的方式。即訓(xùn)練樣本每訓(xùn)練完一次網(wǎng)絡(luò)后,保持網(wǎng)絡(luò)的權(quán)值和闕值不變,再用驗證樣本數(shù)據(jù)作為網(wǎng)絡(luò)的輸入,正向運行網(wǎng)絡(luò),檢驗輸出的平均誤差。由于在實驗時,使用前一刻的目標(biāo)值輸出量作為下一時刻的輸入量,即Pt+1 =P't,t >1 且為整數(shù),所以當(dāng)繼續(xù)訓(xùn)練不能減小網(wǎng)絡(luò)的輸出平均誤差時,我們就認(rèn)為本輪網(wǎng)絡(luò)訓(xùn)練結(jié)束。
當(dāng)給一個訓(xùn)練結(jié)束的BP 網(wǎng)絡(luò)提供新的記憶模式時,已有的連接權(quán)將被打亂,這導(dǎo)致已記憶的學(xué)習(xí)模式的信息消失,在重新訓(xùn)練新網(wǎng)絡(luò)時需要加入原來的學(xué)習(xí)模式。因此,在增加訓(xùn)練樣本時,原來的樣本也要保留。如果在加入新的訓(xùn)練數(shù)據(jù)后,不能訓(xùn)練得到比上一個網(wǎng)絡(luò)平均誤差還要小的網(wǎng)絡(luò),就說明這個神經(jīng)網(wǎng)絡(luò)已經(jīng)接近穩(wěn)定,是實驗想要通過訓(xùn)練得到的神經(jīng)網(wǎng)絡(luò)。訓(xùn)練數(shù)據(jù)組數(shù)N 由此決定。預(yù)先設(shè)置的訓(xùn)練結(jié)束目標(biāo)并不是越小越好,因為網(wǎng)絡(luò)存在過度訓(xùn)練的問題。更新訓(xùn)練總步數(shù)是指網(wǎng)絡(luò)在沒有收斂的時候進(jìn)行下一輪訓(xùn)練。實驗在本輪訓(xùn)練結(jié)束后,還將判斷神經(jīng)網(wǎng)絡(luò)預(yù)測的平均誤差是否比上一輪小,如果是就需要用相同的方法繼續(xù)訓(xùn)練,直至不再減小為止,否則就增加樣本進(jìn)行新的訓(xùn)練。
根據(jù)上面所設(shè)計的ANN 算法以及按上面方法所提取的樣本數(shù)據(jù),在Matlab 中對其進(jìn)行仿真。仿真結(jié)果如下。
一是輸入量數(shù)量少的情況,假使輸入量僅為電壓、電流,仿真如圖2 所示,藍(lán)色曲線為實際功率值,紅色曲線為通過人工神經(jīng)網(wǎng)絡(luò)算法預(yù)測功率值的仿真結(jié)果,誤差越來越大,無法收斂。若取電壓、電流、SOC、溫度中任意兩項作為輸入量都會出現(xiàn)無法收斂,誤差很明顯的結(jié)果。
二是輸入量數(shù)量過多的情況,假使電壓、電流、SOC、溫度、前一刻目標(biāo)值等均作為輸入量,結(jié)果是仿真很長時間都無法得到結(jié)果圖。輸入量數(shù)量過多,使計算量無限增加,導(dǎo)致無法得到結(jié)果。
經(jīng)過輸入量組合實驗,當(dāng)輸入量為電壓、溫度、前一時刻目標(biāo)值三項時,可得到較理想的結(jié)果,并且仿真時間不會很長,大概在半小時到1 小時之間。如圖3 所示,紅色的仿真功率曲線與藍(lán)色的實際功率曲線較接近。
在上文中提到,由于使用前一刻的目標(biāo)值輸出量作為下一時刻的輸入量,當(dāng)給一個訓(xùn)練結(jié)束的BP 網(wǎng)絡(luò)提供新的記憶模式時,已有的連接權(quán)將被打亂,這導(dǎo)致已記憶的學(xué)習(xí)模式的信息消失,在重新訓(xùn)練新網(wǎng)絡(luò)時需要加入原來的學(xué)習(xí)模式。因此,在增加訓(xùn)練樣本時,原來的樣本也要保留。
如圖4 是用一組樣本數(shù)據(jù)作為訓(xùn)練數(shù)據(jù),訓(xùn)練人工神經(jīng)網(wǎng)絡(luò)模型,再用其他數(shù)據(jù)進(jìn)行驗證,其平均誤差為13.65%,誤差太大,需進(jìn)一步優(yōu)化模型。如圖5 是按照之前算法所提到的,在基于圖4 的訓(xùn)練數(shù)據(jù)上,再多加一組數(shù)據(jù)作為訓(xùn)練數(shù)據(jù),仿真結(jié)果得出,其平均誤差為10.67%。同理,如圖6 所示,在基于圖5 的訓(xùn)練數(shù)據(jù)上,再多加一組數(shù)據(jù),此時有三組數(shù)據(jù)(包括圖4 的數(shù)據(jù)、圖5 新添加的數(shù)據(jù)和圖6 新添加的數(shù)據(jù))作為訓(xùn)練數(shù)據(jù),仿真結(jié)果得出,其平均誤差比圖5 更小,為7.42%。如圖7 所示,當(dāng)再按照上面做法添加另一組數(shù)據(jù)作為訓(xùn)練數(shù)據(jù)時,仿真結(jié)果得出,其平均誤差為7.39%,與圖6相差很小。若再添加訓(xùn)練數(shù)據(jù),誤差不會再縮小多少,但仿真時間會增加不少,還會存在過度訓(xùn)練的問題。由此這個神經(jīng)網(wǎng)絡(luò)已經(jīng)趨于穩(wěn)定,訓(xùn)練數(shù)據(jù)組數(shù)由此決定,為4 組。
為了驗證文中人工神經(jīng)網(wǎng)絡(luò)算法預(yù)測鎳氫電池最大充放電功率的可行性,必須引入現(xiàn)行估算鎳氫電池最大充放電功率的最為實際和可靠的方法對其預(yù)測的結(jié)果數(shù)據(jù)進(jìn)行比較驗證分析。
可近似地認(rèn)為,瞬時電流不變,放電時電池電壓降到下限電壓,充電時電池電壓升到上限電壓,那么鎳氫電池下一時刻最大功率值估算為電流與電壓與最大或最小工作電壓之差的乘積,將此作為驗證文中人工神經(jīng)網(wǎng)絡(luò)算法預(yù)測鎳氫電池最大充放電功率可行性的依據(jù)。
下面是用人工神經(jīng)網(wǎng)絡(luò)模型和電流電壓乘積估算方法來預(yù)測最大放電功率值的比較曲線,如圖8 所示。
圖8 中,藍(lán)色曲線為人工神經(jīng)網(wǎng)絡(luò)模型預(yù)測功率曲線,紅色曲線為電流電壓乘積估計算法預(yù)測功率曲線,由圖可知兩種不同方法預(yù)測功率的效果比較接近,又由于用電流電壓乘積估計算法理論可靠,故與此對比的人工神經(jīng)網(wǎng)絡(luò)模型預(yù)測功率也是比較可靠的,是具有一定的可行性的。
為了在汽車運行過程中實時預(yù)測鎳氫電池下一時刻最大充放電功率值,同時保證預(yù)測的準(zhǔn)確性和良好的自適應(yīng)能力,文中設(shè)計了一種可用于預(yù)測功率的3 個輸入(電壓、溫度、前一時刻目標(biāo)值)、10 個神經(jīng)元、1 個輸出的人工神經(jīng)網(wǎng)絡(luò)模型,并逐步選用1 組到4 組數(shù)據(jù)作為訓(xùn)練數(shù)據(jù)進(jìn)行訓(xùn)練優(yōu)化過程。該神經(jīng)網(wǎng)絡(luò)模型把電池上一時刻的功率狀態(tài)即Pt引入到神經(jīng)網(wǎng)絡(luò)模型的預(yù)測中,從而考慮了Pt對預(yù)測Pt+1的影響,提高了神經(jīng)網(wǎng)絡(luò)的自適應(yīng)能力。在神經(jīng)網(wǎng)絡(luò)的訓(xùn)練過程中采用了比例共軛梯度算法,通過交替訓(xùn)練仿真,不斷地修改網(wǎng)絡(luò)中各種連接的權(quán)重,最終形成固定的記憶模式用于對功率的預(yù)測。同時根據(jù)不同的神經(jīng)網(wǎng)絡(luò)仿真誤差的比較避免網(wǎng)絡(luò)的過度訓(xùn)練。仿真結(jié)果表明,本實驗建立的人工神經(jīng)網(wǎng)絡(luò)模型預(yù)測混合汽車鎳氫電池最大充放電功率誤差在8%內(nèi),是比較可靠的,具有一定的可行性。
【1】Gregory L Plett. High-Performance Battery-Pack Power Estimation Using a Dynamic Cell Model[J]. IEEE Transactions on Vehicle-Technology(S0018-9545),2004,53(5):1586-1593.
【2】INEEL(Idaho National Engineering & Environmental Laboratory).Freedom CAR Battery Test Manual for Power-Assist HybridElectric Vehicles[Z]. DOE/ID-11069,2003,PDF version. USA:INEE-L.2003.
【3】Salkind A,F(xiàn)ennie C,Singh P,Atwater T,Reisner D. Determination of state-of-charge and state-of-health of batteries by fuzzy logic methodology[J]. Journal of Power Sources,1999,80(2):293-300.
【4】Shen Wenxue. State of available capacity estimation for lead-acidbatteries in electric vehicles using neural network[J].Energy Conversion and Management,2007,48(2):433-442.
【5】Zhang Hongmei,Deng Zhenglong.UKF-based attitude determination method for gyro less satellite[J].Journal of System Engineering and Electronics,2004,15(2):105-109.