JPH10213058A - エンジンの失火診断装置 - Google Patents

エンジンの失火診断装置

Info

Publication number
JPH10213058A
JPH10213058A JP1700797A JP1700797A JPH10213058A JP H10213058 A JPH10213058 A JP H10213058A JP 1700797 A JP1700797 A JP 1700797A JP 1700797 A JP1700797 A JP 1700797A JP H10213058 A JPH10213058 A JP H10213058A
Authority
JP
Japan
Prior art keywords
misfire
cylinder
engine
value
output voltage
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP1700797A
Other languages
English (en)
Other versions
JP3859789B2 (ja
Inventor
Hideaki Fukui
秀昭 福井
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Subaru Corp
Original Assignee
Fuji Heavy Industries Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fuji Heavy Industries Ltd filed Critical Fuji Heavy Industries Ltd
Priority to JP01700797A priority Critical patent/JP3859789B2/ja
Publication of JPH10213058A publication Critical patent/JPH10213058A/ja
Application granted granted Critical
Publication of JP3859789B2 publication Critical patent/JP3859789B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Testing Of Engines (AREA)
  • Ignition Installations For Internal Combustion Engines (AREA)
  • Combined Controls Of Internal Combustion Engines (AREA)

Abstract

(57)【要約】 (修正有) 【課題】エンジン失火診断装置に関し、高回転域におい
ても、失火判定レベルを厳密に設定でき、誤診断を確実
に防止し、失火気筒をも特定可能とする。 【解決手段】気筒間の所定クランク角毎に回転速度を算
出し、現在の燃焼行程気筒#nを判別し、今回回転速度
MNXnから前回の同区間の回転速度MNXn-1を減算
し同気筒に対する失火パラメータとしての差回転DEL
NE#nを算出する。点火回数CIGNが設定回数IGNに
達する毎に(S31)、気筒毎の差回転平均値DNAVE#
iを算出し、これらの中の最大値DNAVEMAXを判
別して最大値とDNAVE#iとの差SDNAVE#iを夫
々算出する。気筒毎のSDNAVE#iを失火判定レベル
LVLMISと比較し、同レベルよりもSDNAVE#i
の大きい気筒を失火気筒と判別する(S33)。この時、
O2センサの出力電圧に基づき失火を判別し、判別した
時、同気筒の毎回失火と確定し、同気筒の毎回失火と診
断する(S36)。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、所定クランク角毎
のエンジン回転状態量の変化と空燃比センサの出力値と
に基づいて失火を診断するエンジンの失火診断装置に関
する。
【0002】
【従来の技術】従来から、エンジンの失火診断装置とし
ては、所定クランク角毎のエンジン回転状態量の変化に
基づいてエンジンの失火を診断するエンジンの失火診断
装置が採用されている。
【0003】すなわち、燃焼行程中の気筒の筒内圧(燃
焼圧)と、その燃焼行程と次の燃焼行程間のエンジン回
転には強い相関があり、従って、所定クランク角毎のエ
ンジン回転状態量の変化によって各気筒毎の失火を判断
することができる。
【0004】しかし、エンジン回転状態量を得る際の基
となるクランク角を検出するためのクランクロータやク
ランク角センサには、製造許容誤差、取付許容誤差等が
存在するため、検出されるエンジン回転状態量にばらつ
きが生じ、特にエンジン高回転域では、この影響が大き
くなり、正確に失火を検出することが困難となる。
【0005】これに対処するに、本出願人は、特開平6
−42397号公報による技術を提案した。
【0006】この先行例においては、エンジン回転状態
量としてエンジン回転速度(エンジン回転数)を用い、
気筒間における所定クランク角毎のエンジン回転速度の
差、即ち差回転DELNEを算出し、現在の燃焼行程気
筒#nの差回転DELNEnから加重平均による統計処
理によって1サイクル(720°CA)前に算出した当
該気筒#nに対する差回転補正値AVEDNXを減算し
て、当該気筒に対する補正差回転DELNAnを算出す
ることで、クランク角を検出するためのクランクロータ
やクランク角センサの製造許容誤差、取付許容誤差等の
影響を排除する。さらに、この補正差回転DELNAn
から1燃焼行程前の失火診断対象気筒#n-1の補正差回
転DELNAn-1を減算して当該気筒#nに対する補正
差回転変化DDNEAnを算出し、この補正差回転変化
DDNEAnをエンジン運転状態に基づいて設定した失
火判定レベルLVLMISと比較すると共に、前回ルー
チン実行時に算出した1燃焼行程前の失火診断対象気筒
#n-1に対する補正差回転変化DDNEAn-1をマイナ
スの失火判定レベル−LVLMISと比較する。そし
て、現在の燃焼行程気筒#nの補正差回転変化DDNE
Anが失火判定レベルLVLMIS以上で、且つ失火診
断対象気筒#n-1の補正差回転変化DDNEAn-1がマ
イナス失火判定レベル以下のとき、失火診断対象気筒#
n-1の失火と判断する。
【0007】しかしながら、クランクロータやクランク
角センサの製造許容誤差、取付許容誤差等に起因するエ
ンジン回転状態量(エンジン回転速度)のばらつきの他
に、各気筒毎に燃焼圧のばらつきに起因するエンジン回
転状態量のばらつきがある。
【0008】すなわち、吸入管形状の複雑化や気筒間の
吸気干渉等による各気筒毎の吸気分配率の相違、冷却水
による冷却順路によって生じる各気筒毎の燃焼温度の相
違、各気筒の燃焼室容積やピストン形状の製造上のばら
つき、インジェクタの製造誤差等による燃料噴射量の違
いから生じる各気筒の空燃比の僅かなばらつき、これら
の原因によって、各気筒毎に燃焼圧のばらつきが生じ、
各気筒毎にエンジン回転のばらつきが生じる。そして、
エンジン高回転域では慣性エネルギが大きいため失火時
のエンジン回転変化量が小さく、失火判定が困難とな
る。
【0009】従って、判定値としての失火判定レベルを
厳密に設定すると、上記要因によって実際には失火して
いないにも係わらず、失火と誤判定することがあった。
また、これに対処するに、判定値としての上記失火判定
レベルを緩く設定すると、失火時において失火を検出す
ることができなくなってしまう。
【0010】このため、特開平4−318256号公報
においては、エンジン低回転域のときには、エンジン回
転速度に基づいて失火診断を行う一方、エンジンに失火
が発生した場合に排気ガス中の酸素濃度が増大すること
に着目し、少なくともエンジン高回転域においては、排
気ガス中の酸素濃度に基づいて失火診断を行う技術が開
示されている。
【0011】
【発明が解決しようとする課題】しかしながら、上記先
行例では、少なくともエンジン高回転域においては、排
気ガス中の酸素濃度に基づいてのみ失火診断を行うの
で、失火が発生したことを検出することはできるもの
の、失火の生じている失火気筒を判別することができな
い不都合がある。
【0012】すなわち、失火の判別自体は、酸素センサ
(O2センサ)が活性していて、ある程度のエンジン負
荷がかかっていればエンジン回転数にあまり影響を受け
ずに失火を検出することが可能だが、ある気筒に失火が
発生してから酸素濃度が変化するまでの時間は、酸素セ
ンサの取付位置、エンジン回転速度(排気ガスの流速)
等により変化する。従って、失火発生から酸素センサ出
力変化が起きるまでの時間が不均一であり、失火気筒を
判別することができない。
【0013】本発明は、上記事情に鑑み、エンジン回転
全域において、厳密な失火判定を行うと共に、失火気筒
を確実に判別することが可能なエンジンの失火診断装置
を提供することを目的とする。
【0014】
【課題を解決するための手段】上記目的を達成するた
め、請求項1記載の発明によるエンジンの失火診断装置
は、図1(a)の基本構成図に示すように、所定クラン
ク角毎のエンジン回転状態量の変化を検出する回転状態
量変化検出手段と、気筒を判別する気筒判別手段と、各
気筒毎の上記エンジン回転状態量の変化をそれぞれ失火
判定レベルと比較し、各気筒毎に失火を判別する第1の
失火判別手段と、空燃比センサの出力値に基づき失火を
判別する第2の失火判別手段と、上記エンジン回転状態
量の変化により所定気筒の失火を判別し、且つ、空燃比
センサの出力値に基づき失火を判別したとき、当該気筒
の失火と診断する失火診断手段とを備えたことを特徴と
する。
【0015】請求項2記載の発明によるエンジンの失火
診断装置は、図1(b)の基本構成図に示すように、気
筒間における所定クランク角毎のエンジン回転状態量を
検出するエンジン回転状態量検出手段と、現在の燃焼行
程気筒を判別する気筒判別手段と、前回検出したエンジ
ン回転状態量から今回検出したエンジン回転状態量を減
算して上記燃焼行程気筒に対する回転状態量の差を算出
する差回転状態量算出手段と、所定期間における各気筒
毎の上記差回転状態量を平均処理し各気筒毎の差回転状
態量平均値を算出する差回転状態量平均値算出手段と、
上記各差回転状態量平均値のうちの最大値と各気筒毎の
差回転状態量平均値との差をそれぞれ算出して、この最
大値に対する各気筒毎の平均値差を失火判定レベルと比
較し、該失火判定レベルよりも平均値差が大きい気筒を
失火気筒と判別する第1の失火判別手段と、空燃比セン
サの出力値に基づき失火を判別する第2の失火判別手段
と、空燃比センサの出力値に基づき失火を判別したと
き、上記失火気筒の毎回失火と確定し、当該気筒の毎回
失火と診断する失火診断手段とを備えたことを特徴とす
る。
【0016】請求項3記載の発明によるエンジンの失火
診断装置は、請求項1或いは請求項2記載の発明におい
て、上記各失火判別手段は、エンジン運転状態が燃料増
量領域にあるとき、失火判別を行うことを特徴とする。
【0017】請求項4記載の発明によるエンジンの失火
診断装置は、請求項1或いは請求項2記載の発明におい
て、所定周期毎に上記空燃比センサの出力電圧及び該出
力電圧の変化量の絶対値を各々積算する積算手段を備
え、上記第2の失火判別手段は、エンジン運転状態が燃
料増量領域にあるとき、所定期間における空燃比センサ
出力電圧平均値を算出し、該空燃比センサ出力電圧平均
値が第1の判定値に達していないとき、或いは、所定期
間における上記空燃比センサ出力電圧変化量の絶対値積
算値が第2の判定値よりも大きいとき、失火と判別する
ことを特徴とする。
【0018】請求項5記載の発明によるエンジンの失火
診断装置は、請求項2或いは請求項4記載の発明におい
て、上記各平均値は、所定期間における単純平均によっ
て算出することを特徴とする。
【0019】請求項6記載の発明によるエンジンの失火
診断装置は、請求項2ないし請求項5記載の発明におい
て、上記所定期間は、点火回数が所定回数に達する毎の
期間であることを特徴とする。
【0020】請求項7記載の発明によるエンジンの失火
診断装置は、請求項1ないし請求項6記載の発明におい
て、上記エンジン回転状態量は、エンジン回転速度であ
ることを特徴とする。
【0021】すなわち、請求項1記載の発明では、所定
クランク角毎のエンジン回転状態量の変化を検出すると
共に、気筒を判別する。そして、各気筒毎のエンジン回
転状態量の変化をそれぞれ失火判定レベルと比較して、
各気筒毎に失火を判別する。また、空燃比センサの出力
値に基づき失火を判別する。そして、上記エンジン回転
状態量の変化により所定気筒の失火を判別し、且つ、空
燃比センサの出力値に基づいて失火を判別したとき、当
該気筒の失火と診断する。
【0022】ここで、各気筒毎のエンジン回転状態量の
変化をそれぞれ失火判定レベルと比較して各気筒毎に失
火を判別し、所定気筒の失火を判別したとき、更に、空
燃比センサの出力値に基づいて失火が生じているかを判
断し、これら各判別結果の整合性により該当気筒の失火
と確定診断するので、エンジン高回転域においても失火
気筒を特定することが可能となる。また、エンジン高回
転域において失火判定レベルを厳密に設定することによ
り、例え、各気筒毎の燃焼圧のばらつき等に起因するエ
ンジン回転のばらつきによって失火していないにも係わ
らず所定気筒の失火と判断されても、これが空燃比セン
サの出力値に基づく失火診断によって検証されるため、
確実に誤診断を防止することが可能となる。また、真に
失火を生じているときには、空燃比センサの出力値によ
る失火診断によっても失火と診断されるため、失火判定
レベルの厳密設定との相乗により失火診断精度を向上す
ることが可能となる。
【0023】請求項2記載の発明では、気筒間における
所定クランク角毎のエンジン回転状態量を検出すると共
に、現在の燃焼行程気筒を判別し、前回検出したエンジ
ン回転状態量から今回検出したエンジン回転状態量を減
算して上記燃焼行程気筒に対する回転状態量の差を算出
する。そして、所定期間における各気筒毎の上記差回転
状態量を平均処理して各気筒毎の差回転状態量平均値を
算出し、これら各差回転状態量平均値のうちの最大値と
各気筒毎の差回転状態量平均値との差をそれぞれ算出す
る。そして、この最大値に対する各気筒毎の平均値差を
失火判定レベルと比較し、該失火判定レベルよりも平均
値差が大きい気筒を失火気筒と判別する。更に、空燃比
センサの出力値に基づいて失火を判別し、失火を判別し
たとき、上記失火気筒の毎回失火と確定して当該気筒の
毎回失火と診断する。
【0024】この際、請求項3記載の発明では、エンジ
ン運転状態が触媒保護のための燃料増量領域にあると
き、エンジン回転状態量と空燃比センサ出力値とによる
失火判別を行う。
【0025】また、請求項4記載の発明では、所定周期
毎に上記空燃比センサの出力電圧及び該出力電圧の変化
量の絶対値を各々積算する。そして、空燃比センサの出
力値による失火診断に際し、エンジン運転状態が触媒保
護のための燃料増量領域にあるとき、所定期間における
上記空燃比センサ出力電圧の積算値に基づいて空燃比セ
ンサ出力電圧平均値を算出し、該空燃比センサ出力電圧
平均値が第1の判定値に達していないとき、或いは、所
定期間における上記空燃比センサ出力電圧変化量の絶対
値積算値が第2の判定値よりも大きいとき、失火と判別
する。
【0026】また、請求項5記載の発明では、上記各平
均値を所定期間における単純平均によって算出する。
【0027】さらに、請求項6記載の発明では、上記所
定期間を、点火回数が所定回数に達する毎の期間とし、
請求項7記載では、上記回転状態量としてエンジン回転
速度を採用する。
【0028】
【発明の実施の形態】以下、図2〜図19を参照して本
発明の実施の一形態を説明する。
【0029】先ず、図16に基づいてエンジンの全体構
成について説明する。同図において、符号1はエンジン
であり、本形態においては水平対向型4気筒ガソリンエ
ンジンである。このエンジン1のシリンダブロック1a
の左右両バンクには、シリンダヘッド2がそれぞれ設け
られ、各シリンダヘッド2に吸気ポート2aと排気ポー
ト2bが形成されている。
【0030】このエンジン1の吸気系は、各吸気ポート
2aにインテークマニホルド3が連通され、このインテ
ークマニホルド3に各気筒の吸気通路が集合するエアチ
ャンバ4を介してスロットルチャンバ5が連通されてい
る。そして、このスロットルチャンバ5の上流側に吸気
管6を介してエアクリーナ7が取り付けられ、このエア
クリーナ7がエアインテークチャンバ8に連通されてい
る。
【0031】また、上記スロットルチャンバ5には、ア
クセルペダルに連動するスロットル弁5aが設けられて
いる。上記吸気管6には、スロットル弁5aをバイパス
するバイパス通路9が接続され、このバイパス通路9
に、アイドル時にその弁開度によって該バイパス通路9
を流れるバイパス空気量を調整することでアイドル回転
数を制御するアイドル回転数制御弁(ISC弁)10が
介装されている。
【0032】更に、上記インテークマニホルド3の各気
筒の吸気ポート2aの直上流側にインジェクタ11が配
設されている。上記インジェクタ11は燃料供給路12
を介して燃料タンク13に連通されており、この燃料タ
ンク13にはインタンク式の燃料ポンプ14が設けられ
ている。この燃料ポンプ14からの燃料が、上記燃料供
給路12に介装された燃料フィルタ15を経て上記イン
ジェクタ11及びプレッシャレギュレータ16に圧送さ
れ、このプレッシャレギュレータ16から上記燃料タン
ク13にリターンされて、上記インジェクタ11への燃
料圧力が所定の圧力に調圧される。
【0033】一方、上記シリンダヘッド2の各気筒毎
に、先端の放電電極を燃焼室に露呈する点火プラグ17
が取り付けられ、この点火プラグ17に、各気筒毎に配
設された点火コイル18を介してイグナイタ19が接続
されている。
【0034】また、エンジン1の排気系としては、上記
シリンダヘッド2の各排気ポート2bに連通するエキゾ
ーストマニホルド20の集合部に排気管21が連通さ
れ、この排気管21に触媒コンバータ22が介装されて
マフラ23に連通されている。
【0035】次に、エンジン運転状態を検出するための
センサ類について説明する。上記吸気管6のエアクリー
ナ7の直下流に、ホットワイヤ或いはホットフィルム等
を用いた熱式の吸入空気量センサ24が介装され、更
に、上記スロットルチャンバ5に設けられたスロットル
弁5aに、スロットル開度センサ25aとスロットル弁
5aの全閉でONするアイドルスイッチ25bとを内蔵
したスロットルセンサ25が連設されている。
【0036】また、エンジン1のシリンダブロック1a
にノックセンサ26が取り付けられていると共に、シリ
ンダブロック1aの左右バンクを連通する冷却水通路2
7に冷却水温センサ28が臨まされ、更に、上記触媒コ
ンバータ22の上流に空燃比センサの一例としてO2セ
ンサ29が配設されている。
【0037】また、エンジン1のクランクシャフト30
に軸着するクランクロータ31の外周に、クランク角セ
ンサ32が対設され、更に、クランクシャフト30に対
して1/2回転するカムシャフト33に連設するカムロ
ータ34に、気筒判別用のカム角センサ35が対設され
ている。
【0038】上記クランクロータ31は、図17に示す
ように、その外周に突起31a,31b,31cが形成
され、これらの各突起31a,31b,31cが、各気
筒(#1,#2気筒と#3,#4気筒)の圧縮上死点前
(BTDC)θ1,θ2,θ3の位置に形成されている。
本実施の形態においては、θ1=97°CA,θ2=65
°CA,θ3=10°CAである。
【0039】また、図18に示すように、上記カムロー
タ34の外周には、気筒判別用の突起34a,34b,
34cが形成され、突起34aが#3,#4気筒の圧縮
上死点後(ATDC)θ4の位置に形成され、突起34
bが3個の突起で構成されて最初の突起が#1気筒のA
TDCθ5の位置に形成されている。更に、突起34c
が2個の突起で構成され、最初の突起が#2気筒のAT
DCθ6の位置に形成されている。本実施の形態におい
ては、θ4=20°CA,θ5=5°CA,θ6=20°
CAである。
【0040】そして、図8のタイムチャートに示すよう
に、エンジン運転に伴いクランクシャフト30及びカム
シャフト33の回転により上記クランクロータ31及び
カムロータ34が回転して、クランクロータ31の各突
起が上記クランク角センサ32によって検出され、クラ
ンク角センサ32からθ1,θ2,θ3(BTDC97
°,65°,10°)の各クランクパルスがエンジン1
/2回転(180°CA)毎に出力される。一方、θ3
クランクパルスとθ1クランクパルスとの間で上記カム
ロータ34の各突起が上記カム角センサ35によって検
出され、カム角センサ35から所定数のカムパルスが出
力される。
【0041】そして、後述する電子制御装置40(図1
9参照)において、上記クランク角センサ32から出力
されるクランクパルスの入力間隔時間Tθに基づいてエ
ンジン回転速度(エンジン回転数)NEを算出し、ま
た、各気筒の燃焼行程順(例えば、#1気筒→#3気筒
→#2気筒→#4気筒)と、上記カム角センサ35から
のカムパルスをカウンタによって計数した値とのパター
ンに基づいて、現在の燃焼行程気筒、燃料噴射対象気筒
や点火対象気筒等の気筒判別を行う。
【0042】上記インジェクタ11、点火プラグ17,
ISC弁10等のアクチュエータ類に対する制御量の演
算、制御信号の出力、すなわち燃料噴射制御、点火時期
制御、アイドル回転数制御等のエンジン制御は、図19
に示す電子制御装置(ECU)40によって行われる。
【0043】上記ECU40は、CPU41、ROM4
2、RAM43、バックアップRAM44、カウンタ・
タイマ群45、及びI/Oインターフェイス46がバス
ラインを介して互いに接続されるマイクロコンピュータ
を中心として構成され、各部に安定化電源を供給する定
電圧回路47、上記I/Oインターフェイス46に接続
される駆動回路48及びA/D変換器49等の周辺回路
が内蔵されている。
【0044】なお、上記カウンタ・タイマ群45は、フ
リーランカウンタ、カム角センサ信号(カムパルス)の
入力計数用カウンタ等の各種カウンタ、燃料噴射用タイ
マ、点火用タイマ、定期割り込みを発生させるための定
期割り込み用タイマ、クランク角センサ信号(クランク
パルス)の入力間隔計時用タイマ、及びシステム異常監
視用のウオッチドッグタイマ等の各種タイマを便宜上総
称するものであり、その他、各種のソフトウエアカウン
タ・タイマが用いられる。
【0045】上記定電圧回路47は、2回路のリレー接
点を有する電源リレー50の第1のリレー接点を介して
バッテリ51に接続され、バッテリ51に、上記電源リ
レー50のリレーコイルがイグニッションスイッチ52
を介して接続されている。また、上記定電圧回路47
は、直接、上記バッテリ51に接続されており、イグニ
ッションスイッチ52がONされて電源リレー50の接
点が閉となるとECU40内の各部へ電源を供給する一
方、上記イグニッションスイッチ52のON,OFFに
拘らず、常時、上記バックアップRAM44にバックア
ップ用の電源を供給する。更に、上記バッテリ51に
は、燃料ポンプリレー53のリレー接点を介して燃料ポ
ンプ14が接続されている。なお、上記電源リレー50
の第2のリレー接点には、上記バッテリ51から各アク
チュエータに電源を供給するための電源線が接続されて
いる。
【0046】上記I/Oインターフェイス46の入力ポ
ートには、アイドルスイッチ25b、ノックセンサ2
6、クランク角センサ32、カム角センサ35、車速を
検出するための車速センサ36、及び始動状態を検出す
るためにスタータスイッチ37が接続されており、更
に、上記A/D変換器49を介して、吸入空気量センサ
24、スロットル開度センサ25a、冷却水温センサ2
8、及びO2センサ29が接続されると共に、バッテリ
電圧VBが入力されてモニタされる。
【0047】一方、上記I/Oインターフェイス46の
出力ポートには、上記燃料ポンプリレー53のリレーコ
イル、ISC弁10、インジェクタ11、及び、図示し
ないインストルメントパネルに配設され各種警報を集中
表示する警報ランプ38が上記駆動回路48を介して接
続されると共に、イグナイタ19が接続されている。
【0048】また、上記I/Oインターフェイス46に
は、外部接続用コネクタ55が接続されており、この外
部接続用コネクタ55にシリアルモニタ(携帯型故障診
断装置)60を接続することで、シリアルモニタ60に
よってECU40における入出力データ及びECU40
の自己診断機能により上記バックアップRAM44にス
トアされた失火気筒を示す後述する気筒別失火判定NG
フラグFNG#iを含む故障部位、故障内容を示すトラブル
データを読み出して診断可能としている。更に、上記シ
リアルモニタ60によって、上記トラブルデータのイニ
シャルセット(クリア)が行えるようになっている。
【0049】なお、このシリアルモニタ60によるトラ
ブルデータの診断、及びイニシャルセットについては、
本出願人による特公平7−76730号公報に詳述され
ている。
【0050】上記CPU41では、ROM42に記憶さ
れている制御プログラムに従って、I/0インターフェ
イス46を介して入力されるセンサ・スイッチ類からの
検出信号、及びバッテリ電圧等を処理し、RAM43に
格納される各種データ、及びバックアップRAM44に
格納されている各種学習値データ,ROM42に記憶さ
れている固定データ等に基づき、燃料噴射量、点火時
期、ISC弁10に対する駆動信号のデューティ比等を
演算し、燃料噴射制御、点火時期制御、アイドル回転数
制御等のエンジン制御を行う。
【0051】このようなエンジン制御系において、EC
U40では、エンジン回転状態量の変化とO2センサ2
9の出力値(出力電圧)とに基づいて失火診断を行う。
【0052】すなわち、所定クランク角毎のエンジン回
転状態量の変化を検出すると共に、気筒を判別する。そ
して、各気筒毎のエンジン回転状態量の変化をそれぞれ
失火判定レベルと比較して、各気筒毎に失火を判別す
る。また、空燃比センサの出力値としてO2センサ29
の出力電圧O2Sに基づき失火を判別する。そして、上
記エンジン回転状態量の変化により所定気筒の失火を判
別し、且つ、O2センサ出力電圧O2Sに基づいて失火
を判別したとき、当該気筒の失火と診断する。
【0053】すなわち、各気筒毎のエンジン回転状態量
の変化をそれぞれ失火判定レベルと比較して各気筒毎に
失火を判別し、所定気筒の失火を判別したとき、更に、
排気ガス中の酸素濃度を示すO2センサ出力電圧O2S
に基づいて失火が生じているかを判断する。そして、こ
れら各判別結果の整合性により該当気筒の失火と確定診
断するので、エンジン高回転域において失火判定レベル
を厳密(小さく)に設定することにより、例え、各気筒
のエンジン回転のばらつきによって失火していないにも
係わらず所定気筒の失火と判断されたとしても、これが
O2センサ出力電圧O2Sに基づく失火診断によって検
証されるため、確実に誤診断を防止することが可能とな
る。
【0054】また、真に失火を生じているときには、O
2センサ出力電圧O2Sによる失火診断によっても失火
と診断されるため、失火判定レベルの厳密設定との相乗
により失火診断精度を向上することが可能となり、且
つ、エンジン高回転域においても、失火気筒を判別する
ことが可能となる。
【0055】より詳細には、本実施の形態においては、
クランク角センサ32、カム角センサ35からそれぞれ
出力されるクランクパルス、カムパルスに基づいて現在
の燃焼行程気筒#nを判別する。そして、所定クランク
角毎のエンジン回転状態量として、各気筒間におけるB
TDCθ2,θ3間、すなわちθ2,θ3クランクパルス入
力間のエンジン回転速度(エンジン回転数)を採用し、
今回算出したエンジン回転速度MNXnから前回の同区
間におけるエンジン回転速度MNXn-1を減算して上記
燃焼行程気筒#nの失火パラメータとなる回転速度の
差、すなわち当該気筒#nに対する差回転DELNE#n
を算出する。そして、点火回数が設定回数に達するまで
の所定期間における各気筒毎の差回転DELNE#i(i
=1〜4)を平均処理して各気筒毎の差回転平均値DN
AVE#iを算出する。次に、これら各差回転平均値DN
AVE#iのうちの最大値DNAVEMAXを判別して該
最大値DNAVEMAXと各気筒毎の差回転平均値DN
AVE#iとの差SDNAVE#iをそれぞれ算出する。そ
して、この最大値に対する各気筒毎の平均値差SDNA
VE#iを失火判定レベルLVLMISと比較し、該失火
判定レベルLVLMISよりも平均値差SDNAVE#i
の大きい気筒を失火気筒と判別する。
【0056】また、このとき、更に、空燃比センサの出
力値としてO2センサ29の出力電圧O2Sに基づいて
失火を判別し、失火を判別したとき、上記失火気筒の毎
回失火と確定して、当該気筒の毎回失火と診断する。
【0057】このO2センサ出力電圧O2Sによる失火診
断に際しては、所定周期としてO2センサ出力電圧O2
SのA/D変換入力毎に該O2センサ出力電圧O2S及
び該出力電圧O2Sの変化量の絶対値を各々積算する。
そして、点火回数が設定回数に達する所定期間における
O2センサ出力電圧O2Sの積算値に基づいてO2センサ
出力電圧平均値O2AVEを算出し、該O2センサ出力
電圧平均値O2AVEが第1の判定値に達していないと
き、或いは、所定期間における上記O2センサ出力電圧
変化量の絶対値積算値DO2Sが第2の判定値よりも大
きいとき、失火と判別する。
【0058】尚、この各気筒毎のエンジン回転速度変化
とO2センサ出力電圧O2Sとによる失火診断は、エン
ジン運転状態が触媒保護のための燃料増量領域にあると
きに行う。
【0059】すなわち、エンジン回転速度変化により失
火を判定するための上記失火判定レベルLVLMISを
エンジン高回転域においても厳密に設定し、各気筒毎の
回転速度変化により判別した失火気筒が真に失火を生じ
ているのか否かをO2センサ出力電圧O2Sに基づいて
検証するのであり、このエンジン高回転域は、触媒保護
のための燃料増量領域いわゆるフル増量領域に適合す
る。
【0060】そして、このフル増量領域においては、失
火が生じていない無失火時には、燃料増量により燃焼後
の排気ガス空燃比がリッチとなりO2センサ29の出力
電圧O2Sは、ほぼ一定のリッチ出力となるが、失火時
には、排気ガス中の酸素濃度が増大するため、略リーン
出力となる。従って、この触媒保護のためのフル増量領
域においては、無失火時と失火時とのO2センサ出力電
圧O2Sの差が大きく、これによりO2センサ出力電圧
O2Sに基づいて確実に失火を検証することが可能とな
る。
【0061】すなわち、ECU40は、本発明に係る回
転状態量変化検出手段、気筒判別手段、第1の失火判別
手段、第2の失火判別手段、失火診断手段の機能を有
し、更に、差回転状態量算出手段、差回転状態量平均値
算出手段、積算手段としての機能をも実現する。
【0062】以下、上記ECU40によって実行される
本発明に係る失火診断処理について、図2〜図7に示す
フローチャートに従って説明する。
【0063】先ず、イグニッションスイッチ52がON
され、ECU40に電源が投入されると、システムがイ
ニシャライズされ、バックアップRAM44に格納され
ているトラブルデータ及び各種学習値等のデータを除
く、各フラグ、各カウンタ類が初期化される。そして、
スタータスイッチ37がONされてエンジンが起動する
と、クランク角センサ32からのクランクパルス入力毎
に、図2に示す気筒判別/エンジン回転速度算出ルーチ
ンが実行される。
【0064】この気筒判別/エンジン回転速度算出ルー
チンでは、エンジン運転に伴いクランクロータ31が回
転してクランク角センサ32からのクランクパルスが入
力されると、先ず、ステップS1で、今回入力されたクラ
ンクパルスがθ1,θ2,θ3の何れのクランク角に対応
する信号かをカム角センサ35からのカムパルスの入力
パターンに基づいて識別し、ステップS2で、クランクパ
ルスとカムパルスとの入力パターンから現在の燃焼行程
気筒、点火対象気筒、及び燃料噴射対象気筒等の気筒判
別を行う。
【0065】すなわち、図8のタイムチャートに示すよ
うに、例えば、前回クランクパルスが入力してから今回
クランクパルスが入力されるまでの間にカムパルス入力
が有れば、今回のクランクパルスはθ1クランクパルス
であると識別でき、更に次回入力されるクランクパルス
はθ2クランクパルスと識別できる。
【0066】また、前回と今回とのクランクパルス入力
間にカムパルス入力が無く、前々回と前回のクランクパ
ルス入力間にカムパルス入力が有ったときには、今回の
クランクパルスはθ2クランクパルスと識別でき、次回
入力されるクランクパルスはθ3クランクパルスと識別
できる。また、前回と今回との間、及び前々回と前回と
のクランクパルス入力間に、何れもカムパルス入力が無
いときには、今回入力されたクランクパルスはθ3クラ
ンクパルスと識別でき、次回入力されるクランクパルス
はθ1クランクパルスと識別できる。
【0067】さらに、前回と今回とのクランクパルス入
力間にカムパルスが3個入力(突起34bに対応するθ
5カムパルス)したときには、次の圧縮上死点は#3気
筒であり、現在の燃焼行程気筒は#1気筒、点火対象気
筒は#3気筒、燃料噴射対象気筒は、その2つ後の#4
気筒となることが判別できる。また、前回と今回のクラ
ンクパルス入力間にカムパルスが2個入力(突起34c
に対応するθ6カムパルス)したときには、次の圧縮上
死点は#4気筒であり、現在の燃焼行程気筒は#2気
筒、点火対象気筒は#4気筒、燃料噴射対象気筒は#3
気筒と判別できる。
【0068】また、前回と今回とのクランクパルス入力
間にカムパルスが1個入力(突起34aに対応するθ4
カムパルス)し、前の圧縮上死点判別が#4気筒であっ
たときには、次の圧縮上死点は#1気筒であり、現在の
燃焼行程気筒は#4気筒、点火対象気筒は#1気筒、燃
料噴射気筒は#2気筒と判別できる。同様に、前回と今
回とのクランクパルス入力間にカムパルスが1個入力
し、前の圧縮上死点判別が#3気筒であったときには次
の圧縮上死点は#2気筒であり、現在の燃焼行程気筒は
#3気筒、点火対象気筒は#2気筒、燃料噴射対象気筒
は#1気筒と判別できる。
【0069】本形態の4サイクル4気筒エンジン1で
は、燃焼行程は#1→#3→#2→#4の気筒順であ
り、図8のタイムチャートに示すように、カムパルス出
力時の今回(現在)の燃焼行程気筒#nを#1気筒とす
ると、点火対象気筒は圧縮上死点を迎える#n+1=#3
気筒、このときの燃料噴射対象気筒はその2つ後の#n
+3=#4気筒となる。そして、今回の燃焼行程気筒#n
の気筒判別結果が、θ3クランクパルス入力毎に実行さ
れる図3の差回転算出ルーチンにおいて参照され、該当
燃料行程気筒#nに対する差回転DELNE#nが算出さ
れて積算される。
【0070】また、ここでは詳述しないが、点火対象気
筒#n+1の判別結果に応じて該当気筒#n+1に対する点
火時期が設定されて、気筒毎に点火時期制御が行われ
る。更に、燃料噴射対象気筒#n+3気筒の判別結果が、
所定周期毎に実行される図示しない燃料噴射量設定ルー
チンにおいて参照されて、気筒毎に燃料噴射量が設定さ
れる。
【0071】その後、ステップS2からステップS3へ進
み、前記クランクパルス入力間隔計時用タイマによって
計時された前回のクランクパルス入力から今回のクラン
クパルス入力までの時間、すなわちクランクパルス入力
間隔時間(θ1クランクパルスとθ2クランクパルスの入
力間隔時間Tθ12、θ2クランクパルスとθ3クランクパ
ルスの入力間隔時間Tθ23、或いはθ3クランクパルス
とθ1クランクパルスの入力間隔時間Tθ31)を読み出
し、クランクパルス入力間隔時間Tθを検出する。
【0072】次いで、ステップS4へ進み、今回識別した
クランクパルスに対応するクランクパルス間角度を読み
出し、このクランクパルス間角度と上記クランクパルス
入力間隔時間Tθとに基づいて現在のエンジン回転速度
(エンジン回転数)NEを算出し、RAM43の所定ア
ドレスにストアしてルーチンを抜ける。なお、上記クラ
ンクパルス間角度は既知であり、予めROM42に固定
データとして記憶されているものであり、本実施の形態
においては、θ1クランクパルスとθ2クランクパルス間
の角度は32°CAであり、θ2クランクパルスとθ3ク
ランクパルス間の角度は55°CA、θ3クランクパル
スとθ1クランクパルス間の角度は93°CAである。
また、エンジン始動時を考慮し、エンジン回転数NE
は、例えば、150rpm以上で算出される。
【0073】そして、θ3クランクパルス入力毎に実行
される図3に示す差回転算出ルーチンにおいて、上記燃
焼行程気筒#n、及びエンジン回転速度NEの各データ
が読み出され、該当気筒#nに対する差回転DELNE
#nを算出して、この差回転DELNE#nを積算する。
【0074】ここで、上記差回転算出ルーチンは、θ3
クランクパルス入力に対応して実行され、このとき、上
記気筒判別/エンジン回転数算出ルーチンによりθ2ク
ランクパルスとθ3クランクパルス間の入力間隔時間T
θ23に基づきBTDCθ2,θ3間のエンジン回転速度N
Eが算出されており、上述のBTDCθ2,θ3間のエン
ジン回転速度NEに基づいて該当気筒#nに対する失火
パラメータを表す差回転DELNE#nが算出されること
になる。
【0075】この差回転算出ルーチンにおいては、先
ず、ステップS11で、上記気筒判別/エンジン回転速度
算出ルーチンにおいて気筒判別された今回の燃焼行程気
筒データ#nを読み出して、現在の燃焼行程気筒#nを
特定する。
【0076】ステップS12では、現在のエンジン回転速
度NE、すなわち最新のBTDCθ2,θ3間のエンジン
回転速度NEを読み出して、現在の燃焼行程気筒#nに
対応するエンジン回転速度MNXnとする(MNXn←
NE)。
【0077】次にステップS13へ進み、上記ステップS12
で設定された現在の気筒#nに対応するエンジン回転数
MNXnから、前回ルーチン実行時に設定されワークエ
リアにストアされた1燃焼行程前の気筒#n-1に対応す
るエンジン回転速度MNXn-1を減算し、気筒間におけ
る所定クランク角毎のエンジン回転速度の変化、すなわ
ち現在の燃焼行程気筒#nに対する差回転DELNE#n
を算出する(DELNE#n←MNXn−MNXn-1)。
【0078】そして、ステップS14で、上記差回転DE
LNE#nを積算して、当該気筒#nの差回転積算値ΣD
ELNE#nとする(ΣDELNE#n←ΣDELNE#n+
DELNE#n)。
【0079】次いでステップS15で、失火診断の実行期
間を与える点火回数CIGNをカウントアップする(CIGN
←CIGN+1)。ここで、本ルーチンは、θ3クランクパ
ルス入力毎すなわち180°CA毎に実行され、本実施
の形態におけるエンジン1は4気筒エンジンであり、従
って、本ルーチンの実行回数をカウントすることで、点
火回数をカウントすることと実質的に同一となる。
【0080】そして、ステップS16で、次の燃焼行程気
筒に対する差回転の算出に備え、今回の回転速度MNX
nを前回のエンジン回転速度MNXn-1としてワークエ
リアにストアし(MNXn-1←MNXn)、ルーチンを
抜ける。
【0081】以上の差回転算出ルーチンにより、図9に
示すように、各気筒毎に差回転DELNEが算出され、
各気筒#i(i=1〜4気筒)毎に対応して差回転積算
値ΣDELNE#iが算出される。
【0082】一方、図4はO2センサ出力電圧積算ルー
チンであり、O2センサ29の出力電圧O2SのA/D
変換入力毎に実行され、O2センサ出力電圧O2S及び
該出力電圧O2Sの変化量の絶対値を各々積算する。
【0083】次に、このO2センサ出力電圧積算ルーチ
ンについて説明すると、先ず、ステップS21で、A/D
変換された最新のO2センサ出力電圧O2Snを読み込
み、該O2センサ出力電圧O2Sを、O2センサ出力電圧
積算値ΣO2Sに加算して積算する(ΣO2S←ΣO2
S+O2S)。
【0084】次いでステップS22で、上記O2センサ出力
電圧O2Snから前回のルーチン実行時にワークエリア
にストアされた1回前のA/D変換時のO2センサ出力
電圧O2Sn-1を減算し、この減算値の絶対値を、O2
センサ出力電圧変化量の絶対値積算値DO2Sに加算し
て積算する(DO2S←DO2S+|O2Sn−O2S
n-1|)。
【0085】その後、ステップS23で、O2センサ出力電
圧サンプリング回数CO2Sをカウントアップし(CO2S←
CO2S+1)、続くステップS24で、次回ルーチン実行時
の絶対値積算値DO2Sの算出に備え、上記O2センサ
出力電圧O2Snを、前回(1回前)のA/D変換時の
O2センサ出力電圧O2Sn-1としてワークエリアにス
トアし(O2Sn-1←O2Sn)、ルーチンを抜ける。
【0086】そして、図5に示す失火診断ルーチンにお
いて、点火回数が失火診断の実行期間を定める設定回数
に達し、且つエンジン運転状態が触媒保護のための燃料
増量領域にあるとき、前述の差回転算出ルーチンによっ
て算出された各気筒毎の差回転積算値ΣDELNE#i、
及び上記O2センサ出力電圧積算ルーチンによって積算
されたO2センサ出力電圧積算値ΣO2S、O2センサ出
力電圧変化量の絶対値積算値DO2Sが読み出される。
そして、点火回数が設定回数に達するまでの所定期間に
おける各気筒毎の差回転DELNE#i(i=1〜4)を
平均処理して各気筒毎の差回転平均値DNAVE#iを算
出し、これら各差回転平均値DNAVE#iのうちの最大
値DNAVEMAXを判別して該最大値DNAVEMA
Xと各気筒毎の差回転平均値DNAVE#iとの差SDN
AVE#iをそれぞれ算出する。そして、この最大値に対
する各気筒毎の平均値差SDNAVE#iを失火判定レベ
ルLVLMISと比較し、該失火判定レベルLVLMI
Sよりも平均値差SDNAVE#iの大きい気筒を失火気
筒と判別する。
【0087】そして、失火気筒が判別されたときには、
更に、点火回数が設定回数に達するまでの所定期間にお
ける上記O2センサ出力電圧積算値ΣO2Sに基づいて
O2センサ出力電圧平均値O2AVEを算出し、該O2セ
ンサ出力電圧平均値O2AVEが第1の判定値LVLO2
AVEに達していないとき、或いは、所定期間における上
記O2センサ出力電圧変化量の絶対値積算値DO2Sが
第2の判定値LVLDO2Sよりも大きいとき、失火と判別
し、上記失火気筒の毎回失火と確定して、当該気筒の毎
回失火と診断する。
【0088】次に、図5に示す失火診断ルーチンについ
て説明する。
【0089】この失火診断ルーチンは、所定クランク角
毎(例えば、180°CA毎)或いは所定時間(例え
ば、5msec)毎に実行され、ステップS31で、上記点火
回数カウント値CIGNを、設定回数IGN(例えば、4
00回)と比較する。
【0090】上記設定回数IGNは、失火診断の実行周
期を定めるものであり、後述する各気筒毎の差回転DE
LNE#iに対する平均処理、O2センサ出力電圧積算値
ΣO2Sに基づくO2センサ出力電圧平均値O2AVE
の算出処理によって、及び、上記O2センサセンサ出力
電圧変化量の絶対値積算値DO2Sに対し、スナッチや
外乱等によるエンジン回転変動の影響を排除し、且つ、
加速等による一時的な失火による影響を排除し得る期間
を与えるに適切な点火回数値を、予めシミュレーション
或いは実験等により求め、この点火回数値を設定回数I
GNとして設定し、固定データとしてROM42にメモ
リされているものである。
【0091】すなわち、失火回数に直接依存する点火回
数CIGNを採用し、この点火回数CIGNを上記設定回数I
GNと比較して、失火診断の実行期間を定めることで、
所定気筒の恒常的な失火すなわち毎回失火を確実に診断
することが可能となる。
【0092】そして、CIGN<IGNで、点火回数CIGN
が設定回数IGNに達していないときには、そのままル
ーチンを抜け、一方、CIGN≧IGNで点火回数CIGNが
設定回数IGNに達したとき、ステップS32へ進む。す
なわち、点火回数CIGNが設定回数IGNに達する毎
に、その設定回数IGNに相当する期間のデータに基づ
いて失火診断を行う。
【0093】ステップS32では、エンジン運転状態が触
媒保護のための燃料増量領域いわゆるフル増量域にある
か否かをフル増量係数KFULLによって判断する。
【0094】周知のように、上記フル増量係数KFULL
は、エンジン運転状態が高回転及び高負荷の少なくとも
一方の状態のときに、燃料増量補正により触媒温度の異
常上昇を防止して触媒を保護するためのものであり、燃
料噴射量を定める燃料噴射パルス幅Tiの演算式におけ
る各種増量係数COEFの補正項として与えられる。
【0095】上記燃料噴射パルス幅Tiは、周知のよう
に、上記基本燃料噴射パルス幅Tpに、上記各種増量補
正係数COEF及び空燃比フィードバック補正係数αを
乗算して空燃比補正すると共に、空燃比学習補正係数K
BLRCを乗算して学習補正し、更にインジェクタの無効噴
射時間を補償する電圧補正パルス幅Tsを加算し、次式
によって与えられる。
【0096】Ti←Tp×COEF×α×KBLRC+Ts そして、上記フル増量係数は、各種増量係数COEF中
の補正項として与えられる。尚、上記各種増量係数CO
EFの演算式の一例を次式に示す。
【0097】COEF←KST×(1+KFULL+KTW+K
AS+KAI+KACC) ここで、KSTは始動増量係数であり、始動性確保のため
スタータモータ作動中のクランキング時のみ燃料増量を
行うためのものである。また、KTWはエンジン冷態時の
運転性を確保するための燃料増量率を定める水温増量係
数であり、KASはエンジン始動直後におけるエンジン回
転の安定性を確保するための始動後増量係数であり、冷
却水温センサ28による冷却水温度TWに基づき初期値
設定され、スタータスイッチ37のOFFによるエンジ
ン始動後、KAS=0になるまで漸次的に減少される。ま
た、KAIは、アイドル解除時のもたつきを防止するため
のアイドル後増量係数であり、アイドルスイッチ25b
がON(スロットル弁全閉)からOFF(スロットル弁
開)に移行したとき初期値設定され、その後KAI=0に
なるまで漸次的に減少される。更に、KACCは、スロッ
トル弁5aが急開される加速時において吸入空気量セン
サ24の吸入空気量検出遅れに起因する空燃比のリーン
スパイクを防止するための加速増量係数であり、スロッ
トル開度変化速度によりスロットル弁急開の加速を検知
したとき、初期値設定され、その後KACC=0になるま
で漸次的に減少される。
【0098】一方、触媒保護のための上記フル増量係数
KFULLは、エンジン回転速度NEとエンジン負荷を表す
基本燃料噴射パルス幅Tpとに基づいてROM42に格
納されているフル増量係数テーブルを参照することによ
り設定される。
【0099】上記フル増量係数テーブルは、エンジン負
荷を表す基本燃料噴射パルス幅Tpとエンジン回転速度
NEとによる領域毎に、触媒温度の異常上昇を防止し得
る燃料増量適正値を予めシミュレーション或いは実験等
により求め、この燃料増量適正値をフル増量係数KFULL
として、基本燃料噴射パルス幅Tpとエンジン回転速度
NEとをパラメータとするテーブルとして設定し、RO
M42の一連のアドレスにストアされているものであ
る。
【0100】上記フル増量係数テーブルの一例を、図1
0に示す。このフル増量係数テーブルにおいては、図1
0に斜線で示すように、基本燃料噴射パルス幅Tpが大
きいエンジン高負荷領域およびエンジン高回転領域との
少なくとも一方の領域にあるとき、フル増量係数KFULL
がKFULL>0に設定される。そして、この領域がフル増
量係数KFULLによる燃料増量補正が行われる、いわゆる
フル増量領域となる。このフル増量領域外においては、
フル増量係数KFULLがKFULL=0に設定され、フル増量
係数KFULLによる燃料増量補正は行われない。また、フ
ル増量係数テーブルには、基本燃料噴射パルス幅Tpが
大きくエンジン回転速度NEが高いほど、すなわちエン
ジン高負荷高回転であるほど、大きい値のフル増量係数
KFULLがメモリされている。
【0101】すなわち、本実施の形態においては、後述
の処理によって、点火回数CIGNが設定回数IGNに達
するまでの所定期間における各気筒毎の差回転DELN
E#i(i=1〜4)を平均処理して各気筒毎の差回転平
均値DNAVE#iを算出し、これら各差回転平均値DN
AVE#iのうちの最大値DNAVEMAXを判別して該
最大値DNAVEMAXと各気筒毎の差回転平均値DN
AVE#iとの差SDNAVE#iをそれぞれ算出する。そ
して、この最大値に対する各気筒毎の平均値差SDNA
VE#iを失火判定レベルLVLMISと比較すること
で、失火気筒を判別するのであり、失火を判定するため
の上記失火判定レベルLVLMISをエンジン高回転域
においても厳密に設定し、判別した失火気筒が真に失火
を生じているのか否かをO2センサ出力電圧O2Sに基
づいて検証する。
【0102】ここで、このエンジン高回転域は、触媒保
護のための上記フル増量係数KFULLによる燃料増量補正
を行うフル増量領域に適合する。
【0103】そして、このフル増量領域においては、失
火が生じていない無失火時には、フル増量係数KFULLに
よる燃料増量補正によって燃焼後の排気ガス空燃比がリ
ッチとなりO2センサ29の出力電圧O2Sは、ほぼ一
定のリッチ出力となる。これに対し、燃焼が行われない
失火時には、排気ガス中の酸素濃度が増大するため、O
2センサ出力電圧O2Sは、略リーン出力となる。
【0104】従って、このフル増量係数KFULLによる触
媒保護のためのフル増量領域においては、無失火時と失
火時とのO2センサ出力電圧O2Sの差が大きく、O2セ
ンサ出力電圧O2Sに基づいて確実に失火を検証するこ
とが可能となる。
【0105】上記ステップS32では、フル増量係数KFUL
Lが0よりも大きいか否かによりエンジン運転領域が燃
料増量領域にあるか否かを判断するが、これに代え、例
えば、エンジン回転速度NEとエンジン負荷を表す基本
燃料噴射パルス幅Tpとによる領域テーブルを採用し、
この領域テーブルを参照することで、燃料増量領域判定
を行うようにしてもよく、適宜の手段が採用できる。
【0106】そして、KFULL=0の燃料増量領域外で条
件非成立のときには、ステップS40へジャンプして、ス
テップS40〜S44で、各気筒の前記差回転積算値ΣDEL
NE#i、点火回数CIGN、O2センサ出力電圧積算値ΣO
2S、O2センサ出力電圧変化量の絶対値積算値DO2
S、O2センサ出力電圧サンプリング回数CO2Sをそれぞ
れクリアして(ΣDELNE#i←0、CIGN←0、ΣO
2S←0、DO2S←0、CO2S←0)、ルーチンを抜
ける。
【0107】一方、上記ステップS32においてKFULL>
0の燃料増量領域による条件成立時には、ステップS33
へ進み、図6に示す失火気筒検出サブルーチンを実行
し、エンジン回転変動として各気筒毎の差回転DELN
E#iに基づき失火気筒を判別する。
【0108】図6の失火気筒検出サブルーチンについて
説明すると、ステップS51で、上記差回転算出ルーチン
において積算された点火回数CIGNが設定回数IGNに
達した所定期間における各気筒#i(i=1〜4気筒)
毎の差回転積算値ΣDELNE#iを読み出し、この気筒
毎の差回転積算値ΣDELNE#iに基づいて、次式によ
り、所定期間における各気筒毎の差回転平均値DNAV
E#iをそれぞれ算出する。
【0109】 DNAVE#i←ΣDELNE#i/(IGN/N) ここで、Nは気筒数であり、点火回数CIGNが設定回数
IGNに達するまでの間に、各気筒毎に(IGN/N)
回づつ差回転DELNEがそれぞれ積算される。従っ
て、点火回数CIGNが設定回数IGNに達した所定期間
における各気筒毎の差回転積算値ΣDELNE#iを(I
GN/N)によりそれぞれ除算することで、この所定期
間における各気筒毎の差回転平均値DNAVE#iを算出
することが可能である。また、上記(IGN/N)は、
既知であり、予めROM42に固定データとしてメモリ
される。
【0110】そして、ステップS52で、これら各気筒毎
の差回転平均値DNAVE#iの大小関係を比較し、これ
ら各差回転平均値DNAVE#iのうち最大のものを、最
大値DNAVEMAXとする。
【0111】すなわち、図11に示すように、例えば、
所定期間(400点火)における各気筒毎の差回転平均
値DNAVE#1,DNAVE#2,DNAVE#3,DNA
VE#4のうち、#1気筒の差回転平均値DNAVE#1が
最大であり、この#1気筒の差回転平均値DNAVE#1
を最大値DNAVEMAXとして設定する。
【0112】次いでステップS53へ進み、上記最大値D
NAVEMAXから各気筒毎の差回転平均値DNAVE
#iをそれぞれ減算して、この最大値DNAVEMAXに
対する各気筒毎の平均値差SDNAVE#iを算出する
(SDNAVE#i←DNAVEMAX−DNAVE#
i)。
【0113】そして、ステップS54で、各気筒毎の上記
平均値差SDNAVE#iを、それぞれ失火判定レベルL
VLMISと比較し、SDNAVE#i>LVLMISで
失火判定レベルLVLMISよりも平均値差SDNAV
E#iの大きい気筒を毎回連続失火中の失火気筒と判別
し、ステップS55で、該当気筒の毎回連続失火を表す気
筒別失火フラグFMIS#iをセットする(FMIS#i←1)。
【0114】また、SDNAVE#i≦LVLMISで、
平均値差SDNAVE#iが上記失火判定レベルLVLM
IS以下の気筒については、少なくとも恒常的な毎回連
続失火を生じていないと判断して、ステップS56で、該
当気筒に対応する気筒別失火フラグFMIS#iをクリアし
て(FMIS#i←0)、失火診断ルーチン(図5)のステ
ップS34へ進む。
【0115】すなわち、気筒毎の差回転DELNE#iを
直接用いずに、点火回数CIGNが設定回数IGNに達す
るまでの各気筒毎の差回転平均値DNAVE#iを採用す
ることで、スナッチや外乱等による一時的なエンジン回
転変動の影響を排除し、且つ、加速等による一時的な失
火による影響を排除する。そして、各差回転平均値DN
AVE#iのうちの最大値DNAVEMAXを判別して該
最大値DNAVEMAXと各気筒毎の差回転平均値DN
AVE#iとの差SDNAVE#iをそれぞれ算出すること
で、特定気筒の毎回連続失火を表す失火パラメータとし
て的確に反映させる。更に、この最大値DNAVEMA
Xに対する各気筒毎の平均値差SDNAVE#iを失火判
定レベルLVLMISと比較して、気筒毎の毎回連続失
火を判断するので、気筒毎の差回転平均値DNAVE#i
を判定値(失火判定レベル)と比較して失火診断を行う
よりも、毎回連続失火を表す失火パラメータとしての気
筒毎の上記平均値差SDNAVE#iは、毎回連続失火の
有無に応じて大きく変化しダイナミックレンジが大き
く、従って、より的確に気筒別に毎回連続失火を判断す
ることが可能となる。
【0116】また、所定期間における差回転の単純平均
を採用するため、失火診断に係るCPU41の演算負担
を著しく低減することが可能となる。
【0117】例えば、上述の図11の例では、#1気筒
の差回転平均値DNAVE#1が最大最大値DNAVEM
AXとなり、従って、#1気筒の平均値差SDNAVE
#1は、SDNAVE#1=0rpmとなる。そして、この最
大値DNAVEMAXに対する#2気筒の平均値差SD
NAVE#2は約18rpm、#3気筒の平均値差SDNA
VE#3は約25rpm、#4気筒の平均値差SDNAVE#
4は約65rpmとなり、この場合は、#4気筒が毎回連続
失火を生じていることが解る。
【0118】しかし、エンジン高回転域(通常、500
0rpm以上)においては、前述のように、クランクロー
タやクランク角センサの製造許容誤差及び取付許容誤
差、並びに各気筒毎に燃焼圧のばらつき等に起因するエ
ンジン回転速度のばらつきの影響が大きくなり、且つ、
高回転域では慣性エネルギが大きいため失火時のエンジ
ン回転変化量が小さく、失火判定が困難となる。
【0119】従って、エンジン高回転域においては、判
定値としての失火判定レベルLVLMISを厳密(小さ
く)に設定すると、各気筒の回転ばらつきによって実際
には失火していないにも係わらず、失火と誤判定してし
まう。また、これに対処するに、上記失火判定レベルL
VLMISを大きく設定すると、逆に、実際の失火を検
出することができなくなってしまう。いずれにしても、
エンジン回転変化による失火判定では、エンジン高回転
域において各気筒毎の毎回連続失火を適切に判定するこ
とができない。
【0120】従って、このときには、排気ガス中の酸素
濃度を示すO2センサ出力電圧O2Sに基づく失火判定
を併用し、後述の処理によりO2センサ出力電圧O2S
に基づいて真に失火が生じているか否かを検証する。す
なわち、エンジン回転変化による失火判定とO2センサ
出力電圧O2Sによる失火判定とを併用することによっ
て、上記失火判定レベルLVLMISを厳密設定するこ
とが可能となり、この失火判定レベルLVLMISの厳
密設定との相乗によりエンジン高回転域における失火診
断精度を大幅に向上することが可能となり、且つ、エン
ジン高回転域においても、失火気筒を判別することが可
能となる。
【0121】そして、以上の失火気筒検出サブルーチン
の終了により、失火診断ルーチンのステップS34へ進む
と(図5参照)、各気筒の上記気筒別失火フラグFMIS#
iを参照し、FMIS#i=0で、全ての気筒に対する気筒別
失火フラグFMIS#1,FMIS#2,FMIS#3,FMIS#4がクリ
アされており、全ての気筒#1〜#4について毎回連続
失火が生じていないと判断されているときには、図7の
失火検証サブルーチンのステップS65へジャンプして、
バックアップRAM44にストアされ気筒毎の毎回連続
失火確定を示す全ての気筒別失火判定NGフラグFNG#
1,FNG#2,FNG#3,FNG#4をクリアする。
【0122】一方、上記ステップS34においてFMIS#i=
1で、上記気筒別失火フラグFMIS#1〜FMIS#4のうち何
れか1つでもフラグがセットされており、少なくとも1
つの気筒に毎回連続失火が生じていると判別されている
ときには、ステップS35へ進み、O2センサ29が活性し
ているか否かを判断する。
【0123】すなわち、O2センサ29が非活性のとき
には、該O2センサ29の出力電圧O2Sにより排気ガ
ス中の酸素濃度を判断できず、O2センサ出力電圧O2
Sに基づく失火診断を行うことができない。
【0124】従って、O2センサ29が非活性のときに
は、上記ステップS40へジャンプして、ステップS40〜S4
4で、各気筒の差回転積算値ΣDELNE#i、点火回数
CIGN、O2センサ出力電圧積算値ΣO2S、O2センサ
出力電圧変化量の絶対値積算値DO2S、O2センサ出
力電圧サンプリング回数CO2Sをそれぞれクリアして、
ルーチンを抜ける。
【0125】尚、このO2センサ29の活性判定は、例
えば、O2センサ29の出力電圧O2Sが設定値以上或
いは所定範囲の状態が設定以上継続しているとき、該O
2センサ29の活性と判断することができる。
【0126】一方、上記ステップS35においてO2センサ
29が活性のときには、ステップS36へ進み、図7に示
す失火検証サブルーチンを実行し、排気ガス中の酸素濃
度を示すO2センサ出力電圧O2Sに基づいて失火を検
証する。
【0127】図7の失火検証サブルーチンについて説明
すると、ステップS61で、上記O2センサ出力電圧積算ル
ーチンにおいて積算されたO2センサ出力電圧積算値Σ
O2S、及びO2センサ出力電圧サンプリング回数CO2S
を読み出し、上記O2センサ出力電圧積算値ΣO2Sを
O2センサ出力電圧サンプリング回数CO2Sにより除算し
て、点火回数CIGNが設定回数IGNに達した所定期間
におけるO2センサ出力電圧平均値O2AVEを算出す
る(O2AVE←ΣO2S/CO2S)。
【0128】次いでステップS62へ進み、上記O2センサ
出力電圧平均値O2AVEを、該O2センサ出力電圧平
均値O2AVEにより失火を判定するための第1の判定
値LVLO2AVEと比較する。
【0129】そして、O2AVE<LVLO2AVEで、上
記O2センサ出力電圧平均値O2AVEが第1の判定値
LVLO2AVEに達していないときには、触媒保護のため
の燃料増量領域すなわちフル増量領域であるにも係わら
ず、O2センサ29の出力電圧O2Sが継続的にリーン
出力を示しており、所定気筒に毎回連続失火が発生して
いると判断して、ステップS64へ進み、上記気筒別失火
フラグFMIS#iにより特定される該当気筒の毎回連続失
火と確定し、最終的な失火診断結果を表しバックアップ
RAM44にストアされる該当気筒の毎回連続失火確定
を示す気筒別失火判定NGフラグFNG#iをセットして
(FNG#i←0)、失火診断ルーチン(図5)のステップ
S37へ進む。
【0130】また、上記ステップS62においてO2AV
E≧LVLO2AVEのときには、ステップS63へ進み、上記
O2センサ出力電圧積算ルーチンにおいて積算されたO2
センサ出力電圧変化量の絶対値積算値DO2Sを読み出
し、この所定期間における上記O2センサ出力電圧変化
量の絶対値積算値DO2Sを、該絶対値積算値DO2S
により失火を判定するための第2の判定値LVLDO2Sと
比較する。
【0131】そして、DO2S>LVLDO2Sで、上記O
2センサ出力電圧変化量の絶対値積算値DO2Sが第2
の判定値LVLDO2Sよりも大きいときには、所定気筒の
毎回連続失火による空燃比変動によりO2センサ出力電
圧O2Sが変動しており、従って、所定気筒に毎回連続
失火が生じていると判断して、同様に、上記ステップS6
4へ進み、上記気筒別失火フラグFMIS#iにより特定され
る該当気筒の毎回連続失火と確定し、バックアップRA
M44にストアされる該当気筒の毎回連続失火確定を示
す気筒別失火判定NGフラグFNG#iをセットして、失火
診断ルーチンのステップS37へ進む。
【0132】すなわち、エンジン回転変化による失火判
定によって、特定気筒の毎回連続失火が判別されたと
き、更にO2センサ出力電圧O2Sに基づく失火判定を
行って失火を検証し、このO2センサ出力電圧O2Sに
よる失火判定により失火を判別したとき、上記特定気筒
の毎回連続失火と確定する。
【0133】ここで、エンジン運転状態が触媒保護のた
めの燃料増量領域すなわちフル増量領域にあっても、上
述のように、前記フル増量係数KFULLは、エンジン高負
荷高回転であるほど、大きい値に設定され、このフル増
量係数KFULLによる燃料増量が大きく、エンジン低回転
或いはエンジン低負荷側に移行するほどフル増量係数K
FULLは小さい値に設定され、燃料増量が少なくなる。
【0134】上記フル増量係数KFULLの値が小さく燃料
増量が少ないときの、無失火時のO2センサ出力電圧O
2Sと特定気筒に毎回連続失火が生じている時のO2セ
ンサ出力電圧O2Sとの関係を、点火回数CIGNを時間
軸とした図12のタイムチャートに示す。
【0135】同図に示すように、無失火時は、上記フル
増量係数KFULLによる燃料増量によりO2センサ出力電
圧O2Sが略一定のリッチ出力となり、失火時は、排気
ガス中の酸素濃度が増大しO2センサ出力電圧O2Sは
リーン出力を継続する。
【0136】従って、このO2センサ出力電圧O2Sを
平均した上記O2センサ出力電圧平均値O2AVEは、
無失火時には大きく、特定気筒の毎回連続失火時には、
小さくなる。
【0137】これに対し、上記O2センサ出力電圧変化
量の絶対値積算値DO2Sは、フル増量係数KFULLの値
が小さく燃料増量が少ないときには、失火の有無に係わ
らずO2センサ出力電圧O2Sの変動が少ないため、図
13に示すように、無失火時および失火時共に、小さな
値となる。従って、燃料増量が少ないときには、上記O
2センサ出力電圧変化量の絶対値積算値DO2Sによる
失火判定は、困難である。
【0138】すなわち、フル増量係数KFULLの値が小さ
く燃料増量が少ないときには、上記O2センサ出力電圧
平均値O2AVEによって失火を判断することが可能で
あり、このとき、O2センサ出力電圧平均値O2AVE
が上記第1の判定値LVLO2AVEを下回ることで所定気
筒に毎回連続失火が生じていることを判断できる。
【0139】尚、O2センサ出力電圧O2Sのみによる
失火判別では、無失火と所定気筒の毎回連続失火しか判
別できず毎回連続失火を生じている気筒を特定すること
はできないが、上述のエンジン回転変化による失火判定
により失火気筒が特定されているため、このエンジン回
転変化による失火判定とO2センサ出力電圧O2Sによ
る失火判定とを併用することで、エンジン高回転域にお
いても、毎回連続失火を生じている失火気筒を確実に特
定することができる。
【0140】一方、上記フル増量係数KFULLの値が大き
く燃料増量が大きいときの、無失火時のO2センサ出力
電圧O2Sと特定気筒に毎回連続失火が生じている時の
O2センサ出力電圧O2Sとの関係を、図14のタイム
チャートに示す。
【0141】図14に示すように、無失火時は、上記フ
ル増量係数KFULLによる燃料増量によりO2センサ出力
電圧O2Sが略一定のリッチ出力となる。また、所定気
筒の毎回連続失火時は、失火により排気ガス中の酸素濃
度が増大しても、燃料増量が大きいときにはベース空燃
比のリッチの度合いが大きいため、O2センサ出力電圧
O2Sは、なおもリッチ出力となる。しかし、失火によ
る空燃比変動により、O2センサ出力電圧O2Sは変動
する。
【0142】従って、燃料増量が大きいときには、O2
センサ出力電圧O2Sが失火の有無に係わらずリッチ出
力となるため、このO2センサ出力電圧O2Sを平均し
たO2センサ出力電圧平均値O2AVEは、無失火時と
失火時共にリッチとなり、且つ、その差が小さい。この
ため、燃料増量が大きいときには、上記O2センサ出力
電圧平均値O2AVEによる失火判定は、困難である。
【0143】これに対し、図15に示すように、上記O
2センサ出力電圧変化量の絶対値積算値DO2Sは、無
失火時には、O2センサ出力電圧O2Sが略一定のリッ
チ出力で変動が少ないため、小さい。また、毎回連続失
火時には、O2センサ出力電圧O2Sの変動によりO2セ
ンサ出力電圧変化量の絶対値積算値DO2Sは大きくな
る。
【0144】従って、フル増量係数KFULLの値が大きく
燃料増量が大きいときには、上記O2センサ出力電圧変
化量の絶対値積算値DO2Sによって失火を判断するこ
とが可能であり、このとき、O2センサ出力電圧変化量
の絶対値積算値DO2Sが上記第2の判定値LVLDO2S
を超えることで所定気筒に毎回連続失火が生じているこ
とを判断できる。
【0145】すなわち、上記O2センサ出力電圧平均値
O2AVEとO2センサ出力電圧変化量の絶対値積算値
との双方を判断することで、フル増量係数KFULLによる
燃料増量の相違に係わらず、適切に失火を判断すること
が可能となる。
【0146】一方、上記ステップS63において、DO2
S≦LVLDO2Sのとき、すなわち、O2AVE≧LVL
O2AVE且つDO2S≦LVLDO2Sのときには、触媒保護
のための燃料増量領域すなわちフル増量領域に対応し
て、O2センサ29の出力電圧O2Sが継続的にリッチ
出力を示しており、且つ、毎回連続失火による空燃比変
動も生じておらず、何れの気筒にも毎回連続失火が発生
していないと判断し、ステップS65へ進み、バックアッ
プRAM44にストアされ気筒毎の毎回連続失火確定を
示す全ての気筒別失火判定NGフラグFNG#1,FNG#2,
FNG#3,FNG#4をクリアして、失火診断ルーチンのステ
ップS37へ進む。
【0147】すなわち、上述のエンジン回転変化による
失火判定により特定気筒の毎回連続失火と判断されたと
しても、O2センサ出力電圧O2Sに基づく失火判定に
よって無失火と判断された場合には、このエンジン回転
変化による失火判定結果は、クランクロータやクランク
角センサの製造許容誤差及び取付許容誤差等、並びに各
気筒毎に燃焼圧のばらつきに起因するエンジン回転速度
のばらつきの影響によるものと判断する。そして、この
ときには、O2センサ出力電圧O2Sに基づく検証によ
って無失火と確定する。
【0148】そして、以上の失火検証サブルーチンの終
了により、失火診断ルーチンのステップS37へ進むと
(図5参照)、バックアップRAM44にストアされた
各気筒毎の上記気筒別失火判定NGフラグFNG#iを参照
し、各気筒の気筒別失火判定NGフラグFNG#1,FNG#
2,FNG#3,FNG#4のうち、何れかのフラグがセットさ
れているときには、ステップS38へ進み、点滅周期の長
短、所定期間における点滅回数、或いはこれらの組合せ
による所定の点滅コードで、警報ランプ38を点滅さ
せ、失火の発生を運転者に報知する。そして、次回の診
断に備え、上記ステップS40〜S44を経て、各気筒の差回
転積算値ΣDELNE#i、点火回数CIGN、O2センサ出
力電圧積算値ΣO2S、O2センサ出力電圧変化量の絶
対値積算値DO2S、O2センサ出力電圧サンプリング
回数CO2Sをそれぞれクリアし、ルーチンを抜ける。
【0149】一方、上記ステップS37においてFNG#i=
0で、全ての気筒の気筒別失火判定NGフラグFNG#1,
FNG#2,FNG#3,FNG#4がクリアされており、全ての気
筒#1〜#4について毎回連続失火が生じていないとき
には、ステップS39へ進み、無失火により上記警報ラン
プ38の所定点滅コードによる点滅を中止し、上記ステ
ップS40〜S44を経て、ルーチンを抜ける。
【0150】その結果、所定気筒に失火が生じていると
きには、警報ランプ38の点滅によって報知され、運転
者は容易に失火が生じていることを判断することができ
る。
【0151】また、ディーラ等のサービス工場でのトラ
ブルシューティングの際に、外部接続用コネクタ55に
シリアルモニタ60を接続することで、シリアルモニタ
60によってECU40における各気筒毎の気筒別失火
判定NGフラグFNG#iによるトラブルデータを読み出し
て、どの気筒が失火を生じているのかを簡単且つ的確に
判断することができる。
【0152】そして、該当個所を修理後、上記シリアル
モニタ60により上記気筒別失火判定NGフラグFNG#i
をクリアする。尚、本実施の形態においては、該当箇所
の修理後、シリアルモニタ60によって上記気筒別失火
判定NGフラグFNG#iをクリアしなくても、正常状態へ
の復帰により無失火となれば、上記失火診断ルーチンに
おいて、各気筒別失火判定NGフラグFNG#iはクリアさ
れる。
【0153】尚、本実施の形態においては、エンジン回
転状態量としてエンジン回転速度(エンジン回転数)を
用い、所定周期毎のエンジン回転変化量に基づいて失火
を検出するようにしているが、本発明はこれに限定され
ず、エンジン回転速度に代えてエンジン回転周期、エン
ジン回転角速度、或いはエンジン回転角加速度を用いる
ようにしてもよい。
【0154】また、本実施の形態においては、エンジン
運転状態が触媒保護のための燃料増量領域にあるとき、
エンジン回転変化量とO2センサ出力電圧O2Sとの併
用により失火を診断しているが、燃料増量領域外のとき
には、エンジン回転変化量のみによって失火診断を行う
ようにしてもよい。すなわち、触媒保護のための燃料増
量領域外のときには、エンジン高回転域外であり、エン
ジン高回転域に対して慣性エネルギが小さく失火時のエ
ンジン回転変化量が大きく、また、各気筒毎の燃焼圧の
ばらつきによる各気筒毎のエンジン回転のばらつきの影
響が小さい。従って、このときには、エンジン回転変化
量のみによって失火診断を行っても、診断精度上、問題
ない。
【0155】
【発明の効果】以上説明したように請求項1記載の発明
によれば、所定クランク角毎のエンジン回転状態量の変
化を検出すると共に、気筒を判別する。そして、各気筒
毎のエンジン回転状態量の変化をそれぞれ失火判定レベ
ルと比較して、各気筒毎に失火を判別する。また、空燃
比センサの出力値に基づき失火を判別する。そして、上
記エンジン回転状態量の変化により所定気筒の失火を判
別し、且つ、空燃比センサの出力値に基づいて失火を判
別したとき、当該気筒の失火と診断するので、エンジン
回転変化による失火判別結果が排気ガス中の酸素濃度を
示す空燃比センサの出力値に基づく失火判別によって検
証され、これら各判別結果の整合性により該当気筒の失
火が確定診断される。従って、このエンジン回転変化に
よる失火判定と空燃比センサの出力値に基づく失火判定
とを併用することによって、上記失火判定レベルをエン
ジン高回転域においても厳密に設定することが可能とな
り、この失火判定レベルの厳密設定との相乗によりエン
ジン高回転域における失火診断精度を大幅に向上するこ
とができ、且つエンジン高回転域においても失火気筒を
特定することができる。
【0156】すなわち、エンジン高回転域において失火
判定レベルを厳密に設定することにより、エンジン回転
変化による失火判定において、各気筒のエンジン回転の
ばらつきによって失火していないにも係わらず所定気筒
の失火と判断されたとしても、これが空燃比センサ出力
値に基づく失火診断によって検証されるため、確実に誤
診断を防止することができる。
【0157】また、真に失火を生じているときには、空
燃比センサ出力値による失火判定によっても失火と判別
されるため、上記失火判定レベルの厳密設定との相乗に
より失火診断精度を向上することが可能となり、且つ、
このときエンジン回転変化による失火判別において失火
気筒が判断されているため、エンジン高回転域において
も、失火気筒を特定することができる。
【0158】請求項2記載の発明によれば、気筒間にお
ける所定クランク角毎のエンジン回転状態量を検出する
と共に、現在の燃焼行程気筒を判別し、前回検出したエ
ンジン回転状態量から今回検出したエンジン回転状態量
を減算して上記燃焼行程気筒に対する回転状態量の差を
算出する。そして、所定期間における各気筒毎の上記差
回転状態量を平均処理して各気筒毎の差回転状態量平均
値を算出し、これら各差回転状態量平均値のうちの最大
値と各気筒毎の差回転状態量平均値との差をそれぞれ算
出する。そして、この最大値に対する各気筒毎の平均値
差を失火判定レベルと比較し、該失火判定レベルよりも
平均値差が大きい気筒を失火気筒と判別する。更に、空
燃比センサの出力値に基づいて失火を判別し、失火を判
別したとき、上記失火気筒の毎回失火と確定して当該気
筒の毎回失火と診断するので、上記請求項1記載の発明
の効果に加え、エンジン回転変化による失火判別に際
し、エンジン回転状態量の変化として気筒毎の回転状態
量の差を直接用いず、所定期間における各気筒毎の差回
転状態量平均値を採用するため、スナッチや外乱等によ
る一時的なエンジン回転変動の影響を排除し、且つ、加
速等による一時的な失火による影響を排除することがで
きる。また、各差回転状態量平均値のうちの最大値と各
気筒毎の差回転状態量平均値との差をそれぞれ算出し、
この最大値に対する各気筒毎の平均値差を最終的な失火
パラメータとするため、特定気筒の毎回連続失火を的確
に反映させることができる。
【0159】更に、この最大値に対する各気筒毎の平均
値差を失火判定レベルと比較して、気筒毎の毎回連続失
火を判断するので、気筒毎の差回転状態量平均値を判定
値(失火判定レベル)と比較して失火診断を行うより
も、毎回連続失火を表す失火パラメータとしての気筒毎
の上記平均値差は、毎回連続失火の有無に応じて大きく
変化しダイナミックレンジが大きく、従って、より的確
に気筒別に毎回連続失火を判別することができる効果を
有する。
【0160】その際、請求項3記載の発明では、エンジ
ン運転状態が触媒保護のための燃料増量領域にあると
き、エンジン回転状態量と空燃比センサ出力電圧とによ
る失火判別を行う。すなわち、触媒保護のための燃料増
量領域はエンジン高回転域に適合し、この燃料増量領域
下で無失火時には、燃料増量によって燃焼後の排気ガス
空燃比がリッチとなり空燃比センサ出力値がほぼ一定の
リッチ出力となり、また、燃焼が行われない失火時に
は、排気ガス中の酸素濃度が増大するため、空燃比セン
サ出力値が略リーン出力となる。従って、この触媒保護
のための燃料増量領域においては、無失火時と失火時と
の空燃比センサ出力値の差が大きく、請求項3記載の発
明によれば、上記請求項1或いは請求項2記載の発明の
効果に加え、エンジン回転変化による失火判別結果を、
空燃比センサ出力値に基づいて確実に検証することがで
きる効果を有する。
【0161】請求項4記載の発明では、所定周期毎に上
記空燃比センサの出力電圧及び該出力電圧の変化量の絶
対値を各々積算する。そして、空燃比センサの出力値に
よる失火診断に際し、エンジン運転状態が触媒保護のた
めの燃料増量領域にあるとき、所定期間における上記空
燃比センサ出力電圧の積算値に基づいて空燃比センサ出
力電圧平均値を算出し、該空燃比センサ出力電圧平均値
が第1の判定値に達していないとき、或いは、所定期間
における上記空燃比センサ出力電圧変化量の絶対値積算
値が第2の判定値よりも大きいとき、失火と判別するの
で、上記請求項1或いは請求項2記載の発明の効果に加
え、エンジン運転状態が触媒保護のための燃料増量領域
にあって、燃料増量が少ないときには、失火の有無が所
定期間における空燃比センサ出力電圧平均値に確実に反
映されるため、この空燃比センサ出力電圧と第1の判定
値との比較によって失火を的確に判断することができ、
また、燃料増量が大きいときには、所定期間における空
燃比センサ出力電圧変化量の絶対値積算値に失火の有無
が確実に反映され、空燃比センサ出力電圧変化量の絶対
値積算値と第2の判定値との比較によって失火を的確に
判断することができ、従って、燃料増量の相違に係わら
ず、適切に失火を判断することができる効果を有する。
【0162】また、請求項5記載の発明では、上記各平
均値を所定期間における単純平均によって算出するた
め、上記請求項2或いは請求項4記載の発明の効果に加
え、失火診断に係るCPUの演算負担を著しく低減する
ことができる効果を有する。
【0163】請求項6記載の発明では、上記所定期間
を、点火回数が所定回数に達する毎の期間とするので、
上記請求項2ないし請求項5記載の発明の効果に加え、
失火回数に直接依存する点火回数を採用し、この点火回
数によって失火診断の実行期間周期が定められるため、
スナッチや外乱等による影響、加速等による一時的な失
火による影響を排除して、所定気筒の恒常的な失火すな
わち所定気筒の毎回連続失火を確実に診断することがで
きる効果を有する。
【0164】その際、請求項7記載では、上記回転状態
量としてエンジン回転速度を用いるので、上記請求項1
ないし請求項6記載の発明を、従来のエンジンの失火診
断装置に極めて容易に組み込むことができ、失火診断精
度を向上することができる効果を有する。
【図面の簡単な説明】
【図1】本発明の基本構成図
【図2】気筒判別/エンジン回転速度算出ルーチンのフ
ローチャート
【図3】差回転算出ルーチンのフローチャート
【図4】O2センサ出力電圧積算ルーチンのフローチャ
ート
【図5】失火診断ルーチンのフローチャート
【図6】エンジン回転変化に基づく失火判別による失火
気筒検出サブルーチンのフローチャート
【図7】O2センサ出力電圧に基づく失火検証サブルー
チンのフローチャート
【図8】クランクパルス、カムパルス、燃焼行程気筒、
点火タイミング、及び燃料噴射タイミングの関係を示す
タイムチャート
【図9】各気筒毎の差回転の算出状態を示すタイミング
チャート
【図10】フル増量係数テーブルの説明図
【図11】各気筒毎の差回転DELNE#i、差回転平均
値DNAVE#i、最大値DNAVEMAX、及び、最大
値DNAVEMAXに対する各気筒毎の平均値差SDN
AVE#iの関係を示すタイムチャート
【図12】燃料増量が少ないときの、無失火時のO2セ
ンサ出力電圧O2Sと特定気筒に毎回連続失火が生じて
いる時のO2センサ出力電圧O2Sとの関係を示すタイ
ムチャート
【図13】燃料増量が少ないときの、無失火時のO2セ
ンサ出力電圧変化量の絶対値積算値DO2Sと特定気筒
に毎回連続失火が生じている時のO2センサ出力電圧変
化量の絶対値積算値DO2Sとの関係を示すタイムチャ
ート
【図14】燃料増量が大きいときの、無失火時のO2セ
ンサ出力電圧O2Sと特定気筒に毎回連続失火が生じて
いる時のO2センサ出力電圧O2Sとの関係を示すタイ
ムチャート
【図15】燃料増量が大きいときの、無失火時のO2セ
ンサ出力電圧変化量の絶対値積算値DO2Sと特定気筒
に毎回連続失火が生じている時のO2センサ出力電圧変
化量の絶対値積算値DO2Sとの関係を示すタイムチャ
ート
【図16】エンジンの全体概略図
【図17】クランクロータとクランク角センサの正面図
【図18】カムロータとカム角センサの正面図
【図19】電子制御系の回路構成図
【符号の説明】
1 エンジン 29 O2センサ(空燃比センサ) 32 クランク角センサ 40 電子制御装置(回転状態量変化検出手段、気筒判
別手段、第1の失火判別手段、第2の失火判別手段、失
火診断手段、差回転状態量算出手段、差回転状態量平均
値算出手段、積算手段) NE エンジン回転速度(エンジン回転状態量) DELNE 差回転(エンジン回転状態量の変化) LVLMIS 失火レベル O2S O2センサ出力電圧(空燃比センサの出力値;
空燃比センサの出力電圧) #n 現在の燃焼行程気筒 MNXn 現在の燃焼行程気筒#nに対応するエンジン
回転速度(今回検出したエンジン回転状態量) MNXn-1 1燃焼行程前の気筒#n-1に対応するエン
ジン回転速度(前回検出したエンジン回転状態量) DELNE#n 現在の燃焼行程気筒#nに対する差回転
(燃焼行程気筒に対する回転状態量の差) DELNE#i 各気筒毎の差回転(各気筒毎の差回転状
態量) DNAVE#i 各気筒毎の差回転平均値(各気筒毎の差
回転状態量平均値) DNAVEMAX 最大値(各差回転状態量平均値のう
ちの最大値) SDNAVE#i 最大値に対する各気筒毎の平均値差 O2AVE O2センサ出力電圧平均値(空燃比センサ
出力電圧平均値) LVLO2AVE 第1の判定値 DO2S O2センサ出力電圧変化量の絶対値積算値
(空燃比センサ出力電圧変化量の絶対値積算値) LVLDO2S 第2の判定値 CIGN 点火回数 IGN 設定回数(所定回数)

Claims (7)

    【特許請求の範囲】
  1. 【請求項1】所定クランク角毎のエンジン回転状態量の
    変化を検出する回転状態量変化検出手段と、 気筒を判別する気筒判別手段と、 各気筒毎の上記エンジン回転状態量の変化をそれぞれ失
    火判定レベルと比較し、各気筒毎に失火を判別する第1
    の失火判別手段と、 空燃比センサの出力値に基づき失火を判別する第2の失
    火判別手段と、 上記エンジン回転状態量の変化により所定気筒の失火を
    判別し、且つ、空燃比センサの出力値に基づき失火を判
    別したとき、当該気筒の失火と診断する失火診断手段と
    を備えたことを特徴とするエンジンの失火診断装置。
  2. 【請求項2】気筒間における所定クランク角毎のエンジ
    ン回転状態量を検出するエンジン回転状態量検出手段
    と、 現在の燃焼行程気筒を判別する気筒判別手段と、 前回検出したエンジン回転状態量から今回検出したエン
    ジン回転状態量を減算して上記燃焼行程気筒に対する回
    転状態量の差を算出する差回転状態量算出手段と、 所定期間における各気筒毎の上記差回転状態量を平均処
    理し各気筒毎の差回転状態量平均値を算出する差回転状
    態量平均値算出手段と、 上記各差回転状態量平均値のうちの最大値と各気筒毎の
    差回転状態量平均値との差をそれぞれ算出して、この最
    大値に対する各気筒毎の平均値差を失火判定レベルと比
    較し、該失火判定レベルよりも平均値差が大きい気筒を
    失火気筒と判別する第1の失火判別手段と、 空燃比センサの出力値に基づき失火を判別する第2の失
    火判別手段と、 空燃比センサの出力値に基づき失火を判別したとき、上
    記失火気筒の毎回失火と確定し、当該気筒の毎回失火と
    診断する失火診断手段とを備えたことを特徴とするエン
    ジンの失火診断装置。
  3. 【請求項3】上記各失火判別手段は、エンジン運転状態
    が燃料増量領域にあるとき、失火判別を行うことを特徴
    とする請求項1或いは請求項2記載のエンジンの失火診
    断装置。
  4. 【請求項4】所定周期毎に上記空燃比センサの出力電圧
    及び該出力電圧の変化量の絶対値を各々積算する積算手
    段を備え、上記第2の失火判別手段は、エンジン運転状
    態が燃料増量領域にあるとき、所定期間における空燃比
    センサ出力電圧平均値を算出し、該空燃比センサ出力電
    圧平均値が第1の判定値に達していないとき、或いは、
    所定期間における上記空燃比センサ出力電圧変化量の絶
    対値積算値が第2の判定値よりも大きいとき、失火と判
    別することを特徴とする請求項1或いは請求項2記載の
    エンジンの失火診断装置。
  5. 【請求項5】上記各平均値は、所定期間における単純平
    均によって算出することを特徴とする請求項2或いは請
    求項4記載のエンジンの失火診断装置。
  6. 【請求項6】上記所定期間は、点火回数が所定回数に達
    する毎の期間であることを特徴とする請求項2ないし請
    求項5記載のエンジンの失火診断装置。
  7. 【請求項7】上記エンジン回転状態量は、エンジン回転
    速度であることを特徴とする請求項1ないし請求項6記
    載のエンジンの失火診断装置。
JP01700797A 1997-01-30 1997-01-30 エンジンの失火診断装置 Expired - Fee Related JP3859789B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP01700797A JP3859789B2 (ja) 1997-01-30 1997-01-30 エンジンの失火診断装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP01700797A JP3859789B2 (ja) 1997-01-30 1997-01-30 エンジンの失火診断装置

Publications (2)

Publication Number Publication Date
JPH10213058A true JPH10213058A (ja) 1998-08-11
JP3859789B2 JP3859789B2 (ja) 2006-12-20

Family

ID=11931955

Family Applications (1)

Application Number Title Priority Date Filing Date
JP01700797A Expired - Fee Related JP3859789B2 (ja) 1997-01-30 1997-01-30 エンジンの失火診断装置

Country Status (1)

Country Link
JP (1) JP3859789B2 (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007170262A (ja) * 2005-12-21 2007-07-05 Mitsubishi Motors Corp エンジンの燃焼状態検出装置
JP2010013961A (ja) * 2008-07-02 2010-01-21 Hino Motors Ltd 内燃機関の燃焼状態判定装置
JP2010150953A (ja) * 2008-12-24 2010-07-08 Hitachi Automotive Systems Ltd 内燃機関の失火診断装置
JP2010185304A (ja) * 2009-02-10 2010-08-26 Nissan Motor Co Ltd 燃料噴射弁制御装置
JP2011089443A (ja) * 2009-10-21 2011-05-06 Mitsubishi Motors Corp 気筒間空燃比ばらつき検出装置
JP2012237252A (ja) * 2011-05-12 2012-12-06 Toyota Motor Corp 内燃機関の異常判定装置

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007170262A (ja) * 2005-12-21 2007-07-05 Mitsubishi Motors Corp エンジンの燃焼状態検出装置
JP2010013961A (ja) * 2008-07-02 2010-01-21 Hino Motors Ltd 内燃機関の燃焼状態判定装置
JP2010150953A (ja) * 2008-12-24 2010-07-08 Hitachi Automotive Systems Ltd 内燃機関の失火診断装置
JP2010185304A (ja) * 2009-02-10 2010-08-26 Nissan Motor Co Ltd 燃料噴射弁制御装置
JP2011089443A (ja) * 2009-10-21 2011-05-06 Mitsubishi Motors Corp 気筒間空燃比ばらつき検出装置
JP2012237252A (ja) * 2011-05-12 2012-12-06 Toyota Motor Corp 内燃機関の異常判定装置

Also Published As

Publication number Publication date
JP3859789B2 (ja) 2006-12-20

Similar Documents

Publication Publication Date Title
AU660554B2 (en) Method of detecting misfire by utilizing variation of rotation of crankshaft
US5862505A (en) Misfire discriminating method and apparatus for an engine
US5870688A (en) Misfire diagnostic system for internal combustion engine
JP3482318B2 (ja) 内燃機関の失火状態判定装置
US5447061A (en) Misfire detection method for engine
JPH03202660A (ja) エンジンの失火判定装置
JPH06146999A (ja) 内燃エンジンの燃焼状態検出装置
JP3859789B2 (ja) エンジンの失火診断装置
JP2000328930A (ja) エンジンの触媒劣化診断装置
EP1384878B1 (en) Control apparatus and control method of engine
JPH0436044A (ja) エンジンの失火診断装置
JP2679468B2 (ja) 内燃機関の失火検出装置
JP2010150953A (ja) 内燃機関の失火診断装置
JPH0518311A (ja) 異常検出装置
JPH10148153A (ja) エンジンの失火診断装置
JPH07310585A (ja) 筒内圧センサの診断装置
JPH04265475A (ja) エンジンの気筒別失火判別方法
JPH10148154A (ja) エンジンの燃料噴射制御装置
JP2000291467A (ja) 内燃機関の制御装置
JP3357092B2 (ja) エンジンの失火検出方法
JP3544228B2 (ja) 筒内圧センサの自己診断装置と内燃機関における筒内圧に基づく制御のフェールセーフ装置
JP2001271639A (ja) エンジンの触媒劣化診断装置
JP2001073861A (ja) 排気温度センサの診断装置
JPH07318458A (ja) 筒内圧センサの診断装置
JP3906521B2 (ja) エンジンの失火診断装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Effective date: 20031216

Free format text: JAPANESE INTERMEDIATE CODE: A621

A977 Report on retrieval

Effective date: 20060525

Free format text: JAPANESE INTERMEDIATE CODE: A971007

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060613

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060811

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20060905

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060920

R150 Certificate of patent (=grant) or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (prs date is renewal date of database)

Year of fee payment: 3

Free format text: PAYMENT UNTIL: 20090929

FPAY Renewal fee payment (prs date is renewal date of database)

Year of fee payment: 4

Free format text: PAYMENT UNTIL: 20100929

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100929

Year of fee payment: 4

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110929

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees