蔡慶秋,王雙園,白國振,張志強
(上海理工大學機械工程學院,上海 200093)
作為電網運輸過程中的重要組成部分,儲能技術不僅可以有效地利用電力設備實現需求側管理,降低用電成本,還可以補償負荷波動,提高系統穩定性[1]。電池作為最具投資效益的儲能技術之一,因其安裝靈活,建設周期短而備受關注[2]。但是由電池串聯組成的電池包經過不斷循環的充放電后,電池內部材料特性逐漸發生變化,從而導致電池性能下降,壽命縮短[3]。為確保電池使用良好,并延長電池壽命,必須對電池進行合理有效的管理。文獻[4-6]基于嵌入式微處理器對電池數據進行實時監測和故障診斷,但是系統過于單一,僅依靠電池狀態發出警告信號并中斷電路,且容易受到外界干擾。文獻[7]對電池充電狀態進行實時監測,結合充電管理芯片保證電壓輸出穩定,但是缺少系統故障提示。文獻[8]采用ZigBee 無線通信技術對電池系統進行信息采集與傳輸,并增加了故障報警功能,但是忽略了該技術存在傳輸數據范圍短且傳輸速率較低的問題。文獻[9]結合電池監測芯片遠程監測車載蓄電池和用電器信息并統一管理,但是該系統缺乏遠距離通信功能設計,無法對電池狀態進行遠程管理。
隨著智能手機和電腦等移動端的普及,人們對生活方式的追求不斷智能化、便捷化。本文結合WiFi、NATDDNS(Network Address Translation-Dynamic Domain Name Server)技術、人機界面及傳感器,設計一種基于樹莓派的功能性電池管理系統,以更好地遠程化管理電池。該系統以樹莓派為核心處理器采集和處理電池信號,用戶可在電腦端使用VNC(Virtual Network Console)登錄樹莓派遠程監測系統數據。在此基礎上,基于HTTP(Hyper Text Transfer Protocol)超文本傳輸協議,設立PC 或手機端為客戶端,樹莓派為服務器,通過NAT-DDNS 網絡地址轉換技術使服務器能夠接收到來自不同局域網的數據通訊,以此進行用戶手機等移動端與服務器端之間的數據傳輸,實現用戶遠程控制電池系統的功能。該系統能耗低、穩定可靠,且與傳統的單一系統相比具有多通訊協議,據此對電池的使用進行改善,有效減少了電池過充放電,保障電池的穩定使用,并延長電池壽命,滿足實際生活需求。
電池管理系統設計采用軟硬件相結合的方式,以微型計算機樹莓派為核心,支持WiFi 及NAT-DDNS 網絡訪問技術,實現系統遠距離監測與控制功能,同時集成了信號采集單元,實現對儲能電池的數據采集與處理。該系統包括網絡通信模塊、信號采集模塊及系統控制模塊,系統總體框圖如圖1所示。

Fig.1 Overall block diagram of battery management system圖1 電池管理系統總體框圖
(1)網絡通信模塊實現用戶端與系統之間的數據傳輸及遠程控制,使用戶有效地遠程化監測與處理信號。用戶基于WiFi 將電腦端與樹莓派通過SSH 連接,并使用VNC登錄至樹莓派[10],將樹莓派的視頻界面傳輸至PC 端,實現電池數據遠程觀測,在電池出現異常時系統發出警告以提醒用戶,具有一定的故障報警功能。同時,利用樹莓派搭建服務器,并設計人機交互界面,通過HTTP 協議,用戶可使用網絡訪問服務器實現遠程控制系統。當用戶與電池系統存在物理隔離時,通過外部移動設備進行網頁登錄訪問,從而對電池系統進行遠程化管理。
(2)信號采集模塊實現電池信號采集,并估算電池SOC 狀態。系統通過各類傳感器分別采集電池信號,并采用ADS1115 進行A/D 轉換[11],轉換器節點連接至樹莓派GPIO(General-purpose input/output)引腳,并將數據傳輸至樹莓派上。
(3)系統控制模塊實現電池充放電管理。該模塊由樹莓派GPIO 與繼電器組成[12]。系統通過分析電池數據狀態參數,對電池充放電進行調節與控制,同時接受用戶遠程通訊指令以實現電池管理控制。
樹莓派(Raspberry Pi)是一款只有信用卡大小[13],基于Linux 系統的微型電腦,由英國的樹莓派基金會開發。該系統使用樹莓派4B 作為核心處理器和關鍵硬件平臺,其芯片采用全新64 位BCM2711 四核處理器,支持雙頻IEEE802.11ac 無線網絡和千兆以太網,更好地滿足用戶通過PC 端遠程監測電池數據,同時具備無線通信功能,使其能夠作為服務器與客戶端實現遠程通訊傳輸,圖2 為樹莓派4B 的外形圖。此外,樹莓派通過GPIO 引腳實現傳感器與樹莓派之間的數據傳輸,完成電池信號采集,圖3 為樹莓派的GPIO 引腳圖。

