动力电池管理系统云服务构架设计

动力电池管理系统云服务构架设计

摘要:依靠车联网(GB/T32960)远程监控管理电池,还存在着一些不足。因此研发独立的BMS云就是必要的。系统逻辑架构分为三层。云端服务器体系为典型的C/S的分布式结构。解决方案选择大量使用开源的中间件来做二次开发。

关键词:独立的BMS云服务;低成本高效率研发

新能源汽车的动力电池管理系统称为BMS,BMS的云服务指的是把管理系统通过互联网延伸到指定的车外远程监控管理中心。《国家车联网产业标准体系》中指出:“智能网联汽车是指搭载先进的车载传感器、控制器、执行器等装置,并融合现代通信与网络技术,实现车与X(人、车、路、云端等)智能信息交换、共享,具备复杂环境感知、智能决策、协同控制等功能,可实现“安全、高效、舒适、节能”行驶,并最终可实现替代人来操作的新一代汽车。”可见由于车联网是以车为中心的,车载信息离开了车则信息就中断了。依靠车联网(GB/T32960)远程监控管理电池,还存在着其他的一些不足:①BMS管理的从电芯到电池包的信息数据量巨大,满足国标车联网的设备带宽不足以支撑这部分数据的实时传输和反应;②由于动力电池是化学能变成电能的转化设备,并不因为离开车就会处于完全静止状态,而且某些工作是在车外进行,离开车的电池也需要监控;③单独对电池包的电量进行计量,目前也没有纳入车联网。因此研发独立的BMS云就成为有必要的。国内的新能源汽车相关产业,如BMS产品厂家,也都有这BMS云方面的研发,但是目前尚无独立的不完全依赖于车联网的产品。

1BMS云的价值

电池状态信息透明:电池是车中最关键的部件,车企通过BMS云得以跟踪所有动力系统的实际工况,更好地监控电池的工作状态。用户也可以通过移动端等方式了解电池的状态。动态更新电池配置:用户可以获得更针对自己动力电池的BMS配置。动力电池是化学能变成电能的转化设备,可能会存在某些不确定因素,因此有可能要进行某些小的修正,车企通过BMS云得以对动力系统进行实时修补和改良。电池使用方案优化:可以对电池的用途和容量进行管理,给予用户更准确的续航里程,推荐充电位置等信息;为用户提供应急容量或帐篷模式等使用方式。管理换电式的工作方式的电池。技术持续改进:长期的数据积累对电池系统的改进至关重要。借助更丰富的数据来源进行大数据分析,为今后的新能源电池及管理的开发提供参考数据。OTA方式升级系统。

2BMS云的架构

2.1应用层

处于逻辑构架的最上层,由用户API模块、统计数据面板模块和BMS配置升级模块组成。其中用户API模块,是提供给用户在移动端下载的访问接口,用户通过互联网访问云端监控中心的BMS远程控制软件,实时了解与被监控电池相关的、授权范围内各种信息,实现电池故障预测、电池生命周期预估、用电量计量等功能。统计数据面板模块,是提供云端监控中心的服务器前端,把被监控电池状态的信息结果可视化,根据统计数据分析形成的各种统计曲线、表格和图形等有效的实时电池信息及预警信息,实时的在监控中心人机交互和显示。所统计的数据覆盖到所有被监控范围的BMS产品,同时在线台数可达到百万数量级以上。BMS配置升级模块,是提供部署新版本BMS升级的通道,当BMS软件版本升级时,不需要到4S店刷新,而且可以在不停车的状态下远程同步动态升级。还可以用于OTA功能下载和更新软件。

2.2数据应用层

处于逻辑构架的中层,包括数据分析和自动化配置两个模块,其中数据分析模块,是本系统的核心模块,是针对收集到的所有被监控的BMS端上传的电池状态数据,对其进行统计和分析,既有对单台BMS的分析,也有对全数据进行分析,统计特征量,清理和规范化,提供对用户API、对自动化配置、对统计数据面板等应用场景的支持。自动化配置模块,是根据统计结果自动化产生BMS优化配置,如行车状态、充电状态、换电状态等,在权限控制下部署到电池BMS或车端。

2.3基础数据层

最底层的数据层,由电池BMS端采集电芯和电池包的数据,进行数据清洗后,经互联网发送,传送至云端监控中心,建立长期的、独立的BMS信息数据库。云端监控中心向BMS端推送数据,实现BMS配置热切换,版本升级等远程功能。从BMS端到云服务端的上、下行信号通路,可独立建立或继承车辆的Telemetry通道。

3BMS云的技术方案

