4. 速度环PID参数整定:三种实战方法

说到PID参数整定,很多新手第一反应就是「调参玄学」。其实不然,整定是有章可循的。我个人习惯把整定方法分成三类:手动整定、Ziegler-Nichols法、基于模型的整定。每种方法各有千秋,咱们一个一个聊。

速度环PID参数整定方法体系 PID参数整定 手动整定法 Ziegler-Nichols法 基于模型的整定 先调P → 再加I → 最后D 经验试凑,直观有效 临界比例度法 查表计算,系统化 电机参数辨识 零极点对消 从经验到理论,逐步进阶

4.1 手动整定方法:老工程师的看家本领

手动整定,说白了就是靠经验和直觉去试。我刚入行时觉得这方法太土,后来才发现——最土的方法往往最实用。尤其是在现场调试,电脑都没带,就靠一个示波器加手改参数。

核心思路:先P后I再D,逐环突破

具体步骤是这样的:

  1. 先把I和D置零,只保留比例项P。
  2. 从小到大增加P,直到系统出现等幅振荡。
  3. 记录此时的P值(记为Ku)和振荡周期Tu
  4. 取P的60%~70%作为最终比例增益。
  5. 然后加入积分项I,从大到小调整,消除静差。
  6. 最后加微分项D,抑制超调。

我的经验:手动整定最怕什么?怕你调着调着忘了初始值。我习惯每调一次参数,就在代码注释里记一笔。比如 // P=0.5, I=0.01, 2024-03-15, 空载。回头翻起来特别清楚。

举个例子,我之前调一个200W的直流无刷电机,空载时P从0.1开始加,到0.8时电机开始嗡嗡响,再加大到1.2就振荡了。好,Ku=1.2,那我取P=0.8。然后加I,从0.05往下试,到0.02时静差基本消失。最后加了一点点D=0.001,超调从15%降到了5%以内。

注意:手动整定对经验要求高,新手容易把参数调得「看似稳定,实则临界」。我曾经遇到过一位同事,调了一下午觉得参数完美,结果一加载就啸叫——原来是P太大,系统处于临界稳定状态。

4.2 Ziegler-Nichols法:系统化的整定利器

Ziegler-Nichols法(简称ZN法)是1942年提出的,到现在快100年了,依然活跃在工业界。为什么?因为它把整定这件事从「艺术」变成了「技术」

ZN法有两种常见形式:

  • 临界比例度法(闭环整定)
  • 反应曲线法(开环整定)

咱们重点讲临界比例度法,因为速度环常用这个。

临界比例度法步骤

  1. 系统闭环,I和D置零。
  2. 逐渐增大P,直到系统输出出现等幅持续振荡
  3. 记录此时的临界增益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

举个例子:假设你测得Ku=2.0,Tu=0.1秒。用PI控制器的话,Kp=0.9,Ki=0.9×1.2/0.1=10.8。嗯,这个I有点大,实际使用时可以适当折中。

ZN法的好处是有据可依,不用全靠猜。但缺点也很明显——它给出的参数往往偏「激进」,超调较大。我一般把ZN法算出来的参数作为初始值,然后手动微调。

避坑指南:我曾经在一个高速主轴电机上直接用ZN法参数,结果一启动就过流保护。后来发现,ZN法适用于线性系统,而电机在低速和高速时特性差异很大。所以,ZN法算完一定要做限幅,尤其是积分项。

4.3 基于模型的整定:从物理出发

如果你手头有电机的详细参数(电阻、电感、转动惯量、反电动势常数等),那就可以用基于模型的方法。这种方法精度最高,但也最「麻烦」——你得先建模。

速度环的简化模型可以写成:

G(s) = Kt / (J * s + B)

其中:

  • Kt:转矩常数
  • J:转动惯量
  • B:阻尼系数

基于这个模型,我们可以用零极点对消的方法来设计PID。说白了,就是用控制器的零点去抵消被控对象的极点。

设计思路:如果被控对象是Kt/(J*s+B),那控制器可以设计成(J*s+B)/Kt的形式,这样整个闭环就变成了一个纯积分环节,响应特性完全由你决定。

具体实现时,我一般这样做:

  1. 先辨识电机参数。用阶跃响应法测出时间常数τ和增益K。
  2. 根据τ和K计算PID参数。
  3. 在仿真中验证,再烧录到实际系统。

举个例子,我之前做一个AGV小车的驱动轮,电机参数是:Kt=0.12 Nm/A,J=0.0005 kg·m²,B=0.001 Nm·s/rad。算出来的PI参数是Kp=4.2,Ki=8.4。上机实测,效果比ZN法好很多——超调只有3%,调节时间0.2秒。

注意:基于模型的整定高度依赖模型精度。如果你的电机参数是手册上抄的,那算出来可能偏差很大。我建议实测参数,哪怕用万用表测个电阻,也比纯理论值靠谱。

三种方法怎么选?

我个人的建议是:

  • 现场调试、时间紧 → 手动整定,快准狠。
  • 新项目、没经验 → ZN法打底,再微调。
  • 高性能、有参数 → 基于模型,一步到位。

其实这三种方法不是互斥的。我经常混合使用:先用ZN法算个大概,再用模型法优化,最后手动微调收尾。你想想看,工具是死的,人是活的,怎么顺手怎么来。

最后说一句:不管用哪种方法,整定完一定要做鲁棒性测试——空载、满载、加减速、正反转,都跑一遍。我曾经吃过亏,空载调好了,一加载就振荡,就是因为没考虑负载变化对惯量的影响。


专注资料整理