(57)【特許請求の範囲】
【請求項１】
内燃機関の排気通路に配設されて同排気通路内のガスの空燃比に応じた値を出力する空燃比センサと、
指令燃料噴射量の燃料の噴射指示に応じて燃料を噴射する燃料噴射手段と、
を備えた内燃機関に適用される内燃機関の空燃比制御装置であって、
吸気行程にて前記内燃機関の燃焼室に吸入された空気の量を基準空燃比で除した値である基本燃料噴射量を取得する基本燃料噴射量取得手段と、
前記内燃機関の運転状態に応じて変化する目標空燃比を同運転状態に基づいて取得する目標空燃比取得手段と、
前記目標空燃比の前記基準空燃比からの偏移に応じた、前記基本燃料噴射量を補正するためのフィードフォワード補正量を取得するフィードフォワード補正量取得手段と、
前記空燃比センサの出力値に基づいて前記基本燃料噴射量を補正するためのフィードバック補正量を取得するフィードバック補正量取得手段と、
前記フィードバック補正量がフィードバックガード値を超えた場合に同フィードバック補正量を同フィードバックガード値に制限するガード処理を行うガード処理実行手段と、
前記基本燃料噴射量を、前記フィードフォワード補正量と、前記ガード処理されたフィードバック補正量と、に基づいて補正することで前記指令燃料噴射量を算出する指令燃料噴射量算出手段と、
前記指令燃料噴射量の燃料の噴射指示を前記燃料噴射手段に対して行うことで前記燃焼室に供給される混合気の空燃比を前記目標空燃比に一致するように制御する空燃比制御手段と、
を備えた内燃機関の空燃比制御装置において、
前記ガード処理実行手段は、
前記基本燃料噴射量に対する補正量が超えるべきでない値であるトータルガード値と、前記フィードフォワード補正量とに基づいて前記フィードバックガード値を決定するように構成された内燃機関の空燃比制御装置。
【請求項２】
請求項１に記載の内燃機関の空燃比制御装置において、
前記空燃比センサは、前記排気通路に配設された触媒よりも上流の前記排気通路に配設された限界電流式の酸素濃度センサであって、
前記ガード処理実行手段は、
前記トータルガード値を前記目標空燃比に応じて変更するように構成された内燃機関の空燃比制御装置。
【請求項３】
請求項２に記載の内燃機関の空燃比制御装置において、
前記ガード処理実行手段は、
前記目標空燃比が前記基準空燃比から離れるほど前記トータルガード値をより小さい値に設定するように構成された内燃機関の空燃比制御装置。
【請求項４】
請求項１に記載の内燃機関の空燃比制御装置において、
前記空燃比センサは、前記排気通路に配設された触媒よりも上流の前記排気通路に配設された限界電流式の酸素濃度センサであって、
前記ガード処理実行手段は、
前記空燃比センサの劣化状態を取得する劣化度取得手段を備え、
前記トータルガード値を前記空燃比センサの劣化状態に応じて変更するように構成された内燃機関の空燃比制御装置。
【請求項５】
請求項４に記載の内燃機関の空燃比制御装置において、
前記ガード処理実行手段は、
前記空燃比センサの劣化度が大きいほど前記トータルガード値をより小さい値に設定するように構成された内燃機関の空燃比制御装置。
【請求項６】
請求項１に記載の内燃機関の空燃比制御装置において、
前記空燃比センサは、前記排気通路に配設された触媒よりも上流の前記排気通路に配設された限界電流式の酸素濃度センサであって、
前記ガード処理実行手段は、
前記空燃比センサの劣化状態を取得する劣化度取得手段を備え、
前記トータルガード値を、前記目標空燃比及び前記空燃比センサの劣化状態に応じて変更するように構成された内燃機関の空燃比制御装置。
【請求項７】
請求項１に記載の内燃機関の空燃比制御装置において、
前記ガード処理実行手段は、
前記目標空燃比に応じて前記フィードバックガード値を更に変更するように構成された内燃機関の空燃比制御装置。
【請求項８】
請求項１に記載の内燃機関の空燃比制御装置において、
前記ガード処理実行手段は、
前記空燃比センサの劣化状態を取得する劣化度取得手段を備え、
前記空燃比センサの劣化状態に応じて前記フィードバックガード値を更に変更するように構成された内燃機関の空燃比制御装置。
【請求項９】
請求項１に記載の内燃機関の空燃比制御装置において、
前記ガード処理実行手段は、
前記空燃比センサの劣化状態を取得する劣化度取得手段を備え、
前記目標空燃比及び前記空燃比センサの劣化状態に応じて前記フィードバックガード値を更に変更するように構成された内燃機関の空燃比制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、排気通路に配設された空燃比センサを備えた内燃機関に適用され、空燃比センサの出力値に基づいて内燃機関の燃焼室に供給される混合気の空燃比（以下、「空燃比」と称呼する。）を制御する内燃機関の空燃比制御装置に関する。
【背景技術】
【０００２】
従来より、この種の空燃比制御装置として、例えば特許文献１に開示されたものが知られている。この内燃機関（以下、単に「機関」と称呼することもある。）の空燃比制御装置では、排気通路に配設された触媒の上下流に上流側空燃比センサ及び下流側空燃比センサがそれぞれ配設されていて、以下のように空燃比制御が実行される。
【０００３】
機関の運転状態（エアフローメータの出力値、運転速度等）に基づいて、吸気行程にて燃焼室に吸入された空気の量（筒内吸入空気量）を基準空燃比（＝理論空燃比）で除した値（基本燃料噴射量）がテーブル検索により決定される。下流側空燃比センサの出力値とこの出力値の目標値（目標空燃比（＝理論空燃比）に相当する値）との偏差を比例・積分・微分処理（ＰＩＤ処理）して下流側フィードバック補正量が算出される。この下流側フィードバック補正量で上流側空燃比センサの出力値を補正した値とこの出力値の目標値（目標空燃比に相当する値）との偏差（に相当する偏差）を比例・積分処理（ＰＩ処理）して上流側フィードバック補正量が算出される。基本燃料噴射量に上流側フィードバック補正量を加えることで（即ち、基本燃料噴射量をフィードバック補正することで）指令燃料噴射量が算出される。そして、指令燃料噴射量の燃料の噴射指示がインジェクタに対して行われることで、空燃比が目標空燃比（＝理論空燃比）と一致するようにフィードバック制御されるようになっている。
【０００４】
一般に、上記テーブル検索で決定される基本燃料噴射量と空燃比を目標空燃比とするために必要な真の燃料量との差（テーブルの誤差）、基本燃料噴射量を取得するために使用されるエアフローメータにより計測される吸入空気流量と実際の空気流量との差（エアフローメータのばらつき）、インジェクタに噴射指示される指令燃料噴射量と実際に噴射された燃料の量との差（インジェクタのばらつき）等（以下、これらを「基本燃料噴射量の誤差」と総称する。）が不可避的に発生する。
【０００５】
上記上流側・下流側フィードバック補正量（以下、単に「フィードバック補正量」とも称呼する。）には、積分項（Ｉ項）の値、即ち、上記偏差を逐次積算して更新されていく偏差積分値にフィードバックゲインを乗じた値が含まれている。これにより、上記「基本燃料噴射量の誤差」が発生していても、上述したフィードバック制御の実行により、「基本燃料噴射量の誤差」が偏差積分値（従って、積分項の値）により補償され得、この結果、空燃比を目標空燃比に一致・収束させることができる。
【０００６】
上述したフィードバック制御実行中において空燃比制御系に異常が発生した場合（例えば、エアフローメータ、インジェクタ、空燃比センサ等に異常が発生した場合）、上記偏差が大きい値に維持され続ける。この結果、上記偏差積分値（従って、積分項の値）が次第に増大していくことでフィードバック補正値が次第に増大し得る。フィードバック補正値が過度に大きくなると、基本燃料噴射量に対する補正量が大きくなって、指令燃料噴射量に対応する空燃比が可燃領域から逸脱する等の問題が生じ得る。
【０００７】
以上より、基本燃料噴射量に対する補正量が超えるべきでない値（フィードバックガード値）を設定し、フィードバック補正量（或いは、偏差積分値）がフィードバックガード値を超えた場合に同フィードバック補正量（或いは、偏差積分値）を同フィードバックガード値に制限するガード処理を行うことが好ましい。
【０００８】
例えば、特許文献２では、下流側フィードバック補正量にガード処理が行われている例が示されている。また、特許文献３では、上流側フィードバック補正量に含まれる積分項の偏差積分値にガード処理が行われている例が示されている。
【特許文献１】特開平７−１９７８３７号公報
【特許文献２】特開２００５−３６７４２号公報
【特許文献３】特開２００４−６０６１３号公報
【発明の開示】
【０００９】
ところで、機関の運転状態に応じて目標空燃比を基準空燃比（理論空燃比）と異なる空燃比に設定する技術が知られている。このように機関の運転状態に応じて目標空燃比が変更される場合、目標空燃比の基準空燃比からの偏移に応じてフィードフォワード補正量が取得され、基本燃料噴射量をフィードバック補正量とフィードフォワード補正量とで補正して指令燃料噴射量が算出される場合が多い。換言すれば、上記「フィードバック補正量による基本燃料噴射量のフィードバック補正」（以下、単に「フィードバック補正」とも称呼する。）に加えて、「フィードフォワード補正量による基本燃料噴射量のフィードフォワード補正」（以下、単に「フィードフォワード補正」とも称呼する。）がなされる場合が多い。
【００１０】
このように、「フィードバック補正」に加えて「フィードフォワード補正」がなされる場合において、上記フィードバックガード値として、上述した「フィードバック補正」のみがなされる場合と同様に「基本燃料噴射量に対する補正量が超えるべきでない値」が使用される場合を考える。この場合、フィードバック補正量とフィードフォワード補正量とに基づく基本燃料噴射量に対する全補正量が、「基本燃料噴射量に対する補正量が超えるべきでない値」よりも、最大でフィードフォワード補正量の分だけ大きくなり得る。即ち、フィードバック補正量にガード処理を行ってもなお、空燃比が可燃領域から逸脱する等の問題が生じ得る。
【００１１】
従って、本発明の目的は、基本燃料噴射量に対して「フィードバック補正」に加えて「フィードフォワード補正」がなされる場合において、フィードバック補正量のガード値を適切な値に設定できる内燃機関の空燃比制御装置を提供することにある。
【００１２】
本発明に係る空燃比制御装置は、空燃比センサ（上流側空燃比センサ、及び／又は下流側空燃比センサ）と、燃料噴射手段（インジェクタ）とを備えた内燃機関に適用される。
【００１３】
本発明に係る空燃比制御装置では、基本燃料噴射量取得手段により、内燃機関の運転状態に基づいて、筒内吸入空気量を基準空燃比（例えば、理論空燃比）で除した値（基本燃料噴射量）が取得される。
【００１４】
目標空燃比取得手段により、内燃機関の運転状態（アクセル操作量、運転速度等）に応じて変化する目標空燃比が同運転状態に基づいて取得される。
【００１５】
フィードフォワード補正量取得手段により、前記目標空燃比の前記基準空燃比からの偏移に応じた、前記基本燃料噴射量を補正するためのフィードフォワード補正量が取得される。このフィードフォワード補正量は、基本燃料噴射量に加算（減算）される値であっても、基本燃料噴射量に乗算される値であってもよい。
【００１６】
フィードバック補正量取得手段により、前記空燃比センサの出力値に基づいて前記基本燃料噴射量を補正するためのフィードバック補正量が取得される。ここにおいて、前記フィードバック補正量は、例えば、前記空燃比センサの出力値に基づく値と前記目標空燃比に相当する値との偏差に相当する値を逐次積算して更新されていく偏差積分値そのものであってもよいし、前記「偏差に相当する値」をＰＩＤ処理等して得られる値であってもよい。前記「空燃比センサの出力値に基づく値」は、例えば、上流側空燃比センサの出力値そのもの、下流側空燃比センサの出力値そのもの、上流側空燃比センサの出力値を下流側空燃比センサの出力値に基づいて補正した値等である。また、前記「偏差に相当する値」は、例えば、空燃比センサの出力値と目標空燃比相当出力値との偏差、空燃比センサによる検出空燃比と目標空燃比との偏差等である。このフィードバック補正量も、基本燃料噴射量に加算（減算）される値であっても、基本燃料噴射量に乗算される値であってもよい。
【００１７】
ガード処理実行手段により、前記フィードバック補正量がフィードバックガード値を超えた場合に同フィードバック補正量を同フィードバックガード値に制限するガード処理が行われる。
【００１８】
指令燃料噴射量算出手段により、前記基本燃料噴射量を、前記フィードフォワード補正量と、前記ガード処理されたフィードバック補正量と、に基づいて補正することで指令燃料噴射量が算出される。そして、空燃比制御手段により、前記指令燃料噴射量の燃料の噴射指示を前記燃料噴射手段に対して行うことで空燃比が前記目標空燃比に一致するようにフィードバック制御される。このように、本発明に係る空燃比制御装置では、「フィードバック補正」に加えて「フィードフォワード補正」がなされる。
【００１９】
本発明に係る空燃比制御装置の特徴は、前記ガード処理実行手段が、前記フィードフォワード補正量に応じて前記フィードバックガード値を変更するように構成されたことにある。
【００２０】
これによれば、フィードフォワード補正量が考慮されて（更には、フィードバック補正量とフィードフォワード補正量とに基づく基本燃料噴射量に対する全補正量が考慮されて）フィードバックガード値が決定され得る。従って、フィードフォワード補正量の値にかかわらず、空燃比が可燃領域から逸脱する等の問題が発生することが防止され得る。
【００２１】
より具体的には、前記ガード処理実行手段は、前記基本燃料噴射量に対する補正量が超えるべきでない値であるトータルガード値と、前記フィードフォワード補正量とに基づいて前記フィードバックガード値を決定するように構成されることが好適である。
【００２２】
これによると、例えば、フィードバックガード値が、フィードバック補正量とフィードフォワード補正量とに基づく基本燃料噴射量に対する全補正量がトータルガード値（＝上記「基本燃料噴射量に対する補正量が超えるべきでない値」）に一致する場合に対応するフィードバック補正量と等しい値（或いは、それ未満の値）に決定され得る。従って、フィードバックガード値をできるだけ大きい値に設定しつつ（即ち、上限ガード値と下限ガード値の差（ガード幅）をできるだけ大きく確保しつつ）空燃比が可燃領域から逸脱する等の問題が発生することをより一層確実に防止することができる。
【００２３】
上記空燃比センサが、触媒よりも上流の排気通路に配設された限界電流式の酸素濃度センサである場合、前記ガード処理実行手段は、前記トータルガード値を前記目標空燃比に応じて変更するように構成されることが好適である。より好適には、前記目標空燃比が前記基準空燃比（理論空燃比）から離れるほど前記トータルガード値がより小さい値に設定される。
【００２４】
一般に、限界電流式の酸素濃度センサにより検出される空燃比（検出空燃比）は、理論空燃比から離れるほど誤差が大きくなる特性を有する。従って、目標空燃比が理論空燃比から離れるほど、目標空燃比に一致するように制御される実際の空燃比が検出空燃比に対して理論空燃比から離れる方向にずれる程度が大きくなり易くなる（詳細は、後述する）。
【００２５】
このことは、目標空燃比が理論空燃比から離れるほど、空燃比が可燃領域から逸脱する等の問題がより発生し易くなることを意味する。他方、トータルガード値を小さくするほど、空燃比が可燃領域から逸脱する等の問題が発生し難くなる。上記構成は係る知見に基づくものである。これによれば、目標空燃比にかかわらず安定して、空燃比が可燃領域から逸脱する等の問題が発生することが防止され得る。
【００２６】
なお、目標空燃比が基準空燃比（理論空燃比）から離れるほどトータルガード値がより小さい値に設定されることは、目標空燃比が基準空燃比（理論空燃比）から離れるほどフィードバックガード値がより小さい値に設定される（上記ガード幅がより小さい値に設定される）ことを意味する。
【００２７】
また、上記空燃比センサが、触媒よりも上流の排気通路に配設された限界電流式の酸素濃度センサである場合、前記ガード処理実行手段は、前記空燃比センサの劣化状態を取得する劣化度取得手段を備え、前記トータルガード値を前記空燃比センサの劣化状態に応じて変更するように構成されることも好適である。より好適には、前記空燃比センサの劣化度が大きいほど前記トータルガード値がより小さい値に設定される。
【００２８】
一般に、限界電流式の酸素濃度センサにより得られる検出空燃比は、同酸素濃度センサの劣化度が大きいほど、実際の空燃比が検出空燃比に対して理論空燃比から離れる方向にずれる程度が大きくなる特性を有する（詳細は、後述する）。このことは、酸素濃度センサの劣化度が大きいほど、空燃比が可燃領域から逸脱する等の問題がより発生し易くなることを意味する。上記構成は係る観点に基づくものである。これによると、空燃比センサの劣化度にかかわらず安定して、空燃比が可燃領域から逸脱する等の問題が発生することが防止され得る。
【００２９】
なお、空燃比センサの劣化度が大きいほどトータルガード値がより小さい値に設定されることは、空燃比センサの劣化度が大きいほどフィードバックガード値がより小さい値に設定される（上記ガード幅がより小さい値に設定される）ことを意味する。
【発明を実施するための最良の形態】
【００３０】
以下、本発明による内燃機関の空燃比制御装置の各実施形態について図面を参照しつつ説明する。
【００３１】
（第１実施形態）
図１は、第１実施形態による空燃比制御装置を火花点火式多気筒（４気筒）内燃機関１０に適用したシステムの概略構成を示している。この内燃機関１０は、シリンダブロック、シリンダブロックロワーケース、及びオイルパン等を含むシリンダブロック部２０と、シリンダブロック部２０の上に固定されるシリンダヘッド部３０と、シリンダブロック部２０にガソリン混合気を供給するための吸気系統４０と、シリンダブロック部２０からの排気ガスを外部に放出するための排気系統５０とを含んでいる。
【００３２】
シリンダブロック部２０は、シリンダ２１、ピストン２２、コンロッド２３、及びクランク軸２４を含んでいる。ピストン２２はシリンダ２１内を往復動し、ピストン２２の往復動がコンロッド２３を介してクランク軸２４に伝達され、これによりクランク軸２４が回転するようになっている。シリンダ２１とピストン２２のヘッドは、シリンダヘッド部３０とともに燃焼室２５を形成している。
【００３３】
シリンダヘッド部３０は、燃焼室２５に連通した吸気ポート３１、吸気ポート３１を開閉する吸気弁３２、吸気弁３２を駆動するインテークカムシャフトを含むとともにインテークカムシャフトの位相角を連続的に変更する可変吸気タイミング装置３３、可変吸気タイミング装置３３のアクチュエータ３３ａ、燃焼室２５に連通した排気ポート３４、排気ポート３４を開閉する排気弁３５、排気弁３５を駆動するエキゾーストカムシャフト３６、点火プラグ３７、点火プラグ３７に与える高電圧を発生するイグニッションコイルを含むイグナイタ３８、及び燃料を吸気ポート３１内に噴射するインジェクタ（燃料噴射手段）３９を備えている。
【００３４】
吸気系統４０は、吸気ポート３１に連通し吸気ポート３１とともに吸気通路を形成するインテークマニホールドを含む吸気管４１、吸気管４１の端部に設けられたエアフィルタ４２、吸気管４１内にあって吸気通路の開口断面積を可変とするスロットル弁４３、及びスロットル弁駆動手段を構成するＤＣモータからなるスロットル弁アクチュエータ４３ａを備えている。
【００３５】
排気系統５０は、排気ポート３４に連通したエキゾーストマニホールド５１、エキゾーストマニホールド５１（実際には、各排気ポート３４に連通した各々のエキゾーストマニホールド５１が集合した集合部）に接続されたエキゾーストパイプ（排気管）５２、エキゾーストパイプ５２に配設（介装）された上流側の三元触媒５３（上流側触媒コンバータ、以下、「第１触媒５３」と称呼する。）、及びこの第１触媒５３の下流のエキゾーストパイプ５２に配設（介装）された下流側の三元触媒５４（以下、「第２触媒５４」と称呼する。）を備えている。排気ポート３４、エキゾーストマニホールド５１、及びエキゾーストパイプ５２は、排気通路を構成している。
【００３６】
一方、このシステムは、熱線式エアフローメータ６１、スロットルポジションセンサ６２、カムポジションセンサ６３、クランクポジションセンサ６４、水温センサ６５、第１触媒５３の上流の排気通路（本例では、上記各々のエキゾーストマニホールド５１が集合した集合部）に配設された空燃比センサ６６（以下、「上流側空燃比センサ６６」と称呼する。）、第１触媒５３の下流であって第２触媒５４の上流の排気通路に配設された空燃比センサ６７（以下、「下流側空燃比センサ６７」と称呼する。）、及びアクセル開度センサ６８を備えている。
【００３７】
熱線式エアフローメータ６１は、吸気管４１内を流れる吸入空気の単位時間あたりの質量流量を検出し、質量流量Gaを表す信号を出力するようになっている。スロットルポジションセンサ６２は、スロットル弁４３の開度を検出し、スロットル弁開度TAを表す信号を出力するようになっている。カムポジションセンサ６３は、インテークカムシャフトが９０°回転する毎に（即ち、クランク軸２４が１８０°回転する毎に）一つのパルスを有する信号（Ｇ２信号）を発生するようになっている。クランクポジションセンサ６４は、クランク軸２４が１０°回転する毎に幅狭のパルスを有するとともにクランク軸２４が３６０°回転する毎に幅広のパルスを有する信号を出力するようになっている。この信号は、運転速度NEを表す。水温センサ６５は、内燃機関１０の冷却水の温度を検出し、冷却水温THWを表す信号を出力するようになっている。
【００３８】
上流側空燃比センサ６６は、限界電流式の酸素濃度センサであり、図２に実線にて示したように、空燃比Ａ／Ｆに応じて出力される電流に応じた電圧である出力値Vabyfsを出力するようになっている。特に、空燃比が理論空燃比（基準空燃比）であるときには出力値Vabyfsは上流側目標値Vstoichになる。図２から明らかなように、上流側空燃比センサ６６によれば、広範囲にわたる空燃比Ａ／Ｆを精度良く検出することができる。
【００３９】
下流側空燃比センサ６７は、起電力式（濃淡電池式）の酸素濃度センサであり、図３に示したように、理論空燃比近傍において急変する電圧である出力値Voxsを出力するようになっている。より具体的に述べると、下流側空燃比センサ６７は、空燃比が理論空燃比よりもリーンのときは略０．１（Ｖ）、空燃比が理論空燃比よりもリッチのときは略０．９（Ｖ）、及び空燃比が理論空燃比のときは０．５（Ｖ）の電圧を出力するようになっている。アクセル開度センサ６８は、運転者によって操作されるアクセルペダル８１の操作量を検出し、アクセルペダル８１の操作量Accpを表す信号を出力するようになっている。
【００４０】
電気制御装置７０は、互いにバスで接続されたＣＰＵ７１、ＣＰＵ７１が実行するルーチン（プログラム）、テーブル（ルックアップテーブル、マップ）、及び定数等を予め記憶したＲＯＭ７２、ＣＰＵ７１が必要に応じてデータを一時的に格納するＲＡＭ７３、電源が投入された状態でデータを格納するとともに格納したデータを電源が遮断されている間も保持するバックアップＲＡＭ７４、並びにＡＤコンバータを含むインターフェース７５等からなるマイクロコンピュータである。インターフェース７５は、前記センサ６１〜６８と接続され、ＣＰＵ７１にセンサ６１〜６８からの信号を供給するとともに、ＣＰＵ７１の指示に応じて可変吸気タイミング装置３３のアクチュエータ３３ａ、イグナイタ３８、インジェクタ３９、及びスロットル弁アクチュエータ４３ａに駆動信号を送出するようになっている。
【００４１】
（空燃比制御の概要）
次に、上記のように構成された空燃比制御装置（以下、「本装置」と云う。）が行う空燃比制御の概要について説明する。
【００４２】
本装置は、下流側空燃比センサ６７の出力値が理論空燃比（基準空燃比）に対応する下流側目標値Voxsref（原則的には、０．５（Ｖ）、図３を参照）となるように、上流側空燃比センサ６６の出力値Vabyfs（即ち、第１触媒５３上流の空燃比）、及び下流側空燃比センサ６７の出力値Voxs（即ち、第１触媒５３下流の空燃比）に応じて空燃比を制御する。
【００４３】
より具体的に述べると、本装置は、機能ブロック図である図４に示したように、Ａ１〜Ａ１５の各機能ブロックを含んで構成されている。以下、図４を参照しながら各機能ブロックについて説明していく。なお、以下、「フィードバック」を「ＦＢ」と称呼し、「フィードフォワード」を「ＦＦ」と称呼することもある。
【００４４】
筒内吸入空気量算出手段Ａ１は、エアフローメータ６１が計測している吸入空気流量Gaと、クランクポジションセンサ６４の出力に基づいて得られる運転速度NEと、ＲＯＭ７２が記憶しているテーブルMapMcとに基づき、吸気行程を迎える気筒の今回の吸入空気量である筒内吸入空気量Mc(k)を求める。ここで、添え字の（k）は、今回の吸気行程に対する値であることを示している（以下、他の物理量についても同様。）。筒内吸入空気量Mcは、各気筒の吸気行程に対応されながらＲＡＭ７３に記憶されていく。
【００４５】
<上流側目標空燃比の設定>
上流側目標空燃比設定手段Ａ２は、内燃機関１０の運転状態である運転速度NE、及びアクセルペダル操作量Accp等に基づいて上流側目標空燃比abyfr(k)（前記「目標空燃比」）を決定する。この上流側目標空燃比abyfr(k)は、原則的には理論空燃比に設定される一方、運転速度NE、及びアクセルペダル操作量Accp等によっては理論空燃比以外の空燃比にも設定される。上流側目標空燃比abyfrは、各気筒の吸気行程に対応されながらＲＡＭ７３に記憶されていく。この上流側目標空燃比設定手段Ａ２は、前記「目標空燃比取得手段」に相当する。
【００４６】
<基本燃料噴射量の決定>
基本燃料噴射量決定手段Ａ３は、上記筒内吸入空気量Mc(k)を理論空燃比stoichで除することにより基本燃料噴射量Fbaseを求める。この基本燃料噴射量決定手段Ａ３は、前記「基本燃料噴射量取得手段」に相当する。
【００４７】
<ＦＦ補正量の算出>
ＦＦ補正量算出手段Ａ４は、下記(1)式に従って、上流側目標空燃比abyfr(k)の理論空燃比stoichからの偏移に応じた、基本燃料噴射量Fbaseを補正するためのＦＦ補正量DFF（前記「フィードフォワード補正量」に相当）を求める。
【００４８】
DFF＝(Mc(k)・(stoich−abyfr(k)))/(stoich・abyfr(k))  ・・・(1)
【００４９】
このＦＦ補正量DFFは、空燃比を上流側目標空燃比abyfr(k)とするための燃料量（＝Mc(k)/abyfr(k)）から、空燃比を理論空燃比stoichとするための燃料量（＝Mc(k)/stoich）を減じた値に等しい。ＦＦ補正量DFFは、上流側目標空燃比abyfr(k)が理論空燃比よりもリッチのときに正の値（よりリッチであるほどより大きい値）となり、上流側目標空燃比abyfr(k)が理論空燃比よりもリーンのときに負の値（よりリーンであるほど絶対値がより大きい値）となる。このＦＦ補正量算出手段Ａ４は、前記「フィードフォワード補正量取得手段」に相当する。
【００５０】
<指令燃料噴射量の算出>
指令燃料噴射量算出手段Ａ５は、上記基本燃料噴射量Fbaseに、上記ＦＦ補正量DFFと、後述する（ガード処理された）ＦＢ補正量DFB（前記「フィードバック補正量」に相当）と、を加えることで、下記(2)式に基づいて指令燃料噴射量Fiを求める。この指令燃料噴射量算出手段Ａ５は、前記「指令燃料噴射量算出手段」に相当する。
【００５１】
Fi＝Fbase＋DFF＋DFB  ・・・(2)
【００５２】
このようにして、本装置は、基本燃料噴射量FbaseをＦＦ補正量DFFと（ガード処理された）ＦＢ補正量DFBとに基づいて補正することにより得られる指令燃料噴射量Fiの燃料の噴射指示を今回の吸気行程を迎える気筒についてのインジェクタ３９に対して行う。このように燃料の噴射指示を行う手段が前記「空燃比制御手段」に相当する。
【００５３】
<サブフィードバック補正量の取得>
下流側目標値設定手段Ａ６は、上述した上流側目標空燃比設定手段Ａ２と同様、内燃機関１０の運転状態である運転速度NE、及びアクセルペダル操作量Accp等に基づいて下流側目標値Voxsrefを決定する。この下流側目標値Voxsrefは、本例では、下流側目標値Voxsrefに対応する空燃比が上述した上流側目標空燃比abyfr(k)と常時一致するように設定される。
【００５４】
出力偏差量算出手段Ａ７は、下記(3)式に基づいて、現時点（具体的には、今回のFiの噴射指示開始時点）での下流側目標値Voxsrefから現時点での下流側空燃比センサ６７の出力値Voxsを減じることにより、出力偏差量DVoxsを求める。
【００５５】
DVoxs＝Voxsref−Voxs  ・・・(3)
【００５６】
ＰＩＤコントローラＡ８は、出力偏差量DVoxsを比例・積分・微分処理（ＰＩＤ処理）することで、下記(4)式に基づいてサブフィードバック補正量Vafsfbを求める。下記(4)式において、Kpは予め設定された比例ゲイン（一定値）、Kiは予め設定された積分ゲイン（一定値）、Kdは予め設定された微分ゲイン（一定値）である。
【００５７】
Vafsfb＝Kp・DVoxs＋Ki・SDVoxs＋Kd・DDVoxs  ・・・(4)
【００５８】
また、SDVoxsは出力偏差量DVoxsの時間積分値であり、DDVoxsは出力偏差量DVoxsの時間微分値である。ここで、ＰＩＤコントローラＡ８は積分項Ki・SDVoxsを含んでいるので、定常状態では出力偏差量DVoxsがゼロになることが保証される。換言すれば、下流側目標値Voxsrefと下流側空燃比センサ６７の出力値Voxsとの定常偏差がゼロになる。
【００５９】
このようにして、本装置は、下流側目標値Voxsrefと下流側空燃比センサ６７の出力値Voxsとの定常偏差がゼロになるように出力値Voxsに基づいて、サブフィードバック補正量Vafsfbを求める。このサブフィードバック補正量Vafsfbは、後述するように制御用空燃比abyfsの取得に用いられる。
【００６０】
<制御用空燃比の取得>
制御用空燃比相当出力値算出手段Ａ９は、現時点での上流側空燃比センサ６６の出力値Vabyfsに、下流側フィードバック補正量Vafsfbを加えることで、制御用空燃比相当出力値(Vabyfs+Vafsfb)を求める。
【００６１】
テーブル変換手段Ａ１０は、上記制御用空燃比相当出力値(Vabyfs+Vafsfb)と、先に説明した図２にグラフにより実線にて示した上流側空燃比センサの出力値Vabyfsと空燃比Ａ／Ｆとの関係を規定したテーブルMapabyfsとに基づいて、現時点での（今回の）制御用空燃比abyfs(k)を求める。これにより、制御用空燃比abyfs(k)は、上流側空燃比センサ６６の出力値Vabyfsから得られる空燃比（検出空燃比）に対してサブフィードバック補正量Vafsfbに相当する分だけ異なる空燃比となる。
【００６２】
<ＦＢ補正量の算出>
上流側目標空燃比遅延手段Ａ１１は、上流側目標空燃比設定手段Ａ２により吸気行程毎に求められＲＡＭ７３に記憶されている上流側目標空燃比abyfrのうち、現時点からＮストローク前の上流側目標空燃比abyfr(k-N)をＲＡＭ７３から読み出す。ここで、ストローク数Ｎは、「行程遅れに係る時間」と「輸送遅れに係る時間」と「応答遅れに係る時間」の和（以下、「無駄時間Ｌ」と称呼する。）に相当するストローク数である。
【００６３】
「行程遅れに係る時間」は、燃料の噴射指示から、この噴射指示により噴射された燃料の燃焼に基づく排ガスが排気弁３５を介して燃焼室２５から排気通路へ排出されるまでの時間である。「輸送遅れに係る時間」は、排ガスが排気弁３５を介して排気通路へ排出されてから上流側空燃比センサ６６（の検出部）に到達するまでの時間である。「応答遅れに係る時間」は、上流側空燃比センサ６６（の検出部）に到達した排ガスの空燃比が上流側空燃比センサ６６の出力値Vabyfsとして現れるまでの時間である。
【００６４】
空燃比偏差算出手段Ａ１２は、下記(5)式に基づいて、今回の制御用空燃比abyfs(k)から、現時点からＮストローク前の上流側目標空燃比abyfr(k-N)を減じることにより、空燃比偏差DAFを求める。ここで、上流側空燃比センサ６６の出力値Vabyfsが現時点から上記無駄時間Ｌだけ前の噴射指示により噴射された燃料の燃焼に基づく排ガスの空燃比を表すことを考慮すると、この空燃比偏差DAFは、現時点からＮストローク前の時点で筒内に供給された燃料の過不足分を表す量となる。
【００６５】
DAF＝abyfs(k)−abyfr(k-N)  ・・・(5)
【００６６】
ＰＩコントローラＡ１３は、上記空燃比偏差DAFを比例・積分処理（ＰＩ処理）することで、下記(6)式に基づいて、現時点からＮストローク前の燃料供給量の過不足を補償するためのＦＢ補正量DFB（ガード処理される前の値）を求める。
【００６７】
DFB＝(Gp・DAF+Gi・SDAF)・KFB  ・・・(6)
【００６８】
上記(6)式において、Gpは比例ゲイン（一定値）、Giは積分ゲイン（一定値）である。SDAFは空燃比偏差DAFの時間積分値である。係数KFBは、運転速度NE、及び筒内吸入空気量Mc等により可変とすることが好適であるが、本例では「１」としている。このＰＩコントローラＡ１３は、前記「フィードバック補正量取得手段」に相当する。
【００６９】
<ガード処理>
ガード処理実行手段Ａ１４は、上記(6)式にて求められたＦＢ補正量DFBが後述するように設定されるＦＢ下限ガード値Lgrdfb（＜０、フィードバックガード値）を下回った場合にＦＢ補正量DFBをＦＢ下限ガード値Lgrdfbに制限し、上記(6)式にて求められたＦＢ補正量DFBが後述するように設定されるＦＢ上限ガード値Ugrdfb（＞０、フィードバックガード値）を超えた場合にＦＢ補正量DFBをＦＢ上限ガード値Ugrdfbに制限する処理（以下、「ガード処理」と称呼する。）を行う。以下、ガード処理実行手段Ａ１４による、ＦＢ上限ガード値Ugrdfb、及びＦＢ下限ガード値Lgrdfbの設定方法について図５を参照しながら説明する。
【００７０】
ＦＢ上限ガード値Ugrdfb、及びＦＢ下限ガード値Lgrdfbを設定するため、本例では、図５に太い実線で示すように、トータル上限ガード値Ugrdtotal、及びトータル下限ガード値Lgrdtotalが設定される。トータル上限ガード値Ugrdtotalは可燃領域に対応する空燃比範囲のリーン側限界値（或いは、同限界値よりも所定量だけリッチな空燃比）に相当する値であり、トータル下限ガード値Lgrdtotalは可燃領域に対応する空燃比範囲のリッチ側限界値（或いは、同限界値よりも所定量だけリーンな空燃比）に相当する値である。即ち、トータル上限ガード値Ugrdtotal、及びトータル下限ガード値Lgrdtotalは、前記「基本燃料噴射量に対する補正量（本例では、ＦＦ補正量DFF＋ＦＢ補正量DFB）が超えるべきでない値」に相当する。換言すれば、「Lgrdtotal≦(DFF+DFB)≦Ugrdtotal」の関係がある。
【００７１】
トータル上限ガード値Ugrdtotal、及びトータル下限ガード値Lgrdtotalは、筒内吸入空気量Mc(k)と、上流側目標空燃比abyfr(k)と、劣化指標値αとに基づいて、Mc(k)，abyfr(k)，αを引数とする、テーブルMapUgrdtotal、及びテーブルMapLgardtotalを用いてそれぞれ決定される。ここで、劣化指標値αは、後述する劣化度取得手段Ａ１５により取得される上流側空燃比センサ６６の劣化度を表す値であって、上流側空燃比センサ６６の劣化度が大きいほどより大きい値に設定される。
【００７２】
トータル上限ガード値Ugrdtotal、及びトータル下限ガード値Lgrdtotalの絶対値は、筒内吸入空気量Mc(k)に比例するように決定される。これは、ＦＢ補正量DFBが基本燃料噴射量Fbaseに加算される値である（即ち、乗算される値ではない）ことに基づく。
【００７３】
トータル上限ガード値Ugrdtotal、及びトータル下限ガード値Lgrdtotalの絶対値は、図５に示すように、上流側目標空燃比abyfr(k)が理論空燃比stoichから離れるほどより小さい値に設定される。これは、以下の理由に基づく。
【００７４】
図２に２点鎖線で示すように、限界電流式の酸素濃度センサである上流側空燃比センサ６６の出力値Vabyfsは、対応する空燃比が理論空燃比から離れるほど誤差が大きくなり易い特性を有する。換言すれば、上流側空燃比センサ６６により検出される検出空燃比は、理論空燃比から離れるほど誤差が大きくなる特性を有する。即ち、上流側目標空燃比abyfr(k)が理論空燃比stoichから離れるほど、上流側目標空燃比abyfr(k)に一致するように制御される実際の空燃比が検出空燃比からずれる程度が大きくなる。加えて、上流側空燃比センサ６６の上記誤差が、空燃比の変化に対する出力値Vabyfsの変化勾配が小さくなる方向に発生している場合、実際の空燃比が検出空燃比に対して理論空燃比から離れる方向にずれる。
【００７５】
以上より、上流側目標空燃比abyfr(k)が理論空燃比stoichから離れるほど、実際の空燃比が検出空燃比に対して理論空燃比から離れる方向により大きくずれる可能性がある。このことは、上流側目標空燃比abyfr(k)が理論空燃比stoichから離れるほど、空燃比が可燃領域から逸脱する等の問題が発生する可能性が高くなることを意味する。一方、トータル上限ガード値Ugrdtotal、及びトータル下限ガード値Lgrdtotalの絶対値を小さくするほど、空燃比が可燃領域から逸脱する等の問題が発生し難くなる。
【００７６】
そこで、本装置では、上流側目標空燃比abyfr(k)にかかわらず安定して空燃比が可燃領域から逸脱する等の問題が発生することを防止するため、トータル上限ガード値Ugrdtotal、及びトータル下限ガード値Lgrdtotalの絶対値は、上流側目標空燃比abyfr(k)が理論空燃比stoichから離れるほどより小さい値に設定される。
【００７７】
更には、トータル上限ガード値Ugrdtotal、及びトータル下限ガード値Lgrdtotalの絶対値は、図５に矢印にて示すように、上流側空燃比センサ６６の劣化度が大きいほど（従って、劣化指標値αが大きいほど）より小さい値に設定される。これは、以下の理由に基づく。
【００７８】
図２に破線で示すように、上流側空燃比センサ６６の出力値Vabyfsの空燃比変化に対する変化勾配は、上流側空燃比センサ６６の劣化度が大きくなるほど小さくなっていく特性を有する。従って、上流側空燃比センサ６６の劣化度が大きくなるほど、実際の空燃比が検出空燃比に対して理論空燃比から離れる方向にずれる程度が大きくなる。このことは、上流側空燃比センサ６６の劣化度が大きくなるほど、空燃比が可燃領域から逸脱する等の問題が発生する可能性が高くなることを意味する。
【００７９】
そこで、本装置では、上流側空燃比センサ６６の劣化度にかかわらず安定して空燃比が可燃領域から逸脱する等の問題が発生することを防止するため、トータル上限ガード値Ugrdtotal、及びトータル下限ガード値Lgrdtotalの絶対値は、劣化指標値αが大きいほどより小さい値に設定される。
【００８０】
ＦＢ上限ガード値Ugrdfb、及びＦＢ下限ガード値Lgrdfbは、以上のように設定されるトータル上限ガード値Ugrdtotal及びトータル下限ガード値Lgrdtotalと、上記ＦＦ補正量DFFとを使用して、下記(7)式、(8)式に従ってそれぞれ設定される。
【００８１】
Ugrdfb＝Ugrdtotal−DFF  ・・・(7)
Lgrdfb＝Lgrdtotal−DFF  ・・・(8)
【００８２】
即ち、ＦＢ上限ガード値Ugrdfbは、ＦＢ補正量DFBとＦＦ補正量DFFの和がトータル上限ガード値Ugrdtotalに一致する場合に対応するＦＢ補正量DFBと等しい値に決定され、ＦＢ下限ガード値Lgrdfbは、ＦＢ補正量DFBとＦＦ補正量DFFの和がトータル下限ガード値Lgrdtotalに一致する場合に対応するＦＢ補正量DFBと等しい値に決定される。
【００８３】
例えば、図５に示すように、上流側目標空燃比abyfr(k)が値AF1（リッチ空燃比）である場合（ＦＦ補正量DFFが値F1（正の値）である場合）、ＦＢ上限ガード値Ugrdfbは値U1（正の値）となり、ＦＢ下限ガード値Lgrdfbは値(−L1)（負の値）となる。同様に、上流側目標空燃比abyfr(k)が値AF2（リーン空燃比）である場合（ＦＦ補正量DFFが値(−F2)（負の値）である場合）、ＦＢ上限ガード値Ugrdfbは値U2（正の値）となり、ＦＢ下限ガード値Lgrdfbは値(−L2)（負の値）となる。
【００８４】
上記(6)式にて求められたＦＢ補正量DFBは、このように設定されるＦＢ上限ガード値Ugrdfb及びＦＢ下限ガード値Lgrdfbを用いてガード処理される。そして、ガード処理されたＦＢ補正量DFBが、先に述べたように指令燃料噴射量算出手段Ａ５により指令燃料噴射量Fiを求める際に使用される。
【００８５】
これにより、ＦＢ上限ガード値UgrdfbとＦＢ下限ガード値Lgrdfbの差（即ち、ガード幅）をできるだけ大きく確保しつつ、且つ、ＦＦ補正量DFFの値にかかわらず空燃比が可燃領域から逸脱する等の問題が発生することが確実に防止され得る。このガード処理実行手段Ａ１４が前記「ガード処理実行手段」に相当する。
【００８６】
<上流側空燃比センサの劣化度の取得>
劣化度取得手段Ａ１５は、上述したように、上流側空燃比センサ６６の劣化度を表す劣化指標値αを所定のタイミング毎に取得・更新する。この劣化指標値αは、本例では、上流側空燃比センサ６６の出力値Vabyfsの空燃比変化に対する実際の変化勾配を計測し、基準変化勾配（図２に示した実線の勾配）に対する、上記計測された実際の変化勾配の低下量に応じた値に決定される。即ち、上流側空燃比センサ６６の出力値Vabyfsの空燃比変化に対する実際の変化勾配の低下量が大きいほど、劣化指標値αはより大きい値に決定される。この劣化度取得手段Ａ１５が前記「劣化度取得手段」に相当する。
【００８７】
以上のように、本装置は、現時点からＮストローク前の時点で筒内に供給された燃料の過不足分を補償するために、現時点での制御用空燃比abyfs(k)が、現時点からＮストローク前の上流側目標空燃比abyfr(k-N)と一致するように、空燃比がフィードバック制御される。
【００８８】
加えて、制御用空燃比abyfsは、上述したように、上流側空燃比センサ６６の出力値Vabyfsから得られる検出空燃比をサブフィードバック補正量Vafsfbに相当する分だけ補正した空燃比である。従って、制御用空燃比abyfsは出力偏差量DVoxsにも応じて変化する。この結果、下流側空燃比センサ６７の出力値Voxsが下流側目標値Voxsrefに一致するようにも空燃比がフィードバック制御される。
【００８９】
加えて、ＰＩコントローラＡ１３は積分項Gi・SDAFを含んでいるので、定常状態では空燃比偏差DAFがゼロになることが保証される。換言すれば、上流側目標空燃比abyfr(k-N)と制御用空燃比abyfs(k)との定常偏差がゼロになる。このことは、定常状態において、制御用空燃比abyfsが上流側目標空燃比abyfrに一致すること、従って、第１触媒５３の上下流の空燃比が上流側目標空燃比abyfrに一致することが保証されることを意味する。
【００９０】
また、定常状態では、空燃比偏差DAFがゼロになることで比例項Gp・DAFがゼロとなるから、ＦＢ補正値DFBは積分項Gi・SDAFの値と等しくなる。この積分項Gi・SDAFの値は、「基本燃料噴射量の誤差」に応じた値になる。これにより、「基本燃料噴射量の誤差」を補償することができる。以上が、本装置が行う空燃比制御の概要である。
【００９１】
（実際の作動）
次に、本装置の実際の作動について説明する。以下、説明の便宜上、「MapX(a1,a2,…)」は、a1,a2,…を引数とする値Xを求めるためのテーブルを表すものとする。また、引数の値がセンサの検出値である場合、現在値が使用される。
【００９２】
<空燃比制御>
ＣＰＵ７１は、図６にフローチャートにより示したＦＦ補正量DFF、指令燃料噴射量Fiの計算、及び燃料噴射の指示を行うルーチンを、各気筒のクランク角が各吸気上死点前の所定クランク角度（例えば、ＢＴＤＣ９０°ＣＡ）となる毎に、繰り返し実行するようになっている。従って、任意の気筒のクランク角度が上記所定クランク角度になると、ＣＰＵ７１はステップ６００から処理を開始してステップ６０５に進み、テーブルMapMc(NE,Ga)に基づいて今回の吸気行程を迎える気筒（以下、「燃料噴射気筒」と云うこともある。）に吸入された今回の筒内吸入空気量Mc(k)を推定・決定する。
【００９３】
次に、ＣＰＵ７１はステップ６１０に進んで、上記筒内吸入空気量Mc(k)を理論空燃比stoichで除することにより、基本燃料噴射量Fbaseを決定する。次いで、ＣＰＵ７１はステップ６１５に進み、テーブルMapabyfr(NE,Accp)に基づいて今回の上流側目標空燃比abyfr(k)を決定する。
【００９４】
続いて、ＣＰＵ７１はステップ６２０に進み、上記筒内吸入空気量Mc(k)と、上記上流側目標空燃比abyfr(k)と、上記(1)式とに基づいてＦＦ補正量DFFを求める。次に、ＣＰＵ７１はステップ６２５に進み、上記(2)式に従って、上記基本燃料噴射量Fbaseに、上記ＦＦ補正量DFFと、後述するルーチンにて（前回の燃料噴射時点にて）求められている最新の（ガード処理された）ＦＢ補正量DFBと、を加えることにより指令燃料噴射量Fiを決定する。
【００９５】
そして、ＣＰＵ７１はステップ６３０に進んで、上記指令燃料噴射量Fiの燃料の噴射指示を行った後、ＣＰＵ７１はステップ６９５に進んで本ルーチンを一旦終了する。以上により、基本燃料噴射量FbaseがＦＦ補正、及びＦＢ補正された後の指令燃料噴射量Fiの燃料の噴射指示が燃料噴射気筒に対してなされる。
【００９６】
<ＦＢ補正量の計算>
次に、（ガード処理された）ＦＢ補正量DFBを算出する際の作動について説明すると、ＣＰＵ７１は図７にフローチャートにより示したルーチンを、燃料噴射気筒について燃料噴射開始時期（燃料噴射開始時点）が到来する毎に、繰り返し実行するようになっている。従って、燃料噴射気筒について燃料噴射開始時期が到来すると、ＣＰＵ７１はステップ７００から処理を開始し、ステップ７０５に進んで、フィードバック条件が成立しているか否かを判定する。フィードバック条件は、例えば、機関の冷却水温THWが第１所定温度以上であって、上流側空燃比センサ６６が正常（活性状態となっていることを含む）であって、筒内吸入空気量Mc(k)（或いは、負荷）が所定値以下であるときに成立する。
【００９７】
いま、フィードバック条件が成立しているものとして説明を続けると、ＣＰＵ７１はステップ７０５にて「Ｙｅｓ」と判定してステップ７１０に進み、テーブルMapＮ(Mc(k),NE)に基づいて上記ストローク数Ｎを決定する。これは、ストローク数Ｎが、筒内吸入空気量Mc(k)が大きいほど、或いは運転速度NEが大きいほど小さくなることに基づく。
【００９８】
次に、ＣＰＵ７１はステップ７１５に進んで、現時点の上流側空燃比センサ６６の出力値Vabyfsと後述するルーチンにて求められているサブフィードバック補正量Vafsfbの最新値との和である合成空燃比相当出力値(Vabyfs+Vafsfb)をテーブルMapabyfs(Vabyfs+Vafsfb)に基づいて変換することにより、現時点における（今回の）制御用空燃比abyfs(k)を求める（図２を参照）。
【００９９】
次いで、ＣＰＵ７１はステップ７２０に進み、上記(5)式に従って、制御用空燃比abyfs(k)から上流側目標空燃比abyfr(k-N)を減じることにより空燃比偏差DAFを求め、続くステップ７２５にて、上記(6)式に基づいてＦＢ補正量DFBを求める。
【０１００】
次に、ＣＰＵ７１はステップ７３０に進んで、テーブルMapUgrdtotal(Mc(k),abyfr(k),α)に基づいてトータル上限ガード値Ugrdtotalを決定するとともに、テーブルMapLgrdtotal(Mc(k),abyfr(k),α)に基づいてトータル下限ガード値Lgrdtotalを決定する。
【０１０１】
次いで、ＣＰＵ７１はステップ７３５に進み、上記トータル上限ガード値Ugrdtotalと、先のステップ６２０にて求めたＦＦ補正量DFFと、上記(7)式とに基づいてＦＢ上限ガード値Ugrdfbを求めるとともに、上記トータル下限ガード値Lgrdtotalと、上記ＦＦ補正量DFFと、上記(8)式とに基づいてＦＢ下限ガード値Lgrdfbを求める。
【０１０２】
続いて、ＣＰＵ７１はステップ７４０に進んで、ステップ７２５にて求めたＦＢ補正量DFBに上記「ガード処理」（ＦＢ下限ガード値Lgrdfb≦DFB≦ＦＢ上限ガード値Ugrdfb）を行い、続くステップ７４５にてその時点における空燃比偏差DAFの積分値SDAFに上記ステップ７２０にて求めた空燃比偏差DAFを加えて、新たな空燃比偏差の積分値SDAFを求めた後、ステップ７９５に進んで本ルーチンを一旦終了する。
【０１０３】
以上により、ガード処理されたＦＢ補正量DFBが求められ、このガード処理されたＦＢ補正量DFBが前述した図６のステップ６２５より指令燃料噴射量Fiに反映されることで空燃比フィードバック制御が実行される。
【０１０４】
一方、ステップ７０５の判定時において、フィードバック条件が成立していない場合、ＣＰＵ７１はステップ７０５にて「Ｎｏ」と判定してステップ７５０に進んでＦＢ補正量DFBの値を「０」に設定し、その後ステップ７９５に進んで本ルーチンを一旦終了する。このように、フィードバック条件が成立していない場合、ＦＢ補正量DFBを「０」として基本燃料噴射量FbaseのＦＢ補正を行わない。
【０１０５】
<サブフィードバック補正量の計算>
次に、サブフィードバック補正量Vafsfbを算出する際の作動について説明すると、ＣＰＵ７１は図８にフローチャートにより示したルーチンを、燃料噴射気筒について燃料噴射開始時期（燃料噴射開始時点）が到来する毎に、繰り返し実行するようになっている。
【０１０６】
従って、燃料噴射気筒について燃料噴射開始時期が到来すると、ＣＰＵ７１はステップ８００から処理を開始し、ステップ８０５に進んで、サブフィードバック条件が成立しているか否かを判定する。サブフィードバック条件は、例えば、前述したステップ７０５のメインフィードバック条件に加え、機関の冷却水温THWが前記第１所定温度よりも高い第２所定温度以上のときに成立する。
【０１０７】
いま、サブフィードバック条件が成立しているものとして説明を続けると、ＣＰＵ７１はステップ８０５にて「Ｙｅｓ」と判定してステップ８１０に進み、上記(3)式に従って、下流側目標値Voxsrefから現時点の下流側空燃比センサ６７の出力値Voxsを減じることにより、出力偏差量DVoxsを求める。次に、ＣＰＵ７１はステップ８１５に進んで、下記(9)式に基づき出力偏差量DVoxsの微分値DDVoxsを求める。
【０１０８】
DDVoxs＝(DVoxs−DVoxs1)／Δt  ・・・(9)
【０１０９】
上記(9)式において、DVoxs1は前回の本ルーチン実行時において後述するステップ８３０にて更新された出力偏差量DVoxsの前回値である。また、Δtは本ルーチンが前回実行された時点から今回実行された時点までの時間である。
【０１１０】
次いで、ＣＰＵ７１はステップ８２０に進み、上記(4)式に基づいてサブフィードバック補正量Vafsfbを求める。
【０１１１】
続いて、ＣＰＵ７１はステップ８２５に進んで、その時点における出力偏差量の積分値SDVoxsに上記ステップ８１０にて求めた出力偏差量DVoxsを加えて、新たな出力偏差量の積分値SDVoxsを求め、続くステップ８３０にて、出力偏差量DVoxsの前回値DVoxs1を上記ステップ８１０にて求めた出力偏差量DVoxsと等しい値に設定した後、ステップ８９５に進んで本ルーチンを一旦終了する。
【０１１２】
以上により、サブフィードバック補正量Vafsfbが求められる。このサブフィードバック補正量Vafsfbは、前述した図７のルーチンの次回の実行時においてステップ７１５にて制御用空燃比abyfsを求めるために用いられる。
【０１１３】
一方、ステップ８０５の判定時において、サブフィードバック条件が不成立であると、ＣＰＵ７１は同ステップ８０５にて「Ｎｏ」と判定してステップ８３５に進んでサブフィードバック補正量Vafsfbの値を「０」に設定し、ステップ８９５に進んで本ルーチンを一旦終了する。このように、サブフィードバック条件が不成立であるときは、サブフィードバック補正量Vafsfbを「０」としてサブフィードバック制御に基づく空燃比フィードバック制御を行わない。
【０１１４】
以上、説明したように、本発明による内燃機関の空燃比制御装置の第１実施形態によれば、理論空燃比stoichに対応する基本燃料噴射量Fbase（単位：ｇ）に、目標空燃比abyfrの理論空燃比からの偏移に応じて得られるＦＦ補正量DFF（単位：ｇ）と、上流側空燃比センサ６６の出力値Vabyfsに基づいて得られるガード処理されたＦＢ補正量DFB（単位：ｇ）とを加えて指令燃料噴射量Fiが決定される。ＦＢ補正量DFBのガード処理では、ＦＢ上限カード値Ugrdfb（正の値、単位：ｇ）、ＦＢ下限ガード値Lgrdfb（負の値、単位：ｇ）をそれぞれ上下限とするガード処理が行われる。ＦＢ上限ガード値Ugrdfbは、基本燃料噴射量に対する全補正量(DFF＋DFB）が超えるべきでない上限値（トータル上限ガード値Ugrdtotal(正の値、単位：ｇ)）からＦＦ補正量DFFを減じた値(Ugrdtotal-DFF)に設定され、ＦＢ下限ガード値Lgrdfbは、上記基本燃料噴射量に対する全補正量(DFF＋DFB）が下回るべきでない下限値（トータル下限ガード値Lgrdtotal(負の値、単位：ｇ)）からＦＦ補正量DFFを減じた値(Lgrdtotal-DFF)に設定される。
【０１１５】
これにより、ＦＢ上限ガード値UgrdfbとＦＢ下限ガード値Lgrdfbの差（即ち、ガード幅）をできるだけ大きく確保しつつ、且つ、ＦＦ補正量DFFの値にかかわらず空燃比が可燃領域から逸脱する等の問題が発生することが確実に防止され得る。
【０１１６】
（第２実施形態）
次に、本発明の第２実施形態に係る空燃比制御装置について説明する。図９は、この第２実施形態の機能ブロック図である。図９に示すように、第２実施形態は、基本燃料噴射量Fbase（単位：ｇ）に、目標空燃比abyfrの理論空燃比stoichからの偏移に応じて得られるＦＦ補正率KFF（単位：％/100）に「１」を加えた値(KFF+1)と、上流側空燃比センサ６６の出力値Vabyfsに基づいて得られるガード処理されたＦＢ補正率KFB（単位：％/100）に「１」を加えた値(KFB+1)と、を乗じて指令燃料噴射量Fiが決定される点で、図４に機能ブロック図が示される第１実施形態と異なる。以下、係る相違点について、第２実施形態における実際の作動を通して説明する。
【０１１７】
第２実施形態のＣＰＵ７１は、上記第１実施形態のＣＰＵ７１が実行する図６〜図８のルーチンのうち図８のルーチンをそのまま実行するとともに、図６、図７のルーチンに代えて図１０、図１１にフローチャートにより示したルーチンをそれぞれ実行する。以下、図１０、図１１のルーチンにおいて、前出のルーチンのステップと同じステップについては前出のルーチンのステップ番号と同じステップ番号を付すことでそれらの説明に代える。
【０１１８】
図１０は、図６に対応するルーチンである。図１０のルーチンは、図６のステップ６２０、６２５をステップ１００５、１０１０にそれぞれ置き換えた点においてのみ図６のルーチンと異なる。
【０１１９】
ステップ１００５では、下記(10)式に従って、上流側目標空燃比abyfr(k)の理論空燃比stoichからの偏移に応じた、基本燃料噴射量Fbaseを補正するためのＦＦ補正率KFF（前記「フィードフォワード補正量」に相当）が求められる。
【０１２０】
KFF＝(stoich−abyfr(k))/stoich  ・・・(10)
【０１２１】
このＦＦ補正率KFFは、理論空燃比stoichに対する、上流側目標空燃比abyfr(k)の理論空燃比stoichからの偏移量の割合に等しい。上記第１実施形態におけるＦＦ補正量DFFと同様、ＦＦ補正率KFFは、上流側目標空燃比abyfr(k)が理論空燃比よりもリッチのときに正の値（よりリッチであるほどより大きい値）となり、上流側目標空燃比abyfr(k)が理論空燃比よりもリーンのときに負の値（よりリーンであるほど絶対値がより大きい値）となる。
【０１２２】
ステップ１０１０では、下記(11)式に従って、指令燃料噴射量Fiが求められる。ここで、Fbaseとしては図１０のステップ６１０にて得られた値が使用され、KFFとしては図１０のステップ１００５にて得られた値が使用される。ＦＢ補正率KFBとしては、後述する図１１のルーチンで求められている値（最新値）が使用される。
【０１２３】
Fi＝Fbase・(KFF+1)・(KFB+1)  ・・・(11)
【０１２４】
図１１は、図７に対応するルーチンである。図１１のルーチンは、図７のステップ７２５〜７４０、７５０をステップ１１０５〜１１２０、１１２５にそれぞれ置き換えた点においてのみ図７のルーチンと異なる。
【０１２５】
ステップ１１０５では、上記第１実施形態におけるＦＢ補正量DFB（単位：ｇ）に対応するＦＢ補正率KFB（単位：％/100）が、ステップ７２０にて得られる空燃比偏差DAFを比例ゲインGp1、積分ゲインGi1を用いてＰＩ処理して求められる。
【０１２６】
ステップ１１１０では、上記第１実施形態におけるトータル上限ガード値Ugrdtotal（単位：ｇ）に対応するトータル上限ガード値Ugrdtotal1（正の値、単位：％/100）がテーブルMapUgrdtotal1(abyfr(k),α)に基づいて決定されるとともに、上記第１実施形態におけるトータル下限ガード値Lgrdtotal（単位：ｇ）に対応するトータル下限ガード値Lgrdtotal1（負の値、単位：％/100）がテーブルMapLgrdtotal1(abyfr(k),α)に基づいて決定される。ここにおいて、「(Lgrdtotal1+1)≦((KFF+1)・(KFB+1))≦(Ugrdtotal1+1)」の関係がある。この関係は、上記第１実施形態における「Lgrdtotal≦(DFF+DFB)≦Ugrdtotal」の関係に対応している。
【０１２７】
なお、テーブルMapUgrdtotal1，MapLgrdtotal1の引数として筒内吸入空気量Mc(k)が含まれていないのは、ＦＢ補正率KFBに「１」を加えた値(KFB+1)が基本燃料噴射量Fbaseに乗算される値であるから、ＦＢ補正率KFBが筒内吸入空気量Mcの値そのものには影響されないことに基づく。
【０１２８】
これにより、上記第１実施形態におけるトータル上限ガード値Ugrdtotal、及びトータル下限ガード値Lgrdtotalと同様、トータル上限ガード値Ugrdtotal1、及びトータル下限ガード値Lgrdtotal1の絶対値は、上流側目標空燃比abyfr(k)が理論空燃比stoichから離れるほどより小さい値に設定され、且つ、上流側空燃比センサ６６の劣化度が大きいほど（従って、劣化指標値αが大きいほど）より小さい値に設定される。
【０１２９】
ステップ１１１５では、上記第１実施形態におけるＦＢ上限ガード値Ugrdfb（単位：ｇ）に対応するＦＢ上限ガード値Ugrdfb1（単位：％/100）が下記(12)式に従って求められるとともに、上記第１実施形態におけるＦＢ下限ガード値Lgrdfb（単位：ｇ）に対応するＦＢ下限ガード値Lgrdfb1（単位：％/100）が下記(13)式に従って求められる。
【０１３０】
Ugrdfb1＝(Ugrdtotal1+1)/(KFF+1)−1  ・・・(12)
Lgrdfb1＝(Lgrdtotal1+1)/(KFF+1)−1  ・・・(13)
【０１３１】
上記(12)式は、上述した「(Lgrdtotal1+1)≦((KFF+1)・(KFB+1))≦(Ugrdtotal1+1)」の関係のうちの一部である「((KFF+1)・(KFB+1))≦(Ugrdtotal1+1)」においてKFBをUgrdfb1に置き換え、不等号を等号に置き換えた式をUgrdfb1について解くことで得られる。同様に、上記(13)式は、「(Lgrdtotal1+1)≦((KFF+1)・(KFB+1))」においてKFBをLgrdfb1に置き換え、不等号を等号に置き換えた式をLgrdfb1について解くことで得られる。
【０１３２】
ステップ１１２０では、ステップ１１０５にて求めたＦＢ補正率KFBにガード処理（ＦＢ下限ガード値Lgrdfb1≦KFB≦ＦＢ上限ガード値Ugrdfb1）が行われる。ステップ１１２５では、ＦＢ補正量DFBに代えてＦＢ補正率KFBが「０」に設定される。
【０１３３】
以上、説明したように、本発明による内燃機関の空燃比制御装置の第２実施形態によれば、理論空燃比stoichに対応する基本燃料噴射量Fbase（単位：ｇ）に、目標空燃比abyfrの理論空燃比からの偏移に応じて得られるＦＦ補正率KFF（単位：％/100）に「１」を加えた値(KFF+1)と、上流側空燃比センサ６６の出力値Vabyfsに基づいて得られるガード処理されたＦＢ補正率KFB（単位：％/100）に「１」を加えた値(KFB+1)と、を乗じて指令燃料噴射量Fiが決定される。ＦＢ補正率KFBのガード処理では、ＦＢ上限カード値Ugrdfb1（単位：％/100）、ＦＢ下限ガード値Lgrdfb1（単位：％/100）をそれぞれ上下限とするガード処理が行われる。ＦＢ上限ガード値Ugrdfb1は、基本燃料噴射量に対する全補正量((KFF+1)・(KFB+1)）が超えるべきでない上限値（Ugrdtotal1+1）とＦＦ補正率KFFとを用いて上記(12)式に従って設定され、ＦＢ下限ガード値Lgrdfb1は、上記基本燃料噴射量に対する全補正量((KFF+1)・(KFB+1)）が下回るべきでない下限値（Lgrdtotal1+1）とＦＦ補正率KFFとを用いて上記(13)式に従って設定される。
【０１３４】
これにより、第２実施形態も、上記第１実施形態と同じ効果を奏する。即ち、ＦＢ上限ガード値Ugrdfb1とＦＢ下限ガード値Lgrdfb1の差（即ち、ガード幅）をできるだけ大きく確保しつつ、且つ、ＦＦ補正率KFFの値にかかわらず空燃比が可燃領域から逸脱する等の問題が発生することが確実に防止され得る。
【０１３５】
本発明は上記第１、第２実施形態に限定されることはなく、本発明の範囲内において種々の変形例を採用することができる。例えば、上記第１、第２実施形態においては、目標空燃比が基準空燃比（理論空燃比）から離れるほど、トータルガード値をより小さい値に設定することによりフィードバックガード値をより小さい値に設定している（ガード幅をより小さい値に設定している）が、トータルガード値を目標空燃比に応じて変更しないようにするとともに、目標空燃比が基準空燃比（理論空燃比）から離れるほど、計算されるフィードバックガード値をより小さい値に補正するように（ガード幅をより小さい値に補正するように）構成してもよい。
【０１３６】
また、上記第１、第２実施形態においては、上流側空燃比センサ６６の劣化度が大きくなるほど、トータルガード値をより小さい値に設定することによりフィードバックガード値をより小さい値に設定している（ガード幅をより小さい値に設定している）が、トータルガード値を上流側空燃比センサ６６の劣化度に応じて変更しないようにするとともに、上流側空燃比センサ６６の劣化度が大きくなるほど、計算されるフィードバックガード値をより小さい値に補正するように（ガード幅をより小さい値に補正するように）構成してもよい。
【０１３７】
また、上記第１、第２実施形態においては、下流側空燃比センサ６７の出力値Voxsに基づくサブフィードバック制御が実行されているが、サブフィードバック制御を実行しないように構成してもよい。
【図面の簡単な説明】
【０１３８】
【図１】本発明の第１実施形態に係る空燃比制御装置を適用した内燃機関の概略図である。
【図２】図１に示した上流側空燃比センサの出力電圧と空燃比との関係を示したグラフである。
【図３】図１に示した下流側空燃比センサの出力電圧と空燃比との関係を示したグラフである。
【図４】図１に示した空燃比制御装置が空燃比制御を実行する際の機能ブロック図である。
【図５】図１に示した空燃比制御装置による、フィードバック補正量の上下限ガード値の設定方法を説明するための図である。
【図６】図１に示したＣＰＵが実行するフィードフォワード補正量、燃料噴射量の計算、及び噴射指示を行うためのルーチンを示したフローチャートである。
【図７】図１に示したＣＰＵが実行するフィードバック補正量を計算するためのルーチンを示したフローチャートである。
【図８】図１に示したＣＰＵが実行するサブフィードバック補正量を計算するためのルーチンを示したフローチャートである。
【図９】本発明の第２実施形態に係る空燃比制御装置が空燃比制御を実行する際の機能ブロック図である。
【図１０】本発明の第２実施形態に係る空燃比制御装置のＣＰＵが実行するフィードフォワード補正率、燃料噴射量の計算、及び噴射指示を行うためのルーチンを示したフローチャートである。
【図１１】本発明の第２実施形態に係る空燃比制御装置のＣＰＵが実行するフィードバック補正率を計算するためのルーチンを示したフローチャートである。
【符号の説明】
【０１３９】
１０…内燃機関、２５…燃焼室、３９…インジェクタ、５２…エキゾーストパイプ（排気管）、５３…三元触媒（第１触媒）、６６…上流側空燃比センサ、６７…下流側空燃比センサ、７０…電気制御装置、７１…ＣＰＵ
【図１】
0004710716.tif 000002
【図２】
0004710716.tif 000003
【図３】
0004710716.tif 000004
【図４】
0004710716.tif 000005
【図５】
0004710716.tif 000006
【図６】
0004710716.tif 000007
【図７】
0004710716.tif 000008
【図８】
0004710716.tif 000009
【図９】
0004710716.tif 000010
【図１０】
0004710716.tif 000011
【図１１】
0004710716.tif 000012