蔡慶秋,王雙園,白國(guó)振,張志強(qiáng)
(上海理工大學(xué)機(jī)械工程學(xué)院,上海 200093)
作為電網(wǎng)運(yùn)輸過程中的重要組成部分,儲(chǔ)能技術(shù)不僅可以有效地利用電力設(shè)備實(shí)現(xiàn)需求側(cè)管理,降低用電成本,還可以補(bǔ)償負(fù)荷波動(dòng),提高系統(tǒng)穩(wěn)定性[1]。電池作為最具投資效益的儲(chǔ)能技術(shù)之一,因其安裝靈活,建設(shè)周期短而備受關(guān)注[2]。但是由電池串聯(lián)組成的電池包經(jīng)過不斷循環(huán)的充放電后,電池內(nèi)部材料特性逐漸發(fā)生變化,從而導(dǎo)致電池性能下降,壽命縮短[3]。為確保電池使用良好,并延長(zhǎng)電池壽命,必須對(duì)電池進(jìn)行合理有效的管理。文獻(xiàn)[4-6]基于嵌入式微處理器對(duì)電池?cái)?shù)據(jù)進(jìn)行實(shí)時(shí)監(jiān)測(cè)和故障診斷,但是系統(tǒng)過于單一,僅依靠電池狀態(tài)發(fā)出警告信號(hào)并中斷電路,且容易受到外界干擾。文獻(xiàn)[7]對(duì)電池充電狀態(tài)進(jìn)行實(shí)時(shí)監(jiān)測(cè),結(jié)合充電管理芯片保證電壓輸出穩(wěn)定,但是缺少系統(tǒng)故障提示。文獻(xiàn)[8]采用ZigBee 無線通信技術(shù)對(duì)電池系統(tǒng)進(jìn)行信息采集與傳輸,并增加了故障報(bào)警功能,但是忽略了該技術(shù)存在傳輸數(shù)據(jù)范圍短且傳輸速率較低的問題。文獻(xiàn)[9]結(jié)合電池監(jiān)測(cè)芯片遠(yuǎn)程監(jiān)測(cè)車載蓄電池和用電器信息并統(tǒng)一管理,但是該系統(tǒng)缺乏遠(yuǎn)距離通信功能設(shè)計(jì),無法對(duì)電池狀態(tài)進(jìn)行遠(yuǎn)程管理。
隨著智能手機(jī)和電腦等移動(dòng)端的普及,人們對(duì)生活方式的追求不斷智能化、便捷化。本文結(jié)合WiFi、NATDDNS(Network Address Translation-Dynamic Domain Name Server)技術(shù)、人機(jī)界面及傳感器,設(shè)計(jì)一種基于樹莓派的功能性電池管理系統(tǒng),以更好地遠(yuǎn)程化管理電池。該系統(tǒng)以樹莓派為核心處理器采集和處理電池信號(hào),用戶可在電腦端使用VNC(Virtual Network Console)登錄樹莓派遠(yuǎn)程監(jiān)測(cè)系統(tǒng)數(shù)據(jù)。在此基礎(chǔ)上,基于HTTP(Hyper Text Transfer Protocol)超文本傳輸協(xié)議,設(shè)立PC 或手機(jī)端為客戶端,樹莓派為服務(wù)器,通過NAT-DDNS 網(wǎng)絡(luò)地址轉(zhuǎn)換技術(shù)使服務(wù)器能夠接收到來自不同局域網(wǎng)的數(shù)據(jù)通訊,以此進(jìn)行用戶手機(jī)等移動(dòng)端與服務(wù)器端之間的數(shù)據(jù)傳輸,實(shí)現(xiàn)用戶遠(yuǎn)程控制電池系統(tǒng)的功能。該系統(tǒng)能耗低、穩(wěn)定可靠,且與傳統(tǒng)的單一系統(tǒng)相比具有多通訊協(xié)議,據(jù)此對(duì)電池的使用進(jìn)行改善,有效減少了電池過充放電,保障電池的穩(wěn)定使用,并延長(zhǎng)電池壽命,滿足實(shí)際生活需求。
電池管理系統(tǒng)設(shè)計(jì)采用軟硬件相結(jié)合的方式,以微型計(jì)算機(jī)樹莓派為核心,支持WiFi 及NAT-DDNS 網(wǎng)絡(luò)訪問技術(shù),實(shí)現(xiàn)系統(tǒng)遠(yuǎn)距離監(jiān)測(cè)與控制功能,同時(shí)集成了信號(hào)采集單元,實(shí)現(xiàn)對(duì)儲(chǔ)能電池的數(shù)據(jù)采集與處理。該系統(tǒng)包括網(wǎng)絡(luò)通信模塊、信號(hào)采集模塊及系統(tǒng)控制模塊,系統(tǒng)總體框圖如圖1所示。
Fig.1 Overall block diagram of battery management system圖1 電池管理系統(tǒng)總體框圖
(1)網(wǎng)絡(luò)通信模塊實(shí)現(xiàn)用戶端與系統(tǒng)之間的數(shù)據(jù)傳輸及遠(yuǎn)程控制,使用戶有效地遠(yuǎn)程化監(jiān)測(cè)與處理信號(hào)。用戶基于WiFi 將電腦端與樹莓派通過SSH 連接,并使用VNC登錄至樹莓派[10],將樹莓派的視頻界面?zhèn)鬏斨罰C 端,實(shí)現(xiàn)電池?cái)?shù)據(jù)遠(yuǎn)程觀測(cè),在電池出現(xiàn)異常時(shí)系統(tǒng)發(fā)出警告以提醒用戶,具有一定的故障報(bào)警功能。同時(shí),利用樹莓派搭建服務(wù)器,并設(shè)計(jì)人機(jī)交互界面,通過HTTP 協(xié)議,用戶可使用網(wǎng)絡(luò)訪問服務(wù)器實(shí)現(xiàn)遠(yuǎn)程控制系統(tǒng)。當(dāng)用戶與電池系統(tǒng)存在物理隔離時(shí),通過外部移動(dòng)設(shè)備進(jìn)行網(wǎng)頁(yè)登錄訪問,從而對(duì)電池系統(tǒng)進(jìn)行遠(yuǎn)程化管理。
(2)信號(hào)采集模塊實(shí)現(xiàn)電池信號(hào)采集,并估算電池SOC 狀態(tài)。系統(tǒng)通過各類傳感器分別采集電池信號(hào),并采用ADS1115 進(jìn)行A/D 轉(zhuǎn)換[11],轉(zhuǎn)換器節(jié)點(diǎn)連接至樹莓派GPIO(General-purpose input/output)引腳,并將數(shù)據(jù)傳輸至樹莓派上。
(3)系統(tǒng)控制模塊實(shí)現(xiàn)電池充放電管理。該模塊由樹莓派GPIO 與繼電器組成[12]。系統(tǒng)通過分析電池?cái)?shù)據(jù)狀態(tài)參數(shù),對(duì)電池充放電進(jìn)行調(diào)節(jié)與控制,同時(shí)接受用戶遠(yuǎn)程通訊指令以實(shí)現(xiàn)電池管理控制。
樹莓派(Raspberry Pi)是一款只有信用卡大小[13],基于Linux 系統(tǒng)的微型電腦,由英國(guó)的樹莓派基金會(huì)開發(fā)。該系統(tǒng)使用樹莓派4B 作為核心處理器和關(guān)鍵硬件平臺(tái),其芯片采用全新64 位BCM2711 四核處理器,支持雙頻IEEE802.11ac 無線網(wǎng)絡(luò)和千兆以太網(wǎng),更好地滿足用戶通過PC 端遠(yuǎn)程監(jiān)測(cè)電池?cái)?shù)據(jù),同時(shí)具備無線通信功能,使其能夠作為服務(wù)器與客戶端實(shí)現(xiàn)遠(yuǎn)程通訊傳輸,圖2 為樹莓派4B 的外形圖。此外,樹莓派通過GPIO 引腳實(shí)現(xiàn)傳感器與樹莓派之間的數(shù)據(jù)傳輸,完成電池信號(hào)采集,圖3 為樹莓派的GPIO 引腳圖。
Fig.2 Raspberry Pi 4B圖2 樹莓派4B
Fig.3 Raspberry Pi GPIO pin diagram圖3 樹莓派GPIO引腳圖
該系統(tǒng)的電池信號(hào)采集模塊由ACS712 電流采集模塊、電壓變送器、PT100 溫度傳感器、DS18B20 測(cè)溫模塊及ADS1115 組成,實(shí)現(xiàn)電池系統(tǒng)各信號(hào)采集,包括電池的電壓、溫度信號(hào)、環(huán)境溫度信號(hào)以及電池充放電時(shí)的電流信號(hào)。首先將各信號(hào)采集模塊與電池系統(tǒng)相連,采集電池各模擬量信號(hào),然后通過高精度A/D 轉(zhuǎn)換器將各模擬量信號(hào)轉(zhuǎn)換成數(shù)字信號(hào),最后將A/D 轉(zhuǎn)換器的管腳與樹莓派GPIO引腳相連,將數(shù)字量輸出至樹莓派界面,實(shí)現(xiàn)電池系統(tǒng)各數(shù)據(jù)的采集與監(jiān)測(cè),其硬件結(jié)構(gòu)設(shè)計(jì)如圖4 所示。由于樹莓派自身內(nèi)部沒有集成ADC(Analog to Digital Converter),因此通過外接ADS1115進(jìn)行模數(shù)轉(zhuǎn)換。
Fig.4 Hardware structure design of battery data acquisition圖4 電池?cái)?shù)據(jù)采集硬件結(jié)構(gòu)設(shè)計(jì)
該系統(tǒng)支持HTTP 超文本傳輸協(xié)議和無線傳輸協(xié)議,系統(tǒng)以手機(jī)和PC 等移動(dòng)端為客戶端,樹莓派為服務(wù)器,通過設(shè)計(jì)用戶與服務(wù)器之間進(jìn)行交互的界面,并結(jié)合NATDDNS 架構(gòu),實(shí)現(xiàn)客戶端與系統(tǒng)的遠(yuǎn)程連接,在此基礎(chǔ)上通過交互界面對(duì)系統(tǒng)進(jìn)行遠(yuǎn)程控制。
系統(tǒng)軟件設(shè)計(jì)主要完成以下功能:①WiFi 模塊遠(yuǎn)程連接;②服務(wù)器功能;③用戶與系統(tǒng)遠(yuǎn)距離通訊;④視頻界面遠(yuǎn)距離傳輸。系統(tǒng)軟件設(shè)計(jì)包括NAT-DDNS 內(nèi)網(wǎng)穿透模塊搭建、服務(wù)器搭建、人機(jī)交互界面搭建、VNC 界面搭建。
NAT 的實(shí)質(zhì)是一種將私有網(wǎng)絡(luò)地址轉(zhuǎn)化為公網(wǎng)IP 地址的轉(zhuǎn)換技術(shù)[14],包括靜態(tài)網(wǎng)絡(luò)地址轉(zhuǎn)換、動(dòng)態(tài)網(wǎng)絡(luò)地址轉(zhuǎn)換、端口映射、網(wǎng)絡(luò)地址及端口轉(zhuǎn)換等,它被廣泛應(yīng)用于各種Internet 接入方式,NAT 可以實(shí)現(xiàn)重用地址,并且可以有效地避免來自外部網(wǎng)絡(luò)的攻擊,實(shí)現(xiàn)對(duì)外隱蔽。該系統(tǒng)結(jié)合NAT-DDNS 技術(shù),在樹莓派搭建的服務(wù)器內(nèi)使用動(dòng)態(tài)域名解析,通過云服務(wù)器與內(nèi)網(wǎng)服務(wù)器建立連接,同時(shí)將內(nèi)網(wǎng)端口映射到云端,用戶使用基于域名的互聯(lián)網(wǎng)訪問云服務(wù)器時(shí),在HTTP 協(xié)議下,云服務(wù)器根據(jù)域名和端口會(huì)自動(dòng)映射到對(duì)應(yīng)的內(nèi)網(wǎng)服務(wù)器靜態(tài)IP,實(shí)現(xiàn)用戶通過外網(wǎng)地址訪問到內(nèi)網(wǎng)服務(wù)器搭建的服務(wù)應(yīng)用,完成遠(yuǎn)距離通訊。NAT-DDNS 內(nèi)網(wǎng)穿透基本模型如圖5 所示,當(dāng)用戶手機(jī)或PC 等移動(dòng)端處于4G/5G 及其他局域網(wǎng)時(shí),通過互聯(lián)網(wǎng)輸入私有網(wǎng)絡(luò)地址,云服務(wù)器接受到用戶發(fā)來的外網(wǎng)地址信號(hào),并將其轉(zhuǎn)化成樹莓派的靜態(tài)IP 地址,通過WiFi 訪問至樹莓派組建的服務(wù)器,從而實(shí)現(xiàn)用戶與電池系統(tǒng)的遠(yuǎn)程連接。
Fig.5 Basic model of NAT-DDNS intranet penetration圖5 NAT-DDNS內(nèi)網(wǎng)穿透基本模型
NAT-DDNS 內(nèi)網(wǎng)穿透模塊搭建步驟如下:
(1)利用樹莓派下載內(nèi)網(wǎng)穿透軟件,并在終端上通過cd指令進(jìn)入對(duì)應(yīng)下載目錄,輸入如下指令進(jìn)行安裝。
輸入指令:sudo dpkg-i phtunnel_5_0_rapi_armhf.deb
通過終端界面顯示此樹莓派的SN 碼、默認(rèn)密碼(admin)和遠(yuǎn)程管理地址,表示軟件安裝成功,如圖6所示。
Fig.6 Install peanut shell software圖6 安裝花生殼軟件
(2)啟動(dòng)花生殼客戶端,配置軟件工作參數(shù)。用戶首次登陸管理網(wǎng)頁(yè)時(shí)需要補(bǔ)全資料、重新設(shè)置密碼,并開通內(nèi)網(wǎng)穿透服務(wù)。映射類型選擇HTTP 協(xié)議,它是一種運(yùn)行在TCP 協(xié)議之上的響應(yīng)協(xié)議,具有操作便捷等特點(diǎn),且效率比TCP 協(xié)議更高。根據(jù)用戶輸入的內(nèi)網(wǎng)IP 地址及端口號(hào)等參數(shù),花生殼會(huì)提供系統(tǒng)遠(yuǎn)程訪問控制的地址,NATDDNS 轉(zhuǎn)換成功如圖7所示。
Fig.7 NAT-DDNS module builds a successful interface圖7 NAT-DDNS模塊搭建成功界面
當(dāng)手機(jī)或PC 等客戶端打開后,隨著樹莓派開啟服務(wù)器功能,客戶端便可通過輸入外網(wǎng)地址進(jìn)行HTTP 連接,同時(shí)服務(wù)器接受連接并在界面上通知用戶已完成連接,用戶利用人機(jī)交互界面實(shí)現(xiàn)對(duì)系統(tǒng)的遠(yuǎn)程控制,其連接流程如圖8所示。
Fig.8 Connection flow of the client and the system圖8 客戶端與系統(tǒng)連接流程
為了搭建人機(jī)交互界面,需要先將樹莓派轉(zhuǎn)變?yōu)橐粋€(gè)Web服務(wù)器,提供用戶遠(yuǎn)程訪問功能。
(1)在樹莓派終端安裝bottle 庫(kù),將樹莓派作為一個(gè)小型網(wǎng)站。
輸入指令:sudo apt-get install python-bottle
(2)在樹莓派中建立文件夾,命名web.py。編寫以下程序:
該系統(tǒng)基于網(wǎng)頁(yè)搭建人機(jī)交互界面,人機(jī)交互界面是用戶與服務(wù)器之間傳遞、交換信息的對(duì)話接口,是整個(gè)系統(tǒng)的重要組成部分之一。通過交互界面與NAT-DDNS 架構(gòu)相結(jié)合,實(shí)現(xiàn)用戶對(duì)系統(tǒng)的遠(yuǎn)距離管理,增強(qiáng)了系統(tǒng)的功能性。
(1)在web.py 所屬文件夾中編寫控制界面,將文件命名為home.tpl,并編寫HTML 代碼。部分程序如下所示:
VNC 是用戶使用PC 端遠(yuǎn)程監(jiān)測(cè)電池?cái)?shù)據(jù)的重要技術(shù),首先采用putty 的方式使電腦端與樹莓派無線連接,通過SSH 輸入路由器靜態(tài)IP 地址登錄,然后在PC 上通過tightVNC 客戶端啟動(dòng)樹莓派的界面,如圖9 所示。通過VNC 界面的搭建實(shí)現(xiàn)樹莓派端與電腦端屏幕、鍵盤、鼠標(biāo)的共享,使用戶能夠遠(yuǎn)程監(jiān)測(cè)系統(tǒng)各數(shù)據(jù)變化,并分析處理電池信號(hào)。
Fig.9 Raspberry Pi VNC interface圖9 樹莓派VNC界面
4.1.1 遠(yuǎn)程控制軟件
當(dāng)系統(tǒng)連通網(wǎng)絡(luò)后,用戶在手機(jī)等移動(dòng)端登錄NATDDNS 網(wǎng)址實(shí)現(xiàn)內(nèi)網(wǎng)穿透,結(jié)合HTTP 協(xié)議將客戶端與樹莓派搭建的服務(wù)器相連接,并通過人機(jī)界面將電池開關(guān)控制信號(hào)傳輸至系統(tǒng),實(shí)現(xiàn)遠(yuǎn)程控制與管理,界面設(shè)計(jì)如圖10 所示。用戶通過點(diǎn)擊開關(guān)按鈕控制電池的充放電,增強(qiáng)了系統(tǒng)的便捷性與個(gè)性化。
Fig.10 Control interface圖10 控制界面
4.1.2 系統(tǒng)數(shù)據(jù)監(jiān)測(cè)
系統(tǒng)基于Thonny Python IDE 軟件運(yùn)行信號(hào)采集及處理程序,在樹莓派上顯示電池狀態(tài)并自我控制平衡。用戶通過VNC 界面遠(yuǎn)程化監(jiān)測(cè)電池狀態(tài),并通過繼電器控制電池充放電的開關(guān),實(shí)現(xiàn)系統(tǒng)自動(dòng)化及遠(yuǎn)程化管理。系統(tǒng)數(shù)據(jù)采集界面如圖11所示。
Fig.11 System data display interface圖11 系統(tǒng)數(shù)據(jù)監(jiān)測(cè)界面
電池溫度過高或者過低時(shí)會(huì)引起電池的功率和能耗變化[15],進(jìn)而影響電池的壽命和性能,因此系統(tǒng)出現(xiàn)故障時(shí)會(huì)給予用戶提示,表1 列舉了系統(tǒng)提示類型。該系統(tǒng)采用的硬件精度較高、抗干擾性強(qiáng),故當(dāng)系統(tǒng)出現(xiàn)異常時(shí)能及時(shí)發(fā)出警示,保證系統(tǒng)安全運(yùn)行。
Table 1 System prompt type表1 系統(tǒng)提示類型
本文設(shè)計(jì)了一種基于樹莓派的電池管理系統(tǒng),通過HTTP 協(xié)議及NAT-DDNS 協(xié)議實(shí)現(xiàn)了用戶對(duì)電池系統(tǒng)的遠(yuǎn)距離監(jiān)測(cè)與管理。與傳統(tǒng)的電池管理系統(tǒng)相比,該系統(tǒng)具有遠(yuǎn)程通訊功能,更好地滿足了用戶對(duì)電池系統(tǒng)的個(gè)性化管理,且系統(tǒng)信號(hào)采集精度高、數(shù)據(jù)傳輸范圍廣,同時(shí)具有故障提示功能,使其工作狀態(tài)保持在合理范圍內(nèi),提高了電池的安全性能,對(duì)電池管理系統(tǒng)發(fā)展具有良好促進(jìn)作用。未來可以將智能壽命診斷及智能故障診斷等功能加入電池管理系統(tǒng),搭建電池系統(tǒng)智能化管理框架,對(duì)未來電池的健康使用具有很好的參考價(jià)值。