TT Lab
博客

한국어 English 日本語 中文

开始
博客

博客

控制:PID、前馈、计算力矩、FOC 电流环与位置环的分层、控制周期

状态:草案(2026-10-18),实测。 数字是通过笔记本电脑(Apple M1 Max,macOS 26.5)上的 Python 3.9.6 和 numpy 2.0.2 计算得出的 数值仿真 值。 关节、手臂和电机的物理常数均为假设值,没有一个是通过真实电机和控制器测得的(硬件未实测)。原始数据与代码:工作目录 measure/robot-arm-basics/的 m09_control.py, out/m09_control.json。参考资料查阅于 2026-10-18。 编写规则:以实测数据为基础,未能测出的标为“未实测”,无法确认的标为“未确认”。

目录

1. 直觉:跟踪的两种方法

想象一个驾驶员在跟车。其中一个驾驶员只看与前车的距离。距离远了就踩油门,近了就松油门。总是慢了一拍。另一个驾驶员看着前 车的刹车灯和道路标志,提前知道 前车要做什么 。因此,他在距离拉开之前就会踩油门。前者是反馈(feedback),后者是 前馈(feedforward)。

乒乓球机器人的轨迹在第 8 篇中已经全部计算好了。每一瞬间想要的位置、速度和加速度都是已知的。因此,没有理由不使用前馈。 反馈只需要根据模型的不准确之处进行修正即可。本文通过仿真来衡量这种差异有多大,以及为什么控制周期和电机内部的电流环如此重要。

2. 图解:控制的分层

제어의 층: 느린 바깥 루프, 빠른 안쪽 루프 궤적 생성 q_r, q̇_r, q̈_r 위치·속도 PD + 피드포워드 1 kHz 전류 PI(FOC) i_q 목표 → 전압 30 kHz τ 인버터·모터 토크 ≈ k_t · i_q 관절·링크 J q̈ = τ − 마찰 엔코더 각·속도(1 kHz 로 읽음) 상 전류 안쪽 루프의 대역폭은 바깥 루프보다 충분히 높아야 한다. 바깥에서 보면 안쪽 루프는 「명령한 토크가 곧바로 나오는 장치」처럼 보여야 하기 때문이다. 30 kHz 는 오픈 제어기 moteus 의 기본 스위칭 주파수(위치·전류 루프 모두).
图解:轨迹生成、1 kHz 位置/速度环、30 kHz 电流环、以及连接到电机和关节的控制层级

观察开源电机控制器会发现,不同层级的周期各不相同。moteus 的文档中记载,位置环和电流环都以开关频率(默认 30 kHz)运行。 ODrive 0.6.12 文档解释了控制循环计数器,并假设控制环频率为 8 kHz。其上层的机器人控制器通常要慢得多。Koç 等人 2018 年的 乒乓球机器人使用 500 Hz 的实时控制,Google 2023 年的学习策略使用 100 Hz,Google DeepMind 2024 年的低级技能以 50 Hz 发送指令。

3. 计算

3.1 PID 与前馈

PD:            τ = K_p e + K_d ė                         e = q_r − q
PID:           τ = K_p e + K_d ė + K_i ∫e dt
PD + 앞먹임:   τ = J q̈_r + b q̇_r + τ_c sign(q̇_r)  +  K_p e + K_d ė
                   └ 역동역학(관성·점성·쿨롱 마찰) ┘    └ 되먹임 ┘

增益根据惯量 J 和目标带宽 ω_n 设定:K_p = J ω_n²,K_d = 2 J ω_n(临界阻尼)。所有比较均使用相同的 ω_n = 2π·20 Hz。

3.2 计算力矩控制

如果手臂有多个关节,一个关节的加速度会对其他关节施加力(惯性耦合)。离心力、科里奥利力和重力也因姿态而异。手臂整体的运动方程式如下 所示。

M(q) q̈ + C(q, q̇) q̇ + g(q) = τ

计算力矩(computed torque)控制直接使用该公式来消除耦合。《Modern Robotics》公式 (11.35) 就是这种形式,该书还指出在实际应用中 K_i 通常设为 0。

τ = M̃(q) (q̈_r + K_p e + K_d ė) + C̃(q, q̇) q̇ + g̃(q)          (~ 는 모델 값)

如果模型准确,每个关节的误差将遵循彼此独立的二阶方程:ë + K_d ė + K_p e = 0。

3.3 电流环

q 轴电流是由相电阻 R 和电感 L 组成的一阶电路。将 PI 增益设为 K_p = L ω_c、K_i = R ω_c,就可以抵消电路的极点,并获得带宽为 ω_c 的一阶响应。 由于数字控制器将用测量电流计算出的电压在 下一个周期 输出,因此如果 ω_c 相对于环路周期过大,就会由于这一个周期的延迟而产生振荡。

3.4 仿真设置

4. 实测(仿真)

