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