10种PLC模拟量输入滤波方法及其优缺点,建议收藏!

在信号处理过程中,常用的方法主要有两种:硬件滤波和软件滤波。

硬件滤波是一种物理滤波方法,它通过特定的硬件设备来实现对信号的滤波。这类滤波器通常具有固定的滤波特性,如截止频率、滤波器类型等。

软件滤波则是基于数字信号处理技术的滤波方法,它通过编写特定的算法来实现对信号的滤波。软件滤波具有高度的灵活性,可以根据实际需求调整滤波参数,适应不同的信号处理场景。

本文将为您着重介绍10种经典的软件滤波方法及优缺点。

1.限幅滤波法/程序判断滤波法

方法:

根据经验判断,确定两次采样允许的最大偏差值(设为A)

每次检测到新值时判断:

如果本次值与上次值之差<=A,则本次值有效

如果本次值与上次值之差>A,则本次值无效,放弃本次值,用上次值代替本次值

优点:

能有效克服因偶然因素引起的脉冲干扰

缺点:

无法抑制那种周期性的干扰

平滑度差

2.中位值滤波法

方法:

连续采样N次(N取奇数)

把N次采样值按大小排列

取中间值为本次有效值

优点:

能有效克服因偶然因素引起的波动干扰

对温度、液位的变化缓慢的被测参数有良好的滤波效果

缺点:

对流量、速度等快速变化的参数不宜

3.算术平均滤波法

方法

连续取N个采样值进行算术平均运算

N值较大时:信号平滑度较高,但灵敏度较低

N值较小时:信号平滑度较低,但灵敏度较高

N值的选取:一般流量,N=12;压力:N=4

优点:

适用于对一般具有随机干扰的信号进行滤波

这样信号的特点是有一个平均值,信号在某一数值范围附近上下波动

缺点:

对于测量速度较慢或要求数据计算速度较快的实时控制不适用,比较浪费RAM

4.递推平均滤波法/滑动平均滤波法

方法:

把连续取N个采样值看成一个队列

队列的长度固定为N

每次采样到一个新数据放入队尾,并扔掉原来队首的一次数据(先进先出原则)

把队列中的N个数据进行算术平均运算,就可获得新的滤波结果

N值的选取:流量,N=12;压力:N=4;液面,N=4~12;温度,N=1~4

优点:

对周期性干扰有良好的抑制作用,平滑度高

适用于高频振荡的系统

缺点:

灵敏度低,对偶然出现的脉冲性干扰的抑制作用较差,不易消除由于脉冲干扰所引起的采样值偏差,不适用于脉冲干扰比较严重的场合,比较浪费RAM

5.中位值平均滤波法/防脉冲干扰平均滤波法

方法:

相当于“中位值滤波法”+“算术平均滤波法”

连续采样N个数据,去掉一个最大值和一个最小值

然后计算N-2个数据的算术平均值

N值的选取:3~14

优点:

融合了两种滤波法的优点

对于偶然出现的脉冲性干扰,可消除由于脉冲干扰所引起的采样值偏差

缺点:

测量速度较慢,和算术平均滤波法一样,比较浪费RAM

6.幅平均滤波法

方法:

相当于“限幅滤波法”+“递推平均滤波法”

每次采样到的新数据先进行限幅处理,再送入队列进行递推平均滤波处理

优点:

融合了两种滤波法的优点

对于偶然出现的脉冲性干扰,可消除由于脉冲干扰所引起的采样值偏差

缺点:

比较浪费RAM

7.一阶滞后滤波法

方法:

取a=0~1

本次滤波结果=(1-a)*本次采样值+a*上次滤波结果

优点:

对周期性干扰具有良好的抑制作用

适用于波动频率较高的场合

缺点:

相位滞后,灵敏度低,滞后程度取决于a值大小,不能消除滤波频率高于采样频率的1/2的干扰信号

8.加权递推平均滤波法

方法:

是对递推平均滤波法的改进,即不同时刻的数据加以不同的权

