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