プリセット
バネ・質量パラメータ
初期条件(おもりをドラッグでも設定可)
比較ゴースト(θ₀+2°)
ONにすると初期角をわずかにずらした第2の質点を重ね、カオスでの感度(軌道の分岐)が見えます。
共振条件チェック(小振幅近似):
ω_spring = √(k/m) = — rad/s
ω_pendulum = √(g/r_eq) = — rad/s
比 ω_spring/ω_pendulum = —(≈2で自己パラメトリック共振)
リアルタイム・アニメーション
コイルばね
速度ベクトル v
軌跡トレイル
自然長 L₀
ゴースト
エネルギー収支(合計が一定=保存チェック)
減衰のない理想系では合計エネルギー(黄)は一定。KE・重力PE・ばねPE が互いに移り変わります。基準は初期全エネルギー(負値を含むため0点をシフトして表示)。
モード間のエネルギー移動 θ(t) と r(t)
θ(t)(振れ)
r−L₀(伸縮)
2:1共振では片方の振幅が膨らむと他方が縮む「うなり」が現れ、バウンドと振れの間でエネルギーが往復します。
理論・主要公式
$$\ddot{r}= r\dot{\theta}^2 + g\cos\theta + \frac{k}{m}(L_0 - r)$$
$$\ddot{\theta}= \frac{-g\sin\theta - 2\dot{r}\dot{\theta}}{r}$$
固有振動数:$\omega_r=\sqrt{k/m}$(ばね)、$\omega_\theta=\sqrt{g/r_{eq}}$(振り子、$r_{eq}=L_0+mg/k$)。$\omega_r\approx 2\omega_\theta$ で自己パラメトリック共振。
検証:RK4(dt=0.001s)で120秒走らせても全エネルギー誤差 <1×10⁻⁹%。$\omega_r=\sqrt{k/m}$ は数値一致(誤差0.00%)。$\omega_\theta$ は小振幅で√(g/r_eq)と0.3%以内で一致。2:1プリセットで振れ角が2°→約14°(約7倍)に増幅。
RK4数値積分 dt=0.001s
弾性振り子(バネ振り子)とは
🙋
単純な振り子と、この「バネ振り子」って何が違うんですか?
🎓
大まかに言うと、棒がバネになった振り子だね。単純振り子は長さが固定だから、振れ角の運動だけを考えればいい。でもバネ振り子は、振り子としての「揺れ」と、バネの「伸び縮み」が同時に、しかも影響し合いながら起こるんだ。上のシミュレーターで「バネ定数k」を小さくして柔らかいバネにすると、グニャグニャと伸び縮みしながら揺れる様子がよくわかるよ。
🙋
え、そうなんですか?じゃあ、動きは非常に複雑になりそう…。何か特別な動き方ってあるんですか?
🎓
実務で面白いのが「パラメトリック共振」だね。これは、バネの伸縮のリズムが振り子の揺れをどんどん増幅させる現象なんだ。例えば、シミュレーターで「バネ定数k」と「質量m」を調整して、バネの固有振動数が振り子の固有振動数の約2倍になるように設定してみて。すると、最初は小さな揺れでも、みるみるうちに大きく振れるようになるのが観察できるはずだよ。
🙋
エネルギーはどうなってるんですか?バネが伸び縮みするエネルギーと、振り子が揺れるエネルギーが、行ったり来たりするということですか?
🎓
その通り!これがバネ振り子の最大の特徴だ。初期条件を変えてシミュレーションを走らせると、グラフでエネルギーが時間とともにどう移り変わるか見えるだろ?最初はバネの伸縮エネルギーが大きくても、しばらくすると振り子の運動エネルギーと位置エネルギーに移って、また戻って…を繰り返す。この「エネルギーのやりとり」を体感できるのが、このシミュレーターの醍醐味なんだ。
よくある質問
バネ定数kを小さく(例: 5〜15 N/m)、質量mを大きく(例: 2〜5 kg)設定し、初期の振れ角を大きく(例: 60°以上)取ると、伸縮と振れの連成が強まりカオス的な挙動が観察しやすくなります。初期速度も与えるとより複雑な軌道が得られます。
自然長はバネに力がかかっていない時の長さ、初期長さはシミュレーション開始時のバネの長さです。初期長さを自然長より大きくすると初期伸びが生じ、小さくすると初期縮みが生じます。これにより、初期の復元力や平衡位置が変わり、振動の振幅や周期に影響します。
RK4(4次ルンゲ=クッタ法)は、運動方程式を数値的に高精度で解く手法です。バネ振り子のような非線形系では誤差が蓄積しやすいため、RK4を用いることでリアルタイムでも安定したシミュレーションが可能になり、カオス的な挙動も正確に再現できます。
パラメトリック共振は、バネの伸縮周期が振り子の固有振動数の2倍付近になると、小さな揺れが増幅される現象です。シミュレーターでバネ定数や質量を調整し、初期の振れ角を小さくして観察すると、徐々に振れ幅が大きくなる様子を確認できます。
実世界での応用
柔軟ロボットアーム:産業用ロボットアームを軽量化・高速化するため、アーム自体にある程度の柔軟性(弾性)を持たせることがあります。このような「柔軟リンクロボット」の動的挙動を解析する際、バネ振り子のモデルが基礎となります。伸縮と回転の連成振動を制御しないと、定位精度が落ちてしまいます。
ケーブル・ワイヤー構造物:クレーンのワイヤーで吊り下げられた荷物や、海底ケーブルなどは、バネ振り子と同様に伸縮振動と揺れ振動が連成します。特に船舶からの荷役作業では、この複合振動による荷物の不安定な動き(スイング)を抑制する制御技術が重要です。
原子間力顕微鏡(AFM)のカンチレバー:試料表面を走査する探針を支える薄い板(カンチレバー)は、一種の振り子としてモデル化できます。ここに探針と試料間の分子間力がバネのように働くため、その動的応答を理解する上でバネ振り子の理論が応用されます。
構造物の耐震設計:高層ビルや橋梁は、地震時に複雑な振動モードを示します。特に、塔部(バネに相当)の縦振動と、上部構造(振り子に相当)の横揺れが連成してエネルギーを交換する挙動は、バネ振り子のモデルでその一端を理解することができます。
よくある誤解と注意点
まず、「バネが柔らかいほど振り子の動きが遅くなる」と思いがちですが、実はそう単純ではありません。確かにバネ定数kを小さくするとバネの伸縮はゆっくりになりますが、振り子の揺れの周期は主に初期の長さで決まります。kを極端に小さくして「グニャグニャ」状態にすると、伸縮と揺れが強く連成し、一見不規則な動きに見えることがあります。これは動きが遅いのではなく、複雑になっているのです。
次に、パラメータ設定時の落とし穴です。「自然長L0」と「初期長さr0」を混同しないでください。シミュレーション開始時のバネの長さはr0です。例えば、L0=1.0m、r0=1.5mと設定すると、最初からバネが0.5m伸びた状態で静止することになります。この状態からそっと手を離す(初速度ゼロ)と、おもりは真下に落ちながら振り子運動を始める、という予想外の動きになります。意図した初期状態を作りたいなら、r0とL0の関係を意識しましょう。
最後に、シミュレーション結果の解釈です。エネルギー保存則は、減衰項がない理想系では常に成り立ちますが、バネのエネルギーと振り子のエネルギーは保存「されない」という点が重要です。両者が時間とともに盛んにやり取りする(交換する)のが本質です。グラフでエネルギーの内訳が激しく変動していても、総和が一定ならばシミュレーションは正しく動作しています。エネルギーが完全に一方に偏った状態から動き始めることは、現実ではほぼありえません。