文章目录

模拟量信号叠加:在DCS或PLC中如何处理多个传感器信号的加权平均

发布于 2026-03-21 13:28:22 · 浏览 3 次 · 评论 0 条

在工业控制系统中,当多个同类传感器(如温度、压力、流量变送器)同时监测同一工艺参数时,直接取单一传感器读数易受局部干扰或故障影响。为提升信号可靠性与系统鲁棒性,工程实践中常采用加权平均法对多路模拟量信号进行融合处理。该方法不依赖硬件冗余切换逻辑,仅通过软件算法实现信号优化,在DCS(分布式控制系统)和PLC(可编程逻辑控制器)中均可高效实现,且无需额外IO模块。

以下为完整实操指南,覆盖信号接入、权重设定、异常判别、计算实现及工程验证全过程。所有步骤均基于主流平台(如DeltaV、PCS 7、Logix5000、S7-1200/1500)通用逻辑,无需专用功能块,纯用标准指令即可完成。


一、信号接入与预处理:确保原始数据可用

  1. 确认传感器输出类型:统一使用 4–20 mA 电流信号(最常见),或 0–10 V 电压信号。若混用,必须先在I/O模块侧完成统一转换(例如:将所有信号接入支持 4–20 mA 输入的AI模块,禁用内部跳线式电压输入模式)。

  2. 配置通道滤波与采样周期

    • 在DCS组态中(如DeltaV的DST或PCS 7的HW Config),为每路AI通道启用 “数字滤波”,设置时间常数为 1.0 s(对应RC低通,截止频率约0.16 Hz),抑制高频噪声;
    • 将AI模块的采样周期设为 500 ms(不可低于200 ms,避免过载CPU;不可高于1 s,防止动态响应滞后);
    • 禁用“坏质量自动置0”选项,改为保留原始值并标记质量位(Quality Tag),供后续诊断使用。
  3. 标准化信号至工程单位

    • 对每路信号执行线性变换:
      $$ \text{PV}_i = \text{Span} \times \frac{I_i - 4}{16} + \text{LRV} $$
      其中:
      • I_i 是第 i 路通道的原始电流值(单位:mA),范围 4.00–20.00
      • Span = URV - LRV,URV与LRV为该参数的量程上限与下限(例如:温度0–150℃时,LRV=0,URV=150,Span=150);
      • 计算结果 PV_i 单位为工程单位(℃、kPa、m³/h等)。
    • 此步必须在加权前完成,确保所有 PV_i 量纲一致、数值可比。
  4. 读取并缓存质量状态

    • 每个AI点均附带一个布尔型质量位(如 AI1.Quality),值为 TRUE 表示信号有效,FALSE 表示断线、超限或模块故障;
    • 创建数组变量 Quality[1..N](N为传感器数量,通常取3或4),按通道顺序写入各点质量位;
    • 创建浮点数组 PV[1..N],同步写入标准化后的工程值。

二、权重分配策略:从静态到动态的三级设定法

权重不应固定为 1/N(即简单平均),而需根据传感器位置、历史稳定性、安装条件动态调整。推荐采用三级权重机制:

权重层级 触发条件 权重计算方式 典型应用场景
基础权重(静态) 初始组态阶段 由工程师手动设定,总和为1.0。例如:主测点 w₁=0.5,辅测点 w₂=0.3,远端点 w₃=0.2 新建装置,无历史数据
健康权重(半动态) 每24小时自动更新 基于过去7天各通道与加权平均值的偏差标准差 σ_i 计算:<br>w_i' = (1/σ_i) / Σ(1/σ_j) 运行稳定后,自动降低漂移大通道的权重
实时权重(动态) 每个扫描周期更新 |PV_i - PV_avg_last| > 3×σ_i,则 w_i = 0(临时剔除);否则 w_i = w_i' 应对突发尖峰、短时断线

✅ 实施要点:

  • 健康权重每月离线计算一次,通过DCS历史数据库导出 PV_i 时序数据,在Excel中用 STDEV.P() 函数求 σ_i,再套用公式生成新权重表;
  • 实时权重判断阈值必须带死区:使用 ABS(PV_i - PV_avg_last) > (3 * σ_i + 0.5),其中 0.5 是最小死区(单位:工程单位),防止单点微小波动触发误剔除;
  • 所有权重变量统一存入 REAL 类型数组 Weight[1..N],初始化值写入FC/FB的静态变量区。

三、加权平均核心计算:在PLC与DCS中的两种实现路径

▶ 路径A:PLC中使用结构化文本(ST)——以S7-1500为例

// 假设 N = 3,信号来自 AI[0], AI[1], AI[2]
VAR
    PV: ARRAY[1..3] OF REAL := [0.0, 0.0, 0.0]; // 工程值
    Quality: ARRAY[1..3] OF BOOL := [FALSE, FALSE, FALSE]; // 质量位
    Weight: ARRAY[1..3] OF REAL := [0.5, 0.3, 0.2]; // 当前权重
    PV_avg: REAL; // 输出结果
    sum_weight: REAL := 0.0;
    sum_prod: REAL := 0.0;
    i: INT;
