中达电通公司
摘 要:介绍PLC应用中软件滤波功能、方法,以及台达PLC在自动控制中软件滤波程序应用。
关键词:PLC 模拟量采集 噪声和干扰 滤波电路 滤波方法 闭环调节
1 引言
工业自动化系统中的大型系统或是小型设备,均含有各种噪声和干扰。干扰既有来自信号源本体或传感器,也有来自外界干扰。为了进行准确测量和控制,必须消除被测信号中的噪声和干扰。特别是随着自动化程度的提高,许多控制功能通过自动闭环调节来完成,设备控制的效果取决于外部模拟量采集、控制算法、执行输出等等环节,而在现场工业环境中,电磁干扰、电源干扰、甚至于传感器本身都会影响外部信号,导致得到的数据失真、波动,如果在数据采集环节即出现问题,那整个系统将无法正常工作。本文分析解决的是如何利用软件数字滤波的方式处理外部信号的正确采集,从而才能得到真实的数据,实现自动控制,否则设备的自动化控制将无从谈起。
2 软件滤波功能简介
2.1 软件滤波
软件滤波即是通过软件算法将数据进行适当处理,从而屏蔽掉噪声和干扰杂波信号,获得可用的真实数据的一种方法,也可以说是通过程序处理的方式完成数据采集信号的处理。
对于采集信号的处理,除了软件滤波之外,也可以采用硬件电路实现滤波处理,比如常见的RC滤波、LC滤波等等,图1为采用电容滤波电路的信号曲线。
硬件滤波的优点在于我们在程序中不再需要进行复杂的程序处理,而且数据变化响应性高;而软件滤波的优势在于不需要硬件的投入,简化了电路设计,对于不同的信号干扰可以很方便的调整软件参数达到滤波效果,虽然有些方法在信号处理上会有一定的滞后,但只要合理使用各种不同的滤波方式则完全避免因此而带来的影响。
2.2 数字软件滤波优点
(1) 数字滤波用软件实现,不需要增加硬设备,因而可靠性高、稳定性好,不存在阻抗匹配问题。
(2) 模拟滤波通常是各通道专用,而数字滤波则可多通道共享,从而降低了成本。
(3) 数字滤波可以对频率很低(如0.01 Hz)的信号进行滤波,而模拟滤波由于受电容容量的限制,频率不可能太低。
(4) 数字滤波可以根据信号的不同,采用不同的滤波方法或滤波参数,具有灵活、方便、功能强的特点。
3 实现软件滤波的方法
软件滤波有很多种方法,主要是针对不同干扰信号采取不同的方法将其消除,这里列举了一些方法并针对性说明有缺点,使大家可以正确选择采用的滤波方法。
3.1限幅滤波法
(1)方法。根据经验判断,确定两次采样允许的最大偏差值(设为A),每次检测到新值时判断:如果本次值与上次值之差<=A,则本次值有效;如果本次值与上次值之差>A,则本次值无效,放弃本次值,用上次值代替本次值。
(2)优点。能有效克服因偶然因素引起的脉冲干扰。
(3)缺点。无法抑制周期性的干扰,平滑度较差。
(4)分析。限幅滤波法是比较简单易行的一种方法,难点在于需要由经验判断合理的偏差值,如果偏差值设小了,起不到滤波作用,设定过大,将不能及时采集外部信号的细小变化。
3.2中位值滤波法
(1)方法。连续采样N次(N取奇数),把N次采样值按大小排列,取中间值为本次有效值。
(2)优点。能有效克服因偶然因素引起的波动干扰,对温度、液位的变化缓慢的被测参数有良好的滤波效果
(3)缺点。对流量、速度等快速变化的参数不宜。
(4)分析。采样次数决定了滤波效果,次数越大,滤波作用越大,但不能对信号进行快速响应。
3.3算术平均滤波法
(1)方法。连续取N个采样值进行算术平均运算。N值较大时:信号平滑度较高,但灵敏度较低;N值较小时:信号平滑度较低,但灵敏度较高。N值的选取:流量,N=12;压力:N=4。
(2)优点。适用于对一般具有随机干扰的信号进行滤波,这样信号的特点是有一个平均值,信号在某一数值范围附近上下波动。
(3)缺点。对于测量速度较慢或要求数据计算速度较快的实时控制不适用,比较浪费RAM。
3.4递推平均滤波法
(1)方法。连续取N个采样值,作为一个队列,每次采样到一个新数据放入队尾,并扔掉原来队首的一次数据,把队列中的N个数据进行算术平均运算,就可获得新的滤波结果。N值的选取:流量,N=12;压力:N=4;液面,N=4~12;温度,N=1~4。
(2)优点。对周期性干扰有良好的抑制作用,平滑度高,适用于高频振荡的系统。
(3)缺点。灵敏度低,对偶然出现的脉冲性干扰的抑制作用较差,不易消除由于脉冲干扰所引起的采样值偏差,不适用于脉冲干扰比较严重的场合,比较浪费RAM。
3.5一阶滞后滤波法
(1)方法。取a=0~1,本次滤波结果=(1-a)*本次采样值+a*上次滤波结果。
(2)优点。对周期性干扰具有良好的抑制作用,适用于波动频率较高的场合。
(3)缺点。相位滞后,灵敏度低,滞后程度取决于a值大小,不能消除滤波频率高于采样频率的1/2的干扰信号。
3.6消抖滤波法
(1)方法。设置一个滤波计数器,将每次采样值与当前有效值比较:如果采样值=当前有效值,则计数器清零;如果采样值<>当前有效值,则计数器+1,并判断计数器是否>=上限N(溢出);如果计数器溢出,则将本次值替换当前有效值,并清计数器。
(2)优点。对于变化缓慢的被测参数有较好的滤波效果,可避免在临界值附近控制器的反复开/关跳动或显示器上数值抖动。
(3)缺点。对于快速变化的参数不宜,如果在计数器溢出的那一次采样到的值恰好是干扰值,则会将干扰值当作有效值导入系统。
4 台达PLC软件滤波应用
上面简单描述了六种滤波的方法,实际上滤波的方法很多,而且针对不同的信号可以将两种或三种方法综合使用以满足信号处理的要求。
台达PLC的模拟量采集主要有模块和混合型主机两种。
4.1使用模拟量采集模块
台达模拟量模块分为两大类,-S和-H,分别配合SS/SA/SC主机和EH主机,如DVP04AD-S、DVP06XA-S、DVP04PT-S、DVP04TC-S为-S模块,DVP04AD-H、DVP06XA-H、DVP04PT-H、DVP04TC-H为-H为-H模块。无论哪一款模块,对应模块每个输入通道都有软件滤波功能,也就是模块内部控制寄存器中的平均次数设置(通道独立),在此采用的是递推平均滤波法,设置的次数是上文中提到的采样N值,可以设置1~20,不同的滤波系数适应不同的信号,另外当输入有杂波造成配线受噪声干扰时还可以连接0.1~0.47 μF 25V做电容滤波,即硬件滤波,如图2所示。
图2 硬件滤波
4.2 混合型主机
台达也提供集成模拟量的主机类型,主要有DVP20EX(8DI/6DO/4AI/2AO)和DVP10SX(4DI/2DO/2AI/2AO),以及在EH主机上可以扩展F2AD卡作为模拟量采集,在PLC中有平均次数设置的内部特殊寄存器D1062,可以设置1~4作软件滤波,同样的采用的也是递推平均滤波法。
可以看出,台达PLC作为工业控制产品,在模拟量采集的处理上作了比较完善的软、硬件处理满足大多数应用场合,当然并不是说他能满足所有的信号处理,特别是混合型主机的平均次数比较少,因此可能在某些场合不能满足要求,在此基础上我们可以根据现场信号的不同特性在程序中作滤波处理。
4.3 基于台达PLC的一阶滞后滤波程序设计
下面是以燃煤热水锅炉系统的炉膛微负压为设计背景,用台达PLC编制的一个一阶滞后滤波程序案例,以此简单介绍滤波程序的编写方法。
案例采用氧化硅压力传感器测量,由于炉膛负压是一个较小的压力量,大概在正负几百帕之间,很容易受到外界影响(如鼓风机、引风机等),因此这是一个波动较大的采集量,如果直接使用采集值,波动将很大(可能是正负几十帕的波动),根本没有办法调节控制到正负20Pa,因此必须对采集值作处理,减小其周期性波动才能完成控制。
一阶滞后滤波算法公式:
滤波后输出值=(1-A)* 本次采样值 + A*上次滤波结果
其中A为滤波系数,范围是0~1
程序中各寄存器定义:
D0: 滤波系数A
D2: 1- A
D4: “(1-A)* 本次采样值”的运算结果
D6:“A*上次滤波结果”的存储寄存器
D50:上次滤波暂存值
D110: 采集值通过FLT指令转换为浮点数
D150:滤波后结果
程序中主要是将直接采集值经过上述公式的浮点数运算得到滤波后结果,从算法中可以看出,当滤波系数为0时,就是当前的采集值,而滤波系数越大,滤波作用越强。程序运行后可以看到,当采集值D110有变化时,滤波值是逐渐逼向当前采集值,因此对于突波信号具有抑制作用,使采集值比较稳定,减小波动。
5结束语
本文介绍了6种数字软件滤波算法和台达PLC如何实现滤波的程序编制,每种滤波算法都有其各自的特点,在实际应用中,应根据具体的测量参数合理的选用。不适当地应用数字滤波,不仅达不到滤波效果,反而会降低控制品质,甚至失控,这点必须予以注意。
在案例中通过一阶滞后滤波算法得到的滤波结果,大大消除了采集值的波动,使负压控制相对稳定,得到较好的控制效果。
版权声明:版权归中国自动化网所有,转载请