1. 三闭环架构:为什么要"外慢内快"
FOC 伺服控制本质上是三个嵌套的闭环:
- 电流环(最内):控 dq 轴电流 → 控转矩,最高带宽
- 速度环(中间):控转速,中等带宽
- 位置环(最外):控角度,最低带宽
级联设计有一条铁律——"外慢内快":外环带宽必须比内环低一个数量级左右(速度环取电流环的 1/5~1/10,位置环取速度环的 1/3~1/5)。原因是:外环把内环当成"已调好的快惯性",只有内环足够快、能瞬时跟踪外环输出时,外环的模型才成立;若内外环带宽接近,两个环会互相"打架",出现振荡甚至失稳。
| 控制环 | 被控对象 | 反馈量 | 典型带宽 | 与内环关系 |
|---|---|---|---|---|
| 电流环 | 1/(Ls·s+Rs)(电气) | id / iq | 500 Hz ~ 2 kHz(≈fsw/10) | — |
| 速度环 | 1/(J·s+B)(机械) | ωm | ≈ 电流环 1/5~1/10(50~300 Hz) | 把电流环当 1/(τis+1) |
| 位置环 | 1/s(积分) | θm | ≈ 速度环 1/3~1/5(10~60 Hz) | 把速度环当惯性 |
理解级联的关键:每个外环看到的"被控对象"都包含了内环的闭环特性。所以整定的顺序只能是"由内到外":先整电流环,再整速度环,最后位置环——因为外环的模型依赖内环的真实带宽。
2. 电流环:从电机模型算出 PI
2.1 电气模型
d 轴电流调零后,q 轴电压方程(忽略摩擦与凸极耦合,加入前馈解耦后)简化为:
uq = Rs·iq + Ls·diq/dt ⟹ Gi(s) = iq(s)/uq(s) = 1/(Ls·s + Rs)
其中 Rs 是相电阻、Ls 是 q 轴电感。这是一个一阶惯性环节,转折频率(电气自然频率)为 fe = Rs/(2π·Ls)。注意:反电动势项 ωe·ψf 和交叉耦合项 ωe·L·id 是扰动,正常做法是加前馈解耦把它抵消掉,否则它们会挤占控制器的调节能力(这在高速尤其明显)。
2.2 PI 零极点对消
电流环 PI 控制器 Ci(s) = Kp + Ki/s。它的零点在 s = −Ki/Kp,正好用来对消对象的极点 s = −Rs/Ls:
Ki/Kp = Rs/Ls ⟹ 积分时间 Ti = Ls/Rs
对消之后,开环传函变成 Kp/(Ls·s)——纯积分器,闭环为一阶:
Gcl,i(s) = Kp/(Ls·s + Kp) = ωci/(s + ωci) , ωci = Kp/Ls
这是一阶低通,-3dB 带宽正好等于 ωci/(2π)。于是 PI 参数可以直接由电感和期望带宽算出来,不用试凑:
Kp = Ls·ωci , Ki = Rs·ωci
ωci = 2π·fbw,i;例如 R=0.5Ω、L=1mH、期望带宽 1kHz → Kp = 6.28 V/A,Ki = 3140 V/(A·s)
2.3 带宽怎么选:开关频率是天花板
电流环带宽不是想多高就多高。三条硬约束:
- 采样定理:理论上 fbw,i < fsw/2,否则控制频率都跟不上信号
- 工程惯例:为保证数字控制效果与抗噪,通常取 fbw,i ≤ fsw/10(20kHz 开关 → 约 2kHz,实际常用 1~1.5kHz)
- 电压极限:要快速改变电流就要高 di/dt,而母线电压有限——理论带宽超出母线电压能力时,"带宽"只是个够不到的饼
3. 速度环:把电流环当成"快惯性"
3.1 机械模型
J·dω/dt = Te − Tl − B·ω ⟹ Gω(s) = 1/(J·s + B)
J 是折算到电机轴的转动惯量,B 是粘性阻尼(通常很小,可忽略)。速度环看到的对象里,还叠加了电流环的闭环特性——电流环被等效成一个一阶惯性 1/(τi·s+1),其中 τi ≈ 1/ωci。所以速度环的实际被控对象 ≈ 1/(J·s) × 1/(τis+1)(忽略 B)。
3.2 速度环 PI 整定
仍用零极点对消的思想:把 PI 零点放到对象极点处,但对象这里只有积分器(极点在中点),所以工程上用对称整定更实用:把期望带宽放在对象"积分 + 电流环惯性"两个极点之间。简化公式:
Kpv = J·ωcv / Kt , Kiv = Kpv·ωcv/2
ωcv = 2π·fbw,v;Kt 为转矩常数(Nm/A)。带宽取电流环 1/5~1/10,例如电流环 1kHz → 速度环 100~200Hz
- 惯量敏感:Kpv 正比于 J。负载惯量变大时按比例加大 Kpv,否则响应变慢甚至随负载振荡——这就是"惯量辨识"能自动整定的原因
- 速度反馈滞后:速度通常由编码器差分得到,噪声大;工程上会加低通滤波。滤波器滞后会吃掉相位裕度,所以速度环带宽常被滤波频率卡住
- 抗积分饱和:速度环输出(iq 指令)有硬限幅,一旦饱和必须停积分(conditional integration),否则超调严重
4. 位置环:最外环,P 控制就够
位置环对象是速度→位置的积分器 1/s。外环已经够慢,P 控制即可获得无稳态误差的跟踪(因为被控对象自带积分器,P 控制对阶跃位置指令稳态误差为 0):
Kpp = ωcp , fbw,p = fbw,v/3~5
带宽 10~60Hz。Kpp 单位是 1/s,物理含义就是位置环带宽
若要进一步压低跟踪滞后,可加速度前馈(把速度指令前馈到速度环),不影响稳定性却能大幅减小位置跟踪相位滞后。
5. 传递函数汇总
| 环节 | 被控对象 G(s) | 控制器 C(s) | 闭环近似 | 带宽 |
|---|---|---|---|---|
| 电流环 | 1/(Lss+Rs) | Kp+Ki/s | ωci/(s+ωci) | fsw/10 |
| 速度环 | 1/(Js+B)·1/(τis+1) | Kpv+Kiv/s | ≈ 二阶(对称整定) | 电流环/5~10 |
| 位置环 | 1/s | Kpp(P) | ωcp/(s+ωcp) | 速度环/3~5 |
注意规律:每一层内环闭环后都会"升级"成外环眼中的一阶惯性,所以带宽逐级递减的本质,是每一级都要给内环的动态留出足够的频带余量。
6. 滞后时间:带宽的物理天花板
6.1 滞后从哪里来
理论 PI 算出的带宽是"理想连续域"的数字,实际永远达不到,因为数字控制引入了滞后(延迟):
- PWM 零阶保持(ZOH):占空比指令这个周期才生效,等效平均滞后 ≈ 0.5·Tsw
- 采样滞后:电流在 PWM 中心采样,采样到"真正当前值"也约 0.5·Tsw
- 计算延迟:ADC→控制算法→更新比较寄存器要"拍",约 1·Tsw
- 反馈滤波:电流/速度低通滤波引入一阶惯性滞后
合在一起,电流环的总等效延迟 Td ≈ 1~1.5·Tsw(论文常用的电流采样更新延时即 1.5·Ts)。
6.2 滞后如何吃掉相位裕度
延迟的传函是 e−sTd,一阶帕德近似为 1/(1+sTd)。在开环穿越频率 ωc 处,它引入的相位滞后约 −ωc·Td(弧度)。对电流环(开环近似积分器),理想相位裕度约 90°,扣除延迟后:
φm ≈ 90° − ωc·Td · (180°/π)
要求 φm ≥ 45° ⟹ ωc·Td ≤ π/4 ≈ 0.79 rad;Td=1.5Tsw 时 ⟹ fbw ≤ 0.79/(2π·1.5Tsw) ≈ 0.084·fsw
看,0.084·fsw ≈ fsw/12——这就是"电流环带宽很难超过开关频率 1/10"的数学根源!它不是经验玄学,而是 1.5 拍滞后直接限死的。想提高带宽,要么提高开关频率(减小 Tsw),要么用预测控制/无差拍等补偿滞后的手段。
6.3 滞后对速度环/位置环同样成立
速度环的滞后 = 速度采样周期 + 速度滤波;位置环滞后 = 位置采样/输出周期。虽然外环带宽低、滞后影响小,但速度滤波常成为实际瓶颈:滤波时间常数越大,可达到的速度环带宽越低。经验值:速度环控制频率 500Hz~2kHz、位置环 100Hz~500Hz 是常见选择。
有资料统计:按公式算出电流环理论带宽 400Hz,实测 Bode 图却只有 128Hz——差距正是采样/计算延迟(约 1.5 个 PWM 周期)、PWM 更新模式、电流滤波与反电动势扰动共同吃掉的。因此理论整定只是起点,务必用实测 Bode(扫频/系统辨识)确认真实带宽,再往回调。
7. 交互式演示:三环整定与滞后仿真
下面输入电机参数(Rs/Ls/J)与开关频率,系统按"电流环=fsw/10、速度环=电流环/8、位置环=速度环/4"自动算三环 PI 参数;左上图看三环带宽在对数频率轴上的配比与滞后极限线(相位裕度<45° 标红),右下图是电流环/速度环阶跃响应离散仿真——把"滞后系数"拉大,看超调如何涨上去。
观察要点:
- 三环带宽在对数轴上是"左边一档、右边一档、中间一档"逐级拉开——级联配比是稳定性的保证
- 把滞后系数从 0.5 拉到 2.0:电流环阶跃响应从"快速无超调"变成"明显超调/振荡"——滞后直接吃掉相位裕度,这就是带宽天花板
- 把 fsw 从 8kHz 拉到 40kHz:带宽线整体右移,电流环更快——高开关频率是高性能的前提
- J 调大:速度环 Kpv 变大、速度环带宽不变但超调变敏感——注意惯量与整定的关系
8. 代码实现(C语言)
8.1 通用 PI 控制器
8.2 电流环 PI 参数整定
8.3 电流环 ISR 主循环
8.4 速度环整定(离散)
9. 工程要点与常见误区
- 整定顺序固定:先电流环→再速度环→最后位置环,由内向外,顺序不能乱
- 理论只是起点:公式算出的 PI 先给初值,务必用实测 Bode/阶跃验证真实带宽,滞后会吃掉一部分
- 带宽宁可留余量:电流环取 fsw/10 而非 fsw/5,是为了相位裕度和抗噪,别把带宽逼到开关频率附近
- 高速别忘前馈:反电动势与交叉耦合在高速占主导,前馈解耦不做,电流环带宽再高也白搭
- 抗积分饱和必须做:速度环(iq 限幅)和电流环(电压限幅)都容易饱和,条件积分是标配
- 速度滤波是隐形瓶颈:速度滤波时间常数决定了速度环能达到的带宽上限,滤波太狠带宽上不去
电流环带宽由 R/L 算出、由开关频率卡死;速度环带宽是电流环的 1/5~1/10;位置环带宽再降 1/3~1/5;而所有带宽的共同天花板,是 滞后时间 Td≈1.5 个 PWM 周期。想更快?提高开关频率,或补偿滞后。