内燃機関の空燃比制御装置
【課題】第1気筒群及び第2気筒群の排気通路のそれぞれに触媒を備えた機関において、エミッションの悪化と不快な振動の発生を回避できる内燃機関の空燃比制御装置を提供する。
【解決手段】右バンク用の排気通路に配設された触媒43及び下流側空燃比センサ67Rと、左バンク用の排気通路に配設された触媒53及び下流側空燃比センサ67Lとを備える。制御装置は、通常時において、下流側空燃比センサ67Rの出力値に基いて右バンク用の目標空燃比を設定し、下流側空燃比センサ67Lの出力値に基いて左バンク用の目標空燃比を設定する。これらの目標空燃比が同期すると機関10に不快な振動が発生する。制御装置は、不快な振動が発生していると判定すると、触媒43及び触媒53のうち最大酸素吸蔵量が小さいほうの触媒の下流側に設けられている下流側空燃比センサの出力値のみに基いて、両バンクの目標空燃比が互いに逆位相になるように制御する。
【解決手段】右バンク用の排気通路に配設された触媒43及び下流側空燃比センサ67Rと、左バンク用の排気通路に配設された触媒53及び下流側空燃比センサ67Lとを備える。制御装置は、通常時において、下流側空燃比センサ67Rの出力値に基いて右バンク用の目標空燃比を設定し、下流側空燃比センサ67Lの出力値に基いて左バンク用の目標空燃比を設定する。これらの目標空燃比が同期すると機関10に不快な振動が発生する。制御装置は、不快な振動が発生していると判定すると、触媒43及び触媒53のうち最大酸素吸蔵量が小さいほうの触媒の下流側に設けられている下流側空燃比センサの出力値のみに基いて、両バンクの目標空燃比が互いに逆位相になるように制御する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、少なくとも2系統の排気通路を有し、それぞれの排気通路に触媒を配設した内燃機関の空燃比制御装置に関する。
【背景技術】
【0002】
従来より、内燃機関から排出される排ガスを浄化するために同機関の排気通路に三元触媒(排ガス浄化用の触媒ユニット)が配設されている。三元触媒は、周知のように、その三元触媒に流入する酸素を吸蔵し且つその吸蔵した酸素を放出する「酸素吸蔵機能」を有する。
【0003】
以下、三元触媒を単に「触媒」と称呼し、触媒に流入する排ガスを「触媒流入ガス」と称呼し、触媒から流出する排ガスを「触媒流出ガス」と称呼する。更に、理論空燃比よりも小さい空燃比を「リッチ空燃比」と称呼し、理論空燃比よりも大きい空燃比を「リーン空燃比」と称呼し、機関に供給される混合気の空燃比を「機関の空燃比」と称呼する。
【0004】
従来の空燃比制御装置の一つ(以下、「従来装置」と称呼する。)は下流側空燃比センサを備える。下流側空燃比センサは、機関の排気通路であって触媒の下流に配設される。従来装置は、下流側空燃比センサの出力値が理論空燃比に相当する値に一致するように、機関の空燃比(従って、触媒流入ガスの空燃比)を制御する(例えば、特許文献1を参照。)。
【0005】
より具体的に述べると、従来装置は、下流側空燃比センサの出力値がリッチ空燃比に相当する値になったとき、触媒流入ガスの空燃比がリーン空燃比となるように機関の空燃比を制御する。換言すると、従来装置は、下流側空燃比センサの出力値がリッチ空燃比に相当する値になったとき、触媒の状態が「酸素不足状態(リッチ状態)」であり、従って、リーン要求が発生したと判定し、機関の空燃比をリーン空燃比に制御する。
【0006】
更に、従来装置は、下流側空燃比センサの出力値がリーン空燃比に相当する値になったとき、触媒流入ガスの空燃比がリッチ空燃比となるように機関の空燃比を制御する。換言すると、従来装置は、下流側空燃比センサの出力値がリーン空燃比に相当する値になったとき、触媒の状態が「酸素過剰状態(リーン状態)」であり、従って、リッチ要求が発生したと判定し、機関の空燃比をリッチ空燃比に制御する。これにより、触媒の状態が「酸素不足状態及び酸素過剰状態の何れかの状態」である期間を短くすることができるので、エミッションが悪化する期間を短くすることができる。なお、リーン要求及びリッチ要求は、以下において、単に「空燃比要求」とも総称される。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開平08−158915号公報
【発明の概要】
【0008】
ところで、出願人は、触媒の状態が「酸素不足状態(リッチ状態)」である場合の機関の空燃比を一定のリーン空燃比に制御し、触媒の状態が「酸素過剰状態(リーン状態)」である場合の機関の空燃比を一定のリッチ空燃比に制御する空燃比制御装置を開発している。この制御装置によれば、機関の空燃比及び排ガスの空燃比は略矩形波状に変化する。
【0009】
一方、例えば、V型6気筒エンジン、直列6気筒エンジン及びV型8気筒エンジン等のように、複数の気筒を含む第1気筒群(例えば、V6エンジンの右バンク)及び複数の気筒を含む第2気筒群(例えば、V6エンジンの左バンク)を備える本体部を有する内燃機関は、第1気筒群及び第2気筒群のそれぞれに対応した2系統の排気通路を備えることが多い。更に、このような機関はそれぞれの排気通路に触媒を備えることが多い。
【0010】
この場合、各排気通路の各触媒の下流に下流側空燃比センサが配設される。そして、空燃比制御装置は、各触媒の状態(各触媒に対する空燃比要求)を各下流側空燃比センサの出力値に基いて判定し、その判定の結果に応じて「第1気筒群に属する複数の気筒(第1気筒群の複数の気筒)に供給される混合気の空燃比及び第2気筒群に属する複数の気筒(第2気筒群の複数の気筒)に供給される混合気の空燃比」を互いに独立して制御する。
【0011】
ところが、図1の(A)に示したように、第1の気筒群(図1において右バンク)の複数の気筒に供給される混合気の空燃比の目標値(第1気筒群目標空燃比)と、第2の気筒群(図1において左バンク)の複数の気筒に供給される混合気の空燃比の目標値(第2気筒群目標空燃比)と、が実質的に同期すると、第1気筒群目標空燃比及び第2気筒群目標空燃比が何れもリーン空燃比である場合には、第1気筒群に属する気筒における燃焼により発生するトルク及び第2気筒群に属する気筒における燃焼により発生するトルクは何れも小さくなる。更に、第1気筒群目標空燃比と第2気筒群目標空燃比とが実質的に同期すると、第1気筒群目標空燃比及び第2気筒群目標空燃比が何れもリッチ空燃比である場合には、第1気筒群に属する気筒における燃焼により発生するトルク及び第2気筒群に属する気筒における燃焼により発生するトルクは何れも大きくなる。この結果、機関及び同機関を搭載した車両は「長い周期を有し且つ大きい振幅」を有するように振動する(図1の曲線Caを参照。)。運転者は、そのような振動を不快に感じることがある。なお、このような状態は、各触媒の最大酸素吸蔵量が互いに一致していない限り、比較的長い時間が経過すれば解消する。但し、このような状態が解消するまで、不快な振動(非許容振動)が発生し続ける。
【0012】
本発明は、係る課題を解決するためになされたものである。即ち、本発明の目的の一つは、第1気筒群及び第2気筒群のそれぞれに対応した2系統の排気通路のそれぞれに触媒を備えた機関において、最大酸素吸蔵量が小さいほうの触媒の下流に設けられている下流側空燃比センサの出力値に基いて、「第1気筒群及び第2気筒群の両群に属する気筒」に供給される混合気の空燃比を互いに逆位相(逆相)の矩形波状に制御することにより、エミッションが悪化することを回避し且つ上述した不快な振動が発生することを回避することができる内燃機関の空燃比制御装置を提供することにある。
【0013】
本発明による内燃機関の空燃比制御装置(本発明制御装置)は、「複数の気筒を含む第1気筒群」及び「複数の気筒を含む第2気筒群」を備える本体部を有する内燃機関に適用される。
【0014】
更に、本発明制御装置は、
前記第1気筒群の前記複数の気筒から排出される排ガスを通過させる第1排気通路に配設された第1触媒と、
前記第1排気通路の前記第1触媒の下流に配設された第1下流側空燃比センサと、
前記第2気筒群の前記複数の気筒から排出される排ガスを通過させる第2排気通路に配設された第2触媒と、
前記第2排気通路の前記第2触媒の下流に配設された第2下流側空燃比センサと、
を備える。
【0015】
更に、本発明制御装置は、空燃比制御手段を備える。この空燃比制御手段は、前記第1触媒及び前記第2触媒のうち「最大酸素吸蔵量が小さい方の特定触媒」の下流に配設されている「前記第1下流側空燃比センサ及び前記第2下流側空燃比センサのうちの何れか一方(選択下流側空燃比センサ)」の出力値に相関を有する値(選択下流側空燃比センサ出力相関値)と所定のリーン要求判定値(リッチ判定値)との比較の結果に基づいて同特定触媒に対するリーン要求が発生したか否かを判定する。換言すると、空燃比制御手段は、選択下流側空燃比センサ出力相関値とリーン要求判定値との比較の結果に基づいて、特定触媒の状態が「酸素不足状態(リッチ状態)」であるか否かを判定する。
【0016】
加えて、この空燃比制御手段は、前記選択下流側空燃比センサ出力相関値と所定のリッチ要求判定値(リーン判定値)との比較に基づいて前記特定触媒に対するリッチ要求が発生したか否かを判定する。換言すると、空燃比制御手段は、選択下流側空燃比センサ出力相関値とリッチ要求判定値との比較の結果に基づいて、特定触媒の状態が「酸素過剰状態(リーン状態)」であるか否かを判定する。
【0017】
この場合、選択下流側空燃比センサ出力相関値は、例えば、選択下流側空燃比センサの出力値の単位時間あたりの変化量(即ち、選択下流側空燃比センサの出力値の変化速度、選択下流側空燃比センサの出力値の時間微分値)であってもよく、選択下流側空燃比センサの出力値そのものであってもよい。選択下流側空燃比センサ出力相関値が、選択下流側空燃比センサの出力値の単位時間あたりの変化量である場合、例えば、選択下流側空燃比センサの出力値が増大している場合であってその変化量(変化速度)の大きさがリーン要求判定値(リッチ判定値)値以上となったとき、リーン要求が発生したと判定され得る。更に、選択下流側空燃比センサ出力相関値が、選択下流側空燃比センサの出力値の単位時間あたりの変化量である場合、例えば、選択下流側空燃比センサの出力値が減少している場合であってその変化量(変化速度)の大きさがリッチ要求判定値(リーン判定値)以上となったとき、リッチ要求が発生したと判定され得る。
【0018】
更に、前記空燃比制御手段は、「前記リーン要求が発生したと判定された時点から前記リッチ要求が発生したと判定される時点まで」の「リーン要求発生期間」において、前記特定触媒に排ガスを排出する「前記第1気筒群及び前記第2気筒群のうちの一方」の前記複数の気筒のそれぞれに供給される混合気の空燃比を「理論空燃比よりも大きい空燃比(リーン空燃比)」に制御する。このとき、前記空燃比制御手段は、「前記第1気筒群及び前記第2気筒群のうちの他方」の前記複数の気筒のそれぞれに供給される混合気の空燃比を「理論空燃比よりも小さい空燃比(リッチ空燃比)」に制御する。
【0019】
加えて、前記空燃比制御手段は、「前記リッチ要求が発生したと判定された時点から前記リーン要求が発生したと判定される時点まで」の「リッチ要求発生期間」において、前記特定触媒に排ガスを排出する「前記第1気筒群及び前記第2気筒群のうちの一方」の前記複数の気筒のそれぞれに供給される混合気の空燃比を「理論空燃比よりも小さい空燃比(リッチ空燃比)」に制御する。このとき、前記空燃比制御手段は、「前記第1気筒群及び前記第2気筒群のうちの他方」の前記複数の気筒のそれぞれに供給される混合気の空燃比を「理論空燃比よりも大きい空燃比(リーン空燃比)」に制御する。
このような制御は、便宜上「逆相制御」と称呼される。
【0020】
この結果、最大酸素吸蔵量が小さい方の触媒(前記特定触媒)の下流側空燃比センサの出力値に基づいて、即ち、前記特定触媒の状態(前記特定触媒に対する空燃比要求)に応じて、前記特定触媒に排ガスを供給する気筒群に属する気筒に供給される混合気の空燃比が制御される。従って、前記特定触媒に排ガスを供給する気筒群から排出される排ガスは前記特定触媒により浄化され得る。
【0021】
加えて、最大酸素吸蔵量が大きい方の触媒(非特定触媒)に排ガスを供給する気筒群に属する気筒に供給される混合気の空燃比の切替周期は、「最大酸素吸蔵量が小さい方の触媒である前記特定触媒」の状態(前記特定触媒に対する空燃比要求)の変化の周期と一致するので、非特定触媒の酸素吸蔵量は、「0」よりも大きく非特定触媒の最大酸素吸蔵量よりも小さい範囲内で変化する。その結果、前記非特定触媒に排ガスを供給する気筒群から排出される排ガスも前記非特定触媒により浄化され得る。
【0022】
更に、図1の(B)に示したように、前記第1気筒群(図1において右バンク)の複数の気筒に供給される空燃比がリッチ空燃比であるとき、前記第2気筒群(図1において左バンク)の複数の気筒に供給される空燃比はリーン空燃比となる。加えて、前記第1気筒群(図1において右バンク)の複数の気筒に供給される空燃比がリーン空燃比であるとき、前記第2気筒群(図1において左バンク)の複数の気筒に供給される空燃比はリッチ空燃比となる。
【0023】
一般に、このような機関において、第1気筒群に属する気筒の点火と第2気筒群に属する気筒の点火は交互に行われるから、機関の発生トルクは図1の(B)に示したように、極めて短時間にて増減する。例えば、前記第1気筒群の複数の気筒に供給される空燃比がリッチ空燃比であるとき、前記第2気筒群の複数の気筒に供給される空燃比はリーン空燃比となるから、第1気筒群に属する気筒における燃焼により発生するトルクは相対的に大きくなり、第2気筒群に属する気筒における燃焼により発生するトルクは相対的に小さくなる。
【0024】
そして、このように機関発生トルクが高い周波数(短い周期)にて変動する場合、発生するトルク変動に起因する「機関及び同機関を搭載した車両の振動」は減衰され易いので、同機関及び同機関を搭載した車両は「短い周期を有し且つ小さい振幅」を有するように振動する(図1(B)の曲線Cbを参照。)。この結果、運転者に不快な振動を与えることを回避することができる。
【0025】
本発明装置の他の目的、他の特徴及び付随する利点は、以下の図面を参照しつつ記述される本発明装置の各実施形態についての説明から容易に理解されるであろう。
【図面の簡単な説明】
【0026】
【図1】図1は、各バンクに対する目標空燃比、機関トルク、及び、機関等に生じる振動の変化の様子を示したタイムチャートである。
【図2】本発明の第1実施形態に係る空燃比制御装置(第1制御装置)を適用した内燃機関の概略図である。
【図3】図3は、図2に示した「右バンク用上流側空燃比センサ又は左バンク用上流側空燃比センサ」の出力値と、空燃比と、の関係を示したグラフである。
【図4】図4は、図2に示した「右バンク用下流側空燃比センサ又は左バンク用下流側空燃比センサ」の出力値と、空燃比と、の関係を示したグラフである。
【図5】図5は、第1制御装置の作用を説明するために各値を示したタイムチャートである。
【図6】図6は、第1制御装置のCPUが実行するルーチンを示したフローチャートである。
【図7】図7は、第1制御装置のCPUが実行するルーチンを示したフローチャートである。
【図8】図8は、第1制御装置のCPUが実行するルーチンを示したフローチャートである。
【図9】図9は、第1制御装置のCPUが実行するルーチンを示したフローチャートである。
【図10】図10は、第1制御装置のCPUが実行するルーチンを示したフローチャートである。
【図11】図11は、第1制御装置のCPUが実行するルーチンを示したフローチャートである。
【発明を実施するための形態】
【0027】
以下、本発明による内燃機関の空燃比制御装置の各実施形態について図面を参照しつつ説明する。
【0028】
<第1実施形態>
(構成)
図2は、第1実施形態に係る制御装置(以下、「第1制御装置」とも称呼する。)が適用された内燃機関10の概略構成を示している。機関10は、4サイクル・火花点火式・V型6気筒エンジンである。機関10は、機関本体部20と、吸気系統30と、右バンク排気系統40と、左バンク排気系統50と、を含む。
【0029】
機関本体部20は、シリンダブロック部及びシリンダヘッド部を含む。機関本体部20は、6個の気筒(燃焼室)21を備えている。第1気筒(#1)、第3気筒(#3)及び第5気筒(#5)は右バンクRBに備えられている。第1気筒(#1)、第3気筒(#3)及び第5気筒(#5)を含む気筒群は、第1気筒群とも称呼される。第2気筒(#2)、第4気筒(#4)及び第6気筒(#6)は左バンクLBに備えられている。第2気筒(#2)、第4気筒(#4)及び第6気筒(#6)を含む気筒群は、第2気筒群とも称呼される。
【0030】
各気筒は、図示しない「吸気ポート及び排気ポート」と連通している。吸気ポートと燃焼室21との連通部は図示しない吸気弁により開閉される。排気ポートと燃焼室21との連通部は図示しない排気弁により開閉される。各燃焼室21には図示しない点火プラグが配設されている。
【0031】
吸気系統30は、インテークマニホールド及び吸気管からなる吸気通路部31、スロットル弁32、及び、複数の燃料噴射弁33、を備えている。
【0032】
吸気通路部31の一端には図示しないエアフィルタが配設されている。吸気通路部31の他端は図示しない複数の枝部に分かれ、その複数の枝部のそれぞれは複数の吸気ポートのそれぞれに接続されている。
【0033】
スロットル弁32は、吸気通路部31の吸気管内に回動可能に配設されている。スロットル弁32は、吸気通路部31の通路断面積を可変とするようになっている。スロットル弁32は、図示しないスロットル弁アクチュエータにより回転駆動されるようになっている。
【0034】
燃料噴射弁33は、一つの気筒(燃焼室)21に対して一つずつ配設されている。燃料噴射弁33は、噴射指示信号に応答し、「その噴射指示信号に含まれる指示燃料噴射量の燃料」を吸気ポート(従って、燃料噴射弁33に対応する気筒21)に対して噴射するようになっている。
【0035】
右バンク排気系統40は、右バンク用エキゾーストマニホールド41、右バンク用エキゾーストパイプ42、右バンク用エキゾーストパイプ42に配設された右バンク用上流側触媒43、及び、右バンク用上流側触媒43よりも下流において右バンク用エキゾーストパイプ42に配設された「図示しない右バンク用下流側触媒」を備えている。
【0036】
右バンク用エキゾーストマニホールド41は、複数の枝部41aと集合部41bとを備えている。複数の枝部41aのそれぞれの一端は、右バンクに属する複数の気筒の排気ポートのそれぞれに接続されている。複数の枝部41aのそれぞれの他端は集合部41bに集合している。この集合部41bは、右バンク用排気集合部HK(R)とも称呼される。
【0037】
右バンク用エキゾーストパイプ42は集合部41bに接続されている。右バンクRBに属する複数の気筒の排気ポート、右バンク用エキゾーストマニホールド41及び右バンク用エキゾーストパイプ42は、右バンク用の排気通路を構成している。
【0038】
右バンク用上流側触媒43及び右バンク用下流側触媒のそれぞれは、所謂、白金、ロジウム及びパラジウム等の貴金属(触媒物質)からなる活性成分を担持する三元触媒装置(排気浄化用の触媒)である。各触媒は、各触媒に流入するガスの空燃比が「三元触媒のウインドウ内の空燃比(例えば、理論空燃比)」であるとき、HC,CO,H2などの未燃成分を酸化するとともに窒素酸化物(NOx)を還元する機能を有する。この機能は触媒機能とも称呼される。
【0039】
更に、各触媒は、酸素を吸蔵(貯蔵)する酸素吸蔵機能を有する。即ち、各触媒は、その触媒に流入するガス(触媒流入ガス)に過剰の酸素が含まれているとき、その酸素を吸蔵するとともにNOxを浄化する。各触媒は、触媒流入ガスに過剰な未燃物が含まれているとき、吸蔵している酸素を放出してその未燃物を浄化する。この酸素吸蔵機能は、触媒に担持されているセリア(CeO2)等の酸素吸蔵材によってもたらされる。各触媒は、酸素吸蔵機能により空燃比が理論空燃比から偏移したとしても未燃成分及び窒素酸化物を浄化することができる。
【0040】
左バンク排気系統50は、左バンク用エキゾーストマニホールド51、左バンク用エキゾーストパイプ52、左バンク用エキゾーストパイプ52に配設された左バンク用上流側触媒53、及び、左バンク用上流側触媒53よりも下流において左バンク用エキゾーストパイプ52に配設された「図示しない左バンク用下流側触媒」を備えている。
【0041】
左バンク用エキゾーストマニホールド51は、複数の枝部51aと集合部51bとを備えている。複数の枝部51aのそれぞれの一端は、左バンクに属する複数の気筒の排気ポートのそれぞれに接続されている。複数の枝部51aのそれぞれの他端は集合部51bに集合している。この集合部51bは、左バンク用排気集合部HK(L)とも称呼される。
【0042】
左バンク用エキゾーストパイプ52は集合部51bに接続されている。左バンクLBに属する複数の気筒の排気ポート、左バンク用エキゾーストマニホールド51及び左バンク用エキゾーストパイプ52は、左バンク用の排気通路を構成している。
【0043】
左バンク用上流側触媒53は右バンク用上流側触媒43と同じ三元触媒である。左バンク用下流側触媒は右バンク用下流側触媒と同じ三元触媒である。
【0044】
このシステムは、熱線式エアフローメータ61、スロットルポジションセンサ62、水温センサ63、クランクポジションセンサ64、インテークカムポジションセンサ65、右バンク用上流側空燃比センサ66R、左バンク用上流側空燃比センサ66L、右バンク用下流側空燃比センサ67R、左バンク用下流側空燃比センサ67L、及び、アクセル開度センサ68を備えている。
【0045】
エアフローメータ61は、吸気通路部31を流れる吸入空気の質量流量(吸入空気流量)Gaに応じた信号を出力するようになっている。即ち、吸入空気量Gaは、単位時間あたりに機関10に吸入される吸入空気量を表す。
【0046】
スロットルポジションセンサ62は、スロットル弁32の開度(スロットル弁開度)を検出し、スロットル弁開度TAを表す信号を出力するようになっている。
【0047】
水温センサ63は、内燃機関10の冷却水の温度を検出し、冷却水温THWを表す信号を出力するようになっている。冷却水温THWは、機関10の暖機状態(機関10の温度)を表す運転状態指標量である。
【0048】
クランクポジションセンサ64は、クランク軸が10°回転する毎に幅狭のパルスを有するとともに同クランク軸が360°回転する毎に幅広のパルスを有する信号を出力するようになっている。この信号は、後述する電気制御装置70によって機関回転速度NEに変換される。
【0049】
インテークカムポジションセンサ65は、インテークカムシャフトが所定角度から90度、次いで90度、更に180度回転する毎に一つのパルスを出力するようになっている。後述する電気制御装置70は、クランクポジションセンサ64及びインテークカムポジションセンサ65からの信号に基づいて、基準気筒(例えば第1気筒)の圧縮上死点を基準とした絶対クランク角度CAを取得するようになっている。この絶対クランク角度CAは、基準気筒の圧縮上死点において「0°クランク角度」に設定され、クランク軸の回転角度に応じて720°クランク角度まで増大し、その時点にて再び0°クランク角度に設定される。
【0050】
右バンク用上流側空燃比センサ66Rは、右バンク用エキゾーストマニホールド41の集合部41b(右バンク用排気集合部HK(R))と右バンク用上流側触媒43との間の位置において「右バンク用エキゾーストマニホールド41及び右バンク用エキゾーストパイプ42の何れか」に配設されている。
【0051】
右バンク用上流側空燃比センサ66Rは、例えば、特開平11−72473号公報、特開2000−65782号公報及び特開2004−69547号公報等に開示された「拡散抵抗層を備える限界電流式広域空燃比センサ」である。
【0052】
右バンク用上流側空燃比センサ66Rは、右バンク用上流側空燃比センサ66Rの配設位置を流れる排ガスの空燃比(右バンク用上流側触媒43に流入するガスである「触媒流入ガス」の空燃比、右バンク上流側空燃比abyfs(R)=右バンク検出空燃比abyfs(R))に応じた出力値Vabyfs(R)を出力する。出力値Vabyfs(R)は、図3に示したように、右バンク用上流側触媒43に流入するガスの空燃比abyfs(R)が大きくなるほど(リーン側の空燃比になるほど)増大する。
【0053】
電気制御装置70は、出力値Vabyfs(R)と右バンク上流側空燃比abyfs(R)との図3に示した関係を規定した空燃比変換テーブル(マップ)Mapabyfsを記憶している。電気制御装置70は、出力値Vabyfs(R)を空燃比変換テーブルMapabyfsに適用することにより、実際の右バンク上流側空燃比abyfs(R)を検出する(右バンク検出空燃比abyfs(R)を取得する)。
【0054】
再び、図2を参照すると、右バンク用下流側空燃比センサ67Rは、右バンク用エキゾーストパイプ42内に配設されている。右バンク用下流側空燃比センサ67Rの配設位置は、右バンク用上流側触媒43よりも下流側であり、且つ、右バンク用下流側触媒よりも上流側(即ち、右バンク用上流側触媒43と右バンク用下流側触媒との間の排気通路)である。右バンク用下流側空燃比センサ67Rは、周知の起電力式の酸素濃度センサ(安定化ジルコニア等の固体電解質を用いた周知の濃淡電池型の酸素濃度センサ)である。右バンク用下流側空燃比センサ67Rは、右バンク用の排気通路であって右バンク用下流側空燃比センサ67Rが配設されている部位を通過するガスである被検出ガスの空燃比に応じた出力値Voxs(R)を発生するようになっている。換言すると、出力値Voxs(R)は、右バンク用上流側触媒43から流出し且つ右バンク用下流側触媒に流入するガスの空燃比に応じた値である。
【0055】
この出力値Voxs(R)は、図4に示したように、右バンク用上流側触媒43から流出したガスの空燃比が理論空燃比よりもリッチのとき最大出力値max(例えば、約0.9V〜1.0V)となる。出力値Voxs(R)は、右バンク用上流側触媒43から流出したガスの空燃比が理論空燃比よりもリーンのとき最小出力値min(例えば、約0.1V〜0V)となる。更に、出力値Voxs(L)は、右バンク用上流側触媒43から流出したガスの空燃比が理論空燃比であるとき最大出力値maxと最小出力値minの略中間の電圧Vst(中央値Vmid、中間電圧Vst、例えば、約0.5V)となる。出力値Voxs(R)は、右バンク用上流側触媒43から流出したガスの空燃比が理論空燃比よりもリッチな空燃比からリーンな空燃比へと変化する際に最大出力値maxから最小出力値minへと急変する。同様に、出力値Voxs(R)は、右バンク用上流側触媒43から流出したガスの空燃比が理論空燃比よりもリーンな空燃比からリッチな空燃比へと変化する際に最小出力値minから最大出力値maxへと急変する。
【0056】
再び、図2を参照すると、左バンク用上流側空燃比センサ66Lは、左バンク用エキゾーストマニホールド51の集合部51b(左バンク用排気集合部HK(L))と左バンク用上流側触媒53との間の位置において「左バンク用エキゾーストマニホールド51及び左バンク用エキゾーストパイプ52の何れか」に配設されている。左バンク用上流側空燃比センサ66Lは、右バンク用上流側空燃比センサ66Rと同じ「拡散抵抗層を備える限界電流式広域空燃比センサ」である。
【0057】
左バンク用上流側空燃比センサ66Lは、左バンク用上流側空燃比センサ66Lの配設位置を流れる排ガスの空燃比(左バンク用上流側触媒53に流入するガスである「触媒流入ガス」の空燃比、左バンク上流側空燃比abyfs(L)=左バンク検出空燃比abyfs(L))に応じた出力値Vabyfs(L)を出力する。出力値Vabyfs(L)は、図3に示したように、左バンク用上流側触媒53に流入するガスの空燃比が大きくなるほど(リーン側の空燃比になるほど)増大する。
【0058】
電気制御装置70は、出力値Vabyfs(L)と左バンク上流側空燃比abyfs(L)との図3に示した関係を規定した空燃比変換テーブル(マップ)Mapabyfsを記憶している。電気制御装置70は、出力値Vabyfs(L)を空燃比変換テーブルMapabyfsに適用することにより、実際の左バンク上流側空燃比abyfs(L)を検出する(左バンク検出空燃比abyfs(L)を取得する)。
【0059】
再び、図2を参照すると、左バンク用下流側空燃比センサ67Lは、左バンク用エキゾーストパイプ52内に配設されている。左バンク用下流側空燃比センサ67Lの配設位置は、左バンク用上流側触媒53よりも下流側であり、且つ、左バンク用下流側触媒よりも上流側(即ち、左バンク用上流側触媒53と左バンク用下流側触媒との間の排気通路)である。左バンク用下流側空燃比センサ67Lは、右バンク用下流側空燃比センサ67Rと同じ起電力式の酸素濃度センサである。
【0060】
従って、左バンク用下流側空燃比センサ67Lは、左バンク用の排気通路であって左バンク用下流側空燃比センサ67Lが配設されている部位を通過するガスである被検出ガスの空燃比に応じた出力値Voxs(L)を発生するようになっている(図4を参照。)。
【0061】
図2に示したアクセル開度センサ68は、運転者によって操作されるアクセルペダルAPの操作量Accp(アクセルペダル操作量、アクセルペダルAPの開度)を表す信号を出力するようになっている。アクセルペダル操作量Accpは、アクセルペダルAPの操作量が大きくなるとともに大きくなる。
【0062】
電気制御装置70は、「CPU、CPUが実行するプログラム、テーブル(マップ、関数)及び定数等を予め記憶したROM、CPUが必要に応じてデータを一時的に格納するRAM、バックアップRAM(B−RAM)、並びに、ADコンバータを含むインターフェース等」からなる周知のマイクロコンピュータである。
【0063】
バックアップRAMは、機関10を搭載した車両の図示しないイグニッション・キー・スイッチの位置(オフ位置、始動位置及びオン位置等の何れか)に関わらず、車両に搭載されたバッテリから電力の供給を受けるようになっている。バックアップRAMは、バッテリから電力の供給を受けている場合、CPUの指示に応じてデータを格納する(データが書き込まれる)とともに、そのデータを読み出し可能となるように保持(記憶)する。従って、バックアップRAMは、機関10の運転停止中においてもデータを保持することができる。
【0064】
バックアップRAMは、バッテリが車両から取り外される等によりバッテリからの電力供給が遮断されると、データを保持することができない。そこで、CPUは、バックアップRAMへの電力供給が再開されたとき、バックアップRAMに保持されるべきデータを初期化(デフォルト値に設定)するようになっている。なお、バックアップRAMは、EEPROM等の読み書き可能な不揮発性メモリであってもよい。
【0065】
電気制御装置70は、上述したセンサ等と接続され、CPUにそれらのセンサからの信号を供給するようになっている。更に、電気制御装置70は、CPUの指示に応じて、各気筒に対応して設けられた点火プラグ(実際にはイグナイタ)、各気筒に対応して設けられた燃料噴射弁33、及び、スロットル弁アクチュエータ等に駆動信号(指示信号)を送出するようになっている。
【0066】
なお、電気制御装置70は、取得されたアクセルペダルの操作量Accpが大きくなるほどスロットル弁開度TAが大きくなるように、スロットル弁アクチュエータに指示信号を送出するようになっている。即ち、電気制御装置70は、運転者により変更される機関10の加速操作量(アクセルペダル操作量Accp)に応じて「機関10の吸気通路に配設されたスロットル弁32」の開度を変更するスロットル弁駆動手段を備えている。また、機関10における点火順序は、例えば、第1気筒、第2気筒、第3気筒、第4気筒、第5気筒、第6気筒の順である。この点火順序に限定はされないが、機関10においては、第1気筒群(右バンク)に属する気筒の点火と第2気筒群(左バンク)に属する気筒の点火は交互に行われるようになっている。
【0067】
(作動の概要)
次に、上記のように構成された第1制御装置の作動の概略について説明する。
第1制御装置は、右バンクフィードバック制御条件が成立すると、右バンク用下流側空燃比センサ67Rの出力値Voxs(R)に基いて「右バンク用上流側触媒43が酸素過剰状態にあるか酸素不足状態にあるか」を判定する。換言すると、出力値Voxs(R)に基いて、右バンクに属する複数の気筒に対する空燃比要求(右バンク空燃比要求)がリッチ要求であるのかリーン要求であるのかを判定する。
【0068】
より具体的に述べると、第1制御装置は、出力値Voxs(R)が増大している場合であってその変化量(変化速度)の大きさが右バンク用リッチ判定値(右バンク用リーン要求判定値)dRichRth以上となったとき、右バンク用上流側触媒43の状態が酸素不足状態(リッチ状態)にあり、従って、右バンクに対してリーン要求が発生したと判定する。更に、第1制御装置は、出力値Voxs(R)が減少している場合であってその変化量(変化速度)の大きさが右バンク用リーン判定値(右バンク用リッチ要求判定値)dLeanRth以上となったとき、右バンク用上流側触媒43の状態が酸素過剰状態(リーン状態)にあり、従って、右バンクに対してリッチ要求が発生したと判定する。
【0069】
同様に、第1制御装置は、左バンクフィードバック制御条件が成立すると、左バンク用下流側空燃比センサ67Lの出力値Voxs(L)に基いて「左バンク用上流側触媒53が酸素過剰状態にあるか酸素不足状態にあるか」を判定する。換言すると、出力値Voxs(L)に基いて、左バンクに属する複数の気筒に対する空燃比要求(左バンク空燃比要求)がリッチ要求であるのかリーン要求であるのかを判定する。
【0070】
より具体的に述べると、第1制御装置は、出力値Voxs(L)が増大している場合であってその変化量(変化速度)の大きさが左バンク用リッチ判定値(左バンク用リーン要求判定値)dRichLth以上となったとき、左バンク用上流側触媒53の状態が酸素不足状態(リッチ状態)にあり、従って、左バンクに対してリーン要求が発生したと判定する。更に、第1制御装置は、出力値Voxs(L)が減少している場合であってその変化量(変化速度)の大きさが左バンク用リーン判定値(左バンク用リッチ要求判定値)dLeanLth以上となったとき、左バンク用上流側触媒53の状態が酸素過剰状態(リーン状態)にあり、従って、左バンクに対してリッチ要求が発生したと判定する。
【0071】
なお、リッチ要求が発生したと判定されてからリーン要求が発生したと判定されるまでの期間は、「リッチ要求発生期間」と称呼される。リーン要求が発生したと判定されてからリッチ要求が発生したと判定されるまでの期間は、「リーン要求発生期間」と称呼される。
【0072】
そして、第1制御装置は、右バンク空燃比要求に基いて、右バンクに属する複数の気筒に供給される混合気の空燃比(右バンク空燃比)の目標値(右バンク目標空燃比abyfrR)を決定し、実際の右バンク空燃比(即ち、右バンク用上流側空燃比センサ66Rの出力値Vabyfs(R)に基いて取得される右バンク上流側空燃比abyfs(R))が右バンク目標空燃比abyfrRに一致するように、右バンク空燃比(右バンクに属する複数の気筒に対する燃料噴射量)を制御する。即ち、右バンクメインフィードバック制御を実行する。
【0073】
同様に、第1制御装置は、左バンク空燃比要求に基いて、左バンクに属する複数の気筒に供給される混合気の空燃比(左バンク空燃比)の目標値(左バンク目標空燃比abyfrL)を決定し、実際の左バンク空燃比(即ち、左バンク用上流側空燃比センサ66Lの出力値Vabyfs(L)に基いて取得される左バンク上流側空燃比abyfs(L))が左バンク目標空燃比abyfrLに一致するように、左バンク空燃比(左バンクに属する複数の気筒に対する燃料噴射量)を制御する。即ち、左バンクメインフィードバック制御を実行する。
【0074】
この状態において、図5の(A)に示したように、右バンク目標空燃比abyfrR(即ち、右バンク空燃比要求)と左バンク目標空燃比abyfrL(即ち、左バンク空燃比要求)とが偶発的且つ実質的に同期すると、図1を参照して説明したように、機関10に「振幅が大きく且つ周期が長い振動」が発生する。但し、この場合、右バンク目標空燃比abyfrRの目標リッチ空燃比afRich及び目標リーン空燃比afLeanの間の切り替え周期と、左バンク目標空燃比abyfrLの目標リッチ空燃比afRich及び目標リーン空燃比afLeanの間の切り替え周期と、は本来は互いに相違する(後述する非特定触媒に対応するバンクに対する目標空燃比の切り替え周期の方が長い)。
【0075】
そこで、第1制御装置は、右バンク目標空燃比abyfrRと左バンク目標空燃比abyfrLとが実質的に同期しているか否かを判定する。更に、第1制御装置は、それらが同期していると判定したとき(このタイミングを同期時と称呼する。)、右バンク用上流側触媒43の最大酸素吸蔵量CmaxRと左バンク用上流側触媒53の最大酸素吸蔵量CmaxLとのうち何れが大きいかを判定する。
【0076】
なお、右バンク用上流側触媒43と左バンク用上流側触媒53とのうち、最大酸素吸蔵量が小さい方の触媒を「特定触媒」と称呼する。右バンク用上流側触媒43と左バンク用上流側触媒53とのうち、最大酸素吸蔵量が大きい方の触媒を「非特定触媒」と称呼する。更に、特定触媒の下流の位置に配設されている下流側空燃比センサ(右バンク用下流側空燃比センサ67R及び左バンク用下流側空燃比センサ67Lのうちの一方)を「選択下流側空燃比センサ」と称呼し、残りの下流側空燃比センサ(非特定触媒の下流の位置に配設されている下流側空燃比センサ)を「非選択下流側空燃比センサ」と称呼する。加えて、特定触媒に排ガスを供給しているバンクを「特定バンク」、特定バンクに属する複数の気筒を「特定バンク気筒」、非特定触媒に排ガスを供給しているバンクを「非特定バンク」、非特定バンクに属する複数の気筒を「非特定バンク気筒」と称呼する。
【0077】
そして、第1制御装置は、非特定バンク気筒に対するリッチ判定値を小さくするとともに、非特定バンク気筒に対するリーン判定値を小さくする。これにより、非特定バンクに対する空燃比要求(非特定バンク上流側空燃比)の切り替え周期が次第に短くなる。即ち、図5の(B)に示したように非特定バンク気筒(図5の例においては左バンク気筒)に対する目標空燃比の周期が次第に短くなる。
【0078】
この状態が継続すると、図5の(C)に示したように、特定バンクに対する目標空燃比(図5の例においては右バンク目標空燃比abyfrR)と非特定バンクに対する目標空燃比(図5の例においては左バンク目標空燃比abyfrL)とが、実質的に同じ周期(周期の差が所定値以内)であり、且つ、互いに逆相となるように変化するように変化する。
【0079】
即ち、特定バンクに対する目標空燃比がリーン空燃比からリッチ空燃比へと切り替わるタイミングにて非特定バンクに対する目標空燃比がリッチ空燃比からリーン空燃比へと切り替わり、特定バンクに対する目標空燃比がリッチ空燃比からリーン空燃比へと切り替わるタイミングにて非特定バンクに対する目標空燃比がリーン空燃比からリッチ空燃比へと切り替わる。このタイミングを逆相成立時と称呼する。また、同期時から逆相成立時までの制御(非特定バンクに対する目標空燃比を特定バンクに対する目標空燃比と逆相になるようにする制御)を逆相制御への移行制御と称呼する。
【0080】
逆相制御への移行制御時以降において、第1制御装置は、選択下流側空燃比センサの出力値に基いて特定触媒の状態を判定し(即ち、特定バンクに対する空燃比要求を決定し)、その特定触媒の状態(その特定バンクに対する空燃比要求)に基いて特定バンクの空燃比(特定バンク気筒に対する燃料噴射量)を制御する。
【0081】
更に、第1制御装置は、非特定バンクの目標空燃比が特定バンクの目標空燃比に対して理論空燃比を挟んで反対の空燃比になるように非特定バンクの目標空燃比を設定し、その設定された非特定バンクの目標空燃比に基いて非特定バンク空燃比(非特定バンク気筒に対する燃料噴射量)を制御する。即ち、第1制御装置は、特定バンクの目標空燃比がリッチ空燃比であれば非特定バンクの目標空燃比をリーン空燃比に設定し、特定バンクの目標空燃比がリーン空燃比であれば非特定バンクの目標空燃比をリッチ空燃比に設定する。この選択下流側空燃比センサの出力値に基く両バンクの空燃比制御を、逆相制御と称呼する(図5の(C)を参照。)。この結果、図1の(B)を参照して説明したように、機関10の振動は小さくなる。
【0082】
(作動の詳細)
次に、上記のように構成された第1制御装置の作動の詳細について説明する。
<右バンク燃料噴射制御>
第1制御装置のCPUは、図6に示した右バンク燃料噴射制御ルーチンを、任意の気筒のクランク角が吸気上死点前の所定クランク角度(例えば、BTDC90°CA)となる毎に繰り返し実行するようになっている。この「クランク角が吸気上死点前の所定クランク角度に一致した気筒」は燃料噴射気筒とも称呼される。
【0083】
従って、所定のタイミングになると、CPUはステップ600から処理を開始してステップ605に進み、燃料噴射気筒が右バンクに属する気筒(右バンク気筒)であるか否かを判定する。このとき、燃料噴射気筒が右バンク気筒でなければ、CPUはステップ605にて「No」と判定し、ステップ695に直接進んで本ルーチンを一旦終了する。
【0084】
これに対し、燃料噴射気筒が右バンク気筒であると、CPUはステップ605にて「Yes」と判定してステップ610に進み、「エアフローメータ61により計測された吸入空気量Ga、クランクポジションセンサ64の信号に基いて取得された機関回転速度NE、及び、ルックアップテーブルMapMc」に基いて「燃料噴射気筒に吸入される空気量」である「筒内吸入空気量Mc(k)」を取得する。筒内吸入空気量Mc(k)は、各吸気行程に対応されながらRAM内に記憶される。筒内吸入空気量Mc(k)は、周知の空気モデルにより算出されてもよい。
【0085】
次に、CPUはステップ615に進み、右バンクフィードバック制御フラグXFBRの値が「1」であるか否かを判定する。この右バンクフィードバック制御フラグXFBRの値は、右バンクに対する空燃比のフィードバック制御条件が成立しているときに「1」に設定され、右バンクに対するフィードバック制御条件が成立していないときに「0」に設定される。更に、右バンクフィードバック制御フラグXFBRの値は、イニシャルルーチンにおいて「0」に設定されるようになっている。イニシャルルーチンは、機関10を搭載した車両のイグニッション・キー・スイッチの位置がオフ位置からオン位置へと変更されたときにCPUにより実行される初期化ルーチンである。
【0086】
右バンクに対するフィードバック制御条件は、例えば、以下の総ての条件が成立したときに成立する。
(A1)右バンク用上流側空燃比センサ66Rが活性化している。
(A2)右バンク用下流側空燃比センサ67Rが活性化している。
(A3)機関の負荷KLが閾値負荷KLfbth以下である。
【0087】
なお、負荷KLは、本例において負荷率(充填率)KLであり、下記の(1)式に基いて算出される。この(1)式において、ρは空気密度(単位は(g/l))、Lは機関10の排気量(単位は(l))、6は機関10の気筒数である。但し、負荷KLは、筒内吸入空気量Mc、スロットル弁開度TA及びアクセルペダル操作量Accp等であってもよい。
KL={Mc(k)/(ρ・L/6)}・100(%)…(1)
【0088】
右バンクフィードバック制御フラグXFBRの値が「1」でなければ、CPUはステップ615にて「No」と判定してステップ620に進み、右バンク目標空燃比abyfrRを理論空燃比stoich(例えば、14.6)に設定する。
【0089】
次に、CPUは以下に述べるステップ625乃至ステップ640の処理を順に行い、ステップ695に進んで本ルーチンを一旦終了する。
【0090】
ステップ625:CPUは、筒内吸入空気量Mcを右バンク目標空燃比abyfrRで除することによって基本燃料噴射量Fbaseを算出する。
【0091】
ステップ630:CPUは、図示しないルーチンにより別途計算されている右バンクメインフィードバック量KFmainRを読み込む。右バンクメインフィードバック量KFmainRは右バンク上流側空燃比abyfs(R)(=右バンク検出空燃比abyfs(R))が右バンク目標空燃比abyfrRに一致するように周知のPID制御に基づいて算出される。なお、右バンクメインフィードバック量KFmainRは、右バンクフィードバック制御フラグXFBRの値が「0」であるとき「1」に設定される。更に、右バンクメインフィードバック量KFmainRは常に「1」に設定されてもよい。即ち、右バンクメインフィードバック量KFmainRを用いたフィードバック制御は本実施形態において必須ではない。
【0092】
ステップ635:CPUは、基本燃料噴射量Fbaseを右バンクメインフィードバック量KFmainRにより補正することによって指示燃料噴射量Fiを算出する。より具体的に述べると、CPUは、基本燃料噴射量Fbaseに右バンクメインフィードバック量KFmainRを乗じることによって指示燃料噴射量Fiを算出する。
【0093】
ステップ640:CPUは、「指示燃料噴射量Fiの燃料」を「燃料噴射気筒に対応して設けられている燃料噴射弁33」から噴射させるための噴射指示信号を、その燃料噴射弁33に送出する。
【0094】
この結果、右バンク空燃比を右バンク目標空燃比abyfrRに一致させるために必要な量の燃料が燃料噴射気筒の燃料噴射弁33から噴射させられる。即ち、ステップ625乃至ステップ640は、「右バンク空燃比が右バンク目標空燃比abyfrRに一致するように指示燃料噴射量Fiを制御する」右バンク指示燃料噴射量制御手段を構成している。
【0095】
一方、CPUがステップ615の処理を行う時点において、右バンクフィードバック制御フラグXFBRの値が「1」であると、CPUはステップ615にて「Yes」と判定してステップ645に進み、逆相制御実行フラグXgyakusoの値が「0」であるか否かを判定する。この逆相制御実行フラグXgyakusoの値は上述したイニシャルルーチンにおいて「0」に設定されるようになっている。更に、逆相制御実行フラグXgyakusoの値は後述するルーチンにより、逆相制御の実行が開始される時点にて「1」に設定される。
【0096】
いま、逆相制御実行フラグXgyakusoの値が「0」であると仮定する。この場合、CPUはステップ645にて「Yes」と判定してステップ650に進み、右バンク触媒リーン状態表示フラグXLeanRに右バンク用上流側触媒43の状態を示すフラグXCCLeanRの値を格納する。右バンク用上流側触媒43の状態を示すフラグXCCLeanRの値は、後述するルーチンにより右バンク用下流側空燃比センサ67Rの出力値Voxs(R)に基いて設定される。即ち、フラグXCCLeanRの値は、右バンク用上流側触媒43の状態が酸素過剰状態であると判定されたとき「1」に設定され、右バンク用上流側触媒43の状態が酸素不足状態であると判定されたとき「0」に設定される。
【0097】
次に、CPUはステップ655に進み、右バンク触媒リーン状態表示フラグXLeanRの値が「1」であるか否かを判定する。即ち、この場合、右バンク用上流側触媒43の状態を示すフラグXCCLeanRの値が「1」であるか否かが実質的に判定される。このとき、右バンク触媒リーン状態表示フラグXLeanRの値が「1」であると、CPUはステップ655にて「Yes」と判定してステップ660に進み、右バンク目標空燃比abyfrRを目標リッチ空燃比afRich(理論空燃比よりも小さい一定の空燃比、例えば、14.2)」に設定する。その後、CPUはステップ625以降に進む。従って、右バンク空燃比は目標リッチ空燃比afRichに一致させられる。
【0098】
これに対し、CPUがステップ655の処理を実行する時点において、右バンク触媒リーン状態表示フラグXLeanRの値が「0」であると、CPUはステップ655にて「No」と判定してステップ665に進み、右バンク目標空燃比abyfrRを「所定の目標リーン空燃比afLean(理論空燃比よりも大きい一定の空燃比、例えば、15.0)」に設定する。その後、CPUはステップ625以降に進む。従って、右バンク空燃比は目標リーン空燃比afLeanに一致させられる。
【0099】
このように、逆相制御実行フラグXgyakusoの値が「0」であるとき、右バンク目標空燃比abyfrR(従って、右バンクの空燃比)は右バンク用上流側触媒43の状態を示すフラグXCCLeanRに基いて制御される。即ち、右バンク空燃比は、右バンク用下流側空燃比センサ67Rの出力値Voxs(R)に基いて決定される右バンク用上流側触媒43の状態に応じて制御される。
【0100】
これに対し、CPUがステップ645の処理を実行する時点において、逆相制御実行フラグXgyakusoの値が「1」であると、CPUはそのステップ645にて「No」と判定してステップ670に進み、右バンク用上流側触媒43の最大酸素吸蔵量CmaxRが左バンク用上流側触媒53の最大酸素吸蔵量CmaxLよりも小さいか否かを判定する。なお、最大酸素吸蔵量CmaxR及び最大酸素吸蔵量CmaxLは、後述するように周知の手法に基いて別途算出されている。
【0101】
このとき、右バンク用上流側触媒43の最大酸素吸蔵量CmaxRが左バンク用上流側触媒53の最大酸素吸蔵量CmaxLよりも小さいと、CPUはステップ670にて「Yes」と判定してステップ650に進み、右バンク触媒リーン状態表示フラグXLeanRに右バンク用上流側触媒43の状態を示すフラグXCCLeanRの値を格納する。その結果、右バンク目標空燃比abyfrR(従って、右バンクの空燃比)は、「最大酸素吸蔵量が小さい方の触媒である右バンク用上流側触媒43(特定触媒)の下流側空燃比センサ(選択下流側空燃比センサ)である右バンク用下流側空燃比センサ67R」の出力値Voxs(R)に基いて制御される。即ち、右バンクの空燃比は、特定触媒である右バンク用上流側触媒43の状態に基く空燃比要求に従って制御される。
【0102】
これに対し、右バンク用上流側触媒43の最大酸素吸蔵量CmaxRが左バンク用上流側触媒53の最大酸素吸蔵量CmaxLよりも大きいと、CPUはステップ670にて「No」と判定してステップ675に進み、右バンク触媒リーン状態表示フラグXLeanRに「左バンク用上流側触媒53の状態を示すフラグXCCLeanLの反転値」を格納する。なお、任意のフラグXの反転値とは、フラグXが「1」であるとき「0」となり、フラグXが「0」であるとき「1」となる値である。
【0103】
この結果、右バンクの空燃比は、「最大酸素吸蔵量が小さい方の触媒である左バンク用上流側触媒53(特定触媒)の下流側空燃比センサ(選択下流側空燃比センサ)である左バンク用下流側空燃比センサ67L」の出力値Voxs(L)に基いて制御される。即ち、右バンクの空燃比は、特定触媒である左バンク用上流側触媒53の状態に基く空燃比要求に従って制御される。一方、後述する図7の「ステップ770及びステップ750」に示したように、この場合、左バンク触媒リーン状態表示フラグXLeanLに「左バンク用上流側触媒53の状態を示すフラグXCCLeanLの値」が設定される。その結果、右バンク目標空燃比abyfrRは左バンク目標空燃比abyfrLと逆相にて変化する。換言すると、右バンクの空燃比は、左バンク用上流側触媒53の状態に応じて制御される。
【0104】
<左バンク燃料噴射量制御>
第1制御装置のCPUは、図7に示した左バンク燃料噴射制御ルーチンを、任意の気筒のクランク角が吸気上死点前の所定クランク角度(例えば、BTDC90°CA)となる毎に繰り返し実行するようになっている。
【0105】
従って、所定のタイミングになると、CPUはステップ700から処理を開始してステップ705に進み、燃料噴射気筒が左バンクに属する気筒(左バンク気筒)であるか否かを判定する。このとき、燃料噴射気筒が左バンク気筒でなければ、CPUはステップ705にて「No」と判定し、ステップ795に直接進んで本ルーチンを一旦終了する。
【0106】
これに対し、燃料噴射気筒が左バンク気筒であると、CPUはステップ705にて「Yes」と判定してステップ710に進み、ステップ610と同様に「筒内吸入空気量Mc(k)」を取得する。
【0107】
次に、CPUはステップ715に進み、左バンクフィードバック制御フラグXFBLの値が「1」であるか否かを判定する。この左バンクフィードバック制御フラグXFBLの値は、左バンクに対する空燃比のフィードバック制御条件が成立しているときに「1」に設定され、左バンクに対するフィードバック制御条件が成立していないときに「0」に設定される。更に、左バンクフィードバック制御フラグXFBLの値は、上述したイニシャルルーチンにおいて「0」に設定されるようになっている。
【0108】
左バンクに対するフィードバック制御条件は、例えば、以下の総ての条件が成立したときに成立する。
(A1)左バンク用上流側空燃比センサ66Lが活性化している。
(A2)左バンク用下流側空燃比センサ67Lが活性化している。
(A3)機関の負荷KLが閾値負荷KLfbth以下である。
【0109】
左バンクフィードバック制御フラグXFBLの値が「1」でなければ、CPUはステップ715にて「No」と判定してステップ720に進み、左バンク目標空燃比abyfrLを理論空燃比stoichに設定する。
【0110】
次に、CPUは以下に述べるステップ725乃至ステップ740の処理を順に行い、ステップ795に進んで本ルーチンを一旦終了する。
【0111】
ステップ725:CPUは、筒内吸入空気量Mcを左バンク目標空燃比abyfrLで除することによって基本燃料噴射量Fbaseを算出する。
【0112】
ステップ730:CPUは、図示しないルーチンにより別途計算されている左バンクメインフィードバック量KFmainLを読み込む。左バンクメインフィードバック量KFmainLは左バンク上流側空燃比abyfs(L)(=左バンク検出空燃比abyfs(L))が左バンク目標空燃比abyfrLに一致するように周知のPID制御に基づいて算出される。なお、左バンクメインフィードバック量KFmainLは、左バンクフィードバック制御フラグXFBLの値が「0」であるとき「1」に設定される。更に、左バンクメインフィードバック量KFmainLは常に「1」に設定されてもよい。即ち、左バンクメインフィードバック量KFmainLを用いたフィードバック制御は本実施形態において必須ではない。
【0113】
ステップ735:CPUは、基本燃料噴射量Fbaseを左バンクメインフィードバック量KFmainLにより補正することによって指示燃料噴射量Fiを算出する。より具体的に述べると、CPUは、基本燃料噴射量Fbaseに左バンクメインフィードバック量KFmainLを乗じることによって指示燃料噴射量Fiを算出する。
【0114】
ステップ740:CPUは、「指示燃料噴射量Fiの燃料」を「燃料噴射気筒に対応して設けられている燃料噴射弁33」から噴射させるための噴射指示信号を、その燃料噴射弁33に送出する。
【0115】
この結果、左バンク空燃比を左バンク目標空燃比abyfrLに一致させるために必要な量の燃料が燃料噴射気筒の燃料噴射弁33から噴射させられる。即ち、ステップ725乃至ステップ740は、「左バンク空燃比が左バンク目標空燃比abyfrLに一致するように指示燃料噴射量Fiを制御する」左バンク指示燃料噴射量制御手段を構成している。
【0116】
一方、CPUがステップ715の処理を行う時点において、左バンクフィードバック制御フラグXFBLの値が「1」であると、CPUはステップ715にて「Yes」と判定してステップ745に進み、逆相制御実行フラグXgyakusoの値が「0」であるか否かを判定する。
【0117】
いま、逆相制御実行フラグXgyakusoの値が「0」であると仮定する。この場合、CPUはステップ745にて「Yes」と判定してステップ750に進み、左バンク触媒リーン状態表示フラグXLeanLに左バンク用上流側触媒53の状態を示すフラグXCCLeanLの値を格納する。左バンク用上流側触媒53の状態を示すフラグXCCLeanLの値は、後述するルーチンにより左バンク用下流側空燃比センサ67Lの出力値Voxs(L)に基いて設定される。即ち、フラグXCCLeanLの値は、左バンク用上流側触媒53の状態が酸素過剰状態であると判定されたとき「1」に設定され、左バンク用上流側触媒53の状態が酸素不足状態であると判定されたとき「0」に設定される。
【0118】
次に、CPUはステップ755に進み、左バンク触媒リーン状態表示フラグXLeanLの値が「1」であるか否かを判定する。即ち、この場合、左バンク用上流側触媒53の状態を示すフラグXCCLeanLの値が「1」であるか否かが実質的に判定される。このとき、左バンク触媒リーン状態表示フラグXLeanLの値が「1」であると、CPUはステップ755にて「Yes」と判定してステップ760に進み、左バンク目標空燃比abyfrLを目標リッチ空燃比afRichに設定する。その後、CPUはステップ725以降に進む。従って、左バンク空燃比は目標リッチ空燃比afRichに一致させられる。
【0119】
これに対し、CPUがステップ755の処理を実行する時点において、左バンク触媒リーン状態表示フラグXLeanLの値が「0」であると、CPUはステップ755にて「No」と判定してステップ765に進み、左バンク目標空燃比abyfrLを目標リーン空燃比afLeanに設定する。その後、CPUはステップ725以降に進む。従って、左バンク空燃比は目標リーン空燃比afLeanに一致させられる。
【0120】
このように、逆相制御実行フラグXgyakusoの値が「0」であるとき、左バンク目標空燃比abyfrL(従って、左バンクの空燃比)は左バンク用上流側触媒53の状態を示すフラグXCCLeanLに基いて制御される。即ち、左バンク空燃比は、左バンク用下流側空燃比センサ67Lの出力値Voxs(L)に基いて決定される左バンク用上流側触媒53の状態に応じて制御される。
【0121】
これに対し、CPUがステップ745の処理を実行する時点において、逆相制御実行フラグXgyakusoの値が「1」であると、CPUはそのステップ745にて「No」と判定してステップ770に進み、左バンク用上流側触媒53の最大酸素吸蔵量CmaxLが右バンク用上流側触媒43の最大酸素吸蔵量CmaxRよりも小さいか否かを判定する。
【0122】
このとき、左バンク用上流側触媒53の最大酸素吸蔵量CmaxLが右バンク用上流側触媒43の最大酸素吸蔵量CmaxRよりも小さいと、CPUはステップ770にて「Yes」と判定してステップ750に進み、左バンク触媒リーン状態表示フラグXLeanLに左バンク用上流側触媒53の状態を示すフラグXCCLeanLの値を格納する。その結果、左バンク目標空燃比abyfrL(従って、左バンクの空燃比)は、「最大酸素吸蔵量が小さい方の触媒である左バンク用上流側触媒53(特定触媒)の下流側空燃比センサ(選択下流側空燃比センサ)である左バンク用下流側空燃比センサ67L」の出力値Voxs(L)に基いて制御される。即ち、左バンクの空燃比は、特定触媒である左バンク用上流側触媒53の状態に基く空燃比要求に従って制御される。
【0123】
これに対し、左バンク用上流側触媒53の最大酸素吸蔵量CmaxLが右バンク用触媒43の最大酸素吸蔵量CmaxRよりも大きいと、CPUはステップ770にて「No」と判定してステップ775に進み、左バンク触媒リーン状態表示フラグXLeanLに「右バンク用上流側触媒43の状態を示すフラグXCCLeanRの反転値」を格納する。
【0124】
この結果、左バンクの空燃比は、「最大酸素吸蔵量が小さい方の触媒である右バンク用上流側触媒43(特定触媒)の下流側空燃比センサ(選択下流側空燃比センサ)である右バンク用下流側空燃比センサ67R」の出力値Voxs(R)に基いて制御される。即ち、左バンクの空燃比は、特定触媒である右バンク用上流側触媒43の状態に基く空燃比要求に従って制御される。一方、この場合、前述した図6の「ステップ670及びステップ650」に示したように、右バンク触媒リーン状態表示フラグXLeanRに「右バンク用上流側触媒43の状態を示すフラグXCCLeanRの値」が設定される。その結果、左バンク目標空燃比abyfrLは右バンク目標空燃比abyfrRと逆相にて変化する。即ち、左バンクの空燃比は、右バンク用上流側触媒43の状態に応じて制御される。
【0125】
<触媒状態判定>
CPUは図8にフローチャートにより示した「触媒状態判定ルーチン(要求空燃比決定ルーチン)」を所定時間tsの経過毎に繰り返し実行している。従って、所定のタイミングになると、CPUはステップ800から処理を開始してステップ810に進み、「現時点の右バンク用下流側空燃比センサ67Rの出力値Voxs(R)」から「前回の右バンク用下流側空燃比センサ67Rの出力値VoxsRold」を減じることにより、所定時間ts(単位時間)あたりの出力値Voxs(R)の変化量ΔVoxsRを算出する。前回の出力値VoxsRoldは、次のステップ815にて更新される値であり、現時点から所定時間tsだけ前の時点の出力値Voxs(R)(本ルーチンが前回実行されたときの出力値Voxs(R))である。変化量ΔVoxsRは変化速度ΔVoxsR(第1下流側空燃比センサ出力相関値)とも称呼される。次に、CPUはステップ815に進み、現時点の出力値Voxs(R)を「前回の出力値VoxsRold」として記憶する。
【0126】
次に、CPUはステップ820に進み、右バンク用上流側触媒43の状態を示すフラグXCCLeanRの値が「1」であるか否かを判定する。右バンク用上流側触媒43の状態を示すフラグXCCLeanRの値は、上述したイニシャルルーチンにおいて「1」に設定されるようになっている。更に、右バンク用上流側触媒43の状態を示すフラグXCCLeanRの値は、後述するように、右バンク用下流側空燃比センサ67Rの出力値Voxs(R)に基づいて触媒43の状態が酸素不足状態(リッチ状態)であると判定されたときに「0」に設定され、右バンク用下流側空燃比センサ67Rの出力値Voxs(R)に基づいて触媒43の状態が酸素過剰状態(リーン状態)であると判定されたときに「1」に設定される。
【0127】
いま、右バンク用上流側触媒43の状態を示すフラグXCCLeanRの値が「1」であると仮定する。この場合、CPUはステップ820にて「Yes」と判定してステップ825に進み、変化速度ΔVoxsRが正であるか否かを判定する。即ち、CPUは、出力値Voxs(R)が増大しているか否かを判定する。このとき、変化速度ΔVoxsRが正でなければ、CPUはステップ825にて「No」と判定し、ステップ855に直接進む。
【0128】
これに対し、変化速度ΔVoxsRが正であると、CPUはステップ825にて「Yes」と判定してステップ830に進み、変化速度ΔVoxsRの大きさ|ΔVoxsR|が右バンク用リッチ判定値dRichRthよりも大きいか否かを判定する。このとき、大きさ|ΔVoxsR|が右バンク用リッチ判定値dRichRth以下であると、CPUはステップ830にて「No」と判定し、ステップ855に直接進む。なお、右バンク用リッチ判定値dRichRthの値は、後述する図10のルーチンにより変更される。
【0129】
CPUがステップ830の処理を実行する時点において、変化速度ΔVoxsRの大きさ|ΔVoxsR|が右バンク用リッチ判定値dRichRthよりも大きいと、CPUはそのステップ830にて「Yes」と判定してステップ835に進み、右バンク用上流側触媒43の状態を示すフラグXCCLeanRの値を「0」に設定する。即ち、出力値Voxs(R)が増大していて且つその変化速度ΔVoxsRの大きさ|ΔVoxsR|が右バンク用リッチ判定値dRichRthよりも大きい場合、CPUは「右バンク用上流側触媒43の状態は酸素不足状態である。」と判定し、右バンク用上流側触媒43の状態を示すフラグXCCLeanRの値を「0」に設定する。
【0130】
この状態(即ち、右バンク用上流側触媒43の状態を示すフラグXCCLeanRの値が「0」に設定された状態)において、CPUが所定時間ts後にステップ800から処理を再び開始すると、CPUはステップ810及びステップ815を経由してステップ820に進み、そのステップ820にて「No」と判定してステップ840に進む。
【0131】
CPUは、ステップ840にて変化速度ΔVoxsRが負であるか否かを判定する。即ち、CPUは、出力値Voxs(R)が減少しているか否かを判定する。このとき、変化速度ΔVoxsRが負でなければ、CPUはステップ840にて「No」と判定し、ステップ855に直接進む。
【0132】
これに対し、変化速度ΔVoxsRが負であると、CPUはステップ840にて「Yes」と判定してステップ845に進み、変化速度ΔVoxsRの大きさ|ΔVoxsR|が右バンク用リーン判定値dLeanRthよりも大きいか否かを判定する。このとき、大きさ|ΔVoxsR|が右バンク用リーン判定値dLeanRth以下であると、CPUはステップ845にて「No」と判定し、ステップ855に直接進む。なお、右バンク用リーン判定値dLeanRthの値は、後述する図10のルーチンにより変更される。
【0133】
これに対し、変化速度ΔVoxsRの大きさ|ΔVoxsR|が右バンク用リーン判定値dLeanRthよりも大きいと、CPUはステップ845にて「Yes」と判定してステップ850に進み、右バンク用上流側触媒43の状態を示すフラグXCCLeanRの値を「1」に設定する。即ち、出力値Voxs(R)が減少していて且つその変化速度ΔVoxsRの大きさ|ΔVoxsR|が右バンク用リーン判定値dLeanRthよりも大きい場合、CPUは「右バンク用上流側触媒43の状態が酸素過剰状態である。」と判定し、右バンク用上流側触媒43の状態を示すフラグXCCLeanRを「1」に設定する。
【0134】
なお、CPUは、右バンク用上流側触媒43の状態を示すフラグXCCLeanRの値が「1」である場合、出力値Voxs(R)がリッチ判定閾値VRichthよりも大きくなったとき、右バンク用上流側触媒43の状態を示すフラグXCCLeanRの値を「0」に設定してもよい。同様に、右バンク用上流側触媒43の状態を示すフラグXCCLeanRの値が「0」である場合、出力値Voxs(R)がリーン判定閾値VLeanthよりも小さくなったとき、右バンク用上流側触媒43の状態を示すフラグXCCLeanRの値を「1」に設定してもよい。この場合、リッチ判定閾値VRichthは中央値Vmid以下の値であってもよい。リーン判定閾値VLeanthは中央値Vmid以上の値であってもよい。
【0135】
このように右バンク用上流側触媒43の状態を示すフラグXCCLeanRの値は、右バンク用下流側空燃比センサ67Rの出力値Voxs(R)に基づいて、「1」と「0」との何れかの値に交互に設定される。
【0136】
CPUは、図8のステップ855に進んだとき、「現時点の左バンク用下流側空燃比センサ67Lの出力値Voxs(L)」から「前回の左バンク用下流側空燃比センサ67Lの出力値VoxsLold」を減じることにより、所定時間ts(単位時間)あたりの出力値Voxs(L)の変化量ΔVoxsLを算出する。前回の出力値VoxsLoldは、次のステップ860にて更新される値であり、現時点から所定時間tsだけ前の時点の出力値Voxs(L)(本ルーチンが前回実行されたときの出力値Voxs(L))である。変化量ΔVoxsLは変化速度ΔVoxsL(第2下流側空燃比センサ出力相関値)とも称呼される。次に、CPUはステップ860に進み、現時点の出力値Voxs(L)を「前回の出力値VoxsLold」として記憶する。
【0137】
次に、CPUはステップ865に進み、左バンク用上流側触媒53の状態を示すフラグXCCLeanLの値が「1」であるか否かを判定する。左バンク用上流側触媒53の状態を示すフラグXCCLeanLの値は、上述したイニシャルルーチンにおいて「1」に設定されるようになっている。更に、左バンク用上流側触媒53の状態を示すフラグXCCLeanLの値は、後述するように、左バンク用下流側空燃比センサ67Lの出力値Voxs(L)に基づいて触媒53の状態が酸素不足状態(リッチ状態)であると判定されたときに「0」に設定され、左バンク用下流側空燃比センサ67Lの出力値Voxs(L)に基づいて触媒53の状態が酸素過剰状態(リーン状態)であると判定されたときに「1」に設定される。
【0138】
いま、左バンク用上流側触媒53の状態を示すフラグXCCLeanLの値が「1」であると仮定する。この場合、CPUはステップ865にて「Yes」と判定してステップ870に進み、変化速度ΔVoxsLが正であるか否かを判定する。即ち、CPUは、出力値Voxs(L)が増大しているか否かを判定する。このとき、変化速度ΔVoxsLが正でなければ、CPUはステップ870にて「No」と判定し、ステップ895に直接進んで本ルーチンを一旦終了する。
【0139】
これに対し、変化速度ΔVoxsLが正であると、CPUはステップ870にて「Yes」と判定してステップ875に進み、変化速度ΔVoxsLの大きさ|ΔVoxsL|が左バンク用リッチ判定値dRichLthよりも大きいか否かを判定する。このとき、大きさ|ΔVoxsL|が左バンク用リッチ判定値dRichLth以下であると、CPUはステップ875にて「No」と判定し、ステップ895に直接進んで本ルーチンを一旦終了する。なお、左バンク用リッチ判定値dRichLthの値は、後述する図10のルーチンにより変更される。
【0140】
CPUがステップ875の処理を実行する時点において、変化速度ΔVoxsLの大きさ|ΔVoxsL|が左バンク用リッチ判定値dRichLthよりも大きいと、CPUはそのステップ875にて「Yes」と判定してステップ880に進み、左バンク用上流側触媒53の状態を示すフラグXCCLeanLの値を「0」に設定する。即ち、出力値Voxs(L)が増大していて且つその変化速度ΔVoxsLの大きさ|ΔVoxsL|が左バンク用リッチ判定値dRichLthよりも大きい場合、CPUは「左バンク用上流側触媒53の状態は酸素不足状態である。」と判定し、左バンク用上流側触媒53の状態を示すフラグXCCLeanLの値を「0」に設定する。
【0141】
この状態(即ち、左バンク用上流側触媒53の状態を示すフラグXCCLeanLの値が「0」に設定された状態)において、CPUが所定時間ts後にステップ865に進むと、CPUは、そのステップ865にて「No」と判定してステップ885に進む。
【0142】
CPUは、ステップ885にて変化速度ΔVoxsLが負であるか否かを判定する。即ち、CPUは、出力値Voxs(L)が減少しているか否かを判定する。このとき、変化速度ΔVoxsLが負でなければ、CPUはステップ885にて「No」と判定し、ステップ895に直接進んで本ルーチンを一旦終了する。
【0143】
これに対し、変化速度ΔVoxsLが負であると、CPUはステップ885にて「Yes」と判定してステップ890に進み、変化速度ΔVoxsLの大きさ|ΔVoxsL|が左バンク用リーン判定値dLeanLthよりも大きいか否かを判定する。このとき、大きさ|ΔVoxsL|が左バンク用リーン判定値dLeanLth以下であると、CPUはステップ890にて「No」と判定し、ステップ895に直接進んで本ルーチンを一旦終了する。なお、左バンク用リーン判定値dLeanLthの値は、後述する図10のルーチンにより変更される。
【0144】
これに対し、変化速度ΔVoxsLの大きさ|ΔVoxsL|が左バンク用リーン判定値dLeanLthよりも大きいと、CPUはステップ890にて「Yes」と判定してステップ892に進み、左バンク用上流側触媒53の状態を示すフラグXCCLeanLの値を「1」に設定する。即ち、出力値Voxs(L)が減少していて且つその変化速度ΔVoxsLの大きさ|ΔVoxsL|が左バンク用リーン判定値dLeanLthよりも大きい場合、CPUは「左バンク用上流側触媒53の状態が酸素過剰状態である。」と判定し、左バンク用上流側触媒53の状態を示すフラグXCCLeanLを「1」に設定する。
【0145】
なお、CPUは、左バンク用上流側触媒53の状態を示すフラグXCCLeanLの値が「1」である場合、出力値Voxs(L)がリッチ判定閾値VRichthよりも大きくなったとき、左バンク用上流側触媒53の状態を示すフラグXCCLeanLの値を「0」に設定してもよい。同様に、左バンク用上流側触媒53の状態を示すフラグXCCLeanLの値が「0」である場合、出力値Voxs(L)がリーン判定閾値VLeanthよりも小さくなったとき、左バンク用上流側触媒53の状態を示すフラグXCCLeanLの値を「1」に設定してもよい。
【0146】
このように左バンク用上流側触媒53の状態を示すフラグXCCLeanLの値は、左バンク用下流側空燃比センサ67Lの出力値Voxs(L)に基づいて、「1」と「0」との何れかの値に交互に設定される。
【0147】
<非許容振動発生判定>
CPUは図9にフローチャートにより示した「非許容振動発生判定ルーチン」を所定時間tsの経過毎に繰り返し実行している。従って、所定のタイミングになると、CPUはステップ900から処理を開始してステップ910に進み、逆相制御実行フラグXgyakusoの値が「0」か否かを判定する。このとき、逆相制御実行フラグXgyakusoの値が「1」であると、CPUはステップ910にて「No」と判定し、ステップ995に直接進んで本ルーチンを一旦終了する。
【0148】
これに対し、逆相制御実行フラグXgyakusoの値が「0」であると、CPUはステップ910にて「Yes」と判定してステップ920に進み、逆相制御移行要求フラグXshiftの値が「0」であるか否かを判定する。この逆相制御移行要求フラグXshiftの値は上述したイニシャルルーチンにおいて「0」に設定されるようになっている。更に、逆相制御移行要求フラグXshiftの値は後述するルーチンにより、逆相制御への移行制御を実行する必要が生じた場合(非許容振動発生が発生していると判定された場合)に「1」に設定される。このとき、逆相制御移行要求フラグXshiftの値が「1」であると、CPUはステップ920にて「No」と判定し、ステップ995に直接進んで本ルーチンを一旦終了する。
【0149】
これに対し、逆相制御移行要求フラグXshiftの値が「0」であると、CPUはステップ920にて「Yes」と判定してステップ930に進み、「右バンク用上流側触媒43の状態を示すフラグXCCLeanRが「1」から「0」へと変化した最新のタイミング(第1タイミング)」と「左バンク用上流側触媒53の状態を示すフラグXCCLeanLの値が「1」から「0」へと変化した最新のタイミング(第2タイミング)」との時間差が極めて小さい所定値である閾値時間(例えば、実質的に「0」に近い値)Tth以内であるか否かを判定する。即ち、CPUは、第1タイミングと第2タイミングとが同期しているか否かを判定する。このとき、第1タイミングと第2タイミングとが同期していなければ、CPUはステップ930にて「No」と判定し、ステップ995に直接進んで本ルーチンを一旦終了する。
【0150】
これに対し、第1タイミングと第2タイミングとが同期していると、CPUはステップ930にて「Yes」と判定してステップ940に進み、「右バンク用上流側触媒43の状態を示すフラグXCCLeanRが「0」から「1」へと変化した最新のタイミング(第3タイミング)」と「左バンク用上流側触媒53の状態を示すフラグXCCLeanLの値が「0」から「1」へと変化した最新のタイミング(第4タイミング)」との時間差が極めて小さい所定値である閾値時間(例えば、実質的に「0」に近い値)Tth以内であるか否かを判定する。即ち、CPUは、第3タイミングと第4タイミングとが同期しているか否かを判定する。このとき、第3タイミングと第4タイミングとが同期していなければ、CPUはステップ940にて「No」と判定し、ステップ995に直接進んで本ルーチンを一旦終了する。
【0151】
これに対し、第3タイミングと第4タイミングとが同期していると、CPUはステップ940にて「Yes」と判定してステップ950に進み、触媒状態の切替わり周期相関時間(目標空燃比周期相関時間)を取得する。より具体的に述べると、CPUは、「右バンク用上流側触媒43の状態を示すフラグXCCLeanRが「1」から「0」へと変化した最新のタイミング(第1タイミング)」から「フラグXCCLeanRが「0」から「1」へと変化した最新のタイミング(第3タイミング)」までの時間を触媒状態の切替わり周期相関時間Tとして取得する。
【0152】
なお、CPUは、第3タイミングから第1タイミングまでの時間、前回の第1タイミングから今回の第1タイミングまでの時間、前回の第3タイミングから今回の第3タイミングまでの時間、第2タイミングから第4タイミングまでの時間、第4タイミングから第2タイミングまでの時間、前回の第2タイミングから今回の第2タイミングまでの時間、及び、前回の第4タイミングから今回の第4タイミングまでの時間、を触媒状態の切替わり周期相関時間Tとして取得してもよい。
【0153】
次いで、CPUはステップ960に進み、空燃比差ΔAFに基づいてトルク段差ΔTqを取得する。空燃比差ΔAFは、目標リーン空燃比afLeanと目標リッチ空燃比afRichとの差の大きさである。トルク段差ΔTqは、ある気筒に供給される混合気の空燃比が目標リッチ空燃比afRichに一致している場合にその気筒における燃焼により発生する機関10の発生トルクから、ある気筒に供給される混合気の空燃比が目標リーン空燃比afLeanに一致している場合にその気筒における燃焼により発生する機関10の発生トルクを、減じた値である(図1の(A)を参照。)。トルク段差ΔTqは、図9のブロックB1内に示したように、空燃比差ΔAFが大きいほど大きい値となるように求められる。なお、本実施形態において、目標リーン空燃比afLeanは一定値でり、且つ、目標リッチ空燃比afRichは一定値である。従って、空燃比差ΔAFは一定値であるので、ステップ960は省略され得る。即ち、CPUは、ステップ960にて、予めROMに記憶しているトルク段差ΔTqを読み込んでもよい。
【0154】
次に、CPUはステップ970に進み、ステップ950にて取得された周期相関時間Tと、ステップ960にて取得されたトルク段差ΔTqと、に基いて、現時点において許容し難い振動(非許容振動)が発生しているか否かを判定する。より具体的に述べると、CPUは、図9のブロックB2内に示したマップを記憶している。このマップは、周期相関時間Tとトルク段差ΔTqとの組み合わせにより表される領域を、非許容振動発生領域と非許容振動非発生領域とに区分している。CPUは、このマップにステップ950にて取得された周期相関時間Tと、ステップ960にて取得されたトルク段差ΔTqと、を適用することにより、現時点の周期相関時間T及びトルク段差ΔTqが非許容振動発生領域内にあるか否かを判定することにより、非許容振動が発生しているか否かを判定する。このマップによれば、周期相関時間Tが大きくなるほど、より小さいトルク段差ΔTqにて非許容振動が発生すると判定される。なお、本例において、空燃比差ΔAFは一定値であるから、ステップ970は、周期相関時間Tが許容閾値時間以上であるか否かを判定するステップに置換され得る。
【0155】
そして、CPUはステップ970にて非許容振動が発生していると判定した場合、ステップ980に進んで逆相制御移行要求フラグXshiftの値を「1」に設定し、その後、ステップ995に進んで本ルーチンを一旦終了する。これに対し、CPUはステップ970にて非許容振動が発生していないと判定した場合、ステップ990に進んで逆相制御移行要求フラグXshiftの値を「0」に設定し、その後、ステップ995に進んで本ルーチンを一旦終了する。
【0156】
このように、CPUは、右バンク用上流側触媒43の状態を示すフラグXCCLeanRの値の変化と、左バンク用上流側触媒53の状態を示すフラグXCCLeanLの値の変化と、が偶発的且つ実質的に同期している場合であり、且つ、非許容振動が発生していると判定した場合、逆相制御移行要求フラグXshiftの値を「1」に設定する。なお、フラグXCCLeanRの値の位相と、フラグXCCLeanLの値の位相と、は特別の処理を行わない場合であっても、時間の経過に応じて次第に異なる位相に変化する(同期状態が次第に崩れる)。
【0157】
<閾値設定>
CPUは図10にフローチャートにより示した「閾値設定ルーチン」を所定時間tsの経過毎に繰り返し実行している。従って、所定のタイミングになると、CPUはステップ1000から処理を開始してステップ1010に進み、逆相制御実行フラグXgyakusoの値が「0」か否かを判定する。
【0158】
いま、逆相制御実行フラグXgyakusoの値が「0」であり、且つ、逆相制御移行要求フラグXshiftの値も「0」であると仮定する。この場合、CPUはステップ1010にて「Yes」と判定してステップ1020に進み、逆相制御移行要求フラグXshiftの値が「0」であるか否かを判定する。更に、この場合、CPUはステップ1020にて「Yes」と判定してステップ1030に進み、以下に述べるの処理を行い、その後、ステップ1095に進んで本ルーチンを一旦終了する。なお、CPUは、逆相制御実行フラグXgyakusoの値が「1」である場合にも、ステップ1010からステップ1030に直接進む。
【0159】
CPUは、右バンク用リッチ判定値dRichRthに基準右バンク用リッチ判定値dRichRth0を格納する。
CPUは、右バンク用リーン判定値dLeanRthに基準右バンク用リーン判定値dLeanRth0を格納する。
CPUは、左バンク用リッチ判定値dRichLthに基準左バンク用リッチ判定値dRichLth0を格納する。
CPUは、左バンク用リーン判定値dLeanLthに基準左バンク用リーン判定値dLeanLth0を格納する。
【0160】
この状態において、非許容振動が発生していると判定され、それにより、逆相制御移行要求フラグXshiftの値が「1」に設定されると、CPUはステップ1020に進んだとき、そのステップ1020にて「No」と判定してステップ1040に進み、右バンク用上流側触媒43の右バンク用上流側触媒43の最大酸素吸蔵量CmaxRが左バンク用上流側触媒53の最大酸素吸蔵量CmaxLよりも大きいか否かを判定する。
【0161】
なお、右バンク用上流側触媒43及び左バンク用上流側触媒53の各最大酸素吸蔵量は周知の手法により別途取得される。例えば、右バンク用上流側触媒43の最大酸素吸蔵量CmaxRは、右バンク用上流側触媒43の状態が酸素不足状態であると判定された時点において右バンク目標空燃比abyfrRを所定のリーン空燃比に設定し、その後に右バンク上流側空燃比abyfs(R)と理論空燃比stoichとの差に基いて酸素の過不足量ΔO2(ΔO2=k・mfr・(abyfs(R)−stoich))を所定時間の経過毎に求め(kは大気中の酸素の比率であり0.23、mfrはその所定時間に右バンク気筒に供給された燃料量)、その過不足量ΔO2を「右バンク用上流側触媒43の状態が酸素過剰状態であると判定される時点」まで積算することにより求められる。
【0162】
このとき、右バンク用上流側触媒43の最大酸素吸蔵量CmaxRが左バンク用上流側触媒53の最大酸素吸蔵量CmaxLよりも大きいと、CPUはステップ1040にて「Yes」と判定してステップ1050に進み、基準右バンク用リッチ判定値dRichRth0から正の所定値(微小な値)Aを減じた値を新たな右バンク用リッチ判定値dRichRthに設定する。更に、CPUは、ステップ1050にて、基準右バンク用リーン判定値dLeanRth0から正の所定値(微小な値)Bを減じた値を新たな右バンク用リーン判定値dLeanRthに設定する。この結果、図8の「ステップ830及びステップ845」での「Yes」との判定が、「右バンク用リーン判定値dLeanRthが基準右バンク用リーン判定値dLeanRth0に設定され、且つ、右バンク用リッチ判定値dRichRthが基準右バンク用リッチ判定値dRichRth0に設定されている場合」よりも早期に発生する。従って、右バンクに対する目標空燃比(右バンク目標空燃比abyfrR)の周期が短くなる。
【0163】
なお、CPUは、所定値A及び所定値Bと、右バンク用上流側触媒43の状態を示すフラグXCCLeanRの周期(従って、右バンク目標空燃比abyfrRの周期)と、の関係をROMに記憶していて、その関係に「前記同期時における触媒状態の切替わり周期相関時間T」を適用することにより、所定値A及び所定値Bを決定してもよい。更に、CPUは、右バンク用上流側触媒43の触媒状態の切替わり周期相関時間と、左バンク用上流側触媒53の触媒状態の切替わり周期相関時間と、が一致するように、それらの時間を計測し、計測された時間の差に基いて所定値A及び所定値Bを変更してもよい。
【0164】
これに対し、CPUがステップ1040の処理を実行する時点において、右バンク用上流側触媒43の最大酸素吸蔵量CmaxRが左バンク用上流側触媒53の最大酸素吸蔵量CmaxL以下であると、CPUはそのステップ1040にて「No」と判定してステップ1060に進み、基準左バンク用リッチ判定値dRichLth0から正の所定値(微小な値)Cを減じた値を新たな左バンク用リッチ判定値dRichLthに設定する。更に、CPUは、ステップ1060にて、基準左バンク用リーン判定値dLeanLth0から正の所定値(微小な値)Dを減じた値を新たな左バンク用リーン判定値dLeanLthに設定する。この結果、図9の「ステップ875及びステップ890」での「Yes」との判定が「左バンク用リッチ判定値dRichLthが基準左バンク用リッチ判定値dRichLth0に設定され、且つ、左バンク用リーン判定値dLeanLthが基準左バンク用リーン判定値dLeanLth0に設定されている場合」よりも早期に発生する。従って、左バンクに対する目標空燃比の周期が短くなる。
【0165】
なお、CPUは、所定値C及び所定値Dと、左バンク用上流側触媒53の状態を示すフラグXCCLeanLの周期(従って、左バンク目標空燃比abyfrLの周期)と、の関係をROMに記憶していて、その関係に「前記同期時における触媒状態の切替わり周期相関時間T」を適用することにより、所定値C及び所定値Dを決定してもよい。更に、CPUは、右バンク用上流側触媒43の触媒状態の切替わり周期相関時間と、左バンク用上流側触媒53の触媒状態の切替わり周期相関時間と、が一致するように、それらの時間を計測し、計測された時間の差に基いて所定値C及び所定値Dを変更してもよい。
【0166】
この状態が継続すると、最大酸素吸蔵量が大きい方の触媒である「非特定触媒」を排気通路に備えるバンク(非特定バンク、図5において左バンク)の目標空燃比の周期が次第に短くなる。よって、図5の(B)に示したように、左バンク触媒リーン状態表示フラグXLeanLの変化タイミングと同期する左バンク目標空燃比abyfrLの変化タイミングと、右バンク触媒リーン状態表示フラグXLeanRと同期する右バンク目標空燃比abyfrRの変化タイミングと、の同期が崩れ、やがて、図5の(C)に示したように、右バンク目標空燃比abyfrRと左バンク目標空燃比abyfrLとは互いに逆相にて変化するようになる。この時点(逆相成立時)は、次に述べる図11に示したルーチンにより検出される。
【0167】
<逆相制御への移行制御終了判定>
CPUは図11にフローチャートにより示した「逆相制御への移行制御終了判定ルーチン」を所定時間tsの経過毎に繰り返し実行している。従って、所定のタイミングになると、CPUはステップ1100から処理を開始してステップ1110に進み、逆相制御移行要求フラグXshiftの値が「1」であるか否かを判定する。
【0168】
このとき、逆相制御移行要求フラグXshiftの値が「0」であると、CPUはステップ1110にて「No」と判定し、ステップ1195に直接進んで本ルーチンを一旦終了する。
【0169】
これに対し、逆相制御移行要求フラグXshiftの値が「1」であると、CPUはステップ1110にて「Yes」と判定してステップ1120に進み、「右バンク用上流側触媒43の状態を示すフラグXCCLeanRが「1」から「0」へと変化した最新のタイミング(第1タイミング)」と「左バンク用上流側触媒53の状態を示すフラグXCCLeanLの値が「0」から「1」へと変化した最新のタイミング(第4タイミング)」との時間差が極めて小さい所定値である閾値時間(例えば、実質的に「0」に近い値)Tth以内であるか否かを判定する。即ち、CPUは、第1タイミングと第4タイミングとが同期しているか否かを判定する。
【0170】
このとき、第1タイミングと第4タイミングとが同期していると、CPUはステップ1120にて「Yes」と判定してステップ1130に進み、逆相制御移行要求フラグXshiftの値を「0」に設定する。次いで、CPUはステップ1140に進み、逆相制御実行フラグXgyakusoの値を「1」に設定する。その後、CPUは1195に進み本ルーチンを一旦終了する。この結果、逆相制御への移行制御が終了し、逆相制御が開始する。
【0171】
これに対し、第1タイミングと第4タイミングとが同期していなければ、CPUはステップ1120にて「No」と判定し、ステップ1150に進み、「右バンク用上流側触媒43の状態を示すフラグXCCLeanRが「0」から「1」へと変化した最新のタイミング(第3タイミング)」と「左バンク用上流側触媒53の状態を示すフラグXCCLeanLの値が「1」から「0」へと変化した最新のタイミング(第2タイミング)」との時間差が極めて小さい所定値である閾値時間(例えば、実質的に「0」に近い値)Tth以内であるか否かを判定する。即ち、CPUは、第2タイミングと第3タイミングとが同期しているか否かを判定する。このとき、第2タイミングと第3タイミングとが同期していなければ、CPUはステップ1150にて「No」と判定し、ステップ1195に直接進んで本ルーチンを一旦終了する。
【0172】
これに対し、第2タイミングと第3タイミングとが同期していると、CPUはステップ1150にて「Yes」と判定してステップ1130に進み、逆相制御移行要求フラグXshiftの値を「0」に設定する。次いで、CPUはステップ1140に進み、逆相制御実行フラグXgyakusoの値を「1」に設定する。その後、CPUは1195に進み本ルーチンを一旦終了する。この結果、逆相制御への移行制御が終了し、逆相制御が開始する。
【0173】
なお、CPUは、ステップ1120に記載した条件及びステップ1150に記載した条件の両者が共に成立したときにのみ、ステップ1130及びステップ1140に進んでも良い。
【0174】
以上、説明したように、第1制御装置は、複数の気筒を含む第1気筒群及び複数の気筒を含む第2気筒群を備える本体部20を有する内燃機関10に適用される。
【0175】
更に、第1制御装置は、
前記第1気筒群の前記複数の気筒から排出される排ガスを通過させる第1排気通路に配設された第1触媒(右バンク用上流側触媒43)と、
前記第1排気通路の前記第1触媒の下流に配設された第1下流側空燃比センサ(右バンク用下流側空燃比センサ67R)と、
前記第2気筒群の前記複数の気筒から排出される排ガスを通過させる第2排気通路に配設された第2触媒(左バンク用上流側触媒53)と、
前記第2排気通路の前記第2触媒の下流に配設された第2下流側空燃比センサ(左バンク用上流側空燃比センサ66L)と、
を備える。
【0176】
更に、第1制御装置は、
前記第1触媒及び前記第2触媒のうち最大酸素吸蔵量が小さい方の特定触媒の下流に配設されている「前記第1下流側空燃比センサ及び前記第2下流側空燃比センサのうちの何れか一方(選択下流側空燃比センサ)」の出力値に相関を有する値である選択下流側空燃比センサ出力相関値(出力値Voxs(R)の変化量ΔVoxsR、及び、出力値Voxs(L)の変化量ΔVoxsL、のうちの選択下流側空燃比センサに対応する方)と所定のリーン要求判定値(右バンク用リッチ判定値dRichRth及び左バンク用リッチ判定値dRichLthのうちの選択下流側空燃比センサに対応する方)との比較の結果に基づいて同特定触媒に対するリーン要求が発生したか否かを判定するとともに、前記選択下流側空燃比センサ出力相関値と所定のリッチ要求判定値(右バンク用リーン判定値dLeanRth及び左バンク用リーン判定値dLeanLthのうちの選択下流側空燃比センサに対応する方)との比較に基づいて前記特定触媒に対するリッチ要求が発生したか否かを判定し(図8を参照。)、
前記リーン要求が発生したと判定された時点から前記リッチ要求が発生したと判定される時点までのリーン要求発生期間において前記特定触媒に排ガスを排出する前記第1気筒群及び前記第2気筒群のうちの一方の前記複数の気筒のそれぞれに供給される混合気の空燃比を理論空燃比よりも大きい空燃比に制御するとともに前記第1気筒群及び前記第2気筒群のうちの他方の前記複数の気筒のそれぞれに供給される混合気の空燃比を理論空燃比よりも小さい空燃比に制御し(図6の「ステップ645、ステップ670、ステップ650、ステップ675、及び、ステップ655乃至ステップ665」、並びに、図7の「ステップ745、ステップ770、ステップ750、ステップ775、及び、ステップ755乃至ステップ765」を特に参照。)、
前記リッチ要求が発生したと判定された時点から前記リーン要求が発生したと判定される時点までのリッチ要求発生期間において前記特定触媒に排ガスが供給される前記第1気筒群及び前記第2気筒群のうちの一方の前記複数の気筒のそれぞれに供給される混合気の空燃比を理論空燃比よりも小さい空燃比に制御するとともに前記第1気筒群及び前記第2気筒群のうちの他方の前記複数の気筒のそれぞれに供給される混合気の空燃比を理論空燃比よりも大きい空燃比に制御する(図6の「ステップ645、ステップ670、ステップ650、ステップ675、及び、ステップ655乃至ステップ665」、並びに、図7の「ステップ745、ステップ770、ステップ750、ステップ775、及び、ステップ755乃至ステップ765」を特に参照。)、
空燃比制御手段、を備える。
【0177】
従って、最大酸素吸蔵量が小さい方の触媒(特定触媒)の下流側空燃比センサの出力値に基づいて、即ち、特定触媒の状態(特定触媒に対する空燃比要求)に応じて、特定触媒に排ガスを供給する気筒群に属する気筒に供給される混合気の空燃比が制御される。よって、前記特定触媒に排ガスを供給する気筒群から排出される排ガスは前記特定触媒により浄化され得る。
【0178】
加えて、最大酸素吸蔵量が大きい方の触媒(非特定触媒)に排ガスを供給する気筒群に属する気筒に供給される混合気の空燃比は、その切替周期が「最大酸素吸蔵量が小さい方の触媒である前記特定触媒」の状態(前記特定触媒に対する空燃比要求)の変化の周期と一致し、且つ、特定触媒に排ガスを供給する気筒群に属する気筒に供給される混合気の空燃比と逆位相となるように制御される。このため、非特定触媒の酸素吸蔵量は、「0」よりも大きく非特定触媒の最大酸素吸蔵量よりも小さい範囲内で変化する。その結果、前記非特定触媒に排ガスを供給する気筒群から排出される排ガスも前記非特定触媒により浄化され得る。更に、機関10の発生するトルクが短期間内において変動するようになるので、結果として、不快な振動が発生することを回避することができる。
【0179】
<第2実施形態>
次に、本発明の第2実施形態に係る内燃機関の制御装置(以下、「第2制御装置」とも称呼する。)について説明する。
【0180】
第2制御装置は、同期時に逆相制御移行制御を開始し、その後は、逆相制御へと移行することなく、逆相制御移行制御を継続する装置である。これによれば、不快な振動を短期間内に消滅させることができる。但し、第1制御装置と異なり、その後、再び右バンク目標空燃比abyfrRと左バンク目標空燃比abyfrLとが同期し、不快な振動が発生する場合が生じる。
【0181】
以上、説明したように、本発明に係る空燃比制御装置の各実施形態によれば、機関10及び機関10を搭載した車両に発生する不快な振動を、エミッションを悪化させることなく短期間内に消滅させることができる。なお、本発明は上記実施形態に限定されることはなく、本発明の範囲内において種々の変形例を採用することができる。
【0182】
また、第1制御装置及び第2制御装置の空燃比制御手段は、
前記第1下流側空燃比センサの出力値に相関を有する値である第1下流側空燃比センサ出力相関値と所定のリーン要求判定値との比較の結果に基づいて第1触媒に対するリーン要求が発生したか否かを判定するとともに、前記第1下流側空燃比センサ出力相関値と所定のリッチ要求判定値との比較に基づいて前記第1触媒に対するリッチ要求が発生したか否かを判定し、
前記第1触媒に対するリーン要求が発生したと判定された時点から前記第1触媒に対するリッチ要求が発生したと判定される時点までの第1触媒リーン要求発生期間において前記第1気筒群に属する複数の気筒のそれぞれに供給される混合気の空燃比を理論空燃比よりも大きい空燃比に制御し、前記第1触媒に対するリッチ要求が発生したと判定された時点から前記第1触媒に対するリーン要求が発生したと判定される時点までの第1触媒リッチ要求発生期間において前記第1気筒群に属する複数の気筒のそれぞれに供給される混合気の空燃比を理論空燃比よりも小さい空燃比に制御し、
前記第2下流側空燃比センサの出力値に相関を有する値である第2下流側空燃比センサ出力相関値と所定のリーン要求判定値との比較の結果に基づいて第2触媒に対するリーン要求が発生したか否かを判定するとともに、前記第2下流側空燃比センサ出力相関値と所定のリッチ要求判定値との比較に基づいて前記第2触媒に対するリッチ要求が発生したか否かを判定し、
前記第2触媒に対するリーン要求が発生したと判定された時点から前記第2触媒に対するリッチ要求が発生したと判定される時点までの第2触媒リーン要求発生期間において前記第2気筒群に属する複数の気筒のそれぞれに供給される混合気の空燃比を理論空燃比よりも大きい空燃比に制御し、前記第2触媒に対するリッチ要求が発生したと判定された時点から前記第2触媒に対するリーン要求が発生したと判定される時点までの第2触媒リッチ要求発生期間において前記第2気筒群に属する複数の気筒のそれぞれに供給される混合気の空燃比を理論空燃比よりも小さい空燃比に制御し、
前記第1触媒リッチ要求発生期間と前記第2触媒リッチ要求発生期間とが同期したことを条件として前記非許容振動が発生すると判定し、前記逆相制御への移行制御を開始するように構成されていると言うこともできる。
【0183】
この場合、前記移行制御は、最大酸素吸蔵量が大きい方の触媒に対して排ガスを供給している気筒群についての前記リッチ要求判定値及び前記リーン要求判定値を、前記移行制御開始前の前記リッチ要求判定値及び前記リーン要求判定値のそれぞれよりも小さい値に設定する制御であると言うこともできる。
【符号の説明】
【0184】
10…内燃機関、20…機関本体部、21…燃焼室(気筒)、30…吸気系統、33…燃料噴射弁、40…右バンク排気系統、43…右バンク用上流側触媒、50…左バンク排気系統、53…左バンク用上流側触媒、61…熱線式エアフローメータ、66L…左バンク用上流側空燃比センサ、66R…右バンク用上流側空燃比センサ、67L…左バンク用下流側空燃比センサ、67R…右バンク用下流側空燃比センサ、70…電気制御装置。
【技術分野】
【0001】
本発明は、少なくとも2系統の排気通路を有し、それぞれの排気通路に触媒を配設した内燃機関の空燃比制御装置に関する。
【背景技術】
【0002】
従来より、内燃機関から排出される排ガスを浄化するために同機関の排気通路に三元触媒(排ガス浄化用の触媒ユニット)が配設されている。三元触媒は、周知のように、その三元触媒に流入する酸素を吸蔵し且つその吸蔵した酸素を放出する「酸素吸蔵機能」を有する。
【0003】
以下、三元触媒を単に「触媒」と称呼し、触媒に流入する排ガスを「触媒流入ガス」と称呼し、触媒から流出する排ガスを「触媒流出ガス」と称呼する。更に、理論空燃比よりも小さい空燃比を「リッチ空燃比」と称呼し、理論空燃比よりも大きい空燃比を「リーン空燃比」と称呼し、機関に供給される混合気の空燃比を「機関の空燃比」と称呼する。
【0004】
従来の空燃比制御装置の一つ(以下、「従来装置」と称呼する。)は下流側空燃比センサを備える。下流側空燃比センサは、機関の排気通路であって触媒の下流に配設される。従来装置は、下流側空燃比センサの出力値が理論空燃比に相当する値に一致するように、機関の空燃比(従って、触媒流入ガスの空燃比)を制御する(例えば、特許文献1を参照。)。
【0005】
より具体的に述べると、従来装置は、下流側空燃比センサの出力値がリッチ空燃比に相当する値になったとき、触媒流入ガスの空燃比がリーン空燃比となるように機関の空燃比を制御する。換言すると、従来装置は、下流側空燃比センサの出力値がリッチ空燃比に相当する値になったとき、触媒の状態が「酸素不足状態(リッチ状態)」であり、従って、リーン要求が発生したと判定し、機関の空燃比をリーン空燃比に制御する。
【0006】
更に、従来装置は、下流側空燃比センサの出力値がリーン空燃比に相当する値になったとき、触媒流入ガスの空燃比がリッチ空燃比となるように機関の空燃比を制御する。換言すると、従来装置は、下流側空燃比センサの出力値がリーン空燃比に相当する値になったとき、触媒の状態が「酸素過剰状態(リーン状態)」であり、従って、リッチ要求が発生したと判定し、機関の空燃比をリッチ空燃比に制御する。これにより、触媒の状態が「酸素不足状態及び酸素過剰状態の何れかの状態」である期間を短くすることができるので、エミッションが悪化する期間を短くすることができる。なお、リーン要求及びリッチ要求は、以下において、単に「空燃比要求」とも総称される。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開平08−158915号公報
【発明の概要】
【0008】
ところで、出願人は、触媒の状態が「酸素不足状態(リッチ状態)」である場合の機関の空燃比を一定のリーン空燃比に制御し、触媒の状態が「酸素過剰状態(リーン状態)」である場合の機関の空燃比を一定のリッチ空燃比に制御する空燃比制御装置を開発している。この制御装置によれば、機関の空燃比及び排ガスの空燃比は略矩形波状に変化する。
【0009】
一方、例えば、V型6気筒エンジン、直列6気筒エンジン及びV型8気筒エンジン等のように、複数の気筒を含む第1気筒群(例えば、V6エンジンの右バンク)及び複数の気筒を含む第2気筒群(例えば、V6エンジンの左バンク)を備える本体部を有する内燃機関は、第1気筒群及び第2気筒群のそれぞれに対応した2系統の排気通路を備えることが多い。更に、このような機関はそれぞれの排気通路に触媒を備えることが多い。
【0010】
この場合、各排気通路の各触媒の下流に下流側空燃比センサが配設される。そして、空燃比制御装置は、各触媒の状態(各触媒に対する空燃比要求)を各下流側空燃比センサの出力値に基いて判定し、その判定の結果に応じて「第1気筒群に属する複数の気筒(第1気筒群の複数の気筒)に供給される混合気の空燃比及び第2気筒群に属する複数の気筒(第2気筒群の複数の気筒)に供給される混合気の空燃比」を互いに独立して制御する。
【0011】
ところが、図1の(A)に示したように、第1の気筒群(図1において右バンク)の複数の気筒に供給される混合気の空燃比の目標値(第1気筒群目標空燃比)と、第2の気筒群(図1において左バンク)の複数の気筒に供給される混合気の空燃比の目標値(第2気筒群目標空燃比)と、が実質的に同期すると、第1気筒群目標空燃比及び第2気筒群目標空燃比が何れもリーン空燃比である場合には、第1気筒群に属する気筒における燃焼により発生するトルク及び第2気筒群に属する気筒における燃焼により発生するトルクは何れも小さくなる。更に、第1気筒群目標空燃比と第2気筒群目標空燃比とが実質的に同期すると、第1気筒群目標空燃比及び第2気筒群目標空燃比が何れもリッチ空燃比である場合には、第1気筒群に属する気筒における燃焼により発生するトルク及び第2気筒群に属する気筒における燃焼により発生するトルクは何れも大きくなる。この結果、機関及び同機関を搭載した車両は「長い周期を有し且つ大きい振幅」を有するように振動する(図1の曲線Caを参照。)。運転者は、そのような振動を不快に感じることがある。なお、このような状態は、各触媒の最大酸素吸蔵量が互いに一致していない限り、比較的長い時間が経過すれば解消する。但し、このような状態が解消するまで、不快な振動(非許容振動)が発生し続ける。
【0012】
本発明は、係る課題を解決するためになされたものである。即ち、本発明の目的の一つは、第1気筒群及び第2気筒群のそれぞれに対応した2系統の排気通路のそれぞれに触媒を備えた機関において、最大酸素吸蔵量が小さいほうの触媒の下流に設けられている下流側空燃比センサの出力値に基いて、「第1気筒群及び第2気筒群の両群に属する気筒」に供給される混合気の空燃比を互いに逆位相(逆相)の矩形波状に制御することにより、エミッションが悪化することを回避し且つ上述した不快な振動が発生することを回避することができる内燃機関の空燃比制御装置を提供することにある。
【0013】
本発明による内燃機関の空燃比制御装置(本発明制御装置)は、「複数の気筒を含む第1気筒群」及び「複数の気筒を含む第2気筒群」を備える本体部を有する内燃機関に適用される。
【0014】
更に、本発明制御装置は、
前記第1気筒群の前記複数の気筒から排出される排ガスを通過させる第1排気通路に配設された第1触媒と、
前記第1排気通路の前記第1触媒の下流に配設された第1下流側空燃比センサと、
前記第2気筒群の前記複数の気筒から排出される排ガスを通過させる第2排気通路に配設された第2触媒と、
前記第2排気通路の前記第2触媒の下流に配設された第2下流側空燃比センサと、
を備える。
【0015】
更に、本発明制御装置は、空燃比制御手段を備える。この空燃比制御手段は、前記第1触媒及び前記第2触媒のうち「最大酸素吸蔵量が小さい方の特定触媒」の下流に配設されている「前記第1下流側空燃比センサ及び前記第2下流側空燃比センサのうちの何れか一方(選択下流側空燃比センサ)」の出力値に相関を有する値(選択下流側空燃比センサ出力相関値)と所定のリーン要求判定値(リッチ判定値)との比較の結果に基づいて同特定触媒に対するリーン要求が発生したか否かを判定する。換言すると、空燃比制御手段は、選択下流側空燃比センサ出力相関値とリーン要求判定値との比較の結果に基づいて、特定触媒の状態が「酸素不足状態(リッチ状態)」であるか否かを判定する。
【0016】
加えて、この空燃比制御手段は、前記選択下流側空燃比センサ出力相関値と所定のリッチ要求判定値(リーン判定値)との比較に基づいて前記特定触媒に対するリッチ要求が発生したか否かを判定する。換言すると、空燃比制御手段は、選択下流側空燃比センサ出力相関値とリッチ要求判定値との比較の結果に基づいて、特定触媒の状態が「酸素過剰状態(リーン状態)」であるか否かを判定する。
【0017】
この場合、選択下流側空燃比センサ出力相関値は、例えば、選択下流側空燃比センサの出力値の単位時間あたりの変化量(即ち、選択下流側空燃比センサの出力値の変化速度、選択下流側空燃比センサの出力値の時間微分値)であってもよく、選択下流側空燃比センサの出力値そのものであってもよい。選択下流側空燃比センサ出力相関値が、選択下流側空燃比センサの出力値の単位時間あたりの変化量である場合、例えば、選択下流側空燃比センサの出力値が増大している場合であってその変化量(変化速度)の大きさがリーン要求判定値(リッチ判定値)値以上となったとき、リーン要求が発生したと判定され得る。更に、選択下流側空燃比センサ出力相関値が、選択下流側空燃比センサの出力値の単位時間あたりの変化量である場合、例えば、選択下流側空燃比センサの出力値が減少している場合であってその変化量(変化速度)の大きさがリッチ要求判定値(リーン判定値)以上となったとき、リッチ要求が発生したと判定され得る。
【0018】
更に、前記空燃比制御手段は、「前記リーン要求が発生したと判定された時点から前記リッチ要求が発生したと判定される時点まで」の「リーン要求発生期間」において、前記特定触媒に排ガスを排出する「前記第1気筒群及び前記第2気筒群のうちの一方」の前記複数の気筒のそれぞれに供給される混合気の空燃比を「理論空燃比よりも大きい空燃比(リーン空燃比)」に制御する。このとき、前記空燃比制御手段は、「前記第1気筒群及び前記第2気筒群のうちの他方」の前記複数の気筒のそれぞれに供給される混合気の空燃比を「理論空燃比よりも小さい空燃比(リッチ空燃比)」に制御する。
【0019】
加えて、前記空燃比制御手段は、「前記リッチ要求が発生したと判定された時点から前記リーン要求が発生したと判定される時点まで」の「リッチ要求発生期間」において、前記特定触媒に排ガスを排出する「前記第1気筒群及び前記第2気筒群のうちの一方」の前記複数の気筒のそれぞれに供給される混合気の空燃比を「理論空燃比よりも小さい空燃比(リッチ空燃比)」に制御する。このとき、前記空燃比制御手段は、「前記第1気筒群及び前記第2気筒群のうちの他方」の前記複数の気筒のそれぞれに供給される混合気の空燃比を「理論空燃比よりも大きい空燃比(リーン空燃比)」に制御する。
このような制御は、便宜上「逆相制御」と称呼される。
【0020】
この結果、最大酸素吸蔵量が小さい方の触媒(前記特定触媒)の下流側空燃比センサの出力値に基づいて、即ち、前記特定触媒の状態(前記特定触媒に対する空燃比要求)に応じて、前記特定触媒に排ガスを供給する気筒群に属する気筒に供給される混合気の空燃比が制御される。従って、前記特定触媒に排ガスを供給する気筒群から排出される排ガスは前記特定触媒により浄化され得る。
【0021】
加えて、最大酸素吸蔵量が大きい方の触媒(非特定触媒)に排ガスを供給する気筒群に属する気筒に供給される混合気の空燃比の切替周期は、「最大酸素吸蔵量が小さい方の触媒である前記特定触媒」の状態(前記特定触媒に対する空燃比要求)の変化の周期と一致するので、非特定触媒の酸素吸蔵量は、「0」よりも大きく非特定触媒の最大酸素吸蔵量よりも小さい範囲内で変化する。その結果、前記非特定触媒に排ガスを供給する気筒群から排出される排ガスも前記非特定触媒により浄化され得る。
【0022】
更に、図1の(B)に示したように、前記第1気筒群(図1において右バンク)の複数の気筒に供給される空燃比がリッチ空燃比であるとき、前記第2気筒群(図1において左バンク)の複数の気筒に供給される空燃比はリーン空燃比となる。加えて、前記第1気筒群(図1において右バンク)の複数の気筒に供給される空燃比がリーン空燃比であるとき、前記第2気筒群(図1において左バンク)の複数の気筒に供給される空燃比はリッチ空燃比となる。
【0023】
一般に、このような機関において、第1気筒群に属する気筒の点火と第2気筒群に属する気筒の点火は交互に行われるから、機関の発生トルクは図1の(B)に示したように、極めて短時間にて増減する。例えば、前記第1気筒群の複数の気筒に供給される空燃比がリッチ空燃比であるとき、前記第2気筒群の複数の気筒に供給される空燃比はリーン空燃比となるから、第1気筒群に属する気筒における燃焼により発生するトルクは相対的に大きくなり、第2気筒群に属する気筒における燃焼により発生するトルクは相対的に小さくなる。
【0024】
そして、このように機関発生トルクが高い周波数(短い周期)にて変動する場合、発生するトルク変動に起因する「機関及び同機関を搭載した車両の振動」は減衰され易いので、同機関及び同機関を搭載した車両は「短い周期を有し且つ小さい振幅」を有するように振動する(図1(B)の曲線Cbを参照。)。この結果、運転者に不快な振動を与えることを回避することができる。
【0025】
本発明装置の他の目的、他の特徴及び付随する利点は、以下の図面を参照しつつ記述される本発明装置の各実施形態についての説明から容易に理解されるであろう。
【図面の簡単な説明】
【0026】
【図1】図1は、各バンクに対する目標空燃比、機関トルク、及び、機関等に生じる振動の変化の様子を示したタイムチャートである。
【図2】本発明の第1実施形態に係る空燃比制御装置(第1制御装置)を適用した内燃機関の概略図である。
【図3】図3は、図2に示した「右バンク用上流側空燃比センサ又は左バンク用上流側空燃比センサ」の出力値と、空燃比と、の関係を示したグラフである。
【図4】図4は、図2に示した「右バンク用下流側空燃比センサ又は左バンク用下流側空燃比センサ」の出力値と、空燃比と、の関係を示したグラフである。
【図5】図5は、第1制御装置の作用を説明するために各値を示したタイムチャートである。
【図6】図6は、第1制御装置のCPUが実行するルーチンを示したフローチャートである。
【図7】図7は、第1制御装置のCPUが実行するルーチンを示したフローチャートである。
【図8】図8は、第1制御装置のCPUが実行するルーチンを示したフローチャートである。
【図9】図9は、第1制御装置のCPUが実行するルーチンを示したフローチャートである。
【図10】図10は、第1制御装置のCPUが実行するルーチンを示したフローチャートである。
【図11】図11は、第1制御装置のCPUが実行するルーチンを示したフローチャートである。
【発明を実施するための形態】
【0027】
以下、本発明による内燃機関の空燃比制御装置の各実施形態について図面を参照しつつ説明する。
【0028】
<第1実施形態>
(構成)
図2は、第1実施形態に係る制御装置(以下、「第1制御装置」とも称呼する。)が適用された内燃機関10の概略構成を示している。機関10は、4サイクル・火花点火式・V型6気筒エンジンである。機関10は、機関本体部20と、吸気系統30と、右バンク排気系統40と、左バンク排気系統50と、を含む。
【0029】
機関本体部20は、シリンダブロック部及びシリンダヘッド部を含む。機関本体部20は、6個の気筒(燃焼室)21を備えている。第1気筒(#1)、第3気筒(#3)及び第5気筒(#5)は右バンクRBに備えられている。第1気筒(#1)、第3気筒(#3)及び第5気筒(#5)を含む気筒群は、第1気筒群とも称呼される。第2気筒(#2)、第4気筒(#4)及び第6気筒(#6)は左バンクLBに備えられている。第2気筒(#2)、第4気筒(#4)及び第6気筒(#6)を含む気筒群は、第2気筒群とも称呼される。
【0030】
各気筒は、図示しない「吸気ポート及び排気ポート」と連通している。吸気ポートと燃焼室21との連通部は図示しない吸気弁により開閉される。排気ポートと燃焼室21との連通部は図示しない排気弁により開閉される。各燃焼室21には図示しない点火プラグが配設されている。
【0031】
吸気系統30は、インテークマニホールド及び吸気管からなる吸気通路部31、スロットル弁32、及び、複数の燃料噴射弁33、を備えている。
【0032】
吸気通路部31の一端には図示しないエアフィルタが配設されている。吸気通路部31の他端は図示しない複数の枝部に分かれ、その複数の枝部のそれぞれは複数の吸気ポートのそれぞれに接続されている。
【0033】
スロットル弁32は、吸気通路部31の吸気管内に回動可能に配設されている。スロットル弁32は、吸気通路部31の通路断面積を可変とするようになっている。スロットル弁32は、図示しないスロットル弁アクチュエータにより回転駆動されるようになっている。
【0034】
燃料噴射弁33は、一つの気筒(燃焼室)21に対して一つずつ配設されている。燃料噴射弁33は、噴射指示信号に応答し、「その噴射指示信号に含まれる指示燃料噴射量の燃料」を吸気ポート(従って、燃料噴射弁33に対応する気筒21)に対して噴射するようになっている。
【0035】
右バンク排気系統40は、右バンク用エキゾーストマニホールド41、右バンク用エキゾーストパイプ42、右バンク用エキゾーストパイプ42に配設された右バンク用上流側触媒43、及び、右バンク用上流側触媒43よりも下流において右バンク用エキゾーストパイプ42に配設された「図示しない右バンク用下流側触媒」を備えている。
【0036】
右バンク用エキゾーストマニホールド41は、複数の枝部41aと集合部41bとを備えている。複数の枝部41aのそれぞれの一端は、右バンクに属する複数の気筒の排気ポートのそれぞれに接続されている。複数の枝部41aのそれぞれの他端は集合部41bに集合している。この集合部41bは、右バンク用排気集合部HK(R)とも称呼される。
【0037】
右バンク用エキゾーストパイプ42は集合部41bに接続されている。右バンクRBに属する複数の気筒の排気ポート、右バンク用エキゾーストマニホールド41及び右バンク用エキゾーストパイプ42は、右バンク用の排気通路を構成している。
【0038】
右バンク用上流側触媒43及び右バンク用下流側触媒のそれぞれは、所謂、白金、ロジウム及びパラジウム等の貴金属(触媒物質)からなる活性成分を担持する三元触媒装置(排気浄化用の触媒)である。各触媒は、各触媒に流入するガスの空燃比が「三元触媒のウインドウ内の空燃比(例えば、理論空燃比)」であるとき、HC,CO,H2などの未燃成分を酸化するとともに窒素酸化物(NOx)を還元する機能を有する。この機能は触媒機能とも称呼される。
【0039】
更に、各触媒は、酸素を吸蔵(貯蔵)する酸素吸蔵機能を有する。即ち、各触媒は、その触媒に流入するガス(触媒流入ガス)に過剰の酸素が含まれているとき、その酸素を吸蔵するとともにNOxを浄化する。各触媒は、触媒流入ガスに過剰な未燃物が含まれているとき、吸蔵している酸素を放出してその未燃物を浄化する。この酸素吸蔵機能は、触媒に担持されているセリア(CeO2)等の酸素吸蔵材によってもたらされる。各触媒は、酸素吸蔵機能により空燃比が理論空燃比から偏移したとしても未燃成分及び窒素酸化物を浄化することができる。
【0040】
左バンク排気系統50は、左バンク用エキゾーストマニホールド51、左バンク用エキゾーストパイプ52、左バンク用エキゾーストパイプ52に配設された左バンク用上流側触媒53、及び、左バンク用上流側触媒53よりも下流において左バンク用エキゾーストパイプ52に配設された「図示しない左バンク用下流側触媒」を備えている。
【0041】
左バンク用エキゾーストマニホールド51は、複数の枝部51aと集合部51bとを備えている。複数の枝部51aのそれぞれの一端は、左バンクに属する複数の気筒の排気ポートのそれぞれに接続されている。複数の枝部51aのそれぞれの他端は集合部51bに集合している。この集合部51bは、左バンク用排気集合部HK(L)とも称呼される。
【0042】
左バンク用エキゾーストパイプ52は集合部51bに接続されている。左バンクLBに属する複数の気筒の排気ポート、左バンク用エキゾーストマニホールド51及び左バンク用エキゾーストパイプ52は、左バンク用の排気通路を構成している。
【0043】
左バンク用上流側触媒53は右バンク用上流側触媒43と同じ三元触媒である。左バンク用下流側触媒は右バンク用下流側触媒と同じ三元触媒である。
【0044】
このシステムは、熱線式エアフローメータ61、スロットルポジションセンサ62、水温センサ63、クランクポジションセンサ64、インテークカムポジションセンサ65、右バンク用上流側空燃比センサ66R、左バンク用上流側空燃比センサ66L、右バンク用下流側空燃比センサ67R、左バンク用下流側空燃比センサ67L、及び、アクセル開度センサ68を備えている。
【0045】
エアフローメータ61は、吸気通路部31を流れる吸入空気の質量流量(吸入空気流量)Gaに応じた信号を出力するようになっている。即ち、吸入空気量Gaは、単位時間あたりに機関10に吸入される吸入空気量を表す。
【0046】
スロットルポジションセンサ62は、スロットル弁32の開度(スロットル弁開度)を検出し、スロットル弁開度TAを表す信号を出力するようになっている。
【0047】
水温センサ63は、内燃機関10の冷却水の温度を検出し、冷却水温THWを表す信号を出力するようになっている。冷却水温THWは、機関10の暖機状態(機関10の温度)を表す運転状態指標量である。
【0048】
クランクポジションセンサ64は、クランク軸が10°回転する毎に幅狭のパルスを有するとともに同クランク軸が360°回転する毎に幅広のパルスを有する信号を出力するようになっている。この信号は、後述する電気制御装置70によって機関回転速度NEに変換される。
【0049】
インテークカムポジションセンサ65は、インテークカムシャフトが所定角度から90度、次いで90度、更に180度回転する毎に一つのパルスを出力するようになっている。後述する電気制御装置70は、クランクポジションセンサ64及びインテークカムポジションセンサ65からの信号に基づいて、基準気筒(例えば第1気筒)の圧縮上死点を基準とした絶対クランク角度CAを取得するようになっている。この絶対クランク角度CAは、基準気筒の圧縮上死点において「0°クランク角度」に設定され、クランク軸の回転角度に応じて720°クランク角度まで増大し、その時点にて再び0°クランク角度に設定される。
【0050】
右バンク用上流側空燃比センサ66Rは、右バンク用エキゾーストマニホールド41の集合部41b(右バンク用排気集合部HK(R))と右バンク用上流側触媒43との間の位置において「右バンク用エキゾーストマニホールド41及び右バンク用エキゾーストパイプ42の何れか」に配設されている。
【0051】
右バンク用上流側空燃比センサ66Rは、例えば、特開平11−72473号公報、特開2000−65782号公報及び特開2004−69547号公報等に開示された「拡散抵抗層を備える限界電流式広域空燃比センサ」である。
【0052】
右バンク用上流側空燃比センサ66Rは、右バンク用上流側空燃比センサ66Rの配設位置を流れる排ガスの空燃比(右バンク用上流側触媒43に流入するガスである「触媒流入ガス」の空燃比、右バンク上流側空燃比abyfs(R)=右バンク検出空燃比abyfs(R))に応じた出力値Vabyfs(R)を出力する。出力値Vabyfs(R)は、図3に示したように、右バンク用上流側触媒43に流入するガスの空燃比abyfs(R)が大きくなるほど(リーン側の空燃比になるほど)増大する。
【0053】
電気制御装置70は、出力値Vabyfs(R)と右バンク上流側空燃比abyfs(R)との図3に示した関係を規定した空燃比変換テーブル(マップ)Mapabyfsを記憶している。電気制御装置70は、出力値Vabyfs(R)を空燃比変換テーブルMapabyfsに適用することにより、実際の右バンク上流側空燃比abyfs(R)を検出する(右バンク検出空燃比abyfs(R)を取得する)。
【0054】
再び、図2を参照すると、右バンク用下流側空燃比センサ67Rは、右バンク用エキゾーストパイプ42内に配設されている。右バンク用下流側空燃比センサ67Rの配設位置は、右バンク用上流側触媒43よりも下流側であり、且つ、右バンク用下流側触媒よりも上流側(即ち、右バンク用上流側触媒43と右バンク用下流側触媒との間の排気通路)である。右バンク用下流側空燃比センサ67Rは、周知の起電力式の酸素濃度センサ(安定化ジルコニア等の固体電解質を用いた周知の濃淡電池型の酸素濃度センサ)である。右バンク用下流側空燃比センサ67Rは、右バンク用の排気通路であって右バンク用下流側空燃比センサ67Rが配設されている部位を通過するガスである被検出ガスの空燃比に応じた出力値Voxs(R)を発生するようになっている。換言すると、出力値Voxs(R)は、右バンク用上流側触媒43から流出し且つ右バンク用下流側触媒に流入するガスの空燃比に応じた値である。
【0055】
この出力値Voxs(R)は、図4に示したように、右バンク用上流側触媒43から流出したガスの空燃比が理論空燃比よりもリッチのとき最大出力値max(例えば、約0.9V〜1.0V)となる。出力値Voxs(R)は、右バンク用上流側触媒43から流出したガスの空燃比が理論空燃比よりもリーンのとき最小出力値min(例えば、約0.1V〜0V)となる。更に、出力値Voxs(L)は、右バンク用上流側触媒43から流出したガスの空燃比が理論空燃比であるとき最大出力値maxと最小出力値minの略中間の電圧Vst(中央値Vmid、中間電圧Vst、例えば、約0.5V)となる。出力値Voxs(R)は、右バンク用上流側触媒43から流出したガスの空燃比が理論空燃比よりもリッチな空燃比からリーンな空燃比へと変化する際に最大出力値maxから最小出力値minへと急変する。同様に、出力値Voxs(R)は、右バンク用上流側触媒43から流出したガスの空燃比が理論空燃比よりもリーンな空燃比からリッチな空燃比へと変化する際に最小出力値minから最大出力値maxへと急変する。
【0056】
再び、図2を参照すると、左バンク用上流側空燃比センサ66Lは、左バンク用エキゾーストマニホールド51の集合部51b(左バンク用排気集合部HK(L))と左バンク用上流側触媒53との間の位置において「左バンク用エキゾーストマニホールド51及び左バンク用エキゾーストパイプ52の何れか」に配設されている。左バンク用上流側空燃比センサ66Lは、右バンク用上流側空燃比センサ66Rと同じ「拡散抵抗層を備える限界電流式広域空燃比センサ」である。
【0057】
左バンク用上流側空燃比センサ66Lは、左バンク用上流側空燃比センサ66Lの配設位置を流れる排ガスの空燃比(左バンク用上流側触媒53に流入するガスである「触媒流入ガス」の空燃比、左バンク上流側空燃比abyfs(L)=左バンク検出空燃比abyfs(L))に応じた出力値Vabyfs(L)を出力する。出力値Vabyfs(L)は、図3に示したように、左バンク用上流側触媒53に流入するガスの空燃比が大きくなるほど(リーン側の空燃比になるほど)増大する。
【0058】
電気制御装置70は、出力値Vabyfs(L)と左バンク上流側空燃比abyfs(L)との図3に示した関係を規定した空燃比変換テーブル(マップ)Mapabyfsを記憶している。電気制御装置70は、出力値Vabyfs(L)を空燃比変換テーブルMapabyfsに適用することにより、実際の左バンク上流側空燃比abyfs(L)を検出する(左バンク検出空燃比abyfs(L)を取得する)。
【0059】
再び、図2を参照すると、左バンク用下流側空燃比センサ67Lは、左バンク用エキゾーストパイプ52内に配設されている。左バンク用下流側空燃比センサ67Lの配設位置は、左バンク用上流側触媒53よりも下流側であり、且つ、左バンク用下流側触媒よりも上流側(即ち、左バンク用上流側触媒53と左バンク用下流側触媒との間の排気通路)である。左バンク用下流側空燃比センサ67Lは、右バンク用下流側空燃比センサ67Rと同じ起電力式の酸素濃度センサである。
【0060】
従って、左バンク用下流側空燃比センサ67Lは、左バンク用の排気通路であって左バンク用下流側空燃比センサ67Lが配設されている部位を通過するガスである被検出ガスの空燃比に応じた出力値Voxs(L)を発生するようになっている(図4を参照。)。
【0061】
図2に示したアクセル開度センサ68は、運転者によって操作されるアクセルペダルAPの操作量Accp(アクセルペダル操作量、アクセルペダルAPの開度)を表す信号を出力するようになっている。アクセルペダル操作量Accpは、アクセルペダルAPの操作量が大きくなるとともに大きくなる。
【0062】
電気制御装置70は、「CPU、CPUが実行するプログラム、テーブル(マップ、関数)及び定数等を予め記憶したROM、CPUが必要に応じてデータを一時的に格納するRAM、バックアップRAM(B−RAM)、並びに、ADコンバータを含むインターフェース等」からなる周知のマイクロコンピュータである。
【0063】
バックアップRAMは、機関10を搭載した車両の図示しないイグニッション・キー・スイッチの位置(オフ位置、始動位置及びオン位置等の何れか)に関わらず、車両に搭載されたバッテリから電力の供給を受けるようになっている。バックアップRAMは、バッテリから電力の供給を受けている場合、CPUの指示に応じてデータを格納する(データが書き込まれる)とともに、そのデータを読み出し可能となるように保持(記憶)する。従って、バックアップRAMは、機関10の運転停止中においてもデータを保持することができる。
【0064】
バックアップRAMは、バッテリが車両から取り外される等によりバッテリからの電力供給が遮断されると、データを保持することができない。そこで、CPUは、バックアップRAMへの電力供給が再開されたとき、バックアップRAMに保持されるべきデータを初期化(デフォルト値に設定)するようになっている。なお、バックアップRAMは、EEPROM等の読み書き可能な不揮発性メモリであってもよい。
【0065】
電気制御装置70は、上述したセンサ等と接続され、CPUにそれらのセンサからの信号を供給するようになっている。更に、電気制御装置70は、CPUの指示に応じて、各気筒に対応して設けられた点火プラグ(実際にはイグナイタ)、各気筒に対応して設けられた燃料噴射弁33、及び、スロットル弁アクチュエータ等に駆動信号(指示信号)を送出するようになっている。
【0066】
なお、電気制御装置70は、取得されたアクセルペダルの操作量Accpが大きくなるほどスロットル弁開度TAが大きくなるように、スロットル弁アクチュエータに指示信号を送出するようになっている。即ち、電気制御装置70は、運転者により変更される機関10の加速操作量(アクセルペダル操作量Accp)に応じて「機関10の吸気通路に配設されたスロットル弁32」の開度を変更するスロットル弁駆動手段を備えている。また、機関10における点火順序は、例えば、第1気筒、第2気筒、第3気筒、第4気筒、第5気筒、第6気筒の順である。この点火順序に限定はされないが、機関10においては、第1気筒群(右バンク)に属する気筒の点火と第2気筒群(左バンク)に属する気筒の点火は交互に行われるようになっている。
【0067】
(作動の概要)
次に、上記のように構成された第1制御装置の作動の概略について説明する。
第1制御装置は、右バンクフィードバック制御条件が成立すると、右バンク用下流側空燃比センサ67Rの出力値Voxs(R)に基いて「右バンク用上流側触媒43が酸素過剰状態にあるか酸素不足状態にあるか」を判定する。換言すると、出力値Voxs(R)に基いて、右バンクに属する複数の気筒に対する空燃比要求(右バンク空燃比要求)がリッチ要求であるのかリーン要求であるのかを判定する。
【0068】
より具体的に述べると、第1制御装置は、出力値Voxs(R)が増大している場合であってその変化量(変化速度)の大きさが右バンク用リッチ判定値(右バンク用リーン要求判定値)dRichRth以上となったとき、右バンク用上流側触媒43の状態が酸素不足状態(リッチ状態)にあり、従って、右バンクに対してリーン要求が発生したと判定する。更に、第1制御装置は、出力値Voxs(R)が減少している場合であってその変化量(変化速度)の大きさが右バンク用リーン判定値(右バンク用リッチ要求判定値)dLeanRth以上となったとき、右バンク用上流側触媒43の状態が酸素過剰状態(リーン状態)にあり、従って、右バンクに対してリッチ要求が発生したと判定する。
【0069】
同様に、第1制御装置は、左バンクフィードバック制御条件が成立すると、左バンク用下流側空燃比センサ67Lの出力値Voxs(L)に基いて「左バンク用上流側触媒53が酸素過剰状態にあるか酸素不足状態にあるか」を判定する。換言すると、出力値Voxs(L)に基いて、左バンクに属する複数の気筒に対する空燃比要求(左バンク空燃比要求)がリッチ要求であるのかリーン要求であるのかを判定する。
【0070】
より具体的に述べると、第1制御装置は、出力値Voxs(L)が増大している場合であってその変化量(変化速度)の大きさが左バンク用リッチ判定値(左バンク用リーン要求判定値)dRichLth以上となったとき、左バンク用上流側触媒53の状態が酸素不足状態(リッチ状態)にあり、従って、左バンクに対してリーン要求が発生したと判定する。更に、第1制御装置は、出力値Voxs(L)が減少している場合であってその変化量(変化速度)の大きさが左バンク用リーン判定値(左バンク用リッチ要求判定値)dLeanLth以上となったとき、左バンク用上流側触媒53の状態が酸素過剰状態(リーン状態)にあり、従って、左バンクに対してリッチ要求が発生したと判定する。
【0071】
なお、リッチ要求が発生したと判定されてからリーン要求が発生したと判定されるまでの期間は、「リッチ要求発生期間」と称呼される。リーン要求が発生したと判定されてからリッチ要求が発生したと判定されるまでの期間は、「リーン要求発生期間」と称呼される。
【0072】
そして、第1制御装置は、右バンク空燃比要求に基いて、右バンクに属する複数の気筒に供給される混合気の空燃比(右バンク空燃比)の目標値(右バンク目標空燃比abyfrR)を決定し、実際の右バンク空燃比(即ち、右バンク用上流側空燃比センサ66Rの出力値Vabyfs(R)に基いて取得される右バンク上流側空燃比abyfs(R))が右バンク目標空燃比abyfrRに一致するように、右バンク空燃比(右バンクに属する複数の気筒に対する燃料噴射量)を制御する。即ち、右バンクメインフィードバック制御を実行する。
【0073】
同様に、第1制御装置は、左バンク空燃比要求に基いて、左バンクに属する複数の気筒に供給される混合気の空燃比(左バンク空燃比)の目標値(左バンク目標空燃比abyfrL)を決定し、実際の左バンク空燃比(即ち、左バンク用上流側空燃比センサ66Lの出力値Vabyfs(L)に基いて取得される左バンク上流側空燃比abyfs(L))が左バンク目標空燃比abyfrLに一致するように、左バンク空燃比(左バンクに属する複数の気筒に対する燃料噴射量)を制御する。即ち、左バンクメインフィードバック制御を実行する。
【0074】
この状態において、図5の(A)に示したように、右バンク目標空燃比abyfrR(即ち、右バンク空燃比要求)と左バンク目標空燃比abyfrL(即ち、左バンク空燃比要求)とが偶発的且つ実質的に同期すると、図1を参照して説明したように、機関10に「振幅が大きく且つ周期が長い振動」が発生する。但し、この場合、右バンク目標空燃比abyfrRの目標リッチ空燃比afRich及び目標リーン空燃比afLeanの間の切り替え周期と、左バンク目標空燃比abyfrLの目標リッチ空燃比afRich及び目標リーン空燃比afLeanの間の切り替え周期と、は本来は互いに相違する(後述する非特定触媒に対応するバンクに対する目標空燃比の切り替え周期の方が長い)。
【0075】
そこで、第1制御装置は、右バンク目標空燃比abyfrRと左バンク目標空燃比abyfrLとが実質的に同期しているか否かを判定する。更に、第1制御装置は、それらが同期していると判定したとき(このタイミングを同期時と称呼する。)、右バンク用上流側触媒43の最大酸素吸蔵量CmaxRと左バンク用上流側触媒53の最大酸素吸蔵量CmaxLとのうち何れが大きいかを判定する。
【0076】
なお、右バンク用上流側触媒43と左バンク用上流側触媒53とのうち、最大酸素吸蔵量が小さい方の触媒を「特定触媒」と称呼する。右バンク用上流側触媒43と左バンク用上流側触媒53とのうち、最大酸素吸蔵量が大きい方の触媒を「非特定触媒」と称呼する。更に、特定触媒の下流の位置に配設されている下流側空燃比センサ(右バンク用下流側空燃比センサ67R及び左バンク用下流側空燃比センサ67Lのうちの一方)を「選択下流側空燃比センサ」と称呼し、残りの下流側空燃比センサ(非特定触媒の下流の位置に配設されている下流側空燃比センサ)を「非選択下流側空燃比センサ」と称呼する。加えて、特定触媒に排ガスを供給しているバンクを「特定バンク」、特定バンクに属する複数の気筒を「特定バンク気筒」、非特定触媒に排ガスを供給しているバンクを「非特定バンク」、非特定バンクに属する複数の気筒を「非特定バンク気筒」と称呼する。
【0077】
そして、第1制御装置は、非特定バンク気筒に対するリッチ判定値を小さくするとともに、非特定バンク気筒に対するリーン判定値を小さくする。これにより、非特定バンクに対する空燃比要求(非特定バンク上流側空燃比)の切り替え周期が次第に短くなる。即ち、図5の(B)に示したように非特定バンク気筒(図5の例においては左バンク気筒)に対する目標空燃比の周期が次第に短くなる。
【0078】
この状態が継続すると、図5の(C)に示したように、特定バンクに対する目標空燃比(図5の例においては右バンク目標空燃比abyfrR)と非特定バンクに対する目標空燃比(図5の例においては左バンク目標空燃比abyfrL)とが、実質的に同じ周期(周期の差が所定値以内)であり、且つ、互いに逆相となるように変化するように変化する。
【0079】
即ち、特定バンクに対する目標空燃比がリーン空燃比からリッチ空燃比へと切り替わるタイミングにて非特定バンクに対する目標空燃比がリッチ空燃比からリーン空燃比へと切り替わり、特定バンクに対する目標空燃比がリッチ空燃比からリーン空燃比へと切り替わるタイミングにて非特定バンクに対する目標空燃比がリーン空燃比からリッチ空燃比へと切り替わる。このタイミングを逆相成立時と称呼する。また、同期時から逆相成立時までの制御(非特定バンクに対する目標空燃比を特定バンクに対する目標空燃比と逆相になるようにする制御)を逆相制御への移行制御と称呼する。
【0080】
逆相制御への移行制御時以降において、第1制御装置は、選択下流側空燃比センサの出力値に基いて特定触媒の状態を判定し(即ち、特定バンクに対する空燃比要求を決定し)、その特定触媒の状態(その特定バンクに対する空燃比要求)に基いて特定バンクの空燃比(特定バンク気筒に対する燃料噴射量)を制御する。
【0081】
更に、第1制御装置は、非特定バンクの目標空燃比が特定バンクの目標空燃比に対して理論空燃比を挟んで反対の空燃比になるように非特定バンクの目標空燃比を設定し、その設定された非特定バンクの目標空燃比に基いて非特定バンク空燃比(非特定バンク気筒に対する燃料噴射量)を制御する。即ち、第1制御装置は、特定バンクの目標空燃比がリッチ空燃比であれば非特定バンクの目標空燃比をリーン空燃比に設定し、特定バンクの目標空燃比がリーン空燃比であれば非特定バンクの目標空燃比をリッチ空燃比に設定する。この選択下流側空燃比センサの出力値に基く両バンクの空燃比制御を、逆相制御と称呼する(図5の(C)を参照。)。この結果、図1の(B)を参照して説明したように、機関10の振動は小さくなる。
【0082】
(作動の詳細)
次に、上記のように構成された第1制御装置の作動の詳細について説明する。
<右バンク燃料噴射制御>
第1制御装置のCPUは、図6に示した右バンク燃料噴射制御ルーチンを、任意の気筒のクランク角が吸気上死点前の所定クランク角度(例えば、BTDC90°CA)となる毎に繰り返し実行するようになっている。この「クランク角が吸気上死点前の所定クランク角度に一致した気筒」は燃料噴射気筒とも称呼される。
【0083】
従って、所定のタイミングになると、CPUはステップ600から処理を開始してステップ605に進み、燃料噴射気筒が右バンクに属する気筒(右バンク気筒)であるか否かを判定する。このとき、燃料噴射気筒が右バンク気筒でなければ、CPUはステップ605にて「No」と判定し、ステップ695に直接進んで本ルーチンを一旦終了する。
【0084】
これに対し、燃料噴射気筒が右バンク気筒であると、CPUはステップ605にて「Yes」と判定してステップ610に進み、「エアフローメータ61により計測された吸入空気量Ga、クランクポジションセンサ64の信号に基いて取得された機関回転速度NE、及び、ルックアップテーブルMapMc」に基いて「燃料噴射気筒に吸入される空気量」である「筒内吸入空気量Mc(k)」を取得する。筒内吸入空気量Mc(k)は、各吸気行程に対応されながらRAM内に記憶される。筒内吸入空気量Mc(k)は、周知の空気モデルにより算出されてもよい。
【0085】
次に、CPUはステップ615に進み、右バンクフィードバック制御フラグXFBRの値が「1」であるか否かを判定する。この右バンクフィードバック制御フラグXFBRの値は、右バンクに対する空燃比のフィードバック制御条件が成立しているときに「1」に設定され、右バンクに対するフィードバック制御条件が成立していないときに「0」に設定される。更に、右バンクフィードバック制御フラグXFBRの値は、イニシャルルーチンにおいて「0」に設定されるようになっている。イニシャルルーチンは、機関10を搭載した車両のイグニッション・キー・スイッチの位置がオフ位置からオン位置へと変更されたときにCPUにより実行される初期化ルーチンである。
【0086】
右バンクに対するフィードバック制御条件は、例えば、以下の総ての条件が成立したときに成立する。
(A1)右バンク用上流側空燃比センサ66Rが活性化している。
(A2)右バンク用下流側空燃比センサ67Rが活性化している。
(A3)機関の負荷KLが閾値負荷KLfbth以下である。
【0087】
なお、負荷KLは、本例において負荷率(充填率)KLであり、下記の(1)式に基いて算出される。この(1)式において、ρは空気密度(単位は(g/l))、Lは機関10の排気量(単位は(l))、6は機関10の気筒数である。但し、負荷KLは、筒内吸入空気量Mc、スロットル弁開度TA及びアクセルペダル操作量Accp等であってもよい。
KL={Mc(k)/(ρ・L/6)}・100(%)…(1)
【0088】
右バンクフィードバック制御フラグXFBRの値が「1」でなければ、CPUはステップ615にて「No」と判定してステップ620に進み、右バンク目標空燃比abyfrRを理論空燃比stoich(例えば、14.6)に設定する。
【0089】
次に、CPUは以下に述べるステップ625乃至ステップ640の処理を順に行い、ステップ695に進んで本ルーチンを一旦終了する。
【0090】
ステップ625:CPUは、筒内吸入空気量Mcを右バンク目標空燃比abyfrRで除することによって基本燃料噴射量Fbaseを算出する。
【0091】
ステップ630:CPUは、図示しないルーチンにより別途計算されている右バンクメインフィードバック量KFmainRを読み込む。右バンクメインフィードバック量KFmainRは右バンク上流側空燃比abyfs(R)(=右バンク検出空燃比abyfs(R))が右バンク目標空燃比abyfrRに一致するように周知のPID制御に基づいて算出される。なお、右バンクメインフィードバック量KFmainRは、右バンクフィードバック制御フラグXFBRの値が「0」であるとき「1」に設定される。更に、右バンクメインフィードバック量KFmainRは常に「1」に設定されてもよい。即ち、右バンクメインフィードバック量KFmainRを用いたフィードバック制御は本実施形態において必須ではない。
【0092】
ステップ635:CPUは、基本燃料噴射量Fbaseを右バンクメインフィードバック量KFmainRにより補正することによって指示燃料噴射量Fiを算出する。より具体的に述べると、CPUは、基本燃料噴射量Fbaseに右バンクメインフィードバック量KFmainRを乗じることによって指示燃料噴射量Fiを算出する。
【0093】
ステップ640:CPUは、「指示燃料噴射量Fiの燃料」を「燃料噴射気筒に対応して設けられている燃料噴射弁33」から噴射させるための噴射指示信号を、その燃料噴射弁33に送出する。
【0094】
この結果、右バンク空燃比を右バンク目標空燃比abyfrRに一致させるために必要な量の燃料が燃料噴射気筒の燃料噴射弁33から噴射させられる。即ち、ステップ625乃至ステップ640は、「右バンク空燃比が右バンク目標空燃比abyfrRに一致するように指示燃料噴射量Fiを制御する」右バンク指示燃料噴射量制御手段を構成している。
【0095】
一方、CPUがステップ615の処理を行う時点において、右バンクフィードバック制御フラグXFBRの値が「1」であると、CPUはステップ615にて「Yes」と判定してステップ645に進み、逆相制御実行フラグXgyakusoの値が「0」であるか否かを判定する。この逆相制御実行フラグXgyakusoの値は上述したイニシャルルーチンにおいて「0」に設定されるようになっている。更に、逆相制御実行フラグXgyakusoの値は後述するルーチンにより、逆相制御の実行が開始される時点にて「1」に設定される。
【0096】
いま、逆相制御実行フラグXgyakusoの値が「0」であると仮定する。この場合、CPUはステップ645にて「Yes」と判定してステップ650に進み、右バンク触媒リーン状態表示フラグXLeanRに右バンク用上流側触媒43の状態を示すフラグXCCLeanRの値を格納する。右バンク用上流側触媒43の状態を示すフラグXCCLeanRの値は、後述するルーチンにより右バンク用下流側空燃比センサ67Rの出力値Voxs(R)に基いて設定される。即ち、フラグXCCLeanRの値は、右バンク用上流側触媒43の状態が酸素過剰状態であると判定されたとき「1」に設定され、右バンク用上流側触媒43の状態が酸素不足状態であると判定されたとき「0」に設定される。
【0097】
次に、CPUはステップ655に進み、右バンク触媒リーン状態表示フラグXLeanRの値が「1」であるか否かを判定する。即ち、この場合、右バンク用上流側触媒43の状態を示すフラグXCCLeanRの値が「1」であるか否かが実質的に判定される。このとき、右バンク触媒リーン状態表示フラグXLeanRの値が「1」であると、CPUはステップ655にて「Yes」と判定してステップ660に進み、右バンク目標空燃比abyfrRを目標リッチ空燃比afRich(理論空燃比よりも小さい一定の空燃比、例えば、14.2)」に設定する。その後、CPUはステップ625以降に進む。従って、右バンク空燃比は目標リッチ空燃比afRichに一致させられる。
【0098】
これに対し、CPUがステップ655の処理を実行する時点において、右バンク触媒リーン状態表示フラグXLeanRの値が「0」であると、CPUはステップ655にて「No」と判定してステップ665に進み、右バンク目標空燃比abyfrRを「所定の目標リーン空燃比afLean(理論空燃比よりも大きい一定の空燃比、例えば、15.0)」に設定する。その後、CPUはステップ625以降に進む。従って、右バンク空燃比は目標リーン空燃比afLeanに一致させられる。
【0099】
このように、逆相制御実行フラグXgyakusoの値が「0」であるとき、右バンク目標空燃比abyfrR(従って、右バンクの空燃比)は右バンク用上流側触媒43の状態を示すフラグXCCLeanRに基いて制御される。即ち、右バンク空燃比は、右バンク用下流側空燃比センサ67Rの出力値Voxs(R)に基いて決定される右バンク用上流側触媒43の状態に応じて制御される。
【0100】
これに対し、CPUがステップ645の処理を実行する時点において、逆相制御実行フラグXgyakusoの値が「1」であると、CPUはそのステップ645にて「No」と判定してステップ670に進み、右バンク用上流側触媒43の最大酸素吸蔵量CmaxRが左バンク用上流側触媒53の最大酸素吸蔵量CmaxLよりも小さいか否かを判定する。なお、最大酸素吸蔵量CmaxR及び最大酸素吸蔵量CmaxLは、後述するように周知の手法に基いて別途算出されている。
【0101】
このとき、右バンク用上流側触媒43の最大酸素吸蔵量CmaxRが左バンク用上流側触媒53の最大酸素吸蔵量CmaxLよりも小さいと、CPUはステップ670にて「Yes」と判定してステップ650に進み、右バンク触媒リーン状態表示フラグXLeanRに右バンク用上流側触媒43の状態を示すフラグXCCLeanRの値を格納する。その結果、右バンク目標空燃比abyfrR(従って、右バンクの空燃比)は、「最大酸素吸蔵量が小さい方の触媒である右バンク用上流側触媒43(特定触媒)の下流側空燃比センサ(選択下流側空燃比センサ)である右バンク用下流側空燃比センサ67R」の出力値Voxs(R)に基いて制御される。即ち、右バンクの空燃比は、特定触媒である右バンク用上流側触媒43の状態に基く空燃比要求に従って制御される。
【0102】
これに対し、右バンク用上流側触媒43の最大酸素吸蔵量CmaxRが左バンク用上流側触媒53の最大酸素吸蔵量CmaxLよりも大きいと、CPUはステップ670にて「No」と判定してステップ675に進み、右バンク触媒リーン状態表示フラグXLeanRに「左バンク用上流側触媒53の状態を示すフラグXCCLeanLの反転値」を格納する。なお、任意のフラグXの反転値とは、フラグXが「1」であるとき「0」となり、フラグXが「0」であるとき「1」となる値である。
【0103】
この結果、右バンクの空燃比は、「最大酸素吸蔵量が小さい方の触媒である左バンク用上流側触媒53(特定触媒)の下流側空燃比センサ(選択下流側空燃比センサ)である左バンク用下流側空燃比センサ67L」の出力値Voxs(L)に基いて制御される。即ち、右バンクの空燃比は、特定触媒である左バンク用上流側触媒53の状態に基く空燃比要求に従って制御される。一方、後述する図7の「ステップ770及びステップ750」に示したように、この場合、左バンク触媒リーン状態表示フラグXLeanLに「左バンク用上流側触媒53の状態を示すフラグXCCLeanLの値」が設定される。その結果、右バンク目標空燃比abyfrRは左バンク目標空燃比abyfrLと逆相にて変化する。換言すると、右バンクの空燃比は、左バンク用上流側触媒53の状態に応じて制御される。
【0104】
<左バンク燃料噴射量制御>
第1制御装置のCPUは、図7に示した左バンク燃料噴射制御ルーチンを、任意の気筒のクランク角が吸気上死点前の所定クランク角度(例えば、BTDC90°CA)となる毎に繰り返し実行するようになっている。
【0105】
従って、所定のタイミングになると、CPUはステップ700から処理を開始してステップ705に進み、燃料噴射気筒が左バンクに属する気筒(左バンク気筒)であるか否かを判定する。このとき、燃料噴射気筒が左バンク気筒でなければ、CPUはステップ705にて「No」と判定し、ステップ795に直接進んで本ルーチンを一旦終了する。
【0106】
これに対し、燃料噴射気筒が左バンク気筒であると、CPUはステップ705にて「Yes」と判定してステップ710に進み、ステップ610と同様に「筒内吸入空気量Mc(k)」を取得する。
【0107】
次に、CPUはステップ715に進み、左バンクフィードバック制御フラグXFBLの値が「1」であるか否かを判定する。この左バンクフィードバック制御フラグXFBLの値は、左バンクに対する空燃比のフィードバック制御条件が成立しているときに「1」に設定され、左バンクに対するフィードバック制御条件が成立していないときに「0」に設定される。更に、左バンクフィードバック制御フラグXFBLの値は、上述したイニシャルルーチンにおいて「0」に設定されるようになっている。
【0108】
左バンクに対するフィードバック制御条件は、例えば、以下の総ての条件が成立したときに成立する。
(A1)左バンク用上流側空燃比センサ66Lが活性化している。
(A2)左バンク用下流側空燃比センサ67Lが活性化している。
(A3)機関の負荷KLが閾値負荷KLfbth以下である。
【0109】
左バンクフィードバック制御フラグXFBLの値が「1」でなければ、CPUはステップ715にて「No」と判定してステップ720に進み、左バンク目標空燃比abyfrLを理論空燃比stoichに設定する。
【0110】
次に、CPUは以下に述べるステップ725乃至ステップ740の処理を順に行い、ステップ795に進んで本ルーチンを一旦終了する。
【0111】
ステップ725:CPUは、筒内吸入空気量Mcを左バンク目標空燃比abyfrLで除することによって基本燃料噴射量Fbaseを算出する。
【0112】
ステップ730:CPUは、図示しないルーチンにより別途計算されている左バンクメインフィードバック量KFmainLを読み込む。左バンクメインフィードバック量KFmainLは左バンク上流側空燃比abyfs(L)(=左バンク検出空燃比abyfs(L))が左バンク目標空燃比abyfrLに一致するように周知のPID制御に基づいて算出される。なお、左バンクメインフィードバック量KFmainLは、左バンクフィードバック制御フラグXFBLの値が「0」であるとき「1」に設定される。更に、左バンクメインフィードバック量KFmainLは常に「1」に設定されてもよい。即ち、左バンクメインフィードバック量KFmainLを用いたフィードバック制御は本実施形態において必須ではない。
【0113】
ステップ735:CPUは、基本燃料噴射量Fbaseを左バンクメインフィードバック量KFmainLにより補正することによって指示燃料噴射量Fiを算出する。より具体的に述べると、CPUは、基本燃料噴射量Fbaseに左バンクメインフィードバック量KFmainLを乗じることによって指示燃料噴射量Fiを算出する。
【0114】
ステップ740:CPUは、「指示燃料噴射量Fiの燃料」を「燃料噴射気筒に対応して設けられている燃料噴射弁33」から噴射させるための噴射指示信号を、その燃料噴射弁33に送出する。
【0115】
この結果、左バンク空燃比を左バンク目標空燃比abyfrLに一致させるために必要な量の燃料が燃料噴射気筒の燃料噴射弁33から噴射させられる。即ち、ステップ725乃至ステップ740は、「左バンク空燃比が左バンク目標空燃比abyfrLに一致するように指示燃料噴射量Fiを制御する」左バンク指示燃料噴射量制御手段を構成している。
【0116】
一方、CPUがステップ715の処理を行う時点において、左バンクフィードバック制御フラグXFBLの値が「1」であると、CPUはステップ715にて「Yes」と判定してステップ745に進み、逆相制御実行フラグXgyakusoの値が「0」であるか否かを判定する。
【0117】
いま、逆相制御実行フラグXgyakusoの値が「0」であると仮定する。この場合、CPUはステップ745にて「Yes」と判定してステップ750に進み、左バンク触媒リーン状態表示フラグXLeanLに左バンク用上流側触媒53の状態を示すフラグXCCLeanLの値を格納する。左バンク用上流側触媒53の状態を示すフラグXCCLeanLの値は、後述するルーチンにより左バンク用下流側空燃比センサ67Lの出力値Voxs(L)に基いて設定される。即ち、フラグXCCLeanLの値は、左バンク用上流側触媒53の状態が酸素過剰状態であると判定されたとき「1」に設定され、左バンク用上流側触媒53の状態が酸素不足状態であると判定されたとき「0」に設定される。
【0118】
次に、CPUはステップ755に進み、左バンク触媒リーン状態表示フラグXLeanLの値が「1」であるか否かを判定する。即ち、この場合、左バンク用上流側触媒53の状態を示すフラグXCCLeanLの値が「1」であるか否かが実質的に判定される。このとき、左バンク触媒リーン状態表示フラグXLeanLの値が「1」であると、CPUはステップ755にて「Yes」と判定してステップ760に進み、左バンク目標空燃比abyfrLを目標リッチ空燃比afRichに設定する。その後、CPUはステップ725以降に進む。従って、左バンク空燃比は目標リッチ空燃比afRichに一致させられる。
【0119】
これに対し、CPUがステップ755の処理を実行する時点において、左バンク触媒リーン状態表示フラグXLeanLの値が「0」であると、CPUはステップ755にて「No」と判定してステップ765に進み、左バンク目標空燃比abyfrLを目標リーン空燃比afLeanに設定する。その後、CPUはステップ725以降に進む。従って、左バンク空燃比は目標リーン空燃比afLeanに一致させられる。
【0120】
このように、逆相制御実行フラグXgyakusoの値が「0」であるとき、左バンク目標空燃比abyfrL(従って、左バンクの空燃比)は左バンク用上流側触媒53の状態を示すフラグXCCLeanLに基いて制御される。即ち、左バンク空燃比は、左バンク用下流側空燃比センサ67Lの出力値Voxs(L)に基いて決定される左バンク用上流側触媒53の状態に応じて制御される。
【0121】
これに対し、CPUがステップ745の処理を実行する時点において、逆相制御実行フラグXgyakusoの値が「1」であると、CPUはそのステップ745にて「No」と判定してステップ770に進み、左バンク用上流側触媒53の最大酸素吸蔵量CmaxLが右バンク用上流側触媒43の最大酸素吸蔵量CmaxRよりも小さいか否かを判定する。
【0122】
このとき、左バンク用上流側触媒53の最大酸素吸蔵量CmaxLが右バンク用上流側触媒43の最大酸素吸蔵量CmaxRよりも小さいと、CPUはステップ770にて「Yes」と判定してステップ750に進み、左バンク触媒リーン状態表示フラグXLeanLに左バンク用上流側触媒53の状態を示すフラグXCCLeanLの値を格納する。その結果、左バンク目標空燃比abyfrL(従って、左バンクの空燃比)は、「最大酸素吸蔵量が小さい方の触媒である左バンク用上流側触媒53(特定触媒)の下流側空燃比センサ(選択下流側空燃比センサ)である左バンク用下流側空燃比センサ67L」の出力値Voxs(L)に基いて制御される。即ち、左バンクの空燃比は、特定触媒である左バンク用上流側触媒53の状態に基く空燃比要求に従って制御される。
【0123】
これに対し、左バンク用上流側触媒53の最大酸素吸蔵量CmaxLが右バンク用触媒43の最大酸素吸蔵量CmaxRよりも大きいと、CPUはステップ770にて「No」と判定してステップ775に進み、左バンク触媒リーン状態表示フラグXLeanLに「右バンク用上流側触媒43の状態を示すフラグXCCLeanRの反転値」を格納する。
【0124】
この結果、左バンクの空燃比は、「最大酸素吸蔵量が小さい方の触媒である右バンク用上流側触媒43(特定触媒)の下流側空燃比センサ(選択下流側空燃比センサ)である右バンク用下流側空燃比センサ67R」の出力値Voxs(R)に基いて制御される。即ち、左バンクの空燃比は、特定触媒である右バンク用上流側触媒43の状態に基く空燃比要求に従って制御される。一方、この場合、前述した図6の「ステップ670及びステップ650」に示したように、右バンク触媒リーン状態表示フラグXLeanRに「右バンク用上流側触媒43の状態を示すフラグXCCLeanRの値」が設定される。その結果、左バンク目標空燃比abyfrLは右バンク目標空燃比abyfrRと逆相にて変化する。即ち、左バンクの空燃比は、右バンク用上流側触媒43の状態に応じて制御される。
【0125】
<触媒状態判定>
CPUは図8にフローチャートにより示した「触媒状態判定ルーチン(要求空燃比決定ルーチン)」を所定時間tsの経過毎に繰り返し実行している。従って、所定のタイミングになると、CPUはステップ800から処理を開始してステップ810に進み、「現時点の右バンク用下流側空燃比センサ67Rの出力値Voxs(R)」から「前回の右バンク用下流側空燃比センサ67Rの出力値VoxsRold」を減じることにより、所定時間ts(単位時間)あたりの出力値Voxs(R)の変化量ΔVoxsRを算出する。前回の出力値VoxsRoldは、次のステップ815にて更新される値であり、現時点から所定時間tsだけ前の時点の出力値Voxs(R)(本ルーチンが前回実行されたときの出力値Voxs(R))である。変化量ΔVoxsRは変化速度ΔVoxsR(第1下流側空燃比センサ出力相関値)とも称呼される。次に、CPUはステップ815に進み、現時点の出力値Voxs(R)を「前回の出力値VoxsRold」として記憶する。
【0126】
次に、CPUはステップ820に進み、右バンク用上流側触媒43の状態を示すフラグXCCLeanRの値が「1」であるか否かを判定する。右バンク用上流側触媒43の状態を示すフラグXCCLeanRの値は、上述したイニシャルルーチンにおいて「1」に設定されるようになっている。更に、右バンク用上流側触媒43の状態を示すフラグXCCLeanRの値は、後述するように、右バンク用下流側空燃比センサ67Rの出力値Voxs(R)に基づいて触媒43の状態が酸素不足状態(リッチ状態)であると判定されたときに「0」に設定され、右バンク用下流側空燃比センサ67Rの出力値Voxs(R)に基づいて触媒43の状態が酸素過剰状態(リーン状態)であると判定されたときに「1」に設定される。
【0127】
いま、右バンク用上流側触媒43の状態を示すフラグXCCLeanRの値が「1」であると仮定する。この場合、CPUはステップ820にて「Yes」と判定してステップ825に進み、変化速度ΔVoxsRが正であるか否かを判定する。即ち、CPUは、出力値Voxs(R)が増大しているか否かを判定する。このとき、変化速度ΔVoxsRが正でなければ、CPUはステップ825にて「No」と判定し、ステップ855に直接進む。
【0128】
これに対し、変化速度ΔVoxsRが正であると、CPUはステップ825にて「Yes」と判定してステップ830に進み、変化速度ΔVoxsRの大きさ|ΔVoxsR|が右バンク用リッチ判定値dRichRthよりも大きいか否かを判定する。このとき、大きさ|ΔVoxsR|が右バンク用リッチ判定値dRichRth以下であると、CPUはステップ830にて「No」と判定し、ステップ855に直接進む。なお、右バンク用リッチ判定値dRichRthの値は、後述する図10のルーチンにより変更される。
【0129】
CPUがステップ830の処理を実行する時点において、変化速度ΔVoxsRの大きさ|ΔVoxsR|が右バンク用リッチ判定値dRichRthよりも大きいと、CPUはそのステップ830にて「Yes」と判定してステップ835に進み、右バンク用上流側触媒43の状態を示すフラグXCCLeanRの値を「0」に設定する。即ち、出力値Voxs(R)が増大していて且つその変化速度ΔVoxsRの大きさ|ΔVoxsR|が右バンク用リッチ判定値dRichRthよりも大きい場合、CPUは「右バンク用上流側触媒43の状態は酸素不足状態である。」と判定し、右バンク用上流側触媒43の状態を示すフラグXCCLeanRの値を「0」に設定する。
【0130】
この状態(即ち、右バンク用上流側触媒43の状態を示すフラグXCCLeanRの値が「0」に設定された状態)において、CPUが所定時間ts後にステップ800から処理を再び開始すると、CPUはステップ810及びステップ815を経由してステップ820に進み、そのステップ820にて「No」と判定してステップ840に進む。
【0131】
CPUは、ステップ840にて変化速度ΔVoxsRが負であるか否かを判定する。即ち、CPUは、出力値Voxs(R)が減少しているか否かを判定する。このとき、変化速度ΔVoxsRが負でなければ、CPUはステップ840にて「No」と判定し、ステップ855に直接進む。
【0132】
これに対し、変化速度ΔVoxsRが負であると、CPUはステップ840にて「Yes」と判定してステップ845に進み、変化速度ΔVoxsRの大きさ|ΔVoxsR|が右バンク用リーン判定値dLeanRthよりも大きいか否かを判定する。このとき、大きさ|ΔVoxsR|が右バンク用リーン判定値dLeanRth以下であると、CPUはステップ845にて「No」と判定し、ステップ855に直接進む。なお、右バンク用リーン判定値dLeanRthの値は、後述する図10のルーチンにより変更される。
【0133】
これに対し、変化速度ΔVoxsRの大きさ|ΔVoxsR|が右バンク用リーン判定値dLeanRthよりも大きいと、CPUはステップ845にて「Yes」と判定してステップ850に進み、右バンク用上流側触媒43の状態を示すフラグXCCLeanRの値を「1」に設定する。即ち、出力値Voxs(R)が減少していて且つその変化速度ΔVoxsRの大きさ|ΔVoxsR|が右バンク用リーン判定値dLeanRthよりも大きい場合、CPUは「右バンク用上流側触媒43の状態が酸素過剰状態である。」と判定し、右バンク用上流側触媒43の状態を示すフラグXCCLeanRを「1」に設定する。
【0134】
なお、CPUは、右バンク用上流側触媒43の状態を示すフラグXCCLeanRの値が「1」である場合、出力値Voxs(R)がリッチ判定閾値VRichthよりも大きくなったとき、右バンク用上流側触媒43の状態を示すフラグXCCLeanRの値を「0」に設定してもよい。同様に、右バンク用上流側触媒43の状態を示すフラグXCCLeanRの値が「0」である場合、出力値Voxs(R)がリーン判定閾値VLeanthよりも小さくなったとき、右バンク用上流側触媒43の状態を示すフラグXCCLeanRの値を「1」に設定してもよい。この場合、リッチ判定閾値VRichthは中央値Vmid以下の値であってもよい。リーン判定閾値VLeanthは中央値Vmid以上の値であってもよい。
【0135】
このように右バンク用上流側触媒43の状態を示すフラグXCCLeanRの値は、右バンク用下流側空燃比センサ67Rの出力値Voxs(R)に基づいて、「1」と「0」との何れかの値に交互に設定される。
【0136】
CPUは、図8のステップ855に進んだとき、「現時点の左バンク用下流側空燃比センサ67Lの出力値Voxs(L)」から「前回の左バンク用下流側空燃比センサ67Lの出力値VoxsLold」を減じることにより、所定時間ts(単位時間)あたりの出力値Voxs(L)の変化量ΔVoxsLを算出する。前回の出力値VoxsLoldは、次のステップ860にて更新される値であり、現時点から所定時間tsだけ前の時点の出力値Voxs(L)(本ルーチンが前回実行されたときの出力値Voxs(L))である。変化量ΔVoxsLは変化速度ΔVoxsL(第2下流側空燃比センサ出力相関値)とも称呼される。次に、CPUはステップ860に進み、現時点の出力値Voxs(L)を「前回の出力値VoxsLold」として記憶する。
【0137】
次に、CPUはステップ865に進み、左バンク用上流側触媒53の状態を示すフラグXCCLeanLの値が「1」であるか否かを判定する。左バンク用上流側触媒53の状態を示すフラグXCCLeanLの値は、上述したイニシャルルーチンにおいて「1」に設定されるようになっている。更に、左バンク用上流側触媒53の状態を示すフラグXCCLeanLの値は、後述するように、左バンク用下流側空燃比センサ67Lの出力値Voxs(L)に基づいて触媒53の状態が酸素不足状態(リッチ状態)であると判定されたときに「0」に設定され、左バンク用下流側空燃比センサ67Lの出力値Voxs(L)に基づいて触媒53の状態が酸素過剰状態(リーン状態)であると判定されたときに「1」に設定される。
【0138】
いま、左バンク用上流側触媒53の状態を示すフラグXCCLeanLの値が「1」であると仮定する。この場合、CPUはステップ865にて「Yes」と判定してステップ870に進み、変化速度ΔVoxsLが正であるか否かを判定する。即ち、CPUは、出力値Voxs(L)が増大しているか否かを判定する。このとき、変化速度ΔVoxsLが正でなければ、CPUはステップ870にて「No」と判定し、ステップ895に直接進んで本ルーチンを一旦終了する。
【0139】
これに対し、変化速度ΔVoxsLが正であると、CPUはステップ870にて「Yes」と判定してステップ875に進み、変化速度ΔVoxsLの大きさ|ΔVoxsL|が左バンク用リッチ判定値dRichLthよりも大きいか否かを判定する。このとき、大きさ|ΔVoxsL|が左バンク用リッチ判定値dRichLth以下であると、CPUはステップ875にて「No」と判定し、ステップ895に直接進んで本ルーチンを一旦終了する。なお、左バンク用リッチ判定値dRichLthの値は、後述する図10のルーチンにより変更される。
【0140】
CPUがステップ875の処理を実行する時点において、変化速度ΔVoxsLの大きさ|ΔVoxsL|が左バンク用リッチ判定値dRichLthよりも大きいと、CPUはそのステップ875にて「Yes」と判定してステップ880に進み、左バンク用上流側触媒53の状態を示すフラグXCCLeanLの値を「0」に設定する。即ち、出力値Voxs(L)が増大していて且つその変化速度ΔVoxsLの大きさ|ΔVoxsL|が左バンク用リッチ判定値dRichLthよりも大きい場合、CPUは「左バンク用上流側触媒53の状態は酸素不足状態である。」と判定し、左バンク用上流側触媒53の状態を示すフラグXCCLeanLの値を「0」に設定する。
【0141】
この状態(即ち、左バンク用上流側触媒53の状態を示すフラグXCCLeanLの値が「0」に設定された状態)において、CPUが所定時間ts後にステップ865に進むと、CPUは、そのステップ865にて「No」と判定してステップ885に進む。
【0142】
CPUは、ステップ885にて変化速度ΔVoxsLが負であるか否かを判定する。即ち、CPUは、出力値Voxs(L)が減少しているか否かを判定する。このとき、変化速度ΔVoxsLが負でなければ、CPUはステップ885にて「No」と判定し、ステップ895に直接進んで本ルーチンを一旦終了する。
【0143】
これに対し、変化速度ΔVoxsLが負であると、CPUはステップ885にて「Yes」と判定してステップ890に進み、変化速度ΔVoxsLの大きさ|ΔVoxsL|が左バンク用リーン判定値dLeanLthよりも大きいか否かを判定する。このとき、大きさ|ΔVoxsL|が左バンク用リーン判定値dLeanLth以下であると、CPUはステップ890にて「No」と判定し、ステップ895に直接進んで本ルーチンを一旦終了する。なお、左バンク用リーン判定値dLeanLthの値は、後述する図10のルーチンにより変更される。
【0144】
これに対し、変化速度ΔVoxsLの大きさ|ΔVoxsL|が左バンク用リーン判定値dLeanLthよりも大きいと、CPUはステップ890にて「Yes」と判定してステップ892に進み、左バンク用上流側触媒53の状態を示すフラグXCCLeanLの値を「1」に設定する。即ち、出力値Voxs(L)が減少していて且つその変化速度ΔVoxsLの大きさ|ΔVoxsL|が左バンク用リーン判定値dLeanLthよりも大きい場合、CPUは「左バンク用上流側触媒53の状態が酸素過剰状態である。」と判定し、左バンク用上流側触媒53の状態を示すフラグXCCLeanLを「1」に設定する。
【0145】
なお、CPUは、左バンク用上流側触媒53の状態を示すフラグXCCLeanLの値が「1」である場合、出力値Voxs(L)がリッチ判定閾値VRichthよりも大きくなったとき、左バンク用上流側触媒53の状態を示すフラグXCCLeanLの値を「0」に設定してもよい。同様に、左バンク用上流側触媒53の状態を示すフラグXCCLeanLの値が「0」である場合、出力値Voxs(L)がリーン判定閾値VLeanthよりも小さくなったとき、左バンク用上流側触媒53の状態を示すフラグXCCLeanLの値を「1」に設定してもよい。
【0146】
このように左バンク用上流側触媒53の状態を示すフラグXCCLeanLの値は、左バンク用下流側空燃比センサ67Lの出力値Voxs(L)に基づいて、「1」と「0」との何れかの値に交互に設定される。
【0147】
<非許容振動発生判定>
CPUは図9にフローチャートにより示した「非許容振動発生判定ルーチン」を所定時間tsの経過毎に繰り返し実行している。従って、所定のタイミングになると、CPUはステップ900から処理を開始してステップ910に進み、逆相制御実行フラグXgyakusoの値が「0」か否かを判定する。このとき、逆相制御実行フラグXgyakusoの値が「1」であると、CPUはステップ910にて「No」と判定し、ステップ995に直接進んで本ルーチンを一旦終了する。
【0148】
これに対し、逆相制御実行フラグXgyakusoの値が「0」であると、CPUはステップ910にて「Yes」と判定してステップ920に進み、逆相制御移行要求フラグXshiftの値が「0」であるか否かを判定する。この逆相制御移行要求フラグXshiftの値は上述したイニシャルルーチンにおいて「0」に設定されるようになっている。更に、逆相制御移行要求フラグXshiftの値は後述するルーチンにより、逆相制御への移行制御を実行する必要が生じた場合(非許容振動発生が発生していると判定された場合)に「1」に設定される。このとき、逆相制御移行要求フラグXshiftの値が「1」であると、CPUはステップ920にて「No」と判定し、ステップ995に直接進んで本ルーチンを一旦終了する。
【0149】
これに対し、逆相制御移行要求フラグXshiftの値が「0」であると、CPUはステップ920にて「Yes」と判定してステップ930に進み、「右バンク用上流側触媒43の状態を示すフラグXCCLeanRが「1」から「0」へと変化した最新のタイミング(第1タイミング)」と「左バンク用上流側触媒53の状態を示すフラグXCCLeanLの値が「1」から「0」へと変化した最新のタイミング(第2タイミング)」との時間差が極めて小さい所定値である閾値時間(例えば、実質的に「0」に近い値)Tth以内であるか否かを判定する。即ち、CPUは、第1タイミングと第2タイミングとが同期しているか否かを判定する。このとき、第1タイミングと第2タイミングとが同期していなければ、CPUはステップ930にて「No」と判定し、ステップ995に直接進んで本ルーチンを一旦終了する。
【0150】
これに対し、第1タイミングと第2タイミングとが同期していると、CPUはステップ930にて「Yes」と判定してステップ940に進み、「右バンク用上流側触媒43の状態を示すフラグXCCLeanRが「0」から「1」へと変化した最新のタイミング(第3タイミング)」と「左バンク用上流側触媒53の状態を示すフラグXCCLeanLの値が「0」から「1」へと変化した最新のタイミング(第4タイミング)」との時間差が極めて小さい所定値である閾値時間(例えば、実質的に「0」に近い値)Tth以内であるか否かを判定する。即ち、CPUは、第3タイミングと第4タイミングとが同期しているか否かを判定する。このとき、第3タイミングと第4タイミングとが同期していなければ、CPUはステップ940にて「No」と判定し、ステップ995に直接進んで本ルーチンを一旦終了する。
【0151】
これに対し、第3タイミングと第4タイミングとが同期していると、CPUはステップ940にて「Yes」と判定してステップ950に進み、触媒状態の切替わり周期相関時間(目標空燃比周期相関時間)を取得する。より具体的に述べると、CPUは、「右バンク用上流側触媒43の状態を示すフラグXCCLeanRが「1」から「0」へと変化した最新のタイミング(第1タイミング)」から「フラグXCCLeanRが「0」から「1」へと変化した最新のタイミング(第3タイミング)」までの時間を触媒状態の切替わり周期相関時間Tとして取得する。
【0152】
なお、CPUは、第3タイミングから第1タイミングまでの時間、前回の第1タイミングから今回の第1タイミングまでの時間、前回の第3タイミングから今回の第3タイミングまでの時間、第2タイミングから第4タイミングまでの時間、第4タイミングから第2タイミングまでの時間、前回の第2タイミングから今回の第2タイミングまでの時間、及び、前回の第4タイミングから今回の第4タイミングまでの時間、を触媒状態の切替わり周期相関時間Tとして取得してもよい。
【0153】
次いで、CPUはステップ960に進み、空燃比差ΔAFに基づいてトルク段差ΔTqを取得する。空燃比差ΔAFは、目標リーン空燃比afLeanと目標リッチ空燃比afRichとの差の大きさである。トルク段差ΔTqは、ある気筒に供給される混合気の空燃比が目標リッチ空燃比afRichに一致している場合にその気筒における燃焼により発生する機関10の発生トルクから、ある気筒に供給される混合気の空燃比が目標リーン空燃比afLeanに一致している場合にその気筒における燃焼により発生する機関10の発生トルクを、減じた値である(図1の(A)を参照。)。トルク段差ΔTqは、図9のブロックB1内に示したように、空燃比差ΔAFが大きいほど大きい値となるように求められる。なお、本実施形態において、目標リーン空燃比afLeanは一定値でり、且つ、目標リッチ空燃比afRichは一定値である。従って、空燃比差ΔAFは一定値であるので、ステップ960は省略され得る。即ち、CPUは、ステップ960にて、予めROMに記憶しているトルク段差ΔTqを読み込んでもよい。
【0154】
次に、CPUはステップ970に進み、ステップ950にて取得された周期相関時間Tと、ステップ960にて取得されたトルク段差ΔTqと、に基いて、現時点において許容し難い振動(非許容振動)が発生しているか否かを判定する。より具体的に述べると、CPUは、図9のブロックB2内に示したマップを記憶している。このマップは、周期相関時間Tとトルク段差ΔTqとの組み合わせにより表される領域を、非許容振動発生領域と非許容振動非発生領域とに区分している。CPUは、このマップにステップ950にて取得された周期相関時間Tと、ステップ960にて取得されたトルク段差ΔTqと、を適用することにより、現時点の周期相関時間T及びトルク段差ΔTqが非許容振動発生領域内にあるか否かを判定することにより、非許容振動が発生しているか否かを判定する。このマップによれば、周期相関時間Tが大きくなるほど、より小さいトルク段差ΔTqにて非許容振動が発生すると判定される。なお、本例において、空燃比差ΔAFは一定値であるから、ステップ970は、周期相関時間Tが許容閾値時間以上であるか否かを判定するステップに置換され得る。
【0155】
そして、CPUはステップ970にて非許容振動が発生していると判定した場合、ステップ980に進んで逆相制御移行要求フラグXshiftの値を「1」に設定し、その後、ステップ995に進んで本ルーチンを一旦終了する。これに対し、CPUはステップ970にて非許容振動が発生していないと判定した場合、ステップ990に進んで逆相制御移行要求フラグXshiftの値を「0」に設定し、その後、ステップ995に進んで本ルーチンを一旦終了する。
【0156】
このように、CPUは、右バンク用上流側触媒43の状態を示すフラグXCCLeanRの値の変化と、左バンク用上流側触媒53の状態を示すフラグXCCLeanLの値の変化と、が偶発的且つ実質的に同期している場合であり、且つ、非許容振動が発生していると判定した場合、逆相制御移行要求フラグXshiftの値を「1」に設定する。なお、フラグXCCLeanRの値の位相と、フラグXCCLeanLの値の位相と、は特別の処理を行わない場合であっても、時間の経過に応じて次第に異なる位相に変化する(同期状態が次第に崩れる)。
【0157】
<閾値設定>
CPUは図10にフローチャートにより示した「閾値設定ルーチン」を所定時間tsの経過毎に繰り返し実行している。従って、所定のタイミングになると、CPUはステップ1000から処理を開始してステップ1010に進み、逆相制御実行フラグXgyakusoの値が「0」か否かを判定する。
【0158】
いま、逆相制御実行フラグXgyakusoの値が「0」であり、且つ、逆相制御移行要求フラグXshiftの値も「0」であると仮定する。この場合、CPUはステップ1010にて「Yes」と判定してステップ1020に進み、逆相制御移行要求フラグXshiftの値が「0」であるか否かを判定する。更に、この場合、CPUはステップ1020にて「Yes」と判定してステップ1030に進み、以下に述べるの処理を行い、その後、ステップ1095に進んで本ルーチンを一旦終了する。なお、CPUは、逆相制御実行フラグXgyakusoの値が「1」である場合にも、ステップ1010からステップ1030に直接進む。
【0159】
CPUは、右バンク用リッチ判定値dRichRthに基準右バンク用リッチ判定値dRichRth0を格納する。
CPUは、右バンク用リーン判定値dLeanRthに基準右バンク用リーン判定値dLeanRth0を格納する。
CPUは、左バンク用リッチ判定値dRichLthに基準左バンク用リッチ判定値dRichLth0を格納する。
CPUは、左バンク用リーン判定値dLeanLthに基準左バンク用リーン判定値dLeanLth0を格納する。
【0160】
この状態において、非許容振動が発生していると判定され、それにより、逆相制御移行要求フラグXshiftの値が「1」に設定されると、CPUはステップ1020に進んだとき、そのステップ1020にて「No」と判定してステップ1040に進み、右バンク用上流側触媒43の右バンク用上流側触媒43の最大酸素吸蔵量CmaxRが左バンク用上流側触媒53の最大酸素吸蔵量CmaxLよりも大きいか否かを判定する。
【0161】
なお、右バンク用上流側触媒43及び左バンク用上流側触媒53の各最大酸素吸蔵量は周知の手法により別途取得される。例えば、右バンク用上流側触媒43の最大酸素吸蔵量CmaxRは、右バンク用上流側触媒43の状態が酸素不足状態であると判定された時点において右バンク目標空燃比abyfrRを所定のリーン空燃比に設定し、その後に右バンク上流側空燃比abyfs(R)と理論空燃比stoichとの差に基いて酸素の過不足量ΔO2(ΔO2=k・mfr・(abyfs(R)−stoich))を所定時間の経過毎に求め(kは大気中の酸素の比率であり0.23、mfrはその所定時間に右バンク気筒に供給された燃料量)、その過不足量ΔO2を「右バンク用上流側触媒43の状態が酸素過剰状態であると判定される時点」まで積算することにより求められる。
【0162】
このとき、右バンク用上流側触媒43の最大酸素吸蔵量CmaxRが左バンク用上流側触媒53の最大酸素吸蔵量CmaxLよりも大きいと、CPUはステップ1040にて「Yes」と判定してステップ1050に進み、基準右バンク用リッチ判定値dRichRth0から正の所定値(微小な値)Aを減じた値を新たな右バンク用リッチ判定値dRichRthに設定する。更に、CPUは、ステップ1050にて、基準右バンク用リーン判定値dLeanRth0から正の所定値(微小な値)Bを減じた値を新たな右バンク用リーン判定値dLeanRthに設定する。この結果、図8の「ステップ830及びステップ845」での「Yes」との判定が、「右バンク用リーン判定値dLeanRthが基準右バンク用リーン判定値dLeanRth0に設定され、且つ、右バンク用リッチ判定値dRichRthが基準右バンク用リッチ判定値dRichRth0に設定されている場合」よりも早期に発生する。従って、右バンクに対する目標空燃比(右バンク目標空燃比abyfrR)の周期が短くなる。
【0163】
なお、CPUは、所定値A及び所定値Bと、右バンク用上流側触媒43の状態を示すフラグXCCLeanRの周期(従って、右バンク目標空燃比abyfrRの周期)と、の関係をROMに記憶していて、その関係に「前記同期時における触媒状態の切替わり周期相関時間T」を適用することにより、所定値A及び所定値Bを決定してもよい。更に、CPUは、右バンク用上流側触媒43の触媒状態の切替わり周期相関時間と、左バンク用上流側触媒53の触媒状態の切替わり周期相関時間と、が一致するように、それらの時間を計測し、計測された時間の差に基いて所定値A及び所定値Bを変更してもよい。
【0164】
これに対し、CPUがステップ1040の処理を実行する時点において、右バンク用上流側触媒43の最大酸素吸蔵量CmaxRが左バンク用上流側触媒53の最大酸素吸蔵量CmaxL以下であると、CPUはそのステップ1040にて「No」と判定してステップ1060に進み、基準左バンク用リッチ判定値dRichLth0から正の所定値(微小な値)Cを減じた値を新たな左バンク用リッチ判定値dRichLthに設定する。更に、CPUは、ステップ1060にて、基準左バンク用リーン判定値dLeanLth0から正の所定値(微小な値)Dを減じた値を新たな左バンク用リーン判定値dLeanLthに設定する。この結果、図9の「ステップ875及びステップ890」での「Yes」との判定が「左バンク用リッチ判定値dRichLthが基準左バンク用リッチ判定値dRichLth0に設定され、且つ、左バンク用リーン判定値dLeanLthが基準左バンク用リーン判定値dLeanLth0に設定されている場合」よりも早期に発生する。従って、左バンクに対する目標空燃比の周期が短くなる。
【0165】
なお、CPUは、所定値C及び所定値Dと、左バンク用上流側触媒53の状態を示すフラグXCCLeanLの周期(従って、左バンク目標空燃比abyfrLの周期)と、の関係をROMに記憶していて、その関係に「前記同期時における触媒状態の切替わり周期相関時間T」を適用することにより、所定値C及び所定値Dを決定してもよい。更に、CPUは、右バンク用上流側触媒43の触媒状態の切替わり周期相関時間と、左バンク用上流側触媒53の触媒状態の切替わり周期相関時間と、が一致するように、それらの時間を計測し、計測された時間の差に基いて所定値C及び所定値Dを変更してもよい。
【0166】
この状態が継続すると、最大酸素吸蔵量が大きい方の触媒である「非特定触媒」を排気通路に備えるバンク(非特定バンク、図5において左バンク)の目標空燃比の周期が次第に短くなる。よって、図5の(B)に示したように、左バンク触媒リーン状態表示フラグXLeanLの変化タイミングと同期する左バンク目標空燃比abyfrLの変化タイミングと、右バンク触媒リーン状態表示フラグXLeanRと同期する右バンク目標空燃比abyfrRの変化タイミングと、の同期が崩れ、やがて、図5の(C)に示したように、右バンク目標空燃比abyfrRと左バンク目標空燃比abyfrLとは互いに逆相にて変化するようになる。この時点(逆相成立時)は、次に述べる図11に示したルーチンにより検出される。
【0167】
<逆相制御への移行制御終了判定>
CPUは図11にフローチャートにより示した「逆相制御への移行制御終了判定ルーチン」を所定時間tsの経過毎に繰り返し実行している。従って、所定のタイミングになると、CPUはステップ1100から処理を開始してステップ1110に進み、逆相制御移行要求フラグXshiftの値が「1」であるか否かを判定する。
【0168】
このとき、逆相制御移行要求フラグXshiftの値が「0」であると、CPUはステップ1110にて「No」と判定し、ステップ1195に直接進んで本ルーチンを一旦終了する。
【0169】
これに対し、逆相制御移行要求フラグXshiftの値が「1」であると、CPUはステップ1110にて「Yes」と判定してステップ1120に進み、「右バンク用上流側触媒43の状態を示すフラグXCCLeanRが「1」から「0」へと変化した最新のタイミング(第1タイミング)」と「左バンク用上流側触媒53の状態を示すフラグXCCLeanLの値が「0」から「1」へと変化した最新のタイミング(第4タイミング)」との時間差が極めて小さい所定値である閾値時間(例えば、実質的に「0」に近い値)Tth以内であるか否かを判定する。即ち、CPUは、第1タイミングと第4タイミングとが同期しているか否かを判定する。
【0170】
このとき、第1タイミングと第4タイミングとが同期していると、CPUはステップ1120にて「Yes」と判定してステップ1130に進み、逆相制御移行要求フラグXshiftの値を「0」に設定する。次いで、CPUはステップ1140に進み、逆相制御実行フラグXgyakusoの値を「1」に設定する。その後、CPUは1195に進み本ルーチンを一旦終了する。この結果、逆相制御への移行制御が終了し、逆相制御が開始する。
【0171】
これに対し、第1タイミングと第4タイミングとが同期していなければ、CPUはステップ1120にて「No」と判定し、ステップ1150に進み、「右バンク用上流側触媒43の状態を示すフラグXCCLeanRが「0」から「1」へと変化した最新のタイミング(第3タイミング)」と「左バンク用上流側触媒53の状態を示すフラグXCCLeanLの値が「1」から「0」へと変化した最新のタイミング(第2タイミング)」との時間差が極めて小さい所定値である閾値時間(例えば、実質的に「0」に近い値)Tth以内であるか否かを判定する。即ち、CPUは、第2タイミングと第3タイミングとが同期しているか否かを判定する。このとき、第2タイミングと第3タイミングとが同期していなければ、CPUはステップ1150にて「No」と判定し、ステップ1195に直接進んで本ルーチンを一旦終了する。
【0172】
これに対し、第2タイミングと第3タイミングとが同期していると、CPUはステップ1150にて「Yes」と判定してステップ1130に進み、逆相制御移行要求フラグXshiftの値を「0」に設定する。次いで、CPUはステップ1140に進み、逆相制御実行フラグXgyakusoの値を「1」に設定する。その後、CPUは1195に進み本ルーチンを一旦終了する。この結果、逆相制御への移行制御が終了し、逆相制御が開始する。
【0173】
なお、CPUは、ステップ1120に記載した条件及びステップ1150に記載した条件の両者が共に成立したときにのみ、ステップ1130及びステップ1140に進んでも良い。
【0174】
以上、説明したように、第1制御装置は、複数の気筒を含む第1気筒群及び複数の気筒を含む第2気筒群を備える本体部20を有する内燃機関10に適用される。
【0175】
更に、第1制御装置は、
前記第1気筒群の前記複数の気筒から排出される排ガスを通過させる第1排気通路に配設された第1触媒(右バンク用上流側触媒43)と、
前記第1排気通路の前記第1触媒の下流に配設された第1下流側空燃比センサ(右バンク用下流側空燃比センサ67R)と、
前記第2気筒群の前記複数の気筒から排出される排ガスを通過させる第2排気通路に配設された第2触媒(左バンク用上流側触媒53)と、
前記第2排気通路の前記第2触媒の下流に配設された第2下流側空燃比センサ(左バンク用上流側空燃比センサ66L)と、
を備える。
【0176】
更に、第1制御装置は、
前記第1触媒及び前記第2触媒のうち最大酸素吸蔵量が小さい方の特定触媒の下流に配設されている「前記第1下流側空燃比センサ及び前記第2下流側空燃比センサのうちの何れか一方(選択下流側空燃比センサ)」の出力値に相関を有する値である選択下流側空燃比センサ出力相関値(出力値Voxs(R)の変化量ΔVoxsR、及び、出力値Voxs(L)の変化量ΔVoxsL、のうちの選択下流側空燃比センサに対応する方)と所定のリーン要求判定値(右バンク用リッチ判定値dRichRth及び左バンク用リッチ判定値dRichLthのうちの選択下流側空燃比センサに対応する方)との比較の結果に基づいて同特定触媒に対するリーン要求が発生したか否かを判定するとともに、前記選択下流側空燃比センサ出力相関値と所定のリッチ要求判定値(右バンク用リーン判定値dLeanRth及び左バンク用リーン判定値dLeanLthのうちの選択下流側空燃比センサに対応する方)との比較に基づいて前記特定触媒に対するリッチ要求が発生したか否かを判定し(図8を参照。)、
前記リーン要求が発生したと判定された時点から前記リッチ要求が発生したと判定される時点までのリーン要求発生期間において前記特定触媒に排ガスを排出する前記第1気筒群及び前記第2気筒群のうちの一方の前記複数の気筒のそれぞれに供給される混合気の空燃比を理論空燃比よりも大きい空燃比に制御するとともに前記第1気筒群及び前記第2気筒群のうちの他方の前記複数の気筒のそれぞれに供給される混合気の空燃比を理論空燃比よりも小さい空燃比に制御し(図6の「ステップ645、ステップ670、ステップ650、ステップ675、及び、ステップ655乃至ステップ665」、並びに、図7の「ステップ745、ステップ770、ステップ750、ステップ775、及び、ステップ755乃至ステップ765」を特に参照。)、
前記リッチ要求が発生したと判定された時点から前記リーン要求が発生したと判定される時点までのリッチ要求発生期間において前記特定触媒に排ガスが供給される前記第1気筒群及び前記第2気筒群のうちの一方の前記複数の気筒のそれぞれに供給される混合気の空燃比を理論空燃比よりも小さい空燃比に制御するとともに前記第1気筒群及び前記第2気筒群のうちの他方の前記複数の気筒のそれぞれに供給される混合気の空燃比を理論空燃比よりも大きい空燃比に制御する(図6の「ステップ645、ステップ670、ステップ650、ステップ675、及び、ステップ655乃至ステップ665」、並びに、図7の「ステップ745、ステップ770、ステップ750、ステップ775、及び、ステップ755乃至ステップ765」を特に参照。)、
空燃比制御手段、を備える。
【0177】
従って、最大酸素吸蔵量が小さい方の触媒(特定触媒)の下流側空燃比センサの出力値に基づいて、即ち、特定触媒の状態(特定触媒に対する空燃比要求)に応じて、特定触媒に排ガスを供給する気筒群に属する気筒に供給される混合気の空燃比が制御される。よって、前記特定触媒に排ガスを供給する気筒群から排出される排ガスは前記特定触媒により浄化され得る。
【0178】
加えて、最大酸素吸蔵量が大きい方の触媒(非特定触媒)に排ガスを供給する気筒群に属する気筒に供給される混合気の空燃比は、その切替周期が「最大酸素吸蔵量が小さい方の触媒である前記特定触媒」の状態(前記特定触媒に対する空燃比要求)の変化の周期と一致し、且つ、特定触媒に排ガスを供給する気筒群に属する気筒に供給される混合気の空燃比と逆位相となるように制御される。このため、非特定触媒の酸素吸蔵量は、「0」よりも大きく非特定触媒の最大酸素吸蔵量よりも小さい範囲内で変化する。その結果、前記非特定触媒に排ガスを供給する気筒群から排出される排ガスも前記非特定触媒により浄化され得る。更に、機関10の発生するトルクが短期間内において変動するようになるので、結果として、不快な振動が発生することを回避することができる。
【0179】
<第2実施形態>
次に、本発明の第2実施形態に係る内燃機関の制御装置(以下、「第2制御装置」とも称呼する。)について説明する。
【0180】
第2制御装置は、同期時に逆相制御移行制御を開始し、その後は、逆相制御へと移行することなく、逆相制御移行制御を継続する装置である。これによれば、不快な振動を短期間内に消滅させることができる。但し、第1制御装置と異なり、その後、再び右バンク目標空燃比abyfrRと左バンク目標空燃比abyfrLとが同期し、不快な振動が発生する場合が生じる。
【0181】
以上、説明したように、本発明に係る空燃比制御装置の各実施形態によれば、機関10及び機関10を搭載した車両に発生する不快な振動を、エミッションを悪化させることなく短期間内に消滅させることができる。なお、本発明は上記実施形態に限定されることはなく、本発明の範囲内において種々の変形例を採用することができる。
【0182】
また、第1制御装置及び第2制御装置の空燃比制御手段は、
前記第1下流側空燃比センサの出力値に相関を有する値である第1下流側空燃比センサ出力相関値と所定のリーン要求判定値との比較の結果に基づいて第1触媒に対するリーン要求が発生したか否かを判定するとともに、前記第1下流側空燃比センサ出力相関値と所定のリッチ要求判定値との比較に基づいて前記第1触媒に対するリッチ要求が発生したか否かを判定し、
前記第1触媒に対するリーン要求が発生したと判定された時点から前記第1触媒に対するリッチ要求が発生したと判定される時点までの第1触媒リーン要求発生期間において前記第1気筒群に属する複数の気筒のそれぞれに供給される混合気の空燃比を理論空燃比よりも大きい空燃比に制御し、前記第1触媒に対するリッチ要求が発生したと判定された時点から前記第1触媒に対するリーン要求が発生したと判定される時点までの第1触媒リッチ要求発生期間において前記第1気筒群に属する複数の気筒のそれぞれに供給される混合気の空燃比を理論空燃比よりも小さい空燃比に制御し、
前記第2下流側空燃比センサの出力値に相関を有する値である第2下流側空燃比センサ出力相関値と所定のリーン要求判定値との比較の結果に基づいて第2触媒に対するリーン要求が発生したか否かを判定するとともに、前記第2下流側空燃比センサ出力相関値と所定のリッチ要求判定値との比較に基づいて前記第2触媒に対するリッチ要求が発生したか否かを判定し、
前記第2触媒に対するリーン要求が発生したと判定された時点から前記第2触媒に対するリッチ要求が発生したと判定される時点までの第2触媒リーン要求発生期間において前記第2気筒群に属する複数の気筒のそれぞれに供給される混合気の空燃比を理論空燃比よりも大きい空燃比に制御し、前記第2触媒に対するリッチ要求が発生したと判定された時点から前記第2触媒に対するリーン要求が発生したと判定される時点までの第2触媒リッチ要求発生期間において前記第2気筒群に属する複数の気筒のそれぞれに供給される混合気の空燃比を理論空燃比よりも小さい空燃比に制御し、
前記第1触媒リッチ要求発生期間と前記第2触媒リッチ要求発生期間とが同期したことを条件として前記非許容振動が発生すると判定し、前記逆相制御への移行制御を開始するように構成されていると言うこともできる。
【0183】
この場合、前記移行制御は、最大酸素吸蔵量が大きい方の触媒に対して排ガスを供給している気筒群についての前記リッチ要求判定値及び前記リーン要求判定値を、前記移行制御開始前の前記リッチ要求判定値及び前記リーン要求判定値のそれぞれよりも小さい値に設定する制御であると言うこともできる。
【符号の説明】
【0184】
10…内燃機関、20…機関本体部、21…燃焼室(気筒)、30…吸気系統、33…燃料噴射弁、40…右バンク排気系統、43…右バンク用上流側触媒、50…左バンク排気系統、53…左バンク用上流側触媒、61…熱線式エアフローメータ、66L…左バンク用上流側空燃比センサ、66R…右バンク用上流側空燃比センサ、67L…左バンク用下流側空燃比センサ、67R…右バンク用下流側空燃比センサ、70…電気制御装置。
【特許請求の範囲】
【請求項1】
複数の気筒を含む第1気筒群及び複数の気筒を含む第2気筒群を備える本体部を有する内燃機関に適用され、
前記第1気筒群の前記複数の気筒から排出される排ガスを通過させる第1排気通路に配設された第1触媒と、
前記第1排気通路の前記第1触媒の下流に配設された第1下流側空燃比センサと、
前記第2気筒群の前記複数の気筒から排出される排ガスを通過させる第2排気通路に配設された第2触媒と、
前記第2排気通路の前記第2触媒の下流に配設された第2下流側空燃比センサと、
を備える内燃機関の空燃比制御装置であって、
前記第1触媒及び前記第2触媒のうち最大酸素吸蔵量が小さい方の特定触媒の下流に配設されている前記第1下流側空燃比センサ及び前記第2下流側空燃比センサのうちの何れか一方の出力値に相関を有する値である選択下流側空燃比センサ出力相関値と所定のリーン要求判定値との比較の結果に基づいて同特定触媒に対するリーン要求が発生したか否かを判定するとともに、前記選択下流側空燃比センサ出力相関値と所定のリッチ要求判定値との比較に基づいて前記特定触媒に対するリッチ要求が発生したか否かを判定し、
前記リーン要求が発生したと判定された時点から前記リッチ要求が発生したと判定される時点までのリーン要求発生期間において前記特定触媒に排ガスを排出する前記第1気筒群及び前記第2気筒群のうちの一方の前記複数の気筒のそれぞれに供給される混合気の空燃比を理論空燃比よりも大きい空燃比に制御するとともに前記第1気筒群及び前記第2気筒群のうちの他方の前記複数の気筒のそれぞれに供給される混合気の空燃比を理論空燃比よりも小さい空燃比に制御し、
前記リッチ要求が発生したと判定された時点から前記リーン要求が発生したと判定される時点までのリッチ要求発生期間において前記特定触媒に排ガスが供給される前記第1気筒群及び前記第2気筒群のうちの一方の前記複数の気筒のそれぞれに供給される混合気の空燃比を理論空燃比よりも小さい空燃比に制御するとともに前記第1気筒群及び前記第2気筒群のうちの他方の前記複数の気筒のそれぞれに供給される混合気の空燃比を理論空燃比よりも大きい空燃比に制御する、
逆相制御を実行する空燃比制御手段、を備える空燃比制御装置。
【請求項1】
複数の気筒を含む第1気筒群及び複数の気筒を含む第2気筒群を備える本体部を有する内燃機関に適用され、
前記第1気筒群の前記複数の気筒から排出される排ガスを通過させる第1排気通路に配設された第1触媒と、
前記第1排気通路の前記第1触媒の下流に配設された第1下流側空燃比センサと、
前記第2気筒群の前記複数の気筒から排出される排ガスを通過させる第2排気通路に配設された第2触媒と、
前記第2排気通路の前記第2触媒の下流に配設された第2下流側空燃比センサと、
を備える内燃機関の空燃比制御装置であって、
前記第1触媒及び前記第2触媒のうち最大酸素吸蔵量が小さい方の特定触媒の下流に配設されている前記第1下流側空燃比センサ及び前記第2下流側空燃比センサのうちの何れか一方の出力値に相関を有する値である選択下流側空燃比センサ出力相関値と所定のリーン要求判定値との比較の結果に基づいて同特定触媒に対するリーン要求が発生したか否かを判定するとともに、前記選択下流側空燃比センサ出力相関値と所定のリッチ要求判定値との比較に基づいて前記特定触媒に対するリッチ要求が発生したか否かを判定し、
前記リーン要求が発生したと判定された時点から前記リッチ要求が発生したと判定される時点までのリーン要求発生期間において前記特定触媒に排ガスを排出する前記第1気筒群及び前記第2気筒群のうちの一方の前記複数の気筒のそれぞれに供給される混合気の空燃比を理論空燃比よりも大きい空燃比に制御するとともに前記第1気筒群及び前記第2気筒群のうちの他方の前記複数の気筒のそれぞれに供給される混合気の空燃比を理論空燃比よりも小さい空燃比に制御し、
前記リッチ要求が発生したと判定された時点から前記リーン要求が発生したと判定される時点までのリッチ要求発生期間において前記特定触媒に排ガスが供給される前記第1気筒群及び前記第2気筒群のうちの一方の前記複数の気筒のそれぞれに供給される混合気の空燃比を理論空燃比よりも小さい空燃比に制御するとともに前記第1気筒群及び前記第2気筒群のうちの他方の前記複数の気筒のそれぞれに供給される混合気の空燃比を理論空燃比よりも大きい空燃比に制御する、
逆相制御を実行する空燃比制御手段、を備える空燃比制御装置。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【公開番号】特開2013−2408(P2013−2408A)
【公開日】平成25年1月7日(2013.1.7)
【国際特許分類】
【出願番号】特願2011−136078(P2011−136078)
【出願日】平成23年6月20日(2011.6.20)
【出願人】(000003207)トヨタ自動車株式会社 (59,920)
【Fターム(参考)】
【公開日】平成25年1月7日(2013.1.7)
【国際特許分類】
【出願日】平成23年6月20日(2011.6.20)
【出願人】(000003207)トヨタ自動車株式会社 (59,920)
【Fターム(参考)】
[ Back to top ]