(57)【要約】【課題】単気筒エンジンであっても、クランク角速度差を用いて精度よく失火の推測検知を行うことができ、しかも、クランクパルサロータの公差をキャンセルしながら失火の推測検知を行うことができるエンジン制御装置を提供する。【解決手段】あるサイクルにおけるクランク角速度変動量（Δω）と、その直前のサイクルにおけるクランク角速度変動量（Δω）との差であるサイクル間変動量差分（ΔΔω）が所定の変動大しきい値（ΔΔωｔｈ）を超えると、当該サイクルを変動大サイクルとしてカウントし、予め設定されたサイクル数の監視サイクル内で前記変動大サイクルの数が所定の失火検知回数に達した場合、前記エンジン（１２）の失火を推測検知する。【選択図】図１０
2014199040.tif 000002
【特許請求の範囲】
【請求項１】
エンジン（１２）のクランク軸（３６）に同期して回転するクランクパルサロータ（３８）に設けられる複数のリラクタ（６０）の通過を検知するピックアップ（４０）と、
前記エンジン（１２）の圧縮上死点（ＴＤＣ）に重なる第１所定区間（Ｔ１）の第１クランク角速度（ω１）を算出し、燃焼上死点（ＢＤＣ）に重なる第２所定区間（Ｔ２）の第２クランク角速度（ω２）を算出し、前記第２クランク角速度（ω２）から前記第１クランク角速度（ω１）を減ずることで、クランク角速度変動量（Δω）を算出する角速度変動量算出手段（１０８）と、を具備するエンジン制御装置において、
あるサイクルにおけるクランク角速度変動量（Δω）と、その直前のサイクルにおけるクランク角速度変動量（Δω）との差であるサイクル間変動量差分（ΔΔω）が所定の変動大しきい値（ΔΔωｔｈ）を超えると、当該サイクルを変動大サイクルとしてカウントし、
予め設定されたサイクル数の監視サイクル内で前記変動大サイクルの数が所定の失火検知回数に達した場合、前記エンジン（１２）の失火を推測検知することを特徴とするエンジン制御装置。
【請求項２】
請求項１記載のエンジン制御装置において、
前記変動大しきい値（ΔΔωｔｈ）を、オーバーリーン空燃比におけるサイクル間変動量差分（ΔΔω）の発生頻度がその値以上では略３０％となる値で設定し、
前記監視サイクルのサイクル数を１０、前記失火検知回数を３とすることを特徴とするエンジン制御装置。
【請求項３】
請求項２記載のエンジン制御装置において、
前記監視サイクルは、前記サイクル間変動量差分（ΔΔω）が前記変動大しきい値（ΔΔωｔｈ）を超えたサイクルを１回目としてカウントすることを特徴とするエンジン制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、エンジン制御装置に関し、例えば自動二輪車等の鞍乗型車両の失火検知に用いて好適なエンジン制御装置に関する。
【背景技術】
【０００２】
従来例には、多気筒エンジンの失火検知装置で、ある気筒と他の気筒とのクランク角速度差をΔωとして算出し、Δωが所定のしきい値を超えている場合に失火が起きたと判定する検知手法が開示されている（特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００１−２８９１１１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
従来例に開示される失火検知手法は、自動車用多気筒エンジンでは有効である。その理由としては次の２点が挙げられる。
【０００５】
（１）  自動車用エンジンは慣性モーメントが比較的大きいため、エンジンが正常に回転している間は角速度変化のばらつきが小さい。
【０００６】
（２）  ４気筒エンジンであれば、１サイクル中に、４気筒分の燃焼行程があるため、単気筒等と比較して角速度変化が小さい。
【０００７】
このため、気筒間の角速度差から算出されるΔωがしきい値より大きいことを検出すれば、精度よく失火として判定することができる。
【０００８】
しかしながら、例えば鞍乗型車両等の小型車両に搭載される単気筒エンジンでは、Δω自体のばらつきが大きいため、従来例のような失火検知手法では、精度よく失火を検知しにくい課題があった。
【０００９】
また、Δωを用いて失火検知を行うにあたっては、クランクパルサロータの公差の影響をキャンセルできるような手法が望まれる。
【００１０】
本発明はこのような課題を考慮してなされたものであり、単気筒エンジンであっても、クランク角速度差を用いて精度よく失火の推測検知を行うことができ、しかも、クランクパルサロータの公差をキャンセルしながら失火の推測検知を行うことができるエンジン制御装置を提供することを目的とする。
【課題を解決するための手段】
【００１１】
本発明は、以下の特徴を有する。
【００１２】
第１の特徴；エンジン（１２）のクランク軸（３６）に同期して回転するクランクパルサロータ（３８）に設けられる複数のリラクタ（６０）の通過を検知するピックアップ（４０）と、前記エンジン（１２）の圧縮上死点（ＴＤＣ）に重なる第１所定区間（Ｔ１）の第１クランク角速度（ω１）を算出し、燃焼上死点（ＢＤＣ）に重なる第２所定区間（Ｔ２）の第２クランク角速度（ω２）を算出し、前記第２クランク角速度（ω２）から前記第１クランク角速度（ω１）を減ずることで、クランク角速度変動量（Δω）を算出する角速度変動量算出手段（１０８）と、を具備するエンジン制御装置において、あるサイクルにおけるクランク角速度変動量（Δω）と、その直前のサイクルにおけるクランク角速度変動量（Δω）との差であるサイクル間変動量差分（ΔΔω）が所定の変動大しきい値（ΔΔωｔｈ）を超えると、当該サイクルを変動大サイクルとしてカウントし、予め設定されたサイクル数の監視サイクル内で前記変動大サイクルの数が所定の失火検知回数に達した場合、前記エンジン（１２）の失火を推測検知することを特徴とする。
【００１３】
第２の特徴；前記変動大しきい値（ΔΔωｔｈ）を、オーバーリーン空燃比におけるサイクル間変動量差分（ΔΔω）の発生頻度がその値以上では略３０％となる値で設定し、前記監視サイクルのサイクル数を１０、前記失火検知回数を３とする。
【００１４】
第３の特徴；前記監視サイクルは、前記サイクル間変動量差分（ΔΔω）が前記変動大しきい値（ΔΔωｔｈ）を超えたサイクルを１回目としてカウントする。
【発明の効果】
【００１５】
第１の特徴によれば、１サイクルのクランク角速度変動量のみで失火検知を行おうとすると、精度よく検知することが難しい場合が多いが、失火が起きるオーバーリーン空燃比におけるサイクル間変動量差分の頻度を実験等により取っておき、監視サイクル数に対する変動大サイクルの数を比較することで、より精度よく失火を検知することが可能となる。
【００１６】
第２の特徴によれば、先ず、出願人は、研究の成果、サイクル間変動量差分の発生頻度が、ストイキ（理論空燃比）や経済空燃比では差分の差が大きいほど頻度が下がる傾向があり、対してオーバーリーン空燃比では、差分の値が大きくなっても発生頻度はそれほど下がらず、結果、ストイキや経済空燃比と比較してはるかに高い頻度になることを発見した。この性質を基に、変動大サイクルとして認定するしきい値を、オーバーリーン空燃比でのサイクル間変動量差分の発生頻度がその値以上で３０％となる値に設定すれば、失火検知用のしきい値として精度を高くすることができた。
【００１７】
また、１０の監視サイクル内において、変動大サイクルを３回検知した段階で、失火の推測検知を行えば、時間的にわずかの期間で検知することができるため、失火検知の精度を確保しながら、運転者が失火によって感じるエンジン運転状態の違和感を可及的に抑えることも可能となる。
【００１８】
第３の特徴によれば、監視サイクルを変動大サイクルが出てからカウントするようにすることで、エンジン制御装置の処理負担を極力低減することができる。
【図面の簡単な説明】
【００１９】
【図１】本実施の形態に係るエンジン制御装置にて制御される単気筒エンジンの構成図である。
【図２】本実施の形態に係るエンジン制御装置を示す構成図である。
【図３】図示平均有効圧力（ＮＭＥＰ）の変動率（％）とクランク軸の角速度変動量Δωの変動率（％）との相関関係を示すグラフである。
【図４】各サイクルにおけるクランク軸の角速度ωの変化を、リラクタの位置関係（一つの例）と共に示す説明図である。
【図５】各サイクルにおけるクランク軸の角速度ωの変化を、リラクタの位置関係（他の例）と共に示す説明図である。
【図６】サイクル毎の角速度変動量Δωのばらつき、特に、空燃比による角速度変動量Δωのばらつきの違いを示すグラフである。
【図７】角速度変動量Δωの小さな変動幅から大きな変動幅の出現頻度の各空燃比（１４．５、１６．５、１８．５）による違いを示すグラフである。
【図８】リラクタの取付公差による角速度変動量Δωのばらつきを示すグラフである。
【図９】リラクタの取付公差によるサイクル間変動量差分ΔΔωのばらつきを示すグラフである。
【図１０】第１実施の形態に係るエンジン制御装置（第１エンジン制御装置）の構成を示すブロック図である。
【図１１】第１エンジン制御装置の処理動作（失火の推測検知の動作）を示すフローチャートである。
【図１２】図１２Ａはサイクル間変動量差分ΔΔωの算出処理ルーチンを示すフローチャートであり、図１２Ｂはサイクル間変動量差分ΔΔωの算出条件処理ルーチンを示すフローチャートである。
【図１３】第２実施の形態に係るエンジン制御装置（第２エンジン制御装置）の構成を示すブロック図である。
【図１４】第２エンジン制御装置の処理動作（失火の推測検知の動作）を示すフローチャートである。
【発明を実施するための形態】
【００２０】
以下、本発明に係るエンジン制御装置を例えば自動二輪車等の鞍乗型車両に搭載される単気筒エンジンに適用した実施の形態例を図１〜図１４を参照しながら説明する。
【００２１】
図１は、本実施の形態に係るエンジン制御装置１０（図２参照）にて制御される単気筒エンジンの構成図である。
【００２２】
エンジン１２の気筒１４に接続された吸気管１６には、気筒１４に吸入される空気量を調整するためのスロットルバルブ１８と、スロットルバルブ１８を通過した空気に燃料を噴射する燃料噴射装置２０とが設けられている。この空気に燃料を噴射することで燃料が気化し混合気が生成される。このスロットルバルブ１８の開度（スロットル開度）は、車両のアクセルグリップ２２の開度に応じて大きくなる。気筒１４には、燃焼室２４内の混合気を爆発させるための点火プラグ２６が設けられている。
【００２３】
この気筒１４には、吸気バルブ２８が設けられており、該吸気バルブ２８が開いている間は、吸気管１６の混合気が気筒１４の燃焼室２４に流入する（吸気行程）。この混合気の流入と共に、ピストン３０は下降する。混合気が燃焼室２４に流入され、ピストン３０が上昇することで燃焼室２４内の混合気が圧縮される（圧縮行程）。その後、気筒１４に設けられた点火プラグ２６が点火することで、圧縮された混合気が爆発してピストン３０が加速しながら下降する（膨張行程）。再びピストン３０が上昇すると、排気バルブ３２が開かれ、燃焼室２４内にある排気ガスが排気管３４から排出される（排気行程）。このピストン３０の上下運動によってエンジン１２のクランク軸３６が回転する。
【００２４】
図２は、エンジン制御装置１０の構成図である。エンジン制御装置１０は、燃料噴射装置２０、クランクパルサロータ３８、ピックアップ（パルス発生器）４０、スロットル開度センサ４２、エンジン回転数センサ４４、吸気圧センサ４６、吸気温センサ４８、水温センサ５０、大気圧センサ５２及び制御部５４を有する。
【００２５】
クランクパルサロータ３８は、クランク軸３６と一体的に回転するものであり、歯欠け部５６を有する。つまり、クランクパルサロータ３８は、円板状のロータ５８と、該ロータ５８の外周に設けられた９個のリラクタ６０（第１リラクタ６０ａ〜第９リラクタ６０ｉ）とで構成される。リラクタ６０は中心角３０°間隔で配置され、歯欠け部５６の中心角は１２０°である。ピックアップ４０は、リラクタ６０を検出し、検出パルスを発生して出力する。
【００２６】
スロットル開度センサ４２は、スロットルバルブ１８の開度（回転角度）ＴＨを検出する。エンジン回転数センサ４４は、エンジン１２のクランク軸３６の回転数（以下、エンジン回転数）ＮＥを検出する。吸気圧センサ４６及び吸気温センサ４８は、吸気管１６に設けられ、気筒１４に吸気される空気圧ＰＢ及び吸気温ＴＡを検出する。水温センサ５０は、エンジン１２の水温ＴＷを検出し、大気圧センサ５２は、大気圧ＰＡを検出する。
【００２７】
制御部５４は、リラクタ６０の検知によるピックアップ４０からの検知信号と、スロットル開度センサ４２、エンジン回転数センサ４４、吸気圧センサ４６、吸気温センサ４８、水温センサ５０及び大気圧センサ５２の検出信号に基づいて、エンジン１２を制御する。
【００２８】
そして、本実施の形態に係るエンジン制御装置１０は、例えば低燃費化の目的等でリーン化制御を行っている際に、何らかの原因で、空燃比がオーバーリーン領域に突入してしまった場合に、クランク軸３６の角速度変動量Δωを監視することで、失火を推測検知する。
【００２９】
ここで、本実施の形態に係るエンジン制御装置１０での失火の推測検知の原理について図３〜図９を参照しながら説明する。
【００３０】
一般に、空燃比がオーバーリーン領域に突入してしまった場合、空燃比におけるＣＯＶ（Ｃｏｅｆｆｉｃｉｅｎｔ  Ｏｆ  Ｖａｒｉａｎｃｅ）、すなわち、図示平均有効圧力（ＮＭＥＰ：Ｎｅｔ  Ｍｅａｎ  Ｅｆｆｅｃｔｉｖｅ  Ｐｒｅｓｓｕｒｅ）の変動率が大きくなり、エンジン駆動に影響が出る。そこで、エンジン駆動に影響が出る直前の目標ＣＯＶが規定できれば、該目標ＣＯＶになる直前でリーン化制御を停止することが可能となる。このＣＯＶを読み取る技術として、クランク軸３６の角速度変動量Δωが挙げられる。図３に示すように、ＮＭＥＰの変動率（％）とΔωの変動率（％）には相関があるからである。
【００３１】
特に、本実施の形態では、空燃比におけるＣＯＶの変化に着目し、Ｐｍｉ（図示平均有効圧力）と相関がある膨張行程におけるクランク軸３６の角速度変動量Δωを活用する。
【００３２】
ここで、角速度変動量Δωの算出方法について、図４〜図６を参照しながら説明する。図４及び図５は各サイクルにおけるクランク軸３６の角速度ωの変化を、リラクタ６０の位置関係と共に示す説明図である。図６はサイクル毎の角速度変動量Δωのばらつきを示し、特に、空燃比による角速度変動量Δωのばらつきの違いを示すグラフである。なお、図６の横軸は経過サイクル、すなわち、運転中のあるサイクルを０とした時点からの経過サイクルを示す。これは後述する図８及び図９においても同様である。
【００３３】
図２に示すように、回転方向に対して最も進み位置にあるリラクタ６０を第１リラクタ６０ａとし、最も遅れ位置にあるリラクタ６０を第９リラクタ６０ｉとし、その間にある７つのリラクタ６０を順番に第２リラクタ６０ｂ〜第８リラクタ６０ｈとする。また、吸気行程、圧縮行程、膨張行程及び排気行程の一連の行程を１サイクルとする。
【００３４】
そして、各サイクルにおいて、ピックアップ４０からの検知信号（リラクタ６０を検知したことを示すパルス信号）の入力タイミングとリラクタ６０間の中心角とからリラクタ６０間の角速度を算出する。特に、エンジンの圧縮上死点（ＴＤＣ）に重なる第１所定区間Ｔ１の第１角速度ω１を算出し、燃焼上死点（ＢＤＣ）に重なる第２所定区間Ｔ２の第２角速度ω２を算出する。
【００３５】
具体的に、図４に基づいて説明すると、圧縮行程と膨張行程との境界６２を含む第１所定区間Ｔ１におけるクランク軸３６の角速度（第１角速度ω１）を算出する。図４の例では、境界６２を挟む２つのリラクタ６０（第５リラクタ６０ｅ及び第６リラクタ６０ｆ）の検知信号の入力タイミング（第１検知信号Ｓ１の入力時点と第２検知信号Ｓ２の入力時点の時間）とリラクタ６０間の中心角に基づいて第１角速度ω１を算出する。
【００３６】
次に、各サイクルの膨張行程内において境界から最も離れた第２所定区間Ｔ２の角速度を算出する。図４の例では、境界６２から最も離れた２つのリラクタ６０（第８リラクタ６０ｈ及び第９リラクタ６０ｉ）の検知信号の入力タイミング（第３検知信号Ｓ３の入力時点と第４検知信号Ｓ４の入力時点の時間）とリラクタ６０間の中心角に基づいて第２角速度ω２を算出する。
【００３７】
そして、第２角速度ω２から第１角速度ω１を減算して角速度変動量Δωを算出する。
【００３８】
図５に示す例では、リラクタ６０の位置関係を図４の場合よりも遅れ方向に６０°だけずらし、第１所定区間Ｔ１における第１角速度ω１を、第３リラクタ６０ｃ及び第４リラクタ６０ｄの検知信号の入力タイミングとリラクタ６０間の中心角に基づいて算出し、第２所定区間Ｔ２における第２角速度ω２を、同じく第８リラクタ６０ｈ及び第９リラクタ６０ｉの検知信号の入力タイミングとリラクタ６０間の中心角に基づいて算出する例を示している。この場合、略膨張行程全域での角速度変動量Δω、すなわち、図示平均有効圧力Ｐｍｉに対応した角速度変動量Δωを得ることができる。
【００３９】
次に、角速度変動量Δωのばらつきについて確認すると、図６に示すように、サイクル毎の角速度変動量Δωのばらつきは、空燃比によって違いが出ていることがわかる。図６は、車速２０ｋｍ／ｈのクルーズ負荷における各空燃比（１４．５、１６．５、１８．５）でのサイクル毎の角速度変動量Δωのばらつきを見たものである。ここで、１４．５が理論空燃比、１６．５が経済空燃比、１８．５がオーバーリーンである。
【００４０】
図６からわかるように、経済空燃比を超えてリーン側に移行すると、角速度変動量Δωのばらつきが大きくなっている。
【００４１】
そこで、角速度変動量Δωの変動幅を求め、小さな変動幅から大きな変動幅の出現頻度を、車速２０ｋｍ／ｈのクルーズ負荷における各空燃比（１４．５、１６．５、１８．５）によってどのように異なるかを確認した。図７にその結果を示す。角速度変動量Δωの変動幅は、今回サイクルの角速度変動量Δωと前回サイクルの角速度変動量Δωとの差分の絶対値｜今回のΔω−前回のΔω｜（＝ΔΔω：サイクル間変動量差分と記す）とした。
【００４２】
図７からわかるように、理論空燃比に近いほど、サイクル間変動量差分ΔΔωが小さいところに集中し、オーバーリーンに近いほど、サイクル間変動量差分ΔΔωが大きいところに集中している。特に、オーバーリーンに近い場合、サイクル間変動量差分ΔΔωが７１（ｒ／ｍｉｎ）以上において急激に頻度が上がり、３０％を超えている。従って、上述の例では、サイクル間変動量差分ΔΔω＝７１（ｒ／ｍｉｎ）以上の頻度が３０％であった場合に、オーバーリーンを推測検知、すなわち、失火を推測検知することができ、エンジン駆動に影響が出る前にリーン化制御を停止することができることがわかる。
【００４３】
上述の例は、あくまでも一例であり、エンジンの種類等によって、オーバーリーン側で頻度が３０％となるサイクル間変動量差分ΔΔωも異なってくるため、実験等で把握しておくことが好ましい。
【００４４】
ここで、失火の推測検知にあたって、角速度変動量Δωではなく、サイクル間変動量差分ΔΔωを用いた理由について図８及び図９を参照しながら説明する。
【００４５】
９個のリラクタ６０は、クランクパルサロータ３８のロータ５８の外周に、中心角３０°間隔で設けられるが、取付公差がある。今、リラクタ６０間の中心角が規定の３０°である場合を「中」、中心角が規定よりも１°大きい３１°である場合を「上」、中心角が規定よりも１°小さい２９°である場合を「下」としたとき、角速度変動量Δωを算出する上で理想的な組み合わせは、以下の通りである。
Δω「中」＝第２角速度ω２「中」−第１角速度ω１「中」
【００４６】
角速度変動量Δωを算出する上で交差の影響が出てくる組み合わせとしては、以下の２つが挙げられる。
Δω「上」＝第２角速度ω２「下」−第１角速度ω１「上」
Δω「下」＝第２角速度ω２「上」−第１角速度ω１「下」
【００４７】
これらの組み合わせにおいて、サイクルの経過に伴うΔω「上」、Δω「中」及びΔω「下」の変化は、図８に示す通りであり、Δω「上」とΔω「中」との差、並びにΔω「下」とΔω「中」との差は例えば１５０（ｒ／ｍｉｎ）にもなり、リラクタ６０の取付公差が失火検知において大きな影響を与えることになる。
【００４８】
これに対して、本実施の形態では、サイクル間変動量差分ΔΔωを用いるようにしている。
【００４９】
上述と同様に、ΔΔω「上」、ΔΔω「中」及びΔΔω「下」を考えると、サイクル間変動量差分を算出する組み合わせは以下のようになる。
ΔΔω「上」＝今回Δω「下」−前回Δω「上」
ΔΔω「中」＝今回Δω「中」−前回Δω「中」
ΔΔω「下」＝今回Δω「上」−前回Δω「下」
【００５０】
これらの組み合わせにおいて、サイクルの経過に伴うΔΔω「上」、ΔΔω「中」及びΔΔω「下」の変化は、図９に示す通りであり、ΔΔω「上」とΔΔω「中」との差、並びにΔΔω「下」とΔΔω「中」との差は例えば１．５（ｒ／ｍｉｎ）未満であり、リラクタ６０の取付公差があっても失火の推測検知において影響はほとんどないことがわかる。
【００５１】
次に、上述の失火の推測検知の原理に基づいた本実施の形態に係るエンジン制御装置１０について説明する。
【００５２】
先ず、第１実施の形態に係るエンジン制御装置（以下、第１エンジン制御装置１０Ａと記す）を図１０〜図１２Ｂを参照しながら説明する。
【００５３】
第１エンジン制御装置１０Ａの制御部５４は、図１０に示すように、リーン化制御フラグ１００と、リーン化判別部１０２と、差分算出判別部１０４と、サイクル監視設定部１０６、角速度変動量算出部１０８、変動量差分算出部１１０、第１差分比較部１１２Ａ、第１失火推測検知部１１４Ａとを有する。
【００５４】
また、制御部５４は、サイクル間変動量差分ΔΔωの算出の許可／禁止を指示する差分算出許可フラグ１１６と、失火の推測検知のためのサイクル監視に突入したことを示すサイクル監視中フラグ１１８と、監視したサイクルの数を計数する監視サイクルカウンタ１２０と、サイクル間変動量差分ΔΔωがしきい値ΔΔωｔｈを超えた回数を計数するオーバーリーンカウンタ１２２とを使用する。
【００５５】
リーン化制御フラグ１００は、リーン化制御が実施されているかどうかを判別するためのフラグであり、定期的あるいは不定期にリーン化制御が実施された際に、例えば「１」にセットされる。リーン化制御が終了した段階で、「０」にリセットされる。
【００５６】
リーン化判別部１０２は、リーン化制御フラグ１００の内容に基づいてリーン化制御中か否かを判別する。リーン化制御中であれば、差分算出許可フラグ１１６に許可を示す例えば「１」をセットし、リーン化制御中でなければ、差分算出許可フラグ１１６に禁止を示す「０」をセットする。
【００５７】
差分算出判別部１０４は、リーン化判別部１０２での判別結果に基づいて、変動量差分算出を行うか否かを判別する。具体的には、差分算出許可フラグ１１６が「１」であれば、角速度変動量算出部１０８及び変動量差分算出部１１０での算出処理を実行する。差分算出許可フラグ１１６が「０」であれば、角速度変動量算出部１０８及び変動量差分算出部１１０での算出処理を実行せずに、失火検知のための監視を停止する。
【００５８】
サイクル監視設定部１０６は、後述するサイクル間変動量差分ΔΔωがしきい値ΔΔωｔｈ以上となった最初のサイクルから失火検知のために監視すべきサイクルとして設定する。具体的には、サイクル監視中フラグ１１８を「１」にセットし、監視すべきサイクルにおいてサイクル間変動量差分ΔΔωが算出される毎に監視サイクルカウンタ１２０の計数値（計数サイクル数）を＋１更新する。そして、計数サイクル数が予め設定された規定値Ｎａ（監視サイクル数）に達した段階で、フラグやカウンタ等のリセット処理を行う。
【００５９】
角速度変動量算出部１０８は、第１角速度算出部１２４Ａと、第２角速度算出部１２４Ｂとを有する。第１角速度算出部１２４Ａは、各サイクルにおいて、圧縮行程と膨張行程との境界６２を挟む２つのリラクタ（第５リラクタ６０ｅ及び第６リラクタ６０ｆ）の検知信号の入力タイミング（第１検知信号Ｓ１の入力時点と第２検知信号Ｓ２の入力時点の時間）とリラクタ６０間の中心角に基づいて第１角速度ω１を算出する。第２角速度算出部１２４Ｂは、各サイクルの膨張行程内において境界６２から最も離れた２つのリラクタ（第８リラクタ６０ｈ及び第９リラクタ６０ｉ）の検知信号の入力タイミング（第３検知信号Ｓ３の入力時点と第４検知信号Ｓ４の入力時点の時間）とリラクタ６０間の中心角に基づいて第２角速度ω２を算出する。そして、角速度変動量算出部１０８は、第２角速度ω２から第１角速度ω１を減算して角速度変動量Δωを算出する。
【００６０】
変動量差分算出部１１０は、今回のサイクルにおける角速度変動量Δωと前回のサイクルにおける角速度変動量Δωとの差分の絶対値（サイクル間変動量差分ΔΔω）を算出する。
【００６１】
第１差分比較部１１２Ａは、サイクル間変動量差分ΔΔωと予め設定されたしきい値ΔΔωｔｈとを比較し、サイクル間変動量差分ΔΔωがしきい値ΔΔωｔｈ以上の場合に、オーバーリーンカウンタ１２２の値（変動が大きいサイクルの数（変動大サイクル数））を＋１更新する。
【００６２】
第１失火推測検知部１１４Ａは、オーバーリーンカウンタ１２２の値と予め設定されたオーバーリーン検知回数Ｎｂ（失火検知回数）とを比較し、オーバーリーンカウンタ１２２の値がオーバーリーン検知回数Ｎｂに達した段階で、失火を推測検知する。
【００６３】
ここで、第１エンジン制御装置１０Ａの処理動作、特に、失火の推測検知の動作を図１１〜図１２Ｂのフローチャートも参照しながら説明する。
【００６４】
先ず、図１１のステップＳ１において、サイクル間変動量差分ΔΔωの算出処理（サブルーチン）に入る。このサイクル間変動量差分ΔΔωの算出処理は、図１２ＡのステップＳ１０１において、サイクル間変動量差分ΔΔωの算出条件処理（サブルーチン）に入る。サイクル間変動量差分ΔΔωの算出条件処理とは、現在、リーン化制御中であるかを確認するためのルーチンである。つまり、このサイクル間変動量差分ΔΔωの算出条件処理では、図１２ＢのステップＳ２０１において、リーン化判別部１０２は、リーン化制御フラグ１００の内容に基づいてリーン化制御中か否かを判別する。リーン化制御中であれば、ステップＳ２０２に進み、差分算出許可フラグ１１６に算出許可を示す「１」をセットし、リーン化制御中でなければ、ステップＳ２０３に進み、差分算出許可フラグ１１６に算出禁止を示す「０」をセットする。
【００６５】
図１２Ａのサイクル間変動量差分ΔΔωの算出処理ルーチンに戻り、次のステップＳ１０２において、差分算出判別部１０４は、差分算出許可フラグ１１６が「１」であるか否かを判別する。差分算出許可フラグ１１６が「０」であれば、ステップＳ１０３に進み、フラグやカウンタ等のリセット処理を行う。具体的には、サイクル監視中フラグ１１８を「０」にし、監視サイクルカウンタ１２０及びオーバーリーンカウンタ１２２にそれぞれ初期値「０」を格納する。その後、図１１のメインルーチンのステップＳ８に進み、オーバーリーン検知フローから脱出する。
【００６６】
一方、図１２ＡのステップＳ１０２において、差分算出許可フラグ１１６が「１」であると判別された場合は、ステップＳ１０４に進み、変動量差分算出処理が行われる。すなわち、第１角速度算出部１２４Ａが第１角速度ω１を算出し、第２角速度算出部１２４Ｂが第２角速度ω２を算出し、角速度変動量算出部１０８が、第２角速度ω２から第１角速度ω１を減算して角速度変動量Δωを算出する。そして、変動量差分算出部１１０は、今回のサイクルにおける角速度変動量（今回Δω）と前回のサイクルにおける角速度変動量（前回Δω）との差分の絶対値、すなわち、サイクル間変動量差分ΔΔωを算出する。
【００６７】
図１１のメインルーチンに戻り、次のステップＳ２において、第１差分比較部１１２Ａは、サイクル間変動量差分ΔΔωとしきい値ΔΔωｔｈとを比較する。サイクル間変動量差分ΔΔωがしきい値ΔΔωｔｈ以上の場合、すなわち、変動が大きいサイクル（変動大サイクル）である場合に、次のステップＳ３に進み、サイクル監視設定部１０６は、サイクル監視中フラグ１１８が「１」であるか否かを判別する。「１」でなければ（「０」の場合）、ステップＳ４に進み、失火の推測検知のためのサイクル監視に突入する。すなわち、このステップＳ４では、サイクル監視設定部１０６は、サイクル監視中フラグ１１８に「１」をセットすると共に、監視サイクルカウンタ１２０に「１」を格納する。また、第１差分比較部１１２Ａは、オーバーリーンカウンタ１２２に「１」を格納する。その後、ステップＳ１に戻り、ステップＳ１以降の処理を繰り返す。
【００６８】
一方、上述のステップＳ３において、サイクル監視中フラグ１１８が「１」であると判別された場合（サイクル監視中）は、ステップＳ５に進み、サイクル監視設定部１０６は、監視サイクルカウンタ１２０の計数値を＋１更新し、第１差分比較部１１２Ａは、オーバーリーンカウンタ１２２の計数値を＋１更新する。
【００６９】
その後、ステップＳ６において、第１失火推測検知部１１４Ａは、オーバーリーンカウンタ１２２の計数値とオーバーリーン検知回数Ｎｂとを比較する。オーバーリーンカウンタ１２２の計数値がオーバーリーン検知回数Ｎｂ以上であれば、ステップＳ７に進み、変動が大きいサイクルの頻度が高いとして、失火を推測検知し、リーン化制御の停止を要求する。制御部５４は、第１失火推測検知部１１４Ａからのリーン化制御の停止要求に基づいてリーン化制御を停止する。
【００７０】
その後、ステップＳ８において、制御部５４への終了要求（電源断等）があるか否かを判別し、終了要求がなければステップＳ１以降の処理に戻り、終了要求があった場合に、制御部５４での処理を終了する。
【００７１】
他方、上述したステップＳ２において、サイクル間変動量差分ΔΔωがしきい値ΔΔωｔｈ未満の場合、すなわち、変動が小さい場合は、次のステップＳ９に進み、サイクル監視設定部１０６は、サイクル監視中フラグ１１８が「１」であるか否かを判別する。「１」でなければ（サイクル監視中ではない）、ステップＳ１に戻り、該ステップＳ１以降の処理を繰り返す。ステップＳ９において、サイクル監視中フラグが「１」であると判別された場合（サイクル監視中）は、次のステップＳ１０に進み、サイクル監視設定部１０６は、監視サイクルカウンタ１２０の計数値を＋１更新する。
【００７２】
上述したステップＳ６において、オーバーリーンカウンタ１２２の計数値がオーバーリーン検知回数Ｎｂ未満と判別された場合、あるいは、上述のステップＳ１０での処理が終了した段階で、ステップＳ１１に進み、サイクル監視設定部１０６は、監視サイクルカウンタ１２０の計数値と規定値Ｎａとを比較する。計数値が規定値Ｎａ未満であれば、サイクル監視の継続のために、ステップＳ１以降の処理に戻る。計数値が規定値Ｎａ以上であれば、変動が大きいサイクルの頻度が低いとして、ステップＳ１２に進み、フラグやカウンタ等のリセット処理を行う。具体的には、サイクル監視中フラグ１１８を「０」にし、監視サイクルカウンタ１２０及びオーバーリーンカウンタ１２２にそれぞれ初期値「０」を格納する。その後、ステップＳ１以降の処理に戻る。
【００７３】
このように、第１エンジン制御装置１０Ａにおいては、あるサイクルにおける角速度変動量Δωと、その直前のサイクルにおける角速度変動量Δωとの差であるサイクル間変動量差分ΔΔωを算出し、このサイクル間変動量差分ΔΔωが所定の変動しきい値ΔΔωｔｈ以上となった場合に、当該サイクルを変動が大きいサイクル（変動大サイクル）としてカウントし、カウント数（監視サイクル内における変動大サイクルの数）が所定のオーバーリーン検知回数Ｎｂに達した場合に、エンジンの失火を推測検知するようにしたので、１サイクルの角速度変動量Δωのみで失火の推測検知を行う場合よりも、精度よく検知することができる。特に、失火が起きるオーバーリーン空燃比におけるサイクル間変動量差分ΔΔωの頻度を実験等により取っておき、監視サイクル内における変動大サイクルの数を比較することで、より精度よく失火を検知することが可能となる。
【００７４】
しかも、サイクル間変動量差分ΔΔωを用いて失火の推測検知を行うので、リラクタ６０の取付公差があっても失火の推測検知において影響はほとんどなく、精度よく検知することができる。
【００７５】
さらに、変動大しきい値ΔΔωｔｈを、オーバーリーン空燃比におけるサイクル間変動量差分ΔΔωの発生頻度がその値以上では略３０％となる値で設定し、監視サイクルの数を１０、オーバーリーン検知回数を３としたので、失火検知用のしきい値として精度を高くすることができる。また、１０の監視サイクル内において、変動大サイクルを３回検知した段階で、失火の推測検知を行えば、時間的にわずかの期間で検知することができるため、失火検知の精度を確保しながら、運転者が失火によって感じるエンジン運転状態の違和感を可及的に抑えることも可能となる。
【００７６】
監視サイクルはサイクル間変動量差分ΔΔωが変動大しきい値ΔΔωｔｈを超えたサイクルを１回目としてカウントしたので、第１エンジン制御装置１０Ａの処理負担を極力低減することができる。
【００７７】
次に、第２実施の形態に係るエンジン制御装置（以下、第２エンジン制御装置１０Ｂと記す）について図１３及び図１４を参照しながら説明する。
【００７８】
第２エンジン制御装置１０Ｂは、図１３に示すように、上述した第１エンジン制御装置１０Ａと同様に、リーン化制御フラグ１００と、リーン化判別部１０２と、角速度変動量算出部１０８と、変動量差分算出部１１０とを有するが、その他、リングバッファ１２６、リングバッファ処理部１２８、リングバッファ消去部１３０を有し、第１差分比較部１１２Ａに代えて第２差分比較部１１２Ｂを有し、第１失火推測検知部１１４Ａに代えて第２失火推測検知部１１４Ｂを有する点で異なる。
【００７９】
リーン化判別部１０２は、リーン化制御フラグ１００の内容に基づいてリーン化制御中か否かを判別する。
【００８０】
リングバッファ１２６は、所定個数のバッファが論理的にリング状につながって構成されている。リングバッファ処理部１２８は、リングバッファ１２６に順番にサイクル間変動量差分ΔΔωを書き込む（上書きする）。リングバッファ消去部１３０は、リーン化制御中でない場合に、リングバッファ１２６を初期化して、全てのバッファの値を初期値「０」にする。
【００８１】
第２差分比較部１１２Ｂは、リングバッファ１２６に書き込まれた所定個数のサイクル間変動量差分ΔΔωと予め設定されたしきい値ΔΔωｔｈとを比較し、しきい値ΔΔωｔｈ以上のサイクル間変動量差分ΔΔωが書き込まれたバッファの数（バッファ数Ｎｃ）を取得する。
【００８２】
第２失火推測検知部１１４Ｂは、取得されたバッファ数Ｎｃと予め設定されたオーバーリーン検知回数Ｎｂとを比較し、バッファ数Ｎｃがオーバーリーン検知回数Ｎｂに達していれば、失火を推測検知する。
【００８３】
ここで、第２エンジン制御装置１０Ｂの処理動作、特に、失火の推測検知の動作を図１４のフローチャートも参照しながら説明する。
【００８４】
先ず、ステップＳ３０１において、リーン化判別部１０２は、リーン化制御フラグ１００の内容に基づいてリーン化制御中か否かを判別する。リーン化制御中であれば、ステップＳ３０２に進み、カウンタｉに初期値「０」を格納する。
【００８５】
ステップＳ３０３において、角速度変動量算出部１０８及び変動量差分算出部１１０を経て、今回のサイクルにおける角速度変動量（今回Δω）と前回のサイクルにおける角速度変動量（前回Δω）との差分の絶対値、すなわち、サイクル間変動量差分ΔΔωを算出する。
【００８６】
ステップＳ３０４において、リングバッファ処理部１２８は、サイクル間変動量差分ΔΔωをリングバッファ１２６におけるｉ番目のバッファに格納する。
【００８７】
ステップＳ３０５において、カウンタｉの計数値を＋１更新する。次のステップＳ３０６において、カウンタｉの計数値が規定値Ｎａ（監視サイクル数）以上であるか否かを判別する。カウンタｉの計数値が規定値Ｎａ未満であれば、ステップＳ３０３以降の処理に戻り、次のサイクル間変動量差分ΔΔωの算出処理及びリングバッファ１２６への書き込み処理を行う。
【００８８】
上述のステップＳ３０６において、カウンタｉの計数値が規定値Ｎａ以上となった段階で、次のステップＳ３０７に進み、第２差分比較部１１２Ｂは、リングバッファ１２６に書き込まれた所定個数のサイクル間変動量差分ΔΔωとしきい値ΔΔωｔｈとを比較し、しきい値ΔΔωｔｈ以上のサイクル間変動量差分ΔΔωが書き込まれたバッファの数（バッファ数Ｎｃ）を取得する。
【００８９】
次のステップＳ３０８において、第２失火推測検知部１１４Ｂは、取得されたバッファ数Ｎｃとオーバーリーン検知回数Ｎｂとを比較する。バッファ数Ｎｃがオーバーリーン検知回数Ｎｂ以上であれば、ステップＳ３０９に進み、変動が大きいサイクルの頻度が高いとして、失火を推測検知し、リーン化制御の停止を要求する。制御部５４は、第２失火推測検知部１１４Ｂからのリーン化制御の停止要求に基づいてリーン化制御を停止する。
【００９０】
一方、上述したステップＳ３０１において、リーン化制御中でないと判別された場合は、ステップＳ３１０に進み、リングバッファ消去部１３０は、リングバッファ１２６を初期化して、全てのバッファの値を初期値「０」にする。
【００９１】
上述したステップＳ３０９での処理が終了した段階、あるいは、ステップＳ３０７において、バッファ数Ｎｃがオーバーリーン検知回数Ｎｂ未満であると判別された場合、あるいは、ステップＳ３１０での処理が終了した段階で、次のステップＳ３１１に進み、制御部５４への終了要求（電源断等）があるか否かを判別し、終了要求がなければステップＳ３０１以降の処理に戻り、終了要求があった場合に、制御部５４での処理を終了する。
【００９２】
このように、第２エンジン制御装置１０Ｂにおいては、上述した第１エンジン制御装置１０Ａと同様の効果を有する。特に、リングバッファ１２６を利用して所定数のサイクル間変動量差分ΔΔωを書き込み、その中からしきい値ΔΔωｔｈ以上のバッファ数Ｎｃを取得してオーバーリーン検知回数Ｎｂと比較するようにしたので、制御手順がシンプルになり、プログラムデバッグや保守点検も容易になる。
【００９３】
なお、本発明に係るエンジン制御装置は、上述の実施の形態に限らず、本発明の要旨を逸脱することなく、種々の構成を採り得ることはもちろんである。
【符号の説明】
【００９４】
１０…エンジン制御装置                  １２…エンジン
３６…クランク軸                        ３８…クランクパルサロータ
４０…ピックアップ                      ５４…制御部
５６…歯欠け部                          ５８…ロータ
６０…リラクタ
６０ａ〜６０ｉ…第１リラクタ〜第９リラクタ
６２…境界                              １００…リーン化制御フラグ
１０２…リーン化判別部                  １０４…差分算出判別部
１０６…サイクル監視設定部              １０８…角速度変動量算出部
１１０…変動量差分算出部                １１２Ａ…第１差分比較部
１１２Ｂ…第２差分比較部                １１４Ａ…第１失火推測検知部
１１４Ｂ…第２失火推測検知部            １１６…差分算出許可フラグ
１１８…サイクル監視中フラグ            １２０…監視サイクルカウンタ
１２２…オーバーリーンカウンタ          １２４Ａ…第１角速度算出部
１２４Ｂ…第２角速度算出部              １２６…リングバッファ
１２８…リングバッファ処理部            １３０…リングバッファ消去部
Δω…角速度変動量                      ΔΔω…サイクル間変動量差分
ΔΔωｔｈ…しきい値
【図１】
2014199040.tif 000003
【図２】
2014199040.tif 000004
【図３】
2014199040.tif 000005
【図４】
2014199040.tif 000006
【図５】
2014199040.tif 000007
【図６】
2014199040.tif 000008
【図７】
2014199040.tif 000009
【図８】
2014199040.tif 000010
【図９】
2014199040.tif 000011
【図１０】
2014199040.tif 000012
【図１１】
2014199040.tif 000013
【図１２】
2014199040.tif 000014
【図１３】
2014199040.tif 000015
【図１４】
2014199040.tif 000016