(58)【調査した分野】(Int.Cl.,DB名)
運転者の要求または車両状態を検知するセンサ手段と、前記センサ手段からの情報に基づいて操作量指令値を演算する少なくとも1つの操作量生成手段と、前記操作量生成手段からの操作量指令値または前記センサ手段からの情報に基づいてアクチュエータを制御する複数のアクチュエータ駆動手段と、前記センサ手段と前記操作量生成手段と前記アクチュエータ駆動手段とのそれぞれを相互に接続する通信手段と、を有し、車両の駆動、操舵、制動の少なくとも1つを制御する車両制御装置であって、
前記アクチュエータ駆動手段は、自己の動作状態と、前記他のアクチュエータ駆動手段の動作状態と、前記操作量生成手段の動作状態に基づいて、前記操作量生成手段からの操作量指令値を用いた制御方法、前記センサ手段からの情報を用いた制御方法、前記アクチュエータを所定の状態にする制御方法のいずれかを選択する制御方法選択手段を備え、
前記アクチュエータ駆動手段は、前記自己の動作状態として、自己の故障状態を判断する故障判断手段を備え、
前記故障判断手段は、前記操作量生成手段からの信号の受信状態と、2つ以上の前記他のアクチュエータ駆動手段における前記操作量生成手段からの信号の受信状態と、に基づいて、前記自己の故障状態を判断することを特徴とする車両制御装置。
前記データ受信テーブルはメッセージの時刻を表す情報を含み、時刻の遅れがあらかじめ定められた値よりも大きい場合に、送信元またはその通信路が正常に作動していないと判断する機能を有することを特徴とする請求項4に記載の車両制御装置。
前記データ受信テーブルは、前記複数のノードの前記故障検出機能により検出された故障検出結果に基づいて、故障状態にあるノード、または故障状態から正常状態に復帰したノードを特定する機能を有することを特徴とする請求項4又は5に記載の車両制御装置。
運転者の要求または車両状態を検知するセンサ手段と、前記センサ手段からの情報に基づいて操作量指令値を演算する少なくとも1つの操作量生成手段と、前記操作量生成手段からの操作量指令値または前記センサ手段からの情報に基づいてアクチュエータを制御する複数のアクチュエータ駆動手段と、前記センサ手段と前記操作量生成手段と前記アクチュエータ駆動手段とのそれぞれを相互に接続する通信手段と、を有し、車両の駆動、操舵、制動の少なくとも1つを制御する車両制御装置に用いられる前記複数のアクチュエータ駆動手段のうち1つのアクチュエータ駆動手段からなるアクチュエータコントローラであって、
前記アクチュエータ駆動手段からなるアクチュエータコントローラは、自己の動作状態と、前記他のアクチュエータ駆動手段の動作状態と、前記操作量生成手段の動作状態に基づいて、前記操作量生成手段からの操作量指令値を用いた制御方法、前記センサ手段からの情報を用いた制御方法、前記アクチュエータを所定の状態にする制御方法のいずれかを選択する制御方法選択手段を備え、
前記アクチュエータ駆動手段は、前記自己の動作状態として、自己の故障状態を判断する故障判断手段を備え、
前記故障判断手段は、前記操作量生成手段からの信号の受信状態と、2つ以上の前記他のアクチュエータ駆動手段における前記操作量生成手段からの信号の受信状態と、に基づいて、前記自己の故障状態を判断することを特徴とするアクチュエータコントローラ。
前記データ受信テーブルはメッセージの時刻を表す情報を含み、時刻の遅れがあらかじめ定められた値よりも大きい場合に、送信元またはその通信路が正常に作動していないと判断する機能を有することを特徴とする請求項10に記載のアクチュエータコントローラ。
前記データ受信テーブルは、前記複数のノードの前記故障検出機能により検出された故障検出結果に基づいて、故障状態にあるノード、または故障状態から正常状態に復帰したノードを特定する機能を有することを特徴とする請求項10又は11に記載のアクチュエータコントローラ。
【発明を実施するための形態】
【0070】
(第1の実施形態)
まず、本発明による車両制御装置の基本的構成を、
図1を参照して説明する。
車両制御装置は、マスタコンピュータ(指令コントローラ)1と、センサスレーブコンピュータ(センサコントローラ)2と、アクチュエータスレーブコンピュータ(アクチュエータコントローラ)3とを有し、これらは、有線式、無線式、バス型、メッシュ型、スター型、リング型等によるネットワークN1によって双方向にデータ通信可能に接続されている。
【0071】
マスタコンピュータ1は、制御目標値を演算する指令コントローラであり、マスタ制御機能(マスタ制御手段)1Aを有する。
【0072】
センサスレーブコンピュータ2には制御対象の状態を観測(計測)するためのセンサ4が接続されている。センサスレーブコンピュータ2は、センサ4よりのセンサ信号を処理するセンサ処理機能(センサ処理手段)2Aを有する。
【0073】
アクチュエータスレーブコンピュータ3には制御対象に作用するためのアクチュエータ5が接続されている。アクチュエータスレーブコンピュータ3は、アクチュエータ5を制御するためのスレーブコンピュータであり、マスタコンピュータ1よりの制御目標値に基づいてアクチュエータ5を制御するアクチュエータ制御機能(アクチュエータ制御手段)3Aと、制御目標値を演算する簡易マスタ機能(制御目標値生成手段)3Bとを有する。
【0074】
ネットワークN1において、制御目標値のデータフローD1と、センサ計測値のデータフローD2が存在する。
【0075】
センサ計測値のデータフローD2は、センサスレーブコンピュータ2が出力したセンサ値のデータフローであり、センサスレーブコンピュータ2が出力したセンサ値をマスタコンピュータ1のマスタ機能1Aとアクチュエータスレーブコンピュータ3の簡易マスタ機能3Bの双方が受信している。
【0076】
制御目標値のデータフローD1は、マスタコンピュータ1が出力した制御目標値のデータフローであり、マスタコンピュータ1が出力した制御目標値をアクチュエータスレーブコンピュータ3のアクチュエータ制御機能3Aが受信している。
【0077】
通常動作時、アクチュエータスレーブコンピュータ3は、アクチュエータ制御機能3AがデータフローD1によって受信したマスタコンピュータ1からの制御目標値に基づいてアクチュエータ5を制御する。
【0078】
しかし、データフローD1に異常が生じた場合には、アクチュエータスレーブコンピュータ3は、簡易マスタ機能3Bの演算した制御目標値に基づいてアクチュエータ5を制御する。つまり、簡易マスタ機能3Bは、データフローD2により得たセンサ計測値に基づいて制御目標値を演算しており、アクチュエータ制御機能3Aは、アクチュエータスレーブコンピュータ3内におけるデータフローD3Bにより得られる簡易マスタ機能3Bの演算結果による制御目標値に基づいてアクチュエータ5を制御する。
【0079】
上記の構成をとることにより、万が一、マスタコンピュータ1のマスタ機能1Aが使用できない状態に陥っても、簡易マスタ機能3Bの演算結果に基づいてアクチュエータ制御が行われることになり、運転者の操作や車両の状態変化を反映することが可能となり、信頼性の高い車両制御装置が実現可能となる。
【0080】
なお、
図1では、マスタコンピュータ1を一つのコンピュータとして示しているが、マスタ制御機能を分割して複数のコンピュータに実装してもよい。
【0081】
図1で示した車両制御装置における通信データフローの具体例を、
図2(a)、(b)を参照して説明する。
【0082】
マスタコンピュータとして、車両全体の運動を統合的に制御する車両運動統合制御手段10を有する。
【0083】
センサスレーブコンピュータとして、運転者により操作される舵角指示手段(操舵角センサ系)31と、減速度指示手段(ブレーキペダル踏込量センサ系)32と、加速度指示手段(アクセルペダル踏込量センサ系)33とを有する。
【0084】
アクチュエータスレーブコンピュータとして、車両の操舵角を制御する操舵量制御手段11と、車両の制動力を制御する制動力制御手段12と、車両の駆動力を制御する駆動力制御手段13とを有する。
【0085】
舵角指示手段31と、減速度指示手段32と、加速度指示手段33と、操舵量制御手段11と、制動力制御手段12と、駆動力制御手段13と、車両運動統合制御手段10とは、通信バスN11によって相互に接続されている。
【0086】
図2(a)は、車両運動統合制御手段10が正常に動作している場合のデータフローを示している。
このデータフローにおいて、符号D31は、運転者による舵角指示手段31の操作量であり、舵角指示手段31によって電気信号に変換され、通信バスN11に出力される。
【0087】
符号D32は、運転者による減速度指示手段32の操作量であり、減速度指示手段32によって電気信号に変換され、通信バスN11に出力される。
【0088】
符号D33は、運転者による加速度指示手段33の操作量であり、加速度指示手段33によって電気信号に変換され、通信バスN11に出力される。
【0089】
車両運動統合制御手段10は、通信バスN11から、舵角指示手段操作量D31、減速度指示手段操作量D32、加速度指示手段操作量D33を受信し、車両の運動を統合的に制御するための演算を行う。
【0090】
その後、車両運動統合制御手段10は、車両を制御するための制御手段に与える目標値として、操舵量目標値D11と、制動力目標値D12と、駆動力目標値D13とを通信バスN11に出力する。
【0091】
操舵力制御手段11は、操舵量目標値D11を通信バスN11から受信し、操舵量目標値を実現するようにステアリングなどの操舵装置を制御する。
【0092】
制動力制御手段12は、制動力目標値D12を通信バスN11から受信し、制動力目標値を実現するように電動ブレーキなどの制動装置を制御する。
【0093】
駆動力制御手段13は、駆動力目標値D13を通信バスN11から受信し、駆動力目標値を実現するように内燃機関・変速機・電動モータなどの駆動力源、動力伝達系を制御する。
【0094】
図2(b)は車両運動統合制御手段10にエラーが生じた場合のデータフローを示している。
車両運動統合制御手段10が故障した場合には、操舵量目標値D11と制動力目標値D12と駆動力目標値D13とが通信バスN11に出力されない。しかし、運転者の意図したとおりに車両を制御する必要がある。
【0095】
そこで、操舵力制御手段11は、車両運動統合制御手段10にエラーが生じたことを判断すると、舵角指示手段操作量D31を通信バスN11から受信し、舵角指示手段操作量D31に基づいてステアリングなどの操舵装置を制御する。
【0096】
制動力制御手段12は、車両運動統合制御手段10にエラーが生じたことを判断すると、減速度指示手段操作量D32を通信バスN11から受信し、減速度指示手段操作量D32に基づいて電動ブレーキなどの制動装置を制御する。
【0097】
駆動力制御手段13は、車両運動統合制御手段10にエラーが生じたことを判断すると、加速度指示手段操作量D33を通信バスN11から受信し、加速度指示手段操作量D33に基づいて内燃機関・変速機・電動モータなどの駆動力源を制御する。
【0098】
車両運動統合制御手段10にエラーが生じたことは、通信バスN11へのデータ出力が一定時間なされていない等の事象を用いて、データ受信側で判断する。また、車両運動統合制御手段10自身がエラー発生時にその旨をメッセージとして出力するようにしてもよい。
【0099】
次に、本発明による車両制御装置を適用された車両(自動車)の一つの実施形態を、
図3を参照して説明する。
【0100】
制御系ネットワークN1Aは本発明における通信線に相当し、車両運動制御にかかわるデータの通信に用いられる。制御系バックアップネットワークN1Bも本発明における通信線に相当し、衝突事故による断線等、不可抗力により制御系ネットワークN1Aに障害が発生した際の予備手段として用いられる。
【0101】
ステアリングセンサ41は舵角指示手段31に相当する。ステアリングセンサ41は、運転者が操作したステアリングホイール51の操作量(操舵角)を計測し、フィルタ等信号処理を行ってステアリングホイール操作量を電気信号として制御系ネットワークN1Aおよび制御系バックアップネットワークN1Bに出力する。
【0102】
なお、ステアリングホイール51は、機械的機構でも前輪操舵機構71と接続されており、不可抗力により制御系ネットワークN1Aやステアリングセンサ41やSBW・VGRドライバECU(Electronic Control Unit)81に障害が発生した場合でも、車両50の前輪72R、72Lの操舵角を制御することができる。
【0103】
ブレーキペダル位置センサ42は減速度指示手段22に相当する。ブレーキペダル位置センサ42は、運転者が操作したブレーキペダル52の操作量を計測し、フィルタ等信号処理を行ってブレーキペダル操作量を電気信号として制御系ネットワークN1Aおよび制御系バックアップネットワークN1Bに出力する。
【0104】
なお、ブレーキペダル52は油圧系統でも前輪ブレーキ73と接続されており、不可抗力により制御系ネットワークN1Aやブレーキペダル位置センサ52やBBWドライバECU83A、83B等に障害が発生した場合でも車両50の制動力を制御することができる。
【0105】
アクセルペダル位置センサ43は加速度指示手段33に相当する。アクセルペダル位置センサ43は、運転者が操作したアクセルペダル53の操作量を計測し、フィルタ等信号処理を行ってアクセルペダル操作量を電気信号として制御系ネットワークN1Aに出力する。
【0106】
なお、アクセルペダル位置センサ43は別の通信線でも内燃機関制御ECU21と接続されており、不可抗力により制御系ネットワークN1AやDBW系統合制御ECU20に障害が発生した場合でも車両50の内燃機関を制御することができる。
【0107】
ミリ波レーダ/カメラ44は、前方および後方の他車の走行状態を検出したり、走行中の車線の白線認識を行ったり等、車両50の外部状態の認識に用いられる。ミリ波レーダ/カメラ44は、外部状態を認識し、例えば前方を走行している車両との相対角度や相対距離や相対速度等を信号処理により演算し、電気信号として制御系ネットワークN1Aに
出力する。
【0108】
ステアリングセンサ41、ブレーキペダル位置センサ42、アクセルペダル位置センサ43、ミリ波レーダ/カメラ44は、センサスレーブコンピュータに相当する。
【0109】
車両運動統合制御ECU30は、マスタコンピュータであって、前述の車両運動統合制御手段10に相当する。車両運動統合制御ECU30は、制御系ネットワークN1A上に出力されている運転者による操作量や車両の走行状態、車両統合制御ECU30が備えるセンサ計測値を入力し、車両50の運動を総合的に管理し、駆動力制御手段や制動力制御手段や操舵量制御手段やサスペンション制御手段や安全装置制御手段などの制御目標値を制御系ネットワークN1Aに出力する。
【0110】
車両運動統合制御ECU30は、統括系ネットワークN3と制御系ネットワークN1Aとの間のゲートウェイ機能も持っている。
【0111】
アクチュエータスレーブコンピュータとして、SBW・VGRドライバECU81、BBWドライバECU83A〜83D、EASドライバECU84A〜84D、エアバッグECU85が存在する。
【0112】
SBW・VGR(Steer−By−Wire・Variable Gear Ratio)ドライバECU81は、舵角制御手段に相当し、電動モータM1を制御することにより前輪操舵機構71によって前輪72R、72Lの舵角を制御し、電動モータM5を制御することにより既知の操舵装置可変ギア比(VGR)機構54を制御する。
【0113】
SBWドライバECU82も、舵角制御手段に相当し、電動モータM2を制御することにより後輪操舵機構74によって後輪75R、75Lの舵角を制御する。
【0114】
BBW(Brake―By−Wire)ドライバECU83A、83B、83C、83Dは、各々制動力制御手段に相当する。
【0115】
BBWドライバECU83Aは、電動モータM3Aを制御することにより、ポンプPの油圧を制御し、前輪ブレーキ機構73によって右前輪72Rに発生する制動力を制御する。
【0116】
BBWドライバECU83Bは、電動モータM3Bを制御することにより、ポンプPの油圧を制御し、左前輪に発生する制動力を制御している。
【0117】
BBWドライバECU83Cは、電動モータM3Cを制御することにより、ポンプPの油圧を制御し、前輪ブレーキ機構73によって後輪ブレーキ機構76によって右後輪75Rに発生する制動力を制御する。
【0118】
BBWドライバECU13Dは、電動モータM3Dを制御することにより、ポンプPの油圧を制御し、後輪ブレーキ機構76によって左後輪75Lに発生する制動力を制御する。
【0119】
EAS(Electric Active Suspension)ドライバECU84A、84B、84C、84Dは、各々サスペンション制御手段に相当し、車両50に備えられたサスペンション機構77、78を制御する。
【0120】
EASドライバECU84Aは、電動モータM4Aを制御することにより、右前輪72Rに備えられた前輪サスペンション機構77のサスペンション長やばね定数や減衰定数などを制御する。
【0121】
EASドライバECU84Bは、電動モータM4Bを制御することにより、左前輪72Lに備えられた前輪サスペンション機構77のサスペンション長やばね定数や減衰定数などを制御する。
【0122】
EASドライバECU84Cは、電動モータM4Cを制御することにより、右後輪75Rに備えられた後輪サスペンション機構78のサスペンション長やばね定数や減衰定数などを制御する。
【0123】
EASドライバECU84Dは、電動モータM4Dを制御することにより、左後輪75Lに備えられた後輪サスペンション機構78のサスペンション長やばね定数や減衰定数などを制御する。
【0124】
このように、車両運動統合制御ECU30により、EASドライバECU84A〜84Dを制御することにより、減速時には前輪サスペンション77のばね定数を高くして車両50が前方向に傾くことを防止したり、旋回時に外側のサスペンションのばね定数を高くして横転を防止したり、登坂時に前輪サスペンション長を短くし後輪サスペンション長を長くして車体の傾きを少なくしたりすることができる。
【0125】
エアバッグECU85は、安全装置制御手段に相当し、エアバッグ等の乗員保護装置を制御する。
【0126】
DBW(Drive−By−Wire)系統合制御ECU20は、駆動力制御手段に相当する。DBW系統合制御ECU20は、DBW系サブネットワークN2によって接続された内燃機関制御ECU21や変速機制御ECU22や電動モータ制御ECU23やバッテリー制御ECU24など、車両50の駆動制御にかかわる装置を統合的に制御する。
【0127】
このような構成をとることにより、車両運動統合制御ECU30からは最終的な駆動力をDBW系統合制御ECU20に指示するだけでよく、実際の駆動制御にかかわる装置の構成によらず目標値を指示することができ、制御装置を簡潔に構成することが可能になる。
【0128】
内燃機関制御ECU21は、図示しない内燃機関を制御するためのECUであり、DBW系統合ECU20から、内燃機関軸トルクや内燃機関回転数などの目標値を受けて、目標値を実現するように内燃機関を制御する。
【0129】
変速機制御ECU22は、図示しない変速機を制御するためのECUであり、DBW系統合ECU20から、変速段などの目標値を受けて、目標値を実現するように変速機を制御する。
【0130】
電動モータ制御ECU23は、図示しない駆動力発生用電動モータを制御するためのECUであり、DBW系統合ECU20から、出力トルクや回転数などの目標値を受けて、目標値を実現するように内燃機関を制御する。また、電動モータ回生による負方向の駆動力発生源としても動作する。
【0131】
バッテリー制御ECU24は、図示しないバッテリーを制御するためのECUであり、バッテリーの充電状態などを制御している。
【0132】
情報系ゲートウェイ35は、図示しない携帯電話等の無線通信手段やGPSやカーナビゲーションなどを接続する情報系ネットワーク(同業者に公知のMOST等)と、統括ネットワークN3を接続するためのゲートウェイである。
【0133】
情報系ネットワークと制御系ネットワークN1Aがゲートウェイ機能を介してつながることで、制御系ネットワークN1Aを情報系ネットワークから論理的に分離することが可能になり、リアルタイム性など制御系ネットワークN1Aに特有の要求を容易に満足する構成を、比較的簡潔に構成することができる。
【0134】
ボディ系ゲートウェイ36は、図示しないドアロックやパワーウィンドウ等のボディ系ネットワークと、統括ネットワークN3を接続するためのゲートウェイである。ボディ系ネットワークと制御系ネットワークN1Aがゲートウェイ機能を介してつながることで、制御系ネットワークN1Aをボディ系ネットワークから論理的に分離することが可能になり、リアルタイム性など制御系ネットワークN1Aに特有の要求を容易に満足する構成を、比較的簡潔に構成することができる。
【0135】
次に、車両運動統合制御ECU30が行う処理について
図4を用いて説明する。
図4は、車両運動統合制御ECU30が正常に動作している場合のデータフローを示している。
【0136】
車両運動統合制御ECU30は、車両状態推定部101と、目標状態演算部102と、車体操作ベクトル操作モーメント演算部103と、操作量演算部104と、車両パラメータ記憶部105と有し、ステアリングセンサ41やブレーキペダル位置センサ42やアクセルペダル位置センサ43やミリ波レーダ/カメラ44や、
図3には図示されていない車輪速センサや車体加速度センサや角加速度センサ等のセンサSの各センサ信号を入力とする。
【0137】
車両状態推定部101は、センサ信号を用いて車両の現在の状態を推定する。
目標状態演算部102は、車両状態推定部101によって推定されて車両の走行状態とセンサ信号とを用いて制御によって実現するべき車両の目標状態、つまり、車両がとるべき目標運動状態を算出する。
【0138】
車体操作ベクトル操作モーメント演算部103は、車両状態推定部101によって推定されて車両の現在状態と目標状態演算部102によって算出された目標状態との差異に基づいて、制御によって車体に発生させる並進方向の力ベクトルと回転方向のモーメントベクトルとを算出する。
【0139】
操作量演算部104は、車体操作ベクトル操作モーメント演算部103によって算出された力ベクトルとモーメントベクトルに基づいて、BBWドライバECU83A〜83DやDBW系統合制御ECU20、SBW・VRGドライバECU81、SBWドライバECU82、EASドライバECU84A〜84D、エアバッグECU85等の制御用アクチュエータで実現するべき目標操作量を演算する。
【0140】
車両パラメータ記憶部105には、車体の動力学的な定数(例えば質量、回転慣性、重心位置など)や制御アクチュエータの仕様(例えば各アクチュエータの時定数、ブレーキの最大制動力、ステアリングの最大舵角など)等の車両パラメータが格納されており、これら車両パラメータは、車両状態推定部101、目標状態演算部102、車体操作ベクトル操作モーメント演算部103、操作量演算部104での演算処理で参照される。
【0141】
なお、
図4では、操作量演算部104から各ドライバECUへの出力は一本の線で記述されているが、これは一つの値のみを示すものではなく、一組の制御量を示すものである。例えば、BBWドライバECU83A〜83Dに対しては、各車輪毎の独立な制動力を指示するようにしてよい。
【0142】
車両運動統合制御ECU30が、車両状態推定部101と、目標状態演算部102と、車体操作ベクトル操作モーメント演算部103と、操作量演算部104とで構成されることにより、車両の運動を統合的に管理、制御することができるという効果がある。
【0143】
また、車両状態推定部101を分離したことにより、例えば、同一のプラットフォームを有する車両で、パワートレインのみを内燃機関からハイブリッドタイプに変更したりした場合など、車両の制御アクチュエータ構成を変更した場合でも、車両の力学的特性を演算する部分を再利用することが可能になり、制御装置の開発効率が向上するという効果がある。
【0144】
また、目標状態演算部102を分離したことにより、運転者の個性を反映したり、周辺を走行している車両や道路状態によって目標値のリミッタを変更したりする場合でも、目標状態演算部102のみを変更すればよく、制御装置の開発効率が向上するという効果がある。
【0145】
また、車体操作ベクトル操作モーメント演算部103と操作量演算部104を独立な構成にしたことにより、車両の備えた制御装置の構成とは独立に車体への操作量を算出することが可能になる。
【0146】
たとえば、ハイブリッド自動車からインホイール電動モータ型自動車へと構成が変わっても、車体操作ベクトル操作モーメント演算部103では同様に発生させる力・モーメントベクトルを演算すればよく、操作量演算部104を変更すればよい。そのため、車両制御装置の開発効率が向上するという効果がある。
【0147】
つぎに、車両状態推定部101で算出される車両の現在状態と、目標状態演算部102で算出される車両の目標状態について
図5を参照して説明する。
【0148】
車両の現在状態と目標状態とは、車両50のボディ部分を剛体として仮定した場合の剛体運動での状態量1Xを表している。状態量1Xとは、たとえば、車両50のボディ重心に固定された3次元(X−Y−Z)局所座標系1Gにおける変位(x,y,z)、回転角(θx,θy,θz)、速度(dx/dt,dy/dt,dz/dt)、角速度(dθx/dt,dθy/dt,dθz/dt)のことを指す。
【0149】
剛体力学において状態量1Xの各成分は互いに連成しているので、状態量1Xを定めることにより、より精密な制御を行うことができ、乗員快適性と安定性の高い制御を行うことができるという効果がある。
【0150】
車両状態推定部101による車両状態推定処理フローを、
図6を参照して説明する。
まず、ステップS1011において、車両に固定した局所座標系1Gにおける運動状態を推定する。
【0151】
次に、ステップS1012において、たとえば日本橋等、特定の地点に固定した固定座標系における運動状態を推定する。
次に、ステップS1013において、車両が走行している周辺の状況を推定する。
【0152】
次に、ステップS1014において、センサSの計測値やBBWドライバECU83A〜83DやDBW系統合制御ECU20、SBW・VRGドライバECU81、SBWドライバECU82、EASドライバECU84A〜84D、エアバッグECU85等の制御用アクチュエータの自己故障診断結果に基づいて、車両の故障状態を推定・更新する。
【0153】
目標状態演算部102による目標状態演算処理フローを、
図7を参照して説明する。
まず、ステップS1021において、ステアリングセンサ41やブレーキペダル位置センサ42やアクセルペダル位置センサ43の操作量と、現在の車両状態に基づいて運転者の意図する車両状態を推定する。
【0154】
次に、ステップS1022において、車両の周辺の状況や、車両制御手段の性能や、機器の故障の状態や、法規制やなどに基づいて、車両状態のリミッタを演算する。例えば、ブレーキ装置が1部故障した場合には、正常動作するブレーキ装置の能力で安全に制動できる範囲で最高速度を制限する。
【0155】
そして、ステップS1023において、車両状態のリミッタを超えない範囲でドライバ意図に沿うように、車両50の目標状態量を決定する。
【0156】
図8は、車体操作ベクトル操作モーメント演算部103によって演算される操作力・モーメントベクトルを示している。
図8に示されているように、操作力ベクトルF(Fx,Fy、Fz)と操作モーメントベクトルτ(τx,τy、τz)は、車体に固定した局所座標系上で演算される。そのため、車両に固定されている制御装置での操作量に、容易に変換できるという効果がある。
【0157】
操作量演算部104による操作量演算処理フローを、
図9を参照して説明する。
操作量演算部104は、車体操作ベクトル操作モーメント演算部103で演算した車体操作力ベクトルF・モーメントベクトルτを入力として、実際の制御手段でどのような制御量を目標値とするかを演算する。
【0158】
まず、ステップS1041において、車体操作力ベクトルF・モーメントベクトルτを車両50に取り付けられたタイヤごとに発生させるタイヤ力へと振り分ける。その後、タイヤベクトルを実際の制御手段での制御量目標値を演算する。
制動力や駆動力や旋回力(操舵によって発生するタイヤ横力)を車両制御における目標値として用いることで、車両全体の運動を統合的に制御することが可能になる。
【0159】
図10に、ステップS1041で演算するタイヤベクトルを示す。
FFRは制御により右前輪に発生させるタイヤベクトルである。FFLは制御により左前輪に発生させるタイヤベクトルである。FRRは制御により右後輪に発生させるタイヤベクトルである。FRLは制御により左後輪に発生させるタイヤベクトルである。タイヤベクトルは、それぞれ車体50に固定された局所座標系1Gにおける成分として定められている。
【0160】
タイヤベクトルを局所座標形状の成分として定めることにより、車体50に固定されているタイヤ駆動軸やステアリング装置の操作量への変換が容易になるという効果がある。
【0161】
ステップS1042においては、操作量の振り分け処理を行う。操作量の振り分け処理は、実際に車両を制御するアクチュエータの構成に対応して行われる。
【0162】
図11(a)、(b)に、操作量振り分け処理の詳細を示す。
図11(a)は、車両50が内燃機関駆動やハイブリッド内燃機関駆動のパワートレインを持つ場合の操作量振り分け処理(ステップS1042a)を示す。この操作量振り分け処理は、タイヤベクトルを入力とし、SBW・VRGドライバECU81、SBWドライバECU82での目標値となる操舵量や、BBWドライバECU83A〜83Dでの目標値となるブレーキ制動トルクや、DBW系統合制御ECU20での目標値となるパワートレイン制駆動トルクを出力とする。
【0163】
図11(b)は、車両50が公知のインホイール電動モータ型のパワートレインを持つ場合の操作量振り分け処理(ステップS1042b)を示す。操作量振り分け処理は、SBW・VRGドライバECU81、SBWドライバECU82での目標値となる操舵量や、図示されていないインホイール電動モータによる回生およびブレーキパッド制御ECUでの目標値となるブレーキ制動トルクや、図示されていないインホイール電動モータ制御ECUでの目標値となる電動モータ駆動トルクを出力とする。
【0164】
操作量振り分け処理を、実際に車両を制御するアクチュエータの構成に対応して行うことにより、アクチュエータ構成が変わっても操作量振り分け処理の実行手段を交換することで対応できるようになり、車両制御装置の開発効率が向上するという効果がある。
【0165】
DBW系統合制御ECU20の構成を、
図12を参照して説明する。
右前輪駆動トルク受付部201は、右前輪72Rで発生すべき駆動トルクを受信する。左前輪駆動トルク受付部202は左前輪72Lで発生すべき駆動トルクを受信する。右後輪駆動トルク受付部203は右後輪75Rで発生すべき駆動トルクを受信する。左後輪駆動トルク受付部204は左後輪75Lで発生すべき駆動トルクを受信する。
【0166】
パワートレイン操作量算出部205は、実際のアクチュエータを制御するECUでの目標値となる値を算出し、内燃機関制御ECU21や変速機制御ECU22や電動モータ制御ECU23やバッテリー制御ECU24の操作量を指示する。
【0167】
公知のトルクベース車両制御装置では、駆動手段の駆動軸で発生するべきトルクを目標値として制御を行っていた。そのため、各車輪ごとの駆動力を制御できるインホイール電動モータ型用のDBW系統合制御ECU20とは互換性がないという課題があった。
【0168】
そこで、たとえば、内燃機関やハイブリッド型システムのような集中的に駆動力を発生する駆動手段を持つ駆動システムにおいても、各車輪ごとの駆動力を制御目標値として受け取り、DBW系統合制御ECU20の内部で駆動用のアクチュエータに再分配する。この結果、ハイブリッド型システム用のDBW系統合制御ECUとインホイール電動モータ型システム用のDBW系統合制御ECUの指令値受付方式(インタフェース)を共通化することができる。
【0169】
(第2の実施形態)
本発明による車両制御装置を適用した次世代車両統合車両制御装置向け自律分散制御プラットフォームを、
図13を参照して説明する。
【0170】
自律分散制御プラットフォームの目的は、車両制御における高信頼性、リアルタイム処理、拡張性を低コストで実現することである。
「自律分散」とは、制御分野における高信頼分散システムモデルの1つである。生物における細胞に対応するノードと呼ぶ計算主体が、データフィールドと呼ぶ共有データを置く場を介して疎に結合されたシステムである。
【0171】
なお、「自律分散」の詳細な内容については、森欣司、宮本 二、井原廣一:自律分散概念の提案:電気学会論文誌C Vol.104 No.12 pp.303-310(1984)や、K.Mori : Autonomous Decentralized Systems : Concept, Data field Architecture and Future Trends : IEEE International Symposium on Autonomous Decentralized Systems (ISADS) pp.28-34 (1993-Mar)を参照されたい。
【0172】
自律分散制御システムでは、各ノードを、他と独立かつ自律的に動作可能なプログラムとすることで、一部の障害がシステム全体に及ばない構成を実現でき、信頼性や拡張性のよい分散システムを実現できる。しかし、生物学的モデルに基づくコンセプトの実システムへの適用は難しく、一般性のある適用方法が確立されるまでには至っていない。そのため、適用システム毎にアーキテクチャを検討する必要がある。
【0173】
自律分散制御プラットフォームは、1)データを共有するためのデータフィールドDF10と、2)自律的動作、3)自律的管理、4)自律的バックアップが可能なノード(センサノードA20、アクチュエータノードA30、コントローラノードA10)から構成される。なお、各ノードは、セルフモニタ(自己監視機能)A13、A23、A33を有する。
【0174】
コントローラノードA10は、時間条件A12(例えば10[ms]周期)により、処理ルーチンA11を起動する。コントローラノードA10は、データフィールドDF10からセンサデータDA20を取得し、アクチュエータノードA30の制御目標値を演算し、それをコントローラデータDA10としてデータフィールドDF10へブロードキャストする。
【0175】
データフィールドDF10は、制御ネットワーク上に仮想的に設けられる共有メモリ空間であり、正常状態では、センサノードA20が出力するセンサデータDA20と、コントローラノードA10が出力するコントローラデータ(制御目標値)DA10とが存在する。
【0176】
自律的動作とは、他のノードからの処理要求を受信することなく、時間条件や自ノードの状態によって自発的に処理を行う機能である。
【0177】
自律的管理機能とは、他ノードには隠蔽している自ノードの動作および状態の監視を、自分自身で実行する機能である。
【0178】
自律的バックアップとは、簡易制御を内蔵することによって、自ノードの処理に必要なデータに異常がある場合に、簡易制御によって自ら必要なデータを演算し、必要最低限の処理を実現する機能である。
【0179】
以下、データフィールドDF10により、車両制御装置に適した拡張性向上を、自律的動作によりリアルタイム分散制御に適した時間駆動動作を、自律的管理機能と自律的バックアップ機能により信頼性確保のための状態監視とシステム耐故障性を実現できることを示す。
【0180】
図14(a)、(b)を用いて、自律分散制御プラットフォームのうち、データフィールドについて述べる。
データフィールドの狙いは、車両制御装置の拡張性を向上することである。データフィールドの導入により、ノード間のインタフェースを標準化したうえで、部品の交換、追加を容易にする目的がある。
【0181】
自律分散制御プラットフォームにおいてノード間のデータ交換は、ネットワーク上に定義される仮想的な共有メモリであるデータフィールドDF20を介して行われる。すなわち、ネットワークにどのような機器が接続されているかを意識せず、データそのものをオブジェクトとして認識することになる。
【0182】
そのため、データフィールドDF20上に定義されるデータはセンサ・アクチュエータレベルで標準化可能な抽象度の高いデータである。例えばセンサ計測では、電圧値のようなプリミティブなデータではなく、多重計測によるフィルタ処理や浮動小数点化を行った物理値がデータフィールド上に定義される。アクチュエータ制御においても、ブレーキの目標制動力のような標準化されたデータがデータフィールド上に定義される。
【0183】
図14(a)の例では、ブレーキペダル位置センサノードA200によってブレーキペダルSA200の踏込み量が計測され、物理量に変換された上でブレーキペダル状態量(ブレーキ踏込み量)DA200としてデータフィールドDF20上にブロードキャストされる。
【0184】
コントローラノードA100は、ブレーキペダル状態量DA200を参照し、各輪の目標制動力(右前輪目標制動力DA100、左前輪目標制動力DA101のみ図示)を演算してデータフィールドDF20上にブロードキャストする。
【0185】
前輪ブレーキアクチュエータノードA300は、右前輪目標制動力DA100、左前輪目標制動力DA101を参照したうえで、目標制動力を実現するように、左前輪ブレーキアクチュエータAA300、左後輪ブレーキアクチュエータAA301を制御する。
【0186】
図14(b)の例では、
図14(a)の制御アーキテクチャに対し、車間距離制御機能を追加したうえで、ブレーキコントローラを変更した構成である。
【0187】
先行車との車間距離を計測するレーダSA210およびレーダを制御するレーダノードA210が追加され、計測した車間距離DA210をデータフィールドDF20にブロードキャストしている。
【0188】
コントローラノードA100は、ブレーキペダル状態量DA200および車間距離DA210を参照し、車輪の目標制動力(右前輪目標制動力DA100、左前輪目標制動力DA101のみ図示)を演算してデータフィールドDF20上にブロードキャストする。
【0189】
右前輪のブレーキアクチュエータノードA310は、右前輪目標制動力DA100を参照して右前輪ブレーキアクチュエータAA310を制御する。
【0190】
左前輪のブレーキアクチュエータノードA320は、左前輪目標制動力DA101を参照して左前輪ブレーキアクチュエータAA320を制御する。
【0191】
以上、
図14(a)、(b)に示すように、他のセンサ・アクチュエータには影響を与えずに、データフィールドDF20上に「車間距離」のデータを追加するだけで、車間距離計測ノードとしてレーダノードA210の追加が可能である。
【0192】
また、ブレーキアクチュエータノードも前輪制御型から各輪独立型に変更されているが、他のノードおよびデータフィールドDF20には影響を与えていない。すなわち、データフィールドDF20を用いることによって各ノードを疎に結合することが可能となり、拡張性のよい分散システムが容易に実現できる。
【0193】
図15(および
図13)を用いて、分散制御プラットフォームの特徴のうち、自律的動作について述べる。
自律的動作の狙いは、分散リアルタイム処理に対応するため、処理の時間的予測が容易な時間駆動に基づく動作を実現することである。
【0194】
自律分散制御プラットフォームにおける自律的動作とは、時間条件またはノードの状態によりノードが自発的に処理を開始することである。すなわち、ノードの動作条件として、メッセージの受信だけでなく、時間条件(時刻または周期)および自ノードの状態変化(割込み)によっても処理を起動可能である。
【0195】
リアルタイムシステムでは、制御対象のシステムの状態を捉え、一定時間内に制御に反映することが必要不可欠である。そのため制御設計時、End−to−Endでの処理実行時間を設計可能にする必要がある。さらにその一方で、他ノードの異常に影響を受けずに自ノードの処理を継続する機能も要求される。このような高信頼分散リアルタイムシステムを実現するためには、ノードの動作を自律的にする必要がある。
【0196】
センサノードA20は、時間条件A22(たとえば10[ms]周期)により、処理ルーチンA21を起動する。
【0197】
センサノードA20は、センサSA20の計測値を読み取り、フィルタ処理、浮動小数点化等の前処理を行って物理量に変換した後に、センサデータDA20をデータフィールドDF10へブロードキャストする。
【0198】
アクチュエータノードA30も個別の時間条件A32(20[ms]周期)により処理ルーチンA31を起動する。
【0199】
アクチュエータノードA30は、データフィールドDF10からセンサデータDA20を取得し、自ノードA30の制御目標値を演算した後、目標値を実現するようにアクチュエータAA30の制御を行う。
【0200】
なお、起動条件である時間条件A22、A32は、例えば内燃機関回転割り込みのように、自ノードの状態変化としてもよい。このように、自発的に処理を起動しつつ必要なデータを自ら取得して演算を行うことによって、ノードの自律的な動作が可能になる。
【0201】
自律的動作によって、ノードの動作が時間駆動型または自ノードの状態変化による駆動型となる。すなわち、他ノードによるイベント駆動が不要となり、最悪実行時間の設計がきわめて容易になる。また、他のノードの異常に影響を受けずに処理を継続可能となるため、高信頼なシステムが実現できる。
【0202】
自律分散制御プラットフォームの特徴のうち、自律的管理について述べる。自律的管理の狙いは、車両制御に必要な高信頼性の確保である。具体的には、自ノードの動作監視や、異常時処理(フェールオペラティブ/フェールサイレント)を、分散システムを構成する各ノード単位で実現可能にする。また、高信頼性と低コスト化を両立するため、異常時処理としてフェールオペラティブ(故障時操作可能性)とフェールサイレント(故障時非暴走性)とを、対象ノードに応じて使い分ける。
【0203】
従来構成では、サブシステム毎のECUによってセンサ計測、車両制御量演算、アクチュエータ制御を行っていた。そのため、システムの高信頼化を図ろうとすれば、多くのECUのフェールオペラティブ性が必要となり、高コスト化を招いていた。また、ECU同士による相互監視機能を用いた場合には、ECU間の結合が密となり、拡張性・開発効率の悪化につながるという問題があった。
【0204】
図16に自律的監視の概要を示す。
本構成では、ノードA400に自己監視機能A430を設け、正常状態での動作A410を監視する。そして、異常が起きた際には機能停止処理A411(フェールサイレント)を行う。
【0205】
なお、ブレーキペダル、ステアリングホイール等のバックアップ困難なノードに対してはフェールオペラティブ性を持たせ、機能継続を行う。また、自律監視機能そのものの故障の際にもノードの機能停止を行うことにより、ノードの暴走を防止する。
【0206】
この自律的監視により、ノード間の結合を疎に保ちながら、低コストなフェールサイレントノードの集合で高信頼なシステムを構築可能となる。さらに、次に述べる自律的バックアップとの組合せにより、システムレベルでのフェールオペラティブ性を実現できる。
【0207】
自律分散制御プラットフォームの特徴のうち、自律的バックアップについて述べる。自律的バックアップの狙いは、車両制御に必要な高信頼性の確保である。具体的には、分散車両制御装置を構成するノードの故障を補償するための簡易的制御機能である。
【0208】
自律的バックアップとは、通常時はマスタースレーブ構成をとる制御ノードの論理構成において、マスタ機能を果たすノードが故障した際に、スレーブノード間のデータ共有により必要最低限の制御を実現する機能である。
【0209】
図17は、アクチュエータノードの動作フローを示している。
通常は、センサノードA20の計測値を用いてコントローラノードA10が制御目標値を演算し、その制御目標値に基づいてアクチュエータノードA30がアクチュエータAA30の制御を行っている(ステップS311肯定→ステップS312→ステップS313)。
【0210】
その一方で、アクチュエータノードA30は、マスターノード(コントローラノードA10)の制御機能の簡易版(簡易制御機能)A34(
図13参照)を内蔵しており、制御目標値と同時にセンサ計測値も参照し、センサ計測値に基づいて簡易制御目標値を演算している。万が一、マスターノードに異常が発生した場合には、前述した自己監視機能により機能が停止するため、例えばデータフィールドDF10上のデータが更新されないといった事象により、アクチュエータノードA30はステップS311にてマスターノードの故障を判定する。アクチュエータノードA30がマスターノードの故障を判定すると、(ステップS311否定→ステップS314→ステップS313が実行され、内蔵した簡易制御機能A34により、自ノードの機能実現のために必要な処理を自分自身でバックアップする。
【0211】
この自律バックアップ機能と、前述した自律的監視機能とにより、低コストなフェールサイレントノードの集合で、高信頼なフェールオペラティブシステムが実現可能となる。
【0212】
つぎに、ブレーキ制御機能を例に取って自律分散制御アーキテクチャの動作例を説明する。特に、本提案によりフェイルセーフノードの組合せでフェールオペラティブシステムが構築できることを示す。
【0213】
図18(a)、(b)に、XBW車両制御装置の構成例を示す。
図18(a)、(b)では、車両統合ECU、ブレーキペダル位置センサ、ブレーキアクチュエータ(BBW(Brake−By−Wire)ドライバECU)およびデータフィールドに着目している。なおデータフィールドは、例えばFlexRayにより実装される車両制御用ネットワーク上に設けられる。
【0214】
まず、
図18(a)を用いて、通常時の自律分散制御プラットフォームにおけるブレーキ制御機能の動作を説明する。
【0215】
自律分散制御プラットフォームにおけるブレーキ制御機能は、ブレーキペダルノードB20と、車両運動統括制御ノード(車両運動統括制御ECU)B10と、ブレーキアクチュエータノードB30とから構成されている。
【0216】
ブレーキペダルノードB20は、周期的に自律起動し、A/D変換器B203を用いてブレーキペダル位置センサSB20の状態を計測する。
【0217】
ブレーキペダルノードB20は、計測した値に対してフィルタ補正処理部材B202でフィルタリングや補正処理等を行い、さらにデータ標準化部B204でデータの標準化を行う。この後、通信ドライバB201を用いて自律分散データフィールドDF30にデータ「ブレーキペダル状態」を公開する。
【0218】
車両運動統括制御ノードB10は周期的に起動する。車両運動統括制御ノードB10は、起動後、通信ドライバB101を用いて自律分散データフィールドDF30上のブレーキペダル状態と他のデータ(ヨーレート、ハンドル舵角等)を参照して、車両運動オブサーバB102で車両の運動状態を、運転者意図把握部B103で運転者の操作意図を推定する。そして、推定結果に基づいて、アクチュエータ目標値生成部材B104で、制動力、駆動軸トルク、ステアリング角等のアクチュエータ制御目標値を演算する。その後、通信ドライバB101を用いて自律分散データフィールドDF30に制御目標値を公開する。
【0219】
ここでは、左後輪を例にブレーキアクチュエータノードB30の動作を説明する。他のノードと同様、ブレーキアクチュエータノードB30も周期的に起動する。ブレーキアクチュエータノードB30は、起動後、通信ドライバB301を用いて自律分散データフィールドNF30上の制御目標値、すなわち目標制動力を参照する。そして、目標制動力に基づいてブレーキアクチュエータAB30の制御を行う。A/D変換機B303を用いてブレーキの状態を観測し、ブレーキキャリパ制御部B302でブレーキが発生している制動力と目標状態との差分に基づいてブレーキ制御量を演算し、プリドライバB304を用いてブレーキアクチュエータAB30を制御する。
【0220】
なお、データフィールド参照の周期とアクチュエータ制御の周期は必ずしも同一周期でなくてもよく、アクチュエータ制御周期をより高速に取ることも可能である。こうすることによって、制御対象アクチュエータの制御時定数に合わせて適切な制御を行うことができる。
【0221】
つぎに、
図18(b)を用いて、車両運動統括制御ノードB10の故障時のブレーキ制御機能の動作を説明する。
ブレーキペダルノードB20は、通常時と同様、自律的に起動して処理を行う。車両運動統括制御ノードB10の故障には影響を受けない。車両運動統括制御ノードB10は、自律管理機能により自分自身の故障を検出すると、フェールサイレント処理を行う。すなわち、外部から見た場合には、一切の処理を停止している状態になる。そのため、自律分散データフィールドDF30上のアクチュエータ制御目標値は更新されなくなる。
【0222】
ここでは、左後輪を例にブレーキアクチュエータノードB30の動作を説明する。ブレーキアクチュエータノードB30は周期的に起動する。ブレーキアクチュエータノードB30は、起動後、自律分散データフィールドDF30上の制御目標値、すなわち目標制動力を参照する。しかし、目標制動力のデータが更新されなくなったことから、車両運動統括制御ノードB10の故障を検出する。これにより、ブレーキペダルノードB20の自律分散制御機能B305が起動する。自律分散制御機能B305は、自律分散データフィールドDF30上のブレーキペダル状態を参照して簡易目標値を演算する。
【0223】
ブレーキキャリパ制御部B302は、車両運動統括制御ノードB10が演算する制御目標値の代わりに、自律分散制御機能B305の演算する簡易目標値に基づいて、ブレーキアクチュエータAB30の制御を行う。
【0224】
ただし、この簡易目標値は、ブレーキペダル状態のみを用いて算出されたものであり、車両運動統括制御ノードB10が演算したような、車両の挙動を制御するようなものではない。
【0225】
以上、自律分散制御プラットフォームを用いたブレーキ制御機能の動作について述べた。自律分散プラットフォームの特徴である、データフィールド、自律的動作、自律的管理、自律的バックアップによって、例え目標値を演算するコントローラノードが故障した場合でも車両制御装置として動作可能であることを示した。
【0226】
この効果により、フェールサイレントノードの組合せによって、フェールオペラティブな車両制御装置が実現可能となり、高信頼システムの低コスト化に有効であると考える。
【0227】
本発明による車両制御装置の基本構成を、
図19を参照して説明する。
車両制御装置は、運転者の要求を検出するセンサ500と、車両状態を検出するセンサ550と、アクチュエータ400、操作量生成ノード100と、アクチュエータ駆動ノード300から構成される。
【0228】
この中で、運転者の要求を検出するセンサ500、操作量生成ノード100、およびアクチュエータ駆動ノード300は、それぞれ故障検出機能210A、210B、210Cを備えている。アクチュエータ駆動ノード300の故障検出機能210Cは、自己診断機能だけでなく、アクチュエータ400の故障を検出する機能も備えている。
【0229】
操作量生成ノード100は、運転者の要求信号200および車両状態信号201に基づいて操作量指令値120を演算する。
【0230】
この操作量指令値120を受けて、アクチュエータ駆動ノード300は、アクチュエータ400を制御する、これにより、車両の駆動、操舵、制動等が実行される。
【0231】
故障検出機能210A、210B、210Cは、ノード内またはアクチュエータ400の故障を検出すると、ノード外部に、自分が故障状態であることを知らせるための故障検出通知230を出力する。故障検出機能を備えるノードは、全て、故障状態のときは、この故障検出通知230を出力する以外は、外部への出力を停止する、つまりフェールサイレントとなるように構成されている。
【0232】
図20は、操作量生成ノード100の機能図である。操作量生成ノード100は、車両制御のための複数の制御ロジックを内蔵しており、他のノードから故障検出通知230を受信した際には、故障箇所や故障の程度に応じて、制御ロジック(制御A、制御B、制御C)を切り替えるように構成されている。
【0233】
図21は、アクチュエータ駆動ノード300の機能図である。アクチュエータ駆動ノード300は、操作量生成ノード100が生成した操作量指令値120に基づいてアクチュエータ400の動作目標値を演算するための複数の制御ロジック(制御X、制御Y、制御Z)を内蔵している。制御器320はこの目標値になるようにアクチュエータ400を駆動する。
【0234】
アクチュエータ駆動ノード300は、他のノードから故障検出通知230を受信した際には、故障箇所や故障の程度に応じて、制御ロジックを切り替えるように構成されている。アクチュエータ駆動ノード300は、操作量指令値120を受信できる場合には、これに基づいて制御Xまたは制御Yを実行するが、操作量生成ノード100または通信経路の故障により、操作量指令値120を受信できない時には、運転者の要求信号200を取り込み、自分自身で操作量指令値を演算するために、制御Zに切り替える。
【0235】
(第3の実施形態)
本発明による車両制御装置の第3の実施形態を、
図22を参照して説明する。
図22は、車両制御装置の、特に、ブレーキ制御とステアリング制御に関係する部分を抜き出して示している。
【0236】
この車両制御装置は、運転者の要求を検出するセンサとして、ステアリングホイール51の回転角度を測定する操舵角センサ41、ブレーキペダル52の踏み込み量を測定するブレーキペダル位置センサ42を備え、操作量生成ノードとして、運転者の要求を検出するセンサの信号から運転者の意図を解釈し、図示していない車両状態を検出するセンサ、例えば加速度センサ、ヨーレートセンサ、車輪速センサからの信号と併せて、車両運動を総合的に制御する車両運動統合制御ECU30を備える。
【0237】
この車両制御装置は、更に、アクチュエータ駆動ノードとして、前輪の操舵力を発生する電動モータM1およびステアリングコラム軸上に取り付けられる可変ギア比(VGR)機構に作用する電動モータM5を制御するSBW・VGRドライバECU81、後輪の操舵力を発生するステアリング電動モータM2を制御するSBWドライバECU82、四輪のブレーキ力を生成するブレーキ電動モータM3A〜M3Dを制御するBBWドライバECU83A〜83Dを備えている。
【0238】
ここで、ドライバのブレーキペダル操作量を計測するセンサとして、ブレーキペダル52を踏むことにより発生する油圧の圧力を測定する油圧センサを用いることも可能である。
【0239】
上記のノードは全てフェールサイレントとなるように構成されている。通信ネットワークは、メインバスN1AおよびバックアップバスN1Bから成り、メインバスN1Aには上記の全てのノードが接続されているのに対して、バックアップバスN1Bには、車両の安全な走行に関わる必要最小限のノード、すなわち、車両運動統合制御ECU30、後輪のSBWドライバECU82以外の全てのノードが接続されている。図示していないが、バックアップバスN1Bに接続されている全てのノードには、少なくとも二重に電源が供給されているものとする。
【0240】
前輪のSBW・VGRドライバECU81、および四輪のBBWドライバECU83A〜83Dは、簡易制御ロジック部811、831を内蔵している。ここで、簡易制御とは、例えば、電動モータトルク指令値をセンサ信号値に単純に比例するようにしたような、比較的処理負荷の少ない制御を意味する。
【0241】
正常時には、前輪のSBW・VGRドライバECU81、後輪のSBWドライバECU82、および四輪のBBWドライバECU83A〜83Dは、車両運動統合制御ECU30からの舵角指令、制動力指令を通信ネットワーク経由で受信して、この指令値に基づいて電動モータを制御する。
【0242】
本実施形態では、ステアリングホイール51は、前輪操舵機構71と機械的に結合されており、ブレーキペダル52は油圧系統でも前輪ブレーキ73と接続されており、電子制御が停止したときは、これらのバックアップ機構を使って、運転者が直接、車両を操舵、制動できるように構成されている。
【0243】
以下に、
図22に示されている車両制御装置を例にとり、本車両制御装置のどこかに故障が発生した場合でも、ブレーキおよびステアリング機能を失陥させることなく、車両を安定に走行させることについて詳述する。
【0244】
なお、ここでは、同時に二つ以上の故障は発生しないものとし、故障が発生した場合には、運転者にその旨を警告し、比較的短い時間で故障部位を修理することにより、第2の故障を未然に防ぐことを前提として説明を行う。
【0245】
(1)車両運動統合制御ECU30が故障した場合
この場合、車両運動統合制御ECU30はメインバスN1Aに故障検出通知を出力する。通信ネットワークを時分割多重アクセス(TDMA)とし、各ノードが予め定められたタイムスロットにおいてネットワークへの出力を行うように構成しておけば、出力がないことをもって、故障検出通知とすることもできる。
【0246】
これは、例えば、
図23に示されているように、通信サイクルをデータ送信サイクルと診断サイクルに分割し、診断サイクルにおいて、全てのノードが何らかのデータを順番に出力することで実現できる。
図23の例では、診断サイクルのノードFのタイムスロットでネットワークへの出力がないことから、他ノードはノードFに故障が発生していることが分かる。
【0247】
前輪のSBW・VGRドライバECU81、後輪のSBWドライバECU82は、車両運動統合制御ECU30からの故障検出通知を受信すると、ネットワークから操舵角センサ41の値を取り込み、簡易制御を実行する。
また、四輪のBBWドライバECU83A〜83Dは、ブレーキペダル位置センサ42の値を取り込み、簡易制御ロジック部813によって簡易制御を実行する。
【0248】
(2)通信ネットワークのうち、メインバスN1Aに故障が発生した場合
この場合には、バックアップバスN1Bを用いて、前輪のSBW・VGRドライバECU81、および四輪のBBWドライバECU83A〜83Dが、車両運動統合制御ECU30が故障した場合と同様に簡易制御を行う。
【0249】
(3)前輪のBBWドライバECU83A、83Bのいずれか、または前輪のブレーキ電動モータM3A、M3Bのいずれかが故障した場合
この場合には、故障した側の前輪ブレーキ電動モータへの給電を停止することで、その車輪はブレーキがかからない状態にし、車両運動統合制御ECU30は、残り三輪で車両を安定に停止するように制御を行う。もしくは、運転者がバックアップ機構を使って、直接車両を停止することもできる。
【0250】
ここで電動モータの故障には、図示していないが、電動モータ制御に必要な電動モータ回転位置センサや電流センサ等の故障を含むものとする。後輪のBBWドライバECU83C、83Dのいずれか、または後輪のブレーキ電動モータM3C、M3Dのいずれかが故障した場合も同様である。
【0251】
(4)前輪のSBW・VGRドライバECU81、または前輪のステアリング電動モータM1(電動モータ制御に必要なセンサを含む)のいずれかが故障した場合
この場合には、前輪ステアリング電動モータM1およびVGR機構54に作用する電動モータM5への給電を停止し、運転者がバックアップ機構を使って、直接車両を操舵する。
【0252】
(5)操舵角センサ41、またはブレーキペダル位置センサ42が故障した場合
この場合には、ステアリング電動モータM1、M2およびVGR機構に作用する電動モータM5、またはブレーキ電動モータM3A〜M3Dへの給電を停止し、運転者がバックアップ機構を使って、直接車両を操舵、または制動する。
【0253】
なお、本実施形態では、単一故障で、操舵と制動ともにバックアップ機構を使う状況は発生しない。
【0254】
以上述べたように、本実施形態の構成によれば、システム全体でエラーをバックアップすることができるため、個々のノードの冗長度を必要以上に上げることなく、バックアップ機構のある車両制御装置においては、全てのノードをフェールサイレントな構成とするだけで、十分に高信頼な車両制御装置を実現することができる。
【0255】
フェールサイレントノードは、故障が発生しても正常動作を継続するように構成したフェールオペラティブノードに比べて、ハードウェア構成が簡単であるため、本発明により、公知例に比べて、低コストな高信頼車両制御装置を提供することができる。
【0256】
さらに、バックアップバスN1Bには、車両の安全な走行に関わる必要最小限のノードのみを接続することにより、通信インタフェースを冗長化する必要のあるノードの数を少なくすることができるので、コストを低減できる。
【0257】
フェールサイレントな操舵角センサ41、またはブレーキペダル位置センサ42の機能構成例を、
図24を参照して説明する。
操舵角センサ41/ブレーキペダル位置センサ42は、二つのセンサエレメント60A、60Bと、各々のセンサエレメント60A、60Bのアナログ出力をデジタル値に変換するA/D変換器61A、61Bと、故障検出機能210と、フィルタ機能63と、通信コントローラ64と、メインバスN1Aに信号を出力するための通信ドライバ65Aと、バックアップバスN1Bに信号を出力するための通信ドライバ65Bから構成されている。
【0258】
故障検出機能210は、A/D変換器61A、61Bによる二つのA/D変換値が予め定められた誤差範囲内で同一であるか否かを判定する一致チェック機能62を備えており、一致しない場合には、通信ドライバ65Aおよび65Bを不活性化し、フェールサイレントとなるようにしている。
【0259】
故障検出機能210は、二つのセンサエレメント60A、60BのA/D変換が同時に実行されるようにするために、A/D変換器61A、61Bにトリガ信号を出力する。
【0260】
本構成例によれば、センサにフィルタ機能63を備えることにより、センサ信号を短い周期でサンプリングしてオーバサンプリングなどのフィルタ処理を施す場合でも、このサンプリング周期に合わせて通信ネットワークにデータを出力する必要がなくなるため、ネットワークのトラフィックを減らすことができる。
【0261】
フェールサイレントな操舵角センサ41、またはブレーキペダル位置センサ42のハードウェア構成例を、
図25を参照して説明する。
【0262】
操舵角センサ41/ブレーキペダル位置センサ42は、メインのセンサエレメント60Aと、リファレンス用のセンサエレメント60Bと、フェールセーフLSI600と、二つの通信ドライバ65A、65Bから構成される。
【0263】
フェールセーフLSI600は、冗長化されたA/D変換器61A、61Bと、CPU66A、66Bと、通信コントローラ64A、66Bと、比較器62A、62Bと、一つのROM、RAM67から構成される。
【0264】
フェールセーフLSI600では、各々のセンサエレメント60A、60Bからの信号をA/D変換した後、A/D変換値をCPU66A、66B間で互いに交換して一致化する。CPU66A、66Bは、各々この一致化後のA/D変換値を用いてフィルタ演算を行う。
【0265】
演算結果の一致チェックは、通信コントローラ64A、64Bの出力を比較器62A、62Bに入力することで行う。
【0266】
本実施形態では、通信バスが2本あるため、通信コントローラ64は2チャネルであり、各チャネルの出力同士を比較器62A、62Bで比較する構成としている。
【0267】
本実施形態においては、フェールセーフ機能を1チップ化することにより、低コストでフェールサイレントなセンサノードを構成することができる。
【0268】
(第4の実施形態)
本発明による車両制御装置の第4の実施形態を、
図26を参照して説明する。なお、
図26において、
図22に対応する部分は、
図22に付した符号と同一の符号を付けて、その説明を省略する。
【0269】
図22に示されている第3の実施形態では、ネットワークに直接センサを接続しているが、第4の実施形態では、HMI・ECU25にセンサ信号を入力し、HMI・ECU25がセンサ値の比較やフィルタ処理を実行してから、ネットワークにセンサデータを出力する構成になっている。
【0270】
この場合、操舵角センサ41Aおよびブレーキペダル位置センサ42Aは、二つのセンサエレメントだけから成る。
【0271】
なお、単一故障で、操舵と制動ともにバックアップ機構を使う状況を発生させないためには、HMI・ECU25をフェールオペラティブに構成する必要がある。
【0272】
(第5の実施形態)
本発明による車両制御装置の第5の実施形態を、
図27を参照して説明する。なお、
図27においても、
図22に対応する部分は、
図22に付した符号と同一の符号を付けて、その説明を省略する。
【0273】
第5の実施形態は、ノード構成およびネットワーク構成については、第3の実施形態と同一であるが、ステアリングコラム(ステアリングホイール51)と操舵力発生機構、およびブレーキペダル52とブレーキ力発生機構の間に、機械的な結合がない車両制御装置である。したがって、第3の実施形態で述べたような機械的なバックアップ機構を使った車両の操舵、制動を期待することはできない。
【0274】
そこで、本実施形態の車両制御装置においては、操舵角センサ41B、ブレーキペダル位置センサ42B、および前輪72R、72LのSBWドライバECU81Aを、故障が発生しても正常動作を継続するフェールオペラティブノードとしている。
そして、さらに、前輪72R、72Lのステアリング電動モータを二重化(M1A、M1B)している。
【0275】
前輪のSBWドライバECU81Aは、図示していないが、二つのフェールサイレントノードから成っており、各々のフェールサイレントノードが、二重化したステアリング電動モータM1A、M1Bを独立に制御する。SBWドライバECU81Aは、簡易制御ロジック部811を含む。
【0276】
ステアリング電動モータM1A、M1Bとして、生成できるトルクが、ステアリングと操舵力発生機構が機械的に結合されているシステムで使用するステアリング電動モータのそれと比較して小さい(ただし、機械的に結合されているシステムと同等のトルクを生成するためには1/2以上の)電動モータを用いれば、電動モータを二重化することによるコストの増加を少なくすることができる。
【0277】
前輪のSBWドライバECU81Aは、さらに、路面からの反力をステアリングコラムに擬似的に生成する機構に作用する電動モータM6を制御する。
【0278】
操舵角センサ41Bおよびブレーキペダル位置センサ42Bは、
図25に示したフェールサイレントなセンサを二重化した構成にする。
図25に示したフェールサイレントなセンサを、センサエレメントを三重化し、三つのセンサ信号の多数決機能を備えることにより、さらに高信頼化したフェールオペラティブなセンサを単一で使用してもよい。
【0279】
前輪のSBWドライバECU81Aの一方のフェールサイレントノードまたはステアリング電動モータM1A、M1Bの一方(電動モータ制御に必要なセンサを含む)が故障した場合、このノードは、故障した側のステアリング電動モータへの給電を停止し、故障検出通知を出力する。
【0280】
車両運動統合制御ECU30は、この故障検出通知を受信すると、残りのステアリング電動モータにより車両を安定に操舵するように制御を切り替える。
【0281】
これ以外の箇所に故障が発生した場合には、ブレーキおよびステアリング機能を失陥させることなく、車両を安定に走行させる方法については、第3の実施形態において説明した通りである。
【0282】
第5の実施形態によれば、システム全体でエラーをバックアップすることができるため、ステアリングとブレーキのバックアップ機構のない車両制御装置においても、必要最小限のフェールオペラティブノードを導入するだけで、十分に高信頼な車両制御装置を低コストで実現することができる。
【0283】
(第6の実施形態)
本発明による車両制御装置の第6の実施形態を、
図28を参照して説明する。なお、
図28において、
図3、
図22に対応する部分は、
図22に付した符号と同一の符号を付けて、その説明を省略する。
【0284】
第6の実施形態は、第3の実施形態の車両制御装置に、駆動系や安全系などのノードを追加し、車両の走行に関わる制御系の全体像を示したものである。本実施形態は、ステアリングとブレーキのバックアップ機構を備えているが、備えない車両制御装置でも同様な構成とすることができる。
【0285】
メインバスN1Aには、第3の実施形態で述べたステアリング制御とブレーキ制御に関係するノードの他に、車両の駆動系を総合的に制御するDBW系統合制御ECU20、ダンピング力を調整するサスペンション電動モータM4A〜M4Dを制御するEASドライバECU84A〜84D、アクセルペダル53の踏み込み量を測定するアクセルペダル位置センサ43、車両の外界の状態を検出するミリ波レーダ/カメラ44、エアバッグの展開を制御するエアバッグECU85が接続されている。
【0286】
前輪のSBW・VGRドライバECU81および四輪のBBWドライバECU83A〜83Dは、簡易制御ロジック部811、831を内蔵している。
【0287】
DBW系統合制御ECU20には、ネットワークN2によって、内燃機関制御ECU21、変速機制御ECU22、電動モータ制御ECU23、バッテリー制御ECU24が接続している。
【0288】
車両運動統合制御ECU30は、ネットワークN3によって、カーナビ等の情報系の機器を制御するネットワークへの入口となる情報系ゲートウェイ35や、ドアロック、ドアミラー、各種メータ等のボディ系の機器を制御するネットワークへの入口となるボディ系ゲートウェイ36と接続されており、これらのノードとデータのやり取りをする。
【0289】
図示していないが、エアバッグECU85も別の一端で、エアバッグ展開制御に必要な各種センサ、アクチュエータを統合する安全系のネットワークにつながっているものとする。
【0290】
本実施例において、車両運動統合制御ECU30は、操舵角センサ41、ブレーキペダル位置センサ42、アクセルペダル位置センサ43からドライバの意図を解釈し、図示していない車両状態を検出するセンサ、例えば加速度センサ、ヨーレートセンサ、車輪速センサからの信号と併せて、最適な車両運動を実現するための舵角、制動力、駆動力などを演算し、前輪のSBW・VGRドライバECU81と、後輪のSBWドライバECU82に舵角指令を送信し、四輪のBBWドライバECU83A〜83Dに制動力指令を送信し、DBW系統合制御ECU20に駆動力指令を送信する。
【0291】
DBW系統合制御ECU20は、駆動力指令を受けて、エネルギ効率などを考慮して、内燃機関、電動モータなど各々の駆動力発生源が発生するべき駆動力を演算し、演算した駆動力指令をネットワークN2を介して、内燃機関制御ECU21、電動モータ制御ECU23などに送信する。
【0292】
車両運動統合制御ECU30は、運転者の要求を検出するセンサの情報だけでなく、車両の外界の状態を検出するミリ波レーダ/カメラ44の情報を用いることにより、先行車への追従走行、レーンキープ走行、危険回避運転等の制御を行うことができる。
【0293】
信頼性に関しては、通信ネットワークのメインバスN1Aにつながるノードはすべてフェールサイレントになるように構成されている。また、バックアップバスN1Bには、第3の実施形態で説明したように、車両の安全な走行に関わる必要最小限のノードのみを接続することにより、通信インタフェースを冗長化する必要のあるノードの数を少なくして、コストを低減している。
【0294】
アクセルペダル位置センサ43は、メインバスN1A、DBW系統合制御ECU20、ネットワークN2のいずれかが故障した場合にも車両を駆動できるように、内燃機関制御ECU21にも直接接続されている。
【0295】
本実施形態におけるエラーバックアップの方法や、それによる効果については、第3の実施形態で述べた通りである。
【0296】
(第7の実施形態)
本発明による車両制御装置の第7の実施形態を、
図29、
図30を参照して説明する。
操作量生成ノード610は、操作量612を生成し、操作量612をアクチュエータ駆動ノード630に送る。
補正量生成ノード620は、補正量622を生成し、補正量622をアクチュエータ駆動ノード630に送る。
【0297】
アクチュエータ駆動ノード630は、
図30に示すように、制御器632、切替器634を有し、補正量生成ノード620が正常な場合には、操作量生成ノード610からの操作量612に、補正量生成ノード620からの補正量622を加えて制御目標値635としてアクチュエータ640を制御する。これに対し、補正量生成ノード620が異常な場合には、操作量生成ノード610からの操作量612を制御目標値635としてアクチュエータ640を制御する。
【0298】
この実施形態では、補正量生成ノード620が正常なときには、補正量によって、より細かな制御が可能になる一方、補正量生成ノード620が故障した場合には、機能を縮退しながらも補正量なしで制御を続行することができる。
【0299】
補正量生成ノード620が正常であるか否かをわかる必要があるため、補正量生成ノード620は、故障検出機能621を備えていることが望ましい。故障検出機能621による故障検出結果623に基づいて、アクチュエータ駆動ノード630の切替器634が切り替え動作する。
【0300】
補正量生成のためには高度な情報処理が必要とされるのに対して、操作量生成は比較的簡単な情報処理で済む。そのため、補正量生成ノード620は、操作量生成ノード610に比べて高い処理性能が要求される結果、部品点数が増えたり、動作周波数(プロセッサのクロック周波数)が高くなったり、電気的、熱的に余裕が少ない動作が要求される。従って、補正量生成ノード620は、操作量生成ノード610に比べて故障率(部品の故障率(fit数)の総和)が高くなる。
【0301】
つまり、補正量生成ノード620は、操作量生成ノード610より処理能力が高いノードとして構成される。例えば、補正量生成ノード620は、操作量生成ノード610より動作周波数が高いコンピュータ(ノード)によって構成される。
【0302】
従って、制御の継続に最低限必要な操作量生成ノード610は、補正量生成ノード620よりも低い故障率が期待できる。つまり、操作量生成ノード610は、補正量生成ノード620よりも故障率が低い構成によるノードになる。
【0303】
さらには、補正量生成ノード620が故障した場合でも操作量生成ノード610は正常である必要があるので、操作量生成ノード610は耐故障機能611を備えていることが望ましい。
【0304】
補正量生成ノード620が備える故障検出機能621としては、種々考えられるが、
図31に示されているように、補正量生成ノード620を2重化してその出力を比較することでも実現できる。
【0305】
この場合、2重化した補正量生成ノード620が出力した補正量622aと622bとをあらかじめ補正量生成ノード620側で比較し、アクチュエータ駆動ノード630には補正量622aと622bの片方及び故障検出結果を伝送する方法と、
図32に示されているように、多重化された補正量生成ノード620が出力した補正量622aと622bをぞれぞれアクチュエータ駆動ノード630に伝送し、アクチュエータ駆動ノード630において比較機能631によって補正量622aと622bを比較して故障検出結果623を得る方法とがある。
【0306】
また、操作量生成ノード610が備える耐故障機能611も種々考えられるが、
図31に示されているように、操作量生成ノード610を3重化してその出力の多数決をとることでも実現できる。
【0307】
この場合、冗長化した操作量生成ノード610が生成した操作量612a、612b、612cをあらかじめ操作量生成ノード610側で多数決を採りアクチュエータ駆動ノード630に伝送する方法と、
図32に示されているように、操作量生成ノード610が生成した操作量612a、612b、612cをそれぞれアクチュエータ駆動ノード630に伝送し、アクチュエータ駆動ノード630が有する多数決機能633で多数決を採る方法とがある。
【0308】
また、
図33に示されているように、アクチュエータ駆動ノード630に、ゲイン可変器636と、ゲイン可変器636のゲインを制御するランプ発生器637とを設け、故障検出結果623をランプ発生器637に入力し、補正量生成ノード620からの補正量622にゲイン可変器636で可変ゲインを乗じた値を、操作量生成ノード610からの操作量612に加えて制御目標値635としてアクチュエータ640を制御する構成としてもよい。この場合、補正量生成ノード620の異常時に、制御目標値635が急激に変化せずに徐々に変化するようになる。
【0309】
本実施形態の動作を
図34に示す。補正量生成ノード620が正常な場合には、ランプ発生器637の出力であるランプ出力637は高位の値となっており、補正量生成ノード620からの補正量622は、ゲイン可変器636で予め定められた高位のゲインを乗じられ、操作量生成ノード610からの操作量612と加算されて制御目標値635としてアクチュエータ640を制御する。
【0310】
これに対し、補正量生成ノード620が異常となった場合には、故障検出結果623が“正常”から“異常”となった時点からランプ出力637は高位の値から低位の値に時間と共に徐々に変化する。
【0311】
この結果、ゲイン可変器636で補正量生成ノード620からの補正量622に乗じられる可変ゲインも高位のゲインから低位のゲインに時間と共に徐々に変化する。その結果、制御目標値635の算出に際して加算される補正量生成ノード620からの補正量622は時間と共に徐々に小さくなる。
【0312】
図34に示されている実施形態では、低位のゲインを0としているが、補正量生成ノード620の故障の重軽に応じて低位のゲインの大小を決定してもよい。また、この実施形態では、ランプ出力637が高位の値から低位の値へ直線的に変化しているが、直線に限らず曲線を含む任意のパターンで変化してもよい。なお、変化のパターンは単調低減であることが望ましい。
【0313】
以上に述べた本実施形態によれば、補正量生成ノード620の異常時に制御目標値635が急激でなく徐々に変化するため、操作者に違和感を感じさせることがない。また切替に伴う制御目標値635の段差の発生もないため、段差に対する操作者の応答遅れに起因する制御性の悪化も避けることができる。
【0314】
また、
図35に示されているように、操作量生成ノード610からの操作量612及び補正量生成ノード620からの補正量622が単一の通信路(通信バス)650を経由してアクチュエータ駆動ノード630に伝送するネットワーク構成とすることもできる。
【0315】
この実施形態によれば、通信路をnode・to・nodeで個別に備えなくとも済むので、省配線に繋がり、その分、システムのコストを下げられる上、軽量化を図ることができる。
【0316】
本実施形態における通信路650を経由して伝送される情報は、
図36に示されているように、送信するノード毎に複数のタイムスロットに時分割されており、操作量612は操作量生成ノード610に割り当てられたタイムスロット614の中で伝送され、補正量622は補正量生成ノード620に割り当てられたタイムスロット624の中で伝送される。
【0317】
ここで先に述べた補正量生成ノード620が出力した補正量622aと622bを別々にアクチュエータ駆動ノード630に伝送する方法では、冗長化した補正量生成ノード620それぞれに個別のタイムスロットを割り当て、それぞれのタイムスロットで補正量622aと622bを伝送する。
【0318】
また、操作量生成ノード610が生成した操作量612a、612b、612cを別々にアクチュエータ駆動ノード630に伝送する方法では、冗長化した操作量生成ノード610それぞれに個別のタイムスロットを割り当て、それぞれのタイムスロットで操作量612a、612b、612cを伝送する。
【0319】
図37はSteer−by−Wireシステムに本実施形態を適用した具体例を示している。
操作量生成ノード610にはステアリングコラム(ステアリングホイール)615が接続され、ステアリングコラム615の操作角度に応じた操舵角度である操作量612が生成され、この操作量612が通信路650を介してアクチュエータ駆動ノード630に伝送される。
【0320】
補正量生成ノード620には加速度センサ・ヨーレートセンサ625が接続され、加速度センサ・ヨーレートセンサ625からの信号や操作量612の情報から補正量622が生成され、この補正量622が通信路650を介してアクチュエータ駆動ノード630に伝送される。
【0321】
アクチュエータ駆動ノード630では、補正量生成ノード620が正常である場合には操作量612に補正量622を加えた値を制御目標値として舵取り装置641を制御する。
【0322】
以上に述べた本実施形態によれば、運転者がステアリングコラム615をきりすぎた場合、補正量622がない場合には前輪がグリップを失ったりして車両の安定性が低下するが、加速度センサ・ヨーレートセンサ625で車両の横滑りやスピンを検出して、補正量生成ノード620で横滑りやスピンを抑えるように補正量622を生成するから、車両の操縦安定性が向上する。
【0323】
図38はBrake−by−Wireシステムに本実施形態を適用した具体例を示している。
操作量生成ノード610にはブレーキペダル616が接続され、ブレーキペダル616の操作に応じたブレーキ踏力である操作量612が生成され、これが通信路650を介してアクチュエータ駆動ノード630−1〜630−4に伝送される。
【0324】
補正量生成ノード620には加速度センサ・ヨーレートセンサ625が接続され、加速度センサ・ヨーレートセンサ625からの信号や操作量612の情報から各ブレーキの補正量622−1〜622−4が生成され、これが通信路650を介してアクチュエータ駆動ノード30に伝送される。
【0325】
アクチュエータ駆動ノード630−i(i=1〜4)では、補正量生成ノード620が正常である場合には操作量612に補正量622−i(i=1〜4)を加えた値を制御目標値として各車輪のブレーキ642−i(i=1〜4)を制御する。
【0326】
以上に述べた本実施形態によれば、運転者がブレーキペダル616を踏みすぎた場合、補正量622−i(i=1〜4)がないと、各車輪がグリップを失ったりして車両の安定性が低下するが、加速度センサ・ヨーレートセンサ625で車両の横滑りやスピンを検出して、補正量生成ノード620で横滑りやスピンを抑えるように補正量622−i(i=1〜4)を生成するから、車両の操縦安定性が向上する。
【0327】
図39はSteer−by−WireとBrake−by−Wireとを統合したシステムに本実施形態を適用した具体例を示している。
【0328】
操作量生成ノード610にはステアリングコラム615とブレーキペダル616が接続され、ステアリングコラム615の操作角度に応じた操舵角度である操作量612−0とブレーキペダル616の操作に応じたブレーキ踏力である操作量612−2が生成され、これらが通信路650を介してアクチュエータ駆動ノード630−0〜630−4に伝送される。
【0329】
アクチュエータ駆動ノード630−0では、補正量生成ノード620が正常である場合には操作量612−0に補正量622−0を加えた値を制御目標値として舵取り装置641を制御する。
【0330】
アクチュエータ駆動ノード630−i(i=1〜4)では、補正量生成ノード620が正常である場合には操作量612−iに補正量622−i(i=1〜4)を加えた値を目標値として各車輪のブレーキ642−i(i=1〜4)を制御する。
【0331】
以上に述べた本実施形態によれば、運転者がステアリングコラム615をきりすぎたり、ブレーキペダル616を踏みすぎた場合、補正量622−i(i=0〜4)がない場合には前輪がグリップを失ったりして車両の安定性が低下するが、加速度センサ・ヨーレートセンサ625で車両の横滑りやスピンを検出して、補正量生成ノード620で横滑りやスピンを抑えるように補正量622−i(i=0〜4)を生成するから、車両の操縦安定性が向上する。
【0332】
(第8の実施形態)
本発明による車両制御装置の第8の実施形態を、
図40を参照して説明する。
本実施形態の車両制御装置は、車両運動に対する運転者の要求を示すアクセルペダル、ブレーキペダル、ハンドルなどの操作量を検出するセンサ500と、車両運動の状態を示す車両速度、加速度、ヨーレート、さらには電波や画像などによって取得した車外の情報などを検出するセンサ550と、駆動、制動、操舵を実現する動力源、ブレーキ、ステアリングの各々に対応する複数のアクチュエータ400と、これらのアクチュエータ400を制御するための目標操作量を生成する操作量生成ノード100と、操作量生成ノード100が生成した目標操作量に基づいてアクチュエータ400を制御する複数のアクチュエータ駆動ノード300を有して構成される。
【0333】
操作量生成ノード100は、図には詳細に示していないが、プログラムを実行する中央演算処理装置(CPU)と、プログラムおよびデータを格納する不揮発性の記憶装置(ROM)および揮発性の記憶装置(RAM)と、センサ500、センサ550、アクチュエータ駆動ノード300と接続するための入出力装置(I/O)とを有し、これらが双方向のバスで接続された一般的なマイクロコンピュータの構成のものであってもよい。
【0334】
操作量生成ノード100は、さらには、アナログ/デジタル変換装置(ADC)を備えて、センサ500、センサ550をADCに接続してもよいし、シリアル通信装置(SCI)を備え、センサ500、センサ550、アクチュエータ駆動ノード300をSCIに接続してもよい。さらには、これらの装置が1つないし複数の半導体集積回路で実現されたものであってもよい。
【0335】
操作量生成ノード100は、センサ500が出力する運転者要求信号200とセンサ550が出力する車両状態信号201に基づいて各アクチュエータ400の目標操作量を演算し、これを操作量指令値120としてネットワークを介してアクチュエータ駆動ノード300に送信する。操作量指令値120は、各々のアクチュエータ400に応じて決まり、アクチュエータ400が動力源であれば目標駆動力、ブレーキであれば各四輪の目標制動力、ステアリングであれば目標舵角となる。
【0336】
アクチュエータ駆動ノード300は、図には詳細に示していないが、プログラムを実行する中央演算処理装置(CPU)と、プログラムおよびデータを格納する不揮発性の記憶装置(ROM)および揮発性の記憶装置(RAM)と、センサ500および操作量生成ノード100と接続するための入出力装置(I/O)を有し、これらが双方向のバスで接続され、さらにアクチュエータを駆動する駆動回路を備えてI/Oに接続した一般的なマイクロコンピュータの構成のものであってもよい。
【0337】
アクチュエータ駆動ノード300は、さらには、アナログ/デジタル変換装置(ADC)を備え、センサ500をADCに接続してもよいし、シリアル通信装置(SCI)を備えて、センサ500ないし操作量生成ノード100をSCIに接続してもよい。さらには、これらの装置が1つないし複数の半導体集積回路で実現されたものであってもよい。
【0338】
アクチュエータ駆動ノード300は、図示はしていないが、アクチュエータ400の駆動力、制動力、舵角のいずれか、あるいはこれらを推定するために必要な情報を検出するセンサを有しており、アクチュエータ400の駆動力、制動力、舵角が操作量生成ノード100から受信した操作量指令値120に一致するようにアクチュエータ400の駆動制御を実行する。
【0339】
また、アクチュエータ駆動ノード300は、センサによって検出したアクチュエータの駆動力、制動力、舵角を操作量生成ノード100に送信する。これにより、操作量生成ノード100は、アクチュエータ400の駆動力、制動力、舵角を参照して各アクチュエータ400の目標操作量を演算することができる。
【0340】
センサ500、操作量生成ノード100、アクチュエータ駆動ノード300は、それぞれ自己の故障を検出する故障検出機能210A、210B、210Cを備えている。
【0341】
故障検出機能210Aによるセンサの故障検出は、センサ500が検出した値が所定の範囲から外れたことを判定することによって実現でき、また、複数のセンサを用いてこれらの検出結果を比較照合または多数決をとることによっても実現できる。
【0342】
故障検出機能210Bによる操作量生成ノード100の故障検出は、ウォッチドグタイマによるCPUのタイムアウト、冗長符号によるROM、RAMおよび双方向バスのビット誤り検出、I/Oの比較照合によって実現でき、また、操作量生成ノード100を複数用いてこれらの出力を比較照合または多数決をとることによっても実現できる。
【0343】
故障検出機能210Cによるアクチュエータ駆動ノード300の故障検出は、ウォッチドグタイマによるCPUのタイムアウト、冗長符号によるROM、RAMおよび双方向バスのビット誤り検出、I/Oの比較照合によって実現でき、また、操作量生成ノードを複数用いてこれらの出力を比較照合または多数決をとることによっても実現できる。
【0344】
さらに、故障検出機能210Cは、アクチュエータ400の駆動力、制動力、舵角の変化量や操作量指令値120との差からアクチュエータ400の故障を検出する機能も備えている。
【0345】
故障検出機能210A、210B、210Cは、自己またはアクチュエータ400の故障を検出した場合には、操作量生成ノード100および他のアクチュエータ駆動ノード300に、自分が故障状態であることを知らせるための故障検出通知230を出力する。
【0346】
センサ500、操作量生成ノード100、アクチュエータ駆動ノード300は、それぞれ、故障状態になった場合には、故障検出通知230を出力するのみで他の出力を停止することが望ましく、さらには、故障検出通知230を正常に出力できない場合には、この故障検出通知230も停止することが望ましい。
【0347】
また、各アクチュエータ駆動ノード300は、自己、他の各アクチュエータ駆動ノード300、操作量生成ノード100の各々の故障検出結果などに基づいて制御プログラム(アクチュエータコント方法)を選択するための、制御プログラム選択機能(制御方法選択手段)220を有している。
【0348】
制御プログラム選択機能220は、通常時には、操作量生成ノード100からの操作量指令値120に基づいてアクチュエータ400を制御する制御プログラムを選択するが、操作量生成ノード100が故障した場合には、センサ500からの運転者要求信号200に基づいてアクチュエータ400を制御する制御プログラムを選択し、自己または他の特定箇所のアクチュエータ駆動ノード300が故障した場合には、アクチュエータ400の制御を安全に停止する制御プログラムを選択する。
【0349】
これにより、操作量生成ノード100やアクチュエータ駆動ノード300が故障した場合でも、正常状態にあるアクチュエータ駆動ノード300によって車両制御を継続することができる。
【0350】
この実施形態による車両制御装置は、
図41に示されているように、操作量生成ノード100とアクチュエータ駆動ノード300とセンサ500を、CAN等によるネットワーク600によって通信可能に接続した構成でもよい。操作量生成ノード100、アクチュエータ駆動ノード300、センサ500は、それぞれ、操作量指令値120、故障検出通知230、運転者要求信号200やその他のメッセージをネットワーク600経由で所望のノードに送信できる。さらに、各々のノードが送信したメッセージを複数のノードが受信することもできる。
【0351】
また、
図42に示されているように、この実施形態による車両制御装置は、センサ550も一つのノードとしてネットワーク600に接続して構成することもできる。これにより、センサ550は、車両状態信号201をネットワーク600経由で所望のノードに送信できる。さらに、センサ550が送信したメッセージを複数のノードが受信することもできる。
【0352】
なお、
図41、
図42に示した車両制御装置においては、ネットワーク600を複数備えて冗長性を持たせることにより、ネットワークの信頼性を高めることができる。
【0353】
図43は、操作量生成ノード100の機能ブロック図である。操作量生成ノード100は、車両制御のための複数の制御プログラムをROMないしRAMに内蔵しており、故障検出機能210Bによって自己の故障を検出した場合や、センサ500、センサ550、アクチュエータ駆動ノード400から故障検出通知230を受信した場合には、故障箇所や故障の程度に応じて、制御プログラムを切り替えるように構成されている。
【0354】
図44は、アクチュエータ駆動ノード300の機能ブロック図である。アクチュエータ駆動ノード300は、操作量生成ノード100から受信した操作量指令値120に基づいてアクチュエータ400の動作目標値を演算するための複数の制御プログラムをROMないしRAMに内蔵している。アクチュエータ駆動ノード300は、操作量生成ノード100が出力する操作量指令値120に基づいてアクチュエータ400を制御する制御プログラムXと、センサ500が出力する運転者要求信号200に基づいてアクチュエータ400を制御する制御プログラムYと、操作量指令値120や運転者要求信号200に関係無くアクチュエータを所定の状態に維持する制御プログラムZを有しており、制御プログラム選択機能220によって自己の故障や他のノードの故障状況に応じて制御プログラムを切り替えることができる。
【0355】
以下に、
図40〜
図44の車両制御装置を例に、本車両制御装置内で故障が発生した場合に車両運動を継続するための基本的な処理について説明する。
【0356】
操作量生成ノード100が故障した場合の基本的な処理について説明する。操作量生成ノード100は、故障検出機能によって自己の故障を検出すると、操作量指令値120の送信を停止すると共に、故障検出通知230を送信する。故障検出通知230を正常に送信できない場合には、操作量生成ノード100は、故障検出通知230の送信も停止する。
【0357】
これにより、ネットワーク600に接続されている各アクチュエータ駆動ノード300は、操作量生成ノード100からの故障検出通知230を受信することにより、操作量生成ノード100が故障したことを検出でき、また、予め定めた時間内に操作量指令値120を受信していないことにより、操作量生成ノード100で何らかの異常が発生したことを検出できる。
【0358】
なお、ネットワーク600を時分割多重アクセス(TDMA)とし、各ノードが予め定められたタイムスロットでメッセージの送信を実行するように構成しておけば、操作量生成ノード100が操作量指令値120を送信するタイムスロットでの受信有無を確認することにより、操作量生成ノード100で何らかの異常が発生したことを検出できる。
【0359】
各アクチュエータ駆動ノード300は、操作量生成ノード100からの故障検出通知230を検出するか、あるいは操作量指令値120の未受信を検出すると、制御プログラムを(X)から(Y)に切り替え、ネットワーク600からセンサ500の運転者要求信号200を取り込んで駆動力、制動力、舵角などの車両運動制御を実行する。
これにより、操作量生成ノード100が故障しても、車両運動制御を継続する。
【0360】
次に、アクチュエータ駆動ノード300またはアクチュエータ400が故障した場合の基本的な処理について説明する。なお、アクチュエータ400の故障には、図示していないアクチュエータ制御に必要な回転位置センサや電流センサ等の故障を含むものとする。
【0361】
四輪のブレーキの各々に設けられたアクチュエータ駆動ノード300またはアクチュエータ400が故障した場合には、アクチュエータ駆動ノード300が、故障検出機能によって自己の故障を検出すると、故障検出通知230を送信すると共に、制御プログラムを(X)から(Z)に切り替えて該当車輪のブレーキ制動を解放する。
【0362】
操作量生成ノード100は、故障検出通知230を受信すると、残りの二輪ないし三輪で制動力を制御する。もしくは、運転者が油圧機構などの機械的なバックアップ機構を使って、直接車両を制動する。
これにより、四輪のブレーキの各々に設けられたアクチュエータ駆動ノード300またはアクチュエータ400が故障しても、車両運動制御を継続することができる。
【0363】
ステアリングに設けられたアクチュエータ駆動ノード300またはアクチュエータ400が故障した場合には、アクチュエータ駆動ノード300が、故障検出機能210Cによって自己の故障を検出すると、故障検出通知230を送信すると共に、制御プログラムを(X)から(Z)に切り替えて舵角制御を停止する。
【0364】
そして、運転者がステアリングコラムなどの機械的なバックアップ機構を使って直接車両操舵を制御する。機械的なバックアップ機構がない場合には、ステアリング用のアクチュエータ駆動ノード300とアクチュエータ400を複数設けておき、少なくとも1つのアクチュエータ駆動ノード300とアクチュエータ400で舵角を制御する。
これにより、ステアリングに設けられたアクチュエータ駆動ノード300またはアクチュエータ400が故障しても、車両運動制御を継続することができる。
【0365】
駆動力用に設けられたアクチュエータ駆動ノード300またはアクチュエータ400が故障した場合には、アクチュエータ駆動ノード300が、故障検出機能によって自己の故障を検出すると、故障検出通知230を送信すると共に、制御プログラムを(X)から(Z)に切り替えて駆動制御を停止する。
これにより、駆動力用に設けられたアクチュエータ駆動ノード300またはアクチュエータ400が故障しても、車両を安全に停止することができる。
【0366】
ブレーキペダル用のセンサ500が故障した場合には、全車輪のブレーキの制動を解放し、運転者が油圧機構などの機械的なバックアップ機構を使って直接車両を制動する。機械的なバックアップ機構がない場合には、ブレーキペダル用のセンサ500を複数設けて、少なくとも1つのセンサ500で運転者の要求を検出できるようにする。
これにより、ブレーキペダル用のセンサ500が故障しても、車両運動制御を継続することができる。
【0367】
ハンドル用のセンサ500が故障した場合には、ステアリング制御を停止し、運転者がステアリングコラムなどの機械的なバックアップ機構を使って直接車両を操舵する。機械的なバックアップ機構がない場合には、ブレーキペダル用のセンサ500を複数設けて、少なくとも1つのセンサ500で運転者の要求を検出できるようにする。
これにより、ハンドル用のセンサ500が故障しても、車両運動制御を継続することができる。
【0368】
アクセルペダル用のセンサ500が故障したには場合、駆動力制御を停止し、車両を安全に停止させる。あるいは、ブレーキペダル用のセンサ500を複数設けて、少なくとも1つのセンサ500で運転者の要求を検出できるようにする。
これにより、車両運動制御を継続することができる。
【0369】
センサ550が故障した場合には、操作量生成ノード100は、正常に取得した車両状態情報201と、センサ500から取得した運転者要求信号200に基づいて車両運動を継続する。
【0370】
以上説明したように、本実施形態によれば、操作量生成ノード100とアクチュエータ駆動ノード300が相互にバックアップするため、冗長なバックアップ装置を付加する必要がない。
しかしながら、操作量生成ノード100が故障した場合には、アクチュエータ駆動ノード300が各々独立に制御を実行する。
【0371】
このため、アクチュエータ駆動ノード300が等しく操作量生成ノード100の故障を検出する必要があり、また、車両運動統合制御ECU30に加えて一部のアクチュエータ駆動ノード300が故障した場合でも、残りのアクチュエータ駆動ノード300によって安全に車両を制御する必要がある。特に、ブレーキは左右の制動力に差が生じた場合、片効きの状態となり、車両が制動中にスピンしてしまう。
【0372】
このような危険な状態を回避するための操作量生成ノード100およびアクチュエータ駆動ノード300の動作例を、
図45〜
図57を用いて詳細に説明する。ここでは、ブレーキを例に各々の動作を説明する。
【0373】
操作量生成ノード100は、一定の制御周期(A)で制動制御の処理を繰り返し実行する。この制御周期は車両制動制御の必要精度によって決まる。一方、各アクチュエータ駆動ノード300は、後述するように、操作量生成ノード100の制御周期(A)に比べてさらに短い制御周期(B)でアクチュエータ400の制動力制御を繰り返し実行する。これは、アクチュエータ400の電流フィードバック制御に高い精度が要求されるためである。
【0374】
したがって、操作量生成ノード100が制御周期(A)で一連の処理を実行している間、各アクチュエータ駆動ノード300は最新の操作量指令値120に基づいて制御周期(B)で繰り返し制動力制御を実行しており、操作量生成ノード100との通信処理などで制動力制御を中断することはない。
【0375】
図45は、アクチュエータ駆動ノード300の動作を示すタイムチャートである。横軸は左から右に向かって時間の経過を示している。各アクチュエータ駆動ノード300は、制御周期(B)で以下の処理を繰り返し実行する。
【0376】
先ず、アクチュエータ駆動ノード300は、操作量生成ノード100から操作量指令値120または故障検出通知230を、センサ500から運転者要求信号200を受信したかどうかを確認する(指令値、故障検出通知受信確認B1)。これらは、制御周期(A)の間隔で送信されるため、制御周期(A)の時間を計測するタイマを用いて操作量指令値120、運転者要求信号200の受信を確認することができる。あるいは、これらを時分割多重アクセス(TDMA)型のネットワークを用いて予め定めたタイムスロットで送受することにより受信を確認することもできる。
【0377】
次に、アクチュエータ駆動ノード300は、前回の制御周期の最後に検出したアクチュエータ400の制動力と、故障検出機能210Cによる診断結果を操作量生成ノード100や他のアクチュエータ駆動ノード300に送信する(応答メッセージ送信B2)。この時、(指令値、故障検出通知受信確認B1)で操作量指令値120を受信していない場合には、操作量指令値未受信を、故障検出通知230を受信した場合には、故障検出通知受信もあわせて通知する。これらは1つの応答メッセージとしてまとめて送信する。
【0378】
次に、アクチュエータ駆動ノード300は、操作量指令値120の受信有無、故障検出通知230の受信有無、アクチュエータ400および自己の故障有無、および他のアクチュエータ駆動ノード300からの応答メッセージの有無とその内容に基づいて制御プログラムを選択する(制御プログラム選択B3)。制御プログラムは、操作量指令値120に基づいて制動力制御を実行する制御プログラム(X)と、運転者要求信号200に基づいて制動力制御を実行する制御プログラム(Y)と、操作量指令値120および運転者要求信号200のいずれにも関わりなくブレーキを解放する制御プログラム(Z)があり、この中から1つを選択する。
【0379】
この制御プログラムの選択ルーチン(B3)を、
図46のフローチャートを参照して説明する。
【0380】
先ず、自己のアクチュエータ駆動ノード300またはアクチュエータ400の異常発生を、以下の条件で判定する(ステップS1610)。
【0381】
条件1:自己およびアクチュエータの診断の結果、故障を検出。
条件2:操作量生成ノード100から故障検出通知230を受信した時に、他の2つ以上のアクチュエータ駆動ノード300が故障検出通知230を受信していないと応答。
条件3:操作量生成ノード100から故障検出通知230を受信しなかった時に、他の2つ以上のアクチュエータ駆動ノード300が故障検出通知230を受信したと応答。
条件4:操作量生成ノード100から操作量指令値120を受信した時に、他の2つ以上のアクチュエータ駆動ノード300が操作量指令値120を受信しなかったと応答。
条件5:操作量生成ノード100から操作量指令値120を受信しなかった時に、他の2つ以上のアクチュエータ駆動ノード300が操作量指令値120を受信したと応答。
【0382】
以上の条件1から条件5のうち、少なくとも1つが成立した場合、自己異常と判断し、制御プログラム(Z)を選択してブレーキを解放する(ステップS1680)。
【0383】
次に、操作量生成ノード100の異常発生を、以下の条件で判定する(ステップS1620)。
【0384】
条件6:操作量生成ノード100から故障検出通知230を受信し、かつ、他の2つ以上の操作量生成ノード100も故障検出通知230を受信したと応答。
条件7:操作量生成ノード100から操作量指令値120を受信せず、かつ、他の2つ以上の操作量生成ノード100も操作量指令値120を受信していないと応答。
【0385】
上記の条件6、条件7のいずれの条件も成立しなかった場合には、操作量生成ノード100は正常と判断し、制御プログラム(X)を選択し(ステップS1660)、操作量指令値120に基づいて制動力制御を実行する。
【0386】
一方、条件6、条件7のうち、少なくとも1つが成立した場合には、操作量生成ノード100は異常と判断し、他のアクチュエータ駆動ノード300またはアクチュエータ400の異常発生を、以下の条件で判定する(ステップS1630)。
【0387】
条件8:他のアクチュエータ駆動ノード300が故障を通知。
条件9:他の1つのアクチュエータ駆動ノード300が応答メッセージを送信しない。
条件10:操作量生成ノード100から故障検出通知230を受信した時に、他の1つのアクチュエータ駆動ノード300だけが故障検出通知230を受信していないと応答。
条件11:操作量生成ノード100から故障検出通知230を受信しなかった時に、他の1つのアクチュエータ駆動ノード300だけが故障検出通知230を受信したと応答。
条件12:操作量生成ノード100から操作量指令値120を受信した時に、他の1つのアクチュエータ駆動ノード300だけが操作量指令値120を受信しなかったと応答。
条件13:操作量生成ノード100から操作量指令値120を受信しなかった時に、他の1つのアクチュエータ駆動ノード300だけが操作量指令値120を受信したと応答。
【0388】
上記の条件8から条件13のいずれの条件も成立しなかった場合には、他のアクチュエータ駆動ノード300およびアクチュエータ400は正常と判断し、制御プログラム(Y)を選択し(ステップS1670)、運転者要求信号200に基づいて制動力制御を実行する。
【0389】
一方、条件8から条件13のうち、少なくとも1つが成立した場合には、他のアクチュエータ駆動ノード300またはアクチュエータ400が異常と判断し、ブレーキの片効きを回避するために、後述する制御プログラム選択テーブルを参照し(ステップS1640)、制御プログラム(Y)または(Z)のいずれかを選択する(ステップS1650)。
【0390】
以上説明したように、アクチュエータ駆動ノード300は、条件1から条件13に基づいて自己のアクチュエータ駆動ノード300またはアクチュエータ400の異常、操作量生成ノード100異常、他のアクチュエータ駆動ノード300またはアクチュエータ400の異常を判定し、制御プログラムを選択する。
【0391】
なお、上記の条件は、車両システムの形態や各々の構成要素の形態によって異なるため、それらに応じた条件を用いてもよい。
【0392】
また、操作量生成ノード100からの操作量指令値120や故障検出通知230などの未受信は、直ちに異常と判断するのではなく、2回以上未受信となった時に異常と判断してもよい。この場合、未受信回数を各アクチュエータ駆動ノード300間で交換し、多数決を採るなどして未受信回数を一致させてもよい。
【0393】
図47(a)、(b)は、制御プログラム選択テーブルを示している。
テーブル(a)は、四輪のブレーキのうち、他のアクチュエータ駆動ノード300またはアクチュエータ400が異常である場合に、前二輪または後二輪のいずれかのブレーキで車両を制動するように制御プログラムを選択するものである。
【0394】
一方、テーブル(b)は、四輪のブレーキのうち、他のアクチュエータ駆動ノード300またはアクチュエータ400が異常である場合に、対角線上にある前一輪と後一輪のブレーキで車両を制動するように制御プログラムを選択するものである。
【0395】
なお、これらのテーブルでは、前二輪または後二輪、あるいは対角線上にある前一輪と後一輪のいずれかのブレーキで車両を制動できない場合には、全アクチュエータ400による制動を解放して運転者が油圧機構を介して車両を制動することを前提としている。
【0396】
もちろん、このような場合でも、残りの正常なアクチュエータ400によって車両制動を実行してもよい。
【0397】
また、油圧機構によるバックアップが無い場合には、前二輪または後二輪、あるいは対角線上にある前一輪と後一輪のいずれかのブレーキで車両を制動できない場合でも、残りの正常なアクチュエータ400によって車両制動を実行する必要がある。これら場合には内燃機関の回転数を制御して車両の速度を下げることにより、ブレーキの片効きによる影響を抑えるようにすることが望ましい。
【0398】
制御プログラム選択が完了すると、
図45を用いた説明に戻り、制動力の演算を行ってブレーキ制御を実行し(B4)、その後、実際の制動力の取り込みと故障情報収集を行う(B5)。
【0399】
図48は、ブレーキ制御の開始時期における操作量生成ノード100およびアクチュエータ駆動ノード300の動作を示すタイムチャートである。横軸は左から右に向かって時間の経過を示している。
【0400】
先ず、操作量生成ノード100は、運転者によるブレーキペダルの踏み込みを検出すると、四輪のアクチュエータ駆動ノード300に制動開始通知を送信する(1810)。
【0401】
各アクチュエータ駆動ノード300は、制動開始通知を受信すると、故障検出機能210Cを用いて自己の故障診断およびアクチュエータ400の故障診断を実行し(1820)、診断結果を応答メッセージによって操作量生成ノード100に送信する(1830)。なお、各アクチュエータ駆動ノード300は、他の診断結果を互いに受信する。
【0402】
操作量生成ノード100は、各アクチュエータ駆動ノード300の診断結果を受信して、故障ノードの有無および故障ノードの位置に応じて制動制御すべき車輪を選択する(1840)。なお、アクチュエータ駆動ノード300が診断結果を送信しなかった場合には、該当するノードは故障しているものとみなす。あるいは、制動開始通知を再度送信してアクチュエータ駆動ノード300からの診断結果送信を1回ないし複数回試みてもよい。
【0403】
操作量生成ノード100は、制動制御すべき車輪に対する目標操作量を演算し(1850)、対象となるアクチュエータ駆動ノード300に操作量指令値120を送信する(1860)。
【0404】
各アクチュエータ駆動ノード300は、操作量指令値120を受信すると制動力制御の目標値を更新してアクチュエータ400の制動力制御を実行する(1870)。
【0405】
また、各アクチュエータ駆動ノード300は、一定の周期でアクチュエータ400の制動力の検出と故障検出機能210Cによる定期的な診断結果を応答メッセージによって操作量生成ノード100に送信する(1880)。この時も、各アクチュエータ駆動ノード300は他の診断結果を互いに受信する。
【0406】
図49は、ブレーキ制御中における操作量生成ノード100およびアクチュエータ駆動ノード300の動作を示すタイムチャートである。横軸は左から右に向かって時間の経過を示している。
【0407】
操作量生成ノード100は、制御周期(A)毎に以下の処理を実行する。
先ず、操作量生成ノード100は、各アクチュエータ駆動ノード300からの応答メッセージを受信し(1910)、応答メッセージに含まれている各アクチュエータ駆動ノード300の故障診断結果を参照して、各アクチュエータ駆動ノード300およびアクチュエータ400の異常の有無および異常箇所を確認し、制動制御すべき各アクチュエータ駆動ノード300を選択する(1920)。
【0408】
次に、操作量生成ノード100は、制動制御すべき車輪に対する目標値操作量を演算し(1930)、対象となるアクチュエータ駆動ノード300に操作量指令値120を送信する(1940)。
【0409】
なお、
図49では、操作量生成ノード100が運転者によるブレーキペダルの踏み込みを検出して四輪のアクチュエータ駆動ノード300に制動開始通知を送信することによってブレーキ制御を開始しているが、運転者によるブレーキペダルの踏み込みの有無を運転者の要求量の差異とすれば、運転者によるブレーキペダルの踏み込みの有無に関係なく、操作量生成ノード100が常に
図49に示したように制御周期(A)で一連の処理を繰り返し実行することができる。
【0410】
図50は、制動制御を実行する車輪を選択するためのフローチャートである。
先ず、操作量生成ノード100は、自己の異常発生を、以下の条件で判定する(ステップS2010)。
【0411】
条件1:自己の故障検出機能210Bによる診断の結果、故障を検出。
条件2:3つ以上のアクチュエータ駆動ノード300からの応答メッセージを受信していない。
【0412】
上記の条件1、条件2のうち、少なくとも1つが成立した場合には、操作量生成ノード100は異常と判断し、アクチュエータ駆動ノード300に故障検出通知230を送信すると共に(ステップS2040)、操作量指令値120の送信を停止する(ステップS2050)。
【0413】
一方、条件1、条件2のいずれの条件も成立しなかった場合には、操作量生成ノード100は正常と判断し、アクチュエータ駆動ノード300またはアクチュエータ400の異常発生を、以下の条件で判定する(ステップS2020)。
【0414】
条件3:アクチュエータ駆動ノード300から故障検出通知を受信。
条件4:2つ以下のアクチュエータ駆動ノード300からの応答メッセージを受信していない。
【0415】
上記の条件3および条件4のいずれの条件も成立しなかった場合には、全てのアクチュエータ駆動ノード300およびアクチュエータ400は正常と判断し、四輪全ての制動力制御を実行する(ステップS2070)。
【0416】
これに対し、条件3または条件4のうち、いずれか1つが成立した場合、アクチュエータ駆動ノード300またはアクチュエータ400が異常と判断し、ブレーキの片効きを回避するために、後述する制動車輪選択テーブルを参照し(2030)、選択した車輪による制動力制御を実行する(ステップS2060)。
【0417】
以上、説明したように、操作量生成ノード100は、条件1から条件4に基づいて自己の異常、アクチュエータ駆動ノード300またはアクチュエータ400の異常を判定し、自己が正常であれば、正常なアクチュエータ駆動ノード300を用いてブレーキの片効きを回避するよう制動制御を実行し、自己が異常であれば、自ら制動制御を停止し、アクチュエータ駆動ノード300による自律的な制動制御に移行させる。
【0418】
なお、上記の条件は、車両システムの形態や各々の構成要素の形態によって異なるため、それらに応じた条件を用いてもよい。また、アクチュエータ駆動ノード300からの応答メッセージの未受信は、直ちに異常と判断するのではなく、2回以上未受信となった時に異常と判断してもよい。
【0419】
図51(a)、(b)は、制動車輪選択テーブルを示している。
テーブル(a)は、四輪のブレーキのうち、アクチュエータ駆動ノード300またはアクチュエータ400が異常である場合に、前二輪または後二輪のいずれかのブレーキで車両を制動するように制動車輪を選択するものである。
【0420】
テーブル(b)は、四輪のブレーキのうち、他のアクチュエータ駆動ノード300またはアクチュエータ400が異常である場合に、対角線上にある前一輪と後一輪のブレーキで車両を制動するように制動車輪を選択するものである。
【0421】
なお、これらのテーブルに示していないが、前二輪または後二輪、あるいは対角線上にある前一輪と後一輪のいずれかのブレーキで車両を制動できない場合には、操作量生成ノード100は、全アクチュエータ400の制動を解放するよう操作量指令120を演算し、運転者が油圧を介して車両を制動することを前提としている。
【0422】
もちろん、このような場合でも、残りの正常なアクチュエータ400によって車両制動を実行するよう操作量指令120を演算してもよい。
【0423】
また、油圧によるバックアップ機構が無い場合には、前二輪または後二輪、あるいは対角線上にある前一輪と後一輪のいずれかのブレーキで車両を制動できない場合でも、残りの正常なアクチュエータ400によって車両制動を実行する必要がある。これら場合には内燃機関の回転数を制御して車両の速度を下げることにより、ブレーキの片効きによる影響を抑えるようにすることが望ましい。
【0424】
図52は、ブレーキ制御の開始時期において、左後輪のアクチュエータ駆動ノード300またはアクチュエータ400が故障した場合の操作量生成ノード100およびアクチュエータ駆動ノード300の動作を示すタイムチャートである。横軸は左から右に向かって時間の経過を示している。
【0425】
なお、本タイムチャートでは、操作量生成ノード100は、
図51に示した制動車輪選択テーブル(a)に基づいて制動力制御を実行する車輪を選択するものとしている。
【0426】
先ず、操作量生成ノード100は、運転者によるブレーキペダルの踏み込みを検出すると、四輪のアクチュエータ駆動ノード300に制動開始通知を送信する(2210)。
【0427】
各アクチュエータ駆動ノード300は、制動開始通知を受信すると、故障検出機能210Cを用いて自己の故障診断およびアクチュエータ400の故障診断を実行し(2220)、診断結果を応答メッセージによって操作量生成ノード100に送信する(2230)。この時、左後輪のアクチュエータ駆動ノード300は、故障を検出したことを応答メッセージによって操作量生成ノード100に報せる。なお、各アクチュエータ駆動ノード300は他の診断結果を互いに受信する。
【0428】
操作量生成ノード100は、各アクチュエータ駆動ノード300の診断結果を受信して、左後輪のアクチュエータ駆動ノード300が故障したことを検出し、前二輪で制動制御を実行するよう車輪を選択する(2240)。
【0429】
操作量生成ノード100は、前二輪に対する目標操作量を演算し(2250)、前二輪のアクチュエータ駆動ノード300に操作量指令値120を送信すると共に、後二輪のアクチュエータ駆動ノード300に対しては制動力を解放する操作量指令値120を送信する(2260)。
【0430】
前二輪のアクチュエータ駆動ノード300は、操作量指令値120を受信すると、制動力制御の目標値を更新してアクチュエータ400の制動力制御を実行する。また、右後輪のアクチュエータ駆動ノード300は、操作量指令値120を受信すると制動力制御の目標値を更新してアクチュエータ400の制動力制御を実行するが、操作量指令値120が制動力を解放する値であるため、実際には制動力を発生しない。
【0431】
一方、左後輪のアクチュエータ駆動ノード300は、自己の故障を検出した結果、制御プログラム(Z)を選択するため、制動力を発生しない(2270)。
【0432】
図53は、ブレーキ制御中において左後輪のアクチュエータ駆動ノード300またはアクチュエータ400が故障した場合の操作量生成ノード100およびアクチュエータ駆動ノード300の動作を示すタイムチャートである。横軸は左から右に向かって時間の経過を示している。
【0433】
なお、本タイムチャートでは、操作量生成ノード100は、
図51に示した制動車輪選択テーブル(a)に基づいて制動力制御を実行する車輪を選択するものとしている。
【0434】
先ず、操作量生成ノード100は、各アクチュエータ駆動ノード300からの応答メッセージを受信し、応答メッセージに含まれている各アクチュエータ駆動ノード300の故障診断結果から、左後輪のアクチュエータ駆動ノード300が故障したことを検出し(2310)、前二輪で制動制御を実行するよう車輪を選択する(2320)。
【0435】
次に、操作量生成ノード100は、制動制御すべき車輪に対する目標操作量を演算し(2330)、前二輪のアクチュエータ駆動ノード300に操作量指令値120を送信すると共に、後二輪のアクチュエータ駆動ノード300に対しては制動力を解放する操作量指令値120を送信する(2240)。
【0436】
前二輪のアクチュエータ駆動ノード300は、操作量指令値120を受信すると、制動力制御の目標値を更新してアクチュエータ400の制動力制御を実行する。また、右後輪のアクチュエータ駆動ノード300は、操作量指令値120を受信すると、制動力制御の目標値を更新してアクチュエータ400の制動力制御を実行するが、操作量指令値120が制動力を解放する値であるため、実際には制動力を発生しない。
【0437】
一方、左後輪のアクチュエータ駆動ノード300は、自己の故障を検出した結果、制御プログラム(Z)を選択するため制動力を発生しない(2270)。
【0438】
以上、
図52および
図53を用いて説明したように、いずれかのアクチュエータ駆動ノード300またはアクチュエータ400が故障した場合でも、操作量生成ノード100が正常な前二輪または後二輪のアクチュエータ駆動ノード300を用いて車両を制動するよう、操作量指令値120を生成するので、ブレーキの片効きを回避することができる。
【0439】
図54は、ブレーキ制御中において一時的に故障していた左後輪のアクチュエータ駆動ノード300またはアクチュエータ400が回復した場合の操作量生成ノード100およびアクチュエータ駆動ノード300の動作を示すタイムチャートである。横軸は左から右に向かって時間の経過を示している。
【0440】
なお、本タイムチャートでは、操作量生成ノード100は、
図51に示した制動車輪選択テーブル(a)に基づいて制動力制御を実行する車輪を選択するものとしている。
【0441】
操作量生成ノード100は、左後輪のアクチュエータ駆動ノード300が故障しているため、前二輪で制動制御を実行するよう車輪を選択し、前二輪のアクチュエータ駆動ノード300に操作量指令値120を送信すると共に、後二輪のアクチュエータ駆動ノード300に対しては制動力を解放する操作量指令値120を送信している(2410)。
【0442】
各アクチュエータ駆動ノード300は、故障検出機能210Cを用いて自己の故障診断およびアクチュエータ400の故障診断を実行し、診断結果を応答メッセージによって操作量生成ノード100に送信する(2420)。この時、左後輪のアクチュエータ駆動ノード300は故障が回復すると、制御プログラムを(Z)から(X)に切り替え、制動力を解放する操作量指令値120に基づいて制動力を解放状態に維持すると共に、故障が回復したことを応答メッセージによって操作量生成ノード100に報せる。なお、各アクチュエータ駆動ノード300は他の診断結果を互いに受信する。
【0443】
操作量生成ノード100は、各アクチュエータ駆動ノード300の診断結果を受信して、左後輪のアクチュエータ駆動ノード300の故障が回復したことを検出し、四輪で制動制御を実行するよう車輪を選択する(2430)。
【0444】
操作量生成ノード100は、四輪に対する目標操作量を演算し(2440)、四輪のアクチュエータ駆動ノード300に操作量指令値120を送信する(2450)。
【0445】
前二輪のアクチュエータ駆動ノード300は、操作量指令値120を受信すると、制動力制御の目標値を更新してアクチュエータ400の制動力制御を実行する。また、右後輪のアクチュエータ駆動ノード300も、新たな操作量指令値120を受信すると、制動力制御の目標値を更新してアクチュエータ400の制動力制御を実行する。さらに、左後輪のアクチュエータ駆動ノード300も、新たな操作量指令値120を受信すると、制動力制御の目標値を更新してアクチュエータ400の制動力制御を実行する。
【0446】
以上、
図54を用いて説明したように、一時的に故障していたアクチュエータ駆動ノード300またはアクチュエータ400が回復した場合でも、操作量生成ノード100がアクチュエータ駆動ノード300またはアクチュエータ400の正常/異常に応じて操作量指令値120を生成するので、ブレーキの片効きを発生することなく正常な制御状態に復帰できる。
【0447】
図55は、ブレーキ制御中において操作量生成ノード100が故障した場合のアクチュエータ駆動ノード300の動作を示すタイムチャートである。横軸は左から右に向かって時間の経過を示している。
【0448】
なお、本タイムチャートでは、アクチュエータ駆動ノード300は、
図47に示した制御プログラム選択テーブル(a)に基づいて制御プログラムを選択するものとしている。
【0449】
操作量生成ノード100は、故障検出機能210Bによって故障を検出すると、操作量指令値120の送信を停止して、故障検出通知230を送信する(2510)。
【0450】
各アクチュエータ駆動ノード300は、故障検出通知230を受信すると、応答メッセージを送信して相互に故障検出通知230の受信を確認し、操作量生成ノード100が異常であると判断する(2520)。
【0451】
各アクチュエータ駆動ノード300は、操作量生成ノード100が異常であると判断すると、制御プログラム(X)を制御プログラム(Y)に切り替え、運転者要求信号200に基づいて制動力制御を実行する。
【0452】
以上、
図55を用いて説明したように、操作量生成ノード100が故障した場合でも、各アクチュエータ駆動ノード300が相互に操作量生成ノード100の故障発生を確認し、全体で制御プログラムを切り替えて運転者要求信号200を用いて車両を制動するので、車両の制動制御を維持することができる。
【0453】
図56は、ブレーキ制御中において一時的に故障していた操作量生成ノード100が回復した場合の操作量生成ノード100およびアクチュエータ駆動ノード300の動作を示すタイムチャートである。横軸は左から右に向かって時間の経過を示している。
【0454】
なお、本タイムチャートでは、アクチュエータ駆動ノード300は、
図47に示した制御プログラム選択テーブル(a)に基づいて制御プログラムを選択するものとしている。
【0455】
各アクチュエータ駆動ノード300は、操作量生成ノード100が故障しているため、制御プログラム(Y)を用いて、運転者要求信号200に基づいて制動力制御を実行している。
【0456】
操作量生成ノード100は、故障が回復すると、各アクチュエータ駆動ノード300からの応答メッセージを受信し(2610)、応答メッセージに含まれている各アクチュエータ駆動ノード300の故障診断結果を参照して各アクチュエータ駆動ノード300およびアクチュエータ400の異常の有無および異常箇所を確認し、制動制御すべき各アクチュエータ駆動ノード300を選択する(2620)。
【0457】
次に、操作量生成ノード100は、制動制御すべき車輪に対する目標値操作量を演算し(2630)、対象となるアクチュエータ駆動ノード300に操作量指令値120を送信する(2640)。なお、操作量生成ノード100は、故障が回復したことをアクチュエータ駆動ノード300に知らしめるために、故障回復通知を合わせて送信してもよい。
【0458】
各アクチュエータ駆動ノード300は、操作量指令値120を受信すると、応答メッセージを送信して相互に操作量指令値120の受信を確認し、操作量生成ノード100が正常であると判断する(2650)。この時、故障回復通知の受信をもって操作量生成ノード100が正常であるかどうかを判断するようにしてもよい。
【0459】
各アクチュエータ駆動ノード300は、操作量生成ノード100が正常であると判断すると、制御プログラム(Y)を制御プログラム(X)に切り替えて、操作量指令値120に基づいて制動力制御を実行する。
【0460】
以上、
図56を用いて説明したように、一時的に故障していた操作量生成ノード100が回復した場合でも、各アクチュエータ駆動ノード300が操作量生成ノード100の正常/異常に応じて制御プログラムを切り替えるので、ブレーキの片効きを発生することなく正常な制御状態に復帰できる。
【0461】
図57は、ブレーキ制御中において操作量生成ノード100と、左後輪のアクチュエータ駆動ノード300またはアクチュエータ400が故障した場合のアクチュエータ駆動ノード300の動作を示すタイムチャートである。横軸は左から右に向かって時間の経過を示している。
【0462】
なお、本タイムチャートでは、アクチュエータ駆動ノード300は、
図47に示した制御プログラム選択テーブル(a)に基づいて制御プログラムを選択するものとしている。
【0463】
操作量生成ノード100は、故障検出機能210Bによって故障を検出すると、操作量指令値120の送信を停止し、故障検出通知230を送信する(2510)。一方、左後輪のアクチュエータ駆動ノード300は、故障検出機能210Bによって故障を検出すると、制御プログラム(X)を制御プログラム(Z)に切り替える。
【0464】
各アクチュエータ駆動ノード300は、故障検出通知230を受信すると、応答メッセージを送信して相互に故障検出通知230の受信を確認する。この時、故障した左後輪のアクチュエータ駆動ノード300は、応答メッセージを用いて故障を検出したことを他のアクチュエータ駆動ノード300に報せる(2720)。
【0465】
これにより、他のアクチュエータ駆動ノード300は、操作量生成ノード100および左後輪のアクチュエータ駆動ノード300が異常であると判断し、制御プログラム選択テーブル(a)に基づいて制御プログラムを選択する。
【0466】
左右前輪のアクチュエータ駆動ノード300は、制御プログラム(X)を制御プログラム(Y)に切り替えて、運転者要求信号200に基づいて制動力制御を実行する。また、右後輪のアクチュエータ駆動ノード300は制御プログラム(X)を制御プログラム(Z)に切り替えて制動力を解放する。
【0467】
以上、
図57を用いて説明したように、操作量生成ノード100およびアクチュエータ駆動ノード300が故障した場合でも、各アクチュエータ駆動ノード300が相互に操作量生成ノード100およびアクチュエータ駆動ノード300の故障発生を確認し、故障した各アクチュエータ駆動ノード300の箇所に応じて制御プログラムを切り替え、運転者要求信号200を用いた制動力制御または制動力の解放を適切に実行するので、ブレーキの片効きを回避しながら車両の制動制御を維持することができる。
【0468】
以上の説明では、ブレーキを例に操作量生成ノード100およびアクチュエータ駆動ノード300の動作を説明したが、本発明はステアリングにも同様に適用できる。
【0469】
舵角制御用のアクチュエータ駆動ノード300またはアクチュエータ400の故障が発生した場合には、舵角制御用のアクチュエータ駆動ノード300は、故障検出通知を操作量生成ノード100および他のアクチュエータ駆動ノード300に送信する。
【0470】
そして、操作量生成ノード100は、舵角制御用のアクチュエータ駆動ノード300からの故障検出通知を受信すると、舵角制御用のアクチュエータ駆動ノード300およびアクチュエータ400が多重化されていれば、正常な舵角制御用のアクチュエータ駆動ノード300に操作量指令値120を送信して操舵制御を継続することができる。もしくは、ブレーキの右車輪と左車輪の制動力差により車両の回転運動を生じさせるよう、制動制御用のアクチュエータ駆動ノード300に操作量指令値120を送信して操舵制御を継続することもできる。
【0471】
一方、操作量生成ノード100の故障が発生した場合には、操作量生成ノード100は、故障検出通知を各アクチュエータ駆動ノード300に送信する。そして、舵角制御用のアクチュエータ駆動ノード300は、センサ500の運転者要求信号200を取り込んで操舵制御を継続することができる。
【0472】
また、舵角制御用のアクチュエータ駆動ノード300またはアクチュエータ400の故障が発生した場合には、制動制御用のアクチュエータ駆動ノード300は、舵角制御用のアクチュエータ駆動ノード300からの故障検出通知を受信するか、または応答メッセージを受信しなかったことから舵角制御用のアクチュエータ駆動ノード300の故障を検出し、センサ500の運転者要求信号200を基に、ブレーキの右車輪と左車輪の制動力差により車両の回転運動を生じさせるよう、応答メッセージを通じて各々の操作量を互いに参照しながら操舵制御を継続することもできる。
【0473】
以上の説明では、操作量生成ノード100とアクチュエータ駆動ノード300を有した車両制御装置について述べたが、本発明は、
図58に示されているように、操作量生成ノード100を用いずに、各アクチュエータ駆動ノード300で車両を制御する車両制御装置にも有効である。
【0474】
本実施形態による車両制御装置におけるアクチュエータ駆動ノード300は、制御プログラム(Y)または制御プログラム(Z)の何れかを選択してアクチュエータ400を制御するが、この制御プログラムの選択は、車両制御装置の上述の実施形態において、操作量生成ノード100が故障した場合と同じである。
【0475】
これにより、独立して動作するアクチュエータ駆動ノード300が相互に協調しながらアクチュエータ400を制御することにより、操作量生成ノード100が無い場合でも、安全な車両制御装置を実現することができる。
【0476】
(第9の実施形態)
次に、
図59〜
図61を用いて、本発明の車両制御装置の第9の実施形態について説明する。
図58は、第9の実施形態における車両制御装置の基本構成を示している。車両制御装置は、運転者の要求を検出するセンサ500と、アクチュエータ400と、操作量生成ノード100と、アクチュエータ駆動ノード300から構成される。
【0477】
この中で、運転者の要求を検出するセンサ500、操作量生成ノード100、およびアクチュエータ駆動ノード300は、それぞれ故障検出機能210A、210B、210Cを備えている。アクチュエータ駆動ノード300の故障検出機能210Cは、自己診断機能だけでなく、アクチュエータ400の故障を検出する機能も備えている。
【0478】
操作量生成ノード100は、運転者の要求信号200および車両状態信号201に基づいて操作量指令値120を演算する。この操作量指令値120を受けて、アクチュエータ駆動ノード300は、アクチュエータ400を制御し、車両の駆動、操舵、制動等が実行される。
【0479】
故障検出機能210A、210B、210Cは、ノード内またはアクチュエータ400の故障を検出した場合には、ノード外部に、自分が故障状態であることを知らせるための故障検出通知230を出力する。故障検出機能を備えるノードは全て、故障状態のときは、この故障検出通知230を出力する以外は、外部への出力を停止する、つまりフェールサイレントとなるように構成されている。
【0480】
また、各ノードはデータ受信テーブル9100を備えている。ここでは説明を省略しているが、同様にデータ送信テーブルをも備えている。送信テーブルへ格納したデータはシステムであらかじめ決められた周期で他ノードへ出力される。また、逆に他のノードから受信したデータは一時的にデータ受信テーブルに格納され、ノードの制御周期にあわせて読み出され利用される。
【0481】
各ノードの接続は
図59に示したような信号線による接続以外に、共通の通信路を時分割で使用するバス構成やネットワーク構成をとることも可能である。この実施例では、ひとつのノードから出力したデータを複数のノードで受信できるとする。各故障検出機能210A、210B、210Cは、このデータ受信テーブルの内容に従い、他ノードの状態を推定し、また、その推定結果を複数ノードへレポートする機能も有する。
【0482】
図60は、データ受信テーブル9100の具体例を記載したものである。送信元、更には送信事象を区別するメッセージ番号フィールド9101を有する。これは実際のフィールドでもよいし、メッセージにあらかじめ割り当てられた特定のアドレスであって、実態のフィールドが無くてもよい。
【0483】
データ受信テーブル9100のその他のフィールドには、当該メッセージの有効性を示す有効フィールド9102、当該メッセージ発信時刻を記録する時刻フィールド9103、メッセージデータフィールド9104、故障投票フィールド9105がある。
【0484】
各ノードから出力されるメッセージにはこれらの情報を含み、受信ノードにおいてあらかじめ決められたフィールド区分でテーブルに格納される。
【0485】
尚、当該ノードで必要としないメッセージは格納する必要がないため、
図60におけるメッセージ番号(No.2)の如く、当初から有効フィールドを無効(0)にしておくことができる。一方で、制御には不要であるが、単純に信号監視のためだけに有効にしておくこともできる。もちろん、各ノードからの故障検出通知230がある場合はデータフィールドに反映され、有効かどうかの判定を行うことができる。
【0486】
図61を用いて他ノードの故障診断方法を説明する。ここでは、操作量生成ノードが故障したケースを示しているが、それ以外のノードに関しても同様である。
【0487】
まず、操作量生成ノードに対応するメッセージ番号フィールドを取り出す(ステップS2110)。このフィールドがアドレスである実施例の場合には、当該アドレスにアクセスすることで目的が達せられる。
【0488】
次に、データ受信テーブル9100の有効フィールド9102を参照し、有効、かつ、時刻フィールド9103が更新されていれば、操作量生成ノードからのデータ9104を使用して制御する。ここで、更新されているかどうかは、例えば、自ノードが持つ時刻情報(now)と各メッセージの時刻フィールド(time)9103との差があらかじめ定められた一定値(limit)以内かどうかで判定する(ステップS2120)。
【0489】
図60に戻って説明すると、ノード5のメッセージに含まれる時刻が他のノードより古く、差分50以上になっている。これをもとに作動していないと判定する。これらの方法により有効でないと判定した場合には、操作量生成ノードが正常に作動していないことを示しており、それ以外のノードから送信された情報を用いて制御を行う(ステップS2140)。これに対し、有効であると判定した場合には、操作量生成ノードから送信された情報を用いて制御を行う(ステップS2130)。
【0490】
その後、判定結果を他ノードへ通知するために故障投票出力を行う(ステップS2150)。これは故障投票フィールドとして格納されるものである。データ受信テーブル9100の故障投票フィールド9105は、2進数で表現してあり、左から順にメッセージ番号に対応付けられている。
図60の例ではノード5を除く有効なノードは全てノード5が故障している(vote=1)と判定している。
【0491】
ノード5だけは自身が正常(vote=0)という出力を出しているが、定められたアルゴリズム、例えば多数決によってノード5は無効と認定し、有効フィールドを無効化する(ステップS2160、ステップS2170)。
【0492】
尚、作動しなくなったノードが復活する場合、例えば、不具合の解消、自動リセット等により実現するが、その場合も他ノードによる観測結果に基づく投票によって復活を決定付けられる。
【0493】
これにより、制御にかかわる全ノードが同時にノード5を受け入れることができ、システムの部分ごとに制御方法が異なる状況の発生を避けることができる。
【0494】
尚、復活の場合の投票アルゴリズムは、故障認定のアルゴリズムと異なる方法を選択することも可能であり、たとえば、全ノード一致で復活を認めることもできる。尚、故障投票を行い、システムで状態を共有するために、アクチュエータノードであっても出力処理を行っている。
【0495】
以上、この実施形態は、上記に限るものではなく、様々な形で実施することができる。例えば、制御指令を生成する指令コントローラは、必ずしも1つに集中させる必要はなく、複数個の指令コントローラで構成されていてもよい。
【0496】
図62に示すように、ハンドル角度センサ3000−2の情報を取り込んでハンドル角度情報D3000をネットワークに出力するセンサコントローラ3000−1と、ブレーキペダル位置センサ3001−2の情報を取り込んでブレーキペダル踏込み量の情報D3001をネットワークに出力するセンサコントローラ3001−1と、舵角制御電動モータ3002−2を動作させるアクチュエータコントローラ3002−1と、電動ブレーキキャリパを動作させるアクチュエータコントローラ3003−1と、統合コントローラA(3010−1)と、統合コントローラB(3010−2)とが、車内ネットワークN3000で接続されている構成でもよい。
【0497】
このような構成を取ることによって、目標制動力D3010−2を計算する指令コントローラ3010−2と、目標舵角D3010−1を計算する指令コントローラ3010−1との配置を物理的に離すことによって、統合制御機能が全て失われる確立を低減することが可能になる。
【0498】
本発明による車両制御装置は、次のような効果を奏する。
(1)車両運動統合制御手段が使用できない場合でも、運転者の操縦手段と車両制御手段との通信が可能になり、ドライバ意図に沿って車両制御を実行できるという効果がある。
(2)車両制御装置において、いずれかのノードに故障が発生した場合、正常なノードは、故障が発生したノードが送信する故障検出通知に基づいて、制御を切り替えることにより、システム全体でエラーをバックアップすることができるため、個々のノードの冗長度を必要以上に上げることなく、十分に高信頼な車両制御装置を低コストで実現することができる。
(3)運転者による操作量を補正生成ノードで生成した補正量で補正することにより結果として適切なステアリング操作、ブレーキ操作とすることができ、車両の安定化を図ることができる。
(4)補正量生成ノードが故障した場合には、機能を縮退して補正量なしで運転者の操作したとおりの動作をすることができる。
(5)補正量生成のためには高度な情報処理が必要とされるのに対して。操作量生成は比較的簡単な情報処理ですむ。そのため、補正量生成ノードは操作量生成ノード10に比べて部品点数が増えたり、操作周波数が高くなったり電気的、熱的に余裕が少ない動作が要求される。その結果、補正量生成ノード20は操作量生成ノードに比べて故障率が高くなる。従って、故障率がより高い補正量生成ノードの故障による影響を回避する本発明の効果は特に大きい。
(6)操作量生成ノードが故障した場合でも、アクチュエータ駆動ノードが操作量生成ノードの異常を検出して制御プログラムを切り替えて車両制御を継続するので、操作量生成ノードの多重化が不要になり、安全でかつ低コストな車両制御装置を実現することができる。
(7)アクチュエータ駆動ノード間で相互に異常を検出して適切な制御プログラムに切り替えるので、例えばブレーキの片効きなど、危険な車両運動を回避することができ、操作量生成ノードが故障した状態でも安全な車両制御を維持することができる。