(第1の実施形態)
本実施形態では、車両は、電動機などの駆動源を駆動するのに必要な種々の装置(システム、部品等)を搭載することができる。また、車両における車輪の駆動に関わる装置の方式や、数、レイアウト等は、種々に設定することができる。
図1は、第1の実施形態にかかる車両100の駆動力伝達系統の構成例を示した図である。本実施形態は、図1に例示されているように、車両100が、右側の前輪1FR、左側の前輪1FL、右側の後輪1RR、及び左側の後輪1RLを備えた4輪車の場合について説明するが、4輪車に制限するものではない。
また、車両100は、右側の後輪1RRを駆動させるための動力源として、右輪側駆動モータ2Rと、左側の後輪1RLを駆動させるための動力源として、左輪側駆動モータ2Lと、を備える。つまり、本実施形態にかかる車両100は、車両100の後側の駆動輪の左右それぞれを駆動させる駆動モータ(右輪側駆動モータ2R、左輪側駆動モータ2L)を設けた、いわゆるインホイールモータを駆動源として用いた自動車とする。
本実施形態にかかる右輪側駆動モータ2R、左輪側駆動モータ2Lは、インホイールモータとして、後輪1RR、1RLのハブ内部に設けられたものとするが、このような構成に制限するものではなく、ハブと一体化して同軸で接続されていれば良い。
また、右輪側駆動モータ2R、左輪側駆動モータ2Lは、駆動対象の後輪1RR、1RLの車輪速[rpm]を、統合コントローラ50に出力する。
本実施形態の車両100は、駆動モータ2R、2Lを駆動させる構成として、左輪側駆動回路20Lと、右輪側駆動回路20Rと、バッテリ25と、を備えている。さらに、車両100は、車両100に設けられた各構成を制御するために統合コントローラ(ECU)50を備えている。なお、本実施形態は、各構成を制御するために、1つの統合コントローラ(ECU)50で制御する例について説明するが、複数のコントローラで制御しても良い。
本実施形態にかかる左輪側駆動回路20L、及び右輪側駆動回路20Rは、バッテリ25と接続され、IG信号を受け取る。そして、左輪側駆動回路20Lは、統合コントローラ50からの指示に従って、左輪側駆動モータ2Lを制御する。右輪側駆動回路20Rは、統合コントローラ50からの指示に従って、右輪側駆動モータ2Rを制御する。そして、バッテリ25が、車両100全体に対して電力を供給する。特に、バッテリ25は、左輪側駆動モータ2L及び右輪側駆動モータ2Rに対して電力を供給することで、後輪1RL、1RRの駆動を実現する。
本実施形態の後輪の両側の減速機3RL、3RR(これらを総称する場合には減速機3Rと称す)は、対応する後輪1RL、1RRに制動力を付与する。減速機3Rの構成はどのような構成でも良いが、例えば、減速機3RL、3RRは、各後輪1RL、1RRと同軸回転するディスクロータと、当該ディスクロータに接触可能に設けられたブレーキパッドと、当該ブレーキパッドに押圧力を付与するピストンと、図示しないブレーキブースターにより増圧されたブレーキペダル踏力をピストンに伝達する油圧回路などにより構成する。
本実施形態にかかる車両100は、操舵角センサ11と、アクセルストロークセンサ12と、ブレーキストロークセンサ13と、ESC14と、を備える。
操舵角センサ11は、車両100に設けられた、ステアリングホイール(ハンドル)10からの操舵角を検出し、検出した操舵角を示す情報を統合コントローラ50に出力する。そして、統合コントローラ50が、操舵角センサ11により検出された操舵角に応じて、前輪1FR、1FLに転舵力を付与することで、これらの車輪を転舵させる。
アクセルストロークセンサ12は、車両100に設けられたアクセルペダルの操作量(以下、アクセル操作量と称す)を検出し、アクセル操作量を統合コントローラ50に出力する。なお、アクセル操作量とは、例えば、アクセルペダルの踏み込み量とするが、アクセルペダルの踏み込み量に制限するものではなく、アクセルに関する操作の度合いであれば良い。そして、統合コントローラ50が、アクセルストロークセンサ12により検出されたアクセル操作量に応じて、駆動モータ2R、2Lを駆動させる制御を行う。
ブレーキストロークセンサ13は、車両100に設けられたブレーキペダルの操作量を検出し、ブレーキペダルの操作量を統合コントローラ50に出力する。
ESC(Electronic stability Controller)14は、(図示しない)車輪速センサを有し、各車輪速を制御するためのユニットとする。そして、ESC14は、(図示しない)センサにより計測された車両100の車速を、統合コントローラ50に出力する。
そして、統合コントローラ50は、各種センサ(操舵角センサ11、アクセルストロークセンサ12、及びブレーキストロークセンサ13)から入力された検出結果、駆動モータ2R、2Lから入力された車輪速、及びESC14から入力された車速に基づいて、車両100の制御を行う。
図2は、本実施形態にかかる統合コントローラ50内に実現されるソフトウェア構成を示した図である。図2に示す統合コントローラ50内の各構成は、統合コントローラ50内の(図示しない)CPUが、(図示しない)ROM内に格納されたソフトウェアを実行することで実現される。
図2に示されるように、統合コントローラ50は、ソフトウェアを実行することで、合計トルク算出部201と、旋回トルク差算出部202と、トルク分配部203と、を実現する。
合計トルク算出部201は、ESC14から入力された車両100の車速と、アクセルストロークセンサ12から入力されたアクセル操作量と、に基づいて、当該車両100の左右の駆動輪1RL、1RR毎に設けられた駆動モータ2R、2Lを駆動させるための合計トルクを算出する。当該合計トルクの出力を駆動モータ2R、2Lに要求することで、車両100の加速が行われる。換言すれば、合計トルクは、車両100に対する加速要求トルクといえる。
本実施形態の合計トルク算出部201は、アクセルの操作量毎に、車速から合計トルクを導き出すための合計トルク導出マップを記憶している。図3は、アクセルの操作量における、車速と、車両100の出力軸側の合計トルクと、の対応関係を示した合計トルク導出マップの例を示している。図3に示される例では、アクセルの操作量(踏み込み量)が20%の場合に車速に対応する合計トルク301、操作量が50%の場合の車速に対応する合計トルク302、及び操作量が100%の場合に車速に対応する合計トルク303が示されている。図3に示されるように、アクセルの操作量及び車速に応じて、合計トルクが決定される。なお、図3では、説明を容易にするために、操作量20%、50%、100%から合計トルクを導出できる合計トルク導出マップの例を示したが、実際には、操作量0%〜100%のうち、どの値であっても合計トルクを導出できる。図3に示される合計トルク導出マップを、アクセルの操作量毎の保持しているため、合計トルク算出部201は、アクセルの操作量と、車速と、から出力軸側の合計トルクを算出できる。そして、合計トルク算出部201は、算出した合計トルクを、トルク分配部203に出力する。
旋回トルク差算出部202は、操舵角センサ11から入力された操舵角と、駆動モータ2R、2Lから入力された車輪速と、に基づいて、操舵角に従って車両100を旋回させるために必要な、左右の後輪(駆動輪)1RR、1RLに設けられた駆動モータ2R、2L間のトルク差を算出する。
旋回モーメントM、右側の後輪1RRの力Fr、及び左側の後輪1RLの力Fl、車両100の後輪車軸間距離dとした場合に、以下の式(1)が成り立つ。
M=Fl×(d/2)―Fr×(d/2)…(1)
また、タイヤ実有効半径rとした場合に、Fl=Tl/r、及びFr=Tr/rが成り立つ。なお、左側の駆動モータ2LのトルクTlと、右側の駆動モータ2RのトルクTrとする。よってトルク差Tl−Trは、式(1)から以下の式(2)が導き出せる。
Tl−Tr=(2r/d)・M…(2)
ところで、舵角δで、ラプラス演算子sとした場合、旋回モーメントMを式(3)の関係で定める。なお、操舵角速度ゲインq1(ν)、操舵角比例ゲインq0(ν)とする。本実施形態の旋回トルク差算出部202は、車輪速νに基づいて、操舵角速度ゲインq1(ν)、及び操舵角比例ゲインq0(ν)を導き出せる変換マップを保持している。
M=(q1(ν)・s+q0(ν))δ…(3)
従って、トルク差は、下の式(4)から導き出すことができる。
Tl−Tr=(2r/d)・(q1(ν)・s+q0(ν))δ…(4)
そして、本実施形態の旋回トルク差算出部202は、式(4)で示したトルク差(Tl−Tr)のうち、舵角δの変化の割合に基づく項、換言すれば式(4)の過渡項のトルク差diff1=(2r/d)・q1(ν)・s・δと、定常的な舵角に基づく項、換言すれば式(4)の定常項のトルク差diff0=(2r/d)・q0(ν)・δと、をトルク分配部203に出力する。
トルク分配部203は、合計トルク算出部201から入力される合計トルクと、旋回トルク差算出部202から入力されるトルク差と、に基づいて駆動モータ2R、2Lにトルクを分配する。しかしながら、駆動モータ2R、2Lの出力可能なトルクには上限があり、分配されたトルクが上限を超える場合がある。この場合に、トルク分配部203は、駆動モータ2R、2Lに分配するトルクを調整する。本実施形態のトルク分配部203は、駆動モータ2R、2Lの出力可能なトルクの上限を超える場合、車両100の加速感と旋回性能とのいずれかを優先すべきかを車両100の状況に基づいて定め、優先すべき加速性又は旋回性に従って、駆動モータ2R、2Lのトルクの上限を超えないよう駆動モータ2R、2Lの各々にトルクを分配する。
駆動モータ2R、2Lのトルクの上限について説明する。図4は、駆動モータ2R、2Lの各々に割り当てられるトルクを説明した図である。駆動モータ2R、2Lの出力可能なトルクの上限を“120”とする。駆動モータ2R、2Lに対して加速を要求する合計トルクが“200”の場合、駆動モータ2R、2Lの各々に均等に割り当てると、それぞれ“100”となる。そして、旋回トルク差算出部202により算出されたトルク差の合計が“100”の場合、駆動モータ2R、2Lの各々に割り当てられた“100”に対して、一方について“50”加算し、他方について“50”減算する。
図5は、旋回トルク差算出部202により算出されたトルク差に応じてトルクの減算、加算を行った後の駆動モータ2R、2Lのトルクを説明した図である。図5に示されるように、左輪側の駆動モータ2Lに割り当てられるトルクは“150”となり、右輪側の駆動モータ2Rに割り当てられるトルクは“50”となる。このため、左輪側の駆動モータ2Lの上限は“120”のため、割り当てられたトルクに飽和が生じる。そこで、本実施形態のトルク分配部203は、飽和が生じないように、駆動モータ2R、2Lにトルクを分配する。
図6は、トルク分配部203によりトルクの分配が調整された後の駆動モータ2R、2Lのトルクを例示した図である。図6に示されるように、本実施形態のトルク分配部203は、車両100の状況に応じてトルクを分配する。図6に示す例は、駆動モータ2R、2Lに対する加速要求の合計トルクが“200”であり、トルク差が“100”であり、駆動モータ2R、2Lのトルクの上限を“120”とする。
図6では、トルク分配の例として3種類のモードを示している。(B)は、加速性を重視するモードを示している。つまり、(B)は、駆動モータ2R、2Lに対する加速要求の合計トルク“200”を維持する代わりに、トルク差“100”を維持しない例とする。つまり、左輪側の駆動モータ2Lに上限“120”を出力して、右輪側の駆動モータ2Rに“80”を出力することで、合計トルク“200”を維持し、要求された加速性を保持した。その代わりに、トルク差が“40”となるため、要求された旋回性が得られない。
(C)は、旋回性を重視するモードを示している。つまり、(C)は、駆動モータ2R、2L間のトルク差“100”を維持する代わりに、合計トルク“200”を維持しない例とする。つまり、左輪側の駆動モータ2Lに上限“120”を出力し、右輪側の駆動モータ2Rに“20”を出力することで、トルク差“100”を維持し、要求された旋回性を保持した。その代わりに、合計トルクが“140”となるため、要求された加速性が得られない。
(A)は、加速感と旋回性とのバランスを重視するモードを示している。つまり、(A)は、図5で示した例から左輪側の駆動モータ2Lに対する要求トルクを、出力可能なトルクの上限で切った例とする。これにより、要求されたトルク差“100”から“30”減じたトルク差“70”を維持し、要求された合計トルク“200”から“30”減じた合計トルク“170”を維持する。換言すれば、(A)で示されるバランスモードは、(B)で示した加速性重視モードと(C)で示した旋回性重視モードとの中間値が設定される。
つまり、駆動モータ2R、2Lの上限を超えた際のモードの例として、上限を越えた分のトルク(つまり出力)を切り取るだけのバランスモード、上限を越えた分のトルクを他方の駆動モータのトルクに加算する加速性重視モード、上限を越えた分のトルクを他方の駆動モータのトルクから減算する旋回性重視モードがある。
上述したモードのうち、どのモードが適切かは車両100の状況に応じて異なる。そこで、本実施形態のトルク分配部203は、要求された合計トルクとトルク差に従って、駆動モータ2R、2Lにトルクを分配する際に、駆動モータ2R、2Lのトルクの上限を超えた場合に、車両100の状況に対応するモードでトルク分配を行う。
ところで、運転者は、前後・横Gは体感できるように加速度の変化に敏感だが、加速量に対しては鈍感な感受特性を有しているのが一般的である。特にヨーレート(横方向の回転速度)は、視覚で認識できるため、ヨーレートの変化自体には敏感だが、ヨーレートの大小の多少の違いについて鈍感であることが多い。このため、トルク分配部203は、ヨーレートが変化した際に、当該変化が生じたことをトルク分配に反映させること、換言すれば旋回性を重視することで、運転者に違和感を抱かせることのないトルク分配を実現できる。
一方、ハンドルを固定している状態(所定の操舵角を維持している状態)では、旋回性を重視して加速性を損なわせると、運転者は定常的な加速性が得られないことに違和感を抱くことになる。また、運転者は、上述したようにヨーレートの大小の違いについては鈍感な感受特性を有しているのが一般的である。このため、トルク分配部203は、定常的な旋回制御では、加速性を重視することで、運転者に違和感を抱かせないトルク分配を実現できる。
これにより、トルク分配部203は、運転者に対して、違和感を抱かせないように、駆動モータ2R、2Lにトルクを分配できる。つまり、運転者が操舵を行った際に、操作意図に近い旋回制御の過渡項(操舵角速度比例分)は、旋回性を優先(重視)することで、運転者に対して、意図通りの旋回を実感させることができる。さらに、所定の操舵角を維持している状態を表した旋回制御の定常項(操舵角比例分)は、加速性を優先することで、運転者に対して、意図通りの加速を実感させることができる。
次に、本実施の形態にかかる統合コントローラ50における、トルク出力処理について説明する。図7は、本実施の形態にかかる統合コントローラ50における上述した処理の手順を示すフローチャートである。本実施形態においては、トルク分配部203のトルク差に関する処理を、過渡項と定常項とに分けて処理する。
まず、合計トルク算出部201が、車両100の車速と、アクセル操作量と、に基づいて、駆動モータ2R、2Lを駆動させるための合計トルクを算出する(ステップS701)。
次に、旋回トルク差算出部202が、操舵角と、車輪速と、に基づいて、車両100を操舵角に従って旋回させるために必要な駆動モータ2R、2L間のトルク差(過渡項のトルク差diff1、及び定常項のトルク差diff0)を算出する(ステップS702)。
そして、トルク分配部203が、トルク差を考慮せず、合計トルクを左右均等に割り当てることで、(仮の)左右のトルク指示量R、Lを設定する(ステップS703)。
その後、トルク分配部203は、過渡項に関する処理751に入る。そして、トルク分配部203は、駆動モータ2R、2Lの上限値であるmax_R、max_Lを読み出すと共に、調整パラメータk=1を設定する(ステップS704)。調整パラメータkは、上述したモードに従ってトルク分配を調整するためのパラメータとする。加速性重視モードの場合に、調整パラメータk=0が設定され、旋回性重視モードの場合に、調整パラメータk=1が設定される。つまり、ステップS704では、旋回性を重視したパラメータ設定が実現される。
そして、トルク分配部203が、関数func((仮の)左側トルク指示量L、(仮の)右側トルク指示量R、左輪側駆動モータ2Lの上限値max_L、右輪側駆動モータ2Rの上限値max_R、トルク差の過渡項diff1、及び調整パラメータk)から、左側出力トルクL_out、及び右側出力トルクR_outを算出する(ステップS705)。
次に、トルク分配部203は、定常項に関する処理752に入る。そして、トルク分配部203は、左側出力トルクL_outを左側トルク指示量Lに、右側出力トルクR_outを右側トルク指示量Rに設定すると共に、調整パラメータk=0を設定する(ステップS706)。これにより、加速性を重視したパラメータ設定が実現される。
そして、トルク分配部203が、関数func(左側トルク指示量L、右側トルク指示量R、左輪側駆動モータ2Lの上限値max_L、右輪側駆動モータ2Rの上限値max_R、トルク差の定常項diff0、及び調整パラメータk)から、左側出力トルクL_out、及び右側出力トルクR_outを算出する(ステップS707)。
そして、トルク分配部203は、左側出力トルクL_outを左側駆動回路20Lに出力し、右側出力トルクR_outを右側駆動回路20Rに出力する(ステップS708)。
上述した処理手順により、過渡項に関する処理751により導出された左側出力トルクL_out、右側出力トルクR_outをトルク指示量R、Lと設定した上で、定常項に関する処理752で、左側出力トルクL_out、右側出力トルクR_outを算出することとした。これにより、過渡項において旋回性を重視すると共に、定常項において加速性を重視した左側出力トルクL_out、右側出力トルクR_outを出力できる。
また、本実施形態では、過渡項と、定常項とによるトルク分配に制限するものではない。例えばステップS708以降に、障害物等を検出した場合に、当該障害物をよけるために旋回性を重視してトルクを分配する処理等を追加しても良い。
次に、トルク分配部203において、ステップS705、ステップS707で行われた関数funcの処理について説明する。図8は、トルク分配部203におけるトルク分配処理の手順を示すフローチャートである。なお、図8に示すフローチャートでは、関数funcにおいて、過渡項のトルク差diff1又は定常項のトルク差diff0が引数として代入されるパラメータをトルク差diffとする。
まずは、トルク分配部203は、トルク差diff>0、つまり車両100が左回りであるか否かを判定する(ステップS801)。そして、トルク分配部203が、トルク差diff>0である、つまり左回りであると判定した場合(ステップS801:Yes)、駆動モータのそれぞれについて、トルク指示量R、Lからトルク上限max_R、max_Lまでの差分値a、bを算出する(ステップS802)。具体的には、トルク分配部203は、左輪側の駆動モータ2Lの差分値a=max_L−Lで算出し、右輪側の駆動モータ2Rの差分値b=max_R+Rで算出する。
次に、トルク分配部203は、トルク差diff<2×min(a,b)が成立するか否かを判定する(ステップS803)。トルク差diff<2×min(a,b)が成立すると判定した場合(ステップS803:Yes)、トルク差による加算、減算を行っても飽和は生じないものとして、L_out=L+diff/2、R_out=R−diff/2を演算して(ステップS804)、処理を終了する。
一方、トルク分配部203が、トルク差diff<2×min(a,b)が成立しないと判定した場合(ステップS803:No)、トルク差による演算を行うと飽和が生じるものとして、diff<(a+b)が成り立つか否か、換言すれば、左右の駆動モータ2R、2L間で当該トルク差を実現できるか否かを判定する(ステップS805)。
トルク分配部203が、diff<(a+b)が成り立つ、換言すればトルク差が実現できると判定した場合(ステップS805:Yes)、トルク分配部203は、c=diff−2×min(a,b)を処理する(ステップS807)。中間変数cは、上述したモードに応じて調整の対象となるトルク差とする。
一方、トルク分配部203が、diff<(a+b)が成り立たない、換言すればトルク差が実現できないと判定した場合(ステップS805:No)、トルク分配部203は、c=a+b−2×min(a,b)を処理する(ステップS806)。
その後、トルク分配部203は、aとmin(a,b)とが等しいか否か(a==min(a,b)が成り立つか否か)、換言すれば左輪側の駆動モータ2Lでトルクが飽和するか否かを判定する(ステップS808)。
トルク分配部203が、aとmin(a,b)とが等しい(a==min(a,b)が成り立つ)、換言すれば左輪側の駆動モータ2Lでトルクが飽和すると判定した場合(ステップS808:Yes)、トルク分配部203は、L_out=max_Lと、R_out=R−min(a,b)−k×cと、を演算して(ステップS809)、処理を終了する。
トルク分配部203が、aとmin(a,b)とが等しくない(a==min(a,b)が成り立たない)、換言すれば右輪側の駆動モータ2Rでトルクが飽和すると判定した場合(ステップS808:No)、トルク分配部203は、L_out=L+min(a,b)+k×cと、R_out=−max_Rと、を演算して(ステップS810)、処理を終了する。
また、ステップS801において、トルク分配部203が、トルク差diff>0ではない、つまり右回りであると判定した場合(ステップS801:No)、駆動モータ2R、2Lのそれぞれについて、トルク指示量R、Lからトルク上限max_R、max_Lまでの差分値a、bを算出する(ステップS811)。具体的には、トルク分配部203は、左輪側の駆動モータ2Lの差分値a=max_L+Lで算出し、右輪側の駆動モータ2Rの差分値b=max_R−Rで算出する。
次に、トルク分配部203は、トルク差diff>−2×min(a,b)が成立するか否かを判定する(ステップS812)。トルク差diff>−2×min(a,b)が成立すると判定した場合(ステップS812:Yes)、トルク差による加算、減算を行っても飽和は生じないものとして、L_out=L−diff/2、R_out=R+diff/2を演算して(ステップS813)、処理を終了する。
一方、トルク分配部203が、トルク差diff>−2×min(a,b)が成立しないと判定した場合(ステップS812:No)、トルク差による演算を行うと飽和が生じるものとして、diff>−(a+b)が成り立つか否か、換言すれば、左右の駆動モータ2R、2L間で当該トルク差を実現できるか否かを判定する(ステップS814)。
トルク分配部203が、diff>−(a+b)が成り立つ、換言すればトルク差が実現できると判定した場合(ステップS814:Yes)、トルク分配部203は、c=−diff−2×min(a,b)を処理する(ステップS816)。
一方、トルク分配部203が、diff>−(a+b)が成り立たない、換言すればトルク差が実現できないと判定した場合(ステップS814:No)、トルク分配部203は、c=a+b−2×min(a,b)を処理する(ステップS815)。
その後、トルク分配部203は、aとmin(a,b)とが等しいか否か(a==min(a,b)が成り立つか否か)、換言すれば左輪側の駆動モータ2Lでトルクが飽和するか否かを判定する(ステップS817)。
トルク分配部203が、aとmin(a,b)とが等しい(a==min(a,b)が成り立つ)、換言すれば左輪側の駆動モータ2Lでトルクが飽和すると判定した場合(ステップS817:Yes)、トルク分配部203は、L_out=−max_Lと、R_out=R+min(a,b)+k×cと、を演算して(ステップS818)、処理を終了する。
トルク分配部203が、aとmin(a,b)とが等しくない(a==min(a,b)が成り立たない)、換言すれば右輪側の駆動モータ2Rでトルクが飽和すると判定した場合(ステップS817:No)、トルク分配部203は、L_out=L−min(a,b)−k×cと、R_out=max_Rと、を演算して(ステップS819)、処理を終了する。
上述した処理手順により、左側出力トルクL_out、及び右側出力トルクR_outが設定される。また、ステップS809、S810、S818、S819において、調整パラメータkを用いた処理を行うことで、駆動モータ2R、2Lのトルクの上限を超えた場合に、上述したモードに応じたトルクの調整を実現できる。
図9は、図8で示したフローチャートにおいて、diff>0の場合に行われる処理の一例を示した図である。図9の(A)に示される例では、合計トルクが均等に割り当てられたトルク指示量R、Lとする。そして、図9の(B)に示される例では、(A)で示されたトルク指示量R、Lから、左側の駆動モータ2Lで飽和が生じるために調整された例とする。つまり、トルク分配部203が、左側出力トルクL_out=max_Lと、右側出力トルクR_out=R−a−k×cと、を設定した。
図10は、図8で示したフローチャートにおいて、diff≦0の場合に行われる処理の例を示した図である。図10の(A)に示される例では、合計トルクが均等に割り当てられたトルク指示量R、Lとする。そして、図10の(B)に示される例では、(A)で示されたトルク指示量R、Lから、トルク差に基づいた加算、減算を行っても飽和が生じなかった例とする。つまり、トルク分配部203が、各々にdiff/2で加減算、つまり左側出力トルクL_out=L−diff/2と、右側出力トルクR_out=R+diff/2と、を設定した。
図11は、加速性重視(調整パラメータk=0)の場合に実行される加速量と、旋回量と、を示した図である。図11に示される例では、“左側のトルク指示量(L指示量)”と、“右側のトルク指示量(R指示量)”と、“加速量(指示)”と、“旋回指示量”と、“右側のトルク算出値(R算出値)”と、“左側のトルク算出値(L算出値)”と、“加速量(実行)”と、“旋回量(実行)”と、を対応づけて示している。
“加速量(指示)”は、換言すれば当該加速に必要な合計トルクであり、“左側のトルク指示量(L指示量)”及び“右側のトルク指示量(R指示量)”は、合計トルクを左右に均等に割り当てた指示量の初期値である。“旋回指示量”は、指示に従って旋回するために必要なトルク差を示している。“右側のトルク算出値(R算出値)”、及び“左側のトルク算出値(L算出値)”は、トルク分配部203により演算された後に駆動モータ2R、2Lに分配されるトルクを示している。“加速量(実行)”及び“旋回量(実行)”は、分配されたトルクで実行される加速量、及び旋回量を示している。図11に示す例では、指示する加速量(合計トルク)を“100”に固定した上で、旋回指示量(トルク差)が“0”〜“600”まで、及び“−100”〜“−600”まで“100”毎に変化させた場合に導出される各パラメータを示している。
図11に示す例では、加速性重視(調整パラメータk=0)のため、実行される加速量“100”が保持される。その上で、旋回指示量(トルク差)が“400”以上の場合、実行される旋回量が“400”に固定される。一方、旋回指示量(トルク差)が“−400”以下の場合も、実行される旋回量が“−400”に固定される。
図12は、加速性と旋回性とのバランス重視(調整パラメータk=0.5)の場合に実行される加速量と、旋回量と、を示した図である。図12に示される例では、図11と同様に、“左側のトルク指示量(L指示量)”と、“右側のトルク指示量(R指示量)”と、“加速量(指示)”と、“旋回指示量”と、“右側のトルク算出値(R算出値)”と、“左側のトルク算出値(L算出値)”と、“加速量(実行)”と、“旋回量(実行)”と、を対応づけて示している。図12に示す例も、指示する加速量(合計トルク)を“100”に固定した上で、旋回指示量(トルク差)が“0”〜“600”まで、及び“−100”〜“−600”まで“100”毎に変化させた場合に導出される各パラメータを示している。
図12に示す例では、加速性と旋回性とのバランス重視(調整パラメータk=0.5)のため、駆動モータ2R、2Lの上限を超えた場合、換言すれば旋回指示量(トルク差)が“500”、“600”の場合に、加速量(指示)の“100”から“50”減算された加速量(実行)“50”が設定され、旋回量(実行)“450”が設定される。なお、旋回量(実行)“450”は、駆動モータ2R、2Lで実現可能なトルク差“500”から“50”減算した値である。同様に、旋回指示量(トルク差)が“−500”、“−600”の場合に、加速量(実行)“50”が設定され、旋回量(実行)“−450”が設定される。
図13は、旋回性重視(調整パラメータk=1)の場合に実行される加速量と、旋回量と、を示した図である。図13に示される例では、図11、図12と同様に、“左側のトルク指示量(L指示量)”と、“右側のトルク指示量(R指示量)”と、“加速量(指示)”と、“旋回指示量”と、“右側のトルク算出値(R算出値)”と、“左側のトルク算出値(L算出値)”と、“加速量(実行)”と、“旋回量(実行)”と、を対応づけて示している。図13に示す例も、指示する加速量(合計トルク)を“100”に固定した上で、旋回指示量(トルク差)が“0”〜“600”まで、及び“−100”〜“−600”まで“100”毎に変化させた場合に導出される各パラメータを示している。
図13に示す例では、旋回性重視(調整パラメータk=1)のため、駆動モータ2R、2Lの上限を超えた場合、換言すれば旋回指示量(トルク差)が“500”の場合に、加速量(実行)“0”が設定され、旋回量(実行)“500”が設定される。旋回指示量(トルク差)が“600”の場合は、駆動モータ2R、2Lで実現可能なトルク差を超えているため、トルク差の限界である旋回量(実行)“500”が設定される。同様に、旋回指示量(トルク差)が“−500”、“−600”の場合に、旋回量(実行)“−500”が設定される。
上述したように、本実施形態の統合コントローラ50においては、過渡項、換言すれば操舵角の変化の割合に対応するトルク差については、旋回性を重視してトルク分配し、定常項、換言すれば操舵角に対応するトルク差については、加速性を重視してトルク分配した。これにより、運転者に違和感を生じさせない車両100の操舵を実現できる。
本実施形態の統合コントローラ50においては、過渡項においては旋回性重視モードを用い、定常項においては加速性重視モードを用いた例について説明したが、過渡項及び定常項にこれらのモードを用いることに制限するものではない。例えば、定常項において旋回性と加速性とのバランス重視モードを用いても良い。
なお、本実施形態は、旋回性重視モード、及び加速性重視モードを上述した条件に制限するものではない。例えば、運転者の操作で、旋回性重視モード、加速性重視モード、旋回性と加速性とのバランス重視モードを切り替え可能としても良い。例えば、街乗り等では加速性重視モードを設定し、オフロード等では旋回性重視モード等を設定することが考えられる。
(第2の実施形態)
第1の実施形態では、運転者の操舵に従って、旋回性重視モード、及び加速性重視モードを切り替える例について説明した。しかしながら、旋回性重視モード、及び加速性重視モードの切替を、運転者の操舵に制限するものではない。そこで、第2の実施形態では、外部の環境に応じて、トルクの分配するためのモードを切り替える例について説明する。
図14は、第2の実施形態にかかる車両1400の駆動力伝達系統の構成例を示した図である。図14に示される車両1400では、図1で示した車両100と比べて、カメラ1401が追加され、統合コントローラ50と実行する処理が異なる統合コントローラ1402に変更された例とする。
カメラ1401は、車両1400から外部(例えば道路)等を撮像して、撮像結果である画像データを、統合コントローラ1402に出力する。
図15は、本実施形態にかかる統合コントローラ1402内に実現されるソフトウェア構成を示した図である。図15に示す統合コントローラ1402内の各構成は、統合コントローラ1402内の(図示しない)CPUが、(図示しない)ROM内に格納されたソフトウェアを実行することで実現される。
図15に示されるように、統合コントローラ1402は、第1の実施形態と同様に、合計トルク算出部201と、旋回トルク差算出部202と、を備えている。合計トルク算出部201、及び旋回トルク差算出部202は、第1の実施形態と同様として説明を省略する。
本実施形態の統合コントローラ1402は、複数のロジックを搭載して、当該ロジック毎に対応するモードに従ったトルク分配を行う。本実施形態の統合コントローラ1402は、ロジックとして少なくともレーンキープアシスト部1501と、緊急回避制御部1502とを備えている。
レーンキープアシスト部1501は、画像データから検出された道路に沿って、車両1400が走行するように、車両1400の操舵をアシストする。そして、レーンキープアシスト部1501は、左右の駆動モータ2R、2Lを駆動させるための出力トルクを出力する。当該操舵のアシストにおいては、道路に沿って走行すれば良く、旋回性はそれほど必要ない。このため、レーンキープアシスト部1501においては、加速性重視モードによる制御が行われる。
緊急回避制御部1502は、画像データから車両1400の進行先に障害物があるか否かを判断し、障害物があると判断された場合に、当該障害物を回避して走行するように、車両1400の操舵を制御する。そして、緊急回避制御部1502は、障害物を回避するための経路に従って、左右の駆動モータ2R、2Lを駆動させるための出力トルクを出力する。当該操舵の制御においては、障害物を回避する必要があるため、旋回性が重視される。このため、緊急回避制御部1502においては、加速性重視モードによる制御が行われる。
本実施形態の統合コントローラ1402のトルク分配部1503は、複数のロジックから入力された出力トルクと、優先度とに従って、トルクを分配する。
図16が、トルク分配部1503における、優先度とロジックの関係とを示した図である。図16に示される例では、ロジックiについて優先度p(i)が設定される。優先度p(i)は、時間tの経過(車両1400の状況)に応じて変化する。
図16に示す例では、線1601が、レーンキープアシスト部1501の優先度を示している。線1601に示されるように、トルク分配部1503側で、ロジックi毎の優先度を漸増、漸減させることで、運転者に違和感を生じさせることなく、道路に従って走行を行うように操舵をアシストできる。
図16に示す例では、線1602が、緊急回避制御部1502の優先度を示している。線1602に示されるように、障害物を検出した場合に、緊急回避制御部1502側で、緊急回避制御部1502の優先度p(i)が“100”になるように設定する。このように、本実施形態では、ロジックi側で優先度p(i)の変更を実現できる。
上述したようにロジックi毎の優先度p(i)は、ロジックi側又はトルク分配部1503側のどちらが設定しても良く、ロジックiの性質に応じて定められるものとする。
また、本実施形態のトルク分配部1503は、第1の実施形態で算出される出力トルクも優先度p(i)を設定して、他のロジックiで出力された出力トルクとの間の調整を行うものとする。
次に、本実施の形態にかかる統合コントローラ1402のトルク分配部1503における、出力トルクの算出処理について説明する。図17は、本実施の形態にかかる統合コントローラ1402のトルク分配部1503における上述した処理の手順を示すフローチャートである。
まず、トルク分配部1503が、各ロジックi(例えば、レーンキープアシスト部1501、緊急回避制御部1502)から、左右の駆動モータ2R、2Lに対する出力トルク(L(i)、R(i))を受け取る。なお、ロジックi(例えば、レーンキープアシスト部1501、緊急回避制御部1502)が、優先度p(i)を出力する場合に、トルク分配部1503は、左右の出力トルクと共に、優先度p(i)も受け取る(ステップS1701)。
そして、トルク分配部1503が、各ロジックi(例えば、レーンキープアシスト部1501、緊急回避制御部1502)から受け取った後、左輪側の駆動モータ2Lの出力トルクを算出するために、式(5)で示される演算を行う(ステップS1702)。なお、式(5)は、各ロジックiから出力された左側の出力トルクL(i)とし、n個のロジックiから、左側の出力トルクLを演算する。
次に、トルク分配部1503が、右輪側の駆動モータ2Rの出力トルクを算出するために、式(6)で示される演算を行う(ステップS1703)。なお、式(6)は、各ロジックiから出力された右側の出力トルクR(i)とし、n個のロジックiから、右側の出力トルクRを演算する。
上述した処理手順により、トルク分配部1503において、複数のロジックiで算出される出力トルク間の調整を実現できる。
本実施形態においては、統合コントローラ1402において、複数のロジックiから出力トルクを導出することで、車両の様々な状況に対応するトルク制御を実現できる。その際に、優先度p(i)でトルク出力を調整することで、車両の状況に適切なトルク制御を実現できる。その際に、優先度を漸増、漸減することで、運転者に対して違和感を抱かせることなく、トルク制御を実現できる。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。