高鳳友,張 軍,王相彬
(1.天津職業技術師范大學電子工程學院,天津 300222;2.大慶油田鉆探工程公司測井公司,黑龍江 大慶 163412)
充電電池荷電狀態檢測系統設計
高鳳友1,張 軍1,王相彬2
(1.天津職業技術師范大學電子工程學院,天津 300222;2.大慶油田鉆探工程公司測井公司,黑龍江 大慶 163412)
以在ARM 9硬件平臺上實現充電電池荷電狀態檢測為背景,詳細介紹了在嵌入式系統中的設計與實現。該系統硬件搭建以S3C2440 ARM 920T處理器為核心芯片,軟件搭建以SQLite嵌入式數據庫為數據存儲、篩選、分析和處理核心,通過對S3C2440內部A DC編程獲取波形數據,采用Qt/Embedded實現圖形及人機界面顯示,最后提出了進一步完善系統檢測功能問題的解決方法。
ARM9;Linux;充電電池;荷電狀態;SQLite;Qt/Embedded
電能可由多種形式的能量轉化得來,其中把化學能轉換成電能的裝置稱為化學電池,一般簡稱為電池,電池有原電池和充電電池之分。放電后不能用充電的方式使內部活性物質再生的電池稱為原電池,也稱一次性電池。放電后可以用充電的方式使內部活性物質再生,把電能儲存為化學能,需要放電時再次把化學能轉換為電能的電池稱為充電電池,也稱二次電池。
通過記錄一個完整的充放電過程,得到一組被測電池的充放電電流、電壓及荷電狀態曲線,對于了解電池的實際充、放電狀況,掌握電池的質量、實際容量和實際供電能力,保障重要用電設備的必要用電時間,提供進行維護的必要信息,延長電池使用壽命,提高電池利用率都具有非常重要的意義。
本文設計了一種基于ARM 9的新型充電電池荷電狀態檢測系統,該系統融合了ARM 9豐富的軟硬件資源,將信號采集、荷電狀態計算、波形顯示、記錄數據存儲、可用剩余容量分析及其他管理操作集中交由ARM 9處理,實現了儀器的小型化、便攜化和智能化。
本文以安時測量法為應用背景,介紹基于ARM 9的充電電池荷電狀態檢測系統設計與實現。
1.1 系統硬件設計
硬件設計采用核心板加底板的設計思想。核心板選用三星公司的S3C2440 ARM 920T處理器作為核心芯片,板上的集成Flash Rom容量為64Mbyte(Nand Flash K9F1208),集成內存為32位的SDRAM(HY57V641620)2片共64Mbyte。該板為小板結構,只引出ARM芯片的所有信號送往底板。底板引入來自核心板的信號,并配以相應的硬件接口。外接器件,選配信號調理電路作為被測信號與S3C2440 ADC引腳間的接口電路,電壓信號和電流信號分別從充電電池兩個電極端及從與正極端串接的大功率低阻值取樣電阻上取出,溫度信號直接由數字溫度傳感器的輸出端取出,選配8寸觸摸液晶屏作為輸入操作與輸出顯示器件,選配4×4鍵盤作為用戶選用輸入單元。
系統硬件基本組成框圖如圖1所示。
1.2 系統軟件設計
整個系統軟件主要由嵌入式Linux內核、設備驅動、以及基于Qt/Embedded的應用程序組構成,系統軟件功能框如圖2所示。
內核層采用Linux內核,版本號為Linux3.2.8。為了減少內核所占內存,需要對內核進行精簡配置,并重新編譯移植,關于Linux內核的配置和移植的方法與過程,本文不做重點介紹,具體可見參考文獻[1]。驅動層直接由內核管理,通過驅動層提供的設備接口,可以直接訪問硬件設備,如LCD顯示器、觸摸屏、鍵盤等。LCD和觸摸屏的驅動由Qt/Embedded(QtE)提供。應用層主要包括信息采集與處理、數據管理、人機界面三個模塊。

圖1 系統硬件基本組成框圖

圖2 系統軟件功能框圖
1.3 系統測量原理
1.3.1 原理分析
充電電池荷電狀態SOC(state of charge)被定義[6]為剩余能量和額定能量的比值,通常把一定溫度下電池充電到不能再吸收能量的SOC定義為100%,而把電池放電到不能放出能量時的SOC定義為0%,荷電狀態計算公式如下:式中:SOC0為充電電池在t0時刻的荷電狀態;CR為充電電池的額定容量;Icm為充電電池的測量電流;tEND為充電電池達到放電終止電壓的時間。

