(57)【要約】【課題】簡易な構成でありながら、失火の発生を精度良く検出すると共に、多気筒機関において連続して失火が生じた場合にあっても、それらの失火気筒を精度良く特定するようにした内燃機関の失火検出装置を提供する。【解決手段】内燃機関（エンジン）１０のクランク角速度DNEを所定クランク角度（１５度）ごとに検出し（ハイパスフィルタ８００ａ）、エンジンの燃焼サイクル（クランク角７２０度）に同期して各気筒ｉのトルク生成をモデル化するように設定された周期関数Fcyl#iを検索して得た値Fcyl#ｉと検出されたクランク角速度との積を算出すると共に、算出された積を所定クランク角度区間にわたって積分して移動平均して相関関数Cr#iを算出し（相間関数算出部８００ｂ、基準信号生成部８００ｃ）、算出された積分値を判定しきい値と比較して失火の発生を検知する（失火判定部８００ｄ）。【選択図】図６
2006183644.tif 000002
【特許請求の範囲】
【請求項１】
内燃機関のクランク角速度を所定クランク角度ごとに検出するクランク角速度検出手段、前記所定クランク角度ごとに、前記内燃機関の燃焼サイクルに同期して各気筒のトルク生成をモデル化するように設定された周期関数を検索して得た値と前記検出されたクランク角速度との積を算出し、前記算出された積を所定区間にわたって積分して積分値を算出する算出手段、および前記算出された積分値を所定値と比較して前記内燃機関の失火の発生を検知する失火検知手段とを備えたことを特徴とする内燃機関の失火検出装置。
【請求項２】
前記所定区間が、前記燃焼サイクルの整数倍に相当する値に設定されることを特徴とする請求項１記載の内燃機関の失火検出装置。
【請求項３】
前記周期関数が、前記内燃機関の運転状態に応じて設定されることを特徴とする請求項１または２記載の内燃機関の失火検出装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、内燃機関の失火検出装置に関する。
【背景技術】
【０００２】
従来、内燃機関の失火検知装置の例として、下記の特許文献１に記載されるように、クランクシャフトの角速度を検出し、失火発生によって生じる角速度の周期的変化をバンドパスフィルタを用いて抽出し、それを用いて失火の有無を判定する技術が提案されている。
【特許文献１】特開平５−１８００６３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
ところで、最近時のエミッション規制の強化に伴ない、失火によるＨＣ排出と触媒劣化促進を抑制するため、失火検知のさらなる精度向上が望まれている。特に、最近時は、いずれかの気筒における失火の有無の判定だけではなく、失火気筒の特定が要求されている。しかしながら、上記した特許文献１記載の失火検知技術のように、単にクランク角速度の周期的変化に基づいて失火検知を行うと、１気筒が失火した場合（単気筒失火）と連続する２気筒が失火した場合（連続２気筒失火）とでは機関回転数変化は同一周期を示すこととなるため、失火している気筒の判別にはピークホールドや絶対値演算あるいは平均処理などの振動成分を除去するためのさまざまな付加的な処理を行わなければならず、検知アルゴリズムの設定に多大な時間を要していた。
【０００４】
従って、この発明の目的は上記した課題を解決し、簡易な構成でありながら、失火の発生を精度良く検出すると共に、多気筒機関において連続して失火が生じた場合にあっても、それらの失火気筒を精度良く特定するようにした内燃機関の失火検出装置を提供することにある。
【課題を解決するための手段】
【０００５】
上記の目的を解決するために、請求項１に係る内燃機関の失火検出装置にあっては、内燃機関のクランク角速度を所定クランク角度ごとに検出するクランク角速度検出手段、前記所定クランク角度ごとに、前記内燃機関の燃焼サイクルに同期して各気筒のトルク生成をモデル化するように設定された周期関数を検索して得た値と前記検出されたクランク角速度との積を算出し、前記算出された積を所定区間にわたって積分して積分値を算出する算出手段、および前記算出された積分値を所定値と比較して前記内燃機関の失火の発生を検知する失火検知手段とを備える如く構成した。
【０００６】
請求項２に係る内燃機関の失火検出装置にあっては、前記所定区間が、前記燃焼サイクルの整数倍に相当する値に設定される如く構成した。
【０００７】
請求項３に係る内燃機関の失火検出装置にあっては、前記周期関数が、前記内燃機関の運転状態に応じて設定される如く構成した。
【発明の効果】
【０００８】
請求項１に係る内燃機関の失火検出装置にあっては、内燃機関のクランク角速度を所定クランク角度ごとに検出し、その所定クランク角度ごとに、燃焼サイクルに同期して各気筒のトルク生成をモデル化するように設定された周期関数を検索して得た値と検出されたクランク角速度との積を算出し、算出された積を所定区間にわたって積分して積分値を算出し、算出された積分値を所定値と比較して内燃機関の失火の発生を検知する如く構成したので、失火の発生を精度良く検出できると共に、多気筒機関において連続して失火が生じた場合にあっても、それらの失火気筒を精度良く特定することができる。
【０００９】
即ち、燃焼によるトルク変動とクランク角速度とは相関する関係にあるが、燃焼サイクルにわたって各気筒におけるトルクの生成をモデル化した周期関数を検索して得た値とクランク角速度との積を求めることで、その相関関係に基づいて失火を検知することができる。また、その積分値を所定区間、例えば所定クランク角度区間にわたって積分することで、振動成分を除去した定数値として算出することができる。よって、算出された積分値を所定値と比較して内燃機関の失火の発生を検知することで、失火の発生を精度良く検出できると共に、多気筒機関において連続して失火が生じた場合にあっても、それらの失火気筒を精度良く特定することができる。
【００１０】
また、失火判定に用いる積分値を振動的な値ではなく、定数値として算出できることとなるため、ピークホールドや絶対値演算あるいは平均処理などの振動成分を除去するための演算処理を省略することができ、演算を簡略化することができる。
【００１１】
請求項２に係る内燃機関の失火検出装置にあっては、所定区間が燃焼サイクルの整数倍に相当する値に設定される如く構成したので、上記した効果に加え、失火判定に用いる積分値を振動的な値ではなく、定数値として一層良く算出することができる。
【００１２】
請求項３に係る内燃機関の失火検出装置にあっては、周期関数が内燃機関の運転状態に応じて設定される如く構成したので、上記した効果に加え、失火判定に用いる積分値を、失火発生時に、通常燃焼と異なった値としてより明確に算出できるようになるため、失火検出精度をさらに向上させることができる。
【発明を実施するための最良の形態】
【００１３】
以下、添付図面に即してこの発明に係る内燃機関の失火検出装置を実施するための最良の形態について説明する。
【実施例１】
【００１４】
図１は、この発明の第１実施例に係る内燃機関の失火検出装置を模式的に示す概略図である。  
【００１５】
以下説明すると、符号１０は内燃機関（以下「エンジン」という）を示し、エンジン１０は４サイクル４気筒のＤＯＨＣ型ガソリンエンジンからなる。エンジン１０は吸気管１２を備え、吸気管１２においてエアクリーナ（図示せず）から吸引された空気はインテークマニホルド（図示せず）を流れる。４個の気筒（シリンダ。１個のみ図示）１４の吸気ポートの付近にはインジェクタ（燃料噴射弁）１６が配置され、通電されるとき、吸引された空気に燃料（ガソリン）を噴射する。尚、４個の気筒の点火順序（燃焼順序）は、＃１（第１）気筒、＃３（第３）気筒、＃４（第４）気筒、＃２（第２）気筒とする。
【００１６】
よって生じた混合気は２個の吸気バルブ（１個のみ示す）２０が開弁するとき、燃焼室２２に流入し、点火プラグ２４で点火されると燃焼し、ピストン２６を図において下方に駆動し、クランクシャフト３０を回転させる。燃焼で生じた排ガスは、２個の排気バルブ（同様に１個のみ示す）３２が開弁するとき、排気マニホルドとそれに接続される排気系３４を通り、触媒装置３６で浄化された後、エンジン１０の外部に排出される。
【００１７】
エンジン１０には、吸気バルブ２０のリフト（開弁高さ）を可変に調節する可変リフト機構４０と、吸気バルブ２０と排気バルブ３２を駆動する吸気カムシャフトと排気カムシャフトの位相（開閉弁時期）を可変に調節する可変位相機構４２と、ピストン２６の上死点（および下死点）を変えて圧縮比を可変に調節する可変圧縮比機構４４とが設けられる。
【００１８】
最初に可変リフト機構４０について説明する。
【００１９】
図２は、図１に示すエンジン１０を動弁系を中心としてより具体的に示す、エンジン１０の側面図である。図示の如く、吸気バルブ２０と排気バルブ３２の上には、吸気カムシャフト５０と排気カムシャフト５２が平行して配置され、クランクシャフト３０にタイミングベルトなど（図示せず）を介して接続され、それぞれクランクシャフト３０の回転数の１／２の回転数で回転させられる。
【００２０】
吸気カムシャフト５０には吸気カム５０ａが取り付けられると共に、その付近にはロッカアーム４０ａが一端では吸気カム５０ａに、他端では吸気バルブ２０のステムの末端に当接するように配置される。ロッカアーム４０ａには、アッパリンクアーム４０ｂが連結ピン４０ｂ１を介して接続される一方、ロアリンクアーム４０ｃも連結ピン４０ｃ１を介して接続される。アップリンクアーム４０ｂは他方の連結ピン４０ｂ２を介してシリンダブロック（エンジン本体）１４ａに固定される。
【００２１】
ロアリンクアーム４０ｃの他方の連結ピン４０ｃ２は、クランクシャフト３０と平行に配置された可動シャフト（コントロールシャフト。図示せず）に接続され、可動シャフトは減速ギヤ（図示せず）を介して電動モータ４０ｄに接続される。上記した構成において、減速ギヤを介して電動モータ４０ｄで可動シャフトを回転させることで、アッパリンクアーム４０ｂの連結ピン４０ｂ１，４０ｂ２を結ぶ線と、ロアリンクアーム４０ｃの連結ピン４０ｃ１，４０ｃ２を結ぶ線が交差する回転中心が移動し、それによって吸気カム５０ａとロッカアーム４０ｂとの距離が変化し、吸気バルブ２０のリフト量が変更（制御）される。
【００２２】
次いで可変位相機構４２について説明すると、可変位相機構４２は吸気カムシャフト５０に接続される。
【００２３】
図３は可変位相機構４２を模式的に示す側面図、図４はその正面図、および図５はその中の電磁ブレーキの構造を模式的に示す正面図である。
【００２４】
図３から図５を参照して説明すると、可変位相機構４２は、プラネタリギヤ機構４２ａと、シリンダブロック１４ａに固定された電磁ブレーキ４２ｂとを備える。プラネタリギヤ機構４２ａにおいて、リングギヤ４２ａ１は上記した吸気カムシャフト５０に固定される。リングギヤ４２ａ１には３個のプラネタリ・ピニオン４２ａ２が相互に１２０度の間隔をおいて噛合する。
【００２５】
図４に良く示す如く、３個のプラネタリ・ピニオン４２ａ２は平面視において正三角形を呈するキャリア４２ａ３で相互に連結されると共に、キャリア４２ａ３を介し、図３に示す如く、（クランクシャフト３０で駆動される）スプロケット５６に接続される。キャリア４２ａ３は、図５に示す電磁ブレーキ４２ｂの接続部材４２ｂ１を介してリターンスプリング（圧縮スプリング）４２ｂ２の一端に接続される。
【００２６】
３個のプラネタリ・ピニオン４２ａ２には、サンギヤ４２ａ４が噛合する。サンギヤ４２ａ４は、同様に図５に示す電磁ブレーキ４２ｂの接続部材４２ｂ３に固定され、接続部材４２ｂ３を介してリターンスプリング４２ｂ２の他端に接続される。
【００２７】
図５に示すように、電磁ブレーキ４２ｂは、サンギヤ４２ａ４に接続される環状の接続部材４２ｂ３の外周に配置される、同様に環状の永久磁石４２ｂ４と、その外周に配置される、同様に環状の電磁石４２ｂ５とを有する。永久磁石４２ｂ４は、Ｎ極とＳ極の磁石片４個が交互に配置された２極構造からなる。
【００２８】
電磁石４２ｂ５もそれに対応して配置された４個の導電体（積層鋼板）からなり、それに巻回されたコイル（図示せず）が図示しない通電回路から通電されるとき、通電方向に応じてＮ極あるいはＳ極に励磁される。このように、電磁ブレーキ４２ｂは、ＤＣモータと同様の構造を備える。
【００２９】
リターンスプリング４２ｂ２は、接続部材４２ｂ１，４２ｂ３を介してサンギヤ４２ａ４がキャリア４２ａ３に対して図５において時計回りに、具体的には遅角方向、より具体的には吸気バルブ２０の開弁時期（および閉弁時期）がクランクシャフト３０の回転に対して遅れる方向に付勢する。
【００３０】
可変位相機構４２にあっては、図示の構成において、クランクシャフト３０の回転に応じてスプロケット５６が図４に矢印ａで示す方向にその１／２の回転数で回転する。スプロケット５６の回転はキャリア４２ａ３を介してプラネタリ・ピニオン４２ａ２に伝達され、図４に矢印ｂで示す方向に回転させ、それによってリングギヤ４２ａ１およびそれに連結される吸気カムシャフト５０をスプロケット５６の回転方向（矢印ａ）と同方向に回転させると共に、サンギヤ４２ａ４を図４に矢印ｃで示す方向に回転させる。
【００３１】
このとき、電磁石４２ｂ５への通電により、サンギヤ４２ａ４に接続部材４２ｂ３を介して接続される永久磁石４２ｂ４の回転を制動（ブレーキ）させるとすると、そのブレーキ力の分だけ吸気カムシャフト５０がスプロケット５６に対して図５に矢印ｄで示す進角方向に移動し、前記した吸気カム５０ａとロッカアーム４０ａとの接触時点をクランク角度に対して早める（進角させる）。
【００３２】
このため、サンギヤ４２ａ４が所定角度相対回転したときにブレーキ力とリターンスプリング力とが釣り合うと、プラネタリ・ピニオン４２ａ２は作動を停止し、スプロケット５６とカムシャフト５０は所定の相対角を維持しながら一体回転する。即ち、ブレーキ力の増減によってカム位相が進角あるいは遅角方向に制御される。尚、詳細な説明は省略するが、排気カムシャフト５２も、同種の可変位相機構４２に接続され、排気バルブ３２の位相（開閉弁時期）が可変に調節（制御）される。
【００３３】
次いで圧縮比可変機構４４について説明する。図２に示す如く、ピストン２６のコネクティングロッド２６ａは、連結ピン４４ａを介し、平面視略３角形状の第１のリンク４４ｂに連結される。
【００３４】
第１のリンク４４ｂは、連結ピン４４ａから偏心させられた位置でクランクシャフト３０を回転自在に収容する孔４４ｂ１を備えると共に、一端で連結ピン４４ｂ２を介して第２のリンク４４ｃに接続される。第２のリンク４４ｃは末端に小径の連結ピン４４ｃ１を備え、連結ピン４４ｃ１は、シリンダブロック１４ａに固定された第３のリンク４４ｄの末端に形成されたそれより大径の可動シャフト（コントロールシャフト）４４ｃ２に偏心して連結される。
【００３５】
図示の第１のリンク４４ｂ、第２のリンク４４ｃおよび第３のリンク４４ｄからなる４節リンク構成において、可動シャフト４４ｃ２を油圧機構４４ｅで回転させることにより、ピストン２６の上死点（および下死点）が変更されて燃焼室２２の圧縮比が可変に調節（制御）される。
【００３６】
図１の説明に戻ると、クランクシャフト３０の付近にはクランク角センサ６０が配置され、４個の気筒１４のクランク角度位置を特定する気筒判別信号、４個のピストン２６のＴＤＣ（上死点）に関連した位置を示すＴＤＣ信号、および単位クランク角度、例えば１５度ごとにクランク角度信号（ＣＲＫ信号）を示す信号を出力する。
【００３７】
吸気カムシャフト５０（図２に示す）の付近にはカムシャフトセンサ６２が配置され、吸気カムシャフト５０の所定の回転角度、例えば１度ごとに信号を出力する。また、可変リフト機構４０において電動モータ４０ｄの減速ギヤの付近にはロータリエンコーダなどからなるリフトセンサ６４が配置され、減速された電動モータ４０ｄの回転を通じて吸気バルブ２０のリフト量（開弁量）Liftinに応じた信号を出力する。さらに、可変圧縮比機構４４においては油圧機構４４ｅの付近に圧縮比センサ６６が配置され、油圧機構４４ｅのストローク（回転量）から燃焼室２２の実圧縮比Crに応じた出力を生じる。
【００３８】
吸気管１２の先端付近にはエアフローメータ（ＡＦＭ）６８が配置されて吸引された空気量Ｑに応じた信号を出力すると共に、気筒１４の冷却水通路（図示せず）の付近には水温センサ７０が配置され、エンジン１０の冷却水温ＴＷを示す信号を出力する。
【００３９】
さらに、エンジン１０が搭載される車両（図示せず）の運転席床面に配置されたアクセルペダル（図示せず）の付近にはアクセル開度センサ７４が配置され、運転者の操作するアクセル開度（アクセルペダル踏み込み量）ＡＰに応じた信号を出力する。
【００４０】
上記したセンサ群の出力は、ＥＣＵ（Electronic Control Unit。電子制御ユニット）８０に入力される。ＥＣＵ８０は図示の如く、ＣＰＵ８０ａ、メモリ８０ｂ、入力インターフェース８０ｃおよび出力インターフェース８０ｄならびに図示しないＡ／Ｄ変換回路、波形整形回路、カウンタなどからなるマイクロコンピュータから構成される。ＥＣＵ８０には、ミル（Malfunction Indicator Lamp。警告灯）８０ｅが接続される。
【００４１】
クランク角センサ６０などの出力は波形整形回路で波形整形されると共に、エアフローメータ６８などの出力はＡ／Ｄ変換回路でデジタル値に変換される。ＥＣＵ８０は、クランク角センサ６０から出力されるＣＲＫ信号をカウンタを介してカウントし、エンジン回転数ＮＥを検出する。またＥＣＵ８０は、ＣＲＫ信号とカムシャフトセンサ６２の出力に基づいてカム位相Cain（吸気バルブ２０の開閉弁時期）を検出する。
【００４２】
ＥＣＵ８０は、それらの値およびその他のセンサ出力に基づき、後述するように、エンジン１０の可変位相機構４２などの可変機構と、燃料噴射量と、点火時期とを制御する。
【００４３】
図６は、そのＥＣＵ８０の動作の中の失火検出動作を機能的に示すブロック図である。
【００４４】
同図の説明に入る前に、この発明の課題を再度説明すると、前記したように、近年、いずれかの気筒における失火の有無の判定だけではなく、失火気筒の特定が要求されているが、上記した特許文献１記載の技術のように、単にクランク角速度の周期的変化に基づいて失火検知を行うと、図２２に示す如く、１気筒が失火した場合（単気筒失火）と連続する２気筒が失火した場合（連続２気筒失火）とでは機関回転数変化は同一周期を示すこととなるため、失火している気筒の判別にはさまざまな付加的な処理を行わなければならず、検知アルゴリズムの設定に多大な時間を要していた。
【００４５】
従って、この実施例に係る失火検出装置にあっては、その課題を解決するため、図６に示すように構成した（アルゴリズムを構築した）。図示の装置は、ハイパスフィルタ８００ａと、相関関数算出部８００ｂと、基準周期信号生成部８００ｃと、失火判定部８００ｄとを備える。尚、この実施例で失火は気筒ごとに検出されることから、気筒１４のそれぞれには気筒番号ｉ（ｉ＝１から４）を付して特定される。
【００４６】
以下説明すると、先ず、ハイパスフィルタ８００ａにおいて、クランク角センサ６０から出力されるＣＲＫ信号から検出されるエンジン回転数ＮＥをフィルタリングする。具体的には、以下の差分演算により、クランク角速度DNEを所定クランク角度（例えば１５度)ごとに算出する。
【００４７】
【数１】
2006183644.tif 000003
【００４８】
次に、相関関数算出部８００ｂにおいて、エンジン１０の１燃焼サイクル（クランク角７２０度）に同期して各気筒のトルク生成をモデル化するように基準周期信号生成部８００ｃで生成（設定）された周期関数Fcyl#i（以下「基準周期信号」という)を、上記所定クランク角度（例えば１５度)ごとに検索して値Fcyl#ｉを得、得た値と検出されたクランク角速度DNEとの積を乗算段８００ｂ１で算出する。次いで、算出された積を１燃焼サイクル（所定クランク角度区間）にわたって積分段８００ｂ２で積分すると共に、除算段８００ｂ３でその移動平均値を算出して相関関数Cr#i（積分値）とする（算出する）。以下にその算出を示す。尚、この明細書および図面で乗算記号は省略した。
【００４９】
【数２】
2006183644.tif 000004
【００５０】
図７に、基準周期信号Fcyl#iの特性を示す。各気筒ｉの燃焼によるトルク変動（生成）とクランク角速度とは相関する関係にあるため、この実施例に係る装置にあっては、１燃焼サイクルにわたって各気筒におけるトルクの生成をモデル化した基準周期信号Fcyl#i（周期関数）を検索して得た値とクランク角速度との積を求めることで、その相関関係に基づいて失火を検知するようにした。
【００５１】
また、その積分値（相関関数Cr#i）を所定クランク角度区間（所定区間）にわたって積分して移動平均を求めることで、振動成分を除去した定数値として算出するようにした。それについて説明すると、図６に示す相関関数Cr#iなどの、関数f1とf2の相関関数(相互相関関数)Fは、一般的に以下のように定義される。
【００５２】
【数３】
2006183644.tif 000005
【００５３】
ここで、関数f1とf2をそれぞれ以下のように定義する。
【００５４】
【数４】
2006183644.tif 000006
【００５５】
また、数３に示す式のNを以下のように定義する。
【００５６】
【数５】
2006183644.tif 000007
【００５７】
上記で、関数f1,f2の周期と相関関数Fの算出区間を異ならせた場合の相関関数を求めると、図８に示すようになる。図８から明らかなように、相関関数Fの算出区間を関数f1,f2の周期と異ならせた場合、相関関数は周期的な変化を示す。
【００５８】
他方、相関関数Fの算出区間を以下のように関数f1,f2の周期と同一にすると、図９に示すようになる。
【００５９】
【数６】
2006183644.tif 000008
【００６０】
図９から明らかな如く、相関関数Fの算出区間を関数f1,f2の周期と同一または整数倍とすると、相関関数Fは常に一定の値となり、周期的挙動を示さなくなる。この実施例にあっては、その相関関数の特性に着目し、積分区間を１燃焼サイクル（クランク角７２０度）と同一とした。尚、上記から明らかな如く、積分区間は、１燃焼サイクルのｎ倍（ｎ：２以上の整数）であっても良い。
【００６１】
図示の構成にあっては、失火判定部８００ｄにおいて、以下に示すように、相関関数Cr#iと判定しきい値（所定値）Cr_misfを比較することにより、気筒ｉのそれぞれにおける失火の発生を判定（検出）する。
【００６２】
【数７】
2006183644.tif 000009
【００６３】
尚、図６に示す構成において、相関関数算出部８００ｂおよび失火判定部８００ｄは、ＥＣＵ８０のＣＰＵ８０ａが行う動作である。また、基準周期信号生成部８００ｃについては具体的には、図７に示す特性を格納するメモリ８０ｂがそれに相当する。
【００６４】
次いで、図６に示す装置の動作を説明する。
【００６５】
図１０および図１１は、その動作を示すフロー・チャートである。
【００６６】
図１０に示すプログラムは相関関数Cr#iを算出する処理であり、前記した所定クランク角度（クランク角１５度）ごとに＃１，＃３，＃４，＃２気筒の順序（点火順）で気筒ごとに実行される。図９に示すプログラムはそれに基づく失火検出を行う処理であり、前記した所定クランク角度区間（１燃焼サイクル（クランク角７２０度））ごとに同様の気筒順で実行される。
【００６７】
最初に図１０に示す処理を説明すると、Ｓ１０においてクランク同期サイクルカウンタC_crkの値を１つインクリメントし、Ｓ１２に進んでカウンタの値が４８を超えるか否か判断する。Ｓ１２で肯定されるときはＳ１４に進み、カウンタの値を０にリセットする。即ち、このカウンタの値は４７になったときはクランク角において７２０度に到達したことを意味することから、零に初期化する。尚、Ｓ１２で否定されるときはＳ１４をスキップする。
【００６８】
次いでＳ１６に進み、カウンタの値（クランク角度を示す）とエンジン１０の負荷状態（具体的には吸気量目標値。後述）とエンジン回転数ＮＥとから、メモリ８０ｂにマップ化されて格納されている図示の特性（図７のそれに基本的に同じ）を検索し、該当の気筒について基準周期信号Fcly#iを検索する。
【００６９】
即ち、基準周期信号生成部８００ｃにあっては、失火検出精度の一層の向上のため、エンジン負荷に応じて（図７に示す）基準周期信号Fcyl#iを変更（スケージュール）すると共に、エンジン回転数ＮＥの上昇に伴なうクランク角センサ６０の応答（検知）遅れを補償するため、エンジン回転数ＮＥに応じても変更するようにした。
【００７０】
具体的には、基準周期信号は、負荷の増減に応じて最大値が増減するように設定される。また、クランク角センサ６０の応答遅れの絶対時間はエンジン回転数ＮＥの上昇につれて延長されるため、エンジン回転数ＮＥの上昇に応じて遅角するように設定される。
【００７１】
このように、基準周期信号Fcyl#iを、エンジン１０の運転状態に応じて変更するようにした。尚、同一の意図から、同様の運転パラメータに基づいて判定しきい値Cr_misf#iを変更（スケージュール）しても良い。
【００７２】
次いでＳ１８に進み、式１−１および式１−３に示す式に従って前記したクランク角速度DNEと相関関数Cr#iを算出する。
【００７３】
続いて図１１の処理を説明する。尚、図示のプログラムは上記したようにクランク角７２０度、即ち、各気筒ｉの燃焼サイクルごとに実行されると共に、それぞれの気筒ｉの燃焼タイミング（例えば排気行程ＴＤＣ）に同期して実行される。例えば、＃３気筒についていえば、＃３，＃４，＃２，＃１と点火されて燃焼された後、＃３気筒の排気行程ＴＤＣで実行されることになる。尚、排気行程で実行するのは、当該気筒の燃焼結果を最も早く検知できるためである。
【００７４】
以下説明すると、Ｓ２０において、式１−２、式１−４、式１−５に従って失火判断を行う。即ち、相関関数Cr#iを判定しきい値Cr_misf#iと比較し、相関関数が判定しきい値未満であれば式１−４に従ってF_MISF#i(k)のビットが１にセットすると共に、相関関数が判定しきい値以上であれば式１−５に従ってフラグのビットが０にリセットする。このフラグのビットが１にセットされることは失火発生を、０にリセットされることは正常燃焼（失火発生なし）を意味する。
【００７５】
次いでＳ２２に進み、そのフラグF_MISF#iのビットが１（初期値）か否か判断する。尚、失火は気筒ごとに判断されることから、フラグF_MISF#には気筒番号ｉが付される。Ｓ２２で肯定される、即ち、失火発生と判断されるときはＳ２４に進み、該当気筒の失火発生回数をカウントする失火発生回数カウンタC_misf#iを１つインクリメントし、Ｓ２６に進み、フラグF_MISF#iのビットを０にリセットする。尚、Ｓ２２で否定されて失火発生なしと判断されるときはＳ２４，Ｓ２６の処理をスキップする。
【００７６】
次いでＳ２８に進み、当該気筒の演算回数カウンタC_all#iの値を１つインクリメントし、Ｓ３０に進み、そのカウンタの値が１０００を超えたか否か判断する。Ｓ３０で肯定されるときはＳ３２に進み、失火率しきい値R_milが、失火発生回数カウンタC_misfi#iの値を演算回数カウンタC_all#iの値で除算して得た商を超えるか否か判断する。尚、失火率しきい値R_milは、例えば０．０１（％）などと適宜設定される。この値は各気筒に共通する値である。
【００７７】
Ｓ３２で肯定されるときは失火率しきい値が商を超える、即ち、演算回数１０００以上の中で失火発生回数の占める率である失火率がしきい値以上ではないことを意味するので、そのままプログラムを終了すると共に、否定されるときは失火率が失火率しきい値以上であることを意味するので、Ｓ３４に進み、ミル８０ｅを点灯する。
【００７８】
尚、Ｓ３０で否定されるときは、以降の処理をスキップする。これは、演算回数が１０００未満であって少ないときに例えば数回の失火が発生した場合、ミル８０ｅを誤点灯するのを防止するためである。
【００７９】
次いで、ＥＣＵ８０が行う他の動作である、エンジン１０の制御動作について説明する。
【００８０】
図１２は、その動作を示すフロー・チャートである。
【００８１】
以下説明すると、Ｓ５０において吸気量制御を実行する。より具体的には、センサ出力から検出されるエンジン１０の運転状態に基づいて可変リフト機構４０、可変位相機構４２および可変圧縮比機構４４を制御し、検出された運転状態からエンジン１０の吸気量が最適となるように制御する。尚、Ｓ５０の処理は、エンジン１０が始動されたときに開始し、以後、所定の時間間隔、例えば１０ｍｓｅｃごとに実行される。また、Ｓ５２，Ｓ５４の処理は、エンジン１０が始動されたときに開始し、以後、ＴＤＣあるいはその付近のクランク角度に同期して実行される。
【００８２】
図１３はその処理を示すサブ・ルーチン・フロー・チャートである。
【００８３】
以下説明すると、Ｓ１００において動弁系、即ち、可変リフト機構４０および可変位相機構４２と、可変圧縮比機構４４とからなる３種の機構の中の少なくともいずれかが故障か否か判断し、肯定されるときはＳ１０２に進み、可変圧縮比機構４４への指令値Ｕ_Crを最終圧縮比となる故障時用指令値Ｕ_Cr_fsに、可変リフト機構４０への指令値Ｕ_Liftinをクリープ走行可能な程度の故障時用指令値Ｕ_Liftin_fsに、また可変位相機構４２への指令値Ｕ_Cainを位相が遅角側となる故障時用指令値Ｕ_Cain_fs（具体的には０（通電量零））に設定する。
【００８４】
Ｓ１００で否定されるときはＳ１０４に進み、エンジン１０が始動中か否か判断する。これは、検出されたエンジン回転数ＮＥが完爆回転数未満か否か判定することで判断する。
【００８５】
Ｓ１０４で肯定されるときはＳ１０６に進み、検出されたエンジン冷却水温ＴＷから図示の特性に従って吸気量の始動用目標値Gcyl_cmd_crkを検索し、Ｓ１０８に進み、検索された値を吸気量目標値Gcyl_cmdとする。
【００８６】
Ｓ１０４で否定されるときはＳ１１０に進み、検出されたアクセル開度ＡＰが全閉開度、即ち、アクセルペダルが踏み込まれていないか否か判断する。Ｓ１１０で否定されるときは運転者による駆動要求がなされたと判断されることからＳ１１２に進み、検出されたエンジン回転数ＮＥとアクセル開度ＡＰとから図示の特性に従って吸気量の駆動用目標値Gcyl_cmd_drvを検索し、Ｓ１１４に進み、検索された値を吸気量目標値Gcyl_cmdとする。
【００８７】
Ｓ１１０で肯定されるときはアイドル状態にあると判断されることからＳ１１６に進み、触媒装置３６の暖機時間が経過したか否か判断する。Ｓ１１６で肯定されるときはＳ１１２に進み、同様に吸気量の駆動用目標値を算出する。尚、この場合、アクセル開度ＡＰが全閉であることから、Ｓ１１０で肯定される場合に比し、駆動用目標値は低負荷側の値、即ち、小さい値となる。
【００８８】
Ｓ１１６で否定されるときはＳ１１８に進み、触媒装置３６の昇温を促進するため、エンジン１０が始動されてからの経過時間と検出されたエンジン冷却水温ＴＷとから図示の特性に従って吸気量の始動後用目標値Gcyl_cmd_astを検索し、Ｓ１２０に進み、検索された値を吸気量目標値Gcyl_cmdとする。尚、図示のプログラムはエンジン１０の始動に従って開始し、以後、１０ｍｓｅｃごとに実行されることから、そのループ回数からエンジン１０が始動されてからの経過時間を求める。
【００８９】
次いでＳ１２２に進み、可変圧縮比機構４４、可変リフト機構４０および可変位相機構４２の目標値である、圧縮比目標値、リフト目標値および位相目標値を算出する。
【００９０】
図１４はその処理を示すサブ・ルーチン・フロー・チャートである。
【００９１】
先ず、Ｓ２００において検出されたエンジン回転数ＮＥと算出された目標吸気量Gcyl_cmdとから図示の特性に従ってリフト目標値Liftin_cmdを算出する。目標吸気量が増加、即ち、高負荷側の値となると共に、エンジン回転数ＮＥが上昇するほど、エンジン１０の吸気行程の時間が短くなることから、必要な吸気量を確保するため、吸気バルブ２０のリフト目標値も増加するように設定される。
【００９２】
次いでＳ２０２に進み、検出されたエンジン回転数ＮＥと検出された実リフト量Liftinとから図示の特性に従って位相目標値Cain_cmdを算出する。ここで、位相目標値が、実リフト量が増加すると共に、エンジン回転数ＮＥが上昇するほど、遅角、即ち、クランク角度において遅れるように設定されるのは、高回転になるほど、吸気行程中に発生した吸気管内の流速が圧縮行程前半にも維持されるようになるため、バルブ開角を遅角化し、圧縮行程前半にも吸気バルブ２０を開いておくことによって高い充填効率を得るためである。
【００９３】
また、低負荷側で進角するように設定されるのは、低負荷において微小な吸気量制御を可能にすることと、オーバラップ増加によって内部ＥＧＲ量の増大とポンピングロスの低減を図ることで効率をさらに向上するためである。
【００９４】
次いでＳ２０４に進み、同様に、検出されたエンジン回転数ＮＥと検出された実リフト量Liftinとから図示の特性に従って圧縮比目標値Cr_cmdを算出する。ここで、圧縮比目標値が、実リフト量が減少するほど、高い値に設定されるのは、燃焼安定性を向上させるためである。また、圧縮比目標値が低回転側で低い値に設定されるのは、低回転側では掃気効果が低下し、残留排ガスが気筒１４の内部で増加して混合気温度が上昇し、さらに筒内流動の低下によって火炎伝播が遅くなり、ノック余裕度が低下するのを回避するためである。また、高回転側で低い値に設定されるのは、ノック抑制のための点火時期の遅角量を減少させるためである。尚、Ｓ２０２，Ｓ２０４で実リフト量から算出するのは、ピストン２６と吸気バルブ２０の干渉を回避するためである。
【００９５】
図１３フロー・チャートの説明に戻ると、次いでＳ１２４に進み、圧縮比、リフト、および位相制御を実行する。即ち、上記した目標値によって可変圧縮比機構４４、可変リフト機構４０および可変位相機構４２を制御する。
【００９６】
図１５は、それらの処理を示すサブ・ルーチン・フロー・チャートである。
【００９７】
尚、これらの制御にあっては、目標値に対するオーバーシュートの発生によるピストン２６と吸気バルブ２０の干渉を防止するため、簡易型の２自由度スライディングモード制御により行われる。
【００９８】
先ず、Ｓ３００において図示の式（ａ）から（ｄ）に基づいてリフト指令値（操作量）U_Liftinを算出する。
【００９９】
以下説明すると、スライディングモード制御は制御量の収束速度を指定できる応答指令型制御であるが、２自由度スライディングモード制御はスライディングモード制御を発展させたものであり、制御量の目標値に対する追従速度と、外乱が印加されたときの制御量の収束速度とを個別指定できる制御である。
【０１００】
２自由度スライディングモード制御にあっては、式（ｄ）に示す如く、目標値追従応答指令パラメータpole_f_lfを用い、一次遅れフィルタアルゴリズムにより、リフト目標値のフィルタ値Liftin_cmd_f(k)が算出される。目標値追従応答指令パラメータpole_f_lfは制御量の目標値に対する追従速度を規定し、図示の如く、−１より大きく、０より小さい値に設定される。尚、（ｋ）は離散系のサンプル番号、より具体的には図１３フロー・チャートの実行時刻である。
【０１０１】
次いで、式（ｃ）に示す如く、リフト検出値Liftin(k)からリフト目標値のフィルタ値Liftin_cmd_f(k)を減算して偏差E_lf(k)を算出し、次いで式（ｂ）に示す如く、偏差の前回値に外乱抑制応答指定パラメータpole_lfを乗じ、よって得た積を偏差の今回値に加算して切換関数σ_lf(k)を算出する。外乱抑制応答指定パラメータpole_lfは外乱が印加されたときの偏差E_lfの収束速度を規定し、図示の如く、−１より大きく、０より小さい値に設定される。
【０１０２】
次いで、式（ａ）に示す如く、切換関数σ_lf(k)に第１のフィードバックゲインKrch_lfの負値を乗じて得た積から、切換関数σ_lf(k)の積分値に第２のフィードバックゲインKadp_lfを乗じて得た積が減算され、リフト指令値（操作量）U_Liftinが算出される。
【０１０３】
式（ａ）において、右辺の第１項は状態量を切換線上にのせるための到達則入力であり、図示のように切換関数の比例項として算出される。また、右辺の第２項は、定常偏差を抑制しつつ、状態量を切換線上にのせるための適応則入力であり、図示のように切換関数の積分項として算出される。尚、第１、第２のフィードバックゲインは、シミュレーションおよび実験などによって設定された値である。
【０１０４】
同時に、算出されたリフト指令値に基づいて可変リフト機構４０の電動モータ４０ｄを動作させてリフト制御を実行する。
【０１０５】
次いでＳ３０２に進み、同様に図示の式（ａ）から（ｄ）に基づいて位相指令値（操作量）U_Cainを算出し、算出された位相指令値に基づいて可変位相機構４２の電磁ブレーキ４２ｂへの通電量を算出してそれを動作させて可変位相制御を実行する。
【０１０６】
次いでＳ３０４に進み、同様に図示の式（ａ）から（ｄ）に基づいて圧縮比指令値（操作量）U_Crを算出し、算出された圧縮比指令値に基づいて可変圧縮比機構４４の油圧機構４４ｅを動作させて圧縮比制御を実行する。
【０１０７】
尚、Ｓ３０２とＳ３０４における指令値の算出自体は、添え字が相違するのみで、Ｓ３００のそれと異ならないので、説明は省略する。
【０１０８】
図１２フロー・チャートの説明に戻ると、次いでＳ５２に進み、燃料制御を実行する。即ち、算出された吸気量目標値Gcyl_cmdと検出されたアクセル開度ＡＰとから予め設定された特性を検索し、理論空燃比となるように燃料噴射量を算出し、算出された燃料噴射量に基づいてインジェクタ１６を駆動する。
【０１０９】
次いでＳ５４に進み、点火制御を実行する。この点火制御は、検出されたエンジン回転数ＮＥと先に算出された吸気量目標値Gcyl_cmdとから所定の特性に従って基準点火時期を検索し、検索した基準点火時期をその他のエンジン運転状態に応じて補正して点火時期を決定することで行われる。
【０１１０】
ここで、前述の図６の構成を用いて図１６の条件下で失火検出のシミュレーションを行った結果を、図１７から図２１に示し、以下にまとめる。
【０１１１】
ＣＡＳＥ１：
失火の発生がなく、各気筒のトルク偏差がない条件であるが、この場合は、図１７に示す如く、失火気筒なしと検出（判定）することができた。
【０１１２】
ＣＡＳＥ２：
失火の発生がなく、＃３気筒のトルクが他の気筒に比べて２０％低い条件であるが、この場合も、図１８に示す如く、＃３気筒を失火と検出（判定）することなく、全気筒が失火なしと検出（判定）することができた。
【０１１３】
ＣＡＳＥ３：
＃１と＃２気筒に比べて＃３気筒のトルクが２０％低く、＃４気筒が失火している条件（単気筒失火）であるが、この場合も、図１９に示す如く、＃４気筒を失火と判定すると共に、他の気筒を失火なしと検出（判定）することができた。
【０１１４】
ＣＡＳＥ４：
＃１気筒に比べて＃３気筒のトルクが２０％低く、＃２気筒と＃４気筒が失火している条件（連続２気筒失火）であるが、この場合も、図２０に示す如く、＃２気筒と＃４気筒を失火と判定する一方、＃１気筒と＃３気筒を失火なしと検出（判定）することができた。
【０１１５】
ＣＡＳＥ５：
＃１気筒と＃２気筒が正常燃焼であり、＃３気筒と＃４気筒が失火している条件（対向２気筒失火）であるが、この場合も、図２１に示す如く、＃３気筒と＃４気筒を失火と判定すると共に、＃１気筒と＃２気筒を失火なしと検出（判定）することができた。
【０１１６】
上記から明らかな如く、この実施例に係る失火検出装置は、所定クランク角度ごとに、燃焼サイクルに同期して各気筒のトルク生成をモデル化するように設定された周期関数Fcyl#i（基準周期信号）を検索して得た値と検出されたクランク角速度との積を算出し、算出された積を所定クランク角度区間にわたって積分すると共に、その移動平均値を求めて相関関数Cr#iとし、それを判定しきい値と比較して失火の発生を検知する如く構成したので、失火の発生を精度良く検出できると共に、多気筒機関において連続して失火が生じた場合にあっても、それらの失火気筒を精度良く特定することができる。
【０１１７】
即ち、燃焼によるトルク変動とクランク角速度とは相関する関係にあるが、燃焼サイクルにわたって各気筒におけるトルクの生成をモデル化した周期関数を検索して得た値とクランク角速度との積を求めることで、その相関関係に基づいて失火を検知することができる。また、その積分値を所定クランク角度区間にわたって積分すると共に、その移動平均を算出することで、振動成分を除去した定数値として算出することができる。よって、算出された積分値を判定しきいと比較することで、失火の発生を精度良く検出できると共に、４気筒を備える場合に連続して失火が生じた場合にあっても、それらの失火気筒を精度良く特定することができる。
【０１１８】
また、失火判定に用いる相関関数Cr#iを振動的な値ではなく、定数値として算出できることとなるため、ピークホールドや絶対値演算あるいは平均処理などの振動成分を除去するための演算処理を省略することができ、演算を簡略化することができる。
【０１１９】
上記の如く、この実施例にあっては、エンジン（内燃機関）１０のクランク角速度DNEを所定クランク角度（１５度）ごとに検出するクランク角速度検出手段（ＥＣＵ８０、ハイパスフィルタ８００ａ，Ｓ１８）、前記所定クランク角度ごとに、前記エンジン（内燃機関）の燃焼サイクル（クランク角７２０度）に同期して各気筒ｉのトルク生成をモデル化するように設定された周期関数Fcyl#i（基準周期信号)を検索して得た値Fcyl#ｉと前記検出されたクランク角速度との積を算出し、前記算出された積を所定区間（より具体的には所定クランク角度区間、より具体的にはクランク角７２０度）にわたって積分して（具体的にはその移動平均値を算出して）相関関数（積分値）Cr#iを算出する算出手段する第１の算出手段（ＥＣＵ８０、相関関数算出部８００ｂ、基準周期信号生成部８００ｃ，Ｓ１０からＳ１８）、および前記算出された積分値を所定値（判定しきい値）Cr_misfと比較して前記エンジン（内燃機関）の失火の発生を検知する失火検知手段（ＥＣＵ８０、失火判定部８００ｄ，Ｓ２０からＳ３４）とを備える如く構成した。
【０１２０】
また、前記所定クランク角度区間が、前記燃焼サイクルの整数倍（例えば１倍）に相当する値に設定される如く構成した。
【０１２１】
また、前記周期関数が、前記エンジン（内燃機関）１０の運転状態、より具体的には負荷（吸気量目標値、エンジン回転数ＮＥ）に応じて設定される如く構成した。
【０１２２】
尚、図６に示す構成においてハイパスフィルタ８００ａを用いたが、離散時間フーリエ変換器あるいはウエーブレット変換器などを用いても良い。
【０１２３】
また、エンジン１０の負荷を示すパラメータとして吸気量目標値を用いたが、それに限られるものではなく、エンジン１０の負荷を示すものならば、どのようなパラメータでも良い。
【０１２４】
また、吸気量の算出などに簡易型のスライディングモード制御を用いたが、他のスライディングモード制御を用いてもよく、さらには適応制御あるいはＰＩＤ制御などの他の制御アルゴリズムを用いても良い。
【図面の簡単な説明】
【０１２５】
【図１】この発明の第１実施例に係る内燃機関の失火検出装置を模式的に示す概略図である。
【図２】図１に示すエンジンを動弁系を中心としてより具体的に示す、エンジンの側面図である。
【図３】図１に示す可変位相機構を模式的に示す側面図である。
【図４】図３に示す可変位相機構の正面図である。
【図５】図４に示す可変位相機構の中の電磁ブレーキの構造を模式的に示す正面図である。
【図６】図１に示すＥＣＵの動作の中の失火検出動作を機能的に示すブロック図である。
【図７】図６の基準周期信号生成部が生成する基準周期信号Fcyl#iの特性を示すグラフである。
【図８】図６に示す相関関数Cr#Iを、関数f1,f2からなる値Fで一般的に示すと共に、その相関関数Fの算出区間を関数f1,f2の周期と異ならせた場合の、相関関数Fの算出結果（シミュレーション結果）を示すグラフである。
【図９】同様に、図６に示す相関関数Cr#Iを関数f1,f2からなる値Fで一般的に示すと共に、その相関関数Fの算出区間を関数f1,f2の周期と同一とした場合の、相関関数Fの算出結果（示すシミュレーション結果）を示すグラフである。
【図１０】図６に示すＥＣＵの失火検出動作の中の相関関数Cr#iを算出処理を示すフロー・チャートである。
【図１１】図６に示すＥＣＵの失火検出動作の中の失火検出処理を示すフロー・チャートである。
【図１２】図１に示すＥＣＵが行う他の動作である、エンジンの制御動作を示すフロー・チャートである。
【図１３】図１２フロー・チャートの吸気量制御のサブ・ルーチン・フロー・チャートである。
【図１４】図１３フロー・チャートの圧縮比目標値、リフト目標値および位相目標値算出のサブ・ルーチン・フロー・チャートである。
【図１５】図１３フロー・チャートの圧縮比、リフトおよび位相制御のサブ・ルーチン・フロー・チャートである。
【図１６】図６の構成を用いて失火検出のシミュレーションを行ったときの、条件を示す説明図である。
【図１７】図１６に示す条件下において図６の構成を用いて失火検出のシミュレーションを行ったときの結果を示すグラフである。
【図１８】同様に、図１６に示す条件下において図６の構成を用いて失火検出のシミュレーションを行ったときの結果を示すグラフである。
【図１９】同様に、図１６に示す条件下において図６の構成を用いて失火検出のシミュレーションを行ったときの結果を示すグラフである。
【図２０】同様に、図１６に示す条件下において図６の構成を用いて失火検出のシミュレーションを行ったときの結果を示すグラフである。
【図２１】同様に、図１６に示す条件下において図６の構成を用いて失火検出のシミュレーションを行ったときの結果を示すグラフである。
【図２２】従来技術を用いて失火検出のシミュレーションを行ったときの結果を示すグラフである。
【符号の説明】
【０１２６】
１０  エンジン（内燃機関）、２０  吸気バルブ、２２  燃焼室、４０  可変リフト機構、４２  可変位相機構、４４  可変圧縮比機構、６０  クランク角センサ、８０  ＥＣＵ（電子制御ユニット）、８００ａ  ハイパスフィルタ、８００ｂ  相関関数算出部、８００ｃ  基準周期信号生成部、８００ｄ  失火判定部
【図１】
2006183644.tif 000010
【図２】
2006183644.tif 000011
【図３】
2006183644.tif 000012
【図４】
2006183644.tif 000013
【図５】
2006183644.tif 000014
【図６】
2006183644.tif 000015
【図７】
2006183644.tif 000016
【図８】
2006183644.tif 000017
【図９】
2006183644.tif 000018
【図１０】
2006183644.tif 000019
【図１１】
2006183644.tif 000020
【図１２】
2006183644.tif 000021
【図１３】
2006183644.tif 000022
【図１４】
2006183644.tif 000023
【図１５】
2006183644.tif 000024
【図１６】
2006183644.tif 000025
【図１７】
2006183644.tif 000026
【図１８】
2006183644.tif 000027
【図１９】
2006183644.tif 000028
【図２０】
2006183644.tif 000029
【図２１】
2006183644.tif 000030
【図２２】
2006183644.tif 000031