(57)【特許請求の範囲】
【請求項１】
排気系に触媒が設けられた内燃機関の吸入空気量を制御する吸入空気量制御手段と、前記機関の点火時期を制御する点火時期制御手段と、前記機関の始動後吸入空気量を増量すると共に前記点火時期を前記機関の回転数が目標回転数に一致するように遅角する触媒昇温手段とを有する内燃機関の制御装置において、
前記触媒昇温手段の作動中に前記吸入空気量を故障判定のために減量し、該吸入空気量減量時における前記機関回転数と、前記目標回転数との差が判定閾値より大きいとき、前記触媒昇温手段が故障していると判定する故障診断手段を備えたことを特徴とする内燃機関の制御装置。
【請求項２】
排気系に触媒が設けられた内燃機関の吸入空気量を制御する吸入空気量制御手段と、前記機関の点火時期を制御する点火時期制御手段と、前記機関の始動後吸入空気量を増量すると共に前記点火時期を前記機関の回転数が目標回転数に一致するように遅角する触媒昇温手段とを有する内燃機関の制御装置において、
前記触媒昇温手段の作動中に前記吸入空気量を故障判定のために減量し、該吸入空気量減量時における前記点火時期の変化量が判定閾値より小さいとき、前記触媒昇温手段が故障していると判定する故障診断手段を備えたことを特徴とする内燃機関の制御装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、排気浄化用の触媒の昇温を促進する触媒昇温促進制御を実行する内燃機関の制御装置に関し、特に触媒昇温促進制御が正常に実行されない故障を診断する機能を有するものに関する。
【０００２】
【従来の技術】
内燃機関の排気系に設けられる排気浄化用の触媒は、低温では不活性状態にあり浄化作用を発揮しないため、機関始動直後においては早期にその温度を上昇させて活性化させることが望ましい。そこで、始動直後において内燃機関の吸入空気量を通常のアイドル時よりも増加させるとともに、機関回転数（回転速度）が目標回転数と一致するように、点火時期を遅角方向にフィードバック制御する手法が従来より知られている（特開平１０−２９９６３１号公報）。この手法によれば、吸入空気量の増量にともなって燃料供給量も増加し、通常のアイドル時に比べて発熱量が増加して、触媒の昇温を促進することができる。
【０００３】
【発明が解決しようとする課題】
しかしながら、上記従来の装置では、吸入空気量の増量や点火時期の遅角方向への変更が、制御装置からの指令通りに実行されないような故障については考慮されていない。そのため、そのような故障が発生した場合に、運転者が気づくのが遅れ始動直後における排気特性を悪化させるおそれがあった。
【０００４】
本発明はこの点に着目してなされたものであり、吸入空気量の増量と点火時期の遅角制御とを組み合わせた触媒の昇温促進制御を実行する場合において、その昇温促進制御の不具合を早期に診断して、排気特性の悪化を最小限に抑制することができる内燃機関の制御装置を提供することを目的とする。
【０００５】
【課題を解決するための手段】
上記目的を達成するため請求項１に記載の発明は、排気系に触媒が設けられた内燃機関の吸入空気量を制御する吸入空気量制御手段と、前記機関の点火時期を制御する点火時期制御手段と、前記機関の始動後吸入空気量を増量すると共に前記点火時期を前記機関の回転数が目標回転数に一致するように遅角する触媒昇温手段とを有する内燃機関の制御装置において、前記触媒昇温手段の作動中に前記吸入空気量を故障判定のために減量し、該吸入空気量減量時における前記機関回転数と、前記目標回転数との差が判定閾値より大きいとき、前記触媒昇温手段が故障していると判定する故障診断手段を備えたことを特徴とする。
請求項２に記載の発明は、排気系に触媒が設けられた内燃機関の吸入空気量を制御する吸入空気量制御手段と、前記機関の点火時期を制御する点火時期制御手段と、前記機関の始動後吸入空気量を増量すると共に前記点火時期を前記機関の回転数が目標回転数に一致するように遅角する触媒昇温手段とを有する内燃機関の制御装置において、前記触媒昇温手段の作動中に前記吸入空気量を故障判定のために減量し、該吸入空気量減量時における前記点火時期の変化量が判定閾値より小さいとき、前記触媒昇温手段が故障していると判定する故障診断手段を備えたことを特徴とする。
【０００６】
請求項１に記載の発明によれば、触媒昇温手段の作動中に吸入空気量を故障判定のために減量し、該吸入空気量減量時における機関回転数と、目標回転数との差が判定閾値より大きいとき、触媒昇温手段が故障していると判定されるので、触媒昇温手段の不具合を早期に診断して、排気特性の悪化を最小限に抑制することができる。
請求項２に記載の発明によれば、触媒昇温手段の作動中に吸入空気量を故障判定のために減量し、該吸入空気量減量時における点火時期の変化量が判定閾値より小さいとき、触媒昇温手段が故障していると判定されるので、触媒昇温手段の不具合を早期に診断して、排気特性の悪化を最小限に抑制することができる。
【０００７】
【発明の実施の形態】
以下本発明の実施の形態を図面を参照して説明する。
図１は、本発明の一実施形態にかかる内燃機関（以下「エンジン」という）及びその制御装置の構成を示す図であり、例えば４気筒のエンジン１の吸気管２の途中にはスロットル弁３が配されている。スロットル弁３にはスロットル弁開度（θＴＨ）センサ４が連結されており、当該スロットル弁３の開度に応じた電気信号を出力して電子コントロールユニット（以下「ＥＣＵ」という）５に供給する。
【０００８】
吸気管２にはスロットル弁３をバイパスする補助空気通路１７が接続されており、補助空気通路１７の途中には補助空気量を制御する補助空気制御弁１８が設けられている。補助空気制御弁１８は、ＥＣＵ５に接続されており、ＥＣＵ５によりその開弁量が制御される。
【０００９】
燃料噴射弁６は吸気管２内に燃料を噴射するように各気筒毎に設けられており、各噴射弁は図示しない燃料ポンプに接続されていると共にＥＣＵ５に電気的に接続されてＥＣＵ５からの信号により燃料噴射弁６の開弁時間が制御される。
一方、スロットル弁３の直ぐ下流には吸気管内絶対圧（ＰＢＡ）センサ７が設けられており、この絶対圧センサ７により電気信号に変換された絶対圧信号はＥＣＵ５に供給される。また、その下流には吸気温（ＴＡ)センサ８が取付けられており、吸気温ＴＡを検出して対応する電気信号を出力してＥＣＵ５に供給する。
【００１０】
エンジン１の本体に装着されたエンジン水温（ＴＷ）センサ９はサーミスタ等から成り、エンジン水温（冷却水温）ＴＷを検出して対応する温度信号を出力してＥＣＵ５に供給する。
ＥＣＵ５には、エンジン１のクランク軸（図示せず）の回転角度を検出するクランク角度位置センサ１０が接続されており、クランク軸の回転角度に応じた信号がＥＣＵ５に供給される。クランク角度位置センサ１０は、エンジン１の特定の気筒の所定クランク角度位置で信号パルス（以下「ＣＹＬ信号パルス」という）を出力する気筒判別センサ、各気筒の吸入行程開始時の上死点（ＴＤＣ）に関し所定クランク角度前のクランク角度位置で（４気筒エンジンではクランク角１８０度毎に）ＴＤＣ信号パルスを出力するＴＤＣセンサ及びＴＤＣ信号パルスより短い一定クランク角周期（例えば３０度周期）で１パルス（以下「ＣＲＫ信号パルス」という）を発生するＣＲＫセンサから成り、ＣＹＬ信号パルス、ＴＤＣ信号パルス及びＣＲＫ信号パルスがＥＣＵ５に供給される。これらの信号パルスは、燃料噴射時期、点火時期等の各種タイミング制御及びエンジン回転数（エンジン回転速度）ＮＥの検出に使用される。
【００１１】
エンジン１の各気筒毎に設けられた点火プラグ１１は、ＥＣＵ５に接続されており、点火プラグ１１の駆動信号、すなわち点火信号がＥＣＵ５から供給される。
三元触媒１６はエンジン１の排気管１２に配置されており、排気ガス中のＨＣ，ＣＯ，ＮＯｘ等の成分の浄化を行う。排気管１２の三元触媒１６の上流側には、比例型空燃比センサ１４（以下「ＬＡＦセンサ１４」という）が装着されており、このＬＡＦセンサ１４は排気ガス中の酸素濃度（空燃比）にほぼ比例する検出信号を出力しＥＣＵ５に供給する。
【００１２】
ＥＣＵ５には、エンジン１によって駆動される車両の走行速度（車速）ＶＰを検出する車速センサ２１、大気圧ＰＡを検出する大気圧センサ２２及び当該車両の自動変速機のシフト位置を検出するシフト位置センサ２３が接続されており、これらのセンサの検出信号がＥＣＵ５に供給される。
【００１３】
ＥＣＵ５は、各種センサからの入力信号波形を整形し、電圧レベルを所定レベルに修正し、アナログ信号値をデジタル信号値に変換する等の機能を有する入力回路５ａ、中央演算処理回路（以下「ＣＰＵ」という）５ｂ、該ＣＰＵ５ｂで実行される各種演算プログラム及び演算結果等を記憶する記憶手段５ｃ、前記燃料噴射弁６、点火プラグ１１などに駆動信号を供給する出力回路５ｄ等から構成される。
【００１４】
ＣＰＵ５ｂは、上述の各種エンジンパラメータ信号に基づいて、種々のエンジン運転状態を判別するとともに、該判別されたエンジン運転状態に応じて、次式（１）に基づき、ＴＤＣ信号パルスに同期して開弁作動する燃料噴射弁６による燃料噴射時間ＴＯＵＴを演算する。
ＴＯＵＴ＝ＴＩ×ＫＣＭＤ×ＫＬＡＦ×Ｋ１＋Ｋ２…（１）
ここに、ＴＩは燃料噴射弁６の基本燃料噴射時間であり、エンジン回転数ＮＥ及び吸気管内絶対圧ＰＢＡに応じて設定されたＴＩマップを検索して決定される。ＴＩマップは、マップ上のエンジン回転数ＮＥ及び吸気管内絶対圧ＰＢＡに対応する運転状態において、エンジン１に供給される混合気の空燃比がほぼ理論空燃比になるように設定されている。
【００１５】
ＫＣＭＤは目標空燃比係数であり、エンジン回転数ＮＥ、吸気管内絶対圧ＰＢＡ、エンジン水温ＴＷ等のエンジン運転パラメータに応じて設定される。目標空燃比係数ＫＣＭＤは、空燃比Ａ／Ｆの逆数、すなわち燃空比Ｆ／Ａに比例し、理論空燃比のとき値１．０をとるので、目標当量比ともいう。
ＫＬＡＦは、ＬＡＦセンサ１４の検出値から算出される検出当量比ＫＡＣＴが目標当量比ＫＣＭＤに一致するようにＰＩＤ制御により算出される空燃比補正係数である。
【００１６】
ＣＰＵ５ｂはさらに、下記式（２）により点火時期ＩＧＬＯＧを算出する。
ＩＧＬＯＧ＝ＩＧＭＡＰ＋ＩＧＣＲ＋ＩＧＦＰＩ      （２）
ここで、ＩＧＭＡＰは、エンジン回転数ＮＥ及び吸気管内絶対圧ＰＢＡに応じて設定されたＩＧマップを検索して得られる点火時期の基本値、すなわち上死点からの進角量で示される点火時期である。またＩＧＦＰＩは、後述するようにエンジン１の暖機運転中の急速暖機リタード制御実行時においてエンジン回転数ＮＥが目標回転数ＮＥＦＩＲと一致するように負の値に設定される遅角補正項であり、ＩＧＣＲは、遅角補正項ＩＧＦＰＩ以外の補正項である。（ＩＧＭＡＰ＋ＩＧＣＲ）が、急速暖機リタード制御を実行しない通常制御時の点火時期に相当する。なお、以下の説明では、急速暖機リタード制御を実行する運転モードを「ＦＩＲＥモード」という。
【００１７】
ＣＰＵ５ｂは上述のようにして求めた燃料噴射時間ＴＯＵＴに基づいて，燃料噴射弁６を駆動する信号を燃料噴射弁６に供給するとともに、点火時期ＩＧＬＯＧに基づいて点火プラグ１１を駆動する信号を点火プラグ１１に供給する。さらにＣＰＵ５ｂは、エンジン運転状態に応じて補助空気制御弁１８の開弁量を制御するための開弁制御量ＩＣＭＤを算出し、開弁制御量ＩＣＭＤに応じた駆動信号を補助空気制御弁１８に供給する。ＣＰＵ５ｂは、ＦＩＲＥモード（及びＦＩＲＥモード終了直後の過渡状態）においては、下記式（３）により開弁制御量ＩＣＭＤを算出する。補助空気制御弁１８を介してエンジン１の吸入される空気量は、この開弁制御量ＩＣＭＤに比例するように構成されている。
ＩＣＭＤ＝（ＩＦＩＲ＋ＩＬＯＡＤ）×ＫＩＰＡ＋ＩＰＡ（３）
【００１８】
ここで、ＩＦＩＲはＦＩＲＥモード時（及びＦＩＲＥモード終了直後の過渡状態のとき）に使用されるＦＩＲＥモード制御項、ＩＬＯＡＤはエンジン１に加わる電気負荷、空調装置のコンプレッサ負荷、パワーステアリング負荷などのオンオフあるいは自動変速機がインギヤか否かに応じて設定される負荷補正項、ＫＩＰＡ及びＩＰＡは共に大気圧ＰＡに応じて設定される大気圧補正係数及び大気圧補正項である。
【００１９】
図２及び３は、ＦＩＲＥモード及びＦＩＲＥモード終了直後においてＦＩＲＥモード制御項ＩＦＩＲの算出を行うメインルーチンのフローチャートである。このルーチンは、ＣＰＵ５ｂにおいてＴＤＣ信号パルスの発生に同期して実行される。
【００２０】
ステップＳ１では図５に示すＦＩＲＥモード判別処理を実行する。ＦＩＲＥモード判別処理では、ＦＩＲＥモードへの移行またはＦＩＲＥモードの継続を許可すること「１」で示すＦＩＲＥモードフラグＦＦＩＲＥＯＮの設定などの処理が行われる。
ステップＳ２では、ＦＩＲＥモードフラグＦＦＩＲＥＯＮが「１」であるか否かを判別し、ＦＦＩＲＥＯＮ＝０であってＦＩＲＥモードへの移行またはＦＩＲＥモードの継続が許可されていないときは、ステップＳ２６（図３）に進み、ＦＦＩＲＥＯＮ＝１であってＦＩＲＥモードへの移行またはＦＩＲＥモードの継続が許可されているときは、ＦＩＲＥモード終了直後の過渡制御実行中であることを「１」で示す過渡制御フラグＦＦＩＲＱＵＩＴを「０」に設定し（ステップＳ３）、故障判定の実施を指示することを「１」で示す故障判定実施フラグＦＤＥＴが「１」であるか否かを判別する（ステップＳ４）。この故障判定実施フラグＦＤＥＴは、後述する図１３の故障判定処理で設定されるものであり、ＦＩＲＥモード開始時点から所定遅延時間ＴＭＦＩＲＥＤＬＹが経過した時点で「１」に設定される。
【００２１】
ＦＩＲＥモード開始当初はＦＤＥＴ＝０であるので、後述するステップＳ９でインクリメントされるカウンタｋを「０」に設定し（ステップＳ５）、図７に示すＩＦＩＲ算出サブルーチンを実行する（ステップＳ６）。そして、ステップＳ６で算出されたＦＩＲＥモード制御項ＩＦＩＲが、エンジン水温ＴＷに応じて設定されるエンジン水温制御項ＩＴＷ（エンジン水温制御項ＩＴＷは、ＦＩＲＥモード以外のアイドル運転中などにおいて補助空気制御弁１８の制御に使用される制御項である）から下限値設定用所定値ＤＩＦＩＲＬ（例えば空気量１００リットル／ｍｉｎに相当する値）を減算した下限値（ＩＴＷ−ＤＩＦＩＲＬ）以下か否かを判別し（ステップＳ７）、ＩＦＩＲ＞ＩＴＷ−ＤＩＦＩＲＬであるときは、直ちに、またＩＦＩＲ≦ＩＴＷ−ＤＩＦＩＲＬであるときは、ＦＩＲＥモード制御項ＩＦＩＲをその下限値（ＩＴＷ−ＤＩＦＩＲＬ）に設定して（ステップＳ８）、本処理を終了する。
【００２２】
ステップＳ４でＦＤＥＴ＝１となると、ステップＳ９以下に進み、初めに吸入空気量を減量すべく開弁制御量ＩＣＭＤのＦＩＲＥモード制御項ＩＦＩＲを漸減する処理を行い、次いでＦＩＲＥモード制御項ＩＦＩＲをほぼ元の値に戻す漸増処理を行う。後述する図１３の故障判定処理では、漸減処理が終了した時点で故障判定ステップが実行される。
【００２３】
先ずステップＳ９では、カウンタｋを「１」だけインクリメントし、次いでそのカウンタｋの値が減量終了判定値ｋＤＥＮＤ以上か否かを判別する（ステップＳ１０）。ｋ＜ｋＤＥＮＤである間は、所定減量値ＤＡＤＥＣだけＦＩＲＥモード制御項ＩＦＩＲをデクリメントし（ステップＳ１１）、減量処理の終了を「１」で示す減量終了フラグＦＡＤＥＣＥＮＤを「０」に設定して（ステップＳ１２）、本処理を終了する。ｋ≧ｋＤＥＮＤとなると、ステップＳ１０からステップＳ１３に進んで、カウンタｋの値が減量終了判定値ｋＤＥＮＤをより大きいか否かを判別し、ｋ＝ｋＤＥＮＤであるときは、減量終了フラグＦＡＤＥＣＥＮＤを「１」に設定して（ステップＳ１４）、本処理を終了する。このフラグＦＡＤＥＣＥＮＤが「１」となると、図１３の処理で故障判定のステップが実行される。
【００２４】
次回からはステップＳ１３の答が肯定（ＹＥＳ）となるので、ステップＳ１５に進んで、ＦＩＲＥモード制御項ＩＦＩＲを所定増量値ＤＡＩＮＣだけインクリメントし、次いでカウンタｋの値が増量終了判定値ｋＩＥＮＤに達したか否かを判別する（ステップＳ１６）。ｋ＜ｋＩＥＮＤである間は直ちに本処理を終了し、ｋ＝ｋＩＥＮＤとなると、故障判定実施フラグＦＤＥＴを「０」に戻して（ステップＳ１７）、本処理を終了する。ＦＤＥＴ＝０となると、ステップＳ４からステップＳ５以下に進む処理に戻り、ＦＩＲＥモードが終了するまで繰り返す。
【００２５】
図３のステップＳ２６では、エンジン水温制御項ＩＴＷが、上限初期値ＩＦＩＲＩＮＩＨ（例えば吸入空気量６００リットル／ｍｉｎ相当の値）より小さいか否かを判別し、ＩＴＷ＜ＩＦＩＲＩＮＩＨであるときは、図７のステップＳ６４で使用する初期値ＩＦＩＲＩＮＩをエンジン水温制御項ＩＴＷに設定する一方（ステップＳ２７）、ＩＴＷ≧ＩＦＩＲＩＮＩＨであるときは、初期値ＩＦＩＲＩＮＩを上限初期値ＩＦＩＲＩＮＩＨに設定する（ステップＳ２８）。
【００２６】
続くステップＳ２９では、図７のステップＳ６３で更新され、ステップＳ６５で使用される減算補正値ＩＦＩＲＤＥＣを「０」に設定し、次いで過渡制御フラグＦＦＩＲＱＵＩＴが「１」か否かを判別し（ステップＳ３１）、ＦＦＩＲＱＵＩＴ＝１であって過渡制御中は、直ちにステップＳ３５に進む。またＦＦＩＲＱＵＩＴ＝０であって過渡制御中でないときは、前回ＦＩＲＥモードフラグＦＦＩＲＥＯＮが「１」であったか否かを判別し（ステップＳ３２）、前回ＦＦＩＲＥＯＮ＝１であってＦＩＲＥモード終了直後であるときは、過渡制御フラグＦＦＩＲＱＵＩＴを「１」に設定して（ステップＳ３３）、ステップＳ３５に進む。
【００２７】
ステップＳ３２で前回ＦＦＩＲＥＯＮ＝０であったときは、図５のステップＳ５０でインクリメントされ、ＦＩＲＥモードの継続回数をカウントするＦＩＲＥモードオンカウンタＣＦＩＲＯＮを「０」に設定すると共に（ステップＳ３４）、過渡制御フラグＦＦＩＲＱＵＩＴを「０」に設定して（ステップＳ３９）、本処理を終了する。
【００２８】
ステップＳ３５では、点火時期ＩＧＬＯＧの遅角補正項ＩＧＦＰＩが、過渡制御の終了判定用閾値ＩＧＦＰＩＱＨ（例えば−３度）より大きいか否かを判別し、ＩＧＦＰＩ＞ＩＧＦＰＩＱＨであって遅角補正量ＩＧＦＰＩの絶対値が小さい（遅角量が小さい）ときは、過渡制御を終了すべく前記ステップＳ３９に進む。
【００２９】
ステップＳ３５でＩＧＦＰＩ≦ＩＧＦＰＩＱＨであるときは、エンジン水温ＴＷに応じて図４に示すＤＦＩＲＱＵテーブルを検索し、過渡制御減算値ＤＦＩＲＱＵを算出する（ステップＳ３６）。ＤＦＩＲＱＵテーブルは、エンジン水温ＴＷが増加するほど過渡制御減算値ＤＦＩＲＱＵが減少するように設定されており、同図中のＤＦＩＲＱＵｍａｘ，ＤＦＩＲＱＵｍｉｎ及びＴＷＤＦ０，ＴＷＤＦ１は、それぞれ例えば吸入空気量５リットル／ｍｉｎ相当の値，２リットル／ｍｉｎ相当の値、及び２８℃，６２℃に設定される。
【００３０】
続くステップＳ３７では、ＦＩＲＥモード制御項ＩＦＩＲを過渡制御減算値ＤＦＩＲＱＵだけデクリメントし、次いでＦＩＲＥモード制御項ＩＦＩＲがエンジン水温制御項ＩＴＷから下限値設定用所定値ＤＩＦＩＲＬを減算して得られる下限値以下か否かを判別し（ステップＳ３８）、ＩＦＩＲ＞ＩＴＷ−ＤＩＦＩＲＬであるときは直ちに、またＩＦＩＲ≦ＩＴＷ−ＤＩＦＩＲＬであるときは、前記ステップＳ３９を実行して、本処理を終了する。
【００３１】
以上のように図３に示す処理では、ＦＩＲＥモード制御項ＩＦＩＲの初期値ＩＦＩＲＩＮＩの設定（ステップＳ２６〜Ｓ２８）、ＦＩＲＥモード終了直後の過渡制御（ステップＳ３１〜Ｓ３８）、及び後述する制御で使用するパラメータの初期化（ステップＳ２９，Ｓ３４）が実行される。過渡制御により、ＦＩＲＥモードで増加した吸入空気量が、徐々に通常制御の値に戻される。
【００３２】
図５は、図２のステップＳ１で実行されるＦＩＲＥモード判別処理のフローチャートであり、ステップＳ４１では、指定された故障が既に検知されているか否かを判別し、検知されていなければエンジン１が始動中（クランキング中）であるか否かを判別する（ステップＳ４２）。ステップＳ４１またはＳ４２の答が肯定（ＹＥＳ）のときは、エンジン水温ＴＷに応じて図６（ａ）に示すＴＦＩＲＥＮＤテーブルを検索し、後述するステップＳ４６で参照されるＦＩＲＥモード終了時間ＴＦＩＲＥＮＤを算出する（ステップＳ４３）。ＴＦＩＲＥＮＤテーブルは、エンジン水温ＴＷが高くなるほどＦＩＲＥモード終了時間ＴＦＩＲＥＮＤが短くなるように設定されており、図中のＴＦＩＲＥＮＤｍａｘ及びＴＦＩＲＥＮＤｍｉｎは、それぞれ例えば５０秒及び２秒に設定され、ＴＷ０及びＴＷ１はそれぞれ例えば−１０℃及び７５℃に設定される。
【００３３】
続くステップＳ４４では、ＦＩＲＥモードを終了すべきことを「１」で示す終了フラグＦＦＩＲＥＮＤを「０」に設定し、次いでＦＩＲＥモードフラグＦＦＩＲＥＯＮを「０」設定して（ステップＳ５６）、本処理を終了する。
ステップＳ４１及びＳ４２の答が共に否定（ＮＯ）であるときは、終了フラグＦＦＩＲＥＮＤが「１」であるか否かを判別し（ステップＳ４５）、ＦＦＩＲＥＮＤ＝１であるときは、直ちに前記ステップＳ５６に進む一方、ＦＦＩＲＥＮＤ＝０であるときは、始動完了時点（クランキング終了時点）からの経過時間を計測するアップカウントタイマＴＭ２０ＴＣＲの値がステップＳ４３で算出したＦＩＲＥモード終了時間ＴＦＩＲＥＮＤを越えたか否かを判別する（ステップＳ４６）。そして、ＴＭ２０ＴＣＲ＞ＴＦＩＲＥＮＤであるときは、ＦＩＲＥモードを終了させるべく終了フラグＦＦＩＲＥＮＤを「１」に設定して（ステップＳ４８）、前記ステップＳ５６に進む。
【００３４】
ステップＳ４６でＴＭ２０ＴＣＲ≦ＴＦＩＲＥＮＤであるときは、終了フラグＦＦＩＲＥＮＤを「０」に設定し（ステップＳ４７）、エンジン回転数ＮＥが所定下限回転数ＮＥＦＩＲＬ（例えば７００ｒｐｍ）以上か否かを判別する（ステップＳ４９）。ＮＥ＜ＮＥＦＩＲＬであるときは、前記ステップＳ５６に進み、ＮＥ≧ＮＥＦＩＲＬであるときは、ＦＩＲＥモードオンカウンタＣＦＩＲＯＮを「１」だけインクリメントし（ステップＳ５０）、カウンタＣＦＩＲＯＮの値に応じて図６（ｂ）に示すＫＭＦＩＲテーブルを検索し、図７の処理で使用する継続時間補正係数ＫＭＦＩＲを算出する（ステップＳ５１）。ＫＭＦＩＲテーブルは、カウンタＣＦＩＲＯＮの値が増加するにしたがって補正係数ＫＭＦＩＲが増加し、カウンタＣＦＩＲＯＮの値がさらに増加すると補正係数ＫＭＦＩＲが減少するように設定されており、図中のＫＭＦＩＲｍａｘ、ＫＭＦＩＲｍｉｎ及びｎ１は、例えばそれぞれ２．６２５，１．０及び２０００に設定される。
【００３５】
続くステップＳ５２では、吸気温ＴＡに応じて図６（ｃ）に示すＫＴＡＦＩＲテーブルを検索し、図７の処理で使用する吸気温補正係数ＫＴＡＦＩＲを算出する。ＫＴＡＦＩＲテーブルは、吸気温ＴＡが増加ほど補正係数ＫＴＡＦＩＲが増加するように設定されており、図中のＫＴＡＦＩＲｍａｘ、ＫＴＡＦＩＲｍｉｎ及びＴＡ０，ＴＡ１は、例えばそれぞれ２．０，１．０及び−１０℃、８０℃に設定される。
【００３６】
続くステップＳ５３では、車速ＶＰが所定車速ＶＦＩＲＨ（例えば５ｋｍ／ｈ）以上か否かを判別し、ＶＰ＜ＶＦＩＲＨであるときは、エンジン１がアイドル状態にあることを「１」で示すアイドルフラグＦＩＤＬＥが「１」であるか否かを判別する（ステップＳ５４）。そして、ＶＰ≧ＶＦＩＲＨであって車両走行中であるとき、またはＦＩＤＬＥ＝０であってアイドル状態でないときは、前記ステップＳ５６に進み、ＦＩＲＥモードフラグＦＦＩＲＥＯＮを「０」に設定する。一方、ＶＰ＜ＶＦＩＲＨでありかつエンジン１がアイドル状態にあるときは、ＦＩＲＥモードフラグＦＦＩＲＥＯＮを「１」に設定して（ステップＳ５５）、本処理を終了する。
【００３７】
図７は、図２のステップＳ１４におけるＩＦＩＲ算出サブルーチンのフローチャートであり、ステップＳ６１では、失火発生を検出しているか否かを判別する。失火発生は、クランク角３０°毎に発生するＣＲＫ信号パルスの発生間隔の変動に基づいて公知の手法で検出される。失火発生が検出されていないときは、点火時期ＩＧＬＯＧが、下限値ＩＧＬＧＧ（例えば−２０ｄｅｇ）にはりつき判定値ＩＧＦＩＲＤＥＣ（例えば１度）を加算した値以上か否かを判別する（ステップＳ６２）。そして、失火が発生しておらず且つＩＧＬＯＧ≧ＩＧＬＧＧ＋ＩＧＦＩＲＤＥＣであるときは直ちに、また失火発生検出時またはＩＧＬＯＧ＜ＩＧＬＧＧ＋ＩＧＦＩＲＤＥＣであって点火時期ＩＧＬＯＧが下限値ＩＧＬＧＧ近傍に張り付いているときは、後述するステップＳ６５で使用される減算補正値ＩＦＩＲＤＥＣ（＜０）を所定量ＤＩＦＩＲＤＥＣだけデクリメントして（ステップＳ６３）、ステップＳ６４に進む。
【００３８】
ステップＳ６４では、下記式（４）により、ＦＩＲＥモード制御項ＩＦＩＲの基本値ＩＦＩＲＢＳを算出する。
0003639481.tif 000002
ここで、ＫＭＦＩＲ及びＫＴＡＦＩＲは、図５のステップＳ５１及びＳ５２で算出された継続時間補正係数及び吸気温補正係数であり、ＩＦＩＲＩＮＩは、図３のステップＳ２７またはＳ２８で設定される初期値である。継続時間補正係数ＫＭＦＩＲは、時間経過（カウント値ＣＦＩＲＯＮの増加）に伴って、図６（ｂ）に示すように変化するので、基本的には、吸入空気量は、ＦＩＲＥモードの開始時点から徐々に増加し、その後徐々に減少し、次いでほぼ一定の値を維持するように制御される（図１４（ａ）参照）。ただし、故障判定モードでは（時刻ｔ１１〜ｔ１３）では、ＦＩＲＥモード制御項ＩＦＩＲの漸減処理及び漸増処理が実行される。
【００３９】
続くステップＳ６５では、ステップＳ６４で算出した基本値ＩＦＩＲＢＳにステップＳ６３で更新される減算補正値ＩＦＩＲＤＥＣを加算することにより、ＦＩＲＥモード制御項ＩＦＩＲを算出する。減算補正値ＩＦＩＲＤＥＣ（＜０）を加算することにより、失火発生検出時または点火時期ＩＧＬＯＧの下限値貼り付き時は、吸入空気量が減少方向に補正され、未燃燃料の排出量が増加すること、または点火時期ＩＧＬＯＧの遅角補正が不能となる（エンジン回転数ＮＥを目標回転数ＮＥＦＩＲに一致させられなくなる）事態を回避することができる。
【００４０】
図８は、点火時期制御処理のフローチャートであり、この処理はＣＰＵ５ｂでＴＤＣ信号パルスの発生に同期して実行される。
ステップＳ７１では、エンジン回転数ＮＥ及び吸気管内絶対圧ＰＢＡに応じて基本点火時期ＩＧＭＡＰを算出し、次いで遅角補正項ＩＧＦＰＩ以外の補正項ＩＧＣＲを算出する（ステップＳ７２）。ステップＳ７３では、図９に示すフィードバック（ＦＢ）制御実施条件判断処理を実行する。この処理は、検出したエンジン回転数ＮＥがＦＩＲＥモード目標回転数ＮＥＦＩＲに一致するように点火時期を制御するフィードバック制御の実施条件を判定し、実施条件が成立するときフィードバック制御フラグＦＦＩＲＥＮＥＦＢを「１」に設定する。
【００４１】
ステップＳ７４では、フィードバック制御フラグＦＦＩＲＥＮＥＦＢが「１」であるか否かを判別し、ＦＦＩＲＥＮＥＦＢ＝０であるときは、遅角補正項ＩＧＦＰＩを「０」に設定する一方（ステップＳ７５）、ＦＦＩＲＥＮＥＦＢ＝１であって実施条件が成立するときは、エンジン回転数ＮＥに応じて遅角補正項ＩＧＦＰＩの設定を行うフィードバック制御を実行する（ステップＳ７６）。
ステップＳ７７では、前記式（２）により点火時期ＩＧＬＯＧを算出し、本処理を終了する。
【００４２】
図９は、図８のステップＳ７３において実行されるＦＢ制御実施条件判断処理のフローチャートである。ステップＳ９１では、ＦＩＲＥモードフラグＦＦＩＲＥＯＮが「１」であるか否かを判別し、ＦＦＩＲＥＯＮ＝０であってＦＩＲＥモードでないときは、過渡制御フラグＦＦＩＲＱＵＩＴが「１」であるか否かを判別する（ステップＳ１０３）。そして、ＦＦＩＲＱＵＩＴ＝０であって過渡制御中でもないときは、フィードバック制御フラグＦＦＩＲＥＮＥＦＢ及びフィードバック制御時の目標回転数を増加させないことを「１」で示す目標回転数フラグＦＮＯＥＮＥＦＩＲ（図１２，ステップＳ１３１参照）をともに「０」に設定して（ステップＳ１０５）、本処理を終了する。
【００４３】
ステップＳ１０３でＦＦＩＲＱＵＩＴ＝１であって過渡制御中であるときは、スロットル弁開度θＴＨが所定開度θＴＨＦＩＲ（例えば０．８８ｄｅｇ）以上か否かを判別する（ステップＳ１０４）。θＴＨ＜θＴＨＦＩＲであってスロットル弁がほぼ全閉状態にあるときは、直ちに本処理を終了し、θＴＨ≧θＴＨＦＩＲであるときは、前記ステップＳ１０５に進む。ステップＳ１０４から直ちに本処理を終了する場合には、ＦＩＲＥモードフラグＦＦＩＲＥＯＮ＝０であってもＦＦＩＲＥＮＥＦＢ＝１が維持され、フィードバック制御が継続される。
【００４４】
ステップＳ９１でＦＦＩＲＥＯＮ＝１であるときは、過渡制御フラグＦＦＩＲＱＵＩＴが「１」であるか否かを判別し（ステップＳ９２）、ＦＦＩＲＱＵＩＴ＝１であるときは、フィードバック制御フラグＦＦＩＲＥＮＥＦＢを「０」に設定して（ステップＳ９４）、ステップＳ９５に進む。またＦＦＩＲＱＵＩＴ＝０であるときは、フィードバック制御フラグＦＦＩＲＥＮＥＦＢが既に「１」に設定されているか否かを判別し（ステップＳ９３）、ＦＦＩＲＥＮＥＦＢ＝１であるときは直ちに本処理を終了し、ＦＦＩＲＥＮＥＦＢ＝０であるときは、ステップＳ９５に進む。
【００４５】
ステップＳ９５では、始動完了（クランキング終了）後の経過時間を計測するアップカウントタイマＴＭ０１ＡＣＲの値が所定時間Ｔ１ＳＴＦＩＲ（例えば１ｍｓｅｃ）以下か否かを判別し、ＴＭ０１ＡＣＲ≦Ｔ１ＳＴＦＩＲであって始動直後であるときは、フィードバック制御開始判定用加算値ＮＥＦＰＩＳＴ、目標回転数補正用加算値ＤＮＥＦＩＲ、及びフィードバック制御開始判定用カウント値ＣＦＮＥＦＢＳＴを、それぞれ第１の値ＮＥＦＰＩ１（例えば２００ｒｐｍ）、ＤＮＥＦ１（例えば１ｒｐｍ）及びＣＦＮＥＦＢ１（例えば２００）に設定する一方（ステップＳ９６）、ＴＭ０１ＡＣＲ＞Ｔ１ＳＴＦＩＲであるときは、フィードバック制御開始判定用加算値ＮＥＦＰＩＳＴ、目標回転数補正用加算値ＤＮＥＦＩＲ、及びフィードバック制御開始判定用カウント値ＣＦＮＥＦＢＳＴを、それぞれ第２の値ＮＥＦＰＩ２（例えば２００ｒｐｍ）、ＤＮＥＦ２（例えば１２ｒｐｍ）及びＣＦＮＥＦＢ２（例えば２）に設定する（ステップＳ９７）。
【００４６】
続くステップＳ９８では、エンジン回転数ＮＥが通常制御時の目標回転数ＮＯＢＪにフィードバック制御開始判定用加算値ＮＥＦＰＩＳＴを加算した値以上か否かを判別し、ＮＥ＜ＮＯＢＪ＋ＮＥＦＰＩＳＴであるときは、ＦＩＲＥモードオンカウンタＣＦＩＲＯＮの値がフィードバック制御開始判定用カウント値ＣＦＮＥＦＢＳＴ以上か否かを判別する（ステップＳ９９）。その結果、ステップＳ９８，Ｓ９９の答がともに否定（ＮＯ）であってエンジン回転数ＮＥが低く且つＦＩＲＥモード継続時間が短いときは、フィードバック制御を実行しないこととして直ちに本処理を終了する。
【００４７】
また、ステップＳ９８でＮＥ≧ＮＯＢＪ＋ＮＥＦＰＩＳＴであるときは、目標回転数フラグＦＮＯＥＮＥＦＩＲを「１」に設定し（ステップＳ１０１）、ステップＳ９９でＣＦＩＲＯＮ≧ＣＦＮＥＦＢＳＴであるときは、目標回転数フラグＦＮＯＥＮＥＦＩＲを「０」に設定して（ステップＳ１００）、ステップＳ１０２に進む。これにより、フィードバック制御開始時のエンジン回転数ＮＥが高いとき（ＮＥ≧ＮＯＢＪ＋ＮＥＦＰＩＳＴ）は、ＦＩＲＥモード目標回転数ＮＥＦＩＲの算出に使用される目標回転数加算値ＥＮＥＦＩＲが「０」に設定される（図１２及び図１０のステップＳ１１７，Ｓ１１８参照））。
ステップＳ１０２では、フィードバック制御フラグＦＦＩＲＥＮＥＦＢを「１」に設定するとともに、ＦＩＲＥモードオンカウンタＣＦＩＲＯＮの値を記憶値ＣＦＲＰＩＳＴとして記憶する。
【００４８】
図１０は、図８のステップＳ７６で実行されるフィードバック制御処理のフローチャートである。ステップＳ１１１では、目標回転数加算値ＥＮＥＦＩＲを設定する処理（図１２）を実行して、加算値ＥＮＥＦＩＲの設定を行う。
ステップＳ１１２では、自動変速機のシフト位置ＳＦＴがニュートラルＮまたはパーキングＰからドライブＤまたはリバースＲ（インギヤ状態）にまたはその逆に変化したか否かを判別し、変化したときは、ステップＳ１１５で参照されるダウンカウントタイマｔｍＩＮＧＦＩＲに所定時間ＴＩＮＧＦＩＲ（例えば３秒）を設定してスタートさせ（ステップＳ１１３）、フィードバック制御のＩ項ＩＩＧＦＩＲ及び遅角補正項ＩＧＦＰＩをともに前回値保持として（ステップＳ１１４）、本処理を終了する。
【００４９】
ステップＳ１１２でシフト位置の変化が無いときは、ステップＳ１１３でスタートしたタイマｔｍＩＮＧＦＩＲの値が「０」か否かを判別し（ステップＳ１１５）、ｔｍＩＮＧＦＩＲ＞０である間は、前記ステップＳ１１４に進む。ｔｍＩＮＧＦＩＲ＝０となると、シフト位置ＳＦＴがドライブＤまたはリバースＲ（インギヤ状態）か否かを判別し（ステップＳ１１６）、インギヤ状態でないときは、下記式（５）によりＦＩＲＥモード目標回転数ＮＥＦＩＲを算出して（ステップＳ１１７）、ステップＳ１２１に進む。
ＮＥＦＩＲ＝ＮＯＢＪ＋ＥＮＥＦＩＲ        （５）
ここでＮＯＢＪは、通常の（ＦＩＲＥモード以外の）アイドル状態における目標回転数であり、ＥＮＥＦＩＲは、ステップＳ１１１で算出される目標回転数加算値である。
【００５０】
ステップＳ１１６でシフト位置ＳＦＴがドライブＤまたはリバースＲであるとき、すなわちインギヤ状態のときは、下記式（６）によりＦＩＲＥモード目標回転数ＮＥＦＩＲを算出する（ステップＳ１１８）。
ＮＥＦＩＲ＝ＮＯＢＪ＋ＥＮＥＦＩＲ−ＤＮＥＦＩＲＤＲ    （６）
ここで、ＤＮＥＦＩＲＤＲは、例えば３００ｒｐｍに設定されるインギヤ時補正値である。
【００５１】
続くステップＳ１１９では、ＦＩＲＥモード目標回転数ＮＥＦＩＲが下限値ＮＥＩＧＦＩＲＬ（例えば７３０ｒｐｍ）以下か否かを判別し、ＮＥＦＩＲ＞ＮＥＩＧＦＩＲＬであるときは直ちに、またＮＥＦＩＲ≦ＮＥＩＧＦＩＲＬであるときは目標回転数ＮＥＦＩＲをその下限値ＮＥＩＧＦＩＲＬに設定して（ステップＳ１２０）、ステップＳ１２１に進む。
【００５２】
ステップＳ１２１では、点火時期ＩＧＬＯＧに応じて図１１に示すＫＩＩＧＦＩＲテーブルを検索し、積分項ゲインＫＩＩＧＦＩＲを算出する。ＫＩＩＧＦＩＲテーブルは、点火時期ＩＧＬＯＧが増加する（進角する）ほど積分項ゲインＫＩＩＧＦＩＲが増加するように設定されている。図１１においてＫＩＩＧＦＩＲｍａｘ，ＫＩＩＧＦＩＲｍｉｎ及びＩＧＬＯＧ１，ＩＧＬＯＧ２は、それぞれ例えば０．０６３，０．０１６及び−１０度、１２度に設定される。
【００５３】
続くステップＳ１２２では、エンジン回転数ＮＥ、ＦＩＲＥモード目標回転数ＮＥＦＩＲ及び積分項ゲインＫＩＩＧＦＩＲを下記式（７）に適用して、加算値ＩＩＧＦＴＭＰを算出する。
ＩＩＧＦＴＭＰ＝ＫＩＩＧＦＩＲ×（ＮＥＦＩＲ−ＮＥ）    （７）
続くステップＳ１２３では、積分項の前回値ＩＩＧＦＩＲ（ｎ−１）に加算値ＩＩＧＦＴＭＰを加算することにより積分項（今回値）ＩＩＧＦＩＲを算出し、次いで下記式（８）により比例項ＰＩＧＦＩＲを算出する（ステップＳ１２４）。
ＰＩＧＦＩＲ＝ＫＰＩＧＦＩＲ×（ＮＥＦＩＲ−ＮＥ）    （８）
【００５４】
次いで積分項ＩＩＧＦＩＲ及び比例項ＰＩＧＦＩＲを加算して遅角補正項ＩＧＦＰＩを算出し（ステップＳ１２５）、本処理を終了する。
以上のように図１０の処理により、エンジン回転数ＮＥがＦＩＲＥモード目標回転数ＮＥＦＩＲに一致するように遅角補正項ＩＧＦＩＲを算出するフィードバック制御が実行される。
【００５５】
図１２は、図１０のステップＳ１１１で実行されるＥＮＥＦＩＲ設定処理のフローチャートである。ステップＳ１３１では、目標回転数フラグＦＮＯＥＮＥＦＩＲが「１」であるか否かを判別し、ＦＮＯＥＮＥＦＩＲ＝１であって目標回転数を増加させないときは、目標回転数加算値ＥＮＥＦＩＲを「０」に設定して（ステップＳ１３４）、本処理を終了する。
【００５６】
ＦＮＯＥＮＥＦＩＲ＝０であるときは、下記式（９）により加算値ＥＮＥＦＩＲを算出する（ステップＳ１３２）。
ＥＮＥＦＩＲ＝ＮＥＦＰＩＳＴ−ＤＮＥＦＩＲ×（ＣＦＩＲＯＮ−ＣＦＩＲＰＩＳＴ）（９）
ここでＮＥＦＰＩＳＴ及びＤＮＥＦＩＲは、図９のステップＳ９６またはＳ９７で設定されるフィードバック制御開始判定用加算値及び目標回転数補正用加算値であり、ＣＦＩＲＯＮはＦＩＲＥモードオンカウンタの値、ＣＦＩＲＰＩＳＴは、図９のステップＳ１０２で記憶した記憶値である。すなわち、（ＣＦＩＲＯＮ−ＣＦＩＲＰＩＳＴ）は、フィードバック制御の開始時点からの経過時間に対応するカウント値である。したがって式（９）及び式（５）または（６）によりＦＩＲＥモード目標回転数ＮＥＦＩＲは、フィードバック制御開始当初は、（ＮＯＢＪ＋ＮＥＦＰＩＳＴ）に等しく、時間経過に伴って漸減し、最終的には通常の目標回転数ＮＯＢＪに一致するように設定される（図１４（ｃ）参照）。
【００５７】
続くステップＳ１３３では、加算値ＥＮＥＦＩＲが０以下か否かを判別し、ＥＮＥＦＩＲ≦０であるときは前記ステップＳ１３４に進み、ＥＮＥＦＩＲ＞０であるときは、直ちに本処理を終了する。
【００５８】
図１４は、上述した吸入空気量制御及び点火時期制御を説明するためのタイムチャートであり、同図（ａ）（ｂ）及び（ｃ）はそれぞれ補助空気制御弁１８の開弁制御量ＩＣＭＤ，点火時期ＩＧＬＯＧ及びエンジン回転数ＮＥの推移を示している。
【００５９】
図示例では、時刻ｔ０に始動（クランキング）を開始し、時刻ｔ１に自立運転を開始すると、直ちにＦＩＲＥモードに移行する。エンジン回転数ＮＥが増加し、時刻ｔ２において点火時期のフィードバック制御の実行条件が成立し、フィードバック制御が開始される。ＦＩＲＥモード目標回転数ＮＥＦＩＲは、上記したように当初は（ＮＯＢＪ＋ＮＥＦＰＩＳＴ）に等しく、その後通常制御の目標回転数ＮＯＢＪまで漸減される。
【００６０】
開弁制御量ＩＣＭＤは、ＦＩＲＥモードに移行すると徐々に増加させてから減少させるように制御される。時刻ｔ１１において故障判定実行フラグＦＤＥＴが「１」に設定され、故障判定モードに移行して吸入空気量の漸減処理が開始され、時刻ｔ１２に漸減処理が終了すると、故障判定処理（図１３）の判定ステップ（Ｓ１４９，Ｓ１５０）が実行される。その後吸入空気量の漸増処理が実行され、時刻ｔ１３に吸入空気量がほぼ元のレベルに戻り、故障判定モードを終了する（故障判定実行フラグＦＤＥＴが「０」に戻される）。時刻ｔ４にＦＩＲＥモードを終了した直後は、過渡制御により吸入空気量を徐々に減少させるように制御される。
【００６１】
遅角補正項ＩＧＦＰＩは、同図（ｂ）に破線で示すように推移し、点火時期ＩＧＬＯＧは、通常制御値（ＩＧＭＡＰ＋ＩＧＣＲ）より遅角側に制御される。時刻ｔ１１に故障判定モードに移行すると、最初は吸入空気量の減量に伴って遅角補正項ＩＧＦＰＩが増加し（遅角量が減少し）、時刻ｔ１２以後は吸入空気量の増量に伴って遅角補正項ＩＧＦＰＲＩが減少する（遅角量が増加する）。これにより、点火時期ＩＧＬＯＧも同様に推移する。時刻ｔ１３になると故障判定モードが終了し、遅角補正項ＩＧＦＰＩもほぼ元の水準に戻る。その後時刻ｔ３においてシフト位置ＳＦＴがニュートラルＮからインギヤ状態に移行すると、エンジン負荷が増加するため、遅角補正項ＩＧＦＰＩが増加し（遅角量が減少し）エンジンの出力トルクを増加させつつ、エンジン回転数ＮＥを目標回転数ＮＥＦＩＲ（＝ＮＯＢＪ）に維持するように制御される。時刻ｔ４以後は、徐々に通常制御値に移行するように制御される。
エンジン回転数ＮＥは、時刻ｔ２〜ｔ４の間は、フィードバック制御により目標回転数ＮＥＦＩＲに一致するように制御される。図示例では、時刻ｔ４の直後に当該車両が発進する場合を示しており、車速ＶＰが徐々に増加していく。
【００６２】
図１３は、ＦＩＲＥモードの動作が正常に実行されない故障を判定する故障判定処理のフローチャートであり、この処理は所定時間毎に、あるいはＴＤＣ信号パルスの発生に同期してＣＰＵ５ｂで実行される。
ステップＳ１４１では、始動モード、すなわちクランキング中であるか否かを判別し、クランキング中であるときは、ディレイダウンカウントタイマｔｍＦＩＲＥＤＬＹに所定遅延時間ＴＭＦＩＲＥＤＬＹ（例えば２秒）をセットしてスタートさせ（ステップＳ１４３）、故障判定実行フラグＦＤＥＴを「０」に設定し（ステップＳ１４５）、点火時期ＩＧＬＯＧを記憶値ＩＧＬＯＧＳＴとして記憶して（ステップＳ１４６）、本処理を終了する。ここで、所定遅延時間ＴＭＦＩＲＥＤＬＹは、エンジン回転数ＮＥの変化が小さい期間に判定を実行するために、例えばＦＩＲＥモード目標回転数ＮＥＦＩＲが通常の目標回転数ＮＯＢＪと一致する時点以後にステップＳ１４７以下が実行されるように設定される（図１４（ａ）（ｃ）参照）。
【００６３】
ステップＳ１４１で始動モードでない、すなわち始動完了後であるときは、ＦＩＲＥモードフラグが「１」であるか否かを判別し（ステップＳ１４２）、ＦＦＩＲＥＯＮ＝０であってＦＩＲＥモードでないときは、前記ステップＳ１４３に進む。ＦＦＩＲＥＯＮ＝１であるときは、ステップＳ１４３でスタートしたタイマｔｍＦＩＲＥＤＬＹの値が「０」であるか否かを判別し（ステップＳ１４４）、ｔｍＦＩＲＥＤＬＹ＞０である間は、前記ステップＳ１４５に進む。
【００６４】
ｔｍＦＩＲＥＤＬＹ＝０となると、図２のステップＳ１２またはＳ１４で設定される減量終了フラグＦＡＤＥＣＥＮＤが「１」であるか否かを判別し、ＦＡＤＥＣＥＮＤ＝０である間は、直ちに本処理を終了する。そしてＦＡＤＥＣＥＮＤ＝１となると、ステップＳ１４９及びＳ１５０の故障判定ステップを実行する。すなわち、エンジン回転数ＮＥと通常制御の目標回転数ＮＯＢＪとの偏差の絶対値が判定閾値ＤＮＥＡＣＴ（例えば１００ｒｐｍ）より大きいか否かを判別し（ステップＳ１４９）、｜ＮＥ−ＮＯＢＪ｜＞ＤＮＥＡＣＴであるときは、エンジン回転数ＮＥが目標回転数ＮＯＢＪと一致するように点火時期を制御するフィードバック制御が正常に実行されていない故障が発生していると判定し、ＦＩＲＥモードの動作が正常に行われない故障が発生していることを「１」で示す故障フラグＦＦＩＲＥＮＧを「１」に設定する（ステップＳ１５２）。
【００６５】
ステップＳ１４９で｜ＮＥ−ＮＯＢＪ｜≦ＤＮＥＡＣＴであるときは、今回の点火時期ＩＧＬＯＧと、ステップＳ１４６で記憶した故障判定モードに入る直前の点火時期ＩＧＬＯＧＳＴとの偏差（＝ＩＧＬＯＧ−ＩＧＬＯＧＳＴ）が、判定閾値ＤＩＧＡＣＴより小さいか否かを判別する（ステップＳ１５０）。制御系が正常であれば、図１４に示すように、吸入空気量の減量に伴って点火時期ＩＧＬＯＧは進角方向に変化するので、ステップＳ１５０の答は否定（ＮＯ）となり、故障フラグＦＦＩＲＥＮＧを「０」に設定して（ステップＳ１５１）、本処理を終了する一方、ＩＧＬＯＧ−ＩＧＬＯＧＳＴ＜ＤＩＧＡＣＴであるときは、点火時期ＩＧＬＯＧが正常に進角方向に変化していないので、故障が発生していると判定して前記ステップＳ１５２に進む。
【００６６】
図１５は、故障が発生している場合の点火時期ＩＧＬＯＧ、エンジン回転数ＮＥ、故障判定タイマｔｍＦＩＲＥの値の推移を示すタイムチャートであり、同図（ａ）の補助空気制御弁１８の開弁制御量ＩＣＭＤは、図１４に示す場合と同様に推移している。図１５（ａ）に示すように開弁制御量ＩＣＭＤを制御しても、実際の吸入空気量が増加せず、エンジン回転数ＮＥが徐々に減少していく故障が発生していると、開弁制御量ＩＣＭＤを故障判定モード（時刻ｔ１１〜ｔ１２）において、漸減させる処理を実行しても、点火時期ＩＧＬＯＧは、ほぼ一定値に維持され、またエンジン回転数ＮＥは目標回転数ＮＯＢＪ±ＤＮＥＡＣＴの正常範囲からはずれているので、故障発生と判定される。
【００６７】
以上のように本実施形態では、ＦＩＲＥモード制御（三元触媒１６の昇温促進制御）実行時に補助空気制御弁１８の開弁制御量ＩＣＭＤを漸減させて、吸入空気量を減量し、そのときのエンジン回転数ＮＥ及び／または点火時期ＩＧＬＯＧに基づいて、ＦＩＲＥモードにおける制御が正しく実行されているか否かを判定するようにしたので、例えば補助空気制御弁１８が開弁制御量ＩＣＭＤに対応した開弁動作を行わないといった故障を迅速に検出することができ、触媒の昇温促進制御の不具合を早期に診断して、排気特性の悪化を最小限に抑制することができる。
【００６８】
本実施形態では、補助空気通路１７及び補助空気制御弁１８が吸入空気量制御手段の一部を構成し、ＥＣＵ５が吸入空気量制御手段の一部、点火時期制御手段、触媒昇温手段及び故障診断手段を構成する。より具体的には、図２，３，５及び７の処理が吸入空気量制御手段に相当し、図８，９，１０及び１２の処理が点火時期制御手段に相当し、図７の処理及び図１０の処理が触媒昇温手段に相当し、図２のステップＳＳ４，Ｓ５及びＳ９〜Ｓ１７並びに図１３の処理が故障診断手段に相当する。
【００６９】
なお本発明は上述した実施形態に限るものではなく、種々の変形が可能である。例えば、上述した実施形態では、吸入空気量の減量が完了した時刻ｔ１２において直ちに故障判定ステップ（図１３，ステップＳ１４９，Ｓ１５０）を実行するようにしたが、減量が完了した時点から制御系が安定する時間だけ待機し、その後に故障判定ステップを実行するようにしてもよい。
【００７０】
【発明の効果】
以上詳述したように請求項１に記載の発明によれば、触媒昇温手段の作動中に吸入空気量を故障判定のために減量し、該吸入空気量減量時における機関回転数と、目標回転数との差が判定閾値より大きいとき、触媒昇温手段が故障していると判定されるので、触媒昇温手段の不具合を早期に診断して、排気特性の悪化を最小限に抑制することができる。
請求項２に記載の発明によれば、触媒昇温手段の作動中に吸入空気量を故障判定のために減量し、該吸入空気量減量時における点火時期の変化量が判定閾値より小さいとき、触媒昇温手段が故障していると判定されるので、触媒昇温手段の不具合を早期に診断して、排気特性の悪化を最小限に抑制することができる。
【図面の簡単な説明】
【図１】本発明の一実施形態にかかる内燃機関及びその制御装置の構成を示す図である。
【図２】補助空気制御弁の制御量（ＩＦＩＲ）を算出するメインルーチンのフローチャートである。
【図３】補助空気制御弁の制御量（ＩＦＩＲ）を算出するメインルーチンのフローチャートである。
【図４】図３の処理の使用するテーブルを示す図である。
【図５】触媒昇温促進制御を実行するか否かを判別する処理のフローチャートである。
【図６】図５の処理で使用するテーブルを示す図である。
【図７】補助空気制御弁の制御量（ＩＦＩＲ）を算出するサブルーチンのフローチャートである。
【図８】点火時期制御を実行するメインルーチンのフローチャートである。
【図９】点火時期のフィードバック制御の実施条件を判断する処理のフローチャートである。
【図１０】点火時期のフィードバック制御を実行する処理のフローチャートである。
【図１１】図１０の処理で使用するテーブルを示す図である。
【図１２】触媒昇温促進制御における目標エンジン回転数の加算値（ＥＮＥＦＩＲ）を設定する処理のフローチャートである。
【図１３】故障判定を行う処理のフローチャートである。
【図１４】触媒昇温促進制御実行時の動作を説明するためのタイムチャートである。
【図１５】触媒昇温促進制御が正常に実行されないときの動作例を説明するためのタイムチャートである。
【符号の説明】
１  内燃機関
２  吸気管
５  電子コントロールユニット（吸入空気量制御手段、点火時期制御手段、触媒昇温手段、故障診断手段）
１１  点火プラグ
１７  補助空気通路（吸入空気量制御手段）
１８  補助空気制御弁（吸入空気量制御手段）
【図１】
0003639481.tif 000003
【図２】
0003639481.tif 000004
【図３】
0003639481.tif 000005
【図４】
0003639481.tif 000006
【図５】
0003639481.tif 000007
【図６】
0003639481.tif 000008
【図７】
0003639481.tif 000009
【図８】
0003639481.tif 000010
【図９】
0003639481.tif 000011
【図１０】
0003639481.tif 000012
【図１１】
0003639481.tif 000013
【図１２】
0003639481.tif 000014
【図１３】
0003639481.tif 000015
【図１４】
0003639481.tif 000016
【図１５】
0003639481.tif 000017