摘 要:針對電動叉車對蓄電池電量計的特殊要求,通過對進口叉車電量計的功能分析,自主開發了一款用于電動叉車的新型電量計。該電量計的基本技術指標,如電量測量、充放電判斷、電量顯示及低電壓控制輸出等,與進口電量計一致。同時,還具有通過手持編程器設定額定電壓、充放電曲線參數及參數傳遞等功能,增強了電量計的適應性與使用靈活性。對該電量計設計原理、軟硬件的基本實現方法及有關技術要點進行了闡述。
關鍵詞:電動叉車;蓄電池;電量計;手持編程器
中圖分類號:TP368.1 文獻標識碼:B 文章編號:1004373X(2008)1602805
Design of the Measuring Battery Capacity for Electric Forklift Truck
JIAN Hongmei,WANG Yihuai,ZHANG Qin
(College of Computer Science and Technology,Soochow University,Suzhou,215006,China)
Abstract:After analyzing the functions of imported forklift coulometer,a new type of coulometer only for electric forklift has been independently developed.The basic technological indexes of this coulometer consistent with the import,such as the fuel gauging,the judgment of charge and discharge,the display of residual capacity and the control of output at low voltage.At the same time,the rated voltage,the parameters of chargedischarge curve and parameter passing can be set by the handheld programmer,which expands the coulometer′s flexibility and adaptability.In this article,the design principle of coulometer,the basic method of implementing software and hardware and the related technical elements are elaborated.
Keywords:electric forklift truck;storage battery;coulometer;handheld programmer
1 引 言
使用直流電源(蓄電池)供電的電動叉車(以下簡稱叉車)具有轉換效率高、噪聲小、無廢氣、控制方便等優點,目前廣泛的應用于企業生產和儲運過程中。電動叉車的作用日漸突出,各行各業對電動叉車的需求也逐漸上升。據資料統計,1992年日本電動叉車產量就已經超過了叉車總量的1/3,在德國、意大利等一些西歐國家,電動叉車所占的比例達到50%左右,而我國目前電動叉車的所占比例為15%~20%,有著廣泛的市場前景[1]。
一般的叉車電量計集電量測量、充放電判斷、電量顯示及低電壓控制輸出于一體,封裝在52 mm直徑的圓形外殼內。這種電量計專門為使用蓄電池供電的電動叉車設計,即使在極為惡劣工作的環境下也具有極高的可靠性。目前,國外的優質電量計多具備采樣精度高、指示足夠、適應范圍廣、可更改參數等特性,而國內的叉車電量計在性能上較進口的有些差距,因此現多從國外進口,但國外的產品大都技術保密、價格昂貴,因而國內的叉車電量計有著廣闊的發展空間。
根據電動叉車對蓄電池電量計的特殊要求,分析進口叉車電量計的功能后,自主開發了一款用于電動叉車的新型電量計(VM201電量計,以下簡稱叉車電量計)。該叉車電量計安裝在電動叉車上,用于快速、準確地反映蓄電池的使用情況,方便用戶了解蓄電池的狀態,具有保護蓄電池、提高其使用壽命的作用。
2 蓄電池電量的測量方法
2.1 電量的一般測量方法
蓄電池有著復雜的電化學特性,諸如開路電壓、負載電壓、溫度、內阻、電解液的比重、電解液導電系數等參數,由此產生了一些基本的檢測方法,如密度法、開路電壓法、放電電壓法、測量恒定電流下的電壓方法、內阻法等[2]。根據它們的大小,通過參考模型計算預測蓄電池的剩余電量。
最科學且最原始的電池電量計量方法是對流經的電子流量的統計,即庫侖計(Coulomb Count)。只有計算流經的電荷的多少才能獲得電池的電量使用情況。但這種方法相當復雜,因為一個電池的電量無法“測量”的。即在本次放電之前,是無法通過任何手段直接“感知”將有多少Wh的電可以放出,或者還剩多少Wh的電能。因為作為化學能儲存的電能并不能直接通過如同計算水庫庫容一樣來計算水能和預計水力發電量。
2.2 普通的電壓法計量分析
蓄電池有一個對電量計量十分有用的特性,就是在放電的時候,電池電壓會隨電量的流逝而逐漸降低,并且有相當大的斜率。這就提供給另外一種近似的電量計量途徑——取電池電壓法。就好像測量水箱里面的水面高度可以大概估計剩余水量這個道理一樣。但是實際上電池的電壓比水箱里面的平靜的水面高度測量要復雜的多。用電壓來估計電池的剩余容量有以下幾個不穩定性:
(1) 放電電流對電池電壓的影響:對同一個電池,在同等剩余容量的情況下,電壓值隨放電電流的大小而變化。放電電流越大,電壓越低。在沒有電流的情況下,電壓最高。
(2) 環境溫度對電池電壓的影響:溫度越低,同等容量電池電壓越低。
(3) 循環放電對電池放電平臺的影響:隨著循環放電的進行,電池的放電平臺趨于惡化,放電平臺性能降低,所以相同電壓所代表的容量也相應減少。
(4) 不同廠家,不同容量的電池,其放電的平臺略有差異。
(5) 不同類型的電極材料的電池,放電平臺有較大差異。
以上這些因素都會造成電壓的波動和電壓的差異,使電池的容量顯示變得不穩定。用電壓計量電池容量時,因為負載不可能一直處于小電流的待機狀態,暫時的大電流的損耗,會造成電池電壓快速降低,此時顯示的容量要比實際容量低;而當大電流撤掉以后,電池的電壓會回升,造成容量顯示反而上升這種不合理的現象。因此,直接用電壓并不能準確指示電池電量。
2.3 基于放電時間電壓法計量分析
由于一個蓄電池的總電量是不變的,則在恒定電流放電的情況下,放電時間固定不變。根據這一特性,把蓄電池的總電量分為10段10%~100%,每一段的電量也是固定,在恒定電流的情況下放電時間也是固定不變的,這就是基于放電時間的電壓法的基本思想。設計過程中,在電動叉車使用時在線測量實際情況,同時參照蓄電池的放電曲線,采用單片機對蓄電池端電壓和放電時間同時進行測量,然后計算出蓄電池的剩余電量。具體的實施方法是:將蓄電池(以24 V,100 Ah為例)充滿電對其放電;用標準電量計記錄放電過程中蓄電池剩余電量的大小,同時使用電壓表和單片機的A/D采集模塊記錄相應的端電壓值和A/D值;放電完畢后獲得完整的放電曲線,即剩余電量與蓄電池端電壓(也就是對應A/D值)之間的關系。放電曲線可以由多次測量所得數據,通過工具軟件用多項式擬和出來,設計電量計是將曲線信息存入單片機中,以后測量同類蓄電池時,單片機就可以根據在線測到的蓄電池端電壓值,查表計算得出剩余電量值。充電曲線也以相同的方法測得。
2.4 叉車電量計的計量方法
通過對普通電壓法和基于放電時間的電壓法的分析,結合電動叉車工作時工作電流波動大、顯示精度不高(不要求十分精確的反映蓄電池剩余電量的安時(AH)數值,只要指示出電池剩余電量占總電量的百分之幾即可)的特性,本文采用基于放電時間的電壓法、采樣濾波、計時補償等技術來設計實現叉車電量計。這種方法不僅可以減化硬件電路設計,而且能夠較快地反映出剩余電量所含比例情況。
3 實驗結果與分析
3.1 實測充電曲線及多項式回歸
在實驗過程中,采用CURTIS公司MODEL 803型電量計為標準電量計。電動叉車的充電狀態下,實際測得標準電量計所指示的電量值、經單片機A/D采樣到的蓄電池端電壓值。由測量數據經過4次多項式擬合得到的充電曲線如圖1所示,圖中的圓點為實際測量值,沒有圓點的曲線為擬合以后的曲線。(經2,3,4,5次多項式擬合曲線比較后4次曲線形狀最好,所以最后采用4次多項式曲線。)
經擬合得到的多項式為:y=24.930 8+0.080 427x-0.227 834e-2x.2+
0.339 812e-4x.3-0.163 899e-6x.4(1) 擬合得到的多項式(1),將電量值10%~100%作為x分別代入(1),則得到充電時對應端電壓值,根據端電壓值和6∶1采樣電路,就可以計算得到與端電壓值對應的8位A/D值,如表1所示,表中的A/D值就是電量計單片機在測量時所需要的充電曲線數據。
3.2 實測放電曲線及多項式回歸
在電動叉車的使用過程中(即放電狀態下)實際測得標準電量計所指示的電量值、端電壓值。同樣,由測量數據經過4次多項式擬合得到的放電曲線如圖2所示,圖2中的圓點為實際測量值,沒有圓點的曲線(藍色)為擬合以后的曲線。(經2,3,4,5次多項式擬合曲線比較后4次曲線形狀較好,所以最后采用4次多項式曲線。)
經擬合得到的多項式為:y=20.862 5+0.0718 72x+0.161 349e-
3x.2-0.198 805e-4x.3+0.164 773e-6x.4(2)擬合得到的多項式(2),與獲得充電信息的方法相同,得到放電狀態下的電量、端電壓和A/D值,如表2所示。
4 叉車電量計硬件設計與實現
4.1 系統功能
叉車電量計安裝在電動叉車上,用于顯示供電電池當前剩余電量和累計使用小時數,其中用10段LED指示當前剩余電量占總電量的百分數,從左到右分別表示電量為10%~100%;蓄電池累計使用的小時數采用6位段式液晶顯示,顯示范圍0.0~99 999.9H,鑰匙開關打開后顯示計時沙漏。叉車電量計的主要功能有剩余電量顯示、小時計顯示電池累計使用時間;判斷充放電狀態、并根據充放電的情況使10段LED升1格或降1格;電量低于20%給出提示,低于10%時斷開外部供電,保護電池;接上手持編程器后動態調整參數。
4.2 系統體系結構
根據電量計的功能要求,確定硬件系統結構如圖3所示,它由微控制器(Machine Control Unit,MCU)、輸入部分和輸出部分3部分組成。電量計選用MC68HC908LJ12作為主控芯片,該芯片是Freescale公司于2001年推出的一款HC08單片機,它的LCD (Liquid Crystal Display) 模塊可以直接驅動6位段式LCD;輸入部分包括蓄電池電壓輸入和鑰匙開關狀態輸入,電池電壓一方面經轉換后產生供系統工作電源,另一方面經過6∶1分壓產生供A/D采樣使用的采樣電壓;輸出部分包括6位LCD時間顯示、10段LED (lightemitting diode) 電量指示、計時狀態LED指示和繼電器輸出控制。
圖3 硬件系統框圖電池電壓經過一個二極管后給控制繼電器產生驅動電壓VJ,同時再經過一個二極管并由可調輸出集成穩壓器LM317產生系統供電電壓VDD=5.7 V,再通過一個二極管降壓0.7 V后,得到VCC=5 V供主控MCU工作。繼電器的驅動電壓由VJ經過限流電阻和5 V穩壓得到,由于該電壓質量要求不高,具體電路可以用與系統電壓相同的穩壓電路產生,也可以直接用穩壓二極管產生。如圖4所示。
圖4 電源供電模塊可調輸出集成穩壓器LM317的輸出電壓:VDD=1.25(1+R2/R1)
取R=510 Ω,R2=1.8 kΩ
則VDD5.7 V
VCC=VDD-0.7 V5.7 V-0.7 V=5 V。
5 叉車電量計系統軟件設計
叉車電量計的主要功能是指示當前剩余電量情況和電池使用總時間、判斷充放電狀態、并根據充放電的情況使10段LED升1格或降1格。
通過使用標準電量計實驗測得蓄電池的放電判斷基準電壓DischargeBased、充電基準電壓ChargeBased,每10%電量的放電時間TimeStep,并給出放電電壓基準差值數組VolDiff和每個放電電壓基準值對應的放電時間數組Sum。在系統初始時,要讀FLASH初始化電量指示LED和電池計時LCD,并且在程序運行過程要實時的采集電池當前端電壓值,以便系統判斷之用。
5.1 充電分析
要判斷電池是否在充電,只要確保電壓連續3 s上升,并且其值大于25.6 V(這樣可以排除放電時電壓回升的情況);或者電壓大于27.765 V。只要滿足2個條件中的任意一個則為充電狀態。充電狀態下電量指示的升格判斷較簡單,其程序代碼如下:
CVOLT=GetCHGV(CLED+1);//取當前格后一格對應的充電基準電壓
j=battemp-CVOLT;//當前電壓值與上一個基值的差
if (j>=0)
{
FVOLT=battemp;
if (CLED!=9) CLED=CLED+1;//LED升一格
ONOFF=GetLED[CLED]; //LED顯示
//存儲累計時間和當前LED格數
for (j=0;j<7;j++) data[j+1]=Hour[j];
data[8]=CLED;
DealFLASH(); //寫FLASH
}
5.2 放電分析
要判斷電池是否在放電,只要確保當前電壓值連續3 s下降且其值小于27.3 V,則為放電狀態。放電狀態下判斷LED是否降格略微復雜,考慮到放電一段時間停止后,電池電量會有一定的回升,在判斷時添加放電時間補償數組Sum,其程序代碼如下:
CVOLT=GetLEDV(CLED-1);//取當前格前1格對應的放電基準電壓
j=CVOLT-battemp; //與當前電壓值作差
//判斷差值在那個范圍內,進行時間補償
if (j<=VolDiff[9] j>=VolDiff[8])
Temptimestep=Temptimestep+Sum[4];
if (j<=VolDiff[7] j>=VolDiff[6])
Temptimestep=Temptimestep+Sum[3];
if (j<=VolDiff[5] j>=VolDiff[4])
Temptimestep=Temptimestep+Sum[2];
if (j<=VolDiff[3] j>=VolDiff[2])
Temptimestep=Temptimestep+Sum[1];
if (j<=VolDiff[1] j>=VolDiff[0])
Temptimestep=Temptimestep+Sum[0];
if ((j>0) (Temptimestep>=timestep))
{
FVOLT=battemp;
if (CLED!=0) CLED=CLED-1;//LED顯示降1格
ONOFF=GetLED[CLED];
timestep=Gettimestep(CLED);
Temptimestep=0;
if (CLED==1) //當電壓降到20%時,置報警標志位
FLAG1=FLAG1 | 0x02;
if (CLED==0) //當電壓降到10%時,置低電壓保護志位
{
FLAG1=FLAG10xfc;//清FLAG1的0位和1位
FLAG1=FLAG1 | 0x01;//當電壓降到10%時,置標志位
}
//存儲累計時間和當前LED格數
for(j=0;j<7;j++) data[j+1]=Hour[j];
data[8]=CLED;
DealFLASH();
}
5.3 讀寫FLASH的程序設計
由于叉車電量計要求及時的反映電量和小時計的信息,并且斷電后保存這些有效信息,因此需要將其寫入FLASH,并且根據小時計的精度要頻繁修改這些數據。但受FLASH擦寫次數的限制,如果程序中頻繁地擦寫FLASH某個固定區域,就會大大降低芯片的使用壽命。為此,在程序設計時,采用定時循環擦寫FLASH的方式,來降低固定區域的擦寫次數,以提高芯片的使用壽命。
由于小時計以小時為單位,精度為0.1 h,因此設計中6 min就寫1次FLASH,寫入很頻繁。根據需要每次寫16B(包括標志字符、小時數據、電量等信息,其中第一個字節和最后一個字節都是55H,作為記錄頭尾標志),程序設計時在FLASH中預留出2 kB的空間(從MYMC000~MYMC800),以便進行循環寫入,避免只寫1個固定位置。主要的設計思想為:由于電量計主控芯片的一頁大小為128 B,而每次只寫16 B,因此擦完一頁后,可以在預留區域內順序的寫8次。當要寫FLASH時,首先按給定的初始地址將(存儲到FLASHadd中)寫入數據;寫完后,將計數地址FLASHadd加上16,然后判斷FLASHadd是否等于MYMC800;若相等,就把MYMC000賦給FLASHadd為下次寫FLASH做準備;接下來判斷本次寫入是否是寫在一頁的剛開始的16個地址空間中,即判斷(FLASHadd 0x007f)是否等于0x0010,若是就判斷FLASHadd是否等于MYMC010,若是就擦除最后一頁,否則擦除當前頁的前一頁。
5.4 與手持編程器的通信設計
SDF1型通用手持編程器(以下簡稱手持編程器)由其編程對象供電,通過串行通信方式(支持TTL電平通信和232電平通信)與其編程對象進行信息交換,可以對編程對象的參數進行讀取、設定及參數傳遞等。
SDF1型手持編程器通過串行通信方式與編程對象進行信息交換。在串行通信的過程中,如果發送方和接收方沒有同步開始收發數據,接收方往往會從發送方給的數據中間開始截取,這樣就會造成接收到錯位數據的現象。為了有效防止出現這樣的問題,在每批發送的數據流頭尾都加上標志字符和校驗字符形成數據幀,接收方在接收到一批數據后,如果驗證到數據幀頭尾不正確,就將此幀數據全部丟掉,直到接收到有效的數據后才進行處理。手持編程器也采用具有同步作用的數據幀與編程對象進行通信,手持編程器主動向編程對象發送指令幀,其格式為:幀頭+命令+參數數據+語言標志位+校驗碼+幀尾;接收編程對象回復的數據幀,其格式為:幀頭+隨后須接收的數據個數+參數流+校驗碼+幀尾。
叉車電量計遵循手持編程器的通信格式,以中斷的方式接收并處理來自手持編程器的命令,主要包括設定額定電壓、充放電曲線參數及參數傳遞等功能。電量計接收到來自手持編程器的數據包后,首先,通過數據幀的幀頭、幀尾及校驗字符判斷數據幀是否有效;若是正確的數據,然后對數據進行解包取得命令字符,無效的數據則丟棄;接著,根據獲得的命令字符,執行相應的功能函數;最后,將操作完成獲得的數據包裝稱有效的數據幀反饋給手持編程器。
6 結 語
本系統在分析已有電量測量方法的基礎上,結合電動叉車實際工作時對蓄電池電量計的特殊要求,研發了這款用于電動叉車的新型電量計。該電量計在功能和性能上與進口產品保持一致,同時又添加了手持編程器的功能,使其減少了對PC機的依賴、可動態批量的修改參數。該系統軟件設計嚴格遵循軟件工程的基本原理,合理進行模塊分割、功能分化,強調擴展性和可維護性。該叉車電量計已通過后期測試,應用到一公司的實際生產中,得到了廠家和用戶的廣泛認可。
參 考 文 獻
[1]金志號,徐翔.電動叉車的現狀及其發展[J].工程機械,2004,35(10):3738.
[2]高明裕,張紅巖.蓄電池剩余電量在線測量[J].電測與儀表,2000,37:417.
[3]Song S,Kim K.A Dynamic State of Charge Model for Relectric Vehicle Batteries [J].Proc.of EV S12 Los Angeles,CA,1994:519527.
[4]Kreuk CW De,Van Duin P J.A Computer Model for the Determination of the Residual Capacity of (Lead Acid)Batteries[J].Proc.of EV S211,1992:111.
[5]蔣新華,馮毅,雷娟,等.電量計量中電流采樣精度的研究[J].電池,2006(4):4950.
[6]王吉校,錢希森.閥控鉛酸蓄電池容量測試技術研究[J].蓄電池,2007,44(2):5759.
[7]胡鴻才,賀貴明.基于C8051F的電量測量與傳輸系統\\.現代電子技術,2006,29(9):8385.
作者簡介 薦紅梅 女,1982年出生,碩士研究生。主要研究方向為嵌入式系統應用。
王宜懷 男,1962年出生,博士,碩士生導師。主要從事嵌入式系統方面的研究與開發。
張 琴 女,1983年出生,碩士研究生。主要研究方向為嵌入式系統應用。
注:本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文