IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 三菱重工業株式会社の特許一覧

特許7404033制御システム及び構造体、並びに制御方法、並びに制御プログラム
<>
  • 特許-制御システム及び構造体、並びに制御方法、並びに制御プログラム 図1
  • 特許-制御システム及び構造体、並びに制御方法、並びに制御プログラム 図2
  • 特許-制御システム及び構造体、並びに制御方法、並びに制御プログラム 図3
  • 特許-制御システム及び構造体、並びに制御方法、並びに制御プログラム 図4
  • 特許-制御システム及び構造体、並びに制御方法、並びに制御プログラム 図5
  • 特許-制御システム及び構造体、並びに制御方法、並びに制御プログラム 図6
  • 特許-制御システム及び構造体、並びに制御方法、並びに制御プログラム 図7
  • 特許-制御システム及び構造体、並びに制御方法、並びに制御プログラム 図8
  • 特許-制御システム及び構造体、並びに制御方法、並びに制御プログラム 図9
  • 特許-制御システム及び構造体、並びに制御方法、並びに制御プログラム 図10
  • 特許-制御システム及び構造体、並びに制御方法、並びに制御プログラム 図11
  • 特許-制御システム及び構造体、並びに制御方法、並びに制御プログラム 図12
  • 特許-制御システム及び構造体、並びに制御方法、並びに制御プログラム 図13
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-12-15
(45)【発行日】2023-12-25
(54)【発明の名称】制御システム及び構造体、並びに制御方法、並びに制御プログラム
(51)【国際特許分類】
   G05D 1/08 20060101AFI20231218BHJP
   G05B 11/36 20060101ALI20231218BHJP
   B63C 11/00 20060101ALI20231218BHJP
   B63C 11/48 20060101ALI20231218BHJP
   B63G 8/14 20060101ALI20231218BHJP
   B63G 8/20 20060101ALI20231218BHJP
