以下、本発明の実施の形態について、図面を参照して説明する。
まず、構成について説明する。
本実施の形態に係る内燃機関の制御装置は、図1に示すように、複数の気筒を有するエンジン1に装備されており、各気筒に独立して燃料を噴射するようになっている。なお、以下の説明においては、本発明に係る内燃機関が、直列4気筒のガソリンエンジンにより構成される場合を例に説明するが、2気筒以上を有するエンジンにより構成されていればよく、気筒数や形式に限定されるものではない。
エンジン1は、#1気筒2a、#2気筒2b、#3気筒2cおよび#4気筒2dの4気筒が形成されたシリンダブロック12および図示しないシリンダヘッドと、車両外部からの空気を#1気筒2a乃至#4気筒2dに供給するための吸気系部4と、#1気筒2a乃至#4気筒2dからの排気ガスを車両外部へ排出するための排気系部5と、を備えている。なお、以下の説明において各気筒の区別を必要としない場合には、気筒2として説明する。
気筒2は、燃焼室14を形成しており、燃焼室14内において燃料および空気の混合気を燃焼させることにより、燃焼室内14に往復動可能に設置されたピストンを往復動させることにより動力を発生する。各ピストンは、コネクティングロッドを介してクランクシャフトと接続されており、各気筒2において発生した動力は、クランクシャフトや変速機などを介して駆動輪に伝達される。なお、クランクシャフトは本発明に係る内燃機関の出力軸を構成する。
シリンダヘッドには、吸気ポートを開閉する吸気弁および排気ポートを開閉する排気弁が配設されている。また、シリンダヘッドの頂部には、燃焼室14に導入された混合気に点火するための点火プラグ16が設置されている。
吸気ポートには、燃料を噴射するインジェクタ32が各気筒2ごとに設置されており、インジェクタ32から噴射された燃料と吸気系部4により導入された空気とが混合することにより混合気が生成される。
吸気系部4は、枝管18と、サージタンク20と、吸気管30と、エアクリーナ24と、を備えている。サージタンク20の吸気上流側は、吸気管30と接続されており、吸気管30の吸気上流側はエアクリーナ24と接続されている。また、吸気管30には、吸入空気量を検出するためのエアフロメータ26と、電子制御式のスロットルバルブ28とが吸気上流側から順に設置されている。
排気系部5は、排気マニホールド34と、排気管36と、触媒コンバータ40と、を備えており、排気通路38を形成している。
排気マニホールド34は、シリンダヘッドに形成されている排気ポートに接続されており、排気マニホールド34と排気管36とは枝管34aおよび排気集合部34bを介して接続されている。
触媒コンバータ40は、三元触媒を有しており、燃焼室14における空燃比が理論空燃比の近傍である場合に排気が流入すると、排気中の有害成分であるNOx、HCおよびCOを同時に浄化するようになっている。
ここで、空燃比とは、燃焼室14に供給される混合気の空気の質量を燃料の質量で割った値を示すが、当該混合気が燃焼室14で燃焼された後に排出され後述する空燃比センサ42およびO2センサ44により検出される排気ガスの成分から空燃比を求めることが可能である。
触媒コンバータ40の排気上流および下流の排気管36には、空燃比センサ42およびO2センサ44が設置されている。ここで、空燃比センサ42およびO2センサ44は、本発明に係る空燃比検出手段を構成するとともに、第1の空燃比検出部および第2の空燃比検出部をそれぞれ構成する。なお、第1の空燃比センサおよび第2の空燃比センサは、いずれも出力値から空燃比を検出可能なセンサにより構成されていればよい。
図2に示すように、空燃比センサ42は、排気ガスから広範囲の空燃比を連続的に検出するようになっており、検出した空燃比に比例した電圧信号をECU50に出力するようになっている。例えば、空燃比センサ42は、理論空燃比において約3.3Vの電圧信号を出力するようになっている。
一方、O2センサ44は、混合気の空燃比が理論空燃比である場合を境に、出力値が急激に変化する特性を有している。そして、混合気が理論空燃比である場合に約0.45Vの電圧信号をECU50に出力するようになっている。また、混合気の空燃比がリーン側の時は電圧信号の出力値が0.45Vより小さくなり、リッチ側の時は電圧信号の出力値が0.45Vより大きくなる。
図1に戻り、本実施の形態に係るエンジン1は、さらに、内燃機関の制御装置を構成するECU(Electronic Control Unit)50を備えている。
ECU50は、CPU(Central Processing Unit)、RAM(Random Access Memory)、ROM(Read Only Memory)およびバックアップメモリなどを備えている。なお、本実施の形態に係るECU50は、本発明に係る制御装置、異常気筒特定手段、目標空燃比変更手段、燃料噴射量増加手段を構成する。
ROMは、後述する空燃比変更制御および気筒2における燃料噴射制御を実行するための制御プログラムを含む各種制御プログラムや、これらの各種制御プログラムを実行する際に参照されるマップなどを記憶している。CPUは、ROMに記憶された各種制御プログラムやマップに基づいて各種の演算処理を実行するようになっている。また、RAMは、CPUによる演算結果や、上述した各センサから入力されたデータ等を一時的に記憶するようになっている。バックアップメモリは、不揮発性のメモリにより構成されており、例えばエンジン1の停止時に保存すべきデータ等を記憶するようになっている。
CPU、RAM、ROMおよびバックアップメモリは、バスを介して互いに接続されるとともに、入力インターフェースおよび出力インターフェースと接続されている。
また、エンジン1は、クランクシャフトの回転数、すなわちエンジン回転数を検出するためのクランク角センサ52と、アクセル開度を検出するためのアクセル開度センサ54と、エンジン1の冷却水温を検出するための水温センサ56と、を備えており、これらのセンサの信号はECU50に送信されるようになっている。
スロットルバルブ28には、図示しないスロットル開度センサが設置されており、スロットル開度に応じた信号をECU50に送信するようになっている。ECU50は、スロットルバルブ28の開度がアクセル開度に応じて定まるスロットル開度となるようスロットル開度センサから入力される信号に基づいてフィードバック制御を実行する。
また、ECU50は、エアフロメータ26から入力された信号に基づいて、単位時間当たりの吸入空気量を算出する。そして、ECU50は、検出した吸入空気量およびエンジン回転数からエンジン負荷を算出するようになっている。
また、ECU50は、触媒コンバータ40の排気上流側に設置された空燃比センサ42から入力された信号に基づいて各気筒2における燃料噴射量を調節し、空燃比センサ42により検出される実空燃比を理論空燃比などの目標空燃比に近づけるメインフィードバック制御を実行するようになっている。
このメインフィードバック制御は、実空燃比と目標空燃比との差と、予め実験的に求められた比例ゲイン、積分ゲインおよび微分ゲインから比例項、学習値としての積分項および微分項をそれぞれ算出し、比例項、積分項および微分項の和から現在設定されている燃料噴射量に対する補正量を算出する公知のPID制御により構成されている。なお、メインフィードバック制御は、比例項および積分項に基づいて補正量を算出するPI制御など公知のフィードバック制御であればよい。
さらに、ECU50は、触媒コンバータ40の排気下流側に設置されたO2センサ44から入力された信号に基づいて、メインフィードバック制御により算出される補正量をさらに補正するサブフィードバック制御を実行するようになっている。本実施の形態においては、ECU50は、O2センサ44の出力電圧値の目標値と、現在O2センサが出力している出力電圧値とが一致するよう、出力電圧値の目標値と実出力電圧値との差に基づいてPID制御あるいはPI制御などの公知のフィードバック制御を実行するようになっている。ここで、出力電圧値の目標値は、通常は理論空燃比に対応する電圧値、すなわち0.45Vの近傍に設定されているが、O2センサ44の経年劣化や、後述する目標空燃比変更制御などの各種制御により変更されるようになっている。
ECU50は、空燃比センサ42およびO2センサ44により空燃比を検出しフィードバック制御を実行することにより、#1気筒2a、#2気筒2b、#3気筒2cおよび#4気筒2dのうち、いずれかの気筒2においてインジェクタ32の故障などに起因したインバランスが発生した場合においても、全体の空燃比を目標空燃比に近づけるようになっているが、同時に、残りの3つの気筒2における空燃比あるいは全体の空燃比が理論空燃比から大幅にずれることを防止する必要もある。なお、以下の説明においては、#1気筒2aに燃料を噴射するインジェクタ32に異常が発生した場合を例に説明する。
#1気筒2aに燃料を供給するインジェクタ32が閉弁不良となった場合、ECU50は、空燃比センサ42およびO2センサ44により検出される排気空燃比がリッチ側に振れるため、空燃比フィードバック制御により他の気筒2に対して供給される燃料を減少することになる。
しかしながら、従来の燃料噴射制御では、いずれの気筒2に異常が発生しているか否かを特定することなく、全体の空燃比を見かけ上理論空燃比に近づけるよう燃料噴射量を設定するため、#1気筒2aがリッチ側に大幅に振れるのみならず、その他の気筒2ではリーン側に振れている状態となっており、通常の排気特性より悪化した排気特性になっている。
そこで、本実施の形態に係るECU50は、#1気筒2a、#2気筒2b、#3気筒2cおよび#4気筒2dのうち、いずれかの気筒2において失火などが発生し、気筒2間に空燃比のばらつき、すなわちインバランスが生じた場合に、いずれの気筒2にインバランスが生じているかを特定し、インバランスが生じていない正常な気筒2における空燃比が理論空燃比から大幅にずれることがないよう各気筒2に対する燃料噴射量を設定するようになっている。
ECU50は、気筒2間の空燃比のばらつきの度合いを示す値として、インバランス率IBを算出するようになっている。インバランス率IBとは、複数の気筒2のうちある気筒2が燃料噴射量ずれに起因した空燃比ずれを起こしている場合に、当該燃料噴射量ずれを起こしている気筒2の燃料噴射量が他の気筒2の燃料噴射量とどの程度ずれているかを示す値である。
インバランス率IBは、以下の式(1)で算出される。
IB=(α−β)/β×100 (1)
ここで、αは空燃比ずれを起こしている気筒2の燃料噴射量であり、βはその他の気筒2の燃料噴射量、つまり基準噴射量である。
例えば、いずれかの気筒2において、インジェクタ32の閉弁不良により燃料噴射量が増加するリッチずれ異常においては、インバランス率IBはプラスの値となる。一方、インジェクタ32の噴孔づまりや開弁不良により燃料噴射量が減少するリーンずれ異常においては、インバランス率IBはマイナスの値となる。
図3は、クランクシャフトの回転変動を説明するためのタイミングチャートである。本実施の形態においては、#1気筒2a、#3気筒2c、#4気筒2d、#2気筒2bの順に点火が行われるものとする。
図3(a)において、(A)はクランクシャフトの回転から求まるエンジンのクランク角(°CA)を示しており、1エンジンサイクルは720(°CA)に対応する。
また、(B)は、クランクシャフトが所定角度だけ回転するのに要した時間、すなわち回転時間T(s)を示している。本実施の形態においては、所定角度は30(°CA)になっている。この回転時間Tが長いほどエンジン回転速度が遅く、回転時間Tが短いほどエンジン回転速度が速いことを示している。したがって、クランク角が圧縮上死点(TDC)を超えた後の燃焼行程では回転速度が上昇するため回転時間Tが低下し、その後の圧縮行程では回転速度が低下するため回転時間Tが増加する。
また、(C)は、後述する回転時間差ΔTを示している。図中、「正常」とは、いずれの気筒2にも空燃比ずれが生じていない正常な場合を示し、「リーンずれ異常」とは、#1気筒2aのみにインバランス率IB=−30(%)のリーンずれが生じている異常な場合を示している。
ECU50は、各気筒2の同一タイミングにおいて回転時間Tを検出するようになっている。本実施の形態においては、ECU50は、各気筒2のTDCを含む所定角度のタイミングにおける回転時間Tを検出する。
また、ECU50は、検出タイミングごとに、今回の検出タイミングにおける回転時間T2と、直前の検出タイミングにおける回転時間T1との差T2−T1を上記回転時間差ΔTとして算出する。
(B)に示すように、#1気筒2aにリーンずれ異常が発生している場合には、#1気筒2aを点火させても十分なトルクが得られず回転速度の上昇が不十分となることに起因して、#3気筒2cのTDCにおける回転時間Tが大きくなる。
したがって、#3気筒2cのTDCにおける回転時間差ΔTは、(C)に示すように正の大きい値をとる。この#3気筒2cのTDCにおける回転時間Tおよび回転時間差ΔTを、それぞれ#1気筒2aの回転時間T1および回転時間差ΔT1とする。なお、ECU50は、他の各気筒2における回転時間T2〜T4および回転時間差ΔT2〜ΔT4も同様に算出する。
また、#3気筒2cは正常であるので、#3気筒2cにおける点火が行われると、回転速度が急激に上昇する。したがって、#4気筒2dのTDCのタイミングにおける回転時間Tは、(B)に示すように、#3気筒2cのTDCのタイミングにおける回転時間Tと比較して若干低下する程度となる。したがって、#4気筒2dのTDCにおいて検出された#3気筒2cの回転時間差ΔT3は、(C)に示すように小さな負の値となる。同様に、#2気筒2bおよび#1気筒2aのTDCにおいて検出された回転時間T4、T2からそれぞれ算出される回転時間差ΔT4、ΔT2も小さな負の値となる。
このように、ECU50は、各気筒2の回転時間差ΔTを点火気筒TDCごとに算出するようになっている。そして、この回転時間差ΔTは、各気筒2の回転変動を表す値であるとともに、各気筒2の空燃比ずれ量に相当しており、各気筒2の空燃比ずれ量が大きいほど大きい値となる。また、各気筒2が正常である場合には、回転時間差ΔTは0となる。したがって、ECU50は、回転時間差ΔTを算出し、各気筒2の回転変動を表す値として用いるようになっている。
なお、以上の説明では、#1気筒2aにおいてリーンずれ異常が発生した場合を例に説明しているが、いずれかの気筒2においてリッチずれが生じている場合においても、燃料過多のために燃焼が不十分となるため、十分なトルクが得られず、回転変動が大きくなるため、リーンずれ異常と同様の傾向が得られる。
この回転変動は、以下に図3(b)を用いて説明するように、角速度差Δωにより表すことも可能である。
(A)は、図3(a)の(A)と同様にエンジン2のクランク角(°CA)を示している。(B)は、図3(a)の(B)に示した回転時間Tの逆数を表す角速度ω(rad/s)を示す。角速度ωは、エンジン回転速度が速いほど大きい値となる。
(C)は、気筒2間の角速度ωの差である角速度差Δωを示す。また、図3(b)における「正常」および「リーンずれ異常」の意味は図3(a)と同じである。
ECU50は、図3(a)に示す場合と同様、各気筒2の圧縮上死点(TDC)を含む所定角度のタイミングにおける角速度ωを算出する。この角速度ωは、回転時間Tを検出し、この値の逆数を算出することにより得られる。
また、ECU50は、検出タイミングごとに、今回の検出タイミングにおける角速度ω2と、直前の検出タイミングにおける角速度ω1との差ω2−ω1を算出する。この差ω2−ω1が上記角速度差Δωを表す。
(B)に示すように、#1気筒2aにリーンずれ異常が発生している場合、#1気筒2aにおける点火が行われても、十分なトルクが発生せず、回転速度の上昇が不十分となるため、#3気筒2cのTDCにおける角速度ωは小さくなる。したがって、#3気筒2cのTDCにおける角速度差Δωは、(C)に示すように大きい負の値をとる。この#3気筒2cのTDCにおける角速度ωおよび角速度差Δωをそれぞれ#1気筒2aの角速度ω1および角速度差Δω1とする。ECU50は、他の各気筒2に対する角速度ω2〜ω4および角速度差Δω2〜Δω4も同様に算出する。
#3気筒2cが正常である場合には、#3気筒2cに対する点火が行われると、回転速度が急激に上昇する。これにより、次の#4気筒2dのTDCのタイミングでは、#3気筒2cのTDCのタイミングと比較して、角速度ωは若干上昇する。したがって、#4気筒2dのTDCにおいて算出された#3気筒2cの角速度差Δω3は、(C)に示すように小さい正の値となる。
このように、ある気筒2に対する角速度差Δωは、次点火気筒のTDCにおいて算出されるようになっている。
また、#2気筒2bのTDCおよび#1気筒2aのTDCにおいて算出される角速度差Δω4およびΔω2もΔω3と同様に小さい正の値となる。
したがって、各気筒2の角速度差Δωは、各気筒2の回転変動を表しており、各気筒2の空燃比ずれ量に相関した値となる。各気筒2の空燃比ずれ量が大きいほど、各気筒2の回転変動は大きくなり、各気筒2の角速度差Δωはマイナス方向に大きくなる。また、各気筒2が正常な場合には、角速度差Δωは0の近傍になる。また、各気筒2がリッチずれ異常を起こしている場合にも、角速度差Δωは同様の傾向を有するようになっている。
ECU50は、各気筒2の角速度差Δωを各気筒2の回転変動の指標値として用いるようになっている。そして、ECU50は、以下に説明する燃料噴射量の強制的な増加を実行することにより、上記のように算出される回転変動が気筒2の空燃比異常を表すものであるか否かを判定するようになっている。
図4は、いずれか1つの気筒2における燃料噴射量を強制的に増加させ空燃比を変化させた場合における回転変動の変化を表すグラフである。なお、このグラフの説明においては、吸入空気量が一定であるものとして説明する。
図4において、横軸はインバランス率IBを、縦軸は回転変動の指標値である角速度差Δωを表している。また、実線aは、いずれか1つの気筒2のみのインバランス率IBを変化させた場合の当該気筒2におけるインバランス率IBと角速度差Δωとの関係を表している。以下、強制的に燃料噴射量を増加させる気筒2をアクティブ対象気筒と呼ぶ。また、他の気筒2は、いずれもストイキ相当量の燃料が供給されているものとする。
横軸において、インバランス率IB=0(%)の位置は、アクティブ対象気筒にストイキ相当量の燃料が供給されている状態を表している。このときのインバランス率IBと角速度差Δωとの関係は、図中の丸印bにより示されている。
実線aが示すように、アクティブ対象気筒のインバランス率IBが0%からプラス方向およびマイナス方向のいずれの方向に変動しても、アクティブ対象気筒の回転変動が大きくなり、角速度差Δωがマイナス方向に大きくなる。また、インバランス率IBが0(%)から大きく離れるほど、実線aの傾きは大きくなり、インバランス率IBの変化に対する角速度差Δωの変化は大きくなる。
ここで、ECU50が、アクティブ対象気筒の燃料噴射量を、ストイキ相当量から所定量Δf1強制的に増加したとする。これにより、図4においては、矢印cで示すようにインバランス率IBが40(%)増加している。この場合、インバランス率IB=0(%)の近傍では実線aの傾きが緩やかであるため、燃料噴射量の増加にかかわらず角速度差Δωの変化は小さい。
一方、アクティブ対象気筒がリッチずれを起こしており、インバランス率IBが実線aの星印dで示す50(%)であるとする。この場合、ECU50がアクティブ対象気筒に対する燃料噴射量を所定量Δf1増加すると、このインバランス率IBの領域における実線aの傾きが急であるので、矢印eに示すようにインバランス率が40(%)増加した場合において、燃料噴射量の増加前後における角速度差Δωの差が大きくなる。つまり、燃料噴射量の増加によるアクティブ対象気筒の回転変動が大きくなる。
そこで、本実施の形態に係るECU50は、アクティブ対象気筒に供給される燃料噴射量を強制的に増加させ、角速度差Δωを算出することにより、気筒間空燃比ばらつき異常を検出するようになっている。
ECU50は、燃料噴射量の増加後における角速度差Δωが図4に示す所定の負の値αより小さい場合、すなわち角速度差Δωの絶対値が所定値αの絶対値より大きい場合には、ばらつき異常あり、つまりインバランスが発生していると判定し、当該アクティブ対象気筒を異常気筒と判定するようになっている。また、ECU50は、燃料噴射量の増加後における角速度差Δωが負の値α以上である場合、すなわち角速度差Δωの絶対値が所定値αの絶対値より小さい場合には、アクティブ対象気筒は正常であると判定するようになっている。
なお、ECU50は、角速度差Δωと所定の負の値αとを比較する代わりに、燃料噴射量の増加前の角速度差Δω1と増加後の角速度差Δω2との差dΔω(=Δω1−Δω2)が所定値β1を超えたか否かを判定するようにしてもよい。この場合、ECU50は、角速度差の差dΔωが所定値β1を超えた場合には、ばらつき異常が発生しており、当該アクティブ対象気筒が正常であると判断する。一方、角速度差の差dΔωが所定値β1以下の場合には、アクティブ対象気筒は正常であると判定するようになっている。
また、アクティブ対象気筒のインバランス率IBが負の場合には、ECU50がアクティブ対象気筒に対する燃料噴射量を増加させると、増加前の角速度差Δω1に対し増加後の角速度差Δω2は小さくなる。ここで、燃料噴射量の増加前におけるインバランス率IBが大きい負の値である場合には小さい負の値である場合と比較して、上記の星印dの場合と同様、角速度差の差dΔω(=Δω1−Δω2)の絶対値が大きい値となる。
したがって、ECU50は、アクティブ対象気筒に対する燃料噴射量の増加前後における角速度差の差dΔωの絶対値を所定値と比較することにより、アクティブ対象気筒のインバランス率IBが正の場合にも負の場合にも当該アクティブ対象気筒が正常であるか異常であるかを判定することができる。
このように、ECU50は、アクティブ対象気筒に対する燃料噴射量を強制的に増加させ、その前後の角速度差Δω1およびΔω2を算出することにより、その角速度差の差dΔωの絶対値が所定値を超えているか否か、およびその角速度差の差dΔωが正であるか負であるかに応じて、当該アクティブ対象気筒にインバランスが生じているか否かおよびそのインバランスがリッチずれおよびリーンずれのいずれであるかを判定することができる。
以下、当該異常判定について図5を用いて説明する。図5(a)において、例えば、アクティブ対象気筒のインバランス率IBが破線m上にあるとする。この場合、アクティブ対象気筒には、比較的大きなリーンずれが生じている。この状態でアクティブ対象気筒に対する燃料噴射量の増加が実行されると、破線m1で示すように、増加実行前後における角速度差の差dΔωm(=Δωm1−Δωm2)の大きさは所定値を超える。また、アクティブ対象気筒のインバランス率IBが破線n上にあるとする。この場合、アクティブ対象気筒には、比較的大きなリッチずれが生じている。この状態でアクティブ対象気筒に対する燃料噴射量の増加が実行されると、破線n1で示すように、増加実行前後における角速度差の差dΔωn(=Δωn1−Δωn2)の大きさは所定値を超える。
また、アクティブ対象気筒のインバランス率が0(%)であるとする。この場合、アクティブ対象気筒に対する燃料噴射量は、ストイキ領域となる適切な量になっている。この状態で、アクティブ対象気筒に対する燃料噴射量の増加が実行されると、破線p1で示すように、増加実行前後における角速度差の差dΔωp(=Δωp1−Δωp2)は小さい。したがって、ECU50は、燃料噴射量の増加前後における角速度差の差の符号および大きさに基づいて、対象気筒に空燃比異常が発生しているか否か、および異常が発生している場合にはリッチずれが生じているのかあるいはリーンずれが生じているのかを特定することができるようになっている。
また、図5(b)において、横軸は対象気筒の燃料噴射量を強制的に増加させていない状態におけるインバランス率IBを示し、縦軸は燃料増加前後における角速度差の差dΔω(=Δω1−Δω2)を示す。角速度差の差dΔωが第1所定値γよりも大きい場合には、当該対象気筒において空燃比異常が発生しており、かつ、リッチずれを起こしていることを意味する。また、角速度差の差dΔωが第2所定値δよりも小さい場合には、当該対象気筒おいて空燃比異常が発生しており、かつ、リーンずれを起こしていることを意味する。
本実施の形態に係るECU50は、以上のように複数の気筒2のうちいずれかの気筒2の空燃比がインバランスとなっている場合に、いずれの気筒2の空燃比がインバランスとなっているか、またそのインバランスがリーンインバランスあるいはリッチインバランスのいずれであるかを特定するようになっている。
ここで、インバランスを発生させている気筒2がいずれの気筒2であるかに応じて、空燃比センサ42およびO2センサ44に対する排気ガスのガス当たりが変化する。そのため、空燃比センサ42およびO2センサ44により検出される空燃比と実際の空燃比とのずれは、インバランス率IBが同じであるとしてもインバランスの発生している気筒2に応じて変化することになる。
例えば、ある気筒2においてリーンインバランスが発生している状況で、当該気筒2から排出される排気ガスの空燃比センサ42に対するガス当たりが強い場合には、空燃比センサ42は、4つの気筒2から排出される排気ガス全体の空燃比と比較して、リーン側に大きく振れた出力値をECU50に送信することになる。この状態でECU50がメインフィードバック制御を実行すると、各気筒2に対する燃料噴射量を必要以上に増加させることになり、これらの気筒2の空燃比がリッチ側に大きく振れることになる。
そのため、ECU50は、空燃比センサ42の出力値に応じて空燃比がストイキ領域に収まるよう燃料噴射量を制御するメインフィードバック制御において、燃料噴射量に対する過補正を抑制するよう目標空燃比を所定の変更量で変更するようになっている。
さらには、従来は、ECUがO2センサ44の出力値に応じてメインフィードバック制御による燃料噴射量設定に対しサブフィードバック制御による補正を実行する場合において、リーンインバランスが発生している気筒2のO2センサ44に対する排気ガスのガス当たりも強い場合には、ECU50は、メインフィードバック制御によりリッチ側に振れた空燃比をさらにリッチ側に振ることになる。結果として、実空燃比は目標空燃比に対して強くリッチ側に振れてしまう。
そこで、本実施の形態に係るECU50は、インバランスが発生している気筒2とメインフィードバック制御における目標空燃比の変更量との関係を表す変更量マップを予めROMに記憶しておき、上述した気筒2に対する異常判定により異常が発生している気筒2を特定すると、変更量マップを参照して目標空燃比を変更し、いずれの気筒2においても大幅なリッチずれあるいはリーンずれが生じることを抑制するようになっている。
変更量マップは、各気筒2においてインバランスが発生した場合に、空燃比センサ42およびO2センサ44の検出に与える影響を予め実験的に測定することにより作成される。
この変更量マップは、例えば、ある気筒2にリーンインバランスが発生した場合に、メインフィードバック制御およびサブフィードバック制御の両方により過補正が行われる場合には実空燃比が強くリッチ側に振れるため、目標空燃比の目標値をリーン側に変更するよう設定されている。なお、上述したように、リーンインバランスが発生している気筒2の空燃比センサ42あるいはO2センサ44に対するガス当たりが強い場合には過補正となり、ガス当たりが弱い場合には補正不足となる。
また、メインフィードバック制御およびサブフィードバック制御の両方により補正不足となる場合には実空燃比が強くリーン側に振れるため、目標空燃比の目標値をリッチ側に変更するよう設定されている。
また、メインフィードバック制御あるいはサブフィードバック制御のいずれか一方により過補正が行われ、もう一方による補正が適正である場合には実空燃比が弱くリッチ側に振れるため、目標空燃比の目標値を強くリッチ側に振れる場合よりも小さくリーン側に変更するよう設定されている。
また、メインフィードバック制御あるいはサブフィードバック制御のいずれか一方により補正不足となり、もう一方による補正が適正である場合には実空燃比が弱くリーン側に振れるため、目標空燃比の目標値を強くリーン側に振れる場合よりも小さくリッチ側に変更するよう設定されている。
つまり、変更量マップは、リーンインバランスが発生している気筒2が、空燃比センサ42あるいはO2センサに対するガス当たりが強い気筒2である場合にはガス当たりが弱い気筒2と比較して目標空燃比のリーン側への変更量が大きくなるよう設定されており、リッチ側への過補正が防止されるようになっている。
なお、ECU50は、メインフィードバック制御のみが実行されており、サブフィードバック制御が実行されていない場合においても目標空燃比の目標値を変更するようにしてもよい。この場合、変更量マップは、各気筒2から排出される排気ガスの空燃比センサ42に対する排気ガスのガス当たりに応じて、全気筒2による実空燃比と空燃比センサ42により検出される空燃比がどの程度乖離するかを予め実験的な測定により求め、ECU50は、サブフィードバックが実行されていない場合には、この変更量マップを用いてメインフィードバック制御を実行するようになっている。
また、ECU50は、変更量マップにより定められた値を目標空燃比の変更量としてそのまま用いてもよいが、インバランス率IBに応じて変更量を補正するようにしてもよい。この場合、ECU50は、図6に示すように、インバランス率IBが大きいほど変更量が大きくなるように補正する。
また、ECU50は、インバランス率IBの代わりに吸入空気量に応じて変更量を補正するようにしてもよい。この場合、排気ガス量が多くなると、空燃比センサ42あるいはO2センサ44に対しもともとガス当たりの強い気筒2からのガス当たりはより一層強くなる。したがって、吸入空気量が大きいほど変更量が大きくなるよう補正する。
次に、本実施の形態に係る空燃比変更処理について図7を参照して説明する。
なお、以下の処理は、ECU50を構成するCPUによって所定の時間間隔で実行されるとともに、CPUによって処理可能なプログラムを実現する。
図7に示すように、まず、ECU50は、いずれかの気筒2においてリーンインバランスの発生が検出されるか否かを判定する(ステップS11)。具体的には、ECU50は、判定対象となる気筒2に対する燃料噴射量を増加させ、この増加の前後における角速度差の差dΔωをクランク角センサ52から入力される信号に基づいて算出する。
ECU50は、いずれかの気筒2に対する角速度差の差dΔωが上述した第2所定値δより小さい場合にリーンインバランスが発生していると判定する。
ECU50は、リーンインバランスが発生していると判定すると、ステップS12に移行し、いずれの気筒2においてリーンインバランスが発生したかを特定する。具体的には、ECU50は、燃料噴射量を増加させる対象となった気筒2を表す信号を参照することにより、リーンインバランスが発生した気筒2を特定する。
一方、ECU50は、ステップS11においていずれの気筒2においてもリーンインバランスが生じていないと判定した場合には、ステップS15に移行する。ステップS15に移行した場合、ECU50は、ステップS11が開始される前に実行していた空燃比制御を継続する。
次に、ECU50は、空燃比フィードバック制御の実行中であるか否かを判定する(ステップS13)。例えば、ECU50は、空燃比フィードバック制御の実行中であるか否かを表すフラグを有しており、このフラグを参照することにより現在空燃比フィードバック制御が実行されているか否かを判定する。なお、本実施の形態においては、ECU50は、サブフィードバック制御の実行の有無にかかわらず、メインフィードバック制御の実行の有無を判定するようになっている。
ECU50は、メインフィードバック制御の実行中であると判定した場合には(ステップS13でYES)、ステップS14に移行する。一方、メインフィードバック制御の実行中でないと判定した場合には(ステップS13でNO)、ステップS15に移行する。
ステップS14に移行した場合、ECU50は、目標空燃比を変更する。具体的には、ECU50は、ROMに記憶されている変更量マップを参照し、リーンインバランスが発生している気筒2に対応する目標空燃比の変更量を取得する。
そして、ECU50は、現在設定されている目標空燃比を変更量マップから取得した変更量で変更し、変更後の目標空燃比と空燃比センサ42により検出された空燃比との差に基づいてメインフィードバック制御を実行し各気筒2に対する燃料噴射量を算出する。
そして、ECU50は、各気筒2に対する燃料噴射量を算出すると、各気筒2のインジェクタ32に印加される電圧の大きさおよび開弁時間を設定し、この電圧および開弁時間でインジェクタ32を制御する。
なお、ECU50は、ステップS13において、フィードバック制御の実行中でないと判定した場合のみならず、冷却水温に基づきエンジン1の暖機中であると判定した場合においてもステップS15に移行する。そして、空燃比に対するフィードバック制御を実行せずに設定されている燃料量をインジェクタ32により噴射させる。
以上のように、本発明の実施の形態に係る内燃機関の制御装置は、いずれかの気筒2において空燃比がリーンずれとなるリーンインバランスが生じると、当該気筒2から排出される排気ガスの空燃比センサ42あるいはO2センサ44に対するガス当たりに応じて、空燃比検出手段42あるいはO2センサ44により検出される空燃比の変動に差が生じることになるが、ECU50は、リーンインバランスが生じている気筒2に応じて目標空燃比を変更することができるので、リーンインバランスがいずれの気筒2に生じた場合であっても実空燃比と目標空燃比との乖離を防止することができる。
また、ECU50は、いずれの気筒2にリーンインバランスを含む空燃比異常が発生しているか否かを特定できるので、空燃比センサ42あるいはO2センサ44により検出された空燃比と実空燃比との乖離を精度よく予測し、フィードバック制御において当該乖離に対し適切な補正をすることができる。
また、リーンインバランスが発生している気筒2の空燃比センサ42あるいはO2センサ44に対するガス当たりが強い場合には、フィードバック制御により過度にリッチ側への補正が実行される結果、実空燃比が目標空燃比から大きくリッチ側へ乖離するが、リーンインバランスが発生している気筒2に応じて目標空燃比の変更量を設定することにより、フィードバック制御による過度の補正を防止することができる。
また、インバランス率IBが大きいほど空燃比センサ42あるいはO2センサ44により検出される空燃比と実空燃比との乖離が大きくなるので、変更量を大きくすることにより空燃比フィードバック制御において過度な補正が実行されることを抑制できる。
また、ECU50が空燃比制御においてメインフィードバック制御およびサブフィードバック制御を実行する場合においても、いずれの気筒2に空燃比異常が発生しているかに応じて目標空燃比を変更し、フィードバック制御による過度の補正を抑制することができる。
なお、以上の説明においては、ECU50は、メインフィードバック制御の実行中において、リーンインバランスが発生している気筒2に応じてメインフィードバック制御により算出される目標空燃比の変更量を設定する場合について説明した。
しかしながら、ECU50は、メインフィードバックおよびサブフィードバックの実行中において、リーンインバランスが発生している気筒2に応じてサブフィードバック制御の目標値である目標電圧を変更するようにしてもよい。
この場合、ECU50は、リーンインバランスが発生している気筒2と目標電圧の変更量とを対応付けたマップを予めROMに記憶しておく。そしてECU50は、メインフィードバック制御およびサブフィードバック制御のそれぞれについて実行中であるか否かを表すフラグを参照し、いずれのフィードバック制御も実行中である場合には、マップを参照することにより、サブフィードバック制御により設定される目標電圧を異常が発生している気筒2に応じて設定するようにする。
また、ECU50は、メインフィードバック制御およびサブフィードバック制御のいずれもが所定時間以上実行され、それぞれの積分項を表す学習値に対する学習が実行されていることを条件に、当該学習値を変更するようにしてもよい。
この場合、ECU50は、メインフィードバック制御およびサブフィードバック制御において学習値に対する学習の実行中であるか否かを判定する。学習の実行中とは、例えば各フィードバック制御の実行が所定時間以上経過し、学習値がフィードバック制御に使用されている場合を意味する。また、ECU50は、リーンインバランスが発生している気筒2と学習値の変更量とを対応付けたマップを予めROMに記憶しておき、このマップを参照することにより学習値を変更する。
なお、この場合には、ECU50は、メインフィードバック制御およびサブフィードバック制御のうちいずれの学習値を変更するようにしてもよい。
以上のように、本発明に係る内燃機関の制御装置は、各気筒に要求される空燃比を従来より精度よく制御することができるという効果を奏するものであり、複数の気筒を有する内燃機関の制御装置に有用である。