さいきん,仕事の方で船に関わることが多いので船の動きも面白いよ,と布教してみる.
船,とひとくちに言ってもタンカーなどの超大型船から客船,個人所有のクルーザー,漁船までいろいろ種類があります.
また,推進方法によっても船内にエンジンを積んだ船内機艇,エンジンごと取り外し可能な船外機艇,ジェット推進の艇などの種類があります.
ここではクルーザーなどに多く使われる下図のような船外機艇(Outboard motor)に焦点を当ててみます.
Mercury社のウェブページ
図の船は船外機が2つ取り付けられています(2機掛けと呼びます)が,最大で5つ取り付ける方もいるようです.
250馬力を5機掛け.パワーの面でも価格の面でも恐ろしいですね.
その船外機艇のなかでも面白いなあと思ったものがMercury社のSkyhookというJoystick操船システムです.
1分34秒あたりを見るとわかりやすいですが,着岸状態から船がほぼ真横に移動しています.
Mercury Joystick Piloting for Outboards
通常,船外機は何機掛けであろうと同じ方向を向かせて舵を切るのですが,この操船システムではそれぞれの船外機を独立させて反対方向に動かすことで横移動を実現しています.
このSkyhookを再現するため,最適化函数を使って遊んでみようというのがこの記事の趣旨です.
環境はMATLAB/Simulink R2015aです.

