JPWO2011001539A1 - 内燃機関の空燃比気筒間インバランス判定装置 - Google Patents

内燃機関の空燃比気筒間インバランス判定装置 Download PDF

Info

Publication number
JPWO2011001539A1
JPWO2011001539A1 JP2011520727A JP2011520727A JPWO2011001539A1 JP WO2011001539 A1 JPWO2011001539 A1 JP WO2011001539A1 JP 2011520727 A JP2011520727 A JP 2011520727A JP 2011520727 A JP2011520727 A JP 2011520727A JP WO2011001539 A1 JPWO2011001539 A1 JP WO2011001539A1
Authority
JP
Japan
Prior art keywords
fuel ratio
air
change rate
imbalance
cylinders
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2011520727A
Other languages
English (en)
Other versions
JP5115657B2 (ja
Inventor
裕 澤田
裕 澤田
中村 文彦
中村  文彦
寛史 宮本
寛史 宮本
靖志 岩▲崎▼
靖志 岩▲崎▼
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toyota Motor Corp
Original Assignee
Toyota Motor Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toyota Motor Corp filed Critical Toyota Motor Corp
Publication of JPWO2011001539A1 publication Critical patent/JPWO2011001539A1/ja
Application granted granted Critical
Publication of JP5115657B2 publication Critical patent/JP5115657B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F02COMBUSTION ENGINES; HOT-GAS OR COMBUSTION-PRODUCT ENGINE PLANTS
    • F02DCONTROLLING COMBUSTION ENGINES
    • F02D41/00Electrical control of supply of combustible mixture or its constituents
    • F02D41/008Controlling each cylinder individually
    • F02D41/0085Balancing of cylinder outputs, e.g. speed, torque or air-fuel ratio
    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F02COMBUSTION ENGINES; HOT-GAS OR COMBUSTION-PRODUCT ENGINE PLANTS
    • F02DCONTROLLING COMBUSTION ENGINES
    • F02D41/00Electrical control of supply of combustible mixture or its constituents
    • F02D41/02Circuit arrangements for generating control signals
    • F02D41/14Introducing closed-loop corrections
    • F02D41/1438Introducing closed-loop corrections using means for determining characteristics of the combustion gases; Sensors therefor
    • F02D41/1444Introducing closed-loop corrections using means for determining characteristics of the combustion gases; Sensors therefor characterised by the characteristics of the combustion gases
    • F02D41/1454Introducing closed-loop corrections using means for determining characteristics of the combustion gases; Sensors therefor characterised by the characteristics of the combustion gases the characteristics being an oxygen content or concentration or the air-fuel ratio
    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F02COMBUSTION ENGINES; HOT-GAS OR COMBUSTION-PRODUCT ENGINE PLANTS
    • F02DCONTROLLING COMBUSTION ENGINES
    • F02D2400/00Control systems adapted for specific engine types; Special features of engine control systems not otherwise provided for; Power supply, connectors or cabling for engine control systems
    • F02D2400/18Packaging of the electronic circuit in a casing

Landscapes

  • Engineering & Computer Science (AREA)
  • Chemical & Material Sciences (AREA)
  • Combustion & Propulsion (AREA)
  • Mechanical Engineering (AREA)
  • General Engineering & Computer Science (AREA)
  • Combined Controls Of Internal Combustion Engines (AREA)
  • Electrical Control Of Air Or Fuel Supplied To Internal-Combustion Engine (AREA)
  • Exhaust Silencers (AREA)

Abstract

本発明の空燃比気筒間インバランス判定装置は、保護カバー及びその保護カバー内部に収容された空燃比検出素子を含む空燃比センサと、インバランス判定手段と、を備える。インバランス判定手段は、一定のサンプリング時間tsが経過する毎に空燃比センサ出力Vabyfsに基づいて検出空燃比abyfsを取得し、新たに検出された今回の検出空燃比abyfsとサンプリング時間ts前に検出された前回の検出空燃比abyfsoldとの差(検出空燃比変化率ΔAF)及び検出空燃比変化率ΔAFの平均値等を空燃比変化率指示量として取得する。そして、インバランス判定手段は、空燃比変化率指示量の大きさがインバランス判定用閾値よりも大きいとき、空燃比気筒間インバランス状態が発生したと判定する。

Description

本発明は、多気筒内燃機関に適用され、各気筒に供給される混合気の空燃比(気筒別空燃比)の間に不均衡が生じているか否か(空燃比気筒間インバランス状態が発生しているか否か)を判定(監視・検出)することができる「内燃機関の空燃比気筒間インバランス判定装置」に関する。
従来から、内燃機関の排気通路に配設された三元触媒と、同排気通路であって同三元触媒の上流及び下流にそれぞれ配置された上流側空燃比センサ及び下流側空燃比センサと、を備えた空燃比制御装置が広く知られている。この空燃比制御装置は、機関に供給される混合気の空燃比(機関の空燃比)が理論空燃比と一致するように、上流側空燃比センサの出力と下流側空燃比センサの出力とに基いて空燃比フィードバック量を算出し、その空燃比フィードバック量により機関の空燃比をフィードバック制御するようになっている。更に、上流側空燃比センサの出力及び下流側空燃比センサの出力の何れか一方のみに基づいて空燃比フィードバック量を算出し、その空燃比フィードバック量により機関の空燃比をフィードバック制御する空燃比制御装置も提案されている。このような空燃比制御装置において使用される空燃比フィードバック量は、全気筒に対して共通する制御量である。
ところで、一般に、電子燃料噴射式内燃機関は、各気筒又は各気筒に連通した吸気ポートに少なくとも一つの燃料噴射弁を備えている。従って、ある特定の気筒の燃料噴射弁の特性が「指示された燃料噴射量よりも過大な量の燃料を噴射する特性」となると、その特定の気筒に供給される混合気の空燃比(その特定気筒の空燃比)のみが大きくリッチ側に変化する。即ち、気筒間における空燃比の不均一性(空燃比気筒間ばらつき、空燃比の気筒間インバランス)が大きくなる。換言すると、気筒別空燃比の間に不均衡が生じる。
この場合、機関全体に供給される混合気の空燃比の平均は、理論空燃比よりもリッチ側の空燃比となる。従って、全気筒に対して共通する空燃比フィードバック量により、上記特定の気筒の空燃比は理論空燃比に近づけられるようにリーン側へと変更され、同時に、他の気筒の空燃比は理論空燃比から遠ざけられるようにリーン側へと変更させられる。この結果、機関に供給される混合気の全体の空燃比の平均は略理論空燃比に一致させられる。
しかしながら、上記特定の気筒の空燃比は依然として理論空燃比よりもリッチ側の空燃比となり、残りの気筒の空燃比は理論空燃比よりもリーン側の空燃比となるから、各気筒における混合気の燃焼状態は完全燃焼とは相違した燃焼状態となる。この結果、各気筒から排出されるエミッションの量(未燃物の量及び窒素酸化物の量)が増大する。このため、機関に供給される混合気の空燃比の平均が理論空燃比であったとしても、増大したエミッションを三元触媒が浄化しきれず、結果として、エミッションが悪化する虞がある。従って、気筒間における空燃比の不均一性が過大になっていること(空燃比気筒間インバランス状態が発生していること)を検出し、何らかの対策を講じさせるようにすることはエミッションを悪化させないために重要である。なお、空燃比気筒間インバランスは、特定の気筒の燃料噴射弁の特性が「指示された燃料噴射量よりも過小な量の燃料を噴射する特性」となった場合、或いは、EGRガス及び蒸発燃料ガスの各気筒への分配が不均一になった場合等の種々の要因により発生する。
このような空燃比気筒間インバランス状態が発生したか否かを判定する従来の装置の一つは、複数の気筒からの排ガスが集合する排気集合部に配設された空燃比センサ(上記上流側空燃比センサ)の出力(出力信号)の軌跡長を取得し、その軌跡長と「機関回転速度及び吸入空気量に応じて変化する参照値」とを比較し、その比較結果に基づいて空燃比気筒間インバランス状態が発生したか否かを判定するようになっている(例えば、米国特許第7,152,594号を参照。)。なお、空燃比気筒間インバランス状態が発生したか否かの判定は、本明細書において、単に「空燃比気筒間インバランス判定、又は、インバランス判定」とも称呼される。
空燃比気筒間インバランス状態が発生している場合、気筒別空燃比が理論空燃比から偏移していない気筒からの排ガスが空燃比センサに到達したときと、気筒別空燃比が理論空燃比に対してリッチ側又はリーン側に偏移している気筒からの排ガスが空燃比センサに到達したときと、において、空燃比センサの出力は大きく相違する。従って、空燃比センサの出力の軌跡長は、空燃比気筒間インバランス状態が発生したときに増大する。しかしながら、空燃比センサには、何れかの気筒からの排ガスが「多気筒内燃機関における混合気の燃焼間隔と同じ間隔」をもって到達する。従って、気筒別空燃比が気筒間において完全に一致していていて空燃比センサに到達するガスの空燃比が常に均一である場合を除き、空燃比センサ出力の軌跡長は機関回転速度の影響を強く受ける。このため、上記従来の装置は、空燃比気筒間インバランス判定を必ずしも精度良く行うことができないか、或いは、機関回転速度毎に上記参照値を精度良く設定しなくてはならないので、その参照値を得るための開発工数が膨大となる。
従って、本発明の目的の一つは、機関回転速度毎に参照値を精度良く設定することなく、気筒間における空燃比の不均一性が過大になったか否か(空燃比気筒間インバランス状態が発生したか否か)を精度良く判定することができる「実用性の高い内燃機関の空燃比気筒間インバランス判定装置」を提供することにある。
(本発明による空燃比気筒間インバランス判定の原理)
本発明者は、「保護カバーを有する空燃比センサの出力により表される空燃比(即ち、検出空燃比)」の「単位時間当たりの変化量(即ち、検出空燃比の時間微分値であり、「検出空燃比変化率」とも称呼される。)」は、空燃比気筒間インバランス状態が発生しているか否かに応じて大きく相違するという知見を得た。更に、本発明者は、検出空燃比変化率は機関回転速度の影響を受け難いという知見を得た。従って、本発明者は、「検出空燃比変化率に応じて変化する空燃比変化率指示量(例えば、検出空燃比変化率の平均値及び検出空燃比変化率の最大値等)」に基づくことにより空燃比気筒間インバランス判定を精度良く行えるとの結論に到達した。以下、空燃比変化率指示量に基づくことにより、空燃比気筒間インバランス判定を精度良く行うことができる理由について説明する。
空燃比センサには、各気筒からの排ガスが点火順に到達する。空燃比気筒間インバランス状態が発生していない場合、各気筒から空燃比センサに到達する排ガスの空燃比は互いに略同一である。従って、空燃比気筒間インバランス状態が発生していない場合の空燃比センサ出力は、例えば、図1の(A)に示したように変化する。即ち、空燃比気筒間インバランス状態が発生していない場合、空燃比センサ出力の波形は略平坦である。
一方、「特定気筒(例えば、第1気筒)の空燃比のみが理論空燃比よりもリッチ側に偏移した空燃比気筒間インバランス状態(特定気筒リッチずれインバランス状態)」が発生している場合、その特定気筒の排ガスの空燃比と、その特定気筒以外の気筒(残りの気筒)の排ガスの空燃比と、は大きく相違する。従って、リッチずれインバランス状態が発生している場合の空燃比センサ出力は、例えば図1の(B)に示したように、4気筒・4サイクル・エンジンの場合に720°クランク角(一つの空燃比センサに到達する排ガスを排出している総ての気筒において各一回の燃焼行程が終了するのに要するクランク角)毎に大きく変動する。なお、「一つの空燃比センサに到達する排ガスを排出している総ての気筒において各一回の燃焼行程が終了するのに要するクランク角が経過する期間」は、本明細書において「単位燃焼サイクル期間」とも称呼される。
より具体的に述べると、図1の(B)に示した例において、空燃比センサ出力は、第1気筒からの排ガスが空燃比センサの空燃比検出素子に到達したときに理論空燃比よりもリッチ側の値を示し、残りの気筒からの排ガスが空燃比検出素子に到達したときに理論空燃比又は理論空燃比よりも若干だけリーン側の値に収束するように連続的に変化する。残りの気筒からの排ガスが空燃比検出素子に到達したときに空燃比センサ出力が理論空燃比よりも若干だけリーン側の値に収束するのは、上述した空燃比フィードバック制御に依る。
他方、「特定気筒(例えば、第1気筒)の空燃比のみが理論空燃比よりもリーン側に偏移した空燃比気筒間インバランス状態(リーンずれインバランス状態)」が発生している場合においても、空燃比センサ出力は、例えば図1の(C)に示したように、720°クランク角毎に大きく変動する。
より具体的に述べると、図1の(C)に示した例において、空燃比センサ出力は、第1気筒からの排ガスが空燃比センサの空燃比検出素子に到達したときに理論空燃比よりもリーン側の値を示し、残りの気筒からの排ガスが空燃比検出素子に到達したときに理論空燃比又は理論空燃比よりも若干だけリッチ側の値に収束するように連続的に変化する。残りの気筒からの排ガスが空燃比検出素子に到達したときに空燃比センサ出力が理論空燃比よりも若干だけリッチ側の値に収束するのは、上述した空燃比フィードバック制御に依る。
図1から明らかなように、空燃比気筒間インバランス状態が発生した場合の空燃比センサ出力の時間微分値である「検出空燃比変化率」の大きさ(角度α2〜α5の各大きさ)は、空燃比気筒間インバランス状態が発生していない場合の検出空燃比変化率(角度α1の大きさ)に比べて顕著に大きくなる。従って、検出空燃比変化率に応じて変化する空燃比変化率指示量(例えば、後述するように、微小の所定時間毎に取得される検出空燃比変化率そのもの、ある期間において取得された複数の検出空燃比変化率の平均値、及び、ある期間において取得された複数の検出空燃比変化率のうちの最大値等)を空燃比センサ出力に基づいて取得し、例えば、その空燃比変化率指示量の大きさと所定のインバランス判定用閾値とを比較すること等により空燃比気筒間インバランス判定を実行することができる。
次に、この検出空燃比変化率が機関回転速度の影響を殆ど受けない点について説明する。
図2及び図3に示したように、空燃比センサ(55)は、一般に、空燃比検出素子(55a)と、その空燃比検出素子の保護カバー(55b、55c)と、を有している。保護カバー(55b、55c)は、空燃比検出素子(55a)を覆うように、空燃比検出素子(55a)をその内部に収容する。更に、保護カバー(55b、55c)は、排気通路を流れる排ガスEXを保護カバー(55b、55c)の内部に流入させて空燃比検出素子(55a)に到達させるための流入孔(55b1、55c1)と、保護カバーの内部に流入した排ガスを排気通路に流出させるための流出孔(55b2、55c2)と、を有する。
空燃比センサ(55)は、排気集合部又は排気集合部よりも下流の排気通路(且つ、上流側触媒の上流)に、保護カバー(55b、55c)が露呈するように配設される。従って、排気通路を流れる排ガスEXは、矢印Ar1に示したように外側の保護カバー(55b)の流入孔(55b1)を通って外側の保護カバー(55b)と内側の保護カバー(55c)との間に流入する。次いで、その排ガスは、矢印Ar2に示したように内側の保護カバー(55c)の流入孔(55c1)を通って内側の保護カバー(55c)の内部に流入し、空燃比検出素子55aに到達する。その後、その排ガスは、矢印Ar3に示したように内側の保護カバー(55c)の流出孔(55c2)及び外側の保護カバー(55b)の流出孔(55b2)を通って排気通路に流出する。即ち、外側の保護カバー(55b)の流入孔(55b1)に到達した排気通路内の排ガスEXは、外側の保護カバー(55b)の流出孔(55b2)近傍を流れる排気通路内の排ガスEXの流れにより、保護カバー(55b、55c)内へと吸い込まれる。
このため、保護カバー(55b、55c)内における排ガスの流速は、外側の保護カバー(55b)の流出孔(55b2)近傍を流れる排気通路内の排ガスEXの流速(従って、単位時間あたりの吸入空気量である吸入空気流量Ga)に応じて変化する。換言すると、「ある空燃比の排ガス(第1排ガス)が流入孔(55b1)に到達した時点」から「その第1排ガスが空燃比検出素子(55a)に到達する時点」までの時間は、吸入空気流量Gaに依存するが機関回転速度NEには依存しない。このことは、内側の保護カバーのみを有する空燃比センサにも成立する。
図4は、特定気筒リッチずれインバランス状態が発生した場合における排ガスの空燃比の時間的変化を模式的に示した図である。図4において、線L1は外側の保護カバー(55b)の流入孔(55b1)に到達した排ガスの空燃比を示す。線L2、線L3及び線L4は、空燃比検出素子(55a)に到達している排ガスの空燃比を示す。但し、線L2は吸入空気流量Gaが比較的大きい場合、線L3は吸入空気流量Gaが中程度の大きさの場合、線L4は吸入空気流量Gaが比較的小さい場合に対応している。
線L1に示したように、リッチずれを起こしている特定気筒の排ガスが時刻t1にて流入孔(55b1)に到達すると、そのガスは流入孔(55b1、55c1)を通過し、時刻t1よりも僅かに遅れた時点(時刻t2)にて空燃比検出素子55aに到達し始める。このとき、前述したように、保護カバー(55b、55c)の内部を流れる排ガスの流速は、排気通路を流れる排ガスの流速により決定される。
従って、空燃比検出素子に接触するガスの空燃比は、吸入空気流量Gaが大きい場合ほど時刻t1により近い時点から変化し始める。更に、空燃比検出素子に接触する排ガスの空燃比は、「空燃比検出素子に新たに到達した排ガス」と「空燃比検出素子の近傍に既に存在していた排ガス」とが混合された排ガスの空燃比となる。従って、空燃比検出素子に接触(到達)する排ガスの空燃比の変化率(空燃比の時間微分値である変化速度、即ち、図4における線L2〜L4の傾きの大きさ)は吸入空気流量Gaが大きいほど大きくなる。
その後、リッチずれを起こしていない気筒の排ガスが時刻t3にて流入孔(55b1)に到達すると、そのガスは時刻t3よりも僅かに遅れた時点(時刻t4近傍)にて空燃比検出素子55aに到達し始める。「このリッチずれを起こしていない気筒からの排ガス」の「保護カバー(55b、55c)内における流速」も、排気通路を流れる排ガスEXの流速(従って、吸入空気流量Ga)により決定される。従って、空燃比検出素子に接触(到達)する排ガスの空燃比は、吸入空気流量Gaが大きいほど迅速に増大する。
なお、線L3及び線L4により示したように、吸入空気流量Gaが相対的に小さい場合、空燃比検出素子に接触する排ガスの空燃比が「リッチずれを起こしている特定気筒の排ガスの空燃比Ari」に一致する時点よりも前の時点にて、「排気順がその特定気筒の次の気筒であって、リッチずれを起こしていない気筒」の排ガスが空燃比検出素子に到達する。従って、空燃比検出素子に接触する排ガスの空燃比は、特定気筒の排ガスの空燃比Ariに一致するまえにリーン側へと変化し始める。
一方、空燃比センサの出力(実際には空燃比検出素子の出力)は、空燃比検出素子に到達したガスの変化に僅かに遅れながら追従するように変化する。従って、図5に示したように、空燃比検出素子に到達している排ガスの空燃比が線L3に示したように変化すると、空燃比センサ出力は線S1に示したように変化する。
図6は、特定気筒リッチずれインバランス状態が発生した場合であって、吸入空気流量Gaは一定であり且つ機関回転速度NEが変化したときの空燃比センサ出力について説明するための図である。図6の(A)は、機関回転速度NEが所定値NE1であり吸入空気流量Gaが所定値Ga1である場合における、「外側の保護カバーの流入孔(55b1)に到達した排ガスの空燃比(線L1)」、「空燃比検出素子に到達しているガスの空燃比(線L3)」及び「空燃比センサ出力(線S1)」を示す。図6の(B)は、機関回転速度NEが所定値NE1の2倍(2・NE1)であり吸入空気流量Gaが所定値Ga1である場合における、「外側の保護カバーの流入孔(55b1)に到達した排ガスの空燃比(線L5)」、「空燃比検出素子に到達しているガスの空燃比(線L6)」及び「空燃比センサ出力(線S2)」を示す。
前述したように、保護カバー(55b、55c)内を流れる排ガスの流速は吸入空気流量Gaにより決定される。従って、機関回転速度NEが変化しても、吸入空気流量Gaが変化しなければ、検出空燃比変化率(傾き)は変化しない。更に、リッチずれを起こしている特定気筒の排ガスが流入孔(55b1)に到達した時点(時刻t1)から、そのガスが空燃比検出素子55aに到達し始める時点(時刻t2)、までの時間は機関回転速度NEが変化しても一定時間Tdである。加えて、リッチずれを起こしていない気筒の排ガスが流入孔(55b1)に到達した時点(時刻t3)から、そのガスが空燃比検出素子55aに到達し始める時点(時刻t4)、までの時間は、同様に一定時間Tdである。この結果、空燃比センサ出力は、図6の(A)及び(B)に示したように変化する。
図6の(A)及び(B)から理解されるように、空燃比センサ出力の変化幅(W)は、機関回転速度NEが大きくなるほど小さくなる。即ち、空燃比センサ出力の軌跡長は機関回転速度に応じて大きく変化する。従って、上述したように、空燃比センサ出力の軌跡長に基づいて空燃比気筒間インバランス判定を行う場合、軌跡長と比較する参照値を機関回転速度に応じて精度良く決定しなければならない。これに対し、検出空燃比変化率は機関回転速度NEの影響を殆ど受けないので、検出空燃比変化率に応じて変化する値(空燃比変化率指示量)も機関回転速度NEの影響を殆ど受けない。従って、空燃比変化率指示量を利用すれば、より精度の良い空燃比気筒間インバランス判定を実行することができる。
本発明による内燃機関の空燃比気筒間インバランス判定装置(以下、単に「本発明装置」とも称呼する。)は、上述した知見に基づいてなされた装置であり、複数の気筒を有する多気筒内燃機関に適用され、空燃比センサと、インバランス判定手段とを備える。
前記空燃比センサは、図2及び図3を参照しながら説明したように、
・前記機関の排気通路であって「前記複数の気筒のうちの少なくとも2以上の気筒」から排出された排ガスが集合する排気集合部、又は、内燃機関の排気通路であって前記排気集合部よりも下流側の部位、に配設され、
・空燃比検出素子と、保護カバーと、を含む。
前記空燃比検出素子は、「その空燃比検出素子に到達した(即ち、空燃比検出素子に接触している)排ガス」の空燃比に応じた出力を「空燃比センサ出力」として発生するようになっている。周知の限界電流型の広域空燃比センサにおいては、空燃比センサ出力は空燃比検出素子に到達したガスの空燃比が大きくなるほど大きくなる。
前記保護カバーは、前記空燃比検出素子を覆うように、前記空燃比検出素子をその内部に収容している。更に、前記保護カバーは、「前記排気通路を流れる排ガスを前記内部に流入させる流入孔」及び「前記内部に流入した排ガスを前記排気通路に流出させるための流出孔」を備える。即ち、保護カバーは、保護カバー内部における排ガスの流速を「保護カバー外部における排ガスの流速(従って、吸入空気流量Ga)のみに実質的に依存させるような構造を有する。保護カバーは、前述したような「外側及び内側の保護カバーからなる二重構造」でなくてもよく、一重構造及び三重構造等を有していてもよい。
前記インバランス判定手段は、
(1)空燃比変化率指示量を前記空燃比センサ出力に基づいて取得し、
(2)「前記少なくとも2以上の気筒のそれぞれに供給される混合気」の空燃比である「気筒別空燃比」の間に不均衡が生じている状態(即ち、空燃比気筒間インバランス状態)が発生しているか否かの判定(空燃比気筒間インバランス判定)を、前記取得された空燃比変化率指示量に基づいて実行する、
ようになっている。
前記「空燃比変化率指示量」は、「前記空燃比センサ出力により表される空燃比」の単位時間当たりの変化量である「検出空燃比変化率(前記空燃比センサ出力により表される空燃比の時間微分値相当の値)」に応じて変化する値である。後述するように、空燃比変化率指示量は、空燃比センサ出力そのものの変化率(時間微分値相当の値)、空燃比センサ出力を空燃比に変換した値の変化率、ある期間におけるそれらの平均値、及び、ある期間におけるそれらの最大値等、であり得る。空燃比変化率指示量は、一般には、検出空燃比変化率ΔAFの大きさが大きいほど大きくなる値であるように求められる。
「空燃比気筒間インバランス判定を空燃比変化率指示量に基づいて実行する」とは、後述するように、例えば、
・空燃比変化率指示量の大きさが「所定のインバランス判定用閾値」よりも大きいか否かを判定し、その判定結果をインバランス判定結果として採用すること、
・ある期間において複数個取得される空燃比変化率指示量のうち、その大きさが「所定の有効変化率閾値」よりも大きいデータの個数と、その大きさが「所定の有効変化率閾値」以下であるデータの個数と、を取得し、それらのデータ個数の比較結果をインバランス判定結果として採用すること、及び、
・空燃比変化率指示量の符合変化に基づいてリッチピーク(空燃比変化率指示量の極小値)及び/又はリーンピーク(空燃比変化率指示量の極大値)を検出し、連続する二つのリッチピーク間の時間が所定時間よりも長いか否か、又は、連続する二つのリーンピーク間の時間が所定時間よりも長いか否かに基づいて、空燃比気筒間インバランス判定を行うこと、
等を含む。
上述したように、検出空燃比変化率は機関回転速度の影響を殆ど受けないので、空燃比変化率指示量も機関回転速度の影響を殆ど受けない。従って、空燃比変化率指示量を用いることにより、精度の良い空燃比気筒間インバランス判定を実行することができる。更に、インバランス判定に用いる種々の閾値(例えば、インバランス判定用閾値)を機関回転速度NE毎に精度良く適合する必要性がないので、本発明装置は「より少ない開発工数」にて開発され得る。
前述したように、前記インバランス判定手段は、
前記取得された空燃比変化率指示量の大きさと所定のインバランス判定用閾値とを比較し、その比較の結果に基づいて前記空燃比気筒間インバランス状態が発生しているか否かを判定するように構成され得る。
より具体的には、前記インバランス判定手段は、
前記取得された空燃比変化率指示量の大きさが前記インバランス判定用閾値よりも大きいことを前記比較の結果が示した場合に前記空燃比気筒間インバランス状態が発生していると判定するように構成され得る。
更に、前記インバランス判定手段の一態様は、
一定のサンプリング期間が経過する毎に前記空燃比センサ出力を取得するとともに、前記サンプリング期間を挟んで連続して取得された二つの前記空燃比センサ出力のそれぞれにより表される空燃比の差(即ち、検出空燃比変化率)を、前記空燃比変化率指示量として取得するように構成され得る。
この態様によれば、煩雑なデータ処理を行うことなく、空燃比気筒間インバランス判定を実行することができる。
更に、前記インバランス判定手段の他の態様は、
一定のサンプリング期間が経過する毎に前記空燃比センサ出力を取得するとともに、前記サンプリング期間を挟んで連続して取得された二つの前記空燃比センサ出力のそれぞれにより表される空燃比の差を前記検出空燃比変化率として取得し、且つ、前記サンプリング期間よりも長いデータ取得期間において前記検出空燃比変化率を複数取得するとともに、「その取得された複数の検出空燃比変化率」の大きさの平均値を「前記空燃比変化率指示量」として取得する、ように構成され得る。
この態様によれば、所定のデータ取得期間における複数の検出空燃比変化率の大きさの平均値が空燃比変化率指示量として採用され、その空燃比変化率指示量がインバランス判定用閾値と比較される。従って、空燃比センサ出力にノイズが重畳していたとしても、空燃比変化率指示量はそのノイズの影響を受け難い。この結果、空燃比気筒間インバランス判定をより精度良く実行することができる。なお、前記所定のデータ取得期間において検出空燃比変化率が正の値のみであるようにデータ取得期間が定められている場合、「複数の検出空燃比変化率の大きさの平均値」とは「複数の検出空燃比変化率の平均値」を意味する。また、前記所定のデータ取得期間において検出空燃比変化率が負の値のみであるようにデータ取得期間が定められている場合、「複数の検出空燃比変化率の大きさの平均値」とは「複数の検出空燃比変化率の平均値の絶対値、又は、複数の検出空燃比変化率の絶対値の平均値」を意味する。
更に、前記インバランス判定手段の他の態様は、
一定のサンプリング期間が経過する毎に前記空燃比センサ出力を取得するとともに、前記サンプリング期間を挟んで連続して取得された二つの前記空燃比センサ出力のそれぞれにより表される空燃比の差を前記検出空燃比変化率として取得し、且つ、前記サンプリング期間よりも長いデータ取得期間において前記検出空燃比変化率を複数取得するとともに、「その取得された複数の検出空燃比変化率」のうちその大きさが最大である検出空燃比変化率を「前記空燃比変化率指示量」として取得する、ように構成され得る。
空燃比センサ出力にノイズが重畳していたとしても、空燃比気筒間インバランス状態が発生している場合に取得された複数の検出空燃比変化率(大きさ)のうちの最大値と、空燃比気筒間インバランス状態が発生していない場合に取得された複数の検出空燃比変化率(大きさ)のうちの最大値と、は大きく異なる。従って、上記態様によれば、より精度良く空燃比気筒間インバランス判定を実行することができる。
このような、複数の検出空燃比変化率の平均値、又は、複数の検出空燃比変化率の大きさのうちの最大値、を前記空燃比変化率指示量として採用する態様において、
前記データ取得期間は、「前記排気集合部に排ガスを排出する前記少なくとも2以上の気筒のうちの任意の一つの気筒が、吸気行程、圧縮行程、膨張行程及び排気行程からなる一つの燃焼サイクルを終了するのに要する期間」である「単位燃焼サイクル期間」の自然数倍の期間に定められていることが望ましい。
このように、複数の検出空燃比変化率の平均値又は最大値を取得する期間を「単位燃焼サイクル期間の自然数倍の期間」に設定すれば、空燃比気筒間インバランスが発生している場合の空燃比変化率指示量は、空燃比気筒間インバランスが発生していない場合の空燃比変化率指示量よりも確実に大きい値となる。従って、この態様は、より精度良く空燃比気筒間インバランス判定を実行することができる。
更に、複数の検出空燃比変化率の大きさのうちの最大値を前記空燃比変化率指示量として採用する態様において、前記データ取得期間は、「前記排気集合部に排ガスを排出する前記少なくとも2以上の気筒のうちの任意の一つの気筒が、吸気行程、圧縮行程、膨張行程及び排気行程からなる一つの燃焼サイクルを終了するのに要する期間」である「単位燃焼サイクル期間」の長さ以上の期間に定められていることが好適である。
「前記少なくとも二以上の気筒」のそれぞれからの排ガスは、単位燃焼サイクル期間が経過する時間内に空燃比検出素子に必ず接触することになる。従って、空燃比気筒間インバランスが発生しているときの検出空燃比変化率の大きさの最大値は、単位燃焼サイクル期間内に必ず発生する。従って、上記態様のようにデータ取得期間を設定すれば、空燃比気筒間インバランスが発生している場合の空燃比変化率指示量が、空燃比気筒間インバランスが発生していない場合の空燃比変化率指示量よりも確実に大きい値となる。その結果、精度良く空燃比気筒間インバランス判定を実行することができる。
更に、前記インバランス判定手段の他の態様は、
「前記排気集合部に排ガスを排出する前記少なくとも2以上の気筒のうちの任意の一つの気筒が、吸気行程、圧縮行程、膨張行程及び排気行程からなる一つの燃焼サイクルを終了するのに要する期間」である「単位燃焼サイクル期間」よりも短い「一定のサンプリング期間」が経過する毎に前記空燃比センサ出力を取得し、
前記サンプリング期間を挟んで連続して取得された二つの前記空燃比センサ出力のそれぞれにより表される空燃比の差を前記検出空燃比変化率として取得し、
前記単位燃焼サイクル期間において取得された複数の前記検出空燃比変化率の中からその大きさが最大である検出空燃比変化率を最大変化率として選択し、
複数の前記単位燃焼サイクル期間のそれぞれに対して選択された前記最大変化率の平均値を求め、
その平均値を前記空燃比変化率指示量として取得するように構成され得る。
上述したように、空燃比気筒間インバランスが発生しているときの検出空燃比変化率の大きさの最大値は、単位燃焼サイクル期間内に必ず発生する。従って、上記態様によれば、空燃比気筒間インバランスが発生している場合の最大変化率は、空燃比気筒間インバランスが発生していない場合の最大変化率よりも確実に大きい値となる。更に、上記態様によれば、複数の単位燃焼サイクル期間に対して取得(選択)された複数の最大変化率の平均値が空燃比変化率指示量として採用される。従って、空燃比気筒間インバランス状態が発生していない場合においてノイズ等に起因して突発的に検出空燃比変化率の大きさが大きくなったとしても、上記のように取得される空燃比変化率指示量はそれほど大きくならない。つまり、そのように取得される空燃比変化率指示量は、空燃比センサ出力に重畳するノイズの影響を受け難い。その結果、空燃比気筒間インバランス判定をより精度良く実行することができる。
本発明装置において、前記インバランス判定手段は、
「単位時間あたりに前記機関に吸入される空気の量」である「吸入空気流量」が「所定の第1閾値空気流量」よりも大きいとき「前記空燃比気筒間インバランス状態が発生しているか否かの判定」を実行し、前記吸入空気流量が前記第1閾値空気流量よりも小さいとき「前記空燃比気筒間インバランス状態が発生しているか否かの判定」を実行しないように構成されることが好適である。
図4及び図5を参照しながら行った説明からも理解できるように、空燃比気筒間インバランスが発生していたとしても、吸入空気流量が小さくなるほど検出空燃比変化率の大きさは小さくなる。従って、吸入空気流量が所定の第1閾値空気流量よりも小さいときに、検出空燃比変化率に応じて変化する空燃比変化率指示量に基づいて空燃比気筒間インバランス判定を実行することは、誤判定を招く虞がある。従って、上記態様のようにインバランス判定手段を構成すれば、空燃比気筒間インバランス判定をより精度良く実行することができる。
更に、空燃比変化率指示量の大きさと所定のインバランス判定用閾値とを比較することにより空燃比気筒間インバランス判定を行うインバランス判定手段は、
単位時間あたりに前記機関に吸入される空気の量である吸入空気流量が大きいほど前記インバランス判定用閾値を大きい値に変更するように構成されることが好適である。
図4及び図5を参照しながら行った説明からも理解できるように、空燃比気筒間インバランス状態が発生しているとき、吸入空気流量が大きくなるほど検出空燃比変化率(従って、空燃比変化率指示量)の大きさは大きくなる。従って、上記態様のように、吸入空気流量が大きいほどインバランス判定用閾値を大きい値に変更すれば、より精度良く空燃比気筒間インバランス判定を実行することができる。
更に、空燃比変化率指示量の大きさとインバランス判定用閾値との比較結果に基づいて前記空燃比気筒間インバランス状態が発生しているか否かを判定するインバランス判定手段は、
前記空燃比変化率指示量を、前記検出空燃比変化率が正である場合の増大変化率指示量と前記検出空燃比変化率が負である場合の減少変化率指示量とに区別して取得し、
前記増大変化率指示量の大きさが前記減少変化率指示量の大きさよりも大きい場合には前記増大変化率指示量の大きさと前記インバランス判定用閾値としての増大変化率閾値とを比較するとともに、前記増大変化率指示量の大きさが前記増大変化率閾値よりも大きいとき前記少なくとも2気筒のうちの一つの気筒の空燃比が理論空燃比よりもリーン側に偏移した空燃比気筒間インバランス状態が発生したと判定し、
前記減少変化率指示量の大きさが前記増大変化率指示量の大きさよりも大きい場合には前記減少変化率指示量の大きさと前記インバランス判定用閾値としての減少変化率閾値とを比較するとともに、前記減少変化率指示量の大きさが前記減少変化率閾値よりも大きいとき前記少なくとも2気筒のうちの一つの気筒の空燃比が理論空燃比よりもリッチ側に偏移した空燃比気筒間インバランス状態が発生したと判定する、
ように構成され得る。
実験によれば、図1の(B)に示したように、特定気筒リッチずれインバランス状態が生じると、減少変化率指示量の大きさ(傾きα2の大きさ)は、増大変化率指示量の大きさ(傾きα3の大きさ)よりも大きくなる。逆に、図1の(C)に示したように、特定気筒リーンずれインバランス状態が生じると、増大変化率指示量の大きさ(傾きα4の大きさ)は、減少変化率指示量の大きさ(傾きα5の大きさ)よりも大きくなる。従って、上記態様によれば、リッチずれ空燃比気筒間インバランス状態が発生したのか、リーンずれ空燃比気筒間インバランス状態が発生したのか、それらの双方の何れもが発生していないのか、を区別して判定することができる。
代替として、空燃比変化率指示量の大きさとインバランス判定用閾値との比較結果に基づいて前記空燃比気筒間インバランス状態が発生しているか否かを判定するインバランス判定手段は、
前記空燃比変化率指示量を、前記検出空燃比変化率が正である場合の増大変化率指示量と前記検出空燃比変化率が負である場合の減少変化率指示量とに区別して取得し、
前記増大変化率指示量の大きさと前記インバランス判定用閾値としての増大変化率閾値とを比較するとともに、前記減少変化率指示量の大きさと前記インバランス判定用閾値としての減少変化率閾値とを比較し、
前記増大変化率指示量の大きさが前記増大変化率閾値よりも大きく且つ前記減少変化率指示量の大きさが前記減少変化率閾値よりも大きい場合に前記空燃比気筒間インバランス状態が発生していると判定する、
ように構成され得る。
この態様によれば、増大変化率閾値と減少変化率閾値とを異なる値に設定することができるので、より一層精度良く空燃比気筒間インバランス判定を実行することができる。例えば、リッチずれ空燃比気筒間インバランス状態が発生したか否かをより精度良く検出したい場合には減少変化率閾値を増大変化率閾値よりも大きく設定すればよく、リーンずれ空燃比気筒間インバランス状態が発生したか否かをより精度良く検出したい場合には増大変化率閾値を減少変化率閾値よりも大きく設定すればよい。勿論、増大変化率閾値と減少変化率閾値とは同じ値に設定されてもよい。
更に、このインバランス判定手段は、
前記増大変化率指示量の大きさが前記増大変化率閾値よりも大きく且つ前記減少変化率指示量の大きさが前記減少変化率閾値の大きさよりも大きい場合(即ち、空燃比気筒間インバランス状態が発生していると判定される場合)、
前記増大変化率指示量の大きさが前記減少変化率指示量の大きさよりも大きいときには前記少なくとも2気筒のうちの一つの気筒の空燃比が理論空燃比よりもリーン側に偏移した空燃比気筒間インバランス状態が発生したと判定し、
前記減少変化率指示量の大きさが前記増大変化率指示量の大きさよりも大きいときには前記少なくとも2気筒のうちの一つの気筒の空燃比が理論空燃比よりもリッチ側に偏移した空燃比気筒間インバランス状態が発生したと判定する、
ように構成され得る。
この態様によっても、リッチずれ空燃比気筒間インバランス状態が発生したのか、リーンずれ空燃比気筒間インバランス状態が発生したのか、それらの双方の何れもが発生していないのか、を区別して判定することができる。
更に、減少変化率指示量及び増大変化率指示量を取得する前記インバランス判定手段は、
一定のサンプリング期間が経過する毎に前記空燃比センサ出力を取得するとともに、前記サンプリング期間を挟んで連続して取得された二つの前記空燃比センサ出力のそれぞれにより表される空燃比の差を前記検出空燃比変化率として取得し、且つ、前記サンプリング期間よりも長いデータ取得期間において取得された複数の前記検出空燃比変化率のうちの正の値を有する変化率の大きさの平均値を前記増大変化率指示量として取得するとともに、前記複数の前記検出空燃比変化率のうちの負の値を有する変化率の大きさの平均値を前記減少変化率指示量として取得するように構成され得る。
これによれば、空燃比センサ出力に重畳するノイズの空燃比変化率指示量(増大変化率指示量及び減少変化率指示量)への影響を低減することができるので、より精度のよい空燃比気筒間インバランス判定を実施することができる。
代替として、減少変化率指示量及び増大変化率指示量を取得する前記インバランス判定手段は、
一定のサンプリング期間が経過する毎に前記空燃比センサ出力を取得するとともに、前記サンプリング期間を挟んで連続して取得された二つの前記空燃比センサ出力のそれぞれにより表される空燃比の差を前記検出空燃比変化率として取得し、且つ、前記サンプリング期間よりも長いデータ取得期間において取得された複数の前記検出空燃比変化率のうちの正の値を有する変化率の中からその大きさが最大である検出空燃比変化率を前記増大変化率指示量として取得するとともに同複数の検出空燃比変化率のうちの負の値を有する変化率の中からその大きさが最大である検出空燃比変化率を前記減少変化率指示量として取得するように構成され得る。
これによれば、空燃比気筒間インバランスが発生しているときに取得される「増大変化率指示量及び減少変化率指示量」の大きさが、空燃比気筒間インバランスが発生していないときに取得される「増大変化率指示量及び減少変化率指示量」の大きさのそれぞれより大きくなるように、増大変化率指示量及び減少変化率指示量を取得できる可能性が高まる。従って、精度のよい空燃比気筒間インバランス判定を実施することができる。
これらの場合においても、
前記データ取得期間は、「前記排気集合部に排ガスを排出する前記少なくとも2以上の気筒のうちの任意の一つの気筒が、吸気行程、圧縮行程、膨張行程及び排気行程からなる一つの燃焼サイクルを終了するのに要する期間」である「単位燃焼サイクル期間」の自然数倍の期間、に定められていることが望ましい。
このように、「正の値を有する複数の検出空燃比変化率の平均値又は最大値を取得する期間」及び「負の値を有する複数の検出空燃比変化率の平均値又は最大値を取得する期間」を「単位燃焼サイクル期間の自然数倍の期間」に設定すれば、空燃比気筒間インバランスが発生している場合の空燃比変化率指示量(増大変化率指示量及び減少変化率指示量)は、空燃比気筒間インバランスが発生していない場合の空燃比変化率指示量よりも確実に大きい値となる。従って、この態様は、より精度良く空燃比気筒間インバランス判定を実行することができる。
更に、減少変化率指示量及び増大変化率指示量を取得する前記インバランス判定手段は、
前記単位燃焼サイクル期間において取得された複数の前記検出空燃比変化率のうちの正の値を有する変化率の中からその大きさが最大である検出空燃比変化率を増大変化率最大値として選択するとともに複数の前記単位燃焼サイクル期間に対して選択された(複数の)前記増大変化率最大値の平均値を求め、同平均値を前記増大変化率指示量として取得し、且つ、
前記単位燃焼サイクル期間において取得された複数の前記検出空燃比変化率のうちの負の値を有する変化率の中からその大きさが最大である検出空燃比変化率を減少変化率最大値として選択するとともに複数の前記単位燃焼サイクル期間に対して選択された(複数の)前記減少変化率最大値の平均値を求め、同平均値を前記減少変化率指示量として取得する、
ように構成され得る。
これによれば、複数の単位燃焼サイクル期間のそれぞれに対する増大変化率最大値の平均値が増大変化率指示量として取得され、且つ、複数の単位燃焼サイクル期間のそれぞれに対する減少変化率最大値の平均値が減少変化率指示量として取得される。従って、空燃比センサ出力に重畳するノイズの空燃比変化率指示量(増大変化率指示量及び減少変化率指示量)への影響を低減することができるので、より精度のよい空燃比気筒間インバランス判定を実施することができる。
代替として、空燃比変化率指示量の大きさとインバランス判定用閾値との比較結果に基づいて前記空燃比気筒間インバランス状態が発生しているか否かを判定するインバランス判定手段は、
前記空燃比変化率指示量として、前記検出空燃比変化率が正である場合の前記検出空燃比変化率の大きさに対応した値である増大変化率指示量を取得し、
前記インバランス判定用閾値として、前記検出空燃比変化率が負である場合の前記検出空燃比変化率の大きさに対応した値である減少変化率指示量を取得し、
前記増大変化率指示量と前記減少変化率指示量との差の絶対値が所定の閾値以上であるか否かを判定することにより、前記空燃比変化率指示量の大きさと前記インバランス判定用閾値との比較を行うように構成され得る。
前述したように、リッチずれインバランス状態が発生した場合、及び、リーンずれインバランス状態が発生した場合、の何れの場合であっても、上記のように取得される増大変化率指示量と減少変化率指示量との差の大きさ(即ち、空燃比変化率指示量の大きさとインバランス判定用閾値との差の大きさ)は、空燃比気筒間インバランス状態が発生していない場合よりも顕著に大きくなる。
一方、蒸発燃料ガスの燃焼室への導入、EGRガスの燃焼室への導入、及び、ブローバイガスの燃焼室への導入等に起因して空燃比センサ出力にノイズ(外乱)が重畳する場合がある。このような場合、そのノイズは検出空燃比変化率が正の場合と負の場合とで互いに均等に重畳する。従って、前記増大変化率指示量と前記減少変化率指示量との差の大きさ(差の絶対値)は、そのノイズの影響が排除された値になる。
従って、上記態様のように、検出空燃比変化率が正である場合の検出空燃比変化率の大きさに対応した値である増大変化率指示量を前記空燃比変化率指示量として取得し、前記検出空燃比変化率が負である場合の検出空燃比変化率の大きさに対応した値である減少変化率指示量を前記インバランス判定用閾値として取得し、それら差の大きさの評価(それらの比較結果)に基づいて空燃比気筒間インバランス判定を実行すれば、空燃比センサ出力に重畳するノイズが空燃比気筒間インバランス判定に及ぼす影響を小さくすることができる。
同様に、空燃比変化率指示量の大きさとインバランス判定用閾値との比較結果に基づいて前記空燃比気筒間インバランス状態が発生しているか否かを判定するインバランス判定手段は、
前記空燃比変化率指示量として、前記検出空燃比変化率が負である場合の前記検出空燃比変化率の大きさに対応した値である減少変化率指示量を取得し、
前記インバランス判定用閾値として、前記検出空燃比変化率が正である場合の前記検出空燃比変化率の大きさに対応した値である増大変化率指示量を取得し、
前記減少変化率指示量と前記増大変化率指示量との差の絶対値が所定の閾値以上であるか否かを判定することにより、前記空燃比変化率指示量の大きさと前記インバランス判定用閾値との比較を行うように構成され得る。
この態様によっても、前記増大変化率指示量と前記減少変化率指示量との差の大きさ(差の絶対値)に基づいて空燃比気筒間インバランス判定が実行される。従って、空燃比センサ出力に重畳するノイズが空燃比気筒間インバランス判定に及ぼす影響を小さくすることができる。
これらの態様(増大変化率指示量と減少変化率指示量との差の大きさに基づいて空燃比気筒間インバランス判定を実行する態様)において、
前記インバランス判定手段は、
前記減少変化率指示量が前記増大変化率指示量よりも大きいとき前記少なくとも2気筒のうちの一つの気筒の空燃比が理論空燃比よりもリッチ側に偏移した空燃比気筒間インバランス状態が発生したと判定し、
前記増大変化率指示量が前記減少変化率指示量よりも大きいとき前記少なくとも2気筒のうちの一つの気筒の空燃比が理論空燃比よりもリーン側に偏移した空燃比気筒間インバランス状態が発生したと判定する、
ように構成され得る。
前述したように、特定気筒リッチずれインバランス状態が生じた場合と、特定気筒リーンずれインバランス状態が生じた場合と、において、増大変化率指示量の大きさと減少変化率指示量の大きさとの大小関係が相違する。従って、上記態様によれば、リッチずれ空燃比気筒間インバランス状態が発生したのか、リーンずれ空燃比気筒間インバランス状態が発生したのか、を区別して判定することができる。
前記増大変化率指示量及び前記減少変化率指示量を取得するインバランス判定手段は、
一定のサンプリング期間が経過する毎に前記空燃比センサ出力を取得するとともに、前記サンプリング期間を挟んで連続して取得された二つの前記空燃比センサ出力のそれぞれにより表される空燃比の差を前記検出空燃比変化率として取得し、且つ、前記サンプリング期間よりも長いデータ取得期間において取得された複数の前記検出空燃比変化率のうちの正の値を有する検出空燃比変化率の大きさの平均値を前記増大変化率指示量として取得するとともに、前記複数の検出空燃比変化率のうちの負の値を有する検出空燃比変化率の大きさの平均値を前記減少変化率指示量として取得するように構成され得る。
代替として、前記増大変化率指示量及び前記減少変化率指示量を取得するインバランス判定手段は、
一定のサンプリング期間が経過する毎に前記空燃比センサ出力を取得するとともに、前記サンプリング期間を挟んで連続して取得された二つの前記空燃比センサ出力のそれぞれにより表される空燃比の差を前記検出空燃比変化率として取得し、単位燃焼サイクル期間において取得された複数の前記検出空燃比変化率のうちの正の値を有する変化率の中からその大きさが最大である検出空燃比変化率に応じた値(例えば、その検出空燃比変化率の大きさ及びその検出空燃比変化率の大きさの複数の単位燃焼サイクルにおける平均値等)を前記増大変化率指示量として取得するとともに、その複数の検出空燃比変化率のうちの負の値を有する変化率の中からその大きさが最大である検出空燃比変化率に応じた値(例えば、その検出空燃比変化率の大きさ及びその検出空燃比変化率の大きさの複数の単位燃焼サイクルにおける平均値等)を前記減少変化率指示量として取得するように構成され得る。
更に、空燃比変化率指示量の大きさとインバランス判定用閾値との比較結果に基づいて前記空燃比気筒間インバランス状態が発生しているか否かを判定するインバランス判定手段の他の態様は、
一定のサンプリング期間が経過する毎に前記空燃比センサ出力を取得するとともに、前記サンプリング期間を挟んで連続して取得された二つの前記空燃比センサ出力のそれぞれにより表される空燃比の差を前記検出空燃比変化率として取得し、且つ、
前記取得された検出空燃比変化率の大きさが所定の有効判定閾値以上であるときその検出空燃比変化率を前記空燃比変化率指示量を取得するためのデータとして使用し、前記取得された検出空燃比変化率の大きさが所定の有効判定閾値未満であるときその検出空燃比変化率を前記空燃比変化率指示量を取得するためのデータとして使用しないように構成され得る。
これによれば、有効判定閾値以上の大きさを有する検出空燃比変化率のみが前記空燃比変化率指示量を取得するためのデータとして使用される。換言すると、空燃比センサ出力に重畳するノイズのみに起因して(即ち、気筒別空燃比の相違に起因することなく)変動する検出空燃比変化率を、空燃比気筒間インバランス判定に用いる空燃比変化率指示量の算出用データから除外することができる。従って、気筒別空燃比の不均一性の程度に精度良く応じて変化する空燃比変化率指示量を取得することができる。その結果、特別なフィルタ処理を検出空燃比変化率に対して施すことなく、空燃比気筒間インバランス判定を精度良く行うことができる。
本判定装置のインバランス判定手段の他の態様は、
一定のサンプリング期間が経過する毎に前記空燃比センサ出力を取得するとともに、前記サンプリング期間を挟んで連続して取得された二つの前記空燃比センサ出力のそれぞれにより表される空燃比の差を前記検出空燃比変化率として取得し、且つ、前記サンプリング期間よりも長いデータ取得期間において取得された複数の前記検出空燃比変化率のうちその大きさが所定の有効判定閾値以上である検出空燃比変化率のデータの数を表す有効データ数を前記空燃比変化率指示量の一つとして取得するとともに、同データ取得期間において取得された複数の前記検出空燃比変化率のうちその大きさが同有効判定閾値未満である検出空燃比変化率のデータの数を表す無効データ数を前記空燃比変化率指示量の他の一つとして取得し、
前記有効データ数と前記無効データ数とに基づいて前記空燃比気筒間インバランス状態が発生しているか否かを判定するように構成され得る。
前述したように、空燃比気筒間インバランス状態が発生すると(即ち、気筒間における空燃比の不均一性が検出すべき程度以上に過大になると)、検出空燃比変化率の大きさが大きくなる。従って、空燃比気筒間インバランス状態が発生すると、前記有効データ数は相対的に増加し、前記無効データ数は相対的に減少する。従って、上記態様によれば、有効データ数と無効データ数とを比較する等の簡単な判定により、空燃比気筒間インバランス判定を行うことができる。
この場合、前記インバランス判定手段は、
前記有効データ数が、「前記有効データ数と前記無効データ数との和である全データ数」に基づいて変化するデータ数閾値よりも多いとき、前記空燃比気筒間インバランス状態が発生していると判定するように構成され得る。このデータ数閾値は、例えば、全データ数の所定割合に設定することができる。これにより、空燃比気筒間インバランス判定を簡易な構成によって行うことができる。
更に、空燃比変化率指示量の大きさとインバランス判定用閾値との比較結果に基づいて前記空燃比気筒間インバランス状態が発生しているか否かを判定するインバランス判定手段の他の態様は、
一定のサンプリング期間が経過する毎に前記空燃比センサ出力を取得するとともに、前記サンプリング期間を挟んで連続して取得された二つの前記空燃比センサ出力のそれぞれにより表される空燃比の差を前記検出空燃比変化率として取得し、且つ、
前記取得された検出空燃比変化率が正の値から負の値へと変化した時点をリーンピーク時点として検出し、且つ、その検出したリーンピーク時点の前又は後の所定時間内に取得された前記検出空燃比変化率を、前記空燃比変化率指示量を取得するためのデータとして使用しないように構成され得る。
同様に、空燃比変化率指示量の大きさとインバランス判定用閾値との比較結果に基づいて前記空燃比気筒間インバランス状態が発生しているか否かを判定するインバランス判定手段の他の態様は、
一定のサンプリング期間が経過する毎に前記空燃比センサ出力を取得するとともに、前記サンプリング期間を挟んで連続して取得された二つの前記空燃比センサ出力のそれぞれにより表される空燃比の差を前記検出空燃比変化率として取得し、且つ、
前記取得された検出空燃比変化率が負の値から正の値へと変化した時点をリッチピーク時点として検出し、且つ、その検出したリッチピーク時点の前又は後の所定時間内に取得された前記検出空燃比変化率を、前記空燃比変化率指示量を取得するためのデータとして使用しないように構成され得る。
後述する図32及び図33にも示したように、検出空燃比変化率が極大値となるリーンピーク時点の近傍の検出空燃比変化率の大きさ、及び、検出空燃比変化率が極小値となるリッチピーク時点の近傍の検出空燃比変化率の大きさは、検出空燃比変化率の大きさの平均値と比較して極めて小さくなるので、空燃比変化率指示量を得るためのデータとしては適切ではない。
そこで、上記二つの態様のように、リーンピーク時点の前又は後の所定時間内に取得された前記検出空燃比変化率、或いは、リッチピーク時点の前又は後の所定時間内に取得された前記検出空燃比変化率を、前記空燃比変化率指示量を取得するためのデータとして使用しないようにする。これにより、気筒別空燃比の不均一性の程度に精度良く表す空燃比変化率指示量を取得することができる。その結果、空燃比気筒間インバランス判定を精度良く行うことができる。
更に、空燃比変化率指示量の大きさとインバランス判定用閾値との比較結果に基づいて前記空燃比気筒間インバランス状態が発生しているか否かを判定するインバランス判定手段の他の態様は、
一定のサンプリング期間が経過する毎に前記空燃比センサ出力を取得するとともに、前記サンプリング期間を挟んで連続して取得された二つの前記空燃比センサ出力のそれぞれにより表される空燃比の差を前記検出空燃比変化率として取得し、且つ、
前記取得された検出空燃比変化率が正の値から負の値へと変化した時点をリーンピーク時点として検出するとともに、連続して検出される二つのリーンピーク時点間の時間であるリーンピーク・リーンピーク時間が閾値時間よりも短い場合、その二つのリーンピーク時点間において取得された前記検出空燃比変化率を空燃比変化率指示量のデータとして使用しないように構成され得る。
同様に、空燃比変化率指示量の大きさとインバランス判定用閾値との比較結果に基づいて前記空燃比気筒間インバランス状態が発生しているか否かを判定するインバランス判定手段の他の態様は、
前記取得された検出空燃比変化率が負の値から正の値へと変化した時点をリッチピーク時点として検出するとともに、連続して検出される二つのリッチピーク時点間の時間であるリッチピーク・リッチピーク時間が閾値時間よりも短い場合、その二つのリッチピーク時点間において取得された前記検出空燃比変化率を空燃比変化率指示量のデータとして使用しないように構成され得る。
後述する図35に示したように、空燃比気筒間インバランスが発生している場合、リーンピーク・リーンピーク時間TLLは閾値時間TLLthよりも長く、リッチピーク・リッチピーク時間TRRは閾値時間TRRthよりも長い。これに対し、図36に示したように、空燃比気筒間インバランスが全く発生していない場合、リーンピーク・リーンピーク時間TLLは閾値時間TLLthよりも短く、リッチピーク・リッチピーク時間TRRは閾値時間TRRthよりも短い。
そこで、上記上記二つの態様のように、リーンピーク・リーンピーク時間が閾値時間よりも短い場合、その二つのリーンピーク時点間において取得された前記検出空燃比変化率を空燃比変化率指示量のデータとして使用しないか、及び/又は、リッチピーク・リッチピーク時間が閾値時間よりも短い場合、その二つのリッチピーク時点間において取得された前記検出空燃比変化率を空燃比変化率指示量のデータとして使用しないように構成すれば、気筒別空燃比の不均一性の程度に精度良く表す空燃比変化率指示量を取得することができる。その結果、空燃比気筒間インバランス判定を精度良く行うことができる。
図1は、空燃比センサ出力に基づいて得られる検出空燃比の変化の様子を示した図である。
図2は、空燃比センサの部分概略斜視図(透視図)である。
図3は、空燃比センサの部分断面図である。
図4は、特定気筒リッチずれインバランス状態が発生した場合における排ガスの空燃比の時間的変化を模式的に示した図である。
図5は、特定気筒リッチずれインバランス状態が発生した場合における排ガスの空燃比の時間的変化と空燃比センサ出力とを模式的に示した図である。
図6は、検出空燃比変化率が機関回転速度の影響を受けないことを説明するための図であって、空燃比センサの外側の保護カバーの流入孔に到達した排ガスの空燃比、空燃比検出素子に到達しているガスの空燃比、及び、空燃比センサ出力、の変化の様子を示す。
図7は、第1実施形態に係る空燃比気筒間インバランス判定装置(第1判定装置)が適用される内燃機関の概略構成を示した図である。
図8は、図7に示した空燃比センサ(上流側空燃比センサ)が備える空燃比検出素子の断面図である。
図9は、排ガスの空燃比が理論空燃比よりもリーン側の空燃比である場合の空燃比センサの作動を説明するための図である。
図10は、排ガスの空燃比と空燃比センサの限界電流値との関係を示したグラフである。
図11は、排ガスの空燃比が理論空燃比よりもリッチ側の空燃比である場合の空燃比センサの作動を説明するための図である。
図12は、排ガスの空燃比と空燃比センサ出力との関係を示したグラフである。
図13は、排ガスの空燃比と下流側空燃比センサの出力との関係を示したグラフである。
図14は、図7に示した電気制御装置のCPUが実行するルーチンを示したフローチャートである。
図15は、図7に示した電気制御装置のCPUが実行するルーチンを示したフローチャートである。
図16は、図7に示した電気制御装置のCPUが実行するルーチンを示したフローチャートである。
図17は、図7に示した電気制御装置のCPUが実行するルーチンを示したフローチャートである。
図18は、検出空燃比の変化の様子を示した図であり、(A)は空燃比気筒間インバランス状態が発生していない場合の検出空燃比、(B)は空燃比気筒間インバランス状態が発生している場合の検出空燃比を示す。
図19は、第2実施形態に係る空燃比気筒間インバランス判定装置(第2判定装置)のCPUが実行するルーチンを示したフローチャートである。
図20は、第2判定装置のCPUが実行するルーチンを示したフローチャートである。
図21は、第3実施形態に係る空燃比気筒間インバランス判定装置(第3判定装置)のCPUが実行するルーチンを示したフローチャートである。
図22は、第4実施形態に係る空燃比気筒間インバランス判定装置(第4判定装置)のCPUが実行するルーチンを示したフローチャートである。
図23は、第4判定装置のCPUが実行するルーチンを示したフローチャートである。
図24は、第5実施形態に係る空燃比気筒間インバランス判定装置(第5判定装置)のCPUが実行するルーチンを示したフローチャートである。
図25は、第6実施形態に係る空燃比気筒間インバランス判定装置(第6判定装置)のCPUが実行するルーチンを示したフローチャートである。
図26は、第7実施形態に係る空燃比気筒間インバランス判定装置(第7判定装置)のCPUが実行するルーチンを示したフローチャートである。
図27は、第8実施形態に係る空燃比気筒間インバランス判定装置(第8判定装置)のCPUが実行するルーチンを示したフローチャートである。
図28は、第8判定装置のCPUが実行するルーチンを示したフローチャートである。
図29は、第9実施形態に係る空燃比気筒間インバランス判定装置(第9判定装置)のCPUが実行するルーチンを示したフローチャートである。
図30は、第9判定装置のCPUが実行するルーチンを示したフローチャートである。
図31は、第10実施形態に係る空燃比気筒間インバランス判定装置(第10判定装置)のCPUが実行するルーチンを示したフローチャートである。
図32は、リッチピーク近傍の検出空燃比の変化の様子を示した図である。
図33は、リーンピーク近傍の検出空燃比の変化の様子を示した図である。
図34は、第11実施形態に係る空燃比気筒間インバランス判定装置(第11判定装置)のCPUが実行するルーチンを示したフローチャートである。
図35は、空燃比気筒間インバランスが発生している場合における検出空燃比の変化の様子を示した図である。
図36は、空燃比気筒間インバランスが発生していない場合における検出空燃比の変化の様子を示した図である。
図37は、第12実施形態に係る空燃比気筒間インバランス判定装置(第12判定装置)のCPUが実行するルーチンを示したフローチャートである。
図38は、第12判定装置のCPUが実行するルーチンを示したフローチャートである。
図39は、第12判定装置のCPUが実行するルーチンを示したフローチャートである。
図40は、第12判定装置の変形例のCPUが実行するルーチンを示したフローチャートである。
図41は、第12判定装置の変形例のCPUが実行するルーチンを示したフローチャートである。
図42は、第13実施形態に係る空燃比気筒間インバランス判定装置(第13判定装置)のCPUが実行するルーチンを示したフローチャートである。
図43は、第14実施形態に係る空燃比気筒間インバランス判定装置(第14判定装置)のCPUが実行するルーチンを示したフローチャートである。
図44は、第15実施形態に係る空燃比気筒間インバランス判定装置(第15判定装置)のCPUが実行するルーチンを示したフローチャートである。
図45は、第15判定装置のCPUが実行するルーチンを示したフローチャートである。
図46は、第16実施形態に係る空燃比気筒間インバランス判定装置(第16判定装置)のCPUが実行するルーチンを示したフローチャートである。
図47は、第16判定装置のCPUが実行するルーチンを示したフローチャートである。
<第1実施形態>
以下、本発明の第1実施形態に係る空燃比気筒間インバランス判定装置(以下、単に「第1判定装置」と称呼する。)について図面を参照しながら説明する。この第1判定装置は、内燃機関の空燃比を制御する空燃比制御装置の一部である。更に、この空燃比制御装置は、燃料噴射量を制御する燃料噴射量制御装置でもある。
(構成)
図7は、第1判定装置が適用される内燃機関10の概略構成を示している。機関10は、4サイクル・火花点火式・多気筒(本例において4気筒)・ガソリン燃料機関である。機関10は、本体部20、吸気系統30及び排気系統40を備えている。
本体部20は、シリンダブロック部とシリンダヘッド部とを備えている。本体部20は、ピストン頂面、シリンダ壁面及びシリンダヘッド部の下面からなる複数(4個)の燃焼室(第1気筒#1乃至第4気筒#4)21を備えている。
シリンダヘッド部には、各燃焼室(各気筒)21に「空気及び燃料からなる混合気」を供給するための吸気ポート22と、各燃焼室21から排ガス(既燃ガス)を排出するための排気ポート23と、が形成されている。吸気ポート22は図示しない吸気弁により開閉され、排気ポート23は図示しない排気弁により開閉されるようになっている。
シリンダヘッド部には複数(4個)の点火プラグ24が固定されている。各点火プラグ24は、その火花発生部が各燃焼室21の中央部であってシリンダヘッド部の下面近傍位置に露呈するように配設されている。各点火プラグ24は、点火信号に応答して火花発生部から点火用火花を発生するようになっている。
シリンダヘッド部には更に複数(4個)の燃料噴射弁(インジェクタ)25が固定されている。燃料噴射弁25は、各吸気ポート22に一つずつ設けられている。燃料噴射弁25は、噴射指示信号に応答し、正常である場合に「その噴射指示信号に含まれる指示噴射量の燃料」を対応する吸気ポート22内に噴射するようになっている。このように、複数の気筒21のそれぞれは、他の気筒とは独立して燃料供給を行う燃料噴射弁25を備えている。
更に、シリンダヘッド部には、吸気弁制御装置26が設けられている。この吸気弁制御装置26は、インテークカムシャフト(図示せず)とインテークカム(図示せず)との相対回転角度(位相角度)を油圧により調整・制御する周知の構成を備えている。吸気弁制御装置26は、指示信号(駆動信号)に基いて作動し、吸気弁の開弁タイミング(吸気弁開弁タイミング)を変更することができるようになっている。
吸気系統30は、インテークマニホールド31、吸気管32、エアフィルタ33、スロットル弁34及びスロットル弁アクチュエータ34aを備えている。
インテークマニホールド31は、各吸気ポート22に接続された複数の枝部と、それらの枝部が集合したサージタンク部と、を備えている。吸気管32はサージタンク部に接続されている。インテークマニホールド31、吸気管32及び複数の吸気ポート22は、吸気通路を構成している。エアフィルタ33は吸気管32の端部に設けられている。スロットル弁34はエアフィルタ33とインテークマニホールド31との間の位置において吸気管32に回動可能に取り付けられている。スロットル弁34は、回動することにより吸気管32が形成する吸気通路の開口断面積を変更するようになっている。スロットル弁アクチュエータ34aは、DCモータからなり、指示信号(駆動信号)に応答してスロットル弁34を回動させるようになっている。
排気系統40は、エキゾーストマニホールド41、エキゾーストパイプ(排気管)42、上流側触媒43及び下流側触媒44を備えている。
エキゾーストマニホールド41は、各排気ポート23に接続された複数の枝部41aと、それらの枝部41aが集合した集合部(排気集合部)41bと、からなっている。エキゾーストパイプ42は、エキゾーストマニホールド41の集合部41bに接続されている。エキゾーストマニホールド41、エキゾーストパイプ42及び複数の排気ポート23は、排ガスが通過する通路を構成している。なお、本明細書において、エキゾーストマニホールド41の集合部41b及びエキゾーストパイプ42を、便宜上、「排気通路」と称呼する。
上流側触媒43は、セラミックからなる担持体に「触媒物質である貴金属」及び「セリア(CeO2)」を担持していて、酸素吸蔵・放出機能(酸素吸蔵機能)を有する三元触媒である。上流側触媒43はエキゾーストパイプ42に配設(介装)されている。上流側触媒43は所定の活性温度に到達すると、「未燃物(HC、CO及びH等)と窒素酸化物(NOx)とを同時に浄化する触媒機能」及び「酸素吸蔵機能」を発揮する。
下流側触媒44は、上流側触媒43と同様の三元触媒である。下流側触媒44は、上流側触媒43よりも下流においてエキゾーストパイプ42に配設(介装)されている。なお、上流側触媒43及び下流側触媒44は、三元触媒以外の種類の触媒であっても良い。
この第1判定装置は、熱線式エアフローメータ51、スロットルポジションセンサ52、クランク角センサ53、インテークカムポジションセンサ54、上流側空燃比センサ55、下流側空燃比センサ56、アクセル開度センサ57及び水温センサ58を備えている。
熱線式エアフローメータ51は、吸気管32内を流れる吸入空気の質量流量を検出し、その質量流量(機関10の単位時間あたりの吸入空気量)Gaを表す信号を出力するようになっている。吸入空気流量Gaは排ガスの流量に略等しいので、排ガスの流速にも略比例する。
スロットルポジションセンサ52は、スロットル弁34の開度を検出し、スロットル弁開度TAを表す信号を出力するようになっている。
クランク角センサ(クランクポジションセンサ)53は、機関10のクランク軸が10度回転する毎に幅狭のパルスを有するとともに同クランク軸が360°回転する毎に幅広のパルスを有する信号を出力するようになっている。この信号は、後述する電気制御装置60によって機関回転速度NEに変換される。
インテークカムポジションセンサ54は、インテークカムシャフトが所定角度から90度、次いで90度、更に180度回転する毎に一つのパルスを出力するようになっている。電気制御装置60は、クランク角センサ53及びインテークカムポジションセンサ54からの信号に基いて、基準気筒(例えば第1気筒#1)の圧縮上死点を基準とした絶対クランク角CAを取得するようになっている。この絶対クランク角CAは、基準気筒の圧縮上死点において「0°クランク角」に設定され、クランク角の回転角度に応じて720°クランク角まで増大し、その時点にて再び0°クランク角に設定される。
上流側空燃比センサ55(本発明における空燃比センサ55)は、エキゾーストマニホールド41の集合部41bと上流側触媒43との間の位置においてエキゾーストマニホールド41及びエキゾーストパイプ42の何れか(即ち、排気通路)に配設されている。上流側空燃比センサ55は、例えば、特開平11−72473号公報、特開2000−65782号公報及び特開2004−69547号公報等に開示された「拡散抵抗層を備える限界電流式広域空燃比センサ」である。
上流側空燃比センサ55は、図2及び図3に示したように、空燃比検出素子55aと、外側保護カバー55bと、内側保護カバー55cと、を有している。
外側保護カバー55bは金属からなる中空円筒体である。外側保護カバー55bは内側保護カバー55cを覆うように、内側保護カバー55cを内部に収容している。外側保護カバー55bは、流入孔55b1をその側面に複数備えている。流入孔55b1は、排気通路を流れる排ガス(外側保護カバー55bの外部の排ガス)EXを外側保護カバー55bの内部に流入させるための貫通孔である。更に、外側保護カバー55bは、外側保護カバー55bの内部の排ガスを外部(排気通路)に流出させるための流出孔55b2をその底面に有している。
内側保護カバー55cは、金属からなり、外側保護カバー55bの直径よりも小さい直径を有する中空円筒体である。内側保護カバー55cは、空燃比検出素子55aを覆うように空燃比検出素子55aを内部に収容している。内側保護カバー55cは流入孔55c1をその側面に複数備えている。この流入孔55c1は、外側保護カバー55bの流入孔55b1を通して「外側保護カバー55bと内側保護カバー55cとの間の空間」に流入した排ガスを、内側保護カバー55cの内部に流入させるため貫通孔である。更に、内側保護カバー55cは、内側保護カバー55cの内部の排ガスを外部に流出させるための流出孔55c2をその底面に有している。
図8に示したように、空燃比検出素子55aは、固体電解質層551と、排ガス側電極層552と、大気側電極層553と、拡散抵抗層554と、隔壁部555と、ヒータ556と、を含んでいる。
固体電解質層551は酸素イオン導電性酸化物焼結体である。本例において、固体電解質層551は、ZrO(ジルコニア)にCaOを安定剤として固溶させた「安定化ジルコニア素子」である。固体電解質層551は、その温度が活性温度以上であるとき、周知の「酸素電池特性」及び「酸素ポンプ特性」を発揮する。これらの特性は、後述するように、空燃比検出素子55aが排ガスの空燃比に応じた出力値を出力する際に発揮されるべき特性である。酸素電池特性とは、酸素濃度の高い側から低い側へ酸素イオンを通過させ起電力を発生する特性のことである。酸素ポンプ特性とは、固体電解質層551の両端に電位差が与えられたとき、陰極(低電位側電極)から陽極(高電位側電極)へとそれらの電極間の電位差に応じた量の酸素イオンを移動させる特性のことである。
排ガス側電極層552は、白金(Pt)等の触媒活性の高い貴金属からなる。排ガス側電極層552は、固体電解質層551の一つの面上に形成されている。排ガス側電極層552は、化学メッキ等により浸透性を十分に有するように(即ち、多孔質状に)形成されている。
大気側電極層553は、白金(Pt)等の触媒活性の高い貴金属からなる。大気側電極層553は、固体電解質層551の他の面上であって、固体電解質層551を挟んで排ガス側電極層552に対向するように形成されている。大気側電極層553は、化学メッキ等により浸透性を十分に有するように(即ち、多孔質状に)形成されている。
拡散抵抗層(拡散律速層)554は、多孔質セラミック(耐熱性無機物質)からなる。拡散抵抗層554は、排ガス側電極層552の外側表面を覆うように、例えば、プラズマ溶射法等により形成されている。
隔壁部555は、緻密であってガスを透過させないアルミナセラミックスからなる。隔壁部555は大気側電極層553を収容する空間である「大気室557」を形成するように構成されている。大気室557には大気が導入されている。
ヒータ556は隔壁部555に埋設されている。ヒータ556は通電されたときに発熱し、固体電解質層551を加熱するようになっている。
上流側空燃比センサ55は、図9に示したように、電源558を使用する。電源558は、大気側電極層553側が高電位となり、排ガス側電極層552が低電位となるように、電圧Vを印加する。
図9に示したように、排ガスの空燃比が理論空燃比よりもリーン側の空燃比であるとき、上述した酸素ポンプ特性が利用されることにより空燃比が検出される。即ち、排ガスの空燃比が理論空燃比よりもリーン側の空燃比であるとき、排ガス中に多量に含まれる酸素分子が拡散抵抗層554を通って排ガス側電極層552に到達する。その酸素分子は電子を受け取って酸素イオンになる。酸素イオンは、固体電解質層551を通過し、大気側電極層553にて電子を放出して酸素分子になる。この結果、電源558の正極から、大気側電極層553、固体電解質層551及び排ガス側電極層552を介して電源558の負極へと電流Iが流れる。
この電流Iの大きさは、電圧Vの大きさを所定値Vp以上に設定したとき、拡散抵抗層554の外側表面に到達した排ガスに含まれる酸素分子のうち「拡散抵抗層554を通って排ガス側電極層552へと拡散によって到達する酸素分子」の量に応じて変化する。即ち、電流Iの大きさは、排ガス側電極層552における酸素濃度(酸素分圧)に応じて変化する。排ガス側電極層552における酸素濃度は、拡散抵抗層554の外側表面に到達した排ガスの酸素濃度に応じて変化する。この電流Iは、図10に示したように、電圧Vを所定値Vp以上に設定しても変化しないから、限界電流Ipと呼ばれる。空燃比検出素子55aは、この限界電流Ip値に基いて空燃比に応じた値を出力する。
これに対し、排ガスの空燃比が理論空燃比よりもリッチ側の空燃比であるとき、図11に示したように、上述した酸素電池特性が利用されることにより空燃比が検出される。より具体的に述べると、排ガスの空燃比が理論空燃比よりもリッチ側の空燃比であるとき、排ガス中に多量に含まれる未燃物(HC,CO及びH等)が拡散抵抗層554を通って排ガス側電極層552に到達する。この場合、大気側電極層553における酸素濃度と排ガス側電極層552における酸素濃度との差(酸素分圧差)が大きくなるので、固体電解質層551は酸素電池として機能する。印加電圧Vは、この酸素電池の起電力よりも小さくなるように設定される。
従って、大気室557に存在する酸素分子は大気側電極層553にて電子を受け取って酸素イオンとなる。その酸素イオンは、固体電解質層551を通過し、排ガス側電極層552へと移動する。そして、排ガス側電極層552にて未燃物を酸化し、電子を放出する。この結果、電源558の負極から、排ガス側電極層552、固体電解質層551及び大気側電極層553を介して電源558の正極へと電流Iが流れる。
この電流Iの大きさは、大気側電極層553から固体電解質層551を通って排ガス側電極層552に到達する酸素イオンの量により定まる。前述したように、この酸素イオンは排ガス側電極層552にて未燃物を酸化するために使用される。従って、拡散により拡散抵抗層554を通過して排ガス側電極層552に到達する未燃物の量が多いほど、固体電解質層551を通過する酸素イオンの量は多くなる。換言すると、空燃比が小さいほど(理論空燃比よりもリッチ側の空燃比であって未燃物の量が多いほど)、電流Iの大きさは大きくなる。但し、拡散抵抗層554の存在により、排ガス側電極層552に到達する未燃物の量は制限されるので、電流Iは空燃比に応じた一定値Ipとなる。空燃比検出素子55aは、この限界電流Ip値に基いて空燃比に応じた値を出力する。
このような検出原理に基づく空燃比検出素子55aは、図12に示したように、上流側空燃比センサ55の配設位置を流れ、且つ、外側保護カバー55bの流入孔55b1及び内側保護カバー55cの流入孔55c1を通って空燃比検出素子55aに到達しているガスの空燃比(上流側空燃比abyfs、検出空燃比abyfs)に応じた出力Vabyfsを「空燃比センサ出力Vabyfs」として出力する。この空燃比センサ出力Vabyfsは限界電流Ipを電圧に変換することにより得られる。空燃比センサ出力Vabyfsは、空燃比検出素子55aに到達しているガスの空燃比が大きくなるほど(リーンとなるほど)増大する。即ち、空燃比センサ出力は、空燃比検出素子55aに到達している排ガス(拡散抵抗層554に接触している排ガス)の空燃比に実質的に比例する。
後述する電気制御装置60は、図12に示した空燃比変換テーブル(マップ)Mapabyfsを記憶していて、空燃比センサ出力Vabyfsを空燃比変換テーブルMapabyfsに適用することにより、実際の上流側空燃比abyfsを検出する(即ち、検出空燃比abyfsを取得する)。
再び、図7を参照すると、下流側空燃比センサ56は、上流側触媒43と下流側触媒44との間の位置においてエキゾーストパイプ42(即ち、排気通路)に配設されている。下流側空燃比センサ56は、周知の濃淡電池型の酸素濃度センサ(O2センサ)である。下流側空燃比センサ56は、下流側空燃比センサ56の配設位置を流れる排ガスの空燃比(下流側空燃比afdown)に応じた出力値Voxsを出力するようになっている。
下流側空燃比センサ56の出力Voxsは、図13に示したように、被検出ガスの空燃比が理論空燃比よりもリッチのとき最大出力値max(例えば、約0.9V)となり、被検出ガスの空燃比が理論空燃比よりもリーンのとき最小出力値min(例えば、約0.1V)となり、被検出ガスの空燃比が理論空燃比であるとき最大出力値maxと最小出力値minの略中間の電圧Vst(中間電圧Vst、例えば、約0.5V)となる。更に、この出力値Voxsは、被検出ガスの空燃比が理論空燃比よりもリッチな空燃比からリーンな空燃比へと変化する際に最大出力値maxから最小出力値minへと急変し、被検出ガスの空燃比が理論空燃比よりもリーンな空燃比からリッチな空燃比へと変化する際に最小出力値minから最大出力値maxへと急変する。
図7に示したアクセル開度センサ57は、運転者によって操作されるアクセルペダルAPの操作量を検出し、アクセルペダルAPの操作量Accpを表す信号を出力するようになっている。
水温センサ58は、内燃機関10の冷却水の温度を検出し、冷却水温THWを表す信号を出力するようになっている。
電気制御装置60は、「CPU、ROM、RAM、バックアップRAM(又は、EEPROM等の不揮発性メモリ)、並びに、ADコンバータを含むインターフェース等」からなる「周知のマイクロコンピュータ」である。
バックアップRAMは、機関10を搭載した車両の図示しないイグニッション・キー・スイッチの位置(オフ位置、始動位置及びオン位置等の何れか)に関わらず、車両に搭載されたバッテリから電力の供給を受けるようになっている。バックアップRAMは、バッテリから電力の供給を受けている場合、CPUの指示に応じてデータを格納する(データが書き込まれる)とともに、そのデータを読み出し可能となるように保持(記憶)する。 電気制御装置60のインターフェースは、前記センサ51〜58と接続され、CPUにセンサ51〜58からの信号を供給するようになっている。更に、そのインターフェースは、CPUの指示に応じて、各気筒の点火プラグ24、各気筒の燃料噴射弁25、吸気弁制御装置26及びスロットル弁アクチュエータ34a等に指示信号(駆動信号)等を送出するようになっている。なお、電気制御装置60は、取得されたアクセルペダルの操作量Accpが大きくなるほどスロットル弁開度TAが大きくなるように、スロットル弁アクチュエータ34aに指示信号を送出するようになっている。
(作動)
第1判定装置は、上述した「本発明による空燃比気筒間インバランス判定の原理」に従って、空燃比気筒間インバランス判定を行う。以下、第1判定装置の作動について説明する。
<燃料噴射量制御>
CPUは、図14に示した燃料噴射量Fiの計算及び燃料噴射の指示を行うルーチンを、所定の気筒のクランク角が吸気上死点前の所定クランク角度(例えば、BTDC90°CA)となる毎に、その気筒(以下、「燃料噴射気筒」とも称呼する。)に対して繰り返し実行するようになっている。従って、所定のタイミングになると、CPUはステップ1400から処理を開始し、以下に述べるステップ1410乃至ステップ1440の処理を順に行い、ステップ1495に進んで本ルーチンを一旦終了する。
ステップ1410:CPUは、「エアフローメータ51により計測された吸入空気流量Ga、機関回転速度NE及びルックアップテーブルMapMc」に基いて「燃料噴射気筒に吸入される空気量」である「筒内吸入空気量Mc(k)」を取得する。筒内吸入空気量Mc(k)は、各吸気行程に対応されながらRAM内に記憶される。筒内吸入空気量Mc(k)は、周知の空気モデル(吸気通路における空気の挙動を模した「物理法則に従って構築されるモデル」)により算出されてもよい。
ステップ1420:CPUは、筒内吸入空気量Mc(k)を上流側目標空燃比abyfrで除することにより基本燃料噴射量Fbaseを求める。上流側目標空燃比abyfrは、特殊な場合を除き理論空燃比stoichに設定されている。
ステップ1430:CPUは、基本燃料噴射量Fbaseをメインフィードバック量DFiにより補正する(より具体的には、基本燃料噴射量Fbaseにメインフィードバック量DFiを加える)ことにより、最終燃料噴射量Fiを算出する。メインフィードバック量DFiについては後述する。
ステップ1440:CPUは、最終燃料噴射量(指示噴射量)Fiの燃料が「燃料噴射気筒に対応して設けられている燃料噴射弁25」から噴射されるように、その燃料噴射弁25に指示信号を送出する。
このように、各燃料噴射弁25から噴射される燃料の量は、全ての気筒に対して共通したメインフィードバック量DFiによって一律に増減される。
<メインフィードバック量の算出>
CPUは図15にフローチャートにより示したメインフィードバック量算出ルーチンを所定時間の経過毎に繰り返し実行している。従って、所定のタイミングになると、CPUはステップ1500から処理を開始し、ステップ1505に進んでメインフィードバック制御条件(上流側空燃比フィードバック制御条件)が成立しているか否かを判定する。
メインフィードバック制御条件は以下の総ての条件が成立したときに成立する。
(条件A1)上流側空燃比センサ55が活性化している。
(条件A2)機関の負荷(負荷率)KLが閾値KLth以下である。
(条件A3)フューエルカット中でない。
なお、負荷率KLは、ここでは下記の(1)式により求められる。この負荷率KLに代え、機関の負荷としてアクセルペダル操作量Accp及びスロットル弁開度TA等が用いられても良い。(1)式において、Mcは筒内吸入空気量であり、ρは空気密度(単位は(g/l))、Lは機関10の排気量(単位は(l))、「4」は機関10の気筒数である。
KL=(Mc/(ρ・L/4))・100% …(1)
いま、メインフィードバック制御条件が成立しているものとして説明を続けると、CPUはステップ1505にて「Yes」と判定して以下に述べるステップ1510乃至ステップ1540の処理を順に行い、ステップ1595に進んで本ルーチンを一旦終了する。
ステップ1510:CPUは、下記(2)式に従ってフィードバック制御用出力値Vabyfcを取得する。(2)式において、Vabyfsは上流側空燃比センサ55の出力、Vafsfbは下流側空燃比センサ56の出力Voxsに基いて算出されるサブフィードバック量である。これらの値は、何れも現時点において得られている値である。サブフィードバック量Vafsfb算出方法については、後述する。なお、CPUは、上流側空燃比センサ55の出力Vabyfsに、サブフィードバック量Vafsfbとサブフィードバック量の学習値(サブFB学習値)Vafsfbgとを加えることにより、フィードバック制御用出力値Vabyfcを取得してもよい。
Vabyfc=Vabyfs+Vafsfb …(2)
ステップ1515:CPUは、下記(3)式に示したように、上記フィードバック制御用出力値Vabyfcを図12に示した空燃比変換テーブルMapabyfsに適用することにより、フィードバック制御用空燃比abyfscを得る。
abyfsc=Mapabyfs(Vabyfc) …(3)
ステップ1520:CPUは、下記(4)式に従って、「現時点よりもNサイクル前の時点において燃焼室21に実際に供給された燃料の量」である「筒内燃料供給量Fc(k−N)」を求める。即ち、CPUは、「現時点よりもNサイクル(即ち、N・720°クランク角)前の時点における筒内吸入空気量Mc(k−N)」を「上記フィードバック制御用空燃比abyfsc」により除すことにより、筒内燃料供給量Fc(k−N)を求める。
Fc(k−N)=Mc(k−N)/abyfsc …(4)
このように、筒内燃料供給量Fc(k−N)を求めるために、現時点からNストローク前の筒内吸入空気量Mc(k−N)をフィードバック制御用空燃比abyfscで除すのは、「燃焼室21内での混合気の燃焼により生成された排ガス」が上流側空燃比センサ55に到達するまでに「Nストロークに相当する時間」を要しているからである。
ステップ1525:CPUは、下記(5)式に従って、「現時点よりもNサイクル前の時点において燃焼室21に供給されるべきであった燃料の量」である「目標筒内燃料供給量Fcr(k−N)」を求める。即ち、CPUは、現時点からNストローク前の筒内吸入空気量Mc(k−N)を上流側目標空燃比abyfrで除すことにより、目標筒内燃料供給量Fcr(k−N)を求める。
Fcr=Mc(k−N)/abyfr …(5)
ステップ1530:CPUは、下記(6)式に従って、筒内燃料供給量偏差DFcを取得する。即ち、CPUは、目標筒内燃料供給量Fcr(k−N)から筒内燃料供給量Fc(k−N)を減じることにより、筒内燃料供給量偏差DFcを求める。この筒内燃料供給量偏差DFcは、Nストローク前の時点で筒内に供給された燃料の過不足分を表す量となる。
DFc=Fcr(k−N)−Fc(k−N) …(6)
ステップ1535:CPUは、下記(7)式に従って、メインフィードバック量DFiを求める。この(7)式において、Gpは予め設定された比例ゲイン、Giは予め設定された積分ゲインである。更に、(7)式の「値SDFc」は「筒内燃料供給量偏差DFcの積分値」である。つまり、CPUは、フィードバック制御用空燃比abyfscを上流側目標空燃比abyfrに一致させるための比例積分制御により「メインフィードバック量DFi」を算出する。
DFi=Gp・DFc+Gi・SDFc …(7)
ステップ1540:CPUは、その時点における筒内燃料供給量偏差DFcの積分値SDFcに上記ステップ1530にて求められた筒内燃料供給量偏差DFcを加えることにより、新たな筒内燃料供給量偏差の積分値SDFcを取得する。
以上により、メインフィードバック量DFiが比例積分制御により求められ、このメインフィードバック量DFiが前述した図14のステップ1430の処理により最終燃料噴射量Fiに反映される。
ところで、上記(2)式の右辺の「サブフィードバック量Vafsfb」は、上流側空燃比センサ55の出力Vabyfsに比較して小さい値となり、且つ、小さい値となるように制限されている。従って、サブフィードバック量Vafsfbは、「下流側空燃比センサ56の出力Voxs」を「理論空燃比に相当する値である下流側目標値Voxsref」に一致させるための「補助的な補正量」と考えることができる。この結果、フィードバック制御用空燃比abyfscは上流側空燃比センサ55の出力Vabyfsに実質的に基づく値であると言うことができる。即ち、メインフィードバック量DFiは「上流側空燃比センサ55の出力Vabyfsにより表される機関の空燃比」を「上流側目標空燃比abyfr(理論空燃比)」に一致させるための補正量であると言うことができる。
一方、ステップ1505の判定時において、メインフィードバック制御条件が不成立であると、CPUはそのステップ1505にて「No」と判定してステップ1545に進み、メインフィードバック量DFiの値を「0」に設定する。次いで、CPUは、ステップ1550にて筒内燃料供給量偏差の積分値SDFcに「0」を格納する。その後、CPUは、ステップ1595に進んで本ルーチンを一旦終了する。このように、メインフィードバック制御条件が不成立であるとき、メインフィードバック量DFiは「0」に設定される。従って、基本燃料噴射量Fbaseのメインフィードバック量DFiによる補正は行われない。
<サブフィードバック量の算出>
CPUは、サブフィードバック量Vafsfbを算出するために、図16示したルーチンを所定時間の経過毎に実行している。従って、所定のタイミングになると、CPUはステップ1600から処理を開始し、ステップ1605に進んでサブフィードバック制御条件が成立しているか否かを判定する。
サブフィードバック制御条件は以下の総ての条件が成立したときに成立する。
(条件B1)メインフィードバック制御条件が成立している。
(条件B2)下流側空燃比センサ56が活性化している。
(条件B3)上流側目標空燃比abyfrが理論空燃比stoichに設定されている。
いま、サブフィードバック制御条件が成立していると仮定して説明を続ける。この場合、CPUはステップ1605にて「Yes」と判定し、以下に述べるステップ1610乃至ステップ1630の処理を順に行い、サブフィードバック量Vafsfbを算出する。
ステップ1610:CPUは、下記(8)式に従って、「下流側目標値Voxsref」と「下流側空燃比センサ56の出力Voxs」との差である「出力偏差量DVoxs」を取得する。即ち、CPUは、「下流側目標値Voxsref」から「現時点の下流側空燃比センサ56の出力Voxs」を減じることにより「出力偏差量DVoxs」を求める。下流側目標値Voxsrefは理論空燃比に相当する値Vst(0.5V)に設定されている。
DVoxs=Voxsref−Voxs …(8)
ステップ1615:CPUは、下記(9)式に従って、サブフィードバック量Vafsfbを求める。この(9)式において、Kpは予め設定された比例ゲイン(比例定数)、Kiは予め設定された積分ゲイン(積分定数)、Kdは予め設定された微分ゲイン(微分定数)である。また、SDVoxsは出力偏差量DVoxsの積分値(時間積分値SDVoxs)、DDVoxsは出力偏差量DVoxsの微分値である。
Vafsfb=Kp・DVoxs+Ki・SDVoxs+Kd・DDVoxs …(9)
ステップ1620:CPUは、「その時点における出力偏差量の積分値SDVoxs」に「上記ステップ1610にて求めた出力偏差量DVoxs」を加えることにより、新たな出力偏差量の積分値SDVoxsを求める。
ステップ1625:CPUは、「上記ステップ1610にて算出した出力偏差量DVoxs」から「本ルーチンを前回実行した際に算出された出力偏差量である前回出力偏差量DVoxsold」を減じることにより、新たな出力偏差量の微分値DDVoxsを求める。
ステップ1630:CPUは、「上記ステップ1610にて算出した出力偏差量DVoxs」を「前回出力偏差量DVoxsold」として格納する。
このように、CPUは、下流側空燃比センサ56の出力Voxsを下流側目標値Voxsrefに一致させるための比例・積分・微分(PID)制御により「サブフィードバック量Vafsfb」を算出する。このサブフィードバック量Vafsfbは、上述した(2)式に示したように、フィードバック制御用出力値Vabyfcを算出するために使用される。
一方、サブフィードバック制御条件が成立していない場合、CPUは図16のステップ1605にて「No」と判定し、以下に述べるステップ1635及びステップ1640の処理を順に行い、ステップ1695に進んで本ルーチンを一旦終了する。
ステップ1635:CPUはサブフィードバック量Vafsfbの値を「0」に設定する。
ステップ1640:CPUは出力偏差量の積分値SDVoxsの値を「0」に設定する。
<空燃比気筒間インバランス判定>
次に、「空燃比気筒間インバランス判定」を実行するための処理について図17を参照しながら説明する。CPUは、4ms(4ミリ秒=所定の一定サンプリング時間ts)が経過する毎に、図17にフローチャートにより示した「空燃比気筒間インバランス判定ルーチン」を実行するようになっている。
従って、所定のタイミングになると、CPUはステップ1700から処理を開始し、以下に述べるステップ1710乃至ステップ1730の処理を順に行い、ステップ1740に進む。
ステップ1710:CPUは、その時点の空燃比センサ出力VabyfsをAD変換することにより取得する。
ステップ1720:CPUは、その時点の検出空燃比abyfs(上流側空燃比abyfs)を前回の検出空燃比abyfsoldとして記憶する。即ち、前回の検出空燃比abyfsoldは、現時点から4ms(サンプリング時間ts)前の時点における検出空燃比abyfsである。
ステップ1730:CPUは、空燃比センサ出力Vabyfsを空燃比変換テーブルMapabyfsに適用することにより、今回の検出空燃比abyfsを取得する。
次に、CPUはステップ1740に進み、空燃比気筒間インバランス判定実行条件(以下、「判定実行条件」とも称呼する。)が成立しているか否かを判定する。この判定実行条件は、以下の総ての条件が成立したときに成立する。なお、判定実行条件は、条件C1及び条件C3の双方が成立したときに成立する条件であってもよい。また、判定実行条件は、条件C3が成立しているときに成立する条件であってもよく、条件C3及び「条件C3を除く何れかの条件の一つ以上の条件」が成立する条件であってもよい。もちろん、判定実行条件は、他の条件が更に成立しているときに成立する条件であってもよい。
(条件C1)吸入空気流量Gaが、低側吸入空気流量閾値(第1閾値空気流量)Ga1thよりも大きく、且つ、高側吸入空気流量閾値(第2閾値空気流量)Ga2thよりも小さい。なお、高側吸入空気流量閾値Ga2thは低側吸入空気流量閾値Ga1thよりも大きい値である。
(条件C2)機関回転速度NEが、低側機関回転速度閾値NE1thよりも大きく、且つ、高側機関回転速度閾値NE2thよりも小さい。なお、高側機関回転速度閾値NE2thは低側機関回転速度閾値NE1thよりも大きい値である。
(条件C3)フューエルカット中でない。
(条件C4)メインフィードバック制御条件が成立していて、メインフィードバック制御中である。
(条件C5)サブフィードバック制御条件が成立していて、サブフィードバック制御中である。
このとき、判定実行条件が不成立であると、CPUはステップ1740にて「No」と判定し、ステップ1795に直接進んで本ルーチンを一旦終了する。
これに対し、判定実行条件が成立していると、CPUはステップ1740にて「Yes」と判定してステップ1750に進み、「ステップ1730にて取得した今回の検出空燃比abyfs」から「ステップ1720にて格納した前回の検出空燃比abyfsold」を減じることにより、検出空燃比変化率ΔAFを取得する。検出空燃比変化率ΔAFは、検出空燃比変化率ΔAFに応じて変化する空燃比変化率指示量として採用される。
この検出空燃比変化率ΔAFは、図18の(A)及び(B)に示したように、サンプリング時間tsにおける検出空燃比abyfsの変化量ΔAFである。更に、サンプリング時間tsが4msと短いので、検出空燃比変化率ΔAFは、実質的に検出空燃比abyfsの時間微分値d(abyfs)/dtに比例し、従って、検出空燃比abyfsが形成する波形の傾きαを表す。
次に、CPUは図17のステップ1760に進み、「空燃比変化率指示量として採用された検出空燃比変化率ΔAF」の大きさ(検出空燃比変化率ΔAFの絶対値|ΔAF|)が、所定のインバランス判定用閾値ΔAF1thよりも大きいか否かを判定する。このインバランス判定用閾値ΔAF1thは、図17のブロックB1内に示されているように、吸入空気流量Gaが大きいほど大きくなるように設定される。これは、図4を参照しながら説明したように、空燃比気筒間インバランス状態が発生している場合、空燃比検出素子55aに到達する空燃比は吸入空気流量Gaが大きいほど大きな変化率をもって変化するので、検出空燃比変化率ΔAFの大きさ(|ΔAF|)も吸入空気流量Gaが大きいほど大きくなるからである。
但し、インバランス判定用閾値ΔAF1thは一定値であってもよい。その場合、判定実行条件において使用される「低側吸入空気流量閾値Ga1thと高側吸入空気流量閾値Ga2thとの差の大きさ(絶対値)」を小さい値に設定することが好ましい。
このとき、検出空燃比変化率ΔAFの大きさがインバランス判定用閾値ΔAF1thよりも大きいと、CPUはステップ1760にて「Yes」と判定してステップ1770に進み、空燃比気筒間インバランス発生フラグXINB(以下、「インバランス発生フラグXINB」とも称呼する。)の値を「1」に設定する。即ち、CPUは空燃比気筒間インバランス状態が発生していると判定する。更に、このとき、CPUは図示しない警告ランプを点灯してもよい。
このインバランス発生フラグXINBの値は、バックアップラムに格納される。更に、インバランス発生フラグXINBの値は、機関10を搭載した車両の工場出荷時又はサービス点検時等において空燃比気筒間インバランスが発生していない状態が確認できた際、電気制御装置に対して特別の操作をすることにより「0」に設定される。その後、CPUはステップ1795に進んで、本ルーチンを一旦終了する。
これに対し、ステップ1760の処理を行う時点において、検出空燃比変化率ΔAFの大きさがインバランス判定用閾値ΔAF1th以下であると、CPUはステップ1760にて「No」と判定し、ステップ1795に進んで本ルーチンを一旦終了する。
図1及び図18からも明らかなように、空燃比気筒間インバランスが発生していなければ、720°クランク角が経過する期間において、検出空燃比変化率ΔAFの大きさ(|ΔAF|)がインバランス判定用閾値ΔAF1thを超えることはない。これに対し、空燃比気筒間インバランスが発生していれば、720°クランク角が経過する期間において、検出空燃比変化率ΔAFの大きさ(|ΔAF|)がインバランス判定用閾値ΔAF1thを超える場合が発生する。従って、空燃比気筒間インバランス状態が発生していると判定され、インバランス発生フラグXINBの値は「1」に設定される。
以上、説明したように、第1判定装置は、
保護カバーを備える空燃比センサ55と、
「空燃比センサ55の出力(空燃比センサ出力Vabyfs)により表される空燃比(検出空燃比abyfs)の単位時間当たりの変化量である検出空燃比変化率ΔAF」に応じて変化する「空燃比変化率指示量(本例においては、検出空燃比変化率ΔAFそのもの)」を、空燃比センサ出力Vabyfsに基づいて取得するとともに、その空燃比センサに排ガスが到達する少なくとも2以上の気筒のそれぞれに供給される混合気の空燃比である気筒別空燃比の間に許容レベル以上の不均衡が生じているか否かの判定(空燃比気筒間インバランス判定)を、その取得された空燃比変化率指示量に基づいて実行するインバランス判定手段(図17のルーチン)と、
を備えている。
更に、そのインバランス判定手段は、
前記取得された空燃比変化率指示量の大きさ(本例における検出空燃比変化率ΔAFの大きさ|ΔAF|)と所定のインバランス判定用閾値ΔAF1thとを比較し、その比較の結果に基づいて前記空燃比気筒間インバランス状態が発生しているか否かを判定するように構成されている(図17のステップ1760及びステップ1770を参照。)。
更に、そのインバランス判定手段は、
前記取得された空燃比変化率指示量の大きさ(本例における検出空燃比変化率ΔAFの大きさ|ΔAF|)が前記インバランス判定用閾値ΔAF1thよりも大きいことを前記比較の結果が示した場合(ステップ1760での「Yes」との判定を参照。)、前記空燃比気筒間インバランス状態が発生していると判定するように構成されている。
更に、そのインバランス判定手段は、
一定のサンプリング期間(サンプリング時間ts)が経過する毎に空燃比センサ出力Vabyfsを取得するとともに、そのサンプリング期間を挟んで連続して取得された二つの前記空燃比センサ出力のそれぞれにより表される空燃比の差(即ち、今回の検出空燃比abyfsと前回の検出空燃比abyfsoldとの差ΔAF)を、前記空燃比変化率指示量として取得するように構成されている(ステップ1710〜ステップ1730、及び、ステップ1750を参照。)。
上述したように、検出空燃比変化率ΔAFは機関回転速度NEの影響を殆ど受けないので、空燃比変化率指示量も機関回転速度NEの影響を殆ど受けない。従って、空燃比変化率指示量を用いることにより、精度の良い空燃比気筒間インバランス判定を実行することができる。更に、第1判定装置によれば、インバランス判定用閾値ΔAF1thを機関回転速度NE毎に詳細に設定する必要がないので、その第1判定装置を「より少ない開発工数」にて開発することができる。
更に、第1判定装置は、上記条件C1に示したように、「単位時間あたりに前記機関に吸入される空気の量である吸入空気流量Ga」が「所定の第1閾値空気流量Ga1th」よりも大きいとき前記空燃比気筒間インバランス状態が発生しているか否かの判定を実行し、吸入空気流量Gaが第1閾値空気流量Ga1thよりも小さいとき空燃比気筒間インバランス状態が発生しているか否かの判定を実行しないように構成されている(図17のステップ1740を参照。)。
図4及び図5を参照しながら行った説明からも理解できるように、空燃比気筒間インバランスが発生していたとしても、吸入空気流量Gaが小さくなるほど検出空燃比変化率ΔAFの大きさは小さくなる。従って、吸入空気流量Gaが第1閾値空気流量Ga1thよりも小さいときに、検出空燃比変化率ΔAFに応じて変化する空燃比変化率指示量(本例では、検出空燃比変化率ΔAF=空燃比変化率指示量)に基づいて空燃比気筒間インバランス判定を実行することは、誤判定を招く虞がある。従って、上記判定実行条件に上記条件C1を設ければ、空燃比気筒間インバランス判定をより精度良く実行することができる。
更に、第1判定装置は、吸入空気流量Gaが大きいほどインバランス判定用閾値ΔAF1th(閾値変化率)を大きい値に変更するように構成されている(ステップ1760を参照。)。
図4及び図5を参照しながら行った説明からも理解できるように、空燃比気筒間インバランス状態が発生しているとき、吸入空気流量Gaが大きくなるほど検出空燃比変化率ΔAF(従って、空燃比変化率指示量)の大きさは大きくなる。従って、第1判定装置のように、吸入空気流量Gaが大きいほどインバランス判定用閾値ΔAF1thを大きい値に変更すれば、より精度良く空燃比気筒間インバランス判定を実行することができる。
<第2実施形態>
次に、本発明の第2実施形態に係る内燃機関の制御装置(以下、単に「第2判定装置」と称呼する。)について説明する。
第2判定装置は、検出空燃比変化率ΔAFを「空燃比センサ出力Vabyfsのサンプリング期間(時間ts)」よりも長いデータ取得期間において複数個取得し、それらの平均値を空燃比変化率指示量として取得し、且つ、その空燃比変化率指示量とインバランス判定用閾値ΔAF1thとを比較することによって空燃比気筒間インバランス判定を行う点のみにおいて、第1判定装置と相違している。従って、以下、この相違点を中心として説明する。
第2判定装置のCPUは、図17にフローチャートにより示したルーチンに代え、図19にフローチャートにより示した「空燃比気筒間インバランス判定ルーチン」を4ms(所定の一定サンプリング時間ts)が経過する毎に実行するようになっている。更に、第2判定装置のCPUは、図20にフローチャートにより示した「判定許可フラグ設定ルーチン」を所定時間(4ms)が経過する毎に実行するようになっている。
従って、所定のタイミングになると、CPUは図19のステップ1900から処理を開始し、ステップ1902乃至ステップ1906の処理を行う。ステップ1902、ステップ1904及びステップ1906は、図17のステップ1710、ステップ1720及びステップ1730とそれぞれ同じである。従って、サンプリング時間tsの経過毎に、空燃比センサ出力Vabyfs、前回の検出空燃比abyfsold及び今回の検出空燃比abyfsが取得される。
次に、CPUはステップ1908に進み、判定許可フラグXkyokaの値が「1」であるか否かを判定する。この判定許可フラグXkyokaは、その値が「1」であるとき、インバランス判定実行条件が成立していて空燃比気筒間インバランス判定(インバランス判定用のデータの取得)を実行しても良いことを示す。更に、判定許可フラグXkyokaは、その値が「0」であるとき、インバランス判定実行条件が不成立であって空燃比気筒間インバランス判定を実行してはいけないことを示す。なお、判定許可フラグXkyokaの値は、機関10が搭載された車両のイグニッション・キー・スイッチ(図示省略)がオフ位置からオン位置に切り換えられた際に実行される図示しないイニシャルルーチンにより「0」に設定されるようになっている。判定許可フラグXkyokaの値は、後述する「図20に示したルーチン」により設定される。
いま、判定許可フラグXkyokaの値が「0」であると仮定する。この場合、CPUはステップ1908にて「No」と判定してステップ1910に進み、検出空燃比変化率ΔAFの積算値SΔAFの値を「0」に設定(クリア)する。次いで、CPUはステップ1912に進んでカウンタCsの値を「0」に設定し、その後、ステップ1995に直接進んで本ルーチンを一旦終了する。
次に、判定許可フラグXkyokaの値が「1」であると仮定する。この場合、CPUはステップ1908にて「Yes」と判定し、以下に述べるステップ1914乃至ステップ1918の処理を順に行い、ステップ1920に進む。
ステップ1914:CPUはカウンタCsの値を「1」だけ増大する。カウンタCsの値は、後述するステップ1918にて「検出空燃比変化率ΔAFの積算値SΔAFに加算された検出空燃比変化率ΔAF(の絶対値)」のデータ数(個数)を表す。なお、カウンタCsは上述したイニシャルルーチンにおいて「0」に設定されるようになっている。
ステップ1916:CPUは、今回の検出空燃比abyfsから前回の検出空燃比abyfsoldを減じることによって検出空燃比変化率ΔAFを求める。
ステップ1918:CPUは、この時点における検出空燃比変化率ΔAFの積算値SΔAFに、ステップ1916にて取得した検出空燃比変化率ΔAFの絶対値(|ΔAF|)を加えることにより、積算値SΔAFを更新する。積算値SΔAFに「検出空燃比変化率ΔAFの絶対値|ΔAF|」を積算する理由は、図1の(B)及び(C)からも理解されるように、空燃比気筒間インバランス状態が発生しているとき、検出空燃比変化率ΔAFが正の値にも負の値にもなるからである。
次に、CPUはステップ1920に進み、基準気筒(本例では第1気筒)の圧縮上死点を基準としたクランク角CA(絶対クランク角CA)が720°クランク角になっているか否かを判定する。このとき、絶対クランク角CAが720°クランク角未満であると、CPUはステップ1920にて「No」と判定してステップ1995に直接進み、本ルーチンを一旦終了する。
このステップ1920は、検出空燃比変化率ΔAFの平均値を求めるための最小単位の期間を定めるステップであり、ここでは720°クランク角がその最小期間に相当する。720°クランク角は、一つの空燃比センサ55に到達する排ガスを排出している総ての気筒(本例における第1〜第4気筒)において各一回の燃焼行程が終了するのに要するクランク角である。もちろん、この最小期間は720°クランク角よりも短くてもよいが、サンプリング時間tsの複数倍の長さ以上の期間であることが望ましい。即ち、最小単位の期間内に複数個の検出空燃比変化率ΔAFが取得されるように、その最小単位の期間が定められていることが望ましい。
一方、CPUがステップ1920の処理を行う時点において、絶対クランク角CAが720°クランク角になっていると、CPUはそのステップ1920にて「Yes」と判定し、以下に述べるステップ1922乃至ステップ1930の処理を順に行い、ステップ1932に進む。
ステップ1922:CPUは、検出空燃比変化率ΔAFの積算値SΔAFをカウンタCsにより除することにより、検出空燃比変化率ΔAFの大きさ(|ΔAF|)の平均値(第1平均値)Ave1を算出する。
ステップ1924:CPUは、検出空燃比変化率ΔAFの積算値SΔAFを「0」に設定(クリア)する。
ステップ1926:CPUは、カウンタCsの値を「0」に設定(クリア)する。
ステップ1928:CPUは、第1平均値Ave1の積算値SAve1を更新する。より具体的には、CPUはその時点の「第1平均値Ave1の積算値SAve1」に、ステップ1922にて新たに取得された今回の第1平均値Ave1を加えることにより、今回の「第1平均値Ave1の積算値SAve1」を算出する。
ステップ1930:CPUは、カウンタCnの値を「1」だけ増大する。カウンタCnの値は「第1平均値Ave1の積算値SAve1」に加算された第1平均値Ave1のデータ数(個数)を表す。なお、カウンタCnは上述したイニシャルルーチンにおいて「0」に設定されるようになっている。
次に、CPUはステップ1932に進み、カウンタCnの値が閾値Cnth以上であるか否かを判定する。このとき、カウンタCnの値が閾値Cnth未満であると、CPUはそのステップ1932にて「No」と判定し、ステップ1995に直接進んで本ルーチンを一旦終了する。なお、閾値Cnthは自然数であり、2以上であることが望ましい。
一方、CPUがステップ1932の処理を行う時点において、カウンタCnの値が閾値Cnth以上であると、CPUはそのステップ1932にて「Yes」と判定してステップ1934に進み、「第1平均値Ave1の積算値SAve1」をカウンタCnの値(=Cnth)によって除することにより、第1平均値Ave1の平均値(最終平均値)Avefを算出する。この最終平均値Avefは、検出空燃比変化率ΔAFに応じた値(ΔAFに応じて変化する値、ΔAFの大きさが大きくなるほど大きくなる値)であり、第2判定装置における空燃比変化率指示量である。
次いで、CPUはステップ1936に進み、最終平均値Avef(空燃比変化率指示量)の大きさ(Avef=|Avef|)がインバランス判定用閾値ΔAF1thよりも大きいか否かを判定する。このインバランス判定用閾値ΔAF1thは、図17のブロックB1内に示されているように、吸入空気流量Gaが大きいほど大きくなるように設定されることが望ましい。
このとき、最終平均値Avefの大きさがインバランス判定用閾値ΔAF1thよりも大きいと、CPUはステップ1936にて「Yes」と判定してステップ1938に進み、インバランス発生フラグXINBの値を「1」に設定する。即ち、CPUは空燃比気筒間インバランス状態が発生していると判定する。更に、このとき、CPUは図示しない警告ランプを点灯してもよい。その後、CPUはステップ1942に進む。
これに対し、ステップ1936の処理を行う時点において、最終平均値Avefの大きさがインバランス判定用閾値ΔAF1th以下であると、CPUはステップ1936にて「No」と判定してステップ1940に進み、インバランス発生フラグXINBの値を「2」に設定する。即ち、「空燃比気筒間インバランス判定の結果、空燃比気筒間インバランス状態が発生していないと判定された旨」を記憶する。その後、CPUはステップ1942に進む。なお、ステップ1940は省略されてもよい。
CPUは、ステップ1942にて「第1平均値Ave1の積算値SAve1」を「0」に設定(クリア)する。次に、CPUは、ステップ1944にてカウンタCnの値を「0」に設定(クリア)し、ステップ1995に進んで本ルーチンを一旦終了する。
ところで、前述したように、CPUは図20にフローチャートにより示した「判定許可フラグ設定ルーチン」を所定時間(4ms)が経過する毎に実行するようになっている。従って、所定のタイミングになると、CPUは図20のステップ2000から処理を開始してステップ2010に進み、絶対クランク角CAが0°クランク角(=720°クランク角)であるか否かを判定する。
CPUがステップ2010の処理を行う時点において、絶対クランク角CAが0°クランク角でなければ、CPUはそのステップ2010にて「No」と判定してステップ2040に直接進む。
これに対し、CPUがステップ2010の処理を行う時点において、絶対クランク角CAが0°クランク角であると、CPUはそのステップ2010にて「Yes」と判定してステップ2020に進み、判定実行条件が成立しているか否かを判定する。この判定実行条件は、図17のステップ1740にて判定される条件と同一である(条件C1〜C5を参照。)。
CPUがステップ2020の処理を行う時点において、判定実行条件が成立していなければ、CPUはそのステップ2020にて「No」と判定し、ステップ2040に直接進む。
これに対し、CPUがステップ2020の処理を行う時点において、判定実行条件が成立していると、CPUはそのステップ2020にて「Yes」と判定してステップ2030に進み、判定許可フラグXkyokaの値を「1」に設定する。その後、CPUはステップ2040に進む。
CPUはステップ2040にて、上記判定実行条件が不成立であるか否かを判定する。そして、判定実行条件が不成立であると、CPUはそのステップ2040からステップ2050に進み、判定許可フラグXkyokaの値を「0」に設定し、ステップ2095に進んで本ルーチンを一旦終了する。これに対し、CPUがステップ2040の処理を行う時点において、判定実行条件が成立していれば、CPUはそのステップ2040からステップ2095へと直接進んで本ルーチンを一旦終了する。
このように、判定許可フラグXkyokaは、絶対クランク角が0°クランク角になった時点において判定実行条件が成立しているときに「1」に設定され、判定実行条件が不成立になった時点において「0」に設定される。
従って、絶対クランク角が0°クランク角になった時点において判定実行条件が成立していることにより判定許可フラグXkyokaが「1」に設定され、その後、絶対クランク角が720°クランク角に到達する前の時点において判定実行条件が不成立になると、その時点にて判定許可フラグXkyokaの値は「0」に設定される。このため、かかる状況が発生した場合、CPUは図19のステップ1908からステップ1910及びステップ1912へと進むので、それまでに蓄積されていたデータ(検出空燃比変化率ΔAFの積算値SΔAF、及び、カウンタCsの値)は破棄される。即ち、判定実行条件が「少なくともクランク角が720°回転する期間」連続して成立している場合に限り、検出空燃比変化率ΔAFの大きさ(|ΔAF|)の平均値(第1平均値Ave1)が取得される。
以上、説明したように、第2判定装置は、
検出空燃比変化率ΔAFに応じて変化する空燃比変化率指示量(本例においては、検出空燃比変化率ΔAFの大きさ|ΔAF|の平均値である最終平均値Avef)を、空燃比センサ出力Vabyfsに基づいて取得するとともに、空燃比気筒間インバランス判定を、その取得された空燃比変化率指示量に基づいて実行する(取得された空燃比変化率指示量Avefの大きさ(Avefは正であるので|Avef|と等しい。)と所定のインバランス判定用閾値ΔAF1thとを比較し、その比較の結果に基づいてインバランス判定を実行する)インバランス判定手段を、
を備えている(図19のルーチン)。
従って、第2判定装置は、第1判定装置と同様、「精度の良い空燃比気筒間インバランス判定を実行することができ、且つ、より少ない開発工数にて開発可能である。」との効果を有する。
更に、前記インバランス判定手段は、
一定のサンプリング期間(サンプリング時間ts)が経過する毎に空燃比センサ出力Vabyfsを取得するとともに、そのサンプリング期間を挟んで連続して取得された二つの前記空燃比センサ出力Vabyfsのそれぞれにより表される空燃比(即ち、今回の検出空燃比abyfs及び前回の検出空燃比abyfsold)の差ΔAFを検出空燃比変化率ΔAFとして取得し、且つ、前記サンプリング期間よりも長いデータ取得期間(720°クランク角のCnth倍の時間が経過する期間)において取得された複数の検出空燃比変化率ΔAFの大きさ|ΔAF|の平均値(最終平均値Avef)を前記空燃比変化率指示量として取得するように構成されている。
更に、第2判定装置は、複数の検出空燃比変化率の平均値(最終平均値Avef)を空燃比変化率指示量として取得し、その空燃比変化率指示量(空燃比変化率指示量の大きさ)とインバランス判定用閾値とを比較する。従って、空燃比センサ出力Vabyfs自体にノイズが重畳していたとしても、空燃比変化率指示量がそのノイズの影響を受け難いので、より精度のよいインバランス判定を実行することができる。
加えて、第2判定装置は、前記データ取得期間を、前記排気集合部に排ガスを排出する前記少なくとも2以上の気筒のうちの任意の一つの気筒が、吸気行程、圧縮行程、膨張行程及び排気行程からなる一つの燃焼サイクルを終了するのに要する期間である単位燃焼サイクル期間(本例における720°クランク角に相当する期間)の自然数Cnth倍の期間に設定している。
この結果、空燃比気筒間インバランスが発生している場合の空燃比変化率指示量(最終平均値Avef)は、空燃比気筒間インバランスが発生していない場合の空燃比変化率指示量(最終平均値Avef)よりも確実に大きい値となる。従って、第2判定装置は、より精度良く空燃比気筒間インバランス判定を実行することができる。
なお、第2判定装置は、720°クランク角毎に検出空燃比変化率ΔAFの大きさ|ΔAF|の平均値を第1平均値Ave1として求め、更に、その第1平均値Ave1のCnth個の平均を最終平均値Avef(空燃比変化率指示量)として取得しているが、720°クランク角(単位燃焼サイクル期間)の複数倍(2以上の整数倍)の期間全体において取得される検出空燃比変化率ΔAFの大きさ|ΔAF|の平均値を最終平均値Avef(空燃比変化率指示量)として採用してもよい。
<第3実施形態>
次に、本発明の第3実施形態に係る内燃機関の制御装置(以下、単に「第3判定装置」と称呼する。)について説明する。
第3装置は、検出空燃比変化率ΔAFのサンプリング期間tsよりも長いデータ取得期間において取得された複数の検出空燃比変化率ΔAFのうちその大きさ(|ΔAF|)が最大である最大検出空燃比変化率ΔAFmax又はその最大検出空燃比変化率ΔAFmaxの複数個の平均値AveΔAFmaxを、前記空燃比変化率指示量として取得し、且つ、その空燃比変化率指示量とインバランス判定用閾値ΔAF1thとを比較することによって空燃比気筒間インバランス判定を行う点のみにおいて、第1判定装置と相違している。従って、以下、この相違点を中心として説明する。
第3判定装置のCPUは、図17にフローチャートにより示したルーチンに代え、図21にフローチャートにより示した「空燃比気筒間インバランス判定ルーチン」を4ms(所定の一定サンプリング時間ts)が経過する毎に実行するようになっている。更に、第3判定装置のCPUは、図20にフローチャートにより示した「判定許可フラグ設定ルーチン」を所定時間(4ms)が経過する毎に実行するようになっている。
従って、所定のタイミングになると、CPUは図21のステップ2100から処理を開始し、ステップ2102乃至ステップ2106の処理を行う。ステップ2102、ステップ2104及びステップ2106は、図17のステップ1710、ステップ1720及びステップ1730とそれぞれ同じである。従って、サンプリング時間tsの経過毎に、空燃比センサ出力Vabyfs、前回の検出空燃比abyfsold及び今回の検出空燃比abyfsが取得される。
次に、CPUはステップ2108に進み、判定許可フラグXkyokaの値が「1」であるか否かを判定する。この判定許可フラグXkyokaの値は、第2判定装置と同様、図20に示したルーチンにより設定される。
いま、判定許可フラグXkyokaの値が「0」であると仮定する。この場合、CPUはステップ2108にて「No」と判定してステップ2110に進み、カウンタCsの値を「0」に設定(クリア)する。次いで、CPUはステップ2112に進み、検出空燃比変化率ΔAF(Cs)の総てを「0」に設定(クリア)する。この検出空燃比変化率ΔAF(Cs)は、後述するステップ2118にて、カウンタCsの値に対応して格納される検出空燃比変化率ΔAFの大きさ|ΔAF|である。その後、CPUはステップ2195に直接進んで本ルーチンを一旦終了する。
次に、判定許可フラグXkyokaの値が「1」であると仮定する。この場合、CPUはステップ2108にて「Yes」と判定し、以下に述べるステップ2114乃至ステップ2118の処理を順に行い、ステップ2120に進む。
ステップ2114:CPUはカウンタCsの値を「1」だけ増大する。なお、カウンタCsは上述したイニシャルルーチンにおいて「0」に設定されるようになっている。
ステップ2116:CPUは、今回の検出空燃比abyfsから前回の検出空燃比abyfsoldを減じることによって検出空燃比変化率ΔAFを求める。
ステップ2118:CPUは、検出空燃比変化率ΔAFの絶対値(|ΔAF|)を第Cs番目のデータΔAF(Cs)として格納する。例えば、現時点が「判定許可フラグXkyokaの値が「0」から「1」へと変更になった直後の時点」であるとすると、カウンタCsの値は「1」である(ステップ2110及びステップ2114を参照。)。従って、ステップ2116にて取得された検出空燃比変化率ΔAFの絶対値(|ΔAF|)がデータΔAF(1)として格納される。
次に、CPUはステップ2120に進み、前述した絶対クランク角CAが720°クランク角になっているか否かを判定する。このとき、絶対クランク角CAが720°クランク角未満であると、CPUはステップ2120にて「No」と判定してステップ2195に直接進み、本ルーチンを一旦終了する。以上の処理は、判定許可フラグXkyokaの値が「1」であり、絶対クランク角CAが720°クランク角に一致するまで4ms毎に繰り返し実行される。従って、ΔAF(Cs)が蓄積されていく。
このステップ2120は、検出空燃比変化率ΔAFの最大値を求めるための最小単位の期間を定めるステップであり、ここでは720°クランク角がその最小期間に相当する。720°クランク角は、一つの空燃比センサ55に到達する排ガスを排出している総ての気筒(本例における第1〜第4気筒)において各一回の燃焼行程が終了するのに要するクランク角である。換言すると、720°クランク角が経過する期間は、「空燃比センサ55に排ガスが到達する総ての気筒のうちの任意の一つの気筒が、吸気行程、圧縮行程、膨張行程及び排気行程からなる一つの燃焼サイクルを終了するのに要する期間」であり、前述した「単位燃焼サイクル期間」である。
一方、CPUがステップ2120の処理を行う時点において、絶対クランク角CAが720°クランク角になっていると、CPUはそのステップ2120にて「Yes」と判定し、以下に述べるステップ2122乃至ステップ2130の処理を順に行う。
ステップ2122:CPUは、複数のデータΔAF(Cs)の中から最大値を選択し、その最大値を最大値ΔAFmaxとして格納する。即ち、CPUは複数のデータΔAF(Cs)の中の最大値を最大値ΔAFmaxとして選択する。
ステップ2124:CPUは、複数のデータΔAF(Cs)を総て「0」に設定(クリア)する。
ステップ2126:CPUは、カウンタCsの値を「0」に設定(クリア)する。
ステップ2128:CPUは、この時点における最大値ΔAFmaxの積算値Smaxに、ステップ2122にて選択した今回の最大値ΔAFmaxを加えることにより、積算値Smaxを更新する。
ステップ2130:CPUは、カウンタCnの値を「1」だけ増大する。カウンタCnの値は「最大値ΔAFmaxの積算値Smax」に加算(積算)された最大値ΔAFmaxのデータ数(個数)を表す。なお、カウンタCnは上述したイニシャルルーチンにおいて「0」に設定されるようになっている。
次に、CPUはステップ2132に進み、カウンタCnの値が閾値Cnth以上であるか否かを判定する。このとき、カウンタCnの値が閾値Cnth未満であると、CPUはステップ2132にて「No」と判定し、ステップ2195に直接進んで本ルーチンを一旦終了する。閾値Cnthは自然数であり、2以上であることが望ましい。
一方、CPUがステップ2132の処理を行う時点において、カウンタCnの値が閾値Cnth以上であると、CPUはそのステップ2132にて「Yes」と判定してステップ2134に進み、「最大値ΔAFmaxの積算値Smax」をカウンタCnの値(=Cnth)によって除することにより、最大値ΔAFmaxの平均値(最終最大平均値)AveΔAFmaxを算出する。この最終最大平均値AveΔAFmaxは、検出空燃比変化率ΔAFに応じて変化する値(検出空燃比変化率ΔAFの大きさ|ΔAF|のうちの最大値が大きくなるほど大きくなる値)であり、第3判定装置における空燃比変化率指示量である。なお、閾値Cnthが「1」であるとき、最終最大平均値AveΔAFmaxは最大値ΔAFmaxと等しい。
次いで、CPUはステップ2136に進み、最終最大平均値AveΔAFmax(空燃比変化率指示量)の大きさがインバランス判定用閾値ΔAF1thよりも大きいか否かを判定する。このインバランス判定用閾値ΔAF1thは、図17のブロックB1内に示されているように、吸入空気流量Gaが大きいほど大きくなるように設定されることが望ましい。なお、最終最大平均値AveΔAFmaxは正の値であるので、最終最大平均値AveΔAFmaxとその大きさ|AveΔAFmax|とは等しい。
このとき、最終最大平均値AveΔAFmaxの大きさがインバランス判定用閾値ΔAF1thよりも大きいと、CPUはステップ2136にて「Yes」と判定してステップ2138に進み、インバランス発生フラグXINBの値を「1」に設定する。即ち、CPUは空燃比気筒間インバランス状態が発生していると判定する。更に、このとき、CPUは図示しない警告ランプを点灯してもよい。その後、CPUはステップ2142に進む。
これに対し、ステップ2136の処理を行う時点において、最終最大平均値AveΔAFmaxの大きさがインバランス判定用閾値ΔAF1th以下であると、CPUはステップ2136にて「No」と判定してステップ2140に進み、インバランス発生フラグXINBの値を「2」に設定する。その後、CPUはステップ2142に進む。なお、ステップ2140は省略されてもよい。
CPUは、ステップ2142にて「最大値ΔAFmaxの積算値Smax」を「0」に設定(クリア)する。次に、CPUは、ステップ2144にてカウンタCnの値を「0」に設定(クリア)し、ステップ2195に進んで本ルーチンを一旦終了する。
なお、この第3判定装置においても、判定許可フラグXkyokaは、絶対クランク角が0°クランク角になった時点において判定実行条件が成立しているときに「1」に設定され、判定実行条件が不成立になった時点において「0」に設定される。
従って、絶対クランク角が0°クランク角になった時点において判定実行条件が成立していることにより判定許可フラグXkyokaが「1」に設定され、その後、絶対クランク角が720°クランク角に到達する前の時点において判定実行条件が不成立になると、その時点にて判定許可フラグXkyokaの値は「0」に設定される。この場合、CPUは図21のステップ2108からステップ2110及びステップ2112へと進むので、それまでに蓄積されていたデータ(データΔAF(Cs)、及び、カウンタCsの値)は破棄される。即ち、判定実行条件が「少なくともクランク角が720°回転する期間」連続して成立している場合に限り、その期間に取得された検出空燃比変化率ΔAFの大きさ|ΔAF|の最大値ΔAFmaxが「最終最大平均値AveΔAFmax」を求めるためのデータとして採用される。
以上、説明したように、第3判定装置は、
検出空燃比変化率ΔAFに応じて変化する空燃比変化率指示量(本例においては、検出空燃比変化率ΔAFの大きさ|ΔAF|の最大値ΔAFmaxの平均値である最終最大平均値AveΔAFmax)を、空燃比センサ出力Vabyfsに基づいて取得するとともに、空燃比気筒間インバランス判定を、その取得された空燃比変化率指示量に基づいて実行する(取得された空燃比変化率指示量の大きさと所定のインバランス判定用閾値とを比較し、その比較の結果に基づいてインバランス判定を実行する)インバランス判定手段(図21のルーチン)を、
備える。
従って、第3判定装置は、第1判定装置と同様、「精度の良い空燃比気筒間インバランス判定を実行することができ、且つ、より少ない開発工数にて開発可能である。」との効果を有する。
更に、前記インバランス判定手段は、
一定のサンプリング期間(サンプリング時間ts)が経過する毎に空燃比センサ出力Vabyfsを取得するとともに、そのサンプリング期間を挟んで連続して取得された二つの前記空燃比センサ出力Vabyfsのそれぞれにより表される空燃比(今回の検出空燃比abyfs及び前回の検出空燃比abyfsold)の差ΔAFを検出空燃比変化率ΔAFとして取得し、且つ、前記サンプリング期間よりも長いデータ取得期間(720°クランク角が経過する期間)において取得された複数の検出空燃比変化率ΔAFのうちその大きさ|ΔAF|が最大である検出空燃比変化率に応じた値(閾値Cnthが1であれば最大値ΔAFmax、閾値Cnthが2以上であれば最終最大平均値AveΔAFmax)を前記空燃比変化率指示量として取得するように構成されている。
仮に空燃比センサ出力Vabyfsにノイズが重畳していたとしても、空燃比気筒間インバランス状態が発生している場合に取得された複数の検出空燃比変化率ΔAFの大きさ|ΔAF|のうちの最大値と、空燃比気筒間インバランス状態が発生していない場合に取得された複数の検出空燃比変化率ΔAFの大きさ|ΔAF|のうちの最大値と、は大きく相違する。従って、第3判定装置は、より精度良く空燃比気筒間インバランス判定を実行することができる。
また、前記データ取得期間は、前記排気集合部に排ガスを排出する前記少なくとも2以上の気筒のうちの任意の一つの気筒が、「吸気行程、圧縮行程、膨張行程及び排気行程からなる一つの燃焼サイクルを終了するのに要する期間」である「単位燃焼サイクル期間」、の自然数(閾値Cnth)倍の期間に定められている。
このように、「複数の検出空燃比変化率の大きさの最大値を空燃比変化率指示量」を求めるデータとして採用する場合、その最大値を取得する期間を「単位燃焼サイクル期間の自然数倍の期間(従って、単位燃焼サイクル期間よりも長い期間)」に設定すれば、空燃比気筒間インバランスが発生している場合の空燃比変化率指示量は、空燃比気筒間インバランスが発生していない場合の空燃比変化率指示量よりも確実に大きい値となる。従って、この態様は、より精度良く空燃比気筒間インバランス判定を実行することができる。
更に、第3判定装置のインバランス判定手段は、
前記単位燃焼サイクル期間よりも短い一定のサンプリング期間(サンプリング時間ts)が経過する毎に空燃比センサ出力Vabyfsを取得し、且つ、
そのサンプリング期間を挟んで連続して取得された二つの前記空燃比センサ出力Vabyfsのそれぞれにより表される空燃比(今回の検出空燃比abyfs及び前回の検出空燃比abyfsold)の差ΔAFを、検出空燃比変化率ΔAFとして取得し、更に、
前記単位燃焼サイクル期間において取得された複数の検出空燃比変化率の中からその大きさが最大である検出空燃比変化率を最大変化率(最大値)ΔAFmaxとして選択するとともに、
複数の単位燃焼サイクル期間に対して取得された前記最大変化率ΔAFmaxの平均値(最終最大平均値AveΔAFmax)を求め、
その平均値(最終最大平均値AveΔAFmax)を前記空燃比変化率指示量として取得するように構成されている(ステップ2134を参照。)。
従って、空燃比気筒間インバランス状態が発生していない場合において、ノイズ等に起因して突発的に検出空燃比変化率ΔAFの大きさ|ΔAF|が大きくなったとしても、最終最大平均値AveΔAFmaxはそれほど大きくはなならい。従って、第3判定装置は、空燃比センサ出力Vabyfsにノイズが重畳するような場合であっても、より精度良く空燃比気筒間インバランス判定を実行することができる。
<第4実施形態>
次に、本発明の第4実施形態に係る内燃機関の制御装置(以下、単に「第4判定装置」と称呼する。)について説明する。
第4装置の特徴は、次のとおりである。
・第4装置は、前記空燃比変化率指示量(例えば、検出空燃比変化率ΔAFの大きさの平均値)を、「検出空燃比変化率ΔAFが正である場合の増大変化率指示量」と「検出空燃比変化率ΔAFが負である場合の減少変化率指示量」とに区別して取得する。
・第4装置は、増大変化率指示量の大きさが減少変化率指示量の大きさよりも大きい場合には前記増大変化率指示量の大きさと前記インバランス判定用閾値としての増大変化率閾値とを比較するとともに、前記増大変化率指示量の大きさが前記増大変化率閾値よりも大きいとき、「空燃比センサ55に排ガスが到達する少なくとも2気筒のうちの一つの気筒の空燃比が理論空燃比よりもリーン側に偏移した空燃比気筒間インバランス状態」が発生したと判定する。
・第4装置は、減少変化率指示量の大きさが増大変化率指示量の大きさよりも大きい場合には前記減少変化率指示量の大きさと前記インバランス判定用閾値としての減少変化率閾値とを比較するとともに、前記減少変化率指示量の大きさが前記減少変化率閾値よりも大きいとき、「前記少なくとも2気筒のうちの一つの気筒の空燃比が理論空燃比よりもリッチ側に偏移した空燃比気筒間インバランス状態」が発生したと判定する。
以下、この特徴について詳しく説明する。
第4判定装置のCPUは、第2装置のCPUが実行するルーチンを所定のタイミングにて実行するとともに、図19に示したルーチンに代わる図22にフローチャートにより示した「データ取得ルーチン」を「4ms(所定の一定サンプリング時間ts)」が経過する毎に実行するようになっている。更に、第4判定装置のCPUは、図23にフローチャートにより示した「空燃比気筒間インバランス判定ルーチン」を所定時間(4ms)が経過する毎に実行するようになっている。
従って、所定のタイミングになると、CPUは図22のステップ2200から処理を開始し、ステップ2202乃至ステップ2206の処理を行う。ステップ2202、ステップ2204及びステップ2206は、図17のステップ1710、ステップ1720及びステップ1730とそれぞれ同じである。従って、サンプリング時間tsの経過毎に、空燃比センサ出力Vabyfs、前回の検出空燃比abyfsold及び今回の検出空燃比abyfsが取得される。
次に、CPUはステップ2208に進み、判定許可フラグXkyokaの値が「1」であるか否かを判定する。この判定許可フラグXkyokaの値は、第2判定装置と同様、図20に示したルーチンにより設定される。
いま、判定許可フラグXkyokaの値が「0」であると仮定する。この場合、CPUはステップ2208にて「No」と判定し、以下に述べるステップ2210乃至ステップ2216の処理を順に行い、ステップ2295に進んで本ルーチンを一旦終了する。
ステップ2210:CPUは、「正の検出空燃比変化率ΔAFである増大変化率ΔAFp」の積算値SΔAFpの値を「0」に設定(クリア)する。この積算値SΔAFpは、以下、「増大変化率積算値SΔAFp」とも称呼される。
ステップ2212:CPUは、カウンタCspの値を「0」に設定(クリア)する。なお、カウンタCspの値は上述したイニシャルルーチンにおいて「0」に設定されるようになっている。
ステップ2214:CPUは、「負の検出空燃比変化率ΔAFである減少変化率ΔAFm」の積算値SΔAFmの値を「0」に設定(クリア)する。この積算値SΔAFmは、以下、「減少変化率積算値SΔAFm」とも称呼される。
ステップ2216:CPUは、カウンタCsmの値を「0」に設定(クリア)する。なお、カウンタCsmの値も上述したイニシャルルーチンにおいて「0」に設定されるようになっている。
次に、判定許可フラグXkyokaの値が「1」に変更されたと仮定する。この場合、CPUはステップ2208にて「Yes」と判定してステップ2218に進み、今回の検出空燃比abyfsから前回の検出空燃比abyfsoldを減じることによって検出空燃比変化率ΔAF(=今回の検出空燃比abyfs−前回の検出空燃比abyfsold)を求める。
次に、CPUはステップ2220に進み、検出空燃比変化率ΔAFが「0」以上であるか否か(0を含む正であるか、負であるか)を判定する。
このとき、検出空燃比変化率ΔAFが「0」以上であると(即ち、検出空燃比abyfsが増大していると)、CPUはステップ2220にて「Yes」と判定してステップ2222に進み、この時点における増大変化率積算値SΔAFpに、ステップ2218にて取得した検出空燃比変化率ΔAFの絶対値(|ΔAF|)を加えることにより、増大変化率積算値SΔAFpを更新する。なお、この場合、検出空燃比変化率ΔAFは正の値であるので、この時点における増大変化率積算値SΔAFpに検出空燃比変化率ΔAFを加えることにより増大変化率積算値SΔAFpを更新してもよい。
次に、CPUはステップ2224に進み、カウンタCspの値を「1」だけ増大する。カウンタCspの値は増大変化率積算値SΔAFpに加算された検出空燃比変化率ΔAFのデータ数(個数)を表す。その後、CPUはステップ2230に進む。
一方、CPUがステップ2220の処理を行う時点において、検出空燃比変化率ΔAFが「0」よりも小さいと(即ち、検出空燃比abyfsが減少していると)、CPUはステップ2220にて「No」と判定してステップ2226に進み、この時点における減少変化率積算値SΔAFmに、ステップ2218にて取得した検出空燃比変化率ΔAFの絶対値(|ΔAF|)を加えることにより、減少変化率積算値SΔAFmを更新する。
次に、CPUはステップ2228に進み、カウンタCsmの値を「1」だけ増大する。カウンタCsmの値は減少変化率積算値SΔAFmに加算された検出空燃比変化率ΔAFのデータ数(個数)を表す。その後、CPUはステップ2230に進む。
次に、CPUはステップ2230にて、絶対クランク角CAが720°クランク角になっているか否かを判定する。このとき、絶対クランク角CAが720°クランク角未満であると、CPUはステップ2230にて「No」と判定してステップ2295に直接進み、本ルーチンを一旦終了する。
このステップ2230は、増大変化率ΔAFpの平均値(平均増大変化率Avep)及び減少変化率ΔAFmの平均値(平均減少変化率Avem)を求めるための最小単位の期間を定めるステップであり、ここでは720°クランク角(単位燃焼サイクル期間)がその最小期間に相当する。
一方、CPUがステップ2230の処理を行う時点において、絶対クランク角CAが720°クランク角になっていると、CPUはそのステップ2230にて「Yes」と判定し、以下に述べるステップ2232乃至ステップ2244の処理を順に行い、ステップ2246に進む。
ステップ2232:CPUは、増大変化率積算値SΔAFpをカウンタCspにより除することにより、増大変化率ΔAFpの平均値(平均増大変化率Avep)を算出する。
ステップ2234:CPUは、増大変化率積算値SΔAFp及びカウンタCspを共に「0」に設定(クリア)する。
ステップ2236:CPUは、平均増大変化率Avepの積算値SAvepを更新する。より具体的には、CPUはその時点の「平均増大変化率Avepの積算値SAvep」に、ステップ2232にて新たに取得された今回の平均増大変化率Avepを加えることにより、今回の「平均増大変化率Avepの積算値SAvep」を算出する。
ステップ2238:CPUは、減少変化率積算値SΔAFmをカウンタCsmにより除することにより、減少変化率ΔAFmの平均値(平均減少変化率Avem)を算出する。
ステップ2240:CPUは、減少変化率積算値SΔAFm及びカウンタCsmを共に「0」に設定(クリア)する。
ステップ2242:CPUは、平均減少変化率Avemの積算値SAvemを更新する。より具体的には、CPUはその時点の「平均減少変化率Avemの積算値SAvem」に、ステップ2238にて新たに取得された今回の平均減少変化率Avemを加えることにより、今回の「平均減少変化率Avemの積算値SAvem」を算出する。
ステップ2244:CPUは、カウンタCnの値を「1」だけ増大する。カウンタCnの値は「積算値SAvepに加算された平均増大変化率Avepのデータの数」及び「積算値SAvemに加算された平均減少変化率Avemのデータの数」を表す。なお、カウンタCnは上述したイニシャルルーチンにおいて「0」に設定されるようになっている。
次に、CPUはステップ2246に進み、カウンタCnの値が閾値Cnth以上であるか否かを判定する。このとき、カウンタCnの値が閾値Cnth未満であると、CPUはそのステップ2246にて「No」と判定し、ステップ2295に直接進んで本ルーチンを一旦終了する。なお、閾値Cnthは自然数であり、「2」以上であることが望ましい。
一方、CPUがステップ2246の処理を行う時点において、カウンタCnの値が閾値Cnth以上であると、CPUはそのステップ2246にて「Yes」と判定し、以下に述べるステップ2248及びステップ2256の処理を順に行う。
ステップ2248:CPUは、「平均増大変化率Avepの積算値SAvep」をカウンタCnによって除することにより、平均増大変化率Avepの平均値(最終増大変化率平均値)AveΔAFpを算出する。この最終増大変化率平均値AveΔAFpは、検出空燃比変化率ΔAFが正であるときの検出空燃比変化率ΔAFに応じた値(ΔAFに応じて変化する値、ΔAFの大きさが大きくなるほど大きくなる値)である。この最終増大変化率平均値AveΔAFpは、空燃比変化率指示量の一つであり、「増大変化率指示量」とも称呼される。
ステップ2250:CPUは、「平均減少変化率Avemの積算値SAvem」をカウンタCnによって除することにより、平均減少変化率Avemの平均値(最終減少変化率平均値)AveΔAFmを算出する。この最終減少変化率平均値AveΔAFmは、検出空燃比変化率ΔAFが負であるときの検出空燃比変化率ΔAFに応じた値(ΔAFに応じて変化する値、ΔAFの大きさが大きくなるほど大きくなる値)である。この最終減少変化率平均値AveΔAFmは、空燃比変化率指示量の一つであり、「減少変化率指示量」とも称呼される。
ステップ2252:CPUは、積算値SAvepを「0」に設定(クリア)するとともに、積算値SAvemを「0」に設定(クリア)する。
ステップ2254:CPUは、カウンタCnの値を「0」に設定(クリア)する。
ステップ2256:CPUは、判定実行フラグXhanteiの値を「1」に設定する。この判定実行フラグXhanteiは、その値が「1」であるとき、空燃比気筒間インバランス判定を行うためのデータ(この場合、最終増大変化率平均値AveΔAFp及び最終減少変化率平均値AveΔAFm)の取得が完了し、それらを用いた空燃比気筒間インバランス判定を実行することが可能な状態になったことを示す。更に、判定実行フラグXhanteiの値は、後述する「図23に示したルーチン」により空燃比気筒間インバランス判定が実行された後に「0」に設定される。なお、判定実行フラグXhanteiの値は、上述したイニシャルルーチンにより「0」に設定されるようになっている。
一方、前述したように、CPUは図23にフローチャートにより示した「空燃比気筒間インバランス判定ルーチン」を所定時間(4ms)が経過する毎に実行するようになっている。従って、所定のタイミングになると、CPUは図23のステップ2300から処理を開始してステップ2305に進み、判定実行フラグXhanteiの値が「1」であるか否かを判定する。このとき、判定実行フラグXhanteiの値が「0」であれば、CPUはステップ2305にて「No」と判定し、ステップ2395に直接進んで本ルーチンを一旦終了する。
これに対し、図22のステップ2256にて判定実行フラグXhanteiの値が「1」に設定された直後の時点にてCPUがステップ2305の処理を実行すると、CPUはそのステップ2305にて「Yes」と判定してステップ2310に進み、最終減少変化率平均値AveΔAFmが最終増大変化率平均値AveΔAFp以上であるか否かを判定する。
ところで、リッチずれ又はリーンずれしている気筒の排ガスが空燃比センサ55に到達したとき、空燃比センサ出力Vabyfsは急激に変化する。従って、図1の(B)に示したように、「特定気筒(例えば、第1気筒)の空燃比のみが理論空燃比よりもリッチ側に偏移した空燃比気筒間インバランス状態(特定気筒リッチずれインバランス状態)」が発生している場合、検出空燃比変化率ΔAFの大きさ(絶対値|ΔAF|、即ち、検出空燃比abyfsの傾きの大きさ)は、検出空燃比abyfsが減少している期間において検出空燃比abyfsが増大している期間よりも大きくなる(角度α2の大きさ>角度α3の大きさ)。
逆に、図1の(C)に示したように、「特定気筒(例えば、第1気筒)の空燃比のみが理論空燃比よりもリーン側に偏移した空燃比気筒間インバランス状態(特定気筒リーンずれインバランス状態)」が発生している場合、検出空燃比変化率ΔAFの大きさは、検出空燃比abyfsが増大している期間において検出空燃比abyfsが減少している期間よりも大きくなる(角度α4の大きさ>角度α5の大きさ)。
そこで、本判定装置は、このような現象を利用して以下のように空燃比気筒間インバランス判定を行う。
いま、最終減少変化率平均値AveΔAFmが最終増大変化率平均値AveΔAFpよりも大きいと仮定する。この場合、CPUはステップ2310にて「Yes」と判定してステップ2315に進み、最終減少変化率平均値AveΔAFmがリッチずれ判定閾値Amth以上であるか否かを判定する。リッチずれ判定閾値Amthは「減少変化率閾値」とも称呼される。
このとき、最終減少変化率平均値AveΔAFmがリッチずれ判定閾値Amth以上であれば、CPUはステップ2315にて「Yes」と判定してステップ2320に進み、リッチずれインバランス発生フラグXINBRの値を「1」に設定する。即ち、CPUは「リッチずれ空燃比気筒間インバランス状態」が発生していると判定する。更に、このとき、CPUは図示しない警告ランプを点灯してもよい。この場合、点灯される警告ランプは、後述するリーンずれインバランス状態が発生していると判定された際に点灯されるランプと異なるランプであってもよく、同じランプであってもよい。
次いで、CPUはステップ2325に進んで判定実行フラグXhanteiの値を「0」に設定し、ステップ2395に進んで本ルーチンを一旦終了する。
一方、CPUがステップ2315の処理を行う時点において、最終減少変化率平均値AveΔAFmがリッチずれ判定閾値Amth未満であると、CPUはそのステップ2315にて「No」と判定し、ステップ2330にてリッチずれインバランス発生フラグXINBRの値を「2」に設定する。次に、CPUはステップ2335にてリーンずれインバランス発生フラグXINBLの値を「2」に設定し、ステップ2325を経由してステップ2395に進む。なお、リッチずれインバランス発生フラグXINBRの値が「2」であることは、インバランス判定の結果、リッチずれ空燃比気筒間インバランス状態は発生していないことを示す。同様に、リーンずれインバランス発生フラグXINBLの値が「2」であることは、インバランス判定の結果、リーンずれ空燃比気筒間インバランス状態は発生していないことを示す。また、ステップ2330及びステップ2335は省略されてもよい。
更に、CPUがステップ2310の処理を行う時点において、最終減少変化率平均値AveΔAFmが最終増大変化率平均値AveΔAFpよりも小さいと、CPUはそのステップ2310にて「No」と判定してステップ2340に進む。そして、CPUはステップ2340にて最終増大変化率平均値AveΔAFpがリーンずれ判定閾値Apth以上であるか否かを判定する。リーンずれ判定閾値Apthは「増大変化率閾値」とも称呼される。
このとき、最終増大変化率平均値AveΔAFpがリーンずれ判定閾値Apth以上であれば、CPUはステップ2340にて「Yes」と判定してステップ2345に進み、リーンずれインバランス発生フラグXINBLの値を「1」に設定する。即ち、CPUは「リーンずれ空燃比気筒間インバランス状態」が発生していると判定する。更に、このとき、CPUは図示しない警告ランプを点灯してもよい。この場合、点灯される警告ランプは、リッチずれインバランス状態が発生していると判定された際に点灯されるランプと異なるランプであってもよく、同じランプであってもよい。
次いで、CPUはステップ2325に進んで判定実行フラグXhanteiの値を「0」に設定し、ステップ2395に進んで本ルーチンを一旦終了する。
一方、CPUがステップ2340の処理を行う時点において、最終増大変化率平均値AveΔAFpがリーンずれ判定閾値Apth未満であると、CPUはそのステップ2340にて「No」と判定し、ステップ2330にてリッチずれインバランス発生フラグXINBRの値を「2」に設定する。次に、CPUはステップ2335にてリーンずれインバランス発生フラグXINBLの値を「2」に設定し、ステップ2325を経由してステップ2395に進む。第4判定装置は以上のようにして空燃比気筒間インバランス判定を実施する。
更に、図23に示したステップ2320において、CPUは更にリーンずれインバランス発生フラグXINBLの値を「2」に設定してもよい。同様に、ステップ2345において、CPUは更にリッチずれインバランス発生フラグXINBRの値を「2」に設定してもよい。
以上、説明したように、第4判定装置は、最終増大変化率平均値AveΔAFp及び最終減少変化率平均値AveΔAFmを空燃比変化率指示量として取得する。そして、第4判定装置は、「最終増大変化率平均値AveΔAFp(の大きさ)」と「インバランス判定用閾値としてのリーンずれ判定閾値Apth(増大変化率閾値)」を比較し、その比較の結果に基づいて前記空燃比気筒間インバランス状態(リーンずれ空燃比気筒間インバランス状態)が発生しているか否かを判定するように構成されたインバランス判定手段を備える。更に、そのインバランス判定手段は、「最終減少変化率平均値AveΔAFm(の大きさ)」と「インバランス判定用閾値としてのリッチずれ判定閾値Amth(減少変化率閾値)」を比較し、その比較の結果に基づいて前記空燃比気筒間インバランス状態(リッチずれ空燃比気筒間インバランス状態)が発生しているが否かを判定するように構成されている。
従って、第4判定装置は、第1判定装置と同様、「精度の良い空燃比気筒間インバランス判定を実行することができ、且つ、より少ない開発工数にて開発可能である。」との効果を有する。
更に、第4判定装置のインバランス判定手段は、
(1)前記空燃比変化率指示量(インバランス判定に使用されるパラメータ)を、「検出空燃比変化率ΔAFが正である場合の増大変化率指示量(即ち、最終増大変化率平均値AveΔAFp)」と「検出空燃比変化率ΔAFが負である場合の減少変化率指示量(即ち、最終減少変化率平均値AveΔAFm)」とに区別して取得し(図22のステップ2218乃至ステップ2228、及び、ステップ2230乃至ステップ2254を参照。)、
(2)増大変化率指示量(最終増大変化率平均値AveΔAFp)の大きさが減少変化率指示量(最終減少変化率平均値AveΔAFm)の大きさよりも大きい場合、「前記増大変化率指示量(最終増大変化率平均値AveΔAFp)の大きさ」と「前記インバランス判定用閾値としての増大変化率閾値(リーンずれ判定閾値Apth)」とを比較するとともに、前記増大変化率指示量の大きさが前記増大変化率閾値よりも大きいとき、一つの気筒の空燃比が理論空燃比よりもリーン側に偏移した空燃比気筒間インバランス状態(リーンずれ空燃比気筒間インバランス状態)が発生したと判定し(図23のステップ2310及びステップ2340を参照。)、
(3)減少変化率指示量(最終減少変化率平均値AveΔAFm)の大きさが増大変化率指示量(最終増大変化率平均値AveΔAFp)の大きさよりも大きい場合、「前記減少変化率指示量(最終減少変化率平均値AveΔAFm)の大きさ」と「前記インバランス判定用閾値としての減少変化率閾値(リッチずれ判定閾値Amth)」とを比較するとともに、前記減少変化率指示量の大きさが前記減少変化率閾値よりも大きいとき、一つの気筒の空燃比が理論空燃比よりもリッチ側に偏移した空燃比気筒間インバランス状態(リッチずれ空燃比気筒間インバランス状態)が発生したと判定する(図23のステップ2310及びステップ2315を参照。)、
ように構成されている。
これによれば、リッチずれ空燃比気筒間インバランス状態が発生したのか、リーンずれ空燃比気筒間インバランス状態が発生したのか、それらの双方の何れもが発生していない
のか、を区別して判定することができる。
更に、第4判定装置のインバランス判定手段は、
一定のサンプリング期間(サンプリング時間ts)が経過する毎に空燃比センサ出力Vabyfsを取得するとともに、前記サンプリング期間を挟んで連続して取得された二つの前記空燃比センサ出力のそれぞれにより表される空燃比の差(即ち、今回の検出空燃比abyfsと前回の検出空燃比abyfsoldとの差ΔAF)を検出空燃比変化率ΔAFとして取得し、且つ、前記サンプリング期間よりも長いデータ取得期間において取得された複数の検出空燃比変化率のうちの正の値を有する変化率の平均値を増大変化率指示量(即ち、最終増大変化率平均値AveΔAFp)として取得するとともに、同複数の検出空燃比変化率のうちの負の値を有する変化率の平均値を前記減少変化率指示量(即ち、最終減少変化率平均値AveΔAFm)として取得するように構成されている(図22のルーチンを参照。)。
これにより、第4判定装置は、空燃比センサ出力Vabyfsに重畳するノイズの空燃比変化率指示量(増大変化率指示量及び減少変化率指示量)への影響を低減することができるので、より精度のよい空燃比気筒間インバランス判定を実施することができる。
<第5実施形態>
次に、本発明の第5実施形態に係る内燃機関の制御装置(以下、単に「第5判定装置」と称呼する。)について説明する。
第5判定装置は、第4判定装置と同様に、最終減少変化率平均値AveΔAFm及び最終減少変化率平均値AveΔAFmを取得する。但し、第5判定装置は、最終減少変化率平均値AveΔAFmが減少変化率閾値Amth以上であり、且つ、最終増大変化率平均値AveΔAFpが増大変化率閾値Apth以上である場合に空燃比気筒間インバランス状態が発生したと判定する。
更に、第5判定装置は、空燃比気筒間インバランス状態が発生したと判定したとき、最終減少変化率平均値AveΔAFmが最終増大変化率平均値AveΔAFpよりも大きければリッチずれ空燃比気筒間インバランス状態が発生していると判定し、最終増大変化率平均値AveΔAFpが最終減少変化率平均値AveΔAFmよりも大きければリーンずれ空燃比気筒間インバランス状態が発生していると判定する。
以下、この特徴について詳しく説明する。
第5判定装置のCPUは、第4判定装置のCPUが実行するルーチン(図23に示したルーチンを除く。)を所定のタイミングにて実行するとともに、図23に示したルーチンに代わる図24にフローチャートにより示した「空燃比気筒間インバランス判定ルーチン」を所定時間(4ms)が経過する毎に実行するようになっている。
従って、CPUは第4判定装置のCPUと同様、最終増大変化率平均値AveΔAFp及び最終減少変化率平均値AveΔAFmを取得し、それらの取得が完了すると判定実行フラグXhanteiの値を「1」に設定する(図22に示したルーチンを参照。)。
一方、CPUは、所定のタイミングにて図24に示したルーチンのステップ2400から処理を開始してステップ2405に進み、判定実行フラグXhanteiの値が「1」であるか否かを判定する。従って、判定実行フラグXhanteiの値が「1」に変更されると、CPUはステップ2405にて「Yes」と判定してステップ2410に進み、最終減少変化率平均値AveΔAFmが減少変化率閾値Amth以上であるか否かを判定する。
このとき、最終減少変化率平均値AveΔAFmが減少変化率閾値Amth未満であると、CPUはステップ2410にて「No」と判定し、以下に述べるステップ2415及びステップ2425の処理を順に行い、ステップ2495に進んで本ルーチンを一旦終了する。
ステップ2415:CPUは、リッチずれインバランス発生フラグXINBRの値を「2」に設定する。即ち、CPUはリッチずれ空燃比気筒間インバランス状態が発生していないと判定する。
ステップ2420:CPUは、リーンずれインバランス発生フラグXINBLの値を「2」に設定する。即ち、CPUはリーンずれ空燃比気筒間インバランス状態が発生していないと判定する。
ステップ2425:CPUは、判定実行フラグXhanteiの値を「0」に設定する。
また、CPUがステップ2410の処理を行う時点において、最終減少変化率平均値AveΔAFmが減少変化率閾値Amth以上であると、CPUはそのステップ2410にて「Yes」と判定してステップ2430に進み、最終増大変化率平均値AveΔAFpが増大変化率閾値Apth以上であるか否かを判定する。
このとき、最終増大変化率平均値AveΔAFpが増大変化率閾値Apth未満であると、CPUはステップ2430にて「No」と判定し、上述したステップ2415乃至ステップ2425の処理を順に行い、ステップ2495に進んで本ルーチンを一旦終了する。
これに対し、CPUがステップ2430の処理を行う時点において、最終増大変化率平均値AveΔAFpが増大変化率閾値Apth以上であると、CPUはそのステップ2430にて「Yes」と判定してステップ2435に進み、最終減少変化率平均値AveΔAFmが最終増大変化率平均値AveΔAFp以上であるか否かを判定する。
そして、最終減少変化率平均値AveΔAFmが最終増大変化率平均値AveΔAFp以上であるとき、CPUはステップ2435にて「Yes」と判定してステップ2440に進み、リッチずれインバランス発生フラグXINBRの値を「1」に設定する。即ち、CPUは「リッチずれ空燃比気筒間インバランス状態」が発生していると判定する。更に、このとき、CPUは図示しない警告ランプを点灯してもよい。この場合、点灯される警告ランプは、後述するリーンずれインバランス状態が発生していると判定された際に点灯されるランプと異なるランプであってもよく、同じランプであってもよい。その後、CPUはステップ2425を経由してステップ2495に進み、本ルーチンを一旦終了する。
また、CPUがステップ2435の処理を行う時点において、最終減少変化率平均値AveΔAFmが最終増大変化率平均値AveΔAFp未満であると、CPUはステップ2435にて「No」と判定してステップ2445に進み、リーンずれインバランス発生フラグXINBLの値を「1」に設定する。即ち、CPUは「リーンずれ空燃比気筒間インバランス状態」が発生していると判定する。更に、このとき、CPUは図示しない警告ランプを点灯してもよい。この場合、点灯される警告ランプは、前述したリッチずれインバランス状態が発生していると判定された際に点灯されるランプと異なるランプであってもよく、同じランプであってもよい。その後、CPUはステップ2425を経由してステップ2495に進み、本ルーチンを一旦終了する。
なお、CPUがステップ2405の処理を行う時点において、判定実行フラグXhanteiの値が「0」であれば、CPUはそのステップ2405にて「No」と判定し、ステップ2495に直接進んで本ルーチンを一旦終了する。
また、CPUは、ステップ2440において、更にリーンずれインバランス発生フラグXINBLの値を「2」に設定してもよい。同様に、CPUは、ステップ2445において、更にリッチずれインバランス発生フラグXINBRの値を「2」に設定してもよい。更に、第5判定装置は、ステップ2435乃至ステップ2445を省略し、ステップ2430にて「Yes」と判定した際に「インバランス発生フラグXINBの値を「1」に設定するステップ」を有するルーチンを実行してもよい。加えて、この場合、ステップ2415及びステップ2420に代え、「インバランス発生フラグXINBの値を「2」に設定するステップ」を、ステップ2415の位置に設定してもよい。
以上、説明したように、第5判定装置は、第4判定装置と同様、最終増大変化率平均値AveΔAFp及び最終減少変化率平均値AveΔAFmを空燃比変化率指示量として取得する。そして、第5判定装置は、それらを用いて空燃比気筒間インバランス判定を行うインバランス判定手段を備える。
従って、第5判定装置は、第1判定装置と同様、「精度の良い空燃比気筒間インバランス判定を実行することができ、且つ、より少ない開発工数にて開発可能である。」との効果を有する。
更に、第5判定装置のインバランス判定手段は、
(1)前記空燃比変化率指示量(インバランス判定に使用されるパラメータ)を、検出空燃比変化率ΔAFが正である場合の増大変化率指示量(即ち、最終増大変化率平均値AveΔAFp)」と「検出空燃比変化率ΔAFが負である場合の減少変化率指示量(即ち、最終減少変化率平均値AveΔAFm)」とに区別して取得し(図22のステップ2218乃至2228、及び、ステップ2230乃至2254を参照。)、
(2)「増大変化率指示量(最終増大変化率平均値AveΔAFp)の大きさ」と「インバランス判定用閾値としての増大変化率閾値Apth」とを比較するとともに、「前記減少変化率指示量(最終減少変化率平均値AveΔAFm)の大きさ」と「インバランス判定用閾値としての減少変化率閾値Amth」とを比較し、
(3)増大変化率指示量の大きさが増大変化率閾値よりも大きく(AveΔAFp≧Apth)、且つ、減少変化率指示量の大きさが減少変化率閾値の大きさよりも大きい(AveΔAFm≧Amth)場合、空燃比気筒間インバランス状態が発生していると判定する、ように構成されている(図24のステップ2410及びステップ2430を参照。)。
これよれば、増大変化率閾値Apthと減少変化率閾値Amthとを異なる値に設定することができるので、より一層精度良く空燃比気筒間インバランス判定を実行することができる。例えば、リッチずれ空燃比気筒間インバランス状態が発生したか否かをより精度良く検出したい場合には減少変化率閾値Amthを増大変化率閾値Apthよりも大きく設定すればよく、リーンずれ空燃比気筒間インバランス状態が発生したか否かをより精度良く検出したい場合には増大変化率閾値Apthを減少変化率閾値Amthよりも大きく設定すればよい。勿論、増大変化率閾値Apthと減少変化率閾値Amthとは同じ値に設定されてもよく、検出したい空燃比気筒間インバランス(リーンずれ空燃比気筒間インバランス又はリッチずれ空燃比気筒間インバランス)に応じて、増大変化率閾値Apthと減少変化率閾値Amthの値を変更してもよい。
加えて、第5判定装置のインバランス判定手段は、
前記減少変化率指示量の大きさが減少変化率閾値の大きさよりも大きく(ステップ2410での「Yes」との判定を参照。)、且つ、増大変化率指示量の大きさが増大変化率閾値よりも大きい場合(ステップ2430での「Yes」との判定を参照。)、
前記増大変化率指示量の大きさ(最終増大変化率平均値AveΔAFp)が前記減少変化率指示量(最終減少変化率平均値AveΔAFm)の大きさよりも大きいときには「一つの気筒の空燃比が理論空燃比よりもリーン側に偏移した空燃比気筒間インバランス状態(リーンずれ空燃比気筒間インバランス状態)が発生したと判定し(ステップ2435及びステップ2445を参照。)、
前記減少変化率指示量の大きさ(最終減少変化率平均値AveΔAFm)が前記増大変化率指示量の大きさ(最終増大変化率平均値AveΔAFp)よりも大きいときには「一つの気筒の空燃比が理論空燃比よりもリッチ側に偏移した空燃比気筒間インバランス状態(リッチずれ空燃比気筒間インバランス状態)が発生したと判定する(ステップ2435及びステップ2440を参照。)。
従って、リッチずれ空燃比気筒間インバランス状態が発生したのか、リーンずれ空燃比気筒間インバランス状態が発生したのか、それらの双方の何れもが発生していないのか、を区別して判定することができる。
更に、第5判定装置のインバランス判定手段は、
一定のサンプリング期間(サンプリング時間ts)が経過する毎に空燃比センサ出力Vabyfsを取得するとともに、前記サンプリング期間を挟んで連続して取得された二つの前記空燃比センサ出力のそれぞれにより表される空燃比の差(即ち、今回の検出空燃比abyfsと前回の検出空燃比abyfsoldとの差ΔAF)を検出空燃比変化率ΔAFとして取得し、且つ、前記サンプリング期間よりも長いデータ取得期間において取得された複数の検出空燃比変化率のうちの正の値を有する変化率の平均値を増大変化率指示量(即ち、最終増大変化率平均値AveΔAFp)として取得するとともに、同複数の検出空燃比変化率のうちの負の値を有する変化率の平均値を前記減少変化率指示量(即ち、最終減少変化率平均値AveΔAFm)として取得するように構成されている(図22のルーチンを参照。)。
これにより、第5判定装置は、空燃比センサ出力Vabyfsに重畳するノイズの空燃比変化率指示量(増大変化率指示量及び減少変化率指示量)への影響を低減することができるので、より精度のよい空燃比気筒間インバランス判定を実施することができる。
<第6実施形態>
次に、本発明の第6実施形態に係る内燃機関の制御装置(以下、単に「第6判定装置」と称呼する。)について説明する。
第6判定装置は、第4判定装置及び第5判定装置と同様、空燃比変化率指示量を検出空燃比変化率ΔAFが正の場合と負の場合とに分けて取得する。但し、第6判定装置は、検出空燃比変化率ΔAFが正のときの検出空燃比変化率ΔAFの大きさの最大値(又は、複数の最大値の平均値)と、検出空燃比変化率ΔAFが負のときの検出空燃比変化率ΔAFの大きさの最大値(又は、複数の最大値の平均値)と、を取得し、それらを用いてインバランス判定を行う。
以下、この特徴について詳しく説明する。
第6判定装置のCPUは、第4判定装置のCPUが実行するルーチン(図22に示したルーチンを除く。)を所定のタイミングにて実行するとともに、図22に示したルーチンに代わる図25にフローチャートにより示した「データ取得ルーチン」を「4ms(所定の一定サンプリング時間ts)」が経過する毎に実行するようになっている。なお、第6装置のCPUは、図23に示した「空燃比気筒間インバランス判定ルーチン」を実行するが、これに代え、図24に示した「空燃比気筒間インバランス判定ルーチン」を実行するようになっていてもよい。
所定のタイミングになると、CPUは図25のステップ2500から処理を開始し、ステップ2502乃至ステップ2506の処理を行う。ステップ2502、ステップ2504及びステップ2506は、図17のステップ1710、ステップ1720及びステップ1730とそれぞれ同じである。従って、サンプリング時間tsの経過毎に、空燃比センサ出力Vabyfs、前回の検出空燃比abyfsold及び今回の検出空燃比abyfsが取得される。
次に、CPUはステップ2508に進み、判定許可フラグXkyokaの値が「1」であるか否かを判定する。この判定許可フラグXkyokaの値は、第2判定装置と同様、図20に示したルーチンにより設定される。
いま、判定許可フラグXkyokaの値が「0」であると仮定する。この場合、CPUはステップ2508にて「No」と判定し、以下に述べるステップ2510乃至ステップ2516の処理を順に行い、ステップ2595に進んで本ルーチンを一旦終了する。
ステップ2510:CPUは、検出空燃比変化率ΔAF(Csp)の総てを「0」に設定(クリア)する。この検出空燃比変化率ΔAFp(Csp)は、検出空燃比変化率ΔAFが正である場合、後述するステップ2524にて、カウンタCspの値に対応して格納される検出空燃比変化率ΔAFの大きさ(絶対値|ΔAF|)である。
ステップ2512:CPUは、検出空燃比変化率ΔAFm(Csm)の総てを「0」に設定(クリア)する。この検出空燃比変化率ΔAF(Csm)は、検出空燃比変化率ΔAFが負である場合、後述するステップ2528にて、カウンタCsmの値に対応して格納される検出空燃比変化率ΔAFの大きさ(絶対値|ΔAF|)である。
ステップ2514:CPUは、カウンタCspの値を「0」に設定する。カウンタCspの値は上述したイニシャルルーチンにおいて「0」に設定されるようになっている。
ステップ2516:CPUは、カウンタCsmの値を「0」に設定する。カウンタCsmの値も上述したイニシャルルーチンにおいて「0」に設定されるようになっている。
次に、判定許可フラグXkyokaの値が「1」に変更されたと仮定する。この場合、CPUはステップ2508にて「Yes」と判定してステップ2518に進み、今回の検出空燃比abyfsから前回の検出空燃比abyfsoldを減じることによって検出空燃比変化率ΔAF(=今回の検出空燃比abyfs−前回の検出空燃比abyfsold)を求める。
次に、CPUはステップ2520に進み、検出空燃比変化率ΔAFが「0」以上であるか否か(0を含む正であるか、負であるか)を判定する。
このとき、検出空燃比変化率ΔAFが「0」以上であると(即ち、検出空燃比abyfsが増大していると)、CPUはステップ2520にて「Yes」と判定してステップ2522に進み、カウンタCspの値を「1」だけ増大する。
次に、CPUは、ステップ2524に進み、検出空燃比変化率ΔAFの絶対値(|ΔAF|)を第Csp番目のデータΔAFp(Csp)として格納する。例えば、現時点が「判定許可フラグXkyokaの値が「0」から「1」へと変更になった直後であるとすると、カウンタCspの値は「1」である(ステップ2514及びステップ2522を参照。)。従って、ステップ2518にて今回取得された検出空燃比変化率ΔAFの絶対値がデータΔAFp(1)として格納される。
一方、CPUがステップ2520の処理を行う時点において、検出空燃比変化率ΔAFが「0」よりも小さいと(即ち、検出空燃比abyfsが減少していると)、CPUはステップ2520にて「No」と判定してステップ2526に進み、カウンタCsmの値を「1」だけ増大する。
次に、CPUは、ステップ2528に進み、検出空燃比変化率ΔAFの絶対値(|ΔAF|)を第Csm番目のデータΔAFm(Csm)として格納する。例えば、現時点が「判定許可フラグXkyokaの値が「0」から「1」へと変更になった直後であるとすると、カウンタCsmの値は「1」である(ステップ2516及びステップ2526を参照。)。従って、ステップ2518にて今回取得された検出空燃比変化率ΔAFの絶対値がデータΔAFm(1)として格納される。
次に、CPUはステップ2530にて、絶対クランク角CAが720°クランク角になっているか否かを判定する。このとき、絶対クランク角CAが720°クランク角未満であると、CPUはステップ2530にて「No」と判定してステップ2595に直接進み、本ルーチンを一旦終了する。
このステップ2530は、増大変化率ΔAFpの大きさの最大値ΔAFpmax及び減少変化率ΔAFmの大きさの最大値ΔAFmmaxを求めるための最小単位の期間を定めるステップであり、ここでは720°クランク角(単位燃焼サイクル期間)がその最小期間に相当する。
一方、CPUがステップ2530の処理を行う時点において、絶対クランク角CAが720°クランク角になっていると、CPUはそのステップ2530にて「Yes」と判定し、以下に述べるステップ2532乃至ステップ2548の処理を順に行い、ステップ2550に進む。
ステップ2532:CPUは、複数のデータΔAFp(Csp)の中から最大値を選択し、その最大値を増大側最大値ΔAFpmaxとして格納する。即ち、CPUは複数のデータΔAFp(Csp)の中の最大値を増大側最大値ΔAFpmaxとして選択する。
ステップ2534:CPUは、複数のデータΔAFp(Csp)を総て「0」に設定(クリア)する。
ステップ2536:CPUは、カウンタCspの値を「0」に設定(クリア)する。
ステップ2538:CPUは、この時点における増大側最大値ΔAFpmaxの積算値Spmaxに、ステップ2532にて選択した今回の増大側最大値ΔAFpmaxを加えることにより、積算値Spmaxを更新する。
ステップ2540:CPUは、複数のデータΔAFm(Csm)の中から最大値を選択し、その最大値を減少側最大値ΔAFmmaxとして格納する。即ち、CPUは複数のデータΔAFm(Csm)の中の最大値を減少側最大値ΔAFmmaxとして選択する。
ステップ2542:CPUは、複数のデータΔAFm(Csm)を総て「0」に設定(クリア)する。
ステップ2544:CPUは、カウンタCsmの値を「0」に設定(クリア)する。
ステップ2546:CPUは、この時点における減少側最大値ΔAFmmaxの積算値Smmaxに、ステップ2540にて選択した今回の減少側最大値ΔAFmmaxを加えることにより、積算値Smmaxを更新する。
ステップ2548:CPUは、カウンタCnの値を「1」だけ増大する。カウンタCnの値は「積算値Spmax及び積算値Smmax」にそれぞれ積算された増大側最大値ΔAFpmax及び減少側最大値ΔAFmmaxのデータ数(個数)を表す。なお、カウンタCnは上述したイニシャルルーチンにおいて「0」に設定されるようになっている。
次に、CPUはステップ2550に進み、カウンタCnの値が閾値Cnth以上であるか否かを判定する。このとき、カウンタCnの値が閾値Cnth未満であると、CPUはステップ2550にて「No」と判定し、ステップ2595に直接進んで本ルーチンを一旦終了する。なお、閾値Cnthは自然数であり、「2」以上であることが望ましい。
一方、CPUがステップ2550の処理を行う時点において、カウンタCnの値が閾値Cnth以上であると、CPUはそのステップ2550にて「Yes」と判定して以下に述べるステップ2552乃至ステップ2560の処理を順に行い、ステップ2595に進んで本ルーチンを一旦終了する。
ステップ2552:CPUは、「増大側最大値ΔAFpmaxの積算値Spmax」をカウンタCnによって除することにより、増大側最大値ΔAFpmaxの平均値(最終増大側最大値平均値)AveΔAFpmaxを算出する。この最終増大側最大値平均値AveΔAFpmaxは、最終増大変化率平均値AveΔAFpとして格納される。最終増大側最大値平均値AveΔAFpmaxは、検出空燃比変化率ΔAFに応じた値(ΔAFに応じて変化する値、検出空燃比変化率ΔAFが正であるときに得られた複数の検出空燃比変化率ΔAFの大きさのうちの最大値が大きくなるほど大きくなる値)であり、第6判定装置における空燃比変化率指示量である。なお、閾値Cnthが「1」であるとき、最終増大側最大値平均値AveΔAFpmaxは増大側最大値ΔAFpmaxと等しい。
ステップ2554:CPUは、「減少側最大値ΔAFmmaxの積算値Smmax」をカウンタCnによって除することにより、減少側最大値ΔAFmmaxの平均値(最終減少側最大値平均値)AveΔAFmmaxを算出する。この最終減少側最大値平均値AveΔAFmmaxは、最終減少変化率平均値AveΔAFmとして格納される。最終減少側最大値平均値AveΔAFmmaxは、検出空燃比変化率ΔAFに応じた値(ΔAFに応じて変化する値、検出空燃比変化率ΔAFが負であるときに得られた複数の検出空燃比変化率ΔAFの大きさのうちの最大値が大きくなるほど大きくなる値)であり、第6判定装置における空燃比変化率指示量である。なお、閾値Cnthが「1」であるとき、最終減少側最大値平均値AveΔAFmmaxは減少側最大値ΔAFmmaxと等しい。
ステップ2556:CPUは、「増大側最大値ΔAFpmaxの積算値Spmax」を「0」に設定(クリア)し、且つ、「減少側最大値ΔAFmmaxの積算値Smmax」を「0」に設定(クリア)する。
ステップ2558:CPUは、カウンタCnの値を「0」に設定(クリア)する。
ステップ2560:CPUは、判定実行フラグXhanteiの値を「1」に設定する。なお、判定実行フラグXhanteiの値は、前述した「図23又は図24に示したルーチン」により空燃比気筒間インバランス判定が実行された後に「0」に設定される。更に、判定実行フラグXhanteiの値は、上述したイニシャルルーチンにより「0」に設定されるようになっている。
以上の処理により、最終増大側最大値平均値AveΔAFpmaxが最終増大変化率平均値AveΔAFpとして取得され、最終減少側最大値平均値AveΔAFmmaxが最終減少変化率平均値AveΔAFmとして取得され、且つ、判定実行フラグXhanteiの値が「1」に設定される。従って、CPUは図23のステップ2305に進んだとき、そのステップ2305にて「Yes」と判定し、ステップ2310以降の処理を「このように取得された最終増大変化率平均値AveΔAFp及び最終減少変化率平均値AveΔAFm」に基づいて行う。この結果、空燃比気筒間インバランス判定が実行される。
なお、上述したように、図25のステップ2550における閾値Cnthは、「1」であってもよい。この場合、最終増大側最大値平均値AveΔAFpmax(最終増大変化率平均値AveΔAFp)は「ステップ2532にて取得された増大側最大値ΔAFpmax」となり、最終減少側最大値平均値AveΔAFmmax(最終減少変化率平均値AveΔAFm)は「ステップ2528にて取得された減少側最大値ΔAFmmax」となる。
また、上述したように、第6判定装置のCPUは、図23に代え、図24に示した空燃比気筒間インバランス判定ルーチンを実行してもよい。
このように、第6判定装置は、
(1)一定のサンプリング期間(サンプリング時間ts)が経過する毎に空燃比センサ出力Vabyfsを取得するとともに、前記サンプリング期間を挟んで連続して取得された二つの前記空燃比センサ出力Vabyfsのそれぞれにより表される空燃比の差(即ち、今回の検出空燃比abyfsと前回の検出空燃比abyfsoldとの差ΔAF)を検出空燃比変化率ΔAFとして取得し、且つ、
(2)前記サンプリング期間よりも長いデータ取得期間において取得された複数の検出空燃比変化率のうちの正の値を有する変化率(ΔAFp(Csp))の中からその大きさが最大である検出空燃比変化率に応じた値を前記増大変化率指示量(即ち、最終増大側最大値平均値AveΔAFpmax=最終増大変化率平均値AveΔAFp)として取得するとともに(図25のステップ2520乃至ステップ2560を参照。)、同複数の検出空燃比変化率のうちの負の値を有する変化率(ΔAFm(Csm))の中からその大きさが最大である検出空燃比変化率に応じた値を前記減少変化率指示量(即ち、最終減少側最大値平均値AveΔAFmmax=最終減少変化率平均値AveΔAFm)として取得する、
ように構成されたインバランス判定手段を備える。
これによれば、空燃比気筒間インバランスが発生しているときに取得される「増大変化率指示量(最終増大側最大値平均値AveΔAFpmax)及び減少変化率指示量(最終減少側最大値平均値AveΔAFmmax)」の大きさが、空燃比気筒間インバランスが発生していないときに取得される「増大変化率指示量及び減少変化率指示量」の大きさのそれぞれより大きくなるように、増大変化率指示量及び減少変化率指示量を取得できる可能性が高まる。従って、精度のよい空燃比気筒間インバランス判定を実施することができる。
更に、前記データ取得期間は、「前記排気集合部に排ガスを排出する前記少なくとも2以上の気筒のうちの任意の一つの気筒が、吸気行程、圧縮行程、膨張行程及び排気行程からなる一つの燃焼サイクルを終了するのに要する期間」である単位燃焼サイクル期間、の自然数Cnth倍の期間に定められている(図25のステップ2550を参照。)。
このように、「正の値を有する複数の検出空燃比変化率の最大値を取得する期間」及び「負の値を有する複数の検出空燃比変化率の最大値を取得する期間」を「単位燃焼サイクル期間の自然数倍の期間」に設定すれば、空燃比気筒間インバランスが発生している場合の空燃比変化率指示量(増大変化率指示量及び減少変化率指示量)は、空燃比気筒間インバランスが発生していない場合の空燃比変化率指示量よりも確実に大きい値となる。従って、本判定装置は、より精度良く空燃比気筒間インバランス判定を実行することができる。
更に、本判定装置のインバランス判定手段は、
前記単位燃焼サイクル期間において取得された複数の前記検出空燃比変化率のうちの正の値を有する変化率(ΔAFp(Csp))の中からその大きさが最大である検出空燃比変化率を増大変化率最大値(ΔAFpmax)として選択するとともに複数の前記単位燃焼サイクル期間のそれぞれに対して選択された(複数の)前記増大変化率最大値の平均値(AveΔAFpmax)を求め、その平均値を前記増大変化率指示量(最終増大変化率平均値AveΔAFp)として取得し、且つ、
前記単位燃焼サイクル期間において取得された複数の前記検出空燃比変化率のうちの負の値を有する変化率(ΔAFm(Csm))の中からその大きさが最大である検出空燃比変化率を減少変化率最大値(ΔAFmmax)として選択するとともに複数の前記単位燃焼サイクル期間に対してそれぞれ選択された(複数の)前記減少変化率最大値の平均値(AveΔAFmmax)を求め、同平均値を前記減少変化率指示量(最終減少変化率平均値AveΔAFm)として取得する、
ように構成されている(図25のルーチンを参照。)。
従って、本判定装置は、空燃比センサ出力に重畳するノイズの空燃比変化率指示量(増大変化率指示量及び減少変化率指示量)への影響を低減することができるので、より精度のよい空燃比気筒間インバランス判定を実施することができる。
<第7実施形態>
次に、本発明の第7実施形態に係る内燃機関の制御装置(以下、単に「第7判定装置」と称呼する。)について説明する。
第7判定装置は、第4判定装置乃至第6判定装置と同様、空燃比変化率指示量を検出空燃比変化率ΔAFが正の場合と負の場合とに分けて取得する。
更に、第7判定装置は、前記検出空燃比変化率が正である場合の前記検出空燃比変化率の大きさに対応した値である増大変化率指示量を「前記空燃比変化率指示量」として採用し、
前記検出空燃比変化率が負である場合の前記検出空燃比変化率の大きさに対応した値である減少変化率指示量を「前記インバランス判定用閾値」として採用する。
そして、第7判定装置は、他の判定装置と同様、空燃比変化率指示量の大きさとインバランス判定用閾値との比較に基づいて空燃比気筒間インバランス判定を実行する。
なお、第7判定装置は、
前記検出空燃比変化率が負である場合の前記検出空燃比変化率の大きさに対応した値である減少変化率指示量を「前記空燃比変化率指示量」として採用し、
前記検出空燃比変化率が正である場合の前記検出空燃比変化率の大きさに対応した値である増大変化率指示量を「前記インバランス判定用閾値」として採用してもよい。
以下、この特徴について詳しく説明する。
第7判定装置のCPUは、第4判定装置のCPUが実行するルーチン(図23に示したルーチンを除く。)を所定のタイミングにて実行するとともに、図23に示したルーチンに代わる図26にフローチャートにより示した「空燃比気筒間インバランス判定ルーチン」を「4ms(所定の一定サンプリング時間ts)」が経過する毎に実行するようになっている。
従って、CPUは、所定のタイミングにて図26に示したルーチンのステップ2600から処理を開始してステップ2605に進み、判定実行フラグXhanteiの値が「1」であるか否かを判定し、判定実行フラグXhanteiの値が「1」でなければステップ2695に直接進んで本ルーチンを一旦終了する処理を繰り返し実行している。
従って、判定実行フラグXhanteiの値が「1」に変更されると、CPUはステップ2605にて「Yes」と判定してステップ2610に進み、「前記空燃比変化率指示量としての最終増大変化率平均値AveΔAFpの大きさ」と「前記インバランス判定用閾値としての最終減少変化率平均値AveΔAFm」との差の大きさ(絶対値)が、閾値Sath以上であるか否かを判定する。
ところで、図1の(A)に示したように、空燃比気筒間インバランス状態が発生していなければ、検出空燃比変化率ΔAFは正及び負の両方の値をとるが、それらの絶対値の差は極めて小さい。そこで、最終増大変化率平均値AveΔAFpと最終減少変化率平均値AveΔAFmとの差の大きさ(絶対値)が、閾値Sath未満であると、CPUはステップ2610にて「No」と判定し、以下に述べるステップ2615乃至ステップ2630の処理を順に行い、ステップ2695に進んで本ルーチンを一旦終了する。
ステップ2615:CPUは、インバランス発生フラグXINBの値を「2」に設定する。即ち、CPUは空燃比気筒間インバランス状態が発生していないと判定する。
ステップ2620:CPUは、リッチずれインバランス発生フラグXINBRの値を「2」に設定する。即ち、CPUはリッチずれ空燃比気筒間インバランス状態が発生していないと判定する。
ステップ2625:CPUは、リーンずれインバランス発生フラグXINBLの値を「2」に設定する。即ち、CPUはリーンずれ空燃比気筒間インバランス状態が発生していないと判定する。
ステップ2630:CPUは、判定実行フラグXhanteiの値を「0」に設定する。
一方、リッチずれインバランス状態が発生していると仮定する。この場合、図1の(B)に示したように、最終増大変化率平均値AveΔAFpと最終減少変化率平均値AveΔAFmとの差の大きさ(絶対値)は比較的大きくなる。更に、最終減少変化率平均値AveΔAFmの大きさ(角度α2の大きさ)は、最終増大変化率平均値AveΔAFpの大きさ(角度α3の大きさ)よりも大きくなる。
そこで、CPUがステップ2610の処理を行う時点において、最終増大変化率平均値AveΔAFpと最終減少変化率平均値AveΔAFmとの差の大きさ(絶対値)が、閾値Sath以上であると、CPUはそのステップ2610にて「Yes」と判定してステップ2635に進み、インバランス発生フラグXINBの値を「1」に設定する。即ち、CPUは、空燃比気筒間インバランス状態が発生したと判定する。更に、このとき、CPUは図示しない警告ランプを点灯してもよい。
次に、CPUは、ステップ2640に進み、最終減少変化率平均値AveΔAFmが最終増大変化率平均値AveΔAFp以上であるか否かを判定する。前述の仮定(リッチずれ空燃比気筒間インバランス状態が発生している)に従えば、最終減少変化率平均値AveΔAFmは最終増大変化率平均値AveΔAFpよりも大きくなる。従って、CPUはステップ2640にて「Yes」と判定してステップ2645に進み、リッチずれインバランス発生フラグXINBRの値を「1」に設定する。即ち、CPUは「リッチずれ空燃比気筒間インバランス状態」が発生していると判定する。更に、このとき、CPUは図示しないリッチずれ用の警告ランプを点灯してもよい。加えて、CPUは、リーンずれインバランス発生フラグXINBLの値を「2」に設定してもよい。
その後、CPUはステップ2630にて判定実行フラグXhanteiの値を「0」に設定し、ステップ2695に進んで本ルーチンを一旦終了する。
他方、リーンずれインバランス状態が発生していると仮定する。この場合、図1の(C)に示したように、最終増大変化率平均値AveΔAFpと最終減少変化率平均値AveΔAFmとの差の大きさ(絶対値)は比較的大きくなる。更に、最終増大変化率平均値AveΔAFpの大きさ(角度α4の大きさ)は、最終減少変化率平均値AveΔAFmの大きさ(角度α5の大きさ)よりも大きくなる。
この場合、最終増大変化率平均値AveΔAFpと最終減少変化率平均値AveΔAFmとの差の大きさ(絶対値)は閾値Sath以上となるので、CPUがステップ2610に進んだとき、CPUはそのステップ2610にて「Yes」と判定してステップ2635に進み、インバランス発生フラグXINBの値を「1」に設定する。
更に、この場合、最終減少変化率平均値AveΔAFmは最終増大変化率平均値AveΔAFpよりも小さくなる。従って、CPUはステップ2640にて「No」と判定してステップ2650に進み、リーンずれインバランス発生フラグXINBLの値を「1」に設定する。即ち、CPUは「リーンずれ空燃比気筒間インバランス状態」が発生していると判定する。更に、このとき、CPUは図示しないリーンずれ用の警告ランプを点灯してもよい。加えて、CPUは、リッチずれインバランス発生フラグXINBRの値を「2」に設定してもよい。
その後、CPUはステップ2630にて判定実行フラグXhanteiの値を「0」に設定し、ステップ2695に進んで本ルーチンを一旦終了する。
以上、説明したように、第7判定装置は、空燃比変化率指示量を検出空燃比変化率ΔAFが正の場合と負の場合とに分けて取得する。即ち、第7判定装置は、最終減少変化率平均値AveΔAFm及び最終増大変化率平均値AveΔAFpを取得する。
更に、第7判定装置は、検出空燃比変化率ΔAFが正である場合の検出空燃比変化率ΔAFの大きさ(|ΔAF|)に対応した値である増大変化率指示量(即ち、最終増大変化率平均値AveΔAFp)を「空燃比変化率指示量」として採用し、
検出空燃比変化率ΔAFが負である場合の検出空燃比変化率ΔAFの大きさ(|ΔAF|)に対応した値である減少変化率指示量(即ち、最終減少変化率平均値AveΔAFm)を「インバランス判定用閾値」として採用する、インバランス判定手段を備える。
そして、第7判定装置のインバランス判定手段は、他の判定装置と同様、空燃比変化率指示量(最終増大変化率平均値AveΔAFp)の大きさとインバランス判定用閾値(最終減少変化率平均値AveΔAFm)との比較に基づいて空燃比気筒間インバランス判定を実行する(図26のステップ2610を参照。)。
なお、第7判定装置のインバランス判定手段は、
検出空燃比変化率ΔAFが負である場合の検出空燃比変化率ΔAFの大きさ(|ΔAF|)に対応した値である減少変化率指示量(即ち、最終減少変化率平均値AveΔAFm)を前記空燃比変化率指示量として採用し、
検出空燃比変化率ΔAFが正である場合の検出空燃比変化率ΔAFの大きさ(|ΔAF|)に対応した値である増大変化率指示量(即ち、最終増大変化率平均値AveΔAFp)を前記インバランス判定用閾値として採用してもよい。
前述したように、リッチずれインバランス状態が発生した場合、及び、リーンずれインバランス状態が発生した場合、の何れの場合であっても、上記のように取得される増大変化率指示量(最終増大変化率平均値AveΔAFp)と減少変化率指示量(最終減少変化率平均値AveΔAFm)との差の大きさ(即ち、空燃比変化率指示量の大きさとインバランス判定用閾値との差の大きさ)は、空燃比気筒間インバランス状態が発生していない場合よりも顕著に大きくなる。
一方、蒸発燃料ガスの燃焼室への導入、EGRガスの燃焼室への導入、及び、ブローバイガスの燃焼室への導入等に起因して空燃比センサ出力Vabyfsにノイズ(外乱)が重畳する場合がある。このような場合、そのノイズは検出空燃比変化率が正の場合と負の場合とで互いに均等に重畳する。従って、前記増大変化率指示量と前記減少変化率指示量との差の大きさ(差の絶対値)は、そのノイズの影響が排除された値になる。
従って、第7判定装置は、空燃比センサ出力Vabyfsに重畳するノイズの影響を小さくした上で空燃比気筒間インバランス判定を実行することができる。
更に、第7判定装置のCPUは、図22に示したルーチンに代え、図25に示したルーチンを実行してもよい。これによれば、増大側最大値ΔAFpmaxの平均値(最終増大側最大値平均値)AveΔAFpmaxが「空燃比変化率指示量(又はインバランス判定用閾値)」として採用される。更に、これによれば、減少側最大値ΔAFmmaxの平均値(最終減少側最大値平均値)AveΔAFmmaxが「インバランス判定用閾値(又は空燃比変化率指示量)」として採用される。
更に、第7判定装置のインバランス判定手段は、
前記増大変化率指示量と前記減少変化率指示量との差の大きさ(|最終増大変化率平均値AveΔAFp−最終減少変化率平均値AveΔAFm|)が閾値Sath以上であるか否かを判定するとともに、その差の大きさが閾値Sath以上であるときに空燃比気筒間インバランス状態が発生していると判定し(ステップ2610及びステップ2635)、
前記減少変化率指示量が前記増大変化率指示量よりも大きいとき前記少なくとも2気筒のうちの一つの気筒の空燃比が理論空燃比よりもリッチ側に偏移した空燃比気筒間インバランス状態が発生したと判定し(ステップ2640及びステップ2645)、
前記増大変化率指示量が前記減少変化率指示量よりも大きいとき前記少なくとも2気筒のうちの一つの気筒の空燃比が理論空燃比よりもリーン側に偏移した空燃比気筒間インバランス状態が発生したと判定する(ステップ2640及びステップ2650)、
ように構成されている。
前述したように、特定気筒リッチずれインバランス状態が生じた場合と、特定気筒リーンずれインバランス状態が生じた場合と、において、増大変化率指示量の大きさと減少変化率指示量の大きさとの大小関係が相違する。従って、第7判定装置は、リッチずれ空燃比気筒間インバランス状態が発生したのか、リーンずれ空燃比気筒間インバランス状態が発生したのか、を区別して判定することができる。
<第8実施形態>
次に、本発明の第8実施形態に係る内燃機関の制御装置(以下、単に「第8判定装置」と称呼する。)について説明する。
第8判定装置は、第4判定装置乃至第7判定装置と同様、空燃比変化率指示量を、検出空燃比変化率ΔAFが正の場合の増大変化率指示量と、検出空燃比変化率ΔAFが負の場合の減少変化率指示量と、に分けて取得する。
但し、第8判定装置は、検出空燃比変化率ΔAFの大きさ(|ΔAF|)が有効判定閾値Yukoth以上である検出空燃比変化率ΔAFを用いて空燃比変化率指示量(増大変化率指示量及び減少変化率指示量)を取得する。
そして、第8判定装置は、図23に示したルーチンを用いて空燃比気筒間インバランス判定を実施する。但し、第8判定装置は、図24及び図26の何れかに示されたルーチンを用いて空燃比気筒間インバランス判定を実施してもよい。
以下、この特徴について説明する。
第8判定装置のCPUは、第4判定装置のCPUが実行するルーチン(図22に示したルーチンを除く。)を所定のタイミングにて実行するとともに、図22に示したルーチンに代わる図27にフローチャートにより示した「データ取得ルーチン」を「4ms(所定の一定サンプリング時間ts)」が経過する毎に実行するようになっている。更に、第8判定装置のCPUは図28に示した「データ処理ルーチン」を「4ms(所定の一定サンプリング時間ts)」が経過する毎に実行するようになっている。
従って、CPUは、所定のタイミングにて図27に示したルーチンのステップ2700から処理を開始し、ステップ2702乃至ステップ2706の処理を行う。ステップ2702、ステップ2704及びステップ2706は、図17のステップ1710、ステップ1720及びステップ1730とそれぞれ同じである。従って、サンプリング時間tsの経過毎に、空燃比センサ出力Vabyfs、前回の検出空燃比abyfsold及び今回の検出空燃比abyfsが取得される。
次に、CPUはステップ2708に進み、判定許可フラグXkyokaの値が「1」であるか否かを判定する。この判定許可フラグXkyokaの値は、第2判定装置と同様、図20に示したルーチンにより設定される。
いま、判定許可フラグXkyokaの値が「0」であると仮定する。この場合、CPUはステップ2708にて「No」と判定し、以下に述べるステップ2710乃至ステップ2716の処理を順に行い、ステップ2795に進んで本ルーチンを一旦終了する。
ステップ2710:CPUは、「正の検出空燃比変化率ΔAFである増大変化率ΔAFp」の積算値SΔAFp(増大変化率積算値SΔAFp)の値を「0」に設定(クリア)する。
ステップ2712:CPUは、カウンタCspの値の値を「0」に設定(クリア)する。なお、カウンタCspの値は上述したイニシャルルーチンにおいて「0」に設定されるようになっている。
ステップ2714:CPUは、「負の検出空燃比変化率ΔAFである減少変化率ΔAFm」の積算値SΔAFm(減少変化率積算値SΔAFm)の値を「0」に設定(クリア)する。
ステップ2716:CPUは、カウンタCsmの値を「0」に設定(クリア)する。なお、カウンタCsmの値は上述したイニシャルルーチンにおいて「0」に設定されるようになっている。
次に、判定許可フラグXkyokaの値が「1」に変更されたと仮定する。この場合、CPUはステップ2708にて「Yes」と判定してステップ2718に進み、今回の検出空燃比abyfsから前回の検出空燃比abyfsoldを減じることによって検出空燃比変化率ΔAF(=今回の検出空燃比abyfs−前回の検出空燃比abyfsold)を求める。
次に、CPUはステップ2720に進み、検出空燃比変化率ΔAFの大きさ(ΔAFの絶対値|ΔAF|)が有効判定閾値Yukoth以上であるか否かを判定する。この有効判定閾値Yukothは、気筒別空燃比が実質的に互いに一致している場合における検出空燃比変化率ΔAFの大きさ(|ΔAF|)の平均値又は最大値に、余裕代(マージン)としての所定値δを加えた値である。従って、有効判定閾値Yukothは、空燃比センサ出力Vabyfsに重畳するノイズと同程度となるように決定される。
このとき、検出空燃比変化率ΔAFの大きさ(ΔAFの絶対値|ΔAF|)が有効判定閾値Yukoth未満であると、CPUはステップ2720にて「No」と判定し、ステップ2795に直接進んで本ルーチンを一旦終了する。
これに対し、検出空燃比変化率ΔAFの大きさ(ΔAFの絶対値|ΔAF|)が有効判定閾値Yukoth以上であると、CPUはステップ2720にて「Yes」と判定してステップ2722に進み、検出空燃比変化率ΔAFが「0」以上であるか否か(0を含む正であるか、負であるか)を判定する。
このとき、検出空燃比変化率ΔAFが「0」以上であると(即ち、検出空燃比abyfsが増大していると)、CPUはステップ2722にて「Yes」と判定してステップ2724に進み、この時点における増大変化率積算値SΔAFpに、ステップ2718にて取得した検出空燃比変化率ΔAFの絶対値(|ΔAF|)を加えることにより、増大変化率積算値SΔAFpを更新する。なお、この場合、検出空燃比変化率ΔAFは正の値であるので、この時点における増大変化率積算値SΔAFpに検出空燃比変化率ΔAFを加えることにより増大変化率積算値SΔAFpを更新してもよい。
次に、CPUはステップ2726に進み、カウンタCspの値を「1」だけ増大する。カウンタCspの値は増大変化率積算値SΔAFpに積算された検出空燃比変化率ΔAFのデータ数(個数)を表す。その後、CPUはステップ2732に進む。
一方、CPUがステップ2722の処理を行う時点において、検出空燃比変化率ΔAFが「0」よりも小さいと(即ち、検出空燃比abyfsが減少していると)、CPUはステップ2722にて「No」と判定してステップ2728に進み、この時点における減少変化率積算値SΔAFmに、ステップ2718にて取得した検出空燃比変化率ΔAFの絶対値(|ΔAF|)を加えることにより、減少変化率積算値SΔAFmを更新する。
次に、CPUはステップ2730に進み、カウンタCsmの値を「1」だけ増大する。カウンタCsmの値は減少変化率積算値SΔAFmに積算された検出空燃比変化率ΔAFのデータ数(個数)を表す。その後、CPUはステップ2732に進む。
CPUはステップ2732にて、前回の検出空燃比変化率ΔAFold(本ルーチンが4ms前に実行されたときにステップ2718にて取得されるとともに後述するステップ2744にて格納された検出空燃比変化率ΔAF)が「0」以下であり、且つ、ステップ2718にて取得された今回の検出空燃比変化率ΔAFが「0」より大きいか否かを判定する。即ち、CPUはステップ2732において、検出空燃比abyfsの傾きが負から正へと変化したか否か(検出空燃比abyfsが下に凸のピークである「リッチピーク」を通過したか否か)を判定する。
このとき、前回の検出空燃比変化率ΔAFoldが「0」以下であり、且つ、今回の検出空燃比変化率ΔAFが「0」より大きいと、CPUはステップ2732にて「Yes」と判定し、以下に述べるステップ2734乃至ステップ2744の処理を順に行い、ステップ2795に進んで本ルーチンを一旦終了する。
ステップ2734:CPUは、現在の時刻tからサンプリングtsだけ前の時刻を「リッチピーク時刻tRP」として取得する。即ち、現時点において検出空燃比変化率ΔAFの値が負から正へと変化したことが確認されたので、CPUは、現在の時刻tからサンプリング時間tsだけ前の時刻にて、検出空燃比abyfsがリッチピークを迎えたと推定する。なお、CPUは、現在の時刻tにて検出空燃比abyfsがリッチピークを迎えたと推定してもよい。
ステップ2736:CPUは、減少変化率積算値SΔAFmをカウンタCsmにより除することにより、減少変化率ΔAFmの平均値(平均減少変化率Avem)を算出する。
ステップ2738:CPUは、減少変化率積算値SΔAFm及びカウンタCsmを共に「0」に設定(クリア)する。
ステップ2740:CPUは、平均減少変化率Avemの積算値SAvemを更新する。より具体的には、CPUはその時点の「平均減少変化率Avemの積算値SAvem」に、ステップ2736にて新たに取得された今回の平均減少変化率Avemを加えることにより、今回の「平均減少変化率Avemの積算値SAvem」を算出する。
ステップ2742:CPUは、カウンタNmの値を「1」だけ増大する。
ステップ2744:CPUは、ステップ2718にて取得した検出空燃比変化率ΔAFを、前回の検出空燃比変化率ΔAFoldとして格納する。その後、CPUはステップ2795に進んで、本ルーチンを一旦終了する。
一方、CPUがステップ2732の処理を行う時点において、前回の検出空燃比変化率ΔAFoldが「0」より大きいか、又は、今回の検出空燃比変化率ΔAFが「0」以下であると、CPUはそのステップ2732にて「No」と判定してステップ2746に進む。そして、CPUはステップ2746にて、「前回の検出空燃比変化率ΔAFoldが「0」以上であり、且つ、今回の検出空燃比変化率ΔAFが「0」より小さい」か否かを判定する。即ち、CPUはステップ2746において、検出空燃比abyfsの傾きが正から負へと変化したか否か(検出空燃比abyfsが上に凸のピークである「リーンピーク」を通過したか否か)を判定する。
このとき、前回の検出空燃比変化率ΔAFoldが「0」以上であり、且つ、今回の検出空燃比変化率ΔAFが「0」より小さいと、CPUはステップ2746にて「Yes」と判定し、以下に述べるステップ2748乃至ステップ2756の処理を順に行い、ステップ2744を経由してステップ2795に進む。
ステップ2748:CPUは、現在の時刻tからサンプリングtsだけ前の時刻を「リーンピーク時刻tLP」として取得する。即ち、現時点において検出空燃比変化率ΔAFの値が正から負へと変化したことが確認されたので、CPUは、現在の時刻tからサンプリング時間tsだけ前の時刻にて、検出空燃比abyfsがリーンピークを迎えたと推定する。なお、CPUは、現在の時刻tにて検出空燃比abyfsがリーンピークを迎えたと推定してもよい。
ステップ2750:CPUは、増大変化率積算値SΔAFpをカウンタCspにより除することにより、増大変化率ΔAFpの平均値(平均増大変化率Avep)を算出する。
ステップ2752:CPUは、増大変化率積算値SΔAFp及びカウンタCspを共に「0」に設定(クリア)する。
ステップ2754:CPUは、平均増大変化率Avepの積算値SAvepを更新する。より具体的には、CPUはその時点の「平均増大変化率Avepの積算値SAvep」に、ステップ2750にて新たに取得された今回の平均増大変化率Avepを加えることにより、今回の「平均増大変化率Avepの積算値SAvep」を算出する。
ステップ2756:CPUは、カウンタNpの値を「1」だけ増大する。
他方、CPUがステップ2746の処理を行う時点において、前回の検出空燃比変化率ΔAFoldが「0」より小さいか、又は、今回の検出空燃比変化率ΔAFが「0」以上であると、CPUはそのステップ2746にて「No」と判定し、ステップ2744を経由してステップ2795に進む。
このように、第8判定装置のCPUは、ステップ2732にてリッチピークを検出する。更に、CPUは、リッチピークが検出されたとき、減少変化率積算値SΔAFmをカウンタCsmにより除することにより平均減少変化率Avemを算出する(ステップ2736)とともに、減少変化率積算値SΔAFmの値及びカウンタCsmの値を共にクリア(ステップ2738)する。減少変化率積算値SΔAFmは、検出空燃比変化率ΔAFが負である場合の検出空燃比変化率ΔAFの大きさ(|ΔAF|)を積算した値である(ステップ2730)。カウンタCsmは、その減少変化率積算値SΔAFmに積算された検出空燃比変化率ΔAFのデータ数である(ステップ2730)。よって、平均減少変化率Avemは、前回のリッチピークから今回のリッチピークまでの間において負の値を有する検出空燃比変化率ΔAFの大きさの平均値となる。
同様に、CPUは、リーンピークが検出されたとき、増大変化率積算値SΔAFpをカウンタCspにより除することにより平均増大変化率Avepを算出する(ステップ2750)とともに、増大変化率積算値SΔAFpの値及びカウンタCspの値を共にクリア(ステップ2752)する。増大変化率積算値SΔAFpは、検出空燃比変化率ΔAFが正である場合の検出空燃比変化率ΔAFの大きさ(|ΔAF|)を積算した値である(ステップ2724)。カウンタCspは、その増大変化率積算値SΔAFpに積算された検出空燃比変化率ΔAFのデータ数である(ステップ2726)。よって、平均増大変化率Avepは、前回のリーンピークから今回のリーンピークまでの間において正の値を有する検出空燃比変化率ΔAFの大きさの平均値となる。
更に、CPUは、検出空燃比変化率ΔAFの大きさ(ΔAFの絶対値|ΔAF|)が有効判定閾値Yukothより小さい検出空燃比変化率ΔAF(無効データ)を、平均増大変化率Avep及び平均減少変化率Avemの算出に使用しない(ステップ2720からステップ2795へと直接進む場合を参照。)。
一方、CPUは図28にフローチャートにより示した「データ処理ルーチン」を所定時間(4ms)が経過する毎に実行するようになっている。従って、所定のタイミングになると、CPUは図28のステップ2800から処理を開始してステップ2810に進み、判定許可フラグXkyokaの値が「1」である状態の積算時間が所定時間に到達したか否かを判定する。なお、このステップにおいて、CPUは「判定許可フラグXkyokaが「1」である状態の積算クランク角が所定クランク角に到達したか否か」を判定してもよい。
このとき、判定許可フラグXkyokaの値が「1」である状態の積算時間が所定時間に到達していなければ、CPUはステップ2810にて「No」と判定し、ステップ2895に直接進んで本ルーチンを一旦終了する。
一方、CPUがステップ2810の処理を行う時点において、判定許可フラグXkyokaの値が「1」である状態の積算時間が所定時間に到達していると、CPUはそのステップ2810にて「Yes」と判定し、以下に述べるステップ2820乃至ステップ2860の処理を順に行い、ステップ2895に進んで本ルーチンを一旦終了する。
ステップ2820:CPUは、「平均増大変化率Avepの積算値SAvep」をカウンタNpによって除することにより、平均増大変化率Avepの平均値(最終増大変化率平均値)AveΔAFpを算出する。この最終増大変化率平均値AveΔAFpは、検出空燃比変化率ΔAFが正であるときの検出空燃比変化率ΔAFに応じた値(ΔAFに応じて変化する値、ΔAFの大きさが大きくなるほど大きくなる値)である。この最終増大変化率平均値AveΔAFpは、前述したように、空燃比変化率指示量の一つであり、「増大変化率指示量」とも称呼される。
ステップ2830:CPUは、「平均減少変化率Avemの積算値SAvem」をカウンタNmによって除することにより、平均減少変化率Avemの平均値(最終減少変化率平均値)AveΔAFmを算出する。この最終減少変化率平均値AveΔAFmは、検出空燃比変化率ΔAFが負であるときの検出空燃比変化率ΔAFに応じた値(ΔAFに応じて変化する値、ΔAFの大きさが大きくなるほど大きくなる値)である。この最終減少変化率平均値AveΔAFmは、前述したように、空燃比変化率指示量の一つであり、「減少変化率指示量」とも称呼される。
ステップ2840:CPUは、積算値SAvemの値を「0」に設定(クリア)するとともに、積算値SAvepの値を「0」に設定(クリア)する。
ステップ2850:CPUは、カウンタNpの値を「0」に設定(クリア)するとともに、カウンタNmの値を「0」に設定(クリア)する。
ステップ2860:CPUは、判定実行フラグXhanteiの値を「1」に設定する。
この結果、判定実行フラグXhanteiの値が「1」に変更されるので、CPUは図23に示したルーチンのステップ2310以降に進み、「図28のステップ2820にて求めた増大変化率指示量(即ち、最終増大変化率平均値AveΔAFp)」及び「図28のステップ2830にて求めた減少変化率指示量(即ち、最終減少変化率平均値AveΔAFm)」を用いた空燃比気筒間インバランス判定を実施する。
前述したように、CPUは、検出空燃比変化率ΔAFの大きさ(ΔAFの絶対値|ΔAF|)が有効判定閾値Yukothより小さい検出空燃比変化率ΔAF(無効データ)を、平均増大変化率Avep及び平均減少変化率Avemの算出に使用しない(ステップ2720からステップ2795へと直接進む場合を参照。)。従って、無効データが「増大変化率指示量(即ち、最終増大変化率平均値AveΔAFp)及び減少変化率指示量(即ち、最終減少変化率平均値AveΔAFm)の算出」に使用されない。
この結果、特別なフィルタを用いることなく、検出空燃比変化率ΔAFに重畳しているノイズの「増大変化率指示量及び減少変化率指示量への影響」を低減することができる。従って、空燃比気筒間インバランス判定をより精度良くことができる。
即ち、第8判定装置は、
一定のサンプリング期間(サンプリング時間ts)が経過する毎に空燃比センサ出力Vabyfsを取得するとともに、前記サンプリング期間を挟んで連続して取得された二つの前記空燃比センサ出力のそれぞれにより表される空燃比の差(即ち、今回の検出空燃比abyfsと前回の検出空燃比abyfsoldとの差ΔAF)を検出空燃比変化率ΔAFとして取得し、且つ、
前記取得された検出空燃比変化率ΔAFの大きさ(|ΔAF|)が所定の有効判定閾値(Yukoth)以上であるとき、その検出空燃比変化率ΔAFを、前記空燃比変化率指示量を取得するためのデータとして使用するように構成され、
前記取得された検出空燃比変化率ΔAFの大きさ(|ΔAF|)が所定の有効判定閾値(Yukoth)未満であるとき、その検出空燃比変化率ΔAFを、前記空燃比変化率指示量を取得するためのデータとして使用しないように構成されている。
これによれば、有効判定閾値Yukoth以上の大きさを有する検出空燃比変化率ΔAFが空燃比変化率指示量を取得するためのデータとして使用される。換言すると、空燃比センサ出力Vabyfsに重畳するノイズのみに起因して(即ち、気筒別空燃比の相違に起因することなく)変動する検出空燃比変化率ΔAFが、空燃比気筒間インバランス判定に用いる空燃比変化率指示量の算出用データから除外される。従って、「気筒別空燃比の不均一性の程度に精度良く応じて変化する空燃比変化率指示量」を取得することができる。その結果、特別なフィルタ処理を検出空燃比変化率に対して施すことなく、空燃比気筒間インバランス判定を精度良く行うことができる。
<第9実施形態>
次に、本発明の第9実施形態に係る内燃機関の制御装置(以下、単に「第9判定装置」と称呼する。)について説明する。
第9判定装置は、第8判定装置と同様、空燃比変化率指示量を、検出空燃比変化率ΔAFが正の場合の増大変化率指示量と、検出空燃比変化率ΔAFが負の場合の減少変化率指示量と、に分けて取得する。
更に、第9判定装置は、第8判定装置と同様、検出空燃比変化率ΔAFの大きさ(|ΔAF|)が有効判定閾値Yukoth以上である検出空燃比変化率ΔAFを用いて空燃比変化率指示量(増大変化率指示量及び減少変化率指示量)を取得する。
但し、第9判定装置は、前回のリッチピークから今回のリッチピークまでの間に得られた検出空燃比変化率ΔAFのうちの負の値を有するデータの中から、その大きさ(|ΔAF|)が最大のデータを最大値ΔAFmmaxとして選択し、その最大値ΔAFmmaxを複数取得した上で更に平均化することにより最終減少変化率平均値AveΔAFmを取得する。
同様に、第9判定装置は、前回のリーンピークから今回のリーンピークまでの間に得られた検出空燃比変化率ΔAFのうちの正の値を有するデータの中から、その大きさ(|ΔAF|)が最大のデータを最大値ΔAFpmaxとして選択し、その最大値ΔAFpmaxを複数取得した上で更に平均化することにより最終増大変化率平均値AveΔAFpを取得する。
なお、第9判定装置の空燃比気筒間インバランス判定方法は、第8判定装置の空燃比気筒間インバランス判定と同じである。即ち、第9判定装置は、図23に示したルーチンを用いて空燃比気筒間インバランス判定を実施する。但し、第9判定装置は、図24及び図26の何れかに示されたルーチンを用いて空燃比気筒間インバランス判定を実施してもよい。
以下、第9判定装置の特徴について詳しく説明する。
第9判定装置のCPUは、第4判定装置のCPUが実行するルーチン(図22に示したルーチンを除く。)を所定のタイミングにて実行するとともに、図22に示したルーチンに代わる図29にフローチャートにより示した「データ取得ルーチン」を「4ms(所定の一定サンプリング時間ts)」が経過する毎に実行するようになっている。更に、第9判定装置のCPUは図30に示した「データ処理ルーチン」を「4ms(所定の一定サンプリング時間ts)」が経過する毎に実行するようになっている。
従って、CPUは、所定のタイミングにて図29に示したルーチンのステップ2900から処理を開始し、ステップ2902乃至ステップ2906の処理を行う。ステップ2902、ステップ2904及びステップ2906は、図17のステップ1710、ステップ1720及びステップ1730とそれぞれ同じである。従って、サンプリング時間tsの経過毎に、空燃比センサ出力Vabyfs、前回の検出空燃比abyfsold及び今回の検出空燃比abyfsが取得される。
次に、CPUはステップ2908に進み、判定許可フラグXkyokaの値が「1」であるか否かを判定する。この判定許可フラグXkyokaの値は、第2判定装置と同様、図20に示したルーチンにより設定される。
いま、判定許可フラグXkyokaの値が「0」であると仮定する。この場合、CPUはステップ2908にて「No」と判定し、以下に述べるステップ2910乃至ステップ2916の処理を順に行い、ステップ2995に進んで本ルーチンを一旦終了する。
ステップ2910:CPUは、検出空燃比変化率ΔAF(Csp)の総てを「0」に設定(クリア)する。この検出空燃比変化率ΔAFp(Csp)は、検出空燃比変化率ΔAFが正である場合、後述するステップ2926にて、カウンタCspの値に対応して格納される検出空燃比変化率ΔAFの大きさ(絶対値|ΔAF|)である。
ステップ2912:CPUは、検出空燃比変化率ΔAFm(Csm)の総てを「0」に設定(クリア)する。この検出空燃比変化率ΔAF(Csm)は、検出空燃比変化率ΔAFが負である場合、後述するステップ2930にて、カウンタCsmの値に対応して格納される検出空燃比変化率ΔAFの大きさ(絶対値|ΔAF|)である。
ステップ2914:CPUは、カウンタCspの値の値を「0」に設定(クリア)する。なお、カウンタCspの値は上述したイニシャルルーチンにおいて「0」に設定されるようになっている。
ステップ2916:CPUは、カウンタCsmの値を「0」に設定(クリア)する。なお、カウンタCsmの値は上述したイニシャルルーチンにおいて「0」に設定されるようになっている。
次に、判定許可フラグXkyokaの値が「1」に変更されたと仮定する。この場合、CPUはステップ2908にて「Yes」と判定してステップ2918に進み、今回の検出空燃比abyfsから前回の検出空燃比abyfsoldを減じることによって検出空燃比変化率ΔAF(=今回の検出空燃比abyfs−前回の検出空燃比abyfsold)を求める。
次に、CPUはステップ2920に進み、検出空燃比変化率ΔAFの大きさ(ΔAFの絶対値|ΔAF|)が有効判定閾値Yukoth以上であるか否かを判定する。この有効判定閾値Yukothは、気筒別空燃比が実質的に互いに完全一致している場合における検出空燃比変化率ΔAFの大きさ(|ΔAF|)の平均値又は最大値に、余裕代(マージン)としての所定値δを加えた値である。従って、有効判定閾値Yukothは、空燃比センサ出力Vabyfsに重畳するノイズと同程度となるように決定される。
このとき、検出空燃比変化率ΔAFの大きさ(ΔAFの絶対値|ΔAF|)が有効判定閾値Yukoth未満であると、CPUはステップ2920にて「No」と判定し、ステップ2995に直接進んで本ルーチンを一旦終了する。
これに対し、検出空燃比変化率ΔAFの大きさ(ΔAFの絶対値|ΔAF|)が有効判定閾値Yukoth以上であると、CPUはステップ2920にて「Yes」と判定してステップ2922に進み、検出空燃比変化率ΔAFが「0」以上であるか否か(0を含む正であるか、負であるか)を判定する。
このとき、検出空燃比変化率ΔAFが「0」以上であると(即ち、検出空燃比abyfsが増大していると)、CPUはステップ2922にて「Yes」と判定してステップ2924に進み、カウンタCspの値を「1」だけ増大する。
次に、CPUは、ステップ2926に進み、検出空燃比変化率ΔAFの絶対値(|ΔAF|)を第Csp番目のデータΔAFp(Csp)として格納する。例えば、現時点が「判定許可フラグXkyokaの値が「0」から「1」へと変更になった直後であるとすると、カウンタCspの値は「1」である(ステップ2914及びステップ2924を参照。)。従って、ステップ2918にて取得された検出空燃比変化率ΔAFの絶対値|ΔAF|がデータΔAFp(1)として格納される。その後、CPUはステップ2932に進む。
一方、CPUがステップ2922の処理を行う時点において、検出空燃比変化率ΔAFが「0」よりも小さいと(即ち、検出空燃比abyfsが減少していると)、CPUはステップ2922にて「No」と判定してステップ2928に進み、カウンタCsmの値を「1」だけ増大する。
次に、CPUは、ステップ2930に進み、検出空燃比変化率ΔAFの絶対値(|ΔAF|)を第Csm番目のデータΔAFm(Csm)として格納する。例えば、現時点が「判定許可フラグXkyokaの値が「0」から「1」へと変更になった直後であるとすると、カウンタCsmの値は「1」である(ステップ2916及びステップ2928を参照。)。従って、ステップ2918にて取得された検出空燃比変化率ΔAFの絶対値|ΔAF|がデータΔAFm(1)として格納される。その後、CPUはステップ2932に進む。
CPUはステップ2932にて、前回の検出空燃比変化率ΔAFold(本ルーチンが4ms前に実行されたときにステップ2918にて取得されるとともに後述するステップ2946にて格納された検出空燃比変化率ΔAF)が「0」以下であり、且つ、ステップ2918にて取得された今回の検出空燃比変化率ΔAFが「0」より大きいか否かを判定する。即ち、CPUはステップ2932において、検出空燃比abyfsの傾きが負から正へと変化したか否か(検出空燃比abyfsが下に凸のピークである「リッチピーク」を通過したか否か)を判定する。
このとき、前回の検出空燃比変化率ΔAFoldが「0」以下であり、且つ、今回の検出空燃比変化率ΔAFが「0」より大きいと、CPUはステップ2932にて「Yes」と判定し、以下に述べるステップ2934乃至ステップ2946の処理を順に行い、ステップ2995に進んで本ルーチンを一旦終了する。
ステップ2934:CPUは、現在の時刻tからサンプリングtsだけ前の時刻を「リッチピーク時刻tRP」として取得する。即ち、現時点において検出空燃比変化率ΔAFの値が負から正へと変更したことが確認されたので、CPUは、現在の時刻tからサンプリングtsだけ前の時刻にて、検出空燃比abyfsがリッチピークを迎えたと推定する。なお、CPUは、現在の時刻tを「リッチピーク時刻tRP」として取得してもよい。
ステップ2936:CPUは、複数のデータΔAFm(Csm)の中から最大値を選択し、その最大値を減少側最大値ΔAFmmaxとして格納する。即ち、CPUは複数のデータΔAFm(Csm)の中の最大値を減少側最大値ΔAFmmaxとして選択する。
ステップ2938:CPUは、複数のデータΔAFm(Csm)を総て「0」に設定(クリア)する。
ステップ2940:CPUは、カウンタCsmの値を「0」に設定(クリア)する。
ステップ2942:CPUは、この時点における減少側最大値ΔAFmmaxの積算値Smmaxに、ステップ2936にて選択した今回の減少側最大値ΔAFmmaxを加えることにより、積算値Smmaxを更新する。
ステップ2944:CPUは、カウンタNmの値を「1」だけ増大する。
ステップ2946:CPUは、ステップ2918にて取得した検出空燃比変化率ΔAFを、前回の検出空燃比変化率ΔAFoldとして格納する。
一方、CPUがステップ2932の処理を行う時点において、前回の検出空燃比変化率ΔAFoldが「0」より大きいか、又は、今回の検出空燃比変化率ΔAFが「0」以下であると、CPUはそのステップ2932にて「No」と判定してステップ2948に進む。そして、CPUはステップ2948にて、「前回の検出空燃比変化率ΔAFoldが「0」以上であり、且つ、今回の検出空燃比変化率ΔAFが「0」より小さい」か否かを判定する。即ち、CPUはステップ2948において、検出空燃比abyfsの傾きが正から負へと変化したか否か(検出空燃比abyfsが上に凸のピークである「リーンピーク」を通過したか否か)を判定する。
このとき、前回の検出空燃比変化率ΔAFoldが「0」以上であり、且つ、今回の検出空燃比変化率ΔAFが「0」より小さいと、CPUはステップ2948にて「Yes」と判定し、以下に述べるステップ2950乃至ステップ2960の処理を順に行い、ステップ2946を経由してステップ2995に進む。
ステップ2950:CPUは、現在の時刻tからサンプリングtsだけ前の時刻を「リーンピーク時刻tLP」として取得する。即ち、現時点において検出空燃比変化率ΔAFの値が正から負へと変更したことが確認されたので、CPUは、現在の時刻tからサンプリングtsだけ前の時刻にて、検出空燃比abyfsがリーンピークを迎えたと推定する。なお、CPUは、現在の時刻tを「リーンピーク時刻tLP」として取得してもよい。
ステップ2952:CPUは、複数のデータΔAFp(Csp)の中から最大値を選択し、その最大値を増大側最大値ΔAFpmaxとして格納する。即ち、CPUは複数のデータΔAFp(Csp)の中の最大値を増大側最大値ΔAFpmaxとして選択する。
ステップ2954:CPUは、複数のデータΔAFp(Csp)を総て「0」に設定(クリア)する。
ステップ2956:CPUは、カウンタCspの値を「0」に設定(クリア)する。
ステップ2958:CPUは、この時点における増大側最大値ΔAFpmaxの積算値Spmaxに、ステップ2952にて選択した今回の増大側最大値ΔAFpmaxを加えることにより、積算値Spmaxを更新する。
ステップ2960:CPUは、カウンタNpの値を「1」だけ増大する。
このように、第9判定装置のCPUは、ステップ2932にてリッチピークを検出する。更に、CPUは、リッチピークが検出されたとき、前回のリッチピークから今回のリッチピークまでの間において負の値を有する検出空燃比変化率ΔAFの中から、その大きさ(|ΔAF|)が最大の値を選択し、その最大値を減少側最大値ΔAFmmaxとして格納する。即ち、CPUは、前回のリッチピークから今回のリッチピークまでの間に取得された複数のデータΔAFm(Csm)の中の最大値を減少側最大値ΔAFmmaxとして選択する(ステップ2936)。
同様に、CPUは、ステップ2948にてリーンピークを検出する。更に、CPUは、リーンピークが検出されたとき、前回のリーンピークから今回のリーンピークまでの間において正の値を有する検出空燃比変化率ΔAFの中から、その大きさ(|ΔAF|)が最大の値を選択し、その最大値を増大側最大値ΔAFpmaxとして格納する。即ち、CPUは、前回のリーンピークから今回のリーンピークまでの間に取得された複数のデータΔAFp(Csp)の中の最大値を増大側最大値ΔAFpmaxとして選択する(ステップ2952)。
更に、CPUは、検出空燃比変化率ΔAFの大きさ(ΔAFの絶対値|ΔAF|)が有効判定閾値Yukothより小さい検出空燃比変化率ΔAF(無効データ)を、増大側最大値ΔAFpmax及び減少側最大値ΔAFmmaxのデータとしては使用しない(ステップ2920からステップ2995へと直接進む場合を参照。)。
一方、CPUは図30にフローチャートにより示した「データ処理ルーチン」を所定時間(4ms)が経過する毎に実行するようになっている。従って、所定のタイミングになると、CPUは図30のステップ3000から処理を開始してステップ3010に進み、判定許可フラグXkyokaの値が「1」である状態の積算時間が所定時間に到達したか否かを判定する。なお、このステップにおいて、CPUは「判定許可フラグXkyokaが「1」である状態の積算クランク角が所定クランク角に到達したか否か」を判定してもよい。
このとき、判定許可フラグXkyokaの値が「1」である状態の積算時間が所定時間に到達していなければ、CPUはステップ3010にて「No」と判定し、ステップ3095に直接進んで本ルーチンを一旦終了する。
一方、CPUがステップ3010の処理を行う時点において、判定許可フラグXkyokaの値が「1」である状態の積算時間が所定時間に到達していると、CPUはステップ3010にて「Yes」と判定し、以下に述べるステップ3020乃至ステップ3060の処理を順に行い、ステップ3095に進んで本ルーチンを一旦終了する。
ステップ3020:CPUは、「増大側最大値ΔAFpmaxの積算値Spmax」をカウンタNpによって除することにより、増大側最大値ΔAFpmaxの平均値(最終増大側最大値平均値)AveΔAFpmaxを算出する。この最終増大側最大値平均値AveΔAFpmaxは、最終増大変化率平均値AveΔAFpとして格納される。最終増大側最大値平均値AveΔAFpmaxは、検出空燃比変化率ΔAFに応じた値(ΔAFに応じて変化する値、検出空燃比変化率ΔAFが正であるときに得られた複数の検出空燃比変化率ΔAFの大きさのうちの最大値が大きくなるほど大きくなる値)である。即ち、最終増大側最大値平均値AveΔAFpmaxは、空燃比変化率指示量の一つであり、「増大変化率指示量」とも称呼される。
ステップ3030:CPUは、「減少側最大値ΔAFmmaxの積算値Spmax」をカウンタNmによって除することにより、減少側最大値ΔAFmmaxの平均値(最終減少側最大値平均値)AveΔAFmmaxを算出する。この最終減少側最大値平均値AveΔAFmmaxは、最終減少変化率平均値AveΔAFmとして格納される。最終減少側最大値平均値AveΔAFmmaxは、検出空燃比変化率ΔAFに応じた値(ΔAFに応じて変化する値、検出空燃比変化率ΔAFが負であるときに得られた複数の検出空燃比変化率ΔAFの大きさのうちの最大値が大きくなるほど大きくなる値)である。即ち、最終減少側最大値平均値AveΔAFmmaxは、空燃比変化率指示量の一つであり、「減少変化率指示量」とも称呼される。
ステップ3040:CPUは、「増大側最大値ΔAFpmaxの積算値Spmax」を「0」に設定(クリア)し、且つ、「減少側最大値ΔAFmmaxの積算値Smmax」を「0」に設定(クリア)する。
ステップ3050:CPUは、カウンタNpの値及びカウンタNmの値を共に「0」に設定(クリア)する。
ステップ3060:CPUは、判定実行フラグXhanteiの値を「1」に設定する。
この結果、判定実行フラグXhanteiの値が「1」に変更されるので、CPUは図23に示したルーチンのステップ2310以降に進み、「図30のステップ3020にて求めた増大変化率指示量AveΔAFp(即ち、最終増大側最大値平均値AveΔAFpmax)」及び「図30のステップ3030にて求めた減少変化率指示量AveΔAFm(即ち、最終減少側最大値平均値)AveΔAFmmax)」を用いた空燃比気筒間インバランス判定を実施する。
前述したように、CPUは、検出空燃比変化率ΔAFの大きさ(ΔAFの絶対値|ΔAF|)が有効判定閾値Yukothより小さい検出空燃比変化率ΔAF(無効データ)を、最大値ΔAFmmax及び最大値ΔAFpmaxの算出に使用しない(ステップ2920からステップ2995へと直接進む場合を参照。)。従って、無効データが「増大変化率指示量AveΔAFp(即ち、最終増大側最大値平均値AveΔAFpmax)及び減少変化率指示量AveΔAFm(即ち、最終減少側最大値平均値AveΔAFmmax)」の算出に使用されない。
この結果、第9判定装置は、第8判定装置と同様、特別なフィルタを用いることなく、検出空燃比変化率ΔAFに重畳しているノイズの「増大変化率指示量及び減少変化率指示量への影響」を低減することができる。従って、空燃比気筒間インバランス判定をより精度良くことができる。
<第10実施形態>
次に、本発明の第10実施形態に係る内燃機関の制御装置(以下、単に「第10判定装置」と称呼する。)について説明する。
第10判定装置は、ある期間において、検出空燃比変化率ΔAFの大きさ(|ΔAF|)が有効判定閾値Yukoth2(第2有効判定閾値)以上である有効データの数(Cyuko)と、検出空燃比変化率ΔAFの大きさ(|ΔAF|)が有効判定閾値Yukoth2未満である無効データの数(Cmuko)と、を取得し、その有効データ数(Cyuko)と無効データ数(Cmuko)とを比較することにより空燃比気筒間インバランス判定を行う。以下、この特徴について詳しく説明する。
第10判定装置のCPUは、第1判定装置のCPUが実行するルーチン(図17に示したルーチンを除く。)を所定のタイミングにて実行するとともに、図17に示したルーチンに代わる図31にフローチャートにより示した「空燃比気筒間インバランス判定ルーチン」を「4ms(所定の一定サンプリング時間ts)」が経過する毎に実行するようになっている。更に、第10判定装置のCPUは図20に示したルーチンを所定時間の経過毎に実行し、判定許可フラグXkyokaの値を設定している。
従って、CPUは、所定のタイミングにて図31に示したルーチンのステップ3100から処理を開始し、ステップ3102乃至ステップ3106の処理を行う。ステップ3102、ステップ3104及びステップ3106は、図17のステップ1710、ステップ1720及びステップ1730とそれぞれ同じである。従って、サンプリング時間tsの経過毎に、空燃比センサ出力Vabyfs、前回の検出空燃比abyfsold及び今回の検出空燃比abyfsが取得される。
次に、CPUはステップ3108に進み、判定許可フラグXkyokaの値が「1」であるか否かを判定する。いま、判定許可フラグXkyokaの値が「0」であると仮定する。この場合、CPUはステップ3108にて「No」と判定し、ステップ3195に進んで本ルーチンを一旦終了する。
次に、判定許可フラグXkyokaの値が「1」に変更されたと仮定する。この場合、CPUはステップ3108にて「Yes」と判定してステップ3110に進み、今回の検出空燃比abyfsから前回の検出空燃比abyfsoldを減じることによって検出空燃比変化率ΔAF(=今回の検出空燃比abyfs−前回の検出空燃比abyfsold)を求める。
次に、CPUはステップ3112に進み、検出空燃比変化率ΔAFの大きさ(ΔAFの絶対値|ΔAF|)が有効判定閾値Yukoth2以上であるか否かを判定する。この有効判定閾値Yukoth2は、検出すべき空燃比気筒間インバランス状態が発生していない場合(気筒別空燃比が多少異なっていてもエミッション上問題にならない場合)における「検出空燃比変化率ΔAFの大きさ(|ΔAF|)の平均値又は最大値」に「余裕代(マージン)としての所定値δ」を加えた値である。換言すると、有効判定閾値Yukoth2は、「検出すべき空燃比気筒間インバランス状態」が発生していない場合においては、検出空燃比変化率ΔAFの大きさ(|ΔAF|)が超えることのない値に設定されている。
このとき、検出空燃比変化率ΔAFの大きさ(ΔAFの絶対値|ΔAF|)が有効判定閾値Yukoth2以上であると、CPUはステップ3112にて「Yes」と判定してステップ3114に進み、有効データ数カウンタCyukoの値を「1」だけ増大する。有効データ数カウンタCyukoの値は後述するステップ3126にて「0」に設定(クリア)されるとともに、上述したイニシャルルーチンにおいても「0」に設定(クリア)されるようになっている。この結果、有効データ数カウンタCyukoは、絶対値|ΔAF|が有効判定閾値Yukoth2以上である検出空燃比変化率ΔAFのデータ数を示す値になる。
一方、CPUがステップ3112の処理を行う時点において、検出空燃比変化率ΔAFの大きさ(ΔAFの絶対値|ΔAF|)が有効判定閾値Yukoth2未満であると、CPUはステップ3112にて「No」と判定してステップ3116に進み、無効データ数カウンタCmukoの値を「1」だけ増大する。無効データ数カウンタCmukoの値は後述するステップ3128にて「0」に設定(クリア)されるとともに、上述したイニシャルルーチンにおいても「0」に設定(クリア)されるようになっている。この結果、無効データ数カウンタCmukoは、絶対値|ΔAF|が有効判定閾値Yukoth2未満である検出空燃比変化率ΔAFのデータ数を示す値になる。
次に、CPUはステップ3118に進んでデータ総数カウンタCtotalの値を「1」だけ増大し、ステップ3120に進んでデータ総数カウンタCtotalの値がデータ総数閾値Ctotalth以上であるか否かを判定する。データ総数カウンタCtotalの値は後述するステップ3130にて「0」に設定(クリア)されるとともに、上述したイニシャルルーチンにおいても「0」に設定(クリア)されるようになっている。即ち、データ総数カウンタCtotalの値は、有効データ数カウンタCyukoの値と無効データ数カウンタCmukoの値との和となる。
このとき、データ総数カウンタCtotalの値がデータ総数閾値Ctotalth未満であると、CPUはステップ3120にて「No」と判定し、ステップ3195に直接進んで本ルーチンを一旦終了する。
一方、CPUがステップ3120の処理を行う時点において、データ総数カウンタCtotalの値がデータ総数閾値Ctotalth以上であると、CPUはステップ3120にて「Yes」と判定してステップ3122に進み、有効データ数カウンタCyukoの値が無効データ数カウンタCmukoの値よりも大きいか否かを判定する。
そして、CPUは、有効データ数カウンタCyukoの値が無効データ数カウンタCmukoの値よりも大きいとき、ステップ3124に進んで、インバランス発生フラグXINBの値を「1」に設定する。即ち、CPUは空燃比気筒間インバランス状態が発生していると判定する。更に、このとき、CPUは図示しない警告ランプを点灯してもよい。その後、CPUはステップ3126以降に進む。
また、有効データ数カウンタCyukoの値が無効データ数カウンタCmukoの値よりも小さいと、CPUはステップ3122にて「No」と判定してステップ3124に進み、インバランス発生フラグXINBの値を「2」に設定する。即ち、CPUは空燃比気筒間インバランス状態が発生していないと判定する。その後、CPUはステップ3126以降に進む。なお、CPUは、ステップ3122にて「No」と判定した場合、ステップ3132の処理を行うことなく、ステップ3126に直接進んでもよい。
次に、CPUは、以下に述べるステップ3126乃至ステップ3130の処理を順に行い、ステップ3195に進んで本ルーチンを一旦終了する。
ステップ3126:CPUは、有効データ数カウンタCyukoの値を「0」に設定(クリア)する。
ステップ3128:CPUは、無効データ数カウンタCmukoの値を「0」に設定(クリア)する
ステップ3130:CPUは、データ総数カウンタCtotalの値を「0」に設定(クリア)する。
以上、説明したように、第10判定装置は、
一定のサンプリング期間(サンプリング時間ts)が経過する毎に空燃比センサ出力Vabyfsを取得するとともに、前記サンプリング期間を挟んで連続して取得された二つの前記空燃比センサ出力のそれぞれにより表される空燃比の差(即ち、今回の検出空燃比abyfsと前回の検出空燃比abyfsoldとの差ΔAF)を検出空燃比変化率ΔAFとして取得し、
且つ、
前記サンプリング期間よりも長いデータ取得期間において取得された複数の前記検出空燃比変化率のうちその大きさが所定の有効判定閾値Yukoth2以上である検出空燃比変化率のデータの数を表す有効データ数Cyukoを前記空燃比変化率指示量の一つとして取得するとともに、同データ取得期間において取得された複数の前記検出空燃比変化率のうちその大きさが同有効判定閾値未満である検出空燃比変化率のデータの数を表す無効データ数Cmukoを前記空燃比変化率指示量の他の一つとして取得し(ステップ3112乃至ステップ3116)、
前記有効データ数Cyukoと前記無効データ数Cmukoとに基づいて前記空燃比気筒間インバランス状態が発生しているか否かを判定するように構成されている(ステップ3122乃至ステップ3132)。
空燃比気筒間インバランス状態が発生すると(即ち、気筒間における空燃比の不均一性が検出すべき程度以上に過大になると)、検出空燃比変化率ΔAFの大きさ|ΔAF|が大きくなる。従って、空燃比気筒間インバランス状態が発生すると、有効データ数Cyukoは相対的に増加し、無効データ数Cmukoは相対的に減少する。従って、本判定装置によれば、有効データ数Cyukoと無効データ数Cmukoとを比較するという簡単な判定により、空燃比気筒間インバランス判定を行うことができる。
なお、第10判定装置のCPUは、ステップ3120において、判定許可フラグXkyokaの値が「1」に設定されている期間のクランク角の積算値が720°クランク角の自然数倍に一致したか否かを判定し、720°クランク角の自然数倍に一致した場合にステップ3122以降に進むように構成されてもよい。即ち、CPUは、単位燃焼サイクル期間又は単位燃焼サイクル期間の自然数倍の期間における、有効データ数と無効データ数とを比較してインバランス判定を実行してもよい。
更に、第10判定装置のCPUは、ステップ3122において、「有効データ数Cyukoと無効データ数Cmukoとの和である全データ数(即ち、データ総数カウンタCtotalの値)」に基づいて変化するデータ数閾値Cdatathを決定し、有効データ数Cyukoがデータ数閾値Cdatath以上であるときとき、前記空燃比気筒間インバランス状態が発生していると判定するように構成されてもよい。このデータ数閾値Cdatathは、例えば、全データ数の所定割合(=kd・Ctotal、kdは0〜1の値)に設定することができる。これによっても、空燃比気筒間インバランス判定を簡易な構成によって行うことができる。
<第11実施形態>
次に、本発明の第11実施形態に係る内燃機関の制御装置(以下、単に「第11判定装置」と称呼する。)について説明する。
第11判定装置は、第8判定装置と同様にリッチピーク及びリーンピークを検出する。但し、第11判定装置は、リッチピーク及びリーンピークが得られた時点の近傍の検出空燃比変化率ΔAFを空燃比変化率指示量のデータとしては用いない(破棄する)点においてのみ第8判定装置と相違している。
より具体的に述べると、第11判定装置は、リッチピーク又はリーンピークの検出に用いられた「前回の検出空燃比変化率ΔAFold及び今回の検出空燃比変化率ΔAF」を空燃比変化率指示量のデータとして採用しない。即ち、検出空燃比abyfsの極大値又は極小値の前後の検出空燃比変化率ΔAFは「空燃比気筒間インバランスの判定を行うための空燃比変化率指示量」の計算に用いられない。
図32は、リッチピーク近傍の検出空燃比abyfsの変化の様子を示すタイムチャートである。図32から明らかなように、リッチピーク近傍における検出空燃比abyfsは変化が緩慢であるので、空燃比変化率指示量を算出するためのデータとしては適切ではない。同様に、図33は、リーンピーク近傍の検出空燃比abyfsの変化の様子を示すタイムチャートである。図33から明らかなように、リーンピーク近傍における検出空燃比abyfsは変化が緩慢であるので、空燃比変化率指示量を算出するためのデータとしては適切ではない。
そこで、第11判定装置は、空燃比変化率指示量である最終減少変化率平均値AveΔAFmを算出する基礎となる平均減少変化率Avemの算出に、「最新のリッチピークを検出したときの検出空燃比変化率ΔAF、及び、その最新のリッチピークの直前のリーンピークを検出したときの検出空燃比変化率ΔAF」を用いない。
同様に、第11判定装置は、空燃比変化率指示量である最終増大変化率平均値AveΔAFpを算出する基礎となる平均増大変化率Avepの算出に、「最新のリーンピークを検出したときの検出空燃比変化率ΔAF、及び、その最新のリーンピークの直前のリッチピークを検出したときの検出空燃比変化率ΔAF」を用いない。
以下、第11判定装置の実際の作動について説明する。
第11判定装置のCPUは、第4判定装置のCPUが実行するルーチン(図22に示したルーチンを除く。)を所定のタイミングにて実行するとともに、図22に示したルーチンに代わる図34にフローチャートにより示した「データ取得ルーチン」を「4ms(所定の一定サンプリング時間ts)」が経過する毎に実行するようになっている。更に、第11判定装置のCPUは図28に示した「データ処理ルーチン」を「4ms(所定の一定サンプリング時間ts)」が経過する毎に実行するようになっている。
従って、CPUは、所定のタイミングにて図34に示したルーチンのステップ3400から処理を開始し、ステップ3402乃至ステップ3406の処理を行う。ステップ3402、ステップ3404及びステップ3406は、図17のステップ1710、ステップ1720及びステップ1730とそれぞれ同じである。従って、サンプリング時間tsの経過毎に、空燃比センサ出力Vabyfs、前回の検出空燃比abyfsold及び今回の検出空燃比abyfsが取得される。
次に、CPUはステップ3408に進み、判定許可フラグXkyokaの値が「1」であるか否かを判定する。この判定許可フラグXkyokaの値は、第2判定装置と同様、図20に示したルーチンにより設定される。
いま、判定許可フラグXkyokaの値が「0」であると仮定する。この場合、CPUはステップ3408にて「No」と判定し、ステップ3410乃至ステップ3416の処理を順に行う。ステップ3410乃至ステップ3416は、図27のステップ2710乃至ステップ2716とそれぞれ同一である。従って、増大変化率積算値SΔAFpの値、カウンタCspの値、減少変化率積算値SΔAFmの値及びカウンタCsmの値の各値が「0」に設定(クリア)される。その後、CPUはステップ3495に進み、本ルーチンを一旦終了する。
次に、判定許可フラグXkyokaの値が「1」に変更されたと仮定する。この場合、CPUはステップ3408にて「Yes」と判定してステップ3418に進み、今回の検出空燃比abyfsから前回の検出空燃比abyfsoldを減じることによって検出空燃比変化率ΔAF(=今回の検出空燃比abyfs−前回の検出空燃比abyfsold)を求める。
次に、CPUはステップ3420乃至ステップ3430のうちの適当なステップに進む。ステップ3420乃至ステップ3430は、図27のステップ2720乃至ステップ2730とそれぞれ同じステップである。
この結果、検出空燃比変化率ΔAFの大きさ(ΔAFの絶対値|ΔAF|)が有効判定閾値Yukoth以上である場合に検出空燃比変化率ΔAFが「0」以上であると、増大変化率積算値SΔAFpが更新され、且つ、カウンタCspの値が「1」だけ増大させられる。更に、検出空燃比変化率ΔAFの大きさ(ΔAFの絶対値|ΔAF|)が有効判定閾値Yukoth以上である場合に検出空燃比変化率ΔAFが「0」未満であると、減少変化率積算値SΔAFmが更新され、且つ、カウンタCsmの値が「1」だけ増大させられる。
その後、CPUは「図27のステップ2732と同じステップであるステップ3432」に進み、リッチピークが到来したか否かを判定する。このとき、リッチピークが到来していると、CPUは以下に述べるステップ3434乃至ステップ3446の処理を順に行い、ステップ3495に進んで本ルーチンを一旦終了する。
ステップ3434:CPUは、現在の時刻tからサンプリングtsだけ前の時刻を「リッチピーク時刻tRP」として取得する。即ち、現時点において検出空燃比変化率ΔAFの値が負から正へと変更したことが確認されたので、CPUは、現在の時刻tからサンプリングtsだけ前の時刻にて、検出空燃比abyfsがリッチピークを迎えたと推定する。
ステップ3436:CPUは、減少変化率積算値SΔAFmから、今回のリッチピーク検出直前の検出空燃比変化率ΔAF(即ち、現時点における前回検出空燃比変化率ΔAFold)の絶対値と、今回のリッチピークの直前に検出されたリーンピーク時の検出空燃比変化率ΔAFの絶対値と、を減じた値を、新たな減少変化率積算値SΔAFmとして取得する。
即ち、CPUは、今回検出されたリッチピークとそのリッチピークの直前に検出されていたリーンピークとの間の期間に検出された検出空燃比変化率ΔAFの大きさ(|ΔAF|)の積算値SΔAFmから、その期間の両端の検出空燃比変化率ΔAFの大きさを減じる。これにより、減少変化率積算値SΔAFmから、今回のリッチピーク検出に用いられた検出空燃比変化率ΔAFと、直前のリーンピーク検出に用いられた検出空燃比変化率ΔAFと、の二つのデータが減じられる。
ステップ3438:CPUは、減少変化率積算値SΔAFmを「カウンタCsmから2を減じた値(Csm−2)」により除することにより、減少変化率ΔAFmの平均値(平均減少変化率Avem)を算出する。カウンタCsmから2を減じるのは、減少変化率積算値SΔAFmは、「Csm−2」個分の負の値を有する検出空燃比変化率ΔAFの絶対値の積算値だからである。
ステップ3440:CPUは、減少変化率積算値SΔAFm及びカウンタCsmを共に「0」に設定(クリア)する。
ステップ3442:CPUは、平均減少変化率Avemの積算値SAvemを更新する。より具体的には、CPUはその時点の「平均減少変化率Avemの積算値SAvem」に、ステップ3438にて新たに取得された今回の平均減少変化率Avemを加えることにより、今回の「平均減少変化率Avemの積算値SAvem」を算出する。
ステップ3444:CPUは、カウンタNmの値を「1」だけ増大する。
ステップ3446:CPUは、ステップ3418にて取得した検出空燃比変化率ΔAFを、前回の検出空燃比変化率ΔAFoldとして格納する。その後、CPUはステップ3495に進んで、本ルーチンを一旦終了する。
一方、CPUがステップ3432の処理を行う時点において、前回の検出空燃比変化率ΔAFoldが「0」より大きいか、又は、今回の検出空燃比変化率ΔAFが「0」以下であると、CPUはそのステップ3432にて「No」と判定してステップ3448に進む。そして、CPUはステップ3448にて、「前回の検出空燃比変化率ΔAFoldが「0」以上であり、且つ、今回の検出空燃比変化率ΔAFが「0」より小さい」か否かを判定する。即ち、CPUはステップ3448において、検出空燃比abyfsの傾きが正から負へと変化したか否か(検出空燃比abyfsが上に凸のピークである「リーンピーク」を通過したか否か)を判定する。
このとき、前回の検出空燃比変化率ΔAFoldが「0」以上であり、且つ、今回の検出空燃比変化率ΔAFが「0」より小さいと、CPUはステップ3448にて「Yes」と判定し、以下に述べるステップ3450乃至ステップ3460の処理を順に行い、ステップ3446を経由してステップ3495に進む。
ステップ3450:CPUは、現在の時刻tからサンプリングtsだけ前の時刻を「リーンピーク時刻tLP」として取得する。即ち、現時点において検出空燃比変化率ΔAFの値が正から負へと変更したことが確認されたので、CPUは、現在の時刻tからサンプリングtsだけ前の時刻にて、検出空燃比abyfsがリーンピークを迎えたと推定する。
ステップ3452:CPUは、増大変化率積算値SΔAFpから、今回のリーンピーク検出直前の検出空燃比変化率ΔAF(即ち、現時点における前回検出空燃比変化率ΔAFold)の絶対値と、今回のリーンピークの直前に検出されたリッチピーク時の検出空燃比変化率ΔAFの絶対値と、を減じた値を、新たな増大変化率積算値SΔAFpとして取得する。
即ち、CPUは、今回検出されたリーンピークとそのリーンピークの直前に検出されていたリッチピークとの間の期間に検出された検出空燃比変化率ΔAFの大きさ(|ΔAF|)の積算値SΔAFpから、その期間の両端の検出空燃比変化率ΔAFの大きさを減じる。これにより、増大変化率積算値SΔAFpから、今回のリーンピーク検出に用いられた検出空燃比変化率ΔAFと、直前のリッチピーク検出に用いられた検出空燃比変化率ΔAFと、の二つのデータが減じられる。
ステップ3454:CPUは、増大変化率積算値SΔAFpを「カウンタCspから2を減じた値(Csp−2)」により除することにより、増大変化率ΔAFpの平均値(平均増大変化率Avep)を算出する。カウンタCspから2を減じるのは、増大変化率積算値SΔAFpは、「Csp−2」個分の正の値を有する検出空燃比変化率ΔAFの絶対値の積算値だからである。
ステップ3456:CPUは、増大変化率積算値SΔAFp及びカウンタCspを共に「0」に設定(クリア)する。
ステップ3458:CPUは、平均増大変化率Avepの積算値SAvepを更新する。より具体的には、CPUはその時点の「平均増大変化率Avepの積算値SAvep」に、ステップ3454にて新たに取得された今回の平均増大変化率Avepを加えることにより、今回の「平均増大変化率Avepの積算値SAvep」を算出する。
ステップ3460:CPUは、カウンタNpの値を「1」だけ増大する。
他方、CPUがステップ3448の処理を行う時点において、前回の検出空燃比変化率ΔAFoldが「0」より小さいか、又は、今回の検出空燃比変化率ΔAFが「0」以上であると、CPUはそのステップ3448にて「No」と判定し、ステップ3446を経由してステップ3495に進む。
このように、CPUは、リーンピーク検出に用いられた検出空燃比変化率ΔAFのうち負の値を有する検出空燃比変化率ΔAFと、リッチピーク検出に用いられた検出空燃比変化率ΔAFのうち負の値を有する検出空燃比変化率ΔAFと、を、平均減少変化率Avemの計算に用いない。同様に、CPUは、リーンピーク検出に用いられた検出空燃比変化率ΔAFのうち正の値を有する検出空燃比変化率ΔAFと、リッチピーク検出に用いられた検出空燃比変化率ΔAFのうち正の値を有する検出空燃比変化率ΔAFと、を、平均増大変化率Avepの計算に用いない。
一方、CPUは図28にフローチャートにより示した「データ処理ルーチン」を所定時間(4ms)が経過する毎に実行するようになっている。これにより、平均増大変化率Avepの平均値(空燃比変化率指示量である最終増大変化率平均値)AveΔAFp、及び、平均減少変化率Avemの平均値(空燃比変化率指示量である最終減少変化率平均値)AveΔAFmが算出される。更に、判定実行フラグXhanteiの値がステップ2860にて「1」に設定されるので、図23(又は、図24、図26)に示したルーチンにより空燃比気筒間インバランス判定が実行される。
なお、第11判定装置は、リッチピークの検出時に用いられた二つのデータのうちの古いほう(例えば、図34のステップ3432における前回の検出空燃比変化率ΔAFold)を空燃比変化率指示量の計算に用いないように構成されてもよい。同様に、第11判定装置は、リーンピークの検出時に用いられた二つのデータのうちの古いほう(例えば、図34のステップ3448における前回の検出空燃比変化率ΔAFold)を空燃比変化率指示量の計算に用いないように構成されてもよい。
更に、第11判定装置は、「リッチピーク時刻tRPよりも所定時間(第1所定時間)前の時刻」から「そのリッチピーク時刻tRPよりも所定時間(第2所定時間)後の時刻」までの期間に取得されたΔAFを、空燃比変化率指示量の計算に用いないように構成されてもよい。同様に、第11判定装置は、リーンピーク時刻tLPよりも所定時間(第3所定時間)前の時刻」から「そのリーンピーク時刻tLPよりも所定時間(第4所定時間)後の時刻」までの期間に取得されたΔAFを、空燃比変化率指示量の計算に用いないように構成されてもよい。
以上、説明したように、第11判定装置は、
一定のサンプリング期間(サンプリング時間ts)が経過する毎に空燃比センサ出力Vabyfsを取得するとともに、前記サンプリング期間を挟んで連続して取得された二つの前記空燃比センサ出力のそれぞれにより表される空燃比の差(即ち、今回の検出空燃比abyfsと前回の検出空燃比abyfsoldとの差ΔAF)を検出空燃比変化率ΔAFとして取得し、且つ、
前記取得された検出空燃比変化率ΔAFが正の値から負の値へと変化した時点をリーンピーク時点tLPとして検出し(ステップ3448)、且つ、その検出したリーンピーク時点tLPの前又は後の所定時間内に取得された検出空燃比変化率ΔAFを、空燃比変化率指示量を取得するためのデータとして使用しないように構成されている(ステップ3452)。
更に、第11判定装置は、
前記取得された検出空燃比変化率ΔAFが負の値から正の値へと変化した時点をリッチピーク時点tRPとして検出し(ステップ3432)、且つ、その検出したリッチピーク時点tRPの前又は後の所定時間内に取得された検出空燃比変化率ΔAFを、空燃比変化率指示量を取得するためのデータとして使用しないように構成されている(ステップ3436)。
図32及び図33にも示したように、検出空燃比変化率が極大値となるリーンピーク時点の近傍の検出空燃比変化率の大きさ、及び、検出空燃比変化率が極小値となるリッチピーク時点の近傍の検出空燃比変化率の大きさは、検出空燃比変化率の大きさの平均値と比較して小さくなるので、空燃比変化率指示量を得るためのデータとしては適切ではない。
そこで、本判定装置のように、リーンピーク時点の前又は後の所定時間内に取得された前記検出空燃比変化率、或いは、リッチピーク時点の前又は後の所定時間内に取得された前記検出空燃比変化率を、前記空燃比変化率指示量を取得するためのデータとして使用しないようにすることにより、気筒別空燃比の不均一性の程度に精度良く表す空燃比変化率指示量(最終増大変化率平均値AveΔAFp、及び、最終減少変化率平均値AveΔAFm)を取得することができる。その結果、第11判定装置は、空燃比気筒間インバランス判定を精度良く行うことができる。
<第12実施形態>
次に、本発明の第12実施形態に係る内燃機関の制御装置(以下、単に「第12判定装置」と称呼する。)について説明する。
第12判定装置は、第8判定装置と同様、空燃比変化率指示量を、検出空燃比変化率ΔAFが正の場合の増大変化率指示量と、検出空燃比変化率ΔAFが負の場合の減少変化率指示量と、に分けて取得する。更に、第12判定装置は、第8判定装置と同様、検出空燃比変化率ΔAFの大きさ(|ΔAF|)が有効判定閾値Yukoth以上である検出空燃比変化率ΔAFを用いて空燃比変化率指示量(増大変化率指示量及び減少変化率指示量)を取得する。
加えて、第12判定装置は、図35及び図36に示した「リーンピーク及びリッチピーク」を検出する。図35は、検出すべき空燃比気筒間インバランスが発生している状態における検出空燃比abyfsを示す。図36は、検出すべき空燃比気筒間インバランスが発生していない状態における検出空燃比abyfsを示す。これらの図において、時刻tLPは今回のリーンピークの時刻、時刻tLPoldは前回のリーンピークの時刻、時刻tRPは今回のリッチピークの時刻、時刻tRPoldは前回のリッチピークの時刻を表す。従って、時間TLLは前回のリーンピークから今回のリーンピークまでの時間(リーンピーク・リーンピーク時間TLL)を示し、時間TRRは前回のリッチピークから今回のリッチピークまでの時間(リッチピーク・リッチピーク時間TRR)を示す。
図35から理解されるように、空燃比気筒間インバランスが発生している場合、リーンピーク・リーンピーク時間TLLとリッチピーク・リッチピーク時間TRRとは略等しい。更に、リーンピーク・リーンピーク時間TLLは閾値時間TLLthよりも長く、リッチピーク・リッチピーク時間TRRは閾値時間TRRthよりも長い。この場合、閾値時間TLLthは閾値時間TRRthと同じ時間であり、例えば、リッチピーク・リッチピーク時間TRR(又は、リーンピーク・リーンピーク時間TLL)の平均的な長さの70〜80%程度に設定される。
これに対し、図36から理解されるように、空燃比気筒間インバランスが全く発生していない場合、検出空燃比abyfsに重畳するノイズの影響によってピークが頻繁に発生する。このため、リーンピーク・リーンピーク時間TLLは閾値時間TLLthよりも短く、リッチピーク・リッチピーク時間TRRは閾値時間TRRthよりも短い。
そこで、第12判定装置は、リーンピーク・リーンピーク時間TLLが閾値時間TLLthよりも短い場合、その間に取得された検出空燃比変化率ΔAFを空燃比変化率指示量のデータとしては用いない(破棄する)。同様に、第12判定装置は、リッチピーク・リッチピーク時間TRRが閾値時間TRRthよりも短い場合、その間に取得された検出空燃比変化率ΔAFを空燃比変化率指示量のデータとしては用いない(破棄する)。
そして、第12判定装置は、図23に示したルーチンを用いて空燃比気筒間インバランス判定を実施する。但し、第12判定装置は、図24及び図26の何れかに示されたルーチンを用いて空燃比気筒間インバランス判定を実施してもよい。
次に、第12判定装置の実際の作動について説明する。第12判定装置のCPUは、第8判定装置のCPUが実行するルーチン(図27に示したルーチンを除く。)を所定のタイミングにて実行するとともに、図27に示したルーチンに代わる「図37及び図38にフローチャートにより示したデータ取得ルーチン」を「4ms(所定の一定サンプリング時間ts)」が経過する毎に実行するようになっている。
従って、CPUは、所定のタイミングにて図37に示したルーチンのステップ3700から処理を開始し、ステップ3702乃至ステップ3706の処理を行う。ステップ3702、ステップ3704及びステップ3706は、図17のステップ1710、ステップ1720及びステップ1730とそれぞれ同じである。従って、サンプリング時間tsの経過毎に、空燃比センサ出力Vabyfs、前回の検出空燃比abyfsold及び今回の検出空燃比abyfsが取得される。
次に、CPUはステップ3708に進み、判定許可フラグXkyokaの値が「1」であるか否かを判定する。この判定許可フラグXkyokaの値は、第2判定装置と同様、図20に示したルーチンにより設定される。更に、CPUは図39に示したフラグ設定ルーチンによっても判定許可フラグXkyokaの値を操作する。
いま、判定許可フラグXkyokaの値が「0」であると仮定する。この場合、CPUはステップ3708にて「No」と判定し、ステップ3710乃至ステップ3716の処理を順に行い、ステップ3795に進んで本ルーチンを一旦終了する。
ステップ3710乃至ステップ3716は、図27のステップ2710乃至ステップ2716とそれぞれ同一である。従って、増大変化率積算値SΔAFpの値、カウンタCspの値、減少変化率積算値SΔAFmの値及びカウンタCsmの値の各値が「0」に設定(クリア)される。その後、CPUはステップ3795に進み、本ルーチンを一旦終了する。
次に、判定許可フラグXkyokaの値が「1」に変更されたと仮定する。この場合、CPUはステップ3708にて「Yes」と判定し、図38に示したステップ3802に進む(「C」を参照。)。CPUは、そのステップ3802にて、今回の検出空燃比abyfsから前回の検出空燃比abyfsoldを減じることによって検出空燃比変化率ΔAF(=今回の検出空燃比abyfs−前回の検出空燃比abyfsold)を求める。
次に、CPUはステップ3804乃至ステップ3814のうちの適当なステップに進む。ステップ3804乃至ステップ3814は、図27のステップ2720乃至ステップ2730とそれぞれ同じステップである。
この結果、検出空燃比変化率ΔAFの大きさ(ΔAFの絶対値|ΔAF|)が有効判定閾値Yukoth以上である場合に検出空燃比変化率ΔAFが「0」以上であると、増大変化率積算値SΔAFpが更新され、且つ、カウンタCspの値が「1」だけ増大させられる。更に、検出空燃比変化率ΔAFの大きさ(ΔAFの絶対値|ΔAF|)が有効判定閾値Yukoth以上である場合に検出空燃比変化率ΔAFが「0」未満であると、減少変化率積算値SΔAFmが更新され、且つ、カウンタCsmの値が「1」だけ増大させられる。
その後、CPUは「図27のステップ2732と同じステップであるステップ3816」に進み、リッチピークが到来したか否かを判定する。このとき、リッチピークが到来していると、CPUは以下に述べるステップ3818乃至ステップ3822の処理を順に行う。
ステップ3818:CPUは、前回取得した「リッチピーク時刻tRP」を前回のリッチピーク時刻tRPoldとして格納する。
ステップ3820:CPUは、現在の時刻tからサンプリングtsだけ前の時刻を「今回のリッチピーク時刻tRP」として取得する。即ち、現時点において検出空燃比変化率ΔAFの値が負から正へと変更したことが確認されたので、CPUは、現在の時刻tからサンプリングtsだけ前の時刻にて、検出空燃比abyfsがリッチピークを迎えたと推定する。
ステップ3822:CPUは、前回のリッチピーク時刻tRPoldと今回のリッチピーク時刻tRPとの差をリッチピーク・リッチピーク時間TRRとして取得するとともに、そのリッチピーク・リッチピーク時間TRRが閾値時間TRRthよりも短いか否かを判定する。
このとき、CPUは、リッチピーク・リッチピーク時間TRRが閾値時間TRRthよりも短ければ、ステップ3822にて「Yes」と判定してステップ3830に進み、ノイズ発生フラグXnoiseの値を「1」に設定する。このノイズ発生フラグXnoiseは、上述したイニシャルルーチンにおいて「0」に設定されるようになっている。更に、ノイズ発生フラグXnoiseは、後述する図39のステップ3930において、ノイズ発生フラグXnoiseの値が「0」から「1」へと変化した時点から所定時間Tnoiseが経過したときに「0」に設定される。
次に、CPUは以下に述べるステップ3832乃至ステップ3836の処理を実行し、ステップ3795に進んで本ルーチンを一旦終了する。
ステップ3832:CPUは、減少変化率積算値SΔAFm及びカウンタCsmを共に「0」に設定(クリア)する。
ステップ3834:CPUは、増大変化率積算値SΔAFp及びカウンタCspを共に「0」に設定(クリア)する。
ステップ3836:CPUは、ステップ3802にて取得した検出空燃比変化率ΔAFを、前回の検出空燃比変化率ΔAFoldとして格納する。
これに対し、リッチピーク・リッチピーク時間TRRが閾値時間TRRth以上であると、CPUはステップ3822にて「No」と判定しステップ3824に進み、減少変化率積算値SΔAFmをカウンタCsmにより除することにより、減少変化率ΔAFmの平均値(平均減少変化率Avem)を算出する。
次いで、CPUはステップ3826に進み、平均減少変化率Avemの積算値SAvemを更新する。より具体的には、CPUはその時点の「平均減少変化率Avemの積算値SAvem」に、ステップ3824にて新たに取得された今回の平均減少変化率Avemを加えることにより、今回の「平均減少変化率Avemの積算値SAvem」を算出する。その後、CPUはステップ3828に進んでカウンタNmの値を「1」だけ増大し、ステップ3832乃至ステップ3836を経由してステップ3795に進む。
一方、CPUがステップ3816の処理を行う時点において、前回の検出空燃比変化率ΔAFoldが「0」より大きいか、又は、今回の検出空燃比変化率ΔAFが「0」以下であると、CPUはそのステップ3816にて「No」と判定してステップ3838に進む。そして、CPUはステップ3838にて、「前回の検出空燃比変化率ΔAFoldが「0」以上であり、且つ、今回の検出空燃比変化率ΔAFが「0」より小さい」か否かを判定する。即ち、CPUはステップ3838において、検出空燃比abyfsの傾きが正から負へと変化したか否か(検出空燃比abyfsが上に凸のピークである「リーンピーク」を通過したか否か)を判定する。
このとき、前回の検出空燃比変化率ΔAFoldが「0」以上であり、且つ、今回の検出空燃比変化率ΔAFが「0」より小さいと、CPUはステップ3838にて「Yes」と判定し、以下に述べるステップ3840乃至ステップ3844の処理を順に行う。
ステップ3840:CPUは、前回取得した「リーンピーク時刻tLP」を前回のリーンピーク時刻tLPoldとして格納する。
ステップ3842:CPUは、現在の時刻tからサンプリングtsだけ前の時刻を「今回のリーンピーク時刻tLP」として取得する。即ち、現時点において検出空燃比変化率ΔAFの値が正から負へと変更したことが確認されたので、CPUは、現在の時刻tからサンプリングtsだけ前の時刻にて、検出空燃比abyfsがリーンピークを迎えたと推定する。
ステップ3844:CPUは、前回のリーンピーク時刻tLPoldと今回のリーンピーク時刻tLPとの差をリーンピーク・リーンピーク時間TLLとして取得するとともに、そのリーンピーク・リーンピーク時間TLLが閾値時間TLLthよりも短いか否かを判定する。
このとき、CPUは、リーンピーク・リーンピーク時間TLLが閾値時間TLLthよりも短ければ、ステップ3844にて「Yes」と判定してステップ3852に進み、ノイズ発生フラグXnoiseの値を「1」に設定する。その後、CPUはステップ3832以降へと進む。
これに対し、リーンピーク・リーンピーク時間TLLが閾値時間TLLth以上であると、CPUはステップ3844にて「No」と判定してステップ3846に進み、増大変化率積算値SΔAFpをカウンタCspにより除することにより、増大変化率ΔAFpの平均値(平均増大変化率Avep)を算出する。
次いで、CPUはステップ3848に進み、平均増大変化率Avepの積算値SAvepを更新する。より具体的には、CPUはその時点の「平均増大変化率Avepの積算値SAvep」に、ステップ3846にて新たに取得された今回の平均増大変化率Avepを加えることにより、今回の「平均増大変化率Avepの積算値SAvep」を算出する。
その後、CPUは、ステップ3850に進んでカウンタNpの値を「1」だけ増大し、ステップ3832乃至ステップ3836を経由してステップ3795へと進む。
このように、ステップ3822にて「Yes」と判定される場合、即ち、リッチピーク・リッチピーク時間TRRが閾値時間TRRthよりも短い場合、そのリッチピーク・リッチピーク時間TRR内において得られた減少変化率積算値SΔAFmはステップ3832にて破棄され、そのリッチピーク・リッチピーク時間TRR内において得られた増大変化率積算値SΔAFpはステップ3834にて破棄される。
同様に、ステップ3844にて「Yes」と判定される場合、即ち、リーンピーク・リーンピーク時間TLLが閾値時間TLLthよりも短い場合、そのリーンピーク・リーンピーク時間TLL内において得られた減少変化率積算値SΔAFmはステップ3832にて破棄され、そのリーンピーク・リーンピーク時間TLL内において得られた増大変化率積算値SΔAFpはステップ3834にて破棄される。
そして、CPUは、図28にフローチャートにより示した「データ処理ルーチン」を所定時間(4ms)が経過する毎に実行することにより、平均増大変化率Avepの平均値(空燃比変化率指示量である最終増大変化率平均値)AveΔAFp、及び、平均減少変化率Avemの平均値(空燃比変化率指示量である最終減少変化率平均値)AveΔAFmを算出する。更に、判定実行フラグXhanteiの値がステップ2860にて「1」に設定されるので、CPUは図23(又は、図24、図26)に示したルーチンにより空燃比気筒間インバランス判定を実行する。
加えて、CPUは、所定のタイミングにて図39のステップ3900から処理を開始し、ステップ3910に進んで「現時点が、ノイズ発生フラグXnoiseの値が「0」から「1」へと変化した時点から所定時間Tnoise以内であるか否かを判定する。
このとき、現時点が、ノイズ発生フラグXnoiseの値が「0」から「1」へと変化した時点から所定時間Tnoise以内であると、CPUはステップ3920に進んで判定許可フラグXkyokaの値を「0」に設定する。
この結果、判定許可フラグXkyokaの値が「0」に維持されるので、CPUは図37のステップ3708に進んだとき、そのステップ3708にて「No」と判定し、ステップ3710以降に進む。従って、「現時点が、ノイズ発生フラグXnoiseの値が「0」から「1」へと変化した時点から所定時間Tnoise以内である期間、検出空燃比変化率ΔAFを用いた「空燃比変化率指示量(本例における、最終増大変化率平均値AveΔAFp、及び、最終減少変化率平均値AveΔAFm)」の算出が事実上禁止される。
一方、CPUがステップ3910の処理を行う時点において、現時点が、ノイズ発生フラグXnoiseの値が「0」から「1」へと変化した時点から所定時間Tnoise以内でなければ、CPUはそのステップ3910にて「No」と判定し、ステップ3930に進んでノイズ発生フラグXnoiseの値を「0」に設定する。更に、このとき、CPUは判定許可フラグXkyokaの値を「0」に設定しなくなる。その結果、図20のステップ2030にて判定許可フラグXkyokaの値が「1」に設定されると、CPUは図37のステップ3708にて「Yes」と判定し、図38に示したルーチンを実行するようになる。
このように、第12判定装置は、取得された検出空燃比変化率ΔAFが正の値から負の値へと変化した時点をリーンピーク時点tLPとして検出するとともに、連続して検出される二つのリーンピーク時点間の時間であるリーンピーク・リーンピーク時間TLLが閾値時間TLLthよりも短い場合、その二つのリーンピーク時点間において取得された検出空燃比変化率ΔAFを空燃比変化率指示量のデータとして使用しないように構成されている(ステップ3844での「Yes」との判定、ステップ3832及びステップ3834を参照。)。
同様に、第12判定装置は、取得された検出空燃比変化率ΔAFが負の値から正の値へと変化した時点をリッチピーク時点tRPとして検出するとともに、連続して検出される二つのリッチピーク時点間の時間であるリッチピーク・リッチピーク時間TRRが閾値時間TRRthよりも短い場合、その二つのリッチピーク時点間において取得された検出空燃比変化率ΔAFを空燃比変化率指示量のデータとして使用しないように構成されている(ステップ3822での「Yes」との判定、ステップ3832及びステップ3834を参照。)。
前述したように、空燃比気筒間インバランスが全く発生していない場合、リーンピーク・リーンピーク時間TLLは閾値時間TLLthよりも短く、リッチピーク・リッチピーク時間TRRは閾値時間TRRthよりも短い。
従って、第12判定装置によれば、空燃比気筒間インバランスが全く発生していない状態における検出空燃比変化率ΔAFが空燃比変化率指示量の計算に用いられないので、気筒別空燃比の不均一性の程度に精度良く表す空燃比変化率指示量を取得することができる。その結果、空燃比気筒間インバランス判定を精度良く行うことができる。
更に、第12判定装置は、リーンピーク・リーンピーク時間TLLが閾値時間TLLthよりも短いか、又は、リッチピーク・リッチピーク時間TRRが閾値時間TRRthよりも短いことが検出された場合、その検出時点から所定時間Tnoiseが経過するまでノイズ発生フラグXnoiseの値を「1」に設定することにより判定許可フラグXkyokaの値を「0」に維持している(図38のステップ3830、ステップ2852、図39のルーチン)。従って、空燃比気筒間インバランスが発生していないと判定された場合(リーンピーク・リーンピーク時間TLLが閾値時間TLLthよりも短いか、又は、リッチピーク・リッチピーク時間TRRが閾値時間TRRthよりも短いことが検出された場合)から所定時間Tnoiseが経過するまで、ノイズが多く重畳している空燃比センサ出力Vabyfsに基づく空燃比気筒間インバランス判定が実行されない。従って、第12判定装置は、精度良く空燃比気筒間インバランス判定を実行することができる。
なお、第12判定装置は、図38のステップ3828の処理を実行した後、ステップ3832及びステップ3836のみを経由する(即ち、ステップ3834を経由しない)ルーチンを実行してもよい。同様に、第12判定装置は、図38のステップ3850の処理を実行した後、ステップ3834及びステップ3836のみを経由する(即ち、ステップ3832を経由しない)ルーチンを実行してもよい。
<第12判定装置の変形例>
第12判定装置の変形例に係るCPUは、図39に示したルーチンに代え、図40及び図41に示したフラグ設定ルーチンを所定時間の経過毎に実行するように構成されている。但し、このCPUは、ノイズ発生フラグXnoiseの値をバックアップラムに格納する。
このCPUは、所定のタイミングになると図40のステップ4000から処理を開始してステップ4010に進み、ノイズ発生フラグXnoiseの値が「1」であるか否かを判定する。このとき、ノイズ発生フラグXnoiseの値が「1」でなけれは、CPUはステップ4010にて「No」と判定し、ステップ4095に直接進んで本ルーチンを一旦終了する。
一方、CPUがステップ4010の処理を行う時点において、ノイズ発生フラグXnoiseの値が「1」であると、CPUはそのステップ4010にて「Yes」と判定してステップ4020に進み、判定許可フラグXkyokaの値を「0」に設定し、ステップ4095に進んで本ルーチンを一旦終了する。従って、判定許可フラグXkyokaは、ノイズ発生フラグXnoiseが「1」である限り、「0」に維持され続ける。
更に、所定のタイミングになると、CPUは図41のステップ4100から処理を開始してステップ4110に進み、イグニッション・キー・スイッチがオフからオンへと変更されたか否かを監視している。そして、イグニッション・キー・スイッチがオフからオンへと変更されたとき、CPUはステップ4110にて「Yes」と判定してステップ4120に進み、判定許可フラグXkyokaの値を「0」に設定(クリア)する。更に、CPUはステップ4130に進み、ノイズ発生フラグXnoiseの値を「0」に設定(クリア)する。イグニッション・キー・スイッチがオフからオンへと変更された直後でないとき、CPUはステップ4110にて「No」と判定し、ステップ4195に直接進んで本ルーチンを一旦終了する。
この結果、第12判定装置の変形例は、ノイズ発生フラグXnoiseの値が一旦「1」に設定されると、イグニッション・キー・スイッチがオフからオンへと変更されるまで、ノイズ発生フラグXnoiseの値は「1」に維持され且つ判定許可フラグXkyokaは「0」に維持される。従って、リーンピーク・リーンピーク時間TLLが閾値時間TLLthよりも短いか、又は、リッチピーク・リッチピーク時間TRRが閾値時間TRRthよりも短いことが検出された場合、一旦、機関10の運転を中止し、その後、機関10が再始動されるまで、検出空燃比変化率ΔAFを用いた「空燃比変化率指示量(本例における、最終増大変化率平均値AveΔAFp、及び、最終減少変化率平均値AveΔAFm)」の算出が事実上禁止される。加えて、判定許可フラグXkyokaが「0」に維持されるので、CPUは図28のステップ2810にて「No」と判定し続ける。従って、ノイズ発生フラグXnoiseの値が「1」に設定されると、次に、機関10が始動されるまで、空燃比気筒間インバランス判定はされない。
以上、説明したように、第12判定装置の変形例によれば、ノイズが多く重畳している空燃比センサ出力Vabyfsに基づく空燃比気筒間インバランス判定が実行されない。従って、第12判定装置の変形例は、精度良く空燃比気筒間インバランス判定を実行することができる。
なお、第12判定装置及びその変形例は、閾値時間TRRth及び閾値時間TLLthを「一つの単位燃焼サイクル期間に要する時間Tcy」に基づいて定めてもよい。例えば、閾値時間TRRth及び閾値時間TLLthは、時間Tcyのk倍(kは0.7〜0.8程度)であってもよい。
なお、第12判定装置及びその変形例は、空燃比変化率指示量の符合変化に基づいてリッチピーク(空燃比変化率指示量の極小値)を検出し、連続する二つのリッチピーク間の時間(リッチピーク・リッチピーク時間TTR)が所定時間よりも長いか否かを判定するとともに、リッチピーク・リッチピーク時間TTRが所定時間よりも長いときに空燃比気筒間インバランス状態が発生していると判定するように構成されることもできる。
同様に、第12判定装置及びその変形例は、空燃比変化率指示量の符合変化に基づいてリーンピーク(空燃比変化率指示量の極大値)を検出し、連続する二つのリーンピーク間の時間(リーンピーク・リーンピーク時間TTL)が所定時間よりも長いか否かを判定するとともに、リーンピーク・リーンピーク時間TTLが所定時間よりも長いときに空燃比気筒間インバランス状態が発生していると判定するように構成されることもできる。
<第13実施形態>
次に、本発明の第13実施形態に係る内燃機関の制御装置(以下、単に「第13判定装置」と称呼する。)について説明する。
この第13判定装置は、第12判定装置のCPUが「図38のステップ3822にて使用する閾値時間TRRth、及び、ステップ3844にて使用する閾値時間TLLth」を「過去の複数個のリッチピーク・リッチピーク時間TRR及び過去の複数個のリーンピーク・リーンピーク時間TLL」にそれぞれ基づいて決定する点のみにおいて、第12判定装置と相違している。従って、以下、この相違点を中心として説明する。
第13判定装置のCPUは、第12判定装置のCPUが実行するルーチンに加えて、図42にフローチャートにより示した「閾値時間決定ルーチン」を所定時間(例えば、4ms)の経過毎に繰り返し実行するようになっている。
従って、所定のタイミングになると、CPUは図42のステップ4200から処理を開始してステップ4205に進み、現時点が今回のリッチピーク時刻tRPの更新直後であるか否か(図38のステップ3820の処理が実行された直後であるか否か)を判定する。このとき、現時点が今回のリッチピーク時刻tRPの更新直後でなければ、CPUはステップ4230に直接進む。
これに対し、現時点が今回のリッチピーク時刻tRPの更新直後であると、CPUは以下に述べるステップ4210乃至ステップ4225の処理を順に行い、ステップ4230に進む。
ステップ4210:CPUは、今回のリッチピーク時刻tRPから前回のリッチピーク時刻tRPoldを減じることにより、最新のリッチピーク・リッチピーク時間TRRを求める。
ステップ4215:CPUは、kを2からn(nは例えば10)までの自然数とするとき、時間TRR(k−1)を時間TRR(k)に移行する。
ステップ4220:CPUは、ステップ4210にて求めた最新のリッチピーク・リッチピーク時間TRRを時間TRR(1)として格納する。
ステップ4225:CPUは、mを1からnまでの自然数とするとき、時間TRR(m)の平均値を求め、その平均値から正の所定値βを減じた値を図38のステップ3822にて使用する閾値時間TRRthとして設定する。
この処理により、閾値時間TRRthは、過去n個分のリッチピーク・リッチピーク時間TRRの平均時間に基づく値であって、その平均時間よりも所定時間βだけ短い時間になる。
更に、CPUは、ステップ4230に進んだとき、現時点が今回のリーンピーク時刻tLPの更新直後であるか否か(図38のステップ3842の処理が実行された直後であるか否か)を判定する。このとき、現時点が今回のリーンピーク時刻tLPの更新直後でなければ、CPUはステップ4295に直接進んで本ルーチンを一旦終了する。
これに対し、現時点が今回のリーンピーク時刻tLPの更新直後であると、CPUは以下に述べるステップ4235乃至ステップ4250の処理を順に行い、ステップ4295に進む。
ステップ4235:CPUは、今回のリーンピーク時刻tLPから前回のリーンピーク時刻tLPoldを減じることにより、最新のリーンピーク・リーンピーク時間TLLを求める。
ステップ4240:CPUは、kを2からn(nは例えば10)までの自然数とするとき、時間TLL(k−1)を時間TLL(k)に移行する。
ステップ4245:CPUは、ステップ4235にて求めた最新のリーンピーク・リーンピーク時間TLLを時間TLL(1)として格納する。
ステップ4250:CPUは、mを1からnまでの自然数とするとき、時間TLL(m)の平均値を求め、その平均値から正の所定値βを減じた値を図38のステップ3844にて使用する閾値時間TLLthとして設定する。
この処理により、閾値時間TLLthは、過去n個分のリーンピーク・リーンピーク時間TLLの平均時間に基づく値であって、その平均時間よりも所定時間βだけ短い時間になる。
このように、第13装置は、閾値時間TRRthを過去n個分のリッチピーク・リッチピーク時間TRRの平均時間に基づいて決定するとともに、閾値時間TLLthを過去n個分のリーンピーク・リーンピーク時間TLLに基づいて決定している。従って、空燃比センサ出力Vabyfsにノイズが頻繁に重畳し始めたか否かを精度良く判定することができる。
<第14実施形態>
次に、本発明の第14実施形態に係る内燃機関の制御装置(以下、単に「第14判定装置」と称呼する。)について説明する。
この第14判定装置は、第12判定装置のCPUが「図38のステップ3822にて使用する閾値時間TRRth、及び、ステップ3844にて使用する閾値時間TLLth」を「機関回転速度NEに応じて変化する値(より具体的には、機関回転速度NEが大きいほど小さくなる値)」に設定する点のみにおいて、第12判定装置と相違している。従って、以下、この相違点を中心として説明する。
第14判定装置のCPUは、第12判定装置のCPUが実行するルーチンに加えて、図43にフローチャートにより示した「閾値時間決定ルーチン」を所定時間(例えば、4ms)の経過毎に繰り返し実行するようになっている。
従って、所定のタイミングになると、CPUは図43のステップ4300から処理を開始してステップ4310に進み、機関回転速度NEを「図43のステップ4310のブロック内に示したリッチ閾値時間決定テーブルMapTRRth」に適用することにより、リッチ閾値時間TRRthを決定する。このリッチ閾値時間決定テーブルMapTRRthによれば、機関回転速度NEが大きくなるほどリッチ閾値時間TRRthが小さくなるように(リッチ閾値時間TRRthが機関回転速度NEに実質的に反比例するように)求められる。
次に、CPUはステップ4320に進み、機関回転速度NEを「ステップ4320のブロック内に示したリーン閾値時間決定テーブルMapTLLth」に適用することにより、リーン閾値時間TLLthを決定する。このリーン閾値時間決定テーブルMapTLLthによれば、機関回転速度NEが大きくなるほどリーン閾値時間TLLthが小さくなるように(リーン閾値時間TLLthが機関回転速度NEに実質的に反比例するように)求められる。その後、CPUはステップ4395に進んで本ルーチンを一旦終了する。
上述したように、空燃比気筒間インバランスが発生している場合、リッチピークは一つの単位燃焼サイクル間に1度だけ現れ、リーンピークは一つの単位燃焼サイクル間に1度だけ現れる。従って、空燃比気筒間インバランスが発生している場合のリッチピーク・リッチピーク時間TRRは機関回転速度NEが大きくなるにつれて短くなる。同様に、空燃比気筒間インバランスが発生している場合のリーンピーク・リーンピーク時間TRRは機関回転速度NEが大きくなるにつれて短くなる。
従って、第14判定装置のように、リッチ閾値時間TRRthを「機関回転速度NEに反比例し且つ空燃比気筒間インバランスが発生している場合のリッチピーク・リッチピークTRR時間よりも僅かに短い時間」に設定することにより、ノイズが重畳した空燃比センサ出力Vabyfsに基づいて空燃比変化率指示量が取得されることを回避することができる。同様に、第14判定装置のように、リーン閾値時間TLLthを「機関回転速度NEに反比例し且つ空燃比気筒間インバランスが発生している場合のリーンピーク・リーンピーク時間TLLよりも僅かに短い時間」に設定することにより、ノイズが重畳した空燃比センサ出力Vabyfsに基づいて空燃比変化率指示量が取得されることを回避することができる。
<第15実施形態>
次に、本発明の第15実施形態に係る内燃機関の制御装置(以下、単に「第15判定装置」と称呼する。)について説明する。
第15判定装置は、第8判定装置と同様にリッチピーク及びリーンピークを検出する。但し、第15判定装置は、前回のリッチピーク(時刻tRPold)から今回のリッチピーク(時刻tRP)までの期間において取得された検出空燃比変化率ΔAFのデータ数DnRRと、前回のリーンピーク(時刻tLPold)から今回のリーンピーク(時刻tLP)までの期間において取得された検出空燃比変化率ΔAFのデータ数DnLLと、の差の大きさが閾値αth以下であると判定されたとき、その時点から前の一燃焼サイクル期間内に取得された検出空燃比変化率ΔAFを空燃比変化率指示量の計算に使用しない(破棄する)。
更に、第15判定装置は、破棄されていない検出空燃比変化率ΔAFのデータ(有効データ数)の数が一定値Cokthに達すると、有効データのうち正の値を有する有効データの平均値を最終増大変化率平均値AveΔAFpとして求め、有効データのうち負の値を有する有効データの平均値を最終減少変化率平均値AveΔAFmとして求める。
そして、第15判定装置は、図23に示したルーチンを用いて空燃比気筒間インバランス判定を実施する。但し、第15判定装置は、図24及び図26の何れかに示されたルーチンを用いて空燃比気筒間インバランス判定を実施してもよい。
次に、第15判定装置の実際の作動について説明する。第15判定装置のCPUは、第8判定装置のCPUが実行するルーチン(図27に示したルーチンを除く。)を所定のタイミングにて実行するとともに、図27に示したルーチンに代わる「図44及び図45にフローチャートにより示したデータ取得ルーチン」を「4ms(所定の一定サンプリング時間ts)」が経過する毎に実行するようになっている。
従って、CPUは、所定のタイミングにて図44のステップ4400から処理を開始し、ステップ4402乃至ステップ4406の処理を行う。ステップ4402、ステップ4404及びステップ4406は、図17のステップ1710、ステップ1720及びステップ1730とそれぞれ同じである。従って、サンプリング時間tsの経過毎に、空燃比センサ出力Vabyfs、前回の検出空燃比abyfsold及び今回の検出空燃比abyfsが取得される。
次に、CPUはステップ4408に進み、判定許可フラグXkyokaの値が「1」であるか否かを判定する。この判定許可フラグXkyokaの値は、第2判定装置と同様、図20に示したルーチンにより設定される。
いま、判定許可フラグXkyokaの値が「0」であると仮定する。この場合、CPUはステップ4408にて「No」と判定し、ステップ4495に直接進んで本ルーチンを一旦終了する。
これに対し、判定許可フラグXkyokaの値が「1」であると、CPUはステップ4408にて「Yes」と判定してステップ4410に進み、今回の検出空燃比abyfsから前回の検出空燃比abyfsoldを減じることによって「現在の時刻tにおける検出空燃比変化率ΔAF(t)(=今回の検出空燃比abyfs−前回の検出空燃比abyfsold)」を求める。検出空燃比変化率ΔAF(t)は、時刻tに関連付けられながらRAMに格納されて行く。
次に、CPUはステップ4412に進み、検出空燃比変化率ΔAF(t)の大きさ(ΔAF(t)の絶対値|ΔAF(t)|)が有効判定閾値Yukoth以上であるか否かを判定する。この有効判定閾値Yukothは、気筒別空燃比が実質的に互いに一致している場合における検出空燃比変化率ΔAFの大きさ(|ΔAF|)の平均値又は最大値に、余裕代(マージン)としての所定値δを加えた値である。
このとき、検出空燃比変化率ΔAF(t)の大きさ(ΔAFの絶対値|ΔAF(t)|)が有効判定閾値Yukoth未満であると、CPUはステップ4412にて「No」と判定し、ステップ4495に直接進んで本ルーチンを一旦終了する。
これに対し、検出空燃比変化率ΔAF(t)の大きさ(ΔAFの絶対値|ΔAF(t)|)が有効判定閾値Yukoth以上であると、CPUはステップ4412にて「Yes」と判定し、以下に述べるステップ4414乃至ステップ4428のうちの適当なステップの処理を順に行い、ステップ4430に進む。
ステップ4414:CPUは、その時点において今回の検出空燃比変化率ΔAFとして保持しているデータを「前回の検出空燃比変化率ΔAFold」として格納する。これにより、前回の検出空燃比変化率ΔAFoldは、サンプリング時間ts(4ms)前に取得された検出空燃比変化率ΔAFとなる。
ステップ4416:CPUは、上記ステップ4410にて取得した現時点における検出空燃比変化率ΔAF(t)を「今回の検出空燃比変化率ΔAF」として格納する。
ステップ4418:CPUは、図27のステップ2732と同様、前回の検出空燃比変化率ΔAFoldが「0」以下であり、且つ、今回の検出空燃比変化率ΔAFが「0」より大きいか否かを判定する。即ち、CPUはステップ4418において、検出空燃比abyfsの傾きが負から正へと変化したか否か(検出空燃比abyfsが下に凸のピークである「リッチピーク」を通過したか否か)を判定する。CPUは、このステップ4418の判定条件が成立しているとステップ4420に進み、ステップ4418の判定条件が成立していなければステップ4424に進む。
ステップ4420:CPUは、現時点においてリッチピーク時刻tRPとして記憶されているデータを「前回のリッチピーク時刻tRPold」として格納する。
ステップ4422:CPUは、現在の時刻tからサンプリングtsだけ前の時刻を「今回のリッチピーク時刻tRP」として取得する。即ち、現時点において検出空燃比変化率ΔAFの値が負から正へと変更したことが確認されたので、CPUは、現在の時刻tからサンプリングtsだけ前の時刻にて、検出空燃比abyfsがリッチピークを迎えたと推定する。その後、CPUはステップ4430に進む。
ステップ4424:CPUは、「前回の検出空燃比変化率ΔAFoldが「0」以上であり、且つ、今回の検出空燃比変化率ΔAFが「0」より小さい」か否かを判定する。即ち、CPUは図27のステップ2746と同様のステップ4424において、検出空燃比abyfsの傾きが正から負へと変化したか否か(検出空燃比abyfsが上に凸のピークである「リーンピーク」を通過したか否か)を判定する。CPUは、このステップ4424の判定条件が成立しているとステップ4426に進み、ステップ4424の判定条件が成立していなければステップ4495に直接進んで本ルーチンを一旦終了する。
ステップ4426:CPUは、現時点においてリーンピーク時刻tLPとして記憶されているデータを「前回のリーンピーク時刻tLPold」として格納する。
ステップ4428:CPUは、現在の時刻tからサンプリングtsだけ前の時刻を「リーンピーク時刻tLP」として取得する。即ち、現時点において検出空燃比変化率ΔAFの値が正から負へと変更したことが確認されたので、CPUは、現在の時刻tからサンプリングtsだけ前の時刻にて、検出空燃比abyfsがリーンピークを迎えたと推定する。その後、CPUはステップ4430に進む。
CPUは、ステップ4430にて、前回のリッチピーク(時刻tRPold)から最新のリッチピーク(時刻tRP)までの期間(リッチピーク・リッチピーク期間)において取得され且つRAMに記憶されている検出空燃比変化率ΔAF(t)のデータ数DnRRと、前回のリーンピーク(時刻tLPold)から最新のリーンピーク(時刻tLP)までの期間(リーンピーク・リーンピーク期間)において取得され且つRAMに記憶されている検出空燃比変化率ΔAF(t)のデータ数DnLLと、を取得する。
次に、CPUはステップ4432に進み、データ数DnRRとデータ数DnLLとの差の大きさ|DnRR−DnLL|が閾値αth以下であるか否かを判定する。このとき、差の大きさ|DnRR−DnLL|が閾値αthよりも大きいと、CPUはステップ4432にて「No」と判定し、ステップ4495に直接進んで本ルーチンを一旦終了する。従って、この場合、有効判定閾値Yukoth以上の絶対値|ΔAF(t)|を有する検出空燃比変化率ΔAF(t)は破棄されない。
一方、CPUがステップ4432の処理を行う時点において、データ数DnRRとデータ数DnLLとの差の大きさ|DnRR−DnLL|が閾値αth以下であると判定されたとき、CPUはステップ4434に進んで「現時点がリッチピーク検出直後であるか否か(ステップ4418にて「Yes」と判定された直後であるか否か)」を判定する。
そして、CPUは、現時点がリッチピーク検出直後であるときステップ4436に進み、「前回のリッチピーク時刻tRPoldから今回のリッチピーク時刻tRPまでの期間(リッチピーク・リッチピーク期間)」内に取得された検出空燃比変化率ΔAF(t)(即ち、ΔAF(tRPold)〜ΔAF(tRP))を空燃比変化率指示量の計算に使用しないように破棄する。なお、CPUは、現時点からクランク角にして720°クランク角前の時点より現時点までの間の検出空燃比変化率ΔAF(t)を破棄してもよい。即ち、CPUは、現時点から単位燃焼サイクル期間前の時点から現時点までに得られた検出空燃比変化率ΔAF(t)を破棄してもよい。
これに対し、CPUがステップ4434の処理を行う時点において、現時点がリッチピーク検出直後でないとき(即ち、現時点がリーンピーク検出直後であるとき)、CPUはステップ4438に進み、「前回のリーンピーク時刻tLPoldから今回のリーンピーク時刻tLPまでの期間(リーンピーク・リーンピーク期間)」内に取得された検出空燃比変化率ΔAFを空燃比変化率指示量の計算に使用しないように破棄する。なお、CPUは、現時点からクランク角にして720°クランク角前の時点より現時点までの間の検出空燃比変化率ΔAF(t)を破棄してもよい。即ち、CPUは、現時点から単位燃焼サイクル期間前の時点から現時点までに得られた検出空燃比変化率ΔAF(t)を破棄してもよい。
更に、前述したように、CPUは図45に示したデータ取得ルーチンを4msが経過する毎に実行するようになっている。従って、所定のタイミングになると、CPUは図45のステップ4500から処理を開始してステップ4510に進み、判定許可フラグXkyokaの値が「1」である状態の積算時間が所定時間に到達したか否かを判定する。なお、このステップにおいて、CPUは「判定許可フラグXkyokaが「1」である状態の積算クランク角が所定クランク角に到達したか否か」を判定してもよい。
このとき、判定許可フラグXkyokaの値が「1」である状態の積算時間が所定時間に到達していなければ、CPUはステップ4510にて「No」と判定し、ステップ4595に直接進んで本ルーチンを一旦終了する。
一方、CPUがステップ4510の処理を行う時点において、判定許可フラグXkyokaの値が「1」である状態の積算時間が所定時間に到達していると、CPUはそのステップ4510にて「Yes」と判定し、有効データ数が一定値Cokth以上であるか否かを判定する。この有効データ数は、「検出空燃比変化率ΔAF(t)の大きさ(ΔAF(t)の絶対値|ΔAF(t)|)が有効判定閾値Yukoth以上であり、且つ、図44のステップ4436又はステップ4438において破棄されていない検出空燃比変化率ΔAF(t)」のデータの数である。
このとき、有効データ数が所定値Cokth未満であると、CPUはステップ4520にて「No」と判定してステップ4595に直接進んで本ルーチンを一旦終了する。
これに対し、有効データ数が所定値Cokth以上であると、CPUはステップ4520にて「Yes」と判定し、以下に述べるステップ4530乃至ステップ4550の処理を順に行い、ステップ4595に進んで本ルーチンを一旦終了する。
ステップ4530:CPUは、有効データのうち正の値を有する有効データΔAF(t)の平均値を最終増大変化率平均値(空燃比変化率指示量の一つである増大変化率指示量)AveΔAFpとして求める。
ステップ4540:CPUは、有効データのうち負の値を有する有効データΔAF(t)の平均値を最終減少変化率平均値(空燃比変化率指示量の一つである減少変化率指示量)AveΔAFmとして求める。
ステップ4550:CPUは、判定実行フラグXhanteiの値を「1」に設定する。
この結果、判定実行フラグXhanteiの値が「1」に変更されるので、CPUは図23に示したルーチンのステップ2310以降に進み、「図45のステップ4530にて求めた増大変化率指示量(即ち、最終増大変化率平均値AveΔAFp)」及び「図45のステップ4540にて求めた減少変化率指示量(即ち、最終減少変化率平均値AveΔAFm)」を用いた空燃比気筒間インバランス判定を実施する。
前述したように、CPUは、検出空燃比変化率ΔAFの大きさ(ΔAFの絶対値|ΔAF|)が有効判定閾値Yukothより小さい検出空燃比変化率ΔAF(無効データ)を、最終増大変化率平均値AveΔAFp及び最終減少変化率平均値AveΔAFmの算出に使用しない(ステップ4412からステップ4495へと直接進む場合を参照。)。更に、CPUは、データ数DnRRとデータ数DnLLとの差の大きさ|DnRR−DnLL|が閾値αth以下であるとき、換言すると、データ数DnRRとデータ数DnLLとの差が小さく空燃比気筒間インバランスが発生している可能性がないと判定されるとき、少なくとも「その判定時点から所定期間前の時点」から「その判定時点」までに得られた検出空燃比変化率ΔAF(t)を最終増大変化率平均値AveΔAFp及び最終減少変化率平均値AveΔAFmの算出に使用しない(ステップ4432乃至ステップ4438を参照。)。
この結果、特別なフィルタを用いることなく、検出空燃比変化率ΔAFに重畳しているノイズの「増大変化率指示量及び減少変化率指示量への影響」を低減することができる。従って、第15判定装置は、空燃比気筒間インバランス判定をより精度良くことができる。
<第16実施形態>
次に、本発明の第16実施形態に係る内燃機関の制御装置(以下、単に「第16判定装置」と称呼する。)について説明する。
第16判定装置は、第8判定装置と同様にリッチピーク及びリーンピークを検出する。但し、第16判定装置は、空燃比気筒間インバランスが発生していると判定されたとき、その空燃比気筒間インバランスが特定気筒リッチずれインバランス状態であれば、その特定気筒をリッチピーク時刻tRPoldと機関回転速度NEとから特定する。同様に、第16判定装置は、空燃比気筒間インバランスが発生していると判定されたとき、その空燃比気筒間インバランスが特定気筒リーンずれインバランス状態であれば、その特定気筒をリーンピーク時刻tLPoldと機関回転速度NEとから特定する。以下、第16判定装置の作動について説明する。
第16判定装置のCPUは、第8判定装置のCPUが実行するルーチンに加え、図46及び図47に示した「ピーク発生気筒特定ルーチン」を所定時間が経過する毎に実行するようになっている。従って、所定のタイミングになると、CPUは図46のステップ4600から処理を開始してステップ4605に進み、現時点が「基準気筒(本例においては第1気筒#1)の圧縮上死点」であるか否かを判定する。
そして、現時点が「基準気筒の圧縮上死点」であれば、CPUはステップ4605にて「Yes」と判定してステップ4610に進み、現在の時刻を基準気筒の圧縮上死点の時刻tSTとして格納する。その後、CPUはステップ4615に進む。これに対し、現時点が「基準気筒の圧縮上死点」であなければ、CPUはステップ4605にて「No」と判定し、ステップ4615に直接進む。
次に、CPUはステップ4615にて、現時点が「リッチピーク時刻tRPを取得した直後の時点(図27のステップ2734の処理を実行した直後)」であるか否かを判定する。現時点が「リッチピーク時刻tRPを取得した直後の時点」でなければ、CPUはステップ4635に直接進む。
これに対し、現時点が「リッチピーク時刻tRPを取得した直後の時点」であると、CPUはステップ4615にて「Yes」と判定し、以下に述べるステップ4620乃至ステップ4630の処理を順に行い、ステップ4635に進む。
ステップ4620:CPUは、図27のステップ2734にて取得されたリッチピーク時刻tRPから基準気筒の圧縮上死点の時刻tSTを減じることにより、基準気筒の圧縮上死点からリッチピーク時刻tRPまでの時間tsrを算出する。
ステップ4625:CPUは、機関回転速度NEと時間tsrとから、そのリッチピークをもたらした排ガスはどの気筒Nから排出された排ガスであるのか(リッチピークをもたらした気筒N)を特定する。
ある特定気筒の気筒別空燃比が理論空燃比よりもリッチ側に偏移しているとき、その気筒から排出された排ガスの空燃比が空燃比センサ出力Vabyfsとして現れるまでの時間は、機関回転速度NEに応じて変化する。従って、機関回転速度及び時間tsrによれば、リッチピークをもたらした排ガスはどの気筒Nから排出されたのかを特定することができる。なお、CPUは、ステップ4625において、吸入空気流量Ga、機関回転速度NE及び時間tsrに基づいて、そのリッチピークをもたらした気筒Nを特定してもよい。
ステップ4630:CPUは、ステップ4625にて特定した気筒Nに対応するカウンタCR(N)の値を「1」だけ増大する。例えば、ステップ4625にて特定された気筒が第1気筒であれば、カウンタCR(1)が「1」だけ増大される。なお、カウンタCR(N)は上述したイニシャルルーチンにおいて総て「0」に設定されるようになっている。
次に、CPUはステップ4635にて、現時点が「リーンピーク時刻tRLを取得した直後の時点(図27のステップ2748の処理を実行した直後)」であるか否かを判定する。現時点が「リーンピーク時刻tRLを取得した直後の時点」でなければ、CPUはステップ4695に直接進んで本ルーチンを一旦終了する。
これに対し、現時点が「リーンピーク時刻tRLを取得した直後の時点」であると、CPUはステップ4635にて「Yes」と判定し、以下に述べるステップ4640乃至ステップ4650の処理を順に行い、ステップ4635に進んで本ルーチンを一旦終了する。
ステップ4640:CPUは、図27のステップ2748にて取得されたリーンピーク時刻tRLから基準気筒の圧縮上死点の時刻tSTを減じることにより、基準気筒の圧縮上死点からリーンピーク時刻tRLまでの時間tslを算出する。
ステップ4645:CPUは、機関回転速度NEと時間tslとから、そのリーンピークをもたらした排ガスはどの気筒から排出された排ガスであるのか(リーンピークをもたらした気筒N)を特定する。
ある特定気筒の気筒別空燃比が理論空燃比よりもリーン側に偏移しているとき、その気筒から排出された排ガスの空燃比が空燃比センサ出力Vabyfsとして現れるまでの時間は、機関回転速度NEに応じて変化する。従って、機関回転速度及び時間tslによれば、リーンピークをもたらした排ガスはどの気筒Nから排出されたのかを特定することができる。なお、CPUは、ステップ4645において、吸入空気流量Ga、機関回転速度NE及び時間tslに基づいて、そのリーンピークをもたらした気筒Nを特定してもよい。
ステップ4650:CPUは、ステップ4645にて特定した気筒Nに対応するカウンタCL(N)の値を「1」だけ増大する。例えば、ステップ4645にて特定された気筒が第1気筒であれば、カウンタCL(1)が「1」だけ増大される。なお、カウンタCL(N)は上述したイニシャルルーチンにおいて総て「0」に設定されるようになっている。
更に、所定のタイミングになると、CPUは図47のステップ4700から処理を開始してステップ4710に進み、現時点は「リッチずれインバランス発生フラグXINBRの値が「0」から「1」へと変化した時点」の直後であるか否かを判定する。このとき、ステップ4710の条件が満たされなければ、CPUはステップ4710にて「No」と判定し、ステップ4730に直接進む。
これに対し、ステップ4710の条件が成立していると、CPUはステップ4710にて「Yes」と判定してステップ4720に進み、カウンタCR(m)(mは1〜Nの自然数)のうち最大値を有するカウンタCR(n)を選択し、第n気筒がリッチずれした気筒であると特定する。その後、CPUはステップ4730に進む。
CPUはステップ4730に進み、現時点は「リーンずれインバランス発生フラグXINBLの値が「0」から「1」へと変化した時点」の直後であるか否かを判定する。このとき、ステップ4730の条件が満たされなければ、CPUはステップ4730にて「No」と判定し、ステップ4795に直接進んで本ルーチンを一旦終了する。
これに対し、ステップ4730の条件が成立していると、CPUはステップ4730にて「Yes」と判定してステップ4740に進み、カウンタCL(m)(mは1〜Nの自然数)のうち最大値を有するカウンタCL(n)を選択し、第n気筒がリーンずれした気筒であると特定する。その後、CPUはステップ4795に進んで本ルーチンを一旦終了する。
このように、第16判定装置は、リッチピークが発生した時刻tRP又はリーンピークが発生した時刻tLPに基づいて、何れの気筒がリッチずれ又はリーンずれを起こしているのかを特定することができる。
以上、説明したように、本発明に係る空燃比気筒間インバランス判定装置の各実施形態は、検出空燃比変化率ΔAFに応じて変化する空燃比変化率指示量を利用することにより、空燃比気筒間インバランスが発生しているか否かを精度良く判定することができる。
本発明は上記実施形態に限定されることはなく、本発明の範囲内において種々の変形例を採用することができる。例えば、空燃比気筒間インバランス判定を実行する際(空燃比変化率指示量を取得する際)、メインフィードバック制御条件及びサブフィードバック制御条件の何れか一方を不成立とし、機関に供給される混合気の空燃比を一定の値(理論空燃比相当)に維持してもよい。

Claims (30)

  1. 複数の気筒を有する多気筒内燃機関に適用される空燃比気筒間インバランス判定装置であって、
    前記機関の排気通路であって前記複数の気筒のうちの少なくとも2以上の気筒から排出された排ガスが集合する排気集合部、又は、同排気通路であって同排気集合部よりも下流側の部位、に配設されるとともに、空燃比検出素子と、前記空燃比検出素子を覆うように同空燃比検出素子をその内部に収容し且つ前記排気通路を流れる排ガスを前記内部に流入させる流入孔及び前記内部に流入した排ガスを前記排気通路に流出させる流出孔を備える保護カバーと、を含む空燃比センサであって、前記空燃比検出素子が同空燃比検出素子に到達した排ガスの空燃比に応じた出力を空燃比センサ出力として発生する、空燃比センサと、
    前記空燃比センサ出力により表される空燃比の単位時間当たりの変化量である検出空燃比変化率に応じて変化する空燃比変化率指示量を前記空燃比センサ出力に基づいて取得するとともに、前記少なくとも2以上の気筒のそれぞれに供給される混合気の空燃比である気筒別空燃比の間に不均衡が生じている空燃比気筒間インバランス状態が発生しているか否かの判定を、前記取得された空燃比変化率指示量に基づいて実行するインバランス判定手段と、
    を備えた空燃比気筒間インバランス判定装置。
  2. 請求の範囲1に記載の空燃比気筒間インバランス判定装置において、
    前記インバランス判定手段は、
    前記取得された空燃比変化率指示量の大きさと所定のインバランス判定用閾値とを比較し、その比較の結果に基づいて前記空燃比気筒間インバランス状態が発生しているか否かを判定するように構成された空燃比気筒間インバランス判定装置。
  3. 請求の範囲2に記載の空燃比気筒間インバランス判定装置において、
    前記インバランス判定手段は、
    前記取得された空燃比変化率指示量の大きさが前記インバランス判定用閾値よりも大きいことを前記比較の結果が示した場合に前記空燃比気筒間インバランス状態が発生していると判定するように構成された空燃比気筒間インバランス判定装置。
  4. 請求の範囲2又は請求の範囲3に記載の空燃比気筒間インバランス判定装置において、
    前記インバランス判定手段は、
    一定のサンプリング期間が経過する毎に前記空燃比センサ出力を取得するとともに、前記サンプリング期間を挟んで連続して取得された二つの前記空燃比センサ出力のそれぞれにより表される空燃比の差を、前記空燃比変化率指示量として取得するように構成された空燃比気筒間インバランス判定装置。
  5. 請求の範囲2又は請求の範囲3に記載の空燃比気筒間インバランス判定装置において、
    前記インバランス判定手段は、
    一定のサンプリング期間が経過する毎に前記空燃比センサ出力を取得するとともに、前記サンプリング期間を挟んで連続して取得された二つの前記空燃比センサ出力のそれぞれにより表される空燃比の差を前記検出空燃比変化率として取得し、且つ、前記サンプリング期間よりも長いデータ取得期間において前記検出空燃比変化率を複数取得するとともに、前記取得された複数の前記検出空燃比変化率の大きさの平均値を前記空燃比変化率指示量として取得するように構成された空燃比気筒間インバランス判定装置。
  6. 請求の範囲2又は請求の範囲3に記載の空燃比気筒間インバランス判定装置において、
    前記インバランス判定手段は、
    一定のサンプリング期間が経過する毎に前記空燃比センサ出力を取得するとともに、前記サンプリング期間を挟んで連続して取得された二つの前記空燃比センサ出力のそれぞれにより表される空燃比の差を前記検出空燃比変化率として取得し、且つ、前記サンプリング期間よりも長いデータ取得期間において前記検出空燃比変化率を複数取得するとともに、前記取得された複数の検出空燃比変化率のうちその大きさが最大である検出空燃比変化率を前記空燃比変化率指示量として取得するように構成された空燃比気筒間インバランス判定装置。
  7. 請求の範囲5又は請求の範囲6に記載の空燃比気筒間インバランス判定装置において、
    前記データ取得期間は、前記排気集合部に排ガスを排出する前記少なくとも2以上の気筒のうちの任意の一つの気筒が、吸気行程、圧縮行程、膨張行程及び排気行程からなる一つの燃焼サイクルを終了するのに要する期間である単位燃焼サイクル期間の自然数倍の期間に定められている空燃比気筒間インバランス判定装置。
  8. 請求の範囲6に記載の空燃比気筒間インバランス判定装置において、
    前記データ取得期間は、前記排気集合部に排ガスを排出する前記少なくとも2以上の気筒のうちの任意の一つの気筒が、吸気行程、圧縮行程、膨張行程及び排気行程からなる一つの燃焼サイクルを終了するのに要する期間である単位燃焼サイクル期間の長さ以上の期間に定められている空燃比気筒間インバランス判定装置。
  9. 請求の範囲2又は請求の範囲3に記載の空燃比気筒間インバランス判定装置において、
    前記インバランス判定手段は、
    前記排気集合部に排ガスを排出する前記少なくとも2以上の気筒のうちの任意の一つの気筒が、吸気行程、圧縮行程、膨張行程及び排気行程からなる一つの燃焼サイクルを終了するのに要する期間である単位燃焼サイクル期間よりも短い一定のサンプリング期間が経過する毎に前記空燃比センサ出力を取得し、
    前記サンプリング期間を挟んで連続して取得された二つの前記空燃比センサ出力のそれぞれにより表される空燃比の差を前記検出空燃比変化率として取得し、
    前記単位燃焼サイクル期間において取得された複数の前記検出空燃比変化率の中からその大きさが最大である検出空燃比変化率を最大変化率として選択し、
    複数の前記単位燃焼サイクル期間のそれぞれに対して選択された前記最大変化率の平均値を求め、同平均値を前記空燃比変化率指示量として取得するように構成された空燃比気筒間インバランス判定装置。
  10. 請求の範囲1乃至請求の範囲9の何れか一項に記載の空燃比気筒間インバランス判定装置において、
    前記インバランス判定手段は、
    単位時間あたりに前記機関に吸入される空気の量である吸入空気流量が所定の第1閾値空気流量よりも大きいとき前記空燃比気筒間インバランス状態が発生しているか否かの判定を実行し、前記吸入空気流量が前記第1閾値空気流量よりも小さいとき前記空燃比気筒間インバランス状態が発生しているか否かの判定を実行しないように構成された空燃比気筒間インバランス判定装置。
  11. 請求の範囲2乃至請求の範囲9の何れか一項に記載の空燃比気筒間インバランス判定装置において、
    前記インバランス判定手段は、
    単位時間あたりに前記機関に吸入される空気の量である吸入空気流量が大きいほど前記インバランス判定用閾値を大きい値に変更するように構成された空燃比気筒間インバランス判定装置。
  12. 請求の範囲2に記載の空燃比気筒間インバランス判定装置において、
    前記インバランス判定手段は、
    前記空燃比変化率指示量を、前記検出空燃比変化率が正である場合の増大変化率指示量と前記検出空燃比変化率が負である場合の減少変化率指示量とに区別して取得し、
    前記増大変化率指示量の大きさが前記減少変化率指示量の大きさよりも大きい場合には前記増大変化率指示量の大きさと前記インバランス判定用閾値としての増大変化率閾値とを比較するとともに、前記増大変化率指示量の大きさが前記増大変化率閾値よりも大きいとき前記少なくとも2気筒のうちの一つの気筒の空燃比が理論空燃比よりもリーン側に偏移した空燃比気筒間インバランス状態が発生したと判定し、
    前記減少変化率指示量の大きさが前記増大変化率指示量の大きさよりも大きい場合には前記減少変化率指示量の大きさと前記インバランス判定用閾値としての減少変化率閾値とを比較するとともに、前記減少変化率指示量の大きさが前記減少変化率閾値よりも大きいとき前記少なくとも2気筒のうちの一つの気筒の空燃比が理論空燃比よりもリッチ側に偏移した空燃比気筒間インバランス状態が発生したと判定する、
    ように構成された空燃比気筒間インバランス判定装置。
  13. 請求の範囲2に記載の空燃比気筒間インバランス判定装置において、
    前記インバランス判定手段は、
    前記空燃比変化率指示量を、前記検出空燃比変化率が正である場合の増大変化率指示量と前記検出空燃比変化率が負である場合の減少変化率指示量とに区別して取得し、
    前記増大変化率指示量の大きさと前記インバランス判定用閾値としての増大変化率閾値とを比較するとともに、前記減少変化率指示量の大きさと前記インバランス判定用閾値としての減少変化率閾値とを比較し、
    前記増大変化率指示量の大きさが前記増大変化率閾値よりも大きく且つ前記減少変化率指示量の大きさが前記減少変化率閾値の大きさよりも大きい場合に前記空燃比気筒間インバランス状態が発生していると判定する、
    ように構成された空燃比気筒間インバランス判定装置。
  14. 請求の範囲13に記載の空燃比気筒間インバランス判定装置において、
    前記インバランス判定手段は、
    前記増大変化率指示量の大きさが前記増大変化率閾値よりも大きく且つ前記減少変化率指示量の大きさが前記減少変化率閾値よりも大きい場合、
    前記増大変化率指示量の大きさが前記減少変化率指示量の大きさよりも大きいときには前記少なくとも2気筒のうちの一つの気筒の空燃比が理論空燃比よりもリーン側に偏移した空燃比気筒間インバランス状態が発生したと判定し、
    前記減少変化率指示量の大きさが前記増大変化率指示量の大きさよりも大きいときには前記少なくとも2気筒のうちの一つの気筒の空燃比が理論空燃比よりもリッチ側に偏移した空燃比気筒間インバランス状態が発生したと判定する、
    ように構成された空燃比気筒間インバランス判定装置。
  15. 請求の範囲12乃至請求の範囲14の何れか一項に記載の空燃比気筒間インバランス判定装置において、
    前記インバランス判定手段は、
    一定のサンプリング期間が経過する毎に前記空燃比センサ出力を取得するとともに、前記サンプリング期間を挟んで連続して取得された二つの前記空燃比センサ出力のそれぞれにより表される空燃比の差を前記検出空燃比変化率として取得し、且つ、前記サンプリング期間よりも長いデータ取得期間において取得された複数の前記検出空燃比変化率のうちの正の値を有する変化率の大きさの平均値を前記増大変化率指示量として取得するとともに、前記複数の前記検出空燃比変化率のうちの負の値を有する変化率の大きさの平均値を前記減少変化率指示量として取得するように構成された空燃比気筒間インバランス判定装置。
  16. 請求の範囲12乃至請求の範囲14の何れか一項に記載の空燃比気筒間インバランス判定装置において、
    前記インバランス判定手段は、
    一定のサンプリング期間が経過する毎に前記空燃比センサ出力を取得するとともに、前記サンプリング期間を挟んで連続して取得された二つの前記空燃比センサ出力のそれぞれにより表される空燃比の差を前記検出空燃比変化率として取得し、且つ、前記サンプリング期間よりも長いデータ取得期間において取得された複数の前記検出空燃比変化率のうちの正の値を有する変化率の中からその大きさが最大である検出空燃比変化率を前記増大変化率指示量として取得するとともに同複数の検出空燃比変化率のうちの負の値を有する変化率の中からその大きさが最大である検出空燃比変化率を前記減少変化率指示量として取得するように構成された空燃比気筒間インバランス判定装置。
  17. 請求の範囲15又は請求の範囲16に記載の空燃比気筒間インバランス判定装置において、
    前記データ取得期間は、前記排気集合部に排ガスを排出する前記少なくとも2以上の気筒のうちの任意の一つの気筒が、吸気行程、圧縮行程、膨張行程及び排気行程からなる一つの燃焼サイクルを終了するのに要する期間である単位燃焼サイクル期間の自然数倍の期間に定められている空燃比気筒間インバランス判定装置。
  18. 請求の範囲12乃至請求の範囲14の何れか一項に記載の空燃比気筒間インバランス判定装置において、
    前記インバランス判定手段は、
    前記排気集合部に排ガスを排出する前記少なくとも2以上の気筒のうちの任意の一つの気筒が、吸気行程、圧縮行程、膨張行程及び排気行程からなる一つの燃焼サイクルを終了するのに要する期間である単位燃焼サイクル期間よりも短い一定のサンプリング期間が経過する毎に前記空燃比センサ出力を取得し且つ前記サンプリング期間を挟んで連続して取得された二つの前記空燃比センサ出力のそれぞれにより表される空燃比の差を前記検出空燃比変化率として取得し、更に、
    前記単位燃焼サイクル期間において取得された複数の前記検出空燃比変化率のうちの正の値を有する変化率の中からその大きさが最大である検出空燃比変化率を増大変化率最大値として選択するとともに複数の前記単位燃焼サイクル期間に対して選択された前記増大変化率最大値の平均値を求め、同平均値を前記増大変化率指示量として取得し、且つ、
    前記単位燃焼サイクル期間において取得された複数の前記検出空燃比変化率のうちの負の値を有する変化率の中からその大きさが最大である検出空燃比変化率を減少変化率最大値として選択するとともに複数の前記単位燃焼サイクル期間に対して選択された前記減少変化率最大値の平均値を求め、同平均値を前記減少変化率指示量として取得する、
    ように構成された空燃比気筒間インバランス判定装置。
  19. 請求の範囲2に記載の空燃比気筒間インバランス判定装置において、
    前記インバランス判定手段は、
    前記空燃比変化率指示量として、前記検出空燃比変化率が正である場合の前記検出空燃比変化率の大きさに対応した値である増大変化率指示量を取得し、
    前記インバランス判定用閾値として、前記検出空燃比変化率が負である場合の前記検出空燃比変化率の大きさに対応した値である減少変化率指示量を取得し、
    前記増大変化率指示量と前記減少変化率指示量との差の絶対値が所定の閾値以上であるか否かを判定することにより、前記空燃比変化率指示量の大きさと前記インバランス判定用閾値との比較を行うように構成された空燃比気筒間インバランス判定装置。
  20. 請求の範囲2に記載の空燃比気筒間インバランス判定装置において、
    前記インバランス判定手段は、
    前記空燃比変化率指示量として、前記検出空燃比変化率が負である場合の前記検出空燃比変化率の大きさに対応した値である減少変化率指示量を取得し、
    前記インバランス判定用閾値として、前記検出空燃比変化率が正である場合の前記検出空燃比変化率の大きさに対応した値である増大変化率指示量を取得し、
    前記減少変化率指示量と前記増大変化率指示量との差の絶対値が所定の閾値以上であるか否かを判定することにより、前記空燃比変化率指示量の大きさと前記インバランス判定用閾値との比較を行うように構成された空燃比気筒間インバランス判定装置。
  21. 請求の範囲19又は請求の範囲20に記載の空燃比気筒間インバランス判定装置において、
    前記インバランス判定手段は、
    前記減少変化率指示量が前記増大変化率指示量よりも大きいとき前記少なくとも2気筒のうちの一つの気筒の空燃比が理論空燃比よりもリッチ側に偏移した空燃比気筒間インバランス状態が発生したと判定し、
    前記増大変化率指示量が前記減少変化率指示量よりも大きいとき前記少なくとも2気筒のうちの一つの気筒の空燃比が理論空燃比よりもリーン側に偏移した空燃比気筒間インバランス状態が発生したと判定する、
    ように構成された空燃比気筒間インバランス判定装置。
  22. 請求の範囲19乃至請求の範囲21の何れか一項に記載の空燃比気筒間インバランス判定装置において、
    前記インバランス判定手段は、
    一定のサンプリング期間が経過する毎に前記空燃比センサ出力を取得するとともに、前記サンプリング期間を挟んで連続して取得された二つの前記空燃比センサ出力のそれぞれにより表される空燃比の差を前記検出空燃比変化率として取得し、且つ、前記サンプリング期間よりも長いデータ取得期間において取得された複数の前記検出空燃比変化率のうちの正の値を有する検出空燃比変化率の大きさの平均値を前記増大変化率指示量として取得するとともに、前記複数の検出空燃比変化率のうちの負の値を有する検出空燃比変化率の大きさの平均値を前記減少変化率指示量として取得するように構成された空燃比気筒間インバランス判定装置。
  23. 請求の範囲19乃至請求の範囲21の何れか一項に記載の空燃比気筒間インバランス判定装置において、
    前記インバランス判定手段は、
    一定のサンプリング期間が経過する毎に前記空燃比センサ出力を取得するとともに、前記サンプリング期間を挟んで連続して取得された二つの前記空燃比センサ出力のそれぞれにより表される空燃比の差を前記検出空燃比変化率として取得し、前記サンプリング期間よりも長い期間であって前記排気集合部に排ガスを排出する前記少なくとも2以上の気筒のうちの任意の一つの気筒が、吸気行程、圧縮行程、膨張行程及び排気行程からなる一つの燃焼サイクルを終了するのに要する期間である単位燃焼サイクル期間において取得された複数の前記検出空燃比変化率のうちの正の値を有する変化率の中からその大きさが最大である検出空燃比変化率に応じた値を前記増大変化率指示量として取得するとともに同複数の検出空燃比変化率のうちの負の値を有する変化率の中からその大きさが最大である検出空燃比変化率に応じた値を前記減少変化率指示量として取得するように構成された空燃比気筒間インバランス判定装置。
  24. 請求の範囲2又は請求の範囲3に記載の空燃比気筒間インバランス判定装置において、
    前記インバランス判定手段は、
    一定のサンプリング期間が経過する毎に前記空燃比センサ出力を取得するとともに、前記サンプリング期間を挟んで連続して取得された二つの前記空燃比センサ出力のそれぞれにより表される空燃比の差を前記検出空燃比変化率として取得し、且つ、
    前記取得された検出空燃比変化率の大きさが所定の有効判定閾値以上であるときその検出空燃比変化率を前記空燃比変化率指示量を取得するためのデータとして使用し、前記取得された検出空燃比変化率の大きさが所定の有効判定閾値未満であるときその検出空燃比変化率を前記空燃比変化率指示量を取得するためのデータとして使用しないように構成された空燃比気筒間インバランス判定装置。
  25. 請求の範囲1に記載の空燃比気筒間インバランス判定装置において、
    前記インバランス判定手段は、
    一定のサンプリング期間が経過する毎に前記空燃比センサ出力を取得するとともに、前記サンプリング期間を挟んで連続して取得された二つの前記空燃比センサ出力のそれぞれにより表される空燃比の差を前記検出空燃比変化率として取得し、且つ、前記サンプリング期間よりも長いデータ取得期間において取得された複数の前記検出空燃比変化率のうちその大きさが所定の有効判定閾値以上である検出空燃比変化率のデータの数を表す有効データ数を前記空燃比変化率指示量の一つとして取得するとともに、同データ取得期間において取得された複数の前記検出空燃比変化率のうちその大きさが同有効判定閾値未満である検出空燃比変化率のデータの数を表す無効データ数を前記空燃比変化率指示量の他の一つとして取得し、
    前記有効データ数と前記無効データ数とに基づいて前記空燃比気筒間インバランス状態が発生しているか否かを判定するように構成された空燃比気筒間インバランス判定装置。
  26. 請求の範囲25に記載の空燃比気筒間インバランス判定装置において、
    前記インバランス判定手段は、
    前記有効データ数が、前記有効データ数と前記無効データ数との和である全データ数に基づいて変化するデータ数閾値よりも多いとき、前記空燃比気筒間インバランス状態が発生していると判定するように構成された空燃比気筒間インバランス判定装置。
  27. 請求の範囲2又は請求の範囲3に記載の空燃比気筒間インバランス判定装置において、
    前記インバランス判定手段は、
    一定のサンプリング期間が経過する毎に前記空燃比センサ出力を取得するとともに、前記サンプリング期間を挟んで連続して取得された二つの前記空燃比センサ出力のそれぞれにより表される空燃比の差を前記検出空燃比変化率として取得し、且つ、
    前記取得された検出空燃比変化率が正の値から負の値へと変化した時点をリーンピーク時点として検出し、且つ、その検出したリーンピーク時点の前又は後の所定時間内に取得された前記検出空燃比変化率を、前記空燃比変化率指示量を取得するためのデータとして使用しないように構成された空燃比気筒間インバランス判定装置。
  28. 請求の範囲2又は請求の範囲3に記載の空燃比気筒間インバランス判定装置において、
    前記インバランス判定手段は、
    一定のサンプリング期間が経過する毎に前記空燃比センサ出力を取得するとともに、前記サンプリング期間を挟んで連続して取得された二つの前記空燃比センサ出力のそれぞれにより表される空燃比の差を前記検出空燃比変化率として取得し、且つ、
    前記取得された検出空燃比変化率が負の値から正の値へと変化した時点をリッチピーク時点として検出し、且つ、その検出したリッチピーク時点の前又は後の所定時間内に取得された前記検出空燃比変化率を、前記空燃比変化率指示量を取得するためのデータとして使用しないように構成された空燃比気筒間インバランス判定装置。
  29. 請求の範囲2又は請求の範囲3に記載の空燃比気筒間インバランス判定装置において、
    前記インバランス判定手段は、
    一定のサンプリング期間が経過する毎に前記空燃比センサ出力を取得するとともに、前記サンプリング期間を挟んで連続して取得された二つの前記空燃比センサ出力のそれぞれにより表される空燃比の差を前記検出空燃比変化率として取得し、且つ、
    前記取得された検出空燃比変化率が正の値から負の値へと変化した時点をリーンピーク時点として検出するとともに、連続して検出される二つのリーンピーク時点間の時間であるリーンピーク・リーンピーク時間が閾値時間よりも短い場合、その二つのリーンピーク時点間において取得された前記検出空燃比変化率を空燃比変化率指示量のデータとして使用しないように構成された空燃比気筒間インバランス判定装置。
  30. 請求の範囲2又は請求の範囲3に記載の空燃比気筒間インバランス判定装置において、
    前記インバランス判定手段は、
    一定のサンプリング期間が経過する毎に前記空燃比センサ出力を取得するとともに、前記サンプリング期間を挟んで連続して取得された二つの前記空燃比センサ出力のそれぞれにより表される空燃比の差を前記検出空燃比変化率として取得し、且つ、
    前記取得された検出空燃比変化率が負の値から正の値へと変化した時点をリッチピーク時点として検出するとともに、連続して検出される二つのリッチピーク時点間の時間であるリッチピーク・リッチピーク時間が閾値時間よりも短い場合、その二つのリッチピーク時点間において取得された前記検出空燃比変化率を空燃比変化率指示量のデータとして使用しないように構成された空燃比気筒間インバランス判定装置。
JP2011520727A 2009-07-02 2009-07-02 内燃機関の空燃比気筒間インバランス判定装置 Expired - Fee Related JP5115657B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2009/062494 WO2011001539A1 (ja) 2009-07-02 2009-07-02 内燃機関の空燃比気筒間インバランス判定装置

Publications (2)

Publication Number Publication Date
JPWO2011001539A1 true JPWO2011001539A1 (ja) 2012-12-10
JP5115657B2 JP5115657B2 (ja) 2013-01-09

Family

ID=43410636

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011520727A Expired - Fee Related JP5115657B2 (ja) 2009-07-02 2009-07-02 内燃機関の空燃比気筒間インバランス判定装置

Country Status (5)

Country Link
US (1) US8452517B2 (ja)
EP (1) EP2450554B1 (ja)
JP (1) JP5115657B2 (ja)
CN (1) CN102472191B (ja)
WO (1) WO2011001539A1 (ja)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8650943B2 (en) * 2009-08-28 2014-02-18 Toyota Jidosha Kabushiki Kaisha Apparatus for determining an air-fuel ratio imbalance among cylinders of an internal combustion engine
JP5522392B2 (ja) * 2010-07-30 2014-06-18 トヨタ自動車株式会社 内燃機関の燃料噴射量制御装置
JP5510158B2 (ja) * 2010-07-30 2014-06-04 トヨタ自動車株式会社 内燃機関の燃料噴射量制御装置
BR112013003219B8 (pt) 2010-08-12 2021-08-17 Toyota Motor Co Ltd aparelho de controle de quantidade de injeção de combustível para um motor de combustão interna
JP5348190B2 (ja) * 2011-06-29 2013-11-20 トヨタ自動車株式会社 内燃機関の制御装置
JP5304862B2 (ja) * 2011-09-21 2013-10-02 トヨタ自動車株式会社 内燃機関の空燃比気筒間インバランス判定装置
JP2013160054A (ja) 2012-02-01 2013-08-19 Toyota Motor Corp 内燃機関の空燃比インバランス検出装置
JP5790523B2 (ja) * 2012-02-01 2015-10-07 トヨタ自動車株式会社 空燃比インバランス判定装置
JP5829935B2 (ja) 2012-02-03 2015-12-09 トヨタ自動車株式会社 内燃機関の空燃比インバランス検出装置
JP5918702B2 (ja) * 2013-01-18 2016-05-18 日立オートモティブシステムズ株式会社 エンジンの制御装置
CN104179585B (zh) * 2013-05-28 2017-11-28 上海汽车集团股份有限公司 多缸发动机的控制方法以及多缸发动机装置
JP6020474B2 (ja) * 2014-01-08 2016-11-02 トヨタ自動車株式会社 気筒間空燃比ばらつき異常検出装置
US10030593B2 (en) 2014-05-29 2018-07-24 Cummins Inc. System and method for detecting air fuel ratio imbalance
US10048188B2 (en) 2014-06-09 2018-08-14 Ford Global Technologies, Llc System for sensing particulate matter
US9399961B2 (en) 2014-10-27 2016-07-26 Ford Global Technologies, Llc Method and system for air fuel ratio control and detecting cylinder imbalance
US10190472B2 (en) 2014-11-07 2019-01-29 Ford Global Technologies, Llc Systems and methods for sensing particulate matter
DE102015202949A1 (de) * 2015-02-18 2016-08-18 Robert Bosch Gmbh Verfahren und Vorrichtung zum Steuern eines mehrere Zylinder umfassenden Hubkolbenmotors
JP6252525B2 (ja) * 2015-03-12 2017-12-27 トヨタ自動車株式会社 内燃機関の排気浄化装置
US9683502B2 (en) * 2015-09-04 2017-06-20 Ford Global Technologies, Llc Method and system for identification and mitigation of air-fuel ratio imbalance
JP6327240B2 (ja) * 2015-12-15 2018-05-23 トヨタ自動車株式会社 内燃機関の制御装置
CN108194212B (zh) * 2017-12-20 2019-12-27 中国第一汽车股份有限公司 分缸空燃比不均匀性监测系统和方法
JP7068065B2 (ja) * 2018-06-22 2022-05-16 東海旅客鉄道株式会社 集電電流監視装置
CN114320704B (zh) * 2021-12-31 2024-06-14 中国第一汽车股份有限公司 一种缸平衡控制方法、装置、设备和存储介质

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01172473A (ja) 1987-12-28 1989-07-07 Toshiba Silicone Co Ltd 被覆用組成物
JP3855483B2 (ja) 1998-08-25 2006-12-13 株式会社デンソー 積層型空燃比センサ素子
US6314952B1 (en) 2000-03-23 2001-11-13 General Motors Corporation Individual cylinder fuel control method
JP4400003B2 (ja) 2001-04-23 2010-01-20 トヨタ自動車株式会社 エンジンの空燃比制御方法
JP2004069547A (ja) 2002-08-07 2004-03-04 Toyota Motor Corp 空燃比センサの制御装置
JP4251081B2 (ja) * 2003-11-21 2009-04-08 株式会社デンソー 内燃機関の制御装置
US7027910B1 (en) * 2005-01-13 2006-04-11 General Motors Corporation Individual cylinder controller for four-cylinder engine
US7152594B2 (en) 2005-05-23 2006-12-26 Gm Global Technology Operations, Inc. Air/fuel imbalance detection system and method
US7597091B2 (en) 2005-12-08 2009-10-06 Toyota Jidosha Kabushiki Kaisha Air-fuel ratio control apparatus and method for an internal combustion engine
JP4363398B2 (ja) 2005-12-08 2009-11-11 トヨタ自動車株式会社 内燃機関の空燃比制御装置
JP4935547B2 (ja) * 2007-07-09 2012-05-23 トヨタ自動車株式会社 内燃機関の異常判定装置
JP2007315193A (ja) 2006-05-23 2007-12-06 Denso Corp 内燃機関の空燃比検出装置
US7497210B2 (en) 2006-04-13 2009-03-03 Denso Corporation Air-fuel ratio detection apparatus of internal combustion engine
JP2008095626A (ja) 2006-10-13 2008-04-24 Denso Corp 内燃機関の空燃比制御装置
US7568476B2 (en) 2006-10-13 2009-08-04 Denso Corporation Air-fuel ratio control system for internal combustion engine
JP2008121534A (ja) 2006-11-10 2008-05-29 Denso Corp 内燃機関の異常診断装置
JP2008121533A (ja) * 2006-11-10 2008-05-29 Denso Corp 内燃機関の制御装置
JP2008309065A (ja) * 2007-06-14 2008-12-25 Denso Corp 内燃機関の異常診断装置及び制御システム
JP4788707B2 (ja) * 2007-11-27 2011-10-05 トヨタ自動車株式会社 空燃比センサ及び内燃機関の制御装置
US7802563B2 (en) * 2008-03-25 2010-09-28 Fors Global Technologies, LLC Air/fuel imbalance monitor using an oxygen sensor
US8650943B2 (en) * 2009-08-28 2014-02-18 Toyota Jidosha Kabushiki Kaisha Apparatus for determining an air-fuel ratio imbalance among cylinders of an internal combustion engine
JP2012007496A (ja) * 2010-06-22 2012-01-12 Toyota Motor Corp 内燃機関の制御装置

Also Published As

Publication number Publication date
US8452517B2 (en) 2013-05-28
EP2450554B1 (en) 2017-05-24
CN102472191A (zh) 2012-05-23
EP2450554A1 (en) 2012-05-09
CN102472191B (zh) 2014-10-08
US20120173115A1 (en) 2012-07-05
JP5115657B2 (ja) 2013-01-09
EP2450554A4 (en) 2015-09-16
WO2011001539A1 (ja) 2011-01-06

Similar Documents

Publication Publication Date Title
JP5115657B2 (ja) 内燃機関の空燃比気筒間インバランス判定装置
JP5333058B2 (ja) 内燃機関の空燃比気筒間インバランス判定装置
JP5206877B2 (ja) 内燃機関の空燃比気筒間インバランス判定装置
JP5488307B2 (ja) 空燃比気筒間インバランス判定装置
JP4962656B2 (ja) 内燃機関の空燃比気筒間インバランス判定装置
JP5494317B2 (ja) 多気筒内燃機関の異常判定装置
JP5196003B2 (ja) 内燃機関の空燃比気筒間インバランス判定装置
JP2012007496A (ja) 内燃機関の制御装置
JP5041100B2 (ja) 内燃機関の空燃比気筒間インバランス判定装置
JP4968492B2 (ja) 内燃機関の空燃比気筒間インバランス判定装置
JP5170320B2 (ja) 内燃機関の空燃比気筒間インバランス判定装置
JP5447673B2 (ja) 内燃機関の燃料噴射量制御装置
JP2010180746A (ja) 内燃機関の空燃比気筒間インバランス判定装置
WO2011033687A1 (ja) 内燃機関の空燃比気筒間インバランス判定装置
JP5640662B2 (ja) 内燃機関の燃料噴射量制御装置
JP2012017657A (ja) 内燃機関の燃料噴射量制御装置
JP5360289B2 (ja) 内燃機関の空燃比気筒間インバランス判定装置

Legal Events

Date Code Title Description
TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120918

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20121001

R151 Written notification of patent or utility model registration

Ref document number: 5115657

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20151026

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees