(57)【特許請求の範囲】
【請求項１】
移動体における互いに異なる方向に推力を発生させる複数の推力発生部に対する動作指令と、前記複数の推力発生部が発生させる推力の総和が制限された制限条件下で前記推力の総和の制限を満たすように設定される、前記動作指令に対する制限値とに基づいて、前記動作指令に前記制限値が適用されたときの前記移動体の速度ベクトルである制限条件速度ベクトルを演算する制限条件速度演算部と、
前記動作指令に基づいて、前記複数の推力発生部の推力を制限しない制限無し条件下における前記移動体の速度ベクトルである理想速度ベクトルを演算する理想速度演算部と、
前記制限条件速度ベクトルと前記理想速度ベクトルとの相違の評価値を算出する評価関数演算部と、
前記制限値を仮設定し、前記評価値を目的関数値として前記制限値を設定し直す最適化を、前記評価値が所定の終了条件を満たすまで繰り返す推力配分決定部と、
を備える演算装置。
【請求項２】
前記推力配分決定部は、前記制限条件速度ベクトルの方向と前記理想速度ベクトルの方向との角度の積分値を目的関数とする最適化問題を解くことで、前記制限値を算出する、
請求項１に記載の演算装置。
【請求項３】
前記推力配分決定部は、前記制限条件速度ベクトルと前記理想速度ベクトルとの差の大きさの積分値を目的関数とする最適化問題を解くことで、前記制限値を算出する、
請求項１に記載の演算装置。
【請求項４】
移動体本体と、
前記移動体本体に設けられて互いに異なる方向に推力を発生させる複数の推力発生部と、
請求項１から３のいずれか一項に記載の演算装置と、
を備える移動体システム。
【請求項５】
演算装置の演算方法であって、
移動体における互いに異なる方向に推力を発生させる複数の推力発生部に対する動作指令と、前記複数の推力発生部が発生させる推力の総和が制限された制限条件下で前記推力の総和の制限を満たすように設定される、前記動作指令に対する制限値とに基づいて、前記動作指令に前記制限値が適用されたときの前記移動体の速度ベクトルである制限条件速度ベクトルを演算する制限条件速度演算ステップと、
前記動作指令に基づいて、前記複数の推力発生部の推力を制限しない制限無し条件下における前記移動体の速度ベクトルである理想速度ベクトルを演算する理想速度演算ステップと、
前記制限条件速度ベクトルと前記理想速度ベクトルとの相違の評価値を算出するステップと、
前記制限値を仮設定し、前記評価値を目的関数値として前記制限値を設定し直す最適化を、前記評価値が所定の終了条件を満たすまで繰り返す推力配分決定ステップと、
を有する演算方法。
【請求項６】
コンピュータに、
移動体における互いに異なる方向に推力を発生させる複数の推力発生部に対する動作指令と、前記複数の推力発生部が発生させる推力の総和が制限された制限条件下で前記推力の総和の制限を満たすように設定される、前記動作指令に対する制限値とに基づいて、前記動作指令に前記制限値が適用されたときの前記移動体の速度ベクトルである制限条件速度ベクトルを演算する制限条件速度演算ステップと、
前記動作指令に基づいて、前記複数の推力発生部の推力を制限しない制限無し条件下における前記移動体の速度ベクトルである理想速度ベクトルを演算する理想速度演算ステップと、
前記制限条件速度ベクトルと前記理想速度ベクトルとの相違の評価値を算出するステップと、
前記制限値を仮設定し、前記評価値を目的関数値として前記制限値を設定し直す最適化を、前記評価値が所定の終了条件を満たすまで繰り返す推力配分決定ステップと、
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、演算装置、移動体システム、演算方法およびプログラムに関する。
【背景技術】
【０００２】
水中航走体などの移動体として、異なる向きに推力を発生させる複数の推力発生装置を備えたものが知られている。例えば、特許文献１に記載の航走体は、複数の推力発生装置が発生させる推力の大きさおよびバランスによって移動体の速度及び向きを調整している。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００８−１０７９４３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上記のような複数の推力発生装置を備える移動体では、全ての推力発生装置で同時に最大推力を発生させることができない場合がある。例えば、複数のスラスタを備える水中航走体では、スラスタの油圧モータに油圧を供給する油圧ポンプの容量が水中航走体の重量及び機体寸法の制約を受け、全てのスラスタが同時に最大推力を発生させられない場合がある。この場合、推力発生装置への油圧の配分によって移動体の動作が異なると考えられる。このため、移動体を効率よく動作させるように推力発生装置へ油圧を配分できることが望ましい。
【０００５】
本発明は、移動体の全ての推力発生装置で同時に最大推力を発生させることができない場合に、当該移動体を効率よく動作させるように推力発生装置へ油圧を配分することができる演算装置、移動体システム、演算方法及びプログラムを提供する。
【課題を解決するための手段】
【０００６】
本発明の第１の態様によれば、演算装置は、移動体における互いに異なる方向に推力を発生させる複数の推力発生部に対する動作指令と、前記複数の推力発生部が発生させる推力の総和が制限された制限条件下で前記推力の総和の制限を満たすように設定される、前記動作指令に対する制限値とに基づいて、前記動作指令に前記制限値が適用されたときの前記移動体の速度ベクトルである制限条件速度ベクトルを演算する制限条件速度演算部と、前記動作指令に基づいて、前記複数の推力発生部の推力を制限しない制限無し条件下における前記移動体の速度ベクトルである理想速度ベクトルを演算する理想速度演算部と、前記制限条件速度ベクトルと前記理想速度ベクトルとの相違の評価値を算出する評価関数演算部と、前記制限値を仮設定し、前記評価値を目的関数値として前記制限値を設定し直す最適化を、前記評価値が所定の終了条件を満たすまで繰り返す推力配分決定部と、を備える。
【０００７】
前記推力配分決定部は、前記制限条件速度ベクトルの方向と前記理想速度ベクトルの方向との角度の積分値を目的関数とする最適化問題を解くことで、前記制限値を算出するようにしてもよい。
【０００８】
前記推力配分決定部は、前記制限条件速度ベクトルと前記理想速度ベクトルとの差の大きさの積分値を目的関数とする最適化問題を解くことで、前記制限値を算出するようにしてもよい。
【０００９】
本発明の第２の態様によれば、移動体は、移動体本体と、前記移動体本体に設けられて互いに異なる方向に推力を発生させる複数の推力発生部と、上記のいずれかの演算装置と、を備える。
【００１０】
本発明の第３の態様によれば、演算方法は、演算装置の演算方法であって、移動体における互いに異なる方向に推力を発生させる複数の推力発生部に対する動作指令と、前記複数の推力発生部が発生させる推力の総和が制限された制限条件下で前記推力の総和の制限を満たすように設定される、前記動作指令に対する制限値とに基づいて、前記動作指令に前記制限値が適用されたときの前記移動体の速度ベクトルである制限条件速度ベクトルを演算する制限条件速度演算ステップと、前記動作指令に基づいて、前記複数の推力発生部の推力を制限しない制限無し条件下における前記移動体の速度ベクトルである理想速度ベクトルを演算する理想速度演算ステップと、前記制限条件速度ベクトルと前記理想速度ベクトルとの相違の評価値を算出するステップと、前記制限値を仮設定し、前記評価値を目的関数値として前記制限値を設定し直す最適化を、前記評価値が所定の終了条件を満たすまで繰り返す推力配分決定ステップと、を有する。
【００１１】
本発明の第４態様によれば、プログラムは、コンピュータに、移動体における互いに異なる方向に推力を発生させる複数の推力発生部に対する動作指令と、前記複数の推力発生部が発生させる推力の総和が制限された制限条件下で前記推力の総和の制限を満たすように設定される、前記動作指令に対する制限値とに基づいて、前記動作指令に前記制限値が適用されたときの前記移動体の速度ベクトルである制限条件速度ベクトルを演算する制限条件速度演算ステップと、前記動作指令に基づいて、前記複数の推力発生部の推力を制限しない制限無し条件下における前記移動体の速度ベクトルである理想速度ベクトルを演算する理想速度演算ステップと、前記制限条件速度ベクトルと前記理想速度ベクトルとの相違の評価値を算出するステップと、前記制限値を仮設定し、前記評価値を目的関数値として前記制限値を設定し直す最適化を、前記評価値が所定の終了条件を満たすまで繰り返す推力配分決定ステップと、を実行させるためのプログラムである。
【発明の効果】
【００１２】
上記した演算装置、移動体システム、演算方法及びプログラムによれば、移動体の全ての推力発生装置で同時に最大推力を発生させることができない場合に、当該移動体を効率よく動作させるように推力発生装置へ油圧を配分することができる。
【図面の簡単な説明】
【００１３】
【図１】本発明の一実施形態における水中航走体を後方から見た概略外形図である。
【図２】同実施形態における水中航走体を右側方から見た概略外形図である。
【図３】同実施形態における水平スラスタが水中航走体を横進させるために発生させる水流の向きの例を示す説明図である。
【図４】同実施形態における水平スラスタが水中航走体を回頭させる水流の向きの例を示す説明図である。
【図５】同実施形態における水中航走体を上から見た概略外形図である。
【図６】同実施形態における水中航走体の機能構成を示す概略ブロック図である。
【図７】同実施形態における水中航走体システムの機器構成を示す概略構成図である。
【図８】同実施形態における演算装置の機能構成を示す概略ブロック図である。
【図９】同実施形態における推力配分決定部が取得する、前後進の動作指令値が１の場合の前後進の制限値の例を示すグラフである。
【図１０】同実施形態における推力配分決定部が取得する、前後進の動作指令値が１の場合の上下動の制限値の例を示すグラフである。
【図１１】同実施形態における推力配分決定部が取得する、前後進の動作指令値が１の場合の左右回頭の制限値の例を示すグラフである。
【図１２】同実施形態における推力配分決定部が取得する、前後進の動作指令値が０．７５の場合の前後進の制限値の例を示すグラフである。
【図１３】同実施形態における推力配分決定部が取得する、前後進の動作指令値が０．７５の場合の上下動の制限値の例を示すグラフである。
【図１４】同実施形態における推力配分決定部が取得する、前後進の動作指令値が０．７５の場合の左右回頭の制限値の例を示すグラフである。
【図１５】同実施形態における推力配分決定部が取得する、前後進の動作指令値が０．５の場合の前後進の制限値の例を示すグラフである。
【図１６】同実施形態における推力配分決定部が取得する、前後進の動作指令値が０．５の場合の上下動の制限値の例を示すグラフである。
【図１７】同実施形態における推力配分決定部が取得する、前後進の動作指令値が０．５の場合の左右回頭の制限値の例を示すグラフである。
【図１８】同実施形態における推力配分決定部が取得する、前後進の動作指令値が０．２５の場合の前後進の制限値の例を示すグラフである。
【図１９】同実施形態における推力配分決定部が取得する、前後進の動作指令値が０．２５の場合の上下動の制限値の例を示すグラフである。
【図２０】同実施形態における推力配分決定部が取得する、前後進の動作指令値が０．２５の場合の左右回頭の制限値の例を示すグラフである。
【図２１】同実施形態における演算装置が動作指令値に対する制限値を求める処理手順を示すフローチャートである。
【図２２】同実施形態における水中航走体システムとは異なる方法による油圧配分の例を示すグラフである。
【図２３】同実施形態における水中航走体の移動経路のシミュレーション結果の例を示すグラフである。
【図２４】同実施形態における水中航走体の移動距離の変化の例を示すグラフである。
【図２５】同実施形態における水中航走体の深度の変化の例を示すグラフである。
【図２６】同実施形態における水中航走体の向きの変化の例を示すグラフである。
【図２７】同実施形態における油圧ポンプが供給する油量の例を示すグラフである。
【発明を実施するための形態】
【００１４】
以下、本発明の実施形態を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
【００１５】
まず、図１〜図５を参照して水中航走体が備えるスラスタ（Thruster）の配置例について説明する。
図１は、本発明の一実施形態における水中航走体を後方から見た概略外形図である。同図を参照すると、水中航走体２００は、航走体本体２０１と、第１主推進スラスタ２１１、第２主推進スラスタ２１２、第３主推進スラスタ２１３、及び、第４主推進スラスタ２１４の４つの主推進スラスタとを備える。以下では、第１主推進スラスタ２１１〜第４主推進スラスタ２１４を総称して主推進スラスタ２１０と表記する。
【００１６】
水中航走体２００は、移動体の例に該当し、遠隔操作による動作指令を受けて水中を移動する。ここでいう移動体は、自力で移動可能な機械である。また、航走体本体は移動体本体の例に該当する。
主推進スラスタ２１０の各々は、油圧モータで回転駆動されるプロペラを備え、プロペラの回転により水流を生じさせることで推力を発生させる。特に、主推進スラスタ２１０は、水中航走体２００の後方に向けて水流を生じさせることで水中航走体２００を前進させる。また、主推進スラスタ２１０は、水中航走体２００の前方に向けて水流を生じさせることもできる。この場合、主推進スラスタ２１０は、水中航走体２００を後進させる。
【００１７】
図２は、水中航走体２００を右側方から見た概略外形図である。同図を参照すると、水中航走体２００は、航走体本体２０１と、航走体本体２０１を左右に貫通する穴の内部に設置された、第１水平スラスタ２２１及び第２水平スラスタ２２２の２つの水平スラスタを備える。第１水平スラスタ２２１が水中航走体２００の前側に設けられており、第２水平スラスタ２２２が水中航走体２００の後ろ側に設けられている。以下では、第１水平スラスタ２２１及び第２水平スラスタ２２２を総称して水平スラスタ２２０と表記する。
【００１８】
水平スラスタ２２０の各々は、油圧モータで回転駆動されるプロペラを備え、プロペラの回転により水流を生じさせることで推力を発生させる。特に、水平スラスタ２２０は、水中航走体２００の側方に向けて水流を生じさせることで、水中航走体２００を横進させる。具体的には、水平スラスタ２２０は、水中航走体２００の左側（進行方向に向かって左側）へ向けて水流を生じさせることで、水中航走体２００を右側へ横進させる。また、水平スラスタ２２０は、水中航走体２００の右側（進行方向に向かって右側）へ向けて水流を生じさせることで、水中航走体２００を左側へ横進させる。
【００１９】
図３は、水平スラスタ２２０が水中航走体２００を横進させるために発生させる水流の向きの例を示す説明図である。同図は、水中航走体２００を上から見た場合の、水平スラスタ２２０が発生させる水流の向きの例を示している。同図を参照すると、第１水平スラスタ２２１と第２水平スラスタ２２２とが、いずれも水中航走体２００の左側へ向けて水流を生じさせている。この水流によって推力が発生し、水中航走体２００は、矢印Ａ１１にて示すように右側へ横進する。
【００２０】
また、水平スラスタ２２０は、左右回頭用スラスタとしても動作する。
図４は、水平スラスタ２２０が水中航走体２００を回頭させる水流の向きの例を示す説明図である。同図は、水中航走体２００を側から見た場合の、水平スラスタ２２０が発生させる水流の向きの例を示している。同図を参照すると、第１水平スラスタ２２１が、水中航走体２００の左側へ向けて水流を発生させている。一方、第２水平スラスタ２２２は、水中航走体２００の右側へ向けて水流を発生させている。これにより、水中航走体２００は、矢印Ａ１２にて示すように右向きに回頭する。
【００２１】
以下では、水平スラスタ２２０が、横進または左右回頭のいずれかの動作を行う場合を例に説明するが、水平スラスタ２２０が、横進と左右回頭とを組み合わせた動作を行うようにしてもよい。例えば、第１水平スラスタ２２１と、第２水平スラスタ２２２とが、いずれも水中航走体２００の左側へ向けて水流を発生させることで、水中航走体２００が右側へ横進する。その際、第１水平スラスタ２２１が、第２水平スラスタ２２２よりも多い流量の水流を発生させることで、水中航走体２００が右向きに回頭する。これにより、水中航走体２００は、右側へ横進しつつ右向きに回頭する。
【００２２】
図５は、水中航走体２００を上から見た概略外形図である。同図を参照すると、水中航走体２００は、航走体本体２０１と、航走体本体２０１を上下に貫通する穴の内部に設置された、第１垂直スラスタ２３１及び第２垂直スラスタ２３２の２つの垂直スラスタを備える。第１垂直スラスタ２３１が水中航走体２００の前側に設けられており、第２垂直スラスタ２３２が水中航走体２００の後ろ側に設けられている。以下では、第１垂直スラスタ２３１及び第２垂直スラスタ２３２を総称して垂直スラスタ２３０と表記する。
【００２３】
垂直スラスタ２３０の各々は、油圧モータで回転駆動されるプロペラを備え、プロペラの回転により水流を生じさせることで推力を発生させる。特に、垂直スラスタ２３０は、水中航走体２００の下方に向けて水流を生じさせることで、水中航走体２００を上昇させる。また、垂直スラスタ２３０は、水中航走体２００の上方へ向けて水流を生じさせることで、水中航走体２００を下降させる。
【００２４】
主推進スラスタ２１０、水平スラスタ２２０及び垂直スラスタ２３０は、推力発生部の例に該当する。上記のように、主推進スラスタ２１０は、水中航走体２００の前後方向に推力を発生させる。水平スラスタ２２０は、水中航走体２００の左右方向に推力を発生させる。垂直スラスタ２３０は、水中航走体２００の上下方向に推力を発生させる。このように、主推進スラスタ２１０と、水平スラスタ２２０と、垂直スラスタ２３０とは、互いに異なる方向に推力を発生させる。
なお、以下では、主推進スラスタ２１０、水平スラスタ２２０及び垂直スラスタ２３０を総称して単にスラスタとも表記する。
【００２５】
次に、図６〜図８を参照して水中航走体２００を含む水中航走体システムの構成について説明する。
図６は、水中航走体２００の機能構成を示す概略ブロック図である。同図を参照すると、水中航走体２００は、第１主推進スラスタ２１１と、第２主推進スラスタ２１２と、第３主推進スラスタ２１３と、第４主推進スラスタ２１４と、第１水平スラスタ２２１と、第２水平スラスタ２２２と、第１垂直スラスタ２３１と、第２垂直スラスタ２３２と、油圧ポンプ２４０と、推力配分制御部２５０とを備える。推力配分制御部２５０は、指令取得部２５１と、水平成分自動手動切替部２５２と、垂直成分自動手動切替部２５３と、制限値演算部２５４と、主推進成分推力制限部２５５と、水平成分推力制限部２５６と、垂直成分推力制限部２５７と、サーボ指令演算部２５８とを備える。
【００２６】
第１主推進スラスタ２１１〜第４主推進スラスタ２１４は、図１を参照して説明したように、水中航走体２００を前進または後進させる推力を発生させる。第１水平スラスタ２２１及び第２水平スラスタ２２２は、図２〜図４を参照して説明したように、水中航走体２００を横進又は回頭させる推力を発生させる。第１垂直スラスタ２３１及び第２垂直スラスタ２３２は、図５を参照して説明したように、水中航走体２００を上昇又は下降させる推力を発生させる。
【００２７】
油圧ポンプ２４０は、主推進スラスタ２１０、水平スラスタ２２０及び垂直スラスタ２３０の各々に油圧を供給する。但し、水中航走体２００の重量及び機体寸法の制約から、油圧ポンプ２４０は、全てのスラスタが最大の出力を行うだけの容量を有していない。油圧ポンプ２４０の容量を超える指令操作が行われた場合、少なくとも一部のスラスタによる推力が動作指令値にて指示された推力よりも小さくなる。
【００２８】
推力配分制御部２５０は、水中航走体２００の動作を指示する動作指令値に基づいて、主推進スラスタ２１０、水平スラスタ２２０及び垂直スラスタ２３０の各々を制御する。
指令取得部２５１は、水中航走体２００の動作を指示する動作指令値を取得する。具体的には、水中航走体２００を遠隔操作する運転操作員は、水中航走体２００の動作として、前後進、上下動及び左右回頭の３つの動作の組み合わせ、または、前後進、横進及び上下動の３つの動作の組み合わせを指示可能である。指令取得部２５１は、これら３つの動作それぞれの大きさを指示する動作指令値を取得する。
【００２９】
水平成分自動手動切替部２５２は、水中航走体２００の横進及び左右回頭について自動制御と手動制御との切替を行う。ここで、運転操作員は、水中航走体２００の水平方向の動作について自動制御と手動制御とのいずれかを選択可能である。自動制御では、水中航走体２００の進行方向を方位で指示する。一方、手動制御では運転操作員は、単位時間当たりの横進の量又は左右回頭の量又はこれらの組み合わせをジョイスティック操作によって指示する。
手動制御が選択されている場合、水平成分自動手動切替部２５２は、横進の量、左右回頭の量をそれぞれ取得して水平成分推力制限部２５６へ出力する。一方、自動制御が選択されている場合、水平成分自動手動切替部２５２は方位の設定値および現在値を取得する。そして、水平成分自動手動切替部２５２は、方位の設定値と現在値との比較から行うべき回頭の量を算出して水平成分推力制限部２５６へ出力する。
【００３０】
垂直成分自動手動切替部２５３は、水中航走体２００の上下動について自動制御と手動制御との切替を行う。ここで、水中航走体２００の運転操作員は、水中航走体２００の垂直方向の動作について自動制御と手動制御とのいずれかを選択可能である。自動制御では、水中航走体２００の深度を指示する。一方、手動制御では、単位時間当たりの上下動の量をジョイスティック操作によって指示する。
手動制御が選択されている場合、垂直成分自動手動切替部２５３は、上下動の量を取得して垂直成分推力制限部２５７へ出力する。一方、自動制御が選択されている場合、垂直成分自動手動切替部２５３は深度の設定値および現在値を取得する。そして、垂直成分自動手動切替部２５３は、深度の設定値と現在値との比較から行うべき上下動の量を算出して垂直成分推力制限部２５７へ出力する。
【００３１】
制限値演算部２５４は、指令取得部２５１が取得した動作指令値に基づいて、動作指令値に対する制限値を算出する。具体的には、制限値演算部２５４は、動作指令値と制限値との関係を示す関数を予め記憶しておく。そして、制限値演算部２５４は、指令取得部２５１が取得した動作指令値を関数に適用して動作毎の制限値を算出する。ここでいう動作毎は、前後進、上下動及び左右回頭の各々、または、前後進、横進及び上下動の各々である。
例えば、制限値演算部２５４は動作毎の制限値として、動作指令値に乗算する係数α（０≦α≦１）を動作毎に求める。
【００３２】
主推進成分推力制限部２５５は、制限値演算部２５４が算出した前後進の制限値を前後進の動作指令値に適用する。例えば、主推進成分推力制限部２５５は前後進の制限値を上限として前後進の動作指令値に制限をかける。
以下では、制限値を適用された動作指令値を制限後の動作指令値と称する。
【００３３】
水平成分推力制限部２５６は、横進の動作指令値または左右回頭の動作指令値に対して、制限後の動作指令値を求める。横進の動作指令が行われた場合、制限値演算部２５４が算出した横進の制限値を横進の動作指令値に適用して、制限後の横進の動作指令値を取得する。例えば、水平成分推力制限部２５６は横進の制限値を上限として横進の動作指令値に制限をかける。
一方、左右回頭の動作指令が行われた場合、水平成分推力制限部２５６は、制限値演算部２５４が算出した左右回頭の制限値を左右回頭の動作指令値に適用して、制限後の左右回頭の動作指令値を取得する。例えば、水平成分推力制限部２５６は左右回頭の制限値を上限として左右回頭の動作指令値に制限をかける。
【００３４】
垂直成分推力制限部２５７は、制限値演算部２５４が算出した上下動の制限値を上下動の動作指令値に適用して、制限後の上下動の動作指令値を取得する。例えば、垂直成分推力制限部２５７は上下動の制限値を上限として上下動の動作指令値に制限をかける。
【００３５】
サーボ指令演算部２５８は、制御後の動作指令値からスラスタの制御値を算出する。具体的には、サーボ指令演算部２５８は、主推進成分推力制限部２５５が取得した制限後の前後進の動作指令値を、油圧ポンプ２４０から第１主推進スラスタ２１１への油供給量の調節弁の弁開度指令値に換算する。第２主推進スラスタ２１２〜第４主推進スラスタ２１４の各々についても同様に、サーボ指令演算部２５８は、主推進成分推力制限部２５５が取得した制限後の前後進の動作指令値を弁開度指令値に換算する。
【００３６】
また、第１水平スラスタ２２１、第２水平スラスタ２２２の各々についても同様に、サーボ指令演算部２５８は、水平成分推力制限部２５６が取得した制限後の横進の動作指令値、または、制限後の左右回頭の動作指令値を、弁開度指令値に換算する。また、第１垂直スラスタ２３１、第２垂直スラスタ２３２の各々についても同様に、サーボ指令演算部２５８は、垂直成分推力制限部２５７が取得した制限後の上下動の動作指令値を、弁開度指令値に換算する。
【００３７】
サーボ指令演算部２５８は、例えば、制限後の指令値を弁開度指令値に換算する関数をスラスタ毎に予め記憶しておく。そして、サーボ指令演算部２５８は、制限後の指令値を当該関数に代入して演算することで、スラスタ毎に弁開度指令値を取得する。
【００３８】
図７は、水中航走体システムの機器構成を示す概略構成図である。同図を参照すると、水中航走体システム１は、演算装置１００と、図１〜６を参照して説明した水中航走体２００とを備える。水中航走体システム１は、移動体システムの例に該当する。
図６を参照して説明したように、水中航走体２００の油圧ポンプ２４０は、全てのスラスタが最大の出力を行えるだけの容量を有していないため、制限値演算部２５４が、動作指令値と制限値との関係を示す関数を予め記憶しておいて動作指令値を制限値に換算する。この関数を演算装置１００が予め求めておく。
【００３９】
図８は、演算装置１００の機能構成を示す概略ブロック図である。同図を参照すると、演算装置１００は、動作指令設定部１１０と、制限条件速度演算部１２０と、理想速度演算部１３０と、評価関数演算部１４０と、油量出力部１５０と、推力配分決定部１６０と、関数近似部１７０と、結果出力部１８０とを備える。
【００４０】
演算装置１００は、前後進、上下動及び左右回頭の動作指令値の組み合わせを複数設定し、設定した組み合わせ毎に最適化問題を解いて、指令に対する制限値を求める。同様に、演算装置１００は、前後進、横進及び上下動の動作指令値の組み合わせを複数設定し、設定した組み合わせ毎に最適化問題を解いて、指令に対する制限値を求める。以下では、前後進、上下動及び左右回頭の組み合わせを例に説明する。前後進、横進、上下動の組み合わせについても同様である。
演算装置１００は、例えばコンピュータを用いて構成される。
【００４１】
動作指令設定部１１０は、前後進、上下動及び左右回頭の動作指令値の組み合わせを複数設定する。例えば、各動作指令が最小値０、最大値１で与えられるのに対し、動作指令毎に０．２５ずつ変化させて（０，０，０）、（０，０，０．２５）、・・・、（１，１，１）の各組み合わせを設定する。なお、上記の横ベクトルの第１値、第２値、第３値はそれぞれ、前後進の動作指令値、上下動の動作指令値及び左右回頭の動作指令値を示す。
【００４２】
制限条件速度演算部１２０は、制限後の動作指令値に対する水中航走体２００の速度ベクトルを求める。具体的には、制限条件速度演算部１２０は、動作指令設定部１１０が設定した動作指令値に対する制限値（仮の値）を推力配分決定部１６０から動作毎に取得する。そして、制限条件速度演算部１２０は、動作指令値に制限値を適用して制限後の動作指令値を動作毎に算出する。
【００４３】
そして制限条件速度演算部１２０は、得られた制限後の動作指令値を、予め記憶している水中航走体２００の運動モデルに適用して制限後の動作指令値に対する水中航走体２００の速度ベクトルを求める。
以下では、制限条件速度演算部１２０が求める制限後の動作指令値に対する水中航走体２００の速度ベクトルを、制限条件速度ベクトルと称する。
【００４４】
理想速度演算部１３０は、動作指令値に対する制限がないと仮定した場合の、動作指令値に対する水中航走体２００の速度ベクトルを求める。具体的には、動作指令設定部１１０が設定した動作指令値を、予め記憶している水中航走体２００の運動モデルに適用して、動作指令値に対する水中航走体２００の速度ベクトルを求める。
以下では、理想速度演算部１３０が求める、動作指令値に対する制限がないと仮定した場合の動作指令値対する水中航走体２００の速度ベクトルを、理想速度ベクトルと称する。
【００４５】
評価関数演算部１４０は、制限条件速度ベクトルを評価する。具体的には、評価関数演算部１４０は、制限条件速度ベクトルと理想速度ベクトルとの角度の評価値ＥＶＡＬを式（１）に基づいて算出する。
【００４６】
【数１】
0006566236.tif 000002
【００４７】
ここで、時刻０は、水中航走体２００の動作制御を開始した時刻を示す。また、時刻ｅｎｄは、制限速度ベクトルが収束した時刻（水中航走体２００の速度が定常状態になった時刻）を示す。また、角度θ（ｔ）は、制限条件速度ベクトルと理想速度ベクトルとの角度を示し、式（２）のように表される。
【００４８】
【数２】
0006566236.tif 000003
【００４９】
ここで、Ｖｉ（ｔ）は、時刻ｔにおける理想速度ベクトルを示す。また、Ｖ（ｔ）は、時刻ｔにおける制限条件速度ベクトルを示す。
なお、以下では、演算装置１００が前後進、横進、上下動、左右回頭の４次元空間における速度ベクトルを用いる場合を例に説明するが、これに限らない。例えば、演算装置１００が、東西、南北、上下の３次元空間における速度ベクトルを用いるようにしてもよい。
式（２）の「Ｖｉ（ｔ）・Ｖ（ｔ）」は、理想速度ベクトルＶｉ（ｔ）と制限条件速度ベクトルＶ（ｔ）との内積を示し、式（３）のように表される。
【００５０】
【数３】
0006566236.tif 000004
【００５１】
ここで、ｕｉ（ｔ）は、理想速度ベクトルＶｉ（ｔ）における前後進の成分を示す。前後進の成分とは、具体的には水中航走体２００の前後方向の速度成分である。また、ｕ（ｔ）は、制限条件速度ベクトルＶ（ｔ）における前後進の成分を示す。
また、ｖｉ（ｔ）は、理想速度ベクトルＶｉ（ｔ）における横進の成分を示す。横進の成分とは、具体的には水中航走体２００の横方向の速度成分である。また、ｖ（ｔ）は、制限条件速度ベクトルＶ（ｔ）における横進の成分を示す。
なお、動作指令設定部１１０が、前後進、上下動及び左右回頭の動作指令値の組み合わせを設定する場合、ｖｉ（ｔ）の値、ｖ（ｔ）の値のいずれもゼロ（０）とする。
【００５２】
また、ｗｉ（ｔ）は、理想速度ベクトルＶｉ（ｔ）における上下動の成分を示す。上下動の成分とは、具体的には水中航走体２００の上下方向の速度成分である。また、ｗ（ｔ）は、制限条件速度ベクトルＶ（ｔ）における上下動の成分を示す。
また、ｒｉ（ｔ）は、理想速度ベクトルＶｉ（ｔ）における左右回頭の成分を示す。左右回頭の成分とは、具体的には水中航走体２００が向き（進行方向）を左右に変化させる角速度成分である。また、ｒ（ｔ）は、制限条件速度ベクトルＶ（ｔ）における左右回頭の成分を示す。
なお、動作指令設定部１１０が、前後進、横進及び上下動の動作指令値の組み合わせを設定する場合、ｒｉ（ｔ）の値、ｒ（ｔ）の値のいずれもゼロとする。
また、式（２）の「｜Ｖｉ（ｔ）｜」は、理想速度ベクトルＶｉ（ｔ）の大きさを示し、式（４）のように表される。
【００５３】
【数４】
0006566236.tif 000005
【００５４】
また、式（２）の「｜Ｖ（ｔ）｜」は、制限条件速度ベクトルＶ（ｔ）の大きさを示し、式（５）のように表される。
【００５５】
【数５】
0006566236.tif 000006
【００５６】
油量出力部１５０は、制限後の動作指令時（制限条件下での動作指令時）に、油圧ポンプ２４０が供給する油量を示す情報を出力する。例えば、油量出力部１５０は、制限条件下での当該油量を示す情報として２リットル毎分（ＬＰＭ）などの定数を出力する。
推力配分決定部１６０は、動作指令設定部１１０が設定する動作指令毎に、動作単位で制限値を決定する。具体的には、推力配分決定部１６０は、油圧ポンプ２４０が供給可能な油量を制約条件とし、評価関数演算部１４０が用いる評価関数を目的関数として、目的関数の値を最小化する制約付き非線形最適化問題を解くことで、前後進、上下動、左右回頭の各々の制限後の動作指令値を取得する。そして、推力配分決定部１６０は、制限後の前後進の動作指令値を主推進スラスタ２１０に対する制限値に換算する。また、推力配分決定部１６０は、上下動の前後進の動作指令値を垂直スラスタ２３０に対する制限値に換算する。また、推力配分決定部１６０は、制限後の上下回頭の動作指令値を水平スラスタ２２０に対する制限値に換算する。
【００５７】
例えば、推力配分決定部１６０は、制限後の動作指令値を制限前の動作指令値で除算して制限値を算出する。これにより、  推力配分決定部１６０は、動作指令値に乗算する係数β（０≦β≦１）を動作毎に求める。
推力配分決定部１６０が最適化問題を解く方法として、例えば逐次２次計画法（Sequential Quadratic Programming；ＳＱＰ）など既存の方法を用いることができる。
【００５８】
ここで、図９〜図２０を参照して、推力配分決定部１６０が取得する制限値の例を示す。
図９は、推力配分決定部１６０が取得する、前後進の動作指令値が１の場合の前後進の制限値の例を示すグラフである。同図のグラフでは、上下動の動作指令値の軸と、左右回頭の動作指令値の軸と、前後進の制限値の軸とが示されている。そして、同図のグラフでは、前後進の動作指令値が１の場合について、上下動の動作指令値および左右回頭の動作指令値に対応する前後進の制限値が示されている。
なお、前後進の動作指令値、上下動の動作指令値、左右回頭の動作指令値のいずれも、最小値が０、最大値が１である。前後進の制限値も、最小値が０、最大値が１である。
【００５９】
図１０は、推力配分決定部１６０が取得する、前後進の動作指令値が１の場合の上下動の制限値の例を示すグラフである。同図のグラフでは、上下動の動作指令値の軸と、左右回頭の動作指令値の軸と、上下動の制限値の軸とが示されている。そして、同図のグラフでは、前後進の動作指令値が１の場合について、上下動の動作指令値および左右回頭の動作指令値に対応する上下動の制限値が示されている。
【００６０】
図１１は、推力配分決定部１６０が取得する、前後進の動作指令値が１の場合の左右回頭の制限値の例を示すグラフである。同図のグラフでは、上下動の動作指令値の軸と、左右回頭の動作指令値の軸と、左右回頭の制限値の軸とが示されている。そして、同図のグラフでは、前後進の動作指令値が１の場合について、上下動の動作指令値および左右回頭の動作指令値に対応する左右回頭の制限値が示されている。
【００６１】
図１２は、推力配分決定部１６０が取得する、前後進の動作指令値が０．７５の場合の前後進の制限値の例を示すグラフである。同図のグラフでは、上下動の動作指令値の軸と、左右回頭の動作指令値の軸と、前後進の制限値の軸とが示されている。そして、同図のグラフでは、前後進の動作指令値が０．７５の場合について、上下動の動作指令値および左右回頭の動作指令値に対応する前後進の制限値が示されている。
【００６２】
図１３は、推力配分決定部１６０が取得する、前後進の動作指令値が０．７５の場合の上下動の制限値の例を示すグラフである。同図のグラフでは、上下動の動作指令値の軸と、左右回頭の動作指令値の軸と、上下動の制限値の軸とが示されている。そして、同図のグラフでは、前後進の動作指令値が０．７５の場合について、上下動の動作指令値および左右回頭の動作指令値に対応する上下動の制限値が示されている。
【００６３】
図１４は、推力配分決定部１６０が取得する、前後進の動作指令値が０．７５の場合の左右回頭の制限値の例を示すグラフである。同図のグラフでは、上下動の動作指令値の軸と、左右回頭の動作指令値の軸と、左右回頭の制限値の軸とが示されている。そして、同図のグラフでは、前後進の動作指令値が０．７５の場合について、上下動の動作指令値および左右回頭の動作指令値に対応する左右回頭の制限値が示されている。
【００６４】
図１５は、推力配分決定部１６０が取得する、前後進の動作指令値が０．５の場合の前後進の制限値の例を示すグラフである。同図のグラフでは、上下動の動作指令値の軸と、左右回頭の動作指令値の軸と、前後進の制限値の軸とが示されている。そして、同図のグラフでは、前後進の動作指令値が０．５の場合について、上下動の動作指令値および左右回頭の動作指令値に対応する前後進の制限値が示されている。
【００６５】
図１６は、推力配分決定部１６０が取得する、前後進の動作指令値が０．５の場合の上下動の制限値の例を示すグラフである。同図のグラフでは、上下動の動作指令値の軸と、左右回頭の動作指令値の軸と、上下動の制限値の軸とが示されている。そして、同図のグラフでは、前後進の動作指令値が０．５の場合について、上下動の動作指令値および左右回頭の動作指令値に対応する上下動の制限値が示されている。
【００６６】
図１７は、推力配分決定部１６０が取得する、前後進の動作指令値が０．５の場合の左右回頭の制限値の例を示すグラフである。同図のグラフでは、上下動の動作指令値の軸と、左右回頭の動作指令値の軸と、左右回頭の制限値の軸とが示されている。そして、同図のグラフでは、前後進の動作指令値が０．５の場合について、上下動の動作指令値および左右回頭の動作指令値に対応する左右回頭の制限値が示されている。
【００６７】
図１８は、推力配分決定部１６０が取得する、前後進の動作指令値が０．２５の場合の前後進の制限値の例を示すグラフである。同図のグラフでは、上下動の動作指令値の軸と、左右回頭の動作指令値の軸と、前後進の制限値の軸とが示されている。そして、同図のグラフでは、前後進の動作指令値が０．２５の場合について、上下動の動作指令値および左右回頭の動作指令値に対応する前後進の制限値が示されている。
【００６８】
図１９は、推力配分決定部１６０が取得する、前後進の動作指令値が０．２５の場合の上下動の制限値の例を示すグラフである。同図のグラフでは、上下動の動作指令値の軸と、左右回頭の動作指令値の軸と、上下動の制限値の軸とが示されている。そして、同図のグラフでは、前後進の動作指令値が０．２５の場合について、上下動の動作指令値および左右回頭の動作指令値に対応する上下動の制限値が示されている。
【００６９】
図２０は、推力配分決定部１６０が取得する、前後進の動作指令値が０．２５の場合の左右回頭の制限値の例を示すグラフである。同図のグラフでは、上下動の動作指令値の軸と、左右回頭の動作指令値の軸と、左右回頭の制限値の軸とが示されている。そして、同図のグラフでは、前後進の動作指令値が０．２５の場合について、上下動の動作指令値および左右回頭の動作指令値に対応する左右回頭の制限値が示されている。
このように、推力配分決定部１６０は、動作指令設定部１１０が設定した前後進の動作指令値、上下動の動作指令値、及び、左右回頭の動作指令値の組み合わせ毎に、前後進の制限値、上下動の制限値、及び、左右回頭の制限値を求める。
【００７０】
関数近似部１７０は、推力配分決定部１６０が求めた制限値を近似する関数を求める。例えば、関数近似部１７０は、式（６）に示される形式で関数を求める。
【００７１】
【数６】
0006566236.tif 000007
【００７２】
ここで、Ｘｊ＝１は、前後進の動作指令値が最大値であることを示している。例えば、前後進の動作指令値Ｘｊは０≦Ｘｊ≦１の範囲で設定されており、関数近似部１７０は、Ｘｊ＝０、Ｘｊ＝０．２５、Ｘｊ＝０．５、Ｘｊ＝０．７５、Ｘｊ＝１の各々について、式（６）に示される形式の関数を求める。
また、ｆＸｊ＝１（Ｚｊ、Ｎｊ）は、１つの動作に対する制限値を示している。関数近似部１７０は、例えば前後進、上下動、左右回頭の各々、かつ、Ｘｊ＝０、Ｘｊ＝０．２５、Ｘｊ＝０．５、Ｘｊ＝０．７５、Ｘｊ＝１の各々について、式（６）に示される形式の関数を求める。
【００７３】
また、Ｚｊは、上下動の動作指令値を示す。また、Ｎｊは、左右回頭の動作指令値を示す。
なお、関数近似部１７０は、式（７）に示されるように横進の動作指令値Ｙｊを含む式を、式（６）の形式の関数と共に前後進、上下動、左右回頭の各々、かつ、Ｘｊ＝０、Ｘｊ＝０．２５、Ｘｊ＝０．５、Ｘｊ＝０．７５、Ｘｊ＝１の各々について求める。
【００７４】
【数７】
0006566236.tif 000008
【００７５】
このように、左右回頭の動作指令値を含む式と、横進の動作指令値を含む式とを別々の式にすることで各式の項数が少なくなる。これにより、水中航走体２００は、プログラマブル・ロジック・コントローラ（Programmable Logic Controller；ＰＬＣ）など、演算能力が高くない装置を用いて関数値を算出することができる。
式（６）におけるａ０〜ａ５、及び、式（７）におけるｂ０〜ｂ５の各々は、いずれも定数の係数を示す。関数近似部１７０は、これらの定数の値を決定することで、推力配分決定部１６０が求めた解を近似する関数を求める。
【００７６】
このように、関数近似部１７０が近似関数を求めることで、水中航走体２００の制限値演算部２５４が、動作指令値と制限値との関係を記憶するための記憶容量を削減することができる。また、関数近似部１７０が近似関数を求めることで、推力配分決定部１６０が求める解が局所解に陥った場合に、最適解に近い値に変換することができる。
【００７７】
結果出力部１８０は、関数近似部１７０が求めた関数を出力する。例えば、結果出力部１８０は、ａ０〜ａ５及びｂ０〜ｂ５の各係数の値を水中航走体２００の制限値演算部２５４へ送信する。あるいは、結果出力部１８０が、ａ０〜ａ５及びｂ０〜ｂ５の値を画面に表示し、手作業でこれらの値を制限値演算部２５４に入力するなど、結果出力部１８０が、関数近似部１７０が求めた関数を間接的に制限値演算部２５４へ出力するようにしてもよい。
【００７８】
次に、図２１を参照して演算装置１００の動作について説明する。
図２１は、演算装置１００が動作指令値に対する制限値を求める処理手順を示すフローチャートである。同図の処理では演算装置１００は、前後進の動作指令値の設定値毎に処理を行うループＬ１１を開始する（ステップＳ１０１）。例えば、動作指令設定部１１０が、前後進の動作指令値として０、０．２５、０．５、０．７５及び１をそれぞれ設定し、演算装置１００は、設定値毎にループＬ１１の処理を行う。
【００７９】
次に、演算装置１００は、上下動の動作指令値の設定値毎に処理を行うループＬ１２を開始する（ステップＳ１０２）。例えば、動作指令設定部１１０が、上下動の動作指令値として０、０．２、０．４、０．６、０．８及び１をそれぞれ設定し、演算装置１００は、設定値毎にループＬ１２の処理を行う。
【００８０】
次に、演算装置１００は、左右回頭の動作指令値の設定値毎に処理を行うループＬ１３を開始する（ステップＳ１０３）。例えば、動作指令設定部１１０が、左右回頭の動作指令値として０、０．２、０．４、０．６、０．８及び１をそれぞれ設定し、演算装置１００は、設定値毎にループＬ１３の処理を行う。
【００８１】
次に、推力配分決定部１６０が、前後進の制限値、上下動の制限値及び左右回頭の制限値の、最適化演算における初期値を設定する（ステップＳ１１１）。
そして、制限条件速度演算部１２０が、制限条件速度ベクトルを算出する（ステップＳ１１２）。具体的には制限条件速度演算部１２０は、動作指令設定部１１０が設定した前後進の指令値に推力配分決定部１６０が設定した前後進の制限値を上限として制限して制限後の前後進の指令値を得る。同様に、制限条件速度演算部１２０は、動作指令設定部１１０が設定した上下動の指令値に推力配分決定部１６０が設定した上下動の制限値を上限として制限して制限後の上下動の指令値を得る。さらに、制限条件速度演算部１２０は、動作指令設定部１１０が設定した左右回頭の指令値に推力配分決定部１６０が設定した左右回頭の制限値を上限として制限して制限後の左右回頭の指令値を得る。そして、制限条件速度演算部１２０は、得られた制限後の指令値を水中航走体２００のモデルに代入して制限条件速度ベクトルを算出する。
【００８２】
また、理想速度演算部１３０は、動作指令設定部１１０が設定した前後進の動作指令値、上下動の動作指令値及び左右回頭の動作指令値を水中航走体２００のモデルに代入して理想速度ベクトルを算出する（ステップＳ１１３）。
次に、評価関数演算部１４０は、制限条件速度演算部１２０が求めた制限条件速度ベクトルの評価値を算出する（ステップＳ１１４）。具体的には、評価関数演算部１４０は、制限条件速度演算部１２０が求めた制限条件速度ベクトルと理想速度演算部１３０が求めた理想動作ベクトルとを式（１）〜式（５）に代入して、評価値ＥＶＡＬを算出する。この評価値ＥＶＡＬは、推力配分決定部１６０が解く最適化問題における目的関数値の例に該当する。
【００８３】
そして、推力配分決定部１６０は、最適解が得られたか否かを判定する（ステップＳ１１５）。具体的には、推力配分決定部１６０は、評価関数演算部１４０が算出した評価値ＥＶＡＬが、最適化アルゴリズムにて定められている終了条件を満たすか否かを判定する。
最適解が得られていないと判定した場合（ステップＳ１１５：ＮＯ）、推力配分決定部１６０が前後進の制限値、上下動の制限値、及び、左右回頭の制限値を設定し直す（ステップＳ１３１）。ここでは、油圧ポンプの供給可能な油量となるように設定した制約条件を満足するように、各制限値が設定される。
ステップＳ１３１の後、ステップＳ１１２へ遷移する。
【００８４】
一方、ステップＳ１１５で最適解が得られたと判定した場合（ステップＳ１１５：ＹＥＳ）、関数近似部１７０が、得られた最適解を記憶する（ステップＳ１２１）。具体的には、関数近似部１７０は、最適解として得られた前後進の制限値、上下動の制限値及び左右回頭の制限値を、設定されている前後進の動作指令値、上下動の動作指令値及び左右回頭の動作指令値と対応付けて記憶する。
【００８５】
次に、動作指令設定部１１０はループＬ１３の終端処理を行う（ステップＳ１２２）。具体的には、動作指令設定部１１０は、ループＬ１３における左右回頭の動作指令値の設定値（例えば、０、０．２、０．４、０．６、０．８及び１）の全てについてループＬ１３の処理を行ったか否かを判定する。未処理の設定値があると判定した場合、ステップＳ１０３に戻り、未処理の設定値に対する処理を引き続き行う。一方、全ての設定値について処理を行ったと判定した場合、ループＬ１３を終了する。
【００８６】
ステップＳ１２２でループＬ１３を終了した場合、動作指令設定部１１０はループＬ１２の終端処理を行う（ステップＳ１２３）。具体的には、動作指令設定部１１０は、ループＬ１２における上下動の動作指令値の設定値（例えば、０、０．２、０．４、０．６、０．８及び１）の全てについてループＬ１２の処理を行ったか否かを判定する。未処理の設定値があると判定した場合、ステップＳ１０２に戻り、未処理の設定値に対する処理を引き続き行う。一方、全ての設定値について処理を行ったと判定した場合、ループＬ１２を終了する。
【００８７】
ステップＳ１２３でループＬ１２を終了した場合、動作指令設定部１１０はループＬ１１の終端処理を行う（ステップＳ１２４）。具体的には、動作指令設定部１１０は、ループＬ１１における前後進の動作指令値の設定値（例えば、０、０．２５、０．５、０．７５及び１）の全てについてループＬ１１の処理を行ったか否かを判定する。未処理の設定値があると判定した場合、ステップＳ１０１に戻り、未処理の設定値に対する処理を引き続き行う。一方、全ての設定値について処理を行ったと判定した場合、ループＬ１１を終了する。
【００８８】
ステップＳ１２４でループＬ１１を終了した場合、関数近似部１７０が、推力配分決定部１６０が求めた制限値を近似する関数を求める（ステップＳ１３１）。
そして、結果出力部１８０が、ステップＳ１３１で得られた近似関数を出力する（ステップＳ１３２）。
ステップＳ１３２の後、図２１の処理を終了する。
【００８９】
次に、図２２〜図２７を参照して、水中航走体システム１による油圧配分方法を用いた水中航走体２００の動作のシミュレーション結果について説明する。
図２２は、水中航走体システム１とは異なる方法による油圧配分の例を示すグラフである。同図に示すグラフの縦軸は推力を表し、横軸には各スラスタが示されている。
図２２に示す方法では、主推進スラスタ２１０、水平スラスタ２２０、垂直スラスタ２３０のいずれか１つに優先的に油圧を供給し、他のスラスタに対しては、一律に油圧制限する。図２２の例では、垂直スラスタ２３０に対して優先的に油圧が供給されており、垂直スラスタ２３０は、動作指令値にて指示されたとおりの推力を出力することができる。一方、主推進スラスタ２１０および水平スラスタ２２０に対する動作指令値は一律５０パーセント（％）制限される。
【００９０】
図２３は、水中航走体２００の移動経路のシミュレーション結果の例を示すグラフである。同図では、距離、方位角、深度の各軸が示されている。
図２３では、最大前進指令と、方位変更指令と、深度変換指令が同時に入力された場合の、水中航走体２００の移動経路のシミュレーション結果の例を示している。距離の軸では、水中航走体２００の移動距離を示す。方位角の軸では、水中航走体２００の向きを示す。深度の軸では、水中航走体２００の深度を示す。
【００９１】
線Ｌ１１１は、水中航走体システム１による油圧配分方法を用いた場合の、水中航走体２００の移動経路の例を示す。一方、線Ｌ１１２は、図２２に示す油圧分配方法を用いた場合の、水中航走体２００の移動経路の例を示す。
水中航走体システム１による油圧配分方法を用いた場合、図２２に示す油圧分配方法を用いた場合のいずれも、水中航走体２００は、点Ｐ１１を始点として移動している。また、点Ｐ１２ではいずれの方法でも、指令された動作を達成している。
【００９２】
図２２に示す油圧分配方法では、垂直スラスタ２３０に優先的に油圧を供給する。このため、線Ｌ１１２に示されるように、水中航走体２００は、上下に速やかに移動している。一方、前後および左右の動作については油圧が制限されるため、上下動よりも遅い移動となっている。この結果、線Ｌ１１２に示される移動経路は、点Ｐ１１と点Ｐ１２とを直線で結んだ経路からの乖離が大きい。この点で水中航走体２００が無駄な動作をしている。
これに対して、水中航走体システム１による油圧配分方法を用いた場合の線Ｌ１１１に示される移動経路のほうが、点Ｐ１１と点Ｐ１２とを直線で結んだ経路に近い。この点で水中航走体システム１による油圧配分方法を用いたほうが、水中航走体２００が効率的な動作をしている。
【００９３】
図２４は、水中航走体２００の移動距離の変化の例を示すグラフである。同図の横軸は時間を示し、縦軸は距離を示す。
同図は、図２３に示すシミュレーションにて水中航走体２００が移動を開始してからの経過時間と移動距離との関係を示している。線Ｌ２１１は、水中航走体システム１による油圧配分方法を用いた場合の、水中航走体２００の移動距離の例を示す。一方、線Ｌ２１２は、図２２に示す油圧分配方法を用いた場合の、水中航走体２００の移動距離の例を示す。
水中航走体システム１による油圧分配方法を用いた場合のほうが、図２２に示す油圧分配方法を用いた場合よりも、線Ｌ２１３で示される所定の距離に到達する時間が短縮できていることがわかる。
【００９４】
図２５は、水中航走体２００の深度の変化の例を示すグラフである。同図の横軸は時間を示し、縦軸は深度を示す。
同図は、図２３に示すシミュレーションにて水中航走体２００が移動を開始してからの経過時間と深度との関係を示している。線Ｌ２２１は、水中航走体システム１による油圧配分方法を用いた場合の、水中航走体２００の深度の例を示す。一方、線Ｌ２２２は、図２２に示す油圧分配方法を用いた場合の、水中航走体２００の深度の例を示す。線Ｌ２２１、Ｌ２２２のいずれも、目標深度に達して目標深度を維持している様子を示している。
水中航走体システム１による油圧分配方法を用いた場合のほうが、図２２に示す油圧分配方法を用いた場合よりも、所定の深度に到達するのに時間がかかっていることがわかる。
【００９５】
図２６は、水中航走体２００の向きの変化の例を示すグラフである。同図の横軸は時間を示し、縦軸は方位角を示す。
同図は、図２３に示すシミュレーションにて水中航走体２００が移動を開始してからの経過時間と向き（方位角）との関係を示している。線Ｌ２３１は、水中航走体システム１による油圧配分方法を用いた場合の、水中航走体２００の向きの例を示す。一方、線Ｌ２３２は、図２２に示す油圧分配方法を用いた場合の、水中航走体２００の向きの例を示す。線Ｌ２３１、Ｌ２３２のいずれも、目標方位角に達して目標方位角を維持している様子を示している。
水中航走体システム１による油圧分配方法を用いた場合のほうが、図２２に示す油圧分配方法を用いた場合よりも、所定の方位に到達する時間が短縮できていることがわかる。
【００９６】
ここで、図２４〜図２７の時間軸の範囲は、全て同一である。図２４〜図２６を参照して説明したシミュレーション結果から、水中航走体システム１による油圧分配方式を用いた場合、図２２に示す油圧分配方式を用いた場合に比べて、前進距離の到達時間の性能が大幅に改善されることがわかる。
【００９７】
図２７は、油圧ポンプ２４０が供給する油量の例を示すグラフである。同図の横軸は時間を示し、縦軸は油量を示す。
同図は、図２３に示すシミュレーションにて水中航走体２００が移動を開始してからの経過時間と必要な油量の推定値との関係を示している。線Ｌ２４１は、水中航走体システム１による油圧配分方法を用いた場合の油量の例を示す。線Ｌ２４１にて示される油量は、ほぼ制約の上限の油量になっている。一方、線Ｌ２４２は、図２２に示す油圧分配方法を用いた場合の油量の例を示す。
線Ｌ２４１とＬ２４２とを比較すると、水中航走体システム１による油圧分配方法を用いた場合（線Ｌ２４１）の方が、図２２に示す油圧分配方法を用いた場合（線Ｌ２４２）に比べて、常に所望の制約油量に保持できている。これは、前後、上下、回頭の推力指令が時々刻々変化しても制約油量を保持する条件下で推力配分を変化させているためである。このことから、水中航走体システム１による油圧分配方法を用いた場合の方が、図２２に示す油圧分配方法を用いた場合よりも、常に油圧ポンプの能力を最大限近く発揮でき、水中航走体２００の速度ベクトルを理想に近付ける推力配分を実現することで、水中航走体２００を効率よく移動させていると考えられる。
【００９８】
以上のように、制限条件速度演算部１２０は、水中航走体２００における互いに異なる方向に推力を発生させる複数のスラスタに対する動作指令に基づいて、複数のスラスタが発生させる推力の総和が制限された制限条件下における水中航走体２００の速度ベクトルである制限条件速度ベクトルを演算する。また、理想速度演算部１３０は、動作指令に基づいて、複数の推力発生部の推力を制限しない制限無し条件下における水中航走体２００の速度ベクトルである理想速度ベクトルを演算する。そして、推力配分決定部１６０は、制限条件速度ベクトルと理想速度ベクトルとの相違の評価値が小さくなるように、制限条件下における複数の推力発生部の推力の配分を決定する。
これにより、複数のスラスタが発生させる推力の総和が制限された制限条件下における水中航走体２００の移動経路を、推力の制限を受けていない場合の移動経路に近付けることができる。制限条件下における水中航走体２００の移動経路を、制限を受けていない場合の移動経路に近付けることで、水中航走体２００を動作指令に従って効率よく移動させることができ、水中航走体２００が目的地に到達するまでの移動時間を短縮することができる。
【００９９】
また、推力配分決定部１６０は、制限条件速度ベクトルの方向と理想速度ベクトルの方向との角度の積分値を目的関数とする最適化問題を解くことで、制限条件下における複数のスラスタの推力の配分を決定する。
これにより、複数のスラスタが発生させる推力の総和が制限された制限条件下における水中航走体２００の向きを、推力の制限を受けていない場合の向きに近付けることができる。制限条件下における水中航走体２００の向きを、制限を受けていない場合の向きに近付けることで、水中航走体２００動作指令に従って効率よく移動させることができ、水中航走体２００が目的地に到達するまでの移動時間を短縮することができる。
【０１００】
なお、本実施形態における移動体は水中航走体に限らない。例えば、本実施形態における移動体は、空中を移動するものであってもよいし、宇宙空間を移動するものであってもよい。
また、本実施形態における移動体が推力を発生させる方法はプロペラ式に限らない。例えば、本実施形態における移動体がジェット噴射によって推力を発生させるようにしてもよい。
また、本実施形態における移動体が推力を発生させる動力源は油圧に限らない。例えば、本実施形態における移動体が電動モータにてプロペラを回転させるようにしてもよい。あるいは、本実施形態における移動体が燃料を燃焼させてジェット噴射を行うようにしてもよい。
【０１０１】
なお、評価関数演算部１４０が用いる評価関数は、式（１）〜式（５）に示すものに限らない。例えば評価関数演算部１４０が、式（８）のように制限条件速度ベクトルと理想速度ベクトルとの差の大きさを積分する評価関数を用いるようにしてもよい。
【０１０２】
【数８】
0006566236.tif 000009
【０１０３】
ここで、ｅｕ（ｔ）は、理想速度ベクトルにおける前後進の成分ｕｉ（ｔ）と、制限条件速度ベクトルにおける前後進の成分ｕ（ｔ）との差を示し、式（９）のように表される。
【０１０４】
【数９】
0006566236.tif 000010
【０１０５】
また、ｅｖ（ｔ）は、理想速度ベクトルにおける横進の成分ｖｉ（ｔ）と、制限条件速度ベクトルにおける横進の成分ｖ（ｔ）との差を示し、式（１０）のように表される。
なお、動作指令設定部１１０が、前後進、上下動及び左右回頭の動作指令値の組み合わせを設定する場合、ｖｉ（ｔ）の値、ｖ（ｔ）の値のいずれもゼロとする。
【０１０６】
【数１０】
0006566236.tif 000011
【０１０７】
また、ｅＷ（ｔ）は、理想速度ベクトルにおける上下動の成分ｗｉ（ｔ）と、制限条件速度ベクトルにおける上下動の成分ｗ（ｔ）との差を示し、式（１１）のように表される。
【０１０８】
【数１１】
0006566236.tif 000012
【０１０９】
また、ｅｒ（ｔ）は、理想速度ベクトルにおける左右回頭の成分ｒｉ（ｔ）と、制限条件速度ベクトルにおける左右回頭の成分ｒ（ｔ）との差を示し、式（１２）のように表される。
なお、動作指令設定部１１０が、前後進、横進及び上下動の動作指令値の組み合わせを設定する場合、ｒｉ（ｔ）の値、ｒ（ｔ）の値のいずれもゼロとする。
【０１１０】
【数１２】
0006566236.tif 000013
【０１１１】
以上のように、推力配分決定部１６０は、制限条件速度ベクトルと理想速度ベクトルとの差の大きさの積分値を目的関数とする最適化問題を解くことで、制限条件下における複数のスラスタの推力の配分を決定する。
これにより、複数のスラスタが発生させる推力の総和が制限された制限条件下における水中航走体２００の速度ベクトルの向き及び大きさを、推力の制限を受けていない場合の速度ベクトルの向き及び大きさに近付けることができる。制限条件下における水中航走体２００の速度ベクトルの向き及び大きさを、推力の制限を受けていない場合の速度ベクトルの向き及び大きさに近付けることで、水中航走体２００動作指令に従って効率よく移動させることができ、水中航走体２００が目的地に到達するまでの移動時間を短縮することができる。
【０１１２】
なお、演算装置１００の全部または一部の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより各部の処理を行ってもよい。なお、ここでいう「コンピュータシステム」とは、ＯＳや周辺機器等のハードウェアを含むものとする。
また、「コンピュータシステム」は、ＷＷＷシステムを利用している場合であれば、ホームページ提供環境（あるいは表示環境）も含むものとする。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含むものとする。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであってもよい。
【０１１３】
以上、本発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計変更等も含まれる。
【符号の説明】
【０１１４】
１  水中航走体システム
１００  演算装置
１１０  動作指令設定部
１２０  制限条件速度演算部
１３０  理想速度演算部
１４０  評価関数演算部
１５０  油量出力部
１６０  推力配分決定部
１７０  関数近似部
１８０  結果出力部
２００  水中航走体
２１１  第１主推進スラスタ
２１２  第２主推進スラスタ
２１３  第３主推進スラスタ
２１４  第４主推進スラスタ
２２１  第１水平スラスタ
２２２  第２水平スラスタ
２３１  第１垂直スラスタ
２３２  第２垂直スラスタ
２４０  油圧ポンプ
２５０  推力配分制御部
２５１  指令取得部
２５２  水平成分自動手動切替部
２５３  垂直成分自動手動切替部
２５４  制限値演算部
２５５  主推進成分推力制限部
２５６  水平成分推力制限部
２５７  垂直成分推力制限部
２５８  サーボ指令演算部
【図１】
0006566236.tif 000014
【図２】
0006566236.tif 000015
【図３】
0006566236.tif 000016
【図４】
0006566236.tif 000017
【図５】
0006566236.tif 000018
【図６】
0006566236.tif 000019
【図７】
0006566236.tif 000020
【図８】
0006566236.tif 000021
【図９】
0006566236.tif 000022
【図１０】
0006566236.tif 000023
【図１１】
0006566236.tif 000024
【図１２】
0006566236.tif 000025
【図１３】
0006566236.tif 000026
【図１４】
0006566236.tif 000027
【図１５】
0006566236.tif 000028
【図１６】
0006566236.tif 000029
【図１７】
0006566236.tif 000030
【図１８】
0006566236.tif 000031
【図１９】
0006566236.tif 000032
【図２０】
0006566236.tif 000033
【図２１】
0006566236.tif 000034
【図２２】
0006566236.tif 000035
【図２３】
0006566236.tif 000036
【図２４】
0006566236.tif 000037
【図２５】
0006566236.tif 000038
【図２６】
0006566236.tif 000039
【図２７】
0006566236.tif 000040