PID参数整定方法:手动整定法、齐格勒-尼科尔斯法、基于模型的整定方法

PID调参这事儿,说白了就是给机器人关节找三个数——比例、积分、微分。这三个数配好了,电机指哪打哪;配不好,要么抖得像筛糠,要么慢得像蜗牛。

我入行那会儿,师父扔给我一套电机和一句「自己试」。结果我调了三天,电机一直在嗡嗡乱叫。后来才明白,整定方法是有套路的。今天我把三种最常用的方法掰开揉碎了讲给你听。

核心观点:没有万能的方法。手动整定适合快速验证,齐格勒-尼科尔斯法适合经验不足时快速上手,基于模型的方法适合追求极致性能的场景。

一、手动整定法——最原始也最实用

手动整定,说白了就是靠感觉和经验。先把I和D设为0,只调P,让系统开始震荡,然后慢慢加D抑制震荡,最后加I消除静差。

我个人习惯按这个步骤来:

  1. 调P(比例):从0开始慢慢增大,直到系统出现等幅震荡。这时候的P值记下来,叫临界增益Ku。
  2. 调D(微分):加入微分项,抑制震荡。D太小没效果,D太大会引入噪声。我一般从Ku的1/8开始试。
  3. 调I(积分):最后加积分,消除稳态误差。I太大会导致超调,太小又消除不了静差。

我的经验:手动整定最忌讳「贪」。一次只调一个参数,调完观察10秒再动下一个。我曾经同时调P和I,结果系统乱成一锅粥,花了两个小时才恢复。

手动整定的优点很明显——不需要数学模型,现场就能调。缺点也很致命——依赖经验,不同人调出来的结果天差地别。

二、齐格勒-尼科尔斯法——工程师的救星

1942年,两个工程师Ziegler和Nichols搞出了一套公式。这套公式让调参从「玄学」变成了「科学」。我当年第一次用这个方法时,感觉就像开了挂。

齐格勒-尼科尔斯法分两种:

方法一:阶跃响应法(开环)

给系统一个阶跃输入,记录响应曲线。从曲线上读出三个参数:

  • L:滞后时间(从输入到输出开始变化的时间)
  • T:时间常数(输出变化到63.2%的时间)
  • K:稳态增益(输出变化量/输入变化量)

然后套公式:

参数 公式
Kp 1.2 × T / (K × L)
Ki 0.6 / L
Kd 0.5 × L

方法二:临界振荡法(闭环)

只保留比例项,增大P直到系统等幅振荡。记录临界增益Ku和振荡周期Tu。

参数 公式
Kp 0.6 × Ku
Ki 1.2 × Ku / Tu
Kd 0.075 × Ku × Tu

注意:齐格勒-尼科尔斯法给出的参数只是「起点」,不是「终点」。我遇到过很多次,套完公式系统确实稳定了,但超调量太大。这时候需要手动微调,一般把Kp降低20%-30%就能改善。

三、基于模型的整定方法——追求极致性能

如果你手头有系统的数学模型,那就可以用更精确的方法。说白了,就是先建模,再算参数。

常用的模型整定方法包括:

  • 极点配置法:把闭环极点放到期望位置,反推PID参数
  • 内模控制法(IMC):基于过程模型设计控制器,只有一个可调参数
  • 最优控制法:定义性能指标(如ITAE、ISE),用优化算法找最优参数

举个例子,用极点配置法整定一个二阶系统:

系统传递函数:G(s) = ωn² / (s² + 2ζωn s + ωn²)

期望闭环极点:s = -α ± jβ

通过求解特征方程,得到:
Kp = (α² + β² - ωn²) / ωn²
Ki = 2αωn²
Kd = (2α - 2ζωn) / ωn²

我的建议:如果你做的是工业级产品,一定要用基于模型的方法。我在做六轴机器人关节控制时,手动整定只能做到±0.5°精度,换成极点配置后直接干到±0.05°。但前提是——模型要准。

三种方法对比

方法 优点 缺点 适用场景
手动整定 不需要模型,现场可调 依赖经验,耗时长 快速验证、调试初期
齐格勒-尼科尔斯 有公式可循,上手快 超调大,需要二次微调 经验不足时、快速整定
基于模型 精度高,可优化 需要准确模型 高性能要求、产品级应用

知识体系框架

下面这张图帮你理清三种方法的关系和选择逻辑:

PID参数整定方法体系 PID参数整定 手动整定法 齐格勒-尼科尔斯法 基于模型整定 调P 调D 调I 阶跃响应法 临界振荡法 极点配置 内模控制 最优控制 选择建议 • 调试初期、快速验证 → 手动整定 • 经验不足、快速上手 → 齐格勒-尼科尔斯法 • 追求极致性能、产品级应用 → 基于模型整定

避坑指南

做PID整定这些年,我踩过的坑不少。挑几个典型的说说:

  • 积分饱和:我曾经在调一个大型关节时,积分项积累太大,导致电机一启动就冲过头。解决办法是加积分限幅或者用抗积分饱和算法。
  • 微分噪声放大:微分项对高频噪声特别敏感。我建议在微分项前加一个低通滤波器,截止频率设成振荡频率的5-10倍。
  • 参数耦合:P、I、D三个参数不是独立的。你调了P,可能I和D也要跟着动。我习惯每次只动一个参数,观察完整一个周期再动下一个。

重要提醒:整定前一定要确认系统是稳定的。如果系统本身就不稳定,先加一个内环稳定它,再整定外环的PID。我曾经跳过这一步,结果参数越调越乱,最后发现是机械结构有间隙。

好了,三种方法都讲完了。手动整定是基本功,齐格勒-尼科尔斯是捷径,基于模型是进阶。你根据自己手头的项目选一种,先跑起来再说。参数不是一次就能调好的,慢慢来,总会找到感觉的。