以下、図面を参照しながら、本発明の一実施形態に係る内燃機関の制御装置について説明する。図1は、本実施形態の制御装置を適用した内燃機関(以下「エンジン」という)3の概略構成を示しており、図2は、制御装置1の概略構成を示している。図2に示すように、制御装置1はECU2を備えており、このECU2は、後述するように、エンジン3の運転状態に応じて、吸入空気量制御、燃料噴射制御および点火時期制御処理などの各種の制御処理を実行する。
図1に示すように、エンジン3は、図示しない車両に搭載された直列4気筒型ガソリンエンジンであり、1〜4番気筒#1〜#4(複数の気筒)を備えている(1番気筒#1のみ図示)。このエンジン3のシリンダヘッドには、燃焼室に臨むように、燃料噴射弁4および点火プラグ5が気筒毎に取り付けられており、エンジン運転中、燃料は燃料噴射弁4によって燃焼室内に直接噴射される。すなわち、エンジン3は、筒内噴射式のものである。
この燃料噴射弁4は、図2に示すように、ECU2に接続されており、ECU2によって、その開弁時間である燃料噴射時間と、開弁タイミングおよび閉弁タイミングである噴射時期とが制御される。なお、この燃料噴射弁4の燃料噴射時間は、気筒内に噴射される燃料量すなわち燃料噴射量に相当するので、以下、燃料噴射弁4の燃料噴射時間を燃料噴射量TOUT#iという。ここで、燃料噴射量TOUT#iにおける添字「#i」は、気筒の番号を表す気筒番号値であり(i=1〜4)、例えば、燃料噴射量TOUT#1は、1番気筒#1の燃料噴射量を表している。この点は、後述する目標当量比KCMD#iなどにおいても同様である。
また、点火プラグ5もECU2に接続されており、ECU2から後述する点火時期Ig_log#iに応じたタイミングで高電圧が加えられることで放電し、それによって、燃焼室内の混合気を燃焼させる。
さらに、エンジン3には、クランク角センサ20が設けられている。このクランク角センサ20は、マグネットロータおよびMREピックアップで構成されており、クランクシャフト3aの回転に伴い、いずれもパルス信号であるCRK信号およびTDC信号をECU2に出力する。このCRK信号は、所定クランク角(例えば1゜)毎に1パルスが出力され、ECU2は、このCRK信号に基づき、エンジン3の回転数(以下「エンジン回転数」という)NEを算出する。また、TDC信号は、各気筒のピストンが吸気行程のTDC位置よりも若干、手前の所定のクランク角位置にあることを表す信号であり、所定クランク角毎に1パルスが出力される。
一方、エンジン3の本体には、例えばサーミスタなどで構成された水温センサ21が取り付けられている。この水温センサ21は、エンジン3のシリンダブロック内を循環する冷却水の温度であるエンジン水温TWを検出して、それを表す検出信号を、ECU2に出力する。
また、エンジン3の吸気通路6には、上流側から順に、スロットル弁機構7、スロットル弁開度センサ22および吸気圧センサ23などが設けられている。このスロットル弁機構7は、スロットル弁7aおよびこれを開閉駆動するTHアクチュエータ7bなどを備えている。スロットル弁7aは、吸気通路6の途中に回動自在に設けられており、当該回動に伴う開度の変化によって吸入空気量を変化させる。THアクチュエータ7bは、ECU2に接続されたモータにギヤ機構(いずれも図示せず)を組み合わせたものであり、ECU2からの後述する制御入力U_THによって駆動されることにより、スロットル弁7aの開度(以下「スロットル弁開度」という)THを変化させる。
さらに、スロットル弁開度センサ22は、スロットル弁7aの近傍に配置され、ポテンショメータなどで構成されているとともに、スロットル弁開度THを検出して、その検出信号をECU2に出力する。一方、吸気圧センサ23は、半導体圧力センサなどで構成されており、吸気通路6内の絶対圧である吸気圧PBを検出して、その検出信号をECU2に出力する。
一方、エンジン3の排気通路10には、上流側から順に、LAFセンサ24および触媒11が設けられている。この触媒11は、3元触媒タイプのものであり、その詳細な説明はここでは省略するが、本出願人が特願2008−063327号(以下「先行出願」という)で既に提案済みのものと同様に構成されている。すなわち、触媒11は、先行出願の明細書に記載されているように、セリウム含有酸化物を主成分とし、セリウム含有酸化物にそれぞれ担持されたパラジウムおよび亜鉛を含むタイプのものであり、これらのセリウム含有酸化物とパラジウムと亜鉛との割合(質量%)は、先行出願の明細書中に記載された割合に設定されているとともに、低触媒温度域で一酸化炭素(CO)を浄化する際、触媒11以外の触媒よりも高い浄化率が得られるという特性を備えている。
さらに、排気通路10の触媒11よりも上流側および下流側にはそれぞれ、LAFセンサ24および酸素濃度センサ(図示せず)が設けられている。LAFセンサ24は、ジルコニアおよび白金電極などで構成され、理論空燃比よりもリッチなリッチ領域から極リーン領域までの広範囲な空燃比A/Fの領域において、排気ガス中の酸素濃度をリニアに検出し、それを表す検出信号をECU2に出力する。ECU2は、このLAFセンサ24の検出信号に基づき、排気ガス中の当量比を表す検出当量比KACTを算出する。また、酸素濃度センサは、排気ガス中の酸素濃度を表す検出信号をECU2に出力する。
一方、ECU2には、大気圧センサ25、アクセル開度センサ26、車速センサ27およびイグニッション・スイッチ(以下「IG・SW」という)28が接続されている。この大気圧センサ25は、半導体圧力センサで構成されており、大気圧PAを検出して、それを表す検出信号をECU2に出力する。また、アクセル開度センサ26は、車両の図示しないアクセルペダルの踏み込み量(以下「アクセル開度」という)APを検出して、それを表す検出信号をECU2に出力する。
さらに、車速センサ27は、車両の図示しない車軸に取り付けられており、車両の走行速度(以下「車速」という)VPを検出して、それを表す検出信号をECU2に出力する。これに加えて、IG・SW28は、イグニッションキー(図示せず)操作によりON/OFFされるとともに、そのON/OFF状態を表す信号をECU2に出力する。
一方、ECU2は、CPU、RAM、ROMおよびI/Oインターフェース(いずれも図示せず)などからなるマイクロコンピュータで構成されており、前述した各種のセンサ20〜27の検出信号およびIG・SW28の出力信号などに応じて、エンジン3の運転状態を判別するとともに、運転状態に応じて、以下に述べるように、空燃比制御処理(すなわち吸入空気量制御処理および燃料噴射制御処理)と、点火時期制御処理などを実行する。
特に、触媒11が活性化していない場合、触媒11を迅速に活性化させるために、触媒暖機制御処理が実行される。この触媒暖機制御処理では、後述するように、触媒暖機用の吸入空気量制御処理と、触媒暖機用の燃料噴射制御処理と、触媒暖機用の点火時期制御処理とが実行される。
これに加えて、触媒暖機制御処理の実行中、触媒11の温度が、排ガス中の一酸化炭素を高い割合(例えば50%)で浄化できる所定温度域(例えば180℃以上の温度域)まで上昇したときには、触媒11の昇温速度をさらに高めるために、触媒11に供給される排ガスの空燃比が、リーン側とリッチ側に交互に切り換わるように制御される。なお、以下の説明では、このように、触媒11に供給する排ガスの空燃比をリーン側とリッチ側に交互に切り換える制御処理を「パータベーション制御処理」といい、パータベーション制御処理を含めて触媒暖機制御処理を実行しているときのエンジン3の運転モードを「触媒暖機モード」という。
なお、本実施形態では、ECU2が、活性状態判定手段、温度パラメータ検出手段、空燃比制御手段、吸入空気量制御手段および点火時期制御手段に相当する。
次に、図3を参照しながら、ECU2によって、所定の制御周期ΔTk(例えば10msec)で実行される制御処理について説明する。この処理では、まず、ステップ1(図では「S1」と略す。以下同じ)で、触媒暖機フラグF_FIREONの設定処理を実行する。
この設定処理は、具体的には図4に示すように実行される。同図に示すように、まず、ステップ10で、エンジン始動フラグF_ENGSTARTが「0」であるか否かを判別する。このエンジン始動フラグF_ENGSTARTは、図示しない判定処理において、IG・SW28のON/OFF状態とエンジン回転数NEに基づき、エンジン始動制御中すなわちクランキング中であるか否かを判定することによって設定されるものであり、具体的には、エンジン始動制御中であるときには「1」に、エンジン3を始動済みであるときには「0」にそれぞれ設定される。
ステップ10の判別結果がYESで、エンジン3を始動済みであるときには、ステップ11に進み、アクセル開度APが所定値APREF未満であるか否かを判別する。この所定値APREFは、アクセルペダルが踏まれていないことを判別するためのものであり、アクセルペダルが踏まれていないことを判別可能な値(例えば1゜)に設定されている。
ステップ11の判別結果がYESで、アクセルペダルが踏まれていないときには、ステップ12に進み、車速VPが所定値VPREF未満であるか否かを判別する。この所定値VPREFは、停車中であることを判別するためのものであり、停車中であることを判別可能な値(例えば1km)に設定されている。
ステップ12の判別結果がYESで、停車中であるときには、ステップ13に進み、触媒暖機カウンタの計数値CFIREONを、その前回値CFIREONZと値1の和CFIREONZ+1に設定する。すなわち、触媒暖機カウンタの計数値CFIREONを値1分、インクリメントする。この触媒暖機カウンタは、エンジン始動後における触媒暖機制御の実行時間を計数するためのものである。
次いで、ステップ14に進み、触媒カウンタの計数値CFIREONが所定値CREF未満であるか否かを判別する。この判別結果がYESのときには、触媒11が活性化していないことで、触媒暖機モードを実行すべきであると判定して、ステップ15に進み、それを表すために、触媒暖機フラグF_FIREONを「1」に設定した後、本処理を終了する。
一方、ステップ14の判別結果がNOのときには、触媒11が活性化したと判定して、ステップ16に進み、触媒カウンタの計数値CFIREONを値0にリセットする。次に、ステップ17で、触媒暖機モードではないことを表すために、触媒暖機フラグF_FIREONを「0」に設定した後、本処理を終了する。
さらに、前述したステップ10〜13のいずれかの判別結果がNOのとき、すなわち、エンジン始動制御中のとき、アクセルペダルが踏まれているとき、または車両が走行中であるときには、上述したように、ステップ16,17を実行した後、本処理を終了する。
図3に戻り、ステップ1で、触媒暖機フラグF_FIREONの設定処理を以上のように実行した後、ステップ2に進み、パータベーションフラグF_CATLOFFの設定処理を実行する。この設定処理は、具体的には図5に示すように実行される。同図に示すように、まず、ステップ20で、上述した触媒暖機フラグF_FIREONが「1」であるか否かを判別する。この判別結果がNOで、触媒暖機モード中でないときには、ステップ21で、後述する吸入空気量の積算値(以下「積算吸入空気量」という)QGAIRを値0にリセットした後、本処理を終了する。
一方、ステップ20の判別結果がYESで、触媒暖機モード中であるときには、ステップ22に進み、平均噴射量NTIに応じて、図示しないマップを検索することにより、吸入空気量のマップ値QAIRFIRXを算出する。ここで、平均噴射量NTIは、触媒暖機モード中における全気筒#1〜#4の燃料噴射量TOUT#1〜#4の平均値である。
次に、ステップ23で、大気圧PAに応じて、図示しないマップを検索することにより、補正係数KGAIRPAXを算出する。次いで、ステップ24に進み、吸入空気量QAIRFIRを、吸入空気量のマップ値QAIRFIRXと補正係数KGAIRPAXの積QAIRFIRX・KGAIRPAXに設定する。
ステップ24に続くステップ25で、積算吸入空気量QGAIRを、その前回値QGAIRZと吸入空気量QAIRFIRの和QGAIRZ+QAIRFIRに設定する。なお、本実施形態では、積算吸入空気量QGAIRが温度パラメータに相当する。
次いで、ステップ26に進み、積算吸入空気量QGAIRが所定の判定値QGCAT_LOFFより大きいか否かを判別する。この所定の判定値QGCAT_LOFFは、触媒11の温度がパータベーション制御を実行すべき温度域(例えば180℃以上の領域)に達しているか否かを判定するためのものである。
ステップ26の判別結果がYESのときには、触媒11の温度がパータベーション制御を実行すべき温度域に達していることで、パータベーション制御を実行すべきであると判定して、それを表すために、ステップ27に進み、パータベーションフラグF_CATLOFFを「1」に設定した後、本処理を終了する。
一方、ステップ26の判別結果がNOのときには、パータベーション制御を実行すべきでないと判定して、それを表すために、ステップ28に進み、パータベーションフラグF_CATLOFFを「0」に設定した後、本処理を終了する。
図3に戻り、ステップ2で、パータベーションフラグF_CATLOFFの設定処理を以上のように実行した後、ステップ3に進み、以下に述べるように、吸入空気量制御処理を実行する。その後、本処理を終了する。
次に、図6を参照しながら、上記ステップ3の吸入空気量制御処理について説明する。同図に示すように、この処理では、まず、ステップ30で、前述したエンジン始動フラグF_ENGSTARTが「1」であるか否かを判別する。この判別結果がYESで、エンジン始動制御中のときには、ステップ31に進み、始動用の吸入空気量制御処理を実行する。
具体的には、エンジン水温TWに応じて、図示しないマップを検索することにより、始動用の目標スロットル弁開度THCMDを算出し、この目標スロットル弁開度THCMDに応じて、図示しないマップを検索することにより、THアクチュエータ7bへの制御入力U_THを算出した後、この制御入力U_THによって、THアクチュエータ7bを駆動する。それにより、スロットル弁開度THが目標スロットル弁開度THCMDになるようにフィードフォワード制御されことで、吸入空気量が制御される。ステップ31で、始動用の吸入空気量制御処理を以上のように実行した後、本処理を終了する。
一方、ステップ30の判別結果がNOで、エンジン3を始動済みであるときには、ステップ32に進み、前述した触媒暖機フラグF_FIREONが「1」であるか否かを判別する。この判別結果がYESで、触媒暖機モード中であるときには、ステップ33に進み、触媒暖機用の吸入空気量制御処理を実行する。
この制御処理は、具体的には図7に示すように実行される。同図に示すように、まず、ステップ40で、吸気量換算値IFIREBSを算出する。この吸気量換算値IFIREBSの算出処理は、その具体的な内容はここでは図示しないが、前述した触媒暖機カウンタの計数値CFIREONおよびエンジン水温TWなどに応じて、複数のマップを検索することにより、複数のマップ検索値を算出し、これらの複数のマップ検索値に基づいて算出される。
次いで、ステップ41に進み、吸入空気量の目標値(以下「目標吸気量」という)QAIRCMDXを算出する。この目標吸気量QAIRCMDXは、吸気量換算値IFIREBSに応じて、図示しないマップを検索することによって算出される。
次に、ステップ42で、目標吸気量の積算値(以下「積算目標吸気量」という)QGAIRCMDを、その前回値QGAIRCMDZと目標吸気量QAIRCMDXの和QGAIRCMDZ+QAIRCMDXに設定する。
ステップ42に続くステップ43で、積算吸気量偏差EQFIREを、積算吸入空気量QGAIRと積算目標吸気量QGAIRCMDとの偏差QGAIR−QGAIRCMDに設定する。
次いで、ステップ44に進み、積算吸気量偏差EQFIREに応じて、図示しないマップを検索することにより、開度補正値DTHを算出する。
次に、ステップ45で、目標スロットル弁開度THCMDを、その前回値THCMDZと開度補正値DTHの和THCMDZ+DTHに設定する。
ステップ45に続くステップ46で、目標スロットル弁開度THCMDに応じて、図示しないマップを検索することにより、THアクチュエータ7bへの制御入力U_THを算出する。
次いで、ステップ47に進み、制御入力U_THによって、THアクチュエータ7bを駆動する。それにより、スロットル弁開度THが目標スロットル弁開度THCMDになるようにフィードフォワード制御されることで、吸入空気量が制御される。その後、本処理を終了する。
以上のように、触媒暖機用の吸入空気量制御処理を実行した場合、吸入空気量は、触媒11が活性化しているときの通常のアイドル運転中よりも大きい値に制御される。これは、触媒暖機モード中、後述する点火時期の遅角補正制御に加えて、排ガス量を通常のアイドル運転中よりも増大させることで、排ガスから触媒11に供給される熱量を増大させ、それによって、触媒11の迅速な活性化を図るためである。
図6に戻り、ステップ33で、触媒暖機用の吸入空気量制御処理を以上のように実行した後、本処理を終了する。
一方、ステップ32の判別結果がNOのとき、すなわち、エンジン3が始動済みでかつ触媒暖機モード中でないときには、ステップ34に進み、通常用の吸入空気量制御処理を実行する。この通常用の吸入空気量制御処理では、エンジン3の運転状態に応じて、目標スロットル弁開度THCMDを算出し、スロットル弁開度THがこの目標スロットル弁開度THCMDに収束するように、所定のフィードバック制御アルゴリズムにより、THアクチュエータ7bへの制御入力U_THが算出される。そして、この制御入力U_THでTHアクチュエータ7bを駆動することによって、スロットル弁開度THが目標スロットル弁開度THCMDに収束するようにフィードバック制御される。その結果、吸入空気量が制御される。ステップ34で、通常用の吸入空気量制御処理を以上のように実行した後、本処理を終了する。
次に、図8を参照しながら、ECU2によって、TDC信号の発生タイミングに同期すする制御周期ΔTnで実行される制御処理について説明する。同図に示すように、この制御処理では、まず、ステップ50で、気筒カウンタの計数値Ccylを、その前回値CcylZと値1の和CcylZ+1に設定する。すなわち、気筒カウンタの計数値Ccylを値1分、インクリメントする。
次いで、ステップ51に進み、気筒カウンタの計数値Ccylが値4より大きいか否かを判別する。この判別結果がNOのときには、後述するステップ53に進む。一方、ステップ51の判別結果がYESで、Ccyl>4のときには、ステップ52に進み、気筒カウンタの計数値Ccylを値1に設定した後、ステップ53に進む。すなわち、この気筒カウンタの計数値Ccylは、値1から値4までインクリメントされた後、再度、値1からインクリメントされる。
ステップ51または52に続くステップ53で、気筒カウンタの計数値Ccylに応じて、図9に示すマップを検索することにより、気筒番号値#iを設定する。同図を参照すると明らかなように、気筒番号値#iは、気筒カウンタの計数値Ccylが上述したように「1→2→3→4→1……」と順に設定されるのに応じて、「#1→#3→#4→#2→#1……」の順に設定される。
次いで、ステップ54,55で、後述するように、燃料噴射制御処理および点火時期制御処理をそれぞれ実行した後、本処理を終了する。
次に、図10を参照しながら、上記ステップ54の燃料噴射制御処理について説明する。この燃料噴射制御処理は、以下に述べるように、燃料噴射量TOUT#iおよび噴射終了タイミングINJ#iをそれぞれ算出するものである。同図に示すように、この処理では、まず、ステップ60で、前述したエンジン始動フラグF_ENGSTARTが「1」であるか否かを判別する。
この判別結果がYESで、エンジン始動制御中のときには、ステップ61に進み、始動用の燃料噴射制御処理を実行する。具体的には、エンジン水温TWに応じて、図示しないマップを検索することにより、始動用の燃料噴射量TOUT#iを算出し、これに応じて、図示しないマップを検索することにより、噴射終了タイミングINJ#iを算出する。ステップ61で、始動用の燃料噴射制御処理を以上のように実行した後、本処理を終了する。
一方、ステップ60の判別結果がNOで、エンジン3を始動済みであるときには、ステップ62に進み、前述した触媒暖機フラグF_FIREONが「1」であるか否かを判別する。この判別結果がYESで、触媒暖機モード中であるときには、ステップ63に進み、触媒暖機用の燃料噴射制御処理を実行する。
この制御処理は、具体的には図11に示すように実行される。同図に示すように、まず、ステップ70で、エンジン水温TWに応じて、図12に示すマップを検索することにより、始動後リーン化係数KLEANを算出する。この始動後リーン化係数KLEANは、後述する目標当量比KCMD#iの算出において乗算係数として用いられる関係上、図12において、KLEAN>1.0の値は、目標当量比KCMD#iをリッチ化するための値となり、KLEAN<1.0の値は、目標当量比KCMD#iをリーン化するための値となる。また、図12中のTW1は、エンジン水温TWの所定値であり、TW1≦TWが成立している場合、触媒11の温度がパータベーション制御を実行すべき温度域に達しているような値に設定されている。さらに、図12中のKLEAN1(<1.0)は、目標当量比KCMD#iをリーン化するための所定値を表している。
図12に示すように、始動後リーン化係数KLEANは、TW<TW1の領域では、エンジン水温TWが低いほど、より大きい値に設定されている。また、TW1≦TWの領域では、エンジン水温TWにかかわらず、所定値KLEAN1に設定されている。これは、TW1≦TWの領域では、後述するパータベーション制御を実行することで、触媒11の迅速な活性化を図るためである。
次いで、ステップ71に進み、エンジン回転数NEおよび吸気圧PBに応じて、図示しないマップを検索することにより、基本目標当量比のマップ値KCMDMAPを算出する。このマップでは、基本目標当量比のマップ値KCMDMAPは、エンジン回転数NEが高いほど、または吸気圧PBが高いほど、より大きい値に設定されている。
次に、ステップ72で、エンジン水温TWに応じて、図示しないマップを検索することにより、水温補正係数KTWを算出する。このマップでは、水温補正係数KTWは、エンジン水温TWが低いほど、より大きい値に設定されている。
ステップ72に続くステップ73で、基本目標当量比KCMDMMを、基本目標当量比のマップ値と水温補正係数の積KCMDMAP・KTWに設定する。ここで、基本目標当量比KCMDMMは、以上の算出手法によって、KCMDMM≒1となるように算出される。すなわち、基本目標当量比KCMDMMは、理論空燃比に相当する当量比付近の値になるように算出される。
次いで、ステップ74に進み、前述したパータベーションフラグF_CATLOFFが「1」であるか否かを判別する。この判別結果がNOで、触媒11の温度がパータベーション制御を実行すべき温度域に達していないときには、ステップ75に進み、目標当量比KCMD#iを、始動後リーン化係数と基本目標当量の積KLEAN・KCMDMMに設定する。
一方、ステップ74の判別結果がYESで、触媒11の温度がパータベーション制御を実行すべき温度域に達しているときには、ステップ76に進み、パータベーション補正係数KTICYLDN3#iを算出する。このパータベーション補正係数KTICYLDN3#iの算出処理は、具体的には、図13に示すように実行される。
同図に示すように、まず、ステップ90で、気筒番号値#i=#2であるか否かを判別する。この判別結果がYESのときには、ステップ91に進み、パータベーション補正係数KTICYLDN3#iを、所定の2番気筒用値KTCYLX2に設定した後、本処理を終了する。この場合、所定の2番気筒用値KTCYLX2は、2番気筒用の目標当量比KCMD#2をリッチ側の値にするために、値1.0よりも大きい値に設定される。
一方、ステップ90の判別結果がNOで、#i≠#2のときには、ステップ92に進み気筒番号値#i=#3であるか否かを判別する。この判別結果がYESのときには、ステップ93に進み、パータベーション補正係数KTICYLDN3#iを、所定の3番気筒用値KTCYLX3に設定した後、本処理を終了する。この場合、所定の3番気筒用値KTCYLX3は、3番気筒用の目標当量比KCMD#3をリッチ側の値にするために、値1.0よりも大きい値に設定される。なお、KTCYLX3=KTCYLX2と設定してもよい。
一方、ステップ92の判別結果がNOで、#i=#1または#i=#4のときには、ステップ94に進み、パータベーション補正係数KTICYLDN3#iを値1.0に設定する。すなわち、1番気筒用および4番気筒用のパータベーション補正係数KTICYLDN3#1,KTICYLDN3#4は、1番気筒用および4番気筒用の目標当量比KCMD#1,KCMD#4をそれぞれリッチ側の値にするために、値1.0に設定される。以上のようにステップ94を実行した後、本処理を終了する。
図11に戻り、ステップ76で、パータベーション補正係数KTICYLDN3#iを以上のように算出した後、ステップ77に進み、目標当量比KCMD#iを、始動後リーン化係数と基本目標当量とパータベーション補正係数の積KLEAN・KCMDMM・KTICYLDN3#iに設定する。
以上のステップ75または77に続くステップ78で、エンジン回転数NEおよび吸気圧PBに応じて、図示しないマップを検索することにより、基本噴射量TIMを算出する。
次いで、ステップ79に進み、燃料噴射量TOUT#iを、目標当量比と基本噴射量の積KCMD#i・TIMに設定する。次に、ステップ80で、燃料噴射量TOUT#iおよびエンジン回転数NEに応じて、図示しないマップを検索することにより、噴射終了タイミングINJ#iを算出する。その後、本処理を終了する。
以上のように触媒暖機用の燃料噴射制御処理を実行した場合、パータベーションフラグF_CATLOFF=0で、触媒11の温度がパータベーション制御を実行すべき温度域に達していないときには、エンジン水温TWが低いほど、始動後リーン化係数KLEANがより大きい値に設定されることで、全気筒の燃料噴射量TOUT#1〜#4がより大きい値に算出される。
また、パータベーションフラグF_CATLOFF=1で、触媒11の温度がパータベーション制御を実行すべき温度域に達しているときには、2,3番気筒用のパータベーション補正係数KTICYLDN3#2,#3が、値1.0よりも大きい値に設定される一方、1,4番気筒用のパータベーション補正係数KTICYLDN3#1,#4が、値1.0に設定されることで、2,3番気筒用の燃料噴射量TOUT#2,#3が、1,4番気筒用の燃料噴射量TOUT#1,#4よりも大きい値に算出される。
それに伴い、前述した吸入空気量制御との協働によって、2番気筒#2および3番気筒#3内で生成される混合気の空燃比は、理論空燃比よりもリッチな値に制御される一方、1番気筒#1および4番気筒#4内で生成される混合気の空燃比は、理論空燃比よりもリーンな値に制御される。その結果、リーンな燃焼ガスが1番気筒#1から排気通路10に排出された後、リッチな燃焼ガスが3番気筒#3から排出され、次いで、リーンな燃焼ガスが4番気筒#4から排出された後、リッチな燃焼ガスが2番気筒#2から排出される。すなわち、CO濃度の高い排ガスと酸素濃度の高い排ガスが排気通路10の触媒11に交互に供給されることで、パータベーション制御が実行される。それによって、排ガスの空燃比を一定値に制御した場合と比べて、触媒11をより迅速に活性化させることができる。なお、パータベーション制御の実行中、触媒11に供給される排ガスの空燃比は、その平均値が理論空燃比よりも若干、リーン側の値になるように制御される。これは、良好な燃費と良好な排ガス特性をバランスよく確保するためである。
図10に戻り、ステップ63で、触媒暖機用の燃料噴射制御処理を以上のように実行した後、本処理を終了する。
一方、ステップ62の判別結果がNOのとき、すなわち、エンジン3が始動済みでかつ触媒暖機モード中でないときには、ステップ64に進み、通常用の燃料噴射制御処理を実行する。この通常用の燃料噴射制御処理では、エンジン3の運転状態に応じて、目標当量比KCMDを算出し、検出当量比KACTがこの目標当量比KCMDに収束するように、燃料噴射量TOUT#iを算出するとともに、これとエンジン回転数NEに応じて、図示しないマップを検索することにより、噴射終了タイミングINJ#iが算出される。ステップ64で、通常用の燃料噴射制御処理を以上のように実行した後、本処理を終了する。
以上の燃料噴射制御処理によって、燃料噴射量TOUT#iおよび噴射終了タイミングINJ#iが算出されると、これらの燃料噴射量TOUT#iおよび噴射終了タイミングINJ#iに基づいて、燃料噴射弁4を駆動することにより、燃料が気筒内に噴射される。
次に、図14を参照しながら、前述した図8のステップ55の点火時期制御処理について説明する。この制御装置は、以下に述べるように、点火時期Ig_log#iを算出するものであり、点火時期Ig_log#iはクランク角位置として算出される。同図に示すように、この処理では、まず、ステップ100で、前述したエンジン始動フラグF_ENGSTARTが「1」であるか否かを判別する。
この判別結果がYESで、エンジン始動制御中のときには、ステップ101に進み、始動用の点火時期制御処理を実行する。具体的には、エンジン水温TWに応じて、図示しないマップを検索することにより、点火時期Ig_log#iを算出する。ステップ101で、始動用の点火時期制御処理を以上のように実行した後、本処理を終了する。
一方、ステップ100の判別結果がNOで、エンジン3を始動済みであるときには、ステップ102に進み、前述した触媒暖機フラグF_FIREONが「1」であるか否かを判別する。この判別結果がYESで、触媒暖機モード中であるときには、ステップ103に進み、触媒暖機用の点火時期制御処理を実行する。
この制御処理は、具体的には図15に示すように実行される。同図に示すように、まず、ステップ110で、点火時期の触媒暖機用値Ig_fireを、下式(1)〜(5)に示す応答指定型制御アルゴリズムを適用した制御アルゴリズムによって算出する。
以上の式(1)〜(5)における記号(n)付きの各離散データは、前述した制御周期ΔTnでサンプリングまたは算出されたデータであることを示しており、記号nは各離散データのサンプリングまたは算出サイクルの順番を表している。例えば、記号nは今回の制御タイミングでサンプリングまたは算出された値であることを、記号n−1は前回の制御タイミングでサンプリングまたは算出された値であることをそれぞれ示している。なお、以下の説明では、各離散データにおける記号(n)などを適宜、省略する。
上記の式(1)に示すように、点火時期の触媒暖機用値Ig_fireは、触媒暖機用の基準点火時期Ig_fire_base(例えばBTDC5゜に相当するクランク角位置)と、到達則入力Urchと、適応則入力Uadpの和として算出され、この到達則入力Urchは、式(2)によって算出される。同式(2)において、Krch_igは、所定の到達則ゲインを表しており、σ_igは、式(4)のように定義される切換関数である。
同式(4)において、pole_igは、−1<pole_ig<0の関係が成立するように設定される切換関数設定パラメータであり、Enfireは、式(5)によって算出される追従誤差である。同式(5)において、NE_fireは、所定の触媒暖機用の目標回転数(例えば1800rpm)である。さらに、適応則入力Uadpは、式(3)によって算出され、同式(3)において、Kadp_igは、所定の適応則ゲインを表している。
以上の式(1)〜(5)の制御アルゴリズムにより、触媒暖機用値Ig_fireは、基準点火時期Ig_fire_baseを、到達則入力Urchおよび適応則入力Uadpによって遅角側に補正することで算出されるとともに、これらの到達則入力Urchおよび適応則入力Uadpによって、エンジン回転数NEを上記触媒暖機用の目標回転数NE_fireに収束させるように算出される。なお、本実施形態では、到達則入力Urchおよび適応則入力Uadpが遅角補正量に相当する。
ステップ110に続くステップ111で、気筒番号値#i=#2であるか否かを判別する。この判別結果がYESのときには、ステップ112に進み、パータベーション補正項DIG#iを所定値DIGREFに設定する。この所定値DIGREFは、触媒暖機用値Ig_fireを進角側に若干、補正するような値(例えばクランク角−2゜)に設定されている。すなわち、2番気筒用のパータベーション補正項DIG#2は、触媒暖機用値Ig_fireを進角側に補正するための値として算出される。
一方、ステップ111の判別結果がNOで、#i≠#2のときには、ステップ113に進み気筒番号値#i=#3であるか否かを判別する。この判別結果がYESのときには、上述したステップ112に進み、パータベーション補正項DIG#iを所定値DIGREFに設定する。すなわち、3番気筒用のパータベーション補正項DIG#3も、2番気筒用のパータベーション補正項DIG#2と同様に、触媒暖機用値Ig_fireを進角側に補正するための値として算出される。
一方、ステップ113の判別結果がNOで、#i=#1または#i=#4のときには、ステップ114に進み、パータベーション補正項DIG#iを値0に設定する。すなわち、1番気筒用および4番気筒用のパータベーション補正項DIG#1,DIG#4は、値0に設定される。
以上のステップ112または114に続くステップ115で、点火時期Ig_log#iを、点火時期の触媒暖機用値とパータベーション補正項の和Ig_fire+DIG#iに設定した後、本処理を終了する。なお、本実施形態では、パータベーション補正項#iが遅角補正量に相当する。
以上の触媒暖機用の点火時期制御処理によって、2番気筒用および3番気筒用の点火時期Ig_log#2,Ig_log#3は、触媒暖機用値Ig_fireを所定値DIGREF分、進角側に補正することによって算出されるとともに、1番気筒用および4番気筒用の点火時期Ig_log#1,Ig_log#4は、触媒暖機用値Ig_fireに設定される。すなわち、2番気筒用および3番気筒用の点火時期Ig_log#2,Ig_log#3における遅角補正量(Urch+Uadp+DIG#i)は、1番気筒用および4番気筒用の点火時期Ig_log#1,Ig_log#4よりも小さい値に設定される。これは、前述したように、2,3番気筒#2,#3の場合、空燃比が1,4番気筒#1,#4よりもリッチ側に制御されるので、そのようなリッチな混合気を良好に燃焼させるためである。
図14に戻り、ステップ103で、触媒暖機用の点火時期制御処理を以上のように実行した後、本処理を終了する。
一方、ステップ102の判別結果がNOのとき、すなわち、エンジン3が始動済みでかつ触媒暖機モード中でないときには、ステップ104に進み、通常用の点火時期制御処理を実行する。具体的には、エンジン3の運転状態に応じて、図示しない各種のマップを検索することにより、基本点火時期および各種の補正項をそれぞれ算出し、基本点火時期を各種の補正項で補正することによって、点火時期Ig_log#iを算出する。ステップ104で、通常用の点火時期制御処理を以上のように実行した後、本処理を終了する。
以上の点火時期制御処理によって、点火時期Ig_log#iが算出されると、この点火時期Ig_log#iに応じたタイミングで、高電圧が点火プラグ5に加えられ、それによって、燃焼室内の混合気が点火される。
以上のように、本実施形態の制御装置1によれば、触媒暖機フラグF_FIREON=1でかつパータベーションフラグF_CATLOFF=1のとき、すなわち、エンジン始動後において、触媒11が活性状態になく、かつ触媒11の温度がパータベーション制御を実行すべき所定温度域に達しているときには、パータベーション制御が実行される。このパータベーション制御の実行中は、触媒11に流入する排ガスの空燃比が、理論空燃比の排ガスよりも一酸化炭素濃度が高い排ガスと、理論空燃比の排ガスよりも酸素濃度が高い排ガスとが触媒11に交互に流入するように制御されるので、所定温度域において、排ガスの空燃比を一定状態に制御した場合と比べて、触媒11をより迅速に活性化することができるとともに、触媒11を活性化温度まで昇温させるのに要する燃料量を低減することができ、エンジン3の燃費を向上させることができる。これに加えて、前述したように、本実施形態の触媒11の場合、低温度域で一酸化炭素(CO)を浄化する際、本実施形態の触媒11以外のものと比べてより高い浄化率が得られるという特性を備えているので、この所定温度域を、触媒11において高いCO浄化率が得られる温度域に設定することによって、所定温度域において、従来の触媒を用いた場合よりも高いCO浄化率を確保することができ、それによって、排ガス特性を向上させることができる。
また、パータベーション制御の実行中、全気筒の点火時期Ig_log#1〜#4を遅角側に補正する遅角補正制御が実行されるとともに、混合気の空燃比が理論空燃比よりもリッチ側に制御される気筒#2,#3の点火時期の遅角補正量(Urch+Uadp+DIG#2,#3)は、混合気の空燃比がリーン側に制御される気筒#1,#4よりも小さい値(すなわち進角側の値)に制御されるので、混合気の空燃比がリッチ側に制御される気筒においても、混合気の良好な燃焼状態を確保することができ、排ガス特性をより一層、向上させることができる。
さらに、F_FIREON=1&F_CATLOFF=0のとき、すなわち、エンジン始動後において、触媒11が活性状態になく、かつ触媒11の温度がパータベーション制御を実行すべき所定温度域に達していないときには、エンジン3の吸入空気量が、触媒11が活性状態にあるときよりも増大側に制御されるとともに、エンジン3の点火時期を遅角側に補正する遅角補正制御が実行される。それにより、触媒11が活性状態になく、かつ触媒11の温度が所定温度域に達していないときでも、触媒11が迅速に活性化するように、触媒温度を昇温させることができる。これに加えて、触媒11の温度が所定温度域に達すると、前述したように、パータベーション制御が開始されることによって、触媒11の昇温速度をさらに高めることができる。その結果、触媒11の活性化に要する時間をさらに短縮することができ、排ガス特性をさらに向上させることができる。
なお、実施形態は、パータベーション制御を実行する際、運転される気筒の混合気の空燃比を、理論空燃比よりもリーン側の値と、リッチ側の値とに交互に制御することによって、理論空燃比の排ガスよりも一酸化炭素濃度が高い排ガスと、理論空燃比の排ガスよりも酸素濃度が高い排ガスとが交互に触媒に流入するように、排ガスの空燃比を制御した例であるが、本発明のパータベーション制御を実行する手法はこれに限らず、理論空燃比の排ガスよりも一酸化炭素濃度が高い排ガスと、理論空燃比の排ガスよりも酸素濃度が高い排ガスとが交互に触媒に流入するように、排ガスの空燃比を制御できるものであればよい。
例えば、パータベーション制御を実行する手法として、1〜4番気筒#1〜#4における混合気の空燃比をいずれも、理論空燃比よりもリーン側の値に制御すると同時に、1,4番気筒(または2,3番気筒)の膨張行程で燃料を燃焼室内に噴射する手法を用いてもよい。また、パータベーション制御を実行する手法として、燃料噴射弁とは別個の燃料噴射弁を、排気通路の触媒よりも上流側の位置に設け、1〜4番気筒#1〜#4における混合気の空燃比をいずれも、理論空燃比よりもリーン側の値に制御すると同時に、この別個の燃料噴射弁によって、1,4番気筒(または2,3番気筒)から燃焼ガスが排出されるタイミングに同期して、未燃燃料を排気通路内に噴射する手法を用いてもよい。
また、実施形態は、触媒が活性状態にあるか否かを判定する判定手法として、カウンタの計数値CFIREONを所定値CREFと比較した例であるが、本発明の判定手法はこれに限らず、触媒が活性状態にあるか否かを判定できるものであればよい。例えば、触媒自体の温度を検出する触媒温度センサを設け、この触媒温度センサの検出信号を用いて、触媒が活性状態にあるか否かを判定してもよい。また、前述した積算吸入空気量QGAIRが所定値CREFよりも小さい所定値以上になったか否かに基づき、触媒が活性状態にあるか否かを判定してもよい。
さらに、実施形態は、触媒の温度を表す温度パラメータとして、積算吸入空気量QGAIRを用いた例であるが、本発明の温度パラメータはこれに限らず、触媒の温度を表すものであればよい。例えば、温度センサによって検出した触媒温度を、温度パラメータとして用いてもよく、燃料噴射量TOUT#iの積算値を、温度パラメータとして用いてもよい。
一方、実施形態は、エンジン始動後、CFIREON<CREFかつQGAIR>QGCAT_LOFFが成立しているときに、パータベーション制御を実行した例であるが、本発明のパータベーション制御を実行する条件はこれに限らず、触媒が活性状態になくかつ温度パラメータが表す触媒温度が所定温度よりも高いときであればよい。例えば、触媒11が一旦、活性化した後、何らかの理由によって、不活性化した場合において、触媒温度が所定温度よりも高いときに、パータベーション制御を実行するように構成してもよい。
また、実施形態は、吸入空気量制御を実行するために、吸入空気量を無段階に変更する機構としてスロットル弁機構7を用いた例であるが、これに代えて、例えば吸気弁の最大揚程を無段階に変更可能な可変リフト機構などを用いてもよい。