(57)【要約】【課題】特に奇数気筒数エンジンにおいて、失火検出用のクランク周期計測用ロータの製造ばらつきなどによる失火検出性の低下を防止した内燃機関制御装置を得る。【解決手段】クランク角信号ＳＧＴを生成するクランク角検出手段１０１と、クランク角信号に基づき各気筒に見合った燃焼行程周期ＴＣｃｙｃ（ｉ）および吸気行程周期ＴＩｃｙｃ（ｉ）を求める周期計測手段１０３と、各行程周期の比率に基づく周期変動から失火を検出する失火検出手段１０８とを備えている。周期計測手段１０３は、クランク角信号ＳＧＴの同一個所を用いて各行程時間を計測する。失火検出手段１０８は、クランク角信号プレート歯の配設ばらつきの影響を受けることなく高精度に失火を検出する。【選択図】図１
2008069692.tif 000002
【特許請求の範囲】
【請求項１】
内燃機関のクランク軸に設けられてクランク角信号を生成するクランク角検出手段と、
前記クランク角信号に基づいて前記内燃機関の各気筒に見合った燃焼行程に相当するクランク角区間に要する燃焼行程時間を求める燃焼行程時間計測手段と、
前記クランク角信号に基づいて前記内燃機関の各気筒に見合った吸気行程に相当するクランク角区間に要する吸気行程時間を求める吸気行程時間計測手段と、
前記吸気行程時間に対する前記燃焼行程時間の比率に基づいて前記内燃機関の失火を検出する失火検出手段とを備え、
前記燃焼行程時間計測手段および前記吸気行程時間計測手段は、前記クランク角信号の同一個所を用いて前記燃焼行程時間および前記吸気行程時間を計測することを特徴とする内燃機関制御装置。
【請求項２】
前記失火検出手段は、前記比率の差分を時間比率偏差として算出するとともに、前記時間比率偏差の差分をさらに求め、前記時間比率偏差の差分をあらかじめ設定した判定値と比較することにより、前記内燃機関の失火を検出することを特徴とする請求項１に記載の内燃機関制御装置。
【請求項３】
前記燃焼行程時間または前記吸気行程時間は、前記内燃機関に失火が発生していない状態において、前記燃焼行程時間と前記吸気行程時間との偏差が排除されるように補正されることを特徴とする請求項１に記載の内燃機関制御装置。
【請求項４】
前記燃焼行程時間計測手段および前記吸気行程時間計測手段による計測クランク角区間は、前記内燃機関の運転状態に応じて変更されることを特徴とする請求項１に記載の内燃機関制御装置。
【請求項５】
前記燃焼行程時間計測手段および前記吸気行程時間計測手段による計測クランク角区間は、前記内燃機関が低回転であるほど進角側に変更され、前記内燃機関が高回転であるほど遅角側に変更されることを特徴とする請求項４に記載の内燃機関制御装置。
【請求項６】
前記燃焼行程時間計測手段および前記吸気行程時間計測手段による計測クランク角区間は、前記内燃機関が低負荷であるほど遅角側に変更され、前記内燃機関が高負荷であるほど進角側に変更されることを特徴とする請求項４に記載の内燃機関制御装置。
【請求項７】
前記時間比率偏差を算出する過程において、前記時間比率偏差の短縮側の値が制限されることを特徴とする請求項２に記載の内燃機関制御装置。
【請求項８】
前記時間比率偏差の算出時における前記時間比率偏差の短縮側の制限処理は、前記内燃機関の運転状態に応じて実行の有無が切り替えられることを特徴とする請求項７に記載の内燃機関制御装置。
【請求項９】
前記内燃機関の気筒数は、奇数であることを特徴とする請求項１から請求項８までのいずれか１項に記載の内燃機関制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、失火検出手段を備えた内燃機関制御装置に関し、特に内燃機関の回転変動を利用して失火を検出する際の検出性能を向上させた内燃機関制御装置に関するものである。
【背景技術】
【０００２】
従来の内燃機関制御装置としては、連続失火の場合において回転検出用ロータの同一セグメントの周期偏差に基づいて回転変動率を算出し、点火周期ごとの回転周期により失火を検出するものが提案されている（たとえば、特許文献１参照）。
【０００３】
また、他の従来装置として、今回制御気筒の爆発行程の回転角度分回転する時間と、次回制御気筒の爆発行程の回転角度分回転する時間との第１の時間差を求めるとともに、今回の爆発行程から３６０度位相差のある位置の回転角度分回転する時間と、次回の爆発行程から３６０度位相差のある位置の回転角度分回転する時間との第２の時間差を求め、第１の時間差と第２の時間差との時間偏差に基づいて失火を検出するものが提案されている（たとえば、特許文献２参照）。
【０００４】
上記特許文献１、２のように、回転周期の差分に基づく失火検出は、気筒数が偶数の内燃機関（エンジン）に対しては有効である。
すなわち、気筒数が偶数の内燃機関においては、回転検出用ロータの同一セグメントは他気筒の同一行程であるので、失火気筒の検出は、失火していない他気筒と直接比較されることにより可能となる。
【０００５】
一方、気筒数が奇数の内燃機関においては、回転検出用ロータの同一セグメントが他気筒の行程位置とは異なり、他気筒の同一行程と比較して失火検出を行う場合に、回転検出用ロータの同一セグメントを使用することができないので、回転検出用ロータの異なる部分を使用することになる。
したがって、計測周期に製造公差などに起因したばらつき誤差が含まれることから、失火検出性が低下する可能性がある。
【０００６】
また、気筒数が奇数の内燃機関において、回転検出用ロータの同一セグメントを使用して失火検出を行う場合には、失火気筒と比較される他気筒が失火気筒と同一の行程にないので、周期が異なる場合があり、回転検出用ロータのばらつきによる失火検出性の低下はないものの、周期が異なることに起因して失火検出性が悪化する可能性がある。
【０００７】
また、たとえば燃焼行程時間と吸気行程時間との差分に基づいて失火検出値を算出すると、回転検出用ロータの配設位置にばらつきがある場合には、回転検出用ロータの配設位置にばらつきがない場合と比べて演算結果が異なり、回転検出用ロータの配設ばらつきに対する補償が不十分となる。
【０００８】
次に、図１２のタイミングチャートを参照しながら、３気筒（＃１〜＃３）の内燃機関におけるばらつき有無に対する差分演算結果の差異について、具体的に説明する。
図１２において、上段側は、回転検出用ロータにばらつきが存在しない場合のクランク角信号に対する処理を示し、下段側は、回転検出用ロータにばらつきが存在する場合のクランク角信号に対する処理を示している。
【０００９】
図１２内において、各計測時間は、各気筒の上死点ＴＤＣを基準としており、クランク角［ｄｅｇＣＡ］および時間［ｍｓ］の具体的数値は、それぞれ一例である。
たとえば、図１２内の下段側においては、回転検出用ロータの行程時間演算に用いる歯の配設位置が、１８０度（１８０［ｄｅｇＣＡ］）に対して１０％（＝１８度）ばらついた場合を示している。
【００１０】
図１２内の左端に示す＃１ＴＤＣの行程は失火行程であり、他の行程に比べて、クランク角信号のパルス間隔が長くなり、同一クランク角度だけ回転するのに時間を要している。
まず、回転検出用ロータにばらつきが存在しない場合（図１２内の上段参照）には、今回の燃焼行程時間Ｔａ１および次回の燃焼行程時間Ｔａ２と、今回の吸気行程時間Ｔｂ１および次回の吸気行程時間Ｔｂ２とを用いて、上記特許文献２の式を適用すれば、第１の時間差と第２の時間差との時間偏差ΔＴＡは、以下の式（１）から求められる。
【００１１】
ΔＴＡ＝（Ｔａ１−Ｔａ２）−（Ｔｂ１−Ｔｂ２）
＝（１５［ｍｓ］−１０［ｍｓ］）−（１０［ｍｓ］−１０［ｍｓ］）
＝５［ｍｓ］      ・・・（１）
【００１２】
式（１）で求めた時間偏差ΔＴＡは、失火判定値と比較され、時間偏差ΔＴＡが失火判定値以上を示す場合に失火発生状態と判定される。
一方、回転検出用ロータにばらつきが存在する場合（図１２内の下段参照）には、時間偏差ΔＴＢは、今回の燃焼行程時間Ｔａ１’および次回の燃焼行程時間Ｔａ２と、今回の吸気行程時間Ｔｂ１’および次回の吸気行程時間Ｔｂ２とを用いて、以下の式（２）から求められる。
【００１３】
ΔＴＢ＝（Ｔａ１’−Ｔａ２）−（Ｔｂ１’−Ｔｂ２）
＝（１２［ｍｓ］−１０［ｍｓ］）−（８［ｍｓ］−１０［ｍｓ］）
＝４［ｍｓ］      ・・・（２）
【００１４】
このように、回転検出用ロータのばらつきに有無により、時間偏差ΔＴＡ、ΔＴＢの演算結果は異なるので、ばらつき発生により失火検出性が低下することが懸念される。
【００１５】
【特許文献１】特開平６−２６０９号公報
【特許文献２】特開平７−２１７４８８号公報
【発明の開示】
【発明が解決しようとする課題】
【００１６】
以上のように、従来の内燃機関制御装置は、周期偏差に基づいて失火検出しているので、内燃機関の気筒数が奇数の場合に、回転検出用ロータなどにばらつき誤差が含まれていると、失火検出性が低下するという課題があった。
また、内燃機関の気筒数が奇数の場合に、回転検出用ロータの同一セグメントを使用して失火検出を行う場合には、失火気筒と比較する他気筒が失火気筒と同一の行程にないことから、周期が異なることによって失火検出性の悪化を招くという課題があった。
さらに、燃焼行程時間と吸気行程時間との差分を算出した場合には、回転検出用ロータの配設位置にばらつきに起因して演算結果が異なるので、回転検出用ロータの配設ばらつきに対する補償が不十分となり、正確に失火を検出することができないという課題があった。
【００１７】
この発明は、上記のような課題を解決するためになされたものであり、回転検出用ロータの製造ばらつきがあっても、そのばらつきに影響されることなく、高精度の失火検出が可能な内燃機関制御装置を得ることを目的とする。
【課題を解決するための手段】
【００１８】
この発明による内燃機関制御装置は、内燃機関のクランク軸に設けられてクランク角信号を生成するクランク角検出手段と、クランク角信号に基づいて内燃機関の各気筒に見合った燃焼行程に相当するクランク角区間に要する燃焼行程時間を求める燃焼行程時間計測手段と、クランク角信号に基づいて内燃機関の各気筒に見合った吸気行程に相当するクランク角区間に要する吸気行程時間を求める吸気行程時間計測手段と、吸気行程時間に対する燃焼行程時間の比率に基づいて内燃機関の失火を検出する失火検出手段とを備え、燃焼行程時間計測手段および吸気行程時間計測手段は、クランク角信号の同一個所を用いて燃焼行程時間および吸気行程時間を計測するものである。
【発明の効果】
【００１９】
この発明によれば、気筒数が奇数のエンジンにおいても、燃焼行程時間と吸気行程時間との比率に基づいて失火を検出することができ、回転検出用ロータの製造ばらつきなどに影響されることなく、高精度に失火を検出することができる。
【発明を実施するための最良の形態】
【００２０】
実施の形態１．
以下、図面を参照しながら、この発明の実施の形態１について詳細に説明する。
図１はこの発明の実施の形態１に係る内燃機関制御装置の基本的な主要部機能構成を概念的に示すブロック図である。
また、図２はこの発明に係る内燃機関制御装置のシステム全体を示す構成図である。
【００２１】
図１において、コントロールユニット（以下、「ＥＣＵ」という）１００は、内燃機関（後述する）に設けられたクランク角検出手段１０１および負荷検出手段１０２とともに、内燃機関制御装置の主要部を構成している。
クランク角検出手段１０１は、内燃機関のクランク軸（図示せず）に設けられてクランク角信号ＳＧＴを生成する。また、負荷検出手段１０２は、内燃機関の負荷情報として、たとえば吸気管圧力Ｐｂを生成する。
【００２２】
ＥＣＵ１００は、周期計測手段１０３と、検出値演算手段１０４と、回転速度演算手段１０５と、判定値演算手段１０６と、比較手段１０７と、失火検出手段１０８とを備え、クランク角検出手段１０１および負荷検出手段１０２からの検出信号を入力情報とした演算処理を実行する。
【００２３】
ＥＣＵ１００内において、周期計測手段１０３は、クランク角信号ＳＧＴに基づく燃焼行程周期（時間）計測手段および吸気行程周期（時間）計測手段を含み、クランク角信号ＳＧＴの同一個所を用いて、燃焼行程周期ＴＣｃｙｃ（ｉ）および吸気行程周期ＴＩｃｙｃ（ｉ）を計測する。
燃焼行程周期ＴＣｃｙｃ（ｉ）は、内燃機関の各気筒に見合った燃焼行程に相当するクランク角区間に要する燃焼行程時間を示し、吸気行程周期ＴＩｃｙｃ（ｉ）は、内燃機関の各気筒に見合った吸気行程に相当するクランク角区間に要する吸気行程時間を示している。以下、各種時間の概念を周期で表現して説明する。
【００２４】
検出値演算手段１０４は、周期計測手段１０３により算出された各行程周期の時間比率を周期比Ｋ（ｉ）として算出するとともに、周期比偏差ΔＫ（ｉ）の偏差を失火検出値Ｋｋａｎ（ｉ）（ｉはサイクル番号）として算出する。
回転速度演算手段１０５は、クランク角信号ＳＧＴのパルス周期に基づいて、エンジン回転速度Ｎｅを算出する。
【００２５】
判定値演算手段１０６は、エンジン回転速度Ｎｅおよび吸気管圧力Ｐｂ（エンジン負荷）に基づくマップ演算により、失火判定値Ｊｋａｎを算出する。
比較手段１０７は、失火検出値Ｋｋａｎ（ｉ）と失火判定値Ｊｋａｎとを比較する。
失火検出手段１０８は、比較手段１０７の比較結果が、Ｋｋａｎ（ｉ）＞Ｊｋａｎを示す場合に、失火状態を検出して失火発生を示す検出結果を警報手段などに出力する。
【００２６】
すなわち、ＥＣＵ１００内の失火検出手段１０８は、燃焼行程周期ＴＣｃｙｃ（ｉ）と吸気行程周期ＴＩｃｙｃ（ｉ）との周期比Ｋ（ｉ）に基づいて、内燃機関の周期変動を計測し、失火を検出するようになっている。
なお、失火検出手段１０８は、検出値演算手段１０４および比較手段１０７の機能を含んでいてもよい。
【００２７】
図２において、内燃機関２００は、たとえば奇数の気筒数を有する３気筒エンジンからなる。
内燃機関２００の吸気管２０３には、内燃機関２００が吸入する空気を浄化するエアクリーナ２０１と、内燃機関２００の吸入空気量Ｑａを検出するエアフローセンサ２０２と、吸入空気量Ｑａを調整するスロットルバルブ２０４と、吸気管圧力Ｐｂを検出する圧力センサ２０５と、内燃機関２００の吸入空気に燃料を供給して混合気を形成するインジェクタ２０６とが設けられている。
【００２８】
圧力センサ２０５は、図１内の負荷検出手段１０２を構成している。
なお、図２には示されていないが、スロットルバルブ２０４には、スロットル開度を検出するスロットル開度センサが設けられていてもよい。
また、負荷検出手段１０２としては、圧力センサ２０５に限らず、たとえばエアフローセンサ２０２またはスロットル開度センサを用いてもよい。
【００２９】
一方、内燃機関２００の排気管２０７には、内燃機関２００から排出される排気ガスの残存酸素量を計量するＯ２センサ２０８と、排気ガスの有害成分であるＨＣ、ＣＯおよびＮＯｘを無害なＣＯ２およびＨ２Ｏに変換する三元触媒２０９とが設けられている。
また、内燃機関２００には、一次コイルに電流を通電および遮断することで二次コイルに高電圧を発生させる点火コイル２１０が設けられ、内燃機関２００の燃焼室内には、高電圧により火花を発生させる点火プラグ２１１が設けられている。
【００３０】
さらに、内燃機関２００には、カム角信号ＳＧＣを発生するカム角センサ２１２と、カム角センサ２１２からカム角信号ＳＧＣを発生させるための突起または窪みが形成されたカム角センサプレート２１３と、クランク角信号ＳＧＴを発生するクランク角センサ２１４と、クランク角センサ２１４からクランク角信号ＳＧＴを発生させるための突起または窪みが形成されたクランク角センサプレート２１５と、内燃機関２００を冷却する冷却水２１６と、冷却水２１６の水温Ｗｔを検出する水温センサ２１７とが設けられている。
クランク角センサ２１４およびクランク角センサプレート（回転検出用ロータ）２１５は、図１内のクランク角検出手段１０１を構成している。
【００３１】
ＥＣＵ１００は、各種センサ（エアフローセンサ２０２、圧力センサ２０５、Ｏ２センサ２０８、カム角センサ２１２、クランク角センサ２１４、水温センサ２１７など）からの検出信号（吸入空気量Ｑａ、吸気管圧力Ｐｂ、残存酸素量、カム角信号ＳＧＣ、クランク角信号ＳＧＴ、水温Ｗｔなど）を入力情報として、内燃機関２００の各種アクチュエータ（インジェクタ２０６、点火コイル２１０など）に対する制御量（燃料噴射量、点火タイミングなど）を演算し、制御信号を出力する。
【００３２】
次に、図３のタイミングチャートを参照しながら、この発明の実施の形態１によるクランク角センサ信号ＳＧＴおよびカム角センサ信号ＳＧＣを用いた周期計測処理について説明する。
図３は内燃機関２００の気筒数が奇数の場合の周期計測処理を示しており、３気筒エンジンの各気筒（＃１〜＃３）の行程とクランク角信号ＳＧＴおよびカム角信号ＳＧＣの出力タイミングとの関係を示している。
【００３３】
図３において、クランク角信号ＳＧＴは、クランク角で１０度（１０［ｄｅｇＣＡ］）ごとにパルス信号を出力するようになっている。
また、クランク角センサプレート２１５には、所定角度位置（図３内のＳＧＴの点線部分）においてパルス信号を出力しないように、欠け歯部分が設けられている。
【００３４】
欠け歯部分（所定角度位置）において、クランク角信号ＳＧＴのパルス信号は、１歯または２歯連続で欠落しており、これにより、欠け歯部分のパルス信号間隔は、１歯欠落の場合には２０度、２歯欠落の場合には３０度となる。
たとえば、１歯欠落の場合の欠け歯位置は、以下の式（３）の条件を満たすことから検出することができる。
【００３５】
｛Ｔ（ｎ−１）／Ｔ（ｎ）＋Ｔ（ｎ−１）／Ｔ（ｎ−２）｝／２≧１．５、かつ、
｛Ｔ（ｎ−１）／Ｔ（ｎ）＋Ｔ（ｎ−１）／Ｔ（ｎ−２）｝／２＜２．５・・・（３）
【００３６】
また、２歯欠落の場合の欠け歯位置は、以下の式（４）の条件を満たすことから検出することができる。
【００３７】
｛Ｔ（ｎ−１）／Ｔ（ｎ）＋Ｔ（ｎ−１）／Ｔ（ｎ−２）｝／２≧２．５・・・（４）
【００３８】
ただし、式（３）、式（４）において、Ｔ（ｎ）は今回のクランク角信号ＳＧＴの時間間隔（今回値）であり、Ｔ（ｎ−１）は前回のクランク角信号ＳＧＴの時間間隔（前回値）であり、Ｔ（ｎ−２）は前々回のクランク角信号ＳＧＴの時間間隔（前々回値）である。
また、欠け歯検出時点でのクランク角位置は、各気筒のＢＴＤＣ７５度またはＡＴＤＣ４５度となる。
【００３９】
ここで、前回の欠け歯検出から今回の欠け歯検出までの欠け歯間のカム角信号ＳＧＣのパルス数を計数すれば、今回の欠け歯数（１歯、または、２歯）と、欠け歯間のカム角信号ＳＧＣのパルス数との組み合わせに基づいて、以下のように、今回の制御対象気筒およびクランク角位置を判別することができる。
【００４０】
すなわち、欠け歯数が「２」、欠け歯間のカム角信号ＳＧＣのパルス数が「１」であれば、＃１気筒のＢ７５度であることが分かる。
また、欠け歯数が「１」、欠け歯間のカム角信号ＳＧＣのパルス数が「２」であれば、＃３気筒のＢ７５度であることが分かる。
また、欠け歯数が「１」、欠け歯間のカム角信号ＳＧＣのパルス数が「１」であれば、＃２気筒のＢ７５度であることが分かる。
さらに、欠け歯間のカム角信号ＳＧＣのパルス数が「０」の場合には、各気筒のＡ４５度であることが分かる。
【００４１】
以上のように、気筒およびクランク角位置を特定することができれば、各クランク角信号ＳＧＴに対して、クランク番号ＣＲＫｎｏを付けることができ、クランク角信号ＳＧＴを特定することができる。
図３においては、クランク番号ＣＲＫｎｏが、＃１気筒のＢ５度を「０」として、順次「７１」までインクリメントされ、再び「０」に戻る場合を示しており、これにより、各気筒の行程を特定することができる。
【００４２】
なお、欠け歯検出時において、１歯欠けの場合には、たとえば、図３内の「ＣＲＫｎｏ＝５１」から「ＣＲＫｎｏ＝５３」への移行に示すように、「１」だけ余分に加算し、２歯欠けの場合には、たとえば、図３内の「ＣＲＫｎｏ＝６２」から「ＣＲＫｎｏ＝６５」への移行に示すように、「２」だけ余分に加算する。
【００４３】
次に、図３とともに、図４および図５のフローチャートならびに図６の説明図を参照しながら、この発明の実施の形態１による吸気行程時間ＴＩｃｙｃ（ｉ）および燃焼行程時間ＴＣｃｙｃ（ｉ）の算出動作について説明する。
図４および図５の処理ルーチンは、クランク角信号ＳＧＴが入力されるごとに実行される。
なお、図４および図５においては、周期計測用のタイマカウンタおよび気筒判別用の気筒カウンタが設けられており、タイマ値ＴＭは時間経過ごとにアップカウントされ、気筒カウンタ値Ｎは図４の処理が実行されるごとにアップカウントされる。
【００４４】
図４において、まず、気筒カウンタ値Ｎを「１」に初期設定し（ステップ４０１）、タイマ値ＴＭの読み込み処理を実行する（ステップ４０２）。
タイマ値ＴＭの読み込み処理（ステップ４０２）の詳細については、図５とともに後述する。
次に、気筒カウンタ値Ｎを「１」だけ加算（インクリメント）して（ステップ４０３）、気筒カウンタ値Ｎが「３」以下であるか否かを判定する（ステップ４０４）。
【００４５】
ステップ４０４において、Ｎ≦３（すなわち、ＹＥＳ）と判定されれば、ステップ４０２に戻り、タイマ値ＴＭの読み込み処理を繰り返し実行する。
一方、ステップ４０４において、Ｎ＞３（すなわち、ＮＯ）と判定されれば、図４の処理ルーチンを終了する。
【００４６】
なお、ステップ４０４における比較基準値「３」は、内燃機関２００の気筒数に相当している。
ここでは、３気筒エンジンを例にとっているので、ステップ４０４の比較基準値（＝気筒数）は「３」に設定されているが、気筒数に見合った数値に設定され、５気筒エンジンであれば、比較基準値は「５」となる。
【００４７】
図５は図４内のタイマ値読み込み処理（ステップ４０２）を詳細に示している。
なお、クランク番号ＣＲＫｎｏの計数処理は、別途のルーチン（図示せず）で実行されており、図５の処理実行時には、クランク番号ＣＲＫｎｏが特定されているものとする。
図５において、まず、ＥＣＵ１００は、クランク番号ＣＲＫｎｏと、燃焼行程周期ＴＣｃｙｃ（ｉ）の開始点ＣＯＭ＿Ｓ（Ｎ）とを比較し、ＣＲＫｎｏ＝ＣＯＭ＿Ｓ（Ｎ）であるか否かを判定する（ステップ４０５）。
【００４８】
なお、燃焼行程周期ＴＣｃｙｃ（ｉ）の開始点ＣＯＭ＿Ｓ（Ｎ）は、気筒カウンタ値Ｎにしたがう配列で表され、図３に示した周期計測クランク角区間（以下、「周期計測区間」という）の場合を例にとれば、図６に示した表のように定義される。
各気筒（気筒カウンタ値Ｎ＝１、２、３）の燃焼行程周期ＴＣｃｙｃ（ｉ）の開始点ＣＯＭ＿Ｓのクランク番号ＣＲＫｎｏは、たとえば図６のようにあらかじめ設定されている。
【００４９】
ステップ４０５において、ＣＲＫｎｏ＝ＣＯＭ＿Ｓ（Ｎ）（すなわち、ＹＥＳ）と判定されれば、タイマ値ＴＭを燃焼行程開始時刻ＴＣＳ（Ｎ）として取得し（ステップ４０６）、次の判定処理（ステップ４０７）に進む。
タイマ値ＴＭは、フリーランカウンタ値からなり、図４の処理が開始された時点（すなわち、クランク角信号ＳＧＴが入力された時点）の時刻を保持した値となっている。
【００５０】
一方、ステップ４０５において、ＣＲＫｎｏ≠ＣＯＭ＿Ｓ（Ｎ）（すなわち、ＮＯ）と判定されれば、ステップ４０６を実行せずにステップ４０７に進む。
ステップ４０７においては、クランク番号ＣＲＫｎｏと燃焼行程周期ＴＣｃｙｃ（ｉ）の終了点ＣＯＭ＿Ｅ（Ｎ）とを比較し、ＣＲＫｎｏ＝ＣＯＭ＿Ｅ（Ｎ）であるか否かを判定する。
燃焼行程周期ＴＣｃｙｃ（ｉ）の終了点ＣＯＭ＿Ｅ（Ｎ）は、開始点ＣＯＭ＿Ｓ（Ｎ）と同様の配列で表され、図３の周期計測区間の場合を例にとれば、図６の表のように定義され、各気筒の燃焼行程周期ＴＣｃｙｃ（ｉ）の終了点ＣＯＭ＿Ｅのクランク番号ＣＲＫｎｏがあらかじめ設定されている。
【００５１】
ステップ４０７において、ＣＲＫｎｏ＝ＣＯＭ＿Ｅ（Ｎ）（すなわち、ＹＥＳ）と判定されれば、タイマ値ＴＭを燃焼行程終了時刻ＴＣＥ（Ｎ）として取得し（ステップ４０８）、次の判定処理（ステップ４０９）に進む。
タイマ値ＴＭは、前述のようにフリーランカウンタ値からなり、図４の処理が開始された時点（すなわち、クランク角信号ＳＧＴが入力された時点）の時刻を表している。
【００５２】
一方、ステップ４０７において、ＣＲＫｎｏ≠ＣＯＭ＿Ｅ（Ｎ）（すなわち、ＮＯ）と判定されれば、ステップ４０８を実行せずにステップ４０９に進む。
ステップ４０９においては、クランク番号ＣＲＫｎｏと吸気行程周期ＴＩｃｙｃ（ｉ）の開始点ＩＮＴ＿Ｓ（Ｎ）とを比較し、ＣＲＫｎｏ＝ＩＮＴ＿Ｓ（Ｎ）であるか否かを判定する。
吸気行程周期ＴＩｃｙｃ（ｉ）の開始点ＩＮＴ＿Ｓ（Ｎ）は、前述と同様の配列からなり、図３の周期計測区間の場合には、図６のように定義された各気筒の吸気行程周期ＴＩｃｙｃ（ｉ）の開始点ＩＮＴ＿Ｓのクランク番号ＣＲＫｎｏがあらかじめ設定されている。
【００５３】
ステップ４０９において、ＣＲＫｎｏ＝ＩＮＴ＿Ｓ（Ｎ）（すなわち、ＹＥＳ）と判定されれば、タイマ値ＴＭを吸気行程開始時刻ＴＩＳ（Ｎ）として取得し（ステップ４１０）、次の判定処理（ステップ４１１）に進む。
一方、ステップ４０９において、ＣＲＫｎｏ≠ＩＮＴ＿Ｓ（Ｎ）（すなわち、ＮＯ）と判定されれば、ステップ４１０を実行せずにステップ４１１に進む。
【００５４】
ステップ４１１においては、クランク番号ＣＲＫｎｏと吸気行程周期ＴＩｃｙｃ（ｉ）の終了点ＩＮＴ＿Ｅ（Ｎ）とを比較し、ＣＲＫｎｏ＝ＩＮＴ＿Ｅ（Ｎ）であるか否かを判定する。
吸気行程周期ＴＩｃｙｃ（ｉ）の終了点ＩＮＴ＿Ｅ（Ｎ）は、前述と同様の配列からなり、図３の周期計測区間の場合には図６のように定義された各気筒の吸気行程周期ＴＩｃｙｃ（ｉ）の終了点ＩＮＴ＿Ｅのクランク番号ＣＲＫｎｏがあらかじめ設定されている。
【００５５】
ステップ４１１において、ＣＲＫｎｏ＝ＩＮＴ＿Ｅ（Ｎ）（すなわち、ＹＥＳ）と判定されれば、タイマ値ＴＭを吸気行程終了時刻ＴＣＥ（Ｎ）として取得し（ステップ４１２）、図５の処理ルーチンを終了する。
一方、ステップ４１１において、ＣＲＫｎｏ≠ＩＮＴ＿Ｅ（Ｎ）（すなわち、ＮＯ）と判定されれば、ステップ４１１を実行せずに図５の処理ルーチンを終了する。
【００５６】
次に、図１〜図３とともに、図７のフローチャートを参照しながら、この発明の実施の形態１によるＥＣＵ１００の具体的な失火判定処理について説明する。
図７の処理ルーチンは、各気筒＃１〜＃３（気筒番号ｎ＝１、２、３）のＴＤＣ直前のクランク角位置に対応したＢ５度［ｄｅｇＣＡ］のクランク角信号ＳＧＴが入力されるごとに実行される。
【００５７】
図７において、まず、周期計測手段１０３は、燃焼行程終了時刻ＴＣＥ（ｎ）から燃焼行程開始時刻ＴＣＳ（ｎ）を減算して、燃焼行程周期ＴＣｃｙｃ（ｉ）（＝ＴＣＥ（ｎ）−ＴＣＳ（ｎ））を算出する（ステップ５０１）。
図３に示した周期計測区間の場合、＃１気筒のＢ５度においては、＃２気筒の燃焼行程周期ＴＣｃｙｃ（２）および吸気行程周期ＴＩｃｙｃ（２）を算出するために「ｎ＝２」と設定する。
また、＃２気筒のＢ５度においては、＃３気筒の燃焼行程周期ＴＣｃｙｃ（３）および吸気行程周期ＴＩｃｙｃ（３）を算出するために「ｎ＝３」と設定し、＃３気筒のＢ５度においては、＃１気筒の燃焼行程周期ＴＣｃｙｃ（１）および吸気行程周期ＴＩｃｙｃ（１）を算出するために「ｎ＝１」と設定する。
【００５８】
燃焼行程周期ＴＣｃｙｃ（ｉ）の終了点ＣＯＭ＿Ｅ（ｎ）が次のＢ５度（たとえば、図３内の＃１気筒で、クランク番号ＣＲＫｎｏ＝２５）よりも遅角側に設定した場合は、各気筒でのクランク番号ＣＲＫｎｏ（気筒番号ｎ）は、上記よりも１行程だけ遅れて、＃１気筒のＢ５度のとき「ｎ＝３」、＃２気筒のＢ５度のとき「ｎ＝１」、＃３気筒のＢ５度のとき「ｎ＝２」となる。
【００５９】
なお、図３の周期計測区間はあらかじめ設定されており、気筒番号ｎも特定されている。
また、後述するように周期計測区間を運転状態に応じて変更しても、気筒番号ｎは、設定した計測周期により適切に設定されるものとする。
さらに、サイクル番号ｉに関しては、気筒によらず、今回値は「ｉ」、前回値（点火順序が＃１→＃３→＃２であれば、今回が＃１気筒の場合には＃２気筒）は「ｉ−１」となる。
【００６０】
続いて、周期計測手段１０３は、吸気行程終了時刻ＴＩＥ（ｎ）から吸気行程開始時刻ＴＩＳ（ｎ）を減算して、吸気行程周期ＴＩｃｙｃ（ｉ）（＝ＴＩＥ（ｎ）−ＴＩＳ（ｎ））を算出する（ステップ５０２）。
次に、検出値演算手段１０４は、燃焼行程周期ＴＣｃｙｃ（ｉ）を吸気行程周期ＴＩｃｙｃ（ｉ）で除算して、周期比Ｋ（ｉ）（＝ＴＣｃｙｃ（ｉ）／ＴＩｃｙｃ（ｉ））を算出する（ステップ５０３）。
【００６１】
このとき、燃焼行程周期ＴＣｃｙｃ（ｉ）と吸気行程周期ＴＩｃｙｃ（ｉ）との周期比Ｋ（ｉ）を用いることにより、クランク角信号プレート２１５の歯の配設位置にばらつきが生じて、気筒ごとに各行程周期が異なったとしても、ばらつきの影響を排除することができる。
【００６２】
続いて、検出値演算手段１０４は、今回周期比Ｋ（ｉ）から前回周期比Ｋ（ｉ−１）を減算し、周期比偏差ΔＫ（ｉ）（＝Ｋ（ｉ）−Ｋ（ｉ−１））を算出する（ステップ５０４）。
さらに、検出値演算手段１０４は、前回周期比偏差ΔＫ（ｉ−１）から今回周期比偏差ΔＫ（ｉ）を減算し、周期比偏差ΔＫ（ｉ）の偏差からなる失火検出値Ｋｋａｎ（ｉ）（＝ΔＫ（ｉ−１）−ΔＫ（ｉ））を算出する（ステップ５０５）。
【００６３】
一方、判定値演算手段１０６は、エンジン回転速度Ｎｅと吸気管圧力Ｐｂとから失火判定マップＭＡＰを補間参照して、失火判定値Ｊｋａｎを算出する（ステップ５０６）。
なお、失火判定マップＭＡＰは、あらかじめ実験により適合されている。
次に、比較手段１０７は、失火検出値Ｋｋａｎ（ｉ）と失火判定値Ｊｋａｎとを比較し、Ｋｋａｎ（ｉ）＞Ｊｋａｎの関係を満たすか否かを判定する（ステップ５０７）。
【００６４】
ステップ５０７において、Ｋｋａｎ（ｉ）＞Ｊｋａｎ（すなわち、ＹＥＳ）と判定されれば、気筒番号ｍの失火判定フラグＭＩＳＦ（ｍ）を「１」に設定して（ステップ５０８）、図７の処理ルーチンを終了する。
一方、ステップ５０７において、Ｋｋａｎ（ｉ）≦Ｊｋａｎ（すなわち、ＮＯ）と判定されれば、失火判定フラグＭＩＳＦ（ｍ）を「０」にクリアして（ステップ５０９）、図７の処理ルーチンを終了する。
【００６５】
なお、検出値演算手段１０４によるステップ５０５において、失火検出値Ｋｋａｎ（ｉ）は、前回周期比偏差ΔＫ（ｉ−１）から今回周期比偏差ΔＫ（ｉ）を減算して求められるので、失火発生時における失火検出値Ｋｋａｎ（ｉ）の増加タイミングが気筒番号ｎよりも１点火分だけ遅れる。
したがって、失火判定フラグＭＩＳＦ（ｍ）における気筒番号ｍは、各演算時の気筒番号ｎに対して、ｎ＝１のときには「ｍ＝２」、ｎ＝２のときには「ｍ＝３」、ｎ＝３のときには「ｍ＝１」となる。
【００６６】
たとえば＃１気筒が失火した場合には、図３内の実線波形で示すように、＃１気筒の周期時間が、失火していない場合（破線波形参照）に比べて長くなり、燃焼行程周期ＴＣｃｙｃ（１）は吸気行程周期ＴＩｃｙｃ（１）よりも長くなる。
したがって、図７のフローチャート（失火判定処理）を実行することにより、＃１気筒の失火を検出することができる。
【００６７】
次に、図８のタイミングチャートを参照しながら、図４、図５および図７の制御処理を実行したときの具体的な動作について説明する。
図８において、横軸は点火回数（点火サイクル数）を示しており、縦軸は、上段側から、周期時間［ｓ］、周期比Ｋ（ｉ）、周期比偏差ΔＫ（ｉ）、失火検出値Ｋｋａｎ（ｉ）の点火サイクルごとの変化をそれぞれ示している。
【００６８】
図８内の周期時間において、「黒菱形ドット」で示す値は燃焼行程周期ＴＣｃｙｃ（ｉ）に対応し、「黒四角ドット」で示す値は吸気行程周期ＴＩｃｙｃ（ｉ）に対応する。
図８において、失火が発生した点火サイクル「２２サイクル目」の燃焼行程周期ＴＣｃｙｃ（ｉ）は、吸気行程周期ＴＩｃｙｃ（ｉ）に対して長くなる。
これにより、「２２サイクル目」における周期比Ｋ（ｉ）および周期比偏差ΔＫ（ｉ）は増加する。
【００６９】
一方、失火検出値Ｋｋａｎ（ｉ）（図８内の最下段部参照）は、１点火サイクル分だけ遅れた「２３サイクル目」において増加する。
したがって、「２３サイクル目」における失火検出値Ｋｋａｎ（ｉ）を、失火判定値Ｊｋａｎと比較することにより、Ｋｋａｎ（ｉ）＞Ｊｋａｎから、失火を検出することができる。
【００７０】
以下、所定点火回数ごとの失火判定フラグＭＩＳＦ（ｍ）が「１」に設定された回数をカウントし、フラグ設定回数が所定値を越えた時点で、たとえばインジケータランプを点灯させることにより、失火発生状態を運転者に報知する。
【００７１】
このように、クランク角信号ＳＧＴに基づく各行程周期を計測し、周期変動に基づいて失火発生を検出する内燃機関制御装置において、燃焼行程周期計測手段および吸気行程周期計測手段を含む周期計測手段１０３と、周期比Ｋ（ｉ）に基づいて内燃機関２００の失火を検出する失火検出手段１０８とを備え、周期計測手段１０３は、クランク角信号ＳＧＴの同一個所を用いて燃焼行程周期ＴＣｃｙｃ（ｉ）および吸気行程周期ＴＩｃｙｃ（ｉ）を計測し、検出値演算手段１０４は、燃焼行程周期ＴＣｃｙｃ（ｉ）とその１回転前の吸気行程周期ＴＩｃｙｃ（ｉ）との周期比Ｋ（ｉ）に基づいて、失火検出値Ｋｋａｎ（ｉ）を算出する。
【００７２】
これにより、周期比Ｋ（ｉ）に基づく失火検出において、各行程周期を計測するためのクランク角信号プレート２１５（回転検出用ロータ）の各歯の配設位置がばらついたとしても、安定した周期比演算結果が得られるので、失火検出性を損なうことなく失火を検出することができる。
【００７３】
ここで、この発明の実施の形態１と従来装置との差異を明確にするため、前述の図１２を参照しながら、上記効果について説明する。
たとえば、図１２において、従来装置のように偏差のみに基づく検出値を算出する際には、前述の式（１）、式（２）のように、ばらつきの有無によって差が生じたが、この発明のように比率に基づく失火検出値Ｋｋａｎ（ｉ）を算出する際には、ばらつきの有無によって差が生じることはない。
【００７４】
すなわち、図１２において、ばらつきが存在しない場合の燃焼行程時間Ｔａ１と吸気行程時間Ｔｂ１との周期比ＫＡ（ｉ）は、以下の式（５）のように表される。
【００７５】
ＫＡ（ｉ）＝Ｔａ１／Ｔｂ１
＝１５［ｍｓ］／１０［ｍｓ］
＝１．５                ・・・（５）
【００７６】
また、ばらつきが存在する場合の燃焼行程時間Ｔａ１’と吸気行程時間Ｔｂ１’との周期比ＫＡ（ｉ）’は、以下の式（６）のように表される。
【００７７】
ＫＡ（ｉ）’＝Ｔａ１’／Ｔｂ１’
＝１２［ｍｓ］／８［ｍｓ］
＝１．５              ・・・（６）
【００７８】
したがって、周期比Ｋ（ｉ）に基づく失火検出値Ｋｋａｎ（ｉ）は、クランク角信号プレート２１５（回転検出用ロータ）のばらつきによる影響を受けないことが分かる。
【００７９】
また、内燃機関２００の気筒数が奇数の場合でも、燃焼行程周期ＴＣｃｙｃ（ｉ）と吸気行程周期ＴＩｃｙｃ（ｉ）との周期比Ｋ（ｉ）に基づいて失火を検出することができ、製造ばらつきなどに影響されることなく、高精度に失火を検出することができる。
したがって、失火発生状態を正確に運転者に伝えることができ、失火発生による内燃機関２００の排ガス悪化や、三元触媒２０９の劣化を未然に防止するための措置を運転者に促すことができる。
【００８０】
また、クランク角信号プレート２１５にばらつきが存在しても、周期比Ｋ（ｉ）の演算値がほとんど変化なく安定しているので、失火検出性を確保しつつ、失火していない状態に対して余裕のある失火判定値Ｊｋａｎを設定することができるので、悪路走行時の外乱発生などによる周期変動に起因した誤検出を回避低下して、耐誤検出性を向上させることができる。
【００８１】
また、クランク角信号プレート２１５のばらつきに対して、周期比Ｋ（ｉ）の演算値が安定しているので、失火判定値Ｊｋａｎの演算用マップを適合する際に、標準品のクランク角信号プレート２１５を用いて適合するのみでよい。
また、従来装置においては、標準品のクランク角信号プレート２１５で適合した後に、ばらつき品での確認および見直し作業を行う必要があったが、この発明によれば、クランク角信号プレート２１５の製造ばらつきに対して失火検出値Ｋｋａｎ（ｉ）が変化しないので、失火判定値Ｊｋａｎを適合させる作業が不要となり、従来装置に比べて適合工数を削減することができる。
【００８２】
また、検出値演算手段１０４、比較手段１０７および失火検出手段１０８は、周期比Ｋ（ｉ）の差分を周期比偏差ΔＫ（ｉ）（時間比率偏差）として算出するとともに、周期比偏差ΔＫ（ｉ）の差分を失火検出値Ｋｋａｎ（ｉ）として求め、失火検出値Ｋｋａｎ（ｉ）とあらかじめ設定した失火判定値Ｊｋａｎとを比較して内燃機関２００の失火を検出するので、周期比偏差ΔＫ（ｉ）の差分に基づく失火検出値Ｋｋａｎ（ｉ）により、失火の発生時と非発生時との間の差をより明確にすることができ、さらに失火検出性能を向上させることができる。
【００８３】
実施の形態２．
なお、上記実施の形態１（図７参照）では、燃焼行程周期ＴＣｃｙｃ（ｉ）および吸気行程周期ＴＩｃｙｃ（ｉ）の算出（ステップ５０１、５０２）における補正処理について言及しなかったが、内燃機関２００に失火が発生していない状態での各行程周期がほぼ同じ値になるように補正してもよい。
図９は補正処理（ステップ５０２Ａ）を設けたこの発明の実施の形態２による失火判定処理を示すフローチャートである。
【００８４】
図９において、前述（図７参照）と同様の処理については、前述と同一符号を付して詳述を省略する。
また、ＥＣＵ１００の機能構成および装置全体の構成は、図１および図２に示した通りであり、基本的な処理動作は、図３〜図５に示した通りである。
【００８５】
この場合、周期計測手段１０３は、燃焼行程周期ＴＣｃｙｃ（ｉ）の算出（ステップ５０１）に続いて、吸気行程周期ＴＩｃｙｃ（ｉ）を算出（ステップ５０２Ａ）するが、このとき、吸気行程周期ＴＩｃｙｃ（ｉ）に対して補正演算を加える。
すなわち、吸気行程終了時刻ＴＩＥ（ｎ）と吸気行程開始時刻ＴＩＳ（ｎ）との差分に係数Ｋを乗算して、以下に式（７）のように吸気行程周期ＴＩｃｙｃ（ｉ）を算出する。
【００８６】
ＴＩｃｙｃ（ｉ）＝｛ＴＩＥ（ｎ）−ＴＩＳ（ｎ）｝×Ｋ  ・・・（７）
【００８７】
たとえば、図３において失火していない状態では、燃焼行程周期ＴＣｃｙｃ（ｉ）よりも吸気行程周期ＴＩｃｙｃ（ｉ）の方が長い（図３内の１点鎖線で示すように、周期計測期間内での周期時間の平均値が大きい）。
したがって、このような場合に対処するためには、吸気行程周期ＴＩｃｙｃ（ｉ）に乗算する係数Ｋを「１．０」よりも小さい値に設定する。
【００８８】
ただし、計測周期区間の設定によっては、図３の場合とは逆に、吸気行程周期ＴＩｃｙｃ（ｉ）よりも燃焼行程周期ＴＣｃｙｃ（ｉ）の方が大きくなることがあり、その場合には、係数Ｋを「１．０」以上の値に設定する。
つまり、係数Ｋは、失火していない状態での燃焼行程周期ＴＣｃｙｃ（ｉ）と吸気行程周期ＴＩｃｙｃ（ｉ）とがほぼ同じ値になるように設定される。
【００８９】
また、図９では、吸気行程周期ＴＩｃｙｃ（ｉ）の算出（ステップ５０２Ａ）において、係数Ｋの乗算による補正処理を加えたが、燃焼行程周期ＴＣｃｙｃ（ｉ）の算出（ステップ５０１）において補正処理を加えてもよい。
さらに、燃焼行程周期ＴＣｃｙｃ（ｉ）および吸気行程周期ＴＩｃｙｃ（ｉ）の両方の算出において補正処理を加えてもよい。
すなわち、燃焼行程周期ＴＣｃｙｃ（ｉ）または吸気行程周期ＴＩｃｙｃ（ｉ）は、内燃機関２００に失火が発生していない状態において、燃焼行程周期ＴＣｃｙｃ（ｉ）と吸気行程周期ＴＩｃｙｃ（ｉ）との偏差が排除されるように補正されればよい。
【００９０】
このように、失火していない状態での燃焼行程周期ＴＣｃｙｃ（ｉ）および吸気行程周期ＴＩｃｙｃ（ｉ）の各値に偏差が生じる場合には、各値がほぼ同等となるように係数Ｋを用いて補正することにより、失火していない状態での周期比Ｋ（ｉ）の値をほぼ「１」に維持することができるので、失火発生時との差異を明確にして失火検出性を向上させることができる。
【００９１】
すなわち、失火していない状態での燃焼行程周期ＴＣｃｙｃ（ｉ）および吸気行程周期ＴＩｃｙｃ（ｉ）の各周期時間は、互いに異なることが排除されるように補正されることにより、失火していない状態での各行程周期のエンジンサイクル位置の違いおける差分を補償することができるので、失火検出性をさらに向上させることができる。
また、係数Ｋは、あらかじめ所定値に設定されてもよいが、失火していない状態で運転ポイントごとに学習した値に設定してもよく、学習値に設定した場合には、失火検出性をさらに向上させることができる。
【００９２】
実施の形態３．
なお、上記実施の形態１、２では、最適な周期計測位置について言及しなかったが、図１０に示すように、内燃機関２００の運転状態（エンジン回転速度Ｎｅ、吸気管圧力Ｐｂ）に応じて、失火検出用の各行程周期の計測位置を可変設定してもよい。
図１０はこの発明の実施の形態３による周期計測位置の設定処理を示す説明図であり、内燃機関２００の運転状態に応じた最適な周期計測位置のマップデータを示している。
【００９３】
この場合、ＥＣＵ１００内の周期計測手段１０３は、図１０に示すマップデータを有しており、周期計測手段１０３内の燃焼行程周期計測手段および吸気行程周期計測手段による計測クランク角区間（周期計測位置）は、内燃機関２００の運転状態に応じて変更される。
【００９４】
なお、図１０に示す各数値は、クランク角位置Ｂ５度を基準位置とした場合の、各行程周期の計測開始ポイントの遅角量を示している。
したがって、たとえば、７０度［ｄｅｇＣＡ］であれば、Ｂ５度から７０度だけ遅角させた角度位置を示しており、周期計測手段１０３による計測開始ポイントは、クランク角位置Ａ６５度となる。
【００９５】
図１０において、周期計測手段１０３による計測クランク角区間は、エンジン回転速度Ｎｅが低い（内燃機関２００が低回転である）ほど進角側に変更され、周期計測開始ポイントの遅角量は、１３０［ｄｅｇＣＡ］→１１０［ｄｅｇＣＡ］→９０［ｄｅｇＣＡ］→７０［ｄｅｇＣＡ］のように、減少する。
逆に、エンジン回転速度Ｎｅが高い（内燃機関２００が高回転である）ほど、計測クランク角区間は遅角側に変更され、周期計測開始ポイントの遅角量は、７０［ｄｅｇＣＡ］→９０［ｄｅｇＣＡ］→１１０［ｄｅｇＣＡ］→１３０［ｄｅｇＣＡ］のように、増大する。
【００９６】
また、周期計測手段１０３による計測クランク角区間は、吸気管圧力Ｐｂが高い（大気圧に近い）状態で内燃機関２００が高負荷であるほど、進角側に変更され、逆に、吸気管圧力Ｐｂが低い（真空に近い）負圧状態で内燃機関２００が低負荷であるほど、遅角側に変更される。
【００９７】
さらに、時間当たりのクランク角位置の変化量は、内燃機関２００が高回転になるほど大きくなる。
一方、内燃機関２００の燃焼速度は、吸入空気量Ｑａが同一であれば同一なので、内燃機関２００の失火による影響は、エンジン回転速度Ｎｅが高いほど、クランク角位置の遅角側に現れる。よって、内燃機関２００が高回転であるほど周期計測区間を遅角側に設定すれば、失火検出性が向上することが分かる。
【００９８】
したがって、図１０のように、エンジン回転速度Ｎｅが高いほど、周期計測手段１０３による周期計測開始ポイントを遅角側に変更することにより、失火の非発生時に比べて、失火発生時の失火検出値Ｋｋａｎ（ｉ）が大きい値になるので、失火検出性をさらに向上させることができる。
【００９９】
一方、内燃機関２００の負荷に関しては、吸入空気量Ｑａが多いほど燃焼速度が早くなり、吸入空気量Ｑａが少ないほど燃焼速度は遅くなるので、吸気管圧力Ｐｂ（負荷）が低ほど周期計測開始ポイントを遅角させれば、失火検出性が向上することが分かる。
したがって、図１０のように、吸気管圧力Ｐｂ（内燃機関２００の負荷）が低いほど、周期計測開始ポイントを遅角側に変更設定することにより、失火検出性を向上させることができる。
【０１００】
なお、図１０においては、内燃機関２００の運転状態に応じて周期計測開始ポイントを変更設定したが、周期計測開始ポイントを進角または遅角させるのみでなく、周期計測範囲（区間）を拡大または縮小してもよい。
【０１０１】
このように、内燃機関２００の運転状態に応じて、失火検出用のクランク角周期計測区間を変更することにより、各運転状態での適切な周期計測区間を設定することができ、失火検出性を向上させることができる。
また、失火発生時の周期変動の発生個所が運転状態によって変化することに対し、適切なタイミングを設定することにより、失火検出性能をさらに向上させるとともに、失火検出が可能となる運転状態を拡大させることができる。
【０１０２】
具体的には、各行程周期の計測クランク角区間を、内燃機関２００が低回転であるほど進角させ、高回転であるほど遅角させることにより、各運転状態によって変化する失火発生時の周期変動発生個所を的確に選択することができる。
また、各行程周期の計測クランク角区間を、内燃機関２００が低負荷であるほど遅角させ、高負荷であるほど進角させることにより、各運転状態によって変化する失火発生時の周期変動発生個所を的確に選択することができる。
【０１０３】
実施の形態４．
なお、上記実施の形態１〜３では、周期比偏差ΔＫ（ｉ）が負の値になった場合について考慮しなかったが、周期比偏差ΔＫ（ｉ）が負の値になった場合には「０」に固定設定してもよい。
図１１は周期比偏差ΔＫ（ｉ）を０以上の値に設定する処理（ステップ５０４Ａ）を設けたこの発明の実施の形態４による失火判定処理を示すフローチャートである。
【０１０４】
図１１において、前述（図７参照）と同様の処理については、前述と同一符号を付して詳述を省略する。
また、ＥＣＵ１００の機能構成および装置全体の構成は、図１および図２に示した通りであり、基本的な処理動作は、図３〜図５に示した通りである。
【０１０５】
この場合、検出値演算手段１０４は、周期比Ｋ（ｉ）の算出（ステップ５０３）に続いて、今回周期比Ｋ（ｉ）と前回周期比Ｋ（ｉ−１）との差分に基づき周期比偏差ΔＫ（ｉ）を算出（ステップ５０４Ａ）するが、このとき、今回周期比Ｋ（ｉ）と前回周期比Ｋ（ｉ−１）との差分を「０」と比較し、大きい方の値を周期比偏差ΔＫ（ｉ）とする。
すなわち、今回周期比Ｋ（ｉ）と前回周期比Ｋ（ｉ−１）との差分が０未満（負の値）であれば、周期比偏差ΔＫ（ｉ）を「０」に固定設定する。
【０１０６】
このように、周期比偏差ΔＫ（ｉ）を０以上の値に設定することにより、失火発生後の揺り返しによる周期変動を、失火と誤判定することを防止することができ、失火検出性をさらに向上させることができる。
すなわち、周期比偏差ΔＫ（ｉ）を算出する過程において、周期比偏差ΔＫ（ｉ）の短縮側の値を０以上に制限し、失火発生時に周期比偏差ΔＫ（ｉ）が大きくなる状態から次行程の正常燃焼時での周期比偏差ΔＫ（ｉ）が小さくなる側を制限することにより、特に内燃機関２００の低回転運転領域における失火発生後の揺り返しによる回転変動に起因して、失火していないにもかかわらず失火状態に近い演算値を算出し、失火誤検出することを防止することができる。
【０１０７】
なお、周期比偏差ΔＫ（ｉ）の算出時に付加された周期比偏差ΔＫ（ｉ）の短縮側の制限処理（ステップ５０４Ａ）は、内燃機関２００の運転状態に応じて、実行の有無が切り替えられるようにしてもよい。
たとえば、失火発生後の回転変動が大きくなる運転状態（低回転領域または低負荷領域など）の失火による揺り返しの影響が大きくなる運転ポイントのみにおいて、上記制限処理（ステップ５０４Ａ）に基づく制御（周期比Ｋ（ｉ）の差分と「０」との大きい方）を実行し、他の運転ポイントにおいては、上記制限処理に基づく制御を実行しないようにすることが考えられる。
【０１０８】
このように、周期比偏差ΔＫ（ｉ）の算出時の周期比偏差ΔＫ（ｉ）の短縮側の制限処理の実行有無を、内燃機関の運転状態に応じて切り替えることにより、失火による揺り返しによる回転変動が発生する運転領域のみに限定することができる。
すなわち、揺り返しの発生しない他の運転領域においては、周期比偏差ΔＫ（ｉ）の短縮側の制限処理を実行すると、かえって失火検出性が低下するので、揺り返しの発生しない運転領域において制限処理を実行しないことにより、失火検出率の低下を防止することができる。
したがって、各運転ポイントに適した周期比偏差ΔＫ（ｉ）の演算を実行することができ、失火検出性をさらに向上させることができる。
【０１０９】
なお、上記実施の形態１〜４においては、内燃機関２００の気筒数が奇数である場合について説明したが、内燃機関２００の気筒数が偶数であっても適用可能であり、同等の作用効果を奏し得ることは言うまでもない。
【図面の簡単な説明】
【０１１０】
【図１】この発明の実施の形態１に係る内燃機関制御装置の主要部の機能を概略的に示すブロック図である。
【図２】この発明の実施の形態１に係る内燃機関制御装置のシステム全体を示す構成図である。
【図３】この発明の実施の形態１による周期計測処理を示すタイミングチャートである。
【図４】この発明の実施の形態１による周期計測処理を示すフローチャートである。
【図５】この発明の実施の形態１による周期計測処理を示すフローチャートである。
【図６】この発明の実施の形態１による周期計測処理を示す説明図である。
【図７】この発明の実施の形態１による失火判定処理を示すフローチャートである。
【図８】この発明の実施の形態１による失火判定処理を具体的に示す説明図である。
【図９】この発明の実施の形態２による失火判定処理を示すフローチャートである。
【図１０】この発明の実施の形態３による周期計測タイミングを示す説明図である。
【図１１】この発明の実施の形態４による失火判定処理を示すフローチャートである。
【図１２】従来装置における課題を説明するためのタイミングチャートである。
【符号の説明】
【０１１１】
１００  ＥＣＵ（コントロールユニット）、１０１  クランク角検出手段、１０２  負荷検出手段、１０３  周期計測手段、１０４  検出値演算手段、１０５  回転速度演算手段、１０６  判定値演算手段、１０７  比較手段、１０８  失火検出手段、２００  内燃機関（エンジン）、２０１  エアクリーナ、２０２  エアフローセンサ、２０３  吸気管、２０４  スロットルバルブ、２０５  圧力センサ、２０６  インジェクタ、２０７  排気管、２０８  Ｏ２センサ、２０９  三元触媒、２１０  点火コイル、２１１  点火プラグ、２１２  カム角センサ、２１３  カム角センサプレート、２１４  クランク角センサ、２１５  クランク角センサプレート、２１６  冷却水、２１７  水温センサ、Ｊｋａｎ  失火判定値、Ｋｋａｎ（ｉ）  失火検出値、Ｎｅ  エンジン回転速度、Ｐｂ  吸気管圧力（負荷）、Ｑａ  吸入空気量、ＳＧＴ  クランク角信号、ＴＣｃｙｃ（ｉ）  燃焼行程周期（燃焼行程時間）、ＴＩｃｙｃ（ｉ）  吸気行程周期（吸気行程時間）。
【図１】
2008069692.tif 000003
【図２】
2008069692.tif 000004
【図３】
2008069692.tif 000005
【図４】
2008069692.tif 000006
【図５】
2008069692.tif 000007
【図６】
2008069692.tif 000008
【図７】
2008069692.tif 000009
【図８】
2008069692.tif 000010
【図９】
2008069692.tif 000011
【図１０】
2008069692.tif 000012
【図１１】
2008069692.tif 000013
【図１２】
2008069692.tif 000014