聶朝瑞,劉晨,胡洋,李俊超,淡可揚
(陜西職業技術學院 汽車工程與通用航空學院,陜西西安, 710100)
民用和消費領域無人機的動力系統有多種類型,當前民用無人機基本使用單芯或多芯片鋰電池,為無人機動力電機、飛行控制系統及機載設備提供能量。無人機系統運行時往往對飛行時間、系統可靠性和機載重量存在均衡的考量,也因此對動力電池的能量密度有著較高的要求。聚合物鋰電池擁有優良的放電特性和較高的能量密度,從而使得它成為目前民用和消費領域使用占比最多的電池種類[1~3]。
但聚合物鋰電池在具備高能量密度優點的同時也有一定的缺點,多種類型材料的聚合物鋰電池對充電和放電電壓高低、充電和放電電流大小以及使用環境有著較為苛刻的要求[4,5]。同時,電池的穩定性也存在較大的風險,在受到超過閾值電流設備放電和充電的沖擊、環境溫度的變化或者劇烈的物理撞擊和刺穿下,聚合物鋰電池極易出現鼓包、爆裂和劇烈起火現象。因此,使用嵌入式設備對鋰電池單芯片進行全生命周期的實時監測就顯示的較為重要[6]。研究使用STC12X系列單片機對多芯鋰電池進行電池監測,目標是為無人機系統在任務執行和降落后的動力電池的健康狀態提供保障。
研究使用STC12C5A60S2芯片作為主控芯片,其具備增強型的8051內核可以單時鐘和機器周期進行運行,運行速度比常規8051快6~12倍,在硬件設計中可以較大地提高系統程序運行速率。芯片內部具備獨立8通道的10位高速ADC,運算速度可以達到250kHz,在電池電壓的實時監測上可以到達單通道4.8mV的測量精度。
高速STC12C5A60S2芯片內部ADC為8個獨立通道,分布在芯片的P10~P17管腳。ADC的分辨率為10位,測量范圍限制在0~5V以內。因此芯片內部A/D的理論精度可以達到4.8mV,但在實際的硬件電路測量過程中,可能會有電路上的干擾造成測量電壓的不規則跳動,在極限情況下這種跳動有可能會引起程序的錯誤判斷。在片內的程序中將會進行降低誤差處理,既芯片的每個通道進行采樣10次,對10次內的最大值、最小值和異常數值進行剔除,然后對剩余數值進行平均,將真實數據精度控制在10mV以內,這樣采樣精度將滿足多路電芯的電壓監測。

圖1 基于STC12X的硬件系統原理圖

圖2 基于STC12X的ADC電壓監測原理
在嵌入式系統中常用DS18B20數字溫度傳感器進行溫度檢測。在研究和實驗中,為了獲取室內溫度和電池溫度,使用5路獨立的通道配置DS18B20數字溫度傳感器,數字溫度傳感器組使用統一的穩定電源保證穩定工作。
DS18B20是一種單總線模式的數字溫度傳感器,具有成本低、體積小、精度高和抗干擾能力強的優點。其最大的特點是外接信號線方便,而且便于進行成組管理。DS18B20溫度傳感器的測量溫度范圍在-55℃~127℃之間,其測量精度可以通過讀取數據設置為0.5℃、0.25℃、0.125℃或0.0625℃。在聚合物鋰電池電芯的溫度監測中,使用5路數字溫度傳感器。其中一路為外部溫度獲取,其余4路分別對每個電芯進行監測。
在硬件設計和實驗調試階段,為了更加清晰地觀察到實時監測電壓和溫度的連續變化數據,使用了LCD12864液晶顯示屏作為實時數據顯示設備。LCD12864的硬件配置和連線如圖3所示。由于LCD12864使用20針的排插針腳,因此在系統調試穩定后即可手動移除顯示設備。

圖3 基于STC12X的LCD12864硬件配置和連線圖
設計使用高音量蜂鳴器作為電池電壓和溫度異常時的提示器件,蜂鳴器使用三極管進行功率驅動,使用STC芯片上的獨立I/O口進行程序控制。蜂鳴器在驅動模式上使用中斷策略,當系統發現多芯聚合物鋰電池電壓和溫度發生異常變化,則程序以中斷方式驅動蜂鳴器發出特殊提示音。
由于芯片單個I/O口在強推挽輸出時最大提供20mA的電流,而蜂鳴器的驅動電流為30mA,單片機的I/O口不足以直接驅動蜂鳴器,因此使用Q9013三極管提高電流后對蜂鳴器進行驅動,保證蜂鳴器能夠正常運行,如圖4所示。

圖4 高音量蜂鳴器驅動電路
在基于STC12C5A60S2芯片的控制程序中,集成了多種功能程序。如4通道電池電芯電壓的采集程序,5通道DS18B20的溫度采集程序,LCD12864的圖形和文字顯示程序以及串口的數據發送程序。而在這些功能程序中,最關鍵的是電池電壓和溫度的監測及預警程序。
如圖5所示,在軟件設計中,為了達到嵌入式系統對電池電芯監測的實時性,內部各個功能程序均已進行了模塊化處理,各個功能子程序間相互調用和嵌套,在整個程序中不再設置其他無用的子程序,經過迭代調試,極大地提高了程序執行效率,同時也縮短了電池異常時的預警反應時間。

