库仑阻尼模拟器 返回
振动工程模拟器

库仑阻尼模拟器 — 干摩擦下的自由振动

可视化带干摩擦的质量-弹簧系统自由振动。不同于粘性阻尼,振幅按线性规律衰减,在有限时间内停止,且静止位置一般带有死区内的偏移。

参数设置
质量 m
kg
弹簧刚度 k
N/m
动摩擦系数 μ
初始位移 x_0
m

重力加速度 g = 9.81 m/s² 固定。摩擦力 F_d = μ·m·g 方向与速度相反。停止判据:|ẋ| < ε 且 |k·x| ≤ F_d。

计算结果
固有频率 f_n
每周期振幅减小 Δ=4F_d/k
停止前的周期数 N_stop
停止时间 T_stop
时间响应 x(t)

蓝实线=位移 x(t) / 橙虚线=线性包络 / 灰带=死区 ±F_d/k / 黄竖线=停止时刻

相平面 (x, ẋ)

纵轴=速度 ẋ / 横轴=位移 x。与粘性阻尼的对数螺线不同,中心在每半周期跳到 ±F_d/k。

理论与主要公式

库仑阻尼下的自由振动是一个分段线性的非线性系统,恒定大小的摩擦力 F_d = μ·m·g 始终与速度方向相反,摩擦项的符号在每半周期切换一次。

运动方程(sgn 为符号函数):

$$m\ddot{x} + k\,x + F_d\,\mathrm{sgn}(\dot{x}) = 0,\qquad F_d = \mu\,m\,g$$

固有角频率与周期。库仑阻尼下频率不变:

$$\omega_n = \sqrt{k/m},\qquad T = \frac{2\pi}{\omega_n}$$

每整个周期振幅减小量(线性):

$$\Delta x = \frac{4\,F_d}{k} = \frac{4\,\mu\,m\,g}{k}$$

死区(进入即停止)与停止前的周期数:

$$|x| \le \frac{F_d}{k},\qquad N_\text{stop} \approx \frac{x_0\,k}{4\,F_d} - \frac{1}{4}$$

什么是库仑阻尼模拟器

🙋
「库仑阻尼」是什么?粘性阻尼倒是在教科书上见过……
🎓
简单说,就是想象一个连着弹簧的质量在桌面上滑动,桌面之间有干摩擦——这就是库仑阻尼振动。方程是 $m\ddot{x} + k x + F_d\,\mathrm{sgn}(\dot{x}) = 0$,$F_d = \mu m g$。粘性阻尼的 $c\dot{x}$ 与速度成正比,而这里摩擦力的「大小恒定,方向只随速度反转」。看一眼上面的时间响应曲线。
🙋
啊,确实跟普通的衰减正弦曲线不一样!包络线是直线,不是指数。
🎓
这就是最关键的特点。粘性阻尼按 $e^{-\zeta\omega_n t}$ 减小振幅,「数学上永远不会停」。库仑阻尼则每个周期恰好减小 $4F_d/k$,所以包络是直线,且在有限时间内完全停止。实际机械「咔哒」一下停下来的,大多是这种模式。
🙋
「死区」是什么?图上灰色的那条带子。
🎓
也很有趣。当质量瞬时停下时,如果弹簧回复力 $|kx|$ 比摩擦力 $F_d$ 小,摩擦力会完全抵消它,质量就无法再启动。条件是 $|x| \le F_d/k$。所以振动并不必然停在原点,而是停在这条带子里的某一处。把摩擦系数滑块调大,可以看到带子变宽、停止位置的偏移也变大。
🙋
原来如此!这是不是也是相平面图跟粘性阻尼的对数螺线看起来不一样的原因?
🎓
观察很敏锐。粘性阻尼的相平面是平滑收敛到原点的对数螺线,而库仑阻尼是「分段线性系统」,每半个周期摩擦项符号都切换一次,因此螺线中心每半周期跳一下 $\pm F_d/k$,形成阶梯状螺线。在相平面面板可以看到圆弧不断改变中心、最后落到死区里。

常见问题

