(57)【要約】【課題】簡単なモデルを用いることでモデリングの複雑さを解消し、しかも気筒別空燃比を精度良く算出すること。【解決手段】空燃比偏差算出部２１で算出した空燃比偏差は気筒別空燃比推定部２４に入力され、この気筒別空燃比推定部２４において気筒別空燃比が推定される。気筒別空燃比推定部２４では、排気マニホールド１２の排気集合部１２ｂにおけるガス交換に着目して、Ａ／Ｆセンサ１３の検出値を、排気集合部１２ｂにおける流入ガスの気筒別空燃比の履歴とＡ／Ｆセンサ１３の検出値の履歴とにそれぞれ所定の重みを乗じて加算したものとしてモデル化し、該モデルをもとに気筒別空燃比を推定することとしている。【選択図】      図１
2005207405.tif 000002
【特許請求の範囲】
【請求項１】
各気筒に通じる複数の排気通路を集合させ、その排気集合部に空燃比センサを配設した多気筒内燃機関に適用され、前記空燃比センサによるセンサ検出値に基づいて気筒別空燃比を算出する気筒別空燃比算出装置において、
前記空燃比センサのセンサ検出値を、排気集合部における流入ガスの気筒別空燃比の履歴と前記センサ検出値の履歴とにそれぞれ所定の重みを乗じて加算したものとしてモデル化し、該モデルをもとに気筒別空燃比を推定する手段を備えたことを特徴とする多気筒内燃機関の気筒別空燃比算出装置。
【請求項２】
前記モデルを、排気集合部におけるガス流入及び混合の一次遅れ要素と、空燃比センサの応答による一次遅れ要素とを考慮したものとして構築した請求項１の多気筒内燃機関の気筒別空燃比算出装置。
【請求項３】
カルマンフィルタ型のオブザーバを用い、該オブザーバにより前記気筒別空燃比の推定を実施する請求項１又は２記載の多気筒内燃機関の気筒別空燃比算出装置。
【請求項４】
多気筒内燃機関の気筒毎に所定の基準角度位置で前記空燃比センサのセンサ検出値を取得し、該取得したセンサ検出値に基づいて気筒別空燃比を推定する気筒別空燃比算出装置であって、少なくとも内燃機関の運転負荷をパラメータとして前記基準角度位置を決定する請求項１乃至３の何れかに記載の多気筒内燃機関の気筒別空燃比算出装置。
【請求項５】
前記空燃比センサの状態又は内燃機関の運転状態に基づいて前記気筒別空燃比の推定条件を判定し、該推定条件の成立時に前記気筒別空燃比の推定を実施する請求項１乃至４の何れかに記載の多気筒内燃機関の気筒別空燃比算出装置。
【請求項６】
請求項１乃至５の何れかに記載の気筒別空燃比算出装置を具備する一方、前記空燃比センサのセンサ検出値を目標値に一致させるよう空燃比フィードバック制御を実施する空燃比制御装置において、
前記推定した気筒別空燃比に基づいて気筒間の空燃比ばらつき量を算出する手段と、該算出した空燃比ばらつき量に応じて該当する気筒毎に気筒別補正量を算出し該気筒別補正量により気筒毎の空燃比制御値を補正する手段とを備えたことを特徴とする多気筒内燃機関の空燃比制御装置。
【請求項７】
前記空燃比センサの検出対象となる全気筒について前記推定した気筒別空燃比の平均値を算出してこの平均値と気筒別空燃比との差から気筒間の空燃比ばらつき量を算出し、この空燃比ばらつき量に応じて気筒別補正量を算出する請求項６記載の多気筒内燃機関の空燃比制御装置。
【請求項８】
前記気筒別補正量の全気筒平均値を算出し、この全気筒平均値により各気筒毎の気筒別補正量を減算補正する請求項６又は７記載の多気筒内燃機関の空燃比制御装置。
【請求項９】
所定条件下で前記気筒別空燃比の推定が許可される場合に前記気筒別補正量による空燃比制御値の補正を許可する請求項６乃至８の何れかに記載の多気筒内燃機関の空燃比制御装置。
【請求項１０】
請求項１乃至５の何れかに記載の気筒別空燃比算出装置を具備する一方、前記空燃比センサのセンサ検出値を目標値に一致させるよう空燃比フィードバック制御を実施する空燃比制御装置において、
前記推定した気筒別空燃比に基づいて気筒間の空燃比ばらつき量を算出する手段と、該算出した空燃比ばらつき量に応じて空燃比フィードバック制御におけるフィードバックゲインを可変設定する手段とを備えたことを特徴とする多気筒内燃機関の空燃比制御装置。
【請求項１１】
前記気筒別補正量を用いた気筒別空燃比制御を実施した状態下において、気筒別補正量に応じて気筒毎の空燃比学習値を算出する手段と、該空燃比学習値をバックアップ用メモリに記憶する手段と、を更に備えた請求項６乃至９の何れかに記載の多気筒内燃機関の空燃比制御装置。
【請求項１２】
内燃機関の運転領域を複数領域に区分しておき、該区分した領域毎に前記空燃比学習値を算出すると共に前記バックアップ用メモリに記憶する請求項１１記載の多気筒内燃機関の空燃比制御装置。
【請求項１３】
前記気筒別補正量が所定値以上である場合にのみ前記空燃比学習値を更新する請求項１１又は１２記載の多気筒内燃機関の空燃比制御装置。
【請求項１４】
前記空燃比センサの検出対象となる全気筒について前記推定した気筒別空燃比の平均値と気筒別空燃比との差が空気過剰率（λ）で０．０１以上となる場合の相当値を、前記所定値とする請求項１３記載の多気筒内燃機関の空燃比制御装置。
【請求項１５】
その都度の気筒別補正量に応じて前記空燃比学習値の１回当たりの更新幅を決定し、該更新幅だけ前記空燃比学習値を更新する請求項１３又は１４の何れかに記載の多気筒内燃機関の空燃比制御装置。
【請求項１６】
前記空燃比学習値の更新周期を、前記気筒別補正量の算出周期よりも長くした請求項１１乃至１５の何れかに記載の多気筒内燃機関の空燃比制御装置。
【請求項１７】
各気筒に対する燃料噴射の都度、前記バックアップ用メモリに記憶した空燃比学習値を気筒別空燃比制御に反映させる手段を更に備えた請求項１１乃至１６の何れかに記載の多気筒内燃機関の空燃比制御装置。
【請求項１８】
内燃機関の運転領域において学習実行領域と学習非実行領域とを予め設定しておき、前記学習非実行領域では、最も学習非実行領域寄りの学習実行領域内の空燃比学習値を用い、気筒別空燃比制御に空燃比学習値を反映させる請求項１７記載の多気筒内燃機関の空燃比制御装置。
【請求項１９】
前記気筒別空燃比制御の実行条件が満たされない場合に、前記空燃比学習値の更新を禁止する請求項１１乃至１８の何れかに記載の多気筒内燃機関の空燃比制御装置。
【請求項２０】
前記空燃比センサによるセンサ検出値の変動量が所定の許容レベルを超えている場合に、前記空燃比学習値の更新を禁止する請求項１１乃至１９の何れかに記載の多気筒内燃機関の空燃比制御装置。
【請求項２１】
蒸発燃料を吸着する燃料吸着装置を備え、該燃料吸着装置に吸着した燃料を前記多気筒内燃機関の吸気系に放出し燃料噴射装置の噴射燃料と共に燃焼させるようにした構成において、
前記燃料吸着装置の燃料パージの実行時と同燃料パージの停止時とで前記気筒別補正量を各々算出する手段と、
前記算出したパージ実行時及びパージ停止時の各気筒別補正量に基づいて気筒毎の蒸発燃料分配率を算出する手段と、
を備えた請求項６乃至２０の何れかに記載の多気筒内燃機関の空燃比制御装置。
【請求項２２】
内燃機関の運転条件又は燃料パージ条件に応じて区分した領域毎に前記蒸発燃料分配率を算出し、バックアップ用メモリに記憶する請求項２１に記載の多気筒内燃機関の空燃比制御装置。
【請求項２３】
前記蒸発燃料分配率の気筒間のばらつき度合いに応じて前記燃料吸着装置から機関吸気系への燃料パージ量を制御する請求項２１又は２２に記載の多気筒内燃機関の空燃比制御装置。
【請求項２４】
気筒毎に算出した蒸発燃料分配率の最大値と最小値との差が相対的に大きい場合に燃料パージ量を減補正する請求項２３に記載の多気筒内燃機関の空燃比制御装置。
【請求項２５】
気筒毎に算出した蒸発燃料分配率の最大値と最小値との差が所定値以上であれば燃料パージ量を制限する請求項２３又は２４に記載の多気筒内燃機関の空燃比制御装置。
【請求項２６】
前記燃料吸着装置のパージ実行時における気筒別補正量に基づいてパージ実行時気筒別学習値を算出する一方、同パージ停止時における気筒別補正量に基づいてパージ停止時気筒別学習値を算出する手段を備え、これら各学習値を用いて前記蒸発燃料分配率を算出する請求項２１乃至２５の何れかに記載の多気筒内燃機関の空燃比制御装置。
【請求項２７】
内燃機関の運転条件又は燃料パージ条件に応じて区分した領域毎にパージ実行時及びパージ停止時の気筒別学習値を各々算出し、バックアップ用メモリに記憶する請求項２６に記載の多気筒内燃機関の空燃比制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、多気筒内燃機関の気筒別空燃比算出装置に係り、詳しくは、多気筒内燃機関の排気集合部に設置した空燃比センサを用い、そのセンサ検出値に基づいて気筒毎の空燃比を好適に算出するための技術に関するものである。
【背景技術】
【０００２】
従来より、内燃機関の排気空燃比を検出して目標の空燃比になるように燃料噴射量を制御する空燃比制御装置が提案されているが、多気筒内燃機関の場合、吸気マニホールド形状や吸気バルブの動作などにより、気筒間の吸入空気量にばらつきが生じる。また、気筒毎に燃料噴射弁を設けて個別に燃料噴射を行うＭＰＩ（マルチポイントインジェクション）方式の場合、燃料噴射装置の個体差などから気筒間の燃料量にばらつきが生じる。これらの気筒間ばらつきに起因して燃料噴射量制御の精度悪化が生じるため、例えば特許文献１（特開平８−３３８２８５号公報）では、空燃比センサによる空燃比検出時に、実際に検出対象となる排気がどの気筒のものかを特定し、その都度特定された気筒に対して個別に空燃比のフィードバック制御を実施するようにしていた。
【０００３】
また、特許文献２（特公平３−３７０２０号公報）では、空燃比センサを用いて排気集合部の空燃比を検出するとともに、該当する気筒の排気が空燃比センサに到達するまでの遅れを考慮して該当気筒の燃料供給量を補正するようにしていた。
【０００４】
しかしながら、前記特許文献１，２の技術では、排気集合部において各気筒の排気が混ざり合うことを考えると気筒間ばらつきを十分に解消することはできず、更なる改善が望まれている。特に特許文献２は、排気が管路方向に層状をなしているとみなせる場合にのみ有効なものであった。なお、気筒毎の空燃比を精度良く求めるには、排気マニホールドの各分岐管にそれぞれ空燃比センサを配設すればよいが、これでは気筒数と同数の空燃比センサが必要となり、コスト増を招いてしまう。
【０００５】
特許文献３（特許第２７１７７４４号公報）では、排気集合部の空燃比を燃焼履歴に所定の重みを乗じた加重平均としてモデル化し、内部状態量を燃焼履歴としてオブザーバにより気筒毎の空燃比を検出するようにしていた。しかしながら、このモデルは有限の燃焼履歴（燃焼空燃比）によって排気集合部の空燃比を決定するものであって、精度を向上させるためには履歴を増やすしかなく、結果計算量の増大やモデリングの複雑化を招くおそれがあった。
【特許文献１】特開平８−３３８２８５号公報
【特許文献２】特公平３−３７０２０号公報
【特許文献３】特許第２７１７７４４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
本発明は、簡単なモデルを用いることでモデリングの複雑さを解消し、しかも気筒別空燃比を精度良く算出することができる多気筒内燃機関の気筒別空燃比算出装置を提供することを主たる目的とし、ひいてはこの気筒別空燃比を用いて実施される空燃比制御の精度を向上させることを実現しようとするものである。
【課題を解決するための手段】
【０００７】
請求項１に記載の発明では、空燃比センサのセンサ検出値を、排気集合部における流入ガスの気筒別空燃比の履歴と前記センサ検出値の履歴とにそれぞれ所定の重みを乗じて加算したものとしてモデル化し、該モデルをもとに気筒別空燃比を推定することとしている。かかる構成によれば、排気集合部におけるガスの流入及び混合に着目したモデルを用いることになるため、当該排気集合部のガス交換挙動を反映して気筒別空燃比が算出できる。また、センサ検出値をその過去の値から予測するモデル（自己回帰モデル）を用いることから、有限の燃焼履歴（燃焼空燃比）を用いる従来構成とは異なり、精度向上を図る上で履歴を増やすことを要しない。その結果、簡単なモデルを用いることでモデリングの複雑さを解消し、しかも気筒別空燃比を精度良く算出することができるようになる。
【０００８】
排気集合部におけるガスの流入及び混合といったガス交換では、排気集合部におけるガス流入及び混合の一次遅れ要素と空燃比センサの応答による一次遅れ要素とが存在する。そこで、請求項２に記載したように、前記モデルを、排気集合部におけるガス流入及び混合の一次遅れ要素と、空燃比センサの応答による一次遅れ要素とを考慮したものとして構築することで、良好なるモデル化が可能となる。
【０００９】
請求項３に記載の発明では、カルマンフィルタ型のオブザーバを用い、該オブザーバにより前記気筒別空燃比の推定を実施することとしている。カルマンフィルタを用いることにより対ノイズ性能が向上し、気筒別空燃比の推定精度が向上する。
【００１０】
実際の空燃比挙動では気筒間で存在する個体差等により空燃比が変動し、その空燃比変動はクランク角に同期した所定パターンで現れる。また、空燃比の変動パターンは内燃機関の運転負荷に応じて変化し、進角側又は遅角側にシフトする（図６参照）。この空燃比変動により気筒別空燃比の推定精度が落ちることが考えられる。かかる事態を考慮し、請求項４に記載の発明では、空燃比センサのセンサ検出値を取得するための基準角度位置を、少なくとも内燃機関の運転負荷をパラメータとして決定することとしている。本構成により、最適なタイミングでセンサ検出値が取得でき、気筒別空燃比の推定精度が向上できる。例えば、少なくとも内燃機関の運転負荷を一パラメータとするマップを参照して基準角度位置を決定すれば良い。
【００１１】
請求項５に記載の発明では、前記空燃比センサの状態又は内燃機関の運転状態により前記気筒別空燃比の推定条件を判定し、該推定条件の成立時に前記気筒別空燃比の推定を実施する。具体的には、空燃比センサがフェイルしていないこと、内燃機関が高回転又は低負荷の運転状態にないことなどを条件に気筒別空燃比の推定を実施する。本構成によれば、気筒別空燃比の推定が困難である、又は推定値の信頼性が低い場合に気筒別空燃比の推定が禁じられる。従って、気筒別空燃比の推定精度が向上する。
【００１２】
また、前記推定した気筒別空燃比を空燃比フィードバック制御に適用する発明として、請求項６に記載の発明では、前記推定した気筒別空燃比に基づいて気筒間の空燃比ばらつき量を算出すると共に、該算出した空燃比ばらつき量に応じて該当する気筒毎に気筒別補正量を算出し該気筒別補正量により気筒毎の空燃比制御値を補正する。本構成によれば、気筒間の空燃比ばらつき量による空燃比制御誤差を減じることができ、精度の良い空燃比制御が実現できる。
【００１３】
請求項７に記載の発明では、前記空燃比センサの検出対象となる全気筒について前記推定した気筒別空燃比の平均値を算出してこの平均値と気筒別空燃比との差から気筒間の空燃比ばらつき量を算出し、この空燃比ばらつき量に応じて気筒別補正量を算出する。これにより、気筒別空燃比の全気筒平均値を基準にリッチ／リーン何れの方向に空燃比がばらついているかに応じて気筒別の空燃比補正が実施できる。
【００１４】
請求項８に記載の発明では、前記気筒別補正量の全気筒平均値を算出し、この全気筒平均値により各気筒毎の気筒別補正量を減算補正する。これにより、通常の空燃比フィードバック制御との干渉が回避できる。つまり、通常の空燃比フィードバック制御では、排気集合部における空燃比検出値が目標値に一致するよう空燃比制御が実施されるのに対し、本請求項８による気筒別空燃比制御では気筒間の空燃比ばらつきを吸収するよう空燃比制御が実施される。
【００１５】
請求項９に記載の発明では、所定条件下で前記気筒別空燃比の推定が許可される場合に、前記気筒別補正量による空燃比制御値の補正を許可する。ここで所定条件とは、前記請求項５で説明したように、空燃比センサがフェイルしていないこと、内燃機関が高回転又は低負荷の運転状態にないことなどである。本構成によれば、気筒別空燃比の推定値が信頼性の高いものであるため、空燃比制御精度も向上する。
【００１６】
また、前記推定した気筒別空燃比を空燃比フィードバック制御に適用する発明として、請求項１０に記載の発明では、前記推定した気筒別空燃比に基づいて気筒間の空燃比ばらつき量を算出すると共に、該算出した空燃比ばらつき量に応じて空燃比フィードバック制御におけるフィードバックゲインを可変設定する。例えば、空燃比ばらつき量が所定値以上の場合に、フィードバックゲインを減補正する。要するに、通常の空燃比フィードバック制御では気筒間の空燃比ばらつきが無い状態で最適にマッチングがとられており、気筒間の空燃比ばらつきによってモデル化誤差や外乱が大きくなり安定性が悪化するおそれがある。これに対し本構成によれば、気筒間の空燃比ばらつきを考慮した空燃比フィードバック制御が実現でき、制御の安定性が確保できる。
【００１７】
前記請求項６等に記載したように、気筒別空燃比の推定値を基に気筒別空燃比制御を実施することで気筒間の空燃比ばらつきが解消されるが、機関運転状態等によっては気筒別空燃比が推定できない、又は推定が困難となる場合もあると考えられる。そこで、請求項１１に記載の発明では、前記気筒別補正量を用いた気筒別空燃比制御を実施した状態下において、気筒別補正量に応じて気筒毎の空燃比学習値を算出し、該空燃比学習値をバックアップ用メモリに記憶する。この空燃比学習値を用いることで、気筒別空燃比の推定値が得られない場合であっても、気筒別空燃比制御が可能となり、気筒間の空燃比ばらつきが解消できる。
【００１８】
請求項１２に記載したように、内燃機関の運転領域を複数領域に区分しておき、該区分した領域毎に前記空燃比学習値を算出すると共にバックアップ用メモリに記憶すれば、高精度な気筒別空燃比制御の実現が可能となる。運転領域のパラメータとしては、機関回転数、負荷、水温、吸入空気量、要求噴射量の何れかを用いることが考えられる。
【００１９】
請求項１３に記載の発明では、前記気筒別補正量が所定値以上である場合にのみ前記空燃比学習値を更新する。つまり、空燃比学習値の更新に不感帯を設け、気筒別補正量が所定値未満であれば、空燃比学習値が更新されないようにした。これにより、空燃比学習値の誤学習の防止を図ることができる。
【００２０】
前記請求項１３の発明では請求項１４に記載したように、空燃比センサの検出対象となる全気筒について前記推定した気筒別空燃比の平均値と気筒別空燃比との差が空気過剰率（λ）で０．０１以上となる場合の相当値を、前記所定値とすると良い。すなわち本請求項１４によれば、λ偏差が０．０１以上となる場合にのみ、空燃比学習値の更新が行われる。
【００２１】
請求項１５に記載の発明では、その都度の気筒別補正量に応じて前記空燃比学習値の１回当たりの更新幅を決定し、該更新幅だけ前記空燃比学習値を更新する。具体的には、気筒別補正量が大きいほど、空燃比学習値の更新幅を大きくすると良い。これにより、気筒別補正量が大きい（すなわち気筒間における空燃比ばらつきが大きい）場合であっても、比較的短時間で学習を完了することができる。また、気筒間における空燃比ばらつきが解消され、気筒別補正量が小さくなる場合には、小刻みにすなわち慎重に空燃比学習値を更新することができるため、学習の精度を高めることができる。
【００２２】
請求項１６に記載の発明では、前記空燃比学習値の更新周期を、前記気筒別補正量の算出周期よりも長くしている。これにより、急な空燃比学習値の更新による誤学習を抑制することができる。
【００２３】
請求項１７に記載の発明では、各気筒に対する燃料噴射の都度、前記バックアップ用メモリに記憶した空燃比学習値を気筒別空燃比制御に反映させるようにした。これにより、気筒間ばらつきのない高精度な空燃比フィードバック制御が実現できる。
【００２４】
請求項１８に記載の発明では、内燃機関の運転領域において学習実行領域と学習非実行領域とを予め設定しておき、前記学習非実行領域では、最も学習非実行領域寄りの学習実行領域内の空燃比学習値を用い、気筒別空燃比制御に空燃比学習値を反映させるようにした。つまり、例えば高回転・高負荷領域は学習非実行領域に該当するが、この運転領域であっても空燃比学習値の反映が可能となる。
【００２５】
請求項１９に記載の発明では、前記気筒別空燃比制御の実行条件が満たされない場合に、前記空燃比学習値の更新を禁止する。具体的には、空燃比センサの活性前、空燃比センサの故障時など、気筒別空燃比制御が困難な場合において空燃比学習値の更新を禁止する。又は、気筒別空燃比制御が可能であっても、機関冷却水が低温である時、高回転時や低負荷時など、気筒別空燃比の推定精度が低下する場合において空燃比学習値の更新を禁止する。これにより、空燃比学習値の誤学習の防止を図ることができる。
【００２６】
請求項２０に記載の発明では、空燃比センサによるセンサ検出値の変動量が所定の許容レベルを超えている場合に、前記空燃比学習値の更新を禁止する。これにより、空燃比学習値の誤学習の防止を図ることができる。
【００２７】
請求項２１に記載の発明では、燃料吸着装置の燃料パージの実行時と同燃料パージの停止時とで気筒別補正量を各々算出し、該算出したパージ実行時及びパージ停止時の各気筒別補正量に基づいて気筒毎の蒸発燃料分配率を算出する。この場合、パージ停止時と比較して蒸発燃料のパージ実行時には実際に各気筒に分配された燃料分だけ気筒別補正量が変動し、パージ停止時と差が生じる。従って、パージ実行時／停止時の比較をすれば、内燃機関の機差や経時変化等に関係なく気筒毎の蒸発燃料分配率が算出できる。
【００２８】
請求項２２に記載の発明では、内燃機関の運転条件又は燃料パージ条件に応じて区分した領域毎に蒸発燃料分配率を算出し、バックアップ用メモリに記憶する。この場合、蒸発燃料分配率がその都度対応する領域毎に学習されるため、燃料パージ実行時に速やかに且つ正確に気筒間の燃料分配ばらつきが把握できる。内燃機関の運転条件は例えば機関回転数や負荷であり、燃料パージ条件は例えば燃料パージ量や燃料パージ濃度である。
【００２９】
燃料吸着装置に一旦吸着されその後放出される燃料は揮発成分が主であり、仮に気筒間の空燃比が同じであっても、気筒間で蒸発燃料分配率のばらつきが生じて揮発燃料成分の割合が変わると燃焼の性質が異なり、発生トルクが変動する。これは運転性能の悪化要因となる。そのため、請求項２３に記載したように、蒸発燃料分配率の気筒間のばらつき度合いに応じて燃料吸着装置から機関吸気系への燃料パージ量を制御すると良い。
【００３０】
より具体的には、請求項２４に記載したように、気筒毎の蒸発燃料分配率の最大値と最小値との差が相対的に大きい場合に燃料パージ量を減補正する。又は、請求項２５に記載したように、蒸発燃料分配率の最大値と最小値との差が所定値以上であれば燃料パージ量を制限する。請求項２４，２５により、発生トルクの変動が抑制できる。
【００３１】
請求項２６に記載の発明では、燃料吸着装置のパージ実行時における気筒別補正量に基づいてパージ実行時気筒別学習値を算出する一方、同パージ停止時における気筒別補正量に基づいてパージ停止時気筒別学習値を算出する。そして、これら各学習値を用いて前記蒸発燃料分配率を算出する。これにより、エンジン機差や経時変化等を反映しつつ蒸発燃料分配率が容易に算出できる。
【００３２】
請求項２７に記載の発明では、内燃機関の運転条件又は燃料パージ条件に応じて区分した領域毎にパージ実行時及びパージ停止時の気筒別学習値を各々算出し、バックアップ用メモリに記憶する。この場合、各気筒別学習値がその都度対応する領域毎に学習されるため、蒸発燃料分配率が所望とする時に容易に算出できる。
【発明を実施するための最良の形態】
【００３３】
（第１の実施の形態）
以下、本発明を具体化した第１の実施の形態を図面に従って説明する。本実施の形態では、多気筒内燃機関である車載４気筒ガソリンエンジンを対象にエンジン制御システムを構築し、当該制御システムにおいてはエンジン制御用電子制御ユニット（以下、エンジンＥＣＵという）を中枢として燃料噴射量の制御や点火時期の制御等を実施することとしている。先ずは、図１を用いて本制御システムの主要な構成を説明する。
【００３４】
図１において、エンジン１０の吸気ポート近傍には気筒毎に電磁駆動式の燃料噴射弁１１が取り付けられている。燃料噴射弁１１からエンジン１０に燃料が噴射供給されると、各気筒の吸気ポートでは吸入空気と燃料噴射弁１１による噴射燃料とが混合されて混合気が形成され、この混合気が吸気バルブ（図示略）の開放に伴い各気筒の燃焼室に導入されて燃焼に供される。
【００３５】
エンジン１０で燃焼に供された混合気は、排気バルブ（図示略）の開放に伴い排気として排気マニホールド１２を介して排出される。排気マニホールド１２は気筒毎に分岐した分岐部１２ａとそれら各分岐部１２ａを集合させた排気集合部１２ｂとよりなり、排気集合部１２ｂには混合気の空燃比を検出するためのＡ／Ｆセンサ１３が設けられている。Ａ／Ｆセンサ１３は「空燃比センサ」に相当するものであって、広域の空燃比をリニアに検出する。
【００３６】
図示は省略するが、本制御システムでは、前記Ａ／Ｆセンサ１３以外にも吸気管負圧を検出する吸気管負圧センサ、エンジン水温を検出する水温センサ、エンジンの所定クランク角毎にクランク角信号を出力するクランク角センサなど各種センサが設けられており、Ａ／Ｆセンサ１３の検出信号と同様、各種センサの検出信号もエンジンＥＣＵに適宜入力されるようになっている。
【００３７】
上記構成のエンジン１０では、Ａ／Ｆセンサ１３の検出信号に基づいて空燃比が算出され、その算出値が目標値に一致するよう気筒毎の燃料噴射量がＦ／Ｂ（フィードバック）制御される。空燃比Ｆ／Ｂ制御の基本構成を図１で説明すれば、空燃比偏差算出部２１では、Ａ／Ｆセンサ１３の検出信号から算出した検出空燃比と別途設定した目標空燃比との偏差が算出され、空燃比Ｆ／Ｂ制御部２２では、その偏差に基づいて空燃比補正係数が算出される。そして、噴射量算出部２３では、エンジン回転数やエンジン負荷（例えば吸気管負圧）等に基づいて算出されたベース噴射量や前記空燃比補正係数などから最終噴射量が算出され、その最終噴射量により燃料噴射弁１１が制御される。この制御の流れは従来の空燃比Ｆ／Ｂ制御と同様である。
【００３８】
上述した空燃比Ｆ／Ｂ制御は、排気マニホールド１２の排気集合部１２ｂで検出した空燃比情報に基づいて各気筒の燃料噴射量（空燃比）を制御するものであるが、現実には気筒毎に空燃比がばらつくため、本実施の形態では、Ａ／Ｆセンサ１３の検出値から気筒別空燃比を求め、その気筒別空燃比に基づいて気筒別空燃比制御を実施することとする。その詳細を以下に説明する。
【００３９】
図１に示すように、空燃比偏差算出部２１で算出した空燃比偏差は気筒別空燃比推定部２４に入力され、この気筒別空燃比推定部２４において気筒別空燃比が推定される。気筒別空燃比推定部２４では、排気マニホールド１２の排気集合部１２ｂにおけるガス交換に着目して、Ａ／Ｆセンサ１３の検出値を、排気集合部１２ｂにおける流入ガスの気筒別空燃比の履歴とＡ／Ｆセンサ１３の検出値の履歴とにそれぞれ所定の重みを乗じて加算したものとしてモデル化し、該モデルをもとに気筒別空燃比を推定することとしている。また、オブザーバとしてはカルマンフィルタを用いている。
【００４０】
より具体的には、排気集合部１２ｂにおけるガス交換のモデルを次の（１）式にて近似する。（１）式中、ｙｓはＡ／Ｆセンサ１３の検出値、ｕは排気集合部１２ｂに流入するガスの空燃比、ｋ１〜ｋ４は定数である。
【００４１】
【数１】
2005207405.tif 000003
排気系では、排気集合部１２ｂにおけるガス流入及び混合の一次遅れ要素と、Ａ／Ｆセンサ１３の応答による一次遅れ要素とが存在する。そこで、（１）式では、これらの遅れ要素を考慮して過去２回分の履歴を参照することとしている。
【００４２】
上記（１）式を状態空間モデルに変換すると、次の（２）式が得られる。（２）式中、Ａ，Ｂ，Ｃ，Ｄはモデルのパラメータ、ＹはＡ／Ｆセンサ１３の検出値、Ｘは状態変数としての気筒別空燃比、Ｗはノイズである。
【００４３】
【数２】
2005207405.tif 000004
更に、上記（２）式によりカルマンフィルタを設計すると、次の（３）式が得られる。（３）式中、Ｘ＾（エックスハット）は推定値としての気筒別空燃比、Ｋはカルマンゲインである。Ｘ＾（ｋ＋１｜ｋ）の表記は時間ｋの推定値により時間ｋ＋１の推定値を求めることを表す。
【００４４】
【数３】
2005207405.tif 000005
以上のように、気筒別空燃比推定部２４をカルマンフィルタ型オブザーバにて構成することにより、燃焼サイクルの進行に伴い気筒別空燃比が順次推定できる。なお、図１の構成では、空燃比偏差を気筒別空燃比推定部２４の入力としており、上記（３）式において出力Ｙが空燃比偏差に置き換えられる。
【００４５】
また、基準空燃比算出部２５では、前記気筒別空燃比推定部２４で推定した気筒別空燃比に基づいて基準空燃比が算出される。ここでは、気筒別空燃比の全気筒平均（本実施の形態では第１〜第４気筒の平均値）を基準空燃比としており、新たに気筒別空燃比が算出される度に基準空燃比が更新される。気筒別空燃比偏差算出部２６では、気筒別空燃比と基準空燃比との偏差（気筒別空燃比偏差）が算出される。
【００４６】
気筒別空燃比制御部２７では、気筒別空燃比偏差算出部２６で算出した偏差に基づいて気筒別補正量が算出され、その気筒別補正量により各気筒の最終噴射量が補正される。気筒別空燃比制御部２７のより詳しい構成を図２で説明する。
【００４７】
図２において、気筒毎に算出された気筒別空燃比偏差（図１の気筒別空燃比偏差算出部２６の出力）は、第１〜第４の各気筒毎の補正量算出部３１，３２，３３，３４にそれぞれ入力される。各補正量算出部３１〜３４では、気筒別空燃比偏差に基づいて気筒間の空燃比ばらつきが解消されるように、すなわち、該当する気筒の気筒別空燃比が基準空燃比に一致するようにして気筒別補正量が算出される。このとき、各気筒の補正量算出部３１〜３４で算出された気筒別補正量は全て補正量平均値算出部３５に取り込まれ、第１気筒〜第４気筒の各気筒別補正量の平均値が算出される。そして、その補正量平均値により第１気筒〜第４気筒の各気筒別補正量が減量補正される。結果この補正後の気筒別補正量により各気筒の最終噴射量が補正される。
【００４８】
上述した空燃比偏差算出部２１、空燃比Ｆ／Ｂ制御部２２、噴射量算出部２３、気筒別空燃比推定部２４、基準空燃比算出部２５、気筒別空燃比偏差算出部２６及び気筒別空燃比制御部２７は、エンジンＥＣＵ内のマイクロコンピュータにより実現されれば良く、次に、エンジンＥＣＵによる気筒別空燃比制御の一連の流れをフローチャートに基づいて説明する。図３は、所定のクランク角度毎（本実施の形態では３０°ＣＡ毎）に実行されるクランク角同期ルーチンを示すフローチャートである。
【００４９】
図３において、先ずステップＳ１１０では、気筒別空燃比制御を許可又は禁止するための実行条件判定処理を実施する。実行条件判定処理を図４に基づいて詳しく説明すれば、ステップＳ１１１では、Ａ／Ｆセンサ１３が使用可能な状態であるか否かを判別する。具体的には、Ａ／Ｆセンサ１３が活性化していること、フェイルしていないこと等を判別する。また、ステップＳ１１２では、エンジン水温が所定温度（例えば７０℃）以上であるか否かを判別する。そして、Ａ／Ｆセンサ１３が使用可能であり且つエンジン水温が所定温度以上であれば、ステップＳ１１３に進む。
【００５０】
ステップＳ１１３では、回転速度とエンジン負荷（例えば吸気管負圧）とをパラメータとする運転領域マップを参照し、今現在のエンジン運転状態が実行領域にあるかどうかを判定する。このとき、高回転域又は低負荷域では気筒別空燃比の推定が困難である、又は推定値の信頼性が低いと考えられるため、かかる運転領域で気筒別空燃比制御が禁止されるようにして、図示の如く実行領域が設定されている。
【００５１】
今現在のエンジン運転状態が実行領域にあれば、ステップＳ１１４を肯定判別し、ステップＳ１１５で実行フラグをＯＮする。実行領域になければ、ステップＳ１１４を否定判別し、ステップＳ１１６で実行フラグをＯＦＦする。その後本処理を終了する。
【００５２】
図３の説明に戻り、ステップＳ１２０では、実行フラグがＯＮであるか否かを判別し、実行フラグがＯＮであることを条件にステップＳ１３０に進む。ステップＳ１３０では、気筒別空燃比の制御タイミングを決定する。このとき、エンジン負荷（例えば吸気管負圧）をパラメータとするマップを参照し、その時のエンジン負荷に応じて基準クランク角度を決定する。当該マップでは、低負荷域で基準クランク角度が遅角側にシフトされるようになっている。つまり、低負荷域では排気流速が遅くなることが考えられ、故にその遅延分に合わせて基準クランク角度が設定され、その基準クランク角度に基づいて制御タイミングが決定されるようになっている。
【００５３】
ここで、基準クランク角度は、気筒別空燃比の推定に用いるＡ／Ｆセンサ値を取得するための基準角度位置であり、これはエンジン負荷に応じて変動する。図６で説明すれば、Ａ／Ｆセンサ値は気筒間の個体差等により変動し、クランク角に同期した所定パターンとなる。この変動パターンはエンジン負荷が小さい場合に遅角側にシフトする。例えば図のａ，ｂ，ｃ，ｄの各タイミングでＡ／Ｆセンサ値を取得したい場合に、負荷変動が生じるとＡ／Ｆセンサ値が本来欲しい値からずれるが、上記の通り基準クランク角度が可変設定されることにより最適なタイミングでＡ／Ｆセンサ値が取得できる。但し、Ａ／Ｆセンサ値を取り込むこと（例えばＡ／Ｄ変換すること）自体は、必ずしも上記基準クランク角度のタイミングに限定されず、この基準クランク角度よりも短い間隔で実施される構成であっても良い。
【００５４】
その後、気筒別空燃比の制御タイミング（ステップＳ１４０がＹＥＳ）であることを条件にステップＳ１５０に進み、気筒別空燃比制御を実行する。気筒別空燃比制御を図５に基づいて説明する。
【００５５】
図５において、ステップＳ１５１では、Ａ／Ｆセンサ１３の検出信号から算出された空燃比を読み込み、続くステップＳ１５２では、前記読み込んだ空燃比に基づいて気筒別空燃比を推定する。気筒別空燃比の推定手法については既述の通りである。
【００５６】
その後、ステップＳ１５３では、前記推定した気筒別空燃比の全気筒分（本実施の形態では過去４気筒分）の平均値を算出し、その平均値を基準空燃比とする。最後に、ステップＳ１５４では、気筒別空燃比と基準空燃比との差に応じて気筒毎に気筒別補正量を算出する。なおこのとき、前記図２で説明したように、全気筒の気筒別補正量が各々算出されると共に全気筒平均値が算出され、気筒別補正量から全気筒平均値を減算した値が、最終的に気筒別補正量とされるようになっている。そして、この気筒別補正量を用いて気筒毎に最終噴射量が補正される。
【００５７】
図７は、気筒別空燃比制御を実施した場合の空燃比挙動を示すタイムチャートである。図７において、（ａ）はＡ／Ｆセンサ１３により検出された空燃比（集合部空燃比）を、（ｂ）は各気筒毎にＡ／Ｆセンサを取り付けて計測した気筒別空燃比の実測値を、（ｃ）は第１〜第４気筒の気筒別空燃比の推定値を、（ｄ）は気筒別補正量の挙動を、それぞれ示している。なお本事例では、（ｂ）及び（ｃ）に示すように、全４気筒のうち第１気筒のみが明らかに他と異なる空燃比挙動となっており、図面ではこれを「＃１」、他を「＃２〜＃４」としている。
【００５８】
（ｂ）及び（ｃ）を比較して分かるように、本実施の形態による気筒別空燃比の推定値は概ね実際の空燃比挙動（実測値）に合致するものとなっている。また、（ｄ）に示すタイミングｔ１以降では、気筒別補正量が算出される。かかる場合、第１気筒の気筒別補正量が減量側に、他の気筒の気筒別補正量が増量側に設定されることにより、ｔ１以降、気筒間の空燃比ばらつきが解消されるようになっている。
【００５９】
以上詳述した本実施の形態によれば、以下の優れた効果が得られる。
【００６０】
排気集合部１２ｂにおけるガス流入及び混合に基づき構築したモデルを用いて気筒別空燃比を推定するようにしたため、当該排気集合部１２ｂのガス交換挙動を反映して気筒別空燃比が算出できる。また、当該モデルは、Ａ／Ｆセンサ１３の検出値をその過去の値から予測するモデル（自己回帰モデル）であることから、有限の燃焼履歴（燃焼空燃比）を用いる従来構成とは異なり、精度向上を図る上で履歴を増やすことを要しない。その結果、簡単なモデルを用いることでモデリングの複雑さを解消し、しかも気筒別空燃比を精度良く算出することができるようになる。その結果、ひいては空燃比制御の制御性が向上する。
【００６１】
気筒別空燃比の推定にカルマンフィルタ型のオブザーバを用いたため、対ノイズ性能が向上し、気筒別空燃比の推定精度が向上する。
【００６２】
気筒別空燃比の制御タイミングをエンジン負荷に応じて可変設定する構成としたため、最適なタイミングでＡ／Ｆセンサ値が取得でき、気筒別空燃比の推定精度が向上する。
【００６３】
また、空燃比Ｆ／Ｂ制御において、気筒別空燃比（推定値）に基づいて気筒間の空燃比ばらつき量としての気筒別空燃比偏差を算出し、該算出した気筒別空燃比偏差に応じて該当する気筒毎に気筒別補正量を算出する構成としたため、気筒間の空燃比ばらつき量による空燃比制御誤差を減じることができ、精度の良い空燃比制御が実現できる。
【００６４】
また、気筒別補正量の算出においては、気筒別補正量の全気筒平均値を算出してこの全気筒平均値だけ各気筒毎の気筒別補正量を減算補正するようにしたため、通常の空燃比Ｆ／Ｂ制御との干渉が回避できる。つまり、通常の空燃比Ｆ／Ｂ制御では、排気集合部１２ｂにおける空燃比検出値が目標値に一致するよう空燃比制御が実施されるのに対し、気筒別空燃比制御では気筒間の空燃比ばらつきを吸収するよう空燃比制御が実施される。
【００６５】
（第２の実施の形態）
上記第１の実施の形態では、Ａ／Ｆセンサ１３の検出値に基づいて気筒別空燃比を推定し、該気筒別空燃比（推定値）に基づいて気筒間の空燃比ばらつきをなくすよう気筒別空燃比制御を実施したが、エンジン運転状態によっては気筒別空燃比の推定が困難となる場合がある。気筒別空燃比が推定できない場合、気筒別空燃比制御が実施できなくなるために、気筒間の空燃比ばらつきが解消できないことが懸念される。例えば、エンジン始動直後や、高回転又は低負荷運転時にはこうした事態が生じる。そこで本実施の形態では、気筒間の空燃比ばらつきを学習して該学習により得られた気筒別学習値（空燃比学習値）を、イグニッションＯＦＦ後にも記憶内容を保持するスタンバイＲＡＭ等のバックアップ用メモリに格納しておき、この気筒別学習値を空燃比制御に適宜用いることとしている。なお、バックアップ用メモリとしてＥＥＰＲＯＭ等の不揮発性メモリを用いることも可能である。
【００６６】
図８は、本実施の形態における気筒別空燃比制御処理を示すフローチャートであり、当該制御処理は、前記図５の処理に置き換えて実施される。なお、図８のステップＳ２０１〜Ｓ２０４は、前記図５のステップＳ１５１〜Ｓ１５４と同じ処理である。
【００６７】
図８において、先ずステップＳ２０１〜Ｓ２０４では、気筒別補正量を算出する。すなわち、前述したとおり空燃比の読み込み（ステップＳ２０１）、気筒別空燃比の推定（ステップＳ２０２）、基準空燃比の算出（ステップＳ２０３）、気筒別補正量の算出（ステップＳ２０４）を実施する。前記図２で説明したとおり、気筒別補正量は、気筒別空燃比偏差に基づいて算出した第１〜第４気筒補正量の平均値（全気筒平均値）と、第１〜第４気筒補正量との差から算出される。
【００６８】
その後、ステップＳ２１０では、気筒別学習値の更新処理を実施し、続くステップＳ２２０では、気筒別学習値を反映させるなどして気筒毎に最終な燃料噴射量を算出する。但し、ステップＳ２１０，Ｓ２２０の詳細については後述する。
【００６９】
図９は、前記ステップＳ２１０における気筒別学習値の更新処理を示すフローチャートである。図９において、ステップＳ２１１では、学習の実行条件が成立しているか否かを判別する。具体的には、
（イ）今現在、気筒別空燃比制御が実行されていること、
（ロ）エンジン水温が所定温度以上（例えばマイナス１０℃以上）であること、
（ハ）空燃比変動量が所定値以下であり、空燃比安定条件が成立していること、
を学習実行条件とし、上記（イ）〜（ハ）が何れも満たされる場合に、学習実行条件が成立したとされる。学習実行条件が成立した場合には学習値更新が許可され、学習実行条件が成立しない場合に学習値更新が禁止される。
【００７０】
上記（イ）の条件が満たされるには、気筒別空燃比制御の実行条件が成立していることが前提であり、前記図４の実行条件判定処理にて説明したように、Ａ／Ｆセンサ１３が活性化していること、フェイル（故障）していないこと等が上記（イ）の条件に含まれる。
【００７１】
上記（ハ）の条件を図１１により説明する。つまり、検出空燃比（Ａ／Ｆ）の今回値と前回値との差ΔＡ／Ｆ１（絶対値）が所定値ＴＨ１未満であり、且つ検出空燃比の今回値と７２０°ＣＡ前値との差ΔＡ／Ｆ２（絶対値）が所定値ＴＨ２未満である場合に、上記（ハ）の空燃比安定条件が成立した判定することとしている。例えば、検出空燃比が図１１の（ａ）のように変化する時、ΔＡ／Ｆ１，ΔＡ／Ｆ２は（ｂ），（ｃ）となり、その結果、ｔ１１〜ｔ１２以外の期間で空燃比安定条件が成立した旨判定される。
【００７２】
上記（イ）〜（ハ）以外にも、高回転時や低負荷時など、気筒別空燃比の推定精度が低下すると考えられる条件を設定し、かかる条件下で学習値更新を禁止するようにしても良い。以上のように学習実行条件を規定することで、気筒別学習値の誤学習の防止が可能となる。
【００７３】
学習実行条件が成立している場合、ステップＳ２１２に進み、例えばエンジン回転数や負荷をパラメータとして今回学習を実施する学習領域を決定する。その後、ステップＳ２１３では、気筒毎に気筒別補正量のなまし値を算出する。具体的には、次式を用いて補正量なまし値を算出する。但し、Ｋはなまし係数であり、例えばＫ＝０．２５である。
補正量なまし値＝前回のなまし値＋Ｋ×（今回の補正量−前回のなまし値）
その後、ステップＳ２１４では、今回の処理が気筒別学習値の更新タイミングであるか否かを判別する。この更新タイミングは、気筒別学習値の更新周期が少なくとも気筒別補正量の算出周期よりも長くなるよう設定されるものであれば良く、例えば、タイマ等に設定された所定時間が経過した時に更新タイミングである旨判別される。気筒別学習値の更新タイミングであれば、後続のステップＳ２１５に進み、更新タイミングでなければ、そのまま本処理を終了する。
【００７４】
ステップＳ２１５では、前記算出した気筒毎の補正量なまし値の絶対値が所定値ＴＨＡ以上であるか否かを判別する。本実施の形態では、所定値ＴＨＡは、気筒別空燃比（推定値）の全気筒平均値と気筒別空燃比との差が空気過剰率λで０．０１以上となる場合の相当値としている。
【００７５】
補正量なまし値（絶対値）≧ＴＨＡであれば、ステップＳ２１６に進み、学習値更新量を算出する。このとき、学習値更新量は、例えば図１２の関係を用い、その時の補正量なまし値に基づいて算出され、基本的に補正量なまし値が大きいほど学習値更新量が大きい値とされる。なお、図１２の関係では、補正量なまし値＜ａでは学習値更新量が０とされ、このａは前記ステップＳ２１５の所定値ＴＨＡに相当する。その後、ステップＳ２１７では、気筒別学習値の更新処理を実施する。すなわち、気筒別学習値の前回値に学習値更新量を加算し、その結果を新たな気筒別学習値とする。
【００７６】
また、補正量なまし値（絶対値）＜ＴＨＡであれば、ステップＳ２１８に進み、学習完了フラグをＯＮする。
【００７７】
最後に、ステップＳ２１９では、気筒別学習値、学習完了フラグをスタンバイＲＡＭに記憶する。このとき、気筒別学習値及び学習完了フラグは、複数に区分された運転領域毎に記憶される。その概要を図１３に表す。図１３では、エンジン運転領域を負荷レベル（例えば吸気管圧力ＰＭ）毎に領域０，領域１，領域２，領域３，領域４に区分しており、各領域０〜４毎に気筒別学習値及び学習完了ラグが記憶されることを表している。領域０は学習未完了、領域１〜４は学習完了の状態であり、領域１〜４の気筒別学習値をそれぞれＬＲＮ１，ＬＲＮ２，ＬＲＮ３，ＬＲＮ４としている。また、各領域０〜４の領域中心負荷、すなわち領域を代表する負荷を、それぞれＰＭ０，ＰＭ１，ＰＭ２，ＰＭ３，ＰＭ４としている。領域区分には、負荷以外にも、エンジン回転数、水温、吸入空気量、要求噴射量等を適宜用いることができる。
【００７８】
また、図１０は、前記図８のステップＳ２２０における気筒別学習値の反映処理を示すフローチャートである。図１０において、ステップＳ２２１では、その時のエンジン運転状態に基づいて学習反映値を算出する。このとき、学習反映値は、前記図１３のように運転領域毎に記憶保持された気筒別学習値を用い、それら領域間の気筒別学習値の線形補間により求められる。学習反映値の求め方を図１３を用いて説明する。
【００７９】
一例として、その時の負荷が「ＰＭａ」である場合、領域２，３の気筒別学習値ＬＲＮ２，ＬＲＮ３と、領域２，３の中心負荷であるＰＭ２，ＰＭ３とを用い、次の（４）式により学習反映値ＦＬＲＮを算出する。
【００８０】
【数４】
2005207405.tif 000006
なお、予め設定された領域外（学習非実行領域）では、領域境界部に相当する気筒別学習値を用いて学習反映値が算出されると良い。例えば、図１３において、領域０〜４が学習実行領域であり、その外側が学習非実行領域であれば、領域０，４の気筒別学習値を用いて学習非実行領域の学習反映値を算出する。これにより、例えば高回転・高負荷領域等の学習非実行領域であっても気筒別学習値の反映が可能となる。
【００８１】
ステップＳ２２２では、前記算出した学習反映値を最終の燃料噴射量ＴＡＵに反映させる。具体的には、基本噴射量ＴＰ、空燃比補正係数ＦＡＦ、気筒別補正量ＦＫ、学習反映値ＦＬＲＮ、その他の補正係数ＦＡＬＬを用い、燃料噴射量ＴＡＵを算出する（ＴＡＵ＝ＴＰ×ＦＡＦ×ＦＫ×ＦＬＲＮ×ＦＡＬＬ）。なおこのとき、ＦＡＦ補正と学習補正とが干渉しないように、空燃比補正係数ＦＡＦを学習反映値ＦＬＲＮ分だけ減補正すると良い。
【００８２】
図１４は、気筒別学習値が更新される過程を説明するためのタイムチャートである。図１４では、全４気筒のうち第１気筒の気筒別空燃比だけが明らかに他の気筒と相違しており、図面ではこれを「＃１」、他を「＃２〜＃４」としている。
【００８３】
図１４において、タイミングｔ２１以降、気筒別補正量が算出され、それに伴い気筒間の空燃比ばらつきに応じた気筒別補正量が図示の如く算出される。そして、タイミングｔ２２では、気筒間の空燃比ばらつきが解消され、気筒別空燃比がほぼ均一化される。
【００８４】
その後、タイミングｔ２３では、学習実行条件が成立し、それ以降気筒別学習値の算出及び更新処理が実施される。図中、タイミングｔ２３，ｔ２４，ｔ２５，ｔ２６が学習更新タイミングである。学習更新周期は、気筒別補正量の算出周期よりも長いため、急な気筒別学習値の更新による誤学習が抑制される。ｔ２３〜ｔ２６の各タイミングでは、その都度の各気筒の補正量なまし値の大きさに応じた分だけ気筒別学習値が更新される。そして、各気筒の補正量なまし値が所定値ＴＨＡ未満になると、学習完了とされ学習完了フラグがセットされる（図示は省略）。このとき、気筒別学習値が所定時間を隔てて更新されるため、気筒別学習値は気筒間ばらつきに逐次対応できないことも考えられるが、この気筒間ばらつきは現実には空燃比補正係数ＦＡＦ等により解消される。
【００８５】
以上第２の実施の形態によれば、気筒毎の気筒別補正量に応じて気筒別学習値（空燃比学習値）を適宜算出し、スタンバイＲＡＭ等に記憶保持する構成としたため、気筒別空燃比の推定値が得られない場合であっても、気筒別空燃比制御が可能となり、気筒間の空燃比ばらつきが解消できる。
【００８６】
気筒別学習値の１回当たりの更新幅（学習値更新量）がその都度の気筒別補正量に応じて可変設定されるため、気筒別補正量が大きい（すなわち気筒間における空燃比ばらつきが大きい）場合であっても、比較的短時間で学習を完了することができる。また、気筒間における空燃比ばらつきが解消され、気筒別補正量が小さくなる場合には、小刻みにすなわち慎重に気筒別学習値を更新することができるため、学習の精度を高めることができる。
【００８７】
（第３の実施の形態）
燃料タンク内で発生した蒸発燃料をキャニスタ（燃料吸着装置）に一旦吸着し、その後エンジン吸気系に放出（パージ）して燃焼室内で燃焼させるようにした蒸発燃料放出装置が従来より知られており、本装置を備えた制御システムでは、蒸発燃料の放出量（パージ量）に応じて燃料噴射弁（燃料噴射装置）による燃料噴射量を補正することが提案されている。しかしながら多気筒エンジンの場合、キャニスタから燃焼室までの吸気経路の形状や長さ等が異なることなどが原因で、各気筒に分配されるパージ量がばらつき、結果として空燃比Ｆ／Ｂ制御が不安定になるという問題がある。
【００８８】
因みに、特開２００１−１７３４８５号公報では、気筒間のパージ分配率を予め考慮してパージ分配補正係数を設定しておき、この補正係数を用いて気筒毎に噴射量を補正する構成としている。しかしながらかかる構成では、気筒間のパージ分配率を見込みで設定しているに過ぎない。すなわち、パージ分配補正係数等のパラメータは、基本的にシミュレーション又は実験により求められたデータを基に算出されるようになっていた。従って、エンジン機差や経年変化には対応できず、長期にわたりエミッションの悪化を防止したり、パージ分配の気筒間ばらつきに起因する運転性能悪化を防止したりすることができなかった。
【００８９】
そこで本実施の形態では、パージ実行時／パージ停止時の気筒別補正量（該気筒別補正量により算出される気筒別学習値を含む）に基づいて蒸発燃料の気筒別分配率を算出し、該気筒別分配率をパージ制御に反映する。そしてこれにより、エミッションの改善や運転性能悪化の防止を図ることとする。
【００９０】
ここで、蒸発燃料放出装置を備えたエンジンの構成を図１５に基づいて説明する。図１５では、前記図１の構成に対して蒸発燃料放出装置を付加した構成を図示している。
【００９１】
図１５において、燃料タンク５１には導管５２の一端が接続され、導管５２の他端にはキャニスタ５３が接続されている。キャニスタ５３には、燃料タンク５１内で発生した蒸発燃料を吸着するための例えば活性炭からなる吸着剤が多数収納されており、その一部に外気を導入するための大気導入孔５４が設けられている。また、キャニスタ５３は、パージ配管５５を通じて吸気管１５のサージタンクに接続されており、パージ配管５５の途中には電磁駆動式のパージ制御弁５６が設けられている。パージ制御弁５６が開放されることによりパージ配管５５に吸気負圧が作用し、その際、大気導入孔５４を通じてキャニスタ５３に外気が導入されることで、キャニスタ５３内の吸着剤から吸着燃料が離脱して吸気管１５（サージタンク）に放出される。
【００９２】
エンジンＥＣＵ６０には、Ａ／Ｆセンサ１３の検出信号をはじめ、その他図示しない各種のセンサ検出信号が入力される。エンジンＥＣＵ６０は、前記各実施の形態で説明したように、気筒別空燃比の推定、該気筒別空燃比を用いた空燃比Ｆ／Ｂ制御、気筒別学習値の算出を適時実施する。また、エンジン運転状態等に基づいてパージ制御弁５６をデューティ駆動し、蒸発燃料のパージ量を適正に制御する。
【００９３】
本実施の形態では、気筒別学習値の更新の際、それがパージ実行時の学習値であるか、パージ停止時の学習値であるかを判定し、パージ実行時／パージ停止時の各々について気筒別学習値を更新する。具体的には、エンジンＥＣＵ６０が前記図９に代えて図１６に示す気筒別学習値の更新処理を実行する。但し、図１６には前記図９と同じ処理も含まれており、重複する処理については詳細な説明を割愛する。
【００９４】
図１６において、ステップＳ３０１では、学習の実行条件が成立しているか否かを判別する（前記ステップＳ２１１と同様）。学習実行条件が成立している場合、ステップＳ３０２では今回学習を実施する学習領域を決定し、続くステップＳ３０３では、気筒毎に気筒別補正量のなまし値を算出する（前記ステップＳ２１２，Ｓ２１３と同様）。そして、ステップＳ３０４では、今回の処理が気筒別学習値の更新タイミングであるか否かを判別する（ステップＳ２１４と同様）。
【００９５】
気筒別学習値の更新タイミングの場合、ステップＳ３０５では、今現在、パージ実行中であるか否かを判別する。パージ実行中であれば、ステップＳ３０６〜Ｓ３０９においてパージ実行中気筒別学習値の更新処理を実行し、パージ停止中であれば、ステップＳ３１０〜Ｓ３１３においてパージ停止中気筒別学習値の更新処理を実行する。
【００９６】
すなわち、パージ実行中において、ステップＳ３０６では、補正量なまし値（絶対値）≧ＴＨＡであるか否かを判別し、ＹＥＳの場合にステップＳ３０７に進んで学習値更新量を算出する（前記ステップＳ２１５，Ｓ２１６と同じ）。続くステップＳ３０８では、パージ実行中気筒別学習値の前回値に学習値更新量を加算し、その結果を新たなパージ実行中気筒別学習値として更新する。また、補正量なまし値（絶対値）＜ＴＨＡであれば、ステップＳ３０９に進み、パージ実行中学習完了フラグをＯＮする。
【００９７】
一方、パージ停止中において、ステップＳ３１０では、補正量なまし値（絶対値）≧ＴＨＡであるか否かを判別し、ＹＥＳの場合にステップＳ３１１に進んで学習値更新量を算出する（前記ステップＳ２１５，Ｓ２１６と同じ）。続くステップＳ３１２では、パージ停止中気筒別学習値の前回値に学習値更新量を加算し、その結果を新たなパージ停止中気筒別学習値として更新する。また、補正量なまし値（絶対値）＜ＴＨＡであれば、ステップＳ３１３に進み、パージ停止中学習完了フラグをＯＮする。
【００９８】
最後に、ステップＳ３１４では、パージ実行中／パージ停止中の各気筒別学習値、各学習完了フラグをスタンバイＲＡＭに記憶する。このとき、各気筒別学習値及び各学習完了フラグは、複数に区分されたエンジン運転領域毎に記憶される。又は、各気筒別学習値及び各学習完了フラグを、その都度のパージ条件（パージ量やパージ濃度等）に応じて区分した領域毎に記憶するようにしても良い。
【００９９】
次に、蒸発燃料を放出するためのパージ制御手順について説明する。図１７は、パージ率の算出処理を示すフローチャートであり、本処理は所定の時間周期（例えば４ｍｓ周期）でエンジンＥＣＵ６０のベースルーチンで実行される。
【０１００】
図１７において、先ずステップＳ４０１では、今現在、空燃比Ｆ／Ｂ制御の実行中であるか否かを判別する。このとき、例えばエンジン始動時でないこと、Ａ／Ｆセンサ１３が活性化していること、燃料カット中でないこと等を条件に空燃比Ｆ／Ｂ制御が実行されていれば、ステップＳ４０１が肯定判別される。続くステップＳ４０２では、エンジン水温が所定温度（例えば５０℃）以上であるか否かを判別する。ステップＳ４０１，Ｓ４０２が共にＹＥＳの場合、ステップＳ４０３に進み、パージ実行フラグＸＰＧＲに１をセットする。
【０１０１】
その後、ステップＳ４０４では、パージ率ＰＧＲの算出処理を実施する。このとき、空燃比補正係数に基づいてパージ率ＰＧＲを算出すると良く、例えば空燃比補正係数が基準値（１．０）に対してどの程度離れているかに応じてパージ率ＰＧＲを増減させる。より具体的には、空燃比補正係数の基準値を中心に、当該基準値を含む第１領域と、この第１領域から順に離れる第２領域と第３領域とを設けておき、空燃比補正係数が第１領域にあればパージ率ＰＧＲを所定値だけ増加させ、第２領域にあればパージ率ＰＧＲをそのまま保持し、第３領域にあればパージ率ＰＧＲを所定値だけ減少させる。つまり、空燃比補正係数が基準値付近で安定していれば、パージ率ＰＧＲが増加され、空燃比補正係数が基準値から大きく離れると、逆にパージ率ＰＧＲが減少される。
【０１０２】
その後、ステップＳ４０５では、パージ率ＰＧＲの上下限チェックを実施する。このとき、例えばＰＧＲ上限値は、パージ実行時間が長いほど大きくする（但し、例えば最大５分とする）。或いは、エンジン水温等によりＰＧＲ上限値を設定しても良い。
【０１０３】
また、ステップＳ４０１，Ｓ４０２の何れかがＮＯの場合、ステップＳ４０６でパージ実行フラグＸＰＧＲを０にリセットすると共に、ステップＳ４０７でパージ率ＰＧＲを０とする。
【０１０４】
また、図１８は、パージ制御弁駆動処理を示すフローチャートであり、本処理はエンジンＥＣＵ６０において例えば１００ｍｓ毎の時間割込みにより実行される。
【０１０５】
図１８において、先ずステップＳ５０１では、パージ実行フラグＸＰＧＲが１であるか否かを判別し、続くステップＳ５０２では今現在、燃料カット中であるか否かを判別する。ＸＰＧＲ＝０又は燃料カット中である場合、ステップＳ５０３に進み、パージ制御弁５６の駆動デューティＤｕｔｙを０とする。
【０１０６】
また、ＸＰＧＲ＝１で且つ燃料カット中でない場合、ステップＳ５０４に進み、その都度のパージ率ＰＧＲに基づいてパージ制御弁５６の駆動デューティＤｕｔｙを算出する。このとき、パージ制御弁５６の駆動周期を１００ｍｓとして次式によりＤｕｔｙを算出する。
【０１０７】
Ｄｕｔｙ＝（ＰＧＲ／ＰＧＲｆｏ）×（１００ｍｓ−Ｐｖ）×Ｐｐａ＋Ｐｖ
上式において、ＰＧＲｆｏはパージ制御弁５６の全開時における各運転状態でのパージ率、Ｐｖはバッテリ電圧の変動に対する電圧補正値、Ｐｐａは大気圧の変動に対する大気圧補正値である。
【０１０８】
その後、ステップＳ５０５では、パージ制御弁５６の駆動デューティＤｕｔｙを補正するためのＤｕｔｙ補正処理を実行する。ステップＳ５０６では、Ｄｕｔｙ出力を行い、当該Ｄｕｔｙによりパージ制御弁５６を駆動する。図１９には、前記ステップＳ５０５のＤｕｔｙ補正処理を示しており、以下その内容を説明する。
【０１０９】
図１９において、ステップＳ６０１では、Ｄｕｔｙ補正の実行条件が成立しているか否かを判別する。このとき、前記図１６の処理にて既にパージ実行中気筒別学習値とパージ停止中気筒別学習値とが各々算出され、学習完了していれば補正条件成立とする。条件成立の場合、後続のステップＳ６０２に進み、条件不成立の場合、そのまま本処理を終了する。
【０１１０】
ステップＳ６０２では、キャニスタ５３から吸気管１５に放出される蒸発燃料の気筒別分配率を算出する。このとき、気筒毎の気筒別補正量、パージ実行中気筒別学習値及びパージ停止中気筒別学習値に基づいて気筒毎に分配率を算出することとしており、具体的には次の手法を用いる。例えば第１気筒においてその時々の気筒別補正量をＡ１、パージ実行中気筒別学習値をＢ１、パージ停止中気筒別学習値をＣ１とした場合、次式により第１気筒補正量偏差を算出する。
【０１１１】
第１気筒補正量偏差＝Ｃ１−（Ａ１＋Ｂ１）
上式によれば、パージ停止中の補正量（Ｃ１）とパージ実行中の補正量（Ａ１＋Ｂ１）との差から補正量偏差が算出される。また、第２〜第４気筒についても同様に、第２〜第４気筒補正量偏差を算出する。そして、次式により第１気筒分配率を算出する。
【０１１２】
第１気筒分配率＝第１気筒補正量偏差／Σ全気筒の補正量偏差
第２〜第４気筒についても同様に、第２〜第４気筒分配率を算出する。要するに、パージ停止時と比較してパージ実行時には実際に各気筒に分配された燃料分だけ補正量が変動し、パージ停止時と差が生じる（例えば第１気筒補正量偏差に相当）。従って、各気筒の補正量偏差を用いることで、エンジン機差や経時変化等に関係なく気筒別分配率が算出できる。
【０１１３】
そして気筒別分配率の算出後、ステップＳ６０３では、第１〜第４気筒分配率のうち最大のものと最小のものとの差（ＭＡＸ−ＭＩＮ）が所定値α以上であるか否かを判別する。所定値α以上の場合、ステップＳ６０４に進み、駆動デューティＤｕｔｙを所定ガード値でガードする。つまり、第１〜第４気筒分配率のばらつきが過剰に大きいと、気筒毎の発生トルクが変動するという不都合が生じるため、Ｄｕｔｙガードを実施する（Ｄｕｔｙ＝０とすることも可能である）。このとき、エンジン負荷が低いほど、パージ燃料に起因するトルク変動が生じやすいため、低負荷域ほど所定値αを小さくすると良い。
【０１１４】
また、ステップＳ６０５では、第１〜第４気筒分配率のうち最大のものと最小のものとの差（ＭＡＸ−ＭＩＮ）が所定値β以上であるか否かを判別する（なお、β＜αである）。所定値β以上の場合、ステップＳ６０６に進み、デューティ補正量ＫＤを算出する。このとき、デューティ補正量ＫＤの前回値から所定値ΔＤを減算し、その結果をデューティ補正量ＫＤの今回値とする（ＫＤ＝ＫＤ前回値−ΔＤ）。
【０１１５】
最後に、ステップＳ６０７では、前記図１８のステップＳ５０４で算出した駆動デューティＤｕｔｙにデューティ補正量ＫＤを加算することでＤｕｔｙ補正を実施する。このとき、例えば前記ステップＳ６０６においてデューティ補正量ＫＤが前回値よりも減少していれば、駆動デューティＤｕｔｙが前回値に対して減じられる。また、デューティ補正量ＫＤがマイナス値となっていれば、駆動デューティＤｕｔｙが基本Ｄｕｔｙ（前記ステップＳ５０４の算出値）に対して減補正される。なお、前記図１９においてステップＳ６０３，Ｓ６０４の処理を省略することも可能である。
【０１１６】
燃料噴射量制御に際しては、エンジン運転状態等により算出した基本燃料噴射量に対してパージ量に応じたパージ補正が行われる。但し、その詳細は従来より多々知られており、ここでは省略する。
【０１１７】
以上第３の実施の形態によれば、パージ実行時／パージ停止時の気筒別学習値に基づいてパージ燃料の気筒別分配率を算出し、該気筒別分配率の最大値と最小値との差が所定値β以上である場合にパージ制御弁５６の駆動デューティＤｕｔｙを減少側に補正して燃料パージ量を減らすようにした（前回値に対して減補正する場合と、基本Ｄｕｔｙに対して減補正する場合とを含む）。また、分配率の最大値と最小値との差が所定値α以上である場合に駆動デューティＤｕｔｙにガードをかけ、燃料パージ量を制限するようにした。従って、気筒間のパージ燃料の分配が不均一となりそれが原因で発生トルクの変動や、それに伴う運転性能悪化が生じるといった不都合が抑制できるようになる。また、空燃比Ｆ／Ｂ制御の安定化を図り、エミッションの改善を実現することも可能となる。
【０１１８】
なお、本発明は上記実施の形態の記載内容に限定されず、例えば次のように実施しても良い。
【０１１９】
空燃比Ｆ／Ｂ制御において、気筒別空燃比（推定値）に基づいて気筒間の空燃比ばらつき量としての気筒別空燃比偏差（例えば気筒別空燃比から全気筒平均値を減算した値）を算出し、該算出した気筒別空燃比偏差に応じて空燃比Ｆ／Ｂ制御におけるＦ／Ｂゲインを可変設定する。例えば、気筒別空燃比偏差が所定値以上の場合に、Ｆ／Ｂゲインを減補正する。要するに、通常の空燃比Ｆ／Ｂ制御では気筒間の空燃比ばらつきが無い状態で最適にマッチングがとられており、気筒間の空燃比ばらつきによってモデル化誤差や外乱が大きくなり安定性が悪化するおそれがある。これに対し本構成によれば、気筒間の空燃比ばらつきを考慮した空燃比Ｆ／Ｂ制御が実現でき、制御の安定性が確保できる。
【０１２０】
気筒別学習値のバックアップ用メモリへの書き込みは、イグニッションＯＦＦ時のメインリレー制御時にまとめて実施しても良い。すなわち、イグニッションＯＦＦ時には、メインリレー制御として、当該ＯＦＦ後もＥＣＵへの電源供給が一定時間継続され、所定の制御が実行された後、同ＥＣＵの出力信号にてメインリレーがＯＦＦされて電源供給が遮断されるが、かかるメインリレー制御にて、バックアップ用メモリ内の気筒別学習値を更新する。
【０１２１】
上記実施の形態では、気筒別空燃比の推定値に基づいて燃料噴射量を制御したが、これに代えて吸入空気量を制御するようにしても良い。何れにしても空燃比が精度良くＦ／Ｂ制御されるものであれば良い。
【０１２２】
複数の気筒ずつで排気通路が集合される構成とした多気筒内燃機関であれば、任意の型式のエンジンに本発明が適用できる。例えば、６気筒エンジンにおいて３気筒ずつ二つに分けて排気系が構成される場合、各排気系の集合部に空燃比センサがそれぞれ配設されるとともに、各排気系でそれぞれ上記の通り気筒別空燃比が算出されると良い。
【０１２３】
上記第３の実施の形態において、図２０に示すように、分配率の最大値と最小値との差（ＭＡＸ−ＭＩＮ）が大きいほど大きくなるようにデューティ補正量を算出し、基本Ｄｕｔｙ（前記図１８、ステップＳ５０４の算出値）から前記デューティ補正量を減算してその結果を最終的な駆動デューティＤｕｔｙとするようにしても良い。分配率の最大値と最小値との差（ＭＡＸ−ＭＩＮ）は、同分配率の気筒間のばらつき度合いである。
【０１２４】
上記第３の実施の形態において、気筒別学習値を算出しない構成とし、その上でパージ実行時／パージ停止時の気筒別補正量に基づいて気筒別分配率を算出するようにしても良い。この場合、気筒毎に「補正量偏差＝パージ停止中補正量−パージ実行中補正量」を算出し、その補正量偏差に基づいて気筒別分配率を算出する。
【０１２５】
上記第３の実施の形態では、パージ実行時／パージ停止時の各気筒別学習値をバックアップ用メモリに記憶する構成としたが、これに代えて又は加えて気筒別分配率をバックアップ用メモリに記憶するようにしても良い。
【図面の簡単な説明】
【０１２６】
【図１】発明の実施の形態におけるエンジン制御システムの概略を示す構成図である。
【図２】気筒別空燃比制御部の構成を示すブロック図である。
【図３】クランク角同期ルーチンを示すフローチャートである。
【図４】実行条件判定処理を示すフローチャートである。
【図５】気筒別空燃比制御処理を示すフローチャートである。
【図６】Ａ／Ｆセンサ値とクランク角との関係を示すタイムチャートである。
【図７】気筒毎の空燃比挙動を示すタイムチャートである。
【図８】第２の実施の形態における気筒別空燃比制御処理を示すフローチャートである。
【図９】気筒別学習値の更新処理を示すフローチャートである。
【図１０】気筒別学習値の反映処理を示すフローチャートである。
【図１１】空燃比安定条件の判断基準を説明するためのタイムチャートである。
【図１２】補正量なまし値と学習値更新量との関係を示す図である。
【図１３】気筒別学習値及び学習完了フラグの記憶形態を説明するための図である。
【図１４】気筒別学習値が更新される過程を説明するためのタイムチャートである。
【図１５】第３の実施の形態において蒸発燃料放出装置を付加したエンジンの周辺構成を示す図である。
【図１６】気筒別学習値の更新処理を示すフローチャートである。
【図１７】パージ率算出処理を示すフローチャートである。
【図１８】パージ制御弁駆動処理を示すフローチャートである。
【図１９】Ｄｕｔｙ補正処理を示すフローチャートである。
【図２０】分配率の差（ＭＡＸ−ＭＩＮ）とデューティ補正量との関係を示す図である。
【符号の説明】
【０１２７】
１０…エンジン、１２…排気マニホールド、１２ａ…分岐部、１２ｂ…排気集合部、１３…Ａ／Ｆセンサ、２２…空燃比Ｆ／Ｂ制御部、２４…気筒別空燃比推定部、２５…基準空燃比算出部、２７…気筒別空燃比制御部、５３…キャニスタ、５６…パージ制御弁、６０…エンジンＥＣＵ。
【図１】
2005207405.tif 000007
【図２】
2005207405.tif 000008
【図３】
2005207405.tif 000009
【図４】
2005207405.tif 000010
【図５】
2005207405.tif 000011
【図６】
2005207405.tif 000012
【図７】
2005207405.tif 000013
【図８】
2005207405.tif 000014
【図９】
2005207405.tif 000015
【図１０】
2005207405.tif 000016
【図１１】
2005207405.tif 000017
【図１２】
2005207405.tif 000018
【図１３】
2005207405.tif 000019
【図１４】
2005207405.tif 000020
【図１５】
2005207405.tif 000021
【図１６】
2005207405.tif 000022
【図１７】
2005207405.tif 000023
【図１８】
2005207405.tif 000024
【図１９】
2005207405.tif 000025
【図２０】
2005207405.tif 000026