(57)【要約】      （修正有）【課題】車両において学習モデルの学習が行われる場合に、高性能のＣＰＵ等の必要性を低減しつつ、その学習処理の高速化を図る。【解決手段】車載制御装置２０において、エンジンＥＣＵ２１は、車両１における所定の機能を実行する制御部品２乃至１２を制御する少なくとも１つの制御部と、学習モデルの学習を行う学習部と、を備える。制御部の少なくとも１つは、学習モデルに入力パラメータの値を入力することによって得られた出力パラメータの値に基づいて、制御部品２乃至１２を制御し、学習が行われている場合には、制御部品２乃至１２に所定の機能を実行させるために車載制御装置によって実行される演算処理の負荷が学習が行われていない場合よりも低い学習時低負荷モードにより、制御部品２乃至１２を制御する。【選択図】図１
2020173716.tif 000002
【特許請求の範囲】
【請求項１】
車載制御装置であって、
車両における所定の機能を実行する制御部品を制御する少なくとも１つの制御部と、
学習モデルの学習を行う学習部と、
を備え、
前記制御部の少なくとも１つは、前記学習モデルに入力パラメータの値を入力することによって得られた出力パラメータの値に基づいて、前記制御部品を制御し、
前記制御部の少なくとも１つは、前記学習が行われている場合には、前記制御部品に前記所定の機能を実行させるために前記車載制御装置によって実行される演算処理の負荷が前記学習が行われていない場合よりも低い学習時低負荷モードにより、前記制御部品を制御する、車載制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、車載制御装置に関する。
【背景技術】
【０００２】
従来から、車両の運転中に取得した複数の入力パラメータの実測値及びこれらに対応する出力パラメータの実測値を学習データとして、機械学習による学習モデルの学習をその車両で行う学習装置が公知である（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１２−０１４６１７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、斯かる学習モデルの学習においては、その学習が完了するまでに膨大な演算処理が必要とされる。そのため、車両において斯かる学習が行われる場合、その演算処理を実行する車載電子制御ユニット（ＥＣＵ）に高い処理負荷がかかる。
【０００５】
ここで、斯かる学習時の高負荷の演算を処理するために、高性能のプロセッサ等を用いることが考えられるが、斯かる高性能のプロセッサ等を用いるとコストが増大する。一方で、コスト削減のために性能が不十分なプロセッサ等を用いると、その学習に要する演算処理量に対して処理能力が不足し、学習が完了するまでに膨大な計算時間が費やされる。
【０００６】
上記課題に鑑みて、本開示の目的は、車両において学習モデルの学習が行われる場合に、高性能のＣＰＵ等の必要性を低減しつつ、その学習のための演算処理の高速化を図ることにある。
【課題を解決するための手段】
【０００７】
本開示の要旨は、以下の通りである。
【０００８】
（１）車載制御装置であって、車両における所定の機能を実行する制御部品を制御する少なくとも１つの制御部と、学習モデルの学習を行う学習部と、を備え、前記制御部の少なくとも１つは、前記学習モデルに入力パラメータの値を入力することによって得られた出力パラメータの値に基づいて、前記制御部品を制御し、前記制御部の少なくとも１つは、前記学習が行われている場合には、前記制御部品に前記所定の機能を実行させるために前記車載制御装置によって実行される演算処理の負荷が前記学習が行われていない場合よりも低い学習時低負荷モードにより、前記制御部品を制御する、車載制御装置。
【発明の効果】
【０００９】
本開示によれば、車両において学習モデルの学習が行われる場合に、高性能のＣＰＵ等の必要性を低減しつつ、その学習処理の高速化を図ることが可能となる。
【図面の簡単な説明】
【００１０】
【図１】図１は、車載制御装置の概略的な構成図である。
【図２】図２は、各ＥＣＵの概略的な構成図である。
【図３】図３は、内燃機関の概略的な構成図である。
【図４】図４は、エンジンＥＣＵの処理部における機能ブロック図である。
【図５】図５は、ニューラルネットワークの一例を示す図である。
【図６】図６は、ニューラルネットワークの一例を示す図である。
【図７】図７は、車載制御装置における制御ルーチンを示すフローチャートである。
【図８】図８は、通常時処理における制御ルーチンを示すフローチャートである。
【図９】図９は、異常時処理における制御ルーチンを示すフローチャートである。
【図１０】図１０は、異常時運転モード及びデータ取得モードを説明するための図である。
【図１１】図１１は、学習時低負荷モードにおいて演算処理の負荷を低減させるための具体策を説明するための図である。
【図１２】図１２は、第二実施形態に係る異常時処理の制御ルーチンを示すフローチャートである。
【図１３】図１３は、本実施形態に係るＥＣＵ選定処理の制御ルーチンを示すフローチャートである。
【図１４】図１４は、各ＥＣＵにおける学習用計算量について説明するための図である。
【発明を実施するための形態】
【００１１】
以下、図面を参照して本開示の実施形態について詳細に説明する。なお、以下の説明では、同様な構成要素には同一の参照番号を付す。
【００１２】
＜第一実施形態＞
≪車載制御装置の構成≫
図１は、車載制御装置の概略構成図である。図１には、車両１に搭載された車載制御装置２０が示されている。図１に示されるように、車両１は、内燃機関２と、ＰＣＵ３と、第１電動発電機４と、第２電動発電機５と、バッテリ６と、電動パワーステアリング装置７と、ブレーキアクチュエータ８と、カーナビゲーションシステム９と、ショックアブソーバ１０と、エアーコンディショナ１１と、ボデー系機器１２と、車載制御装置２０と、を備える。
【００１３】
車載制御装置２０は、エンジン電子制御ユニット（ＥＣＵ）２１、ＭＧ−ＥＣＵ２２、パワステＥＣＵ２３、ブレーキＥＣＵ２４、運転支援ＥＣＵ２５、カーナビＥＣＵ２６、アブソーバＥＣＵ２７、エアコンＥＣＵ２８及びボデー系ＥＣＵ２９を備える。各ＥＣＵ２１乃至２９は、ＣＡＮ（Controller Area Network）などの車内ネットワークを介して通信可能に接続されている。また、各ＥＣＵ２１乃至２９は、それぞれ、車両１における所定の機能を実行する制御部品を制御する。
【００１４】
具体的には、エンジンＥＣＵ２１は、内燃機関２を制御部品として制御する。内燃機関２は、燃料を機関の内部で燃焼させて、燃焼ガスの熱エネルギを機械的エネルギに変換するエネルギ変換機能を実行する。
【００１５】
ＭＧ−ＥＣＵ２２は、ＰＣＵ３を制御部品として制御する。ＰＣＵ３は、第１電動発電機４、第２電動発電機５及びバッテリ６の制御や、第１電動発電機４及び第２電動発電機５とバッテリ６との間の電力変換を行う機能を実行する。第１電動発電機４及び第２電動発電機５は、ＰＣＵ３に電気的に接続されるとともに、電動機としても発電機としても機能する。また、バッテリ６は、ＰＣＵ３を介して充電を行い、またＰＣＵ３を介して第１電動発電機４及び第２電動発電機５へ電力供給を行う。なお、第１電動発電機４は電動機としては機能しない発電機であってもよく、第２電動発電機５は発電機としては機能しない電動機であってもよい。また、車両１には電動発電機が一つのみ設けられてもよい。
【００１６】
パワステＥＣＵ２３は、電動パワーステアリング装置７を制御部品として制御する。電動パワーステアリング装置７は、ドライバーの操舵を補助する機能を実行する。
【００１７】
ブレーキＥＣＵ２４は、ブレーキアクチュエータ８を制御部品として制御する。ブレーキアクチュエータ８は、その駆動により車両１に制動力を付与する機能を実行する。
【００１８】
運転支援ＥＣＵ２５は、例えば、車線維持支援制御やパーキングアシスト制御などの運転操作を支援する運転支援制御を実行する。運転支援ＥＣＵ２５は、斯かる運転支援制御を実行するための操舵や制動等に関する要求を、例えばパワステＥＣＵ２３やブレーキＥＣＵ２４等に送信する。例えば、パワステＥＣＵ２３及びブレーキＥＣＵ２４は、運転支援ＥＣＵ２５からの要求に応じて、電動パワーステアリング装置７及びブレーキアクチュエータ８に車両１における操舵や制動を自動的に行わせる。従って、運転支援ＥＣＵ２５は、例えば、パワステＥＣＵ２３やブレーキＥＣＵ２４への要求を介して、電動パワーステアリング装置７やブレーキアクチュエータ８等を制御部品として制御する。
【００１９】
カーナビＥＣＵ２６は、カーナビゲーションシステム９を制御部品として制御する。カーナビゲーションシステム９は、例えば、道路地図を表示し、経路案内を行うナビゲーション機能を実行する。
【００２０】
アブソーバＥＣＵ２７は、ショックアブソーバ１０を制御部品として、ショックアブソーバ１０の減衰力を制御する。ショックアブソーバ１０は、車体に生じている振動を減衰する機能を実行する。
【００２１】
エアコンＥＣＵ２８は、エアーコンディショナ１１を制御部品として制御する。エアーコンディショナ１１は、その設定温度に室内の温度を制御する空調制御機能を実行する。
【００２２】
ボデー系ＥＣＵ２９は、例えば、座席用アクチュエータ、ドアクローザ用アクチュエータ及びイモビライザ等のボデー系機器１２を制御部品として制御する。ボデー系機器１２は、例えば、シートポジション調整、ドアの開閉、イモビライザ照合等の機能を実行する。
【００２３】
図２は、各ＥＣＵの概略構成図である。図２に示されるように、各ＥＣＵ２１乃至２９は、デジタルコンピュータから構成され、双方向性バス３１を介して相互に接続された記憶部３２、ＣＰＵ（マイクロプロセッサ）を備える処理部３３、入力ポート３４、出力ポート３５、ＡＤ変換器３６及び駆動回路３７を備える。記憶部３２は、揮発性メモリ（例えば、ＲＡＭ）及び不揮発性メモリ（例えば、ＲＯＭ）を備え、処理部３３において実行されるプログラム等、各種のデータを記憶する。各ＥＣＵ２１乃至２９の処理部３３は、機能モジュールとして、各ＥＣＵ２１乃至２９に対応する制御部品を制御する制御部を備える。
【００２４】
各ＥＣＵ２１乃至２９の入力ポート３４は、ユーザ入力に関する信号を入力するための任意の入力デバイスに接続される。また、各ＥＣＵ２１乃至２９の入力ポート３４には、ＡＤ変換器３６を介して対応する制御部品を制御するためのセンサ値が入力される。各ＥＣＵ２１乃至２９の出力ポート３５は、駆動回路３７を介して、対応する制御部品を制御する各種アクチュエータに接続される。
【００２５】
≪内燃機関の構成≫
図３は、車両１に搭載される内燃機関２の構成を概略的に示す図である。本実施形態では、内燃機関２は、火花点火式内燃機関であり、具体的にはガソリンを燃料とするガソリンエンジンである。
【００２６】
内燃機関２は、シリンダブロック４１及びシリンダヘッド４２を含む機関本体４０を備える。シリンダブロック４１の内部には、複数の気筒が形成される。各気筒には、気筒の軸線方向に往復運動するピストン４３が配置される。シリンダヘッド４２とピストン４３との間には、燃焼室４４が形成される。
【００２７】
シリンダヘッド４２には、吸気ポート４６及び排気ポート４８が形成される。吸気ポート４６及び排気ポート４８は燃焼室４４に接続される。内燃機関２は、シリンダヘッド４２内に配置された吸気弁４５及び排気弁４７を更に備える。吸気弁４５は吸気ポート４６を開閉し、排気弁４７は排気ポート４８を開閉する。
【００２８】
内燃機関２は、点火プラグ４９及び燃料噴射弁５０を更に備える。点火プラグ４９は、シリンダヘッド４２の内壁面の中央部に配置され、点火信号に応じて火花を発生させる。燃料噴射弁５０は、シリンダヘッド４２の内壁面周辺部に配置され、噴射信号に応じて燃料を燃焼室４４内に噴射する。
【００２９】
内燃機関２は、過給機であるターボチャージャ５１を備える。ターボチャージャ５１は、排気通路に配置されたタービン５２と、吸気通路に配置されたコンプレッサ５３と、タービン５２とコンプレッサ５３とを接続する軸とを含む。排気の流れによってタービン５２が回転すると、コンプレッサ５３も回転して吸入空気の圧力を高める。したがって、ターボチャージャ５１は、排気ガスのエネルギを用いて、吸入空気を圧縮して吸入空気量を増大させることができる。
【００３０】
内燃機関２は、吸気枝管５４、サージタンク５５、吸気管５６、スロットル弁５７及び冷却器５９を更に備える。各気筒の吸気ポート４６はそれぞれ対応する吸気枝管５４を介してサージタンク５５に連結され、サージタンク５５は吸気管５６を介して冷却器５９に連結される。吸気ポート４６、吸気枝管５４、サージタンク５５、吸気管５６等は、空気を燃焼室４４に導く吸気通路を形成する。
【００３１】
スロットル弁５７は、サージタンク５５と冷却器５９との間の吸気管５６内に配置され、スロットル弁駆動アクチュエータ５８（例えばＤＣモータ）によって駆動される。スロットル弁５７は、スロットル弁駆動アクチュエータ５８によって回動せしめられることで、その開度に応じて吸気通路の開口面積を変更することができる。コンプレッサ５３とスロットル弁５７との間の吸気管５６には、ターボチャージャ５１によって圧縮された吸入空気を冷却する冷却器（インタークーラ）５９が配置されている。また、コンプレッサ５３の入口部は、吸気管５６を介してエアクリーナ６０に連結されている。
【００３２】
内燃機関２は、排気マニホルド６１、排気管６２、排気浄化触媒６３及びケーシング６４を更に備える。各気筒の排気ポート４８は、排気マニホルド６１に連結される。排気マニホルド６１は、各排気ポート４８に連結される複数の枝部と、これら枝部が集合した集合部とを有する。排気マニホルド６１の集合部は、ターボチャージャ５１のタービン５２の入口部に連結されている。タービン５２の出口部は、排気管６２を介して排気浄化触媒６３を内蔵したケーシング６４に連結されている。排気ポート４８、排気マニホルド６１、ケーシング６４、排気管６２等は、燃焼室４４における混合気の燃焼によって生じた排気ガスを排出する排気通路を形成する。
【００３３】
排気通路には、タービン５２をバイパスする排気バイパス通路６５が接続されている。排気バイパス通路６５には、ウェストゲートバルブ６６が設けられ、ウェストゲートバルブ６６は、ウェストゲートアクチュエータ（図示せず）によって駆動され、排気バイパス通路６５の通路断面積を連続的又は段階的に調節することができる。ウェストゲートバルブ６６が開かれると、タービン５２よりも上流側の排気通路を流れてきた排気の一部又は全部が排気バイパス通路６５へと流入し、タービン５２を迂回して外気へと排出される。そのため、ウェストゲートバルブ６６の開度（以下「ウェストゲート開度」という。）を調節することで、タービン５２に流入する排気の流量を調節し、タービン５２の回転速度を制御することができる。すなわち、ウェストゲート開度を調節することで、コンプレッサ５３によって圧縮される空気の圧力（過給圧）を制御することができる。
【００３４】
≪内燃機関の制御装置の構成≫
内燃機関の制御装置７０は、エンジンＥＣＵ２１及び各種センサを備える。エンジンＥＣＵ２１の入力ポート３４及び出力ポート３５は、内燃機関２の各種アクチュエータや各種センサ、ＰＣＵ３、バッテリ６等に接続される。エンジンＥＣＵ２１には、内燃機関２の各種センサ、ＰＣＵ３及びバッテリ６の出力信号が入力される。加えて、エンジンＥＣＵ２１は、内燃機関２の各種アクチュエータ、ＰＣＵ３及びバッテリ６へ制御信号を出力する。
【００３５】
本実施形態では、水温センサ７１、エアフロメータ７２、過給圧センサ７３、空燃比センサ７４、ウェストゲート開度センサ７５、外気温センサ７６、トルクセンサ７７、バッテリセンサ７８及び負荷センサ７９の出力が、対応するＡＤ変換器３６を介して、入力ポート３４に入力される。
【００３６】
水温センサ７１は、内燃機関２の冷却水路に配置され、機関本体４０を冷却する冷却水の温度を検出する。エアフロメータ７２は、吸気管５６において排気ターボチャージャのコンプレッサ５３とエアクリーナ６０との間に配置され、吸気管５６内を流れる空気の流量を検出する。過給圧センサ７３は、吸気管５６においてスロットル弁５７の吸気流れ方向下流側に配置され、過給圧を検出する。空燃比センサ７４は、排気マニホルド６１の集合部に配置され、排気マニホルド６１内を流れる排気ガス（すなわち、排気浄化触媒６３に流入する排気ガス）の空燃比を検出する。ウェストゲート開度センサ７５は、ウェストゲートバルブ６６に配置され、ウェストゲート開度を検出する。外気温センサ７６は、外気温を検出する。トルクセンサ７７は、内燃機関２の出力トルク（以下、「トルク」という）を検出する。バッテリセンサ７８は、バッテリ６の充電率（或いは、ＳＯＣ：State of charge）等を検出する。
【００３７】
負荷センサ７９は、車両に設けられたアクセルペダル８０に接続され、アクセルペダル８０の踏み込み量に比例した出力電圧を発生し、この出力電圧を機関負荷として検出する。また、入力ポート３４には、クランクシャフトが例えば１０°回転する毎に出力パルスを発生するクランク角センサ８１が接続され、この出力パルスが入力ポート３４に入力される。エンジンＥＣＵ２１の処理部３３では、このクランク角センサ８１の出力パルスから機関回転速度が計算される。
【００３８】
一方、エンジンＥＣＵ２１の出力ポート３５は、対応する駆動回路３７を介して、内燃機関２の運転を制御する各アクチュエータに接続される。図３に示される例では、出力ポート３５は、点火プラグ４９、燃料噴射弁５０、スロットル弁駆動アクチュエータ５８及びウェストゲートバルブ６６に接続されている。エンジンＥＣＵ２１は、これらアクチュエータを制御する制御信号を出力ポート３５から出力して、内燃機関２の運転を制御する。
【００３９】
図４は、エンジンＥＣＵ２１の処理部３３における機能ブロック図である。図４に示されるように、本実施形態では、エンジンＥＣＵ２１の処理部３３は、機能モジュールとして、パラメータ値取得部９１と、パラメータ値出力部９２と、機関制御部９３と、学習部９４と、を備える。
【００４０】
パラメータ値取得部９１は、内燃機関２の運転状態を表す入力パラメータの値を取得する。例えば、パラメータ値取得部９１は、エンジンＥＣＵ２１の入力ポート３４を介して、上述した種々のセンサの出力値等を、内燃機関２の運転状態を表す入力パラメータの値として取得する。或いは、パラメータ値取得部９１は、上記出力値等を正規化したものを入力パラメータの値として取得してもよい。
【００４１】
パラメータ値出力部９２は、各入力パラメータの値が入力されると、複数の入力層と、隠れ層と、出力層とを備えるニューラルネットワークを用いた学習モデルを用いて、例えば、内燃機関２を適切に制御するための出力パラメータの値を算出する。
【００４２】
機関制御部９３は、制御部品（すなわち、内燃機関２）を制御する制御部として機能し、内燃機関２に関する制御を実行する。特に、機関制御部９３は、パラメータ値出力部９２によって算出された出力パラメータの値に基づいて、内燃機関２に関する制御を実行する。また、機関制御部９３は、後述するように、例えば学習部９４において学習モデルの学習が行われている場合に学習時低負荷モードに変更する等、各ＥＣＵ２１乃至２９が制御する各制御部品の制御モードを変更する。
【００４３】
学習部９４は、パラメータ値出力部９２において出力パラメータの値を算出する際に用いられる学習モデル（例えばニューラルネットワーク）の学習を行う。
【００４４】
≪ニューラルネットワークの概要≫
本実施形態では、学習モデルは、ニューラルネットワークを用いる。まず、図５を参照して、本実施形態に係る学習モデルにおいて用いられるニューラルネットワークについて説明する。図５は、ニューラルネットワークの一例を示す。図５における丸印は、人工ニューロンを表している。ニューラルネットワークにおいては、この人工ニューロンは、通常、ノード又はユニットと称される（以下、「ノード」という）。図５において、Ｌ＝１は入力層、Ｌ＝２およびＬ＝３は隠れ層、Ｌ＝４は出力層を各々示す。また、図５において、ｘ1およびｘ2は入力層（Ｌ＝１）のノード及びそのノードからの出力値を示し、ｙは出力層（Ｌ＝４）の各ノード及びそのノードからの出力値を示す。同様に、隠れ層（Ｌ＝２）のｚ1、ｚ2およびｚ3は隠れ層（Ｌ＝２）の各ノードからの出力値を示し、隠れ層（Ｌ＝３）のｚ1およびｚ2は隠れ層（Ｌ＝３）の各ノードからの出力値を示す。なお、隠れ層の層数は、１個又は任意の個数とすることができ、入力層のノードの数および隠れ層のノードの数も任意の個数とすることができる。
【００４５】
入力層の各ノードでは、入力がそのまま出力される。一方、隠れ層（Ｌ＝２）の各ノードには、入力層の各ノードの出力値ｘ1およびｘ2が入力される。隠れ層（Ｌ＝２）の各ノードでは、各々対応する重みｗおよびバイアスｂを用いて総入力値ｕが算出される。例えば、図７において隠れ層（Ｌ＝２）のｚk（ｋ＝１，２，３）で示されるノードにおいて算出される総入力値ｕkは、次式のようになる（Ｍは入力層のノードの数）。
【数１】
2020173716.tif 000003
【００４６】
次いで、この総入力値ｕkは、活性化関数ｆにより変換され、隠れ層（Ｌ＝２）のｚkで示されるノードから、出力値ｚk（＝ｆ（ｕk））として出力される。一方、隠れ層（Ｌ＝３）の各ノードには、隠れ層（Ｌ＝２）の各ノードの出力値ｚ1、ｚ2およびｚ3が入力される。隠れ層（Ｌ＝３）の各ノードでは、各々対応する重みｗおよびバイアスｂを用いて総入力値ｕ（Σｚ・ｗ＋ｂ）が算出される。この総入力値ｕは、同様に活性化関数ｆにより変換され、隠れ層（Ｌ＝３）の各ノードから、出力値ｚ1、ｚ2として出力される。なお、本実施形態では、この活性化関数としてシグモイド関数σが用いられている。
【００４７】
一方、出力層（Ｌ＝４）のノードには、隠れ層（Ｌ＝３）の各ノードの出力値ｚ1およびｚ2が入力される。出力層のノードでは、各々対応する重みｗおよびバイアスｂを用いて総入力値ｕ（Σｚ・ｗ＋ｂ）が算出されるか、又は、各々対応する重みｗのみを用いて総入力値ｕ（Σｚ・ｗ）が算出される。本実施形態では、出力層のノードでは活性化関数として恒等関数が用いられており、したがって、出力層のノードからは、出力層のノードにおいて算出された総入力値ｕが、そのまま出力値ｙとして出力される。
【００４８】
≪学習モデルの具体例≫
次に、本実施形態におけるニューラルネットワークを用いた学習モデルの具体例について説明する。図６は、本実施形態においてパラメータ値出力部９２によって用いられるニューラルネットワークの一例を示す図である。
【００４９】
図６に示されるニューラルネットワークは、入力層（Ｌ＝１）、二つの隠れ層（Ｌ＝２、３）及び出力層（Ｌ＝４）を有する。また、図６に示されるニューラルネットワークでは、入力層（Ｌ＝１）は９個のノードを、出力層（Ｌ＝４）は４個のノードを、隠れ層（Ｌ＝２、３）はそれぞれ１０個のノードを備えている。しかしながら、ニューラルネットワークは、３層以上の任意の層数であればいかなる層数を有していてもよい。また、各層のノードの数も任意の数とすることができる。
【００５０】
本実施形態では、パラメータ値取得部９１により取得された内燃機関２の運転状態を表す特定の入力パラメータの値が入力層（Ｌ＝１）の各ノードに入力される。特に、入力層（Ｌ＝１）の各ノードには入力層（Ｌ＝１）の他のノードに入力される入力パラメータの値とは異なる１つの入力パラメータについての値が入力される。図６に示される例では、入力パラメータとして、具体的には、水温、空気流量、空燃比、外気温、バッテリ充電率及びバッテリ入出力制限電力の実測値並びに過給圧、内燃機関２のトルク及び内燃機関２の回転速度の制御目標値が用いられている。
【００５１】
加えて、本実施形態では、出力層（Ｌ＝４）は４つのノードを有し、これら４つのノードからはそれぞれ１つの出力パラメータの値が出力される。図６に示される例では、出力パラメータとして、点火時期、内燃機関の吸気弁の開閉タイミング及び排気弁の開閉タイミング、並びにウェストゲート開度が用いられている。
【００５２】
したがって、パラメータ値出力部９２は、内燃機関２の運転中において、各入力パラメータの値が入力されると、ニューラルネットワークを用いた学習モデルを用いて、出力パラメータの値を算出する。具体的には、パラメータ値出力部９２は、各入力パラメータの値をニューラルネットワークの入力層に入力すると共に、ニューラルネットワークの出力層から出力された出力パラメータの値を出力する。
【００５３】
各入力パラメータの値は、パラメータ値取得部９１によって取得される。具体的には、水温、空燃比、外気温及びバッテリ充電率は、水温センサ７１、空燃比センサ７４、外気温センサ７６、及びバッテリセンサ７８の出力値からそれぞれ取得される。空気流量は、エアフロメータ７２等の出力値に基づいてエンジンＥＣＵ２１において算出される。過給圧は、負荷センサ７９やクランク角センサ８１等の出力値に基づいてエンジンＥＣＵ２１において制御目標値として算出される。内燃機関２のトルクは、負荷センサ７９等の出力値に基づいてエンジンＥＣＵ２１において制御目標値として算出される。バッテリ入出力制限電力は、バッテリ６の充放電の最大許容電力であり、バッテリセンサ７８の出力値等に基づいてエンジンＥＣＵ２１において算出される。機関回転速度は、負荷センサ７９等の出力値に基づいてエンジンＥＣＵ２１において制御目標値として算出される。パラメータ値取得部９１は、このようにして算出された空気流量、過給圧、トルク、バッテリ入出力制限電力及び機関回転速度をエンジンＥＣＵ２１内から取得する。
【００５４】
このようにしてパラメータ値取得部９１によって取得された各入力パラメータの値はパラメータ値出力部９２に入力され、その結果、出力パラメータである点火時期、内燃機関の吸気弁の開閉タイミング及び排気弁の開閉タイミング、並びにウェストゲート開度の値がパラメータ値出力部９２から出力される。
【００５５】
≪学習モデルを用いた制御及び学習モデルの学習の概要≫
上述したように、機関制御部９３は、パラメータ値出力部９２から出力された出力パラメータの値に基づいて、内燃機関２に関する制御を実行する。具体的には、例えば、機関制御部９３は、パラメータ値出力部９２から出力された点火時期に内燃機関２の点火プラグの点火を行うように点火プラグ等を制御する。また、機関制御部９３は、パラメータ値出力部９２から出力された内燃機関の吸気弁の開閉タイミング及び排気弁の開閉タイミングで内燃機関２の吸気弁及び排気弁の開閉を行うように内燃機関２の吸気弁及び排気弁等を制御する。また、機関制御部９３は、パラメータ値出力部９２から出力されたウェストゲート開度になるようにウェストゲートアクチュエータ等を制御する。
【００５６】
ニューラルネットワークの学習（すなわち、重みｗの値及びバイアスｂの値の学習）は、ニューラルネットワークが各車両に搭載される前に事前に行われる。ニューラルネットワークの学習を行うにあたっては、入力パラメータの値とこの入力パラメータの値に対応した出力パラメータの値（正解データ）を含む訓練データセットが多数作成される。このようにして作成された訓練データセットを用いて、例えば周知の誤差逆伝搬法を用いてニューラルネットワーク内における重みｗ及びバイアスｂの値を繰り返し更新することによって、ニューラルネットワーク内における各重みｗ及びバイアスｂの値が学習される。このようにして事前に学習された重みｗ及びバイアスｂの値を用いたニューラルネットワークが車両に搭載される。
【００５７】
また、本実施形態では、ニューラルネットワークの学習は、ニューラルネットワークが各車両に搭載された後も、車載制御装置２０の学習部９４によって行われる。具体的には、車載制御装置２０の学習部９４は、運転中に取得した学習モデルの入力パラメータの値とこの入力パラメータの値に対応した出力パラメータの値（正解データ）とを含む多数の訓練データセットを用いて、ニューラルネットワークを用いた学習モデルの学習を行う。その結果、学習モデルから内燃機関２の性能にあわせてより適切な出力結果を得ることが可能となるため、内燃機関２をより適切に制御することが可能となる。なお、ニューラルネットワークの学習を行うにあたっては、入力パラメータとして過給圧、内燃機関２のトルク及び機関回転速度の制御目標値の代わりにこれらの実測値が用いられる。
【００５８】
≪車載制御装置において学習モデルの学習を行う際の問題点≫
ところで、斯かる学習モデルの学習においては、その学習が完了するまでに膨大な演算処理が必要とされる。そのため、エンジンＥＣＵ２１が学習モデルの学習を行う場合、エンジンＥＣＵ２１に高い処理負荷がかかる。
【００５９】
ここで、斯かる学習時の高負荷の演算を処理するために、エンジンＥＣＵ２１において高性能のプロセッサ等を用いることが考えられるが、斯かる高性能のプロセッサ等を用いるとコストが増大する。一方で、コスト削減のために性能が不十分なプロセッサ等を用いると、その学習に要する演算処理量に対して処理能力が不足し、学習が完了するまでに膨大な計算時間が費やされる。
【００６０】
≪学習時低負荷モードによる制御部品の制御≫
そこで、本実施形態では、制御部は、学習部９４において学習が行われている場合には、制御部品に所定の機能を実行させるために車載制御装置２０によって実行される演算処理の負荷が学習が行われていない場合よりも低い学習時低負荷モードにより、制御部品を制御する。この結果、車両１において学習モデルの学習が行われる場合に、高性能のＣＰＵ等の必要性を低減しつつ、その学習のための演算処理の高速化を図ることが可能となる。以下、本実施形態について詳細に説明する。
【００６１】
≪フローチャート≫
図７は、本実施形態に係る車載制御装置における制御ルーチンを示すフローチャートである。本制御ルーチンのフローは、エンジンＥＣＵ２１の処理部３３が、エンジンＥＣＵ２１の記憶部３２に記憶されているプログラムを実行することにより実現される。本制御ルーチンはエンジンＥＣＵ２１によって一定時間間隔毎に実行される。
【００６２】
ステップＳ１では、内燃機関２の異常が検出された否かが判定される。例えば、機関制御部９３は、エンジンＥＣＵ２１の自己診断機能により内燃機関２の異常（例えばスロットル弁５７の固着など）が検出されたか否かを判定する。ステップＳ１において異常が検出されていないと判定された場合には、本制御ルーチンはステップＳ２へと進む。一方で、ステップＳ１において異常が検出されたと判定された場合には、本制御ルーチンはステップＳ３へと進む。
【００６３】
ステップＳ２では、通常時処理が実行される。この通常時処理については、図８を用いて後述する。その後、本制御ルーチンは終了する。
【００６４】
ステップＳ３では、異常時処理が実行される。この異常時処理については、図９を用いて後述する。その後、本制御ルーチンは終了する。
【００６５】
図８は、本実施形態に係る通常時処理の制御ルーチンを示すフローチャートである。本制御ルーチンのフローは、エンジンＥＣＵ２１の処理部３３が、記憶部３２に記憶されているプログラムを実行することにより実現される。
【００６６】
ステップＳ１１では、内燃機関２の制御モードが通常運転モードに設定される。ここで、通常運転モードとは、内燃機関２の通常時の運転の際に内燃機関２を制御する運転モードである。その後、本制御ルーチンはステップＳ１２へと進む。
【００６７】
ステップＳ１２では、所定の学習開始条件が満たされたか否かが判定される。斯かる所定の学習開始条件としては、例えば、車両１のユーザから学習モデルの学習を行う旨のユーザ入力があった場合、前回の学習から所定期間経過した場合などが挙げられる。ステップＳ１２において所定の学習開始条件が満たされていると判定された場合には、本制御ルーチンはステップＳ１３へと進む。一方で、ステップＳ１２において所定の学習開始条件が満たされていないと判定された場合には、本制御ルーチンは終了する。
【００６８】
ステップＳ１３では、多数の訓練データセットが取得される。具体的には、各入力パラメータの実測値及びこれら入力パラメータの実測値に対応する出力パラメータの正解データを含む訓練データセットが取得される。
【００６９】
過給圧、トルク及び機関回転速度以外の入力パラメータの値の取得方法は、上述した通りである。訓練データ取得時における過給圧及び内燃機関２のトルクの実測値は、過給圧センサ７３及びトルクセンサ７７の出力値からそれぞれ取得される。また、訓練データ取得時における機関回転速度の実測値は、クランク角センサ８１の出力値からエンジンＥＣＵ２１によって算出されることにより取得される。また、訓練データセットにおける出力パラメータの値の取得方法については、例えば、各入力パラメータの実測値が取得された時点（すなわち、その取得した各入力パラメータの実測値がパラメータ値出力部９２に入力される前）においてパラメータ値出力部９２からニューラルネットワークを用いて出力された点火時期、内燃機関の吸気弁の開閉タイミング及び排気弁の開閉タイミング、並びにウェストゲート開度の各値が訓練データ用の出力パラメータの値として取得される。訓練データセットの取得が完了すると、本制御ルーチンは、ステップＳ１４へと進む。
【００７０】
ステップＳ１４では、学習モデルの学習が行われる。本実施形態では、学習部９４は、例えば、ステップＳ１３において運転中に取得した訓練データセットにおける各入力パラメータの実測値をニューラルネットワークに入力した際にパラメータ値出力部９２から実際に出力される各出力パラメータの値と、訓練データセットにおいてその各入力パラメータの実測値に対応する各出力パラメータの値との誤差が小さくなるように、ニューラルネットワークの学習を行う。具体的には、学習部９４は、例えば周知の誤差逆伝搬法を用いてニューラルネットワーク内における重みｗ及びバイアスｂの値を繰り返し更新することにより、ニューラルネットワーク内における各重みｗ及びバイアスｂの値を学習する。学習モデルの学習が完了した後、本制御ルーチンは、ステップＳ１５へと進む。
【００７１】
ステップＳ１５では、学習モデルが更新される。この学習モデルの更新は、ニューラルネットワークにおける重みやバイアスの値を、ステップＳ１３において学習されたニューラルネットワークの重みやバイアスの値で書き換えることにより行われる。その後、本制御ルーチンは終了して、図７に示される制御ルーチンに戻る。
【００７２】
図９は、本実施形態に係る異常時処理の制御ルーチンを示すフローチャートである。本制御ルーチンのフローは、エンジンＥＣＵ２１の処理部３３が、記憶部３２に記憶されているプログラムを実行することにより実現される。
【００７３】
ステップＳ２１では、内燃機関２の制御モードが異常時運転モードに設定される。ここで、異常時運転モードとは、例えば機関回転速度やトルクの目標値等で設定される運転領域が通常運転モードよりも制限される運転モードである。このように運転領域が制限されることにより、内燃機関２の機能悪化が抑制される。例えば、図１０（ａ）に示されるように、この異常時運転モードにおける異常時運転領域は、通常運転モードにおける通常運転領域よりも小さく、且つ低目標トルク及び低目標回転速度の運転領域である。また、後述するように、異常時運転領域は、学習モデルの更新毎にその大きさが変更される。
【００７４】
なお、異常時運転領域は、検出された異常の種類毎に異なる領域であってもよいし、異常の種類に関わらず一定の領域であってもよい。また、エンジンＥＣＵ２１は、内燃機関２の制御モードが通常運転モードから異常時運転モードに設定される際に、警告灯を点灯する等の所定の警告を行ってもよい。その後、本制御ルーチンはステップＳ２２へと進む。
【００７５】
ステップＳ２２では、異常時運転モードにおいて車両１が走行可能であるか否かが判定される。例えば、機関制御部９３は、異常時運転モードにおける車両１の運転中に機関回転速度やトルク等のデータを取得し、そのデータが運転可能な範囲内の値を示す場合には車両１が走行可能であると判定し、そのデータが運転可能な範囲外の値を示す場合には車両１が走行可能ではないと判定する。
【００７６】
ステップＳ２２において走行可能ではないと判定された場合には、本制御ルーチンは、ステップＳ２３へと進む。ステップＳ２３では、内燃機関２の運転が停止される。その後、本制御ルーチンは終了して、図７に示される制御ルーチンに戻る。その結果、学習モデルの学習は行われずに、図７に示される制御ルーチンも終了する。一方で、ステップＳ２２において走行可能であると判定された場合には、本制御ルーチンはステップＳ２４へと進む。
【００７７】
ステップＳ２４では、内燃機関２の制御モードがデータ取得モードに設定される。ここで、データ取得モードは、例えば、図１０（ｂ）に示されるように、その運転領域（以下、データ取得運転領域）が異常時運転領域よりも大きく且つ通常運転領域よりも小さく設定された制御モードである（図１０（ｂ）中のＤ１、Ｄ２又はＤ３）。データ取得モードの詳細については、後述する。
【００７８】
なお、データ取得運転領域は、検出された異常の種類毎に異なる領域であってもよいし、異常の種類に関わらず一定の領域であってもよい。その後、本制御ルーチンは、ステップＳ２５へと進む。
【００７９】
ステップＳ２５では、データ取得モードにおいて、多数の訓練データセットが取得される。ステップＳ２５における訓練データセットの取得方法は、図８のステップＳ１３において説明した取得方法と同様である。訓練データセットの取得が完了した後、本制御ルーチンは、ステップＳ２６へと進む。
【００８０】
ステップＳ２６では、内燃機関２の制御モードが学習時低負荷モードに設定される。ここで、学習時低負荷モードとは、学習モデルの学習が行われる場合に、制御部品（本実施形態では、内燃機関２）に所定の機能を実行させるために車載制御装置２０によって実行される演算処理の負荷が、学習が行われていない場合よりも低くなるように、制御部品を制御する制御モードである。
【００８１】
ここで、エンジンＥＣＵ２１では、通常、例えば、点火プラグ４９の点火や燃料噴射弁５０の燃料噴射など、内燃機関２のクランク角に同期した定期的な演算処理が所定のクランク角になる毎に実行される。そのため、内燃機関２の回転速度が速くなると、これら演算処理の頻度が高くなるため、エンジンＥＣＵ２１における上記演算負荷も高くなる。一方で、内燃機関２の回転速度が遅いと、これら演算処理の頻度が低くなるため、エンジンＥＣＵ２１における上記演算処理の負荷も低くなる。
【００８２】
学習時低負荷モードでは、例えば、機関回転速度を低減させるように内燃機関の動作条件を変更することにより、上記定期処理の頻度が低下される。その結果、学習モデルの学習が行われる前よりも、エンジンＥＣＵ２１における上記定期処理の負荷が低くなり、エンジンＥＣＵ２１において計算能力の余剰が生じるため、この余剰を学習モデルの学習のための演算処理に充てることが可能となる。
【００８３】
図１１を用いて、学習時低負荷モードにおいて車載制御装置２０における演算処理の負荷を低減させるための具体策を説明する。図１１（ａ）は、学習時低負荷モード時及び異常時運転モード時の変速線図の一例を示す。図１１（ａ）に示される変速線図では、学習時低負荷モードのシフトアップ線が実線で示され、異常時運転モードでのシフトアップ線が破線で示されている。なお、図１１（ａ）中の各変速線上に記載された１→２、２→３及び３→４は、それぞれ、一段目から二段目、二段目から三段目及び三段目から四段目に、ギヤ段が変更されることを示している。
【００８４】
車両１が有段変速機を用いる場合において、異常時運転モードから学習時低負荷モードに制御モードが変更された場合、機関制御部９３は、例えば図１１（ａ）に示されるように、有段変速機の制御に用いる変速線図のシフトアップ線を低車速側にシフトするように変更する。その結果、シフトアップが変更前よりも早められるため、同じ車速及びアクセル開度である場合であっても、学習時低負荷モードでは異常時運転モードよりも上のシフト段を用いることが可能となる。そのため、学習時低負荷モードにおいては、異常時運転モードで内燃機関２が運転される場合よりも低い機関回転速度で内燃機関２が運転される。その結果、エンジンＥＣＵ２１における演算処理の負荷が低減される。
【００８５】
また、図１１（ｂ）は、学習時低負荷モード時及び異常時運転モード時の内燃機関の動作線の一例を示す。図１１（ｂ）に示される例では、学習時低負荷モードの動作線が実線で示され、異常時運転モードでの動作線が破線で示されている。
【００８６】
異常時運転モードから学習時低負荷モードに制御モードが変更された場合、機関制御部９３は、例えば図１１（ｂ）に示されるように、内燃機関２の動作線を低回転速度側にシフトするように変更する。その結果、同じトルク要求がなされた場合であっても、学習時低負荷モードでは異常時運転モードよりも低い機関回転速度でそのトルク要求に対応するトルクが内燃機関２から出力されるようになる。その結果、エンジンＥＣＵ２１における演算処理の負荷が低減される。
【００８７】
また、図１１（ｃ）は、学習時低負荷モード時及び異常時運転モード時の車両１の走行モードの切替線図の一例を示す。図１１（ｃ）には、車両１がＥＶ（Electric Vehicle）モードで走行するＥＶ走行領域と車両１がＨＶ（Hybrid Vehicle）モードで走行するＨＶ走行領域との間の切替線が示されている。ここで、ＥＶモードでは、車両１は基本的に内燃機関２が停止した状態で第２電動発電機５の動力で走行し、ＨＶモードでは、車両１は基本的に内燃機関２及び第２電動発電機５の動力で走行する。図１１（ｃ）に示される例では、学習時低負荷モードにおける切替線が実線で示され、異常時運転モードでの切替線が破線で示されている。
【００８８】
異常時運転モードから学習時低負荷モードに制御モードが変更された場合、機関制御部９３は、例えば図１１（ｃ）に示されるように、ＥＶ走行領域とＨＶ走行領域との間の切替線を高トルク且つ高車速側にシフトするように変更する。その結果、学習時低負荷モードでは異常時運転モードよりも車両１においてＥＶモードが継続されやすくなり、ＥＶモードの間、内燃機関２の運転が停止される。その結果、エンジンＥＣＵ２１における演算処理の負荷が低減される。
【００８９】
なお、本実施形態では、ステップＳ２６では、内燃機関２の制御モードが学習時低負荷モードに設定される。しかしながら、ステップＳ２６において、内燃機関２以外の制御部品、すなわち各ＥＣＵ２１乃至２９の各制御部品の制御モードが学習用低負荷モードに設定されてもよい。
【００９０】
斯かる制御部品の一つの例として、ＰＣＵ３が挙げられる。この場合、例えば、ＰＣＵ３は、学習時低負荷モードにおいて、主に電動機として利用される第２電動発電機５をシャットダウンする。その結果、第２電動発電機５を制御するために要する演算処理量が低減され、ＰＣＵ３を制御するＭＧ−ＥＣＵ２２において計算能力の余剰が生じるため、この余剰を学習モデルの学習のための演算処理に充てることが可能となる。
【００９１】
また、上記制御部品の別の例として、運転支援ＥＣＵ２５、カーナビＥＣＵ２６、アブソーバＥＣＵ２７、エアコンＥＣＵ２８やボデー系ＥＣＵ２９などの、車両１の走行中においてその制御部品の機能が停止している状態であっても車両１の安全性に大きな影響を及ぼさないようなＥＣＵの制御部品が挙げられる。この場合、例えば、そのＥＣＵの制御部品の機能が停止され得る。この場合、斯かるＥＣＵでは、その制御部品の機能を停止させた分だけ計算能力に余剰が生じるため、この余剰を学習モデルの学習のための演算処理に充てることが可能となる。
【００９２】
その後、本制御ルーチンは、ステップＳ２７へと進む。
【００９３】
ステップＳ２７では、学習モデルの学習が行われる。ステップＳ２７における学習モデルの学習方法は、図８のステップＳ１４において説明した学習方法と同様である。ここで、この学習は、学習時低負荷モードにおいて行われる。そのため、学習時低負荷モードで制御が行われていない場合よりも、エンジンＥＣＵ２１によって実行される演算処理の負荷が低くなるため、その結果としてエンジンＥＣＵ２１において計算能力に余剰が生じる。車載制御装置２０では、その計算能力の余剰分が学習モデルの学習に充てられる。学習モデルの学習が完了した後、本制御ルーチンは、ステップＳ２８へと進む。
【００９４】
ステップＳ２８では、学習モデルが更新されるとともに、内燃機関の制御モードが異常時運転モードに設定され、また、異常時運転領域における運転領域の大きさが変更される。この異常時運転領域の変更については、後述する。この学習モデルの更新は、ニューラルネットワークにおける重みやバイアスの値を、ステップＳ２７において学習されたニューラルネットワークの重みやバイアスの値で書き換えることにより行われる。その後、本制御ルーチンはステップＳ２９へと進む。
【００９５】
ステップＳ２９では、異常時運転モードにおいて、更新後の学習モデル及び変更後の異常時運転領域を用いて、車両１が走行可能であるか否かが判定される。例えば、機関制御部９３は、変更後の異常時運転領域において、更新後の学習モデルから出力された出力パラメータの値に基づいて内燃機関２を制御し、その運転中にデータを取得する。そして、機関制御部９３は、ステップＳ２２と同様に、機関回転速度やトルク等のデータが運転可能な範囲内の値を示す場合には車両１が走行可能であると判定し、運転可能な範囲外の値を示す場合には車両１が走行可能ではないと判定する。
【００９６】
ステップＳ２９において走行可能ではないと判定された場合には、本制御ルーチンはステップＳ３０へと進む。一方で、ステップＳ２９において走行可能であると判定された場合には、ステップＳ３１へと進む。
【００９７】
ステップＳ３０では、学習モデルがステップＳ２８において更新される直前の学習モデルに変更されるとともに、異常時運転領域がステップＳ２８において変更される直前の異常時運転領域に変更される。この異常時運転領域の変更については、後述する。この学習モデルの変更は、ニューラルネットワークにおける重みやバイアスの値を、ステップＳ２７における学習が行われる直前のニューラルネットワークの重みやバイアスの値で書き換えることにより行われる。その後、本制御ルーチンは終了して、図７に示される制御ルーチンに戻る。その結果、異常時運転モードでは、ステップＳ２８において更新される直前の学習モデル及び変更される直前の異常時運転領域が内燃機関２の制御に用いられることになる。
【００９８】
ステップＳ３１では、データ取得運転領域が最大の運転領域であるか否かが判定される。ステップＳ３１の詳細については、後述する。ステップＳ３１においてデータ取得運転領域が最大の運転領域ではないと判定された場合には、本制御ルーチンはステップＳ３２へと進む。
【００９９】
ステップＳ３２では、運転領域を拡張するようにデータ取得運転領域が変更される。ステップＳ３２の詳細については、後述する。その後、本制御ルーチンは、ステップＳ２４へと戻り、内燃機関２の制御モードがデータ取得モードに設定され、ステップＳ３２において変更されたデータ取得運転領域により訓練データセットが取得される。
【０１００】
一方、ステップＳ３１においてデータ取得運転領域が最大の運転領域であると判定された場合には、本制御ルーチンは終了して、図７に示される制御ルーチンに戻る。その結果、異常時運転モードでは、最後に更新された学習モデルが内燃機関２の制御に用いられることになる。そして、異常時運転モードでは、ステップＳ２８において変更された異常時運転領域により、内燃機関２が制御される。
【０１０１】
以下、図９におけるステップＳ２４乃至Ｓ３２の処理をより具体的に説明する。まず、データ取得モードについて説明する。データ取得モードでは、図１０（ｂ）に示されるように、例えば目標機関回転速度及び目標トルクについてそれぞれ異なる範囲を有する第一乃至第三データ取得運転領域Ｄ１乃至Ｄ３（以下、これらデータ取得運転領域Ｄ１乃至Ｄ３をそれぞれ「Ｄ１」、「Ｄ２」及び「Ｄ３」という）が設けられている。具体的には、図１０（ｂ）に示されるように、ステップＳ２１時における異常時運転領域、Ｄ１、Ｄ２、Ｄ３の順で、その運転領域の上限値が大きくなるように各運転領域が定められている。また、Ｄ１は異常時運転領域を含み、Ｄ２は異常時運転領域及びＤ１を含み、Ｄ３は異常時運転領域、Ｄ１及びＤ２を含む。ここで、本実施形態では、３つのＤ１乃至Ｄ３が設けられているが、これに限定されず、２つ以上のデータ取得運転領域が設けられていればよい。
【０１０２】
データ取得モードでは、目標機関回転速度及び目標トルクで設定されるデータ取得運転領域内の各動作点について、その動作点での機関回転速度及びトルクの実測値を含む入力パラメータの各実測値と、入力パラメータの各実測値を取得した時点においてパラメータ値出力部９２からニューラルネットワークを用いて出力された出力パラメータの各値とが、訓練データセットとして取得される。
【０１０３】
以下、ステップＳ２２で走行可能と判定された後、ステップＳ２３の初回の実行時からの各処理の流れを説明する。ステップＳ２４におけるデータ取得モードへの初回の設定時には、例えば、Ｄ１乃至Ｄ３のうち最も運転領域が小さいＤ１が設定される。このＤ１を用いてステップＳ２５において訓練データセットが取得され、この取得した訓練データセットを用いてステップＳ２７において学習モデルの学習が行われる。
【０１０４】
その後、上述したように、ステップＳ２８において、学習モデルの更新及び異常時運転モードへの設定が行われるとともに、異常時運転領域の大きさが変更される。特に、異常時運転領域は、その運転領域の上限値が大きくなるように変更される。具体的には、異常時運転領域は、ステップＳ２４においてデータ取得の際に用いられたＤ１と同じ範囲の運転領域となるように拡張される。その後、ステップＳ２９において、上述したように更新後の学習モデル及び拡張後の異常時運転領域を用いて車両１が走行可能であるか否かが判定される。
【０１０５】
ステップＳ２９で走行可能ではないと判定された場合、上述したように、ステップＳ３０において、学習モデル及び異常時運転領域がステップＳ２８の直前の学習モデル及び異常時運転領域にそれぞれ変更される。特に、ステップＳ３０での異常時運転領域の変更については、異常時運転領域は、Ｄ１に変更される直前の運転領域であるステップＳ２１時における異常時運転領域となるように変更される。その後、本制御ルーチンは終了する。
【０１０６】
また、ステップＳ２９で走行可能であると判定された場合には、上述したように、ステップＳ３１において、データ取得運転領域が最大の運転領域であるか否かが判定される。具体的には、その学習において訓練データセットを取得する際に用いられたデータ取得運転領域よりも大きいデータ取得運転領域がない場合にはデータ取得運転領域が最大の運転領域であると判定され、斯かるデータ取得運転領域がある場合にはデータ取得運転領域が最大の運転領域ではないと判定される。データ取得モードではＤ１よりも運転領域が大きいＤ２乃至Ｄ３が設けられているため、ステップＳ３１では、現在のデータ取得運転領域が最大の運転領域ではないと判定される。
【０１０７】
ステップＳ３１で最大の運転領域ではないと判定された場合、上述したように、ステップＳ３２において、運転領域を拡張するようにデータ取得運転領域が変更される。ステップＳ３２では、その後に実行されるステップＳ２４において用いられるデータ取得運転領域が、現在設定されているデータ取得運転領域の次に運転領域が大きいデータ取得運転領域に変更される。具体的には、ステップＳ３２では、二回目のステップＳ２４で用いられるデータ取得運転領域が、Ｄ１からその次に大きいＤ２となるように変更される。このように、ステップＳ３２では、データ取得運転領域が段階的に大きくなるように、データ取得運転領域が変更される。
【０１０８】
その後、本制御ルーチンは、ステップＳ２４に戻る。そして、二回目のステップＳ２４ではデータ取得運転領域Ｄ２が設定され、その後、ステップＳ２５乃至Ｓ２７において、データ取得運転領域Ｄ２を用いて上記と同様の処理が実行される。二回目のステップＳ２８では、異常時運転領域が、二回目のステップＳ２４においてデータ取得の際に用いられたＤ２と同じ範囲の運転領域となるように変更される。その後、ステップＳ２９で走行可能であると判定された場合、データ取得モードではＤ２よりも運転領域が大きいＤ３が設けられているため、ステップＳ３１では、現在のデータ取得運転領域が最大の運転領域ではないと判定される。その後、ステップＳ３２では、三回目のステップＳ２４で用いられるデータ取得運転領域が、Ｄ２からその次に大きいＤ３となるように変更される。
【０１０９】
三回目のステップＳ２４ではデータ取得運転領域Ｄ３が設定され、その後、ステップＳ２５乃至Ｓ２８において上記と同様の処理が実行され、ステップＳ２９で走行可能であると判定された場合、ステップＳ３１が実行される。ここで、データ取得モードでは、Ｄ３よりも運転領域が大きいデータ取得運転領域はないため、ステップＳ３１では、現在のデータ取得運転領域が最大の運転領域であると判定される。その後、本制御ルーチンは終了する。
【０１１０】
このように、本実施形態では、ステップＳ３０で走行可能ではないと判定されるか、又はステップＳ３１で最大の運転領域であると判定されるまで、データ取得運転領域及び異常時運転領域を徐々に拡張しながら、学習モデルの学習及び更新が繰り返される。その結果、ステップＳ２８で最後に更新されたときの学習モデル又はステップＳ３０で変更後の学習モデルが、その異常時運転領域において内燃機関２を最も適切に制御し得る学習モデルとして、内燃機関２の制御に用いられることになる。そのため、内燃機関２の異常時において、内燃機関２が適切に動作しないような運転領域で運転されることが抑制され得る。その結果、適切ではない運転領域での内燃機関２の運転により、例えば回転速度が上がりすぎてしまい、内燃機関２に更なる異常が生じてしまうなどの事態が生じることが抑制され得る。
【０１１１】
＜第二実施形態＞
次に、第二実施形態に係る車載制御装置について説明する。第二実施形態に係る車載制御装置の構成は、基本的に第一実施形態に係る車載制御装置の構成と同様である。以下では、第一実施形態に係る車載制御装置の構成と異なる部分を中心に説明する。
【０１１２】
上記第一実施形態では、エンジンＥＣＵ２１のみが学習モデルの学習のための演算処理を実行している。しかし、エンジンＥＣＵ２１において計算能力に十分な余剰がない場合には、その演算処理が低速化する場合がある。訓練データセットを分割して全てのＥＣＵ２１乃至２９で分散して学習を行うことも考えられるが、この場合、全てのＥＣＵ２１乃至２９に分割された訓練データセットを通信する必要がある。全てのＥＣＵ２１乃至２９のうち計算能力に十分な余剰がないＥＣＵにまで斯かる分割された訓練データセットを通信する場合、分割された訓練データセットがＣＡＮなどの車内ネットワークを経由して通信される関係で、その通信時間により学習が却って遅延する場合がある。また、その訓練データセットの通信後も、計算能力に十分な余剰がないＥＣＵでは十分な処理速度で学習のための演算処理が実行されない場合がある。
【０１１３】
これに対して、本実施形態では、車載制御装置２０が搭載している各ＥＣＵ２１乃至２９のうち、計算能力に十分な余剰を有するＥＣＵを用いて学習が実行される。そのため、計算能力に十分な余剰がないＥＣＵがある場合であっても、十分な処理速度により学習モデルの学習が行われ得る。
【０１１４】
図１２は、第二実施形態に係る異常時処理の制御ルーチンを示すフローチャートである。なお、図１２のステップＳ４１乃至Ｓ４５及びＳ４８乃至Ｓ５２は、それぞれ図９のステップＳ２１乃至Ｓ２５及びＳ２８乃至Ｓ３２とそれぞれ同様であるため、説明を省略する。
【０１１５】
ステップＳ４６では、学習用の演算処理を実行するＥＣＵが選定される。ステップＳ３５におけるＥＣＵ選定処理については、図１３を用いて後述する。
【０１１６】
ステップＳ４７では、学習モデルの学習が行われる点では図９のステップＳ２７と同様であるが、ステップＳ４６で選定されたＥＣＵによって、その学習モデルの学習のための演算処理が実行される。
【０１１７】
図１３は、本実施形態に係るＥＣＵ選定処理の制御ルーチンを示すフローチャートである。本制御ルーチンのフローは、エンジンＥＣＵ２１の処理部３３が、記憶部３２に記憶されているプログラムを実行することにより実現される。
【０１１８】
ステップＳ６１では、内燃機関２の制御モードが、異常時運転モードに設定される。その後、本制御ルーチンはステップＳ６２へと進む。
【０１１９】
ステップＳ６２では、各ＥＣＵ２１乃至２９が学習モデルの学習に充てることができる計算量を示す学習用計算量と、学習モデルの学習で要求される計算量を示す要求計算量と、学習モデルの学習を完了させるのに要求される期間の上限を示す要求計算期間と、が取得される。
【０１２０】
まず、図１４を用いて、各ＥＣＵにおける学習用計算量について説明する。図１４には、車載制御装置においてＥＣＵA乃至ＥＣＵEが用いられる場合を例として、各ＥＣＵA乃至ＥＣＵEにおける学習用計算量が示されている。図１４に示されるように、各ＥＣＵA乃至ＥＣＵEにおける学習用計算量は、例えば、ＥＣＵにおける単位時間当たりの計算量（傾き）と、その単位時間当たりの計算量の継続時間（継続する見込みの時間）と、から求められる。
【０１２１】
例えば、エンジンＥＣＵ２１は、バッテリ充電率が所定の値よりも大きい場合には、バッテリ充電率に応じて、第２電動発電機５を電動機として駆動することにより内燃機関２を停止させた状態を継続できる時間を算出する。そして、エンジンＥＣＵ２１は、その停止状態における単位時間当たりの計算量と、算出した停止状態の継続時間と、に基づいて、学習用計算量を算出することにより、エンジンＥＣＵ２１自身の学習用計算量を取得する。また、エンジンＥＣＵ２１は、エンジンＥＣＵ２１以外の各ＥＣＵ２２乃至２９に学習用計算量についての回答を要求し、各ＥＣＵ２２乃至２９により各々の学習用計算量が計算されて各ＥＣＵ２２乃至２９からその回答を受けることにより、各ＥＣＵ２２乃至２９の学習用計算量を取得する。
【０１２２】
次に、要求計算量及び要求計算期間について説明する。要求計算量は、例えば、図７のステップＳ１で検出された異常の種類や学習部９４における学習モデルの学習条件（例えば、取得する訓練データ量やエポック数等についての設定情報など）に応じて決定される。また、要求計算期間は、例えば、内燃機関２の異常の種類毎に予め設定されており、図７のステップＳ１で検出された異常の種類に応じて決定される。例えば、内燃機関２の安全性に関わるような緊急度が高い異常の場合には要求計算期間が比較的短く設定され、車両１の乗り心地などに関わるような緊急度が低い異常の場合には要求計算期間が比較的長く設定される。
【０１２３】
次に、ステップＳ６３では、各ＥＣＵ２１乃至２９についての学習用計算量に基づいて、要求計算期間内に要求計算量を処理可能なＥＣＵがあるか否かが判定される。ここで、図１４に示される例を用いて説明すると、ＥＣＵC及びＥＣＵEについての学習用計算量は要求計算期間内において要求計算量よりも少ないが、ＥＣＵA、ＥＣＵB及びＥＣＵDについての学習用計算量は要求計算期間内において要求計算量よりも多い。従って、この場合、ＥＣＵA、ＥＣＵB及びＥＣＵDが要求計算期間内に要求計算量を処理することができるため、ステップＳ６３では、要求計算期間内に要求計算量を処理可能なＥＣＵがあると判定される。一方で、全てのＥＣＵが、ＥＣＵC及びＥＣＵEのように要求計算期間内に要求計算量を処理することができないものである場合には、ステップＳ６３では、要求計算期間内に要求計算量を処理可能なＥＣＵがないと判定される。
【０１２４】
ステップＳ６４において処理可能なＥＣＵがあると判定された場合には、本制御ルーチンはステップＳ６７へと進む。一方、ステップＳ６３において処理可能なＥＣＵがないと判定された場合には、本制御ルーチンはステップＳ６４へと進む。
【０１２５】
ステップＳ６４では、各制御部品の制御モードが学習時低負荷モードに設定される。その結果、各制御部品が低負荷で動作されるようになるため、各ＥＣＵ２１乃至２９について計算能力に余剰が生じる。その後、本制御ルーチンはステップＳ６５へと進む。
【０１２６】
ステップＳ６５では、学習時低負荷モードにおける各ＥＣＵ２１乃至２９についての学習用計算量が取得される。ステップＳ６５における学習用計算量の取得方法は、ステップＳ６２で上述した取得方法と同様である。その後、本制御ルーチンはステップＳ６６へと進む。
【０１２７】
ステップＳ６６では、学習時低負荷モードにおける各ＥＣＵ２１乃至２９の学習用計算量に基づいて、要求計算期間内に要求計算量を処理可能なＥＣＵがあるか否かが判定される。ステップＳ６６における判定方法は、ステップＳ６３で上述した判定方法と同様である。ステップＳ６６において処理可能なＥＣＵがあると判定された場合には、本制御ルーチンはステップＳ６７へと進む。
【０１２８】
ステップＳ６７では、要求計算期間内に要求計算量を処理可能なＥＣＵが、学習モデルの学習のための演算処理を行うＥＣＵとして選定される。ここで、要求計算期間内に要求計算量を処理可能なＥＣＵが複数ある場合には、それらＥＣＵがそれぞれ選定される。
【０１２９】
一方、ステップＳ６６において処理可能なＥＣＵがないと判定された場合には、本制御ルーチンはステップＳ６８へと進む。ステップＳ６８では、要求計算期間内に要求計算量を処理することができるように、複数のＥＣＵが学習モデルの学習のための演算処理を行うＥＣＵとして選定される。具体的には、例えば、要求計算期間内での各ＥＣＵにおける学習用計算量の合計が要求計算量よりも大きくなるように、学習用計算量が大きい順で複数のＥＣＵが選定される。その後、本制御ルーチンはステップＳ６９へと進む。
【０１３０】
ステップＳ６９では、訓練データセットが分割される。ステップＳ６９では、例えば、ステップＳ６８において選定されたＥＣＵの数がその分割数とされ得る。
【０１３１】
各ステップＳ６７及びＳ６９の後、本制御ルーチンはステップＳ７０へと進む。
【０１３２】
ステップＳ７０では、選定されたＥＣＵが、訓練データセットを取得する。例えば、ステップＳ６７において選定されたＥＣＵがエンジンＥＣＵ２１である場合、エンジンＥＣＵ２１は、エンジンＥＣＵ２１の記憶部３２から訓練データセットを取り出す。また、ステップＳ６７においてエンジンＥＣＵ２１以外のＥＣＵを含む複数のＥＣＵが選定された場合、エンジンＥＣＵ２１は、その選定された各ＥＣＵに訓練データセットを送信する。このようにステップＳ６７において複数のＥＣＵが選択された場合には、その後の図１２のステップＳ４７において、例えば、その選定された各ＥＣＵにより個別に学習させるいわゆるアンサンブル学習が行われる。
【０１３３】
一方、ステップＳ６８において選定された複数のＥＣＵに対しては、エンジンＥＣＵ２１は、ステップＳ６９において分割された各訓練データセットを、その選定された各ＥＣＵに訓練データセットを送信する。この場合には、その後の図１２のステップＳ４７において、例えば、複数のＥＣＵにより一つの訓練データセットの分散計算が行われる。その後、本制御ルーチンは終了して、図１２に示される制御ルーチンに戻る。
【０１３４】
以上、本開示の実施形態について説明したが、上記実施形態は、本開示の適用例の一部を示したに過ぎず、本開示の技術的範囲を上記実施形態の具体的構成に限定する趣旨ではない。
【０１３５】
上記実施形態では、ニューラルネットワークを用いたモデルに入力パラメータを入力することによって得られた出力パラメータに基づいて制御される制御部品として、内燃機関２を例に挙げて説明したが、斯かる制御部品は内燃機関２に限られない。例えば、ハイブリッド車両であれば内燃機関２及び電動機の一方又は両方を、電気自動車であれば電動機を、ニューラルネットワークを用いた学習モデルに入力パラメータを入力することによって得られた出力パラメータに基づいて制御するようにしてもよい。
【０１３６】
また、上記第二実施形態では、ステップＳ６６において要求計算期間内に要求計算量を処理可能なＥＣＵがあるか否かを判定することによりＥＣＵが選定されたが、ステップＳ６５において取得される学習時低負荷モードにおける各ＥＣＵ２１乃至２９の学習用計算量が予め把握されている場合には、ステップＳ６６における判定は行われなくてもよい。この場合、学習用計算量が比較的多い所定のＥＣＵが学習のための演算処理を実行するＥＣＵとして選定される。
【０１３７】
或いは、所定のＥＣＵについては、ユーザが学習用の演算処理を行うＥＣＵとして選定してもよい。斯かるＥＣＵとしては、例えば、運転支援ＥＣＵ２５、カーナビＥＣＵ２６、アブソーバＥＣＵ２７、エアコンＥＣＵ２８やボデー系ＥＣＵ２９などの、車両１の走行中においてその制御部品の機能が停止している状態であっても車両１の安全性に大きな影響を及ぼさないようなＥＣＵが挙げられる。斯かる選定されるＥＣＵは、例えば、例えば、車載ディスプレイに表示されたインターフェース画面や、車載音声インターフェースシステムとの音声のやり取りにより、選択され得る。斯かる選定されるＥＣＵは、予め選択されていてもよいし、学習モデルの学習が行われる直前に選択されてもよい。
【符号の説明】
【０１３８】
１    車両
２    内燃機関
２０    車載制御装置
２１    エンジンＥＣＵ
３３    処理部
９１    パラメータ値取得部
９２    パラメータ値出力部
９３    機関制御部
９４    学習部
【図１】
2020173716.tif 000004
【図２】
2020173716.tif 000005
【図３】
2020173716.tif 000006
【図４】
2020173716.tif 000007
【図５】
2020173716.tif 000008
【図６】
2020173716.tif 000009
【図７】
2020173716.tif 000010
【図８】
2020173716.tif 000011
【図９】
2020173716.tif 000012
【図１０】
2020173716.tif 000013
【図１１】
2020173716.tif 000014
【図１２】
2020173716.tif 000015
【図１３】
2020173716.tif 000016
【図１４】
2020173716.tif 000017