【FI】
G05D1/08 Z
G05B11/36 G
B63C11/00 B
B63C11/48 D
B63G8/14
B63G8/20
G05B11/36 507H
【請求項の数】 7
(21)【出願番号】P 2019202331
(22)【出願日】2019-11-07
(65)【公開番号】P2021077014
(43)【公開日】2021-05-20
【審査請求日】2022-08-25
(73)【特許権者】
【識別番号】000006208
【氏名又は名称】三菱重工業株式会社
(74)【代理人】
【識別番号】100112737
【弁理士】
【氏名又は名称】藤田 考晴
(74)【代理人】
【識別番号】100140914
【弁理士】
【氏名又は名称】三苫 貴織
(74)【代理人】
【識別番号】100136168
【弁理士】
【氏名又は名称】川上 美紀
(74)【代理人】
【識別番号】100172524
【弁理士】
【氏名又は名称】長田 大輔
(72)【発明者】
【氏名】安達 丈泰
(72)【発明者】
【氏名】小田 一道
(72)【発明者】
【氏名】粟屋 伊智郎
(72)【発明者】
【氏名】中田 昌宏
(72)【発明者】
【氏名】栗田 章央
【審査官】大古 健一
(56)【参考文献】
【文献】特開2008-107943(JP,A)
【文献】特開2009-179087(JP,A)
【文献】米国特許出願公開第2004/0163581(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G05B 1/00 - 7/04
G05B 11/00 -13/04
G05B 17/00 -17/02
G05B 21/00 -21/02
B63C 1/00 -15/00
B63G 1/00 -13/02
G05D 1/00 - 1/12
(57)【特許請求の範囲】
【請求項1】
機体の姿勢に関する制御量を、前記制御量の数よりも多い複数の操作手段によって制御する構造体に適用される制御システムであって、
機体の状態量を取得する取得部と、
機体の状態量を状態変数とし、前記操作手段の操作量を入力とした状態方程式において、故障が発生した前記操作手段である故障操作手段に関する情報に基づいて前記故障操作手段に関する項を外乱項として設定し、取得した状態量に基づいて前記故障操作手段以外の前記操作手段の前記操作量を演算する演算部と、
を備え
前記演算部は、前記状態方程式に基づいて、前記外乱項を打ち消すように前記故障操作手段以外の前記操作手段の前記操作量を演算する制御システム。
【請求項2】
前記状態方程式における各係数のうち少なくともいずれか1つは、機体の状態量に関するパラメータの関数として表される請求項1に記載の制御システム。
【請求項3】
前記状態方程式において、前記状態量には機体の前進速度が含まれており、前記前進速度にかかる係数は0に設定されている請求項1または2に記載の制御システム。
【請求項4】
前記操作手段は、アクチュエータにより駆動される請求項1からのいずれか1項に記載の制御システム。
【請求項5】
機体の姿勢を制御する複数の操作手段と、
請求項1からのいずれか1項に記載の制御システムと
を備える構造体。
【請求項6】
機体の姿勢に関する制御量を、前記制御量の数よりも多い複数の操作手段によって制御する構造体に適用される制御方法であって、
機体の状態量を取得する取得工程と、
機体の状態量を状態変数とし、前記操作手段の操作量を入力とした状態方程式において、故障が発生した前記操作手段である故障操作手段に関する情報に基づいて前記故障操作手段に関する項を外乱項として設定し、取得した状態量に基づいて前記故障操作手段以外の前記操作手段の前記操作量を演算する演算工程と、
を有し、
前記演算工程において、前記状態方程式に基づいて、前記外乱項を打ち消すように前記故障操作手段以外の前記操作手段の前記操作量を演算する制御方法。
【請求項7】
機体の姿勢に関する制御量を、前記制御量の数よりも多い複数の操作手段によって制御する構造体に適用される制御プログラムであって、
機体の状態量を取得する取得処理と、
機体の状態量を状態変数とし、前記操作手段の操作量を入力とした状態方程式において、故障が発生した前記操作手段である故障操作手段に関する情報に基づいて前記故障操作手段に関する項を外乱項として設定し、取得した状態量に基づいて前記故障操作手段以外の前記操作手段の前記操作量を演算する演算処理と、
をコンピュータに実行させ
前記演算処理において、前記状態方程式に基づいて、前記外乱項を打ち消すように前記故障操作手段以外の前記操作手段の前記操作量を演算する制御プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、制御システム及び構造体、並びに制御方法、並びに制御プログラムに関するものである。
【背景技術】
【0002】
水中航走体や飛昇体等の構造体では、操作手段によって機体の姿勢を制御している(例えば特許文献1)。例えば水中航走体では、機体に設けた舵を制御することによって、機体の姿勢を制御している。
【先行技術文献】
【特許文献】
【0003】
【文献】国際公開第2018/110598号
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、例えば岩礁に衝突した場合等では、舵の一部に機械的な損傷(例えば固着や変形)が生ずることがある。複数の舵のうちの一部が故障すると、機体の姿勢の制御に支障が生じる場合がある。具体的には、舵が一定の舵角に固着した場合等には、故障した舵の舵角に応じて機体の姿勢に影響が生じる可能性がある。このような場合には、継続的に運転を行うことが困難となる。
【0005】
本開示は、このような事情に鑑みてなされたものであって、より継続的に運転を行うことのできる制御システム及び構造体、並びに制御方法、並びに制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【0006】
本開示の第1態様は、機体の姿勢に関する制御量を、前記制御量の数よりも多い複数の操作手段によって制御する構造体に適用される制御システムであって、機体の状態量を取得する取得部と、機体の状態量を状態変数とし、前記操作手段の操作量を入力とした状態方程式において、故障が発生した前記操作手段である故障操作手段に関する情報に基づいて前記故障操作手段に関する項を外乱項として設定し、取得した状態量に基づいて前記故障操作手段以外の前記操作手段の前記操作量を演算する演算部と、を備え、前記演算部は、前記状態方程式に基づいて、前記外乱項を打ち消すように前記故障操作手段以外の前記操作手段の前記操作量を演算する制御システムである。
【0007】
本開示の第2態様は、機体の姿勢に関する制御量を、前記制御量の数よりも多い複数の操作手段によって制御する構造体に適用される制御方法であって、機体の状態量を取得する取得工程と、機体の状態量を状態変数とし、前記操作手段の操作量を入力とした状態方程式において、故障が発生した前記操作手段である故障操作手段に関する情報に基づいて前記故障操作手段に関する項を外乱項として設定し、取得した状態量に基づいて前記故障操作手段以外の前記操作手段の前記操作量を演算する演算工程と、を有し、前記演算工程において、前記状態方程式に基づいて、前記外乱項を打ち消すように前記故障操作手段以外の前記操作手段の前記操作量を演算する制御方法である。
【0008】
本開示の第3態様は、機体の姿勢に関する制御量を、前記制御量の数よりも多い複数の操作手段によって制御する構造体に適用される制御プログラムであって、機体の状態量を取得する取得処理と、機体の状態量を状態変数とし、前記操作手段の操作量を入力とした状態方程式において、故障が発生した前記操作手段である故障操作手段に関する情報に基づいて前記故障操作手段に関する項を外乱項として設定し、取得した状態量に基づいて前記故障操作手段以外の前記操作手段の前記操作量を演算する演算処理と、をコンピュータに実行させ、前記演算処理において、前記状態方程式に基づいて、前記外乱項を打ち消すように前記故障操作手段以外の前記操作手段の前記操作量を演算する制御プログラムである。
【発明の効果】
【0009】
本開示によれば、より継続的に運転を行うことができるという効果を奏する。
【図面の簡単な説明】
【0010】
図1】本開示の第1実施形態に係る水中航走体を例示した図である。
図2】本開示の第1実施形態に係るX舵を例示した図である。
図3】本開示の第1実施形態に係る制御装置のハードウェア構成の一例を示した図である。
図4】本開示の第1実施形態に係る制御装置が備える機能を示した機能ブロック図である。
図5】本開示の第1実施形態に係る故障診断部の構成例を示す図である。
図6】本開示の第1実施形態に係る故障候補特定部における故障舵の候補特定処理のフローチャートを示した図である。
図7】本開示の第1実施形態に係る演算部における故障舵角算出処理のフローチャートを示した図である。
図8】本開示の第1実施形態に係る縮退指令部における縮退処理のフローチャートを示した図である。
図9】本開示の第1実施形態に係る耐故障制御部の構成例を示す図である。
図10】本開示の第1実施形態に係る耐故障制御部における演算処理のフローチャートを示した図である。
図11】本開示の第1実施形態に係る故障舵特定処理による効果を示す図である。
図12】本開示の第1実施形態に係る耐故障制御部による非干渉化の効果を示す図である。
図13】本開示の第2実施形態に係る故障診断部の構成例を示す図である。
【発明を実施するための形態】
【0011】
〔第1実施形態〕
以下に、本開示に係る制御システム及び構造体、並びに制御方法、並びに制御プログラムの第1実施形態について、図面を参照して説明する。制御システムは、冗長性のある操作手段(例えば舵)によって制御を行う構造体であれば幅広く適用できるものであって、以下に説明するような水中航走体1のみに限定されるものではない。例えば、制御システムは、航空機やロケット、ドローン等の構造体にも適用可能であり、有人及び無人に関わらず適用可能である。
【0012】
絶対座標系(地球座標系)におけるx軸周りの回転角度をロール角φ、y軸周りの回転角度をピッチ角θ、z軸周りの回転角度をヨー角ψと定義されている。ロール角φ、ピッチ角θ、及びヨー角ψが、水中航走体1における機体の姿勢を示している。すなわち、水中航走体1では、機体の姿勢に係るロール角φ、ピッチ角θ、及びヨー角ψを制御対象(制御量)として、後述する操作手段(例えば舵)によって姿勢制御を行う。なお、姿勢としてピッチ角θを制御することによって、深度Z(z軸方向)を変化させることができるため、ピッチ角θと深度Zとは互いに相関している。
【0013】
図1は、本開示の第1実施形態に係る制御システムを備えた水中航走体1を例示した図である。図1に示すように、水中航走体1は、船尾軸線(以下、「x軸」という。)、左右軸線(以下、「y軸」という。)、上下軸線(以下、「z軸」という。)からなる互いに直交する3つの直線軸と、これら各直線軸に対する3つの回転軸とからなる船体座標系の6軸(6自由度)が定義される。そして、x軸方向の速度を速度u、y軸方向の速度を速度v、z軸方向の速度を速度wとする。また、x軸周りの回転角速度を角速度p、y軸周りの回転角速度を角速度q、z軸周りの回転角速度を角速度rとする。すなわち、速度u、速度v、速度w、角速度p、角速度q、角速度rは、機体の状態量となる。
【0014】
水中航走体1の状態量は、水中航走体1の状態を示す値である。本実施形態では、状態量として、速度u、速度v、速度w、角速度p、角速度q、及び角速度rを用いる。そしてさらに、状態量として、ロール角φ、ピッチ角θ、ヨー角ψ、及び深度Zを用いる。各状態量については、水中航走体1の状態(姿勢等)を表すものであり、水中航走体1に設けたセンサによって検出する。検出された各状態量は、後述する制御装置20において用いられる。センサは、例えば、機体内に設けられた慣性航法装置である。各センサについては、機体の内側に設けることによって、水中耐圧や流体抵抗増加等の発生を抑制できる。なお、各状態量の取得方法については、センサによるものに限定されず、シミュレーションモデル等を用いて推定し取得する等の他の方法を用いることも可能である。機体の状態量が取得されれば、各状態量の特定方法(演算方法)については限定されない。
【0015】
制御装置20は、機体に複数設けられた操作手段を制御して、水中航走体1のロール角φ、ピッチ角θ、及びヨー角ψを制御する(姿勢制御)。操作手段とは、水中航走体1の姿勢を制御する手段であり、具体的には舵である。操作手段については、機体の姿勢を制御でき、アクチュエータを用いて駆動される手段であれば舵に限定されない。例えば、スラスタ等を用いることとしてもよい。本実施形態においては、操作手段は、図2に示すような、1番舵R1、2番舵R2、3番舵R3、及び4番舵R4の4枚の舵(X舵)Rを用いる場合について説明する。なお、図2は、船尾から見た図であり、推進力を得るためのプロペラ2も示している。プロペラ2による推進力によって、x軸方向への力を得る。制御装置20では、X舵における各舵を制御して、機体の姿勢に係る制御対象であるロール角φ、ピッチ角θ、及びヨー角ψを制御する。このように、機体の姿勢に関する制御対象の数(本実施形態では3つ)に対して、操作手段の数(本実施形態では4つ)の方が多くなるため、本実施形態のような水中航走体1は冗長性のあるシステムとなる。制御対象は、姿勢として機体のピッチ角θ、ヨー角ψ、及びロール角φの3要素として、機体に4つ以上設けられた操作手段によって制御することとしてもよい。機体の姿勢に関する制御対象を、制御対象の数よりも多い複数の操作手段によって制御する構造体であれば、冗長性のあるシステムとして同様に適応することができる。
【0016】
具体的には、制御装置20は、水中航走体1に設けられた1番舵用アクチュエータ、2番舵用アクチュエータ、3番舵用アクチュエータ、及び4番舵用アクチュエータに対して制御指令値を与え、機体の姿勢を制御する。各アクチュエータを駆動することで、各舵の角度(舵角)を変化させて、機体の姿勢を制御する。
【0017】
図3は、本実施形態に係る制御装置20のハードウェア構成の一例を示した図である。
図3に示すように、制御装置20は、コンピュータシステム(計算機システム)であり、例えば、CPU11と、CPU11が実行するプログラム等を記憶するためのROM(Read Only Memory)12と、各プログラム実行時のワーク領域として機能するRAM(Random Access Memory)13と、大容量記憶装置としてのハードディスクドライブ(HDD)14と、ネットワーク等に接続するための通信部15とを備えている。大容量記憶装置としては、ソリッドステートドライブ(SSD)を用いることとしてもよい。これら各部は、バス18を介して接続されている。
【0018】
また、制御装置20は、キーボードやマウス等からなる入力部や、データを表示する液晶表示装置等からなる表示部などを備えていてもよい。
【0019】
なお、CPU11が実行するプログラム等を記憶するための記憶媒体は、ROM12に限られない。例えば、磁気ディスク、光磁気ディスク、半導体メモリ等の他の補助記憶装置であってもよい。
【0020】
後述の各種機能を実現するための一連の処理の過程は、プログラムの形式でハードディスクドライブ14等に記録されており、このプログラムをCPU11がRAM13等に読み出して、情報の加工・演算処理を実行することにより、後述の各種機能が実現される。なお、プログラムは、ROM12やその他の記憶媒体に予めインストールしておく形態や、コンピュータ読み取り可能な記憶媒体に記憶された状態で提供される形態、有線又は無線による通信手段を介して配信される形態等が適用されてもよい。コンピュータ読み取り可能な記憶媒体とは、磁気ディスク、光磁気ディスク、CD-ROM、DVD-ROM、半導体メモリ等である。
【0021】
図4は、制御装置(制御システム)20が備える機能を示した機能ブロック図である。図4に示されるように、制御装置20は、舵角指令算出部30と、故障診断部40と、縮退指令部50と、耐故障制御部60とを備えている。
【0022】
(舵角指令算出部の構成)
舵角指令算出部30は、目標値に基づいて、X舵における各舵に対する指令値を算出する。このため、舵角指令算出部30は、仮想舵角算出部31と、分配部32とを備えている。目標値とは、機体の姿勢に関する制御量に対する目標値である。制御量とは、制御対象に属する量のうちで、目的の値にまで制御することが望まれる量である。目標値は、ロール角φ、ピッチ角θ、及びヨー角ψのそれぞれに対応する目標値となる。ピッチ角θは、機体の深度Zに関連するため、本実施形態に係る仮想舵角算出部31では、深度Zの目標値を用いて、深度制御器33によりピッチ角θの目標値を算出する場合について説明する。しかしながら、目標値としては、機体の姿勢に関する制御量を用いることができるため、ロール角φ、ピッチ角θ、及びヨー角ψに対応する目標値が仮想舵角算出部31へ入力されることとしてもよい。舵角指令算出部30では、機体の姿勢に関する制御量に対する目標値(ロール角φ、ピッチ角θ、及びヨー角ψ)に基づいて、各舵に対応する指令値を算出することができれば、図4の構成に限定されない。
【0023】
仮想舵角算出部31は、機体の姿勢に関する制御量の目標値に基づいて、仮想舵(横舵、縦舵、ロール舵)に対応する指令値を算出している。目標値は、深度目標値Z*、ヨー角目標値ψ*、ロール角目標値φ*である。深度目標値Z*については、ピッチ角目標値θ*を算出するために用いられるため、仮想舵の指令値は、ロール角目標値φ*、ピッチ角目標値θ*、及びヨー角目標値ψ*に基づいて算出されることとなる。仮想舵は、仮想的に設定された舵であり、具体的には横舵、縦舵、及びロール舵である。
【0024】
仮想舵角算出部31には、各目標値と、各目標値に対応する状態量との差分が入力される。具体的には、深度目標値Z*と深度の状態量との差分、ヨー角目標値ψ*とヨー角ψの状態量との差分、及びロール角目標値φ*とロール角φの状態量との差分が仮想舵角算出部31へ入力される。なお、仮想舵角算出部31へは、ピッチ角θの状態量についても入力される。
【0025】
仮想舵角算出部31は、深度制御器33と、姿勢角制御器36と、方位制御器34と、ロール制御器35とを備えている。深度制御器33は、深度目標値Z*と深度の状態量との差分に基づいて、ピッチ角目標値θ*を算出する。そして、ピッチ角目標値θ*と、ピッチ角θの状態量との差分が姿勢角制御器36へ入力される。姿勢角制御器36では、ピッチ角目標値θ*とピッチ角θの状態量との差分に基づいて、横舵の指令値を算出する。すなわち、仮想舵である横舵の指令値は、ピッチ角目標値θ*に基づいて算出される。
【0026】
方位制御器34は、ヨー角目標値ψ*とヨー角ψの状態量との差分に基づいて、縦舵の指令値を算出する。すなわち、仮想舵である縦舵の指令値は、ヨー角目標値ψ*に基づいて算出される。
【0027】
ロール制御器35は、ロール角目標値φ*とロール角φの状態量との差分に基づいて、ロール舵の指令値を算出する。すなわち、仮想舵であるロール舵の指令値は、ロール角目標値φ*に基づいて算出される。
【0028】
横舵、縦舵、及びロール舵の指令値が算出されると、分配部32へ出力される。仮想舵角算出部31と、分配部32の間には、無効化部37が設けられている。無効化部37は、後述する縮退指令部50により制御される。具体的には、無効化部37は、縮退指令部50より縮退の指令がない場合には、仮想舵角算出部31からの出力値をそのまま分配部32へ出力する。そして、無効化部37は、縮退指令部50より縮退の指令がある場合には、仮想舵角算出部31からの出力値(特定の出力)を無効化する。本実施形態では、ロール角φに対して優先順位を低く設定しているため、具体的な構成としては、ロール制御器35の出力側に無効化部37を設けている。すなわち、後述する縮退指令部50より縮退の指令がある場合には、ロール制御器35の出力が無効化され、ロール舵の指令値として0が分配部32へ入力される。なお、縮退に関する優先順位の設定によって、ロール制御器35の出力側に無効化部37を設ける場合以外の構成とすることも可能である。
【0029】
分配部32は、仮想舵である横舵、縦舵、及びロール舵の指令値に基づいて、実際の舵であるX舵(1番舵R1、2番舵R2、3番舵R3、及び4番舵R4)への指令値を算出する。例えば、横舵、縦舵、及びロール舵の各指令値を数値変換(例えば定数倍)し、数値変換された値を加減算することにより、X舵の指令値を算出する。例えば、1番舵R1に対する指令値は、横舵の指令値に基づく値と、縦舵の指令値に基づく値と、ロール舵の指令値に基づく値とを加減算することによって算出される。なお、仮想舵に基づくX舵の指令値の算出方法については上記に限定されない。
【0030】
分配部32によって算出されたX舵への指令値は、X舵における各舵のアクチュエータへ出力され、舵が制御される。
【0031】
(故障診断部の構成)
故障診断部40は、X舵に対して故障診断を行う。すなわち、故障診断部40では、故障が発生している舵である故障舵を特定する。図5に示すように、故障診断部40は、推定部41と、判定部42と、演算部(故障操作量演算部)45とを備えている。故障診断部40へは、水中航走体1の状態量として、速度u、速度v、速度w、角速度p、角速度q、角速度r、ピッチ角θ、ロール角φが入力される。状態量とは、水中航走体1における所定のパラメータにおける現在の値(現状値)である。なお、故障診断部40で使用される状態量については、上記に限定されず、後述するオブザーバの構成に応じて設定される。例えば、状態量としては、速度u、速度v、速度w、角速度p、角速度q、角速度r、ピッチ角θ、ヨー角ψ、及びロール角φのうち少なくともいずれか1つを用いることが可能である。機体の状態量については、例えば機体に設けられたセンサ等によって計測され、取得部61へ出力される。
【0032】
推定部41は、構造体の状態量と、操作手段のうち1つの操作手段の指令値とに基づいて、操作手段のうち他の操作手段に対する操作量を推定する推定処理を、各操作手段に対応して行う。具体的には、推定部41は、水中航走体1の状態量と、X舵のうち1つの舵(例えば1番舵R1)への指令値とに基づいて、他の舵(例えば、2番舵R2、3番舵R3、4番舵R4)における操作量を推定する(推定処理)。操作量とは、指令値に基づいて駆動された場合の舵の角度(舵角)である。そして該推定処理を、他の舵に対しても同様に行う。
【0033】
推定部41は、図5に示すように、オブザーバを用いて、推定処理を行う。オブザーバは、各舵に対応してそれぞれ設けられている。図5では、オブザーバOS1のみ構成を具体的に示しており、他のオブザーバ(オブザーバOS2、オブザーバOS3、オブザーバOS4)については構成を略示しているが、オブザーバOS1と同様の構成である。
【0034】
状態(状態変数)をxとし、入力を各舵に対する操作量とした場合には、線形近似モデル(状態方程式)は、以下の式(1)となる。1番舵R1に対する操作量をδr1、2番舵R2に対する操作量をδr2、3番舵R3に対する操作量をδr3、4番舵R4に対する操作量をδr4とする。
【0035】
【数1】
【0036】
式(1)において、Aは状態行列(A行列)、B(b1、b2、b3、b4を要素とする行列)は入力行列(B行列)である。B行列は、舵の影響係数であり、揚力係数や感度係数とも呼ばれる。式(1)では、各舵に対する操作量と、状態変数との関係が示されている。状態変数は、推定部41へ入力される各状態量(速度u、速度v、速度w、角速度p、角速度q、角速度r、ピッチ角θ、ロール角φ)の行列となる。式(1)において、例えば1番舵R1を正常とした場合には、2番舵R2、3番舵R3、及び4番舵R4に対するB行列を用いて、式(1)を以下の式(2)へ変形することができる。
【0037】
【数2】
【0038】
式(2)は、疑似逆行列を用いて、式(3)へ変形することができる。
【0039】
【数3】
【0040】
すなわち、1つの舵(式(3)では1番舵R1)を正常と仮定して(操作量と指令値が等しいとして)、各状態量を用いることによって、その他の舵の操作量を算出することができる。なお、A行列やB行列の各要素は、水中航走体1の特性に基づいて予め設定されている。
【0041】
推定部41では、式(3)の算出原理を用いたオブザーバによって、舵の操作量を推定する。具体的には、図5に示すように、オブザーバOS1では、状態量にA行列を乗じ、また、状態量にsを乗じている。状態量にsを乗じることとは、時間領域において状態量を微分することに相当する。そして、1番舵R1に故障が発生していないと仮定して(すなわち、操作量と指令値とが等しいと仮定して)、1番舵R1の指令値にB行列の1番舵R1に対応する成分(b1)を乗ずる。そして、状態量xを微分した値に対して、状態量xにA行列を乗じた値及び1番舵R1の指令値にb1を乗じた値を減算した値を算出する。該算出された値は、式(2)の左辺に相当する。そして、2番舵R2、3番舵R3、及び4番舵R4に対応するB行列成分の疑似逆行列B 234を乗ずることによって、式(3)の右辺の計算を行い、2番舵R2、3番舵R3、及び4番舵R4の舵角の推定値を算出する。
【0042】
他のオブザーバにおいても同様の計算が行われる。なお、オブザーバOS1におけるB行列の1番舵R1に対応する成分(b1)や、2番舵R2、3番舵R3、及び4番舵R4に対応するB行列成分の疑似逆行列は、各オブザーバに対応してそれぞれ設定されている。
【0043】
推定部41では、上記のような1番舵R1に対応する推定処理を、他の舵に対しても行う。すなわち、1番舵R1を正常と仮定して推定処理を行うことによって、2番舵R2、3番舵R3、及び4番舵R4の舵角の推定値を算出する(オブザーバOS1)。2番舵R2を正常と仮定して推定処理を行うことによって、1番舵R1、3番舵R3、及び4番舵R4の舵角の推定値を算出する(オブザーバOS2)。3番舵R3を正常と仮定して推定処理を行うことによって、1番舵R1、2番舵R2、及び4番舵R4の舵角の推定値を算出する(オブザーバOS3)。4番舵R4を正常と仮定して推定処理を行うことによって、1番舵R1、2番舵R2、及び3番舵R3の舵角の推定値を算出する(オブザーバOS4)。このようにして、各推定処理によって各舵に対応した舵角の推定値が3つずつ(計12つ)算出されることとなる。
【0044】
このように算出された各舵角の推定値は、判定部42へ出力される。
【0045】
判定部42は、推定された各操作手段にそれぞれ対応する各操作量に基づいて、各操作手段に対する故障判定を行う。具体的には、判定部42は、各舵のそれぞれに対応する舵角の推定値に基づいて故障判定を行う。このため、図5に示すように、判定部42は、故障候補特定部43と、多数決部44とを備えている。なお、本実施形態では、推定部41により推定された各推定値に基づいて多数決ロジックにより故障診断を行う場合について説明するが、推定部41により推定された各推定値に基づいて故障診断を行うことができれば、多数決ロジックによるものに限定されない。
【0046】
故障候補特定部43は、同じ舵に対して推定された複数の舵角(操作量)に基づいて、故障舵の候補を特定する。具体的には、故障候補特定部43は、操作手段に対して推定された各操作量のうち最も偏差の大きい操作量を異常操作量として特定し、特定された異常操作量に基づいて故障判定を行う。このため、故障候補特定部43には、1番舵R1に対応した第1特定部S1と、2番舵R2に対応した第2特定部S2と、3番舵R3に対応した第3特定部S3と、4番舵R4に対応した第4特定部S4とが設けられている。すなわち、第1特定部S1には、1番舵R1に対して推定された各舵角が入力され、第2特定部S2には、2番舵R2に対して推定された各舵角が入力され、第3特定部S3には、3番舵R3に対して推定された各舵角が入力され、第4特定部S4には、4番舵R4に対して推定された各舵角が入力される。
【0047】
具体的には、第1特定部S1では、1番舵R1に対して推定された各舵角のうち、最も偏差の大きい舵角を異常舵角(異常と推定される舵角)として特定する。他と比較して偏差が最も大きいということは、推定処理に誤りがあったと想定されるため、異常舵角として特定された舵角の推定処理において正常と仮定した舵を、故障舵の候補とする。すなわち、第1特定部S1では、2番舵R2、3番舵R3、及び4番舵R4のいずれか1つが故障舵として特定される。故障舵として特定された舵の故障フラグを1、故障舵として特定されなかった舵の故障フラグを0として出力がされる。
【0048】
第1特定部S1においては、2番舵R2に対応した故障フラグF21、3番舵R3に対応した故障フラグF31、4番舵R4に対応した故障フラグF41が出力される。第2特定部S2においては、1番舵R1に対応した故障フラグF12、3番舵R3に対応した故障フラグF32、4番舵R4に対応した故障フラグF42が出力される。第3特定部S3においては、1番舵R1に対応した故障フラグF13、2番舵R2に対応した故障フラグF23、4番舵R4に対応した故障フラグF43が出力される。第4特定部S4においては、1番舵R1に対応した故障フラグF14、2番舵R2に対応した故障フラグF24、3番舵R3に対応した故障フラグF34が出力される。各特定部では、故障舵の候補とされた舵に対応する故障フラグが1として出力される。例えば、第1特定部S1において、2番舵R2が故障舵として特定された場合には、故障フラグF21が1、故障フラグF31が0、故障フラグF31が0として出力がされる。
【0049】
図6は、故障候補特定部43における故障舵の候補特定処理の一例を示すフローである。例えば、図6のフローは、各舵角が推定された後に開始される。図6については、1番舵R1に対して推定された各舵角に基づいて故障舵を推定する場合(第1特定部S1)について例示している。他の舵についても図6と同様の処理によって故障舵の候補特定処理を行うことができる。図6のフローでは、2番舵R2を正常と仮定した推定処理によって推定された1番舵R1の舵角をdr12とし、3番舵R3を正常と仮定した推定処理によって推定された1番舵R1の舵角をdr13とし、4番舵R4を正常と仮定した推定処理によって推定された1番舵R1の舵角をdr14として説明を行う。
【0050】
故障候補特定部43では、1番舵R1に関して推定された各舵角(dr12、dr13、dr14)を取得し(S101)、各舵角の平均値を算出する(S102)。そして、各舵角について、平均値に対する偏差(絶対値)を算出する(S103)。各舵角に対応する偏差が閾値未満であるか否かを判定する(S104)。閾値については、各舵角の推定ばらつき等によって設定され、各偏差が等しいとみなせる上限値として設定される。S104では、各舵角に対応する偏差がすべて等しい(すなわちすべて0である)かを判定することがより好ましい。各舵角に対応する偏差が閾値未満である場合(S104のYES判定)には、各舵角は異常ではないとして、各舵の故障フラグを0として出力する(S105)。
【0051】
各舵角に対応する偏差が閾値未満でない場合(S104のNO判定)には、dr12の偏差が最大か否かを判定する(S106)。dr12の偏差が最大である場合(S106のYES判定)には、2番舵R2の故障フラグを1とする(S107)。dr12の偏差が最大でない場合(S106のNO判定)には、dr13の偏差が最大か否かを判定する(S108)。dr13の偏差が最大である場合(S108のYES判定)には、3番舵R3の故障フラグを1とする(S109)。dr13の偏差が最大でない場合(S108のNO判定)には、dr14の偏差が最大である場合であるため、4番舵R4の故障フラグを1とする(S110)。なお、1とされなかった故障フラグは0となる。
【0052】
このようにして、第1特定部S1では、1番舵R1に対して推定された各舵角に基づいて故障舵を特定し、故障フラグを1とする。第2特定部S2、第3特定部S3、及び第4特定部S4についても、同様に処理を行い、故障舵が特定された故障フラグが設定される。具体的には、第2特定部S2では、2番舵R2に対して推定された各舵角に基づいて故障舵を特定し、故障フラグを1とする。第3特定部S3では、3番舵R3に対して推定された各舵角に基づいて故障舵を特定し、故障フラグを1とする。第4特定部S4では、4番舵R4に対して推定された各舵角に基づいて故障舵を特定し、故障フラグを1とする。
【0053】
このように故障候補特定部43において処理が行われることによって、第1特定部S1から故障フラグ(F21、F31、F41)、第2特定部S2から故障フラグ(F12、F32、F42)、第3特定部S3から故障フラグ(F13、F23、F43)、第4特定部S4から故障フラグ(F14、F24、F34)が出力される。
【0054】
すなわち、故障候補特定部43からは、1番舵R1に対応する故障フラグ(F12、F13、F14)、2番舵R2に対応する故障フラグ(F21、F23、F24)、3番舵R3に対応する故障フラグ(F31、F32、F34)、4番舵R4に対応する故障フラグ(F41、F42、F43)が出力される。各フラグは、多数決部44へ出力される。
【0055】
多数決部44では、各操作手段に対応して異常操作量が特定された後に、特定された各異常操作量の推定に用いた指令値に対応する操作手段が等しい場合に、各異常操作量に対応する操作手段に対して故障が発生していると判定する。換言すると、多数決部44は、故障候補特定部43において各舵に対応して故障舵の候補が特定された後に、特定された故障舵が等しい場合に、該故障舵に異常が発生していると推定する。このように、各操作手段に対応して異常操作量が特定された後に、各異常操作量の推定において正常と仮定した操作手段を特定し、特定された各操作手段が等しい場合に、該操作手段に異常が発生していると診断することができる。
【0056】
例えば、第1特定部S1において2番舵が故障舵として特定され、第3特定部S3において2番舵が故障舵として特定され、第4特定部S4において2番舵が故障舵として特定された場合に、2番舵に故障が発生していると判定する。このため、多数決部44は、第1AND部A1と、第2AND部A2と、第3AND部A3と、第4AND部A4とを備えている。第1AND部A1には1番舵R1に対応する故障フラグ(F12、F13、F14)が入力され、第2AND部A2には2番舵R2に対応する故障フラグ(F21、F23、F24)が入力され、第3AND部A3には3番舵R3に対応する故障フラグ(F31、F32、F34)が入力され、第4AND部A4には4番舵R4に対応する故障フラグ(F41、F42、F43)が入力される。
【0057】
第1AND部A1は、1番舵R1に対応する故障フラグ(F12、F13、F14)が入力され、すべての故障フラグが1である場合に、1番舵R1に故障が発生していると判定する。すなわち、第1AND部A1は、F12、F13、F14がすべて1である場合に、1番舵故障フラグF(R1)を1として出力する。
【0058】
第2AND部A2は、2番舵R2に対応する故障フラグ(F21、F23、F24)が入力され、すべての故障フラグが1である場合に、2番舵R2に故障が発生していると判定する。すなわち、第2AND部A2は、F21、F23、F24がすべて1である場合に、2番舵故障フラグF(R2)を1として出力する。
【0059】
第3AND部A3は、3番舵R3に対応する故障フラグ(F31、F32、F34)が入力され、すべての故障フラグが1である場合に、3番舵R3に故障が発生していると判定する。すなわち、第3AND部A3は、F31、F32、F34がすべて1である場合に、3番舵故障フラグF(R3)を1として出力する。
【0060】
第4AND部A4は、4番舵R4に対応する故障フラグ(F41、F42、F43)が入力され、すべての故障フラグが1である場合に、4番舵R4に故障が発生していると判定する。すなわち、第4AND部A4は、F41、F42、F43がすべて1である場合に、4番舵故障フラグF(R4)を1として出力する。
【0061】
故障候補特定部43における第1特定部S1、第2特定部S2、第3特定部S3、及び第4特定部S4の各部では、1つの舵に対応する故障フラグが1とされる。このため、多数決部44では、1番舵故障フラグF(R1)、2番舵故障フラグF(R2)、3番舵故障フラグF(R3)、4番舵故障フラグF(R4)のうちのいずれか1つが1となる(またはすべてのフラグが0となる場合もある)。このため、X舵のうち1つの舵の故障を特定することができる。
【0062】
なお、上記例では、多数決部44において故障舵を特定することとしているが、AND処理(論理積処理)ではなくOR処理(論理和処理)を行うこととしてもよい。また、故障候補特定部43から出力された情報を分析して故障舵の特定を行うこととしてもよい。分析については統計的手法ともちいてもよいし、AI等の機械学習を利用することとしてもよい。
【0063】
操作手段に対して推定された各操作量のそれぞれに対応する各偏差が閾値未満である場合に、該操作手段に対して故障が発生していると判定することとしてもよい。具体的には、ある舵に対応して推定された舵角の各偏差が閾値未満である場合とは、各舵に故障が生じていない場合、または、該舵に故障が発生している場合のいずれかである。すなわち、X舵において異常が発生していることを前提として、特定の舵に対応して推定された舵角の各偏差が閾値未満である場合には、該特定の舵に故障が発生していると推定することもできる。なお、この場合には、目標軌道から外れている等の原因によっていずれかの舵に故障が発生していることを推定することができる。
【0064】
演算部(故障操作量演算部)45は、操作手段に対して推定された各操作量に基づいて、故障した操作手段の操作量である故障操作量を演算する。具体的には、演算部45は、故障舵として特定された舵に対して推定された各舵角に基づいて、故障舵角を推定する。例えば、各舵角に対して平均値を算出することによって、故障舵角を算出する。なお、算出方法については平均値に限定されず中央値等の値とすることとしてもよい。
【0065】
図7は、演算部45における故障舵角算出処理の一例を示すフローである。例えば、図7のフローは、故障舵が特定された後に開始される。なお、図7では、1番舵R1が故障舵として特定された場合を例としている。故障舵として特定された舵に対して推定された舵角(dr12、dr13、dr14)を取得し(S201)、各舵角の平均値を算出する(S202)。そして、算出した平均値を、故障舵の舵角として出力する(S203)。なお、舵角の平均値はS102でも算出しているため、S102で算出した平均値を使用することとしてもよい。
【0066】
演算部45は、平均値を算出する際には、故障が発生していると判定された操作手段の指令値に基づいて推定された操作量を除いて、故障操作量を演算する。図7のフローでは、1番舵R1に故障が発生した場合に、正常である舵(2番舵R2、3番舵R3、4番舵R4)を正常と仮定してオブザーバにより推定した舵角(dr12、dr13、dr14)に基づいて1番舵R1の故障舵角を算出しているため、より正確に故障舵角を算出することができる。
【0067】
(故障診断部による故障舵特定処理の効果)
次に、上述の故障診断部40による故障舵特定処理による効果について図11を参照して説明する。図11では、4番舵R4に固着故障が発生した場合において、舵角推定を行う場合を例示している。このため、図11では、縦軸を角度(舵角)、横軸を時間としている。時刻T1において4番舵R4に故障が発生したとする。そうすると、4番舵R4の指令値は舵角に反映されず、4番舵R4の舵角は、特定の舵角に固着する。故障が発生すると、故障診断部40では故障舵特定処理が実行される。故障舵特定処理によって、図11に示すように、推定舵角は故障舵角へより迅速に収束する。そして、より正確な故障舵角が推定される。
【0068】
(縮退指令部の構成)
縮退指令部50は、舵角指令算出部30における無効化部37に指令を出力して、舵角指令算出部30における制御系を縮退化する。具体的には、縮退指令部50は、正常に制御可能な操作手段の数が制御量の数以上である場合には、各制御量のそれぞれに対応する目標値に基づいて、各操作手段に対する指令値を算出させ、正常に制御可能な操作手段の数が制御量の数未満である場合には、各指令値の算出に使用する制御量の数を縮退し、各目標値の少なくともいずれか1つに基づいて各操作手段に対する指令値を算出させる。なお、故障舵の数については、故障診断部40の結果を用いる。
【0069】
冗長性のある水中航走体1において、舵に故障が発生した場合に、制御可能な正常な舵の数が、機体の制御量(姿勢に係る制御の対象)の数より少ない場合には、正常な舵だけで各目標値に対応した制御を行うことが困難となる。例えば、制御量をピッチ角θ、ヨー角ψ、及びロール角φとしており、機体に4つ設けられた舵のうち2つ故障した場合(正常な舵は2つ)、2つの舵でピッチ角θ、ヨー角ψ、及びロール角φを制御することは困難である。もし制御した場合には、各制御が干渉し合い目的の制御を行うことができない場合もある。このため、縮退指令部50では、舵の故障数に応じて、制御系の縮退化を行う。
【0070】
縮退とは、舵角指令算出部30における制御系統を縮退化することである。具体的には、舵角指令算出部30は、各目標値に対応した制御系(深度(ピッチ角θ)に対応した制御系、ヨー角ψに対応した制御系、ロール角φに対応した制御系)を有しているため、制御系の制御量の数(次元数)を減らすことによって縮退を行う。例えば、ロール角φに対応した制御系は使用せずに、深度(ピッチ角θ)に対応した制御系及びヨー角ψに対応した制御系のみで指令値を算出する。換言すると、X舵の指令値算出に用いる目標値の数を減少させ、各目標値の少なくともいずれか1つに基づいてX舵に対する指令値を算出する。
【0071】
縮退については、各制御量に対して予め設定された優先順位に基づいて縮退を行う。本実施形態では、ロール角φの優先順位が低い場合について説明する。すなわち、制御量は、姿勢として機体のピッチ角θ、ヨー角ψ、及びロール角φであり、正常に制御可能な舵の数が2つである場合には、ピッチ角θ及びヨー角ψの目標値に基づいて、各舵に対する指令値を算出する。このように、正常に制御可能な舵の数と、使用する目標値の数が等しくなるように、縮退を行う。
【0072】
このため、図4に示すように、ロール制御器35の出力側(分配部32の入力側)に、無効化部37が設けられている。ピッチ角θ及びヨー角ψを優先的に制御することによって、進行方向の制御を継続することが可能となる。このため、舵に故障が発生した場合であっても、目標軌道への航行を継続することが可能となる。無効化の方法については、優先順位の低い制御対象の目標値がX舵の指令値算出に反映されない方法であれば、上記に限定されない。例えば、対象の目標値の入力を遮断する等の方法でもよい。無効化する制御対象(優先順位)についても運行目的等によって適宜変更可能である。
【0073】
縮退指令部50は、正常な舵の数が、制御量の数以上である場合に、舵角指令算出部30において、各制御対象のそれぞれに対応する目標値に基づいて各舵に対する指令値を算出させる。正常な舵の数が制御対象の数以上である場合とは、例えば、制御量であるピッチ角θ、ヨー角ψ、及びロール角φに対して3つ以上の舵が正常である場合である。縮退指令部50は、正常な舵の数が制御量の数以上である場合には、無効化部37においてロール制御器35の出力をそのまま分配部32へ出力させる。すなわち、正常な舵の数が制御量の数以上である場合には、制御系の縮退を行うことなく、通常の制御を行うこととなる。
【0074】
縮退指令部50は、正常に制御可能な操作手段の数が制御量の数未満である場合には、舵角指令算出部30において、制御量の数を縮退し、各目標値の少なくともいずれか1つに基づいて各舵に対する指令値を算出させる。正常な舵の数が制御量の数未満である場合とは、例えば、制御量であるピッチ角θ、ヨー角ψ、及びロール角φに対して2つ以下の舵が正常である場合である。縮退指令部50は、正常な舵の数が制御量の数未満である場合には、無効化部37においてロール制御器35の出力を分配部32へ出力させず(無効化)、0(零)をロール舵の指令値として分配部32へ出力させる。すなわち、正常な舵の数が制御量の数未満である場合には、制御系を縮退して制御を行うこととなる。正常に制御可能な舵の数と、使用する目標値の数が等しくなるように縮退を行うこととしてもよいし、使用する目標値の数を、正常に制御可能な舵の数より少なくすることとしてもよい。
【0075】
縮退が行われた場合には、分配部32には横舵の指令値、縦舵の指令値、及びロール舵の指令値(零)が入力されるため、横舵の指令値及び縦舵の指令値に基づいて、各舵の指令値が算出される。本実施形態では、分配部32を各仮想舵の指令値の加減算としているため、縮退対象の制御系の出力を0とすることで、無効化を行うことができる。
【0076】
このように縮退を行うことによって、ロール角目標値φ*がX舵の指令値の算出に反映されなくなる。このためロール角φに対する制御は無効化して、ピッチ角θ及びヨー角ψを目標値に追従するように制御を行うことが可能となる。すなわち、目標軌道への航行を継続することが可能となる。
【0077】
本実施形態では、ロール角φに対する優先順位を低く設定する場合について説明したが、縮退に関する優先順位については、運行の目的(運行優先事項)に応じて適宜設定可能である。例えば、ピッチ角θの優先順位を低く設定することとしてもよい。具体的には、制御量は、姿勢として機体のピッチ角θ、ヨー角ψ、及びロール角φであり、正常に制御可能な操作手段の数が2つである場合には、ヨー角ψ及びロール角φの目標値に基づいて、各操作手段に対する指令値を算出する。この場合には、ピッチ角θに対する制御は無効化されるものの、ヨー角ψ及びロール角φに対して制御を行うことができるため、機体をなるべく移動させずに、その場にとどまらせることができる。
【0078】
図8は、縮退指令部50における縮退処理の一例を示すフローである。例えば、図8のフローは、所定の制御周期で繰り返し実行される。
【0079】
まず、故障が発生したか否かを判定する(S301)。S301は、故障診断部40による診断結果に応じて行う。故障が発生していない場合(S301のNO判定)には、縮退を行うことなく、処理を終了する。水中航走体1は、冗長性のあるシステムであるため、S301のNO判定では、正常な舵の数が制御対象の数以上である場合となり、舵角指令算出部30では、各制御対象のそれぞれに対応する目標値に基づいて各舵に対する指令値を算出する。
【0080】
故障が発生した場合(S301のYES判定)には、正常に制御可能な舵の数が機体の姿勢に関する制御量の数未満であるか否かを判定する(S302)。正常に制御可能な舵の数が機体の姿勢に関する制御量の数未満でない場合(S302のNO判定)には、正常な舵の数が制御量の数以上である場合であるため、縮退を行うことなく、処理を終了する。この場合には、舵角指令算出部30では、各制御量のそれぞれに対応する目標値に基づいて各舵に対する指令値を算出する。
【0081】
正常に制御可能な舵の数が機体の姿勢に関する制御量の数未満である場合(S302のYES判定)には、縮退を行う(S303)。具体的には、優先順位の低い制御量(例えばロール角φ)に対応した制御を無効化させるため、無効化部37へ無効化指示を行う。このため、舵角指令算出部30では、制御量の数が縮退され、各目標値の少なくともいずれか1つに基づいて各舵に対する指令値を算出する。なお、無効化部37への指示により縮退を行う場合に限定されず、縮退方法によって、S303の具体的な縮退処理は異なる。
【0082】
このように縮退制御を行うことで、より確実に目的にあう運行を行うことが可能となる。
【0083】
(耐故障制御部の構成)
耐故障制御部60は、故障舵の影響を非干渉化するように、各舵に対する指令値を算出する。例えば、X舵のうちの1つの舵が故障して一定の舵角で固着した場合には、該故障舵は固着した舵角に応じて機体に力を及ぼす。このような故障舵の及ぼす力は、機体の姿勢制御に影響を及ぼす。このため、耐故障制御部60では、故障舵の影響を抑制するように、他の舵(正常に動く舵)を制御する。
【0084】
耐故障制御部60は、図9に示すように、取得部61と、演算部(指令値演算部)62とを備えている。
【0085】
取得部61は、機体の状態量を取得する。機体の状態量とは、水中航走体1における所定のパラメータにおける現在の値(現状値)である。取得部61は、耐故障制御部60における演算に用いるために、状態量を取り込む。状態量は、例えば、速度u、速度v、速度w、角速度p、角速度q、角速度r、ピッチ角θ、ロール角φが入力される。なお、耐故障制御部60で使用される状態量については、上記に限定されず、後述する状態方程式の構成に応じて設定される。例えば、状態量としては、速度u、速度v、速度w、角速度p、角速度q、角速度r、ピッチ角θ、ヨー角ψ、及びロール角φのうち少なくともいずれか1つを用いることが可能である。
【0086】
機体の状態量については、例えば機体に設けられたセンサ等によって計測され、取得部61へ出力される。機体のシミュレーションモデルを用いて、各状態量の値を推定することとしてもよい。
【0087】
取得部61において取得された状態量は、演算部62へ出力される。
【0088】
演算部(指令値演算部)62は、機体の状態量を状態変数とし、操作手段の操作量を入力とした状態方程式において、故障が発生した操作手段である故障操作手段に関する情報に基づいて故障操作手段に関する項を外乱項として設定し、取得した状態量に基づいて故障操作手段以外の操作手段の操作量を演算する。故障操作手段に関する情報とは、故障操作手段の識別情報(故障舵特定情報)、及び故障操作手段の故障操作量(故障舵角)である。演算部62は、状態方程式に基づいて、外乱項を打ち消すように故障操作手段以外の操作手段の操作量を演算する。具体的には、演算部62は、状態方程式において、状態変数の微分項を0とし、故障操作手段以外の操作手段の操作量に対して解くことにより、演算を行う。すなわち、演算部62では、状態方程式を操作量に対して解くことで、故障舵の影響を非干渉化するように、正常に制御可能な舵(正常舵)の指令値(解として得られる操作量)を演算する。
【0089】
本実施形態では、演算部62は、舵角指令算出部30において算出された各舵に対する指令値に対して、故障舵の影響を非干渉化するための補正値を演算する場合について説明する。なお、本実施形態における耐故障制御部60では、故障が発生した操作手段である故障操作手段に関する情報として、故障診断部40の出力である故障操作手段の識別情報(故障舵特定情報)、及び故障操作手段の故障操作量(故障舵角)を用いる場合について説明しているが、耐故障制御部60では故障操作手段の特定及び故障操作量が入力されれば、故障診断部40の出力を用いる場合に限定されない。また、縮退指令部50は、耐故障制御部60とともに制御装置20に設けられることとしているが、縮退指令部50のみを制御装置20に設けることとしてもよい。
【0090】
水中航走体1の状態方程式は、以下の式(4)によって表される。なお、式(4)は、船体座標系における線形化状態方程式である。
【0091】
【数4】
【0092】
式(4)において、Δuは速度uの変化量(微小増減分)、Δvは、速度vの変化量、Δwは、速度wの変化量、Δpは角速度pの変化量、Δqは角速度qの変化量、Δrは角速度rの変化量である。a11からa66は、速度u、速度v、速度w、角速度p、角速度q、及び角速度rのそれぞれに対応したA行列の各要素である。Δφはロール角φの変化量であり、Δθはピッチ角θの変化量である。a18からa69は、ロール角φ、及びピッチ角θのそれぞれに対応したA行列の各要素である。Δnは、機体において推進力を得るためのプロペラ2の回転数(スラスタ回転数)の変化量であり、Δδr1は、1番舵R1の舵角の変化量であり、Δδr2は、2番舵R2の舵角の変化量であり、Δδr3は、3番舵R3の舵角の変化量であり、Δδr4は、4番舵R4の舵角の変化量である。b11からb65は、回転数、1番舵R1の舵角、2番舵R2の舵角、3番舵R3の舵角、及び4番舵R4の舵角のそれぞれに対応したB行列の各要素である。式(4)においてA行列及びB行列については、水中航走体1の特性に応じて予め設定されている。
【0093】
式(4)において、各舵の舵角(Δδr1、Δδr2、Δδr3、Δδr4)は変数としているが、舵が故障して舵角が固着した場合には、舵角は一定(固定値)となる。具体的には、1番舵R1が固着した場合、式(4)について、1番舵R1に関する項を外乱項(定数項)として変形すると、式(5)を得る。
【0094】
【数5】
【0095】
式(5)において、右辺の最右項は、1番舵R1が故障したことによる力を示す項であり、外乱項となる。外乱項については、故障舵が特定されており、該故障舵の舵角がわかれば、固定値として設定される。故障舵が特定及び該故障舵の舵角(すなわち故障操作手段に関する情報)については、故障診断部40の出力が使用される。すなわち、外乱項において、Δδr1は固着角自体となる。固着故障の影響を外乱項として扱うため、舵の平衡状態(δr1=0deg)からの差をΔδr1としている。
【0096】
式(5)について、機体の姿勢(ロール角φ、ピッチ角θ、ヨー角ψ)に関して、加速度と対角項を0となるように変形すると、式(6)を得る。式(6)では、角速度p、角速度q、及び角速度rの影響がないように式(5)が変形されている。
【0097】
【数6】
【0098】
すなわち、式(6)は、外乱項と、正常舵(2番舵R2、3番舵R3、4番舵R4)の操作量の干渉項と各制御軸における状態量の干渉項の関係を示す式となっている。式(6)について、正常舵(2番舵R2、3番舵R3、4番舵R4)の操作量について解くことにより、外乱項や操作量と状態量の干渉項を打ち消すための正常舵(2番舵R2、3番舵R3、4番舵R4)の操作量を得ることができる。すなわち、式(6)から算出される操作量(Δδr2、Δδr3、Δδr4)は、舵角指令算出部30において算出された各舵の指令値に対する補正値となる。
【0099】
状態方程式において、状態量には機体の前進速度(速度u)が含まれており、前進速度にかかる係数は0に設定されていることが好ましい。前進速度にかかる係数は、操作手段の操作量に関する情報が影響している場合がある。このような場合において前進速度を加味して操作量を演算すると、操作量として正確な値が得られない可能性がある。このため、状態方程式において、前進速度にかかる係数を0とすることで、演算の不安定性を抑制することができる。具体的には、式(6)において、a41、a51、及びa61が0と設定される。
【0100】
状態方程式における各係数(A行列及び/またはB行列の要素)のうち少なくともいずれか1つは、機体の状態量に関するパラメータの関数として表されることが好ましい。A行列及び/またはB行列の要素は、水中航走体1の特性に応じて値が設定されるが、線形化は近似的に設定される。具体的には、特定の平衡点周りで線形近似が行われる。すなわち、線形近似した平衡点から離れた運転状態では、近似精度が低下する場合がある。このため、A行列及び/またはB行列の要素を、機体の状態量に関するパラメータの関数として設定しておくことで、運転状態に合わせて適切にA行列やB行列を設定することが可能となる。なお、A行列及び/またはB行列の要素のうち少なくともいずれか1つを機体の状態量に関するパラメータの関数として表すことが可能である。
【0101】
このため、耐故障制御部60の出力は、舵角指令算出部30の出力側で目標値に基づいて算出された各舵の指令値に対して加算処理される。このように、故障舵に関する外乱力を非干渉化するように設定した補正値によって正常舵の指令値を補正するため、正常舵の操作によって外乱力を無効化し、より安定的に航行を継続することが可能となる。
【0102】
なお、本実施形態では、演算部62は、舵角指令算出部30において算出された各舵に対する指令値に対して、故障舵の影響を非干渉化するための補正値を演算する場合について説明したが、耐故障制御部60の機能を舵角指令算出部30へ含めてもよい。すなわち、目標値を加味しつつ故障舵の影響を低減するような各舵の指令値を算出することとしてもよい。すなわち、式(6)へ変形せずに式(5)を解くことによって、補正値としてではなく、指令値を算出することも可能である。
【0103】
また、式(5)では、固着による故障が発生した場合を例としたが、変形による故障が発生した場合には、式(5)に代えて式(7)を用いることとしてもよい。
【0104】
【数7】
【0105】
変形では、舵角を操作することができるものの、指令値に一定の変形量が付加された舵角となる。式(7)では、1番舵R1の変形量(オフセット量)をδ1として、右辺の最右項に外乱項を示している。
【0106】
耐故障制御部60の上記演算処理では、1番舵R1が故障した場合を例示して説明したが、他の舵についても同様に適応することが可能である。また、2枚故障(X舵のうち2つの舵が故障)の場合についても同様に適応することができる。
【0107】
図10は、耐故障制御部60における演算処理の一例を示すフローである。例えば、図10のフローは、舵に故障が発生した場合に開始される。
【0108】
まず、機体の状態量を取得する(S401)。例えば、機体の状態量として、速度u、速度v、速度w、角速度p、角速度q、角速度r、ピッチ角θ、ロール角φが取得される。
【0109】
次に、故障舵に関する情報を取得する(S402)。例えば、故障舵特定情報及びその故障舵角である。故障舵に関する情報については、故障舵の特定及び故障時の舵角がわかれば、故障舵特定情報及びその故障舵角に限定されず用いることが可能である。
【0110】
そして、正常舵に対する補正値を算出する(S403)。具体的には、故障舵の影響を外乱として設定した状態方程式を解くことによって、故障舵の影響を低減するように、故障舵以外の舵の指令値の補正値が演算される。なお、S403においては、補正値を演算する場合に限定されず、状態方程式を解くことにより外乱を加味した舵の指令値を算出することとしてもよい。
【0111】
(耐故障制御部による非干渉化の効果)
次に、上述の耐故障制御部60の非干渉化による効果について図12を参照して説明する。図12では、4番舵R4に固着故障が発生した場合における水中航走体1の移動軌跡を示している。このため、図12では、絶対座標系において3次元直交座標系を示している。具体的には、z軸方向を深度Zとし、x軸方向及びy軸方向を位置X及び位置Yとして示している。
【0112】
水中航走体1は、直進方向を目標軌道として運転されており、点Pにおいて故障(4番舵R4の固着)が発生したとする。すると、非干渉化制御を行わない場合には、固着した故障舵の影響によって機体は目標軌道から大きくずれる。一方で、非干渉化制御を行った場合には、機体は直ちに目標軌道へ復帰して運行を継続することができる。
【0113】
このように、非干渉化制御を行うことによって、故障舵の影響を抑制して迅速に運行復帰を行うことが可能となる。
【0114】
なお、縮退化制御では、2故障の場合(正常に制御可能な舵の数が機体の姿勢に関する制御量の数よりも少なくなってしまった場合)でも、優先順位の低い制御対象に対する制御を省略して、優先順位の高い制御対象に対する制御を実行する。このため、縮退化制御では、より重篤な故障の場合でも制御不安定となることを抑制し、優先的な目的運行をより確実に行うことが可能となる。
【0115】
すなわち、縮退化制御と、非干渉化制御とによって、舵の故障に対してより効果的に運行継続を行うことが可能となる。
【0116】
以上説明したように、本実施形態に係る制御システム及び構造体、並びに制御方法、並びに制御プログラムによれば、水中航走体1の状態量を状態変数とし舵の操作量を入力とした状態方程式において、状態変数として取得した状態量を用い、故障舵に関する情報に基づいて故障舵に関する項を外乱項とすることで、故障舵以外の舵の操作量を演算することができる。そして、操作量は、故障が発生した故障舵に係る外乱項を考慮して演算される。すなわち、故障舵の影響を低減するように、故障舵以外の舵の操作量が演算される。例えば、舵に故障(例えば固着や変形)が発生し、水中航走体1の姿勢に影響を及ぼす可能性がある場合であっても、他の舵(故障が発生していない舵)によって、該影響を抑制することが可能となる。なお、故障舵に関する情報とは、例えば故障が発生した舵を特定するための情報や、故障が発生した舵の操作量(例えば固着した操作量)である。
【0117】
また、状態方程式において、外乱項を打ち消すように故障舵以外の舵の操作量を演算することによって、該故障舵による影響分をキャンセルするための舵(故障が発生していない)の操作量を演算することができる。例えば、演算した操作量を補正値として用いることにより、故障舵の影響を抑制するような各舵の操作量を演算することができる。
【0118】
また、状態方程式における係数を、水中航走体1の状態量に関するパラメータの関数とすることによって、水中航走体1の状態によって適切に係数の値を設定することができる。このため、より精度よく、状態方正式を用いた演算を行うことが可能となる。状態方程式において水中航走体1の前進速度にかかる係数を0と設定した。前進速度にかかる係数には、舵の操作量に関する情報が影響している場合がある。このような場合において前進速度を加味して操作量を演算すると、操作量として正確な値が得られない可能性がある。このため、状態方程式において、前進速度にかかる係数を0とすることで、より正確な演算を行うことが可能となる。
【0119】
〔第2実施形態〕
次に、本開示の第2実施形態に係る制御システム及び構造体、並びに制御方法、並びに制御プログラムについて説明する。
上述した第1実施形態では、単一故障によるオブザーバを使用する場合についてしていたが、本実施形態では、複数故障におけるオブザーバについて説明する。以下、本実施形態に係る制御システム及び構造体、並びに制御方法、並びに制御プログラムについて、第1実施形態と異なる点について主に説明する。
【0120】
上記の実施形態のように各オブザーバを用いて多数決ロジックにより1つの故障舵を特定した場合、1回の処理では1つの故障舵が特定される。そして、複数故障(例えば2つの舵が故障)が発生した場合には、特定処理毎に、異なる故障舵が特定されることとなる。具体的には、1番舵R1と2番舵R2が故障している場合には、ある特定処理では1番舵R1の故障が特定され別の特定処理では2番舵R2の故障が特定される。これは、使用する状態量の変化に応じて、多数決ロジックにおいて特定される故障舵が異なる場合があるからである。すなわち、特定された故障舵の情報を保有しておくことで、複数故障の場合における故障舵を特定することができる。
【0121】
このため、本実施形態における故障診断部40は、2故障用のオブザーバを用いて故障舵角の推定を行う。図13に示すように、故障診断部40は、複数故障用推定部71と、選択部72とを更に備えている。本実施形態では、2故障の場合について説明するが複数故障の場合であれば同様に適応することができる。
【0122】
複数故障用推定部71は、複数の操作手段に対して故障が発生していると判定された場合に、構造体の状態量と、故障が発生していると判定された操作手段以外の操作手段の指令値とに基づいて、故障が発生していると判定された操作手段に対する操作量を推定する。具体的には、複数故障用推定部71は、2故障用オブザーバを用いて、故障舵角を推定する。
【0123】
2故障用オブザーバとは、2つの舵を正常と仮定してその他の舵における舵角を推定するオブザーバである。2故障用オブザーバによる舵角推定原理は、上記実施形態と同様である。例えば、1番舵R1及び2番舵R2を正常と仮定して3番舵R3及び4番舵R4の舵角を推定する2故障用オブザーバは、以下の式(8)となる。
【数8】
【0124】
式(8)は、式(1)において、1番舵R1及び2番舵R2を正常として変形した式である。式(8)によれば、1番舵R1及び2番舵R2を正常と仮定して(指令値を用いて)3番舵R3及び4番舵R4の舵角を推定することができる。
【0125】
複数故障用推定部71は、図13のように、各舵の2つ故障に対応する各2故障用オブザーバを備えている。具体的には、1番舵R1及び2番舵R2を正常と仮定して3番舵R3及び4番舵R4の舵角を推定する2故障用オブザーバ#12、1番舵R1及び3番舵R3を正常と仮定して1番舵R1及び4番舵R4の舵角を推定する2故障用オブザーバ#13、1番舵R1及び4番舵R4を正常と仮定して2番舵R2及び3番舵R3の舵角を推定する2故障用オブザーバ#14、2番舵R2及び3番舵R3を正常と仮定して1番舵R1及び4番舵R4の舵角を推定する2故障用オブザーバ#23、2番舵R2及び4番舵R4を正常と仮定して1番舵R1及び3番舵R3の舵角を推定する2故障用オブザーバ#24、及び3番舵R3及び4番舵R4を正常と仮定して1番舵R1及び2番舵R2の舵角を推定する2故障用オブザーバ#34を備えている。
【0126】
すなわち、故障舵に応じて、対応する2故障用オブザーバを用いて故障舵角を推定する。例えば、故障が発生したと判定された舵以外の舵を正常と仮定する2故障用オブザーバによって、2つの故障舵の推定舵角を算出する。
【0127】
例えば、判定部42において、1番舵R1と2番舵R2に故障が発生していると判定された場合には、2故障用オブザーバ#34を用いて、3番舵R3及び4番舵R4を正常と仮定して1番舵R1及び2番舵R2の舵角を推定する。
【0128】
選択部72は、2の舵に故障が判定された場合に、2故障用オブザーバを選択する。具体的には、選択部72は、判定部42からの出力を保有し、2つの異なる舵に故障が発生していると判定された場合に、対応する2故障用オブザーバを選択する。判定部42では、1つの故障舵を特定しているため、2故障の場合には、処理毎に、異なる故障舵が特定されることとなる。このため選択部72では、判定部42からの出力を保有しておくことで、2つの異なる舵の故障を認識することができる。
【0129】
例えば、選択部72において1番舵R1と2番舵R2の故障を認識した場合には、2故障用オブザーバ#34を選択する。
【0130】
選択部72において2故障用オブザーバが選択されると、複数故障用推定部71では、該2故障用オブザーバによって、2つの異なる故障舵の推定舵角が推定される。例えば、複数故障用推定部71が選択された場合には、故障舵である1番舵R1と2番舵R2の舵角が推定される。選択部72では、選択した2故障用オブザーバから出力された2つの故障舵の推定舵角を、各故障舵の故障舵角として出力する。このようにして、複数の故障舵の特定と、該故障舵のそれぞれの故障舵角が特定される。
【0131】
上記例では、2故障の場合を例として説明をしたが、複数故障の場合であれば同様に適応することができる。
【0132】
以上説明したように、本実施形態に係る制御システム及び構造体、並びに制御方法、並びに制御プログラムによれば、2つの操作手段に対して故障が発生していると判定された場合であっても、構造体の状態量と、操作手段のうち2つの操作手段の指令値とに基づいて、操作手段のうち他の操作手段に対する操作量を推定する複数故障用推定処理を、各操作手段に対応して行うことで、各操作手段に対応する各操作量を推定することができる。このため、推定された各操作手段にそれぞれ対応する各操作量に基づいて故障判定を行うことができる。
【0133】
本開示は、上述の実施形態のみに限定されるものではなく、発明の要旨を逸脱しない範囲において、種々変形実施が可能である。なお、各実施形態を組み合わせることも可能である。
【0134】
以上説明した各実施形態に記載の制御システム及び構造体、並びに制御方法、並びに制御プログラムは例えば以下のように把握される。
本開示に係る制御システムは、機体の姿勢に関する制御量(θ、ψ、φ)を、前記制御量の数よりも多い複数の操作手段(R)によって制御する構造体(1)に適用される制御システムであって、機体の状態量を取得する取得部(61)と、機体の状態量を状態変数とし、前記操作手段(R)の操作量を入力とした状態方程式において、故障が発生した前記操作手段(R)である故障操作手段(R)に関する情報に基づいて前記故障操作手段(R)に関する項を外乱項として設定し、取得した状態量に基づいて前記故障操作手段(R)以外の前記操作手段(R)の前記操作量を演算する演算部(62)と、を備える。
【0135】
本開示に係る制御システムによれば、機体の状態量を状態変数とし操作手段(R)の操作量を入力とした状態方程式において、状態変数として取得した状態量を用い、故障操作手段(R)に関する情報に基づいて故障操作手段(R)に関する項を外乱項とすることで、故障操作手段(R)以外の操作手段(R)の操作量を演算することができる。そして、操作量は、故障が発生した故障操作手段(R)に係る外乱項を考慮して演算される。すなわち、故障操作手段(R)の影響を低減するように、故障操作手段(R)以外の操作手段(R)の操作量が演算される。例えば、操作手段(R)に故障(例えば固着や変形)が発生し、機体の姿勢に影響を及ぼす可能性がある場合であっても、他の操作手段(R)(故障が発生していない操作手段(R))によって、該影響を抑制することが可能となる。なお、故障操作手段(R)に関する情報とは、例えば故障が発生した操作手段(R)を特定するための情報や、故障が発生した操作手段(R)の操作量(例えば固着した操作量)である。
【0136】
本開示に係る制御システムは、前記演算部(62)は、前記状態方程式に基づいて、前記外乱項を打ち消すように前記故障操作手段(R)以外の前記操作手段(R)の前記操作量を演算することとしてもよい。
【0137】
本開示に係る制御システムによれば、状態方程式において、外乱項を打ち消すように故障操作手段(R)以外の操作手段(R)の操作量を演算することによって、該故障操作手段(R)による影響分をキャンセルするための操作手段(R)(故障が発生していない)の操作量を演算することができる。例えば、演算した操作量を補正値として用いることにより、故障操作手段(R)の影響を抑制するような各操作手段(R)の操作量を演算することができる。
【0138】
本開示に係る制御システムは、前記演算部(62)は、前記状態方程式において、前記状態変数の微分項を0とし、前記故障操作手段(R)以外の前記操作手段(R)の前記操作量に対して解くことにより、演算を行うこととしてもよい。
【0139】
本開示に係る制御システムによれば、状態方程式における状態変数の微分項を0として、該状態方程式を、故障操作手段(R)以外の操作手段(R)の操作量に対して解くことによって、外乱項を打ち消すような故障操作手段(R)以外の操作手段(R)の操作量を演算することができる。
【0140】
本開示に係る制御システムは、前記状態方程式における各係数のうち少なくともいずれか1つは、機体の状態量に関するパラメータの関数として表されることとしてもよい。
【0141】
本開示に係る制御システムによれば、状態方程式における係数を、機体の状態量に関するパラメータの関数とすることによって、機体の状態によって適切に係数の値を設定することができる。このため、より精度よく、状態方正式を用いた演算を行うことが可能となる。
【0142】
本開示に係る制御システムは、前記状態方程式において、前記状態量には機体の前進速度が含まれており、前記前進速度にかかる係数は0に設定されていることとしてもよい。
【0143】
本開示に係る制御システムによれば、状態方程式において機体の前進速度にかかる係数を0と設定した。前進速度には、操作手段(R)の操作量に関する情報が影響している場合がある。このような場合において前進速度にかかる係数を加味して操作量を演算すると、操作量として正確な値が得られない可能性がある。このため、状態方程式において、前進速度にかかる係数を0とすることで、より正確な演算を行うことが可能となる。
【0144】
本開示に係る制御システムは、前記操作手段(R)は、アクチュエータにより駆動されることとしてもよい。
【0145】
本開示に係る制御システムによれば、操作手段(R)としてアクチュエータを対象とすることができる。
【0146】
本開示に係る構造体(1)は、機体の姿勢を制御する複数の操作手段(R)と、上記の制御システムとを備える。
【0147】
本開示に係る制御方法は、機体の姿勢に関する制御量を、前記制御量の数よりも多い複数の操作手段(R)によって制御する構造体(1)に適用される制御方法であって、機体の状態量を取得する工程と、機体の状態量を状態変数とし、前記操作手段(R)の操作量を入力とした状態方程式において、故障が発生した前記操作手段(R)である故障操作手段(R)に関する情報に基づいて前記故障操作手段(R)に関する項を外乱項として設定し、取得した状態量に基づいて前記故障操作手段(R)以外の前記操作手段(R)の前記操作量を演算する工程と、を有する。
【0148】
本開示に係る制御プログラムは、機体の姿勢に関する制御量を、前記制御量の数よりも多い複数の操作手段(R)によって制御する構造体(1)に適用される制御プログラムであって、機体の状態量を取得する処理と、機体の状態量を状態変数とし、前記操作手段(R)の操作量を入力とした状態方程式において、故障が発生した前記操作手段(R)である故障操作手段(R)に関する情報に基づいて前記故障操作手段(R)に関する項を外乱項として設定し、取得した状態量に基づいて前記故障操作手段(R)以外の前記操作手段(R)の前記操作量を演算する処理と、をコンピュータに実行させる。
【符号の説明】
【0149】
1 :水中航走体(構造体)
2 :プロペラ
11 :CPU
12 :ROM
13 :RAM
14 :ハードディスクドライブ
15 :通信部
18 :バス
20 :制御装置(制御システム)
30 :舵角指令算出部
31 :仮想舵角算出部
32 :分配部
33 :深度制御器
34 :方位制御器
35 :ロール制御器
36 :姿勢角制御器
37 :無効化部
40 :故障診断部(故障診断システム)
41 :推定部
42 :判定部
45 :演算部(故障操作量演算部)
50 :縮退指令部
60 :耐故障制御部
61 :取得部
62 :演算部(指令値演算部)
71 :複数故障用推定部
72 :選択部
A1 :第1AND部
A2 :第2AND部
A3 :第3AND部
A4 :第4AND部
R1~R4:舵(操作手段)
S1 :第1特定部
S2 :第2特定部
S3 :第3特定部
S4 :第4特定部
Z :深度
p :角速度
q :角速度
r :角速度
u :速度
v :速度
w :速度
θ :ピッチ角
φ :ロール角
ψ :ヨー角
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13