FIR滤波在汽车动态轴组计量信号处理中的应用
为了提高轴组式动态称重系统的精度和稳定性,需要采用FIR(finite impulse response)滤波处理方 法,过滤高频干扰。通过Matlab仿真,设计了 FIR低通滤波器。同时为了保证动态称重良好的实时性, 选择了功能强大的STM32F407微控制器芯片,实现了 FIR滤波算法。STM32F407微控制器芯片主频高 达168 MHz,且内部集成了单周期的DSP指令集和浮点运算单位(FPU,float point unit),可以轻松实现 FIR滤波算法。最后,将该FIR滤波算法应用于轴组式动态称重系统,并进行了相关实验验证。实验结 果表明:采用FIR滤波后,对系统中由汽车振动、称体晃动等因素引入的干扰信号有明显的滤除作用,称 重精度和稳定性均有所提高。
目前,国内外动态汽车衡按计量方式主要分为整 车称量和轴称量,轴称量又分为轴组称量和单轴称 量,即轴重仪,本文是基于轴组称量的研究。目前很多 轴组称重仪表,主要信号处理方法是截断A/d采集信 号的前端和后端部分数据,然后对剩下数据求取算术 平均值w,但是在称重信号混人了由于汽车振动、称 体晃动、汽车加减速、路面不平整等原因带来的干扰信 号,采集波形会发生很大变化,精度也会下降。
为了解决这个问题,引人FIR低通滤波,尽可能排除高 频干扰信号,保证测量精度,甚至提髙测量精度。
1.FIR滤波器
1.1基本原理
相对于IIR数字滤波器,FIR滤波器有以下几个 优势: ①严格的线性相位特性,使得信号在传输过程中 不会产生相位失真;
②FIR滤波器系统函数的所有极点全部位于原 点,因而FIR滤波器永远是稳定的;
③FIR滤波器还可以用FFT来实现,可以大大提高波器的运算效率。
FIR滤波器的系统函数为
式(5)对应式(3)为第一线性相位滤波器,式(6) 对应式(4)为第二线性相位滤波器。
1.2设计方法
用窗函数法来设计FIR低通滤波器,常见的窗函 数[7]有矩形窗、汉宁(Hanning)窗、哈明(Hamming) 窗、凯泽(Kaiser)窗、布莱克曼(Blackman)窗。选择凯 泽窗,因为它是一种适应性较强的窗函数,可以调节主 瓣和最大旁瓣的宽度比值,最小阻带衰减较大,过渡带 较陡,比较适合对A/D采样信号进行滤波m,其定义 表达式为
2.基于STM32F4xx系列微控制器的 FIR滤波器的实现原理
对于数字信号处理,常用的处理器是DSP和FP- GA,前者适合串行滤波结构,后者适合并行滤波结构, 虽然两者的处理运算能力很强,但是价格相对较贵,而 常用的单片机没有硬件乘法器,要想实现滤波,必然占 用大量CPU的时间,ST公司推出的STM32F4xx系列 微控制器,是基于ARM cortex-M4内核的高性能微处 理器,主频达到180 MHz,相比现在很多的称重仪表使 用的STM32F1XX系列微控制器的72 MHz主频提升了 很多。特别值得提出的是,STM32F4xx系列微控制器 集成了单周期的DSP指令集和浮点运算单位(FPU, float point unit),结合ST公司专门为STM32微控制器 开发的DSP库函数,可以轻松而且快速地实现常规滤 波算法,具有较低的成本和低功耗优势,因此, STM32F4XX系列微控制器,更加适合轴组称重仪表中 对滤波的处理。
库函数中,实现FIR滤波的函数,有arm_fir_q7、 arm_fir_ql5、arm_fir_q31、arm_fir_f32,前 3 个是针对定 点数的处理,最后一个是针对浮点数的FIR滤波器,选 择浮点数FIR滤波器,其参数含义如表1所示。
在实际测试中发现,汽车的动态称重信号频率一般小 于200 Hz,大于200 Hz的信号一般是来源于汽车振 动、路面不平整等因素带来的外界干扰,因此设计一个 FIR低通滤波器尽可能滤除掉超过200 Hz的干扰信号。DSP库函数中的arm_fir_f32函数,并不能直接实 现滤波,它的第一个输入参数,即滤波相关的系数需要 通过Matlab仿真得到,所以利用Matlab设计一个FIR 低通滤波器,得到所有滤波系数。
3.将FIR滤波器用于动态轴组地磅
3.1动态称重的实时性验证
由于动态称重需要较高的实时性,而FIR滤波算 法相对复杂,运算量大,保证称重信号的实时性,是将 FIR滤波器应用于动态轴组汽车衡的关键。因此需要 对滤波函数arm_fir_f32的进行时间测试,测试结果如 表2所示。
从表2可以看出,FIR滤波算法的运算时间,在滤 波阶数为80,输入1024个点数据的情况下,滤波时间 仅为1.4 ms,如果选用性能更优越的STM32F4xx系列 的微控制器,主频可以达到更高,如STM32F429的主 频是180 MHz,高出用于测试的STM32F407(主频168 MHz),完全满足动态称重的实时性。
相较开启FPU的情况,STM32F407在没有开启 FPU的情况下,测试的时间增加了两倍多,而 STM32F103的测试时间增加了 8 ~ 10倍。显然后面两 种情况都不能满足动态称重的实时性要求,而且以上 结论进一步验证了 STM32F407微控制器在主频和集 成FPU等方面的硬件优势,这样的优势在处理滤波等 方面,STM32H03是无法达到的。
3.2实验结果
实验用一辆三轴车(加载砝码)进行验证,在静态 情况下,称得前轴重量为6280 kg,后两个轴一起称量, 重量为13250 kg,静态整车重量为19530 kg,分别让汽 车在不同速度下(匀速或者变速)经过称台,所得实验结果如表3所示。
从表3可以看出,经过FIR滤波之后的动态轴组 地磅的整车误差基本都在以内,精度相对没有 经过FIR滤波的动态轴组汽车衡有所提升;值得注意 的是在加减速的情况下,滤波前称重精度有所下降,特 别是汽车快速变速的情况下,称重精度超过了 1%,而 滤波后的称重精度仍然都保持在4%以内,说明FIR 滤波的作用是有效的。
4.结束语
本文基于STM32F407微控制器,再利用Matlab仿 真,设计并实现了 FIR低通滤波器,进而将其应用于轴 组称重仪表进行动态称重。实验结果说明在称重信号 中混入干扰信号的情况下,进行FIR滤波,不仅保证精 度的稳定性,还能进一步提高精度。