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

【物理シミュレーションに挑戦!】古典力学
斜面を転がる剛体球運動の計算アルゴリズム2:摩擦力無しの場合の例(曲面上の運動)

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

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

摩擦力がない球面上を運動する剛体球

前項では斜面を滑る計算アルゴリズムの導出を行いました。しかしながら、運動方程式は斜面に限らず任意の曲面上を滑る場合でも成り立ちます。変更が必要なのは運動の制約条件から導いた垂直抗力\mathbf{S}だけです。本項では、曲面の例として半球内の内面を滑る剛体球の計算アルゴリズムの導出を行います。

運動の制約条件

摩擦力がない球面上を運動する剛体球

図のような球面を滑る剛体球の運動の制約条件を考えます。球面とのとの接点を\mathbf{R}_0と表した場合、剛体球の重心位置ベクトルは

\mathbf{R} =\mathbf{R}_0+a\,\hat{\mathbf{n}}

を満たします。この表式は斜面の場合と同じですが、法線ベクトルが剛体球の位置に依存する点が異なります。位置ベクトルの原点を球面(半径A)の中心をとした場合、法線ベクトルは

\hat{\mathbf{n}} = -\frac{ \mathbf{R} }{  |\mathbf{R}| } = -\frac{ \mathbf{R} }{ A-a }

となります。つまり、球面上を運動する剛体球の運動の制約条件は

\frac{ A }{ A-a }\,\mathbf{R} =\mathbf{R}_0

と変化します。\mathbf{R}_0は球面上のベクトルなので、 \mathbf{R}_0\cdot \mathbf{R}_0 = A^2 を満たすことから

\mathbf{R}\cdot \mathbf{R} = (A-a)^2

となります。ほとんど自明ですが、これは重心位置ベクトルも半径がAよりもaだけ小さい球面上を運動することを意味します。さらに、この表式を時間で微分した

\frac{d\mathbf{R}}{dt}\cdot \mathbf{R} = 0 、   \frac{d^2\mathbf{R}}{dt^2}\cdot \mathbf{R} + \left|\frac{d\mathbf{R}}{dt}\right|^2= 0

も成り立ちます。これらの条件を運動方程式に課すことで、未知の垂直抗力\mathbf{S}が決定できます。

垂直抗力の表式

運動方程式の両辺に\hat{\mathbf{R}}との内積をとって先の関係式を代入して整理すると、垂直抗力は

\mathbf{S} = \left[\frac{M}{A-a}\left|\frac{d\mathbf{R}}{dt}\right|^2-M\mathbf{g}\cdot \hat{\mathbf{n}}\right] \hat{\mathbf{n}}

と得られます。第2項は重力に対する垂直抗力を表し、第1項は速度の2乗に比例した中心力なので、遠心力に対する垂直抗力と考えることができます。 この垂直抗力を運動方程式に代入し、位置ベクトルの微分方程式を数値的に計算することで運動のシミュレーションを行うことができます。

斜面を滑る剛体球のシミュレーション

次の物理シミュレーションは、半径と初速度を変化させた剛体球を運動させた結果です。球面上の運動の場合、剛体球の半径が大きいほど重心運動の半径が小さくなります。 その結果、剛体球の半径によって運動が変化することになります。

実は先の計算アルゴリズムは、球面に接する運動であれば逆さまでも成り立ちます。つまり、剛体球の初期条件を変更するだけで次のようなシミュレーションも可能となります。です。


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



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

関連記事

仮想物理実験室







計算物理学







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