1. 速度环基础:什么是速度环?它在伺服系统中的位置与关系

大家好,我是老张。搞伺服驱动调试十几年了,今天咱们聊聊速度环。

很多刚入行的朋友问我:“张工,速度环到底是个啥?”

说白了,速度环就是伺服驱动器里负责控制电机转速的那个闭环。你给电机一个目标转速,比如每分钟3000转,速度环就负责让电机实际转速死死咬住这个目标,别跑偏。

核心定义:速度环(Speed Loop)是一个闭环控制系统,它实时检测电机当前转速,与目标转速比较,计算出误差,然后通过PID调节器输出控制量,让电机转速快速、平稳地跟随目标值。

1.1 伺服系统的“三环架构”

我习惯把伺服驱动器比作一个三层小楼。从上到下分别是:

  • 位置环(最顶层)——管位置,比如“走到第1000个脉冲的位置”。
  • 速度环(中间层)——管速度,比如“以3000转/分的速度运行”。
  • 电流环(最底层)——管力矩,比如“输出2安培电流产生力矩”。

这三层是嵌套关系。位置环的输出,就是速度环的目标;速度环的输出,就是电流环的目标。一层套一层,像俄罗斯套娃。

为什么会这样设计?你想想看,如果直接让位置环去控制电流,那电机转起来会非常“愣”,一冲一冲的,根本没法用。中间加个速度环,相当于加了个“缓冲器”,让运动更平滑。

伺服系统三环架构 位置环(最外层) 控制位置 / 输出速度目标 速度环(中间层) 控制速度 / 输出电流目标 电流环(最内层) 控制电流 / 输出PWM占空比 说明:外层环的输出 = 内层环的目标值,层层嵌套 位置环→速度环→电流环,响应速度逐层加快

1.2 速度环与位置环的关系

位置环是老大,速度环是老二。位置环说“我要去那里”,速度环就负责“用多快的速度去”。

我遇到过不少调试案例,位置环参数调得挺好,但电机一跑就抖。查了半天,原来是速度环没调好。速度环不稳,位置环再努力也白搭。

对比项 位置环 速度环
控制对象 位置(角度/位移) 速度(转速/线速度)
反馈来源 编码器位置信号 编码器速度信号(微分或M/T法)
响应速度 较慢(几十毫秒级) 较快(几毫秒级)
典型带宽 10~50 Hz 100~500 Hz
输出 速度指令 电流指令(转矩指令)

你看这个表就明白了。位置环的带宽比速度环低一个数量级。这意味着速度环必须比位置环“跑得快”,才能及时响应位置环的指令变化。

个人经验:我调试时有个习惯——先调好速度环,再调位置环。速度环稳了,位置环基本不会出大问题。反过来,如果位置环怎么调都抖,八成是速度环没伺候好。

1.3 速度环与电流环的关系

电流环是速度环的“执行层”。速度环说“我需要这么大的力矩”,电流环就负责“输出这么大的电流”。

电流环在三环中响应最快,带宽通常能达到1~3 kHz。它直接控制电机绕组里的电流,也就是直接控制力矩。

我曾经遇到一个案例:客户说电机低速时一顿一顿的。我一看,速度环参数没问题,但电流环的PI参数太软了,导致力矩响应慢。把电流环的积分时间调小一点,问题立刻解决。

注意:电流环的带宽不能设得太高,否则容易引起电流震荡,甚至烧毁驱动器。一般建议电流环带宽不超过PWM开关频率的1/10。

1.4 为什么速度环这么重要?

我个人的理解是:速度环是整个伺服系统的“脊梁骨”。

  • 承上启下:它承接位置环的指令,又驱动电流环执行。
  • 决定动态性能:系统的响应速度、抗扰动能力、平稳性,大半靠速度环。
  • 影响定位精度:速度环调得好,位置环才能精准定位。速度环有静差,位置环就会过冲或欠冲。

说白了,速度环调好了,这台伺服就成功了一半。很多所谓的“伺服抖动”、“跟踪误差大”、“响应慢”问题,根源都在速度环。

1.5 速度环的典型结构

一个标准的速度环包含以下几个部分:

  1. 速度给定——来自位置环的输出或上位机直接指令。
  2. 速度反馈——来自编码器,经过速度计算(通常用M/T法或T法)。
  3. 误差计算——给定值减去反馈值,得到速度误差。
  4. PI调节器——对误差进行比例-积分运算,输出电流指令。
  5. 限幅——防止输出电流超过驱动器或电机允许范围。
// 速度环PI调节器伪代码示例
float speed_error = speed_target - speed_feedback;
float current_target = Kp * speed_error + Ki * speed_error_integral;

// 限幅处理
if (current_target > current_limit_max)
    current_target = current_limit_max;
if (current_target < current_limit_min)
    current_target = current_limit_min;

// 更新积分项(带抗饱和)
speed_error_integral += speed_error * dt;
if (current_target == current_limit_max || current_target == current_limit_min)
    speed_error_integral -= speed_error * dt;  // 积分冻结

这段代码看着简单,但实际工程里坑不少。比如积分饱和问题,我曾经吃过亏——电机堵转时积分项一直累加,一松开就猛冲出去。后来加了抗饱和逻辑才解决。

关键点:速度环的PI参数(Kp和Ki)决定了系统的响应速度和稳定性。Kp太大容易震荡,Kp太小响应慢;Ki太大容易超调,Ki太小有静差。后面几章我会详细讲怎么调这两个参数。

1.6 速度环的响应速度要求

速度环的响应速度介于位置环和电流环之间。一般来说:

  • 电流环带宽:1~3 kHz(响应时间约0.3~1 ms)
  • 速度环带宽:100~500 Hz(响应时间约2~10 ms)
  • 位置环带宽:10~50 Hz(响应时间约20~100 ms)

为什么速度环不能太快?因为速度反馈来自编码器,编码器信号有量化噪声。速度环带宽太高,会把噪声放大,导致电机“嗡嗡”响。

我记得有一次调试高速主轴,速度环带宽设到800 Hz,电机噪音大得吓人。降到300 Hz后,噪音没了,响应也够用。

1.7 小结

这一章咱们把速度环的底子打好了。你记住三句话:

  • 速度环是伺服系统的中间层,管转速。
  • 它从位置环接指令,向电流环发指令。
  • 速度环调好了,系统就稳了一半。