4.1 控制器与控制周期

같은 이득, 다른 제어기와 주기: 최대 추종 오차 0.1 1 10 100 8.5 10 0.2 2 kHz 8.5 10 0.4 1 kHz 8.5 10 0.9 500 Hz 40 50 35 200 Hz PD PID PD + 피드포워드 최대 오차(mrad, 로그) 시뮬레이션: 관성 0.015 kg·m², 대역폭 20 Hz 이득, 한 주기 지연. 실기 미실측.
图解:不同控制器和控制周期下的最大跟踪误差
周期 控制器 最大误差 RMS 误差 击打瞬间位置误差 击打瞬间速度误差
1 kHz PD 8.5 mrad 5.1 mrad 4.3 mrad −0.20 rad/s
1 kHz PID 10.3 5.1 −1.0 −0.22
1 kHz PD + 前馈 0.42 0.28 −0.29 −0.007
2 kHz PD + 前馈 0.21 0.14 −0.15 −0.003
500 Hz PD + 前馈 0.86 0.46 −0.58 −0.014
200 Hz PD 39.9 17.5 −2.6 2.25
200 Hz PD + 前馈 34.8 14.4 1.1 3.37

如果提高增益会怎样?将 ω_n 提高一倍至 2π·40 Hz 后,PD 在 1 kHz 下的最大误差从 8.5 降至 2.2 mrad,但在 200 Hz 下误差却达到了 134 mrad,几乎发散。 在慢速环路中提高增益是危险的,而且即使在快速环路中,效果也不如前馈。

我们还测试了模型存在偏差的前馈。当惯量设小或设大 20% 时(1 kHz),最大误差分别为 1.8 和 1.9 mrad。虽然比准确模型(0.42)差了 4 倍,但 依然比 PD(8.5)好 4 倍。

4.2 电流环延迟对位置环的影响

上述实验假设指令力矩能够立即输出。实际上,电流环需要时间来产生力矩。假设力矩以带宽 f_i 的一阶延迟输出, 重新测量了 1 kHz PD + 前馈的误差。

电流(力矩)带宽 最大误差 RMS 误差 击打瞬间速度误差
无延迟 0.42 mrad 0.28 mrad −0.007 rad/s
1,000 Hz 0.46 0.31 −0.007
300 Hz 0.58 0.35 −0.009
100 Hz 0.90 0.48 −0.014
50 Hz 1.42 0.68 −0.021

当电流环带宽与位置环周期(1 kHz)相近时,几乎没有差异;而一旦降至 100 Hz 以下,误差就会增加两到三倍。“内环必须比外环 足够快”这一分层控制原则正是来源于这些数字。

4.3 电流环本身:在 30 kHz 下能做多快

对相电阻 0.2 Ω、电感 100 µH 的 q 轴电流进行了 30 kHz PI 控制下的 10 A 阶跃响应测试(电压限制 48 V,单周期延迟)。

目标带宽 10→90% 上升时间 理想一阶响应 超调
500 Hz 578 µs 700 µs 0%
1 kHz 212 µs 350 µs 0%
2 kHz 63 µs 175 µs 16.5%
4 kHz 30 µs 88 µs 84%
8 kHz 17 µs 44 µs 200%

当目标带宽超过环路频率的 1/15(2 kHz)时,开始出现超调;而在 1/4(8 kHz)时则实际上发生了振荡。这是因为单周期延迟(33 µs)削减了相位。 因此,通过 30 kHz 电流环可获得的实用带宽为 1~2 kHz,在其之上的位置环为数百 Hz~1 kHz,再之上的机器人策略为几十~数百 Hz。 这种结构使得每一层都比上一层慢大约 10 倍。

4.4 双连杆手臂:耦合与重力

控制器(1 kHz,力矩限制 60 N·m) 最大误差 RMS 击打瞬间位置/速度误差
PD 41.0 mrad 20.0 30.7 mrad / 0.95 rad/s
PD + 重力补偿 37.8 18.8 27.9 / 0.92
计算力矩(准确模型) 1.7 0.83 1.0 / 0.11
计算力矩(质量小 20%) 10.5 4.7 8.4 / 0.28
计算力矩(质量大 20%) 7.0 3.1 7.0 / 0.03

如果将力矩限制降低到 30 N·m(小于轨迹所需的 40 N·m),计算力矩的最大误差将达到 264 mrad,PD 为 218 mrad,两者均会崩塌。 控制器无法 求出无法实现的轨迹。 在创建轨迹时(第 8 篇),必须先确认逆动力学力矩是否在极限之内。

5. 限制

6. 总结

Titi 的话。 既然已经知道球拍要去哪里,就没必要等到产生误差再去补救。只要先产生所需的力,反馈只需修正偏差的部分即可!

参考

所有资料均于 2026-10-18 查阅。

登录后即可点赞

评论

还没有评论。

登录后即可发表评论