摘要:现场工作的以单片机为核心部件的交流测控装置,由于周围大量的电磁干扰,众多的电磁设备频繁启动、停止,以及装置中器件的工作特点等原因,使得交流参数的采样值受到干扰。本文结合实际的工程实例,从软件着手提出了一种测控系统采集数据的处理方法。
关键词:测控系统;PIC16F877单片机;数字滤波;干扰
在基于A/D采样和微处理器的交流参数采样系统中,是根据一组采样数据按照参数的离散定义式计算出被测信号的参数。而测控系统的现场运行环境往往很恶劣,周围强电设备多,常有大量的电磁设备频繁地启动、停止,电网电压的波动等诸多方面的干扰,使得对测控系统干扰严重,不但会干扰计算机的正常运行,导致控制失灵,更普遍的是干扰噪声叠加在采样信号上,影响后续计算的精确性。这就要求实际的测控系统有较高的抗干扰措施和数据处理措施,为此除了要在硬件上,如用高性能的器件、严密的电路设计和精密的采集通道外,还需要软件系统的密切配合来综合提高系统的抗干扰能力。而使用软件技术的优点在于:不需要增加硬件设备,使用灵活和修改方便。本文从实用的角度出发,提出了一种交流参数采样值的处理方法。
1实际问题的提出
作者在实际工作中完成的一款综合测控系统,他是以220 V,380 V低压各类一次设备为测控对象的,是集采样、控制、通讯功能为一体的测控系统。该系统是以PIC16F877单片机为核心部件,内部实施的是多个任务调度。但是在实际的应用现场中由于诸多干扰因素的作用,使此装置采样通道采集到的数据受到不同程度的干扰,真实的信号被各种干扰噪声所干扰失真。除此之外,由于内部器件工作特点的原因,在前置的采样通道中,也会使采样值有所偏差,甚至在测量通道上没有被测量的情况时,都有影响。在上面出现的种种干扰和器件的作用下,出现被测的交流参数值随机的波动。尽管这样的波动值不至于影响到遥控的误动作,也能符合一般遥测控装置的技术要求,但是为了使装置采样计算出的交流参数值更能精确和减少波动,所以要做一些必要的数据处理。在硬件完成后,就要从软件上考虑运用数字滤波技术解决此问题。
2对问题的分析
从此装置采样的输入来看,干扰多为一些幅度、宽度不等的随机尖脉冲,以及大功率负载的切断对电参数的影响,而这些影响的特点是干扰的时间短,幅值很大。这样将导致有较大的测量误差。同时由于前置通道器件的原因也会造成数据偏差。
抗干扰的任务就是要摒弃干扰,留下有用的信号。从试验中看,通过软件滤波(数字滤波技术)剔除虚假信号,求其真值,有很好的实用效果。在处理此类情况的数据时,通常用的数字滤波有:中位值滤波法、平均值滤波法、递推平均滤波法、一阶滞后滤波法和各种基于最小二乘的滤波方法等。但是各种滤波的方法都有不同程度的缺点,有的是数据计算速度较慢,灵敏度差,在实时控制不适用;有的是比较差,不易消除由于脉冲干扰所引起的采样值偏差,不适用于脉冲干扰比较严重的场合等。通过比较各种数字滤波的优缺点,综合考虑到本装置的实际运行任务状况、CPU的占用率,以及RAM空间和实时性的要求,得出复杂的数字滤波算法对于本装置不适合。于是在测控系统软件的要求指导下,提出了下面的一种切实可行的解决方案。
3解决方案和算法
在微机测控系统中,软件设计的要求是:
(1)易理解性、易维护性软件采用模块化程序结构的设计方案,使工艺流程清晰明了,同时还要减少循环套用、调用嵌套以及中断嵌套次数。
(2)实时性要求测控系统能及时的响应外部的事件发生。在工程应用软件设计中,采用汇编语言要比高级语言更具有实时性。
(3)可测性比较容易制定出测试准则,软件设计完成后,可以在模拟的环境下运行,能在静态分析和动态仿真运行测试证明其准确和无误。
(4)可靠性他是测控软件的重要指标之一。其要求要有两方面的意义:
①运行参数环境发生变化时,软件都能可靠运行并给出正确合理的结果,也就是说要求软件具有自适应性;
②工业环境极其恶劣、干扰严重,软件必须保证在严重的干扰条件下也能可靠运行,保证运算数据的准确性。
结合本装置的实际特点,在遵循上述的设计原则的指导下,采用了一种在脉冲干扰比较严重下的数字滤波技术。
算法:先进行N个周期的采样计算,并求累加和,完成之后从和中去掉N个数据中的最大值和最小值,然后计算N-2周期数据的算术平均值。这样处理后将会把干扰的作用从结果中去掉,消除了由于脉冲干扰而引起的误差。同时为了消除由于器件工作特点所引起的偏差,增加了一个阈值。当大于此阈值时,认为有值,即为计算所得值;当小于此阈值时,认为无值。对于本装置来说,经过试验测试表明,由于器件的原因所造成的误差,在乘以放大系数和通道修正系数后,电压最大为1 V,电流最大为0.01 A。故而在加这样的阈值后,使得采样通道在没有被测量的情况下,不会由于小的干扰和器件的原因对最后的真实数据产生干扰;同时在正常的测量电压时,由于此原因引起的偏差所占的比例很小,这样的偏差可以忽略,所以加这样的阈值是合理的。在对N的选取上,则是综合考虑了滤波效果、测量速度、灵敏性、RAM的空间的占用和实时性的要求。经过试验可知,当N取4是比较合适的,在这样的情况下,能兼顾了本装置的实际情况和技术要求。
下面以计算A相的相电压为例,来说明算法的具体实施和过程。这里首先要说明的是:用UI_COUNTER这个寄存器来存放累加的中间数据的个数,这里要到4为止;TEMP_UAH和TEMP_UAL作为计算用的累加中间结果的寄存器;ACCHI和ACCLO用来存放有效值计算子程序计算出的值;用MAX_UAL,MAX_UAH存储4个数值中的最大值;用MIN_UAL,MIN_UAH存放4个数值中的最小值;用 VLAUE_UAL,VLAUE_UAH存放最终的结果。此算法的程序(本程序是以PIC单片机为例)如下:




4实测结果
图2和图3是在实际的测控单元测量通道上加220 V的工频电压和不加电压的情况。其中图2是单元中没有用算法,在各种干扰下的计算出UA有效值的图线;图3是实施了算法的单元,在各种干扰下计算出UA有效值的图线。从图中可以明显地看出,在实施了这样的处理算法后,装置在干扰情况下对电压有效值的计算更加准确、合理了。这样简单有效的数据处理之后的结果,同其他复杂的数字滤波处理算法的效果相同,同时实时性得到了保证,CPU占用率增加小,占用的内部RAM也较少。


5结语
在设计交流测控装置时,为提高装置在干扰下采样数据的处理能力,应综合考虑软件和硬件两方面。同时在设计软件时,要从实际情况出发,有针对地采取相应的抑制方法和措施,真正做到行之有效。
参考文献
[1]王幸之,王雷,翟成.单片机应用系统抗干扰技术[M].北京:北京航空航天大学出版社,1999.
[2]李学海.PIC单片机实用教程[M].北京:北京航空航天大学出版社.2002.