德尔福使用LabVIEW和CompactRIO开发助力转向仿真反馈系统
扫描二维码
随时随地手机看文章
“我们在短短两个月时间里就利用NI CompactRIO硬件和NI LabVIEW软件开发了一套包含复杂算法的转向反作用力仿真系统。“
挑战:
开发一个转向反作用力仿真系统,可以从不同传感器采集数据,进行计算、信息匹配、并产生输出,并能够可靠地执行一系列需要快速响应的实时任务。
解决方案:
使用NI CompactRIO硬件和NI LabVIEW软件在短短两个月内开发一个基于复杂算法的转向反作用力仿真系统。
对驾驶过程中转向反作用力的仿真一直是动态变化的,因为它取决于车速、转向角度以及道路状况。另外,此仿真系统还必须具备快速响应时间,以便通过部件产生反作用力。
在车速、转向角度、转向角加速度数据的基础上我们得到了转向力矩数据图,并根据此图计算出最终的反作用力。然后,我们把这些值传给一个液压系统来仿真实现最终的反作用力。我们设计系统逻辑,从不同传感器获得数据、计算数据、匹配地图数据,产生输出,并可靠、快速地执行一系列实时任务。
系统概述
我们选择LabVIEW和CompactRIO来创建我们的系统。我们选择了可扩展的8槽NI cRIO-9116机箱。它有一个Xilinx Virtex-5现场可编程门阵列(FPGA),以帮助实现控制逻辑,并保证快速响应时间。我们还选择了 NI的一款配备了实时操作系统(VxWorks)的cRIO-9024实时控制器。
cRIO-9024控制器具有4 GB的存储空间,512 MB DRAM和800 MHz的CPU,这将有助于快速采集、记录和处理大量数据。此外,借助两个以太网端口和一个RS232接口,系统很容易便可与外部设备相连。USB端口可以很容易地用于扩展外部存储器介质。
我们使用两个4通道NI9215模拟输入模块处理8路模拟传感器信号。使用一个2端口NI9853控制器区域网络(CAN)模块来与正在开发的电子稳定程序(ESP)电子控制单元(ECU)进行CAN通信。
我们使用NI9474模块产生8路数字输出作为脉冲宽度调制(PWM)信号,仿真车辆速度。然后将此PWM信号发送到EPS ECU来虚拟一个车辆。这个信号会使用通道间相互隔离的NI9269模块来进行模拟信号输出,从而消除了信号之间的干扰,以确保用于液压系统的模拟输出足够精确。
除了精确控制数字和模拟输出,CompactRIO的配置还可以仿真车辆中动态变化的传感器信号和CAN信号(一种车辆通信信号)。我们利用FPGA和实时操作系统创建了一个快速并且高度可靠的车辆仿真系统。
我们为什么选择NI产品
考虑到该系统对于处理时间的精确性要求严格,我们需要通过FPGA实现高速数据采集、处理,并保证精确的数字和模拟控制信号输出。我们还需要实时、动态控制,以真实地仿真车辆行驶工况,快速计算出整车转向反作用力矩的数据,并构建出一个不受PC限制的嵌入式系统。LabVIEW减少了我们的软件开发时间,并提供了一个强大的函数库帮助我们开发算法。
系统配置
图1: 系统配置
如图1所示,8路传感器信号(NI9215)和CAN通信数据(NI9853)各自从它们的输入对象接收信号。FPGA以100 μs的采样周期从EPS ECU采集信号,并使用PWM波(0 km/h~250 km/h: 1.41 Hz~353 Hz, 占空比50%)提供车速信号(NI9269),并最终传输给EPS ECU。
通过先入先出(FIFO)的模式,所收集的数据将通过实时处理器(cRIO-9024)进行分析和逻辑处理,并转化为有效值。然后,在实时处理器中,系统使用一种快速映射算法(对应于标准地图数据存储的反作用力值)由参考数据计算出最后的控制量,并将它通过一个FPGA算法产生模拟输出量。NI 9269模块则提供±10 V的范围内的控制信号至液压执行器。
输入的传感器信号和最终的液压系统控制值控制了液压系统。他们同时还保存在队列中,然后通过TCP / IP通信发送到PC主机。这种配置使得PC主机可以监控反作用力仿真器的性能和状态。此外,该系统在保证动态控制的同时还提供给用户多个信号的控制权利。
图2: FPGA程序框图
图2显示了FPGA程序框图,用于处理传感器输入信号的程序以及处理CAN通信的消息的程序。EPS反作用力输出程序和PWM生成程序分别用于产生液压执行器的控制输出信号,和将车辆速度转化为PWM波信号。
图3 实时程序框图
在图3中,程序框图运行于实时操作系统中,进行数据采集、FPGA输出从数据库中获取数据,并传出最终值给FPGA,然后再将数据经过TCP/IP传给主机。
图4 2D数据插值程序框图
该系统最重要的部分就是一个可以根据从传感器采集的标准值而计算出不同地图数据的算法(见图4)。将输入参考信息与标准值相减后,数据减小了,为了保持线性,数值将从插值中提取出来。
图5:主机前面板
图5显示了主机前面板,用于监测EPS仿真器和不同传感器的状态变量。其中大多数数据都将历史值显示在图表上,重要参数被分开单独显示。
图6:CompactRIO
结论
我们有4个月的时间来开发这个应用程序,但实际仅使用了短短两个月内就完成了。我们使用LabVIEW编程完成了FPGA程序的快速功能实现和调试,而这往往需要大量时间和经验。在部署FPGA逻辑的同时,我们还实现了快速的数据采集。
该实时操作系统通过运用一个已获验证的操作系统(VxWorks),保证了高度安全、可靠的数据处理。因为目标控制的总循环时间为50毫秒,这就使得一个高效的控制效果成为了可能。这比为液压执行器提供所需的响应更快。
软件开发完毕后,将被下载至CompactRIO中独立运行,在没有PC控制下,平滑地控制反作用力仿真器。通过匹配整车级别的反作用力力矩数据,我们可以在cRIO-9024存储器中更新不同驾驶条件下的数据,用于更准确的实现实验室级的仿真环境。因为机箱插槽的可扩展性,我们只要再添加一个模块,就可以添加出更多样化的车辆行驶工况。这意味着我们可以使用最初的CompactRIO系统设计来轻松、经济、高效地适应新变化。
使用LabVIEW和CompactRIO作为解决方案的最大优势是,只要使用简单的组合或者简单的变量变化,它就能帮助我们快速、方便、准确地建立复杂的算法。