楕円の転がり運動

一見単純に見えて解析が困難な運動は多数あるが、これはそのひとつといえるだろう。断面が楕円形の板が水平面を滑らずに転がる運動である。もう少しエレガントな手法があるかもしれないが、とりあえずパラメーターを用いた軌跡を束縛条件として取り込む方法をとってみた。

重心軌跡のパラメーター表示と運動方程式

f:id:yokkun831:20211116162535p:plain
左図の状態から初速度を与えて、水平面を滑ることなく転がる運動を解析する。数学的準備として、重心 G の軌跡を求めておく。下記を参考にした。
http://izumi-math.jp/M_Matumoto/korogaru2jikyokusen.pdf

楕円をパラメーター \alpha を用いて

\xi = b\sin\alpha
\eta = a - a\cos\alpha

とする。\alpha微分すると、

\displaystyle\frac{{\rm d}x}{{\rm d}\alpha} = b\cos\alpha
\displaystyle\frac{{\rm d}y}{{\rm d}\alpha} = a\sin\alpha

だから、\xi 軸に対する (\xi, \eta) における接線のなす角 \theta に対して

\tan\theta = \displaystyle\frac{{\rm d}y}{{\rm d}x} = \frac{a}{b}\tan\alpha
\cos\theta = \displaystyle\frac{b\cos\alpha}{r},\qquad \sin\theta = \displaystyle\frac{a\sin\alpha}{r}

となる。ただし、

r = \sqrt{a^2\sin^2\alpha + b^2\cos^2\alpha}

とおいた。

また、原点O'から (\xi,\eta) までの周長 s

s = \displaystyle\int\sqrt{{\rm d}x^2 + {\rm d}y^2} = \int_0^\alpha r {\rm d}\alpha

である。

(b\sin\alpha, a-a\cos\alpha) に原点を移すと、重心G(0,a)(-b\sin\alpha,a\cos\alpha) に移動する。新しい原点周りに \theta 回転し、x 方向に s だけ平行移動すると、パラメーター \alpha に対する位置 (x,y) が得られる。

\begin{pmatrix}x\\y\end{pmatrix} =\begin{pmatrix}\,\,\,\,\,\cos\theta\,\,\,\sin\theta\\-\sin\theta\,\,\,\cos\theta\end{pmatrix} \begin{pmatrix} -b\sin\alpha \\ a\cos\alpha \end{pmatrix} + \begin{pmatrix}s\\0\end{pmatrix} \\ \qquad = \displaystyle\frac{1}{r}\begin{pmatrix}\,\,\,\,\,b\cos\alpha\,\,\,a\sin\alpha\\-a\sin\alpha\,\,\,b\cos\alpha\end{pmatrix} \begin{pmatrix} -b\sin\alpha \\ a\cos\alpha \end{pmatrix} + \begin{pmatrix}s\\0\end{pmatrix}

一方右図のようにおけば、\theta 転がって重心Gが (x,y) に移動したときの運動方程式は、

 m\ddot{x} = F
 m\ddot{y} = N - mg
I\ddot{\theta} = NX - Fy

ただし、
X = x - s
I = \displaystyle\frac{1}{4}m(a^2+b^2)

となる。

運動の自由度は1であるから、以後の方針としては以上から N,F を消去し、\alpha を一般化座標とする運動方程式に一本化することである。

運動方程式の一本化

上の結果を書き下ろせば、

x = \displaystyle\frac{a^2-b^2}{2r} \sin2\alpha + s
\qquad X = x-s = \displaystyle\frac{a^2-b^2}{2r} \sin2\alpha
y = \displaystyle\frac{ab}{r}
\tan\theta = \displaystyle\frac{a}{b}\tan\alpha

時間微分して

\dot{x} = \left(r - \displaystyle\frac{X^2}{r} + \frac{a^2-b^2}{r}\cos2\alpha\right)\dot{\alpha}
\dot{y} = -\displaystyle\frac{Xy\dot{\alpha}}{r}
\dot{\theta} = \displaystyle\frac{y\dot{\alpha}}{r}

ただし、できる限りコンパクトな記述になるように、Xy を用いた。

さらに時間微分してN,F を消去して一本化した運動方程式

\displaystyle\frac{1}{4}m(a^2+b^2)\ddot{\theta} = m(\ddot{y}+g)X - m\ddot{x}y

に代入すれば、\alpha に対する運動方程式が得られる。その計算過程は長い道のりになるが、数値積分しやすく変形した次の結果だけ書いておく。

 \ddot{\alpha} = \displaystyle\frac{B}{A}
A = \left(\displaystyle\frac{a^2+b^2}{4r} + r + \frac{a^2-b^2}{r}\cos 2\alpha\right)y
B = \displaystyle\frac{(a^2+b^2)Xy{\dot{\alpha}}^2}{2r^2} + \frac{X^3y{\dot{\alpha}}^2}{r^2} + \frac{Xy\dot{X}\dot{\alpha}}{r} + gX + 3Xy{\dot{\alpha}}^2 - \frac{(a^2-b^2)Xy{\dot{\alpha}}^2\cos 2\alpha}{r^2}

シミュレーションと数値積分

シミュレーションにはAlgodoo、数値積分には Polymath を用いた。Algodooシミュレーションは単純にお絵描きしたものを動かしてくれるので、運動方程式の計算ミスをチェックするのに終始役立った。だいぶ時間(数日?)を要したが、何とか両者を一致させることができた。

Algodooによるシミュレーションでは、摩擦力を無視しても消えない運動の減衰が見られるが、これは楕円を多角形近似しているために生じる計算誤差と思われる。

f:id:yokkun831:20211116154714p:plain