とある大学生の勉強メモ

Python, C#, UWP, WPF, 心理実験関連の開発備忘録

セーリングのコース理論(北風) その一

・南風(海風編)

安定したコンディションでのコース理論はこちら↓↓です.

 

 待ちに待ったセーリングコース理論陸風編をお送りします。とりあえず新西宮での勝利方法を書きますが、他の水域に応用する事もできると思います。何にせよレースごとに水域の傾向を見るのは当然なので、自分の知っている型に如何にして落とし込むのかが焦点になるという訳です。

Abstract

 まずH30卒松本氏の三角波での場合分けを思い出そう。基本的に陸に近い所でレースをする西宮では必ず陸ベン(ショアエフェクト)が起こる。この仕組みとパターンは全てウインドストラテジーに書いてあるので、ここぐらいちゃんと読んで欲しい。別に天気予報の気圧配置からブローの入り方が判るほど科学は進歩していないし(2018年12月現在)、六甲山脈の地形だとか西宮ハーバーの地形だとかは正直どうでも良い。そこに一般解を求めるよりもブローはランダムに発生し、統計処理を行った方が勝率が良いはず。

 前述通り、北風は南風のコースに比べて圧倒的にランダム性が高い。ブローが急に出てくる事もあるし、ブローのシフトにも法則性が見出せず死ぬ時がある。そもそもブローがちゃんと見えない時もある。こんなのどうするんだよ、ドラえもん

 再現性良く勝つ事が本ブログで目指す所であり、それはすなわちコースを科学的に捉えるという事だ。その為に必要なのが先行艇の状態だ。

・先行している艇のバウの向きは自艇と比べてどうか?

・先行している艇のクルーはトラピーズに出ているのか、デッキ内にいるのか?

 この2点をまず抑える。それはすなわちその風域の風速と風向を意味している。すると北風攻略でのポイントは実は1上よりも2上なのだ、という事がわかってくる。そろそろ本題に入ろうか。

 

1 ブローの使い方

 前記事「コース理論 南風*1」にて5度のリフトを走る事のメリットは述べた。そしてブローに入る事のメリットなど言わずもがな。基本的に見えるブローに入って、そのシフトに合わせてタックするかどうか判断する。では次のブローに向けてタックするとなった場合、ブローに入ってから何秒後にタックするのが最善なのか? 次のブローよりも今入っているブローの方が確実性が高いので、今のブローの恩恵を最大限受けてからタックするべきである。

下図を参照してほしい。

1.1 ブローの定義

 ブローというのは風圧が強い、いわゆる他の風域よりも風の密度が強い所である。要するに圧力が高いという事だ。この時エントロピーの法則から3次元的に球体の広がりをブローは見せる。実際は動いているので楕円形だが、今回は球とする。ヨットはz軸方向には動かないので2次元で考えるとブローは円と仮定する事ができる。

f:id:amakazeryu:20181130112951p:plain

図1:ブロー侵入時

1.2 ブロー侵入時の模式図

 半径rのブローに角度θ、速度vで侵入した様子である。ブロー自体は速度Vによって動いている。次にタックをした時を見て欲しい。

f:id:amakazeryu:20181130113049p:plain

図2:ブロー内タック時

 そして最後にブローから出る様子である。

f:id:amakazeryu:20181130113126p:plain

図3:ブロー脱出時

問題はmax:tを求めるという事である。

1.3 ブロー滞在時間を求める

 まずt秒後の艇の位置を求めよう。この時艇は剛体ではなく、質点と捉える。艇は45度で進行するので、そのy軸成分とx軸成分はv*cos(45deg)である。t秒後のブロー外周円上までの距離をdis_ydis_xとすると下図のように考えれば、

f:id:amakazeryu:20181130113214p:plain

図4:t秒後の位置関係

 上図を参考にすれば、数式1のように簡単に求まる。

f:id:amakazeryu:20181130121051p:plain

数式1:t秒後の外周との距離(y軸方向)

dis_xも同様に考えれば、

f:id:amakazeryu:20181130121138p:plain

数式2:t秒後の外周との距離(x軸方向)


 と求まる。ブローはy軸方向にしか動かないので、dis_xの方が若干式が簡単になる。タックを返した時はdis_xのルートの中の絶対値項のvt/{\sqrt{2}}のプラスマイナスが反転するだけだ。条件は今整った。

  • dis_x \leq 0
  • dis_y \leq 0
  • max:t

