(58)【調査した分野】(Int.Cl.,DB名)
前記学習済モデルは、階層的に分割された状態空間にそれぞれ対応付けられた複数のノードを階層的に配置することにより構成された木構造を有する学習モデルに対して、所定のデータ群を学習させることにより得られたものである、請求項1に記載の外乱加速度の推定方法。
前記所定のデータ群は、無外乱かつ無動力の条件における前記船体の速度状態に関するデータと、無外乱かつ無動力の条件における対応する船体の加速度状態に関するデータと、を含むものである、請求項2に記載の外乱加速度の推定方法。
前記外乱加速度生成ステップにおいて、前記外乱加速度は、前記実加速度から前記予測加速度と前記指令加速度とを減算することにより生成される、請求項1に記載の外乱加速度の推定方法。
請求項1〜5の何れかに記載の外乱加速度の推定方法により得られた前記外乱加速度を用いて前記動力機を制御する動力機制御ステップをさらに含む、船体の自動制御方法。
【発明の概要】
【発明が解決しようとする課題】
【0012】
単一連続関数による手法では、対象システム毎の単一連続関数をシミュレータの設計者が記述する必要があり、シミュレータの構成には対象システム毎の詳細かつ専門的な知識が要求される。このため、シミュレータ構成の自動化が困難である。
【0013】
単一連続関数による手法では、数式内の定数項を逐次的に更新することが難しい。このため、測定データが順次得られる場合において、それぞれの測定データを逐次的に解析し、シミュレータを逐次的に改善することが困難である。
【0014】
さらに、単一連続関数による手法では、関数形状の変更が容易ではない。このため、シミュレータが要求するメモリ容量と計算速度や精度のバランスを、シミュレータの使用環境に応じて速やかに調整することができない。
【0015】
NNによる手法では、シミュレータを構成する前に測定データをバッチ処理によって処理する必要があるため、した対象システムの挙動測定と同時にシミュレータを構成することができない。また、バッチ処理を行う前にメモリ容量と計算速度や精度のバランスを調整する必要があるため、メモリ容量と計算速度や精度のバランスを速やかに調整することが難しい。
【0016】
さらに、NNによる手法では、一般に単一連続関数による手法よりも複雑な計算を必要とするため、シミュレータに高い付加価値が望めない。
【0017】
階層性を伴わないデータベースによる手法では、シミュレータ内で最近傍探索を用いてデータ処理を行う必要があるため計算量が大きくなることから、メモリ容量と計算速度や精度のバランスを速やかに調整することが難しくなり、シミュレータに高い付加価値が望めない。
【0018】
このように、従来のシミュレータでは、以下の課題がある。
(1)シミュレータの構成プロセスの自動化ができない。
(2)測定データが順次得られる場合において、それぞれの測定データを逐次的に解析し、シミュレータを逐次的に改善することができない。
(3)計算量が多く、シミュレータに高い付加価値が望めない。
(4)シミュレータが要求するメモリ容量と計算速度及び精度のバランスを、シミュレータの使用環境に応じて速やかに調整できない。
【0019】
従って、例えば、漁を行う際に小型船舶の制御、例えば位置制御を自動で、つまり自律的に行うシステムを開発するために十分なシミュレータが得られていない。
【0020】
本発明は、上記課題に鑑み、実用的で優れた外乱加速度の推定方法、船体の自動制御方法及び外乱加速度の推定装置並びに外乱加速度の推定用コンピュータプログラムを提供することを目的としている。
【課題を解決するための手段】
【0021】
本発明者等は、船体などの力学系システムの挙動は、状態及び状態遷移速度の関係性により特徴づけられており、力学系システムのシミュレーションを行うためには、この関係性を効果的に解析して記録するための手段があれば良いとの着想を得、これを実現するには、木構造のデータベースを用いた情報処理装置により、従来のシミュレータの課題が解決できるという知見を得て本発明に想到した。
【0022】
上記の目的を達成するため、本発明の外乱加速度の推定方法は、船体に働く外乱に基づく加速度である外乱加速度の推定方法であって、
船体に備えられたセンサーにて取得されたセンサー情報に基づいて船体の実際の加速度を取得する、実加速度取得ステップと、
船体の動力機への指令値に基づいて指令加速度を取得する、指令加速度取得ステップと、
船体における無外乱かつ無動力状態の挙動を予め学習した学習済モデルにより予測された予測加速度を取得する、予測加速度取得ステップと、
実加速度、指令加速度及び予測加速度に基づいて外乱加速度を生成する、外乱加速度生成ステップと、
を含む、ことを特徴とする。
上記構成において、学習済モデルは、好ましくは、階層的に分割された状態空間にそれぞれ対応付けられた複数のノードを階層的に配置することにより構成された木構造を有する学習モデルに対して、所定のデータ群を学習させることにより得られたものである。
所定のデータ群は、好ましくは、無外乱かつ無動力の条件における船体の速度状態に関するデータと、無外乱かつ無動力の条件における対応する船体の加速度状態に関するデータと、を含むものである。
センサーは、画像取得手段と角速度検出器と、を含み、センサー情報は、画像取得手段により得られた画像情報と、角速度検出器から得られた角速度情報と、を含み、実加速度は、画像情報の遷移に基づく船体の速度情報と、角速度情報とを微分することにより得られることが好ましい。
外乱加速度生成ステップにおいて、好ましくは、外乱加速度は、実加速度から予測加速度と指令加速度とを減算することにより生成される。
【0023】
上記の目的を達成するため、本発明の船体の自動制御方法は、上記の何れかに記載の外乱加速度の推定方法により得られた外乱加速度を用いて動力機を制御する動力機制御ステップ、をさらに含むことを特徴とする。
上記構成において、動力機の制御は、好ましくは、船体を一定の位置に留まらせる制御である。
【0024】
上記の目的を達成するため、本発明の外乱加速度の推定装置は、船体に働く外乱に基づく加速度である外乱加速度の推定装置であって、
船体に備えられたセンサーにて取得されたセンサー情報に基づいて船体の実際の加速度を取得する、実加速度取得部と、
船体の動力機への指令値に基づいて指令加速度を取得する、指令加速度取得部と、
船体における無外乱かつ無動力状態の挙動を予め学習した学習済のモデルにより予測された予測加速度を取得する、予測加速度取得部と、
実加速度、指令加速度及び予測加速度に基づいて外乱加速度を生成する、外乱加速度生成部と、
を含むことを特徴とする。
【0025】
上記の目的を達成するため、本発明の外乱加速度の推定用コンピュータプログラムは、船体に働く外乱に基づく加速度である外乱加速度の推定用コンピュータプログラムであって、
船体に備えられたセンサーにて取得されたセンサー情報に基づいて船体の実際の加速度を取得する、実加速度取得ステップと、
船体の動力機への指令値に基づいて指令加速度を取得する、指令加速度取得ステップと、
船体における無外乱かつ無動力状態の挙動を予め学習した学習済のモデルにより予測された予測加速度を取得する、予測加速度取得ステップと、
実加速度、指令加速度及び予測加速度に基づいて外乱加速度を生成する外乱加速度生成ステップと、
を含むことを特徴とする。
【発明の効果】
【0026】
本発明によれば、単一連続関数による手法では困難であった関数近似において、関数中の定数項の変更や情報処理装置の逐次的な更新を逐次的に改善することができる外乱加速度の推定方法及び船体の自動制御方法を提供することができる。
本発明によれば、従来のニューラルネットワークやデータベース等による手法では困難であった、計算速度の改善や使用するメモリ容量の削減ができ、種々のシミュレーションが容易にかつ低コストで実行可能な付加価値の高い外乱加速度の推定装置を提供することができる。
本発明によれば、従来の単一連続関数による手法、ニューラルネットワークやデータベース等による手法では困難であった、メモリ容量と計算速度や精度のバランスを速やかに調整することができる外乱加速度の推定用コンピュータプログラムを提供することができる。
【発明を実施するための形態】
【0028】
以下、本発明の実施形態を図面に基づいて詳細に説明する。
図1は、本発明の情報処理装置1を説明するブロック図である。
情報処理装置1は、対象システム2からの状態データ及び/又は状態遷移速度データを取得する状態データ取得手段3と、木構造管理手段5と、ノードデータ管理手段7とからなる木構造4と、を含んで構成されている。
なお、本発明では、情報処理装置1が、力学系の木構造4である場合には、木構造4を力学系の木構造4とも呼ぶ。
【0029】
状態データ取得手段3は、対象システム2からの状態データ及び/又は状態遷移速度データを取得する後述するセンサーや画像データ処理装置等から構成することができる。センサーは、情報処理装置1に有線又は無線により接続される。
【0030】
木構造管理手段5により、木構造データ6が管理され、木構造データ6がデータベースとしてメモリに保存される。ノードデータ管理手段7によりノードデータ8が管理され、ノードデータ8からなるデータベースとしてメモリに保存される。
【0031】
情報処理装置1は、対象システム2から、状態及び/又は状態遷移速度に関するデータが入力され、木構造4において学習が行われ、状態遷移速度が予測され、予測値9が出力される。つまり、状態及び/又は状態遷移速度の関係性が、関数により近似されて、情報処理装置のメモリに記録される。
【0032】
(情報処理装置の構成)
図2は、
図1に示す情報処理装置1の具体的構成を情報処理装置20として示すブロック図である。
図2に示すように、本発明の情報処理装置20は、中央演算装置(CPU)21と、センサー22と、インターフェース(I/O)23、24と、記憶装置25と、読み出し専用メモリ(ROM)26と、ランダムアクセスメモリ(RAM)27と、を含んで構成されている。本発明の情報処理装置20は、パーソナルコンピュータ(PC)を含んで構成してもよい。さらに小型化のために、CPU21の代わりにマイクロプロッセッサ(Mプ)やマイクロコントローラ(マイコン)等により構成してもよい。
【0033】
センサー22は、
図1の情報処理装置1の状態データ取得手段3に対応する電子回路である。センサー22は、例えば、速度や加速度を検出するMEMSセンサーや角度や角加速度を検出するジャイロセンサーを用いることができる。センサー22の出力は、インターフェース(I/O)23を介して、CPU21に入力される。
【0034】
木構造管理手段5とノードデータ管理手段7を構築するためのプログラムは、情報処理装置20にインストールされる。情報処理装置20にインストールされるプログラムは、読み出し専用メモリ(ROM)26に書き込まれてもよい。プログラムは書き換えが可能なフラッシュメモリに記憶させてもよい。
【0035】
ランダムアクセスメモリ27は、木構造データ6及びノードデータ8からなるデータベースを記憶するメモリである。木構造データ6のデータベースは、階層型の格子構造を有している。
【0036】
記憶装置25は、ハードディスクや光ディスク装置であり、上記プログラムやデータベースを保存するために使用される。
【0037】
情報処理装置20は、必要に応じて外部と通信するためのネットワークインターフェース(I/O)24を備えて構成されてもよい。必要に応じてキーボードのような入力装置28やディスプレイ29を備えてもよい。
【0038】
(情報処理装置の制御方法)
図3は、N階層2次元2分木の木構造管理手段5を模式的に示し、(a)が木構造4、(b)が各階層の状態空間を示す図である。
1階層目の葉ノードは右の状態空間の各領域に対応している。葉ノードは、後述する
図7に示すように最外側のノード12である。
木構造管理手段5は、木構造4を用いた階層型学習器であり、根(root)11となるノードがn次元状態空間を表現していると考え、根11から葉の方へn次元(副層)のd分木を形成している。これにより、葉のノードを、根11の状態空間をd
n個に分割した各状態空間に一対一に対応させている。
【0039】
木構造4は、さらにn次元d分木の形成をN回行うことで形成されるN階層n次元d分木(ここで、N及びnは1以上の整数、dは2以上の整数である)の構成を有している。
階層、次元、分木は、それぞれ主階層、副階層、軸とも呼ぶ。
【0040】
(木構造管理手段のデータ形式)
木構造管理手段5で管理される木構造データ6のデータ形式の一例を表1に示す。
【表1】
【0041】
(ノードデータ管理手段7のデータ形式)
ノードデータ管理手段7で管理されるノードデータ8のデータ形式の一例を、表2に示す。
【表2】
【0042】
(学習)
図4は、本発明の木構造4の初期化のフロー図である。
図4に示すように、ステップST1において、木構造4の初期化を行い、次のステップST2において、データの学習を行う。
【0043】
図5は、木構造4の初期化の具体的なフロー図である。
ステップST11において、木構造管理手段5の状態データと状態遷移速度データの次元数を初期化する。
ステップST12において、木構造管理手段5が扱う状態と状態遷移ベクトルの要素毎の最大値と最小値を初期化する。
ステップST13において、木構造管理手段5が扱う状態空間の各軸の分割数を初期化する。
ステップST14において、根11のノード(根ノードとも呼ぶ)を初期化し、そのアドレスを根ノード11のアドレスに登録する。
上記ステップにより、木構造管理手段5の初期化が終了する。
【0044】
図6は、学習のフロー図である。
ステップST21において、状態とその状態における状態遷移ベクトルとを、木構造4に与える。具体的には、状態データ取得手段3により対象システム2の状態及び状態遷移速度データを取得する。
【0045】
ステップST22において、根ノード11に移動する。
具体的には、木構造管理手段5により、木構造データ6内の根ノード11のアドレスを特定し、ノードデータ管理手段7を用いて根ノード11の情報を読み込む。処理中ノードを根ノード11とする。
【0046】
ステップST23において、ノード12に状態遷移速度ベクトルを加算し保持させる。具体的には、処理中のノード12の状態遷移速度ベクトル数に1を加え、状態遷移速度ベクトル数の総加算値に、ステップST21で取得した状態遷移速度データを加える。
【0047】
ステップST24において、ノード12が、N階層n次元のノードであるか否かを判定し、N階層n次元のノード12である場合(Yes)には、ステップST25において学習を終了する。つまり、処理中のノード12が対応する主階層と副階層が、木構造データ6に登録された最大値(N階層n次元)に達していれば、学習の処理を終了する。
【0048】
ステップST24において、ノード12が、N階層n次元のノードでない場合(No)には、ステップST26に進む。ステップST26では、現在参照しているノード12から、入力した状態に対応する状態空間のノード12を1副層分探索する。
具体的には、処理中ノードの葉側ノード12に、ステップST21で取得した状態データを内包する分割領域を持つものがあるか否かを調べる。
【0049】
ステップST27において、対応するノード12が既にあるか否かを判定する。対応するノード12が既にある場合(Yes)には、ステップST29に進み、探索されたノード12に移動し、ステップST23に戻る。具体的には、対応するノード12が既にある場合(Yes)には、その葉側ノードを処理中ノードとする。
【0050】
ステップST27において、対応するノード12がない場合(No)には、ステップST28に進む。ステップST28では、対応する状態空間のノード12を作成し、ステップST23に進む。
【0051】
具体的には、対応するノード12がない場合(No)には、ステップST21で取得した状態データを内包する分割領域を持つノード12を作成し、それを処理中ノードとする。
ステップST28において、作成したノード12に移動し、ステップST23に戻る。
【0052】
本発明の情報処理装置1(20)によれば、木構造4の学習は状態データとその状態における遷移ベクトルを用いて行われる。状態及び/又は状態遷移速度の関係性が、木構造データ6及びノードデータ8の中で関数により近似されることで学習される。例えば、木構造4では、力学系の状態とその状態における状態遷移速度ベクトルの対応を学習させることで力学系の関数近似を行うことができる。
【0053】
上記ステップST21〜ステップST24において、木構造4に学習データを入れると根11のノードから順に状態データに対応したノード12を末端ノード12(N階層n次元目のノード)まで順にノード12を辿りながら作成する(
図7参照)。
【0054】
ステップST25〜ステップST26において、既に状態データに対応したノード12が存在する場合(Yes)には、既存のノード12を辿り、状態データに対応したノード12の作成を末端ノードまで行う。つまり、ステップST27、ステップST28、ステップST23〜ステップST25の順に学習が行われる。
【0055】
ステップST24〜ステップST26において、状態データに対応したノード12が存在しない場合(No)には、辿るノード12が存在しない時点から状態データに対応したノード12の作成を末端ノード12まで行う。つまり、ステップST27、ステップST29、ステップST28、ステップST23〜ステップST25の順に学習が行われる。
【0056】
学習においては、状態とその際の状態遷移速度ベクトルを木構造4に入力する。学習したい状態データに対応したノード12の作成と検索(
図7参照)を行う際に、辿った全ノード12に各状態(データ)における状態遷移ベクトルを、加算により保持させることにより木構造4における学習が行われる。
【0057】
本発明の情報処理装置1(20)によれば、上記の学習により対象システム2の状態データと状態遷移速度ベクトルが木構造4に入力される。木構造4においては、根11から入力に対応した葉までのノード12が逐次探索されることにより作成される。
【0058】
探索して作成された全ノード12に状態遷移速度ベクトルの相加平均を保持させることにより、根11寄りの荒い状態空間から葉寄りの細かい状態空間までのノード12に対し、状態遷移速度ベクトルを対応づけることができる。
【0059】
ノード12に対応づけられた状態及び/又は状態遷移速度の範囲について、木構造4上の深さが浅い位置に対応づけられたノード12の範囲に木構造4上の深さが深い位置に対応づけられたノード12の範囲が内包されてもよい。
【0060】
学習の際には、入力された状態及び/又は状態遷移速度を上記の範囲と照合し、入力された状態及び/又は状態遷移速度が上記範囲と一致するノード12について、関数を更新することができる。
【0061】
本発明の情報処理装置1(20)によれば、対象システム2の木構造4の学習は相加平均により実行できるので、オンラインで情報処理装置1,20の処理を行うことができる。
【0062】
本発明の情報処理装置1又は20によれば、対象システム2の木構造4のノード12の作成、つまり、状態空間分割は、データ毎に逐次行うために、新規に得られた状態入力に対して対応する葉がどの階層にあるのかは入力毎に異なる。
【0063】
図7(a)〜(e)は、木構造4が2層2次元2分割である場合の学習を模式的に示す図である。図中の黒丸印(●)は学習する状態データ、矢印はその状態データにおける遷移ベクトルを表しており、上段が状態空間を、下段が木構造4を示している。葉ノードは、最外側のノードである。
図7(a)〜(e)に示すように、図中の8つのノード12(全ノード)は上述した通り、状態遷移ベクトルを保持しており、根11のノードでは2つの状態データの状態遷移ベクトルの加算値を保持することになる。
【0064】
(予測)
次に、本発明の情報処理装置1又は20における予測について説明する。
予測とは、上記の学習により状態及び/又は状態遷移速度を予測することである。
図8は、予測の基本フロー図である。
ステップST31において、状態データ取得手段3により対象システム2の状態及び状態遷移速度データを取得する。
ステップST32において、状態遷移速度の予測をする。
ステップST33において、状態遷移速度の予測値9(
図1参照)を出力する。
【0065】
図9は、予測の具体的なフロー図である。
予測を行う際には、状態及び状態遷移速度に関するデータが、木構造管理手段5及びノードデータ管理手段7に入力され、状態及び/又は状態遷移速度が木構造データ6及びノードデータ8により学習される。この学習により状態遷移速度が予測され、状態遷移速度の予測値9が出力される。予測を行う際には、対象システム2の状態の入力を受け取り、状態遷移速度を予測してもよい。
図9に示すように、ステップST41において、状態遷移ベクトルを得たい状態を、木構造4に与える。具体的には、ステップST41では、状態データを取得する。
【0066】
ステップST42において、根11のノードに移動する。
具体的には、木構造管理手段5により、木構造データ6内の根11のノードのアドレスを特定し、ノードデータ管理手段7を用いて根ノード11の情報を読み込む。処理中のノードを根ノード11とする。
【0067】
ステップST43において、葉ノードであるか否かを判定し、葉ノードである場合(Yes)には、ステップST46に進む。ステップST46において、現在のノード12が保持する遷移ベクトルの相加平均を返す。具体的には、ノードデータ管理手段7を用いて処理中ノード12のノードデータ8から、葉ノードであるか否かの判定値を特定し、それが葉ノードである場合(Yes)には、ステップST46へ移動する。
【0068】
ステップST43において、葉ノードでない(No)には、ステップST44に進む。
ステップST44において、探索する状態に対応するノード12を、1副階層分探索して、ステップST45に進む。
【0069】
ステップST45において、対応するノード12であるか否かを判定し、対応するノード12がある場合(Yes)には、その葉側ノードを処理中ノードとしステップST47に進む。ステップST47において、対応ノードに移動し、ステップST43に戻る。
【0070】
具体的には、処理中ノードの葉側ノードに、ステップST41で取得した状態データを内包する分割領域を持つものがあるか否かを調べる。有れば、その葉側ノードを処理中のノード12とし、ステップST47に進む。
【0071】
ステップST45において、対応するノード12がない場合(No)には、ステップST46に進む。ステップST46において、現在のノード12が保持する遷移ベクトルの相加平均を返す。
【0072】
具体的には、処理中のノード12の葉側ノードに、ステップST41で取得した状態データを内包する分割領域を持つものがあるか否かを調べる。無ければステップST46へ移動する。
【0073】
具体的には、ステップST46では、以下の処理を行う。
ノードデータ管理手段7を用いて処理中のノード12のノードデータ8から、状態遷移速度ベクトル数と、状態遷移速度ベクトルの総加算値を読み込む。
次に、状態遷移速度ベクトルの総加算値を状態遷移速度ベクトル数で割ることにより、状態遷移速度の予測値9を作成して、予測値9を出力する。
【0074】
図10は、2主階層2副階層2分割における状態空間の分割を示し、(a)は第1主階層、(b)は第2主階層を示す図である。図の横軸は、副階層第1軸(状態要素1)、図の縦軸は、副階層第2軸(状態要素2)である。主階層、副階層、軸は、それぞれN階層n次元d分木における階層、次元、分木に対応している。
図10(a)に示すように、状態空間は木構造4の第1主階層に相当するノード12の情報により4分割される。木構造4の各ノード12は、これらの各領域と対応することになる。
【0075】
図10(b)に示すように、また、第2主階層に相当するノード12の情報が有る場合、各領域はさらに分割され、学習データが3対得られており、第2主階層の各格子に1つずつ割り当てられている。
ここで、A点に相当する状態が入力され、これに対する状態遷移速度ベクトルの予測を行う場合、木構造4は、
図10(b)の網掛けの領域に相当するノード12が記憶した状態遷移速度ベクトルの平均を用いて予測を行う。
【0076】
一方で、B点に相当する状態が入力された場合、第2主階層には対応する領域に学習データが無い。そこで、第1主階層の網掛けの領域に相当するノード12が記憶した状態遷移速度ベクトルの平均を用いて予測を行う。
【0077】
このとき,A点の状態に対する状態遷移速度ベクトルの予測には、比較的近い状態の学習データ(A点の下のデータ)が用いられたことになる。この状態を「狭い汎化」と呼ぶ。この場合、学習データとA点のデータが近いため、精度の良い予測が行える。
B点については近い学習データが無いが、第1主階層で同じ格子にある学習データ群の平均を用いることで、大凡、つまり粗い予測を得ることができる。この状態を「広い汎化」と呼ぶ。このように、データが得られていない状態に対し、学習データが得られている状態つまり、状態遷移ベクトルの対から、状態遷移ベクトルの予測を行うことを汎化と言う。
【0078】
学習済みの木構造4に状態データを入力すると、根11となるノードから順に状態に対応したノード12を辿り、辿るノード12が無くなった時点でのノード12が保持する状態遷移ベクトルの相加平均を用いることでその状態における系の挙動を予測できる。この予測は末端に近いノードほど対応している状態空間が狭いため、より詳細にその状態における挙動を予測でき、根11に近いノード12では逆に大凡(粗い)予測となる。
【0079】
図11(a)〜(d)は、予測を模式的に示す図であり、(a)は根11、(b)は第1階層、(c)は第2階層、(d)は第3階層である。図中の矢印は(→)は学習した状態遷移ベクトルの相加平均を表す。
図11(a)〜(d)の順に階層数が深くなっており、階層数が深くなるほど学習データ(状態遷移ベクトル)が存在しない部分が存在する。データがない領域(図中の網掛け領域)では1階層上の領域が保持する状態遷移ベクトルを用いて予測することを示している。
【0080】
力学系の挙動を予測する際には、対象システム2の挙動をより詳細に予測するためには、
図11(d)のように、なるべく深い階層のノード12が保持している状態遷移速度ベクトルの平均値を用いる。これにより、学習データの粗密に応じて汎化の度合いを調節した予測を行うことができる。
【0081】
また、データにノイズがある場合には、深い階層の状態遷移速度ベクトルを用いる代わりに学習数の多い浅い階層のもの(
図11(b)参照)を用いることでノイズの除去を伴った予測ができる。
【0082】
本発明の情報処理装置1又は20及びその制御方法によれば、実測した対象システム2の状態と、その状態において実測した状態遷移速度の対のデータを、対象システム2の状態を入力として、状態遷移速度を出力として、アルゴリズムを用いて関数近似することができる。これにより、従来の単一連続関数による手法では、困難であった情報処理装置1又は20、つまり、シミュレータの自動化を図ることができる。
【0083】
関数をノードデータ8と対応づけてメモリに記録してもよい。予測の実行時には、状態及び/又は状態遷移速度の入力に応じて木構造4に登録されたノード12を呼び出し、該ノード12に対応付けられた関数を呼び出し、該関数に応じて予測値9を出力することができる。
【0084】
ノード12と対応づけられた関数を、ノード12が登録された木構造4上の深さに応じて対象システム2の異なる状態及び/又は状態遷移速度の範囲と対応づけてメモリに記録してもよい。ノード12に対応づけられた状態及び/又は状態遷移速度の範囲について、木構造4上の深さが浅い位置に対応づけられたノードの範囲に木構造4上の深さが深い位置に対応づけられたノード12の範囲が内包されてもよい。
【0085】
本発明の情報処理装置1又は20及びその制御方法によれば、関数近似において、相加平均など逐次統計処理が可能な基底を用いることができる。基底とは、互いに線型独立なベクトルの集合体である。例えば二次元座標の場合に、X軸方向のベクトルやY軸方向のベクトルが基底の元となる。
【0086】
本発明の情報処理装置1(20)及びその制御方法によれば、関数をノードデータ8と対応づけて記録することができる。予測の実行時には、状態及び/又は状態遷移速度の入力に応じて木構造4に登録されたノード12を呼出し、このノード12に対応づけられた関数を呼び出し、関数に応じて予測値9を出力することができる。これにより、単一連続関数による手法では困難であった、関数中の定数項の変更や情報処理装置の逐次的な更新を、逐次的に改善することが可能となる。
【0087】
本発明の情報処理装置1又は20及びその制御方法によれば、基底を木構造4のノード12と対応づけて記録し、情報処理装置1又は20の実行時には、木構造4を用いて基底を選択することができる。これにより、従来のニューラルネットワークやデータベース等による手法では困難であった、計算速度の改善や使用するメモリ容量の削減ができ、種々のシミュレーションが容易にかつ低コストで実行可能な付加価値の高い情報処理装置1又は20を提供することができる。
【0088】
本発明の情報処理装置1(20)及びその制御方法によれば、木構造4と対応づけられた基底を、木構造4の深さに応じて実測した対象システム2の状態と対応づけて記録し、使用環境に応じて基底を使用する木構造4の深さを調整することが可能となる。これにより、従来の単一連続関数による手法、ニューラルネットワークやデータベース等による手法では困難であった、メモリ容量と計算速度や精度のバランスを速やかに調整することが可能となる。
【0089】
(単振動のシミュレーション例)
振り子の挙動である単振動の式よりランダムにデータを求め、6階層2次元3分割の力学系の木構造4で学習させた。単振動は単純振り子の動作を表したものであり、位置と速度の次元空間においてその挙動は円を描くものとなる。
振り子の挙動を学習済みの木構造4に初期状態(x, dx/dt)=(0.1、0)を与えて推定した状態遷移速度ベクトルからの加速度を求め、加速度の積分により速度と、速度の積分により位置を求めた。
【0090】
なお、シミュレーション上のステップ幅を、0.01sとした。学習データ数、予測数、状態空間の幅、学習器の階層数、状態空間の次元数、状態空間の分割数を、表3に纏めて示す。
【表3】
【0091】
(データベースを用いたプログラムの結果)
プログラム情報を表4に示す。
【表4】
【0093】
図12は、単振動の学習、予測の結果を示し、(a)は100回の学習とそれに基づく予測、(b)は5000回の学習とそれに基づく予測を示す図である。
図12の横軸は位置xであり、縦軸は速度である。
図12(a)から明らかなように、100回の学習では学習数が少ないために、木構造4の上層データを用いるため予測が正確ではないことが分かる。
一方、
図12(b)から明らかなように、5000回の学習では、学習数の増加により単振動の動作予測をより正確に行うことができていることが分かる。これにより、
図12の結果から学習数の増加により単振動の挙動を関数近似できていると言える。
【0094】
(情報処理装置の力学系学習への適用)
力学系学習による自動車や飛行機、船舶の制御への適用について説明する。
自動車や飛行機、船舶などの力学系に従ったシステムに働く加速度aは、無動力無外乱加速度a
0、制御入力による加速度a
t、波の影響を含めた外乱による加速度a
w の三つに分類でき、船舶の加速度aは、下記(1)式で表せる。また、(1)式より外乱による加速度a
wを求めるための(2)式が得られる。
【0095】
a=a
0+a
t+a
w (1)
a
w=a-a
0-a
t (2)
ここで、aは船舶の加速度、a
0は無波無動力時加速度、a
tは制御入力による加速度、a
wは波の影響を含めた外乱による加速度である。
【0096】
力学系に従ったシステムの制御では、システムの状態に応じたこれらの加速度を正確に知ることが重要となる。
(1)式より、システムの加速度a、制御入力による加速度a
t、無動力無外乱加速度a
0を求められれば外乱による加速度a
w推定できることが分かる。
(2)式より、船舶の加速度a、制御入力による加速度a
t、無波無動力時加速度a
0を求められれば外乱による加速度a
wが推定できることが分かる。
【0097】
aは実際の加速度を測定することにより求まり、a
tは動力機(スラスター)への指令値とaの計測値の対応から容易にモデル化することができるため、残りのa
0を求めることが重要となるが、多くの力学系システムではa
0を数式で表現することが困難である。
力学系システムが船舶の場合、a
0は水面から船体に働く抗力による加速度を含み、船体形状によっても異なるため、その力学的挙動を数式で表現することは困難である。
【0098】
本発明では、情報処理装置1(20)を用いて、力学系木構造4を構成し、上記した関数近似により船舶等の制御を行うことができる。つまり、力学系の木構造4により、関数近似でa
0を予測し、(2)式から外乱による加速度a
wの推定を行うことができる。この外乱による加速度a
wの予測から、船舶の推進手段であるスラスターの制御を行うことにより、船舶の自動制御による運転を行うことができる。船舶の自動制御としては、例えば、アワビとウニ漁に使用される小型船舶を、一定の位置に留まるような水上ロボットの制御が挙げられる。
【0099】
対象システム2が力学系システムである場合には、木構造管理手段5及びノードデータ管理手段7を用いて、力学系システムの軌道を学習し、予測することができる。この際、情報処理装置1(20)は、力学系システムに対する制御入力を計算する制御入力計算手段を備えて構成してもよい。制御入力計算手段により計算した制御入力は、例えば、小型船舶を一定の位置に留まるような水上ロボットの推進装置(スラスター)の制御に使用することができる。
【0100】
図13は、力学系の木構造4を用いた小型船舶の外乱推定法を示すブロック図である。
図13に示すように、情報処理装置においては、力学系の木構造4により、波の影響を考慮しない目標加速度a
1と、波の影響による加速度の予測値a
2が、加算器に入力され、目標加速度が、スラスター指令値変換手段により、スラスター指令値に変換されて、小型船舶のスラスター指令値を得る。
目標加速度a
*は、下記(3)式で与えられる。
a
*=a
1−a
2 (3)
【0101】
目標加速度a
* は、波の影響を考慮しない目標加速度a
1、力学系の木構造4に小型船舶の位置と速度、角度、角加速度(x, y, θ, dx/dt, dy/dt, dθ/dt)を入力することにより計算される。ここで、加速度の予測をするために、PID制御や線形予測ベース均等状態サンプリング(Linear Prediction based Uniform State Sampling、LPUSSとも呼ぶ)を使用してもよい。
【0102】
スラスター指令値変換手段においては、目標加速度a
*は、情報処理装置中のデータベースAによりスラスター指令値に変換される。データベースAは、RAMに記憶されている。
【0103】
図14は、小型船舶の自動運転を行う情報処理装置40のブロック図である。
図14に示すように、情報処理装置40は、図示しない力学系の木構造4と、位置及び速度取得手段41と、角速度検出器42と、第1の微分器43と、第2の微分器44と、加速度予測器45と、減算器46と、
図13で説明したスラスター指令値変換手段48と、スラスター指令値を用いて加速度に変換するデータベース50等を含んで構成されている。
【0104】
ここで、力学系の木構造4の対象システム2は、図示しない船体である。船体の位置、速度、加速度を取得する位置及び速度取得手段41と、角速度検出器42と、第1の微分器43と、第2の微分器44等は電子回路からなる。力学系の木構造4、木構造管理手段5及びノードデータ管理手段7は、例えばPCに構成されたプログラムである。木構造データ6、ノードデータ8、データベースA及びデータベースBはPC上に備えたRAMに記憶された情報である。
【0105】
位置及び速度取得手段41は、例えば船舶の上部に設置された水底の画像を取得するカメラ等の画像取得手段である。画像取得手段により取得された画像は、画像処理により位置情報及び速度情報に変換される。位置情報及び速度情報は、第2の微分器44により加速度に変換される
【0106】
角速度検出器42は、例えば船舶に設置したジャイロスコープであり、角度と角速度が取得される。角速度は、第1の微分器43により角加速度に変換される。
【0107】
情報処理装置40の動作を説明する。
画像取得手段41により取得された画像を処理して得られた加速度及びジャイロスコープ42により取得された角速度を処理して得られた角加速度、つまり、a=( dx/ dt
2, dy/dt
2, dθ/dt
2)が、減算器46に入力される。
力学系の木構造4で予測された無波無動力時加速度a
3が、減算器46に入力される。
スラスター入力指令値が、データベースBを介してスラスターによる加速度a
Tに変換され、減算器46に入力される。
【0108】
上記減算器46に入力される加速度aと、無波無動力時加速度の予測値a
3とスラスターによる加速度a
Tにより、波の影響による加速度a
wの予測値が(4)式により得られる。
a
w=a−a
3−a
T (4)
【0109】
本発明の情報処理装置40によれば、(4)式の外乱による加速度a
wを予測できるので、船舶の推進装置であるスラスターの制御を行うことにより、船舶の自動制御による運転を行うことができる。
【0110】
本発明の情報処理装置40によれば、船体挙動に関する高速シミュレータを構成することができる。この高速シミュレータの挙動と実際の船体挙動を比較することで、実際の船体に働く外乱の値を推定することができる。
同様に、気球、ロボット、自動車といった力学系によって動作が記述できるシステム全般に対して高速シミュレータを構成し、システムに働く外乱を推定することができる。力学系の複雑さに応じて、測定データの量を増やす必要があり、船体挙動のシミュレータを構成する際には、約2時間分の実機データを測定した。
【0111】
(外乱による加速度の予測)
実験機を用いて無波無動力時加速度を測定し力学系の木構造4に学習させ、学習済みの力学系の木構造4を用いてa
0の推定を行う。また、木構造4より推定したa
0を適用した(2)式から外乱による加速度の推定を行う。
【0112】
図15は、実施例に用いた波の影響がほぼない水槽の外観図であり、
図16は、
図14の水槽に浮かべた実験機60の外観図であり、
図17は、実験機60のブロック図である。
図17に示すように、実験機60は、
図14に示す構成要素を備えて構成されており、スラスター62と、水底の画像を取得するカメラ等のセンサー41と、ジャイロスコープ42と第1の微分器43と第2の微分器44及び減算器46等からなる電子回路と、マイコン64等を備えて構成されている。スラスター62は、モータとモータに接続されるスクリュー等から構成されている。マイコン64と情報処理装置40とは、図示しない通信線により接続されている。このスラスター62を動かすことで様々な速度状態を作り、実験機60の水槽上の位置データを収集した。位置データは、実験機60の上に配設したモーションキャプチャ(株式会社ノビテック製、VENUS3D)を用いて収集した。
【0113】
図18は、実験機60の平面図である。
図18に示すように、実験機60の中心を、黒丸(●)で示し、実験機60の向きは矢印(↑)で示す方向である。実験機60の5点のマーカー位置(白丸印(○))を、モーションキャプチャを用いて33Hzで測定した。中心(x,y)の位置データを得、位置データを時間で微分して速度を求め、速度を時間で微分して加速度を求めた。
【0114】
図19は、実験機60の向きをベクトルで示した図である。
図19に示すように、実験機60の向きは、実験機の初期位置を0度とした角度を、船体中心軸ベクトルの内積と外積から求めた上で、角速度、角加速度も求めた。
【0115】
力学系の木構造4にスラスター62の停止時の実験機60の各速度状態 (v
x、v
y、v
θ)における無動力無外乱加速度である加速度 a
0= (a
0x、a
0y、a
0θ) を学習させ、 a
0を推定した結果と実際の動作を比較する。またスラスター62による加速度を外乱として推定した(a
t=a−a
0,a
w=0)。
【0116】
具体的には、12階層3次元3分割の力学系の木構造4に、無動力無外乱の速度状態(v
x、v
y、v
θ) とその際の加速度 (a
0x、a
0y、a
0θ) の対応を学習させ、次に、学習済みの木構造4からa
0を推定した。
さらに、推定した a
0を適用した(1)式からスラスター62による加速度を外乱として推定した(a
t=a-a
0, a
w=0)。
【0117】
なお、力学系の木構造4の学習と予測は以下のPCを用いて行った。
CPU:Core i5-3340M(2.7GHz×2)
オペレーティングシステム(OS):Windows(登録商標) 8(64bit)
ランダムアクセスメモリ(RAM):4GB
【0118】
力学系の木構造4の学習と予測の各諸元を表6〜8に纏めて示す。
【表6】
【0121】
図20は、木構造4に計測した速度状態の一つを与え、推定した無波無動力時加速度を積分して実験機60の速度及び角速度を求めた結果であり、(a)は水槽上のx軸速度、(b)は水槽上のy軸速度、(c)は水槽上の角速度を示す図である。図の横軸は時間(s(秒))、(a)及び(b)の縦軸は速度(m/s)であり、(c)の縦軸は角速度( rad/s)である。図の実線は、実験機60の速度、点線は実験機60の速度又は角速度の予測を示している。
図20から明らかなように、約8秒間迄は、実機の動作と予測とが一致していることが分かる。実際の制御においては学習データ数を33Hzからさらに1Hz毎の制御をすることにより、十分な予測ができると推定できる。
【0122】
図21は、木構造4で推定した無動力無外乱加速度a
0 を用いて、x軸方向外乱加速度a
tを推定した結果であり、(a)は水槽上のx軸速度の予測結果、(b)は水槽上のx軸の加速度の予測結果を示す図である。図の横軸は時間(s(秒))、(a)の縦軸は速度(m/s)であり、(b)の縦軸は加速度(m/s
2)である。図の実線は、実験機60の速度又は加速度、点線は実験機60の速度又は加速度の予測を示している。図中において、矢印で示す時間に外乱a
tが付加されている。
図21(b)から明らかなように、外乱による水槽上のx軸の加速度a
tが推定できていることが分かる。
図21では外乱付加時に、x軸における外乱atが推定できており、水槽上のx軸、回転の加速度(角加速度)においても同様の結果を得られていることから、外乱の推定が可能であることが分かった。
【0123】
実験により船体の力学系の挙動を学習させることで制御するのに十分な無波無動力時加速度a
0を推定することができ、推定したa
0を(2)式に適用することで外乱による加速度を推定できる精度が得られることが分かった。
【0124】
さらに、1秒間に約570万ステップの予測を行えることから、本発明の情報処理装置40は、高速なシミュレータであることが判明した。これにより、本発明の情報処理装置40は、力学系の木構造4の構造、学習法から汎化、ノイズ除去、そしてオンラインでの学習を行うこともできる。
【0125】
本発明は、上記実施例に限定されることなく、特許請求の範囲に記載した発明の範囲内で種々の変形が可能であり、それらも本発明の範囲内に含まれることはいうまでもない。