カーリングで学ぶ物理っぽい数学

はじめに

私はプログラミングを趣味・仕事としているのですが
物理シミュレーションを取り扱ったプログラムは未だに書いたことがありません。
そこで,私の好きなスポーツ,カーリングを用いて
楽しく物理数学とそのプログラミングを学びたいと思い,このページを書き始めました。
(プログラム的なことは,少ししか書きませんが…)
たぶん,プログラム上でカーリングらしい動きを表現するために式を書いているので
物理学的におかしいことだらけだと思います。ご了承ください。

このページを読むにあたって,高校レベルの数学・物理程度をあらかじめ理解しておく必要があります。
また,カーリングの用語を知っておくと読みやすくなります。

デリバリー(ショット)

デリバリーとはストーンを投げることを言います。
カーリングの基本は,ハウスとよばれる円の中心にストーンが止まるようにデリバリーします。
この節では,デリバリーされたストーンがカールせず,そしてほかのストーンにも当たらずに止まるまでのの動きを書きます。

1次元・摩擦なし

まずはじめに,
1次元で摩擦のないシートでは,どのようにストーンが動くのか考えます。

<条件>
・シートは{奥行き}のみの1次元(横幅がない一直線上のシートの上にストーンをデリバリーする)
・シートとストーン間の摩擦はない
・カールしない

<変数定義>
v0:投球者がストーンを離す瞬間の速度,初速度
t:ストーンを離してからの時間(秒)
a:加速度,摩擦がないため0

投球者がストーンを離す位置をx=0とします。

t秒後の位置x(t)は
x(t) = v0 * t + 0.5 * a * t^2 = v0 * t

t秒後の速度v(t)は
v(t) = v0 + a * t = v0

摩擦がないため,投球者の手から離されたストーンは止まることはありません。

1次元・摩擦あり

次に,1次元という条件は同じままにして,
シートに摩擦があるとして,どのようにストーンが動くのか考えます。

<条件>
・シートは{奥行き}のみの1次元
・シートとストーン間の摩擦はあり
・カールしない

ストーンとシート間の摩擦を加速度として考えます。

<変数定義>
v0:投球者がストーンを離す瞬間の速度,初速度
t:ストーンを離してからの時間(秒)
a:加速度 = シート間の摩擦

t秒後の位置x(t)は
x(t) = v0 * t + 0.5 * a * t^2

t秒後の速度v(t)は
v(t) = v0 + a * t

スウィーピングをすると,加速度aが一定でなく動的に変わるため,
この2つの式は成り立たなくなります。
スウィーピングすることで,スウィーピングされた箇所の加速度は0に近くなります。

また加速度をシート間との摩擦と定義しましたが,
実際はストーンに対する空気抵抗も加速度に影響します。
つまり,本来の加速度aは
加速度 = 空気抵抗による1秒あたりの減少する速度 + シートとストーン間の摩擦によって減少する速度
となり,2つの成分から構成されています。

[例題:トリノ五輪のVTRを見て加速度を求めてみよう]

トリノ五輪のカーリング男子決勝のフィンランドの1stEndの1stショットを元に
加速度を求めてみましょう。

このショットは, ドローショット(ハウスの中にストーンを置くショット)で
ある程度,真ん中に近いところで止まりました。
フィンランド選手はスウィーピングをしていましたが
ここでは,スウィープしていなかった(加速度は一定)とします。

このショットの情報は次の通りです。
・ストーンを手から離したフォグラインからストーンが止まるまでに要した時間は24.3秒
・ストーンを手から離す前の,ハウスの外円から外円までに要した時間は1.58秒
・ハウスの直径は3.66m
時間に関してはVTR見ながらストップウォッチで測りました。

ハウスの外円から外円までに要した時間と,ハウスの直径の情報から
初速度v0 = 3.66 / 1.58 = 2.32 m/s (有効桁数3桁)

v(t) = v0 + a * t より
a = ( v(t) - v0 ) / t
tは,ストーンが止まるまでに要した時間なのでv(t)=0となり,
a = v0 / t = 2.32 / 24.3 = 0.0956 (有効桁数3桁)

よって, トリノ五輪カーリング男子決勝1stエンドのフィンランド1stショット時の
加速度は-0.0956


次に,
目標ハウス側のフォグラインを通過した時間を用いて
位置の誤差を求めてみましょう。

追加情報は次のとおりです。
・フォグライン間に要した時間は14.5秒
・フォグライン間の距離は21.95m

先ほど求めた加速度を用いて
目標ハウス側のフォグラインを通過した時間後の位置を求めると
x(t) = v0 * t + 0.5 * a * t^2 より
x(t) = 2.32 * 14.5 + 0.5 * -0.0956 * 14.5^2 = 23.6m (有効桁数3桁)
よって誤差は 23.6 - 21.95 = 1.65m

2次元・摩擦あり

最後に,実際のシートと同じ2次元・摩擦ありで考えます。

