1. 速度环控制基础
大家好,我是老张。做伺服驱动这块十几年了,今天咱们聊聊速度环。说实话,速度环是整个伺服系统里最「承上启下」的一环。你想想看,位置环要它跑多快,电流环要它出多大力,它夹在中间,既要听话又要稳当。
1.1 速度环在伺服系统中的角色
速度环的核心任务就一个:让电机按照你给定的速度指令转起来,而且转得稳。听起来简单?我在项目里见过太多「速度抖得像筛子」的案例了。
具体来说,速度环干三件事:
- 跟踪指令:你给1000rpm,它就得跑到1000rpm,误差越小越好
- 抑制扰动:负载突然变了,或者摩擦力不均匀,它得扛得住
- 平滑输出:不能因为编码器分辨率不够,就让速度波形一跳一跳的
我个人习惯:调速度环之前,先用手转动电机轴,感受一下机械阻力。如果手感「卡顿」或者「松紧不一」,那速度环多半调不好。先解决机械问题,再谈控制算法。
1.2 速度环与电流环、位置环的关系
这三者的关系,说白了就是「三层嵌套」的结构。我画个图你一看就明白:
你看这个结构,位置环在最外面,速度环在中间,电流环在最里面。每个环都有自己的任务:
| 控制环 | 输入 | 输出 | 带宽要求 |
|---|---|---|---|
| 位置环 | 位置指令 | 速度指令 | 最低(通常10-50Hz) |
| 速度环 | 速度指令 | 电流指令 | 中等(通常50-200Hz) |
| 电流环 | 电流指令 | PWM占空比 | 最高(通常500-2000Hz) |
一个小经验:速度环的带宽通常设置为电流环的1/5到1/10。我曾经在一个项目里把速度环带宽设得太高,结果电流环跟不上,系统直接啸叫了。嗯,那次教训挺深刻的。
1.3 速度环的典型应用场景
速度环的应用场景,我归纳为三大类。每一类我都踩过坑,咱们一个一个说。
场景一:恒速控制
这是最常见的场景。比如传送带、主轴电机、风机水泵。要求就是:给定一个速度,电机就老老实实跑这个速度。
我记得有个项目是做印刷机的主轴驱动。印刷辊筒要求速度波动小于0.1%,而且负载会随着纸张厚度变化。当时我用了PI控制器加前馈补偿,才勉强达标。说白了,恒速控制考验的是速度环的抗扰动能力。
场景二:速度跟随
这种场景下,速度指令是实时变化的。比如机器人关节、数控机床的进给轴。要求是:指令变,速度就得跟着变,延迟越小越好。
我曾经调试一个六轴机器人的腕部关节,速度指令是正弦波。一开始速度环带宽不够,相位滞后严重,机器人画圆画成了椭圆。后来把速度环带宽从80Hz提到150Hz,才勉强跟上。
注意:速度跟随场景下,带宽不是越高越好。带宽太高,噪声会被放大,速度波形反而变差。我见过有人把带宽调到200Hz以上,结果速度波形全是毛刺。
场景三:速度与位置切换
有些应用需要速度环和位置环来回切换。比如点焊机的电极头:快速接近工件时用速度环,接触后切换到位置环进行压力控制。
这种场景最麻烦的是切换瞬间的冲击。我建议在切换时做「无扰切换」——把速度环的输出作为位置环的初始值,这样就不会有跳变。
1.4 速度环的典型结构
说了这么多,咱们看看速度环具体长什么样。下面是一个典型的PI速度环代码框架:
// 速度环PI控制器 - 典型实现
typedef struct {
float Kp; // 比例增益
float Ki; // 积分增益
float integral; // 积分累加器
float limit; // 输出限幅
float Ts; // 控制周期
} SpeedLoop_t;
float SpeedLoop_Update(SpeedLoop_t *loop, float speed_ref, float speed_fb) {
float error = speed_ref - speed_fb;
// 比例项
float p_out = loop->Kp * error;
// 积分项 - 带抗饱和
loop->integral += loop->Ki * error * loop->Ts;
// 积分限幅
if (loop->integral > loop->limit) loop->integral = loop->limit;
if (loop->integral < -loop->limit) loop->integral = -loop->limit;
// 总输出
float output = p_out + loop->integral;
// 输出限幅
if (output > loop->limit) output = loop->limit;
if (output < -loop->limit) output = -loop->limit;
return output;
}
这里有个坑:积分限幅一定要做,而且限幅值要小于输出限幅。我曾经在一个项目里忘了做积分限幅,结果积分项越积越大,输出饱和后恢复不过来,电机直接飞车了。嗯,那次差点把设备搞坏。
1.5 速度环的性能指标
评价一个速度环好不好,我一般看三个指标:
- 带宽:决定了系统能响应多快的指令变化。带宽越高,响应越快,但噪声也越容易被放大。
- 稳态精度:速度稳定后的误差大小。纯比例控制会有静差,加积分才能消除。
- 抗扰动能力:负载突变时,速度跌落多少、恢复多快。这个指标在实际项目中往往比带宽更重要。
这三个指标其实是互相制约的。你想提高带宽,可能噪声就大了;你想提高抗扰动能力,可能稳态精度就差了。调速度环,说白了就是在这些指标之间找平衡。
我个人习惯:先保证稳态精度,再调抗扰动,最后才考虑带宽。因为大多数应用场景下,稳态精度是硬指标,带宽是软指标。带宽差一点,顶多响应慢一点;稳态精度差,产品可能直接不合格。
好了,这一章咱们把速度环的基础讲完了。下一章我会详细讲速度环的数学模型和传递函数,到时候咱们用公式说话,把「为什么这么调」讲清楚。
公众号:蓝海资料掘金营,微信deep3321