4. 手动整定方法:Ziegler-Nichols法、试凑法,手动整定的步骤与技巧

说实话,现在很多工程师一上来就想着用自整定、用AI算法。但我个人觉得,手动整定是基本功,就像练武要先扎马步一样。你想想看,如果连手动调参的逻辑都不清楚,就算自整定跑出来了,你也不知道它到底好不好,出了问题更不知道怎么修。

这一章,我就把两种最经典的手动整定方法——Ziegler-Nichols法和试凑法,掰开了揉碎了讲清楚。顺便分享一些我在产线上摸爬滚打积累下来的小技巧。

核心观点:手动整定不是为了让你永远手动,而是为了让你理解PID参数的本质。懂了本质,你才能用好自动工具。

手动整定方法知识框架 手动整定方法 Ziegler-Nichols法 步骤1:仅P控制,增大Kp直到等幅振荡 步骤2:记录临界增益Ku和振荡周期Tu 步骤3:查表计算Kp、Ki、Kd 试凑法 步骤1:先调Kp,消除稳态误差 步骤2:加Ki,消除静差但注意积分饱和 步骤3:加Kd,抑制超调但防噪声放大 目标:快速响应 + 无超调 + 稳态无差

4.1 Ziegler-Nichols法:经典中的经典

Ziegler-Nichols法,简称Z-N法,是1942年提出的。别看它年纪大,到现在依然是工业现场最常用的手动整定方法之一。我当年刚入行时,师傅教我的第一套整定方法就是这个。

它的核心思路很简单:先把系统逼到临界稳定状态,然后根据这个状态反推PID参数。

4.1.1 操作步骤

  1. 把积分和微分关掉:设置Ki=0,Kd=0,只用比例控制。
  2. 慢慢增大Kp:给系统一个阶跃指令,观察响应。一开始Kp设小一点,比如0.1,然后逐步增加。
  3. 找到临界点:当系统输出开始出现等幅振荡时,停止增大Kp。记录此时的Kp值为临界增益Ku,振荡周期为Tu。
  4. 查表计算:根据下表计算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

我的经验:Z-N法算出来的参数通常偏激进,超调量可能在10%-30%之间。如果你做的是位置控制,这个超调可能还能接受;但如果是张力控制或者温度控制,我建议把Kp再打8折,Ki和Kd也相应调小一点。

4.1.2 一个实际案例

我记得有一次调试一台包装机的送膜轴。负载惯量变化很大,膜卷从满卷到空卷,惯量能差3倍。我用Z-N法先在小卷(轻载)下做了一次:

  • 临界增益Ku = 12.5
  • 振荡周期Tu = 0.32秒
  • 查表得:Kp = 7.5,Ki = 46.9,Kd = 0.3

上机一试,轻载时响应很快,但重载时振荡了。后来我把Kp降到5.0,Ki降到30,才兼顾了全工况。所以你看,Z-N法给的是起点,不是终点。

注意:有些系统不允许等幅振荡,比如精密加工设备、医疗设备。这时候千万别用Z-N法!强行振荡可能会损坏设备或造成安全事故。这种情况下,请改用试凑法或基于模型的方法。

4.2 试凑法:靠手感,也靠逻辑

试凑法,说白了就是「凭经验调」。但这不是瞎调,是有章法的。我见过很多新手调参数,东调一下西调一下,越调越乱。其实试凑法有固定的顺序和判断标准。

4.2.1 三步走策略

我个人习惯把试凑法分成三步,每一步只调一个参数:

  1. 先调Kp:目标是让系统响应够快,但不要振荡。从0开始慢慢加,直到出现轻微超调(5%以内),然后退回一点。
  2. 再加Ki:目标是消除稳态误差。从0开始加,观察稳态误差是否消失。注意!Ki太大会导致积分饱和,响应变慢甚至振荡。
  3. 最后加Kd:目标是抑制超调、提高稳定性。Kd对噪声很敏感,加多了系统会抖。
参数 增大后的效果 过大的风险
Kp ↑ 响应变快,稳态误差减小 超调增大,系统振荡
Ki ↑ 稳态误差消除更快 积分饱和,响应变慢,低频振荡
Kd ↑ 超调减小,系统更稳定 高频噪声放大,系统抖动

4.2.2 试凑法的判断依据

调参的时候,你盯着示波器或者伺服调试软件的波形图,主要看三个指标:

  • 上升时间:从10%到90%的时间。太长了说明Kp不够。
  • 超调量:峰值超过目标值的百分比。超过10%就要小心了。
  • 稳态误差:稳定后和目标值的偏差。有误差就加Ki。

一个口诀:「Kp管快慢,Ki管准不准,Kd管稳不稳」。每次只动一个参数,动完看波形,记录下变化。这样调出来的参数,你心里是有底的。

4.3 手动整定的通用步骤

不管是Z-N法还是试凑法,手动整定都遵循一套通用的流程。我把它总结成6步:

  1. 准备工作:确认机械连接正常,没有异响,负载在安全范围内。把伺服驱动器恢复出厂设置,或者至少把PID参数归零。
  2. 设置安全限幅:把速度限幅、电流限幅、位置限幅都设小一点。万一参数调崩了,不至于飞车。
  3. 选择方法:如果系统允许振荡,用Z-N法快速得到一组基准参数;如果不允许,用试凑法慢慢来。
  4. 执行整定:按照所选方法的步骤操作,记录每一步的参数和响应波形。
  5. 微调优化:在基准参数基础上,根据实际响应微调。一般Kp调±20%,Ki和Kd调±30%都是正常的。
  6. 验证全工况:在轻载、重载、高速、低速下分别测试,确保参数在全工况下都稳定。

我曾经踩过的坑:有一次我调一台龙门双驱的伺服,只在一个位置做了整定,结果换到另一个位置就开始抖。后来才发现,那个位置正好是丝杠的换向间隙区。所以,一定要在多个位置、多种工况下验证,尤其是机械有间隙或摩擦变化大的场合。

4.4 手动整定的技巧与避坑

最后,分享几个我这些年积累下来的小技巧:

  • 用示波器,别光看指示灯:伺服驱动器的指示灯只能告诉你有没有报警,但波形才能告诉你参数好不好。我习惯同时看速度反馈和位置误差两条曲线。
  • 先调速度环,再调位置环:伺服控制是级联结构,速度环是内环,位置环是外环。内环不稳,外环怎么调都没用。我一般先把速度环调好,带宽做到200Hz以上,再调位置环。
  • Kd要慎用:很多场合其实不需要Kd。比如大惯量负载,Kd的效果不明显;而高噪声环境,Kd反而会引入抖动。我只有在超调实在压不下去的时候才加Kd。
  • 记录参数变化:每次改参数,都记下来改了什么、波形变成了什么样。这样万一调乱了,还能退回去。我习惯用Excel表格记录,调完一个项目,参数表就是最宝贵的资产。

一个实用技巧:如果你用试凑法调了半天都调不好,不妨试试Z-N法先跑一组参数出来,哪怕系统会振荡一下。有了这组参数作为基准,你再往回退,往往比从零开始瞎调要快得多。我管这叫「先振荡,再收敛」。

手动整定,说到底就是「观察-调整-验证」的循环。你调得多了,手感就出来了。看到波形,你大概就知道该加Kp还是加Ki。这种直觉,是任何自动整定算法都给不了你的。