(57)【特許請求の範囲】
【請求項１】
複数の走行制御モードのうちの１つを選択可能な車両に適用され、
前記車両の状態と前記車両内の電子機器の操作に関する変数である行動変数との関係を規定する関係規定データが記憶装置に記憶された状態で、
前記電子機器を操作する操作処理と、
前記車両の状態を検出するセンサの検出値を取得する取得処理と、
前記取得処理によって取得された前記検出値に基づき、前記走行制御モードと相関を有する前記車両の特性が基準を満たす場合に満たさない場合よりも大きい報酬を与える報酬算出処理と、
前記取得処理によって取得された前記検出値に基づく前記車両の状態、前記電子機器の操作に用いられた行動変数の値、および該操作に対して与えられた前記報酬を予め定められた更新写像への入力とし、前記関係規定データを更新する更新処理と、
を実行装置に実行させ、
前記更新写像は、前記関係規定データに従って前記電子機器が操作される場合の前記報酬についての期待収益を増加させるように更新された前記関係規定データを出力するものであり、
前記報酬算出処理は、前記選択される走行制御モードが互いに異なる第１の走行制御モードと第２の走行制御モードとで、前記特性が同一の基準を満たす場合であっても異なる報酬を与える処理を含む車両用制御データの生成方法。
【請求項２】
複数の走行制御モードのうちの１つを選択可能な車両に適用され、
前記車両の状態と前記車両内の電子機器の操作に関する変数である行動変数との関係を規定する関係規定データが記憶装置に記憶された状態で、
前記電子機器を操作する操作処理と、
前記車両の状態を検出するセンサの検出値を取得する取得処理と、
前記取得処理によって取得された前記検出値に基づき、前記走行制御モードと相関を有する前記車両の特性が基準を満たす場合に満たさない場合よりも大きい報酬を与える報酬算出処理と、
前記取得処理によって取得された前記検出値に基づく前記車両の状態、前記電子機器の操作に用いられた行動変数の値、および該操作により生じる前記車両の特性に対して与えられた前記報酬を予め定められた更新写像への入力とし、前記関係規定データを更新する更新処理と、
を実行装置に実行させ、
前記更新写像は、前記関係規定データに従って前記電子機器が操作される場合の前記報酬についての期待収益を増加させるように更新された前記関係規定データを出力するものであり、
前記報酬算出処理は、前記選択される走行制御モードが互いに異なる第１の走行制御モードと第２の走行制御モードとで、前記特性が同一の基準を満たす場合であっても異なる報酬を与える処理を含む車両用制御データの生成方法。
【請求項３】
前記車両の状態には、前記車両に搭載される推力生成装置のトルクが含まれ、
前記報酬算出処理は、前記トルクとトルク指令値の差の絶対値が小さい場合に大きい場合よりもより大きい報酬を与えて且つ、前記複数の走行制御モードのうちの第１の走行制御モードと第２の走行制御モードとで前記絶対値が同一であっても互いに異なる報酬を与える処理を含む請求項１または２記載の車両用制御データの生成方法。
【請求項４】
前記車両の状態には、前記車両に搭載される変速装置の状態が含まれ、
前記報酬算出処理は、前記変速装置の状態が基準を満たす場合に満たさない場合よりも大きい報酬を与えて且つ、前記複数の走行制御モードのうちの第１の走行制御モードと第２の走行制御モードとで前記変速装置の状態が同一の基準を満たす場合であっても互いに異なる報酬を与える処理を含み、
前記変速装置の状態が基準を満たす場合に満たさない場合よりも大きい報酬を与える処理は、前記変速装置による変速比の切り替えに要する時間が所定時間以内である場合に所定時間を超える場合よりも大きい報酬を与える処理と、前記変速装置の入力軸５２の回転速度の変化速度の絶対値が入力側所定値以下である場合に入力側所定値を超える場合よりも大きい報酬を与える処理と、前記変速装置の出力軸５４の回転速度の変化速度の絶対値が出力側所定値以下である場合に出力側所定値を超える場合よりも大きい報酬を与える処理との、３つの処理のうちの少なくとも１つの処理を含む請求項１または２記載の車両用制御データの生成方法。
【請求項５】
前記車両の状態には、前記車両におけるエネルギ消費率が含まれ、
前記報酬算出処理は、前記エネルギ消費率が低い場合に高い場合よりも大きい報酬を与えて且つ、前記複数の走行制御モードのうちの第１の走行制御モードと第２の走行制御モードとで前記エネルギ消費率が同一の基準を満たす場合であっても互いに異なる報酬を与える処理を含む請求項１または２記載の車両用制御データの生成方法。
【請求項６】
前記車両の状態には、アクセル操作量の変化が含まれ、
前記報酬算出処理は、前記アクセル操作量の変化に伴う前記車両の前後方向の加速度が基準を満たす場合に満たさない場合よりも大きい報酬を与えて且つ、前記複数の走行制御モードのうちの第１の走行制御モードと第２の走行制御モードとで前記加速度が同一の基準を満たす場合であっても互いに異なる報酬を与える処理を含む請求項１または２記載の車両用制御データの生成方法。
【請求項７】
前記車両は、当該車両の推力生成装置として内燃機関を備えるものであり、
前記電子機器には、前記内燃機関のスロットルバルブが含まれ、
前記行動変数には、前記スロットルバルブの開口度に関する変数が含まれる請求項６記載の車両用制御データの生成方法。
【請求項８】
前記電子機器には、前記内燃機関の点火装置が含まれ、
前記行動変数には、点火時期に関する変数が含まれる請求項７記載の車両用制御データの生成方法。
【請求項９】
前記関係規定データは、前記アクセル操作量の時系列データと前記行動変数との関係を規定するデータである請求項６〜８のいずれか１項に記載の車両用制御データの生成方法。
【請求項１０】
前記更新処理によって更新された前記関係規定データに基づき、前記車両の状態と前記期待収益を最大化する前記行動変数の値とを１対１に対応付けることによって前記車両の状態を入力とし前記期待収益を最大化する前記行動変数の値を出力する制御用写像データを生成する処理を前記実行装置に実行させる請求項１〜９のいずれか１項に記載の車両用制御データの生成方法。
【請求項１１】
請求項１〜９のいずれか１項に記載の前記記憶装置および前記実行装置を備え、
前記操作処理は、前記関係規定データに基づき前記車両の状態に応じた行動変数の値に従って前記電子機器を操作する処理を含み、
前記取得処理は、前記複数の走行制御モードのうちのいずれをユーザが選択したかの選択結果を取得する処理を含む車両用制御装置。
【請求項１２】
請求項１１記載の前記実行装置および前記記憶装置を備え、
前記実行装置は、前記車両に搭載される第１実行装置と、車載装置とは別の第２実行装置と、を含み、
前記第１実行装置は、少なくとも前記取得処理および前記操作処理を実行し、
前記第２実行装置は、少なくとも前記更新処理を実行する車両用制御システム。
【請求項１３】
請求項１２記載の第１実行装置を備える車両用制御装置。
【請求項１４】
請求項１２記載の第２実行装置を備える車両用学習装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、車両用制御データの生成方法、車両用制御装置、車両用制御システム、および車両用学習装置に関する。
【背景技術】
【０００２】
たとえば下記特許文献１には、アクセルペダルの操作量をフィルタ処理した値に基づき、車両に搭載される内燃機関の操作部としてのスロットルバルブを操作する制御装置が記載されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１６−６３２７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、上記フィルタは、アクセルペダルの操作量に応じて車両に搭載される内燃機関のスロットルバルブの操作量を適切な操作量に設定するものである必要があることから、その適合には熟練者が多くの工数をかける必要が生じる。このように、従来は、車両の状態に応じた車両内の電子機器の操作量等の適合には、熟練者が多くの工数をかけていた。
【課題を解決するための手段】
【０００５】
以下、上記課題を解決するための手段およびその作用効果について記載する。
１．複数の走行制御モードのうちの１つを選択可能な車両に適用され、前記車両の状態と前記車両内の電子機器の操作に関する変数である行動変数との関係を規定する関係規定データが記憶装置に記憶された状態で、前記電子機器を操作する操作処理と、前記車両の状態を検出するセンサの検出値を取得する取得処理と、前記取得処理によって取得された前記検出値に基づき、前記走行制御モードと相関を有する前記車両の特性が基準を満たす場合に満たさない場合よりも大きい報酬を与える報酬算出処理と、前記取得処理によって取得された前記検出値に基づく前記車両の状態、前記電子機器の操作に用いられた行動変数の値、および該操作に対応する前記報酬を予め定められた更新写像への入力とし、前記関係規定データを更新する更新処理と、を実行装置に実行させ、前記更新写像は、前記関係規定データに従って前記電子機器が操作される場合の前記報酬についての期待収益を増加させるように更新された前記関係規定データを出力するものであり、前記報酬算出処理は、前記選択される走行制御モードが互いに異なる第１の走行制御モードと第２の走行制御モードとで、前記特性が同一の基準を満たす場合であっても異なる報酬を与える処理を含む車両用制御データの生成方法である。
【０００６】
上記方法では、電子機器の操作に伴う報酬を算出することによって、当該操作によってどのような報酬が得られるかを把握することができる。そして、報酬に基づき、強化学習に従った更新写像によって関係規定データを更新することにより、車両の状態と行動変数との関係を設定することができる。したがって、車両の状態と行動変数との関係の設定に際して、熟練者に要求される工数を削減できる。
【０００７】
ところで、複数の走行制御モードのうちの１つを選択可能な車両においては、走行制御モードごとに、車両の状態にとって適切な行動変数の値が異なりうる。そこで上記方法では、第１の走行制御モードと第２の走行制御モードとで車両の特性が同一の基準を満たす場合であっても異なる報酬を与えることにより、走行制御モードごとに、車両の状態にとって適切な行動変数の値を強化学習によって学習することが可能となる。
【０００８】
２．前記車両の状態には、アクセル操作量の変化が含まれ、前記報酬算出処理は、前記アクセル操作量の変化に伴う前記車両の前後方向の加速度が基準を満たす場合に満たさない場合よりも大きい報酬を与えて且つ、前記複数の走行制御モードのうちの第１の走行制御モードと第２の走行制御モードとで前記加速度が同一の基準を満たす場合であっても互いに異なる報酬を与える処理を含む上記１記載の車両用制御データの生成方法である。
【０００９】
アクセル操作量の変化によって生じる車両の前後方向の加速度の大きさは、車両の走行制御モードに大いに関係することから、上記方法のように、走行制御モードに応じて加速度が同一の基準を満たす場合であっても互いに異なる報酬を与えることにより、走行制御モードごとに、アクセル操作にとって適切な行動変数の値を強化学習によって学習できる。
【００１０】
３．前記車両は、当該車両の推力生成装置として内燃機関を備えるものであり、前記電子機器には、前記内燃機関のスロットルバルブが含まれ、前記行動変数には、前記スロットルバルブの開口度に関する変数が含まれる上記２記載の車両用制御データの生成方法である。
【００１１】
たとえば吸入空気量に応じて噴射量を調整する内燃機関等においては、スロットルバルブの開口度に応じて内燃機関のトルクや出力が大きく変化する。そのため、アクセル操作量に対する行動変数としてスロットルバルブの開口度に関する変数を用いることにより、車両の推進力を好適に調整することができる。
【００１２】
４．前記電子機器には、前記内燃機関の点火装置が含まれ、前記行動変数には、点火時期に関する変数が含まれる上記３記載の車両用制御データの生成方法である。
点火装置を備える内燃機関においては、点火装置によって操作される点火時期によって、内燃機関のトルクを調整できる。そのため、上記方法では、行動変数に点火時期に関する変数を含めることにより、アクセル操作量の変化に応じて車両の推進力を好適に調整できる。
【００１３】
５．前記関係規定データは、前記アクセル操作量の時系列データと前記行動変数との関係を規定するデータである上記２〜４のいずれか１つに記載の車両用制御データの生成方法である。
【００１４】
上記方法では、アクセル操作量の時系列データと行動変数との関係を規定することにより、たとえばアクセル操作量の変化量を示す１次元のデータと行動変数との関係を規定する場合と比較して、アクセル操作量の様々な変化に対して行動変数の値をきめ細かく調整できる。
【００１５】
６．前記更新処理によって更新された前記関係規定データに基づき、前記車両の状態と前記期待収益を最大化する前記行動変数の値とを１対１に対応付けることによって前記車両の状態を入力とし前記期待収益を最大化する前記行動変数の値を出力する制御用写像データを生成する処理を前記実行装置に実行させる上記１〜５のいずれか１つに記載の車両用制御データの生成方法である。
【００１６】
上記方法では、強化学習によって学習された関係規定データに基づき、制御用写像データを生成する。そのため、その制御用写像データを制御装置に実装することにより、車両の状態に基づき、期待収益を最大化する行動変数の値を簡易に設定することが可能となる。
【００１７】
７．上記１〜５のいずれか１つに記載の前記記憶装置および前記実行装置を備え、前記操作処理は、前記関係規定データに基づき前記車両の状態に応じた行動変数の値に従って前記電子機器を操作する処理を含み、前記取得処理は、前記複数の走行制御モードのうちのいずれをユーザが選択したかの選択結果を取得する処理を含む車両用制御装置である。
【００１８】
上記構成では、強化学習によって学習された関係規定データに基づき行動変数の値が設定され、それに基づき電子機器が操作されることにより、期待収益を大きくするように電子機器を操作することができる。しかも、ユーザによる走行制御モードの選択結果を取得することにより、車両の走行に伴って走行制御モードごとに、関係規定データを更新できる。
【００１９】
８．上記７記載の前記実行装置および前記記憶装置を備え、前記実行装置は、前記車両に搭載される第１実行装置と、車載装置とは別の第２実行装置と、を含み、前記第１実行装置は、少なくとも前記取得処理および前記操作処理を実行し、前記第２実行装置は、少なくとも前記更新処理を実行する車両用制御システムである。
【００２０】
上記構成では、更新処理を第２実行装置によって実行することにより、更新処理を第１実行装置が実行する場合と比較して、第１実行装置の演算負荷を軽減できる。
なお、第２実行装置が車載装置とは別の装置であることは、第２実行装置が車載装置ではないことを意味する。
【００２１】
９．上記８記載の第１実行装置を備える車両用制御装置である。
１０．上記８記載の第２実行装置を備える車両用学習装置である。
【図面の簡単な説明】
【００２２】
【図１】第１の実施形態にかかる制御装置および駆動系を示す図。
【図２】同実施形態にかかる制御装置が実行する処理の手順を示す流れ図。
【図３】同実施形態にかかるマップデータを生成するシステムを示す図。
【図４】同実施形態にかかる学習処理の手順を示す流れ図。
【図５】同実施形態にかかる学習処理の一部の詳細を示す流れ図。
【図６】同実施形態にかかるマップデータの生成処理の手順を示す流れ図。
【図７】第２の実施形態にかかる制御装置および駆動系を示す図。
【図８】同実施形態にかかる制御装置が実行する処理の手順を示す流れ図。
【図９】第３の実施形態にかかるシステムの構成を示す図。
【図１０】（ａ）および（ｂ）は、同実施形態にかかるシステムが実行する処理の手順を示す流れ図。
【発明を実施するための形態】
【００２３】
以下、車両用制御データの生成方法、車両用制御装置、車両用制御システム、および車両用学習装置にかかる実施形態について図面を参照しつつ説明する。
＜第１の実施形態＞
図１に、本実施形態にかかる車両ＶＣ１の駆動系および制御装置の構成を示す。
【００２４】
図１に示すように、内燃機関１０の吸気通路１２には、上流側から順にスロットルバルブ１４および燃料噴射弁１６が設けられており、吸気通路１２に吸入された空気や燃料噴射弁１６から噴射された燃料は、吸気バルブ１８の開弁に伴って、シリンダ２０およびピストン２２によって区画される燃焼室２４に流入する。燃焼室２４内において、燃料と空気との混合気は、点火装置２６の火花放電に伴って燃焼に供され、燃焼によって生じたエネルギは、ピストン２２を介してクランク軸２８の回転エネルギに変換される。燃焼に供された混合気は、排気バルブ３０の開弁に伴って、排気として排気通路３２に排出される。排気通路３２には、排気を浄化する後処理装置としての触媒３４が設けられている。
【００２５】
クランク軸２８には、ロックアップクラッチ４２を備えたトルクコンバータ４０を介して、変速装置５０の入力軸５２が機械的に連結可能とされている。変速装置５０は、入力軸５２の回転速度と出力軸５４の回転速度との比である変速比を可変とする装置である。出力軸５４には、駆動輪６０が機械的に連結されている。
【００２６】
制御装置７０は、内燃機関１０を制御対象とし、その制御量であるトルクや排気成分比率等を制御すべく、スロットルバルブ１４、燃料噴射弁１６および点火装置２６等の内燃機関１０の操作部を操作する。また、制御装置７０は、トルクコンバータ４０を制御対象とし、ロックアップクラッチ４２の係合状態を制御すべくロックアップクラッチ４２を操作する。また、制御装置７０は、変速装置５０を制御対象とし、その制御量としての変速比を制御すべく変速装置５０を操作する。なお、図１には、スロットルバルブ１４、燃料噴射弁１６、点火装置２６、ロックアップクラッチ４２、および変速装置５０のそれぞれの操作信号ＭＳ１〜ＭＳ５を記載している。
【００２７】
制御装置７０は、制御量の制御のために、エアフローメータ８０によって検出される吸入空気量Ｇａや、スロットルセンサ８２によって検出されるスロットルバルブ１４の開口度（スロットル開口度ＴＡ）、クランク角センサ８４の出力信号Ｓｃｒを参照する。また、制御装置７０は、アクセルセンサ８８によって検出されるアクセルペダル８６の踏み込み量（アクセル操作量ＰＡ）や、加速度センサ９０によって検出される車両ＶＣ１の前後方向の加速度Ｇｘ、モード選択スイッチ９２の操作によって定まるモード変数ＭＶの値を参照する。ここで、モード選択スイッチ９２は、車両ＶＣ１のユーザが、車両ＶＣ１の走行制御モードに関する３つの選択肢のうちの１つを選択するためのヒューマンマシンインターフェースである。ここで、３つの走行制御モードは、スポーツモード、ノーマルモード、およびコンフォートモードであり、ユーザの運転操作に対する車両ＶＣ１の応答性能が互いに異なったモードである。すなわち、スポーツモードの応答性能が最も高く、コンフォートモードの応答性能が最も低い。コンフォートモードは、車両ＶＣ１の運転に際して同乗者が体感する加速度を抑制するモードである。
【００２８】
制御装置７０は、ＣＰＵ７２、ＲＯＭ７４、電気的に書き換え可能な不揮発性メモリ（記憶装置７６）、および周辺回路７８を備え、それらがローカルネットワーク７９を介して通信可能とされている。ここで、周辺回路７８は、内部の動作を規定するクロック信号を生成する回路や、電源回路、リセット回路等を含む。
【００２９】
ＲＯＭ７４には、制御プログラム７４ａが記憶されている。一方、記憶装置７６には、アクセル操作量ＰＡを入力変数とし、スロットル開口度ＴＡの指令値（スロットル開口度指令値ＴＡ＊）を出力変数とするデータと点火装置２６の遅角量ａｏｐを出力変数とするデータとからなるマップデータＤＭが記憶されている。ここで、遅角量ａｏｐは、予め定められた基準点火時期に対する遅角量であり、基準点火時期は、ＭＢＴ点火時期とノック限界点とのうちの遅角側の時期である。ＭＢＴ点火時期は、最大トルクの得られる点火時期（最大トルク点火時期）である。またノック限界点は、ノック限界の高い高オクタン価燃料の使用時に、想定される最良の条件下で、ノッキングを許容できるレベル以内に収めることのできる点火時期の進角限界値である。
【００３０】
なお、マップデータとは、入力変数の離散的な値と、入力変数の値のそれぞれに対応する出力変数の値と、の組データである。本実施形態では、マップデータＤＭとして、ノーマルモード用マップデータＤＭ１と、スポーツモード用マップデータＤＭ２と、コンフォートモード用マップデータＤＭ３とを備える。
【００３１】
図２に、本実施形態にかかる制御装置７０が実行する処理の手順を示す。図２に示す処理は、ＲＯＭ７４に記憶された制御プログラム７４ａをＣＰＵ７２がたとえば所定周期で繰り返し実行することにより実現される。なお、以下では、先頭に「Ｓ」が付与された数字によって各処理のステップ番号を示す。
【００３２】
図２に示す一連の処理において、ＣＰＵ７２は、まずアクセル操作量ＰＡの６個のサンプリング値「ＰＡ（１），ＰＡ（２），…ＰＡ（６）」からなる時系列データを取得する（Ｓ１０）。ここで、時系列データを構成する各サンプリング値は、互いに異なるタイミングにおいてサンプリングされたものである。本実施形態では、一定のサンプリング周期でサンプリングされる場合の、互いに時系列的に隣り合う６個のサンプリング値によって時系列データを構成する。
【００３３】
次にＣＰＵ７２は、モード変数ＭＶを取得する（Ｓ１２）。そしてＣＰＵ７２は、取得したモード変数ＭＶの値が、ノーマルモードを示すか否かを判定する（Ｓ１４）。ＣＰＵ７２は、ノーマルモードであると判定する場合（Ｓ１４：ＹＥＳ）、スロットルバルブ１４や点火装置２６の操作に用いるマップデータＤＭとして、ノーマルモード用マップデータＤＭ１を選択する（Ｓ１６）。これに対し、ＣＰＵ７２は、ノーマルモードではないと判定する場合（Ｓ１４：ＮＯ）、モード変数ＭＶの値がスポーツモードを示すか否かを判定する（Ｓ１８）。そして、ＣＰＵ７２は、スポーツモードであると判定する場合（Ｓ１８：ＹＥＳ）、スロットルバルブ１４や点火装置２６の操作に用いるマップデータＤＭとして、スポーツモード用マップデータＤＭ２を選択する（Ｓ２０）。これに対し、ＣＰＵ７２は、スポーツモードではないと判定する場合（Ｓ１８：ＮＯ）、スロットルバルブ１４や点火装置２６の操作に用いるマップデータＤＭとして、コンフォートモード用マップデータＤＭ３を選択する（Ｓ２２）。
【００３４】
ＣＰＵ７２は、Ｓ１６，Ｓ２０，Ｓ２２の処理が完了する場合、マップデータＤＭのうち選択したデータを用いてスロットル開口度指令値ＴＡ＊および遅角量ａｏｐをマップ演算する（Ｓ２４）。ここで、マップ演算は、たとえば、入力変数の値がマップデータの入力変数の値のいずれかに一致する場合、対応するマップデータの出力変数の値を演算結果とするのに対し、一致しない場合、マップデータに含まれる複数の出力変数の値の補間によって得られる値を演算結果とする処理とすればよい。
【００３５】
そしてＣＰＵ７２は、スロットルバルブ１４に操作信号ＭＳ１を出力してスロットル開口度ＴＡを操作するとともに、点火装置２６に操作信号ＭＳ３を出力して点火時期を操作する（Ｓ２６）。ここで、本実施形態では、スロットル開口度ＴＡをスロットル開口度指令値ＴＡ＊にフィードバック制御することを例示することから、スロットル開口度指令値ＴＡ＊が同一の値であっても、操作信号ＭＳ１が互いに異なる信号となりうるものである。また、たとえば周知のノッキングコントロール（ＫＣＳ）等がなされる場合、点火時期は、基準点火時期を遅角量ａｏｐにて遅角させた値がＫＣＳにてフィードバック補正された値とされる。ここで、基準点火時期は、ＣＰＵ７２により、クランク軸２８の回転速度ＮＥおよび充填効率ηに応じて可変設定される。なお、回転速度ＮＥは、クランク角センサ８４の出力信号Ｓｃｒに基づきＣＰＵ７２によって算出される。また、充填効率ηは、回転速度ＮＥおよび吸入空気量Ｇａに基づきＣＰＵ７２によって算出される。
【００３６】
なお、ＣＰＵ７２はＳ２６の処理が完了する場合、図２に示す一連の処理を一旦終了する。
図３に、上記マップデータＤＭを生成するシステムを示す。
【００３７】
図３に示すように、本実施形態では、内燃機関１０のクランク軸２８にトルクコンバータ４０および変速装置５０を介してダイナモメータ１００を機械的に連結する。そして内燃機関１０を稼働させた際の様々な状態変数がセンサ群１０２によって検出され、検出結果が、マップデータＤＭを生成するコンピュータである生成装置１１０に入力される。なお、センサ群１０２には、図１に示した車両ＶＣ１が搭載するセンサ等が含まれる。
【００３８】
生成装置１１０は、ＣＰＵ１１２、ＲＯＭ１１４、電気的に書き換え可能な不揮発性メモリ（記憶装置１１６）、および周辺回路１１８を備えており、それらがローカルネットワーク１１９によって通信可能とされたものである。ここで、記憶装置１１６には、アクセル操作量ＰＡと、スロットル開口度指令値ＴＡ＊および遅角量ａｏｐとの関係を規定するデータである関係規定データＤＲが記憶されている。ここで、関係規定データＤＲは、ノーマルモード用規定データＤＲ１、スポーツモード用規定データＤＲ２、およびコンフォートモード用規定データＤＲ３を備える。また、ＲＯＭ１１４には、強化学習によって、関係規定データＤＲを学習する学習プログラム１１４ａが記憶されている。
【００３９】
図４に、生成装置１１０が実行する処理の手順を示す。図４に示す処理は、ＲＯＭ１１４に記憶された学習プログラム１１４ａを、ＣＰＵ１１２が実行することにより実現される。
【００４０】
図４に示す一連の処理において、ＣＰＵ１１２は、まず、モード変数ＭＶの値を設定する（Ｓ３０）。次にＣＰＵ１１２は、内燃機関１０を稼働させた状態において、状態ｓとして、アクセル操作量ＰＡの時系列データを取得する（Ｓ３２）。ここでの時系列データは、Ｓ１０の処理におけるものと同様のデータである。ただし、図４に示す処理においては、アクセルペダル８６は存在しない。そのため、アクセル操作量ＰＡを、生成装置１１０が車両ＶＣ１の状態を模擬することによって疑似的に生成されたものとし、疑似的に生成されたアクセル操作量ＰＡを、車両の状態の検出値とみなす。
【００４１】
次にＣＰＵ１１２は、関係規定データＤＲのうちのＳ３０の処理によって設定されたモード変数ＭＶの値に対応するデータが定める方策πに従い、Ｓ３２の処理によって取得した状態ｓに応じたスロットル開口度指令値ＴＡ＊および遅角量ａｏｐからなる行動ａを設定する（Ｓ３４）。
【００４２】
本実施形態において、関係規定データＤＲは、行動価値関数Ｑおよび方策πを定めるデータである。本実施形態において、行動価値関数Ｑは、状態ｓおよび行動ａの８次元の独立変数に応じた期待収益の値を示すテーブル型式の関数である。また、方策πは、状態ｓが与えられたときに、独立変数が与えられた状態ｓとなる行動価値関数Ｑのうち最大となる行動ａ（グリーディ行動）を優先的に選択しつつも、所定の確率で、それ以外の行動ａを選択する規則を定める。
【００４３】
詳しくは、本実施形態にかかる行動価値関数Ｑの独立変数がとりうる値の数は、状態ｓおよび行動ａのとりうる値の全組み合わせの一部が、人の知見等によって削減されたものである。すなわち、たとえばアクセル操作量ＰＡの時系列データのうち隣接する２つのサンプリング値の１つがアクセル操作量ＰＡの最小値となりもう１つが最大値となるようなことは、人によるアクセルペダル８６の操作からは生じえないとして、行動価値関数Ｑが定義されていない。本実施形態では、人の知見等に基づく次元削減によって、行動価値関数Ｑを定義する状態ｓの取りうる値を、１０の４乗個以下、より望ましくは１０の３乗個以下に制限する。
【００４４】
次にＣＰＵ１１２は、設定されたスロットル開口度指令値ＴＡ＊および遅角量ａｏｐに基づき、Ｓ２６の処理と同様にして操作信号ＭＳ１，ＭＳ３を出力する（Ｓ３６）。次にＣＰＵ１１２は、内燃機関１０のトルクＴｒｑ、内燃機関１０に対するトルク指令値Ｔｒｑ＊、および加速度Ｇｘを取得する（Ｓ３８）。ここで、ＣＰＵ１１２は、トルクＴｒｑを、ダイナモメータ１００が生成する負荷トルクと変速装置５０の変速比とに基づき算出する。また、トルク指令値Ｔｒｑ＊は、アクセル操作量ＰＡに応じて設定される。また、ＣＰＵ１１２は、加速度Ｇｘを、ダイナモメータ１００の負荷トルク等に基づき、仮に内燃機関１０等が車両に搭載されていた場合に車両に生じると想定される値として算出する。すなわち、本実施形態においては、加速度Ｇｘについても仮想的なものであるが、この加速度Ｇｘについても、車両の状態の検出値であるとみなす。
【００４５】
次にＣＰＵ７２は、過渡フラグＦが「１」であるか否かを判定する（Ｓ４０）。過渡フラグＦは、「１」である場合に過渡運転時であることを示し、「０」である場合に過渡運転時ではないことを示す。ＣＰＵ１１２は、過渡フラグＦが「０」であると判定する場合（Ｓ４０：ＮＯ）、アクセル操作量ＰＡの単位時間当たりの変化量ΔＰＡの絶対値が所定量ΔＰＡｔｈ以上であるか否かを判定する（Ｓ４２）。ここで、変化量ΔＰＡは、たとえば、Ｓ４２の処理の実行タイミングにおける最新のアクセル操作量ＰＡと、同タイミングに対して単位時間だけ前におけるアクセル操作量ＰＡとの差とすればよい。
【００４６】
ＣＰＵ１１２は、所定量ΔＰＡｔｈ以上であると判定する場合（Ｓ４２：ＹＥＳ）、過渡フラグＦに「１」を代入する（Ｓ４４）一方、所定量ΔＰＡｔｈ未満であると判定する場合（Ｓ４２：ＮＯ）、Ｓ３２の処理に戻る。
【００４７】
これに対し、ＣＰＵ１１２は、過渡フラグＦが「１」であると判定する場合（Ｓ４０：ＹＥＳ）、Ｓ４４の処理がなされてから所定期間が経過したか否かを判定する（Ｓ４６）。ここで、所定期間は、アクセル操作量ＰＡの単位時間当たりの変化量ΔＰＡの絶対値が所定量ΔＰＡｔｈよりも小さい規定量以下となる状態が所定時間継続するまでの期間とする。ＣＰＵ１１２は、所定期間が経過したと判定する場合（Ｓ４６：ＹＥＳ）、過渡フラグＦに「０」を代入する（Ｓ４８）一方、所定期間が経過していないと判定する場合（Ｓ４６：ＮＯ）、Ｓ３２の処理に戻る。
【００４８】
ＣＰＵ１１２は、Ｓ４４，Ｓ４８の処理が完了する場合、１つのエピソードが終了したとして、強化学習によって行動価値関数Ｑを更新する（Ｓ５０）。
図５に、Ｓ５０の処理の詳細を示す。
【００４９】
図５に示す一連の処理において、ＣＰＵ１１２は、直近に終了されたエピソード中のトルク指令値Ｔｒｑ＊、トルクＴｒｑおよび加速度Ｇｘの３つのサンプリング値の組からなる時系列データと、状態ｓおよび行動ａの時系列データと、を取得する（Ｓ６０）。ここで、直近のエピソードは、Ｓ４８の処理に続いてＳ６０の処理がなされる場合には、過渡フラグＦが継続して「１」となっていた期間であり、Ｓ４４の処理に続いてＳ６０の処理がなされる場合には、過渡フラグＦが継続して「０」となっていた期間である。
【００５０】
図５には、カッコの中の数字が異なるものが、異なるサンプリングタイミングにおける変数の値であることを示す。たとえば、トルク指令値Ｔｒｑ＊（１）とトルク指令値Ｔｒｑ＊（２）とは、サンプリングタイミングが互いに異なるものである。また、直近のエピソードに属する行動ａの時系列データを、行動集合Ａｊとし、同エピソードに属する状態ｓの時系列データを、状態集合Ｓｊと定義する。
【００５１】
次にＣＰＵ１１２は、直近のエピソードに属する任意のトルクＴｒｑとトルク指令値Ｔｒｑ＊との差の絶対値が規定量ΔＴｒｑ以下である旨の条件（ア）と、加速度Ｇｘが下限値ＧｘＬ以上であって上限値ＧｘＨ以下である旨の条件（イ）との論理積が真であるか否かを判定する（Ｓ６２）。
【００５２】
ここで、ＣＰＵ１１２は、規定量ΔＴｒｑを、エピソードの開始時におけるアクセル操作量ＰＡの単位時間当たりの変化量ΔＰＡおよびモード変数ＭＶの値によって可変設定する。すなわち、ＣＰＵ１１２は、エピソードの開始時におけるアクセル操作量ＰＡの単位時間当たりの変化量ΔＰＡに基づき過渡時に関するエピソードであると判定する場合、定常時と判定する場合と比較して、規定量ΔＴｒｑを大きい値に設定する。また、ＣＰＵ１１２は、スポーツモードの場合に規定量ΔＴｒｑを最も小さくし、コンフォードモードの場合に規定量ΔＴｒｑを最も大きくする。
【００５３】
また、ＣＰＵ１１２は、下限値ＧｘＬを、エピソードの開始時におけるアクセル操作量ＰＡの単位時間当たりの変化量ΔＰＡおよびモード変数ＭＶの値によって可変設定する。すなわち、ＣＰＵ１１２は、過渡時に関するエピソードであって且つ変化量ΔＰＡが正である場合には、定常時に関するエピソードの場合と比較して、下限値ＧｘＬを大きい値に設定する。また、ＣＰＵ１１２は、過渡時に関するエピソードであって且つ変化量ΔＰＡが負である場合には、定常時に関するエピソードの場合と比較して、下限値ＧｘＬを小さい値に設定する。また、ＣＰＵ１１２は、変化量ΔＰＡが正であるなら、スポーツモードの場合に下限値ＧｘＬを最も大きくし、コンフォードモードの場合に下限値ＧｘＬを最も小さくする。また、ＣＰＵ１１２は、変化量ΔＰＡが負であるなら、スポーツモードの場合に下限値ＧｘＬを最も小さくし、コンフォードモードの場合に下限値ＧｘＬを最も大きくする。
【００５４】
また、ＣＰＵ１１２は、上限値ＧｘＨを、エピソードの開始時におけるアクセル操作量ＰＡの単位時間当たりの変化量ΔＰＡおよびモード変数ＭＶの値によって可変設定する。すなわち、ＣＰＵ１１２は、過渡時に関するエピソードであって且つ変化量ΔＰＡが正である場合には、定常時に関するエピソードの場合と比較して、上限値ＧｘＨを大きい値に設定する。また、ＣＰＵ１１２は、過渡時に関するエピソードであって且つ変化量ΔＰＡが負である場合には、定常時に関するエピソードの場合と比較して、上限値ＧｘＨを小さい値に設定する。また、ＣＰＵ１１２は、変化量ΔＰＡが正であるなら、スポーツモードの場合に上限値ＧｘＨを最も大きくし、コンフォードモードの場合に上限値ＧｘＨを最も小さくする。また、ＣＰＵ１１２は、変化量ΔＰＡが負であるなら、スポーツモードの場合に上限値ＧｘＨを最も小さくし、コンフォードモードの場合に上限値ＧｘＨを最も大きくする。
【００５５】
ＣＰＵ１１２は、論理積が真であると判定する場合（Ｓ６２：ＹＥＳ）、報酬ｒに「１０」を代入する一方（Ｓ６４）、偽であると判定する場合（Ｓ６２：ＮＯ）、報酬ｒに「−１０」を代入する（Ｓ６６）。ＣＰＵ１１２は、Ｓ６４，Ｓ６６の処理が完了する場合、図３に示した記憶装置１１６に記憶されている関係規定データＤＲのうち、Ｓ３０の処理において設定されているモード変数ＭＶの値に対応したデータを更新する。本実施形態では、εソフト方策オン型モンテカルロ法を用いる。
【００５６】
すなわち、ＣＰＵ１１２は、上記Ｓ６０の処理によって読み出した各状態と対応する行動との組によって定まる収益Ｒ（Ｓｊ，Ａｊ）に、それぞれ、報酬ｒを加算する（Ｓ６８）。ここで、「Ｒ（Ｓｊ，Ａｊ）」は、状態集合Ｓｊの要素の１つを状態とし行動集合Ａｊの要素の１つを行動とする収益Ｒを総括した記載である。次に、上記Ｓ６０の処理によって読み出した各状態と対応する行動との組によって定まる収益Ｒ（Ｓｊ，Ａｊ）のそれぞれについて、平均化して対応する行動価値関数Ｑ（Ｓｊ，Ａｊ）に代入する（Ｓ７０）。ここで、平均化は、Ｓ６８の処理がなされた回数によって、Ｓ６８の処理によって算出された収益Ｒを除算する処理とすればよい。なお、収益Ｒの初期値はゼロとすればよい。
【００５７】
次にＣＰＵ１１２は、上記Ｓ６０の処理によって読み出した状態について、それぞれ、対応する行動価値関数Ｑ（Ｓｊ，Ａ）のうち、最大値となるときのスロットル開口度指令値ＴＡ＊および遅角量ａｏｐの組である行動を、行動Ａｊ＊に代入する（Ｓ７２）。ここで、「Ａ」は、とりうる任意の行動を示す。なお、行動Ａｊ＊は、上記Ｓ６０の処理によって読み出した状態の種類に応じて各別の値となるものであるが、ここでは、表記を簡素化して、同一の記号にて記載している。
【００５８】
次に、ＣＰＵ７２は、上記Ｓ６０の処理によって読み出した状態のそれぞれについて、対応する方策π（Ａｊ｜Ｓｊ）を更新する（Ｓ７４）。すなわち、行動の総数を、「｜Ａ｜」とすると、Ｓ７２によって選択された行動Ａｊ＊の選択確率を、「１−ε＋ε／｜Ａ｜」とする。また、行動Ａｊ＊以外の「｜Ａ｜−１」個の行動の選択確率を、それぞれ「ε／｜Ａ｜」とする。Ｓ７４の処理は、Ｓ７０の処理によって更新された行動価値関数Ｑに基づく処理であることから、これにより、状態ｓと行動ａとの関係を規定する関係規定データＤＲが、収益Ｒを増加させるように更新されることとなる。
【００５９】
なお、ＣＰＵ１１２は、Ｓ７４の処理が完了する場合、図５に示す一連の処理を一旦終了する。
図４に戻り、ＣＰＵ１１２は、Ｓ５０の処理が完了すると、行動価値関数Ｑが収束したか否かを判定する（Ｓ５２）。ここでは、Ｓ５０の処理による行動価値関数Ｑの更新量が所定値以下となる連続回数が所定回数に達する場合に収束したと判定すればよい。ＣＰＵ１１２は、収束していないと判定する場合（Ｓ５２：ＮＯ）、Ｓ３２の処理に戻る。これに対し、ＣＰＵ１１２は、収束したと判定する場合（Ｓ５２：ＹＥＳ）、モード変数ＭＶの全ての値について、Ｓ５２の処理によって肯定判定されたか否かを判定する（Ｓ５４）。そして、ＣＰＵ１１２は、未だ行動価値関数Ｑが収束していないモード変数ＭＶの値があると判定する場合（Ｓ５４：ＮＯ）、そのモード変数ＭＶの値に対応する行動価値関数Ｑの学習をすべく、Ｓ３０の処理に戻る。
【００６０】
なお、ＣＰＵ１１２は、Ｓ５４の処理において肯定判定する場合には、図４に示す一連の処理を一旦終了する。
図６に、生成装置１１０が実行する処理のうち、特に図４の処理によって学習された行動価値関数Ｑに基づき、マップデータＤＭを生成する処理の手順を示す。図６に示す処理は、ＲＯＭ１１４に記憶された学習プログラム１１４ａを、ＣＰＵ１１２が実行することにより実現される。
【００６１】
図６に示す一連の処理において、ＣＰＵ１１２は、まず、モード変数ＭＶの値を１つ設定する（Ｓ８０）。次に、ＣＰＵ１１２は、マップデータＤＭの入力変数の値となる複数の状態ｓの中の１つを選択する（Ｓ８２）。次に、ＣＰＵ１１２は、状態ｓに対応して且つ、Ｓ８０の処理によって設定されたモードに関する行動価値関数Ｑ（ｓ，Ａ）のうち、行動価値関数Ｑの値を最大とする行動ａを選択する（Ｓ８４）。すなわち、ここでは、グリーディ方策によって行動ａを選択する。次に、ＣＰＵ１１２は、状態ｓと行動ａとの組を、Ｓ８０の処理によって設定されたモード変数ＭＶの値に対応付けて記憶装置１１６に記憶させる（Ｓ８６）。
【００６２】
次にＣＰＵ１１２は、マップデータＤＭの入力変数の値とするもの全てがＳ８０の処理によって選択されたか否かを判定する（Ｓ８８）。そして、ＣＰＵ１１２は、選択されていないものがあると判定する場合（Ｓ８８：ＮＯ）、Ｓ８２の処理に戻る。これに対し、ＣＰＵ１１２は、全てが選択されたと判定する場合（Ｓ８８：ＹＥＳ）、モード変数ＭＶがとりうる値の全てについて、Ｓ８８の処理において肯定判定されたか否かを判定する（Ｓ９０）。そしてＣＰＵ１１２は、未だＳ８８の処理において肯定判定されていないモード変数ＭＶの値があると判定する場合（Ｓ９０：ＮＯ）、Ｓ８０の処理に戻って、そのモード変数ＭＶの値を設定する。これに対し、ＣＰＵ１１２は、全てのモード変数ＭＶについてＳ８８の処理において肯定判定されたと判定する場合（Ｓ９０：ＹＥＳ）、Ｓ８６の処理によって記憶されたデータに基づき、マップデータＤＭを生成する（Ｓ９２）。ここでは、マップデータＤＭの入力変数の値が状態ｓであるものに対応する出力変数の値を、対応する行動ａとする。
【００６３】
なお、ＣＰＵ１１２は、Ｓ９２の処理が完了する場合、図６に示す一連の処理を一旦終了する。
ここで、本実施形態の作用および効果について説明する。
【００６４】
図３に示すシステムにおいて、ＣＰＵ１１２は、強化学習によって、行動価値関数Ｑを学習する。そして、行動価値関数Ｑの値が収束する場合、走行制御モードを満たすうえで適切な行動が学習されたとする。そして、ＣＰＵ１１２は、マップデータＤＭの入力変数となる状態のそれぞれについて、行動価値関数Ｑを最大化する行動を選択し、状態と行動との組を記憶装置１１６に記憶する。次に、ＣＰＵ１１２は、記憶装置１１６に記憶された状態と行動との組に基づき、マップデータＤＭを生成する。これにより、アクセル操作量ＰＡに応じた適切なスロットル開口度指令値ＴＡ＊および遅角量ａｏｐを、熟練者による工数を過度に大きくすることなく設定することができる。
【００６５】
特に、本実施形態では、モード変数ＭＶの値毎に、報酬ｒの与え方を変えた。具体的には、ＣＰＵ１１２は、たとえば、スポーツモードにおいてトルクＴｒｑとトルク指令値Ｔｒｑ＊との差の絶対値がノーマルモード用の規定量ΔＴｒｑ以下であったとしても、スポーツモード用の規定量ΔＴｒｑよりも大きい場合には、負の報酬を与える。これにより、スポーツモードにおいては、ノーマルモードと比較して、アクセル操作量ＰＡに応じたトルク指令値Ｔｒｑ＊に実際のトルクＴｒｑをより早期に追従させることができる行動ａが大きい報酬をうることができることとなり、車両の応答性能を高めることが可能な行動ａに対応する行動価値関数Ｑの値が大きい値に更新される。
【００６６】
したがって、モードに応じて適切な関係規定データＤＲ１〜ＤＲ３を学習できる。
以上説明した本実施形態によれば、さらに以下に記載する作用効果が得られる。
（１）制御装置７０が備える記憶装置７６に、行動価値関数Ｑ等ではなく、マップデータＤＭを記憶した。これにより、ＣＰＵ７２は、マップデータＤＭを用いたマップ演算に基づき、スロットル開口度指令値ＴＡ＊や遅角量ａｏｐを設定することから、行動価値関数Ｑのうち最大値となるものを選択する処理を実行する場合と比較して、演算負荷を軽減できる。
【００６７】
（２）行動価値関数Ｑの独立変数にアクセル操作量ＰＡの時系列データを含めた。これにより、アクセル操作量ＰＡに関して単一のサンプリング値のみを独立変数とする場合と比較して、アクセル操作量ＰＡの様々な変化に対して行動ａの値をきめ細かく調整できる。
【００６８】
（３）行動価値関数Ｑの独立変数に、スロットル開口度指令値ＴＡ＊自体を含めた。これにより、たとえば、スロットル開口度指令値ＴＡ＊の挙動をモデル化したモデル式のパラメータ等をスロットル開口度に関する独立変数とする場合と比較して、強化学習による探索の自由度を高めることが容易である。
【００６９】
＜第２の実施形態＞
以下、第２の実施形態について、第１の実施形態との相違点を中心に図面を参照しつつ説明する。
【００７０】
図７に、本実施形態にかかる車両ＶＣ１の駆動系および制御装置を示す。なお、図７において、図１に示した部材に対応する部材については、便宜上、同一の符号を付している。
【００７１】
図７に示すように、本実施形態では、ＲＯＭ７４に、制御プログラム７４ａに加えて、学習プログラム７４ｂが記憶されている。また、記憶装置７６に、マップデータＤＭが記憶されておらず、代わりに、関係規定データＤＲが記憶され、また、トルク出力写像データＤＴが記憶されている。ここで、関係規定データＤＲは、図４の処理によって学習された学習済みのデータである。また、トルク出力写像データＤＴによって規定されるトルク出力写像は、回転速度ＮＥ、充填効率η、および点火時期を入力とし、トルクＴｒｑを出力するニューラルネットワーク等の学習済みモデルに関するデータである。なお、上記トルク出力写像データＤＴは、たとえば図４の処理を実行する際、Ｓ３８の処理によって取得されるトルクＴｒｑを教師データとして学習されたものとすればよい。
【００７２】
図８に、本実施形態にかかる制御装置７０が実行する処理の手順を示す。図８に示す処理は、ＲＯＭ７４に記憶された制御プログラム７４ａおよび学習プログラム７４ｂを、ＣＰＵ７２がたとえば所定周期で繰り返し実行することにより実現される。なお、図８において、図４に示した処理に対応する処理については、便宜上同一のステップ番号を付与する。
【００７３】
図８に示す一連の処理において、ＣＰＵ７２は、まずモード選択スイッチ９２の操作に応じたモード変数ＭＶの値を取得する（Ｓ３０ａ）。そして、ＣＰＵ７２は、図４のＳ３２〜Ｓ５０の処理と同様の処理を実行する。なお、ＣＰＵ７２は、Ｓ４２，Ｓ４６の処理において否定判定する場合や、Ｓ５０の処理を完了する場合には、図８に示す一連の処理を一旦終了する。ちなみに、Ｓ３０ａ，Ｓ３２〜４８の処理は、ＣＰＵ７２が制御プログラム７４ａを実行することにより実現され、Ｓ５０の処理は、ＣＰＵ７２が学習プログラム７４ｂを実行することにより実現される。
【００７４】
このように、本実施形態によれば、制御装置７０に関係規定データＤＲおよび学習プログラム７４ｂを実装することにより、第１の実施形態の場合と比較して、学習頻度を向上させることができる。
【００７５】
＜第３の実施形態＞
以下、第３の実施形態について、第２の実施形態との相違点を中心に図面を参照しつつ説明する。
【００７６】
本実施形態では、関係規定データＤＲの更新を、車両ＶＣ１の外で実行する。
図９に、本実施形態において、強化学習を実行する制御システムの構成を示す。なお、図９において、図１に示した部材に対応する部材については、便宜上、同一の符号を付している。
【００７７】
図９に示す車両ＶＣ１内の制御装置７０におけるＲＯＭ７４は、制御プログラム７４ａを記憶しているものの、学習プログラム７４ｂを記憶していない。また、制御装置７０は、通信機７７を備えている。通信機７７は車両ＶＣ１の外部のネットワーク１２０を介してデータ解析センター１３０と通信するための機器である。
【００７８】
データ解析センター１３０は、複数の車両ＶＣ１，ＶＣ２，…から送信されるデータを解析する。データ解析センター１３０は、ＣＰＵ１３２、ＲＯＭ１３４、および電気的に書き換え可能な不揮発性メモリ（記憶装置１３６）、周辺回路１３８および通信機１３７を備えており、それらがローカルネットワーク１３９によって通信可能とされるものである。ＲＯＭ１３４には、学習プログラム７４ｂが記憶されており、記憶装置１３６には、関係規定データＤＲが記憶されている。
【００７９】
図１０に、本実施形態にかかる強化学習の処理手順を示す。図１０（ａ）に示す処理は、図９に示すＲＯＭ７４に記憶されている制御プログラム７４ａをＣＰＵ７２が実行することにより実現される。また、図１０（ｂ）に示す処理は、ＲＯＭ１３４に記憶されている学習プログラム７４ｂをＣＰＵ１３２が実行することにより実現される。なお、図１０において図８に示した処理に対応する処理については、便宜上同一のステップ番号を付している。以下では、強化学習の時系列に沿って、図１０に示す処理を説明する。
【００８０】
図１０（ａ）に示す一連の処理において、ＣＰＵ７２は、Ｓ３２〜Ｓ４８の処理を実行した後、通信機７７を操作することによって、関係規定データＤＲの更新処理に必要なデータを送信する（Ｓ１００）。ここで、送信対象とされるデータは、Ｓ４４，Ｓ４８の処理の実行直前に終了したエピソードにおけるモード変数ＭＶの値や、トルク指令値Ｔｒｑ＊、トルクＴｒｑおよび加速度Ｇｘの時系列データ、状態集合Ｓｊおよび行動集合Ａｊを含む。
【００８１】
これに対し、図１０（ｂ）に示すように、ＣＰＵ１３２は、送信されたデータを受信し（Ｓ１１０）、受信したデータに基づき関係規定データＤＲを更新する（Ｓ５０）。そしてＣＰＵ１３２は、関係規定データＤＲの更新回数が所定回数以上であるか否かを判定し（Ｓ１１２）、所定回数以上であると判定する場合（Ｓ１１２：ＹＥＳ）、通信機１３７を操作して、Ｓ１１０の処理によって受信したデータを送信した車両ＶＣ１に関係規定データＤＲを送信する（Ｓ１１４）。なお、ＣＰＵ１３２は、Ｓ１１４の処理を完了する場合や、Ｓ１１２の処理において否定判定する場合には、図１０（ｂ）に示す一連の処理を一旦終了する。
【００８２】
これに対し、図１０（ａ）に示すように、ＣＰＵ７２は、更新データがあるか否かを判定し（Ｓ１０２）、あると判定する場合（Ｓ１０２：ＹＥＳ）、更新された関係規定データＤＲを受信する（Ｓ１０４）。そしてＣＰＵは、Ｓ３４の処理において利用する関係規定データＤＲを、受信した関係規定データＤＲに書き換える（Ｓ１０６）。なお、ＣＰＵ７２は、Ｓ１０６の処理を完了する場合や、Ｓ１０２の処理において否定判定する場合には、図１０（ａ）に示す一連の処理を一旦終了する。
【００８３】
このように、本実施形態によれば、関係規定データＤＲの更新処理を車両ＶＣ１の外部で行うことから、制御装置７０の演算負荷を軽減できる。
＜対応関係＞
上記実施形態における事項と、上記「課題を解決するための手段」の欄に記載した事項との対応関係は、次の通りである。以下では、「課題を解決するための手段」の欄に記載した解決手段の番号毎に、対応関係を示している。
【００８４】
［１，４］実行装置と記憶装置とは、図１および図７においては、それぞれ、ＣＰＵ７２およびＲＯＭ７４と記憶装置７６とに対応し、図３においては、それぞれＣＰＵ１１２およびＲＯＭ１１４と記憶装置１１６とに対応し、図９においては、ＣＰＵ７２，１３２およびＲＯＭ７４，１３４と記憶装置７６，１３６とに対応する。操作処理は、Ｓ３６の処理に対応し、取得処理は、Ｓ３２，Ｓ３８の処理に対応する。報酬算出処理は、Ｓ６２〜Ｓ６６の処理に対応する。更新処理は、Ｓ６８〜Ｓ７４の処理に対応する。走行制御モードの相違は、モード変数ＭＶによって定まる。［２］Ｓ６２の処理に対応する。［３］開口度に関する変数は、スロットル開口度指令値ＴＡ＊に対応する。［５］時系列データは、アクセル操作量ＰＡ（１），ＰＡ（２），…ＰＡ（６）に対応する。［６］制御用写像データは、マップデータＤＭに対応する。実行装置は、ＣＰＵ１１２およびＲＯＭ１１４に対応する。［７］実行装置と記憶装置とは、それぞれ、図７におけるＣＰＵ７２およびＲＯＭ７４と記憶装置７６とに対応する。取得処理は、Ｓ３０ａ，Ｓ３２，Ｓ３８の処理に対応する。［８〜１０］第１実行装置は、ＣＰＵ７２およびＲＯＭ７４に対応し、第２実行装置は、ＣＰＵ１３２およびＲＯＭ１３４に対応する。
【００８５】
＜その他の実施形態＞
なお、本実施形態は、以下のように変更して実施することができる。本実施形態および以下の変更例は、技術的に矛盾しない範囲で互いに組み合わせて実施することができる。
【００８６】
・「走行制御モードについて」
上記実施形態では、アクセル操作に対する車両の応答性が高い順に、スポーツモード、ノーマルモード、およびコンフォートモードの３つの走行制御モードのうちの１つを選択可能な車両を例示したが、これに限らない。たとえば、応答性について、３種類の性能に代えて、２種類の性能から選択可能としたり、４種類以上の性能から選択可能としたりしてもよい。
【００８７】
また、車両の走行制御モードとしては、応答性の観点からの性能に限らない。たとえば燃料消費率やエネルギ消費率の観点からの性能としてもよい。
・「行動変数について」
上記実施形態では、行動変数としてのスロットルバルブの開口度に関する変数として、スロットル開口度指令値ＴＡ＊を例示したが、これに限らない。たとえば、アクセル操作量ＰＡに対するスロットル開口度指令値ＴＡ＊の応答性を、無駄時間および２次遅れフィルタにて表現し、無駄時間と、２次遅れフィルタを規定する２つの変数との合計３つの変数を、スロットルバルブの開口度に関する変数としてもよい。ただし、その場合、状態変数は、アクセル操作量ＰＡの時系列データに代えて、アクセル操作量ＰＡの単位時間当たりの変化量とすることが望ましい。
【００８８】
上記実施形態では、行動変数としての点火時期に関する変数として、遅角量ａｏｐを例示したが、これに限らない。たとえば、ＫＣＳによる補正対象とされる点火時期自体であってもよい。
【００８９】
上記実施形態では、行動変数として、スロットルバルブの開口度に関する変数および点火時期に関する変数を例示したが、これに限らない。たとえば、スロットルバルブの開口度に関する変数および点火時期に関する変数に加えて、燃料噴射量を用いてもよい。また、それら３つに関しては、行動変数としてスロットルバルブの開口度に関する変数および燃料噴射量のみを採用したり、点火時期に関する変数および燃料噴射量のみを採用したりしてもよい。さらに、それら３つに関しては、行動変数としてそれらのうちの１つのみを採用してもよい。
【００９０】
また、「内燃機関について」の欄に記載したように、圧縮着火式の内燃機関の場合、スロットルバルブの開口度に関する変数に代えて噴射量に関する変数を用い、点火時期に関する変数に代えて噴射時期に関する変数を用いればよい。なお、噴射時期に関する変数に加えて、１燃焼サイクルにおける噴射回数に関する変数や、１燃焼サイクルにおける１つの気筒のための時系列的に隣接する２つの燃料噴射のうちの一方の終了タイミングと他方の開始タイミングとの間の時間間隔に関する変数を加えることが望ましい。
【００９１】
また、たとえば変速装置５０が有段変速装置の場合、クラッチの係合状態を油圧によって調整するためのソレノイドバルブの電流値等を行動変数としてもよい。
また、たとえば、下記「車両について」の欄に記載したように車両としてハイブリッド車や、電気自動車、燃料電池車を採用する場合、回転電機のトルクや出力を行動変数としてもよい。またたとえば、内燃機関のクランク軸の回転動力によって回転するコンプレッサを備えた車載空調装置を備える場合、コンプレッサの負荷トルクを行動変数に含めてもよい。また、電動式の車載空調装置を備える場合、空調装置の消費電力を行動変数に含めてもよい。
【００９２】
・「状態について」
上記実施形態では、アクセル操作量ＰＡの時系列データを、等間隔でサンプリングされた６個の値からなるデータとしたが、これに限らない。互いに異なるサンプリングタイミングにおける２個以上のサンプリング値からなるデータであればよく、この際、３個以上のサンプリング値からなるデータや、サンプリング間隔が等間隔であるデータであることがより望ましい。
【００９３】
アクセル操作量に関する状態変数としては、アクセル操作量ＰＡの時系列データに限らず、たとえば「行動変数について」の欄に記載したように、アクセル操作量ＰＡの単位時間当たりの変化量等であってもよい。
【００９４】
また、たとえば「行動変数について」の欄に記載したように、ソレノイドバルブの電流値を行動変数とする場合、状態に、変速装置の入力軸５２の回転速度や出力軸５４の回転速度、ソレノイドバルブによって調整される油圧を含めればよい。またたとえば「行動変数について」の欄に記載したように、回転電機のトルクや出力を行動変数とする場合、状態に、バッテリの充電率や温度を含めればよい。またたとえば「行動変数について」の欄に記載したように、コンプレッサの負荷トルクや空調装置の消費電力を行動に含める場合、状態に、車室内の温度を含めればよい。
【００９５】
・「テーブル形式のデータの次元削減について」
テーブル形式のデータの次元削減手法としては、上記実施形態において例示したものに限らない。たとえばアクセル操作量ＰＡが最大値となることはまれであることから、アクセル操作量ＰＡが規定量以上となる状態については行動価値関数Ｑを定義せず、アクセル操作量ＰＡが規定量以上となる場合のスロットル開口度指令値ＴＡ＊等は、別途適合してもよい。またたとえば、行動のとりうる値からスロットル開口度指令値ＴＡ＊が規定値以上となるものを除くなどして、次元削減をしてもよい。
【００９６】
図４のＳ５２の処理において肯定判定されるまでは、Ｓ３４の処理において、行動価値関数Ｑの独立変数の値を少数に制限し、Ｓ５２の処理において肯定判定される場合に、行動価値関数Ｑの値が大きくなる行動ａの付近の値を行動価値関数Ｑの独立変数がとりうる値に加えてＳ３２〜Ｓ５２の処理を繰り返してもよい。
【００９７】
もっとも、次元削減をすることは必須ではない。たとえば、第３の実施形態において複数の車両からのデータに基づき強化学習を行って且つＣＰＵ７２の演算能力や記憶装置７６の記憶容量が十分であるのであれば、車両の出荷前には次元削減をした一部のみについて行動価値関数を学習しておくものの、出荷後には、全ての行動を探索によって実行可能としてもよい。これにより、出荷後には出荷前と比較して十分な学習用のデータを確保できることに鑑み、探索としてとりうる行動の数を増やして、より適切な行動を見出すことが可能となる。
【００９８】
・「関係規定データについて」
上記実施形態では、行動価値関数Ｑを、テーブル形式の関数としたが、これに限らない。たとえば、関数近似器を用いてもよい。
【００９９】
たとえば、行動価値関数Ｑを用いる代わりに、方策πを、状態ｓおよび行動ａを独立変数とし、行動ａをとる確率を従属変数とする関数近似器にて表現し、関数近似器を定めるパラメータを、報酬ｒに応じて更新してもよい。
【０１００】
・「操作処理について」
たとえば「関係規定データについて」の欄に記載したように、行動価値関数を関数近似器とする場合、上記実施形態におけるテーブル型式の関数の独立変数となる行動についての離散的な値の組の全てについて、状態ｓとともに行動価値関数Ｑに入力することによって、行動価値関数Ｑを最大化する行動ａを選択すればよい。
【０１０１】
また、たとえば「関係規定データについて」の欄に記載したように、方策πを、状態ｓおよび行動ａを独立変数とし、行動ａをとる確率を従属変数とする関数近似器とする場合、方策πによって示される確率に基づき行動ａを選択すればよい。
【０１０２】
・「更新写像について」
Ｓ６８〜Ｓ７４の処理においては、εソフト方策オン型モンテカルロ法によるものを例示したが、これに限らない。たとえば、方策オフ型モンテカルロ法によるものであってもよい。もっとも、モンテカルロ法にも限らず、たとえば、方策オフ型ＴＤ法を用いたり、またたとえばＳＡＲＳＡ法のように方策オン型ＴＤ法を用いたり、またたとえば、方策オン型の学習として適格度トレース法を用いたりしてもよい。
【０１０３】
また、たとえば「関係規定データについて」の欄に記載したように、方策πを関数近似器を用いて表現し、これを報酬ｒに基づき直接更新する場合には、方策勾配法等を用いて更新写像を構成すればよい。
【０１０４】
また、行動価値関数Ｑと方策πとのうちのいずれか一方のみを、報酬ｒによる直接の更新対象とするものに限らない。たとえば、アクター・クリティック法のように、行動価値関数Ｑおよび方策πをそれぞれ更新してもよい。また、アクター・クリティック法においては、これに限らず、たとえば行動価値関数Ｑに代えて価値関数Ｖを更新対象としてもよい。
【０１０５】
なお、方策πを定める「ε」については、固定値に限らず、学習の進行度合いに応じてあらかじめ定められた規則に応じて変更してもよい。
・「報酬算出処理について」
図５の処理では、条件（ア）および条件（イ）の論理積が真であるか否かに応じて報酬を与えたが、これに限らない。たとえば、条件（ア）を満たすか否かに応じて報酬を与える処理と、条件（イ）を満たすか否かに応じて報酬を与える処理とを実行してもよい。また、たとえば、条件（ア）を満たすか否かに応じて報酬を与える処理と、条件（イ）を満たすか否かに応じて報酬を与える処理との２つの処理に関しては、それらのうちのいずれか１つの処理のみを実行してもよい。
【０１０６】
また、たとえば条件（ア）を満たす場合に一律同じ報酬を与える代わりに、トルクＴｒｑとトルク指令値Ｔｒｑ＊との差の絶対値が小さい場合に大きい場合よりもより大きい報酬を与える処理としてもよい。またたとえば、条件（ア）を満たさない場合に一律同じ報酬を与える代わりに、トルクＴｒｑとトルク指令値Ｔｒｑ＊との差の絶対値が大きい場合に小さい場合よりもより小さい報酬を与える処理としてもよい。そして、それらの場合、与える報酬の大きさを、モード変数ＭＶの値に応じて変更してもよい。
【０１０７】
また、たとえば条件（イ）を満たす場合に一律同じ報酬を与える代わりに、加速度Ｇｘの大きさに応じて報酬の大きさを可変とする処理としてもよい。またたとえば、条件（イ）を満たさない場合に一律同じ報酬を与える代わりに、加速度Ｇｘの大きさに応じて報酬の大きさを可変とする処理としてもよい。そして、それらの場合、与える報酬の大きさを、モード変数ＭＶの値に応じて変更してもよい。
【０１０８】
また、たとえば「行動変数について」の欄に記載したように、変速装置５０のソレノイドバルブの電流値を行動変数とする場合、たとえば報酬算出処理に以下の（ａ）〜（ｃ）の３つの処理のうちの少なくとも１つの処理を含めればよい。
【０１０９】
（ａ）変速装置による変速比の切り替えに要する時間が所定時間以内である場合に所定時間を超える場合よりも大きい報酬を与える処理である。
（ｂ）変速装置の入力軸５２の回転速度の変化速度の絶対値が入力側所定値以下である場合に入力側所定値を超える場合よりも大きい報酬を与える処理である。
【０１１０】
（ｃ）変速装置の出力軸５４の回転速度の変化速度の絶対値が出力側所定値以下である場合に出力側所定値を超える場合よりも大きい報酬を与える処理である。
こうした場合において、たとえばスポーツモードのように応答性を重視した走行制御モードが選択される場合には、上記所定時間をより短く設定する一方、入力側所定値や出力側所定値についてはより大きい値に設定すればよい。
【０１１１】
また、たとえば「走行制御モードについて」の欄に記載したように、燃料消費率やエネルギ消費率の観点から走行制御モードが定義されている場合においては、燃料消費率やエネルギ消費率が低い場合に高い場合よりも大きい報酬を与える処理とすればよい。また、この際、「行動変数について」の欄に記載したように、車載空調装置を備える場合には、その負荷トルクや消費電力を行動変数に含めてもよい。
【０１１２】
また、たとえば「行動変数について」の欄に記載したように、回転電機のトルクや出力を行動変数とする場合、バッテリの充電率が所定範囲内にある場合にない場合よりも大きい報酬を与える処理や、バッテリの温度が所定範囲内にある場合にない場合よりも大きい報酬を与える処理を含めてもよい。また、たとえば「行動変数について」の欄に記載したように、コンプレッサの負荷トルクや空調装置の消費電力を行動変数に含める場合、車室内の温度が所定範囲内にある場合にない場合よりも大きい報酬を与える処理を加えてもよい。
【０１１３】
・「車両用制御データの生成方法について」
図４のＳ３４の処理では、行動価値関数Ｑに基づき行動を決定したが、これに限らず、とりうるすべての行動を等確率で選択してもよい。
【０１１４】
・「制御用写像データについて」
車両の状態と期待収益を最大化する行動変数の値とを１対１に対応付けることによって車両の状態を入力とし期待収益を最大化する行動変数の値を出力する制御用写像データとしては、マップデータに限らない。たとえば、関数近似器であってもよい。これは、たとえば、上記「更新写像について」の欄に記載したように、方策勾配法等を用いる場合において、方策πを行動変数の値をとりうる確率を示すガウス分布にて表現し、その平均値を関数近似器にて表現しておき、平均値を表現する関数近似器のパラメータを更新することとし、学習後の平均値を制御用写像データとすることによって実現できる。
【０１１５】
・「取得処理について」
上記実施形態では、ユーザによる走行制御モードの選択結果を、モード選択スイッチ９２の出力信号に基づくモード変数ＭＶを取得することによって取得したがこれに限らない。たとえば、モード選択スイッチ９２に代えて、音声指示を感知する装置を備え、その感知結果をモード変数ＭＶとして取得してもよい。
【０１１６】
・「車両用制御システムについて」
図１０に示した例では、方策πに基づく行動を決定する処理（Ｓ３４の処理）を、車両側で実行したが、これに限らない。たとえば、車両ＶＣ１からＳ３２の処理によって取得したデータを送信することとし、データ解析センター１３０にて送信されてデータを用いて行動ａを決定し、決定した行動を車両ＶＣ１に送信してもよい。
【０１１７】
車両用制御システムとしては、制御装置７０およびデータ解析センター１３０によって構成されるものに限らない。たとえば、データ解析センター１３０に代えて、ユーザの携帯端末を用いてもよい。また、制御装置７０およびデータ解析センター１３０と携帯端末とによって車両用制御システムを構成してもよい。これは、たとえばＳ３４の処理を携帯端末によって実行することにより実現できる。
【０１１８】
・「実行装置について」
実行装置としては、ＣＰＵ７２（１１２，１３２）とＲＯＭ７４（１１４，１３４）とを備えて、ソフトウェア処理を実行するものに限らない。たとえば、上記実施形態においてソフトウェア処理されたものの少なくとも一部を、ハードウェア処理するたとえばＡＳＩＣ等の専用のハードウェア回路を備えてもよい。すなわち、実行装置は、以下の（ａ）〜（ｃ）のいずれかの構成であればよい。（ａ）上記処理の全てを、プログラムに従って実行する処理装置と、プログラムを記憶するＲＯＭ等のプログラム格納装置とを備える。（ｂ）上記処理の一部をプログラムに従って実行する処理装置およびプログラム格納装置と、残りの処理を実行する専用のハードウェア回路とを備える。（ｃ）上記処理の全てを実行する専用のハードウェア回路を備える。ここで、処理装置およびプログラム格納装置を備えたソフトウェア実行装置や、専用のハードウェア回路は複数であってもよい。
【０１１９】
・「記憶装置について」
上記実施形態では、関係規定データＤＲが記憶される記憶装置と、学習プログラム７４ｂ，１１４ａや制御プログラム７４ａが記憶される記憶装置（ＲＯＭ７４，１１４，１３４）とを別の記憶装置としたが、これに限らない。
【０１２０】
・「内燃機関について」
内燃機関としては、燃料噴射弁として吸気通路１２に燃料を噴射するポート噴射弁を備えるものに限らず、燃焼室２４に燃料を直接噴射する筒内噴射弁を備えるものであってもよく、またたとえば、ポート噴射弁および筒内噴射弁の双方を備えるものであってもよい。
【０１２１】
内燃機関としては、火花点火式内燃機関に限らず、たとえば燃料として軽油などを用いる圧縮着火式内燃機関等であってもよい。
・「車両について」
車両としては、推力生成装置が内燃機関のみである車両に限らず、たとえば内燃機関と回転電機とを備えるいわゆるハイブリッド車両であってもよい。またたとえば、推力生成装置として、内燃機関を備えることなく、回転電機を備えるいわゆる電気自動車や燃料電池車あってもよい。
【符号の説明】
【０１２２】
１０…内燃機関、１２…吸気通路、１４…スロットルバルブ、１６…燃料噴射弁、１８…吸気バルブ、２０…シリンダ、２２…ピストン、２４…燃焼室、２６…点火装置、２８…クランク軸、３０…排気バルブ、３２…排気通路、３４…触媒、４０…トルクコンバータ、４２…ロックアップクラッチ、５０…変速装置、５２…入力軸、５４…出力軸、６０…駆動輪、７０…制御装置、７２…ＣＰＵ、７４…ＲＯＭ、７４ａ…制御プログラム、７４ｂ…学習プログラム、７６…記憶装置、７７…通信機、７８…周辺回路、７９…ローカルネットワーク、８０…エアフローメータ、８２…スロットルセンサ、８４…クランク角センサ、８６…アクセルペダル、８８…アクセルセンサ、９０…加速度センサ、９２手ｍンモード選択スイッチ、１００…ダイナモメータ、１０２…センサ群、１１０…生成装置、１１２…ＣＰＵ、１１４…ＲＯＭ、１１４ａ…学習プログラム、１１６…記憶装置、１１８…周辺回路、１１９…ローカルネットワーク、１２０…ネットワーク、１３０…データ解析センター、１３２…ＣＰＵ、１３４…ＲＯＭ、１３６…記憶装置、１３７…通信機、１３８…周辺回路、１３９…ローカルネットワーク。
【要約】
【課題】車両の状態と行動変数との関係の設定に際して熟練者に要求される工数を削減できるようにした車両用制御データの生成方法を提供する。
【解決手段】ＣＰＵは、１つのエピソードが終了するまで（Ｓ４４，Ｓ４８）、アクセル操作量ＰＡの時系列データに基づき、スロットル開口度指令値ＴＡ＊および点火時期の遅角量ａｏｐを設定し、それらに応じてスロットルバルブや点火装置を操作し（Ｓ３６）、その際のトルクＴｒｑ、トルク指令値Ｔｒｑ＊および加速度Ｇｘを取得する（Ｓ３８）。ＣＰＵは、エピソードが終了する場合、トルクＴｒｑや加速度Ｇｘが基準を満たすか否かに応じて報酬を与えることによって行動価値関数Ｑを更新する（Ｓ５０）。ＣＰＵは、走行モードに応じて、報酬の与え方を変える。
【選択図】図４【図１】
0006744597.tif 000002
【図２】
0006744597.tif 000003
【図３】
0006744597.tif 000004
【図４】
0006744597.tif 000005
【図５】
0006744597.tif 000006
【図６】
0006744597.tif 000007
【図７】
0006744597.tif 000008
【図８】
0006744597.tif 000009
【図９】
0006744597.tif 000010
【図１０】
0006744597.tif 000011