基于嵌入式控制系统的采样滤波优化算法

2021-07-27 11:13张超谢战洪毛学宇
科技创新导报 2021年4期
关键词:数字滤波

张超 谢战洪 毛学宇

摘  要:针对嵌入式控制系统信号采样精度问题进行分析,提出了通过软件进行数字滤波,从而解决大范围电流传感器在小电流采样工况下精度不足的问题。并根据算法原理和内存结构做了算法优化,一共提出了三种滤波算法。通过引入新静态变量的方式,极大地提升了算法的运算速度,进而减小了滤波算法在采样和运算周期中占用的时间,为提高控制器的控制频率提供了可能。本文从问题分析入手,分析算法原理和优化方向,同时对三个算法进行了横向比较,罗列优缺点。同时通过DSP作为主控芯片,验证了三种滤波算法的可行性和运算周期。

关键词:数字滤波  信号采样  嵌入式控制系统  算法优化  时间复杂度  移位寄存器 空间复杂度

中图分类号:TP368.1                         文献标识码:A                    文章编号:1674-098X(2021)02(a)-0115-09

Optimization Methods of Signal Sampling and Digital Filtering Based on Embedded Control System

ZHANG Chao*  XIE Zhanhong  MAO Xueyu

(713th research institute of china shipbuilding indastry corporation, Zhengzhou, Henan Province, 450015  China)

Abstract: Focused on the signal sampling accuracy of embedded control system, a digital filtering method is proposed to deal with insufficient accuracy of little current sample based on large-range current sensor. And the method is optimized through algorithm principle and memory structure of chip, in all, three methods are proposed. By introducing extra static variables, the calculation speed is greatly improved, and the calculation cycles of filtering algorithm on sampling period are reduced, which makes it possible to improve the control frequency of the whole system. From problem analysis, the paper analyzes the algorithm principle and optimization method. Besides, the three filtering method are compared with merits and demerits. Based on DSP as the control chip, the feasibility of the three methods are verified and the operation cycle is tested.

Key Words: Digital Filtering; Signal Sampling; Embedded Control System; Optimization Methods; Time Complexity; Shift Register; Spatial Complexity

随着电子工业的不断发展,电控技术达到了空前的繁荣[1]。无论是在人民的生产生活,还是各种工业自动化加工场所,电气控制已经渗透到其中。其中包括新能源汽车整车控制和驱动技术[2]、永磁电机控制[3]、工业自动化生产线控制、计量检测部门各种检测设备、軍事领域各种自动火炮控制,更包括航空航天、船舶制造、机械加工、城市管道建设、地铁施工、道路抢险等各方面关系民生民情的领域。电气控制的飞速发展在解放了人类劳动力的同时,提升了施工效率、降低了劳动力成本。

电气工程实现了以下功能:一是监视功能,电气控制系统能通过自身的信号分析对电路和设备是否带电做出判断,并通过计算机分析系统对设备的运行状态进行监视,为设备的正常运转以及故障的检修提供依据;二是保护功能,电气控制系统的控制对象为各级电压电路,通过低压电路控制高压电路的方式,实现电压隔离,保护用电安全;三是测量功能,通过观察一起设备传递的各种数字信号,计算机可以测量出各种用户需求的信息。总的来说,电气控制系统的核心是一个可以实现算法决策的计算机(决策机构)、一些列监测传感器(观察机构)和操作改变的执行机构。如果把决策机构比喻成控制系统的大脑,执行机构比喻成控制系统的手脚,那么观察机构就是控制系统的眼睛。

所以说,控制系统是否能作出正确的决策,将极大地取决于观察机构能否传递回准确有效的信息。然而受限于目前传感器的制造工艺,以及实际使用工况各种线路干扰、电磁干扰等不可避免的因素,导致现有传感器的使用精度普遍偏低,而高精度的传感器成本又呈几何上升。另一方面,以电流传感器为例发现,大量程传感器在小电流工况下的采样波动更严重。如何能够低成本的实现采样传感器精度提高,降低采样干扰和纹波、降低采样误差成为人们迫切关注的问题[4]。一些相关研究已经开展,文献[5]研究了粒子滤波这一非线性、非高斯系统由于重采样问题带来的精度误差;文献[6]提出了一种基于时空网络的滤波算法,通过引入可变性卷积层从而提高跟踪的成功率与进度;文献[7]对最小方原理的加权平均数数字滤波进行了改进,提高了算法的效率和可靠性。

