HOME > natural science Laboratory > コンピュータ・シミュレーション講座 > 仮想物理実験室

【物理シミュレーションに挑戦!】古典力学
斜面を転がる剛体球運動の計算アルゴリズム10:剛体球同士の衝突(回転なし)

文責:遠藤 理平 (2016年9月22日) カテゴリ:仮想物理実験室(325)計算物理学(165)

本項は古典力学の様々な系の物理現象を解析的に扱うのではなく、数値計算による物理シミュレーションを実行するために必要な計算アルゴリズムを示すことを目的とします。 様々な初期条件に対する物理シミュレーションを実現するために、最も汎用的な直交座標系を用います。
斜面を転がる剛体球運動の計算アルゴリズム1:摩擦力無しの場合
斜面を転がる剛体球運動の計算アルゴリズム2:摩擦力無しの場合の例(曲面上の運動)
斜面を転がる剛体球運動の計算アルゴリズム3:静止摩擦力のみの場合
斜面を転がる剛体球運動の計算アルゴリズム4:静止摩擦力のみの場合の例(曲面上の運動)
斜面を転がる剛体球運動の計算アルゴリズム5:滑りながら転がる剛体球
斜面を転がる剛体球運動の計算アルゴリズム6:滑りながら転がる剛体球(曲面上の運動)
斜面を転がる剛体球運動の計算アルゴリズム7:空気抵抗力と転がり摩擦抵抗力
斜面を転がる剛体球運動の計算アルゴリズム8:斜面との衝突する剛体球(回転なし)
斜面を転がる剛体球運動の計算アルゴリズム9:斜面との衝突する剛体球(回転あり)
斜面を転がる剛体球運動の計算アルゴリズム10:剛体球同士の衝突(回転なし)
斜面を転がる剛体球運動の計算アルゴリズム11:複数剛体球の同時衝突(回転なし)
斜面を転がる剛体球運動の計算アルゴリズム12:接触中の剛体球に衝突した場合(回転なし)
斜面を転がる剛体球運動の計算アルゴリズム13:剛体球同士の衝突(回転あり)
斜面を転がる剛体球運動の計算アルゴリズム14:固定された剛体球に衝突した場合(回転あり)
斜面を転がる剛体球運動の計算アルゴリズム15:力学的エネルギー保存則を満たした斜面との衝突(回転あり)
斜面を転がる剛体球運動の計算アルゴリズム16:力学的エネルギー保存則を満たした剛体球同士の衝突(回転あり)

前前項と前項では、固定された斜面に衝突する剛体球に加わる衝突力を導出しました。 本項では、まずは回転を無視した系の剛体球同士に加わる衝突力の導出と、計算アルゴリズムを示します。

剛体球同士の衝突力

運動する剛体球同士の衝突時に発生する衝突力を導きます。基本的な考え方は、固定された平面への衝突の場合と全く同様、運動量保存則とエネルギー保存則から導くことができます。 上図は衝突する2つの剛体球の衝突前後の速度ベクトルと衝突力の模式図です。剛体球1から2へ加わる衝突力を \mathbf{F}_{12}、反対に剛体2から1へ加わる衝突力を \mathbf{F}_{21}と表した場合、衝突後の各剛体球の速度ベクトルは運動量と力積の関係から

M_1\mathbf{v}'_1 = M_1\mathbf{v}_1 + \mathbf{F}_{12}\Delta t
M_2\mathbf{v}'_2 = M_2\mathbf{v}_2 + \mathbf{F}_{21}\Delta t

で与えられます。この衝突力\mathbf{F}_{12}\mathbf{F}_{21}は作用・反作用の法則から

\mathbf{F}_{12} = -\mathbf{F}_{21}

であり、また方向は衝突接面の法線方向となるため、法線ベクトル \hat{\mathbf{n}} を用いて、

\mathbf{F}_{21} =  F\,\hat{\mathbf{n}}
\mathbf{F}_{12} = -\mathbf{F}_{21} =  -F\,\hat{\mathbf{n}}

と表すことができます。剛体球同士の場合には衝突接面の法線ベクトル\hat{\mathbf{n}}は、剛体球の重心位置ベクトルを用いて

\hat{\mathbf{n}}  = \frac{\mathbf{R}_{2}-\mathbf{R}_{1}}{|\mathbf{R}_{2}-\mathbf{R}_{1}|}

となることから、2つの衝突力は大きさFのみが未知の量となります。

この衝突力を決定するための条件式が運動量保存則とエネルギー保存です。この条件式から衝突力Fを決定します。

運動量保存則

M_1\mathbf{v}_1 +M_2\mathbf{v}_2 = M_1\mathbf{v}'_1 +M_2\mathbf{v}'_2

エネルギー保存則

\frac{1}{2}\,M_1\mathbf{v}_1^2 +\frac{1}{2}\,M_2\mathbf{v}_2^2 = \frac{1}{2}\,M_1{\mathbf{v}'_1}^2 +\frac{1}{2}\,M_2{\mathbf{v}'_2}^2

弾性衝突における衝突力

連立方程式を解くことで得られる衝突力を示します。

\mathbf{F}_{21} =\frac{1}{\Delta t} \left[ \frac{2M_1M_2}{M_1+M_2}\,(\mathbf{v}_2- \mathbf{v}_1)\cdot\hat{ \mathbf{n} } \right]\hat{ \mathbf{n}}

非弾性衝突における衝突力

エネルギーが散逸する衝突は非弾性衝突と呼ばれます。この場合、エネルギー保存則が成り立ちません。そこで、衝突前後における衝突接面の法線方向の速度ベクトルの大きさの比を表す反発係数を定義します。

|(\mathbf{v}'_2- \mathbf{v}'_1)\cdot\hat{ \mathbf{n} }| = e|(\mathbf{v}_2- \mathbf{v}_1)\cdot\hat{ \mathbf{n} }|

エネルギー保存保存則の代わりに上式を用いて衝突力を計算した結果が次のとおりです。

\mathbf{F}_{21}  =\frac{1}{\Delta t}\left[ \frac{(1+e)M_1M_2}{M_1+M_2}\,(\mathbf{v}_2- \mathbf{v}_1)\cdot\hat{ \mathbf{n} } \right]\hat{ \mathbf{n}}

e = 1で弾性衝突の場合と一致することが確認できます。

剛体球同士の衝突シミュレーション

次のグラフィックスは剛体球同士を衝突させたシミュレーションです。衝突時に剛体同士の回転は考慮していません。



▲このページのトップNPO法人 natural science トップ

関連記事

仮想物理実験室







計算物理学

▲このページのトップNPO法人 natural science トップ




Warning: mysqli_connect(): (28000/1045): Access denied for user 'xsvx1015071_ri'@'sv102.xserver.jp' (using password: YES) in /home/xsvx1015071/include/natural-science/include_counter-d.php on line 8
MySQL DBとの接続に失敗しました