4. 摩擦模型从库仑到LuGre
在多体系统中,摩擦是导致非线性动力学行为最普遍的来源之一。若只把摩擦力简化为一个与速度方向相反的常值,仿真虽然能跑通,却会丢失静摩擦锁定、低速爬行、黏滑振荡和预滑移等关键现象。本节沿着“库仑→Stribeck→LuGre”的建模脉络,说明各模型在表达什么、参数如何影响行为,以及黏滑切换与摩擦记忆效应在数值上如何体现。
一、从库仑摩擦到静摩擦:最基础的两态描述
库仑摩擦模型假设接触面间的摩擦力大小为 F_f = μ·F_n,方向与相对滑动速度 v_rel 相反。它只区分“动”这一种状态,无法表达静止时摩擦力可以取任意值以平衡外力这一事实。因此工程上常引入静摩擦:当 |v_rel| < v_eps(速度阈值)时,认为接触处于黏滞状态,此时摩擦力不再是固定值,而是由切向力平衡条件决定,并受最大静摩擦 F_s = μ_s·F_n 约束。
这一“黏滞—滑动”两态切换是理解后续所有模型的基础。判断逻辑可以写成:若处于黏滞态且所需切向力超过 F_s,则切换到滑动;若处于滑动且相对速度过零并持续小于阈值,则回到黏滞。切换本身会引入不连续,直接导致数值积分中的刚性问题和抖振。
二、Stribeck效应:低速区的负斜率
真实摩擦在刚脱离静止后的低速段并非立刻达到动摩擦值,而是先下降再回升,形成一条负斜率曲线,这就是 Stribeck 效应。常用经验形式为
F_f(v) = F_c + (F_s - F_c)·exp(-|v/v_s|^δ) + σ·v
其中 F_c 为库仑动摩擦,F_s 为最大静摩擦,v_s 为 Stribeck 特征速度,δ 常取 1 或 2,σ 为黏性阻尼系数。当 v_s 很小(例如 0.001 m/s 量级)时,负斜率区极窄,系统容易在低速下出现爬行;当 v_s 增大,负斜率被拉宽,黏滑振荡的周期和幅值都会改变。因此 v_s 与 F_s/F_c 的比值是决定低速稳定性的两个关键参数。
三、LuGre模型:用内部状态表达预滑移与记忆
LuGre 模型把接触面想象成大量弹性鬃毛,引入不可直接测量的内部状态 z 表示鬃毛平均变形量,其量纲为长度。核心方程如下:
dz/dt = v_rel - |v_rel|·z / g(v_rel)
g(v_rel) = (F_c + (F_s - F_c)·exp(-|v_rel/v_s|^2)) / σ0
F_f = σ0·z + σ1·dz/dt + σ2·v_rel
其中 σ0 为鬃毛刚度,σ1 为微观阻尼,σ2 为黏性摩擦系数。当 v_rel 很小时,z 缓慢增长,摩擦力近似与位移成正比,这正好刻画了预滑移阶段的切向柔度;当 v_rel 增大,z 趋于稳态值 g(v_rel)·sgn(v_rel),摩擦力回到 Stribeck 曲线。由于 z 具有状态记忆,卸载后重新加载时摩擦力不会立刻回到原点,而是沿滞回路径变化,这就是摩擦记忆效应的来源。
四、黏滑切换的数值实现要点
在时域积分中,LuGre 的 dz/dt 在 v_rel→0 附近会出现刚性,若用显式方法且步长过大,z 会剧烈振荡甚至发散。工程上常采用以下处理:其一,对 dz/dt 使用半隐式或指数积分,把 |v_rel|/g(v_rel) 视为局部线性衰减项;其二,设置速度阈值 v_eps(例如 1e-4 m/s),当 |v_rel| < v_eps 时冻结 z 并改用静力平衡求解;其三,对 g(v_rel) 在零速附近做平滑,避免除零。以单自由度质量块为例,取 m=1 kg、k=100 N/m、F_n=10 N、μ_s=0.4、μ_c=0.3、v_s=0.005 m/s、σ0=1e5 N/m、σ1=100 N·s/m、σ2=0.2 N·s/m,驱动速度从 0 缓慢增大,可观察到:初始阶段质量块随驱动一起运动(黏滞),当弹簧力达到 F_s=4 N 时突然滑动,随后进入周期性黏滑,位移曲线呈锯齿状。若把 v_s 从 0.005 提高到 0.05,负斜率减弱,锯齿幅值明显下降,系统趋于平滑滑动。
五、摩擦记忆效应与参数辨识
LuGre 的记忆效应体现在 z 的路径依赖上:当外力先增大后减小,z 不会沿原路返回,而是形成滞回环。滞回环的面积对应一个加载循环中的能量耗散,这正是微动磨损和阻尼的来源。在参数辨识时,可先由稳态 Stribeck 曲线拟合 F_s、F_c、v_s、σ2,再由预滑移阶段的力—位移斜率估计 σ0,最后由滞回环宽度估计 σ1。需要强调的是,σ0 与 σ1 并非独立可辨识,通常固定其一再拟合另一项,否则会出现参数漂移。
v_eps 是否过大导致黏滞态误判,以及 σ0 是否与积分步长匹配。经验上,步长应满足 h·σ0/σ1 < 0.1,否则鬃毛状态会数值失稳。六、模型选择建议
若系统始终处于中高速滑动、且不关心低速爬行,库仑加黏性阻尼已足够;若需要复现低速负斜率与极限环,Stribeck 是必要项;若还要表达预滑移柔度、滞回耗散和卸载后的记忆,则必须使用 LuGre 或类似的动态摩擦模型。选择依据不是模型越复杂越好,而是所关心的现象是否落在该模型能表达的范围内。