4. 动态摩擦模型:LuGre模型详解、鬃毛模型思想

各位工程师朋友,咱们今天聊点硬核的——动态摩擦模型。说实话,静态摩擦模型(比如库仑+粘滞)在低速段根本不够用。你想想看,伺服系统在零速附近来回震荡,或者爬行现象怎么调都调不好,十有八九是静态模型没把摩擦的“动态特性”描述清楚。

我个人习惯把摩擦分成两类:静态模型只告诉你“摩擦力跟速度有啥关系”,而动态模型则要回答“摩擦力是怎么从静止过渡到运动的”。今天要讲的LuGre模型,就是目前工程界用得最广的动态摩擦模型之一。

4.1 鬃毛模型思想:从微观到宏观

先说说这个模型的灵感来源。你想象一下两个接触表面,微观上看其实都是凹凸不平的。这些凸起就像一根根小鬃毛(bristle)互相咬合在一起。当外力施加时,这些鬃毛会像弹簧一样被拉伸,产生弹性力。

为什么会这样?因为真正的接触面并不是理想光滑的。我在项目中遇到过一台精密转台,低速时总是有微小的抖动。用显微镜一看,导轨表面其实布满了微米级的峰谷。这些峰谷互相嵌合,就是鬃毛模型的物理基础。

鬃毛模型的核心思想可以概括为三点:

  • 弹性变形阶段:外力小于静摩擦力时,鬃毛只发生弹性变形,没有真正滑动
  • 塑性滑动阶段:外力超过静摩擦力,鬃毛开始断裂、滑移
  • 稳态滑动阶段:速度稳定后,鬃毛的平均变形量趋于常数

说白了,这个模型把摩擦看成是一个“弹性-塑性”的过渡过程。你想想看,这比单纯用符号函数去拟合要合理得多。

核心洞察:鬃毛模型把摩擦从“静态映射”升级成了“动态过程”。它用一个一阶微分方程来描述鬃毛的平均变形量,从而捕捉到预滑动位移(presliding displacement)和摩擦记忆效应。

4.2 LuGre模型数学表达

好,咱们上公式。LuGre模型的状态变量是鬃毛的平均变形量 \( z \),它的动态由下式描述:

dz/dt = v - σ₀ * |v| * z / g(v)

其中:

  • \( v \):相对运动速度
  • \( \sigma_0 \):鬃毛刚度系数
  • \( g(v) \):描述Stribeck效应的函数

而摩擦力则由三部分组成:

F_f = σ₀ * z + σ₁ * dz/dt + σ₂ * v

这里:

  • \( \sigma_0 z \):鬃毛弹性力(类似弹簧)
  • \( \sigma_1 dz/dt \):鬃毛阻尼力(类似阻尼器)
  • \( \sigma_2 v \):粘滞摩擦力

嗯,这里要注意:\( g(v) \) 函数通常取为:

g(v) = F_c + (F_s - F_c) * exp(-(v/v_s)²)

其中 \( F_c \) 是库仑摩擦力,\( F_s \) 是静摩擦力,\( v_s \) 是Stribeck速度。

参数 物理含义 典型取值范围
σ₀ 鬃毛刚度 10⁵ ~ 10⁷ N/m
σ₁ 鬃毛阻尼 10² ~ 10⁴ N·s/m
σ₂ 粘滞系数 0.1 ~ 100 N·s/m
F_s 静摩擦力 0.5 ~ 5 N
F_c 库仑摩擦力 0.1 ~ 2 N

实战技巧:参数辨识时,我建议先测稳态速度-摩擦力曲线(得到F_c、F_s、v_s、σ₂),再通过阶跃响应或正弦扫频来辨识σ₀和σ₁。我曾经用这个方法在一台直线电机上只花了半天就完成了参数整定。

4.3 LuGre模型的工程价值

这个模型到底好在哪?我总结了几点:

  1. 捕捉预滑动位移:在零速附近,摩擦力不是突变,而是连续变化的。LuGre模型能准确描述这个“微米级”的弹性变形过程。
  2. 摩擦记忆效应:摩擦力不仅取决于当前速度,还取决于历史运动状态。比如你从静止加速和从匀速减速,同样的速度下摩擦力是不同的。
  3. Stribeck效应:低速时摩擦力随速度增加而下降,这个“负阻尼”特性是造成爬行的元凶。LuGre模型天然包含这个特性。

我在做数控机床进给轴时,遇到过一个问题:反向间隙补偿后,换向时还是有明显的“过冲”。后来用LuGre模型做前馈补偿,把预滑动位移考虑进去,过冲量直接降了60%。

避坑指南:我曾经在参数辨识时犯过一个低级错误——直接用最小二乘法拟合所有参数。结果σ₀和σ₁严重耦合,辨识出来的模型在仿真里跑得挺好,一上实际系统就发散。后来我改用分段辨识:先稳态后动态,才把问题解决。

4.4 知识体系结构图

下面这张图帮你理清本章的核心逻辑:

动态摩擦模型知识体系 物理基础 鬃毛模型思想 数学模型 LuGre微分方程 参数体系 σ₀, σ₁, σ₂, F_s, F_c 核心特性 • 预滑动位移 • 摩擦记忆效应 • Stribeck效应 工程应用 • 前馈补偿 • 参数辨识方法 • 低速平稳性优化 总结:从微观鬃毛到宏观摩擦补偿 动态模型 → 更精确的低速控制

4.5 实战中的注意事项

最后,我分享几个在实际项目中用LuGre模型的经验:

  • 离散化要小心:LuGre模型是连续时间模型,离散化时采样频率至少要高于系统带宽的10倍,否则数值积分会发散。
  • 初始状态处理:模型启动时,鬃毛变形量z的初始值不能随便设。我一般先让系统在零速保持一段时间,让z收敛到稳态值。
  • 不要过度拟合:LuGre模型有5个参数,但实际系统中有些参数可能不敏感。比如在高速段,σ₀和σ₁的影响就很小,可以固定为经验值。

一个小技巧:如果你觉得LuGre模型参数太多,可以先试试简化版——把σ₁设为零,只保留σ₀、σ₂和Stribeck参数。很多场合下,简化版已经能解决80%的低速抖动问题。

好了,关于LuGre模型和鬃毛模型思想,今天就聊到这里。记住,动态摩擦模型不是万能的,但它确实比静态模型更接近物理本质。下次你在调低速平稳性时,不妨试试用这个模型做前馈补偿——效果可能会让你惊喜。


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