通常是,越接近现时刻的数据,权取得越大。

给予新采样值的权系数越大,则灵敏度越高,但信号平滑度越低

优点:

适用于有较大纯滞后时间常数的对象

和采样周期较短的系统

缺点:

对于纯滞后时间常数较小,采样周期较长,变化缓慢的信号,不能迅速反应系统当前所受干扰的严重程度,滤波效果差

9.消抖滤波法

方法:

设置一个滤波计数器

将每次采样值与当前有效值比较:

如果采样值=当前有效值,则计数器清零

如果采样值<>当前有效值,则计数器+1,并判断计数器是否>=上限N(溢出)

如果计数器溢出,则将本次值替换当前有效值,并清计数器

优点:

对于变化缓慢的被测参数有较好的滤波效果,

可避免在临界值附近控制器的反复开/关跳动或显示器上数值抖动

缺点:

对于快速变化的参数不宜,如果在计数器溢出的那一次采样到的值恰好是干扰值,则会将干扰值当作有效值导入系统

10.限幅消抖滤波法

方法:

相当于“限幅滤波法”+“消抖滤波法”

先限幅,后消抖

优点:

继承了“限幅”和“消抖”的优点

改进了“消抖滤波法”中的某些缺陷,避免将干扰值导入系统

缺点:

对于快速变化的参数不宜

现场案例应用详解

以某钢厂为例,在生产过程中,钢厂会产出大量蒸汽,由于低压蒸汽管网在控制上存在的响应迟缓、易导致蒸汽浪费等问题,会大大降低生产效益。所以,对这些蒸汽的回收和再利用,能够显著提升生产效益,实现资源的多重价值。由于各生产厂部分布相对分散,蒸汽的生产和利用区域呈现出明显的地域分散性,形成了跨越广阔空间、错综复杂的低压蒸汽管网。那么,如何精确采集模拟量信号成为一个难题。

为了解决这一难题,该方案以无线的方式来对OG蒸汽进行回收,模拟量信号精确度可达1%,提升了生产效益,提升蒸汽管理的效率和可靠性,减少能源损耗,促进钢厂生产流程的优化与升级。

无线通讯方案示意图 ▼