圖5 鋰電池電芯實時監測預警軟件流程圖
硬件系統在通電啟動后,首先會對單片機自身、ADC模塊、DS18B20溫度傳感器模塊進行自檢,如果自檢程序多次未通過則會引發故障處理子程序,進而激活蜂鳴器向發出故障提示聲音。同時通過LCD12864和串口向外顯示故障代碼,自檢程序架構為獨立子函數,放置在整體主循環程序的外部。如果各個模塊均通過自檢程序,則程序開始進行每片電池電芯的電壓和溫度檢測。在檢測程序中,根據電壓檢測程序和溫度檢測程序的運行時間不同,采用內部中斷處理程序的方式進行循環檢測。當程序檢測到電池電芯的電壓發生異常波動或者異常壓降,或者電芯溫度產生一定差異,則會觸發預警子程序。預警子程序驅動蜂鳴器向外發出報警,同時也通過LCD12864和串口向外顯示故障代碼,此時只有通過手動進行預警解除或者系統程序重置才可以取消報警。
實驗使用直流電源設備為電池進行充電,直流電源的電流電壓均可根據需要進行調節,電源的輸出功率為1kW。電池放電設備為四旋翼無人機上安裝螺旋槳負載的無刷電機,型號為2212KV1400,最大輸出功率為400W。測試電池對象為兩組多旋翼無人機用聚合物鋰電池,單芯滿電電壓4.2V,A組滿電容量為2200mAh,B組滿電容量為400mAh,A和B電池組均為4塊電芯串聯模式。選用A和B兩個組別的原因是選擇一組參照對象進行參考,其中A組電池為正常全新聚合物鋰電池,而B組為已經使用了200次以上充電和放電循環的電池組,電池容量已經有所衰減,而且電池外觀已經發生較明顯的鼓脹。測試平臺如圖6所示。

圖6 無人機動力電池實時監控預警測量平臺
由于A組電池為全新鋰電池,因此在充電過程中,嘗試使用手動充電方式對電芯進行充電。在區域1時,電池的初始電壓為3.8V,此時開始準備以恒定電流的方式對電芯進行充電。經過20s左右的電流爬升,充電器電流穩定在5A。在20s到850s的時間內,為恒流快速充電區。由于電芯為2200mAh,并且電芯工藝允許5C快速充電,但考慮到電芯的壽命問題,使用了2.5C的5A充電電流作為最大恒流充電電流。在850s到1100s的時間使用4.2V的恒壓保護充電方式,此時充電電流從1C逐步降低到0.1C,最后停止充電。電池電芯從3.8V充電到4.196V的充電電壓曲線如圖7所示。

圖7 A組動力電池充電實時監控測量數據

表1 A組動力電池電芯充電過程監測數據
在整個充電過程中,不論是在區域1的電池充電電流爬升階段,還是區域2的恒定電流充電區間以及區間3恒壓充電區間,電池電壓爬升保持了較為穩定的狀態,電池的電壓和時間變化關系符合健康電池的要素。在變流充電的區域1中的電芯電壓變化率為0.025V/10s,恒流充電的區域2中電芯電壓的變化率為0.0039V/10s,在恒壓充電的區域3中,電池電壓變化率為0.00064V/10s。三個區域的電池電壓變化率均在鋰電池保持正常的充電變化率范圍內,此時電池監控預警程序沒有預警動作。
使用放電設備對B組1-3號電池電芯進行放電試驗,模擬在放電過程中電池電芯出現允許范圍內的高倍率放電狀況時,實時監測系統對電芯電壓異常變化的反應時間和預警效果,放電測試數據見表3。B組電池容量為400mAh,最大可以達到30C的放電倍率,因此最大放電電流可以達到12A。而在放電試驗中放電電流為1.5A,放電倍率3.75C,放電電流在電芯額定放電的要求之內。

表3 B組動力電池電芯放電過程測試區域預警動作
在圖8中,展示了B組鋰電池電芯放電1500s時間內的732個數據點。其中放電區域分為5個區域,在放電區域1中,電池電流開始從0爬升到1.5A,此時電壓變化率達到了0.125V/10s超過了程序預設值,蜂鳴器開始進行報警。同樣,在放電區域3和放電區域5中,由于電池電芯的原因,放電區域3和5中出現了較大的電壓波動,系統同樣啟動了預警動作。

圖8 B組動力電池放電實時監控測量數據

表2 B組動力電池電芯放電過程監測數據
測試區域1、2和3分別為電芯恒流放電的不同階段進行的電芯預警測試。在3個區域的放電過程中,通過手動方式中止電池電芯的放電狀態,3個測試區域的電池電芯的電壓回升變化率分別達到了0.33V/s、0.34V/s和0.4V/10s,都觸發了電池電芯的報警程序,蜂鳴器發出了提示警報聲音。
設計通過使用STC12C5A60S2主控芯片,完成了對電池電壓和溫度的采集和處理,并在電池充電和放電過程中發生異常充放電動作給出了預警和提示。在聚合物鋰電池正常充電過程中,對其正常電壓變化進行了過濾;在聚合物電池正常放電過程中,系統對發生的異常電壓變化給出提示和警告,為無人機系統的動力鋰電池的健康使用過程給出了保障。設計為聚合物鋰電池在無人機系統中的使用過程中的安全保障策略提供了一些借鑒。