胡 旦,孫 佳,杜靈根,李 俊
?
基于STM32的蓄電池檢測系統設計
胡 旦,孫 佳,杜靈根,李 俊
(武漢船用電力推進裝置研究所,武漢 430064)
蓄電池檢測系統是蓄電池質量指標中非常重要的一環,直接影響蓄電池的性能和壽命。本文介紹一種以STM32微處理器STM32F103RCT6為核心的鉛酸蓄電池高精度智能檢測系統,可以同時檢測電壓、溫度、液位,并根據神經網絡計算得到電解液密度,用戶在上位機完成測試參數設置,自動對電池的各項數據進行存儲和報警。文中詳細介紹了系統組成、硬件和軟件設計。實踐證明該檢測系統滿足實際需求。
蓄電池 STM32F103RCT6 檢測系統
鉛酸蓄電池廣泛應用于軍事、電力、交通、通信等領域。在現役潛艇電池和UPB系統中,鉛酸蓄電池短時間內無法被其他電源系統取代。為保證鉛酸蓄電池的性能、壽命和可靠性,需實時檢測控制蓄電池組內部的工作狀態。因此,檢測設備是蓄電池系統中必不可少的一環。
雖然目前市場上鉛酸蓄電池檢測儀種類眾多,但大多數檢測參量少、檢測精度低且智能化程度低。因此,本文基于實際項目需求,設計了集成化、智能化、高精度的蓄電池檢測系統[1-3]。
本系統采以計算機為核心、采用CAN總線通訊和智能化參數監測模塊技術,能夠實現蓄電池參數的自動巡回檢測和顯示,遠程數據處理、充、放電參數監視等功能。技術上比較先進,功能擴展方便,為以后實現蓄電池的綜合管理打下良好基礎。系統主要由工控機、智能采集模塊、電源模塊及線纜等組成,如圖1所示。工控機作為監控系統的人機交互載體,運行基于Labview的電池參數監控軟件,控制智能采集模塊,同時對智能采集模塊的數據進行處理,對蓄電池組參數進行統計,分析電池組的工作狀態,對電池組狀態進行顯示、存儲及與上級進行信息交互,并對各類故障進行報警和指示。智能參數檢測模塊采用模塊化插件結構,具有體積小、重量輕、功耗低的特點,能同時檢測電池的電壓、溫度、液面高度、充放電電流,進行電解液密度計算、剩余電量估算(SOC)、健康態預測(SOH),如圖2所示。電源模塊能智能轉換兩路電源AV220V和DC24V,從而保證了電源的可靠性[4]。

圖1 檢測系統總體框圖

圖2智能采集模塊框圖
電池電解液密度計算由電池充放電試驗數據庫開發和電解液密度計算算法獲取兩部分工作組成。
首先建立電池充放電試驗數據庫,用于存儲電池充放電試驗數據并提供數據檢索和分析功能,以便于提取電解液密度計算所需數據并進行數據處理。
根據電池充放電試驗數據庫提供的數據,利用MATLAB神經網絡工具箱進行電池電解液密度計算。目前采用基于BP神經網絡。
最典型的BP神經網絡是三層前饋網絡,由輸入層、隱含層和輸出層組成。輸入層各神經元對應的輸入向量為:
x=(1,2,3)=()=1,···,m
其中,m為輸入樣本個數。根據BP神經網絡的計算原理,首先按如下公式計算出隱含層各神經元的輸入

式中,S為隱含層第j個神經元的輸入值;w為輸入層第i個神經元與隱含層第j個神經元之間的連接權值;b為隱含層第j個神經元的閾值;p為隱含層神經元個數。為模擬生物神經元的特性,以S作為激活函數的自變量來計算隱含層各單元的輸出。經過測試,選擇對數S型(Log-Sigmoid)激活函數時計算精度較高。函數的數學表達式為:
式中,d為隱含層第j個神經元的激活值;單元閾值b用于模擬生物神經元的閾值電位。神經網絡訓練過程中神經元間的連接權值和各神經元的閾值一起被不斷修正,直到神經網絡計算誤差下降到期望誤差值或達到最大訓練次數。輸出層神經元以隱含層神經元的激活值和隱含層到輸出層神經元的連接權值、輸出層神經元閾值為自變量按照S計算輸入值,輸出值即為神經網絡的仿真結果。在進行電池電解液密度計算的BP神經網絡建模中,隱含層到輸出層的激活函數選擇purelin線性函數。函數的數學表達式為:

式中,v為輸出層第k個神經元的輸出值;h為輸出層第k個神經元的輸入值;w為隱含層第j個神經元到輸出層第k個神經元間的連接權值;d為隱含層第j個神經元的激活值;b為輸出層第k個神經元的閾值;q為輸出層神經元個數。
目前的計算采用電壓、放電電流、電解液溫度作為神經網絡的輸入項,以電池電解液密度為神經網絡的輸出項。
將訓練完成的神經網絡模型的神經元連接權值矩陣和閾值向量提取出來,利用神經網絡算法的計算原理進行編程。
智能采集模塊的硬件主要包括:主控器、AD采樣保護電路、電壓采樣電路、溫度采樣電路、液位采樣電路。這里詳細介紹采樣保護、溫度采樣、A/D采集模塊、CAN模塊。
3.1 采樣保護電路
在監控單元中,被檢測的對象如液位、電流等都是連續變化的量,通過相應傳感器將它們轉換為連續變化的電流(4~20 mA),再選取一個適當阻值的電阻將其轉化成0-3 V的電壓信號。考慮到工程實踐,需留有一定的裕量,經轉換后傳感器的輸入信號限定在0.48~2.4 V,這樣取樣電阻設置為120 Ω。進入AD采樣通道之前再設置一鉗位電路,鉗位電壓為2.5 V,以保證在異常情況下不至于使輸入AD通道電壓過高而燒毀ARM。采樣保護電路如圖3所示。

