DEMにおいて理論やプログラムの確認で使われる解析解

# 概要

　数値計算において、プログラムを構築する際、計算結果が正しいかどうか検証する必要があります。
　その際、解析解（または厳密解）があるモデルと比較することで、理論やプログラムの妥当性を確認できます。今回の記事では、DEM（個別要素法）において計算結果の確認でよく使われる、簡単な解析解の紹介をします。
　DEM では、法線方向と接線方向で力を分解するので、それぞれの方向で検討できる解を紹介します。


# 自由落下からの反発

　ここで説明する解は、個別要素法において、法線方向成分の計算結果の確認に使用できる。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1521272/67fe78f2-f9a0-f6d8-6ad9-96ab782beb1f.png)


　高さ $h_1$ から初速ゼロで物体を落下させ、壁に衝突させることを考える。壁に衝突し反発した物体は、$h_2$ の高さまで到達したとする。$h_2$ の高さまで到達した時、速度はゼロとする。反発係数 $e$ と初期の物体の高さ $h_1$ が与えられたとし、$h_2$ を求めたいとする。

　エネルギー保存則が成立するので、
```math
\begin{align}
\frac{1}{2} mv_1^2 = mgh_1
\end{align}
```
が成立する。$v_1$ は、壁に衝突寸前の速度である。$m$ は物体の質量で、重力を $g$ とするが負の符号はつけない。速度 $v_1$ は、
```math
\begin{align}
v_1 = -\sqrt{2gh_1}
\end{align}
```
と求まる。落下しているので、負の符号をつけた。壁に衝突し反発した物体の速度を$v_2$とすると、反発係数 $e$ の定義から
```math
\begin{align}
e &= - \frac{v_2}{v_1}　\\
\therefore v_2 & = \sqrt{2gh_1} e
\end{align}
```
となる。エネルギー保存則の式を作り、$v_2$ を代入すると
```math
\begin{align}
&\frac{1}{2} mv_2^2 = mgh_2 \\
\therefore \ \ & h_2  = e^2h_1
\end{align}
```
高さ $h_2$ が求まる。
　
　高さ $h_1$ から初速ゼロで物体を落下させ、物体が壁に $n$ 回衝突を繰り返し、反発して高さ $h_{n+1}$ まで到達したとする。$h_{n+1}$ の高さまで到達した時、速度はゼロとする。高さ $h_{n+1}$ は、
```math
\begin{align}
h_{n+1}  = e^2 h_{n} = \cdots =  e^{2n} h_{1} 
\end{align}
```
と求まる。

　高さ $h_{n+1}$ と数値計算の結果が一致しているかどうかにより、理論やプログラムの確認ができる。



# 摩擦がある斜面を滑る物体
　ここで説明する解は、個別要素法において、接線方向成分の計算結果の確認に使用できる。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1521272/66d0f446-84ed-1975-2479-c9eef3b05630.png)


　摩擦がある斜面を滑る物体の運動について考える。初速をゼロとする。斜面の角度を $\theta$ とすれば、斜面に対して物体にかかる力は、

```math
\begin{align}
F &=m\frac{\mathrm{d} v}{\mathrm{d} t } = mg\sin \theta - \mu N \\
N &= mg\cos \theta 
\end{align}
```
と書ける。$m$ は物体の質量で、$\mu$ は摩擦定数、$g$ は重力である。$N$ は垂直抗力である。物体の速度 $v$ は、初速度がゼロなので

```math
\begin{align}
\frac{\mathrm{d} v}{\mathrm{d} t } &= g\sin \theta - \mu  g\cos \theta \\
 \therefore v(t) &=  gt(\sin \theta - \mu \cos \theta)
\end{align}
```
位置 $x$ は、

```math
\begin{align}
\frac{\mathrm{d} x}{\mathrm{d} t } &= v(t) \\
 \therefore x(t) &= x_0 + \frac{1}{2}gt^2(\sin \theta - \mu \cos \theta)
\end{align}
```
と求まる。$x_0$ は初期の物体の位置である。上記から得られた速度と位置が、数値計算の結果と一致しているかどうかにより、理論やプログラムの確認ができる。
 
 静止摩擦係数 $\mu_s$ において、物体が斜面を滑る力と摩擦力が釣り合うので

