円柱、楕円柱の自由回転運動

説明

円柱、楕円中の自由回転運動のシミュレーターです。運動方程式の厳密解や、何種類かの数値解を使って計算できるようになっています。姉妹編に捻りシミュレーターがあります。また、角運動量保存則と回転のエネルギーから始まる一連の記事に、色々と詳しく書いています。

シミュレーション画面上でマウスを左ボタン、中ボタン、右ボタンでドラッグすることにより視点を色々と動かすことが出来ます。

楕円柱上の赤線は、回転を分かり易くするように付けた目印で、楕円柱に貼りついています。

時の流れ
運動をスローで再生するか早送りで再生するかを変えられます。0にすれば、一時停止です。これは、物理的なパラメーターではありませんが、厳密解以外の計算方法では、時の流れを早くするほど、計算の1ステップ当りに進める時間が大きくなるので、誤差が大きくなります。
半径1,半径2
楕円柱の底面の形を決めます。半径1,2の大きさを等しくすると完全な円柱になります。厳密解は今のところ一般の楕円柱には対応してないので、厳密解を選ぶと半径1しか指定できなくなります。
高さ
楕円柱の高さを決めます。厳密解以外の計算法では細長くなるほど、誤差が大きくなる傾向があるようです。
細長い円柱にしたり、平たい円柱にしたりして、回転運動がどうなるか見て下さい。節線を表示して、節線と赤線どちらがどちらを追い越すかなどが見所です。完全な円柱の場合、高さが半径の√3倍になるとき(対称軸回りの慣性モーメントと、対称軸に垂直な軸の慣性モーメントが等しくなる)が運動の変わり目で、この時、各種の楕円体は球になります。
傾き
鉛直軸に対する楕円柱の傾きの初期値です。オイラー角のθに相当します。完全な円柱の場合には、本来ずっと一定になるはずですが、厳密解以外の計算法では誤差により、少しづつ変わります。
|L|
角運動量の大きさです。方向はz軸向き(画面上向き)で固定です。角運動量ベクトルは、どの計算法を選んでも常に保存されています。
L, ω
角運動量ベクトルLが緑色、角速度ベクトルωが黄色で表示されます。角運動量ベクトルは、どの計算法を選んでも、常に保存されています。
原点をずらす
角速度や各種楕円体などが楕円柱に重ならないようにして表示されるようになります。これらが楕円柱の中に隠れて見辛いとき、押して下さい。
節線
「節線」は、オイラー角の文脈で使われる言葉です。もし、楕円柱が"嘘の回転"、つまり、オイラー角ψの回転が無視され、θ、φの回転だけで回る場合、楕円柱の赤線がどこに来るか、を楕円柱上に黒線で表します。
Bullet physicsや、Blender game engineなどの物理エンジンでは(私が調べた時点では)、剛体の回転を、この嘘の回転でごまかしています。これでは、体操の捻りを伴った宙返りはシミュレート出来ません。
尚、オイラー角θが0になる場合、オイラー角φ、ψの区別がつかなくなりますが、厳密解を選んだ場合に限っては、その場合でも不思議なことに計算できてしまうので、それを表示しています。
地面なし
剛体系を選んだ時など、地面が邪魔に感じるときに押して下さい。
剛体系
楕円柱が止まって見える座標系から見た世界に変わります。楕円柱が暗くなったり明るくなったりするのは、外の世界にある光源が周囲を回っているためです。
Poinsotの作図
これを押して表示される赤い楕円体が慣性楕円体で、その上部で接している灰色の平面が不変平面です。角速度ベクトルの指す延長上に慣性楕円体と不変平面の接点があります。この接点が慣性楕円体上に描く軌跡はポールホード、不変平面上に描く軌跡はハーポールホードと呼ばれています。
厳密解以外の計算法ではエネルギーが保存されておらず、計算誤差が蓄積していくと慣性楕円体が不変平面と接しなくなります。これは、不変平面の位置を本来保存されているべきエネルギーで定めているためです。
E 一定の面, | L | 一定の面
角運動量空間内におけるエネルギー E 一定の楕円体面(Binetの楕円体)が紫色、角運動量の大きさ一定の球面が緑色で表示されます。これらの交わる線上に角運動量ベクトルLの先端が乗るはずですが、厳密解以外では、少しづつLの先端がずれていきます。
計算法
剛体の回転運動を決定するオイラー方程式を計算する方法を指定します。厳密解は今のところ一般の楕円柱には対応してないので、厳密解を選ぶと半径1しか指定できなくなります。厳密解以外の計算法は、Accurate and Efficient Simulation of Rigid Body Rotationsに書かれているもの(の内、最初の五つ)を利用しています。近似法の呼び方もこの論文に書かれたものをそのまま使っています(Orderをどういう意味で使っているか、納得いってません)。
座標系について
ページをリロードして視点を変更していない初期画面では、空間座標系のx,y,z軸は、それぞれ、画面左向き、画面から手前に向かってくる向き、画面上向きを向いています。又、剛体座標系のx,y,z軸は、傾きを0度にしたときに空間座標系に重なるようになっています。
節線を表示するときに使っているオイラー角は、ZXZの順、つまり、オイラー角の定義に従っています。
ホーム ブログ