クーロン減衰シミュレーター 戻る
振動工学シミュレーター

クーロン減衰シミュレーター — 乾燥摩擦による自由振動

質量-ばね系に乾燥摩擦が作用するクーロン減衰の自由振動を可視化。粘性減衰と違い、振幅が線形に減少し有限時間で停止する様子と、不動領域による停止オフセットを学べます。

パラメータ設定
質量 m
kg
ばね定数 k
N/m
動摩擦係数 μ
初期変位 x_0
m

重力加速度 g = 9.81 m/s² 固定。摩擦力は F_d = μ·m·g、向きは速度と逆。停止判定は |ẋ| < ε かつ |k·x| ≤ F_d。

計算結果
自然振動数 f_n
1 周期での振幅減少 Δ=4F_d/k
停止までの周期数 N_stop
停止時間 T_stop
時間応答 x(t)

青実線=変位 x(t)/橙破線=線形包絡線 ±(x_0 − 2F_d·n/k)/灰色帯=不動領域 ±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}$$

1 周期あたりの振幅減少(線形):

$$\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}$ で減るから「数学的には永遠に止まらない」。でもクーロン減衰は1周期あたり $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 の中の任意の点になります。実機の振動応答測定では、両方の寄与を分離するためにエネルギー散逸量から個別に同定します。
符号関数を含むため非線形・不連続な系であり、線形振動論の重ね合わせ原理が使えません。半周期ごとに区分線形ODEを解いて接続する「区分線形解法」、等価粘性減衰でフーリエ第1項を線形化する「等価線形化(調和線形化)」、あるいは時間ステップ法(Runge-Kutta、velocity Verlet)による数値積分が用いられます。本シミュレーターは数値積分方式で、sgn(ẋ) は |ẋ| < ε で 0 に置き換えて数値発振を防いでいます。
あります。代表例は積層リーフスプリング(板間摩擦)、地震制振の摩擦ダンパー(X字状ブレースに摩擦パッドを挟む)、機械式時計の脱進機(テンプの振動を一定振幅で維持)です。粘性ダンパーが温度や速度で減衰係数が変わるのに対し、乾燥摩擦は荷重(垂直抗力)が一定なら減衰力もほぼ一定で温度依存性が小さい——という長所があります。一方で停止オフセット、不動領域、スティックスリップは精密位置決めには害となるため、サーボ系では能動補償することもあります。

実世界での応用

自動車サスペンションのリーフスプリング:トラック・バスのリーフスプリングは板を重ねた構造で、板と板の間に乾燥摩擦が働きます。粘性ショックアブソーバと並列に作用するクーロン減衰として、振動エネルギーを散逸させて乗り心地を改善します。設計時は重ねた板の枚数・接触面積・潤滑状態で摩擦力 F_d を調整し、振幅の線形減衰量 4F_d/k を狙いの値に合わせ込みます。

地震時の摩擦ダンパー:制振建築では、X字状の鋼ブレースの中央に高摩擦パッドを挟み、地震時に発生する変形でパッド間を滑らせて履歴ループを描かせます。クーロン減衰は速度依存性が小さく、ゆっくりした地震動でも素早い余震でも一定の減衰力を出せるのが長所で、特に低層建物の制振補強に有効です。

機械式時計の脱進機:テンプ(バランスホイール)+ ひげぜんまいの振動系では、脱進機のパレット爪と歯車の接触で微小な乾燥摩擦が発生します。クーロン減衰だけでは振動が止まってしまうため、メインスプリングのトルクが半周期ごとに「キック」を与えて振幅を一定に保ちます。クーロン減衰の有限停止性は、定振幅維持のための周期エネルギー供給設計の出発点になります。

工作機械送り軸のスティックスリップ:すべり案内面では、低速送り時に「動かない→急に動く」を繰り返すスティックスリップが発生します。これはクーロン摩擦の静摩擦・動摩擦の差と剛性が組み合わさった非線形現象で、表面仕上げ精度・位置決め精度を大きく損ねます。対策として転がり案内への置換、油静圧案内、もしくは速度フィードフォワード補償が実施され、その効果検証で「不動領域」「停止オフセット」の概念が直接活用されます。

よくある誤解と注意点

最も多い誤解は、「クーロン減衰でも振動はいずれ x=0 で止まる」と考えてしまうことです。実際にはばね力 $|kx|$ が摩擦力 $F_d$ を超えなければ質量は動き出せないため、不動領域 $|x| \le F_d/k$ の中のどこか(一般には原点ではない位置)で停止します。シミュレーターで摩擦係数 μ を大きくすると、停止時の x がはっきり原点からずれるのが見えます。この「停止オフセット」は精密位置決め機構では位置誤差として直接効いてくるため、サーボ制御や能動補償が必要になります。

次に多いのが、1周期で振幅が減る量を「2F_d/k」と混同することです。半周期で減る量が 2F_d/k、1周期で減る量はその2倍の 4F_d/k です。シミュレーターの「1 周期での振幅減少」カードはこの 4F_d/k を表示しています。半周期と1周期を取り違えると、停止までの周期数 $N_\text{stop}$ の見積もりが2倍ずれるので注意してください。半周期ごとの離散的な振幅減少を「片側の振幅 → 反対側の振幅」の絶対値ジャンプで数えるのか、フル1周期で数えるのかを最初に決めておくとよいでしょう。

最後に、sgn(ẋ) の数値計算は ẋ = 0 で発振しやすい点に注意してください。素朴に sgn(ẋ) = ẋ/|ẋ| とすると、ẋ がゼロを跨ぐ瞬間に符号が ±1 で激しく切り替わり、Runge-Kutta などでも振動的な数値解を出します。実装上は「速度のしきい値 ε_v(典型的に 1e-4〜1e-6)を設けて |ẋ| < ε_v なら sgn を 0 として扱う」「停止判定 |ẋ|<ε かつ |kx|≤F_d で完全に静止に切り替える」の2点が必須です。本シミュレーターは ε_v = 1e-4 を採用しており、これを大きくしすぎると停止が早すぎ、小さすぎると数値振動が残る——というトレードオフを実装で体感できます。