新闻中心

EEPW首页 > 汽车电子 > 设计应用 > 电动助力转向系统(EPS)数据采集的实现

电动助力转向系统(EPS)数据采集的实现

作者: 时间:2010-04-26 来源:网络 收藏

  Declare Sub Outport Lib "vbio.dll" (ByVal portID As Integer,

  ByVal nByte As Integer)

  Declare Function Inport Lib "vbio.dll" (ByVal portlD As Integer)

  As Integer

  Declare Function Getval Lib "EPS.dll" (ByVal portID As Integer)As Single

  在这样声明之后,函数Output、Input、Getval才可以像使用VB本身自带的函数那样在需要时进行直接调用。

3.3 VB中高精度定时数据的采集

  在台架试验的过程中,所有的扭矩,电流,角度,齿条位移等都是按照准确的物理时间来采集,并且记录在数据文件中。

  实时数据的采集过程需要用到定时器,定时器的精度必须能够满足实时采样和数字滤波的要求。本试验台利用Windows API函数实现精确记时的方法,即利用高性能频率记数法。利用这种方法需要使用两个API函数:QueryPerformaneeFrequency和QueryPerPerformanceCounter。

  (1) QueryPerformaneeFrequeney函数:获得高性能频率记数器的震荡频率,该函数的定义如下:

  Private Declare Function QueryPerformaneeFrequeney Lib "kernel32"_

  (lpFrequency As LARGE_INTEGER) As Long

  函数中的数据结构LARGE_INTEGER定义如下:

  Type LARGE_INTEGER

  lowpart As Long

  highpart As Long

  EndType

  调用该函数后,函数会将系统频率记数器的震荡频率保存到lpPerformanceCount中,其中低位保存到lowpart中,高位保存到highpart中。

  (2) QueryPerformanceCounter函数获得系统频率记数器的震荡次数,函数的定义如下:

  Private Declare Function QueryPerformaneeCounter Lib”kernel32”_

  (lpPerformanceCount As LARGE_INTEGER) As Long

  获得记时器震荡次数保存在lpPerformanceCount中。

  在程序设计中。首先通过利用QueryPerformanceFrequency函数获得频率记数器的震荡频率,然后在执行程序段之前调用QueryPerformance Counter函数获得频率记数器的震荡次数,在程序段结束时再调用QueryPerformanee Counter函数获得频率记数器的震荡次数,将两次获得的震荡次数相减后再除以震荡频率就获得了两次间隔之间的时间(以秒为单位)。因此在程序中建立了一个循环。在循环中不断的调用QueryPerformaneeCounter获得频率记数器的震荡次数并同先前的频率记数器的震荡次数相减,将结果除以频率记数器的震荡频率,如果达到设定的采集时间则执行数据采集任务,这样就达到了精确记时采集的任务。

  在试验的过程中,程序每隔3ms访问一次A/D板,也就是每3ms会读一个数据到内存中,为了更加清楚的观察各种状态下曲线的变化情况,以及尖脉冲干扰出现的时间,在设计时尽可能把这些点全部读入,并在实时曲线上显示出来。但是如果把这些点全部记录下来,数据量会非常大,不利于后续的助力特性等的分析,因此在中设定一个N值,当采集到的点数达到此值时,程序将这N个值做一次滤波处理,然后将处理过的数保存在数据库中,供后续的分析与处理。在这里N值取为50。实验证明,该定时器能满足EPS定时采集的要求。

3.4采集数据的过滤

  试验台外部干扰对于传感器的影响很大,因此采集到的数据需要经过处理。进行滤波的方法主要有:限幅滤波法,中位值滤波法,算术平均滤波等。

  (1)限幅滤波法。对于超过被测鼍可能上限和可能下限的测量值,则被认为是由于偶然的脉冲噪声丽引起,忽略该测量值。

  (2)中位值滤波法。对一组测量值,去掉其中的最大值和最小值,只对中位进行处理。

  (3)算术平均值法。取多个中位值的平均值。

  在数据采集过程中,试验台系统不可避免会产生尖脉冲干扰。本数据采集系统对模拟量采取的数字滤波方法是结合防脉冲干扰平均法和移动平均滤波法各自优点,即既能防止脉冲干扰,又能提高系统实时性,这里设置数据氏数据的个数为N个,每采样一次新数据,主程序就调用一次防脉冲移动平均滤波子程序,去掉N个数据中的最大值和最小值,再取余下(N-2)个数据的算术平均值来逼进真实的模拟量数值,然后再将所得的平均值记录下来。

4 小结与实验结果

  本文详细介绍了EPS试验台数据采集用的主要传感器,在试验台的基础上。开发了基于VB语言的数据采集系统,给出了数据采集系统的程序框图。介绍了VB对于底层的访问方法,以及在采集过程中高精度定时器的应用,最后介绍了程序的滤波方法。图3为数据采集软件的t作界面

图3数据采集软件的工作界面

  本文作者创新点:利用Visual Basic进行数据采集可以利用两种方法,利用MSComm控件和利用API函数的方法,本文利用API函数的方法,具有采集精度高,数据采集实时的特点。

  项目经济效益:20万元。


上一页 1 2 下一页

评论


相关推荐

技术专区

关闭