一、三环控制概述:从原理到实战
各位同学,欢迎来到《三环控制电机实战全流程》的第一章。
说实话,我最早接触三环控制是在做机器人关节模组的时候。那时候刚毕业,看着示波器上三个环的波形,完全不知道它们在干什么。后来踩了不少坑,才慢慢摸清楚这里面的门道。
这一章,咱们就把三环控制这件事彻底讲透。你不需要有很深的理论基础,跟着我的思路走就行。
1.1 什么是三环控制?
三环控制,说白了就是三个闭环控制系统嵌套在一起。从内到外分别是:电流环、速度环、位置环。
我习惯用一个比喻来解释:
- 电流环——就像汽车的油门。你踩多深,发动机就给多少力。它控制的是电机的转矩(力矩)。
- 速度环——就像定速巡航。你设定120km/h,它自动调节油门,让车速稳定在120。
- 位置环——就像导航。告诉你目标在哪儿,然后规划路径,指挥速度和方向。
这三个环,内环响应最快,外环响应最慢。电流环的带宽通常在1kHz~10kHz,速度环在100Hz~1kHz,位置环在10Hz~100Hz。为什么会这样?因为内环要处理最基础的物理量,必须快;外环处理的是宏观运动,可以慢一些。
核心要点:三环控制本质上是一个级联控制结构。外环的输出作为内环的给定,内环的输出直接驱动电机。每一层都在解决不同的问题。
1.2 三环控制在哪些场景里用?
你可能觉得三环控制就是个教科书概念。其实不然,我这些年做过的项目里,几乎每个高性能运动控制场景都离不开它。
| 应用场景 | 核心需求 | 三环的作用 |
|---|---|---|
| 工业机器人 | 高精度轨迹跟踪、抗负载扰动 | 位置环保证末端精度,速度环平滑运动,电流环抑制抖动 |
| 伺服驱动器 | 快速启停、定位准确 | 电流环提供大转矩,速度环防止超调,位置环锁定目标 |
| 无人机云台 | 抗风扰、稳像 | 位置环保持姿态,速度环补偿角速度,电流环响应瞬时扰动 |
| 数控机床 | 高刚性、低跟随误差 | 三环协同实现微米级定位 |
举个例子。我在做六轴协作机器人时,遇到过一个问题:手臂在低速运行时抖动得厉害。查了半天,发现是电流环的PI参数太激进,导致转矩波动被放大了。后来把电流环带宽降下来,速度环加了个低通滤波,问题就解决了。你看,不懂三环的配合,连问题都找不到。
1.3 三环控制的基本架构与信号流
下面这张图,是我自己画的三环控制信号流。你仔细看一遍,后面所有的内容都围绕它展开。
这张图你看懂了吗?我带你走一遍信号流:
- 位置给定(比如让机器人手臂转到30°)进入位置环控制器。
- 位置环比较给定位置和实际位置(来自编码器),算出速度给定。
- 速度环拿到这个速度给定,再和实际速度(由位置微分或观测器得到)比较,算出电流给定(也就是转矩指令)。
- 电流环拿到电流给定,和实际相电流(ADC采样)比较,输出PWM占空比给电机。
- 电机转起来,位置变了,传感器把新位置反馈回去,形成闭环。
嗯,这里要注意:电流环是三个环里最关键的。我见过很多工程师把速度环和位置环调得很好,但电流环没调好,电机一加载就抖。电流环的响应速度直接决定了整个系统的性能上限。
实战小技巧:调试三环时,一定要从内到外逐个调试。先调电流环,再调速度环,最后调位置环。内环没调好,外环怎么调都是白费功夫。我曾经在一个伺服项目里,因为电流环的采样频率没设对,速度环怎么调都振荡,折腾了两天才发现是内环的问题。
1.4 三个环各自的任务
咱们把每个环拆开来看,它们各自负责什么。
| 控制环 | 输入 | 输出 | 控制目标 | 典型带宽 |
|---|---|---|---|---|
| 电流环 | 电流给定(Iq* / Id*) | PWM占空比 | 实际电流快速跟踪给定,抑制反电动势扰动 | 1kHz ~ 10kHz |
| 速度环 | 速度给定(ω*) | 电流给定(Iq*) | 速度无静差,抗负载转矩扰动 | 100Hz ~ 1kHz |
| 位置环 | 位置给定(θ*) | 速度给定(ω*) | 位置精确到位,轨迹跟踪误差小 | 10Hz ~ 100Hz |
你可能会问:为什么电流环的带宽要设这么高?
因为电流环要对抗的是电机反电动势和母线电压波动。这些扰动变化很快,如果电流环响应慢了,电机转矩就会忽大忽小,表现出来就是抖动和噪音。我在做无人机云台电机时,电流环带宽设到8kHz,云台在高速旋转时才能稳住画面。
注意:带宽不是越高越好。电流环带宽受限于PWM开关频率和ADC采样率。一般建议电流环带宽不超过PWM频率的1/10。比如PWM频率20kHz,电流环带宽设到2kHz左右比较稳妥。设太高了,系统容易不稳定,甚至烧管子。
1.5 三环控制的数学本质
我知道有些同学看到数学就头疼。但这里我只讲最核心的,不讲推导。
三环控制的本质,就是三个PID控制器串联。每个环都在做同一件事:
- 测量当前值(反馈)
- 和目标值(给定)做差,得到误差
- 用PID算法算出控制量,送给下一级
用公式表达就是:
位置环:ω* = Kp_p * (θ* - θ) + Ki_p * ∫(θ* - θ)dt
速度环:Iq* = Kp_s * (ω* - ω) + Ki_s * ∫(ω* - ω)dt
电流环:Vq* = Kp_c * (Iq* - Iq) + Ki_c * ∫(Iq* - Iq)dt
你看,结构完全一样,只是参数不同。电流环的Kp和Ki最大,速度环次之,位置环最小。这也是调试时的规律——内环增益大,外环增益小。
我个人的习惯是,先把电流环调成纯比例(Ki=0),让电流响应不振荡。然后加积分项消除静差。速度环和位置环同理。这样一步步来,不容易出问题。
1.6 这一章你该记住什么
好,第一章的内容就这些。我不喜欢讲太多理论,咱们后面有的是实战。你只要记住三点:
- 三环是级联结构:外环输出给内环,内环直接驱动电机。
- 调试顺序不能乱:电流环→速度环→位置环,从内到外。
- 每个环都有自己的带宽:电流环最快,速度环居中,位置环最慢。