趙孟娜,米 林,馮 勇
(1.重慶理工大學 重慶汽車學院 400054;2.重慶永通信息實業有限公司,重慶 400084)
對純電動汽車(EV)而言,動力電池是汽車動力的唯一來源,所以蓄電池的性能對整個汽車起著舉足輕重的作用。而在行駛過程中,最關心的莫過于使用過程中消耗了多少電量,剩余電量還能夠行駛多少里程。這就要求電池管理系統能夠根據汽車當前的形式狀況,預測汽車的續駛里程,以減輕駕駛員的壓力,也能防止汽車半路出現故障,提高駕駛的安全性。由此可見,在電池管理系統中,準確預測電池荷電狀態(state of charge,SOC)是管理系統中最為關鍵的任務。SOC 作為電池的內特性,不能直接進行測量,只能通過電壓、電流、溫度等外參數特性進行估計。目前使用的各種測算方法中,神經網絡估算法是公認較為精確的1 種[1-3]。
人工神經網絡(artificial neural networks,ANN)出現在20世紀40 年代,是1 門涉及多學科的技術,包括神經學、數學、統計學、計算機學、物理學和工程學等。目前所使用的神經網絡,從連接結構方面主要包括2 種:反饋型神經網絡(recurrent network)和前饋型神經網絡(feed forward network)。多層前饋神經網絡,是目前被廣泛使用的1 種,這種網絡主要由輸入、至少1 個隱含層和輸出組成,各層至少包含1 個神經元,信息在各層之間進行傳遞。其網絡模型的特點是:每層神經元只和相鄰層進行信息交換,而各層間并沒有這種交換,網絡權值的調整主要利用誤差反向傳播(error back propagation)即BP 學習算法來進行,因為大多數多層前饋神經網絡使用這種算法,故多層前饋神經網絡習慣性被稱為BP 網絡。
BP 神經網絡結構包括輸入層(input layer)、隱含層(hide layer)以及輸出層(output layer),并由許多簡單的并行運算神經元組成每層結構,這些神經元就如同于人體神經系統中的神經元,每層的神經元使用全互連方式進行信息交替,但同1 層的神經元之間并沒有聯系。單看每個神經元,都是功能單一機構,但大量神經元在一起,就可以實現許許多多的功能。
圖1是1個典型BP網絡的拓撲結構。在BP 網絡拓撲結構中,實際問題決定了輸入、輸出層的節點數目,其關鍵就是如何確定隱含層的層數和節點數目。

圖1 BP 網絡拓撲結構
輸入層和輸出層之間的隱含層,主要是為了提取一類輸入模式中區別于其他的特征,是輸入模式網絡的內在表示,能夠將提取出來的特征傳遞到輸出層,由輸出層對輸入的類別做出相應判斷。隱含層特征的抽取過程,就是“自組織化”輸入層與隱含層之間的權值,這個權值起傳遞特征的作用,所以通常也把隱含層叫做特征抽取層。在“自組織化過程”中,網絡權值開始是隨機化賦值,并在訓練中不斷進行更改,最終能夠表征輸入模式的特征[4]。
進入軟件后首先是開始界面,如圖2 所示。這個界面主要顯示了軟件名稱和設計單位,同時有2 個按鍵,分別為檢查開始和退出系統按鍵,用戶可選擇用來開始檢測和錯誤打開軟件后退出系統。

圖2 汽車SOC 檢測系統開始界面
點擊檢測開始后進入到數據輸入界面(如圖3),數據選擇分為輸入向量和目標向量選擇,用戶可以通過Brown 調用以excel 格式存儲在電腦中的訓練和測試數據,避免神經網絡工具箱采用的手動輸入,節約了時間。界面下方的3 個按鈕界面,可方便用戶退回上一步,繼續下一步和退出系統。

圖3 汽車SOC 檢測系統數據選擇界面
完成數據輸入后,點擊開始創建網絡按鈕,進入網絡生成界面,如圖4 所示。在此頁面上可自定義網絡名稱和選擇網絡類型。由于此軟件主要用來進行基于BP 網絡的SOC預測,所以在程序中只設計了BP 網絡下的相關參數,用戶也可根據實際需要,選用其他神經網絡,并在后臺進行相關內容設計。
在此界面下方,是數據確認模塊,用戶在此模塊可選擇歷史輸入數據和輸出數據,避免調用經驗數據時重復輸入。

