第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 速度环调试步骤与波形分析
调试步骤我总结为“四步法”,这些年一直这么用,很稳:
- 第一步:空载调试
- 先不给负载,让电机空转
- Kp从计算值的50%开始,Ki从0开始
- 给一个阶跃速度指令(比如额定转速的10%)
- 第二步:调Kp
- 观察速度阶跃响应波形
- 慢慢增加Kp,直到出现轻微超调(约5-10%)
- 然后回调10-15%
- 第三步:调Ki
- 加入Ki,观察稳态误差是否消除
- Ki太大,波形会出现低频振荡(像波浪一样)
- Ki太小,稳态误差消除慢
- 第四步:带载验证
- 加上额定负载,重复以上步骤
- 通常带载后需要稍微增加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,让积分项快速补偿负载转矩
- 检查电流环的限幅值是否太小
- 如果负载变化频繁,考虑加入负载转矩前馈
我曾经踩过的坑:有一次调一个风机,速度环怎么调都抖。折腾了两天,最后发现是机械共振。电机安装底座螺丝松了,导致机械谐振频率刚好落在速度环带宽内。拧紧螺丝,问题立刻消失。所以,遇到调不好的问题,先检查机械!
最后说一句:速度环整定没有万能公式。理论计算给你一个起点,波形分析给你方向,剩下的就是耐心和细心。调多了,你自然就有感觉了。