针对这一研究现状,本文提出了一种纯软件的采样滤波算法。通过引入历史采样记录作为记忆部分,与新的采样数据进行加权平均的方式,降低采样波动和纹波,有效的降低了线路带来的干扰和噪声。提高采样精度,为实现更有效的控制效果奠定了基础。本文还对算法进行了优化,降低了算法的之行时间,提高了滤波效率,这为实现控制系统的高频控制提供了依据,为提高控制效率提供了可能。在片内资源紧缺、寸土寸金的嵌入式领域,这种算法优化更具有现实意义。最后,本文以DSP作为主控芯片的控制系统为例,实际演示了三种滤波算法的控制效果,和滤波周期(计算时间)。

1  算法概述

由于传感器测量精度和线路噪声导致的测量误差可以认为是随机且均匀的,因此可以认为主控芯片收到的数据信号,即测量值是一个围绕在真实值上下波动的一个量。如图1所示。

如图所示,TS为采样周期,当被测变量不变的时候,采样值(蓝色曲线)是一个围绕真实值上下波动的曲线,误差的正负随机。根据这一特性可以通过多次测量求平均值的方法,消除正负性的随机误差,提高采样的准确性。平均次数越高,采样曲线越准确。图中红色曲线,就是一个样本基数为5的,均值滤波。可以看到,当第五次采样结束后,均值滤波启动,采样曲线波动明显减少,更平稳的接近真实值。

根据这个原理,为保证系统在每个采样周期可以实现均值滤波。需要主控芯片具有记忆性,即可以保存前几次采样的历史结果,用于平均。在算法中引入了一个静态数组的概念,每个数组元素为一个静态变量,用于保存一次采样结果,静态数组的长度由样本基数决定。从硬件上分析,主控芯片需要针对这一变量,开设一个寄存器,专门存放历史采样信息。用户可根据工程实际,调整历史信息和新采集信息的权重,调整采样基数(采样基数越高曲线越稳定,但是占用内存也会越大,同时对于高频改变的被测量的动态响应也会变差),以达到最理想的滤波效果。

2  算法原理与优化

根据算法的原理分析,为实现均值滤波,一个样本基数的寄存器是必不可少的,为提高算法的之行速度和运算效率,减少每次采样的运行时间。可以对算法計算方式进行优化,本节从最传统的均值滤波算法出发,对算法进行逐步优化,一共给出了三种均值滤波算法,以达到最理想的滤波过程。

2.1 传统滤波算法

采用移位寄存器存储历史采样信息,在每次采样时,对移位寄存器的全部变量求平均值。如图2所示。

如图所示,除了采样列表还需要一个静态变量用于保存采样次数。当采样次数小于样本基数时,均值滤波不起作用输入等于输出,当采样次数大于样本基数时,均值滤波开始发挥作用。算法流程如图3所示。

从流程图中不难发现,一共存在两个循环体,首先是通过移位寄存器存储新的采样值,需要先将之前的n-1个样本进行移位,最后将新的采样值存在最低位上,然后是求和运算,需要对n个样本进行求和平均,那么也需要执行n次加法运算。由于采样值多为浮点型保存,加法运算相对比较耗费机器周期,而当样本基数扩大的时候,算法运算周期将更长。如果需要滤波的变量增多时,运算周期也呈倍数增加。

2.2 优化滤波算法

本节针对传统滤波算法进行优化,针对第二个循环体,引入一个新的静态变量Sum用于保存历史的求和数据,来解决每次采样的求和运算操作。这属于一种比较典型的采用空间换时间的做法,通过引入新的静态变量,虽然增加了内存占用率,但是却减少了每次采样的运算量,提高了滤波运算速度。新增加的静态变量与采样值同类型,一般为浮点型,相较于样本列表,相当于仅仅增加了一个样本技术的储存空间。其流程图如图4所示。

