(57)【要約】【課題】所定の周波数成分の強度のみによっては特定できない連続的な失火の出現間隔を特定すること。【解決手段】ＣＰＵ４２は、クランク信号Ｓｃｒに基づき、各気筒＃１〜＃６のそれぞれの３０〜１５０ＡＴＤＣの区間の回転速度同士の差によって定義される回転変動値のサイクル１次成分およびサイクル３次成分を算出する。そして、ＣＰＵ４２は、サイクル１次成分が極大となるときにサイクル３次成分が極大であることを条件に、１つの気筒によって連続的な失火が生じていると判定する一方、サイクル１次成分が極大となるときにサイクル３次成分が極小であることを条件に、間に他の気筒の圧縮上死点を挟む一対の気筒において連続的な失火が生じていると判定する。【選択図】図１
2018141410.tif 000002
【特許請求の範囲】
【請求項１】
複数の気筒を有した内燃機関に適用され、圧縮上死点が時系列的に前後する一対の気筒のそれぞれの燃焼の影響が現れる回転角度間隔においてクランク信号に現れるクランク軸の回転挙動同士の差を定量化した回転変動値に基づき、少なくとも１つの気筒における連続的な失火を検出する内燃機関の失火検出装置において、
前記クランク信号に基づき、前記回転変動値に関する燃焼サイクルの第１の整数倍の周波数成分である第１成分を算出する第１成分算出処理と、
前記クランク信号に基づき、前記回転変動値に関する燃焼サイクルの第２の整数倍の周波数成分であって前記第１成分とは異なる第２成分を算出する第２成分算出処理と、
前記第１成分が極大となる位相および極小となる位相の２つの位相のうちの少なくとも１つにおいて前記第２成分が極大となるか極小となるかに基づき、前記連続的な失火が生じている気筒の圧縮上死点の出現間隔を判定する失火判定処理と、を実行する内燃機関の失火検出装置。
【請求項２】
前記失火判定処理は、前記第２成分が極大となるか極小となるかの判定結果と、前記第１成分および前記第２成分のうちの少なくとも１つの成分の強度と当該強度に関する判定値との大小比較の結果とに基づき、前記連続的な失火が生じている気筒の圧縮上死点の出現間隔を判定する処理である請求項１記載の内燃機関の失火検出装置。
【請求項３】
前記判定値を、前記クランク軸の回転速度が高い場合に低い場合よりも小さい値に設定する判定値可変処理を実行する請求項２記載の内燃機関の失火検出装置。
【請求項４】
前記判定値を、前記内燃機関の負荷が高い場合に低い場合よりも大きい値に設定する判定値設定処理を実行する請求項２または３記載の内燃機関の失火検出装置。
【請求項５】
前記クランク信号に基づき、前記回転変動値に関する燃焼サイクルの第３の整数倍の成分であって前記第１成分および前記第２成分とは異なる第３成分を算出する第３成分算出処理を実行し、
前記第１成分は、サイクル１次成分であり、
前記第２成分は、サイクル３次成分であり、
前記第３成分は、サイクル２次成分であり、
前記サイクル１次成分の強度が対向失火用１次判定値未満であることと、前記サイクル３次成分の強度が対向失火用３次判定値未満であることと、前記サイクル２次成分の強度が対向失火用３次判定値を超えることとの論理積が真である場合、前記複数の気筒のうち圧縮上死点が１回転離間している一対の気筒において連続的に失火が生じていると判定する対向判定処理を実行する請求項１〜４のいずれか１項に記載の内燃機関の失火検出装置。
【請求項６】
前記内燃機関は、６気筒の内燃機関であり、
前記第１成分は、サイクル１次成分であり、
前記第２成分は、サイクル３次成分であり、
前記失火判定処理は、前記サイクル１次成分が極大となる位相において前記サイクル３次成分が極小となることに基づき、時系列的に圧縮上死点が１つ離れた一対の気筒において連続的に失火が生じていると判定する処理、および前記サイクル１次成分が極小となる位相において前記サイクル３次成分が極大となることに基づき、時系列的に圧縮上死点が１つ離れた一対の気筒において連続的に失火が生じていると判定する処理の２つの処理のうちの少なくとも１つの処理を含む請求項１〜５のいずれか１項に記載の内燃機関の失火検出装置。
【請求項７】
前記回転変動値は、圧縮上死点が時系列的に前後する一対の気筒のうちの一方の気筒の燃焼の影響が現れる回転角度間隔における回転速度から他方の気筒の燃焼の影響が現れる回転角度間隔における回転速度を減算した値である請求項３または４記載の内燃機関の失火検出装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の気筒を有した内燃機関に適用され、圧縮上死点が時系列的に前後する一対の気筒のそれぞれの燃焼の影響が現れる回転角度間隔においてクランク信号に現れるクランク軸の回転挙動同士の差を定量化した回転変動値に基づき、少なくとも１つの気筒における連続的な失火を検出する内燃機関の失火検出装置に関する。
【背景技術】
【０００２】
たとえば特許文献１には、クランク信号に現れるクランク軸の回転挙動に基づく回転状態パラメータの時系列データの回転０．５次（サイクル１次）成分、回転１次（サイクル２次）成分および回転１．５次（サイクル３次）成分の強度に基づき、内燃機関の失火を検出する装置が記載されている。特に、この装置では、６気筒を有した内燃機関の特定の１つの気筒で連続的に失火が生じる異常（１連失火）と、圧縮上死点の出現順序が間に別の気筒を挟んで時系列的に前後する一対の気筒において連続的に失火が生じる異常（間欠失火）とを、サイクル３次成分の強度に基づき識別している。これは、サイクル１次成分やサイクル２次成分には、１連失火と間欠失火とで強度に目立った相違が生じない一方、サイクル３次成分には、１連失火と間欠失火とで強度に目立った相違が生じることに基づくものであると記載されている（「００２３」）。
【０００３】
また特許文献２には、圧縮上死点が時系列的に前後する一対の気筒のそれぞれにおける燃焼の影響が現れる回転角度領域における回転速度同士の差に基づき、失火判定のための角速度変動量（回転変動値）を算出することが記載されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００３−１１３７３６号公報
【特許文献２】特開平１０−５４２９５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ただし、上記のように、回転変動値の時系列データの所定のサイクル次数の成分の強度は、外乱の影響を受けるため、強度のみによっては、連続的な失火が生じている気筒の圧縮上死点の出現間隔を特定できないおそれがあることが発明者によって見出された。
【課題を解決するための手段】
【０００６】
以下、上記課題を解決するための手段およびその作用効果について記載する。
【０００７】
１．複数の気筒を有した内燃機関に適用され、圧縮上死点が時系列的に前後する一対の気筒のそれぞれの燃焼の影響が現れる回転角度間隔においてクランク信号に現れるクランク軸の回転挙動同士の差を定量化した回転変動値に基づき、少なくとも１つの気筒における連続的な失火を検出する内燃機関の失火検出装置において、前記クランク信号に基づき、前記回転変動値に関する燃焼サイクルの第１の整数倍の周波数成分である第１成分を算出する第１成分算出処理と、前記クランク信号に基づき、前記回転変動値に関する燃焼サイクルの第２の整数倍の周波数成分であって前記第１成分とは異なる第２成分を算出する第２成分算出処理と、前記第１成分が極大となる位相および極小となる位相の２つの位相のうちの少なくとも１つにおいて前記第２成分が極大となるか極小となるかに基づき、前記連続的な失火が生じている気筒の圧縮上死点の出現間隔を判定する失火判定処理と、を実行する。
【０００８】
Ｎ，Ｍを整数としたとき、回転変動値の時系列データのＮ次の周波数成分とＭ次の周波数成分とのそれぞれの強度の大小関係が外乱の影響を受ける場合であっても、サイクルＮ次成分が極大となる位相および極小となる位相においてサイクルＭ次成分が極大となるか極小となるかについては、外乱の影響を受けにくいことが発明者によって見出された。このため、上記構成では、回転変動値の時系列データに関するサイクルＮ次成分（第１成分）が極大となる位相および極小となる位相の２つのうちの少なくとも一方においてサイクルＭ次成分（第２成分）が極大となるか極小となるかに基づき、連続的な失火が生じている気筒の圧縮上死点の出現間隔を判定する。このため、強度のみによっては特定できない出現間隔を特定することが可能となる。
【０００９】
２．上記１記載の内燃機関の失火検出装置において、前記失火判定処理は、前記第２成分が極大となるか極小となるかの判定結果と、前記第１成分および前記第２成分のうちの少なくとも１つの成分の強度と当該強度に関する判定値との大小比較の結果とに基づき、前記連続的な失火が生じている気筒の圧縮上死点の出現間隔を判定する処理である。
【００１０】
上記構成では、第１成分と第２成分との相対的な位相の関係に加えて、それらの少なくとも１つの成分の強度を用いることにより、連続的な失火が生じている気筒の圧縮上死点の出現間隔をより高精度に判定することができる。
【００１１】
３．上記２記載の内燃機関の失火検出装置において、前記判定値を、前記クランク軸の回転速度が高い場合に低い場合よりも小さい値に設定する判定値可変処理を実行する。
【００１２】
回転速度が高い場合には低い場合と比較して、圧縮上死点が出現する時間間隔が短く、またクランク軸の回転エネルギが大きくなることから、失火が生じた場合の回転速度の落ち込みが小さくなる傾向がある。これは、失火が生じたときにクランク軸の回転挙動に応じて求められる回転変動値に現れる変動量が、回転速度が高い場合には低い場合よりも小さくなることを意味する。そこで上記構成では、判定値を回転速度が高い場合に低い場合よりも小さい値に設定することにより、正常と異常とを切り分けるために用いられる判定値を回転速度にとって適切な値に設定することができる。
【００１３】
４．上記２または３記載の内燃機関の失火検出装置において、前記判定値を、前記内燃機関の負荷が高い場合に低い場合よりも大きい値に設定する判定値設定処理を実行する。
【００１４】
負荷が高い場合には低い場合よりも燃焼に伴って生じるエネルギが大きくなることから、失火が生じた場合の回転速度の落ち込みが大きくなる傾向がある。これは、失火が生じたときにクランク軸の回転挙動に応じて求められる回転変動値に現れる変動量が、負荷が高い場合には低い場合よりも大きくなることを意味する。そこで上記構成では、判定値を負荷が高い場合に低い場合よりも大きい値に設定することにより、正常と異常とを切り分けるために用いられる判定値を回転速度にとって適切な値に設定することができる。
【００１５】
５．上記１〜４のいずれか１つに記載の内燃機関の失火検出装置において、前記クランク信号に基づき、前記回転変動値に関する燃焼サイクルの第３の整数倍の成分であって前記第１成分および前記第２成分とは異なる第３成分を算出する第３成分算出処理を実行し、前記第１成分は、サイクル１次成分であり、前記第２成分は、サイクル３次成分であり、前記第３成分は、サイクル２次成分であり、前記サイクル１次成分の強度が対向失火用１次判定値未満であることと、前記サイクル３次成分の強度が対向失火用３次判定値未満であることと、前記サイクル２次成分の強度が対向失火用３次判定値を超えることとの論理積が真である場合、前記複数の気筒のうち圧縮上死点が１回転離間している一対の気筒において連続的に失火が生じていると判定する対向判定処理を実行する。
【００１６】
複数の気筒のうち圧縮上死点が１回転離間している一対の気筒において連続的に失火が生じる場合、サイクル１次成分の強度およびサイクル３次成分の強度が小さい一方、サイクル２次成分の強度が大きい傾向があることを発明者が見出した。上記構成では、この点に鑑み、サイクル１次成分の強度、サイクル２次成分の強度およびサイクル３次成分の強度に基づき、複数の気筒のうち圧縮上死点が１回転離間している一対の気筒において連続的に失火が生じる異常の有無を判定する。
【００１７】
６．上記１〜５のいずれか１つに記載の内燃機関の失火検出装置において、前記内燃機関は、６気筒の内燃機関であり、前記第１成分は、サイクル１次成分であり、前記第２成分は、サイクル３次成分であり、前記失火判定処理は、前記サイクル１次成分が極大となる位相において前記サイクル３次成分が極小となることに基づき、時系列的に圧縮上死点が１つ離れた一対の気筒において連続的に失火が生じていると判定する処理、および前記サイクル１次成分が極小となる位相において前記サイクル３次成分が極大となることに基づき、時系列的に圧縮上死点が１つ離れた一対の気筒において連続的に失火が生じていると判定する処理の２つの処理のうちの少なくとも１つの処理を含む。
【００１８】
６気筒の内燃機関の場合、時系列的に圧縮上死点が１つ離れた一対の気筒において連続的に失火が生じている異常（間欠失火）と、複数の気筒のうちの１つの気筒のみで連続的に失火が生じている異常（１連失火）とを、サイクル１次成分やサイクル３次成分の強度のみによって識別することは困難であることを発明者が見出した。また、発明者は、間欠失火の場合、サイクル１次成分が極大となる位相においてサイクル３次成分が極小となり、サイクル１次成分が極小となる位相においてサイクル３次成分が極大となることを見出した。このため、上記構成によれば、位相に基づき間欠失火を１連失火から適切に識別することができる。
【００１９】
７．上記３または４記載の内燃機関の失火検出装置において、前記回転変動値は、圧縮上死点が時系列的に前後する一対の気筒のうちの一方の気筒の燃焼の影響が現れる回転角度間隔における回転速度から他方の気筒の燃焼の影響が現れる回転角度間隔における回転速度を減算した値である。
【００２０】
上記構成では、回転変動値として、時系列的に前後する一対の気筒のうちの一方の上記回転角度間隔の回転に要する回転時間と、他方の気筒の上記回転角度間隔の回転に要する回転時間との差を用いる場合と比較すると、失火時の回転変動値が失火以外の値に影響される度合いが小さい。このため、判定値を可変設定する場合、回転時間同士の差を用いる場合と比較して、判定値の適合工数を低減できる。
【図面の簡単な説明】
【００２１】
【図１】失火検出装置にかかる一実施形態および駆動系を示す図。
【図２】同実施形態にかかる失火検出処理の手順を示す流れ図。
【図３】同実施形態にかかる回転変動値の算出処理を示す図。
【図４】同実施形態にかかる対向気筒失火時の時系列データを示すタイムチャート。
【図５】同実施形態にかかる２連失火時の時系列データを示すタイムチャート。
【図６】同実施形態にかかる１連失火時の時系列データを示すタイムチャート。
【図７】同実施形態にかかる間欠失火時の時系列データを示すタイムチャート。
【発明を実施するための形態】
【００２２】
＜第１の実施形態＞
以下、内燃機関の失火検出装置にかかる一実施形態について図面を参照しつつ説明する。
【００２３】
図１に示すように、内燃機関１０は、６気筒を有する４ストロークエンジンである。特に本実施形態では、ガソリン機関のように筒内充填空気量によってトルクを調整する内燃機関を想定している。なお、以下では、圧縮上死点の出現順序に従って、気筒＃１，＃２，＃３，＃４，＃５，＃６を定義している。すなわち、第１の気筒＃１の次に圧縮上死点が出現する気筒が第２の気筒＃２である。
【００２４】
内燃機関１０のクランク軸１２には、トルクコンバータ３０を介して変速装置３２が連結可能となっている。変速装置３２の出力軸３４には、駆動輪３６が機械的に連結されている。
【００２５】
クランク軸１２には、クランク軸１２の複数の回転角度のそれぞれを示す歯部２２が設けられたクランクロータ２０が結合されている。クランクロータ２０には、基本的には、１０°ＣＡ間隔で歯部２２が設けられているものの、隣接する歯部２２間の間隔が３０°ＣＡとなる箇所である欠け歯部２４が１箇所設けられている。これは、クランク軸１２の基準となる回転角度を示すためのものである。
【００２６】
制御装置４０は、内燃機関１０の制御量（トルク、排気成分）を制御するために、燃料噴射弁等の各種アクチュエータを操作する。制御装置４０は、制御量の制御や各種診断処理を実行する際に、クランクロータ２０の歯部２２の検出によってクランク軸１２の回転角度を検出するクランク角センサ５０のクランク信号Ｓｃｒやエアフローメータ５２によって検出される吸入空気量Ｇａを参照する。制御装置４０は、ＣＰＵ４２や、ＲＯＭ４４、電気的に書き換え可能な不揮発性メモリ４６を備えており、ＲＯＭ４４に記憶されたプログラムをＣＰＵ４２が実行することによって、上記制御量の制御や診断処理を実行する。
【００２７】
図２に、上記診断処理としての内燃機関１０の特定の気筒における連続的な失火の有無の検出処理の手順を示す。図２に示す処理は、ＲＯＭ４４に記憶されたプログラムをＣＰＵ４２が所定周期で繰り返し実行することにより実現される。
【００２８】
図２に示す一連の処理において、ＣＰＵ４２は、まず、クランク信号Ｓｃｒに基づき、３０°ＣＡの回転に要する時間（瞬時回転時間Ｔ３０）の時系列データを取得する（Ｓ１０）。すなわち、ＣＰＵ４２は、図１に示すように、クランク信号Ｓｃｒのパルスの立ち上がりエッジまたは立ち下がりエッジを３個カウントするまでの所要時間を瞬時回転時間Ｔ３０とする。そして、瞬時回転時間Ｔ３０を逐次計測することで時系列的に前後する複数の瞬時回転時間Ｔ３０を逐次生成し、これを時系列データとして取得する。次に、ＣＰＵ４２は、瞬時回転時間Ｔ３０の時系列データに基づき、回転変動値ΔＮＥの時系列データを算出する（Ｓ１２）。
【００２９】
図３に回転変動値ΔＮＥの算出処理を示す。回転変動値ΔＮＥは、各気筒＃１〜＃６のそれぞれの燃焼行程に対応して１つずつ算出される。たとえば第２の気筒＃２に対応する回転変動値ΔＮＥは、第２の気筒＃２の３０〜１５０ＡＴＤＣまでの回転角度間隔における気筒別回転速度ω１２０から、第１の気筒＃１の３０〜１５０ＡＴＤＣまでの回転角度間隔における気筒別回転速度ω１２０を減算した値である。ここで、第２の気筒＃２の気筒別回転速度ω１２０は、第２の気筒＃２の３０〜１５０ＡＴＤＣまでの４つの瞬時回転時間Ｔ３０の合計値である気筒別回転時間Ｔ１２０によって所定値Ｋを除算した値である。ここで、所定値Ｋは、１２０°ＣＡの角度間隔に応じた値であり、角度の次元を有する。また、第１の気筒＃１の気筒別回転速度ω１２０は、第１の気筒＃１の３０〜１５０ＡＴＤＣまでの４つの瞬時回転時間Ｔ３０の合計値である気筒別回転時間Ｔ１２０によって所定値Ｋを除算した値である。なお、Ｓ１２の処理において、ＣＰＵ４２は、時系列的に前後する回転変動値ΔＮＥを複数算出する。図３では、変数ｎを用いることによって、気筒別回転速度ω１２０や回転変動値ΔＮＥの時系列データを表現している。すなわち、第３の気筒＃３に対応する回転変動値ΔＮＥ（ｎ）は、第２の気筒＃２に対応した回転変動値ΔＮＥ（ｎ−１）と時系列的に隣り合っており、第２の気筒＃２に対応した回転変動値ΔＮＥ（ｎ−１）の後に生成される。
【００３０】
図２に戻り、ＣＰＵ４２は、回転変動値ΔＮＥの時系列データを入力とし、サイクル１次のフィルタ処理をすることによって、回転変動値ΔＮＥの時系列データの１次成分を算出する（Ｓ１４）。ここで、サイクル１次とは、燃焼サイクルである４ストロークの回転周波数成分を示す。なお、サイクル１次のフィルタ処理は、回転変動値ΔＮＥの時系列データを入力とするＦＩＲフィルタによって構成すればよい。
【００３１】
次にＣＰＵ４２は、回転変動値ΔＮＥの時系列データを入力とし、サイクル２次のフィルタ処理をすることによって、回転変動値ΔＮＥの時系列データの２次成分を算出する（Ｓ１６）。なお、サイクル２次のフィルタ処理は、回転変動値ΔＮＥの時系列データを入力とするＦＩＲフィルタによって構成すればよい。
【００３２】
次にＣＰＵ４２は、回転変動値ΔＮＥの時系列データを入力とし、サイクル３次のフィルタ処理をすることによって、回転変動値ΔＮＥの時系列データの３次成分を算出する（Ｓ１８）。なお、サイクル３次のフィルタ処理は、回転変動値ΔＮＥの時系列データを入力とするＦＩＲフィルタによって構成すればよい。
【００３３】
そしてＣＰＵ４２は、Ｓ１４の処理によって算出したサイクル１次成分の振幅Ａ１と、Ｓ１６の処理によって算出したサイクル２次成分の振幅Ａ２と、Ｓ１８の処理によって算出したサイクル３次成分の振幅Ａ３とを算出する（Ｓ２０）。ここでは、サイクル１次成分の時系列データについて、１燃焼サイクルにおける最小値と最大値との差を振幅Ａ１とし、サイクル２次成分の時系列データについて、１燃焼サイクルにおける最小値と最大値との差を振幅Ａ２とし、サイクル３次成分の時系列データについて、１燃焼サイクルにおける最小値と最大値との差を振幅Ａ３とする。
【００３４】
次にＣＰＵ４２は、サイクル１次成分の振幅Ａ１が対向失火用１次判定値Ｏ１ｔｈより小さいことと、サイクル２次成分の振幅Ａ２が対向失火用２次判定値Ｏ２ｔｈよりも大きいことと、サイクル３次成分の振幅Ａ３が対向失火用３次判定値Ｏ３ｔｈよりも小さいこととの論理積が真であるか否かを判定する（Ｓ２２）。この処理は、たとえば気筒＃１と気筒＃４とのように、圧縮上死点の出現間隔が３６０°ＣＡ離間した一対の気筒のそれぞれで生じる連続的な失火（対向気筒失火）の有無を判定するためのものである。
【００３５】
図４に、対向気筒失火が生じている場合の回転変動値ΔＮＥ、サイクル１次成分、サイクル２次成分、およびサイクル３次成分の時系列データを示す。図４に示すように、対向気筒失火が生じる場合、サイクル１次成分やサイクル３次成分には、最小値と最大値との間に顕著な差が生じない一方、サイクル２次成分は、最小値と最大値との間に顕著な差が生じる。ちなみに、図４におけるサイクル２次成分は、実線にて示したものであり、２点鎖線にて示すものは、サイクル２次成分の周期および位相を有した正弦波である。
【００３６】
図２に示すＳ２２の処理は、図４に示すパターンに着目して対向気筒失火の有無を判定する処理である。ここで、ＣＰＵ４２は、対向失火用１次判定値Ｏ１ｔｈや、対向失火用２次判定値Ｏ２ｔｈ、対向失火用３次判定値Ｏ３ｔｈを、いずれも、回転速度ＮＥおよび負荷ＫＬに応じて可変設定する。ここで、回転速度ＮＥは、ＣＰＵ４２により、瞬時回転時間Ｔ３０の複数個によって算出されるものであり、特に、気筒別回転速度ω１２０の算出に用いる回転角度間隔よりも長い回転角度間隔における回転速度の平均値を示す。また、負荷ＫＬは、筒内充填空気量と相関を有する量であり、回転速度ＮＥおよび吸入空気量Ｇａに基づき算出される。
【００３７】
詳しくは、ＣＰＵ４２は、負荷ＫＬが同一であっても、回転速度ＮＥが高い場合に低い場合よりも対向失火用１次判定値Ｏ１ｔｈや、対向失火用２次判定値Ｏ２ｔｈ、対向失火用３次判定値Ｏ３ｔｈを小さい値とする。これは、回転速度ＮＥが高い場合に低い場合よりも失火による回転速度の落ち込みが生じにくくなるためである。また、ＣＰＵ４２は、回転速度ＮＥが同一であっても、負荷ＫＬが高い場合に低い場合よりも対向失火用１次判定値Ｏ１ｔｈや、対向失火用２次判定値Ｏ２ｔｈ、対向失火用３次判定値Ｏ３ｔｈを大きい値とする。これは、負荷ＫＬが高い場合には低い場合よりも失火による回転速度の落ち込みが大きくなるためである。
【００３８】
具体的には、ＲＯＭ４４に、入力変数としての回転速度ＮＥおよび負荷ＫＬと、出力変数としての判定値との関係を定めた２次元マップを、対向失火用１次判定値Ｏ１ｔｈ、対向失火用２次判定値Ｏ２ｔｈおよび対向失火用３次判定値Ｏ３ｔｈのそれぞれについて記憶しておく。そしてＣＰＵ４２は、２次元マップに基づき、対向失火用１次判定値Ｏ１ｔｈや、対向失火用２次判定値Ｏ２ｔｈ、対向失火用３次判定値Ｏ３ｔｈをマップ演算する。ここで、マップとは、入力変数の離散的な値と、入力変数の値のそれぞれに対応する出力変数の値と、の組データである。またマップ演算は、たとえば、入力変数の値がマップの入力変数の値のいずれかに一致する場合、対応する出力変数の値を演算結果とし、一致しない場合、組データに含まれる複数の出力変数の値の補間によって得られる値を演算結果とする処理とすればよい。
【００３９】
ＣＰＵ４２は、論理積が真であると判定する場合（Ｓ２２：ＹＥＳ）、対向気筒失火と判定する（Ｓ２４）。この場合、ＣＰＵ４２は、回転変動値ΔＮＥの時系列データに基づき、連続的な失火が生じている一対の気筒を特定する。そして、ＣＰＵ４２は、図１に示した警告灯５４を操作してユーザに異常を通知し、また、不揮発性メモリ４６に異常の内容を記憶する。不揮発性メモリ４６に異常内容を記憶することにより、制御装置４０から情報を取り出す装置によって、異常内容を外部に取り出すことが可能となるため、異常内容の記憶処理は、外部への通知のための処理である。
【００４０】
一方、ＣＰＵ４２は、論理積が偽であると判定する場合（Ｓ２２：ＮＯ）、Ｓ２６の処理に移行する。ＣＰＵ４２は、Ｓ２６の処理において、サイクル１次成分の振幅Ａ１が２連失火用１次判定値Ｃ１ｔｈより大きいことと、サイクル２次成分の振幅Ａ２が２連失火用２次判定値Ｃ２ｔｈよりも大きいことと、サイクル３次成分の振幅Ａ３が２連失火用３次判定値Ｃ３ｔｈよりも小さいこととの論理積が真であるか否かを判定する（Ｓ２６）。この処理は、圧縮上死点となるタイミングが時系列的に隣り合う一対の気筒のそれぞれで生じる連続的な失火（２連失火）の有無を判定するためのものである。
【００４１】
図５に、２連失火が生じている場合の回転変動値ΔＮＥ、サイクル１次成分、サイクル２次成分、およびサイクル３次成分の時系列データを示す。図５に示すように、２連失火が生じる場合、サイクル３次成分には、最小値と最大値との間に顕著な差が生じない一方、サイクル１次成分やサイクル２次成分には、最小値と最大値との間に顕著な差が生じる。ちなみに、図５におけるサイクル１次成分やサイクル２次成分は、実線にて示したものであり、２点鎖線にて示すものは、サイクル１次成分やサイクル２次成分の周期および位相を有した正弦波である。
【００４２】
図２のＳ２６の処理は、図５に示すパターンに基づき、２連失火を判定する処理である。ここで、ＣＰＵ４２は、２連失火用１次判定値Ｃ１ｔｈや、２連失火用２次判定値Ｃ２ｔｈ、２連失火用３次判定値Ｃ３ｔｈを、いずれも、回転速度ＮＥおよび負荷ＫＬに応じて可変設定する。詳しくは、ＣＰＵ４２は、負荷ＫＬが同一であっても、回転速度ＮＥが高い場合に低い場合よりも２連失火用１次判定値Ｃ１ｔｈや、２連失火用２次判定値Ｃ２ｔｈ、２連失火用３次判定値Ｃ３ｔｈを小さい値とする。また、ＣＰＵ４２は、回転速度ＮＥが同一であっても、負荷ＫＬが高い場合に低い場合よりも２連失火用１次判定値Ｃ１ｔｈや、２連失火用２次判定値Ｃ２ｔｈ、２連失火用３次判定値Ｃ３ｔｈを大きい値とする。
【００４３】
具体的には、ＲＯＭ４４に、入力変数としての回転速度ＮＥおよび負荷ＫＬと、出力変数としての判定値との関係を定めた２次元マップを、２連失火用１次判定値Ｃ１ｔｈ、２連失火用２次判定値Ｃ２ｔｈ、および２連失火用３次判定値Ｃ３ｔｈのそれぞれについて記憶しておく。そしてＣＰＵ４２は、２次元マップに基づき、２連失火用１次判定値Ｃ１ｔｈや、２連失火用２次判定値Ｃ２ｔｈ、２連失火用３次判定値Ｃ３ｔｈをマップ演算する。
【００４４】
ＣＰＵ４２は、Ｓ２６の処理において論理積が真であると判定する場合、２連失火と判定する（Ｓ２８）。この場合、ＣＰＵ４２は、回転変動値ΔＮＥの時系列データに基づき、連続的な失火が生じている一対の気筒を特定する。そして、ＣＰＵ４２は、図１に示した警告灯５４を操作してユーザに異常を通知し、また、不揮発性メモリ４６に異常の内容を記憶する。
【００４５】
これに対し、ＣＰＵ４２は、Ｓ２６の処理において否定判定する場合、サイクル１次成分の振幅Ａ１が識別前判定値Ｂｔｈよりも大きいか否かを判定する（Ｓ３０）。この処理は、特定の１つの気筒において生じる失火（以下、１連失火）や、圧縮上死点となるタイミングが時系列的に１つ離れた一対の気筒のそれぞれで連続的に生じる失火（以下、間欠失火）の有無を判定するためのものである。
【００４６】
図６に、１連失火が生じている場合の回転変動値ΔＮＥ、サイクル１次成分、サイクル２次成分、およびサイクル３次成分の時系列データを示す。詳しくは、第１の気筒＃１において連続的に失火が生じている場合を例示している。図６に示すように、１連失火の場合には、サイクル１次成分、サイクル２次成分、およびサイクル３次成分のそれぞれにおいて、最小値と最大値との間に顕著な差が生じる。ちなみに、図６におけるサイクル１次成分、サイクル２次成分およびサイクル３次成分は、実線にて示したものであり、２点鎖線にて示すものは、サイクル１次成分、サイクル２次成分およびサイクル３次成分のそれぞれの周期および位相を有した正弦波である。
【００４７】
図７に、間欠失火が生じている場合の回転変動値ΔＮＥ、サイクル１次成分、サイクル２次成分、およびサイクル３次成分の時系列データを示す。詳しくは、第１の気筒＃１および第３の気筒＃３において連続的に失火が生じている場合を例示している。図７に示すように、間欠失火の場合には、サイクル１次成分、サイクル２次成分、およびサイクル３次成分のそれぞれにおいて、最小値と最大値との間に顕著な差が生じる。ちなみに、図７におけるサイクル１次成分、サイクル２次成分およびサイクル３次成分は、実線にて示したものであり、２点鎖線にて示すものは、サイクル１次成分、サイクル２次成分およびサイクル３次成分のそれぞれの周期および位相を有した正弦波である。
【００４８】
図６および図７に示すように、１連失火と間欠失火とは、いずれも、サイクル１次成分、サイクル２次成分、およびサイクル３次成分のそれぞれにおいて、最小値と最大値との間に顕著な差が生じる。ここで、図２に示す処理では、所定の気筒で連続的な失火が生じるパターンとして、図４〜図７の４つのパターンを特定する。このため、図２のＳ３０の処理では、サイクル１次成分の最大値と最小値との間に顕著な差があるか否かのみを判定する。すなわち、Ｓ３０の処理によれば、たとえばサイクル１次成分とサイクル３次成分とに最大値と最小値との間に顕著な差があり、サイクル２次成分には顕著な差がないものであっても、肯定判定されうるものの、そのようなパターンはないことから、Ｓ３０の処理では、サイクル１次成分の振幅Ａ１のみを取り上げる。
【００４９】
詳しくは、ＣＰＵ４２は、回転速度ＮＥおよび負荷ＫＬに基づき、識別前判定値Ｂｔｈを可変設定する。ＣＰＵ４２は、負荷ＫＬが同一であっても、回転速度ＮＥが高い場合に低い場合よりも識別前判定値Ｂｔｈを小さい値とする。また、ＣＰＵ４２は、回転速度ＮＥが同一であっても、負荷ＫＬが高い場合に低い場合よりも識別前判定値Ｂｔｈを大きい値とする。具体的には、ＲＯＭ４４に、入力変数としての回転速度ＮＥおよび負荷ＫＬと、出力変数としての識別前判定値Ｂｔｈとの関係を定めた２次元マップを記憶しておく。そしてＣＰＵ４２は、２次元マップに基づき、識別前判定値Ｂｔｈをマップ演算する。
【００５０】
ＣＰＵ４２は、振幅Ａ１が識別前判定値Ｂｔｈよりも大きいと判定する場合（Ｓ３０：ＹＥＳ）、サイクル１次成分とサイクル３次成分とが同位相であるか否かを判定する（Ｓ３２）。この処理は、１連失火と間欠失火とのいずれであるかを識別するための処理である。すなわち、図６に一点鎖線にて示すように、１連失火の場合、サイクル１次成分が極小値となるタイミングではサイクル３次成分も極小値となり、サイクル１次成分が極大値となるタイミングではサイクル３次成分も極大値となる。以下、この場合、サイクル１次成分とサイクル３次成分とは同位相であると称する。これに対し、図７に一点鎖線にて示すように、間欠失火の場合には、サイクル１次成分が極小値となるタイミングではサイクル３次成分は極大値となり、サイクル１次成分が極大値となるタイミングではサイクル３次成分は極小値となる。以下、この場合、サイクル１次成分とサイクル３次成分とは逆位相であると称する。なお、ＣＰＵ４２は、Ｓ３２の処理として、サイクル１次成分が極小値となるときにサイクル３次成分が極大値であるか極小値であるかの判定処理と、サイクル１次成分が極大値となるときにサイクル３次成分が極大値であるか極小値であるかの判定処理との２つの処理のうちの少なくとも１つの判定を実行する。
【００５１】
ＣＰＵ４２は、サイクル１次成分とサイクル３次成分とが同位相であると判定する場合（Ｓ３２：ＹＥＳ）、１連失火であると判定する（Ｓ３４）。ＣＰＵ４２は、またＳ３４の処理において、回転変動値ΔＮＥの時系列データに基づき、連続的な失火が生じている１つの気筒を特定し、警告灯５４を操作してユーザに異常を通知し、また、不揮発性メモリ４６に異常の内容を記憶する。
【００５２】
一方、ＣＰＵ４２は、サイクル１次成分とサイクル３次成分とが逆位相であると判定する場合（Ｓ３２：ＮＯ）、間欠失火であると判定する（Ｓ３６）。ＣＰＵ４２は、またＳ３６の処理において、回転変動値ΔＮＥの時系列データに基づき、連続的な失火が生じている一対の気筒を特定し、警告灯５４を操作してユーザに異常を通知し、また、不揮発性メモリ４６に異常の内容を記憶する。
【００５３】
なお、ＣＰＵ４２は、Ｓ２４，Ｓ２８，Ｓ３４，Ｓ３６の処理が完了する場合や、Ｓ３０の処理において否定判定する場合には、図２に示す一連の処理を一旦終了する。
ここで本実施形態の作用を説明する。
【００５４】
ＣＰＵ４２は、クランク信号Ｓｃｒに基づき回転変動値ΔＮＥの時系列データを算出すると、そのサイクル１次成分、サイクル２次成分およびサイクル３次成分を算出する。そして、ＣＰＵ４２は、サイクル１次成分、サイクル２次成分およびサイクル３次成分に応じて、１連失火、２連失火、間欠失火および対向失火が生じているか否かを判定する。このように、サイクル１次成分、サイクル２次成分およびサイクル３次成分に着目することによって、回転変動値ΔＮＥの時系列データのパターン判定をする場合と比較して、ノイズの影響を抑制しつつ連続的な失火を判定することができる。
【００５５】
特に、１連失火と間欠失火とを、サイクル１次成分とサイクル３次成分とが同位相であるか逆位相であるかに応じて識別することにより、サイクル１次成分、サイクル２次成分およびサイクル３次成分の強度のみから識別する場合と比較すると、ノイズの影響を抑制しつつより高精度に識別することができる。
以上説明した本実施形態によれば、さらに以下に記載する効果が得られる。
【００５６】
（１）振幅Ａ１が識別前判定値Ｂｔｈよりも大きいことを条件に、１連失火または間欠失火であると判定した。このように、振幅Ａ１を用いることにより、用いない場合と比較して、１連失火と間欠失火との判定精度を向上させることができる。
【００５７】
（２）対向失火用１次判定値Ｏ１ｔｈ、対向失火用２次判定値Ｏ２ｔｈ、対向失火用３次判定値Ｏ３ｔｈ、２連失火用１次判定値Ｃ１ｔｈ、２連失火用２次判定値Ｃ２ｔｈ、２連失火用３次判定値Ｃ３ｔｈ、および識別前判定値Ｂｔｈを、回転速度ＮＥが高い場合に低い場合よりも小さい値に設定した。これにより、正常と異常とを切り分けるために用いられる上記判定値を回転速度ＮＥにとって適切な値に設定することができる。
【００５８】
（３）対向失火用１次判定値Ｏ１ｔｈ、対向失火用２次判定値Ｏ２ｔｈ、対向失火用３次判定値Ｏ３ｔｈ、２連失火用１次判定値Ｃ１ｔｈ、２連失火用２次判定値Ｃ２ｔｈ、２連失火用３次判定値Ｃ３ｔｈ、および識別前判定値Ｂｔｈを、負荷ＫＬが高い場合に低い場合よりも大きい値に設定した。これにより、正常と異常とを切り分けるために用いられる上記判定値を負荷にとって適切な値に設定することができる。
【００５９】
（４）回転変動値ΔＮＥを、気筒別回転速度ω１２０同士の差によって定量化した。これにより、気筒別回転時間Ｔ１２０同士の差によって定量化する場合と比較すると、失火時の回転変動値ΔＮＥが回転速度ＮＥ等に依存する度合いが小さいため、上記各判定値の適合工数を低減できる。
【００６０】
（５）サイクル１次成分の振幅Ａ１、サイクル２次成分の振幅Ａ２およびサイクル３次成分の振幅Ａ３を用いることにより、対向気筒失火や２連失火を判定することができる。
＜対応関係＞
【００６１】
上記実施形態における事項と、上記「課題を解決するための手段」の欄に記載した事項との対応関係は、次の通りである。以下では、「課題を解決するための手段」の欄に記載した解決手段の番号毎に、対応関係を示している。［１］第１成分算出処理は、Ｓ１４の処理に対応し、第２成分算出処理は、Ｓ１８の処理に対応し、失火判定処理は、Ｓ３２〜Ｓ３６の処理に対応し、失火検出装置は、制御装置４０に対応する。［２］失火判定処理は、Ｓ３０〜Ｓ３６の処理に対応する。［３，４］判定値可変処理は、Ｓ３０の処理に対応する。［５］対向判定処理は、Ｓ２２，Ｓ２４の処理に対応する。［６］Ｓ３２，Ｓ３６の処理に対応する。［７］図３の処理に対応する。
＜その他の実施形態＞
なお、上記実施形態の各事項の少なくとも１つを、以下のように変更してもよい。
・「第１次、第２次、第３次成分算出処理について」
【００６２】
上記実施形態では、回転変動値ΔＮＥの時系列データをサイクル１次フィルタに入力することによって、回転変動値ΔＮＥのサイクル１次成分を算出したが、これに限らない。たとえば、気筒別回転速度ω１２０の時系列データをサイクル１次フィルタに入力し、サイクル１次フィルタの出力値に基づき、回転変動値ΔＮＥのサイクル１次成分を算出してもよい。また、たとえば、気筒別回転時間Ｔ１２０の時系列データをサイクル１次フィルタに入力し、サイクル１次フィルタの出力値に基づき、回転変動値ΔＮＥのサイクル１次成分を算出してもよい。さらにたとえば、瞬時回転時間Ｔ３０の時系列データをサイクル１次フィルタに入力し、サイクル１次フィルタの出力値に基づき、回転変動値ΔＮＥのサイクル１次成分を算出してもよい。なお、サイクル１次フィルタとしては、ＦＩＲフィルタに限らない。
【００６３】
上記実施形態では、回転変動値ΔＮＥの時系列データをサイクル２次フィルタに入力することによって、回転変動値ΔＮＥのサイクル２次成分を算出したが、これに限らない。たとえば、気筒別回転速度ω１２０の時系列データをサイクル２次フィルタに入力し、サイクル２次フィルタの出力値に基づき、回転変動値ΔＮＥのサイクル２次成分を算出してもよい。また、たとえば、気筒別回転時間Ｔ１２０の時系列データをサイクル２次フィルタに入力し、サイクル２次フィルタの出力値に基づき、回転変動値ΔＮＥのサイクル２次成分を算出してもよい。さらにたとえば、瞬時回転時間Ｔ３０の時系列データをサイクル２次フィルタに入力し、サイクル２次フィルタの出力値に基づき、回転変動値ΔＮＥのサイクル２次成分を算出してもよい。なお、サイクル２次フィルタとしては、ＦＩＲフィルタに限らない。
【００６４】
上記実施形態では、回転変動値ΔＮＥの時系列データをサイクル３次フィルタに入力することによって、回転変動値ΔＮＥのサイクル３次成分を算出したが、これに限らない。たとえば、気筒別回転速度ω１２０の時系列データをサイクル３次フィルタに入力し、サイクル３次フィルタの出力値に基づき、回転変動値ΔＮＥのサイクル３次成分を算出してもよい。また、たとえば、気筒別回転時間Ｔ１２０の時系列データをサイクル３次フィルタに入力し、サイクル３次フィルタの出力値に基づき、回転変動値ΔＮＥのサイクル３次成分を算出してもよい。さらにたとえば、瞬時回転時間Ｔ３０の時系列データをサイクル３次フィルタに入力し、サイクル３次フィルタの出力値に基づき、回転変動値ΔＮＥのサイクル３次成分を算出してもよい。なお、サイクル３次フィルタとしては、ＦＩＲフィルタに限らない。
【００６５】
サイクル１次成分、サイクル２次成分、およびサイクル３次成分を算出することは必須ではない。たとえば、「内燃機関について」の欄に記載したように、８気筒の内燃機関の場合、サイクル３次成分に代えて、サイクル４次成分を算出し、これを用いて失火判定してもよい。
・「失火判定処理について」
【００６６】
６気筒の内燃機関において間欠失火の有無を判定する処理としては、Ｓ２２，Ｓ２６の処理の後に行うものに限らない。たとえば、Ｓ２２，Ｓ２６の処理とは独立に、振幅Ａ１，Ａ２，Ａ３のそれぞれの大きさが対応する判定値を超えることと、サイクル１次成分の位相とサイクル３次成分の位相とが逆位相であることとの論理積が真であるか否かの判定処理を実行してもよい。またたとえば、振幅Ａ２および振幅Ａ３のそれぞれの大きさが対応する判定値を超えることと、サイクル１次成分の位相とサイクル３次成分の位相とが逆位相であることとの論理積が真であるか否かの判定処理を実行してもよい。
【００６７】
一対の成分の位相の比較に基づき、連続的な失火が生じている気筒の圧縮上死点の出現間隔を判定する処理としては、６気筒の内燃機関における間欠失火および１連失火の判定に限らない。たとえば、「内燃機関について」の欄に記載したように、８気筒の内燃機関の失火判定処理を行う場合、２つの気筒で連続的に失火が生じている場合に、その２つの気筒の圧縮上死点の出現間隔は複数通りあるため、成分の強度のみによっては出現間隔の特定が困難となりうる。そしてその場合、一対の成分の位相の比較が有効である。なお、この場合、「第１次、第２次、第３次成分算出処理について」の欄に記載したように、サイクル４次成分の位相を用い、その位相を他の成分の位相と比較することも有効である。
・「回転変動値について」
【００６８】
回転変動値ΔＮＥを算出する上で用いる気筒別回転速度としては、３０〜１５０ＡＴＤＣの区間の回転速度に限らない。たとえば、下記「内燃機関について」の欄に記載したように、内燃機関の気筒数が４個である場合には、１８０°ＣＡの区間の回転速度としてもよい。もっとも、これは、Ｎ個の気筒を有する内燃機関においては、「７２０°ＣＡ／Ｎ」の区間の回転速度を気筒別回転速度とすることが必須であることを意味しない。たとえば、６気筒の内燃機関において、気筒別回転速度を６０〜１５０ＡＴＤＣの区間の回転速度としてもよい。
【００６９】
上記実施形態では、圧縮上死点が時系列的に前後する一対の気筒のそれぞれの燃焼の影響が現れる回転角度間隔における回転速度である気筒別回転速度同士の差を回転変動値ΔＮＥとしたが、これに限らない。たとえば、圧縮上死点が時系列的に前後する一対の気筒のそれぞれの燃焼の影響が現れる回転角度間隔の回転に要する時間同士の差を回転変動値ΔＮＥとしてもよい。具体的には、たとえば時系列的に隣り合う気筒別回転時間Ｔ１２０同士の差を回転変動値ΔＮＥとすればよい。
【００７０】
圧縮上死点が時系列的に前後する一対の気筒のそれぞれの燃焼の影響が現れる回転角度間隔においてクランク信号に現れるクランク軸の回転挙動同士の差を定量化する手法としては、気筒別回転速度同士の差や気筒別回転時間同士の差を用いるものに限らない。たとえば、各気筒の気筒別回転速度に相当する量を、９０〜１２０ＡＴＤＣの区間の瞬時速度から３０〜６０ＡＴＤＣの区間の瞬時速度を減算した値とし、時系列的に圧縮上死点が隣り合う気筒に関する上記相当する量同士の差を算出してもよい。また、たとえば上記回転角度間隔において同回転角度間隔よりも短い間隔における複数の瞬時速度に基づき、同回転角度間隔におけるトルクである気筒別トルクを算出し、気筒別トルク同士の差によって定量化してもよい。
さらに、特許文献２に記載されているように、気筒別回転速度同士の差についての３６０°ＣＡ前後した値同士の差を用いてもよい。
【００７１】
なお、回転変動値ΔＮＥとしては、時系列的に圧縮上死点が隣り合う気筒同士の気筒別回転速度や同速度に相当する量等の差に限らない。たとえば、時系列的に間に他の１つの気筒の圧縮上死点が介在する一対の気筒同士の気筒別回転速度ω１２０同士の差としてもよい。すなわち、たとえば第３の気筒＃３の気筒別回転速度ω１２０から第１の気筒＃１の気筒別回転速度ω１２０を減算した値等を回転変動値ΔＮＥとしてもよい。
・「判定値について」
【００７２】
対向失火用１次判定値Ｏ１ｔｈ、対向失火用２次判定値Ｏ２ｔｈ、対向失火用３次判定値Ｏ３ｔｈ、２連失火用１次判定値Ｃ１ｔｈ、２連失火用２次判定値Ｃ２ｔｈ、２連失火用３次判定値Ｃ３ｔｈ、および識別前判定値Ｂｔｈのそれぞれを、回転速度ＮＥおよび負荷ＫＬによって可変設定することは必須ではない。たとえばそれら判定値のうちの少なくとも１つについて、回転速度ＮＥのみによって可変設定したり、負荷ＫＬのみによって可変設定したり、固定値としたりしてもよい。
・「成分の強度について」
【００７３】
上記実施形態では、１次成分の振幅Ａ１によって１次成分の強度を定量化したがこれに限らない。たとえば上記実施形態において、１燃焼サイクルにおける最小値の絶対値によって強度を定量化してもよい。この場合、たとえば対向失火用１次判定値Ｏ１ｔｈや、２連失火用１次判定値Ｃ１ｔｈ、識別前判定値Ｂｔｈを、負の値とすればよい。さらに、それら判定値を回転速度ＮＥが高い場合に低い場合よりも絶対値が小さい値としたり、負荷ＫＬが高い場合に低い場合よりも絶対値が大きい値としたりしてもよい。同様に、２次成分の強度や３次成分の強度等についても、１燃焼サイクルにおける最小値の絶対値によって定量化してもよい。
・「失火の検出結果の外部への通知のための処理について」
【００７４】
上記実施形態では、失火の検出結果の外部への通知のための処理として、警告灯５４の操作処理と、不揮発性メモリ４６への異常の内容の記憶処理とを例示したが、これに限らない。たとえば、不揮発性メモリ４６への異常の内容の記憶処理のみを実行してもよく、またたとえば警告灯５４の操作処理のみを実行してもよい。さらに、異常がある旨の音声信号をスピーカから出力する処理であってもよく、外部に異常の内容等に関する無線信号を出力する処理であってもよい。すなわち、異常が生じたことを外部に通知するために電子機器を操作する処理における上記電子機器としては、警告灯５４や不揮発性メモリ４６に限らず、スピーカや無線送信機等であってもよい。
・「内燃機関について」
【００７５】
内燃機関１０としては、６気筒の内燃機関に限らない。たとえば、４気筒や８気筒のものであってもよい。こうしたものであっても、対向気筒失火が生じる場合には、サイクル１次成分やサイクル３次成分には、最小値と最大値との間に顕著な差が生じない一方、サイクル２次成分は、最小値と最大値との間に顕著な差が生じる。
【００７６】
内燃機関としては、筒内充填空気量によってトルクを調整するものに限らず、たとえばディーゼル機関のように噴射量に応じてトルクを調整するものであってもよい。この場合、負荷ＫＬを、噴射量やアクセル操作量とすればよい。
・「失火検出装置について」
【００７７】
ＣＰＵ４２とＲＯＭ４４とを備えて、ソフトウェア処理を実行するものに限らない。たとえば、上記実施形態においてソフトウェア処理されたものの少なくとも一部を、ハードウェア処理する専用のハードウェア回路（たとえばＡＳＩＣ等）を備えてもよい。すなわち、失火検出装置は、以下の（ａ）〜（ｃ）のいずれかの構成であればよい。（ａ）上記処理の全てを、プログラムに従って実行する処理装置と、プログラムを記憶するＲＯＭ等のプログラム格納装置とを備える。（ｂ）上記処理の一部をプログラムに従って実行する処理装置およびプログラム格納装置と、残りの処理を実行する専用のハードウェア回路とを備える。（ｃ）上記処理の全てを実行する専用のハードウェア回路を備える。ここで、処理装置およびプログラム格納装置を備えたソフトウェア処理回路や、専用のハードウェア回路は複数であってもよい。すなわち、上記処理は、１または複数のソフトウェア処理回路および１または複数の専用のハードウェア回路の少なくとも一方を備えた処理回路によって実行されればよい。
【００７８】
なお、専用のハードウェア回路を備える場合、サイクル１次成分を算出するためのフィルタ処理、サイクル２成分を算出するためのフィルタ処理、およびサイクル３次成分を算出するためのフィルタ処理の３つの処理のうちの少なくとも１つの処理を、アナログフィルタにて実行してもよい。
・「そのほか」
【００７９】
クランク軸１２がトルクコンバータ３０および変速装置３２を介して駆動輪３６に連結可能とされる構成であることは必須ではない。たとえば、クランク軸１２に、モータジェネレータおよび駆動輪が機械的に連結された遊星歯車機構が機械的に連結された構成であってもよい。
クランクロータ２０の歯部２２間の間隔としては、１０°ＣＡに限らない。また、瞬時回転時間としては、３０°ＣＡの回転に要する時間に限らない。
【符号の説明】
【００８０】
１０…内燃機関、１２…クランク軸、２０…クランクロータ、２２…歯部、２４…欠け歯部、３０…トルクコンバータ、３２…変速装置、３４…出力軸、３６…駆動輪、４０…制御装置、４２…ＣＰＵ、４４…ＲＯＭ、４６…不揮発性メモリ、５０…クランク角センサ、５２…エアフローメータ、５４…警告灯。
【図１】
2018141410.tif 000003
【図２】
2018141410.tif 000004
【図３】
2018141410.tif 000005
【図４】
2018141410.tif 000006
【図５】
2018141410.tif 000007
【図６】
2018141410.tif 000008
【図７】
2018141410.tif 000009