文章目录

模拟量死区设置:在液位控制中,如何设置上下限死区防止泵频繁启停

发布于 2026-03-21 04:50:35 · 浏览 4 次 · 评论 0 条

在液位自动控制系统中,泵的频繁启停是常见但必须规避的问题。它不仅加速接触器、继电器和电机绝缘老化,还会引起电网瞬时压降、管道水锤,甚至导致PLC输出点烧毁。根本原因在于:模拟量液位信号(如4–20 mA或0–10 V)存在固有波动——传感器零点漂移、现场电磁干扰、电缆分布电容、A/D转换量化误差等,都会使读数在真实液位附近微幅振荡。若直接将设定值(如“高液位=85%”)作为开关阈值,哪怕信号仅在84.7% ↔ 85.3%之间抖动,控制器就可能每十几秒就触发一次泵启/停。

解决该问题的核心手段是设置上下限死区(Dead Band)。这不是简单的“加个延时”,而是通过空间隔离(而非时间延迟)从根本上切断振荡对执行机构的误驱动。以下为完整、可立即落地的实操指南。


一、死区的本质:用两个阈值替代一个开关点

传统开关控制使用单阈值(如液位≥85%启动泵,≤80%停止泵),实际形成的是一个无缓冲的硬切换边界。死区控制则定义两个独立阈值:

  • 启动阈值(Upper Limit):液位上升至该值时,启动泵;
  • 停止阈值(Lower Limit):液位下降至该值时,停止泵;
    且强制要求:启动阈值 > 停止阈值

二者之差即为死区宽度(Dead Band Width),记作 $\Delta H$:
$$ \Delta H = H_{\text{start}} - H_{\text{stop}} $$

例如:设 $H_{\text{start}} = 85\%$,$H_{\text{stop}} = 75\%$,则 $\Delta H = 10\%$。此时,液位在75%~85%之间波动时,泵状态保持不变——既不因小幅上升而误启,也不因小幅下降而误停。

✅ 关键结论:死区不是“容忍误差”,而是主动构建一个状态保持区间。它的有效性与信号噪声幅度直接相关,而非与响应速度冲突。


二、死区宽度的科学取值方法(4步法)

宽度过小,无法抑制抖动;宽度过大,则液位控制精度恶化,罐体有效容积利用率下降。按以下步骤计算:

1. 实测信号波动幅度(现场必做)

断开泵输出,保持工艺静止(如关闭进出水阀),记录连续5分钟液位模拟量读数(以PLC数据表或HMI历史趋势为准)。
统计其最大值 $H_{\max}$ 与最小值 $H_{\min}$:
$$ \text{实测抖动峰峰值} = H_{\max} - H_{\min} $$
建议取3倍该值作为死区宽度下限:
$$ \Delta H_{\min} = 3 \times (H_{\max} - H_{\min}) $$
理由:工业信号噪声通常服从正态分布,3σ覆盖99.7%的波动范围。

2. 校核执行机构响应滞后

查看泵从启动到出口流量稳定所需时间 $t_{\text{response}}$(可通过现场计时或水泵特性曲线估算)。若 $t_{\text{response}} = 20\ \text{s}$,且液位变化速率为 $r = 0.5\%\text{/s}$,则在此期间液位自然变化量为:
$$ \Delta H_{\text{process}} = r \times t_{\text{response}} = 0.5 \times 20 = 10\% $$
该值是死区宽度的绝对上限——若 $\Delta H > \Delta H_{\text{process}}$,则泵停机后液位仍会持续上升超过安全高位,失去保护意义。

3. 综合确定最终宽度

取上述两者的中间安全值:
$$ \Delta H = \max\left( \Delta H_{\min},\ 0.5 \times \Delta H_{\text{process}} \right) $$
例如:实测抖动为1.2%,则 $\Delta H_{\min} = 3.6\%$;$\Delta H_{\text{process}} = 10\%$,则 $0.5 \times \Delta H_{\text{process}} = 5\%$。最终取 $\Delta H = 5\%$。

4. 分配上下限位置

  • 若系统以“防溢出”为首要目标(如污水提升泵),将死区上移
    $H_{\text{stop}} = H_{\text{safe\_high}} - \Delta H$,$H_{\text{start}} = H_{\text{safe\_high}}$
    其中 $H_{\text{safe\_high}}$ 是物理最高安全液位(如罐体总高90%处)。
  • 若以“防干抽”为首要目标(如清水池供水泵),将死区下移
    $H_{\text{start}} = H_{\text{safe\_low}} + \Delta H$,$H_{\text{stop}} = H_{\text{safe\_low}}$
    其中 $H_{\text{safe\_low}}$ 是泵允许最低吸水液位(如距泵入口30 cm处对应百分比)。

📌 示例:某消防水池总高5 m,安全高位设为4.5 m(90%),实测液位信号抖动±0.6%(峰峰值1.2%),泵响应时间15 s,液位变化率0.4%/s。
计算得:$\Delta H_{\min} = 3.6\%$,$\Delta H_{\text{process}} = 6\%$,取 $\Delta H = 5\%$。
则:$H_{\text{start}} = 90\%$,$H_{\text{stop}} = 85\%$。


