[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

JP2008031929A - 内燃機関の空燃比制御装置及び内燃機関の燃料噴射量制御装置 - Google Patents

内燃機関の空燃比制御装置及び内燃機関の燃料噴射量制御装置 Download PDF

Info

Publication number
JP2008031929A
JP2008031929A JP2006207014A JP2006207014A JP2008031929A JP 2008031929 A JP2008031929 A JP 2008031929A JP 2006207014 A JP2006207014 A JP 2006207014A JP 2006207014 A JP2006207014 A JP 2006207014A JP 2008031929 A JP2008031929 A JP 2008031929A
Authority
JP
Japan
Prior art keywords
downstream
fuel ratio
air
correction amount
value
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2006207014A
Other languages
English (en)
Inventor
Taiga Hagimoto
大河 萩本
Takahiko Fujiwara
孝彦 藤原
Norihisa Nakagawa
徳久 中川
Junichi Kako
純一 加古
Naoto Kato
直人 加藤
Shuntaro Okazaki
俊太郎 岡崎
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toyota Motor Corp
Original Assignee
Toyota Motor Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toyota Motor Corp filed Critical Toyota Motor Corp
Priority to JP2006207014A priority Critical patent/JP2008031929A/ja
Publication of JP2008031929A publication Critical patent/JP2008031929A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Electrical Control Of Air Or Fuel Supplied To Internal-Combustion Engine (AREA)
  • Combined Controls Of Internal Combustion Engines (AREA)

Abstract

【課題】実際の空燃比を目標とする空燃比により迅速に一致させることができる内燃機関の空燃比制御装置を提供すること。
【解決手段】この装置は燃料増量期間Trcに続く過渡期間Tk中、現時点の出力偏差(触媒下流の空燃比センサの出力値と目標値との差)に基づいて出力偏差を時間積分した第1の時間積分値SDVoxs1を更新し更新された第1の時間積分値に基づいて下流側FB補正量を更新するとともに第2の時間積分値SDVoxs2及び下流側FB学習補正量を一定に維持し且つ下流側FB補正量と下流側FB学習補正量とに基づいて燃料噴射量を決定する。装置は過渡期間後、第1の時間積分値及び下流側FB補正量の更新を継続するとともに、現時点の出力偏差に基づいて第2の時間積分値を更新し更新された第2の時間積分値に基づいて下流側FB学習補正量を更新する。これにより下流側FB補正量及び下流側FB学習補正量を適切に算出することができる。
【選択図】図5

Description

本発明は、排気通路に配設された空燃比センサを備える内燃機関に適用され、内燃機関に供給される混合ガスの空燃比を空燃比センサの出力値に基づいてフィードバック制御する内燃機関の空燃比制御装置に関する。また、本発明は、上記内燃機関に適用され、内燃機関に供給するために噴射される燃料の量である燃料噴射量を空燃比センサの出力値に基づいてフィードバック制御する内燃機関の燃料噴射量制御装置に関する。
従来から、内燃機関に供給される(内燃機関の燃焼室内に形成される)混合ガスの空燃比(内燃機関の空燃比)をフィードバック(FB)制御する空燃比制御装置が知られている。このような空燃比制御装置の一つは、排ガス中の有害物質を浄化するように排気通路に配設された排気浄化用触媒(触媒)の上流及び下流のそれぞれにて排気通路に配設された空燃比センサ(上流側空燃比センサ及び下流側空燃比センサ)を備えている。
この制御装置は、内燃機関の目標空燃比が理論空燃比に設定されている場合、下流側空燃比センサの実際の出力値と下流側目標値との差(以下、単に、「出力偏差」と称呼する。)に基づいて下流側FB補正量Vsbを算出する。この下流側目標値は、空燃比が理論空燃比であるガスが下流側空燃比センサに到達している場合におけるその下流側空燃比センサの出力に相当する値に設定されている。
更に、制御装置は、内燃機関の目標空燃比が理論空燃比に設定されている場合、下流側FB補正量Vsbと上流側空燃比センサの実際の出力値と内燃機関の目標空燃比とに基づいて上流側FB補正量を決定する。一方、制御装置は、内燃機関の目標空燃比が理論空燃比以外の空燃比に設定されている場合、下流側FB補正量Vsbを用いることなく、上流側空燃比センサの実際の出力値及びその目標空燃比に基づいて上流側FB補正量を決定する。そして、制御装置は、そのように決定された上流側FB補正量に基づいて燃料噴射量を決定する。
この下流側FB補正量Vsbは、上述の下流側FB補正量Vsbを用いた空燃比のFB制御が十分に長い時間にわたって行われ続けた状態(定常状態)における出力偏差(この場合、「定常偏差」ということができる。)を0にするため、出力偏差の時間積分値に所定のゲインを乗じることにより算出される積分項を含んでいる。従って、上流側空燃比センサが劣化した等の理由により上流側空燃比センサの出力値と触媒の上流の実際の空燃比(上流側空燃比)との間の対応関係が予定されていた対応関係と相違している(上流側空燃比センサの出力ズレが生じている)場合であっても、この制御装置によれば、定常状態において、触媒の下流の空燃比(下流側空燃比)を下流側目標値に対応する空燃比(下流側目標空燃比)に一致させることができる。換言すると、上記上流側空燃比センサの出力ズレを補償することができる。
ところで、上述したように、内燃機関の目標空燃比が理論空燃比以外の空燃比に設定されている場合、燃料噴射量を決定する際に下流側FB補正量Vsbが使用されないので、上記上流側空燃比センサの出力ズレが補償されない。従って、上流側空燃比センサの出力値が目標空燃比に対応する上流側目標値に一致するように制御されていても、内燃機関の実際の空燃比を目標空燃比に一致させることができない恐れがある。
そこで、他の制御装置は、上記定常状態において算出される下流側FB補正量Vsbに基づいて下流側FB学習補正量Vsgを求める。そして、制御装置は、内燃機関の目標空燃比が理論空燃比以外の空燃比に設定されている場合、求められた下流側FB学習補正量Vsgと上流側空燃比センサの実際の出力値と内燃機関の目標空燃比とに基づいて上流側FB補正量を決定する。これにより、内燃機関の目標空燃比が理論空燃比以外の空燃比に設定されている場合においても、上記上流側空燃比センサの出力ズレが補償される。この結果、内燃機関の実際の空燃比を上記目標空燃比に一致させることができる(特許文献1を参照。)。
特開2005−61356号公報
しかしながら、上記制御装置によると、以下にタイムチャートである図1を参照しながら説明するような問題が生じる。
先ず、図1に示した時刻t0よりも前の期間Aにおいて、制御装置は内燃機関の目標空燃比を理論空燃比に設定していると仮定する。このとき、制御装置は、図1の(B)に示した下流側空燃比センサの実際の出力値と下流側目標値Vrefとの差(出力偏差)Δを時間積分することにより図1の(F)に示す曲線CSのように時間積分値を更新する。そして、制御装置は、下流側FB補正量Vsbの積分項を更新された時間積分値に基づいて算出し下流側FB補正量Vsbを更新するとともに、その下流側FB補正量Vsb(従って、時間積分値)に基づいて図1の(F)の曲線CGに示した下流側FB学習補正量Vsgを更新する。更に、制御装置は、算出された下流側FB補正量Vsbと、算出された下流側FB学習補正量Vsgと、上流側空燃比センサの実際の出力値Vと、目標空燃比と、に基づいて上流側FB補正量DFiを決定する。そして、制御装置は、理論空燃比に対応する基本燃料噴射量Fisと上流側FB補正量DFiとに基づいて燃料噴射量Fiを決定する。これにより、内燃機関の空燃比が目標空燃比である理論空燃比に制御される。
次いで、時点t0にて燃料カット実行条件が成立すると仮定する。燃料カット実行条件が成立している期間である燃料カット条件成立期間(時点t0〜時点t1)Tfcにおいては、制御装置は燃料の噴射を停止させる(燃料カット制御を行う)。これにより、触媒が吸蔵する酸素の量(酸素吸蔵量)は増加する。更に、燃料カット条件成立期間Tfc中、制御装置は、時間積分値の更新を停止(時間積分値を一定に維持)し、且つ、下流側FB学習補正量Vsgの更新を停止して下流側FB学習補正量Vsgを一定に維持する。当然、制御装置は、空燃比のFB制御を行わない。
時点t1にて燃料カット実行条件が不成立となった(成立しなくなった)とき、酸素吸蔵量は、適量(例えば、酸素吸蔵量の最大値の半分の量)よりも過度に多くなっている。従って、制御装置は、酸素吸蔵量を迅速に減少させるために、燃料カット条件成立期間Tfcが終了した時点から所定時間が経過するまでの期間である燃料増量期間(時点t1〜時点t2)Trc中、内燃機関の目標空燃比を理論空燃比よりもリッチ側の空燃比(燃料増量用空燃比)に設定する(燃料増量制御を行う)。
この燃料増量期間Trcにおいて、制御装置は、燃料カット条件成立期間Tfcと同様、時間積分値の更新を停止(時間積分値を一定に維持)し、且つ、下流側FB学習補正量Vsgの更新を停止して下流側FB学習補正量Vsgを一定に維持する。そして、制御装置は、下流側FB補正量Vsbに基づくことなく、一定値に維持された下流側FB学習補正量Vsgと、上流側空燃比センサの実際の出力値Vと、目標空燃比と、に基づいて上流側FB補正量を決定する。そして、制御装置は、燃料増量用空燃比に対応する基本燃料噴射量Firと上流側FB補正量DFiとに基づいて燃料噴射量Fiを決定する。これにより、内燃機関の空燃比が目標空燃比である燃料増量用空燃比に制御される。
次に、時点t2以降の期間Bになると、触媒の酸素吸蔵量が略適量になっていることから、制御装置は、内燃機関の目標空燃比を理論空燃比に設定する。更に、制御装置は、時間積分値の更新を再開するとともに、その時間積分値に基づいて下流側FB補正量Vsb及び下流側FB学習補正量Vsgを算出する。加えて、制御装置は、算出された下流側FB補正量Vsbと、算出された下流側FB学習補正量Vsgと、上流側空燃比センサの実際の出力値と、目標空燃比と、に基づいて上流側FB補正量を決定する。そして、制御装置は、理論空燃比に対応する基本燃料噴射量Fisと上流側FB補正量DFiとに基づいて燃料噴射量Fiを決定する。これにより、内燃機関の空燃比は理論空燃比に制御される。
このように、従来の制御装置によれば、燃料増量期間Trc中、時間積分値の更新が停止されるとともに下流側FB学習補正量Vsgの更新も停止されるので、内燃機関の状態が上記定常状態とならない燃料増量期間Trcにおける出力偏差の影響を受けた下流側FB補正量Vsbに基づいて下流側FB学習補正量Vsgが算出されることはない。従って、下流側FB学習補正量Vsgが上記上流側空燃比センサの出力ズレを補償するための値として不適切な値となることを防止することができる。
ところで、燃料増量期間Trcが終了してから所定時間が経過するまでの過渡期間Tk(時点t2〜時点t3)においては、目標空燃比が変更された直後であるので内燃機関の状態は上記定常状態となっていない。従って、この過渡期間Tkにおける出力偏差の影響を受けた下流側FB補正量Vsbに基づいて下流側FB学習補正量Vsgを算出すると、算出された下流側FB学習補正量Vsgは上記上流側空燃比センサの出力ズレを補償するための値として不適切な値となる恐れがある。即ち、過渡期間Tkにおいては、下流側FB学習補正量Vsgの更新を停止することが望ましい。更に、過渡期間Tk終了後に算出される下流側FB学習補正量Vsgの値を適切な値とするためには、過渡期間Tkにおいて下流側FB補正量Vsbの更新を停止しておくことが望ましく、そのために下流側FB補正量Vsbを算出する基となる時間積分値の更新も過渡期間Tkにおいて停止することが望ましい。
一方、この過渡期間Tkにおいては、内燃機関の目標空燃比が理論空燃比に設定されている。従って、下流側空燃比を下流側目標空燃比に迅速に一致させるために、上述したように、過渡期間Tkにおいて時間積分値を更新して下流側FB補正量Vsbを算出し且つ算出した下流側FB補正量Vsbによって内燃機関の空燃比を制御することも望ましい。
このように、上記制御装置においては、過渡期間Tkにおいて下流側FB補正量Vsbを更新するために時間積分値を更新すると、過渡期間Tkの終了後に下流側FB学習補正量Vsgが不適切な値に更新される恐れがある。逆に、過渡期間Tk経過後の下流側FB学習補正量Vsgを適切な値とするために過渡期間Tkにおいて時間積分値の更新を停止すると、過渡期間Tkにおいて下流側FB補正量Vsbの積分項を更新できなくなるので、エミッションをより良好にできないという問題がある。
本発明は上述した課題に対処するためになされたものであって、その目的の一つは、実際の空燃比を目標とする空燃比により迅速に一致させることができる内燃機関の空燃比制御装置を提供することにある。
かかる目的を達成するため本発明による内燃機関の空燃比制御装置は、排気通路に排気浄化用触媒を配設した内燃機関に適用される。
更に、本発明による内燃機関の空燃比制御装置は、
前記排気浄化用触媒の上流の前記排気通路に配設され同排気通路を実際に流れるガスの空燃比に応じた出力値を出力する上流側空燃比センサと、
前記排気浄化用触媒の下流の前記排気通路に配設され同排気通路を実際に流れるガスの空燃比に応じた出力値を出力する下流側空燃比センサと、
前記上流側空燃比センサの出力値と前記下流側空燃比センサの出力値とに基づいて上流側フィードバック補正量を算出し、同算出された上流側フィードバック補正量に基づいて前記内燃機関に供給される混合ガスの空燃比を制御する空燃比フィードバック制御手段と、を備える。
加えて、前記空燃比フィードバック制御手段は、下流側フィードバック補正量算出手段と、下流側フィードバック学習補正量算出手段と、時間積分値設定手段と、上流側フィードバック補正量算出手段と、を備える。
前記下流側フィードバック補正量算出手段は、所定の下流側フィードバック実行条件が成立している下流側フィードバック条件成立期間において、前記下流側空燃比センサの出力値と所定の下流側目標値との差である出力偏差を時間積分した第1の時間積分値を現時点にて求められている同第1の時間積分値と現時点の同出力偏差とに基づいて更新するとともに同更新された第1の時間積分値に基づいて下流側フィードバック補正量を算出する手段である。
前記下流側フィードバック学習補正量算出手段は、前記下流側フィードバック実行条件に更に条件が付加された所定の学習実行条件が成立している学習条件成立期間において前記出力偏差を時間積分した第2の時間積分値を現時点にて求められている同第2の時間積分値と現時点の同出力偏差とに基づいて更新するとともに同更新された第2の時間積分値に基づいて下流側フィードバック学習補正量を算出し、且つ、同学習実行条件が成立していない学習条件不成立期間において同下流側フィードバック学習補正量を一定に維持する手段である。
前記時間積分値設定手段は、前記学習実行条件が第1時点において成立しなくなりその後の第2時点において成立した場合、同第2時点における前記第2の時間積分値を同第1時点から同第2時点までの前記出力偏差とは無関係な所定の値に設定する手段である。
前記上流側フィードバック補正量算出手段は、前記下流側フィードバック条件成立期間において前記下流側フィードバック補正量と前記下流側フィードバック学習補正量と前記上流側空燃比センサの出力値とに基づいて前記上流側フィードバック補正量を算出し、且つ、前記下流側フィードバック実行条件が成立していない下流側フィードバック条件不成立期間において前記下流側フィードバック補正量に基づくことなく前記下流側フィードバック学習補正量と前記上流側空燃比センサの出力値とに基づいて前記上流側フィードバック補正量を算出する手段である。
これによれば、学習実行条件は下流側フィードバック実行条件に更に条件が付加された条件であるから、下流側フィードバック実行条件が成立していても、学習実行条件が成立していない場合が存在する。即ち、下流側フィードバック条件成立期間と学習条件不成立期間とが重複している重複期間が生じる。例えば、この重複期間は、内燃機関の目標空燃比が理論空燃比よりもリッチ側の空燃比に設定される燃料増量期間と、それに続く期間であって内燃機関の目標空燃比が理論空燃比に設定される通常期間と、が存在する場合において、通常期間のうちの燃料増量期間が終了してから所定の過渡時間が経過するまでの過渡期間である。
この重複期間においては、その重複期間における出力偏差に基づいて第1の時間積分値が更新され、更新された第1の時間積分値に基づいて下流側フィードバック補正量が算出される。これにより、重複期間中の下流側フィードバック補正量を、重複期間における出力偏差が反映されない時間積分値に基づいて算出する場合よりも適切に算出することができる。この結果、重複期間において、排気浄化用触媒(触媒)の下流の空燃比(下流側空燃比)を下流側目標値に対応する空燃比(下流側目標空燃比)に迅速に近づけることができる。
一方、学習条件不成立期間中、下流側フィードバック学習補正量は、重複期間であるか否かにかかわらず一定に維持される。更に、学習条件不成立期間の終了時点(第2時点)において、第2の時間積分値は、学習条件不成立期間(第1時点から第2時点までの期間)における出力偏差とは無関係な所定の値(即ち、学習条件成立期間のみにおける出力偏差を時間積分することにより算出される出力偏差の時間積分値に基づく値、例えば、第1時点における第2の時間積分値)に設定される。
これにより、学習条件不成立期間(特に、重複期間)における出力偏差が下流側フィードバック学習補正量に反映されることを回避できるので、下流側フィードバック学習補正量が不適切な値となることを防止することができる。この結果、上流側空燃比センサの出力値と触媒の上流の実際の空燃比(上流側空燃比)との間の対応関係の予定されていた対応関係に対するズレ(上流側空燃比センサの出力ズレ)を適切に補償することができ、内燃機関の実際の空燃比を目標とする空燃比に確実に一致させることができる。
また、本発明による他の内燃機関の空燃比制御装置は、上述した内燃機関に適用され、
前記排気浄化用触媒の上流の前記排気通路に配設され同排気通路を実際に流れるガスの空燃比に応じた出力値を出力する上流側空燃比センサと、
前記排気浄化用触媒の下流の前記排気通路に配設され同排気通路を実際に流れるガスの空燃比に応じた出力値を出力する下流側空燃比センサと、
前記上流側空燃比センサの出力値と前記下流側空燃比センサの出力値とに基づいて上流側フィードバック補正量を算出し、同算出された上流側フィードバック補正量に基づいて前記内燃機関に供給される混合ガスの空燃比を制御する空燃比フィードバック制御手段と、を備える。
更に、前記空燃比フィードバック制御手段は、時間積分値更新手段と、下流側フィードバック補正量算出手段と、下流側フィードバック学習補正量算出手段と、時間積分値設定手段と、上流側フィードバック補正量算出手段と、を備える。
前記時間積分値更新手段は、前記下流側空燃比センサの出力値と所定の下流側目標値との差である出力偏差を時間積分した時間積分値を現時点にて求められている同時間積分値と現時点の同出力偏差とに基づいて更新する手段である。
前記下流側フィードバック補正量算出手段は、所定の下流側フィードバック実行条件が成立している下流側フィードバック条件成立期間において前記時間積分値に基づいて下流側フィードバック補正量を算出する手段である。
前記下流側フィードバック学習補正量算出手段は、前記下流側フィードバック実行条件に更に条件が付加された所定の学習実行条件が成立している学習条件成立期間において前記時間積分値に基づいて下流側フィードバック学習補正量を算出し、且つ、同学習実行条件が成立していない学習条件不成立期間において同下流側フィードバック学習補正量を一定に維持する手段である。
前記時間積分値設定手段は、前記学習実行条件が第1時点において成立しなくなりその後の第2時点において成立した場合に同第2時点における前記時間積分値を同第1時点から同第2時点までの前記出力偏差とは無関係な所定の値に設定する手段である。
前記上流側フィードバック補正量算出手段は、前記下流側フィードバック条件成立期間において前記下流側フィードバック補正量と前記下流側フィードバック学習補正量と前記上流側空燃比センサの出力値とに基づいて前記上流側フィードバック補正量を算出し、且つ、前記下流側フィードバック実行条件が成立していない下流側フィードバック条件不成立期間において前記下流側フィードバック補正量に基づくことなく前記下流側フィードバック学習補正量と前記上流側空燃比センサの出力値とに基づいて前記上流側フィードバック補正量を算出する手段である。
これによれば、上述した内燃機関の空燃比制御装置と同様に、学習条件不成立期間と下流側フィードバック条件成立期間とが重複している重複期間が生じる。この重複期間においては、その重複期間における出力偏差に基づいて時間積分値が更新され、更新された時間積分値に基づいて下流側フィードバック補正量が算出される。これにより、重複期間中の下流側フィードバック補正量を、重複期間における出力偏差が反映されない時間積分値に基づいて算出する場合よりも適切に算出することができる。この結果、重複期間において、下流側空燃比を下流側目標空燃比に迅速に近づけることができる。
一方、学習条件不成立期間中、下流側フィードバック学習補正量は、重複期間であるか否かにかかわらず一定に維持される。更に、学習条件不成立期間の終了時点(第2時点)において、時間積分値は、学習条件不成立期間(第1時点から第2時点までの期間)における出力偏差とは無関係な所定の値(即ち、学習条件成立期間のみにおける出力偏差を時間積分することにより算出される出力偏差の時間積分値に基づく値、例えば、第1時点における時間積分値)に設定される。
これにより、学習条件不成立期間(特に、重複期間)における出力偏差が下流側フィードバック学習補正量に反映されることを回避できるので、下流側フィードバック学習補正量が不適切な値となることを防止することができる。この結果、上流側空燃比センサの出力ズレを適切に補償することができ、内燃機関の実際の空燃比を目標とする空燃比に確実に一致させることができる。
一方、本発明の目的の他の一つは、実際の空燃比を目標とする空燃比により迅速に一致させることができる内燃機関の燃料噴射量制御装置を提供することにある。
かかる目的を達成するため本発明に係る内燃機関の燃料噴射量制御装置は、上述した内燃機関に適用され、
前記内燃機関に供給される燃料を噴射する燃料噴射手段と、
前記排気浄化用触媒の上流の前記排気通路に配設され同排気通路を実際に流れるガスの空燃比に応じた出力値を出力する上流側空燃比センサと、
前記排気浄化用触媒の下流の前記排気通路に配設され同排気通路を実際に流れるガスの空燃比に応じた出力値を出力する下流側空燃比センサと、
を備え、前記燃料噴射手段により噴射される燃料の量である燃料噴射量を制御する装置である。
更に、この燃料噴射量制御装置は、燃料カット手段と、燃料増量手段と、下流側フィードバック補正量算出手段と、下流側フィードバック学習補正量算出手段と、燃料噴射量フィードバック制御手段と、を備える。
前記燃料カット手段は、所定の燃料カット実行条件が成立している期間である燃料カット条件成立期間中、前記燃料噴射手段による燃料の噴射を停止させる手段である。
前記燃料増量手段は、前記燃料カット条件成立期間が終了してから所定の燃料増量時間が経過するまでの燃料増量期間中、前記内燃機関に供給される混合ガスの空燃比が理論空燃比よりもリッチ側の所定の燃料増量用空燃比となるように前記燃料噴射量を制御する手段である。
前記下流側フィードバック補正量算出手段は、前記燃料カット条件成立期間及び前記燃料増量期間を含まない期間のうちの所定の下流側フィードバック実行条件が成立している期間である下流側フィードバック条件成立期間中、前記下流側空燃比センサの出力値と理論空燃比に対応する所定の下流側目標値との差である出力偏差に基づいて下流側フィードバック補正量を算出する手段である。
前記下流側フィードバック学習補正量算出手段は、前記下流側フィードバック条件成立期間のうちの前記燃料増量期間が終了してから所定の過渡時間が経過するまでの過渡期間を含まない期間である学習条件成立期間中、前記出力偏差に基づいて下流側フィードバック学習補正量を算出し、且つ、同学習条件成立期間以外の学習条件不成立期間中、同下流側フィードバック学習補正量を一定に維持する手段である。
前記燃料噴射量フィードバック制御手段は、前記下流側フィードバック条件成立期間中、前記下流側フィードバック補正量と前記下流側フィードバック学習補正量と前記上流側空燃比センサの出力値とに基づいて上流側フィードバック補正量を算出し同算出された上流側フィードバック補正量に基づいて前記燃料噴射量を制御し、且つ、前記下流側フィードバック実行条件が成立していない下流側フィードバック条件不成立期間内の期間であって少なくとも前記燃料カット条件成立期間を含まない期間中、前記下流側フィードバック学習補正量と前記上流側空燃比センサの出力値とに基づいて上流側フィードバック補正量を算出し同算出された上流側フィードバック補正量に基づいて前記燃料噴射量を制御する手段である。
これによれば、過渡期間は、下流側フィードバック条件成立期間内の期間である。更に、過渡期間は、学習条件成立期間に含まれない。即ち、過渡期間は、下流側フィードバック条件成立期間と学習条件不成立期間とが重複している期間(重複期間)である。この重複期間においては、その重複期間における出力偏差に基づいて下流側フィードバック補正量が算出される。これにより、重複期間中の下流側フィードバック補正量を、重複期間における出力偏差が下流側フィードバック補正量に反映されない場合よりも適切に算出することができる。この結果、重複期間において、下流側空燃比を下流側目標空燃比に迅速に近づけることができる。
更に、学習条件不成立期間中、下流側フィードバック学習補正量は、重複期間であるか否かにかかわらず一定に維持される(更新が停止される)。これにより、下流側フィードバック補正量を用いた空燃比のフィードバック制御が十分に長い時間にわたって行われていない過渡期間における出力偏差に基づいて下流側フィードバック学習補正量が更新されることを回避できる。従って、下流側フィードバック学習補正量が不適切な値となることを防止することができる。この結果、上流側空燃比センサの出力ズレを適切に補償することができ、内燃機関の実際の空燃比を目標とする空燃比に確実に一致させることができる。
<第1実施形態>
以下、本発明による内燃機関の空燃比制御装置(燃料噴射量制御装置)の各実施形態について図面を参照しながら説明する。図2は、本発明の第1実施形態による内燃機関の空燃比制御装置を4サイクル火花点火方式により運転される多気筒(4気筒)内燃機関10に適用したシステムの概略構成を示している。なお、図2は、特定気筒の断面のみを示しているが、他の気筒も同様な構成を備えている。
この内燃機関10は、シリンダブロック、シリンダブロックロワーケース及びオイルパン等を含むシリンダブロック部20と、シリンダブロック部20の上に固定されるシリンダヘッド部30と、シリンダブロック部20に混合ガス(本例では、ガソリン混合気)を供給するための吸気系統40と、シリンダブロック部20からの排ガスを外部に放出するための排気系統50と、を含んでいる。
シリンダブロック部20は、シリンダ21、ピストン22、コンロッド23及びクランク軸24を含んでいる。ピストン22はシリンダ21内を往復動し、ピストン22の往復動がコンロッド23を介してクランク軸24に伝達され、これによりクランク軸24が回転するようになっている。シリンダ21、ピストン22のヘッド及びシリンダヘッド部30は、燃焼室(気筒)25を形成している。
シリンダヘッド部30は、燃焼室25に連通した吸気ポート31、吸気ポート31を開閉する吸気弁32、吸気弁32を駆動するインテークカムシャフトを含むとともにインテークカムシャフトの位相角を連続的に変更する可変吸気タイミング装置33、可変吸気タイミング装置33のアクチュエータ33a、燃焼室25に連通した排気ポート34、排気ポート34を開閉する排気弁35、排気弁35を駆動するエキゾーストカムシャフト36、点火プラグ37、点火プラグ37に与える高電圧を発生するイグニッションコイルを含むイグナイタ38及び燃料を吸気ポート31内に噴射することにより燃焼室25内に燃料を供給するインジェクタ(燃料噴射手段)39を備えている。
吸気系統40は、各気筒の吸気ポート31に連通し吸気ポート31とともに吸気通路を形成するインテークマニホールドを含む吸気管41、吸気管41の端部に設けられたエアフィルタ42、吸気管41内にあって吸気通路の開口断面積を可変とするスロットル弁43及びDCモータからなるスロットル弁アクチュエータ43aを備えている。吸気系統40は、外部から空気を取り込むとともに取り込んだ空気を各気筒の燃焼室25へ供給するようになっている。
排気系統50は、各気筒の排気ポート34にそれぞれ連通する独立した複数の通路及びそれらの通路を下流にて集合させる集合部からなるエキゾーストマニホールド51、エキゾーストマニホールド51の集合部に接続されたエキゾーストパイプ(排気管)52、エキゾーストパイプ52に配設(介装)された排気浄化用触媒としての三元触媒53(上流側触媒コンバータ又はスタート・キャタリティック・コンバータとも云うが、以下「第1触媒53」と称呼する。)及び第1触媒53の下流のエキゾーストパイプ52に配設(介装)された下流側の三元触媒54(車両のフロア下方に配設されるので、アンダ・フロア・キャタリティック・コンバータとも云うが、以下「第2触媒54」と称呼する。)を備えている。排気ポート34、エキゾーストマニホールド51及びエキゾーストパイプ52は、排気通路を構成している。排気通路は、燃焼室25にて燃料と空気とを含む混合ガスが燃焼することにより生成された燃焼ガスである排ガスが通過するようになっている。
第1触媒53及び第2触媒54のそれぞれは、排ガス中の酸素を吸蔵するようになっている。更に、第1触媒53及び第2触媒54のそれぞれは、排ガス中の燃料の未燃成分と、排ガス中の酸素又は上記吸蔵された酸素と、の反応を促進することにより排ガス中の有害物質を浄化する(排ガスを浄化する)ようになっている。
一方、このシステムは、熱線式のエアフローメータ61、スロットルポジションセンサ62、カムポジションセンサ63、クランクポジションセンサ64、水温センサ65、第1触媒53の上流の排気通路(本例では、上記エキゾーストマニホールド51の集合部)に配設された空燃比センサ66(以下、「上流側空燃比センサ66」と称呼する。)、第1触媒53の下流であって第2触媒54の上流の排気通路に配設された空燃比センサ67(以下、「下流側空燃比センサ67」と称呼する。)、アクセル開度センサ68及び電気制御装置70を備えている。
エアフローメータ61は、吸気管41内を通る吸入空気の単位時間あたりの質量流量を検出し、吸入空気流量Gaを表す信号を出力するようになっている。
スロットルポジションセンサ62は、スロットル弁43の開度を検出し、スロットル弁開度TAを表す信号を出力するようになっている。
カムポジションセンサ63は、インテークカムシャフトが90°回転する毎に(即ち、クランク軸24が180°回転する毎に)生じる一つのパルスを有する信号(G2信号)を発生するようになっている。
クランクポジションセンサ64は、クランク軸24が10°回転する毎に生じる幅狭のパルスを有するとともにクランク軸24が360°回転する毎に生じる幅広のパルスを有する信号を出力するようになっている。この信号は、エンジン回転速度NEを表す。
水温センサ65は、内燃機関10を冷却する冷却水の温度を検出し、冷却水温THWを表す信号を出力するようになっている。
上流側空燃比センサ66は、限界電流式の空燃比センサである。上流側空燃比センサ66は、検出対象ガス(本例では、第1触媒53の上流の排ガス)中の酸素濃度及び燃料の未燃成分(例えば、炭化水素)濃度に基づいて空燃比A/Fに応じた電流を出力し、出力された電流に応じた電圧Vabyfsを出力値として出力するようになっている。
上流側空燃比センサ66の出力値Vabyfsは、図3に示したように、空燃比A/Fがよりリーン側の空燃比になるにつれて単調に増加し且つ空燃比A/Fに略比例して変化する。更に、上流側空燃比センサ66の出力値Vabyfsは、空燃比A/Fが理論空燃比であるとき、理論空燃比対応出力値Vstに一致する。このような構成により、上流側空燃比センサ66は、広い範囲にわたる空燃比A/Fを精度良く検出する。
下流側空燃比センサ67は、起電力式(濃淡電池式)の空燃比センサである。下流側空燃比センサ67は、検出対象ガス(本例では、第1触媒53の下流の排ガス)中の酸素濃度に基づいて空燃比A/Fに応じた電圧Voxsを出力値として出力するようになっている。
下流側空燃比センサ67の出力値Voxsは、図4に示したように、空燃比A/Fがよりリーン側の空燃比になるにつれて単調に減少する。出力値Voxsは、空燃比A/Fが理論空燃比近傍の値となる領域Dにおいて急変する。即ち、出力値Voxsは、空燃比A/Fが理論空燃比よりもリーン側からリッチ側へ変化する際、又は、その逆向きに変化する際、急変する。出力値Voxsは、空燃比A/Fが領域D以外の空燃比であって理論空燃比よりもリーン側の空燃比であるとき略0.1(V)の値をとりながら空燃比の増大に伴って緩やかに減少し、空燃比A/Fが領域D以外の空燃比であって理論空燃比よりもリッチ側の空燃比であるとき略0.9(V)の値をとりながら空燃比の減少に伴って緩やかに増大する。また、出力値Voxsは、空燃比A/Fが理論空燃比であるとき0.5(V)となる。
再び図2を参照しながら説明を続けると、アクセル開度センサ68は、運転者によって操作されるアクセルペダル81の操作量を検出し、アクセルペダル81の操作量(アクセルペダル操作量)Accpを表す信号を出力するようになっている。
電気制御装置70は、互いにバスで接続されたCPU71、CPU71が実行するルーチン(プログラム)、テーブル(ルックアップテーブル、マップ)及び定数等を予め記憶したROM72、CPU71が必要に応じてデータを一時的に格納するRAM73、電源が投入された状態でデータを格納するとともに格納したデータを電源が遮断されている間も保持するバックアップRAM74並びにADコンバータを含むインターフェース75等からなるマイクロコンピュータである。インターフェース75は、前記センサ61〜68と接続され、CPU71にセンサ61〜68からの信号を供給するとともに、CPU71の指示に応じて可変吸気タイミング装置33のアクチュエータ33a、イグナイタ38、インジェクタ39及びスロットル弁アクチュエータ43aに駆動信号を送出するようになっている。
(空燃比フィードバック制御の概要)
次に、上記のように構成された内燃機関の空燃比制御装置(制御装置)が行う空燃比のフィードバック(FB)制御(空燃比FB制御)について説明する。
空燃比FB制御は、内燃機関10に供給される混合ガスの空燃比を目標空燃比に一致させるために燃料噴射量Fiを決定する制御である。空燃比FB制御は、下記(1)式に従って基本燃料噴射量Fbaseを上流側FB補正量DFiによって補正することにより燃料噴射量Fiを決定する。
Fi=Fbase+DFi …(1)
基本燃料噴射量Fbaseは、目標空燃比を得るために必要と考えられる噴射量であり、別途求められた筒内吸入空気量を目標空燃比により除することによって決定される。上流側FB補正量DFiは、基本燃料噴射量Fbaseの「目標空燃比を得るための噴射量に対する過不足分」を補正する量である。上流側FB補正量DFiは、後に詳述するように、上流側空燃比センサ66の出力値Vabyfs、下流側FB補正量Vafsfb及び下流側FB学習補正量Gsfb(実際には、これらの和)に基づいて求められる。即ち、所定の関数をfにより表すと、上流側FB補正量DFiは下記(2)式のように表される。
DFi=f(Vabyfs+Vafsfb+Gsfb) …(2)
空燃比FB制御は、上記(1)式における上流側FB補正量DFiを上流側FB実行条件の成否に応じた値に設定する。更に、空燃比FB制御は、上記(2)式における下流側FB補正量Vafsfbを下流側FB実行条件の成否に応じた値に設定する。加えて、空燃比FB制御は、上記(2)式における下流側FB学習補正量Gsfbの更新を学習実行条件の成否に応じて行う。以下、各条件について説明する。
(1)上流側FB実行条件(メインフィードバック実行条件)と上流側FB制御
上流側FB実行条件は、上流側空燃比センサ66が正常であり(活性化していることを含む。)、且つ、後述する燃料カット実行条件が成立していないとき、目標空燃比にかかわらず成立する。上流側FB実行条件が成立しているとき、空燃比FB制御は、上流側FB補正量DFiを上記(2)式に基づいて設定する。そして、空燃比FB制御は、上流側FB補正量DFiによって基本燃料噴射量Fbaseを補正することにより燃料噴射量Fiを決定する。即ち、上流側FB(メインFB)制御が実行される。一方、上流側FB実行条件が成立していないとき、空燃比FB制御は、上流側FB補正量DFiを「0」に設定する。その結果、上流側FB補正量DFiによる基本燃料噴射量Fbaseの補正は行われない。即ち、上流側FB制御は実行されない。
(2)下流側FB実行条件(サブフィードバック実行条件)と下流側FB制御
下流側FB実行条件は、上流側FB実行条件が成立し、且つ、下流側空燃比センサ67が正常であり(活性化していることを含む。)、且つ、目標空燃比が理論空燃比であるときに成立する。後述するように、燃料カットが行われた後の燃料増量期間(燃料カット後燃料増量条件成立時)においては、燃料増量条件が成立することにより、目標空燃比が理論空燃比よりもリッチ側の空燃比に設定されて燃料カット後燃料増量制御が実行される。
従って、下流側FB実行条件は、
・上流側空燃比センサ66及び下流側空燃比センサ67が共に正常であり、且つ、
・燃料カット実行条件が成立しておらず、且つ、
・燃料カット後の燃料増量条件が成立していない(即ち、目標空燃比が理論空燃比である)、
ときに成立する。
下流側FB実行条件が成立しているとき、空燃比FB制御は、所定時間が経過する毎に、下流側空燃比センサ67の出力値Voxs(即ち、第1触媒53下流の空燃比)と下流側目標値(理論空燃比に相当する下流側空燃比センサ67の出力値)との差である出力偏差DVoxsを求める。そして、空燃比FB制御は、その出力偏差DVoxsの時間積分値(下流側FB用時間積分値、第1の時間積分値)SDVoxs1を(3)式に従って更新する。Δtは一定の微小時間である。
SDVoxs1(今回値)=SDVoxs1(前回値)+DVoxs・Δt …(3)
加えて、空燃比FB制御は、更新された最新の下流側FB用時間積分値SDVoxs1に所定のゲインKiを乗じることにより積分項(Ki・SDVoxs1)を算出し、その積分項(Ki・SDVoxs1)を含む下流側FB補正量Vafsfbを下記(4)式に従って算出する。他の項Otherは、後述する比例項及び微分項である。
Vafsfb=Ki・SDVoxs1+Other …(4)
そして、空燃比FB制御は、上述したように、上流側FB補正量DFiを求める際に下流側FB補正量Vafsfbを使用する。即ち、下流側FB(サブFB)制御が実行される。
一方、下流側FB実行条件が成立していないとき、空燃比FB制御は、下流側FB補正量Vafsfbを「0」に設定する。即ち、下流側FB制御は実行されない。更に、空燃比FB制御は、下流側FB用時間積分値SDVoxs1の値を下流側FB実行条件が成立しなくなった時点の下流側FB用時間積分値SDVoxs1の値に維持する。
(3)学習実行条件と学習制御
学習実行条件は、下流側FB実行条件が成立し、且つ、上記燃料カットが行われた後の燃料増量期間が終了した時点から下流側空燃比センサ67の出力値Voxsが所定の閾値出力値を出力する時点までの過渡期間でないとき、成立する。
従って、学習実行条件は、
・上流側空燃比センサ66及び下流側空燃比センサ67が共に正常であり、且つ、
・燃料カット実行条件が成立しておらず、且つ、
・燃料カット後の燃料増量条件が成立しておらず(即ち、目標空燃比が理論空燃比であるとき)、且つ、
・燃料カット後燃料増量制御実行後の上記過渡期間が経過している、
ときに成立する。
学習実行条件が成立しているとき、空燃比FB制御は、所定時間が経過する毎に、上記出力偏差DVoxsの時間積分値(学習用時間積分値、第2の時間積分値)SDVoxs2を(5)式に従って更新する。Δtは一定の微小時間である。
SDVoxs2(今回値)=SDVoxs2(前回値)+DVoxs・Δt …(5)
更に、空燃比FB制御は、下記(6)式に示したように、更新された最新の学習用時間積分値SDVoxs2に所定の係数Kgを乗じた値(Kg・SDVoxs2)を下流側FB学習補正量Gsfbに加えることにより、下流側FB学習補正量Gsfbを算出(更新)する。なお、空燃比FB制御は、下流側FB学習補正量Gsfbを更新したとき、下流側FB用時間積分値SDVoxs1及び学習用時間積分値SDVoxs2のそれぞれから上記値Kg・SDVoxs2を減じておく。
Gsfb(今回値)=Gsfb(前回値)+Kg・SDVoxs2 …(6)
学習実行条件が成立していないとき、空燃比FB制御は、下流側FB学習補正量Gsfbの値を学習実行条件が成立しなくなった時点の下流側FB学習補正量Gsfbの値に維持するとともに、学習用時間積分値SDVoxs2の値を学習実行条件が成立しなくなった時点の学習用時間積分値SDVoxs2の値に維持する。
以上のような空燃比FB制御は、制御装置により実行される。
(燃料カット実行前後の実際の作動の概要)
更に、制御装置は、燃料カット実行条件が成立したとき、燃料カットを実行し、その後、燃料増量制御を実行する。具体的には、制御装置は、燃料カット実行条件が成立する前後において、以下のように作動する。なお、上流側空燃比センサ66及び下流側空燃比センサ67が共に正常であるものと仮定する。
(1)燃料カット実行前
燃料カットを実行する前、制御装置は、目標空燃比を理論空燃比に設定する。従って、上流側FB実行条件、下流側FB実行条件及び学習実行条件の総ての条件が成立する。従って、下流側FB用時間積分値SDVoxs1、下流側FB補正量Vafsfb、学習用時間積分値SDVoxs2及び下流側FB学習補正量Gsfbは、それぞれ更新される。そして、制御装置は、上記(2)式に従って上流側FB補正量DFiを算出し、算出された上流側FB補正量DFiと上記(1)式とに基づいて基本燃料噴射量Fbaseを補正する。
(2)燃料カット実行中
燃料カット実行条件が成立すると、制御装置は燃料の噴射を停止する燃料カット(フューエルカット)を実行する。このとき、上流側FB実行条件、下流側FB実行条件及び学習実行条件の総ての条件が不成立となる。従って、上流側FB補正量DFiは「0」に設定される。更に、下流側FB補正量Vafsfbは「0」に設定され、下流側FB用時間積分値SDVoxs1は燃料カットが実行され始めた時点の値に維持される。加えて、下流側FB学習補正量Gsfb及び学習用時間積分値SDVoxs2は、燃料カットが実行され始めた時点のそれぞれの値に維持される。
(3)燃料カット終了直後の燃料増量制御実行中
燃料カット実行条件が不成立となることにより燃料カットの実行が終了することによって燃料カット後の燃料増量条件が成立し、目標空燃比は理論空燃比よりもリッチ側の値に設定される。このとき、上流側FB実行条件は成立する。これに対し、下流側FB実行条件及び学習実行条件は何れも不成立となる。従って、下流側FB補正量Vafsfbは「0」に設定され続け、下流側FB用時間積分値SDVoxs1は燃料カットが実行され始めた時点の値に維持され続ける。加えて、下流側FB学習補正量Gsfb及び学習用時間積分値SDVoxs2は、燃料カットが実行され始めた時点のそれぞれの値に維持され続ける。この結果、上記(2)式の下流側FB補正量Vafsfbには「0」が代入され、上流側FB補正量DFiは、上流側空燃比センサ66の出力値Vabyfsと、燃料カットが実行され始めた時点の値に維持されている下流側FB学習補正量Gsfbと、のみに基づいて求められる。そして、制御装置は、上記(1)式に従って基本燃料噴射量Fbaseを補正する。
(4)燃料増量制御実行終了後の過渡期間
燃料増量条件が不成立となることにより燃料カット後燃料増量制御の実行が終了した後の過渡期間においては、目標空燃比は理論空燃比に設定され、上流側FB実行条件及び下流側FB実行条件が成立する。これに対し、学習実行条件は不成立となる。従って、下流側FB用時間積分値SDVoxs1及び下流側FB補正量Vafsfbは、それぞれ更新される。下流側FB学習補正量Gsfb及び学習用時間積分値SDVoxs2は、燃料カットが実行され始めた時点のそれぞれの値に維持され続ける。そして、制御装置は、上記(2)式に従って上流側FB補正量DFiを算出し、上記(1)式に従って基本燃料噴射量Fbaseを補正する。
(5)燃料増量制御実行終了後の過渡期間の経過後
上記過渡期間が経過すると、燃料カット実行前の場合と同様、上流側FB実行条件、下流側FB実行条件及び学習実行条件の総ての条件が成立する。従って、下流側FB用時間積分値SDVoxs1、下流側FB補正量Vafsfb、学習用時間積分値SDVoxs2及び下流側FB学習補正量Gsfbは、それぞれ更新される。そして、制御装置は、上記(2)式に従って上流側FB補正量DFiを算出し、上記(1)式に従って基本燃料噴射量Fbaseを補正する。
このように、本制御装置は、燃料増量制御実行終了後の上記過渡期間の開始時点から下流側FB用時間積分値SDVoxs1及び下流側FB補正量Vafsfbの更新を開始する。これにより、上記過渡期間において、第1触媒53の下流の空燃比を理論空燃比(下流側目標空燃比)に迅速に近づけることができる。
更に、制御装置は、上記過渡期間において、学習用時間積分値SDVoxs2及び下流側FB学習補正量Gsfbを、燃料カットが実行され始めた時点のそれぞれの値に維持し続け、上記過渡期間が経過すると、学習用時間積分値SDVoxs2及び下流側FB学習補正量Gsfbのそれぞれを更新する。これにより、上記過渡期間における上記出力偏差DVoxsが下流側FB学習補正量Gsfbに反映されることを回避できるので、下流側FB学習補正量Gsfbが不適切な値となることを防止することができる。
なお、燃料カット実行中、第1触媒53に吸蔵される酸素の量は過剰となる。従って、燃料カット実行後に燃料増量制御を行うことにより、第1触媒53に吸蔵されている酸素の量は適正値まで速やかに減少する。
制御装置は、燃料カット実行条件が成立する前後において、以上のように作動する。
(制御に使用されるフラグ)
次に、制御装置が上述した空燃比FB制御を行う際に使用するフラグについて説明する。制御装置は、燃料カットフラグXFC、燃料増量フラグXRC、上流側FB制御実行フラグXMFB、下流側FB制御実行フラグXSFB、過渡期間表示フラグXKT及び学習実行フラグXGからなる6つのフラグを使用する(図5を参照。)。これらのフラグは、図示しないイグニッション・キーをオフからオンに変更したときに実行されるイニシャルルーチンにおいて、「0」に設定されるようになっている。
燃料カットフラグXFCは、燃料の噴射を停止させる(燃料カットを実行する)か否かを表すフラグである。即ち、燃料カットフラグXFCの値が「1」に設定されているときは、燃料の噴射が停止させられる(燃料の噴射が行われない)。一方、燃料カットフラグXFCの値が「0」に設定されているときは、燃料の噴射が実行される(燃料の噴射が行われる)。
燃料カットフラグXFCは、エンジン回転速度NEが閾値回転速度αよりも高く、且つ、スロットル弁開度TAが閾値開度(本例では、スロットル弁43が全閉状態となる全閉開度)β以下となったときに「1」に設定される。燃料カットフラグXFCは、エンジン回転速度NEが閾値回転速度αから所定の正の値α1を減じた値(α−α1)以下となるか、又は、スロットル弁開度TAが閾値開度βよりも大きくなったとき、「0」に設定される。
燃料増量フラグXRCは、内燃機関10の目標空燃比を燃料増量用空燃比に設定する(燃料カット後燃料増量制御を行う)か否かを表すフラグである。即ち、燃料増量フラグXRCの値が「1」に設定されているときは、内燃機関10の目標空燃比が理論空燃比よりも比較的大きくリッチ側の燃料増量用空燃比AFrcに設定される。一方、燃料増量フラグXRCの値が「0」に設定されているときは、内燃機関10の目標空燃比が理論空燃比AFstに設定される。
燃料増量フラグXRCの値は、燃料カットフラグXFCが「1」から「0」に変化したときに「0」から「1」に変更(設定)される。燃料増量フラグXRCの値は、その値が「0」から「1」に変更された時点から燃料増量時間τrcが経過したときに「0」に設定される。
上流側FB制御実行フラグXMFBは、上流側FB制御を行うか否かを表すフラグである。即ち、上流側FB制御実行フラグXMFBの値が「1」に設定されているときは、上流側FB制御が行われる。一方、上流側FB制御実行フラグXMFBの値が「0」に設定されているときは、上流側FB制御が行われない。
上流側FB制御実行フラグXMFBの値は、上流側空燃比センサ66が正常であるとき「1」に設定される。但し、燃料カットフラグXFCが「1」に設定されている間、上流側FB制御実行フラグXMFBの値は、「0」に設定される。なお、本実施例において、内燃機関10の運転中、上流側空燃比センサ66及び下流側空燃比センサ67は常に正常であるものと仮定する。
下流側FB制御実行フラグXSFBは、下流側FB制御を行うか否かを表すフラグである。即ち、下流側FB制御実行フラグXSFBの値が「1」に設定されているときは、下流側FB制御が行われる。一方、下流側FB制御実行フラグXSFBの値が「0」に設定されているときは、下流側FB制御が行われない。
下流側FB制御実行フラグXSFBの値は、上流側空燃比センサ66及び下流側空燃比センサ67が共に正常であるとき「1」に設定される。但し、燃料カットフラグXFC及び燃料増量フラグXRCの何れかが「1」に設定されている間、下流側FB制御実行フラグXSFBの値は「0」に設定される。
過渡期間表示フラグXKTは、現時点が上記過渡期間であることを示すフラグである。過渡期間表示フラグXKTの値は、燃料増量フラグXRCの値が「1」から「0」に変化したときに「1」に設定され、過渡期間表示フラグXKTの値が「1」に設定されている場合において下流側空燃比センサ67の出力値Voxsが予め設定された閾値出力値(本例では、下流側目標値Voxsref)よりも大きくなったとき、「0」に設定される。
学習実行フラグXGは、下流側FB学習補正量Gsfbの更新を行うか否かを表すフラグである。即ち、学習実行フラグXGの値が「1」に設定されているときは、下流側FB学習補正量Gsfbが更新される。一方、学習実行フラグXGの値が「0」に設定されているときは、下流側FB学習補正量Gsfbが更新されない。
学習実行フラグXGの値は、下流側FB制御実行フラグXSFBが「1」であり、且つ、過渡期間表示フラグXKTの値が「0」であるとき、「1」に設定される。一方、学習実行フラグXGの値は、下流側FB制御実行フラグXSFBの値が「0」であるとき、又は、下流側FB制御実行フラグXSFBの値が「1」であり且つ過渡期間表示フラグXKTの値が「1」であるとき、「0」に設定される。
(実際の作動)
次に、制御装置の実際の作動について説明する。制御装置のCPU71は、図6にフローチャートにより示した燃料カットを実行するか否かを決定するための燃料カット条件判定ルーチンを所定の演算周期が経過する毎に繰り返し実行するようになっている。なお、図6のルーチンの処理が実行されることは、燃料カット手段の機能の一部が達成されることに対応している。
従って、所定のタイミングになると、CPU71は、ステップ600から処理を開始してステップ605に進み、燃料カットフラグXFCの値が「0」であるか否かを判定する。
いま、内燃機関10の運転者がアクセルペダル81を操作することにより、アクセルペダル操作量Accpが所定操作量Accp1にて一定に維持され、その後、所定期間だけ「0」に維持され、更にその後、再び所定操作量Accp1に維持される場合を想定して図5を参照しながら説明を続ける。なお、この場合において、エンジン回転速度NEが閾値回転速度αよりも常に高いことを仮定する。また、CPU71は、アクセルペダル操作量Accpが所定操作量Accp1となっているときにスロットル弁開度TAが上記閾値開度(本例では、全閉開度)βよりも大きな所定開度TA1となるように、且つ、アクセルペダル操作量Accpが「0」となっているときにスロットル弁開度TAが全閉開度となるように、スロットル弁アクチュエータ43aを制御している。
まず、内燃機関10の運転者がアクセルペダル81を踏み込んでいる足をアクセルペダル81から離すことによりアクセルペダル操作量Accpが「0」に変更される前であってアクセルペダル操作量Accpが所定操作量Accp1にて一定に維持されている時点(図5の時点t0よりも前の時点)から説明すると、この時点では、燃料カットフラグXFC、燃料増量フラグXRC及び過渡期間表示フラグXKTの値は「0」に設定され、上流側FB制御実行フラグXMFB、下流側FB制御実行フラグXSFB及び学習実行フラグXGの値は「1」に設定されている。
従って、CPU71は、上記ステップ605にて「Yes」と判定してステップ610に進み、現時点のエンジン回転速度NEが予め設定された上記閾値回転速度αよりも高く、且つ、スロットル弁開度TAが予め設定された上記閾値開度β以下であるか否かを判定する。
上記仮定に従えば、エンジン回転速度NEは上記閾値回転速度αよりも高く、且つ、スロットル弁開度TAは上記閾値開度βよりも大きい所定開度TA1となっている。従って、CPU71は、上記ステップ610にて「No」と判定し、ステップ699に直接進んで本ルーチンを一旦終了する。即ち、燃料カットフラグXFCの値は「0」に維持される。
一方、CPU71は、図7にフローチャートにより示した燃料増量制御を実行するか否かを決定するための燃料増量条件判定ルーチンを上記燃料カット条件判定ルーチンに続いて実行するようになっている。なお、図7のルーチンの処理が実行されることは、燃料増量手段の機能の一部が達成されることに対応している。
従って、燃料カット条件判定ルーチンの実行が終了すると、CPU71はステップ700から処理を開始し、ステップ705に進んで、現時点が燃料カットフラグXFCの値が「1」から「0」に変化した直後の時点であるか否かを判定する。
この時点では、燃料カットフラグXFCの値は「0」に維持されている。従って、CPU71は、同ステップ705にて「No」と判定してステップ710に進み、現時点が、燃料増量フラグXRCの値が「0」から「1」に変化してから燃料増量時間τrcが経過した時点であるか否かを判定する。この時点では、燃料増量フラグXRCの値が「0」に維持されているので、CPU71は、同ステップ710にて「No」と判定してステップ799に直接進んで本ルーチンを一旦終了する。
また、CPU71は、図8にフローチャートにより示した上流側FB制御を実行するか否かを決定するための上流側FB条件判定ルーチンを上記燃料増量条件判定ルーチンに続いて実行するようになっている。なお、図8のルーチンの処理が実行されることは、空燃比フィードバック制御手段の機能の一部が達成されることに対応している。
従って、燃料増量条件判定ルーチンの実行が終了すると、CPU71はステップ800から処理を開始し、ステップ805に進んで上流側空燃比センサ66が正常であるか否かを判定する。上記仮定に従えば、上流側空燃比センサ66は正常となっている。従って、CPU71は、ステップ805にて「Yes」と判定してステップ810に進み、燃料カットフラグXFCの値が「0」であるか否かを判定する。
この時点では、燃料カットフラグXFCの値は「0」に維持されている。従って、CPU71は、同ステップ810にて「Yes」と判定してステップ815に進み、上流側FB制御実行フラグXMFBの値を「1」に設定する。即ち、上流側FB制御実行フラグXMFBの値は「1」に維持される。
そして、CPU71はステップ899に進んで本ルーチンを一旦終了する。
また、CPU71は、図9にフローチャートにより示した下流側FB制御を実行するか否かを決定するための下流側FB条件判定ルーチンを上記上流側FB条件判定ルーチンに続いて実行するようになっている。なお、図9のルーチンの処理が実行されることは、空燃比フィードバック制御手段の機能の一部が達成されることに対応している。
従って、上流側FB条件判定ルーチンの実行が終了すると、CPU71はステップ900から処理を開始し、ステップ905に進んで上流側空燃比センサ66が正常であるか否かを判定する。上記仮定に従えば、上流側空燃比センサ66は正常となっている。
従って、CPU71は、ステップ905にて「Yes」と判定してステップ910に進み、下流側空燃比センサ67が正常であるか否かを判定する。上記仮定に従えば、下流側空燃比センサ67は正常となっている。従って、CPU71は、ステップ910にて「Yes」と判定してステップ915に進み、燃料カットフラグXFCの値が「0」であるか否かを判定する。
この時点では、燃料カットフラグXFCの値は「0」に維持されている。従って、CPU71は、同ステップ915にて「Yes」と判定してステップ920に進み、燃料増量フラグXRCの値が「0」であるか否かを判定する。
この時点では、燃料増量フラグXRCの値は「0」に維持されている。従って、CPU71は、同ステップ920にて「Yes」と判定してステップ925に進み、下流側FB制御実行フラグXSFBの値を「1」に設定する。即ち、下流側FB制御実行フラグXSFBの値は「1」に維持される。
そして、CPU71はステップ999に進んで本ルーチンを一旦終了する。
また、CPU71は、図10にフローチャートにより示した下流側FB学習補正量の更新を行うか否かを決定するための学習条件判定ルーチンを上記下流側FB条件判定ルーチンに続いて実行するようになっている。
従って、下流側FB条件判定ルーチンの実行が終了すると、CPU71はステップ1000から処理を開始し、ステップ1005に進んで下流側FB制御実行フラグXSFBの値が「1」であるか否かを判定する。
この時点では、下流側FB制御実行フラグXSFBの値は「1」に維持されている。従って、CPU71は、同ステップ1005にて「Yes」と判定してステップ1010に進み、過渡期間表示フラグXKTの値が「0」であるか否かを判定する。
この時点では、過渡期間表示フラグXKTの値は「0」に維持されている。従って、CPU71は、同ステップ1010にて「Yes」と判定してステップ1015に進み、学習実行フラグXGの値を「1」に設定する。即ち、学習実行フラグXGの値は「1」に維持される。
そして、CPU71はステップ1099に進んで本ルーチンを一旦終了する。
(燃料噴射量制御)
一方、CPU71は、図11にフローチャートにより示した燃料噴射量Fiの算出及び燃料の噴射を指示するための燃料噴射量制御ルーチンを、各気筒のクランク角度が排気上死点(排気が実質的に終了するとともに吸気が実質的に開始する上死点)前の所定クランク角度(本例では、BTDC90°CA、即ち、排気上死点から90°だけ進角させた角度)となる毎に、繰り返し実行するようになっている。なお、図11のルーチンの処理が実行されることは、空燃比フィードバック制御手段(燃料噴射量フィードバック制御手段)の機能の一部が達成されることに対応している。
従って、任意の気筒(以下、「燃料噴射気筒」と云うこともある。)のクランク角度が上記所定クランク角度になると、CPU71は、ステップ1100から処理を開始してステップ1105に進み燃料カットフラグXFCの値が「0」であるか否かを判定する。
この時点では、燃料カットフラグXFCの値は「0」である。従って、CPU71は、同ステップ1105にて「Yes」と判定してステップ1110に進み、エアフローメータ61により検出された吸入空気流量Gaと、クランクポジションセンサ64により検出されたエンジン回転速度NEと、吸入空気流量Ga及びエンジン回転速度NEと1回の燃焼サイクルに対して気筒に吸入(導入)される筒内吸入空気量Mcとの関係を規定するテーブルMapMcと、に基づいて今回の燃焼サイクルにおいて上記燃料噴射気筒に吸入される予定の筒内吸入空気量Mc(k)(=MapMc(Ga,NE))を求める。
ここで、kは、いずれの気筒の吸気行程であるかにかかわらず内燃機関10において発生した吸気行程の数(即ち、ストローク数)である。更に、添え字の(k)は、筒内吸入空気量Mc(k)がk回目(今回)の吸気行程(ストローク)に対する値であることを示している(以下、他の物理量についても同様。)。
CPU71は、求められた筒内吸入空気量Mcをストローク数kに関連づけてRAM73に記憶させる(格納する)。
なお、以下の説明において、MapX(a)と表記されるテーブルは、変数aと値Xとの関係を規定するテーブルを意味することとする。また、値XをテーブルMapX(a)に基づいて求めるとは、値Xを現時点の変数aと、テーブルMapX(a)と、に基づいて求める(決定する)ことを意味することとする。なお、変数は2つ以上であってもよい。
次に、CPU71は、ステップ1115に進み燃料増量フラグXRCの値が「0」であるか否かを判定する。この時点では、燃料増量フラグXRCの値は「0」である。従って、CPU71は、同ステップ1115にて「Yes」と判定してステップ1120に進み今回の上流側目標空燃比abyfr(k)を理論空燃比AFstに設定する。CPU71は、決定された上流側目標空燃比abyfrをストローク数kに関連づけてRAM73に記憶させる(格納する)。
次いで、CPU71は、ステップ1125に進み上記ステップ1110にて決定された筒内吸入空気量Mc(k)を上記ステップ1120にて設定された上流側目標空燃比abyfr(k)により除することによって基本燃料噴射量Fbase(この時点では、理論空燃比AFstに対応する基本燃料噴射量Fis)を決定する。なお、ステップ1125にて使用される上流側目標空燃比abyfr(k)は、本明細書において、内燃機関10の目標空燃比とも呼ばれる値である。
そして、CPU71は、ステップ1130に進み上記ステップ1125にて決定された基本燃料噴射量Fbaseに後述する上流側FB補正量算出ルーチンにて求められている最新の上流側FB補正量DFiを加えることにより燃料噴射量Fiを決定する。
そして、CPU71は、ステップ1135に進み上記ステップ1130にて決定された燃料噴射量Fiの燃料が上記燃料噴射気筒のインジェクタ39により今回の燃焼サイクルに対して噴射されるようにインジェクタ39に対して噴射指示信号を送出する。
その後、CPU71は、ステップ1199に進んで本ルーチンを一旦終了する。
(上流側FB補正量算出)
一方、CPU71は図12にフローチャートにより示した上流側FB補正量DFiを算出するための上流側FB補正量算出ルーチンを、所定の演算周期が経過する毎に、繰り返し実行するようになっている。なお、図12のルーチンの処理が実行されることは、空燃比フィードバック制御手段の機能の一部及び上流側フィードバック補正量算出手段の機能の一部が達成されることに対応している。
従って、所定のタイミングになると、CPU71は、ステップ1200から処理を開始し、ステップ1205に進んで上流側FB制御実行フラグXMFBの値が「1」であるか否かを判定する。この時点では、上流側FB制御実行フラグXMFBの値は「1」に設定されている。従って、CPU71は、同ステップ1205にて「Yes」と判定してステップ1210に進み、テーブルMapN(Mc(k),NE)に基づいて遅延ストローク数Nを決定する。ここで、遅延ストローク数Nは、燃料の噴射が指示されてから、この指示により噴射された燃料が燃焼に供されたときの混合ガスの空燃比が前記上流側空燃比センサ66の出力値Vabyfsとして現れるまでの間の遅延時間に相当するストローク数である。テーブルMapN(Mc(k),NE)は、実験による測定値に基づいて予め設定されている。
次に、CPU71は、ステップ1215に進み上記図3に示した上流側空燃比センサ66の出力値Vabyfsと空燃比A/Fとの関係を規定したテーブルMapabyfsと、現時点の上流側空燃比センサ66の出力値Vabyfs、後述する下流側FB補正量算出ルーチンにて求められている下流側FB補正量Vafsfb及び同下流側FB補正量算出ルーチンにて求められている下流側FB学習補正量Gsfbの和である制御用空燃比相当出力値(Vabyfs+Vafsfb+Gsfb)と、に基づいて現時点における制御用空燃比abyfs(=Mapabyfs(Vabyfs+Vafsfb+Gsfb))を求める。
次いで、CPU71は、ステップ1220に進みRAM73に記憶されている筒内吸入空気量Mcのうちの現時点からNストローク(N回の吸気行程)前に吸気行程を迎えた気筒の吸入空気量である筒内吸入空気量Mc(k-N)を上記ステップ1215にて求められた制御用空燃比abyfsにより除することによって、現時点からNストローク前の実際の筒内供給燃料量Fc(k-N)を求める。
続いて、CPU71は、ステップ1225に進み上記現時点からNストローク前の筒内吸入空気量Mc(k-N)を、RAM73に記憶されている上流側目標空燃比abyfrのうちの現時点からNストローク前の上流側目標空燃比abyfr(k-N)により除することによって、現時点からNストローク前の目標筒内供給燃料量Fcr(k-N)を求める。
次に、CPU71は、ステップ1230に進み上記ステップ1225にて求められた現時点からNストローク前の目標筒内供給燃料量Fcr(k-N)から上記ステップ1220にて求められた現時点からNストローク前の実際の筒内供給燃料量Fc(k-N)を減じることにより筒内供給燃料量偏差DFc(=Fcr(k-N)-Fc(k-N))を求める。即ち、筒内供給燃料量偏差DFcは、現時点からNストローク前の時点において気筒内に供給された燃料の過不足を表す量である。
次いで、CPU71は、ステップ1235に進み、下記(7)式と、上記ステップ1230にて算出された筒内供給燃料量偏差DFcと、後述するステップ1240にて算出される筒内供給燃料量偏差DFcの時間積分値SDFcと、に基づいて上流側FB補正量DFiを求める。即ち、上流側FB補正量DFiは、筒内供給燃料量偏差DFcを比例・積分処理(PI処理)することにより求められる。
DFi=(Gp・DFc+Gi・SDFc)・KFB …(7)
ここで、Gpは予め設定された比例ゲイン(比例定数)であり、Giは予め設定された積分ゲイン(積分定数)である。各ゲインGp及びGiは、いずれも正の値である。また、本例では、係数KFBは不変であり、予め「1」に設定されている。なお、係数KFBは、可変であってもよく、その場合、エンジン回転速度NE及び筒内吸入空気量Mcに基づいて設定されることが好適である。
上流側FB補正量DFiは、上述した図11のステップ1130にて燃料噴射量Fiが決定される際に用いられる。
そして、CPU71は、ステップ1240に進み上記ステップ1230にて求められた筒内供給燃料量偏差DFcと時間ステップΔtとの積を、筒内供給燃料量偏差DFcの時間積分値SDFcであって現時点にて算出されている最新の時間積分値SDFcに加えることにより時間積分値SDFcの最新値を算出する(時間積分値SDFcを更新する)。ここで、時間ステップΔtは、本ルーチンが前回実行された時点から今回実行された時点までの時間である。
その後、CPU71は、ステップ1299に進んで本ルーチンを一旦終了する。
このように、本空燃比制御装置は、現時点からNストローク前の目標筒内供給燃料量Fcr(k-N)と、現時点からNストローク前の実際の筒内供給燃料量Fc(k-N)と、が一致するように上流側空燃比センサ66の出力値Vabyfs、(下流側空燃比センサ67の出力値Voxsに基づいて求められる)下流側FB補正量Vafsfb及び(下流側空燃比センサ67の出力値Voxsに基づいて求められる)下流側FB学習補正量Gsfbに基づいて空燃比をFB制御する。換言すれば、本空燃比制御装置は、現時点の制御用空燃比abyfsが(現時点からNストローク前の)上流側目標空燃比abyfrと一致するように空燃比をFB制御する。
(下流側FB補正量算出)
また、CPU71は図13にフローチャートにより示した下流側FB補正量Vafsfbを算出するための下流側FB補正量算出ルーチンを、所定の演算周期が経過する毎に、繰り返し実行するようになっている。なお、図13のルーチンの処理が実行されることは、空燃比フィードバック制御手段の機能の一部、上流側フィードバック補正量算出手段の機能の一部、下流側フィードバック補正量算出手段の機能、下流側フィードバック学習補正量算出手段の機能及び時間積分値設定手段の機能が達成されることに対応している。
従って、所定のタイミングになると、CPU71は、ステップ1300から処理を開始し、ステップ1305に進んで下流側FB制御実行フラグXSFBの値が「1」であるか否かを判定する。この時点では、下流側FB制御実行フラグXSFBの値は「1」に維持されている。従って、CPU71は、同ステップ1305にて「Yes」と判定してステップ1310に進み、下流側目標値Voxsrefから現時点の下流側空燃比センサ67の出力値Voxsを減じることにより、出力偏差DVoxsを求める。
本例では、下流側目標値Voxsrefは、理論空燃比に対応する値(0.5[V])に予め設定されている。なお、下流側目標値Voxsrefは、第1触媒53の状態が所定の劣化状態となった時(触媒劣化時)及び暖機運転時、第1触媒53に流入するガスの空燃比の時間平均値が理論空燃比よりもわずかにリッチ側の空燃比となるように設定されてもよい。また、下流側目標値Voxsrefは、エンジン回転速度NE及びスロットル弁開度TA等に基づいて変更されてもよい。
次に、CPU71は、ステップ1315に進んで、上記(3)式に示したように、上記ステップ1310にて求められた出力偏差DVoxsと時間ステップΔtとの積を、出力偏差DVoxsの下流側FB用時間積分値(第1の時間積分値)SDVoxs1であって現時点にて算出されている最新の下流側FB用時間積分値SDVoxs1に加えることにより下流側FB用時間積分値SDVoxs1の最新値を算出する(下流側FB用時間積分値SDVoxs1を更新する)。
そして、CPU71は、ステップ1320に進み学習実行フラグXGの値が「1」であるか否かを判定する。この時点では、学習実行フラグXGの値は「1」に設定されている。従って、CPU71は、同ステップ1320にて「Yes」と判定してステップ1325に進み、上記(5)式に示したように、上記ステップ1310にて求められた出力偏差DVoxsと時間ステップΔtとの積を、出力偏差DVoxsの学習用時間積分値(第2の時間積分値)SDVoxs2であって現時点にて算出されている最新の学習用時間積分値SDVoxs2に加えることにより学習用時間積分値SDVoxs2の最新値を算出する(学習用時間積分値SDVoxs2を更新する)。
次いで、CPU71は、ステップ1330に進み、上記(6)式に示したように、上記ステップ1325にて求められた学習用時間積分値SDVoxs2と所定の学習用係数Kgとの積を現時点にて算出されている最新の下流側FB学習補正量Gsfbに加えることにより下流側FB学習補正量Gsfbの最新値を算出する(下流側FB学習補正量Gsfbを更新する)。この下流側FB学習補正量Gsfbは、上記上流側FB補正量算出ルーチンのステップ1215にて制御用空燃比abyfsが求められる際に用いられる。
そして、CPU71は、ステップ1335に進み上記ステップ1325にて求められた学習用時間積分値SDVoxs2と上記学習用係数Kgとの積を上記ステップ1315にて求められた下流側FB用時間積分値SDVoxs1から減じることにより下流側FB用時間積分値SDVoxs1を補正(更新)する。即ち、下流側FB用時間積分値SDVoxs1は、上記ステップ1330にて下流側FB学習補正量Gsfbに新たに加えられた量だけ減じられる。
次いで、CPU71は、ステップ1340に進み上記ステップ1325にて求められた学習用時間積分値SDVoxs2と上記学習用係数Kgとの積を上記ステップ1325にて求められた学習用時間積分値SDVoxs2から減じることにより学習用時間積分値SDVoxs2を補正(更新)する。即ち、学習用時間積分値SDVoxs2は、上記ステップ1330にて下流側FB学習補正量Gsfbに新たに加えられた量だけ減じられる。
次に、CPU71はステップ1345に進んで、上記ステップ1310にて求められた出力偏差DVoxsから本ルーチンが実行された過去の時点であって下流側FB制御実行フラグXSFBの値が「1」に設定された状態にて本ルーチンが実行された最新の時点(下流側FB制御実行時最終時点)において後述するステップ1355にて設定(更新)された過去の出力偏差DVoxs1を減じた値を時間ステップΔtにより除することにより、出力偏差DVoxsの時間微分値(の近似値)DDVoxsを求める。ここで、時間ステップΔtは、本ルーチンが前回実行された時点から今回実行された時点までの時間(即ち、上記演算周期)である。なお、現時点が、下流側FB制御実行フラグXSFBの値が「0」から「1」に変更された直後の時点である場合、出力偏差の時間微分値DDVoxsを「0」に設定してもよい。
次いで、CPU71は、ステップ1350に進み、下記(8)式と、上記ステップ1310にて算出された出力偏差DVoxsと、上記ステップ1335にて算出された下流側FB用時間積分値SDVoxs1と、上記ステップ1345にて算出された出力偏差の時間微分値DDVoxsと、に基づいて下流側FB補正量Vafsfbを求める。即ち、下流側FB補正量Vafsfbは、出力偏差DVoxsを比例・積分・微分処理(PID処理)することにより算出される。
Vafsfb=Kp・DVoxs+Ki・SDVoxs1+Kd・DDVoxs …(8)
ここで、Kpは予め設定された比例ゲイン(比例定数)であり、Kiは予め設定された積分ゲイン(積分定数)であり、Kdは予め設定された微分ゲイン(微分定数)である。各ゲインKp、Ki及びKdは、いずれも正の値である。
このようにして、本空燃比制御装置は、下流側目標値Voxsrefと下流側空燃比センサ67の出力値Voxsとの差である出力偏差DVoxsに基づいて、下流側FB補正量Vafsfb及び下流側FB学習補正量Gsfbを求める。この下流側FB補正量Vafsfb及び下流側FB学習補正量Gsfbは、上記上流側FB補正量算出ルーチンのステップ1215にて制御用空燃比abyfsが求められる際に用いられる。
そして、CPU71は、ステップ1355に進み過去の出力偏差DVoxs1を上記ステップ1310にて求めた現時点の出力偏差DVoxsに設定する。
その後、CPU71は、ステップ1399に進んで本ルーチンを一旦終了する。
このように、図5に示した時点t0よりも前の時点(期間A内の時点)では、制御装置は、上記ステップ1315にて下流側FB用時間積分値SDVoxs1を更新するとともに、上記ステップ1325にて学習用時間積分値SDVoxs2を更新する。更に、制御装置は、上記ステップ1350にて下流側FB用時間積分値SDVoxs1に基づいて下流側FB補正量Vafsfbを算出するとともに、上記ステップ1330にて学習用時間積分値SDVoxs2に基づいて下流側FB学習補正量Gsfbを算出する。加えて、制御装置は、上流側空燃比センサ66の出力値Vabyfs(即ち、第1触媒53上流の空燃比)と上流側目標空燃比abyfr(k-N)と算出された下流側FB学習補正量Gsfbと算出された下流側FB補正量Vafsfbとに基づいて上流側FB補正量DFiを決定し、決定された上流側FB補正量DFiに基づいて燃料噴射量Fiを決定することによって空燃比をFB制御する。これにより、第1触媒53の下流の空燃比(下流側空燃比)が下流側目標値Voxsrefに対応する空燃比(下流側目標空燃比)に略一致する。この結果、エミッションを良好にすることができる。
なお、この期間Aは、下流側フィードバック実行条件が成立している期間であって、本明細書において、下流側フィードバック条件成立期間とも呼ばれる期間である。また、期間Aは、内燃機関10の状態が下流側FB補正量Vafsfbを用いた空燃比のFB制御が十分に長い時間にわたって行われ続けた状態(定常状態)にあるという条件を上記下流側フィードバック実行条件に更に付加した学習実行条件が成立している期間であって、本明細書において、学習条件成立期間とも呼ばれる期間である。
そして、時点t0になると、運転者がアクセルペダル81を踏み込んでいた足をアクセルペダル81から離すことによりアクセルペダル操作量Accpが「0」となったことによって、スロットル弁開度TAが全閉開度(即ち、閾値開度β)に一致する。従って、この時点t0にてCPU71が図6の燃料カット条件判定ルーチンの処理を開始してステップ610に進んだとき、CPU71は、同ステップ610にて「Yes」と判定してステップ615に進み、燃料カットフラグXFCの値を「1」に設定する。即ち、燃料カットフラグXFCの値は「0」から「1」に変更される。なお、ステップ610にて「Yes」と判定されることは、燃料カット実行条件が成立することに対応している。
そして、CPU71はステップ699に進んで燃料カット条件判定ルーチンを一旦終了する。
次いで、CPU71が図7の燃料増量条件判定ルーチンの実行を開始すると、CPU71は、ステップ705及びステップ710の両ステップにて「No」と判定し、ステップ799に進んで燃料増量条件判定ルーチンを一旦終了する。
更に、CPU71が図8の上流側FB条件判定ルーチンの実行を開始すると、CPU71は、燃料カットフラグXFCの値が「0」であるか否かを判定するステップ810に進んだとき、同ステップ810にて「No」と判定してステップ820に進み、上流側FB制御実行フラグXMFBの値を「0」に設定する。即ち、上流側FB実行条件が不成立となり、上流側FB制御実行フラグXMFBの値は「1」から「0」に変更される。
そして、CPU71はステップ899に進んで上流側FB条件判定ルーチンを一旦終了する。
また、CPU71が図9の下流側FB条件判定ルーチンの実行を開始すると、CPU71は、燃料カットフラグXFCの値が「0」であるか否かを判定するステップ915に進んだとき、同ステップ915にて「No」と判定してステップ930に進み、下流側FB制御実行フラグXSFBの値を「0」に設定する。即ち、下流側FB実行条件が不成立となり、下流側FB制御実行フラグXSFBの値は「1」から「0」に変更される。
そして、CPU71はステップ999に進んで下流側FB条件判定ルーチンを一旦終了する。
更に、CPU71が図10の学習条件判定ルーチンの実行を開始すると、CPU71は、下流側FB制御実行フラグXSFBの値が「1」であるか否かを判定するステップ1005に進んだとき、同ステップ1005にて「No」と判定してステップ1020に進み、学習実行フラグXGの値を「0」に設定する。即ち、学習実行条件が不成立となり、学習実行フラグXGの値は「1」から「0」に変更される。
そして、CPU71はステップ1099に進んで学習条件判定ルーチンを一旦終了する。
更に、CPU71が図11の燃料噴射量制御ルーチンの実行を開始すると、CPU71は、燃料カットフラグXFCの値が「0」であるか否かを判定するステップ1105に進んだとき、同ステップ1105にて「No」と判定してステップ1199に直接進み、本ルーチンを一旦終了する。従って、この時点t0では、上記燃料噴射気筒のインジェクタ39により燃料が噴射されることはない。即ち、燃料の噴射が停止させられる(燃料カットが実行される)。なお、ステップ1105の処理が実行されることは、燃料カット手段の機能の一部が達成されることに対応している。
一方、CPU71が図12の上流側FB補正量算出ルーチンの実行を開始すると、CPU71は、上流側FB制御実行フラグXMFBの値が「1」であるか否かを判定するステップ1205に進んだとき、同ステップ1205にて「No」と判定してステップ1250に進み、上流側FB補正量DFiを「0」に設定する。これにより、上流側FB制御は実質的に行われない(即ち、下流側FB制御も実質的に行われない)。
そして、CPU71はステップ1299に進んで上流側FB補正量算出ルーチンを一旦終了する。
また、CPU71が図13の下流側FB補正量算出ルーチンの実行を開始すると、CPU71は、下流側FB制御実行フラグXSFBの値が「1」であるか否かを判定するステップ1305に進んだとき、同ステップ1305にて「No」と判定してステップ1360に進み、下流側FB補正量Vafsfbを「0」に設定する。これにより、下流側FB制御は実質的に行われない。
そして、CPU71はステップ1399に進んで下流側FB補正量算出ルーチンを一旦終了する。
そして、上記演算周期が経過すると、CPU71は、再び、図6の燃料カット条件判定ルーチンの処理を開始して燃料カットフラグXFCの値が「0」であるか否かを判定するステップ605に進む。この時点では、燃料カットフラグXFCの値は「1」に設定されている。
従って、CPU71は、同ステップ605にて「No」と判定してステップ620に進み、エンジン回転速度NEが閾値回転速度αから所定の正の値α1を減じた値(α−α1)以下であるという条件及びスロットル弁開度TAが閾値開度βよりも大きいという条件のうちの少なくとも一方が成立しているか否かを判定する。
上記仮定に従えば、エンジン回転速度NEは閾値回転速度αよりも高い。また、この時点では、スロットル弁開度TAは閾値開度βに一致している。従って、CPU71は、同ステップ620にて「No」と判定してステップ699に直接進み、燃料カット条件判定ルーチンを一旦終了する。即ち、燃料カットフラグXFCの値は「1」に維持される。
燃料カットフラグXFCの値が「1」に維持されているので、上述した他のルーチンにおいては上述した時点t0における場合と同様の処理が実行される。このような処理は、後述する燃料カット実行条件が不成立となる時点t1まで繰り返し実行される。従って、図5に示した燃料カット期間(時点t0〜時点t1)Tfcにおいては、燃料の噴射が停止させられ、その結果、第1触媒53が吸蔵する酸素の量(酸素吸蔵量)が増加する。そして、時点t0aになると、酸素吸蔵量は第1触媒53が吸蔵し得る酸素の量の最大値(酸素吸蔵量の最大値)に到達する。従って、時点t0a以降の時点においては、下流側空燃比センサ67は理論空燃比よりもリーン側のリーン空燃比に対応する出力値を出力する。
更に、制御装置が上記ステップ1315、上記ステップ1325及び上記ステップ1330のいずれも実行しないので、下流側FB用時間積分値SDVoxs1、学習用時間積分値SDVoxs2及び下流側FB学習補正量Gsfbのいずれの更新も停止させられる。これにより、下流側FB用時間積分値SDVoxs1(図5の曲線C2)、学習用時間積分値SDVoxs2(図5の曲線C1)及び下流側FB学習補正量Gsfbのそれぞれは、一定に維持される。更に、制御装置が上記ステップ1350に代えて上記ステップ1360を実行するので、下流側FB補正量Vafsfbは「0」に維持される。
なお、この時点t0は、上記下流側フィードバック実行条件が成立しなくなるとともに、上記学習実行条件が成立しなくなる時点であり、本明細書において、第1時点とも呼ばれる時点である。また、燃料カット期間Tfcは、本明細書において、燃料カット条件成立期間とも呼ばれる期間である。更に、燃料カット期間Tfcは、上記下流側フィードバック実行条件が成立していない期間であって、下流側フィードバック条件不成立期間の一部の期間である。更に、燃料カット期間Tfcは、上記学習実行条件が成立していない期間であって、学習条件不成立期間の一部の期間である。
そして、時点t1になると、運転者がアクセルペダル81を踏み込むことによりスロットル弁開度TAが閾値開度β以上の所定開度TA1に一致する。従って、この時点t1にてCPU71が図6の燃料カット条件判定ルーチンの処理を開始してステップ620に進んだとき、CPU71は、同ステップ620にて「Yes」と判定してステップ625に進み、燃料カットフラグXFCの値を「0」に設定する。即ち、燃料カットフラグXFCの値は「1」から「0」に変更される。なお、燃料カットフラグXFCの値が「1」から「0」に変更されることは、燃料増量条件が成立することに対応している。
そして、CPU71はステップ699に進んで燃料カット条件判定ルーチンを一旦終了する。
更に、CPU71が図7の燃料増量条件判定ルーチンの実行を開始すると、CPU71は、現時点が燃料カットフラグXFCの値が「1」から「0」に変化した直後の時点であるか否かを判定するステップ705に進んだとき、同ステップ705にて「Yes」と判定してステップ715に進み、燃料増量フラグXRCの値を「1」に設定する。即ち、燃料増量フラグXRCの値は「0」から「1」に変更される。
そして、CPU71はステップ799に進んで燃料増量条件判定ルーチンを一旦終了する。
また、CPU71が図8の上流側FB条件判定ルーチンの実行を開始すると、CPU71は、燃料カットフラグXFCの値が「0」であるか否かを判定するステップ810に進んだとき、同ステップ810にて「Yes」と判定してステップ815に進み、上流側FB制御実行フラグXMFBの値を「1」に設定する。即ち、上流側FB制御実行フラグXMFBの値は「0」から「1」に変更される。
そして、CPU71はステップ899に進んで上流側FB条件判定ルーチンを一旦終了する。
更に、CPU71が図9の下流側FB条件判定ルーチンの実行を開始すると、CPU71は、燃料カットフラグXFCの値が「0」であるか否かを判定するステップ915に進んだとき、同ステップ915にて「Yes」と判定して燃料増量フラグXRCの値が「0」であるか否かを判定するステップ920に進む。
この時点では、燃料増量フラグXRCの値は「1」に設定されている。従って、CPU71は、同ステップ920にて「No」と判定してステップ930に進み、下流側FB制御実行フラグXSFBの値を「0」に設定する。即ち、下流側FB制御実行フラグXSFBの値は「0」に維持される。
そして、CPU71はステップ999に進んで下流側FB条件判定ルーチンを一旦終了する。
更に、CPU71が図10の学習条件判定ルーチンの実行を開始すると、CPU71は、下流側FB制御実行フラグXSFBの値が「1」であるか否かを判定するステップ1005に進んだとき、同ステップ1005にて「No」と判定してステップ1020に進み、学習実行フラグXGの値を「0」に設定する。即ち、学習実行フラグXGの値は「0」に維持される。
そして、CPU71はステップ1099に進んで学習条件判定ルーチンを一旦終了する。
一方、CPU71が図11の燃料噴射量制御ルーチンの実行を開始すると、CPU71は、燃料カットフラグXFCの値が「0」であるか否かを判定するステップ1105に進んだとき、同ステップ1105にて「Yes」と判定してステップ1110に進み、上述したように、筒内吸入空気量Mc(k)を決定する。
次いで、CPU71は、ステップ1115に進んで燃料増量フラグXRCの値が「0」であるか否かを判定する。この時点では、燃料増量フラグXRCの値は「1」である。従って、CPU71は、ステップ1115にて「No」と判定してステップ1150に進み、今回の上流側目標空燃比abyfr(k)を理論空燃比よりも比較的大きくリッチ側の燃料増量用空燃比AFrcに設定する。CPU71は、決定された上流側目標空燃比abyfrをストローク数kに関連づけてRAM73に記憶させる。なお、ステップ1115及びステップ1150の処理が実行されることは、燃料増量手段の機能の一部が達成されることに対応している。
そして、CPU71は、ステップ1125に進み上記ステップ1110にて決定された筒内吸入空気量Mc(k)を上記ステップ1150にて設定された上流側目標空燃比abyfr(k)により除することによって基本燃料噴射量Fbase(この時点では、燃料増量用空燃比AFrcに対応する基本燃料噴射量Fir)を決定する。
次いで、CPU71は、ステップ1130以降のステップに進んで、上記ステップ1125にて決定された基本燃料噴射量Fbaseと上流側FB補正量DFiとに基づいて燃料噴射量Fiを決定するとともに、決定された燃料噴射量Fiの燃料が噴射されるようにインジェクタ39に対して噴射指示信号を送出した後、図11のルーチンを一旦終了する。
また、CPU71が図12の上流側FB補正量算出ルーチンの実行を開始すると、CPU71は、上流側FB制御実行フラグXMFBの値が「1」であるか否かを判定するステップ1205に進んだとき、同ステップ1205にて「Yes」と判定してステップ1210以降のステップに進み、上述したように、上流側FB補正量DFiを算出する。
そして、CPU71はステップ1299に進んで上流側FB補正量算出ルーチンを一旦終了する。
更に、CPU71が図13の下流側FB補正量算出ルーチンの実行を開始すると、CPU71は、下流側FB制御実行フラグXSFBの値が「1」であるか否かを判定するステップ1305に進んだとき、同ステップ1305にて「No」と判定してステップ1360に進み、下流側FB補正量Vafsfbを「0」に設定する。
そして、CPU71はステップ1399に進んで下流側FB補正量算出ルーチンを一旦終了する。
そして、上記演算周期が経過すると、CPU71は、再び、図6の燃料カット条件判定ルーチンの処理を開始して燃料カットフラグXFCの値が「0」であるか否かを判定するステップ605に進む。この時点では、燃料カットフラグXFCの値は「0」に設定されている。
従って、CPU71は、同ステップ605にて「Yes」と判定してステップ610に進み、現時点のエンジン回転速度NEが上記閾値回転速度αよりも高く、且つ、スロットル弁開度TAが上記閾値開度β以下であるか否かを判定する。
上記仮定に従えば、エンジン回転速度NEは閾値回転速度αよりも高い。また、この時点では、スロットル弁開度TAは閾値開度βよりも大きい所定開度TA1に一致している。従って、CPU71は、同ステップ610にて「No」と判定してステップ699に直接進み、燃料カット条件判定ルーチンを一旦終了する。即ち、燃料カットフラグXFCの値は「0」に維持される。
更に、CPU71が図7の燃料増量条件判定ルーチンの実行を開始すると、CPU71は、現時点が燃料カットフラグXFCの値が「1」から「0」に変化した直後の時点であるか否かを判定するステップ705に進んだとき、同ステップ705にて「No」と判定してステップ710に進み、現時点が、燃料増量フラグXRCの値が「0」から「1」に変化してから燃料増量時間τrcが経過した時点であるか否かを判定する。
この時点は、燃料増量フラグXRCの値が「0」から「1」に変化した直後の時点である。従って、CPU71は、同ステップ710にて「No」と判定してステップ799に直接進んで本ルーチンを一旦終了する。
燃料カットフラグXFCの値が「0」に維持されているとともに燃料増量フラグXRCの値は「1」に維持されているので、上述した他のルーチンにおいては上述した時点t1における場合と同様の処理が実行される。このような処理は、燃料増量フラグXRCの値が「0」から「1」に変化してから所定の燃料増量時間τrcが経過した時点である後述の時点t2まで繰り返し実行される。従って、図5に示した燃料増量期間(時点t1〜時点t2)Trcにおいては、上記下流側FB補正量算出ルーチンのステップ1360にて下流側FB補正量Vafsfbが「0」に設定されているので、下流側FB補正量Vafsfbに基づくことなく、上流側空燃比センサ66の出力値Vabyfsと、上流側目標空燃比abyfr(k-N)と、下流側FB学習補正量Gsfbと、に基づいて上流側FB補正量DFiが決定される(即ち、下流側FB制御が停止させられる)。
これにより、内燃機関10の空燃比が燃料増量用空燃比AFrcに制御され(燃料増量制御が行われ)、その結果、酸素吸蔵量が減少する。ここで、燃料増量時間τrcは、酸素吸蔵量が最大である時点から同燃料増量時間τrcだけ内燃機関10の空燃比を燃料増量用空燃比AFrcに制御することにより、その酸素吸蔵量が適量(例えば、酸素吸蔵量の最大値の半分の量)に一致するように設定されている。
更に、上記燃料増量期間Trcにおいては、制御装置が上記ステップ1315、上記ステップ1325及び上記ステップ1330のいずれも実行しないので、下流側FB用時間積分値SDVoxs1、学習用時間積分値SDVoxs2及び下流側FB学習補正量Gsfbのいずれの更新も停止させられる。これにより、下流側FB用時間積分値SDVoxs1(図5の曲線C2)、学習用時間積分値SDVoxs2(図5の曲線C1)及び下流側FB学習補正量Gsfbのそれぞれは、一定に維持される。
なお、燃料増量期間Trcは、下流側フィードバック条件不成立期間の一部の期間又は学習条件不成立期間の一部の期間である。
そして、時点t2において、CPU71が図7の燃料増量条件判定ルーチンの実行を開始し、現時点が、燃料増量フラグXRCの値が「0」から「1」に変化してから上記燃料増量時間τrcが経過した時点であるか否かを判定するステップ710に進んだとき、CPU71は、同ステップ710にて「Yes」と判定してステップ720に進み、燃料増量フラグXRCの値を「0」に設定する。次いで、CPU71は、ステップ725に進んで過渡期間表示フラグXKTの値を「1」に設定する。即ち、燃料増量フラグXRCの値が「1」から「0」に変更されるとともに、過渡期間表示フラグXKTの値が「0」から「1」に変更される。なお、燃料増量フラグXRCの値が「0」から「1」に変化してから上記燃料増量時間τrcが経過することは、燃料増量条件が不成立となることに対応している。
そして、CPU71はステップ799に進んで燃料増量条件判定ルーチンを一旦終了する。
更に、CPU71が図9の下流側FB条件判定ルーチンの実行を開始すると、CPU71は、燃料増量フラグXRCの値が「0」であるか否かを判定するステップ920に進んだとき、同ステップ920にて「Yes」と判定してステップ925に進む。そして、CPU71は、同ステップ925にて下流側FB制御実行フラグXSFBの値を「1」に設定する。即ち、下流側FB制御実行フラグXSFBの値は「0」から「1」に変更される。
次いで、CPU71はステップ999に進んで下流側FB条件判定ルーチンを一旦終了する。
更に、CPU71が図10の学習条件判定ルーチンの実行を開始すると、CPU71は、下流側FB制御実行フラグXSFBの値が「1」であるか否かを判定するステップ1005に進んだとき、同ステップ1005にて「Yes」と判定してステップ1010に進み、過渡期間表示フラグXKTの値が「0」であるか否かを判定する。
この時点では、過渡期間表示フラグXKTの値は「1」に設定されている。従って、CPU71は、同ステップ1010にて「No」と判定してステップ1025に進み、下流側空燃比センサ67の出力値Voxsが上記閾値出力値Voxsrefよりも大きいか否かを判定する。
ところで、理論空燃比よりもリッチ側の空燃比に対応する燃料が噴射されると、同燃料が噴射された時点から比較的大きな時間遅れを伴って、第1触媒53の酸素吸蔵量は減少する。従って、第1触媒53内の酸素吸蔵量が最大である時点から燃料増量時間τrcだけ燃料増量制御が実行されると、第1触媒53の実際の酸素吸蔵量は、燃料増量制御の実行が終了した後、比較的大きな時間遅れを伴って、適量となる。
従って、この時点t2では、第1触媒53の実際の酸素吸蔵量が比較的多いので、下流側空燃比センサ67の出力値Voxsは理論空燃比よりもリーン側の空燃比に対応した出力値となる。即ち、下流側空燃比センサ67の出力値Voxsは上記閾値出力値Voxsrefよりも小さい。従って、CPU71は、同ステップ1025にて「No」と判定してステップ1020に進み、学習実行フラグXGの値を「0」に設定する。即ち、学習実行フラグXGの値は「0」に維持される。
そして、CPU71はステップ1099に進んで学習条件判定ルーチンを一旦終了する。
また、CPU71が図11の燃料噴射量制御ルーチンの実行を開始すると、CPU71は、燃料増量フラグXRCの値が「0」であるか否かを判定するステップ1115に進んだとき、同ステップ1115にて「Yes」と判定してステップ1120に進み、今回の上流側目標空燃比abyfr(k)を理論空燃比AFstに設定する。CPU71は、決定された上流側目標空燃比abyfrをストローク数kに関連づけてRAM73に記憶させる。
そして、CPU71は、ステップ1125に進み上記ステップ1110にて決定された筒内吸入空気量Mc(k)を上記ステップ1120にて設定された上流側目標空燃比abyfr(k)により除することによって基本燃料噴射量Fbase(この時点では、理論空燃比AFstに対応する基本燃料噴射量Fis)を決定する。
次いで、CPU71は、ステップ1130以降のステップに進んで、上記ステップ1125にて決定された基本燃料噴射量Fbaseと上流側FB補正量DFiとに基づいて燃料噴射量Fiを決定するとともに、決定された燃料噴射量Fiの燃料が噴射されるようにインジェクタ39に対して噴射指示信号を送出した後、図11のルーチンを一旦終了する。
一方、CPU71が図12の上流側FB補正量算出ルーチンの実行を開始すると、CPU71は、上流側FB制御実行フラグXMFBの値が「1」であるか否かを判定するステップ1205に進んだとき、同ステップ1205にて「Yes」と判定してステップ1210以降のステップに進み、上述したように、上流側FB補正量DFiを算出する。
そして、CPU71はステップ1299に進んで上流側FB補正量算出ルーチンを一旦終了する。
また、CPU71が図13の下流側FB補正量算出ルーチンの実行を開始すると、CPU71は、下流側FB制御実行フラグXSFBの値が「1」であるか否かを判定するステップ1305に進んだとき、同ステップ1305にて「Yes」と判定してステップ1310に進み、上述したように、出力偏差DVoxsを算出する。
次いで、CPU71は、ステップ1315に進んで、上述したように、現時点にて算出されている最新の下流側FB用時間積分値SDVoxs1と、上記ステップ1310にて算出された出力偏差DVoxsと、に基づいて下流側FB用時間積分値SDVoxs1の最新値を算出する(下流側FB用時間積分値SDVoxs1を更新する)。
そして、CPU71は、学習実行フラグXGの値が「1」であるか否かを判定するステップ1320に進み、同ステップ1320にて「No」と判定してステップ1345以降のステップに進み、上述したように、下流側FB補正量Vafsfbを算出する。
そして、CPU71はステップ1399に進んで下流側FB補正量算出ルーチンを一旦終了する。
以上の処理は、下流側空燃比センサ67の出力値Voxsが上記閾値出力値Voxsrefよりも大きくなる後述の時点t3まで繰り返し実行される。従って、図5に示した過渡期間(時点t2〜時点t3)Tkにおいては、その過渡期間Tkにおける出力偏差DVoxsに基づいて下流側FB用時間積分値SDVoxs1が更新され(図5の曲線C2)、更新された下流側FB用時間積分値SDVoxs1に基づいて下流側FB補正量Vafsfbが算出される。これにより、過渡期間Tk中の下流側FB補正量Vafsfbを、過渡期間Tkにおける出力偏差DVoxsが反映されない時間積分値に基づいて算出する場合よりも適切に算出することができる。
そして、上流側空燃比センサ66の出力値Vabyfsと、上流側目標空燃比abyfr(k-N)と、下流側FB補正量Vafsfbと、下流側FB学習補正量Gsfbと、に基づいて上流側FB補正量DFiが決定される(即ち、上流側FB制御及び下流側FB制御の両方が行われる)。この結果、過渡期間Tkにおいて下流側空燃比を下流側目標空燃比に迅速に一致させることができる。
一方、過渡期間Tkにおいては、制御装置が上記ステップ1325及び上記ステップ1330を実行しないので、学習用時間積分値SDVoxs2の更新及び下流側FB学習補正量Gsfbの更新は再開されない(停止させられたままである)。これにより、学習用時間積分値SDVoxs2(図5の曲線C1)及び下流側FB学習補正量Gsfbのそれぞれの値は、一定に維持される。
なお、この過渡期間Tkは、下流側フィードバック条件成立期間の一部の期間又は学習条件不成立期間の一部の期間である。更に、過渡期間(時点t2〜時点t3)Tkは、下流側フィードバック条件成立期間と学習条件不成立期間とが重複している重複期間とも呼ばれる期間である。また、時点t2から時点t3となるまでに経過した時間は、本明細書において、過渡時間とも呼ばれる時間である。
そして、時点t3になると、下流側空燃比センサ67の出力値Voxsが上記閾値出力値Voxsrefを超える。従って、この時点t3にてCPU71が図10の学習条件判定ルーチンの処理を開始してステップ1025に進んだとき、CPU71は、同ステップ1025にて「Yes」と判定してステップ1030に進み、過渡期間表示フラグXKTの値を「0」に設定する。即ち、過渡期間表示フラグXKTの値は「1」から「0」に変更される。
次いで、CPU71は、ステップ1015に進んで学習実行フラグXGの値を「1」に設定する。即ち、学習実行条件が成立して、学習実行フラグXGの値は「0」から「1」に変更される。
そして、CPU71はステップ1099に進んで学習条件判定ルーチンを一旦終了する。
この状態において、CPU71が図13の下流側FB補正量算出ルーチンの実行を開始すると、CPU71は、学習実行フラグXGの値が「1」であるか否かを判定するステップ1320に進んだとき、同ステップ1320にて「Yes」と判定してステップ1325以降のステップに進み、上述したように、学習用時間積分値SDVoxs2及び下流側FB学習補正量Gsfbを更新するとともに下流側FB補正量Vafsfbを算出する。
そして、CPU71はステップ1399に進んで下流側FB補正量算出ルーチンを一旦終了する。
そして、上記演算周期が経過すると、CPU71は、再び、図10の学習条件判定ルーチンの処理を開始して過渡期間表示フラグXKTの値が「0」であるか否かを判定するステップ1010に進む。この時点では、過渡期間表示フラグXKTの値は「0」に設定されている。従って、CPU71は、同ステップ1010にて「Yes」と判定してステップ1015に進み、学習実行フラグXGの値を「1」に設定する。即ち、学習実行フラグXGの値は「1」に維持される。
そして、CPU71はステップ1099に進んで学習条件判定ルーチンを一旦終了する。
学習実行フラグXGの値は「1」に維持されているので、上述した他のルーチンにおいては上述した時点t3における場合と同様の処理が実行される。このような処理は、以降において繰り返し実行される。従って、図5に示した時点t3以降の期間Bにおいては、下流側FB制御実行フラグXSFBの値が「1」であるので、過渡期間Tkにおける場合と同様に、期間Bにおける出力偏差DVoxsに基づいて下流側FB用時間積分値SDVoxs1が更新され、更新された下流側FB用時間積分値SDVoxs1に基づいて下流側FB補正量Vafsfbが算出される。更に、期間Bにおいては、学習実行フラグXGの値が「1」であるので、期間Bにおける出力偏差DVoxsに基づいて学習用時間積分値SDVoxs2が更新され、更新された学習用時間積分値SDVoxs2に基づいて下流側FB学習補正量Gsfbが算出される。即ち、学習用時間積分値SDVoxs2の更新及び下流側FB学習補正量Gsfbの更新が行われる。
そして、過渡期間Tkと同様に、上流側空燃比センサ66の出力値Vabyfsと、上流側目標空燃比abyfr(k-N)と、下流側FB補正量Vafsfbと、下流側FB学習補正量Gsfbと、に基づいて上流側FB補正量DFiが決定される(即ち、上流側FB制御及び下流側FB制御の両方が行われる)。この結果、下流側空燃比を下流側目標空燃比に迅速に一致させることができる。
更に、学習用時間積分値SDVoxs2及び下流側FB学習補正量Gsfbには、燃料カット期間Tfc、燃料増量期間Trc及び過渡期間Tkにおける出力偏差DVoxsが反映されていないので、空燃比を適切に制御することができる。
なお、この時点t3は、時点t0にて成立しなくなった学習実行条件が再び成立した時点であり、本明細書において、第2時点とも呼ばれる時点である。また、この期間Bは、下流側フィードバック条件成立期間の一部の期間又は学習条件成立期間の一部の期間である。
以上、説明したように、本発明による内燃機関の空燃比制御装置の第1実施形態によれば、過渡期間Tkにおいて、過渡期間Tkにおける出力偏差DVoxsに基づいて下流側FB用時間積分値SDVoxs1(第1の時間積分値)が更新され、更新された下流側FB用時間積分値SDVoxs1に基づいて下流側FB補正量Vafsfbが算出される。これにより、過渡期間Tk中の下流側FB補正量Vafsfbを、過渡期間Tkにおける出力偏差DVoxsが反映されない時間積分値に基づいて算出する場合よりも適切に算出することができる。この結果、過渡期間Tkにおいて、下流側空燃比を下流側目標空燃比に迅速に一致させることができる。
更に、上記第1実施形態によれば、学習条件不成立期間(燃料カット期間Tfc、燃料増量期間Trc及び過渡期間Tk)において、下流側FB学習補正量Gsfbは一定に維持される。加えて、学習条件不成立期間の終了時点t3において、学習用時間積分値SDVoxs2は、学習条件不成立期間における出力偏差DVoxsとは無関係な所定の値(即ち、学習条件不成立期間の開始時点t0における学習用時間積分値SDVoxs2)となっている。
これにより、学習条件不成立期間(特に、過渡期間Tk)における出力偏差が下流側FB学習補正量Gsfbに反映されることを回避できるので、下流側FB学習補正量Gsfbが不適切な値となることを防止することができる。この結果、上流側空燃比センサ66の出力値Vabyfsと第1触媒53の上流の実際の空燃比(上流側空燃比)との間の対応関係の予定されていた対応関係に対するズレ(上流側空燃比センサ66の出力ズレ)を適切に補償することができ、内燃機関10の実際の空燃比を目標とする空燃比に確実に一致させることができる。
なお、上記第1実施形態は、第2時点(時点t3)の学習用時間積分値SDVoxs2に設定される値であって学習条件不成立期間における出力偏差DVoxsとは無関係な所定の値として、第1時点(時点t0)における学習用時間積分値SDVoxs2を採用していたが、第1時点(時点t0)における学習用時間積分値SDVoxs2に所定の係数を乗じた値を採用してもよい。
<第2実施形態>
次に、本発明の第2実施形態に係る内燃機関の空燃比制御装置について説明する。第2実施形態に係る空燃比制御装置は、過渡期間Tkにおいて更新される下流側FB用時間積分値SDVoxs1と過渡期間Tkを含む学習条件不成立期間において一定に維持される学習用時間積分値SDVoxs2とからなる2つの時間積分値を互いに独立に算出する上記第1実施形態に係る空燃比制御装置に対して、時間積分値を1つだけ算出するとともに過渡期間において時間積分値を更新し且つ学習条件不成立期間の終了時点(本例では、過渡期間の終了時点)にて時間積分値を学習条件不成立期間の開始時点における時間積分値に設定する点のみにおいて相違している。
この制御装置は、下流側FB補正量Vafsfbを算出するための下流側FB補正量算出ルーチンとして、図13のルーチンに代えて図14のルーチンを実行する。なお、図14のルーチンの処理が実行されることは、空燃比フィードバック制御手段の機能の一部、上流側フィードバック補正量算出手段の機能の一部、下流側フィードバック補正量算出手段の機能、下流側フィードバック学習補正量算出手段の機能、時間積分値更新手段の機能及び時間積分値設定手段の機能が達成されることに対応している。
従って、所定のタイミングになると、CPU71は、ステップ1400から処理を開始し、ステップ1405に進んで、現時点が、学習実行フラグXGの値が「0」から「1」に変化した直後の時点であるか否かを判定する。
いま、上記第1実施形態と同様に、内燃機関10の運転者がアクセルペダル81を操作することにより、アクセルペダル操作量Accpが所定操作量Accp1にて一定に維持され、その後、所定期間だけ「0」に維持され、更にその後、再び所定操作量Accp1に維持される場合を想定して図15を参照しながら説明を続ける。
まず、内燃機関10の運転者がアクセルペダル81を踏み込んでいる足をアクセルペダル81から離すことによりアクセルペダル操作量Accpが「0」に変更される前であってアクセルペダル操作量Accpが所定操作量Accp1にて一定に維持されている時点(図15の時点t0よりも前の時点)から説明する。この時点では、上流側FB制御実行フラグXMFB、下流側FB制御実行フラグXSFB及び学習実行フラグXGの値は「1」に設定され続けている。
従って、CPU71は、同ステップ1405にて「No」と判定してステップ1410に進み、下流側FB制御実行フラグXSFBの値が「1」であるか否かを判定する。
上記仮定に従えば、CPU71は、同ステップ1410にて「Yes」と判定してステップ1415に進み、ステップ1310と同様に、下流側目標値Voxsrefから現時点の下流側空燃比センサ67の出力値Voxsを減じることにより、出力偏差DVoxsを求める。
次に、CPU71は、ステップ1420に進んで、上記ステップ1415にて求められた出力偏差DVoxsと時間ステップΔtとの積を、出力偏差DVoxsの時間積分値SDVoxsであって現時点にて算出されている最新の時間積分値SDVoxsに加えることにより時間積分値SDVoxsの最新値を算出する(時間積分値SDVoxsを更新する)。ここで、時間ステップΔtは、本ルーチンが前回実行された時点から今回実行された時点までの時間(即ち、上記演算周期)である。
そして、CPU71は、ステップ1425に進み学習実行フラグXGの値が「1」であるか否かを判定する。この時点では、学習実行フラグXGの値は「1」である。従って、CPU71は、同ステップ1425にて「Yes」と判定してステップ1430に進み、上記ステップ1420にて求められた時間積分値SDVoxsと所定の学習用係数Kgとの積を現時点にて算出されている最新の下流側FB学習補正量Gsfbに加えることにより下流側FB学習補正量Gsfbの最新値を算出する(下流側FB学習補正量Gsfbを更新する)。
そして、CPU71は、ステップ1435に進み上記ステップ1420にて求められた時間積分値SDVoxsから時間積分値SDVoxsと上記学習用係数Kgとの積を減じることにより時間積分値SDVoxsを補正(更新)する。即ち、時間積分値SDVoxsは、上記ステップ1430にて下流側FB学習補正量Gsfbに新たに加えられた量だけ減じられる。
次いで、CPU71は、ステップ1440に進んで、上記ステップ1415にて求められた出力偏差DVoxsから本ルーチンが実行された過去の時点であって下流側FB制御実行フラグXSFBの値が「1」に設定された状態にて本ルーチンが実行された最新の時点(下流側FB制御実行時最終時点)において後述するステップ1450にて設定(更新)された過去の出力偏差DVoxs1を減じた値を時間ステップΔtにより除することにより、出力偏差DVoxsの時間微分値(の近似値)DDVoxsを求める。なお、現時点が、下流側FB制御実行フラグXSFBの値が「0」から「1」に変更された直後の時点である場合、出力偏差の時間微分値DDVoxsを「0」に設定してもよい。
次いで、CPU71は、ステップ1445に進み、下記(9)式と、上記ステップ1415にて算出された出力偏差DVoxsと、上記ステップ1435にて算出された時間積分値SDVoxsと、上記ステップ1440にて算出された出力偏差の時間微分値DDVoxsと、に基づいて下流側FB補正量Vafsfbを求める。即ち、下流側FB補正量Vafsfbは、出力偏差DVoxsを比例・積分・微分処理(PID処理)することにより算出される。
Vafsfb=Kp・DVoxs+Ki・SDVoxs+Kd・DDVoxs …(9)
ここで、Kpは予め設定された比例ゲイン(比例定数)であり、Kiは予め設定された積分ゲイン(積分定数)であり、Kdは予め設定された微分ゲイン(微分定数)である。各ゲインKp、Ki及びKdは、いずれも正の値である。
このようにして、本空燃比制御装置は、下流側目標値Voxsrefと下流側空燃比センサ67の出力値Voxsとの差である出力偏差DVoxsに基づいて、下流側FB補正量Vafsfb及び下流側FB学習補正量Gsfbを求める。この下流側FB補正量Vafsfb及び下流側FB学習補正量Gsfbは、上記図12のルーチンのステップ1215にて制御用空燃比abyfsが求められる際に用いられる。
そして、CPU71は、ステップ1450に進んで過去の出力偏差DVoxs1を上記ステップ1410にて求めた現時点の出力偏差DVoxsに設定する。
次いで、CPU71は、ステップ1455に進んで、現時点が、学習実行フラグXGの値が「1」から「0」に変化した直後の時点であるか否かを判定する。上述したように、この時点では、学習実行フラグXGの値は「1」に設定されている。従って、CPU71は、同ステップ1455にて「No」と判定し、ステップ1499に進んで本ルーチンを一旦終了する。
更に、上記第1実施形態と同様に、CPU71は、図11及び図12の各ルーチンの処理を実行する。
この時点では、上流側FB制御実行フラグXMFBの値が「1」に設定されている。従って、上記図14のルーチンにて算出された下流側FB補正量Vafsfb及び下流側FB学習補正量Gsfbに基づいて上流側FB補正量DFiが算出される。更に、燃料カットフラグXFCの値及び燃料増量フラグXRCの値が共に「0」に設定されているので、理論空燃比AFstに対応する基本燃料噴射量Fisと算出された上流側FB補正量DFiとに基づいて決定された燃料噴射量Fiの燃料が噴射されるようにインジェクタ39に対して噴射指示信号が送出される。即ち、上流側FB制御及び下流側FB制御が共に行われる。
以上の処理は、燃料カット実行条件が成立する時点t0まで繰り返し実行される。従って、図15に示した時点t0よりも前の期間Aにおいては、ステップ1420、ステップ1430及びステップ1445の処理が実行されるので、時間積分値SDVoxs、下流側FB補正量Vafsfb及び下流側FB学習補正量Gsfbのそれぞれの値は更新され続ける。
そして、時点t0になると、運転者がアクセルペダル81を踏み込んでいた足をアクセルペダル81から離すことによりアクセルペダル操作量Accpが「0」となったことによって、スロットル弁開度TAが全閉開度(即ち、閾値開度β)に一致する。従って、上記第1実施形態と同様に、CPU71が図6のルーチンの処理を実行することにより、燃料カットフラグXFCの値が「1」に変更される。
更に、上記第1実施形態と同様に、CPU71は、図7〜図10の各ルーチンの処理を実行する。その結果、上流側FB制御実行フラグXMFBの値、下流側FB制御実行フラグXSFBの値及び学習実行フラグXGの値は、それぞれ「0」に変更される。一方、燃料増量フラグXRCの値は「0」に維持される。
従って、CPU71が図14の下流側FB補正量算出ルーチンの処理を開始し、ステップ1405にて「No」と判定してステップ1410に進んだとき、CPU71は、同ステップ1410にて「No」と判定してステップ1460に進み、下流側FB補正量Vafsfbを「0」に設定する。これにより、下流側FB制御は実質的に行われない。
次いで、CPU71は、現時点が、学習実行フラグXGの値が「1」から「0」に変化した直後の時点であるか否かを判定するステップ1455に進む。この時点t0は、学習実行フラグXGの値が「1」から「0」へと変更された直後の時点である。従って、CPU71は、ステップ1455にて「Yes」と判定してステップ1465に進む。そして、CPU71は、ステップ1465にて時間積分値の記憶値SDVoxs0を現時点(時点t0)の時間積分値SDVoxsに設定する(現時点の時間積分値SDVoxsを時間積分値の記憶値SDVoxs0に格納する)。即ち、CPU71は、学習条件不成立期間の開始時点(学習実行フラグXGの値が「1」から「0」へと変更された時点)t0の時間積分値SDVoxsを記憶値SDVoxs0として格納しておく。
その後、CPU71は、ステップ1499に進んで本ルーチンを一旦終了する。
加えて、上記第1実施形態と同様に、CPU71は、図11及び図12の各ルーチンの処理を実行する。この時点t0では、燃料カットフラグXFCの値が「1」に設定されているので、上記第1実施形態と同様に、CPU71が図11のルーチンの処理を実行しても上記燃料噴射気筒のインジェクタ39により燃料が噴射されることはない。即ち、燃料の噴射が停止させられる(燃料カットが実行される)。
以上の処理は、燃料カット実行条件が不成立となる時点t1まで繰り返し実行される。従って、図15に示した燃料カット期間(時点t0〜時点t1)Tfcにおいては、燃料の噴射が停止させられ、その結果、第1触媒53内の酸素吸蔵量が増加する。
更に、燃料カット期間Tfcにおいては、下流側FB制御実行フラグXSFBの値が「0」になっているから、ステップ1420、ステップ1430及びステップ1445の処理は実行されない。従って、時間積分値SDVoxs、下流側FB補正量Vafsfb及び下流側FB学習補正量Gsfbのそれぞれの値は一定に維持される。
なお、この時点t0は、上記下流側フィードバック実行条件が成立しなくなるとともに、上記学習実行条件が成立しなくなる時点であり、本明細書において、第1時点とも呼ばれる時点である。
そして、時点t1になると、運転者がアクセルペダル81を踏み込むことによりスロットル弁開度TAが閾値開度β以上の所定開度TA1に一致する。従って、上記第1実施形態と同様に、この時点t1にてCPU71が図6のルーチンの処理を実行することにより、燃料カットフラグXFCの値が「0」に変更される。これにより、燃料増量条件が成立する。
更に、上記第1実施形態と同様に、CPU71は、図7〜図10の各ルーチンの処理を実行する。その結果、燃料増量フラグXRCの値及び上流側FB制御実行フラグXMFBの値が「1」に変更される。一方、下流側FB制御実行フラグXSFBの値及び学習実行フラグXGの値は、それぞれ「0」に維持される。
加えて、CPU71は、上記図14のルーチンの処理を実行する。この時点t1では、下流側FB制御実行フラグXSFBの値が「0」に維持されているので、上述した燃料カット期間Tfcの場合と同様に、下流側FB補正量Vafsfbは「0」に設定される。更に、時間積分値SDVoxs、下流側FB補正量Vafsfb及び下流側FB学習補正量Gsfbのそれぞれの値は一定に維持される。
更に、上記第1実施形態と同様に、CPU71は、図11及び図12の各ルーチンの処理を実行する。この時点t1では、上流側FB制御実行フラグXMFBの値が「1」に設定されているので、上流側空燃比センサ66の出力値Vabyfsと下流側FB学習補正量Gsfb(時点t0から一定に維持されている値)とに基づいて上流側FB補正量DFiは算出される。上述したように、下流側FB補正量Vafsfbは、「0」に設定されているので、上流側FB補正量DFiの算出に実質的に使用されない。
加えて、燃料増量フラグXRCの値が「1」に設定されているので、燃料増量用空燃比AFrcに対応する基本燃料噴射量Firと算出された上流側FB補正量DFiとに基づいて決定された燃料噴射量Fiの燃料が噴射されるようにインジェクタ39に対して噴射指示信号が送出される。即ち、燃料増量制御が行われるとともに、上流側FB制御のみが行われる(下流側FB制御は行われない。)。
以上の処理は、燃料増量条件が不成立となる時点t2まで繰り返し実行される。従って、図15に示した燃料増量期間(時点t1〜時点t2)Trcにおいては、燃料カット期間Tfcの場合と同様に、ステップ1420、ステップ1430及びステップ1445の処理が実行されないので、時間積分値SDVoxs、下流側FB補正量Vafsfb及び下流側FB学習補正量Gsfbのそれぞれの値は一定に維持される。
次いで、時点t2になると、燃料増量フラグXRCの値が「0」から「1」に変化してから上記燃料増量時間τrcが経過することにより燃料増量条件が不成立となる。従って、上記第1実施形態と同様に、この時点t2にてCPU71が図7のルーチンの処理を実行することにより、燃料増量フラグXRCの値が「0」に変更される。
更に、上記第1実施形態と同様に、CPU71は、図8〜図10の各ルーチンの処理を実行する。その結果、下流側FB制御実行フラグXSFBの値が「1」に変更される。一方、上流側FB制御実行フラグXMFBの値は「1」に維持される。更に、この時点t2では、上記第1実施形態と同様に、下流側空燃比センサ67の出力値Voxsが上記閾値出力値Voxsref以下であるので、学習実行フラグXGの値は「0」に維持される。
加えて、CPU71は、上記図14のルーチンの処理を実行する。この時点t2では、CPU71が図14の下流側FB補正量算出ルーチンの処理を開始してステップ1410に進んだとき、CPU71は、同ステップ1410にて「Yes」と判定してステップ1415及びステップ1420の各ステップに進み、出力偏差DVoxsを算出するとともに時間積分値SDVoxsを算出された出力偏差DVoxsに基づいて更新する。
次いで、CPU71は、学習実行フラグXGの値が「1」であるか否かを判定するステップ1425に進み、同ステップ1425にて「No」と判定してステップ1440以降のステップに進み、下流側FB補正量Vafsfbを算出(更新)した後、図14のルーチンを一旦終了する。
更に、上記第1実施形態と同様に、CPU71は、図11及び図12の各ルーチンの処理を実行する。この時点t2では、上流側FB制御実行フラグXMFBの値が「1」に設定されているので、上流側空燃比センサ66の出力値Vabyfsと下流側FB学習補正量Gsfb(時点t0から一定に維持されている値)と上記図14のルーチンにて算出された下流側FB補正量Vafsfbとに基づいて上流側FB補正量DFiが算出される。
加えて、燃料カットフラグXFCの値及び燃料増量フラグXRCの値が共に「0」に設定されているので、理論空燃比AFstに対応する基本燃料噴射量Fisと算出された上流側FB補正量DFiとに基づいて決定された燃料噴射量Fiの燃料が噴射されるようにインジェクタ39に対して噴射指示信号が送出される。
以上の処理は、時点t3まで繰り返し実行される。従って、図15に示した過渡期間(時点t2〜時点t3)Tkにおいては、ステップ1420及びステップ1445の処理が実行されるので、その過渡期間Tkにおける出力偏差DVoxsに基づいて時間積分値SDVoxsが更新され(図15の曲線C3を参照。)、更新された時間積分値SDVoxsに基づいて下流側FB補正量Vafsfbが算出される。これにより、過渡期間Tk中の下流側FB補正量Vafsfbを、過渡期間Tkにおける出力偏差DVoxsが反映されない時間積分値に基づいて算出する場合よりも適切に算出することができる。
一方、過渡期間Tkにおいては、ステップ1430の処理が実行されないので、下流側FB学習補正量Gsfbの値は一定に維持される。
そして、上述した期間Aの場合と同様に、上流側空燃比センサ66の出力値Vabyfsと、上流側目標空燃比abyfr(k-N)と、下流側FB補正量Vafsfbと、下流側FB学習補正量Gsfbと、に基づいて上流側FB補正量DFiが決定される(即ち、上流側FB制御及び下流側FB制御の両方が行われる)。この結果、過渡期間Tkにおいて下流側空燃比を下流側目標空燃比に迅速に一致させることができる。
そして、時点t3になると、上記第1実施形態と同様に、下流側空燃比センサ67の出力値Voxsが上記閾値出力値Voxsrefを超える。従って、上記第1実施形態と同様に、この時点t3にてCPU71が図10のルーチンの処理を実行することにより、学習実行フラグXGの値が「1」に変更される。
加えて、CPU71は、上記図14のルーチンの処理を実行する。この時点t3では、CPU71が図14の下流側FB補正量算出ルーチンの処理を開始してステップ1405に進んだとき、CPU71は、同ステップ1405にて「Yes」と判定してステップ1470に進む。
そして、CPU71は、時間積分値SDVoxsを時点t0において上記ステップ1465にて設定された時間積分値の記憶値SDVoxs0に設定する。これにより、時間積分値SDVoxsは、学習条件不成立期間(時点t0〜時点t3)における出力偏差DVoxsとは無関係な値である学習条件不成立期間の開始時点t0における時間積分値SDVoxs(=SDVoxs0)に設定される。
次いで、CPU71は、ステップ1410に進み、同ステップ1410にて「Yes」と判定してステップ1415及びステップ1420の各ステップに進み、出力偏差DVoxsを算出するとともに時間積分値SDVoxsを算出された出力偏差DVoxsに基づいて更新する。
次に、CPU71は、学習実行フラグXGの値が「1」であるか否かを判定するステップ1425に進み、同ステップ1425にて「Yes」と判定してステップ1430及びステップ1435の各ステップに進み、下流側FB学習補正量Gsfbを更新するとともに時間積分値SDVoxsを補正する。即ち、下流側FB学習補正量Gsfbの更新が再開させられる。
その後、CPU71は、ステップ1440以降のステップに進んで、下流側FB補正量Vafsfbを算出した後、図14のルーチンを一旦終了する。
更に、上記第1実施形態と同様に、CPU71は、図11及び図12の各ルーチンの処理を実行する。この時点t3では、上流側FB制御実行フラグXMFBの値が「1」に設定されているので、上流側空燃比センサ66の出力値Vabyfsと上記図14のルーチンにて更新された下流側FB学習補正量Gsfb及び下流側FB補正量Vafsfbとに基づいて上流側FB補正量DFiが算出される。
加えて、燃料カットフラグXFCの値及び燃料増量フラグXRCの値が共に「0」に設定されているので、理論空燃比AFstに対応する基本燃料噴射量Fisと算出された上流側FB補正量DFiとに基づいて決定された燃料噴射量Fiの燃料が噴射されるようにインジェクタ39に対して噴射指示信号が送出される。即ち、上流側FB制御及び下流側FB制御が共に行われる。
なお、この時点t3は、時点t0にて成立しなくなった学習実行条件が再び成立する時点であり、本明細書において、第2時点とも呼ばれる時点である。
このように、図15に示した時点t3以降の期間Bにおいては、過渡期間Tkにおける場合と同様に、ステップ1420及びステップ1445の処理が実行されるので、期間Bにおける出力偏差DVoxsに基づいて時間積分値SDVoxsが更新され、更新された時間積分値SDVoxsに基づいて下流側FB補正量Vafsfbが算出される。更に、期間Bにおいては、過渡期間Tkにおける場合と異なり、ステップ1430の処理も実行されるので、更新された時間積分値SDVoxsに基づいて下流側FB学習補正量Gsfbが更新(算出)される。
そして、過渡期間Tkと同様に、上流側空燃比センサ66の出力値Vabyfsと、上流側目標空燃比abyfr(k-N)と、下流側FB補正量Vafsfbと、下流側FB学習補正量Gsfbと、に基づいて上流側FB補正量DFiが決定される。この結果、下流側空燃比を下流側目標空燃比に迅速に一致させることができる。
更に、時間積分値SDVoxs及び下流側FB学習補正量Gsfbには、学習条件不成立期間(燃料カット期間Tfc、燃料増量期間Trc及び過渡期間Tk)における出力偏差DVoxsが反映されていないので、下流側FB学習補正量Gsfbが適切に更新される。その結果、空燃比を適切に制御することができる。
以上、説明したように、本発明による内燃機関の空燃比制御装置の第2実施形態によれば、上記第1実施形態と同様に、過渡期間Tkにおいて、過渡期間Tkにおける出力偏差DVoxsに基づいて時間積分値SDVoxsが更新され、更新された時間積分値SDVoxsに基づいて下流側FB補正量Vafsfbが算出される。これにより、過渡期間Tk中の下流側FB補正量Vafsfbを、過渡期間Tkにおける出力偏差DVoxsが反映されない時間積分値に基づいて算出する場合よりも適切に算出することができる。この結果、過渡期間Tkにおいて、下流側空燃比を下流側目標空燃比に迅速に一致させることができる。
更に、上記第2実施形態によれば、学習条件不成立期間(燃料カット期間Tfc、燃料増量期間Trc及び過渡期間Tk)において、下流側FB学習補正量Gsfbは一定に維持される。加えて、学習条件不成立期間の終了時点t3にて、時間積分値SDVoxsは、学習条件不成立期間における出力偏差DVoxsとは無関係な所定の値(即ち、学習条件不成立期間の開始時点t0における時間積分値SDVoxs)に設定される。これにより、学習条件不成立期間(特に、過渡期間Tk)における出力偏差が下流側FB学習補正量Gsfbに反映されることを回避できるので、下流側FB学習補正量Gsfbが不適切な値となることを防止することができる。この結果、上流側空燃比センサ66の出力ズレを適切に補償することができ、内燃機関10の実際の空燃比を目標とする空燃比に確実に一致させることができる。
なお、上記第2実施形態は、第2時点(時点t3)の時間積分値SDVoxsに設定される値であって学習条件不成立期間における出力偏差DVoxsとは無関係な所定の値として、第1時点(時点t0)における時間積分値SDVoxsを採用していたが、第1時点(時点t0)における時間積分値SDVoxsに所定の係数を乗じた値を採用してもよい。また、上記第2実施形態は、第2時点(時点t3)にて時間積分値SDVoxsに設定される時間積分値の記憶値SDVoxs0として第1時点(時点t0)の時間積分値SDVoxsを格納するように構成されていたが、時点t0〜時点t2の期間中、時間積分値SDVoxsが更新されないので、時点t0〜時点t2の期間中の所定の時点の時間積分値SDVoxsを格納するように構成されていてもよい。
また、本発明は上記各実施形態に限定されることはなく、本発明の範囲内において種々の変形例を採用することができる。例えば、上流側FB補正量を算出するためのルーチン(図12)及び下流側FB補正量を算出するためのルーチン(図13及び図14)をそれぞれ実行するタイミングは、燃料噴射気筒について燃料噴射開始時期(燃料噴射開始時点)が到来するタイミングであってもよい。
また、上記各実施形態においては、下流側FB補正量Vafsfbは、比例項、積分項及び微分項からなっていたが、比例項及び積分項のみからなっていてもよい。
加えて、上記各実施形態は、燃料増量期間Trcの開始時点(即ち、燃料カット期間Tfcの終了時点)t1にて上流側FB制御実行フラグXMFBの値を「1」に変更する(図8のステップ815)ことにより上流側FB制御を再開させるように構成されていたが、燃料増量期間Trcにおいて燃料増量用空燃比AFrcを有する混合ガスが内燃機関10に供給されることにより上流側空燃比センサ66の出力値Vabyfsが所定の閾値(例えば、理論空燃比に対応する理論空燃比対応出力値Vst)よりも小さくなったとき、上流側FB制御実行フラグXMFBの値を「1」に変更することにより上流側FB制御を再開させるように構成されていてもよい。更に、過渡期間Tkを燃料増量期間Trcの終了時点から所定時間が経過したときに終了してもよい。
また、上記各実施形態が適用される過渡期間は、燃料カット期間Tfcに続く燃料増量期間Trc後の過渡期間Tkに限定されることはなく、内燃機関10の目標空燃比が理論空燃比と比較的大きく異なる空燃比に設定された後に理論空燃比に設定された時点から所定の過渡時間が経過するまでの過渡期間であればよい。
上流側FB制御及び下流側FB制御の実行の有無、下流側FB学習補正量の更新の有無、燃料噴射量、下流側空燃比センサの出力値、出力偏差の時間積分値及び下流側FB学習補正量の時間に対する変化を示したタイムチャートである。 本発明の第1実施形態に係る内燃機関の空燃比制御装置を内燃機関に適用したシステムの概略構成図である。 図2に示した上流側空燃比センサの出力値と空燃比との関係を示したグラフである。 図2に示した下流側空燃比センサの出力値と空燃比との関係を示したグラフである。 各種のフラグ、燃料噴射量、上流側空燃比センサの出力値、下流側空燃比センサの出力値及び出力偏差の時間積分値の時間に対する変化を示したタイムチャートである。 図2に示したCPUが実行する燃料カットを実行するか否かを決定するためのルーチンを示したフローチャートである。 図2に示したCPUが実行する燃料増量制御を実行するか否かを決定するためのルーチンを示したフローチャートである。 図2に示したCPUが実行する上流側FB制御を実行するか否かを決定するためのルーチンを示したフローチャートである。 図2に示したCPUが実行する下流側FB制御を実行するか否かを決定するためのルーチンを示したフローチャートである。 図2に示したCPUが実行する下流側FB学習補正量の更新を行うか否かを決定するためのルーチンを示したフローチャートである。 図2に示したCPUが実行する燃料噴射量の算出及び燃料の噴射指示を行うためのルーチンを示したフローチャートである。 図2に示したCPUが実行する上流側FB補正量を算出するためのルーチンを示したフローチャートである。 図2に示したCPUが実行する下流側FB補正量を算出するためのルーチンを示したフローチャートである。 本発明の第2実施形態に係る内燃機関の空燃比制御装置のCPUが下流側FB補正量を算出するために図13に示したルーチンに代えて実行するルーチンを示したフローチャートである。 各種のフラグ、燃料噴射量、上流側空燃比センサの出力値、下流側空燃比センサの出力値及び出力偏差の時間積分値の時間に対する変化を示したタイムチャートである。
符号の説明
10…内燃機関、25…燃焼室、39…インジェクタ、43…スロットル弁、52…エキゾーストパイプ、53…三元触媒(第1触媒)、66…上流側空燃比センサ、67…下流側空燃比センサ、68…アクセル開度センサ、70…電気制御装置、71…CPU、73…RAM、81…アクセルペダル。

Claims (3)

  1. 排気通路に排気浄化用触媒を配設した内燃機関に適用され、
    前記排気浄化用触媒の上流の前記排気通路に配設され同排気通路を実際に流れるガスの空燃比に応じた出力値を出力する上流側空燃比センサと、
    前記排気浄化用触媒の下流の前記排気通路に配設され同排気通路を実際に流れるガスの空燃比に応じた出力値を出力する下流側空燃比センサと、
    前記上流側空燃比センサの出力値と前記下流側空燃比センサの出力値とに基づいて上流側フィードバック補正量を算出し、同算出された上流側フィードバック補正量に基づいて前記内燃機関に供給される混合ガスの空燃比を制御する空燃比フィードバック制御手段と、
    を備えた内燃機関の空燃比制御装置において、
    前記空燃比フィードバック制御手段は、
    所定の下流側フィードバック実行条件が成立している下流側フィードバック条件成立期間において、前記下流側空燃比センサの出力値と所定の下流側目標値との差である出力偏差を時間積分した第1の時間積分値を現時点にて求められている同第1の時間積分値と現時点の同出力偏差とに基づいて更新するとともに同更新された第1の時間積分値に基づいて下流側フィードバック補正量を算出する下流側フィードバック補正量算出手段と、
    前記下流側フィードバック実行条件に更に条件が付加された所定の学習実行条件が成立している学習条件成立期間において前記出力偏差を時間積分した第2の時間積分値を現時点にて求められている同第2の時間積分値と現時点の同出力偏差とに基づいて更新するとともに同更新された第2の時間積分値に基づいて下流側フィードバック学習補正量を算出し、且つ、同学習実行条件が成立していない学習条件不成立期間において同下流側フィードバック学習補正量を一定に維持する下流側フィードバック学習補正量算出手段と、
    前記学習実行条件が第1時点において成立しなくなりその後の第2時点において成立した場合、同第2時点における前記第2の時間積分値を同第1時点から同第2時点までの前記出力偏差とは無関係な所定の値に設定する時間積分値設定手段と、
    前記下流側フィードバック条件成立期間において前記下流側フィードバック補正量と前記下流側フィードバック学習補正量と前記上流側空燃比センサの出力値とに基づいて前記上流側フィードバック補正量を算出し、且つ、前記下流側フィードバック実行条件が成立していない下流側フィードバック条件不成立期間において前記下流側フィードバック補正量に基づくことなく前記下流側フィードバック学習補正量と前記上流側空燃比センサの出力値とに基づいて前記上流側フィードバック補正量を算出する上流側フィードバック補正量算出手段と、
    を備えた内燃機関の空燃比制御装置。
  2. 排気通路に排気浄化用触媒を配設した内燃機関に適用され、
    前記排気浄化用触媒の上流の前記排気通路に配設され同排気通路を実際に流れるガスの空燃比に応じた出力値を出力する上流側空燃比センサと、
    前記排気浄化用触媒の下流の前記排気通路に配設され同排気通路を実際に流れるガスの空燃比に応じた出力値を出力する下流側空燃比センサと、
    前記上流側空燃比センサの出力値と前記下流側空燃比センサの出力値とに基づいて上流側フィードバック補正量を算出し、同算出された上流側フィードバック補正量に基づいて前記内燃機関に供給される混合ガスの空燃比を制御する空燃比フィードバック制御手段と、
    を備えた内燃機関の空燃比制御装置において、
    前記空燃比フィードバック制御手段は、
    前記下流側空燃比センサの出力値と所定の下流側目標値との差である出力偏差を時間積分した時間積分値を現時点にて求められている同時間積分値と現時点の同出力偏差とに基づいて更新する時間積分値更新手段と、
    所定の下流側フィードバック実行条件が成立している下流側フィードバック条件成立期間において前記時間積分値に基づいて下流側フィードバック補正量を算出する下流側フィードバック補正量算出手段と、
    前記下流側フィードバック実行条件に更に条件が付加された所定の学習実行条件が成立している学習条件成立期間において前記時間積分値に基づいて下流側フィードバック学習補正量を算出し、且つ、同学習実行条件が成立していない学習条件不成立期間において同下流側フィードバック学習補正量を一定に維持する下流側フィードバック学習補正量算出手段と、
    前記学習実行条件が第1時点において成立しなくなりその後の第2時点において成立した場合に同第2時点における前記時間積分値を同第1時点から同第2時点までの前記出力偏差とは無関係な所定の値に設定する時間積分値設定手段と、
    前記下流側フィードバック条件成立期間において前記下流側フィードバック補正量と前記下流側フィードバック学習補正量と前記上流側空燃比センサの出力値とに基づいて前記上流側フィードバック補正量を算出し、且つ、前記下流側フィードバック実行条件が成立していない下流側フィードバック条件不成立期間において前記下流側フィードバック補正量に基づくことなく前記下流側フィードバック学習補正量と前記上流側空燃比センサの出力値とに基づいて前記上流側フィードバック補正量を算出する上流側フィードバック補正量算出手段と、
    を備えた内燃機関の空燃比制御装置。
  3. 排気通路に排気浄化用触媒を配設した内燃機関に適用され、
    前記内燃機関に供給される燃料を噴射する燃料噴射手段と、
    前記排気浄化用触媒の上流の前記排気通路に配設され同排気通路を実際に流れるガスの空燃比に応じた出力値を出力する上流側空燃比センサと、
    前記排気浄化用触媒の下流の前記排気通路に配設され同排気通路を実際に流れるガスの空燃比に応じた出力値を出力する下流側空燃比センサと、
    を備え、前記燃料噴射手段により噴射される燃料の量である燃料噴射量を制御する内燃機関の燃料噴射量制御装置であって、
    所定の燃料カット実行条件が成立している期間である燃料カット条件成立期間中、前記燃料噴射手段による燃料の噴射を停止させる燃料カット手段と、
    前記燃料カット条件成立期間が終了してから所定の燃料増量時間が経過するまでの燃料増量期間中、前記内燃機関に供給される混合ガスの空燃比が理論空燃比よりもリッチ側の所定の燃料増量用空燃比となるように前記燃料噴射量を制御する燃料増量手段と、
    前記燃料カット条件成立期間及び前記燃料増量期間を含まない期間のうちの所定の下流側フィードバック実行条件が成立している期間である下流側フィードバック条件成立期間中、前記下流側空燃比センサの出力値と理論空燃比に対応する所定の下流側目標値との差である出力偏差に基づいて下流側フィードバック補正量を算出する下流側フィードバック補正量算出手段と、
    前記下流側フィードバック条件成立期間のうちの前記燃料増量期間が終了してから所定の過渡時間が経過するまでの過渡期間を含まない期間である学習条件成立期間中、前記出力偏差に基づいて下流側フィードバック学習補正量を算出し、且つ、同学習条件成立期間以外の学習条件不成立期間中、同下流側フィードバック学習補正量を一定に維持する下流側フィードバック学習補正量算出手段と、
    前記下流側フィードバック条件成立期間中、前記下流側フィードバック補正量と前記下流側フィードバック学習補正量と前記上流側空燃比センサの出力値とに基づいて上流側フィードバック補正量を算出し同算出された上流側フィードバック補正量に基づいて前記燃料噴射量を制御し、且つ、前記下流側フィードバック実行条件が成立していない下流側フィードバック条件不成立期間内の期間であって少なくとも前記燃料カット条件成立期間を含まない期間中、前記下流側フィードバック学習補正量と前記上流側空燃比センサの出力値とに基づいて上流側フィードバック補正量を算出し同算出された上流側フィードバック補正量に基づいて前記燃料噴射量を制御する燃料噴射量フィードバック制御手段と、
    を備える内燃機関の燃料噴射量制御装置。
JP2006207014A 2006-07-28 2006-07-28 内燃機関の空燃比制御装置及び内燃機関の燃料噴射量制御装置 Pending JP2008031929A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006207014A JP2008031929A (ja) 2006-07-28 2006-07-28 内燃機関の空燃比制御装置及び内燃機関の燃料噴射量制御装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006207014A JP2008031929A (ja) 2006-07-28 2006-07-28 内燃機関の空燃比制御装置及び内燃機関の燃料噴射量制御装置

Publications (1)

Publication Number Publication Date
JP2008031929A true JP2008031929A (ja) 2008-02-14

Family

ID=39121632

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006207014A Pending JP2008031929A (ja) 2006-07-28 2006-07-28 内燃機関の空燃比制御装置及び内燃機関の燃料噴射量制御装置

Country Status (1)

Country Link
JP (1) JP2008031929A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012097671A (ja) * 2010-11-02 2012-05-24 Toyota Motor Corp 内燃機関の燃料噴射量制御装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012097671A (ja) * 2010-11-02 2012-05-24 Toyota Motor Corp 内燃機関の燃料噴射量制御装置

Similar Documents

Publication Publication Date Title
US7484504B2 (en) Air-fuel ratio control system and method for internal combustion engine
JP4957559B2 (ja) 内燃機関の空燃比制御装置
US7654252B2 (en) Air-fuel ratio control system and method for internal combustion engine
JP2004044454A (ja) 内燃機関の燃料噴射量制御装置
JP2010169038A (ja) 多気筒内燃機関の気筒間空燃比ばらつき判定装置
CN100513760C (zh) 内燃机空燃比控制设备
JP2009002251A (ja) 内燃機関の空燃比制御装置
JP2007162565A (ja) 内燃機関の空燃比制御装置
JP4553144B2 (ja) 内燃機関の燃料噴射制御装置
JP2007100575A (ja) 内燃機関の制御装置
JP4893634B2 (ja) 内燃機関の空燃比制御装置
US8949000B2 (en) Control device and control method for internal combustion engine
JP2007231750A (ja) 内燃機関の空燃比制御装置
JP4280931B2 (ja) 内燃機関の空燃比制御装置
JP4710716B2 (ja) 内燃機関の空燃比制御装置
JP4807359B2 (ja) 内燃機関の空燃比制御装置
JP4548373B2 (ja) 内燃機関の空燃比制御装置
JP2008031929A (ja) 内燃機関の空燃比制御装置及び内燃機関の燃料噴射量制御装置
JP2010071259A (ja) 内燃機関の空燃比制御装置
JP2005207286A (ja) 触媒劣化判定装置
JP4168859B2 (ja) 内燃機関の空燃比制御装置
JP5067191B2 (ja) 内燃機関の燃料噴射量制御装置
JP2017115802A (ja) 内燃機関の空燃比制御装置
JP4888397B2 (ja) 内燃機関の空燃比制御装置
JP4068047B2 (ja) 内燃機関の制御装置