三次元における二球の衝突シミュレーションは、球a, b の質量、進行方向と速度、衝突時の座標、および 反発係数が必要なパラメーターです。

球の進行方向は、x, y, z 軸のそれぞれの方向と大きさをベクトル、速度をスカラーで表現します。

また、衝突時の相互座標より、二球の中心を結ぶ法線と、その接線、および 従法線を把握します。

反発係数は、0 〜 1 (完全非弾性衝突〜完全弾性衝突)の値を採り得ますが、本稿では、1 とします。

法線、接線、従法線は、互いに直交します。(図1)

法線と衝突時の球の関係は、串ダンゴのダンゴが球、串が法線に該当します。

Pと点Qは、それぞれ 球a と 球b の中心座標です。

最初に、球a, b の中心座標から、法線方向の単位ベクトルを設定します。

引き続き、従法線と接線方向の単位ベクトルも設定します。

これは、衝突後の進行方向と速度を計算するために必要な運動量とエネルギーの作用する方向を決めるためです。

任意なベクトル(E())の単位ベクトル(e())は、次のとおりです。

i()j()k() は、それぞれ x,y,z 軸方向の単位ベクトルを表します。

【法線方向の単位ベクトル(n())の設定】

【従法線方向の単位ベクトル(c())の設定】

従法線方向の単位ベクトルは、法線ベクトルと y軸ベクトルが成す平面上を 90度回転させます。

なお、y軸に依らず x軸、または z軸ベクトルが成す平面上を回転させても構いません。

上記は、z-x平面の回転(θ) → x-y平面の回転(π/2) → z-x平面の回転(-θ)を行い、単位ベクトルを
設定する場合ですが、直接、法線-y軸平面を回転させる場合は、次になります。

【接線方向の単位ベクトル(t())の設定】

接線方向の単位ベクトルは、n() c() の外積(n()×c())にて求めます。

ψ は、n()c() が成す角度です。

【衝突前の速度の変換】

次は、球a, b の衝突前の速度を x, y, z 軸方向に変換します。

球の進行方向は、x, y, z 軸方向の速度ベクトル(A(), B())で表しており、改めて変換の必要はないのですが、
シミュレーションを行う際に、各軸速度の絶対値である本来の進行方向の速度を直感で捉えることが困難であるため、絶対速度をスカラー(Va, Vb)で与えることにしています。

したがって、この絶対速度を各軸速度に変換するためには、二球の進行方向の単位ベクトルが必要です。

進行方向の単位ベクトル(a(),)は、上述の定義から、次のように設定します。

同様に、単位ベクトル(b())は、次のようになります。

上記より、衝突前の速度(Va, Vb)を x, y, z 軸方向の速度(va(), vb())に変換します。

上記で変換した速度を、さらに、法線・接線・従法線方向の速度(vaa(), vbb())に変換します。

これは、上述したように、衝突によって、二球の運動量とエネルギーが、独立した三次元の方向に作用するためです。

【衝突後の速度の計算】

さて、衝突前の法線・接線・従法線方向の速度が、衝突によって、どのように変化するかを計算します。

これは、運動量保存則とエネルギー保存則より、計算できます。

具体的には、二球の質量と法線・接線・従法線方向の各速度を、上記保存則に与え、これを連立して解けば、
衝突後の速度が求められます。ただし、エネルギー保存則は、二次式のため、二つの解が導出されます。

一つは衝突した場合の速度であり、もう一つは衝突しなかった場合のものですので、法線方向 および その法線方向と直行する接線・従法線方向を考慮して、衝突した場合の解を見極めてください。

参考までに、運動量保存則とエネルギー保存則による計算プロセスを下記します。

また、記中の変数は、次のとおりです。

ma, mb = 球a, b の質量、va, vb = 球a, b の衝突前の速度、va, vb = 球a, b の衝突後の速度

a, b, c = エネルギー保存則で使用する二次式の係数

ma, mb と va, vb に具体値を入れて、係数 a, b, c を設定すれば、va, vb が算出できます。

なお、法線・接線・従法線方向を個別に3回計算しますので、va, vb には、それぞれ該当する値を適用して
ください。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


【衝突後の速度の変換】

衝突後の法線・接線・従法線方向の速度が求められたら、これを x, y, z 軸方向の速度(va’(), vb’())に逆変換
します。

さらに、逆変換した速度の絶対値が、球a, b の衝突後の絶対速度(Va, Vb)になります。

なお、vaa'(), vbb'() は、前項で算出した衝突後の法線・接線・従法線方向の速度です。

【衝突後の進行方向の設定】

上記で逆変換した x, y, z 軸方向の速度の単位ベクトル(a'(), b'())を設定します。

この単位ベクトルが、衝突後の進行方向になります。

             

              μ : 球a の x 軸との角度、ν : 球a の y 軸との角度、τ : 球a の z 軸との角度

              υ : 球b の x 軸との角度、φ : 球b の y 軸との角度、χ : 球b の z 軸との角度

なお、衝突前の進行方向は次のとおり。

              δ : 球a の x 軸との角度、ε : 球a の y 軸との角度、η : 球a の z 軸との角度

              ι : 球b の x 軸との角度、κ : 球b の y 軸との角度、λ : 球b の z 軸との角度

【運動量とエネルギー】

衝突前後の運動量(p)と運動エネルギー(T)は、次により計算してください。

             

計算結果は、運動量保存則とエネルギー保存則が成立していることを確認できる筈です。

 

以上