1 引 言
動力電池集成作為電動汽車核心技術之一對電動汽車運行的性能有著決定性的作用, 為保證動力電池安全且高效的應用, 需要對其運行狀態(tài)進行實時在線的監(jiān)測并同時對其進行控制, 電池管理系統(tǒng)在動力電池與整車控制之間起到了這樣關鍵的橋梁作用。為保證電池管理系統(tǒng)為電動汽車提供準確可靠的動力電池信息并對電池進行可靠的管理, 需要對電池管理系統(tǒng)自身運行的各項功能進行實時的監(jiān)測, 以及對電池運行數(shù)據(jù)進行采集分析, 同時在動力電池系統(tǒng)出現(xiàn)故障時需要對其進行診斷, 基于LabV IEW 的電池管理系統(tǒng)監(jiān)控平臺即是為實現(xiàn)上述需求而開發(fā)設計。
LabV IEW ( Labora tory V irtual INStrumentat iONEng ineeringW orkbench, 實驗室虛擬儀器工程平臺)是由美國N ational InSTruments(簡稱N I)所開發(fā)的圖形化軟件開發(fā)環(huán)境。該開發(fā)環(huán)境把工業(yè)測量與控制和計算機完美結合在一起, 其圖形化的界面使得編程就像操作儀器面板或畫電路板一樣簡易直觀、易于理解。但為了開發(fā)可靠、高效、靈活的電池管理系統(tǒng)監(jiān)控平臺, 需要對其程序設計進行深入的原理分析、細化的結構設計、及靈活的接口實現(xiàn)。監(jiān)控平臺就利用了LabV IEW 的DLL ( dynam ic link library, 動態(tài)鏈接庫)、多線程, 數(shù)據(jù)記錄、運行控制等技術。
2 平臺結構
監(jiān)控平臺是基于電池管理系統(tǒng)設計, 其主要由硬件部分和軟件部分組成。硬件主要實現(xiàn)PC 與電池管理系統(tǒng)之間的通信, 因電池管理系統(tǒng)對外通信主要采用CAN ( Contro llerA rea Netw ork, 控制器局域網(wǎng)) , 而PC 端接口多為U SB (Un iversa l Ser ia l Bus, 通用串行總線)。CAN 總線由德國Bosch 公司最先提出, 是國際上應用最廣泛的現(xiàn)場總線之一, 其具有高位速率、高抗電磁干擾性, 而且能夠檢測出總線的任何錯誤; USB是一種支持即插即用的新型串行接口,已廣泛用于PC 的對外接口。解決CAN 與USB 之間的轉(zhuǎn)換就解決了電池管理系統(tǒng)與PC 的通信, 利用周立功USBCAN - II的智能CAN 接口卡, 可以很方便的實現(xiàn)這一功能, 監(jiān)控平臺硬件正是以PC 為主體, 連接CAN 接口卡, 通過CAN 總線連接電池管理系統(tǒng)組成。周立功智能CAN 卡配備了PC端的驅(qū)動程序, 同時為PC 端應用程序提供了接口函數(shù), 采用LabV IEW 開發(fā)環(huán)境中的動態(tài)鏈接庫技術可很好的操作周立功智能CAN 接口卡, 實現(xiàn)與電池管理系統(tǒng)的通信。
由圖1可見, 系統(tǒng)硬件實現(xiàn)了監(jiān)控平臺與電池管理系統(tǒng)之間數(shù)據(jù)的透明傳輸, 周立功智能CAN 接口卡起到了很好的橋梁作用, 其上自帶的光電隔離模塊使USBCAN II接口卡避免由于地環(huán)流造成的損壞, 增強系統(tǒng)在惡劣環(huán)境中使用的可靠性。所以監(jiān)控平臺有很好的硬件支持, 設計的主要工作是監(jiān)控平臺的LabV IEW 實現(xiàn)。
針對電池管理系統(tǒng)數(shù)據(jù)采集、參數(shù)標定、故障診斷及對電池數(shù)據(jù)分析的要求, 監(jiān)控平臺軟件的結構應該包含信息顯示、系統(tǒng)標定、故障診斷、數(shù)據(jù)存儲及平臺配置等模塊(見圖2)。其中信息顯示功能提供了直觀的動力電池信息, 包括單體電壓、總電壓、電流、溫度、SOC及故障狀態(tài)等; 系統(tǒng)標定功能為電池管理系統(tǒng)的參數(shù)設定、狀態(tài)修訂提供了便捷的操作; 故障診斷功能主要針對動力電池系統(tǒng)的維護; 數(shù)據(jù)存儲功能為進一步的對電池性能的分析及對電池管理系統(tǒng)的功能驗證提供很好的數(shù)據(jù)支持; 平臺配置功能是實現(xiàn)監(jiān)控平臺接口靈活、界面友好、操作簡便的關鍵。基于LabV IEW 的軟件設計主要針對這幾個方面進行。
圖1 監(jiān)控平臺結構圖
圖2 監(jiān)控平臺功能模塊
3 軟件設計
采用N I公司的LabV IEW8. 2作為監(jiān)控平臺軟件的開發(fā)平臺, 既能很方便的實現(xiàn)監(jiān)控平臺需要的功能, 又能使軟件設計變得直觀、快捷, 同時軟件兼具有靈活性、可擴展性、可維護性、代碼重用性和可讀性。
為實現(xiàn)上述監(jiān)控平臺的各個功能, 同時保證平臺高效的性能, 軟件設計應用了LabV IEW 的多線程技術。所謂線程( thread)是指由進程進一步派生出來的一組代碼(指令組) 的運行過程。多線程技術可以使同一個程序有幾個并行運行的路徑, 從而提高程序的運行速度, 線程所占用的系統(tǒng)資源比進程要小。在一個程序中, 線程并不是越多越好, 也并不是越多程序執(zhí)行得越快。針對計算機的CPU 只有一個的情況, 當一個線程在執(zhí)行的時候, 其它的線程就處于掛起或者阻塞狀態(tài), 那么程序使用內(nèi)存的效率就會很低。針對監(jiān)控平臺的功能, 要求同時考慮平臺的高效運行, 軟件設計了四個線程, 即通過CAN 總線的數(shù)據(jù)采集與顯示; 平臺參數(shù)配置; 數(shù)據(jù)存儲; 系統(tǒng)標定和故障診斷。
3. 1 數(shù)據(jù)采集及顯示
平臺采用了USBCAN - II智能CAN 接口卡連接PC 與電池管理系統(tǒng), 實時接收電池管理系統(tǒng)CAN 總線的數(shù)據(jù)并進行顯示。USBCAN - II智能CAN 接口卡為應用程序提供了可調(diào)用的動態(tài)鏈接庫, 利用LabV IEW 中的調(diào)用庫函數(shù)節(jié)點( Ca llL ibraryFunction, 簡稱CLF ) 可實現(xiàn)對USBCAN - II智能CAN 接口卡的靈活操作, 應用CLF 需要對其進行配置, 配置主要根據(jù)接口函數(shù)設定調(diào)用規(guī)范為stdca ll(W INAPI) , 同時根據(jù)函數(shù)參數(shù)設定CLF的參數(shù)。最終設置好的CLF為編程提供了便捷的接口,也為平臺參數(shù)配置功能提供了方便, 通過設備類型號和設備索引號可靈活在USBCAN - II智能CAN卡的COM1和COM2之間進行選擇。按類似的設置規(guī)則配置好USBCAN - II的其他接口函數(shù)的調(diào)用,可對USBCAN- II智能CAN進行靈活的操作。
根據(jù)USBCAN- II操作要求, 數(shù)據(jù)采集流程如圖3。為了操作方便, 接收數(shù)據(jù)被封裝成子V I。
LabV IEW 中的子V I類似于C 語言中的子函數(shù), 可以被其他V I調(diào)用。數(shù)據(jù)接收子V I也為平臺參數(shù)配置提供了配置接口, 接收到的數(shù)據(jù)被打包成LabV IEW 中的簇變量, 簇是LabV IEW 中的一種數(shù)據(jù)類型, 它可以包含多個不同數(shù)據(jù)類型的元素, 類似C語言中的結構體。數(shù)據(jù)的打包方便了對接收到的數(shù)據(jù)進行顯示與存儲。數(shù)據(jù)接收采用循環(huán)接收模式,直至收到停止接收命令。
圖3 數(shù)據(jù)采集流程。
現(xiàn)有電池管理系統(tǒng)向CAN 總線發(fā)送的數(shù)據(jù)有單體電壓, 總電壓, 電流, SOC, SOH, 溫度, 最高和最低單體電壓, 最大和最小溫度等, 其中各從板負責單體電壓和溫度的測量, 每個從板有電壓60個, 溫度16個, 及故障信息等, 總共4 個從板。需要對這些數(shù)據(jù)進行顯示與存儲, 以方便對電池狀態(tài)進行實時監(jiān)控, 對電池數(shù)據(jù)進行深入分析, 同時根據(jù)故障信息對電池進行維護。利用LabV IEW 設計友好的顯示界面, 將上述信息按從板號設置不同的選項卡進行顯示, 如圖4所示。
圖4 顯示界面。
3. 2 平臺參數(shù)配置
利用LabV IEW 多線程技術專為平臺參數(shù)配置分配一個線程, 對監(jiān)控平臺參數(shù)進行設置。監(jiān)控平臺參數(shù)可分為以下幾類: USBCAN - II智能CAN 卡配置, 包括CAN 通道選擇、CAN 通信波特率等; 顯示配置, 含從板數(shù), 從板電壓節(jié)數(shù), 從板溫度個數(shù)等;數(shù)據(jù)存儲配置, 含存儲的周期、位置、格式等; 系統(tǒng)標定和故障診斷配置, 含標定的參數(shù)類型、位置及故障診斷的故障類型等。
LabV IEW 是一種數(shù)據(jù)流的程序開發(fā)平臺, 由數(shù)據(jù)流決定程序中節(jié)點的執(zhí)行順序。事件驅(qū)動擴展了或程序不同部分之間的交流影響程序的執(zhí)行。平臺參數(shù)配置采用了事件結構, 很好的在異步情況下對不同線程之間的參數(shù)進行修改和設置, 當沒有事件產(chǎn)生時, 程序回到等待事件狀態(tài), 減小了對其他線程執(zhí)行的影響。
3. 3 數(shù)據(jù)的存儲
在LabV IEW 中常用的記錄數(shù)據(jù)的方法有利用數(shù)據(jù)庫技術存儲數(shù)據(jù)和利用文件系統(tǒng)存儲數(shù)據(jù)。使用文件系統(tǒng)管理數(shù)據(jù)文件讀寫速度快、占用磁盤空間少、檢索方便快捷。本監(jiān)控平臺將存儲的文件格式默認設為csv格式, 其占用磁盤空間小, 同時這種格式可以在Excel中進行查看, 也可以導入Mat lab中進行分析, 這特別有利于對電池性能進行研究。
為數(shù)據(jù)存儲建立獨立的線程, 方便了編程的實現(xiàn), 但需要解決數(shù)據(jù)同步的問題, 即數(shù)據(jù)采集與數(shù)據(jù)存儲兩個線程之間的流程控制。在LabV IEW 中不同循環(huán)間傳遞數(shù)據(jù)可采用局部變量, 但是在數(shù)據(jù)采集循環(huán)與數(shù)據(jù)存儲循環(huán)之間傳遞數(shù)據(jù)的話, 局部變量就不太夠用了。因為數(shù)據(jù)保存到硬盤上是一項比較費時的工作, 而數(shù)據(jù)采集對循環(huán)時間要求較高, 兩者的循環(huán)快慢不一樣, 此時, 就不能簡單的通過局部變量來進行數(shù)據(jù)傳遞。在數(shù)據(jù)采集循環(huán)與數(shù)據(jù)存儲循環(huán)之間, 采用LabV IEW 中消息通知器進行數(shù)據(jù)同步傳遞。本監(jiān)控平臺在數(shù)據(jù)采集中將數(shù)據(jù)打包成簇類型, 通過消息通知器傳遞數(shù)據(jù)并進行儲存。
3. 4 系統(tǒng)標定和故障診斷
為保證動力電池系統(tǒng)的安全運行, 需要對電池管理系統(tǒng)的各個參數(shù)進行標定, 以保證電池管理系統(tǒng)所檢測信息的可靠性, 確保電池管理系統(tǒng)對電池的正確管理。當動力電池系統(tǒng)出現(xiàn)故障時, 僅僅依靠監(jiān)控電池參數(shù)來診斷故障是不夠的, 還需要對電池管理系統(tǒng)自身的運行參數(shù)進行診斷, 這些參數(shù)包括電池管理系統(tǒng)配置參數(shù)、軟硬件信息、軟硬件工作狀態(tài)等; 電池管理系統(tǒng)有自檢功能, 通過可靠的CAN 總線可以實現(xiàn)對這些功能的觸發(fā), 最終通過CAN 總線返回信息, 盡可能定位故障點。監(jiān)控平臺的另一功能就是要實現(xiàn)對電池管理系統(tǒng)的標定及在電池系統(tǒng)有故障時進行故障診斷, 為實現(xiàn)此功能需要通過CAN 總線與電池管理系統(tǒng)進行交互, USB??
CAN - II中提供了向CAN 總線發(fā)送信息接口函數(shù),類似于接收函數(shù), 利用LabV IEW 設計發(fā)送子V I, 同時建立系統(tǒng)標定和故障診斷線程調(diào)用發(fā)送和接收子V I, 實現(xiàn)與電池管理系統(tǒng)的交互。
4 結束語
本監(jiān)控平臺充分借助LabV IEW 的多線程及其靈活的接口技術, 實現(xiàn)了對CAN 總線的高速數(shù)據(jù)采集和多種格式文件的實時數(shù)據(jù)記錄, 并且監(jiān)控平臺設計靈活, 能適應電池管理系統(tǒng)多種組合方案, 同時監(jiān)控平臺的系統(tǒng)標定及故障診斷為電池管理系統(tǒng)的量產(chǎn)打下很好的技術基礎。該監(jiān)控平臺已用于普天、恒通、吉利等多種電動汽車用鐵鋰電池管理系統(tǒng)。在一年多的時間內(nèi), 運行可靠、穩(wěn)定, 既為用戶及時提供了實時的采集數(shù)據(jù), 又為開發(fā)人員提供方便的診斷接口, 為近一步研究電池管理和分析鐵鋰電池的性能提供了有力的保證。