每半周期只有摩擦项符号变化,而在各半周期内是「弹簧+恒定偏置」的简谐运动。若将平衡点改为偏移后的中心 ±F_d/k,恢复力本身没有变化,固有角频率仍为 ω_n = √(k/m)。粘性阻尼会使特征值变复数,将阻尼频率降到 ω_d = ω_n·√(1−ζ²),而库仑阻尼下周期本身保持不变。
运动方程为 m·ẍ + c·ẋ + k·x + F_d·sgn(ẋ) = 0,振幅衰减形式为「指数项 ×(指数项 − 偏置)」。包络既非纯指数也非纯直线,初期接近线性,振幅充分减小后接近指数。运动仍在有限时间内停止,停止位置可在死区 |x| ≤ F_d/k 中任意一点。在实测响应曲线中,通常通过能量耗散平衡来分别辨识两种阻尼的贡献。
由于含符号函数,系统是非线性且不光滑的,线性振动理论的叠加原理不适用。常用方法有:(1) 分段线性求解——对每半周期解线性 ODE 后拼接;(2) 等效线性化(谐波线性化)——按第一阶傅里叶分量将摩擦项替换为等效粘性阻尼;(3) 时间步进数值积分(Runge-Kutta、velocity Verlet)。本模拟器采用方法 (3),并将 sgn(ẋ) 在 |ẋ| < ε 时取为 0 以防止数值颤振。
有。代表性的有叠片板簧(层间摩擦)、抗震摩擦阻尼器(X 形支撑中央夹高摩擦垫)、机械表的擒纵机构(用于维持恒定振幅)等。粘性阻尼器的阻尼系数会随温度和速度漂移,而干摩擦在垂直载荷恒定时阻尼力几乎与速度和温度无关,是其优点。但停止偏移、死区、粘滑等会损害精密定位精度,因此在伺服系统中有时会进行主动补偿。

实际应用

汽车叠片板簧悬架:卡车和大巴的叠片板簧由多片钢板叠合而成,板与板之间存在干摩擦。它与液压减振器并联,以库仑阻尼形式消耗振动能量、改善乘坐舒适性。设计时通过叠片数量、接触面积、润滑状态来调节摩擦力 F_d,使每周期振幅减小量 4F_d/k 达到设计目标。

地震摩擦阻尼器:抗震设计中,在 X 形钢支撑的中央夹入高摩擦垫,地震时利用相对滑动绘制滞回环。库仑阻尼对速度依赖性小,无论是缓慢的地震动还是迅速的余震都能给出稳定阻尼力,对低层建筑抗震加固特别有效。

机械表的擒纵机构:摆轮+游丝振动系统在擒纵叉与擒纵轮接触处产生微小干摩擦。仅靠库仑阻尼振动会停下来,因此主发条的扭矩每半周期「踢」一下摆轮来维持恒定振幅。库仑阻尼的「有限停止特性」就是设计周期性能量补充的出发点。

机床进给轴的粘滑:滑动导轨在低速进给时常出现「不动→突然动」反复的粘滑现象。这是静/动摩擦差与刚度耦合的非线性现象,会严重影响表面粗糙度和定位精度。对策是改用滚动导轨、静压导轨或采用速度前馈补偿,其效果验证中「死区」和「停止偏移」的概念被直接用作分析工具。

常见误解与注意事项

最常见的误解是认为「库仑阻尼下振动最终会停在 x=0」。实际上,只要 $|kx|$ 不超过 $F_d$,质量就无法重新启动,因而停在死区 $|x| \le F_d/k$ 内某点(一般不在原点)。在模拟器中把 μ 调大,可以看到停止位置明显偏离原点。这种「停止偏移」在精密定位机构中是定位误差的直接来源,需要伺服控制或主动补偿来抑制。

其次常见的错误是把每个周期的振幅减小量与「2F_d/k」混淆。半周期减小 2F_d/k,一个完整周期减小是其两倍,即 4F_d/k。模拟器中「每周期振幅减小」卡片显示的就是这个 4F_d/k。如果把半周期与全周期搞混,对停止前周期数 $N_\text{stop}$ 的估算会偏差一倍。最好在分析之初就明确:是按半周期(异号峰值之间)计数,还是按整周期(同侧相邻峰值之间)计数。

最后,sgn(ẋ) 的数值计算在 ẋ = 0 附近容易颤振,需要特别注意。如果直接用 sgn(ẋ) = ẋ/|ẋ|,速度穿越零的瞬间符号在 ±1 之间剧烈切换,即使用 Runge-Kutta 也会出现嗡鸣式的数值解。实现上必须做两件事:(1) 设置速度阈值 ε_v(典型值 1e-4~1e-6),当 |ẋ| < ε_v 时令 sgn 为 0;(2) 当 |ẋ| < ε 且 |kx| ≤ F_d 时直接切换到静止状态。本模拟器采用 ε_v = 1e-4,太大会过早停止,太小则颤振残留——通过这种实现可直观体会其中的折中。