技术干货

配料系统称重数据滤波算法对比:移动平均、卡尔曼滤波与一阶滞后实战选择

2026-08-03 11:03:24 扬州申克自控设备有限公司

引言:为什么称重数据需要滤波?

自动配料系统的实际运行中,称重传感器采集到的原始重量信号往往伴随着各种噪声干扰——机械振动、物料冲击、电磁干扰、温度漂移都会在信号中叠加抖动成分。如果直接使用这些未经处理的原始数据进行配料控制,会导致给料阀门频繁动作、配料精度波动加大,严重时甚至引发系统振荡。

滤波算法是连接"脏数据"与"干净数据"之间的桥梁。选择合适的滤波算法,不仅直接影响配料精度,还关系到系统响应速度和稳定性。本文对比三种在配料系统中最常用的滤波算法——移动平均滤波、卡尔曼滤波和一阶滞后滤波,从原理、实现到实际效果进行全面剖析,帮助工程师在不同工况下做出最优选择。

一、三种滤波算法的核心原理

1.1 移动平均滤波(Moving Average)

移动平均滤波是最经典、最易于理解的数字滤波方法。其核心思想是:取最近N次采样值的算术平均值作为当前输出值。

数学表达式:

Y(n) = [X(n) + X(n-1) + ... + X(n-N+1)] / N

其中,Y(n)为滤波后输出,X(n)为第n次采样值,N为窗口大小。

优点:

  • 实现极其简单,仅需一个循环缓冲区和累加运算

  • 对周期性干扰有良好的抑制效果

  • 不依赖信号模型,适用于各种物料场景

缺点:

  • 引入固定延迟:延迟量为(N-1)/2个采样周期

  • 窗口越大,平滑效果越好,但实时性越差

  • 对突变信号响应慢,不适合快速变化的配料阶段

适用场景:稳态配料阶段、环境振动频率较稳定的工况、对实时性要求不高的静态称重场景。

1.2 卡尔曼滤波(Kalman Filter)

卡尔曼滤波是一种基于状态空间模型的最优递推估计方法。它通过"预测—更新"两步循环,利用系统状态方程和观测方程,在最小均方误差准则下对系统状态进行最优估计。

核心步骤:

步骤一——预测:

X(k|k-1) = A · X(k-1|k-1) + B · U(k)

P(k|k-1) = A · P(k-1|k-1) · Aᵀ + Q

步骤二——更新:

K(k) = P(k|k-1) · Hᵀ · [H · P(k|k-1) · Hᵀ + R]⁻¹

X(k|k) = X(k|k-1) + K(k) · [Z(k) - H · X(k|k-1)]

P(k|k) = [I - K(k) · H] · P(k|k-1)

其中,A为状态转移矩阵,H为观测矩阵,Q为过程噪声协方差,R为观测噪声协方差,K为卡尔曼增益。

优点:

  • 在已知系统模型时,理论上达到最优估计

  • 自适应调整增益,能兼顾平滑性和跟踪性

  • 可扩展为扩展卡尔曼滤波(EKF)处理非线性系统

缺点:

  • 需要准确的系统模型和噪声统计特性

  • 计算量较大,涉及矩阵运算

  • 参数调较复杂,Q和R的设定需要经验积累

适用场景:高精度配料系统、动态配料过程、需要同时估计多个状态变量(如重量+流量)的场景。

1.3 一阶滞后滤波(First-Order Lag)

一阶滞后滤波又称指数平滑滤波,其核心思想是:当前输出等于上一次输出与当前采样的加权平均。

数学表达式:

Y(n) = α · X(n) + (1-α) · Y(n-1)

其中,α为平滑系数(0 < α < 1),α越大表示对当前采样信任度越高,滤波效果越弱;α越小表示平滑效果越强,但延迟越大。

优点:

  • 计算量极小,仅需一次乘法和一次加法

  • 只需调节一个参数α,工程实现简单

  • 占用内存极小(仅保存上一次输出值),适合嵌入式系统

缺点:

  • 滤波效果有限,对高频突发噪声抑制不足

  • 无法区分信号变化与噪声变化,通频带内平滑度有限

  • 相位延迟随α减小而增大

适用场景:PLC资源受限的配料系统、采样频率较高(≥50Hz)的场景、作为前置粗滤与其他算法配合使用。

二、三种算法的实测数据对比

