4. 控制器与算法入门:PID控制、力/位混合控制、阻抗控制

各位工程师朋友,大家好。这一章我们聊聊控制器的核心算法。说实话,很多刚入行的朋友一听到「PID」、「力位混合」、「阻抗控制」这几个词就头大。我当年也一样,觉得这是玄学。但干久了你会发现,这些算法其实就是一套「怎么让机器听话」的方法论。

今天我就用实战的视角,把这几个概念掰开揉碎了讲清楚。你不需要成为数学专家,但得理解它们背后的物理直觉。

4.1 PID控制:最经典的「纠偏」算法

PID控制,说白了就是三个字:看偏差,算输出。我习惯把它比作一个「老司机开车」的过程——你看着偏离车道了(P),你根据偏离速度决定打方向盘多快(D),如果一直有侧风导致偏航,你还会微调方向盘角度(I)。

公式很简单,但别被它吓住:

u(t) = Kp * e(t) + Ki * ∫e(t)dt + Kd * de(t)/dt

其中:

  • Kp(比例):当前偏差有多大,输出就多大。反应快,但会有静差。
  • Ki(积分):把过去的偏差累积起来。消除静差,但容易超调。
  • Kd(微分):预测偏差的变化趋势。抑制震荡,但对噪声敏感。

实战经验:我在调试一个六自由度力控平台时,遇到过系统低频抖动。当时我习惯先调Kp,发现怎么调都抖。后来把Kd加大了一倍,问题立刻解决。为什么?因为微分项抑制了速度变化率,相当于给系统加了「阻尼」。

避坑指南:我曾经在调一个高刚度力控系统时,把Ki设得太大,结果系统出现了「积分饱和」——积分项累积了巨大的偏差,导致输出饱和,系统失控。后来我加了积分限幅和抗饱和算法才解决。记住:积分项不是越大越好。

4.2 力/位混合控制:让机器「既听话又有力」

你想想看,一个机器人要拧螺丝,它既要控制位置(对准螺丝孔),又要控制力(拧紧时不能把螺纹拧坏)。这就是力/位混合控制的典型场景。

核心思想很简单:把任务空间分成两个子空间——一个子空间做位置控制,另一个子空间做力控制。这两个子空间是正交的,互不干扰。

举个例子:

  • 法线方向(接触面垂直方向):用力控制,保证接触力恒定。
  • 切线方向(接触面平行方向):用位置控制,保证运动轨迹准确。

数学上,我们用一个选择矩阵 S 来区分:

τ = S * τ_position + (I - S) * τ_force

其中 S 的对角线元素为1表示该自由度做位置控制,为0表示做力控制。

注意:力/位混合控制有一个前提——你必须知道任务空间的「自然约束」和「人工约束」。自然约束是物理环境强加的(比如接触面法线方向不能穿透),人工约束是我们设定的(比如希望接触力为10N)。搞反了这两个约束,系统会打架。

我记得有一次做打磨机器人项目,客户要求既保证打磨深度(位置),又保证打磨压力(力)。我一开始用了纯位置控制,结果压力忽大忽小,工件表面坑坑洼洼。后来改成力/位混合控制,把法线方向做力控,切线方向做位置控,效果立竿见影。

4.3 阻抗控制:让机器「有弹性」

阻抗控制,说白了就是让机器人表现出「弹簧-阻尼」的特性。你推它,它会让步;你拉它,它会跟随。这种控制方式特别适合人机协作和柔顺装配场景。

阻抗控制的本质是:建立力与位置偏差之间的关系

M * (ẍ - ẍ_d) + B * (ẋ - ẋ_d) + K * (x - x_d) = F_ext

其中:

  • M:惯性系数(质量)
  • B:阻尼系数
  • K:刚度系数
  • F_ext:外部施加的力

你可以把这三个参数想象成:

  • K(刚度):机器人有多「硬」。K越大,抵抗变形的能力越强。
  • B(阻尼):机器人有多「粘」。B越大,运动越平缓。
  • M(惯性):机器人有多「重」。M越大,加速越慢。

实战案例:我在做手术机器人项目时,需要让机械臂在接触人体组织时表现出「柔软」的特性。我把刚度K设得很小(比如100 N/m),阻尼B设得适中(比如10 N·s/m),这样机械臂碰到组织时会自然退让,不会造成伤害。但如果K设得太小,机械臂又会「软趴趴」的,定位不准。这需要根据具体任务反复调试。

4.4 三种控制策略的对比与选择

很多朋友问我:这三种控制到底怎么选?我一般这样回答:

控制策略 适用场景 优点 缺点
PID控制 位置/速度跟踪、简单力控 实现简单、参数物理意义明确 对非线性系统效果差、需要精确模型
力/位混合控制 装配、打磨、抛光等接触任务 能同时控制力和位置、精度高 需要知道任务约束、切换时可能不稳定
阻抗控制 人机协作、柔顺装配、医疗机器人 对模型误差鲁棒、自然柔顺 参数调试复杂、对力传感器精度要求高

我个人习惯是:能简单就别复杂。如果任务只需要简单的力跟踪,PID就够了。如果涉及复杂的接触任务,优先考虑阻抗控制,因为它对模型误差的容忍度更高。只有在需要极高精度且任务约束明确时,才用力/位混合控制。

4.5 知识体系框架

下面这张图是我自己总结的三种控制策略的关系图,帮你理清思路:

力控系统控制器算法知识体系 控制器算法 PID控制 力/位混合控制 阻抗控制 比例(P) 积分(I) 微分(D) 选择矩阵S 任务约束 正交子空间 刚度K 阻尼B 惯性M 核心:根据任务需求,选择合适的「力-位」关系模型

嗯,这张图基本把三种算法的核心要素都串起来了。你从中心往外看,先选算法,再看参数,最后落到具体实现。

我的建议:初学者先吃透PID,因为它是所有控制算法的基础。等你把PID的「比例-积分-微分」三个动作的物理意义搞明白了,再去看阻抗控制和力位混合控制,你会发现它们本质上都是在PID的基础上加了「力反馈」这个维度。

好了,这一章的内容就到这里。三种控制策略各有千秋,没有绝对的好坏,只有合不合适。记住:控制器的本质是「让系统的行为符合你的预期」。理解了这一点,你就能灵活运用这些算法了。


公众号:蓝海资料掘金营,微信deep3321