```math
\begin{align}
F &=0 \\
\therefore  \mu_s &= \tan \theta  
\end{align}
```
となる。摩擦係数を $\mu > \tan \theta $ を満たすように設定してしまうと、物体は斜面を滑らない。


## 斜面を転がる物体が球体の場合

　斜面を転がる物体が球体の場合を考える。並進方向と回転方向の運動方程式は
```math
\begin{align}
m\frac{\mathrm{d} v}{\mathrm{d} t } &= mg\sin \theta - f_s \\
I \frac{\mathrm{d} \omega}{\mathrm{d} t} &= rf_s 
\end{align}
```
と書ける。$f_s$ は摩擦力、$I$ は慣性モーメント、$\omega$ は角速度、$r$ は球体の半径である。慣性モーメントは球体なので

```math
\begin{align}
I = \frac{2}{5}mr^2
\end{align}
```
と書ける。速度と角速度の関係は
```math
\begin{align}
v = r \omega 
\end{align}
```
なので、微分をして、回転方向の運動方程式に代入すれば
```math
\begin{align}
\frac{\mathrm{d} v}{\mathrm{d} t} &= r \frac{\mathrm{d}\omega }{\mathrm{d} t}　\\
\therefore f_s &= \frac{I}{r}\frac{\mathrm{d}\omega }{\mathrm{d} t} =\frac{I}{r^2}\frac{\mathrm{d}v }{\mathrm{d} t} 
\end{align}
```
摩擦力が求まる。この式を並進方向の運動方程式に代入すれば、

```math
\begin{align}
m\frac{\mathrm{d} v}{\mathrm{d} t } &= mg\sin \theta -\frac{I}{r^2}\frac{\mathrm{d}v }{\mathrm{d} t} \\
\therefore \frac{\mathrm{d}v }{\mathrm{d} t} &= \frac{mgr^2\sin\theta}{mr^2 + I } \\
\therefore v(t) &= \frac{mgr^2\sin\theta}{mr^2 + I }t \\
\therefore x(t) &=x_0+ \frac{1}{2}\frac{mgr^2\sin\theta}{mr^2 + I }t^2 \\
\end{align}
```
速度と位置が求まる。$x_0$ は初期の物体の位置であり、物体の初速はゼロとした。


## 斜面を転がる球体が回転せず滑る条件

　斜面を転がる球体が回転せず滑るには、摩擦力が
```math
\begin{align}
f_s =  \mu N \ \ , \ \ N = mg\cos \theta 
\end{align}
```
とかけ、回転モーメントと釣り合うときである。そのときの摩擦係数 $\mu$ は、
```math
\begin{align}
 f_s &= \frac{I}{r^2}\frac{\mathrm{d}v }{\mathrm{d} t} =\frac{I}{r^2}\frac{mgr^2\sin\theta}{mr^2 + I } \\
& = \mu mg\cos \theta \\
\therefore \mu &= \frac{I}{mr^2 + I } \tan\theta
\end{align}
```
である。つまり、摩擦係数が 

```math
\begin{align}
\mu \leq \frac{ I }{mr^2 + I }\tan\theta
\end{align}
```
を満たすとき、球体は回転せず斜面をすべる。 つまり、物体の速度は、

```math
\begin{align}
v(t) &=  gt(\sin \theta - \mu \cos \theta)
\end{align}
```
である。逆に、摩擦係数が

```math
\begin{align}
\mu > \frac{ I }{mr^2 + I }\tan\theta
\end{align}
```
を満たす場合、速度は摩擦係数に依らず
```math
\begin{align}
v(t) &= \frac{mgr^2\sin\theta}{mr^2 + I }t \\
\end{align}
```
となる。球体の場合、摩擦係数を大きく取っても、静止することなく転がることを意味する。


# 最後に

　今回の記事は、基礎物理の復習に役立った。