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