(57)【特許請求の範囲】
【請求項１】
冗長化されている複数の演算システムからの複数の出力値が一致している間は、通常の入力値を前記複数の演算システムに繰り返し入力し、前記複数の演算システムからの複数の出力値が不一致になった後は、前記通常の入力値の入力を停止して、正しい出力値が既知であるプリセット入力値を前記複数の演算システムに入力する入力管理部と、
前記プリセット入力値に対する前記複数の演算システムからの複数の出力値を取得し、取得した前記複数の出力値の各々と、前記プリセット入力値に対する前記正しい出力値とを比較する比較部と、
前記入力管理部により前記通常の入力値が前記複数の演算システムに入力され、前記通常の入力値に対する前記複数の演算システムからの複数の出力値が一致する場合に、前記通常の入力値を前記プリセット入力値に指定し、前記複数の出力値のうちのいずれかを前記正しい出力値に指定する指定部とを有し、
前記入力管理部は、
前記複数の演算システムからの複数の出力値が不一致になった場合に、前記指定部により指定された前記プリセット入力値を前記複数の演算システムに入力し、
前記比較部は、
前記プリセット入力値に対する前記複数の演算システムからの複数の出力値を取得し、取得した前記複数の出力値の各々と、前記指定部により指定された前記正しい出力値とを比較する制御装置。
【請求項２】
コンピュータが、冗長化されている複数の演算システムからの複数の出力値が一致している間は、通常の入力値を前記複数の演算システムに繰り返し入力し、前記複数の演算システムからの複数の出力値が不一致になった後は、前記通常の入力値の入力を停止して、正しい出力値が既知であるプリセット入力値を前記複数の演算システムに入力する入力管理処理と、
前記コンピュータが、前記プリセット入力値に対する前記複数の演算システムからの複数の出力値を取得し、取得した前記複数の出力値の各々と、前記プリセット入力値に対する前記正しい出力値とを比較する比較処理と、
前記入力管理処理により前記通常の入力値が前記複数の演算システムに入力され、前記通常の入力値に対する前記複数の演算システムからの複数の出力値が一致する場合に、前記コンピュータが、前記通常の入力値を前記プリセット入力値に指定し、前記複数の出力値のうちのいずれかを前記正しい出力値に指定する指定処理とを有し、
前記複数の演算システムからの複数の出力値が不一致になった場合に、前記入力管理処理において、前記コンピュータが、前記指定処理により指定された前記プリセット入力値を前記複数の演算システムに入力し、
前記比較処理において、前記コンピュータが、前記プリセット入力値に対する前記複数の演算システムからの複数の出力値を取得し、取得した前記複数の出力値の各々と、前記指定処理により指定された前記正しい出力値とを比較する制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、冗長化されたシステムに関する。
【背景技術】
【０００２】
車載制御装置に代表されるような高い信頼性が要求されるシステムにおいては、演算システム（マイクロコンピュータ等）を二重化し、一方の演算システムが故障した場合に、他方の正常な演算システムのみで演算を継続する技術が用いられる。そのような二重化システムにおいては、故障した演算システムを判定するために、故障診断を行うための機能が必須となる。特に、両方の演算システムで同じプログラムを常時動作させ、両方の演算システムからの出力が一致するか否かを確認する方式の場合、出力の不一致が発生した際にどちらの演算システムが故障したのかを判定することが必要である。【０００３】
例えば、特許文献１では、二重化された演算システムの出力が不一致の場合にも、多数決理論で正常な演算システムが選択可能な方法が開示されている。具体的には、特許文献１の方法では、演算システムの入力から出力への伝達関数モデルをプログラムにより実現する計算モデルが追加される。そして、特許文献１の方法では、いずれかの演算システムで故障が発生し、出力が不一致となった場合でも、計算モデルから出力される疑似出力を用いた多数決理論で正常な演算システムを選択することができる。
また、特許文献２では、二重化された演算システムの各々が自己診断機能を有する構成が開示されている。特許文献２の構成では、一方の演算システムが実制御システムとして動作し、他方の演算システムが自己診断を行うシステムとして動作する。そして、特許文献２の構成では、実制御システムとして動作する演算システムと自己診断を行うシステムとして動作する演算システムを交互に切り替えることで、連続した運転を実現しつつ、故障が発生した演算システムを検知することが可能である。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００６−２２８００２号公報
【特許文献２】国際公報ＷＯ２０１１／０７４１４７号
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１の方法においては、二重化するシステムをソフトウェアだけでなくハードウェアも含めてモデル化する必要がある。このため、特許文献１の方法では、二重化するシステムの特にハードウェア構成が複雑になるほど、計算モデルの規模が大きくなってしまう。従って、計算モデルを実現するプログラムを実行するために、二重化するシステムよりも高性能のハードウェア（マイクロコンピュータ等）が必要になるという課題がある。
特許文献２の方法では、一方の演算システムが実制御システムとして動作し、他方の演算システムが自己診断を行うシステムとして動作する。このため、特許文献２の方法では、両方の演算システムで同じプログラムを常時動作させ、両方の演算システムの出力が一致するか否かを確認することができない。また、特許文献２の方法では、演算システムが自己診断を行う。このため、特許文献２の方法では、演算システムのハードウェアが故障した場合には自己診断機能も影響を受け、正しい診断ができず、高い信頼性を保証することができないという課題がある。【０００６】
本発明は、上記の課題を解決することを主な目的とする。より具体的には、本発明は、冗長化されている複数の演算システムからの複数の出力値が一致するか否かを判定する方式において、簡素なハードウェア構成により、正常な演算システムを判定できるようにすることを主な目的とする。
【課題を解決するための手段】
【０００７】
本発明に係る制御装置は、
冗長化されている複数の演算システムからの複数の出力値が不一致の場合に、正しい出力値が既知であるプリセット入力値を前記複数の演算システムに入力する入力管理部と、
前記プリセット入力値に対する前記複数の演算システムからの複数の出力値を取得し、取得した前記複数の出力値の各々と、前記プリセット入力値に対する前記正しい出力値とを比較する比較部とを有する。
【発明の効果】
【０００８】
本発明によれば、冗長化されている複数の演算システムからの複数の出力値が一致するか否かを判定する方式において、簡素なハードウェア構成により、確実に正常な演算システムを判定することができる。
【図面の簡単な説明】
【０００９】
【図１】実施の形態１に係る制御装置のハードウェア構成例を示す図。
【図２】実施の形態１に係る制御装置の機能構成例を示す図。
【図３】実施の形態１に係る動作モードが通常モードである場合の制御装置の動作例を示すフローチャート。
【図４】実施の形態１に係る入力排他部の動作例を示すフローチャート。
【図５】実施の形態１に係る故障判定起動部の動作例を示すフローチャート。
【図６】実施の形態１に係る故障判定制御部の動作例を示すフローチャート。
【図７】実施の形態２に係る制御装置の機能構成例を示す図。
【図８】実施の形態２に係るデータ収集部の動作例を示すフローチャート。
【発明を実施するための形態】
【００１０】
以下、本発明の実施の形態について、図を用いて説明する。以下の実施の形態の説明及び図面において、同一の符号を付したものは、同一の部分又は相当する部分を示す。
【００１１】
実施の形態１．
本実施の形態では、入力値と当該入力値に対する正しい出力値の組合せを事前に準備しておく。なお、事前に準備しておく、正しい出力値が既知の入力値は、以下、プリセット入力値という。そして、本実施の形態では、冗長化された複数の演算システムの出力値が不一致になった場合に、プリセット入力値が各演算システムに入力される。更に、本実施の形態では、各演算システムからの出力値とプリセット入力値に対する正しい出力値とが比較される。この結果、正しい出力値と同じ出力値を出力した演算システムが正しい演算システムであると判定することができる。
なお、以下では、冗長化された演算システムの例として、二重化された演算システムを説明する。つまり、同一の演算処理を行う演算システムが二つ存在する構成を説明する。
【００１２】
＊＊＊構成の説明＊＊＊
図１は、本実施の形態１に係る制御装置１００のハードウェア構成例を示す。
図１に示すように、制御装置１００は入力同期ＦＰＧＡ（Ｆｉｅｌｄ−Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）１１０、マイクロコンピュータＡ１２０、マイクロコンピュータＢ１３０、及び出力照合ＦＰＧＡ１４０を持つ。制御装置１００は、マイクロコンピュータＡ１２０、マイクロコンピュータＢ１３０により二重化されている。
なお、制御装置１００により行われる処理は、制御方法に相当する。
【００１３】
入力同期ＦＰＧＡ１１０は、複数の外部装置Ａ１５０（図１では１つのみ記載）とＣＡＮ（Ｃｏｎｔｒｏｌｌｅｒ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＳＰＩ（Ｓｅｒｉａｌ  Ｐｅｒｉｐｈｅｒａｌ  Ｉｎｔｅｒｆａｃｅ）などを用いて接続される。入力同期ＦＰＧＡ１１０は、外部装置Ａ１５０から送信された入力値を受信し、マイクロコンピュータＡ１２０及びマイクロコンピュータＢ１３０に、タイミングを合わせて入力値の送信を行う。
【００１４】
マイクロコンピュータＡ１２０は、制御装置１００のメインの制御処理を行うためのハードウェアである。マイクロコンピュータＡ１２０は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１２１、メモリ１２２、Ｉ／Ｏ（Ｉｎｐｕｔ／Ｏｕｔｐｕｔ）デバイス１２３、ＣＡＮ  Ｉ／Ｏデバイス１２４で構成される。
マイクロコンピュータＡ１２０は、入力同期ＦＰＧＡ１１０と出力照合ＦＰＧＡ１４０と、ＣＡＮ、ＳＰＩなどを用いて接続される。図１では、マイクロコンピュータＡ１２０がＣＡＮで入力同期ＦＰＧＡ１１０と出力照合ＦＰＧＡ１４０と接続される構成を想定しているため、ＣＡＮ  Ｉ／Ｆ１２４が配置されている。
マイクロコンピュータＢ１３０は、マイクロコンピュータＡ１２０で実現されるシステムの二重化のためのハードウェアである。マイクロコンピュータＢ１３０の内部構成はマイクロコンピュータＡ１２０と同じである。このため、マイクロコンピュータＢ１３０の内部構成の図示は省略している。
【００１５】
出力照合ＦＰＧＡ１４０は、複数の外部装置Ｂ１６０（図１では１つのみ記載）とＣＡＮ、ＳＰＩなどを用いて接続される。出力照合ＦＰＧＡ１４０は、マイクロコンピュータＡ１２０から送信される出力値とマイクロコンピュータＢ１３０から送信される出力値を比較する。そして、出力照合ＦＰＧＡ１４０は、二つの出力値が一致している場合に、いずれかの出力値を外部装置Ｂ１６０に送信する。
また、入力同期ＦＰＧＡ１１０と出力照合ＦＰＧＡ１４０は、後述する図２の入力排他部２１２と故障判定制御部２５１とを接続するために、ＣＡＮ、ＳＰＩなどを用いて接続される。
【００１６】
図２は、本実施の形態に係る制御装置１００の機能構成例を示す。なお、図２において、実線の矢印は入力値（通常の入力値及びプリセット入力値）又は出力値を表す。破線の矢印は、入力値及び出力値以外の情報を表す。
図２において、制御装置１００は、入力部２１０、サブシステムＡ２２０、サブシステムＢ２３０、出力照合部２４０、故障判定部２５０から構成される。
【００１７】
入力部２１０は、入力同期ＦＰＧＡ１１０にて動作する。入力部２１０は、入力同期部２１１と入力排他部２１２と故障判定動作状態記憶部２１３で構成される。
【００１８】
入力同期部２１１は、外部装置Ａ１５０から送信された通常の入力値を受信し、入力排他部２１２とタイミングを同期し、受信した通常の入力値を入力排他部２１２に送信する。入力同期部２１１は、外部装置Ａ１５０から繰り返し通常の入力値を受信し、入力排他部２１２に繰り返し通常の入力値を送信する。
【００１９】
入力排他部２１２は、動作モードが通常モードである場合に、入力同期部２１１から通常の入力値を受信する。また、入力排他部２１２は、動作モードが故障判定モードの場合に、故障判定制御部２５１からプリセット入力値を受信する。入力排他部２１２は、入力同期部２１１からの通常の入力値又は故障判定制御部２５１からのプリセット入力値をサブシステムＡ２２０及びサブシステムＢ２３０に入力する。
通常モードは、サブシステムＡ２２０からの出力値とサブシステムＢ２３０からの出力値とが一致している間の制御装置１００の動作モードである。故障判定モードは、サブシステムＡ２２０からの出力値とサブシステムＢ２３０からの出力値とが不一致となってから、正常に動作していているサブシステム（以下、正常サブシステムという）が判明するまでの間の制御装置１００の動作モードである。故障判定モードでは、サブシステムＡ２２０及びサブシステムＢ２３０のうち、どちらのサブシステムが正常に動作しているかを判定する手順が行われる。後述する縮退モードは、正常サブシステムが判明した後の制御装置１００の動作モードである。
入力排他部２１２が関係する動作モードは、正常モードと故障判定モードのみである。つまり、入力排他部２１２は、動作モードを、正常モードと故障判定モードの間で切り替える。なお、動作モードの切り替えは、後述する故障判定動作状態記憶部２１３で記憶されている動作モード情報に、入力排他部２１２が現在の動作モードに対応する値を設定することにより行われる。
サブシステムＡ２２０からの出力値とサブシステムＢ２３０からの出力値が不一致になった際に、入力排他部２１２は、故障判定制御部２５１から故障判定モード設定要求を受信し、動作モードを故障判定モードに設定する。故障モード設定要求は、故障判定制御部２５１が入力排他部２１２に動作モードを故障判定モードに設定するよう要求するメッセージである。また、正常サブシステムが判明した後に、入力排他部２１２は、故障判定制御部２５１から正常モード設定要求を受信し、動作モードを正常モードに設定する。通常モード設定要求は、故障判定制御部２５１が入力排他部２１２に動作モードを通常モードに設定するよう要求するメッセージである。
なお、入力排他部２１２は、入力管理部に相当する。
【００２０】
故障判定動作状態記憶部２１３は、動作モード情報を記憶する。動作モード情報は、制御装置１００の現在の動作モードを示す制御情報である。具体的には、故障判定動作状態記憶部２１３が記憶する動作モード情報には、通常モードを表す値又は故障判定モードを表す値が示される。
【００２１】
サブシステムＡ２２０とサブシステムＢ２３０は、二重化されたシステムである。サブシステムＡ２２０とサブシステムＢ２３０には、同じプログラムが搭載されている。そして、サブシステムＡ２２０とサブシステムＢ２３０は、同じ入力値を受信し、受信した入力値に対して演算処理を行い、各々出力値を出力する。サブシステムＡ２２０は、マイクロコンピュータＡ１２０で動作し、サブシステムＢ２３０は、マイクロコンピュータＢ１３０で動作する。サブシステムＡ２２０とサブシステムＢ２３０は、各々演算システムに相当する。
【００２２】
出力照合部２４０は、出力照合ＦＰＧＡ１４０にて動作する。出力照合部２４０は、出力照合制御部２４１と故障判定起動部２４２と縮退モード動作状態記憶部２４３で構成される。
【００２３】
出力照合制御部２４１は、制御装置１００の動作モードが通常モードであれば、サブシステムＡ２２０とサブシステムＢ２３０から送信される出力値を比較する。二つの出力値が一致している場合は、出力照合制御部２４１は、いずれかの出力値を故障判定起動部２４２へ送信する。一方、二つの出力値が不一致の場合は、出力照合制御部２４１は、いずれの出力値も故障判定起動部２４２に送信しない。
また、出力照合制御部２４１は、制御装置１００の動作モードが故障判定モードであれば、サブシステムＡ２２０とサブシステムＢ２３０から送信される出力値を比較せずに破棄する。
また、出力照合制御部２４１は、制御装置１００の動作モードが縮退モードであれば、正常サブシステムの出力値を選択して、選択した出力値を故障判定起動部２４２に出力する。
出力照合制御部２４１は、故障判定起動部２４２から現在の動作モード情報を通知されることにより、制御装置１００がどの動作モードにあるかを判定することができる。また、出力照合制御部２４１は、故障判定起動部２４２から正常サブシステムを通知されることにより、正常サブシステムの出力値を選択することができる。
【００２４】
故障判定起動部２４２は、制御装置１００の動作モードが通常モードであれば、出力照合制御部２４１の比較結果に応じて、故障判定を行うか否かを決定する。具体的には、出力照合制御部２４１の比較結果が、サブシステムＡ２２０の出力値とサブシステムＢ２３０の出力値が一致していることを通知している場合は、故障判定起動部２４２は、故障判定を行わないことを決定し、出力照合制御部２４１から送信された出力値を外部装置Ｂ１６０に送信する。出力照合制御部２４１の比較結果が、サブシステムＡ２２０の出力値とサブシステムＢ２３０の出力値が一致していないことを通知している場合は、故障判定起動部２４２は、故障判定を行うことを決定する。故障判定を行う場合は、故障判定起動部２４２は、故障判定制御部２５１を起動する。また、故障判定起動部２４２は、動作モードを故障判定モードに設定する。更に、故障判定起動部２４２は、出力照合制御部２４１に、動作モードが故障判定モードに移行したことを通知する。
また、故障判定起動部２４２は、故障判定制御部２５１から正常サブシステムが通知される。故障判定起動部２４２は、正常サブシステムが通知されると、動作モードを縮退モードに設定する。更に、故障判定起動部２４２は、出力照合制御部２４１に正常サブシステムを通知する。また、故障判定起動部２４２は、動作モードが縮退モードに移行した後に、出力照合制御部２４１から受信した出力値を外部装置Ｂ１６０に出力する。
動作モードの切り替えは、後述する縮退モード動作状態記憶部２４３で記憶されている動作モード情報に、故障判定起動部２４２が現在の動作モードに対応する値を設定することにより行われる。
故障判定起動部２４２は、縮退モード動作状態記憶部２４３の動作モード情報を参照することで、制御装置１００がどの動作モードにあるかを判定することができる。
なお、故障判定起動部２４２は、出力管理部に相当する。
【００２５】
縮退モード動作状態記憶部２４３は、動作モード情報を記憶する。縮退モード動作状態記憶部２４３が記憶する動作モード情報には、通常モードを表す値、故障判定モードを表す値又は縮退モードを表す値が示される。
【００２６】
故障判定部２５０は、出力照合ＦＰＧＡ１４０にて動作する。
故障判定部２５０は、故障判定制御部２５１とプリセット入力値記憶部２５２とリトライ回数記憶部２５３で構成される。
【００２７】
故障判定制御部２５１は、故障判定起動部２４２により起動される。故障判定制御部２５１は、起動すると、入力排他部２１２に故障判定モード設定要求を送信する。また、故障判定制御部２５１は、プリセット入力値記憶部２５２からプリセット入力値と出力値との組を読み出す。そして、故障判定制御部２５１は、プリセット入力値を入力排他部２１２に送信する。サブシステムＡ２２０及びサブシステムＢ２３０がプリセット入力値に対して演算を行い、演算結果である出力値が出力されると、サブシステムＡ２２０の出力値とサブシステムＢ２３０の出力値を、プリセット入力値の正しい出力値と比較する。そして、故障判定制御部２５１は、正しい出力値と一致する出力値を出力したサブシステムを正常サブシステムと判定する。また、故障判定制御部２５１は、正常サブシステムを故障判定起動部２４２に通知する。
プリセット入力値に対するサブシステムＡ２２０からの出力値とサブシステムＢ２３０からの出力値を正しい出力値と比較しても、正常サブシステムを判定できない場合は、繰り返しプリセット入力値を入力排他部２１２に送信する。つまり、リトライ回数が上限値に達していなければ、故障判定制御部２５１は、プリセット入力値記憶部２５２から別のプリセット入力値と出力値の組を読み出し、読み出したプリセット入力値を入力排他部２１２に送信する。故障判定制御部２５１は、サブシステムＡ２２０からの出力値とサブシステムＢ２３０からの出力値がどちらも正しい出力値に一致する場合、又は、サブシステムＡ２２０からの出力値とサブシステムＢ２３０からの出力値がどちらも正しい出力値に一致しない場合は、正常サブシステムを判定することができない。
リトライ回数は、リトライ回数記憶部２５３で記憶される。リトライ回数が上限値に達した場合は、故障判定制御部２５１は、故障判定に失敗したことを故障判定起動部２４２に通知する。
なお、プリセット入力値は、可能な限り多くのハードウェアを使用する演算が可能な値とすることが望ましい。このようにすることで、早期の故障判定が可能となる。
故障判定制御部２５１は、比較部に相当する。
【００２８】
なお、ここでは、故障判定部２５０は出力照合ＦＰＧＡ１４０にて実現することとしているが、故障判定部２５０を、低コストの小規模マイクロコンピュータを用いて実現することも可能である。
【００２９】
＊＊＊動作の説明＊＊＊
次に、動作モードが通常モードである場合の制御装置１００の動作例を図３を用いて説明する。
【００３０】
最初に、入力同期部２１１が、外部装置Ａ１５０から通常の入力値を受信する（ステップＳ１０１）。
【００３１】
次に、入力同期部２１１は、通常の入力値を入力排他部２１２に送信する（ステップＳ１０２）。入力排他部２１２は、動作モードが通常モードであるであるため、入力同期部２１１からの通常の入力値を、サブシステムＡ２２０とサブシステムＢ２３０に送信する（ステップＳ１０２）。
【００３２】
サブシステムＡ２２０とサブシステムＢ２３０は、各々、通常の入力値を用いた演算を行い、演算結果である出力値を送信する（ステップＳ１０３）。
【００３３】
次に、出力照合制御部２４１は、サブシステムＡ２２０の出力値とサブシステムＢ２３０の出力値とを比較し、比較結果を故障判定起動部２４２に送信する（ステップＳ１０４）。
サブシステムＡ２２０の出力値とサブシステムＢ２３０の出力値が一致している場合は、出力照合制御部２４１は、二つの出力値が一致していることを通知する比較結果と、サブシステムＡ２２０の出力値とサブシステムＢ２３０の出力値のうちのいずれかを、故障判定起動部２４２に送信する。
サブシステムＡ２２０の出力値とサブシステムＢ２３０の出力値が一致していない場合は、出力照合制御部２４１は、二つの出力値が一致していないことを通知する比較結果を故障判定起動部２４２に出力する。この場合は、出力照合制御部２４１は、サブシステムＡ２２０の出力値とサブシステムＢ２３０の出力値のいずれも、故障判定起動部２４２に送信しない。
【００３４】
故障判定起動部２４２は、出力照合制御部２４１の比較結果を参照して、故障判定の実施有無を決定する（ステップＳ１０５）。具体的には、出力照合制御部２４１の比較結果が、サブシステムＡ２２０の出力値とサブシステムＢ２３０の出力値が一致していることを通知している場合は、故障判定起動部２４２は、故障判定を行わないことを決定する。そして、故障判定起動部２４２は、出力照合制御部２４１から送信された出力値を外部装置Ｂ１６０に送信する。出力照合制御部２４１の比較結果が、サブシステムＡ２２０の出力値とサブシステムＢ２３０の出力値が一致していることを通知している場合は、故障判定起動部２４２は、故障判定を行うことを決定する。
【００３５】
次に、入力排他部２１２、故障判定起動部２４２、故障判定制御部２５１の動作例を説明する。
図４は、入力排他部２１２の動作例を示す。図５は、故障判定起動部２４２の動作例を示す。図６は、故障判定制御部２５１の動作例を示す。なお、一連の処理によって得られる効果が変わらなければ、処理の順序や手段は異なっていても構わない。
【００３６】
まず、入力排他部２１２の動作例を、図４を用いて説明する。
【００３７】
図４の処理シーケンスは、入力排他部２１２が通常の入力値、プリセット入力値、故障判定モード設定要求及び通常モード設定要求のいずれかを受信することにより開始する。
【００３８】
入力排他部２１２は、受信したデータが入力値（通常の入力値又はプリセット入力値）及びモード設定要求（通常モード設定要求又は故障判定モード設定要求）のいずれであるかを判定する（ステップＳ２０１）。入力値の受信の場合は、処理はステップＳ２０２に遷移する。モード設定要求の受信の場合は、処理はステップＳ２０８に遷移する。
【００３９】
入力値の受信の場合は、入力排他部２１２は、受信した入力値が通常の入力値及びプリセット入力値のいずれであるかを判定する（ステップＳ２０２）。受信した入力値が通常の入力値の場合は、処理はステップＳ２０３に遷移する。一方、受信した入力値がプリセット入力値の場合は、処理はステップＳ２０６に遷移する。
【００４０】
受信した入力値が入力同期部２１１からの通常の入力値である場合は、入力排他部２１２は、現在の動作モードが故障判定モードであるか否かを判定する（ステップＳ２０３）。具体的には、入力排他部２１２は、故障判定動作状態記憶部２１３の動作モード情報を参照して、現在の動作モードが故障判定モードであるか否かを判定する。
現在の動作モードが故障判定モードでない場合は、処理がステップＳ２０４に遷移する。一方、現在の動作モードが故障判定モードである場合は、処理がステップＳ２０５に遷移する。
【００４１】
現在の動作モードが故障判定モードでない場合は、現在の動作モードは通常モードであるため、入力排他部２１２は、受信した入力値をサブシステムＡ２２０とサブシステムＢ２３０の双方に送信する（ステップＳ２０４）。
一方、現在の動作モードが故障判定モードである場合は、入力排他部２１２は、入力同期部２１１から受信した通常の入力値を破棄する（ステップＳ２０５）。
【００４２】
ステップＳ２０２において、受信した入力値が故障判定制御部２５１からのプリセット入力値である場合は、次に、入力排他部２１２は、現在の動作モードが故障判定モードであるか否かを判定する（ステップＳ２０６）。具体的には、入力排他部２１２は、故障判定動作状態記憶部２１３の動作モード情報を参照して、現在の動作モードが故障判定モードであるか否かを判定する。
現在の動作モードが故障判定モードでない場合は、処理がステップＳ２０５に遷移する。一方、現在の動作モードが故障判定モードである場合は、処理がステップＳ２０７に遷移する。
【００４３】
現在の動作モードが故障判定モードでない場合は、現在の動作モードは通常モードであるため、入力排他部２１２は、故障判定制御部２５１から受信したプリセット入力値を破棄する（ステップＳ２０５）。
一方、現在の動作モードが故障判定モードである場合は、入力排他部２１２は、受信したプリセット入力値をサブシステムＡ２２０とサブシステムＢ２３０の双方に送信する（ステップＳ２０７）。
【００４４】
また、ステップＳ２０１において、モード設定要求を受信している場合は、動作モードを故障判定モード又は通常モードに設定する（ステップＳ２０８）。つまり、故障判定モード設定要求を受信した場合は、入力排他部２１２は、動作モードを故障判定モードに設定する。また、通常モード設定要求を受信した場合は、入力排他部２１２は動作モードを通常モードに設定する。
【００４５】
次に、故障判定起動部２４２の動作例を図５を用いて説明する。
【００４６】
図５の処理シーケンスは、故障判定起動部２４２が出力照合制御部２４１から出力値の比較結果を受信することで開始する。
【００４７】
故障判定起動部２４２は、出力照合制御部２４１から比較結果を受信すると、現在の動作モードが縮退モードであるか否かを判定する（ステップＳ３０１）。より具体的には、故障判定起動部２４２は、縮退モード動作状態記憶部２４３の動作モード情報を参照して、現在の動作モードが縮退モードであるか否かを判定する。現在の動作モードが縮退モードでない場合は、処理はステップＳ３０２に遷移する。現在の動作モードが縮退モードの場合は、処理はステップＳ３０７に遷移する。
【００４８】
現在の動作モードが縮退モードでない場合は、故障判定起動部２４２は、出力照合制御部２４１から送信された比較結果が二つの出力値が一致しているかことを示しているか否かを判定する（ステップＳ３０２）。比較結果が二つの出力結果が一致していることを示している場合は、処理はステップＳ３０３に遷移する。比較結果が二つの出力結果が不一致であることを示している場合は、処理はステップＳ３０４に遷移する。
【００４９】
比較結果が二つの出力結果が一致していることを示している場合は、故障判定起動部２４２は、出力照合制御部２４１から受信した出力値を外部装置Ｂ１６０に送信する（ステップＳ３０３）。
【００５０】
一方、比較結果が二つの出力結果が不一致であることを示している場合は、故障判定起動部２４２は、故障判定を実施するために、故障判定制御部２５１を起動する（ステップＳ３０４）。より具体的には、故障判定起動部２４２は、故障判定制御部２５１に起動要求を送信する。また、動作モードを故障判定モードに設定する（ステップＳ３０４）。より具体的には、故障判定起動部２４２は、縮退モード動作状態記憶部２４３の動作モード情報を、故障判定モードを示す値に更新する。更に、故障判定起動部２４２は、出力照合制御部２４１に動作モードが故障判定モードに移行したことを通知する。この通知により、以降は、出力照合制御部２４１からは、いずれのサブシステムからの出力値も故障判定起動部２４２に送信されなくなる。
【００５１】
次に、故障判定起動部２４２は、故障判定制御部２５１からの判定結果を待ち（ステップＳ３０５）、故障判定制御部２５１の判定結果として、正常サブシステムが通知されると、制御装置１００の動作モードを縮退モードに移行する（ステップＳ３０６）。より具体的には、故障判定起動部２４２は、縮退モード動作状態記憶部２４３の動作モード情報を、縮退モードを示す値に更新する。また、故障判定起動部２４２は、出力照合制御部２４１に正常サブシステムを通知する。この通知により、以降は、出力照合制御部２４１からは、正常サブシステムからの出力値が故障判定起動部２４２に送信される。
【００５２】
ステップＳ３０１において、現在の動作モードが縮退モードである場合には、出力照合制御部２４１から受信した正常サブシステムの出力値を外部装置Ｂ１６０に送信する（ステップＳ３０７）。
【００５３】
次に、故障判定制御部２５１の動作例を図６を用いて説明する。
【００５４】
図６の処理シーケンスは、故障判定制御部２５１が故障判定起動部２４２からの起動要求を受信することにより開始する。
【００５５】
起動要求を受信すると、故障判定制御部２５１は、入力排他部２１２に、動作モードを故障判定モードに設定するように要求する（ステップＳ４０１）。より具体的には、故障判定制御部２５１は、入力排他部２１２に、故障判定モード設定要求を送信する。
【００５６】
次に、故障判定制御部２５１は、プリセット入力値記憶部２５２からプリセット入力値と出力値との組を取得する（ステップＳ４０２）。そして、故障判定制御部２５１は、取得したプリセット入力値を入力排他部２１２に送信する（ステップＳ４０３）。
その後、各サブシステムからの出力値の受信を待つ（ステップＳ４０４）。
【００５７】
各サブシステムから出力値を受信すると、故障判定制御部２５１は、受信した二つの出力値を、プリセット入力値の正しい出力値と比較する（ステップＳ４０５）。
【００５８】
次に、故障判定制御部２５１は、正しい出力値と一致する出力値が一つのみであるか否かを判定する（ステップＳ４０６）。判定の結果、正しい出力値と一致する出力値が一つのみである場合は、故障判定が成功したことになる。つまり、故障判定制御部２５１は、正しい出力値と一致する出力値を送信したサブシステムを正常サブシステムとして扱う。この場合には、処理はステップＳ４０７に遷移する。正しい出力値と一致する出力値が一つでない場合（二つの出力値が正しい出力値に一致する場合、いずれの出力値も正しい出力値に一致しない場合）は、故障判定に失敗したことになる。この場合は、処理はステップＳ４０９に遷移する。
【００５９】
正しい出力値と一致する出力値が一つのみである場合は、故障判定制御部２５１は、入力排他部２１２に動作モードを通常モードに設定するように要求する（ステップＳ４０７）。より具体的には、故障判定制御部２５１は、入力排他部２１２に、通常モード設定要求を送信する。
また、故障判定制御部２５１は、故障判定起動部２４２に、正常サブシステムとして認識されたサブシステムを通知する（ステップＳ４０８）。
【００６０】
正しい出力値と一致する出力値が一つでない場合は、故障判定制御部２５１は、故障判定のリトライを行う。具体的には、故障判定制御部２５１は、リトライ回数記憶部２５３で記憶されているリトライ回数を更新し（ステップＳ４０９）、リトライ回数が上限値に達したか否かを判定する（ステップＳ４１０）。リトライ回数が上限値に達した場合は、処理はステップＳ４１１に遷移する。一方、リトライ回数が上限値に達していない場合は、処理はステップＳ４０２に遷移する。そして、故障判定制御部２５１は、ステップＳ４０２からの処理シーケンスを再度実施する。
【００６１】
リトライ回数が上限値に達した場合は、故障判定制御部２５１は、故障判定起動部２４２に判定失敗を通知する（ステップＳ４１１）。
【００６２】
＊＊＊実施の形態の効果の説明＊＊＊
以上のように、本実施の形態では、各サブシステムからの出力値が不一致となった場合に、故障判定制御部２５１は、プリセット入力値を各サブシステムに与え、プリセット入力値を用いた演算を各サブシステムに行わせる。そして、故障判定制御部２５１は、各サブシステムからの出力値と既知の出力値とを比較して、正常に動作しているサブシステムを判定する。このため、本実施の形態では、特許文献１で開示された、計算モデルを実現するプログラムを実行するための高性能のハードウェアは不要であり、簡素なハードウェアの追加のみで、正常に動作するサブシステムを判定することができる。また、演算を実行するサブシステムとは別の機構である故障判定制御部２５１が故障判定を行うため、確実に、正常に動作するサブシステムを判定することができる。
【００６３】
なお、以上では、冗長化された演算システムの例として、二重化された演算システムを説明したが、本実施の形態で説明した技術は、三重化以上の冗長度で冗長化されたシステムにも適用可能である。例えば、サブシステムＡ、サブシステムＢ、サブシステムＣのように三重化された構成において、全てサブシステムの出力値が一致しない場合に、故障判定制御部２５１は、プリセット入力値をサブシステムＡ、サブシステムＢ、サブシステムＣの各々に与えて、正常サブシステムを判定することができる。
【００６４】
実施の形態２．
本実施の形態では、サブシステムＡ２２０からの出力値及びサブシステムＢ２３０からの出力値が一致する場合に、サブシステムＡ２２０及びサブシステムＢ２３０への通常の入力値をプリセット入力値として用いる例を説明する。
本実施の形態では、主に実施の形態１との差異を説明する。
なお、以下で説明していない事項は、実施の形態１と同様である。
【００６５】
＊＊＊構成の説明＊＊＊
実施の形態２に係る制御装置１００ハードウェア構成例は、図１に示す構成と同じである。このため、本実施の形態に係る制御装置１００のハードウェア構成例の説明は省略する。
【００６６】
図７は、実施の形態２に係る制御装置１００の機能構成例を示す。
図７では、図２の構成と比較して、データ収集部２５４が追加されている。データ収集部２５４以外の構成要素は、図２に示すものと同じである。このため、データ収集部２５４以外の構成要素の説明を省略する。データ収集部２５４は、出力照合ＦＰＧＡ１４０で動作する。データ収集部２５４は、指定部に相当する。
なお、図７では、作図上の理由から、図２に示す、入力同期ＦＰＧＡ１１０、マイクロコンピュータＡ１２０、マイクロコンピュータＢ１３０及び出力照合ＦＰＧＡ１４０の表記を省略している。
【００６７】
データ収集部２５４は、入力排他部２１２からサブシステムＡ２２０とサブシステムＢ２３０に入力される通常の入力値を収集する。そして、通常の入力値に対するサブシステムＡ２２０の出力値と通常の入力値に対するサブシステムの出力値とが一致していることを出力照合制御部２４１から通知された場合に、データ収集部２５４は、収集した通常の入力値をプリセット入力値に指定する。また、データ収集部２５４は、プリセット入力値として指定した通常の入力値に対する出力値を、プリセット入力値に対する正しい出力値として指定する。より具体的には、データ収集部２５４は、通常の入力値をプリセット入力値記憶部２５２に格納することで、当該通常の入力値をプリセット入力値に指定する。また、データ収集部２５４は、当該通常の入力値に対する出力値を、当該通常の入力値と対応付けてプリセット入力値記憶部２５２に格納することで、当該出力値を正しい出力値に指定する。
なお、プリセット入力値記憶部２５２に記憶されているプリセット入力値と正しい出力値の組の数が規定数以上である場合は、データ収集部２５４は、最も古いプリセット入力値と正しい出力値の組を消去して、新しいプリセット入力値と正しい出力値の組をプリセット入力値記憶部２５２に格納する。
【００６８】
本実施の形態でも、故障判定制御部２５１は、故障判定起動部２４２により起動されると、プリセット入力値記憶部２５２に記憶されているプリセット入力値を入力排他部２１２に送信する。但し、本実施の形態では、故障判定制御部２５１は、データ収集部２５４によりプリセット入力値として指定された入力値（データ収集部２５４によりプリセット入力値としてプリセット入力値記憶部２５２に格納された入力値）を入力排他部２１２に送信する。
また、本実施の形態でも、故障判定制御部２５１は、サブシステムＡ２２０の出力値とサブシステムＢ２３０の出力値を、プリセット入力値の正しい出力値と比較する。但し、本実施の形態では、故障判定制御部２５１は、データ収集部２５４により正しい出力値として指定された出力値（データ収集部２５４により正しい出力値としてプリセット入力値記憶部２５２に格納された出力値）を用いる。
【００６９】
本実施の形態でも、入力排他部２１２は、故障判定制御部２５１からのプリセット入力値をサブシステムＡ２２０及びサブシステムＢ２３０に入力する。但し、本実施の形態では、入力排他部２１２は、データ収集部２５４によりプリセット入力値として指定された入力値を、サブシステムＡ２２０及びサブシステムＢ２３０に入力する。
【００７０】
＊＊＊動作の説明＊＊＊
次に、本実施の形態に係る制御装置１００の動作例を説明する。
ここでは、図８を参照して、データ収集部２５４の動作例を説明する。
データ収集部２５４以外の構成要素の動作は、実施の形態１と同じである。
【００７１】
データ収集部２５４は、入力排他部２１２からサブシステムＡ２２０とサブシステムＢ２３０に入力される通常の入力値を受信する（ステップＳ５０１）。データ収集部２５４は、受信した通常の入力値を、一時記憶領域に格納する。
【００７２】
次に、データ収集部２５４は、出力照合制御部２４１から比較結果を受信する（ステップＳ５０２）。
【００７３】
次に、データ収集部２５４は、比較結果を参照して、サブシステムＡ２２０の出力値とサブシステムＢ２３０の出力値が一致しているか否かを判定する（ステップＳ５０３）。
サブシステムＡ２２０の出力値とサブシステムＢ２３０の出力値が一致している場合は、処理はステップＳ５０４に遷移する。一方、サブシステムＡ２２０の出力値とサブシステムＢ２３０の出力値が一致していない場合は、処理はステップＳ５０５に遷移する。
なお、サブシステムＡ２２０の出力値とサブシステムＢ２３０の出力値が一致している場合は、データ収集部２５４は、ステップＳ５０２において、サブシステムＡ２２０の出力値及びサブシステムＢ２３０の出力値のいずれかを、比較結果とともに出力照合制御部２４１から受信する。
【００７４】
サブシステムＡ２２０の出力値とサブシステムＢ２３０の出力値が一致している場合は、データ収集部２５４は、一時記憶領域で記憶されている通常の入力値とステップＳ５０２で受信した出力値との組を、プリセット入力値記憶部２５２に格納する（ステップＳ５０４）。
一方、サブシステムＡ２２０の出力値とサブシステムＢ２３０の出力値が一致していない場合は、データ収集部２５４は、一時記憶領域で記憶されている通常の入力値を破棄する（ステップＳ５０５）。
【００７５】
＊＊＊実施の形態の効果の説明＊＊＊
以上のように、本実施の形態では、プリセット入力値と正しい出力値の組を事前に準備しておかなくとも、プリセット入力値と正しい出力値の組を用いた故障判定を行うことができる。
【符号の説明】
【００７６】
１００  制御装置、１１０  入力同期ＦＰＧＡ、１２０  マイクロコンピュータＡ、１２１  ＣＰＵ、１２２  メモリ、１２３  Ｉ／Ｏデバイス、１２４  ＣＡＮ  Ｉ／Ｏデバイス、１３０  マイクロコンピュータＢ、１４０  出力照合ＦＰＧＡ、１５０  外部装置Ａ、１６０  外部装置Ｂ、２１０  入力部、２１１  入力同期部、２１２  入力排他部、２１３  故障判定動作状態記憶部、２２０  サブシステムＡ、２３０  サブシステムＢ、２４０  出力照合部、２４１  出力照合制御部、２４２  故障判定起動部、２４３  縮退モード動作状態記憶部、２５０  故障判定部、２５１  故障判定制御部、２５２  プリセット入力値記憶部、２５３  リトライ回数記憶部、２５４  データ収集部。
【要約】
入力排他部（２１２）は、冗長化されている複数のサブシステムからの複数の出力値が不一致の場合に、正しい出力値が既知であるプリセット入力値を複数のサブシステムに入力する。故障判定制御部（２５１）は、プリセット入力値に対する複数のサブシステムからの複数の出力値を取得し、取得した複数の出力値の各々と、プリセット入力値に対する正しい出力値とを比較する。【図１】
0006271103.tif 000002
【図２】
0006271103.tif 000003
【図３】
0006271103.tif 000004
【図４】
0006271103.tif 000005
【図５】
0006271103.tif 000006
【図６】
0006271103.tif 000007
【図７】
0006271103.tif 000008
【図８】
0006271103.tif 000009