第4章 速度环PID整定:速度环带宽设计、PI参数计算(基于机械参数)、速度环调试步骤与波形分析、速度环常见问题与对策

速度环整定,说白了就是让电机“听话”。你让它转多快,它就转多快,不能抖,不能慢,更不能啸叫。我这些年调过的电机没有一千也有八百,速度环出问题的情况占了七成以上。今天咱们就把这块硬骨头啃下来。

4.1 速度环带宽设计——你到底需要多快的响应?

带宽这个词,听起来很玄乎。其实你可以这么理解:带宽越高,电机对速度指令的响应就越快。但凡事都有代价。

核心原则:速度环带宽通常设置为电流环带宽的1/5到1/10。我个人习惯取1/8左右,留点余量。

为什么不能太高?我踩过这个坑。有一次做伺服项目,客户要求极快的加减速,我把速度环带宽拉到电流环的1/3。结果呢?电机一启动就尖叫,波形上全是高频振荡。后来老老实实降下来,问题就解决了。

带宽设计的几个参考点:

  • 通用伺服:速度环带宽 20-50 Hz
  • 高响应场合:速度环带宽 50-100 Hz(需要配合高刚度机械)
  • 大惯量负载:速度环带宽 5-15 Hz(别硬拉,会抖)

我的经验:如果你不确定带宽设多少,先设20Hz跑起来。观察速度阶跃响应,如果超调小、响应快,再慢慢往上加。每次加5Hz,直到出现振荡为止,然后回调10%。

4.2 PI参数计算——基于机械参数的反推法

很多工程师调PI全靠试,其实有更科学的方法。如果你知道电机的转动惯量J和阻尼系数B,就可以直接算出PI参数。

速度环的传递函数简化模型:

G(s) = Kp * (Ki/s) * (1/(J*s + B))

其中:

  • Kp:比例增益,决定响应速度
  • Ki:积分增益,消除稳态误差
  • J:转动惯量(含负载)
  • B:阻尼系数

我常用的计算公式是这样的:

// 基于带宽设计法
// 设定目标带宽 ωc (rad/s)
// 例如:目标带宽 30Hz → ωc = 2*π*30 ≈ 188.5 rad/s

Kp = J * ωc
Ki = B * ωc

// 如果B未知,可以近似取 Ki = Kp * ωc / 10
// 或者更保守:Ki = Kp * ωc / 20

注意:这个公式的前提是电流环响应足够快(至少是速度环带宽的5倍以上)。如果电流环带宽不够,算出来的参数会偏大,实际调试时还得往下调。

举个例子吧。我之前调一个50W的直流无刷电机,转动惯量J=0.0001 kg·m²,目标速度环带宽30Hz:

ωc = 2 * π * 30 ≈ 188.5 rad/s
Kp = 0.0001 * 188.5 ≈ 0.01885
Ki = 0.01885 * 188.5 / 10 ≈ 0.355

// 实际调试时,Kp从0.01开始试,最终定在0.015
// Ki从0.3开始试,最终定在0.4

你看,理论计算给了你一个很好的起点,但最终还是要靠实际波形微调。

4.3 速度环调试步骤与波形分析

调试步骤我总结为“四步法”,这些年一直这么用,很稳:

  1. 第一步:空载调试
    • 先不给负载,让电机空转
    • Kp从计算值的50%开始,Ki从0开始
    • 给一个阶跃速度指令(比如额定转速的10%)
  2. 第二步:调Kp
    • 观察速度阶跃响应波形
    • 慢慢增加Kp,直到出现轻微超调(约5-10%)
    • 然后回调10-15%
  3. 第三步:调Ki
    • 加入Ki,观察稳态误差是否消除
    • Ki太大,波形会出现低频振荡(像波浪一样)
    • Ki太小,稳态误差消除慢
  4. 第四步:带载验证
    • 加上额定负载,重复以上步骤
    • 通常带载后需要稍微增加Kp(10-20%)

波形怎么看?我教你几个关键点:

波形特征 原因分析 对策
上升沿缓慢,无超调 Kp太小 增加Kp
上升沿快,超调大(>20%) Kp太大 减小Kp
稳态有波动(高频) Kp太大或Ki太大 先减Kp,再减Ki
稳态有波动(低频,像呼吸) Ki太大 减小Ki
稳态误差一直存在 Ki太小或没有Ki 增加Ki

我的习惯:调好之后,给一个方波速度指令(比如从0到1000rpm来回跳),观察5-10个周期。如果每个周期的响应波形都一致,说明参数稳定了。

4.4 速度环常见问题与对策

这些年遇到的速度环问题,翻来覆去就那么几个。我挑三个最常见的说说:

问题一:电机低速抖动

现象:转速低于100rpm时,电机一卡一卡的,像在跳舞。

原因:速度反馈分辨率不够,或者电流环在低速时非线性。

对策:

  • 提高编码器分辨率(如果硬件支持)
  • 在低速段使用M/T法测速,提高低速精度
  • 适当降低Kp,增加Ki,让积分项来平滑

问题二:加减速时过冲严重

现象:给一个阶跃指令,速度冲过头再回来,超调量超过30%。

原因:Kp太大,或者没有加前馈。

对策:

  • 减小Kp,这是最直接的方法
  • 加入速度前馈(Feedforward),让指令直接驱动电流环
  • 使用S曲线加减速,而不是阶跃指令

问题三:带载后速度掉下来

现象:空载时速度稳得很,一加负载转速就往下掉。

原因:Ki不够大,或者电流环限幅了。

对策:

  • 增加Ki,让积分项快速补偿负载转矩
  • 检查电流环的限幅值是否太小
  • 如果负载变化频繁,考虑加入负载转矩前馈

我曾经踩过的坑:有一次调一个风机,速度环怎么调都抖。折腾了两天,最后发现是机械共振。电机安装底座螺丝松了,导致机械谐振频率刚好落在速度环带宽内。拧紧螺丝,问题立刻消失。所以,遇到调不好的问题,先检查机械!

最后说一句:速度环整定没有万能公式。理论计算给你一个起点,波形分析给你方向,剩下的就是耐心和细心。调多了,你自然就有感觉了。