(57)【要約】【課題】気筒間ばらつきが起きているときの排気浄化性能の悪化を抑えることのできる内燃機関の制御装置を提供する。【解決手段】制御装置３０は、触媒１００の上流側実空燃比に応じた上流側センサ３５の出力値を使うメインフィードバック補正と触媒１００の下流側実空燃比に応じた下流側センサ３６の出力値を使うサブフィードバック補正とで空燃比制御を行う。サブフィードバック補正のサブ補正値には、下流側３６センサの出力値と目標空燃比に対応した出力値との定常的な偏差を補償するサブ学習値が含まれる。制御装置３０は、燃料噴射弁の燃料噴射量に気筒間ばらつきがある場合、空燃比制御で補正される燃料噴射量を補正する。また、気筒間ばらつきの度合が所定値以下であると判定される毎にその時点でのサブ学習値を正常値として記憶し、気筒間ばらつきの度合が所定値以上であると判定されるときにはサブ学習値を、記憶された正常値に変更する。【選択図】図１
2016053305.tif 000002
【特許請求の範囲】
【請求項１】
燃料を噴射する燃料噴射弁と、排気通路に設けられた排気浄化用の触媒と、前記触媒よりも上流側の実空燃比に応じた出力値を出力する上流側センサと、前記触媒よりも下流側の実空燃比に応じた出力値を出力する下流側センサとを備えており、前記上流側センサの出力値が目標空燃比に対応した出力値となるように燃料噴射量を補正するメインフィードバック補正と、前記下流側センサの出力値が目標空燃比に対応した出力値となるように前記メインフィードバック補正にて補正される前記燃料噴射量を補正するサブ補正値を算出するサブフィードバック補正とで構成される空燃比制御を実行する内燃機関の制御装置であって、
前記サブ補正値には、前記下流側センサの出力値と目標空燃比に対応した出力値との定常的な偏差を補償する学習値が含まれており、前記制御装置は、前記燃料噴射弁から噴射される燃料量の気筒間ばらつきが起きているときには前記空燃比制御にて補正される前記燃料噴射量を補正する処理を実行するとともに、前記気筒間ばらつきの度合が所定値以下であると判定される毎に、その時点での前記学習値を正常値として記憶する一方、前記気筒間ばらつきの度合が所定値以上であると判定されるときには、その時点での前記学習値を前記正常値に変更することを特徴とする内燃機関の制御装置。
【請求項２】
前記空燃比制御にて補正される前記燃料噴射量を補正する前記処理での同燃料噴射量の補正量は、前記気筒間ばらつきの度合が大きいときほど多くされるとともに、
前記学習値の前記正常値への変更は、前記気筒間ばらつきの度合が前記所定値以上であると判定される場合であって、かつ前記気筒間ばらつきの度合の変化が所定値以上に大きいときに実行される
請求項１に記載の内燃機関の制御装置。
【請求項３】
前記燃料噴射弁は、複数の気筒のそれぞれに設けられた吸気ポート用燃料噴射弁及び筒内用燃料噴射弁であり、
前記吸気ポート用燃料噴射弁から噴射される燃料量の気筒間ばらつきの度合及び前記筒内用燃料噴射弁から噴射される燃料量の気筒間ばらつきの度合がともに所定値以下であると判定される毎に、その時点での前記学習値を前記正常値として記憶する一方、前記吸気ポート用燃料噴射弁から噴射される燃料量の気筒間ばらつきの度合及び前記筒内用燃料噴射弁から噴射される燃料量の気筒間ばらつきの度合の少なくとも一方が所定値以上であると判定されるときには、その時点での前記学習値を前記正常値に変更する
請求項１または２に記載の内燃機関の制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、内燃機関の制御装置に関するものである。
【背景技術】
【０００２】
内燃機関では、排気通路に設けられた触媒の排気浄化性能を発揮させるために、排気中の酸素濃度に応じた出力値を出力するセンサが排気通路に設けられている。そして、センサの出力値が目標空燃比に対応した出力値となるように燃料噴射量を補正する空燃比制御が行われる。この空燃比制御では、排気浄化用の触媒よりも上流側の実空燃比に応じた出力値を出力する上流側センサを使ったメインフィードバック補正が行われる。また、同空燃比制御では、触媒よりも下流側の実空燃比に応じた出力値を出力する下流側センサを使ってサブ補正値を算出し、メインフィードバック補正にて補正される燃料噴射量を同サブ補正値にて補正するサブフィードバック補正も行われる。また、サブ補正値を構成する補正値の１つとして、実空燃比に応じた出力値と目標空燃比に対応した出力値との定常的な偏差を補償する学習値を学習することもよく行われている。
【０００３】
ところで、気筒間において燃料噴射量にばらつきが生じ、これにより気筒間において空燃比にばらつきが発生することがある。そこで、例えば、そうした気筒間ばらつきが起きている場合には、目標空燃比を変更することにより、各気筒に要求される空燃比を精度よく制御する技術が知られている（例えば特許文献１など）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１３−１２２２１４号公報
【特許文献２】特開２００９−３０４５５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
一部の気筒の空燃比が他の気筒の空燃比に対して例えばリッチ側にずれると、気筒内から排出される水素の濃度が高くなるために、上述した上流側センサが水素を検出してしまい、同上流側センサの出力値は、実空燃比に対応した出力値よりもリッチ側にずれてしまうことが知られている（例えば特許文献２など）。
【０００６】
このようにして上流側センサの出力値がリッチ側にずれてしまうと、上記空燃比制御におけるメインフィードバック補正では、目標空燃比に対して実空燃比はリーン側に誤補正されてしまう。他方、排気に含まれる水素は触媒を通過すると酸化されるため、下流側センサの出力値は、上流側センサの出力値とは異なり、実空燃比に応じた出力値になる。従って、メインフィードバック補正により過度にリーン側へと補正された実空燃比が下流側センサによって検出され、上記サブフィードバック補正では、実空燃比をリッチ側に補正するために燃料噴射量を増量するサブ補正値が算出される。こうしたサブ補正値により、上流側センサの出力値のずれに起因して生じる、目標空燃比に対する実空燃比のずれ（この場合はリーンずれ）は徐々に抑えられていく。
【０００７】
他方、気筒間ばらつきが起きているときの上流側センサの出力値のずれによる実空燃比のリーン化は、空燃比制御によって補正された燃料噴射量を増量補正することによっても抑えることが可能である。この場合には、増量補正にて実空燃比がリッチ化するため、こうした増量補正による実空燃比のリッチ化が開始された以降は、サブ補正値の学習値は徐々に小さくなっていき、同学習値は適正値へと収束していく。
【０００８】
ここで、増量補正による実空燃比のリッチ化が開始されるまでは、実空燃比のリッチ化がサブ補正値によって行われている状態になっており、下流側センサの出力値と目標空燃比に対応した出力値との定常的な偏差を補償する上記学習値は、比較的大きい値になっている。従って、学習値が比較的大きい値になっている状態で燃料の増量補正による実空燃比のリッチ化が開始された直後は、燃料噴射量の増量が過剰に行われてしまい、実空燃比が過剰にリッチ化する可能性がある。こうした実空燃比の過剰なリッチ化は、上述したように、サブ補正値の学習値が徐々に小さくなっていき、学習値が適正値へと収束していくことによって解消されるのであるが、学習値が適正値に収束するまでにはある程度の時間を要するため、学習値が適正値に収束するまでは排気の浄化性能が低下するおそれがある。
【０００９】
同様に、気筒間ばらつきが起きているときの上流側センサの出力値のずれによって実空燃比がリッチ化する場合には、空燃比制御によって補正された燃料噴射量を減量補正することにより抑えることが可能である。しかし、この場合にも、減量補正による実空燃比のリーン化が開始されるまでは、実空燃比のリーン化がサブ補正値によって行われている状態になっており、下流側センサの出力値と目標空燃比に対応した出力値との定常的な偏差を補償する上記学習値は、比較的大きい値になっている。従って、学習値が比較的大きい値になっている状態で燃料の減量補正による実空燃比のリーン化が開始された直後は、燃料噴射量の減量が過剰に行われてしまい、実空燃比が過剰にリーン化する可能性がある。こうした実空燃比の過剰なリーンは、上述したように、サブ補正値の学習値が徐々に小さくなっていき、学習値が適正値へと収束していくことによって解消されるのであるが、学習値が適正値に収束するまでにはある程度の時間を要するため、学習値が適正値に収束するまでは排気の浄化性能が低下するおそれがある。
【００１０】
本発明は、上記実情に鑑みてなされたものであり、その目的は、サブ補正値の学習値が適正値に収束するまでの時間を短縮することにより、気筒間ばらつきが起きているときの排気浄化性能の悪化を抑えることのできる内燃機関の制御装置を提供することにある。
【課題を解決するための手段】
【００１１】
上記課題を解決する内燃機関の制御装置は、燃料を噴射する燃料噴射弁と、排気通路に設けられた排気浄化用の触媒と、触媒よりも上流側の実空燃比に応じた出力値を出力する上流側センサと、触媒よりも下流側の実空燃比に応じた出力値を出力する下流側センサとを備えている。そして、上流側センサの出力値が目標空燃比に対応した出力値となるように燃料噴射弁の燃料噴射量を補正するメインフィードバック補正と、下流側センサの出力値が目標空燃比に対応した出力値となるようにメインフィードバック補正にて補正される燃料噴射量を補正するサブ補正値を算出するサブフィードバック補正とで構成される空燃比制御を実行する。サブ補正値には、下流側センサの出力値と目標空燃比に対応した出力値との定常的な偏差を補償する学習値が含まれている。そして、制御装置は、燃料噴射弁から噴射される燃料量の気筒間ばらつきが起きているときには空燃比制御にて補正される燃料噴射量を補正する処理を実行する。さらに、制御装置は、気筒間ばらつきの度合が所定値以下であると判定される毎に、その時点でのサブ補正値の学習値を正常値として記憶する一方、気筒間ばらつきの度合が所定値以上であると判定されるときには、その時点でのサブ補正値の学習値を、記憶された正常値に変更する。
【００１２】
気筒間ばらつきの度合が所定値以下であって、気筒間ばらつきに異常が無いときには、上流側センサの出力値のずれが少なくなるため、上流側センサの出力値のずれによる実空燃比のリーン化やリッチ化は抑えられた状態になっている。従って、この状態のときには、下流側センサの出力値は目標空燃比に対応した出力値に近くなっており、下流側センサの出力値と目標空燃比に対応した出力値との定常的な偏差を補償するサブ補正値の学習値は、気筒間ばらつきの異常が起きている場合と比較して、小さい値になっている。
【００１３】
そこで、同構成では、気筒間ばらつきの度合が所定値以下であって気筒間ばらつきの異常がないと判定される毎に、その時点でのサブ補正値の学習値を正常値として記憶するようにしている。そして、気筒間ばらつきの度合が所定値以上であって気筒間ばらつきに異常ありと判定されるときには、その時点でのサブ補正値の学習値を、気筒間ばらつきに異常が無いと判定される毎に更新される上記正常値に変更するようにしている。従って、気筒間ばらつきに異常ありと判定されるときには、大きい値になっている学習値が小さい値に変更される。このようにして学習値が大きい値から小さい値へと速やかに変更されるため、サブ補正値の学習値が徐々に小さくなっていき、適正値へと収束していくまでに要する時間が短縮される。これにより気筒間ばらつきが起きているときの排気浄化性能の悪化を抑えることができるようになる。
【００１４】
また、同構成では、気筒間ばらつきが起きているときには、空燃比制御にて補正される燃料噴射量を更に補正する処理が実行されるが、気筒間ばらつきに異常ありと判定されるときには、その補正処理にて設定される燃料噴射量の補正値と、大きい値から小さい値に変更された学習値を含むサブ補正値とで実空燃比のリッチ化やリーン化が行われる。
【００１５】
そのため、学習値を変更することなく比較的大きい値になっている状態で燃料増量による実空燃比のリッチ化や、燃料減量による実空燃比のリーン化を開始する場合と比較して、燃料噴射量の過剰な補正が抑えられるようになる。従って、補正値による実空燃比のリッチ化やリーン化を開始した後の空燃比の過剰なリッチ化やリーン化を抑えることができ、これによっても気筒間ばらつきが起きているときの排気浄化性能の悪化を抑えることができるようになる。
【００１６】
上記制御装置において、空燃比制御にて補正される燃料噴射量を更に補正する上記処理での同燃料噴射量の補正量は、気筒間ばらつきの度合が大きいときほど多くされるとともに、上記学習値の上記正常値への変更は、気筒間ばらつきの度合が上述した所定値以上であると判定される場合であって、かつ気筒間ばらつきの度合の変化が所定値以上に大きいときに実行されることが好ましい。
【００１７】
気筒間ばらつきの度合が大きいときほど、上流側センサの出力値のずれは大きくなり、これにより実空燃比がリーン側にずれる量やリッチ側にずれる量は多くなる。そこで、燃料噴射量を更に補正する処理での同燃料噴射量の補正量は、同構成によるように、気筒間ばらつきの度合が大きいときほど多くされることが好ましい。
【００１８】
ここで、気筒間ばらつきの度合の変化が所定値以上に大きいときには、そうした燃料噴射量の補正量が急激に増えるため、サブ補正値の学習値が比較的大きい値になっている状態でさらに燃料噴射量の急激な補正が行われると、実空燃比が過度にリッチ化されたり、過度にリーン化されてしまうおそれがある。そこで、気筒間ばらつきの度合が大きいときほど燃料噴射量の補正量が多くされる場合には、気筒間ばらつきの度合が上述した所定値以上であると判定されるとき、つまり気筒間ばらつきの異常があると判定されるときであって、かつ気筒間ばらつきの度合の変化が所定値以上に大きいときに、サブ補正値の学習値を上記正常値に変更することが望ましい。同構成によれば、気筒間ばらつきの異常があり且つ気筒間ばらつきの度合の変化が大きいとき、つまりサブ補正値の学習値が比較的大きい値になっている状態でさらに燃料噴射量の急激な補正が行われるおそれがあるときには、サブ補正値の学習値が小さい値に変更されるため、上述した実空燃比の過度なリッチ化やリーン化を抑えることができる。
【００１９】
上記制御装置において、前記燃料噴射弁が、複数の気筒のそれぞれに設けられた吸気ポート用燃料噴射弁及び筒内用燃料噴射弁である場合には、吸気ポート用燃料噴射弁から噴射される燃料量の気筒間ばらつきの度合及び筒内用燃料噴射弁から噴射される燃料量の気筒間ばらつきの度合がともに所定値以下であると判定される毎に、その時点でのサブ補正値の学習値を正常値として記憶する。一方、吸気ポート用燃料噴射弁から噴射される燃料量の気筒間ばらつきの度合及び筒内用燃料噴射弁から噴射される燃料量の気筒間ばらつきの度合の少なくとも一方が所定値以上であると判定されるときには、その時点でのサブ補正値の学習値を、記憶された正常値に変更することが好ましい。
【００２０】
吸気ポート用燃料噴射弁に関する気筒間ばらつき及び筒内用燃料噴射弁に関する気筒間ばらつきの双方に異常がないと判定される場合には、上流側センサの出力値のずれは少なくなっている。そのため、この場合には、少なくともいずれか一方の燃料噴射弁に関して気筒間ばらつきの異常が起きている場合と比較して、サブ補正値の学習値は小さい値になっている。
【００２１】
そこで、同構成では、吸気ポート用燃料噴射弁から噴射される燃料量の気筒間ばらつきの度合及び筒内用燃料噴射弁から噴射される燃料量の気筒間ばらつきの度合がともに所定値以下であって吸気ポート用燃料噴射弁及び筒内用燃料噴射弁の双方において気筒間ばらつきの異常がないと判定される毎に、その時点でのサブ補正値の学習値を正常値として記憶するようにしている。そして、吸気ポート用燃料噴射弁から噴射される燃料量の気筒間ばらつきの度合及び筒内用燃料噴射弁から噴射される燃料量の気筒間ばらつきの度合の少なくとも一方が所定値以上であって、少なくともいずれか一方の燃料噴射弁に関して気筒間ばらつきの異常ありと判定されるときには、その時点でのサブ補正値の学習値を、気筒間ばらつきに異常が無いと判定される毎に更新される上記正常値に変更するようにしている。従って、少なくともいずれか一方の燃料噴射弁に関して気筒間ばらつきに異常ありと判定されるときには、大きい値になっている学習値が小さい値に変更される。このようにして学習値が大きい値から小さい値へと速やかに変更されることにより、サブ補正値の学習値が徐々に小さくなっていき、適正値へと収束していくまでに要する時間が短縮される。従って、吸気ポート用燃料噴射弁及び筒内用燃料噴射弁を備える内燃機関でも、サブ補正値の学習値が適正値へと収束していくまでに要する時間を短縮することが可能になり、気筒間ばらつきが起きているときの排気浄化性能の悪化を抑えることができるようになる。
【００２２】
なお、空燃比制御にて補正される燃料噴射量を更に補正する処理としては、例えば燃料噴射量を直接補正する処理を行ったり、目標空燃比を補正する処理を行うことで、結果として燃料噴射量が補正されるようにしてもよい。
【００２３】
また、上記のメインフィードバック補正における「目標空燃比に対応した出力値」とは、触媒よりも上流側の実空燃比に関する目標空燃比と同上流側の実空燃比とが一致しているときの上流側センサの出力値のことをいう。同様に、サブフィードバック補正における「目標空燃に対応した出力値」とは、触媒よりも下流側の実空燃比に関する目標空燃比と同下流側の実空燃比とが一致しているときの下流側センサの出力値のことをいう。
【図面の簡単な説明】
【００２４】
【図１】内燃機関の制御装置を具体化した一実施形態にあって、これが適用される内燃機関の構造を示す模式図。
【図２】噴き分け領域を示す概念図。
【図３】気筒間ばらつきの度合に応じた空燃比変動の変化を示すタイムチャート。
【図４】ストイキ補正の処理手順を示すフローチャート。
【図５】ストイキ補正値とインバランス率との関係を示す概念図。
【図６】サブ学習値の変更処理の手順を示すフローチャート。
【図７】同実施形態の変形例におけるサブ学習値の変更処理の手順を示すフローチャート。
【図８】同実施形態の変形例におけるサブ学習値の変更処理の手順を示すフローチャート。
【発明を実施するための形態】
【００２５】
以下、内燃機関の制御装置を具体化した一実施形態について、図１〜図６を参照して説明する。なお、この制御装置は、複数の気筒を備える、いわゆる多気筒内燃機関に適用される。
【００２６】
図１に示すように、内燃機関１１の各気筒１２内にはピストン１３が備えられている。ピストン１３は、内燃機関１１の出力軸であるクランクシャフト１５にコネクティングロッド１４を介して連結されており、コネクティングロッド１４によりピストン１３の往復運動がクランクシャフト１５の回転運動に変換される。
【００２７】
各気筒１２内にあってピストン１３の上方には燃焼室１６が区画形成されており、この燃焼室１６内に向けて燃料を噴射する筒内インジェクタ１７（筒内用燃料噴射弁）が設けられている。筒内インジェクタ１７には、周知の燃料供給機構を通じて所定の高圧燃料が供給される。そして、この筒内インジェクタ１７の開弁駆動により、燃料が燃焼室１６内に直接噴射供給されて、いわゆる筒内噴射が行われる。
【００２８】
また、燃焼室１６には、その内部に形成される燃料と空気とからなる混合気に対して点火を行う点火プラグ１８が取り付けられている。この点火プラグ１８による混合気への点火タイミングは、点火プラグ１８の上方に設けられたイグナイタ１９によって調整される。
【００２９】
燃焼室１６には、吸気通路２０及び排気通路２１が連通されている。そして、吸気通路２０の一部を構成する吸気ポート２０ａには、その吸気ポート２０ａ内に燃料を噴射するポートインジェクタ２２（吸気ポート用燃料噴射弁）が設けられている。このポートインジェクタ２２には、周知の機構を通じて所定圧の燃料が供給される。そして、このポートインジェクタ２２の開弁駆動に伴って、燃料が吸気ポート２０ａ内に噴射されて、いわゆるポート噴射が行われる。なお、吸気通路２０には燃焼室１６に導入される空気量を調量するスロットルバルブも設けられている。
【００３０】
排気通路２１の途中には、混合気の空燃比が所定範囲内の値となっているときに浄化機能を発揮する触媒１００が設けられている。より詳細には、混合気の空燃比が理論空燃比となっているときに、触媒１００では排気中の有害成分（主にＨＣ、ＣＯ、ＮＯx）が効果的に浄化される。
【００３１】
排気通路２１において、触媒１００よりも上流側の部位には、触媒１００よりも上流側の実空燃比である上流側実空燃比ＡＦｆに応じた出力値Ｖ１を出力する上流側センサ３５が設けられている。上流側センサ３５は、周知の空燃比センサであり、排気中の酸素濃度と密接な関係にある混合気の空燃比に比例した大きさの出力値Ｖ１を出力する。つまり、混合気の空燃比がリッチからリーンへと変化するにつれて、上流側センサ３５の出力値Ｖ１は直線状に大きくなっていく。
【００３２】
排気通路２１において、触媒１００よりも下流側の部位には、触媒１００よりも下流側の実空燃比である下流側実空燃比ＡＦｒに応じた出力値Ｖ２を出力する下流側センサ３６が設けられている。下流側センサ３６は、周知の酸素センサであり、混合気の空燃比が理論空燃比よりもリッチであるときには１ボルト程度の出力電圧が得られ、混合気の空燃比が理論空燃比よりもリーンであるときには０ボルト程度の出力電圧が得られる。また、理論空燃比近傍を境にして出力電圧が急変する特性を有している。従って、下流側センサ３６が下流側実空燃比ＡＦｒに応じた出力値Ｖ２を出力するといっても、同出力値Ｖ２は下流側実空燃比ＡＦｒの変化に応じて直線状に変化するわけではなく、出力値Ｖ２は、触媒１００よりも下流側の実空燃比が理論空燃比よりもリッチであるか、またはリーンであるかを判定するために用いられる。
【００３３】
内燃機関１１の各種制御は、制御装置３０によって行われる。制御装置３０は、機関制御に係る各種処理を実施する中央演算処理装置（ＣＰＵ）、制御用のプログラムや機関制御に必要な情報を記憶する不揮発性メモリや揮発性メモリ、筒内インジェクタ１７やポートインジェクタ２２の駆動回路、並びにイグナイタ１９等の駆動回路等を備えて構成されている。
【００３４】
制御装置３０には、上記上流側センサ３５や下流側センサ３６の他にも、機関運転状態を検出する各種のセンサが接続されている。例えばクランクセンサ３１によってクランクシャフト１５のクランク角が検出され、これに基づいて機関回転速度ＮＥが算出される。またアクセルセンサ３３によって、アクセル操作量ＡＣＣＰが検出される。また、エアフロメータ３４によって吸入空気量ＧＡが検出される。そして、制御装置３０は、こうした各種センサの検出信号によって把握される内燃機関１１の運転状態に応じて、燃料噴射制御、空燃比制御、点火時期制御等をはじめとする各種制御を実施する。
【００３５】
制御装置３０は、筒内インジェクタ１７及びポートインジェクタ２２による燃料の噴き分けを実施して噴射態様を変化させる。
図２に示すように、例えば、低回転低負荷領域ではポートインジェクタ２２によるポート噴射のみを行い、中負荷中回転領域ではポートインジェクタ２２及び筒内インジェクタ１７の双方を用いたポート噴射及び筒内噴射を行う。そして、高負荷高回転領域では筒内インジェクタ１７による筒内噴射のみを行う。なお、図２に示す噴き分け領域は一例であり、適宜変更することができる。
【００３６】
上述した燃料の噴き分けは、機関運転状態に基づいて設定される燃料噴射量Ｑのうちでポートインジェクタ２２から噴射させる燃料量の割合を示すポート噴射割合Ｒｐを種々変更することにより実行される。
【００３７】
ポート噴射割合Ｒｐは、機関負荷ＫＬや機関回転速度ＮＥ等の機関運転状態に基づき「０≦Ｒｐ≦１」の範囲内で可変設定され、燃料噴射量Ｑに対してポート噴射割合Ｒｐを乗算した結果得られる燃料量がポートインジェクタ２２の燃料噴射量として設定される。一方、「１」からポート噴射割合Ｒｐを減じた値が、燃料噴射量Ｑのうちで筒内インジェクタ１７から噴射させる燃料量の割合を示す筒内噴射割合Ｒｄとして算出される（Ｒｄ＝１−Ｒｐ）。そして、燃料噴射量Ｑに対して筒内噴射割合Ｒｄを乗算した結果得られる燃料量が筒内インジェクタ１７の燃料噴射量として設定される。
【００３８】
先の図２に示した例の場合には、低負荷低回転領域では、ポート噴射割合Ｒｐは「１」に、筒内噴射割合Ｒｄは「０」に設定される。また、中負荷中回転領域では、ポート噴射割合Ｒｐは「０＜Ｒｐ＜１」の範囲内で可変設定され、これに伴い筒内噴射割合Ｒｄも可変設定される。そして、高負荷高回転領域では、ポート噴射割合Ｒｐは「０」に、筒内噴射割合Ｒｄは「１」に設定される。このように本実施形態では、機関運転状態に応じてポート噴射割合Ｒｐを可変設定することにより、自ずと筒内噴射割合Ｒｄも可変設定される。
【００３９】
また、制御装置３０は、内燃機関１１の各気筒間において空燃比のばらつきが生じていないかどうかを監視している。より詳細には、そうした空燃比のばらつきを生じさせる原因の１つは、気筒間での燃料噴射量のばらつきであり、こうした燃料噴射量の気筒間ばらつきを示す指標値であるインバランス率ＩＭＢを把握するようにしている。
【００４０】
図３は、４気筒エンジンの全気筒において燃焼が一巡する１サイクル（７２０°ＣＡ）毎の空燃比の変動を示しており、特に、ある気筒の燃料噴射量を意図的にずらして、燃料噴射量の気筒間ばらつきを発生させた場合に、上流側センサ３５によって検出される上流側実空燃比ＡＦｆの変動態様を示す。なお、図３に示す実線Ｌ１は、気筒間ばらつきが発生していないときの上流側実空燃比ＡＦｆの変動を示す。また、一点鎖線Ｌ２は、ある気筒の燃料噴射量を所定量Ａ１だけずらして気筒間ばらつきを発生させたときの上流側実空燃比ＡＦｆの変動を示す。そして、二点鎖線Ｌ３は、ある気筒の燃料噴射量を、上記所定量Ａ１よりも多い所定量Ａ２だけずらして気筒間ばらつきを発生させたときの上流側実空燃比ＡＦｆの変動を示す。
【００４１】
この図３の実線Ｌ１に示すように、上流側実空燃比ＡＦｆは、内燃機関１１の１サイクルを１周期として、周期的な変動を繰り返す。そして、一点鎖線Ｌ２に示すように、燃料噴射量の気筒間ばらつきが発生して気筒間の空燃比に違いが生じると、１サイクル内での上流側実空燃比ＡＦｆの変動量は大きくなる。そして、一点鎖線Ｌ２及び二点鎖線Ｌ３に示すように、気筒間での燃料噴射量のずれが多いほど、つまり燃料噴射量の気筒間ばらつきの度合が大きいときほど、上流側実空燃比ＡＦｆの変動量は大きくなる。
【００４２】
そこで、本実施形態では、上流側実空燃比ＡＦｆの変動量に相関する値（例えば、上流側センサ３５から出力される信号の傾きの大きさや、上流側実空燃比ＡＦｆの変化速度、あるいは所定期間内での上流側実空燃比ＡＦｆの変化量など）に基づき、上記気筒間ばらつきの度合を示すインバランス率ＩＭＢを検出するようにしている。より詳細には、上述したような上流側実空燃比ＡＦｆの変動量に関する値を検出し、その検出された値に基づき、同変動量が大きいときほどインバランス率ＩＭＢの値が大きくなるようにしている。
【００４３】
また、本実施形態では、インバランス率ＩＭＢの精度を高めるために、急激な加速及び減速を除く運転状態において、インバランス率ＩＭＢの検出を複数回実行し、その検出された複数のインバランス率ＩＭＢを平均化して最終的なインバランス率ＩＭＢを算出するようにしている。ちなみに、こうした平均化による最終的なインバランス率ＩＭＢの算出は一例であり、他の態様にて最終的なインバランス率ＩＭＢの算出を行ってもよい。
【００４４】
また、本実施形態の内燃機関１１は、ポートインジェクタ２２と筒内インジェクタ１７とを備えるようにしている。そのため、インバランス率ＩＭＢとして、ポートインジェクタ２２から噴射される燃料量の気筒間ばらつきの度合を示すポートインバランス率ＩＭＢｐと、筒内インジェクタ１７から噴射される燃料量の気筒間ばらつきの度合を示す筒内インバランス率ＩＭＢｄとをそれぞれ検出する。
【００４５】
ポートインバランス率ＩＭＢｐの検出は、ポート噴射のみが行われているときに行うことが望ましいが、ポート噴射及び筒内噴射が併用されているときには、例えば、その併用時に検出されたインバランス率ＩＭＢをポート噴射割合Ｒｐに応じて補正することにより、ポートインバランス率ＩＭＢｐを検出することができる。同様に、筒内インバランス率ＩＭＢｄの検出も、筒内噴射のみが行われているときに行うことが望ましいが、ポート噴射及び筒内噴射が併用されているときには、例えば、その併用時に検出されたインバランス率ＩＭＢを筒内噴射割合Ｒｄに応じて補正することにより、筒内インバランス率ＩＭＢｄを検出することができる。
【００４６】
ちなみに、気筒間ばらつきの度合を検出する技術は、既に周知である。例えば、上述した上流側実空燃比ＡＦｆの変動量の他にも、気筒間ばらつきの度合が大きくなるほど、内燃機関の回転変動は大きくなることが知られている。また、一部の気筒の空燃比が他の気筒の空燃比に対してリッチ側にずれるほど、気筒内から排出される水素の濃度は高くなることが知られている。また、このようにして水素濃度が高くなると、空燃比を検出するセンサが水素を検出してしまい、そのセンサの出力値は、実際の空燃比に応じた出力値よりもリッチ側にずれるようになることも知られている。従って、そうした周知技術を使って気筒間ばらつきの度合を検出してもよい。
【００４７】
制御装置３０は、以下の態様にて、内燃機関１１の空燃比制御を行う。なお、本実施形態の空燃比制御では、目標空燃比として理論空燃比が設定される。
この空燃比制御は、上流側センサ３５の出力値Ｖ１が目標空燃比に対応した出力値となるように燃料噴射量を補正するメインフィードバック補正と、下流側センサ３６の出力値Ｖ２が目標空燃比に対応した出力値となるように、メインフィードバック補正にて補正された燃料噴射量を補正するサブフィードバック補正とで構成されている。なお、メインフィードバック補正における目標空燃比に対応した出力値とは、上流側実空燃比ＡＦｆと同上流側実空燃比ＡＦｆの目標空燃比とが一致しているときの上流側センサ３５の出力値Ｖ１のことをいう。同様に、サブフィードバック補正における目標空燃比に対応した出力値とは、下流側実空燃比ＡＦｒと同下流側実空燃比ＡＦｒの目標空燃比とが一致しているときの下流側センサ３６の出力値Ｖ２のことをいう。
【００４８】
ポートインジェクタ２２及び筒内インジェクタ１７から噴射される総燃料量である上記燃料噴射量Ｑは、基本燃料噴射量Ｑｂ及びメイン補正値ＭＦに基づき、以下の式（１）を用いて算出される。
【００４９】
Ｑ＝Ｑｂ＋ＭＦ    …（１）
Ｑ：燃料噴射量Ｑ
Ｑｂ：基本燃料噴射量
ＭＦ：メイン補正値
ここで、基本燃料噴射量Ｑｂは、理論空燃比の混合気を得るために必要な理論上の燃料噴射量であり、機関回転速度ＮＥ及び機関負荷ＫＬに基づいて算出される。
【００５０】
また、メイン補正値ＭＦは、上記メインフィードバック補正により算出される値であり、次式（２）から求められる。
ＭＦ＝ＤＦ＋ＭＧ    …（２）
ＭＦ：メイン補正値
ＤＦ：メイン瞬時補正値
ＭＧ：メイン学習値
メイン瞬時補正値ＤＦは、上流側センサ３５の出力値Ｖ１と目標空燃比に対応した出力値（本実施形態では、実空燃比が理論空燃比となったときの出力値）との間に生じている現状の偏差に基づき増減される。こうしたメイン瞬時補正値ＤＦの増減により、現状の上流側実空燃比ＡＦｆと目標空燃比との偏差に応じて燃料噴射量Ｑが速やかに増減補正される。
【００５１】
また、メイン学習値ＭＧは、目標空燃比に対する上流側実空燃比ＡＦｆの定常的なずれを補償する値となるように更新される。このメイン学習値ＭＧは、上流側センサ３５の出力値Ｖ１と目標空燃比に対応した出力値との偏差を時間積分することにより更新される。
【００５２】
式（１）及び式（２）から分かるように、燃料噴射量Ｑには、上記態様にて算出されるメイン瞬時補正値ＤＦ及びメイン学習値ＭＧが反映される。これにより、内燃機関１１の上流側実空燃比ＡＦｆが目標空燃比となるように、同内燃機関１１の燃料噴射量が調整される。
【００５３】
ところで、触媒１００の排気浄化性能を最大限に発揮させるには、触媒１００を通過する排気中の酸素濃度が理論空燃比での混合気の燃焼時に対応した値となるようにすることが好ましい。そこで、触媒１００の下流側に設けられた下流側センサ３６の出力に基づき、サブフィードバック補正を行うことでサブ補正値ＳＢを算出する。そして、次式（３）に示すように、そのサブ補正値ＳＢを上流側センサ３５の出力値Ｖ１に加算することにより、その出力値Ｖ１は補正される。
【００５４】
Ｖ１←最新のＶ１＋ＳＢ  …（３）
Ｖ１：上流側センサの出力値
ＳＢ：サブ補正値
上流側センサ３５の出力値Ｖ１がサブ補正値ＳＢによって補正されるということは、上流側センサ３５の出力値Ｖ１等に基づいて求められる上記メイン補正値ＭＦがサブ補正値ＳＢによって補正されることを意味する。従って、サブ補正値ＳＢは、下流側センサ３６の出力値Ｖ２が目標空燃比に対応した出力値となるように、メインフィードバック補正にて補正された燃料噴射量を補正する補正値となっている。
【００５５】
サブ補正値ＳＢは、次式（４）から求められる。
ＳＢ←ＶＨ＋ＳＢ  …（４）
ＳＢ：サブ補正値
ＶＨ：サブ瞬時補正値
ＳＧ：サブ学習値
上記サブ瞬時補正値ＶＨは、下流側センサ３６の出力値Ｖ２と目標空燃比に対応した出力値（本実施形態では、実空燃比が理論空燃比となったときの出力値）との間に生じている現状の偏差に基づき増減される。こうしたサブ瞬時補正値ＶＨの増減を通じた上流側センサ３５の出力値Ｖ１の補正により、現状の下流側実空燃比ＡＦｒと目標空燃比との偏差に応じた燃料噴射量Ｑの補正が速やかに行われる。
【００５６】
また、上記サブ学習値ＳＧは、下流側センサ３６の出力値Ｖ２と目標空燃比に対応した出力値との定常的な偏差、例えば触媒１００の劣化等に起因して発生する定常的な偏差を補償する値であり、下流側センサ３６の出力値Ｖ２と目標空燃比に対応した出力値との偏差を時間積分することにより更新される。
【００５７】
ところで、上述したように、気筒間ばらつきが発生すると、気筒内から排出される水素の濃度が高くなるために、上流側センサ３５が水素を検出してしまい、上流側センサ３５の出力値Ｖ１は、上流側実空燃比ＡＦｆに対応した出力値よりもリッチ側にずれてしまう。このようにして上流側センサ３５の出力値Ｖ１がリッチ側にずれてしまうと、上記空燃比制御におけるメインフィードバック補正によって、上流側実空燃比ＡＦｆは目標空燃比に対してリーン側へと誤って補正されてしまい、触媒１００の排気浄化性能が低下してしまう。他方、排気に含まれる水素は触媒１００を通過すると酸化される。そのため下流側センサ３６の出力値Ｖ２は、上流側センサ３５の出力値Ｖ１とは異なり、実際の空燃比に対応した正しい出力値になる。従って、上記理由により、上流側実空燃比ＡＦｆが目標空燃比に対してリーン側へと誤って補正される場合でも、下流側センサ３６は下流側実空燃比ＡＦｒを正しく検出し、その出力値Ｖ２はリーンを示す。
【００５８】
そのため、メインフィードバック補正によってリーン側へと誤って補正された実空燃比は下流側センサ３６によって正しく検出され、上記サブフィードバック補正では、リーンを示す下流側実空燃比ＡＦｒをリッチ側に補正するために燃料噴射量を増量するサブ補正値ＳＢが算出される。こうしたサブ補正値ＳＢにより、上流側センサ３５の出力値のずれに起因して生じる、目標空燃比に対する上流側実空燃比ＡＦｆのリーンずれは徐々に抑えられていく。
【００５９】
他方、気筒間ばらつきが起きているときの上流側センサ３５の出力値Ｖ１のずれによる上流側実空燃比ＡＦｆのリーン化は、空燃比制御で補正される燃料噴射量Ｑをさらに増量することによっても抑えることが可能である。そこで、本実施形態では、上述した気筒間ばらつきによる上流側センサ３５の出力値Ｖ１のずれに起因した空燃比の誤補正を抑え、これにより触媒１００に流入する排気の空燃比が理論空燃比となるように燃料噴射量Ｑを増量補正する処理の一例として、以下のストイキ補正を行うようにしている。
【００６０】
このストイキ補正では、上流側実空燃比ＡＦｆの目標空燃比をリッチ側に補正するストイキ補正値ＳＨが算出され、これにより上流側実空燃比ＡＦｆの目標空燃比がリッチ側に補正されると、空燃比制御により補正される燃料噴射量Ｑは、そうした目標空燃比のリッチ側への補正前と比較して増量補正される。こうした燃料噴射量Ｑの更なる増量補正により、上流側実空燃比ＡＦｆはリッチ側へ移行するようになり、触媒１００に流入する排気の空燃比は理論空燃比に調整される。このようにストイキ補正値ＳＨは、上流側実空燃比ＡＦｆの目標空燃比をリッチ側に補正する値であって、上流側センサ３５の出力値Ｖ１のずれに起因してリーン化する触媒１００の雰囲気を理論空燃比にするために必要な補正値である。なお、このストイキ補正は、「燃料噴射弁から噴射される燃料量の気筒間ばらつきが起きているときには空燃比制御にて補正される燃料噴射量を更に補正する処理」に相当し、ストイキ補正値ＳＨは、その燃料噴射量を補正する処理で設定される補正値に相当する。
【００６１】
図４に、そうしたストイキ補正の処理手順について一例を示す。なお、本処理は、制御装置３０によって所定周期毎に繰り返し実行される。
本処理が開始されるとまず、ポートインバランス率ＩＭＢｐ及び筒内インバランス率ＩＭＢｄの学習がともに完了しているか否かが判定される（Ｓ１００）。ポートインバランス率ＩＭＢｐの学習完了とは、上述したように、複数回に渡って検出されたポートインバランス率ＩＭＢｐの平均化が完了している状態のことを言う。同様に、筒内インバランス率ＩＭＢｄの学習完了も、上述したように、複数回に渡って検出された筒内インバランス率ＩＭＢｄの平均化が完了している状態のことを言う。
【００６２】
そして、ポートインバランス率ＩＭＢｐ及び筒内インバランス率ＩＭＢｄの学習がともに完了していないときには（Ｓ１００：ＮＯ）、本処理は一旦終了される。
一方、ポートインバランス率ＩＭＢｐ及び筒内インバランス率ＩＭＢｄの学習がともに完了しているときには（Ｓ１００：ＹＥＳ）、ストイキ補正値ＳＨの算出が行われる（Ｓ１１０）。上述したように、ストイキ補正値ＳＨは、目標空燃比をリッチ側に補正する値であって、上流側センサ３５の出力値Ｖ１のずれに起因してリーン化する触媒１００の雰囲気を理論空燃比にするための補正値であり、その値が大きいほど増量される燃料噴射量の量は多くなる。そして、気筒間ばらつきの度合が大きいときほど、上流側センサ３５の出力値Ｖ１のずれは大きくなり、これにより上流側実空燃比ＡＦｆがリーン側にずれる量も多くなる。そこで、ストイキ補正値ＳＨは、気筒間ばらつきの度合に応じて変化する。
【００６３】
図５に示すように、ストイキ補正値ＳＨは、ポートインバランス率ＩＭＢｐが高いときほど、あるいは筒内インバランス率ＩＭＢｄが高いときほど大きい値に設定され、これにより気筒間ばらつきの度合が大きいときほど、ストイキ補正による燃料噴射量の増量は多くされる。
【００６４】
また、気筒間ばらつきによる上流側センサ３５の出力値Ｖ１のずれは、気筒間ばらつきの度合が同じであっても、機関負荷や機関回転速度が異なると、排気に含まれる水素の濃度が上流側センサ３５の出力値Ｖ１に与える影響は異なるようになる。そこでより精密な補正値を設定するために、ストイキ補正値ＳＨは、気筒間ばらつきの度合だけではなく、機関負荷や機関回転速度によっても可変設定される。さらに、気筒間ばらつきの度合が上流側センサ３５の出力値Ｖ１のずれに与える影響は、ポートインジェクタ２２及び筒内インジェクタ１７の噴射割合によっても変化する。そこで、上記各パラメータに基づいて設定されるストイキ補正値ＳＨは、ポート噴射割合Ｒｐや筒内噴射割合Ｒｄに応じて補正されることにより、最終的な値が算出される。
【００６５】
なお、上述したように、下流側センサ３６の出力値Ｖ２は、気筒から排出された水素の濃度の影響を受けることなく、触媒１００の実際の雰囲気が反映される。そのため、ストイキ補正値ＳＨを、下流側センサ３６の出力値Ｖ２に応じて可変設定してもよい。この場合でも、上流側センサ３５の出力値Ｖ１のずれに起因してリーン化する触媒１００の雰囲気を理論空燃比にするために必要な補正値としてストイキ補正値ＳＨを算出することが可能である。この他、上述したように、上流側センサ３５の出力値Ｖ１のずれは、気筒から排出される水素の濃度に応じて変化する。そこで、触媒１００の上流側に気筒から排出された水素の濃度を検出するセンサを設ける。そして、そのセンサにて検出される水素濃度に基づいてストイキ補正値ＳＨを設定するようにしてもよい。この場合でも、上流側センサ３５の出力値Ｖ１のずれに起因してリーン化する触媒１００の雰囲気を理論空燃比にするために必要な補正値としてストイキ補正値ＳＨを算出することが可能である。
【００６６】
ステップＳ１１０にて、ストイキ補正値ＳＨの算出が行われると、そのストイキ補正値ＳＨに基づいて上流側実空燃比ＡＦｆの目標空燃比が補正されて（Ｓ１２０）、本処理は一旦終了される。ステップＳ１２０では、現在設定されている上流側実空燃比ＡＦｆの目標空燃比がストイキ補正値ＳＨで補正されることにより、上流側実空燃比ＡＦｆの目標空燃比はリッチ側に補正される。なお、ステップＳ１２０では、ストイキ補正値ＳＨの値が大きいときほど目標空燃比のリッチ側への補正量は多くなる。このようにして上流側実空燃比ＡＦｆの目標空燃比がリッチ側に補正されると、リッチ側への補正前に比較して上流側実空燃比ＡＦｆはリッチ側の値になるように燃料噴射量Ｑは増量補正される。従って、上流側センサ３５の出力値Ｖ１のずれに起因してリーン化する触媒１００の雰囲気は、理論空燃比の雰囲気へと変化する。
【００６７】
ちなみに、ストイキ補正値ＳＨにて目標空燃比を補正する態様とは異なる態様にて、燃料噴射量Ｑを増量補正してもよい。例えば、気筒間ばらつきの度合、機関負荷ＫＬ、及び機関回転速度ＮＥに基づき、触媒１００の雰囲気を理論空燃比の雰囲気にするための目標空燃比を予めマップ等に設定しておく。そして、このようにして設定しておいた目標空燃比を、空燃比制御で利用するようにしてもよい。また、空燃比制御によって補正された燃料噴射量Ｑをストイキ補正値ＳＨにて直接増量補正するようにしてもよい。
【００６８】
ところで、上記ストイキ補正値ＳＨによる目標空燃比の補正を通じた燃料噴射量Ｑの増量により、上流側実空燃比ＡＦｆはリッチ化する。そのため、同ストイキ補正値ＳＨによる上流側実空燃比ＡＦｆのリッチ化が開始された以降、つまりポートインバランス率ＩＭＢｐ及び筒内インバランス率ＩＭＢｄの学習が完了してストイキ補正値ＳＨが算出された以降は、下流側センサ３６の出力値Ｖ２と下流側実空燃比ＡＦｒの目標空燃比に対応した出力値との定常的な偏差は小さくなっていく。そのため、サブ補正値ＳＢを構成するサブ学習値ＳＧは徐々に小さくなっていき、サブ学習値ＳＧは適正値へと収束していく。
【００６９】
ここで、ストイキ補正値ＳＨによる上流側実空燃比ＡＦｆのリッチ化が開始されるまでは、上流側実空燃比ＡＦｆのリッチ化がサブ補正値ＳＢによって行われている状態になっており、下流側センサ３６の出力値Ｖ２と下流側実空燃比ＡＦｒの目標空燃比に対応した出力値との定常的な偏差を補償するサブ学習値ＳＧは、比較的大きい値になっている。従って、サブ学習値ＳＧが比較的大きい値になっている状態でストイキ補正値ＳＨによる上流側実空燃比ＡＦｆのリッチ化が開始された直後は、燃料噴射量Ｑの増量が過剰に行われてしまい、上流側実空燃比ＡＦｆが過剰にリッチ化する可能性がある。こうした上流側実空燃比ＡＦｆの過剰なリッチ化は、上述したように、サブ補正値ＳＢのサブ学習値ＳＧが徐々に小さくなっていき、適正値へと収束していくことによって解消されるのであるが、サブ学習値ＳＧが適正値に収束するまでにはある程度の時間を要する。そのため、サブ学習値ＳＧが適正値に収束するまでは排気の浄化性能が低下するおそれがある。
【００７０】
そこで、本実施形態では、以下に説明するサブ学習値の変更処理を実行することにより、徐々に値が小さくなっていくサブ学習値ＳＧが適正値に収束するまでに要する時間を短縮し、これにより排気浄化性能の悪化を抑えるようにしている。
【００７１】
以下、サブ学習値の変更処理について、図６を参照して説明する。なお、本処理は、制御装置３０によって所定周期毎に繰り返し実行される。
図６に示すように、本処理が開始されるとまず、ポートインバランス率ＩＭＢｐ及び筒内インバランス率ＩＭＢｄの学習がともに完了しているか否かが判定される（Ｓ２００）。ポートインバランス率ＩＭＢｐの学習完了とは、上述したように、複数回に渡って検出されたポートインバランス率ＩＭＢｐの平均化が完了している状態のことを言う。同様に、筒内インバランス率ＩＭＢｄの学習完了も、上述したように、複数回に渡って検出された筒内インバランス率ＩＭＢｄの平均化が完了している状態のことを言う。
【００７２】
そして、ポートインバランス率ＩＭＢｐ及び筒内インバランス率ＩＭＢｄの学習がともに完了していないときには（Ｓ２００：ＮＯ）、本処理は一旦終了される。
一方、ポートインバランス率ＩＭＢｐ及び筒内インバランス率ＩＭＢｄの学習がともに完了しているときには（Ｓ２００：ＹＥＳ）、ポートインバランス率ＩＭＢｐ及び筒内インバランス率ＩＭＢｄが共に正常判定値Ａ以下であるか否かが判定される（Ｓ２１０）。正常判定値Ａは、燃料噴射量のばらつきによる気筒間ばらつきの異常が起きておらず、気筒間ばらつきについては正常な範囲内に収まっていることを判定するための値であり、ポートインバランス率ＩＭＢｐが正常判定値Ａ以下のときには、ポートインジェクタ２２から噴射される燃料量の気筒間ばらつきについて異常は無く正常であると判定される。同様に、筒内インバランス率ＩＭＢｄが正常判定値Ａ以下のときには、筒内インジェクタ１７から噴射される燃料量の気筒間ばらつきについて異常は無く正常であると判定される。
【００７３】
そして、ポートインバランス率ＩＭＢｐ及び筒内インバランス率ＩＭＢｄが共に正常判定値Ａ以下であるときには（Ｓ２１０：ＹＥＳ）、現在設定されているサブ学習値ＳＧが正常値Ｔとして制御装置３０の不揮発性メモリに記憶されて（Ｓ２２０）、本処理は一旦終了される。以後、本処理が所定周期毎に実行されて、ステップＳ２００及びステップＳ２１０にて肯定判定される度に、つまりポートインジェクタ２２に関する気筒間ばらつき及び筒内インジェクタ１７に関する気筒間ばらつきの双方について異常がないと判定される毎に、不揮発性メモリに記憶された正常値Ｔは、その時点での最新のサブ学習値ＳＧに更新される。
【００７４】
一方、ステップＳ２１０にて、ポートインバランス率ＩＭＢｐ及び筒内インバランス率ＩＭＢｄのうちの少なくとも一方が正常判定値Ａを超えていると判定されるきには（Ｓ２１０：ＮＯ）、ポートインバランス率ＩＭＢｐまたは筒内インバランス率ＩＭＢｄが異常判定値Ｂ以上であるか否かが判定される（Ｓ２３０）。異常判定値Ｂは、燃料噴射量のばらつきによる気筒間ばらつきの異常が起きていることを判定するための値であり、ポートインバランス率ＩＭＢｐが異常判定値Ｂ以上のときには、ポートインジェクタ２２から噴射される燃料量の気筒間ばらつきについて異常があると判定される。同様に、筒内インバランス率ＩＭＢｄが異常判定値Ｂ以上のときには、筒内インジェクタ１７から噴射される燃料量の気筒間ばらつきについて異常があると判定される。
【００７５】
ちなみに、ステップＳ２１０やステップＳ２３０にて行われる気筒間ばらつきについての異常の有無の判定は、ポートインバランス率ＩＭＢｐ及び筒内インバランス率ＩＭＢｄの学習がともに完了している場合に実行される。ここで、上述したように、ポートインバランス率ＩＭＢｐや筒内インバランス率ＩＭＢｄの学習完了とは、複数回に渡って検出されたインバランス率の平均化が完了している状態のことを言う。従って、こうしたポートインバランス率ＩＭＢｐや筒内インバランス率ＩＭＢｄの学習完了にはある程度の時間が必要であり、ステップＳ２１０やステップＳ２３０にて行われる気筒間ばらつきについての異常の有無の判定は、少なくともインバランス率の学習を完了させるために必要な所定期間が経過した後に実行される。なお、インバランス率の学習が完了した後は、適宜の周期、例えば１トリップ（機関を始動させてから、その後停止させるまでの間）毎や、予め定められた時間が経過する毎に、気筒間ばらつきについての異常の有無が判定される。
【００７６】
上記ステップＳ２３０にて、ポートインバランス率ＩＭＢｐまたは筒内インバランス率ＩＭＢｄが異常判定値Ｂ以上ではないと判定されるとき、つまりポートインバランス率ＩＭＢｐ及び筒内インバランス率ＩＭＢｄが共に異常判定値Ｂよりも小さいときには（Ｓ２３０：ＮＯ）、本処理は、一旦終了される。
【００７７】
一方、ポートインバランス率ＩＭＢｐまたは筒内インバランス率ＩＭＢｄが異常判定値Ｂ以上であると判定されるときには（Ｓ２３０：ＹＥＳ）、現在設定されているサブ学習値ＳＧが、不揮発性メモリに記憶された最新の正常値Ｔに変更されて（Ｓ２５０）、本処理は一旦終了される。
【００７８】
以上説明した本実施形態によれば、次の作用効果を得ることができる。
（１）ポートインジェクタ２２に関する気筒間ばらつき及び筒内インジェクタ１７に関する気筒間ばらつきの双方に異常がないと判定される場合には、上流側センサ３５の出力値Ｖ１の上述したずれは少なくなるため、出力値Ｖ１のずれによる上流側実空燃比ＡＦｆのリーン化は抑えられた状態になっている。従ってこの状態では、下流側センサ３６の出力値Ｖ２は下流側実空燃比ＡＦｒの目標空燃比に対応した出力値に近くなっており、下流側センサ３６の出力値Ｖ２と下流側実空燃比ＡＦｒの目標空燃比（理論空燃比）に対応した出力値との定常的な偏差を補償するサブ学習値ＳＧは、気筒間ばらつきの異常が起きている場合と比較して小さい値になっている。
【００７９】
そこで、上記変更処理では、ステップＳ２１０にて、ポートインジェクタ２２及び筒内インジェクタ１７の双方において気筒間ばらつきの異常がないと判定される毎に、ステップＳ２２０では、異常がないと判定された時点でのサブ学習値ＳＧを正常値Ｔとして記憶するようにしている。そして、ステップＳ２３０にて、少なくともいずれか一方のインジェクタに関して気筒間ばらつきの異常ありと判定されるときには、その時点で設定されているサブ学習値ＳＧは、気筒間ばらつきに異常が無いと判定される毎に更新される上記正常値Ｔに変更される（Ｓ２４０）。従って、ステップＳ２３０にて、少なくともいずれか一方のインジェクタに関して気筒間ばらつきに異常ありと判定されるときには、大きい値になっているサブ学習値ＳＧが小さい値に変更される。このようにしてサブ学習値ＳＧが大きい値から小さい値へと速やかに変更されることにより、サブ学習値ＳＧが徐々に小さくなっていき、適正値へと収束していくまでに要する時間が短縮される。従って、ポートインジェクタ２２及び筒内インジェクタ１７を備える内燃機関１１において、サブ学習値ＳＧが適正値へと収束していくまでに要する時間を短縮することが可能になり、気筒間ばらつきが起きているときの排気浄化性能の悪化を抑えることができるようになる。
【００８０】
（２）また、気筒間ばらつきが起きているときには、空燃比制御にて補正される燃料噴射量Ｑを更に増量補正する処理として上記ストイキ補正が実行される。ここで、気筒間ばらつきに異常ありと判定されるときには、そのストイキ補正にて燃料噴射量Ｑを増量するための値、つまりストイキ補正値ＳＨと、大きい値から小さい値に変更されたサブ学習値ＳＧを含むサブ補正値ＳＢとで上流側実空燃比ＡＦｆのリッチ化が行われる。
【００８１】
そのため、サブ学習値ＳＧを変更することなく比較的大きい値になっている状態でストイキ補正値ＳＨによる上流側実空燃比ＡＦｆのリッチ化を開始する場合と比較して、サブ学習値ＳＧが小さい値に変更される分だけ燃料噴射量Ｑの過剰な増量が抑えられるようになる。従って、ストイキ補正値ＳＨによって上流側実空燃比ＡＦｆのリッチ化を開始した後の空燃比の過剰なリッチ化を抑えることができ、これによっても気筒間ばらつきが起きているときの排気浄化性能の悪化を抑えることができるようになる。
【００８２】
（３）気筒間ばらつきが起きているときの排気浄化性能の悪化を抑えることができるため、そうした悪化を抑えられない場合と比較して、排気浄化性能に悪影響を与えると判定するためのインバランス率ＩＭＢの異常判定値（より詳細にはポートインバランス率ＩＭＢｐや筒内インバランス率ＩＭＢｄの異常判定値）を高い値に設定することができる。従って、正常時と異常時とのインバランス率の差異が明瞭になり、ポートインバランス率ＩＭＢｐや筒内インバランス率ＩＭＢｄの異常判定精度を高めることができる。
【００８３】
（４）上述したように、正常時と異常時とのインバランス率の差異が明瞭になるため、ポートインバランス率ＩＭＢｐや筒内インバランス率ＩＭＢｄの検出に用いる上流側センサ３５の応答性が比較的遅い場合でも、それらインバランス率の異常判定を適切に行うことができる。従って、応答性の高い上流側センサ３５を選別して使用することによるコスト上昇や、上流側センサ３５の応答性を高めるためのコスト上昇などを抑えることができる。
【００８４】
また、排気通路の通路断面積を狭くすれば、単位時間当たりの排気流量が増大するため、上流側センサ３５の応答性が高まるようになる。しかし、排気通路での圧損が増大するため、機関出力に悪影響を与えるおそれがある。この点、上記実施形態によれば、上流側センサ３５の応答性が比較的遅い場合でも、インバランス率の異常判定を適切に行うことができるため、排気通路の通路断面積を狭くすることによる上記不都合の発生も抑えることができる。
【００８５】
なお、上記実施形態は、以下のように変更して実施することもできる。
・先の図６に示した変更処理では、ステップＳ２３０にて、ポートインジェクタ２２または筒内インジェクタ１７に気筒間ばらつきの異常ありと判定されるときには、サブ学習値ＳＧを正常値Ｔに変更する処理を行うようにした。
【００８６】
他方、気筒間ばらつきの度合が大きいときほど、上流側センサ３５の出力値Ｖ１のずれは大きくなり、これにより上流側実空燃比ＡＦｆがリーン側にずれる量も多くなる。そこで、上記実施形態では、ポートインバランス率ＩＭＢｐが高いときほど、あるいは筒内インバランス率ＩＭＢｄが高いときほど、ストイキ補正値ＳＨは大きい値に設定されるようにし、これにより気筒間ばらつきの度合が大きいときほど、ストイキ補正による燃料噴射量Ｑの増量は多くなるようにしている。ここで、気筒間ばらつきの度合の変化が所定値以上に大きいときには、ストイキ補正値ＳＨが急激に大きくなり、燃料噴射量Ｑの増量が急激に増大する。そのため、サブ学習値ＳＧが比較的大きい値になっている状態で、さらにストイキ補正値ＳＨによる燃料噴射量Ｑの急激な増量補正が行われると、上流側実空燃比ＡＦｆが過度にリッチ化されてしまうおそれがある。そこで、上記ステップＳ２４０で行われるサブ学習値ＳＧの正常値Ｔへの変更は、気筒間ばらつきの異常があると判定されるときであって、かつ気筒間ばらつきの度合の変化が所定値以上に大きいときに実行するようにしてよい。
【００８７】
図７に、この変形例におけるサブ学習値ＳＧの変更処理の一例を示す。なお、図７において、先の図６に示した処理と同じ処理について、同一のステップ番号を付している。
この変形例における変更処理では、上記ステップＳ２３０にて、ポートインバランス率ＩＭＢｐまたは筒内インバランス率ＩＭＢｄが異常判定値Ｂ以上であると判定されるときには（Ｓ２３０：ＹＥＳ）、ポートインバランス率ＩＭＢｐの変化量または筒内インバランス率ＩＭＢｄの変化量が急変判定値Ｃ以上であるか否かが判定される（Ｓ３００）。ポートインバランス率ＩＭＢｐの変化量は、本処理の今回実行時におけるポートインバランス率ＩＭＢｐの値から前回実行時におけるポートインバランス率ＩＭＢｐの値を減算した値である。同様に、筒内インバランス率ＩＭＢｄの変化量は、本処理の今回実行時における筒内インバランス率ＩＭＢｄの値から前回実行時における筒内インバランス率ＩＭＢｄの値を減算した値である。また、急変判定値Ｃは、気筒間ばらつきの度合が急激に増加したことを判定するための値であり、ポートインバランス率ＩＭＢｐの変化量が急変判定値Ｃ以上のときには、ポートインジェクタ２２から噴射される燃料量の気筒間ばらつきについてその度合の変化が大きいと判定される。同様に、筒内インバランス率ＩＭＢｄの変化量が急変判定値Ｃ以上のときには、筒内インジェクタ１７から噴射される燃料量の気筒間ばらつきについてその度合の変化が大きいと判定される。
【００８８】
そして、ポートインバランス率ＩＭＢｐの変化量または筒内インバランス率ＩＭＢｄの変化量が急変判定値Ｃ以上ではないとき、つまりポートインバランス率ＩＭＢｐの変化量及び筒内インバランス率ＩＭＢｄの変化量が共に急変判定値Ｃよりも小さいときには（Ｓ３００：ＮＯ）、本処理は一旦終了される。
【００８９】
一方、ポートインバランス率ＩＭＢｐの変化量または筒内インバランス率ＩＭＢｄの変化量が急変判定値Ｃ以上であるときには（Ｓ３００：ＹＥＳ）、現在設定されているサブ学習値ＳＧが、不揮発性メモリに記憶された最新の正常値Ｔに変更されて（Ｓ２４０）、本処理は一旦終了される。
【００９０】
こうした変形例によれば、ポートインジェクタ２２または筒内インジェクタ１７のいずれかに関して気筒間ばらつきの異常があり、且つ気筒間ばらつきの度合の変化が大きいときには、サブ学習値ＳＧが小さい値に変更される。つまりサブ学習値ＳＧが比較的大きい値になっている状態で、さらに比較的大きい値に設定されるストイキ補正値ＳＨにより燃料噴射量の急激な増量補正が行われるおそれがあるときには、サブ学習値ＳＧが小さい値に変更される。そのため、上述した上流側実空燃比ＡＦｆの過度なリッチ化を抑えることができる。
【００９１】
・上記実施形態では、サブ学習値ＳＧの変更処理について、ポートインジェクタ２２及び筒内インジェクタ１７を備える内燃機関１１において実行する場合を例に挙げて説明した。この他、上記実施形態やその変形例で説明したサブ学習値ＳＧの変更処理は、ポートインジェクタ２２のみを備える内燃機関や、筒内インジェクタ１７のみを備える内燃機関においても実行することができる。
【００９２】
一例として、筒内インジェクタ１７のみを備える内燃機関において、サブ学習値ＳＧの変更処理を実行する場合の手順を図８に示す。なお、筒内インジェクタ１７のみを備える内燃機関の場合には、筒内インバランス率ＩＭＢｄのみが算出される。また、ストイキ補正値ＳＨの算出に際しては、上述したようなポートインバランス率ＩＭＢｐを利用した処理や噴射割合を利用した補正処理は省略されている。
【００９３】
図８に示すように、この変形例における変更処理では、先の図７に示した各処理手順において、ポートインバランス率ＩＭＢｐに関する判定を省略し、筒内インバランス率ＩＭＢｄに関する判定のみを行うようにしている。
【００９４】
より詳細には、本処理が開始されるとまず、筒内インバランス率ＩＭＢｄの学習が完了しているか否かが判定される（Ｓ４００）。筒内インバランス率ＩＭＢｄの学習完了は、上述したように、複数回に渡って検出された筒内インバランス率ＩＭＢｄの平均化が完了している状態のことを言う。
【００９５】
そして、筒内インバランス率ＩＭＢｄの学習が完了していないときには（Ｓ４００：ＮＯ）、本処理は一旦終了される。
一方、筒内インバランス率ＩＭＢｄの学習が完了しているときには（Ｓ４００：ＹＥＳ）、筒内インバランス率ＩＭＢｄが上述した正常判定値Ａ以下であるか否かが判定される（Ｓ４１０）。
【００９６】
そして、筒内インバランス率ＩＭＢｄが正常判定値Ａ以下であるときには（Ｓ４１０：ＹＥＳ）、現在設定されているサブ学習値ＳＧが正常値Ｔとして制御装置３０の不揮発性メモリに記憶されて（Ｓ４２０）、本処理は一旦終了される。以後、本処理が所定周期毎に実行されて、ステップＳ４００及びステップＳ４１０にて肯定判定される度に、つまり筒内インジェクタ１７に関する気筒間ばらつきについて異常がないと判定される毎に、不揮発性メモリに記憶された正常値Ｔは、その時点での最新のサブ学習値ＳＧに更新される。
【００９７】
一方、ステップＳ４１０にて、筒内インバランス率ＩＭＢｄが上記正常判定値Ａを超えていると判定されるきには（Ｓ４１０：ＮＯ）、筒内インバランス率ＩＭＢｄが上述した異常判定値Ｂ以上であるか否かが判定される（Ｓ４３０）。そして、筒内インバランス率ＩＭＢｄが異常判定値Ｂ以上ではないと判定されるとき、つまり筒内インバランス率ＩＭＢｄが異常判定値Ｂよりも小さいときには（Ｓ４３０：ＮＯ）、本処理は、一旦終了される。
【００９８】
一方、筒内インバランス率ＩＭＢｄが異常判定値Ｂ以上であると判定されるときには（Ｓ４３０：ＹＥＳ）、筒内インバランス率ＩＭＢｄの変化量が上述した急変判定値Ｃ以上であるか否かが判定される（Ｓ４４０）。筒内インバランス率ＩＭＢｄの変化量は、本処理の今回実行時における筒内インバランス率ＩＭＢｄの値から前回実行時における筒内インバランス率ＩＭＢｄの値を減算した値である。
【００９９】
そして、筒内インバランス率ＩＭＢｄの変化量が急変判定値Ｃ以上ではないとき、つまり筒内インバランス率ＩＭＢｄの変化量が急変判定値Ｃよりも小さいときには（Ｓ４４０：ＮＯ）、本処理は一旦終了される。
【０１００】
一方、筒内インバランス率ＩＭＢｄの変化量が急変判定値Ｃ以上であるときには（Ｓ４４０：ＹＥＳ）、現在設定されているサブ学習値ＳＧが、不揮発性メモリに記憶された最新の正常値Ｔに変更されて（Ｓ４５０）、本処理は一旦終了される。
【０１０１】
こうした変形例によれば、筒内インジェクタ１７のみを備える内燃機関において、先の図７に示したサブ学習値の変更処理によって得られる作用効果と同等の作用効果を得ることができる。
【０１０２】
また、図８に示したステップＳ４４０の処理を省略し、ステップＳ４３０にて、筒内インバランス率ＩＭＢｄが異常判定値Ｂ以上であると判定されるときには、ステップＳ４５０の処理を実行することにより、現在設定されているサブ学習値ＳＧを、不揮発性メモリに記憶された最新の正常値Ｔに変更するようにしてもよい。この場合には、筒内インジェクタ１７のみを備える内燃機関において、先の図６に示したサブ学習値の変更処理によって得られる作用効果と同等の作用効果を得ることができる。
【０１０３】
同様に、ポートインジェクタ２２のみを備える内燃機関の場合には、ポートインバランス率ＩＭＢｐのみを算出する。また、ストイキ補正値ＳＨの算出に際しては、上述したような筒内インバランス率ＩＭＢｄを利用した処理や噴射割合を利用した補正処理を省略する。そして、先の図６や図７に示した各処理手順において、筒内インバランス率ＩＭＢｄに関する判定を省略し、ポートインバランス率ＩＭＢｐに関する判定のみを行うようにすれば、ポートインジェクタ２２のみを備える内燃機関においても、先の図６や図７に示したサブ学習値の変更処理によって得られる作用効果と同等の作用効果を得ることができる。
【０１０４】
・上述したストイキ補正値ＳＨは、上流側実空燃比ＡＦｆの目標値をリッチ側に補正する値であって、上流側センサ３５の出力値Ｖ１のずれに起因してリーン化する触媒１００の雰囲気を目標空燃比（例えば理論空燃比など）にするために必要な補正値であった。
【０１０５】
一方、気筒間ばらつきが起きているときの上流側センサ３５の出力値Ｖ１のずれに起因して、触媒１００の雰囲気がリッチ化してしまう場合には、上述したストイキ補正において、上流側実空燃比ＡＦｆの目標空燃比をリーン側に補正する値となるようにストイキ補正値ＳＨを変更すればよい。この場合には、空燃比制御によって補正された燃料噴射量がストイキ補正によって減量補正されるようになるため、上流側センサ３５の出力値Ｖ１のずれに起因してリッチ化する触媒１００の雰囲気を目標空燃比（例えば理論空燃比など）にすることが可能になる。そしてこの変形例の場合にも、上述したサブ学習値の変更処理を実行することにより、上記実施形態に準じた作用効果を得ることができる。
【０１０６】
・下流側センサ３６を、上流側センサ３５と同様な空燃比センサにしてもよい。
【符号の説明】
【０１０７】
１１…内燃機関、１２…気筒、１３…ピストン、１４…コネクティングロッド、１５…クランクシャフト、１６…燃焼室、１７…筒内インジェクタ、１８…点火プラグ、１９…イグナイタ、２０…吸気通路、２０ａ…吸気ポート、２１…排気通路、２２…ポートインジェクタ、３０…制御装置、３１…クランクセンサ、３３…アクセルセンサ、３４…エアフロメータ、３５…上流側センサ、３６…下流側センサ、１００…触媒。
【図１】
2016053305.tif 000003
【図２】
2016053305.tif 000004
【図３】
2016053305.tif 000005
【図４】
2016053305.tif 000006
【図５】
2016053305.tif 000007
【図６】
2016053305.tif 000008
【図７】
2016053305.tif 000009
【図８】
2016053305.tif 000010