1.4 いつタックするとどれだけブローに滞在できるのか

 ここでは問題が複雑になるのを我慢して、いつタックすればよいのか、という問題を考えていこう。タックした時刻t_i、求めるtの最大値をt_{max}なのでdis_ydis_x=0は、

f:id:amakazeryu:20181130121819p:plain

数式3:タックする条件を含めたもの(y)

f:id:amakazeryu:20181130144910p:plain

数式4:タックする場合の条件を含めたもの(x)

 という風になる。dis_y=0dis_x=0となる時にブローから出るので、条件通り

  • dis_x \leq 0
  • dis_y \leq 0

 から曲線と範囲を図示すればよい。
 これをt{max}に関して代数的に解くことはかなり大変なので、ここから具体的数値を入れて曲線を書いていこう。

1.5 具体的に問題を解いてみる

1.5.1 真下から侵入時

例えばブローの大きさr=50[m]、ブローの移動速度V=8[m]、進入角度0、ヨットのスピードv=3[m/sとした場合、下図のようになるわけだ。

f:id:amakazeryu:20181129130814p:plain

図4:ブロー真下から侵入

 

具体的に数値を当てた数式は

f:id:amakazeryu:20181130145614p:plain

具体例(yの条件)

f:id:amakazeryu:20181130145702p:plain

具体例(xの条件)

t_{max}をyとして、t_{i}をxとした。

青色がyの条件、赤色がxの条件である。

f:id:amakazeryu:20181130145811j:plain

曲線1:8mコンディション、50mのブロー

黒の部分が両方の条件を満たす場所である。
するとブローに入ってから6秒ほどが丁度タックの頃合いという事が判る。

1.5.2 45度方向から侵入時

次にタックに入る角度が45度の時を考えよう。これは自分の先行艇がブローに入った時をイメージすればいいだろう。

 

f:id:amakazeryu:20181129133915p:plain

丁度前の艇がブローに入った時

 この時曲線は下図のようになる。関数は数式4にθ=45度とすれば導出可能である。

f:id:amakazeryu:20181130150233j:plain

曲線2:8mコンディション、50mのブロー(45度侵入)

これはt_{max} \leq t_{i}の部分が最善値なので、要するにブローを抜けるまでタックする必要はないという事だ(y<xじゃないと現実に起こりえないという事)。

1.5.3 上艇がブローに入っている時

最後に自分より風上にある艇が入った時を考える。

f:id:amakazeryu:20181130151223p:plain

風上側のブローに入る

この時曲線は、

 

f:id:amakazeryu:20181130152006j:plain

曲線1:8mコンディション、50mのブロー(-45度侵入)

黄色がy=xの直線なので、当然の如く即タックがいい。

まとめると6~8m/sコンディションでは、50mほどのブローに入る際、

  • ちゃんと真正面から受けたら6秒後にタックすると10秒間ブローに入る。
  • 先行艇に遅れて入ったケースだとタックせず直進
  • 後ろ上側が入ったら即タック

という事が判った。

風が強くなればこの秒数は全体的に短くなるし、弱くなれば大きくなる事は言うまでもなかろう。

真下からブローに入った時にいつタックすればよいのか、という事を表にまとめるので、少し待って頂きたい。

 

ここに表が出ます。

 

特に風が弱いコンディションならば次のブローが見えない場合はこの手法を採用するとかなり良いはずだ。実際弱いコンディションで度々タックをする上位艇は記憶にあるはずだ。彼らは直感的にそれを知っているのだと思う。

 

今日は疲れたのでここでいったん終わるが、次回はオーディナルスケールによる統計的勝利方法を紹介する。乞うご期待。

 

(色々おかしい所があるので、また直します。11月30日現在)

 

次回予告

 ヨットは帆走時間ではなく着順によって点数が付けられる。ゴールするまでの帆走時間をその人の実力とするならば、実力通りの点数差が出る事はほとんどない。自分がゴールした一分後に入ってきた一つ後ろの艇と自分と僅差でゴールした一つ後ろの艇との実力差は本当に同じ1点か? 答えはNOである。このように時間という基数ではなく、順番という序数のスケールで点数付けをするのがヨットなのだ。

 (そう設計したのは君だろう? 茅場)