圖4 汽車SOC 檢測系統網絡生成界面
點擊頁面上的進入創建網絡按鈕,即進入到網絡參數選擇頁面1(見圖5),在此界面可以進行隱層訓練函數、自適應學習函數和誤差類型的選擇。Matlab 神經網絡工具箱在使用中,要考慮設計網絡的層數,但是由于Robert Hecht-Niel 曾經證明了對任何閉區間的連續函數,都可使用1 個隱含層的BP 網絡來逼近,因此1 個3 層(即只含有1 個隱含層)BP 網絡都可以完成任意n 維到m 維的非線性映射[5]。增加層數可以降低誤差,提高精度,但同時也會使網絡更加復雜,增加權值的訓練時間,所以在本設計中默認網絡為3 層。

圖5 汽車SOC 檢測系統網絡參數選擇界面1
訓練函數可以選擇多種,包括傳統的BP 算法訓練函數以及改進的訓練算法,如動量梯度下降BP 算法、彈性BP 算法、動態自適應學習速率梯度下降BP 算法等,用戶可根據需要進行選擇。
自適應學習函數包括learngd 和learngdm 兩種。learngd是梯度下降和閥值學習函數,他采用梯度下降的方法對閥值和權值進行調整,調整量為學習速率和梯度的乘積;learngdm是動量梯度下降權值和閥值學習函數,他采用動量梯度下降法對閥值和權值進行調整,也就是說,閥值和權值的調整值是由動量因子、前1次學習時的調整量、學習速率和梯度等因素共同決定的。自適應學習速率的選擇跟所選的訓練函數有關。
誤差性能函數通過計算網絡輸出矢量和目標矢量之間的差異來衡量神經網絡的性能,BP 網絡中常用的性能參數有3 個,分別是均方誤差函數MSE、規則化均方誤差函數MSEREG 以及平方和誤差函數SSE,是否為合適的性能參數要通過對比訓練以后才能確定[5]。
點擊圖4 所示界面的繼續參數設置按鈕,進入到圖6 所示的網絡參數選擇界面2,在此界面主要完成隱層、輸出層網絡節點和傳遞函數的選擇。對于各層節點數的選擇,由于輸入層主要起緩沖存貯器的作用,主要用來接收外部輸入數據,其節點數主要取決于輸入矢量維數,因此不用特意進行設定。輸出層節點主要取決于輸出數據的類型和表示該類型的數據大小。

圖6 汽車SOC 檢測系統網絡參數選擇界面2
隱含層的節點取值,很多學者都進行過相關的研究,但是至今為止,都沒有找到1 個很好的解析式。目前隱含層節點數主要根據前人設計經驗和自己進行替代試驗來確定。通常來說,節點數的多少與求解問題需要、輸入輸出層節點有關,在能夠正確反映輸入和輸出的基礎上,要盡量選用較少的隱含層節點數,使網絡簡單,以加快運算速度。隱含層節點的初始值可先通過以下2 個公式中的任1 個來確定

其中:m 和n 分別是輸入層和輸出層的節點數;a 是1 ~10 的常數。可先根據這2 個公式中的1 個得出初始值,然后用逐步增長的方法來確定隱層節點數。
對于傳遞函數,BP 算法神經元采用的傳遞函數必須可導。BP 網絡的隱含層,不論是含有1 個還是多個,都是采用Sigmoid 型傳遞函數。輸出層神經元傳遞函數采用線性的Pureline 型傳遞函數,網絡的輸出可取任意值。Sigmoid 型函數包括log-sigmoid 和tan-sigmoid 函數。log-sigmoid 函數叫做單極性傳遞函數,tan-sigmoid 函數叫做雙曲正切函數,他們可以將(- ∞,+ ∞)的輸入分別映射到區間(0,1)和(-1,+1)。實際應用中選擇哪種傳遞函數,要考慮輸入和輸出的關系:當輸出不含有負值時,通常采用log-sigmoid 函數;當輸出含有負值時,通常采用tan-sigmoid 函數。
點擊圖6 的進入網絡訓練按鈕,進入訓練參數設置界面,如圖7 所示,可以在本頁面設置顯示間隔次數、最大訓練次數、目標誤差、學習速率和動量因子等參數。同時界面還可以根據輸入數據大小,決定是否進行歸一化處理。
參數設置好以后,點擊訓練網絡按鈕,開始進行網絡訓練。訓練過程主要在后臺程序中進行,在這個過程中,需要調用BP 網絡中的newff、train 和sim3 個神經網絡函數,各函數解釋如下。