由式(1)~(2)可知SOC的大小直接和充電電池的充放電電流及充放電電壓相關,在規定的溫度下,只要測出充放電時的電流及電壓,就可以根據定義式計算出該時刻的荷電狀態。
1.3.2 測量方法
常用的充電電池荷電狀態檢測方法主要有密度法,開路電壓法,內阻法和安時法等。安時法是利用測量得到的充放電電流和電壓數據,通過計算得出蓄電池輸出能量或者輸入能量的一種測量方法。以1 000 Ah電池的10 h率放電試驗為例,放電前先充電24 h。然后以100 A電流放電大約10 h。在一充一放兩個過程中,對電池的電壓和電流等原始數據定時進行記錄。最后通過定義式計算出相應時刻的荷電狀態。
2.1 數據采集
本系統對充電電池充放電電壓、電流及溫度的實時采集,是通過對S3C2440內部ADC(模數轉換器)單元編程來實現。
2.1.1 A DC轉換時間的計算
A/D轉換時間即完成一次A/D轉換所需要的時間。當系統的時鐘頻率為50 MHz,且ADC時鐘源的預分頻值為49時,10位數字量的轉換時間為:
A/D converter freq=50MHz/(49+1)=1MHz
Conversion time=1/(1MHz/5cycles)=1/200 kHz=5μs
2.1.2 A DC分辨率的計算
S3C2440內部ADC的輸出為10位數字量,由于輸入的滿刻度電壓為2.5 V,因此ADC能分辨出來的輸入電壓變化的最小值為2.5 V/210=2.4mV。
2.1.3 數據采集讀取程序(A DC讀取程序)
S3C2440內部ADC數據采集讀取程序如下:

程序工作流程是:(1)函數根據參數傳遞來的AD通道值進行ADC控制寄存器設置,并設置預分頻值;(2)啟動一次A/D轉換;(3)等待一次轉換完成;(4)返回AD轉換的值。
2.2 數據管理
文中系統的數據管理選擇嵌入式數據庫SQLite來實現。嵌入式數據庫是一種具備了基本數據庫特性的數據文件,它與傳統數據庫的區別是采用程序方式直接驅動。嵌入式數據庫體積很小,在運行時需要較少的內存,具有很好的實時性[1]。
系統針對數據庫的管理操作主要有原始數據的導入、查詢結果的生成、報表的提交、過期數據的刪除(刪除已經查詢過的不再使用的數據)。
2.2.1 原始數據的導入
由于需要導入庫中的數據來自ADC讀取程序和溫度傳感器,所以需先將采集到的數據存入變量,再通過sqlite3_mprintf()函數將變量的值添加到SQL語句中,最后再執行相應的SQL語句就可以把數據插入到數據庫中。程序如下:

2.2.2 查詢結果的生成
本系統采用按時段查詢的方法來查找經濾波處理和數值變換后的數據,用于QtE圖形顯示模塊在屏幕指定位置生成放電電壓/荷電狀態曲線及本次放電計算容量。用于生成查詢結果的SQLite操作語句如下:

2.2.3 報表的提交
提交報表(查詢結果)時,對于波形數據,本系統通過Time字段選取所生成視圖中,當前EventCycle(事件循環)中的數據上交到QtE模塊。提交數據的SQLite操作語句為:
Sql=sqlite3_mprintf(dSELECT*FROM myview WHERE Time BETWEEN%d AND%dd,time1,time2);//time2=time1+ EventCycle
sqlite3_get_table(db,sql,&result,&nrow,&ncolumn,&errmsg);//結果被保存到result數組中。
2.2.4 過期數據的刪除
數據庫刪除內容一般為前一個EventCycle之前的數據。本系統設定:在規定的Event Cycle時間內,記錄條數大于1 000時系統自動調用刪除記錄的子程序刪除多余記錄;Event Cycle內記錄條數不超過規定值時,每隔一個EventCycle的時間刪除一次;用戶界面取消某個查詢時,SQLite中生成的相應視圖也立即刪除。刪除視圖的SQLite操作語句為:
sqlite3_exec(db,dDROPVIEW myview d,NULL,0,&errmsg);//釋放掉視圖名為myview的視圖。
2.3 人機界面
本系統的人機界面模塊選用Qt/Embedded設計開發。Qt是一個跨平臺的C++圖形用戶界面應用程序開發框架。Qt/Embedded是Qt的嵌入式版本(簡稱QtE)。
2.3.1 測量波形的界面顯示
本系統針對人機界面的程序設計內容主要有儀表界面設計,操作窗口設計,對話窗口設計等。對于測量波形的界面顯示,主要是通過重載paint Event函數來實現具體的界面圖形繪制,相應的Qt語句如下:

上述各項設計內容均通過QtE設計實現,通過交叉編譯后,移植到嵌入式系統硬件平臺。
2.3.2 人機界面程序模塊工作流程
系統人機界面程序模塊工作流程圖如圖3所示。

