(57)【要約】【課題】車両に搭載された車両制御システムにおいて、一部の演算部に故障が発生したときに、可能な限り制御を継続できるようにしつつ、より安全に車両を制御できるような技術を提供する。【解決手段】本開示の一態様による車両制御システムにおいて故障認識部は、Ｓ３０２で、当該演算部を除く他の演算部が故障していることを認識するように構成される。制御出力部は、故障した演算部を故障部とし、故障していない演算部を正常部として、他の演算部のうちの予め２以上の数に設定された規定数以上の演算部が故障部である場合、Ｓ３１３，Ｓ３２３で、予め設定されたフェールセーフ処理を実施する旨の出力を行い、他の演算部のうちの規定数未満の演算部が故障部である場合、正常部がフェールセーフ処理とは異なる車両の走行制御を実施する旨の出力を行うように構成される。【選択図】図３
2019121043.tif 000002
【特許請求の範囲】
【請求項１】
車両に搭載され、３以上の演算部（Ａ１００，Ｂ２００，Ｃ３００，Ｄ４００）のそれぞれが他の２以上の演算部から故障の有無を監視可能に構成された車両制御システム（１Ａ，１Ｂ，１Ｃ，１Ｄ）であって、
各演算部は、
当該演算部を除く他の演算部が故障していることを認識するように構成された故障認識部（Ｓ２１０，Ｓ３０２，Ｓ４０２，Ｓ５０２，Ｓ１３０２）と、
故障した演算部を故障部とし、故障していない演算部を正常部として、前記他の演算部のうちの予め２以上の数に設定された規定数以上の演算部が前記故障部である場合、予め設定されたフェールセーフ処理を実施する旨の出力を行い、前記他の演算部のうちの前記規定数未満の演算部が前記故障部である場合、前記正常部が前記フェールセーフ処理とは異なる車両の走行制御を実施する旨の出力を行うように構成された制御出力部（Ｓ２１４，Ｓ２２４，Ｓ２３４，Ｓ３１３，Ｓ３２３，Ｓ４１３，Ｓ４２３，Ｓ５１３，Ｓ５２３，Ｓ９１，Ｓ１２５，Ｓ１３１３，Ｓ１３２３，Ｓ１３３３）と、
を備える車両制御システム。
【請求項２】
請求項１に記載の車両制御システムであって、
前記各演算部は、
前記他の演算部のうちの何れかが前記正常部である場合、前記故障部に対して出力を停止させるための停止指令を送信するように構成された停止送信部（Ｓ２１２，Ｓ２２２，Ｓ２３２，Ｓ８１，Ｓ８２，Ｓ１２１）、
をさらに備える車両制御システム。
【請求項３】
請求項２に記載の車両制御システムであって、
前記各演算部から送信された停止指令を受信可能であり、２以上の演算部からの停止指令を受けたときのみ前記故障部の出力を停止させるように構成された停止出力部（１２，１３，１４，１８）、
をさらに備える車両制御システム。
【請求項４】
請求項２または請求項３に記載の車両制御システムであって、
前記停止指令が送信されると、少なくともフェールセーフ処理開始後まで前記故障部に対する該停止指令の出力を継続させるように構成された出力継続部（１５，１６，１７，１９）、
をさらに備える車両制御システム。
【請求項５】
請求項１から請求項４の何れか１項に記載の車両制御システムであって、
前記各演算部は、
全ての演算部が何れか１以上の演算部に監視されるように構成され、
前記故障認識部により当該演算部の監視対象である演算部が故障部であることが認識された場合、１以上の正常部に対して、当該正常部の監視対象に、当該故障部が監視対象としていた演算部を追加するように構成された追加設定部（Ｓ８１）、
をさらに備える車両制御システム。
【請求項６】
請求項１から請求項５の何れか１項に記載の車両制御システムであって、
故障部が生じたことで車両の走行に支障を来すか否かを判定する支障判定部（Ｓ２１０）、
をさらに備え、
前記制御出力部は、車両の走行に支障を来すと判定されると、前記他の演算部のうちの前記規定数未満の演算部が前記故障部である場合であっても、前記フェールセーフ処理を実施する旨の出力を行う
ように構成された車両制御システム。
【請求項７】
請求項１から請求項６の何れか１項に記載の車両制御システムであって、
前記複数の演算部のうちの予め設定された演算部を表す特定演算部が前記故障部であるか否かを判定する故障判定部（Ｓ２１０）、
をさらに備え、
前記制御出力部は、前記特定演算部が前記故障部であると判定されると、前記他の演算部のうちの前記規定数未満の演算部が前記故障部である場合であっても、前記フェールセーフ処理を実施する旨の出力を行う
ように構成された車両制御システム。
【請求項８】
車両に搭載され、３以上の演算部（Ａ１００，Ｂ２００，Ｃ３００，Ｄ４００）のそれぞれが他の２以上の演算部から故障の有無を監視可能に構成された車両制御装置（１Ａ，１Ｂ，１Ｃ，１Ｄ）であって、
各演算部は、
当該演算部を除く他の演算部が故障していることを認識するように構成された故障認識部（Ｓ２１０，Ｓ３０２）と、
故障した演算部を故障部とし、故障していない演算部を正常部として、前記他の演算部のうちの予め２以上の数に設定された規定数以上の演算部が前記故障部である場合、予め設定されたフェールセーフ処理を実施する旨の出力を行い、前記他の演算部のうちの前記規定数未満の演算部が前記故障部である場合、前記正常部が前記フェールセーフ処理とは異なる車両の走行制御を実施する旨の出力を行うように構成された制御出力部（Ｓ２１４，Ｓ２２４，Ｓ２３４，Ｓ３１３，Ｓ３２３，Ｓ４１３，Ｓ４２３，Ｓ５１３，Ｓ５２３，Ｓ９１，Ｓ１２５，Ｓ１３１３，Ｓ１３２３，Ｓ１３３３）と、
を備える車両制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、車両に搭載され、複数の演算部のそれぞれが他の演算部の故障の有無を認識可能に構成された車両制御システム、および車両制御装置に関する。
【背景技術】
【０００２】
下記の特許文献１には、複数の演算部を有する車両制御システムにおいて、通常時に作動する現用系の演算部および通常時は作動せず待機する待機系の演算部を備え、現用系の演算部が故障したときに待機系の演算部が現用系の演算部の代替をすることで、制御を継続するという技術が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１６−０６０４１３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、システムの故障時に車両を停止させることは、高速道路上において後続車の追突による重大事故を引き起こす虞があり、あるいは、極寒・高温・乾燥などの極限環境においては人命を危険にさらす虞があり、必ずしも安全とは限らない。また、ユーザ視点として、カーディーラー等、自動車の点検整備場へ、自走で移動させたいというニーズも存在する。故に、故障部位を切り離す、あるいは、走行性能を低下させてでも、安全に自動車の走行機能を継続させられる電気・電子制御システムが求められる。
しかしながら、発明者の詳細な検討の結果、特許文献１の技術では、現用系の演算部の故障中に、待機系の演算部にも故障が発生する、いわゆる二重故障が発生した場合に、各演算部から意図しない信号が出力される可能性があり、この際には車両を安全に制御できない虞がある、という課題が見出された。
【０００５】
本開示の１つの局面は、車両に搭載され、３以上の演算部のそれぞれが他の２以上の演算部から故障の有無を認識可能に構成された車両制御システム、および車両制御装置において、一部の演算部に故障が発生したときに、可能な限り制御を継続できるようにしつつ、より安全に車両を制御できるような技術を提供することにある。
【課題を解決するための手段】
【０００６】
本開示の一態様による車両制御システムは、故障認識部（Ｓ２１０，Ｓ３０２，Ｓ４０２，Ｓ５０２，Ｓ１３０２）と、制御出力部（Ｓ２１４，Ｓ２２４，Ｓ２３４，Ｓ３１３，Ｓ３２３，Ｓ４１３，Ｓ４２３，Ｓ５１３，Ｓ５２３，Ｓ９１，Ｓ１２５，Ｓ１３１３，Ｓ１３２３，Ｓ１３３３）と、を備える。故障認識部は、当該演算部を除く他の演算部が故障していることを認識するように構成される。
【０００７】
制御出力部は、故障した演算部を故障部とし、故障していない演算部を正常部として、他の演算部のうちの予め２以上の数に設定された規定数以上の演算部が故障部である場合、予め設定されたフェールセーフ処理を実施する旨の出力を行い、他の演算部のうちの規定数未満の演算部が故障部である場合、正常部がフェールセーフ処理とは異なる車両の走行制御を実施する旨の出力を行うように構成される。
【０００８】
このような構成によれば、３つ以上の演算部のうちの規定数未満の演算部が故障部である場合には正常部に車両の走行制御を実施させ、規定数以上の演算部が故障部である場合にはフェールセーフ処理を実施することができる。よって、可能な限り制御を継続できるようにしつつ、より安全に車両を制御することができる。
【０００９】
なお、この欄および特許請求の範囲に記載した括弧内の符号は、一つの態様として後述する実施形態に記載の具体的手段との対応関係を示すものであって、本開示の技術的範囲を限定するものではない。
【図面の簡単な説明】
【００１０】
【図１】第１実施形態の車両制御システムの構成を示すブロック図である。
【図２】第１実施形態の監視処理のフローチャート（その１）である。
【図３】第１実施形態の監視処理のフローチャート（その２）である。
【図４】第１実施形態の監視処理のフローチャート（その３）である。
【図５】第１実施形態の監視処理のフローチャート（その４）である。
【図６】演算部から出力される各信号の状態の一例を示すタイミングチャートである。
【図７】第２実施形態の車両制御システムの作動を示す説明図である。
【図８】第２実施形態の監視処理のフローチャートである。
【図９】第３実施形態の車両制御システムの構成を示すブロック図である。
【図１０】第３実施形態の監視処理のフローチャートである。
【図１１】第４実施形態の車両制御システムの構成を示すブロック図である。
【図１２】第４実施形態の監視処理のフローチャート（その１）である。
【図１３】第４実施形態の監視処理のフローチャート（その２）である。
【発明を実施するための形態】
【００１１】
以下、図面を参照しながら、本開示の実施形態を説明する。
［１．第１実施形態］
［１−１．構成］
図１に示す車両制御システム１Ａは、演算部Ａ１００と、演算部Ｂ２００と、演算部Ｃ３００と、を備える。車両制御システム１Ａは、３以上の演算部のそれぞれが他の２以上の演算部から故障の有無を監視可能に構成される。
【００１２】
ここで、「他の２以上の演算部から故障の有無を監視可能」とは、第１実施形態のように、ある演算部が２以上の演算部から監視される構成、および後述する第２実施形態のように、ある演算部が、あるときは１つの演算部から監視され、他のときに異なる１つの演算部から監視される構成、を含む意味である。また、演算部Ａ１００，Ｂ２００，Ｃ３００は、それぞれが異なる電子制御装置に搭載されてもよいし、１つの電子制御装置に搭載されてもよい。
【００１３】
また、車両制御システム１Ａは、ＯＲゲート１１，ＡＮＤゲート１２，１３，１４、ラッチ回路１５，１６，１７を備えてもよい。
演算部Ａ１００，Ｂ２００，Ｃ３００は、それぞれ、ＣＰＵ１０１，２０１，３０１と、例えば、ＲＡＭ又はＲＯＭ等の半導体メモリ（以下、メモリ１０２，２０２，３０２）と、を有するマイクロコンピュータを備える。演算部Ａ１００，Ｂ２００，Ｃ３００の各機能は、ＣＰＵ１０１，２０１，３０１が非遷移的実体的記録媒体に格納されたプログラムを実行することにより実現される。この例では、メモリ１０２，２０２，３０２が、プログラムを格納した非遷移的実体的記録媒体に該当する。また、このプログラムが実行されることで、プログラムに対応する方法が実行される。
【００１４】
なお、非遷移的実体的記録媒体とは、記録媒体のうちの電磁波を除く意味である。また、演算部Ａ１００，Ｂ２００，Ｃ３００は、１つのマイクロコンピュータを備えてもよいし、複数のマイクロコンピュータを備えてもよい。
【００１５】
また、メモリ１０２，２０２，３０２は、それぞれの演算部Ａ１００，Ｂ２００，Ｃ３００に備えられる必要はなく、演算部Ａ１００，Ｂ２００，Ｃ３００が、演算部Ａ１００，Ｂ２００，Ｃ３００の外部に配置されたメモリを共用するように構成されてもよい。
【００１６】
演算部Ａ１００，Ｂ２００，Ｃ３００は、車両制御の機能を備える。車両制御とは、車両が有する任意の装置を制御することを表し、例えば、エンジン制御、制動制御、エアコン制御、等を含む。特に、ここでは、監視機能を含む。監視機能とは、演算部Ａ１００，Ｂ２００，Ｃ３００が、他の演算部が正常に作動しているか否かを監視する機能を表す。例えば、演算部Ａ１００が駆動力制御を行うユニット、演算部Ｂ２００が電池制御を行うユニット、演算部Ｃ３００が演算部Ａ１００および演算部Ｂ２００の監視のみを行うユニットといった構成にすることができる。
【００１７】
監視機能では、演算部Ａ１００，Ｂ２００，Ｃ３００は、相互に監視を行う。これにより、任意の１つの演算部が故障したときに残りの２つの演算部が故障を検出することが可能である。また、任意の１つの演算部の故障後も、残りの２つの演算部で相互に監視を継続することが可能である。
【００１８】
なお、ここでいう監視とは、演算部の故障を検知できる方法であれば、その手段は問わない。例えば、被監視側に基本的な演算を実行させ、監視側に結果を出力することで、演算器をチェックする方法、被監視側がウォッチドッグパルスや一定周期で動作するカウンタ等の通信データを監視側に出力し、ＣＰＵフローをチェックする方法、などがある。
【００１９】
あるいは、アプリケーションレベルで、車両制御ソフトウェアの演算結果等の制御で得られるデータを他の演算部で監視してもよい。また、相互監視を行う構成においては、一方の装置へ異常な信号、あるいは通信データを出力したときに、正しく異常判定されるか、すなわち監視機能が動いているか、を他方の装置でチェックする方法なども考えられる。
【００２０】
演算部Ａ１００，Ｂ２００，Ｃ３００に含まれる各部の機能を実現する手法はソフトウェアに限るものではなく、その一部又は全部の機能は、一つあるいは複数のハードウェアを用いて実現されてもよい。例えば、上記機能がハードウェアである電子回路によって実現される場合、その電子回路は、デジタル回路、又はアナログ回路、あるいはこれらの組合せによって実現されてもよい。
【００２１】
ここで、ＯＲゲート１１は、論理和を出力する周知の電子回路である。ＡＮＤゲート１２，１３，１４は、論理積を出力する周知の電子回路である。ＯＲゲート１１は、演算部Ａ１００，Ｂ２００，Ｃ３００から出力されるＦＳｘの何れかを受けると、フェールセーフ信号を出力する。
【００２２】
ラッチ回路１５，１６，１７は、一度ＯＮが入力されると、ラッチ回路に対するリセット信号を受けるまで、ＯＮの出力を継続する機能を有する周知の回路である。ラッチ回路１５，１６，１７は、それぞれＡＮＤゲート１２，１３，１４の出力側に配置される。
【００２３】
［１−２．信号］
各演算部Ａ１００，Ｂ２００，Ｃ３００から出力される信号について以下に説明する。各演算部Ａ１００，Ｂ２００，Ｃ３００には監視出力端子部を備え、この監視出力端子部からは、Ｗｘｙが出力される。Ｗｘｙは、監視結果を表す信号であり、ｘは信号出力元の演算部を表す番号、ｙは信号出力先の演算部を表す番号である。本実施形態では、演算部Ａ１００がｘ＝１、ｙ＝１に対応し、演算部Ｂ２００がｘ＝２、ｙ＝２に対応し、演算部Ｃ３００がｘ＝３、ｙ＝３に対応する。
【００２４】
すなわち、Ｗ１２は演算部Ａ１００が判定する演算部Ｂ２００の監視結果、Ｗ１３は演算部Ａ１００が判定する演算部Ｃ３００の監視結果である。また、Ｗ２１は演算部Ｂ２００が判定する演算部Ａ１００の監視結果、Ｗ２３は演算部Ｂ２００が判定する演算部Ｃ３００の監視結果である。また、Ｗ３１は演算部Ｃ３００が判定する演算部Ａ１００の監視結果、Ｗ３２は演算部Ｃ３００が判定する演算部Ｂ２００の監視結果である。
【００２５】
各演算部Ａ１００，Ｂ２００，Ｃ３００は、監視する演算部の異常を検出する前は、ＷｘｙをＯＦＦとし、監視する演算部の異常を検出すると、ＷｘｙをＯＮにした出力をする。
また、各演算部Ａ１００，Ｂ２００，Ｃ３００には、ＲＳＴｘが入力される入力端子部を備える。ｘは入力端子部を有する演算部を表す番号である。ＲＳＴｘは、各演算部に入力される外部リセット信号であり、ＲＳＴｘのＯＮが入力されると演算部はリセット状態となり、演算部の全ての作動および出力が停止する。
【００２６】
つまり、ＲＳＴｘは演算部の機能を停止させる停止指令として機能する。本実施形態では、ラッチ回路１５，１６，１７がＲＳＴｘのＯＮを継続するので、各演算部Ａ１００，Ｂ２００，Ｃ３００は、ＲＳＴｘのＯＮ入力の継続により、リセット状態が継続し、信号の出力が停止する。
【００２７】
なお、ＲＳＴ１は演算部Ａ１００のリセット入力、ＲＳＴ２は演算部Ｂ２００のリセット入力、ＲＳＴ３は演算部Ｃ３００のリセット入力である。後述するように、故障した演算部は、他の演算部から入力端子部にＯＮが入力されることで、リセット状態となる。ここで、以下の説明では、故障した演算部を「故障部」とも表記し、また、故障していない演算部を「正常部」とも表記する。
【００２８】
なお、本案が期待する効果は、本信号のＯＮ入力により、故障した演算部が外部に異常な信号を出力しないことにあるので、リセットを継続する構成に換えて、演算部の電源カットをする効果や、全出力ポートを無効化する効果が継続する信号を採用する構成であってもよい。
【００２９】
次に、各演算部Ａ１００，Ｂ２００，Ｃ３００にはフェールセーフ出力端子部を備え、このフェールセーフ出力端子部からは、ＦＳｘが出力される。ｘは信号出力元の演算部を表す番号である。
【００３０】
ＦＳ１は演算部Ａ１００からのフェールセーフ出力、ＦＳ２は演算部からのフェールセーフ出力、ＦＳ３は演算部Ｃ３００からのフェールセーフ出力である。ＦＳはＯＲゲート１１により、ＦＳ１，ＦＳ２，ＦＳ３の論理和として出力される。
【００３１】
ＦＳは、本案で提案するシステム全体から出力されるフェールセーフ出力を表すフェールセーフ信号であり、ＯＮが出力されたときに、フェールセーフ出力を受けた任意の制御装置が車両を安全に停止するように制御する。例えば、ハイブリッド車や電気自動車において、車両の駆動力を生み出す電動モータの駆動装置につながっており、ＯＮ出力時には、駆動装置が駆動力を強制的にカットする。
【００３２】
各演算部Ａ１００，Ｂ２００，Ｃ３００は、演算部の二重故障を検出した場合、あるいは走行機能を継続すると不安全な状態となる致命的な異常を検出した場合に、フェールセーフ信号ＦＳｘのＯＮを出力する。ただし、本案の課題を鑑みると、演算部の故障が単一故障のみで、走行機能を継続できる場合は、フェールセーフ信号ＦＳｘはＯＦＦ出力とすることが好ましい。
【００３３】
何れかの演算部が二重故障や致命的な異常を検出した場合に、車両を安全に停止させるためには、ＯＲゲート１１が必要である。なお、各演算部Ａ１００，Ｂ２００，Ｃ３００は、故障発生後にＲＳＴｘによりリセットされた状態ではＦＳｘがＯＦＦ出力となるように設定される。
【００３４】
ただし、各演算部Ａ１００，Ｂ２００，Ｃ３００がリセットされた状態でのＦＳｘ出力がハイインピーダンスになる場合は、ＦＳｘ出力は、外部プルアップまたはプルダウンによりＯＦＦ出力となるようにしておくとよい。この構成は、単一の故障であれば、残りの演算部で走行継続させ、二重故障や致命的な異常を検出した時のみ、ＦＳをＯＮにするためである。
【００３５】
ここで、ＲＳＴ１はＷ２１，Ｗ３１を入力とするＡＮＤゲート１２の出力結果であり、ＲＳＴ２はＷ１２，Ｗ３２を入力とするＡＮＤゲート１３の出力結果であり、ＲＳＴ３はＷ１３，Ｗ２３を入力とするＡＮＤゲート１４の出力結果である。本構成とすることで、例えば、演算部Ａ１００が故障したときには、演算部Ｂ２００および演算部Ｃ３００が演算部Ａ１００の故障を検出し、Ｗ２１＝ＯＮ，Ｗ３１＝ＯＮとなるため、演算部Ａ１００をリセットさせることができ、故障している演算部Ａ１００の出力を停止できる。
【００３６】
なお、ＡＮＤゲート１２〜１４が、ＡＮＤゲートではなくＯＲゲートである場合には、例えば演算部Ａ１００の単一故障の際、Ｗ１２が異常出力となり、どのような出力になるか分からない状況となる。例えば、Ｗ１２がＯＮとなってしまった場合、演算部Ｂ２００が意図しないタイミングでリセットされてしまう虞がある。
【００３７】
このため、本案では、リセット入力側の演算部に対し、監視結果出力側の演算部の単一故障による影響を与えないために、また、故障している演算部のみを確実にリセットさせるために、ＡＮＤゲートを備える構成を採用する。
【００３８】
なお、各演算部Ａ１００，Ｂ２００，Ｃ３００は、ＲＳＴｘによりリセットされた状態ではＷｘｙがＯＦＦ出力となるようにしておく。ただし、各演算部Ａ１００，Ｂ２００，Ｃ３００がリセットされた状態でのＷｘｙの出力がハイインピーダンスになる場合は、外部プルアップまたはプルダウンによりＷｘｙがＯＦＦ出力となるように設定する。
【００３９】
この構成は、１つの演算部故障後の走行継続中に、２つ目の演算部が故障した時に、３つ目の正常動作している演算部が意図せずリセットされることを防ぐためである。リセット状態でＷｘｙがＯＦＦではなくＯＮとなってしまう場合、例えば演算部Ａ１００が故障している状態、すなわち、Ｗ１３＝ＯＮで、演算部Ｂ２００の故障が発生したときに、Ｗ２３が異常出力によりＯＮとなってしまうと、正常動作している演算部Ｃ３００がリセットされてしまう。リセット状態ではＷｘｙ＝ＯＦＦとすることで、二重故障発生時にも３つ目の正常動作している演算部が意図せずリセットされることがなくなるようにしている。
【００４０】
ラッチ回路１５〜１７は、ＲＳＴｘ信号がＯＦＦからＯＮになると、ＯＦＦ状態からＯＮ状態に遷移し、その後は、ＡＮＤゲート１２〜１４の出力状態に関わらず、ＯＮ状態を保持する。本構成とすることで、１つの演算部故障後の走行継続中に、２つ目の演算部が故障した時も、１つ目の故障部はリセット状態が継続され、出力停止状態が継続する。
【００４１】
なお、ラッチ回路を備えない場合は、例えば演算部Ａ１００が故障している状態で、演算部Ｂ２００の故障が発生すると、Ｗ２１が異常出力によりＯＦＦとなってしまい、故障している演算部Ａ１００がリセット状態から意図せず復帰してしまう虞がある。さらに、この際、故障部からの出力であるＷ１３，Ｗ２３が異常出力によりＯＮとなってしまうと、正常動作している演算部Ｃ３００が意図せずリセットしてしまう虞がある。
【００４２】
このため、本案では、演算部が一度リセットされたら、その後はリセット状態を保持する構成とすることで、上記のような、二重故障発生時にリセットした演算部が意図せずに復帰する虞を取り除いている。なお、ラッチ回路１５〜１７において、ラッチ状態のクリア、すなわちリセット解除は、例えば、３つ全ての演算部が正常である場合に行うように構成する。ラッチ回路１５〜１７は、所定のリセット信号を受けるとＯＮ状態からＯＦＦ状態に遷移する。
【００４３】
［１−２．処理］
次に、各演算部Ａ１００，Ｂ２００，Ｃ３００が実行する監視処理について、図２以下のフローチャートを用いて説明する。監視処理では、前述の監視機能を処理として実現する。また、監視処理は、例えば、車両の電源が投入されると開始される。
【００４４】
監視処理では、まず、Ｓ２１０で、演算部Ａ１００，Ｂ２００，Ｃ３００は、他の演算部に故障が発生したか否かを判定する。演算部Ａ１００，Ｂ２００，Ｃ３００は、他の演算部に故障が発生していない場合に、Ｓ２１０を繰り返す。
【００４５】
また、演算部Ｂ２００，Ｃ３００は、演算部Ａ１００が故障したと判定すると、Ｓ２１２に移行する。また、演算部Ａ１００，Ｃ３００は、演算部Ｂ２００が故障したと判定すると、Ｓ２２２に移行する。また、演算部Ａ１００，Ｂ２００は、演算部Ｃ３００が故障したと判定すると、Ｓ２３２に移行する。
【００４６】
Ｓ２１２では、演算部Ａ１００を監視している演算部Ｂ２００、および演算部Ｃ３００が演算部Ａ１００の異常を検出している。この場合、演算部Ｂ２００はＷ２１をＯＮ出力し、および演算部Ｃ３００はＷ３１をＯＮ出力する。これにより、Ｓ２１３で示すように、ＲＳＴ１がＯＮとなり、演算部Ａ１００は動作および出力が停止する。すなわち、故障している演算部Ａ１００から外部への異常な信号は全てカットされる。
【００４７】
続いてＳ２１４で、演算部Ｂ２００およびＣ３００は、フェールセーフ処理とは異なる車両の走行制御、例えば、演算部Ａ１００が故障していないときの制御状態を表す通常制御状態における制御を継続しつつ、演算部Ｂ２００およびＣ３００のうちの少なくとも一方は、演算部Ａ１００が実行していた車両制御を代替して実行する車両制御機能代替を開始する。この結果、演算部Ｂ２００と演算部Ｃ３００とが相互に監視を継続している状態で、走行を継続できる。
【００４８】
なお、機能代替では、通常制御状態で演算部Ａ１００が行っている制御全てをそのまま実行してもよいし、機能を縮退して走行に必要な最低限の機能のみを実行してもよい。また、演算部Ｂ２００およびＣ３００は、演算部Ａ１００の故障を受けて、通常制御状態から実行する制御を変更してもよい。また、演算部Ａ１００が故障したときに限らず、演算部Ｂ２００またはＣ３００が故障したときは、他の演算部が同様に機能してもよい。
【００４９】
次に、Ｓ２２２では、演算部Ｂ２００に故障が発生しており、演算部Ｂ２００を監視している演算部Ａ１００およびＣ３００が演算部Ｂ２００の異常を検出している。この場合、演算部Ａ１００は、Ｗ１２をＯＮ出力し、演算部Ｃ３００は、Ｗ３２をＯＮ出力する。これにより、Ｓ２２３に示すように、ＲＳＴ２がＯＮとなり、演算部Ｂ２００は動作および出力が停止する。すなわち、故障している演算部Ｂ２００から外部への異常な信号は全てカットされる。
【００５０】
続いてＳ２２４で、演算部Ａ１００およびＣ３００は、通常制御状態における制御を継続しつつ、演算部Ａ１００およびＣ３００のうちの少なくとも一方は、演算部Ｂ２００が実行していた車両制御を代替して実行する車両制御機能代替を開始する。なお、ここでの通常制御状態は、演算部Ｂ２００が故障していないときの制御状態を表す。この結果、演算部Ａ１００と演算部Ｃ３００とが相互に監視を継続している状態で、走行を継続できる。
【００５１】
次に、Ｓ２３２では、演算部Ｃ３００に故障が発生しており、演算部Ｃ３００を監視している演算部Ａ１００およびＢ２００が演算部Ｃ３００の異常を検出している。この場合、演算部Ａ１００は、Ｗ１３をＯＮ出力し、演算部Ｂ２００がＷ２３をＯＮ出力する。これにより、Ｓ２３３に示すように、ＲＳＴ３がＯＮとなり、演算部Ｃ３００は動作および出力が停止する。すなわち、故障している演算部Ｃ３００から外部への異常な信号は全てカットされる。
【００５２】
続いてＳ２３４で、演算部Ａ１００およびＢ２００は、通常制御状態における制御を継続しつつ、演算部Ａ１００およびＢ２００のうちの少なくとも一方は、演算部Ｃ３００が実行していた車両制御を代替して実行する車両制御機能代替を開始する。なお、ここでの通常制御状態は、演算部Ｃ３００が故障していないときの制御状態を表す。この結果、演算部Ａ１００と演算部Ｂ２００とが相互に監視を継続している状態で、走行を継続できる。
【００５３】
引き続き、演算部Ａ１００が故障しているときの処理を図３のフローチャートで説明する。演算部Ａ１００の故障中には、Ｓ３０１で、演算部Ｂ２００およびＣ３００は、演算部Ａ１００の故障中での走行制御を継続し、Ｓ３０２で、さらに他の演算部の故障が発生したか否かを判定する。すなわち、第一の故障である演算部Ａ１００の故障中に、他の演算部の故障である第二の故障が発生したか否かを判定する。
【００５４】
演算部Ｃ３００が演算部Ｂ２００の故障の発生を認識した場合、演算部Ｃ３００は、Ｓ３１２以下の処理を実施する。また、演算部Ｂ２００が演算部Ｃ３００の故障の発生を認識した場合、演算部Ｂ２００は、Ｓ３２２以下の処理を実施する。
【００５５】
Ｓ３１２では、演算部Ｃ３００が演算部Ｂ２００の異常を検出し、演算部Ｃ３００は演算部Ａ１００と演算部Ｂ２００の二重故障を認識する。このとき、Ｗ２１は不定となるが、ラッチ回路１５により、ＲＳＴ１はＯＮが保持され、演算部Ａ１００は動作および出力の停止状態が継続される。
【００５６】
続いて、Ｓ３１３で、演算部Ｃ３００はフェールセーフ処理として、ＦＳ３をＯＮ出力する。これにより、Ｓ３１４に示すように、ＦＳがＯＮとなり、演算部Ｂ２００が外部へ異常な信号を出力していたとしても、車両は安全に走行停止することができる。
【００５７】
一方、Ｓ３２２では、演算部Ｂ２００が演算部Ｃ３００の異常を検出し、演算部Ｂ２００は演算部Ａ１００と演算部Ｃ３００の二重故障を認識する。このとき、Ｗ３１は不定となるが、ラッチ回路１５により、ＲＳＴ１はＯＮが保持され、演算部Ａ１００は動作および出力の停止状態が継続される。
【００５８】
続いて、Ｓ３２３で、演算部Ｂ２００はフェールセーフ処理として、ＦＳ２をＯＮ出力する。これにより、Ｓ３２４に示すように、ＦＳがＯＮとなり、演算部Ｃ３００が外部へ異常な信号を出力していたとしても、車両は安全に走行停止することができる。
【００５９】
引き続き、演算部Ｂ２００が故障しているときの処理を図４のフローチャートで説明する。演算部Ｂ２００の故障中には、Ｓ４０１で、演算部Ａ１００およびＣ３００は、演算部Ｂ２００の故障中での走行制御を継続し、Ｓ４０２で、さらに他の演算部の故障が発生したか否かを判定する。すなわち、第一の故障である演算部Ｂ２００の故障中に、他の演算部の故障である第二の故障が発生したか否かを判定する。
【００６０】
演算部Ｃ３００が演算部Ａ１００の故障の発生を認識した場合、演算部Ｃ３００は、Ｓ４１２以下の処理を実施する。また、演算部Ａ１００が演算部Ｃ３００の故障の発生を認識した場合、演算部Ａ１００は、Ｓ４２２以下の処理を実施する。
【００６１】
Ｓ４１２では、演算部Ｃ３００が演算部Ａ１００の異常を検出し、演算部Ｃ３００は演算部Ｂ２００と演算部Ａ１００の二重故障を認識する。このとき、Ｗ１２は不定となるが、ラッチ回路１６により、ＲＳＴ２はＯＮが保持され、演算部Ｂ２００は動作および出力の停止状態が継続される。
【００６２】
続いて、Ｓ４１３で、演算部Ｃ３００はフェールセーフ処理として、ＦＳ３をＯＮ出力する。これにより、Ｓ４１４に示すように、ＦＳがＯＮとなり、演算部Ａ１００が外部へ異常な信号を出力していたとしても、車両は安全に走行停止することができる。
【００６３】
一方、Ｓ４２２では、演算部Ａ１００が演算部Ｃ３００の異常を検出し、演算部Ａ１００は演算部Ｂ２００と演算部Ｃ３００の二重故障を認識する。このとき、Ｗ３２は不定となるが、ラッチ回路１６により、ＲＳＴ２はＯＮが保持され、演算部Ｂ２００は動作および出力の停止状態が継続される。
【００６４】
続いて、Ｓ４２３で、演算部Ａ１００はフェールセーフ処理として、ＦＳ１をＯＮ出力する。これにより、Ｓ４２４に示すように、ＦＳがＯＮとなり、演算部Ｃ３００が外部へ異常な信号を出力していたとしても、車両は安全に走行停止することができる。
【００６５】
引き続き、演算部Ｃ３００が故障しているときの処理を図５のフローチャートで説明する。演算部Ｃ３００の故障中には、Ｓ５０１で、演算部Ａ１００およびＢ２００は、演算部Ｃ３００の故障中での走行制御を継続し、Ｓ５０２で、さらに他の演算部の故障が発生したか否かを判定する。すなわち、第一の故障である演算部Ｃ３００の故障中に、他の演算部の故障である第二の故障が発生したか否かを判定する。
【００６６】
演算部Ｂ２００が演算部Ａ１００の故障の発生を認識した場合、演算部Ｂ２００は、Ｓ５１２以下の処理を実施する。また、演算部Ａ１００が演算部Ｂ２００の故障の発生を認識した場合、演算部Ａ１００は、Ｓ５２２以下の処理を実施する。
【００６７】
Ｓ５１２では、演算部Ｂ２００が演算部Ａ１００の異常を検出し、演算部Ｂ２００は演算部Ｃ３００と演算部Ａ１００の二重故障を認識する。このとき、Ｗ１３は不定となるが、ラッチ回路１７により、ＲＳＴ３はＯＮが保持され、演算部Ｃ３００は動作および出力の停止状態が継続される。
【００６８】
続いて、Ｓ５１３で、演算部Ｂ２００はフェールセーフ処理として、ＦＳ２をＯＮ出力する。これにより、Ｓ５１４に示すように、ＦＳがＯＮとなり、演算部Ａ１００が外部へ異常な信号を出力していたとしても、車両は安全に走行停止することができる。
【００６９】
一方、Ｓ５２２では、演算部Ａ１００が演算部Ｂ２００の異常を検出し、演算部Ａ１００は演算部Ｃ３００と演算部Ｂ２００の二重故障を認識する。このとき、Ｗ２３は不定となるが、ラッチ回路１７により、ＲＳＴ３はＯＮが保持され、演算部Ｃ３００は動作および出力の停止状態が継続される。
【００７０】
続いて、Ｓ５２３で、演算部Ａ１００はフェールセーフ処理として、ＦＳ１をＯＮ出力する。これにより、Ｓ５２４に示すように、ＦＳがＯＮとなり、演算部Ｂ２００が外部へ異常な信号を出力していたとしても、車両は安全に走行停止することができる。
【００７１】
次に、図６は、通常制御状態から演算部Ａ１００が故障し、続いて演算部Ｂ２００が故障したときの各信号の状態の一例を示すタイミングチャートである。t６１に示す通常制御状態では、各信号はＯＦＦである。
【００７２】
t６２は、演算部Ａ１００が故障したタイミングである。t６３は、演算部Ｂ２００および演算部Ｃ３００が演算部Ａ１００の異常を検出したタイミングであって、演算部Ｂ２００およびＣ３００のうちの少なくとも一方が演算部Ａ１００の機能代替を開始するタイミングである。
【００７３】
t６３ではＷ２１およびＷ３１がＯＮとなり、以降、演算部Ａ１００は出力停止状態となるため、演算部Ｂ２００は故障している演算部Ａ１００の影響を受けることなく、動作を継続できる。ここで、t６２からt６３の間は、演算部Ａ１００の出力信号である、Ｗ１２，Ｗ１３が不定状態となるが、ＡＮＤゲート１３および１４により、ＲＳＴ２，ＲＳＴ３はＯＦＦを継続し、演算部Ｂ２００および演算部Ｃ３００は動作および出力を継続する。
【００７４】
t６２からt６３の間は、ＦＳ１も不定となるため、ＯＲゲート１１により、システム全体から出力されるフェールセーフ信号ＦＳは一時的に不定となる。ただし、フェールセーフ処理を実施する装置は、t６２からt６３の間、一時的にＦＳがＯＮ出力されたとしても、t６３のタイミングで、フェールセーフ信号ＦＳが解除された場合には、車両がフェールセーフ状態から復帰できるように構成される。
【００７５】
例えば、フェールセーフ処理を実施する装置として、電動自動車の電動モータのドライバが備えられる場合には、電動モータのドライバは、t６２からt６３の間、一時的に車両の駆動力をカットするだけで、t６３のタイミングからは、通常制御状態と同じく、指令した駆動力で制御するように構成される。
【００７６】
t６４は、演算部Ｂ２００が故障したタイミングであり、t６５は、演算部Ｃ３００が演算部Ｂ２００の異常を検出し、フェールセーフ処理を行うタイミングである。t６５でＦＳ３がＯＮとなり、フェールセーフ信号ＦＳのＯＮ出力により、車両は安全に走行停止することができる。
【００７７】
ここでt６４以降は、演算部Ｂ２００の出力信号である、Ｗ２１が不定状態となるが、ラッチ回路１５により、t６４以降も演算部Ａ１００の出力停止状態が継続する。また、t６４以降は、Ｗ２３も不定状態となるが、ＡＮＤゲート１４により、ＲＳＴ３はＯＦＦを継続し、演算部Ｃ３００は動作および出力を継続する。
【００７８】
さらに、t６４以降は、ＦＳ２も不定状態となるため、ＯＲゲート１１により、システム全体から出力されるフェールセーフ信号ＦＳは、t６４からt６５の間、不定となる。しかし、仮にこの間ＦＳ２がＯＮ出力されていたとしても、ＦＳがＯＮとなるタイミングがt６５から早まるだけであり、車両は安全に走行停止することができるため、問題とはならない。
【００７９】
以上のような構成と動作により、３つの演算部の内任意の１つの演算部が故障した場合にも、残りの２つの演算部で制御と監視を継続可能である。また、残りの２つの演算部が故障部の動作と出力を停止させるので、単一故障に対し安全に走行機能を継続可能である。さらに、３つの内、任意の２つの演算部が故障した場合も、残りの１つの演算部がフェールセーフ信号を出力することで、二重故障に対し安全に走行停止可能である。
【００８０】
［１−３．効果］
上記の車両制御システム１Ａは、下記をポイントとする。
・３つの制御装置である演算部Ａ１００，Ｂ２００，Ｃ３００が相互に監視し合う構成とすることで、その内任意の１つの演算部が故障した場合にも、残りの２つの演算部で制御と監視を継続可能である。また、残りの２つの演算部が故障部の出力を停止させることで、単一故障に対し安全に走行機能を継続可能である。
【００８１】
・３つの内、任意の２つの演算部が故障した場合には、残りの１つの演算部がフェールセーフ信号を出力可能である。すなわち、二重故障に対し安全に走行停止可能である。
・各演算部に対し、他の演算部の代替が可能なソフトウェアをあらかじめ組み込んでおけば、待機系の演算処理装置を別途備える必要は無く、従来から存在する演算部のみで本案を実現でき、開発コストも抑えられる。
【００８２】
詳細には、以上詳述した第１実施形態によれば、以下の構成を備えるとともに、以下の効果を奏する。
（１ａ）上記の車両制御システム１Ａは、３つ以上の演算部Ａ１００，Ｂ２００，Ｃ３００を備える。演算部Ａ１００，Ｂ２００，Ｃ３００は、Ｓ２１０，Ｓ３０２，Ｓ４０２，Ｓ５０２で、当該演算部を除く他の演算部が故障していることを認識するように構成される。
【００８３】
故障した演算部Ａ１００，Ｂ２００，Ｃ３００を故障部とし、故障していない演算部Ａ１００，Ｂ２００，Ｃ３００を正常部として、演算部Ａ１００，Ｂ２００，Ｃ３００は、Ｓ２１４，Ｓ２２４，Ｓ２３４，Ｓ３１３，Ｓ３２３，Ｓ４１３，Ｓ４２３，Ｓ５１３，Ｓ５２３で、他の演算部のうちの予め２以上の数に設定された規定数以上の演算部Ａ１００，Ｂ２００，Ｃ３００が故障部である場合、予め設定されたフェールセーフ処理を実施する旨の出力を行い、他の演算部Ａ１００，Ｂ２００，Ｃ３００のうちの規定数未満の演算部Ａ１００，Ｂ２００，Ｃ３００が故障部である場合、正常部がフェールセーフ処理とは異なる車両の走行制御を実施する旨の出力を行うように構成される。
【００８４】
なお、本実施形態では、規定数は２に設定される。このため、演算部Ａ１００，Ｂ２００，Ｃ３００は、故障部の数が１である場合に、フェールセーフ処理とは異なる車両の走行制御として、通常制御を実施する旨の出力を行い、故障部の数が２である場合に、フェールセーフ処理を実施する旨の出力を行う。
【００８５】
このような構成によれば、可能な限り制御を継続できるようにしつつ、より安全に車両を制御することができる。
（１ｂ）上記の車両制御システム１Ａにおいて、各演算部Ａ１００，Ｂ２００，Ｃ３００は、他の演算部Ａ１００，Ｂ２００，Ｃ３００のうちの何れかが正常部である場合、Ｓ２１２，Ｓ２２２，Ｓ２３２で、故障部に対して出力を停止させるための停止指令を送信するように構成される。
【００８６】
このような構成によれば、車両の走行制御に悪影響を与える可能性がある故障部からの出力を遮断することができる。
（１ｃ）上記の車両制御システム１Ａは、各演算部Ａ１００，Ｂ２００，Ｃ３００から送信された停止指令を受信可能であり、２以上の演算部からの停止指令を受けたときのみ前記故障部の出力を停止させるように構成されたＡＮＤゲート１２，１３，１４をさらに備える。
このような構成によれば、リセット入力側の演算部に対し、監視結果出力側の演算部の単一故障による影響を与えないようにし、故障している演算部のみを確実にリセットさせることができる。
（１ｄ）上記の車両制御システム１Ａは、停止指令が送信されると、少なくともフェールセーフ処理開始後まで前記故障部に対する該停止指令の出力を継続させるように構成されたラッチ回路１５，１６，１７をさらに備える。
【００８７】
このような構成によれば、少なくともフェールセーフ処理開始後まで故障部からの出力を抑制することができる。
［２．第２実施形態］
［２−１．第１実施形態との相違点］
第２実施形態は、基本的な構成は第１実施形態と同様であるため、相違点について以下に説明する。なお、第１実施形態と同じ符号は、同一の構成を示すものであって、先行する説明を参照する。
【００８８】
前述した第１実施形態では、複数の演算部Ａ１００，Ｂ２００，Ｃ３００が互いに故障しているか否かを監視するように構成した。監視の目的は、通常制御状態における任意の１つの演算部の故障検出と、１つの演算部故障中の残りの演算部での二重故障の検出であるので、これらが実現できるような監視体系であればよい。
【００８９】
具体的には、第２実施形態では、各演算部Ａ１００，Ｂ２００，Ｃ３００が他の何れか１つ以上の演算部に監視されており、第一の故障発生後に、残りの２つで相互監視を行うように切り替えるような形態とする点で第１実施形態と相違する。これにより、通常制御状態における各演算部の監視に係る処理リソースを削減することができる。
【００９０】
［２−２．構成］
図７は、第２実施形態の車両制御システム１Ｂを示す。図７の左図は、各演算部Ａ１００，Ｂ２００，Ｃ３００が通常制御状態である場合に、演算部Ａ１００が演算部Ｂ２００に、演算部Ｂ２００が演算部Ｃ３００に、演算部Ｃ３００が演算部Ａ１００に監視される構成を示す。つまり、上記の車両制御システム１Ｂにおいて各演算部Ａ１００，Ｂ２００，Ｃ３００は、ある演算部が監視対象とする１の演算部とは異なる１の演算部から監視される構成とすることで、監視対象となる演算部がリング状に接続され、全ての演算部Ａ１００，Ｂ２００，Ｃ３００が何れか１の演算部に監視されるように構成される。
【００９１】
また、図７の右図は、演算部Ａ１００故障時に、演算部Ｂ２００と演算部Ｃ３００が相互監視を行うように切り替えるケースを図示している。つまり、各演算部Ａ１００，Ｂ２００，Ｃ３００は、監視対象である演算部が故障部であることが認識された場合、正常部の何れかに対して、当該正常部の監視対象に、当該故障部が監視対象としていた演算部を追加するように構成される。
【００９２】
［２−３．処理］
次に、第２実施形態の各演算部Ａ１００，Ｂ２００，Ｃ３００が、第１実施形態の監視処理に代えて実行する監視処理について、図８のフローチャートを用いて説明する。なお、本処理では説明を一部簡略化している。
【００９３】
第２実施形態の監視処理において、各演算部Ａ１００，Ｂ２００，Ｃ３００は、前述のＳ２１０で、監視対象の演算部が故障したか否かを判定する。ここでは、演算部Ａ１００が故障した場合の例について説明する。なお、演算部Ｂ２００または演算部Ｃ３００が故障した場合には、説明を省略するが、故障していない演算部が故障した演算部に応じて以下に述べる処理に対応する処理を実施すればよい。
【００９４】
Ｓ２１０で演算部Ａ１００が故障したと判定された場合には、図８に示すＳ８１で、演算部Ｂ２００が演算部Ａ１００の異常を検出し、Ｗ２１をＯＮ出力する。この際、演算部Ｂ２００は、演算部Ｃ３００に対し、演算部Ａ１００の異常を検出したことを通知する。
【００９５】
そして、演算部Ｂ２００は演算部Ｃ３００の監視を開始する。すなわち、演算部Ｂ２００は演算部Ａ１００のみを監視していた状態から、演算部Ｃ３００も監視する状態に遷移する。演算部Ｃ３００は、既に演算部Ｂ２００を監視しており、演算部Ｂ２００が演算部Ｃ３００の監視を開始することで、演算部Ｂ２００および演算部Ｃ３００は、互いに監視し合う、相互監視を開始する。
【００９６】
続いて、演算部Ｃ３００は、Ｓ８２で、演算部Ｂ２００から、演算部Ａ１００の異常検出通知を受信し、演算部Ｂ２００が監視正常であることを確認した上で、Ｗ３１をＯＮ出力する。演算部Ｂ２００が監視正常であることを確認するのは、演算部Ｂ２００が故障している場合には、演算部Ａ１００の異常検出通知自体が信頼性のない情報となるためである。演算部Ｂ２００が監視正常であれば、演算部Ａ１００の異常検出通知は信頼性のある情報のため、演算部Ａ１００が故障していると正しく判断できる。
【００９７】
Ｓ８２以下は、Ｓ２１３以下の処理を実施するとよい。
［２−４．効果］
以上詳述した第２実施形態によれば、前述した第１実施形態の効果（１ａ）を奏し、さらに、以下の効果を奏する。
【００９８】
（２ａ）上記の車両制御システム１Ｂにおいて各演算部Ａ１００，Ｂ２００，Ｃ３００は、全ての演算部Ａ１００，Ｂ２００，Ｃ３００が何れか１以上の演算部に監視されるように構成され、当該演算部の監視対象である演算部が故障部であることが認識された場合、当該故障部が監視対象としていた演算部が当該故障部を除く他の何れの正常部からも監視されない場合には、１以上の正常部に対して、当該正常部の監視対象に、当該故障部が監視対象としていた演算部を追加するように構成される。
【００９９】
このような構成によれば、演算部Ａ１００，Ｂ２００，Ｃ３００が１以上の演算部から監視される構成とし、何れかの演算部Ａ１００，Ｂ２００，Ｃ３００が故障したときに、必要に応じて一部の演算部の監視対象に他の演算部を追加する構成とするので、全ての演算部Ａ１００，Ｂ２００，Ｃ３００が常に２以上の演算部を監視する必要がない。よって、演算部Ａ１００，Ｂ２００，Ｃ３００間でのデータのやり取りを少なくすることができ、簡素な構成とすることができる。
なお、上記第２実施形態では、故障のない状態においては、演算部Ａ１００，Ｂ２００，Ｃ３００が１の演算部を順に監視することでリング状に監視する構成としたが、この構成に限らず、演算部Ａ１００，Ｂ２００，Ｃ３００が何れか１以上の演算部に監視されるように構成であればよい。例えば、演算部Ａ１００が演算部Ｂ２００に、演算部Ｂ２００が演算部Ｃ３００に、演算部Ｃ３００が演算部Ａ１００とＢ２００とに監視される構成としてもよいし、演算部Ａ１００が演算部Ｂ２００に、演算部Ｂ２００およびＣ３００が演算部Ａ１００に監視される構成としてもよい。
【０１００】
［３．第３実施形態］
［３−１．第１実施形態との相違点］
前述した第１実施形態では、複数の演算部が故障した場合に、フェールセーフ信号を出力するように構成した。これに対し、第３実施形態では、特定の演算部が故障した場合には、単一故障であってもフェールセーフ信号を出力する点で、第１実施形態と相違する。
【０１０１】
特定の演算部には、例えば、故障部が生じたことで車両の走行に支障を来す虞がある演算部、特に重要な演算部、本来であれば故障しにくいはずの演算部等が設定される。
ここでは、演算部Ｃ３００が故障した場合に、他の演算部が故障していない場合であってもフェールセーフ信号を出力する例について説明する。
【０１０２】
［３−２．構成］
第３実施形態の車両制御システム１Ｃは、図９に示すように、第１実施形態の車両制御システム１Ａに対して、ＡＮＤゲート１４、ラッチ回路１７、およびこれらの回路に関する信号ラインを省略した構成である。すなわち、車両制御システム１Ｃでは、演算部Ｃ３００が異常な信号を出力していても、フェールセーフ信号が出力されて安全に走行停止できるため、演算部Ｃ３００の動作および出力を停止する必要がなく、ＲＳＴ３は不要となる。
【０１０３】
［３−３．処理］
次に、第３実施形態の各演算部Ａ１００，Ｂ２００，Ｃ３００が、第１実施形態の監視処理に代えて実行する監視処理について、図１０のフローチャートを用いて説明する。
【０１０４】
第３実施形態の監視処理において、各演算部Ａ１００，Ｂ２００，Ｃ３００は、前述のＳ２１０で、監視対象の演算部が故障したか否かを判定する。
Ｓ２１０で演算部Ｃ３００が故障したと判定された場合には、図９に示すＳ９１で、演算部Ａ１００または演算部Ｂ２００あるいはその両方は、フェールセーフ信号ＦＳ１，ＦＳ２を出力する。これにより、Ｓ９２に示すように、ＦＳがＯＮとなり、車両は安全に走行停止することができる。
【０１０５】
なお、Ｓ２１０の処理で、演算部Ｃ３００以外の演算部が故障したと判定された場合には、第１実施形態の監視処理と同様とすればよいため記載を省略する。
［３−４．効果］
以上詳述した第３実施形態によれば、前述した第１実施形態の効果（１ａ）を奏し、さらに、以下の効果を奏する。
【０１０６】
（３ａ）上記の車両制御システム１Ｃにおいて演算部Ａ１００，Ｂ２００，Ｃ３００は、故障部が生じたことで車両の走行に支障を来すか否かを判定し、車両の走行に支障を来すと判定されると、他の演算部Ａ１００，Ｂ２００，Ｃ３００のうちの何れかが正常部である場合であっても、フェールセーフ処理を実施する旨の出力を行うように構成される。
【０１０７】
このような構成によれば、車両の走行に支障を来す虞がある演算部Ａ１００，Ｂ２００，Ｃ３００が故障部になった場合には、フェールセーフ処理を実施できるので、より安全に車両を制御することができる。
【０１０８】
（３ｂ）上記の車両制御システム１Ｃにおいては、演算部Ｃ３００をリセットする構成を省略している。このような構成によれば、ＲＳＴ３の信号ラインを設けるコストを削減できる。
【０１０９】
（３ｃ）上記の車両制御システム１Ｃは、予め設定された特定演算部Ａ１００，Ｂ２００，Ｃ３００が故障部であるか否かを判定し、特定演算部が故障部であると判定されると、他の演算部のうちの規定数未満の演算部が故障部である場合であっても、フェールセーフ処理を実施する旨の出力を行うように構成される。
【０１１０】
このような構成によれば、重要な演算部や故障しにくいはずの演算部等の特定演算部が故障部になった場合には、複数の正常部が存在するとしてもフェールセーフ処理を実施できるので、より安全に車両を制御することができる。
【０１１１】
（３ｄ）なお、上記の車両制御システム１Ｃの採否は、ＲＳＴ３信号ラインを設けることによる費用対効果から判断すればよい。例えば、演算部Ｃ３００には単純な監視のみを行わせるなど、複雑な機能を持たせなくてよい場合、演算部Ｃ３００はＣＰＵやメモリを持たない、比較的小規模で単純なＩＣで実現されてもよい。
【０１１２】
単純なＩＣで実現されるが故に、演算部Ｃ３００の単一故障率が、演算部Ａ１００と演算部Ｂ２００の二重故障が起こる確率よりも極めて低い場合、すなわち、高い確率で、演算部Ｃ３００の単一故障よりも先に演算部Ａ１００と演算部Ｂ２００の二重故障が起こる場合には、ＲＳＴ３信号ラインを設けることによる費用対効果が低いのであるから、本実施形態の構成を採用してもよい。
【０１１３】
また、走行を継続するのに必ず必要な演算部がある場合、該演算部の故障時には走行を継続できないのであるから、本実施形態の構成を採用し、該演算部の単一故障を検出した他の演算部からフェールセーフ信号を出力するようにすればよい。
【０１１４】
［４．第４実施形態］
［４−１．第１実施形態との相違点］
前述した第１実施形態の車両制御システム１Ａは、３つの演算部を備えて構成している。これに対し、第４実施形態の車両制御システム１Ｄでは、４つ以上の演算部を備えて構成している点で、第１実施形態と相違する。
【０１１５】
すなわち、４つ以上の演算部のうち、任意の１つの演算部が故障した場合にも、残りの演算部で制御と監視を継続可能であればよい。また、任意の２つの演算部が故障した場合には、残っている１つ以上の演算部がフェールセーフ信号を出力可能であればよい。
【０１１６】
［４−２．構成］
図１１は４つの演算部によるシステム構成例である。車両制御システム１Ｄは、演算部Ｄ４００、ＡＮＤゲート１８、およびラッチ回路１９をさらに備える。演算部Ｄ４００は、例えば、他の演算部と同様のハードウェア構成を有し、予め設定された任意の車両制御を実行する。
【０１１７】
車両制御システム１Ｄでは、１つの演算部は隣接する２つの演算部と相互に監視を行う。ただし、隣接していない、図１１では対角の位置にある演算部は、相互に監視する必要はない。
【０１１８】
ＡＮＤゲート１８は、演算部Ａ１００および演算部Ｃ３００から出力されるＷ１４，Ｗ３４に基づく出力を行う。ラッチ回路１９は、ＡＮＤゲート１８の出力が入力され、他のラッチ回路１５〜１７と同様に作動する。
【０１１９】
［４−３．処理］
次に、第４実施形態の各演算部Ａ１００，Ｂ２００，Ｃ３００，Ｄ４００が、第１実施形態の監視処理に代えて実行する監視処理について、図１２のフローチャートを用いて説明する。図１２は、第一の故障として、例えば、演算部Ａ１００が故障したときのフロー詳細である。
【０１２０】
第４実施形態の監視処理において、各演算部Ａ１００，Ｂ２００，Ｃ３００，Ｄ４００は、前述のＳ２１０で、監視対象の演算部が故障したか否かを判定する。Ｓ２１０で演算部Ａ１００が故障したと判定された場合には、図１２に示すＳ１２１で、演算部Ｂ２００または演算部Ｄ４００が演算部Ａ１００の異常を検出し、Ｗ２１およびＷ４１をＯＮ出力する。
【０１２１】
これにより、Ｓ１２２に示すように、ＲＳＴ１がＯＮとなり、演算部Ａ１００は動作および出力が停止する。そして、Ｓ１２３で、演算部Ｂ２００または演算部Ｄ４００は、演算部Ｃ３００に対し、演算部Ａ１００の異常を検出したことを通知する。
【０１２２】
続いて、Ｓ１２４で、演算部Ｃ３００は、演算部Ｂ２００または演算部Ｄ４００から、演算部Ａ１００の異常検出通知を受信し、演算部Ｂ２００または演算部Ｄ４００が監視正常であることを確認した上で、演算部Ａ１００の異常をメモリに記憶する。演算部Ｂ２００または演算部Ｄ４００が監視正常であることを確認するのは、演算部Ｂ２００または演算部Ｄ４００が故障している場合には、演算部Ｂ２００または演算部Ｄ４００からの演算部Ａ１００の異常検出通知自体が信頼性のない情報となるためである。演算部Ｂ２００または演算部Ｄ４００が監視正常であれば、演算部Ａ１００の異常検出通知は信頼性のある情報のため、演算部Ａ１００が故障していると正しく判断できる。
【０１２３】
そして、Ｓ１２５で、演算部Ｂ２００，Ｃ３００，Ｄ４００は、通常制御状態における制御を継続しつつ、何れか１つ以上の演算部で演算部Ａ１００の車両制御機能代替を開始する。すると、演算部Ｂ２００と演算部Ｃ３００とが相互に監視を継続し、演算部Ｄ４００と演算部Ｃ３００とが相互に監視を継続している状態で、走行を継続できる。
【０１２４】
引き続き、演算部Ａ１００が故障しているときの処理を図１３のフローチャートで説明する。演算部Ａ１００の故障中には、Ｓ１３０１で、演算部Ｂ２００，Ｃ３００，Ｄ４００は、演算部Ａ１００の故障中での走行制御を継続し、Ｓ１３０２で、さらに他の演算部の故障が発生したか否かを判定する。すなわち、第一の故障である演算部Ａ１００の故障中に、他の演算部の故障である第二の故障が発生したか否かを判定する。
【０１２５】
演算部Ｃ３００が演算部Ｂ２００の故障の発生を認識した場合、演算部Ｃ３００は、Ｓ１３１２以下の処理を実施する。また、演算部Ｂ２００または演算部Ｄ４００が演算部Ｃ３００の故障の発生を認識した場合、演算部Ｂ２００または演算部Ｄ４００は、Ｓ１３２２以下の処理を実施する。また、演算部Ｃ３００が演算部Ｄ４００の故障の発生を認識した場合、演算部Ｃ３００は、Ｓ１３３２以下の処理を実施する。
【０１２６】
Ｓ１３１２では、演算部Ｃ３００が演算部Ｂ２００の異常を検出し、演算部Ｃ３００は演算部Ａ１００と演算部Ｂ２００の二重故障を認識する。
続いて、Ｓ１３１３で、演算部Ｃ３００はフェールセーフ処理として、ＦＳ３をＯＮ出力する。これにより、Ｓ１３１４に示すように、ＦＳがＯＮとなり、車両は安全に走行停止することができる。すなわち、演算部Ｃ３００は、Ｓ１２４で記憶していた演算部Ａ１００の異常と合わせて、他の演算部の異常を認識したときに、二重故障であると認識できるので、良好にフェールセーフ処理を行うことができる。
【０１２７】
一方、Ｓ１３２２では、演算部Ｂ２００または演算部Ｄ４００が演算部Ｃ３００の異常を検出し、演算部Ｂ２００または演算部Ｄ４００は演算部Ａ１００と演算部Ｃ３００の二重故障を認識する。続いて、Ｓ１３２３で、演算部Ｂ２００または演算部Ｄ４００はフェールセーフ処理として、ＦＳ２をＯＮ出力する。これにより、Ｓ１３２４に示すように、ＦＳがＯＮとなり、車両は安全に走行停止することができる。
【０１２８】
また、Ｓ１３３２では、演算部Ｃ３００が演算部Ｄ４００の異常を検出し、演算部Ｃ３００は演算部Ａ１００と演算部Ｄ４００の二重故障を認識する。
続いて、Ｓ１３３３で、演算部Ｃ３００はフェールセーフ処理として、ＦＳ３をＯＮ出力する。これにより、Ｓ１３３４に示すように、ＦＳがＯＮとなり、車両は安全に走行停止することができる。
【０１２９】
なお、Ｓ２１０の処理で、演算部Ｃ３００以外の演算部が故障したと判定された場合には、故障した演算部以外の演算部が故障した演算部に応じてＳ１２１以下に対応する処理を実行すればよいため記載を省略する。
【０１３０】
［４−４．効果］
以上詳述した第４実施形態によれば、前述した第１実施形態の効果（１ａ）を奏し、さらに、以下の効果を奏する。
【０１３１】
（４ａ）第４実施形態の車両制御システム１Ｄでは、４つ以上の演算部を備えて構成される。このような構成によれば、演算部の数が４以上の構成であっても二重故障に対応することができる。
【０１３２】
［５．他の実施形態］
以上、本開示の実施形態について説明したが、本開示は上述の実施形態に限定されることなく、種々変形して実施することができる。
【０１３３】
（５ａ）上記実施形態では、原則として２つの演算部が故障した場合にフェールセーフ処理を実施したが、これに限定されるものではない。例えば、多数の演算部を備える構成では、例えば３つ以上の演算部が故障した場合にフェールセーフ処理を実施するようにしてもよい。すなわち、演算部Ａ１００，Ｂ２００，Ｃ３００，Ｄ４００は、故障した演算部Ａ１００，Ｂ２００，Ｃ３００，Ｄ４００を故障部とし、故障していない演算部Ａ１００，Ｂ２００，Ｃ３００，Ｄ４００を正常部として、他の演算部のうちの予め３以上の数に設定された規定数以上の演算部が故障部である場合、予め設定されたフェールセーフ処理を実施する旨の出力を行い、他の演算部のうちの規定数未満の演算部Ａ１００，Ｂ２００，Ｃ３００，Ｄ４００が故障部である場合、正常部がフェールセーフ処理とは異なる車両の走行制御を実施する旨の出力を行うように構成されてもよい。
【０１３４】
（５ｂ）上記実施形態における１つの構成要素が有する複数の機能を、複数の構成要素によって実現したり、１つの構成要素が有する１つの機能を、複数の構成要素によって実現したりしてもよい。また、複数の構成要素が有する複数の機能を、１つの構成要素によって実現したり、複数の構成要素によって実現される１つの機能を、１つの構成要素によって実現したりしてもよい。また、上記実施形態の構成の一部を省略してもよい。また、上記実施形態の構成の少なくとも一部を、他の上記実施形態の構成に対して付加又は置換してもよい。なお、特許請求の範囲に記載した文言から特定される技術思想に含まれるあらゆる態様が本開示の実施形態である。
【０１３５】
（５ｃ）上述した車両制御システム１Ａ，１Ｂ，１Ｃ，１Ｄの他、当該車両制御システム１Ａ，１Ｂ，１Ｃ，１Ｄの構成要素となる演算部Ａ１００，Ｂ２００，Ｃ３００，Ｄ４００、演算部Ａ１００，Ｂ２００，Ｃ３００を備える車両制御装置、当該車両制御システム１Ａとしてコンピュータを機能させるためのプログラム、このプログラムを記録した半導体メモリ等の非遷移的実態的記録媒体、監視方法など、種々の形態で本開示を実現することもできる。
【０１３６】
［６．実施形態の構成と本開示の構成との対応関係］
上記実施形態において、車両制御システム１Ａ，１Ｂ，１Ｃ，１Ｄは本開示でいう車両制御装置に相当し、ＡＮＤゲート１２，１３，１４，１８は本開示でいう停止出力部に相当し、ラッチ回路１５，１６，１７，１９は本開示でいう出力継続部に相当する。また、演算部Ａ１００，Ｂ２００，Ｃ３００，Ｄ４００が実行する処理のうちの、Ｓ２１０，Ｓ３０２，Ｓ４０２，Ｓ５０２，Ｓ１３０２の処理は本開示でいう故障認識部に相当し、Ｓ２１４，Ｓ２２４，Ｓ２３４，Ｓ３１３，Ｓ３２３，Ｓ４１３，Ｓ４２３，Ｓ５１３，Ｓ５２３，Ｓ９１，Ｓ１２５，Ｓ１３１３，Ｓ１３２３，Ｓ１３３３の処理は制御出力部に相当する。
【０１３７】
また、Ｓ２１２，Ｓ２２２，Ｓ２３２，Ｓ８１，Ｓ８２，Ｓ１２１の処理は本開示でいう停止送信部に相当し、Ｓ８１の処理は本開示でいう追加設定部に相当し、Ｓ２１０の処理は本開示でいう支障判定部、故障判定部に相当する。
【符号の説明】
【０１３８】
１Ａ，１Ｂ，１Ｃ，１Ｄ…車両制御システム、１１…ＯＲゲート、１２，１３，１４，１８…ＡＮＤゲート、１５，１６，１７，１９…ラッチ回路、Ａ１００，Ｂ２００，Ｃ３００，Ｄ４００…演算部。
【図１】
2019121043.tif 000003
【図２】
2019121043.tif 000004
【図３】
2019121043.tif 000005
【図４】
2019121043.tif 000006
【図５】
2019121043.tif 000007
【図６】
2019121043.tif 000008
【図７】
2019121043.tif 000009
【図８】
2019121043.tif 000010
【図９】
2019121043.tif 000011
【図１０】
2019121043.tif 000012
【図１１】
2019121043.tif 000013
【図１２】
2019121043.tif 000014
【図１３】
2019121043.tif 000015