从流程图中可以看出,通过引入静态变量Sum用来保存历史求和,简化了求和运算,即在每次滤波仅需要对Sum进行一次加减操作,加上新的采样值,减去移位寄存器最高位采样值(即寄存器中历史最长的采样值),在输出的时候进行一次除法运算。那么,传统滤波算法的两个循环体就只剩一个操作了。算法仅通过增加一个采样值类型的静态变量,减少了每次滤波过程中的运算量。大大降低了运算复杂度,提高了滤波效率。

2.3 新型滤波算法

本节针对上一节中的优化滤波算法进行进一步优化,针对剩余的唯一循环体移位存储进行优化,通过引入一个整型的静态变量,存于存储样本基数标志位。当采样次数超过样本基数的时候,该标志为置一,滤波算法开始生效。通过引入改变量,调整样本数组的存取方式,不在采用移位寄存的传统方式,而是采用类似寻址的存取方式,读哪个量就存哪个量,从而提高运算效率。其流程图如图5所示。

从流程图中可以看出,通过引入静态变量S_Flag用存放样本基数标志位,当采样次数超过样本基数,滤波算法开始起作用。每次新的采样值会首先加到Sum变量中,然后需要在Sum中减去历史最久的采样值,这个时候,我们优化了存储方式,读取寄存器第Cnt位的采样值即为历史最久采样值,在Sum中减去后,将最新的采样值存在这一位置,覆盖原先的采样值,采样计数器加一。这里的采样次数Cnt相当于寄存器的地址,所以需要对Cnt的范围进行限定,当采样计数器超采样基数(寄存器的存储范围)时,采样计数器置位。那么采样计数器Cnt相当于一个从0到采样基数n-1的一个锯齿波,从而可以等效作为寄存器的数据地址。

可以发现通过优化寄存器的存取模式,减少了移位寄存器中的无效操作,做到了仅对本次运算有用的数据进行计算,极大地提升了运算效率,为系统的高频控制奠定了基础。

3  算法实现与对比

从上一章的分析中不难发现,该算法优化过程是一种,用空间换时间的做法。通过增加使用芯片的寄存器(存储程序中的静态变量),减少每次滤波计算的运算量。除去必不可少的样本基数位寄存器用于存放历史采样信息,传统滤波、优化滤波和新型滤波分别使用了一、二和三个静态变量,但相对的运算效率也得到了极大的提高。

3.1 滤波算法的实现与效果

实际滤波效果如图6所示。

三种滤波算法本质均为均值滤波,采用同样的原理和运算方式,尽在算法的空间和时间的维度上对算法进行了优化。因此三种滤波算法的效果并无差别。

图6以电流传感器为例,展示了滤波算法的效果,本实验采用的电流传感器为JCE400,(其有效量程为-400A~+400A,在采样电流为0A时,传感器的输出为2.5V,当输入电流在-400A到+400A变化是,输出电压在0-5V呈线性变化,于是可以通过测量输出电压的方式采集被测电流),采用的控制芯片为DSP,型号为TMS320F28335(CPU主频为150MHz,采样频率设为7.5kHz,AD采样输入范围为0-3.3V,因此需要做一个分压电路将0-5V的电流传感器电压进行降压处理)。本实验的滤波算法样本基数为20。

本实验的目的是验证该传感器在远小于量程的小电流采样工况下,采样波动较大的时候滤波算法的效果。从图6可以看出,本实验对三组电流做了采样,分别是0A、5A和-5A(电流由标准电流源产生,电流远小于电流传感器的测量范围)。通过上位机(PC电脑实时接收DSP传回的数据并绘图,同时给DSP下达是否开启滤波算法指令)。从图6(a)和(b)中分别可以看到,在0A和5A的电流采样中,在未开启滤波算法的时候,采样电流存在较大的波动,波动范围接近±2.5A,严重影响采样精度,而当滤波算法开启后,采样曲线明显变细,这说明采样波动明显变小,波动范围在±0.5A以内。可以看出,滤波算法的效果非常明显,电流采样波动的减小,将非常有利于系统控制精度的提高,以及后续闭环控制、PI算法的控制效果。图6(c)展示了在滤波算法下的电流阶跃效果,可以看到采样电流阶跃平稳。图6(d)展示了采样电流为负的时候,滤波算法的效果依旧很明显,与正向电流成对称关系。

3.2 滤波算法对比

