苏州相城区一家注塑厂的老问题:料筒设定 220℃,开机升温冲到 235℃ 才慢慢回落,超调 15℃ 持续近十分钟。对 PC 料来说,这个温度区间已经接近降解边缘,开机头几模产品发黄只能报废。温控器本身没坏,问题出在默认 PID 参数与这台机的加热特性不匹配,且没有抗积分饱和处理。这篇记录我们整改的完整过程:阶跃响应整定、积分分离、输出限幅,附可直接套用的 C# 增量式 PID 代码。
一、先搞清楚:超调的锅该谁背
升温超调大,现场最常见的三个根因,排查顺序不能乱:
根因1:积分饱和
升温初期偏差大,积分项疯狂累积;温度到位时积分已经"攒过头",只能靠超调把积分耗回去。开机过冲的典型元凶。
根因2:Kp 偏大
比例增益过大,接近设定值时输出收不住。特征:升温快、过冲后回落也快,来回振荡两三次才稳。
根因3:传感器滞后
热电偶没贴紧料筒壁或装得太深,测到的温度滞后于真实料温,控制器"看到"的永远慢半拍。硬件问题,改参数没用。
这台机的情况:热电偶安装位置检查过没问题,温控器用的是出厂默认参数(通用值,没针对加热圈功率和料筒热容做过整定)。所以整改方向明确:离线整定 + 软件侧抗饱和。
二、阶跃响应法:一次实验拿到三个特征参数
整定方法我们选阶跃响应法(也叫反应曲线法),比试凑法快,比继电反馈法信息量大。步骤:
- 料筒处于室温稳定状态,手动给加热圈一个固定输出(比如 40%),开环加热;
- 上位机以 1 秒周期记录温度,画出升温曲线;
- 在曲线拐点作切线,读出三个特征参数:纯滞后时间 τ、时间常数 T、稳态温升对应的增益 K;
- 按经验公式算出 Kp、Ti、Td 初值,再上机微调。
这台 250T 注塑机料筒中段实测:τ ≈ 45 秒,T ≈ 210 秒,按公式算出的初值 Kp=6.2、Ti=135s、Td=34s。整定过程一定要留记录,我们用的表格格式:
| 轮次 | Kp | Ti (s) | Td (s) | 超调量 | 稳定时间 | 备注 |
|---|---|---|---|---|---|---|
| 出厂默认 | 8.0 | 240 | 60 | +15℃ | >10min | 开机过冲严重 |
| 阶跃初值 | 6.2 | 135 | 34 | +6℃ | 7min | 有改善,仍超调 |
| 加积分分离 | 6.2 | 135 | 34 | +2.5℃ | 6min | 开机过冲基本消除 |
| 终版微调 | 5.8 | 150 | 38 | +1.5℃ | 5.5min | 验收通过,±1.5℃ 稳态 |
▲ 整定记录表必须存档:换料换色、季节变化导致环境温差大时,按这张表回调参数比重新整定快得多。
三、积分分离 + 抗积分饱和:开机过冲的软件解法
光整定参数还不够。升温初期偏差动辄上百摄氏度,积分项持续累加,等温度接近设定值时积分已经饱和——这就是"积分饱和",超调是它耗散能量的必然结果。两个标准对策:
积分分离:偏差大于阈值时(比如 |e| > 20℃)暂停积分累积,只用比例+微分把温度拉到大致区间;偏差进入阈值后再启用积分消除静差。
抗积分饱和(Back-Calculation):输出被限幅截断时,把截断量反馈回来修正积分项,不让积分继续往死里攒。
我们用的是增量式 PID,输出变化量而非绝对量,无扰切换和限幅处理都更干净:
public class PidController { private double _kp, _ki, _kd; // 由整定结果填入 private double _e1, _e2; // 前两次偏差 private double _output; // 当前输出(0~100%) private double _integralGate = 20; // 积分分离阈值(℃) public double Calc(double setpoint, double pv) { double e = setpoint - pv; // 增量式:Δu = Kp*(e-e1) + Ki*e + Kd*(e-2e1+e2) double delta = _kp * (e - _e1) + _kd * (e - 2 * _e1 + _e2); // 积分分离:偏差大时不累加积分项,防开机过冲 if (Math.Abs(e) < _integralGate) delta += _ki * e; _output += delta; // 输出限幅:0~100%,同时做抗饱和——被截断时输出不再累加 _output = Math.Clamp(_output, 0, 100); _e2 = _e1; _e1 = e; return _output; } }
四、输出侧两道保险:限幅与变化率限制
温控系统除了"控得准",还要"控得安全"。上位机输出到 PLC 之前加两道限制:
- 输出限幅:加热圈功率上限按设备铭牌设,这台机设为 85%(留 15% 余量给固态继电器寿命);
- 变化率限制:相邻两个周期输出变化不超过 15%,防止传感器瞬间跳变导致输出猛冲——温度信号先做 3 点中值滤波,再进 PID;
- 超温硬保护:料筒温度超过设定值 +10℃ 持续 5 秒,上位机直接强制输出清零并报警。这条逻辑写在软件里,但现场同时保留了机械式超温保护器,软件保护永远不能替代硬件保护。
五、整改结果与验收口径
终版参数运行一周后的验收数据:开机升温超调 +1.5℃,5 分半进入 ±1.5℃ 稳态带;连续生产 8 小时,四段料筒温度波动 ±1℃ 以内;开机头两模产品不再发黄,工艺员把开机废模数从"固定报废 3 模"改成了 1 模。
最后总结成三句话:超调先查积分饱和,整定先做阶跃实验,安全靠限幅加硬件兜底。温控是慢系统,参数整定急不得,但一次整定到位省的是客户每天开机时的真金白银。
