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