以上のように、従来の自動操舵装置101では、舵角センサ4が検出した実舵角δrに基づいて、舵角偏角Δδを求めていた。仮に舵角偏角Δδが分からなければ、「どちらの方向にどれだけ舵機2を駆動すれば良いか」も分からないので、上記の制御を実現することができない。従って、上記従来の自動操舵装置101では、舵角偏角Δδを求めることが必要である。このため、舵角偏角Δδを求めるために必要な舵角センサ4は、自動操舵装置において必須の構成であると考えられていた。
ところで、この種の自動操舵装置は、船体に対して後付けされる場合が多い。しかし、全ての船体が舵角センサの導入を前提として作られている訳ではなく、なかには舵角センサを取り付けにくい船体も存在する。例えば、舵角センサは舵の近傍(船尾)に配置されるが、自動操舵装置のコンソール(操作盤)は船体の中央に配置されることが多いので、舵角センサからコンソールまで配線を引き回す必要がある。しかしながら、船体によっては上記の配線が困難な場合がある。このような船体では、舵角センサを必要とする従来の自動操舵装置を採用することは難しい。また、そもそも船体に舵角センサを取り付けることができない場合もあり、そのような船体には、従来の自動操舵装置を採用することができない。
本発明は以上の事情に鑑みてされたものであり、その目的は、舵角センサを省略できる自動操舵装置を提供することにある。
課題を解決するための手段及び効果
本発明の解決しようとする課題は以上の如くであり、次にこの課題を解決するための手段とその効果を説明する。
本発明の観点によれば、以下の構成の自動操舵装置が提供される。即ち、この自動操舵装置は、目標舵角算出部と、目標舵角記憶部と、転舵指令部と、を備える。前記目標舵角算出部は、移動体の機首方位と目標針路に基づいて、舵機の目標舵角を算出する。前記目標舵角記憶部は、前回の転舵指令時の目標舵角を記憶する。前記転舵指令部は、前記目標舵角算出部が算出した最新の目標舵角と、目標舵角記憶部が記憶している前回の転舵指令時の目標舵角と、に基づいて、舵機に転舵を指示するための転舵指令を出力する。
このように、最新の目標舵角と、前回の転舵指令時の目標舵角と、を参照することにより、目標舵角がどのように変化したかを知ることができる。そして、目標舵角が変化していない場合は舵角を変更する必要が無いと判断できるし、目標舵角が変化している場合には転舵すべきであると判断できる。そこで、これに基づいて舵機を制御することにより、舵角センサによって現在の舵角を検出しなくても自動操舵制御を実現できる。
上記の自動操舵装置において、前記転舵指令部は、最新の目標舵角と、前回の転舵指令時の目標舵角と、の差分である目標舵角変化量が所定の転舵閾値未満の場合は、前記転舵指令を出力しないことが好ましい。
このように、目標舵角の変化が小さい場合には転舵指令を出力しないことで、細かい転舵が頻繁に行われることを抑制し、安定した制御を行うことができる。
上記の自動操舵装置は、以下のように構成されることが好ましい。即ち、前記転舵指令部は、転舵トリガ出力部と、舵機駆動処理部と、を備える。前記転舵トリガ出力部は、前記目標舵角変化量が前記転舵閾値以上の場合に、転舵トリガを出力する。前記舵機駆動処理部は、前記転舵トリガに応じて、前記舵機を所定の舵機駆動時間のあいだ駆動させるように前記転舵指令を出力する。
即ち、本願発明の自動操舵装置は、実際の舵角に基づいて制御する訳ではないので、舵を一度に大きく動かすと不安定になる可能性がある。そこで上記のように、トリガを受信するたびに所定時間だけ舵機を駆動する、というようにパルス的に舵角を変更する制御を行う。これにより、舵角が一度に大きく変更されてしまうことを防ぎ、制御を安定化することができる。
上記の自動操舵装置において、前記目標舵角記憶部は、前記転舵トリガに応じて、記憶内容を最新の目標舵角に更新することが好ましい。
これによれば、転舵指令が出力されるたびに、目標舵角記憶部の記憶内容を更新することができる。
上記の自動操舵装置は、舵を切り戻す方向の転舵トリガが出力されることを禁止する舵角キープ指令部を備えることが好ましい。
即ち、本願発明の自動操舵装置は、実際の舵角に基づいて制御する訳ではないので、舵を舵角中央に正確に合わせることが難しい。このため、舵を切り戻していくと、舵角中央を越えて反対側に舵が切られてしまい、不必要な舵切りが発生してしまう可能性がある。そこで上記のように、舵を切り戻す方向に舵機を駆動することを禁止することで、上記のような不必要な舵切りを防止できる。
上記の自動操舵装置は、以下のように構成されることが好ましい。即ち、この自動操舵装置は、前記舵角キープ指令部によって舵を切り戻す方向の転舵トリガが禁止されている場合に更新トリガを出力する更新トリガ出力部を備える。そして、前記目標舵角記憶部は、前記更新トリガに応じて、記憶内容を最新の目標舵角に更新する。
前述のように、目標舵角記憶部は、前回の転舵指令時の目標舵角を記憶している。転舵トリガが禁止されている場合、転舵指令が出力されないので、そのままでは目標舵角記憶部の記憶内容が更新されない。そこで、転舵トリガが禁止されている場合には、転舵トリガとは別に更新トリガを出すことにより、目標舵角記憶部の記憶内容を更新させる。これにより、より適切に舵機を制御することができる。
上記の自動操舵装置は、以下のように構成されることが好ましい。即ち、この自動操舵装置は、前記移動体の走行状態が直進状態か否かを判定する走行状態判定部を備える。前記舵角キープ指令部は、前記移動体が直進状態の場合に、舵を切り戻す方向の転舵トリガが出力されることを禁止する。
このように、移動体が直進しているときには舵を切り戻す方向の転舵を禁止することで、不必要な転舵を防止できる。
上記の自動操舵装置は、以下のように構成されることが好ましい。即ち、この自動操舵装置は、左右バランス検出部と、左右バランス調整部と、を備える。前記左右バランス検出部は、前記移動体の機首方位の平均値と、前記目標針路と、の差分に基づいて、左右の転舵量の偏りを検出する。前記左右バランス調整部は、前記偏りに基づいて、舵を右に転舵する場合の舵機駆動時間と、左に転舵する場合の舵機駆動時間とをそれぞれ調整する。
即ち、舵機の個体差などにより、左右で舵の切れ方が違う場合がある。このような場合であっても、上記のように舵機駆動時間を左右で調整することにより、左右の転舵量の偏りを補正できる。
上記の自動操舵装置は、以下のように構成されることが好ましい。即ち、この自動操舵装置は、転舵確認部と、舵機駆動時間一時調整部と、を備える。前記転舵確認部は、前記移動体の回頭角速度の変化に基づいて、舵が動いたか否かを検出する。前記舵機駆動時間一時調整部は、前記転舵トリガを出力したにもかかわらず舵が動いていない場合に、前記舵機駆動時間を一時的に増加させる。
これにより、何らかの理由で舵が動かない場合であっても、舵機駆動時間を増大させることで、舵を動かすことができる。
本発明の別の観点によれば、以下の自動操舵方法が提供される。即ち、この自動操舵方法は、目標舵角算出工程と、前回目標舵角取得工程と、転舵指令工程と、を含む。前記目標舵角算出工程では、移動体の機首方位と目標針路に基づいて、舵機の目標舵角を算出する。前記前回目標舵角取得工程では、前回の転舵指令時の目標舵角を取得する。前記転舵指令工程では、前記目標舵角算出工程で算出した最新の目標舵角と、前回目標舵角取得工程で取得した前回の転舵指令時の目標舵角と、に基づいて、舵機に転舵を指示する転舵指令を出力する。
上記の自動操舵方法において、前記転舵指令工程では、最新の目標舵角と、前回の転舵指令時の目標舵角と、の差分である目標舵角変化量が所定の転舵閾値未満の場合は前記転舵指令を出力しないことが好ましい。
上記の自動操舵方法において、前記転舵指令工程は、転舵トリガ出力工程と、舵機駆動処理工程と、を含むことが好ましい。前記転舵トリガ出力工程では、前記目標舵角変化量が前記転舵閾値以上の場合に転舵トリガを出力する。前記舵機駆動処理工程では、前記転舵トリガに応じて、前記舵機を所定の舵機駆動時間のあいだ駆動させるように前記転舵指令を出力する。
次に、図面を参照して本発明の実施の形態を説明する。図1に示すのは、本発明に係る自動操舵装置5を備えた自動操舵システムの構成を示すブロック図である。
この自動操舵システムは、船舶(移動体)の船体1に設けられ、当該船舶の舵を自動的に制御するものである。自動操舵システムは、自動操舵装置5と、方位センサ3と、舵機2とを備えている。
方位センサ3は、船体1の船首(機首)が向いている方向(船首方位)を検出して出力する。
舵機2は、舵の角度(舵角)を変更するための適宜の舵駆動装置(例えば油圧シリンダ等)を備えている。舵機2は、所定の転舵指令を受信すると、当該転舵指令で指定された方向に、略一定の角速度で舵角を変更するように構成されている。また、舵機2は、転舵指令が入力されていないときは、現在の舵角を維持するように構成されている。なお、以下の説明において、「舵を切り足す」と言った場合は、舵角中央から離れる方向に舵角を変更することを指し、「舵を切り戻す」と言った場合は、舵角中央に近づく方向に舵角を変更することを指すものとする。また、舵角中央に近づくか離れるかを特定せずに舵を動かすことをいう場合は、単に「転舵する」と言う場合がある。
本実施形態の自動操舵システムの特徴の1つは、従来の自動操舵システム(図9)が備えていた舵角センサ4を省略していることである。このように舵角センサ4を省略できるので、本実施形態の自動操舵装置5は、舵角センサを取り付けることが難しい船体にも容易に採用できる。
以下、本実施形態の自動操舵装置5の構成について、詳しく説明する。自動操舵装置5は、目標針路算出部10と、目標舵角算出部20と、転舵指令部23と、目標舵角記憶部24と、を備える。
目標針路算出部10には、船体1が進むべき方位を指定する設定針路θSが入力されている。この設定針路θSは、例えばユーザが設定つまみを操作することにより手動設定することができる。目標針路算出部10は、設定針路θSに基づいて、目標針路θ0を算出するように構成されている。即ち、設定針路θSが一定の場合、目標針路算出部10は、設定されている設定針路θSをそのまま目標針路θ0として出力する。一方、設定針路θSがユーザによる設定操作等によって変更された場合、目標針路算出部10は、出力する目標針路θ0を新しい設定針路θSに向かって緩やかに変化させる。これにより、ユーザによる設定操作等によって設定針路θSが大きく変更されたとしても、目標針路θ0が急激に変動することを防ぎ、制御を安定化できる。なお、目標針路算出部10に入力される設定針路θSは、船体1に搭載されている公知の航法装置によって自動的に設定される構成であっても良い。
目標舵角算出部20は、目標舵角を算出して出力するように構成されている。この目標舵角は、船首方位θを目標針路θ0に向ける(針路偏角Δθをゼロに近づける)ために必要な舵角である。目標舵角は、針路偏角Δθと、船首方位θと、に基づいて、公知のPD制御によって算出する。
具体的には、目標舵角算出部20は、P制御部21とD制御部22を有している。P制御部21は、針路偏角Δθに比例ゲインを乗じて、比例舵角δPを求める。D制御部22は、船首方位θの変化速度(微分量)を求め、これに微分ゲインを乗じて微分舵角δDを求める。そして、比例舵角δPと微分舵角δDを加算することで、目標舵角を得る。なお、上記比例ゲインと微分ゲインは予め設定しておいても良いし、当該ゲインを自動的に調整する適応型のPD制御としても良い。
目標舵角算出部20における目標舵角の算出は、所定の演算周期で繰り返し行われる。即ち、所定の演算周期で、新しい目標舵角が次々と出力されることになる。以下の説明では、目標舵角算出部20が出力した最新の目標舵角を、「最新の目標舵角δnew」と呼ぶことがある。
なお、従来の自動操舵装置では、目標舵角を算出するためにPID制御を利用することが一般的であったが、本実施形態では上記のように、積分制御を省略したPD制御を利用している。これは、本実施形態の自動操舵装置5では、目標舵角の変化量δchgに基づいて転舵を判定している(後述)ため、積分制御を省略した方がより適切に舵角を制御できるからである。
転舵指令部23は、舵機2に対して転舵指令を出力するように構成されている。この転舵指令は、舵角を変更する方向(左右の何れに転舵するか)を指定するものである。前述のように、舵機2は、転舵指令が入力されているときは、指定された方向に略一定の角速度で舵角を変更し、転舵指令が入力されないときは、現在の舵角を維持するように構成されている。従って、舵機2に対して転舵指令を出力している時間が長いほど、指定した方向に舵角が大きく変更されることになる。このように、舵機2に対して転舵指令を出力する時間を調整することで、舵角の変更量(転舵量)を調整できる。
ところで、従来の自動操舵装置101(図9)では、舵角センサ4が検出した実舵角δrに基づいて舵角偏角Δδを求め、これに基づいて舵機2に対する転舵指令を出力していた。即ち、舵角偏角Δδがゼロの場合は、実舵角δrが目標舵角δと一致しているということであるから、舵角を変更する必要はない。従って、この場合は転舵指令を出力しない。舵角偏角Δδがゼロでない場合は、実舵角δrが目標舵角δからズレているということであるから、当該ズレを解消するように転舵指令を出力する。このように、従来の自動操舵装置101では、舵角センサ4の検出値に基づいて転舵指令を出力していた。
ところが、本実施形態の自動操舵システムは舵角センサを有していないので、上記のように舵角偏角Δδに基づいて転舵指令を出力することはできない。
そこで本実施形態において、転舵指令部23は、最新の目標舵角δnewと、前回の転舵指令時の目標舵角δprevとに基づいて、転舵指令を出すように構成されている。
即ち、最新の目標舵角δnewと、前回の転舵指令時の目標舵角δprevと、の差分(目標舵角変化量δchg)がゼロである場合、最新の目標舵角δnewは前回の転舵指令時から変化していないということであるから、舵角を変更する必要はない。そこでこのような場合は、転舵指令を出力しなくて良いと判断できる。一方、目標舵角変化量δchgがゼロではない場合、最新の目標舵角δnewが前回の転舵指令時から変化しているということである。そこでこのような場合は、目標舵角が変化した方向に舵角を変更することが好ましい。目標舵角が変化した方向(左右の何れに転舵するように目標舵角が変化したか)は、目標舵角変化量δchgの符号(プラスかマイナスか)に基づいて判断できる。
このように、目標舵角変化量δchgに基づいて、転舵すべきか否か、転舵するとしたら左右のどちらに転舵すべきか、を判断できる。そこで、この判断に基づいて舵機2を制御することにより、自動操舵制御を実現できる。しかもこの制御には、舵角センサの出力(実舵角)は一切必要ないのである。以上のように、最新の目標舵角δnewと、前回の転舵指令時の目標舵角δprevと、の差分である目標舵角変化量δchgに基づいて転舵指令を出すように構成することで、舵角センサを利用することなく自動操舵制御を実現できる。
本実施形態の自動操舵装置5は、前回の転舵指令時の目標舵角δprevを記憶しておくための目標舵角記憶部24を備えている。この目標舵角記憶部24は、目標舵角算出部20が算出した目標舵角を記憶可能に構成されている。転舵指令が出力されたとき、目標舵角記憶部24は、その記憶内容を、目標舵角算出部20が出力する最新の目標舵角δnewで上書き更新するように構成されている。そして、目標舵角記憶部24は、次の転舵指令が出力されるまでの間は、現在の記憶内容を保持する。このようにして、目標舵角記憶部24に、前回の転舵指令時の目標舵角δprevを記憶させておくことができる。
続いて、転舵指令部23の構成について詳しく説明する。転舵指令部23は、転舵トリガ出力部25と、舵機駆動処理部26と、を備えている。
目標舵角算出部20が算出する最新の目標舵角δnewは、転舵指令部23に入力される。転舵指令部23は、最新の目標舵角δnewを取得するたびに、目標舵角記憶部24に記憶されている前回の転舵指令時の目標舵角δprevを読み出して、最新の目標舵角δnewと前回の転舵指令時の目標舵角δprevの差分である目標舵角変化量δchgを算出する。
目標舵角変化量δchgは、転舵トリガ出力部25に入力される。転舵トリガ出力部25は、目標舵角変化量δchg(の絶対値)が所定の転舵閾値以上であった場合、転舵トリガを出力するように構成されている(図2(a))。この転舵トリガには、舵角を変更する方向(左右の何れに転舵するか)を指定する情報が含まれている。なお前述のように、舵角を変更する方向は、目標舵角変化量δchgの符号に基づいて判断することができる。また、転舵トリガ出力部25は、目標舵角変化量δchg(の絶対値)が転舵閾値未満であった場合には、転舵トリガを出力しないように構成されている。
前記転舵トリガは、舵機駆動処理部26に入力される。舵機駆動処理部26は、前記転舵トリガが入力されると、当該転舵トリガで指定された方向に転舵するように指示する転舵指令を、舵機2に出力する。このとき、舵機駆動処理部26は、転舵トリガが入力されてから所定の舵機駆動時間の間だけ、前記転舵指令を出力し続けるように構成されている。本実施形態において、この舵機駆動時間は、比較的短い時間(例えば数百ミリ秒)としている。この場合、1回の転舵トリガによる舵角の変化量は比較的小さくなる(例えば舵角の変化量は1°程度)。
即ち、本願発明の自動操舵装置5は、実際の舵角(実舵角)に基づいて舵を制御する訳ではないので、舵を一度に大きく動かすと不安定になる可能性がある。そこで上記のように、転舵トリガを受信するたびに所定の舵機駆動時間だけ舵機2を駆動する、というように、パルス的に舵角を変更する制御としている。これにより、舵角が一度に大きく変更されてしまうことを防ぎ、制御を安定化することができる。
また上記のように、本実施形態の転舵トリガ出力部25は、目標舵角変化量δchgが所定の転舵閾値未満の場合には、転舵トリガを出力しないように構成されている。そして前述のように、舵機駆動処理部26は、転舵トリガが入力されない場合には転舵指令を舵機2に出力しない。即ち、本実施形態の自動操舵装置5は、目標舵角変化量δchgが転舵閾値未満の場合には、転舵を行わずに現在に舵角を維持する(図2(b))。このように、本実施形態では、目標舵角の変化が小さい場合には転舵を行わないので、細かい転舵が頻繁に行われることを抑制し、安定した制御を行うことができる。
上記の転舵トリガは、目標舵角記憶部24にも入力される。目標舵角記憶部24は、転舵トリガを受けて、その記憶内容を、最新の目標舵角δnewで上書き更新するように構成されている。これにより、目標舵角記憶部24の記憶内容を、転舵指令が出力されるたびに更新することができる。このようにして、目標舵角記憶部24に、前回の転舵指令時の目標舵角δprevを記憶させておくことができる。
なお、本実施形態の自動操舵装置5は、舵角センサを有していないので、現在の舵角(実舵角)を目標舵角に正確に一致させるという制御を行うことはできない。しかし、実舵角が目標舵角に正確に一致していなかったとしても、ある程度一致していれば、船体1は問題なく旋回する。従って、実舵角を目標舵角に正確に一致させることができないとしても、本実施形態の自動操舵装置5による自動操舵制御を十分な精度で問題無く行うことができるのである。
ところで、本実施形態の自動操舵装置5は舵が舵角中央に戻ったかどうかを確認する手段(舵角センサ)がないので、現在の舵角を舵角中央に正確に合わせることが難しい。このため、「舵を舵角中央に近づけていく」という制御を本実施形態の構成で行った場合、舵角中央を通り越して反対側に舵が切られてしまう可能性がある。このように、舵を舵角中央に近づけることを目的として目標舵角が出力されているにもかかわらず、舵が舵角中央を通り越して反対側に切られてしまうことを、本明細書中では「不必要な舵切り」という。
上記のような不必要な舵切りは、船体1が直進しているときに特に問題となる。また、船体1の直進中は、舵は基本的に舵角中央付近に位置しているので、舵が僅かに動いただけでも舵角中央を越えてしまう。即ち、船体1の直進中は、不必要な舵切りが発生する可能性が高い。
そこで本実施形態の転舵指令部23は、走行状態判定部27と、舵を切り戻す方向の転舵トリガが出力されることを禁止する舵角キープ指令部28と、を備えている。
走行状態判定部27は、船体1の走行状態(直進中か旋回中かなど)を判定するように構成されている。走行状態を判定する方法は適宜の方法を利用することができる。例えば本実施形態の走行状態判定部27では、目標針路算出部10に入力されている設定針路θSが大きく変更されたときに、船体が旋回中であると判定するように構成されている。即ち、設定針路θSが大きく変更された場合は、当該変更された設定針路θSに船首方位θを向けるべく舵機2が制御され、船体1が大きく旋回する。従って、設定針路θSが大きく変更された場合は、船体が旋回状態であると判断できるのである。
設定針路θSが大きく変更されたか否かは、設定針路θSと目標針路θ0との差を見ることにより判定できる。即ち前述のように、目標針路算出部10が出力する目標針路θ0は、設定針路θSに向かって緩やかに変化する。このため、例えばユーザの設定変更によって設定針路θSが大きく変更された場合、目標針路θ0と設定針路θSの差が一時的に大きくなる。そこで走行状態判定部27は、目標針路θ0と設定針路θSの差の絶対値が所定の旋回判定閾値以上になった場合(設定針路θSが大きく変更された場合)、船体1は旋回状態であると判定する。
一方、目標針路θ0と設定針路θSの差の絶対値が所定の旋回判定閾値未満の場合、設定針路θSは大きく変更されていない、又は設定針路θSが変更されてから或る程度の時間が経過したと判断できる。従ってこの場合、船体1は直進状態(又は直進に近い状態)であると判断できる。そこで走行状態判定部27は、目標針路θ0と設定針路θSの差の絶対値が所定の旋回判定閾値未満の場合、船体1は直進状態であると判定するように構成されている。
走行状態判定部27は、船体1が直進状態であると判定した場合、舵角キープ指令部28に対して、舵角キープ判定要求を出力する。舵角キープ指令部28は、舵角キープ判定要求を受けると、目標舵角算出部20が出力した最新の目標舵角δnewと、目標舵角記憶部24に記憶されている前回の転舵指令時の目標舵角δprevと、を比較することにより、目標舵角が舵を切り足す方向に変化したか、舵を切り戻す方向に変化したか、を判定するように構成されている。
舵角キープ指令部28は、目標舵角が舵を切り戻す方向に変化していると判定した場合、転舵トリガ出力部25に対して、転舵禁止指令を出力する。転舵トリガ出力部25は、転舵禁止指令を受けている間は、転舵トリガを出力しないように構成されている。以上の構成により、船体1が直進状態のときは、舵を切り戻す方向に舵機2を駆動することが禁止される(図3(a))。
一方、舵を切り足す方向の転舵であれば、「舵角中央を通り越して反対側に舵が切られてしまう」という問題は発生しない。従って、船体1が直進状態であっても、舵を切り足す方向の転舵であれば許可しても問題無い。そこで、舵角キープ指令部28は、目標舵角が舵を切り足す方向に変化していると判定した場合は、転舵トリガ出力部25に対して、転舵禁止指令を出力しない(つまり、舵角キープ指令部28は、舵を切り足す方向の転舵トリガが出力されることは許可する)。これにより、船が直進状態であっても、舵を切り足す方向への転舵は通常通り行うことができる(図3(b))。
以上のように、船体1が直進状態にあるあいだは、不必要な舵切りをなるべく禁止することが好ましい。これに対し、船体1の旋回中は、舵は舵角中央から或る程度離れている(舵が舵角中央に対して或る程度の角度を有している)ので、舵を多少切り戻したとしても、舵角中央を通り過ぎて反対側に舵が切られてしまうおそれは少ない。つまり、船体1の旋回中であれば、不必要な舵切りが発生するおそれは少ない。また仮に、旋回中に切り過ぎた舵を切り戻すことが禁止されていると、船体1は舵を切り過ぎた状態で旋回し続け旋回速度が速くなり過ぎるため、オーバーシュート量が大きくなってしまう。そこで、本実施形態では、船体1の旋回中には、舵を切り戻す方向への転舵トリガの出力を許可するように構成されている。
具体的には以下のとおりである。走行状態判定部27は、船体1が旋回状態であると判定した場合、舵角キープ指令部28に対する舵角キープ判定要求の出力を停止するように構成されている。これにより、舵角キープ指令部28から転舵禁止指令が出力されなくなる(つまり、舵を切り戻す方向の転舵トリガの出力が許可される)。
このように、本実施形態の構成によれば、船体1の旋回中には、舵を切り戻す方向の転舵トリガの禁止が解除され、舵を切り戻すことが許可される。これにより、切り過ぎた舵を切り戻すように制御できるので、オーバーシュートが発生しないように舵を適切に制御できる。
なお、以上で説明したのは、舵を舵角中央に近づけることを目的として目標舵角が出力されているにもかかわらず、舵角中央を通り越して反対側に舵が切られてしまうこと(不必要な舵切り)を防止ための処理である。一方で、舵角中央を通り越して反対側に舵を切ることをそもそもの目的として目標舵角が出力された場合は、舵角中央を通り越して反対側に舵が切られることは目的にかなっているので、むしろ転舵を許可した方が好ましい。
そこで、舵角キープ指令部28は、最新の目標舵角δnewと前回転舵時の目標舵角δprevが、舵角中央を挟んで同じ側か否かを判定するように構成されている。そして舵角キープ指令部28は、最新の目標舵角δnewが、前回転舵時の目標舵角δprevとは反対側である(逆サイドに舵を切るように目標舵角が変更された)と判定した場合には、転舵トリガ出力部25に対して、転舵禁止指令を出力しない。これによれば、船体1が直進状態にある場合であっても、舵を逆方向へ切ることができる(図3(c))。
続いて、本実施形態の自動操舵装置5において、舵機駆動時間を調整する構成について説明する。
航行中の船舶においては、舵に波が当たるなどの原因により、舵が一時的に動きにくくなっている(動きが鈍くなっている)場合がある。このような場合であっても、舵角センサ4を備えた従来の自動操舵装置101であれば、舵角が所望の角度になったか否かを舵角センサで確認できるので、特に問題にはならない。
ところが本実施形態の自動操舵装置5は、1回の転舵トリガごとに、舵機2を短時間だけパルス的に駆動する構成である。この構成では、波などの影響で舵が動きにくくなっている場合、舵機2を短時間駆動しただけでは舵が動かない場合がある。このような場合、転舵トリガを何度出力しても舵が動かないということになり、期待通りの制御を実現できない。しかも、本実施形態の自動操舵システムは、舵角センサを備えていないので、舵が実際に動いたかどうかを直接的に確認する手段がないのである。
そこで本実施形態の自動操舵装置5は、転舵確認部29と、舵機駆動時間一時調整部30と、を備えている。
転舵確認部29は、方位センサ3が出力する船首方位θの速度変化に基づいて、舵が動いたか否かを判定するように構成されている。即ち、舵角が一定に保たれている場合、船体1は一定の旋回速度で旋回するので、方位センサ3が検出する船首方位θは一定の速度で変化することになる(図4(a))。なお、船首方位θが変化する速度のことを、回頭角速度と呼ぶ。旋回の途中で舵角が変化した場合、回頭角速度も変化する(図4(b))。従って、回頭角速度の変化を見ることで、実際に舵が動いて転舵できたか否かを判定できる。
そこで転舵確認部29は、転舵トリガ出力部25から転舵トリガが出力された場合に、当該転舵トリガから一定時間内に回頭角速度が所定の閾値以上変化したか否かを検出するように構成されている。転舵確認部29は、回頭角速度の変化が所定の閾値以上だった場合は、期待通り舵が動いて正常に転舵が行われたと判断する。一方、回頭角速度の変化が所定の閾値未満だった場合、転舵確認部29は、期待通りに舵が動いておらず、転舵が行われなかったと判断する。
舵機駆動時間一時調整部30は、転舵確認部29の判断結果に基づいて、舵機駆動時間を調整するように構成されている。即ち、舵が動いていないと判断された場合、現在の舵機駆動時間では、舵を動かすのには短か過ぎるということである。そこで、舵機駆動時間一時調整部30は、舵が動いていないと判断されている場合には、舵機駆動処理部26に対して、舵機駆動時間を増加させるように設定する。舵機駆動処理部26は、これ以降に転舵トリガを受信した場合には、新しく設定された舵機駆動時間のあいだ舵機を駆動するように転舵指令を出力する。一方、舵が期待どおり動いていると判断されている場合は、舵機駆動時間一時調整部30は特に何もしなくて良い。
上記のように構成することで、何らかの理由により舵が動かない場合には、より強く舵を切るために舵機駆動時間を増加させることができる。これにより、波などの影響で舵が一時的に動きにくくなっている場合であっても、舵角を変更できる。
なお、波などの影響によって舵が動かなくなるのは、通常は一時的な現象である。そこで、舵機駆動時間一時調整部30は、舵機駆動時間を増加させてから一定時間経過する等の所定の条件を満たした場合、舵機駆動処理部26に対して、前記舵機駆動時間を元に戻すように設定する。これによれば、舵機駆動時間が無制限に長くなってしまうことを防止できる。
また、実際の舵機2においては、舵を駆動するための舵駆動機構(油圧シリンダ等)の個体差等により、右に転舵する場合と左に転舵する場合で舵の動きが若干異なっている場合がある。このような場合であっても、舵角センサ4を備えた従来の自動操舵装置101であれば、舵角が所望の角度になったか否かを舵角センサで確認できるので、特に問題にはならない。
ところが本実施形態の自動操舵装置5は舵角センサを備えていないので、舵が左右に動いた角度を直接的に確認することはできない。このため、舵を駆動するための舵駆動機構(油圧シリンダ等)の個体差等により、右に転舵する場合と左に転舵する場合で舵の動きが異なっていたとしても、自動操舵装置5はそれを検知することができない。この結果、船体1の旋回のし易さに左右で偏りが生じ、適切に針路を制御できない場合がある。
そこで本実施形態の自動操舵装置5は、左右バランス検出部31と、左右バランス調整部32と、を備えている。
左右バランス検出部31は、船首方位θの平均値と、目標針路θ0に基づいて、左右の転舵量の偏りを検出するように構成されている。即ち、船体1は波や風の影響を受けて揺動(ヨーイング)するので、図5に示すように、船首方位θは常時変動することになる。本実施形態の自動操舵装置5によって舵機2の制御が正常に行われていれば、ヨーイング複数回あたりの船首方位θの平均値は、目標針路θ0に一致するはずである。ここで、ヨーイング複数回あたりの船首方位θの平均値を、船首方位中心θaveと呼ぶことにする。
舵機2の左右の転舵量に偏りがある場合、本実施形態の自動操舵装置5による制御では、船首方位中心θaveと目標針路θ0の間に定常的なズレ(定常偏角)が発生してしまう。例えば、転舵トリガ1回あたりの転舵量が、左方向よりも右方向の方が大きい場合、図5に示すように、船首方位中心θaveは目標針路θ0から右側にズレることになる。逆に言えば、船首方位中心θaveと目標針路θ0とのズレ(定常偏角)を検出することにより、左右の転舵量の偏りを検出できる。
そこで左右バランス検出部31は、ヨーイング(船首揺れ)複数回あたりの船首方位θの平均値(船首方位中心θave)を求め、この船首方位中心θaveと目標針路θ0のズレ(定常偏角)に基づいて、左右の転舵量の偏りを検出するように構成されている。即ち、定常偏角がゼロを中心とする所定範囲内に収まっている場合、左右バランス検出部31は、左右の転舵量は均等であると判断する。一方、船首方位中心θaveが、目標針路θ0から前記所定範囲を超えて右にズレている場合、左右バランス検出部31は、右方向の転舵量が左方向の転舵量よりも大きいと判断する。同様に、船首方位中心θaveが、目標針路θ0から前記所定範囲を超えて左にズレている場合、左右バランス検出部31は、左方向の転舵量が右方向の転舵量よりも大きいと判断する。
左右バランス調整部32は、左右バランス検出部31の判断結果に基づいて、右に転舵する場合の舵機駆動時間と、左に転舵する場合の舵機駆動時間とを、それぞれ調整するように構成されている。即ち、右方向の転舵量が左方向の転舵量よりも大きいと判断された場合、左右バランス調整部32は、舵機駆動処理部26に対して、舵を右に転舵する場合の舵機駆動時間を短くする、又は左に転舵する場合の舵機駆動時間を長くするように設定する。同様に、左方向の転舵量が右方向の転舵量よりも大きいと判断された場合、左右バランス調整部32は、舵機駆動処理部26に対して、左に転舵する場合の舵機駆動時間を短くする、又は右に転舵する場合の舵機駆動時間を長くするように設定する。一方、左右の転舵量が均等であると判断されている場合は、左右バランス調整部32は特に何もしなくて良い。
上記のように構成することで、舵機2の個体差などにより転舵トリガ1回あたりの転舵量に左右で偏りがある場合であっても、強い側へ転舵する際の舵機駆動時間を減少させる、又は弱い側へ転舵する際の舵機駆動時間を増加させることにより、上記左右の転舵量の偏りを解消することができる。なお、左右バランス調整部32は、舵機駆動時間を増加させる調整と、減少させる調整を、交互に行うように構成されている。例えば、左右バランス調整部32は、右に転舵する場合の舵機駆動時間を長くするように調整を行った場合、その次には、左に転舵する場合の舵機駆動時間を短くするように調整する。このように、舵機駆動時間の増加と減少を交互に行うように調整することで、調整を繰り返すことによって舵機駆動時間が無制限に長く(又は無制限に短く)なってしまうことを抑止できる。
以上で説明したように、本実施形態の自動操舵装置5は、目標舵角算出部20と、目標舵角記憶部24と、転舵指令部23と、を備えている。目標舵角算出部20は、船首方位θと目標針路θ0に基づいて、舵機2の目標舵角を算出する。目標舵角記憶部24は、前回の転舵指令時の目標舵角δprevを記憶する。転舵指令部23は、目標舵角算出部20が算出した最新の目標舵角δnewと、目標舵角記憶部24が記憶している前回の転舵指令時の目標舵角δprevと、に基づいて、舵機2に転舵を指示するための転舵指令を出力する。
このように、最新の目標舵角δnewと、前回の転舵指令時の目標舵角δprevと、を参照することにより、目標舵角がどのように変化したかを知ることができる。そして、目標舵角が変化していない場合は舵角を変更する必要が無いと判断できるし、目標舵角が変化している場合には転舵すべきであると判断できる。そこで、これに基づいて舵機2を制御することにより、舵角センサによって現在の舵角を検出しなくても自動操舵制御を実現できる。
続いて、上記の自動操舵装置5による自動操舵方法について、図6のフローチャートを参照して説明する。
まず、設定針路θSを設定する(ステップS101)。前述のように、設定針路θSはユーザが手動設定しても良いし、航法装置などによって自動的に設定されても良い。続いて、設定された設定針路θSに基づいて、目標針路算出部10が目標針路をθ0算出する(ステップS102)。
次に、方位センサ3によって、船首方位θが検出される(ステップS103)。目標舵角算出部20は、検出された船首方位θと、目標針路θ0と、に基づいて、最新の目標舵角δnewを算出する(ステップS104、目標舵角算出工程)。
ステップS105では、転舵指令部23が、目標舵角記憶部24から、前回の転舵指令時の目標舵角δprevを読み出す(前回目標舵角取得工程)。そして、転舵指令部23は、最新の目標舵角δnewと、前回の転舵指令時の目標舵角δprevと、に基づいて、舵機2に対して転舵指令を出す(ステップS106からS110、転舵指令工程)。
転舵指令工程について詳しく説明する。まず、転舵トリガ出力部25は、目標舵角変化量δchgに応じて、転舵トリガを出力するか否かを判断する(ステップS106)。転舵トリガ出力部25は、目標舵角変化量δchgが転舵閾値以上だった場合は、転舵トリガを出力する(ステップS108、転舵トリガ出力工程)。ただし、舵角キープ指令部28が転舵トリガを禁止している場合(ステップS107の判断)、転舵トリガ出力部25は、舵を切り戻す方向の転舵トリガは出力しない。また、目標舵角変化量δchgが転舵閾値未満だった場合は、転舵トリガを出力せずにステップS102に戻る。
転舵トリガが出力された場合、舵機駆動処理部26は、所定の舵機駆動時間のあいだ、舵機2に対して転舵指令を出力する(ステップS109、舵機駆動処理工程)。また、上記転舵トリガが出力された場合、目標舵角記憶部24は、自身が記憶している目標舵角の値を、最新の目標舵角δnewで更新する(ステップS110、目標舵角記憶工程)。
最後に、必要に応じて、舵機駆動時間一時調整部30及び左右バランス調整部32によって、舵機駆動時間が調整される(ステップS111)。そして、ステップS102に戻り、上記の処理が繰り返される。
以上で説明したように、本実施形態の自動操舵方法は、目標舵角算出工程と、前回目標舵角取得工程と、転舵指令工程と、を含んでいる。目標舵角算出工程(ステップS104)では、船首方位θと目標針路θ0に基づいて、舵機2の目標舵角を算出する。前回目標舵角取得工程(ステップS105)では、前回転舵時の目標舵角δprevを取得する。転舵指令工程(ステップS106からS110)では、目標舵角算出工程で算出した最新の目標舵角δnewと、前回目標舵角取得工程で取得した前回転舵時の目標舵角δprevと、に基づいて、舵機2に転舵を指示する転舵指令を出力する。
次に、上記実施形態の変形例について、図7及び図8を参照して説明する。なお、上記実施形態と同一又は類似の構成については、要素名及び図面に同一の符号を付して説明を省略する。
上記実施形態では、転舵トリガ出力部25から転舵トリガ出力されたときに、目標舵角記憶部24の記憶内容を最新の目標舵角δnewに更新するものとした。ところが上記実施形態では、舵角キープ指令部28によって転舵トリガが禁止されているあいだは目標舵角記憶部24に転舵トリガが入力されなくなるので、当該目標舵角記憶部24の記憶内容は更新されない(図7(a))。
船体1の直進中であっても、波や風などの外乱の影響や、舵機2が駆動しないなどの予期せぬ原因により、船首方位θと目標針路θ0とのズレ(針路偏角Δθ)が大きくなってしまう場合がある。このような場合、目標舵角算出部20が算出する目標舵角は、前記針路偏角Δθを解消すべく、舵を切り足す方向に変更される(図7(b))。従って、このように予期せぬ原因により針路偏角Δθが大きくなったときには、舵を切り足す方向に舵角を変更して、前記針路偏角Δθを早期に解消させることが好ましい。
ところが、上記実施形態の構成では、転舵トリガが禁止されているあいだは、舵角キープ指令部28において、目標舵角が変化した方向の判定に誤りが生じる場合がある。例えば図7(b)に示すように、目標舵角が舵を切り足す方向に変更されたにもかかわらず、舵を切り戻す方向に目標舵角が変更された、と誤って判断される場合がある。この誤判断の原因は、目標舵角記憶部24の記憶内容が更新されていない(記憶内容が古い)ことにある。上記のような誤判断が発生すると、舵機2に対して適切な転舵指令を出力できないため、前記針路偏角Δθを早期に解消できない。
そこで本変形例の自動操舵装置50は、図8に示すように、更新トリガ出力部33を備えている。この更新トリガ出力部33は、舵角キープ指令部28によって転舵トリガが禁止されているときに、目標舵角記憶部24に対して更新トリガを出力するように構成されている。目標舵角記憶部24は、更新トリガが入力されると、自身の記憶内容を、目標舵角算出部20が出力した最新の目標舵角δnewで更新する。これによれば、転舵トリガが禁止されている場合であっても、目標舵角記憶部24の記憶内容を更新できる。
このように、本変形例の構成によれば、目標舵角記憶部24の記憶内容を常に更新できるので、舵角キープ指令部28において、目標舵角が変化した方向(舵を切り足す方向に変化したか、舵を切り戻す方向に変化したか)を正確に判定することができる。これにより、舵角キープ指令部28は、目標舵角が舵を切り足す方向に変化したときには、転舵禁止指令を解除して、転舵指令を出力できる。従って、船体1の直進中に予期せぬ原因により針路偏角Δθが大きくなった場合であっても、舵を切り足す方向に舵角を変更して前記針路偏角Δθを早期に解消することができる。
以上に本発明の好適な実施の形態及び変形例を説明したが、上記の構成は例えば以下のように変更することができる。
本発明の自動操舵装置は、船舶の舵の制御に限らず、例えば飛行機など、他の移動体の舵を制御するために利用しても良い。
上記実施形態では、転舵トリガに応じて、舵機駆動時間の間だけ転舵指令を出力する構成としたが、必ずしもこの構成に限定されない。本発明の最大の特徴は、最新の目標舵角と、前回転舵時の目標舵角と、に基づいて自動操舵制御を行うことにある。従って、転舵指令をどのように出力するか(転舵トリガに応じて舵機駆動時間だけ転舵指令を出力するという構成)は、適宜省略したり変更したりすることができる。
自動操舵装置5は、CPU、ROM、RAMなどのハードウェアを備えたコンピュータとして構成することができる。そして、上記ハードウェアとソフトウェア(自動操舵装置を制御するためのプログラム)とが協働することにより、自動操舵装置5の各機能(目標針路算出部10の機能、目標舵角算出部20の機能、転舵指令部23の機能など)を実現する。もっとも、自動操舵装置5を汎用のコンピュータとする構成に限らず、自動操舵装置5の各機能を専用のハードウェアによって実現するように構成しても良い。
上記実施形態では、走行状態判定部27は、設定針路θSと目標針路θ0との差に基づいて、船体1の走行状態を判定するものとした。しかし、船体1の走行状態を判定する方法は、これ以外にも適宜の方法を採用することができる。例えば、走行状態判定部27は、針路偏角Δθに基づいて船の走行状態を判定しても良い。即ち、針路偏角Δθの絶対値が所定の判定閾値未満の場合、船首方位θが目標針路θ0にある程度一致しているということであるから、船体1は直進状態に近いと判定できる。また、針路偏角Δθの絶対値が前記判定閾値以上の場合、船首方位θと目標針路θ0の間にズレがあるので、当該ズレを解消すべく船体1を旋回させている最中であると判定できる。