先进控制

计算力矩控制

计算力矩控制是一种驾驭机械臂的方法,它先把机械臂自身那套复杂的物理特性抵消掉,让剩下的部分表现得像一个简单、听话的小玩具。真实的机械臂很难控制:靠近肩部的关节要对抗重力对整条手臂的拉扯,其他关节摆动时也会把它甩来甩去,而沉重的肘部和轻巧的手腕手感又完全不同。控制器不去无视这些,而是在脑中保存一个关于手臂重量、长度和运动的数学模型,并在每一瞬间精确算出每个电机所需的力矩(也就是电机施加的扭转推力),用来抵消重力和这些相互拉扯的效应。把这些已知的力提前“付清”后,每个关节就能干净利落地响应你的指令。

一旦物理特性被抵消,原本棘手的非线性机械臂就塌缩成控制器可以当作一排彼此独立、完全相同的单元来对待的东西——推一下某个关节,它就单纯地加速,既没有意外,也没有来自相邻关节的串扰。这样一来,控制器只需在上面再叠加一个朴素、温和的修正(通常是 PID 式的微调:关节离目标位置越远,就推得越用力),就能对期望路径实现干净而精确的跟踪。一句话,计算力矩控制是花掉一个机器人模型,为自己换来一个轻松的控制问题。

问题在于,它的好坏完全取决于模型:如果机器人真实的重量、摩擦或所搬运的负载与数学假设不符,抵消就不彻底,残留的误差只能靠修正项或自适应方法来收拾。这也是为什么它在特性清楚的实验室和工业机械臂上表现出色,并常常与能够实时调整模型的技术配合使用。

一只焊接机械臂要以恒定速度描出一条曲线。计算力矩控制预测并提前喂给每个关节所受的重力和摆动力,于是上层一个轻量的 PID 就能让焊枪牢牢贴住轨迹,而不会在向下走刀时往下塌。

先把物理账付清,再去驾驭剩下那个简单的部分。

计算力矩控制本质上就是把反馈线性化用到刚性机械臂的具体方程上——它是那个更宽泛思想的一个写好了的、带机器人味道的特例。

又称
inverse dynamics control逆动力学控制逆動力學控制