模拟量输入滤波时间的参数设置
在电气自动化系统中,传感器采集的模拟量信号往往伴随着噪声干扰。合理设置滤波时间参数,是确保数据稳定可靠的关键环节。本文将系统讲解滤波时间的计算原理、参数整定方法及工程实践技巧。
一、滤波的基本原理
1.1 为什么需要滤波
模拟量信号在传输过程中容易受到以下干扰:
| 干扰类型 | 典型来源 | 影响特征 |
|---|---|---|
| 电磁干扰 | 变频器、电机、继电器 | 高频尖峰脉冲 |
| 工频干扰 | 50/60Hz 电源耦合 | 周期性波动 |
| 机械振动 | 泵机、风机、传送带 | 低频抖动 |
| 热噪声 | 电阻、半导体元件 | 随机白噪声 |
未经滤波的信号会导致控制系统误判,引发阀门频繁动作、PID 输出振荡等问题。
1.2 滤波的本质
滤波是一种时间上的平均处理。其核心思想是:快速变化的成分视为噪声予以抑制,缓慢变化的成分视为有效信号予以保留。
常用的一阶惯性滤波算法如下:
$$Y_n = \alpha \cdot X_n + (1-\alpha) \cdot Y_{n-1}$$
其中:
- $Y_n$:当前滤波输出值
- $X_n$:当前采样输入值
- $Y_{n-1}$:上次滤波输出值
- $\alpha$:滤波系数,$0 < \alpha \leq 1$
1.3 滤波时间与截止频率的关系
滤波时间常数 $T_f$ 与滤波系数 $\alpha$ 的换算关系:
$$\alpha = \frac{T_s}{T_s + T_f}$$
其中 $T_s$ 为采样周期。
滤波时间的物理意义是:信号幅值变化 63.2% 所需的响应时间。
截止频率 $f_c$(信号衰减 3dB 处的频率):
$$f_c = \frac{1}{2\pi T_f} \approx \frac{0.159}{T_f}$$
二、滤波时间参数的计算方法
2.1 基于信号特征的工程估算
第一步:确定信号的有效变化速率
分析工艺过程,确定被测物理量的最大正常变化速率。例如:
- 水箱液位:最高每分钟变化 10%,对应信号变化速率为量程的 10%/min
- 管道温度:升温速率最高 5℃/min,对应信号变化速率为量程的 (5/量程)×100%/min
第二步:计算信号周期
将最大变化速率转换为等效周期。假设信号在量程范围内做正弦波动:
$$T_{signal} = \frac{2 \times 量程}{最大变化速率}$$
沿用液位示例:$T_{signal} = 2 \times 100\% \div 10\%/min = 20\ min = 1200\ s$
第三步:设定滤波时间
工程经验公式:
$$T_f = (0.05 \sim 0.1) \times T_{signal}$$
液位案例中:$T_f = 60 \sim 120\ s$,通常取 90 s。
2.2 基于干扰频率的精确计算
第一步:识别主要干扰频率
使用示波器或 PLC 的诊断功能,观察未滤波信号的频谱特征。记录:
- 工频干扰:50Hz 或 60Hz
- 变频器载波:2kHz ~ 16kHz
- 机械振动:与转速相关,如 30Hz
第二步:确定衰减要求
设定目标衰减量,通常要求干扰幅度衰减至 1% 以下(衰减 40dB)。
第三步:计算所需滤波时间
一阶滤波在频率 $f$ 处的幅值衰减:
$$A(f) = \frac{1}{\sqrt{1 + (2\pi f T_f)^2}}$$
要求 $A(f_{noise}) \leq 0.01$,解得:
$$T_f \geq \frac{\sqrt{9999}}{2\pi f_{noise}} \approx \frac{15.9}{f_{noise}}$$
以抑制 50Hz 工频干扰为例:
$$T_f \geq \frac{15.9}{50} = 0.318\ s \approx 320\ ms$$
实际工程取 500 ms,留有余量。
2.3 快速验证公式
现场快速估算时,使用以下经验关系:
| 滤波时间 $T_f$ | 对 50Hz 工频衰减 | 对 10Hz 信号响应延迟 |
|---|---|---|
| 10 ms | 衰减至 24% | 10 ms |
| 100 ms | 衰减至 3.2% | 100 ms |
| 500 ms | 衰减至 0.64% | 0.5 s |
| 1 s | 衰减至 0.32% | 1 s |
| 5 s | 衰减至 0.064% | 5 s |
三、不同品牌 PLC 的参数设置
3.1 西门子 S7-1200/1500 系列
参数位置:设备组态 → AI 模块 → 通道参数 → 积分时间/滤波
关键设置:
- 测量类型:选择 "电压" 或 "电流" 模式
- 干扰频率抑制:选择 "50 Hz"、"60 Hz" 或 "400 Hz"
- 此选项同时决定积分时间和滤波算法
- 滤波等级:设置 数值 1~9(对应不同时间常数)
换算关系:
| 干扰频率设置 | 积分时间 | 等效滤波时间 |
|---|---|---|
| 50 Hz | 20 ms | 约 80 ms |
| 60 Hz | 16.7 ms | 约 67 ms |
| 400 Hz | 2.5 ms | 约 10 ms |
如需更长的滤波时间,启用 "平滑" 功能,可额外设置 无/弱/中/强 四档,对应约 4 次、16 次、32 次、64 次 采样平均。
3.2 罗克韦尔 ControlLogix 系列
参数位置:I/O 配置 → 模块属性 → Input Configuration
关键设置:
- Realtime Sample (RTS):模块自身的采样周期,典型值 10 ms
- Requested Packet Interval (RPI):网络刷新周期
- Digital Filter:设置 时间常数,范围 0 ~ 32767 ms
操作步骤:
- 打开 Studio 5000 编程软件
- 双击 目标模拟量输入模块
- 切换 至 "Configuration" 标签页
- 找到 "Digital Filter" 字段,输入 计算得到的滤波时间(单位 ms)
- 点击 "应用" 后 下载 配置
3.3 三菱 FX5U 系列
参数位置:导航窗口 → 参数 → FX5UCPU → 模块参数 → 模拟输入
关键设置:
- A/D 转换允许/禁止:启用 目标通道
- 采样时间:设置 每通道处理时间(影响所有通道总更新时间)
- 平均处理指定:选择 "次数平均" 或 "移动平均"
平均次数与等效滤波时间:
| 平均次数 | 等效时间常数(10ms 采样时) | 适用场景 |
|---|---|---|
| 4 次 | 40 ms | 快速压力、流量 |
| 16 次 | 160 ms | 一般温度、液位 |
| 64 次 | 640 ms | 强干扰环境 |
| 256 次 | 2.56 s | 超稳定需求 |
3.4 施耐德 M580 系列
参数位置:硬件目录 → DDI/DAI 模块 → 通道配置 → Filtering
关键特点:直接以 时间常数 形式配置,单位秒,范围 0 ~ 60 s
推荐设置方法:
- 输入 计算值后,观察 诊断字中的 "ChannelStatus"
- 若出现 "OverRange" 或 "UnderRange" 频繁报警,逐步增大 滤波时间
四、特殊场景的参数策略
4.1 温度测量(热电偶/热电阻)
温度信号变化缓慢,但易受电磁干扰,典型配置:
| 参数项 | 推荐值 | 说明 |
|---|---|---|
| 采样周期 | 250 ms ~ 1 s | 无需过快 |
| 滤波时间 | 2 s ~ 10 s | 根据热惯性调整 |
| 补偿方式 | 启用冷端补偿 | 热电偶必需 |
关键技巧:温度传感器的滤波时间应 大于 其热时间常数的 3 倍,避免系统响应与物理过程脱节。
4.2 压力/差压测量
压力信号可能包含脉动成分(如泵出口),需区分对待:
稳态压力测量(如储罐静压):
- 设置 滤波时间 0.5 s ~ 2 s
- 启用 算术平均滤波
动态压力测量(如压缩机喘振监测):
- 设置 滤波时间 < 10 ms
- 禁用 软件滤波,改用硬件 RC 滤波(截止频率 1kHz 左右)
4.3 流量测量
流量信号特性复杂,需综合考虑:
电磁流量计:
- 输出本身已做 滑动平均 处理
- PLC 侧滤波时间 < 100 ms,避免过度延迟
涡街/涡轮流量计:
- 脉冲输出时,设置 滤波为 采样周期的 3~5 倍
- 电流输出时,按 4.2 节压力测量 处理
孔板差压流量计:
- 需对差压信号 开方运算 后得到流量
- 建议 先滤波再开方,避免小信号时噪声放大
4.4 液位测量
液位测量常遇 波浪/泡沫 导致的虚假波动:
常规策略:
- 设置 较长滤波时间 5 s ~ 30 s
- 配合 阻尼阀 或 静水井 物理手段
高级策略(西门子 S7-1500 支持):
- 启用 "故障安全" 功能
- 配置 变化率限制:每分钟最大变化 x%
- 配置 滞留时间:超限持续 y 秒 后才报警
五、滤波效果的验证与调优
5.1 在线监测方法
方法一:趋势曲线对比
- 同时显示 滤波前、后的信号曲线
- 观察 噪声幅度和信号滞后
- 调整 参数直至噪声 < 量程的 0.5% 且滞后可接受
方法二:阶跃响应测试
- 手动给定 一个阶跃输入(如短接标准电阻)
- 记录 输出达到 63.2% 终值的时间
- 核对 是否与设定滤波时间一致
方法三:频谱分析(高级)
使用 PLC 的 Trace 功能记录数据,导出至 MATLAB 或 Excel 做 FFT:
$$X(k) = \sum_{n=0}^{N-1} x(n) \cdot e^{-j2\pi kn/N}$$
观察 目标干扰频率处的幅值是否被充分抑制。
5.2 与 PID 控制的协调
滤波时间直接影响 PID 控制性能,需联合整定:
经验法则:
$$\frac{T_{sampling}}{10} \leq T_{filter} \leq \frac{T_{process}}{10}$$
且:
$$T_{filter} \leq \frac{T_{derivative}}{3}$$
其中 $T_{derivative}$ 为 PID 微分时间。
调优流程:
- 初始设置:滤波时间 = 采样周期的 4 倍
- 整定 PID:按 Ziegler-Nichols 或其他方法整定 PID 参数
- 观察振荡:若测量值振荡,增大 滤波时间;若响应迟缓,减小 滤波时间
- 迭代优化:每次调整幅度 ±30%,直至获得满意的控制品质
5.3 常见故障排查
| 现象 | 可能原因 | 解决措施 |
|---|---|---|
| 信号响应极慢 | 滤波时间过大 | 减小 至工艺允许的最小值 |
| 噪声未消除 | 滤波时间不足 | 增大 或检查接地屏蔽 |
| 控制回路振荡 | 滤波造成相位滞后 | 减小 滤波时间,改用二级滤波 |
| 跳变后长时间漂移 | 数字滤波算法异常 | 切换 滤波模式或复位模块 |
| 不同通道差异大 | 各通道独立设置 | 统一 配置或分别记录参数 |
六、进阶技术:自适应滤波
对于工况变化大的场合,可采用 变滤波时间 策略:
6.1 基于变化率的动态调整
设置 两个阈值:
- 当 $|X_n - X_{n-1}| < \Delta_1$ 时:使用 长滤波时间 $T_{f1}$(稳态降噪)
- 当 $\Delta_1 \leq |X_n - X_{n-1}| < \Delta_2$ 时:使用 短滤波时间 $T_{f2}$(快速跟踪)
- 当 $|X_n - X_{n-1}| \geq \Delta_2$ 时:立即输出 原始值(故障或阶跃)
6.2 实现代码示例(ST 语言)
PROGRAM AdaptiveFilter
VAR
rawValue : REAL; // 原始输入
filtered : REAL; // 滤波输出
lastFiltered: REAL; // 上次输出
delta : REAL; // 变化量
Tf : REAL; // 当前滤波时间
Tf_slow : REAL := 10.0; // 稳态滤波时间
Tf_fast : REAL := 0.5; // 动态滤波时间
Ts : REAL := 0.1; // 采样周期 100ms
alpha : REAL; // 滤波系数
threshold1 : REAL := 0.5; // 阈值1 (量程%)
threshold2 : REAL := 5.0; // 阈值2 (量程%)
END_VAR
// 计算变化量
delta := ABS(rawValue - lastFiltered);
// 选择滤波时间
IF delta < threshold1 THEN
Tf := Tf_slow;
ELSIF delta < threshold2 THEN
Tf := Tf_fast;
ELSE
Tf := 0; // 直通
END_IF;
// 计算滤波系数并执行滤波
IF Tf > 0 THEN
alpha := Ts / (Ts + Tf);
filtered := alpha * rawValue + (1 - alpha) * lastFiltered;
ELSE
filtered := rawValue; // 无滤波
END_IF;
lastFiltered := filtered;
七、工程实施 checklist
设计阶段:
- [ ] 确认 传感器类型、信号范围、预期精度
- [ ] 分析 主要干扰源及其频率特征
- [ ] 计算 最小/最大允许滤波时间
组态阶段:
- [ ] 记录 各通道滤波参数至设备台账
- [ ] 设置 统一的参数命名规则(如 AI01_Tf)
- [ ] 备份 默认配置,便于回退
调试阶段:
- [ ] 验证 阶跃响应时间是否符合设定
- [ ] 对比 滤波前后的信号质量
- [ ] 测试 与 PID 联合运行的稳定性
运维阶段:
- [ ] 定期检查 滤波参数是否被意外修改
- [ ] 优化 根据长期运行数据微调
- [ ] 文档化 记录最佳实践参数供复制

暂无评论,快来抢沙发吧!