利用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主机可以监控反作用力仿真器的性能和状态。此外,该系统在保证动态控制的同时还提供给用户多个信号的控制权利。
仿真反馈系统1' height="422" />
图2: FPGA程序框图
图2显示了FPGA程序框图,用于处理传感器输入信号的程序以及处理CAN通信的消息的程序。EPS反作用力输出程序和PWM生成程序分别用于产生液压执行器的控制输出信号,和将车辆速度转化为PWM波信号。