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