张 烽, 泛亚汽车技术中心 试验工程师
开发一套可靠的数据记录系统,用于在高温,振动的环境下采集并记录大量不同类型的信号。具有简单直观的机械开关按钮式操作界面供非专业人员使用。
自行搭建操作面板,提供传感器电源及信号接口,控制开关,以及状态指示灯。应用NI CompactRIO平台读取各路信号,响应面板开关动作,执行数据存储,指示运行状态。
整车开发试验需要在实际道路上进行路试并采集相关数据,如车速,转向器扭矩,踏板行程与踏板力,各类管路压力,各部件及环境温度等。通常周期较长,试验环境不佳,日常的实验室数采系统不能很好地胜任。同时此类试验往往由专职试车员执行,工程师不随车,因而也要求相关采集系统易于试车员操作。
National Instruments的CompactRIO平台具有多款I/O模块,可以连接多种不同类型的传感器。系统可以耐受高温振动等不良工况,直流供电便于在汽车上使用,可以脱离计算机控制独立运行,也可以通过数字量I/O接受简单的控制指令并进行反馈,9012控制器可以外接闪存存储器,实现大容量数据记录且不必担心振动对硬盘的机械影响,是道路数据采集的理想选择。
本文从一个初学者的角度介绍了使用NI CompactRIO快速开发一套独立数据采集系统并对其优化改进的过程和方法。
在新款汽车的工程开发过程中,制动系统的设计与验证是一个重要的试验环节。试验过程首先由数据采集系统采集各项数据并保存为文件,随后由另一程序读取记录文件并进行分析。本文着重讨论数据采集部分。
泛亚汽车技术中心整车性能试验股自2003年起应用NI的数采设备和LabVIEW软件,在试验数据采集和分析方面积累了一定的经验。通常,道路试验需要两名工程师参与,分别负责车辆驾驶和数采操作。车辆在道路行驶中产生的颠簸对设备及电脑硬盘会造成一定影响,而且在车载条件下采集仪器和笔记本电脑还需要逆变器提供交流电。考虑NI的CompactRIO平台集成了信号调理、A/D转换、实时控制器、以及USB闪存接口,直流供电,加电即可自动运行,可以耐受高温振动等不良工况,故决定以CompactRIO平台为基础开发这套采集系统用于制动试验。
此次试验主要关注制动蹄片温度,需要记录的通道有车速、整车加速度、四个制动蹄片的温度、环境温度以及一个制动触发信号。以下对开发过程做一介绍。
在所有需要记录的通道中,五个温度信号来自热电偶,使用两块NI 9211模块采集;整车加速度来自一个伺服式加速度传感器,输出幅度为±5V的模拟电压,采集模块为NI 9215。车速信号来自光电式非接触车速传感器,通过模拟电压、频率信号或CAN总线输出车速信号,为简便起见,暂也使用NI 9215读取模拟电压。车速和加速度的采样频率均为100 Hz。制动触发信号会在制动踏板踩下时产生一个12V的高电平,由于我们采用的数字I/O模块9401可接受的最高电平为5V,所以需要接一个分压电路,或者用模拟模块采集这个信号。
除了上述数据通道,该系统还需要处理一些开关量,用于操作界面的输入输出。包括一个存盘开关,决定是否将当前采集数据存盘。当开关合上时,控制器会根据当前系统时间自动生成文件名并将数据存入优盘,将此开关断开再合上可以实现另起文件名的作用。一个带复位的零位开关,用于在数据文件中表示零位,从而便于在数据分析时消去传感器的零漂。清零功能可以在采集时同步实现,也可以只作记录,留到PC上分析时再做相减。
此外,由于该系统运行时不用显示器等监视工具,笔者在操作面板上设立一组发光二极管用于指示系统正常或故障,以及闪存容量过低等信息。以上开关量和指示灯信号通过9401模块输入输出。
整机照片如图1所示。
此采集系统的软件由两部分组成,分别运行于Real-Time控制器和FPGA背板。根据起初的规划,FPGA.vi (注:指运行在FPGA Target上面的vi程序,下同)负责定时(100 Hz)采集各模块各通道数据,并将数据写入DMA fifo,这是连接背板和控制器的缓存。在Real-Time.vi中由一个循环定时读取缓存中的原始值,通过binary-to-nominal函数把二进制数转换成电压量再乘以相应系数转换成物理量。转换后的数据写入RT fifo,这相当于一个磁盘缓冲区。另一个低速循环每30秒读取一次缓冲区,将数据一次性写入闪存。设立两个循环的好处是由控制器尽快读取DMA fifo,可避免DMA fifo体积过于庞大,避免过度占用FPGA资源。而低速循环可以降低读写闪存的频率,有利于保护闪存,也减少读写出错几率。
调试改进
在后续的调试和改进过程中,该架构的主线没有更改。但是针对出现的问题,做了下列改进:
1. 由于热电偶采集模块9211的A/D转换速率较低(14S/s),当该组通道数据与其他模块数据在FPGA.vi的同一个循环内使用FPGA I/O Node读取的时候会导致该循环的整体运行速率严重降低。解决方案是使用不同速率的循环,使原先通过9215模块读取的通道不受影响,热电偶读数不通过DMA传递,而是利用前面板通信读到Real-Time.vi再与其他数据另行同步。
2. 为减少由A/D转换引入的误差,将通过9215读入的加速度传感器信号的采样频率由100 Hz提高至800 Hz,并对每8个点进行平均后输出。希望通过这样的方法使转换中产生的毛刺部分抵消,提高信号的质量。之所以选定8倍采样频率是因为8点平均可以占用较少的FPGA门电路资源。对比以往的数采系统需要软件运算实现类似的功能而言,CompactRIO系统使用可定制的硬件电路实现同样的功能,完全不占用额外的时间和资源,也不用增加经济成本。
3. 由于车速信号将在后续数据处理中进行微分运算,而先D/A再A/D的传输方法给信号带来一定噪声,不利于微分运算,故改用NI 9853模块从车速传感器的CAN总线直接读取车速数值。CAN信号使用数据帧传送,传感器端的发送周期约为4ms/帧。因此在FPGA.vi内另建一个循环每读取5个数据帧(20 ms)并从中分离出代表车速的数值后输出2个数据点写入另一个DMA fifo,由Real-Time.vi定时读两个fifo和记录热电偶读数的控件,重新同步成100 Hz的数据。随着CAN总线应用的日益普及,使用CompactRIO的CAN通信模块不仅可以连接传感器,也可以同时连接汽车总线,获取更多信息。在将来的应用中,甚至不仅可以读取,还可以向车辆发送一些控制信号,如清除故障码等等。
4. 由于该系统本身没有基于显示器的用户界面,笔者设计了一个指示信号通过闪烁提示运行正常。实现方法是设置一个布尔量,在主循环内每次运行时取反(见图3),将其值输出至9401模块的数字I/O端口,在端口上连接一发光二极管(LED)。这样,当程序正常运行时,LED会随该布尔量的循环取反而闪烁,当程序异常停止时,该指示灯停止闪烁。这样,试车员就可以不需要电脑而通过最直观的方式了解采集系统的工作状况,避免程序异常停止造成无效试验。当然,在条件允许时,也可以为该系统配置一个触摸屏(如NI 2016),从而获得更好的图形化交互界面和控制功能。
5. 一般使用计算机进行数据采集时会利用文件名或其他方式记录当前试验工况,而CompactRIO系统不具备直接输入条件,因此需要另外的方法对试验工况进行标识。为此笔者在设备面板上设置了一个旋转开关,经过适当连线后形成一个分段式的电位器,当系统输入电压为12V时,开关四个档位的输出电压分别为0、3、6、9V(见图4)。记录该电压就可反映相应的四个工况。
6. LabVIEW内置了web server,当程序没有专门部署PC-host部分的时候,利用web server通过网络将Real-Time.vi的前面板显示在PC的浏览器上是非常高效的调试手段。开发者只需将CompactRIO通过网线与电脑相连,再在浏览器地址栏输入RT上设定的网页名称就可以看到程序前面板,从而实时了解程序的运行情况和错误信息,甚至在必要的时候可以获取控件的控制权修改一些参数。要实现这些功能完全不用编写任何网络通信方面的代码,而只需要点击鼠标在Web Publishing…菜单处进行简单配置,极大的提高了调试效率,也便于工程师在试验中观察现场数据时使用。
在实验室完成开发以后,此系统被安装在汽车副驾座位上,使用乘客安全带进行固定,从汽车电瓶获取电源。预装在试验车上的传感器通过接插件与系统面板连接,由数采系统负责统一供电和信号连接。在试验中,试车员所要做的仅仅是在试验开始时插入优盘并打开系统电源,以及在工况切换时拨动存盘开关以产生一个新的记录文件,此外也包括在必要的时候旋转旋钮标识当前工况或者按下清零按钮以表示传感器零位。
由于此次试验中适逢道路泥泞,溅起的泥水遮蔽了光电式车速传感器的镜头导致车速输出异常。在发现这个问题以后,笔者及时调整了程序,当车速为零时通过数采面板上的指示灯给予提示。这样当试车员在行驶过程中发现此灯亮时即可及时清洁镜头。此方法也可用于检测热电偶开路等异常。由此可见,使用NI CompactRIO平台开发的数据采集系统不但强大可靠,而且功能灵活,可及时根据用户需求而调整,这在传统仪器上几乎是不可想象的。
使用NI CompactRIO平台开发的道路试验数据采集系统实现了多种不同类型信号的采集,实现了开关量的交互控制和响应,在较短的时间内达到了预期的功能,且运行稳定可靠,是汽车道路试验中的理想选择。
欢迎您点击“请NI工程师回电!”,马上申请NI测控专家的专业技术咨询!
更多获奖征文请访问:www.ni.com/china/papercontest
张 烽
泛亚汽车技术中心 试验工程师