尹天成
(青島大學(xué) 自動(dòng)化與電氣工程學(xué)院,山東 青島266071)
汽車的出現(xiàn)極大地方便了人們的出行,也促進(jìn)了汽車產(chǎn)業(yè)的飛速發(fā)展,如今汽車已成為一種“生活必需品”。但隨之而來(lái)的污染也給地球環(huán)境帶來(lái)了巨大的挑戰(zhàn),而新興的新能源汽車成為解決問(wèn)題的關(guān)鍵。電動(dòng)汽車以其零污染、零排放的清潔性能成為環(huán)保主力。電池管理系統(tǒng)的發(fā)展研究成為制約電動(dòng)汽車發(fā)展的關(guān)鍵。上位機(jī)作為電池管理系統(tǒng)的重要組成部分,承擔(dān)著實(shí)現(xiàn)人機(jī)交互功能的重要責(zé)任。
整個(gè)系統(tǒng)由四部分組成,其中包括檢測(cè)模塊、運(yùn)算模塊、控制模塊以及通信模塊。檢測(cè)模塊由各種不同的檢測(cè)電路組成,分別針對(duì)不同狀態(tài)量進(jìn)行檢測(cè),主要包含溫度、電壓和電流檢測(cè)。系統(tǒng)運(yùn)行時(shí),首先由檢測(cè)模塊對(duì)系統(tǒng)運(yùn)行中的狀態(tài)量進(jìn)行檢測(cè)、采集,并將這些數(shù)據(jù)交由運(yùn)算模塊和控制模塊進(jìn)行處理,然后通過(guò)通信模塊傳給上位機(jī),上位機(jī)進(jìn)行分析處理后在人機(jī)交互界面上顯示,供使用者進(jìn)行瀏覽。若還需要發(fā)出指令,則可以通過(guò)上位機(jī)界面同時(shí)完成[1]。
LabVIEW(Laboratory Virtual Instrument Engineering Workbench)是虛擬儀器的一種,是實(shí)現(xiàn)計(jì)算機(jī)與儀器結(jié)合的優(yōu)秀編程語(yǔ)言。LabVIEW又被稱為G語(yǔ)言,以其圖形化語(yǔ)言簡(jiǎn)化傳統(tǒng)編程語(yǔ)言的編寫(xiě)過(guò)程,實(shí)現(xiàn)編程過(guò)程圖形模塊化,更容易編寫(xiě),并且程序以圖形化語(yǔ)言展現(xiàn),方便編寫(xiě)者閱讀和修改。
Visual Basic、Visual C++作為兩種最常用的編程語(yǔ)言,具有零散的編程語(yǔ)言以及復(fù)雜的程序結(jié)構(gòu),技術(shù)人員需要耗費(fèi)大量時(shí)間與精力,而且檢測(cè)錯(cuò)誤更為復(fù)雜,也不利于其他人員的解讀與修改。而Lab-VIEW語(yǔ)言基本不包含程序代碼,大大簡(jiǎn)化了編寫(xiě)過(guò)程,并且圖形化程序?qū)](méi)有編程經(jīng)驗(yàn)的人員十分友好,簡(jiǎn)單易學(xué)而且容易理解,可以很快上手,大大縮短學(xué)習(xí)語(yǔ)言和編寫(xiě)程序的時(shí)間。所以,本文選擇LabVIEW作為實(shí)現(xiàn)上位機(jī)軟件的編程語(yǔ)言。
(1)系統(tǒng)功能模塊。上位機(jī)的功能是實(shí)現(xiàn)BMS與使用者之間的人機(jī)信息交互,即實(shí)時(shí)、及時(shí)檢測(cè)、采集電池管理系統(tǒng)運(yùn)行時(shí)的各種狀態(tài)量信息,對(duì)這些信息進(jìn)行分析與處理,分析結(jié)果傳到上位機(jī)進(jìn)行顯示,供使用者查詢。
(2)數(shù)據(jù)通信模塊。通信模塊是聯(lián)系整個(gè)電池管理系統(tǒng)運(yùn)行的紐帶,上述系統(tǒng)功能模塊之間的信息傳輸都需要通過(guò)數(shù)據(jù)通信模塊完成,系統(tǒng)運(yùn)行的狀態(tài)量主要包括溫度、電流和電壓等,這些狀態(tài)量采集的及時(shí)性和準(zhǔn)確性是支撐系統(tǒng)運(yùn)行的基礎(chǔ)。
(3)重要數(shù)據(jù)顯示模塊。該模塊主要用來(lái)顯示能衡量系統(tǒng)運(yùn)行狀態(tài)的主要狀態(tài)量,例如總電流、總電壓等。
(4)詳細(xì)數(shù)據(jù)顯示模塊。該模塊主要顯示單體電池的狀態(tài)信息。
(5)參數(shù)顯示和設(shè)置模塊。該模塊主要功能包括各種報(bào)警上下限和容量狀態(tài)的設(shè)置,前者包括溫度報(bào)警、電壓報(bào)警以及電流報(bào)警等,后者涵蓋電池剩余電量(SOC)估算、電池健康狀態(tài)(SHC)等參數(shù)的設(shè)置[2]。
上位機(jī)通過(guò)通信模塊與主要控制系統(tǒng)進(jìn)行通信,界面上首先包括通信接口的選擇,還有每個(gè)控制器的溫度和電壓顯示。接下來(lái)是參數(shù)的設(shè)置界面,包括最大充電電流、最大放電電流、總過(guò)壓、總欠壓等主要參數(shù)的設(shè)置,還有超過(guò)這些參數(shù)限定時(shí)的報(bào)警,如電池過(guò)充、過(guò)放、過(guò)溫、欠溫、過(guò)壓、欠壓報(bào)警等故障狀態(tài)。還需要顯示電壓、電流、功率、SOC、SHC等參數(shù)來(lái)確定系統(tǒng)狀態(tài)。最重要的主體部分還是電池組中各單體電池的狀態(tài)量。以上的內(nèi)容通過(guò)LabVIEW前面板進(jìn)行展示。
上位機(jī)部分與下位機(jī)部分之間的信息傳遞和指令傳輸都是通過(guò)通信模塊完成的,通信模塊是整個(gè)電池管理系統(tǒng)運(yùn)行的關(guān)鍵紐帶。本文的通信模塊采用CAN總線來(lái)設(shè)計(jì)實(shí)現(xiàn),其主要優(yōu)點(diǎn)有:
(1)傳輸速率快;
(2)傳輸距離遠(yuǎn);
(3)多主發(fā)送的方式;
(4)完備的錯(cuò)誤檢測(cè)機(jī)制。
CAN通信模塊主要負(fù)責(zé)作用于硬件和軟件。其中,硬件部分即CAN接口卡設(shè)備,即通過(guò)上位機(jī)軟件發(fā)出的指令來(lái)操作下位機(jī),利用與該指令相關(guān)的庫(kù)函數(shù),實(shí)現(xiàn)基本操作功能,如初始化、復(fù)位等。軟件部分完成監(jiān)控和協(xié)議轉(zhuǎn)換功能,即監(jiān)控由下位機(jī)部分通過(guò)CAN總線傳輸過(guò)來(lái)的信息,一旦發(fā)現(xiàn)有信息傳來(lái),再將信息通過(guò)通信協(xié)議轉(zhuǎn)換后,翻譯成上位機(jī)軟件可以識(shí)別的格式,讓上位機(jī)進(jìn)行讀取并顯示[3]。整個(gè)過(guò)程如圖1所示。
圖1 CAN總線監(jiān)控線程流程圖
本文主要研究了電動(dòng)汽車電池管理系統(tǒng)上位機(jī)系統(tǒng)的設(shè)計(jì),包括上位機(jī)軟件的設(shè)計(jì)與通信模塊的設(shè)計(jì)。經(jīng)過(guò)比較,上位機(jī)軟件通過(guò)LabVIEW這個(gè)圖形化程序語(yǔ)言來(lái)編寫(xiě),并通過(guò)分析系統(tǒng)各方面功能來(lái)設(shè)計(jì)上位機(jī)前面板界面及后臺(tái)程序;由于CAN總線優(yōu)點(diǎn)突出,通信模塊的設(shè)計(jì)也是基于CAN總線設(shè)計(jì)的。總體而言,該上位機(jī)系統(tǒng)具有一定的實(shí)用價(jià)值,能完成對(duì)電池管理系統(tǒng)運(yùn)行的監(jiān)控及調(diào)試。