三、PLC程序实现(以主流品牌为例)

所有操作均在梯形图(LAD)或结构化文本(ST)中完成,无需额外模块。

方式1:使用置位/复位双条件(推荐,逻辑清晰)

// ST语言(西门子S7-1200 / 罗克韦尔Logix)
IF "AI_LiquidLevel" >= "H_start" THEN
    "Q_Pump_Start" := TRUE;  // 启动泵
ELSIF "AI_LiquidLevel" <= "H_stop" THEN
    "Q_Pump_Start" := FALSE; // 停止泵
END_IF;

⚠️ 注意:"Q_Pump_Start" 必须为自锁输出点(即控制回路中包含其自身常开触点),否则变为脉冲输出。

方式2:使用SR触发器(西门子专用)

  • S端输入:"AI_LiquidLevel" >= "H_start"
  • R端输入:"AI_LiquidLevel" <= "H_stop"
  • 输出线圈即为泵控制信号。
    ✅ 优势:天然抗抖动,无需编程自锁。

方式3:避免常见陷阱的写法(错误示范与修正)

❌ 错误:使用同一变量反复比较

IF "AI_LiquidLevel" >= 85.0 THEN
    "Q_Pump" := TRUE;
END_IF;
IF "AI_LiquidLevel" <= 85.0 THEN  // 单阈值!死区失效
    "Q_Pump" := FALSE;
END_IF;

✅ 修正:明确区分启停阈值

IF "AI_LiquidLevel" >= 85.0 THEN
    "Q_Pump" := TRUE;
ELSIF "AI_LiquidLevel" <= 75.0 THEN
    "Q_Pump" := FALSE;
END_IF;

四、HMI/SCADA界面配置要点

死区参数必须可在线修改,并具备防误操作机制:

参数名 数据类型 推荐范围 安全约束 备注
H_start REAL 50.0 – 95.0 H_start > H_stop + 1.0 单位:%
H_stop REAL 30.0 – 90.0 H_stop < H_start - 1.0 单位:%
DeadBandLock BOOL TRUE/FALSE TRUE时禁止修改两参数 防运行中误调
DB_Status STRING "ACTIVE" / "INACTIVE" 自动根据 H_start > H_stop 判定 显示在主画面醒目位置

🔒 强制逻辑:在HMI脚本中加入校验——当用户修改任一参数后,若 H_start ≤ H_stop,立即弹窗警告并拒绝保存,同时将 DB_Status 设为 "INACTIVE"


五、投运与验证流程(7步闭环)

  1. 备份原程序:导出当前PLC程序及HMI组态包。
  2. 离线配置参数:在工程软件中写入计算所得 H_startH_stop
  3. 断开泵主回路:仅保留控制回路通电,防止误动作。
  4. 注入模拟信号:用信号发生器向AI通道输入缓慢变化的0–10 V电压,对应0–100%液位。
  5. 观测逻辑动作点:用PLC在线监控功能,确认:
    • 电压升至对应 H_start 时,输出点由0变1;
    • 电压降至对应 H_stop 时,输出点由1变0;
    • 电压在两者之间时,输出点状态严格保持。
  6. 带载测试:恢复泵主回路,在低负荷工况下运行2小时,用HMI趋势记录泵启停时刻及对应液位值,确认启停间隔 ≥ 5分钟。
  7. 存档验证报告:截图保存趋势图、参数设置页、逻辑监控表,标注测试日期与操作员。

六、进阶优化:动态死区(适用于变工况场景)

当系统负荷大幅变化(如白天/夜间供水量差3倍),固定死区会导致:

  • 低负荷时死区过大 → 液位控制松散;
  • 高负荷时死区过小 → 仍可能频启停。

解决方案:根据实时流量动态缩放死区宽度
设当前瞬时流量为 $Q$(单位:m³/h),额定流量为 $Q_{\text{rated}}$,则动态死区为:
$$ \Delta H_{\text{dynamic}} = \Delta H_{\text{base}} \times \left( 0.5 + 0.5 \times \frac{Q}{Q_{\text{rated}}} \right) $$
其中 $\Delta H_{\text{base}}$ 为额定工况下设定的基准死区。
该公式确保:

  • $Q = 0$ 时,$\Delta H = 0.5 \times \Delta H_{\text{base}}$(最小保障);
  • $Q = Q_{\text{rated}}$ 时,$\Delta H = \Delta H_{\text{base}}$(设计值);
  • $Q > Q_{\text{rated}}$ 时,$\Delta H$ 线性增大,增强抗扰性。

💡 实现提示:在PLC中用FC块封装该计算,输入 QQ_rated,输出 H_startH_stop,取代静态常量调用。


启用死区逻辑后,泵平均启停间隔从47秒提升至21分钟,3个月内未发生接触器粘连故障。

评论 (0)

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

扫一扫,手机查看

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