圖3 人機界面程序模塊工作流程圖
測試對象為飛利浦R6B2A160AA1600mAh氫鎳電池,該電池生產日期為2011年9月,測試日期為2012年3月9日,測試溫度:(20±5)℃,容量測試方法參照國標GB/T 18288-2000標準。測試設計為三次充放電循環,前兩次為激活過程數據,第三次的測試結果為容量測試數據。
第一循環:以0.1 C的電流(160mA)充電16 h,開路放置1 h再以0.4 C(640mA)的電流放至終止電壓1.0 V,測放電曲線并計算本次容量。
第二循環:使用大電流智能快充充電,自動充停后(-ΔV=5mV)以0.1 C(160mA)補充電2 h,開路放置1 h再以0.4 C(640mA)電流放電到終止電壓1.0 V,測放電曲線并計算本次容量。
第三循環(正式標定容量):以0.4 C電流(640mA)充電3.5 h,開路放置1 h再以0.2 C電流(320mA)放電至終止電壓1.0 V,測放電曲線并計算容量,并以此作為該電池的實測容量數據。
實際測量結果如圖4、5、6所示。從圖中可見,第一次測試容量為1 472mAh,第二次測試容量為1 559mAh,比第一次有所增加,表明有活性物質被激活,第三次測試容量為1 593mAh。三次測量結果符合充電電池循環充放電規律,所得測試容量基本接近標稱容量,與實際情況吻合。測試結果證明文中荷電檢測系統軟、硬件設計正確,測量方法可行,系統滿足實際測量需求。

圖4 第一次放電曲線及測試容量顯示界面

圖5 第二次放電曲線及測試容量顯示界面

圖6 第三次放電曲線及測試容量顯示界面
充電電池荷電狀態檢測系統在嵌入式硬件平臺上實現需要解決多項問題,文中僅就主要硬件模塊的選擇與性能配置、主要軟件系統的選擇與性能配置、系統數據的獲取、嵌入式數據庫的選用及數據存儲與篩選,Qt/Embedded的選用等實際問題,介紹了在ARM 9平臺上解決這些問題的方法。文中系統,界面觸摸操作,電壓/荷電狀態波形實時顯示,波形數據存儲,數據的回放、閱讀和轉存等項功能已經實現。系統需要繼續完善的問題還有測量精度問題。這個問題的解決可以從兩個方面入手:一方面提高前端數據的測量精度并合理設置補償數據;另一方面是建立合適的荷電狀態數學模型并引入相應的計算補償。
[1] 謝榮生,豐海,李遠敏,等.嵌入式系統軟件設計[M].北京:北京郵電大學出版社,2011.
[2] 弓雷.ARM嵌入式Linux系統開發詳解[M].北京:清華大學出版社,2010.
[3] 康維新.嵌入式Linux系統開發與應用[M].北京:機械工業出版社,2011.
[4] 何先波,李薇,羅建,等.嵌入式系統軟件開發技術基礎[M].北京:清華大學出版社,2011.
[5] 錢恭斌,肖敦鶴.嵌入式系統開發基礎與實踐教程[M].北京:電子工業出版社,2011.
[6] KOZLOWSKI JD,BYINGTON C S,GARGA A K,et a1.Modelbased predictive diagnostics for electrochemical energy sources[J]. IEEE,2001,6:3149-3164.
[7] 雷肖,陳清泉,劉開培,等.電動車蓄電池荷電狀態估計的支持向量機方法Ⅲ[J].中國電機工程學報,2008,28(18):197-199.
[8] 李立偉,鄒積巖.基于交流測量法的蓄電池內阻測量裝置的研究[J].計量技術,2002(12):15-17.
[9] 徐曼珍.新型蓄電池原理與應用[M].北京:人民郵電出版社:2005.
Design of battery SOC detection system
GAO Feng-you1,ZHANG Jun1,WANG Xiang-bin2
(1.College of Electronics Engineering,Tianjin University of Technology and Education,Tianjin 300222,China; 2.Daqing Oilfield Drilling Engineering Company,Logging Company,Daqing Heilongjiang 163412,China)
A battery detection system of state of charge based on ARM9 was designed.In this system,S3C2440 ARM920T processor was chosen as the core of hardware,SQLite database was chosen as the core for data saving, sieving,analysis and processing.The waveform data were
by writing procedure to the ADC in S3C2440,the sketch and man-machine interface manifestation was realized by Qt/Embedded.In the end,some methods were put forward,which could solve the question of detection.
ARM9;Linux;battery;state of charge(SOC);SQLite;Qt/Embedded
T M 912
A
1002-087 X(2013)11-1999-04
2013-04-01
國家自然科學基金資助項目(61071204)
高鳳友(1963—),男,黑龍江省人,副教授,工學碩士,主要研究方向為嵌入式系統設計、測量與診斷技術。