説明

内燃機関の失火異常検出装置

【課題】失火が発生したときの噴射状態に合わせて異常時運転状態を記憶する。
【解決手段】失火が発生した際の内燃機関(エンジン)の運転状態(エンジン回転数、負荷率、暖機状態)と噴射状態(DUAL噴射、DI噴射、PFI噴射)とを記憶し、噴射状態ごとに異常時運転状態を求めるとともに、失火異常の検出期間内で失火が発生した各噴射状態ごとの失火の回数に基づいて異常時噴射状態を決定する。そして、その決定した異常時噴射状態での異常時運転状態を記憶する。このような処理により、失火が発生したときの噴射状態に合わせて異常時運転状態を記憶することができるので、失火異常検出の後に、正常復帰判定を実施するにあたり、その正常復帰判定を適正に行うことができる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、筒内に向けて燃料を噴射する筒内噴射用インジェクタと、吸気通路(吸気ポート)内に向けて燃料を噴射する吸気通路噴射用インジェクタとを備えた内燃機関の失火異常検出装置に関する。
【背景技術】
【0002】
車両等に搭載される内燃機関(エンジン)として、筒内に向けて燃料を噴射するための筒内噴射用インジェクタと、吸気通路(吸気ポート)内に向けて燃料を噴射するための吸気通路噴射用インジェクタとを備えた、いわゆるデュアル噴射型の内燃機関が知られている。このようなデュアル噴射型の内燃機関では、機関の運転状態に応じて、2つのインジェクタを切り替えて使用することにより、例えば、低負荷運転領域での成層燃焼と高負荷運転領域での均質燃焼を実現することができる。また、筒内噴射用インジェクタと吸気通路噴射用インジェクタとの噴射比率(噴き分け率)を調整することにより燃費特性や出力特性の改善を図ることができる。
【0003】
このような内燃機関にあっては、例えば、失火異常の検出とその異常からの正常復帰とが行われている。その失火異常検出処理の一例として、失火カウンタのカウント数が所定値以上となったときの機関回転数・機関負荷(負荷率)・暖機状態に加えて、噴射状態(ポート噴射、筒内噴射、デュアル噴射)を記憶し、この記憶した機関運転状態及び噴射状態と類似した条件のときに正常復帰判定を行うという技術がある(例えば、特許文献1参照)。このような失火異常検出方法(従来技術)によれば、機関運転状態(機関回転数・機関負荷(負荷率)・暖機状態)に加えて、噴射状態も条件として記憶しているので、噴射状態が異なるのに正常復帰してしまうことを低減することができる。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2011−026961号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
ところで、上記した失火異常検出方法では、失火カウンタのカウント数が所定値以上となったときに、単に、機関運転状態及び噴射状態を記憶しているのみであるため、その記憶した噴射状態と実際に失火が発生した機関運転状態とが乖離する場合がある。例えば、失火が発生した機関運転状態が筒内噴射状態であるのにも関わらず、その失火が発生した噴射状態がデュアル噴射状態であると記憶する場合がある。こうした状況になると、正常復帰判定を適正に行えなくなる場合がある。
【0006】
本発明はそのような実情を考慮してなされたもので、筒内に向けて燃料を噴射する筒内噴射用インジェクタと、吸気通路内に向けて燃料を噴射する吸気通路噴射用インジェクタとを備えた内燃機関であって、失火が発生したときの噴射状態に合わせて異常時運転状態を記憶することが可能な失火検出装置を備えた内燃機関を提供することを目的とする。
【課題を解決するための手段】
【0007】
本発明は、燃焼室内に燃料を直接噴射する筒内用燃料噴射弁と、吸気通路に燃料を噴射する吸気通路用燃料噴射弁とを備え、噴き分け率の異なる複数の噴射状態のうちの1つの噴射状態に選択的に切り替えることが可能な内燃機関の失火異常検出装置を前提としている。そして、このような失火異常検出装置において、失火が発生した際の前記内燃機関の運転状態と噴射状態とを記憶し、前記複数の噴射状態ごとに異常時運転状態を求めるとともに、所定の期間内で失火が発生した際の複数の噴射状態の中から所定の条件に基づいて異常時噴射状態を決定し、その決定した異常時噴射状態での前記異常時運転状態を記憶することを技術的特徴としている。より具体的には、前記処理にて決定した異常時噴射状態と、この異常時噴射状態における異常時運転状態とを対応づけて記憶することを特徴としている。
【0008】
本発明において、前記処理により決定した異常時噴射状態と同一の噴射状態であり、かつ、前記処理により記憶した異常時運転状態と類似運転状態であるときに、正常復帰判定を行うようにする。なお、類似運転状態とは、前記処理により記憶した異常時運転状態と同一の機関運転状態、または、当該異常時運転状態に対して予め設定された所定範囲内にある機関運転状態のことである。
【0009】
本発明によれば、失火が発生したときの噴射状態に合わせて異常時運転状態を記憶することができるので、失火異常検出の後に、正常復帰判定を実施するにあたり、その正常復帰判定を適正に行うことができる。
【0010】
ここで、本発明において、噴き分け率の異なる複数の噴射状態としては、例えば、筒内用燃料噴射弁のみによって燃料を噴射する噴射状態(DI噴射)、吸気通路用燃料噴射弁のみによって燃料を噴射する噴射状態(PFI噴射)、筒内用燃料噴射弁及び吸気通路用燃料噴射弁によって燃料を噴射する噴射状態(DUAL噴射)を挙げることができる。
【0011】
本発明において、上記した異常時噴射状態を決定する際の具体的な手法としては、所定の期間(失火異常の検出期間:図8参照)内で発生する、各噴射状態ごとの失火の回数(具体的には、各噴射状態ごとの失火カウンタのカウント値)に基づいて決定するという方法を挙げることができる。
【0012】
この場合、例えば、所定の期間内おいて失火回数が最も多い噴射状態を異常時噴射状態と決定するようにしてもよい。また、例えば、噴き分け率が異なる複数の噴射状態が、DUAL噴射、DI噴射、PFI噴射の3つの形態である場合、DUAL噴射での失火回数が所定の判定値以上である場合は、DUAL噴射を異常時噴射状態(DUAL異常)と決定する。一方、DUAL噴射での失火回数が判定値未満である場合は、DI噴射での失火回数とPFI噴射での失火回数とを比較し、DI噴射での失火回数の方が多い場合はDI噴射を異常噴射状態(DI異常)と決定し、PFI噴射での失火回数の方が多い場合にはPFI噴射を異常時噴射状態(PFI異常)と決定するようにしてもよい。
【発明の効果】
【0013】
本発明によれば、失火が発生したときの噴射状態に合わせて異常時運転状態を記憶することができるので、失火異常検出の後に、正常復帰判定を実施するにあたり、その正常復帰判定を適正に行うことができる。
【図面の簡単な説明】
【0014】
【図1】本発明を適用するエンジン(内燃機関)の一例を示す概略構成図である。
【図2】ECU等の制御系の構成を示すブロック図である。
【図3】燃料噴射の噴き分け率マップの一例を示す図である。
【図4】ECUが実行する失火異常検出処理の一例を示すフローチャートである。
【図5】正常復帰領域を示す図である。
【図6】従来の失火異常検出方法の問題点を示す図である。
【図7】ECUが実行する失火異常検出処理の他の例を示すフローチャートである。
【図8】失火異常の検出期間を示す図である。
【発明を実施するための形態】
【0015】
以下、本発明の実施形態を図面に基づいて説明する。
【0016】
−エンジン−
図1は本発明を適用するエンジンの概略構成を示す図である。なお、図1にはエンジンの1気筒の構成のみを示している。
【0017】
この例のエンジン1は、車両に搭載される4気筒(第1気筒#1〜第4気筒#4)のガソリンエンジンであって、その各気筒を構成するシリンダブロック1a内には上下方向に往復動するピストン1cが設けられている。ピストン1cはコネクティングロッド16を介してクランクシャフト15に連結されており、ピストン1cの往復運動がコネクティングロッド16によってクランクシャフト15の回転へと変換される。
【0018】
クランクシャフト15にはシグナルロータ17が取り付けられている。シグナルロータ17の外周面には複数の歯(突起)17aが等角度(この例では、例えば10°CA(クランク過度))ごとに設けられている。また、シグナルロータ17は、歯17aの2枚分が欠落した欠歯部17bを有している。
【0019】
シグナルロータ17の側方近傍には、クランク角を検出するクランクポジションセンサ(エンジン回転数センサ)201が配置されている。クランクポジションセンサ201は、例えば電磁ピックアップであって、クランクシャフト15が回転する際にシグナルロータ17の歯17aに対応するパルス状の信号(電圧パルス)を発生する。このクランクポジションセンサ201の出力信号からエンジン回転数NEを算出することができる。
【0020】
エンジン1のシリンダブロック1aにはエンジン冷却水の水温を検出する水温センサ203が配置されている。また、シリンダブロック1aの上端にはシリンダヘッド1bが設けられており、このシリンダヘッド1bとピストン1cとの間に燃焼室1dが形成されている。エンジン1の燃焼室1dには点火プラグ3が配置されている。点火プラグ3の点火タイミングはイグナイタ4によって調整される。イグナイタ4はECU(Electronic Control Unit)100によって制御される。
【0021】
エンジン1のシリンダブロック1aの下部には、潤滑油(エンジンオイル)を貯留するオイルパン18が設けられている。オイルパン18に貯留された潤滑油は、エンジン1の運転時に、異物を除去するオイルストレーナを介してオイルポンプ(図示せず)によって汲み上げられて、ピストン1c、クランクシャフト15、コネクティングロッド16などエンジン各部に供給され、その各部の潤滑・冷却等に使用される。そして、このようにして供給された潤滑油は、エンジン各部の潤滑・冷却等のために使用された後、オイルパン18に戻され、再びオイルポンプによって汲み上げられるまでオイルパン18内に貯留される。
【0022】
エンジン1の燃焼室1dには吸気通路11と排気通路12とが接続されている。吸気通路11の一部は吸気ポート11a及び吸気マニホールド11bによって形成されている。また、排気通路12の一部は排気ポート12a及び排気マニホールド12bによって形成されている。
【0023】
吸気通路11には、吸入空気(新気)を濾過するエアクリーナ7、エアフロメータ204、吸気温センサ207、及び、エンジン1の吸入空気量を調整するためのスロットルバルブ5などが配置されている。エアフロメータ204は、吸入空気量(新規空気量)を検出する。吸気温センサ207は、エンジン1に吸入される空気の温度(吸気温)を検出する。
【0024】
スロットルバルブ5のスロットル開度はECU100によって駆動制御される。具体的には、クランクポジションセンサ201の出力信号から算出されるエンジン回転数NE、及び、ドライバのアクセルペダル踏み込み量(アクセル開度)等のエンジン1の運転状態に応じた最適な吸入空気量(目標吸気量)が得られるようにスロットルバルブ5のスロットル開度を制御している。より詳細には、スロットル開度センサ205を用いてスロットルバルブ5の実際のスロットル開度を検出し、その実スロットル開度が、上記目標吸気量が得られるスロットル開度(目標スロットル開度)に一致するようにスロットルバルブ5のスロットルモータ6をフィードバック制御している。なお、こうしたスロットルバルブ5の制御システムは、「電子スロットルシステム」と称されており、アイドリング運転時などにおいて、ドライバのアクセルペダルの操作とは独立してスロットル開度を制御することも可能である。
【0025】
吸気通路11と燃焼室1dとの間に吸気バルブ13が設けられており、この吸気バルブ13を開閉駆動することにより、吸気通路11と燃焼室1dとが連通または遮断される。また、排気通路12と燃焼室1dとの間に排気バルブ14が設けられており、この排気バルブ14を開閉駆動することにより、排気通路12と燃焼室1dとが連通または遮断される。これら吸気バルブ13及び排気バルブ14の開閉駆動は、クランクシャフト15の回転がタイミングチェーン等を介して伝達される吸気カムシャフト21及び排気カムシャフト22の各回転によって行われる。
【0026】
吸気カムシャフト21の近傍には、特定の気筒(例えば第1気筒#1)のピストン1cが圧縮上死点(TDC)に達したときにパルス状の信号を発生するカムポジションセンサ202が設けられている。カムポジションセンサ202は、例えば電磁ピックアップであって、吸気カムシャフト21に一体的に設けられたロータ外周面の1個の歯(図示せず)に対向するように配置されており、その吸気カムシャフト21が回転する際にパルス状の信号(電圧パルス)を出力する。なお、吸気カムシャフト21(及び排気カムシャフト22)は、クランクシャフト15の1/2の回転速度で回転するので、クランクシャフト15が2回転(720°回転)するごとにカムポジションセンサ202が1つのパルス状の信号を発生する。
【0027】
このようなカムポジションセンサ202及び上記クランクポジションセンサ201の各出力信号から、エンジン運転時において、エンジン1の各気筒(第1気筒#1〜第4気筒#4)のピストン位置(吸入行程・圧縮行程・爆発行程・排気行程)を認識することができ、精密な燃料噴射制御や点火時期制御などのエンジン運転制御を行うことができる。
【0028】
一方、排気通路12には三元触媒9が配置されている。三元触媒9においては、燃焼室1dから排気通路12に排気された排気ガス中のCO、HCの酸化及びNOxの還元が行われ、それらを無害なCO2、H2O、N2とすることで排気ガスの浄化が図られている。
【0029】
三元触媒9の上流側(排気流れの上流側)の排気通路12に空燃比(A/F)センサ209が配置されている。空燃比センサ209は、空燃比に対してリニアな特性を示すセンサである。また、三元触媒9の下流側の排気通路12にはO2センサ210が配置されている。O2センサ210は、排気ガス中の酸素濃度に応じて起電力を発生するものであって、理論空燃比に相当する電圧(比較電圧)よりも出力が高いときはリッチと判定し、逆に比較電圧よりも出力が低いときはリーンと判定する。
【0030】
<燃料噴射系>
次に、エンジン1の燃料噴射系について説明する。
【0031】
エンジン1の各気筒には、それぞれ、各燃焼室1d内に燃料を直接噴射することが可能な筒内噴射用インジェクタ(筒内用燃料噴射弁)2aが配置されている。これら筒内噴射用インジェクタ2aは、共通の高圧燃料用デリバリパイプ20aに接続されている。
【0032】
また、エンジン1の吸気通路11には、各吸気ポート11a内に燃料を噴射可能なポート噴射用インジェクタ(吸気通路用燃料噴射弁)2bが配置されている。ポート噴射用インジェクタ2bは各気筒毎に設けられている。これらポート噴射用インジェクタ2bは共通の低圧燃料用デリバリパイプ20bに接続されている。
【0033】
上記高圧燃料用デリバリパイプ20a、及び、上記低圧燃料用デリバリパイプ20bへの燃料供給は、低圧ポンプとしてのフィードポンプ301及び高圧ポンプ302によって行われる。フィードポンプ301は、燃料タンク300内の燃料(ガソリン等)を汲み上げて、低圧燃料用デリバリパイプ20b及び高圧ポンプ302に供給する。高圧ポンプ302は、フィードポンプ301からの低圧燃料を加圧して高圧燃料用デリバリパイプ20aに供給する。
【0034】
筒内噴射用インジェクタ2aは、所定電圧が印加されたときに開弁して燃焼室1d内に燃料を直接噴射する電磁駆動式の開閉弁である。筒内噴射用インジェクタ2aの開閉(噴射時間・噴射タイミング)は、ECU100によってデューティ制御される。
【0035】
ポート噴射用インジェクタ2bも、同様に、所定電圧が印加されたときに開弁して吸気ポート11a内に燃料を噴射する電磁駆動式の開閉弁である。ポート噴射用インジェクタ2bについても、ECU100によって開閉(噴射時間・噴射タイミング)がデューティ制御される。
【0036】
なお、筒内噴射用インジェクタ2aによる燃料噴射(DI噴射)と、ポート噴射用インジェクタ2bによる燃料噴射(PFI噴射)との噴き分け率(PFI噴き分け率:KPFI)等については後述する。
【0037】
そして、以上の筒内噴射用インジェクタ2a及びポート噴射用インジェクタ2bのいずれか一方または両方のインジェクタからの燃料噴射により、燃焼室1b内に混合気(燃料+空気)が形成される。この混合気は点火プラグ3にて点火されて燃焼・爆発する。このときに生じた高温高圧の燃焼ガスによりピストン1cが往復動され、クランクシャフト15が回転されてエンジン1の駆動力(出力トルク)が得られる。燃焼室1d内で燃焼した燃焼ガスは、排気バルブ14の開弁にともない排気通路12に排出される。
【0038】
−ECU−
ECU100は、図2に示すように、CPU(Central Processing Unit)101、ROM(Read Only Memory)102、RAM(Random Access Memory)103、バックアップRAM104、失火カウンタ110、及び、検出期間カウンタ120などを備えている。
【0039】
ROM102は、各種制御プログラムや、それら各種制御プログラムを実行する際に参照されるマップ等が記憶されている。CPU101は、ROM102に記憶された各種制御プログラムやマップに基づいて各種の演算処理を実行する。また、RAM103は、CPU101での演算結果や各センサから入力されたデータ等を一時的に記憶するメモリであり、バックアップRAM104は、例えばエンジン1の停止時にその保存すべきデータ等を記憶する不揮発性のメモリである。
【0040】
検出期間カウンタ120は、エンジン1の累積回転数(Rev)を計測するカウンタであって、この検出期間カウンタ120のカウント値が、例えば1000Revに達した時点で、1回の失火検出期間(図8参照)を終了する。
【0041】
失火カウンタ110は、後述するように、エンジン1の各気筒#1〜#4の回転変動量ΔNEが失火判定閾値を超える度に、カウント値が1つずつカウントアップ(インクリメント)する総失火カウンタと、噴射状態(DUAL噴射、DI噴射、PFI噴射)ごとに失火回数をカウントする失火時DUALカウンタ、失火時DIカウンタ、及び、失火時PFIカウンタとを備えている。この例の失火カウンタ110にあっては、図8に示す検出期間中に失火が発生したときには、その失火が発生するごとに総失火カウンタのカウント値が1つずつカウントアップされ、その失火発生時の噴射状態に応じて失火時DUALカウンタ、失火時DIカウンタ、または、失火時PFIカウンタのカウント値が1つずつカウントアップされる。
【0042】
以上のCPU101、ROM102、RAM103及びバックアップRAM104、並びに失火カウンタ110及び検出期間カウンタ120は、バス107を介して互いに接続されるとともに、入力インターフェース105及び出力インターフェース106と接続されている。
【0043】
入力インターフェース105には、クランクポジションセンサ(エンジン回転数センサ)201、カムポジションセンサ202、水温センサ203、エアフロメータ204、スロットル開度センサ205、アクセルペダルの踏み込み量に応じた検出信号を出力するアクセル開度センサ206、吸気温センサ207、インマニ圧センサ208、空燃比センサ209、O2センサ210、筒内噴射用インジェクタ2aに供給する高圧燃料の圧力(燃圧)を検出する高圧燃料用燃圧センサ211、及び、ポート噴射用インジェクタ2bに供給する低圧燃料の圧力(燃圧)を検出する低圧燃料用燃圧センサ212などの各種センサ類が接続されている。また、入力インターフェース105にはイグニッションスイッチ213が接続されており、このイグニッションスイッチ213がオン操作(IG−ON)されると、スタータモータ(図示せず)によるエンジン1のクランキングが開始される。
【0044】
出力インターフェース106には、筒内噴射用インジェクタ2a、ポート噴射用インジェクタ2b、点火プラグ3のイグナイタ4、及び、スロットルバルブ5のスロットルモータ6などが接続されている。
【0045】
そして、ECU100は、上記した各種センサの検出信号に基づいて、下記の燃料噴射量制御、点火プラグ3の点火時期制御、及び、スロットルバルブ5のスロットルモータ6の駆動制御(吸入空気量制御)などを含むエンジン1の各種制御を実行する。さらに、ECU100は、下記の「失火検出処理」及び「失火異常検出処理」を実行する。
【0046】
以上のECU100により実行されるプログラムによって本発明の内燃機関(エンジン)失火検出装置が実現される。
【0047】
−燃料噴射量制御−
まず、ECU100のROM102には、図3に示す噴き分け率マップが記憶されている。
【0048】
図3の噴き分け率マップは、エンジン1の運転状態を示すエンジン回転数NE及び負荷率KLをパラメータとして、燃費(燃料消費率)特性や出力特性などを考慮して、燃料噴射形態を実験・シミュレーション等によって適合したマップであって、筒内噴射用インジェクタ2aのみによって燃料が噴射されるDI領域(直噴領域)、ポート噴射用インジェクタ2bのみによって燃料が噴射されるPFI領域(ポート噴射領域)、及び、筒内噴射用インジェクタ2a及びポート噴射用インジェクタ2bによって燃料が噴射されるDUAL領域(直噴及びポート噴射領域(PFI+DI))が設定されている。
【0049】
そして、ECU100は、クランクポジションセンサ201の出力信号から得られるエンジン回転数NE及びエンジン負荷率KLに基づいて、図3のマップを参照して燃料噴射の噴き分け率(ポート噴射用インジェクタ2bから噴射する燃料の噴き分け率KPFI(%))を求め、その噴き分け率KPFI及び要求噴射量に基づいて噴射時間及び噴射タイミングを算出して燃料噴射を実行する。
【0050】
具体的には、エンジン運転状態(エンジン回転数NE・負荷率KL)が、DI領域(噴き分け率KPFI=0%)である場合、DI要求噴射量、高圧燃料用燃圧センサ211の出力信号から得られる燃圧、及び、筒内噴射用インジェクタ2aの容量(流量サイズ)に基づいて、筒内噴射用インジェクタ2aから噴射する高圧燃料のDI噴射時間及びDI噴射タイミングを算出し、その算出したDI噴射時間及びDI噴射タイミングに基づいて筒内噴射用インジェクタ2aを開閉制御して燃料噴射を実行する。
【0051】
エンジン運転状態(エンジン回転数NE・負荷率KL)が、PFI領域(噴き分け率KPFI=100%)である場合、PFI要求噴射量、低圧燃料用燃圧センサ212の出力信号から得られる燃圧、及び、ポート噴射用インジェクタ2bの容量(流量サイズ)に基づいてポート噴射用インジェクタ2bから噴射する低圧燃料のPFI噴射時間、及び、PFI噴射タイミングを算出し、その算出したPFI噴射時間及びPFI噴射タイミングに基づいてポート噴射用インジェクタ2bを開閉制御して燃料噴射を実行する。
【0052】
エンジン運転状態(エンジン回転数NE・負荷率KL)が、DUAL領域(0%<噴き分け率KPFI<100%)である場合、噴き分け率KPFIに基づいて筒内噴射用インジェクタ2aのDI要求噴射量(全体要求噴射量×(1−噴き分け率KPFI/100))と、ポート噴射用インジェクタ2bのPFI要求噴射量(全体要求噴射量×噴き分け率KPFI/100)とを求め、上記と同様にして、DI噴射時間及びDI噴射タイミングと、PFI噴射時間及びPFI噴射タイミングとを算出する。そして、その算出したDI噴射時間及びDI噴射タイミングに基づいて筒内噴射用インジェクタ2aを開閉制御するとともに、算出したPFI噴射時間及びPFI噴射タイミングに基づいてポート噴射用インジェクタ2bを開閉制御して燃料噴射を実行する。
【0053】
ここで、上記要求噴射量は、エンジン1で燃焼された混合気の空燃比が理論空燃比となる燃料の量であって、例えば、エンジン運転状態(エンジン回転数NE及びエンジン負荷率KL)に基づいてマップ等を用いて算出することができる。また、エンジン負荷率KLは、例えば、エンジン回転速度NE、エアフロメータ204の出力信号から得られる吸入空気量、スロットル開度センサ205の出力信号から得られるスロットル開度などに基づいてマップ等を用いて算出することができる。
【0054】
−失火検出処理−
次に、ECU100が実行する失火検出処理について説明する。
【0055】
まず、エンジン1の4つの気筒#1〜#4のうち、ある気筒(例えば第1気筒#1)に失火が発生した場合、その気筒(複数の気筒の場合も含む)の爆発行程におけるエンジン回転速度が低下するので、この失火が生じた気筒(第1気筒#1)の爆発行程中においてクランクシャフト15が一定クランク角度を回転するのに要する時間が、他の気筒(例えば第2気筒#2〜第4気筒#4)の爆発行程時におけるその時間よりも長くなる。したがって、これらの時間を計測して比較することにより失火の発生を認識することが可能になる。
【0056】
その具体的な処理の一例について説明する。
【0057】
まず、ECU100は、クランクポジションセンサ(エンジン回転数センサ)201及びカムポジションセンサ202の各出力信号を所定のクランク角度毎(例えば30°CA毎)に取り込み、それらの各信号に基づいて、第1気筒#1が爆発行程にあるときに、この爆発行程中において、クランクシャフト15が一定クランク角度(例えば180°CA)を回転するのに要する経過時間T1と、この第1気筒#1の爆発行程よりも1回前(360°CA前)に爆発行程を迎えていた第2気筒#2の爆発行程中においてクランクシャフト15が一定のクランク角度(例えば180°CA)を回転するのに要する経過時間T2との差を演算して、第1気筒#1の回転変動量ΔNE1(=T1−T2)を得る。
【0058】
また、同様にして、エンジン1の各気筒#2〜#4の爆発行程中においてクランクシャフト15が一定クランク角度(例えば180°CA)を回転するのに要する経過時間T3(第3気筒#3)、T4(第4気筒#4)、T2(第2気筒#2)を順次演算して、第3気筒#3の回転変動量ΔNE3(=T3−T1)、第4気筒#4の回転変動量ΔNE4(=T4−T3)、及び、第2気筒#2の回転変動量ΔNE2(=T2−T4)を得る。
【0059】
そして、ECU100は、上記演算により求めた各気筒#1〜#4の回転変動量ΔNE1〜ΔNE4と失火判定閾値とを比較し、回転変動量ΔNEが失火判定閾値を超えている気筒がある場合は「失火が発生している」と判定する。そして、この回転変動量ΔNEが失火判定閾値を超える度に、ECU100に備えられている失火カウンタ(総失火カウンタ)110が1つずつインクリメントされる。
【0060】
ここで、回転変動量ΔNEに対して設定する失火判定閾値は、失火が発生するエンジン1の回転変動量を実験・シミュレーション等によって取得しておき、その結果を基に経験的に適合した値である。この失火判定閾値はECU100のROM102内に記憶されている。また、失火判定閾値は、回転変動量ΔNEなどに応じて可変に設定するようにしてもよい。なお、各気筒#1〜#4の回転変動量は、他の公知の方法によって認識(演算)するようにしてもよい。
【0061】
また、エンジン1の失火を検出する方法としては、上記したエンジン1の回転変動量を用いて失火を検出する方法に限られることなく、例えば、触媒の前後に配置された空燃比センサとO2センサ(酸素センサ)との出力信号(2つのセンサ検出値の差)に基づいて失火の発生を検出する方法など、他の公知の方法を採用してもよい。
【0062】
−失火異常検出処理−
まず、上述したように、従来の失火異常検出方法にあっては、失火カウンタのカウント数が所定値以上となったときに、単に、機関運転状態及び噴射状態を記憶しているのみであるため、その記憶した噴射状態と実際に失火が発生した機関運転状態(異常時運転状態)とが乖離する場合がある。例えば、図6に示すように、失火が発生した異常時運転状態がPFI領域(ポート噴射領域)内のポイントであるのにも関わらず、異常時噴射状態をDUAL噴射状態と記憶してしまう場合がある。こうした状況になると、DUAL領域と正常判定領域とを同時に満たす領域(図中のハッチング領域)が狭くなるため、正常復帰判定が難しくなる。
【0063】
このような点を解消するため、本実施形態では、失火異常が発生した際の運転状態に合わせた異常時運転状態を記憶できるようにする。
【0064】
その具体的な処理の例(失火異常検出処理)について図4のフローチャートを参照して説明する。図4の処理ルーチンはECU100において例えば数msecごとに繰り返して実行される。
【0065】
ここで、本実施形態において対象とする運転状態は、エンジン回転数NE、負荷率KL及び暖機状態とする。また、暖機状態は、冷間時(水温が暖機温度(例えば80℃)未満の状態)と高温時(水温が暖機温度以上の状態)のいずれか一方の状態とする。
【0066】
また、本実施形態にあっては、図4の制御ルーチンが開始された時点からECU100内の検出期間カウンタ120のカウントが開始され(別ルーチンでカウント)、エンジン1(クランクシャフト15)が1回転(1Rev)するごとに、検出期間カウンタ120のカウント値が1つずつカウントアップされる。なお、ECU100は、クランクポジションセンサ201の出力信号に基づいてエンジン1の回転数を認識している。
【0067】
図4の制御ルーチンが開始されると、まずは、ステップST101において、失火カウンタ(総失火カウンタ)110のカウント値がアップされたか否かを判定する。
【0068】
ステップST101の判定結果が否定判定(NO)である場合(失火カウンタ110のカウントアップがない場合)はリターンする。ステップST101の判定結果が肯定判定(YES)である場合(失火カウンタ110のカウントアップがある場合)はステップST102に進む。
【0069】
ステップST102では、失火が発生したとき(失火カウンタ110のカウントアップがあったとき)の異常時噴射状態がDUAL噴射(DUAL異常)であるか否かを判定する。その判定結果が肯定判定(YES)である場合はステップST103に進む。なお、DUAL異常時である場合、失火カウンタ110の失火時DUALカウンタのカウント値がインクリメントされる。
【0070】
ステップST103ではDUAL異常時運転状態を更新する。その後にステップST105に進む。このステップST102で実行する異常時運転状態の更新処理について、各運転状態(エンジン回転数NE、負荷率KL、暖機状態)ごとに具体的に説明する。
【0071】
(エンジン回転数NE)
失火異常時(失火カウンタ110のカウントアップ時)のエンジン回転数NEに対して下記の式(1)によりなまし処理(1/2なまし処理)を施してエンジン回転数NEを更新する(更新値を算出する)。
【0072】
NE(i)=(NE(i-1)+NE(i))/2 ・・・(1)
この式(1)において、NE(i)は今回の失火異常時(DUAL異常時)のエンジン回転数、NE(i-1)は前回の失火異常時(DUAL異常時)のエンジン回転数である。
【0073】
なお、上記式(1)を用いた場合、例えば、前回の失火異常時のエンジン回転数NEが1200rpmであり、今回の失火異常時のエンジン回転数NEが1400rpmである場合、エンジン回転数NEの更新値は1300rpmとなり、次回の失火異常時のエンジン回転数NEが1600rpmである場合、その時点でのエンジン回転数NEの更新値は1450rpmとなる。
【0074】
(負荷率KL)
失火異常時(失火カウンタ110のカウントアップ時)の負荷率KLに対して下記の式(2)によりなまし処理(1/2なまし処理)を施して負荷率KLを更新する(更新値を算出する)。
【0075】
KL(i)=(KL(i-1)+KL(i))/2 ・・・(2)
この式(2)において、KL(i)は今回の失火異常時(DUAL異常時)の負荷率、KL(i-1)は前回の失火異常時(DUAL異常時)の負荷率である。
【0076】
なお、上記式(2)を用いた場合、例えば、前回の失火異常時の負荷率KLが30%であり、今回の失火異常時の負荷率KLが40%である場合、負荷率KLの更新値は35%となり、次回の失火異常時の負荷率KLが45%である場合、その時点での負荷率KLの更新値は40%となる。
【0077】
(暖機状態)
失火異常時(失火カウンタ110のカウントアップ時)の暖機状態については、最新の状態(冷間時または高温時)に順次更新していく。例えば、前回の失火異常時(DUAL異常時)の暖機状態が高温時であり、今回の失火異常時(DUAL異常時)の暖機状態が冷間時である場合は、暖機状態を「冷間時」に更新する。また、このような更新処理に替えて、検出期間中(図8参照)に、1度でも冷間時に失火異常(DUAL異常時)が発した場合は、暖機状態の更新値を「冷間時」に固定するようにしてもよい。
【0078】
上記ステップST102の判定結果が否定判定(NO)である場合、ステップST104に進む。ステップST104では、失火が発生したとき(失火カウンタ110のカウントアップがあったとき)の異常時噴射状態がDI噴射(DI異常)であるか否かを判定する。その判定結果が肯定判定(YES)である場合はステップST113に進む。なお、DI異常時である場合、失火カウンタ110の失火時DIカウンタのカウント値がインクリメントされる。
【0079】
ステップST113では、上記したステップST103と同様な処理により、DI異常時の運転状態を更新する。つまり、失火異常時(DI異常時)のエンジン回転数NE及び負荷率KLについては、上記した式(1)及び式(2)によりなまし処理を施して、DI異常時におけるエンジン回転数NE及び負荷率KLを更新する。また、DI異常時の暖機状態については、最新の状態(冷間時または高温時)に更新する(もしくは、検出期間中に冷間時異常があれば、暖機状態を冷間時に固定する)。この更新処理を行った後にステップST105に進む。
【0080】
上記ステップST104の判定結果が否定判定(NO)である場合、つまり、失火が発生したとき(失火カウンタ110のカウントアップがあったとき)の異常時噴射状態がPFI噴射である場合はステップST123に進む。なお、PFI異常時である場合、失火カウンタ110の失火時PFIカウンタのカウント値がインクリメントされる。
【0081】
ステップST123では、上記したステップST103と同様な処理により、PFI異常時の運転状態を更新する。つまり、失火異常時(PFI異常時)のエンジン回転数NE及び負荷率KLについては、上記した式(1)及び式(2)によりなまし処理を施して、PFI異常時におけるエンジン回転数NE及び負荷率KLを更新する。また、PFI異常時の暖機状態については、最新の状態(冷間時または高温時)に更新する(もしくは、検出期間中に冷間時異常があれば、暖機状態を冷間時に固定する)。この更新処理を行った後にステップST105に進む。
【0082】
ステップST105では、検出期間カウンタ120のカウント値が1000Revに達しているか否かを判定する。その判定結果が否定判定(NO)である場合(図8に示す検出期間内である場合)はリターンしてステップST101に戻る。以降、[ステップST101〜ステップST103]、[ステップST101、ステップST102、ステップST104、ステップST113]、または、[ステップST101、ステップST102、ステップST104、ステップST123]の処理が、ステップST105の判定結果が肯定判定(YES)となるまで順次繰り返して実行され、その繰り返し処理の過程において、失火が発生するごとに、その失火発生時の噴射状態に応じて、上述したDUAL異常時運転状態、DI異常時運転状態、及び、PFI異常時運転状態がそれぞれ更新されていく。
【0083】
そして、検出期間カウンタ120のカウント値が1000Revに達した時点(ステップST105の判定結果が肯定判定(YES)となった時点)でステップST106に進む。ここで、検出期間カウンタ120のカウント値が1000Revに達した時点(検出期間終了時)での、DUAL異常時運転状態の更新値(最終なまし値等)、DI異常時運転状態の更新値(最終なまし値等)、PFI異常時運転状態の更新値(最終なまし値等)を、例えばRAM103内に記憶しておく。
【0084】
ステップST106では異常時噴射状態を決定する。具体的には、上記失火時DUALカウンタのカウント値が所定の判定値以上である場合、DUAL噴射を異常時噴射状態(DUAL異常)と決定する。一方、失火時DUALカウンタのカウント値が判定値未満である場合、上記失火時DIカウンタのカウント値と、上記失火時PFIカウンタのカウント値とを比較し、カウント値が大きい方の噴射状態を異常時噴射状態と決定する。つまり、失火時DIカウンタのカウント値の方が大きい場合は、DI噴射を異常時噴射状態(DI異常)と決定し、失火時PFIカウンタのカウント値の方が大きい場合は、PFI噴射を異常時噴射状態(PFI異常)と決定する。
【0085】
なお、上記ステップST106において異常時噴射状態を決定する処理が、本発明でいう「所定の期間内で失火が発生した際の複数の噴射状態の中から所定の条件に基づいて異常時噴射状態を決定」することに相当する。
【0086】
ここで、上記失火時DUALカウンタのカウント値に対して設定する判定値は、「1」であってもよいし、「2」以上の正の整数であってもよい。また、失火時DIカウンタのカウント値及び失火時PFIカウンタのカウント値に対しても判定値を設定しておき、その各カウント値がともに判定値未満である場合は、失火異常なしと判定するようにしてもよい。
【0087】
次に、ステップST107において、上記ステップST106で決定した異常時噴射状態が「DUAL異常」であるか否かを判定し、その判定結果が肯定判定(YES)である場合はステップST108に進む。
【0088】
ステップST108では、上記検出期間カウンタ120のカウント値が1000Revに達した時点(検出期間終了時)でのDUAL異常時運転状態の更新値を、例えばRAM103内に記憶する。具体的には、上記ステップST106において決定した異常時噴射状態(この場合はDUAL異常)とそのDUAL異常時運転状態の更新値(エンジン回転数NE、負荷率KL、暖機状態)とを対応づけて記憶する。
【0089】
ステップST107の判定結果が否定判定(NO)である場合はステップST109に進む。ステップST109では、上記ステップST106で決定した異常時噴射状態が「DI異常」であるか否かを判定し、その判定結果が肯定判定(YES)である場合はステップST118に進む。
【0090】
ステップST118では、上記検出期間カウンタ120のカウント値が1000Revに達した時点(検出期間終了時)でのDI異常時運転状態の更新値を、例えばRAM103内に記憶する。具体的には、上記ステップST106において決定した異常時噴射状態(この場合はDI異常)とそのDI異常時運転状態(エンジン回転数NE、負荷率KL、暖機状態)の更新値とを対応づけて記憶する。
【0091】
上記ステップST107の判定結果が否定判定(NO)である場合、つまり、上記ステップST106で決定した異常時噴射状態が「PFI異常」である場合はステップST128に進む。
【0092】
ステップST128では、上記検出期間カウンタ120のカウント値が1000Revに達した時点(検出期間終了時)でのPFI異常時運転状態の更新値を、例えばRAM103内に記憶する。具体的には、上記ステップST106において決定した異常時噴射状態(この場合はPFI異常)とそのPFI異常時運転状態(エンジン回転数NE、負荷率KL、暖機状態)の更新値とを対応づけて記憶する。
【0093】
以上の処理で、1回の失火異常検出を終了する。なお、このような失火異常検出処理は繰り返して実行するようにしてもよい。
【0094】
そして、ECU100は、RAM103内に記憶したDUAL異常時運転状態、DI異常時運転状態、または、PFI異常時運転状態に基づいて正常復帰判定を行う。その一例について図5を参照して説明する。
【0095】
RAM103内に記憶の異常時噴射状態及び異常時運転状態が、DUAL異常でのDUAL異常運転状態である場合、図5に示すように、DUAL異常時運転状態の更新値(なまし値)Pdualを中心点として、その運転ポイントPdual(NEdual、KLdual)に対して設定された所定の範囲(例えば、NEdual±375rpm、KLdual±20%)の領域を正常判定領域とし、その正常判定領域でのエンジン運転状態で正常復帰判定を行う。
【0096】
また、同様に、RAM103内に記憶の異常時噴射状態及び異常時運転状態が、DI異常でのDI異常運転状態である場合、その運転ポイントPdi(NEdi、KLdi)に対して設定された所定の範囲(例えば、NEdi±375rpm、KLdi±20%)の領域を正常判定領域とし、その正常判定領域でのエンジン運転状態で正常復帰判定を行う。また、同様に、RAM103内に記憶の異常時噴射状態及び異常時運転状態が、PFI異常でのPFI異常運転状態である場合、その運転ポイントPpfi(NEpfi、KLpfi)に対して設定された所定の範囲(例えば、NEpfi±375rpm、Kpfi±20%)の領域を正常判定領域とし、その正常判定領域でのエンジン運転状態で正常復帰判定を行う。
【0097】
以上説明したように、本実施形態によれば、失火が発生した際の運転状態と噴射状態とを記憶し、その噴射状態ごとに異常時運転状態を求めるとともに、失火異常の検出期間内で発生する各噴射状態ごとの失火の回数に基づいて異常時噴射状態を決定する。そして、その決定した異常時噴射状態での異常時運転状態を記憶するようにしているので、失火異常が発生した際の噴射状態(DUAL異常、DI異常、PFI異常)に合わせて異常時運転状態を記憶することができる。これにより、失火異常検出の後に、正常復帰判定を実施するにあたり、その正常復帰判定を適正に行うことができる。しかも、例えば図5に示すように、正常判定領域を大きくすることができるので、正常復帰判定の機会を増やすことができる。
【0098】
なお、本実施形態において、上記ステップST106において異常時噴射状態を決定する手法としては、上記した方法のほか、例えば、失火時DUALカウンタのカウント値、失火時DIカウンタのカウント値、及び、失火時PFIカウンタのカウント値のうち、最も大きなカウント値の噴射状態を異常時噴射状態とするという方法を採用してもよい。
【0099】
(変形例)
以上の実施形態では、噴射状態を、DUAL噴射と、DI噴射と、PFI噴射との3つの状態に区分しているが、本発明はこれに限られることなく、噴射状態を噴き分け率KPFIで3つに区分するようにしてもよい。その一例について図7のフローチャートを参照して説明する。この図7の制御ルーチンもECU100において実行可能である。
【0100】
なお、この例においても、対象とする運転状態は、エンジン回転数NE、負荷率KL及び暖機状態とする。また、暖機状態は、冷間時(水温が暖機温度(例えば80℃)未満の状態)と高温時(水温が暖機温度以上の状態)のいずれか一方の状態とする。
【0101】
また、この例においても、図7の制御ルーチンが開始された時点からECU100内の検出期間カウンタ120のカウントが開始され(別ルーチンでカウント)、エンジン1(クランクシャフト15)が1回転(1Rev)するごとに、検出期間カウンタ120のカウント値が1つずつカウントアップされる。なお、ECU100は、クランクポジションセンサ201の出力信号に基づいてエンジン1の回転数を認識している。
【0102】
ここで、この例では、上記した失火時DUALカウンタ、失火時DIカウンタ、失火時PFIカウンタに替えて、第1失火時カウンタ、第2失火時カウンタ、第3失火時カウンタを用いる。
【0103】
図7の制御ルーチンが開始されると、まずは、ステップST201において、失火カウンタ(総失火カウンタ)110のカウント値がアップされたか否かを判定する。
【0104】
ステップST201の判定結果が否定判定(NO)である場合(失火カウンタ110のカウントアップがない場合)はリターンする。ステップST201の判定結果が肯定判定(YES)である場合(失火カウンタ110のカウントアップがある場合)はステップST202に進む。
【0105】
ステップST202では、失火が発生したとき(失火カウンタ110のカウントアップがあったとき)の異常時噴射状態の噴き分け率KPFIが[0%≦KPFI<30%]であるか否かを判定する。その判定結果が肯定判定(YES)である場合はステップST203に進む。なお、噴き分け率KPFIが[0%≦KPFI<30%]の範囲での異常時(0%−30%異常時)である場合、失火カウンタ110の第1失火時カウンタのカウント値がインクリメントされる。
【0106】
ステップST203では、上記した図4のステップST103と同様な処理により、噴き分け率KPFIが[0%≦KPFI<30%]での異常時運転状態(0%−30%異常時運転状態)を更新する。具体的には、失火異常時(0%−30%異常時)のエンジン回転数NE及び負荷率KLについては、上記した式(1)及び式(2)によりなまし処理を施して、0%−30%異常時におけるエンジン回転数NE及び負荷率KLを更新する。また、0%−30%異常時の暖機状態については、最新の状態(冷間時または高温時)に更新する(もしくは、検出期間中に冷間時異常があれば、暖機状態を冷間時に固定する)。この更新処理を行った後にステップST205に進む。
【0107】
上記ステップST202の判定結果が否定判定(NO)である場合、ステップST204に進む。ステップST204では、失火が発生したとき(失火カウンタ110のカウントアップがあったとき)の異常時噴射状態の噴き分け率KPFIが[30%≦KPFI<70%]であるか否かを判定する。その判定結果が肯定判定(YES)である場合はステップST213に進む。なお、噴き分け率KPFIが[30%≦KPFI<70%]の範囲での異常時(30%−70%異常時)である場合、失火カウンタ110の第2失火時カウンタのカウント値がインクリメントされる。
【0108】
ステップST213では、上記した図4のステップST103と同様な処理により、噴き分け率KPFIが[30%≦KPFI<70%]での異常時運転状態(30%−70%異常時運転状態)を更新する。具体的には、失火異常時(30%−70%異常時)のエンジン回転数NE及び負荷率KLについては、上記した式(1)及び式(2)によりなまし処理を施して、30%−70%異常時におけるエンジン回転数NE及び負荷率KLを更新する。また、30%−70%異常時の暖機状態については、最新の状態(冷間時または高温時)に更新する(もしくは、検出期間中に冷間時異常があれば、暖機状態を冷間時に固定する)。この更新処理を行った後にステップST205に進む。
【0109】
上記ステップST204の判定結果が否定判定(NO)である場合、つまり、失火が発生したとき(失火カウンタ110のカウントアップがあったとき)の異常時噴射状態の噴き分け率KPFIが[70%≦KPFI≦100%]である場合はステップST223に進む。なお、噴き分け率KPFIが[70%≦KPFI≦100%]の範囲での異常時(70%−100%異常時)である場合、失火カウンタ110の第3失火時カウンタのカウント値がインクリメントされる。
【0110】
ステップST223では、上記した図4のステップST103と同様な処理により、噴き分け率KPFIが[70%≦KPFI≦100%]での異常時運転状態(70%−100%異常時運転状態)を更新する。具体的には、失火異常時(70%−100%異常時)のエンジン回転数NE及び負荷率KLについては、上記した式(1)及び式(2)によりなまし処理を施して、70%−100%異常時におけるエンジン回転数NE及び負荷率KLを更新する。また、70%−100%異常時の暖機状態については、最新の状態(冷間時または高温時)に更新する(もしくは、検出期間中に冷間時異常があれば、暖機状態を冷間時に固定する)。この更新処理を行った後にステップST205に進む。
【0111】
ステップST205では、上記検出期間カウンタ120のカウント値が1000Revに達しているか否かを判定する。その判定結果が否定判定(NO)である場合(図8に示す検出期間内である場合)はリターンしてステップST201に戻る。以降、[ステップST201〜ステップST203]、[ステップST201、ステップST202、ステップST204、ステップST213]、または、[ステップST201、ステップST202、ステップST204、ステップST223]の処理が、ステップST205の判定結果が肯定判定(YES)となるまで順次繰り返して実行され、その繰り返し処理の過程において、失火が発生するごとに、その失火発生時の噴射状態に応じて、上述した0%−30%異常時運転状態、30%−70%異常時運転状態、及び、70%−100%異常時運転状態がそれぞれ更新されていく。
【0112】
そして、検出期間カウンタ120のカウント値が1000Revに達した時点(ステップST205の判定結果が肯定判定(YES)となった時点)でステップST206に進む。ここで、検出期間カウンタ120のカウント値が1000Revに達した時点(検出期間終了時)での、0%−30%異常時運転状態の更新値(最終なまし値等)、30%−70%異常時運転状態の更新値(最終なまし値等)、70%−100%異常時運転状態の更新値(最終なまし値等)を、例えばRAM103(図1参照)内に記憶しておく。
【0113】
ステップST206では異常時噴射状態を決定する。具体的には、上記第1失火時カウンタ(0%−30%失火時用)のカウント値と、上記第2失火時カウンタ(30%−70%異常時用)のカウント値と、上記第3失火時カウンタ(70%−100%異常時用)のカウント値とを比較し、カウント値が最大である噴射状態を異常時噴射状態と決定する。つまり、第1失火カウンタのカウント値が最大である場合は異常時噴射状態を「0%−30%異常」と決定する。また、第2失火時カウンタのカウント値が最大である場合は異常時噴射状態を「30%−70%異常」と決定し、第3失火時カウンタのカウント値が最も大きい場合は異常時噴射状態を「70%−100%異常」と決定する。
【0114】
次に、ステップST207において、上記ステップST206で決定した異常時噴射状態が「0%−30%異常」であるか否かを判定し、その判定結果が肯定判定(YES)である場合はステップST208に進む。
【0115】
ステップST208では、上記検出期間カウンタ120のカウント値が1000Revに達した時点(検出期間終了時)での0%−30%異常時運転状態の更新値を、例えばRAM103内に記憶する。具体的には、上記ステップST206において決定した異常時噴射状態(この場合は0%−30%異常)とその0%−30%異常時運転状態の更新値(エンジン回転数NE、負荷率KL、暖機状態)とを対応づけて記憶する。
【0116】
ステップST207の判定結果が否定判定(NO)である場合はステップST209に進む。ステップST209では、上記ステップST206で決定した異常時噴射状態が「30%−70%異常」であるか否かを判定し、その判定結果が肯定判定(YES)である場合はステップST218に進む。
【0117】
ステップST218では、上記検出期間カウンタ120のカウント値が1000Revに達した時点(検出期間終了時)での30%−70%異常時運転状態の更新値を、例えばRAM103内に記憶する。具体的には、上記ステップST206において決定した異常時噴射状態(この場合は30%−70%異常)とその30%−70%異常時運転状態(エンジン回転数NE、負荷率KL、暖機状態)の更新値とを対応づけて記憶する。
【0118】
上記ステップST207の判定結果が否定判定(NO)である場合、つまり、上記ステップST206で決定した異常時噴射状態が「70%−100%異常」である場合はステップST228に進む。
【0119】
ステップST228では、上記検出期間カウンタ120のカウント値が1000Revに達した時点(検出期間終了時)での70%−100%異常時運転状態の更新値を、例えばRAM103内に記憶する。具体的には、上記ステップST206において決定した異常時噴射状態(この場合は70%−100%異常)とその70%−100%異常時運転状態(エンジン回転数NE、負荷率KL、暖機状態)の更新値とを対応づけて記憶する。
【0120】
以上の処理で、1回の失火異常検出を終了する。なお、このような失火異常検出処理は繰り返して実行するようにしてもよい。
【0121】
そして、ECU100は、RAM103内に記憶したDUAL異常時運転状態、DI異常時運転状態、または、PFI異常時運転状態に基づいて正常復帰判定を行う。その正常復帰判定の際の処理は、上記した実施形態の処理(図5で説明した処理)と基本的に同じであるので、その具体的な説明は省略する。
【0122】
この変形例においても、失火異常が発生した際の噴射状態つまり噴き分け率KPFIの区分(0%−30%異常、30%−70%異常、70%−100%異常)に合わせて、異常時運転状態(エンジン回転数NE、負荷率KL、暖機状態)を記憶することできる。これにより、正常復帰判定を実施するにあたり、その正常復帰判定を適正に行うことができる。
【0123】
なお、この変形例では、噴射状態を噴き分け率KPFIで3つに区分しているが、これに限られることなく、噴射状態を噴き分け率KPFIで2つまたは4つ以上に区分して、失火異常を検出するようにしてもよい。
【0124】
−他の実施形態−
以上の例では、失火が発生した際のエンジン回転数NE及び負荷率KLに対して1/2なまし処理を行って異常時運転更新値(なまし値)を求めているが、これに限られることなく、例えば1/4なまし処理など、他の任意のなまし係数のなまし処理にてエンジン回転数NEのなまし値及び負荷率のなまし値を算出するようにしてもよい。
【0125】
以上の例では、失火が発生した際のエンジン回転数NE及び負荷率KLに対してなまし処理を施したなまし値を、異常時運転状態の更新値としているが、本発明はこれに限定されない。
【0126】
例えば、図8に示す失火異常の検出期間内において、失火が発生した際の各噴射状態ごとのエンジン回転数NEの平均値、負荷率KLの平均値を各噴射状態ごとの異常時運転状態の更新値としてもよい。また、図8に示す検出期間内において、失火が発生する度に、各噴射状態ごとのエンジン回転数NE及び負荷率KLを順次最新の値に更新・記憶していき、検出期間が終了した際に、その検出期間内で最後に更新された値を各噴射状態ごとの異常時運転状態の更新値としてもよい。
【0127】
以上の例では、検出期間カウンタ120のカウント値が1000Rev(エンジン回転回数=1000回転)に達したときに検出期間終了と判定しているが、これに限られることなく、例えば、検出期間カウンタ120のカウント値が200Rev(エンジン回転回数=200回転)に達したときに検出期間終了と判定してもよい。また、これら1000Revや200Rev以外の任意の数値(Rev)にカウント値が達したときに検出期間終了と判定するようにしてもよい。なお、失火異常の検出期間については、検出開始からの経過時間または走行距離などに基づいて判定するようにしてもよい。
【0128】
以上の例では、異常時運転状態の更新値に対して予め設定された所定範囲内の領域を正常判定領域とし、その正常判定領域での機関運転状態で正常復帰判定を行うようにしているが、本発明はこれに限られることなく、異常時運転状態の更新値と同一の機関運転状態で正常復帰判定を行うようにしてもよい。
【0129】
以上の例では、4気筒ガソリンエンジンに本発明を適用した場合について説明したが、本発明はこれに限られることなく、例えば6気筒ガソリンエンジンなど他の任意の気筒数のガソリンエンジンにも適用可能である。また、直列多気筒ガソリンエンジンのほか、V型多気筒ガソリンエンジンの制御にも本発明を適用することができる。
【産業上の利用可能性】
【0130】
本発明は、燃焼室内に燃料を直接噴射する筒内用燃料噴射弁と、吸気通路に燃料を噴射する吸気通路用燃料噴射弁とを備え、噴き分け率の異なる複数の噴射状態のうちの1つの噴射状態に選択的に切り替えることが可能な内燃機関の失火異常検出装置に有効に利用することができる。
【符号の説明】
【0131】
1 エンジン
1d 燃焼実
11 吸気通路
11a 吸気ポート
2a 筒内噴射用インジェクタ(筒内用燃料噴射弁)
2b ポート噴射用インジェクタ(吸気通路用燃料噴射弁)
100 ECU
103 RAM
110 失火カウンタ
120 検出期間カウンタ

【特許請求の範囲】
【請求項1】
燃焼室内に燃料を直接噴射する筒内用燃料噴射弁と、吸気通路に燃料を噴射する吸気通路用燃料噴射弁とを備え、噴き分け率の異なる複数の噴射状態のうちの1つの噴射状態に選択的に切り替えることが可能な内燃機関の失火異常検出装置であって、
失火が発生した際の前記内燃機関の運転状態と噴射状態とを記憶し、前記複数の噴射状態ごとに異常時運転状態を求めるとともに、所定の期間内で失火が発生した際の前記複数の噴射状態の中から所定の条件に基づいて異常時噴射状態を決定し、その決定した異常時噴射状態での前記異常時運転状態を記憶することを特徴とする内燃機関の失火異常検出装置。
【請求項2】
請求項1記載の内燃機関の失火異常検出装置において、
前記所定の期間内で発生した各噴射状態ごとの失火の回数に基づいて異常時噴射状態を決定することを特徴とする内燃機関の失火異常検出装置。
【請求項3】
請求項1または2記載の内燃機関の失火異常検出装置において、
前記決定した異常時噴射状態と同一の噴射状態であり、かつ、前記記憶した異常時運転状態と類似運転状態であるときに、正常復帰判定を行うことを特徴とする内燃機関の失火異常検出装置。
【請求項4】
請求項3記載の内燃機関の失火異常検出装置において、
前記類似運転状態とは、前記記憶した異常時運転状態と同一の機関運転状態、または、当該異常時運転状態に対して予め設定された所定範囲内にある機関運転状態であることを特徴とする内燃機関の失火異常検出装置。
【請求項5】
請求項1〜4のいずれか1つに記載の内燃機関の失火異常検出装置において、
前記機関運転状態とは、機関回転数、機関負荷率、暖機状態であり、
前記噴射状態とは、筒内用燃料噴射弁のみによって燃料を噴射する噴射状態、吸気通路用燃料噴射弁のみによって燃料を噴射する噴射状態、筒内用燃料噴射弁及び吸気通路用燃料噴射弁によって燃料を噴射する噴射状態であることを特徴とする内燃機関の失火異常検出装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate


【公開番号】特開2013−108485(P2013−108485A)
【公開日】平成25年6月6日(2013.6.6)
【国際特許分類】
【出願番号】特願2011−256669(P2011−256669)
【出願日】平成23年11月24日(2011.11.24)
【出願人】(000003207)トヨタ自動車株式会社 (59,920)
【Fターム(参考)】