(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-06-30
(45)【発行日】2025-07-08
(54)【発明の名称】車両の制御装置
(51)【国際特許分類】
B60W 30/20 20060101AFI20250701BHJP
【FI】
B60W30/20
(21)【出願番号】P 2022190551
(22)【出願日】2022-11-29
【審査請求日】2024-07-24
(73)【特許権者】
【識別番号】000003207
【氏名又は名称】トヨタ自動車株式会社
(74)【代理人】
【識別番号】100105957
【氏名又は名称】恩田 誠
(74)【代理人】
【識別番号】100068755
【氏名又は名称】恩田 博宣
(72)【発明者】
【氏名】野瀬 麻衣
【審査官】西堀 宏之
(56)【参考文献】
【文献】特開2019-177736(JP,A)
【文献】特開2005-51888(JP,A)
【文献】特開2021-88247(JP,A)
【文献】特開2020-171067(JP,A)
【文献】米国特許出願公開第2022/0017065(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
B60W 10/00-60/00
B60L 1/00- 3/12
7/00-13/00
15/00-58/40
B60K 6/20- 6/547
(57)【特許請求の範囲】
【請求項1】
モータで駆動輪を駆動する電動車両に適用され、
プロセッサと、機械学習によって学習した学習済みモデルが記憶されている記憶装置と、を備え、
波状路を走行しているときに、前記プロセッサが、ドライブシャフトの捩れ共振による振動を抑制する制振制御を実施する車両の制御装置であり、
前記学習済みモデルは、前記モータの回転速度と前記モータが発生しているトルクと前記駆動輪の回転速度と含む説明変数の既定期間分の時系列データを入力して演算を実行することによって既定時間後の前記駆動輪の接地荷重を予測するモデルであり、
前記制振制御において、前記プロセッサが、前記学習済みモデルによる予測結果を用いて前記モータに正トルクを発生させる増速補正を実施するか前記モータに負トルクを発生させる減速補正を実施するかを判定して前記増速補正と前記減速補正とを切り替えることにより、前記駆動輪がスリップしているときに前記モータの回転速度を増大させ、前記駆動輪がグリップしているときに前記モータの回転速度を低下させる
車両の制御装置。
【請求項2】
モータで駆動輪を駆動する電動車両に適用され、プロセッサと、機械学習によって学習した学習済みモデルが記憶されている記憶装置と、を備え、
波状路を走行しているときに、前記プロセッサが、ドライブシャフトの捩れ共振による振動を抑制する制振制御を実施する車両の制御装置であり、
前記学習済みモデルは、前記モータの回転速度と前記モータが発生しているトルクと前記駆動輪の回転速度と含む説明変数の既定期間分の時系列データを入力して演算を実行することによって既定時間後に前記駆動輪がスリップしているかグリップしているかを予測するモデルであり、
前記制振制御において、前記プロセッサが、前記学習済みモデルによる予測結果を用いて前記モータに正トルクを発生させる増速補正を実施するか前記モータに負トルクを発生させる減速補正を実施するかを判定して前記増速補正と前記減速補正とを切り替えることにより、前記駆動輪がスリップしているときに前記モータの回転速度を増大させ、前記駆動輪がグリップしているときに前記モータの回転速度を低下させる
車両の制御装置。
【請求項3】
前記説明変数に、前記車両の前後方向の加速度のデータが含まれている
請求項1又は請求項2に記載の車両の制御装置。
【請求項4】
前記プロセッサは、波状路を走行しているときに、波状路を走行していないときよりも前記モータのトルクを小さくするトルクダウン制御を実施しながら、前記制振制御を実施する
請求項1又は請求項2に記載の車両の制御装置。
【請求項5】
前記プロセッサは、前記トルクダウン制御において、トルクの目標値に上限値を設定して前記モータのトルクを制限することによって前記モータのトルクを小さくする
請求項4に記載の車両の制御装置。
【発明の詳細な説明】
【技術分野】
【0001】
この発明は車両の制御装置に関するものである。
【背景技術】
【0002】
特許文献1には、電動車両において、ドライブシャフトの捩れ共振による車体の振動が発生することが開示されている。そこで、電動車両においては、車体振動を抑制する制振制御を実施する。制振制御では、モータのトルクが、捩れ共振による振動を抑制するように制御される。特許文献1には、電動車両の車輪を接地させた状態で取得したモータの回転速度のデータに基づいて制振制御の制御ゲインを適合することが開示されている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
車両が波状路を走行すると、各車輪の接地荷重が変動して車輪がスリップとグリップを繰り返すことがある。そのため、車輪が接地していることを前提に適合された制振制御では、効果的に捩れ共振による振動を抑制することができない。
【課題を解決するための手段】
【0005】
以下、上記課題を解決するための手段及びその作用効果について記載する。
上記課題を解決するための車両の制御装置は、モータで駆動輪を駆動する電動車両に適用される。この制御装置は、プロセッサと、機械学習によって学習した学習済みモデルが記憶されている記憶装置と、を備えている。この制御装置では、波状路を走行しているときに、前記プロセッサが、ドライブシャフトの捩れ共振による振動を抑制する制振制御を実施する。前記学習済みモデルは、前記モータの回転速度と前記モータが発生しているトルクと前記駆動輪の回転速度と含む説明変数の既定期間分の時系列データを入力して演算を実行することによって既定時間後の前記駆動輪の接地荷重を予測するモデルである。前記制振制御において、前記プロセッサが、前記学習済みモデルによる予測結果を用いて前記モータに正トルクを発生させる増速補正を実施するか前記モータに負トルクを発生させる減速補正を実施するかを判定する。そして、前記処理回路は、前記増速補正と前記減速補正とを切り替えることにより、前記駆動輪がスリップしているときに前記モータの回転速度を増大させ、前記駆動輪がグリップしているときに前記モータの回転速度を低下させる。
【0006】
また、車両の制御装置の一態様では、前記学習済みモデルは、前記モータの回転速度と前記モータが発生しているトルクと前記駆動輪の回転速度と含む説明変数の既定期間分の時系列データを入力して演算を実行することによって既定時間後に前記駆動輪がスリップしているかグリップしているかを予測するモデルである。
【発明の効果】
【0007】
この制御装置は、予測結果を用いて適切なタイミングで増速補正と減速補正を切り替えて捩れ共振による振動を抑制できる。
【図面の簡単な説明】
【0008】
【
図1】
図1は、電動車両の構成を示すブロック図である。
【
図2】
図2は、波状路を走行しているときのドライブシャフトの捩れを説明する模式図である。
【
図3】
図3は、波状路判定とトルクダウン制御にかかる処理の流れを示すフローチャートである。
【
図4】
図4は、制振制御にかかる処理の流れを示すフローチャートである。
【
図5】
図5は、ニューラルネットワークの模式図である。
【
図6】
図6は、長・短期記憶ニューラルネットワークの概念を説明する説明図である。
【
図7】
図7は、増速補正と減速補正との切り替えタイミングと、接地荷重の変動との関係を示すタイミングチャートである。
【発明を実施するための形態】
【0009】
以下、車両の制御装置の一実施形態である制御装置10について、
図1~
図7を参照して説明する。
<車両の構成>
図1に示すように、制御装置10が搭載された車両は、駆動力源としてモータ30を備えた電動車両である。モータ30の回転軸はディファレンシャル51及びドライブシャフト50を介して左右の駆動輪52に接続されている。
【0010】
モータ30は、インバータ20に接続されている。インバータ20は、バッテリ40と接続されている。さらにインバータ20は、制御装置10に接続されている。制御装置10は、プロセッサ11と記憶装置12を備えている。プロセッサ11は、CPU並びに、RAM及びROM等のメモリを含み、メモリは、処理をCPUに実行させるように構成されたプログラムコードまたは指令を格納している。プロセッサ11は、インバータ20を制御する信号を生成する。インバータ20は、制御装置10から受信した信号に基づいてバッテリ40から供給された直流電流を交流電流に変換してモータ30に供給する電流を調整する。
【0011】
モータ30は例えば、三相交流モータであり、インバータ20から供給される交流電流によって駆動力を発生する。モータ30が発生した駆動力は、ディファレンシャル51及びドライブシャフト50を介して左右の各駆動輪52に伝達される。また、モータ30は、駆動輪52によって連れ回されて回転する場合に、回生制動力を発生する。これにより、車両の運動エネルギは、電気エネルギに変換されてバッテリ40に充電される。
【0012】
制御装置10には、アクセルポジションセンサ100、第1車輪速センサ101及び第2車輪速センサ102が接続されている。また、制御装置10には、加速度センサ103、電流センサ104、回転センサ105及びトルクセンサ106も接続されている。
【0013】
アクセルポジションセンサ100は、アクセル操作量ACCPを検出する。第1車輪速センサ101は、右の駆動輪52の回転速度ωt1を検出する。第2車輪速センサ102は、左の駆動輪52の回転速度ωt2を検出する。制御装置10は、回転速度ωt1と回転速度ωt2の平均値を回転速度ωtとして算出する。また、制御装置10は、回転速度ωtに基づいて車両の速度である車速Vを算出する。
【0014】
加速度センサ103は、車両の前後方向、左右方向、上下方向の加速度及び車両の傾きを検出する。電流センサ104は、モータ30に流れる電流を検出する。回転センサ105は、モータ30の回転速度ωmgを検出する。トルクセンサ106は、モータ30の発生しているトルクを検出する。
【0015】
<制御装置10について>
例えば、プロセッサ11は、アクセル操作量ACCPと車速Vとに基づいてトルクの目標値Tmを算出する。そして、プロセッサ11は、目標値Tmと回転速度ωmgとに基づいてモータ30に供給する電流値の目標値を算出する。制御装置10は、算出した電流値の目標値を実現するようにインバータ20を駆動する。このように、制御装置10は、モータ30のトルクを目標値Tmに近づけるようにモータ30を制御する。
【0016】
<捩れ共振について>
車両が波状路を走行していると、駆動輪52の接地荷重が変動して駆動輪52がスリップとグリップを繰り返すことがある。その結果、ドライブシャフト50に捩れが繰り返し発生して捩れ共振が発生することがある。
【0017】
図2を参照してこの捩れ共振について説明する。駆動輪52がスリップすると、駆動輪52の回転速度ωtが上昇する。すると、
図2に実線の矢印で示すように、駆動輪52の回転速度ωtがモータ30の回転速度ωmgよりも大きくなる。この回転速度ωtと回転速度ωmgとの差により、ドライブシャフト50に捩れが生じる。
【0018】
図2に破線の矢印で示すように、捩れの解消に伴いモータ30の回転速度ωmgが遅れて上昇するが、駆動輪52がグリップすると、今度は駆動輪52の回転速度ωtが低下する。すると、
図2に破線の矢印で示すように、駆動輪52の回転速度ωtがモータ30の回転速度ωmgよりも小さくなる。この回転速度ωtと回転速度ωmgとの差により、ドライブシャフト50には、スリップが発生したときとは逆向きの捩れが生じる。
【0019】
波状路を走行しており、駆動輪52がスリップとグリップを繰り返すと、こうした捩れが繰り返し発生して、捩れ共振が発生することがある。捩れ共振が発生すると、振幅が大きくなり、ドライブシャフト50に大きな負荷がかかる。また、車両の振動が大きくなる。
【0020】
そこで、制御装置10は、車両が波状路を走行しているときに、トルクダウン制御と制振制御とを実行する。トルクダウン制御は、波状路を走行していないときよりもモータ30のトルクを小さくする制御である。そして、制振制御は、増速補正と減速補正とを切り替えることにより、駆動輪52がスリップしているときにモータ30の回転速度ωmgを増大させ、駆動輪52がグリップしているときにモータ30の回転速度ωmgを低下させる制御である。
【0021】
<トルクダウン制御について>
図3は、波状路判定とトルクダウン制御にかかるルーチンにおける処理の流れを示すフローチャートである。このルーチンは、車両が走行しているときに制御装置10のプロセッサ11によって繰り返し実行される。
【0022】
このルーチンを開始すると、プロセッサ11は、ステップS100の処理において、モータ30の回転速度ωmgの変化量Δωmgを算出する。具体的には、プロセッサ11は、前回このルーチンを実行したときの回転速度ωmgを今回このルーチンを実行しているときの回転速度ωmgから引いた差を算出する。算出された差が変化量Δωmgである。
【0023】
次のステップS110の処理において、プロセッサ11は、直近の既定期間の間に算出された変化量Δωmgを積算した積算値ΣΔωmgを算出する。具体的には、前回このルーチンを実行したときに算出した積算値ΣΔωmgにステップS100の処理を通じて算出した変化量Δωmgの絶対値を加算する。そして、算出された和から既定期間前にこのルーチンを実行したときに積算値ΣΔωmgに加算した変化量Δωmgを減算する。こうして算出した差が新たな積算値ΣΔωmgである。すなわち、プロセッサ11は、このルーチンを繰り返し実行することによって直近の既定期間の間に算出された変化量Δωmgの絶対値を積算して積算値ΣΔωmgを算出している。波状路を走行していると、
図2を参照して説明したように、モータ30の回転速度ωmgが増減を繰り返すようになる。そのため、積算値ΣΔωmgが大きくなる。すなわち、積算値ΣΔωmgは、波状路を走行しているか否かを判定する指標値になる値である。
【0024】
次のステップS120の処理において、プロセッサ11は、積算値ΣΔωmgが第1閾値以上であるかを判定する。第1閾値は、積算値ΣΔωmgが第1閾値以上であることに基づいて波状路を走行していると判定するための閾値である。第1閾値の大きさは、予め行う実験の結果に基づいて波状路を走行していることを適切に判定することができる大きさに設定されている。
【0025】
ステップS120の処理において、積算値ΣΔωmgが第1閾値以上であると判定した場合(ステップS120:YES)には、プロセッサ11は処理をステップS130へと進める。
【0026】
ステップS130の処理において、プロセッサ11は、フラグFbを「1」に設定し、トルクダウン制御を実施する。フラグFbは初期値が「0」であり、「0」か「1」に設定されるフラグである。フラグFbは、「1」である場合に波状路を走行していることを示す。フラグFbは、「0」である場合に波状路を走行していないことを示す。プロセッサ11は、フラグFbが「1」になっているときに、トルクダウン制御を実施する。
【0027】
トルクダウン制御は、波状路を走行していないときよりもモータ30のトルクを小さくする制御である。具体的には、プロセッサ11は、トルクダウン制御において、トルクの目標値Tmの上限値を設定する。そして、プロセッサ11は、上限値は、トルクダウン制御を実行していない場合の目標値Tmよりも小さい値になっている。プロセッサ11は、目標値Tmを上限値で制限することにより、波状路を走行していないときよりもモータ30のトルクを小さくする。こうしてステップS130の処理を実行すると、プロセッサ11は、このルーチンを一旦終了させる。
【0028】
ステップS120の処理において、積算値ΣΔωmgが第1閾値未満であると判定した場合(ステップS120:NO)には、プロセッサ11は処理をステップS140へと進める。
【0029】
ステップS140の処理において、プロセッサ11は、フラグFbが「1」であるかを判定する。ステップS140の処理において、フラグFbが「1」であると判定しなかった場合(ステップS140:NO)には、プロセッサ11は、そのままこのルーチンを終了させる。すなわち、プロセッサ11は、波状路を走行していない場合には、トルクダウン制御を実施せずにこのルーチンを終了させる。
【0030】
一方で、ステップS140の処理において、フラグFbが「1」であると判定した場合(ステップS140:YES)には、プロセッサ11は、処理をステップS150へと進める。そして、プロセッサ11は、ステップS150の処理において、積算値ΣΔωmgが第2閾値以下であるかを判定する。第2閾値は、積算値ΣΔωmgが第2閾値以下であることに基づいてもう波状路を走行していないと判定するための閾値である。第2閾値は、第1閾値よりも小さな値である。第2閾値の大きさは、予め行う実験の結果に基づいて波状路を走行していないことを適切に判定することができる大きさに設定されている。
【0031】
ステップS150の処理において、積算値ΣΔωmgが第2閾値よりも大きいと判定した場合(ステップS150:NO)には、プロセッサ11はそのままこのルーチンを終了させる。この場合には、フラグFbが「1」のままであるため、プロセッサ11は、トルクダウン制御の実施を継続する。
【0032】
一方で、ステップS150の処理において、積算値ΣΔωmgが第2閾値以下であると判定した場合(ステップS150:YES)には、プロセッサ11は、処理をステップS160へと進める。ステップS160の処理において、プロセッサ11は、フラグFbを「0」に設定し、トルクダウン制御を解除する。そして、プロセッサ11はこのルーチンを一旦終了させる。こうして制御装置10は、積算値ΣΔωmgが第2閾値以下になると、波状路走行が終了したと判定してトルクダウン制御の実施を終了させる。
【0033】
<制振制御について>
次に、制振制御について
図4~
図7を参照して説明する。
図4は、制振制御にかかるルーチンの処理の流れを示すフローチャートである。このルーチンは、フラグFbが「1」に設定されているときにプロセッサ11によって繰り返し実行される。
【0034】
図4に示すように、このルーチンを開始すると、プロセッサ11は、ステップS200の処理において判定処理を実施する。判定処理は、増速補正を実施する期間か減速補正を実施する期間かを判定する処理である。
【0035】
制御装置10では、判定処理において、プロセッサ11が学習済みモデルを用いて駆動輪52の接地荷重を予測する。そして、プロセッサ11は、予測した接地荷重に基づいて既定時間後に駆動輪52がスリップしているかグリップしているかを予測する。さらに、プロセッサ11は、この予測結果に基づいて、増速補正を実施する増速補正期間であるのか減速補正を実施する減速補正期間であるのかを判定する。なお、既定時間は、数ミリ秒である。
【0036】
制御装置10の記憶装置12には、駆動輪52の接地荷重を予測する学習済みモデルのデータが記憶されている。制御装置10では、学習済みモデルとして、時系列データを時間軸に沿った推移の情報を保持したまま取り扱うことのできる長・短期記憶ニューラルネットワークを用いる。長・短期記憶ニューラルネットワークは、いわゆるLSTMニューラルネットワークである。LSTMニューラルネットワークはリカレントニューラルネットワークの一種である。
【0037】
図5には、LSTMニューラルネットワークを構成するニューラルネットワークを示している。なお、
図5では、隣り合う層のノードを繋ぐ伝送路の表記を省略している。
図5の左端に示すように、このニューラルネットワークは、複数のノードを有する入力層を備えている。入力層のノードの数は、入力データXを構成する説明変数の数と等しい。なお、入力データXの内容については後述する。
【0038】
図5の右端に示すように、このニューラルネットワークは、1つのノードからなる出力層を備えている。この出力層は、接地荷重yを出力する。そして、このニューラルネットワークは、入力層と出力層の間に入力層よりもノードの数が少ない複数の層からなる隠れ層を備えている。
【0039】
このニューラルネットワークの隠れ層における活性化関数は例えば、ハイパボリックタンジェントである。また、隠れ層における層の数と、隠れ層の各層におけるノードの数は、接地荷重yを適切に推定できるように設計段階において調整した上で設定されるハイパーパラメータである。
【0040】
このニューラルネットワークでは、説明変数の時系列データである入力データXを構成する説明変数を入力層に入力することによって各伝送路に応じた重みをかけた値の和を活性化関数に入力する。そして、活性化関数の出力値を次の層に入力する。こうした演算を繰り返して最終的に出力層から接地荷重yを出力する。
【0041】
制御装置10は、駆動輪52の接地荷重yを予測するための説明変数として、モータ30のトルクと、モータ30の回転速度ωmgと、車両の前後方向の加速度と、駆動輪52の回転速度ωtとを用いる。プロセッサ11は、既定時間後の駆動輪52の接地荷重yを算出するために、今回このルーチンを開始するまでの既定期間の間に取得したデータから入力データXを作成する。すなわち、プロセッサ11は、既定期間の間に取得された説明変数の全ての値を入力データXにする。なお、既定期間の長さは例えば数十ミリ秒である。既定期間の間に説明変数が10回取得される場合には、入力データXは連続して収集された10個の説明変数の集合である。具体的には、入力データXは、既定期間において最初に収集された説明変数からなる収集データX(1)から既定期間において最後に収集された説明変数からなる収集データX(10)までの集合である。
【0042】
なお、それぞれの説明変数は、上述したように、4種類の情報を含んでいる。そのため、各収集データは、これら4個の値からなる4次元のベクトルになっている。したがって、この場合、
図5に示すニューラルネットワークの入力層は4個のノードを有している。
【0043】
図5は、リカレントニューラルネットワークの構成を模式的に示している。なお、
図6において縦方向に延びている矢印は説明変数が入力される
図5に示したニューラルネットワークの順伝播の方向を示している。なお、
図6における「n」は入力データXにおける説明変数の時系列的な順番を示している。
【0044】
図6における右端に示した収集データX(n)が入力されるニューラルネットワークは収集データX(n)である4次元のベクトルを入力にして接地荷重yを出力する。すなわち、この場合には、収集データX(10)が入力されるニューラルネットワークである。このニューラルネットワークは、接地荷重yを出力する出力層まで順伝播する全結合型ニューラルネットワークである。
【0045】
図6に示すように、既定期間において最後に収集された収集データX(10)が入力されるニューラルネットワークの隠れ層には、1つ前のタイミングで収集された収集データX(9)が入力されるニューラルネットワークの隠れ層の出力が反映される。
【0046】
図6に示すように、収集データX(9)が入力されるニューラルネットワークの隠れ層には、既定期間においてさらに1つ前のタイミングで収集された収集データX(8)が入力されるニューラルネットワークの隠れ層の出力が反映されるようになっている。このように各収集データが入力される各ニューラルネットワークには1つ前のタイミングで収集された収集データが入力されるニューラルネットワークにおける隠れ層の出力が反映されるようになっている。
【0047】
LSTMニューラルネットワークは、LSTMブロックと呼ばれる機構を、こうしたリカレントニューラルネットワークの各隠れ層に設け、時系列情報の伝播を調整することができるようにしたニューラルネットワークである。
【0048】
なお、記憶装置12に記憶されている学習済みモデルは、予め行った走行実験の結果などから作成した、駆動輪52の接地荷重をセンサで検出した実測データの情報を含む訓練データX_trを用いて予め教師有り学習されている。なお、訓練データX_trを作成するためのデータの収集には、車両に駆動輪52の接地荷重を測定するセンサを取り付けた実験用車両を用いる。そして、この実験用車両により波状路の走行を含む様々な走行状態で走行する走行実験を繰り返しながら大量のデータを収集する。
【0049】
こうして収集した大量のデータを用いてニューラルネットワークの重みを更新する学習が行われる。学習を行うコンピュータは、収集したデータに基づいて訓練データX_trを生成して学習を行う。
【0050】
なお、訓練データX_trは、上述した10個の収集データの集合に、接地荷重の実測データを含めたデータである。訓練データX_trに含まれる接地荷重の実測データは、同じ訓練データX_trに含まれる収集データを収集した既定期間の終了時点から既定時間後の接地荷重の実測データである。コンピュータは、正解ラベルとしての実測した接地荷重を収集データに組み合わせて1つの訓練データX_trを生成する。
【0051】
コンピュータは、収集した大量のデータからたくさんの訓練データX_trを生成すると、訓練データX_trのうち入力データXに相当するX(1)~X(10)のデータをLSTMニューラルネットワークに入力して接地荷重yを算出する。
【0052】
そして、コンピュータは、学習を行う。具体的には、コンピュータは、算出した接地荷重yと算出に用いた訓練データX_trにおける正解ラベルである実測した接地荷重との間の誤差が小さくなるように、ニューラルネットワークにおける重みを調整する。
【0053】
そして、コンピュータは、たくさんの訓練データX_trを用いて接地荷重yの算出と、重みの調整とを繰り返す。コンピュータは、LSTMニューラルネットワークを用いて算出した接地荷重yの誤差が十分に小さくなると、学習が完了したと判定する。そして、コンピュータは、学習済みのLSTMニューラルネットワークのデータを学習済みモデルのデータとして記憶装置12に記憶させる。
【0054】
制御装置10の記憶装置12には、こうして重みが調整された学習済みのLSTMニューラルネットワークのデータが記憶されている。
制御装置10のプロセッサ11は、車両が走行している間、入力データXを学習済みモデルに入力して既定時間後の接地荷重yを算出する処理を繰り返している。
【0055】
そのため、
図7に示すように、制御装置10は、既定時間後までの接地荷重yの推移の情報を持っている。ステップS200の判定処理において、プロセッサ11は、この既定時間後までの接地荷重yの推移の情報に基づいて増速補正を実施する増速補正期間であるのか減速補正を実行する減速補正期間であるのかを判定する。
【0056】
具体的には、プロセッサ11は、接地荷重yが第3閾値以下である期間は、駆動輪52がスリップしているスリップ期間であると判定する。そして、プロセッサ11は、接地荷重yが第3閾値よりも大きい期間は、駆動輪52がグリップしているグリップ期間であると判定する。
【0057】
プロセッサ11は、スリップ期間の開始時点からモータ30に正トルクを発生させることができるように、増速補正期間を、スリップ期間よりも僅かに早い時期に設定する。なお、増速補正期間の開始時期をスリップ期間の開始時点よりも早める量は、予め行う実験の結果に基づいて決定されている。例えば、増速補正期間の開始時期をスリップ期間の開始時点よりも早める量は、制御装置10から信号を発信してから実際にモータ30してトルクが発生するまでの期間の長さに基づいて決定される。
【0058】
同様に、プロセッサ11は、グリップ期間の開始時点からモータ30に負トルクを発生させることができるように、減速補正期間を、グリップ期間よりも僅かに早い時期に設定する。こうして、
図7に示すように、増速補正期間と減速補正期間とは、交互に現れるように設定されている。
【0059】
ステップS200の判定処理において、プロセッサ11は、今回このルーチンを実行している時点が、増速補正期間に該当するのか、減速補正期間に該当するのかを判定する。
そして、
図4に示すように、ステップS210の処理では、プロセッサ11は、こうして判定処理を通じて判定した結果が、増速補正期間であるかを判定する。ステップS210の処理において増速補正期間であると判定した場合(ステップS210:YES)には、プロセッサ11は、処理をステップS220へと進める。そして、ステップS220の処理において、プロセッサ11は、増速補正を実施する。具体的には、プロセッサ11は、目標値Tmよりも大きな正トルクをモータ30に出力させるように電流値の目標値を補正してインバータ20を制御する。こうして増速補正を実施すると、プロセッサ11は、このルーチンを一旦終了させる。
【0060】
一方で、ステップS210の処理において増速補正期間であると判定しなかった場合(ステップS210:NO)には、プロセッサ11は、処理をステップS230へと進める。そして、ステップS230の処理において、プロセッサ11は、減速補正を実施する。具体的には、プロセッサ11は、負トルクをモータ30に出力させるようにインバータ20を制御する。こうして減速補正を実施すると、プロセッサ11は、このルーチンを一旦終了させる。
【0061】
こうして制御装置10は、波状路走行をしているときに、トルクダウン制御とともに制振制御を実施する。
<本実施形態の作用>
駆動輪52がスリップすると、
図2において実線の矢印で示したように、駆動輪52の回転速度ωtが上昇してモータ30の回転速度ωmgよりも高くなる。その結果、ドライブシャフト50に捩れが生じる。そして、駆動輪52がスリップしている状態から駆動輪52がグリップすると、
図2に破線の矢印で示したように、駆動輪52の回転速度ωtが低下してモータ30の回転速度ωmgよりも低くなる。その結果、ドライブシャフト50に捩れが生じる。こうした捩れの発生が交互に繰り返されることにより捩れ共振が発生する。
【0062】
制御装置10では、プロセッサ11が、増速補正と減速補正とを切り替えながら交互に実施する。これにより、駆動輪52がスリップしているときにモータ30の回転速度ωmgが増大され、駆動輪52がグリップしているときにモータ30の回転速度ωmgが低減される。すなわち、制振制御において、プロセッサ11は、モータ30の回転速度ωmgを駆動輪52の回転速度ωtに近づける方向にトルクを補正する。そのため、ドライブシャフト50の捩れを抑制して捩れ共振による振動を抑制できる。
【0063】
なお、増速補正と減速補正との切り替えタイミングによっては、捩れ共振がかえって助長されてしまうおそれがある。これに対して、制御装置10では、プロセッサ11が学習済みモデルによる予測結果を用いて増速補正と減速補正との切り替えを行う。そのため、プロセッサ11は、予測結果に基づいて、駆動輪52がスリップするタイミングにあわせてモータ30の回転速度ωmgを増大させるように増速補正を実施できる。そして、プロセッサ11は、駆動輪52がグリップするタイミングにあわせてモータ30の回転速度ωmgを低減させるように減速補正を実施できる。
【0064】
<本実施形態の効果>
(1)制御装置10は、予測結果を用いて適切なタイミングで増速補正と減速補正を切り替えて捩れ共振による振動を抑制できる。
【0065】
(2)路面の摩擦係数が低いほど、駆動輪52がスリップしやすくなる。そして、駆動輪52がスリップしているときには、駆動輪52の回転速度ωtが上昇しても車両が加速しにくい。つまり、駆動輪52の回転速度ωtと車両の前後方向の加速度との関係は、路面の摩擦係数の情報を含むデータである。説明変数は、車両の前後方向の加速度のデータを含んでいる。したがって、制御装置10は、学習済みモデルによって路面の摩擦係数の違いを反映させたより正確な予測を行うことができる。
【0066】
(3)モータ30のトルクが小さいほど、波状路を走行しているときのドライブシャフト50の捩れが小さくなる。プロセッサ11は、波状路を走行しているときに、波状路を走行していないときよりもモータ30のトルクを小さくするトルクダウン制御を実施しながら、制振制御を実施する。そのため、制御装置10は、制振制御の効果と合わせて更に捩れ共振による振動を抑制することができる。
【0067】
<変更例>
本実施形態は、以下のように変更して実施することができる。本実施形態及び以下の変更例は、技術的に矛盾しない範囲で互いに組み合わせて実施することができる。
【0068】
・上記の実施形態では、判定処理において、既定時間後の駆動輪52の接地荷重yを予測する学習済みモデルを用いる例を示した。これに対して、学習済みモデルは既定時間後に駆動輪52がスリップしているかグリップしているかを予測するモデルであってもよい。その場合、訓練データX_trは、正解ラベルとして駆動輪52がスリップしているか、グリップしているかを示すデータを含んだデータであればよい。駆動輪52がスリップしているか、グリップしているかを示すデータは、例えば、接地荷重yが第3閾値以上であるか否かに基づいて判定した結果のデータであってもよい。また、車輪速センサのデータを分析して人が判定した結果のデータであってもよい。こうした既定時間後に駆動輪52がスリップしているかグリップしているかを予測する学習済みモデルを用いて判定処理を行った場合にも上記の実施形態と同様の効果を得ることができる。
【0069】
・学習済みモデルは、LSTMニューラルネットワークに限らない。決定木や、回帰モデルなど他の機械学習の手法を用いて学習した学習済みモデルを用いてもよい。上記の実施形態では、入力データX(1)~X(10)を時系列の順にLSTMニューラルネットワークに入力して接地荷重yを算出する例を示した。これに対して、例えば、畳み込みニューラルネットワークを学習済みモデルにすることもできる。なお、その場合は、入力データX(1)~X(10)の情報を、4行10列の1つの行列のかたちのデータにして、畳み込みニューラルネットワークに入力して接地荷重yを算出する。
【0070】
・説明変数に車両前後方向の加速度のデータを含めた例を示したが、説明変数に車両前後方向の加速度のデータが含まれていなくてもよい。
・説明変数に、車両上下方向の加速度のデータを含めてもよい。車両上下方向の加速度のデータを説明変数に含めることにより、より正確に接地荷重yを予測したり、より正確に駆動輪52がスリップしているかグリップしているかを予測したりすることができるようになる。
【0071】
・説明変数に、アクセル開度のデータを含めてもよい。アクセル開度のデータを説明変数に含めることにより、より正確に接地荷重yを予測したり、より正確に駆動輪52がスリップしているかグリップしているかを予測したりすることができるようになる。
【符号の説明】
【0072】
10…制御装置、11…プロセッサ、12…記憶装置、20…インバータ、30…モータ、40…バッテリ、50…ドライブシャフト、51…ディファレンシャル、52…駆動輪、100…アクセルポジションセンサ、101…第1車輪速センサ、102…第2車輪速センサ、103…加速度センサ、104…電流センサ、105…回転センサ、106…トルクセンサ