张晓瑞,周志立
1.西安理工大学机械与精密仪器工程学院,陕西西安710048 2.河南科技大学车辆与交通工程学院,河南洛阳471003
车辆底盘测功机台架试验与路面试验相比具有安全性高、再现性好、经济性好、精度高、可比性好等优点,在车辆底盘测功机试验台架上实现整车路面试验一直是值得研究的课题。随着数字化设计在车辆新产品开发中的应用及虚拟试验技术的发展,车辆虚拟试验成为产品设计方案可行性分析、新产品研发及试验等多个环节评估和验证的先进方法[1-3]。因此,建立一套通用的基于虚拟环境的底盘测功机试验系统,集成虚拟环境模型及底盘测功机试验设备,对提高车辆虚拟试验效率、缩短车辆创新产品研发周期具有一定的作用[4]。
基于虚拟环境的底盘测功机试验系统中数据传递频繁,平台运行负荷较大,系统实时性会有所降低,尤其在该试验系统中参与的硬件设备较多,系统延迟会影响试验精度[5]。通用系统构建方法通过统一规范数字化产品信息交换机制,解决了系统间的数据交换问题,但这种系统构建方式需要重新建立基础模型,对现有模型的利用率低、开发难度大、成本代价高[6]。数据分发服务(data distribution service,DDS)技术是由对象管理组织(object management group,OMG)制定的一套应用程序接口(application program interface,API)与互操作性协议规范,强调以数据为中心,采用发布/订阅架构,通过丰富的服务质量(quality of service,QoS)策略保障数据进行实时高效的传输,具有高实时性、高吞吐量、低延迟性等优点,可满足各种分布式实时通信系统的应用需求[7-8],因此本文基于DDS 技术构建了虚拟环境底盘测功机试验系统。
本文在对虚拟环境底盘测功机试验原理及数据传输需求的分析基础上,应用DDS 技术构建虚拟环境底盘测功机试验系统,建立数据的发布订阅模型,重点研究数据类型注册、主题定义及接口封装等DDS 数据传输关键问题。采用试验的方式,测取试验系统数据传输时延和吞吐量参数,评价试验系统实时性和数据传输量性能指标。
虚拟环境底盘测功机试验系统集信息集成、数据管理、人机交互及验证评价等功能,能够完成试验方案生成、试验运行、试验结果分析等试验环节,主要由虚拟环境域成员、测功机及电气域成员、测控域成员、辅助安全域成员、数据管理域成员、流程管理域成员、监控服务域成员及验证评价域成员组成,其工作原理如图1所示。
图1 虚拟环境底盘测功机试验系统工作原理图Figure 1 Working principle diagram of the virtual environment chassis dynamometer test system
试验时,虚拟环境计算机模拟出车辆在道路上的行驶环境,并通过头盔与音响为驾驶员提供视觉反馈与听觉反馈,驾驶员根据虚拟环境域成员提供的反馈信息及自己的驾驶经验,采取相应的驾驶行为驾驶车辆在底盘测功机上行驶。测控域成员根据虚拟环境域成员提供的环境信息及车辆的运动参数计算得到加载力模型,通过测功机及电气域成员中的变频柜来控制加载电机对滚筒实时加载,以模拟车辆在真实道路上行驶,并通过功率柜逆变实现能量回馈电网,辅助安全域成员来确保试验安全顺利进行。同时,各传感器采集驾驶员驾驶行为及车辆性能信息,数据经过信号调理后传输到测控计算机,试验管理计算机运行数据管理域成员、流程管理域成员、监控服务域成员及验证评价域成员,通过以太网与测控计算机、虚拟环境计算机进行信息交互,管理试验数据,监控试验进程,根据相关评价指标对车辆性能、驾驶员水平及环境进行评价。
虚拟环境底盘测功机试验系统传输的数据主要包括模型输入数据、试验过程数据及结果输出数据,各种数据以不同方式分散管理,存储方式多样且容易丢失,难以实现数据查找和共享,影响对数据的分析和利用,因此需要对试验数据进行规范化管理[9-10]。
在虚拟环境底盘测功机试验系统中各个域成员通过以太网相互发布、订阅相关数据,确保试验顺利进行。根据试验原理,各个域成员发布/订阅的数据如表1所示。
表1 域成员发布订阅数据表Table 1 Domain member publish and subscribe data table
由表1可知,虚拟环境底盘测功机试验数据来源多,多源数据体量大、结构复杂、模态多变、关联度高,且传递频繁,根据系统域成员数量及域成员数据交互频率,可以推断吞吐量应当不低于15 Mbit/s。此外,加载电机必须能实时加载对应虚拟环境的道路阻力以保证试验精度,而滚筒、电机等大量硬件设备的存在影响了系统实时性,根据试验推进步长和硬件设备响应时间,系统时延应当不超过10 ms[11]。
OMG 对DDS 以层次的形式规范了数据交换行为,DDS 技术规范了以数据为中心的订阅/发布层(data centric publish subscribe,DCPS)和数据本地重构层(data local reconstruction layer,DLRL)组成的接口服务。DCPS 提供系统运行支撑环境,DLRL 为DCPS 与应用层之间的桥梁,应用层可通过调用DLRL 封装的类来访问数据[12]。
DCPS 是DDS 的核心与基础,为整个基于数据分发服务的分布式应用程序提供数据传输服务,其总体框架结构[13]如图2所示,主要包括域、主题、发布者、数据写入者、订阅者、数据读取者及域参与者。
图2 DCPS 层总体框架Figure 2 Overall framework of DCPS layer
域是发布/订阅的通信范围,数据传输过程中的每一个参与实体都必须隶属于同一个域,只有同一个域内的发布者和订阅者才能进行数据传输;主题用于发布者和订阅者建立联系,同一个域内主题是唯一的,发布者与订阅者根据主题查阅发布的信息,并检查其QoS 策略的兼容性,以确定是否建立联系并进行点对点的数据传输;发布者通过关联一个类型化的数据写入者来发布相应类型的数据;订阅者关联一个类型化的数据读取者,根据相应的QoS 策略负责接收数据并使接收的数据能够被订阅者所使用;域参与者是域内的一个本地域成员,提供实现主题、发布者和订阅者创建的功能接口,发布者和订阅者分别创建数据写入者和数据读取者,用于数据的发送和读取[14]。
DDS 在一次完整数据传输过程中需要执行一系列操作,工作时序[15]如图3所示。首先创建域参与者,并设置相关QoS 策略,注册数据类型。接着创建主题,域参与者创建发布者与订阅者,并分别设置相关QoS 策略。然后检查订阅者与发布者设置的QoS 策略的兼容性,只有在QoS 兼容的情况下双方才能建立联系以完成数据订阅/发布过程,最后订阅者创建数据写入者,进行数据发布。同时订阅者创建数据监听者Listener 和数据读取者,并将监听者与数据读取者绑定起来实现对订阅数据的监听,当发布者发布新数据后,订阅者自动发现并通过监听者的回调函数获取更新的数据。
图3 DDS 工作时序Figure 3 DDS working sequence
DDS 技术简化了各种复杂分布式系统中数据传输过程,通过QoS 策略实现了数据传输的灵活性,具有跨语言、跨平台的能力,主要具有以下特点[16]:
1)引入全局数据空间概念,增强了实时性,提高了数据传输效率。
2)采用UDP/IP 协议,增大网络吞吐率。
3)用QoS 策略控制服务行为,增加了数据传输的灵活性。
4)提高了系统的可扩展能力,降低了系统间的耦合性。
鉴于自身特点,DDS 技术主要应用于需要实时高效数据传输的复杂分布式系统中,尤其适用于数据来源多、多源数据体量大、结构复杂、传递频繁的情况。基于DDS 技术的应用系统可以运行在单独计算机或分布地运行在多台不同操作系统、不同体系架构的计算机上,无需关注其底层物理通信协议。
基于虚拟环境底盘测功机试验数据传输需求及DDS 技术分析,将DDS 技术应用于虚拟环境底盘测功机试验系统中,既保证了车辆试验的可扩展性,又可增加数据的吞吐量,提高数据的实时性传递,应用程序之间松耦合,能够更好地满足试验系统需求。基于DDS 技术构建的接口开放、具有通用性的虚拟环境底盘测功机试验系统如图4所示,各个域成员通过DDS全局数据空间交互数据。
图4 基于DDS 技术的虚拟环境底盘测功机试验系统Figure 4 Virtual environment chassis dynamometer test system based on DDS technology
试验系统中3 台计算机分别为测控计算机、辅助驾驶计算机、试验管理计算机;计算机性能参数为:64 位windows 7 操作系统,3.2 GHz CPU 频率。计算机之间通过以太网连接,组成的局域网内没有其他计算机参与。
测控计算机运行测控域成员,主要包括Links-RT 软件、Matlab/Simulink 软件及DDS运行支撑环境Open DDS 软件,采用共享内存的方式进行数据传递。
虚拟环境计算机运行虚拟环境域成员,主要包括Prescan 软件及Open DDS 软件,采用共享内存的方式进行数据传递。
试验管理计算机运行数据管理域成员、流程管理域成员、监控服务域成员及验证评价域成员,主要包括Labview 软件及Open DDS 软件,系统间采用共享内存的方式进行数据传递。
根据DDS 工作原理,首先创建域参与者,注册数据类型。虚拟环境底盘测功机试验系统数据种类繁多,数据结构复杂,本文以测控域成员订阅和发布的数据为例对数据类型的注册进行说明。
测控域成员订阅环境参数、工况载荷等数据,数据类型如表2所示。发布试验系统中转速、转矩、温度、电机振动、电压电流、踏板位置、档位、油耗仪、尾气分析仪等传感器信号及控制加载电机的PWM 信号,数据类型如表3所示。
表3 传感器信号数据类型定义表Table 3 Sensor signal data type definition table
在基于DDS 的分布式系统中,联系发布者与订阅者唯一的途径是创建的主题。基于虚拟环境的底盘测功机试验系统需要依据OMG 规范要求,根据不同的数据类型创建主题,主题类型通过IDL(interface definition language) 函数进行定义。为了满足本系统内各个节点间数据传输的需求。根据表2和3 的数据类型,本文以测控域成员为例,其发布/订阅数据IDL 定义如下:
表2 环境参数数据类型定义表Table 2 Environmental parameter data type definition table
在对虚拟环境底盘测功机试验系统数据类型注册及主题的定义后,试验系统已经具备DDS 通信的相关接口。为了能够更加便捷地实现对DDS 通信接口的调用,本文通过设计Interface 接口类,实现对DDS 原始接口的封装,从而形成了通用的通信接口,以便于试验系统的顺利进行,具体相关程序如下:
通过该通用接口,可以便捷地在虚拟环境底盘测功机试验系统中创建发布者与订阅者,从而进行实时的数据传输。DDS Interface 接口类主要包括初始化接口Initial(nDomain)、创建主题接口CreateTopic(cdTopicName,nPub)、设置QoS 接口SetQoS(Qos)、数据发布接口SendData(cdTopicName,msg)、数据订阅接口RecvData(cdTopicName,msg) 及DDS 资源释放接口CleanUp()。
初始化接口用于实现虚拟环境底盘测功机试验系统DDS 接口的初始化,创建域参与者,并按照表1生成发布者和订阅者;根据数据类型利用创建主题接口创建相应的发布或订阅主题,在创建订阅主题时,需要绑定订阅所需的监听类接口,用于实现对订阅数据的监听,订阅者自动发现并调用监听者的回调函数获取更新的数据;设置QoS 接口可以实现虚拟环境域成员、测功机及电气域成员、测控域成员、辅助安全域成员、数据管理域成员、流程管理域成员、监控服务域成员及验证评价域成员的QoS 策略;数据发布接口用于实现数据发布者完成指定主题数据信息的发布;数据订阅接口通过监听类实现的回调函数接口,实现对已发布的订阅数据的实时更新获取;DDS 资源释放接口用于实现数据传输完成后所有DDS 相关资源的释放。
数据传输时延和吞吐量参数体现了试验系统在实时性和数据传输量方面的能力,是虚拟环境底盘测功机试验系统重要的指标参数。
基于DDS 技术实现本方案构建的虚拟环境底盘测功机试验系统,并对试验系统数据传输时延和吞吐量进行测试,试验现场如图5所示。①为测控计算机,运行Open DDS 软件和Simulink 软件;②为虚拟环境计算机,运行Open DDS 软件和Prescan 软件;③为试验管理计算机,运行Open DDS 软件和Labview 软件;④为北京灵思创奇公司的快速原型控制器Links-RT,其上位机软件Links-RT 与测控计算机中Open DDS 软件、Simulink 软件连接,实时采集各传感器信息传递给测控计算机,测控计算机根据加载控制算法输出底盘测功机试验台控制信号,以对车辆进行动态加载;⑤为底盘测功机试验台,根据控制信号通过滚筒对被试车辆实时加载,模拟车辆在真实道路上行驶。
图5 试验现场Figure 5 Test site
为了对比不同对象属性数量下的数据传输时延性能,Prescan 软件建立虚拟环境模型,测控计算机根据环境参数PWM 控制模型(占空比相同),仿真20 组虚拟环境模型属性。具体测试步骤如下:
步骤1启动底盘测功机试验系统,系统初始化完成;
步骤2在Simulink 软件上运行底盘测功机控制系统,根据Links-RT 软件采集的车辆动态参数输出加载电机加载控制PWM 信号,并传递至电机变频器,同时启动计时器,计为T1时刻;
步骤3电机变频器接收到PWM 信号后,控制加载电机进行动态加载阻力;
步骤4步骤2 和3 重复运行50 次,停止计时器,计为T2时刻;
步骤5得到一组虚拟环境模型对应数据大小下的时延为(T2-T1)/100,单位为s;
步骤6重复步骤2~5,得到虚拟环境模型对应数据大小下的时延。
测得的数据传输时延结果如图6所示,随着传输数据量增大,时延增长,且时延增速也增大。当数据量达到4 000 kB 时,时延为9.4 ms,满足系统最大时延不超过10 ms 的实时性要求。在有硬件设备参与的虚拟环境下底盘测功机试验系统中,该数据传输时延性能可大大提高加载电机的响应速度,确保实时加载阻力,从而提高了试验精度。
图6 数据传输时延测试结果Figure 6 Results of data transmission delay test
为了测得试验系统数据传输吞吐量最大值,利用数据传输时延性能测试场景对数据传输吞吐量性能进行测量。具体测试步骤如下:
步骤1启动底盘测功机试验系统,系统初始化完成。
步骤2Simulink 软件运行底盘测功机控制系统模型,根据Links-RT 软件采集的车辆动态参数,输出加载电机加载控制PWM 信号,传递至电机变频器,同时启动计时器,计为T1时刻。
步骤3Prescan 软件以固定频率连续发送虚拟环境数据,当变频器接收到的数据量达到1 Mbit 时,Simulink 软件停止发送PWM 控制信号数据,此时计为T2时刻。
步骤4得到数据传输吞吐量为1/(T2-T1),单位为Mbit/s。
步骤5重复步骤2~4,得到20 组虚拟环境模型对应的数据传输吞吐量。如果数据传输吞吐量趋于平稳,可停止测试;如果数据传输吞吐量仍呈上升趋势,可增加虚拟环境模型,提高传输数据量,直至数据传输吞吐量趋于平稳。
测得的数据传输吞吐量结果如图7所示,随着传输数据量增大,吞吐量在增长,但其增速在减小,最后趋于平缓。传输数据量增大后,数据转换消耗时间增长,导致数据传输吞吐量在20 Mbit/s 附近波动。当数据量达到4 000 kB 时,数据传输吞吐量接近20 Mbit,满足虚拟环境下底盘测功机试验系统数据传输量的要求。
图7 数据传输吞吐量测试结果Figure 7 Results of data transmission throughput test
在研究虚拟环境底盘测功机试验原理及数据传输需求的基础上,通过对DDS 技术分析,构建了基于DDS 技术的虚拟环境底盘测功机试验系统,建立了各个域成员间发布/订阅模型,注册了数据类型,进行了主题定义,对DDS 接口进行了封装,解决了域成员间进行数据交互的关键问题。对虚拟环境底盘测功机试验系统数据传输时延和吞吐量进行了测试,结果表明:试验系统性能稳定,当数据量达到4 000 kB 时,时延为9.4 ms,数据传输吞吐量接近20 Mbit,满足车辆底盘测功机虚拟试验系统指标要求。