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

【物理シミュレーションに挑戦!】古典力学
斜面を転がる剛体球運動の計算アルゴリズム15:力学的エネルギー保存則を満たした斜面との衝突(回転有り)

文責:遠藤 理平 (2016年10月18日) カテゴリ:仮想物理実験室(268)計算物理学(127)

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

斜面を転がる剛体球運動の計算アルゴリズム9:斜面との衝突する剛体球(回転あり)」で示した回転による推進力は、衝突力から見積もられる摩擦力として導出しました。この場合、回転運動を含めた力学的エネルギーを満たす条件を全く考慮していませんでした。本項では、剛体球が斜面に衝突する前後の力学的エネルギーが保存する条件から推進力を計算します。

運動量保存則から、衝突前後の重心運動量と回転運動量の変化量は力積(力×時間)で与えられます。そのため、斜面との衝突後の重心速度と角加速度は、衝突力を \mathbf{f}_{\rm col}、回転による推進力を\mathbf{f}_{\rm d} と表した場合、

\mathbf{v'} = \mathbf{v}+\frac{\Delta t}{m}\, (\mathbf{f}_{\rm col} + \mathbf{f}_{\rm d})

\mathbf{\omega'}=\mathbf{\omega}+\frac{a\Delta t}{I} (\mathbf{f}_{\rm d} \times\hat{\mathbf{n}})

となります。衝突力は「斜面を転がる剛体球運動の計算アルゴリズム8:斜面との衝突する剛体球(回転なし)」で示したとおり

\mathbf{f} _{\rm coll} = \frac{ -m(1+e)(\mathbf {v} \cdot \mathbf {n} )}{ \Delta t}\, \mathbf{n}

です。この衝突後の速度と角速度を用いて衝突前後の力学的エネルギーを計算し、力学的エネルギーが保存する場合の条件式から推進力を導き出します。なお、回転エネルギーを含めた衝突前後の力学的エネルギーは次のとおりです。

E=\frac{1}{2}\,m \mathbf{v}^2+\frac{1}{2} \,I \mathbf{\omega}^2

E'= \frac{1}{2}\,m\left[ \mathbf{v}+\frac{\Delta t}{m}\, (\mathbf{f}_{\rm col} + \mathbf{f}_{\rm d}) \right]^2 +\frac{1}{2}\,I\left[\mathbf{\omega}+\frac{a\Delta t}{I} (\mathbf{f}_{\rm d} \times\hat{\mathbf{n}}) \right]^2

回転による推進力は角加速度ベクトルと斜面の法線ベクトルの外積方向

\hat{\mathbf{t}}  = \hat{\mathbf{\omega}}\times \hat{\mathbf{n}}

となり、

\mathbf{f}_{\rm d} = f_{\rm d} \,\hat{\mathbf{t}}

と表すことができます。これを踏まえて力学的エネルギー保存則

E'-E= \frac{1}{2}\,m\left[ \frac{2\Delta t}{m}\, \mathbf{v}\cdot(\mathbf{f}_{\rm col} + \mathbf{f}_{\rm d}) + \left(\frac{\Delta t}{m}\right)^2(\mathbf{f}_{\rm col} + \mathbf{f}_{\rm d})^2\right] +\frac{1}{2}\,I\left[\frac{2a\Delta t}{I}\, \mathbf{\omega}\cdot(\mathbf{f}_{\rm d} \times\hat{\mathbf{n}}) +\left(\frac{a\Delta t}{I}\right)^2 (\mathbf{f}_{\rm d} \times\hat{\mathbf{n}})^2\right]=0

の各ベクトル量を注意深く計算すると、推進力は次のとおりになります。

\mathbf{ f}_{\rm d}= \frac{1}{\Delta t}\,\frac{2m}{1+\left( \frac{ma^2}{I} \right)} \left[ a|\mathbf{\omega}|-\mathbf{v}\cdot\hat{\mathbf{t}} \right] \hat{\mathbf{t}}

この推進力を用いることで力学的エネルギー保存則を満たすことになります。なお、この表式導出する過程で、反発係数e=1を用いています。

斜面との衝突シミュレーション(力学的エネルギーが保存)


物理シミュレーションについては「HTML5による物理シミュレーション」を参照ください。 数式の表示は「Tex表記によるHTML文書への式の埋め込み」をご覧ください。



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

関連記事

仮想物理実験室







計算物理学







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