(57)【特許請求の範囲】
【請求項１】
制御対象に対する制御目標値と制御量推定値との偏差を入力として、前記制御対象の動作を模擬して前記制御量推定値を更新する制御系モデルの演算を実行するモデル演算部と、
前記制御目標値と前記モデル演算部が算出した制御量推定値との偏差を算出する制御偏差算出部と、
前記制御偏差算出部が算出した偏差に基づいて前記制御対象に対する操作量を算出する操作量算出部と、
を備える制御装置。
【請求項２】
前記モデル演算部は、前記制御目標値と前記制御量推定値との偏差に対して無駄時間とゲインと積分要素と一次遅れ要素とを適用して前記制御量推定値を算出する、
請求項１に記載の制御装置。
【請求項３】
前記制御量推定値を量子化する量子化処理部と、
センサが前記制御対象の制御量を量子化して検出した制御量測定値と量子化された制御量推定値との偏差を算出する量子化データ偏差算出部と、
前記制御量測定値と量子化された制御量推定値との偏差を前記モデル演算部による制御量推定値の算出にフィードバックして当該偏差を低減させる調整部と、
をさらに備える請求項１に記載の制御装置。
【請求項４】
前記調整部は、前記制御偏差算出部が算出した偏差に対して前記制御量測定値と量子化された制御量推定値との偏差に応じた補正を行い、
前記モデル演算部は、前記調整部が補正を行った前記偏差を前記制御系モデルに入力して制御量推定値を算出する、
請求項３に記載の制御装置。
【請求項５】
請求項１から４のいずれか一項に記載の制御装置を備える水中航走体。
【請求項６】
制御対象に対する制御目標値と制御量推定値との偏差を入力として、前記制御対象の動作を模擬して前記制御量推定値を更新する制御系モデルの演算を実行するモデル演算ステップと、
前記制御目標値と前記モデル演算ステップで算出した制御量推定値との偏差を算出する制御偏差算出ステップと、
前記制御偏差算出ステップで算出した偏差に基づいて前記制御対象に対する操作量を算出する操作量算出ステップと、
を含む制御方法。
【請求項７】
コンピュータに、
制御対象に対する制御目標値と制御量推定値との偏差を入力として、前記制御対象の動作を模擬して前記制御量推定値を更新する制御系モデルの演算を実行するモデル演算ステップと、
前記制御目標値と前記モデル演算ステップで算出した制御量推定値との偏差を算出する制御偏差算出ステップと、
前記制御偏差算出ステップで算出した偏差に基づいて前記制御対象に対する操作量を算出する操作量算出ステップと、
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御装置、水中航走体、制御方法およびプログラムに関する。
【背景技術】
【０００２】
水中航走体など制御対象のセンサが制御量を測定し送信する際、センサの測定精度、デジタル化処理、又は、通信容量等の影響により、制御量測定値が量子化される（丸められる）場合がある。この量子化された制御量測定値を用いてフィードバック制御を行うと、量子化雑音（丸め誤差）に起因して操作量が振動することがある。この操作量の振動によって制御対象が動力のエネルギーを無駄に消費する可能性がある。
【０００３】
そこで、特許文献１では、センサによる制御量測定値の量子化に起因する操作量の振動を回避するための技術が開示されている。
特許文献１に記載の制御装置では、制御対象に適用する操作量を制御対象モデルにも適用して制御量推定値を算出し、制御目標値と制御量推定値との偏差を制御偏差として用いて操作量を算出する。これにより、特許文献１に記載の制御装置では、センサによる制御量測定値を用いずに操作量を算出することができ、センサによる制御量測定値の量子化に起因する操作量の振動を回避することができる。
また、特許文献１に記載の制御装置は、制御量推定値を量子化し、量子化された制御量推定値と量子化された制御量測定値との偏差を算出し、この偏差を制御対象モデルにフィードバックして制御量推定値の精度を向上させる。これにより、特許文献１に記載の制御装置では、制御の精度を高めることができる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１５−１５３２３２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
水中航走体の航行速度が変化すると、機体に作用する流体抵抗力が変化して水中航走体が運動する際の感度特性が変化する。この感度特性の変化に対してロバストな制御器を設計するためには、制御器のパラメータを水中航走体の航行速度に応じた適切な値に調整する必要がある。特許文献１に記載の技術で、この制御対象モデル及び制御器（以下制御系モデルと記す）のパラメータ調整を不要にすることができれば、制御装置の計算負荷を低減させることができる。
【０００６】
本発明は、センサによる制御量測定値の量子化に起因する操作量の振動を回避することができ、かつ、水中航走体の航行速度が変化しても所定の条件下では制御系モデルのパラメータ調整を不要とすることができる制御装置、水中航走体、制御方法及びプログラムを提供する。
【課題を解決するための手段】
【０００７】
本発明の第１の態様によれば、制御装置は、制御対象に対する制御目標値と制御量推定値との偏差を入力として、前記制御対象の動作を模擬して前記制御量推定値を更新する制御系モデルの演算を実行するモデル演算部と、前記制御目標値と前記モデル演算部が算出した制御量推定値との偏差を算出する制御偏差算出部と、前記制御偏差算出部が算出した偏差に基づいて前記制御対象に対する操作量を算出する操作量算出部と、備える。
【０００８】
前記モデル演算部は、前記制御目標値と前記制御量推定値との偏差に対して無駄時間とゲインと積分要素と一次遅れ要素とを適用して前記制御量推定値を算出するようにしてもよい。
【０００９】
前記制御量推定値を量子化する量子化処理部と、センサが前記制御対象の制御量を量子化して検出した制御量測定値と量子化された制御量推定値との偏差を算出する量子化データ偏差算出部と、前記制御量測定値と量子化された制御量推定値との偏差を前記モデル演算部による制御量推定値の算出にフィードバックして当該偏差を低減させる調整部と、をさらに備えるようにしてもよい。
【００１０】
前記調整部は、前記制御偏差算出部が算出した偏差に対して前記制御量測定値と量子化された制御量推定値との偏差に応じた補正を行い、前記モデル演算部は、前記調整部が補正を行った前記偏差を前記制御系モデルに入力して制御量推定値を算出するようにしてもよい。
【００１１】
本発明の第２の態様によれば、水中航走体は、上述したいずれかの制御装置を備える。
【００１２】
本発明の第３の態様によれば、制御方法は、制御対象に対する制御目標値と制御量推定値との偏差を入力として、前記制御対象の動作を模擬して前記制御量推定値を更新する制御系モデルの演算を実行するモデル演算ステップと、前記制御目標値と前記モデル演算ステップで算出した制御量推定値との偏差を算出する制御偏差算出ステップと、前記制御偏差算出ステップで算出した偏差に基づいて前記制御対象に対する操作量を算出する操作量算出ステップと、を含む。
【００１３】
本発明の第４の態様によれば、プログラムは、コンピュータに、制御対象に対する制御目標値と制御量推定値との偏差を入力として、前記制御対象の動作を模擬して前記制御量推定値を更新する制御系モデルの演算を実行するモデル演算ステップと、前記制御目標値と前記モデル演算ステップで算出した制御量推定値との偏差を算出する制御偏差算出ステップと、前記制御偏差算出ステップで算出した偏差に基づいて前記制御対象に対する操作量を算出する操作量算出ステップと、を実行させるためのプログラムである。
【発明の効果】
【００１４】
上記した制御装置、水中航走体、制御方法およびプログラムによれば、センサによる制御量測定値の量子化に起因する操作量の振動を回避することができ、かつ、水中航走体の航行速度が変化しても所定の条件下では制御系モデルのパラメータ調整を不要とすることができる。
【図面の簡単な説明】
【００１５】
【図１】本発明の実施形態に係る水中航走体の機能構成を示す概略ブロック図である。
【図２】同実施形態に係る制御装置が行う制御の例を示すブロック線図である。
【図３】量子化された制御量測定値を用いて制御偏差を算出した場合のシミュレーション結果を示すグラフである。
【図４】図３のグラフの一部を拡大したグラフである。
【図５】制御量推定値を用いて制御偏差を算出した場合のシミュレーション結果を示すグラフである。
【図６】図５のグラフの一部を拡大したグラフである。
【発明を実施するための形態】
【００１６】
以下、本発明の実施形態を説明するが、以下の実施形態は請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
図１は、本発明の実施形態に係る水中航走体の機能構成を示す概略ブロック図である。同図に示す水中航走体１００は、水中航走体本体１３０と、水中航走体本体１３０に設けられたアクチュエータ１２０、センサ１４０、及び、制御装置２００とを備える。制御装置２００は、通信部２１０と、記憶部２８０と、制御部２９０とを備える。記憶部２８０は、モデル記憶部２８１を備える。制御部２９０は、モデル演算部２９１と、量子化処理部２９２と、量子化データ偏差算出部２９３と、調整部２９４と、制御偏差算出部２９５と、操作量算出部２９６とを備える。
【００１７】
水中航走体１００は、制御指令に従って水中を航行する機械である。水中航走体１００は、遠隔操作無人探査機（Remotely Operated Vehicle；ＲＯＶ）などの無人機器であってもよいし、潜水艇などの乗物であってもよい。
アクチュエータ１２０は、例えばスラスタ（Thruster）などの推進装置であり、推力を発生させて水中航走体１００を動作させる。
センサ１４０は、水中航走体１００に対する制御における制御量を測定する。例えば、水中航走体１００の深度制御では、センサ１４０は、海面からの深度、又は、海底からの高度を測定する。
【００１８】
センサ１４０の測定精度、デジタル化処理、又は、通信容量等の影響により、制御量測定値が量子化される（丸められる）場合がある。例えば、水中航走体１００が深海へ潜航する場合、センサ１４０の深度測定レンジが広くなり、分解能が粗くなる場合がある。
なお、以下では、アクチュエータ１２０と、水中航走体本体１３０と、センサ１４０とを総称して機械系１１０と表記する。
【００１９】
制御装置２００は、水中航走体１００の動作を制御する。制御装置２００は、例えば汎用コンピュータ又はプログラマブルロジックコントローラ（Programmable Logic Controller；ＰＬＣ）などのコンピュータを用いて構成される。専用のハードウェアを用いて構成されるなど、コンピュータ以外の装置を用いて構成されていてもよい。
なお、水中航走体１００が遠隔操作無人探査機である場合に制御装置２００が海上の指令船に設けられるなど、制御装置２００が水中航走体本体１３０の外部に設けられていてもよい。
【００２０】
通信部２１０は、他の機器と通信を行う。特に、通信部２１０はアクチュエータ１２０に対して制御信号を送信する。この制御信号ではアクチュエータ１２０に指示する操作量が示され、アクチュエータ１２０は、この操作量に従って推力を発生させる。また、通信部２１０は、センサ１４０から制御量測定値を受信する。
【００２１】
記憶部２８０は、制御装置２００が備える記憶デバイスを用いて構成され、各種データを記憶する。
モデル記憶部２８１は、水中航走体１００の動作を模擬する制御系モデルを記憶する。この制御系モデルは、制御対象である水中航走体１００に対する制御目標値と制御量との偏差（制御偏差）を入力として制御量推定値を出力とする。制御偏差を入力とする制御系モデルを用いることで、後述するように、水中航走体１００の航行速度が変化しても所定の条件下では制御系モデルのパラメータ調整を行う必要がない。
また、この制御系モデルでは、入力される制御偏差に対して無駄時間とゲインと積分要素と一次遅れ要素とを適用して制御量推定値を算出する。これにより、後述するように制御系モデルにおけるパラメータの調整が不要となり、制御装置２００の計算負荷を低減させることができる。
【００２２】
制御部２９０は、制御装置２００の各部を制御して各種処理を実行する。制御部２９０は、例えば制御装置２００が備えるＣＰＵ（Central Processing Unit、中央処理装置）が、記憶部２８０からプログラムを読み出して実行することで構成される。
モデル演算部２９１は、モデル記憶部２８１が記憶している制御系モデルの演算を実行する。特に、モデル演算部２９１は、量子化された制御量の推定値と測定値との偏差に基づいて調整部２９４が補正を行った制御偏差を制御系モデルに入力して制御量推定値を算出する。モデル演算部２９１が、補正後の制御偏差を用いて制御量推定値を算出することで、より精度の高い制御量推定値を得ることができる。
【００２３】
量子化処理部２９２は、モデル演算部２９１が算出した制御量推定値に対してセンサ１４０と同様の量子化を行う。すなわち、量子化処理部２９２は、センサ１４０による制御量の量子化を模擬する。
量子化データ偏差算出部２９３は、センサ１４０による制御量測定値と量子化された制御量推定値との偏差を算出する。
【００２４】
調整部２９４は、量子化データ偏差算出部２９３が算出した偏差をモデル演算部２９１による制御量推定値の算出にフィードバックして当該偏差を低減させる。具体的には、調整部２９４は、制御偏差算出部２９５が算出した制御偏差に対して制御量測定値と量子化された制御量推定値との偏差に応じた補正を行う。上記のように、モデル演算部２９１は、調整部２９４による補正後の制御偏差を用いて制御量推定値を算出する。
制御偏差算出部２９５は、制御目標値とモデル演算部２９１が算出した制御量推定値との偏差を算出する。
操作量算出部２９６は、制御偏差算出部２９５が算出した偏差に基づいて制御対象に対する操作量を算出する。
【００２５】
次に、図２を参照して制御装置２００による水中航走体１００の制御について説明する。
図２は、制御装置２００が行う制御の例を示すブロック線図である。図２の例では、制御偏差算出部２９５が、制御目標値からモデル演算部２９１による制御量推定値を減算した偏差を算出する。操作量算出部２９６は、制御偏差算出部２９５が算出した偏差を制御偏差として用いて操作量（制御指令値）を算出する。
【００２６】
なお、図２では、操作量算出部２９６が、積分要素２９６ａと微分２９６ｂと加算２９６ｃとゲイン２９６ｄとによるＰＩＤ（Proportional-Integral-Derivative）制御を行う場合の例を示している。但し、操作量算出部２９６が行う制御はＰＩＤ制御に限らない。操作量算出部２９６が行う制御として、例えば、比例制御、積分制御、微分制御、又は、位置制御と速度制御との組み合わせなどいろいろなフィードバック制御を用いることができる。
【００２７】
操作量算出部２９６が算出した操作量に従って、アクチュエータ１２０が推力を発生させて水中航走体１００を動作させる。そして、センサ１４０が、機械系１１０の特性に応じた制御量を測定（検出）する。
図２の例では、機器の応答遅れ及び通信の遅延等による時間遅れが無駄時間１１０ａで示されている。また、アクチュエータ１２０の特性が時定数Ｔａの一次遅れ要素「１／（Ｔａｓ＋１）」で示されている。ｓはラプラス演算子を示す。
【００２８】
また、水中航走体本体１３０の特性が、伝達関数「１／（Ｍｓ＋Ｄ）」で示されている。Ｍは、水中航走体１００の質量を示す。Ｄは、粘性係数を示す。
ここで、水中航走体１００の航行速度が変化して流体抵抗が変化すると粘性係数Ｄが変化する。
【００２９】
粘性係数Ｄの変化により、制御目標値に対する水中航走体１００の応答が変化する。これに対し、制御目標値に対して水中航走体１００の応答を一定に保つために、操作量算出部２９６における制御パラメータ値の調整を行う場合がある。例えば、記憶部２８０が、水中航走体１００の航行速度と制御パラメータ値とを対応付けたテーブルを予め記憶しておく。そして、操作量算出部２９６が、水中航走体１００の航行速度に応じた制御パラメータ値を記憶部２８０から読み出し、制御ロジックにおけるパラメータ値を書き換える。これにより、粘性係数Ｄの変化に応じて操作量を変化させ、制御目標値に対する水中航走体１００の応答を一定に保つことができる。
【００３０】
また、図２では、センサ１４０が水中航走体１００の深度を測定する場合の例を示しており、水中航走体１００の航行速度とセンサ１４０が測定する深度（距離）との関係が、積分要素１１０ｂで示されている。
また、センサ１４０の特性が制御ブロック１４０ａと、スイッチ１４０ｂとによって示されている。制御ブロック１４０ａは、センサ１４０による制御量測定値の量子化を示す。また、センサ１４０は、所定のサンプリング時間毎に制御量の測定を行っており、このサンプリング時間毎の測定をスイッチ１４０ｂで示している。
【００３１】
また、モデル演算部２９１が行う水中航走体１００の動作の模擬が、無駄時間２９１ａと制御ブロック２９１ｂとで示されている。モデル演算部２９１は、モデル記憶部２８１が記憶している制御系モデルを実行することで、操作量算出部２９６による制御量の算出と、機械系１１０の動作のうちセンサ１４０以外の部分とを模擬する。無駄時間２９１ａは、無駄時間１１０ａで示される時間遅れの模擬を示している。また、制御ブロック２９１ｂは、操作量算出部２９６による制御量の算出、アクチュエータ１２０の特性、及び、水中航走体本体１３０の特性の模擬を示しており、積分要素１１０ｂの出力に対応して深度を出力する。
【００３２】
モデル演算部２９１が実行する制御系モデルでは、操作量算出部２９６による制御量の算出、アクチュエータ１２０の特性、及び、水中航走体本体１３０の特性の全体を、制御ブロック２９１ｂに示される伝達関数「Ｋｏｐ（１／ｓ）（ωｏｐ／（ｓ＋ωｏｐ））」のように、ゲインと積分要素と一次遅れ要素との組み合わせで模擬する。Ｋｏｐはゲインを示し、ωｏｐは一次遅れの固有角周波数を示す。
【００３３】
このように、操作量算出部２９６による制御量の算出、アクチュエータ１２０の特性、及び、水中航走体本体１３０の特性を個々に模擬するのではなく全体を纏めて模擬することで、水中航走体１００の航行速度の変化に対する制御器モデル及び制御対象モデルのパラメータ調整を不要とすることができ、制御装置２００の計算負荷を低減させることができる。図２の例では、制御系モデルにおけるパラメータ（無駄時間の時定数Ｌ、ゲインＫｏｐ、一次遅れの固有角周波数ωｏｐ）は固定値である。
【００３４】
また、上記のように、水中航走体１００の航行速度の変化に応じて水中航走体１００の粘性係数Ｄが変化するなど、水中航走体１００の感度特性が、時々刻々と変化する。仮に、操作量算出部２９６による制御量の算出、アクチュエータ１２０の特性、及び、水中航走体本体１３０の特性を個々に模擬するモデルを用いる場合は、水中航走体１００の感度特性の変化に応じて、各モデルのパラメータ値（図２の例では、Ｍ及びＤ）を調整する必要がある。
【００３５】
さらに、制御目標値に対して水中航走体１００の応答を一定に保つために、操作量算出部２９６における制御パラメータ値（図２の例では、Ｋｐ、ＴＩ及びＴＤ）も調整する必要がある。つまり、制御目標値に対して水中航走体１００の応答を一定に保つことは、操作量算出部２９６による制御量の算出、アクチュエータ１２０の特性、及び、水中航走体本体１３０の特性を含んだ全体の制御特性（周波数特性）を航行速度の変化に対して一定に保つことを意味する。従って、操作量算出部２９６による制御量の算出、アクチュエータ１２０の特性、及び、水中航走体本体１３０の特性の全体を纏めて模擬する制御系モデルを用いることで、制御系モデルのパラメータ調整を不要とすることができる。すなわち、水中航走体１００の航行速度が変化した場合に、制御目標値に対して水中航走体１００の応答を一定に保つための制御パラメータ値の調整が行われるという条件下では、制御系モデルのパラメータ調整を不要とすることができる。
【００３６】
以下では、制御ブロック２９１ｂが示す、操作量算出部２９６による制御量の算出、アクチュエータ１２０の特性、及び、水中航走体本体１３０の特性を一纏めにした制御特性を、開ループ制御特性と称する。水中航走体１００実機の特性を評価するために開ループ制御特性を求めた場合は、得られた開ループ制御特性をモデルとして構築することで、制御系モデルが得られる。
【００３７】
また、量子化処理部２９２が行うセンサ１４０の動作の模擬が、制御ブロック２９２ａ及びスイッチ２９２ｂで示されている。制御ブロック２９２ａは、制御ブロック１４０ａで示される制御量測定値の量子化の模擬を示している。また、スイッチ２９２ｂは、スイッチ１４０ｂで示されるサンプリング時間毎の制御量の測定の模擬を示している。
また、量子化データ偏差算出部２９３による制御量の偏差の算出が、減算の演算子で示されている。量子化データ偏差算出部２９３は、センサ１４０が測定した量子化された制御量測定値から、量子化処理部２９２によって量子化された制御量推定値を減算して偏差を算出する。
【００３８】
また、調整部２９４による制御量の偏差のフィードバックが、制御ブロック２９４ａと、加算２９４ｂとで示されている。制御ブロック２９４ａは、量子化データ偏差算出部２９３が算出した偏差に対しするゲインＫｏｂの乗算を示している。また、加算２９４ｂは、ゲインＫｏｂを乗算した偏差を制御目標値と制御量推定値との偏差（制御偏差）に加算する補正を示している。
【００３９】
制御量推定値が制御量測定値よりも小さい場合、量子化データ偏差算出部２９３が算出する偏差は正の値を取る。これにより、調整部２９４は、制御系モデルに適用される制御偏差を増加させる補正を行う。この補正により、モデル演算部２９１が算出する制御量推定値が大きくなる。
一方、制御量推定値が制御量測定値よりも大きい場合、量子化データ偏差算出部２９３が算出する偏差は負の値を取る。これにより、調整部２９４は、制御系モデルに適用される制御偏差を減少させる補正を行う。この補正により、モデル演算部２９１が算出する制御量推定値が小さくなる。
このように、調整部２９４が行う補正によって、制御量推定値を制御量測定値に近づけることができる。
【００４０】
次に、図３〜図６を参照して、制御装置２００による制御のシミュレーション結果について説明する。
図３は、量子化された制御量測定値を用いて制御偏差を算出した場合のシミュレーション結果を示すグラフである。図３では、量子化された制御量測定値を制御量目標値から減算した偏差を制御量として用いた場合のシミュレーション結果を示している。図３に示す例は、図２に示す制御から、モデル演算部２９１、量子化処理部２９２、量子化データ偏差算出部２９３、及び、調整部２９４に相当する各部を削除し、センサ１４０の制御量測定値を制御偏差算出部２９５に入力した場合に相当する。
【００４１】
図３のグラフの横軸は時間を示し、縦軸は深度及び推力を示す。線Ｌ１１１、Ｌ１１２は、それぞれ制御目標値、制御量測定値を示す。また、線Ｌ１２１は、アクチュエータが発生させる推力を示す。
制御量測定値の量子化ノイズにより、線Ｌ１２１が示す推力が振動している。この振動の様子をさらに詳細に示すため、範囲Ａ１及びＡ２の部分を拡大して示す。
【００４２】
図４は、図３のグラフの一部を拡大したグラフである。図４のグラフの横軸はグラフを示し、縦軸は深度及び推力を示す。線Ｌ２１１は、図３の線Ｌ１１１のうち範囲Ａ１の部分を拡大したものであり、制御目標値を示す。線Ｌ２１２は、図３の線Ｌ１１２のうち範囲Ａ１の部分を拡大したものであり、制御量測定値を示す。線Ｌ２２１は、図３の線Ｌ１２１のうち範囲Ａ２の部分を拡大したものであり、アクチュエータが発生させる推力を示す。
【００４３】
線Ｌ２１２に示されるように、制御量測定値が量子化されて段階的に変化している。これにより、線Ｌ２２１に示されるように、アクチュエータが発生させる推力が振動している。このようにアクチュエータが発生させる推力が振動することで、アクチュエータは、動力のエネルギーを無駄に消費してしまう。
【００４４】
図５は、制御量推定値を用いて制御偏差を算出した場合のシミュレーション結果を示すグラフである。図５では、図２に示すようにモデル演算部２９１が算出した制御量推定値を制御目標値から減算した偏差を制御偏差として用い、かつ、調整部２９４による補正を行った場合のシミュレーション結果を示している。
図５のグラフの横軸は時間を示し、縦軸は深度及び推力を示す。線Ｌ３１１、Ｌ３１２、Ｌ３１３は、それぞれ制御目標値、制御量測定値、制御量推定値を示す。また、線Ｌ３２１は、アクチュエータ１２０が発生させる推力を示す。
図５では、図３及び図４の例のような推力の振動は生じていない。この点をさらに詳細に示すため、範囲Ａ３及びＡ４の部分を拡大して示す。
【００４５】
図６は、図５のグラフの一部を拡大したグラフである。図６のグラフの横軸はグラフを示し、縦軸は深度及び推力を示す。線Ｌ４１１は、図５の線Ｌ３１１のうち範囲Ａ３の部分を拡大したものであり、制御目標値を示す。線Ｌ４１２は、図５の線Ｌ３１２のうち範囲Ａ３の部分を拡大したものであり、制御量測定値を示す。線Ｌ４１３は、図５の線Ｌ３１３のうち範囲Ａ３の部分を拡大したものであり、制御量推定値を示す。線Ｌ４２１は、図５の線Ｌ３２１のうち範囲Ａ４の部分を拡大したものであり、アクチュエータ１２０が発生させる推力を示す。
【００４６】
図４の線Ｌ２１２の場合と同様、線Ｌ４１２が示す制御量測定値は量子化されて段階的に変化している。一方、線Ｌ４１３が示す制御量推定値では、量子化による段階的変化は生じていない。また、線Ｌ４２１が示す推力では、図３の線Ｌ２２１の場合のような振動は発生していない。
また、線Ｌ４１３が示す制御量推定値は、線Ｌ４１２が示す制御量測定値に近い値となっており、制御量の推定を高精度に行えている。
このように、モデル演算部２９１が算出した制御量推定値を制御目標値から減算した偏差を制御偏差として用い、かつ、調整部２９４による補正を行う場合のシミュレーションを行った。その結果、アクチュエータ１２０の出力の振動を回避することができ、かつ、制御量の推定を高精度に行えることを確認できた。
【００４７】
以上のように、モデル演算部２９１は、水中航走体１００の制御における制御目標値と制御量との偏差を入力として制御量推定値を出力とする制御系モデルの演算を実行する。また、制御偏差算出部２９５は、制御目標値とモデル演算部２９１が算出した制御量推定値との偏差を算出する。操作量算出部２９６は、制御偏差算出部２９５が算出した偏差に基づいて水中航走体１００の制御における操作量を算出する。
このように、制御装置２００では、モデル演算部２９１が算出した制御量推定値を用いて制御偏差を算出するので、センサ１４０によって量子化された制御量特性を用いて制御偏差を算出する必要が無い。従って、制御装置２００では、センサ１４０による制御量測定値の量子化に起因する操作量の振動を回避することができる。
また、モデル演算部２９１が制御偏差を入力として制御量推定値を出力とする制御系モデルを用いることで、アクチュエータ１２０の特性、及び、水中航走体本体１３０の特性の全体を纏めて模擬する制御系モデルを用いることができる。
これにより、制御装置２００では、水中航走体１００の航行速度が変化した場合に、制御目標値に対して水中航走体１００の応答を一定に保つための制御パラメータ値の調整が行われるという条件下では、制御系モデルのパラメータ調整を不要とすることができる。
このように、制御装置２００では、センサ１４０による制御量測定値の量子化に起因する操作量の振動を回避することができ、かつ、水中航走体１００の航行速度が変化しても所定の条件下では制御系モデルのパラメータ調整を不要とすることができる。
【００４８】
また、モデル演算部２９１は、制御目標値と制御量推定値との偏差に対して無駄時間とゲインと積分要素と一次遅れ要素とを適用して制御量推定値を算出する。
これにより、制御装置２００では、例えば制御系モデルにおけるパラメータの数を、無駄時間と、ゲインと、一次遅れの固有角周波数との３つの固定パラメータにすることができるなど、制御系モデルにおけるパラメータ調整を不要とすることができる。
【００４９】
また、量子化処理部２９２は、モデル演算部２９１が算出した制御量推定値を量子化する。量子化データ偏差算出部２９３は、センサ１４０が制御量を量子化して検出した制御量測定値と量子化された制御量推定値との偏差を算出する。調整部２９４は、制御量測定値と量子化された制御量推定値との偏差をモデル演算部２９１による制御量推定値の算出にフィードバックして当該偏差を低減させる。
これにより、制御装置２００では、モデル演算部２９１が算出する制御量推定値の精度を高めることができる。制御量推定値の精度を高めることで、水中航走体１００に対する制御の精度を高めることができる。
【００５０】
また、調整部２９４は、制御偏差算出部２９５が算出した偏差に対して制御量測定値と量子化された制御量推定値との偏差に応じた補正を行う。モデル演算部２９１は、調整部２９４が補正を行った偏差を制御系モデルに入力して制御量推定値を算出する。
これにより、制御装置２００では、制御系モデル自体を調整する必要無しに、制御量推定値の精度を高めることができる。
【００５１】
なお、制御部２９０の全部または一部の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより各部の処理を行ってもよい。なお、ここでいう「コンピュータシステム」とは、ＯＳや周辺機器等のハードウェアを含むものとする。
また、「コンピュータシステム」は、ＷＷＷシステムを利用している場合であれば、ホームページ提供環境（あるいは表示環境）も含むものとする。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含むものとする。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであってもよい。
【００５２】
以上、本発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計変更等も含まれる。
【符号の説明】
【００５３】
１００  水中航走体
１１０  機械系
１２０  アクチュエータ
１３０  水中航走体本体
１４０  センサ
２００  制御装置
２１０  通信部
２８０  記憶部
２８１  モデル記憶部
２９０  制御部
２９１  モデル演算部
２９２  量子化処理部
２９３  量子化データ偏差算出部
２９４  調整部
２９５  制御偏差算出部
２９６  操作量算出部
【図１】
0006779035.tif 000002
【図２】
0006779035.tif 000003
【図３】
0006779035.tif 000004
【図４】
0006779035.tif 000005
【図５】
0006779035.tif 000006
【図６】
0006779035.tif 000007