<think>好的,用户想了解PLC模拟量滤波程序。首先,我需要确定他们对PLC的基础知识了解多少。可能他们已经有PLC的使用经验,但不太清楚如何处理模拟量信号中的噪声问题。 模拟量滤波在工业控制中非常重要,因为现场环境复杂,信号容易受到干扰。常见的干扰源包括电磁干扰、温度波动、机械振动等,这些都会导致模拟量信号波动,影响控制的准确性。 接下来,我需要介绍几种常用的滤波方法。首先,平均滤波法,这是最基础的方法,适用于信号变化缓慢的情况。但缺点是对快速变化的信号会有延迟,需要根据实际情况调整采样次数。 然后是中位值滤波法,这种方法对脉冲干扰有很好的抑制作用。比如,如果有一个突发的干扰脉冲,排序后取中间值可以有效滤除异常值。但同样,对于快速变化信号可能不太适用。 递推平均滤波法结合了滑动窗口的概念,实时更新数据,适用于有一定波动但需要及时响应的场景。不过窗口大小的选择需要平衡平滑度和响应速度。 一阶滞后滤波法则引入了滤波系数,通过调整系数来平衡新旧数据的影响。这种方法计算简单,适合处理噪声较大的情况,但可能会引入相位滞后,需要注意对系统稳定性的影响。 限幅滤波法适用于知道信号最大变化速率的场合,比如电机转速监测。通过限制两次采样之间的变化幅度,可以剔除明显的异常值。但需要合理设定最大允许偏差,否则可能误滤或漏滤。 最后,复合滤波法是结合多种方法,比如先限幅再平均,或者先中位值再递推平均,以应对复杂干扰情况。实际应用中需要根据具体需求选择最合适的组合。 用户可能需要具体的实现示例,所以给出一个基于梯形图的平均滤波程序示例会有帮助。同时,要提醒他们注意事项,比如滤波算法带来的延迟、参数调整的重要性,以及不同场景下方法的选择。 还需要考虑他们是否了解PLC编程的基础,比如如何编写函数块或梯形图逻辑。如果没有,可能需要建议他们先学习PLC编程基础,再深入滤波算法的实现。 总结来说,用户可能在实际项目中遇到了模拟量信号不稳定的问题,需要解决方案。因此,除了介绍方法,还应强调实际应用中的调整和测试,确保滤波效果符合控制要求。</think>PLC模拟量滤波程序是工业自动化中用于消除模拟量信号噪声、提高测量稳定性的重要算法。以下为关键知识点和实现思路的逐步解析: **1. 滤波必要性** - 工业现场存在电磁干扰、温度漂移、机械振动等干扰源 - 未滤波信号特征:$V_{raw} = V_{true} + \sum Noise$ - 典型干扰表现:信号毛刺($|\Delta V| > 5\% FS$)、基线漂移 **2. 常用滤波算法** **(1) 平均滤波法** - 公式:$V_{filtered} = \frac{1}{N}\sum_{i=1}^{N} V_{raw}(i)$ - PLC实现: ```ladder // 西门子SCL示例 VAR SampleBuffer : ARRAY[1..10] OF REAL; Index : INT := 0; END_VAR IF Index < 10 THEN SampleBuffer[Index+1] := AI_Input; Index := Index + 1; ELSE FilteredValue := SUM(SampleBuffer)/10; Index := 0; END_IF ``` **(2) 中位值滤波法** - 实现步骤: 1. 连续采样奇数个值(通常3-9次) 2. 排序后取中间值 3. 数学表达:$V_{filtered} = \text{Median}(V_1, V_2, ..., V_{2n+1})$ **(3) 递推平均滤波法(滑动窗口)** - 递推公式:$V_k = V_{k-1} + \frac{1}{N}(V_{new} - V_{old})$ - 优势:内存占用固定(队列结构) **(4) 一阶滞后滤波法** - 差分方程:$V_{out}(k) = α·V_{in}(k) + (1-α)·V_{out}(k-1)$ - 滤波系数α取值范围:$0.01 < α < 0.3$(通过实验整定) **(5) 限幅滤波法** - 约束条件:$|V_k - V_{k-1}| ≤ \Delta V_{max}$ - 偏差阈值设定:$\Delta V_{max} = 0.1×(V_{FSH} - V_{FSL})$ **(6) 复合滤波法** - 典型组合:限幅 + 中位值 + 递推平均 - 实现示例: ```structured_text IF |V_new - V_old| > ΔV_max THEN Discard V_new ELSE Insert into median filter Update moving average END_IF ``` **3. 参数整定原则** - 采样周期选择:$T_{sample} ≥ 5×τ$(τ为信号特征时间常数) - 窗口大小经验公式:$N = \frac{t_{response}}{T_{sample}} + 1$ - 滤波系数调整:通过阶跃响应测试确定相位延迟是否可接受 **4. 工程注意事项** - 信号突变处理:设置变化率阈值触发快速响应模式 - AD分辨率匹配:滤波后波动应大于1 LSB,避免有效位丢失 - 温度补偿:对PT100等传感器需先做线性化处理再滤波 - 抗脉冲干扰:建议结合硬件RC滤波(时间常数0.1-1s) **5. 滤波效果评估** - 时域指标:$\sigma = \sqrt{\frac{1}{N-1}\sum_{i=1}^{N}(V_i - \bar{V})^2}$ - 频域分析:使用FFT检测残余噪声频谱 - 动态测试:施加阶跃信号观察响应时间$t_{90\%}$ 实际应用中,某真空镀膜机的压力控制采用复合滤波后,PV波动从±2%降至±0.5%,验证了滤波程序的有效性。建议根据具体工艺要求,通过实验确定最佳滤波组合方式。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值