四轮独立驱动/转向电动汽车的无线控制系统设计

2020-02-21 08:22周苏许科荣支雪磊
汽车技术 2020年2期
关键词:实车上位串口

周苏 许科荣 支雪磊

(同济大学,上海 201804)

主题词:无线控制 四轮独立驱动 ZigBee

1 前言

轮毂电机驱动电动汽车结构简单、质量轻、体积小、传动效率高,在此基础上进一步引入四轮独立转向技术,就形成了四轮独立驱动/转向电动汽车[1-3]。通常,车型开发过程中的初期测试不要求高速、远距离,但考虑到安全问题(尤其是在无人驾驶控制策略的样本学习期间),不适合由测试人员在测试底盘上直接进行实车操作。因此,有必要设计一套无线控制系统,使四轮独立驱动/转向电动汽车在无线控制下完成相应的行驶任务。

近年来,国内外研究人员开发了各种无线控制系统解决方案。晁楠[4]和喻涛[5]利用ZigBee无线网络各自实现了对小车的控制;Saputra H M等[6]采用2.4 GHz频段通信方式实现了无人机械车的无线控制;Barankova I等[7]利用ZigBee通信技术实现了铁路运输车辆的自动控制;鲁哲等[8]利用ZigBee无线网络为自动导引车(Automated Guided Vehicle,AGV)设计了无线通信系统。

本文根据四轮独立驱动/转向电动汽车开发阶段的实车测试需求,选用ZigBee作为无线通信模块,设计上位机控制软件,用Python编程语言编写车载信息处理单元的主程序,开发无线控制系统,并进行台架和实车测试。

2 系统方案

系统主要由通信模块(无线通信模块和CAN通信模块)、信息处理单元和上位机控制软件构成,如图1所示。信息处理单元将接收到的上位机控制信息转成对应的CAN控制指令发送至整车控制器(Vehicle Controller Unit,VCU),完成整车控制。同时,VCU的状态消息也可以通过CAN总线,经信息处理单元转换后,由无线模块发送到上位机。

图1 系统模块框图

上位机控制软件和信息处理单元的核心逻辑是支撑整个系统的基础。为满足快速开发、便捷调试的需求,采用Raspberry Pi作为信息处理单元的硬件平台,采用Python编程语言实现无线模块和CAN模块的基本配置,并根据无线通信协议和CAN模块手册编写了相应的通信代码。同时,信息处理单元的主程序用于实现无线消息与CAN消息之间的互相转换与收发。上位机的控制软件采用LabVIEW设计,实现了控制消息(模式、加速、转向、制动等)的输入与发送和状态消息(速度、电量、电流等)的接收与显示。为保证系统信息传输的准确性,在收发数据的过程中加入了循环冗余码校验机制。

3 系统设计

3.1 通信模块选型

ZigBee技术具有数据通信可靠性高、实时性强、同步性好和控制网络范围可扩展等优点,其无线通信网络新增节点的典型网络参与时间为30 ms,节点从休眠状态激活进入工作状态的典型时延为15 ms,处于工作状态的节点的典型存取时间为15 ms[9]。本文涉及的系统控制对报文收发时间间隔的要求为50 ms,因此,Zig⁃Bee技术可以满足实时性的要求。此外,本文所涉及车辆无线控制系统的设计目标是实现200 m以内的无线双向通信(控制数据发送以及状态数据接收)和快速组网等。综合以上考虑,选择ZigBee作为系统的无线通信方式。

CAN总线控制器采用MCP2515,收发器采用TJA1050。选用的模块支持CAN V2.0B技术规范,通信速率为1 Mb/s,还支持标准和扩展数据帧及远程帧、0~8字节长的数据字段,可以满足系统需求。

3.2 信息处理单元

采用Python编程语言实现信息处理单元的主要逻辑,包括主要通信模块的初始化、ZigBee消息收发循环和CAN消息收发循环。

3.2.1 主程序逻辑

信息处理单元需要同时收发ZigBee消息和CAN消息。主程序利用Threading模块多线程控制消息收发,其中主线程在通信模块初始化完成后进行ZigBee消息收发,子线程进行CAN消息收发,2个线程间通过全局变量进行互通。工作流程如图2所示。

图2 信息处理单元主程序工作流程

3.2.2 ZigBee消息收发循环

ZigBee模块采用串口控制,因此,ZigBee无线消息收发等效于读写串口消息。其基本思路是轮询,即先判断处理来自串口的数据,再判断处理需要发到串口的数据,通过这两个过程形成大循环,实现ZigBee无线消息收发。代码逻辑如图3所示。

图3 ZigBee无线消息处理逻辑

3.2.3 CAN消息收发循环

CAN消息收发循环中存在2个判断,分别用于判断是否收到新的CAN消息和是否存在待发送的CAN消息,如图4所示。

处理CAN消息发送的子函数时,首先需判断待发送的数据是否合法,本文选用G(X)=X8+X5+X3+X2+X+1作为循环冗余码校验多项式。验证通过则将数据通过CAN发送出去,否则不执行CAN发送。

图4 CAN消息处理逻辑

3.3 上位机控制软件

上位机通过LabVIEW编写,利用其VISA串口通信工具对ZigBee模块进行数据读写。VISA本身不具备编程能力,它是一个高层应用程序编程接口(Application Programming Interface,API),通过调用底层驱动程序实现对模块的编程[10]。特殊点在于VISA串口读写均以字符串形式进行,因此,需要将控制量和状态量定义为单字节或多字节数据,通过字符数组的方式将这些数据串连起来,再通过控件将其转为字符串类型。

