(57)【要約】【課題】構造体の位置及び方位を一定に保持するように構造体の位置、方位の制御を行う際、推力方向を制限した条件下、オンラインで推力の分配を行う。【解決手段】構造体の重心に作用すべき制御力のベクトルを、複数のアクチュエータに付与すべき推力を２方向に分解した分力のベクトルと拡散型推力分配行列とによって表し、推力の分力に関する第１の解を、複数のアクチュエータの推力の二乗和が最小にする第２の解と、拡散型推力分配行列の特異値分解をしたときに求められる直交行列を所望の調整ベクトルに作用して得られる処理ベクトルとを加算して線形和で表す。調整ベクトルは、アクチュエータに与えた推力方向の稼動範囲の制限に基づいて求める。構造体の位置、方位の制御を行う際、先に求めた調整ベクトルに直交行列を作用させた処理ベクトルを第２の解に加算して第１の解を求め、この第１の解の成分をアクチュエータに与える推力の成分とする。【選択図】図３
2008026962.tif 000002
【特許請求の範囲】
【請求項１】
空間内又は空間上を浮かぶ構造体が外乱を受けても、構造体の位置及び方位を一定に保持する構造体の位置・方位制御方法であって、
前記構造体には、所望の推力を、前記構造体の基準方向に対する所望の推力方向に制御して出力する複数のアクチュエータが設けられ、さらに、この複数のアクチュエータの推力方向の稼動範囲に制限が与えられており、
前記推力方向の稼動範囲に制限が与えられた複数のアクチュエータそれぞれに付与すべき推力を互いに直交する二方向に分解したときの分力のベクトルを未知数とし、この分力のベクトルに、前記複数のアクチュエータの設置位置の情報によって規定される行列を作用させた結果が、前記構造体の位置及び方位を保持するために前記構造体の重心に作用すべき制御力のベクトルに等しくなる推力の分配方程式を定め、かつ、推力方向の稼動範囲が制限されたアクチュエータの前記推力の分力のベクトルを未知数とする前記分配方程式の第１の解を、前記複数のアクチュエータの推力方向の稼動範囲に制限が無く、かつ、前記推力の二乗和が最小になるときの前記分配方程式の第２の解に、前記行列の特異値分解をしたときに求められる直交行列を所望の調整ベクトルに作用させて得られる処理ベクトルを加算した線形和で表したとき、
前記調整ベクトルを、前記複数のアクチュエータに与えられた前記推力方向の各稼動範囲の制限に基づいて求めるステップと、
前記構造体の位置・方位の制御を行う際、前記制御力の入力を受けて、この制御力のベクトルに基づいて前記第２の解を求めるとともに、前記調整ベクトルに前記直交行列を作用させて得られる処理ベクトルを前記第２の解に加算して前記第１の解を求め、この第１の解の成分を前記複数のアクチュエータに与えるべき推力の成分とするステップと、を有することを特徴とする構造体の位置・方位制御方法。
【請求項２】
前記調整ベクトルを求める際、前記推力方向の稼動範囲の制限を、前記調整ベクトルの成分を用いた不等式で表し、この不等式を制約条件として、この制約条件下、前記調整ベクトルの成分の二乗和が最小となるように前記調整ベクトルの成分を求める請求項１に記載の構造体の位置・方位制御方法。
【請求項３】
前記制御力には上限値及び下限値が設けられ、
前記制約条件において表される前記制御力を、この制御力の上限値及び下限値で置き換えて複数の不等式を得、この複数の不等式を用いて前記調整ベクトルの成分を求める請求項２に記載の構造体の位置・方位制御方法。
【請求項４】
前記調整ベクトルは、前記構造体の重心に作用すべき制御力の入力を受けて前記構造体の位置・方位の制御を行う前に予め求められ、前記第１の解は、前記構造体の位置・方位の制御を行う際、前記構造体の重心に作用すべき制御力の入力を受けて、この制御力と前記調整ベクトル又は前記調整ベクトルに前記直交行列を作用させて得られる処理ベクトルとを用いて算出される請求項１〜３のいずれか１項に記載の構造体の位置・方位制御方法。
【請求項５】
前記構造体は、前記基準方向を有する海に浮かぶ浮体であり、前記制御力は平面上の２方向の分力と前記浮体の前記平面に直交する重心軸回りのモーメントを含む請求項１〜４のいずれか１項に記載の構造体の位置・方位制御方法。
【請求項６】
空間内又は空間上を浮かぶ構造体が外乱を受けても、構造体の位置及び方位を一定に保持する構造体の位置・方位制御システムであって、
前記構造体の複数の位置に設けられ、所望の推力を、前記構造体の基準方向に対する所望の推力方向に制御して出力するアクチュエータであって、この推力方向の稼動範囲に制限が与えられた複数のアクチュエータと、
前記複数のアクチュエータの推力及び推力方向を制御する制御装置と、を有し、
前記制御装置は、
前記推力方向の稼動範囲に制限が与えられた複数のアクチュエータそれぞれに付与すべき推力を互いに直交する二方向に分解したときの分力のベクトルを未知数とし、この分力のベクトルに、前記複数のアクチュエータの設置位置の情報によって規定される行列を作用させた結果が、前記構造体の位置及び方位を保持するために前記構造体の重心に作用すべき制御力のベクトルに等しくなる推力の分配方程式を定め、かつ、推力方向の稼動範囲が制限されたアクチュエータの前記推力の分力のベクトルを未知数とする前記分配方程式の第１の解を、前記複数のアクチュエータの推力方向の稼動範囲に制限が無く、かつ、前記推力の二乗和が最小になるときの前記分配方程式の第２の解に、前記行列の特異値分解をしたときに求められる直交行列を所望の調整ベクトルに作用させて得られる処理ベクトルを加算した線形和で表したとき、前記制限の与えられた推力方向の各稼動範囲に基づいて前記調整ベクトルを求め、この調整ベクトル又はこの調整ベクトルに前記直交行列を作用させて得られる処理ベクトルを記憶保持する処理ユニットと、
前記構造体の位置・方位の制御を行う際、前記制御力の入力を受けて、この制御力のベクトルに基づいて前記第２の解を求めるとともに、前記調整ベクトルに前記直交行列を作用させて得られる前記処理ベクトルを得、又は記憶保持された前記処理ベクトルを読み出して得、得られた処理ベクトルを前記第２の解に加算して第１の解を求め、この第１の解の成分を前記複数のアクチュエータに与える推力の分力とし、この推力の分力から前記アクチュエータを制御する推力及び推力方向を求めてアクチュエータを制御する制御ユニットと、を有することを特徴とする構造体の位置・方位制御システム。
【請求項７】
前記処理ユニットは、前記推力方向の稼動範囲の制限を、前記調整ベクトルの成分を用いた不等式で表し、この不等式を制約条件として、この制約条件下、前記調整ベクトルの成分の二乗和が最小となるように前記調整ベクトルの成分を求める請求項６に記載の構造体の位置・方位制御システム。
【請求項８】
前記制御力には上限値及び下限値が設けられ、
前記制約条件において表される前記制御力を、この制御力の上限値及び下限値で置き換えて複数の不等式を得、この複数の不等式を用いて前記調整ベクトルの成分を求める請求項７に記載の構造体の位置・方位制御システム。
【請求項９】
前記処理ユニットは、前記構造体の重心に作用すべき制御力の入力を受けて前記構造体の位置・方位の制御を行う前に、予め調整ベクトルを算出し、
前記制御ユニットは、前記構造体の位置・方位の制御を行う際、前記構造体の重心に作用すべき制御力の入力を受けて、この制御力と前記調整ベクトル又は前記調整ベクトルに前記直交行列を作用させて得られる処理ベクトルとを用いて前記第１の解を算出する請求項６〜８のいずれか１項に記載の構造体の位置・方位制御システム。
【請求項１０】
前記構造体は、前記基準方向を有する、海に浮かぶ浮体であり、前記制御力は平面上の２方向の分力と前記浮体の前記平面に直交する重心軸回りのモーメントを含む請求項６〜９のいずれか１項に記載の構造体の位置・方位制御システム。
【請求項１１】
空間内又は空間上を浮かぶ構造体が外乱を受けても、構造体の位置及び方位を一定に保持するように構造体の位置・方位の制御を実行させるコンピュータが実行可能なプログラムであって、
前記構造体には、所望の推力を、前記構造体の基準方向に対する所望の推力方向に制御して出力する複数のアクチュエータが設けられ、さらに、この複数のアクチュエータの推力方向の稼動範囲に制限が与えられており、
前記推力方向の稼動範囲に制限が与えられた複数のアクチュエータそれぞれに付与すべき推力を互いに直交する二方向に分解したときの分力のベクトルを未知数とし、この分力のベクトルに、前記複数のアクチュエータの設置位置の情報によって規定される行列を作用させた結果が、前記構造体の位置及び方位を保持するために前記構造体の重心に作用すべき制御力のベクトルに等しくなる推力の分配方程式を定め、かつ、推力方向の稼動範囲が制限されたアクチュエータの前記推力の分力のベクトルを未知数とする前記分配方程式の第１の解を、前記複数のアクチュエータの推力方向の稼動範囲に制限が無く、かつ、前記推力の二乗和が最小になるときの前記分配方程式の第２の解に、前記行列の特異値分解をしたときに求められる直交行列を所望の調整ベクトルに作用させて得られる処理ベクトルを加算した線形和で表したとき、
前記複数のアクチュエータに与えられた推力方向の各稼動範囲に基づいて、コンピュータの演算手段に前記調整ベクトルを算出させ、この調整ベクトル又はこの調整ベクトルに前記直交行列を施した前記処理ベクトルをコンピュータの記憶手段に記憶させる手順と、
前記制御力の入力を受けて、この制御力のベクトルに基づいて前記第１の解をコンピュータの前記演算手段に算出させるとともに、前記記憶手段に記憶された前記調整ベクトルを読み出し、この調整ベクトルに前記直交行列を作用させて前記処理ベクトルを得、又は前記記憶手段から読み出した前記処理ベクトルを得、この処理ベクトルを、第２の解に加算した第１の解を、コンピュータの前記演算手段に算出させ、この第１の解の成分から前記複数のアクチュエータに与える推力と推力方向を算出させてこの推力と推力方向を前記複数のアクチュエータに与える手順と、を有することを特徴とするプログラム。
【請求項１２】
前記調整ベクトルの算出の際、前記推力方向の稼動範囲の制限を、前記調整ベクトルの成分を用いた不等式で表し、この不等式を制約条件としてコンピュータの前記演算手段に作成させ、この制約条件下、前記調整ベクトルの成分の二乗和が最小となるように前記調整ベクトルの成分を、コンピュータの前記演算手段に算出させる請求項１１に記載のプログラム。
【請求項１３】
前記制御力には上限値及び下限値が設けられ、
前記制約条件において表される前記制御力を、この制御力の上限値及び下限値で置き換えて複数の不等式を得、この複数の不等式を用いて前記調整ベクトルの成分をコンピュータの前記演算手段に算出させる請求項１２に記載のプログラム。
【請求項１４】
前記調整ベクトルの算出は、前記構造体の重心に作用すべき制御力の入力を受けて前記構造体の位置・方位の制御を行う前に行われ、算出した前記調整ベクトル又は前記調整ベクトルに演算処理を施した処理ベクトルを前記記憶手段に記憶保持させ、
前記構造体の位置・方位の制御を行う際、前記構造体の重心に作用すべき制御力の入力を受けて、この制御力と、記憶保持した前記調整ベクトル又は前記調整ベクトルに演算処理を施して得られる前記処理ベクトルとを用いて、前記第１の解を前記演算手段に算出させる請求項１１〜１３のいずれか１項に記載のプログラム。
【請求項１５】
前記構造体は、前記基準方向を有する、海に浮かぶ浮体であり、前記制御力は平面上の２方向の分力と前記浮体の前記平面に直交する重心軸回りのモーメントを含む請求項１１〜１４のいずれか１項に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、海中や洋上等を浮かぶ構造体、例えば停止した船舶等が外乱を受けても、構造体の位置及び方位を一定に保持する構造体の位置・方位制御方法、構造体の位置・方位制御システム及びこの制御方法をコンピュータに実行させるプログラムに関する。
【背景技術】
【０００２】
洋上を航行する船舶等が停止し、波や潮流や風等の外乱を受けても船舶の位置及び方位を一定に保持することが望まれる場合がある。又、探査の目的地まで自走により航行して目的地の海底資源の探索を行う探査船の場合、目的地で停止した探査船の位置及びそのときの方位を、波や潮流や風等の外乱に影響されず一定に保持することが必要である。
このような船舶には、船舶の位置及び方位を一定に保持するための制御機能が設けられている。
【０００３】
位置及び方位の保持のための制御では、船舶に取り付けられた測位センサから得られる船位情報（位置情報）と、船舶の重心回りに取り付けられたジャイロコンパスから得られる方位情報とに基づいて、船舶の位置・方位制御にとって外乱となる潮流、風及び波等による影響を受けても、船舶の位置及び方位が、設定された目標の位置及び方位に一定に保持されるように、船舶に設けられた複数の推力発生器（アクチュエータ）を統合制御する。
その際、複数の推力発生器の統合制御は、船舶の現在の位置情報及び方位情報と、船舶の環境条件である潮流、風及び波等の情報とから、船舶の重心に作用すべき制御力を算出し、これらの制御力を複数の推力発生器それぞれに分配することによって行われる。制御力は、サージ方向の力（船舶の進行方向の力）、スウェイ方向の力（船舶の進行方向に直交する方向の力）及び船舶の重心回りのモーメントを含む。すなわち、船舶の重心位置にこれらの制御力が作用するように、各推力発生器に与える推力及び推力方向を計算によって算出して制御する。
【０００４】
下記特許文献１には、船舶に作用すべき全推力と全モーメントから、推力発生器への推力の配分を推力配分演算によって求める推力発生器の制御方法が開示されている。具体的には、推力配分演算では、推力配列ベクトルの成分の二乗和を求める際、各成分の二乗値に重み付け係数を掛けて合計した重み付け二乗和を評価関数とし、求められる各推力が推力発生器の定格推力を超えないように重み付け係数を調整しつつ、この条件の中で評価関数が最小となるように、推力配列ベクトルを算出する。
しかし、この推力配分演算では、求める推力が推力発生器の定格推力を超えないように、重み付け係数の調整を繰り返し行うので、推力配列ベクトルの算出には時間がかかる。又、定格推力を超えないように行う重み付け係数の調整の繰り返し回数も予め知ることはできない。このため、迅速な推力分配による制御ができないといった問題がある。さらに、推力分配演算では、推力発生器の推力方向の稼動範囲に制限を与えないため、推力方向に遮蔽物がある場合や、２つの推力発生器の推力方向がそれぞれ他方の推力発生器の方向に向き合い推力が互いに干渉する場合も有る。この場合、推力が遮蔽物に反射して自らの推力に干渉し、又推力のお互いの干渉により、所望の制御ができないといった問題も生じる。
【０００５】
下記特許文献２には、トータル推力及びトータルモーメントを分配する際、推力方向である首振りスラスタ角の変化を最小にする制御推力分配装置が開示されている。この装置では、スラスタ角の変化量の二乗和と、推力の釣合い条件式に関するペナルティ関数と、モーメントの釣合い条件式に関するペナルティ関数と、を加算した評価関数を用いて、この評価関数が最小となるように、ペナルティ関数に用いるパラメータの値を調整しながら、評価関数が最小となる推力の最適解を求める。すなわち、パラメータの値を調整しながら繰り返し計算を行って推力の最適解を求める。このため、特許文献１と同様に、推力配列ベクトルの算出には時間がかかり、又、最適解を見出す時間も一定しないため、迅速な推力分配による制御ができないといった問題がある。
【０００６】
【特許文献１】特開２００１−２１９８９９号公報
【特許文献２】特開平９−２３９３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
そこで、本発明は、上記問題点を解決するために、空間内または空間上を浮かぶ構造体が外乱を受けても、構造体の位置及び方位を一定に保持する構造体の位置、方位制御を行う際、構造体の重心に作用すべき制御力が供給されると同時に、オンラインで推力及び推力方向の分配ができ、しかも推力間に干渉がないように推力方向に制限を加えた条件下で推力及び推力方向の分配の制御を行う構造体の位置・方位制御方法及びこの方法をコンピュータで実行させるプログラム、さらにこの方法を実行する構造体の位置・方位制御システムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記目的を達成するために、本発明は、空間内又は空間上を浮かぶ構造体が外乱を受けても、構造体の位置及び方位を一定に保持する構造体の位置・方位制御方法であって、前記構造体には、所望の推力を、前記構造体の基準方向に対する所望の推力方向に制御して出力する複数のアクチュエータが設けられ、さらに、この複数のアクチュエータの推力方向の稼動範囲に制限が与えられており、前記推力方向の稼動範囲に制限が与えられた複数のアクチュエータそれぞれに付与すべき推力を互いに直交する二方向に分解したときの分力のベクトルを未知数とし、この分力のベクトルに、前記複数のアクチュエータの設置位置の情報によって規定される行列を作用させた結果が、前記構造体の位置及び方位を保持するために前記構造体の重心に作用すべき制御力のベクトルに等しくなる推力の分配方程式を定め、かつ、推力方向の稼動範囲が制限されたアクチュエータの前記推力の分力のベクトルを未知数とする前記分配方程式の第１の解を、前記複数のアクチュエータの推力方向の稼動範囲に制限が無く、かつ、前記推力の二乗和が最小になるときの前記分配方程式の第２の解に、前記行列の特異値分解をしたときに求められる直交行列を所望の調整ベクトルに作用させて得られる処理ベクトルを加算した線形和で表したとき、
前記調整ベクトルを、前記複数のアクチュエータに与えられた前記推力方向の各稼動範囲の制限に基づいて求めるステップと、
前記構造体の位置・方位の制御を行う際、前記制御力の入力を受けて、この制御力のベクトルに基づいて前記第２の解を求めるとともに、前記調整ベクトルに前記直交行列を作用させて得られる処理ベクトルを前記第２の解に加算して前記第１の解を求め、この第１の解の成分を前記複数のアクチュエータに与えるべき推力の成分とするステップと、を有することを特徴とする構造体の位置・方位制御方法を提供する。
【０００９】
前記調整ベクトルを求める際、前記推力方向の稼動範囲の制限を、前記調整ベクトルの成分を用いた不等式で表し、この不等式を制約条件とし、この制約条件下、前記調整ベクトルの成分の二乗和が最小となるように前記調整ベクトルの成分を求めることが好ましい。その際、前記制御力には上限値及び下限値が設けられ、前記制約条件において表される前記制御力を、この制御力の上限値及び下限値で置き換えて複数の不等式を得、この複数の不等式を用いて前記調整ベクトルの成分を求めることが好ましい。
又、前記調整ベクトルは、前記構造体の重心に作用すべき制御力の入力を受けて前記構造体の位置・方位の制御を行う前に予め求められ、前記第１の解は、前記構造体の位置・方位の制御を行う際、前記構造体の重心に作用すべき制御力の入力を受けて、この制御力と前記調整ベクトル又は前記処理ベクトルとを用いて算出されることが好ましい。
【００１０】
前記構造体は、例えば、前記基準方向を有する海に浮かぶ浮体であり、前記制御力は平面上の２方向の分力と前記浮体の前記平面に直交する重心軸回りのモーメントを含むことが好ましい。
【００１１】
さらに、本発明は、空間内又は空間上を浮かぶ構造体が外乱を受けても、構造体の位置及び方位を一定に保持する構造体の位置・方位制御システムであって、前記構造体の複数の位置に設けられ、所望の推力を、前記構造体の基準方向に対する所望の推力方向に制御して出力するアクチュエータであって、この推力方向の稼動範囲に制限が与えられた複数のアクチュエータと、前記複数のアクチュエータの推力及び推力方向を制御する制御装置と、を有し、前記制御装置は、前記推力方向の稼動範囲に制限が与えられた複数のアクチュエータそれぞれに付与すべき推力を互いに直交する二方向に分解したときの分力のベクトルを未知数とし、この分力のベクトルに、前記複数のアクチュエータの設置位置の情報によって規定される行列を作用させた結果が、前記構造体の位置及び方位を保持するために前記構造体の重心に作用すべき制御力のベクトルに等しくなる推力の分配方程式を定め、かつ、推力方向の稼動範囲が制限されたアクチュエータの前記推力の分力のベクトルを未知数とする前記分配方程式の第１の解を、前記複数のアクチュエータの推力方向の稼動範囲に制限が無く、かつ、前記推力の二乗和が最小になるときの前記分配方程式の第２の解に、前記行列の特異値分解をしたときに求められる直交行列を所望の調整ベクトルに作用させて得られる処理ベクトルを加算した線形和で表したとき、前記制限の与えられた推力方向の各稼動範囲に基づいて前記調整ベクトルを求め、この調整ベクトル又はこの調整ベクトルに前記直交行列を作用させて得られる処理ベクトルを記憶保持する処理ユニットと、前記構造体の位置・方位の制御を行う際、前記制御力の入力を受けて、この制御力のベクトルに基づいて前記第２の解を求めるとともに、前記調整ベクトルに前記直交行列を作用させて前記処理ベクトルを得、又は記憶保持された前記処理ベクトルを読み出して得、得られる処理ベクトルを、前記第２の解に加算して第１の解を求め、この第１の解の成分を前記複数のアクチュエータに与える推力の分力とし、この推力の分力から前記アクチュエータを制御する推力及び推力方向を求めてアクチュエータを制御する制御ユニットと、を有することを特徴とする構造体の位置・方位制御システムを提供する。
【００１２】
前記処理ユニットは、前記推力方向の稼動範囲の制限を、前記調整ベクトルの成分を用いた不等式で表し、この不等式を制約条件とし、この制約条件下、前記調整ベクトルの成分の二乗和が最小となるように前記調整ベクトルの成分を求めることが好ましい。その際、前記制御力には上限値及び下限値が設けられ、前記制約条件において表される前記制御力を、この制御力の上限値及び下限値で置き換えて複数の不等式を得、この複数の不等式を用いて前記調整ベクトルの成分を求めることが好ましい。
前記処理ユニットは、前記構造体の重心に作用すべき制御力の入力を受けて前記構造体の位置・方位の制御を行う前に、予め調整ベクトルを算出し、前記制御ユニットは、前記構造体の位置・方位の制御を行う際、前記構造体の重心に作用すべき制御力の入力を受けて、この制御力と前記調整ベクトル又は前記処理ベクトルとを用いて前記第１の解を算出することが好ましい。
【００１３】
なお、前記構造体は、例えば、前記基準方向を有する、海に浮かぶ浮体であり、前記制御力は平面上の２方向の分力と前記浮体の前記平面に直交する重心軸回りのモーメントを含むことが好ましい。
【００１４】
さらに、本発明は、空間内又は空間上を浮かぶ構造体が外乱を受けても、構造体の位置及び方位を一定に保持するように構造体の位置・方位の制御を実行させるコンピュータが実行可能なプログラムであって、前記構造体には、所望の推力を、前記構造体の基準方向に対する所望の推力方向に制御して出力する複数のアクチュエータが設けられ、さらに、この複数のアクチュエータの推力方向の稼動範囲に制限が与えられており、前記推力方向の稼動範囲に制限が与えられた複数のアクチュエータそれぞれに付与すべき推力を互いに直交する二方向に分解したときの分力のベクトルを未知数とし、この分力のベクトルに、前記複数のアクチュエータの設置位置の情報によって規定される行列を作用させた結果が、前記構造体の位置及び方位を保持するために前記構造体の重心に作用すべき制御力のベクトルに等しくなる推力の分配方程式を定め、かつ、推力方向の稼動範囲が制限されたアクチュエータの前記推力の分力のベクトルを未知数とする前記分配方程式の第１の解を、前記複数のアクチュエータの推力方向の稼動範囲に制限が無く、かつ、前記推力の二乗和が最小になるときの前記分配方程式の第２の解に、前記行列の特異値分解をしたときに求められる直交行列を所望の調整ベクトルに作用させて得られる処理ベクトルを加算した線形和で表したとき、
前記複数のアクチュエータに与えられた推力方向の各稼動範囲に基づいて、コンピュータの演算手段に前記調整ベクトルを算出させ、この調整ベクトル又はこの調整ベクトルに前記直交行列を施した前記処理ベクトルをコンピュータの記憶手段に記憶させる手順と、
前記制御力の入力を受けて、この制御力のベクトルに基づいて前記第１の解をコンピュータの前記演算手段に算出させるとともに、前記記憶手段に記憶された前記調整ベクトルを読み出し、この調整ベクトルに前記直交行列を作用させて前記処理ベクトルを得、又は前記記憶手段から読み出した前記処理ベクトルを得、この処理ベクトルを、第２の解に加算した第１の解を、コンピュータの前記演算手段に算出させ、この第１の解の成分から前記複数のアクチュエータに与える推力と推力方向を算出させてこの推力と推力方向を前記複数のアクチュエータに与える手順と、を有することを特徴とするプログラムを提供する。
【００１５】
前記調整ベクトルの算出の際、前記推力方向の稼動範囲の制限を、前記調整ベクトルの成分を用いた不等式で表し、この不等式を制約条件としてコンピュータの前記演算手段に作成させ、この制約条件下、前記調整ベクトルの成分の二乗和が最小となるように前記調整ベクトルの成分を、コンピュータの前記演算手段に算出させることが好ましい。その際、前記制御力には上限値及び下限値が設けられ、前記制約条件において表される前記制御力を、この制御力の上限値及び下限値で置き換えて複数の不等式を得、この複数の不等式を用いて前記調整ベクトルの成分をコンピュータの前記演算手段に算出させることが好ましい。
前記調整ベクトルの算出は、前記構造体の重心に作用すべき制御力の入力を受けて前記構造体の位置・方位の制御を行う前に行われ、算出した前記調整ベクトル又は前記調整ベクトルに演算処理を施した前記処理ベクトルを前記記憶手段に記憶保持させ、前記構造体の位置・方位の制御を行う際、前記構造体の重心に作用すべき制御力の入力を受けて、この制御力と、記憶保持した前記調整ベクトル又は前記処理ベクトルとを用いて、前記第１の解を前記演算手段に算出させることが好ましい。
【００１６】
なお、前記構造体は、例えば、前記基準方向を有する、海に浮かぶ浮体であり、前記制御力は平面上の２方向の分力と前記浮体の前記平面に直交する重心軸回りのモーメントを含むことが好ましい。
【発明の効果】
【００１７】
本発明では、各アクチュエータに分配する推力に関する最適解（第１の解）を求める際、この解に用いる調整ベクトルを、アクチュエータに与えられた推力方向の各稼動範囲の制限に基づいて求めることで、推力方向に制限を加えた条件を満足する解を求めることができる。しかも、調整ベクトルは、時間に依存して変化する制御力の入力を受けて制御を行う前に、この制御力とは無関係にオフラインで予め算出することができる。このため、第１の解である最適解を算出する演算は、後述する下記式（５）に沿った短時間の演算だけで済み、従来のように繰り返し計算を行う必要が無いので、第１の解を短時間に算出することができる。したがって、推力の分配をオンラインで行うことができる。
【発明を実施するための最良の形態】
【００１８】
以下、本発明の構造体の位置・方位制御方法、構造体の位置・方位制御システム及びプログラムについて、添付の図面に示される好適実施形態を基に詳細に説明する。
【００１９】
図１は、本発明の構造体の位置・方位制御方法を実施する、本発明の構造体の位置・方位制御システムの一例の概略構成図である。
図１に示す構造体の位置・方位制御システム（以降、システムという）１０において、船舶を構造体として適用するが、船舶の他に、洋上に浮かぶ橋梁作業台プラットフォーム、海底資源探査船、水中航走体、空中を飛行する飛行体、さらには宇宙空間中の人工衛星等についても適用可能である。
【００２０】
システム１０は、船舶に搭載され、制御可能な推力を制御可能な方向に出力するアクチュエータ群１２と、船舶に搭載され、アクチュエータ群１２を制御する、コンピュータによって構成された制御装置１４と、を有して構成される。システム１０は、洋上を浮かぶ船舶が風、波及び潮流の外乱を受けても船舶の船位（位置）及び方位を一定に保持するように、各アクチュエータの推力及び推力方向を最適に分配する。
【００２１】
アクチュエータ群１２は、船舶の複数の船底位置に設けられ、所望の推力を、船舶の基準方向に対する所望の方向（推力方向）に出力する複数のアクチュエータ１〜ｎから構成される。船舶の基準方向は、例えば、サージ方向（船舶の前後方向、図２の場合ｘ方向）である。アクチュエータ１〜ｎは、例えば、船底に設けられ、推力を発するプロペラの回転軸が所望の方位に回動するアジマススラスタである。アクチュエータ群１４には、アジマススラスタの他に、船舶の横方向（スウェイ方向）にのみ推力を発するサイドスラスタを含んでもよい。しかし、アクチュエータ群１２は、少なくとも制御可能な推力を制御可能な方向（推力方向）に出力するアジマススラスタを２機以上含む。
【００２２】
制御装置１４は、ＲＡＭ、ＲＯＭ等の各種メモリ１６とＣＰＵ１８を有し、メモリ１６に記憶されたプログラムを実行することで、機能がモジュール化された制御力算出ユニット２０、前処理ユニット２２及び制御ユニット２４を形成する。
制御力算出ユニット２０は、船舶に搭載された図示されないＧＰＳ（Global Positioning System）を用いて供給される現在の位置の情報を取得するとともに、船舶に設けられたジャイロコンパスを用いて供給される現在の船舶のサージ方向の方位情報（船舶の方位）を取得する。また、船舶に設けられた風向風速計等の測定器によって得られる環境情報を取得する。これらの情報は、制御力算出ユニット２０において、所定のサンプリング間隔でデジタル化され、制御力の算出に用いられる。
【００２３】
制御力算出ユニット２０は、取得された船舶の現在の位置、方位の情報を、カルマンフィルタを介してフィードバック制御に用い、また、取得された環境情報をフィードフォワード制御に用い、船舶の重心に作用すべきサージ方向の力、スウェイ方向の力及び船舶の重心軸回りのモーメントを制御力として算出する。制御力算出ユニット２０は、算出された制御力を所定の周期で、制御ユニット２４に供給する。
制御力算出ユニット２０において行われる制御力の算出方法については、本発明では特に限定されないが、少なくとも、現在の船舶の位置、方位の情報及び環境情報に基づいて、位置、方位が一定に保持されるように、重心に作用すべき制御力をフィードバック制御及びフィードフォワード制御のスキームに従って算出する。
【００２４】
前処理ユニット２２は、アクチュエータ群１２のそれぞれのアクチュエータに与える推力及び推力方向を算出するときに用いる調整ベクトルを、制御力の入力を受けて行う船舶の位置、方位の制御の前に、オフラインで予め算出する部分である。算出された調整ベクトルはメモリ１６に記憶保持される。なお、アクチュエータ群１２の各アクチュエータの推力方向の稼動範囲は、オペレータによる入力に従って制限される。推力方向の稼動範囲を制限するのは、推力方向に設けられた計器類等が障壁となってその反射した力が推力に干渉することのないように、又２つのアクチュエータがお互いに向き合って推力が干渉することのないように、又推力方向の変化が小さくアクチュエータが向きを変えるための移動時間が少なくて済むようにするためである。この推力方向の稼動範囲の制限に基づいて、後述するように、調整ベクトルが算出される。調整ベクトル及びその算出方法については、図２に示される具体例に基づいて詳細に後述する。
【００２５】
制御ユニット２４は、前処理ユニット２２で算出され、メモリ１６に記憶保持された調整ベクトルを読み出して、この調整ベクトルと、制御力算出ユニット２０から所定の周期で供給される制御力とを用いて、アクチュエータ群１２の各アクチュエータに付与する推力及び推力方向を算出する部分である。具体的には、上記推力方向の稼動範囲の制約された中で、各アクチュエータに付与すべき推力の分力、すなわち、付与すべき推力のサージ方向（基準方向）及びこれ直交するスウェイ方向に分解した推力の分力に関するベクトルの解を、アクチュエータ群１２の推力の二乗和を最小にする推力の分力のベクトルの解に処理ベクトルを加算して算出する。ここで、アクチュエータ群１２の推力の二乗和を最小にする推力の分力のベクトルの解とは、推力方向の稼動範囲の制約条件を含めた一切の制約条件がないときの解である。又、処理ベクトルとは、後述する拡張推力分配行列の特異値分解を行うときに求められる直交行列を後述する調整ベクトルに作用させて得られるベクトルである。より具体的な説明は、図２に示される具体例に基づいて後述する。
制御ユニット２４は、算出された推力の分力から推力と推力方向を求め、この推力と推力方向を、各アクチュエータの図示されない駆動ユニットに制御信号として供給する。
【００２６】
前処理ユニット２２及び制御ユニット２４において行われる処理についてより詳しく説明する。
図２は、システム１０の制御対象とする船舶３０の説明図である。船舶３０の船底には、３つのアジマススラスタ（図２では●で表されている）３２，３４，３６が設けられている。アジマススラスタ３２，３４は、船舶の後方の左右両側に設けられ、それぞれ船舶の重心Ｇからサージ方向（ｘ方向）後方に距離ｌx1，ｌx2離れており、スウェイ方向（ｙ方向）にｌy1，ｌy2離れている。また、アジマススラスタ３６は、船舶の前方に設けられ、船舶の重心Ｇからサージ方向（ｘ方向）前方に距離ｌx3離れており、スウェイ方向（ｙ方向）に距離ｌy3離れている。アジマススラスタ３２，３４，３６の推力は、それぞれ推力Ｔ1，Ｔ2，Ｔ3で表され、推力方向は、それぞれサージ方向に対する角度δ1，δ2，δ3で表されている。
船舶３０において、制御力算出ユニット２０にて算出される制御力、すなわち、重心Ｇに作用すべきサージ方向（ｘ方向）の力をτx、重心Ｇに作用すべきスウェイ方向（ｙ方向）の力をτy、重心Ｇを通り、サージ方向、スウェイ方向を含む平面に対して垂直な重心軸回りのヨー（モーメント）をτzとしたとき、下記式（１）の関係で表される。行列Ａは、各アジマススラスタに推力を分配する推力分配行列である。
【００２７】
【数１】
2008026962.tif 000003
【００２８】
推力分配行列である行列Ａの成分には、アジマススラスタの推力方向を表す角度δ1，δ2，δ3が含まれているので、行列Ａの特性は角度δ1，δ2，δ3に依存する。このため、重心Ｇに作用すべき力τx，τy，モーメントτzのベクトルτ（制御力のベクトル）とし、アジマススラスタのそれぞれに付与すべき推力をサージ方向及びスウェイ方向に分解した推力の分力(Ｔ1x，Ｔ1y，Ｔ2x，Ｔ2y，Ｔ3x，Ｔ3y)のベクトルをＴとし、ベクトルτとベクトルＴとの間の関係を表す。この関係は、アジマススラスタの設置位置の情報（距離ｌx1，ｌx2，ｌy1，ｌy2，ｌx3，ｌy3）によって規定され、角度δ1，δ2，δ3に依存しない行列Ａexによって表され、具体的に下記式（２），（３）で表される。式（２）中の行列Ａexは、式（１）中の行列Ａを拡張した行列であり、拡張型推力分配行列という。この拡張型推力分配行列は、アジマススラスタの設置位置の情報（距離ｌx1，ｌx2，ｌy1，ｌy2，ｌx3，ｌy3）によって規定されるため、船舶３０のアジマススラスタの位置が定まれば、決定される行列である。下記式（３）が本発明における推力の分配方程式である。
【００２９】
【数２】
2008026962.tif 000004
【数３】
2008026962.tif 000005
【００３０】
これより、制御力算出ユニット２０から供給される制御力のベクトルτと、既知となっている行列Ａexとを用いて、未知数である推力の分力のベクトルＴを算出する。つまり、式（３）で表されるベクトルＴに関する分配方程式を解く。なお、行列Ａexは、３×６の行列サイズであるため、式（３）の分配方程式に関してベクトルＴの解を一意的に求めることができない。このため、推力方向の稼動範囲、すなわちアジマススラスタ３２，３４，３６の首振り角度である角度δ1，δ2，δ3が設定された稼動範囲に制限された条件で、ベクトルＴのノルムが可能な限り小さくなる（ベクトルＴの成分の二乗和が可能な限り小さくなる）最適解を算出する。従来は、ベクトルＴの解を算出する際、角度δ1，δ2，δ3の稼動範囲を制限することなく、ベクトルＴのノルムが可能な限り小さくなる最適解を求めていた点で、本発明と異なる。
【００３１】
より具体的に説明すると、行列Ａexを下記式（４）に示すように、周知の特異値分解をにより、行列Ａexを、対角成分に持つ対角行列Σ1と直交行列Ｕ1，Ｕ2，Ｖ1，Ｖ2とを用いて分解する。この特異値分解を利用して、下記式（５）に示すように、最適解Ｔex*（第１の解）を算出する。ここで、Ｃは、直交行列Ｖ2と作用して第１項の式に加算される調整ベクトルである。最適解Ｔex*は、直交行列Ｖ1，Ｖ2が直交性を有することにより式（３）を満足する。調整ベクトルＣは、後述する方法により既知となるベクトルである。最適解Ｔex*は、制御力算出ユニット２０から供給された制御力のベクトルτに、特異値分解によって求められる対角行列Σ1、直交行列Ｖ1，Ｕ1を用いて表された第１項Ｖ1Σ1-1Ｕ1Tに、調整ベクトルＣと直交行列Ｖ2とを用いて表される処理ベクトルである第２項Ｖ2Ｃとの線形和で表される。第１項のＶ1Σ1-1Ｕ1Tは、アジマススラスタの推力の二乗和を制約条件無しで最小にするラグランジェの未定定数解（第２の解）であり、最適解Ｔex*は、このラグランジェの未定定数解に、調整ベクトルＣに直交行列Ｖ2を作用させた処理ベクトルＶ2Ｃを加算したものである。
【００３２】
【数４】
2008026962.tif 000006
【数５】
2008026962.tif 000007
【００３３】
最適解Ｔex*のノルムの二乗、すなわち最適解Ｔexのベクトル成分の二乗和、すなわち、各アジマススラスタの推力の二乗和は、式（６）に示されるように、上述のラグランジェの未定定数解の二乗和に調整ベクトルＣのノルムの二乗を加算したものである。供給された制御力、対角行列Σ1及び直交行列Ｕ1は値が既知であるので、式（６）中の第１項は既知である。このため、アジマススラスタの推力の二乗和を可能な限り小さくするには、アジマススラスタの首振り角度である角度δ1，δ2，δ3の稼動範囲が制限された条件で、調整ベクトルＣの成分の二乗和が最小になるように、調整ベクトルＣの成分の値を算出することが必要である。
【００３４】
【数６】
2008026962.tif 000008
【００３５】
本発明では、上記理由から、角度δ1，δ2，δ3の稼動範囲が制限された条件で、調整ベクトルＣの成分の二乗和が最小になるように調整ベクトルＣの値を算出する。具体的には、対角行列Σ1、直交行列Ｖ1，Ｖ2，Ｕ1の行列成分を下記式（７−１）〜（７−４）で表すとき、最適解Ｔex*のｉ番目の成分は、下記式（８）に示すように書き下される。
ベクトルＴは、式（３）に示すように推力のサージ方向及びスウェイ方向の分力によって構成されているので、最適解Ｔex*についても、サージ方向及びスウェイ方向の分力の比を採ることによって、推力方向を求めることができる。このため、推力方向の稼動範囲に制限を与える場合、式（８）で表される推力方向の角度δｍ（ｍ＝１，２，３）について、θmin≦ δｍ ≦θmaxかつ−π／２≦δｍ≦π／２とするとき、この稼動範囲の条件は、下記式（９−１）〜（９−３）で表される。
【００３６】
【数７】
2008026962.tif 000009
【数８】
2008026962.tif 000010
【数９】
2008026962.tif 000011
【００３７】
なお、式（９−１）〜（９−３）中のτk（ｔ）は、制御力算出ユニット２０から一定の周期で連続的に供給される、時間によって変化する制御力である。このため、式（９−１）〜（９−３）で表される不等式は時間によって変化する。したがって、最適解Ｔex*を、時間によって変動する不等式の条件下で短時間に調整ベクトルＣを求めて推力及び推力方向を算出することは困難であり、したがって、オンラインで最適解Ｔex*を求めて制御することはできない。そこで、本発明では、この制御力のベクトルτの成分の上限値及び下限値を予めオペレータの入力により下記式（１０−１）、（１０−２）に示すように設定しておき、式（１０−１），（１０−２）を式（９−１）〜（９−２）に代入することにより、時間に依存しない不等式で表される制約条件を定めることができる。このような制御力τk（ｔ）の成分の上限値及び下限値は、制御力算出ユニット２０において予め制御力の出力値の範囲が限られており、オペレータにより入力されて設定される。本発明では、この時間に依存しない不等式で表される制約条件の下に、調整ベクトルＣの成分の二乗和を最小にする調整ベクトルＣの成分を算出する。算出された調整ベクトルＣは、メモリ１６に記憶保持される。
【００３８】
【数１０】
2008026962.tif 000012
【００３９】
一方、制御ユニット２４は、メモリ１６に記憶保持された調整ベクトルＣを読み出して、この調整ベクトルＣと制御力算出ユニット２０から供給された制御力のベクトルτを用いて、上記式（５）にしたがって、最適解Ｔex*を算出する。ここで、直交行列Ｖ1,Ｕ1，Ｖ2,対角行列Σ1は、既知となっている行列Ａexによって一意的に定まるため、予め制御前のオフラインにて、式（５）中のＶ1Σ1-1Ｕ1Tと処理ベクトルＶ2Ｃとを求めておくこともできる。船舶の位置、方位の制御を、供給される制御力に対してオンラインで処理を行う際、制御力算出ユニット２０から一定の周期で供給される制御力のベクトルτを用いて式（５）に従って計算するだけで、最適解Ｔex*  を迅速に算出することができる。これによって、最適解Ｔex*から、推力Ｔm及び推力方向の角度δm（ｍ＝１，２，３）を下記式（１１−１），（１１−２）にしたがって算出することができる。
制御ユニット２４は、算出された推力Ｔ*m及び推力方向の角度δ*mをアジマススラスタ３２，３４，３６の制御信号に変換して図示されないアジマススラスタの駆動ユニットに供給する。
【００４０】
【数１１】
2008026962.tif 000013
【００４１】
なお、上記例では、算出された調整ベクトルＣをメモリ１６に記憶保持し、オンライン制御の際、調整ベクトルＣと制御力のベクトルτとを用いて式（５）に従って最適解Ｔex*を算出するが、本発明では、予め求めることのできるＶ1Σ1-1Ｕ1Tと処理ベクトルＶ2Ｃをメモリ１６に記憶保持し、オンライン制御の際、Ｖ1Σ1-1Ｕ1Tと処理ベクトルＶ2Ｃをメモリ１６から読み出して、式（５）に従って最適解Ｔex*を算出してもよい。この場合、Ｖ1Σ1-1Ｕ1Tの演算処理や処理ベクトルＶ2Ｃの演算処理をする必要が無いので、より短時間のうちに最適解Ｔex*を算出することができる。
以上、システム１０の構成の説明である。
【００４２】
図３は、システム１０にて実施される船舶３０の位置・方位制御方法のフローを説明する図である。
まず、システム１０に、アジマススラスタの首振り角（推力方向）の稼動範囲がオペレータにより入力されて設定される。稼動範囲の設定は、例えば、船底に設けられた計器類が推力の流れの障壁となって所望の推力が発揮できないことを防止し、又２つのアジマススラスタがお互いに向き合って相互の推力が干渉することを防止するためである。さらに、制御力の上限値及び下限値がオペレータにより入力されて設定される（ステップＳ１００）。システム１０は、船舶３０に搭載されているため、船舶のアジマススラスタ（アクチュエータ）の位置情報（距離ｌx1，ｌx2，ｌy1，ｌy2，ｌx3，ｌy3）も同時に入力される。
【００４３】
次に、前処理ユニット２２において、式（２）に示される拡張型推力分配行列である行列Ａexが設定され、さらに、式（４）に従って行われた特異値分解の直交行列Ｖ1，Ｕ1，Ｖ2，対角行列Σ1を用い、さらに制御力のベクトルτの各成分の上限値τmax及び下限値τminを用いて、式（１０−１），（１０−２）を式（９−１）〜（９−３）に代入した不等式からなる制約条件が設定される（ステップＳ１０２）。
なお、制約条件は、アジマススラスタが３つ搭載されている場合、τ1（ｔ），τ2（ｔ），τ3（ｔ）のそれぞれに対して上限値τmax，下限値τminのいずれか一方で置き換えて式（９−１）〜（９―３）の３つの不等式それぞれに代入するので、合計２４個（＝３×２3）の不等式からなる制約条件が設定される。不等式は、式（９−１）〜（９−３）中の唯一時間に依存して変化する制御力τk(t)を上限値又は下限値で置き換えたものなので、２４個の不等式は時間に依存しない固定した不等式となっている。
【００４４】
次に、求められた２４個の不等式からなる制約条件の下、調整ベクトルＣの成分の二乗和を最小にする調整ベクトルＣの成分が算出される（ステップＳ１０４）。調整ベクトルＣの成分の二乗和を最小にするのは、最適解Ｔex*の成分の二乗和、すなわち、アジマススラスタの推力の二乗和を最小にすることが望まれるからである。すなわち、洋上の船舶では、駆動エネルギが限られているため、この駆動エネルギを最小限に用いて（調整ベクトルＣの成分の二乗和を最小にして）効率よくアジマススラスタを制御することが望まれるからである。
算出された調整ベクトルＣの成分の値は、メモリ１６に記憶保持される（ステップＳ１０６）。さらに、式（５）中のＶ1Σ1-1Ｕ1Tと処理ベクトルＶ2Ｃとが算出され、メモリ１６に記憶保持される。
【００４５】
以上のステップＳ１００〜１０６は、制御力が供給されて、洋上で船舶３０の位置、方位を制御する前に行う前処理であり、オフラインの処理である。なお、調整ベクトルＣの算出において、各アジマススラスタの首振り角の稼動範囲を複数定めておき、各アジマススラスタの首振り角を種々に制限した複数組の制約条件を定め、この複数組の制約条件における調整ベクトルＣを算出して、メモリ１６に記憶保持してもよい。
【００４６】
次に、船舶３０が洋上で静止し、船舶が外乱を受けても、船舶の位置及び方位を一定に保持する制御が行われる。
まず、船舶３０に設けられたＧＰＳ及びジャイロコンパスから、船舶の位置、方位情報が、風向風速計等の計測器から環境情報が制御力算出ユニット２０に供給される。制御力算出ユニット２０では、設定されたアルゴリズムにしたがって、船舶３０の重心Ｇに作用すべき制御力が算出される。算出された制御力は制御ユニット２４に供給される。船舶３０の位置、方位の制御はオンラインで行うため、制御力算出ユニット２０にて算出される、時間に依存して変化する制御力は、例えば２Ｈｚで制御ユニット２４に供給される。
次に、メモリ１６から読み出されたＶ1Σ1-1Ｕ1Tと処理ベクトルＶ2Ｃが、制御ユニット２４に供給された制御力とともに用いられて、式（５）に従って最適解Ｔex*が算出される（ステップＳ１０８）。
本発明においては、処理ベクトルＶ2Ｃの替わりに調整ベクトルＣを読み出して、最適解Ｔex*の算出の際に、直交行列Ｖ2と演算を行うようにしてもよい。
【００４７】
最後に、算出された最適解Ｔex*の成分(Ｔ1x*，Ｔ1*y，Ｔ2x*，Ｔ2y*，Ｔ3x*，Ｔ3y*)が取り出され、式（１１−１），（１１−２）に従って、推力Ｔm*、角度δm*、（ｍ＝１，２，３）が算出される（ステップＳ１１０）。これらが、図２に示されるアジマススラスタ３２，３４，３６に与えるべき推力及びその推力方向とされ、この推力及び推力方向の情報は、制御信号に変換されて、各アジマススラスタの駆動ユニットに供給される。
【００４８】
このように、制御のために式（５）に従って算出される最適解Ｔex*のうち、制御力のベクトルτ以外のベクトル及び行列は、予めオフライン処理で算出することができるので、制御力算出ユニット２０から制御力が供給されると、この制御力のベクトルτを用いて式（５）に従って計算することで、最適解Ｔex*を短時間に算出することができる。従来の手法では、いずれも繰り返し計算を行って最適解を算出するため、迅速な推力及び推力方向の算出ができず、オンライン処理による船舶の位置、方位の制御が困難であったが、本発明はこの問題を解消する。また、従来の手法とは異なり、推力方向に制限を加えることができるので、推力の干渉等を防止することができる。又、従来の手法では、制御力が小さい場合、アジマススラスタの推力方向が大きく変化する場合もあるが、本発明では、アジマススラスタの首振り角（推力方向）に制限を加えるので、アジマススラスタが時間をかけて所望の方位に向くような首振り角の大きな変化はない。このため、アジマススラスタが目標とする方位方向に向くまでの時間が短くなり、効率のよい安定した制御が可能になる。
【００４９】
なお、上述した制御がコンピュータ上で行われるとき、コンピュータには以下のプログラムを記憶させておき、これを読み出して実行させるとよい。
すなわち、プログラムは、手順として、複数のアジマススラスタに与えられた推力方向の稼動範囲に基づいて、コンピュータのＣＰＵ１８に調整ベクトルＣを算出させ、算出した調整ベクトルＣ又は調整ベクトルＣに直交行列Ｖ2を作用させた処理ベクトルＶ2Ｃをメモリ１６に記憶させる。次の手順として、制御力の入力を受けて、この制御力のベクトルτに基づいてラグランジェの未定定数解をＣＰＵ１８に算出させるとともに、メモリ１６に記憶された調整ベクトルＣを読み出し、この調整ベクトルＣに直交行列Ｖ2を作用させた処理ベクトルＶ2Ｃを得、あるいはメモリ１６に記憶された調整ベクトルＣに直交行列Ｖ2を作用させた処理ベクトルＶ2Ｃを読み出して得、得られた処理ベクトルＶ2Ｃをラグランジェの未定定数解に加算した線形和の最適解Ｔex*をＣＰＵ１８に算出させる。この線形和の最適解Ｔex*の成分からアジマススラスタに与える推力Ｔmと推力方向の角度δm（ｍ＝１，２，３）を算出させてこの推力Ｔmと推力方向の角度δmをアジマススラスタに与える。
調整ベクトルＣの算出の際、推力方向の稼動範囲の制限を調整ベクトルの成分を用いて不等式で表した制約条件下、調整ベクトルＣの成分の二乗和が最小となるように調整ベクトルＣの成分を、ＣＰＵ１８に算出させることが好ましい。又、この制御力のベクトルτの各成分τk（ｔ）には上限値及び下限値が設けられ、この各成分τk（ｔ）を上限値及び下限値で置き換えて複数の不等式を得、この複数の不等式を用いて調整ベクトルＣの成分をコンピュータのＣＰＵに算出させることが好ましい。さらに、調整ベクトルＣの算出は船舶の位置・方位の制御を行う前に行われ、算出した調整ベクトルＣ又は調整ベクトルＣに直交行列Ｖ2を作用させた処理ベクトルＶ2Ｃをメモリ１６に記憶保持させ、船舶の位置・方位の制御を行う際に、記憶保持した調整ベクトルＣを読み出して処理ベクトルＶ2Ｃを算出して得、又は処理ベクトルＶ2Ｃを読み出して得、この処理ベクトルと、船舶の重心に作用すべき制御力とを用いて、最適解Ｔex*をＣＰＵ１８に算出させることが好ましい。
【００５０】
図４は、船舶３０の制御算出ユニット２４に供給される制御力の一例を示す。制御力はいずれも上限値を１（Ｎ）又は１（Ｎｍ）とし、下限値を−１（Ｎ）又は−１（Ｎｍ）としたものである。又、船舶３０に設けられるアジマススラスタの設置位置情報は、下記表１に示す。
【００５１】
【表１】
2008026962.tif 000014
【００５２】
このとき、直交行列Ｕ1、対角行列Σ1及び直交行列Ｖ1，Ｖ2及び以下の通りである。
【００５３】
【数１２】
2008026962.tif 000015
【００５４】
一方、下記表２に示すように、首振り角の稼動範囲の条件として例１〜例７のように定めた。このとき、ノルムの二乗を最小にするように算出される調整ベクトルＣ及びこのときのノルムの二乗／２の値を表３に示す。
表３中の例１，２，３からわかるように、首振り角の稼動範囲の条件を狭くするほど、すなわち制約条件を厳しくするほど、調整ベクトルＣのノルムの二乗の値は大きくなることがわかる。
【００５５】
【表２】
2008026962.tif 000016
【表３】
2008026962.tif 000017
【００５６】
図５（ａ）〜（ｄ）は、図４に示される制御力に対して、制約条件のないラグランジェの未定定数解により算出されるアジマススラスタの推力と推力方向を示す図である。
図６（ａ）〜（ｄ）は、図４に示される制御力に対して、例１の制約条件（表２参照）を与えて式（５）に基づいてアジマススラスタの推力及び推力方向を求めた結果である。
図７（ａ）〜（ｄ）は、図４に示される制御力に対して、例３の制約条件（表２参照）を与えて式（５）に基づいてアジマススラスタの推力及び推力方向を求めた結果である。
図８（ａ）〜（ｄ）は、図４に示される制御力に対して、例６の制約条件（表２参照）を与えて式（５）に基づいてアジマススラスタの推力及び推力方向を求めた結果である。
【００５７】
図５（ａ）〜（ｄ）に示す、制約条件のないラグランジェの未定定数解による算出結果に対して、図６（ａ）〜（ｄ）、図７（ａ）〜（ｄ）、図８（ａ）〜（ｄ）に示す最適解Ｔex*により算出された推力方向の変動は小さくなっており、与えられた推力方向の稼動範囲内で変動することがわかる。これに対して推力は、図５（ａ）〜（ｄ）に対して増大する。これは、推力の変動と推力方向の変動がトレードオフの関係にあることを示し、推力方向の変動を小さく抑えることによって、推力の変動が大きくることを表している。このように、本発明では、アクチュエータの推力方向に稼動範囲の制限を与えることで、推力のレベルを許容範囲内に抑えつつ、推力方向の変動を所定の範囲に抑制することができる。また、図８（ａ）〜（ｄ）に示す例のように、推力方向の稼動範囲をアジマススラスタそれぞれについて別々に設定することができるので、推力の変動と推力方向の変動をより最適な範囲に抑制することができる。
【００５８】
以上、本発明の構造体の位置・方位制御方法、構造体の位置・方位制御システム及びプログラムについて詳細に説明したが、本発明は上記実施形態に限定されず、本発明の主旨を逸脱しない範囲において、種々の改良や変更をしてもよいのはもちろんである。
【図面の簡単な説明】
【００５９】
【図１】本発明の構造体の位置・方位制御方法を実施する、本発明の構造体の位置・方位制御システムの一例の概略構成図である。
【図２】図１に示すシステムの制御対象とする船舶の説明図である。
【図３】図１に示すシステムにて実施される船舶の位置・方位制御方法のフローを説明する図である。
【図４】図１に示す船舶の制御算出ユニットに供給される制御力の一例を示す図である。
【図５】（ａ）〜（ｄ）は、図４に示される制御力に対して、制約条件のないラグランジェの未定定数解により算出されるアジマススラスタの推力と推力方向を示す図である。
【図６】（ａ）〜（ｄ）は、図４に示される制御力に対して、例１の条件を与えて、本発明の方法に従って、アジマススラスタの推力及び推力方向を求めた結果を示す図である。
【図７】（ａ）〜（ｄ）は、図４に示される制御力に対して、例３の条件を与えて、本発明の方法に従って、アジマススラスタの推力及び推力方向を求めた結果を示す図である。
【図８】（ａ）〜（ｄ）は、図４に示される制御力に対して、例６の条件を与えて、本発明の方法に従って、アジマススラスタの推力及び推力方向を求めた結果を示す図である。
【符号の説明】
【００６０】
１０  位置・方位制御システム
１２  アクチュエータ群
１４  制御装置
１６  メモリ
１８  ＣＰＵ
２０  制御力算出ユニット
２２  前処理ユニット
２４  制御ユニット
３０  船舶
３２，３４，３６  アジマススラスタ  
【図１】
2008026962.tif 000018
【図２】
2008026962.tif 000019
【図３】
2008026962.tif 000020
【図４】
2008026962.tif 000021
【図５】
2008026962.tif 000022
【図６】
2008026962.tif 000023
【図７】
2008026962.tif 000024
【図８】
2008026962.tif 000025