3、位置环架构:位置环在伺服系统中的角色、三环控制的耦合关系

聊到伺服系统,大家第一反应就是“三环”——位置环、速度环、电流环。很多教材喜欢从内往外讲,先讲电流环怎么快,再讲速度环怎么稳,最后才提位置环。但我个人习惯反过来思考。

你想想看,用户最终要的是什么?是位置。电机转了多少度,负载走到了哪里,这才是我们关心的结果。速度环和电流环,说白了都是为位置环服务的“工具人”。

3.1 位置环到底在干什么?

位置环的任务很简单:让实际位置追上目标位置。它接收一个位置指令(比如“走到1000个脉冲的位置”),然后对比编码器反馈回来的实际位置,算出误差,再把这个误差丢给速度环去执行。

我在项目中遇到过不少刚入行的工程师,他们觉得位置环就是个比例调节器,调个Kp就完事了。嗯,如果只是做做玩具级别的定位,确实够用。但一旦涉及到高精度、高响应的场景——比如数控机床的插补、机器人的轨迹控制——你就会发现,位置环的架构设计直接决定了整个系统的性能天花板。

核心观点:位置环是伺服系统的“大脑”,速度环和电流环是“肌肉”。大脑下达指令,肌肉负责执行。大脑如果糊涂,肌肉再强壮也没用。

3.2 三环控制的耦合关系

三环不是三个独立的PID堆在一起就完事了。它们之间有很强的耦合关系。我画了一张图,帮你理清这个结构:

伺服系统三环控制架构 位置环 P / PI 调节器 速度环 PI 调节器 电流环 PI 调节器 电机 + 编码器 电流反馈 速度反馈 位置反馈 指令 关键说明: • 位置环输出 = 速度环的给定值(速度指令) • 速度环输出 = 电流环的给定值(电流指令) • 电流环输出 = PWM占空比,直接驱动电机 • 三个反馈都来自同一个编码器,只是处理方式不同

从这张图你能看到,三环是串联结构:位置环的输出作为速度环的输入,速度环的输出作为电流环的输入。电流环直接控制电机,编码器把位置、速度、电流信息反馈回来,形成闭环。

3.3 为什么需要三个环?一个环不行吗?

这个问题我经常被问到。理论上,只用位置环也能让电机转到目标位置。但实际工程中,一个环根本扛不住。

原因有三:

  • 响应速度不同:电流环最快(微秒级),速度环次之(毫秒级),位置环最慢(毫秒到十毫秒级)。如果只用位置环直接控制PWM,遇到负载突变,电机可能还没反应过来就已经失步了。
  • 抗干扰能力:电流环可以快速抑制母线电压波动和反电动势影响;速度环可以抑制负载转矩扰动。位置环只管最终位置,中间的扰动交给内环去处理。
  • 调试灵活性:三环各自独立整定,可以针对不同的应用场景做优化。比如刚性要求高的场合,位置环比例可以调大一点;要求平滑的场合,速度环积分可以加多一些。

实战经验:我曾经调试一台高速贴片机,位置环带宽要求做到80Hz以上。一开始我直接调位置环的Kp,结果电机尖叫、震动。后来我把速度环带宽先拉到200Hz,再回头调位置环,一下子就稳了。记住:内环带宽至少是外环的3~5倍,这是铁律。

3.4 三环的带宽分配原则

带宽分配是伺服系统设计的核心。我整理了一个表格,方便你对照:

环路 典型带宽范围 主要限制因素 调试优先级
电流环 1 kHz ~ 5 kHz PWM频率、ADC采样率、电感时间常数 先调
速度环 100 Hz ~ 500 Hz 机械谐振频率、编码器分辨率 其次
位置环 10 Hz ~ 100 Hz 速度环带宽、系统刚性、轨迹规划 最后

为什么电流环带宽最高?因为电流环控制的是电磁过程,没有机械惯性拖后腿。位置环带宽最低,因为它要等机械系统响应完才能做下一步判断。

避坑指南:我曾经在一个项目中,为了追求极致的定位速度,把位置环带宽设到了120Hz。结果电机在高速启停时出现了明显的过冲和震荡。后来分析发现,速度环带宽只有250Hz,位置环带宽超过了速度环的一半,导致耦合振荡。记住:位置环带宽不要超过速度环带宽的1/3,否则系统容易失稳。

3.5 编码器换相在位置环中的特殊地位

这里要特别提一下编码器换相。很多做位置环的工程师容易忽略一个问题:位置环依赖的反馈信号,到底是从编码器的哪个通道来的?

对于增量式编码器,位置环通常使用A/B/Z信号。但换相信号(U/V/W)在位置环中扮演了一个“粗定位”的角色。电机上电时,位置环不知道转子在哪儿,必须依靠换相信号把位置锁定在一个60°或120°的区间内,然后才能进行精确的细分定位。

我个人的习惯是:换相逻辑放在位置环的初始化阶段,而不是放在电流环里。原因很简单——位置环知道目标位置,它需要先确认“我在哪儿”,才能规划“怎么去”。如果换相放在电流环,位置环拿到的是一个未经校准的初始位置,很容易出现启动抖动甚至反转。

3.6 位置环的典型实现流程

最后,我梳理一下位置环在实际代码中的执行顺序。这不是唯一的做法,但这是我用过最稳定的方案:

  1. 读取编码器位置:获取当前实际位置(包括换相区间的粗定位和A/B的细定位)。
  2. 计算位置误差:目标位置 - 实际位置。
  3. 位置环调节器计算:通常是P调节或PI调节,输出速度指令。
  4. 限幅处理:速度指令不能超过电机额定转速对应的值。
  5. 输出给速度环:作为速度环的给定值。
  6. 等待下一个周期:位置环的周期通常是速度环的3~5倍。

嗯,这里要注意:位置环的周期不能太快。我见过有人把位置环跑到1kHz,结果CPU负载飙升,速度环反而被挤占了资源。位置环跑200Hz~500Hz就足够了,剩下的算力留给速度环和电流环去处理高频扰动。

好了,这一章的内容就到这里。位置环的架构搞清楚了,后面我们才能深入聊编码器换相怎么跟位置环配合,以及如何用换相信号做更精准的初始定位。