(57)【特許請求の範囲】
【請求項１】
複数のシリンダバンクの排気系に空燃比センサを各々配設し、
上記各空燃比センサの出力値に基づき各々独立に各バンクの空燃比をフィードバック制御するエンジンの空燃比制御装置において、
上記各空燃比センサの１つを主空燃比センサとすると共に、他の空燃比センサを従空燃比センサとし、
上記主空燃比センサの出力電圧に基づき該主空燃比センサ側シリンダバンクの空燃比を制御する主空燃比制御手段と、
上記各空燃比センサの出力電圧の最大値と最小値との差分により該各空燃比センサの出力電圧幅をそれぞれ検出し、該出力電圧幅と上記各空燃比センサに設定されている基準電圧幅との比に応じて上記各空燃比センサの出力電圧を増幅して基準化する基準電圧変換手段と、
基準化後の上記主空燃比センサの出力電圧と上記従空燃比センサの出力電圧との電位差を算出する電位差算出手段と、
上記従空燃比センサの出力電圧に基づき該従空燃比センサ側シリンダバンクの空燃比を設定すると共に、この空燃比を上記電位差に応じて修正し従空燃比センサ側シリンダバンクの空燃比を制御する従空燃比制御手段とを備えることを特徴とするエンジンの空燃比制御装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、複数のシリンダバンクの排気系毎に空燃比センサを配設し、各々独立に各バンクの空燃比をフィードバック制御するエンジンの空燃比制御装置に関する。
【０００２】
【従来の技術】
従来、水平対向型エンジン、或いはＶ型エンジン等、複数のシリンダバンクを有するエンジンでは、シリンダバンク別に空燃比を制御するため、各シリンダバンクの排気系に空燃比センサを各々配設し、各空燃比センサの出力電圧に基づいて、シリンダバンク毎に空燃比フィードバック制御を実行するものがある。例えば、特開平５−４４５４１号公報では、水平対向型エンジンの左右シリンダバンク毎に配設した、いわゆるデュアルエキゾーストに触媒を介装し、この各触媒の上流に空燃比センサをそれぞれ配設し、この各空燃比センサの出力値に基づいて空燃比をシリンダバンク別に制御する技術が開示されている。
【０００３】
又、特開平３−２６８４５号公報には、左右のシリンダバンク毎に配設した空燃比センサの出力信号の周期をそれぞれ計時し、その両周期の比から上記両空燃比センサの相対的な空燃比の制御ずれを検出し、この制御ずれに応じで一方のシリンダバンクの空燃比を補正することで、該一方のシリンダバンクの空燃比を他方のシリンダバンクの空燃比に一致させる技術が開示されている。
【０００４】
【発明が解決しようとする課題】
しかし、前者の先行技術では、空燃比がシリンダバンク別に各々独立して制御されるため、シリンダバンク間の空燃比制御にずれが生じた場合、この制御ずれを検出することができず、シリンダバンク間で空燃比制御誤差が生じてしまう。
【０００５】
一方、後者の先行技術では、シリンダバンク間の空燃比制御の相対的なずれを補正しているため、シリンダバンク間の空燃比制御誤差は修正されるが、例えば、何れかの空燃比センサに劣化が生じた場合、当該空燃比センサの出力周期は正常な空燃比センサの出力周期に比べて長くなるため、その周期の比は、正常時の値（１．０に近い値）よりも一方へ大きくずれてしまい、従って、両空燃比センサの出力周期の比に基づいて、一方のシリンダバンクの空燃比を補正制御すると、当該シリンダバンクの空燃比制御が正常に行われず、両シリンダバンク間の空燃比に制御ずれが生じ排気エミッションが悪化してしまう。
【０００６】
本発明は、上記事情に鑑み、空燃比センサの劣化等の影響を受けることなく、複数のシリンダバンク間の空燃比を一致させ排気エミッションの改善を図ることのできるエンジンの空燃比制御装置を提供することを目的とする。
【０００７】
【課題を解決するための手段】
上記目的を達成するため請求項１記載の発明は、図１の基本構成図に示すように、複数のシリンダバンクの排気系に空燃比センサを各々配設し、上記各空燃比センサの出力値に基づき各々独立に各バンクの空燃比をフィードバック制御するエンジンの空燃比制御装置において、上記各空燃比センサの１つを主空燃比センサとすると共に、他の空燃比センサを従空燃比センサとし、上記主空燃比センサの出力電圧に基づき該主空燃比センサ側シリンダバンクの空燃比を制御する主空燃比制御手段と、上記各空燃比センサの出力電圧の最大値と最小値との差分により該各空燃比センサの出力電圧幅をそれぞれ検出し、該出力電圧幅と上記各空燃比センサに設定されている基準電圧幅との比に応じて上記各空燃比センサの出力電圧を増幅して基準化する基準電圧変換手段と、基準化後の上記主空燃比センサの出力電圧と上記従空燃比センサの出力電圧との電位差を算出する電位差算出手段と、上記従空燃比センサの出力電圧に基づき該従空燃比センサ側シリンダバンクの空燃比を設定すると共に、この空燃比を上記電位差に応じて修正し従空燃比センサ側シリンダバンクの空燃比を制御する従空燃比制御手段とを備えることを特徴とする。
【０００９】
すなわち、請求項１記載の発明では、主空燃比センサを排気系に配設するシリンダバンクの空燃比を上記主空燃比センサの出力電圧に基づいて制御すると共に、従空燃比センサの出力電圧に基づいて設定した空燃比を各々基準電圧変換した主空燃比センサの出力電圧と従空燃比センサの出力電圧との電位差に応じ修正して、従空燃比センサ側シリンダバンクの空燃比を制御し、上記主空燃比センサ側シリンダバンクの空燃比に一致するように修正する。
【００１０】
この場合、各空燃比センサの出力電圧の基準化は、各空燃比センサの出力電圧の最大値と最小値との差分により検出した各空燃比センサの出力電圧幅と空燃比センサに設定されている基準電圧幅との比に応じ、各空燃比センサの出力電圧を増幅して行う。
【００１１】
【発明の実施の形態】
以下、図２〜図１５の図面に基づいて本発明の一実施の形態を説明する。図８にエンジンの全体概略図を示す。図８の符号１はエンジンで、図においては４サイクル６気筒水平対向型エンジンを示す。このエンジン１のシリンダブロック２が左右のシリンダバンクを備え、例えば、右シリンダバンク（図において左側のバンク；以下、「ＲＨバンク」と略称）側に＃１，＃３，＃５気筒の気筒群が配置され、左シリンダバンク（図において右側のバンク；以下、「ＬＨバンク」と略称）側に＃２，＃４，＃６気筒の気筒群が配置されている。
【００１２】
上記両バンクの各シリンダヘッド３には、それぞれ吸気ポート４が形成され、各吸気ポート４に吸気マニホルド５が連通されている。又、上記吸気マニホルド５の上流に、各バンクに対応して共鳴管６ａ，６ｂが連通され、この各共鳴管６ａ，６ｂ間を結ぶ通路６ｃに可変吸気バルブ１１ｅが介装されている。尚、この共鳴管６ａ，６ｂ、通路６ｃ、可変吸気バルブ１１ｅで可変共鳴過給システムが構成されている。
【００１３】
更に、各共鳴管６ａ，６ｂの上流がスロットルチャンバ１１ａ，１１ｂを介してサージタンク７に連通されており、このサージタンク７上流側に、吸気管８を介してエアクリーナ９が取付けられ、このエアクリーナ９の直下流に、ホットワイヤ式等の吸入空気量センサ１０が介装されている。
【００１４】
又、上記各スロットルチャンバ１１ａ，１１ｂに、スロットル弁１１ｃ，１１ｄ（いわゆる、ツインスロットル弁）が介装され、一方のスロットル弁１１ｄに、スロットル開度センサ１２ａとスロットル弁全閉でＯＮ動作するアイドルスイッチ１２ｂとを備えるスロットルセンサ１２が連設されている。
【００１５】
更に、上記スロットルチャンバ１１ａ，１１ｂのスロットル弁１１ｃ，１１ｄの下流側が通路６ｄによって連通され、この通路６ｄと上記サージタンク７とを連通して、両スロットル弁１１ｃ，１１ｄをバイパスするバイパス通路６ｅに、ＩＳＣ（アイドル回転数制御）弁１３が介装されている。
【００１６】
又、上記吸気マニホルド５の各気筒の各吸気ポート４の直上流側にインジェクタ１４が配設され、更に、上記各シリンダヘッド３の各気筒毎に、その先端を燃焼室に露呈する点火プラグ１５が取付けられている。この点火プラグ１５に点火コイル１５ａが連設され、この点火コイル１５ａがイグナイタ１６に接続されている。
【００１７】
又、上記シリンダブロック２に形成された冷却水通路（図示せず）に冷却水温センサ２１が臨まされるとともに、上記シリンダブロック２の各バンクに、それぞれ、ＲＨバンクノックセンサ２２ａ、ＬＨバンクノックセンサ２２ｂが取付けられており、上記各シリンダヘッド３の各排気ポート２３から、各バンク毎に設けた各排気管２４ａ，２４ｂが連通されている。
【００１８】
上記各ノックセンサ２２ａ，２２ｂは、例えばノック振動とほぼ同じ固有周波数を持つ振動子と、この振動子の振動加速度を検知して電気信号に変換する圧電素子とから構成される共振形のノックセンサであり、エンジンの燃焼行程における燃焼圧力波によりシリンダブロックなどに伝わる振動を検出し、その振動波形に応じた検出信号を出力する。
【００１９】
又、上記各排気管２４ａ，２４ｂには、主触媒コンバータ２５ａ，２５ｂが介装され、更に、上記各排気管２４ａ，２４ｂの下流側合流部に、副触媒コンバータ２６が介装されている。上記各排気管２４ａ，２４ｂの上記各主触媒コンバータ２５ａ，２５ｂの上流にＲＨバンクの気筒群からの排気ガス中の酸素濃度を検出する主空燃比センサの一例である主Ｏ２  センサ２７ａ，ＬＨバンクの気筒群からの排気ガス中の酸素濃度を検出する従空燃比センサの一例である従Ｏ２センサ２７ｂが各々臨まされ、更に、上記副触媒コンバータ２６の下流に補助Ｏ２センサ２８が臨まされ、ＲＨバンクの空燃比を上記主Ｏ２センサ２７ａと補助Ｏ２センサ２８の各出力電圧に基づいて制御し、ＬＨバンクの空燃比を従Ｏ２センサ２７ｂと補助Ｏ２センサ２８の各出力電圧に基づいて制御する、いわゆる、バンク別のデュアルＯ２センサ（ＤＯＳ）構造を有し、更に、ＬＨバンクの空燃比は、上記主Ｏ２センサ２７ａの出力電圧に対する従Ｏ２センサ２７ｂの出力電圧の偏倚量に基づいて修正され、ＬＨバンクの空燃比をＲＨバンクの空燃比に一致させる制御が行われる。
【００２０】
一方、上記エンジン１のクランクシャフト１ａには、クランクスプロケット１ｂ（図９，図１０参照）が軸着されており、上記クランクシャフト１ａの回転が上記クランクスプロケット１ｂに巻装されたタイミングベルト（図示せず）を介してカムシャフト１ｃに伝達され、このカムシャフト１ｃが上記クランクシャフト１ａに対し１／２  回転する。
【００２１】
又、上記クランクシャフト１ａにクランク角検出用の第１のクランクロータ２９と、グループ（＃１，＃２気筒、＃３，＃４気筒、及び、＃５，＃６気筒の３グループ）気筒判別用の第２のクランクロータ３０とがクランクシャフト１ａの軸方向に所定間隔を開けて軸着され、第１，第２のクランクロータ２９，３０の外周に、被検出体である突起を検出する電磁ピックアップなどからなる第１，第２のクランク角センサ３１，３２が、それぞれ対設されている。又、カムシャフト１ｃに気筒判別用のカムロータ３３が軸着され、このカムロータ３３の外周に電磁ピックアップなどからなるカム角センサ３４が対設されている。図９に示すように、上記各クランク角センサ３１，３２は、上記クランクシャフト１ａの軸中心に対して所定の開き角θ０  （例えば２５°）を有し、且つクランクシャフト１ａの軸方向に所定の距離を有して配置され、上記各クランク角センサ３１，３２を被検出体が通過する際に生じる磁束変化により互いに影響を受けてノイズが発生しないよう所定の空間的距離が保たれる。
【００２２】
又、上記クランク角検出用の第１のクランクロータ２９は、図１０に示すように、その外周に突起２９ａが形成されており、又、上記グループ気筒判別用の第２のクランクロータ３０は、図１１に示すように、その外周にグループ気筒判別用の突起３０ａが形成されている。上記各クランク角センサ３１，３２をエンジン１の運転により、クランクシャフト１ａが回転して各クランクロータ２９，３０の回転に伴い上記各突起２９ａ，３０ａが通過する際の磁束変化により、上記各クランク角センサ３１，３２から交流電圧の信号列が、後述する電子制御装置４０へ出力され、それぞれ、クランクパルス、グループ判別パルスに変換される。
【００２３】
上記クランク角検出用の第１のクランクロータ２９は、詳細には、突起２９ａが、例えば、各気筒の圧縮上死点前（ＢＴＤＣ）１０°を起点として３０°間隔で等間隔に形成され、又、上記グループ気筒判別用の第２のクランクロータ３０の突起３０ａは、例えば、＃１，＃２気筒のＢＴＤＣ５５°の位置に１個形成され、＃３，＃４気筒のＢＴＤＣ５５°の位置から３０°毎に２個、＃５，＃６気筒のＢＴＤＣ５５°の位置から３０°毎に３個形成されている。一方、図１２に示すように、上記カムロータ３３には、特定気筒の圧縮上死点を判別するため、例えば＃１気筒の圧縮上死点後（ＡＴＤＣ）４３．２゜ＣＡ  の位置に、突起３３ａが１個形成されており、カム角センサ３４からのカムパルスと上記グループ判別パルスとにより、個々の気筒を判別する。
【００２４】
次に、電子制御装置４０の構成を図１３に基づき説明する。電子制御装置４０は、燃料噴射制御、点火時期制御等を行なうメインコンピュータ４１と、ノック検出処理専用のサブコンピュータ４２との２つのコンピュータを中心として構成され、各部に所定の安定化電源を供給する定電圧回路４３、上記メインコンピュータ４１に接続される駆動回路５５、及びＡ／Ｄ変換器５７、及びサブコンピュータ４２に接続される各種の周辺回路が内蔵されている。
【００２５】
上記定電圧回路４３は、ＥＣＵリレー４４のリレー接点を介してバッテリ４５に接続されており、このバッテリ４５に、上記ＥＣＵリレー４４のリレーコイルがイグニッションスイッチ４６を介して接続され、上記イグニッションスイッチ４６がＯＮされて上記ＥＣＵリレー４４のリレー接点が閉となったとき制御用電源を上記各コンピュータ４１，４２へ供給する。尚、メインコンピュータ４１のバックアップＲＡＭ５０ａに対しては上記定電圧回路４３を介して、上記バッテリ４５が直接接続されている。
【００２６】
上記メインコンピュータ４１は、ＣＰＵ４８、ＲＯＭ４９、ＲＡＭ５０、バックアップＲＡＭ５０ａ、カウンタ・タイマ群５１、シリアル通信インターフェースであるＳＣＩ５２、及び、Ｉ／Ｏインターフェース５３がバスライン５４を介して接続されたマイクロコンピュータであり、上記バックアップＲＡＭ５０ａには、上記イグニッションスイッチ４６のＯＮ／ＯＦＦに拘らず、バッテリ４５に直接接続する上記定電圧回路４３からバックアップ電源が常時供給されてデータが保持される。
【００２７】
尚、上記カウンタ・タイマ群５１は、フリーランカウンタ、カムパルスの入力計数用カウンタなどの各種カウンタ、燃料噴射タイマ、点火タイマ、定期割込みを発生させるための定期割込みタイマ、前記クランクパルスの入力間隔計時用タイマ、及び、システム異常監視用のウオッチドッグタイマなどの各種タイマを便宜上総称するものであり、上記メインコンピュータ４１においては、その他、各種のソフトウエアカウンタ・タイマが用いられる。
【００２８】
又、上記サブコンピュータ４２も、上記メインコンピュータ４１と同様、ＣＰＵ６６、ＲＯＭ６７、ＲＡＭ６８、カウンタ・タイマ群６９、ＳＣＩ７０、及び、Ｉ／Ｏインターフェース７１がバスライン７２を介して接続されたマイクロコンピュータであり、上記メインコンピュータ４１とサブコンピュータ４２とは、上記ＳＣＩ５２，７０を介してシリアル通信ラインにより互いに接続されている。
【００２９】
上記メインコンピュータ４１のＩ／Ｏインターフェース５３の入力ポートには、アイドルスイッチ１２ｂ、第１，第２のクランク角センサ３１，３２及びカム角センサ３４が接続されると共に、吸入空気量センサ１０、スロットル開度センサ１２ａ、冷却水温センサ２１、主Ｏ２センサ２７ａ、従Ｏ２センサ２７ｂ、補助Ｏ２センサ２８、及び大気圧センサ３５が、上記Ａ／Ｄ変換器５７を介して接続され、更に、このＡ／Ｄ変換器５７にバッテリ４５の電圧ＶＢが入力されてモニタされる。
【００３０】
又、上記Ｉ／Ｏインターフェース５３の出力ポートには、イグナイタ１６が接続されると共に、ＩＳＣ弁１３、インジェクタ１４等の各アクチュエータ類が駆動回路５５を介して接続されている。
【００３１】
一方、上記サブコンピュータ４２のＩ／Ｏインターフェース７１の入力ポートに、第１，第２のクランク角センサ３１，３２、カム角センサ３４が接続されると共に、ＲＨバンクノックセンサ２２ａ、ＬＨバンクノックセンサ２２ｂが、それぞれ、アンプ７３、周波数フィルタ７４、Ａ／Ｄ変換器７５を介して接続され、各ノックセンサ２２ａ，２２ｂからのノック検出信号が上記アンプ７３で所定のレベルに増幅された後に上記周波数フィルタ７４により必要な周波数成分が抽出され、上記Ａ／Ｄ変換器７５にてデジタル信号に変換されて入力される。
【００３２】
上記メインコンピュータ４１では、各センサ・スイッチ類からの検出信号を処理し、燃料噴射制御、点火時期制御、アイドル回転数制御等の各種エンジン制御を行い、一方、上記サブコンピュータ４２では、エンジン回転数とエンジン負荷とに基づいて各ノックセンサ２２ａ，２２ｂからの信号のサンプル区間を設定し、このサンプル区間でノックセンサ２２ａ，２２ｂからの信号を高速にＡ／Ｄ変換して振動波形を忠実にデジタルデータに変換し、このデータに基づきノック発生の有無を判定する。
【００３３】
上記サブコンピュータ４２のＩ／Ｏインターフェース７１の出力ポートは、上記メインコンピュータ４１のＩ／Ｏインターフェース５３の入力ポートに接続されており、上記サブコンピュータ４２でのノック判定データがＩ／Ｏインターフェース５３に出力される。そして、上記メインコンピュータ４１では、上記サブコンピュータ４２からノック発生有りの判定結果が出力されると、ＳＣＩ５２を介してシリアル通信ラインよりサブコンピュータ４２からノックデータを読込み、このノックデータに基づいて直ちに該当気筒の点火時期を遅らせ、ノックを回避する。
【００３４】
このようなエンジン制御系において、イグニッションスイッチ４６がＯＮされると、ＥＣＵリレー４４がＯＮし、上記メインコンピュータ４１では、定電圧回路４３を介して各部に定電圧が供給されて各種制御を実行する。すなわち、ＣＰＵ４８が、ＲＯＭ４９にメモリされているプログラムに従い、Ｉ／Ｏインターフェイス５３を介して入力されるセンサ・スイッチ類からの検出信号、及びバッテリ電圧等を処理し、ＲＡＭ５０に格納される各種データ及びバックアップＲＡＭ５０ａに格納されている各種学習値データ、ＲＯＭ４９にメモリされている固定データ等に基づき、各種制御量を演算する。そして、演算した燃料噴射量に相応する駆動パルス信号を所定のタイミングで該当気筒のインジェクタ１４に出力して燃料噴射制御を行い、又、演算した点火時期に対応するタイミングでイグナイタ１６に点火信号を出力して点火時期制御を実行し、更には演算したデューティ比に対応してＩＳＣ弁１３に制御デューティ信号を出力してアイドル回転数制御等を実行する。尚サブコンピュータ４２はノック検出処理専用のコンピュータであるため、その詳細動作説明は省略する。
【００３５】
ここで、上記メインコンピュータ４１は、空燃比制御に係わる主空燃比制御手段、基準電圧変換手段、電位差算出手段、及び従空燃比制御手段としての機能を有し、具体的には、イグニッションスイッチ４６のＯＮにより電子制御装置４０に電源が投入されると、システムイニシャライズによりＲＡＭ５０に格納される各データ、フラグ値がクリアされ（バックアップＲＡＭ５０ａに格納されているデータ、フラグ値は除く）、システムイニシャライズ後、図２〜図６のフローチャートに示す各ルーチンが所定周期毎に実行され、図３のバンク別空燃比フィードバック補正係数設定ルーチンにおいてＤＯＳ制御条件成立時、すなわち主Ｏ２センサ２７ａ、補助Ｏ２センサ２８、及び触媒が活性したと判断されるとき、図４〜図５に示すＤＯＳ制御によるバンク別空燃比フィードバック補正係数設定サブルーチンで、主０２センサ２７ａと補助Ｏ２センサ２８との出力電圧ＶＦ１Ｏ２，ＶａｕｘＯ２に基づきＲＨバンク側空燃比フィードバック補正係数λ１を設定すると共に、従Ｏ２センサ２７ｂの出力電圧ＶＦ２Ｏ２に基づき、ＬＨバンク側空燃比フィードバック補正係数λ２を設定する。更に、図２に示す電位差算出ルーチンにおいて、上記両出力電圧ＶＦ１Ｏ２，ＶＦ２Ｏ２を基準電圧変換して、基準化電圧ＶＳＦ１Ｏ２，ＶＳＦ２Ｏ２とし、この両基準化出力ＶＳＦ１Ｏ２，ＶＳＦ２Ｏ２の電位差ΔＶＳＯ２、すなわち両バンクの空燃比のずれ量を算出する。そして、図６に示すバンク別燃料噴射量設定ルーチンにおいて、上記各空燃比フィードバック補正係数λ１，λ２により、バンク別に設定する燃料噴射量を補正してバンク別の空燃比が目標空燃比と一致するように空燃比制御するとともに、上記電位差ΔＶＳＯ２に基づいて設定した空燃比修正係数λ３で上記ＬＨバンク側の燃料噴射量を修正することで、このＬＨバンク側の空燃比をＲＨバンク側の空燃比に一致させる。
【００３６】
以下、図３に示すバンク別空燃比フィードバック補正係数設定ルーチン、図４〜図５に示すＤＯＳ制御によるバンク別空燃比フィードバック補正係数設定サブルーチン及び    図６に示すバンク別燃料噴射量設定ルーチンの説明に先立ち、図２に示す電位差算出ルーチンについて説明する。この電位差算出ルーチンは所定時間（例えば５０ｍｓ）毎に実行され、先ず、ステップＳ１で、主Ｏ２センサ２７ａの出力電圧ＶＦ１Ｏ２を読込み、ステップＳ２〜Ｓ７で上記出力電圧ＶＦ１Ｏ２を基準電圧変換する処理を行う。
【００３７】
ステップＳ２では、ＲＡＭ５０の所定アドレスにストアされている出力最大値ＶＦ１Ｏ２ＭＡＸを読出し上記出力電圧ＶＦ１Ｏ２と比較し、ＶＦ１Ｏ２＞ＶＦ１Ｏ２ＭＡＸのときは、ステップＳ３へ進み、又、ＶＦ１Ｏ２≦ＶＦ１Ｏ２ＭＡＸのときはステップＳ４へ進み、ＲＡＭ５０の所定アドレスにストアされている出力最小値ＶＦ１Ｏ２ＭＩＮを読出して上記出力電圧ＶＦ１Ｏ２と比較する。尚、上記出力最大値ＶＦ１Ｏ２ＭＡＸは、イグニッションスイッチ４６のＯＮによる電源投入後、主Ｏ２センサ２７ａの出力電圧ＶＦ１Ｏ２のとる最大値を示し、出力最小値ＶＦ１Ｏ２ＭＩＮは、電源投入後の主Ｏ２センサ２７ａの出力電圧ＶＦ１Ｏ２の最小値を示す。また、イグニッションスイッチ４６のＯＮにより電子制御装置４０に電源が投入された後の最初のルーチン実行時には、これら出力最大値ＶＦ１Ｏ２ＭＡＸ、出力最小値ＶＦ１Ｏ２ＭＩＮは、ＶＦ１Ｏ２ＭＡＸ←ＶＦ１Ｏ２、ＶＦ１Ｏ２ＭＩＮ←ＶＦ１Ｏ２にそれぞれ初期値設定される。
【００３８】
そして、ステップＳ２からステップＳ３へ進むと、上記出力最大値ＶＦ１Ｏ２ＭＡＸと今回の出力電圧ＶＦ１Ｏ２を次式に基づき平均化処理して新たな出力最大値ＶＦ１Ｏ２ＭＡＸを算出し、ＲＡＭ５０の所定アドレスに格納されている出力最大値ＶＦ１Ｏ２ＭＡＸを更新する。
ＶＦ１Ｏ２ＭＡＸ←｛（ＶＦ１Ｏ２−ＶＦ１Ｏ２ＭＡＸ）／２ｎ｝＋ＶＦ１Ｏ２ＭＡＸ
ここで、ｎは定数である。
【００３９】
一方、上記ステップＳ４で、ＶＦ１Ｏ２＜ＶＦ１Ｏ２ＭＩＮと判断されたときは、ステップＳ５へ進み、又  、ＶＦ１Ｏ２≧ＶＦ１Ｏ２ＭＩＮ、すなわち、ＶＦ１Ｏ２ＭＡＸ≧ＶＦ１Ｏ２≧ＶＦ１Ｏ２ＭＩＮのときは、ステップＳ７へジャンプする。
【００４０】
そして、ステップＳ４からステップＳ５へ進むと、上記出力最小値ＶＦ１Ｏ２ＭＩＮと今回の出力電圧ＶＦ１Ｏ２を次式に基づき平均化処理して新たな出力最大値ＶＦ１Ｏ２ＭＩＮを算出し、ＲＡＭ５０の所定アドレスに格納されている出力最大値ＶＦ１Ｏ２ＭＩＮを更新する。
ＶＦ１Ｏ２ＭＩＮ←｛（ＶＦ１Ｏ２−ＶＦ１Ｏ２ＭＩＮ）／２ｎ｝＋ＶＦ１Ｏ２ＭＩＮ
ここで、ｎは定数である。
【００４１】
そして、上記ステップＳ３或いはステップＳ５からステップＳ６へ進むと、上記出力最大値ＶＦ１Ｏ２ＭＡＸと上記出力最小値ＶＦ１Ｏ２ＭＩＮとの差から、主Ｏ２センサ２７ａの出力電圧幅ＶＰＰＭＡＸ１を算出し（ＶＰＰＭＡＸ１←ＶＦ１Ｏ２ＭＡＸ−ＶＦ１Ｏ２ＭＩＮ）、ステップＳ７へ進む。
【００４２】
ステップＳ７では、次式に基づき、今回読込んだ主Ｏ２センサ２７ａの出力電圧ＶＦ１Ｏ２を基準電圧変換して基準化電圧ＶＳＦ１Ｏ２を算出し、ステップＳ８へ進む。
ＶＳＦ１Ｏ２←ＶＦ１Ｏ２  ×（ＶＰＰＯ／ＶＰＰＭＡＸ１）−ＶＦ１Ｏ２ＭＩＮ
ここで、ＶＰＰＯは主Ｏ２センサ２７ａ、及び従Ｏ２センサ２７ｂの基準電圧幅で、例えば基準電圧が０−１Ｖであれば、ＶＰＰＯ＝１０００ｍＶである。
【００４３】
図１４（ａ）に示すように、上記主Ｏ２センサ２７ａの出力電圧ＶＦ１Ｏ２の出力最小値ＶＦ１Ｏ２ＭＩＮが０Ｖであれば、ＶＰＰＭＡＸ１＝ＶＦ１Ｏ２ＭＡＸであり、同図（ｂ）に破線で示す今回検出した主Ｏ２センサ２７ａの出力電圧ＶＦ１Ｏ２は、上記基準電圧幅ＶＰＰＯと上記出力電圧幅ＶＰＰＭＡＸ１との比に応じた量だけ増幅されて、実線で示す基準化電圧ＶＳＦ１Ｏ２となる。尚、図中のＳＬ１は、空燃比のリーン／リッチを判断する為のスライスレベルである。
【００４４】
その後、ステップＳ８へ進むと、従Ｏ２センサ２７ｂの出力電圧ＶＦ２Ｏ２を読込み、ステップＳ９〜Ｓ１４で、上記主Ｏ２センサ出力電圧の基準電圧変換処理と同様に、上記出力電圧ＶＦ２Ｏ２の基準電圧変換処理を行う。
【００４５】
ステップＳ９では、この出力電圧ＶＦ２Ｏ２とＲＡＭ５０の所定アドレスから読出した出力最大値ＶＦ２Ｏ２ＭＡＸとを比較し、ＶＦ２Ｏ２＞ＶＦ２Ｏ２ＭＡＸのときは、ステップＳ１０へ進み、又、ＶＦ２Ｏ２≦ＶＦ２Ｏ２ＭＡＸのときはステップＳ１１へ進み、上記出力電圧ＶＦ２Ｏ２とＲＡＭ５０の所定アドレスから読出した出力最小値ＶＦ２Ｏ２ＭＩＮとを比較する。尚、上記出力最大値ＶＦ２Ｏ２ＭＡＸは、電源投入後の従Ｏ２センサ２７ｂの出力電圧ＶＦ２Ｏ２の最小値を、出力最小値ＶＦ２Ｏ２ＭＩＮは、電源投入後の従Ｏ２センサ２７ｂの出力電圧ＶＦ２Ｏ２の最大値をそれぞれ表わし、上述の主Ｏ２センサ２７ａの出力最大値ＶＦ１Ｏ２ＭＡＸと出力最小値ＶＦ１Ｏ２ＭＩＮと同様、イグニッションスイッチ４６のＯＮにより電子制御装置４０に電源が投入された後の最初のルーチン実行時には、ＶＦ２Ｏ２ＭＡＸ←ＶＦ２Ｏ２、ＶＦ２Ｏ２ＭＩＮ←ＶＦ２Ｏ２にそれぞれ初期値設定される。
【００４６】
そして、ステップＳ９からステップＳ１０へ進むと、上記出力最大値ＶＦ２Ｏ２ＭＡＸと今回の出力電圧ＶＦ２Ｏ２を次式に基づき平均化処理して新たな出力最大値ＶＦ２Ｏ２ＭＡＸを算出し、ＲＡＭ５０の所定アドレスに格納されている出力最大値ＶＦ２Ｏ２ＭＡＸを更新する。
ＶＦ２Ｏ２ＭＡＸ←｛（ＶＦ２Ｏ２−ＶＦ２Ｏ２ＭＡＸ）／２ｎ｝＋ＶＦ２Ｏ２ＭＡＸ
ここで、ｎは定数である。
【００４７】
一方、上記ステップＳ１１で、ＶＦ２Ｏ２＜ＶＦ２Ｏ２ＭＩＮと判断されたときは、ステップＳ１２へ進み、又、ＶＦ２Ｏ２≧ＶＦ２Ｏ２ＭＩＮ、すなわち、ＶＦ２ＭＡＸ≧ＶＦ２Ｏ２≧ＶＦ２Ｏ２ＭＩＮのときは、ステップＳ１４へジャンプする。
【００４８】
そして、ステップＳ１１からステップＳ１２へ進むと、上記出力最小値ＶＦ２Ｏ２ＭＩＮと今回の出力電圧ＶＦ２Ｏ２を次式に基づき平均化処理して新たな出力最大値ＶＦ２Ｏ２ＭＩＮを算出し、ＲＡＭ５０の所定アドレスに格納されている出力最大値ＶＦ２Ｏ２ＭＩＮを更新する。
ＶＦ２Ｏ２ＭＩＮ←｛（ＶＦ２Ｏ２−ＶＦ２Ｏ２ＭＩＮ）／２ｎ｝＋ＶＦ２Ｏ２ＭＩＮ
ここで、ｎは定数である。
【００４９】
そして、上記ステップＳ１０或いはステップＳ１２からステップＳ１３へ進むと、上記出力最大値ＶＦ２Ｏ２ＭＡＸと上記出力最小値ＶＦ２Ｏ２ＭＩＮとの差から、従Ｏ２センサ２７ｂの出力電圧幅ＶＰＰＭＡＸ２を算出し（ＶＰＰＭＡＸ２←ＶＦ２Ｏ２ＭＡＸ−ＶＦ２Ｏ２ＭＩＮ）、ステップＳ１４へ進む。
【００５０】
ステップＳ１４では、次式に基づき、今回読込んだ従Ｏ２センサ２７ｂの出力電圧ＶＦ２Ｏ２を基準電圧変換して基準化電圧ＶＳＦ２Ｏ２を算出し、ステップＳ１５へ進む。
ＶＳＦ２Ｏ２←ＶＦ２Ｏ２  ×（ＶＰＰＯ／ＶＰＰＭＡＸ２）−ＶＦ２Ｏ２ＭＩＮ
ここで、ＶＰＰＯは基準電圧幅である。
【００５１】
図１５（ａ）に示すように、上記従Ｏ２センサ２７ｂの出力電圧ＶＦ２Ｏ２の出力最小値ＶＦ２Ｏ２ＭＩＮが０Ｖであれば、ＶＰＰＭＡＸ２＝ＶＦ２Ｏ２ＭＡＸであり、同図（ｂ）に破線で示す今回検出した従Ｏ２センサ２７ｂの出力電圧ＶＦ２Ｏ２は、上記基準電圧幅ＶＰＰＯと上記出力電圧幅ＶＰＰＭＡＸ２との比に応じた量だけ増幅されて、実線で示す基準化電圧ＶＳＦ２Ｏ２となる。尚、図中のＳＬ２は空燃比のリーン／リッチを判断する為のスライスレベルである。
【００５２】
そして、ステップＳ１５で、主０２センサ２７ａの基準化電圧ＶＳＦ１Ｏ２と従Ｏ２センサ２７ｂの基準化電圧ＶＳＦ２Ｏ２との差分により、主Ｏ２センサ２７ａの基準化電圧ＶＳＦ１Ｏ２に対する従Ｏ２センサ２７ｂの基準化電圧ＶＳＦ２Ｏ２の電位差ΔＶＳＯ２を算出し（ΔＶＳＯ２←ＶＳＦ１Ｏ２−ＶＳＦ２Ｏ２）、ルーチンを抜ける。
【００５３】
ここで、上記両基準化電圧ＶＳＦ１Ｏ２，ＶＳＦ２Ｏ２が、Ｏ２センサ２７ａ，２７ｂの出力特性に基づき各々基準電圧変換されているため、従Ｏ２センサ２７ｂの主Ｏ２センサ２７ａに対する出力値の電位差ΔＶＳＯ２からＲＨバンクに対するＬＨバンクの空燃比のずれ量を、Ｏ２センサの劣化等の影響を受けることなく正確に把握することができる。尚、上記電位差ＶＳＯ２は図６のバンク別燃料噴射量設定ルーチンにおいて参照され、該電位差ＶＳＯ２に応じてＬＨバンクの各気筒に対する燃料噴射量が修正される。
【００５４】
次に、図３のバンク別空燃比フィードバック補正係数設定ルーチンについて説明する。このバンク別空燃比フィードバック補正係数設定ルーチンは、設定時間毎に実行され、各バンク別に空燃比フィードバック補正係数を設定し、主Ｏ２センサ２７ａ及び補助Ｏ２センサ２８が活性しており、且つ各触媒コンバータの触媒が活性化したと判断されるとき、空燃比制御を補助Ｏ２センサ２８の出力を用いたＤＯＳ制御に移行させる。
【００５５】
先ず、ステップＳ２１で、減速燃料カット中、スロットル全開増量補正等のクランプ条件か否かを判断し、クランプ条件のときにはステップＳ３０へ分岐して、ＲＡＭ５０にストアされる補助Ｏ２センサ２８の平均出力値ＶＭａｕｘＯ２をクリアし、ステップＳ３１でＲＨバンク空燃比フィードバック補正係数λ１を設定し、ステップＳ３２で、ＬＨバンク空燃比フィードバック補正係数λ２を設定してルーチンを抜ける。
【００５６】
上記ＲＨバンク空燃比フィードバック補正係数λ１は、ＲＨバンクの各気筒（＃１，＃３，＃５気筒）に対する燃料噴射量を空燃比補正し、ＬＨバンク空燃比フィードバック補正係数λ２は、ＬＨバンクの各気筒（＃２，＃４，＃６気筒）に対する燃料噴射量を空燃比補正する為のものである。ここで、クランプ条件成立時の上記ステップＳ３１，Ｓ３２における空燃比フィードバック補正係数λ１，λ２の設定は、該空燃比フィードバック補正係数λ１，λ２をクランプ条件に応じて設定される値にクランプして空燃比制御をオープンループ制御とする。
【００５７】
上記ステップＳ２１で、通常運転によりクランプ条件非成立時には、ステップＳ２２へ進み、補助Ｏ２センサ２８の出力電圧ＶａｕｘＯ２を検出し、ステップＳ２３で、補助Ｏ２センサ活性化フラグＦ１の値を参照し、クリアされているときはステップＳ２４へ進み、セットされているときはステップＳ２６へジャンプする。
【００５８】
この補助Ｏ２センサ活性化フラグＦ１の初期値は０であり、後述するように補助Ｏ２センサ２８が活性したと判断されると「１」にセットされ、電子制御装置４０に電源が投入された後の初回のルーチン実行時、及び未だ補助Ｏ２センサ２８が活性したと判断されていないときには、ステップＳ２４へ進み、補助Ｏ２センサ２８が活性したかを判断する。
【００５９】
この補助Ｏ２センサ２８の活性化を判断する条件は以下の通りである。
１）主Ｏ２センサ２７ａが活性状態であり、空燃比フィードバック制御がクローズドループ制御へ移行した後である。
２）ＶａｕｘＯ２≧ＲＣＬＳＲ、或いはＶａｕｘＯ２＜ＲＣＬＳＬである。
ここで、ＲＣＬＳＲ、ＲＣＬＳＬは予め設定した値である。
３）上記１），２）を満たした状態がエンジン回転で、ＲＩＮＬＤＳ回連続した。
【００６０】
上記ステップＳ２４で、上述の条件を満足せず補助Ｏ２センサ２８が不活性と判断された場合には、上記ステップＳ３０を介してステップＳ３１へ進み、ＲＨバンク空燃比フィードバック補正係数λ１を設定し、ステップＳ３２でＬＨバンク空燃比フィードバック補正係数λ２を設定してルーチンを抜ける。このときの上記ステップＳ３１，Ｓ３２における空燃比フィードバック補正係数λ１，λ２の設定は、補助Ｏ２センサ２８の出力電圧ＶａｕｘＯ２は用いずに、エンジン状態と、主Ｏ２センサ２７ａ、又は従Ｏ２センサ２７ｂの状態に応じて設定されるもので、主Ｏ２センサ２７ａ又は従Ｏ２センサ２７ｂが不活性のときには、空燃比フィードバック補正係数λ１，λ２を、それぞれ１．０にクランプして空燃比制御をオープンループ制御とし、各Ｏ２センサ２７ａ，２７ｂの活性時、且つ上記クランプ条件の不成立のとき、ステップＳ３１で主Ｏ２センサ２７ａの出力電圧ＶＦ１Ｏ２に基づいてＲＨバンク空燃比フィードバック補正係数λ１を設定し、ステップＳ３２で従Ｏ２センサ２７ｂの出力電圧ＶＦ２Ｏ２に基づいてＬＨバンク空燃比フィードバック補正係数λ２を設定して、バンク別に空燃比フィードバック制御を行う。尚、この空燃比フィードバック補正係数λ１，λ２の設定、及び後述する空燃比学習における学習値ＫＬＲ１，ＫＬＲ２、学習補正係数ＫＢＬＲＣ１，ＫＢＬＲＣ２については、特開平５−４４５４０号公報、本件出願人による特開平５−４４５４１号公報等に詳述されている。
【００６１】
また、上記ステップＳ２４で、上記条件が全て満足し補助Ｏ２センサ２８が活性したと判断されると、ステップＳ２５へ進み、上記補助Ｏ２センサ活性化フラグＦ１をセットする。
【００６２】
そして、ステップＳ２６へ進み、触媒活性化フラグＦ２の値を参照する。この触媒活性化フラグＦ２は各触媒コンバータの触媒が活性化したと判断されるときにセットされるもので、初期値は０である。
【００６３】
上記ステップＳ２６で、Ｆ２＝０と判断されて、ステップＳ２７へ進むと、上記触媒コンバータ２５ａが活性したかを、例えば、エンジン始動時の冷却水温に基づいて設定した経過時間が、エンジン始動後に経過したか、或いは始動後の吸入空気量の積算値が所定量に達したか、又は触媒コンバータ２５ａに臨ませた触媒温度センサで検出した触媒温度等に基づいて判断し、触媒が不活性と判断されるときは、上述のステップＳ３０を経て、ステップＳ３１へ進み、主Ｏ２センサ２７ａの出力電圧ＶＦ１Ｏ２に基づいてＲＨバンク空燃比フィードバック補正係数λ１を設定し、ステップＳ３２で、従Ｏ２センサ２７ｂの出力電圧ＶＦ２Ｏ２に基づいてＬＨバンク空燃比フィードバック補正係数λ２を設定してルーチンを抜ける。また、上記触媒が活性したと判断されるときは、ステップＳ２８へ進み、上記触媒活性化フラグＦ２をセットする。
【００６４】
そして、上記ステップＳ２７で、触媒が活性したと判断し、ステップＳ２８で、触媒活性化フラグＦ２をセットして、ステップＳ２９へ進むと、主Ｏ２センサ２７ａ、従Ｏ２センサ２７ｂ、及び補助Ｏ２センサ２８を共に用いたＤＯＳ制御によりＲＨバンク空燃比フィードバック補正係数λ１、ＬＨバンク空燃比フィードバック補正係数λ２を設定し、ルーチンを抜ける。
【００６５】
そして、クランプ条件不成立で、補助Ｏ２センサ活性化フラグＦ１と触媒活性化フラグＦ２とが共にセットされているときは、ステップＳ２２で補助Ｏ２センサ２８の出力電圧ＶａｕｘＯ２を検出した後、ステップＳ２３，Ｓ２６を介してステップＳ２９へジャンプし、直ちにＤＯＳ制御により各空燃比フィードバック補正係数λ１，λ２が設定される。
【００６６】
このステップＳ２９のＤＯＳ制御による各空燃比フィードバック補正係数λ１，λ２の設定は、図４〜図５のフローチャートに示すＤＯＳ制御によるバンク別空燃比フィードバック補正係数設定サブルーチンに従って実行される。まず、ステップＳ４１〜Ｓ５１で、ＲＨバンク空燃比フィードバック補正係数λ１を設定する。ステップＳ４１では、主Ｏ２センサ２７ａの出力電圧ＶＦ１Ｏ２を読込み、ステップＳ４２で、補助Ｏ２センサ２８の出力電圧ＶａｕｘＯ２に対する平滑化処理を行う。すなわち、上述のバンク別空燃比フィードバック補正係数設定ルーチンのステップＳ２２で読込んだ補助Ｏ２センサ２８の出力電圧ＶａｕｘＯ２と、ＲＡＭ５０の所定アドレスに格納されている前回のルーチン実行時に算出した平均出力値ＶＭａｕｘＯ２とに基づいて、今回の平均出力値ＶＭａｕｘＯ２を次式から算出し、ＲＡＭ５０の所定アドレスに格納されている平均出力値ＶＭａｕｘＯ２を更新する。
ＶＭａｕｘＯ２←｛（ＶａｕｘＯ２−ＶＭａｕｘＯ２）／２ｎａ｝＋ＶＭａｕｘＯ２
ここで、ｎａは定数である。
【００６７】
そして、ステップＳ４３で、上記補助Ｏ２センサ２８の平均出力値ＶＭａｕｘＯ２  に基づいて、積分量ＩＰＨＯＳと比例量（スキップ量）ＰＰＨＯＳとを求める。この積分量ＩＰＨＯＳ，比例量ＰＰＨＯＳは、上記平均出力値ＶＭａｕｘＯ２と空燃比判定用スライスレベルとの比較結果に応じて設定されるＩ分，Ｐ分であり、平均出力値ＶＭａｕｘＯ２がスライスレベルを横切ったとき反転する。
【００６８】
その後、ステップＳ４４で、ＲＡＭ５０の所定アドレスに格納されている前回ルーチン実行時に算出した補助Ｏ２センサ補正係数ＰＨＯＳに上記積分量ＩＰＨＯＳと比例量ＰＰＨＯＳとを加算して、新たな補助Ｏ２センサ補正係数ＰＨＯＳを設定する（ＰＨＯＳ←ＰＨＯＳ＋ＩＰＨＯＳ＋ＰＰＨＯＳ）。
【００６９】
そして、ステップＳ４５〜Ｓ４８で、上記補助Ｏ２センサ補正係数ＰＨＯＳが適正範囲内にあるかを判断し、適正範囲外のときには補助Ｏ２センサ補正係数ＰＨＯＳを修正する。まず、ステップＳ４５では、補助Ｏ２センサ補正係数ＰＨＯＳが下限値ＰＨＭＩＮよりも低いかを判断し、ＰＨＯＳ＜ＰＨＭＩＮのときは、ステップＳ４６へ分岐し、上記補助Ｏ２センサ補正係数ＰＨＯＳを下限値ＰＨＭＩＮでセットして、ステップＳ４９へ進む。また、ＰＨＯＳ≧ＰＨＭＩＮのときは、ステップＳ４７へ進み、補助Ｏ２センサ補正係数ＰＨＯＳが上限値ＰＨＭＡＸよりも高いかを判断する。そして、ＰＨＯＳ＞ＰＨＭＡＸのときは、ステップＳ４８へ分岐し、上記補助Ｏ２センサ補正係数ＰＨＯＳを上限値ＰＨＭＡＸでセットして、ステップＳ４９へ進む。また、ＰＨＯＳ≦ＰＨＭＡＸのときは、今回算出した補助Ｏ２センサ補正係数ＰＨＯＳが適正範囲内にあると判断して、そのままステップＳ４９へ進む。
【００７０】
そして、ステップＳ４９では、主Ｏ２センサ２７ａの出力電圧ＶＦ１Ｏ２とスライスレベルＳＬ１（図１４（ａ）参照）との比較結果から、比例量（スキップ量）ＰＵ１，積分量ＩＵ１を設定する。上記出力電圧ＶＦ１Ｏ２が上記スライスレベルＳＬ１を横切ると、上記比例量ＰＵ１，積分量ＩＵ１が反転する。
【００７１】
その後、ステップＳ５０で、上記比例量ＰＵ１に上記補助Ｏ２センサ補正係数ＰＨＯＳを加算して、今回のＰ１分（比例量）を求め、ステップＳ５１で、前回ルーチン実行時に算出したＲＨバンク空燃比フィードバック補正係数λ１に上記比例量Ｐ１，積分量ＩＵ１を加算して、新たなＲＨバンク空燃比フィードバック補正係数λ１を設定する（λ１←λ１＋Ｐ１＋ＩＵ１）。
【００７２】
次いで、ステップＳ５２〜Ｓ５５で、ＬＨバンク空燃比フィードバック補正係数λ２を設定する。ステップＳ５２では、従Ｏ２センサ２７ｂの出力電圧ＶＦ２Ｏ２を読込み、ステップＳ５３で、従Ｏ２センサ２７ｂの出力電圧ＶＦ２Ｏ２とスライスレベルＳＬ２（図１５（ａ）参照）との比較結果から、比例量（スキップ量）ＰＵ２，積分量ＩＵ２を設定する。上記出力電圧ＶＦ２Ｏ２が上記スライスレベルＳＬ２を横切ると、上記比例量ＰＵ２，積分量ＩＵ２が反転する。
【００７３】
その後、ステップＳ５４で、上記比例量ＰＵ２に上記補助Ｏ２センサ補正係数ＰＨＯＳを加算して、今回のＰ２分（比例量）を求め、ステップＳ５５で、前回ルーチン実行時に算出したＬＨバンク空燃比フィードバック補正係数λ２に上記比例量Ｐ２，積分量ＩＵ２を加算して、新たなＬＨバンク空燃比フィードバック補正係数λ２を設定し（λ２←λ２＋Ｐ２＋ＩＵ２）、ルーチンを抜ける。
【００７４】
尚、バンク別に空燃比フィードバック補正係数を設定するものではないが、ＤＯＳ制御による空燃比フィードバック補正係数の設定については、特開昭６２−２９７３８号公報、本件出願人による特願平７−５２７４２号に詳述されている。
【００７５】
上記各空燃比フィードバック補正係数λ１，λ２は、図６に示すバンク別燃料噴射量設定ルーチンにおいてバンク別に燃料噴射量を定めるバンク別燃料噴射パルス幅Ｔｉ１，Ｔｉ２を設定する際に用いられる。
【００７６】
次に、バンク別燃料噴射量設定ルーチンについて、図６に基づき説明する。まず、ステップＳ６１で、吸入空気量Ｑとエンジン回転数Ｎとに基づき次式から基本燃料噴射量に相当する基本燃料噴射パルス幅ＴＰを算出する。
ＴＰ←Ｋ×Ｑ／Ｎ
ここで、Ｋはインジェクタ特性補正定数である。
【００７７】
次いで、ステップＳ６２で、冷却水温センサ２１による冷却水温Ｔｗ、スロットル開度センサ１２ａによるスロットル開度、アイドルスイッチ１２ｂによるアイドル出力等に基づいて、冷却水温補正、加減速補正、全開増量補正、アイドル後増量補正等に係わる各種増量分補正係数ＣＯＥＦを設定し、ステップＳ６３へ進み、上述の両空燃比フィードバック補正係数λ１，λ２を読出す。
【００７８】
そして、ステップＳ６４で、エンジン回転数Ｎとエンジン負荷を表わす基本燃料噴射パルス幅ＴＰとをパラメータとして、ＲＨバンク側の空燃比状態を学習したバックアップＲＡＭ５０ａのＲＨバンク空燃比学習値テーブルにストアされている空燃比学習値ＫＬＲ１を検索し補間計算によりＲＨバンク空燃比学習補正係数ＫＢＬＲＣ１を設定する。
【００７９】
次いで、ステップＳ６５で、上記ステップＳ６４と同様、エンジン回転数Ｎと基本燃料噴射パルス幅ＴＰとをパラメータとして、ＬＨバンク側の空燃比状態を学習したバックアップＲＡＭ５０ａのＬＨバンク空燃比学習値テーブルにストアされている空燃比学習値ＫＬＲ２を検索し補間計算によりＬＨバンク空燃比学習補正係数ＫＢＬＲＣ２を設定する。
【００８０】
上記空燃比学習値ＫＬＲ１，ＫＬＲ２は、本件出願人による前述の特開平５−４４５４１号公報等に開示されているように、吸入空気量センサ１０等の吸入空気量計測系、インジェクタ１４等の燃料系の生産時のばらつき、或いは経時変化による空燃比のずれを補正するためのものであり、Ｏ２センサ活性等による空燃比フィードバック条件成立時、空燃比学習値テーブル中の複数に区分されたエンジン回転数Ｎ、及び基本燃料噴射パルス幅ＴＰによる運転領域のうち、一つの運転領域において空燃比フィードバック補正係数λ１，λ２が比例積分制御により空燃比リッチ／リーンを所定回数繰り返したとき、そのときの空燃比フィードバック補正係数λ１，λ２の平均値に応じて該当領域に格納されている学習値ＫＬＲ１，ＫＬＲ２を更新し、空燃比フィードバック補正係数λ１，λ２の中心値が、それぞれ基準値（＝１．０）となるようにし、両バンクの空燃比を理論空燃比に保つようにしている。
【００８１】
次いで、ステップＳ６６へ進むと、上述の電位差ΔＶＳＯ２と吸入空気量Ｑとをパラメータとしてテーブルを補間計算付きで参照して、後述するＬＨバンク空燃比補正係数ＬＳＨＯＳを修正するための修正量Ｋｓを設定する。図７に上記テーブルの特性を示す。上記電位差ΔＶＳＯ２がプラス値のときには、主Ｏ２センサ２７ａで検出したＲＨバンクの空燃比に対して、従Ｏ２センサ２７ｂで検出したＬＨバンクの空燃比がリーン側にずれているため、上記テーブルには、吸入空気量Ｑが多く、しかも電位差ΔＶＳＯ２がプラス側に大きくＬＨバンクの空燃比がリーン側にずれている程、燃料増量を増加すべくプラス側に大きい値の修正量Ｋｓが格納されている。又、上記電位差ΔＶＳＯ２がマイナス値のときには、主Ｏ２センサ２７ａで検出したＲＨバンクの空燃比に対して、従Ｏ２センサ２７ｂで検出したＬＨバンクの空燃比がリッチ側にずれているため、上記テーブルには、吸入空気量Ｑが多く、しかも電位差ΔＶＳＯ２がマイナス側に大きくＬＨバンクの空燃比がリッチ側にずれている程、燃料減量量を増大すべくマイナス側に大きい値の修正量Ｋｓが格納されている。
【００８２】
そして、ステップＳ６７で、前回のルーチン実行時に設定したＬＨバンク空燃比補正係数ＬＳＨＯＳを読込み、このＬＨバンク空燃比補正係数ＬＳＨＯＳに上記修正量Ｋｓを加算して、今回のＬＨバンク空燃比補正係数ＬＳＨＯＳを算出する。
【００８３】
その後、ステップＳ６８へ進み、上記ＬＨバンク空燃比学習補正係数ＫＢＬＲＣ２に上記ＬＨバンク空燃比補正係数ＬＳＨＯＳを加算して、ＬＨバンクの空燃比をＲＨバンクの空燃比に一致させるためのＬＨバンク空燃比修正係数λ３を設定する。
【００８４】
その後、ステップＳ６９で、バッテリ４５の端子ＶＢ電圧に基づき、インジェクタ１４の無効噴射時間を補間する電圧補正係数Ｔｓを設定し、ステップＳ７０へ進む。
【００８５】
そして、ステップＳ７０でＲＨバンクの燃料噴射対象気筒に対して燃料噴射量を定める最終的な燃料噴射パルス幅Ｔｉ１を設定し、ステップＳ７１でＬＨバンクの燃料噴射対象気筒に対し燃料噴射量を定める最終的な燃料噴射パルス幅Ｔｉ２を設定する。
【００８６】
すなわち、ステップＳ７０では、上記ステップＳ６１で算出した基本燃料噴射パルス幅ＴＰを、上記ステップＳ６２で設定した各種増量分補正係数ＣＯＥＦ、及び上記ステップＳ６３で読出したＲＨバンク空燃比フィードバック補正係数λ１により空燃比補正すると共に、上記ステップＳ６４で設定したＲＨバンク空燃比学習補正係数ＫＢＬＲＣ１により学習補正し、更に、上記ステップＳ６９で設定した電圧補正係数Ｔｓにより電圧補正してＲＨバンク燃料噴射パルス幅Ｔｉ１を次式から算出する。
【００８７】
Ｔｉ１←ＴＰ×ＣＯＥＦ×λ１×ＫＢＬＲＣ１＋Ｔｓ
又、ステップＳ７１では、上記基本燃料噴射パルス幅ＴＰを、上記各種増量分補正係数ＣＯＥＦ、及び上記ステップＳ６３で読出したＬＨバンク空燃比フィードバック補正係数λ２により空燃比補正すると共に、上記ステップＳ６８で算出したＬＨバンク空燃比修正係数λ３で空燃比を修正し、更に、上記ステップＳ６９で設定した電圧補正係数Ｔｓにより電圧補正してＬＨバンク燃料噴射パルス幅Ｔｉ２を次式から算出する。
【００８８】
Ｔｉ２←ＴＰ×ＣＯＥＦ×λ２×λ３＋Ｔｓ
そして、ステップＳ７２で、バンク別に設定した上記燃料噴射パルス幅Ｔｉ１，Ｔｉ２を気筒毎に設けた噴射タイマにセットしてルーチンを抜ける。そして、所定タイミングで上記噴射タイマがスタートされ、上記燃料噴射パルス幅Ｔｉ１，Ｔｉ２  の駆動パルス信号が燃料噴射対象気筒のインジェクタ１４へ出力され、該インジェクタ１４から所定に計量された燃料が噴射される。
【００８９】
このように、本実施の形態では、左右のバンクの空燃比のずれを、主Ｏ２センサ２７ａの出力電圧ＶＦ１Ｏ２と従Ｏ２センサ２７ｂの出力電圧ＶＦ２Ｏ２とを一旦基準電圧変換し、基準化した出力電圧ＶＳＦ１Ｏ２  ，ＶＳＦ２Ｏ２の電位差ΔＶＳＯ２に基づいてＬＨバンクの空燃比をＲＨバンクの空燃比に一致させるように空燃比を修正するようにしたので、両Ｏ２センサ２７ａ，２７ｂの一方の出力電圧が劣化等により減少した場合であっても、劣化等の影響を受けることなく、ＲＨバンクに対するＬＨバンクの空燃比のずれを正確に検出することができる。その結果、良好な空燃比制御性能が得られる。
【００９０】
尚、本発明は上記実施の形態に限るもではなく、例えば、空燃比センサはＯ２センサに限らず、広域空燃比センサであっても良く、更に、シリンダバンクが３以上あっても良い。
【００９１】
【発明の効果】
請求項１記載の発明によれば、１つのシリンダバンクの排気系に配設した主空燃比センサの出力電圧と、他のシリンダバンクの排気系に配設した従空燃比センサの出力電圧とを、それぞれ基準電圧変換し、主空燃比センサの基準化電圧と従空燃比センサの基準化電圧との電位差に基づいて、従空燃比センサ側シリンダバンクの主空燃比センサ側シリンダバンクに対する空燃比のずれ量を算出し、このずれ量に基づいて従空燃比センサ側シリンダバンクの空燃比を主空燃比センサ側シリンダバンクの空燃比に一致させるよう修正するので、各空燃比センサの出力電圧が劣化等により減少した場合であっても、劣化による影響を受けることなく、主空燃比センサ側シリンダバンクの空燃比に対する従空燃比センサ側シリンダバンクの空燃比のずれ量を検出することができ、このずれ量に基づいて両シリンダバンクの空燃比を一致させることで、システム全体として良好な空燃比制御性能が得られ、排気エミッションの改善を図ることができる。
【００９２】
又、上記各空燃比センサの出力電圧の最大値と最小値との差分により検出した出力電圧幅と基準電圧幅との比に応じて、各空燃比センサの出力電圧を基準化することで、各空燃比センサの固有値に対応して出力電圧が相対的に基準化されるため、空燃比のずれをより正確に検出することができる。
【図面の簡単な説明】
【図１】本発明の基本構成図
【図２】電位差算出ルーチンを示すフローチャート
【図３】バンク別空燃比フィードバック補正係数設定ルーチンを示すフローチャート
【図４】ＤＯＳ制御によるバンク別空燃比フィードバック補正係数設定サブルーチンを示すフローチャート
【図５】ＤＯＳ制御によるバンク別空燃比フィードバック補正係数設定サブルーチンを示すフローチャート（続き）
【図６】バンク別燃料噴射量設定ルーチンを示すフローチャート
【図７】修正量設定テーブルの概念図
【図８】エンジンの全体概略図
【図９】クランクロータとクランク角センサの正面図
【図１０】第１のクランクロータと第１のクランク角センサの正面図
【図１１】第２のクランクロータと第２のクランク角センサの正面図
【図１２】カムロータとカム角センサの正面図
【図１３】電子制御系の回路構成図
【図１４】主Ｏ２センサの出力電圧と基準化電圧との関係を示すタイムチャート
【図１５】従Ｏ２センサの出力電圧と基準化電圧との関係を示すタイムチャート
【符号の説明】
１                            エンジン
１４                        インジェクタ
２４ａ，２４ｂ    排気管（排気系）
２７ａ                    主Ｏ２センサ（主空燃比センサ）
２７ｂ                    従Ｏ２センサ（従空燃比センサ）
４０                        電子制御装置
ＶＦ１Ｏ２            （主Ｏ２センサの）出力電圧
ＶＦ２Ｏ２            （従Ｏ２センサの）出力電圧
ＶＦ１Ｏ２ＭＡＸ，ＶＦ２Ｏ２ＭＡＸ    出力最大値
ＶＦ１Ｏ２ＭＩＮ，ＶＦ２Ｏ２ＭＩＮ    出力最小値
ＶＰＰＭＡＸ１，ＶＰＰＭＡＸ２    出力電圧幅
ＶＰＰＯ                      基準電圧幅
ＶＳＦ１Ｏ２，ＶＳＦ２Ｏ２    基準化電圧
ΔＶＳＯ２              電位差
λ３                          空燃比修正係数
【図１】
0003607765.tif 000002
【図２】
0003607765.tif 000003
【図３】
0003607765.tif 000004
【図４】
0003607765.tif 000005
【図５】
0003607765.tif 000006
【図６】
0003607765.tif 000007
【図７】
0003607765.tif 000008
【図８】
0003607765.tif 000009
【図９】
0003607765.tif 000010
【図１０】
0003607765.tif 000011
【図１１】
0003607765.tif 000012
【図１２】
0003607765.tif 000013
【図１３】
0003607765.tif 000014
【図１４】
0003607765.tif 000015
【図１５】
0003607765.tif 000016