4、Ziegler-Nichols整定法:经典方法在纳米尺度还管用吗?实测告诉你。
做运动控制的人,没人不知道Ziegler-Nichols法。
这套1942年提出的方法,堪称PID整定的“老黄历”。我入行时第一个项目就用它调伺服电机,效果还不错。但后来转到纳米定位平台,我心里也犯嘀咕——这老古董,在纳米尺度还能打吗?
今天咱们就用实测数据说话。不吹不黑,看看ZN法到底还行不行。
4.1 ZN法的核心逻辑:先让它振荡
ZN法的思路其实很粗暴。说白了,就是先把系统推到临界振荡状态,然后根据振荡参数反推PID参数。
具体分两步:
- 找临界增益Ku和临界周期Tu:只保留比例项,慢慢增大Kp,直到系统输出出现等幅振荡。记录此时的Kp为Ku,振荡周期为Tu。
- 查表算参数:根据Ku和Tu,按ZN法给出的经验公式计算P、PI、PID参数。
我习惯用下面这张表,贴出来供你参考:
| 控制器类型 | Kp | Ki | Kd |
|---|---|---|---|
| P | 0.5 * Ku | - | - |
| PI | 0.45 * Ku | 1.2 * Kp / Tu | - |
| PID | 0.6 * Ku | 2 * Kp / Tu | Kp * Tu / 8 |
嗯,这里要注意:这个表是针对模拟控制器的。数字控制器采样率不够时,算出来会偏。
4.2 纳米平台上的实测:结果有点意外
我在一台压电纳米定位台上做了测试。平台行程100μm,分辨率0.1nm,带电容传感器闭环。
先按ZN法走一遍流程:
- 逐渐增大Kp,到15.2时出现等幅振荡。记录Ku=15.2,Tu=2.3ms。
- 按PID公式算:Kp=9.12,Ki=7930,Kd=0.00262。
- 上机跑一下,结果……
振荡了! 而且振幅远超预期。我当时的表情,你想想看,就跟吃了苍蝇一样。
为什么会这样?
我分析了一下,问题出在三个地方:
- 纳米平台的迟滞非线性:压电陶瓷的迟滞效应,让临界振荡点变得不稳定。今天测的Ku=15.2,明天可能变成14.8。
- 采样噪声干扰:纳米级位移信号信噪比低。临界振荡时,噪声会掩盖真实振荡周期。我测的Tu=2.3ms,实际可能只有1.8ms。
- 执行器饱和:压电驱动器输出有限。ZN法假设系统是线性的,但纳米平台在边界处会饱和,导致参数计算偏差。
4.3 实测数据对比:ZN法 vs 手动整定
为了给你一个直观感受,我做了三组对比测试。测试条件完全一样:阶跃响应100nm,采样率20kHz。
| 整定方法 | 上升时间 | 超调量 | 稳态误差 | 调节时间 |
|---|---|---|---|---|
| ZN法(原始) | 0.8ms | 42% | ±3.2nm | 12ms |
| ZN法(修正后) | 1.2ms | 18% | ±1.1nm | 5ms |
| 手动整定 | 1.5ms | 5% | ±0.3nm | 3ms |
看到没?原始ZN法超调42%,这在纳米定位里是灾难级的。我修正后的ZN法(把Kp降到0.3Ku,Ki减半)好一些,但跟手动整定比,还是差一截。
不过话说回来,ZN法作为初始值,还是有价值的。我现在的习惯是:先用ZN法算一组参数,然后手动微调。这样比从零开始盲调快得多。
4.4 纳米尺度下的ZN法改良建议
如果你非要用ZN法,我建议做三点改良:
- 加低通滤波:在测量临界振荡时,对位移信号做50Hz低通滤波。滤掉高频噪声,Tu才能测准。
- 降比例系数:纳米平台用ZN法时,Kp建议取0.3~0.4倍的Ku,而不是0.6。我试过多次,这样超调能压到20%以内。
- 积分项限幅:纳米平台的积分饱和问题很严重。我给Ki加了个限幅器,最大输出不超过驱动器满量程的10%。
4.5 知识体系:ZN法在纳米定位中的定位
下面这张图,是我对ZN法在纳米定位中应用的理解。你看完就明白它该放在哪个位置了。
说白了,ZN法在纳米尺度下不能直接用。但它作为整定的“第一枪”,还是有价值的。我个人建议把它当作参数初始化的工具,而不是最终方案。
最后说一句:如果你追求纳米级的定位精度,别指望任何公式能一步到位。实测、迭代、微调,这才是王道。ZN法给你一个起点,剩下的路,得自己走。
公众号:蓝海资料掘金营,微信deep3321