以下に添付図面を参照しながら、本発明の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
まず、図1を参照して、本発明の一実施形態に係る車両1000の構成について説明する。図1は、本実施形態に係る車両1000を示す模式図である。図1に示すように、車両1000は、前輪100,102、後輪104,106、前輪100,102及び後輪104,106のそれぞれを駆動する駆動力発生装置(モータ)108,110,112,114、モータ108,110,112,114の駆動力を前輪100,102及び後輪104,106のそれぞれに伝達するギヤボックス116,118,120,122、モータ108,110,112,114のそれぞれを制御するインバータ123,124,125,126、後輪104,106のそれぞれの車輪速(車両速度V)を検出する車輪速センサ127,128、前輪100,102を操舵するステアリングホイール130、前後加速度センサ132、横加速度センサ134、バッテリー136、舵角センサ138、パワーステアリング機構140、ヨーレートセンサ142、インヒビターポジションセンサ(IHN)144、アクセル開度センサ146、制御装置(コントローラ)200を有して構成されている。
本実施形態に係る車両1000は、前輪100,102及び後輪104,106のそれぞれを駆動するためにモータ108,110,112,114が設けられている。このため、前輪100,102及び後輪104,106のそれぞれで駆動トルクを制御することができる。従って、前輪100,102の操舵によるヨーレート発生とは独立して、前輪100,102及び後輪104,106のそれぞれを駆動することで、トルクベクタリング制御によりヨーレートを発生させることができ、これによってステアリング操舵のアシストを行うことができる。つまり、本実施形態に係る車両1000では、旋回モーメント(以下、ヨーモーメントともいう)を車体旋回角速度(以下ヨーレート)で制御し、ステアリング操舵のアシストを行う旋回アシスト制御を実施する。
各モータ108,110,112,114は、制御装置200の指令に基づき各モータ108,110,112,114に対応するインバータ123,124,125,126が制御されることで、その駆動が制御される。各モータ108,110,112,114の駆動力は、各ギヤボックス116,118,120,122を介して前輪100,102及び後輪104,106のそれぞれに伝達される。
パワーステアリング機構140は、ドライバーによるステアリングホイール130の操作に応じて、トルク制御又は角度制御により前輪100,102の舵角を制御する。舵角センサ138は、運転者がステアリングホイール130を操作して入力したステアリング操舵角θhを検出する。ヨーレートセンサ142は、車両1000の実ヨーレートγを検出する。車輪速センサ127,128は、車両1000の車両速度Vを検出する。なお、車輪速センサは、前輪100,102にも設けられていて良い。
なお、本実施形態はこの形態に限られることなく、左右独立制駆動可能なシステムを有するHEV車両、EV車両に適用可能である。例えば、車両1000は、後輪104,106のみが独立して駆動力を発生する車両であっても良い。
図2は、車両駆動システムの構成を示す模式図である。図2に示すように、各インバータ123,124,125,126は、インバータ制御部123a,124a,125a,126aと、インバータユニット123b,124b,125b,126bを有している。制御装置200からインバータ制御部123a,124a,125a,126aに制御信号が送られ、これに基づいてインバータ制御部123a,124a,125a,126aからインバータユニット123b,124b,125b,126bへスイッチ制御信号が送られる。インバータユニット123b,124b,125b,126bには、バッテリー136と各モータ108,110,112,114が接続されている。各モータ108,110,112,114は、スイッチ制御信号に基づいて、インバータユニット123b,124b,125b,126bによって制御される。電流検出部150は、各モータ108,110,112,114に流れる電流を検出する。
ところで、前輪100,102、後輪104,106による旋回アシスト制御中に、例えば後輪電磁ブレーキの異常動作などの車両故障、または路面状況などの外的要因により意図しない車輪ロックが発生した場合、旋回アシスト制御を継続すると、目標ヨーレートとなるよう各モータ108,110,112,114、インバータ123,124,125,126に制御指示が行われる。この場合、車輪ロックが検知されない状態で大電力、大電流が指示されると、モータ、インバータが過負荷状態となり破損する可能性がある。
図3及び図4は、通常走行時における旋回アシスト制御と、車輪ロックが発生した異常状態における旋回アシスト制御の車両挙動を示す模式図である。ここで、図3は通常走行時を示しており、図4は異常状態を示している。
また、図5及び図6は、通常走行時と異常状態のそれぞれにおいて、車速V、操舵角θh、目標ヨーレート、実ヨーレート、モータ・インバータ電流値(左後輪、右後輪の電流の駆動要求指示値)、モータ温度、インバータ温度の特性を示す特性図である。ここで、図5は図3の通常走行時に対応しており、図6は図4の異常状態に対応している。
図3に示す通常走行時では、ドライバーがステアリングホイール130を右へ操作すると、車両1000が右に旋回を始める。この際、左後輪が順方向に回転し、右後輪が左後輪に対して逆方向に回転することで、差回転により車両1000が右へ旋回し(位置1→位置5)、旋回アシスト制御が行われる。図3において、白矢印は左後輪による旋回モーメントを表しており、黒矢印は右後輪による旋回モーメントを表している。なお、位置4では、ドライバーがステアリングホイール130を一時的に左へ操作することで、右後輪が順方向に回転し、左後輪が右後輪に対して逆方向に回転することで、一時的な左への旋回を行っている。
通常走行の場合、図5に示すように、旋回アシスト制御により目標ヨーレートに実ヨーレートが追従し、モータ温度、インバータ温度は一定に保たれる。
図4に示す異常状態では、図3と同様の旋回を行った際に、位置2で旋回中に右後輪がロックしている。このため、位置2以降では、黒矢印で示す右後輪の旋回モーメントが得られず、車両のヨーレートが目標ヨーレートに達成しない。この場合、図6に示すように、実ヨーレートが目標ヨーレートに達しないため、より大きな旋回モーメントを得るために、モータ、インバータにより大きな電流の要求指示が行われる。図6では、図5の電流指示値(I1,I2)と比較して電流値が増加していることが判る。そして、車輪はモータに直結しているので、モータがロックした状態で駆動指示分の電流がモータ、インバータに供給されることになる。このため、電流のエネルギーはモータ、インバータの熱に変わり、図6に示すように、モータ温度、インバータ温度が上昇し、モータ、インバータが過度に発熱し、場合によっては破損する可能性がある。
このような状況を回避するため、モータ回転数やタイヤ回転数の検出によりロック状態を検出し、旋回アシストトルクの制御量を低下させることが考えられる。しかし、この方法では、故障以外の要因で車輪がロックした場合、例えば、ぬかるみや積雪によりスタックして車輪ロックが発生した場合、制御量を低下させているために却って脱出性能が低下する。例えば、車体の運動エネルギが無い状態からの発進を行う場合、タイヤの摩擦円による蹴り出し以外の運動エネルギーを得ることができないと、スタックする。本実施形態では、このような場合は、車輪がロックしている場合であっても駆動指示を許可する。
以上の観点から、本実施形態では、車輪ロック等の異常を早期に検出するとともに、車輪ロック状態に応じた旋回アシスト制御を行うことで、故障による車輪ロックが発生した場合は旋回アシスト制御を停止させ、スタック等により車輪ロックが発生した場合に旋回アシスト制御を一定期間維持して脱出性能を維持する。
具体的には、旋回アシスト制御時に発生した車輪ロックに起因する過負荷によってモータ、インバータが破損してしまうことを抑えるため、旋回性能と旋回アシスト時の路面状況や車両状態から駆動輪異常ロックの早期判定を行うとともに、スタック状態から脱出しようとしているか判定を行い、走破性能とモータ・インバータの故障防止を両立させる。
旋回アシスト制御中に車両の路面状態や車両状態から意図しない車輪ロックが発生した場合に、モータの回転数の左右の差回転がしきい値以上発生した時に限り旋回アシスト制御量を抑制することとすると、路面や車両状態で左右の車輪がロック状態となった場合、旋回アシスト制御を継続されてしまい、モータ、インバータに対して電流が過大に流れ、モータ、インバータが発熱して破損する可能性がある。一方で、車輪ロック状態で即出力低減を行うと、ぬかるみ路や雪道でスタックした場合に脱出性能が低下する。本実施形態では、ロック状態の検出および脱出状態の検出を行い、制御条件の切り換えを行うことで、走行、走破性能とモータ、インバータの保護を両立する。以下、詳細に説明する。更に、本実施形態では、ドライバーがパーキングロックシステムを意図的に操作した場合、または誤信号による車輪ロックが発生した場合、旋回アシスト制御を中止する。
図7は、本実施形態に係る制御装置200とその周辺の構成を詳細に示す模式図である。制御装置200は、車載センサ201、目標ヨーレート演算部202、車両ヨーレート演算部(車両モデル)206、ヨーレートF/B演算部208、減算部210,212、重み付けゲイン演算部220、インバータ電流状態演算部(車両駆動状態判定部)224、車輪ロック状態判定部226、車両脱出判定部228、車体付加モーメント演算部230、出力制限演算部232、旋回アシスト演算部234、モータ要求トルク指示部236、を有して構成されている。
図7において、車載センサ201は、上述した車輪速センサ127,128、前後加速度センサ132、横加速度センサ134、舵角センサ138、ヨーレートセンサ142、アクセル開度センサ146を含む。舵角センサ138はステアリングホイール130の操舵角θhを検出する。また、ヨーレートセンサ142は車両1000の実ヨーレートγを検出し、車輪速センサ127,128は車両速度(車速)Vを検出する。横加速度センサ134は、車両1000の横加速度Ayを検出する。
目標ヨーレート演算部202は、ステアリング操舵角θhおよび車両速度Vに基づいて目標ヨーレートγ_tgtを算出する。具体的には、目標ヨーレート演算部202は、一般的な平面2輪モデルを表す以下の式(1)から目標ヨーレートγ_tgtを算出する。目標ヨーレートγ_tgtは、式(1)の右辺に、式(2)および式(3)から算出される値を代入することによって算出される。算出された目標ヨーレートγ_tgtは、減算部210へ入力される。
なお、式(1)〜式(3)における変数、定数、演算子は以下の通りである。
γ_tgt:目標ヨーレート
θh:ステアリング操舵角
V:車両速度
T:車両の時定数
S:ラプラス演算子
N:ステアリングギヤ比
l:車両ホイールベース
lf:車両重心点から前輪中心までの距離
lr:車両重心点から後輪中心までの距離
m:車両重量
Kftgt:目標コーナリングパワー(前方輪)
Krtgt:目標コーナリングパワー(後方輪)
以上のように、目標ヨーレートγ_tgtは、車両速度V、及びタイヤ舵角δ(=θh/N)を変数として、式(1)から算出される。式(2)における定数Atgtは車両の特性を表す定数であり、式(3)から求められる。
車両ヨーレート演算部206は、車両ヨーレートを算出するための以下の式から、ヨーレートモデル値γ_clcを算出する。具体的には、以下の式(4)、式(5)へ車両速度V、ステアリング操舵角θhを代入し、式(4)、式(5)を連立して解くことで、ヨーレートモデル値γ_clc(式(4)、式(5)におけるγ)を算出する。式(4)、式(5)において、Kfはコーナリングパワー(フロント)、Krはコーナリングパワー(リア)を示している。なお、式(3)では、式(4)、式(5)のコーナリングパワーKf,Krとは異なる目標コーナリングパワーKftgt,Krtgtを用いることで、目標ヨーレートγ_tgtがヨーレートモデル値γ_clcよりも大きくなるようにして、旋回性能を高めている。ヨーレートモデル値γ_clcは、ヨーレートF/B演算部208へ出力される。また、ヨーレートモデル値γ_clcは、減算部212へ入力される。
一方、ヨーレートセンサ142が検出した車両1000の実ヨーレートγ(以下では、実ヨーレートγ_sensと称する)は、減算部212へ入力される。減算部212は、実ヨーレートγ_sensからヨーレートモデル値γ_clcを減算し、実ヨーレートγ_sensとヨーレートモデル値γ_clcとの差分γ_diffを求める。差分γ_diffは重み付けゲイン演算部220へ入力される。
重み付けゲイン演算部220は、実ヨーレートγ_sensとヨーレートモデル値γ_clcとの差分γ_diffに基づいて、重み付けゲインaを算出する。
ヨーレートF/B演算部208には、ヨーレートモデル値γ_clc、実ヨーレートγ_sens、及び重み付けゲインaが入力される。ヨーレートF/B演算部208は、以下の式(6)に基づき、ヨーレートモデル値γ_clcと実ヨーレートγ_sensを重み付けゲインaによって重み付けし、フィードバックヨーレートγ_F/Bを算出する。算出されたフィードバックヨーレートγ_F/Bは、減算部210へ出力される。
γ_F/B=a×γ_clc+(1−a)×γ_sens ・・・・(6)
図8は、重み付けゲイン演算部220が重み付けゲインaを算出する際のゲインマップを示す模式図である。図8に示すように、重み付けゲインaの値は、車両モデルの信頼度に応じて0から1の間で可変する。車両モデルの信頼度を図る指標として、ヨーレートモデル値γ_clcと実ヨーレートγ_sensとの差分(偏差)γ_diffを用いる。図8に示すように、差分γ_diffの絶対値が小さい程、重み付けゲインaの値が大きくなるようにゲインマップが設定されている。重み付けゲイン演算部220は、差分γ_diffに図8のマップ処理を施し、車両モデルの信頼度に応じた重み付けゲインaを演算する。
図8において、重み付けゲインaは0〜1の値である(0≦a<1)。−0.05[rad/s]≦γ_diff≦0.05[rad/s]の場合、重み付けゲインaは1とされる(a=1)。
また、0.1≦γ_diffの場合、またはγ_diff<−0.1の場合、重み付けゲインaは0とされる(a=0)。
また、0.05[rad/s]<γ_diff<0.1[rad/s]の場合、重み付けゲインaは以下の式より算出される。
a=−20×γ_diff+2
また、−0.1[rad/s]≦γ_diff<−0.05[rad/s]の場合、重み付けゲインaは以下の式より算出される。
a=+20×γ_diff+2
図8に示すゲインマップの領域A1は、差分γ_diffが0に近づく領域であり、実ヨーレートγ_sensのS/N比が小さい領域や、タイヤ特性が線形の領域(ドライの路面)であり、車両ヨーレート演算部206から算出されるヨーレートモデル値γ_clcの信頼性が高い。このため、重み付けゲインa=1として、式(6)よりヨーレートモデル値γ_clcの配分を100%としてフィードバックヨーレートγ_F/Bが演算される。これにより、ヨーレートγ_sensに含まれるヨーレートセンサ142のノイズの影響を抑止することができ、フィードバックヨーレートγ_F/Bからセンサノイズを排除することができる。従って、車両1000の振動を抑制して乗り心地を向上することができる。
ここで、実ヨーレートγと車両モデルから求まるヨーレートモデル値γ_clcとの間に乖離が生じる要因として、タイヤの動的特性が挙げられる。上述した平面2輪モデルは、タイヤのスリップ角と横加速度との関係(タイヤのコーナーリング特性)が線形である領域を想定しており、この線形領域では、実ヨーレートγとヨーレートモデル値γ_clcは略一致する。公知のスリップ角と横加速度との関係を示す特性において、スリップ角に対して横加速度が線形となる線形領域(ステアリング操舵速度が比較的遅い領域)では、ヨーレートセンサ142のセンサノイズによる影響が発生する。従って、この領域ではヨーレートモデル値γ_clcを使用する。
一方、タイヤのコーナーリング特性が非線形になる領域では、実車のヨーレートと横加速度が舵角やスリップ角に対して非線形になり、平面2輪モデルと実車でセンシングされるヨーレートとが乖離する。このような過渡的な非線形領域ではヨーレートセンサ142のセンサ特性上、ノイズが発生しないため、実ヨーレートγが使用可能である。非線形領域は、例えばステアリングの切り換えしのタイミングに相当する。実ヨーレートγがヨーレートモデル値γ_clcを超える場合は、非線形領域に相当し、センサノイズの影響を受けないため実ヨーレートγを使用することで、真値に基づいた制御が可能である。なお、タイヤの非線形性を考慮したモデルを使用すると、ヨーレートに基づく制御が煩雑になるが、本実施形態によれば、ヨーレートモデル値γ_clcの信頼度を差分γ_diffに基づいて容易に判定することができ、非線形領域では実ヨーレートγの配分を多くして使用することが可能である。また、タイヤの動的特性の影響を受け難い領域はヨーレートモデル値γ_clcで対応可能である。
また、図8に示すゲインマップの領域A2は、差分γ_diffが大きくなる領域であり、ウェット路面走行時、雪道走行時、または高Gがかかる旋回時などに相当し、タイヤが滑っている限界領域である。この領域では、車両ヨーレート演算部206から算出されるヨーレートモデル値γ_clcの信頼性が低くなり、差分γ_diffがより大きくなる。このため、重み付けゲインa=0として、式(6)より実ヨーレートγ_sensの配分を100%としてフィードバックヨーレートγ_F/Bが演算される。これにより、実ヨーレートγ_sensに基づいてフィードバックの精度を確保し、実車の挙動を反映したヨーレートのフィードバック制御が行われる。従って、実ヨーレートγ_sensに基づいて車両1000の旋回を最適に制御することができる。また、タイヤが滑っている領域であるため、ヨーレートセンサ142の信号にノイズの影響が生じていたとしても、車両1000の振動としてドライバーが感じることはなく、乗り心地の低下も抑止できる。図8に示す低μの領域A2の設定については、設計要件から重み付けゲインκ=0となる領域を決めても良いし、低μ路面を実際に車両1000が走行した時の操縦安定性能、乗り心地等から実験的に決めても良い。
また、図8に示すゲインマップの領域A3は、線形領域から限界領域へ遷移する領域(非線形領域)であり、実車である車両1000のタイヤ特性も必要に応じて考慮して、ヨーレートモデル値γ_clcと実ヨーレートγ_sensの配分(重み付けゲインa)を線形に変化させる。領域A1(高μ域)から領域A2(低μ域)への遷移、ないし領域A2(低μ域)から領域A1(高μ域)へ遷移する領域においては、重み付けゲインaの急変に伴うトルク変動、ヨーレートの変動を抑えるため、線形補間で重み付けゲインaを演算する。
また、図8に示すゲインマップの領域A4は、実ヨーレートγ_sensの方がヨーレートモデル値γ_clcよりも小さい場合に相当する。例えば、車両ヨーレート演算部206に誤ったパラメータが入力されてヨーレートモデル値γ_clcが誤計算された場合等においては、領域A4のマップにより実ヨーレートγ_sensを用いて制御を行うことができる。なお、重み付けゲインaの範囲は0〜1の間に限定されるものではなく、車両制御として成立する範囲であれば任意の値を取れる様に構成を変更することも、本発明の技術で成し得る範疇に入る。
減算部210は、目標ヨーレート算出部204から入力された制御目標ヨーレートγ_tgtからフィードバックヨーレートγ_F/Bを減算し、制御目標ヨーレートγ_tgtとフィードバックヨーレートγ_F/Bとの差分Δγを求める。すなわち、差分Δγは、以下の式(7)から算出される。
Δγ=γ_Tgt−γ_F/B ・・・・(7)
差分Δγは、ヨーレート補正量として車体付加モーメント演算部230へ入力される。
車体付加モーメント演算部230は、入力された差分Δγに基づいて、差分Δγが0となるように、すなわち、制御目標ヨーレートγ_tgtがフィードバックヨーレートγ_F/Bと一致するように、車体付加モーメントMgを演算する。具体的には、車体付加モーメントMgは以下の式(8)から算出される。これにより、車両1000の中心位置において、旋回に必要な車体付加モーメントMgが求まる。車体付加モーメントMgに基づいて、車両1000に旋回モーメントが付加される。
インバータ電流状態演算部224は、インバータ123,124,125,126の電流の変化状態を演算する。車輪ロック状態判定部226は、車輪速と電動パーキングブレーキ駆動信号に基づいて、前輪100,102、後輪104,106の各車輪のロックを判定する。車両脱出判定部228は、車両1000がスタックしている状態から脱出しようとしているか否かを判定する。
出力制限演算部232は、車体付加モーメントMgを調整する制御ゲインを演算する。旋回アシスト演算部234は、車体付加モーメントMgと制御ゲインに基づいて、モータ108,110,112,114による旋回アシストトルクTvmotを算出する。本実施形態において、出力制限演算部232と旋回アシスト演算部234は、車体付加モーメントMgを付加するためのモータ108,110,112,114による旋回アシストトルクTvmotを制限する制限部として機能する。旋回アシストトルクTvmotはモータ要求トルク指示部236に出力されて、旋回アシストトルクTvmotに基づいて算出されるモータトルク指示値に応じてモータ108,110,112,114の駆動が行われる。また、各モータ108,110,112,114のモータトルク指示値(TqmotFl,TqmotFr,TqmotRl,TqmotRr)に応じたインバータ電流指示値(i_req)が、インバータ電流状態演算部224に入力される。
次に、本実施形態に係る制御装置200が行う全体的な処理について説明する。図9は、本実施形態の全体的な処理を示すフローチャートである。先ず、ステップS100では、イグニッションキー(イグニッションSW)がオンであるか否かを判定する。イグニッションキーがオンされた場合はステップS102へ進み、イグニッションキーがオンされていな場合はステップS100で待機する。
ステップS102では、インヒビターポジションセンサ(IHN)144がP(パーキング)又はN(ニュートラル)の位置を示しているか否かを判定し、P(パーキング)又はN(ニュートラル)の位置である場合はステップS104へ進む。また、ステップS102でP(パーキング)又はN(ニュートラル)の位置でない場合はステップS106へ進み、イグニッションキーがオンされているか否かを判定し、イグニッションキーがオンされている場合はステップS102へ戻る。ステップS106でイグニッションキーがオフの場合はステップS108へ進み、車両の起動処理を終了してステップS100へ戻る。
ステップS104では車両1000の起動処理を行い、次のステップS110では、インヒビターポジションセンサ(IHN)144がD(ドライブ)又はR(後進)の位置を示しているか否かを判定する。そして、インヒビターポジションセンサ(IHN)144がD(ドライブ)又はR(後進)の位置を示している場合は、ステップS112へ進み、走行制御の処理を開始する。一方、ステップS110でインヒビターポジションセンサ(IHN)144がD(ドライブ)又はR(後進)の位置を示していない場合は、ステップS113へ進み、イグニッションキーがオンされているか否かを判定し、イグニッションキーがオンされている場合はステップS110へ戻る。ステップS113でイグニッションキーがオフの場合はステップS108へ進み、車両の起動処理を終了する。
図10は、図9のステップS112の処理を詳細に示すフローチャートである。先ず、ステップS113では、入力値としてアクセルペダルの操作量、ブレーキペダルの操作量を取得する。次のステップS114では、アクセルペダルの操作量が0.1以上であるか否かを判定し、操作量が0.1以上の場合はステップS116へ進む。ステップS116では、アクセルペダルの操作量に基づいて要求駆動力reqFを算出する。なお、要求駆動力reqFの算出は、例えばアクセル開度と要求駆動力reqFとの関係を規定したマップに基づいて行うことができる。一方、アクセルペダルの操作量が0.1未満の場合はステップS118へ進み、各モータ108,110,112,114の回生制動制御を行う。
ステップS116,S118の後はステップS120へ進む。ステップS120では、車両旋回制御を行う。ステップS120の処理については、後で詳細に説明する。次のステップS124では、ステップS120の車両旋回制御で得られた旋回アシストトルクTvmotに基づいて、各モータ108,110,112,114のモータトルク指示値を算出し、各モータ108,110,112,114へ出力を指示する。次のステップS126では、前後加速度センサ132、横加速度センサ134により車両1000の加速度を検出する。ステップS126の後はステップS113へ戻る。
ところで、前輪100,102及び後輪104,106の駆動力は、車両1000の直進時には、ドライバーの要求駆動力(アクセルペダルの開度)から定まるモータトルク指示値reqTqによって定まる。ここで、モータトルク指示値reqTqは、以下の式(9)から算出される。
reqTq=reqF*TireR*Gratio ・・・(9)
式(9)において、reqFはアクセルペダルの開度から定まる要求駆動力である。アクセルペダルの開度は、アクセル開度センサ146により検出される。また、TireRはタイヤ半径であり、Gratioギヤボックス116,118,120,122のギヤ比である。
車両1000の直進時には、前輪100,102及び後輪104,106を駆動する4つのモータ108,110,112,114のそれぞれの駆動力は、ドライバーの要求駆動力reqFに基づくモータトルク指示値reqTqを4等分した値(=reqTq/4)となる。一方、車両1000の旋回時には、トルクベクタリング制御により、式(8)から算出された車体付加モーメントMgに基づく旋回アシストトルクTvmotが後輪104,106のモータトルク指示値reqTqに付加される。車体付加モーメントMgに基づく付加トルクTvmotは偶力であるため、右旋回の場合は、左側の後輪104のモータトルク指示値は直進時のモータトルク指示値reqTq/4に付加トルクTvmotを加算した値となり、右側の後輪106のモータトルク指示値は直進時のモータトルク指示値reqTq/4から付加トルクTvmotを減算した値となる。同様に、左旋回の場合は、右側の後輪106のモータトルク指示値は直進時のモータトルク指示値reqTq/4に付加トルクTvmotを加算した値となり、左側の後輪104のモータトルク指示値は直進時のモータトルク指示値reqTq/4から付加トルクTvmotを減算した値となる。
従って、旋回時の各モータ108,110,112,114のモータトルク指示値は以下の式(10)〜式(13)で表すことができる。図10のステップS124において、モータ要求トルク指示部236は、式(10)〜式(13)に基づいて、各モータ108,110,112,114のモータトルク指示値TqmotFl,TqmotFr,TqmotRl,TqmotRrを算出する。
TqmotFl(左前輪のモータトルク指示値)=reqTq/4 ・・・(10)
TqmotFr(右前輪のモータトルク指示値)=reqTq/4 ・・・(11)
TqmotRl(左後輪のモータトルク指示値)
=reqTq/4−(±Tvmot) ・・・(12)
TqmotRr(右後輪のモータトルク指示値)
=reqTq/4+(±Tvmot) ・・・(13)
なお、付加トルクTvmotの符号は、旋回方向に応じて設定される。
図11は、図10のステップS120の車両旋回制御の全体的な処理を示すフローチャートである。また、図12〜図15は、図11の処理を詳細に説明するフローチャートである。
図11の処理では、入力として車両速度V、ステアリング操舵角θh、インバータ電流値、スリップ判定状態が与えられる。先ず、ステップS200では、目標ヨーレート演算部202が、目標ヨーレートγ_tgtを算出する。ここでは、ステアリング操舵角θh、車両速度Vを入力として、目標ヨーレート演算部202が車両モデル(平面2輪モデル)より目標ヨーレートγ_tgtを算出する。
次のステップS202では、ヨーレートF/B演算部208が、フィードバックヨーレートγ_F/Bを算出する。次のステップS204では、減算部210が、目標ヨーレートγ_tgtとフィードバックヨーレートγ_F/Bとの差分Δγを算出する。次のステップS206では、インバータ電流状態演算部224が、インバータ電流状態(車両状態)を演算し、インバータ状態フラグi_state_errを設定する。
図12は、図11のステップS206の処理を詳細に示すフローチャートである。図12の処理では、入力として差分Δγ、インバータ電流制御指示値i_req、電流検出部150が検出した電流値(3相交流電流センサ値)i_sens、ステアリング操舵角θhが与えられる。ここで、インバータ電流制御指示値i_req、電流値i_sensは、各車輪のモータ、インバータに対応する値とすることができる。先ず、ステップS240では、ステアリング操舵角θhの絶対値が0以外の値であるか否かが判定される。すなわち、ここでは車両1000が旋回中であるか否かが判定される。ステアリング操舵角θhの絶対値が0以外の値の場合(車両旋回中の場合)は、ステップS242へ進む。
ステップS242では、インバータ電流変化量i_stを算出する。インバータ電流変化量i_stは、以下の式により、電流値の実値i_sensをインバータの電流制御指示値i_reqで除算することで算出される。これにより、インバータ電流変化量i_stは無次元化された値となる。
i_st=i_sens/i_req
なお、インバータ電流制御指示値i_req、電流値i_sensを各車輪のモータ、インバータに対応する値とすることで、インバータ電流変化量i_stは、各車輪毎に求めることができる。
次のステップS244では、ヨーレート変化量γ_stを算出する。ヨーレート変化量γ_stは、以下の式により、実ヨーレートγ_sensを目標ヨーレートγ_tgtで除算することで算出される。これにより、ヨーレート変化量γ_stは無次元化された値となる。なお、実ヨーレートγ_sensの代わりにフィードバックヨーレートγ_F/Bを用いても良い。
γ_st=γ_sens/γ_tgt
このように、インバータ電流変化量i_st及びヨーレート変化量γ_stを無次元化することで、インバータ電流値とヨーレートを比較することが可能となる。ここで、左右の駆動力差によるヨーレート制御は、モータ電流を変化させることで行われるため、ヨーレートの変化とインバータ電流の変化は同期する関係にあるが、単位が異なると比較することができない。インバータ電流変化量i_st及びヨーレート変化量γ_stは、いずれも目標値に対する実値の比であり、無次元化されているため、両者を比較対象とすることが可能となる。
次のステップS246では、以下の式よりヨーレート変化量γ_stからインバータ電流変化量i_stを減算し、車両変化状態car_stを演算する。ここで、算出される車両変化状態car_stは、ヨーレートの変化とインバータ電流の変化が同期しているか否かを表す指標となり、車両変化状態car_stが小さければ、ヨーレートの変化とインバータ電流の変化が同期していることになる。
car_st=|γ_st−i_st|
次のステップS248では、車両変化状態car_stと所定のしきい値St_disとを比較し、car_st<St_disの場合はステップS250へ進む。ステップS250へ進んだ場合は、インバータ状態フラグi_state_errを0とする。(i_state_err=0)。
また、ステップS248でcar_st<St_disでない場合はステップS252へ進む。ステップS252へ進んだ場合は、インバータ状態フラグi_state_errを1とする。(i_state_err=1)。
また、ステップS240で、ステアリング操舵角θhの絶対値が0の場合は、ステップS250へ進み、インバータ状態フラグi_state_errを0とする。
図12の処理によれば、ステアリング操舵角θhとモータ駆動電流値が対応していない状況を選別することができる。すなわち、car_stが所定のしきい値St_dis以上の場合は、ヨーレートの変化にモータ駆動電流の変化が同期していない状態であるため、モータの制御量に対応する所望のヨーレートを車両1000が得られない状態となっている。これは、例えば、ステアリング操舵角θhは変化していないのに、モータ駆動電流値が変化している状況が挙げられる。この場合、車両の実ヨーレートを目標ヨーレートに近づけるためにモータ駆動電流値を増加しても、所望のヨーレートを得られない状態となる。従って、インバータ電流状態としては異常となり、ステップS252でエラー判定が行われる(i_state_err=1)。
一方、car_stが所定のしきい値St_dis未満の場合は、ヨーレートの変化にモータ駆動電流の変化が同期している状態であり、インバータ電流状態としては正常であると判断できる。従って、ステップS250で正常判定が行われる(i_state_err=0)。
なお、上述のようにインバータ電流変化量i_stは各車輪毎に求めることができるため、ステップS250,S252の判定は各車輪毎に行うことができる。
図11に戻り、ステップS206の後はステップS208へ進む。ステップS208では、車輪ロック状態判定部226が、インバータ電流状態、車輪速センサによるロック判定結果、電動パーキングブレーキ駆動指示信号に基づいて、走行中の車輪ロックを判定する。
図13は、図11のステップS208の処理を詳細に示すフローチャートである。図13の処理では、入力としてインバータ状態フラグi_state_err、電動パーキングブレーキ信号フラグEPB_sig、車輪速センサ情報フラグw_lock_sigが与えられる。
ここで、電動パーキングブレーキ信号EPB_sigは、電動パーキングブレーキのオン/オフを示すフラグであり、EPB_sig=0の場合は電動パーキングブレーキがオフであり、EPB_sig=1の場合は電動パーキングブレーキがオンであるものとする。なお、電動パーキングブレーキがオンになると、前輪100,102、後輪104,106の一部又は全てがロックされる。
また、車輪速センサ情報フラグw_lock_sigは、車輪速センサによる車輪ロックの判定結果を示すフラグであり、w_lock_sig=0の場合は車輪速センサにより車輪のロックが検出されていない場合を示しており、w_lock_sig=1の場合は車輪速センサにより車輪のロックが検出された場合を示している。なお、車輪速センサ情報フラグw_lock_sigを設定する処理については、図14を参照して後述する。
先ず、ステップS270では、i_state_err=0であるか否かを判定し、i_state_err=0の場合はステップS272へ進む。ステップS272では、車輪速センサのエラー判定フラグwheel_rev_sens_errを0とする。なお、wheel_rev_sens_err=0の場合は車輪速センサが正常であり、wheel_rev_sens_err=1の場合は車輪速センサが異常であることを示している。次のステップS274では、車輪ロック状態フラグlock_judを0とする。ここで、車輪ロック状態フラグlock_judが0の場合は、車輪ロックが発生していないことを示しており、車輪ロック状態フラグlock_judが1の場合は、車輪ロックが発生していることを示している。
一方、ステップS270でi_state_err=1の場合はステップS276へ進み、EPB_sig=1であるか否かを判定し、EPB_sig=1の場合はステップS278へ進む。ステップS278では、車輪速センサのエラー判定フラグwheel_rev_sens_errを0とする。次のステップS280では、車輪ロック状態フラグlock_judを1とする。
また、ステップS276でEPB_sig=0の場合はステップS282へ進み、w_lock_sig=1であるか否かを判定し、w_lock_sig=1の場合はステップS284へ進む。ステップS284では、車輪速センサのエラー判定フラグwheel_rev_sens_errを1とする。次のステップS280では、車輪ロック状態フラグlock_judを1とする。また、ステップS282でw_lock_sig=0の場合はステップS272以降に進み、wheel_rev_sens_err=0、lock_jud=0とする。
図13の処理によれば、基本的にはインバータ状態フラグi_state_errの状態によって車輪のロック判定が行われ、i_state_err=0の場合は、車輪がロックしていないと判定される(ステップS274)。一方、i_state_err=1の場合であっても、電動パーキングブレーキがオフであり、且つ、車輪速センサにより車輪ロックが判定されていない場合(ステップS282でw_lock_sig=0の場合)に、車輪がロックしていないと判定される(ステップS274)。
また、図13の処理によれば、車輪ロック判定を、インバータ状態フラグi_state_err、電動パーキングブレーキ信号フラグEPB_sig、車輪速センサ情報フラグw_lock_sigによる判定とすることで、インバータ状態フラグi_state_errが1であり、電動パーキングブレーキがオンの場合に車輪のロック判定を行うことができる。また、インバータ状態フラグi_state_errが1であり、電動パーキングブレーキがオフである場合であっても、車輪速センサ127,128により車輪ロックが判定されている場合は、車輪のロック判定を行うことができる。従って、電動パーキングブレーキの使用の有無も含め、車輪ロックが発生している状況を確実に判定することができる。これにより、走行中にドライバーが故意的に電動パーキングブレーキによる車輪ロックブレーキシステムを動作させた場合、旋回アシスト制御を中止することができる。また、インバータ状態フラグi_state_errによる判定と車輪速センサ127,128による判定を併用することで、車輪速センサ127,128のノイズによる誤判定条件を除去することができる。また、車輪速センサ127,128を用いることで、新たな検出器を搭載する必要がなく、簡素な構成で車輪ロックを判定できる。
図14は、車輪速センサ情報フラグw_lock_sigを設定する処理を示すフローチャートである。図14の処理では、入力として車両速度V、車輪速(WhFl,WhFr,WhRl,WhRr)、路面勾配(Grad)、アクセルペダル操作量(APS)が与えられる。先ず、ステップS260では、車両速度Vが0であるか否かを判定し、車両速度Vが0の場合はステップS262へ進む。ステップS262では、w_lock_sig=0、lock_jud_err=0とする。
一方、ステップS260で車両速度Vが0でない場合は、ステップS264へ進む。ステップS264では、車両速度Vが0よりも大きく、且つ、全ての車輪の車輪速WhFl,WhFr,WhRl,WhRrが0よりも大きいか否かを判定する。この条件が成立する場合は、ステップS262へ進み、w_lock_sig=0、lock_jud_err=0とする。
一方、ステップS264で、車両速度Vが0よりも大きくないか、又は、いずれかの車輪の車輪速が0の場合は、ステップS266へ進む。ステップS266では、(1)アクセル操作がある(APS>0.1)、(2)勾配が無い(Grad=0)、(3)車両速度Vが0よりも大きい、(4)いずれかの車輪の車輪速が0である、という4条件が全て成立するか否かを判定し、4条件が全て成立する場合はステップS268へ進む。
ステップS268へ進んだ場合、アクセル操作があり、勾配が無く、車両速度Vが0よりも大きいにも関わらず、いずれかの車輪の車輪速が0となっている。このため、ステップS268では、いずれかの車輪がロックしていると判定し、w_lock_sig=1とするとともに、lock_jud_err=0とする。
一方、ステップS266の4条件が全て成立しない場合は、ステップS270へ進む。ステップS270では、lock_jud_err=1であるか否かを判定し、lock_jud_err=1の場合はステップS268へ進む。
また、ステップS270でlock_jud_err=0の場合はステップS272へ進み、lock_jud_err=1としてステップS260に戻る。この場合、判定に誤りがある可能性があるため、ステップS260からの処理をやり直す。
なお、フラグlock_jud_errは、図14の処理内での状態判定に使用しており、条件に当てはまらない場合の無限ループ防止のために用いられている。ステップS262、ステップS268で正常にw_lock_sigの状態が出力されれば、lock_jud_errは0にリセットされる。
以上のように、図14の処理によれば、いずれかの車輪がロックしているか否かを判定することができ、いずれかの車輪がロックしている場合は、ステップS268でw_lock_sig=1とされる。一方、いずれの車輪もロックしていない場合は、ステップS262でw_lock_sig=0とされる。
図11に戻り、ステップS208の後はステップS210へ進む。ステップS210では、車両脱出判定部228が、車両速度VとステップS208の車輪ロック判定に基づいて、車両1000がスタック状態であるか否かを判定する。
図15は、図11のステップS210の処理を詳細に示すフローチャートである。図15の処理では、入力として車輪ロック状態フラグlock_jud、車体速Vspeed(車速V)、アクセルペダル操作量APSが与えられる。先ず、ステップS300では、APS=0であるか否かを判定し、APS=0の場合はステップS302へ進み、車両脱出判定フラグEsc_jud=0とする。ここで、車両脱出判定フラグEsc_judが0の場合は、スタック等による車輪ロック状態でないことを示しており、車両脱出判定フラグEsc_judが1の場合は、スタック等による車輪ロック状態であることを示している。
一方、ステップS300でAPS=1の場合はステップS304へ進み、lock_jud=1であるか否かを判定し、lock_jud=1の場合はステップS306へ進み、Vspeed<10であるか否かを判定する。ステップS306でVspeed<10の場合はステップS308へ進み、車両脱出判定フラグEsc_jud=1とする。
また、ステップS304でlock_jud=0の場合、又は、ステップS306でVspeed≧10の場合は、ステップS302へ進み、Esc_jud=0とする。
以上のように、図15の処理によれば、アクセル操作が行われており、lock_jud=1であり、車両速度Vが所定値(=10km/h)未満の場合は、車輪ロックがスタックに起因するものと判断し、車両脱出判定フラグEsc_jud=1とする。一方、lock_jud=1であり、車両速度Vが所定値(=10km/h)以上の場合は、車輪ロックがスタックに起因するものではないと判断し、車両脱出判定フラグEsc_jud=0とする。
図11に戻り、ステップS210の後はステップS212へ進む。ステップS212では、旋回アシスト演算部234が、車体付加モーメントMgに基づいて旋回モータトルクclcMotTrqを演算する。具体的に、ステップS212では、車体付加モーメントMgに基づいて左右旋回差トルクΔTvを以下の式から算出し、左右旋回差トルクΔTvに基づいて旋回モータトルクclcMotTrqを算出する。以下の式において、TrdRはリアのトレッドであり、TireRはタイヤ半径であり、Gratioギヤボックス116,118,120,122のギヤ比である。
ステップS212の後はステップS214へ進む。ステップS214以降では、出力制限演算部232が、旋回モータトルクclcMotTrqを制限するための制御ゲインを算出する。
先ず、ステップS214では、i_state_err=0であるか否かを判定し、i_state_err=0の場合はステップS216へ進み、制御ゲインを1とする(Gain=1)。次のステップS218では、旋回アシストトルクTvmotを演算する。旋回アシストトルクTvmotは、以下の式から算出される。
Tvmot=clcMotTq*Gain
一方、ステップS214でi_state_err=1の場合はステップS220へ進み、lock_jud=0であるか否かを判定し、lock_jud=0の場合は、ステップS216へ進み、出力ゲインを1とする(Gain=1)。このように、i_state_err=1であっても、車輪ロック状態フラグlock_judにより車輪ロックが発生していないと判定される場合は、出力ゲインを1とする。
一方、ステップS220でlock_jud=1の場合はステップS222へ進み、アクセルペダル操作量(APS)が0よりも大きいか否かを判定する。そして、アクセルペダル操作量(APS)が0の場合は、ステップS216へ進み、出力ゲインを1とする(Gain=1)。このように、i_state_err=1であり、且つ車輪ロック状態フラグlock_judにより車輪ロックが発生していると判定される場合であっても、アクセルペダル操作量(APS)が0の場合は、出力ゲインを1とする。
一方、ステップS222でアクセルペダル操作量(APS)が0よりも大きい場合は、ステップS224へ進む。ステップS224では、車両脱出判定フラグEsc_judの状態が1であるか否かを判定し、Esc_jud=1の場合はステップS226へ進み、ロックタイムカウンター(lock_time_counter)のカウント値αに1を加算する。なお、カウンターの初期値は1とする。
ステップS226の後はステップS228へ進み、カウント値αが10に到達したか否かを判定し、10に到達していない場合はステップS216へ進み、出力ゲインを1とする。
このように、ステップS224からステップS226へ進んだ場合は、車輪ロックがスタックに起因するものであるため(Esc_jud=1)、カウント値αが10に達するまでは出力ゲインが1とされる。これにより、旋回モータトルクclcMotTrqを制限しないことにより、スタック状態から早期の脱出を行うことができる。
ステップS228でカウント値がαに達した場合、またはステップS224でEsc_jud=0の場合は、ステップS230へ進む。ステップS230では、出力ゲインを0とする。ステップS230の後はステップS218へ進み、旋回アシストトルクTvmotを演算する。ステップS230からステップS218へ進んだ場合は、制御ゲインが0に設定されているため、旋回アシストトルクTvmotは0となる。従って、モータ108,110,112,114による旋回アシスト制御は行われず、前輪100,102の操舵のみによって車両1000が旋回する。これにより、モータ、インバータの過熱を確実に抑えることができる。
図16及び図17は、本実施形態による制御の効果を示す特性図である。図16及び図17では、ステアリング操舵角θhの増加に伴ってモータ・インバータ電流値(左後輪RL、右後輪RR)、目標ヨーレート、実ヨーレート、lock_jud、Esc_jud、出力制限フラグの状態が変化する様子を示している。なお、出力制限フラグは、制御ゲインが1の場合は0(オフ状態)に設定され、制御ゲインが0の場合は1(オン状態)に設定される。
図16に示す例では、時刻t0で車輪ロックが発生すると(lock_jud=1)、Esc_judが0であるため、図11のステップS224からステップS230へ進み、時刻t0の時点で制御ゲインが0に設定される(図11のステップS230)。これにより、時刻t0以降に速やかにモータ出力が0となり、左右の駆動力差による旋回アシストは行われない。従って、モータ、インバータに過負荷がかかることを抑止し、モータ、インバータの温度が上昇してしまうことを抑止できる。
一方、図17に示す例では、時刻t0で車輪ロックが発生すると(lock_jud=1)、Esc_judが1に設定されているため、図11のステップS228でカウント値αが10に到達するまでは、制御ゲインが1とされる(ステップS216)。従って、カウント値αが10に到達する時刻t1までは旋回モータトルクclcMotTrqに制限がかからないため、時刻t0以降、一定時間の間はモータが駆動される。これにより、スタックに起因して車輪がロックしている場合に、速やかに脱出することが可能である。従って、本実施形態によれば、lock_jud、Esc_judに基づいて車輪のロックモードの判定を行うことで、機器の破損に対する補償を行うと同時に、スタック時の脱出性能の向上を両立することが可能となる。
また、図18〜図20は、本実施形態による制御の効果を示す特性図であって、80km/h走行中、左Lターン旋回で旋回アシスト制御を行った場合を示している。ここで、図18は、車輪ロックが発生しない通常制御を示している。また、図19は、車輪ロックが発生した場合に、従来の制御を行った場合を示している。また、図20は、車輪ロックが発生した場合に、本実施形態の制御を行った場合を示している。
図18〜図20では、車体すべり角β、ヨーレートγ、差分Δγ、モータトルク指示値ΔMotTrq、ステアリング操舵角(St_ang=θh)、車両速度(VSP=V)、モータ温度(Mot_temp)、インバータ温度(INV_temp)、車輪速(Fl_rev(左前輪))、車輪速(Fr_rev(右前輪))、車輪速(Rl_rev(左後輪))、車輪速(Rr_rev(右後輪))、の各特性をそれぞれ示している。
図19及び図20に示す例では、ステアリング操舵時に右後輪にロックが発生しており、右後輪の車輪速が低下している。図19に示すように、本実施形態の制御を行わない場合、車輪ロックを検出せずにヨーレートが目標値に届かないため、差分Δγが大きくなり、モータトルク指示値ΔMotTrqが図20の通常制御時よりも増加する。このため、モータ、インバータの温度が上昇している。
一方、図20に示すように、本実施形態の制御を行った場合は、車輪ロックが発生すると制御ゲインが0となるため、モータトルク指示値ΔMotTrqが0となる。従って、モータ、インバータの温度上昇を抑制することが可能である。
以上説明したように本実施形態によれば、車輪ロックが発生したことが想定される場合は、左右モータによる旋回アシストトルクTvmotを0とすることにより、モータ、インバータに過負荷がかかることを抑止し、モータ、インバータの温度が上昇してしまうことを抑止できる。また、スタックに起因して車輪がロックしている場合は、一定時間の間は旋回モータトルクclcMotTrq制限をかけないようにすることで、スタックに起因して車輪がロックしている場合に、速やかに脱出することが可能となる。従って、機器の破損に対する補償を行うと同時に、スタック時の脱出性能の向上を両立することが可能となる。
以上、添付図面を参照しながら本発明の好適な実施形態について詳細に説明したが、本発明はかかる例に限定されない。本発明の属する技術の分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本発明の技術的範囲に属するものと了解される。