(57)【特許請求の範囲】
【請求項１】
所定のクランク角度毎に出力される信号をカウントすることによって燃焼行程に対応するクランク角度に要する時間を気筒別に計測する手段と、
この時間計測値の気筒毎のバラツキがなくなるようにこの時間計測値を補正する学習値を演算する手段と、
この学習値をエンジン停止後も記憶するバックアップメモリと、
前記燃焼行程に対応するクランク角度に要する時間の計測区間が前回運転時と同じクランク角度位置になく前回運転時より前または後ろにずれているかどうかを運転毎に判定する手段と、
この判定結果より計測区間が前回運転時と同じクランク角度位置になく前回運転時より前または後ろにずれている場合に計測区間を前回運転時と同じクランク角度位置へとずらす手段と、
計測区間を前回運転時と同じクランク角度位置へとずらした後の前記時間計測値を前記バックアップメモリに記憶されている学習値で補正した値の変動状態から失火判定を行う手段と
を設けたことを特徴とするエンジンの失火診断装置。
【請求項２】
前記計測区間が前記所定のクランク角度毎に出力される信号の少なくとも一つ分だけ前回運転時より前にずれている場合に、そのずれている信号の分だけ前記計測区間を長くすることにより、前記計測区間を前回運転時と同じクランク角度位置へとずらすことを特徴とする請求項１に記載のエンジンの失火診断装置。
【請求項３】
前記計測区間が前記所定のクランク角度毎に出力される信号の少なくとも一つ分だけ前回運転時より後ろにずれている場合に、そのずれている信号の分だけ前記計測区間を短くすることにより、前記計測区間を前回運転時と同じクランク角度位置へとずらすことを特徴とする請求項１に記載のエンジンの失火診断装置。
【請求項４】
前記所定のクランク角度毎に出力される信号がリングギアの歯位置に対応した信号であることを特徴とする請求項１から３までのいずれか一つに記載のエンジンの失火診断装置。
【請求項５】
前記燃焼行程に対応するクランク角度に要する時間を気筒別に計測する手段が、
特定気筒の基準位置信号の立上がりから前記リングギアの歯位置に対応した信号を第１の所定数カウントした点を前記燃焼行程に対応するクランク角度に要する時間の起点として定める手段と、
この起点から前記リングギアの歯位置に対応した信号が第２の所定数カウントされるまでの時間を前記燃焼行程に対応するクランク角度に要する時間として計測する手段と、
その計測終了より前記リングギアの歯位置に対応した信号を第３の所定数カウントするまで待機した後に次の気筒の前記燃焼行程に対応するクランク角度に要する時間を計測する手段と、
この計測手段による計測終了後にこの計測手段による計測を繰り返す手段と
からなることを特徴とする請求項４に記載のエンジンの失火診断装置。
【請求項６】
前記計測区間を前回運転時と同じクランク角度位置へとずらす手段が、
各気筒の基準位置信号の入力から前記燃焼行程に対応するクランク角度に要する時間の計測開始点までの前記リングギアの歯位置に対応した信号の数の平均値を計算する手段と、
この平均値と前回運転時のこの平均値のバックアップ値との差の絶対値を判定値と比較する手段と、
この比較結果よりその差の絶対値が判定値を超える場合に前記平均値が前記バックアップ値より小さいときはその直後に１回だけ前記第２の所定数を前記平均値と前記バックアップ値との差の絶対値だけ大きくし、前記差の絶対値が判定値を超える場合に前記平均値が前記バックアップ値より大きいときはその直後に１回だけ前記第２の所定数を前記平均値と前記バックアップ値との差の絶対値だけ小さくする手段と
からなることを特徴とする請求項５に記載のエンジンの失火診断装置。
【請求項７】
前記基準位置信号がカムシャフトの回転に同期した信号であることを特徴とする請求項５または６に記載のエンジンの失火診断装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明はエンジンの失火診断装置に関する。
【０００２】
【従来の技術】
失火によるクランクシャフトのトルク変動を、リングギアに対向して設けた磁気ピックアップにより周期変動として検出することで、失火したかどうかの診断を行うものがある（特開平４−１１３２４４号公報参照）。
【０００３】
【発明が解決しようとする課題】
ところで、図２のａ，ｂ，ｃの各区間は、リングギアの所定の歯数分に対応させたものである。この所定の歯数分を磁気ピックアップによりカウントした時間を失火判定用クランク角度インターバルＴＩＮＴとするとき、リングギアの精度によっては、クランクシャフトが一定速度で回転していながら、ａ、ｂ，ｃの各区間でＴＩＮＴが同じでなく、このＴＩＮＴを用いて演算される失火パラメータに演算誤差を生じ、これによって失火判定に誤診断が生じることがあるので、特開平４−１０１０７１号公報では、リングギア精度の気筒別学習値を導入し、この気筒別学習値により対応する気筒のＴＩＮＴを補正している。
【０００４】
特開平４−１０１０７１号公報ではその一方で、イグニッションキーのオフからオンへの切換後に、１番気筒のＲｅｆ信号の入力より所定数のリングギアＰｏｓ信号（磁気ピックアップにより得られるパルスのこと）をカウントした時点を起点としてＴＩＮＴの計測を開始するようにしているので、１番気筒Ｒｅｆ信号の初期位置が前回運転時とずれているときは、今回運転時にＴＩＮＴ計測用のリングギアの歯位置が前回運転時と大きく違っていることがある。
【０００５】
たとえば、図１９の（ａ）、（ｂ）に示す前回運転時のものに対して、１番気筒Ｒｅｆ信号が、今回運転時も図１９の（ａ）に示す位置で立ち上がるのであれば、今回運転時に計測されるＴＩＮＴに対しても、前回運転時にバックアップＲＡＭに格納されている学習値が精度のよい値を与える。
【０００６】
しかしながら、カムシャフトに設けたクランク角センサにより得ている１番気筒Ｒｅｆ信号には、その立上がりの位置にクランク角で±数度といった比較的大きなバラツキがあるので、今回運転時に図１９の（ｃ）と（ｄ）に示すように１番気筒Ｒｅｆ信号の立上がりが遅れて、ＴＩＮＴの計測開始がリングギアの１歯分ずれることがある。
【０００７】
このようにして１番気筒Ｒｅｆ信号の立上がりが前回運転時より遅れることによって、ＴＩＮＴ計測用の歯位置が１歯分ずれたとすれば、もはや今回運転時に計測されたＴＩＮＴに対して、前回運転時にバックアップＲＡＭに格納されている学習値が精度のよい値を与えなくなり、誤差の生じた学習値では失火判定に誤診断が生じる可能性があるのである。
【０００８】
なお、１歯分といえどもその影響は大きい。高回転域における失火による回転変動は０．１％のオーダーになるので、高回転域ではリングギアの歯位置が１歯分ずれただけでも誤診断が確実に生じてしまうのである。この０．１％というオーダーは６気筒の場合であるが、気筒数がさらに増えればこのオーダーはさらに小さくなり、誤診断の確率も高くなる。
【０００９】
そこで、前回運転時にバックアップされている学習値を、今回運転時の診断に際してそのまま用いてもよいものかどうか、つまり前回運転時のＴＩＮＴ計測用リングギア歯位置と同じかどうかを運転開始毎にチェックすることにより、誤診断を防止するようにした装置（この装置を以下先願装置という。）を先に提案した（特願平７−１８０２１８号参照）。
【００１０】
この先願装置では、たとえば次の手順でＴＩＮＴ計測用リングギア歯位置の確認制御を行う。
【００１１】
▲１▼１番気筒Ｒｅｆ信号の入力よりＴＩＮＴ計測開始点までのリングギアＰｏｓ信号の数ＲＧＰＨＳ１の計測を行う。
【００１２】
▲２▼このＲＧＰＨＳ１を所定数ＣＮＴＲＧＣ積算するとともに、積算回数のカウントを行い、積算値を積算回数で割ることによってＲＧＰＨＳ１の平均値ＲＧＩＳＳＡを計算する。
【００１３】
▲３▼この平均値ＲＧＩＳＳＡと前回運転時のバックアップ値ＲＧＩＳＢＵとの差を判定値ＲＧＩＳＯＫと比較し、｜ＲＧＩＳＳＡ−ＲＧＩＳＢＵ｜＜ＲＧＩＳＢＵであれば、ＴＩＮＴ計測用リングギア歯位置が前回運転時と同一であると判断し、前回運転時に得ている学習値（バックアップ値）をそのままＴＩＮＴ補正に用いる。
【００１４】
▲４▼これに対して｜ＲＧＩＳＳＡ−ＲＧＩＳＢＵ｜＞ＲＧＩＳＢＵのときはＴＩＮＴ計測用リングギア歯位置が前回運転時と同一でないと判断し、とりあえずはＴＩＮＴ補正を行わない。このときは、前回運転時に得ている学習値をクリアした後で再学習し、その再学習値が収束したとき、その収束した再学習値を用いてＴＩＮＴ補正を行う。
【００１５】
しかしながら、ＴＩＮＴ計測用のリングギア歯位置が前回運転時と同一でなくなった場合に再学習する先願装置では、再学習値が収束するまでに相当の時間を要し、その間はＴＩＮＴ補正を行うことができないため失火判定精度が低下してしまうのである。
【００１６】
そこでこの発明は、ＴＩＮＴ計測用のリングギア歯位置が前回運転時と同一でなくなった場合に、ＴＩＮＴ計測用のリングギア歯位置が前回運転時と同一となるようにＴＩＮＴ計測用リングギア歯位置を強制的に移動することにより、前回運転時に得ている学習値の継続使用を可能とし、失火判定精度が低下しないようにすることを目的とする。
【００１７】
【課題を解決するための手段】
第１の発明は、図２０に示すように、所定のクランク角度毎に出力される信号をカウントすることによって燃焼行程に対応するクランク角度に要する時間を気筒別に計測する手段２１と、この時間計測値の気筒毎のバラツキがなくなるようにこの時間計測値を補正する学習値を演算する手段２２と、この学習値をエンジン停止後も記憶するバックアップメモリ２３と、前記燃焼行程に対応するクランク角度に要する時間の計測区間が前回運転時と同じクランク角度位置（あるいは同じ位相）になく前回運転時より前または後ろにずれているかどうかを運転毎に判定する手段２４と、この判定結果より計測区間が前回運転時と同じクランク角度位置になく前回運転時より前または後ろにずれている場合に計測区間を前回運転時と同じクランク角度位置へとずらす手段２５と、計測区間を前回運転時と同じ位置へとずらした後の前記時間計測値を前記バックアップメモリ２３に記憶されている学習値で補正した値の変動状態から失火判定を行う手段２６とを設けた。
第２の発明では、第１の発明において前記計測区間が前記所定のクランク角度毎に出力される信号の少なくとも一つ分だけ前回運転時より前にずれている場合に、そのずれている信号の分だけ前記計測区間を長くすることにより、前記計測区間を前回運転時と同じクランク角度位置へとずらす。
第３の発明では、第１の発明において前記計測区間が前記所定のクランク角度毎に出力される信号の少なくとも一つ分だけ前回運転時より後ろにずれている場合に、そのずれている信号の分だけ前記計測区間を短くすることにより、前記計測区間を前回運転時と同じクランク角度位置へとずらす。
【００１８】
第４の発明では、第１から３までのいずれか一つの発明において前記所定のクランク角度毎に出力される信号がリングギアの歯位置に対応した信号である。
【００２１】
第５の発明では、第４の発明において前記燃焼行程に対応するクランク角度に要する時間を気筒別に計測する手段が、特定気筒（たとえば１番気筒）の基準位置信号の立上がりから前記リングギアの歯位置に対応した信号を第１の所定数ＣＲＩＮＧ１カウントした点を前記燃焼行程に対応するクランク角度に要する時間の起点として定める手段と、この起点から前記リングギアの歯位置に対応した信号が第２の所定数ＣＲＩＮＧ２カウントされるまでの時間を前記燃焼行程に対応するクランク角度に要する時間として計測する手段と、その計測終了より前記リングギアの歯位置に対応した信号を第３の所定数ＣＲＩＮＧ３カウントするまで待機した後に次の気筒の前記燃焼行程に対応するクランク角度に要する時間を計測する手段と、この計測手段による計測終了後にこの計測手段による計測を繰り返す手段とからなる。
【００２２】
第６の発明では、第５の発明において前記計測区間を前回運転時と同じクランク角度位置へとずらす手段２５が、各気筒の基準位置信号の入力から前記燃焼行程に対応するクランク角度に要する時間の計測開始点までの前記リングギアの歯位置に対応した信号の数ＲＧＰＨＳの平均値を計算する手段と、この平均値と前回運転時のこの平均値のバックアップ値との差の絶対値を判定値ＲＧＩＳＯＫと比較する手段と、この比較結果よりその差の絶対値が判定値ＲＧＩＳＯＫを超える場合に前記平均値が前記バックアップ値より小さいときはその直後に１回だけ前記第２の所定数ＣＲＩＮＧ２を前記平均値と前記バックアップ値との差の絶対値だけ大きくし、前記差の絶対値が判定値ＲＧＩＳＯＫを超える場合に前記平均値が前記バックアップ値より大きいときはその直後に１回だけ前記第２の所定数ＣＲＩＮＧ２を前記平均値と前記バックアップ値との差の絶対値だけ小さくする手段とからなる。
【００２３】
第７の発明では、第５または第６の発明において前記基準位置信号がカムシャフトの回転に同期した信号である。
【００２４】
【発明の効果】
前回運転時にたとえばノイズの入力がなかったとして、今回運転時にノイズが入力し、このノイズも所定クランク角度毎に出力される信号として誤ってカウントされるとき、ノイズ入力後には燃焼行程に対応するクランク角度に要する時間の計測区間が前回運転時より前記所定のクランク角度毎に出力される信号の少なくとも一つ分だけ前のほうにずれて、計測区間が前回運転時と同じクランク角度位置でなくなる。この場合に、前回運転時に得ている学習値を捨てて再学習を行う先願装置では、学習値が収束するまでに時間がかかり、そのあいだ失火判定の精度が落ちる。このとき第１の発明では、計測区間を前回運転時と同じクランク角度位置へとずらす、具体的にはそのずれている信号の分だけ計測区間を長くするので、前回運転時に得ている学習値を捨てて再学習を行うことは必要でなく、前回運転時に得ている学習値をそのまま用いて失火判定を行うことができることから、ノイズ入力を所定クランク角度毎に出力される信号として誤ってカウントするときでも、失火判定の精度を落とすことがない。
【００２５】
同様にして、前回運転時にたとえば所定クランク角度毎に出力される信号に欠けるところがなかったとして、今回運転時に所定クランク角度毎に出力される信号に欠けるところが生じたときは、その分がカウントされないため、計測区間が前回運転時より前記所定のクランク角度毎に出力される信号の少なくとも一つ分だけ後ろのほうにずれ、計測区間が前回運転時と同じクランク角度位置でなくなるのであるが、このときも、第１の発明では計測区間を前回運転時と同じクランク角度位置へとずらす、具体的にはそのずれている信号の分だけ計測区間を短くするので、所定クランク角度毎に出力される信号に欠けるところが生じるときでも、失火判定の精度の低下を防止できる。
【００２７】
第４の発明では、所定のクランク角度毎の信号を出力する手段を簡易に構成できる。
【００２８】
【発明の実施の形態】
図１において、１はエンジン本体、２はクランクシャフト、４はクランクシャフト端のフライホイール３の外周に形成されるリングギアである。リングギア４の歯に対向して、鉄心とコイルからなる磁気ピックアップ５が設置され、クランクシャフト２が回転すると、この歯が磁気ピックアップ５の鉄心に発生する磁界を断続するため、磁気ピックアップ５のコイルに磁力変化が生じて、交流電流が誘導される。この交流信号はコントロールユニット７内で波形成型されて矩形波のＯＮ、ＯＦＦパルス（リングギアＰｏｓ信号）に変換され、クランク角度信号として使用される。
【００２９】
また、クランクシャフト２によって駆動されるカムシャフト（図示しない）に公知のクランク角度センサ６が設けられ、このセンサ６からのＲｅｆ信号（基準位置信号）もコントロールユニット７に送られる。
【００３０】
コントロールユニット７では、クランク角度センサ６の１番気筒Ｒｅｆ信号の入力から所定数ＣＲＩＮＧ１のリングギアＰｏｓ信号をカウントした時点を起点として、図２に示したように、クランクシャフト２の所定角度当たりに要する時間である失火判定用クランク角度インターバルＴＩＮＴをクランクシャフトの１回転当たり３回計測し、そのＴＩＮＴを用いて失火判定を行う。ただし、図２はＶ型６気筒エンジンのもので、点火順序を１−２−３−４−５−６としたとき、ａの区間は１番気筒および４番気筒の、ｂの区間は２番気筒および５番気筒の、ｃの区間は３番気筒および６番気筒の各燃焼行程に対応する。
【００３１】
ＴＩＮＴ計測についてさらに図３により詳述すると、次の手順で実行する。
【００３２】
（ａ）イグニッションキーのＯＦＦからＯＮへの切換後に、１番気筒Ｒｅｆ信号の立上がりからリングギアＰｏｓ信号を第１の所定数ＣＲＩＮＧ１、カウントした時点を起点としてＴＩＮＴの計測を開始する。
【００３３】
（ｂ）リングギアＰｏｓ信号がこの起点から第２の所定数ＣＲＩＮＧ２、カウントされるまでの時間をＴＩＮＴとする。
【００３４】
（ｃ）つぎの気筒のＴＩＮＴ計測開始まで第３の所定数ＣＲＩＮＧ３のカウントだけ待機する。
【００３５】
（ｄ）以後、（ｂ）と（ｃ）の操作を繰り返してＴＩＮＴの更新を行う。
【００３６】
図４のフローチャートは、ＴＩＮＴ計測を行うためのもので、リングギアＰｏｓ信号の入力毎に実行する。
【００３７】
まずステップ１ではＴＩＮＴ計測許可フラグをみる。このフラグはイグニッションキーのＯＦＦからＯＮへの切換後に、１番気筒Ｒｅｆ信号が立上がったとき“１”にセットされるフラグである。
【００３８】
ＴＩＮＴ計測許可フラグが“１”のときはステップ２に進み、歯数カウンタ１と第１の所定数ＣＲＩＮＧ１を比較する。ここで、歯数カウンタ１（初期値は０）は、後述する歯数カウンタ２、歯数カウンタ３とともに、リングギアＰｏｓ信号の入力数をカウントするためのものである。歯数カウンタ１がＣＲＩＮＧ１と等しくないときはステップ３で歯数カウンタ１のインクリメントを繰り返し、やがて歯数カウンタ１がＣＲＩＮＧ１と一致したとき、ステップ４に進み、今度は歯数カウンタ２と第２の所定数ＣＲＩＮＧ２を比較する。歯数カウンタ２（初期値は０）がＣＲＩＮＧ２と等しくないときはステップ５で歯数カウンタ２をインクリメントする。ステップ６ではステップ４に進んできたのが初めてかどうかみて初めてであればステップ７に進んでＴＩＮＴ計測用のタイマをスタートさせる。次からは、ステップ５での歯数カウンタ２のインクリメントを繰り返し、やがて歯数カウンタ２がＣＲＩＮＧ２と一致したとき、ステップ８に進み、歯数カウンタ３（初期値は０）と第３の所定数ＣＲＩＮＧ３を比較する。歯数カウンタ３がＣＲＩＮＧ３と等しくないときはステップ９で歯数カウンタ３をインクリメントする。ステップ１０ではステップ８に進んできたのが初めてかどうかみて初めてであればステップ１１、１２に進んでＴＩＮＴの旧値のシフトを行うとともに、そのときのタイマ値をＴＩＮＴ１に格納する。ＴＩＮＴの旧値のシフトは、メモリＴＩＮＴ８の値をメモリＴＩＮＴ９に、メモリＴＩＮＴ７の値をメモリＴＩＮＴ８に、…、メモリＴＩＮＴ１の値をメモリＴＩＮＴ２に移すことである。
【００３９】
次からは、ステップ９での歯数カウンタ３のインクリメントを繰り返し、やがて歯数カウンタ３がＣＲＩＮＧ３と一致したとき、ステップ１３に進み、歯数カウンタ２、歯数カウンタ３をともに０にリセットする。この２つの歯数カウンタのリセットにより次からは、ステップ４以降が繰り返されることになる。
【００４０】
このようにして、ステップ１２の操作が７回行われた後では、後述する失火パラメータＡ、Ｂの演算が可能となる。
【００４１】
なお、説明しなかったステップ２１、２２、２３は本発明にかかわる部分であり、後述する。
【００４２】
ところで、リングギア３について、製作時の歯の粗密あるいは経時劣化に伴う歯の摩耗があると、クランクシャフトが一定速度で回転していても、図５に示すようにａ，ｂ，ｃの各区間でＴＩＮＴの値がばらつく波形となる。ＴＩＮＴの計測は、リングギア４の各歯に対応して発生するリングギアＰｏｓ信号をカウントすることによって行うので、ａ区間の歯列が規定値よりたとえば粗く、またｂ区間の歯列が規定値よりたとえば密に形成されているとき、規定値と同数のリングギアＰｏｓ信号をカウントしても、ａ区間でＴＩＮＴの値が規定値より大きくなり、またｂ区間でＴＩＮＴの値が規定値より小さくなるわけである。図５に示したこのような波形に重なって失火以外の要因による回転変動があるときは、図６のように、見かけの回転変動（図６上段の実線参照）が実際の回転変動よりも大きくなり、失火と誤判定してしまうことにもなる。
【００４３】
これに対処するため、リングギアの偏心などよるＴＩＮＴのばらつきの補正を行う。なお、ＴＩＮＴ補正の基本的な考え方は特開平４−１０１０７１号に開示されている。
【００４４】
この補正は実測されたＴＩＮＴ（図７の実線参照）を１番気筒のＴＩＮＴを基準として、滑らかにつながるように（図７の破線参照）行う。３番気筒で具体的に説明すると、１番気筒の前回のＴＩＮＴと今回のＴＩＮＴの差分４／６を前回の１番気筒のＴＩＮＴに加えることにより３番気筒のＴＩＮＴ要求値を算出し、これと実際の３番気筒のＴＩＮＴの比を３番気筒のＴＩＮＴ補正係数として求める。これを式で表せば、
0003627386.tif 000002
である。
【００４５】
なお、実際には、気筒別のＴＩＮＴ補正係数から気筒別のＴＩＮＴ補正係数学習値を求め、この学習値を対応する気筒の実際のＴＩＮＴに乗算することによって補正する。
【００４６】
ただし、この補正されたＴＩＮＴの値を用いるのは、後述する失火パラメータＭＩＳＡに対してだけである。その理由は次の通りである。リングギアの歯精度の関係よりＴＩＮＴにはほぼ１．０％のばらつきがあるものの、ＴＩＮＴ補正係数の学習によって学習値のばらつきを０．１％程度にまで抑えることができる。しかしながら、後述する失火パラメータＭＩＳＢについてまでＴＩＮＴ補正係数学習値を用いたときは、その学習値に生じる０．１％分のばらつきが加わって、かえって失火判定精度を落としてしまうのである。
【００４７】
図８のフローチャートはＴＩＮＴ補正係数学習値を演算するためのもので、ＴＩＮＴの計測毎に実行する。
【００４８】
ステップ３１、３２、３３、３４では次の条件を満足するかどうかみて、
ステップ３１：診断許可条件であること、
ステップ３２：アイドルスイッチがＯＮであること、
ステップ３３：全気筒フュエルカット中であること
ステップ３４：ステップ３２、３３の成立から所定時間が経過していることのすべてを満たす場合に学習条件を満たしているとしてステップ３５に進む。いずれかの条件でも成立しないときは図８のフローを終了する。
【００４９】
ステップ３５ではＴＩＮＴ傾斜係数ＧＲＤＴＮＴを、
ＧＲＤＴＮＴ＝（ＴＩＮＴ７−ＴＩＮＴ１）／６              …（３）
の式により計算し、このＧＲＤＴＮＴを用いて、気筒別ＴＩＮＴ補正係数ＫＴＮＴｉ（ｉは気筒番号）をステップ３６において
0003627386.tif 000003
の式により計算する。たとえば、３番気筒についてみると、
0003627386.tif 000004
となり、上記の（２）式と一致している。
【００５０】
ステップ３７ではＫＴＮＴｉを積算した回数ＥＮＺＮＮ１（初期値は０）と、ＫＴＮＴｉ平均値ＭＫＴＮＴｉの演算を許可するための判定値ＫＴＮＯＫ１とを比較する。初めてステップ３７に進んできたときには、ＥＮＺＮＮ１＜ＫＴＮＯＫ１であるため、ステップ３８、３９に進み、
ＳＫＴＮＴｉ＝ＳＫＴＮＴｉ＋ＫＴＮＴｉ                  …（５）
の式によりＫＴＮＴｉの積算値ＳＫＴＮＴｉ（初期値は０）を計算するとともに、ＥＮＺＮＮ１を１だけインクリメントする。
【００５１】
ステップ３８、３９をＴＩＮＴ計測毎に繰り返すことによって、ＥＮＺＮＮ１がＫＴＮＯＫ１に達したときは、ステップ４０以降に進む。
【００５２】
ステップ４０では
ＭＫＴＮＴｉ＝ＳＫＴＮＴｉ／ＥＮＺＮＮ１                …（６）
の式によりＫＴＮＴｉ平均値ＭＫＴＮＴｉを計算し、このＭＫＴＮＴｉと後述する学習値ＲＫＴＩｉとの差の絶対値がステップ４１において判定値ＤＲＫＴＣＮ未満である場合に限って、ステップ４３に進み、
ＲＫＴＩｉ＝ＭＫＴＮＴｉ×Ｘ＋（１−Ｘ）×ＲＫＴＩｉ−１  …（７）
ただし、Ｘ：更新割合
ＲＫＴＩｉ−１：ＲＫＴＩｉの前回値
の式により、気筒別ＴＩＮＴ補正係数学習値ＲＫＴＩｉを更新する。
【００５３】
このようにして更新した学習値ＲＫＴＩｉはバックアップＲＡＭに保存しておき、失火パラメータＭＩＳＡの算出に用いるＴＩＮＴ（ＴＩＮＴ１、ＴＩＮＴ６、ＴＩＮＴ７）に対してだけ、これに対応する学習値を乗算した値を用いることで、リングギア精度に起因する誤診断を避けることができる。
【００５４】
一方、｜ＲＫＴＩｉ−ＭＫＴＮＴｉ｜≧ＤＲＫＴＣＮであるときは、ステップ４２で学習値ＲＫＴＩｉをクリアし、再度学習をやり直す。
【００５５】
飛ばしたステップ４４、４５は先願装置にかかる部分であり、後述する。
【００５６】
図９のフローチャートは失火パラメータＭＩＳＡ、ＭＩＳＢを演算するためのもので、点火毎に実行する。
【００５７】
ここで、失火パラメータＭＩＳＢ、ＭＩＳＡを演算するものが公知になっているので、これについて簡単にまとめておく。
【００５８】
まず、図１０は加速時に４番気筒で失火を生じたときの波形図で、失火により４番気筒でのＴＩＮＴが大きくなり、４番気筒の前後で段差が生じている。
【００５９】
この場合に、１番気筒と４番気筒とはリングギアの同じ歯位置を使って計測されるため、失火気筒（４番気筒）を中心にしてエンジン一回転前の対向気筒（１番気筒）のＴＩＮＴとエンジン一回転後の対向気筒（１番気筒）のＴＩＮＴとを結んだ直線より上方にはみ出す部分の時間増加ΔＴＩＮＴが失火によるものと推定することができる。同図の時間増加ΔＴＩＮＴは、図形処理（たとえばＴＩＮＴ４からａｂ間の長さを引く）により、
0003627386.tif 000005
の式で計算されるので、１番気筒と４番気筒のようにリングギアの同じ歯位置で計測される対向気筒についての失火パラメータＭＩＳＢを、
ＭＩＳＢ＝６×ΔＴＩＮＴ／（ＴＩＮＴ７）３                  …（Ｂ）
の式で定義する。
【００６０】
ここで、失火に伴う時間増加ΔＴＩＮＴは、発生トルク、エンジン回転数との間に、
ΔＴＩＮＴ∝発生トルク／（エンジン回転数３）        …（ａ）
なる関係があり、またエンジン回転数とＴＩＮＴとは逆数の関係があるので、
発生トルク∝ΔＴＩＮＴ・（エンジン回転数３）＝ΔＴＩＮＴ／ＴＩＮＴ３…（ｂ）
となる。この（ｂ）式と（Ｂ）式とを比べれば、ＭＩＳＢ（後述する他の失火パラメータについても）は、物理的にはトルク相当の値であることが分かる。つまり、失火に伴う時間増加ΔＴＩＮＴはエンジン回転数に依存し、回転数が高くなるほど小さくなる値となるので、この時間増加ΔＴＩＮＴを所定の時間計測値の三乗で除した値を失火パラメータとすることによって、失火パラメータが回転数の影響を受けないようにしているわけである。また、（Ｂ）式において６倍にしているのはＭＩＳＢの値が少数にならないようにするためである。
【００６１】
（Ａ）式のΔＴＩＮＴを（Ｂ）式に代入すると、失火パラメータＭＩＳＢは最終的に次の式で与えられる。
【００６２】
ＭＩＳＢ＝｛３（ＴＩＮＴ４−ＴＩＮＴ７）＋３（ＴＩＮＴ４−ＴＩＮＴ１）｝／（ＴＩＮＴ７）３…（Ｃ）
（Ｃ）式において、右辺分子の第１項が失火気筒とエンジン一回転前の対向気筒とのＴＩＮＴ差、右辺分子の第２項が失火気筒とエンジン一回転後の対向気筒とのＴＩＮＴ差である。
【００６３】
図１０より４番気筒に失火を生じてＴＩＮＴ４が大きくなると、ＭＩＳＢが大きくなるので、ＭＩＳＢが判定値以上となる場合に失火が生じたと判断することができる。ＭＩＳＢを用いての失火判定では、リングギアの同じ歯位置を用いるので、リングギアの形状バラツキの影響を受けることがないという特質を有する。
【００６４】
しかしながら、１番気筒と４番気筒が連続してともに失火したときは、ＴＩＮＴ１、ＴＩＮＴ４、ＴＩＮＴ７のすべてが同じように大きくなるため、ΔＴＩＮＴ≒０（つまりＭＩＳＢ≒０）となって失火が判定できなくなるので、他の失火パラメータを考える必要が出てくる。
【００６５】
そこで、図１１に示したように、今度は２番気筒で失火を生じた場合に、失火気筒（２番気筒）の一点火前の気筒（１番気筒）の計測値を考慮して失火による時間増加ΔＴＩＮＴを計算することを考える。これも図形処理により、
0003627386.tif 000006
の式で計算されるので、別の失火パラメータＭＩＳＡを、
ＭＩＳＡ＝６×ΔＴＩＮＴ／（ＴＩＮＴ７）３                  …（Ｅ）
の式で定義すると、失火パラメータＭＩＳＡは最終的に次の式で与えられる。
【００６６】
ＭＩＳＡ＝｛５（ＴＩＮＴ６−ＴＩＮＴ７）＋（ＴＩＮＴ６−ＴＩＮＴ１）｝／（ＴＩＮＴ７）３…（Ｆ）
（Ｆ）式において、右辺分子の第１項が失火気筒と一点火前の気筒とのＴＩＮＴ差、右辺分子の第２項が失火気筒と現在の気筒とのＴＩＮＴ差であり、６気筒エンジンでは、失火気筒と現在の気筒とのＴＩＮＴ差が１に対して失火気筒と一点火前の気筒とのＴＩＮＴ差が５の割合になっている。
【００６７】
このようにして得られた失火パラメータＭＩＳＡによれば、１番気筒と４番気筒のようにリングギアの同じ歯位置で測定される対向気筒が連続してともに失火したときでも、ＭＩＳＡが判定値以上となることから失火と判断することができる。
【００６８】
これで、失火パラメータＭＩＳＢ、ＭＩＳＡの演算についての説明を終える。
【００６９】
図９に戻り、ステップ５１（先願装置にかかる部分）は後述するとして、ステップ５２ではＴＩＮＴ補正が許可されているかどうかをみる。ここで、
▲１▼すべての気筒で学習値ＲＫＴＩｉが所定範囲にあること、
▲２▼エンジン回転開始後ＭＫＴＮＴｉの算出を経験していること
の両方を満たす場合がＴＩＮＴ補正が許可される場合である。ＴＩＮＴ補正が許可されている場合は、ステップ５３において、
ＨＳＴＮＴ１＝ＴＩＮＴ１×ＲＫＴＩ１
ＨＳＴＮＴ６＝ＴＩＮＴ６×ＲＫＴＩ６
ＨＳＴＮＴ７＝ＴＩＮＴ７×ＲＫＴＩ７
の式により３つの各補正ＴＩＮＴを計算する。ＴＩＮＴ補正が許可されていないときは、ステップ５４においてＴＩＮＴ１、ＴＩＮＴ６、ＴＩＮＴ７をそのままＨＳＴＮＴ１、ＨＳＴＮＴ６、ＨＳＴＮＴ７とする。
【００７０】
ステップ５５では、
ＭＩＳＡ＝｛５（ＨＳＴＮＴ６−ＨＳＴＮＴ７）＋（ＨＳＴＮＴ６−ＨＳＴＮＴ１）｝／（ＴＩＮＴ７）３…（Ｆ′）
の式により失火パラメータＭＩＳＡを、またステップ５６では前述の（Ｃ）式により失火パラメータＭＩＳＢを計算する。
【００７１】
ステップ５７では失火判定が許可されてから所定の点火数以上が経過しているかどうかみて、所定の点火数以上が経過していれば、ステップ５８において失火パラメータの演算を終了したことを示すフラグ（初期値は“０”）を“１”にセットして図９のフローを終了する。
【００７２】
図１２のフローチャートは失火判定を行うためのもので、点火毎に実行する。図１２のフローチャートは図９に続けて実行する。
【００７３】
まずステップ６１では失火判定許可条件かどうかをみる。診断許可条件で診断の許可中かつ診断が許可されてから所定の点火数以降であるとき失火判定許可条件を満たしたと判断し、ステップ６２以降に進む。
【００７４】
ステップ６２、６３、６４は失火判定条件１を実行する部分、続くステップ６５、６６、６７は失火判定条件２を実行する部分である。
【００７５】
ここで、２つの失火判定条件は上記２つの失火パラメータＭＩＳＢ、ＭＩＳＡに対応して設定したものである。また、各失火判定条件の適用を定めるため、失火判定領域を各失火パラメータの精度（失火パラメータの精度はＭＩＳＡ＜ＭＩＳＢの順になる）に応じて領域を分割しており、各失火判定条件が適用される領域を図１３、図１４のように定めている。ただし、Ｂ領域はＴＩＮＴ補正係数の学習が終了している場合にはＡ領域に編入され、ＴＩＮＴ補正係数の学習が終了していない場合にはＣ領域に編入される。
【００７６】
ステップ６２では回転数Ｎと基本噴射パルス幅Ｔｐとで定まる運転条件が、図１３に示したＡ、Ｂ、Ｃのいずれかの領域にあれば、失火判定条件１が適用される領域にあると判断してステップ６３に進み、失火パラメータＭＩＳＢが所定の範囲にあるかどうかをみる。ＭＩＳＢが所定の範囲にあれば、ステップ６４に進んで失火が生じたことを表すフラグＦＭＩＳＢ（初期値は“０”）を“１”にセットする。
【００７７】
ステップ６５、６６、６７ではステップ６２、６３、６４と同様にして、運転条件が失火判定条件２の適用される領域（ＴＩＮＴ補正係数の学習が終了している場合にはＡ領域とＢ領域、ＴＩＮＴ補正係数の学習が終了していない場合にはＡ領域だけ）にあれば、失火パラメータＭＩＳＡが所定の範囲にあるかどうかみて、所定の範囲にある場合に失火が生じたことを表すフラグＦＭＩＳＡ（初期値は“０”）を“１”にセットする。
【００７８】
ステップ６８では２つのフラグＦＭＩＳＢ、ＦＭＩＳＡをみて、いずれかが“１”であれば、ステップ６９において失火ありと、またいずれも“１”でないときは、ステップ７０において失火なしとそれぞれ判定し、図１２のフローを終了する。
【００７９】
さて、１番気筒Ｒｅｆ信号の初期位置のバラツキによりにより、ＴＩＮＴ計測用のリングギアの歯位置が、前回運転時と違っている場合にまで、前回運転時にバックアップＲＡＭに保存されている学習値を読み出してそのままＴＩＮＴ補正を行ったのでは、失火パラメータＭＩＳＡを用いての失火判定に誤診断の生じる可能性がある。
【００８０】
これに対処するため先願装置では、前回運転時よりバックアップされている学習値を、今回運転時の失火判定に際してそのまま用いてもよいものかどうか、つまり前回運転時のＴＩＮＴ計測用リングギア歯位置と同じかどうかを運転開始毎にチェックする。詳細には、図１５、図１６に示すフローチャートを設けるとともに、図９においてステップ５１を、また図８においてステップ４４、４５をそれぞれ追加している。
【００８１】
まず、図１５、図１６のフローチャートは、ＴＩＮＴ計測用のリングギアの歯位置が前回運転時と同じか否かを確認するためのものである。なお、先願装置と後述する本発明とでリングギア歯位置確認制御に細部の違いがある（たとえばリングギア歯位置確認制御を１番気筒Ｒｅｆ信号の入力毎に行っていたが、本発明では各気筒のＲｅｆ信号の入力毎に変更している）ので、本発明にしたがって述べる。
【００８２】
ステップ８１、８２、８３では次の条件
▲１▼診断許可条件の成立中であること（ステップ８１）、
▲２▼エンジン回転数Ｎが所定値以上であること（ステップ８２）、
▲３▼所定時間当たりの回転数の上昇ΔＮが所定値以上であること（ステップ８３）、
▲４▼ＴＩＮＴ計測開始後、ＴＩＮＴ計測用リングギア歯位置確認制御が１回も終了していないこと（ステップ８４）
が成立するかどうかみてすべての条件が成立する場合にステップ８５以降に進む。▲２▼と▲３▼が成立する条件は、図１７に示すように、クランクスプロケット１１とカムスプロケット１２とを掛け回しているタイミングチェーン１３がピンと張る条件のことである。エンジン駆動の油圧ポンプからの供給油圧で駆動されるチェーンテンショナ１４への油圧が十分高くなっており（つまり回転数が所定値以上）、かつ加速時であればタイミングチェーン１３がピンと張るわけで、これによってクランク角度センサ６により得られる１番気筒Ｒｅｆ信号の初期位置のずれをなくすことができるのである。
【００８３】
ステップ８５では各筒用のＲｅｆ信号の入力よりＴＩＮＴ計測開始点までのリングギアＰｏｓ信号の数ＲＧＰＨＳの計測を行い、ステップ８６において積算回数ＮＲＧＰＨＳと所定値ＣＮＴＲＧＣの比較を行う。積算回数ＮＲＧＰＨＳはイグニッションキーのオン（始動）のタイミングで０に初期設定されるので、ＮＲＧＰＨＳがＣＮＴＲＧＣ以上となるまではステップ８７、８８に進む。ステップ８７、８８では上記のＲＧＰＨＳを積算値ＲＧＰＳＳＭに加算し、積算回数ＮＲＧＰＨＳを１だけインクリメントする。積算値ＲＧＰＳＳＭもイグニッションキーのオンのタイミングで０に初期設定される。
【００８４】
ステップ８８での繰り返しにより、積算回数ＮＲＧＰＨＳがＣＮＴＲＧＣ以上となった時点でステップ８６からステップ８９以降の処理に移行する。
【００８５】
ステップ８９では積算値ＲＧＰＳＳＭをＣＮＴＲＧＣで割ることによってＲＧＰＨＳの平均値ＲＧＩＳＳＡを算出し、この平均値ＲＧＩＳＳＡと前回運転時のバックアップ値ＲＧＩＳＢＵを比較し、次の１）と２）のいずれかの処理を行う。この処理の後、図１５、図１６に示す歯位置確認制御はイグニッションキーのオフまで行わない。
【００８６】
１）平均値とバックアップ値との差の絶対値｜ＲＧＩＳＳＡ−ＲＧＩＳＢＵ｜をステップ９０で判定値ＲＧＩＳＯＫ（ＲＧＩＳＯＫ＞０）と比較し、｜ＲＧＩＳＳＡ−ＲＧＩＳＢＵ｜≦ＲＧＩＳＯＫであれば、ＴＩＮＴ計測用リングギアの歯位置は前回運転時のＴＩＮＴ計測時と同一であると判断する。このときは、ステップ９１，９２で学習値の使用許可フラグ（イグニッションキーのオンのタイミングで“０”に初期設定）を“１”にセットするとともに、次回運転時の歯位置確認制御のため平均値ＲＧＩＳＳＡをＲＧＩＳＢＵに移し、これをバックアップＲＡＭに保存しておく。
【００８７】
２）上記の１）に該当しないときは、リングギア学習をやり直すため学習値をすべてクリア（つまり初期値の１００％に戻す）するとともに、次回運転時の歯位置確認制御のためこのときも平均値ＲＧＩＳＳＡをＲＧＩＳＢＵに移しておく。
【００８８】
なお、図１６はＴＩＮＴ計測用リングギアの歯位置が前回運転時と同一でなかった場合の操作であるが、図１６には先願装置のこの２）の部分を図示していない。この先願部分を、後述する本発明では図１６に示した操作に変更するのである。
【００８９】
次に、先願装置では図９に示す失火パラメータを演算するためのフローチャートにおいてステップ５１が追加され、ここで学習値の使用許可フラグが“１”のときに限り、ステップ５３の補正ＴＩＮＴの算出に進むことができる。学習値の使用許可フラグが“１”になるのは、上記１）の場合であり、ＴＩＮＴ計測用リングギアの歯位置が前回運転時と同じであることを条件にして、前回運転時にバックアップＲＡＭに格納されている学習値を用いての補正ＴＩＮＴの算出に入らせるわけである。
【００９０】
これに対して、上記２）の場合にはステップ５３に進むことができない。上記２）のようにＴＩＮＴ計測用リングギアの歯位置が前回運転時と同一でない場合に、前回運転時にバックアップＲＡＭに格納されている学習値を用いたときは補正ＴＩＮＴに誤差を生じ、ひいては失火判定に誤診断が生じる可能性があるので、ＴＩＮＴ計測用リングギアの歯位置が前回運転時と今回運転時とで同じであることを確認する前には、補正ＴＩＮＴの算出に入らせないようにすることで、１番気筒Ｒｅｆ信号の初期位置の前回運転時からのずれがある場合の失火判定の誤診断を避けることができるのである。
【００９１】
先願装置ではまた、図８のＴＩＮＴ補正係数学習値を演算するためのフローチャートにおいてステップ４４、４５を追加している。上記２）の場合には、学習値がすべてクリアされることより、図８において学習のやり直しが行われるのであり、学習値が収束したタイミングで学習値の使用許可フラグを“１”にしている。このフラグの“１”へのセットにより、再学習の後にも図９においてステップ５２以降に進むことができる。つまり、上記２）の場合にも、今回運転時のＴＩＮＴ計測用リングギアの歯位置に対して、学習を再度行って学習値が収束したときには、その収束後の学習値が今回運転時のＴＩＮＴ計測用リングギアの歯位置に精度良く対応することになるので、再学習後であれば、ふたたびその再学習後の学習値を用いての診断を行うことができ、これによって誤診断を生じさせることなく診断の機会を増やすことができるのである。
【００９２】
このようにして、ＴＩＮＴ計測用のリングギアの歯位置が前回運転時と同じであることを確認した後に、また、ＴＩＮＴ計測用のリングギアの歯位置が前回運転時と同じでないときは、再学習により今回運転時のＴＩＮＴ計測用のリングギアの歯位置と学習値とを対応させた後に補正ＴＩＮＴの算出に入らせるようにしたので、１番気筒Ｒｅｆ信号の初期位置のバラツキ、あるいは１番気筒Ｒｅｆ信号の入力よりＴＩＮＴの計測開始点までの間にリングギアの変形や歯飛び等があっても、誤診断を避けることができる。
【００９３】
これで先願装置の説明を終える。
【００９４】
さて、ＴＩＮＴ計測用リングギアの歯位置が前回運転時と今回運転時とで同一でない場合にいったん学習値をクリアし、再学習を行わせるようにしている先願装置では、その学習値が収束するまでの間、補正ＴＩＮＴを算出することができない。
【００９５】
これに対処するため本発明では、ＴＩＮＴ計測用リングギアの歯位置が前回運転時と今回運転時とで同一でない場合に、ＴＩＮＴ計測用リングギアの歯位置を前回運転時と同じ位置に戻すことにより、前回運転時にバックアップＲＡＭに格納してある学習値をそのまま使用できるようにする。
【００９６】
具体的には、図１５、図１６に示すＴＩＮＴ計測用リングギア歯位置確認制御のフローチャートにおいて図１６のステップ９３〜９８を、また図４に示すＴＩＮＴ計測のフローチャートにおいてステップ２１、２２、２３を追加して設けている。
【００９７】
まず、ＴＩＮＴ計測用リングギアの歯位置が前回運転時と同一でなかった場合にステップ９０より図１６のステップ９３に進むことになるが、ここで
ＳＥＩＳＵ＝｜ＲＧＩＳＳＡ−ＲＧＩＳＢＵ｜                …（８）
の式により前回運転時からのＴＩＮＴ計測用リングギア歯位置のずれ値ＳＥＩＳＵを計算する。
【００９８】
ここで、ＳＥＩＳＵの値は、１、２、３、…といった整数値である。
【００９９】
ステップ９４ではＳＥＩＳＵが０でないことを確認して、ステップ９５に進み、平均値ＲＧＩＳＳＡとバックアップ値ＲＧＩＳＢＵの差を０と比較する。平均値ＲＧＩＳＳＡがバックアップ値ＲＧＩＳＢＵより小さいときはステップ９６で
ＣＲＩＮＧ２′＝ＣＲＩＮＧ２＋ＳＥＩＳＵ                  …（９）
の式により、またＲＧＩＳＳＡがＲＧＩＳＢＵより大きいときはステップ９７で
ＣＲＩＮＧ２′＝ＣＲＩＮＧ２−ＳＥＩＳＵ                …（１０）
の式によりそれぞれ第２の所定数ＣＲＩＮＧ２の補正値ＣＲＩＮＧ２′を計算する。
【０１００】
ステップ９８では１回フラグ（初期値は“０”）を“１”にセットする。このフラグは、前回運転時とＴＩＮＴ計測区間のリングギア歯位置が同じでないと判断した場合に、前回運転時とＴＩＮＴ計測区間を同じにするためＴＩＮＴ計測区間の移動を行うが、その移動を１回だけとするために必要となるフラグである。
【０１０１】
次に、図４においては歯数カウンタ１がＣＲＩＮＧ１と一致したタイミング以降で進むステップ２１で１回フラグをみる。１回フラグが“１”のときはステップ２２でＣＲＩＮＧ２にＣＲＩＮＧ２′を入れる。１回フラグが“１”にセットされているときだけ、歯数カウンタ２のカウント数をＣＲＩＮＧ２よりＣＲＩＮＧ２′に変更するわけである。
【０１０２】
また、図４において歯数カウンタ３がＣＲＩＮＧ３と一致したのが初めてのタイミングで進むステップ２３では、１回フラグを“０”にリセットする。
【０１０３】
ここで、本発明の作用を図１８を参照しながら説明する。ただし、簡単のため、ＣＮＴＲＧＣ＝１（つまり平均値ＲＧＩＳＳＡ＝ＲＧＰＨＳ）とする。
【０１０４】
図１８（ｂ）は前回運転時にノイズの入力がなかったとしたときのもので、図示のようにリングギアＰｏｓ信号に番号を割り振り、第３の所定数ＣＲＩＮＧ３を４、第２の所定数ＣＲＩＮＧ２を４０としたとき、２番目から５番目までの区間がＣＲＩＮＧ３に、６番目より４５番目までの区間がＣＲＩＮＧ２に、…対応する。このとき、各気筒のＲｅｆ信号の入力からＴＩＮＴ計測区間までのリングギアＰｏｓ信号の数ＲＧＰＨＳは４であるため、４がバックアップ値ＲＧＩＳＢＵとして記憶される。
【０１０５】
一方、今回運転時に図１８（ｃ）のようにリングギアＰｏｓ信号の２番目の後に１個のノイズが入力したとすると、このノイズもリングギアＰｏｓ信号として誤ってカウントされるため、ノイズ入力後にはＴＩＮＴ計測区間が図１８（ａ）の場合よりリングギア歯数で１だけ前のほうにずれる。このときは、２番気筒のＲｅｆ信号の入力以降でＲＧＰＨＳが３となることより、平均値ＲＧＩＳＳＡ（＝ＲＧＰＨＳ）が３となり、このＲＧＩＳＳＡとＲＧＩＳＢＵとの差１（＝４−３）がＲＧＩＳＯＫ（たとえば０．２程度）より大きくなるので、先願装置では、ＴＩＮＴ計測用のリングギア歯位置が前回運転時と同一でないと判断し、学習値をクリアして、再学習を行うので、学習値が収束するまでに時間がかかる。
【０１０６】
これに対して本発明では、２番気筒のＲｅｆ信号の入力後にＳＥＩＳＵ≠０かつＲＧＩＳＳＡ＜ＲＧＩＳＢＵであることより図１６のステップ９６、９８に進んでＣＲＩＮＧ２′＝４０＋１となり、１回フラグが“１”にセットされる。こ１回フラグの“１”へのセットにより、その直後の歯数カウンタ２はＣＲＩＮＧ２より１多い数までをカウントするため、リングギアＰｏｓ信号の９４番目より１３４番目（図１８（ｃ）の場合より１多い）までの区間がＴＩＮＴ計測区間となる。
【０１０７】
この結果、４番気筒のＲｅｆ信号の入力以降はＲＧＰＨＳ（＝ＲＧＩＳＳＡ）がふたたび４となり、図示のようにＴＩＮＴ計測用リングギア歯位置が前回運転時と同じになる。このとき、ＲＧＩＳＳＡ＝ＲＧＩＳＢＵが成立するので、フローチャートのほうではＴＩＮＴ計測用リングギア歯位置が前回運転時と同じになったと判断され、図１５のステップ９０よりステップ９１に進んで、学習値の使用許可フラグが“１”にセットされる。この学習値の使用許可フラグの“１”へのセットにより前回運転時の学習値をそのまま用いて補正ＴＩＮＴが求められる。
【０１０８】
このようにして本発明では、ＴＩＮＴ計測用リングギア歯位置が前回運転時と同じでなかった場合に、ＴＩＮＴ計測用リングギア歯位置を前回運転時と同じクランク角度位置へとずらすようにしたので、前回運転時の学習値を捨てて再学習を行うことは必要でなく、ノイズ入力をリングギアＰｏｓ信号として誤ってカウントするときでも、ＴＩＮＴ計測用リングギア歯位置を前回運転時と同じクランク角度位置へとずらした後に前回運転時の学習値をそのまま用いて補正ＴＩＮＴを求めることができる。
【０１０９】
図１８ではノイズ入力に伴い平均値ＲＧＩＳＳＡがバックアップ値ＲＧＩＳＢＵよりも小さくなる場合を説明したが、平均値ＲＧＩＳＳＡがバックアップ値ＲＧＩＳＢＵより大きくなる場合も同様である。たとえば、前回運転時に磁気ピックアップ５がリングギアの歯を飛ばすことなく、リングギアＰｏｓ信号を出力していたのが、今回運転時になんらかの理由で磁気ピックアップ５が歯を飛ばした（つまりリングギアＰｏｓ信号が幾つか出なかった）ときには、ＲＧＩＳＳＡがＲＧＩＳＢＵよりも大きくなり、ＴＩＮＴ計測用リングギアの歯位置が後ろにずれるので、このときは、そのずれ分だけＣＲＩＮＧ２′をＣＲＩＮＧ２より小さい値とすることによって、ＴＩＮＴ計測用リングギア歯位置を前回運転時と同じクランク角度位置へとずらすことができる。
【図面の簡単な説明】
【図１】実施の一形態の制御システム図である。
【図２】ａ，ｂ，ｃの各計測区間を説明するための図である。
【図３】３つの所定数ＣＲＩＮＧ１、ＣＲＩＮＧ２、ＣＲＩＮＧ３を説明するための波形図である。
【図４】ＴＩＮＴ計測を説明するためのフローチャートである。
【図５】計測誤差の説明図である。
【図６】計測誤差の説明図である。
【図７】ＴＩＮＴ補正を説明するための波形図である。
【図８】ＴＩＮＴ補正係数学習値の演算を説明するためのフローチャートである。
【図９】失火パラメータの演算を説明するためのフローチャートである。
【図１０】失火パラメータＭＩＳＢの計算を説明するための波形図である。
【図１１】失火パラメータＭＩＳＡの計算を説明するための波形図である。
【図１２】失火判定を説明するためのフローチャートである。
【図１３】失火判定条件１が適用される領域図である。
【図１４】失火判定条件２が適用される領域図である。
【図１５】ＴＩＮＴ計測用リングギア歯位置の確認制御を説明するためのフローチャートである。
【図１６】ＴＩＮＴ計測用リングギア歯位置の確認制御を説明するためのフローチャートである。
【図１７】タイミングチェーンのレイアウト図である。
【図１８】第１実施形態の作用を説明するための波形図である。
【図１９】従来例の作用を説明するための波形図である。
【図２０】第１の発明のクレーム対応図である。
【図２１】第３の発明のクレーム対応図である。
【符号の説明】
１  エンジン本体
２  クランクシャフト
４  リングギア
５  磁気ピックアップ（クランク角度センサ）
６  クランク角度センサ（基準位置センサ）
７  コントロールユニット
【図１】
0003627386.tif 000007
【図２】
0003627386.tif 000008
【図３】
0003627386.tif 000009
【図４】
0003627386.tif 000010
【図５】
0003627386.tif 000011
【図６】
0003627386.tif 000012
【図７】
0003627386.tif 000013
【図８】
0003627386.tif 000014
【図９】
0003627386.tif 000015
【図１０】
0003627386.tif 000016
【図１１】
0003627386.tif 000017
【図１２】
0003627386.tif 000018
【図１３】
0003627386.tif 000019
【図１４】
0003627386.tif 000020
【図１５】
0003627386.tif 000021
【図１６】
0003627386.tif 000022
【図１７】
0003627386.tif 000023
【図１８】
0003627386.tif 000024
【図１９】
0003627386.tif 000025
【図２０】
0003627386.tif 000026
【図２１】
0003627386.tif 000027