圖7 汽車SOC 檢測系統訓練參數設置界面
1)newff 函數用來構建BP 神經網絡,其函數形式為

其中:PR 為R 維輸入向量的最大最小值的RX2 矩陣;Si為第i 層網絡神經元個數,共有N 層;TFi為i 層網路的傳遞函數,默認為tansig 函數;BTF 為神經網絡的訓練函數,默認為trainlm 函數;BLF 為神經網絡權值/偏差的學習函數;PF 為性能評價函數,默認為mse 函數。后臺程序調用newff 函數,讀取以上面板設置的相關參數。在確定網絡結構后,newff會自動的調用init 函數,用默認值初始化網絡中的各閥值和權值,產生1 個可訓練的前向反饋網絡,函數返回值為net。2)train 函數是BP 神經網絡訓練函數,其函數形式為

其中:NET 為待訓練網絡;X 為輸入數據矩陣;T 為輸出數據矩陣;Pi為初始化輸入層條件;Ai是初始化輸出層條件;net是訓練好的網絡;tr 是訓練過程記錄。在使用中,一般設置前面3 個參數,后面2 個參數采用系統默認參數。
3)sim 函數是BP 神經網絡的預測函數,其函數形式為

其中:net 是訓練好的網絡;x 是輸入數據;y 是網絡預測數據。
當完成網絡訓練后,就可看到網絡的運算結果,軟件以圖形的形式將結果輸出,如圖8 所示,包括實測電流圖、實測電壓圖、實測溫度圖、實測SOC 圖、SOC 逼近圖和誤差曲線。通過這些圖,用戶可以清楚地看到SOC 的預測結果,同時圖形還可保存在電腦里,方便用戶下次調用。

圖8 汽車SOC 檢測系統訓練參數設置界面
軟件使用完成后,可按退出按鈕退出軟件,整個SOC 測試工作結束;也可在上述每一界面中,使用退出功能來終止軟件運行。如果想要繼續訓練網絡,則可使用重新開始檢測按鈕返回到開始界面。
實驗選用IFP -11140170P -20Ah 的磷酸鐵鋰電池,采用5 并16 串制成64V/100Ah 電池組作為測試對象,運用電池模擬充放電試驗臺來進行電動車動力電池相關運行參數的測試。
仿真結果如圖9 所示。

圖9 估算SOC 與實際SOC 的圖形分析
分析圖9 可以看出:預測值對實際值的擬合較為理想,誤差在5%以內,說明本文提出的在線測試方法具有較大的抗干擾能力,能夠極大提高電池SOC 的辨別精度,相比目前使用的其他預測方法精度只能維持在8%左右,此種方法預測更為準確,可幫助工作人員在實際使用過程中能夠充分發揮動力電池的使用性能。
[1]邵海岳,鐘志華,何莉萍,等.電動汽車動力蓄電池模型及SOC 預測方法[J].電源技術,2004 (10):66- 69.
[2]董明哲.充電電池容量預測的算法研究[J].鞍山師范學院學報,2000,92(3):80-84.
[3]李貴海. 電池SOC 估算略研究[D]. 杭州:浙江大學,2006.
[4]王洪元,史國棟.人工神經網絡技術及其應用[M].北京:中國石化出版社,2002:12.
[5]Zeng Yu juan,Wang Xiang dong,etc.An improved BP algorithm for pattern recognition[C]//4th International Conference,Sianal Processing Proceedings.ICSP’98,Beijing,1998.
[6]MATLAB 中文論壇編著.MATLAB 神經網絡30 個案例分析[M].北京:北京航空航天出版社,2009.
[7]張德豐.MATLAB 神經網絡仿真與應用[M].北京:電子工業出版社,2009.
[8]楊太安.純電動汽車電源管理系統研究[D].湖北:武漢理工大學,2006.
[9]王峰,王安新. 混合動力電動汽車的使用與維護[J].客車技術與研究,2011(3):58-60.
[10]楊杰,夏晴,史瑞祥,等.電動汽車動力電池公告檢測中存在的問題及建議[J].客車技術與研究,2011(2):23-25.