(57)【特許請求の範囲】
【請求項１】
燃焼室内に燃料を直接噴射する筒内用燃料噴射弁と、吸気通路に燃料を噴射する吸気通路用燃料噴射弁とを備え、前記筒内用燃料噴射弁のみから燃料が噴射される筒内噴射モード、前記吸気通路用燃料噴射弁のみから燃料が噴射されるポート噴射モード、前記筒内用燃料噴射弁及び吸気通路用燃料噴射弁から燃料が噴射される噴き分けモードのうちのいずれか１つの燃料噴射モードに選択的に切り替えることが可能な内燃機関において、
異常検出時の内燃機関の運転状態及び燃料噴射モードを記憶し、それら運転状態及び燃料噴射モードに基づいて設定された所定条件のときに正常復帰判定を行う判定装置であって、
前記異常検出時の燃料噴射モードが噴き分けモードである場合は、噴き分けモード時において噴き分け率を含まない類似運転条件で正常を判定する正常判定と、筒内噴射モード時及びポート噴射モード時においてそれぞれ正常を判定する正常判定とを実施し、それらの判定結果がいずれも正常であると判定された場合に、燃料系または燃焼状態が正常であると判定することを特徴とする内燃機関の判定装置。
【請求項２】
請求項１記載の内燃機関の判定装置において、
前記異常検出時の燃料噴射モードが噴き分けモードである場合は、噴き分けモード時において噴き分け率を含まない類似運転条件で燃料系の正常を判定する正常判定と、筒内噴射モード時及びポート噴射モード時においてそれぞれ燃料系の正常を判定する正常判定とを実施し、それらの判定結果がいずれも正常であると判定された場合に、燃料系が正常であると判定することを特徴とする内燃機関の判定装置。
【請求項３】
請求項１記載の内燃機関の判定装置において、
前記異常検出時の燃料噴射モードが噴き分けモードである場合は、噴き分けモード時において噴き分け率を含まない類似運転条件で燃焼状態が正常であることを判定する正常判定と、筒内噴射モード時及びポート噴射モード時においてそれぞれ燃焼状態が正常であることを判定する正常判定とを実施し、それらの判定結果がいずれも正常であると判定された場合に、燃焼状態が正常であると判定することを特徴とする内燃機関の判定装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、筒内に向けて燃料を噴射する筒内噴射用インジェクタと、吸気通路（吸気ポート）内に向けて燃料を噴射する吸気通路噴射用インジェクタとを備えた内燃機関の判定装置に関する。
【背景技術】
【０００２】
車両等に搭載される内燃機関（エンジン）として、気筒内（燃焼室内）に燃料を直接噴射する筒内噴射用インジェクタと、吸気通路（吸気ポート）に燃料を噴射する吸気通路噴射用インジェクタとを備えた、いわゆるデュアル噴射型の内燃機関が知られている。このようなデュアル噴射型の内燃機関にあっては、筒内噴射用インジェクタのみから燃料が噴射される筒内噴射モード（ＤＩモード）、吸気通路噴射用インジェクタのみから燃料が噴射されるポート噴射モード（ＰＦＩモード）、筒内噴射用インジェクタ及び吸気通路噴射用インジェクタの両方から燃料が噴射される噴き分けモード（ＤＵＡＬモード）のうちのいずれか１つの燃料噴射モードに選択的に切り替えることが可能である。
【０００３】
また、車両等に搭載される内燃機関においては、燃料系異常検出や失火異常検出が行われている。このような異常検出処理では、異常検出時の運転条件（エンジン回転数、エンジン負荷（負荷率）、暖機状態（水温冷温時／水温高温時）を記憶し、その記憶した条件と同一または類似した運転条件のときに正常復帰判定を実施している。さらに、筒内噴射用インジェクタと吸気通路噴射用インジェクタとを備えた内燃機関では、上記した異常検出時の運転条件に加えて燃料噴射モード（噴き分け率）を記憶しておき、その異常検出時に記憶した運転条件と同一または類似した運転条件であり、かつ、現在の燃料噴射モードが、異常検出時に記憶した燃料噴射モードと同一または予め設定された所定範囲（噴き分け範囲）内であるときに正常復帰判定を実施している（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１１−０２６９６１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、筒内噴射用インジェクタと吸気通路噴射用インジェクタとを備えた内燃機関において、噴き分けモード（ＤＵＡＬモード）時に異常を検出した場合には、例えば、噴き分け率を記憶し、その記憶した噴き分け率に所定範囲（噴き分け範囲）を設定して正常復帰判定を行っている。しかしながら、噴き分けモード時の噴き分け率は、内燃機関の運転状態（点火遅角、負荷率等）によって様々に変化するので、異常検出時の噴き分け率に対して、どの範囲内（何％の範囲内）までが異常検出時と同様（類似）の条件であるとみなすことが困難である。このため、どうしても正常判定実施可能な噴き分け範囲を正確に定義することができない。噴き分け範囲を正確に定義できないと、正常復帰判定の精度が低下するおそれがある。
【０００６】
また、現在の噴き分け率が異常検出時の噴き分け率と完全に一致するときのみ正常復帰判定を実施するという方法が考えられるが、この場合、正常判定の機会が少なくなってしまう。
【０００７】
本発明はそのような実情を考慮してなされたもので、噴き分けモード（ＤＵＡＬモード）での正常復帰判定の機会を増やすことができ、しかも、正常復帰判定を正確に行うことが可能な内燃機関の判定装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明は、燃焼室内に燃料を直接噴射する筒内用燃料噴射弁（筒内噴射用インジェクタ）と、吸気通路に燃料を噴射する吸気通路用燃料噴射弁（ポート噴射用インジェクタ）とを備え、前記筒内用燃料噴射弁のみから燃料が噴射される筒内噴射モード、前記吸気通路用燃料噴射弁のみから燃料が噴射されるポート噴射モード、前記筒内用燃料噴射弁及び吸気通路用燃料噴射弁から燃料が噴射される噴き分けモードのうちのいずれか１つの燃料噴射モードに選択的に切り替えることが可能な内燃機関において、異常検出時の内燃機関の運転状態及び燃料噴射モードを記憶し、その異常検出時の運転状態及び燃料噴射モードに基づいて設定された所定条件（所定の類似運転条件）のときに正常復帰判定を行う判定装置を前提としている。そして、このような内燃機関の判定装置において、前記異常検出時の燃料噴射モードが噴き分けモードである場合は、噴き分けモード時において噴き分け率を含まない類似運転条件で正常を判定する正常判定と、筒内噴射モード時及びポート噴射モード時においてそれぞれ正常を判定する正常判定とを実施し、それらの判定結果がいずれも正常であると判定された場合に、燃料系または燃焼状態が正常であると判定することを技術的特徴としている。
【０００９】
以下、本発明の作用について述べる。
【００１０】
まず、本発明では、噴き分けモードにおける正常復帰判定の条件（類似運転条件）に、噴き分け率を含めていないので、噴き分けモードでの正常判定の機会を増やすことができる。ここで、噴き分けモードの噴き分け率を正常復帰判定の条件に含めないと、噴き分けモードでの正常復帰判定を正確に行えない場合がある。
【００１１】
例えば、噴き分けモード時の噴き分け率（ＰＦＩの噴き分け率：ＫＰＦＩ）が３０％（ＤＩ：ＰＦＩ＝７：３）である場合は、筒内噴射用インジェクタの噴射量が空燃比による影響が大きいので、筒内噴射用インジェクタに異常があるときには燃料系異常や失火異常が検出される。これに対し、噴き分け率が５０％（ＤＩ：ＰＦＩ＝５：５）である場合には、筒内噴射用インジェクタの噴射量による影響が小さくて異常度合いが緩和されるので、筒内噴射用インジェクタに異常があっても燃料系異常や失火異常が検出されずに正常判定となる場合がある。したがって、噴き分けモードにおいて正常復帰判定を正確に行うには、判定条件に噴き分け率を含める必要があるが、上述の如く、正常判定実施可能な噴き分け範囲を正確に定義することはできないという課題がある。
【００１２】
そこで、本発明では、噴き分けモード時において噴き分け率を含まない類似運転条件で実施する正常判定（燃料系の正常判定や燃焼状態の正常判定）に加えて、筒内噴射モード時及びポート噴射モード時においてそれぞれ正常判定（燃料系の正常判定や燃焼状態の正常判定）を実施する。このようにして、噴き分けモードでの正常判定に加えて、筒内噴射用インジェクタ及びポート噴射用インジェクタが正常であることを個別に判定することにより、噴き分け率の影響を排除することができるので、類似運転条件（噴き分け率を含まない条件）のみで噴き分けモードでの正常復帰判定の精度を確保することができる。
【００１３】
以上のように、本発明によれば、噴き分けモードでの正常復帰判定の機会の確保と、その正常復帰判定の精度確保とを両立することができる。
【００１４】
本発明の具体的な構成として、前記異常検出時の燃料噴射モードが噴き分けモード（ＤＵＡＬモード）である場合は、噴き分けモード時において噴き分け率を含まない類似運転条件で燃料系の正常を判定する正常判定と、筒内噴射モード時及びポート噴射モード時においてそれぞれ燃料系の正常を判定する正常判定とを実施し、それらの判定結果がいずれも正常であると判定された場合に、燃料系が正常であると判定するという構成挙げることができる。
【００１５】
また、他の構成として、前記異常検出時の燃料噴射モードが噴き分けモード（ＤＵＡＬモード）である場合は、噴き分けモード時において噴き分け率を含まない類似運転条件で燃焼状態が正常であることを判定する正常判定と、筒内噴射モード時及びポート噴射モード時においてそれぞれ燃焼状態が正常であることを判定する正常判定とを実施し、それらの判定結果がいずれも正常であると判定された場合に、燃焼状態が正常であると判定するという構成を挙げることができる。
【００１６】
なお、本発明でいう、「燃料系」とは、インジェクタ、燃料ポンプ（フィードポンプ、高圧ポンプ）、空燃比センサ（酸素センサ）、エアフロメータなどの燃料系のことであって、「燃料系が正常」とは、例えば、後述する空燃比フィードバック補正量が異常値でない状態の場合のことである。また、「燃焼状態が正常」とは、例えば失火のない燃焼状態のことである。
【発明の効果】
【００１７】
本発明によれば、異常検出時の燃料噴射モードが噴き分けモードである場合は、噴き分けモード時において噴き分け率を含まない類似運転条件で正常を判定する正常判定と、筒内噴射モード時及びポート噴射モード時においてそれぞれ正常を判定する正常判定とを実施するので、噴き分けモードでの正常復帰判定の機会の確保と、その正常復帰判定の精度確保とを両立することができる。
【図面の簡単な説明】
【００１８】
【図１】本発明を適用するエンジン（内燃機関）の一例を示す概略構成図である。
【図２】ＥＣＵ等の制御系の構成を示すブロック図である。
【図３】燃料噴射モードマップの一例を示す図である。
【図４】ＥＣＵが実行する正常復帰判定処理の一例を示すフローチャートである。
【図５】ＥＣＵが実行する正常復帰判定処理の一例を示すフローチャートである。
【図６】ＥＣＵが実行する正常復帰判定処理の他の例を示すフローチャートである。
【図７】ＥＣＵが実行する正常復帰判定処理の他の例を示すフローチャートである。
【発明を実施するための形態】
【００１９】
以下、本発明の実施形態を図面に基づいて説明する。
【００２０】
−エンジン−
図１は本発明を適用するエンジンの概略構成を示す図である。なお、図１にはエンジンの１気筒の構成のみを示している。
【００２１】
この例のエンジン１は、車両に搭載される４気筒（第１気筒＃１〜第４気筒＃４）のガソリンエンジンであって、その各気筒を構成するシリンダブロック１ａ内には上下方向に往復動するピストン１ｃが設けられている。ピストン１ｃはコネクティングロッド１６を介してクランクシャフト１５に連結されており、ピストン１ｃの往復運動がコネクティングロッド１６によってクランクシャフト１５の回転へと変換される。
【００２２】
クランクシャフト１５にはシグナルロータ１７が取り付けられている。シグナルロータ１７の外周には複数の歯（突起）１７ａが等角度（この例では、例えば１０°ＣＡ（クランク過度））ごとに設けられている。また、シグナルロータ１７は、歯１７ａの２枚分が欠落した欠歯部１７ｂを有している。
【００２３】
シグナルロータ１７の側方近傍には、クランク角を検出するクランクポジションセンサ（エンジン回転数センサ）２０１が配置されている。クランクポジションセンサ２０１は、例えば電磁ピックアップであって、クランクシャフト１５が回転する際にシグナルロータ１７の歯１７ａに対応するパルス状の信号（電圧パルス）を発生する。このクランクポジションセンサ２０１の出力信号からエンジン回転数ＮＥを算出することができる。
【００２４】
エンジン１のシリンダブロック１ａにはエンジン冷却水の水温を検出する水温センサ２０３が配置されている。また、シリンダブロック１ａの上端にはシリンダヘッド１ｂが設けられており、このシリンダヘッド１ｂとピストン１ｃとの間に燃焼室１ｄが形成されている。エンジン１の燃焼室１ｄには点火プラグ３が配置されている。点火プラグ３の点火タイミングはイグナイタ４によって調整される。イグナイタ４はＥＣＵ（Ｅｌｅｃｔｒｏｎｉｃ  Ｃｏｎｔｒｏｌ  Ｕｎｉｔ）１００によって制御される。
【００２５】
エンジン１のシリンダブロック１ａの下部には、潤滑油（エンジンオイル）を貯留するオイルパン１８が設けられている。オイルパン１８に貯留された潤滑油は、エンジン１の運転時に、異物を除去するオイルストレーナを介してオイルポンプ（図示せず）によって汲み上げられて、ピストン１ｃ、クランクシャフト１５、コネクティングロッド１６などのエンジン各部に供給され、その各部の潤滑・冷却等に使用される。そして、このようにして供給された潤滑油は、エンジン各部の潤滑・冷却等のために使用された後、オイルパン１８に戻され、再びオイルポンプによって汲み上げられるまでオイルパン１８内に貯留される。
【００２６】
エンジン１の燃焼室１ｄには吸気通路１１と排気通路１２とが接続されている。吸気通路１１の一部は吸気ポート１１ａ及び吸気マニホールド１１ｂによって形成されている。また、排気通路１２の一部は排気ポート１２ａ及び排気マニホールド１２ｂによって形成されている。
【００２７】
吸気通路１１には、吸入空気（新気）を濾過するエアクリーナ７、エアフロメータ２０４、吸気温センサ２０７、及び、エンジン１の吸入空気量を調整するためのスロットルバルブ５などが配置されている。エアフロメータ２０４は、吸入空気量（新規空気量）を検出する。吸気温センサ２０７は、エンジン１に吸入される空気の温度（吸気温）を検出する。
【００２８】
スロットルバルブ５のスロットル開度はＥＣＵ１００によって駆動制御される。具体的には、クランクポジションセンサ２０１の出力信号から算出されるエンジン回転数ＮＥ、及び、ドライバのアクセルペダル踏み込み量（アクセル開度）等のエンジン１の運転状態に応じた最適な吸入空気量（目標吸気量）が得られるようにスロットルバルブ５のスロットル開度を制御している。より詳細には、スロットル開度センサ２０５を用いてスロットルバルブ５の実際のスロットル開度を検出し、その実スロットル開度が、上記目標吸気量が得られるスロットル開度（目標スロットル開度）に一致するようにスロットルバルブ５のスロットルモータ６をフィードバック制御している。なお、こうしたスロットルバルブ５の制御システムは、「電子スロットルシステム」と称されており、アイドリング運転時などにおいて、ドライバのアクセルペダルの操作とは独立してスロットル開度を制御することも可能である。
【００２９】
吸気通路１１と燃焼室１ｄとの間に吸気バルブ１３が設けられており、この吸気バルブ１３を開閉駆動することにより、吸気通路１１と燃焼室１ｄとが連通または遮断される。また、排気通路１２と燃焼室１ｄとの間に排気バルブ１４が設けられており、この排気バルブ１４を開閉駆動することにより、排気通路１２と燃焼室１ｄとが連通または遮断される。これら吸気バルブ１３及び排気バルブ１４の開閉駆動は、クランクシャフト１５の回転がタイミングチェーン等を介して伝達される吸気カムシャフト２１及び排気カムシャフト２２の各回転によって行われる。
【００３０】
吸気カムシャフト２１の近傍には、特定の気筒（例えば第１気筒＃１）のピストン１ｃが圧縮上死点（ＴＤＣ）に達したときにパルス状の信号を発生するカムポジションセンサ２０２が設けられている。カムポジションセンサ２０２は、例えば電磁ピックアップであって、吸気カムシャフト２１に一体的に設けられたロータ外周面の１個の歯（図示せず）に対向するように配置されており、その吸気カムシャフト２１が回転する際にパルス状の信号（電圧パルス）を出力する。なお、吸気カムシャフト２１（及び排気カムシャフト２２）は、クランクシャフト１５の１／２の回転速度で回転するので、クランクシャフト１５が２回転（７２０°回転）するごとにカムポジションセンサ２０２が１つのパルス状の信号を発生する。
【００３１】
このようなカムポジションセンサ２０２及び上記クランクポジションセンサ２０１の各出力信号から、エンジン運転時において、エンジン１の各気筒（第１気筒＃１〜第４気筒＃４）のピストン位置（吸入行程・圧縮行程・爆発行程・排気行程）を認識することができ、精密な燃料噴射制御や点火時期制御などのエンジン運転制御を行うことができる。
【００３２】
一方、排気通路１２には三元触媒９が配置されている。三元触媒９においては、燃焼室１ｄから排気通路１２に排気された排気ガス中のＣＯ、ＨＣの酸化及びＮＯｘの還元が行われ、それらを無害なＣＯ2、Ｈ2Ｏ、Ｎ2とすることで排気ガスの浄化が図られている。
【００３３】
三元触媒９の上流側（排気流れの上流側）の排気通路１２に空燃比（Ａ／Ｆ）センサ２０９が配置されている。空燃比センサ２０９は、空燃比に対してリニアな特性を示すセンサである。また、三元触媒９の下流側の排気通路１２にはＯ2センサ２１０が配置されている。Ｏ2センサ２１０は、排気ガス中の酸素濃度に応じて起電力を発生するものであって、理論空燃比に相当する電圧（比較電圧）よりも出力が高いときはリッチと判定し、逆に比較電圧よりも出力が低いときはリーンと判定する。
【００３４】
＜燃料噴射系＞
次に、エンジン１の燃料噴射系について説明する。
【００３５】
エンジン１の各気筒には、それぞれ、各燃焼室１ｄ内に燃料を直接噴射することが可能な筒内噴射用インジェクタ（筒内用燃料噴射弁）２ａが配置されている。これら筒内噴射用インジェクタ２ａは、共通の高圧燃料用デリバリパイプ２０ａに接続されている。
【００３６】
また、エンジン１の吸気通路１１には、各吸気ポート１１ａ内に燃料を噴射可能なポート噴射用インジェクタ（吸気通路用燃料噴射弁）２ｂが配置されている。ポート噴射用インジェクタ２ｂは各気筒毎に設けられている。これらポート噴射用インジェクタ２ｂは共通の低圧燃料用デリバリパイプ２０ｂに接続されている。
【００３７】
上記高圧燃料用デリバリパイプ２０ａ、及び、上記低圧燃料用デリバリパイプ２０ｂへの燃料供給は、低圧ポンプとしてのフィードポンプ３０１及び高圧ポンプ３０２によって行われる。フィードポンプ３０１は、燃料タンク３００内の燃料（ガソリン等）を汲み上げて、低圧燃料用デリバリパイプ２０ｂ及び高圧ポンプ３０２に供給する。高圧ポンプ３０２は、フィードポンプ３０１からの低圧燃料を加圧して高圧燃料用デリバリパイプ２０ａに供給する。
【００３８】
筒内噴射用インジェクタ２ａは、所定電圧が印加されたときに開弁して燃焼室１ｄ内に燃料を直接噴射する電磁駆動式の開閉弁である。筒内噴射用インジェクタ２ａの開閉（噴射時間・噴射タイミング）は、ＥＣＵ１００によってデューティ制御される。
【００３９】
ポート噴射用インジェクタ２ｂも、同様に、所定電圧が印加されたときに開弁して吸気ポート１１ａ内に燃料を噴射する電磁駆動式の開閉弁である。ポート噴射用インジェクタ２ｂについても、ＥＣＵ１００によって開閉（噴射時間・噴射タイミング）がデューティ制御される。
【００４０】
なお、筒内噴射用インジェクタ２ａによる燃料噴射（ＤＩ噴射）と、ポート噴射用インジェクタ２ｂによる燃料噴射（ＰＦＩ噴射）との噴き分け率（ＰＦＩ噴き分け率：ＫＰＦＩ）等については後述する。
【００４１】
そして、以上の筒内噴射用インジェクタ２ａ及びポート噴射用インジェクタ２ｂのいずれか一方または両方のインジェクタからの燃料噴射により、燃焼室１ｂ内に混合気（燃料＋空気）が形成される。この混合気は点火プラグ３にて点火されて燃焼・爆発する。このときに生じた高温高圧の燃焼ガスによりピストン１ｃが往復動され、クランクシャフト１５が回転されてエンジン１の駆動力（出力トルク）が得られる。燃焼室１ｄ内で燃焼した燃焼ガスは、排気バルブ１４の開弁にともない排気通路１２に排出される。
【００４２】
−ＥＣＵ−
ＥＣＵ１００は、図２に示すように、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１０１、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１０２、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１０３、バックアップＲＡＭ１０４、及び、カウンタ１１０などを備えている。
【００４３】
ＲＯＭ１０２は、各種制御プログラムや、それら各種制御プログラムを実行する際に参照されるマップ等が記憶されている。ＣＰＵ１０１は、ＲＯＭ１０２に記憶された各種制御プログラムやマップに基づいて各種の演算処理を実行する。また、ＲＡＭ１０３は、ＣＰＵ１０１での演算結果や各センサから入力されたデータ等を一時的に記憶するメモリであり、バックアップＲＡＭ１０４は、例えばエンジン１の停止時にその保存すべきデータ等を記憶する不揮発性のメモリである。カウンタ１１０については後述する。
【００４４】
以上のＣＰＵ１０１、ＲＯＭ１０２、ＲＡＭ１０３、バックアップＲＡＭ１０４、カウンタ１１０は、バス１０７を介して互いに接続されるとともに、入力インターフェース１０５及び出力インターフェース１０６と接続されている。
【００４５】
入力インターフェース１０５には、クランクポジションセンサ（エンジン回転数センサ）２０１、カムポジションセンサ２０２、水温センサ２０３、エアフロメータ２０４、スロットル開度センサ２０５、アクセルペダルの踏み込み量に応じた検出信号を出力するアクセル開度センサ２０６、吸気温センサ２０７、インマニ圧センサ２０８、空燃比センサ２０９、Ｏ2センサ２１０、筒内噴射用インジェクタ２ａに供給する高圧燃料の圧力（燃圧）を検出する高圧燃料用燃圧センサ２１１、及び、ポート噴射用インジェクタ２ｂに供給する低圧燃料の圧力（燃圧）を検出する低圧燃料用燃圧センサ２１２などの各種センサ類が接続されている。また、入力インターフェース１０５にはイグニッションスイッチ２１３が接続されており、このイグニッションスイッチ２１３がオン操作（ＩＧ−ＯＮ）されると、スタータモータ（図示せず）によるエンジン１のクランキングが開始される。
【００４６】
出力インターフェース１０６には、筒内噴射用インジェクタ２ａ、ポート噴射用インジェクタ２ｂ、点火プラグ３のイグナイタ４、及び、スロットルバルブ５のスロットルモータ６などが接続されている。
【００４７】
そして、ＥＣＵ１００は、上記した各種センサの検出信号に基づいて、下記の燃料噴射量制御、点火プラグ３の点火時期制御、及び、スロットルバルブ５のスロットルモータ６の駆動制御（吸入空気量制御）などを含むエンジン１の各種制御を実行する。さらに、ＥＣＵ１００は、下記の「空燃比フィードバック制御」及び「正常復帰判定処理」を実行する。
【００４８】
以上のＥＣＵ１００により実行されるプログラムによって本発明の内燃機関（エンジン）判定装置が実現される。
【００４９】
−燃料噴射量制御−
まず、ＥＣＵ１００のＲＯＭ１０２には、図３に示す燃料噴射モードマップが記憶されている。
【００５０】
図３の燃料噴射モードマップは、エンジン１の運転状態を示すエンジン回転数ＮＥ及び負荷率ＫＬをパラメータとして、燃費（燃料消費率）特性や出力特性などを考慮して、燃料噴射形態を実験・シミュレーション等によって適合したマップであって、筒内噴射用インジェクタ２ａのみによって燃料が噴射されるＤＩモード（筒内噴射モード）と、ポート噴射用インジェクタ２ｂのみによって燃料が噴射されるＰＦＩモード（ポート噴射モード）と、筒内噴射用インジェクタ２ａ及びポート噴射用インジェクタ２ｂによって燃料が噴射されるＤＵＡＬモード（噴き分け（ＤＩ＋ＰＦＩ）モード）とが設定されている。
【００５１】
なお、図３のマップにおいて、ＤＵＡＬモードである場合、エンジン回転数ＮＥ及びエンジン負荷率ＫＬを用いて噴き分け率ＫＰＦＩ（ＰＦＩの噴き分け率）を求めることもできる。
【００５２】
そして、ＥＣＵ１００は、クランクポジションセンサ２０１の出力信号から得られるエンジン回転数ＮＥ及びエンジン負荷率ＫＬに基づいて、図３のマップを参照して燃料噴射モードを求め、その燃料噴射モード及び要求噴射量に基づいて噴射時間及び噴射タイミングを算出して燃料噴射を実行する。
【００５３】
具体的には、エンジン運転状態（エンジン回転数ＮＥ・負荷率ＫＬ）が、ＤＩモード（噴き分け率ＫＰＦＩ＝０％）である場合、ＤＩ要求噴射量、高圧燃料用燃圧センサ２１１の出力信号から得られる燃圧、及び、筒内噴射用インジェクタ２ａの容量（流量サイズ）に基づいて、筒内噴射用インジェクタ２ａから噴射する高圧燃料のＤＩ噴射時間及びＤＩ噴射タイミングを算出し、その算出したＤＩ噴射時間及びＤＩ噴射タイミングに基づいて筒内噴射用インジェクタ２ａを開閉制御して燃料噴射を実行する。
【００５４】
エンジン運転状態（エンジン回転数ＮＥ・負荷率ＫＬ）が、ＰＦＩモード（噴き分け率ＫＰＦＩ＝１００％）である場合、ＰＦＩ要求噴射量、低圧燃料用燃圧センサ２１２の出力信号から得られる燃圧、及び、ポート噴射用インジェクタ２ｂの容量（流量サイズ）に基づいてポート噴射用インジェクタ２ｂから噴射する低圧燃料のＰＦＩ噴射時間、及び、ＰＦＩ噴射タイミングを算出し、その算出したＰＦＩ噴射時間及びＰＦＩ噴射タイミングに基づいてポート噴射用インジェクタ２ｂを開閉制御して燃料噴射を実行する。
【００５５】
エンジン運転状態（エンジン回転数ＮＥ・負荷率ＫＬ）が、ＤＵＡＬモード（０％＜噴き分け率ＫＰＦＩ＜１００％）である場合、図３のマップから得られる噴き分け率ＫＰＦＩに基づいて筒内噴射用インジェクタ２ａのＤＩ要求噴射量（全体要求噴射量×（１−噴き分け率ＫＰＦＩ／１００））と、ポート噴射用インジェクタ２ｂのＰＦＩ要求噴射量（全体要求噴射量×噴き分け率ＫＰＦＩ／１００）とを求め、上記と同様にして、ＤＩ噴射時間及びＤＩ噴射タイミングと、ＰＦＩ噴射時間及びＰＦＩ噴射タイミングとを算出する。そして、その算出したＤＩ噴射時間及びＤＩ噴射タイミングに基づいて筒内噴射用インジェクタ２ａを開閉制御するとともに、算出したＰＦＩ噴射時間及びＰＦＩ噴射タイミングに基づいてポート噴射用インジェクタ２ｂを開閉制御して燃料噴射を実行する。
【００５６】
ここで、上記要求噴射量は、エンジン１で燃焼された混合気の空燃比が理論空燃比となる燃料の量であって、例えば、エンジン運転状態（エンジン回転数ＮＥ及びエンジン負荷率ＫＬ）に基づいてマップ等を用いて算出することができる。また、エンジン負荷率ＫＬは、例えば、エンジン回転速度ＮＥ、エアフロメータ２０４の出力信号から得られる吸入空気量、スロットル開度センサ２０５の出力信号から得られるスロットル開度などに基づいてマップ等を用いて算出することができる。
【００５７】
−空燃比フィードバック制御−
ＥＣＵ１００は、エンジン１の排気通路１２に配置した空燃比センサ２０９及びＯ2センサ２１０の各出力から得られる実際の空燃比が目標空燃比（例えば理論空燃比）に一致するように燃料噴射量を制御する「空燃比フィードバック制御」を実行する。その空燃比フィードバック制御の具体的な処理について説明する。
【００５８】
まず、エンジン１の排気通路１２に配置した三元触媒９は、空燃比がほぼ理論空燃比のときに未燃成分（ＨＣ，ＣＯ）を酸化し、同時に窒素酸化物（ＮＯｘ）を還元する機能を発揮する。さらに、三元触媒９は、酸素を吸蔵する機能（酸素吸蔵機能、Ｏ2ストレージ機能）を有しており、この酸素吸蔵機能により、空燃比が理論空燃比からある程度まで偏移したとしても、ＨＣ，ＣＯ及びＮＯｘを浄化することができる。すなわち、エンジン１の空燃比がリーンとなって三元触媒９に流入するガスにＮＯｘが多量に含まれると、三元触媒９はＮＯｘから酸素分子を奪ってこの酸素分子を吸蔵するとともにＮＯｘを還元し、これによりＮＯｘを浄化する。また、エンジン１の空燃比がリッチになって三元触媒９に流入するガスにＨＣ，ＣＯが多量に含まれると、三元触媒９はこれらに吸蔵している酸素分子を与えて酸化し、これによりＨＣ，ＣＯを浄化する。
【００５９】
したがって、三元触媒９が、連続的に流入する多量のＨＣ，ＣＯを効率的に浄化するためには、この三元触媒９が酸素を多量に貯蔵していなければならず、逆に、連続的に流入する多量のＮＯｘを効率的に浄化するためには、三元触媒９が酸素を十分に吸蔵できる状態にあることが必要となる。以上のことから明らかなように、三元触媒９の浄化能力は、この三元触媒９が吸蔵し得る最大の酸素量（最大酸素吸蔵量）に依存する。
【００６０】
一方、三元触媒９は燃料中に含まれる鉛や硫黄等による被毒、あるいは、触媒に加わる熱により劣化し、これに伴い最大酸素吸蔵量が次第に低下してくる。このように最大酸素吸蔵量が低下した場合であっても、エミッションを良好に維持するには、三元触媒９から排出されるガスの空燃比が、理論空燃比に極めて近い状態となるように制御する必要がある。
【００６１】
そこで、本実施形態では、空燃比センサ２０９及びＯ2センサ２１０の各出力信号に基づいて、三元触媒９に流入する排気ガスの空燃比が理論空燃比になるよう燃料噴射量をフィードバック制御している（空燃比フィードバック制御）。具体的には、下記のメインフィードバック制御とサブフィードバック制御とを実行する。
【００６２】
（メインフィードバック制御）
メインフィードバック制御では、空燃比センサ２０９の出力信号と理論空燃比（ストイキ空燃比）との偏差に基づいて、燃料噴射量の計算に反映させるフィードバック値（メインＦ／Ｂ補正量）が算出されて燃料噴射量が増減される。具体的には、空燃比センサ２０９の出力信号から得られる実際の空燃比が理論空燃比（ストイキ空燃比）よりもリッチである場合は燃料噴射量が減量補正され、実際の空燃比が理論空燃比よりもリーンである場合は燃料噴射量が増量補正される。
【００６３】
そして、本実施形態では、上記メインフィードバック補正量（ストイキ空燃比に対するずれ量を示す空燃比学習値）が所定値以上（異常値）である場合は燃料系異常や失火異常が発生していると判定する（異常検出）。より具体的には、例えば、メインフィードバック制御においては、メインフィードバック補正量（メインＦ／Ｂ補正量）が所定のガード範囲内に制限されるようになっており、そのメインＦ／Ｂ補正量がガード範囲の上限ガード値または下限ガード値に所定時間（異常検出時間：例えば１０ｓｅｃ）張り付いた状態となった場合には燃料系の異常や失火異常であると判定する。
【００６４】
また、本実施形態では、上記異常を検出した場合は、その異常検出時の運転条件（エンジン回転数ＮＥ、負荷率ＫＬ、暖機状態（冷温時／高温時））、及び、燃料噴射モード（ＤＩ噴射、ＰＦＩ噴射、または、ＤＵＡＬ噴射）を、例えば、ＥＣＵ１００のＲＡＭ１０３内に記憶するようになっている。
【００６５】
なお、上記メインＦ／Ｂ補正量を制限するガード範囲については、例えば、メインＦ／Ｂ補正量の異常（誤補正）を考慮して、予め実験・計算等によって適合した範囲（例えば、ストイキ空燃比に対して±３０％の範囲）を設定する。
【００６６】
（サブフィードバック制御）
サブフィードバック制御では、Ｏ2センサ２１０の出力電圧と比較電圧（ストイキ相当値）との偏差に基づいて、燃料噴射量の計算に反映させるフィードバック値（サブＦ／Ｂ補正量）が算出される。そして、そのサブＦ／Ｂ補正量に基づいて空燃比センサ２０９の出力を補正することにより、三元触媒９の上流の空燃比が理論空燃比と一致するようになる。なお、サブＦ／Ｂ補正量についても、上記したメインＦ／Ｂ補正量と同様な、ガード範囲内に制限する処理が実行される場合もある。この場合、サブＦ／Ｂ補正量を用いて燃料系異常や失火異常を判定するようにしてもよい。
【００６７】
−正常復帰判定処理−
まず、筒内噴射用インジェクタ２ａとポート噴射用インジェクタ２ｂとを備えたエンジン１にあっては、上述したように、ＤＵＡＬモード時に異常を検出した場合には、噴き分け率を記憶し、その記憶した噴き分け率に所定範囲（噴き分け範囲）を設定して正常復帰判定を行っているが、正常判定実施可能な噴き分け範囲を正確に定義することができない。すなわち、ＤＵＡＬモード時の噴き分け率はエンジン１の運転状態（点火遅角、負荷率等）によって様々に変化するので、異常検出時の噴き分け率に対して、どの範囲内（何％の範囲内）までが異常検出時と同様（類似）の条件であるとみなすことが困難であり、正常判定実施可能な噴き分け範囲を正確に定義することができない。また、現在の噴き分け率が異常検出時の噴き分け率と完全に一致するときのみ正常復帰判定を実施するという方法が考えられるが、この場合、正常判定の機会が少なくなってしまう。
【００６８】
このような点を考慮して、本実施形態では、ＤＵＡＬモードでの正常判定の機会を増やすことができ、しかも、正常復帰判定の精度を確保できるようにする。これを実現するための具体的な処理（正常復帰判定処理）の一例について図４及び図５のフローチャートを参照して説明する。図４及び図５の処理ルーチンはＥＣＵ１００において所定時間毎（例えば数ｍｓｅｃ毎）に繰り返して実行される。
【００６９】
ここで、本実施形態において、対象とするエンジン１の運転状態は、エンジン回転数ＮＥ、負荷率ＫＬ、及び、暖機状態とする。また、暖機状態は、冷間時（水温が暖機温度（例えば８０℃）未満の状態）と高温時（水温が暖機温度以上の状態）のいずれか一方の状態とする。
【００７０】
また、本実施形態では、カウンタ１１０（図２参照）として、ＤＩ正常カウンタ、ＰＦＩ正常カウンタ、及び、燃料系正常カウンタを用いる。これらＤＩ正常カウンタ、ＰＦＩ正常カウンタ、及び、燃料系正常カウンタは、それぞれ、時間をカウントアップ（計時）するタイマカウンタである。
【００７１】
図４及び図５の処理ルーチンが開始されると、まずは、図４に示すステップＳＴ１０１において、以前に異常検出（燃料系異常や失火異常の検出）があり、その異常検出時のエンジン１の運転状態（エンジン回転数ＮＥ、負荷率ＫＬ、暖機状態（冷間時／高温時））及び燃料噴射モードが記憶されているか否かを判定する。ステップＳＴ１０１の判定結果が否定判定（ＮＯ）である場合（運転状態・燃料噴射モードの記憶がない場合）はリターンする。
【００７２】
ステップＳＴ１０１の判定結果が肯定判定（ＹＥＳ）である場合はステップＳＴ１０２に進む。ステップＳＴ１０２では、上記異常検出時に記憶した燃料噴射モードがＤＵＡＬモードであるか否かを判定する。その判定結果が否定判定（ＮＯ）である場合は、図５に示すステップＳＴ１４０の処理（ＤＩ正常カウンタクリア、ＰＦＩ正常カウンタクリア）を実行した後にリターンする。
【００７３】
上記ステップＳＴ１０２の判定結果が肯定判定（ＹＥＳ）である場合（異常検出時燃料噴射モードがＤＵＡＬモードである場合）はステップＳＴ１１１に進む。
【００７４】
ステップＳＴ１１１では、「現在の燃料噴射モードがＤＩモードである」、「ＤＩ正常未判定である」、及び、「上記メインＦ／Ｂ補正量が異常値ではない」の３つの条件の全てが成立しているか否かを判定する。その判定結果が判定結果が否定判定（ＮＯ）である場合（上記３つの条件のいずれか１つの条件が不成立である場合）は、ＤＩ正常カウンタをクリアして（ステップＳＴ１１３）、ステップＳＴ１１４に進む。
【００７５】
ステップＳＴ１１１の判定結果が肯定判定（ＹＥＳ）である場合（上記３つの条件の全てが成立している場合）は、ＤＩ正常カウンタのカウントアップ（計時）を開始する（ステップＳＴ１１２）。このＤＩ正常カウンタのカウントアップ（計時）は、ステップＳＴ１１１の判定結果が肯定判定（ＹＥＳ）である間において継続され、ステップＳＴ１１１の判定結果が否定判定（ＮＯ）となった時点で停止される。
【００７６】
次に、ステップＳＴ１１４において、ＤＩ正常カウンタのカウント値（計時値）が所定値に達しているか否かを判定する。その判定結果が肯定判定（ＹＥＳ）である場合（［ＤＩ正常カウンタのカウント値≧所定値］である場合）は、ステップＳＴ１１５においてＤＩ正常フラグをＯＮに設定して、ステップＳＴ１２１に進む。ステップＳＴ１１４の判定結果が否定判定（ＮＯ）である場合（［ＤＩ正常カウンタのカウント値＜所定値］である場合）は、フラグ処理を行わずにステップＳＴ１２１に進む。
【００７７】
ここで、ステップＳＴ１１４の判定処理に用いる所定値は、上記した「メインフィードバック制御」で説明した「異常検出時間」に対応する時間（例えば、１０ｓｅｃ）であり、ステップＳＴ１１１が肯定判定である状態が、この所定値（異常検出時間）以上継続されると、筒内噴射用インジェクタ２ａは正常であると判定することができる。なお、所定値は「１０ｓｅｃ」以外の値であってもよい。
【００７８】
ステップＳＴ１２１では、「現在の燃料噴射モードがＰＦＩモードである」、「ＰＦＩ正常未判定である」、及び、「上記メインＦ／Ｂ補正量が異常値ではない」の３つの条件の全てが成立しているか否かを判定する。その判定結果が判定結果が否定判定（ＮＯ）である場合（上記３つの条件のいずれか１つの条件が不成立である場合）は、ＰＦＩ正常カウンタをクリアして（ステップＳＴ１２３）、ステップＳＴ１２４に進む。
【００７９】
ステップＳＴ１２１の判定結果が肯定判定（ＹＥＳ）である場合（上記３つの条件の全てが成立している場合）は、ＰＦＩ正常カウンタのカウントアップ（計時）を開始する（ステップＳＴ１２２）。このＰＦＩ正常カウンタのカウントアップ（計時）は、ステップＳＴ１２１の判定結果が肯定判定（ＹＥＳ）である間において継続され、ステップＳＴ１２１の判定結果が否定判定（ＮＯ）となった時点で停止される。
【００８０】
次に、ステップＳＴ１２４では、ＰＦＩ正常カウンタのカウント値（計時値）が所定値に達しているか否かを判定する。その判定結果が肯定判定（ＹＥＳ）である場合（［ＰＦＩ正常カウンタのカウント値≧所定値］である場合）は、ステップＳＴ１２５においてＰＦＩ正常フラグをＯＮに設定して、図５のステップＳＴ１３０に進む。ステップＳＴ１２４の判定結果が否定判定（ＮＯ）である場合（［ＰＦＩ正常カウンタのカウント値＜所定値］である場合）は、フラグ処理を行わずに図５のステップＳＴ１３０に進む。
【００８１】
ここで、ステップＳＴ１２４の判定処理に用いる所定値は、上記した「メインフィードバック制御」で説明した「異常検出時間」に対応する時間（例えば、１０ｓｅｃ）であり、ステップＳＴ１２１が肯定判定である状態が、この所定値（異常検出時間）以上継続されると、ポート噴射用インジェクタ２ｂは正常であると判定することができる。なお、所定値は「１０ｓｅｃ」以外の値であってもよい。
【００８２】
図５に示すステップＳＴ１３０においては、上記異常検出時に記憶したエンジン回転数ＮＥ、負荷率ＫＬ、暖機状態及び燃料噴射モードを用いて、下記の類似運転条件（ｊ１）〜（ｊ４）の全てが成立しているか否かを判定する。なお、このステップＳＴ１３０は、異常検出時に記憶した燃料噴射モードがＤＵＡＬ噴射である場合（ステップＳＴ１０２が肯定判定である場合）に実行されるので、下記の条件（ｊ４）における「異常検出時燃料噴射モード」は「ＤＵＡＬ噴射」となる。
【００８３】
（ｊ１）異常検出時ＮＥ−３７５ｒｐｍ≦現在ＮＥ≦異常検出時ＮＥ＋３７５ｒｐｍ
（ｊ２）異常検出時ＫＬ−２０％≦現在ＫＬ≦異常検出時ＫＬ＋２０％
（ｊ３）異常検出時暖機状態＝現在暖機状態
（ｊ４）異常検出時燃料噴射モード＝現在燃料噴射モード
ステップＳＴ１３０の判定結果が肯定判定（ＹＥＳ）である場合はステップＳＴ１３１に進む。ステップＳＴ１３１では、上記したメインフィードバック制御の補正量（Ｆ／Ｂ補正量）が異常値でないか否かを判定する。その判定結果が肯定判定（ＹＥＳ）である場合は燃料系正常カウンタのカウントアップ（計時）を開始して（ステップＳＴ１３２）、ステップＳＴ１３４に進む。この燃料系正常カウンタのカウントアップ（計時）は、ステップＳＴ１３０及びステップＳＴ１３１の判定結果がともに肯定判定（ＹＥＳ）である間において継続され、ステップＳＴ１３０またはステップＳＴ１３１のいずれか一方の判定結果が否定判定（ＮＯ）となった時点で停止される。
【００８４】
上記ステップＳＴ１３０の判定結果が否定判定（ＮＯ）である場合、または、ステップＳＴ１３１の判定結果が否定判定（ＮＯ）である場合は、燃料系正常カウンタをクリアして（ステップＳＴ１３３）、ステップＳＴ１３４に進む。
【００８５】
ステップＳＴ１３４では、燃料系正常カウンタのカウント値（計時値）が所定値に達しているか否かを判定する。その判定結果が肯定判定（ＹＥＳ）である場合（［燃料系正常カウンタのカウント値≧所定値］である場合）は、ステップＳＴ１３５においてＤＵＡＬ時燃料系正常フラグをＯＮに設定してステップＳＴ１３６に進む。ステップＳＴ１３４の判定結果が否定判定（ＮＯ）である場合（［燃料系正常カウンタのカウント値＜所定値］である場合）は、フラグ処理を行わずにステップＳＴ１３６に進む。
【００８６】
ここで、燃料系正常カウンタのカウント値（計時値）に対して設定する所定値は、ＤＵＡＬ時燃料系正常を判定するための時間であり、ステップＳＴ１３０及びステップＳＴ１４０がともに肯定判定である状態が、この所定値（判定時間）以上継続されると、ＤＵＡＬ時燃料系は正常であると判定することができる。なお、所定値は固定値（例えば、１０ｓｅｃ）であってもよいし、エンジン１の運転状態に応じて所定値を可変に設定するようにしてもよい。
【００８７】
そして、ステップＳＴ１３６において、ＤＵＡＬ時燃料系正常フラグ、ＤＩ正常フラグ及びＰＦＩ正常フラグの全てのフラグがＯＮであるか否かを判定し、その判定結果が肯定判定（ＹＥＳ）である場合は、ステップＳＴ１３７において燃料系は正常と判定する（正常復帰判定）。一方、ステップＳＴ１３６の判定結果が否定判定（ＮＯ）である場合はリターンする。
【００８８】
以上のように、本実施形態によれば、ＤＵＡＬモードでの正常復帰判定の条件（類似運転条件）に噴き分け率を含めていないので、ＤＵＡＬモードでの正常判定の機会を増やすことができる。しかも、ＤＵＡＬモード時における正常判定（燃料系の正常判定）に加えて、筒内噴射モード時及びポート噴射モード時においてそれぞれ正常判定（燃料系の正常判定）を実施しているので、筒内噴射用インジェクタ２ａ及びポート噴射用インジェクタ２ｂが正常であることを個別に判定することができる。これによって噴き分け率の影響を排除することができるので、類似運転条件（噴き分け率を含まない条件）のみでＤＵＡＬモードでの正常復帰判定を精度よく行うことができる。
【００８９】
このように、本実施形態では、ＤＵＡＬモードでの正常復帰判定の機会の確保と、その正常復帰判定の精度確保とを両立することができる。
【００９０】
−正常復帰判定処理の他の例−
次に、正常復帰判定処理の他の例について説明する。
【００９１】
まず、この例では、ＥＣＵ１００において失火検出処理を実行するように構成されている。その失火検出処理について以下に説明する。
【００９２】
エンジン１の４つの気筒＃１〜＃４のうち、ある気筒（例えば第１気筒＃１）に失火が発生した場合、その気筒（複数の気筒の場合も含む）の爆発行程におけるエンジン回転速度が低下するので、この失火が生じた気筒（第１気筒＃１）の爆発行程中においてクランクシャフト１５が一定クランク角度を回転するのに要する時間が、他の気筒（例えば第２気筒＃２〜第４気筒＃４）の爆発行程時におけるその時間よりも長くなる。したがって、これらの時間を計測して比較することにより失火の発生を認識することが可能になる。
【００９３】
その具体的な処理の一例について説明する。
【００９４】
まず、ＥＣＵ１００は、クランクポジションセンサ（エンジン回転数センサ）２０１及びカムポジションセンサ２０２の各出力信号を所定のクランク角度毎（例えば３０°ＣＡ毎）に取り込み、それらの各信号に基づいて、第１気筒＃１が爆発行程にあるときに、この爆発行程中において、クランクシャフト１５が一定クランク角度（例えば１８０°ＣＡ）を回転するのに要する経過時間Ｔ１と、この第１気筒＃１の爆発行程よりも１回前（３６０°ＣＡ前）に爆発行程を迎えていた第２気筒＃２の爆発行程中においてクランクシャフト１５が一定のクランク角度（例えば１８０°ＣＡ）を回転するのに要する経過時間Ｔ２との差を演算して、第１気筒＃１の回転変動量ΔＮＥ１（＝Ｔ１−Ｔ２）を得る。
【００９５】
また、同様にして、エンジン１の各気筒＃２〜＃４の爆発行程中においてクランクシャフト１５が一定クランク角度（例えば１８０°ＣＡ）を回転するのに要する経過時間Ｔ３（第３気筒＃３）、Ｔ４（第４気筒＃４）、Ｔ２（第２気筒＃２）を順次演算して、第３気筒＃３の回転変動量ΔＮＥ３（＝Ｔ３−Ｔ１）、第４気筒＃４の回転変動量ΔＮＥ４（＝Ｔ４−Ｔ３）、及び、第２気筒＃２の回転変動量ΔＮＥ２（＝Ｔ２−Ｔ４）を得る。
【００９６】
そして、ＥＣＵ１００は、上記演算により求めた各気筒＃１〜＃４の回転変動量ΔＮＥ１〜ΔＮＥ４と失火判定閾値とを比較し、回転変動量ΔＮＥが失火判定閾値を超えている気筒がある場合は「失火が発生している」と検出する。そして、この回転変動量ΔＮＥが失火判定閾値を超える度に、後述するＤＩ時失火カウンタ、ＰＦＩ時失火カウンタ、または、類似条件成立時失火カウンタのうちのいずれか１つの失火カウンタが、失火発生時の燃料噴射モードに応じて１つずつインクリメントされる。
【００９７】
ここで、上記回転変動量ΔＮＥに対して設定する失火判定閾値は、失火が発生するエンジン１の回転変動量を実験・シミュレーション等によって取得しておき、その結果を基に経験的に適合した値である。この失火判定閾値はＥＣＵ１００のＲＯＭ１０２内に記憶されている。また、失火判定閾値は、回転変動量ΔＮＥなどに応じて可変に設定するようにしてもよい。なお、各気筒＃１〜＃４の回転変動量は、他の公知の方法によって認識（演算）するようにしてもよい。
【００９８】
また、エンジン１の失火を検出する方法としては、上記したエンジン１の回転変動量を用いて失火を検出する方法に限られることなく、例えば、触媒の前後に配置された空燃比センサとＯ2センサ（酸素センサ）との出力信号（２つのセンサ検出値の差）に基づいて失火の発生を検出する方法など、他の公知の方法を採用してもよい。
【００９９】
（正常復帰判定処理）
次に、正常復帰判定処理の他の例について図６及び図７のフローチャートを参照して説明する。図６及び図７の処理ルーチンはＥＣＵ１００において所定時間毎（例えば数ｍｓｅｃ毎）に繰り返して実行される。
【０１００】
ここで、この例においても、対象とするエンジン１の運転状態は、エンジン回転数ＮＥ、負荷率ＫＬ、及び、暖機状態とする。また、暖機状態は、冷間時（水温が暖機温度（例えば８０℃）未満の状態）と高温時（水温が暖機温度以上の状態）のいずれか一方の状態とする。
【０１０１】
また、この例にあっては、カウンタ１１０（図２参照）として、ＤＩ運転期間カウンタ、ＰＦＩ運転期間カウンタ、及び、類似条件成立期間カウンタと、ＤＩ時失火カウンタ、ＰＦＩ時失火カウンタ、及び、類似条件成立時失火カウンタとがＥＣＵ１００内に備えられている。
【０１０２】
（期間カウンタ）
上記各期間カウンタは、それぞれ、カウント開始時点からエンジン１（クランクシャフト１５）が１回転（１Ｒｅｖ）するごとに、カウント値が１つずつカウントアップするカウンタであって、ＤＩ運転期間カウンタは、ＤＩモードでの運転開始時点からのエンジン１の累積回転数（Ｒｅｖ）を計測するカウンタであり、ＰＦＩ運転期間カウンタは、ＰＦＩモードでの運転開始時点からのエンジン１の累積回転数（Ｒｅｖ）を計測するカウンタである。また、類似条件成立期間カウンタは、後述する類似条件が成立した時点からのエンジン１の累積回転数（Ｒｅｖ）を計測するカウンタである。
【０１０３】
（失火カウンタ）
ＤＩ時失火カウンタは、ＤＩモード中において上記エンジン１の各気筒＃１〜＃４の回転変動量ΔＮＥが失火判定閾値を超える度にカウント値が１つずつカウントアップ（インクリメント）するカウンタである。ＰＦＩ時失火カウンタは、ＰＦＩモード中において上記エンジン１の各気筒＃１〜＃４の回転変動量ΔＮＥが失火判定閾値を超える度にカウント値が１つずつカウントアップするカウンタである。類似条件成立時失火カウンタは、後述する類似条件が成立している期間において上記エンジン１の各気筒＃１〜＃４の回転変動量ΔＮＥが失火判定閾値を超える度にカウント値が１つずつカウントアップするカウンタである。
【０１０４】
次に、図６及び図７のフローチャートについて説明する。
【０１０５】
図６及び図７の処理ルーチンが開始されると、まずは、図６に示すステップＳＴ２０１において、以前に異常検出（燃料系異常や失火異常の検出）があり、その異常検出時のエンジン１の運転状態（エンジン回転数ＮＥ、負荷率ＫＬ、暖機状態（冷間時／高温時））及び燃料噴射モードが記憶されているか否かを判定する。ステップＳＴ２０１の判定結果が否定判定（ＮＯ）である場合（運転状態・燃料噴射モードの記憶がない場合）はリターンする。
【０１０６】
ステップＳＴ２０１の判定結果が肯定判定（ＹＥＳ）である場合はステップＳＴ２０２に進む。ステップＳＴ２０２では、上記異常検出時に記憶した燃料噴射モードがＤＵＡＬモードであるか否かを判定する。その判定結果が否定判定（ＮＯ）である場合はリターンする。ステップＳＴ２０２の判定結果が肯定判定（ＹＥＳ）である場合（異常検出時燃料噴射モードがＤＵＡＬモードである場合）はステップＳＴ２１１に進む。
【０１０７】
ステップＳＴ２１１では、現在の燃料噴射モードがＤＩモードであるか否かを判定する。その判定結果が否定判定（ＮＯ）である場合（ＤＩモードでない場合）はステップＳＴ２２１に進む。ステップＳＴ２１１の判定結果が肯定判定（ＹＥＳ）である場合（ＤＩモードである）はステップＳＴ２１２に進む。ここで、ＤＩモードである場合、そのＤＩモードになった時点からＤＩ運転期間カウンタのカウントが開始され、エンジン１（クランクシャフト１５）が１回転（１Ｒｅｖ）するごとに、ＤＩ運転期間カウンタのカウント値が１つずつカウントアップされる。
【０１０８】
ステップＳＴ２１２では、上記失火検出処理にて現在失火中であるか否かを判定する。その判定結果が肯定判定（ＹＥＳ）である場合は、ＤＩ時失火カウンタを１つカウントアップ（ステップＳＴ２１３）してステップＳＴ２１４に進む。ステップＳＴ２１２の判定結果が否定判定（ＮＯ）である場合はカウントアップ処理を行わずにステップＳＴ２１４に進む。
【０１０９】
ステップＳＴ２１４では、上記ＤＩ運転期間カウンタのカウント値（ＤＩ運転期間）が所定値（例えば、２００Ｒｅｖ）に達しているか否かを判定する。その判定結果が否定判定である場合（［ＤＩ運転期間＜所定値］である場合）はステップＳＴ２２１に進む。ステップＳＴ２１４の判定結果が肯定判定である場合（［ＤＩ運転期間≧所定値］である場合）はステップＳＴ２１５に進む。
【０１１０】
ステップＳＴ２１５では、ＤＩ時失火カウンタのカウント値が所定値（例えば「５」）よりも小さいか否かを判定する。その判定結果が肯定判定（ＹＥＳ）である場合（［ＤＩ時失火カウンタ＜所定値］である場合）は、ステップＳＴ２１６においてＤＩ正常フラグをＯＮに設定してステップＳＴ２２１に進む。ステップＳＴ２１５の判定結果が否定判定（ＮＯ）である場合（［ＤＩ時失火カウンタ≧所定値］である場合）は、フラグ処理を行わずにステップＳＴ２２１に進む。
【０１１１】
ここで、ステップＳＴ２１５の判定処理に用いる所定値は、失火異常判定閾値であって、予め実験・計算等によって適合した値とする。この例では、例えば所定値を「５」としているが、これ以外の値であってもよい。
【０１１２】
ステップＳＴ２２１では、現在の燃料噴射モードがＰＦＩモードであるか否かを判定する。その判定結果が否定判定（ＮＯ）である場合（ＰＦＩモードでない場合）は図７のステップＳＴ２３０に進む。ステップＳＴ２２１の判定結果が肯定判定（ＹＥＳ）である場合（ＰＦＩモードである）はステップＳＴ２２２に進む。ここで、ＰＦＩモードである場合、そのＰＦＩモードになった時点からＰＦＩ運転期間カウンタのカウントが開始され、エンジン１（クランクシャフト１５）が１回転（１Ｒｅｖ）するごとに、ＰＦＩ運転期間カウンタのカウント値が１つずつカウントアップされる。
【０１１３】
ステップＳＴ２２２では、上記失火検出処理にて現在失火中であるか否かを判定する。その判定結果が肯定判定（ＹＥＳ）である場合は、ＰＦＩ時失火カウンタのカウント値を１つカウントアップ（ステップＳＴ２２３）してステップＳＴ２２４に進む。ステップＳＴ２２２の判定結果が否定判定（ＮＯ）である場合はカウントアップ処理を行わずにステップＳＴ２２４に進む。
【０１１４】
ステップＳＴ２２４では、上記ＰＦＩ運転期間カウンタのカウント値（ＰＦＩ運転期間）が所定値（例えば、２００Ｒｅｖ）に達しているか否かを判定する。その判定結果が否定判定である場合（［ＰＦＩ運転期間＜所定値］である場合）は図７のステップＳＴ２３０に進む。ステップＳＴ２２４の判定結果が肯定判定である場合（［ＰＦＩ運転期間≧所定値］である場合）はステップＳＴ２２５に進む。
【０１１５】
ステップＳＴ２２５では、ＰＦＩ時失火カウンタのカウント値が所定値（例えば「５」）よりも小さいか否かを判定する。その判定結果が肯定判定（ＹＥＳ）である場合（［ＰＦＩ時失火カウンタ＜所定値］である場合）は、ステップＳＴ２２６においてＰＦＩ正常フラグをＯＮに設定して図７のステップＳＴ２３０に進む。ステップＳＴ２１５の判定結果が否定判定（ＮＯ）である場合（［ＰＦＩ時失火カウンタ≧所定値］である場合）は、フラグ処理を行わずに図７のステップＳＴ２３０に進む。
【０１１６】
ここで、ステップＳＴ２２５の判定処理に用いる所定値は、失火異常判定閾値であって、予め実験・計算等によって適合した値とする。この例では、例えば所定値を「５」としているが、これ以外の値であってもよい。
【０１１７】
図７のステップＳＴ２３０では、上記異常検出時のエンジン回転数ＮＥ、負荷率ＫＬ、暖機状態及び燃料噴射モードを用いて、下記の類似運転条件（ｊ１）〜（ｊ４）の全てが成立しているか否かを判定する。なお、このステップＳＴ２３０は、異常検出時に記憶した燃料噴射モードがＤＵＡＬ噴射である場合（ステップＳＴ２０２が肯定判定である場合）に実行されるので、下記の条件（ｊ４）における「異常検出時燃料噴射モード」は「ＤＵＡＬ噴射」となる。
【０１１８】
（ｊ１）異常検出時ＮＥ−３７５ｒｐｍ≦現在ＮＥ≦異常検出時ＮＥ＋３７５ｒｐｍ
（ｊ２）異常検出時ＫＬ−２０％≦現在ＫＬ≦異常検出時ＫＬ＋２０％
（ｊ３）異常検出時暖機状態＝現在暖機状態
（ｊ４）異常検出時燃料噴射モード＝現在燃料噴射モード
ステップＳＴ２３０の判定結果が肯定判定（ＹＥＳ）である場合はステップＳＴ２３１に進む。ここで、類似運転条件が成立している場合、その類似運転条件が成立した時点から類似条件成立期間カウンタのカウントが開始され、エンジン１（クランクシャフト１５）が１回転（１Ｒｅｖ）するごとに、類似条件成立期間カウンタのカウント値が１つずつカウントアップされる。
【０１１９】
ステップＳＴ２３１では、上記失火検出処理にて現在失火中であるか否かを判定する。その判定結果が肯定判定（ＹＥＳ）である場合は、類似運転条件成立時失火カウンタのカウント値を１つカウントアップ（ステップＳＴ２３２）してステップＳＴ２３３に進む。ステップＳＴ２３１の判定結果が否定判定（ＮＯ）である場合はカウントアップ処理を行わずにステップＳＴ２３３に進む。
【０１２０】
ステップＳＴ２３３では、上記類似条件成立期間カウンタのカウント値（類似運転条件成立期間）が所定値（例えば、１０００Ｒｅｖ）に達しているか否かを判定する。その判定結果が否定判定である場合（［類似運転条件成立期間＜所定値］である場合）はステップＳＴ２３６に進む。ステップＳＴ２３３の判定結果が肯定判定である場合（［類似運転条件成立期間≧所定値］である場合）はステップＳＴ２３４に進む。
【０１２１】
ステップＳＴ２３４では、類似運転条件成立時失火カウンタのカウント値が所定値（例えば、「２０」）よりも小さいか否かを判定する。その判定結果が肯定判定（ＹＥＳ）である場合（［類似運転条件成立時失火カウンタ＜所定値］である場合）は、ステップＳＴ２３５においてＤＵＡＬ時失火正常フラグ（失火がなくて燃焼状態が正常であることを示す正常フラグ）をＯＮに設定してステップＳＴ２３６に進む。ステップＳＴ２３４の判定結果が否定判定（ＮＯ）である場合（［類似運転条件成立時失火カウンタ≧所定値］である場合）は、フラグ処理を行わずにステップＳＴ２３６に進む。
【０１２２】
ここで、ステップＳＴ２３４の判定処理に用いる所定値は、失火異常判定閾値であって、予め実験・計算等によって適合した値とする。この例では、例えば所定値を「２０」としているが、これ以外の値であってもよい。
【０１２３】
そして、ステップＳＴ２３６において、ＤＵＡＬ時失火正常フラグ、ＤＩ正常フラグ及びＰＦＩ正常フラグの全てのフラグがＯＮであるか否かを判定し、その判定結果が肯定判定（ＹＥＳ）である場合は、ステップＳＴ２３７において失火正常（燃焼状態が正常）と判定する（正常復帰判定）。一方、ステップＳＴ１３６の判定結果が否定判定（ＮＯ）である場合はリターンする。
【０１２４】
以上のように、この例によれば、ＤＵＡＬモードでの正常復帰判定の条件（類似運転条件）に噴き分け率を含めていないので、ＤＵＡＬモードでの正常判定の機会を増やすことができる。しかも、ＤＵＡＬモード時における正常判定（燃焼状態が正常であることを判定する正常判定）に加えて、筒内噴射モード時及びポート噴射モード時においてそれぞれ正常判定（燃焼状態が正常であることを判定する正常判定）を実施しているので、筒内噴射用インジェクタ２ａ及びポート噴射用インジェクタ２ｂが正常であることを個別に判定することができる。これによって、噴き分け率の影響を排除することができので、類似運転条件（噴き分け率を含まない条件）のみでＤＵＡＬモードでの正常復帰判定を精度よく行うことができる。
【０１２５】
このように、この実施形態においても、ＤＵＡＬモードでの正常復帰判定の機会の確保と、その正常復帰判定の精度確保とを両立することができる。
【０１２６】
なお、以上の例では、図６のステップＳＴ２１４の判定処理に用いる所定値（ＤＩ運転期間カウンタのカウント値に対して設定する所定値）、及び、図６のステップＳＴ２２４の判定処理に用いる所定値（ＰＦＩ運転期間カウンタのカウント値に対して設定する所定値）を「２００Ｒｅｖ」としているが、これに限られることなく、他の任意の数値（Ｒｅｖ）を設定してもよい。また、図７のステップＳＴ２２３の判定処理に所定値（類似運転条件成立期間カウンタのカウント値に対して設定する所定値）を「１０００Ｒｅｖ」としているが、この所定値についても、他の任意の数値（Ｒｅｖ）を設定してもよい。
【０１２７】
−他の実施形態−
以上の例では、４気筒ガソリンエンジンに本発明を適用した場合について説明したが、本発明はこれに限られることなく、例えば６気筒ガソリンエンジンなど他の任意の気筒数のガソリンエンジンにも適用可能である。また、直列多気筒ガソリンエンジンのほか、Ｖ型多気筒ガソリンエンジンの制御にも本発明を適用することができる。
【産業上の利用可能性】
【０１２８】
本発明は、燃焼室内に燃料を直接噴射する筒内用燃料噴射弁と、吸気通路に燃料を噴射する吸気通路用燃料噴射弁とを備え、筒内噴射モード（ＤＩモード）、ポート噴射モード（ＰＦＩモード）、噴き分けモード（ＤＵＡＬモード）のうちの１つの燃料噴射モードに選択的に切り替えることが可能な内燃機関（エンジン）の異常検出に有効に利用することができる。
【符号の説明】
【０１２９】
１  エンジン
１ｄ  燃焼実
１１  吸気通路
１１ａ  吸気ポート
２ａ  筒内噴射用インジェクタ（筒内用燃料噴射弁）
２ｂ  ポート噴射用インジェクタ（吸気通路用燃料噴射弁）
１００  ＥＣＵ
１０３  ＲＡＭ
１１０  カウンタ
２０１  クランクポジションセンサ（エンジン回転数センサ）
２０３  水温センサ
２０４  エアフロメータ
２０９  空燃比センサ
２１０  Ｏ2センサ
【図１】
0005776511.tif 000002
【図２】
0005776511.tif 000003
【図３】
0005776511.tif 000004
【図４】
0005776511.tif 000005
【図５】
0005776511.tif 000006
【図６】
0005776511.tif 000007
【図７】
0005776511.tif 000008