从上一节可以看到,三种滤波算法的滤波效果是一样的。其主要差别在于时间和空间复杂度,算法的逐层优化,通过以空间换时间的方式减少了每周期的算法运算量,提高了算法的运行速度和效率,于此同时不可避免的增加了内存占用率。

通过CCS9.0的Debug模式单句执行,在调用每个函数之前对计时器Clock归零,对三种采样算法进行运算时间测量(样本基数为20),发现传统滤波算法耗时最长为1226个机器周期,優化滤波算法耗时明显减少,为621个机器周期,而新型滤波算法耗时最短,为62个机器周期。

实验截图如图7-图9所示。程序中对传统均值滤波算法、优化滤波算法以及新型滤波算法进行了函数封装,函数名分别为SignalFilterOld(double InputSignal, int SampleTimes)、SignalFilter(double InputSignal, int SampleTimes)、SignalFilterNew(double InputSignal, int SampleTimes)。并逐句依次执行优化滤波算法、传统均值滤波算法和新型滤波算法,通过Clock模块观测算法执行时间。

这里采用的DSP与上一节相同,CPU主频为150MHz,即CPU每次运算周期为6.7ns左右。那么三种滤波算法,在样本基数为20的时候对单一采样变量进行滤波的时间分别为8.17μs、4.1μs以及0.4μs。如果系统工作在高频开关场合,比如开关电源或者功率MOS控制电路,开关频率通常可达20kHz,表示控制系统每次的逻辑运算时间最大为50μs。那么传统滤波算法将极大的影响控制频率的提高,尤其是在系统中存在较多采集变量需要滤波,或者样本基数较大场合,其弊端更加明显。新型滤波算法区别于之前两种算法的显著优点就是,该算法的运算速度基本不受样本基数的影响,因为完全避免了以样本基数为循环次数的循环体,所以可以极大的提高滤波效率。

详细的算法对比如表1所示。

4  结语

本文对现有的大量程传感器在采样变量值较小时的精度较差问题进行分析,提出了一种通过软件算法进行均值滤波的方式减小采样波动的方法。并针对嵌入式领域以及高频控制系统的运行工况,对算法进行了逐层优化,以空间换时间的方式极大的提升了算法的运行效率和速度,并通过实验验证了算法的滤波效果和运行时间。为高频高精度控制系统提供了采样滤波方式,为提高控制精度和控制频率奠定了基础。

参考文献

[1] 张书瑜.用于现代便携式设备的高性能多相DC-DC转换器关键涉及技术研究[D].杭州:浙江大学,2019.

[2] Li Zhai,Xueying Zhang,Zeda Wang,Yuh Ming Mok,Rufei Hou,Yuhan Hou. Steering Stability Control for Four-Motor Distributed Drive High-Speed Tracked Vehicles[J]. IEEE Access, 2020(8):94968-94983.

[3] Kwang-Woon Lee,Sang-Il Kim. Dynamic Performance Improvement of a Current Offset Error Compensator in Current Vector-Controlled SPMSM Drives[J]. IEEE Transactions on Industrial Electronics, 2019, 66(9):6727-6736.

[4] Mingjin Hu,Wei Hua,Zheng Wu,Ningyi Dai,Huafeng Xiao,Wei Wang. Compensation of Current Measurement Offset Error for Permanent Magnet Synchronous Machines[J]. IEEE Transactions on Power Electronics, 2020, 35(10):11119-11128

[5] 杨源.多种群协同重采样的粒子滤波方法研究[D].西安:西安理工大学,2020.

[6] 谢颍晓,蔡敬菊,张建林.基于时空采样网络的相关滤波目标跟踪算法[J].外国电子测量技术,2020(1):88-92.

[7] 陈明方,刘金鑫,张永霞,等.基于S7-1200AD采样的高效数字滤波算法的设计与实践[J].重庆大学学报,2019(5):108-118.

猜你喜欢
数字滤波
数字滤波在语音信号降噪中的应用
基于STM32L151的便携式气体检测仪设计
基于三轴加速度传感器的计步器的设计
基于单片机系统的数字滤波方法研究
运动干涉仪平台上单站无源定位算法研究
非陀螺寻北仪信号处理电路的设计与实现
基于VC++的汽车动态称重系统软件设计与实现