Fig.2 Raspberry Pi 4B圖2 樹莓派4B

Fig.3 Raspberry Pi GPIO pin diagram圖3 樹莓派GPIO引腳圖
該系統的電池信號采集模塊由ACS712 電流采集模塊、電壓變送器、PT100 溫度傳感器、DS18B20 測溫模塊及ADS1115 組成,實現電池系統各信號采集,包括電池的電壓、溫度信號、環境溫度信號以及電池充放電時的電流信號。首先將各信號采集模塊與電池系統相連,采集電池各模擬量信號,然后通過高精度A/D 轉換器將各模擬量信號轉換成數字信號,最后將A/D 轉換器的管腳與樹莓派GPIO引腳相連,將數字量輸出至樹莓派界面,實現電池系統各數據的采集與監測,其硬件結構設計如圖4 所示。由于樹莓派自身內部沒有集成ADC(Analog to Digital Converter),因此通過外接ADS1115進行模數轉換。

Fig.4 Hardware structure design of battery data acquisition圖4 電池數據采集硬件結構設計
該系統支持HTTP 超文本傳輸協議和無線傳輸協議,系統以手機和PC 等移動端為客戶端,樹莓派為服務器,通過設計用戶與服務器之間進行交互的界面,并結合NATDDNS 架構,實現客戶端與系統的遠程連接,在此基礎上通過交互界面對系統進行遠程控制。
系統軟件設計主要完成以下功能:①WiFi 模塊遠程連接;②服務器功能;③用戶與系統遠距離通訊;④視頻界面遠距離傳輸。系統軟件設計包括NAT-DDNS 內網穿透模塊搭建、服務器搭建、人機交互界面搭建、VNC 界面搭建。
NAT 的實質是一種將私有網絡地址轉化為公網IP 地址的轉換技術[14],包括靜態網絡地址轉換、動態網絡地址轉換、端口映射、網絡地址及端口轉換等,它被廣泛應用于各種Internet 接入方式,NAT 可以實現重用地址,并且可以有效地避免來自外部網絡的攻擊,實現對外隱蔽。該系統結合NAT-DDNS 技術,在樹莓派搭建的服務器內使用動態域名解析,通過云服務器與內網服務器建立連接,同時將內網端口映射到云端,用戶使用基于域名的互聯網訪問云服務器時,在HTTP 協議下,云服務器根據域名和端口會自動映射到對應的內網服務器靜態IP,實現用戶通過外網地址訪問到內網服務器搭建的服務應用,完成遠距離通訊。NAT-DDNS 內網穿透基本模型如圖5 所示,當用戶手機或PC 等移動端處于4G/5G 及其他局域網時,通過互聯網輸入私有網絡地址,云服務器接受到用戶發來的外網地址信號,并將其轉化成樹莓派的靜態IP 地址,通過WiFi 訪問至樹莓派組建的服務器,從而實現用戶與電池系統的遠程連接。

Fig.5 Basic model of NAT-DDNS intranet penetration圖5 NAT-DDNS內網穿透基本模型
NAT-DDNS 內網穿透模塊搭建步驟如下:
(1)利用樹莓派下載內網穿透軟件,并在終端上通過cd指令進入對應下載目錄,輸入如下指令進行安裝。
輸入指令:sudo dpkg-i phtunnel_5_0_rapi_armhf.deb
通過終端界面顯示此樹莓派的SN 碼、默認密碼(admin)和遠程管理地址,表示軟件安裝成功,如圖6所示。