圖3 采樣保護電路
3.2 溫度采樣電路
針對蓄電池內部檢測環境惡劣,而溫度的測量要求精度高的要求,溫度測量單元選用PT1000,其溫度測量范圍為:-40~+85℃,當溫度為0℃時,電阻值約為1000 Ω,當溫度范圍在0~100℃時,電阻值變化率為3.85 Ω/℃。將PT1000與一個阻值1.8 kΩ電阻串聯,將一個阻值1.8 kΩ電阻和一個阻值為1 kΩ的電阻串聯,它們共同組成一個橋式電路,給橋式電路施加一個直流5 V的電壓信號,將橋式電路的兩個中間節點分別送入儀表放大器INA128的正負輸入端,INA128放大器芯片的增益設置為6,這樣可以更精確的測量到PT1000阻值變化時引起的電壓變化值,其輸出引腳連接STM32F103RCT6芯片的內部AD模塊。溫度采樣電路圖如圖4所示。

圖4 溫度采樣電路
3.3 A/D采集模塊電路
A/D模塊采用16位串行高速A/D轉換器ADS8320,它是Burr-Brow公司生產的逐次逼近式串行微功耗CMOS型高速A/D轉換器,它的線性度為,工作電源在2.7~5.25 V范圍內,采樣頻率最高可達100 kHz;ADS8320具有同步串行SPI / SSI接口,因而占用微處理器的端口較少ADS8320的輸入端采用差模輸入方式。

圖5 A/D采集模塊電路
3.4 CAN模塊電路
由于多個蓄電池智能采集模塊并聯在CAN網絡中,向上位機收發數據時,相互之間會存在干擾,因此傳統電路設計中在收發兩路都需要加上光耦隔離芯片,但這樣做的缺點是:電路相對復雜,且電路板占用面積大。因此本設計CAN控制器選用CTM8251LAT,它是一款帶隔離的通用CAN收發器芯片,其內部集成了所有必需的CAN隔離及CAN收發器件,所有功能集成在不到3平方厘米的芯片上。

圖6 CAN模塊電路
軟件設計包括工控機信號分析與故障診斷和下位機信號采集處理兩個部分。工控機根據既定協議,通過CAN轉接卡與智能采集模塊進行通信,以完成數據的接收與發送。工控機程序基于LabVIEW平臺上開發。圖形化、模塊化是LabVIEW的最大特點,它簡化了程序代碼的編寫,從而開發出功能完善、界面友好的應用程序。其主要功能為:顯示電壓、密度、溫度測量值,對智能采集模塊進行故障檢測,對密度、溫度和液位越限報警。
智能采集模塊程序存儲于ARM FLASH中,上電完成芯片初始化、數據初始化,然后接收執行上級設備指令,完成信號數據采集并上傳數據;如遇程序跑飛、死循環,程序則會自動重啟保證參數檢測模塊正常運行。主程序負責對“檢查電池”的高低液位、溫度、電池電壓信號進行采集、濾波、處理,同時通過神經網絡計算得到電解液密度值,并通過CAN總線總線發送數據。CAN口數據采取中斷方式發送和接收數據。程序采用循環方式運行,并采取了防死機措施。參數檢測模塊主程序流程圖如圖7、8所示。

圖7 參數檢測模塊主程序流程圖1

圖8 參數檢測模塊主程序流程圖2
為解決檢測系統檢測參量少、檢測精度低且智能化程度低的問題,本文設計了一套智能檢測系統,其中詳細介紹了蓄電池檢測系統的組成、采集模塊硬件和軟件設計。通過多輪次試驗調試和運行試驗,系統滿足設計指標和可靠性要求,在應用中滿足實際需求,為鉛酸電池電源系統的安全可靠運行提供有力保障。
[1] 周志敏, 周紀海, 紀愛華.閥控式密封鉛酸蓄電池實用技術[M].北京: 電力出版社,2004: 66-70.
[2] 劉曉剛.鉛酸蓄電池容量檢測方法研究[D].武漢: 華中科技大學, 2007.
[3] 舒新.蓄電池監測系統研究與開發[D].南京: 河海大學, 2007.
[4] 樂毅成, 于水英, 付志超.鉛酸蓄電池監控系統設計[J].船電技術, 2016, 36(7).
Design of Detecting System with STM32 for A Battery
Hu Dan, Sun Jia, Du Linggen, Li Jun
(Wuhan Institute of Marine Electric Propulsion, Wuhan 430064, China)
;
TP273.4
A
1003-4862(2017)04-0077-04
2016-11-10
胡旦(1988-),男,工程師,研究方向:控制理論與控制工程。E-mail:hd_auto@163.com