伺服系统闭环控制原理:三环架构深度拆解
做伺服驱动这么多年,我见过太多工程师一上来就调位置环参数,结果怎么调都调不好。为什么?因为你不理解底层那三个环到底在干什么。今天咱们就把位置环、速度环、电流环这三层架构彻底讲透,顺便聊聊每个环跟跟随误差的关系。
核心观点:三环架构从内到外依次是电流环→速度环→位置环。内环是外环的基础,外环的响应速度永远比内环慢。这个顺序不能乱,乱了系统就崩。
2.1 三环架构的整体逻辑
先看一张整体框架图,我习惯用这张图给新来的工程师做培训。
这张图你看懂了吗?位置环在最外层,它算出来的结果送给速度环当目标值,速度环算完再送给电流环。电流环在最里面,直接跟电机线圈打交道。我刚开始接触伺服时,总以为三个环是并列的,后来被老工程师骂了一顿才明白——它们是串联的,一层套一层。
2.2 电流环——最内层的"肌肉"
电流环是三个环里响应最快的。它的任务很简单:让电机线圈里的实际电流,快速跟上你给的目标电流。
说白了,电流环控制的就是转矩。你给多大电流,电机就出多大劲。电流环的带宽通常能做到1-2kHz,有些高端驱动器能到3kHz以上。
我的经验:电流环一般不需要你手动调。驱动器出厂时已经针对电机做了自整定。如果你非要动,记住一点:电流环的积分时间常数不要小于电机电气时间常数的1/3,否则容易振荡。
电流环对跟随误差的影响是间接的。如果电流环响应慢,电机出力的速度就跟不上指令,速度环和位置环自然也会受影响。我遇到过一台设备,做高速点焊时焊点位置总偏,查了半天发现是电流环带宽设得太低,电机出力滞后了5ms。
2.3 速度环——中间的"关节"
速度环接收位置环送来的速度指令,然后跟编码器反馈的实际速度做比较,算出差值,再输出给电流环。
速度环用的是PI控制,比例和积分两个参数。比例决定响应快慢,积分负责消除稳态误差。
| 参数 | 作用 | 调大后的效果 | 调小后的效果 |
|---|---|---|---|
| 比例增益 Kv | 决定速度环响应速度 | 响应变快,但容易超调 | 响应变慢,跟随误差增大 |
| 积分时间 Ti | 消除稳态速度误差 | 消除误差快,但可能振荡 | 消除误差慢,稳态精度差 |
速度环对跟随误差的影响非常直接。你想想看,位置环算出来一个速度指令,如果速度环跟不上,那实际位置肯定也跟不上。我调试一台龙门铣床时,发现X轴在加减速阶段总是滞后Y轴20多个脉冲,后来把速度环比例增益从15提到25,滞后降到了5个脉冲以内。
注意:速度环增益不是越大越好。增益太大,系统会尖叫,电机嗡嗡响,严重时直接过流报警。我曾经把一台伺服的速度环增益调到40,结果电机像发了疯一样抖,吓得我赶紧断电。
2.4 位置环——最外层的"大脑"
位置环在最外层,它接收上位机发来的位置指令,跟编码器反馈的实际位置做比较,算出位置误差,然后输出速度指令给速度环。
位置环通常只用比例控制,不加积分。为什么?因为位置环本身就有积分作用——位置误差的累积就是位置本身。再加积分反而容易引起振荡。
位置环的比例增益,我们通常叫Kp或者位置环增益。它决定了系统对位置误差的响应强度。
关键公式:位置环输出 = Kp × (目标位置 - 实际位置)
这个输出就是速度环的给定值。所以Kp越大,同样的位置误差产生的速度指令就越大,系统响应就越快。
位置环对跟随误差的影响是决定性的。如果位置环增益太低,系统就像个反应迟钝的人,指令到了半天才动。如果增益太高,系统会振荡,甚至过冲。
2.5 三个环如何共同影响跟随误差
现在我们把三个环串起来看。假设你给伺服发了一个100mm的阶跃位置指令:
- 位置环看到目标位置100mm,当前位置0mm,误差100mm。它算出速度指令 = Kp × 100mm。
- 速度环收到速度指令,但实际速度还是0。它算出电流指令 = PI(速度误差)。
- 电流环收到电流指令,驱动电机转动。
- 电机转动后,编码器反馈位置和速度变化,三个环同时更新。
在这个过程中,任何一个环慢了,都会导致最终的位置跟随误差变大。我总结了一个经验公式:
总跟随误差 ≈ 位置环误差 + 速度环误差 + 电流环误差
但要注意,这三个误差不是简单相加。电流环的误差会被速度环放大,速度环的误差又会被位置环放大。所以内环的精度至关重要。
| 环节 | 典型带宽 | 对跟随误差的影响方式 | 调试优先级 |
|---|---|---|---|
| 电流环 | 1-3 kHz | 间接影响,通过转矩响应速度 | 第1步(通常不动) |
| 速度环 | 100-500 Hz | 直接影响加减速阶段的误差 | 第2步 |
| 位置环 | 10-100 Hz | 决定稳态位置精度和动态响应 | 第3步 |
调试顺序建议:先调电流环(确认参数正确)→ 再调速度环(让速度响应又快又稳)→ 最后调位置环(根据实际工况微调Kp)。这个顺序我用了十几年,从来没出过问题。
2.6 一个真实案例
去年我帮一家锂电池设备厂调试贴膜机。设备在高速运行时,贴膜位置总是偏差0.3mm左右。客户换了编码器、换了电机,问题依旧。
我到现场一看,先看电流环——正常。再看速度环——嗯,速度环的积分时间设成了20ms,偏大了。我把它改到8ms,速度响应明显变快。然后看位置环——Kp只有12,偏低。我逐步提到25,同时观察电机有没有异响。
调完之后,贴膜位置偏差从0.3mm降到了0.05mm以内。客户问我怎么做到的,我说其实很简单——三个环的参数匹配了,系统自然就听话了。