本文回答的问题
文章摘要
梯形图中的一阶滞后滤波器是一种数字低通滤波器,它通过使用加权常数 alpha 将当前的原始值与之前的滤波值相结合,从而平滑有噪声的模拟输入。在实践中,它可以减少由噪声引起的 PID 不稳定性,但会引入需要在使用前进行验证的可调响应延迟。
即使变送器经过校准,原始模拟信号也不一定能直接使用。在实际工厂环境中,4–20 mA 和 0–10 V 信号通常会受到来自 EMI、接地问题、湍流过程条件和机械振动的噪声干扰。如果将这些噪声直接输入控制逻辑,PLC 反应的将是干扰而非过程真实状态。这会导致执行器出现抖动、震荡和磨损。
在 OLLA Lab 的验证测试中,将 2 mA 峰峰值的高频噪声波注入模拟的 4–20 mA 压力信号时,PID 执行器输出产生了 15% 的偏差。在相同场景下,应用 alpha = 0.15 的一阶滞后滤波器后,执行器偏差降低至 1.2%。方法论:在单个压力回路任务上重复 12 次模拟运行,基准比较器为未滤波信号路径,时间窗口为每次运行 10 分钟的等效模拟运行时间。这支持了软件滤波可以在受限模拟案例中实质性稳定噪声回路的结论。它并不支持适用于所有过程、仪表或扫描时间的通用调整规则。
什么是 PLC 编程中的一阶滞后滤波器?
一阶滞后滤波器是一种基于软件的低通滤波器,它通过在连续的 PLC 扫描周期内混合当前输入和之前的滤波结果,来减少信号的短期波动。在控制实践中,它通常被实现为指数移动平均 (EMA)。
标准的离散形式为:
Y_n = (alpha × X_n) + ((1 - alpha) × Y_n-1)
其中:
- X_n = 原始输入
- alpha = 滤波常数
- Y_n-1 = 之前的滤波值
- Y_n = 新的滤波值
解释:
- alpha = 1.0 表示不进行滤波
- alpha 值越小,平滑效果越强,滞后越明显
关键区别很简单:这不是对固定窗口的样本进行平均,而是对历史数据进行递归加权。这使得它在计算上非常轻量,且易于在梯形图中实现。
为什么它被称为滞后滤波器?
它被称为滞后滤波器,是因为输出响应有意比原始输入慢。这种延迟不一定是缺陷,它是为了抑制高频噪声而做出的权衡。
工程目标不是让趋势看起来更平滑,而是去除无用的波动,同时又不至于过度延迟过程信号,导致控制质量下降。
为什么 4–20 mA 模拟信号需要软件滤波?
软件滤波是必要的,因为硬件的清洁度和变送器的精度并不能消除控制层面的动态噪声。一个信号在电气上可能是有效的,但在操作上可能毫无用处。
信号退化的常见来源包括:
- 来自变频器 (VFD)、电机引线、继电器以及隔离不良的电源和仪表线路的电磁干扰 (EMI)
- 接地回路和屏蔽故障
- 影响压力、流量和液位设备的机械振动
- 过程湍流,如溅射、气蚀和脉动
- A/D 转换粒度和扫描交互
为什么未过滤的噪声会损害控制性能?
未过滤的噪声会降低控制性能,因为除非另有说明,否则控制器会将每一次变化都视为潜在的有效变化。这在采用微分作用的回路中尤其成问题。
三种常见的故障模式是:
- 输出抖动
- 微分放大
- 由于不必要的执行器移动导致的机械磨损
这就是为什么当模拟信号质量可疑时,通常需要考虑软件滤波,尽管并非所有情况都适用,也不能盲目使用。
如何在梯形图 (LD) 中编写数字低通滤波器?
在梯形图中编写一阶滞后滤波器的方法是:计算原始输入和之前滤波值的加权贡献,将它们相加,然后存储结果以供下一次扫描使用。根据 PLC 平台的不同,实现方式可以使用单独的数学块或单个计算指令。
逻辑结构步骤
- 将原始输入乘以 alpha,计算原始输入的权重。
- 用 1.0 减去 alpha,并将结果乘以之前的滤波值,计算历史权重。
- 将两个加权项相加,得出新的滤波值。
- 更新历史标签,以便在下一次扫描时使用。
梯形图实现示例
[语言:梯形图]
// 梯级 1:执行一阶滞后数学运算 CPT 目标:Tag_Filtered_Current 表达式:(Tag_Raw_Input Tag_Alpha) + (Tag_Filtered_Previous (1.0 - Tag_Alpha))
// 梯级 2:更新历史标签以供下一次扫描使用 MOV 源:Tag_Filtered_Current 目标:Tag_Filtered_Previous
你需要哪些标签?
至少定义以下标签:
- `Tag_Raw_Input` — 标定后的模拟输入
- `Tag_Alpha` — 作为 REAL 类型的滤波常数
- `Tag_Filtered_Current` — 当前滤波结果
- `Tag_Filtered_Previous` — 保留的上一次扫描的滤波结果
哪个执行细节最重要?
执行顺序至关重要,因为这是一个递归计算。如果你过早覆盖了历史值,滤波器的行为将偏离预期。
如何在 PLC 中初始化一阶滞后滤波器?
你应该初始化一阶滞后滤波器,使历史值从已知状态开始,通常是在启动或首次扫描时使用当前的原始输入。这可以防止滤波器开始执行时出现巨大的人为瞬变。
常见的初始化策略包括:
- 首次扫描置位:在程序首次扫描时设置 `Tag_Filtered_Previous = Tag_Raw_Input`
- 模式切换置位:如果陈旧的历史数据会扭曲响应,则在从手动切换到自动时重新置位
- 故障恢复置位:在不良输入条件或传感器更换事件后重新初始化
正确的选择取决于过程的关键程度和控制理念。
如何为一阶滞后滤波器选择 alpha 值?
选择 alpha 值需要在噪声衰减和响应延迟之间取得平衡。较小的 alpha 值平滑效果更强,但会增加滞后;较大的 alpha 值能保持响应速度,但对噪声的抑制较弱。
实际的解释是:
- 高 alpha,例如 0.6 到 0.9:轻度滤波,响应快,噪声抑制有限
- 中等 alpha,例如 0.2 到 0.5:平滑与响应的平衡
- 低 alpha,例如 0.05 到 0.15:强力平滑,响应较慢,相位滞后风险较大
这些范围是经验法则,而非通用设置。正确的值取决于:
- 过程时间常数
- PLC 扫描时间
- 传感器行为
- 控制目标
- 滤波后的信号是用于指示、报警还是闭环控制
主要的调整权衡是什么?
主要的权衡是平滑度与相位滞后。
如果 alpha 过高:
- 信号仍然有噪声
- PID 仍然会对干扰做出反应
- 执行器磨损可能保持在较高水平
如果 alpha 过低:
- 回路感知过程变化太晚
- 干扰抑制能力变差
- 控制器可能因其他原因变得迟钝或不稳定
用延迟代替噪声并不一定是一种改进。
扫描时间如何影响一阶滞后滤波器的行为?
扫描时间会影响滤波器的行为,因为该方程在每次扫描时执行一次,有效的平滑效果取决于递归更新发生的频率。如果任务执行时间发生重大变化,相同的 alpha 值不会产生相同的动态效果。
这在三个方面很重要:
- 更快的执行速度会改变有效的时间响应
- 更慢的执行速度会增加有意义的修正之间的表观延迟
- 抖动的执行速度会扭曲预期的滤波器性能,特别是在调整紧密的回路中
为了进行严格的验证,选择 alpha 时不能脱离扫描特性。在一个执行上下文中调整好的滤波器在另一个上下文中可能会有不同的表现。
如何在 OLLA Lab 中测试滤波器对模拟 EMI 的响应?
你可以在 OLLA Lab 中通过向模拟信号注入受控的模拟噪声,应用梯形图逻辑滤波器,并在部署到现场之前在变量面板中比较原始行为与滤波后的行为,从而测试滤波器的响应。
从受限的产品角度来看,OLLA Lab 是高风险调试任务的验证和演练环境。它不赋予现场能力、认证或功能安全资格。它提供的是一个受控场所,用于在逻辑触及实际过程之前,观察、诊断并根据真实的过程行为改进控制逻辑。
OLLA Lab 中的验证工作流程
- 使用高频干扰在稳定的基线上向模拟信号注入噪声
- 在梯形图编辑器中构建滤波器
- 在变量面板中对两个值进行趋势分析
- 有意识地调整 alpha
- 观察下游控制行为
- 修改并重新测试
验证期间应该寻找什么?
寻找证据,而不是美感:
- 滤波后的信号是否抑制了高频振荡?
- PID 输出是否变得更加稳定?
- 滤波器是否过度延迟了真实的过程变化?
- 报警是否消除了,还是现在变得滞后了?
- 修改后的行为在多次干扰下是否仍然可以接受?
稳定的趋势线是不够的。回路必须仍然能够以有用的速度反映过程。
在滤波练习中应该保存哪些工程证据?
你应该保存一份精简的工程证据,而不仅仅是截图。重点是以一种其他工程师可以审计的方式记录推理、故障响应和修订质量。
使用以下结构:
- 系统描述:过程元件、信号类型、标定范围、扫描上下文以及滤波值的使用位置
- 正确行为的操作定义:噪声降低、执行器偏差受限、无不可接受的控制滞后、无干扰报警抖动
- 梯形图逻辑和模拟设备状态:已实现的逻辑、标签角色、初始条件和模拟过程状态
- 注入的故障案例:干扰类型、幅度、频率、湍流模式或传感器抖动配置文件
- 所做的修订:选择的 alpha、初始化更改以及任何下游 PID 或报警调整
- 经验教训:哪些方面得到了改善,哪些方面退化了,以及哪些方面仍然不确定
验证滤波后的模拟信号时,哪些标准和文献很重要?
没有单一的标准能告诉你每个回路应该使用什么 alpha 值,但多项文献和指南支持底层的工程关注点:信号质量、软件行为、安全边界和验证准则。
相关参考资料包括:
- IEC 61508,涉及电气、电子和可编程系统中功能安全和软件生命周期严谨性的更广泛学科
- exida 指南,用于对安全生命周期和控制系统验证关注点的实际解释
- IFAC 和过程控制文献,涉及滤波、回路性能和噪声响应权衡
- 仪表和传感器文献,涉及噪声行为、测量不确定性和动态信号调节
必要边界:在培训或验证环境中使用滤波器本身并不能建立安全完整性、合规性或对安全仪表功能的适用性。滤波可以提高控制质量,但不能取代工程审查。
什么时候应该避免或限制使用一阶滞后滤波?
当响应速度比噪声抑制更重要,或者滤波可能会掩盖真实且与安全相关的过程变化时,你应该避免或限制使用一阶滞后滤波。
在以下情况下请谨慎使用:
- 快速保护跳闸
- 关键许可逻辑
- 快速变化的批次转换
- 具有严格动态要求的燃烧或压力控制应用
- 任何延迟可能加剧危险暴露的信号路径
正确的问题不是“我能平滑这个信号吗”,而是“如果我这样做,什么决策会变慢”。
结论
一阶滞后滤波器是在梯形图中清理噪声模拟信号最实用的方法之一,但其价值取决于严格的调整和验证。方程很简单,但后果并不简单。
工程目标是在不让控制器对真实过程运动“失明”的情况下,衰减无用的波动。这需要关注 alpha 的选择、初始化、扫描计时和下游回路行为。它还需要一个可以安全测试这些交互的地方。
这就是 OLLA Lab 的受限角色:一个基于 Web 的环境,工程师可以在其中构建梯形图、注入真实干扰、观察 I/O 行为、比较模拟设备状态与梯形图状态,并在接触实际过程之前修改逻辑。
继续探索
Interlinking
Related link
高级过程控制与 PID 模拟中心 →Related link
从原始位到工程单位的标定数学 →Related link
针对噪声进行调整:为什么 D 通常代表危险 →Related reading
在 OLLA Lab 中测试模拟滤波器响应 ↗