左端の球をドラッグして引き上げ、離してスタート
📐 物理モデル
- 振り子運動: $\ddot{\theta}= -\dfrac{g}{L}\sin\theta$(Verlet積分)
- 弾性衝突(等質量): $v_1' = e \cdot v_2,\; v_2' = e \cdot v_1$
- 振り子周期: $T = 2\pi\sqrt{\dfrac{L}{g}}$
- 運動量保存: $\sum m_i v_i = \text{const}$
球をドラッグして引き上げ、離すと弾性衝突の連鎖が始まる。重力・弦長・反発係数を変えてエネルギーの流れを体感しよう。
左端の球をドラッグして引き上げ、離してスタート
各球は単振り子として運動します。角度の時間変化(角加速度)は、重力と張力の釣り合いから導かれます。シミュレーターではこの微分方程式を「Verlet積分」という数値解法で解いています。
$$ \ddot{\theta}= -\dfrac{g}{L}\sin\theta $$$\theta$: 振り子の角度 [rad], $g$: 重力加速度 [m/s²], $L$: 弦の長さ [m]
球と球が衝突する際の速度変化を決定する式です。等しい質量の球が正面衝突する場合、運動量保存則と反発係数の定義からこの形が導かれます。
$$ v_1' = e \cdot v_2, \quad v_2' = e \cdot v_1 $$$v_1, v_2$: 衝突前の速度, $v_1', v_2'$: 衝突後の速度, $e$: 反発係数 (0 ≤ e ≤ 1)。e=1の時、速度が完全に入れ替わります。
衝突安全設計(自動車・鉄道):車両の衝突シミュレーション(LS-DYNAなど)では、反発係数eは衝撃吸収材の特性をモデル化する重要なパラメータです。eの値がエネルギー吸収量(=乗員への衝撃)を決定します。
製造プロセス(ボールミル・打刻):粉砕機や金属加工の打撃プロセスでは、媒体(ボールやハンマー)同士の衝突が製品品質を左右します。衝突時のエネルギー伝達効率は、まさにこのツールで学ぶ物理で解析されます。
スポーツ用具の開発:ゴルフクラブのヘッドとボール、テニスラケットとボールなどの衝突も、反発係数(COR)が性能の鍵を握ります。規格で上限値が定められているものもあります。
宇宙開発(ドッキング・サンプルリターン):宇宙機のドッキングや、小惑星探査機のサンプル採取時の衝突は、極めて低い相対速度で行われます。非弾性衝突(e<1)を利用して運動エネルギーを消散させる設計が重要です。
まず、「球が5個あるから、端の1個を引くと反対側も1個だけ動く」と思い込んでいない? 実は、これは初期条件が完全に対称で、かつ完全弾性衝突(e=1)という理想的な場合だけの話なんだ。例えば、最初に2個の球を同時に引っ張って離すと、反対側からは2個の球が飛び出す。これは運動量とエネルギーの保存から必然的に決まるんだよ。シミュレーターで試してみて。次に、パラメータ設定の落とし穴。 「重力」を0に設定すると、球は衝突後、一直線に等速運動して戻ってこなくなるぞ。これは振り子ではなくなってしまうから。実務でパラメータを極端な値にすると、モデルが成り立たなくなる典型例だね。最後に、「反発係数eは材質だけで決まる」という誤解。 実際には衝突速度や温度、表面状態でも変わる。CAEで衝突解析する時は、eを定数とせず、速度に依存するモデルを使うことも多いんだ。このツールでeを変えた時の挙動の変化を、単なる「減衰」ではなく「エネルギー損失の割合」と結びつけて観察するのがコツだ。
このシンプルなシミュレーターの背後にある計算は、多体動力学(Multibody Dynamics) という分野の基礎そのものだ。例えば自動車のサスペンションやロボットアームの関節など、複数の剛体がヒンジで繋がり、互いに干渉し合う系の運動を解析するんだ。また、球の衝突計算は、離散要素法(DEM: Discrete Element Method) の核心部分。鉱石の粉砕プロセスや、穀物のサイロ内の流れ、薬品の混合状態をシミュレーションするのに使われる高度な技術だ。さらに、振り子の運動方程式を数値的に解く「Verlet積分」は、分子動力学法(MD法) でも原子の軌道計算に使われる基本的なアルゴリズム。つまり、おもちゃのシミュレーションから、ナノスケールの物質シミュレーションまで、根本的な考え方は繋がっているんだ。衝突安全設計(クラッシュシミュレーション)では、ここで扱ったような「点」の衝突ではなく、「面」同士の複雑な接触(コンタクト解析)を扱うが、その出発点はここにあるんだよ。
まず次のステップは、「保存則」を数式で追いかけることだ。このツールでは等質量だったが、質量が異なる2球(例えばm1=1kg, m2=3kg)の正面弾性衝突を、運動量保存則と運動エネルギー保存則の連立方程式から解いてみよう。衝突後の速度がどうなるか導けると、理解が一気に深まる。次に、振り子の微分方程式の数学的背景を学ぼう。$$ \ddot{\theta}= -\dfrac{g}{L}\sin\theta $$ この式は、角度が小さい時(sinθ≒θ)に「単振動」の式に近似できる。これが線形化の第一歩だ。シミュレーターで「弦の長さ」を変えた時にグラフの周期がどう変わるか、近似式 $$ T = 2\pi \sqrt{L/g} $$ と比較してみるのが良い練習になる。さらに学びたいなら、「角運動量保存」や「非中心衝突(斜め衝突)」 に進むことをお勧めする。ビリヤードの球の衝突や、ボールが壁に斜めに当たる現象は、こちらの方が現実的だ。このツールで基礎を体感したら、次は2次元平面で球を動かせる、より高度なシミュレーターに挑戦してみよう。