(57)【特許請求の範囲】
【請求項１】
第１気筒群と、
第２気筒群と、
各気筒群の排気通路に配設された三元触媒と、
第１気筒群の三元触媒に流れる排気の空燃比を検出する第１空燃比検出手段と、
第２気筒群の三元触媒に流れる排気の空燃比を検出する第２空燃比検出手段と、
前記第１空燃比検出手段の出力に基づいて第１空燃比フィードバック補正係数を演算する手段と、
この演算した第１空燃比フィードバック補正係数を用いて第１気筒群の空燃比をフィードバック制御する手段と、
前記第２空燃比検出手段の出力に基づいて第２空燃比フィードバック補正係数を演算する手段と、
前記２つの気筒群の空燃比変動の位相を同期させる要求のある条件であるかどうかを判定する手段と、
この判定結果より２つの気筒群の空燃比変動の位相を同期させる要求のある条件で前記第２空燃比検出手段の出力に基づいて第２気筒群の空燃比変動のリッチ時間とリーン時間を計測する手段と、
同じく２つの気筒群の空燃比変動の位相を同期させる要求のある条件でこの計測した第２気筒群の空燃比変動のリッチ時間とリーン時間の比率がその目標値と一致するように補正値を演算する手段と、
この補正値で前記第１空燃比フィードバック補正係数を補正した値を、前記２つの気筒群の空燃比変動の位相を同期させる要求のある条件での第２空燃比フィードバック補正係数として演算する手段と、
前記判定結果より２つの気筒群の空燃比変動の位相を同期させる要求のある条件でこの演算した第２空燃比フィードバック補正係数を用いて、また２つの気筒群の空燃比変動の位相を同期させる要求のない条件で前記第２空燃比検出手段の出力に基づいて得られる第２空燃比フィードバック補正係数を用いて第２気筒群の空燃比をフィードバック制御する手段と
を備えることを特徴とするエンジンの空燃比制御装置。
【請求項２】
前記第１空燃比検出手段の出力に基づいて第１気筒群の空燃比変動のリッチ時間とリーン時間を計測する手段を備え、この計測した第１気筒群の空燃比変動のリッチ時間とリーン時間の比率を前記目標値として設定することを特徴とする請求項１に記載のエンジンの空燃比制御装置。
【請求項３】
前記第１空燃比検出手段の出力に基づいて第１気筒群の空燃比変動のリッチ時間とリーン時間を計測する手段を備え、この計測した第１気筒群の空燃比のリッチ時間とリーン時間の比率に正または負のオフセット値を加算した値を前記目標値として設定することを特徴とする請求項１に記載のエンジンの空燃比制御装置。
【請求項４】
前記第１空燃比フィードバック補正係数に正または負の補正値を加算した値を、前記２つの気筒群の空燃比変動の位相を同期させる要求のある条件での第２空燃比フィードバック補正係数として演算する場合に、前記計測した第２気筒群の空燃比変動のリッチ時間とリーン時間の比率とその目標値との差が小さくなるように前記補正値を演算することを特徴とする請求項１に記載のエンジンの空燃比制御装置。
【請求項５】
前記第１空燃比フィードバック補正係数に正の補正値を加算する場合に、前記第１空燃比検出手段がリーン空燃比を検出している間に限って補正値の付加を行い、前記第１空燃比フィードバック補正係数に負の補正値を加算する場合に、前記第１空燃比検出手段がリッチ空燃比を検出している間に限って補正値の付加を行うことを特徴とする請求項４に記載のエンジンの空燃比制御装置。
【請求項６】
前記第１空燃比フィードバック補正係数の反転時にディレイ時間をもって前記第１空燃比フィードバック補正係数に追随する値で前記２つの気筒群の空燃比変動の位相を同期させる要求のある条件での第２空燃比フィードバック補正係数を構成する場合に、前記計測した第２気筒群の空燃比変動のリッチ時間とリーン時間の比率とその目標値との差が小さくなるように前記ディレイ時間を演算することを特徴とする請求項１に記載のエンジンの空燃比制御装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明はエンジンの空燃比制御装置に関する。
【０００２】
【従来の技術】
三元触媒が劣化していないときは、触媒の酸素ストレージ機能のため触媒下流側Ｏ2センサ出力の反転周期が長いのに対して、触媒が劣化してくると、触媒下流側Ｏ2センサ出力の反転周期が短くなってくる（触媒上流側Ｏ2センサ出力の反転周期に近づいていく）ので、触媒下流側Ｏ2センサ出力の反転周期と触媒上流側Ｏ2センサ出力の反転周期の比に基づけば三元触媒の劣化診断を行うことができる。
【０００３】
しかしながら、エンジンを２つの気筒群に分けて、各気筒群毎の排気通路に三元触媒を配設するとともに、各三元触媒の上流側に排気の空燃比を検出するＯ2センサを備え、それぞれのＯ2センサ出力に基づいて各気筒群の空燃比を独立にフィドバックする制御するエンジンで前述のような三元触媒の劣化診断を行うには、下流側Ｏ2センサをそれぞれの三元触媒毎に配設する必要が生じ、コストアップを招く。
【０００４】
そこで、下流側のＯ2センサを気筒群毎の排気通路が合流した後の排気通路に１つだけ配設することが考えられるが、この場合、各気筒群の空燃比のリッチ、リーンの変動の位相が一致しているときしか正確な診断が行えないという問題が生じる。これは、各気筒群の空燃比のリッチ、リーンの変動の位相が一致していないと、たとえば、位相が全く反対になっていると、一方の気筒のリッチと他方の気筒のリーンが互いに打ち消しあってしまい、合流後の排気通路に配設したＯ2センサの出力が三元触媒の劣化の有無に拘わらずほとんど反転しなくなるからである。
【０００５】
そこで、三元触媒の劣化診断等のため２つの気筒群の空燃比変動の位相を同期させる必要が生じたときだけ、一方の気筒群の触媒上流側Ｏ2センサ出力に基づいて演算される空燃比フィードバック補正係数を２つの気筒群に共通の値として用いて、両方の気筒群の空燃比を制御するものがある（特公平８−６６２４号公報参照）。
【０００６】
【発明が解決しようとする課題】
しかしながら、従来装置のように、２つの気筒群の空燃比のリッチ、リーン変動の位相が一致していない状態で、一方の気筒群（たとえば気筒群１）の触媒上流側Ｏ2センサ出力に基づいて両方の気筒群（気筒群１と気筒群２）の空燃比をフィードバック制御したのでは、気筒群２側の空燃比が基本的にノーコントロール状態となり、このため、２つの気筒群の触媒上流側Ｏ2センサ出力の位相を同期させる要求のある条件で気筒群２側の三元触媒による排気浄化効果が低下する可能性がある。言い換えると、従来装置は、三元触媒の劣化診断を優先する代わりに、その劣化診断中の気筒群２側の三元触媒による排気浄化効果を犠牲にするものとなっている。
【０００７】
この場合、触媒上流側Ｏ2センサ出力に基づく空燃比フィードバック補正係数を触媒下流側Ｏ2センサ出力で補正する、いわゆるダブルＯ2センサシステムを構成すれば、合流後の排気通路の空燃比を理論空燃比に維持することは可能である。合流後の排気通路にも三元触媒を配設するエンジンであれば、この三元触媒による排気浄化効果は良好な効果を確保することができる。ただし、合流する前の各気筒群毎の空燃比がともに理論空燃比になっているとは限らず、気筒群毎の三元触媒の排気浄化効率を良好に維持することが困難となる。たとえば、気筒群１のＯ2センサ出力に基づいて両気筒群の空燃比を制御したとき、気筒群１の空燃比は理論空燃比となり、気筒群２の空燃比はリッチ側へずれることが考えられるが、この場合、合流後の排気通路の空燃比はリッチ側にずれるので、ダブルＯ2センサシステムが働けば、両気筒群の空燃比はいずれもリーン方向に補正される。この結果、気筒群１の空燃比が若干リーン、気筒群２の空燃比が若干リッチとなり、合流後の排気通路の空燃比が理論空燃比となるところで制御が収束することになる。気筒群２の空燃比がリーン側へずれる場合も同様である。
【０００８】
また、このダブルＯ2センサシステムにおいて、触媒下流側Ｏ2センサ出力に基づく補正の速度は一般的に小さいので、前記合流後の排気通路の三元触媒の排気浄化効率が確保されるまでにある程度の時間が必要となり、この間の排気エミッションが悪化する可能性がある。
【０００９】
そこで本発明は、２つの気筒群の空燃比変動の位相を同期させつつ、各気筒群毎に配設した三元触媒の排気浄化効率を良好に維持することを目的とする。
【００１０】
【課題を解決するための手段】
第１の発明は、図１６に示すように、第１気筒群２１と、第２気筒群２２と、各気筒群２１、２２の排気通路に配設された三元触媒２３、２４と、第１気筒群２１の三元触媒２３に流れる排気の空燃比を検出する第１空燃比検出手段２５と、第２気筒群２２の三元触媒２４に流れる排気の空燃比を検出する第２空燃比検出手段２６と、前記第１空燃比検出手段２５の出力に基づいて第１空燃比フィードバック補正係数（図では「第１空燃比Ｆ／Ｂ補正係数」で略記）α１を演算する手段２７と、この演算した第１空燃比フィードバック補正係数α１を用いて第１気筒群２１の空燃比をフィードバック制御する手段２８と、前記第２空燃比検出手段２６の出力に基づいて第２空燃比フィードバック補正係数（図では「第２空燃比Ｆ／Ｂ補正係数」で略記）α２Ｄを演算する手段２９と、前記２つの気筒群の空燃比変動の位相を同期させる要求のある条件であるかどうかを判定する手段３０と、この判定結果より２つの気筒群の空燃比変動の位相を同期させる要求のある条件で前記第２空燃比検出手段２６の出力に基づいて第２気筒群２２の空燃比変動のリッチ時間Ｔｒ２とリーン時間Ｔｌ２を計測する手段３１と、同じく２つの気筒群の空燃比変動の位相を同期させる要求のある条件でこの計測した第２気筒群２２の空燃比変動のリッチ時間Ｔｒ２とリーン時間ＴＬ２の比率ＲＢＹＬ２がその目標値ｔＲＢＹＬ２と一致するように補正値（たとえばαＨＯＳ、ディレイ時間ＤＬＹ）を演算する手段３２と、この補正値で前記第１空燃比フィードバック補正係数α１を補正した値を、前記２つの気筒群の空燃比変動の位相を同期させる要求のある条件での第２空燃比フィードバック補正係数α２Ｓとして演算する手段３３と、前記判定結果より２つの気筒群の空燃比変動の位相を同期させる要求のある条件でこの演算した第２空燃比フィードバック補正係数α２Ｓを用いて、また２つの気筒群の空燃比変動の位相を同期させる要求のない条件で前記第２空燃比検出手段２６の出力に基づいて得られる第２空燃比フィードバック補正係数α２Ｄを用いて第２気筒群２２の空燃比をフィードバック制御する手段３４とを備える。
【００１１】
第２の発明では、第１の発明において前記第１空燃比検出手段２５の出力に基づいて第１気筒群２１の空燃比変動のリッチ時間Ｔｒ１とリーン時間Ｔｌ１を計測する手段を備え、この計測した第１気筒群の空燃比変動のリッチ時間Ｔｒ１とリーン時間ＴＬ１の比率ＲＢＹＬ１を前記目標値ｔＲＢＹＬ２として設定する。
【００１２】
第３の発明では、第１の発明において前記第１空燃比検出手段２５の出力に基づいて第１気筒群２１の空燃比変動のリッチ時間Ｔｒ１とリーン時間Ｔｌ１を計測する手段を備え、この計測した第１気筒群の空燃比のリッチ時間Ｔｒ１とリーン時間ＴＬ１の比率ＲＢＹＬ１に正または負のオフセット値ＯＦＳＴを加算した値を前記目標値ｔＲＢＹＬ２として設定する。
【００１３】
第４の発明では、第１の発明において前記第１空燃比フィードバック補正係数α１に正または負の補正値αＨＯＳを加算した値を、前記２つの気筒群の空燃比変動の位相を同期させる要求のある条件での第２空燃比フィードバック補正係数α２Ｓとして演算する場合に、前記計測した第２気筒群の空燃比変動のリッチ時間Ｔｒ２とリーン時間Ｔｌ２の比率とその目標値ｔＲＢＹＬ２との差が小さくなるように前記補正値αＨＯＳを演算する。
【００１４】
第５の発明では、第４の発明において前記第１空燃比フィードバック補正係数α１に正の補正値αＨＯＳを加算する場合に、前記第１空燃比検出手段２５がリーン空燃比を検出している間に限って補正値αＨＯＳの付加を行い、前記第１空燃比フィードバック補正係数α１に負の補正値αＨＯＳを加算する場合に、前記第１空燃比検出手段２５がリッチ空燃比を検出している間に限って補正値αＨＯＳの付加を行う。
【００１５】
第６の発明では、第１の発明において前記第１空燃比フィードバック補正係数α１の反転時にディレイ時間ＤＬＹをもって前記第１空燃比フィードバック補正係数α１に追随する値で前記２つの気筒群の空燃比変動の位相を同期させる要求のある条件での第２空燃比フィードバック補正係数α２Ｓを構成する場合に、前記計測した第２気筒群の空燃比変動のリッチ時間Ｔｒ２とリーン時間Ｔｌ２の比率ＲＢＹＬ２とその目標値との差が小さくなるように前記ディレイ時間ＤＬＹを演算する。
【００１６】
【発明の効果】
第１、第４、第５、第６の発明によれば、２つの気筒群の空燃比変動の位相を同期させる要求のある条件で、第２気筒群の空燃比変動のリッチ時間とリーン時間の実際の比率がその目標値と一致するように制御されるので、特に第２の発明では第１気筒群の空燃比変動のリッチ時間とリーン時間の比率を目標値とすることで、つまり第２気筒群の空燃比変動のリッチ時間とリーン時間の比率を第１気筒群の空燃比変動のリッチ時間とリーン時間の比率に合わせることで、２つの気筒群の空燃比変動の位相を同期させる要求のある条件においても、第２気筒群の空燃比を理論空燃比へと制御できる。
【００１７】
第３の発明によれば、２つの気筒群の間にリッチ時間とリーン時間の比率の特性差が多少ある場合にも、２つの気筒群の空燃比変動の位相を同期させる要求のある条件において第２気筒群の空燃比を理論空燃比へと制御できる。
【００１８】
【発明の実施の形態】
図１において、１は直列４気筒エンジンの本体、２は吸気通路で、各気筒毎に燃料噴射弁３を備える。この噴射弁３は燃料供給系（図示しない）からの加圧燃料を吸気ポートに供給するためものである。
【００１９】
エンジン本体１は２気筒ずつの２つのバンク（部分気筒群）に分割され、各バンク（＃２、＃３気筒を以下「バンク１」、＃１、＃４気筒を以下「バンク２」という）毎に独立に排気通路４、５が形成され、各排気通路４、５に三元触媒７、８が設けられる。また、２つの排気通路４、５は合流され、その合流部下流の排気通路６にも三元触媒９が設けられている。
【００２０】
三元触媒７、８、９は理論空燃比の運転時に最大の転換効率をもって排気中のＮＯｘの還元とＨＣ、ＣＯの酸化を行う。このため、各触媒７、８の上流側に設けたＯ2センサ１２、１３の出力が、エアフローメータ１５からの吸入空気量信号、クランク角センサ１６からの単位クランク角信号や気筒判別のための基準位置信号、水温センサ１７からの水温信号とともに、ＥＣＭ（エレクトロニックコントロールモジュール）１１に入力され、主にマイコンからなるＥＣＭ１１では、触媒７、８に流入する排気の空燃比が理論空燃比となるように、各バンク１、２毎に独立に空燃比のフィードバック制御を行う。
【００２１】
この各バンク毎の空燃比制御について、たとえばバンク１で具体的に述べると、１気筒について１燃焼サイクル（クランク角で７２０°）に必要となる基本噴射パルス幅Ｔｐ（この基本噴射パルス幅に対応する燃料量によりほぼ理論空燃比の混合気が得られる）をエンジンの回転数Ｎｅと吸入空気量Ｑａから、また触媒上流側Ｏ2センサ１２出力に基づいて空燃比フィードバック補正係数α１をそれぞれ演算し、この空燃比フィードバック補正係数α１で基本噴射パルス幅Ｔｐを補正して燃料噴射パルス幅Ｔｉ１を演算し、＃２、＃３気筒の所定の噴射タイミングでこの燃料噴射パルス幅Ｔｉ１のあいだ燃料噴射弁３を開くものである。
【００２２】
また、三元触媒７、８、９が劣化すると三元触媒の転換効率が落ちるので、ＥＣＭ１１では、三元触媒９の下流側に設けられたＯ2センサ１４と、触媒上流側Ｏ2センサ１２または１３の出力に基づいて三元触媒の劣化診断を行わなければならない。
【００２３】
この場合に、バンク１とバンク２の空燃比変動の位相を同期させる必要が生じる。
【００２４】
ＥＣＭ１１で実行されるこの制御の内容を、以下のフローチャートにしたがって説明する。
【００２５】
図２はバンク１の空燃比変動のリッチ／リーン比率ＲＢＹＬ１を演算するためのもので、一定時間毎（たとえば１０ｍｓ毎）に実行する。
【００２６】
ステップ１ではバンク１の触媒上流側Ｏ2センサ１２の出力ＯＳＦ１をＡ／Ｄ変換して取り込む。
【００２７】
ステップ２では空燃比のフィードバック条件（図では「Ｆ／Ｂ条件」で略記）が成立しているかどうかみる。空燃比のフィードバック条件は下記▲１▼、▲２▼の条件がともに成立しているときである。
【００２８】
▲１▼触媒上流側Ｏ2センサ１２、１３の活性がともに完了している。
【００２９】
▲２▼各種燃料増量補正係数ＣＯＥＦ＝１（エンジン始動直後の各種燃料増量制御
が終了している）。
【００３０】
▲１▼、▲２▼のいずれかが成立していないとき（空燃比フィードバック条件の非成立時）は、ステップ１８に進んで、タイマＴＩＭＥＲ１を初期値の０にリセットして今回の処理を終了する。このタイマＴＩＭＥＲ１は、空燃比フィードバック条件の成立時に空燃比がリーン側あるいはリッチ側にある時間を計測するためのものである。
【００３１】
▲１▼、▲２▼の条件がすべて成立しているとき（空燃比フィードバック条件の成立時）にはステップ３以降に進んで、バンク１のリッチ／リーン比率を演算する。なお、リッチ／リーン比率は、バンク１、２の空燃比変動の位相を同期させる要求のある条件（以下短く「位相同期要求のある条件」という）でだけ必要となるので、ステップ２で空燃比のフィードバック条件が成立しているかどうかみる代わりに、位相同期要求のある条件であるかどうかを判断してもよい。
【００３２】
ステップ３〜７では、触媒上流側Ｏ2センサ１２出力ＯＳＦ１とリーン側スライスレベルＳＬＬＦ、リッチ側スライスレベルＳＬＨＦ（ＳＬＨＦ＞ＳＬＬＦ、図９上段参照）を比較し、その比較結果に基づいてバンク１の三元触媒７に流入する排気の空燃比が理論空燃比よりリーン側であるかリッチ側であるかを判断し、フラグＦ１１をセットする。ここで、Ｆ１１＝０は理論空燃比よりリーン側の空燃比であることを、Ｆ１１＝１は理論空燃比よりリッチ側の空燃比であることを表す。
【００３３】
ステップ８ではフラグＦ１１が反転したか（つまりＦ１１の値が“０”から“１”に変化したかあるいは“１”から“０”に変化したか）どうかをみる。
【００３４】
Ｆ１１が反転していないときは、ステップ１７に進んでタイマＴＩＭＥＲ１をインクリメントする。このタイマＴＩＭＥＲ１によりリッチ側の空燃比を継続する時間やリーン側の空燃比を継続する時間が計測される。
【００３５】
Ｆ１１が反転したときだけステップ９に進み、Ｆ１１の値と０を比較し、Ｆ１１＝０であるときはステップ１０でタイマＴＩＭＥＲ１の値をリッチ時間Ｔｒ１に移す。ステップ１０に流れるのはフラグＦ１１が１”から“０”へ反転した直後（空燃比がリッチからリーンへ反転した直後）であり、このときのＴＩＭＥＲ１の値がリッチ空燃比の継続時間を表すためである。
【００３６】
これに対してステップ１２に流れるのはフラグＦ１１が０”から“１”へ反転した直後（空燃比がリーンからリッチへ反転した直後）であり、このときのＴＩＭＥＲ１の値がリーン空燃比の継続時間を表すため、ステップ１２でタイマＴＩＭＥＲ１の値をリーン時間Ｔｌ１に移す。
【００３７】
ステップ１１ではリッチ時間Ｔｒ１の加重平均値Ｔｒｉｃｈ１を、
【００３８】
【数１】
0003838318.tif 000002
の式で、同様にしてステップ１３ではリーン時間Ｔｌ１の加重平均値Ｔｌｅａｎ１を、
【００３９】
【数２】
0003838318.tif 000003
の式で算出する。ここで、「ｚ」は前回算出した値であることを示す添え字である。この添え字は他の記号についても適宜用いる。
【００４０】
このようにして算出したリッチ時間の加重平均値Ｔｒｉｃｈ１、リーン時間の加重平均値Ｔｌｅａｎ１からステップ１４でリッチ／リーン比率ＲＢＹＬ１を、
【００４１】
【数３】
ＲＢＹＬ１＝Ｔｒｉｃｈ１／Ｔｌｅａｎ１
の式により算出する。つまり、リッチ／リーン比率ＲＢＹＬ１の算出はリッチ時間あるいはリーン時間の計測を行うタイミング毎である。ただし、空燃比フィードバック条件の成立後初めてＦ１１が反転したタイミングではＴｒｉｃｈ１かＴｌｅａｎ１のいずれか一方しか算出されていないので、このタイミングではリッチ／リーン比率ＲＢＹＬ１の算出を行わないようにする。なお、加重平均値を採用するのは、リッチ時間、リーン時間の各値を安定させるためである。
【００４２】
ステップ１５、１６では、バンク１の空燃比変動のリッチ／リーン比率ＲＢＹＬ１を算出したことを示すフラグＦｃａｌ１＝１としたあと、次回のリッチ時間あるいはリーン時間の計測に備えてタイマＴＩＭＥＲ１を０にリセットする。
【００４３】
このようにして演算したバンク１の空燃比変動のリッチ／リーン比率ＲＢＹＬ１は、ＥＣＭ１１内のメモリにストアしておき、図４で後述する補正値αＨＯＳの演算で読み出して使用する。
【００４４】
図３はバンク２の空燃比変動のリッチ／リーン比率ＲＢＹＬ２を演算するためのもので、図２とは独立に一定時間毎（たとえば１０ｍｓ毎）に実行する。内容は図２で示したバンク１の空燃比変動のリッチ／リーン比率ＲＢＹＬ１の演算と同じであるので、説明は省略する。
【００４５】
図４は補正値αＨＯＳを演算するためのもので、１０ｍｓ毎に実行する。
【００４６】
ステップ４１では２つのフラグＦｃａｌ１、Ｆｃａｌ２をみて、Ｆｃａｌ１＝１かつＦｃａｌ２＝１（バンク１の空燃比変動のリッチ／リーン比率ＲＢＹＬ１およびバンク２の空燃比変動のリッチ／リーン比率ＲＢＹＬ２の演算が行われている）のときだけステップ４２に進んで、オフセット値ＯＦＳＴを設定し、このオフセット値ＯＦＳＴをステップ４３においてバンク１のリッチ／リーン比率ＲＢＹＬ１に加算した値をバンク２のリッチ／リーン比率目標値ｔＲＢＹＬ２として演算する。これは、位相同期要求のある条件でバンク１のリッチ／リーン比率から多少オフセットした比率（ＲＢＹＬ１＋ＯＦＳＴ）を目標値とし、この目標値にバンク２のリッチ／リーン比率ＲＢＹＬ２を収束させようとするものである。
【００４７】
たとえば、オフセット値ＯＦＳＴを正の値で与えれば、バンク２のリッチ／リーン比率目標値がバンク１のリッチ／リーン比率よりも大きい側にオフセットし、この逆にオフセット値ＯＦＳＴを負の値にすれば、バンク２のリッチ／リーン比率目標値がバンク１のリッチ／リーン比率よりも小さい側にオフセットする。なお、ＯＦＳＴ＝０のときはバンク２のリッチ／リーン比率目標値がバンク１のリッチ／リーン比率と同一になる。
【００４８】
バンク毎の独立の空燃比フィードバック制御により、バンク１とバンク２がともに理論空燃比に制御されているとき、バンク１のリッチ／リーン比率とバンク２のリッチ／リーン比率はほとんど同じになるのであるが、全く同じではないため、バンク２の比率をバンク１の比率に完全に一致させると、バンク２の空燃比が理論空燃比より若干ずれる。このずれを解消するための値がオフセット値ＯＦＳＴである。したがって、バンク２のリッチ／リーン比率の、バンク１のリッチ／リーン比率からのずれ（差分）が予めわかっている場合は、その差分を吸収するようなオフセット値ＯＦＳＴを予め設定しておけばよい（たとえばＥＣＭ１１内のＲＯＭに単一の固定値として記憶しておくか、エンジンの回転数と負荷で割り付けたマップに複数の値を記憶しておく）。また、バンク１のリッチ／リーン比率との差分を予め知ることができない場合は、２つのバンクの空燃比変動の位相を同期させる要求のない条件（以下単に「位相同期要求のない条件」で略記する）でバンク２の空燃比を独立にフィードバック制御しているときに、バンク１のリッチ／リーン比率との差分をエンジンの回転数と負荷に対応させて学習記憶しておき、この学習値をオフセット値ＯＦＳＴとして使用する。なお、バンク間の特性差が無視できるほど微小であるエンジンでは、オフセット値を導入する必要はない。
【００４９】
ステップ４４ではバンク２のリッチ／リーン比率目標値ｔＲＢＹＬ２と実際値であるバンク２のリッチ／リーン比率ＲＢＹＬ２の差の絶対値と所定値ｅを比較する。差の絶対値｜ｔＲＢＹＬ２−ＲＢＹＬ２｜が所定値ｅ以下であるときは制御を安定させるため、ステップ４８に進んでαＨＯＳを前回値に維持する（あらたなαＨＯＳの算出を行わない）。
【００５０】
差の絶対値｜ｔＲＢＹＬ２−ＲＢＹＬ２｜が所定値ｅを超えているときは、ステップ４５で目標値ｔＲＢＹＬ２と実際値ＲＢＹＬ２を比較し、実際値であるＲＢＹＬ２が目標値ｔＲＢＹＬ２と一致するようにαＨＯＳを更新する（たとえば、ｔＲＢＹＬ２＜ＲＢＹＬ２であるときはバンク２の空燃比がリッチ側にずれているので、これをリーン方向へ補正するために一定量ΔαＨＯＳだけαＨＯＳを小さくし、この逆にｔＲＢＹＬ２≧ＲＢＹＬ２であるときはリッチ方向に補正するために一定量ΔαＨＯＳだけαＨＯＳを大きくする）。
【００５１】
ステップ４９では次回のαＨＯＳの演算に備えるため、フラグＦｃａｌ１＝０かつフラグＦｃａｌ２＝０とする。
【００５２】
このようにして演算した補正値αＨＯＳはＥＣＭ１１内のメモリにストアしておき、図７で後述する位相同期要求のある条件でのバンク２の空燃比フィードバック補正係数α２Ｓの演算で読み出して使用する。
【００５３】
図５はバンク１の触媒上流側Ｏ2センサ１２出力に基づいてバンク１の空燃比フィードバック補正係数α１を演算するためのもので、一定時間毎（たとえば１０ｍｓ毎）に実行する。
【００５４】
ステップ５１ではバンク１の触媒上流側Ｏ2センサ１２出力ＯＳＦ１をＡ／Ｄ変換して取り込む。
【００５５】
ステップ５２では図２のステップ２と同じに空燃比フィードバック条件が成立しているかどうかみる。空燃比フィードバック条件の成立時はステップ５３〜５７で触媒上流側Ｏ2センサ１２出力ＯＳＦ１とリーン側スライスレベルＳＬＬＦ、リッチ側スライスレベルＳＬＨＦを比較し、その比較結果を表すフラグＦ１１の値に基づき、ステップ５８〜６４で従来と同様に擬似的なＰＩ動作を行ってバンク１の空燃比フィードバック補正係数α１を算出する（図９の中段参照）。
【００５６】
一方、空燃比フィードバック条件の非成立時はステップ５２よりステップ６５に進み、α１＝１（クランプ）とする。
【００５７】
このようにして演算したバンク１の空燃比フィードバック補正係数α１はＥＣＭ１１内のメモリにストアしておき、図示しないバンク１の燃料噴射パルス幅の演算で読み出して使用する。バンク１の燃料噴射弁に与える燃料噴射パルス幅Ｔｉ１の演算式は次の通りである。
【００５８】
【数４】
0003838318.tif 000004
図６はバンク２の空燃比フィードバック補正係数α２を演算するためのもので、一定時間毎（たとえば１０ｍｓ毎）に実行する。
【００５９】
ステップ７１では、バンク２の触媒上流側Ｏ2センサ１３出力ＯＳＦ２をＡ／Ｄ変換して取り込む。
【００６０】
ステップ７２では図３のステップ２２と同じに空燃比フィードバック条件が成立しているかどうかみる。空燃比フィードバック条件の非成立時はステップ７８に進んでα２＝１（α２のクランプ）として今回の処理を終了する。
【００６１】
空燃比フィードバック条件の成立時はステップ７３に進み、位相同期要求のある条件であるかどうかみる。具体的には、三元触媒の劣化診断を行う条件が成立しているときに位相同期要求のある条件であると判断し、ステップ７４で位相同期要求のある条件でのバンク２の空燃比フィードバック補正係数α２Ｓを演算する。このα２Ｓの演算は、図７（図６のステップ７４のサブルーチン）のようにバンク１の空燃比フィードバック補正係数α１に補正値αＨＯＳを加算することである（ステップ７９）。そして、このα２Ｓの値を図６のステップ７５でバンク２の空燃比フィードバック補正係数α２に入れ直す。
【００６２】
ここで、補正値αＨＯＳは、正だけでなく負の値も採るため、このようにして演算されるα２Ｓをバンク２に適用したときのバンク２のリッチ／リーン比率は、α１をそのままバンク２に適用した場合の比率よりも、αＨＯＳが正の値のとき大きく（リッチ方向へ補正）なり、これに対してαＨＯＳが負の値のとき小さく（リーン方向へ補正）なる。
【００６３】
なお、α２Ｓの演算を行った後に上下リミッタとの比較を行い、α２Ｓの値を上下リミッタ間に制限するとよい。これによって、制御系異常時のエンスト等を回避することができる。
【００６４】
一方、図６において位相同期要求のない条件ではステップ７３よりステップ７６に進み、位相同期要求のない条件でのバンク２の空燃比フィードバック補正係数α２Ｄを演算し、このα２Ｄの値をステップ７７でα２に入れ直す。
【００６５】
このα２Ｄの演算について図８（図６のステップ７６のサブルーチン）により説明すると、この演算内容はα１と同じである。すなわち、図８のステップ８１〜９２は図５のステップ５３〜６４と同様であり、従来と同じに擬似的なＰＩ動作を行って位相同期要求のない条件でのバンク２の空燃比フィードバック補正係数α２Ｄを算出する。
【００６６】
このようにして演算したバンク２の空燃比フィードバック補正係数α２はＥＣＭ１１内のメモリにストアしておき、図示しないバンク２の燃料噴射パルス幅Ｔｉ２の演算で読み出して使用する。バンク２の燃料噴射弁に与える燃料噴射パルス幅Ｔｉ２の演算式は次の通りである。
【００６７】
【数５】
0003838318.tif 000005
ここで、本実施形態の作用を図９、図１０を参照しながら説明する。
【００６８】
図９は位相同期制御開始直後の各バンクの触媒上流側Ｏ2センサ出力ＯＳＦ１、ＯＳＦ２をモデル的に示したものである。バンク１は、バンク１の触媒上流側Ｏ2センサ１２の出力に基づく空燃比フィードバック制御が行われており、空燃比は理論空燃比に制御されている。すなわち、このエンジンでは、現在の運転条件下において、リッチ時間よりもリーン時間が若干長い状態で空燃比が理論空燃比になることを示している。これに対し、位相同期制御開始直後はαＨＯＳの算出がまだ行われていない（αＨＯＳ＝０）ので、α２Ｓ＝α１となっており、このためバンク２ではリーン時間Ｔｌ２よりもリッチ時間Ｔｒ２が若干長くなっている。すなわち、この状態では、バンク２の空燃比が理論空燃比よりもリッチ側にずれていることになる。なお、α２Ｓ＝α１のときにバンク２の空燃比がリッチ側にずれるかリーン側にずれるかはそのエンジン、運転条件等によって様々であり、図９は１つの例を示しているだけである。
【００６９】
図９の状態は、ｔＲＢＹＬ２（＝ＲＢＹＬ１＋ＯＦＳＴ）＜ＲＢＹＬ２となっている状態であるから、αＨＯＳはΔαＨＯＳずつ小さく（負の値が大きく）され、α２Ｓはα１よりもαＨＯＳ分だけ小さい値になる。このような制御の結果、α２Ｓが図１０中段に示すように補正され、バンク２のリッチ／リーン比率ＲＢＹＬ２がバンク１のリッチ／リーン比率ＲＢＹＬ１と一致（ただし、ＯＦＳＴ分だけの差はある）するようになる。この状態では、バンク２の空燃比もほぼ理論空燃比となる。
【００７０】
このように、本実施形態の位相同期制御によれば、バンク２の空燃比変動の位相をバンク１の空燃比変動の位相とほぼ一致させたままバンク２の空燃比をほぼ理論空燃比に制御することが可能となる。
【００７１】
なお、位相同期要求のある条件でバンク１のα１をそのままα２に適用するだけの従来技術では、位相同期制御中は常に図９のような状態（バンク２の空燃比が理論空燃比よりもリッチ側あるいはリーン側にずれた状態）になり、バンク２の触媒８を効率よく働かせることができない。
【００７２】
図１１のフローチャートは、第２実施形態で第１実施形態の図７と置き換わるものである。
【００７３】
第１実施形態では、補正値αＨＯＳによりバンク１の空燃比フィードバック補正係数α１を全体的に増大側あるいは減少側にシフトさせた値を、位相同期要求のある条件でのバンク２の空燃比フィードバック補正係数α２Ｓとして演算したのに対して、第２実施形態は、α１を部分的に増大側あるいは減少側にシフトさせた値をα２Ｓとして求めるようにしたものである。
【００７４】
具体的には、増大側にシフトしたα２Ｓを算出する場合（αＨＯＳ≧０）、α１をリッチ化しているとき（バンク１の触媒上流側Ｏ2センサ１２がリーンを示しているとき）だけステップ１０１、１０２よりステップ１０３に進んでαＨＯＳの付加を行い、減少側にシフトしたα２Ｓを算出する場合（αＨＯＳ＜０）、α１をリーン化しているとき（バンク１の触媒上流側Ｏ2センサ１２がリッチを示しているとき）だけステップ１０１、１０５よりステップ１０６に進んでαＨＯＳの付加を行う。
【００７５】
第１実施形態と同じ条件での第２実施形態の作用を図１２（図１０に対応する）に示すと、第２実施形態の補正値αＨＯＳは第１実施形態の補正値αＨＯＳのほぼ倍になっている。つまり第２実施形態ではαＨＯＳが第１実施形態のαＨＯＳの倍の値となったところでバンク２のリッチ／リーン比率ＲＢＹＬ２が目標値ｔＲＢＹＬ２と一致し、制御が収束する。
【００７６】
図１３、図１４のフローチャートは第３実施形態で、それぞれ第１実施形態の図４、図７と置き換わる。
【００７７】
位相同期要求のある条件において、第１実施形態が、補正値αＨＯＳによりバンク１の空燃比フィードバック補正係数α１を上下にシフトすることでバンク２のリッチ／リーン比率を変化させたのに対して、第３実施形態は、α１の反転時にα２Ｓの反転をディレイ時間ＤＬＹだけ遅延させることでバンク２のリッチ／リーン比率を変化させるようにしたものである。言い換えると、バンク１の空燃比フィードバック補正係数α１の反転時にディレイ時間ＤＬＹをもってバンク１の空燃比フィードバック補正係数α１に追随する値で位相同期要求のある条件でのバンク２の空燃比フィードバック補正係数α２Ｓを構成するものである。
【００７８】
まず図１３の内容は図４の内容とほぼ同じで、補正値αＨＯＳの代わりにディレイ時間ＤＬＹを置き換えたものである（ステップ１１１、１１２、１１３）。したがって、図４と同一部分に同一のステップ番号を付して、個別の説明は省略する。
【００７９】
このようにして演算したディレイ時間ＤＬＹはＥＣＭ１１内のメモリにストアしておき、次の図１４の位相同期要求のある条件でのバンク２の空燃比フィードバック補正係数α２Ｓの演算で読み出して使用する。
【００８０】
図１４のうちステップ１２１〜１２７、１３０は、図５のステップ５１〜５８、６２とそっくり同じである。したがって、図５と異なる部分を主に説明すると、フラグＦ１１が反転したとき、ステップ１２７よりステップ１２８、１２９に進んで、カウンタＴＭＲＤＬＹを０にリセットしたあと、前回のα２Ｓの値を維持する。ここで、カウンタＴＭＲＤＬＹはディレイ時間を計測するためのものである。
【００８１】
フラグＦ１１の反転時でなくＦ１１＝０（リーン）のときは、ステップ１２７、１３０よりステップ１３１に進み、カウンタＴＭＲＤＬＹとディレイ時間ＤＬＹを比較する。フラグＦ１１の反転後に初めてステップ１３１に進んできたとき、カウンタＴＭＲＤＬＹは０である（ステップ１２７、１２８）。この場合、ＤＬＹには〈１〉ＤＬＹ≧０のときと、〈２〉ＤＬＹ＜０のときとがある。
【００８２】
〈１〉ＤＬＹ≧０のとき：ステップ１３１でＴＭＲＤＬＹ≦ＤＬＹとなるので、ステップ１３１よりステップ１３４に進んで、バンク１の空燃比フィードバック補正係数α１の値をそのままα２Ｓとする。
【００８３】
〈２〉ＤＬＹ＜０のとき：ステップ１３１でＴＭＲＤＬＹ＞ＤＬＹである間は、ステップ１３２に進んでカウンタＴＭＲＤＬＹをダウンカウントしたあと、ステップ１３３でα２Ｓの前回値であるα２Ｓｚから積分分（一定値）ＩＤを減算してα２Ｓの今回値を算出する。ステップ１３２の処理の繰り返しによりカウンタＴＭＲＤＬＹは負の値で大きくなっていくので、やがてＴＭＲＤＬＹ≦ＤＬＹになると、ステップ１３１よりステップ１３４に進んで、α１の値をそのままα２Ｓとする。
【００８４】
同様にして、フラグＦ１１の反転時でなくＦ１１＝１のときは、ステップ１２７、１３０よりステップ１３５に進み、カウンタＴＭＲＤＬＹとディレイ時間ＤＬＹを比較する。この場合にも〈３〉ＤＬＹ≧０のときと、〈４〉ＤＬＹ＜０のときとでわけて考える。
【００８５】
〈３〉ＤＬＹ≧０のとき：ステップ１３５でＴＭＲＤＬＹ＜ＤＬＹである間は、ステップ１３６に進んでカウンタＴＭＲＤＬＹをアップカウントしたあと、ステップ１３７でα２Ｓの前回値であるα２Ｓｚに積分分ＩＤを加算してα２Ｓの今回値を算出する。ステップ１３６の処理の繰り返しによりカウンタＴＭＲＤＬＹは正の値で大きくなっていくので、やがてＴＭＲＤＬＹ≧ＤＬＹになると、ステップ１３５よりステップ１３８に進んで、α１の値をそのままα２Ｓとする。
【００８６】
〈４〉ＤＬＹ＜０のとき：ステップ１３５でＴＭＲＤＬＹ≧ＤＬＹとなるので、ステップ１３５よりステップ１３８に進んで、α１の値をそのままα２Ｓとする。
【００８７】
なお、上記の積分分ＩＤはディレイ中にα２Ｓを漸増または漸減させるための値である。たとえば、ＩＤに正の値を与えると、ディレイ中のα２Ｓはα１と逆方向に変化する。この場合、制御が収束（バンク２のリッチ／リーン比率ＲＢＹＬ２が目標値ｔＲＢＹＬ２と一致）するときのディレイ時間は比較的短くなる。また、ＩＤ＝０とすると、ディレイ中のα２Ｓは前回値を維持する形となり、α２Ｓが変化する範囲をα１の値が変化する範囲と同じにすることができる。ただし、制御が収束するときのディレイ時間は比較的長くなる。
【００８８】
ここで、上記〈１〉、〈２〉の処理よりわかることは、ステップ１３３のディレイ処理が行われるのは、ディレイ時間ＤＬＹが負の値のときだけ、また上記〈３〉、〈４〉の処理よりわかることは、ステップ１３７のディレイ処理が行われるのは、ディレイ時間ＤＬＹが０または正の値のときだけである。
【００８９】
このようにして演算されるα２Ｓをバンク２に適用したときのバンク２のリッチ／リーン比率は、α１をそのままバンク２に適用した場合の比率よりも、ディレイ時間ＤＬＹが０または正の値のとき大きく（リッチ側）なり、これに対してディレイ時間ＤＬＹが負の値のとき小さく（リーン側）なる。
【００９０】
第１実施形態と同じ条件での第３実施形態の作用を図１５（図１０に対応する）に示すと（ただし積分分ＩＤ＝０としている）、第３実施形態では、Ｆ１１の“１”から“０”への反転時に、ディレイ時間ＤＬＹによりα２Ｓの反転をα１より遅らせることで、位相同期要求のある条件でのバンク２のリッチ／リーン比率を大きくしている。これによって第３実施形態でも第１実施形態と同じ作用効果が得られる。
【００９１】
以上の実施形態では、バンク２のリッチ／リーン比率ＲＢＹＬ２をバンク１のリッチ／リーン比率ＲＢＹＬ１と一致させることを基本とし、バンク間の微小な特性差はオフセット値ＯＦＳＴで吸収するようにしている。これは、バンク１は正確に理論空燃比にフィードバック制御されていること、および、同じ空燃比に制御しているときのリッチ／リーン比率がバンク間の違いに拘わらず、ほとんど同じになることによる。特に、エンジンの運転条件が多少変動しているときなどは、正確にフィードバック制御されているバンク１のリッチ／リーン比率に合わせることが効果的となる。
【００９２】
実施形態では説明しなかったが、位相同期要求のない条件でバンク２を独立でフィードバック制御しているときのリッチ／リーン比率を学習しておき、位相同期要求のある条件でのバンク２の実際のリッチ／リーン比率が、この学習済みのバンク２のリッチ／リーン比率（目標値）と一致するように補正値αＨＯＳやディレイ時間ＤＬＹを演算するようにしてもよい。特に、運転条件の変動がない定常時はこのような方法でも十分な空燃比制御精度が得られる。
【図面の簡単な説明】
【図１】一実施形態の制御システム図。
【図２】バンク１のリッチ／リーン比率の演算を説明するためのフローチャート。
【図３】バンク２のリッチ／リーン比率の演算を説明するためのフローチャート。
【図４】補正値αＨＯＳの演算を説明するためのフローチャート。
【図５】バンク１の空燃比フィードバック補正係数の演算を説明するためのフローチャート。
【図６】バンク２の空燃比フィードバック補正係数の演算を説明するためのフローチャート。
【図７】位相同期要求のある条件でのバンク２の空燃比フィードバック補正係数の演算を説明するためのフローチャート。
【図８】位相同期要求のない条件でのバンク２の空燃比フィードバック補正係数の演算を説明するためのフローチャート。
【図９】位相同期制御開始直後の触媒上流側Ｏ2センサ出力のモデル波形図。
【図１０】位相同期制御が終了したときの触媒上流側Ｏ2センサ出力のモデル波形図。
【図１１】第２実施形態の位相同期要求のある条件でのバンク２の空燃比フィードバック補正係数の演算を説明するためのフローチャート。
【図１２】第２実施形態の位相同期制御が終了したときの触媒上流側Ｏ2センサ出力のモデル波形図。
【図１３】第３実施形態のディレイ時間ＤＬＹの演算を説明するためのフローチャート。
【図１４】第３実施形態の位相同期要求のある条件でのバンク２の空燃比フィードバック補正係数の演算を説明するためのフローチャート。
【図１５】第３実施形態の位相同期制御が終了したときの触媒上流側Ｏ2センサ出力のモデル波形図。
【図１６】第１の発明のクレーム対応図。
【符号の説明】
４、５  排気通路
７、８  三元触媒
１１  ＥＣＭ
１２  触媒上流側Ｏ2センサ（第１空燃比検出手段）
１３  触媒上流側Ｏ2センサ（第２空燃比検出手段）
１４  触媒下流側Ｏ2センサ
【図１】
0003838318.tif 000006
【図２】
0003838318.tif 000007
【図３】
0003838318.tif 000008
【図４】
0003838318.tif 000009
【図５】
0003838318.tif 000010
【図６】
0003838318.tif 000011
【図７】
0003838318.tif 000012
【図８】
0003838318.tif 000013
【図９】
0003838318.tif 000014
【図１０】
0003838318.tif 000015
【図１１】
0003838318.tif 000016
【図１２】
0003838318.tif 000017
【図１３】
0003838318.tif 000018
【図１４】
0003838318.tif 000019
【図１５】
0003838318.tif 000020
【図１６】
0003838318.tif 000021