摘要:作者介绍了用FPGA实现的FIR算法,把这种算法应用于汽车动态称重仪表中并对算法结果做了分析。实践证明此算法用于动态称重具有良好的效果。
关键词:FPGA;FIR;动态称重
引言
车辆超载是造成公路加速损坏的重要原因,交通部2000年2号令《超限运输车辆行驶公路管理规定》于2000年4月1日起执行。依据交通部对车辆轴类型及轴载质量的标准,我们研制了符合我国管理规范要求的全自动公路动态轴重超限管理系统,为交通部门实施有效的超限管理提供了强有力的手段。
车辆动态称重,即在非停车的运动状态下的称重。与停车状态下的静态称重相比,其主要特点是节省时间,效率高,使得称重时不至于造成对正常交通的干扰。动态称重时,车辆以一定速度通过轴重称量平台,不仅轮胎对平台的作用时间很短(在几百毫秒以内),而且作用在平台上的力除真实轴重外,还有许多因素产生的干扰力,如:车速﹑车辆自身谐振﹑路面激励﹑轮胎驱动力等。可以说真实轴重被淹没在各种干扰力中,给动态称重实现高精度测量造成很大困难。因此,在外界随机不确定度干扰力作用下如何准确测量真实轴重,就成了动态轴重测试系统的技术难点和关键。
动态称重数学模型
图1
当汽车以15km/h通过400mm的传感器测量板时需要96ms。如图1所示,在t0~t1约30ms的时间段内,由于应变片刚一受力无法回至平衡,所以此时的峰值高于真实轴重值,这段数据在实际测量中可以不考虑。而只是对后面t1~t2的数据进行滤波处理。由于在汽车运动中采集数据,所以相对于静态称重来说干扰比较严重。采用模拟方法滤波时,参数不能过大,否则将产生过大的延迟不能实现实时处理。这样滤波后的信号仍然含有想当一部分的噪声。所以此时必须通过数字滤波消除干扰。
FIR滤波的原理及实现
本文采用FIR数字滤波,其原理如公式1所示。
Y(n)= (1)
其中h(k)为系统滤波参数而x(n)为采集的信号,Y(n)为滤波后的输出信号。
FIR滤波器的h(n) 0≤n≤N-1
H(z)= (2)
在本文中N=17。由于h(n)具有对称性质,即:
h(n)=h(N-1-n) (n=0,1,…,(N-1)/2) (3)
这样就可以把FIR滤波器设计成具有线性相位。利用这一情况,可以得到乘法次数少的结构。图2画出了这种结构,可直接证明它是式2的结构,这个结构需要(N+1)/2次乘法,只是级联或并联结构所需次数的一半,因此实际应用中多数使用此方法。
图2
我们选用17点的FIR滤波算法,这样实现一次FIR卷积运算需要执行9次乘法和16次加法。为了实现数据的实时处理,需要在20μs内完成这个卷积运算,如果选用单片机89c51(12M晶振)则无法实现。所以我们采用Altera公司的FLEX10k20来完成卷积运算。FLEX10K系列是工业界第一个嵌入式的PLD,由于其具有高密度、低成本、低功率等特点,所以脱颖而出成为当今Altera中应用前景最好的器件系列。FLEX10K系列采用重复可构造的CMOS SRAM工艺,把连续的快速通道互连与独特的嵌入式阵列结构相结合,同时也结合了众多可编程器件的优点来完成普通门阵列的宏功能。
硬件框图
由于我们选用的A/D1674芯片转换时间只有10μs,而所设计的电路是每隔20μs启动转换一次,所以有足够的时间完成模数转换。汽车轴重台的宽度为40cm,汽车通过轴重台的最大速度为15km/h,这样可以求出汽车通过的最短时间为0.096s。在这段时间里可以采集4800个数据。由于前30ms是传感器的反应时间,除去这部分数据,将剩下的数据进行FIR数字滤波后,噪声被有效的抑制。为了进一步的平滑波形,我们每8个数据做一次平均,这样就消弱了由于汽车高速通过轴重台时由于颠簸产生的尖峰信号。FPGA的每次滤波包含有FIR运算和8个数据的平均值运算。FPGA每完成一次滤波就会向单片机发一个中断请求,此时单片机读取滤波后的数据。由于我们选用的A/D是12位,而单片机89c51是8位的,所以经过处理后的数据必须分两次读入。第一次读入低八位,第二次读入高4位,然后对数据处理。此时我们可以认为单片机接收的数据为滤波后不含有噪声的数据。根据轴重称量的波形图可以知道,只要求出此时的最大值就是汽车的真实重量。
在此仪表中,串行口即用来显示也用来通讯,我们可以通过FPGA很容易实现切换。如图3所示,当控制信号为1的时候RXD、TXD用于显示,而当控制信号为0的时候用于和上位机的通讯。
图3
试验结果分析
图4
我们选用加海明窗的理想低通滤波器,其归一化截至频率为0.25,如图4所示。汽车称重信号为含有多种成分噪声的直流信号如图5所示,这1000个数据经过FPGA的FIR滤波和8点数据平均后,提供给单片机125个数据,其波形如图6所示。
图5
图6
滤波之前的噪声的峰峰值在0.1左右,而此时的轴重信号为1,这将严重影响测量精度。滤波后我们看到情况得到了明显的改善,噪声信号的峰峰值被抑制在0.02的范围内,这就大大改善了信噪比,提高了测量精度。
结束
FPGA芯片的使用,不但实现了硬件数字滤波电路,而且使设计电路中减少了许多门电路和组合逻辑电路。用比较少的器件实现了比较复杂的功能,减少了故障率。用此方法设计的汽车动态称重仪表具有良好的实时性和较高的精度,现在已经投入批量生产。