推开一扇多年没上油的红漆老木门时,经验老到的管家会先轻轻晃一晃、探探“脾气”。门轴锈死处的确要用大力气才肯松动,但一旦真的滑动起来,反而会突然轻快不少;而推得越快,门轴又变得“黏糊糊”地拖后腿;最奇妙的是,把门推过去再拉回来,手感的阻力路径居然走的是两条不同的曲线。这位管家脑海里的“手感地图”,就是人类对摩擦力的直觉建模。机器人关节中的齿轮、谐波减速器和电机轴,正是被无数这样“老木门”卡住的精密传动链——要想让机器人动作精准流畅,就必须像管家摸清每扇门的脾气一样,把关节里的非线性摩擦“建模”出来。本文就用“老管家推老木门”这个比喻,带你从静摩擦、粘性摩擦、Stribeck效应一直走到摩擦辨识与补偿控制,把摩擦力的建模学问一步步拆开。
摩擦建模是机器人控制工程师的核心手艺。学会它,你将能把定位精度从毫米级提升到微米级,做出来的机械臂才“推得动、停得住、感觉细”。
可视化演示
本节配有交互动效(进入视口后自动加载,约 3KB)。
摩擦现象分类
老管家推门的第一课,是分清“门不理你”和“门拖着你”。门静止时,要攒足力气才推得动,这叫静摩擦;门一旦滑起来,反而省力许多,这叫滑动摩擦。而门速度越来越快时,那股“黏糊糊”的拖拽感,来自粘性摩擦。三种手感完全不同,就像摩擦力家族的三位性格迥异的成员。
摩擦力的技术分类同样如此。静摩擦发生在两个接触面相对静止时,大小随外力变化、有上限;滑动摩擦在相对滑动时出现,通常与速度无关;粘性摩擦则随相对速度线性增长。对于机器人关节,还有齿轮滚动接触产生的滚动摩擦和油膜剪切带来的粘性阻力。这些分类是建模的第一层地图。
静摩擦和滑动摩擦的数学表达最简洁——用摩擦系数乘以正压力。静摩擦不超过其最大值,而滑动摩擦恒定:
老管家心里有数:越是年久失修的门,静摩擦和动摩擦的“差距”越大,推起来越是一顿一顿。这个差距,正是后面 Stribeck 效应的起点。
- 静摩擦不等式$F_s$ 是当前静摩擦力,它随外力增大而增大,但不会超过 $\mu_s N$ 这个天花板。
- 动摩擦等式一旦滑动,摩擦力 $F_k$ 恒等于 $\mu_k N$,与速度大小无关,体现库仑特性。
经典摩擦模型
老管家发现,同样是推开后的门,不同门“拖后腿”的感觉不一样:有的门无论快慢都是一个阻力(库仑主导),有的门越快越费劲(粘性主导)。把这两种手感叠加,就得到了最经典的摩擦模型——库仑粘性模型。它虽然简单,却是工业界最常用的基础。
数学上,库仑摩擦用一个符号函数表示方向,粘性摩擦用一个线性项表示速度依赖。两者相加,构成了完整的速度-摩擦力曲线:
这个模型虽然粗糙,但没有它就没有后续的精细化。老管家先学会“匀速拖动的大致手感”,再去感受那些更微妙的差异。
- 库仑摩擦项$F_c$ 是库仑摩擦力的恒定幅值,$\mathrm{sign}(v)$ 保证阻力方向始终与速度方向相反。
- 粘性摩擦项$b$ 是粘性系数,$v$ 是相对速度,这一项让模型在高速区随速度线性增大。
Stribeck效应
老管家最得意的经验是:门刚推开的瞬间最费劲,可一旦动起来,阻力反而会“塌”下去一截,随后才随速度回升。这个“先降后升”的手感,在摩擦学中叫 Stribeck 效应,它解释了为什么低速时机器人关节总是一顿一顿地爬行。
Stribeck 效应的本质是润滑状态的切换:速度极低时接触面几乎干摩擦(静摩擦峰),速度稍增后润滑油楔入形成边界润滑,摩擦力骤降;速度继续增大,流体润滑建立,粘性阻力重新占据主导。这个“下坡-上坡”的曲线就是 Stribeck 曲线:
所以老管家推门时从不大步猛推,而是先轻轻施加一个力、等门“松动”的那一刻再顺势用力。懂得 Stribeck 曲线的工程师,正是用同样的道理避免机器人低速爬行。
- 库仑基数$F_c$ 是滑动摩擦的基础值,相当于曲线的“地板”。
- Stribeck过渡项$F_s - F_c$ 是静摩擦与库仑摩擦的差值,指数衰减让曲线低速区迅速回落。
- 粘性项$b v$ 保证高速区曲线重新抬头,形成“先降后升”的整体形状。
迟滞建模
老管家还有一层更细的体感:把门推过去再拉回来,同样的位置对应的阻力不一样;门轴里的油泥让力-位移路径形成了一个“回环”。这就是摩擦的迟滞特性,它让摩擦力不仅取决于当前速度,还取决于过去的历史——就像门有“记忆”。
在微米级定位场景中,这种记忆效应尤其致命。即使关节没有宏观滑动,微观接触凸峰也会发生弹性变形,产生预滑位移。此时摩擦力与位移的关系呈迟滞回线,经典模型无法描述。工程上常用 Bouc-Wen 算子捕捉这种记忆:
老管家的“手感记忆”从此有了数学化身。对要求纳米级定位的光刻机、精密测量台而言,这个回环模型决定了最终能压到多小的跟踪误差。
- 激励项$A v$ 让 $z$ 跟随速度驱动,$A$ 控制回环的整体斜率。
- 阻尼项$\beta |v| z$ 让 $z$ 的增长在移动方向上被抑制,形成回环的“厚度”。
- 记忆项$\gamma v |z|$ 保证当 $v$ 换向时 $z$ 的衰减路径不同,从而产生迟滞回线。
摩擦辨识
老管家再厉害,也得反复推门才能总结出手感。辨识就是“用实验摸清每扇新门的脾气”——通过设计激励轨迹、采集速度与力矩数据,再反推出 $F_c$、$F_s$、$v_s$、$b$ 等参数。
最常用的方法是稳态辨识:让机械臂关节匀速转过一系列速度点,记录每个速度下的平均驱动力矩,就得到离散的摩擦力-速度数据。然后用最小二乘法拟合模型参数:
老管家摸清一门脾气需推几十次,工程师则靠激励轨迹和高频采样在几秒内完成辨识。辨识得越准,“手感地图”就越精细,后续补偿才越有底气。
- 数据矩阵$\Phi$ 由速度波形构成,每一行对应一次实验的回归量。
- 最小二乘核$\left( \Phi^{\mathsf{T}} \Phi \right)^{-1} \Phi^{\mathsf{T}}$ 把数据投影到参数空间,是最小二乘的闭式解。
- 输出数据$y$ 是实测摩擦力向量,$\hat{\theta}$ 是待求的参数估计。
前馈补偿
知道门脾气之后,老管家推门就再也不用等门“反应”了——手先发力,门刚想抵抗就被推过去了。这种“不等误差出现就预先出力”的思路,控制在工程中叫前馈补偿。
前馈的关键是构造一个摩擦逆模型:根据期望速度直接计算出所需的补偿力矩 $\hat{F}(v_d)$,叠加在 PD 反馈控制信号上。这样误差尚未产生,摩擦阻力已被抵消大半:
老管家推门之所以行云流水,正是因为“预判”取代了“反应”。在机械臂高速换向或低速精雕场景,前馈补偿往往能把跟踪误差缩小一个数量级。
- 比例项$K_p e$ 把位置误差放大成纠正力矩,$K_p$ 是刚度。
- 微分项$K_d \dfrac{de}{dt}$ 根据误差变化率提供阻尼,抑制振荡。
- 前馈项$\hat{F}(v_d)$ 直接按期望速度输出辨识得到的摩擦补偿力。
工程实践指南
老管家不仅会推门,还懂得保养门:定期上油、调门轴的松紧、冬天和夏天用不同的力道。工程实践也是如此——建模和补偿之外,还要从润滑、装配、温漂和振动四个方面持续优化。
润滑优化让 Stribeck 曲线整体下移;装配预紧控制静摩擦峰的高度;温度补偿修正环境对粘性系数的影响;低速振动抑制则通过调整控制增益避开负斜率区的不稳定。综合效果可以用闭环稳态误差来评估:
老管家把每扇门都调教到“顺手”的功力,正是工程实践的艺术:好的摩擦力控制,一半靠模型,一半靠保养。两者都到位,机器人才能“推得动人、停得住、感觉不像机器”。
- 残余摩擦$\Delta F$ 是模型与实际摩擦的偏差,即前馈补偿后的“漏网之鱼”。
- 增益分母$K_p$ 是 PD 控制器比例增益,分母越大,稳态误差被压得越小。
AI 应用场景
工业机械臂关节摩擦辨识与补偿
阶段:数据采集 → 模型辨识 → 控制部署
解决的问题:机械臂谐波减速器摩擦非线性强,传统 PID 在低速换向时产生“爬行”和“过冲”,定位精度上不去。通过 Stribeck 模型辨识加前馈补偿,可以在不换硬件的前提下显著提升轨迹跟踪精度。
具体案例:某 3C 装配线机械臂在点胶轨迹中,使用匀速段多速度点采样 + 最小二乘辨识 $F_c$、$F_s$、$v_s$、$b$,再叠加前馈补偿。实测轮廓误差从 ±1.2 mm 降至 ±0.15 mm,点胶均匀性明显改善。
精密 CNC 进给系统摩擦自整定
阶段:在线辨识 → 自适应补偿
解决的问题:机床导轨摩擦随温升和磨损漂移,固定参数模型会逐渐失效。利用 AI 方法在线辨识时变摩擦参数,并自动更新前馈模型,实现长期稳定加工。
具体案例:立式加工中心在 8 小时连续加工中,X 轴反向间隙误差从 12 μm 漂移到 30 μm。引入温度补偿 + 周期性摩擦再辨识后,误差始终控制在 8 μm 以内。
人形机器人关节摩擦状态估计
阶段:状态估计 → 鲁棒控制
解决的问题:人形机器人关节采用弹性驱动,摩擦力矩难以直接测量。通过摩擦观测器和迟滞模型融合,实时估计关节摩擦状态,使腿足运动更自然。
具体案例:某双足机器人膝关节在摆动相中,利用 Bouc-Wen 迟滞模型 + 扩展卡尔曼滤波估计摩擦补偿力矩,落地冲击力峰值降低 40%,步态稳定性显著提升。
Python 演示
import numpy as np def friction_force(v, fc=0.3, fs=0.8, vs=0.1, b=0.5): F = fc + (fs - fc) * np.exp(-(np.abs(v) / vs) ** 2) + b * np.abs(v) return np.where(v >= 0, F, -F) dt = 0.001t = np.arange(0, 5, dt)m = 1.0kp = 40.0kd = 8.0 v_d = 0.5 * np.sin(t) + 0.2 * np.sin(2.5 * t) def simulate(feedforward): v = 0.0 err_list = [] for vd in v_d: e = vd - v ff = friction_force(vd) if feedforward else 0.0 u = kp * e + kd * (vd - v) / dt + ff a = (u - friction_force(v)) / m v += a * dt err_list.append(abs(e)) return np.array(err_list) err_no = simulate(feedforward=False)err_ff = simulate(feedforward=True) print('无前馈平均误差: {:.5f}'.format(err_no.mean()))print('带前馈平均误差: {:.5f}'.format(err_ff.mean()))print('误差改善率: {:.1f}%'.format((1 - err_ff.mean() / err_no.mean()) * 100))
def friction_force(...)实现 Stribeck 摩擦模型,含库仑、静摩擦峰和粘性三项。ff = friction_force(vd)按期望速度查模型,这就是前馈补偿的核心:提前出力。u = kp * e + kd * (vd - v) / dt + ffPD 反馈加前馈三合一,构成了完整的控制律。a = (u - friction_force(v)) / m用牛顿第二定律仿真被控对象真实运动。simulate(feedforward=False)关闭前馈,得到纯反馈的基线误差。simulate(feedforward=True)开启前馈,对比误差改善率。
常见误区
误区
正解
误区
正解
误区
正解
误区
正解
误区
正解
面试题
Q1. 关于静摩擦与滑动摩擦的关系,以下说法正确的是:
- A.静摩擦总是小于滑动摩擦
- B.最大静摩擦大于滑动摩擦← 正确答案
- C.两者大小在任何条件下相等
- D.静摩擦与接触面积成正比
答案:B。最大静摩擦系数通常大于动摩擦系数,所以突破静摩擦后门反而更轻(B 对)。A、C 颠倒了大小关系,D 混淆了摩擦系数与接触面积的关系——摩擦系数本质上与面积无关。
Q2. 粘性摩擦最典型的特征是:
- A.与速度无关
- B.与速度成正比← 正确答案
- C.与加速度成正比
- D.仅与温度相关
答案:B。粘性摩擦由油膜剪切产生,大小随相对速度线性增长(B)。A 是库仑摩擦的特征,C 属于惯性力范畴,D 片面化——温度影响系数但不改变线性关系。
Q3. Stribeck 曲线负斜率区对应的是:
- A.流体完全润滑状态
- B.边界与混合润滑状态← 正确答案
- C.无润滑的干摩擦区
- D.粘性主导的高速区
答案:B。负斜率出现在速度从零升高、润滑膜尚未完全建立的边界润滑区(B),此时摩擦从静摩擦峰陡降。A、D 属于高速粘性主导区,C 是速度接近零的静摩擦峰,均不准确。
Q4. 库仑摩擦模型 F = μN·sign(v) 中的 μ 是:
- A.静摩擦系数
- B.动摩擦系数← 正确答案
- C.粘性阻尼系数
- D.弹性模量
答案:B。库仑模型描述恒定滑动摩擦,μ 应为动摩擦系数(B)。静摩擦系数描述的是突破前的上限,粘性系数对应线性速度项,弹性模量更是无关概念。
Q5. 下列哪些现象需要使用迟滞摩擦模型来描述:
- A.微米级预滑位移← 正确答案
- B.低速粘滑振动← 正确答案
- C.摩擦力的记忆效应← 正确答案
- D.轴承温度持续升高
答案:ABC。预滑位移(A)和摩擦记忆(C)正是迟滞模型的核心特征,粘滑振动(B)由静摩擦与动摩擦切换引起,也伴随迟滞行为。温度升高(D)是环境因素,不属于迟滞现象本身。
Q6. 与纯反馈控制相比,摩擦前馈补偿的最大优势是:
- A.不需要建立数学模型的
- B.提前补偿不引入相位滞后← 正确答案
- C.始终能保证系统稳定
- D.完全消除所有非线性
答案:B。前馈按期望速度提前出力(B),不等误差出现就行动,因此没有反馈回路固有的相位滞后。A 错误——前馈恰恰依赖模型;C、D 夸大其词,前馈过补偿反而会破坏稳定。
Q7. 摩擦前馈过补偿可能导致:
- A.系统刚度大幅提升
- B.高频极限环振荡← 正确答案
- C.摩擦逐渐被消除
- D.能耗显著下降
答案:B。过补偿使系统等效为负阻尼,摩擦能量被“反向注入”,引发持续振荡(B)。A 是比例增益升高的效果,C、D 与过补偿的物理后果相反——过补偿不会消灭摩擦,只是叠错了方向。
Q8. 温度升高时,润滑脂的粘性摩擦通常表现为:
- A.显著增大
- B.逐渐减小← 正确答案
- C.保持不变
- D.先增后减
答案:B。温度升高使润滑脂粘度下降,油膜剪切阻力变小(B)。老管家夏日推门感觉更“轻”,正是这个道理。A 是低温时的表现,C、D 不符合常见润滑脂的温粘特性。
Q9. 设计机器人关节摩擦辨识实验时,合理的做法包括:
- A.以多个恒定转速采集稳态力矩← 正确答案
- B.加入正反向换向的激励轨迹← 正确答案
- C.仅用一个高速段拟合全部参数
- D.融合力矩传感器与位置编码器数据← 正确答案
答案:ABD。多转速稳态点覆盖曲线全貌(A),换向激励激活摩擦记忆与迟滞(B),多传感器融合提高信噪比(D)。仅用高速段(C)无法辨识静摩擦峰和 Stribeck 斜率,明显不合理。
Q10. 关于摩擦力建模在工程中的综合应用,正确的有:
- A.Stribeck 模型可解释低速爬行← 正确答案
- B.Bouc-Wen 模型适合微米级定位← 正确答案
- C.前馈补偿无需辨识参数
- D.润滑与温控能降低辨识难度← 正确答案
答案:ABD。Stribeck 负斜率正是低速爬行的根源(A),Bouc-Wen 的预滑位移建模适合微米级场景(B),良好的润滑与温控让摩擦曲线更稳定、辨识更准(D)。前馈必须有模型参数支撑(C 错)。