(57)【特許請求の範囲】
【請求項１】
車両に搭載される機器を制御するための機能毎に分割された複数の機能モジュールと前記複数の機能モジュールを予め定められた順序で呼び出すオペレーションシステムとをプログラムとして格納するＲＯＭと、
前記複数の機能モジュールと前記オペレーションシステムとを実行する演算処理部と、
前記複数の機能モジュールの実行結果を格納するＲＡＭを備え、
を備えた車両用制御装置であって、
前記車両用制御装置の異常を検知するための異常検知部を備え、
前記複数の機能モジュールそれぞれには、実行を停止した場合に前記車両の走行に与える影響に応じて予め安全度レベルが設定されており、
前記オペレーションシステムは、前記異常検知部により異常が検知されたときに、
前記安全度レベルに基づいて前記複数の機能モジュールのうちの一部の機能モジュールの実行を停止させる縮退モードへ遷移し、
前記安全度レベルは、前記オペレーションシステムが前記縮退モードへ遷移したときに、
機能モジュールを複数回実行した結果を前記ＲＡＭへ格納し、実行結果の比較を行う第一のレベルと、
機能モジュールを一度のみ実行する第二のレベルと、
機能モジュールの実行を停止して所定の異常時出力を行う第三のレベルと、を有することを特徴とする車両用制御装置。
【請求項２】
請求項１に記載の車両用制御装置であって、
前記オペレーションシステムは、前記異常検知部が検知した異常の種類に応じて、
前記複数の機能モジュール全てを停止する停止モードと、前記縮退モードのいずれかへ遷移することを特徴とする車両用制御装置。
【請求項３】
請求項２に記載の車両用制御装置であって、
前記オペレーションシステムは、前記ＲＡＭにおいて、前記第一のレベルまたは前記第二のレベルが設定された機能モジュールが使用する領域に故障が発生した場合には前記停止モードに遷移し、
前記第一のレベルおよび前記第二のレベル以外のレベルが設定された機能モジュールが使用する領域に故障が発生した場合には前記縮退モードに遷移することを特徴とする車両用制御装置。
【請求項４】
請求項１に記載の車両用制御装置であって、
前記演算処理部は複数の演算処理部からなり、
前記複数の演算処理部は出力信号にいずれの演算処理部の出力結果かを表す識別子を付与し、前記識別子を付与した正常動作信号を定期的に出力し、
前記複数の演算処理部それぞれの出力結果の比較または前記正常動作信号の出力に基づいて前記車両用制御装置の異常を検知することを特徴とする車両用制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、車両に搭載された機器を制御するための制御装置に関する。
【背景技術】
【０００２】
自動車の電子化が進むなかで、車両用制御装置にはより高い信頼性が求められている。中でも搭乗者の安全に直結する操舵や制動に関わる車載機器の制御機能に関しては、より高度な信頼性が求められている。
【０００３】
車両制御装置に故障が発生すると、車両制御装置の信頼性は低下する。例えば、マイコンや演算処理部を複数搭載して冗長構成とした車両制御装置の、マイコンのうち一部が故障した場合、故障していないマイコンや演算処理部で処理を継続することになるが、その場合、演算結果の比較ができないため、車載制御装置の信頼性は低下してしまう。
【０００４】
また、このような車両制御装置に求められる高い安全度基準を満足するために、車載機器の故障に対応するためのフェールセーフ処理が煩雑になってしまうという問題がある。車載機器のフェールセーフ処理についての設計・開発を容易化すべく、予め設定された車載機器の動作モードに応じて、実行プログラムを制限する技術が特許文献１に記載されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１０−３０５０６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、従来技術においては車両用制御装置に搭載されるプログラム中の機能モジュールそれぞれが車両制御装置全体に及ぼす影響について格別の配慮がなされていない。
【０００７】
本発明は、車両制御装置に故障が発生した際に、車両制御装置全体に影響を及ぼすことなく、車両制御装置の信頼性維持とフェールセーフ処理の簡略化とを両立させることを目的とする。
【課題を解決するための手段】
【０００８】
上記課題を解決するため、本発明は車両に搭載される機器を制御するための機能毎に分割された複数の機能モジュールと前記複数の機能モジュールを予め定められた順序で呼び出すオペレーションシステムとをプログラムとして格納するＲＯＭと、前記複数の機能モジュールと前記オペレーションシステムとを実行する演算処理部と、を備えた車両用制御装置であって、前記車両用制御装置の異常を検知するための異常検知部を備え、前記複数の機能モジュールそれぞれには、実行を停止した場合に前記車両の走行に与える影響に応じて予め安全度レベルが設定されており、前記オペレーションシステムは、前記異常検知部により異常が検知されたときに、前記安全度レベルに基づいて前記複数の機能モジュールのうちの一部の機能モジュールの実行を停止させる縮退モードへ遷移することを特徴とする車両用制御装置を提供する。
【発明の効果】
【０００９】
本発明によれば、車両制御装置に故障が発生した際、車両制御装置の機能を、走行に必要な最低限の機能に限定することで、車両制御装置の信頼性を向上することができる。
【図面の簡単な説明】
【００１０】
【図１】本発明の実施例を示すプログラム構成図。
【図２】図１の実施例におけるＯＳの動作を示すフローチャート。
【図３】本発明を電動倍力装置に適用した実施例を示す構成図。
【図４】図３の実施例におけるプログラム構成図。
【図５】図３の実施例における故障判断の動作を示すフローチャート。
【図６】本発明を複数の演算処理部を有する電動倍力装置に適用した実施例を示す構成図。
【図７】図６の実施例におけるモータ制御装置の動作フロー。
【図８】図６の実施例におけるプログラム構成図。
【図９】図６の実施例における故障判断の動作を示すフローチャート。
【発明を実施するための形態】
【００１１】
以下、図面に基づき、本発明の実施例を説明する。
【００１２】
図１は本発明に関わる、車両制御装置に搭載された読出し専用メモリ（以下、ＲＯＭ）に内蔵されるプログラムの構成である。プログラムは、プログラムを制御機能毎に分割した機能モジュール１０と、機能モジュールを定められた実行順に実行するＯＳ１１とで構成される。機能モジュールには、設計者により安全度レベルが付与されており、機能モジュール毎の安全度レベルは車両制御装置に搭載された、ＲＯＭに格納される。安全度レベルは機能モジュールが車両制御装置全体に及ぼす影響などを考慮して、レベル１から３までの３段階で設定する。安全度レベル１，２は車両の走行に最低限必要な機能モジュールに対して設定され、レベル１，２の機能モジュールが健在であれば車両が走行可能となるよう設定する。機能が停止すると事故に繋がる場合など、特に信頼性が求められる機能モジュールにはレベル１を設定する。レベル３は停止しても車両の走行が継続可能な機能モジュールに対して設定する。たとえば、車両の乗り心地や燃費に関する機能などに対して設定する。
【００１３】
ただし、本実施例では３段階としたが、２段階や４段階以上でも良い。そして各安全度レベルに応じて、制御装置に異常や故障が発生したときの、各モジュールの動作をあらかじめ割り付けておく。たとえば、安全度レベルが１の機能モジュールには、規定実行回数が設定され、ＲＯＭに格納される。安全度レベルが３の機能モジュールには、異常時出力が設定され、ＲＯＭに格納される。
また、安全度レベルは、例えば機能安全規格であるＩＳＯ２６２６２におけるＡＳＩＬに対応してもよい。
【００１４】
ＯＳは、演算処理部外部に備えられる車両制御装置の故障を監視する故障検知手段からの故障情報を入力し、上記あらかじめ割り付けておいた動作に従い、機能モジュールの動作を決定する。
【００１５】
図２はＯＳの動作を表すフローチャートである。ＯＳは車両制御装置の故障、たとえばメモリの書き込み不能など、を検知する故障検知手段からの故障発生が発生したことを知らせる故障通知をチェックし（２０）、正常動作時、すなわち故障通知がない場合、機能モジュールを実行する（２１）。実行後、次に実行する機能モジュールを呼び出し（２２）、あらかじめ定められた順序で機能モジュールを実行していく。
【００１６】
ＯＳが車両制御装置上の故障検知手段から故障通知を受け取った場合、故障の内容に応じて、故障モードを、演算処理部の処理を全て停止する停止モードと、機能モジュールの一部を動作させる縮退モードに切り替える（２４）。
【００１７】
停止モードに遷移した場合、ＯＳは機能モジュールを実行せず、演算処理部を停止する（２５）。
【００１８】
縮退モードに遷移した場合、ＯＳは機能モジュールの安全度レベルに応じて機能モジュールの動作を決定する（２６）。
【００１９】
たとえば、演算処理部の故障により正常な演算を実施できなくなったと故障検知手段から通知を受けた場合、故障モードを停止モードに切り替え演算処理部は全ての処理を停止する。また、メモリの一部が故障した場合、走行に最低限必要な機能モジュールが使用するメモリ領域以外の領域での故障であれば、縮退モードに切り替え限定された機能モジュールにて処理を継続する。
【００２０】
安全度レベル１のとき、機能モジュールの入力データ、すなわち機能モジュールが参照する、車両制御装置に搭載された、読出し書込みメモリ（以下、ＲＡＭ）のアドレスとデータを、ＲＡＭ上にあらかじめ設定したバックアップ領域に書き込む（２７）。ＯＳは機能モジュールの実行回数をカウントするカウンタを０に初期化する（２８）。ＯＳは機能モジュールを実行して（２９）、カウンタをインクリメントする（２１０）。ＯＳは機能モジュールの実行結果、すなわち機能モジュールが書き込みを行ったＲＡＭ領域のアドレスとデータをバックアップ領域に書き込む（２１１）。ＯＳはバックアップ領域に書き込んだ入力データのアドレスとデータから、入力データのＲＡＭを実行前の状態に復元する（２１２）。ＯＳは機能モジュールを実行して（２１３）、カウンタをインクリメントする（２１４）。ＯＳはカウンタが規定実行回数以上になれば、実行結果の比較を行う（２１６）。カウンタが規定実行回数より小さければ、実行結果をバックアップ領域に書き込む（２１１）。バックアップ領域に退避した全ての実行結果と、最後の実行結果を比較して（２１６）、一致していれば、次回実行する機能モジュールを呼び出し（２１９）、不一致であればカウンタを初期化して（２８）再度機能モジュールの演算を実行する。このように、機能モジュールを複数回実行した結果を比較し、不一致の場合同様の演算を再度実施することで、制御装置外部の電気・磁気的な外乱等の影響で、演算処理部が不正な動作を行った結果、演算結果が不正となる場合においても、不正な結果の検知と訂正が可能となり、演算結果の信頼性を向上することができる。
【００２１】
安全度レベル２のとき、ＯＳは機能モジュールを一回だけ実行して（２１７）、次に実行する機能モジュールを呼び出す（２１９）。安全度レベル２は、安全要求、信頼性が安全度レベル１を付与される機能モジュールよりも低い機能モジュールに付与される。こうすることでより信頼性の要求が高い機能モジュールに限定して複数回の演算を実行するので、演算処理部の処理負荷を低減することができる。
【００２２】
安全度レベル３のとき、ＯＳは機能モジュールを実行せず、ＲＯＭに格納された非常時出力を機能モジュールの実行結果を格納するＲＡＭに書き込み（２１８）、機能モジュールの出力を固定値として、次に実行する機能モジュールを呼び出す（２１９）。安全度レベル３を設定する機能モジュールは処理を停止しても走行が可能なものである。安全度レベル３の機能モジュールを停止することで、安全度レベル１の機能モジュールにおいて、複数回処理を実施することで増加する処理負荷を軽減する。
【００２３】
次に実行する機能モジュールの呼出し（２１９）後に、検知済みの故障以外の新たな故障があるかチェックして（２２０）、新規の故障があれば、故障判断（２３）を実施し、新規の故障がなければ、次に実行する機能モジュールの安全度レベルを確認する（２６）。このように、故障判断が新規の故障通知が無い限り実施されないようにすれば、さらに処理負荷を低減することが可能となる。
【００２４】
以下に、電動倍力装置における実施例を示す。電動倍力装置は運転手のブレーキペダル踏力の倍力を一般に内燃機関で動作する車両が備えるバキュームブースタのように負圧を利用せず、モータの駆動力により発生させる。本システムは、ブレーキペダルの踏み込み量、または電動倍力装置外部からの液圧指令に応じて、モータによってマスタシリンダを駆動して液圧を発生させるものである。
【００２５】
図３は電動倍力装置における構成図となっている。電動倍力装置は、ブレーキ液圧を発生するマスタシリンダ３８と、マスタシリンダ３８が発生させる液圧（Ｍ／Ｃ圧）を測定する圧力センサ３９と、マスタシリンダ３８を駆動するモータ３５と、モータの位置を測定するレゾルバ３７と、モータに流れる電流を測定する電流センサ３６と、モータを駆動する三相ブリッジ３４と、三相ブリッジ３４へ電流指令を与えるモータ制御装置３０と、ブレーキペダルの踏み量を検知するストロークセンサ３１０と車載ネットワーク３１１との接続手段を有する。
【００２６】
モータ制御装置３０は、演算処理部３１，メモリ部３２と、メモリの故障を監視する故障検知部３３を有する。演算処理部３１は、メモリ部３２と相互に接続され、メモリ部３２からプログラムを読み込み、演算結果をメモリ部３２に入力する。メモリ部３２は、ＲＡＭとＲＯＭで構成される。故障検知部３３は、演算処理部３１とメモリ部３２に接続され、メモリ部３２の故障を監視する。故障検知部３３がメモリ部３２の故障を検知したとき演算処理部３１にメモリ部３２の故障情報を通知する。メモリ部３２の故障情報には、メモリ部のどのアドレスで故障が発生したかが含まれる。
【００２７】
図４は本発明に関わる、電動倍力装置のモータ制御装置３０に搭載されたメモリ部３２のＲＯＭに内蔵されるプログラムの構成である。プログラムは、プログラムを制御機能毎に分割した機能モジュールと、機能モジュールを定められた実行順に実行するＯＳとで構成される。ＯＳは、故障検知部から出力された故障情報を入力する。機能モジュールには安全度レベルが付与される。安全度レベル１の機能モジュールには、規定実行回数が付与される。安全度レベル１の機能モジュールは、付与された規定実行回数だけ処理を繰り返すことで、演算結果の信頼性を向上する。安全度レベル３の機能モジュールには、異常時出力が付与され、縮退モードに遷移した場合処理を停止し、異常時出力を固定値として出力する、これにより処理負荷を軽減する。以下に機能モジュールの詳細を述べる。「位置指令算出４１」はストロークセンサからの入力から位置指令値を算出する。「Ｍ／Ｃ圧センサ信号処理４２」はＭ／Ｃ圧センサの出力である電圧値を、実際の圧力量に変換する処理である。「モータ位置算出４３」はレゾルバからのモータ角情報を下に、モータの位置を算出する。「液圧偏差算出４４」は、電動倍力装置の外部から車載ネットワーク経由で電動倍力装置に入力される液圧指令値とＭ／Ｃ圧センサ信号処理で計算したＭ／Ｃ圧の偏差を算出する。「液圧相当位置指令算出４５」は液圧偏差とモータ位置から、液圧に相当する位置指令値（液圧相当位置指令値）を生成する。「切替フラグ生成４６」は、電動倍力装置内外からの情報を元に指令値として、位置指令か液圧相当位置指令かどちらを選択するかを判定する。「指令値選択４７」は、切替フラグ生成の判定結果を元に指令値を、位置指令値と液圧相当位置指令値のいずれかから選択する。「位置偏差算出処理４８」は、指令値選択で選択された指令値とモータ位置の偏差（位置偏差）を算出する。「サーボ制御４９」は、位置偏差から、電流指令値を算出する。「電流制御処理４１０」は、電流指令値に、モータ電流などから生成される電流制限や電圧制限をかけて三相電流指令値を出力する。
【００２８】
位置指令値は、ストロークセンサから入力した、ブレーキペダルの移動量から算出する（４１）。算出した位置指令を、レゾルバから入力したモータ角情報を元に算出したモータ位置と偏差を取り（４８）、偏差からモータへの電流指令値を算出する（４９）。
【００２９】
液圧相当位置指令値は、液圧指令値とＭ／Ｃ圧の偏差から、液圧偏差に相当する位置偏差を算出し、液圧偏差に相当する位置偏差と現在のモータ位置を足して、算出する（４５）。液圧相当位置指令をレゾルバから入力したモータ角情報を元に算出したモータ位置と偏差を取り（４８）、偏差からモータへの電流指令値を算出する（４９）。
【００３０】
相対位置制御と液圧制御の切り替えは位置指令値の切り替えによって行われる。制御の切り替えの判定は、切替フラグ生成（４６）で行い、実際の位置指令値の切り替えは指令値選択（４７）により行う。
【００３１】
各機能モジュールに設定されるレベルは、処理を停止しても車両が走行可能なものか否かで設定され、「位置指令算出４１」がレベル２、「Ｍ／Ｃ圧センサ信号処理４２」がレベル３、「モータ位置算出４３」がレベル２、「液圧偏差算出４４」がレベル３、「液圧相当位置指令算出４５」がレベル３、「切替フラグ生成４６」がレベル３、「指令値選択４７」がレベル２、「位置偏差算出処理４８」がレベル２、「サーボ制御４９」がレベル２、「電流制御処理４１０」がレベル２となる。
【００３２】
電動倍力装置における、ＯＳ動作は前述の図２に示すフローチャートのとおりである。図５は電動倍力装置における、図２における故障判断（２３）の詳細動作である。
【００３３】
ＯＳは故障検知部が出力するメモリ部の故障情報の、故障が起きたメモリのアドレスから、故障モードの判定を行う。走行に最低限必要となる安全度レベル１，２の機能モジュールが使用するメモリ領域が故障すると、走行が不可能となることから、制御装置として制御を停止する。安全度レベル３の機能モジュールは処理を停止しても走行を継続できるため、安全度レベル３の機能モジュールが使用するメモリ領域が故障した場合は、機能を限定して制御を継続する。ＯＳは安全度レベルが１と２の機能モジュールが使用するメモリのアドレスを算出する（５１）。ここでは、機能モジュールが使用するアドレスを算出するが、機能モジュールが使用するアドレスをあらかじめＲＯＭに格納していてもよい。故障情報に含まれる、故障メモリのアドレスと、算出した、安全度レベルが１，２の機能モジュールが使用するメモリのアドレスを比較して（５２）、比較結果が一致すれば、走行に最低限必要となる安全度レベル１，２の機能モジュールが使用するメモリ領域が故障していることになるため、故障モードを停止モードに遷移する（５４）。比較結果が不一致であれば、安全度レベル３の機能モジュールが使用するメモリ領域が故障したことになるため、故障モードを縮退モードに遷移する（５５）。
【００３４】
故障モードが縮退モードに遷移した場合、電動倍力装置のモータ制御装置の機能を走行に必要な必要最低限のものに限定し、制御を継続する。ここでいう走行に必要最低限必要な機能とはすなわち、通常のブレーキ動作であり、自動ブレーキ機能や回生協調機能については機能を停止する。そのため、機能モジュールの安全度レベルは、通常のブレーキ動作の制御である相対位置制御に関わる機能モジュール、すなわち、「位置指令算出４１」，「モータ位置算出４３」，「指令値選択４７」，「位置偏差算出処理４８」，「サーボ制御４９」，「電流制御処理４１０」をレベル２に設定し、液圧制御に関わる、そのほかの機能モジュール，「Ｍ／Ｃ圧センサ信号処理４２」，「液圧偏差算出４４」，「液圧相当位置指令算出４５」，「切替フラグ生成４６」の安全度レベルをレベル３に設定する。安全度レベル３に設定した機能モジュールに対して、ＯＳは異常時出力を保持しており、ＯＳが機能モジュールの出力に対応するＲＡＭに異常時出力を書き込み、機能モジュールは常に異常時出力を出力する。たとえば、機能モジュール「切替フラグ生成４６」の異常時出力を、機能モジュール「位置指令算出４１」からの指令値を常に選択するものに設定すると、ＯＳは「切替フラグ生成４６」の出力値が格納されるＲＡＭ、つまり「指令値選択４７」の入力値が格納されるＲＡＭに、機能モジュール「位置指令算出（４１）」からの指令値を常に選択するデータを書き込む。これにより「指令値選択４７」は「位置指令算出４１」からの指令値を常に選択するようになる。
【００３５】
上記のように、安全度レベルと異常時出力を設定することで、ＯＳは安全度レベル２に設定された、相対位置制御に関わる機能モジュールのみを動作させ、指令値の切り替えでは常に「位置指令算出４１」の出力が選択されるようになるため、モータ制御装置は常に通常のブレーキ動作を行うことになり、必要最低限の機能である、通常のブレーキ動作を続行することができる。なお、本実施例においては、走行に必要最低限の機能モジュールに対して、安全度レベル１が設定されない場合を想定しているが、より高い信頼性が求められる場合、レベル２の機能モジュールをレベル１に置き換えても良い。
【００３６】
上記実施例によれば、一部のメモリが故障した際に、故障したメモリを使用する機能モジュールが、走行に最低限必要なものでない限り、演算処理部の全ての制御を停止することなく、走行に必要な最低限な機能に限定して制御を継続することができる。
【００３７】
図６に複数の演算処理部を有する電動倍力装置の実施例における構成図を示す。ここでは演算処理部を２つの場合として説明するが、本発明において、演算処理部の台数に制限は無い。
【００３８】
本実施例において、電動倍力装置は、ブレーキ液圧を発生するマスタシリンダ３８と、マスタシリンダ３８が発生させる液圧（Ｍ／Ｃ圧）を測定する圧力センサ３９と、マスタシリンダ３８を駆動するモータ３５と、モータの位置を測定するレゾルバ３７と、モータに流れる電流を測定する電流センサ３６と、モータを駆動する三相ブリッジ３４と、三相ブリッジ３４へ電流指令を与えるモータ制御装置６０と、ブレーキペダルの踏み量を検知するストロークセンサ３１０と車載ネットワーク３１１との接続手段を有する。
【００３９】
モータ制御装置（６０）は、２つの演算処理部（６１ａ，６１ｂ），２つのメモリ部（６２ａ，６２ｂ）と、演算処理部（６１ａ，６１ｂ）の故障を監視する故障検知部（６３）、２つの演算処理部の演算結果を比較する演算結果比較部（６４）を有する。
【００４０】
演算処理部６１ａ，６１ｂは、メモリ部６２ａ，６２ｂと相互に接続され、メモリ部６２ａ，６２ｂからプログラムを読み込み、演算結果をメモリ部６２ａ，６２ｂに入力する。全ての演算処理部６１ａ，６１ｂは固有の識別子を有する。メモリ部６２ａ，６２ｂは、ＲＡＭとＲＯＭで構成される。演算処理部６１ａ，６１ｂは、演算結果比較部６４と相互に接続され、演算結果比較部６４にどの演算処理部６１ａ，６１ｂが出力した演算結果であるかを特定するための識別子の情報を付与した演算結果信号を出力する。また全ての演算処理部６１ａ，６１ｂは故障検知部６３に接続され、識別子の情報を付与した正常動作信号を出力する。
【００４１】
故障検知部６３は、演算処理部６１ａ，６１ｂと演算結果比較部６４に接続され、演算処理部６１ａ，６１ｂから正常動作信号が送信されているか監視する。演算処理部６１ａ，６１ｂからの正常動作信号が一定時間受信できない場合、演算処理部６１ａ，６１ｂと演算結果比較部６４に故障通知信号を出力する。
【００４２】
図７は図６の実施例における、モータ制御装置６０の動作を示したフローチャートである。演算処理部６１ａ，６１ｂは一定のタイミングで故障検知部６３に正常動作確認信号に出力する（７１０）。故障検知部６３は正常動作信号を入力して（７２０）、一定時間入力がない場合、演算処理部が故障したと判断して、全ての演算処理部６１ａ，６１ｂと演算結果比較部６４に故障通知信号を出力する（７２２）。故障通知信号には、故障した演算処理部６１ａないし６１ｂの識別子が付与される。演算処理部６１ａ，６１ｂは故障通知の確認を行い（７１１）、故障通知がある場合、演算処理部６１ａ，６１ｂで実行されるＯＳに故障を通知する（７１３）。演算処理部６１ａ，６１ｂは、演算を実行し（７１４）、演算結果を演算結果比較部６４に出力する（７１５）。演算結果比較部６４は、故障検知部６３から出力される、故障通知信号を確認して（７３０）、故障通知がなければ、全ての演算処理部６１ａ，６１ｂからの演算結果を比較する（７３２）。比較結果が一致すれば、演算結果をモータ制御装置の外部に出力して、出力完了通知を演算処理部６１ａ，６１ｂに出力する（７３６）。不一致であれば、演算処理部６１ａ，６１ｂに再計算要求信号を出力し（７３４）、再度演算結果を比較する（７３２）。故障検知部６３から出力される、故障検知信号を確認したとき、故障通知があった場合、故障通知信号に含まれる故障した演算処理部６１ａないし６１ｂの識別子をもとに、故障していない演算処理部６１ａないし６１ｂの出力を比較結果として（７３５）、故障していない演算処理部６１ａないし６１ｂでモータ制御を継続する。
【００４３】
演算処理部６１ａ，６１ｂは演算結果比較部が出力した、再計算要求信号もしくは、出力完了通知を入力して（７１６）、再計算要求を入力した場合、再度演算を実行する（７１４）。出力完了通知を入力した場合、正常動作確認信号を出力する（７１０）。
【００４４】
図８は図６の実施例における、モータ制御装置６０に搭載されたメモリ部６２ａ，６２ｂのＲＯＭに内蔵されるプログラムの構成である。プログラムは、プログラムを制御機能毎に分割した機能モジュールと、機能モジュールを定められた実行順に実行するＯＳとで構成される。ＯＳは、故障検知部６３から出力された故障情報を入力する。機能モジュールには安全度レベルが付与される。安全度レベル１の機能モジュールには、規定実行回数が付与される。安全度レベル３の機能モジュールには、異常時出力が付与される。本実施例では、演算処理部の冗長化が実施されている制御装置であることから、制御装置に求められる信頼性は高いと想定し、走行に最低限必要な機能モジュールに安全度レベル１が設定しているが、これを安全度レベル２に設定してもよい。
【００４５】
以下に機能モジュールの詳細を述べる。「位置指令算出８１」はストロークセンサからの入力から位置指令値を算出する。「Ｍ／Ｃ圧センサ信号処理８２」はＭ／Ｃ圧センサの出力である電圧値を、実際の圧力量に変換する処理である。「モータ位置算出８３」はレゾルバからのモータ角情報を下に、モータの位置を算出する。「液圧偏差算出８４」は、電動倍力装置の外部から車載ネットワーク経由で電動倍力装置に入力される液圧指令値とＭ／Ｃ圧センサ信号処理で計算したＭ／Ｃ圧の偏差を算出する。「液圧相当位置指令算出８５」は液圧偏差とモータ位置から、液圧に相当する位置指令値（液圧相当位置指令値）を生成する。「切替フラグ生成８６」は、電動倍力装置内外からの情報を元に指令値として、位置指令か液圧相当位置指令かどちらを選択するかを判定する。「指令値選択８７」は、切替フラグ生成の判定結果を元に指令値を、位置指令値と液圧相当位置指令値のいずれかから選択する。「位置偏差算出処理８８」は、指令値選択で選択された指令値とモータ位置の偏差（位置偏差）を算出する。「サーボ制御８９」は、位置偏差から、電流指令値（ｄ軸ｑ軸）を算出する。「電流制御処理８１０」は、電流指令値に、モータ電流などから生成される電流制限や電圧制限をかけて三相電流指令値を出力する。
【００４６】
位置指令値は、ストロークセンサから入力した、ブレーキペダルの移動量から算出する（８１）。算出した位置指令を、レゾルバから入力したモータ角情報を元に算出したモータ位置と偏差を取り（８８）、偏差からモータへの電流指令値を算出する（８９）。
【００４７】
液圧相当位置指令値は、液圧指令値とＭ／Ｃ圧の偏差から、液圧偏差に相当する位置偏差を算出し、液圧偏差に相当する位置偏差と現在のモータ位置を足して算出する（８５）。液圧相当位置指令をレゾルバから入力したモータ角情報を元に算出したモータ位置と偏差を取り（８８）、偏差からモータへの電流指令値を算出する（８９）。
【００４８】
相対位置制御と液圧制御の切り替えは位置指令値の切り替えによって行われる。制御の切り替えの判定は、切替フラグ生成（８６）で行い、実際の位置指令値の切り替えは指令値選択（８７）により行う。
【００４９】
図６の実施例における、ＯＳ動作は前述の図２に示すフローチャートに示すとおりである。
【００５０】
一部の演算処理部に故障が発生した場合、残った演算処理部で制御を続行することになるが、演算結果の信頼性は低下してしまう。そこで、制御装置の機能を走行に必要な必要最低限のものに限定し、限定された機能について、複数回の演算を行うことで、限定された機能の信頼性を向上する。
【００５１】
図９は図６の実施例における、図２の故障判断２３の詳細動作である。ＯＳは故障検知部が出力する故障情報に含まれる、故障した演算処理部６２ａないし６２ｂの識別子から、故障モードの判定を行う。故障情報に含まれる故障した演算処理部６２ａないし６２ｂの識別子と、ＯＳが実行される演算処理部６２ａないし６２ｂの識別子を比較して（９０）、比較結果が一致すれば、すなわち、故障した演算処理部がＯＳが実行される演算処理部であれば、暴走の可能性もあるため、故障モードを停止モードに遷移して（９１）、処理を停止し、演算処理部が不正な出力をしないようにする。このとき演算処理部は故障によりすでに処理を停止している場合もある。比較結果が不一致であれば、すなわち、故障した演算処理部がＯＳが実行される演算処理部でなければ、故障モードを縮退モードに遷移する（９２）。
【００５２】
故障モードが縮退モードに遷移した場合、電動倍力装置のモータ制御装置６０の機能を走行に必要な必要最低限のものに限定し、通常動作において複数の演算処理部６２ａ，６２ｂでの並列計算で確保していた信頼性を、残った演算処理部６２ａないし６２ｂにおいて、同じ処理を複数回実行することで、確保し、制御を継続する。ここでいう走行に必要最低限必要な機能とはすなわち、通常のブレーキ動作であり、自動ブレーキ機能や回生協調機能については機能を停止する。そのため、機能モジュールの安全度レベルは、相対位置制御に関わる機能モジュール、すなわち、「位置指令算出８１」，「モータ位置算出８３」，「指令値選択８７」，「位置偏差算出処理８８」，「サーボ制御８９」，「電流制御処理８１０」をレベル１に設定し、液圧制御に関わる、そのほかの機能モジュールの安全度レベルをレベル３に設定する。安全度レベル３に設定した機能モジュールは、異常時出力を保持しており、ＯＳがＲＡＭに異常時出力を書き込む。機能モジュール「切替フラグ生成８６」の異常時出力を、機能モジュール「位置指令算出８１」からの指令値を常に選択するものに設定すると、「切替フラグ生成８６」の出力値が格納されるＲＡＭつまり、「指令値選択８７」の入力値が格納されるＲＡＭに機能モジュール「位置指令算出８１」からの指令値を常に選択するデータを書き込む。
【００５３】
上記のように、安全度レベルと異常時出力を設定することで、ＯＳは安全度レベル１に設定された、相対位置制御に関わる機能モジュールに関しては複数回実行し、その結果を比較して信頼性を確保し、指令値の切り替えでは常に「位置指令算出８１」の出力が選択されるようになるため、モータ制御装置は常に通常のブレーキ動作を行うことになり、必要最低限の機能である、通常のブレーキ動作を演算結果の信頼性を確保して続行することができる。
【００５４】
上記のように、安全度レベルに応じて機能モジュールの実行制御を行うことで、一部の演算処理部の故障時に、車両の安全上必要最低限の機能に限定して、限定された機能の信頼性を高めることで、故障時における信頼性を向上する。
【００５５】
また、複数コアを内蔵するマイコンにおいて一部のコアに故障が発生した場合、故障と判定されたコア以外の部分へ故障が波及している可能性がある。今発明を適用すれば、コアの演算処理を最低限走行に必要な機能に限定するため、一部コアの故障の影響が他の部分へ波及していた場合でも、故障の影響を最小限にすることができる。
【符号の説明】
【００５６】
１０  機能モジュール
１１，８０  ＯＳ
２０  故障有無判断
２１，２９，２１３，２１７  機能モジュール実行
２２，２１９  実行モジュール更新
２３，５０，７１２，７２１，７３１  故障判断
２４  故障モード判断
２５  処理停止
２６  安全度レベル判断
２７  初期ＲＡＭ情報退避
２８  実行回数初期化
３０，６０  モータ制御装置
３１，６１  演算処理部
３２，６２  メモリ部
３３，６３  故障検知部
３４  三相ブリッジ
３５  モータ
３６  電流センサ
３７  レゾルバ
３８  マスタシリンダ
３９  圧力センサ
４１，８１  位置指令算出
４２，８２  Ｍ／Ｃ圧センサ信号処理
４３，８３  モータ位置算出
４４，８４  液圧偏差算出
４５，８５  液圧相当位置指令算出
４６，８６  切替フラグ生成
４７，８７  指令値選択
４８，８８  位置偏差算出処理
４９，８９  サーボ制御
５１  機能モジュールアドレス算出
５２  アドレス比較
５３  故障メモリ判断
５４，９１  停止モード選択
５５，９２  縮退モード選択
６４  演算結果比較部
９０  識別子比較
２１０，２１４  カウントアップ
２１１  実行結果退避
２１２  ロールバック
２１５  実行回数判断
２１６，７３２  演算結果比較
２１８  非常時出力書込
２２０  新規故障通知
３１０  ストロークセンサ
３１１  車載ネットワーク
４１０，８１０  電流制御処理
７１０  正常動作確認信号出力
７１１，７３０  故障通知信号入力
７１３  ＯＳに故障通知
７１４  演算実行
７１５  演算結果出力
７１６  再計算要求信号入力
７１７  再計算判断
７２０  正常動作確認信号入力
７２２  故障通知信号出力
７３４  再計算要求信号出力
７３５  演算結果切替
７３６  比較結果出力
【図１】
0005629646.tif 000002
【図２】
0005629646.tif 000003
【図３】
0005629646.tif 000004
【図４】
0005629646.tif 000005
【図５】
0005629646.tif 000006
【図６】
0005629646.tif 000007
【図７】
0005629646.tif 000008
【図８】
0005629646.tif 000009
【図９】
0005629646.tif 000010