JP3859789B2 - Engine misfire diagnostic device - Google Patents

Engine misfire diagnostic device Download PDF

Info

Publication number
JP3859789B2
JP3859789B2 JP01700797A JP1700797A JP3859789B2 JP 3859789 B2 JP3859789 B2 JP 3859789B2 JP 01700797 A JP01700797 A JP 01700797A JP 1700797 A JP1700797 A JP 1700797A JP 3859789 B2 JP3859789 B2 JP 3859789B2
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.)
Expired - Fee Related
Application number
JP01700797A
Other languages
Japanese (ja)
Other versions
JPH10213058A (en
Inventor
秀昭 福井
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 Jukogyo KK
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 Jukogyo KK filed Critical Fuji Jukogyo KK
Priority to JP01700797A priority Critical patent/JP3859789B2/en
Publication of JPH10213058A publication Critical patent/JPH10213058A/en
Application granted granted Critical
Publication of JP3859789B2 publication Critical patent/JP3859789B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

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

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の補正差回転変化DDNEAnが失火判定レベルLVLMIS以上で、且つ失火診断対象気筒#n-1の補正差回転変化DDNEAn-1がマイナス失火判定レベル以下のとき、失火診断対象気筒#n-1の失火と判断する。
【0007】
しかしながら、クランクロータやクランク角センサの製造許容誤差、取付許容誤差等に起因するエンジン回転状態量(エンジン回転速度)のばらつきの他に、各気筒毎に燃焼圧のばらつきに起因するエンジン回転状態量のばらつきがある。
【0008】
すなわち、吸入管形状の複雑化や気筒間の吸気干渉等による各気筒毎の吸気分配率の相違、冷却水による冷却順路によって生じる各気筒毎の燃焼温度の相違、各気筒の燃焼室容積やピストン形状の製造上のばらつき、インジェクタの製造誤差等による燃料噴射量の違いから生じる各気筒の空燃比の僅かなばらつき、これらの原因によって、各気筒毎に燃焼圧のばらつきが生じ、各気筒毎にエンジン回転のばらつきが生じる。そして、エンジン高回転域では慣性エネルギが大きいため失火時のエンジン回転変化量が小さく、失火判定が困難となる。
【0009】
従って、判定値としての失火判定レベルを厳密に設定すると、上記要因によって実際には失火していないにも係わらず、失火と誤判定することがあった。また、これに対処するに、判定値としての上記失火判定レベルを緩く設定すると、失火時において失火を検出することができなくなってしまう。
【0010】
このため、特開平4−318256号公報においては、エンジン低回転域のときには、エンジン回転速度に基づいて失火診断を行う一方、エンジンに失火が発生した場合に排気ガス中の酸素濃度が増大することに着目し、少なくともエンジン高回転域においては、排気ガス中の酸素濃度に基づいて失火診断を行う技術が開示されている。
【0011】
【発明が解決しようとする課題】
しかしながら、上記先行例では、少なくともエンジン高回転域においては、排気ガス中の酸素濃度に基づいてのみ失火診断を行うので、失火が発生したことを検出することはできるものの、失火の生じている失火気筒を判別することができない不都合がある。
【0012】
すなわち、失火の判別自体は、酸素センサ(O2センサ)が活性していて、ある程度のエンジン負荷がかかっていればエンジン回転数にあまり影響を受けずに失火を検出することが可能だが、ある気筒に失火が発生してから酸素濃度が変化するまでの時間は、酸素センサの取付位置、エンジン回転速度(排気ガスの流速)等により変化する。従って、失火発生から酸素センサ出力変化が起きるまでの時間が不均一であり、失火気筒を判別することができない。
【0013】
本発明は、上記事情に鑑み、エンジン回転全域において、厳密な失火判定を行うと共に、失火気筒を確実に判別することが可能なエンジンの失火診断装置を提供することを目的とする。
【0015】
【課題を解決するための手段】
上記目的を達成するため、請求項記載の発明によるエンジンの失火診断装置は、図1の基本構成図に示すように、所定クランク角毎のエンジン回転状態量を検出するエンジン回転状態量検出手段と、現在の燃焼行程気筒を判別する気筒判別手段と、前回検出したエンジン回転状態量から今回検出したエンジン回転状態量を減算して上記燃焼行程気筒に対する回転状態量の差を算出する差回転状態量算出手段と、所定期間における各気筒毎の上記差回転状態量を平均処理し各気筒毎の差回転状態量平均値を算出する差回転状態量平均値算出手段と、上記各差回転状態量平均値のうちの最大値と各気筒毎の差回転状態量平均値との差をそれぞれ算出して、この最大値に対する各気筒毎の平均値差を失火判定レベルと比較し、該失火判定レベルよりも平均値差が大きい気筒を失火気筒と判別する第1の失火判別手段と、空燃比センサの出力値に基づき失火を判別する第2の失火判別手段と、空燃比センサの出力値に基づき失火を判別したとき、上記失火気筒の毎回失火と確定し、当該気筒の毎回失火と診断する失火診断手段とを備えたことを特徴とする。
【0016】
請求項記載の発明によるエンジンの失火診断装置は、請求項1記載の発明において、上記各失火判別手段は、エンジン運転状態が燃料増量領域にあるとき、失火判別を行うことを特徴とする。
【0017】
請求項記載の発明によるエンジンの失火診断装置は、請求項1記載の発明において、所定周期毎に上記空燃比センサの出力電圧及び該出力電圧の変化量の絶対値を各々積算する積算手段を備え、上記第2の失火判別手段は、エンジン運転状態が燃料増量領域にあるとき、所定期間における空燃比センサ出力電圧平均値を算出し、該空燃比センサ出力電圧平均値が第1の判定値に達していないとき、或いは、所定期間における上記空燃比センサ出力電圧変化量の絶対値積算値が第2の判定値よりも大きいとき、失火と判別することを特徴とする。
【0018】
請求項記載の発明によるエンジンの失火診断装置は、請求項1ないし請求項記載の発明において、上記各平均値は、所定期間における単純平均によって算出することを特徴とする。
【0019】
請求項記載の発明によるエンジンの失火診断装置は、請求項ないし請求項記載の発明において、上記所定期間は、点火回数が所定回数に達する毎の期間であることを特徴とする。
【0020】
請求項記載の発明によるエンジンの失火診断装置は、請求項1ないし請求項記載の発明において、上記エンジン回転状態量は、エンジン回転速度であることを特徴とする。
【0023】
請求項記載の発明では、気筒間における所定クランク角毎のエンジン回転状態量を検出すると共に、現在の燃焼行程気筒を判別し、前回検出したエンジン回転状態量から今回検出したエンジン回転状態量を減算して上記燃焼行程気筒に対する回転状態量の差を算出する。そして、所定期間における各気筒毎の上記差回転状態量を平均処理して各気筒毎の差回転状態量平均値を算出し、これら各差回転状態量平均値のうちの最大値と各気筒毎の差回転状態量平均値との差をそれぞれ算出する。そして、この最大値に対する各気筒毎の平均値差を失火判定レベルと比較し、該失火判定レベルよりも平均値差が大きい気筒を失火気筒と判別する。更に、空燃比センサの出力値に基づいて失火を判別し、失火を判別したとき、上記失火気筒の毎回失火と確定して当該気筒の毎回失火と診断する。
【0024】
この際、請求項記載の発明では、エンジン運転状態が触媒保護のための燃料増量領域にあるとき、エンジン回転状態量と空燃比センサ出力値とによる失火判別を行う。
【0025】
また、請求項記載の発明では、所定周期毎に上記空燃比センサの出力電圧及び該出力電圧の変化量の絶対値を各々積算する。そして、空燃比センサの出力値による失火診断に際し、エンジン運転状態が触媒保護のための燃料増量領域にあるとき、所定期間における上記空燃比センサ出力電圧の積算値に基づいて空燃比センサ出力電圧平均値を算出し、該空燃比センサ出力電圧平均値が第1の判定値に達していないとき、或いは、所定期間における上記空燃比センサ出力電圧変化量の絶対値積算値が第2の判定値よりも大きいとき、失火と判別する。
【0026】
また、請求項記載の発明では、上記各平均値を所定期間における単純平均によって算出する。
【0027】
さらに、請求項記載の発明では、上記所定期間を、点火回数が所定回数に達する毎の期間とし、請求項記載では、上記回転状態量としてエンジン回転速度を採用する。
【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の左右バンクを連通する冷却水通路27に冷却水温センサ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の位置に形成され、突起34bが3個の突起で構成されて最初の突起が#1気筒のATDCθ5の位置に形成されている。更に、突起34cが2個の突起で構成され、最初の突起が#2気筒のATDCθ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(図19参照)において、上記クランク角センサ32から出力されるクランクパルスの入力間隔時間Tθに基づいてエンジン回転速度(エンジン回転数)NEを算出し、また、各気筒の燃焼行程順(例えば、#1気筒→#3気筒→#2気筒→#4気筒)と、上記カム角センサ35からのカムパルスをカウンタによって計数した値とのパターンに基づいて、現在の燃焼行程気筒、燃料噴射対象気筒や点火対象気筒等の気筒判別を行う。
【0042】
上記インジェクタ11、点火プラグ17,ISC弁10等のアクチュエータ類に対する制御量の演算、制御信号の出力、すなわち燃料噴射制御、点火時期制御、アイドル回転数制御等のエンジン制御は、図19に示す電子制御装置(ECU)40によって行われる。
【0043】
上記ECU40は、CPU41、ROM42、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、ノックセンサ26、クランク角センサ32、カム角センサ35、車速を検出するための車速センサ36、及び始動状態を検出するためにスタータスイッチ37が接続されており、更に、上記A/D変換器49を介して、吸入空気量センサ24、スロットル開度センサ25a、冷却水温センサ28、及び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】
このようなエンジン制御系において、ECU40では、エンジン回転状態量の変化とO2センサ29の出力値(出力電圧)とに基づいて失火診断を行う。
【0052】
すなわち、所定クランク角毎のエンジン回転状態量の変化を検出すると共に、気筒を判別する。そして、各気筒毎のエンジン回転状態量の変化をそれぞれ失火判定レベルと比較して、各気筒毎に失火を判別する。また、空燃比センサの出力値としてO2センサ29の出力電圧O2Sに基づき失火を判別する。そして、上記エンジン回転状態量の変化により所定気筒の失火を判別し、且つ、O2センサ出力電圧O2Sに基づいて失火を判別したとき、当該気筒の失火と診断する。
【0053】
すなわち、各気筒毎のエンジン回転状態量の変化をそれぞれ失火判定レベルと比較して各気筒毎に失火を判別し、所定気筒の失火を判別したとき、更に、排気ガス中の酸素濃度を示すO2センサ出力電圧O2Sに基づいて失火が生じているかを判断する。そして、これら各判別結果の整合性により該当気筒の失火と確定診断するので、エンジン高回転域において失火判定レベルを厳密(小さく)に設定することにより、例え、各気筒のエンジン回転のばらつきによって失火していないにも係わらず所定気筒の失火と判断されたとしても、これがO2センサ出力電圧O2Sに基づく失火診断によって検証されるため、確実に誤診断を防止することが可能となる。
【0054】
また、真に失火を生じているときには、O2センサ出力電圧O2Sによる失火診断によっても失火と診断されるため、失火判定レベルの厳密設定との相乗により失火診断精度を向上することが可能となり、且つ、エンジン高回転域においても、失火気筒を判別することが可能となる。
【0055】
より詳細には、本実施の形態においては、クランク角センサ32、カム角センサ35からそれぞれ出力されるクランクパルス、カムパルスに基づいて現在の燃焼行程気筒#nを判別する。そして、所定クランク角毎のエンジン回転状態量として、各気筒間におけるBTDCθ2,θ3間、すなわちθ2,θ3クランクパルス入力間のエンジン回転速度(エンジン回転数)を採用し、今回算出したエンジン回転速度MNXnから前回の同区間におけるエンジン回転速度MNXn-1を減算して上記燃焼行程気筒#nの失火パラメータとなる回転速度の差、すなわち当該気筒#nに対する差回転DELNE#nを算出する。そして、点火回数が設定回数に達するまでの所定期間における各気筒毎の差回転DELNE#i(i=1〜4)を平均処理して各気筒毎の差回転平均値DNAVE#iを算出する。次に、これら各差回転平均値DNAVE#iのうちの最大値DNAVEMAXを判別して該最大値DNAVEMAXと各気筒毎の差回転平均値DNAVE#iとの差SDNAVE#iをそれぞれ算出する。そして、この最大値に対する各気筒毎の平均値差SDNAVE#iを失火判定レベルLVLMISと比較し、該失火判定レベルLVLMISよりも平均値差SDNAVE#iの大きい気筒を失火気筒と判別する。
【0056】
また、このとき、更に、空燃比センサの出力値としてO2センサ29の出力電圧O2Sに基づいて失火を判別し、失火を判別したとき、上記失火気筒の毎回失火と確定して、当該気筒の毎回失火と診断する。
【0057】
このO2センサ出力電圧O2Sによる失火診断に際しては、所定周期としてO2センサ出力電圧O2Sの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間のエンジン回転速度NEが算出されており、上述の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で、上記差回転DELNE#nを積算して、当該気筒#nの差回転積算値ΣDELNE#nとする(ΣDELNE#n←ΣDELNE#n+DELNE#n)。
【0079】
次いでステップS15で、失火診断の実行期間を与える点火回数CIGNをカウントアップする(CIGN←CIGN+1)。ここで、本ルーチンは、θ3クランクパルス入力毎すなわち180°CA毎に実行され、本実施の形態におけるエンジン1は4気筒エンジンであり、従って、本ルーチンの実行回数をカウントすることで、点火回数をカウントすることと実質的に同一となる。
【0080】
そして、ステップS16で、次の燃焼行程気筒に対する差回転の算出に備え、今回の回転速度MNXnを前回のエンジン回転速度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←ΣO2S+O2S)。
【0084】
次いでステップS22で、上記O2センサ出力電圧O2Snから前回のルーチン実行時にワークエリアにストアされた1回前のA/D変換時のO2センサ出力電圧O2Sn-1を減算し、この減算値の絶対値を、O2センサ出力電圧変化量の絶対値積算値DO2Sに加算して積算する(DO2S←DO2S+|O2Sn−O2Sn-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を判別して該最大値DNAVEMAXと各気筒毎の差回転平均値DNAVE#iとの差SDNAVE#iをそれぞれ算出する。そして、この最大値に対する各気筒毎の平均値差SDNAVE#iを失火判定レベルLVLMISと比較し、該失火判定レベルLVLMISよりも平均値差SDNAVE#iの大きい気筒を失火気筒と判別する。
【0087】
そして、失火気筒が判別されたときには、更に、点火回数が設定回数に達するまでの所定期間における上記O2センサ出力電圧積算値ΣO2Sに基づいてO2センサ出力電圧平均値O2AVEを算出し、該O2センサ出力電圧平均値O2AVEが第1の判定値LVLO2AVEに達していないとき、或いは、所定期間における上記O2センサ出力電圧変化量の絶対値積算値DO2Sが第2の判定値LVLDO2Sよりも大きいとき、失火と判別し、上記失火気筒の毎回失火と確定して、当該気筒の毎回失火と診断する。
【0088】
次に、図5に示す失火診断ルーチンについて説明する。
【0089】
この失火診断ルーチンは、所定クランク角毎(例えば、180°CA毎)或いは所定時間(例えば、5msec)毎に実行され、ステップS31で、上記点火回数カウント値CIGNを、設定回数IGN(例えば、400回)と比較する。
【0090】
上記設定回数IGNは、失火診断の実行周期を定めるものであり、後述する各気筒毎の差回転DELNE#iに対する平均処理、O2センサ出力電圧積算値ΣO2Sに基づくO2センサ出力電圧平均値O2AVEの算出処理によって、及び、上記O2センサセンサ出力電圧変化量の絶対値積算値DO2Sに対し、スナッチや外乱等によるエンジン回転変動の影響を排除し、且つ、加速等による一時的な失火による影響を排除し得る期間を与えるに適切な点火回数値を、予めシミュレーション或いは実験等により求め、この点火回数値を設定回数IGNとして設定し、固定データとしてROM42にメモリされているものである。
【0091】
すなわち、失火回数に直接依存する点火回数CIGNを採用し、この点火回数CIGNを上記設定回数IGNと比較して、失火診断の実行期間を定めることで、所定気筒の恒常的な失火すなわち毎回失火を確実に診断することが可能となる。
【0092】
そして、CIGN<IGNで、点火回数CIGNが設定回数IGNに達していないときには、そのままルーチンを抜け、一方、CIGN≧IGNで点火回数CIGNが設定回数IGNに達したとき、ステップS32へ進む。すなわち、点火回数CIGNが設定回数IGNに達する毎に、その設定回数IGNに相当する期間のデータに基づいて失火診断を行う。
【0093】
ステップS32では、エンジン運転状態が触媒保護のための燃料増量領域いわゆるフル増量域にあるか否かをフル増量係数KFULLによって判断する。
【0094】
周知のように、上記フル増量係数KFULLは、エンジン運転状態が高回転及び高負荷の少なくとも一方の状態のときに、燃料増量補正により触媒温度の異常上昇を防止して触媒を保護するためのものであり、燃料噴射量を定める燃料噴射パルス幅Tiの演算式における各種増量係数COEFの補正項として与えられる。
【0095】
上記燃料噴射パルス幅Tiは、周知のように、上記基本燃料噴射パルス幅Tpに、上記各種増量補正係数COEF及び空燃比フィードバック補正係数αを乗算して空燃比補正すると共に、空燃比学習補正係数KBLRCを乗算して学習補正し、更にインジェクタの無効噴射時間を補償する電圧補正パルス幅Tsを加算し、次式によって与えられる。
【0096】
Ti←Tp×COEF×α×KBLRC+Ts
そして、上記フル増量係数は、各種増量係数COEF中の補正項として与えられる。尚、上記各種増量係数COEFの演算式の一例を次式に示す。
【0097】
COEF←KST×(1+KFULL+KTW+KAS+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とをパラメータとするテーブルとして設定し、ROM42の一連のアドレスにストアされているものである。
【0100】
上記フル増量係数テーブルの一例を、図10に示す。このフル増量係数テーブルにおいては、図10に斜線で示すように、基本燃料噴射パルス幅Tpが大きいエンジン高負荷領域およびエンジン高回転領域との少なくとも一方の領域にあるとき、フル増量係数KFULLがKFULL>0に設定される。そして、この領域がフル増量係数KFULLによる燃料増量補正が行われる、いわゆるフル増量領域となる。このフル増量領域外においては、フル増量係数KFULLがKFULL=0に設定され、フル増量係数KFULLによる燃料増量補正は行われない。また、フル増量係数テーブルには、基本燃料噴射パルス幅Tpが大きくエンジン回転速度NEが高いほど、すなわちエンジン高負荷高回転であるほど、大きい値のフル増量係数KFULLがメモリされている。
【0101】
すなわち、本実施の形態においては、後述の処理によって、点火回数CIGNが設定回数IGNに達するまでの所定期間における各気筒毎の差回転DELNE#i(i=1〜4)を平均処理して各気筒毎の差回転平均値DNAVE#iを算出し、これら各差回転平均値DNAVE#iのうちの最大値DNAVEMAXを判別して該最大値DNAVEMAXと各気筒毎の差回転平均値DNAVE#iとの差SDNAVE#iをそれぞれ算出する。そして、この最大値に対する各気筒毎の平均値差SDNAVE#iを失火判定レベルLVLMISと比較することで、失火気筒を判別するのであり、失火を判定するための上記失火判定レベルLVLMISをエンジン高回転域においても厳密に設定し、判別した失火気筒が真に失火を生じているのか否かをO2センサ出力電圧O2Sに基づいて検証する。
【0102】
ここで、このエンジン高回転域は、触媒保護のための上記フル増量係数KFULLによる燃料増量補正を行うフル増量領域に適合する。
【0103】
そして、このフル増量領域においては、失火が生じていない無失火時には、フル増量係数KFULLによる燃料増量補正によって燃焼後の排気ガス空燃比がリッチとなりO2センサ29の出力電圧O2Sは、ほぼ一定のリッチ出力となる。これに対し、燃焼が行われない失火時には、排気ガス中の酸素濃度が増大するため、O2センサ出力電圧O2Sは、略リーン出力となる。
【0104】
従って、このフル増量係数KFULLによる触媒保護のためのフル増量領域においては、無失火時と失火時とのO2センサ出力電圧O2Sの差が大きく、O2センサ出力電圧O2Sに基づいて確実に失火を検証することが可能となる。
【0105】
上記ステップS32では、フル増量係数KFULLが0よりも大きいか否かによりエンジン運転領域が燃料増量領域にあるか否かを判断するが、これに代え、例えば、エンジン回転速度NEとエンジン負荷を表す基本燃料噴射パルス幅Tpとによる領域テーブルを採用し、この領域テーブルを参照することで、燃料増量領域判定を行うようにしてもよく、適宜の手段が採用できる。
【0106】
そして、KFULL=0の燃料増量領域外で条件非成立のときには、ステップS40へジャンプして、ステップS40〜S44で、各気筒の前記差回転積算値ΣDELNE#i、点火回数CIGN、O2センサ出力電圧積算値ΣO2S、O2センサ出力電圧変化量の絶対値積算値DO2S、O2センサ出力電圧サンプリング回数CO2Sをそれぞれクリアして(ΣDELNE#i←0、CIGN←0、ΣO2S←0、DO2S←0、CO2S←0)、ルーチンを抜ける。
【0107】
一方、上記ステップS32においてKFULL>0の燃料増量領域による条件成立時には、ステップS33へ進み、図6に示す失火気筒検出サブルーチンを実行し、エンジン回転変動として各気筒毎の差回転DELNE#iに基づき失火気筒を判別する。
【0108】
図6の失火気筒検出サブルーチンについて説明すると、ステップS51で、上記差回転算出ルーチンにおいて積算された点火回数CIGNが設定回数IGNに達した所定期間における各気筒#i(i=1〜4気筒)毎の差回転積算値ΣDELNE#iを読み出し、この気筒毎の差回転積算値ΣDELNE#iに基づいて、次式により、所定期間における各気筒毎の差回転平均値DNAVE#iをそれぞれ算出する。
【0109】
DNAVE#i←ΣDELNE#i/(IGN/N)
ここで、Nは気筒数であり、点火回数CIGNが設定回数IGNに達するまでの間に、各気筒毎に(IGN/N)回づつ差回転DELNEがそれぞれ積算される。従って、点火回数CIGNが設定回数IGNに達した所定期間における各気筒毎の差回転積算値ΣDELNE#iを(IGN/N)によりそれぞれ除算することで、この所定期間における各気筒毎の差回転平均値DNAVE#iを算出することが可能である。また、上記(IGN/N)は、既知であり、予めROM42に固定データとしてメモリされる。
【0110】
そして、ステップS52で、これら各気筒毎の差回転平均値DNAVE#iの大小関係を比較し、これら各差回転平均値DNAVE#iのうち最大のものを、最大値DNAVEMAXとする。
【0111】
すなわち、図11に示すように、例えば、所定期間(400点火)における各気筒毎の差回転平均値DNAVE#1,DNAVE#2,DNAVE#3,DNAVE#4のうち、#1気筒の差回転平均値DNAVE#1が最大であり、この#1気筒の差回転平均値DNAVE#1を最大値DNAVEMAXとして設定する。
【0112】
次いでステップS53へ進み、上記最大値DNAVEMAXから各気筒毎の差回転平均値DNAVE#iをそれぞれ減算して、この最大値DNAVEMAXに対する各気筒毎の平均値差SDNAVE#iを算出する(SDNAVE#i←DNAVEMAX−DNAVE#i)。
【0113】
そして、ステップS54で、各気筒毎の上記平均値差SDNAVE#iを、それぞれ失火判定レベルLVLMISと比較し、SDNAVE#i>LVLMISで失火判定レベルLVLMISよりも平均値差SDNAVE#iの大きい気筒を毎回連続失火中の失火気筒と判別し、ステップS55で、該当気筒の毎回連続失火を表す気筒別失火フラグFMIS#iをセットする(FMIS#i←1)。
【0114】
また、SDNAVE#i≦LVLMISで、平均値差SDNAVE#iが上記失火判定レベルLVLMIS以下の気筒については、少なくとも恒常的な毎回連続失火を生じていないと判断して、ステップS56で、該当気筒に対応する気筒別失火フラグFMIS#iをクリアして(FMIS#i←0)、失火診断ルーチン(図5)のステップS34へ進む。
【0115】
すなわち、気筒毎の差回転DELNE#iを直接用いずに、点火回数CIGNが設定回数IGNに達するまでの各気筒毎の差回転平均値DNAVE#iを採用することで、スナッチや外乱等による一時的なエンジン回転変動の影響を排除し、且つ、加速等による一時的な失火による影響を排除する。そして、各差回転平均値DNAVE#iのうちの最大値DNAVEMAXを判別して該最大値DNAVEMAXと各気筒毎の差回転平均値DNAVE#iとの差SDNAVE#iをそれぞれ算出することで、特定気筒の毎回連続失火を表す失火パラメータとして的確に反映させる。更に、この最大値DNAVEMAXに対する各気筒毎の平均値差SDNAVE#iを失火判定レベルLVLMISと比較して、気筒毎の毎回連続失火を判断するので、気筒毎の差回転平均値DNAVE#iを判定値(失火判定レベル)と比較して失火診断を行うよりも、毎回連続失火を表す失火パラメータとしての気筒毎の上記平均値差SDNAVE#iは、毎回連続失火の有無に応じて大きく変化しダイナミックレンジが大きく、従って、より的確に気筒別に毎回連続失火を判断することが可能となる。
【0116】
また、所定期間における差回転の単純平均を採用するため、失火診断に係るCPU41の演算負担を著しく低減することが可能となる。
【0117】
例えば、上述の図11の例では、#1気筒の差回転平均値DNAVE#1が最大最大値DNAVEMAXとなり、従って、#1気筒の平均値差SDNAVE#1は、SDNAVE#1=0rpmとなる。そして、この最大値DNAVEMAXに対する#2気筒の平均値差SDNAVE#2は約18rpm、#3気筒の平均値差SDNAVE#3は約25rpm、#4気筒の平均値差SDNAVE#4は約65rpmとなり、この場合は、#4気筒が毎回連続失火を生じていることが解る。
【0118】
しかし、エンジン高回転域(通常、5000rpm以上)においては、前述のように、クランクロータやクランク角センサの製造許容誤差及び取付許容誤差、並びに各気筒毎に燃焼圧のばらつき等に起因するエンジン回転速度のばらつきの影響が大きくなり、且つ、高回転域では慣性エネルギが大きいため失火時のエンジン回転変化量が小さく、失火判定が困難となる。
【0119】
従って、エンジン高回転域においては、判定値としての失火判定レベルLVLMISを厳密(小さく)に設定すると、各気筒の回転ばらつきによって実際には失火していないにも係わらず、失火と誤判定してしまう。また、これに対処するに、上記失火判定レベルLVLMISを大きく設定すると、逆に、実際の失火を検出することができなくなってしまう。いずれにしても、エンジン回転変化による失火判定では、エンジン高回転域において各気筒毎の毎回連続失火を適切に判定することができない。
【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センサ出力電圧O2Sに基づく失火診断を行うことができない。
【0124】
従って、O2センサ29が非活性のときには、上記ステップS40へジャンプして、ステップS40〜S44で、各気筒の差回転積算値ΣDELNE#i、点火回数CIGN、O2センサ出力電圧積算値ΣO2S、O2センサ出力電圧変化量の絶対値積算値DO2S、O2センサ出力電圧サンプリング回数CO2Sをそれぞれクリアして、ルーチンを抜ける。
【0125】
尚、このO2センサ29の活性判定は、例えば、O2センサ29の出力電圧O2Sが設定値以上或いは所定範囲の状態が設定以上継続しているとき、該O2センサ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においてO2AVE≧LVLO2AVEのときには、ステップS63へ進み、上記O2センサ出力電圧積算ルーチンにおいて積算されたO2センサ出力電圧変化量の絶対値積算値DO2Sを読み出し、この所定期間における上記O2センサ出力電圧変化量の絶対値積算値DO2Sを、該絶対値積算値DO2Sにより失火を判定するための第2の判定値LVLDO2Sと比較する。
【0131】
そして、DO2S>LVLDO2Sで、上記O2センサ出力電圧変化量の絶対値積算値DO2Sが第2の判定値LVLDO2Sよりも大きいときには、所定気筒の毎回連続失火による空燃比変動によりO2センサ出力電圧O2Sが変動しており、従って、所定気筒に毎回連続失火が生じていると判断して、同様に、上記ステップS64へ進み、上記気筒別失火フラグFMIS#iにより特定される該当気筒の毎回連続失火と確定し、バックアップRAM44にストアされる該当気筒の毎回連続失火確定を示す気筒別失火判定NGフラグFNG#iをセットして、失火診断ルーチンのステップS37へ進む。
【0132】
すなわち、エンジン回転変化による失火判定によって、特定気筒の毎回連続失火が判別されたとき、更にO2センサ出力電圧O2Sに基づく失火判定を行って失火を検証し、このO2センサ出力電圧O2Sによる失火判定により失火を判別したとき、上記特定気筒の毎回連続失火と確定する。
【0133】
ここで、エンジン運転状態が触媒保護のための燃料増量領域すなわちフル増量領域にあっても、上述のように、前記フル増量係数KFULLは、エンジン高負荷高回転であるほど、大きい値に設定され、このフル増量係数KFULLによる燃料増量が大きく、エンジン低回転或いはエンジン低負荷側に移行するほどフル増量係数KFULLは小さい値に設定され、燃料増量が少なくなる。
【0134】
上記フル増量係数KFULLの値が小さく燃料増量が少ないときの、無失火時のO2センサ出力電圧O2Sと特定気筒に毎回連続失火が生じている時のO2センサ出力電圧O2Sとの関係を、点火回数CIGNを時間軸とした図12のタイムチャートに示す。
【0135】
同図に示すように、無失火時は、上記フル増量係数KFULLによる燃料増量によりO2センサ出力電圧O2Sが略一定のリッチ出力となり、失火時は、排気ガス中の酸素濃度が増大しO2センサ出力電圧O2Sはリーン出力を継続する。
【0136】
従って、このO2センサ出力電圧O2Sを平均した上記O2センサ出力電圧平均値O2AVEは、無失火時には大きく、特定気筒の毎回連続失火時には、小さくなる。
【0137】
これに対し、上記O2センサ出力電圧変化量の絶対値積算値DO2Sは、フル増量係数KFULLの値が小さく燃料増量が少ないときには、失火の有無に係わらずO2センサ出力電圧O2Sの変動が少ないため、図13に示すように、無失火時および失火時共に、小さな値となる。従って、燃料増量が少ないときには、上記O2センサ出力電圧変化量の絶対値積算値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に示すように、上記O2センサ出力電圧変化量の絶対値積算値DO2Sは、無失火時には、O2センサ出力電圧O2Sが略一定のリッチ出力で変動が少ないため、小さい。また、毎回連続失火時には、O2センサ出力電圧O2Sの変動によりO2センサ出力電圧変化量の絶対値積算値DO2Sは大きくなる。
【0144】
従って、フル増量係数KFULLの値が大きく燃料増量が大きいときには、上記O2センサ出力電圧変化量の絶対値積算値DO2Sによって失火を判断することが可能であり、このとき、O2センサ出力電圧変化量の絶対値積算値DO2Sが上記第2の判定値LVLDO2Sを超えることで所定気筒に毎回連続失火が生じていることを判断できる。
【0145】
すなわち、上記O2センサ出力電圧平均値O2AVEとO2センサ出力電圧変化量の絶対値積算値との双方を判断することで、フル増量係数KFULLによる燃料増量の相違に係わらず、適切に失火を判断することが可能となる。
【0146】
一方、上記ステップS63において、DO2S≦LVLDO2Sのとき、すなわち、O2AVE≧LVLO2AVE且つ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との併用により失火を診断しているが、燃料増量領域外のときには、エンジン回転変化量のみによって失火診断を行うようにしてもよい。すなわち、触媒保護のための燃料増量領域外のときには、エンジン高回転域外であり、エンジン高回転域に対して慣性エネルギが小さく失火時のエンジン回転変化量が大きく、また、各気筒毎の燃焼圧のばらつきによる各気筒毎のエンジン回転のばらつきの影響が小さい。従って、このときには、エンジン回転変化量のみによって失火診断を行っても、診断精度上、問題ない。
【0158】
【発明の効果】
以上説明したように請求項1記載の発明によれば、所定クランク角毎のエンジン回転状態量を検出すると共に、現在の燃焼行程気筒を判別し、前回検出したエンジン回転状態量から今回検出したエンジン回転状態量を減算して上記燃焼行程気筒に対する回転状態量の差を算出する。そして、所定期間における各気筒毎の上記差回転状態量を平均処理して各気筒毎の差回転状態量平均値を算出し、これら各差回転状態量平均値のうちの最大値と各気筒毎の差回転状態量平均値との差をそれぞれ算出する。そして、この最大値に対する各気筒毎の平均値差を失火判定レベルと比較し、該失火判定レベルよりも平均値差が大きい気筒を失火気筒と判別する。更に、空燃比センサの出力値に基づいて失火を判別し、失火を判別したとき、上記失火気筒の毎回失火と確定して当該気筒の毎回失火と診断するので、エンジン回転変化による失火判別に際し、エンジン回転状態量の変化として気筒毎の回転状態量の差を直接用いず、所定期間における各気筒毎の差回転状態量平均値を採用するため、スナッチや外乱等による一時的なエンジン回転変動の影響を排除し、且つ、加速等による一時的な失火による影響を排除することができる。また、各差回転状態量平均値のうちの最大値と各気筒毎の差回転状態量平均値との差をそれぞれ算出し、この最大値に対する各気筒毎の平均値差を最終的な失火パラメータとするため、特定気筒の毎回連続失火を的確に反映させることができる。
【0159】
更に、この最大値に対する各気筒毎の平均値差を失火判定レベルと比較して、気筒毎の毎回連続失火を判断するので、気筒毎の差回転状態量平均値を判定値(失火判定レベル)と比較して失火診断を行うよりも、毎回連続失火を表す失火パラメータとしての気筒毎の上記平均値差は、毎回連続失火の有無に応じて大きく変化しダイナミックレンジが大きく、従って、より的確に気筒別に毎回連続失火を判別することができる効果を有する。
【0160】
その際、請求項記載の発明では、エンジン運転状態が触媒保護のための燃料増量領域にあるとき、エンジン回転状態量と空燃比センサ出力電圧とによる失火判別を行う。すなわち、触媒保護のための燃料増量領域はエンジン高回転域に適合し、この燃料増量領域下で無失火時には、燃料増量によって燃焼後の排気ガス空燃比がリッチとなり空燃比センサ出力値がほぼ一定のリッチ出力となり、また、燃焼が行われない失火時には、排気ガス中の酸素濃度が増大するため、空燃比センサ出力値が略リーン出力となる。従って、この触媒保護のための燃料増量領域においては、無失火時と失火時との空燃比センサ出力値の差が大きく、請求項記載の発明によれば、上記請求項1記載の発明の効果に加え、エンジン回転変化による失火判別結果を、空燃比センサ出力値に基づいて確実に検証することができる効果を有する。
【0161】
請求項記載の発明では、所定周期毎に上記空燃比センサの出力電圧及び該出力電圧の変化量の絶対値を各々積算する。そして、空燃比センサの出力値による失火診断に際し、エンジン運転状態が触媒保護のための燃料増量領域にあるとき、所定期間における上記空燃比センサ出力電圧の積算値に基づいて空燃比センサ出力電圧平均値を算出し、該空燃比センサ出力電圧平均値が第1の判定値に達していないとき、或いは、所定期間における上記空燃比センサ出力電圧変化量の絶対値積算値が第2の判定値よりも大きいとき、失火と判別するので、上記請求項1記載の発明の効果に加え、エンジン運転状態が触媒保護のための燃料増量領域にあって、燃料増量が少ないときには、失火の有無が所定期間における空燃比センサ出力電圧平均値に確実に反映されるため、この空燃比センサ出力電圧と第1の判定値との比較によって失火を的確に判断することができ、また、燃料増量が大きいときには、所定期間における空燃比センサ出力電圧変化量の絶対値積算値に失火の有無が確実に反映され、空燃比センサ出力電圧変化量の絶対値積算値と第2の判定値との比較によって失火を的確に判断することができ、従って、燃料増量の相違に係わらず、適切に失火を判断することができる効果を有する。
【0162】
また、請求項記載の発明では、上記各平均値を所定期間における単純平均によって算出するため、上記請求項1ないし請求項記載の発明の効果に加え、失火診断に係るCPUの演算負担を著しく低減することができる効果を有する。
【0163】
請求項記載の発明では、上記所定期間を、点火回数が所定回数に達する毎の期間とするので、上記請求項ないし請求項記載の発明の効果に加え、失火回数に直接依存する点火回数を採用し、この点火回数によって失火診断の実行期間周期が定められるため、スナッチや外乱等による影響、加速等による一時的な失火による影響を排除して、所定気筒の恒常的な失火すなわち所定気筒の毎回連続失火を確実に診断することができる効果を有する。
【0164】
その際、請求項記載では、上記回転状態量としてエンジン回転速度を用いるので、上記請求項1ないし請求項記載の発明を、従来のエンジンの失火診断装置に極めて容易に組み込むことができ、失火診断精度を向上することができる効果を有する。
【図面の簡単な説明】
【図1】本発明の基本構成図
【図2】気筒判別/エンジン回転速度算出ルーチンのフローチャート
【図3】差回転算出ルーチンのフローチャート
【図4】O2センサ出力電圧積算ルーチンのフローチャート
【図5】失火診断ルーチンのフローチャート
【図6】エンジン回転変化に基づく失火判別による失火気筒検出サブルーチンのフローチャート
【図7】O2センサ出力電圧に基づく失火検証サブルーチンのフローチャート
【図8】クランクパルス、カムパルス、燃焼行程気筒、点火タイミング、及び燃料噴射タイミングの関係を示すタイムチャート
【図9】各気筒毎の差回転の算出状態を示すタイミングチャート
【図10】フル増量係数テーブルの説明図
【図11】各気筒毎の差回転DELNE#i、差回転平均値DNAVE#i、最大値DNAVEMAX、及び、最大値DNAVEMAXに対する各気筒毎の平均値差SDNAVE#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 設定回数(所定回数)
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to an engine misfire diagnosis apparatus for diagnosing misfire based on a change in an engine rotation state amount for each predetermined crank angle and an output value of an air-fuel ratio sensor.
[0002]
[Prior art]
2. Description of the Related Art Conventionally, as an engine misfire diagnosis apparatus, an engine misfire diagnosis apparatus that diagnoses engine misfire based on a change in an engine rotation state amount for each predetermined crank angle has been employed.
[0003]
That is, there is a strong correlation between the in-cylinder pressure (combustion pressure) of the cylinder during the combustion stroke and the engine rotation between the combustion stroke and the next combustion stroke. A misfire can be determined for each cylinder.
[0004]
However, because there are manufacturing tolerances, mounting tolerances, etc., in the crank rotor and crank angle sensor for detecting the crank angle that is the basis for obtaining the engine rotational state quantity, the detected engine rotational state quantity is not included. Variations occur, particularly in the high engine speed range, and this effect becomes large, making it difficult to accurately detect misfire.
[0005]
In order to cope with this, the present applicant has proposed a technique according to Japanese Patent Laid-Open No. 6-42397.
[0006]
In this prior example, the engine rotation speed (engine rotation speed) is used as the engine rotation state quantity, the difference in engine rotation speed for each predetermined crank angle between cylinders, that is, the differential rotation DELNE is calculated, and the current combustion stroke cylinder # By subtracting the differential rotation correction value AVEDNX for the cylinder #n calculated one cycle (720 ° CA) by statistical processing using a weighted average from the differential rotation DELNEn of n, and calculating the corrected differential rotation DELNAn for the cylinder. The effects of manufacturing tolerances, mounting tolerances, etc. of the crank rotor and crank angle sensor for detecting the crank angle are eliminated. Further, a correction differential rotation change DDNAnn for the cylinder #n is calculated by subtracting the correction differential rotation DELNAn-1 of the misfire diagnosis target cylinder # n-1 before the one combustion stroke from the correction differential rotation DELNAn, and this correction differential rotation is calculated. The change DDNEAn is compared with the misfire determination level LVLMIS set based on the engine operating state, and the correction differential rotation change DDNEAn-1 for the misfire diagnosis target cylinder # n-1 calculated at the time of the previous routine execution is negative. Compare with misfire determination level-LVLMIS. When the current corrected differential rotation change DDNEAn of the combustion stroke cylinder #n is equal to or higher than the misfire determination level LVLMIS and the corrected differential rotation change DDNEAn-1 of the misfire diagnosis target cylinder # n-1 is equal to or lower than the negative misfire determination level, Judgment is made on misfiring of cylinder # n-1 to be diagnosed.
[0007]
However, in addition to variations in engine rotation state (engine rotation speed) due to manufacturing tolerances, mounting tolerances, etc. of the crank rotor and crank angle sensor, engine rotation state amounts due to variations in combustion pressure for each cylinder There are variations.
[0008]
That is, the difference in intake air distribution ratio for each cylinder due to the complexity of the intake pipe shape, the intake air interference between the cylinders, the difference in the combustion temperature for each cylinder caused by the cooling route by the cooling water, the combustion chamber volume and the piston of each cylinder Variation in shape, slight variation in air-fuel ratio of each cylinder resulting from differences in fuel injection amount due to injector manufacturing error, etc., and these causes cause variation in combustion pressure for each cylinder, Variations in engine rotation occur. Since the inertia energy is large in the high engine speed range, the amount of change in the engine rotation at the time of misfire is small, and misfire determination becomes difficult.
[0009]
Therefore, if the misfire determination level as the determination value is set strictly, the misfire may be erroneously determined due to the above factors even though the misfire has not actually occurred. In order to cope with this, if the misfire determination level as a determination value is set loosely, misfire cannot be detected at the time of misfire.
[0010]
For this reason, in JP-A-4-318256, when the engine is in a low engine speed range, a misfire diagnosis is performed based on the engine speed, while the oxygen concentration in the exhaust gas increases when a misfire occurs in the engine. At least in the high engine speed range, a technique for performing misfire diagnosis based on the oxygen concentration in the exhaust gas is disclosed.
[0011]
[Problems to be solved by the invention]
However, in the preceding example, since the misfire diagnosis is performed only based on the oxygen concentration in the exhaust gas at least in the high engine speed range, it can be detected that misfire has occurred, but the misfire in which misfire has occurred. There is a disadvantage that the cylinder cannot be identified.
[0012]
In other words, the misfire determination itself can be detected without any significant influence on the engine speed if the oxygen sensor (O2 sensor) is active and a certain amount of engine load is applied. The time from the occurrence of misfire to the change in oxygen concentration varies depending on the oxygen sensor mounting position, engine rotational speed (exhaust gas flow rate), and the like. Therefore, the time from the occurrence of misfire until the change in output of the oxygen sensor occurs is uneven, and the misfire cylinder cannot be determined.
[0013]
In view of the above circumstances, an object of the present invention is to provide an engine misfire diagnosis apparatus that can perform a strict misfire determination and reliably determine a misfire cylinder in the entire engine rotation range.
[0015]
[Means for Solving the Problems]
  To achieve the above objective,Claim1The engine misfire diagnostic device according to the invention described1'sAs shown in the basic configuration diagram, PlaceEngine rotation state amount detection means for detecting the engine rotation state amount for each constant crank angle, cylinder determination means for determining the current combustion stroke cylinder, and subtracting the currently detected engine rotation state amount from the previously detected engine rotation state amount Differential rotation state quantity calculating means for calculating a difference in rotational state quantity with respect to the combustion stroke cylinder, and averaging the differential rotation state quantity for each cylinder in a predetermined period to obtain an average differential rotation state quantity value for each cylinder. The difference rotation state quantity average value calculating means to calculate, and the difference between the maximum value of the respective difference rotation state quantity average values and the difference rotation state quantity average value for each cylinder, respectively, A first misfire determination means for comparing an average value difference for each cylinder with a misfire determination level and determining a cylinder having a larger average value difference than the misfire determination level as a misfire cylinder, and misfire based on an output value of an air-fuel ratio sensor. Discriminate And a second misfire determination means, and a misfire diagnosis means for determining that the misfire of the misfire cylinder is determined every time when the misfire is determined based on an output value of the air-fuel ratio sensor and diagnosing the misfire of the cylinder every time. And
[0016]
  Claim2An engine misfire diagnosis apparatus according to the invention described in claim1In the described invention, each of the misfire determination means performs misfire determination when the engine operating state is in the fuel increase region.
[0017]
  Claim3An engine misfire diagnosis apparatus according to the invention described in claim1In the invention described above, the second misfire determination unit includes an integration unit that integrates the output voltage of the air-fuel ratio sensor and the absolute value of the change amount of the output voltage every predetermined period, and the second misfire determination unit includes a fuel increase amount when the engine operating state is increased. When the air-fuel ratio sensor output voltage average value for a predetermined period is calculated and the air-fuel ratio sensor output voltage average value does not reach the first determination value, When the absolute value integrated value of the change amount is larger than the second determination value, it is determined that misfire has occurred.
[0018]
  Claim4An engine misfire diagnosis apparatus according to the invention described in claim1 toClaim3In the described invention, each of the average values is calculated by a simple average over a predetermined period.
[0019]
  Claim5An engine misfire diagnosis apparatus according to the invention described in claim1Or claims4In the described invention, the predetermined period is a period every time the number of ignition reaches a predetermined number.
[0020]
  Claim6An engine misfire diagnosis apparatus according to the invention described in claims 1 to5In the described invention, the engine rotation state quantity is an engine rotation speed.
[0023]
  Claim1In the described invention, the engine rotation state amount for each predetermined crank angle between the cylinders is detected, the current combustion stroke cylinder is determined, and the currently detected engine rotation state amount is subtracted from the previously detected engine rotation state amount. A difference in rotational state amount with respect to the combustion stroke cylinder is calculated. Then, the differential rotation state quantity for each cylinder in the predetermined period is averaged to calculate a differential rotation state quantity average value for each cylinder, and the maximum value of these differential rotation state quantity average values and each cylinder are calculated. The difference from the average value of the difference in rotation state is calculated. Then, an average value difference for each cylinder with respect to the maximum value is compared with a misfire determination level, and a cylinder having a larger average value difference than the misfire determination level is determined as a misfire cylinder. Further, misfire is determined based on the output value of the air-fuel ratio sensor, and when misfire is determined, the misfire is determined every time for the misfire cylinder, and the misfire is diagnosed every time for the cylinder.
[0024]
  At this time, the claim2In the described invention, when the engine operation state is in the fuel increase region for catalyst protection, misfire determination is performed based on the engine rotation state amount and the air-fuel ratio sensor output value.
[0025]
  Claims3In the described invention, the output voltage of the air-fuel ratio sensor and the absolute value of the change amount of the output voltage are integrated for each predetermined period. When the misfire diagnosis is performed based on the output value of the air-fuel ratio sensor, when the engine operating state is in the fuel increase region for catalyst protection, the air-fuel ratio sensor output voltage average is calculated based on the integrated value of the air-fuel ratio sensor output voltage for a predetermined period. When the average value of the air-fuel ratio sensor output voltage does not reach the first determination value, or the absolute value integrated value of the air-fuel ratio sensor output voltage change amount in a predetermined period is greater than the second determination value. Is also determined to be misfire.
[0026]
  Claims4In the described invention, each average value is calculated by a simple average over a predetermined period.
[0027]
  And claims5In the described invention, the predetermined period is a period each time the number of ignitions reaches a predetermined number.6In the description, the engine rotational speed is adopted as the rotational state quantity.
[0028]
DETAILED DESCRIPTION OF THE INVENTION
Hereinafter, an embodiment of the present invention will be described with reference to FIGS.
[0029]
First, the overall configuration of the engine will be described with reference to FIG. In the figure, reference numeral 1 denotes an engine, which is a horizontally opposed four-cylinder gasoline engine in this embodiment. Cylinder heads 2 are provided on both the left and right banks of the cylinder block 1a of the engine 1, and an intake port 2a and an exhaust port 2b are formed in each cylinder head 2.
[0030]
In the intake system of the engine 1, an intake manifold 3 is communicated with each intake port 2a, and a throttle chamber 5 is communicated with the intake manifold 3 via an air chamber 4 in which intake passages of the respective cylinders are gathered. An air cleaner 7 is attached to the upstream side of the throttle chamber 5 via an intake pipe 6, and the air cleaner 7 is communicated with an air intake chamber 8.
[0031]
The throttle chamber 5 is provided with a throttle valve 5a that is linked to an accelerator pedal. A bypass passage 9 that bypasses the throttle valve 5a is connected to the intake pipe 6. The idle speed is adjusted by adjusting the amount of bypass air flowing through the bypass passage 9 according to the valve opening degree during idle. An idle speed control valve (ISC valve) 10 for controlling the engine is interposed.
[0032]
Further, an injector 11 is disposed immediately upstream of the intake port 2a of each cylinder of the intake manifold 3. The injector 11 communicates with a fuel tank 13 through a fuel supply path 12, and an in-tank type fuel pump 14 is provided in the fuel tank 13. The fuel from the fuel pump 14 is pumped to the injector 11 and the pressure regulator 16 through the fuel filter 15 interposed in the fuel supply passage 12, and is returned from the pressure regulator 16 to the fuel tank 13 so as to The fuel pressure to the injector 11 is adjusted to a predetermined pressure.
[0033]
On the other hand, a spark plug 17 that exposes the discharge electrode at the tip to the combustion chamber is attached to each cylinder of the cylinder head 2, and an igniter is connected to the spark plug 17 via an ignition coil 18 provided for each cylinder. 19 is connected.
[0034]
Further, as an exhaust system of the engine 1, an exhaust pipe 21 is communicated with a collecting portion of the exhaust manifold 20 communicating with each exhaust port 2 b of the cylinder head 2, and a catalytic converter 22 is interposed in the exhaust pipe 21 so that the muffler 23 is communicated.
[0035]
Next, sensors for detecting the engine operating state will be described. A thermal intake air amount sensor 24 using a hot wire or a hot film is interposed immediately downstream of the air cleaner 7 of the intake pipe 6. Further, a throttle valve 5 a provided in the throttle chamber 5 is connected to a throttle valve 5 a. A throttle sensor 25 having a built-in opening sensor 25a and an idle switch 25b that is turned on when the throttle valve 5a is fully closed is connected.
[0036]
A knock sensor 26 is attached to the cylinder block 1 a of the engine 1, a cooling water temperature sensor 28 is exposed to a cooling water passage 27 communicating with the left and right banks of the cylinder block 1 a, and further upstream of the catalytic converter 22. An O2 sensor 29 is provided as an example of the air-fuel ratio sensor.
[0037]
In addition, a crank angle sensor 32 is provided on the outer periphery of a crank rotor 31 that is axially attached to the crankshaft 30 of the engine 1, and further, a cam rotor 34 that is provided continuously with a camshaft 33 that rotates 1/2 with respect to the crankshaft 30. In addition, a cam angle sensor 35 for cylinder discrimination is provided.
[0038]
As shown in FIG. 17, the crank rotor 31 has protrusions 31a, 31b, 31c formed on the outer periphery thereof, and these protrusions 31a, 31b, 31c are connected to the cylinders (# 1, # 2 cylinders and # 3, # 3). (# 4 cylinder) before compression top dead center (BTDC) θ1, θ2, θ3. In the present embodiment, θ1 = 97 ° CA, θ2 = 65 ° CA, and θ3 = 10 ° CA.
[0039]
Further, as shown in FIG. 18, cylinder discrimination protrusions 34a, 34b and 34c are formed on the outer periphery of the cam rotor 34, and the protrusion 34a is located after compression top dead center (ATDC) θ4 of the # 3 and # 4 cylinders. The projection 34b is composed of three projections, and the first projection is formed at the position of ATDCθ5 of the # 1 cylinder. Further, the projection 34c is composed of two projections, and the first projection is formed at the position of ATDCθ6 of the # 2 cylinder. In the present embodiment, θ4 = 20 ° CA, θ5 = 5 ° CA, and θ6 = 20 ° CA.
[0040]
Then, as shown in the time chart of FIG. 8, the crank rotor 31 and the cam rotor 34 are rotated by the rotation of the crankshaft 30 and the camshaft 33 as the engine is operated, and each protrusion of the crank rotor 31 is connected to the crank angle sensor 32. And crank pulses of θ1, θ2, and θ3 (BTDC 97 °, 65 °, and 10 °) are output every 1/2 engine rotation (180 ° CA). On the other hand, each projection of the cam rotor 34 is detected by the cam angle sensor 35 between the θ3 crank pulse and the θ1 crank pulse, and a predetermined number of cam pulses are output from the cam angle sensor 35.
[0041]
Then, in an electronic control unit 40 (see FIG. 19) to be described later, an engine speed (engine speed) NE is calculated based on the input interval time Tθ of the crank pulse output from the crank angle sensor 32, and each Based on the pattern of the combustion stroke order of the cylinders (for example, # 1 cylinder → # 3 cylinder → # 2 cylinder → # 4 cylinder) and the value obtained by counting the cam pulses from the cam angle sensor 35 by the counter, Cylinder discrimination such as stroke cylinder, fuel injection target cylinder and ignition target cylinder is performed.
[0042]
Calculation of control amounts for actuators such as the injector 11, spark plug 17, and ISC valve 10, and output of control signals, that is, engine control such as fuel injection control, ignition timing control, idle speed control, etc., are performed as shown in FIG. This is performed by a control unit (ECU) 40.
[0043]
The ECU 40 is composed mainly of a microcomputer in which a CPU 41, a ROM 42, a RAM 43, a backup RAM 44, a counter / timer group 45, and an I / O interface 46 are connected to each other via a bus line, and supplies stabilized power to each part. Peripheral circuits such as a constant voltage circuit 47, a drive circuit 48 connected to the I / O interface 46, and an A / D converter 49 are incorporated.
[0044]
The counter / timer group 45 is a free-run counter, various counters such as a cam angle sensor signal (cam pulse) input counter, a fuel injection timer, an ignition timer, and a periodic interrupt for generating a periodic interrupt. Various timers such as timers, timers for measuring the crank angle sensor signal (crank pulse) interval, and watchdog timers for monitoring system anomalies are collectively referred to for convenience, and various other software counters and timers are used. .
[0045]
The constant voltage circuit 47 is connected to the battery 51 via a first relay contact of a power relay 50 having two relay contacts. The relay coil of the power relay 50 is connected to the battery 51 via an ignition switch 52. It is connected. The constant voltage circuit 47 is directly connected to the battery 51. When the ignition switch 52 is turned on and the contact of the power relay 50 is closed, power is supplied to each part in the ECU 40. On the other hand, the ignition switch Regardless of whether 52 is ON or OFF, the backup RAM 44 is always supplied with backup power. Further, the fuel pump 14 is connected to the battery 51 through a relay contact of the fuel pump relay 53. A power line for supplying power from the battery 51 to each actuator is connected to the second relay contact of the power relay 50.
[0046]
The input port of the I / O interface 46 includes an idle switch 25b, a knock sensor 26, a crank angle sensor 32, a cam angle sensor 35, a vehicle speed sensor 36 for detecting a vehicle speed, and a starter switch for detecting a start state. 37, and the intake air amount sensor 24, throttle opening sensor 25a, cooling water temperature sensor 28, and O2 sensor 29 are connected via the A / D converter 49, and the battery voltage VB. Is input and monitored.
[0047]
On the other hand, at the output port of the I / O interface 46, an alarm lamp 38 is provided on the relay coil of the fuel pump relay 53, the ISC valve 10, the injector 11, and an instrument panel (not shown) to centrally display various alarms. Are connected via the drive circuit 48 and the igniter 19 is connected.
[0048]
Further, an external connection connector 55 is connected to the I / O interface 46. By connecting a serial monitor (portable failure diagnosis device) 60 to the external connection connector 55, the ECU 40 is connected to the ECU 40 by the serial monitor 60. By making use of the I / O data and the self-diagnosis function of the ECU 40, it is possible to make a diagnosis by reading out the failure part including the cylinder misfire determination NG flag FNG # i, which will be described later, indicating the misfire cylinder stored in the backup RAM 44, and the trouble data indicating the failure content Yes. Further, the trouble monitor data can be initially set (cleared) by the serial monitor 60.
[0049]
The trouble data diagnosis and initial set by the serial monitor 60 are described in detail in Japanese Patent Publication No. 7-76730 by the present applicant.
[0050]
In the CPU 41, in accordance with a control program stored in the ROM 42, the detection signals from the sensors and switches inputted through the I / O interface 46, the battery voltage, etc. are processed, and various data stored in the RAM 43, Based on various learning value data stored in the backup RAM 44, fixed data stored in the ROM 42, etc., the fuel injection amount, ignition timing, duty ratio of the drive signal for the ISC valve 10, etc. are calculated, fuel injection control, Engine control such as ignition timing control and idle speed control is performed.
[0051]
In such an engine control system, the ECU 40 performs a misfire diagnosis based on the change in the engine rotation state quantity and the output value (output voltage) of the O2 sensor 29.
[0052]
That is, a change in the engine rotation state amount for each predetermined crank angle is detected, and the cylinder is determined. Then, the change in the engine rotation state amount for each cylinder is compared with the misfire determination level, and misfire is determined for each cylinder. Further, misfire is determined based on the output voltage O2S of the O2 sensor 29 as the output value of the air-fuel ratio sensor. When the misfire of a predetermined cylinder is determined based on the change in the engine rotation state amount and the misfire is determined based on the O2 sensor output voltage O2S, the misfire of the cylinder is diagnosed.
[0053]
That is, when the change in the engine rotation state amount for each cylinder is compared with the misfire determination level to determine misfire for each cylinder, and when misfire is determined for a predetermined cylinder, O2 indicating the oxygen concentration in the exhaust gas is further displayed. It is determined whether misfire has occurred based on the sensor output voltage O2S. Then, because the misfire of the corresponding cylinder is determined and diagnosed based on the consistency of these discrimination results, the misfire judgment level is set strictly (small) in the high engine speed range, for example, misfire due to variations in engine rotation of each cylinder. Even if it is determined that the misfire of the predetermined cylinder is not performed, this is verified by the misfire diagnosis based on the O2 sensor output voltage O2S, so that the erroneous diagnosis can be surely prevented.
[0054]
In addition, when there is a true misfire, misfire diagnosis is also performed by the misfire diagnosis by the O2 sensor output voltage O2S. Therefore, the misfire diagnosis accuracy can be improved by synergy with the strict setting of the misfire determination level, and Even in the high engine speed range, it becomes possible to determine the misfire cylinder.
[0055]
More specifically, in the present embodiment, the current combustion stroke cylinder #n is determined based on the crank pulse and the cam pulse output from the crank angle sensor 32 and the cam angle sensor 35, respectively. Then, the engine rotation speed MNXn calculated this time is adopted as the engine rotation state quantity for each predetermined crank angle between BTDC θ2 and θ3 between the cylinders, that is, between the θ2 and θ3 crank pulse inputs. Is subtracted from the previous engine rotational speed MNXn-1 in the same section to calculate the rotational speed difference as the misfire parameter of the combustion stroke cylinder #n, that is, the differential rotational speed DELNE # n with respect to the cylinder #n. Then, the differential rotation DELNE # i (i = 1 to 4) for each cylinder in a predetermined period until the number of ignitions reaches the set number is averaged to calculate a differential rotation average value DNAVE # i for each cylinder. Next, the maximum value DNAVEMAX among these differential rotation average values DNAVE # i is discriminated, and the difference SDNAVE # i between the maximum value DNAVEMAX and the differential rotation average value DNAVE # i for each cylinder is calculated. Then, the average value difference SDNAVE # i for each cylinder with respect to the maximum value is compared with the misfire determination level LVLMIS, and a cylinder having an average value difference SDNAVE # i larger than the misfire determination level LVLMIS is determined as a misfire cylinder.
[0056]
Further, at this time, misfire is further determined based on the output voltage O2S of the O2 sensor 29 as the output value of the air-fuel ratio sensor, and when misfire is determined, it is determined that the misfire of the misfire cylinder every time, and every time the cylinder is in question. Diagnose a misfire.
[0057]
In the misfire diagnosis using the O2 sensor output voltage O2S, the absolute values of the O2 sensor output voltage O2S and the change amount of the output voltage O2S are integrated for each A / D conversion input of the O2 sensor output voltage O2S as a predetermined period. Then, the O2 sensor output voltage average value O2AVE is calculated based on the integrated value of the O2 sensor output voltage O2S in a predetermined period in which the number of ignitions reaches the set number, and the O2 sensor output voltage average value O2AVE reaches the first determination value. If the absolute value integrated value DO2S of the O2 sensor output voltage change amount in the predetermined period is larger than the second determination value, it is determined that the misfire has occurred.
[0058]
The misfire diagnosis based on the engine speed change for each cylinder and the O2 sensor output voltage O2S is performed when the engine operation state is in the fuel increase region for catalyst protection.
[0059]
That is, the misfire determination level LVLMIS for determining misfire based on a change in engine rotation speed is strictly set even in the engine high rotation range, and the misfire cylinder determined by the change in rotation speed for each cylinder has truly misfired. Whether the engine is high or not is verified based on the O2 sensor output voltage O2S.
[0060]
In this full increase region, when there is no misfire, where no misfire has occurred, the exhaust gas air-fuel ratio after combustion becomes rich due to the increase in fuel and the output voltage O2S of the O2 sensor 29 becomes a substantially constant rich output. Sometimes the oxygen concentration in the exhaust gas increases, resulting in a substantially lean output. Therefore, in the full increase region for protecting the catalyst, there is a large difference in the O2 sensor output voltage O2S between the time of no misfiring and the time of misfiring, so that misfire can be reliably verified based on the O2 sensor output voltage O2S. It becomes possible.
[0061]
That is, the ECU 40 has functions of a rotational state quantity change detecting means, a cylinder judging means, a first misfire judging means, a second misfire judging means, and a misfire diagnostic means according to the present invention, and further calculates a differential rotational state quantity. Also, functions as means, differential rotation state quantity average value calculation means, and integration means are realized.
[0062]
Hereinafter, the misfire diagnosis process according to the present invention executed by the ECU 40 will be described with reference to the flowcharts shown in FIGS.
[0063]
First, when the ignition switch 52 is turned on and the ECU 40 is powered on, the system is initialized, and the flags and counters except for trouble data and various learning values stored in the backup RAM 44 are initialized. It becomes. When the starter switch 37 is turned on and the engine is started, a cylinder discrimination / engine rotation speed calculation routine shown in FIG. 2 is executed for each crank pulse input from the crank angle sensor 32.
[0064]
In this cylinder discrimination / engine rotation speed calculation routine, when the crank rotor 31 rotates and a crank pulse is input from the crank angle sensor 32 in accordance with engine operation, first, in step S1, the crank pulse input this time is θ1. , Θ2, and θ3 are identified based on the cam pulse input pattern from the cam angle sensor 35, and in step S2, the current combustion stroke cylinder is determined from the crank pulse and cam pulse input pattern. Cylinder discrimination such as ignition target cylinder and fuel injection target cylinder is performed.
[0065]
That is, as shown in the time chart of FIG. 8, for example, if there is a cam pulse input between the previous crank pulse input and the current crank pulse input, the current crank pulse is a θ1 crank pulse. Further, the crank pulse to be input next time can be identified as the θ2 crank pulse.
[0066]
In addition, when there is no cam pulse input between the previous and current crank pulse inputs, and there is a cam pulse input between the previous and previous crank pulse inputs, the current crank pulse can be identified as the θ2 crank pulse and is input next time. The crank pulse can be distinguished from the θ3 crank pulse. Also, if there is no cam pulse input between the previous time and this time, and between the previous and the previous crank pulse input, the crank pulse input this time can be identified as the θ3 crank pulse, and the crank pulse input next time is Can be distinguished from θ1 crank pulse.
[0067]
Further, when three cam pulses are input between the previous and current crank pulse inputs (θ5 cam pulse corresponding to the protrusion 34b), the next compression top dead center is the # 3 cylinder, and the current combustion stroke cylinder is # 1. It can be determined that the cylinder and ignition target cylinder are the # 3 cylinder, and the fuel injection target cylinder is the second # 4 cylinder. When two cam pulses are input between the previous and current crank pulse inputs (θ6 cam pulse corresponding to the projection 34c), the next compression top dead center is the # 4 cylinder, and the current combustion stroke cylinder is the # 2 cylinder. It can be determined that the ignition target cylinder is the # 4 cylinder and the fuel injection target cylinder is the # 3 cylinder.
[0068]
In addition, when one cam pulse is input between the previous and current crank pulse inputs (θ4 cam pulse corresponding to the protrusion 34a) and the previous compression top dead center determination is # 4 cylinder, the next compression top dead center Is the # 1 cylinder, the current combustion stroke cylinder can be identified as the # 4 cylinder, the ignition target cylinder can be identified as the # 1 cylinder, and the fuel injection cylinder can be identified as the # 2 cylinder. Similarly, when one cam pulse is input between the previous and current crank pulse inputs and the previous compression top dead center determination is # 3 cylinder, the next compression top dead center is # 2 cylinder, It can be determined that the combustion stroke cylinder is the # 3 cylinder, the ignition target cylinder is the # 2 cylinder, and the fuel injection target cylinder is the # 1 cylinder.
[0069]
In the four-cycle four-cylinder engine 1 of this embodiment, the combustion stroke is in the order of cylinders # 1 → # 3 → # 2 → # 4, and as shown in the time chart of FIG. If the combustion stroke cylinder #n is # 1, the ignition target cylinder reaches compression top dead center # n + 1 = # 3 cylinder, and the fuel injection target cylinder at this time is # n + 3 = #, which is the next two cylinders. It becomes 4 cylinders. Then, the current cylinder discrimination result of the combustion stroke cylinder #n is referred to in the differential rotation calculation routine of FIG. 3 executed for each θ3 crank pulse input, and the differential rotation DELNE # n for the corresponding fuel stroke cylinder #n is calculated. Is accumulated.
[0070]
Although not described in detail here, the ignition timing for the corresponding cylinder # n + 1 is set according to the discrimination result of the ignition target cylinder # n + 1, and ignition timing control is performed for each cylinder. Further, the discrimination result of the fuel injection target cylinder # n + 3 cylinder is referred to in a fuel injection amount setting routine (not shown) executed every predetermined cycle, and the fuel injection amount is set for each cylinder.
[0071]
Thereafter, the process proceeds from step S2 to step S3, and the time from the previous crank pulse input to the current crank pulse input measured by the crank pulse input interval timing timer, that is, the crank pulse input interval time (θ1 crank pulse and θ2 crank The pulse input interval time Tθ12, θ2 crank pulse and θ3 crank pulse input interval time Tθ23, or θ3 crank pulse and θ1 crank pulse input interval time Tθ31) are read out, and the crank pulse input interval time Tθ is detected.
[0072]
Next, the process proceeds to step S4, in which the crank pulse angle corresponding to the crank pulse identified this time is read out, and the current engine speed (engine speed) NE is determined based on the crank pulse angle and the crank pulse input interval time Tθ. Is stored at a predetermined address in the RAM 43 and the routine is exited. The angle between the crank pulses is known and is stored in advance as fixed data in the ROM 42. In the present embodiment, the angle between the θ1 crank pulse and the θ2 crank pulse is 32 ° CA, The angle between the θ2 crank pulse and the θ3 crank pulse is 55 ° CA, and the angle between the θ3 crank pulse and the θ1 crank pulse is 93 ° CA. In consideration of the engine start time, the engine speed NE is calculated at, for example, 150 rpm or more.
[0073]
Then, in the differential rotation calculation routine shown in FIG. 3 executed for each θ3 crank pulse input, each data of the combustion stroke cylinder #n and the engine rotational speed NE is read, and the differential rotation DELNE # for the cylinder #n is read. n is calculated, and this differential rotation DELNE # n is integrated.
[0074]
Here, the differential rotation calculation routine is executed in response to the θ3 crank pulse input. At this time, BTDCθ2 based on the input interval time Tθ23 between the θ2 crank pulse and the θ3 crank pulse by the cylinder discrimination / engine speed calculation routine. , Θ3 is calculated, and the differential rotation DELNE # n representing the misfire parameter for the cylinder #n is calculated based on the engine speed NE between BTDC θ2 and θ3.
[0075]
In this differential rotation calculation routine, first, in step S11, the current combustion stroke cylinder data #n that has been subjected to cylinder determination in the cylinder determination / engine rotation speed calculation routine is read to identify the current combustion stroke cylinder #n. .
[0076]
In step S12, the current engine speed NE, that is, the latest engine speed NE between BTDC θ2 and θ3, is read out and set as the engine speed MNXn corresponding to the current combustion stroke cylinder #n (MNXn ← NE).
[0077]
Next, the process proceeds to step S13, and from the engine speed MNXn corresponding to the current cylinder #n set in step S12, the cylinder # n-1 before the one combustion stroke set in the previous routine execution and stored in the work area. The engine rotational speed MNXn−1 corresponding to is subtracted, and the change in engine rotational speed at each predetermined crank angle between the cylinders, that is, the differential rotational speed DELNE # n with respect to the current combustion stroke cylinder #n is calculated (DELNE # n ← MNXn). -MNXn-1).
[0078]
In step S14, the differential rotation DELNE # n is integrated to obtain a differential rotation integrated value ΣDELNE # n for the cylinder #n (ΣDELNE # n ← ΣDELNE # n + DELNE # n).
[0079]
Next, in step S15, the number of ignition times CIGN giving the misfire diagnosis execution period is counted up (CIGN ← CIGN + 1). Here, this routine is executed every θ3 crank pulse input, that is, every 180 ° CA, and the engine 1 in this embodiment is a four-cylinder engine. Therefore, by counting the number of executions of this routine, the number of ignitions is increased. Is substantially the same as counting.
[0080]
In step S16, in preparation for the calculation of the differential rotation for the next combustion stroke cylinder, the current rotational speed MNXn is stored in the work area as the previous engine rotational speed MNXn-1 (MNXn-1 ← MNXn), and the routine is exited. .
[0081]
With the above differential rotation calculation routine, as shown in FIG. 9, the differential rotation DELNE is calculated for each cylinder, and the differential rotation integrated value ΣDELNE # i corresponding to each cylinder #i (i = 1 to 4 cylinders). Is calculated.
[0082]
On the other hand, FIG. 4 is an O2 sensor output voltage integration routine, which is executed for each A / D conversion input of the output voltage O2S of the O2 sensor 29, and calculates the absolute value of the O2 sensor output voltage O2S and the change amount of the output voltage O2S. Accumulate.
[0083]
Next, the O2 sensor output voltage integration routine will be described. First, in step S21, the latest A2D-converted O2 sensor output voltage O2Sn is read, and the O2 sensor output voltage O2S is read as the O2 sensor output voltage integration value. Add to ΣO2S and integrate (ΣO2S ← ΣO2S + O2S).
[0084]
Next, in step S22, the O2 sensor output voltage O2Sn-1 at the time of the previous A / D conversion stored in the work area at the time of the previous routine execution is subtracted from the O2 sensor output voltage O2Sn, and the absolute value of this subtraction value is obtained. Is added to the absolute value integrated value DO2S of the O2 sensor output voltage change amount and integrated (DO2S ← DO2S + | O2Sn−O2Sn−1 |).
[0085]
Thereafter, in step S23, the O2 sensor output voltage sampling count CO2S is counted up (CO2S ← CO2S + 1). In subsequent step S24, the O2 sensor output voltage O2Sn is used in preparation for the calculation of the absolute value integrated value DO2S at the next routine execution. The O2 sensor output voltage O2Sn-1 at the time of previous A / D conversion is stored in the work area (O2Sn-1 ← O2Sn), and the routine is exited.
[0086]
Then, in the misfire diagnosis routine shown in FIG. 5, when the number of ignition times reaches the set number of times that determines the execution period of the misfire diagnosis and the engine operating state is in the fuel increase region for catalyst protection, The calculated differential rotation integration value ΣDELNE # i for each cylinder, the O2 sensor output voltage integration value ΣO2S integrated by the O2 sensor output voltage integration routine, and the absolute value integration value DO2S of the O2 sensor output voltage change amount are read out. . Then, a differential rotation DELNE # i (i = 1 to 4) for each cylinder in a predetermined period until the number of ignition reaches the set number is averaged to calculate a differential rotation average value DNAVE # i for each cylinder, The maximum value DNAVEMAX among these differential rotation average values DNAVE # i is discriminated, and the difference SDNAVE # i between the maximum value DNAVEMAX and the differential rotation average value DNAVE # i for each cylinder is calculated. Then, the average value difference SDNAVE # i for each cylinder with respect to the maximum value is compared with the misfire determination level LVLMIS, and a cylinder having an average value difference SDNAVE # i larger than the misfire determination level LVLMIS is determined as a misfire cylinder.
[0087]
When a misfiring cylinder is determined, the O2 sensor output voltage average value O2AVE is calculated based on the O2 sensor output voltage integrated value ΣO2S in a predetermined period until the number of ignition reaches the set number, and the O2 sensor output is calculated. When the voltage average value O2AVE does not reach the first determination value LVLO2AVE, or when the absolute value integrated value DO2S of the O2 sensor output voltage change amount in the predetermined period is larger than the second determination value LVLDO2S, it is determined that misfire has occurred. Then, the misfire is determined every time in the misfire cylinder, and the misfire is diagnosed every time in the cylinder.
[0088]
Next, the misfire diagnosis routine shown in FIG. 5 will be described.
[0089]
This misfire diagnosis routine is executed every predetermined crank angle (for example, every 180 ° CA) or every predetermined time (for example, 5 msec), and in step S31, the ignition number count value CIGN is set to the set number of times IGN (for example, 400). Times).
[0090]
The set number of times IGN determines the execution cycle of the misfire diagnosis. The average process for the differential rotation DELNE # i for each cylinder, which will be described later, and the calculation of the O2 sensor output voltage average value O2AVE based on the O2 sensor output voltage integrated value ΣO2S. By processing, and the absolute value integrated value DO2S of the O2 sensor sensor output voltage change amount, the influence of engine rotation fluctuation due to snatch or disturbance is eliminated, and the influence of temporary misfire due to acceleration or the like is eliminated. An ignition frequency value suitable for giving a period to be obtained is obtained in advance by simulation or experiment, and this ignition frequency value is set as the set frequency IGN and stored in the ROM 42 as fixed data.
[0091]
That is, the number of ignitions CIGN that directly depends on the number of misfires is adopted, and the ignition number CIGN is compared with the set number of times IGN to determine the execution period of the misfire diagnosis. It becomes possible to make a diagnosis reliably.
[0092]
When CIGN <IGN and the number of ignition times CIGN has not reached the set number of times IGN, the routine is directly exited. On the other hand, when CIGN ≧ IGN and the number of times of ignition CIGN has reached the set number of times IGN, the routine proceeds to step S32. That is, every time the number of ignition times CIGN reaches the set number of times IGN, a misfire diagnosis is performed based on data for a period corresponding to the set number of times IGN.
[0093]
In step S32, it is determined by the full increase coefficient KFULL whether the engine operating state is in a fuel increase area so-called full increase area for catalyst protection.
[0094]
As is well known, the full increase coefficient KFULL is for protecting the catalyst by preventing an abnormal increase in the catalyst temperature by correcting the fuel increase when the engine operating state is at least one of high speed and high load. And is given as a correction term for various increase coefficients COEF in the calculation formula of the fuel injection pulse width Ti that determines the fuel injection amount.
[0095]
As is well known, the fuel injection pulse width Ti is air-fuel ratio corrected by multiplying the basic fuel injection pulse width Tp by the various increase correction coefficients COEF and air-fuel ratio feedback correction coefficient α, and an air-fuel ratio learning correction coefficient. The learning correction is performed by multiplying KBLRC, and the voltage correction pulse width Ts for compensating the invalid injection time of the injector is added, and is given by the following equation.
[0096]
Ti ← Tp × COEF × α × KBLRC + Ts
The full increase coefficient is given as a correction term in various increase coefficients COEF. An example of an arithmetic expression of the above various increase coefficients COEF is shown in the following expression.
[0097]
COEF ← KST × (1 + KFULL + KTW + KAS + KAI + KACC)
Here, KST is a start increase coefficient, and is used to increase the fuel only during cranking during starter motor operation to ensure startability. KTW is a water temperature increase coefficient that determines the fuel increase rate for ensuring drivability when the engine is cold, and KAS is an increase coefficient after start for ensuring the stability of the engine rotation immediately after the engine is started. The initial value is set based on the coolant temperature TW by the coolant temperature sensor 28, and gradually decreases until KAS = 0 after the engine is started by turning off the starter switch 37. KAI is a post-idle increase coefficient for preventing slack at idle release, and is set to an initial value when the idle switch 25b shifts from ON (throttle valve fully closed) to OFF (throttle valve open). It is gradually decreased until KAI = 0. Further, KACC is an acceleration increase coefficient for preventing lean spikes in the air-fuel ratio due to the intake air amount detection delay of the intake air amount sensor 24 during acceleration when the throttle valve 5a is suddenly opened. When acceleration of the throttle valve sudden opening is detected based on the speed, the initial value is set and then gradually decreased until KACC = 0.
[0098]
On the other hand, the full increase coefficient KFULL for protecting the catalyst is set by referring to the full increase coefficient table stored in the ROM 42 based on the engine speed NE and the basic fuel injection pulse width Tp representing the engine load. The
[0099]
The full increase coefficient table obtains an appropriate fuel increase value that can prevent an abnormal increase in the catalyst temperature for each region based on the basic fuel injection pulse width Tp representing the engine load and the engine speed NE by simulation or experiment in advance. The fuel increase appropriate value is set as a full increase coefficient KFULL as a table using the basic fuel injection pulse width Tp and the engine rotational speed NE as parameters, and is stored in a series of addresses in the ROM 42.
[0100]
An example of the full increase coefficient table is shown in FIG. In this full increase coefficient table, as shown by the oblique lines in FIG. 10, when the basic fuel injection pulse width Tp is in at least one of the engine high load area and engine high speed area, the full increase coefficient KFULL is KFULL. > 0 is set. This region is a so-called full increase region where fuel increase correction is performed using the full increase coefficient KFULL. Outside this full increase area, the full increase coefficient KFULL is set to KFULL = 0, and fuel increase correction by the full increase coefficient KFULL is not performed. The full increase coefficient table stores a larger value of the full increase coefficient KFULL as the basic fuel injection pulse width Tp is larger and the engine rotational speed NE is higher, that is, as the engine speed is higher.
[0101]
That is, in the present embodiment, the differential rotation DELNE # i (i = 1 to 4) for each cylinder in a predetermined period until the number of ignition times CIGN reaches the set number of times IGN is averaged by the processing described later. The differential rotation average value DNAVE # i for each cylinder is calculated, the maximum value DNAVEMAX among these differential rotation average values DNAVE # i is determined, and the maximum value DNAVEMAX and the differential rotation average value DNAVE # i for each cylinder are determined. Difference SDNAVE # i is calculated. Then, the misfire cylinder is determined by comparing the average value difference SDNAVE # i for each cylinder with respect to the maximum value with the misfire determination level LVLMIS, and the misfire determination level LVLMIS for determining misfire is determined at the high engine speed. It is also set strictly in the region, and it is verified based on the O2 sensor output voltage O2S whether or not the determined misfire cylinder is truly misfiring.
[0102]
Here, the high engine speed range is adapted to a full increase region in which fuel increase correction is performed using the full increase coefficient KFULL for catalyst protection.
[0103]
In this full increase region, when there is no misfire without misfire, the exhaust gas air-fuel ratio after combustion becomes rich by the fuel increase correction by the full increase coefficient KFULL, and the output voltage O2S of the O2 sensor 29 is almost constant rich. Output. On the other hand, at the time of misfire where combustion is not performed, the oxygen concentration in the exhaust gas increases, so the O2 sensor output voltage O2S becomes a substantially lean output.
[0104]
Therefore, in the full increase range for catalyst protection by this full increase coefficient KFULL, the difference in O2 sensor output voltage O2S between no misfire and no misfire is large, and misfire is reliably verified based on the O2 sensor output voltage O2S. It becomes possible to do.
[0105]
In step S32, it is determined whether or not the engine operation region is in the fuel increase region depending on whether or not the full increase coefficient KFULL is greater than 0. Instead, for example, the engine speed NE and the engine load are represented. A region table based on the basic fuel injection pulse width Tp may be adopted, and the fuel increase region determination may be performed by referring to this region table, and appropriate means can be employed.
[0106]
When the condition is not satisfied outside the fuel increase range of KFULL = 0, the routine jumps to step S40, and in steps S40 to S44, the differential rotation integrated value ΣDELNE # i, the number of ignition times CIGN, the O2 sensor output voltage of each cylinder. Clear accumulated value ΣO2S, absolute value accumulated value DO2S of O2 sensor output voltage change amount, and O2 sensor output voltage sampling count CO2S (ΣDELNE # i ← 0, CIGN ← 0, ΣO2S ← 0, DO2S ← 0, CO2S ←) 0) Exit the routine.
[0107]
On the other hand, when the condition in the fuel increase region where KFULL> 0 is satisfied in step S32, the process proceeds to step S33, where the misfire cylinder detection subroutine shown in FIG. 6 is executed, and the engine rotation fluctuation is based on the differential rotation DELNE # i for each cylinder. Determine the misfire cylinder.
[0108]
The misfire cylinder detection subroutine of FIG. 6 will be described. For each cylinder #i (i = 1 to 4 cylinders) in a predetermined period in which the number of ignition times CIGN integrated in the differential rotation calculation routine reaches the set number of times IGN in step S51. The differential rotation integrated value ΣDELNE # i is read out, and based on the differential rotation integrated value ΣDELNE # i for each cylinder, the differential rotation average value DNAVE # i for each cylinder in a predetermined period is calculated by the following equation.
[0109]
DNAVE # i ← ΣDELNE # i / (IGN / N)
Here, N is the number of cylinders, and the differential rotation DELNE is accumulated for each cylinder by (IGN / N) times until the number of ignition times CIGN reaches the set number of times IGN. Accordingly, the differential rotation average value ΣDELNE # i for each cylinder in the predetermined period when the ignition number CIGN reaches the set number IGN is divided by (IGN / N), respectively, so that the differential rotation average for each cylinder in this predetermined period is obtained. The value DNAVE # i can be calculated. Further, the above (IGN / N) is known and is previously stored in the ROM 42 as fixed data.
[0110]
In step S52, the magnitude relations of the differential rotation average value DNAVE # i for each cylinder are compared, and the maximum of these differential rotation average values DNAVE # i is set as the maximum value DNAVEMAX.
[0111]
That is, as shown in FIG. 11, for example, of the differential rotation average values DNAVE # 1, DNAVE # 2, DNAVE # 3, and DNAVE # 4 for each cylinder in a predetermined period (400 ignition), the differential rotation of # 1 cylinder The average value DNAVE # 1 is the maximum, and the differential rotation average value DNAVE # 1 of the # 1 cylinder is set as the maximum value DNAVEMAX.
[0112]
Next, the process proceeds to step S53, where the difference rotational average value DNAVE # i for each cylinder is subtracted from the maximum value DNAVEMAX to calculate the average value difference SDNAVE # i for each cylinder with respect to the maximum value DNAVEMAX (SDNAVE # i). <-DNAVEMAX-DNAVE # i).
[0113]
In step S54, the average value difference SDNAVE # i for each cylinder is compared with the misfire determination level LVLMIS, and a cylinder having an average value difference SDNAVE # i larger than the misfire determination level LVLMIS is satisfied with SDNAVE # i> LVVLMIS. It is determined that the misfire cylinder is continuously misfired every time, and in step S55, a cylinder misfire flag FMIS # i representing the continuous misfire of the corresponding cylinder is set (FMIS # i ← 1).
[0114]
Further, it is determined that at least a constant continuous misfire has not occurred at least for each cylinder in which SDNAVE # i ≦ LVLMIS and the average value difference SDNAVE # i is equal to or lower than the misfire determination level LVLMIS, and in step S56, the corresponding cylinder is assigned. The corresponding cylinder misfire flag FMIS # i is cleared (FMIS # i ← 0), and the process proceeds to step S34 of the misfire diagnosis routine (FIG. 5).
[0115]
That is, instead of directly using the differential rotation DELNE # i for each cylinder, by adopting the differential rotation average value DNAVE # i for each cylinder until the number of ignitions CIGN reaches the set number of times IGN, the temporary rotation due to snatch, disturbance, etc. This eliminates the effects of typical engine rotation fluctuations, and eliminates the effects of temporary misfires due to acceleration and the like. Then, the maximum value DNAVEMAX among the differential rotation average values DNAVE # i is discriminated, and the difference SDNAVE # i between the maximum value DNAVEMAX and the differential rotation average value DNAVE # i for each cylinder is respectively determined. This is accurately reflected as a misfire parameter indicating continuous misfire of the cylinder every time. Further, since the average value difference SDNAVE # i for each cylinder with respect to the maximum value DNAVEMAX is compared with the misfire determination level LVLMIS, continuous misfire is determined for each cylinder. Therefore, the differential rotation average value DNAVE # i for each cylinder is determined. Relative to the value (misfire determination level), the above-described average value difference SDNAVE # i for each cylinder as a misfire parameter representing continuous misfire changes greatly depending on the presence or absence of continuous misfire each time and is dynamic. The range is large, and therefore it is possible to more accurately determine the continuous misfire for each cylinder.
[0116]
In addition, since the simple average of the differential rotations in the predetermined period is adopted, it is possible to significantly reduce the calculation burden on the CPU 41 related to the misfire diagnosis.
[0117]
For example, in the example of FIG. 11 described above, the differential rotation average value DNAVE # 1 of the # 1 cylinder is the maximum maximum value DNAVEMAX, and therefore the average value difference SDNAVE # 1 of the # 1 cylinder is SDNAVE # 1 = 0 rpm. The average value difference SDNAVE # 2 of the # 2 cylinder with respect to the maximum value DNAVEMAX is about 18 rpm, the average value difference SDNAVE # 3 of the # 3 cylinder is about 25 rpm, and the average value difference SDNAVE # 4 of the # 4 cylinder is about 65 rpm. In this case, it can be seen that the # 4 cylinder causes continuous misfire every time.
[0118]
However, in the high engine speed range (usually 5000 rpm or more), as described above, the engine rotation caused by manufacturing tolerances and mounting tolerances of the crank rotor and crank angle sensor, and variations in combustion pressure for each cylinder, etc. The influence of speed variation becomes large, and since the inertial energy is large in the high rotation range, the engine rotation change amount at the time of misfire is small, and misfire determination becomes difficult.
[0119]
Therefore, in the high engine speed range, if the misfire determination level LVLMIS as the determination value is set strictly (small), the misfire is erroneously determined even though the misfire does not actually occur due to the rotation variation of each cylinder. End up. In order to cope with this, if the misfire determination level LVLMIS is set to be large, the actual misfire cannot be detected. In any case, in the misfire determination based on the engine rotation change, it is not possible to appropriately determine continuous misfire every time for each cylinder in the high engine speed range.
[0120]
Therefore, at this time, the misfire determination based on the O2 sensor output voltage O2S indicating the oxygen concentration in the exhaust gas is used in combination, and it is verified whether or not a true misfire has occurred based on the O2 sensor output voltage O2S by the processing described later. . In other words, the misfire determination level LVLMIS can be set strictly by combining the misfire determination based on the engine rotation change and the misfire determination based on the O2 sensor output voltage O2S, and the synergy with the strict setting of the misfire determination level LVLMIS. It is possible to greatly improve the misfire diagnosis accuracy in the high engine speed range, and to determine the misfire cylinder in the high engine speed range.
[0121]
When the misfire cylinder detection subroutine is completed and the process proceeds to step S34 of the misfire diagnosis routine (see FIG. 5), the cylinder misfire flag FMIS # i for each cylinder is referred to, and all FMIS # i = 0. When the cylinder-specific misfire flags FMIS # 1, FMIS # 2, FMIS # 3, and FMIS # 4 are cleared for all of the cylinders, and it is determined that no continuous misfire has occurred for all the cylinders # 1 to # 4 7 jumps to step S65 of the misfire verification subroutine of FIG. 7 and stores all the misfire determination NG flags FNG # 1, FNG # 2, FNG # 3, FNG for each cylinder that are stored in the backup RAM 44 and indicate continuous misfire determination for each cylinder. Clear # 4.
[0122]
On the other hand, in step S34, FMIS # i = 1, and any one of the cylinder misfire flags FMIS # 1 to FMIS # 4 is set, and at least one cylinder is continuously misfired every time. If it is determined that the O2 sensor 29 is active, the flow advances to step S35 to determine whether the O2 sensor 29 is active.
[0123]
That is, when the O2 sensor 29 is inactive, the oxygen concentration in the exhaust gas cannot be determined from the output voltage O2S of the O2 sensor 29, and a misfire diagnosis based on the O2 sensor output voltage O2S cannot be performed.
[0124]
Therefore, when the O2 sensor 29 is inactive, the routine jumps to step S40, and in steps S40 to S44, the differential rotation integrated value ΣDELNE # i, the number of ignition times CIGN, the O2 sensor output voltage integrated value ΣO2S, O2 sensor for each cylinder. The absolute value integrated value DO2S of the output voltage change amount and the O2 sensor output voltage sampling count CO2S are cleared, and the routine is exited.
[0125]
The activation determination of the O2 sensor 29 can be determined as the activation of the O2 sensor 29 when, for example, the output voltage O2S of the O2 sensor 29 is equal to or higher than a set value or a predetermined range is maintained for a set value or more. .
[0126]
On the other hand, when the O2 sensor 29 is active in step S35, the process proceeds to step S36, and a misfire verification subroutine shown in FIG. 7 is executed to verify the misfire based on the O2 sensor output voltage O2S indicating the oxygen concentration in the exhaust gas. .
[0127]
The misfire verification subroutine of FIG. 7 will be described. In step S61, the O2 sensor output voltage integration value ΣO2S integrated in the O2 sensor output voltage integration routine and the O2 sensor output voltage sampling count CO2S are read, and the O2 sensor output voltage integration is performed. The value ΣO2S is divided by the O2 sensor output voltage sampling count CO2S to calculate the O2 sensor output voltage average value O2AVE during a predetermined period when the ignition count CIGN reaches the set count IGN (O2AVE ← ΣO2S / CO2S).
[0128]
In step S62, the O2 sensor output voltage average value O2AVE is compared with a first determination value LVLO2AVE for determining misfire based on the O2 sensor output voltage average value O2AVE.
[0129]
When O2AVE <LVLO2AVE and the O2 sensor output voltage average value O2AVE does not reach the first determination value LVLO2AVE, the O2 sensor 29 is in spite of the fuel increase region for catalyst protection, that is, the full increase region. Output voltage O2S continuously indicates a lean output, and it is determined that a continuous misfire has occurred in the predetermined cylinder every time, the process proceeds to step S64, and the corresponding cylinder specified by the cylinder misfire flag FMIS # i The cylinder misfire determination NG flag FNG # i indicating the final misfire diagnosis result and indicating the final misfire diagnosis result and indicating the continuous misfire determination for each cylinder stored in the backup RAM 44 is set (FNG # i ← 0). ), The process proceeds to step S37 of the misfire diagnosis routine (FIG. 5).
[0130]
If O2AVE ≧ LVLO2AVE in step S62, the process proceeds to step S63, where the absolute value integrated value DO2S of the O2 sensor output voltage change amount integrated in the O2 sensor output voltage integration routine is read, and the O2 sensor in this predetermined period is read. The absolute value integrated value DO2S of the output voltage change amount is compared with a second determination value LVLDO2S for determining misfire based on the absolute value integrated value DO2S.
[0131]
When DO2S> LVLDO2S and the absolute value integrated value DO2S of the O2 sensor output voltage change amount is larger than the second determination value LVLDO2S, the O2 sensor output voltage O2S fluctuates due to air-fuel ratio fluctuation due to continuous misfire of the predetermined cylinder. Accordingly, it is determined that the continuous misfire has occurred in the predetermined cylinder every time, and similarly, the process proceeds to step S64, and the continuous misfire of the corresponding cylinder specified by the cylinder misfire flag FMIS # i is determined. Then, the cylinder misfire determination NG flag FNG # i indicating the continuous misfire determination of the corresponding cylinder stored in the backup RAM 44 is set, and the process proceeds to step S37 of the misfire diagnosis routine.
[0132]
That is, when continuous misfire is determined each time for a specific cylinder by misfire determination due to engine rotation change, misfire determination is further performed based on the O2 sensor output voltage O2S to verify misfire, and by misfire determination based on the O2 sensor output voltage O2S. When misfire is determined, it is determined that the specific cylinder is continuously misfired every time.
[0133]
Here, even when the engine operating state is in the fuel increase region for protecting the catalyst, that is, the full increase region, as described above, the full increase coefficient KFULL is set to a larger value as the engine high load and higher rotation. The fuel increase by the full increase coefficient KFULL is large, and the full increase coefficient KFULL is set to a smaller value and the fuel increase is reduced as the engine shifts to the low engine speed or engine load side.
[0134]
The relationship between the O2 sensor output voltage O2S at the time of no misfire and the O2 sensor output voltage O2S at the time of continuous misfire in a specific cylinder when the value of the full increase coefficient KFULL is small and the fuel increase is small. The time chart of FIG. 12 with CIGN as the time axis is shown.
[0135]
As shown in the figure, when there is no misfire, the O2 sensor output voltage O2S becomes a substantially constant rich output due to the fuel increase by the above-mentioned full increase coefficient KFULL, and during misfire, the oxygen concentration in the exhaust gas increases and the O2 sensor output The voltage O2S continues the lean output.
[0136]
Therefore, the O2 sensor output voltage average value O2AVE obtained by averaging the O2 sensor output voltage O2S is large when there is no misfire, and is small when the specific cylinder is continuously misfired every time.
[0137]
On the other hand, the absolute value integrated value DO2S of the O2 sensor output voltage change amount has a small fluctuation of the O2 sensor output voltage O2S regardless of the presence or absence of misfire when the value of the full increase coefficient KFULL is small and the fuel increase amount is small. As shown in FIG. 13, it is a small value for both no misfire and misfire. Therefore, when the fuel increase is small, it is difficult to determine the misfire based on the absolute value integrated value DO2S of the O2 sensor output voltage change amount.
[0138]
That is, when the value of the full increase coefficient KFULL is small and the fuel increase is small, it is possible to determine misfire based on the O2 sensor output voltage average value O2AVE. At this time, the O2 sensor output voltage average value O2AVE is the first value. It can be determined that a continuous misfire has occurred in the predetermined cylinder every time by being below the determination value LVLO2AVE.
[0139]
In the misfire determination based only on the O2 sensor output voltage O2S, only the misfire and the continuous misfire of the predetermined cylinder can be determined each time, and it is not possible to specify the cylinder that causes the continuous misfire every time. Since the misfire cylinder is specified by the above, by using the misfire determination based on the engine rotation change and the misfire determination based on the O2 sensor output voltage O2S in combination, the misfire cylinder causing the continuous misfire every time even in the high engine speed range. Certainly can be identified.
[0140]
On the other hand, when the value of the full increase coefficient KFULL is large and the fuel increase is large, the relationship between the O2 sensor output voltage O2S when no misfire occurs and the O2 sensor output voltage O2S when a continuous misfire occurs in a specific cylinder each time, This is shown in the time chart of FIG.
[0141]
As shown in FIG. 14, at the time of no misfire, the O2 sensor output voltage O2S becomes a substantially constant rich output by the fuel increase by the full increase coefficient KFULL. In addition, at the time of continuous misfire of the predetermined cylinder, even if the oxygen concentration in the exhaust gas increases due to misfire, the richness of the base air-fuel ratio is large when the fuel increase is large, so the O2 sensor output voltage O2S is still Rich output. However, the O2 sensor output voltage O2S fluctuates due to air-fuel ratio fluctuation due to misfire.
[0142]
Therefore, when the fuel increase is large, the O2 sensor output voltage O2S becomes a rich output regardless of the presence or absence of misfire. Therefore, the O2 sensor output voltage average value O2AVE obtained by averaging the O2 sensor output voltage O2S is obtained when there is no misfire and during misfire. Both are rich and the difference is small. For this reason, when the fuel increase amount is large, it is difficult to determine misfire by the O2 sensor output voltage average value O2AVE.
[0143]
On the other hand, as shown in FIG. 15, the absolute value integrated value DO2S of the O2 sensor output voltage change amount is small when there is no misfire because the O2 sensor output voltage O2S is a substantially constant rich output with little fluctuation. In addition, at each successive misfire, the absolute value integrated value DO2S of the O2 sensor output voltage change amount increases due to the fluctuation of the O2 sensor output voltage O2S.
[0144]
Therefore, when the value of the full increase coefficient KFULL is large and the fuel increase is large, it is possible to determine misfire by the absolute value integrated value DO2S of the O2 sensor output voltage change amount. At this time, the O2 sensor output voltage change amount When the absolute value integrated value DO2S exceeds the second determination value LVLDO2S, it can be determined that continuous misfire has occurred in the predetermined cylinder every time.
[0145]
That is, by determining both the O2 sensor output voltage average value O2AVE and the absolute value integrated value of the O2 sensor output voltage change amount, it is possible to appropriately determine misfire regardless of the difference in fuel increase by the full increase coefficient KFULL. It becomes possible.
[0146]
On the other hand, in step S63, when DO2S ≦ LVLDO2S, that is, when O2AVE ≧ LVLO2AVE and DO2S ≦ LVLDO2S, the output voltage O2S of the O2 sensor 29 corresponds to the fuel increase region for catalyst protection, that is, the full increase region. It is determined that the rich output is continuously displayed, the air-fuel ratio fluctuation due to continuous misfire does not occur every time, and no continuous misfire occurs in any cylinder, and the process proceeds to step S65, and the backup RAM 44 All cylinder misfire determination NG flags FNG # 1, FNG # 2, FNG # 3, and FNG # 4 that are stored and indicate continuous misfire determination for each cylinder are cleared, and the process proceeds to step S37 of the misfire diagnosis routine.
[0147]
That is, even if it is determined that the specific cylinder is continuously misfired every time by the misfire determination due to the engine rotation change described above, if it is determined that there is no misfire based on the misfire determination based on the O2 sensor output voltage O2S, the misfire due to this engine rotation change. The determination result is determined to be due to the manufacturing tolerances and mounting tolerances of the crank rotor and crank angle sensor, and the influence of variations in engine rotation speed due to variations in combustion pressure for each cylinder. At this time, no misfire is determined by verification based on the O2 sensor output voltage O2S.
[0148]
When the misfire verification subroutine is completed and the process proceeds to step S37 of the misfire diagnosis routine (see FIG. 5), the cylinder misfire determination NG flag FNG # i for each cylinder stored in the backup RAM 44 is referred to. If any one of the cylinder misfire determination NG flags FNG # 1, FNG # 2, FNG # 3, and FNG # 4 is set for each cylinder, the process proceeds to step S38, and the flashing cycle is short or long. The warning lamp 38 is flashed with a predetermined flashing code based on the number of flashes or a combination thereof, and the driver is notified of the occurrence of misfire. Then, in preparation for the next diagnosis, after the above steps S40 to S44, the differential rotation integrated value ΣDELNE # i, the number of ignitions CIGN, the O2 sensor output voltage integrated value ΣO2S, the absolute value integrated value of the O2 sensor output voltage change amount of each cylinder The DO2S and O2 sensor output voltage sampling times CO2S are cleared, and the routine is exited.
[0149]
On the other hand, when FNG # i = 0 in step S37, the cylinder misfire determination NG flags FNG # 1, FNG # 2, FNG # 3, and FNG # 4 for all cylinders are cleared, and all cylinders # 1 to # 1 are cleared. When continuous misfire does not occur every time for # 4, the process proceeds to step S39, the flashing of the alarm lamp 38 by the predetermined blinking code is stopped due to no misfire, and the routine is exited through steps S40 to S44.
[0150]
As a result, when misfiring has occurred in a predetermined cylinder, the warning lamp 38 is notified by blinking, and the driver can easily determine that misfiring has occurred.
[0151]
Further, when troubleshooting at a service factory such as a dealer, the serial monitor 60 is connected to the external connection connector 55, so that the serial monitor 60 uses the cylinder misfire determination NG flag FNG # i for each cylinder in the ECU 40. By reading the trouble data, it is possible to easily and accurately determine which cylinder is misfiring.
[0152]
After repairing the corresponding part, the serial monitor 60 clears the cylinder specific misfire determination NG flag FNG # i. In the present embodiment, even if the cylinder specific misfire determination NG flag FNG # i is not cleared by the serial monitor 60 after the corresponding part is repaired, if the misfire does not occur due to the return to the normal state, the misfire may occur. In the diagnosis routine, the misfire determination NG flag FNG # i for each cylinder is cleared.
[0153]
In this embodiment, the engine rotation speed (engine speed) is used as the engine rotation state quantity, and misfire is detected based on the engine rotation change amount for each predetermined cycle. However, the engine rotation speed, the engine rotation angular velocity, or the engine rotation angular acceleration may be used instead of the engine rotation speed.
[0154]
In this embodiment, when the engine operating state is in the fuel increase region for protecting the catalyst, misfire is diagnosed by using the engine rotation change amount and the O2 sensor output voltage O2S together. When it is outside, the misfire diagnosis may be performed only by the engine rotation change amount. That is, when outside the fuel increase region for catalyst protection, the engine is outside the high engine speed range, the inertia energy is small with respect to the engine high engine speed range, the engine rotation change amount at the time of misfiring is large, and the combustion pressure for each cylinder The influence of variations in engine rotation for each cylinder due to variations in the engine is small. Accordingly, at this time, there is no problem in terms of diagnosis accuracy even if the misfire diagnosis is performed only by the engine rotation change amount.
[0158]
【The invention's effect】
  As described above, according to the first aspect of the invention,The engine rotation state amount for each constant crank angle is detected, the current combustion stroke cylinder is discriminated, and the engine rotation state amount detected this time is subtracted from the previously detected engine rotation state amount to determine the rotation state amount for the combustion stroke cylinder. Calculate the difference. Then, the differential rotation state quantity for each cylinder in the predetermined period is averaged to calculate a differential rotation state quantity average value for each cylinder, and the maximum value of these differential rotation state quantity average values and each cylinder are calculated. The difference from the average value of the difference in rotation state is calculated. Then, an average value difference for each cylinder with respect to the maximum value is compared with a misfire determination level, and a cylinder having a larger average value difference than the misfire determination level is determined as a misfire cylinder. Further, when misfiring is determined based on the output value of the air-fuel ratio sensor, and misfiring is determined, it is determined that the misfiring cylinder is misfired every time and the misfiring is diagnosed every time in the cylinder., DWhen determining misfire due to engine rotation change, the difference in the rotation state quantity for each cylinder is not directly used as the change in the engine rotation state quantity, but the average value of the difference rotation state quantity for each cylinder in a predetermined period is adopted. It is possible to eliminate the effects of temporary engine rotation fluctuations due to acceleration and to the effects of temporary misfires due to acceleration or the like. Further, the difference between the maximum value of the average value of the differential rotation state quantities and the average value of the differential rotation state quantity for each cylinder is calculated, and the average value difference for each cylinder with respect to the maximum value is calculated as a final misfire parameter. Therefore, it is possible to accurately reflect the continuous misfire of the specific cylinder every time.
[0159]
Furthermore, since the average value difference for each cylinder with respect to this maximum value is compared with the misfire determination level, continuous misfire is determined every time for each cylinder, so the average value of the rotational speed difference for each cylinder is determined as the determination value (misfire determination level). Compared to the misfire diagnosis, the above average value difference for each cylinder as a misfire parameter representing continuous misfire changes greatly depending on the presence or absence of continuous misfire every time, and the dynamic range is large. This has the effect of making it possible to determine consecutive misfires for each cylinder.
[0160]
  At that time, the claim2In the described invention, when the engine operation state is in the fuel increase region for catalyst protection, misfire determination is performed based on the engine rotation state amount and the air-fuel ratio sensor output voltage. That is, the fuel increase area for catalyst protection is compatible with the high engine speed range, and when there is no misfire under this fuel increase area, the exhaust gas air-fuel ratio after combustion becomes rich due to the fuel increase and the air-fuel ratio sensor output value is almost constant. In the case of misfire where combustion is not performed, the oxygen concentration in the exhaust gas increases, so the air-fuel ratio sensor output value becomes a substantially lean output. Therefore, in the fuel increase region for protecting the catalyst, the difference in the air-fuel ratio sensor output value between the no-fire and the misfire is large.2According to the described invention, the above claims1In addition to the effects of the present invention, the misfire determination result due to the engine rotation change can be reliably verified based on the air-fuel ratio sensor output value.
[0161]
  Claim3In the described invention, the output voltage of the air-fuel ratio sensor and the absolute value of the change amount of the output voltage are integrated for each predetermined period. When the misfire diagnosis is performed based on the output value of the air-fuel ratio sensor, when the engine operating state is in the fuel increase region for catalyst protection, the air-fuel ratio sensor output voltage average is calculated based on the integrated value of the air-fuel ratio sensor output voltage for a predetermined period. When the average value of the air-fuel ratio sensor output voltage does not reach the first determination value, or the absolute value integrated value of the air-fuel ratio sensor output voltage change amount in a predetermined period is greater than the second determination value. If it is too large, it is determined that there is a misfire.1In addition to the effects of the present invention, when the engine operating state is in the fuel increase region for protecting the catalyst and the fuel increase is small, the presence or absence of misfire is reliably reflected in the average value of the air-fuel ratio sensor output voltage in a predetermined period. Therefore, misfire can be accurately determined by comparing the air-fuel ratio sensor output voltage with the first determination value. When the fuel increase is large, the absolute value integration of the air-fuel ratio sensor output voltage change amount during a predetermined period is performed. The value accurately reflects the presence or absence of misfire, and the misfire can be accurately determined by comparing the absolute value integrated value of the air-fuel ratio sensor output voltage change amount with the second determination value. Regardless, it has the effect of being able to determine misfire appropriately.
[0162]
  Claims4In the described invention, since each average value is calculated by a simple average over a predetermined period,1 toClaim3In addition to the effects of the described invention, it has the effect of remarkably reducing the computation burden on the CPU related to misfire diagnosis.
[0163]
  Claim5In the described invention, the predetermined period is a period every time the number of ignition reaches the predetermined number.1Or claims4In addition to the effects of the described invention, the number of ignitions that directly depends on the number of misfires is adopted, and the execution period cycle of the misfire diagnosis is determined by this number of ignitions, so it is caused by the effect of snatch, disturbance, etc., temporary misfire due to acceleration, etc. This has the effect of eliminating the influence and reliably diagnosing the constant misfire of the predetermined cylinder, that is, the continuous misfire of the predetermined cylinder every time.
[0164]
  At that time, the claim6In the description, the engine rotational speed is used as the rotational state quantity.5The described invention can be incorporated into a conventional engine misfire diagnostic apparatus very easily, and the misfire diagnostic accuracy can be improved.
[Brief description of the drawings]
FIG. 1 is a basic configuration diagram of the present invention.
FIG. 2 is a flowchart of a cylinder discrimination / engine speed calculation routine.
FIG. 3 is a flowchart of a differential rotation calculation routine.
FIG. 4 is a flowchart of an O2 sensor output voltage integration routine.
FIG. 5 is a flowchart of a misfire diagnosis routine.
FIG. 6 is a flowchart of a misfire cylinder detection subroutine based on misfire determination based on engine rotation change.
FIG. 7 is a flowchart of a misfire verification subroutine based on an O2 sensor output voltage.
FIG. 8 is a time chart showing the relationship between crank pulse, cam pulse, combustion stroke cylinder, ignition timing, and fuel injection timing.
FIG. 9 is a timing chart showing a calculation state of differential rotation for each cylinder.
FIG. 10 is an explanatory diagram of a full increase coefficient table.
FIG. 11 is a time chart showing the relationship of differential rotation DELNE # i, differential rotation average value DNAVE # i, maximum value DNAVEMAX, and average value difference SDNAVE # i for each cylinder with respect to maximum value DNAVEMAX for each cylinder;
FIG. 12 is a time chart showing the relationship between the O2 sensor output voltage O2S at the time of no misfire and the O2 sensor output voltage O2S at the time of continuous misfire in a specific cylinder when the fuel increase is small.
FIG. 13 shows the absolute value integrated value DO2S of the O2 sensor output voltage change amount at the time of no misfire when the fuel increase is small and the absolute value integration of the O2 sensor output voltage change amount when the continuous misfire occurs in the specific cylinder every time. Time chart showing the relationship with the value DO2S
FIG. 14 is a time chart showing the relationship between the O 2 sensor output voltage O 2 S when no misfire occurs and the O 2 sensor output voltage O 2 S when a continuous misfire occurs in a specific cylinder each time the fuel increase is large;
FIG. 15 shows the absolute value integration value DO2S of the O2 sensor output voltage change amount when no misfire occurs when the fuel increase is large and the absolute value integration of the O2 sensor output voltage change amount when the continuous misfire occurs every time in a specific cylinder. Time chart showing the relationship with the value DO2S
FIG. 16 is an overall schematic view of an engine.
FIG. 17 is a front view of a crank rotor and a crank angle sensor.
FIG. 18 is a front view of a cam rotor and a cam angle sensor.
FIG. 19 is a circuit configuration diagram of an electronic control system.
[Explanation of symbols]
1 engine
29 O2 sensor (air-fuel ratio sensor)
32 Crank angle sensor
40 electronic control unit (rotation state quantity change detection means, cylinder discrimination means, first misfire discrimination means, second misfire discrimination means, misfire diagnosis means, differential rotation state quantity calculation means, differential rotation state quantity average value calculation means, Integration means)
NE engine speed (engine rotation state)
DELNE differential rotation (change in engine rotation state)
LVLMIS misfire level
O2S O2 sensor output voltage (air-fuel ratio sensor output value; air-fuel ratio sensor output voltage)
#N Current combustion stroke cylinder
MNXn Engine speed corresponding to the current combustion stroke cylinder #n (the amount of engine rotation detected this time)
MNXn-1 Engine rotation speed corresponding to cylinder # n-1 before one combustion stroke (previously detected engine rotation state amount)
DELNE # n Differential rotation relative to the current combustion stroke cylinder #n (difference in rotational state relative to the combustion stroke cylinder)
DELNE # i Differential rotation for each cylinder (differential rotation state quantity for each cylinder)
DNAVE # i Differential rotation average value for each cylinder (differential rotation state quantity average value for each cylinder)
DNAVEMAX maximum value (maximum value of average value of each differential rotation state quantity)
SDNAVE # i Average value difference for each cylinder with respect to the maximum value
O2AVE O2 sensor output voltage average value (air-fuel ratio sensor output voltage average value)
LVLO2AVE first judgment value
Absolute value integrated value of DO2SO2 sensor output voltage variation (absolute value integrated value of air-fuel ratio sensor output voltage variation)
LVLDO2S Second judgment value
CIGN number of ignition
IGN set times (predetermined number)

Claims (6)

定クランク角毎のエンジン回転状態量を検出するエンジン回転状態量検出手段と、
現在の燃焼行程気筒を判別する気筒判別手段と、
前回検出したエンジン回転状態量から今回検出したエンジン回転状態量を減算して上記燃焼行程気筒に対する回転状態量の差を算出する差回転状態量算出手段と、
所定期間における各気筒毎の上記差回転状態量を平均処理し各気筒毎の差回転状態量平均値を算出する差回転状態量平均値算出手段と、
上記各差回転状態量平均値のうちの最大値と各気筒毎の差回転状態量平均値との差をそれぞれ算出して、この最大値に対する各気筒毎の平均値差を失火判定レベルと比較し、該失火判定レベルよりも平均値差が大きい気筒を失火気筒と判別する第1の失火判別手段と、
空燃比センサの出力値に基づき失火を判別する第2の失火判別手段と、
空燃比センサの出力値に基づき失火を判別したとき、上記失火気筒の毎回失火と確定し、当該気筒の毎回失火と診断する失火診断手段とを備えたことを特徴とするエンジンの失火診断装置。
An engine rotational state quantity detecting means for detecting an engine rotation state amount of Jo Tokoro crank angle each,
Cylinder discrimination means for discriminating a current combustion stroke cylinder;
Differential rotation state amount calculating means for subtracting the engine rotation state amount detected this time from the previously detected engine rotation state amount to calculate a difference in rotation state amount with respect to the combustion stroke cylinder;
A differential rotation state quantity average value calculating means for averaging the differential rotation state quantity for each cylinder in a predetermined period and calculating a differential rotation state quantity average value for each cylinder;
Calculate the difference between the maximum value of the differential rotation state quantity average value and the differential rotation state quantity average value for each cylinder, and compare the average value difference for each cylinder with respect to the maximum value to the misfire determination level. First misfire determination means for determining a cylinder having an average value difference larger than the misfire determination level as a misfire cylinder;
Second misfire determination means for determining misfire based on the output value of the air-fuel ratio sensor;
An engine misfire diagnostic apparatus, comprising: misfire diagnosis means for determining misfire every time the misfire cylinder when the misfire is determined based on an output value of an air-fuel ratio sensor and diagnosing misfire of the cylinder every time.
上記各失火判別手段は、エンジン運転状態が燃料増量領域にあるとき、失火判別を行うことを特徴とする請求項1記載のエンジンの失火診断装置。Each misfire determining means, when the engine operating condition is in the fuel increase region, misfire diagnostic apparatus according to claim 1 Symbol placement engine and performing a misfire determination. 所定周期毎に上記空燃比センサの出力電圧及び該出力電圧の変化量の絶対値を各々積算する積算手段を備え、上記第2の失火判別手段は、エンジン運転状態が燃料増量領域にあるとき、所定期間における空燃比センサ出力電圧平均値を算出し、該空燃比センサ出力電圧平均値が第1の判定値に達していないとき、或いは、所定期間における上記空燃比センサ出力電圧変化量の絶対値積算値が第2の判定値よりも大きいとき、失火と判別することを特徴とする請求項1記載のエンジンの失火診断装置。And an integration unit that integrates the output voltage of the air-fuel ratio sensor and the absolute value of the change amount of the output voltage every predetermined period, and the second misfire determination unit is configured such that when the engine operating state is in the fuel increase region, An air-fuel ratio sensor output voltage average value in a predetermined period is calculated, and when the air-fuel ratio sensor output voltage average value does not reach the first determination value, or the absolute value of the air-fuel ratio sensor output voltage change amount in the predetermined period when the integrated value is larger than the second determination value, misfire diagnostic apparatus according to claim 1 Symbol placement engine and discriminates misfire. 上記各平均値は、所定期間における単純平均によって算出することを特徴とする請求項1ないし請求項3の何れか1項に記載のエンジンの失火診断装置。Each mean value, misfire diagnostic apparatus for an engine according to any one of claims 1 to claim 3, characterized in that calculated by simple average during a predetermined period. 上記所定期間は、点火回数が所定回数に達する毎の期間であることを特徴とする請求項ないし請求項4の何れか1項に記載のエンジンの失火診断装置。The predetermined period is misfire diagnostic apparatus for an engine according to any one of claims 1 to 4, wherein the number of times of ignition is a period of each time reaches a predetermined number of times. 上記エンジン回転状態量は、エンジン回転速度であることを特徴とする請求項1ないし請求項5の何れか 1 項に記載のエンジンの失火診断装置。The engine rotation state amount misfire diagnostic apparatus for an engine according to any one of claims 1 to 5, characterized in that an engine rotational speed.
JP01700797A 1997-01-30 1997-01-30 Engine misfire diagnostic device Expired - Fee Related JP3859789B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP01700797A JP3859789B2 (en) 1997-01-30 1997-01-30 Engine misfire diagnostic device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP01700797A JP3859789B2 (en) 1997-01-30 1997-01-30 Engine misfire diagnostic device

Publications (2)

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

Family

ID=11931955

Family Applications (1)

Application Number Title Priority Date Filing Date
JP01700797A Expired - Fee Related JP3859789B2 (en) 1997-01-30 1997-01-30 Engine misfire diagnostic device

Country Status (1)

Country Link
JP (1) JP3859789B2 (en)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4525586B2 (en) * 2005-12-21 2010-08-18 三菱自動車工業株式会社 Engine combustion state detection device
JP2010013961A (en) * 2008-07-02 2010-01-21 Hino Motors Ltd Combustion state determination device for internal combustion engine
JP2010150953A (en) * 2008-12-24 2010-07-08 Hitachi Automotive Systems Ltd Misfire diagnostic device for internal combustion engine
JP5287319B2 (en) * 2009-02-10 2013-09-11 日産自動車株式会社 Fuel injection valve control device
JP5195714B2 (en) * 2009-10-21 2013-05-15 三菱自動車工業株式会社 Inter-cylinder air-fuel ratio variation detection device
JP5402982B2 (en) * 2011-05-12 2014-01-29 トヨタ自動車株式会社 Abnormality determination device for internal combustion engine

Also Published As

Publication number Publication date
JPH10213058A (en) 1998-08-11

Similar Documents

Publication Publication Date Title
JP3357091B2 (en) Engine misfire detection method
JP3482318B2 (en) Misfire state determination device for internal combustion engine
JPH03202660A (en) Engine misfire judging device
JP3859789B2 (en) Engine misfire diagnostic device
JPH06146999A (en) Combustion condition detector for internal combustion engine
EP1384878B1 (en) Control apparatus and control method of engine
JP2000328930A (en) Catalyst deterioration diagnostic system for engine
JPH0436044A (en) Diagnostic device for misfire of engine
JPH07310585A (en) Diagnostic device for cylinder internal pressure sensor
JP3961745B2 (en) Misfire detection device for internal combustion engine
JP2010150953A (en) Misfire diagnostic device for internal combustion engine
JPH10148153A (en) Misfire diagnostic device for engine
JPH07103055A (en) Steady operation discriminating method for engine
JP2003028000A (en) Diagnostic system for intake air temperature sensor for engine
JPH10148154A (en) Fuel injection control device for engine
JPH04265475A (en) Mis-fire judgment for respective cylinders of engine
JPH10121991A (en) Failure diagnosing device for engine intake-air control system
JP3544228B2 (en) Self-diagnosis device for in-cylinder pressure sensor and fail-safe device for control based on in-cylinder pressure in internal combustion engine
JP2001073861A (en) Diagnosing device for exhaust gas temperature sensor
JPH0560004A (en) Misfire detecting device for internal combustion engine
JP2000291485A (en) Misfire detecting device for engine
JP2001271639A (en) Catalyst deterioration diagnostic device for engine
JP3906521B2 (en) Engine misfire diagnostic device
JPH07318458A (en) Diagnostic device for cylinder internal pressure sensor
JP4037485B2 (en) Engine catalyst deterioration diagnosis device

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20031216

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20060525

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 or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20090929

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20100929

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20100929

Year of fee payment: 4

FPAY Renewal fee payment (event 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