(57)【特許請求の範囲】
【請求項１】
クランク軸にモータジェネレータが機械的に連結された内燃機関に適用されて、気筒間の燃焼状態のばらつきを伴う同内燃機関の既定の運転状態を検出するシステムであって、
各気筒の燃焼トルクの発生期間における前記クランク軸の回転速度の気筒間差に関する情報を含む変数である第１波形変数、前記モータジェネレータのトルクの時系列データを示す変数である第２波形変数、及び気筒間の燃焼状態のばらつき度合いに関する変数である燃焼状態変数の３つの変数について、前記第１波形変数及び前記第２波形変数を入力とするとともに前記燃焼状態変数を出力とする写像であって、機械学習によって学習されたパラメータに基づく前記第１波形変数及び前記第２波形変数の結合演算により前記燃焼状態変数の値を出力する写像を検出用写像としたとき、
前記検出用写像を規定するデータである写像データを記憶する記憶装置と、
前記第１波形変数及び前記第２波形変数のそれぞれの値を取得する処理であって前記クランク軸の回転挙動を検出するセンサの出力に基づき前記第１波形変数の値を取得する取得処理、及び前記取得処理で取得した前記第１波形変数及び前記第２波形変数のそれぞれの値を入力とした前記検出用写像の出力値に基づいて前記内燃機関が前記既定の運転状態にあるか否かを判定する判定処理を実行する実行装置と、
を備える内燃機関の状態検出システム。
【請求項２】
前記既定の運転状態は、失火が発生した状態である請求項１に記載の内燃機関の状態検出システム。
【請求項３】
クランク軸にモータジェネレータが機械的に連結された内燃機関に適用されて、気筒間の燃焼状態のばらつきを伴う同内燃機関の既定の運転状態を検出するシステムであって、
各気筒の燃焼トルクの発生期間における前記クランク軸の回転速度の気筒間差に関する情報を含む変数である第１波形変数、前記モータジェネレータの駆動状態を表す状態量の時系列データを示す変数である第２波形変数、及び気筒間の燃焼状態のばらつき度合いに関する変数である燃焼状態変数の３つの変数について、前記第１波形変数及び前記第２波形変数を入力とするとともに前記燃焼状態変数を出力とする写像であって、機械学習によって学習されたパラメータに基づく前記第１波形変数及び前記第２波形変数の結合演算により前記燃焼状態変数の値を出力する写像を検出用写像としたとき、
前記検出用写像を規定するデータである写像データを記憶する記憶装置と、
前記第１波形変数及び前記第２波形変数のそれぞれの値を取得する処理であって前記クランク軸の回転挙動を検出するセンサの出力に基づき前記第１波形変数の値を取得する取得処理、及び前記取得処理で取得した前記第１波形変数及び前記第２波形変数のそれぞれの値を入力とした前記検出用写像の出力値に基づいて前記内燃機関が前記既定の運転状態にあるか否かを判定する判定処理を実行する実行装置と、
を備え、
前記既定の運転状態は、気筒間の空燃比のばらつきが生じた状態である
内燃機関の状態検出システム。
【請求項４】
前記実行装置は、前記判定処理により前記内燃機関が前記規定の運転状態にあると判定されたときに、規定のハードウェアを操作して同規定の運転状態に対処するための対処処理を実行する請求項１〜３のいずれか１項に記載の内燃機関の状態検出システム。
【請求項５】
前記判定処理は、前記取得処理にて取得した前記第１波形変数及び前記第２波形変数の値を入力とする前記検出用写像の出力値を算出する出力値算出処理を含み、
前記実行装置は、車両に搭載された第１実行装置と前記車両の外部に配置された第２実行装置とを含み、
前記第１実行装置は、前記取得処理と、前記出力値算出処理の算出結果に基づく信号を受信する車両側受信処理と、を実行し、
かつ前記第２実行装置は、前記出力値算出処理と、前記出力値算出処理の算出結果に基づく信号を前記車両に送信する外部側送信処理と、を実行する
請求項１〜請求項４のいずれか１項に記載の内燃機関の状態検出システム。
【請求項６】
請求項５に記載の内燃機関の状態検出システムにおける前記第２実行装置及び前記記憶装置を備えるデータ解析装置。
【請求項７】
請求項５に記載の内燃機関の状態検出システムにおける前記第１実行装置を備えるハイブリッド車両。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ハイブリッド車両に搭載された内燃機関において、気筒間の燃焼状態のばらつきを伴う運転状態、例えば失火や空燃比の気筒間のばらつきを検出するためのシステム、及び同システムを構成するデータ解析装置及びハイブリッド車両に関する。
【背景技術】
【０００２】
内燃機関では、失火や気筒間の空燃比のばらつき等により気筒間の燃焼状態のばらつきが生じるとクランク軸の回転変動が大きくなる。そのため、クランク軸の回転変動パターンに基づいて、失火や気筒間の空燃比のばらつき等を検出することが可能である。例えば特許文献１には、既定周期毎にサンプリングした内燃機関のクランク軸の回転速度の時系列データを入力層に入力し、失火が生じた気筒の情報を出力層から出力するように構成した階層型神経回路モデルを用いて失火を検出する失火検出システムが記載されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平４−９１３４８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、内燃機関のクランク軸にモータジェネレータが機械的に連結されたハイブリッド車両では、モータジェネレータの駆動状態によっても、クランク軸の回転挙動が変化する。そのため、上記のようなモータジェネレータを備えるハイブリッド車両では、同モータジェネレータを備えていない車両に比べて、クランク軸の回転変動のパターンに基づく失火等の検出精度が低くなる。
【課題を解決するための手段】
【０００５】
上記課題を解決する内燃機関の状態検出システムは、クランク軸にモータジェネレータが機械的に連結された内燃機関に適用されて、気筒間の燃焼状態のばらつきを伴う同内燃機関の既定の運転状態を検出する。ここで、各気筒の燃焼トルクの発生期間におけるクランク軸の回転速度の気筒間差に関する情報を含む変数を第１波形変数とし、モータジェネレータの駆動状態を表す状態量の時系列データを示す変数を第２波形変数とする。また、気筒間の燃焼状態のばらつき度合いに関する変数を燃焼状態変数とする。そして、上記第１波形変数及び第２波形変数を入力とするとともに、上記燃焼状態変数を出力とする写像であって、機械学習によって学習されたパラメータに基づく第１波形変数及び第２波形変数の結合演算によって燃焼状態変数の値を出力する写像を検出用写像とする。
【０００６】
このとき、上記状態検出システムは、上記検出用写像を規定するデータである写像データを記憶する記憶装置と、第１波形変数及び第２波形変数のそれぞれの値を取得する処理であってクランク軸の回転挙動を検出するセンサの出力に基づいて第１波形変数の値を取得する取得処理、及びその取得処理で取得した第１波形変数及び第２波形変数のそれぞれの値を入力とした上記検出用写像の出力値に基づいて内燃機関が上記既定の運転状態にあるか否かを判定する判定処理を実行する実行装置と、を備えている。
【０００７】
各気筒の燃焼状態にばらつきが生じると、各気筒の燃焼トルクに差異が生じるため、各気筒の燃焼トルクの発生期間におけるクランク軸の回転速度に気筒間差が生じる。こうしたクランク軸の回転速度の気筒間差に関する情報は、クランク軸の回転挙動を検出するセンサの出力から取得できる。燃焼トルクの発生期間におけるクランク軸の回転速度の気筒間差が単純に各気筒の燃焼状態のばらつきのみに起因して生じるのであれば、同回転速度の気筒間差に関する情報から、失火や気筒間空燃比インバランスのような気筒間の燃焼状態のばらつきを伴う内燃機関の運転状態を精度良く検出できることになる。
【０００８】
一方、モータジェネレータがクランク軸に機械的に連結された内燃機関では、モータジェネレータの駆動状態がクランク軸の回転挙動に影響する。モータジェネレータの駆動状態が同じでも、そのときの内燃機関の運転状態が異なれば、モータジェネレータの駆動状態がクランク軸の回転挙動に与える影響の度合いは変わる。また、モータジェネレータの駆動状態の変化に対するクランク軸の回転挙動の変化は遅れを伴ったものとなる。
【０００９】
これに対して上記構成では、気筒間の燃焼状態のばらつきが燃焼トルクの発生期間のクランク軸の回転速度の気筒間差を生じさせることに鑑み、同回転速度の気筒間差の情報を含む第１波形変数を検出用写像への入力に含めている。また、モータジェネレータの駆動状態の変化が遅れを有してクランク軸の回転挙動に影響を与えることに鑑み、同駆動状態を表す状態量の時系列データを示す第２波形変数も検出用写像への入力に含めている。そして、上記構成では、機械学習により学習されたパラメータに基づくそれら第１波形変数及び第２波形変数の結合演算により算出した燃焼状態変数の値に基づき、上記既定の運転状態の発生の有無を判定している。ここでのパラメータは、上記のような第１波形変数及び第２波形変数のそれぞれが様々な値を取るときの上記既定の運転状態の発生の有無に基づき学習できる。そのため、モータジェネレータの駆動状態がクランク軸の回転挙動に与える影響を踏まえたかたちで上記状態検出を実施できる。したがって、クランク軸にモータジェネレータが機械的に連結された内燃機関における上記既定の運転状態の検出精度を向上できる。
【００１０】
上記構成の状態検出システムは、失火が発生した状態や気筒間の空燃比のばらつきが生じた状態の検出を行うシステムとして構成できる。また、上記構成における第２波形変数に係るモータジェネレータの駆動状態を表す状態量としては、例えば同モータジェネレータのトルクを用いることができる。
【００１１】
なお、上記状態検出システムにおける実行装置は、判定処理により内燃機関が規定の運転状態にあると判定されたときに、規定のハードウェアを操作して同規定の運転状態に対処するための対処処理を実行することが望ましい。対処処理には、例えば、内燃機関が既定の運転状態にあることを乗員に報知する処理や、既定の運転状態の解消や軽減を図る処理が含まれる。
【００１２】
さらに上記状態検出システムは、次のように構成することも可能である。すなわち、取得処理にて取得した第１波形変数及び第２波形変数の値を入力とする検出用写像の出力値を算出する出力値算出処理を含む処理として判定処理を行い、かつ車両に搭載された第１実行装置と同車両の外部に配置された第２実行装置とを含むものとして実行装置を構成する。そして、取得処理と出力値算出処理の算出結果に基づく信号を受信する車両側受信処理とを車両に搭載された第１実行装置が実行し、出力値算出処理とその出力値算出処理の算出結果に基づく信号を車両に送信する外部側送信処理とを車両の外部に配置された第２実行装置が実行するものとする。こうした場合、演算負荷が高い出力値算出処理が車両の外部で行われることになる。そのため、車両側の演算負荷を軽減できる。なお、こうした場合の状態検出システムを構成するものとして、上記第２実行装置及び上記記憶装置を備えるデータ解析装置や第１実行装置を備えるハイブリッド車両が考えられる。
【図面の簡単な説明】
【００１３】
【図１】第１実施形態に係る状態検出システム及びその適用対象となる内燃機関を搭載するハイブリッド車両の駆動系の構成を模式的に示す図。
【図２】上記ハイブリッド車両の駆動力制御に係る処理の制御ブロック図。
【図３】第１実施形態の状態検出システムにおいて失火用プログラムに規定された処理のフローチャート。
【図４】同実施形態における写像の入力変数の設定態様を示す図。
【図５】第２実施形態の状態検出システムの構成を模式的に示す図。
【図６】同状態検出システムにおける車両側の処理のフローチャート。
【図７】同状態検出システムにおけるセンター側の処理のフローチャート。
【図８】第３実施形態の状態検出システムにおいて失火用プログラムに規定された処理のフローチャート。
【図９】同状態検出システムにおいて対処プログラムに規定された処理のフローチャート。
【発明を実施するための形態】
【００１４】
（第１実施形態）
以下、内燃機関の状態検出システムの第１実施形態を、図１〜図４を参照して説明する。
【００１５】
図１に示すハイブリッド車両ＶＣに搭載された内燃機関１０において、吸気通路１２には、スロットルバルブ１４が設けられている。吸気通路１２から吸入された空気は、吸気バルブ１６が開弁することによって各気筒＃１〜＃４の燃焼室１８に流入する。燃焼室１８には、燃料噴射弁２０によって燃料が噴射される。燃焼室１８において、空気と燃料との混合気は、点火装置２２による火花放電によって燃焼に供され、燃焼によって生じたエネルギは、クランク軸２４の回転エネルギとして取り出される。燃焼に供された混合気は、排気バルブ２６の開弁に伴って、排気として、排気通路２８に排出される。
【００１６】
クランク軸２４には、クランク軸２４の回転角度を示す複数個（ここでは、３４個）の歯部３２が設けられたクランクロータ３０が結合されている。クランクロータ３０には、基本的には、１０°ＣＡ間隔で歯部３２が設けられているものの、隣接する歯部３２間の間隔が３０°ＣＡとなる箇所である欠け歯部３４が１箇所設けられている。これは、クランク軸２４の基準となる回転角度を示すためのものである。
【００１７】
クランク軸２４は、動力分割機構を構成する遊星歯車機構４０のキャリアＣに機械的に連結されている。遊星歯車機構４０のサンギアＳには、第１モータジェネレータ４２の回転軸が機械的に連結されており、遊星歯車機構４０のリングギアＲには、第２モータジェネレータ４４の回転軸及び駆動輪５０が機械的に連結されている。第１モータジェネレータ４２の各端子はインバータ４６に、第２モータジェネレータ４４の各端子はインバータ４８に、それぞれ接続されている。さらにインバータ４６，４８は、バッテリ４９にそれぞれ接続されている。そして、インバータ４６は第１モータジェネレータ４２の各端子に、インバータ４８は第２モータジェネレータ４４の各端子に、それぞれ交流電圧を印加する。
【００１８】
制御装置６０は、内燃機関１０を制御対象とし、その制御量であるトルクや排気成分比率等を制御するために、スロットルバルブ１４や、燃料噴射弁２０、点火装置２２等の内燃機関１０の操作部を操作する。また、制御装置６０は、第１モータジェネレータ４２を制御対象とし、その制御量であるトルクや回転速度を制御するために、インバータ４６を操作する。また、制御装置６０は、第２モータジェネレータ４４を制御対象とし、その制御量であるトルクや回転速度を制御するために、インバータ４８を操作する。なお、図１には、スロットルバルブ１４、燃料噴射弁２０、点火装置２２、インバータ４６，４８のそれぞれの操作信号ＭＳ１〜ＭＳ５を記載している。
【００１９】
制御装置６０は、制御量の制御に際し、エアフローメータ７０によって検出される吸入空気量Ｇａや、クランク角センサ７２の出力信号Ｓｃｒ、アクセルセンサ７４によって検出されるアクセルペダルの踏み込み量であるアクセル操作量ＡＣＣＰ、バッテリ４９の充電率ＳＯＣ、車速Ｖ等を参照する。なお、排気通路２８には空燃比センサ７１が設置されており、制御量の制御に際して制御装置６０はその空燃比センサ７１の検出値も参照している。ちなみに、空燃比センサ７１は、排気浄化用の触媒により浄化される前の排気の成分に応じた検出信号を出力し、その検出値は各気筒＃１〜＃４の燃焼室１８で燃焼された混合気の空燃比に対応する。以下の説明では、こうした空燃比センサ７１の検出値を上流側検出値Ａｆｕと記載する。
【００２０】
制御装置６０は、ＣＰＵ６２、ＲＯＭ６４、電気的に書換え可能な不揮発性メモリである記憶装置６６、及び周辺回路６７を備え、それらがバス６８を通じて通信可能とされたものである。なお、周辺回路６７は、内部の動作を規定するクロック信号を生成する回路や、電源回路、リセット回路等を含む。そして、制御装置６０は、ＲＯＭ６４に記憶されたプログラムをＣＰＵ６２が実行することによって、ハイブリッド車両ＶＣの駆動制御を実行する。なお、本実施形態では、制御装置６０が状態検出システムに対応する。
【００２１】
図２に、ハイブリッド車両ＶＣの駆動制御に係るＣＰＵ６２の処理の流れを示す。同図に示される各処理は、ＲＯＭ６４に記憶されたプログラムをＣＰＵ６２が実行することによって実現されている。なお、ＣＰＵ６２は、同図に示される一連の処理を、既定の制御周期毎に繰り返し実行している。
【００２２】
要求駆動力算出処理Ｍ１０では、アクセル操作量ＡＣＣＰ及び車速Ｖに基づき、ハイブリッド車両ＶＣの駆動力の要求値である要求駆動力ＴＰ＊の値が算出される。
充放電要求パワー算出処理Ｍ１２では、充電率ＳＯＣを既定の制御範囲内の値に維持するためのバッテリ４９の充放電制御に用いられる駆動力の要求値が充放電要求パワーＰＢ＊の値として算出される。なお、充放電要求パワーＰＢ＊は、バッテリ４９の放電が必要なときには正の値として、バッテリ４９の充電が必要なときには負の値としてそれぞれ算出される。
【００２３】
要求エンジン出力算出処理Ｍ１４では、要求駆動力ＴＰ＊及び充放電要求パワーＰＢ＊の算出結果に基づき、内燃機関１０の出力の要求値である要求エンジン出力ＰＥ＊の値が算出される。具体的には、要求駆動力ＴＰ＊に充放電要求パワーＰＢ＊を加えた和が要求エンジン出力ＰＥ＊の値として算出される。
【００２４】
エンジン動作点設定処理Ｍ１６では、要求エンジン出力ＰＥ＊に基づき、内燃機関１０のトルク及び回転速度のそれぞれの目標値である目標エンジントルクＴＥ＊及び目標エンジン回転速度ＮＥ＊が算出される。具体的には、要求エンジン出力ＰＥ＊の値分の出力が得られる内燃機関１０の動作点の集合の中で、燃費が最も良くなる動作点のトルク及び回転速度が目標エンジントルクＴＥ＊及び目標エンジン回転速度ＮＥ＊のそれぞれの値として算出される。
【００２５】
スロットル操作処理Ｍ１８では、目標エンジントルクＴＥ＊の値分のトルクが得られる開口度へとスロットルバルブ１４の開口度を操作すべく、スロットルバルブ１４に操作信号ＭＳ１を出力する処理が行われる。
【００２６】
ＭＧ１指令トルク算出処理Ｍ２０では、内燃機関１０の回転速度ＮＥと目標エンジン回転速度ＮＥ＊とに基づき、回転速度ＮＥを目標エンジン回転速度ＮＥ＊とするために必要な第１モータジェネレータ４２のトルクがＭＧ１指令トルクＴＭ１の値として算出される。そして、第１ＭＧ操作処理Ｍ２２では、第１モータジェネレータ４２のトルクをＭＧ１指令トルクＴＭ１とすべく、インバータ４６に操作信号ＭＳ４を出力する処理が行われる。なお、回転速度ＮＥは、ＣＰＵ６２により、出力信号Ｓｃｒに基づき算出される。ちなみに、回転速度ＮＥは、クランク軸２４の１回転以上の回転角度だけクランク軸２４が回転する際の回転速度の平均値とすることが望ましい。なお、ここでの平均値は、単純平均に限らず、例えば指数移動平均処理でもよく、その場合、１回転以上の回転角度だけクランク軸２４が回転する際の出力信号Ｓｃｒの時系列データに基づき算出されるものとする。
【００２７】
ＭＧ２指令トルク算出処理Ｍ２４では、第１モータジェネレータ４２がＭＧ１指令トルクＴＭ１の値分のトルクを発生している状態で、要求駆動力ＴＰ＊分の駆動力が得られる第２モータジェネレータ４４のトルクが、ＭＧ２指令トルクＴＭ２の値として算出される。そして、第２ＭＧ操作処理Ｍ２６では、第２モータジェネレータ４４のトルクをＭＧ２指令トルクＴＭ２とすべく、インバータ４８に操作信号ＭＳ５を出力する処理が行われる。
【００２８】
制御装置６０は、さらに、内燃機関１０の稼働時において、失火の有無を判定する。
図３に、失火の検出に関する処理の手順を示す。図３に示す処理は、ＲＯＭ６４に記憶された失火用プログラム６４ａをＣＰＵ６２が、例えば所定周期で繰り返し実行することにより実現される。なお、以下では、先頭に「Ｓ」が付与された数字によって、各処理のステップ番号を表現する。
【００２９】
図３に示す一連の処理において、ＣＰＵ６２は、まず、微小回転時間Ｔ３０を取得する（Ｓ１０）。微小回転時間Ｔ３０は、ＣＰＵ６２により、クランク角センサ７２の出力信号Ｓｃｒに基づき、クランク軸２４が３０°ＣＡ回転するのに要する時間を計時することによって算出される。次にＣＰＵ６２は、Ｓ１０の処理において取得した最新の微小回転時間Ｔ３０を、微小回転時間Ｔ３０（０）とし、より過去の値ほど、微小回転時間Ｔ３０（ｍ）の変数「ｍ」を大きい値とする（Ｓ１２）。すなわち、「ｍ＝１，２，３，…」として、Ｓ１２の処理がなされる直前における微小回転時間Ｔ３０（ｍ−１）を微小回転時間Ｔ３０（ｍ）とする。これにより、例えば図３の処理が前回実行されたときにＳ１０の処理により取得された微小回転時間Ｔ３０は、微小回転時間Ｔ３０（１）となる。
【００３０】
次に、ＣＰＵ６２は、Ｓ１０の処理において取得された微小回転時間Ｔ３０が、気筒＃１〜＃４のいずれかの圧縮上死点前３０°ＣＡから圧縮上死点までの角度間隔の回転に要する時間であるか否かを判定する（Ｓ１４）。そしてＣＰＵ６２は、圧縮上死点までの角度間隔の回転に要する時間であると判定する場合（Ｓ１４：ＹＥＳ）、３６０°ＣＡだけ前に圧縮上死点となった気筒の失火の有無を判定すべく、まず、失火の有無の判定処理の入力とする第１波形変数の値を算出する。
【００３１】
すなわち、ＣＰＵ６２は、まず、圧縮上死点前３０°ＣＡから圧縮上死点までの角度間隔に関する微小回転時間Ｔ３０の互いに１８０°だけ離間した値同士の差を気筒間変数ΔＴａとして算出する（Ｓ１６）。詳しくは、ＣＰＵ６２は、「ｍ＝１，２，３，…」として、気筒間変数ΔＴａ（ｍ−１）を、「Ｔ３０（６ｍ−６）−Ｔ３０（６ｍ）」とする。
【００３２】
図４に、気筒間変数ΔＴａを例示する。なお、本実施形態では、気筒＃１、気筒＃３、気筒＃４、気筒＃２の順に圧縮上死点が出現し、その順で燃焼行程となるものを例示している。図４には、Ｓ１０の処理において気筒＃４の圧縮上死点前３０°ＣＡから圧縮上死点までの角度間隔の微小回転時間Ｔ３０（０）を取得することにより、失火の有無の検出対象が気筒＃１である例を示している。この場合、気筒間変数ΔＴａ（０）は、気筒＃４の圧縮上死点と、１つ前に圧縮上死点となった気筒＃３の圧縮上死点とのそれぞれに対応する微小回転時間Ｔ３０同士の差となる。図４には、気筒間変数ΔＴａ（２）が、失火の検出対象となる気筒＃１の圧縮上死点に対応する微小回転時間Ｔ３０（１２）と、気筒＃２の圧縮上死点に対応する微小回転時間Ｔ３０（１８）との差であることを記載している。
【００３３】
図３に戻り、ＣＰＵ６２は、気筒間変数ΔＴａ（０），ΔＴａ（１），ΔＴａ（２），…のうちの互いに７２０°ＣＡだけ離間した値同士の差である気筒間変数ΔＴｂを算出する（Ｓ１８）。詳しくは、ＣＰＵ６２は、「ｍ＝１，２，３，…」として、気筒間変数ΔＴｂ（ｍ−１）を、「ΔＴａ（ｍ−１）−ΔＴａ（ｍ＋３）」とする。
【００３４】
図４に、気筒間変数ΔＴｂを例示する。図４には、気筒間変数ΔＴｂ（２）が、「ΔＴａ（２）−Ｔａ（６）」であることが記載されている。
次に、ＣＰＵ６２は、失火の検出対象となる気筒に対応する気筒間変数ΔＴｂと、それ以外の気筒に対応する気筒間変数ΔＴｂとの相対的な大きさの関係を示す変動パターン変数ＦＬを算出する（Ｓ２０）。本実施形態では、変動パターン変数ＦＬ［０２］，ＦＬ［１２］，ＦＬ［３２］を算出する。
【００３５】
ここで、変動パターン変数ＦＬ［０２］は、「ΔＴｂ（０）／ΔＴｂ（２）」によって定義される。すなわち、変動パターン変数ＦＬ［０２］は、図４の例を用いると、失火の検出対象となる気筒＃１に対応する気筒間変数ΔＴｂ（２）で、その次の次に圧縮上死点となる気筒＃４に対応する気筒間変数ΔＴｂ（０）を除算した値である。また、変動パターン変数ＦＬ［１２］は、「ΔＴｂ（１）／ΔＴｂ（２）」によって定義される。すなわち、変動パターン変数ＦＬ［１２］は、図４の例を用いると、失火の検出対象となる気筒＃１に対応する気筒間変数ΔＴｂ（２）で、その次に圧縮上死点となる気筒＃３に対応する気筒間変数ΔＴｂ（１）を除算した値である。また、変動パターン変数ＦＬ［３２］は、「ΔＴｂ（３）／ΔＴｂ（２）」によって定義される。すなわち、変動パターン変数ＦＬ［３２］は、図４の例を用いると、失火の検出対象となる気筒＃１に対応する気筒間変数ΔＴｂ（２）で、その１つ前に圧縮上死点となっていた気筒＃２に対応する気筒間変数ΔＴｂ（３）を除算した値である。
【００３６】
本実施形態では、こうして算出された気筒間変数ΔＴｂ（２）、及び変動パターン変数ＦＬ［０２］、ＦＬ［１２］、ＦＬ［３２］の値は、各気筒の燃焼トルクの発生期間におけるクランク軸２４の回転速度の気筒間差に関する情報として用いられている。
【００３７】
次に、ＣＰＵ６２は、回転速度ＮＥ、充填効率η、駆動状態変数ＴＭ１（１）〜ＴＭ１（ｑ）、ＴＭ２（１）〜ＴＭ２（ｑ）のそれぞれの値を取得する（Ｓ２２）。なお、駆動状態変数ＴＭ１（１）〜ＴＭ１（ｑ）、ＴＭ２（１）〜ＴＭ２（ｑ）にはそれぞれ下記の値が格納されている。なお、以下の説明における「ｑ」は、２以上の整数として予め定めされた定数を、「Ｎ」は２から定数ｑまでの任意の自然数を、それぞれ示している。
【００３８】
ＣＰＵ６２は、既定のサンプリング周期毎に、操作信号ＭＳ４，ＭＳ５に基づき、第１モータジェネレータ４２のトルク、及び第２モータジェネレータ４４のトルクを取得して、それらの値を駆動状態変数ＴＭ１（１）、及び駆動状態変数ＴＭ２（１）にそれぞれ代入する。また、このときのＣＰＵ６２は、それまでの駆動状態変数ＴＭ１（Ｎ−１）の値を駆動状態変数ＴＭ１（Ｎ）に、それまでの駆動状態変数ＴＭ２（Ｎ−１）の値を駆動状態変数ＴＭ２（Ｎ）にそれぞれ代入する。これにより、駆動状態変数ＴＭ１（１）〜ＴＭ１（ｑ）には上記サンプリング周期毎の第１モータジェネレータ４２のトルクの時系列データが、駆動状態変数ＴＭ２（１）〜ＴＭ２（ｑ）には上記サンプリング周期毎の第２モータジェネレータ４４のトルクの時系列データが、それぞれ格納されることになる。なお、以下の説明では、こうした駆動状態変数ＴＭ１（１）〜ＴＭ１（ｑ）、ＴＭ２（１）〜ＴＭ２（ｑ）を第２波形変数と記載する。
【００３９】
続いて、ＣＰＵ６２は、検出対象となる気筒において失火が生じた確率に関する変数である燃焼状態変数ＰＲを出力する写像の入力変数ｘ（１）〜ｘ（７＋２ｑ）に、Ｓ１８，Ｓ２０の処理によって取得した第１波形変数の値と、Ｓ２２の処理によって取得した変数の値とを代入する（Ｓ２４）。なお、上記のようにＳ２２の処理で値を取得する変数には第２波形変数が含まれる。具体的には、Ｓ２４の処理においてＣＰＵ６２は、入力変数ｘ（１）に気筒間変数ΔＴｂ（２）の値を、入力変数ｘ（２）に変動パターン変数ＦＬ［０２］の値を、入力変数ｘ（３）に変動パターン変数ＦＬ［１２］の値を、入力変数ｘ（４）に変動パターン変数ＦＬ［３２］の値を、それぞれ代入する。また、ＣＰＵ６２は、入力変数ｘ（５）に回転速度ＮＥの値を、入力変数ｘ（６）に充填効率ηの値を、それぞれ代入する。さらに、ＣＰＵ６２は、入力変数ｘ（７）〜ｘ（６＋ｑ）にＴＭ１（１）〜ＴＭ１（ｑ）の各値を、入力変数ｘ（７＋ｑ）〜ｘ（６＋２ｑ）にＴＭ２（１）〜ＴＭ２（ｑ）の各値を、それぞれ代入する。
【００４０】
次にＣＰＵ６２は、図１に示す記憶装置６６に記憶された写像データ６６ａによって規定される写像に入力変数ｘ（１）〜ｘ（６＋２ｑ）の値を入力することによって、同写像の出力値である燃焼状態変数ＰＲの値を算出する（Ｓ２６）。
【００４１】
本実施形態において、この写像は、中間層が１層のニューラルネットワークによって構成されている。上記ニューラルネットワークは、入力側係数ｗＦｊｋ（ｊ＝０〜ｎ，ｋ＝０〜７＋２ｑ）と、入力側係数ｗＦｊｋによって規定される線形写像である入力側線形写像の出力のそれぞれを非線形変換する入力側非線形写像としての活性化関数ｈ（ｘ）を含む。本実施形態では、活性化関数ｈ（ｘ）として、ＲｅＬＵを例示する。なお、ＲｅＬＵは、入力と「０」とのうちの小さく無い方を出力する関数である。ちなみに、ｗＦｊ０等は、バイアスパラメータであり、入力変数ｘ（０）は、「１」と定義されている。なお、以下の説明では、同写像を検出用写像と記載する。
【００４２】
また、上記ニューラルネットワークは、出力側係数ｗＳｉｊ（ｉ＝１〜２，ｊ＝０〜ｎ）と、出力側係数ｗＳｉｊによって規定される線形写像である出力側線形写像の出力である原型変数ｙＲ（１），ｙＲ（２）のそれぞれを入力として、燃焼状態変数ＰＲを出力するソフトマックス関数を含む。これにより、本実施形態において、燃焼状態変数ＰＲは、実際に失火が生じたことのもっともらしさの大小を「０」よりも大きく「１」よりも小さい所定領域内で連続的な値として定量化したものとなる。
【００４３】
次に、ＣＰＵ６２は、燃焼状態変数ＰＲの値が判定値ＰＲｔｈ以上であるか否かを判定する（Ｓ２８）。そしてＣＰＵ６２は、判定値ＰＲｔｈ以上であると判定する場合（Ｓ２８：ＹＥＳ）、カウンタＣＲをインクリメントする（Ｓ３０）。そして、ＣＰＵ６２は、Ｓ２８の処理が最初に実行された時点、又は後述のＳ３６の処理がなされた時点から所定期間が経過したか否かを判定する（Ｓ３２）。ここで所定期間は、１燃焼サイクルの期間よりも長く、望ましくは、１燃焼サイクルの１０倍以上の長さを有することが望ましい。
【００４４】
ＣＰＵ６２は、所定期間が経過したと判定する場合（Ｓ３２：ＹＥＳ）、カウンタＣＲが閾値ＣＲｔｈ以上であるか否かを判定する（Ｓ３４）。この処理は、許容範囲を超える頻度で失火が生じたか否かを判定する処理である。ＣＰＵ６２は、閾値ＣＲｔｈ未満であると判定する場合（Ｓ３４：ＮＯ）、カウンタＣＲを初期化する（Ｓ３６）。これに対し、ＣＰＵ６２は、閾値ＣＲｔｈ以上であると判定する場合（Ｓ３４：ＹＥＳ）、異常に対処することをユーザに促すべく、図１に示す警告灯７８を操作する報知処理を実行する（Ｓ３８）。
【００４５】
なお、ＣＰＵ６２は、Ｓ３６，Ｓ３８の処理が完了する場合や、Ｓ１４，Ｓ２８，Ｓ３２の処理において否定判定する場合には、図３に示す一連の処理を一旦終了する。
ちなみに、上記写像データ６６ａは、例えば次のようにして生成されたものである。すなわち、テストベンチにてクランク軸２４にダイナモメータを接続した状態で内燃機関１０を稼働させ、気筒＃１〜＃４のそれぞれにおいて要求される燃料を噴射すべきタイミングのうちランダムに選択したタイミングでは燃料噴射を停止させる。そして燃料の噴射を停止させた気筒においては燃焼状態変数ＰＲの値を「１」としたデータを教師データとし、燃料の噴射を停止させていない気筒においては、燃焼状態変数ＰＲの値を「０」としたデータを教師データに含める。そして、都度の第１波形変数やＳ２２の処理によって取得する変数の値を用いて、Ｓ２４，Ｓ２６の処理と同様の処理によって、燃焼状態変数ＰＲの値を算出する。こうして算出された燃焼状態変数ＰＲの値と教師データとの差を縮めるように、上記入力側係数ｗＦｊｋや出力側係数ｗＳｉｊの値を学習する。具体的には、例えば公差エントロピーを最小化するように、入力側係数ｗＦｊｋや出力側係数ｗＳｉｊの値を学習すればよい。なお、第１モータジェネレータ４２及び第２モータジェネレータ４４のトルクは、ダイナモメータがクランク軸２４に付与するトルクによって模擬できる。このように、機械学習を用いることにより、様々な動作点を取るようにしつつ内燃機関１０を比較的自由に稼働することによって生成される教師データを用いて写像データ６６ａを学習可能である。このため、様々な動作点毎に、失火の有無におけるクランク軸２４の挙動の検知に基づきマップデータを適合する場合と比較すると、適合工数を軽減できる。
【００４６】
ここで、本実施形態の作用及び効果について説明する。
ＣＰＵ６２は、上述した第１波形変数及び第２波形変数の値に基づき燃焼状態変数ＰＲの値を算出することによって、失火の有無を判定する。なお、上述のように第１波形変数は、各気筒の燃焼トルクの発生期間におけるクランク軸２４の回転速度の気筒間差に関する情報を含む変数とされている。また、第２波形変数は、第１モータジェネレータ４２及び第２モータジェネレータ４４のトルクの時系列データを示す変数とされている。
【００４７】
内燃機関１０で失火が生じると、各気筒の燃焼トルクに差異が生じて、微小回転時間Ｔ３０の変動が大きくなる。一方、ハイブリッド車両ＶＣに搭載された内燃機関１０のクランク軸２４は、第１モータジェネレータ４２及び第２モータジェネレータ４４が機械的に連結されており、それらの駆動状態がクランク軸２４の回転挙動に影響する。第１モータジェネレータ４２及び第２モータジェネレータ４４の駆動状態、例えばそれらのトルクが同じでも、そのときの内燃機関１０の運転状態が異なれば、第１モータジェネレータ４２及び第２モータジェネレータ４４の駆動状態がクランク軸２４の回転挙動に与える影響の度合いは変わる。また、第１モータジェネレータ４２及び第２モータジェネレータ４４の駆動状態の変化に対するクランク軸２４の回転挙動の変化は遅れを伴ったものとなる。
【００４８】
これに対して本実施形態では、燃焼トルクの発生期間におけるクランク軸２４の回転速度の気筒間差の情報を含む変数である第１波形変数、及び第１モータジェネレータ４２及び第２モータジェネレータ４４のトルクの時系列データを示す変数である第２波形変数を、検出用写像への入力に含めている。そして、機械学習により学習されたパラメータに基づくそれら第１波形変数及び第２波形変数の結合演算により算出した燃焼状態変数ＰＲの値に基づき、失火の有無を判定している。ここでのパラメータは、上記のような第１波形変数及び第２波形変数のそれぞれが様々な値を取るときの失火の有無に基づき学習できる。そのため、第１モータジェネレータ４２、及び第２モータジェネレータ４４の駆動状態がクランク軸２４の回転挙動に与える影響を踏まえたかたちで失火検出を実施できる。したがって、クランク軸２４に第１モータジェネレータ４２及び第２モータジェネレータ４４が機械的に連結された内燃機関１０における失火の検出精度を向上できる。
【００４９】
以上説明した本実施形態によれば、さらに以下に記載する作用効果が得られる。
（１）内燃機関１０の動作点を規定する動作点変数としての回転速度ＮＥ及び充填効率ηを検出用写像の入力とした。燃料噴射弁２０や点火装置２２等の内燃機関１０の操作部の操作量は、内燃機関１０の動作点に基づき定められる傾向がある。そのため、動作点変数は、各操作部の操作量に関する情報を含む変数である。したがって、動作点変数を検出用写像の入力とすることにより、各操作部の操作量に関する情報に基づき燃焼状態変数ＰＲの値を算出することができ、ひいては操作量によるクランク軸２４の回転挙動の変化を反映して燃焼状態変数ＰＲの値をより高精度に算出することができる。
【００５０】
また、動作点変数を入力変数とすることにより、第１波形変数と動作点変数との、機械学習によって学習されたパラメータである入力側係数ｗＦｊｋによる結合演算によって燃焼状態変数ＰＲの値が算出される。このため、動作点変数毎に適合値を適合する必要が生じない。これに対し、例えば気筒間変数ΔＴｂと判定値との大小比較をする場合には、判定値を動作点変数毎に適合する必要が生じることから、適合工数が大きくなる。
【００５１】
（２）第１モータジェネレータ４２及び第２モータジェネレータ４４のトルクの時系列データを示す変数である第２波形変数を、検出用写像の入力変数に含めた。これにより、第１モータジェネレータ４２及び第２モータジェネレータ４４の駆動状態がクランク軸２４の回転変動に与える影響を反映した値として燃焼状態変数ＰＲの値を算出することが、ひいては同影響を反映しての高精度の失火検出が可能となる。
【００５２】
（３）入力変数ｘとなる第１波形変数を、微小回転時間Ｔ３０のうちの圧縮上死点付近の値を選択的に用いて生成した。失火の有無で相違が最も生じるのは、微小回転時間Ｔ３０のうちの圧縮上死点付近の値である。そのため、微小回転時間Ｔ３０のうちの圧縮上死点付近の値を選択的に用いることにより、入力変数ｘの次元が大きくなることを抑制しつつも、失火の有無の判定に必要な情報を極力取り込むことができる。
【００５３】
（４）第１波形変数に、気筒間変数ΔＴｂ（２）を含めた。気筒間変数ΔＴｂ（２）は、失火の検出対象となる気筒とこれに隣接する気筒との圧縮上死点付近の微小回転時間Ｔ３０同士の差を予め１次元で定量化したものである。そのため、小さい次元数の変数で失火の有無の判定に必要な情報を効率的に取り込むことができる。
【００５４】
（５）第１波形変数に、気筒間変数ΔＴｂ（２）のみならず、変動パターン変数ＦＬを含めた。クランク軸２４には、路面からの振動等が重畳することから、第１波形変数を気筒間変数ΔＴｂ（２）のみとする場合には、誤判定が生じる懸念がある。これに対し、本実施形態では、気筒間変数ΔＴｂ（２）に加えて、変動パターン変数ＦＬを用いて燃焼状態変数ＰＲの値を算出することにより、気筒間変数ΔＴｂ（２）のみから算出する場合と比較して、燃焼状態変数ＰＲの値を、失火が生じたもっともらしさの度合い（確率）をより高精度に示す値とすることができる。
【００５５】
しかも、本実施形態では、機械学習によって学習されたパラメータである入力側係数ｗＦｊｋによる気筒間変数ΔＴｂ（２）と変動パターン変数ＦＬとの結合演算によって燃焼状態変数ＰＲの値を算出する。そのため、気筒間変数ΔＴｂ（２）と判定値との比較と、変動パターン変数ＦＬと判定値との比較とに基づき失火の有無を判定する場合と比較して、気筒間変数ΔＴｂ（２）及び変動パターン変数ＦＬと失火とのより詳細な関係に基づき失火の有無を判定することができる。
【００５６】
（第２実施形態）
以下、第２実施形態について、第１実施形態との相違点を中心に図面を参照しつつ説明する。
【００５７】
本実施形態では、燃焼状態変数ＰＲの算出処理を車両の外部で行う。
図５に本実施形態に係る状態検出システムを示す。なお、図５において、図１に示した部材に対応する部材については、便宜上同一の符号を付している。
【００５８】
図５に示すハイブリッド車両ＶＣ内の制御装置６０は、通信機６９を備えている。通信機６９はハイブリッド車両ＶＣの外部のネットワーク８０を介してセンター９０と通信するための機器である。
【００５９】
センター９０は、複数のハイブリッド車両ＶＣから送信されるデータを解析する。センター９０は、ＣＰＵ９２、ＲＯＭ９４、記憶装置９６、周辺回路９７及び通信機９９を備えており、それらがバス９８を通じて通信可能とされるものである。記憶装置９６には、写像データ９６ａが記憶されている。本実施形態では、こうしたセンター９０と、ハイブリッド車両ＶＣの制御装置６０と、により状態検出システムが構成されている。
【００６０】
図６及び図７に、本実施形態に係る失火の検出に関する処理の手順を示す。図６に示す処理は、図５に示すＲＯＭ６４に記憶されている失火用サブプログラム６４ｂをＣＰＵ６２が実行することにより実現される。また、図７に示す処理は、ＲＯＭ９４に記憶されている失火用メインプログラム９４ａをＣＰＵ９２が実行することにより実現される。なお、図６及び図７において図３に示した処理に対応する処理については、便宜上同一のステップ番号を付している。以下では、失火検出処理の時系列に沿って、図６及び図７に示す処理を説明する。
【００６１】
すなわち、ハイブリッド車両ＶＣにおいてＣＰＵ６２は、図６に示すＳ１４の処理において肯定判定する場合、微小回転時間Ｔ３０（０），Ｔ３０（６），Ｔ３０（１２），Ｔ３０（１８），Ｔ３０（２４），Ｔ３０（３０），Ｔ３０（３６），Ｔ３０（４２），Ｔ３０（４８）を取得する（Ｓ５０）。これら微小回転時間Ｔ３０は、互いに異なる角度間隔のそれぞれにおける微小回転時間Ｔ３０同士の相違に関する情報を含む変数である第１波形変数を構成する。特に、上記微小回転時間Ｔ３０は、圧縮上死点前３０°ＣＡから圧縮上死点までの角度間隔の回転に要する時間であり、しかも、圧縮上死点の出現タイミングの９回分の値である。そのため、それら微小回転時間Ｔ３０の組データは、互いに異なる圧縮上死点のそれぞれに対応した微小回転時間Ｔ３０同士の相違に関する情報を示す変数となっている。なお、上記の９個の微小回転時間Ｔ３０は、気筒間変数ΔＴｂ（２）、及び変動パターン変数ＦＬ［０２］，ＦＬ［１２］，ＦＬ［３２］を算出するときに用いた微小回転時間Ｔ３０の全てである。
【００６２】
次に、ＣＰＵ６２は、Ｓ２２の処理を実行した後、通信機６９を操作することによって、それらＳ５０，Ｓ２２の処理において取得したデータを、ハイブリッド車両ＶＣの識別情報とともにセンター９０に送信する（Ｓ５２）。なお、以下の説明では、ハイブリッド車両ＶＣの識別情報を車両ＩＤと記載する。
【００６３】
これに対し、センター９０のＣＰＵ９２は、図７に示すように、送信されたデータを受信する（Ｓ６０）。そして、ＣＰＵ９２は、Ｓ６０の処理によって取得した変数の値を入力変数ｘ（１）〜ｘ（１１＋２ｑ）に代入する（Ｓ６２）。すなわち、ＣＰＵ６２は、微小回転時間Ｔ３０（０），Ｔ３０（６），Ｔ３０（１２），Ｔ３０（１８），Ｔ３０（２４），Ｔ３０（３０），Ｔ３０（３６），Ｔ３０（４２），Ｔ３０（４８）の各値を、入力変数ｘ（１）〜ｘ（９）にそれぞれ代入する。またＣＰＵ９２は、入力変数ｘ（１０）に回転速度ＮＥの値を、入力変数ｘ（１１）に充填効率ηの値を、それぞれ代入する。さらにＣＰＵ６２は、駆動状態変数ＴＭ１（１）〜ＴＭ１（ｑ）の値を入力変数ｘ（１２）〜ｘ（１１＋ｑ）に、駆動状態変数ＴＭ２（１）〜ＴＭ２（ｑ）の値を入力変数ｘ（１２＋ｑ）〜ｘ（１１＋２ｑ）に、それぞれ代入する。
【００６４】
次にＣＰＵ９２は、図５に示す記憶装置９６に記憶された写像データ９６ａによって規定される検出用写像に入力変数ｘ（１）〜ｘ（１１＋２ｑ）を入力することによって、検出用写像の出力値である燃焼状態変数ＰＲの値を算出する（Ｓ６４）。
【００６５】
本実施形態において、この検出用写像は、中間層が「α」個であり、各中間層の活性化関数ｈ１〜ｈαがＲｅＬＵであり、かつ出力層の活性化関数がソフトマックス関数であるニューラルネットワークによって構成されている。例えば第１中間層の各ノードの値は、係数ｗ（１）ｊｉ（ｊ＝０〜ｎ１，ｉ＝０〜１１＋２ｑ）によって規定される線形写像に上記入力変数ｘ（１）〜ｘ（１１＋２ｑ）を入力した際の出力を活性化関数ｈ１に入力することによって生成される。すなわち、ｍ＝１，２，…，αとすると、第ｍ中間層の各ノードの値は、係数ｗ（ｍ）によって規定される線形写像の出力を活性化関数ｈｍに入力することによって生成される。図７において、ｎ１，ｎ２，…，ｎαは、それぞれ、第１、第２、…、第αの各中間層のノード数である。ちなみに、ｗ（１）ｊ０等は、バイアスパラメータであり、入力変数ｘ（０）は、「１」と定義されている。
【００６６】
次に、ＣＰＵ９２は、通信機９９を操作することによって、Ｓ６０の処理によって受信したデータが送信されたハイブリッド車両ＶＣに、燃焼状態変数ＰＲの値を示す信号を送信し（Ｓ６６）、図７に示す一連の処理を一旦終了する。これに対し、図６に示すように、ＣＰＵ６２は、燃焼状態変数ＰＲの値を受信し（Ｓ５４）、Ｓ２８〜Ｓ３８の処理を実行する。
【００６７】
このように、本実施形態では、センター９０においてＳ６４の処理を実行するため、ＣＰＵ６２の演算負荷を軽減できる。
（第３実施形態）
以下、第３実施形態について、上述の実施形態との相違点を中心に図面を参照しつつ説明する。
【００６８】
上述の各実施形態の状態検出システムは、内燃機関１０で失火が生じた状態を、クランク軸２４の回転変動に基づき検出するシステムとして構成されていた。空燃比に気筒間のばらつきが生じた、気筒間空燃比インバランスが発生した場合にも、気筒間の燃焼状態のばらつきが生じてクランク軸２４の回転変動が大きくなる。本実施形態の状態検出システムは、こうした気筒間空燃比インバランスを検出するシステムとして構成されている。なお、本実施形態の状態検出システムの構成は、図１に示した構成と基本的に同じである。ただし、本実施形態の状態検出システムのＲＯＭ６４には、図１に示す失火用プログラム６４ａの代わりに、気筒間空燃比インバランスの検出用プログラムが格納されている。
【００６９】
図８に、気筒間空燃比インバランスの検出に関する処理の手順を示す。図８に示す処理は、ＲＯＭ６４に記憶された上述の検出用プログラムをＣＰＵ６２が既定の制御周期毎に繰り返し実行することにより実現される。
【００７０】
図８に示す一連の処理において、ＣＰＵ６２は、まず、インバランスの検出処理の実行条件が成立するか否かを判定する（Ｓ８０）。実行条件には、内燃機関１０の吸気に対する燃料蒸気のパージや排気の再循環が実施されていないことが含まれる。
【００７１】
次に、ＣＰＵ６２は、微小回転時間Ｔ３０（１），Ｔ３０（２），…，Ｔ３０（２４）、上流側平均値Ａｆｕａｖｅ（１），Ａｆｕａｖｅ（２），…，Ａｆｕａｖｅ（２４）、回転速度ＮＥ、充填効率η、０．５次振幅Ａｍｐｆ／２、及び上述の駆動状態変数ＴＭ１（１）〜ＴＭ１（ｑ）、ＴＭ２（１）〜ＴＭ２（ｑ）のそれぞれの値を取得する（Ｓ８２）。なお、ｍ＝１〜２４とすると、上流側平均値Ａｆｕａｖｅ（ｍ）は、各微小回転時間Ｔ３０（ｍ）と同一の３０°ＣＡの角度間隔における上流側検出値Ａｆｕの平均値である。また、０．５次振幅Ａｍｐｆ／２はクランク軸２４の回転周波数の０．５次成分の強度であり、ＣＰＵ６２により、微小回転時間Ｔ３０の上記時系列データのフーリエ変換によって算出される。
【００７２】
次にＣＰＵ６２は、インバランス率Ｒｉｖを出力する検出用写像の入力変数ｘ（１）〜ｘ（５１＋２ｑ）に、Ｓ１２の処理によって取得した値を代入する（Ｓ８４）。詳しくは、ＣＰＵ６２は、「ｍ＝１〜２４」として、入力変数ｘ（ｍ）に微小回転時間Ｔ３０（ｍ）の値を、入力変数ｘ（２４＋ｍ）に上流側平均値Ａｆｕａｖｅ（ｍ）の値を、入力変数ｘ（４９）に回転速度ＮＥの値を、入力変数ｘ（５０）に充填効率ηの値を、入力変数ｘ（５１）に０．５次振幅Ａｍｐｆ／２の値を、それぞれ代入する。また、ＣＰＵ６２は、入力変数ｘ（５２）〜ｘ（５１＋ｑ）に駆動状態変数ＴＭ１（１）〜ＴＭ１（ｑ）の値を、入力変数ｘ（５２＋ｑ）〜ｘ（５１＋２ｑ）に駆動状態変数ＴＭ２（１）〜ＴＭ２（ｑ）の値を、それぞれ代入する。
【００７３】
本実施形態において、インバランス率Ｒｉｖは、狙いとする噴射量の燃料が噴射されている気筒において「０」とし、狙いとする噴射量よりも実際の噴射量が多い場合に正の値となり、少ない場合に負の値となる。
【００７４】
次にＣＰＵ６２は、図１に示す記憶装置６６に記憶された写像データ６６ａによって規定される検出用写像に入力変数ｘ（１）〜ｘ（５１＋２ｑ）の値を入力することによって、気筒＃ｉ（ｉ＝１〜４）のそれぞれのインバランス率Ｒｉｖ（１）〜Ｒｉｖ（４）の値を算出する（Ｓ８６）。
【００７５】
本実施形態において、この検出用写像は、中間層が１層のニューラルネットワークによって構成されている。上記ニューラルネットワークは、入力側係数ｗＦｊｋ（ｊ＝０〜ｎ，ｋ＝０〜５１＋２ｑ）と、入力側係数ｗＦｊｋによって規定される線形写像である入力側線形写像の出力のそれぞれを非線形変換する入力側非線形写像としての活性化関数ｈ（ｘ）を含む。本実施形態では、活性化関数ｈ（ｘ）として、ハイパボリックタンジェント「ｔａｎｈ（ｘ）」を例示する。また、上記ニューラルネットワークは、出力側係数ｗＳｉｊ（ｉ＝１〜４，ｊ＝０〜ｎ）と、出力側係数ｗＳｉｊによって規定される線形写像である出力側線形写像の出力のそれぞれを非線形変換する出力側非線形写像としての活性化関数ｆ（ｘ）を含む。本実施形態では、活性化関数ｆ（ｘ）として、ハイパボリックタンジェント「ｔａｎｈ（ｘ）」を例示する。なお、値ｎは、中間層の次元を示すものである。
【００７６】
なお、ＣＰＵ６２は、Ｓ８６の処理が完了する場合や、Ｓ８０の処理において否定判定する場合には、図８に示す一連の処理を一旦終了する。
図９に、上記インバランス率Ｒｉｖ（ｉ）を利用する処理の手順を示す。図９に示す処理は、図１に示すＲＯＭ６４に記憶された対処プログラムをＣＰＵ６２が、例えばインバランス率Ｒｉｖ（ｉ）が算出される都度、繰り返し実行することにより実現される。
【００７７】
図９に示す一連の処理において、ＣＰＵ６２は、まず、図８の処理によって新たに算出されたインバランス率Ｒｉｖ（ｉ）の値を入力とする指数移動平均処理によって、インバランス学習値Ｌｉｖ（ｉ）を更新する（Ｓ９０）。具体的には、ＣＰＵ６２は、記憶装置６６に記憶されているインバランス学習値Ｌｉｖ（ｉ）に係数αを乗算した値と、インバランス率Ｒｉｖ（ｉ）に「１−α」を乗算した値との和によって、インバランス学習値Ｌｉｖを更新する（Ｓ９０）。なお、「０＜α＜１」である。
【００７８】
次にＣＰＵ６２は、インバランス学習値Ｌｉｖ（ｉ）が、リーン側許容限界値ＬＬ以上であって、かつリッチ側許容限界値ＬＨ以下であるか否かを判定する（Ｓ９２）。ＣＰＵ６２は、インバランス学習値Ｌｉｖ（ｉ）が、リーン側許容限界値ＬＬ未満であると判定する場合やリッチ側許容限界値よりも大きいと判定する場合には（Ｓ９２：ＮＯ）、ユーザに修理を促すべく、警告灯７８を操作して報知処理を実行する（Ｓ９４）。
【００７９】
一方、ＣＰＵ６２は、リーン側許容限界値ＬＬ以上であって、かつリッチ側許容限界値ＬＨ以下であると判定する場合（Ｓ９２：ＹＥＳ）や、Ｓ９４の処理が完了する場合には、各気筒の要求噴射量Ｑｄ（＃ｉ）を補正する（Ｓ９６）。すなわち、ＣＰＵ６２は、各気筒の要求噴射量Ｑｄ（＃ｉ）に、インバランス学習値Ｌｉｖ（ｉ）に応じた補正量ΔＱｄ（Ｌｉｖ（ｉ））を加算することによって要求噴射量Ｑｄ（＃ｉ）を補正する。ここで、補正量ΔＱｄ（Ｌｉｖ（ｉ））は、インバランス学習値Ｌｉｖ（ｉ）がゼロよりも大きい場合には、負の値となり、ゼロよりも小さい場合には、正の値となる。なお、インバランス学習値Ｌｉｖ（ｉ）がゼロの場合、補正量ΔＱｄ（Ｌｉｖ（ｉ））もゼロとされる。
【００８０】
なお、ＣＰＵ６２は、Ｓ９６の処理を完了する場合、図９に示す一連の処理を一旦終了する。ちなみに、本実施形態では、Ｓ８０の処理において肯定判定されてＳ８２の処理を実行する場合には、Ｓ９６の処理を一旦停止することとする。
【００８１】
ちなみに、本実施形態における上記写像データ６６ａは、例えば次のようにして生成されたものである。
まず、予め単体での計測によって、インバランス率Ｒｉｖがゼロとは異なる様々な値を取る複数の燃料噴射弁２０と、インバランス率がゼロである３個の燃料噴射弁２０とを用意する。そして、インバランス率がゼロの燃料噴射弁２０を３個、インバランス率がゼロとは異なる燃料噴射弁２０を１個搭載した内燃機関１０を、テストベンチにてクランク軸２４にダイナモメータを接続した状態で稼働させる。なお、搭載された燃料噴射弁２０のそれぞれのインバランス率Ｒｉｖｔが、教師データとなっている。
【００８２】
そして、都度の第１波形変数やＳ８２の処理によって取得する変数の値を用いて、Ｓ８４，Ｓ８６の処理と同様の処理によって、インバランス率Ｒｉｖｔの値を算出する。こうして算出されたインバランス率Ｒｉｖｔの値と教師データとの差を縮めるように、上記入力側係数ｗＦｊｋや出力側係数ｗＳｉｊの値を学習する。具体的には、例えば公差エントロピーを最小化するように、入力側係数ｗＦｊｋや出力側係数ｗＳｉｊの値を学習すればよい。なお、第１モータジェネレータ４２及び第２モータジェネレータ４４のトルクは、ダイナモメータがクランク軸２４に付与するトルクによって模擬できる。
【００８３】
本実施形態では、第１モータジェネレータ４２及び第２モータジェネレータ４４のトルクの時系列データを示す変数である第２波形変数を、検出用写像への入力に含めている。そのため、第１モータジェネレータ４２、及び第２モータジェネレータ４４の駆動状態がクランク軸２４の回転挙動に与える影響を反映した値としてインバランス率Ｒｉｖｔを算出できる。したがって、クランク軸２４に第１モータジェネレータ４２及び第２モータジェネレータ４４が機械的に連結された内燃機関１０における気筒間空燃比インバランスの検出精度を向上できる。
【００８４】
（対応関係）
上記実施形態における事項と、上記「課題を解決するための手段」の欄に記載した事項との対応関係は、次の通りである。記憶装置は、記憶装置６６に対応する。第１波形変数は、気筒間変数ΔＴｂ（２）、及び変動パターン変数ＦＬ［０２］，ＦＬ［１２］，ＦＬ［３２］に対応する。第１実行装置は、ＣＰＵ６２及びＲＯＭ６４に対応する。第２実行装置は、ＣＰＵ９２及びＲＯＭ９４に対応する。取得処理はＳ５０，Ｓ２２，Ｓ８２の処理に、車両側受信処理はＳ５４の処理に、それぞれ対応する。外部側受信処理はＳ６０の処理に、出力値算出処理はＳ６２，Ｓ６４，Ｓ８６の処理に、外部側送信処理はＳ６６の処理に、判定処理はＳ２８，Ｓ３０，Ｓ３４，Ｓ９２の処理に、それぞれ対応する。データ解析装置は、センター９０に対応する。
【００８５】
また、第１実施形態及び第２実施形態では失火が生じた状態が、第３実施形態では気筒間の空燃比のばらつきが生じた状態が、既定の運転状態にそれぞれ対応する。さらに、第３実施形態では、インバランス率Ｒｉｖｔが燃焼状態変数に対応する。
【００８６】
（その他の実施形態）
なお、本実施形態は、以下のように変更して実施することができる。本実施形態及び以下の変更例は、技術的に矛盾しない範囲で互いに組み合わせて実施することができる。
【００８７】
・「気筒間変数について」
気筒間変数ΔＴｂとしては、互いに圧縮上死点の出現タイミングが隣接する一対の気筒のそれぞれの圧縮上死点に対応する微小回転時間Ｔ３０同士の差の７２０°ＣＡだけ離間した値同士の差に限らない。例えば互いに圧縮上死点の出現タイミングが３６０°ＣＡだけ離間した気筒のそれぞれの圧縮上死点に対応する微小回転時間Ｔ３０同士の差の７２０°ＣＡだけ離間した値同士の差であってもよい。この場合、気筒間変数ΔＴｂ（２）は、「Ｔ３０（１２）−Ｔ３０（２４）−｛Ｔ３０（３６）−Ｔ３０（４８）｝」となる。
【００８８】
また、一対の気筒のそれぞれの圧縮上死点に対応する微小回転時間Ｔ３０同士の差の７２０°ＣＡだけ離間した値同士の差に限らず、失火の検出対象となる気筒と、それ以外の気筒とのそれぞれの圧縮上死点に対応する微小回転時間Ｔ３０同士の差であってもよい。
【００８９】
また、例えば気筒間変数を、一対の気筒のそれぞれの圧縮上死点に対応する微小回転時間Ｔ３０同士の比としてもよい。
なお、気筒間変数ΔＴｂを定義する際の微小回転時間としては、３０°ＣＡの回転に要する時間に限らず、例えば４５°ＣＡの回転に要する時間等であってもよい。この際、微小回転時間は、圧縮上死点の出現間隔以下の角度間隔の回転に要する時間であることが望ましい。
【００９０】
さらに、上記において、微小回転時間に代えて、所定の角度間隔の回転に要する時間によって所定の角度間隔を除算した瞬時回転速度を用いてもよい。
・「変動パターン変数について」
変動パターン変数の定義としては、上記実施形態において例示したものに限らない。例えば気筒間変数ΔＴｂを、「気筒間変数について」の欄において例示したもの等に変更することによって、変動パターン変数の定義を変更してもよい。
【００９１】
さらに、互いに異なる圧縮上死点の出現タイミングに対応した気筒間変数ΔＴｂ同士の比として変動パターン変数を定義することも必須では無く、比の代わりに差をとってもよい。この場合であっても、内燃機関１０の動作点変数を入力に含めることにより、変動パターン変数の大きさが、動作点に応じて変化することを反映して燃焼状態変数ＰＲの値を算出できる。
【００９２】
・「第２波形変数について」
上記実施形態では、第１モータジェネレータ４２及び第２モータジェネレータ４４のトルクの時系列データを示す変数を第２波形変数として用いていたが、それらのトルクの変化量の時系列データを示す変数を第２波形変数として用いるようにしてもよい。また、第１モータジェネレータ４２及び第２モータジェネレータ４４のうちのいずれか一方のみのトルクの時系列データを示す変数を第２波形変数として用いるようにしてもよい。例えば、第２モータジェネレータ４４の駆動状態がクランク軸２４の回転挙動に与える影響が、第１モータジェネレータ４２の駆動状態がクランク軸２４の回転挙動に与える影響に比べて小さい場合等には、第１モータジェネレータ４２のトルクの時系列データのみを第２波形変数として用いても、失火や気筒間空燃比インバランスの検出精度を確保できる場合がある。
【００９３】
・「モータジェネレータの駆動状態を表す状態量について」
上記実施形態では、モータジェネレータのトルクを上記状態量として用いていたが、それらモータジェネレータの回転速度、電圧、電流値等を上記状態量として用いるようにしてもよい。
【００９４】
・「第１波形変数について」
Ｓ２６の処理では、気筒間変数ΔＴｂ（２）及び変動パターン変数ＦＬ［０２］，ＦＬ［１２］，ＦＬ［３２］によって第１波形変数を構成したが、これに限らない。例えば第１波形変数を構成する変動パターン変数を、変動パターン変数ＦＬ［０２］，ＦＬ［１２］，ＦＬ［３２］のいずれか１つ、又は２つとしてもよい。また、例えば変動パターン変数ＦＬ［０２］，ＦＬ［１２］，ＦＬ［３２］，ＦＬ［４２］等、４つ以上の変動パターン変数を含めてもよい。
【００９５】
Ｓ６４の処理では、互いに圧縮上死点の出現タイミングが異なる９個のタイミングのそれぞれに対応した微小回転時間Ｔ３０によって第１波形変数を構成したが、これに限らない。例えば失火の検出対象となる気筒の圧縮上死点を中央として、圧縮上死点の出現する角度間隔の２倍以上の区間を３０°ＣＡの間隔で分割したそれぞれにおける微小回転時間Ｔ３０によって第１波形変数を構成してもよい。また上記において、失火の検出対象となる気筒の圧縮上死点を中央とすることは必須では無い。さらに、ここでの微小回転時間としては、３０°ＣＡの間隔の回転に要する時間に限らない。また、微小回転時間に代えて、所定の角度間隔の回転に要する時間によって所定の角度間隔を除算した瞬時回転速度を用いてもよい。
【００９６】
・「動作点変数について」
動作点変数としては、回転速度ＮＥ及び充填効率ηに限らない。例えば吸入空気量Ｇａと回転速度ＮＥとであってもよい。また、例えば下記「内燃機関について」の欄に記載したように、圧縮着火式内燃機関を用いる場合、噴射量と回転速度ＮＥとであってもよい。なお、動作点変数を検出用写像の入力とすることは必須では無い。例えば下記「車両について」の欄に記載したシリーズハイブリッド車に搭載される内燃機関に適用される場合において、内燃機関が特定の動作点に限って運転される場合等には、動作点変数を入力変数に含めなくても、燃焼状態変数ＰＲの値を高精度に算出できる。
【００９７】
・「外部側送信処理について」
Ｓ６６の処理では、燃焼状態変数ＰＲの値を送信したが、これに限らない。例えば出力活性化関数としてのソフトマックス関数の入力となる原型変数ｙＲ（１），ｙＲ（２）の値を送信してもよい。また、例えばセンター９０においてＳ２８〜Ｓ３６の処理を実行することとし、異常があるか否かの判定結果を送信してもよい。
【００９８】
・「対処処理について」
上記実施形態では、警告灯７８を操作することによって、視覚情報を通じて失火が生じた旨を報知したが、これに限らない。例えばスピーカを操作することによって、聴覚情報を通じて失火が生じた旨を報知してもよい。また、例えば図１に示す制御装置６０が通信機６９を備えることとし、通信機６９を操作してユーザの携帯端末に失火が生じた旨の信号を送信する処理としてもよい。これは、ユーザの携帯端末に、報知処理を実行するアプリケーションプログラムをインストールしておくことにより実現できる。
【００９９】
対処処理としては、報知処理に限らない。例えば内燃機関１０の燃焼室１８内の混合気の燃焼を制御するための操作部を失火が生じた旨の情報に応じて操作する操作処理であってもよい。具体的には、例えば操作部を点火装置２２として失火が生じた気筒の点火時期を進角させてもよい。また、例えば操作部を燃料噴射弁２０として、失火が生じた気筒の燃料噴射量を増量させてもよい。
【０１００】
・「検出用写像への入力について」
ニューラルネットワークへの入力や、下記「機械学習のアルゴリズムについて」の欄に記載した回帰式への入力等としては、各次元が単一の物理量や変動パターン変数ＦＬからなるものに限らない。例えば上記実施形態等において検出用写像への入力とした複数種類の物理量や変動パターン変数ＦＬの一部については、ニューラルネットワークや回帰式への直接の入力とする代わりに、それらの主成分分析によるいくつかの主成分を、ニューラルネットワークや回帰式への直接の入力としてもよい。もっとも、主成分をニューラルネットワークや回帰式の入力とする場合に、ニューラルネットワークや回帰式への入力の一部のみが主成分となることは必須では無く、全部を主成分としてもよい。なお、主成分を検出用写像への入力とする場合、写像データ６６ａ，９６ａには、主成分を定める検出用写像を規定するデータが含まれることとなる。
【０１０１】
・「写像データについて」
車両において実行される演算に用いられる写像を規定する写像データを、Ｓ６４の処理において例示した写像を規定するデータとしてもよい。
【０１０２】
例えば図７の記載によれば、ニューラルネットワークの中間層の層数は、２層よりも多い表現となっているが、これに限らない。
上記実施形態では、活性化関数ｈ，ｈ１，ｈ２，…ｈαを、ＲｅＬＵとし、出力の活性化関数をソフトマックス関数としたが、これに限らない。例えば活性化関数ｈ，ｈ１，ｈ２，…ｈαを、ハイパボリックタンジェントとしてもよい。また、例えば活性化関数ｈ，ｈ１，ｈ２，…ｈαをロジスティックジグモイド関数としてもよい。
【０１０３】
また、例えば出力の活性化関数を、ロジスティックジグモイド関数としてもよい。この場合、例えば出力層のノード数を１個とし、出力変数を燃焼状態変数ＰＲとすればよい。その場合、出力変数の値が所定値以上である場合に異常と判定することによって、異常の有無を判定できる。
【０１０４】
・「機械学習のアルゴリズムについて」
機械学習のアルゴリズムとしては、ニューラルネットワークを用いるものに限らない。例えば回帰式を用いてもよい。これは、上記ニューラルネットワークにおいて中間層を備えないものに相当する。また、例えばサポートベクトルマシンを用いてもよい。この場合、出力の値の大きさ自体には意味が無く、その値が正であるか否かに応じて、失火が生じたか否かを表現する。換言すれば、燃焼状態変数の値が３値以上の値を有してそれらの値の大小が失火の確率の大小を表現するものとは相違する。
【０１０５】
・「学習工程について」
上記実施形態では、ランダムに失火が生じる状況において学習を実行したが、これに限らない。例えば特定の気筒で連続的に失火が生じる状況において学習を実行してもよい。ただし、その場合、写像への入力となる気筒間変数や変動パターン変数に用いる気筒間変数ΔＴｂを、「気筒間変数について」の欄に記載したように、失火の検出対象となる気筒と、それ以外の気筒とのそれぞれの圧縮上死点に対応する微小回転時間Ｔ３０同士の差等とすることが望ましい。
【０１０６】
クランク軸２４のダイナモメータを接続し内燃機関１０を稼働した際のクランク軸２４の回転挙動に基づき学習を行うものに限らない。例えば内燃機関１０を車両に搭載し、車両を走行させた際のクランク軸２４の回転挙動に基づき学習を行ってもよい。これによれば、車両が走行する路面の状態によるクランク軸２４の回転挙動の影響を学習に反映させることができる。
【０１０７】
・「データ解析装置について」
例えばＳ６２，Ｓ６４の処理に代えて、Ｓ２４，Ｓ２６の処理等をセンター９０によって実行してもよい。
【０１０８】
図７の処理を、例えばユーザが所持する携帯端末によって実行してもよい。これは、携帯端末に図７の処理を実行するアプリケーションプログラムをインストールしておくことにより実現できる。なお、この際、例えばＳ５２の処理におけるデータの送信が有効な距離が車両の長さ程度である設定とする等して、車両ＩＤの送受信処理を削除してもよい。
【０１０９】
・「実行装置について」
実行装置としては、ＣＰＵ６２（９２）とＲＯＭ６４（９４）とを備えて、ソフトウェア処理を実行するものに限らない。例えば上記実施形態においてソフトウェア処理されたものの少なくとも一部を、ハードウェア処理する専用のハードウェア回路（たとえばＡＳＩＣ等）を備えてもよい。すなわち、実行装置は、以下の（ａ）〜（ｃ）のいずれかの構成であればよい。（ａ）上記処理の全てを、プログラムに従って実行する処理装置と、プログラムを記憶するＲＯＭ等のプログラム格納装置とを備える。（ｂ）上記処理の一部をプログラムに従って実行する処理装置及びプログラム格納装置と、残りの処理を実行する専用のハードウェア回路とを備える。（ｃ）上記処理の全てを実行する専用のハードウェア回路を備える。ここで、処理装置及びプログラム格納装置を備えたソフトウェア実行装置や、専用のハードウェア回路は複数であってもよい。
【０１１０】
・「記憶装置について」
上記実施形態では、写像データ６６ａ，９６ａが記憶される記憶装置と、失火用プログラム６４ａや失火用メインプログラム９４ａが記憶される記憶装置（ＲＯＭ６４，９４）とを別の記憶装置としたが、これに限らない。
【０１１１】
・「コンピュータについて」
コンピュータとしては、車両に搭載されたＣＰＵ６２及びＲＯＭ６４等の実行装置と、センター９０が備えるＣＰＵ９２及びＲＯＭ９４等の実行装置とから構成されるものに限らない。例えば車両に搭載された実行装置とセンター９０が備える実行装置と、ユーザの携帯端末内のＣＰＵ及びＲＯＭ等の実行装置とによって、構成してもよい。これは、例えば図７のＳ６６の処理を、ユーザの携帯端末に送信する処理とし、Ｓ５４，Ｓ２８〜Ｓ３６の処理を携帯端末において実行することで実現できる。
【０１１２】
・「既定の運転状態について」
気筒間の燃焼状態のばらつきを伴う内燃機関１０の運転状態であれば、失火や気筒間空燃比インバランス以外の運転状態を状態検出システムの検出態様としてもよい。例えば吸気バルブや排気バルブの開弁固着により気筒内での吸気の圧縮が不十分な状態となる、いわゆる圧縮抜けが特定の気筒で発生した場合にも、気筒間の燃焼状態にばらつきが生じてクランク軸２４の回転変動が大きくなる。そのため、こうした圧縮抜けの検出を、上述の第１波形変数及び第２波形変数を入力とした検出用写像を用いて行うようにすれば、モータジェネレータの駆動状態がクランク軸２４の回転挙動に与える影響を反映したかたちで圧縮抜けを高精度に検出できる。
【０１１３】
・「内燃機関について」
上記実施形態では、燃料噴射弁として、燃焼室１８内に燃料を噴射する筒内噴射弁を例示したがこれに限らない。例えば吸気通路１２に燃料を噴射するポート噴射弁であってもよい。また、例えばポート噴射弁と筒内噴射弁との双方を備えてもよい。
【０１１４】
内燃機関としては、火花点火式内燃機関に限らず、例えば燃料として軽油等を用いる圧縮着火式内燃機関等であってもよい。
・「ハイブリッド車両について」
上記実施形態のハイブリッド車両ＶＣは、２つのモータジェネレータを有していたが、１つ、又は３つ以上のモータジェネレータを有するハイブリッド車両であってもよい。
【符号の説明】
【０１１５】
１０…内燃機関、１２…吸気通路、１４…スロットルバルブ、１６…吸気バルブ、１８…燃焼室、２０…燃料噴射弁、２２…点火装置、２４…クランク軸、２６…排気バルブ、２８…排気通路、４０…遊星歯車機構、４２…第１モータジェネレータ、４４…第２モータジェネレータ、４６…インバータ、４８…インバータ、５０…駆動輪、６０…制御装置、６２…ＣＰＵ、６４…ＲＯＭ、６４ｂ…失火用サブプログラム、６６…記憶装置、６６ａ…写像データ、６７…周辺回路、６８…バス、６９…通信機、７０…エアフローメータ、７１…空燃比センサ、７２…クランク角センサ、７４…アクセルセンサ、７８…警告灯、８０…ネットワーク、９０…センター、９２…ＣＰＵ、９４…ＲＯＭ、９４ａ…失火用メインプログラム、９６…記憶装置、９６ａ…写像データ、９７…周辺回路、９８…バス、９９…通信機。
【要約】
【課題】ハイブリッド車両に搭載された内燃機関の失火等の検出精度を向上する。
【解決手段】ＣＰＵ６２は、燃焼トルクの発生期間のクランク軸２４の回転速度の気筒間差に関する情報を含む変数である第１波形変数と、第１モータジェネレータ４２及び第２モータジェネレータ４４のトルクの時系列データを示す変数である第２波形変数とを入力とし、気筒間の燃焼状態のばらつき度合いに関する変数である燃焼状態変数を出力とするニューラルネットワークの出力値に基づき、失火の有無を判定する。
【選択図】図１【図１】
0006741131.tif 000002
【図２】
0006741131.tif 000003
【図３】
0006741131.tif 000004
【図４】
0006741131.tif 000005
【図５】
0006741131.tif 000006
【図６】
0006741131.tif 000007
【図７】
0006741131.tif 000008
【図８】
0006741131.tif 000009
【図９】
0006741131.tif 000010