为了直观对比三种滤波算法的实际效果,我们在某化工企业的粉体配料线上进行了为期两周的对比测试。测试条件如下:

  • 物料:碳酸钙粉体(堆积密度0.45g/cm³,含水率0.8%)

  • 传感器:梅特勒-托利多MTB-200称重模块(C3精度等级)

  • 采样频率:50Hz(采样周期20ms)

  • 配料目标:25.00kg,精度要求±0.1%

  • 环境:车间地面振动加速度峰值0.15g(来自旁边破碎机)

2.1 稳态称重阶段对比

在配料罐加料完成后的稳态阶段(物料已静置3秒),采集1000个连续采样点,分别应用三种算法处理:

指标原始信号移动平均(N=16)卡尔曼滤波一阶滞后(α=0.15)
标准差(g)28.67.25.19.8
峰峰值(g)142382652
延迟(ms)015040130
计算耗时(μs)-12853

分析:卡尔曼滤波在标准差和峰峰值指标上表现最优,且延迟仅40ms,这得益于其自适应增益调节机制。移动平均滤波的平滑效果次之,但150ms的延迟在快速配料场景中可能影响控制响应。一阶滞后滤波计算最快(3μs),但平滑效果相对较弱。

2.2 动态加料阶段对比

在快速加料阶段(给料阀门全开,物料流量约8kg/s),考察三种算法对重量信号变化的跟踪能力:

指标移动平均(N=16)卡尔曼滤波一阶滞后(α=0.15)
跟踪延迟(ms)15045130
超调量(g)0150
噪声残余(g)±12±8±18
到达稳态时间(ms)320120280

分析:动态加料阶段,卡尔曼滤波展现出明显优势——跟踪延迟仅45ms,能快速捕捉重量变化趋势,这对于配料系统的快慢给料切换控制至关重要。移动平均滤波延迟较大,可能导致配料控制系统在接近目标值时反应滞后,产生超调。一阶滞后滤波的噪声残余较大(±18g),在精度要求严格的场合可能不够理想。

三、不同工况下的算法选择策略

3.1 按物料特性选择

粉体物料(流动性差、易架桥):推荐使用卡尔曼滤波。粉体物料在配料过程中容易产生冲击和架桥塌料,重量信号中不仅有高频噪声,还包含突发性的大幅波动。卡尔曼滤波的自适应增益能够在信号突变时迅速增大增益、跟踪变化,在信号稳定后自动减小增益、增强平滑。

颗粒物料(流动性好、均匀下料):移动平均滤波即可满足需求。颗粒物料的下料过程相对平稳,信号中的噪声主要为环境振动引起的周期性干扰,移动平均滤波对此类干扰的抑制效果良好,且实现简单。

液体物料(粘度可变):建议使用一阶滞后滤波配合自适应α调节。在低粘度阶段(α=0.2~0.3)保证跟踪速度,在高粘度阶段(α=0.05~0.1)增强平滑效果。

3.2 按配料精度要求选择

精度等级推荐算法理由
±0.5%(常规)一阶滞后实现简单,资源消耗低
±0.2%(较高)移动平均 N=8~16平衡精度与实时性
±0.1%(高精度)卡尔曼滤波最优估计,兼顾精度和跟踪
±0.05%(超高精度)卡尔曼+移动平均级联两级滤波,极致平滑

3.3 按硬件平台选择

高端PLC(如西门子S7-1500系列):计算资源充足,推荐直接使用卡尔曼滤波。这类PLC支持浮点矩阵运算,完全可以承受卡尔曼滤波的计算负荷。

中端PLC(如西门子S7-1200系列):建议使用移动平均滤波(N=8~16),配合简单的异常值剔除逻辑。计算量适中,效果可靠。

低端PLC或称重仪表(如SK-200-LG):优先选择一阶滞后滤波。这类平台的CPU主频较低、内存有限,一阶滞后滤波仅需3条指令即可完成,是性价比最高的选择。

四、工程实战中的高级技巧

4.1 异常值剔除——滤波的前置防线

无论选择哪种滤波算法,都应该在前端加入异常值剔除逻辑。常用的方法是基于"3σ准则"的异常检测:

如果 |X(n) - Y(n-1)| > 3σ,则认为当前采样为异常值,用Y(n-1)替代X(n)。

其中σ可根据历史数据统计得到,也可在线自适应更新。这一步骤能有效防止传感器异常跳变(如电磁干扰导致的大幅脉冲)对滤波器造成冲击。

4.2 双速配料中的滤波策略切换

