[本発明の実施形態の説明]
本発明の一実施形態は、舵角制御用の電動モータを駆動制御するためのモータ制御装置であって、操舵トルクを用いてアシストトルク指令値を生成するアシストトルク指令値生成部と、前記操舵トルクおよび前記アシストトルク指令値を用いて手動操舵指令値を生成する手動操舵指令値生成部と、運転支援用の自動操舵指令値に前記手動操舵指令値を加算して、統合角度指令値を演算する統合角度指令値演算部と、運転支援モード時において、前記アシストトルク指令値または前記手動操舵指令値に基づいて前記電動モータを制御する第1制御モードと、前記統合角度指令値に基づいて前記電動モータを制御する第2制御モードとを、車線に対する車両の横位置に応じて切り替える切替部とを含む、モータ制御装置を提供する。
本発明の一実施形態では、前記第1制御モードから前記第2制御モードに切り替わる前記横位置である第1横位置と、前記第2制御モードから前記第1制御モードに切り替わる前記横位置である第2横位置とが予め設定されており、前記車線の車線境界から前記第2横位置に前記車両が移動する際に前記車両に与えられる操舵反力は、前記操舵反力の低下率が大きい第1特性と、前記第1特性に連続しかつ前記操舵反力の低下率が前記第1特性よりも小さい第2特性とを有している。
本発明の一実施形態では、前記第1制御モードから前記第2制御モードに切り替わる前記横位置である第1横位置と、前記第2制御モードから前記第1制御モードに切り替わる前記横位置である第2横位置とが、異なる位置に設定されている。
本発明の一実施形態では、前記第2横位置は、前記第1横位置よりも車線中央側に設定されている。
本発明の一実施形態では、前記第1横位置は、前記第2横位置よりも車線中央側に設定されている。
本発明の一実施形態では、前記手動操舵指令値は、仮想路面負荷トルクを考慮して、前記手動操舵指令値を演算するように構成されている。
本発明の一実施形態では、前記仮想路面負荷トルクは、前記車線に対する前記車両の横位置に応じて設定される。
本発明の一実施形態では、前記仮想路面負荷トルクは、前記車線に対する前記車両の進行方向のなす角に応じて設定される、請求項6に記載のモータ制御装置。
本発明の一実施形態では、前記仮想路面負荷トルクは、前記車両が走行している前記車線の外側の情報に基づいて設定される。
[本発明の実施形態の詳細な説明]
以下では、この発明の実施の形態を、添付図面を参照して詳細に説明する。
図1は、本発明の一実施形態に係る操舵装置が適用された電動パワーステアリングシステムの概略構成を示す模式図である。
電動パワーステアリングシステム1は、車両を操向するための操舵部材としてのステアリングホイール(ハンドル)2と、このステアリングホイール2の回転に連動して転舵輪3を転舵する転舵機構4と、ドライバの操舵を補助するための操舵補助機構5とを備えている。ステアリングホイール2と転舵機構4とは、ステアリングシャフト6および中間軸7を介して機械的に連結されている。
ステアリングシャフト6は、ステアリングホイール2に連結された入力軸8と、中間軸7に連結された出力軸9とを含む。入力軸8と出力軸9とは、トーションバー10を介して相対回転可能に連結されている。
トーションバー10の近傍には、トルクセンサ12が配置されている。トルクセンサ12は、入力軸8および出力軸9の相対回転変位量に基づいて、ステアリングホイール2に与えられたトーションバートルクTtbを検出する。この実施形態では、トルクセンサ12によって検出されるトーションバートルクTtbは、例えば、左方向への操舵のためのトルクが正の値として検出され、右方向への操舵のためのトルクが負の値として検出され、その絶対値が大きいほどトーションバートルクTtbの大きさが大きくなるものとする。トーションバートルクTtbは、本発明の「操舵トルク」の一例である。
転舵機構4は、ピニオン軸13と、転舵軸としてのラック軸14とを含むラックアンドピニオン機構からなる。ラック軸14の各端部には、タイロッド15およびナックルアーム(図示略)を介して転舵輪3が連結されている。ピニオン軸13は、中間軸7に連結されている。ピニオン軸13は、ステアリングホイール2の操舵に連動して回転するようになっている。ピニオン軸13の先端には、ピニオン16が連結されている。
ラック軸14は、車両の左右方向に沿って直線状に延びている。ラック軸14の軸方向の中間部には、ピニオン16に噛み合うラック17が形成されている。このピニオン16およびラック17によって、ピニオン軸13の回転がラック軸14の軸方向移動に変換される。ラック軸14を軸方向に移動させることによって、転舵輪3を転舵することができる。
ステアリングホイール2が操舵(回転)されると、この回転が、ステアリングシャフト6および中間軸7を介して、ピニオン軸13に伝達される。そして、ピニオン軸13の回転は、ピニオン16およびラック17によって、ラック軸14の軸方向移動に変換される。これにより、転舵輪3が転舵される。
操舵補助機構5は、操舵補助力(アシストトルク)を発生するための電動モータ18と、電動モータ18の出力トルクを増幅して転舵機構4に伝達するための減速機19とを含む。減速機19は、ウォームギヤ20と、このウォームギヤ20と噛み合うウォームホイール21とを含むウォームギヤ機構からなる。減速機19は、伝達機構ハウジングとしてのギヤハウジング22内に収容されている。
以下において、減速機19の減速比(ギヤ比)をNで表す場合がある。減速比Nは、ウォームホイール21の回転角であるウォームホイール角θwwに対するウォームギヤ20の回転角であるウォームギヤ角θwgの比(θwg/θww)として定義される。
ウォームギヤ20は、電動モータ18によって回転駆動される。また、ウォームホイール21は、出力軸9に一体回転可能に連結されている。
電動モータ18によってウォームギヤ20が回転駆動されると、ウォームホイール21が回転駆動され、ステアリングシャフト6にモータトルクが付与されるとともにステアリングシャフト6(出力軸9)が回転する。そして、ステアリングシャフト6の回転は、中間軸7を介してピニオン軸13に伝達される。ピニオン軸13の回転は、ラック軸14の軸方向移動に変換される。これにより、転舵輪3が転舵される。すなわち、電動モータ18によってウォームギヤ20を回転駆動することによって、電動モータ18による操舵補助や転舵輪3の転舵が可能となる。電動モータ18には、電動モータ18のロータの回転角を検出するための回転角センサ23が設けられている。
出力軸9(電動モータ18の駆動対象の一例)に加えられるトルクとしては、電動モータ18によるモータトルクと、モータトルク以外の外乱トルクTlcとがある。モータトルク以外の外乱トルクTlcには、トーションバートルクTtb、路面負荷トルク(路面反力トルク)Trl、摩擦トルクTf等が含まれる。
トーションバートルクTtbは、ドライバによってステアリングホイール2に加えられる力や、ステアリング慣性によって発生する力等によって、ステアリングホイール2側から出力軸9に加えられるトルクである。
路面負荷トルクTrlは、タイヤに発生するセルフアライニングトルク、サスペンションやタイヤホイールアライメントによって発生する力、ラックアンドピニオン機構の摩擦力等によって、転舵輪3側からラック軸14を介して出力軸9に加えられるトルクである。
車両には、車両の進行方向前方の道路を撮影するCCD(Charge Coupled Device)カメラ25、自車位置を検出するためのGPS(Global Positioning System)26、道路形状や障害物を検出するためのレーダー27、地図情報を記憶した地図情報メモリ28および車速センサ29が搭載されている。
CCDカメラ25、GPS26、レーダー27、地図情報メモリ28および車速センサ29は、運転支援制御を行うための上位ECU(ECU:Electronic Control Unit)201に接続されている。上位ECU201は、CCDカメラ25、GPS26、レーダー27および車速センサ29によって得られる情報および地図情報を元に、周辺環境認識、自車位置推定、経路計画等を行い、操舵や駆動アクチュエータの制御目標値の決定を行う。
この実施形態では、運転モードとして、通常モードと運転支援モードとがある。上位ECU201は、運転支援モード時には、運転支援のための自動操舵指令値θAD,cmdを設定する。この実施形態では、運転支援は、車両が車線から逸脱するのを避けるためのレーンキープアシスト(LKA)である。自動操舵指令値θAD,cmdは、車両を目標走行ラインに沿って走行させるための操舵角の目標値である。
自動操舵指令値θAD,cmdは、例えば、車速、目標走行ラインに対する横偏差および目標走行ラインに対する車両のヨー偏差に基づいて、設定される。このような自動操舵指令値θAD,cmdを設定する処理は、周知であるため、ここでは詳細な説明を省略する。
また、上位ECU201は、運転モードが通常モードであるか運転支援モードであるかを示すモード信号Smode、車両基準位置が車線中央より左側にあるか右側にあるかを示す左右判別信号SLRおよび車両横位置Platを出力する。車両基準位置は、車両の幅中央の所定の基準位置である。
車両横位置Platは、車両が現在走行している車線の境界(以下、「車線境界」という。)から、車両基準位置までの距離である。具体的には、車両基準位置が中央より左側にある場合には、車両横位置Platは、左側車線境界から車両基準位置までの距離である。車両基準位置が車線中央より右側にある場合には、車両横位置Platは、右側車線境界から車両基準位置までの距離である。
モード信号Smode、左右判別信号SLR、車両横位置Platおよび自動操舵指令値θAD,cmdは、車載ネットワークを介して、モータ制御用ECU202に与えられる。トルクセンサ12によって検出されるトーションバートルクTtb、回転角センサ23の出力信号は、モータ制御用ECU202に入力される。モータ制御用ECU202は、これらの入力信号および上位ECU201から与えられる情報に基づいて、電動モータ18を制御する。
図2は、モータ制御用ECU202の電気的構成を示すブロック図である。
以下、主として、運転モードが運転支援モードである場合の動作について説明する。
モータ制御用ECU202は、マイクロコンピュータ40と、マイクロコンピュータ40によって制御され、電動モータ18に電力を供給する駆動回路(インバータ回路)31と、電動モータ18に流れる電流(以下、「モータ電流Imという)を検出するための電流検出回路32とを備えている。
マイクロコンピュータ40は、CPUおよびメモリ(ROM、RAM、不揮発性メモリなど)を備えており、所定のプログラムを実行することによって、複数の機能処理部として機能するようになっている。この複数の機能処理部には、アシストトルク指令値設定部41と、手動操舵指令値生成部42と、統合角度指令値演算部43と、角度制御部44と、第1重み乗算部45と、第2重み乗算部46と、加算部47と、トルク制御部(電流制御部)48と、重み設定部49とを含む。
第1重み乗算部45、第2重み乗算部46、加算部47および重み設定部49は、本発明における「切替部」の一例である。
アシストトルク指令値設定部41は、手動操作に必要なアシストトルクの目標値であるアシストトルク指令値Tasstを設定する。アシストトルク指令値設定部41は、トルクセンサ12によって検出されるトーションバートルクTtbに基づいて、アシストトルク指令値Tasstを設定する。トーションバートルクTtbに対するアシストトルク指令値Tasstの設定例は、図3に示されている。
アシストトルク指令値Tasstは、電動モータ18から左方向操舵のための操舵補助力を発生させるべきときには正の値とされ、電動モータ18から右方向操舵のための操舵補助力を発生させるべきときには負の値とされる。アシストトルク指令値Tasstは、トーションバートルクTtbの正の値に対しては正をとり、トーションバートルクTtbの負の値に対しては負をとる。そして、アシストトルク指令値Tasstは、トーションバートルクTtbの絶対値が大きくなるほど、その絶対値が大きくなるように設定される。
なお、アシストトルク指令値設定部41は、上位ECU201から車速を取得し、車速とトーションバートルクTtbとに基づいてアシストトルク指令値Tasstを設定してもよい。この場合には、アシストトルク指令値Tasstは、前述のようにトーションバートルクTtbに応じて設定されるとともに、車速Vが大きいほどアシストトルク指令値Tasstの絶対値が小さくなるように設定される。
なお、アシストトルク指令値設定部41は、トーションバートルクTtbに予め設定された定数を乗算することによって、アシストトルク指令値Tasstを演算してもよい。
手動操舵指令値生成部42は、ドライバがステアリングホイール2を操作した場合に、当該ステアリングホイール操作に応じた操舵角(より正確には出力軸9の回転角θ)を手動操舵指令値θMD,cmdとして設定するために設けられている。手動操舵指令値生成部42は、トルクセンサ12によって検出されるトーションバートルクTtb、アシストトルク指令値設定部41によって設定されるアシストトルク指令値Tasstとを用いて手動操舵指令値θMD,cmdを生成する。手動操舵指令値生成部42の詳細については、後述する。
統合角度指令値演算部43は、上位ECU201によって設定される自動操舵指令値θAD,cmdに、手動操舵指令値θMD,cmdを加算して、統合角度指令値θint,cmdを演算する。
角度制御部44は、統合角度指令値θint,cmdに基づいて、統合角度指令値θint,cmdに応じた統合モータトルク指令値Tmint,cmdを演算する。角度制御部44の詳細については、後述する。
第1重み乗算部45は、アシストトルク指令値設定部41によって設定されるアシストトルク指令値Tasstに第1重みW1を乗算する。第2重み乗算部46は、統合モータトルク指令値Tmint,cmdに第2重みW2を乗算する。第1重みW1および第1重みW2は、重み設定部49によって設定される。重み設定部49の詳細については後述する。
加算部47は、第1重み乗算後(第1重み付け処理後)のアシストトルク指令値W1・Tasstと、第2重み乗算後(第2重み付け処理後)の統合モータトルク指令値W2・Tmint,cmdとを加算することにより、電動モータ18に対するモータトルク指令値Tm,cmdを演算する。
トルク制御部48は、電動モータ18のモータトルクがモータトルク指令値Tm,cmdに近づくように駆動回路31を駆動する。
手動操舵指令値生成部42は、この実施形態では、リファレンスEPSモデルを用いて、手動操舵指令値θMD,cmdを設定する。
図4は、手動操舵指令値生成部42で用いられるリファレンスEPSモデルの一例を示す模式図である。
このリファレンスEPSモデルは、ロアコラムを含む単一慣性モデルである。ロアコラムは、出力軸9およびウォームホイール21に対応する。図4において、Jrefは、ロアコラムの慣性であり、Ttbは、トーションバートルクである。ロアコラムには、トーションバートルクTtb、アシストトルク指令値Tasstおよび路面負荷トルクTrlが与えられる。ロアコラムの回転角を手動操舵指令値θMD,cmdとすると、路面負荷トルク(仮想路面負荷トルク)Trlは、仮想負荷ばね剛性係数kvl、仮想負荷粘性減衰係数cvlおよび手動操舵指令値θMD,cmdを用いて、次式(1)で表される。
Trl=-kvl・θMD,cmd-cvl(dθMD,cmd/dt) …(1)
ただし、kvl=kvl(Plat),cvl=cvl(Plat)
前記式(1)で示されるように、仮想負荷ばね剛性係数kvlおよび仮想負荷粘性減衰係数cvlは、車両横位置Platに対応して設定されている。
図5は、車両横位置Platに対する仮想負荷ばね剛性係数kvlの設定例を示すグラフである。図5における記号の添え字Lは、車両基準位置が車線中央よりも左側にある場合に当該記号が適用されることを示し、Rは車両基準位置が車線中央よりも右側にある場合に当該記号が適用されることを示す。後述する図6においても同じである。
車両横位置Platが左側車線境界に対して所定のPL_start以上または右側車線境界に対して所定のPR_start以上である場合には、仮想負荷ばね剛性係数kvlは、所定値kvl,startに設定される。PL_startは、例えば60cm程度に設定される。PR_startは、例えば70cm程度に設定される。
車両横位置Platが、左側車線境界に対してPL_startよりも小さい所定のPL_small以上かつPL_start未満である場合には、仮想負荷ばね剛性係数kvlは、車両横位置PlatがPL_startから小さくなるほど(車両基準位置が左側車線境界に近づくほど)、kvl,startからkvl,L_maxまで漸増する特性にしたがって設定される。PL_smallは、例えば40cm程度に設定される。
車両横位置Platが、右側車線境界に対してPR_startよりも小さい所定のPR_small以上でPR_start未満である場合には、仮想負荷ばね剛性係数kvlは、車両横位置PlatがPR_startから小さくなるほど(車両基準位置が右側車線境界に近づくほど)、kvl,startからkvl,R_maxまで漸増する特性にしたがって設定される。PR_smallは、例えば50cm程度に設定される。
車両横位置Platが左側車線境界に対してPL_small未満である場合には、仮想負荷ばね剛性係数kvlは、kvl,L_maxに設定される。車両横位置Platが右側車線境界に対してPR_small未満である場合には、仮想負荷ばね剛性係数kvlは、kvl,R_maxに設定される。このように、仮想負荷ばね剛性係数kvlに制限を設けているのは、仮想路面負荷トルクTrlが大きくなりすぎて、ドライバが操舵介入できなくなるのを防止するためである。
図6は、車両横位置Platに対する仮想負荷粘性減衰係数cvlの設定例を示すグラフである。
車両横位置Platが左側車線境界に対して所定のPL_start以上または右側車線境界に対して所定のPR_start以上である場合には、仮想負荷粘性減衰係数cvlは、所定値cvl,startに設定される。
車両横位置Platが、左側車線境界に対してPL_startよりも小さい所定のPL_small以上かつPL_start未満である場合には、仮想負荷粘性減衰係数cvlは、車両横位置PlatがPL_startから小さくなるほど(車両基準位置が左側車線境界に近づくほど)、cvl,startからcvl,L_maxまで漸増する特性にしたがって設定される。
車両横位置Platが、右側車線境界に対してPR_startよりも小さい所定のPR_small以上でPR_start未満である場合には、仮想負荷粘性減衰係数cvlは、車両横位置PlatがPR_startから小さくなるほど(車両基準位置が右側車線境界に近づくほど)、cvl,startからcvl,R_maxまで漸増する特性にしたがって設定される。
車両横位置Platが左側車線境界に対してPL_small未満である場合には、仮想負荷粘性減衰係数cvlは、cvl,L_maxに設定される。車両横位置Platが右側車線境界に対してPR_small未満である場合には、仮想負荷粘性減衰係数cvlは、cvl,R_maxに設定される。
リファレンスEPSモデルの運動方程式は、次式(2)で表される。
Jref・d2θMD,cmd/dt2=Ttb+Tasst-kvl・θMD,cmd
-cvl(dθMD,cmd/dt) …(2)
手動操舵指令値生成部42は、Ttbにトルクセンサ12によって検出されるトーションバートルクTtbを代入し、Tasstにアシストトルク指令値設定部41によって設定されるアシストトルク指令値Tasstを代入して、式(2)の微分方程式を解くことにより、手動操舵指令値θMD,cmdを演算する。
なお、車両横位置Platに対応した仮想負荷ばね剛性係数kvlは、例えば、上位ECU201から与えられる車両横位置Platと、図5の車両横位置Platに対する仮想負荷ばね剛性係数kvlを記憶したマップとに基づいて求められる。また、車両横位置Platに対応した応じた仮想負荷粘性減衰係数cvlは、例えば、上位ECU201から与えられる車両横位置Platと、図6の車両横位置Platに対する仮想負荷粘性減衰係数cvlを記憶したマップとに基づいて求められる。
なお、現在走行している車線の外側の情報に応じて仮想路面負荷トルクTrlの特性が変わるように、仮想負荷ばね剛性係数kvlおよび仮想負荷粘性減衰係数cvlを設定してもよい。例えば、車線に対して隣接レーンがある場合と、車線に対して隣接レーンがない場合と、車線に対してガードレール等の防護柵がある場合とによって、仮想路面負荷トルクTrlの特性が変わるように、仮想負荷ばね剛性係数kvlおよび仮想負荷粘性減衰係数cvlを設定してもよい。この場合、車線の外側の情報は、上位ECU201からモータ制御用ECU202に与えられる。
図7は、角度制御部44の構成を示すブロック図である。
角度制御部44は、統合角度指令値θint,cmdに基づいて、統合モータトルク指令値Tmint,cmdを演算する。角度制御部44は、ローパスフィルタ(LPF)51と、フィードバック制御部52と、フィードフォワード制御部53と、外乱トルク推定部54と、トルク加算部55と、外乱トルク補償部56と、第1減速比除算部57と、減速比乗算部58と、回転角演算部59と、第2減速比除算部60とを含む。
減速比乗算部58は、加算部47(図2参照)によって演算されるモータトルク指令値Tm,cmdに減速機19の減速比Nを乗算することにより、モータトルク指令値Tm,cmdを出力軸9(ウォームホイール21)に作用する出力軸トルク指令値N・Tm,cmdに換算する。
回転角演算部59は、回転角センサ23の出力信号に基づいて、電動モータ18のロータ回転角θmを演算する。第2減速比除算部60は、回転角演算部59によって演算されるロータ回転角θmを減速比Nで除算することにより、ロータ回転角θmを出力軸9の回転角(実操舵角)θに換算する。
ローパスフィルタ51は、統合角度指令値θint,cmdに対してローパスフィルタ処理を行う。ローパスフィルタ処理後の統合角度指令値θintL,cmdは、フィードバック制御部52およびフィードフォワード制御部53に与えられる。
フィードバック制御部52は、外乱トルク推定部54によって演算される操舵角推定値^θを、ローパスフィルタ処理後の統合角度指令値θintL,cmdに近づけるために設けられている。フィードバック制御部52は、角度偏差演算部52AとPD制御部52Bとを含む。角度偏差演算部52Aは、統合角度指令値θintL,cmdと操舵角推定値^θとの偏差Δθ(=θintL,cmd-^θ)を演算する。なお、角度偏差演算部52Aは、統合角度指令値θintL,cmdと、第2減速比除算部60によって演算される実操舵角θとの偏差(θintL,cmd-θ)を、角度偏差Δθとして演算するようにしてもよい。
PD制御部52Bは、角度偏差演算部52Aによって演算される角度偏差Δθに対してPD演算(比例微分演算)を行うことにより、フィードバック制御トルクTfbを演算する。フィードバック制御トルクTfbは、トルク加算部55に与えられる。
フィードフォワード制御部53は、電動パワーステアリングシステム1の慣性による応答性の遅れを補償して、制御の応答性を向上させるために設けられている。フィードフォワード制御部53は、角加速度演算部53Aと慣性乗算部53Bとを含む。角加速度演算部53Aは、統合角度指令値θintL,cmdを2階微分することにより、目標角加速度d2θintL,cmd/dt2を演算する。
慣性乗算部53Bは、角加速度演算部53Aによって演算された目標角加速度d2θintL,cmd/dt2に、電動パワーステアリングシステム1の慣性Jを乗算することにより、フィードフォワード制御トルクTff(=J・d2θintL,cmd/dt2)を演算する。慣性Jは、例えば、後述する電動パワーステアリングシステム1の物理モデル(図8参照)から求められる。フィードフォワード制御トルクTffは、慣性補償値として、トルク加算部55に与えられる。
トルク加算部55は、フィードバック制御トルクTfbにフィードフォワード制御トルクTffを加算することにより、基本トルク指令値(Tfb+Tff)を演算する。
外乱トルク推定部54は、プラント(電動モータ18の制御対象)に外乱として発生する非線形なトルク(外乱トルク:モータトルク以外のトルク)を推定するために設けられている。外乱トルク推定部54は、出力軸トルク指令値N・Tm,cmdと、実操舵角θとに基づいて、外乱トルク(外乱負荷)Tlc、操舵角θおよび操舵角微分値(角速度)dθ/dtを推定する。外乱トルクTlc、操舵角θおよび操舵角微分値(角速度)dθ/dtの推定値を、それぞれ^Tlc、^θおよびd^θ/dtで表す。外乱トルク推定部54の詳細については、後述する。
外乱トルク推定部54によって演算された外乱トルク推定値^Tlcは、外乱トルク補償値として外乱トルク補償部56に与えられる。外乱トルク推定部54によって演算された操舵角推定値^θは、角度偏差演算部52Aに与えられる。
外乱トルク補償部56は、基本トルク指令値(Tfb+Tff)から外乱トルク推定値^Tlcを減算することにより、統合操舵トルク指令値Tsint,cmd(=Tfb+Tff-^Tlc)を演算する。これにより、外乱トルクが補償された統合操舵トルク指令値Tsint,cmd(出力軸9に対するトルク指令値)が得られる。
統合操舵トルク指令値Tsint,cmdは、第1減速比除算部57に与えられる。第1減速比除算部57は、統合操舵トルク指令値Tsint,cmdを減速比Nで除算することにより、統合モータトルク指令値Tmint,cmdを演算する。この統合モータトルク指令値Tmint,cmdが、第2重み乗算部46(図2参照)に与えられる。
外乱トルク推定部54について詳しく説明する。外乱トルク推定部54は、例えば、図8に示す電動パワーステアリングシステム1の物理モデル101を使用して、外乱トルクTlc、操舵角θおよび角速度dθ/dtを推定する外乱オブザーバから構成されている。
この物理モデル101は、出力軸9および出力軸9に固定されたウォームホイール21を含むプラント(モータ駆動対象の一例)102を含む。プラント102には、ステアリングホイール2からトーションバー10を介してトーションバートルクTtbが与えられるとともに、転舵輪3側から路面負荷トルクTrlが与えられる。
さらに、プラント102には、ウォームギヤ20を介して出力軸トルク指令値N・Tm,cmdが与えられるとともに、ウォームホイール21とウォームギヤ20との間の摩擦によって摩擦トルクTfが与えられる。
プラント102の慣性をJとすると、物理モデル101の慣性についての運動方程式は、次式(3)で表される。
d2θ/dt2は、プラント102の角加速度である。Nは、減速機19の減速比である。Tlcは、プラント102に与えられるモータトルク以外の外乱トルクを示している。この実施形態では、外乱トルクTlcは、トーションバートルクTtbと路面負荷トルクTrlと摩擦トルクTfとの和として示されているが、実際には、外乱トルクTlcはこれら以外のトルクを含んでいる。
図8の物理モデル101に対する状態方程式は、次式(4)で表わされる。
前記式(4)において、xは、状態変数ベクトル、u1は、既知入力ベクトル、u2は、未知入力ベクトル、yは、出力ベクトル(測定値)である。また、前記式(4)において、Aは、システム行列、B1は、第1入力行列、B2は、第2入力行列、Cは、出力行列、Dは、直達行列である。
前記状態方程式を、未知入力ベクトルu2を状態の1つとして含めた系に拡張する。拡張系の状態方程式(拡張状態方程式)は、次式(5)で表される。
前記式(5)において、xeは、拡張系の状態変数ベクトルであり、次式(6)で表される。
前記式(5)において、Aeは、拡張系のシステム行列、Beは、拡張系の既知入力行列、Ceは、拡張系の出力行列である。
前記式(5)の拡張状態方程式から、次式(7)の方程式で表される外乱オブザーバ(拡張状態オブザーバ)が構築される。
式(7)において、^xeはxeの推定値を表している。また、Lはオブザーバゲインである。また、^yはyの推定値を表している。^xeは、次式(8)で表される。
式(8)において、^θはθの推定値であり、^TlcはTlcの推定値である。
外乱トルク推定部54は、前記式(7)の方程式に基づいて状態変数ベクトル^xeを演算する。
図9は、外乱トルク推定部54の構成を示すブロック図である。
外乱トルク推定部54は、入力ベクトル入力部71と、出力行列乗算部72と、第1加算部73と、ゲイン乗算部74と、入力行列乗算部75と、システム行列乗算部76と、第2加算部77と、積分部78と、状態変数ベクトル出力部79とを含む。
減速比乗算部58(図7参照)によって演算される出力軸トルク指令値N・Tm,cmdは、入力ベクトル入力部71に与えられる。入力ベクトル入力部71は、入力ベクトルu1を出力する。
積分部78の出力が状態変数ベクトル^xe(前記式(8)参照)となる。演算開始時には、状態変数ベクトル^xeとして初期値が与えられる。状態変数ベクトル^xeの初期値は、たとえば0である。
システム行列乗算部76は、状態変数ベクトル^xeにシステム行列Aeを乗算する。出力行列乗算部72は、状態変数ベクトル^xeに出力行列Ceを乗算する。
第1加算部73は、第2減速比除算部60(図7参照)によって演算された実操舵角θである出力ベクトル(測定値)yから、出力行列乗算部72の出力(Ce・^xe)を減算する。つまり、第1加算部73は、出力ベクトルyと出力ベクトル推定値^y(=Ce・^xe)との差(y-^y)を演算する。ゲイン乗算部74は、第1加算部73の出力(y-^y)にオブザーバゲインL(前記式(7)参照)を乗算する。
入力行列乗算部75は、入力ベクトル入力部71から出力される入力ベクトルu1に入力行列Beを乗算する。第2加算部77は、入力行列乗算部75の出力(Be・u1)と、システム行列乗算部76の出力(Ae・^xe)と、ゲイン乗算部74の出力(L(y-^y))とを加算することにより、状態変数ベクトルの微分値d^xe/dtを演算する。積分部78は、第2加算部77の出力(d^xe/dt)を積分することにより、状態変数ベクトル^xeを演算する。状態変数ベクトル出力部79は、状態変数ベクトル^xeに基づいて、外乱トルク推定値^Tlc、操舵角推定値^θおよび角速度推定値d^θ/dtを演算する。
一般的な外乱オブザーバは、前述の拡張状態オブザーバとは異なり、プラントの逆モデルとローパスフィルタとから構成される。プラントの運動方程式は、前述のように式(3)で表される。したがって、プラントの逆モデルは、次式(9)となる。
一般的な外乱オブザーバへの入力は、J・d2θ/dt2およびN・Tm,cmdであり、実操舵角θの2階微分値を用いるため、回転角センサ23のノイズの影響を大きく受ける。これに対して、前述の実施形態の拡張状態オブザーバでは、積分型で外乱トルクを推定するため、微分によるノイズ影響を低減できる。
なお、外乱トルク推定部54として、プラントの逆モデルとローパスフィルタとから構成される一般的な外乱オブザーバを用いてもよい。
図10は、トルク制御部48の構成を示す模式図である。
トルク制御部48(図2参照)は、モータ電流指令値演算部81と、電流偏差演算部82と、PI制御部83と、PWM(Pulse Width Modulation)制御部84とを含む。
モータ電流指令値演算部81は、加算部47(図2参照)によって演算されたモータトルク指令値Tm,cmdを電動モータ18のトルク定数Ktで除算することにより、モータ電流指令値Im,cmdを演算する。
電流偏差演算部82は、モータ電流指令値演算部81によって得られたモータ電流指令値Im,cmdと、電流検出回路32によって検出されたモータ電流Imとの偏差ΔI(=Im,cmd-Im)を演算する。
PI制御部83は、電流偏差演算部82によって演算された電流偏差ΔIに対するPI演算(比例積分演算)を行うことにより、電動モータ18に流れるモータ電流Imをモータ電流指令値Im,cmdに導くための駆動指令値を生成する。PWM制御部84は、前記駆動指令値に対応するデューティ比のPWM制御信号を生成して、駆動回路31に供給する。これにより、駆動指令値に対応した電力が電動モータ18に供給されることになる。
図11は、運転支援モード時に重み設定部49によって行われる重み設定処理の手順を示すフローチャートである。
運転モードが運転支援モードになると、重み設定部49は、第1重みW1を1に設定し、第2重みW2を0に設定する(ステップS1)。これにより、電動モータ18の制御モードは、アシストトルク指令値Tasstのみによって電動モータ18が駆動制御される第1制御モードとなる。
なお、運転モードが運転支援モードになると、上位ECU201によって自動操舵指令値θAD,cmdが設定され、その自動操舵指令値θAD,cmd、モード信号Smode、左右判別信号SLRおよび車両横位置Platがモータ制御用ECU202に与えられる。
次に、重み設定部49は、左右判別信号SLRに基づき、車両基準位置が車線中央の左側にあるか否かを判別する(ステップS2)。
車両基準位置が車線中央の左側にある場合には(ステップS2:YES)、重み設定部49は、車両横位置PlatがPL_start(図5、図6参照)よりも小さいか否かを判別する(ステップS3)。
Plat≧PL_startであれば(ステップS3:NO)、重み設定部49は、ステップS2に戻る。
ステップS3において、Plat<PL_startであると判別された場合には(ステップS3:YES)、重み設定部49は、第1重みW1を0に設定し、第2重みW2を1に設定する(ステップS4)。この際、重み設定部49は、第1重みW1を1から0まで漸減させるとともに、第2重みW2を0から1まで漸増させることが好ましい。第1重みW1を1から0まで漸減させる時間(第2重みW2を0から1まで漸増させる時間)は、例えば0.1秒程度であってもよい。
これにより、電動モータ18の制御モードは、統合モータトルク指令値Tmint,cmdによって電動モータ18が駆動制御される第2制御モードとなる。なお、第1重みW1が漸減されている間(第2重みW2が漸増されている間)は、第1重み乗算後のアシストトルク指令値W1・Tasstと、第2重み乗算後の統合モータトルク指令値w2・Tmint,cmdとの和に基づいて、電動モータ18が制御される。
第2制御モード時においては、手動操舵指令値θMD,cmdと、自動操舵指令値θAD,cmdとの和である統合角度指令値θint,cmdに基づいて電動モータ18が制御されるので、手動操舵指令値θMD,cmdの演算に用いられる仮想路面負荷トルクTrlに基づく操舵反力が反映されるようになる。
次に、重み設定部49は、車両横位置PlatがPL_startよりも大きな所定のPL_return(図12参照)よりも小さいか否かを判別する(ステップS5)。PL_returnは、例えば80cmに設定される。PL_returnは、車両基準位置が車線中央よりも左側にあり、かつ制御モードが第2制御モードである場合に、制御モードを第1制御モードに戻すために使用される閾値である。
Plat≦PL_returnであれば(ステップS5:NO)、重み設定部49は、ステップS5に戻る。
ステップS5において、Plat>PL_returnであると判別された場合には(ステップS5:YES)、重み設定部49は、第1重みW1を1に設定し、第2重みW2を0に設定する(ステップS6)。この際、重み設定部49は、第1重みW1を0から1まで漸増させるとともに、第2重みW2を1から0まで漸減させることが好ましい。第1重みW1を0から1まで漸増させる時間(第2重みW2を1から0まで漸減させる時間)は、例えば0.1秒程度であってもよい。
これにより、電動モータ18の制御モードは、第1制御モードとなる。なお、第1重みW1が漸増されている間(第2重みW2が漸減されている間)は、第1重み乗算後のアシストトルク指令値W1・Tasstと、第2重み乗算後の統合モータトルク指令値w2・Tmint,cmdとの和に基づいて、電動モータ18が制御される。
第1制御モード時においては、手動操舵指令値θMD,cmdの演算に用いられる仮想路面負荷トルクTrlに基づく操舵反力は反映されない。
ステップS6の処理が行われると、重み設定部49は、ステップS2に戻る。
ステップS2において、車両基準位置が車線中央の右側にあると判別された場合には(ステップS2:NO)、重み設定部49は、車両横位置PlatがPR_start(図5、図6参照)よりも小さいか否かを判別する(ステップS7)。
Plat≧PR_startであれば(ステップS7:NO)、重み設定部49は、ステップS2に戻る。
ステップS7において、Plat<PR_startであると判別された場合には(ステップS7:YES)、重み設定部49は、第1重みW1を0に設定し、第2重みW2を1に設定する(ステップS8)。この際、重み設定部49は、第1重みW1を1から0まで漸減させるとともに、第2重みW2を0から1まで漸増させることが好ましい。
これにより、電動モータ18の制御モードは、第2制御モードとなる。第2制御モード時においては、仮想路面負荷トルクTrlに基づく操舵反力が反映されるようになる。
次に、重み設定部49は、車両横位置PlatがPR_startよりも大きな所定のPR_return(図12参照)よりも小さいか否かを判別する(ステップS9)。PR_returnは、例えば90cmに設定される。PR_returnは、車両基準位置が車線中央よりも右側にあり、かつ制御モードが第2制御モードである場合に、制御モードを第1制御モードに戻すために使用される閾値である。
Plat≦PR_returnであれば(ステップS9:NO)、重み設定部49は、ステップS9に戻る。
ステップS9において、Plat>PR_returnであると判別された場合には(ステップS9:YES)、重み設定部49は、第1重みW1を1に設定し、第2重みW2を0に設定する(ステップS10)。この際、重み設定部49は、第1重みW1を0から1まで漸増させるとともに、第2重みW2を1から0まで漸減させることが好ましい。
これにより、電動モータ18の制御モードは、第1制御モードとなる。第1制御モード時においては、仮想路面負荷トルクTrlに基づく操舵反力は反映されない。
ステップS10の処理が行われると、重み設定部49は、ステップS2に戻る。
なお、運転モードが通常モードである場合には、重み設定部49は、第1重みW1を1に設定し、第2重みW2を0に設定する。したがって、通常モード時には、アシストトルク指令値Tasstのみに基づいて、電動モータ18が駆動制御される。
図12は、車両横位置Platと、式(1)に基づいて演算される仮想路面負荷トルクTrlの絶対値|Trl|との関係の一例を示すグラフである。図12は、式(1)におけるθMD,cmdおよびdθMD,cmd/dtが一定であると仮定した場合の車両横位置Platと仮想路面負荷トルクの絶対値|Trl|との関係を示している。
図12では、車線に対して隣接レーンがある場合と、車線に対して隣接レーンがない場合と、車線に対してガードレール等の防護柵がある場合とによって、仮想路面負荷トルクTrlの特性が変わるように、仮想負荷ばね剛性係数kvlおよび仮想負荷粘性減衰係数cvlが設定されている場合の例を示している。
車両横位置Platが左側車線境界に対してPL_start以上の場合または右側車線境界に対してPR_start以上の場合には、仮想負荷ばね合成係数kvlはkvl,startとなり、仮想負荷粘性減衰係数cvlはcvl,startとなるため、仮想路面負荷トルクの絶対値|Trl|は一定値となる。
車両横位置Platが、左側車線境界に対してPL_small以上かつPL_start未満である場合には、仮想路面負荷トルクの絶対値|Trl|は、車両横位置PlatがPL_startから小さくなるほど(車両基準位置が左側車線境界に近づくほど)、大きくなる。図12の例では、|Trl|が線形に漸増しているが、|Trl|が非線形に漸増するようにしてもよい。
車両横位置PlatがPL_small未満になると、仮想路面負荷トルクの絶対値|Trl|は、車両横位置PlatがPL_smallである場合の仮想路面負荷トルクの絶対値|Trl|に固定される。
車両横位置Platが、右側車線境界に対してPR_small以上かつPR_start未満である場合には、仮想路面負荷トルクの絶対値|Trl|は、車両横位置PlatがPR_startから小さくなるほど(車両基準位置が左側車線境界に近づくほど)、大きくなる。図12の例では、|Trl|が線形に漸増しているが、|Trl|が非線形に漸増するようにしてもよい。
車両横位置PlatがPR_small未満になると、仮想路面負荷トルクTrlの絶対値|Trl|は、車両横位置PlatがPR_smallである場合の仮想路面負荷トルクの絶対値|Trl|に固定される。
図12の例では、車両横位置PlatがPL_startまたはPR_start未満である場合における仮想路面負荷トルクの絶対値|Trl|が、隣接レーンがある場合、隣接レーンがない場合、防護柵がある場合の順に、大きくなるように、仮想負荷ばね剛性係数kvlおよび仮想負荷粘性減衰係数cvlが設定されている。
図13は、運転支援モード時において仮想路面負荷トルクTrlに基づいて発生する操舵反力を説明するための模式図である。
時点t0では、制御モードは第1モードであり、車両基準位置は車線中央にある。制御モードが第1制御モードであるため、W1=1、W2=0であり、手動操舵指令値θMD,cmdの演算に用いられる仮想路面負荷トルクTrlに基づく操舵反力は0である。
時点t0直後にドライバが右方向への操舵を行ったため、車両が右方向へ移動し始める。そして、時点t1で車両横位置PlatがPR_startに達すると、W1が漸減されるとともにW2が漸増され、時点t2でW1=0、W2=1となる。つまり、制御モードが第2制御モードとなる。
時点t0から時点t1までは、手動操舵指令値θMD,cmdの演算に用いられる仮想路面負荷トルクTrlに基づく操舵反力は0であるが、時点t1からt2までは、仮想路面負荷トルクTrlに基づく操舵反力の一部が反映されるため、操舵反力は徐々に大きくなる。そして、時点t2からは制御モードが第2制御モードとなるため、仮想路面負荷トルクTrlに基づく操舵反力がさらに大きくなる。
そして、車両基準位置が右側車線境界に達すると(時点t3)、操舵反力が最大反力値となる。ドライバが操舵反力を感じて右方向への操舵を加えなくなると、車両が車線中央に向かって移動する。そして、車両基準位置が右側車線境界よりも車線中央側に入ると(時点t4)、仮想路面負荷トルクTrlに基づく操舵反力が減少していく。そして、車両横位置PlatがPR_startに達すると(時点t5)、仮想路面負荷トルクTrlに基づく操舵反力が一定値となる。
この後、車両横位置PlatがPR_returnに達すると(時点t6)、W1が漸増されるとともにW2が漸減され、時点t7でW1=1、W2=0となる。つまり、制御モードが第1制御モードとなる。図13からわかるように、時点t4から時点t5までの期間では、操舵反力特性は操舵反力の低下率が大きい特性(第1特性)となり、時点t5から後述する時点t6までの期間では、操舵反力特性は操舵反力の低下率が小さい特性(第2特性)となる。これにより、車両が車線中央に戻るときの車両挙動の安定化が図れるようになる。
なお、図13では第2特性における操舵反力の低下率は0(すなわち、操舵反力は一定)となっているが、第1特性における操舵反力の低下率よりも低い低下率であれば、第2特性における操舵反力の低下率は0以外であってもよい。この実施形態では、第2特性における操舵反力の低下率を0にすることによって、車両が車線中央に戻るときの車両挙動の安定化を確実に行えるようにしている。
時点t6からt7までは、仮想路面負荷トルクTrlに基づく操舵反力の一部が反映されるため、操舵反力は徐々に小さくなる。そして、時点t7からは制御モードが第1制御モードとなるため、仮想路面負荷トルクTrlに基づく操舵反力は0となる。
前述の実施形態では、手動操舵指令値生成部42によってアシスト制御および運転支援のための舵角制御とは独立して操舵反力を設計することができる。
また、前述の実施形態では、ドライバは、車両の横位置に応じた反力を操舵トルクとして感じることができるため、車線逸脱防止の効果が向上する。
また、前述の実施形態では、第1重みW1を1から0(第2重みW1を0から1)に切り替えるための第1車両横位置と、第1重みW1を0から1(第2重みW1を1から0)に切り替えるための第2車両横位置とが異なる位置に設定されている。具体的には、第2車両横位置は、第1車両横位置よりも車線中央側に設定されている。これにより、車線逸脱方向に向かうときのドライバへの反力生成と、車線中央に戻るときの車両挙動の安定化を両立させることが可能となる。
言い換えれば、第2車両横位置を、第1車両横位置と同じ位置に設定すると、大きな操舵反力が作用しているときに、制御モードが第2制御モードから第1制御モードに切り替えられるため、車両挙動が安定しなくなる恐れがある。
また、前述の実施形態では、現在走行車線の外側の環境(隣接車線の有無、ガードレールの有無等)に応じた危険度をドライバがハンドルを介して直感的に認識できるようになる。
以下、運転支援モード時の重み設定部49によって行われる重み設定処理の手順の変形例(重み設定部49の変形例)について説明する。
[重み設定部49の第1変形例]
第1変形例では、第1重みW1を1から0(第2重みW1を0から1)に切り替えるための第1車両横位置と、第1重みW1を0から1(第2重みW1を1から0)に切り替えるための第2車両横位置とが同じ位置に設定される。
ここでは、車両が車線中央の左側にある場合の第1車両位置および第2車両位置としてPL_returnが設定され、車両が車線中央の右側にある場合の第1車両位置および第2車両位置としてPR_returnが設定されているものとする。
この場合、運転支援モード時の重み設定部49によって行われる重み付け設定処理の手人は、図11に示される手順とほぼ同様である。ただし、図11のステップS3のPlat<PL_startという条件が、Plat<PL_returnという条件に置き換えられる。また、図11のステップS7のPlat<PR_startという条件が、Plat<PR_returnという条件に置き換えられる。それ以外の手順は、図11の手順と同じである。
図14は、前述のように第1車両横位置と第2車両横位置とか同じ位置に設定された場合に、運転支援モード時において仮想路面負荷トルクTrlに基づいて発生する操舵反力を説明するための模式図である。
時点t0では、制御モードは第1モードであり、車両基準位置は車線中央にある。制御モードが第1制御モードであるため、W1=1、W2=0であり、手動操舵指令値θMD,cmdの演算に用いられる仮想路面負荷トルクTrlに基づく操舵反力は0である。
時点t0直後にドライバが右方向への操舵を行ったため、車両が右方向へ移動し始める。そして、時点t1で車両横位置PlatがPR_returnを右側車線境界側に超えると、W1が漸減されるとともにW2が漸増され、時点t2でW1=0、W2=1となる。つまり、制御モードが第2制御モードとなる。
時点t0から時点t1までは、手動操舵指令値θMD,cmdの演算に用いられる仮想路面負荷トルクTrlに基づく操舵反力は0であるが、時点t1からt2までは、仮想路面負荷トルクTrlに基づく操舵反力の一部が反映されるため、操舵反力は徐々に大きくなる。そして、時点t2からは制御モードが第2制御モードとなるため、仮想路面負荷トルクTrlに基づく操舵反力がさらに大きくなる。
そして、車両基準位置が右側車線境界に達すると(時点t3)、操舵反力が最大反力値となる。ドライバが操舵反力を感じて右方向への操舵を加えなくなると、車両が車線中央に向かって移動する。そして、車両基準位置が右側車線境界よりも車線中央側に入ると(時点t4)、仮想路面負荷トルクTrlに基づく操舵反力が減少していく。そして、車両横位置PlatがPR_startに達すると(時点t5)、仮想路面負荷トルクTrlに基づく操舵反力が一定値となる。
この後、時点t6で車両横位置PlatがPR_returnを車線中央側に超えると、W1が漸増されるとともにW2が漸減され、時点t7でW1=1、W2=0となる。つまり、制御モードが第1制御モードとなる。図14からわかるように、時点t4から時点t5までの期間では、操舵反力特性は操舵反力の低下率が大きい特性(第1特性)となり、時点t5から後述する時点t6までの期間では、操舵反力特性は操舵反力の低下率が小さい特性(第2特性)となる。これにより、車両が車線中央に戻るときの車両挙動の安定化が図れるようになる。
なお、図14では第2特性における操舵反力の低下率は0(すなわち、操舵反力は一定)となっているが、第1特性における操舵反力の低下率よりも低い低下率であれば、第2特性における操舵反力の低下率は0以外であってもよい。この実施形態では、第2特性における操舵反力の低下率を0にすることによって、車両が車線中央に戻るときの車両挙動の安定化を確実に行えるようにしている。
時点t6からt7までは、仮想路面負荷トルクTrlに基づく操舵反力の一部が反映されるため、操舵反力は徐々に小さくなる。そして、時点t7からは制御モードが第1制御モードとなるため、仮想路面負荷トルクTrlに基づく操舵反力は0となる。
[重み設定部49の第2変形例]
図15は、第2変形例に係る重み設定部49を備えたモータ制御用ECU0202の電気的構成を示すブロック図である。図15において、前述の図2の各部に対応する部分には、図2と同じ符号を付して示す。
図15のモータ制御用ECU202では、ハンズオンオフ判定部50が設けられている。ハンズオンオフ判定部50は、ドライバがステアリングホイール2を把持している把持状態(ハンズオン)であるか、ドライバがステアリングホイール2を把持していない手放し状態(ハンズオフ)であるかを判定する。ハンズオンオフ判定部50の判定結果は、重み設定部49に与えられる。
ハンズオンオフ判定部50は、例えば、トーションバートルクTtbと、実操舵角θまたはロータ回転角θmとに基づいて、ドライバがステアリングホイール2に加えたトルクであるドライバトルクを推定し、ドライバトルクが所定の閾値以上であれば把持状態と判定し、ドライバトルクが閾値未満である状態が所定時間以上継続しているときに手放し状態であると判定するものであってもよい。この場合、ドライバトルクが閾値以上の状態から閾値未満に変化した後、手放し状態であると判定されるまでの間は、把持状態と判定される。このようなハンズオンオフ判定部50としては、例えば、特開2017-114324号公報、特開2018-165156号公報、特開2020-142703号公報、特開2020-59361号公報、特開2020-59362号公報等に記載されている「ハンドル操作状態判定部」を用いることができる。
ハンズオンオフ判定部50は、例えば、トーションバートルクTtbが所定の閾値以上であれば把持状態と判定し、トーションバートルクTtbが閾値未満である状態が所定時間以上継続しているときに手放し状態であると判定するものであってもよい。この場合、トーションバートルクTtbが閾値以上の状態から閾値未満に変化した後、手放し状態であると判定されるまでの間は、把持状態と判定される。
図16は、運転支援モード時に第2変形例に係る重み設定部49によって行われる重み設定処理の手順を示すフローチャートである。
運転モードが運転支援モードになると、重み設定部49は、第1重みW1を1に設定し、第2重みW2を0に設定する(ステップS11)。これにより、電動モータ18の制御モードは、アシストトルク指令値Tasstのみによって電動モータ18が駆動制御される第1制御モードとなる。
なお、運転モードが運転支援モードになると、上位ECU201によって自動操舵指令値θAD,cmdが設定され、その自動操舵指令値θAD,cmd、モード信号Smode、左右判別信号SLRおよび車両横位置Platがモータ制御用ECU202に与えられる。
次に、重み設定部49は、左右判別信号SLRに基づき、車両基準位置が車線中央の左側にあるか否かを判別する(ステップS12)。
車両基準位置が車線中央の左側にある場合には(ステップS12:YES)、重み設定部49は、車両横位置PlatがPL_start(図5、図6参照)よりも小さいか否かを判別する(ステップS13)。
Plat≧PL_startであれば(ステップS13:NO)、重み設定部49は、ステップS12に戻る。
ステップS13において、Plat<PL_startであると判別された場合には(ステップS13:YES)、重み設定部49は、第1重みW1を0に設定し、第2重みW2を1に設定する(ステップS14)。この際、重み設定部49は、第1重みW1を1から0まで漸減させるとともに、第2重みW2を0から1まで漸増させることが好ましい。第1重みW1を1から0まで漸減させる時間(第2重みW2を0から1まで漸増させる時間)は、例えば0.1秒程度であってもよい。
これにより、電動モータ18の制御モードは、統合モータトルク指令値Tmint,cmdによって電動モータ18が駆動制御される第2制御モードとなる。なお、第1重みW1が漸減されている間(第2重みW2が漸増されている間)は、第1重み乗算後のアシストトルク指令値W1・Tasstと、第2重み乗算後の統合モータトルク指令値w2・Tmint,cmdとの和に基づいて、電動モータ18が制御される。
第2制御モード時においては、手動操舵指令値θMD,cmdと、自動操舵指令値θAD,cmdとの和である統合角度指令値θint,cmdに基づいて電動モータ18が制御されるので、手動操舵指令値θMD,cmdの演算に用いられる仮想路面負荷トルクTrlに基づく操舵反力が反映されるようになる。
次に、重み設定部49は、車両横位置PlatがPL_startよりも大きな所定のPL_return(図12参照)よりも大きいという第1条件または車両横位置PlatがPL_startよりも大きくかつハンズオンオフ判定部50の判定結果が把持状態であるという第2条件を満たしているか否かを判別する(ステップS15)。PL_returnは、例えば80cmに設定される。
第1条件および第2条件の両方を満たしていない場合には(ステップS15:NO)、重み設定部49は、ステップS15に戻る。
ステップS15において、第1条件および第2条件のいずれかを満たしていると判別された場合には(ステップS15:YES)、重み設定部49は、第1重みW1を1に設定し、第2重みW2を0に設定する(ステップS16)。この際、重み設定部49は、第1重みW1を0から1まで漸増させるとともに、第2重みW2を1から0まで漸減させることが好ましい。第1重みW1を0から1まで漸増させる時間(第2重みW2を1から0まで漸減させる時間)は、例えば0.1秒程度であってもよい。
これにより、電動モータ18の制御モードは、第1制御モードとなる。なお、第1重みW1が漸増されている間(第2重みW2が漸減されている間)は、第1重み乗算後のアシストトルク指令値W1・Tasstと、第2重み乗算後の統合モータトルク指令値w2・Tmint,cmdとの和に基づいて、電動モータ18が制御される。
第1制御モード時においては、手動操舵指令値θMD,cmdの演算に用いられる仮想路面負荷トルクTrlに基づく操舵反力は反映されない。
ステップS16の処理が行われると、重み設定部49は、ステップS12に戻る。
ステップS12において、車両基準位置が車線中央の右側にあると判別された場合には(ステップS12:NO)、重み設定部49は、車両横位置PlatがPR_start(図5、図6参照)よりも小さいか否かを判別する(ステップS17)。
Plat≧PR_startであれば(ステップS17:NO)、重み設定部49は、ステップS12に戻る。
ステップS17において、Plat<PR_startであると判別された場合には(ステップS17:YES)、重み設定部49は、第1重みW1を0に設定し、第2重みW2を1に設定する(ステップS18)。この際、重み設定部49は、第1重みW1を1から0まで漸減させるとともに、第2重みW2を0から1まで漸増させることが好ましい。
これにより、電動モータ18の制御モードは、第2制御モードとなる。第2制御モード時においては、仮想路面負荷トルクTrlに基づく操舵反力が反映されるようになる。
次に、重み設定部49は、車両横位置PlatがPR_startよりも大きな所定のPR_return(図12参照)よりも大きいという第3条件または車両横位置PlatがPR_startよりも大きくかつハンズオンオフ判定部50の判定結果が把持状態であるという第4条件を満たしているか否かを判別する(ステップS19)。PR_returnは、例えば90cmに設定される。
第3条件および第4条件の両方を満たしていない場合には(ステップS19:NO)、重み設定部49は、ステップS19に戻る。
ステップS19において、第3条件および第4条件のいずれかを満たしていると判別された場合には(ステップS19:YES)、重み設定部49は、第1重みW1を1に設定し、第2重みW2を0に設定する(ステップS20)。この際、重み設定部49は、第1重みW1を0から1まで漸増させるとともに、第2重みW2を1から0まで漸減させることが好ましい。
これにより、電動モータ18の制御モードは、第1制御モードとなる。第1制御モード時においては、仮想路面負荷トルクTrlに基づく操舵反力は反映されない。
ステップS20の処理が行われると、重み設定部49は、ステップS12に戻る。
図17は、図16の手順によって重み設定処理が行われる場合に、仮想路面負荷トルクTrlに基づいて発生する操舵反力を説明するための模式図である。
図17の時点t0~時点t5までの動作は、図13と同じである。時点t4において車両が右側車線境界から車線中央に移動し始め、車両横位置PlatがPR_startに達すると(時点t5)、仮想路面負荷トルクTrlに基づく操舵反力が一定値となる。
この後、車両横位置PlatがPR_returnを車線中央側に超える前に、ハンズオンオフ結果が把持状態になると(時点t8)、図16のステップS19の第4条件が満たされる。これにより、W1が漸増されるとともにW2が漸減され、時点t9でW1=1、W2=0となる。つまり、制御モードが第1制御モードとなる。
つまり、車両横位置PlatがPR_startよりも車線中央側に移動した場合において、把持状態になった場合には、ドライバが車両を車線中央側に戻すための操舵を行っていると判断され、車両横位置PlatがPR_returnを車線中央側に超えていなくても第2制御モードが第1制御モードに切り替えられる。
時点t8からt9までは、仮想路面負荷トルクTrlに基づく操舵反力の一部が反映されるため、操舵反力は徐々に小さくなる。そして、時点t9からは制御モードが第1制御モードとなるため、仮想路面負荷トルクTrlに基づく操舵反力は0となる。
[手動操舵指令値生成部42の変形例]
以下、手動操舵指令値生成部42の変形例について説明する。
前述の実施形態では、仮想負荷ばね剛性係数kvlおよび仮想負荷粘性減衰係数cvlは、車両横位置Platに対応して設定されている。
この手動操舵指令値生成部42の変形例では、仮想負荷ばね剛性係数kvlおよび仮想負荷粘性減衰係数cvlは、車両横位置Platおよびヘディング角θvhに対応して設定される。ヘディング角θvhは、図18に示すように、車線中央線と車両の進行方向(車両の幅中央線)とがなす角度(0°≦θvh<180°)であって、車両が車線中央から車線境界に向かう姿勢である場合には正となり、車両が車線中央に向かう姿勢である場合には負となる角度である。車両の進行方向が車線中央線と平行である場合には、ヘディング角θvhは0度となる。
ヘディング角θvhは、図1および図2に二点鎖線で示すように、上位ECU201からモータ制御用ECU202内の手動操舵指令値生成部42に与えられる。また、後述する図24に示す重み設定処理または後述する図26に示す重み設定処理が、重み設定部49によって行われる場合には、図2に二点鎖線で示すように、ヘディング角θvhは、重み設定部49にも与えられる。
この手動操舵指令値生成部42の変形例では、図4のロアコラムの回転角を手動操舵指令値θMD,cmdとすると、路面負荷トルク(仮想路面負荷トルク)Trlは、仮想負荷ばね剛性係数kvl、仮想負荷粘性減衰係数cvlおよび手動操舵指令値θMD,cmdを用いて、次式(10)で表される。
Trl=-kvl・θMD,cmd-cvl(dθMD,cmd/dt) …(10)
ただし、kvl=kvl(Plat,θvh),cvl=cvl(Plat,θvh)
前記式(10)で示されるように、仮想負荷ばね剛性係数kvlおよび仮想負荷粘性減衰係数cvlは、車両横位置Platおよびヘディング角θvhに対応して設定されている。
図19は、車両横位置Platに対する仮想負荷ばね剛性係数kvlの設定例を示すグラフである。
図19では、ヘディング角θvhが0[deg]である場合と、ヘディング角θvhが2[deg]である場合と、ヘディング角θvhが-0.5[deg]である場合の例が示されている。
図19における記号の添え字Lは、車両基準位置が車線中央よりも左側にある場合に当該記号が適用されることを示し、Rは車両基準位置が車線中央よりも右側にある場合に当該記号が適用されることを示す。後述する図22においても同じである。
図19および後述する図20~図23のPL_return、PL_start、PL_returnおよびPR_startは、それぞれ図12のPL_return、PL_start、PL_returnおよびPR_startと同じ位置に設定されていてもよいし、異なる位置に設定されていてもよい。ここでは、図19および後述する図20~図23のPL_return、PL_start、PL_returnおよびPR_startは、それぞれ図12のPL_return、PL_start、PL_returnおよびPR_startと同じ位置に設定されているものとする。
車両横位置Platが左側車線境界に対して前記PL_returnよりも車線中央側の所定のPL1以上または右側車線境界に対して前記PR_returnよりも車線中央側の所定のPR1以上である場合には、仮想負荷ばね剛性係数kvlは、0に設定される。PL1およびPR1は、例えば110cm程度に設定される。
車両横位置Platが車線中央の左側にあり、車両横位置Platが0以上でかつPL1未満である場合には、仮想負荷ばね剛性係数kvlは、車両横位置Platとヘディング角θvhとに応じて、車両横位置PlatがPL1から小さくなるほど(車両基準位置が左側車線境界に近づくほど)漸増する特性にしたがって設定される。図19では、仮想負荷ばね剛性係数kvlが線形に漸増しているが、仮想負荷ばね剛性係数kvlが非線形に漸増してもよい。
この区間での仮想負荷ばね剛性係数kvlは、ヘディング角θvhが正の場合(車両の進行方向が左側車線境界に向かう方向である場合)には、ヘディング角θvhが大きいほど大きくなる。一方、ヘディング角θvhが負の場合(車両の進行方向が車線中央に向かう方向である場合)には、仮想負荷ばね剛性係数kvlは、ヘディング角θvhの絶対値が大きいほど小さくなる。
車両横位置Platが車線中央の右側にあり、車両横位置Platが0以上でかつPR2未満である場合には、仮想負荷ばね剛性係数kvlは、車両横位置Platとヘディング角θvhとに応じて、車両横位置PlatがPR1から小さくなるほど(車両基準位置が右側車線境界に近づくほど)漸増する特性にしたがって設定される。図19では、仮想負荷ばね剛性係数kvlが線形に漸増しているが、仮想負荷ばね剛性係数kvlが非線形に漸増してもよい。
この区間での仮想負荷ばね剛性係数kvlは、ヘディング角θvhが正の場合(車両の進行方向が右車線境界に向かう方向である場合)には、ヘディング角θvhが大きいほど大きくなる。一方、ヘディング角θvhが負の場合(車両の進行方向が左側車線境界に向かう方向である場合)には、仮想負荷ばね剛性係数kvlは、ヘディング角θvhの絶対値が大きいほど小さくなる。
図19に示すような仮想負荷ばね剛性係数特性の設定方法の一例について説明する。
まず、ヘディング角θvhが0[deg]である場合における車両横位置Platに対する仮想負荷ばね剛性係数kvlの特性(以下、「ばね剛性係数kvlの基本特性」という。)を設定する。ばね剛性係数kvlの基本特性の一例を図20に示す。
次に、ヘディング角θvhに対する重み(ヘディング重み)を設定する。ヘディング角θvhに対する重み特性の一例を図21に示す。なお、図21のヘディング角θvhに対する重み特性は一例にすぎない。例えば、図21では、ヘディング角θvhの増減に対して重み特性は線形に増減しているが、非線形に増減してもよい。また、特定の角度範囲に対して、重みを一定値に設定してもよい。図21では、車両の進行方向が逸脱方向でかつ車線中央線とほぼ平行である場合において操舵反力が変化するのを抑制するために、0[deg]から1[deg]までの角度範囲内のヘディング角θvhに対してゲインが1に設定されている。
図20のばね剛性係数kvlの基本特性と図21のヘディング角θvhに対する重み特性とに基づいて、複数種類のヘディング角θvhそれぞれに対して、車両横位置Platに対する仮想負荷ばね剛性係数kvlの特性を設定する。例えば、ヘディング角θvhが2[deg]に対する特性は、ばね剛性係数kvlの基本特性に、2[deg]に対する重みである1.25を乗算することにより設定される。
図22は、車両横位置Platに対する仮想負荷粘性減衰係数cvlの設定例を示すグラフである。
図22は、ヘディング角θvhが0[deg]である場合と、ヘディング角θvhが2[deg]である場合と、ヘディング角θvhが-0.5[deg]である場合の例が示されている。
車両横位置Platに対する仮想負荷粘性減衰係数cvlの特性は、車両横位置Platに対する仮想負荷ばね剛性係数kvlの特性と同様な特性を有している。車両横位置Platに対する仮想負荷粘性減衰係数cvlの特性は、前述した車両横位置Platに対する仮想負荷ばね剛性係数kvlの特性の設定方法と同様な方法で設定される。
手動操舵指令値生成部42は、前述の実施形態と同様に、前記式(2)で示される方程式を用いて手動操舵指令値θMD,cmdを演算する。ただし、仮想負荷ばね剛性係数kvlおよび仮想負荷粘性減衰係数cvlとしては、式(10)で示されるように、車両横位置Platおよびヘディング角θvhに対応した、仮想負荷ばね剛性係数kvlおよび仮想負荷粘性減衰係数cvlが用いられる。。
車両横位置Platおよびヘディング角θvhに対応した仮想負荷ばね剛性係数kvlは、例えば、上位ECU201から与えられる車両横位置Platと、複数のヘディング角θvh毎に車両横位置Platに対する仮想負荷ばね剛性係数kvlを記憶したマップ(図19のグラフ参照)とに基づいて求められる。また、車両横位置Platおよびヘディング角θvhに対応した応じた仮想負荷粘性減衰係数cvlは、例えば、上位ECU201から与えられる車両横位置Platと、複数のヘディング角θvh毎に車両横位置Platに対する仮想負荷粘性減衰係数cvlを記憶したマップ(図22のグラフ参照)とに基づいて求められる。
図23は、車両横位置Platと、数式(10)に基づいて演算される路面負荷トルクTrlの絶対値|Trl|との関係の一例を示すグラフである。
図23では、ヘディング角θvhが0[deg]である場合と、ヘディング角θvhが2[deg]である場合と、ヘディング角θvhが-0.5[deg]である場合の例が示されている。
車両横位置Platが左側車線境界に対してPL1以上の場合または右側車線境界に対してPR1以上の場合には、仮想負荷ばね合成係数kvlおよび仮想負荷粘性減衰係数cvlは0となるため、仮想路面負荷トルクの絶対値|Trl|は0となる。
車両横位置Platが車線中央の左側にあり、車両横位置Platが0以上でかつPL1未満である場合には、仮想路面負荷トルクの絶対値|Trl|は、車両横位置PlatがPL1から小さくなるほど(車両基準位置が左側車線境界に近づくほど)、大きくなる。図23の例では、|Trl|は非線形に漸増する。
車両横位置Platが車線中央の右側にあり、車両横位置Platが0以上でかつPR1未満である場合には、仮想路面負荷トルクの絶対値|Trl|は、車両横位置PlatがPR1から小さくなるほど(車両基準位置が左側車線境界に近づくほど)、大きくなる。図23の例では、|Trl|は非線形に漸増する。
次に、仮想負荷ばね剛性係数kvlおよび仮想負荷粘性減衰係数cvlが車両横位置Platおよびヘディング角θvhに対応して設定される場合の重み付け設定部49の動作について説明する。
図23に示すように、PL1とPL_strtとの間にPL_returnが設定されているとともに、PR1とPR_strtとの間にPR_returnが設定されている場合には、重み付け設定部49は、前述の図9の手順または前述の図16の手順にしたがって重み付け設定処理を行うことが可能である。また、重み付け設定部49は、前述の重み付け設定部49の第1変形例(第1車両横位置と第2車両横位置とか同じ場合の変形例)で説明した重み付け設定処理を行うことが可能である。
仮想負荷ばね剛性係数kvlおよび仮想負荷粘性減衰係数cvlが車両横位置Platおよびヘディング角θvhに対応して設定される場合には、重み付け設定部49は、以下に述べる他の手順で重み付け設定処理を行うことが可能である。以下においては、説明の便宜上、図19、図22および図23のPL_returnおよびPL_startそれぞれに対応する位置を、PL2およびPL3で表すことする。また、図19、図22および図23のPR_returnおよびPR_startそれぞれに対応する位置を、PR2およびPR3で表すことする。
[重み付け設定部49の第3変形例]
第3変形例では、車両が車線中央の左側にある場合において、第1重みW1を1から0(第2重みW1を0から1)に切り替えるための第1車両横位置が、図25に示すように、PL2(図12のPL_returnに相当する位置)よりも大きくかつPL1以下の範囲内に設定される。ここでは、車両が車線中央の左側にある場合における第1車両横位置が、PL1に設定されているものとする。また、車両が車線中央の左側にある場合において、第1重みW1を0から1(第2重みW1を1から0)に切り替えるための第2車両横位置がPL2に設定される。
車両が車線中央の右側にある場合において、第1重みW1を1から0(第2重みW1を0から1)に切り替えるための第1車両横位置が、図25に示すように、PR2(図12のPR_returnに相当する位置)よりも大きくかつPR1以下の範囲内に設定される。ここでは、車両が車線中央の右側にある場合における第1車両横位置がPR1に設定されているものとする。車両が車線中央の右にある場合において、第1重みW1を0から1(第2重みW1を1から0)に切り替えるための第2車両横位置が、PR2に設定される。
図24は、運転支援モード時に第3変形例に係る重み設定部49によって行われる重み設定処理の手順を示すフローチャートである。
運転モードが運転支援モードになると、重み設定部49は、第1重みW1を1に設定し、第2重みW2を0に設定する(ステップS21)。これにより、電動モータ18の制御モードは、アシストトルク指令値Tasstのみによって電動モータ18が駆動制御される第1制御モードとなる。
なお、運転モードが運転支援モードになると、上位ECU201によって自動操舵指令値θAD,cmdが設定され、その自動操舵指令値θAD,cmd、モード信号Smode、左右判別信号SLRおよび車両横位置Platがモータ制御用ECU202に与えられる。
次に、重み設定部49は、左右判別信号SLRに基づき、車両基準位置が車線中央の左側にあるか否かを判別する(ステップS22)。
車両基準位置が車線中央の左側にある場合には(ステップS22:YES)、重み設定部49は、車両横位置PlatがPL1(図25参照)よりも小さくかつヘディング角θvhが0より大きいという第5条件を満たしているか否かを判別する(ステップS23)。PL1は、例えば110cmに設定される。
第5条件を満たしていなければ(ステップS23:NO)、重み設定部49は、ステップS22に戻る。
ステップS23において、第5条件を満たしていると判別された場合には(ステップS23:YES)、重み設定部49は、第1重みW1を0に設定し、第2重みW2を1に設定する(ステップS24)。この際、重み設定部49は、第1重みW1を1から0まで漸減させるとともに、第2重みW2を0から1まで漸増させることが好ましい。第1重みW1を1から0まで漸減させる時間(第2重みW2を0から1まで漸増させる時間)は、例えば0.1秒程度であってもよい。
これにより、電動モータ18の制御モードは、統合モータトルク指令値Tmint,cmdによって電動モータ18が駆動制御される第2制御モードとなる。なお、第1重みW1が漸減されている間(第2重みW2が漸増されている間)は、第1重み乗算後のアシストトルク指令値W1・Tasstと、第2重み乗算後の統合モータトルク指令値w2・Tmint,cmdとの和に基づいて、電動モータ18が制御される。
第2制御モード時においては、手動操舵指令値θMD,cmdと、自動操舵指令値θAD,cmdとの和である統合角度指令値θint,cmdに基づいて電動モータ18が制御されるので、手動操舵指令値θMD,cmdの演算に用いられる仮想路面負荷トルクTrlに基づく操舵反力が反映されるようになる。
次に、重み設定部49は、車両横位置PlatがPL2(図25参照)よりも大きくかつヘディング角θvhが0より小さいという第6条件を満たしているか否かを判別する(ステップS25)。
第6条件を満たしていなければ(ステップS25:NO)、重み設定部49は、ステップS25に戻る。
ステップS25において、第6条件を満たしていると判別された場合には(ステップS25:YES)、重み設定部49は、第1重みW1を1に設定し、第2重みW2を0に設定する(ステップS26)。この際、重み設定部49は、第1重みW1を0から1まで漸増させるとともに、第2重みW2を1から0まで漸減させることが好ましい。第1重みW1を0から1まで漸増させる時間(第2重みW2を1から0まで漸減させる時間)は、例えば0.1秒程度であってもよい。
これにより、電動モータ18の制御モードは、第1制御モードとなる。なお、第1重みW1が漸増されている間(第2重みW2が漸減されている間)は、第1重み乗算後のアシストトルク指令値W1・Tasstと、第2重み乗算後の統合モータトルク指令値w2・Tmint,cmdとの和に基づいて、電動モータ18が制御される。
第1制御モード時においては、手動操舵指令値θMD,cmdの演算に用いられる仮想路面負荷トルクTrlに基づく操舵反力は反映されない。
ステップS26の処理が行われると、重み設定部49は、ステップS22に戻る。
ステップS22において、車両基準位置が車線中央の右側にあると判別された場合には(ステップS22:NO)、重み設定部49は、車両横位置PlatがPR1(図25参照)よりも小さくかつヘディング角θvhが0より大きいという第7条件を満たしているか否かを判別する(ステップS27)。PR1は、例えば110cmに設定される。
第7条件を満たしていなければ(ステップS27:NO)、重み設定部49は、ステップS22に戻る。
ステップS27において、第7条件を満たしていると判別された場合には(ステップS27:YES)、重み設定部49は、第1重みW1を0に設定し、第2重みW2を1に設定する(ステップS28)。この際、重み設定部49は、第1重みW1を1から0まで漸減させるとともに、第2重みW2を0から1まで漸増させることが好ましい。
これにより、電動モータ18の制御モードは、第2制御モードとなる。第2制御モード時においては、仮想路面負荷トルクTrlに基づく操舵反力が反映されるようになる。
次に、重み設定部49は、車両横位置PlatがPR2(図25参照)よりも大きくかつヘディング角θvhが0より小さいという第8条件を満たしているか否かを判別する(ステップS29)。
第8条件を満たしていいなければ(ステップS29:NO)、重み設定部49は、ステップS29に戻る。
ステップS29において、第8条件を満たしていると判別された場合には(ステップS29:YES)、重み設定部49は、第1重みW1を1に設定し、第2重みW2を0に設定する(ステップS30)。この際、重み設定部49は、第1重みW1を0から1まで漸増させるとともに、第2重みW2を1から0まで漸減させることが好ましい。
これにより、電動モータ18の制御モードは、第1制御モードとなる。第1制御モード時においては、仮想路面負荷トルクTrlに基づく操舵反力は反映されない。
ステップS30の処理が行われると、重み設定部49は、ステップS22に戻る。
図25は、第1車両横位置がPL1,PR1に設定され、第2車両横位置がPL2,PR2に設定された場合に、運転支援モード時において仮想路面負荷トルクTrlに基づいて発生する操舵反力を説明するための模式図である。
時点t0では、制御モードは第1モードであり、車両基準位置は車線中央にある。制御モードが第1制御モードであるため、W1=1、W2=0であり、手動操舵指令値θMD,cmdの演算に用いられる仮想路面負荷トルクTrlに基づく操舵反力は0である。
時点t0直後にドライバが右方向への操舵を行ったため、車両が右方向へ移動し始める。そして、時点t1で車両横位置PlatがPR1を右側車線境界側に超えたときに、θvh>0であるとすると、図24のステップS27の第7条件が満たされる。これにより、W1が漸減されるとともにW2が漸増され、時点t2でW1=0、W2=1となる。つまり、制御モードが第2制御モードとなる。
時点t0から時点t1までは、手動操舵指令値θMD,cmdの演算に用いられる仮想路面負荷トルクTrlに基づく操舵反力は0であるが、時点t1からt2までは、仮想路面負荷トルクTrlに基づく操舵反力の一部が反映されるため、操舵反力は徐々に大きくなる。そして、時点t2からは制御モードが第2制御モードとなるため、仮想路面負荷トルクTrlに基づく操舵反力がさらに大きくなる。
そして、車両基準位置が右側車線境界に達すると(時点t3)、操舵反力が最大反力値となる。ドライバが操舵反力を感じて右方向への操舵を加えなくなると、車両が車線中央に向かって移動する。そして、車両基準位置が右側車線境界よりも車線中央側に入ると(時点t4)、仮想路面負荷トルクTrlに基づく操舵反力が減少していく。そして、時点t5で車両横位置PlatがPR2を車線中央側に超えたときに、θvh<0であるとすると、図24のステップS29の第8条件が満たされる。これにより、W1が漸増されるとともにW2が漸減され、時点t6でW1=1、W2=0となる。つまり、制御モードが第1制御モードとなる。
時点t5からt6までは、仮想路面負荷トルクTrlに基づく操舵反力の一部が反映されるため、操舵反力は徐々に小さくなる。そして、時点t6からは制御モードが第1制御モードとなるため、仮想路面負荷トルクTrlに基づく操舵反力は0となる。
第3変形例では、図12を用いて説明した前述の実施形態に比べて、次のような効果が得られる。車両の進行方向が車線を逸脱する方向である場合には、そのことをドライバに迅速に伝えることが好ましい。第3変形例では、第1車両横位置が前述の実施形態の第2車両横位置よりも車線中央側に設定されているので、車両が車線逸脱方向に進行したときに、前述の実施形態よりも早めに、ドライバに操舵反力を伝えることが可能となる。
[重み付け設定部49の第4変形例]
第4変形例では、車両が車線中央の左側にある場合において、第1重みW1を1から0(第2重みW1を0から1)に切り替えるための第1車両横位置が、図27に示すように、PL3(図12のPL_startに相当する位置)に設定される。また、車両が車線中央の左側にある場合において、第1重みW1を0から1(第2重みW1を1から0)に切り替えるための第2車両横位置が、0よりも大きくかつPL3(図12のPL_startに相当する位置)以下の範囲内に設定される。ここでは、車両が車線中央の左側にある場合における第2車両横位置が、PL4に設定されているものとする。
車両が車線中央の右側にある場合において、第1重みW1を1から0(第2重みW1を0から1)に切り替えるための第1車両横位置が、図27に示すように、PR3(図12のPR_startに相当する位置)に設定される。また、車両が車線中央の右側にある場合において、第1重みW1を0から1(第2重みW1を1から0)に切り替えるための第2車両横位置が、0よりも大きくかつPR3(図12のPR_startに相当する位置)以下の範囲内に設定される。ここでは、車両が車線中央の右側にある場合における第2車両横位置が、PR4に設定されているものとする。
図26は、運転支援モード時に第4変形例に係る重み設定部49によって行われる重み設定処理の手順を示すフローチャートである。
運転モードが運転支援モードになると、重み設定部49は、第1重みW1を1に設定し、第2重みW2を0に設定する(ステップS31)。これにより、電動モータ18の制御モードは、アシストトルク指令値Tasstのみによって電動モータ18が駆動制御される第1制御モードとなる。
なお、運転モードが運転支援モードになると、上位ECU201によって自動操舵指令値θAD,cmdが設定され、その自動操舵指令値θAD,cmd、モード信号Smode、左右判別信号SLRおよび車両横位置Platがモータ制御用ECU202に与えられる。
次に、重み設定部49は、左右判別信号SLRに基づき、車両基準位置が車線中央の左側にあるか否かを判別する(ステップS32)。
車両基準位置が車線中央の左側にある場合には(ステップS32:YES)、重み設定部49は、車両横位置PlatがPL3(図27参照)よりも小さくかつヘディング角θvhが0より大きいという第9条件を満たしているか否かを判別する(ステップS33)。
第9条件を満たしていなければ(ステップS33:NO)、重み設定部49は、ステップS32に戻る。
ステップS33において、第9条件を満たしていると判別された場合には(ステップS33:YES)、重み設定部49は、第1重みW1を0に設定し、第2重みW2を1に設定する(ステップS34)。この際、重み設定部49は、第1重みW1を1から0まで漸減させるとともに、第2重みW2を0から1まで漸増させることが好ましい。第1重みW1を1から0まで漸減させる時間(第2重みW2を0から1まで漸増させる時間)は、例えば0.1秒程度であってもよい。
これにより、電動モータ18の制御モードは、統合モータトルク指令値Tmint,cmdによって電動モータ18が駆動制御される第2制御モードとなる。なお、第1重みW1が漸減されている間(第2重みW2が漸増されている間)は、第1重み乗算後のアシストトルク指令値W1・Tasstと、第2重み乗算後の統合モータトルク指令値w2・Tmint,cmdとの和に基づいて、電動モータ18が制御される。
第2制御モード時においては、手動操舵指令値θMD,cmdと、自動操舵指令値θAD,cmdとの和である統合角度指令値θint,cmdに基づいて電動モータ18が制御されるので、手動操舵指令値θMD,cmdの演算に用いられる仮想路面負荷トルクTrlに基づく操舵反力が反映されるようになる。
次に、重み設定部49は、車両横位置PlatがPL4(図27参照)よりも大きくかつヘディング角θvhが0より小さいという第10条件を満たしているか否かを判別する(ステップS35)。PL4は、例えば30cmに設定される。
第10条件を満たしていなければ(ステップS35:NO)、重み設定部49は、ステップS35に戻る。
ステップS35において、第10条件を満たしていると判別された場合には(ステップS35:YES)、重み設定部49は、第1重みW1を1に設定し、第2重みW2を0に設定する(ステップS36)。この際、重み設定部49は、第1重みW1を0から1まで漸増させるとともに、第2重みW2を1から0まで漸減させることが好ましい。第1重みW1を0から1まで漸増させる時間(第2重みW2を1から0まで漸減させる時間)は、例えば0.1秒程度であってもよい。
これにより、電動モータ18の制御モードは、第1制御モードとなる。なお、第1重みW1が漸増されている間(第2重みW2が漸減されている間)は、第1重み乗算後のアシストトルク指令値W1・Tasstと、第2重み乗算後の統合モータトルク指令値w2・Tmint,cmdとの和に基づいて、電動モータ18が制御される。
第1制御モード時においては、手動操舵指令値θMD,cmdの演算に用いられる仮想路面負荷トルクTrlに基づく操舵反力は反映されない。
ステップS36の処理が行われると、重み設定部49は、ステップS32に戻る。
ステップS32において、車両基準位置が車線中央の右側にあると判別された場合には(ステップS32:NO)、重み設定部49は、車両横位置PlatがPR3(図27参照)よりも小さくかつヘディング角θvhが0より大きいという第11条件を満たしているか否かを判別する(ステップS37)。
第11条件を満たしていなければ(ステップS37:NO)、重み設定部49は、ステップS32に戻る。
ステップS37において、第11条件を満たしていると判別された場合には(ステップS37:YES)、重み設定部49は、第1重みW1を0に設定し、第2重みW2を1に設定する(ステップS28)。この際、重み設定部49は、第1重みW1を1から0まで漸減させるとともに、第2重みW2を0から1まで漸増させることが好ましい。
これにより、電動モータ18の制御モードは、第2制御モードとなる。第2制御モード時においては、仮想路面負荷トルクTrlに基づく操舵反力が反映されるようになる。
次に、重み設定部49は、車両横位置PlatがPR4(図27参照)よりも大きくかつヘディング角θvhが0より小さいという第12条件を満たしているか否かを判別する(ステップS39)。PR4は、例えば30cmに設定される。
第12条件を満たしていいなければ(ステップS39:NO)、重み設定部49は、ステップS39に戻る。
ステップS39において、第12条件を満たしていると判別された場合には(ステップS39:YES)、重み設定部49は、第1重みW1を1に設定し、第2重みW2を0に設定する(ステップS40)。この際、重み設定部49は、第1重みW1を0から1まで漸増させるとともに、第2重みW2を1から0まで漸減させることが好ましい。
これにより、電動モータ18の制御モードは、第1制御モードとなる。第1制御モード時においては、仮想路面負荷トルクTrlに基づく操舵反力は反映されない。
ステップS40の処理が行われると、重み設定部49は、ステップS32に戻る。
図27は、第1車両横位置がPL3,PR3に設定され、第2車両横位置がPL4,PR4に設定された場合に、運転支援モード時において仮想路面負荷トルクTrlに基づいて発生する操舵反力を説明するための模式図である。
時点t0では、制御モードは第1モードであり、車両基準位置は車線中央にある。制御モードが第1制御モードであるため、W1=1、W2=0であり、手動操舵指令値θMD,cmdの演算に用いられる仮想路面負荷トルクTrlに基づく操舵反力は0である。
時点t0直後にドライバが右方向への操舵を行ったため、車両が右方向へ移動し始める。そして、時点t1で車両横位置PlatがPR3を右側車線境界側に超えたときに、θvh>0であるとすると、図26のステップS37の第11条件が満たされる。これにより、W1が漸減されるとともにW2が漸増され、時点t2でW1=0、W2=1となる。つまり、制御モードが第2制御モードとなる。
時点t0から時点t1までは、手動操舵指令値θMD,cmdの演算に用いられる仮想路面負荷トルクTrlに基づく操舵反力は0であるが、時点t1からt2までは、仮想路面負荷トルクTrlに基づく操舵反力の一部が反映されるため、操舵反力は徐々に大きくなる。そして、時点t2からは制御モードが第2制御モードとなるため、仮想路面負荷トルクTrlに基づく操舵反力がさらに大きくなる。
そして、車両基準位置が右側車線境界に達すると(時点t3)、操舵反力が最大反力値となる。ドライバが操舵反力を感じて右方向への操舵を加えなくなると、車両が車線中央に向かって移動する。そして、車両基準位置が右側車線境界よりも車線中央側に入ると(時点t4)、仮想路面負荷トルクTrlに基づく操舵反力が減少していく。そして、時点t5で車両横位置PlatがPR4を車線中央側に超えたときに、θvh<0であるとすると、図26のステップS39の第12条件が満たされる。これにより、W1が漸増されるとともにW2が漸減され、時点t6でW1=1、W2=0となる。つまり、制御モードが第1制御モードとなる。
時点t5からt6までは、仮想路面負荷トルクTrlに基づく操舵反力の一部が反映されるため、操舵反力は徐々に小さくなる。そして、時点t6からは制御モードが第1制御モードとなるため、仮想路面負荷トルクTrlに基づく操舵反力は0となる。
第4変形例では、図12を用いて説明した前述の実施形態に比べて、次のような効果が得られる。第4変形例では、第2車両横位置が前述の実施形態の第1車両横位置よりも車線境界側に設定されている。このため、制御モードが第1制御モードから第2制御モードに切り替えられた後、ドライバが車両を車線中央側に戻す方向に操舵した場合には、前述の実施形態よりも早めに、ドライバへの操舵反力を無効化できる。これにより、ドライバ操作によって車両を車線中央側に戻す際に、余計な操舵反力による操舵違和感を低減できる。
以上、この発明の実施形態および変形例について説明したが、この発明はさらに他の形態で実施することもできる。
前述の実施形態または変形例では、仮想負荷ばね剛性係数kvlおよび仮想負荷粘性減衰係数cvlは、車両横位置Platまたは車両横位置Platおよびヘディング角Vvhに応じて変化するように設定されているが、車両横位置Platの時間微分値、ヘディング角の微分値等に応じて変化するように設定されてよい。
また、仮想負荷ばね剛性係数kvlおよび仮想負荷粘性減衰係数cvlは、予め設定された固定値が用いられてもよい。
また、前述の実施形態では、車両横位置Platは、車両が現在走行している車線の境界(車線境界)から、車両基準位置までの距離であったが、車両横位置Platは、車両が現在走行している車線の中央から、車両基準位置までの距離であってもよい。
前述の実施形態では、アシストトルク指令値Tasstに第1重みW1が乗算され、第1重み乗算後のアシストトルク指令値W1・Tasstが加算部47に与えられている。しかし、これに代えて、手動操舵指令値θMD,cmdに応じた手動トルク指令値に第1重みW1を乗算し、第1重み乗算後の手動トルク指令値を加算部47に与えるようにしてもよい。
また、前述の実施形態では、角度制御部44(図5参照)は、フィードフォワード制御部53を備えているが、フィードフォワード制御部53を省略してもよい。この場合には、フィードバック制御部52によって演算されるフィードバック制御トルクTfbが基本目標トルクとなる。
また、この実施形態による運転支援制御(LKA)は、車両を車線中央に沿って走行させるレーンセンタリングアシスト(LCA)制御が行われている場合にも、併用することができる。
図28は、レーンキープアシスト(LKA)制御とレーンセンタリングアシスト(LCA)制御とが併用される場合のモータ制御用ECU40Aの一例を示すブロック図である。図28において、前述の図2の各部に対応する部分には、図2と同じ符号を付して示す。
図28のモータ制御用ECU202Aでは、図2のモータ制御用ECU202と比較して、マイクロコンピュータ40Aの機能的構成が図2のマイクロコンピュータ40の機能的構成と異なっている。
具体的には、図28のマイクロコンピュータ40Aは、図2の重み設定部49を備えていない。つまり、マイクロコンピュータ40Aは、アシストトルク指令値設定部41と、手動操舵指令値生成部42と、統合角度指令値演算部43と、角度制御部44と、第1重み乗算部45と、第2重み乗算部46と、加算部47と、トルク制御部48とを含む。
第1重み乗算部45に用いられる第1重みW1および第2重み乗算部46に用いられる第1重みW2は、予め所定値に設定されている。例えば、レーンキープアシスト(LKA)制御とレーンセンタリングアシスト(LCA)制御とが併用される場合には、第1重みW1が0、第2重みW2が1に設定される。完全手動操舵を行う場合には、第1重みW1が1、第2重みW2が0に設定される。ここでは、第1重みW1が0、第2重みW2が1に設定されているものとする。
アシストトルク指令値設定部41、角度制御部44およびトルク制御部48の動作は、図2のアシストトルク指令値設定部41、角度制御部44およびトルク制御部48の動作と同様であるので、その説明を省略する。
手動操舵指令値生成部42の動作について説明する。
路面負荷トルク(仮想路面負荷トルク)Trlは、仮想負荷ばね剛性係数kvl、仮想負荷粘性減衰係数cvlおよび手動操舵指令値θMD,cmdを用いて、前記式(1)で表される。
図29は、車両横位置Platに対する仮想負荷ばね剛性係数kvlの設定例を示すグラフである。図29における記号の添え字Lは、車両基準位置が車線中央よりも左側にある場合に当該記号が適用されることを示し、Rは車両基準位置が車線中央よりも右側にある場合に当該記号が適用されることを示す。
車両横位置Platが左側車線境界に対して所定のPLA以上または右側車線境界に対して所定のPRA以上である場合には、仮想負荷ばね剛性係数kvlは、所定値k1に設定される。
車両横位置Platが、左側車線境界に対してPLAよりも小さい所定のPLB以上でかつPLA未満である場合には、仮想負荷ばね剛性係数kvlは、車両横位置PlatがPLAから小さくなるほど(車両基準位置が左側車線境界に近づくほど)、k1からkmaxまで漸増する特性にしたがって設定される。
車両横位置Platが、右側車線境界に対してPLAよりも小さい所定のPRB以上でかつPRA未満である場合には、仮想負荷ばね剛性係数kvlは、車両横位置PlatがPRAから小さくなるほど(車両基準位置が右側車線境界に近づくほど)、k1からkmaxまで漸増する特性にしたがって設定される。
車両横位置Platが左側車線境界に対してPLB未満である場合には、仮想負荷ばね剛性係数kvlは、kmaxに設定される。車両横位置Platが右側車線境界に対してPRB未満である場合には、仮想負荷ばね剛性係数kvlは、kmaxに設定される。
車両横位置Platに対する仮想負荷粘性減衰係数cvlも、その特性が、車両横位置Platに対する仮想負荷ばね剛性係数kvlと同様な特性となるように設定される。車両横位置Platに対する仮想負荷粘性減衰係数cvlについての詳細な説明を省略する。
手動操舵指令値生成部42は、前記式(2)に基づいて、手動操舵指令値θMD,cmdを演算する。具体的には、手動操舵指令値生成部42は、式(2)のTtbにトルクセンサ12によって検出されるトーションバートルクTtbを代入し、式(2)のTasstにアシストトルク指令値設定部41によって設定されるアシストトルク指令値Tasstを代入して、式(2)の微分方程式を解くことにより、手動操舵指令値θMD,cmdを演算する。
図28を参照して、上位ECU(図示略)は、前述の実施形態と同様に、車両横位置Platおよび自動操舵指令値θAD,cmdを生成して、モータ制御用ECU202Aに与える。この例では、自動操舵指令値θAD,cmdは、車両を車線中央線に沿って走行させるための操舵角の目標値である。
さらに、上位ECUは、車両横位置Platが左側車線境界に対してPLB以下である場合および右側車線境界に対してPRB以下である場合には、ステアリングホイール2に付与すべき警告振動の波形(以下「目標振動波形」という。)に応じた振動角度指令値θcv,cmdを生成して、モータ制御用ECU202Aに与える。振動角度指令値θcv,cmdは、目標振動波形の瞬時値を出力軸(ステアリングシャフト)9の回転角で表したものである。目標振動波形は、指定の目標振幅と所定の目標周波数とを有する。
図30に目標振動波形の一例を示す。図30の例では、目標振幅が0.5[deg]に設定されており、目標周波数が30[Hz]に設定されている。
統合角度指令値演算部43には、手動操舵指令値生成部42によって演算された手動操舵指令値θMD,cmdが与えられる。統合角度指令値演算部43には、さらに、上位ECUから、自動操舵指令値θAD,cmdおよび振動角度指令値θcv,cmdが与えられる。
統合角度指令値演算部43は、上位ECUから振動角度指令値θcv,cmdが与えられていないときには、統合角度指令値演算部43は、自動操舵指令値θAD,cmdに、手動操舵指令値θMD,cmdを加算して、統合角度指令値θint,cmdを演算する。上位ECUから振動角度指令値θcv,cmdが与えられているときには、統合角度指令値演算部43は、自動操舵指令値θAD,cmdに、振動角度指令値θcv,cmdおよび手動操舵指令値θMD,cmdを加算して、統合角度指令値θint,cmdを演算する。
角度制御部44は、統合角度指令値θint,cmdに基づいて、統合角度指令値θint,cmdに応じた統合モータトルク指令値Tmint,cmdを演算する。この例では、第1重みW1が0に設定され、第2重みW2が1に設定されているので、統合モータトルク指令値Tmint,cmdが、モータトルク指令値Tm,cmdとして、トルク制御部48に与えられる。
図31は、仮想負荷ばね剛性係数kvlの特性が図29で示される特性であり、仮想負荷粘性減衰係数cvlの特性が図29の特性と同様な特性である場合の、車両横位置Platと操舵反力Treacの絶対値|Treac|との関係の一例を示すグラフである。
車両横位置Platが左側車線境界に対してPLA以上の場合には、操舵反力Treacの絶対値|Treac|(仮想路面負荷トルクTrlの絶対値|Trl|)は、車線中央からPLAに近づくほど、0からTreac1まで徐々に大きくなる。図31の例では、|Treac|は線形に漸増する。この範囲では、レーンセンタリングアシスト(LCA)制御が行われる。
車両横位置Platが、左側車線境界に対してPLB以上かつPLA未満である場合には、操舵反力Treacの絶対値|Treac|(仮想路面負荷トルクTrlの絶対値|Trl|)は、車両横位置PlatがPLAから小さくなるほど(車両基準位置が左側車線境界に近づくほど)、Treac1からTreac2まで徐々に大きくなる。図31の例では、|Treac|は非線形に漸増する。この範囲では、レーンキープアシスト(LKA)制御が行われる。
車両横位置PlatがPLB未満になると、操舵反力Treacの絶対値|Treac|は、Treac2に振動角度指令値θcv,cmdに応じた振動トルクTcvが加算された値となる。これにより、両横位置PlatがPLB未満になったときに、ドライバに警告振動を伝達することができる。
車両横位置Platが右側車線境界に対してPRA以上の場合には、操舵反力Treacの絶対値|Treac|(仮想路面負荷トルクTrlの絶対値|Trl|)は、車線中央からPRAに近づくほど、0からTreac1まで徐々に大きくなる。図31の例では、|Treac|は線形に漸増する。この範囲では、レーンセンタリングアシスト(LCA)制御が行われる。
車両横位置Platが、右側車線境界に対してPRB以上かつPRA未満である場合には、操舵反力Treacの絶対値|Treac|(仮想路面負荷トルクTrlの絶対値|Trl|)は、車両横位置PlatがPRAから小さくなるほど(車両基準位置が左側車線境界に近づくほど)、Treac1からTreac2まで徐々に大きくなる。図31の例では、|Treac|は非線形に漸増する。この範囲では、レーンキープアシスト(LKA)制御が行われる。
車両横位置PlatがPRB未満になると、操舵反力Treacの絶対値|Treac|は、Treac2に振動角度指令値θcv,cmdに応じた振動トルクTcvが加算された値となる。これにより、両横位置PlatがPRB未満になったときに、ドライバに警告振動を伝達することができる。
前述の実施形態または変形例では、この発明をコラムタイプEPSに適用した場合の例を示したが、この発明は、コラムタイプ以外のEPSにも適用することができる。また、この発明は、ステアバイワイヤシステムにも適用することができる。
本発明の実施形態について詳細に説明してきたが、これらは本発明の技術的内容を明らかにするために用いられた具体例に過ぎず、本発明はこれらの具体例に限定して解釈されるべきではなく、本発明の範囲は添付の請求の範囲によってのみ限定される。
この出願は、2021年11月8日に受理官庁としての日本国特許庁に提出された国際特許出願(PCT/JP2021/041059)に対応しており、その出願の全開示はここに引用により組み込まれるものとする。