END_VAR

// 步骤1:重置累加器
sum_weight := 0.0;
sum_prod := 0.0;

// 步骤2:遍历每路信号,仅对质量有效且权重>0的通道参与计算
FOR i := 1 TO 3 DO
    IF Quality[i] AND (Weight[i] > 0.0) THEN
        sum_weight := sum_weight + Weight[i];
        sum_prod := sum_prod + (PV[i] * Weight[i]);
    END_IF;
END_FOR;

// 步骤3:防除零保护,输出最终值
IF sum_weight > 0.01 THEN // 阈值0.01避免浮点精度问题
    PV_avg := sum_prod / sum_weight;
ELSE
    PV_avg := 0.0; // 或保持上一有效值:PV_avg := PV_avg;
END_IF;

▶ 路径B:DCS中使用模块化函数块(以DeltaV DCS为例)

  1. 新建自定义模块 W_AVG_3CH,含以下引脚:

    • 输入:IN1IN2IN3(REAL,工程值)
    • 输入:Q1Q2Q3(BOOL,质量位)
    • 输入:W1W2W3(REAL,当前权重)
    • 输出:OUT(REAL,加权平均值)
    • 输出:VALID(BOOL,计算是否有效)
  2. 在模块逻辑中插入以下标准功能块序列

    • MULTIPLY ×3:分别计算 IN1*W1IN2*W2IN3*W3
    • AND ×3:分别计算 Q1 AND (W1>0)Q2 AND (W2>0)Q3 AND (W3>0)
    • SELECT ×3:若对应质量/权重有效,则输出乘积值,否则输出 0.0
    • ADD ×2:累加三个乘积值 → SUM_PROD
    • ADD ×2:累加三个权重值(经 SELECT 后)→ SUM_WGT
    • DIVIDE:计算 SUM_PROD / SUM_WGT,并用 GT 判断 SUM_WGT > 0.01 驱动 VALID

✅ 关键保障:所有中间变量启用“保持值”(Retentive),断电重启后不丢失上一周期结果;VALID 信号直连至报警系统,当连续5秒为 FALSE 时触发“加权计算失效”报警。


四、异常检测与安全兜底:让系统自己发现问题

加权平均不是“万能胶”,必须配套异常识别机制:

  1. 一致性检查(Consistency Check)

    • 计算各有效通道与 PV_avg 的绝对偏差:Dev_i = ABS(PV_i - PV_avg)
    • 若任意 Dev_i > 5% of Span 且持续3秒,触发“单点大幅偏离”报警,并自动将该通道权重临时置0(写入 Weight[i] := 0.0);
    • 若超过1个通道同时满足上述条件,判定为“系统级异常”,立即停用加权输出,切换至 PV_avg := PV[1](主通道直通),并触发高优先级报警。
  2. 权重饱和保护

    • 监控 sum_weight:若其值 < 0.3(即有效权重总和不足30%),说明多数通道失效,强制将 PV_avg 置为 BAD 质量码(如S7中写入 REAL#NaN 并置位 Q_BAD 位),禁止参与下游控制。
  3. 速率限制(dPV/dt保护)

    • 记录上一周期 PV_avg_last,计算变化率 dPV := (PV_avg - PV_avg_last) / T_scanT_scan 为PLC扫描周期,单位秒);
    • ABS(dPV) > 2.0 ℃/s(温度场景)或 5.0 kPa/s(压力场景),则 PV_avg := PV_avg_last(冻结输出),防止虚假尖峰误导控制器。

五、工程验证与投运 checklist

投运前必须完成以下6项验证,缺一不可:

  1. 信号注入测试:用精密电流源向AI模块注入 4.0012.0020.00 mA,确认 PV_i 显示值误差 ≤ ±0.1% FS;
  2. 权重切换测试:手动将 Weight[2] 设为 0.0,观察 PV_avg 是否平滑过渡至剩余两路加权值,无阶跃;
  3. 质量位联动测试:强制 Q2 := FALSE,确认该通道立即被剔除,且 sum_weight 实时更新;
  4. 异常剔除测试:将 PV[3] 突增至 PV_avg + 100,验证3秒后 Weight[3] 自动归零,且 PV_avg 恢复稳定;
  5. 断电恢复测试:断开PLC电源10秒后上电,检查 PV_avg 是否延续断电前值(非清零);
  6. 负载压力测试:在CPU负载 >70% 时连续运行24小时,监控 PV_avg 计算周期抖动 < 5 ms,无超时报警。

所有测试结果需记录在《信号融合功能验收单》中,由仪表工程师、DCS工程师、工艺工程师三方签字确认。


加权平均不是替代传感器诊断,而是构建第一道数据可信屏障。它把“多个声音”变成“一个更可靠的声音”,让控制系统听见真实工艺,而非局部噪声。

评论 (0)

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

扫一扫,手机查看

扫描上方二维码,在手机上查看本文