(合肥工业大学 电气与自动化工程学院,安徽 合肥 230009)
根据国家新能源汽车发展政策的要求,新生产的新能源汽车必须通过远程监控平台对整车及电池等关键系统运行状态进行监测和管理[1]。电动汽车作为新能源汽车的一种,是未来汽车产业发展的主流方向。对电动汽车进行实时监控,有助于掌握车辆的运行状况和故障信息,确保车辆的安全运行。
文献[2]与文献[3]提出一种基于CAN总线和GPRS无线通信网络的电动汽车远程监控系统,实现了对电动汽车运行数据的采集。文献[4]提出了一种基于Telematics的电动汽车远程监控系统,实现了车辆终端与服务终端的数据实时双向传输。文献[5]提出基于数据采集和无线远程传输的电动汽车远程监控系统设计方案,利用MySQL实现对实时上传数据的存储。文献[6]与文献[7]提出了基于Matlab和MySQL的电动汽车远程监控系统方案,实现了电动汽车运行数据的存储和分析。
本文通过对电动汽车远程监控系统的功能进行分析,结合HBase和MySQL的优点[8~9],提出了基于MySQL和HBase的数据中心解决方案,设计了一种电动汽车远程监控系统。该系统实现了电动汽车远程监控系统的数据采集、存储和显示功能,具有对大量数据查询效率高的特点。
电动汽车远程监控系统通过对车辆运行数据的采集与分析,可提高车辆运行的安全性。为了实现对电动汽车的远程监控,远程监控系统应具备以下功能:
① 数据的采集与远程传输功能。系统能够远程获取车辆的运行数据,并通过无线通信网络实现对车辆软件的远程升级。系统实现车辆数据采集和远程升级功能的前提是数据安全可靠的传输。
② 数据存储与分析功能。系统需要实现对车辆运行数据的存储和分析。由于每辆车每年产生的数据量有3亿多条[10],所以系统应具有对大量历史数据进行存储和分析的能力。同时,随着电动汽车数量的增多,电动汽车远程监控系统对数据存储和数据分析的需求也越来越大,因此系统需要具备可扩展性。
③ 数据显示功能。系统应具有对存储数据的显示功能,可以为用户提供车辆运行数据查询的可视化界面。
根据电动汽车远程监控系统的功能,将远程监控系统分为车载终端、数据中心和远程客户端三部分,系统总体结构如图1所示。车载终端实时采集车辆位置数据、电池管理系统数据、动力系统数据、整车控制系统数据等,并将获取的数据上传到数据中心;数据中心接收并存储车载终端上传的数据;远程客户端通过与数据中心的交互,将获取的车辆数据在客户端中显示。
图1 系统总体结构图
车载终端是远程监控系统中的重要组成部分,应具有采集车辆的运行数据和执行远程控制指令的功能。车载终端采用模块化设计,具体包括微处理器模块、CAN通信模块、北斗/GPS模块和无线传输模块等,基本结构如图2所示。
图2 数据中心结构框图
微处理器模块通过CAN总线获取动力电池信息、电机信息、整车信息、故障信息等,通过RS232获取北斗/GPS模块解析的车辆位置信息和无线通信模块接收的控制命令信息,实现数据的采集和控制命令的解析。无线通信模块通过RS232接收微处理器模块的数据,并利用无线通信网络上传到数据中心;无线通信模块通过无线通信网络接收数据中心的控制命令并传递给微处理器模块。
为了保障车载终端与数据中心之间数据交互的安全可靠性,参照国家标准《电动汽车远程服务与管理系统技术规范 第3部分 通信协议及数据格式》(GB/T 32960.3-2016)制定基于数据包的通信协议,数据包结构定义如表1所示。
表1 数据包结构定义
车载终端与数据中心进行交互的过程中,利用校验机制、应答机制、心跳机制和数据补发机制保障数据包的可靠性,采用AES128加密算法对数据单元进行加密,保障数据的安全性。数据包的命令标志位主要包括车辆登入(0x01)、实时信息上报(0x02)、补发信息上报(0x03)、车辆登出(0x04)、故障模式(0x07)远程升级(0x83)等。其中,实时信息上报的数据帧由信息采集时间信息采集的时间(BYTE[6])、信息类型标志(BYTE[1])和信息体(根据信息类型的不同,长度和数据类型不同)。信息类型包括整车数据、动力电机数据、车辆位置数据、极值数据等。以整车数据为例,整车数据包括车辆状态(BYTE[1])、充电状态(BYTE[1])、累计里程(WORD[4])、车速(WORD[2])、总电压(WORD[2])、总电流(WORD[2])、SOC(BYTE[1])、DC-DC状态(BYTE[1])。
车载终端的工作模式可分为3种[11]:正常模式、故障模式和远程升级模式。正常模式下,数据包的命令标识为0x02,数据上传的时间周期为30 s;当发生故障时,数据包的命令标识为0x07,车载终端进入故障模式,数据上传的时间周期调整为1 s;当数据中心对车载终端的软件进行升级时,数据包的命令标识为0x83,车载终端在用户允许的情况下进入远程升级模式,此时车载终端下载可执行性文件并存储,文件下载完毕后软件自动升级。
利用Hadoop分布式处理架构和云服务器搭建数据中心,数据库选用HBase和MySQL。Hadoop、HBase和云服务器均具有扩展性强、便于维护的优点[12],有助于解决远电动汽车运行过程中产生的大量历史数据难以存储的问题。同时,HBase具有可随时读写大规模数据的优点,满足远程监控系统高效查询大量数据的需求。MySQL具有面向磁盘存储、带有索引结构的特点,满足远程监控系统数据实时显示对存储数据库性能的需求。
数据中心包括数据接收模块(具体包括车载终端数据接收子模块和远程客户端数据接收子模块)、数据存储模块和数据分析模块。实现数据中心与车载终端交互、对车辆运行数据存储分析和与远程客户端交互的功能。数据中心结构如图3所示。
图3 数据中心结构框图
车载终端数据接收子模块与车载终端建立稳定的TCP连接,利用多线程技术对车载终端上传的数据包进行BCC校验和解密处理并将数据存入缓存队列中,调用JDBC接口,将经过处理后的缓存队列中的数据存入数据库。其中针对轨迹数据中存在大量冗余数据的问题,采用基于阈值结合的轨迹压缩算法[13]。
远程客户端数据接收子模块采用ThinkPHP3.2框架;通过监听80端口接收HTTP协议数据并解析,查询数据库中相关数据并封装成JSON格式回传给远程客户端,从而实现与远程客户端的交互。
数据存储模块包括关系型数据库MySQL和非关系型数据库HBase。MySQL是基于表格结构和行模式存储的数据库,可以利用SQL语句方便地查询非常复杂的数据,适用于数量较小的数据存储,但是可扩展性较差,无法完成数据量较大的数据存储。HBase是基于列存储的数据库,虽然只能表示简单的键-数据关系,但是可扩展性较强、安全性高[14],适用于数量较大的数据存储。车辆运行的近期数据数量小,且主要是车辆的实时数据,用于远程客户端对车辆实时运行状况的查询;车辆运行的历史数据主要是车辆运行过程中关键系统的运行状态数据,随着时间的增加,数量巨大。因此,选用MySQL作为电动汽车远程监控系统近期数据的存储数据库;采用HBase作为大量历史数据的存储数据库。MySQL中保存的数据用于远程客户端实时显示,系统通过Sqoop定期把MySQL中的数据迁移至HBase中保存,HBase中保存的数据用于为电动汽车实际道路工况下的车辆性能考核和整车控制策略优化提供数据支持。
远程客户端数据分析模块采用MapReduce框架,实现对车辆运行数据的分析。数据分析模块通过对动力电池数据和动力电机数据进行分析,为优化电池管理系统的控制策略和整车控制策略提供科学的依据;通过对位置数据进行处理,得到当前位置和用户的驾驶行为特征,实现充电导航和驾驶习惯分析;通过对故障信息和相关部件故障前后的数据进行分析,实现故障预警和故障处理效率的提高。
远程客户端是采用HTML5+CSS3+JavaScript技术进行设计的Web客户端。当用户登录远程客户端查询车辆运行数据时,客户端利用页面的JavaScript脚本调用XMLHttpRequest对象向数据中心发送异步请求,并将返回的JSON数据利用百度地图和EChart图表化显示。
远程客户端界面包括个人中心车辆信息、充电导航和位置信息4个菜单栏(如图4所示):
① 个人中心包括密码修改和个人基本信息展示;
② 车辆信息包括动力电池数据查询、动力电机数据查询和故障诊断数据查询;
③ 充电导航寻找可达充电桩并推荐相应的行驶路径;
④ 位置信息包括当前位置信息查询和历史轨迹信息查询。
图4 远程客户端运行界面
本文测试环境使用5台云服务器,构建一主四从的Hadoop集群。每台服务器上的软件版本如表2所示。
表2 软件版本对应表
用户登录远程客户端,可以查询车辆的运行状态信息,包括动力电池电流、动力电池电压、动力电机转速等。以动力电池数据的查询为例,当用户查询动力电池数据时,动力电池电流和电压数据会在客户端中显示,如图5所示。
下面将从数据库中查询相同数量的数据所消耗的时间长短作为衡量数据库查询效率高低的标准。在测试环境下,从MySQL和HBase中分别查询相同数量的动力电池电流数据,记录每次查询所消耗的时间,将记录的数据绘制成曲线如图6所示。
由图6可以看出,随着动力电池数据查询数量的增加,两种数据库的查询所消耗时间都相应增加。当查询数据量较小时,HBase查询所消耗的时间比MySQL多;当查询数据量较大时,HBase查询所消耗的时间比MySQL少,并且随着数据量的增加,两者查询所消耗的时间差越来越大,当所查询的数据量达到100000条时,MySQL的查询耗时是HBase的7倍。因此,选用MySQL作为电动汽车远程监控系统近期数据的存储数据库,实现远程客户端与数据中心的实时交互功能;选用HBase作为历史数据的存储数据库,提高数据查询效率。
图5 动力电池电流和电压曲线
图6 MySQL和HBase查询耗时对比图
通过分析电动汽车远程监控系统的功能,设计了一种的电动汽车远程监控系统,其中,利用北斗/GPS模块、CAN总线模块和无线通信模块设计了车载终端,实现了车辆运行数据的采集和远程传输;通过利用Hadoop分布式处理架构和云服务器搭建了数据中心,实现了数据的存储和分析;利用HTML+CSS+JavaScript开发了Web远程客户端,实现了数据分析结果的显示。最后,通过对比分析了从HBase和MySQL中查询相同数量的数据所消耗的时间,结果表明本文所设计的系统在对大量历史数据进行查询时具有效率高的优点。所设计的系统不仅可实现对电动汽车的远程监控,而且能够为电动汽车的进一步优化研究提供数据分析平台,有利于推动电动汽车产业的发展。