刘春光,燕玉林*,张运银,黄捷音
(1.陆军装甲兵学院陆战平台全电化技术实验室,北京 100072;2.驻四四七厂军事代表室,内蒙古 包头 014030)
轮毂电机多轮独立驱动车辆是全电化陆战平台中集电气、控制、机械等学科领域为一体的复杂系统,在实车试验过程中为了获取车辆的实时状态信息,需要采集整车的通讯信号、操控信号进行可视化输出,用于向驾驶员提供车辆运行姿态调整的依据[1];同时为了分析整车及分系统性能、改进能量管理和行驶控制策略,需要全程实时监测车辆运行的状态参数并记录所需的状态量以用于后续研究[2]。因此,需要开发设计车辆实时状态监测终端,用于实时采集、监测、显示、处理和记录实车运行的信号和参数[3-4]。本文首先分析了整车通讯结构和定义、确定需要监测采集记录的状态参数,基于CANOE 总线开发软件设计了车辆实时状态监测终端,实现了整车实际运行状态的有效监测。
轮毂电机多轮独立驱动车辆通讯系统提供了各部件间的信息交互平台,用于传输车辆的状态信息、控制信号、故障信息等,主要通讯部件包括低压配电盒、高压配电箱、发电机控制器、发动机控制盒、中央控制器、电池管理器、状态采集盒、制动控制盒、4 个电机驱动器,部件间通过CAN 总线与FlexRay 总线网络建立实时通讯,整车通讯系统总体结构如图1 所示。
图1 总线网络结构
车辆总线网络包括CAN 网络和Flexray 网络。其中CAN 网络根据信息交互情况又分为两个相互独立的网络:CAN_A 网络和CAN_B 网络。中央控制器与驾驶员低压配电盒、发动机电控盒、高压配电箱、发电机控制器、功率DC/DC 和显控终端组成CAN_A 网络;电池管理器、状态采集盒和制动控制器组成CAN_B 网络;中央控制器与驱动电机变频器之间采用Flexray 总线。
在实车试验中监测终端需要实现的功能主要包括以下两部分:一是能够实时监测显示驾驶员的操控信号及高低压配电指示,包括制动信号、转向信号、高压预充指示、低压配电指示等;二是能够实时监测显示车辆的各种状态信息,包括车速、横摆角速度、电池SOC、母线电压、电机转矩、DCDC 工作状态、故障信息等,在数据超出阈值时及时告警,可以存储记录数据以便于后期调用。
图2 监测终端系统结构
设计了如图2 结构所示的监测终端。包括3 部分:CANOE 硬件接收数据端、监测终端上位机,以及虚拟监测界面。CANOE 硬件盒将从总线上采集的数据报文传递给上位机,上位机根据总线通讯协议利用CANOE 开发套件将报文解析后通过虚拟监测界面呈现,并选择所需的状态信息以文本文件的形式存储于上位机。
为了保证各节点间通信准确高效[5],对CAN 网和FlexRay 网的各通讯节点ID 和总线通信协议进行调配。
CAN 总线上挂接的部件较多,传输数据量较大,同时CANOE 需要从CAN 总线直接采集传输数据后解析。为了合理使用总线带宽、减少总线冗余信息,提高总线信道使用率和系统可靠性,对CAN总线上的通信信息统一编码[6]。总线控制系统采用CAN2.0B 扩展帧格式,根据PGN 码和扩展帧29 位标识符(ID)的定义[7],结合通讯设备优先级要求,分配了A、B 网通讯设备的ID,如表1 所示。
表1 设备ID 分配表
由CAN 总线数据帧格式定义,单个数据帧最多可以传送8 个字节的数据长度[8],而总线上各节点传送的数据量不等,为了避免邮箱地址数量增加,充分利用数据帧长度,在实际编码中按照比特位定义数据,即一个字节的数据可能是多个信息的融合,不再单独代表实际信息,以高压配电箱节点发送的数据为例,消息描述为高压箱发往中央控制器,刷新频率为触发方式,由中央控制器询问,20 ms内应答,具体定义如下页表2、表3 所示。
对于单个数据超过一个字节的数据信息,将其按照Motorola 规则拆分为两部分放入同一消息的高、低字节,低字节在前高字节在后,如表3 中的母线电压,尽量同一个节点发送的消息内所包含数据的相关性,便于后续解析。
表2 高压箱ID 定义
表3 高压箱发送消息内容
Flexray 网络采用总线式网络结构,为双余度总线,所有节点设备均连接于A、B 总线。为保证冗余性,A 总线、B 总线线缆相互独立,无相互连接[9],各通道总线线缆与节点设备之间使用独立的插头插座。FlexRay 节点设备具备两路相互独立的通信通道,为了满足电磁兼容性要求,针对瞬变、静电放电(ESD)及电磁干扰(EMI)的抗扰度,最小化干扰辐射,总线电源独立,总线地与机壳地隔离[10]。以电机驱动器1 为例,其消息传输协议设计如表4 所示。
表4 电机驱动器1 的FlexRay 通信协议(部分)
在静态时隙分配上,中央控制器为2 发4 收,各驱动控制器为2 收1 发。为了合理分配消息发送时隙,定义FlexRay 通信数据帧长度为32 Byte。
实时监测软件采用Vector CANOE 开发平台,通过对通信节点配置、数据信号解码、监测、记录以及虚拟监测界面设计,完成了实时监测软件设计。
挂接在CAN_A 总线的通讯节点有5 个,CAN_B 有4 个,FlexRay 网的通信节点有5 个,在实际设置中需要将CANOE 作为一个虚拟节点只接收不发送。新建工程后分别使用CANdb++Editor 和Fibex Explorer 建立CAN 网FlexRay 网的配置文件,在左侧Network 下分别建立网络内节点,将生成的.dbc 文件和.xml 文件导入原工程,在Databases 中提取出相应节点进行组网[11-12],搭建后的网络如图3、图4 所示(以CAN_A 网为例)。
图3 CAN_A 网节点
图4 CAN-A 网通信联接
组网后可用Simulated Bus 模式进行仿真来验证是否组网正确。试验时若某一节点数据发送异常亦可将其挂起隔离,查看其他节点通信状态。
依据上一节拟定的CAN 网与FlexRay 网通信协议,分别在CANdb++Editor 和Fibex Explorer 中编写消息(即节点所发送的8 Byte 或32 Byte 数据帧)与信号(即实际数据变量,长度由协议而定)。CAN网的所有消息均在Message 中独立添加,在每一个消息内创建属于该消息的信号,设置信号的长度(bit)、单位、增益、偏置以及初始值,按高低字节排序每一个信号在该消息中的位置,设置消息的发送节点、接收节点,最后将消息按照ID 号归类到相应的节点。以高压箱发送的第一数据帧为例,如图5、图6 所示。
图5 CAN 网高压箱节点消息编写
图6 CAN 网高压箱信号排序
FlexRay 网由A、B 双冗余通道组成,消息编码相同[13-14],在每一个节点内添加该节点发送的消息并在消息内添加所包含的信号,与CAN 网不同的是需要设置数据帧的长度和类型。以电机驱动器1 为例,具体设置如图7、图8 所示。
CANOE 可以将总线传递的数据经过筛选后直接保存为.asc 文件,所保存的数据为一个ID 号对应的消息内的所有信号,其中具体的数据变量需要后期用MATLAB 处理。接入CANOE 的所有通信网络由Channel Filter 进行通道选择,嵌入CFB 模块和Trigger 模块对该通道内的消息ID 进行选择,设置记录触发方式为手动、预触发时间0.05 s、采样频率100 Hz、缓冲区大小为1 000 Msg,如图9 所示。
图7 FlexRay 网驱动器节点消息
图8 FlexRay 网驱动器节点信号
图9 数据存储设置
Panel Designer 模块提供了丰富的信号监视与外部触发工具。设定监测界面分辨率为1 440*700,根据所编写的通讯协议将所需观测的信号从左侧信号选择窗直接拖入信号显示区。由于所需观测的数据量较大,为了美化界面、方便观测,从外部导入相关实际部件的图片,并将使能信号或生命信号的显示转化为图片的显示;对于母线电压、放电电流等重要的实时观测数据,设定显示警告阈值,若监测过程中数据值超出阈值则显示为红色,利于及时发现车辆故障,设计界面如下页图10 所示。
实车运行中于总线采集的车速与母线电压数据变量,经后期处理后得到变化曲线。0~20 s 为车辆起步阶段,油门踏板踩下,母线放电驱动电机;20 s~40 s车辆匀速行驶,发电机为母线充电,电压上升;在110 s和120 s处车辆紧急刹车,制动能量回馈,母线泵升后给超级电容充电,迅速回落。
图10 终端检测界面
图11 车速及母线电压
本文基于CANOE 总线开发平台,采用总线平行设计策略,设计了一种双总线电传动车载数据实时监测终端,实现了对轮毂电机多轮独立驱动车辆实时运行状态的有效监测。该方法突破了传统单一总线的信息类型限制,实现了数据管理快速有效,总线通信安全准确,监测界面清晰美观,达到了预期设计目的。