#7|10円玉の魂をExcelに宿す! 運動方程式の実装術
本記事は、こちら👇 の連載シリーズの一部です。
耳だけで楽しみたい方は、こちら👇の音声解説を再生してください😊
この連載が目指すゴールは、コックリさんの不自然な10円玉の動きを、高校までの数学と物理を使って理論的にアニメーション化すること。
前回 は、Excelモデルのひな形を作りました。
今回からは、そのひな形に具体的な数値や式を入れていきます!
ひな形ファイルは、[ 前回の記事 ]で無料配布しています。
この記事の作業を反映したExcelファイルも、[ 前回の記事のダウンロードエリア ]で解答例として公開しています。
✔︎ 設定値を入力する
決まっている値は、次のとおりです
10円玉の質量: $${m=0.0045\ (kg)}$$
※10円玉の質量は 約4.5g です。重力加速度: $${g=9.80665\ (m/s^2)}$$
あとで調整する値は、次のとおりです。
時間刻み: $${\Delta t=0.0001\ (s)}$$
※まずは $${0.1\ (ms)}$$ で様子をみます。
あとで入力する定数は、次のとおりです。
静止摩擦係数: $${\mu_s}$$
動摩擦係数: $${\mu_k}$$
これら摩擦係数の使い方は、また次回以降で検討しますね。
Excelモデルのひな形に、これらの値を入力すると次のようになります。

✔︎ 計算欄を入力する
次に、計算欄に数値や式を入力していきます。
① 時間をG列に入力
まずは時間の流れを作ります。
はじまりの時間: G4セルに『 0 』を入力します。
次の時間: G5セルに『= 直前の時間(G4セル)+ 時間刻み($${\Delta t}$$)』となるように式を入力します。
時間刻み($${\Delta t}$$)は、先ほどの設定値を参照します。
この式を下にコピーしていけば完成です。

② 指先から押される力をH〜I列に入力
先ほど①で作った時間に対して、10円玉が指先からどれくらいの力で押されているかを入力していきます。
とりあえず今は、すべての時間で指先から押される力を『 0 』として入力しておきます。
指先から押される力(横方向): すべての時間に対して、H列に『 0 』を入力します。
指先から押される力(下方向): すべての時間に対して、I列に『 0 』を入力します。
これは、指先が10円玉に触れていない状態です。

③ 重力をJ列に入力
①で作った時間に対して、10円玉が受ける重力を求めておきます。
J4セルに『 = 質量(m)× 重力加速度(g)』となるように式を入力します。
質量と重力加速度は、設定値を参照します。
この式を下にコピーして、すべての時間に対して入力します。

🔎 10円玉の運動方程式を確認
ここで👇の記事で導出した、10円玉の運動方程式を確認しておきます。
その運動方程式が、こちら。
$$
\footnotesize
\begin{align*}
\\[0.1pt]
(横方向の加速度)=& \tfrac{(指先から横に押される力)-(摩擦力)}{10円玉の質量} \\[10pt]
(摩擦力)=&(摩擦係数)×(紙から受ける垂直抗力) \\[5pt]
&※摩擦係数:また後日に検討 \\[10pt]
(紙から受ける垂直抗力)=&(重力)+(指先から下向きに押される力)
\end{align*}
$$
④ 紙から受ける垂直抗力をK列に入力
先ほどの式から、
K4セルに『 = J4(重力)+ I4(指先から押される力(下方向))』となるように式を入力します。
この式を下にコピーして、すべての時間に対して入力します。

⑤ 摩擦係数(横方向)をL列に入力
摩擦係数は後日に検討するので、ここでは仮値を入力しておきます。
すべての時間に対して、L列に『 0 』を入力しておきます。
これは、10円玉が摩擦力を受けない状態です。
※エアホッケーのディスクと、ほぼ同じ状態です。

⑥ 摩擦力(横方向)をM列に入力
M4セルに『 = L4(摩擦係数(横方向))× K4(紙から受ける垂直抗力)』となるように式を入力します。
この式を下にコピーして、すべての時間に対して入力します。

⑦ 10円玉が受ける力(横方向)の総和をN列に入力
N4セルに『 = H4(指先から押される力(横方向))- M4(摩擦力(横方向))』となるように式を入力します。
この式を下にコピーして、すべての時間に対して入力します。

⑧ 加速度(横方向)をO列に入力
O4セルに『 = N4(10円玉が受ける力(横方向)の総和)÷ 質量(m)』となるように式を入力します。
質量は、設定値を参照します。
この式を下にコピーして、すべての時間に対して入力します。

🔎 加速度から変位を求める方法を確認
加速度から速度、速度から変位を求めるためには時間積分が必要です。
ここで👇の記事で考えた、Excelで積分値を求める方法を使っていきます。
⑨ 速度(横方向)をP列に入力
時間と加速度の変化から、速度を求める式を入力していきます。
はじめは10円玉が止まっているので、P4セルに『 0 』を入力します。
P5セルに『 = P4(直前の速度)+ O4(直前の加速度)×{G5(現在の時間)-G4(直前の時間)}』となるように式を入力します。
この式を下にコピーして、すべての時間に対して入力します。
入力する式では、設定値の『時間刻み($${\Delta t}$$)』は参照しないで『(現在の時間)-(直前の時間)』を使ってください。 こうすることで、G列の途中で時間刻みを変化させても正しく計算できます。

⑩ 変位(横方向)をQ列に入力
時間と速度の変化から、変位を求める式を入力していきます。
スタート地点として、Q4セルに『 0 』を入力します。
Q5セルに『 = Q4(直前の変位)+ P4(直前の速度)×{G5(現在の時間)-G4(直前の時間)}』となるように式を入力します。
この式を下にコピーして、すべての時間に対して入力します。
入力する式では、設定値の『時間刻み($${\Delta t}$$)』は参照しないで『(現在の時間)-(直前の時間)』を使ってください。 こうすることで、G列の途中で時間刻みを変化させても正しく計算できます。

✔︎ おわりに
今回は、前回作成したExcelモデルのひな形に具体的な数値や式を入力し、 10円玉の変位を導き出すための計算モデルを作成しました。
この記事の作業を反映したExcelファイルを、解答例として公開しています。👇のダウンロードエリアで入手できます。
#6|計算モデルはココから! 遊びながら学べるExcelモデル&Pythonツール配布中
次回は、 今回作成したモデルが正しく動くか、簡単な条件で動作確認(デバッグ)します。そして余力があれば、Pythonでリアルタイムアニメーションも作ってみる予定です!
ここまで数式で考えてきた10円玉の動きが、 画面上でどのように再現されるのか…
どうぞお楽しみに!
🔗 次の記事につづく
少しでも参考になったり
続きが気になったりしたら、
スキやフォローしていただけると
次の記事を作成する励みになります!
いいなと思ったら応援しよう!
もし具体的に何かのお役に立てたなら、チップで応援していただけると励みになります!
いただいたチップは、今後の活動に使わせていただきます😊