蔡庆秋,王双园,白国振,张志强
(上海理工大学机械工程学院,上海 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 协议实现了用户对电池系统的远距离监测与管理。与传统的电池管理系统相比,该系统具有远程通讯功能,更好地满足了用户对电池系统的个性化管理,且系统信号采集精度高、数据传输范围广,同时具有故障提示功能,使其工作状态保持在合理范围内,提高了电池的安全性能,对电池管理系统发展具有良好促进作用。未来可以将智能寿命诊断及智能故障诊断等功能加入电池管理系统,搭建电池系统智能化管理框架,对未来电池的健康使用具有很好的参考价值。