3.3.1 上位机的控制逻辑

上位机需要实现对ZigBee模块无线消息的收发,处理用户输入的控制数据,处理并显示通过ZigBee传送的来自CAN总线的状态数据。上位机基本工作流程如图5所示。首先初始化串口通信,为处理无线消息做准备,同时进行前面板及全局变量的初始化。随后进行大循环,其主要实现前面板的操作响应和内容显示,终止条件是用户给出终止信号。对前面板响应的同时,另有2个支路进行串口数据的收发,与前面板进行数据交互,分别进行各自的数据处理。

图5 上位机的基本工作流程

3.3.2 上位机的控制界面及程序框图

用LabVIEW搭建的上位机通常由前面板和程序框图构成,一般为多线程并行。根据程序框图的构建情况,程序运作流程可以是串行、并行或者用户事件触发、时间触发等。根据上位机的基本工作流程绘制上位机控制界面,如图6所示。

该控制界面主要实现控制数据输入和状态数据显示功能。输入的控制数据包括启动、停止按钮,模式选择框和加速(Acceleration)、转向(Steering)、制动(Breaking)3个滑动轴。所有控制模式包括上电、驱动、制动、倒车、停车(Park)、原地转向(顺时针、逆时针)、侧行、紧急关机(ERROR)。显示的状态数据包括车速(Speed)、电池电量、电流以及驱动电机状态反馈和转向电机状态反馈。

依照上位机的控制逻辑对该界面编程后得到对应的上位机程序框图,如图7所示。

4 系统测试

4.1 基本运行测试

将信息处理单元及相关通信模块安装在四轮独立驱动/转向电动汽车上,如图8所示。通电后,该系统能正常工作。利用车载VCU的在线测试工具MotoHawk可以便捷地进行CAN报文的实时收发测试。经测试,上位机和信息处理单元的收发功能均正常工作,未经正确循环冗余码校验处理的数据无法通过信息处理单元传送到CAN总线或上位机。

4.2 转向标定测试

由于转向舵机与车轮均存在安装误差,在测试整体功能前需要对车轮进行标定。与此同时,通过转向标定还可以测试上位机对车轮控制的准确性。转向舵机控制脉冲宽度调制(Pulse Width Modulation,PWM)信号,实现对车轮转角的控制。车轮安装后,左前轮和右后轮的转向范围为-45°~90°,右前轮和左后轮的转向范围为-90°~45°。通过上位机界面的转向滑动轴对车轮进行控制,每次标定都针对单一车轮进行,其他轮被设置屏蔽。标定结果如表1所示。

4.3 台架和实车测试

台架测试主要测试模式切换、转向角度变化、驱动、制动等功能能否正常实现。经测试,所有功能均能正常工作,符合预期。其中原地转向模式的台架测试如图9所示。

在四轮独立驱动/转向电动汽车其他相关设备安装就绪后,对该无线控制系统进行了实车测试,如图10所示。

图7 上位机的程序框图

图8 信息处理单元及相关通信模块

表1 车轮转向角标定结果 %

图9 台架测试(原地转向模式)

上位机通过无线控制系统给出的控制指令数据与GPS实际测得的车速数据存在一定差异,因此在实车测试过程中进行了车速测量和标定的工作。测试时,分别设定目标车速为1 km/h、2 km/h、3 km/h、4 km/h、5 km/h、6 km/h,采集控制器获得的无线指令数据和GPS测速仪数据。其中2 km/h和4 km/h目标下的测试数据如图11所示。

图10 实车测试

根据测试的数据,在不同的速度下,取相同时间点的GPS测量速度均值,以此对应关系作为待标定的数据,如表2所示。

根据表2所示的数据,进行多项式曲线拟合,结果为F(X)=0.159 6X2+0.893 5X+0.126 4。对该多项式进行验证,以无线控制系统给出的控制指令数据作为输入,得出拟合标定后的结果,与GPS的数据进行对比。其中2 km/h和4 km/h目标下的标定结果对比如图12所示。

根据上述数据,可得拟合多项式计算后的数据误差率。以不同目标速度下的均值计算得到的结果如表3所示。结果显示,同组别内,速度较低时(1 km/h、2 km/h)未经标定的数据更加准确,速度较高时标定后的数据误差率更低。

图11 不同目标车速下的测试数据

表2 待标定的数据 km/h

图12 不同目标车速下的标定结果对比

表3 拟合标定后的结果对比

由实车测试结果可知,无线控制系统能够将控制指令准确地发送给VCU。通过监控数据的对比可知,车辆能够较好地跟随由无线控制系统给定的车速。

5 结束语

本文设计了用于四轮独立驱动/转向电动汽车的无线控制系统,包括上位机控制软件、信息处理单元和通信模块,实现了ZigBee无线消息和CAN消息的互相转换,并加入了循环冗余码检验保证了通信安全性。经转向标定、台架测试和实车测试,该无线控制系统可以正常工作,可用于智能驾驶或无人驾驶车载环境典型样本的收集和控制策略学习。

猜你喜欢
实车上位串口
实车碰撞试验牵引系统钢丝绳疲劳损伤问题分析
基于手机蓝牙的奥迪A4L发动机故障设置系统设计
基于WiFi的奥迪A4L发动机故障设置系统
基于EM9000工控板高性能双串口通信模型设计与实现
一场史无前例的乐队真人秀
无需多言
MCS—51单片机中的多串口通讯技术的应用
基础油“上位”
微机串口的测试诊断
基于VC的PLC数据采集管理系统