Fig.6 Install peanut shell software圖6 安裝花生殼軟件
(2)啟動花生殼客戶端,配置軟件工作參數。用戶首次登陸管理網頁時需要補全資料、重新設置密碼,并開通內網穿透服務。映射類型選擇HTTP 協議,它是一種運行在TCP 協議之上的響應協議,具有操作便捷等特點,且效率比TCP 協議更高。根據用戶輸入的內網IP 地址及端口號等參數,花生殼會提供系統遠程訪問控制的地址,NATDDNS 轉換成功如圖7所示。

Fig.7 NAT-DDNS module builds a successful interface圖7 NAT-DDNS模塊搭建成功界面
當手機或PC 等客戶端打開后,隨著樹莓派開啟服務器功能,客戶端便可通過輸入外網地址進行HTTP 連接,同時服務器接受連接并在界面上通知用戶已完成連接,用戶利用人機交互界面實現對系統的遠程控制,其連接流程如圖8所示。

Fig.8 Connection flow of the client and the system圖8 客戶端與系統連接流程
為了搭建人機交互界面,需要先將樹莓派轉變為一個Web服務器,提供用戶遠程訪問功能。
(1)在樹莓派終端安裝bottle 庫,將樹莓派作為一個小型網站。
輸入指令:sudo apt-get install python-bottle
(2)在樹莓派中建立文件夾,命名web.py。編寫以下程序:


該系統基于網頁搭建人機交互界面,人機交互界面是用戶與服務器之間傳遞、交換信息的對話接口,是整個系統的重要組成部分之一。通過交互界面與NAT-DDNS 架構相結合,實現用戶對系統的遠距離管理,增強了系統的功能性。
(1)在web.py 所屬文件夾中編寫控制界面,將文件命名為home.tpl,并編寫HTML 代碼。部分程序如下所示:

VNC 是用戶使用PC 端遠程監測電池數據的重要技術,首先采用putty 的方式使電腦端與樹莓派無線連接,通過SSH 輸入路由器靜態IP 地址登錄,然后在PC 上通過tightVNC 客戶端啟動樹莓派的界面,如圖9 所示。通過VNC 界面的搭建實現樹莓派端與電腦端屏幕、鍵盤、鼠標的共享,使用戶能夠遠程監測系統各數據變化,并分析處理電池信號。

Fig.9 Raspberry Pi VNC interface圖9 樹莓派VNC界面
4.1.1 遠程控制軟件
當系統連通網絡后,用戶在手機等移動端登錄NATDDNS 網址實現內網穿透,結合HTTP 協議將客戶端與樹莓派搭建的服務器相連接,并通過人機界面將電池開關控制信號傳輸至系統,實現遠程控制與管理,界面設計如圖10 所示。用戶通過點擊開關按鈕控制電池的充放電,增強了系統的便捷性與個性化。

Fig.10 Control interface圖10 控制界面
4.1.2 系統數據監測
系統基于Thonny Python IDE 軟件運行信號采集及處理程序,在樹莓派上顯示電池狀態并自我控制平衡。用戶通過VNC 界面遠程化監測電池狀態,并通過繼電器控制電池充放電的開關,實現系統自動化及遠程化管理。系統數據采集界面如圖11所示。

Fig.11 System data display interface圖11 系統數據監測界面


電池溫度過高或者過低時會引起電池的功率和能耗變化[15],進而影響電池的壽命和性能,因此系統出現故障時會給予用戶提示,表1 列舉了系統提示類型。該系統采用的硬件精度較高、抗干擾性強,故當系統出現異常時能及時發出警示,保證系統安全運行。

Table 1 System prompt type表1 系統提示類型
本文設計了一種基于樹莓派的電池管理系統,通過HTTP 協議及NAT-DDNS 協議實現了用戶對電池系統的遠距離監測與管理。與傳統的電池管理系統相比,該系統具有遠程通訊功能,更好地滿足了用戶對電池系統的個性化管理,且系統信號采集精度高、數據傳輸范圍廣,同時具有故障提示功能,使其工作狀態保持在合理范圍內,提高了電池的安全性能,對電池管理系統發展具有良好促進作用。未來可以將智能壽命診斷及智能故障診斷等功能加入電池管理系統,搭建電池系統智能化管理框架,對未來電池的健康使用具有很好的參考價值。