在快慢双速配料工艺中,不同阶段对滤波的要求不同:

快速加料阶段:重点是跟踪速度,应减小滤波强度。移动平均窗口减至N=4,卡尔曼滤波增大Q值(过程噪声),一阶滞后增大α至0.3~0.5。

慢速加料阶段:重点是精度和平滑性,应增大滤波强度。移动平均窗口增至N=16~32,卡尔曼滤波减小Q值,一阶滞后减小α至0.05~0.1。

这种"变速滤波"策略在某合金粉末配料项目中,将配料精度从±0.15%提升至±0.08%,效果显著。

4.3 卡尔曼滤波参数调较实战经验

卡尔曼滤波的实际效果高度依赖Q(过程噪声协方差)和R(观测噪声协方差)的设定。以下是我们在20+配料项目中总结的经验值:

物料类型Q初始值R初始值调较方向
粉体(轻质)0.510观察稳态噪声,逐步减小Q
粉体(重质)1.05冲击大时增大R
颗粒料0.38噪声小时减小R
液体0.13粘度高时增大Q

调较流程建议:首先在空载条件下采集500个采样点,统计得到R的初始估计值;然后在满载稳态条件下采集500个点,结合R值反推Q的合理范围;最后在动态加料过程中微调,直到跟踪延迟和噪声残余都满足要求。

五、算法实现的PLC代码示例

5.1 移动平均滤波的ST语言实现

FUNCTION_BLOCK FB_MovingAverage
VAR_INPUT
    rSample : REAL; (* 当前采样值 *)
    iWindowSize : INT := 16; (* 窗口大小 *)
END_VAR
VAR_OUTPUT
    rOutput : REAL; (* 滤波输出 *)
END_VAR
VAR
    arBuffer : ARRAY[0..63] OF REAL; (* 缓冲区 *)
    iIndex : INT := 0;
    rSum : REAL := 0.0;
    iCount : INT := 0;
END_VAR

// 减去即将被替换的值
IF iCount >= iWindowSize THEN
    rSum := rSum - arBuffer[iIndex];
ELSE
    iCount := iCount + 1;
END_IF

// 写入新值
arBuffer[iIndex] := rSample;
rSum := rSum + rSample;

// 计算平均值
rOutput := rSum / INT_TO_REAL(iCount);

// 更新索引
iIndex := (iIndex + 1) MOD iWindowSize;

5.2 一阶滞后滤波的ST语言实现

FUNCTION_BLOCK FB_FirstOrderLag
VAR_INPUT
    rSample : REAL; (* 当前采样值 *)
    rAlpha : REAL := 0.15; (* 平滑系数 *)
    bReset : BOOL := FALSE; (* 复位信号 *)
END_VAR
VAR_OUTPUT
    rOutput : REAL; (* 滤波输出 *)
END_VAR

IF bReset THEN
    rOutput := rSample;
ELSE
    rOutput := rAlpha * rSample + (1.0 - rAlpha) * rOutput;
END_IF

这两段代码可直接集成到配料系统的PLC周期中断任务(OB35或等效定时中断)中,采样周期建议为10~20ms。

六、总结与推荐

通过对三种滤波算法的理论分析和实测对比,我们可以得出以下结论:

第一,没有"万能"的滤波算法。每种算法都有其适用范围和局限性。移动平均滤波胜在简单稳定,卡尔曼滤波赢在精度和自适应性,一阶滞后滤波则胜在极低的计算开销。

第二,算法选择应基于工况特点。对于常规配料精度(±0.3%~±0.5%),一阶滞后滤波或小窗口移动平均已足够;对于高精度配料(±0.1%以内),强烈推荐使用卡尔曼滤波。

第三,滤波不是孤立的环节。它必须与配料控制策略(如PID参数)、给料机构特性(如螺旋给料的脉冲特性)、传感器安装条件(如减震措施)协同设计,才能发挥最佳效果。

扬州申克自控设备有限公司在多年的配料系统工程实践中,积累了丰富的称重数据处理经验。我们可根据客户的具体物料特性、精度要求和预算条件,量身定制最优的滤波与控制方案,确保每一套配料系统都能达到最佳的计量性能。如果您正在规划或调试配料系统,欢迎联系我们的技术团队,获取针对性的滤波算法选型建议和现场调试支持。

自动配料系统,粉体自动配料系统,颗粒自动配料系统,液体自动配料系统,配料系统厂家,


首页
产品
新闻
联系
苏公网安备32100302011568号