鉅大LARGE | 點擊量:1668次 | 2018年05月07日
關于手機鋰離子電池參數智能校正算法
手機電池的種類比較多,常用的有鋰離子電池和鎳氫電池等。鋰離子電池和鋰電池是不同的概念,通常我們說的鋰電池其實指的是鋰離子電池。鋰離子常被簡稱為鋰電池,但其實鋰電池和鋰離子電池是兩個不同概念,這里不去研究他們的不同,一律統稱鋰電池。人們常常認為鋰電池是沒有記憶效應的,這是廠商的誤導。鋰電池仍然有記憶,只是遠比鎳氫電池輕微而已。如果長期采用沒事兒就充電的方法,鋰電池也會出現嚴重的記憶效應(所謂記憶效應,就是電池儲存的電量越來越難以釋放放出來,對外表現就是充滿電的電池的使用時間越來越短)。
即使按最科學的方法使用鋰電池,鋰離子仍然會隨著時間的增長而出現記憶效應。這主要是由于氧化引起的內部電阻增加,當電解槽電阻達到某個值,盡管這時電池充滿了電,但電池卻不能釋放已儲存的電量引起。而且最重要是鋰離子電池也有使用壽命,鋰離子電池一般能夠充放300-500次,一旦電池下了生產線,時鐘就開始走動。不管你是否使用,鋰電池的使用壽命都只有兩到三年,之后雖然還能使用,但已經很難令人滿意。
由于用戶使用不善和電池自然壽命等原因,為電池管理軟件開發帶來了一定的麻煩。反應在手機上,就是我們很難準確的寫出直觀反應當前電池待機時間的程序。而且鋰電池放電過程并不是一個均勻遞增或者遞減的的曲線,而是如下圖一樣的曲線。
從圖中可以看出,滿電池開始的部分很不耐用,中間的部分很耐用,到了快沒電的時候又很不耐用了,而且這放電過程還受周圍環境溫度的影響。如果我們按均勻的放電原則設計手機電池管理程序,就會發現電池滿格的那格電很不耐用,中間的的二格電很耐用,最后的一格電也很不耐用,這是我們許多設計電池管理程序的人常常被客戶投訴的一個原因,電量顯示不準。但是如果我們使用非均勻原則為客戶設計電池管理程序,把四格電的待機時間精確的一樣,又會出現另一個問題,隨著電池老化程度加大,中間兩格電的待機時間也會慢慢縮短,這樣就會讓客戶發覺中間兩格很不耐用,第一格與第四格相差很多。
電池電量的顯示也無法非常的精確,由于充放電曲線也不是絕對平滑的,在毫少級下其實表現為不規則的震蕩波,所以為了更準確的反應電池電量,一般會設置一個計數器,讓放電或者充電過程中電壓多次超過或者低于某個值,才會認定電壓達到某個值。
鋰電池放電需要注意幾點:第一,放電電流不能過大,過大的電流導致電池內部發熱,有可能會造成永久性的損害。在手機上,這個倒是沒有問題的,可以不考慮。第二,絕對不能過放電!鋰電池最怕過放電,一旦放電電壓低于2.7V,將可能導致電池報廢。好在手機電池內部都已經裝了保護電路,電壓還沒低到損壞電池的程度,保護電路就會起作用,停止放電。
鋰電池的充電方式是限壓橫流方式。充電開始時,應先檢測待充電電池的電壓,如果電壓低于3V,要先進行預充電,充電電流為設定電流的1/10,一般選0.05C左右(C一般用作充放電電流作參照,C是對應電池容量的數值。電池容量一般用Ah、mAh表示,如M8的電池容量1200mAh,對應的C就是1200mA。0.2C就等于240mA。)。電壓升到3V后,進入標準充電過程。標準充電過程為:以設定電流進行恒流充電,電池電壓升到4.20V時,改為恒壓充電,保持充電電壓為4.20V。此時,充電電流逐漸下降,當電流下降至設定充電電流的1/10時,充電結束。一般鋰電池充電電流設定在0.2C至1C之間,電流越大,充電越快,同時電池發熱也越大。而且,過大的電流充電,容量不夠滿,因為電池內部的電化學反應需要時間。就跟倒啤酒一樣,倒太快的話會產生泡沫,反而不滿
下面這是充電曲線:
一般情況下電池大負荷工作后,減少負荷會出現電壓回升現象,就是所說的“回電”現象。如下圖,
這也是導致有些客戶投訴電池的一個原因,打著電話,突然低電量關機了,再開機發現還有一格電呢,或者開機時零格電,待機過一會兒,竟然又有一格電了。
基于以上各種各樣的原因,使電池管理程序變得十分難以準確,可以考慮使用智能電池管理。使用電池校正程序,自主校正參數,寫入NV,供電源管理程序調用。具體原理就是在一次充滿電放電過程中,記錄下每次電壓下降0.01V所消耗的時間。最后把這些時間合起來,根據電池格數計算每格電需要的理論時間,最后通過時間來計算各格電需要的達到的電壓,并把結果寫入NV做為電池管理的依據。為了達到近似的精確,許多時候我們需要在一定周期內重新校正,并且可以根據電池測試結果提示用戶淘汰舊的電池,使用新的電池。
下面附上一些不完全的樣例代碼,把他添加到custom_cfg_vbat_level_convert,就能實現電量監控和記錄,很早寫的代碼,未完全測試,了解原理又有興趣的朋友可以自己試著完善。
上一篇:微型打印機鋰電池
下一篇:什么是鋰空氣電池