(57)【要約】【課題】インバランスに起因した燃焼の制御性の低下がディザ制御によって助長されて顕在化する事態が生じることを、回避するか、ディザ制御を制限しない場合と比較して抑制できるようにした内燃機関の制御装置を提供する。【解決手段】ＣＰＵ３２は、三元触媒２４の昇温要求が生じた場合、気筒＃１〜＃４のうちの１つを、理論空燃比よりもリッチとするリッチ燃焼気筒とし、残りを、理論空燃比よりもリーンとするリーン燃焼気筒とするディザ制御を実行する。ＣＰＵ３２は、ディザ制御を実行していないときに、上流側空燃比Ａｆｕに基づきリッチインバランスの度合いの学習値であるリッチ学習値を学習する。ＣＰＵ３２は、リッチ学習値が所定値以上である場合、ディザ制御を禁止する。【選択図】図１
2019023443.tif 000002
【特許請求の範囲】
【請求項１】
複数の気筒から排出された排気を浄化する触媒と、前記複数の気筒毎に設けられた燃料噴射弁とを備える内燃機関を制御対象とし、
前記複数の気筒のうちの一部の気筒を、空燃比が理論空燃比よりもリーンであるリーン燃焼気筒とし、前記複数の気筒のうちの前記一部の気筒とは別の気筒を、空燃比が理論空燃比よりもリッチであるリッチ燃焼気筒とすべく、前記燃料噴射弁を操作するディザ制御処理と、
前記複数の気筒のそれぞれにおける空燃比を互いに等しく制御するために前記燃料噴射弁を操作する場合の前記複数の気筒のそれぞれの前記燃料噴射弁の噴射量のばらつき度合いを学習するインバランス学習処理と、
前記ばらつき度合いが所定値以上である場合、前記ディザ制御処理を、前記複数の気筒のそれぞれにおける空燃比のうちの最もリッチなものと最もリーンなものとの差を小さくする側に制限する制限処理と、を実行する内燃機関の制御装置。
【請求項２】
前記ばらつき度合いが前記所定値よりも大きい閾値以上である場合、報知機器を操作することによって、前記ばらつき度合いが大きい旨を報知する報知処理を実行する請求項１記載の内燃機関の制御装置。
【請求項３】
前記制限処理は、前記ディザ制御処理を禁止する処理を含む請求項１または２記載の内燃機関の制御装置。
【請求項４】
前記制限処理は、前記ばらつき度合いが前記所定値以上である場合に前記所定値未満である場合よりも前記リーン燃焼気筒における空燃比と前記リッチ燃焼気筒における空燃比との差を小さくする処理を含む請求項１または２記載の内燃機関の制御装置。
【請求項５】
前記ディザ制御処理は、前記内燃機関の動作点に応じて前記リーン燃焼気筒における空燃比と前記リッチ燃焼気筒における空燃比との差を可変設定する可変設定処理を含み、
前記制限処理は、前記可変設定処理によって設定された前記差の大きさに対する上限ガード値によるガード処理を含み、
前記上限ガード値は、前記所定値以上である場合に前記所定値未満である場合よりも小さい請求項４記載の内燃機関の制御装置。
【請求項６】
前記ディザ制御処理は、前記触媒の硫黄被毒回復要求のために前記触媒を昇温する要求が生じることを条件に少なくとも実行され、
前記制限処理は、前記硫黄被毒回復要求のために前記触媒を昇温するディザ制御処理を制限する請求項１〜５のいずれか１項に記載の内燃機関の制御装置。
【請求項７】
前記インバランス学習処理を、前記ディザ制御処理が実行されていないことを条件に実行する請求項１〜６のいずれか１項に記載の内燃機関の制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の気筒から排出された排気を浄化する触媒と、前記複数の気筒毎に設けられた燃料噴射弁とを備える内燃機関を制御対象とする内燃機関の制御装置に関する。
【背景技術】
【０００２】
たとえば特許文献１には、触媒装置（触媒）の昇温要求がある場合、一部の気筒における空燃比を理論空燃比よりもリッチとし、残りの気筒における空燃比を理論空燃比よりもリーンとし、触媒に流入する排気の空燃比を目標空燃比に制御するディザ制御を実行する制御装置が記載されている。
【０００３】
また、複数の気筒のそれぞれにおける空燃比を互いに等しく制御するために燃料噴射弁を操作した際の複数の気筒のそれぞれの燃料噴射弁の噴射量のばらつき（インバランス）の度合いを学習するインバランス学習処理が周知である。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００４−２１８５４１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、上記インバランスが生じている場合、各気筒の燃焼室内における燃焼対象となる混合気の空燃比は、狙いとする値からずれうるため、燃焼の制御性が低下する。一方、ディザ制御を実行する場合には、空燃比が理論空燃比よりもリッチとなる気筒とリーンとなる気筒とを設けることから、燃焼状態を最適な状態から意図的にずらす必要が生じる。このため、インバランスが生じている場合にディザ制御を実行すると、インバランスに起因した燃焼の制御性の低下が、ディザ制御によって助長されて顕在化するおそれがある。
【課題を解決するための手段】
【０００６】
以下、上記課題を解決するための手段およびその作用効果について記載する。
１．内燃機関の制御装置は、複数の気筒から排出された排気を浄化する触媒と、前記複数の気筒毎に設けられた燃料噴射弁とを備える内燃機関を制御対象とし、前記複数の気筒のうちの一部の気筒を、空燃比が理論空燃比よりもリーンであるリーン燃焼気筒とし、前記複数の気筒のうちの前記一部の気筒とは別の気筒を、空燃比が理論空燃比よりもリッチであるリッチ燃焼気筒とすべく、前記燃料噴射弁を操作するディザ制御処理と、前記複数の気筒のそれぞれにおける空燃比を互いに等しく制御するために前記燃料噴射弁を操作する場合の前記複数の気筒のそれぞれの前記燃料噴射弁の噴射量のばらつき度合いを学習するインバランス学習処理と、前記ばらつき度合いが所定値以上である場合、前記ディザ制御処理を、前記複数の気筒のそれぞれにおける空燃比のうちの最もリッチなものと最もリーンなものとの差を小さくする側に制限する制限処理と、を実行する。
【０００７】
上記構成では、ばらつき度合いが所定値以上である場合、ディザ制御を制限することにより、インバランスに起因した燃焼の制御性の低下がディザ制御によって助長されて顕在化する事態が生じることを、回避する、または、ディザ制御を制限しない場合と比較して抑制する、ことができる。
【０００８】
２．上記１記載の内燃機関の制御装置において、前記ばらつき度合いが前記所定値よりも大きい閾値以上である場合、報知機器を操作することによって、前記ばらつき度合いが大きい旨を報知する報知処理を実行する。
【０００９】
上記構成では、上記所定値を上記閾値よりも小さい値とすることにより、閾値を設定する際、インバランスに起因した燃焼の制御性の低下がディザ制御によって助長されて顕在化することを考慮する制約が軽減または解消される。このため、上記所定値を上記閾値以上とする場合と比較すると、閾値を大きい値に設定しやすく、結果、報知処理がなされることを抑制できる。
【００１０】
３．上記１または２記載の内燃機関の制御装置は、前記制限処理は、前記ディザ制御処理を禁止する処理を含む。
上記構成では、ディザ制御処理を禁止することにより、インバランスに起因した燃焼の制御性の低下がディザ制御によって助長されて顕在化する事態が生じることを回避できる。
【００１１】
４．上記１または２記載の内燃機関の制御装置において、前記制限処理は、前記ばらつき度合いが前記所定値以上である場合に前記所定値未満である場合よりも前記リーン燃焼気筒における空燃比と前記リッチ燃焼気筒における空燃比との差を小さくする処理を含む。
【００１２】
上記制限処理によれば、制限処理を実行しない場合と比較して、インバランスに起因した燃焼の制御性の低下がディザ制御によって助長されて顕在化することを抑制することができる。
【００１３】
５．上記４記載の内燃機関の制御装置において、前記ディザ制御処理は、前記内燃機関の動作点に応じて前記リーン燃焼気筒における空燃比と前記リッチ燃焼気筒における空燃比との差を可変設定する可変設定処理を含み、前記制限処理は、前記可変設定処理によって設定された前記差の大きさに対する上限ガード値によるガード処理を含み、前記上限ガード値は、前記所定値以上である場合に前記所定値未満である場合よりも小さい。
【００１４】
上記構成では、内燃機関の動作点に応じて上記差を可変設定することにより、動作点によって、ディザ制御による燃焼の制御性の低下のしやすさが、動作点に応じて異なることを考慮して、動作点毎に適切な差を設定することができる。そして、制限処理をガード処理とすることにより、動作点毎の可変設定処理による上記差の設定を極力尊重することができる。
【００１５】
６．上記１〜５のいずれか１項に記載の内燃機関の制御装置において、前記ディザ制御処理は、前記触媒の硫黄被毒回復要求のために前記触媒を昇温する要求が生じることを条件に少なくとも実行され、前記制限処理は、前記硫黄被毒回復要求のために前記触媒を昇温するディザ制御処理を制限する。
【００１６】
硫黄被毒回復処理は、同処理がなされない場合と比較して触媒を高温とする処理となる。このため、ディザ制御によって燃焼の制御性が低下することにより、硫黄被毒回復処理に必要とされる昇温性能を上回る昇温がなされる場合には、触媒の劣化が促進されるおそれがある。このため、制限処理を実行することが特に有効である。
【００１７】
７．上記１〜６のいずれか１項に記載の内燃機関の制御装置において、前記インバランス学習処理を、前記ディザ制御処理が実行されていないことを条件に実行する。
上記構成では、ディザ制御処理が実行されていないことを条件にインバランス学習処理を実行することにより、ディザ制御による複数の気筒の空燃比のばらつきを考慮しなくてよいため、インバランス学習を高精度に実行することが容易である。
【図面の簡単な説明】
【００１８】
【図１】第１の実施形態にかかる制御装置および内燃機関を示す図。
【図２】同実施形態にかかる制御装置が実行する処理の一部を示すブロック図。
【図３】同実施形態にかかるリッチインバランス学習処理部の処理の手順を示す流れ図。
【図４】同実施形態にかかるリーンインバランス学習処理部の処理の手順を示す流れ図。
【図５】同実施形態にかかる要求値出力処理部の処理の手順を示す流れ図。
【図６】（ａ）および（ｂ）は、同実施形態の効果を示すタイムチャート。
【図７】第２の実施形態にかかる噴射量補正要求値算出処理の手順を示す流れ図。
【図８】第３の実施形態にかかる噴射量補正要求値算出処理の手順を示す流れ図。
【発明を実施するための形態】
【００１９】
＜第１の実施形態＞
以下、内燃機関の制御装置にかかる第１の実施形態について図面を参照しつつ説明する。
【００２０】
図１に示す内燃機関１０において、吸気通路１２から吸入された空気は、過給機１４を介して各気筒の燃焼室１６に流入する。燃焼室１６には、燃料を噴射する燃料噴射弁１８と、火花放電を生じさせる点火装置２０とが突出している。燃焼室１６において、空気と燃料との混合気は、燃焼に供され、燃焼に供された混合気は、排気として、排気通路２２に排出される。排気通路２２のうちの過給機１４の下流には、酸素吸蔵能力を有した三元触媒２４が設けられている。
【００２１】
制御装置３０は、内燃機関１０を制御対象とし、その制御量（トルク、排気成分等）を制御するために、燃料噴射弁１８や点火装置２０等の内燃機関１０の操作部を操作する。この際、制御装置３０は、三元触媒２４の上流側の上流側空燃比センサ４０によって検出される空燃比（上流側空燃比Ａｆｕ）や、三元触媒２４の下流側の下流側空燃比センサ４２によって検出される空燃比（下流側空燃比Ａｆｄ）を参照する。また制御装置３０は、クランク角センサ４４の出力信号Ｓｃｒや、エアフローメータ４６によって検出される吸入空気量Ｇａを参照する。制御装置３０は、ＣＰＵ３２、ＲＯＭ３４、および電気的に書き換え可能な不揮発性メモリ３６を備えており、ＲＯＭ３４に記憶されたプログラムをＣＰＵ３２が実行することにより上記制御量の制御を実行する。
【００２２】
図２に、ＲＯＭ３４に記憶されたプログラムをＣＰＵ３２が実行することにより実現される処理の一部を示す。
ベース噴射量算出処理部Ｍ１０は、クランク角センサ４４の出力信号Ｓｃｒに基づき算出された回転速度ＮＥと吸入空気量Ｇａとに基づき、燃焼室１６における混合気の空燃比を目標空燃比に開ループ制御するための操作量である開ループ操作量として、ベース噴射量Ｑｂを算出する。
【００２３】
ローパスフィルタＭ１２は、上流側空燃比Ａｆｕの高周波成分を除去することにより、フィードバック制御量としての空燃比Ａｆを算出する。目標値設定処理部Ｍ１４は、燃焼室１６における混合気の空燃比を上記目標空燃比に制御するためのフィードバック制御量の目標値Ａｆ＊を設定する。
【００２４】
メインフィードバック処理部Ｍ１６は、空燃比Ａｆを目標値Ａｆ＊にフィードバック制御するための操作量であるフィードバック操作量ＫＡＦを算出する。本実施形態では、目標値Ａｆ＊と空燃比Ａｆとの差を入力とする比例要素、積分要素、および微分要素の各出力値の和を、フィードバック操作量ＫＡＦとする。
【００２５】
フィードバック補正処理部Ｍ１８は、ベース噴射量Ｑｂにフィードバック操作量ＫＡＦを乗算することによって、ベース噴射量Ｑｂを補正する。
なお、サブフィードバック処理部Ｍ２０では、下流側空燃比Ａｆｄを目標値Ａｆｄ＊にフィードバック制御するための操作量であるサブ補正量Ｓｆｂを目標値設定処理部Ｍ１４に出力する。これにより、目標値設定処理部Ｍ１４では、目標空燃比に相当する制御量の値をサブ補正量Ｓｆｂによって補正する処理によって、目標値Ａｆ＊を設定する。
【００２６】
要求値出力処理部Ｍ２２は、三元触媒２４の昇温要求が生じることを条件に、内燃機関１０の各気筒＃１〜＃４からの排気の空燃比（排気空燃比）の平均値を目標空燃比としつつも、燃焼対象とする混合気の空燃比を気筒間で異ならせるディザ制御の噴射量補正要求値αを算出して出力する。ここで、本実施形態にかかるディザ制御では、第１の気筒＃１〜第４の気筒＃４のうちの１つの気筒を、混合気の空燃比を理論空燃比よりもリッチとするリッチ燃焼気筒とし、残りの３つの気筒を、混合気の空燃比を理論空燃比よりもリーンとするリーン燃焼気筒とする。そして、リッチ燃焼気筒における噴射量を、上記フィードバック補正処理部Ｍ１８の出力値の「１＋α」倍とし、リーン燃焼気筒における噴射量を、同出力値の「１−（α／３）」倍とする。
【００２７】
なお、対象排気の排気空燃比は、仮想混合気を用いて定義される。すなわち、仮想混合気を、新気および燃料のみからなって且つ燃焼させた場合に生成される排気の未燃燃料濃度（たとえばＨＣ）、不完全燃焼成分濃度（たとえばＣＯ）および酸素濃度が対象排気の未燃燃料濃度、不完全燃焼成分濃度および酸素濃度と同一となる混合気と定義し、排気空燃比を、仮想混合気の空燃比と定義する。ただし、ここで仮想混合気の燃焼には、未燃燃料濃度および不完全燃焼成分濃度と酸素濃度との少なくとも一方がゼロまたはゼロと見なせる値となる燃焼に限らず、未燃燃料濃度および不完全燃焼成分濃度と酸素濃度との双方がゼロよりも大きい状態となる燃焼も含まれることとする。また、複数の気筒の排気空燃比の平均値とは、複数の気筒から排出される排気全体を対象排気とした場合の排気空燃比のこととする。リーン燃焼気筒とリッチ燃焼気筒との上記噴射量の設定によれば、各気筒において燃焼対象とされる混合気の燃空比の平均値を目標燃空比とすることによって、排気空燃比の平均値を目標空燃比とすることができる。なお、燃空比とは、空燃比の逆数のことである。
【００２８】
補正係数算出処理部Ｍ２４では、「１」に、噴射量補正要求値αを加算して、リッチ燃焼気筒に関し、フィードバック補正処理部Ｍ１８の出力値の補正係数を算出する。ディザ補正処理部Ｍ２６は、フィードバック補正処理部Ｍ１８の出力値に補正係数「１＋α」を乗算することによって、リッチ燃焼気筒の噴射量指令値Ｑｒ＊を算出する。
【００２９】
乗算処理部Ｍ２８では、噴射量補正要求値αを「−１／３」倍し、補正係数算出処理部Ｍ３０では、「１」に、乗算処理部Ｍ２８の出力値を加算して、リーン燃焼気筒に関し、フィードバック補正処理部Ｍ１８の出力値の補正係数を算出する。ディザ補正処理部Ｍ３２は、フィードバック補正処理部Ｍ１８の出力値に補正係数「１−（α／３）」を乗算することによって、リーン燃焼気筒の噴射量指令値Ｑｌ＊を算出する。
【００３０】
噴射量操作処理部Ｍ３４は、噴射量指令値Ｑｒ＊に基づき、リッチ燃焼気筒の燃料噴射弁１８の操作信号ＭＳ２を生成して、同燃料噴射弁１８に出力し、同燃料噴射弁１８から噴射される燃料量が噴射量指令値Ｑｒ＊に応じた量となるように燃料噴射弁１８を操作する。また、噴射量操作処理部Ｍ３４は、噴射量指令値Ｑｌ＊に基づき、リーン燃焼気筒の燃料噴射弁１８の操作信号ＭＳ２を生成して、同燃料噴射弁１８に出力し、同燃料噴射弁１８から噴射される燃料量が噴射量指令値Ｑｌ＊に応じた量となるように燃料噴射弁１８を操作する。なお、気筒＃１〜＃４のうちリッチ燃焼気筒となる気筒は、１燃焼サイクルよりも長い周期で変更されることが望ましい。また、噴射量補正要求値αがゼロの場合、ディザ補正処理部Ｍ２６，Ｍ３２によって、フィードバック補正処理部Ｍ１８の出力値に「１」が乗算されるため、噴射量補正要求値αがゼロの場合、各気筒＃１〜＃４のそれぞれの噴射量指令値がフィードバック補正処理部Ｍ１８の出力値となるが、図２では、ディザ制御時の噴射量指令値Ｑｌ＊，Ｑｒ＊を便宜上図示している。なお、噴射量補正要求値αがゼロの場合、操作信号ＭＳ２は、フィードバック補正処理部Ｍ１８の出力値から算出される。
【００３１】
リッチインバランス学習処理部Ｍ４０は、リッチインバランスの学習値（リッチ学習値Ｉｎｒ）を算出する。ここで、リッチインバランスとは、全ての気筒＃１〜＃４における混合気の空燃比を同一の値に制御するように各気筒＃１〜＃４の燃料噴射弁１８を操作する場合に、特定の気筒の空燃比が上記同一の値に対してリッチ側にずれることである。
【００３２】
図３に、リッチインバランス学習処理部Ｍ４０の処理の手順を示す。図３に示す処理は、ＲＯＭ３４に記憶されたプログラムをＣＰＵ３２がたとえば所定周期で繰り返し実行することにより実現される。なお、以下では、先頭に「Ｓ」を付与した数字によって、ステップ番号を表現する。
【００３３】
図３に示す一連の処理において、ＣＰＵ３２は、まずリッチインバランス学習条件が成立するか否かを判定する（Ｓ１０）。ここで、学習条件は、以下の条件（ア）〜（ウ）の論理積が真である旨の条件である。
【００３４】
条件（ア）：今回のトリップにおいて、未だリッチ学習値Ｉｎｒが算出され更新されていない旨の条件。ここで、トリップとは、内燃機関１０が搭載された車両が走行不能な状態から走行可能な状態に切り替えられてから再度走行不能な状態に切り替えられるまでの期間とする。走行可能な状態への切替は、仮に車両の原動機が内燃機関１０のみであるなら、イグニッションスイッチのオン状態への切替に相当する。
【００３５】
条件（イ）：回転速度ＮＥが所定範囲内にあって且つ吸入空気量Ｇａが所定範囲内にある旨の条件。この条件は、排気流量が少ない場合よりも多い場合の方が学習精度を高くすることができることに鑑み、排気流量が所定値以上となるときに学習を実行することなどを狙ったものである。
【００３６】
条件（ウ）：ディザ制御が実行されていない旨の条件。
ＣＰＵ３２は、学習条件が成立すると判定する場合（Ｓ１０：ＹＥＳ）、上流側空燃比Ａｆｕの時系列データを取得する（Ｓ１２）。そして、ＣＰＵ３２は、上流側空燃比Ａｆｕの時系列データから上流側空燃比Ａｆｕの所定時間当たりの変化量である時間変化ΔＡｆｕを算出し、これに基づき、リッチ学習値Ｉｎｒを算出する（Ｓ１４）。ここでＣＰＵ３２は、時間変化ΔＡｆｕが大きい場合に小さい場合よりもリッチインバランスが大きいとして、リッチ学習値Ｉｎｒを大きい値に算出する。そしてＣＰＵ３２は、不揮発性メモリ３６に記憶されているリッチ学習値Ｉｎｒを、Ｓ１４の処理によって新たに算出した値に基づき更新する（Ｓ１６）。ここでＣＰＵ３２は、不揮発性メモリ３６に記憶される値を、前回のＳ１６の処理によって不揮発性メモリ３６に記憶されていた値と、Ｓ１４の処理によって新たに算出した値との指数移動平均処理値に更新する。次にＣＰＵ３２は、リッチ学習値Ｉｎｒが閾値ＩｎｒＦ以上であるか否かを判定する（Ｓ１８）。この処理は、リッチインバランスの度合いが許容範囲を超えるか否かを判定する処理である。そしてＣＰＵ３２は、閾値ＩｎｒＦ以上であると判定する場合（Ｓ１８：ＹＥＳ）、図１に示す警告灯４８を操作して、修理工場にてインバランス異常を解消することを促すべく、車両のユーザに異常が生じた旨を報知する報知処理を実行する（Ｓ２０）。
【００３７】
なお、ＣＰＵ３２は、Ｓ１０，Ｓ１８の処理において否定判定する場合や、Ｓ２０の処理が完了する場合には、図３に示す一連の処理を一旦終了する。
図２に戻り、リーンインバランス学習処理部Ｍ４２は、リーンインバランスの学習値（リーン学習値Ｉｎｌ）を算出する。ここで、リーンインバランスとは、全ての気筒＃１〜＃４における混合気の空燃比を同一の値に制御するように各気筒＃１〜＃４の燃料噴射弁１８を操作する場合に、特定の気筒の空燃比が上記同一の値に対してリーン側にずれることである。
【００３８】
図４に、リーンインバランス学習処理部Ｍ４２の処理の手順を示す。図４に示す処理は、ＲＯＭ３４に記憶されたプログラムをＣＰＵ３２がたとえば所定周期で繰り返し実行することにより実現される。
【００３９】
図４に示す一連の処理において、ＣＰＵ３２は、まずリーンインバランスの学習条件が成立するか否かを判定する（Ｓ３０）。この学習条件は、上記条件（ア）においてリッチ学習値Ｉｎｒをリーン学習値Ｉｎｌに読み替えたものと、条件（イ）と条件（ウ）との論理積が真である旨の条件である。ＣＰＵ３２は、学習条件が成立すると判定する場合（Ｓ３０：ＹＥＳ）、クランク角センサ４４の出力信号Ｓｃｒから算出される各気筒＃１〜＃４のＴＤＣを含む３０°の回転角度領域における回転速度である瞬時速度ωの時系列データを取得する（Ｓ３２）。そしてＣＰＵ３２は、一対の気筒の瞬時速度ω同士の差Δωの大きさに基づきリーン学習値Ｉｎｌを算出する（Ｓ３４）。ここで、一対の気筒は、たとえば圧縮上死点が出現する順序が互いに隣り合う一対の気筒とすればよい。ＣＰＵ３２は、差Δωが大きい場合に小さい場合よりもリーンインバランスの度合いが大きいとして、リーン学習値Ｉｎｌを大きい値に算出する。
【００４０】
そしてＣＰＵ３２は、不揮発性メモリ３６に記憶されているリーン学習値ＩｎｌをＳ３４の処理によって新たに算出した値に基づき更新する（Ｓ３６）。ここでＣＰＵ３２は、不揮発性メモリ３６に記憶される値を、前回のＳ３６の処理によって不揮発性メモリ３６に記憶されていた値と、Ｓ３４の処理によって新たに算出した値との指数移動平均処理値に更新する。なお、ＣＰＵ３２は、差Δωに基づき、気筒＃１〜＃４のうちリーンとなっている気筒を特定することができることから、特定した気筒を併せ不揮発性メモリ３６に記憶する。次にＣＰＵ３２は、リーン学習値Ｉｎｌが閾値ＩｎｌＦ以上であるか否かを判定する（Ｓ３８）。この処理は、リーンインバランスの度合いが許容範囲を超えるか否かを判定する処理である。そしてＣＰＵ３２は、閾値ＩｎｌＦ以上であると判定する場合（Ｓ３８：ＹＥＳ）、図１に示す警告灯４８を操作して、車両のユーザに異常が生じた旨を報知する報知処理を実行する（Ｓ４０）。
【００４１】
ＣＰＵ３２は、Ｓ３０，Ｓ３８の処理において否定判定する場合や、Ｓ４０の処理が完了する場合には、図４に示す一連の処理を一旦終了する。
なお、図２に示す目標値設定処理部Ｍ１４は、リッチ学習値Ｉｎｒが大きい場合に小さい場合よりも、目標値Ａｆ＊をリッチ側の値とする。これは、リッチインバランスの度合いが大きい場合には小さい場合よりも、空燃比Ａｆが全ての気筒＃１〜＃４の排気空燃比の平均値に対してリッチ側にずれることに鑑みた設定である。同様の理由から、目標値設定処理部Ｍ１４は、ディザ制御を実行する場合には実行しない場合と比較して、目標値Ａｆ＊をリッチ側の値とする。これに対し、ＣＰＵ３２は、リーン学習値Ｉｎｌに基づき、アイドリング時に限って、リーンインバランスに起因してリーンとなっている気筒の噴射量を増量する。これは、アイドリング時に狙いとする噴射量に対して実際の噴射量が不足する場合、失火が生じやすいことに鑑みたものである。
【００４２】
図５に、要求値出力処理部Ｍ２２の処理の手順を示す。図５に示す処理は、ＲＯＭ３４に記憶されたプログラムをＣＰＵ３２がたとえば所定周期で繰り返し実行することにより実現される。
【００４３】
図５に示す一連の処理において、ＣＰＵ３２は、まず回転速度ＮＥおよび負荷率ＫＬを取得する（Ｓ５０）。ここで、負荷率ＫＬは、基準流入空気量に対する、１気筒の１燃焼サイクル当たりの流入空気量の比であり、筒内充填空気量を定量化したものである。なお、基準流入空気量は、回転速度ＮＥに応じて可変設定してもよい。
【００４４】
次にＣＰＵ３２は、ディザ制御による三元触媒２４の昇温要求が生じているか否かを判定する（Ｓ５２）。本実施形態では、昇温要求は、硫黄被毒回復処理の実行要求が生じる場合と、三元触媒２４に硫黄が堆積しやすい運転領域（たとえばアイドリング運転領域）にあることに起因して堆積を抑制する要求が生じる場合とに、生じるものとする。ちなみに、硫黄被毒回復処理の実行条件は、三元触媒２４の硫黄被毒量が予め定められた値以上となる場合に成立するとすればよく、また硫黄被毒量は、たとえば回転速度ＮＥが高いほど、負荷率ＫＬが高いほど被毒量の増加量を多く算出し、増加量を積算することによって算出すればよい。ただし、ディザ制御が実行される場合、実行されない場合と比較して被毒量の増加量は低減される。
【００４５】
ＣＰＵ３２は、昇温要求があると判定する場合（Ｓ５２：ＹＥＳ）、インバランス学習要求があるか否かを判定する（Ｓ５４）。ＣＰＵ３２は、リッチインバランス学習条件のうちのディザ制御が実行されていない旨の条件を除いたものが成立する場合や、リーンインバランス学習条件のうちのディザ制御が実行されていない旨の条件を除いたものが成立する場合にインバランス学習要求が生じたと判定する。
【００４６】
ＣＰＵ３２は、インバランス学習条件が成立しないと判定する場合（Ｓ５４：ＮＯ）、リッチ学習値Ｉｎｒが上記閾値ＩｎｒＦよりも小さい規定値Ｉｎｒｔｈ未満であることとリーン学習値Ｉｎｌが上記閾値ＩｎｌＦよりも小さい規定値Ｉｎｌｔｈ未満であることとの論理積が真であるか否かを判定する（Ｓ５６）。この処理は、ディザ制御を許可するか否かを判定するためのものである。なお、不揮発性メモリ３６におけるリッチ学習値Ｉｎｒの記憶領域には、上記更新処理が初めてなされる前には、規定値Ｉｎｒｔｈよりも大きい値がデフォルトで記憶されているものとする。また、不揮発性メモリ３６におけるリーン学習値Ｉｎｌの記憶領域には、上記更新処理が初めてなされる前には、規定値Ｉｎｌｔｈよりも大きい値がデフォルトで記憶されているものとする。これは、インバランス学習が実行されていることを、ディザ制御の実行条件の１つとするための設定である。
【００４７】
ＣＰＵ３２は、論理積が真であると判定する場合（Ｓ５６：ＹＥＳ）、ディザ制御を実行すべく、上記噴射量補正要求値αを算出する（Ｓ５８）。本実施形態において、ＣＰＵ３２は、噴射量補正要求値αを、回転速度ＮＥおよび負荷率ＫＬに基づき可変設定する。詳しくは、ＣＰＵ３２は、噴射量補正要求値αを、中負荷領域において最大とする。これは、低負荷領域では中負荷領域と比較して燃焼が不安定なために、低負荷領域では中負荷領域よりも噴射量補正要求値αを大きくしにくいことと、高負荷領域では、ディザ制御を実行しなくても排気温度が高いこととに鑑みたものである。また、ＣＰＵ３２は、噴射量補正要求値αを、回転速度ＮＥが低い場合よりも高い場合に大きい値とする。これは、回転速度ＮＥが低い場合よりも高い場合の方が燃焼が安定するために、噴射量補正要求値αを大きい値としやすいためである。具体的には、ＲＯＭ３４に、入力変数としての回転速度ＮＥおよび負荷率ＫＬと出力変数としての噴射量補正要求値αとの関係を定めたマップデータを記憶しておき、ＣＰＵ３２がこれを用いて噴射量補正要求値αをマップ演算すればよい。なお、マップデータとは、入力変数の離散的な値と、入力変数の値のそれぞれに対応する出力変数の値と、の組データである。またマップ演算は、たとえば、入力変数の値がマップデータの入力変数の値のいずれかに一致する場合、対応する出力変数の値を演算結果とし、一致しない場合、組データに含まれる複数の出力変数の値の補間によって得られる値を演算結果とする処理とすればよい。
【００４８】
一方、ＣＰＵ３２は、昇温要求がないと判定する場合（Ｓ５２：ＮＯ）や、インバランス学習実行要求があると判定する場合（Ｓ５４：ＹＥＳ）、さらにはリッチ学習値Ｉｎｒが規定値Ｉｎｒｔｈ以上であるかリーン学習値Ｉｎｌが規定値Ｉｎｌｔｈ以上である場合（Ｓ５６：ＮＯ）には、噴射量補正要求値αをゼロとする（Ｓ６０）。ここで、Ｓ５６の処理において否定判定する場合にＳ６０の処理に移行する設定は、リッチ学習値Ｉｎｒが規定値Ｉｎｒｔｈ以上であることとリーン学習値Ｉｎｌが規定値Ｉｎｌｔｈ以上であることとの論理和が真である場合にディザ制御を禁止する設定である。
【００４９】
なお、ＣＰＵ３２は、Ｓ５８，Ｓ６０の処理が完了する場合、図６に示す一連の処理を一旦終了する。
ここで本実施形態の作用を説明する。
【００５０】
ＣＰＵ３２は、ディザ制御が実行されていない状態で、リッチ学習値Ｉｎｒやリーン学習値Ｉｎｌを算出する。そして、ＣＰＵ３２は、ディザ制御による昇温要求が生じる場合、リッチ学習値Ｉｎｒが規定値Ｉｎｒｔｈ未満であることとリーン学習値Ｉｎｌが規定値Ｉｎｌｔｈ未満であることとの論理積が真であることを、ディザ制御を実行する条件とする。換言すれば、ＣＰＵ３２は、リッチ学習値Ｉｎｒが規定値Ｉｎｒｔｈ以上である場合やリーン学習値Ｉｎｌが規定値Ｉｎｌｔｈ以上である場合には、ディザ制御を禁止する。このためインバランスに起因した燃焼の制御性の低下がディザ制御によって助長され顕在化することを抑制することができる。
【００５１】
図６（ａ）に、本実施形態にかかる三元触媒２４の温度の推移例を示し、図６（ｂ）に、比較例にかかる推移例を示す。
図６（ａ）に示すように、本実施形態では、時刻ｔ１において硫黄被毒回復処理のための昇温要求が生じたにもかかわらず、リッチ学習値Ｉｎｒが規定値Ｉｎｒｔｈ以上であるために、ディザ制御を実行しない。このため、気筒＃１〜＃４のそれぞれにおいて燃焼対象となる混合気が目標空燃比から過度にずれることが抑制される。
【００５２】
これに対し、図６（ｂ）に示す比較例では、時刻ｔ１において硫黄被毒回復処理のための昇温要求が生じると、リッチ学習値Ｉｎｒが規定値Ｉｎｒｔｈ以上であるにもかかわらずディザ制御が実行される。そしてこれにより、図５のＳ５８の処理において設定した噴射量補正要求値αから想定されるリッチ化度合いよりも、リッチ燃焼気筒の空燃比が過度にリッチとなり、三元触媒２４の温度がその劣化が促進される温度Ｔｔｈを超えて上昇している。
【００５３】
なお、アイドリング時等に生じる昇温要求に応じてディザ制御を実行する場合には、リッチ学習値Ｉｎｒが規定値Ｉｎｒｔｈを上回る場合であっても、三元触媒２４の温度が温度Ｔｔｈを超える事態にはなりにくい。しかし、インバランスが生じている場合にディザ制御を実行する場合には、気筒＃１〜＃４のそれぞれにおいて燃焼対象となる混合気が目標空燃比から過度にずれ、トルク変動が顕在化したり、失火を招いたりすることが懸念される。
【００５４】
ちなみに、ディザ制御を禁止すると、三元触媒２４の昇温性能が低下するおそれがある。しかし、リッチ学習値Ｉｎｒが規定値Ｉｎｒｔｈ以上である場合やリーン学習値Ｉｎｌが規定値Ｉｎｌｔｈ以上である場合には、インバランス異常に起因して、三元触媒２４には、一部の気筒から排出された酸素と他の気筒から排出された未燃燃料成分や不完全燃焼成分とが流入する。このため、本実施形態では、インバランス異常に起因して三元触媒２４が昇温されるため、インバランス異常が生じていない場合にディザ制御を禁止する場合と比較すると、ディザ制御の禁止に起因した昇温性能の低下が抑制される。
【００５５】
以上説明した本実施形態によれば、さらに以下に記載する効果が得られる。
（１）リッチインバランスに関し、規定値Ｉｎｒｔｈを閾値ＩｎｒＦよりも小さくすることにより、閾値ＩｎｒＦを設定する際、インバランスに起因した燃焼の制御性の低下がディザ制御によって助長されて顕在化することを考慮する制約が生じない。このため、規定値Ｉｎｒｔｈを閾値ＩｎｒＦ以上とする場合と比較して、閾値ＩｎｒＦを大きい値に設定しやすく、ひいては報知処理が実行されることを抑制できる。また、リーンインバランスに関し、規定値Ｉｎｌｔｈを閾値ＩｎｌＦよりも小さくすることにより、閾値ＩｎｌＦを設定する際、インバランスに起因した燃焼の制御性の低下がディザ制御によって助長されて顕在化することを考慮する制約が生じない。このため、規定値Ｉｎｌｔｈを閾値ＩｎｌＦ以上とする場合と比較して、閾値ＩｎｌＦを大きい値に設定しやすく、ひいては報知処理が実行されることを抑制できる。
【００５６】
（２）インバランス学習処理を、ディザ制御処理が実行されていないことを条件に実行した。これにより、ディザ制御による気筒＃１〜＃４の空燃比のばらつきを考慮しなくてよいため、インバランス学習を高精度に実行することが容易となる。
【００５７】
＜第２の実施形態＞
以下、第２の実施形態について、第１の実施形態との相違点を中心に図面を参照しつつ説明する。
【００５８】
本実施形態では、リッチ学習値Ｉｎｒが規定値Ｉｎｒｔｈ未満であって且つリーン学習値Ｉｎｌが規定値Ｉｎｌｔｈ未満である場合であっても、リッチ学習値Ｉｎｒやリーン学習値Ｉｎｌに基づき噴射量補正要求値αの大きさを制限する。なお、本実施形態の規定値Ｉｎｒｔｈ，Ｉｎｌｔｈの大きさは、必ずしも第１の実施形態と同一でなくてよい。
【００５９】
図７に、本実施形態にかかる噴射量補正要求値算出処理の手順を示す。図７に示す処理は、図５のＳ５８の処理に代わるものであり、ＲＯＭ３４に記憶されたプログラムをＣＰＵ３２が所定周期で繰り返し実行することにより実現される。
【００６０】
図７に示す一連の処理において、ＣＰＵ３２は、まず回転速度ＮＥおよび負荷率ＫＬに基づき、噴射量補正要求値αを可変設定する（Ｓ７０）。この処理は、第１の実施形態において説明した処理と同一である。次にＣＰＵ３２は、リッチ学習値Ｉｎｒとリーン学習値Ｉｎｌとに基づき、噴射量補正要求値αの上限ガード値Ｇｉｍｂを算出する（Ｓ７２）。ここで、ＣＰＵ３２は、リッチ学習値Ｉｎｒが大きい場合に小さい場合よりも上限ガード値Ｇｉｍｂを小さい値に算出し、リーン学習値Ｉｎｌが大きい場合に小さい場合よりも上限ガード値Ｇｉｍｂを小さい値に算出する。詳しくは、リッチ学習値Ｉｎｒおよびリーン学習値Ｉｎｌを入力変数とし上限ガード値Ｇｉｍｂを出力変数とするマップデータをＲＯＭ３４に記憶しておき、ＣＰＵ３２は、マップ演算によって上限ガード値Ｇｉｍｂを算出する。なお、図７には、マップデータの入力変数としてのリッチ学習値Ｉｎｒの最大値ＩｎｒＨと最小値ＩｎｒＬ、およびリーン学習値Ｉｎｌの最大値ＩｎｌＨおよび最小値ＩｎｌＬを記載している。また、図７には、出力変数ｇｎｍ（ｍ＝１，２，３…：ｎ＝１，２，３…）について、リッチ学習値Ｉｎｒが大きい場合の出力変数ｇｋｓがリッチ学習値Ｉｎｒが小さい場合の出力変数ｇｋｔよりも小さいことや、リーン学習値Ｉｎｌが大きい場合の出力変数ｇｓｋがリーン学習値Ｉｎｌが小さい場合の出力変数ｇｔｋよりも小さいことが示されている。なお、上限ガード値Ｇｉｍｂは、マップ演算によって出力変数ｇｎｍのいずれかに一致するか、複数の出力変数の補間演算によって算出された値となる。
【００６１】
ＣＰＵ３２は、噴射量補正要求値αが上限ガード値Ｇｉｍｂよりも大きいか否かを判定する（Ｓ７４）。そしてＣＰＵ３２は、上限ガード値Ｇｉｍｂよりも大きいと判定する場合（Ｓ７４：ＹＥＳ）、噴射量補正要求値αに、上限ガード値Ｇｉｍｂを代入する（Ｓ７６）。なお、ＣＰＵ３２は、Ｓ７６の処理が完了する場合や、Ｓ７４において否定判定する場合には、図７に示す一連の処理を一旦終了する。
【００６２】
ここで本実施形態の作用を説明する。
ＣＰＵ３２は、回転速度ＮＥおよび負荷率ＫＬに基づき噴射量補正要求値αを算出すると、上限ガード値Ｇｉｍｂによるガード処理を施す。ＣＰＵ３２は、リッチ学習値Ｉｎｒがマップデータの最大値ＩｎｒＨと最小値ＩｎｒＬとの間の所定値未満である場合と比較して、所定値以上である場合の方が、上限ガード値Ｇｉｍｂを小さい値に算出する。また、ＣＰＵ３２は、リーン学習値Ｉｎｌがマップデータの最大値ＩｎｌＨと最小値ＩｎｌＬとの間の所定値未満である場合と比較して、所定値以上である場合の方が、上限ガード値Ｇｉｍｂを小さい値に算出する。これにより、噴射量補正要求値αは、インバランスの度合いが大きい場合に小さい場合よりも小さい値とされることとなる。
【００６３】
これにより、上記第１の実施形態と比較して、規定値Ｉｎｒｔｈ，Ｉｎｌｔｈをより大きい値に設定しやすく、結果として、噴射量補正要求値αの大きさを制限しつつディザ制御を極力実行することができる。
【００６４】
＜第３の実施形態＞
以下、第３の実施形態について、第２の実施形態との相違点を中心に図面を参照しつつ説明する。
【００６５】
図８に、本実施形態にかかる噴射量補正要求値算出処理の手順を示す。図８に示す処理は、ＲＯＭ３４に記憶されたプログラムをＣＰＵ３２が所定周期で繰り返し実行することにより実現される。なお、図８においては、図７に示した処理に対応する処理については、便宜上、同一のステップ番号を付している。
【００６６】
図８に示す一連の処理において、ＣＰＵ３２は、回転速度ＮＥおよび負荷率ＫＬに基づき噴射量補正要求値αを可変設定する（Ｓ７０）と、リーン学習値Ｉｎｌに基づき噴射量補正要求値αのリーンインバランス補正係数Ｋｌを算出する（Ｓ８０）。詳しくは、ＣＰＵ３２は、リーン学習値Ｉｎｌが大きい場合に小さい場合よりもリーンインバランス補正係数Ｋｌを小さい値（＞０）に算出する。具体的には、ＲＯＭ３４に、リーン学習値Ｉｎｌを入力変数とし、リーンインバランス補正係数Ｋｌを出力変数とするマップデータを記憶しておき、ＣＰＵ３２は、リーンインバランス補正係数Ｋｌをマップ演算する。なお、図８には、マップデータの入力変数としてのリーン学習値Ｉｎｌの最小値ＩｎｌＬと最大値ＩｎｌＨと、最小値ＩｎｌＬにおいてリーンインバランス補正係数Ｋｌが「１」である旨と、が記載されている。
【００６７】
次に、ＣＰＵ３２は、リッチ学習値Ｉｎｒに基づき噴射量補正要求値αのリッチインバランス補正係数Ｋｒを算出する（Ｓ８２）。詳しくは、ＣＰＵ３２は、リッチ学習値Ｉｎｒが大きい場合に小さい場合よりもリッチインバランス補正係数Ｋｒを小さい値（＞０）に算出する。具体的には、ＲＯＭ３４に、リッチ学習値Ｉｎｒを入力変数とし、リッチインバランス補正係数Ｋｒを出力変数とするマップデータを記憶しておき、ＣＰＵ３２は、リッチインバランス補正係数Ｋｒをマップ演算する。なお、図８には、マップデータの入力変数としてのリッチ学習値Ｉｎｒの最小値ＩｎｒＬと最大値ＩｎｒＨと、最小値ＩｎｒＬにおいてリッチインバランス補正係数Ｋｒが「１」である旨と、が記載されている。
【００６８】
そして、ＣＰＵ３２は、Ｓ８０の処理において算出した噴射量補正要求値αに、リッチインバランス補正係数Ｋｒとリーンインバランス補正係数Ｋｌとを乗算した値を、最終的な噴射量補正要求値αとする（Ｓ８４）。
【００６９】
なお、ＣＰＵ３２は、Ｓ８４の処理が完了する場合、図８に示す一連の処理を一旦終了する。
以上説明した本実施形態によっても、上記第２の実施形態に準じた効果を奏することができる。
【００７０】
＜対応関係＞
上記実施形態における事項と、上記「課題を解決するための手段」の欄に記載した事項との対応関係は、次の通りである。以下では、「課題を解決するための手段」の欄に記載した解決手段の番号毎に、対応関係を示している。［１］触媒は、三元触媒２４に対応し、ディザ制御処理は、補正係数算出処理部Ｍ２４、ディザ補正処理部Ｍ２６、乗算処理部Ｍ２８、補正係数算出処理部Ｍ３０、ディザ補正処理部Ｍ３２、噴射量操作処理部Ｍ３４、およびＳ５２，Ｓ５８（Ｓ７０）の処理に対応し、インバランス学習処理は、Ｓ１０〜Ｓ１６，Ｓ３０〜Ｓ３６の処理に対応する。所定値は、第１の実施形態においては、規定値Ｉｎｒｔｈ，Ｉｎｌｔｈに対応し、第２および第３の実施形態においては、規定値Ｉｎｒｔｈ，Ｉｎｌｔｈまたは、最小値ＩｎｒＬ（ＩｎｌＬ）と最大値ＩｎｒＨ（ＩｎｌＨ）との間の値に対応する。制限処理は、第１の実施形態では、Ｓ５６において否定判定される場合にＳ６０の処理に移行する処理に対応し、第２の実施形態では、Ｓ７２〜Ｓ７６の処理に対応し、第３の実施形態では、Ｓ８０〜Ｓ８４の処理に対応する。［２］報知機器は、警告灯４８に対応する。［３］Ｓ５６において否定判定される場合にＳ６０の処理に移行する処理に対応する。［４］Ｓ７２〜Ｓ７６の処理や、Ｓ８０〜Ｓ８４の処理に対応する。［５］可変設定処理は、Ｓ７０の処理に対応し、ガード処理は、Ｓ７４，Ｓ７６の処理に対応する。すなわち、リーン燃焼気筒における空燃比とリッチ燃焼気筒における空燃比との差は、噴射量補正要求値αに応じて定まる量であるため、噴射量補正要求値αに対するガード処理は、上記差に対するガード処理と見なせる。［７］Ｓ１０，Ｓ３０の処理に対応する。
【００７１】
＜その他の実施形態＞
なお、上記実施形態の各事項の少なくとも１つを、以下のように変更してもよい。
・「制限処理について」
たとえば上記「昇温要求について」の欄に記載したように、三元触媒２４の暖機要求が生じることを条件にディザ制御を実行するものにおいて、リッチ学習値Ｉｎｒが規定値Ｉｎｒｔｈ以上である場合やリーン学習値Ｉｎｌが規定値Ｉｎｌｔｈ以上である場合に、三元触媒２４の暖機のためのディザ制御を禁止してもよい。
【００７２】
上記実施形態では、リッチ学習値Ｉｎｒが規定値Ｉｎｒｔｈ以上である場合やリーン学習値Ｉｎｌが規定値Ｉｎｌｔｈ以上である場合に、ディザ制御を一律禁止したがこれに限らない。たとえば、硫黄被毒回復要求のための昇温要求の場合に限って、ディザ制御を禁止してもよい。もっとも、リッチ学習値Ｉｎｒが規定値Ｉｎｒｔｈ以上である場合やリーン学習値Ｉｎｌが規定値Ｉｎｌｔｈ以上である場合に、硫黄被毒回復要求のためのディザ制御を禁止することは必須ではない。たとえば、三元触媒２４の温度を検出する温度センサを備え、その検出値に基づきディザ制御を停止することにより温度Ｔｔｈを超えないように制御できるのであれば、ディザ制御の停止までの期間は、たとえば噴射量補正要求値αを小さい値に制限するのみとしてもよい。
【００７３】
上記第２および第３の実施形態では、リッチ学習値Ｉｎｒが規定値Ｉｎｒｔｈ以上である場合やリーン学習値Ｉｎｌが規定値Ｉｎｌｔｈ以上である場合には、ディザ制御を禁止したがこれに限らない。たとえば、リッチ学習値Ｉｎｒが規定値Ｉｎｒｔｈ以上である場合やリーン学習値Ｉｎｌが規定値Ｉｎｌｔｈ以上である場合においても、回転速度ＮＥおよび負荷率ＫＬから定まる噴射量補正要求値αよりも噴射量補正要求値αを小さい値に制限しつつディザ制御を実行してもよい。なお、この場合、リッチ学習値Ｉｎｒが閾値ＩｎｒＦ以上となったりリーン学習値Ｉｎｌが閾値ＩｎｌＦ以上となったりすることにより、ディザ制御を禁止してもよい。さらに、リッチ学習値Ｉｎｒが規定値Ｉｎｒｔｈ以上である場合やリーン学習値Ｉｎｌが規定値Ｉｎｌｔｈ以上である場合にディザ制御を禁止しないものとしては、上記変形例に限らない。すなわち、リッチ学習値Ｉｎｒが規定値Ｉｎｒｔｈ未満である領域においてリッチ学習値Ｉｎｒが大きいほど噴射量補正要求値αを小さい値に制限したり、リーン学習値Ｉｎｌが規定値Ｉｎｌｔｈ未満である領域においてリーン学習値Ｉｎｌが大きいほど噴射量補正要求値αを小さい値に制限したりするものに限らない。たとえば上記第２の実施形態において、上限ガード値Ｇｉｍｂとして２通りの値を用意し、リッチ学習値Ｉｎｒが規定値Ｉｎｒｔｈ以上となる場合に規定値Ｉｎｒｔｈ未満の場合よりも小さい値としたり、リーン学習値Ｉｎｌが規定値Ｉｎｌｔｈ以上となる場合に規定値Ｉｎｌｔｈ未満の場合よりも小さい値としたりしてもよい。
【００７４】
たとえば、リーンインバランスが生じている気筒の燃料噴射量を増量する処理をアイドリング運転時以外にも実行することとし、その増量補正の精度を高くすることができるのであれば、リーンインバランスが生じている場合には、ディザ制御を制限せず、リッチインバランスが生じていることを条件にディザ制御を制限してもよい。
【００７５】
もっとも、インバランスに起因した気筒別の噴射量補正を実行する場合にはディザ制御を制限しないことは必須ではない。たとえば、噴射量補正を実行している期間であっても噴射量補正の誤差による燃焼の制御性の低下がディザ制御によって助長され顕在化するおそれがあるなら、ディザ制御を制限することが望ましい。
【００７６】
上記実施形態では、ディザ制御を制限するか否かを判定するための学習値として、不揮発性メモリ３６に記憶されている値を用いたがこれに限らない。たとえばＲＡＭに記憶されている値を用いてもよい。この場合、ＲＡＭに値が記憶されていない場合、換言すれば、現在のトリップにおいて未だ学習値が算出されていない場合、ディザ制御を制限するか否かを判定するための学習値が存在しないとして、ディザ制御を禁止してもよい。もっとも、現在のトリップにおいて未だ学習値が算出されていない場合、ディザ制御を禁止するものとしては、学習値をＲＡＭに記憶するものに限らない。たとえば、上記実施形態において、不揮発性メモリ３６に記憶する学習値の更新処理が現在のトリップにおいてなされていない場合にディザ制御を禁止してもよい。
【００７７】
・「インバランス学習処理について」
リッチ学習値Ｉｎｒを学習する学習処理としては、上記実施形態において例示したものに限らない。たとえば、上流側空燃比Ａｆｕの極大値と極小値との差に基づき、同差が大きい場合に小さい場合よりもリッチインバランスの度合いが大きいとしてリッチ学習値Ｉｎｒを算出してもよい。リッチ学習値Ｉｎｒを学習する学習処理としては、上流側空燃比Ａｆｕを用いるものにも限らない。たとえば、下流側空燃比Ａｆｄが目標空燃比に対してリーン側にずれる量が大きい場合に小さい場合よりもリッチインバランスの度合いが大きいとしてリッチ学習値Ｉｎｒを算出してもよい。
【００７８】
リーン学習値Ｉｎｌを学習する学習処理としては、上記実施形態において例示したものに限らない。たとえば、瞬時速度ωの算出に用いられる回転角度領域がＴＤＣを含まなくてもよく、またたとえば３０°ＣＡの回転角度領域の速度に限らず、たとえば６０°ＣＡの回転角度領域の速度等であってもよい。ただし、各気筒の燃焼行程に起因してクランク軸の回転速度が極大となる期間を含むことが望ましい。またたとえば、下流側空燃比Ａｆｄが目標空燃比に対してリーン側にずれる量が大きい場合に小さい場合よりもリーンインバランスの度合いが大きいとしてリーン学習値Ｉｎｌを算出してもよい。
【００７９】
リッチ学習値Ｉｎｒとリーン学習値Ｉｎｌとを各別に学習することは必須ではない。たとえば、下流側空燃比Ａｆｄが目標空燃比に対してリーン側にずれる量が大きい場合に小さい場合よりもリーンまたはリッチのインバランスの度合いが大きいとしてインバランスの度合いを学習してもよい。
【００８０】
インバランスの学習処理としては、空燃比センサの値や瞬時速度ωを用いるものに限らない。たとえば気筒＃１〜＃４のそれぞれに筒内圧センサを備えることとし、その検出値に基づき熱発生率を算出し、熱発生率に基づき噴射量を推定し、推定された噴射量のばらつきの度合いを定量化する処理であってもよい。なお、この場合、噴射量の推定精度を十分高めることができるのであれば、推定した噴射量のうちディザ制御によるばらつき分を除いた量からインバランスの度合いを算出してもよい。換言すれば、ディザ制御の実行中にインバランス学習を実行してもよい。
【００８１】
・「閾値以上のインバランス異常時の処理について」
上記実施形態では、リッチ学習値Ｉｎｒが閾値ＩｎｒＦ以上となる場合やリーン学習値Ｉｎｌが閾値ＩｎｌＦ以上となる場合に、ユーザにその旨を報知する報知処理を実行したが、これに限らない。たとえば、内燃機関１０の出力の上限値を、リッチ学習値Ｉｎｒが閾値ＩｎｒＦ未満であって且つリーン学習値Ｉｎｌが閾値ＩｎｌＦ未満である場合よりも小さい値に制限してもよい。なお、この処理は、報知処理と併せ実行してもよい。
【００８２】
・「昇温対象とされる触媒について」
昇温対象とされる触媒としては、三元触媒２４に限らない。たとえば、三元触媒を備えたガソリンパティキュレートフィルタ（ＧＰＦ）であってもよい。ここで、ＧＰＦを上記三元触媒２４の下流に設けるなら、三元触媒２４において、リーン燃焼気筒の酸素によってリッチ燃焼気筒の未燃燃料成分や不完全燃焼成分を酸化させる際の酸化熱を利用して、ＧＰＦを昇温してもよい。なお、ＧＰＦの上流に酸素吸蔵能力を有した触媒が存在しない場合、ＧＰＦに酸素吸蔵能力を有した触媒を備えることが望ましい。
【００８３】
・「昇温要求について」
昇温要求としては、上記実施形態において例示したものに限らない。たとえば、内燃機関１０の冷間始動時において三元触媒２４の暖機のためにディザ制御による昇温要求を生じさせてもよい。これは、たとえば、始動からの積算空気量が規定値以上となることにより、触媒の先端温度が活性温度となっていると推定される旨の条件（ア）と、水温が所定温度以下且つ、積算空気量が所定値（＞規定値）以下であることにより暖機要求が生じる旨の条件（イ）との論理積が真である場合に、昇温要求有りとすればよい。ここで、条件（ア）は、三元触媒２４の先端部分については酸素吸蔵能力を発揮し、リーン燃焼気筒から排出された酸素と、リッチ燃焼気筒から排出された未燃燃料成分や不完全燃焼成分との反応熱を利用できることを保証する条件である。
【００８４】
また、「触媒について」の欄に記載したように、ＧＰＦを備える内燃機関１０を制御対象とする場合、ＧＰＦ内の微粒子状物質を燃焼させるためにディザ制御による昇温要求を生じさせてもよい。
【００８５】
・「報知機器について」
報知機器としては、警告灯に限らず、たとえばユーザに異常がある旨を示す視覚情報を提供する表示装置であってもよい。
【００８６】
・「ディザ制御処理について」
噴射量補正要求値αを、回転速度ＮＥおよび負荷率ＫＬに加えて、内燃機関１０の冷却水の温度（水温ＴＨＷ）に基づき可変設定してもよい。またたとえば、回転速度ＮＥおよび水温ＴＨＷ、または負荷率ＫＬおよび水温ＴＨＷの２つのパラメータのみに基づいて可変設定してもよく、またたとえば、上記３つのパラメータのうちの１つのパラメータのみに基づいて可変設定してもよい。また、たとえば内燃機関１０の動作点を特定するパラメータとして回転速度ＮＥおよび負荷率ＫＬを用いる代わりに、負荷としての負荷率ＫＬに代えて、たとえば負荷としてのアクセル操作量を用いてもよい。また、回転速度ＮＥおよび負荷に代えて、吸入空気量Ｇａに基づき可変設定してもよい。
【００８７】
噴射量補正要求値αを上記パラメータに基づき可変設定すること自体必須ではない。たとえば固定値としてもよい。
上記実施形態では、リッチ燃焼気筒の数よりもリーン燃焼気筒の数を多くしたが、これに限らない。たとえば、リッチ燃焼気筒の数とリーン燃焼気筒の数とを同一としてもよい。またたとえば、全ての気筒＃１〜＃４を、リーン燃焼気筒かリッチ燃焼気筒かにするものに限らず、たとえば１つの気筒の空燃比を目標空燃比としてもよい。さらに、１燃焼サイクル内で、排気空燃比の平均値が目標空燃比となることも必須ではない。たとえば、上記実施形態のように４気筒の場合において、５ストロークにおける排気空燃比の平均値が目標値となるようにしてもよく、３ストロークにおける排気空燃比の平均値が目標値となるようにしてもよい。ただし、１燃焼サイクルにおいて、リッチ燃焼気筒とリーン燃焼気筒との双方が存在する期間が少なくとも２燃焼サイクルに１回以上は生じることが望ましい。換言すれば、所定期間における排気空燃比の平均値を目標空燃比とする際、所定期間を２燃焼サイクル以下とすることが望ましい。ここで、たとえば所定期間を２燃焼サイクルとして２燃焼サイクルの間に１度だけリッチ燃焼気筒が存在する場合、リッチ燃焼気筒とリーン燃焼気筒との出現順序は、リッチ燃焼気筒をＲ、リーン燃焼気筒をＬとすると、たとえば「Ｒ，Ｌ，Ｌ，Ｌ，Ｌ，Ｌ，Ｌ，Ｌ」となる。この場合、所定期間よりも短い１燃焼サイクルの期間であって「Ｒ，Ｌ，Ｌ，Ｌ」となる期間が設けられており、気筒＃１〜＃４のうちの一部がリーン燃焼気筒であり、別の気筒がリッチ燃焼気筒となっている。ちなみに、１燃焼サイクル内における排気空燃比の平均値を目標空燃比としない場合には、内燃機関が吸気行程において一旦吸入した空気の一部を吸気バルブが閉弁するまでに吸気通路に吹き戻す量が無視できることが望ましい。
【００８８】
・「制御装置について」
制御装置としては、ＣＰＵ３２とＲＯＭ３４とを備えて、ソフトウェア処理を実行するものに限らない。たとえば、上記実施形態においてソフトウェア処理されたものの少なくとも一部を、ハードウェア処理する専用のハードウェア回路（たとえばＡＳＩＣ等）を備えてもよい。すなわち、制御装置は、以下の（ａ）〜（ｃ）のいずれかの構成であればよい。（ａ）上記処理の全てを、プログラムに従って実行する処理装置と、プログラムを記憶するＲＯＭ等のプログラム格納装置とを備える。（ｂ）上記処理の一部をプログラムに従って実行する処理装置およびプログラム格納装置と、残りの処理を実行する専用のハードウェア回路とを備える。（ｃ）上記処理の全てを実行する専用のハードウェア回路を備える。ここで、処理装置およびプログラム格納装置を備えたソフトウェア処理回路や、専用のハードウェア回路は複数であってもよい。すなわち、上記処理は、１または複数のソフトウェア処理回路および１または複数の専用のハードウェア回路の少なくとも一方を備えた処理回路によって実行されればよい。
【００８９】
・「内燃機関について」
内燃機関としては、４気筒の内燃機関に限らない。たとえば直列６気筒の内燃機関であってもよい。またたとえば、Ｖ型の内燃機関等、第１の触媒と第２の触媒とを備え、それぞれによって排気が浄化される気筒が異なるものであってもよい。
【００９０】
・「そのほか」
燃料噴射弁としては、燃焼室１６に燃料を噴射するものに限らず、たとえば吸気通路１２に燃料を噴射するものであってもよい。ディザ制御の実行時に空燃比フィードバック制御をすることは必須ではない。
【符号の説明】
【００９１】
１０…内燃機関、１２…吸気通路、１４…過給機、１６…燃焼室、１８…燃料噴射弁、２０…点火装置、２２…排気通路、２４…三元触媒、３０…制御装置、３２…ＣＰＵ、３４…ＲＯＭ、３６…不揮発性メモリ、４０…上流側空燃比センサ、４２…下流側空燃比センサ、４４…クランク角センサ、４６…エアフローメータ、４８…警告灯。
【図１】
2019023443.tif 000003
【図２】
2019023443.tif 000004
【図３】
2019023443.tif 000005
【図４】
2019023443.tif 000006
【図５】
2019023443.tif 000007
【図６】
2019023443.tif 000008
【図７】
2019023443.tif 000009
【図８】
2019023443.tif 000010