云端服务器体系为典型的C/S的分布式结构,分为前端、客户端和后端。为了节省研发开支,提高开发和项目完工的效率,解决方案选择大量的使用开源的中间件来做二次开发。本文对中间件的功能描述均来自开源中国社区https://www.oschi-na.net/,图2中的小图标是各个中间件的标识。

3.1操作系统

操作系统中目前最大量使用的是Windous和Linux。选用Linux,除了开源、免费之外,具有UNIX基因的强大的网络功能和开放的平台性,运行安全、对内存和文件的管理能力强、占用内存小、命令行操作高效等优势,也是选择的考量因素。而编程语言的选择,考虑本系统的交互性特点,使用较之其他语言,简单性、安全性、动态性和跨平台性特点明显的JavaScript。

3.2数据库

云端拥有一个功能强大的核心数据库,用来存储数据并参与统计运算。必须能够提供性能与数据稳定性之间的精细调控。RethinkDB数据库,针对实时应用进行优化。它的特点是能够处理一些要求快速的服务启动,在数据量超出内存大小后还能保持较高的性能,处理各种不稳定的读写压力,处理大量数据等的服务负载。数据库选用RethinkDB,可以在不大规模提高现有的硬件条件下,提供更好的实时应用负载能力。

3.3服务器

后端软件位于云服务的核心位置,其性能的优劣决定了整个系统运行的使用体验。最重要的是必须在技术上可靠、快速和可扩展。DeepStream是一个强大的消息队列,可以在浏览器、智能手机、后端和物联网之间同步实时数据。本系统选用DeepStream,并以DeepStream为枢纽,驱动百万级的数据同步和消息传递。DeepStream提供了多种语言的API,使得BMS云的应用层开发变得更加容易。可直接在浏览器使用的JavaScript包可以为监控大屏幕提供支持。

3.4服务器

电池BMS采样数据通过反向服务器进入Deep-Stream,再到达数据库RethinkDB。这样的设计可以保证系统的不间断运转。要选用一款占用内存少,并发能力强的反向服务器,Nginx是比较好的选择。Nginx是一款轻量级的Web服务器/反向服务器及电子邮件(IMAP/POP3)服务器,并在一个BSD-like协议下发行。国内多家门户网站都在使用。因此本系统也选用Nginx来实现服务器。RethinkD+Nginx+DeepStream组合开发,实现了基础数据层。而支撑数据应用层开发平台的则是由RethinkDB+Node.JS组成。

3.5应用程序运行环境

各种功能的应用程序,都要有一个开发和运行的平台,本系统所选用的开发语言是JS,因此选用了基于ChromeV8引擎的JavaScript运行环境Node.js。它使用了一个事件驱动、非阻塞式I/O的模型,使其轻量又高效。Node.js的包管理器npm,是全球最大的开源库生态系统,能够很方便地使用JavaScript开发出各种对数据的统计应用功能。

3.6数据查询和服务

云服务的应用中,最基本的功能是提供对任意的BMS属性进行查询。由Facebook开发、用于API的查询语言的GraphQL成为最佳选择。GraphQL每天都为Fackbook接收、处理着上百亿的请求,为Fackbook提供了强大的基础数据平台的支持。它既是一种用于API的查询语言,也是一个满足数据查询的运行服务。它使得云服务中的应用可以使用统一的规范准确地获得它需要的数据,而且没有任何冗余。

3.7其他应用服务程序

BMS云服务提供的前端和客户端的应用的界面程序,也可以找到开源的中间件进行二次开发,使的开发的过程简单又快速且可靠。可视化方面中间件选用库D3.js,响应式前端的框架选择Vue.js。D3.js是一个JavaScript的函数库,用它来做数据可视化。它可帮助使用HTML、SVG和CSS将数据变为现实。Vue.js是一套构建用户界面的渐进式框架。它采用自底向上增量开发的设计。它的核心库只关注视图层,非常容易与其它库或已有项目整合。将来也很容易将网页应用转换为手机应用。

4结束语

这是一个架构简单,功能丰富的轻量级BMS云端服务系统,具有很强的负荷能力,很好的可扩展性。可用于实时监控万级以上的BMS设备。同时可满足部分实时数据分析的需求,快速查询特征量并及时作出反馈。达到系统的设计目标:实时了解电池状态、动态配置电池、优化电池使用方案、通过数据挖掘改进电池及管理技术。未来通过在DeepStream数据管道上加入更多的模块可实现更为复杂的业务需求,并保证升级的平滑性。当用户数量增加时,也可以通过增加DeepStream节点实现更大的同时连接数量。

作者:张骋 单位:浙江吉利汽车研究院