(57)【特許請求の範囲】
【請求項１】
リーン雰囲気の排ガス中のＮＯｘを捕捉するとともにリッチ雰囲気の排ガスが供給されたときに当該捕捉したＮＯｘを還元するＮＯｘ浄化触媒を備えた内燃機関の空燃比制御装置であって、
前記ＮＯｘ浄化触媒の下流側の排ガス中のＮＯｘ濃度を検出するＮＯｘ濃度検出手段と、
前記ＮＯｘ浄化触媒にリッチ雰囲気の排ガスを供給すべきリッチ制御条件が成立したときに、前記内燃機関に供給される混合気の空燃比を、理論空燃比よりもリーン側からリッチ側に切り換えるように制御する空燃比制御手段と、
当該空燃比制御手段による混合気の空燃比のリッチ側への切換以降に検出されたＮＯｘ濃度に応じて、スリップＮＯｘの発生度合を表すスリップＮＯｘパラメータを算出するスリップＮＯｘパラメータ算出手段と、
を備え、
前記空燃比制御手段は、当該算出されたスリップＮＯｘパラメータと、前記空燃比のリッチ側への切換後の、前記ＮＯｘ浄化触媒におけるＮＯｘ還元動作が終了していると推定されるタイミングで検出されたＮＯｘ濃度との比であるスリップＮＯｘ比、および前記スリップＮＯｘパラメータに応じて、リーン側からリッチ側に切り換えるときの前記空燃比の変化速度を決定することを特徴とする内燃機関の空燃比制御装置。
【請求項２】
前記空燃比制御手段は、前記スリップＮＯｘ比および前記スリップＮＯｘパラメータに応じて、前記空燃比の変化速度を複数の段階で切り換わるように決定することを特徴とする請求項１に記載の内燃機関の空燃比制御装置。
【請求項３】
前記空燃比制御手段は、前記空燃比の変化速度を、前記スリップＮＯｘパラメータによって表されるスリップＮＯｘの発生度合が大きいほど、より小さくなるように決定することを特徴とする請求項１または２に記載の内燃機関の空燃比制御装置。
【請求項４】
前記スリップＮＯｘパラメータ算出手段は、前記スリップＮＯｘパラメータを、前記空燃比のリッチ側への切換後に検出されたＮＯｘ濃度の最大値と、切換開始時に検出されたＮＯｘ濃度との偏差として算出することを特徴とする請求項１ないし３のいずれかに記載の内燃機関の空燃比制御装置。
【請求項５】
前記スリップＮＯｘパラメータ算出手段は、前記スリップＮＯｘパラメータを、前記空燃比のリッチ側への切換開始から切換後の所定タイミングまでのＮＯｘ濃度の平均値として算出することを特徴とする請求項１ないし３のいずれかに記載の内燃機関の空燃比制御装置。
【請求項６】
前記スリップＮＯｘパラメータ算出手段は、前記スリップＮＯｘパラメータを、前記空燃比のリッチ側への切換開始から切換後の所定タイミングまでの間に前記ＮＯｘ浄化触媒から排出された総ＮＯｘ量として算出することを特徴とする請求項１ないし３のいずれかに記載の内燃機関の空燃比制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、排ガス中のＮＯｘを捕捉するＮＯｘ浄化触媒を備えた内燃機関において、ＮＯｘ浄化触媒のＮＯｘ捕捉能力を回復させるように、空燃比を制御する内燃機関の空燃比制御装置に関する。
【背景技術】
【０００２】
従来、ＮＯｘ浄化触媒を排気通路に備えた内燃機関として、ディーゼルエンジンタイプのものが知られている。この種の内燃機関では、通常時、混合気の空燃比がリーン制御され、その際、リーン雰囲気の排ガス中のＮＯｘは、ＮＯｘ浄化触媒に捕捉（吸着）される。それにより、排ガスが浄化される。また、ＮＯｘ浄化触媒のＮＯｘ捕捉量が限界値に近づき、ＮＯｘ捕捉能力が低下したときには、ＮＯｘ浄化能力を回復させるために、混合気の空燃比をリーン側からリッチ側に一時的に制御する、いわゆるリッチスパイク制御が実行される。それにより、リッチ雰囲気の排ガスがＮＯｘ浄化触媒に供給され、ＮＯｘ浄化触媒において、捕捉したＮＯｘが還元されることにより、ＮＯｘ捕捉能力が回復する。
【０００３】
このような内燃機関では、リッチスパイク制御を実行した際、ＮＯｘ浄化触媒の劣化などに起因して、ＮＯｘ浄化触媒に捕捉されていたＮＯｘの一部が、還元されないまま排気通路内に放出されることにより、排ガスのＮＯｘ濃度が一時的に上昇し、排ガス特性が悪化することがある。以下、この現象を「スリップＮＯｘ」という。このようなスリップＮＯｘの発生を抑制しながら、リッチスパイク制御を実行する内燃機関の空燃比制御装置として、例えば特許文献１に記載されたものが知られている。
【０００４】
この特許文献１の空燃比制御装置では、リーン制御中、検出された排ガス中のＮＯｘ濃度に基づいて、ＮＯｘ浄化触媒のＮＯｘ浄化率を算出し、これが所定の判定値より低くなったときに、ＮＯｘ浄化触媒のＮＯｘ捕捉能力を回復させるために、リッチスパイク制御が実行される。そして、リッチスパイク制御の開始以降、ＮＯｘ浄化触媒の下流側のＮＯｘ濃度と上流側のＮＯｘ濃度との偏差、すなわちスリップＮＯｘの発生度合を表すＮＯｘ濃度差を継続的に算出し、その最大値を求める。また、リッチスパイク制御直前のリーン制御の実行時間、触媒温度および触媒の上流側の酸素濃度に応じて、マップを検索することにより、しきい値を設定する。そして、ＮＯｘ濃度差の最大値がしきい値よりも大きく、スリップＮＯｘが発生しているときには、最大値としきい値との偏差すなわちスリップＮＯｘの発生度合に応じて、補正係数を算出し、この補正係数を前回のリーン制御の実行時間に乗算することにより、次回のリーン制御の実行時間を算出する。すなわち、スリップＮＯｘの発生度合に応じて、リーン制御の実行時間が補正される。
【０００５】
以上のように、リーン制御の実行時間が、ＮＯｘ濃度差の最大値としきい値との偏差に応じて補正されるので、ＮＯｘ浄化触媒の劣化に起因するＮＯｘ捕捉能力の低下によって、スリップＮＯｘの発生量が多くなっている場合でも、それに応じて、リーン制御の実行時間をより短くなるように補正することによって、次回のリッチスパイク制御までに、ＮＯｘ浄化触媒に捕捉されるＮＯｘ量を低減することができる。その結果、次回のリッチスパイク制御を実行する際、スリップＮＯｘの発生を抑制しながら、ＮＯｘ浄化触媒のＮＯｘ捕捉能力を回復させることができる。
【０００６】
【特許文献１】特開２００５−１９４９２７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
上記従来の内燃機関の空燃比制御装置によれば、スリップＮＯｘの発生量が大きいほど、リーン制御の実行時間がより短くなるように補正されるので、それに伴ってリッチスパイク制御の実行頻度が増大することにより、燃費が悪化してしまうという問題がある。また、スリップＮＯｘの発生度合の判定において、ＮＯｘ浄化触媒の下流側のＮＯｘ濃度と上流側のＮＯｘ濃度との偏差を用いているので、この偏差に、スリップＮＯｘの実際の発生状態に加えて、還元剤としての未燃燃料を含む排ガスおよびＮＯｘ浄化触媒のＮＯｘ浄化能力が影響してしまう。その結果、スリップＮＯｘの発生度合の判定精度が低いことで、スリップＮＯｘを適切に抑制できず、排ガス特性が悪化するおそれがある。
【０００８】
本発明は、上記課題を解決するためになされたもので、スリップＮＯｘの発生を抑制しながら、ＮＯｘ浄化触媒のＮＯｘ浄化能力を回復させるように、空燃比を制御する場合において、燃費および排ガス特性を向上させることができる内燃機関の空燃比制御装置を提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記目的を達成するために、請求項１に係る発明は、リーン雰囲気の排ガス中のＮＯｘを捕捉するとともにリッチ雰囲気の排ガスが供給されたときに捕捉したＮＯｘを還元するＮＯｘ浄化触媒１２を備えた内燃機関３の空燃比制御装置１であって、ＮＯｘ浄化触媒１２の下流側の排ガス中のＮＯｘ濃度ＣＮＯｘを検出するＮＯｘ濃度検出手段（ＮＯｘセンサ２３）と、ＮＯｘ浄化触媒１２にリッチ雰囲気の排ガスを供給すべきリッチ制御条件が成立したとき（ステップ６０の判別結果がＹＥＳのとき）に、内燃機関３に供給される混合気の空燃比ＡＦを、理論空燃比よりもリーン側からリッチ側に切り換えるように制御する空燃比制御手段（ＥＣＵ２、ステップ６９〜７５）と、空燃比制御手段による混合気の空燃比ＡＦのリッチ側への切換以降に検出されたＮＯｘ濃度ＣＮＯｘに応じて、スリップＮＯｘの発生度合を表すスリップＮＯｘパラメータ（スリップ値ＳＬＩＰ＿ＣＮＯｘ、ＮＯｘ濃度ＣＮＯｘの平均値、総ＮＯｘ量）を算出するスリップＮＯｘパラメータ算出手段（ＥＣＵ２、ステップ８，２６）と、を備え、空燃比制御手段は、算出されたスリップＮＯｘパラメータと、空燃比のリッチ側への切換後の、ＮＯｘ浄化触媒におけるＮＯｘ還元動作が終了していると推定されるタイミングで検出されたＮＯｘ濃度（スルー値ＴＨ＿ＣＮＯｘ）との比であるスリップＮＯｘ比（スリップ・スルー比Ｒ＿ＳＬＴＨ）、およびスリップＮＯｘパラメータに応じて、リーン側からリッチ側に切り換えるときの空燃比ＡＦの変化速度を決定する（ステップ５２，５６，８５，９４，１１４，１１５）ことを特徴とする。
【００１０】
この内燃機関の空燃比制御装置によれば、空燃比制御手段により、ＮＯｘ浄化触媒にリッチ雰囲気の排ガスを供給すべきリッチ制御条件が成立したときに、内燃機関に供給される混合気の空燃比が、理論空燃比よりもリーン側からリッチ側に切り換えるように制御され、その切換以降に検出されたＮＯｘ濃度に応じて、スリップＮＯｘの発生度合を表すスリップＮＯｘパラメータが算出される。そして、リーン側からリッチ側に切り換えるときの空燃比の変化速度が、スリップＮＯｘパラメータと、空燃比のリッチ側への切換後の、ＮＯｘ浄化触媒におけるＮＯｘ還元動作が終了していると推定されるタイミングで検出されたＮＯｘ濃度との比であるスリップＮＯｘ比、およびスリップＮＯｘパラメータに応じて決定される。このように、空燃比の変化速度が、スリップＮＯｘの発生度合を表すスリップＮＯｘパラメータ、およびスリップＮＯｘ比に応じて決定されるので、スリップＮＯｘの発生を適切に抑制しながら、ＮＯｘ浄化触媒のＮＯｘ捕捉能力を回復させることができる。
【００１１】
すなわち、空燃比をリーン側からリッチ側に切り換える際の空燃比の変化速度を変えるだけで、スリップＮＯｘを抑制できるので、リーン制御の実行時間を変える従来の場合と異なり、ＮＯｘ浄化触媒が劣化したときでも、リッチ制御の実行頻度が増大するのを回避でき、その分、燃費を向上させることができる。また、スリップＮＯｘパラメータが、ＮＯｘ浄化触媒の下流側の排ガス中のＮＯｘ濃度のみに応じて算出されるので、ＮＯｘ浄化触媒の下流側のＮＯｘ濃度と上流側のＮＯｘ濃度との偏差を用いる従来の場合と異なり、還元剤としての未燃燃料を含む排ガスおよびＮＯｘ浄化触媒におけるＮＯｘ浄化能力が、スリップＮＯｘの判定結果に影響を及ぼすのを回避でき、スリップＮＯｘの発生度合の判定精度を向上させることができる。その結果、スリップＮＯｘをより確実に抑制できることで、排ガス特性を向上させることができる。
【００１２】
請求項２に係る発明は、請求項１に記載の内燃機関３の空燃比制御装置１において、空燃比制御手段は、スリップＮＯｘ比およびスリップＮＯｘパラメータに応じて、空燃比ＡＦの変化速度を複数の段階で切り換わるように決定する（ステップ５２，５６，８５，９４，１１４，１１５）ことを特徴とする。
【００１３】
この内燃機関の空燃比制御装置によれば、スリップＮＯｘ比およびスリップＮＯｘパラメータに応じて、空燃比の変化速度が複数の段階で切り換わるように決定されるので、スリップＮＯｘの発生度合に応じて、空燃比をよりきめ細かく制御することができ、スリップＮＯｘの発生をより確実に抑制できる。
【００１４】
請求項３に係る発明は、請求項１または２に記載の内燃機関３の空燃比制御装置１において、空燃比制御手段は、空燃比ＡＦの変化速度を、スリップＮＯｘパラメータによって表されるスリップＮＯｘの発生度合が大きいほど、より小さくなるように決定する（ステップ５２，５６，８５，９４，１１４，１１５）ことを特徴とする。
【００１５】
この内燃機関の空燃比制御装置によれば、空燃比の変化速度が、スリップＮＯｘパラメータによって表されるスリップＮＯｘの発生度合が大きいほど、より小さくなるように決定されるので、スリップＮＯｘの発生をより確実に抑制できる。
【００１６】
請求項４に係る発明は、請求項１ないし３のいずれかに記載の内燃機関３の空燃比制御装置１において、スリップＮＯｘパラメータ算出手段は、スリップＮＯｘパラメータを、空燃比ＡＦのリッチ側への切換後に検出されたＮＯｘ濃度の最大値ＭＸ＿ＣＮＯｘと、切換開始時に検出されたＮＯｘ濃度（初期値ＳＴ＿ＣＮＯｘ）との偏差（ＭＸ＿ＣＮＯｘ−ＳＴ＿ＣＮＯｘ）として算出することを特徴とする。
【００１７】
この内燃機関の空燃比制御装置によれば、スリップＮＯｘパラメータが、空燃比のリッチ側への切換後に検出されたＮＯｘ濃度の最大値と、切換開始時に検出されたＮＯｘ濃度との偏差として算出されるので、前述したように、ＮＯｘ浄化触媒の下流側のＮＯｘ濃度と上流側のＮＯｘ濃度との偏差を用いる従来の場合と異なり、還元剤としての未燃燃料を含む排ガスおよびＮＯｘ浄化触媒におけるＮＯｘ浄化能力が、スリップＮＯｘの判定に影響を及ぼすのを回避でき、スリップＮＯｘの発生度合の判定精度を向上させることができる。
【００１８】
請求項５に係る発明は、請求項１ないし３のいずれかに記載の内燃機関３の空燃比制御装置１において、スリップＮＯｘパラメータ算出手段は、スリップＮＯｘパラメータを、空燃比ＡＦのリッチ側への切換開始から切換後の所定タイミング（時刻ｔ２、ｔ３またはｔ４）までのＮＯｘ濃度ＣＮＯｘの平均値として算出することを特徴とする。
【００１９】
ＮＯｘ浄化触媒にリッチ雰囲気の排ガスを供給するために、混合気の空燃比を理論空燃比よりもリーン側からリッチ側に切り換えるように制御した場合、リッチ側への切換以降、スリップＮＯｘの発生状態としては、ＮＯｘ濃度が一時的なピークを示すように変化する場合が一般的であるが、それ以外にも、例えばスリップＮＯｘ量が少ないときなどには、ＮＯｘ濃度がアップダウンを繰り返すことなどがあり、多様な変化パターンが存在する。これに対して、この内燃機関の空燃比制御装置によれば、スリップＮＯｘパラメータが、空燃比のリッチ側への切換開始から切換後の所定タイミングまでのＮＯｘ濃度の平均値として算出されるので、ＮＯｘ濃度がどのような変化パターンで変化しても、その影響を受けることなく、スリップＮＯｘパラメータをスリップＮＯｘの発生度合を適切に表す値として算出でき、それにより、スリップＮＯｘの発生度合の判定精度をさらに向上させることができる。
【００２０】
請求項６に係る発明は、請求項１ないし３のいずれかに記載の内燃機関３の空燃比制御装置１において、スリップＮＯｘパラメータ算出手段は、スリップＮＯｘパラメータを、空燃比ＡＦのリッチ側への切換開始から切換後の所定タイミング（時刻ｔ２、ｔ３またはｔ４）までの間にＮＯｘ浄化触媒１２から排出された総ＮＯｘ量として算出することを特徴とする。
【００２１】
この内燃機関の空燃比制御装置によれば、スリップＮＯｘパラメータが、空燃比のリッチ側への切換開始から切換後の所定タイミングまでの間にＮＯｘ浄化触媒から排出された総ＮＯｘ量として算出されるので、前述したように、ＮＯｘ濃度がどのような変化パターンで変化しても、その影響を受けることなく、スリップＮＯｘパラメータをスリップＮＯｘの発生度合を適切に表す値として算出でき、それにより、スリップＮＯｘの発生度合の判定精度をさらに向上させることができる。
【発明を実施するための最良の形態】
【００２８】
以下、図面を参照しながら、本発明の一実施形態に係る内燃機関の空燃比制御装置について説明する。図１は、本実施形態の空燃比制御装置１を適用した内燃機関（以下「エンジン」という）３の概略構成を示しており、図２は、空燃比制御装置１の概略構成を示している。同図２に示すように、空燃比制御装置１は、ＥＣＵ２を備えており、このＥＣＵ２は、後述するように、エンジン３の運転状態に応じて、空燃比制御などの各種の制御処理を実行する。
【００２９】
エンジン３は、図示しない車両に搭載された直列４気筒型ディーゼルエンジンであり、４組の気筒３ａおよびピストン３ｂ（１組のみ図示）と、クランクシャフト３ｃなどを備えている。このエンジン３には、クランク角センサ２０が設けられている。このクランク角センサ２０は、マグネットロータおよびＭＲＥピックアップで構成されており、クランクシャフト３ｃの回転に伴い、いずれもパルス信号であるＣＲＫ信号およびＴＤＣ信号をＥＣＵ２に出力する。
【００３０】
このＣＲＫ信号は、所定クランク角（例えば３０゜）毎に１パルスが出力され、ＥＣＵ２は、このＣＲＫ信号に基づき、エンジン３の回転数（以下「エンジン回転数」という）ＮＥを算出する。また、ＴＤＣ信号は、各気筒３ａのピストン３ｂが吸気行程のＴＤＣ位置よりも若干、手前の所定のクランク角位置にあることを表す信号であり、所定クランク角毎に１パルスが出力される。
【００３１】
また、エンジン３には、燃料噴射弁４が気筒３ａ毎に設けられており（１つのみ図示）、各燃料噴射弁４はいずれも、ＥＣＵ２に電気的に接続されている。燃料噴射弁４は、後述するように、ＥＣＵ２によって、その開弁時間および開弁タイミングが制御され、それにより、燃料噴射量および燃料噴射タイミングが制御される。
【００３２】
一方、エンジン３の吸気通路６には、上流側から順に、エアフローセンサ２１、ターボチャージャ７、スロットル弁機構８およびスワール弁機構９が設けられている。このエアフローセンサ２１は、熱線式エアフローメータで構成されており、後述するスロットル弁８ａを通過する新気の流量を検出し、それを表す検出信号をＥＣＵ２に出力する。ＥＣＵ２は、エアフローセンサ２１の検出信号に基づき、気筒３ａ内に実際に吸入されたと推定される新気量Ｍ＿ＡＣＴを算出する。
【００３３】
また、ターボチャージャ７は、吸気通路６のエアフローセンサ２１よりも下流側に設けられたコンプレッサブレード７ａと、排気通路１１の途中に設けられ、コンプレッサブレード７ａと一体に回転するタービンブレード７ｂと、複数の可変ベーン７ｃ（２つのみ図示）と、可変ベーン７ｃを駆動するベーンアクチュエータ７ｄなどを備えている。
【００３４】
このターボチャージャ７では、排気通路１１内の排ガスによってタービンブレード７ｂが回転駆動されると、これと一体のコンプレッサブレード７ａも同時に回転することにより、吸気通路６内の新気が加圧される。すなわち、過給動作が実行される。
【００３５】
また、可変ベーン７ｃは、ターボチャージャ７が発生する過給圧を変化させるためのものであり、ハウジングのタービンブレード７ｂを収容する部分の壁に回動自在に取り付けられている。可変ベーン７ｃは、ＥＣＵ２に接続されたベーンアクチュエータ７ｄに機械的に連結されている。ＥＣＵ２は、ベーンアクチュエータ７ｄを介して可変ベーン７ｃの開度を変化させ、タービンブレード７ｂに吹き付けられる排ガス量を変化させることによって、タービンブレード７ｂの回転速度すなわちコンプレッサブレード７ａの回転速度を変化させ、それにより、過給圧を制御する。
【００３６】
一方、スロットル弁機構８は、スロットル弁８ａおよびこれを駆動するＴＨアクチュエータ８ｂなどを備えている。スロットル弁８ａは、吸気通路６の途中に回動自在に設けられており、当該回動に伴う開度の変化によりスロットル弁８ａを通過する新気の流量を変化させる。ＴＨアクチュエータ８ｂは、モータに減速ギヤ機構（いずれも図示せず）を組み合わせたものであり、ＥＣＵ２に電気的に接続されている。ＥＣＵ２は、ＴＨアクチュエータ８ｂを介してスロットル弁８ａの開度を制御する。
【００３７】
また、吸気通路６のスロットル弁機構８よりも下流側の部分は、１つの集合部と、そこから分岐した４つの分岐部とからなるインテークマニホールド６ａになっている。このインテークマニホールド６ａ内の通路は、集合部から各分岐部にわたってスワール通路６ｂおよびバイパス通路６ｃに分かれており、これらの通路６ｂ，６ｃはそれぞれ、２つの吸気ポートを介して気筒３ａ内に連通している。
【００３８】
前述したスワール弁機構９は、スワールを気筒３ａ内に発生させることによって気筒３ａ内の混合気を攪拌するものであり、スワール通路６ｂ内に設けられたスワール弁９ａと、これを駆動するスワールアクチュエータ９ｂなどを備えている。スワールアクチュエータ９ｂは、モータに減速ギヤ機構（いずれも図示せず）を組み合わせたものであり、ＥＣＵ２に電気的に接続されている。ＥＣＵ２は、スワールアクチュエータ９ｂを介してスワール弁９ａの開度を変化させ、それにより、スワールの発生状態を制御する。
【００３９】
また、エンジン３には、排気還流装置１０が設けられている。この排気還流装置１０は、排気通路１１内の排ガスの一部を吸気通路６側に還流するものであり、吸気通路６および排気通路１１の間に接続されたＥＧＲ通路１０ａと、このＥＧＲ通路１０ａを開閉するＥＧＲ制御弁１０ｂなどで構成されている。ＥＧＲ通路１０ａの一端は、排気通路１１のタービンブレード７ｂよりも上流側の部分に開口し、他端は、吸気通路６のバイパス通路６ｃの部分に開口している。
【００４０】
ＥＧＲ制御弁１０ｂは、そのリフトが最大値と最小値との間でリニアに変化するリニア電磁弁で構成され、ＥＣＵ２に電気的に接続されている。ＥＣＵ２は、ＥＧＲ制御弁１０ｂを介して、ＥＧＲ通路１０ａの開度を変化させ、それにより、排ガスの還流量すなわちＥＧＲ量を制御する。
【００４１】
一方、排気通路１１のタービンブレード７ｂよりも下流側には、上流側から順に、ＬＡＦセンサ２２、ＮＯｘ浄化触媒１２およびＮＯｘセンサ２３が設けられている。このＬＡＦセンサ２２は、ジルコニアおよび白金電極などで構成され、理論空燃比よりもリッチなリッチ領域から極リーン領域までの広範囲な空燃比の領域において、排気通路１１内を流れる排ガス中の酸素濃度をリニアに検出し、それを表す検出信号をＥＣＵ２に出力する。ＥＣＵ２は、このＬＡＦセンサ２２の検出信号に基づき、排ガスの空燃比すなわち燃焼した混合気の空燃比ＡＦを算出する。
【００４２】
また、ＮＯｘ浄化触媒１２は、リーン雰囲気の排ガスすなわち酸素濃度が理論空燃比に相当する排ガスの酸素濃度よりも高い排ガスが流入したときには、排ガス中のＮＯｘを捕捉するとともに、後述するリッチスパイク制御などにより、リッチ雰囲気の排ガスが流入したときには、捕捉したＮＯｘを還元する。
【００４３】
一方、ＮＯｘセンサ２３（ＮＯｘ濃度検出手段）は、ＮＯｘ浄化触媒１２を通過した排ガス中のＮＯｘ濃度ＣＮＯｘを検出し、それを表す検出信号をＥＣＵ２に出力する。
【００４４】
さらに、ＥＣＵ２には、アクセル開度センサ２４が接続されている。このアクセル開度センサ２４は、車両の図示しないアクセルペダルの踏み込み量（以下「アクセル開度」という）ＡＰを検出し、それを表す検出信号をＥＣＵ２に出力する。
【００４５】
また、ＥＣＵ２は、ＣＰＵ、ＲＡＭ、ＲＯＭおよびＩ／Ｏインターフェース（いずれも図示せず）などからなるマイクロコンピュータで構成されており、前述した各種のセンサ２０〜２４の検出信号などに応じて、エンジン３の運転状態を判別するとともに、運転状態に応じて、以下に述べるように、空燃比制御処理などを実行する。それにより、混合気の空燃比ＡＦが、通常運転時にはリーン側の値に制御され、リッチスパイク制御時には、ＮＯｘ浄化触媒１２に捕捉されたＮＯｘを還元するために、後述する所定のリッチスパイク用値ＡＦ＿ＲＩＣＨに制御される。また、リッチスパイク制御中、ＮＯｘ浄化触媒１２の劣化などに起因して、スリップＮＯｘが発生した場合には、次回以降のリッチスパイク制御の開始時、空燃比ＡＦを、スリップＮＯｘが発生していない場合よりも小さい変化速度で、リッチスパイク用値ＡＦ＿ＲＩＣＨまで制御する。以下、この制御のことを「スリップ補正制御」という。
【００４６】
なお、本実施形態では、ＥＣＵ２が、空燃比制御手段およびスリップＮＯｘパラメータ算出手段に相当する。
【００４７】
また、ＥＣＵ２は、イグニッション・スイッチがオフされたエンジン停止中でも記憶したデータを保持可能なバックアップ電源付きのＲＡＭと、バックアップ電源付きでない一般的なＲＡＭを備えており、後述するＮＯｘ捕捉量Ｓ＿ＱＮＯｘ、空燃比補正係数Ｋ＿ＮＯｘ、中間値の前回値ＡＦ＿ＭＩＤＺ、補正係数算出済みフラグＦ＿ＫＮＯｘおよびスリップ補正済みフラグＦ＿ＡＦＳＬＩＰなどの値は、バックアップ電源付きのＲＡＭ内に記憶される。
【００４８】
次に、図３を参照しながら、ＥＣＵ２により実行されるリッチスパイク制御の実行条件判定処理について説明する。この処理は、以下に述べるように、ＮＯｘ浄化触媒１２に捕捉されたＮＯｘを還元するためのリッチスパイク制御の実行条件が成立しているか否かを判定するとともに、空燃比補正係数Ｋ＿ＮＯｘおよび空燃比補正値ＡＦ＿ＣＯＲＲを算出するものであり、所定の制御周期（例えば１０ｍｓｅｃ）で実行される。
【００４９】
この処理では、まず、ステップ１（図では「Ｓ１」と略す。以下同じ）で、リッチ条件フラグＦ＿ＲＩＣＨが「１」であるか否かを判別する。この判別結果がＮＯで、リッチスパイク制御の実行条件が成立していないときには、ステップ２に進み、ＮＯｘ捕捉量Ｓ＿ＱＮＯｘを算出する。
【００５０】
このＮＯｘ捕捉量Ｓ＿ＱＮＯｘは、ＮＯｘ浄化触媒１２に捕捉されているＮＯｘ量の推定値に相当するものであり、具体的には、以下に述べるように、ＮＯｘ排出量ＱＮＯｘの積算値として算出される。まず、要求トルクＰＭＣＭＤを、エンジン回転数ＮＥおよびアクセル開度ＡＰに応じて、図示しないマップを検索することにより算出し、次いで、要求トルクＰＭＣＭＤおよびエンジン回転数ＮＥに応じて、図示しないマップを検索することにより、ＮＯｘ排出量ＱＮＯｘを算出する。その後、算出したＮＯｘ排出量ＱＮＯｘをＮＯｘ捕捉量の前回値に加算することにより、ＮＯｘ捕捉量Ｓ＿ＱＮＯｘが算出される。
【００５１】
次いで、ステップ３に進み、ＮＯｘ捕捉量Ｓ＿ＱＮＯｘが所定値ＳＱＮＯｘ１以上であるか否かを判別する。この判別結果がＮＯのときには、リッチスパイク制御の実行条件が成立していないと判定して、ステップ１２に進み、それを表すためにリッチ条件フラグＦ＿ＲＩＣＨを「０」に設定した後、本処理を終了する。
【００５２】
一方、ステップ３の判別結果がＹＥＳのときには、リッチスパイク制御の実行条件が成立したと判定して、ステップ４で、ＮＯｘ捕捉量Ｓ＿ＱＮＯｘを値０にリセットした後、ステップ５に進み、リッチスパイク制御の実行条件が成立したことを表すために、リッチ条件フラグＦ＿ＲＩＣＨを「１」に設定する。それにより、次回以降のループにおいて、ステップ１の判別結果がＹＥＳとなり、その場合には、ステップ６に進む。
【００５３】
ステップ１または５に続くステップ６では、総還元剤量Ｓ＿ＱＲＡを算出する。この総還元剤量Ｓ＿ＱＲＡは、ＮＯｘ浄化触媒１２に供給されたと推定される還元剤量の積算値すなわち未燃燃料量の積算値を表すものであり、具体的には、以下のように算出される。まず、新気量Ｍ＿ＡＣＴ、エンジン回転数ＮＥおよび後述する燃料噴射量ＱＩＮＪに応じて、図示しないマップを検索することにより、還元剤量ＱＲＡを算出し、次いで、これを総還元剤量の前回値に加算することにより、総還元剤量Ｓ＿ＱＲＡが算出される。
【００５４】
次いで、ステップ７に進み、総還元剤量Ｓ＿ＱＲＡが所定の終了判定値ＳＱＲＡ１以上であるか否かを判別する。この判別結果がＮＯのときには、ＮＯｘ浄化触媒１２でのＮＯｘの還元が終了しておらず、リッチスパイク制御を継続して実行すべきであると判定して、ステップ８に進み、スリップ値ＳＬＩＰ＿ＣＮＯｘ（スリップＮＯｘパラメータ）を算出する。
【００５５】
このスリップ値ＳＬＩＰ＿ＣＮＯｘは、スリップＮＯｘの発生度合を表すものであり、その算出処理は、具体的には図４に示すように実行される。この処理では、まず、ステップ２０で、スリップ値算出済みフラグＦ＿ＳＬＩＰが「１」であるか否かを判別する。この判別結果がＮＯで、スリップ値ＳＬＩＰ＿ＣＮＯｘを算出済みでないときには、ステップ２１に進み、リッチ条件フラグの前回値Ｆ＿ＲＩＣＨＺが「０」であるか否かを判別する。
【００５６】
この判別結果がＹＥＳで、今回のループがリッチスパイク制御の実行条件が不成立の状態から成立状態に切り換わった１回目であるときには、ステップ２２で、ＮＯｘセンサ２３により検出されたＮＯｘ濃度ＣＮＯｘを、初期値ＳＴ＿ＣＮＯｘとして設定した後、ステップ２３に進む。一方、ステップ２１の判別結果がＮＯのときには、そのままステップ２３に進む。
【００５７】
ステップ２１または２２に続くステップ２３では、下記の２つの条件がいずれも成立しているか否かを判別する。
・ＮＯｘ濃度の今回値ＣＮＯｘが前回値ＣＮＯｘＺより大きいこと。
・ＮＯｘ濃度の今回値ＣＮＯｘが初期値ＳＴ＿ＣＮＯｘよりも大きいこと。
【００５８】
ステップ２３の判別結果がＹＥＳで、上記２つの条件がいずれも成立しているときには、ステップ２４に進み、ＮＯｘ濃度ＣＮＯｘを最大値ＭＸ＿ＣＮＯｘとして設定する。
【００５９】
次いで、ステップ２５で、ステップ２４で算出された最大値ＭＸ＿ＣＮＯｘがその前回値ＭＸ＿ＣＮＯｘＺよりも大きいか否かを判別する。この判別結果がＮＯのときには、そのまま本処理を終了する。
【００６０】
一方、ステップ２５の判別結果がＹＥＳのときには、スリップ値ＳＬＩＰ＿ＣＮＯｘを算出すべきであると判定して、ステップ２６に進み、最大値と初期値との偏差（ＭＸ＿ＣＮＯｘ−ＳＴ＿ＣＮＯｘ）を、スリップ値ＳＬＩＰ＿ＣＮＯｘとして設定する。
【００６１】
次いで、ステップ２７に進み、スリップ値カウンタの計数値ＣＴ＿ＳＬを、その前回値ＣＴ＿ＳＬＺに値１を加算した値（ＣＴ＿ＳＬＺ＋１）に設定する。すなわち、スリップ値カウンタの計数値ＣＴ＿ＳＬを値１インクリメントする。その後、本処理を終了する。
【００６２】
一方、ステップ２３の判別結果がＮＯで、ＣＮＯｘ≦ＣＮＯｘＺまたはＣＮＯｘ≦ＳＴ＿ＣＮＯｘであるときには、ステップ２８で、スリップ値カウンタの計数値ＣＴ＿ＳＬが所定値ＣＴＳＬ１以上であるか否かを判別する。この判別結果がＮＯのときには、本処理を終了する。
【００６３】
一方、ステップ２８の判別結果がＹＥＳのときには、スリップ値ＳＬＩＰ＿ＣＮＯｘの演算回数が十分な値に達しており、スリップ値ＳＬＩＰ＿ＣＮＯｘが適切に算出されていると判定して、ステップ２９に進み、ＣＮＯｘ＜ＣＮＯｘＺが成立しているか否かを判別する。この判別結果がＹＥＳで、ＮＯｘ濃度が低下傾向にあるときには、ステップ３０に進み、低下傾向カウンタの計数値ＣＴ＿ＤＷを、その前回値ＣＴ＿ＤＷＺに値１を加算した値（ＣＴ＿ＤＷＺ＋１）に設定する。すなわち、低下傾向カウンタの計数値ＣＴ＿ＤＷを値１インクリメントする。
【００６４】
次いで、ステップ３１に進み、低下傾向カウンタの計数値ＣＴ＿ＤＷが所定値ＣＴＤＷ１以上であるか否かを判別する。この判別結果がＮＯのときには、本処理を終了する。一方、この判別結果がＹＥＳのときには、スリップＮＯｘが終了する状態にあり、スリップ値ＳＬＩＰ＿ＣＮＯｘの算出を終了すべきであると判定して、ステップ３２に進み、それを表すためにスリップ値算出済みフラグＦ＿ＳＬＩＰを「１」に設定するとともに、２つのカウンタの計数値ＣＴ＿ＳＬ，ＣＴ＿ＤＷをいずれも値０にリセットした後、本処理を終了する。
【００６５】
このように、ステップ３２で、スリップ値算出済みフラグＦ＿ＳＬＩＰが「１」に設定されると、次回以降のループで、ステップ２０の判別結果がＹＥＳとなり、その場合には、そのまま本処理を終了する。
【００６６】
図３に戻り、ステップ８のスリップ値ＳＬＩＰ＿ＣＮＯｘの算出処理を以上のように実行した後、ステップ９に進み、スリップ・スルー比Ｒ＿ＳＬＴＨ（スリップＮＯｘ比）を算出する。このスリップ・スルー比Ｒ＿ＳＬＴＨの算出処理は、具体的には、図５に示すように実行される。
【００６７】
この処理では、まず、ステップ４０で、スリップ値算出済みフラグＦ＿ＳＬＩＰが「１」であるか否かを判別する。この判別結果がＮＯのときには、そのまま本処理を終了する。一方、この判別結果がＹＥＳで、スリップ値ＳＬＩＰ＿ＣＮＯｘを算出済みであるときには、ステップ４１に進み、スリップ・スルー比算出済みフラグＦ＿ＲＡＴＩＯが「１」であるか否かを判別する。
【００６８】
この判別結果がＮＯのときには、スリップ・スルー比Ｒ＿ＳＬＴＨを算出すべきであると判定して、ステップ４２に進み、前述した総還元剤量Ｓ＿ＱＲＡが所定のスルー判定値ＳＱＲＡ２以上であるか否かを判別する。この所定のスルー判定値ＳＱＲＡ２は、ＮＯｘ浄化触媒１２でのＮＯｘの還元がほぼ終了したことを判定するための値であり、ＳＱＲＡ２＜ＳＱＲＡ１が成立するような値に設定される。
【００６９】
ステップ４２の判別結果がＮＯのときには、そのまま本処理を終了する。一方、ステップ４２の判別結果がＹＥＳのときには、ＮＯｘ浄化触媒１２でのＮＯｘの還元がほぼ終了していると判定して、ステップ４３に進み、ＮＯｘ濃度ＣＮＯｘをスルー値ＴＨ＿ＣＮＯｘとして設定する。すなわち、スルー値ＴＨ＿ＣＮＯｘは、ＮＯｘ浄化触媒１２でのＮＯｘの還元がほぼ終了し、ＮＯｘ濃度ＣＮＯｘがほとんど変化しない状態になったときの値として算出される。なお、本実施形態では、このスルー値ＴＨ＿ＣＮＯｘが、空燃比のリッチ側への切換後の、ＮＯｘ浄化触媒におけるＮＯｘ還元動作が終了していると推定されるタイミングで検出されたＮＯｘ濃度に相当する。
【００７０】
その後、ステップ４４に進み、スリップ・スルー比Ｒ＿ＳＬＴＨを、スリップ値をスルー値で除算した値（ＳＬＩＰ＿ＣＮＯｘ／ＴＨ＿ＣＮＯｘ）に設定する。次に、ステップ４５に進み、スリップ・スルー比Ｒ＿ＳＬＴＨを算出済みであることを表すために、スリップ・スルー比算出済みフラグＦ＿ＲＡＴＩＯを「１」に設定した後、本処理を終了する。それにより、次回以降のループで、ステップ４１の判別結果がＹＥＳとなり、その場合には、そのまま本処理を終了する。
【００７１】
図３に戻り、ステップ９のスリップ・スルー比Ｒ＿ＳＬＴＨの算出処理を以上のように実行した後、ステップ１０に進み、空燃比補正係数Ｋ＿ＮＯｘおよび空燃比補正値ＡＦ＿ＣＯＲＲの算出処理を実行する。これらの値Ｋ＿ＮＯｘ，ＡＦ＿ＣＯＲＲは、後述するリッチスパイク制御処理での目標空燃比ＡＦ＿ＣＭＤおよびローゲイン値ＫＰ２，ＫＩ２，ＫＤ２の算出に用いられるものであり、その算出処理は、具体的には、図６に示すように実行される。
【００７２】
同図に示すように、まず、ステップ５０で、スリップ・スルー比算出済みフラグＦ＿ＲＡＴＩＯが「１」であるか否かを判別する。この判別結果がＮＯで、スリップ・スルー比Ｒ＿ＳＬＴＨが算出されていないときには、そのまま本処理を終了する。
【００７３】
一方、ステップ５０の判別結果がＹＥＳで、スリップ・スルー比Ｒ＿ＳＬＴＨが算出されているときには、ステップ５１に進み、補正係数算出済みフラグＦ＿ＫＮＯｘが「１」であるか否かを判別する。この判別結果がＮＯのときには、空燃比補正係数Ｋ＿ＮＯｘを算出すべきであると判定して、ステップ５２に進み、スリップ値ＳＬＩＰ＿ＣＮＯｘおよびスリップ・スルー比Ｒ＿ＳＬＴＨに応じて、図７に示すマップを検索することにより、空燃比補正係数Ｋ＿ＮＯｘを算出する。
【００７４】
同図において、Ｒ＿ＳＬＴＨｍは、ｍ（ｍは２以上の整数）個のスリップ・スルー比Ｒ＿ＳＬＴＨの所定値を表しており、これらの値は、Ｒ＿ＳＬＴＨ１＜Ｒ＿ＳＬＴＨ２＜……＜Ｒ＿ＳＬＴＨｍが成立するように設定されている。また、ＣＮＯｘｎは、ｎ（ｎは２以上の整数）個のＮＯｘ濃度の所定値を表しており、これらの値は、ＣＮＯｘ１＜ＣＮＯｘ２＜……＜ＣＮＯｘｎが成立するように設定されている。以上の設定は、後述する図８においても同様である。
【００７５】
このマップでは、空燃比補正係数Ｋ＿ＮＯｘは、０＜Ｋ＿ＮＯｘ≦１が成立する値に設定されているとともに、スリップ・スルー比Ｒ＿ＳＬＴＨが大きいほど、またはスリップ値ＳＬＩＰ＿ＣＮＯｘが大きいほど、より小さい値に設定されている。これは、以下の理由による。まず、スリップ・スルー比Ｒ＿ＳＬＴＨに関しては、スリップ・スルー比Ｒ＿ＳＬＴＨが大きいほど、すなわちスルー値ＴＨ＿ＣＮＯｘに対するスリップ値ＳＬＩＰ＿ＣＮＯｘの割合が大きいほど、スリップＮＯｘが排ガス特性に及ぼす影響の度合がより大きくなるので、それに応じて、後述するスリップ補正制御での空燃比ＡＦのリッチスパイク用値ＡＲ＿ＲＩＣＨへの変化速度をより小さい値に設定することで、スリップＮＯｘの発生をより確実に抑制するためである。
【００７６】
また、スリップ値ＳＬＩＰ＿ＣＮＯｘに関しては、スリップ値ＳＬＩＰ＿ＣＮＯｘが大きいほど、それを抑制すべく、空燃比ＡＦのリッチスパイク用値ＡＲ＿ＲＩＣＨへの変化速度をより小さい値に設定するためである。
【００７７】
ステップ５２に続くステップ５３では、空燃比補正係数Ｋ＿ＮＯｘを算出済みであることを表すために、補正係数算出済みフラグＦ＿ＫＮＯｘを「１」に設定する。それにより、次回以降のループで、ステップ５１の判別結果がＹＥＳとなり、その場合には、ステップ５４に進む。
【００７８】
ステップ５１または５３に続くステップ５４では、スリップ補正済みフラグＦ＿ＡＦＳＬＩＰが「１」であるか否かを判別する。このスリップ補正済みフラグＦ＿ＡＦＳＬＩＰは、その初期値が「０」に設定されるとともに、後述するように、スリップＮＯｘの発生後、次回以降のリッチスパイク制御において、空燃比補正係数Ｋ＿ＮＯｘまたは空燃比補正値ＡＦ＿ＣＯＲＲを用いたスリップ補正制御を実行したときに「１」に設定される。
【００７９】
ステップ５４の判別結果がＮＯのときには、そのまま本処理を終了する。一方、ステップ５４の判別結果がＹＥＳで、スリップ補正制御を実行中であるにもかかわらず、スリップＮＯｘが発生したときには、空燃比補正値ＡＦ＿ＣＯＲＲを算出すべきであると判定して、ステップ５５に進み、補正値算出済みフラグＦ＿ＣＯＲＲが「１」であるか否かを判別する。この判別結果がＹＥＳで、空燃比補正値ＡＦ＿ＣＯＲＲを算出済みであるときには、そのまま本処理を終了する。
【００８０】
一方、ステップ５５の判別結果がＮＯで、空燃比補正値ＡＦ＿ＣＯＲＲを算出していないときには、ステップ５６に進み、スリップ値ＳＬＩＰ＿ＣＮＯｘおよびスリップ・スルー比Ｒ＿ＳＬＴＨに応じて、図８に示すマップを検索することにより、空燃比補正値ＡＦ＿ＣＯＲＲを算出する。
【００８１】
このマップでは、空燃比補正値ＡＦ＿ＣＯＲＲは、スリップ・スルー比Ｒ＿ＳＬＴＨが大きいほど、またはスリップ値ＳＬＩＰ＿ＣＮＯｘが大きいほど、より大きい値に設定されている。これは、前述したように、スリップ・スルー比Ｒ＿ＳＬＴＨが大きいほど、スリップＮＯｘが排ガス特性に及ぼす影響の度合がより大きくなるので、それに応じて、後述するスリップ補正制御における空燃比ＡＦのリッチスパイク用値ＡＲ＿ＲＩＣＨへの変化速度をより小さい値に設定することで、スリップＮＯｘの発生をより確実に抑制するためである。また、前述したように、スリップ値ＳＬＩＰ＿ＣＮＯｘが大きいほど、それを抑制すべく、空燃比ＡＦのリッチスパイク用値ＡＲ＿ＲＩＣＨへの変化速度をより小さい値に設定するためである。
【００８２】
次いで、ステップ５７に進み、空燃比補正値ＡＦ＿ＣＯＲＲを算出済みであることを表すために、補正値算出済みフラグＦ＿ＣＯＲＲを「１」に設定した後、本処理を終了する。それにより、次回以降のループで、ステップ５５の判別結果がＹＥＳとなり、その場合には、そのまま本処理を終了する。
【００８３】
図３に戻り、ステップ１０で、空燃比補正係数Ｋ＿ＮＯｘおよび空燃比補正値ＡＦ＿ＣＯＲＲの算出処理を以上のように実行した後、本処理を終了する。
【００８４】
一方、ステップ７の判別結果がＹＥＳのときには、ＮＯｘ浄化触媒１２でのＮＯｘの還元が終了し、リッチスパイク制御を終了すべきであると判定して、ステップ１１に進み、総還元剤量Ｓ＿ＱＲＡを値０にリセットするとともに、３つのフラグＦ＿ＳＬＩＰ，Ｆ＿ＲＡＴＩＯ，Ｆ＿ＣＯＲＲをいずれも「０」にリセットする。次いで、リッチスパイク制御を終了すべきであることを表すために、前述したステップ１２で、リッチ条件フラグＦ＿ＲＩＣＨを「０」に設定した後、本処理を終了する。
【００８５】
次に、図９を参照しながら、ＥＣＵ２により実行される空燃比制御処理について説明する。この処理は、以下に述べるように、気筒３ａ内に供給される混合気の空燃比ＡＦを制御するものであり、所定の制御周期（例えばＴＤＣ信号の発生タイミング）で実行される。
【００８６】
この処理では、まず、ステップ６０で、前述したリッチ条件フラグＦ＿ＲＩＣＨが「１」であるか否かを判別する。この判別結果がＮＯで、リッチスパイク制御の実行条件が成立していないときには、空燃比ＡＦをリーン側に制御すべきであると判定して、ステップ６１に進み、エンジン回転数ＮＥおよびアクセル開度ＡＰに応じて、図示しないリーン制御用のマップを検索することにより、要求トルクＰＭＣＭＤを算出する。
【００８７】
ステップ６１に続くステップ６２では、エンジン回転数ＮＥおよび要求トルクＰＭＣＭＤに応じて、図示しないリーン制御用のマップを検索することにより、燃料噴射量ＱＩＮＪを算出する。
【００８８】
次いで、ステップ６３に進み、エンジン回転数ＮＥおよび燃料噴射量ＱＩＮＪに応じて、図示しないリーン制御用のマップを検索することにより、燃料噴射終了タイミングφＩＮＪを算出する。その結果、以上のように算出された燃料噴射量ＱＩＮＪおよび燃料噴射終了タイミングφＩＮＪに対応して、燃料が燃料噴射弁４から気筒３ａ内に噴射される。
【００８９】
ステップ６３に続くステップ６４では、後述する３つのフラグＦ＿ＡＦＲＩＣＨ，Ｆ＿ＡＦＭＩＤ１，Ｆ＿ＡＦＭＩＤ２をいずれも「０」にリセットする。
【００９０】
次いで、ステップ６５に進み、リーン制御処理を実行する。具体的には、以下に述べるように、スロットル弁制御処理、過給圧制御処理、スワール制御処理およびＥＧＲ制御処理が実行される。
【００９１】
まず、スロットル弁制御処理では、目標スロットル弁開度ＴＨ＿ＣＭＤが所定の全開値ＴＨ＿ＷＯＴに設定される。それにより、目標スロットル弁開度ＴＨ＿ＣＭＤに対応する制御入力がＴＨアクチュエータ８ｂに入力され、その結果、スロットル弁８ａが全開状態になるように制御される。
【００９２】
また、過給圧制御処理では、燃料噴射量ＱＩＮＪに応じて、図示しないリーン制御用のマップを検索することにより、可変ベーン７ｃの目標開度ＶＡＮＥ＿ＣＭＤを算出する。それにより、この目標開度ＶＡＮＥ＿ＣＭＤに対応する制御入力がベーンアクチュエータ７ｄに入力されることで、過給圧が制御される。
【００９３】
さらに、スワール制御処理では、燃料噴射量ＱＩＮＪに応じて、図示しないリーン制御用のマップを検索することにより、スワール弁９ａの目標スワール開度ＳＷ＿ＣＭＤを算出する。それにより、この目標スワール開度ＳＷ＿ＣＭＤに対応する制御入力がスワールアクチュエータ９ｂに入力されることで、スワールが制御される。
【００９４】
一方、ＥＧＲ制御処理では、燃料噴射量ＱＩＮＪに応じて、図示しないリーン制御用のマップを検索することにより、目標新気量Ｍ＿ＣＭＤを算出する。そして、新気量Ｍ＿ＡＣＴがこの目標新気量Ｍ＿ＣＭＤに収束するように、所定のフィードバック制御アルゴリズムにより、ＥＧＲ制御弁１０ｂが制御される。以上のように、リーン制御を実行した後、本処理を終了する。
【００９５】
一方、ステップ６０の判別結果がＹＥＳで、リッチスパイク制御の実行条件が成立しているときには、ステップ６６に進み、エンジン回転数ＮＥおよびアクセル開度ＡＰに応じて、図示しないリッチスパイク制御用のマップを検索することにより、要求トルクＰＭＣＭＤを算出する。このリッチスパイク制御用のマップでは、要求トルクＰＭＣＭＤは、エンジン回転数ＮＥが高いほど、またはアクセル開度ＡＰが大きいほど、より大きい値に設定されている。
【００９６】
ステップ６６に続くステップ６７では、エンジン回転数ＮＥおよび要求トルクＰＭＣＭＤに応じて、図示しないリッチスパイク制御用のマップを検索することにより、燃料噴射量ＱＩＮＪを算出する。このリッチスパイク制御用のマップでは、燃料噴射量ＱＩＮＪは、エンジン回転数ＮＥが高いほど、または要求トルクＰＭＣＭＤが大きいほど、より大きい値に設定されている。
【００９７】
次いで、ステップ６８に進み、エンジン回転数ＮＥおよび燃料噴射量ＱＩＮＪに応じて、図示しないリッチスパイク制御用のマップを検索することにより、燃料噴射終了タイミングφＩＮＪを算出する。その結果、以上のように算出された燃料噴射量ＱＩＮＪおよび燃料噴射終了タイミングφＩＮＪに対応して、燃料が燃料噴射弁４から気筒３ａ内に噴射される。
【００９８】
ステップ６８に続くステップ６９では、以下に述べるように、ＮＯｘ浄化触媒１２に吸着されたＮＯｘを還元するために、リッチスパイク制御処理を実行する。その後、本処理を終了する。
【００９９】
次に、図１０を参照しながら、上記リッチスパイク制御処理について説明する。同図に示すように、この処理では、まず、ステップ７０で、目標空燃比ＡＦ＿ＣＭＤの算出処理を実行する。この目標空燃比ＡＦ＿ＣＭＤの算出処理は、具体的には、図１１に示すように実行される。
【０１００】
まず、ステップ８０で、リッチ設定済みフラグＦ＿ＡＦＲＩＣＨが「１」であるか否かを判別する。この判別結果がＮＯのときには、ステップ８１に進み、補正係数算出済みフラグＦ＿ＫＮＯｘが「１」であるか否かを判別する。
【０１０１】
この判別結果がＮＯのとき、すなわち前回以前のリッチスパイク制御において、スリップＮＯｘが一度も発生していないことで、空燃比補正係数Ｋ＿ＮＯｘが算出されていないときには、ステップ８２で、目標空燃比ＡＦ＿ＣＭＤを所定のリッチスパイク用値ＡＦ＿ＲＩＣＨ（例えば値１４）に設定する。次いで、ステップ８３に進み、それを表すためにリッチ設定済みフラグＦ＿ＡＦＲＩＣＨを「１」に設定した後、本処理を終了する。これにより、次回以降のループにおいて、ステップ８０の判別結果がＹＥＳとなり、その場合には、そのまま本処理を終了する。
【０１０２】
一方、ステップ８１の判別結果がＹＥＳのとき、すなわち前回以前のリッチスパイク制御において、スリップＮＯｘが発生することで、空燃比補正係数Ｋ＿ＮＯｘが算出されているときには、ステップ８４に進み、スリップ補正済みフラグＦ＿ＡＦＳＬＩＰが「１」であるか否かを判別する。
【０１０３】
この判別結果がＮＯのときには、スリップＮＯｘが前回のリッチスパイク制御中に初めて発生したことで、今回のリッチスパイク制御において、空燃比補正係数Ｋ＿ＮＯｘを用いたスリップ補正制御を実行すべきであると判定して、ステップ８５に進み、中間値ＡＦ＿ＭＩＤを下式（１）により算出する。なお、下式（１）のＡＦ＿ＳＴＯは理論空燃比である。
ＡＦ＿ＭＩＤ＝ＡＦ＿ＳＴＯ−（ＡＦ＿ＳＴＯ−ＡＦ＿ＲＩＣＨ）・Ｋ＿ＮＯｘ
……（１）
【０１０４】
次いで、ステップ８６に進み、空燃比ＡＦが中間値ＡＦ＿ＭＩＤ以下であるか否かを判別する。この判別結果がＮＯのときには、ステップ８７に進み、中間値設定済みフラグＦ＿ＡＦＭＩＤ１が「１」であるか否かを判別する。
【０１０５】
この判別結果がＮＯのときには、ステップ８８に進み、目標空燃比ＡＦ＿ＣＭＤを中間値ＡＦ＿ＭＩＤに設定する。次に、ステップ８９で、それを表すために第１中間値設定済みフラグＦ＿ＡＦＭＩＤ１を「１」に設定した後、本処理を終了する。それにより、次回以降のループで、ステップ８７の判別結果がＹＥＳとなり、その場合には、そのまま本処理を終了する。
【０１０６】
一方、ステップ８６の判別結果がＹＥＳで、空燃比ＡＦが中間値ＡＦ＿ＭＩＤ以下まで低下したときには、ステップ９０に進み、スリップ補正制御を実行済みであることを表すために、スリップ補正済みフラグＦ＿ＡＦＳＬＩＰを「１」に設定する。
【０１０７】
次いで、ステップ９１に進み、中間値ＡＦ＿ＭＩＤをその前回値ＡＦ＿ＭＩＤＺとして設定する。次に、前述したように、ステップ８２，８３を実行した後、本処理を終了する。
【０１０８】
一方、ステップ８４の判別結果がＹＥＳのとき、すなわち前回以前のリッチスパイク制御においてスリップ補正制御を実行していたときには、ステップ９２に進み、補正値算出済みフラグＦ＿ＣＯＲＲが「１」であるか否かを判別する。この判別結果がＮＯで、前回のリッチスパイク制御においてスリップＮＯｘが発生していなかったときには、前述したように、ステップ８６以降を実行した後、本処理を終了する。
【０１０９】
一方、ステップ９２の判別結果がＹＥＳで、前回のリッチスパイク制御において、スリップ補正制御を実行していたにもかかわらず、スリップＮＯｘが発生したときには、ステップ９３に進み、第２中間値設定済みフラグＦ＿ＡＦＭＩＤ２が「１」であるか否かを判別する。
【０１１０】
この判別結果がＮＯのときには、ステップ９４に進み、中間値ＡＦ＿ＭＩＤを、その前回値と空燃比補正値の和ＡＦ＿ＭＩＤＺ＋ＡＦ＿ＣＯＲＲに設定する。次いで、それを表すために、ステップ９５で、第２中間値設定済みフラグＦ＿ＡＦＭＩＤ２を「１」に設定する。これにより、次回以降のループにおいて、ステップ９３の判別結果がＹＥＳとなり、その場合には、ステップ９６に進む。
【０１１１】
ステップ９３または９５に続くステップ９６では、空燃比ＡＦが中間値ＡＦ＿ＭＩＤ以下であるか否かを判別する。この判別結果がＮＯのときには、前述したように、ステップ８７以降を実行した後、本処理を終了する。
【０１１２】
一方、ステップ９６の判別結果がＹＥＳのときには、前述したように、ステップ９１，８２，８３を実行した後、本処理を終了する。
【０１１３】
図１０に戻り、ステップ７０の目標空燃比ＡＦ＿ＣＭＤの算出処理を以上のように実行した後、ステップ７１に進み、目標新気量Ｍ＿ＣＭＤを算出する。具体的には、燃料噴射量ＱＩＮＪに目標空燃比ＡＦ＿ＣＭＤを乗算することにより、目標新気量Ｍ＿ＣＭＤを算出する。
【０１１４】
次いで、ステップ７２に進み、目標新気量Ｍ＿ＣＭＤおよびエンジン回転数ＮＥに応じて、図示しないリッチスパイク制御用のマップを検索することにより、目標スロットル弁開度ＴＨ＿ＣＭＤを算出する。それにより、目標スロットル弁開度ＴＨ＿ＣＭＤに対応する制御入力がＴＨアクチュエータ８ｂに入力され、スロットル弁８ａが全開状態よりも絞られた状態に制御される。
【０１１５】
ステップ７２に続くステップ７３では、目標新気量Ｍ＿ＣＭＤおよびエンジン回転数ＮＥに応じて、図示しないリッチスパイク制御用のマップを検索することにより、可変ベーン７ｃの目標開度ＶＡＮＥ＿ＣＭＤを算出する。それにより、この目標開度ＶＡＮＥ＿ＣＭＤに対応する制御入力がベーンアクチュエータ７ｄに入力されることで、過給圧が制御される。
【０１１６】
次に、ステップ７４で、目標新気量Ｍ＿ＣＭＤおよびエンジン回転数ＮＥに応じて、図示しないリッチスパイク制御用のマップを検索することにより、スワール弁９ａの目標スワール開度ＳＷ＿ＣＭＤを算出する。それにより、この目標スワール開度ＳＷ＿ＣＭＤに対応する制御入力がスワールアクチュエータ９ｂに入力されることで、スワールが制御される。
【０１１７】
次いで、ステップ７５に進み、以下に述べるように、目標ＥＧＲ量ＥＧＲ＿ＣＭＤの算出処理を実行した後、本処理を終了する。
【０１１８】
次に、図１２を参照しながら、目標ＥＧＲ量ＥＧＲ＿ＣＭＤの算出処理について説明する。同図に示すように、この処理では、まず、ステップ１００で、基本値ＥＧＲ＿ＦＦを、目標新気量Ｍ＿ＣＭＤおよびエンジン回転数ＮＥに応じて、図示しないマップを検索することにより算出する。
【０１１９】
次に、ステップ１０１に進み、補正値ＥＧＲ＿ＦＢを算出する。この補正値ＥＧＲ＿ＦＢの算出は、具体的には、図１３に示すように、ＰＩＤ制御アルゴリズムを適用した手法により実行される。
【０１２０】
まず、ステップ１１０で、前述した第１および第２中間値設定済みフラグＦ＿ＡＦＭＩＤ１，Ｆ＿ＡＦＭＩＤ２がいずれも「０」であるか否かを判別する。この判別結果がＹＥＳのとき、すなわち今回のリッチスパイク制御においてスリップ補正制御を実行していないときには、ステップ１１１に進み、Ｐ項ゲインＫＰを所定のハイゲイン値ＫＰ１に、Ｉ項ゲインＫＩを所定のハイゲイン値ＫＩ１に、Ｄ項ゲインＫＤを所定のハイゲイン値ＫＤ１にそれぞれ設定する。なお、これらの３つのハイゲイン値ＫＰ１，ＫＩ１，ＫＤ１はいずれも正の所定値に設定されている。
【０１２１】
一方、ステップ１１０の判別結果がＮＯのとき、すなわち今回のリッチスパイク制御においてスリップ補正制御を実行中で、目標空燃比ＡＦ＿ＣＭＤが中間値ＡＦ＿ＭＩＤに設定されているときには、ステップ１１２に進み、リッチ設定済みフラグＦ＿ＡＦＲＩＣＨが「０」であるか否かを判別する。この判別結果がＹＥＳのときには、上述したステップ１１１を実行する。
【０１２２】
一方、ステップ１１２の判別結果がＮＯのとき、すなわち、スリップ補正制御を実行中で、目標空燃比ＡＦ＿ＣＭＤがリッチスパイク用値ＡＦ＿ＲＩＣＨに設定されているときには、ステップ１１３に進み、リッチスパイク用値と空燃比との偏差の絶対値｜ＡＦ＿ＲＩＣＨ−ＡＦ｜が所定値ＤＡＦ１より小さいか否かを判別する。この所定値ＤＡＦ１は、値０に近い正の値に設定されている。
【０１２３】
この判別結果がＮＯで、空燃比ＡＦがリッチスパイク用値ＡＦ＿ＲＩＣＨ付近まで収束していないときには、ステップ１１４に進み、３つのローゲイン値ＫＰ２，ＫＩ２，ＫＤ２を以下に述べる手法により算出する。
【０１２４】
まず、Ｆ＿ＫＮＯｘ＝１＆Ｆ＿ＡＦＳＬＩＰ＝０のとき、すなわち前回のリッチスパイク制御の際、スリップ補正制御を実行していない状態で、スリップＮＯｘが発生したときには、空燃比補正係数Ｋ＿ＮＯｘに応じて、図示しない３つのマップを検索することにより、３つのローゲイン値ＫＰ２，ＫＩ２，ＫＤ２をそれぞれ算出する。
【０１２５】
これらのマップでは、３つのローゲイン値ＫＰ２，ＫＩ２，ＫＤ２はそれぞれ、前述した３つのハイゲイン値ＫＰ１，ＫＩ１，ＫＤ１よりもかなり小さい値に設定されているとともに、空燃比補正係数Ｋ＿ＮＯｘが小さいほど、すなわちスリップＮＯｘの発生度合が大きいほど、より小さい値になるように設定されている。これは、スリップＮＯｘの発生度合が大きいほど、スリップ補正制御において、空燃比ＡＦを、その変化速度がより小さい値になるように制御することで、スリップＮＯｘの発生を抑制するためである。
【０１２６】
また、Ｆ＿ＫＮＯｘ＝１＆Ｆ＿ＡＦＳＬＩＰ＝１＆Ｆ＿ＣＯＲＲ＝０のとき、すなわち前回のリッチスパイク制御の際、スリップ補正制御を実行していた状態で、スリップＮＯｘが発生しなかったときには、前回以前のスリップ補正制御で算出された３つのローゲイン値ＫＰ２，ＫＩ２，ＫＤ２をそのまま用いる。
【０１２７】
さらに、Ｆ＿ＫＮＯｘ＝１＆Ｆ＿ＡＦＳＬＩＰ＝１＆Ｆ＿ＣＯＲＲ＝１のとき、すなわち、前回のリッチスパイク制御において、スリップ補正制御を実行していたにもかかわらず、スリップＮＯｘが発生したときには、空燃比補正値ＡＦ＿ＣＯＲＲに応じて、図示しない３つのマップを検索することにより、３つのローゲイン値ＫＰ２，ＫＩ２，ＫＤ２をそれぞれ算出する。
【０１２８】
これらのマップでは、３つのローゲイン値ＫＰ２，ＫＩ２，ＫＤ２はそれぞれ、前述した３つのハイゲイン値ＫＰ１，ＫＩ１，ＫＤ１よりもかなり小さい値に設定されているとともに、空燃比補正値ＡＦ＿ＣＯＲＲが大きいほど、すなわちスリップＮＯｘの発生度合が大きいほど、より小さい値になるように設定されている。これは、前述したように、スリップＮＯｘの発生度合が大きいほど、スリップ補正制御において、空燃比ＡＦを、その変化速度がより小さい値になるように制御することで、スリップＮＯｘの発生を抑制するためである。
【０１２９】
次いで、ステップ１１５に進み、Ｐ項ゲインＫＰを上記ローゲイン値ＫＰ２に、Ｉ項ゲインＫＩを上記ローゲイン値ＫＩ２に、Ｄ項ゲインＫＤを上記ローゲイン値ＫＤ２にそれぞれ設定する。
【０１３０】
一方、ステップ１１３の判別結果がＹＥＳで、ＡＦ≒ＡＦ＿ＲＩＣＨであるときには、前述したステップ１１１を実行する。
【０１３１】
ステップ１１１または１１５に続くステップ１１６では、ＲＡＭに記憶されている新気量偏差ＤＭおよびＩ項積分値ＳＵＭＩの値をそれぞれ、新気量偏差の前回値ＤＭＺおよびＩ項積分値の前回値ＳＵＭＩＺとして設定する。その後、ステップ１１７で、新気量偏差ＤＭを、新気量と目標新気量との偏差（Ｍ＿ＡＣＴ−Ｍ＿ＣＭＤ）に設定する。
【０１３２】
次に、ステップ１１８で、比例項ＦＢＰを、Ｐ項ゲインと新気量偏差の積ＫＰ・ＤＭに設定する。その後、ステップ１１９に進み、積分項ＦＢＩを、Ｉ項ゲインと新気量偏差の積ＫＩ・ＤＭに設定する。
【０１３３】
次いで、ステップ１２０に進み、Ｉ項積分値ＳＵＭＩを、その前回値と積分項の和ＳＵＭＩＺ＋ＦＢＩに設定する。その後、ステップ１２１で、微分項ＦＢＤを、新気量偏差の今回値と前回値との偏差にＤ項ゲインを乗算した値ＫＤ（ＤＭ−ＤＭＺ）に設定する。
【０１３４】
次に、ステップ１２２に進み、補正値ＥＧＲ＿ＦＢを、比例項とＩ項積分値と微分項との和（ＦＢＰ＋ＳＵＭＩ＋ＦＢＤ）に設定した後、本処理を終了する。
【０１３５】
以上のように、この補正値ＥＧＲ＿ＦＢの算出処理では、スリップ補正制御中、目標空燃比ＡＦ＿ＣＭＤが中間値ＡＦ＿ＭＩＤに設定されているときには、３つのフィードバックゲインＫＰ，ＫＩ，ＫＤが所定のハイゲイン値ＫＰ１，ＫＩ１，ＫＤ１に設定されるので、空燃比ＡＦを中間値ＡＦ＿ＭＩＤまで迅速に収束させることができる。さらに、目標空燃比ＡＦ＿ＣＭＤが中間値ＡＦ＿ＭＩＤからリッチスパイク用値ＡＦ＿ＲＩＣＨに切り換わったときには、３つのフィードバックゲインＫＰ，ＫＩ，ＫＤが、ハイゲイン値ＫＰ１，ＫＩ１，ＫＤ１よりもかなり小さいローゲイン値ＫＰ２，ＫＩ２，ＫＤ２に設定されるとともに、これらのローゲイン値ＫＰ２，ＫＩ２，ＫＤ２が空燃比補正係数Ｋ＿ＮＯｘまたは空燃比補正値ＡＦ＿ＣＯＲＲに応じて算出されるので、空燃比ＡＦを、スリップＮＯｘの発生度合に応じて、リッチスパイク用値ＡＦ＿ＲＩＣＨまで緩やかに収束させることができる。
【０１３６】
特に、スリップＮＯｘの発生度合が大きいほど、空燃比ＡＦの変化速度がより小さい値になるように、空燃比ＡＦが制御されるので、空燃比ＡＦをリーン制御中の値からリッチスパイク用値ＡＦ＿ＲＩＣＨまで一気に変化させる場合と比べて、スリップＮＯｘの発生をより確実に抑制することができる。さらに、空燃比ＡＦがリッチスパイク用値ＡＦ＿ＲＩＣＨに収束した以降は、３つのフィードバックゲインＫＰ，ＫＩ，ＫＤが所定のハイゲイン値ＫＰ１，ＫＩ１，ＫＤ１に設定されるので、空燃比ＡＦをリッチスパイク用値ＡＦ＿ＲＩＣＨに確実に保持することができる。
【０１３７】
図１２に戻り、ステップ１０１で補正値ＥＧＲ＿ＦＢの算出処理を以上のように実行した後、ステップ１０２に進み、目標ＥＧＲ量ＥＧＲ＿ＣＭＤを、基本値と補正値の和（ＥＧＲ＿ＦＦ＋ＥＧＲ＿ＦＢ）に設定する。
【０１３８】
次いで、ステップ１０３で、目標ＥＧＲ量ＥＧＲ＿ＣＭＤが所定の下限値ＥＧＲ＿ＬＩＭＩＴ＿Ｌ以下であるか否かを判別する。この判別結果がＮＯのときには、ステップ１０４に進み、目標ＥＧＲ量ＥＧＲ＿ＣＭＤが所定の上限値ＥＧＲ＿ＬＩＭＩＴ＿Ｈ以上であるか否かを判別する。この判別結果がＮＯで、ＥＧＲ＿ＬＩＭＩＴ＿Ｌ＜ＥＧＲ＿ＣＭＤ＜ＥＧＲ＿ＬＩＭＩＴ＿Ｈであるときには、そのまま本処理を終了する。
【０１３９】
一方、ステップ１０４の判別結果がＹＥＳで、ＥＧＲ＿ＣＭＤ≧ＥＧＲ＿ＬＩＭＩＴ＿Ｈであるときには、ステップ１０５に進み、目標ＥＧＲ量ＥＧＲ＿ＣＭＤを所定の上限値ＥＧＲ＿ＬＩＭＩＴ＿Ｈに設定した後、本処理を終了する。
【０１４０】
一方、ステップ１０３の判別結果がＹＥＳで、ＥＧＲ＿ＣＭＤ≦ＥＧＲ＿ＬＩＭＩＴ＿Ｌであるときには、ステップ１０６に進み、目標ＥＧＲ量ＥＧＲ＿ＣＭＤを所定の下限値ＥＧＲ＿ＬＩＭＩＴ＿Ｌに設定した後、本処理を終了する。以上のように、目標ＥＧＲ量ＥＧＲ＿ＣＭＤが算出されることにより、新気量Ｍ＿ＡＣＴが目標新気量Ｍ＿ＣＭＤに収束するように、フィードバック制御される。その結果、空燃比ＡＦが目標空燃比ＡＦ＿ＣＭＤに収束するように、フィードバック制御される。
【０１４１】
次に、図１４および１５を参照しながら、以上のような本実施形態の空燃比制御処理を実行した場合の制御結果について説明する。図１４は、空燃比制御の結果例を示しており、図１５は、理解の容易化のために、図１４におけるＮＯｘ濃度ＣＮＯｘの曲線の一部を拡大したものである。
【０１４２】
同図１４に示す制御結果例では、リッチスパイク制御の実行条件が成立し、Ｆ＿ＲＩＣＨ＝１が成立した時点（時刻ｔ１）で、Ｆ＿ＫＮＯｘ＝０であり、ステップ８０，８１の判別結果がいずれもＮＯとなることによって、目標空燃比ＡＦ＿ＣＭＤがリッチスパイク用値ＡＦ＿ＲＩＣＨに設定される。それにより、ハイゲイン値ＫＰ１，ＫＩ１，ＫＤ１を用いたＰＩＤ制御アルゴリズムによって、空燃比ＡＦがリッチスパイク用値ＡＦ＿ＲＩＣＨまで迅速に収束するように制御される。すなわち、リッチスパイク制御が実行される。
【０１４３】
このリッチスパイク制御の開始以降、ＮＯｘ濃度ＣＮＯｘは、時刻ｔ２まで初期値ＳＴ＿ＮＯｘから上昇し続けるとともに、時刻ｔ２以降、低下する。すなわち、スリップＮＯｘが発生することによって、時刻ｔ２でのＮＯｘ濃度ＣＮＯｘが最大値ＭＸ＿ＣＮＯｘとして設定される。そして、時刻ｔ３で、Ｓ＿ＱＲＡ≧Ｓ＿ＱＲＡ２が成立し、ステップ４２の判別結果がＹＥＳとなると、スルー値ＴＨ＿ＣＮＯｘが算出され（ステップ４３）、次いで、スリップ・スルー比Ｒ＿ＳＬＴＨが算出される（ステップ４４）。これに加えて、空燃比補正係数Ｋ＿ＮＯｘが算出されるとともに、補正係数算出済みフラグＦ＿ＫＮＯｘが「１」に設定される（ステップ５２，５３）。
【０１４４】
次いで、時刻ｔ４で、Ｓ＿ＱＲＡ≧Ｓ＿ＱＲＡ１が成立し、ステップ７の判別結果がＹＥＳとなると、リッチ条件フラグＦ＿ＲＩＣＨが「０」に設定されることによって、リッチスパイク制御からリーン制御に切り換えられる。
【０１４５】
そして、リーン制御中、リッチスパイク制御の実行条件が成立し、Ｆ＿ＲＩＣＨ＝１が成立した時点（時刻ｔ５）では、Ｆ＿ＫＮＯｘ＝１が成立しており、ステップ８１の判別結果がＹＥＳとなることで、それ以降、スリップ補正制御が実行される。すなわち、中間値ＡＦ＿ＭＩＤが空燃比補正係数Ｋ＿ＮＯｘに基づいて算出され、目標空燃比ＡＦ＿ＣＭＤが中間値ＡＦ＿ＭＩＤに設定される（ステップ８５，８８）とともに、空燃比ＡＦがＰＩＤ制御アルゴリズムにより目標空燃比ＡＦ＿ＣＭＤに収束するように制御される。
【０１４６】
その際、目標空燃比ＡＦ＿ＣＭＤがリッチスパイク用値ＡＦ＿ＲＩＣＨに設定されるまでの間は、Ｆ＿ＡＦＭＩＤ１＝１＆Ｆ＿ＡＦＲＩＣＨ＝０が成立することで、３つのフィードバックゲインＫＰ，ＫＩ，ＫＤが所定のハイゲイン値ＫＰ１，ＫＩ１，ＫＤ１に設定される（ステップ１１２，１１１）。それにより、空燃比ＡＦは中間値ＡＦ＿ＭＩＤまで迅速に収束するように制御されるとともに、ＡＦ≦ＡＦ＿ＭＩＤが成立した以降、Ｆ＿ＡＦＲＩＣＨ＝１となることで、３つのフィードバックゲインＫＰ，ＫＩ，ＫＤが、空燃比補正係数Ｋ＿ＮＯｘに応じて算出したローゲイン値ＫＰ２，ＫＩ２，ＫＤ２に設定される（ステップ１１２，１１４，１１５）。それにより、空燃比ＡＦはリッチスパイク用値ＡＦ＿ＲＩＣＨまで緩やかに収束するように制御される。
【０１４７】
その後、ＡＦ≒ＡＦ＿ＲＩＣＨとなった時点（時刻ｔ６）で、３つのフィードバックゲインＫＰ，ＫＩ，ＫＤが所定のハイゲイン値ＫＰ１，ＫＩ１，ＫＤ１に設定され（ステップ１１３，１１１）、それにより、空燃比ＡＦはリッチスパイク用値ＡＦ＿ＲＩＣＨ付近に保持される。次いで、時刻ｔ７で、Ｓ＿ＱＲＡ≧Ｓ＿ＱＲＡ１が成立し、ステップ７の判別結果がＹＥＳとなると、Ｆ＿ＲＩＣＨ＝０が成立することによって、リッチスパイク制御からリーン制御に切り換えられる。
【０１４８】
以上のように、本実施形態の空燃比制御装置１によれば、リッチスパイク制御中にスリップＮＯｘが発生したときには、スリップ値ＳＬＩＰ＿ＣＮＯｘおよびスリップ・スルー比Ｒ＿ＳＬＴＨが算出され、これらのスリップ値ＳＬＩＰ＿ＣＮＯｘおよびスリップ・スルー比Ｒ＿ＳＬＴＨに応じて、空燃比補正係数Ｋ＿ＮＯｘが算出されるとともに、次回のリッチスパイク制御の際、スリップ補正制御が実行される。
【０１４９】
このスリップ補正制御では、まず、目標空燃比ＡＦ＿ＣＭＤが中間値ＡＦ＿ＭＩＤに設定されるとともに、フィードバックゲインＫＰ，ＫＩ，ＫＤがそれぞれ所定のハイゲイン値ＫＰ１，ＫＩ１，ＫＤ１に設定されることにより、空燃比ＡＦが中間値ＡＦ＿ＭＩＤまで迅速に収束するように制御される。そして、空燃比ＡＦが中間値ＡＦ＿ＭＩＤまで収束した以降は、目標空燃比ＡＦ＿ＣＭＤがリッチスパイク用値ＡＦ＿ＲＩＣＨに設定されるとともに、フィードバックゲインＫＰ，ＫＩ，ＫＤがそれぞれ、ハイゲイン値ＫＰ１，ＫＩ１，ＫＤ１よりもかなり小さいローゲイン値ＫＰ２，ＫＩ２，ＫＤ２に設定されることにより、空燃比ＡＦがリッチスパイク用値ＡＦ＿ＲＩＣＨまで緩やかに収束するように制御される。このように、空燃比ＡＦをリーン側からリッチ側に切り換える際、空燃比ＡＦは、その変化速度が２段階に切り換わるように制御されるので、空燃比ＡＦをリッチスパイク用値ＡＦ＿ＲＩＣＨまで一気に変化させる場合と異なり、空燃比ＡＦを、その変化速度が全体としてより小さくなるようにきめ細かく制御できることで、スリップＮＯｘの発生を抑制しながら、ＮＯｘ浄化触媒のＮＯｘ捕捉能力を回復させることができる。
【０１５０】
すなわち、リッチスパイク制御を実行する際の空燃比ＡＦの変化速度を変えるだけで、スリップＮＯｘを抑制できるので、リーン制御の実行時間を変える従来の場合と異なり、ＮＯｘ浄化触媒１２が劣化したときでも、リッチスパイク制御の実行頻度が増大するのを回避でき、その分、燃費を向上させることができる。
【０１５１】
さらに、中間値ＡＦ＿ＭＩＤの算出に用いるスリップ値ＳＬＩＰ＿ＣＮＯｘおよびスリップ・スルー比Ｒ＿ＳＬＴＨがいずれも、ＮＯｘ浄化触媒１２の下流側の排ガス中のＮＯｘ濃度のみに基づいて算出されるので、ＮＯｘ浄化触媒の下流側のＮＯｘ濃度と上流側のＮＯｘ濃度との偏差を用いる従来の場合と異なり、還元剤としての未燃燃料を含む排ガスおよびＮＯｘ浄化触媒１２におけるＮＯｘ浄化能力が、スリップＮＯｘの判定結果に影響を及ぼすのを回避でき、スリップＮＯｘの発生度合の判定精度を向上させることができる。その結果、スリップＮＯｘをより確実に抑制できることで、排ガス特性を向上させることができる。
【０１５２】
また、スリップ値ＳＬＩＰ＿ＣＮＯｘが大きいほど、空燃比補正係数Ｋ＿ＮＯｘがより小さい値に設定されることにより、中間値ＡＦ＿ＭＩＤがより理論空燃比側の値として算出されるとともに、ローゲイン値ＫＰ２，ＫＩ２，ＫＤ２がより小さい値として算出される。その結果、スリップＮＯｘの発生度合が大きいほど、リッチスパイク制御開始からリッチスパイク用値ＡＦ＿ＲＩＣＨに達するまでの間の空燃比ＡＦの変化速度がより小さくなるように、空燃比ＡＦが制御されるので、スリップＮＯｘの発生をより確実に抑制できる。
【０１５３】
これに加えて、スリップ値ＳＬＩＰ＿ＣＮＯｘが、リッチスパイク制御の開始後に検出されたＮＯｘ濃度の最大値ＭＸ＿ＣＮＯｘと、切換開始時に検出されたＮＯｘ濃度の初期値ＳＴ＿ＣＮＯｘとの偏差として算出されるので、前述したように、ＮＯｘ浄化触媒の下流側のＮＯｘ濃度と上流側のＮＯｘ濃度との偏差を用いる従来の場合と異なり、還元剤としての未燃燃料を含む排ガスおよびＮＯｘ浄化触媒におけるＮＯｘ浄化能力が、スリップＮＯｘの判定に影響を及ぼすのを回避でき、スリップＮＯｘの発生度合の判定精度を向上させることができる。
【０１５４】
さらに、空燃比補正係数Ｋ＿ＮＯｘが、スリップ値ＳＬＩＰ＿ＣＮＯｘに加えて、スリップ・スルー比Ｒ＿ＳＬＴＨに応じて算出されるので、ＮＯｘの還元がほぼ終了した時点での、ＮＯｘ浄化触媒１２から排出されるＮＯｘの濃度ＣＮＯｘすなわちエンジン３の運転状態を反映させながら、空燃比ＡＦの変化速度を決定することができる。それにより、スリップＮＯｘの発生をより一層、確実に抑制することができる。同じ理由により、ＮＯｘの還元がほぼ終了した時点でＮＯｘ浄化触媒１２から排出されるＮＯｘによる排ガス特性への影響を加味しながら、空燃比ＡＦの変化速度を決定することができる。それにより、排ガス特性をさらに向上させることができる。
【０１５５】
これに加えて、リッチスパイク制御の際、スリップ補正制御を実行していたにもかかわらず、ＮＯｘ浄化触媒１２の劣化などに起因してスリップＮＯｘが発生した場合には、スリップ値ＳＬＩＰ＿ＣＮＯｘおよびスリップ・スルー比Ｒ＿ＳＬＴＨに応じて、空燃比補正値ＡＦ＿ＣＯＲＲが算出され、次回のリッチスパイク制御でのスリップ補正制御の際、この空燃比補正値ＡＦ＿ＣＯＲＲを用いて、中間値ＡＦ＿ＭＩＤがより理論空燃比側の値に補正されるとともに、空燃比補正値ＡＦ＿ＣＯＲＲに応じて、ローゲイン値ＫＰ２，ＫＩ２，ＫＤ２が算出される。それにより、スリップＮＯｘの発生度合が大きいほど、次回のスリップ補正制御の際、リッチスパイク制御開始からリッチスパイク用値ＡＦ＿ＲＩＣＨに達するまでの間の空燃比ＡＦの変化速度がより小さくなるように、空燃比ＡＦが制御されるので、スリップＮＯｘの発生をより確実に抑制できる。
【０１５６】
また、空燃比補正値ＡＦ＿ＣＯＲＲが、空燃比補正係数Ｋ＿ＮＯｘと同様に、スリップ値ＳＬＩＰ＿ＣＮＯｘおよびスリップ・スルー比Ｒ＿ＳＬＴＨに応じて算出されるので、空燃比補正係数Ｋ＿ＮＯｘを用いた場合と同様の、前述した作用効果を得ることができる。
【０１５７】
なお、実施形態は、スリップ補正制御の際、空燃比ＡＦを、中間値ＡＦ＿ＭＩＤまでの変化速度が大きくなるように制御し、中間値ＡＦ＿ＭＩＤからリッチスパイク用値ＡＦ＿ＲＩＣＨまでの変化速度がより小さくなるように制御した例であるが、本願発明におけるスリップＮＯｘを抑制するための空燃比制御の手法はこれに限らず、空燃比ＡＦを、その変化速度が複数の段階で切り換わるように制御することによって、リッチスパイク用値ＡＦ＿ＲＩＣＨへの変化速度が全体としてより小さくなるように制御し、それにより、スリップＮＯｘを抑制できる制御手法であればよい。
【０１５８】
例えば、図１６に示すように、スリップ補正制御の際、空燃比ＡＦを、中間値ＡＦ＿ＭＩＤまでの変化速度が比較的、小さくなるように制御し、中間値ＡＦ＿ＭＩＤからリッチスパイク用値ＡＦ＿ＲＩＣＨまでの変化速度がより大きくなるように制御してもよい。また、図１７に示すように、空燃比ＡＦの変化速度が３段階に変化するように制御してもよい。さらに、図１８に示すように、空燃比ＡＦが階段状に多段階で変化するように制御することで、リッチスパイク用値ＡＦ＿ＲＩＣＨへの変化速度が全体として小さくなるように構成してもよい。
【０１５９】
また、実施形態は、スリップ補正制御の際、空燃比ＡＦをフィードバック制御した例であるが、本願発明におけるスリップＮＯｘを抑制するために空燃比を制御する際に用いる制御アルゴリズムはこれに限らないことは言うまでもない。例えば、リーン制御中の値から中間値ＡＦ＿ＭＩＤまでは、フィードフォワード制御アルゴリズムにより、空燃比ＡＦを迅速に制御し、それ以降は、フィードバック制御アルゴリズムにより、空燃比ＡＦをリッチスパイク用値ＡＦ＿ＲＩＣＨまで緩やかに収束させるように制御してもよい。
【０１６０】
一方、上記とは逆に、リーン制御中の値から中間値ＡＦ＿ＭＩＤまでは、空燃比ＡＦをフィードバック制御アルゴリズムにより迅速に制御し、それ以降は、フィードフォワード制御アルゴリズムにより、リッチスパイク用値ＡＦ＿ＲＩＣＨまで緩やかに制御してもよい。この場合には、目標空燃比ＡＦ＿ＣＭＤを、中間値ＡＦ＿ＭＩＤからリッチスパイク用値ＡＦ＿ＲＩＣＨまで漸減するように設定すればよい。さらに、空燃比ＡＦを、フィードフォワード制御アルゴリズムにより、リーン制御中の値からリッチスパイク用値ＡＦ＿ＲＩＣＨまで制御してもよい。この場合にも、目標空燃比ＡＦ＿ＣＭＤを、中間値ＡＦ＿ＭＩＤからリッチスパイク用値ＡＦ＿ＲＩＣＨまで漸減するように設定すればよい。
【０１６１】
また、実施形態は、スリップＮＯｘパラメータとしてのスリップ値ＳＬＩＰ＿ＣＮＯｘを、ＮＯｘ濃度の最大値ＭＸ＿ＣＮＯｘと、切換開始時に検出されたＮＯｘ濃度の初期値ＳＴ＿ＣＮＯｘとの偏差として算出した例であるが、本願発明のスリップＮＯｘパラメータはこれに限らず、スリップＮＯｘの発生度合を表すものであればよい。
【０１６２】
例えば、スリップＮＯｘパラメータとして、リッチスパイク制御の開始から開始後の所定タイミング（例えば、実施形態の図１４の時刻ｔ２、ｔ３またはｔ４のタイミング）までの間におけるＮＯｘ濃度ＣＮＯｘの平均値を用いてもよい。このように構成した場合には、以下に述べるような作用効果を得ることができる。すなわち、リッチスパイク制御を実行した場合、制御開始以降、スリップＮＯｘの発生状態としては、ＮＯｘ濃度が一時的なピークを示すように変化する場合が一般的であるが、それ以外にも、例えばスリップＮＯｘ量が少ないときなどには、ＮＯｘ濃度がアップダウンを繰り返すことなどがあり、多様な変化パターンが存在する。したがって、上記のように、ＮＯｘ濃度ＣＮＯｘの平均値をスリップＮＯｘパラメータとして用いることにより、ＮＯｘ濃度ＣＮＯｘがどのような変化パターンで変化しても、その影響を受けることなく、スリップＮＯｘパラメータをスリップＮＯｘの発生度合を適切に表す値として算出でき、それにより、スリップＮＯｘの発生度合の判定精度をさらに向上させることができる。
【０１６３】
また、スリップＮＯｘパラメータとして、リッチスパイク制御の開始から開始後の所定タイミング（例えば、実施形態の図１４の時刻ｔ２、ｔ３またはｔ４のタイミング）までの間において、ＮＯｘ浄化触媒１２から排出された総ＮＯｘ量を用いてもよい。例えば、この所定タイミングを図１４の時刻ｔ４のタイミングとした場合、総ＮＯｘ量は、ＮＯｘ浄化触媒１２における排ガスの空間速度と、図１４の時刻ｔ１〜時刻ｔ４までの間におけるＮＯｘ濃度ＣＮＯｘの平均値とに基づいて算出される。このように構成した場合、上述したように、ＮＯｘ濃度ＣＮＯｘがどのような変化パターンで変化しても、その影響を受けることなく、スリップＮＯｘパラメータをスリップＮＯｘの発生度合を適切に表す値として算出でき、それにより、スリップＮＯｘの発生度合の判定精度をさらに向上させることができる。
【０１６４】
さらに、実施形態は、スリップＮＯｘパラメータとしてのスリップ値ＳＬＩＰ＿ＣＮＯｘと、運転状態パラメータとしてのスリップ・スルー比Ｒ＿ＳＬＴＨとに応じて、図７のマップを検索することにより、空燃比ＡＦの変化速度を決定する空燃比補正係数Ｋ＿ＮＯｘを算出した例であるが、本願発明の空燃比ＡＦの変化速度を決定する手法はこれに限らず、スリップＮＯｘパラメータに加えて、リッチスパイク制御中のエンジン３の運転状態を表す運転状態パラメータに応じて、空燃比ＡＦの変化速度を決定する手法であればよい。
【０１６５】
例えば、運転状態パラメータとして、スリップ・スルー比Ｒ＿ＳＬＴＨに代えて、図１４の時刻ｔ１〜時刻ｔ４までの間にＮＯｘ浄化触媒１２に供給された排ガスの空間速度の積算値を用いてもよい。すなわち、空燃比補正係数Ｋ＿ＮＯｘを、空間速度の積算値およびスリップ値ＳＬＩＰ＿ＣＮＯｘに応じて、マップ検索することにより算出してもよい。このように構成した場合、図１４の時刻ｔ１〜時刻ｔ４までの間にＮＯｘ浄化触媒１２から排出された総ＮＯｘ量を反映させながら、空燃比ＡＦの変化速度を決定することができる。それにより、排ガス特性をさらに向上させることができる。
【０１６６】
また、実施形態は、スリップ補正制御において、空燃比ＡＦを中間値ＡＦ＿ＭＩＤからリッチスパイク用値ＡＦ＿ＲＩＣＨまでフィードバック制御する際、そのフィードバックゲインＫＰ，ＫＩ，ＫＤをそれぞれ、空燃比補正係数Ｋ＿ＮＯｘまたは空燃比補正値ＡＦ＿ＣＯＲＲに応じてマップ検索したローゲイン値ＫＰ２，ＫＩ２，ＫＤ２に設定した例であるが、フィードバックゲインＫＰ，ＫＩ，ＫＤをそれぞれ、所定値に設定してもよい。
【０１６７】
さらに、実施形態は、空燃比補正係数Ｋ＿ＮＯｘを用いたスリップ補正制御の実行中、スリップＮＯｘが発生したときには、空燃比補正値ＡＦ＿ＣＯＲＲを算出し、これを用いて、空燃比ＡＦを、その変化速度がより小さな値になるように制御した例であるが、空燃比補正係数Ｋ＿ＮＯｘを用いたスリップ補正制御の実行中、スリップＮＯｘが発生したときには、スリップＮＯｘの発生度合に応じて、空燃比補正係数Ｋ＿ＮＯｘ自体を補正することにより、空燃比ＡＦを、その変化速度がより小さな値になるように制御してもよい。
【０１６８】
一方、実施形態は、スリップ・スルー比Ｒ＿ＳＬＴＨの算出に用いるスルー値ＴＨ＿ＣＮＯｘを、Ｓ＿ＱＲＡ≧ＳＱＲＡ２が成立したタイミングでのＮＯｘ濃度ＣＮＯｘとして算出した例であるが、スルー値ＴＨ＿ＣＮＯｘを、リッチスパイク制御開始後、所定時間が経過したタイミングで検出されたＮＯｘ濃度ＣＮＯｘとして算出してもよく、また、そのタイミングでのエンジン３の運転状態（例えばＮＯｘ浄化触媒１２における排ガスの空間速度）に応じて推定した値として算出してもよい。
【０１６９】
また、実施形態は、リッチスパイク制御の実行中、スリップＮＯｘが発生したときには、次回のリッチスパイク制御でのスリップ補正制御の際、空燃比ＡＦの変化速度が２段階で切り換わるように制御した例であるが、本願発明の空燃比の制御手法はこれに限らず、スリップＮＯｘパラメータに応じて、空燃比のリーン側からリッチ側への変化速度を決定するものであればよい。例えば、リッチスパイク制御でのスリップ補正制御の際、空燃比ＡＦのリーン側からリッチ側への変化速度が一定勾配になるように制御するとともに、その勾配を、スリップＮＯｘパラメータとしてのスリップ値ＳＬＩＰ＿ＣＮＯｘに応じて、決定してもよい。
【図面の簡単な説明】
【０１７０】
【図１】本願発明の一実施形態に係る空燃比制御装置を適用した内燃機関の概略構成を模式的に示す図である。
【図２】空燃比制御装置の概略構成を示すブロック図である。
【図３】リッチスパイク制御の実行条件判定処理を示すフローチャートである。
【図４】スリップ値ＳＬＩＰ＿ＣＮＯｘの算出処理を示すフローチャートである。
【図５】スリップ・スルー比ＲＡＴＩＯの算出処理を示すフローチャートである。
【図６】空燃比補正係数Ｋ＿ＮＯｘおよび空燃比補正値ＡＦ＿ＣＯＲＲの算出処理を示すフローチャートである。
【図７】空燃比補正係数Ｋ＿ＮＯｘの算出に用いるマップの一例を示す図である。
【図８】空燃比補正値ＡＦ＿ＣＯＲＲの算出に用いるマップの一例を示す図である。
【図９】空燃比制御処理を示すフローチャートである。
【図１０】リッチスパイク制御処理を示すフローチャートである。
【図１１】目標空燃比ＡＦ＿ＣＭＤの算出処理を示すフローチャートである。
【図１２】目標ＥＧＲ量ＥＧＲ＿ＣＭＤの算出処理を示すフローチャートである。
【図１３】補正値ＥＧＲ＿ＦＢの算出処理を示すフローチャートである。
【図１４】空燃比制御の結果例を示すタイミングチャートである。
【図１５】図１４のタイミングチャートの一部を拡大した図である。
【図１６】スリップ補正制御処理の変形例の制御結果を示すタイミングチャートである。
【図１７】スリップ補正制御処理の他の変形例の制御結果を示すタイミングチャートである。
【図１８】スリップ補正制御処理のさらに他の変形例の制御結果を示すタイミングチャートである。
【符号の説明】
【０１７１】
１  空燃比制御装置
２  ＥＣＵ（空燃比制御手段、スリップＮＯｘパラメータ算出手段）
３  内燃機関
１２  ＮＯｘ浄化触媒
２３  ＮＯｘセンサ（ＮＯｘ濃度検出手段）
ＡＦ  混合気の空燃比
ＣＮＯｘ  ＮＯｘ浄化触媒よりも下流側の排ガス中のＮＯｘ濃度
ＳＴ＿ＣＮＯｘ  初期値（切換開始時に検出されたＮＯｘ濃度）
ＭＸ＿ＣＮＯｘ  最大値（切換後に検出されたＮＯｘ濃度の最大値）
ＴＨ＿ＣＮＯｘ  スルー値（空燃比のリッチ側への切換後の、ＮＯｘ浄化触媒におけ るＮＯｘ還元動作が終了していると推定されるタイミングで検出さ                    れたＮＯｘ濃度）
ＳＬＩＰ＿ＣＮＯｘ  スリップ値（スリップＮＯｘパラメータ）
Ｒ＿ＳＬＴＨ  スリップ・スルー比（スリップＮＯｘ比）
【図１】
0004585971.tif 000002
【図２】
0004585971.tif 000003
【図３】
0004585971.tif 000004
【図４】
0004585971.tif 000005
【図５】
0004585971.tif 000006
【図６】
0004585971.tif 000007
【図７】
0004585971.tif 000008
【図８】
0004585971.tif 000009
【図９】
0004585971.tif 000010
【図１０】
0004585971.tif 000011
【図１１】
0004585971.tif 000012
【図１２】
0004585971.tif 000013
【図１３】
0004585971.tif 000014
【図１４】
0004585971.tif 000015
【図１５】
0004585971.tif 000016
【図１６】
0004585971.tif 000017
【図１７】
0004585971.tif 000018
【図１８】
0004585971.tif 000019