第四节 阶跃响应法:Ziegler-Nichols第二法
聊完了临界比例度法,咱们来看看另一种经典方法——阶跃响应法,也就是Ziegler-Nichols第二法。
说实话,我个人更喜欢这个方法。为什么?因为它不需要让系统先震荡起来。你想想看,有些工业现场,让系统震荡?那简直是灾难。蒸汽管道压力震荡一下,搞不好阀门都要跳掉。
这个方法的核心思路很简单:给系统一个开环阶跃信号,看它怎么响应,然后从响应曲线上读出几个关键参数,直接算出PID参数。
4.1 什么时候用第二法?
我遇到过不少现场工程师,上来就问:「老师,我该用第一法还是第二法?」
我的建议是:
- 系统允许闭环震荡 → 用第一法(临界比例度法)
- 系统不允许震荡,或者震荡很危险 → 用第二法(阶跃响应法)
- 系统本身是开环稳定的 → 第二法特别合适
说白了,第二法就是给系统做个「体检」——给它一个刺激,看它怎么反应。
4.2 操作步骤:三步走
嗯,这里要注意,操作步骤其实就三步,但每一步都有坑。
第一步:做开环阶跃实验
把控制器切到手动模式,让系统处于开环状态。然后给执行器一个阶跃信号——比如阀门开度突然从30%跳到50%。
记录下被控变量的变化曲线。这就是开环阶跃响应曲线。
⚠️ 我曾经踩过的坑:阶跃幅度不能太大,也不能太小。太大可能让系统进入非线性区,太小又看不出明显响应。一般建议阶跃幅度为满量程的5%~15%。
第二步:从曲线上读参数
拿到响应曲线后,我们需要读出三个关键参数:
- K —— 稳态增益(最终变化量 ÷ 阶跃幅度)
- T —— 时间常数(从开始到达到63.2%稳态值的时间)
- τ —— 纯滞后时间(从阶跃开始到系统开始响应的时间)
这里我画了一张图,帮你理解这三个参数在曲线上怎么找:
第三步:查表计算PID参数
Ziegler和Nichols当年通过大量实验,总结出了下面这张表:
| 控制器类型 | Kp | Ti | Td |
|---|---|---|---|
| P | T / (K · τ) | — | — |
| PI | 0.9 · T / (K · τ) | 3.3 · τ | — |
| PID | 1.2 · T / (K · τ) | 2.0 · τ | 0.5 · τ |
💡 举个例子:
假设你从曲线上读出:K=2, T=10秒, τ=2秒
那么PID参数就是:
- Kp = 1.2 × 10 / (2 × 2) = 3.0
- Ti = 2.0 × 2 = 4.0 秒
- Td = 0.5 × 2 = 1.0 秒
4.3 实际应用中的坑
我在现场调试时,发现很多新手容易犯这几个错误:
- 曲线没读准——尤其是τ(纯滞后时间),很多人把系统惯性响应的时间也算进去了。记住:τ是系统「完全没反应」的那段时间。
- 阶跃幅度不合适——太小了信噪比低,太大了可能触发保护。
- 忽略了噪声——如果现场噪声大,响应曲线毛刺多,建议先做滤波处理。
🔧 我的小技巧:
如果现场条件允许,可以多做几次阶跃实验,取平均值。这样算出来的参数更可靠。
另外,算出来的参数只是「初值」,投入闭环后还需要微调。别指望一次就能整定到完美。
4.4 第二法的局限性
说实话,第二法也不是万能的。它有几个前提条件:
- 系统必须是自衡的(开环稳定)
- 响应曲线必须是S形(一阶惯性+纯滞后)
- 不能有太大的非线性
如果系统不满足这些条件,算出来的参数可能不太靠谱。这时候,我建议你结合其他方法一起用,或者直接用试凑法慢慢调。
好了,阶跃响应法就讲到这里。这个方法虽然经典,但用好了确实能省不少事。下次你在现场遇到一个开环稳定的系统,不妨试试看。
可可精品资料库