ストーンの位置はXY座標で表すとします。
x成分をシートの長い方の辺,
y成分をシートの短い方の辺とします。
センターライン上をY=0とします。
デリバリー側のフォグライン上をX=0とし,目標ハウスに向かってXの値が増加するとします。
(本来なら図示説明すべきところですね;)

また,ストーンの動作に関して,次の2つの要素をもった2次元ベクトルの情報を持つとします。
・角度 (進行方向,ハウスから目標ハウスに対する方向を0度とする)
・速度(進行方向に向かって毎秒進む速さ)

<条件>
・シートは2次元
・シートとストーン間の摩擦あり
・カールはしない

<変数定義>
v0:投球者がストーンを離す瞬間の速度,初速度
θ0:投球者がストーンを離す瞬間の角度,初角度
x0:投球者がストーンを離す位置
y0:投球者がストーンを離す位置
t:ストーンを離してからの時間(秒)
a:加速度 = シート間の摩擦

t秒後の位置,x(t)とy(t)は
x(t) = cos( θ0 ) * ( v0 * t + 0.5 * a * t^2 ) + x0
y(t) = sin( θ0 ) * ( v0 * t + 0.5 * a * t^2 ) + y0

また,t秒後の速度v(t)は
v(t) = v0 + a * t

t秒後の角度θ(t)は
θ(t) = θ0

カールをするようになると,t秒後の角度は初角度は異なり,
t秒後の位置もこの式では計算できません。

カール

ストーンが進行中に曲がることを「カールする」と言います。
この節では,前節の「デリバリー」をふまえて
カールを考慮した計算式を考えていきます。

カールを考慮した計算式

進行方向に対して毎秒?度カールする
という単純なカールを想定した計算式を考えます。

<条件>
・シートは2次元
・シートとストーン間の摩擦あり
・カールする

<変数定義>
v0:投球者がストーンを離す瞬間の速度,初速度
θ0:投球者がストーンを離す瞬間の角度,初角度
x0:投球者がストーンを離す位置
y0:投球者がストーンを離す位置
φ:ストーンの方向に対して毎秒変化する角度
t:ストーンを離してからの時間(秒)
a:加速度 = シート間の摩擦

t秒後の速度v(t)はカールがあってもなくても同じで
v(t) = v0 + a * t
t秒後のx方向に対する速度vx(t)は
vx(t) = cos( θ0 + φ * t ) * ( v0 + a *t ) 
t秒後のy方向に対する速度をvyは
vy(t) = sin( θ0 + φ * t ) * ( v0 + a *t ) 

t秒後の角度θ(t)は
θ(t) = θ0 + φ * t

