以下、図面を参照しながら、本発明の一実施形態による内燃機関の制御装置について説明する。図1は、この制御装置1およびこれを適用した内燃機関(以下「エンジン」という)3を概略的に示している。エンジン3は、四輪車両(図示せず)に搭載された直列4気筒タイプのディーゼルエンジンである。
エンジン3の各気筒のピストンとシリンダヘッドの間には、燃焼室(いずれも図示せず)が形成されている。シリンダヘッドには、吸気管4および排気管5がそれぞれ接続されるとともに、燃料噴射弁(以下「インジェクタ」という)6が、燃焼室に臨むように取り付けられている。
インジェクタ6は、燃焼室の天壁中央部に配置されており、コモンレールを介して、高圧ポンプおよび燃料タンク(いずれも図示せず)に順に接続されている。燃料タンクの燃料は、高圧ポンプによって、高圧に昇圧された後、コモンレールを介してインジェクタ6に送られ、インジェクタ6から燃焼室に噴射される。また、インジェクタ6の燃料噴射量QINJおよび噴射時期は後述するECU2によって設定され、インジェクタ6の開弁時間および開弁タイミングは、ECU2からの駆動信号によって、設定した燃料噴射量QINJおよび噴射時期が得られるように制御される。
エンジン3には過給機7が設けられており、過給機7は、吸気管4に設けられた回転自在のコンプレッサブレード7aと、排気管5に設けられた回転自在のタービンブレード7bおよび複数の回動自在の可変ベーン7c(2つのみ図示)と、これらのブレード7a,7bを一体に連結するシャフト7dとを有している。過給機7は、排気管5内の排ガスによりタービンブレード7bが回転駆動されるのに伴い、これと一体のコンプレッサブレード7aが回転駆動されることによって、吸気管4内の吸入空気を加圧する過給動作を行う。
可変ベーン7cには、これらを駆動するアクチュエータ(図示せず)が設けられており、このアクチュエータは、ECU2からの駆動信号で制御されることにより、可変ベーン7cの開度を制御し、それにより、過給圧を制御する。
吸気管4の過給機7よりも下流側には、水冷式のインタークーラ8が設けられている。インタークーラ8は、過給装置7の過給動作により吸入空気の温度が上昇したときなどに、吸入空気を冷却するものである。また、吸気管4の過給機7よりも上流側には、エアフローセンサ11が設けられている。エアフローセンサ11は、吸入空気量QAを検出し、その検出信号をECU2に出力する。
また、エンジン3には、EGR管9aおよびEGR制御弁9bを有するEGR装置9(吸入空気量可変機構)が設けられている。EGR管9aは、吸気管5のインタークーラ8よりも下流側と、排気管5のタービンブレード7bよりも上流側とをつなぐように接続されている。このEGR管9aを介して、エンジン3の排ガスの一部が吸気管4にEGRガスとして還流し、それにより、燃焼室内の燃焼温度が低下することによって、排ガス中のNOxが低減される。
EGR制御弁9bは、EGR管9aに取り付けられたリニア電磁弁で構成されており、供給される電流のデューティ比EGR_DutyをECU2で制御することによって、そのバルブリフト量をリニアに制御することで、EGRガス量が制御される。
また、エンジン3のクランクシャフトには、マグネットロータが取り付けられており、このマグネットロータとMREピックアップ(いずれも図示せず)によって、クランク角センサ12が構成されている。クランク角センサ12は、クランクシャフトの回転に伴い、パルス信号であるCRK信号およびTDC信号をECU2に出力する。
CRK信号は、所定のクランク角(例えば30゜)ごとに出力される。ECU2は、このCRK信号に基づき、エンジン3の回転数(以下「エンジン回転数」という)NEを求める。TDC信号は、各気筒のピストンが吸気行程開始時のTDC(上死点)付近の所定クランク角度位置にあることを表す信号であり、4気筒タイプの本例では、クランク角180゜ごとに出力される。
また、ECU2には、アクセル開度センサ13(操作量検出手段)から、アクセルペダル(図示せず)の操作量(以下「アクセル開度」という)APを表す検出信号が出力される。
車両の左右の前輪および後輪(いずれも図示せず)にはそれぞれ、ロータおよび電磁ピックアップから成る車輪速度センサ14が取り付けられている。車輪速度センサ14は、左右の前輪速度VFL,VFRおよび後輪速度VRL,VRRをそれぞれ検出し、それらの検出信号をECU2に出力する。
ECU2にはさらに、舵角センサ15から舵角SDHを表す検出信号が、横加速度センサ16から横加速度GTRを表す検出信号が、前後加速度センサ17から前後加速度GLOを表す検出信号が、ヨーレートセンサ18からヨーレートYRを表す検出信号が、それぞれ出力される。
ECU2は、I/Oインターフェース、CPU、RAMおよびROMなどからなるマイクロコンピュータで構成されている。前述した各種のセンサ11〜18からの検出信号はそれぞれ、I/OインターフェースでA/D変換や整形がなされた後、CPUに入力される。
CPUは、これらの入力信号に応じ、ROMに記憶された制御プログラムなどに従って、エンジン3の運転状態を判定するとともに、判定した運転状態に応じて、燃料噴射量QINJおよび吸入空気量QAを制御する。また、本実施形態では、ECU2によって、第1供給燃料量決定手段、制御目標値算出手段、制御手段、供給燃料量変化率算出手段、補正手段、第2供給燃料量決定手段、補正禁止手段、供給燃料量決定手段、第1補正手段、および第2補正手段が構成されている。
また、ECU2は、トラクション制御(以下「TRC」という)を実行するとともに、車両の挙動安定制御(以下「VSA」という)を実行する。このTRCは、燃料噴射量QINJや前・後輪のブレーキ力を制御することによって、駆動輪の空転を防止し、滑りやすい路面における車両の発進性や加速性を向上させ、車両の安定性を向上させるものである。また、上記のVSAは、燃料噴射量QINJや前・後輪のブレーキ力を制御することによって、車両の横滑りを防止し、車両の姿勢を安定させるものである。
次に、図2を参照しながら、燃料噴射量QINJを算出する処理について説明する。本処理は、TDC信号の入力に同期して実行される。まず、ステップ1(「S1」と図示。以下同じ)では、TRCフラグF_TRCが「1」であるか否かを判別する。このTRCフラグF_TRCは、上述したTRCの実行条件が成立しているときに、「1」にセットされるものである。この実行条件は、例えば、前輪速度VFL,VFRと後輪速度VRL,VRRとの偏差が大きいときに、駆動輪が空転しているとして、成立していると判定される。
上記ステップ1の答がNOで、TRCの実行条件が成立していないときには、エンジン回転数NEおよびアクセル開度APに応じ、マップ(図示せず)を検索することによって、燃料噴射量QINJを算出し(ステップ2)、本処理を終了する。
一方、ステップ1の答がYESで、TRCの実行条件が成立しているときには、TRC用の燃料噴射量QINJを算出し(ステップ3)、本処理を終了する。このTRC用の燃料噴射量QINJは、アクセルペダルの操作状態とは無関係に、図3に示すように、燃料噴射量QINJを所定の燃料量QINJαに設定する増量と値0に設定する減量を交互に繰り返すように決定される。また、この場合、所定の燃料量QINJαは、上記ステップ2と同様、エンジン回転数NEおよびアクセル開度APに応じ、所定のマップ(図示せず)を検索することによって算出され、燃料噴射量QINJの増量間の時間間隔は、所定時間tα(例えば100msec)に設定される。
次に、図4を参照しながら、吸入空気量QAを制御する処理について説明する。本処理は所定時間(例えば10msec)ごとに実行される。まず、ステップ11では、エンジン回転数NEおよび燃料噴射量QINJに応じ、マップ(図示せず)を検索することによって、基準目標値QABASEを算出する。このマップでは、基準目標値QABASEは、エンジン回転数NEが大きいほど、また燃料噴射量QINJが大きいほど、より大きな値に設定されている。
次いで、増量補正値CQAを算出する(ステップ12)。その詳細については後述する。次に、算出した基準目標値QABASEに増量補正値CQAを加算することによって、目標吸入空気量QACMDを算出する(ステップ13)。次いで、算出した目標吸入空気量QACMDに吸入空気量QAが収束するように、所定のフィードバック制御アルゴリズムによって、EGR制御弁9bに供給する電流のデューティ比EGR_Dutyを算出し(ステップ14)、本処理を終了する。
これにより、EGR制御弁9bのバルブリフト量を制御し、EGRガス量を制御することによって、吸入空気量QAが目標吸入空気量QACMDに収束するようにフィードバック制御される。具体的には、QA<QACMDのときには、EGR制御弁9bのバルブリフト量を閉じ側に制御することによって、EGRガス量を減少側に制御するとともに、タービンブレード7bを駆動する排ガスの量を増加させ、過給圧を高めることで、吸入空気量QAを増加させる。なお、算出した目標吸入空気量QACMDが過大であるときには、故障判定処理(図示せず)において、エンジン3が故障していると判定される。
図5は、上記ステップ12で実行される第1実施形態による増量補正値CQAの算出処理を示している。まず、ステップ21では、TRCフラグF_TRCが「1」であるか否かを判別する。この答がYESで、TRCの実行中のときには、増量補正値CQAを値0に設定し(ステップ22)、本処理を終了する。
一方、上記ステップ21の答がNOで、TRCの実行中でないときには、燃料噴射量QINJの今回値から前回値を減算することによって、変化率ΔQINJを算出する(ステップ23)。次いで、算出した変化率ΔQINJが所定のしきい値ΔQREF(例えば0.5mg)よりも大きいか否かを判別する(ステップ24)。
この答がYESのとき、すなわち、燃料噴射量QINJが増加し、その変化率ΔQINJが大きいときには、次のステップ25以降において、目標吸入空気量QACMDの増量補正を行う。まず、ステップ25では、減衰係数KDEを所定値KDEα(例えば1)に設定する。なお、減衰係数KDEは、エンジン3の始動時に値0にリセットされる。次いで、変化率ΔQINJに基づき、マップ(図示せず)を検索することによって、増量補正値の加算項CQATを算出する(ステップ26)。このマップでは、加算項CQATは、変化率ΔQINJが大きいほど、より大きな値に設定されている。
次に、算出した加算項CQATを、そのときに得られている増量補正値CQAに加算することによって、今回の増量補正値CQAを算出する(ステップ27)。なお、この算出の初回時には、増量補正値CQAは算出した加算項CQATに設定される。次いで、算出した増量補正値CQAを最終増量補正値CQAFINとして設定し(ステップ28)、本処理を終了する。このように、燃料噴射量QINJが大きく増加しているときには、増量補正値CQAが漸増される。
一方、上記ステップ24の答がNOで、ΔQINJ≦ΔQREFのとき、すなわち、燃料噴射量QINJが増加していないか、またはその変化率ΔQINJが小さいときには、減衰係数KDEがほぼ値0であるか否かを判別する(ステップ29)。この答がNOのときには、減衰係数KDEを更新する(ステップ30)。この更新は、減衰係数KDEが所定値KDEαからほぼ値0になるまで漸減するように行われ、さらに、上記ステップ28で設定された最終増量補正値CQAFINが大きいほど、減衰係数KDEがほぼ値0になるまでの時間がより長くなるように行われる。また、減衰係数KDEは、例えば次式によって表される。
KDE=exp{−t/(T・CQAFIN)}
ここで、tは、本処理の実行ごとに所定値を積算することによって算出され、Tは定数である。
次いで、更新した減衰係数KDEを、上記ステップ28で設定された最終増量補正値CQAFINに乗算することによって、増量補正値CQAを算出し(ステップ31)、本処理を終了する。これにより、上記ステップ27において漸増された増量補正値CQAは、燃料噴射量QINJの大きな増加が終了した後に、最終増量補正値CQAFINからほぼ値0になるまで漸減される。
一方、上記ステップ29の答がYESで、減衰係数KDEがほぼ値0になったときには、前記ステップ22を実行し、以降、燃料噴射量QINJが大きく増加しない限り、増量補正値CQAが値0に設定される。
以上のように、本実施形態によれば、燃料噴射量QINJの変化率ΔQINJがしきい値ΔQREFよりも大きいときには、変化率ΔQINJに基づいて加算項CQATを算出し、この加算項CQATを用いて増量補正値CQAを算出する。前述したように、加算項CQATは、変化率ΔQINJが大きいほど、より大きな値に設定されるので、増量補正値CQAは、燃料噴射量QINJの増加度合が大きいほど、より大きな値に算出される。その結果、目標吸入空気量QACMDは、燃料噴射量QINJの増加度合が大きいほど、より大きな値に補正される。これにより、加速時に、吸入空気量QAを燃料噴射量QINJに応じて過不足なく供給できるので、エンジン3の燃焼に伴って発生するパティキュレートやNOxを最小限に抑制でき、排ガス特性を向上させることができる。また、同じ理由から、燃料の着火遅れを抑制でき、それにより、エンジン3の騒音を抑制することができる。
さらに、変化率ΔQINJがしきい値ΔQREF以下になったときに、減衰係数KDEにより増量補正値CQAを値0になるまで漸減することによって、目標吸入空気量QACMDが基準目標値QABASEになるまで漸減される。これにより、吸入空気量QAの制御を、エンジン3のトルク段差を生じることなく、増量補正値CQAを用いた増量制御から通常の制御に円滑に復帰させることができる。また、この場合、前述したように、最終増量補正値CQAFINが大きいほど、減衰係数KDEがほぼ値0になるまでの時間がより長くなるように更新されるので、上記のような吸入空気量QAの増量制御から通常の制御への復帰を、最終増量補正値CQAFINの大小に応じて円滑に行うことができる。
さらに、TRC用の燃料噴射が実行されているときには(ステップ21:YES)、増量補正値CQAが値0に設定され、それにより、増量補正値CQAによる目標吸入空気量QACMDの増量補正が禁止される。これにより、TRCの実行によって燃料噴射量QINJの増量と減量が交互に繰り返された場合に、その増量に応じて目標吸入空気量QACMDが累積的に過大に補正されるのを防止できる。したがって、EGRガス量の不足によるNOxの増大や、前述した目標吸入空気量QACMDに基づく故障判定における誤判定を、防止することができる。
また、上記のような目標吸入空気量QACMDの増量補正の禁止を、TRCの実行中に限って行うとともに、増量補正値CQAの算出を、加算項CQATを前回の増量補正値CQAに加算することによって行う。したがって、運転者がアクセルペダルを繰り返し踏み込むのに応じて、燃料噴射量QINJの増量が短い時間間隔で繰り返し行われた場合でも、吸入空気量QAを燃料噴射量QINJに応じて過不足なく供給することができる。
なお、本実施形態では、TRCの実行中、燃料噴射量QINJの増量間の時間間隔を一定の所定時間tαに設定しているが、この時間間隔は、一定でなくてもよい。
次に、図6を参照しながら、本発明の第2実施形態による増量補正値CQAの算出処理について説明する。同図において、第1実施形態による図5の処理と同じ実行内容の部分については、同じステップ番号を付している。以下、第1実施形態と異なる実行内容を中心として説明する。
まず、ステップ41では、燃料増量フラグF_VSAが「1」であるか否かを判別する。この燃料増量フラグF_VSAは、前述したVSAにより燃料噴射量QINJの増量が行われているときに、「1」にセットされ、この増量が終了したときに、「0」にリセットされるものである。
VSA用の燃料噴射は、前述したTRC用の燃料噴射と比較して、繰り返し実行される燃料噴射量QINJの増量間の時間間隔が、一定でないことのみが異なっている。すなわち、VSA用の燃料噴射量QINJは、燃料噴射量QINJを所定の燃料量に設定する増量と値0に設定する減量を交互に繰り返すように決定される。また、この場合の所定の燃料量は、エンジン回転数NEおよびアクセル開度APに応じ、所定のマップ(図示せず)を検索することによって算出される。
上記ステップ41の答がNOで、VSAによる燃料噴射量QINJの増量が行われていないときには、前記ステップ23以降を実行する。一方、ステップ41の答がYESで、VSAによる燃料噴射量QINJの増量が行われているときには、補正禁止フラグF_FBDが「1」であるか否かを判別する(ステップ42)。この補正禁止フラグF_FBDは、後述する補正禁止判定処理において、増量補正値CQAによる目標吸入空気量QACMDの補正が禁止されているときに、「1」にセットされるものである。
上記ステップ42の答がNOで、増量補正値CQAによる目標吸入空気量QACMDの増量補正が許可されているときには、前記ステップ23以降を実行する。一方、ステップ42の答がYESで、この増量補正が禁止されているときには、前記ステップ22を実行し、増量補正値CQAを値0に設定する。
次に、図7を参照しながら、上記の補正禁止判定処理について説明する。本処理は、所定時間(例えば10msec)ごとに実行される。まず、ステップ51では、燃料増量フラグF_VSAが「1」であるか否かを判別する。
このステップ51の答がNOで、VSAによる燃料噴射量QINJの増量が行われていないときには、そのまま本処理を終了する。一方、ステップ51の答がYESのときには、燃料増量フラグの前回値F_VSAZが「0」であるか否かを判別する(ステップ52)。この答がNOのときには、そのまま本処理を終了する。
一方、上記ステップ52の答がYESのとき、すなわち、今回がVSAによる燃料噴射量QINJの増量が行われた直後のループであるときには、初回フラグF_FSTが「1」であるか否かを判別する(ステップ53)。なお、初回フラグF_FSTは、エンジン3の始動時に、「0」にリセットされる。
上記ステップ53の答がNOのとき、すなわち、今回の燃料噴射量QINJの増量が、エンジン3の始動後の最初の増量であるときには、燃料噴射量QINJの増量間の時間間隔を計時するダウンカウント式のタイマのタイマ値DTMを所定時間DTMα(例えば100msec)にセットする(ステップ54)とともに、初回フラグF_FSTを「1」にセットし(ステップ55)、本処理を終了する。
2回目以降の燃料噴射量QINJの増量があったときには、上記ステップ55の実行によりステップ53の答がYESとなるので、その場合には、タイマ値DTMが値0であるか否かを判別する(ステップ56)。この答がNOのとき、すなわち、VSAにより燃料噴射量QINJの増量と減量が交互に繰り返された場合において、その前回の増量から今回の増量までの時間間隔が所定時間DTMαよりも短いときには、増量された今回の燃料噴射量QINJに応じて増量補正値CQAによる目標吸入空気量QACMDの増量補正を行うと、目標吸入空気量QACMDが過大になるおそれがあるため、この増量補正を禁止するものとして、補正禁止フラグF_FBDを「1」にセットする(ステップ57)。次いで、タイマ値DTMを所定時間DTMαにセットし(ステップ58)、本処理を終了する。
一方、上記ステップ56の答がYESで、VSAにより燃料噴射量QINJの増量と減量が交互に繰り返された場合であっても、その前回の増量から今回の増量までの時間間隔が比較的長いときには、増量補正値CQAによる目標吸入空気量QACMDの増量補正を許可するものとして、補正禁止フラグF_FBDを「0」にセットし(ステップ59)、上記ステップ58を実行する。
以上のように、本実施形態によれば、VSAにより燃料噴射量QINJの増量と減量が交互に繰り返された場合において、その前回の増量から今回の増量までの時間間隔が所定時間DTMαよりも短いとき(ステップ56:NO)、すなわち、燃料噴射量QINJの増量間の時間間隔が実際に短いときには、今回の増量に応じた増量補正値CQAによる目標吸入空気量QACMDの増量補正を禁止する(ステップ57、42、22)。これにより、第1実施形態と同様、吸入空気量QAが過大になることによる排ガス特性の悪化などを回避することができる。また、このような目標吸入空気量QACMDの増量補正の禁止を、VSAによる燃料噴射量QINJの増量が行われた場合に限って行うので、運転者がアクセルペダルを繰り返し踏み込むのに応じて、燃料噴射量QINJの増量が短時間で繰り返し行われた場合でも、吸入空気量を燃料噴射量QINJに応じて過不足なく供給することができる。
なお、本実施形態では、目標吸入空気量QACMDの増量補正の禁止を、VSAにより燃料噴射量QINJの増量と減量が交互に繰り返された場合において、その増量間の時間間隔が短いときに行っているが、同様の状況が運転者によるアクセルペダルの操作やTRCによって生じるような場合に、行ってもよい。
次に、図8を参照しながら、本発明の第3実施形態による増量補正値CQAの算出処理について説明する。同図において、第1実施形態による図5の処理と同じ実行内容の部分については、同じステップ番号を付している。以下、第1実施形態と異なる実行内容を中心として説明する。
本処理では、まず、ステップ61において、第2補正フラグF_C2が「1」であるか否かを判別する。この第2補正フラグF_C2は、図9に示す第2補正実行条件判定処理においてセットされるものである。以下、図9を参照しながら、この第2補正実行条件判定処理について説明する。本処理は、所定時間(例えば10msec)ごとに実行される。
まず、ステップ68では、第2補正フラグF_C2が「1」であるか否かを判別する。この答がNOのときには、燃料増量フラグF_UQINJが「1」であるか否かを判別する(ステップ71)。この燃料増量フラグF_UQINJは、前記ステップ2によるアクセル開度APに応じた燃料噴射量QINJの算出によって、または前記ステップ3によるTRC用の燃料噴射量QINJの算出によって、燃料噴射量QINJの増量が行われているときに、「1」にセットされ、この増量が終了したときに、「0」にリセットされるものである。
上記ステップ71の答がNOで、燃料噴射量QINJの増量が行われていないときには、そのまま本処理を終了する。一方、ステップ71の答がYESで、燃料噴射量QINJの増量が行われているときには、燃料増量フラグの前回値F_UQINJZが「0」であるか否かを判別する(ステップ72)。この答がNOのときには、そのまま本処理を終了する。
一方、上記ステップ72の答がYESのとき、すなわち、今回が燃料噴射量QINJの増量が行われた直後のループであるときには、初回フラグF_FSTαが「1」であるか否かを判別する(ステップ73)。なお、初回フラグF_FSTαは、エンジン3の始動時に、「0」にリセットされる。
上記ステップ73の答がNOのとき、すなわち、今回の燃料噴射量QINJの増量が、エンジン3の始動後の最初の増量であるときには、ダウンカウント式のタイマのタイマ値DTMを、所定時間DTMα(例えば100msec)にセットする(ステップ74)。次いで、初回フラグF_FSTαを「1」にセットする(ステップ75)とともに、燃料噴射量QINJを増量時燃料噴射量UQINJとして設定し(ステップ83)、本処理を終了する。
2回目以降の燃料噴射量QINJの増量が行われたときには、上記ステップ75の実行によりステップ73の答がYESになるので、その場合には、そのときに得られている増量時燃料噴射量UQINJをその前回値UQINJZとして設定する(ステップ76)。次いで、燃料噴射量QINJを増量時燃料噴射量の今回値UQINJとして設定する(ステップ77)。
次に、タイマ値DTMが値0であるか否かを判別する(ステップ78)。この答がNOのとき、すなわち、燃料噴射量QINJの前回の増量から今回の増量までの時間間隔が所定時間DTMαよりも短いときには、第2補正フラグF_C2を「1」にセットする(ステップ79)。次いで、後述する第2増量補正の実行の継続時間を計時するアップカウント式のタイマのタイマ値TMC2を値0にリセットする(ステップ80)とともに、タイマ値DTMを所定時間DTMαにセットし(ステップ81)、本処理を終了する。
一方、上記ステップ78の答がYESで、燃料噴射量QINJの前回の増量から今回の増量までの時間間隔が比較的長いときには、第2補正フラグF_C2を「0」にセットし(ステップ82)、上記ステップ81を実行する。
上記ステップ79の実行により、前記ステップ68の答がYESになり、その場合には、上記ステップ80で値0にリセットしたタイマ値TMC2が所定時間TMREF以上であるか否かを判別する(ステップ69)。この答がNOのとき、すなわち、第2増量補正の実行後、所定時間TMREFが経過していないときには、前記ステップ71以降を実行する。一方、上記ステップ69の答がYESで、第2増量補正の実行後、所定時間TMREFが経過したときには、第2補正フラグF_C2を「0」にリセットし(ステップ70)、本処理を終了する。
図8に戻り、前記ステップ61の答がNO(F_C2=0)のとき、すなわち、燃料噴射量QINJの増量と減量が交互に繰り返された場合において、その前回の増量から今回の増量までの時間間隔が比較的長いときには、前記ステップ23以降を実行し、変化率ΔQINJに基づいて算出した増量補正値CQAによる目標吸入空気量QACMDの増量補正を行う。以下、この増量補正を第1増量補正という。
一方、ステップ61の答がYESで、燃料噴射量QINJの前回の増量から今回の増量までの時間間隔が短いときには、上記の第1増量補正の実行による目標吸入空気量QACMDの過大化を回避するため、次のステップ62〜65を実行し、目標吸入空気量QACMDの第2増量補正を行う。まず、ステップ62では、増量時燃料噴射量の今回値UQINJからその前回値UQINJZを減算することによって、噴射量偏差ΔUQINJを算出する。前記ステップ77から、増量時燃料噴射量UQINJは、今回の増量時の燃料噴射量QINJである。したがって、噴射量偏差ΔUQINJは、今回の増量による燃料噴射量QINJと前回の増量による燃料噴射量QINJとの偏差を表す。
次いで、噴射量偏差ΔUQINJが所定のしきい値ΔUQREFよりも大きいか否かを判別する(ステップ63)。この答がYESのとき、すなわち、今回の増量による燃料噴射量QINJが前回の増量による燃料噴射量QINJよりも大きく、かつ両者の偏差が大きいときには、前記ステップ25と同様、減衰係数KDEを所定値KDEαに設定する(ステップ64)。次いで、噴射量偏差ΔUQINJに基づき、マップ(図示せず)を検索することによって、増量補正値の加算項CQATを算出し(ステップ65)、前記ステップ27以降を実行する。このマップでは、加算項CQATは、噴射量偏差ΔUQINJが大きいほど、より大きな値に設定されている。
一方、上記ステップ63の答がNOで、ΔUQINJ≦ΔUQREFのとき、すなわち、今回の増量による燃料噴射量QINJが前回の増量による燃料噴射量QINJ以下のとき、または、前者が後者よりも大きくても両者の偏差が小さいときには、前記ステップ29〜31などを実行する。これにより、増量補正値CQAが、最終増量補正値CQAFINからほぼ値0になるまで漸減される。したがって、第2増量補正を実行した場合にも、吸入空気量QAの制御を、エンジン3のトルク段差を生じることなく、増量補正値CQAを用いた増量制御から通常の制御に円滑に復帰させることができる。
以上のように、本実施形態によれば、燃料噴射量QINJの増量と減量が交互に繰り返された場合において、その前回の増量から今回の増量までの時間間隔が所定時間DTMαよりも短いとき(ステップ78:NO)、すなわち、燃料噴射量QINJの増量間の時間間隔が実際に短いときには、目標吸入空気量QACMDの第2増量補正を行う(ステップ79、61、62、65、27、13)。この第2増量補正では、第1増量補正と異なり、噴射量偏差ΔUQINJ、すなわち、今回の増量による燃料噴射量QINJと前回の増量による燃料噴射量QINJとの偏差に基づいて、目標吸入空気量QACMDを増量補正する。このように、燃料噴射量QINJの増量間の時間間隔が短いときに、目標吸入空気量QACMDの増量補正を禁止する第2実施形態と異なり、増量された燃料噴射量QINJの実際の変化状態に応じて吸入空気量QAを制御するので、例えば、運転者の加速要求に応じて、吸入空気量QAをよりきめ細かく適切に制御することができる。
なお、本発明は、説明した実施形態に限定されることなく、種々の態様で実施することができる。例えば、実施形態は、吸入空気量QAを目標吸入空気量QACMDにフィードバック制御する例であるが、これに限らず、吸入空気量QAを目標吸入空気量QACMDにオープン制御してもよい。また、実施形態では、吸入空気量可変機構として、主としてEGR装置9を用いているが、吸入空気量を変更可能な他の機構、例えばスロットル弁機構や可変ノズル式過給機、電動駆動式過給機などを用いてもよく、あるいは、これらを組み合わせて用いてもよい。さらに、実施形態では、吸気パラメータとして、吸入空気量QAを用いているが、吸入空気量を表す他の適当なパラメータ、例えば、EGR制御弁9bのバルブリフト量、EGRガス量や過給圧などを用いてもよい。また、第1実施形態では、第2供給燃料量決定手段は、TRCを行うためのものであるが、アクセル開度APとは無関係に、燃料噴射量QINJの増量と減量を交互に繰り返すのであれば、他の目的のために行うものであってもよい。
さらに、実施形態では、増量補正値CQAの漸減を、変化率ΔQINJがしきい値ΔQREF以下になったときから開始しているが、それ以前に、例えば、変化率ΔQINJがしきい値ΔQREFよりも大きくなったときから開始してもよい。また、第2および第3実施形態では、目標吸入空気量QACMDの増量補正の禁止および第2増量補正の実行の判定にそれぞれ用いられる所定時間DTMαを、一定の値に設定しているが、次のようにして設定してもよい。すなわち、前述したように、目標吸入空気量QACMDを基準目標値QABASEに漸減するのに要する時間(以下「減衰時間」という)は、最終増量補正値CQAFINが大きいほど、長くなるように設定されているので、この減衰時間を算出するとともに、所定時間DTMαを、算出した減衰時間に応じ、例えば、減衰時間の1/2になるように算出するようにしてもよい。これにより、実際の減衰時間に応じて、増量補正の禁止や第2増量補正の実行を適切に行うことができる。
さらに、本実施形態では、TRCおよびVSAの実行中において、燃料噴射量QINJの増量の際に用いられる所定の燃料量QINJαを算出するためのパラメータとして、エンジン回転数NEおよびアクセル開度APを用いているが、他の適当なパラメータを用いてもよい。例えば、TRCの実行中には、前輪・後輪速度VFL,VFR、VRL,VRRを、VSAの実行中には、さらに、舵角SDH、横加速度GTR、前後加速度GLOやヨーレートYRを用いてもよい。また、実施形態では、TRCおよびVSAの実行中において、燃料噴射量QINJの減量の際、燃料噴射量QINJを、値0に一律に設定しているが、増量された燃料噴射量QINJよりも小さければ任意の値に設定してもよく、さらに、減量ごとに、異なる値に設定してもよい。
さらに、実施形態は、本発明をディーゼルエンジンに適用した例であるが、本発明は、これに限らず、ディーゼルエンジン以外の各種のエンジン、例えば、ガソリンエンジンやクランク軸を鉛直方向に配置した船外機などのような船舶推進機用エンジンに適用可能である。その他、本発明の趣旨の範囲内で、細部の構成を適宜、変更することが可能である。