t秒後の位置x(t)とy(t)は,
速度vx(t),vy(tIを積分することにより求められないので
台形公式を用いることで求めます。

カール係数

先ほど求めた式はシートとストーン間の摩擦に関係なく
時間のみに相関してカールする式でした。
ここでは,カール係数というものを定義することで
ストーン間の摩擦に関係してカールする計算式を求めます。

前に述べたように,ストーンに対する加速度は
・空気抵抗(Ar)
・シートとストーン間の摩擦(Af)
の2つの成分から成り立っています。
カールに関係するのはこのうち「シートとストーン間の摩擦」になります。

<条件>
・シートは2次元
・シートとストーン間の摩擦あり
・カールする

<変数定義>
v0:投球者がストーンを離す瞬間の速度,初速度
θ0:投球者がストーンを離す瞬間の角度,初角度
x0:投球者がストーンを離す位置
y0:投球者がストーンを離す位置
φ:ストーンの方向に対して毎秒変化する角度
t:ストーンを離してからの時間(秒)
Ar:空気抵抗 による1秒間の減少速度
Af:シートとストーン間の摩擦 による1秒間の減少速度
a:加速度 = Ar + Af
C:カール係数

t秒後の角度θ(t)は
θ(t) = θ0 + φ * C * Af * t

t秒後のx方向に対する速度vx(t)は
vx(t) = cos( θ0 + φ * C * Af * t ) * ( v0 + a *t ) 
t秒後のy方向に対する速度をvyは
vy(t) = cos( θ0 + φ * C * Af * t ) * ( v0 + a *t ) 

t秒後の位置x(t)とy(t)は先ほどと同じように
台形公式を用いることで求めます。

カーリングでは,スウィープすることでシートとストーン間の摩擦が減少させ,
ストーンのカールの幅を狭くする(曲がりにくくする) ため
カール係数は,シートとストーン間の摩擦が減少するとストーンの曲がりも減少する
ように定義することになります。

[例題:トリノ五輪のVTRを見てカール係数を求めてみよう]

トリノ五輪のカーリング男子決勝のフィンランドの1stEndの1stショットを元に
加速度を求めてみましょう。

 

ヒット

投げたストーンが他のストーンに当たることをヒットと言います。
ここでは,ヒットしたストーンがどのように動くのか考えます。

静止しているストーンにヒット

まず,静止しているストーンに投げた石がヒットしたときの動きを考えます。

<条件>
・ストーンAは静止している
・ストーンBは動いている
・ストーンAとBは接触している(ヒットする瞬間)
・ストーン間の摩擦はなし
・ストーンAとBの重さは等しい

<変数定義>
Ax:ストーンAのX座標
Ay:ストーンAのY座標
Bx:ストーンBのX座標
By:ストーンBのY座標
Bv0:ストーンBの速度
Bθ0:ストーンBの進行方向

ストーンAとストーンBが接触した座標X,Yは
X = ( Ax + Bx ) / 2
Y = ( Ay + By ) / 2

ストーンAのヒット後の進行方向Aθは
Aθ = arctan( ( Ax - Bx ) / ( Ay - By ) )

ストーンBのヒット後の進行方向Bθは
Bθ0に関係なくAθに対して90度変化した方向,つまり,
Bθ = Aθ + π / 2
もしくは,
Bθ = Aθ - π / 2
で,Bθ0との差が小さい方の方向,つまり
( Bθ-Bθ0 )^2
が小さい方の方向に進む。
ただし,ストーンBの入射角φが
φ = Bθ0 - Aθ0 ≠ 0
の時に限ります。

ストーンAのヒット後の進行速度Avは
Av = Bv0 * cos( Aθ - Bθ0 )

ストーンBのヒット後の進行速度Bvは
Bv = Bv0 * cos( Bθ - Bθ0 )

動いているストーンにヒット

次に動いているストーンにヒットしたときの動きを考えます。

前の節を復習すると,
静止しているストーンに動いているストーンがヒットした場合,
進行方向は
静止しているストーンには接触座標の反対側の方向に,
動いているストーンには静止しているストーンに加えた方向に対して90度の方向になり
速度はそれぞれに分散します。

両方のストーンが動いている場合は
お互いにこの計算をすればいいことになります。

<条件>
・ストーンAは動いている
・ストーンBは動いている
・ストーンAとBは接触している(ヒットする瞬間)
・ストーン間の摩擦はなし
・ストーンAとBの重さは等しい

<変数定義>
Ax:ストーンAのX座標
Ay:ストーンAのY座標
Av0:ストーンAの速度
Aθ0:ストーンAの進行方向
Bx:ストーンBのX座標
By:ストーンBのY座標
Bv0:ストーンBの速度
Bθ0:ストーンBの進行方向

ストーンAとストーンBが接触した座標X,Yは
X = ( Ax + Bx ) / 2
Y = ( Ay + By ) / 2

ストーンAがストーンBに加えられるベクトルの進行方向Aθ1は
Aθ1 = arctan( ( Ax - Bx ) / ( Ay - By ) )
ストーンBがストーンAに加えられるベクトルの進行方向Bθ1は
Bθ1 = arctan( ( Bx - Ax ) / ( By - Ay ) )

ストーンAがストーンBにヒットすることにより変化した進行方向Aθ2は
Aθ2 = Bθ1 + π / 2
もしくは,
Aθ2 = Bθ1 - π / 2
このうち,Aθ0との差が小さい方の方向。
ストーンBがストーンAにヒットすることにより変化した進行方向Bθ2は
Bθ2 = Aθ1 + π / 2
もしくは,
Bθ2 = Aθ1 - π / 2
このうち,Bθ0との差が小さい方の方向。

ストーンBにより加えられるストーンAの進行速度Av1は
Av1 = Bv0 * cos( Aθ1 - Bθ0 )
ストーンA自身によるヒット後の進行速度Av2は
Av2 = Av0 * cos( Aθ2 - Aθ0 )

ストーンAにより加えられるストーンBの進行速度Bv1は
Bv1 = Av0 * cos( Bθ1 - Aθ0 )
ストーンB自身によるヒット後の進行速度Bv2は
Bv2 = Bv0 * cos( Bθ2 - Bθ0 )

ストーンAには,Aθ1の方向にAv1の速度ベクトルとAθ2の方向にAv2の速度ベクトルがかかっています。
Av1のX成分,Av1xは
Av1x = Av1 * cos( Aθ1 )
Av1のY成分,Av1yは
Av1y = Av1 * sin( Aθ1 )
同様に,Av2のX成分Av2xとAv2のY成分Av2yは
Av2x = Av2 * cos( Aθ2 )
Av2y = Av2 * sin( Aθ2 )
これより,ストーンAのヒット後のX方向の速度Avx,ストーンBのY方向の速度Avyは
Avx = Av1x + Av2x
Avy = Av1y + Av2y
よって,ストーンAのヒット後の速度Avは
Av = √( Avx^2 + Avy^2 )
ストーンAのヒット後の進行方向Aθは
Aθ = arctan( Avx / Avy )

Bv,Bθも同様に求められます。