(57)【要約】【課題】ディザ制御処理の実行中であっても、空燃比センサの異常診断の精度を担保することが可能な空燃比センサの異常診断装置。【解決手段】空燃比センサの異常診断装置は、三元触媒１６と、燃料噴射弁１３と、複数の気筒のうちの一部の気筒をリーン燃焼気筒とし、複数の気筒のうちの別の気筒をリッチ燃焼気筒とするディザ制御処理を実行するディザ制御部と、空燃比センサ３１とを備えた内燃機関に適用され、複数の気筒における空燃比を変化させたときの空燃比センサ３１の出力に基づいて該空燃比センサ３１の異常診断を行う。空燃比センサの異常診断装置は、ディザ制御処理が実行されているときには、ディザ制御処理が実行されているときと、ディザ制御処理が実行されていないときとにおける空燃比センサ３１の出力のずれを考慮して、空燃比センサ３１の異常診断を行う。【選択図】図１
2019031945.tif 000002
【特許請求の範囲】
【請求項１】
内燃機関の排気通路に設けられ、複数の気筒から排出された排気を浄化する触媒と、
前記複数の気筒のうちの一部の気筒を、空燃比が理論空燃比よりもリーンであるリーン燃焼気筒とし、前記複数の気筒のうちの前記一部の気筒とは別の気筒を、空燃比が理論空燃比よりもリッチであるリッチ燃焼気筒とするディザ制御処理を実行するディザ制御部と、
前記排気通路において前記触媒よりも排気上流側に配置された空燃比センサとを備えた内燃機関に適用され、
前記複数の気筒における空燃比を変化させたときの前記空燃比センサの出力に基づいて該空燃比センサの異常診断を行う空燃比センサの異常診断装置であって、
前記ディザ制御部によって前記ディザ制御処理が実行されているときには、前記ディザ制御処理が実行されているときと、前記ディザ制御処理が実行されていないときとにおける前記空燃比センサの出力のずれを考慮して、前記空燃比センサの異常診断を行う空燃比センサの異常診断装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、空燃比センサの異常診断装置に関する。
【背景技術】
【０００２】
特許文献１に記載の内燃機関は、各気筒において生成された排気が排出される排気通路を有している。排気通路には、各気筒における空燃比を検出するための空燃比センサが設けられている。特許文献１に記載の空燃比センサの異常診断装置では、空燃比を理論空燃比よりもリーンにしたときと、空燃比を理論空燃比よりもリッチにしたときとの空燃比センサの出力の変化に基づいて異常診断を行う。すなわち、空燃比を理論空燃比よりもリーンにしたときの空燃比センサの出力と、空燃比を理論空燃比よりもリッチにしたときの空燃比センサの出力との差や比などが予め定められている正常範囲外にあるときに異常と判定している。
【０００３】
また、内燃機関においては、排気通路に設けられている触媒を早期に昇温させるために、内燃機関の複数の気筒のうち、一部の気筒における空燃比を、理論空燃比よりもリーンとし、他の気筒における空燃比を、理論空燃比よりもリッチにするディザ制御処理を実行することがある。このように、各気筒間において空燃比を変化させることにより、排気通路に未燃燃料と酸素とが供給され、これらが反応することによって触媒の温度が早期に上昇する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００９‐２９９５００号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
各気筒に導入される各々の吸気の合計を、各気筒に噴射される各々の燃料噴射量の合計で割った質量比を平均空燃比とする。発明者は、平均空燃比が同じ場合であっても、上記ディザ制御処理により排気通路に供給される未燃燃料の影響により、ディザ制御処理を実行しているときと、ディザ制御処理を実行していないときとでは、空燃比センサの出力にずれが生じることを見出した。特許文献１に記載されているように空燃比を変化させることによって空燃比センサの異常診断を行う場合、ディザ制御処理が実行されているときには、上述した空燃比センサの出力のずれに起因して、空燃比センサが正常であるにも拘わらず空燃比センサの出力が正常範囲外の値となり、異常であると誤診断される事態が生じ得る。このように、特許文献１に記載の空燃比センサの異常診断装置は、異常診断の精度を担保する上で、未だ改善の余地がある。
【課題を解決するための手段】
【０００６】
上記課題を解決するための空燃比センサの異常診断装置は、内燃機関の排気通路に設けられ、複数の気筒から排出された排気を浄化する触媒と、前記複数の気筒のうちの一部の気筒を、空燃比が理論空燃比よりもリーンであるリーン燃焼気筒とし、前記複数の気筒のうちの前記一部の気筒とは別の気筒を、空燃比が理論空燃比よりもリッチであるリッチ燃焼気筒とするディザ制御処理を実行するディザ制御部と、前記排気通路において前記触媒よりも排気上流側に配置された空燃比センサとを備えた内燃機関に適用され、前記複数の気筒における空燃比を変化させたときの前記空燃比センサの出力に基づいて該空燃比センサの異常診断を行う空燃比センサの異常診断装置であって、前記ディザ制御部によって前記ディザ制御処理が実行されているときには、前記ディザ制御処理が実行されているときと、前記ディザ制御処理が実行されていないときとにおける前記空燃比センサの出力のずれを考慮して、前記空燃比センサの異常診断を行う。
【０００７】
上記構成では、ディザ制御処理が実行されているときと、ディザ制御処理が実行されていないときとにおける空燃比センサの出力のずれを考慮して空燃比センサの異常診断を行う。そのため、ディザ制御処理が実行されているときに異常診断を行う場合に、ディザ制御処理の実行に起因した空燃比センサの出力のずれを考慮しない構成に比して、空燃比センサの異常診断をより正確に行うことが可能になる。したがって、上記構成によれば、ディザ制御処理の実行中であっても、空燃比センサの異常診断の精度を担保することが可能になる。
【図面の簡単な説明】
【０００８】
【図１】第１実施形態の空燃比センサの異常診断装置および内燃機関を示す図。
【図２】空燃比センサの異常診断装置を含む制御装置の機能ブロック図。
【図３】空燃比センサの異常診断処理に係る一連の処理の流れを示すフローチャート。
【図４】（ａ）〜（ｄ）は、空燃比センサの異常診断処理における各パラメータの推移を示すタイミングチャート。
【図５】空燃比センサの出力のずれ量を示すグラフ。
【図６】第２実施形態の空燃比センサの異常診断装置における異常診断処理に係る一連の処理の流れを示すフローチャート。
【図７】（ａ）〜（ｃ）は、空燃比センサの異常診断処理における各パラメータの推移を示すタイミングチャート。
【図８】補正要求値と空燃比センサの出力との関係を示すグラフ。
【図９】第３実施形態の空燃比センサの異常診断装置における異常診断処理に係る一連の処理の流れを示すフローチャート。
【図１０】空燃比センサの応答時間の違いを模式的に示すグラフ。
【図１１】補正要求値と空燃比センサの出力における振幅との関係を示すグラフ。
【図１２】空燃比センサの応答時間のずれ量を示すグラフ。
【図１３】第４実施形態の空燃比センサの異常診断装置における異常診断処理に係る一連の処理の流れを示すフローチャート。
【図１４】空燃比センサの出力の変化態様を示すグラフ。
【図１５】平均空燃比と空燃比センサの出力との関係を示すマップ。
【図１６】空燃比センサの異常診断装置の変形例において実行される実行時異常診断処理に係る一連の処理の流れを示すフローチャート。
【図１７】（ａ）〜（ｅ）は、空燃比センサの異常診断処理における各パラメータの推移を示すタイミングチャート。
【発明を実施するための形態】
【０００９】
（第１実施形態）
空燃比センサの異常診断装置の第１実施形態について、図１〜図５を参照して説明する。
【００１０】
図１に示すように、内燃機関１０の機関本体１１には、４つの気筒（第１気筒＃１〜第４気筒＃４）が形成されている。機関本体１１には吸気通路１２が連結されている。吸気通路１２は、吸気下流側の端部が４つに分岐していて、分岐した端部の各々が別々の気筒に接続されている。各気筒＃１〜＃４には、吸気通路１２を通じて吸気が供給される。機関本体１１には、複数の燃料噴射弁１３が設けられている。燃料噴射弁１３は、複数の気筒毎に１つずつ設けられている。燃料噴射弁１３は、気筒内に燃料を噴射する。また、機関本体１１には、複数の点火プラグ１４が設けられている。点火プラグ１４は、複数の気筒毎に１つずつ設けられている。各気筒＃１〜＃４では、吸気通路１２から導入された吸気と、燃料噴射弁１３から噴射された燃料とが混合して混合気が生成される。なお、混合気における吸気と燃料との質量比を空燃比という。混合気は、点火プラグ１４によって着火されて燃焼する。
【００１１】
機関本体１１には排気通路１５が連結されている。排気通路１５は、排気上流側の端部が４つに分岐していて、分岐した端部の各々が別々の気筒に接続されている。各気筒＃１〜＃４において、混合気の燃焼により生じた排気は、排気通路１５に排出される。排気通路１５には、排気を浄化する触媒として三元触媒１６が設けられている。三元触媒１６は、排気に含まれる酸素を吸蔵する機能を有している。三元触媒１６は、吸蔵した酸素または排気に含まれる酸素を用いて、排気に含まれる一酸化炭素（ＣＯ）や炭化水素（ＨＣ）を酸化する。また、三元触媒１６は、排気に含まれる窒素酸化物（ＮＯｘ）を還元する。排気通路１５には、三元触媒１６よりも排気上流側に空燃比センサ３１が配置されている。空燃比センサ３１は、排気通路１５を流れる排気の酸素濃度、すなわち、各気筒における空燃比に応じた電気信号を出力する。
【００１２】
内燃機関１０の制御装置２０には、空燃比センサ３１からの出力信号が入力される。また、制御装置２０には、クランクシャフトの回転速度である機関回転速度ＮＥを検出するクランク角センサ３２、及び各気筒＃１〜＃４に供給される吸入空気量Ｇａを検出するエアフローメータ３３などの各種のセンサからの出力信号も入力される。制御装置２０は、ＣＰＵ、ＲＯＭ、およびＲＡＭを備えている。制御装置２０は、ＲＯＭに記憶されたプログラムをＣＰＵが実行することにより空燃比フィードバック制御や、ディザ制御などの各種制御を実行する。
【００１３】
空燃比フィードバック制御は、空燃比センサ３１の出力に基づいて算出される実際の空燃比（検出空燃比Ａｆ）と、空燃比の目標値である目標空燃比Ａｆ＊との偏差を小さくするために実行される制御である。ディザ制御は、排気通路１５に設けられている三元触媒１６の温度を早期に上昇させる昇温要求が生じることを条件に実施される制御である。ディザ制御では、各気筒＃１〜＃４における一部の気筒における空燃比を、理論空燃比よりもリーンとし、他の気筒における空燃比を、理論空燃比よりもリッチにすることで、排気通路１５に未燃燃料と酸素とを供給し、三元触媒１６におけるこれらの反応によって触媒床温を早期に上昇させる。なお、昇温要求は、例えば、三元触媒１６の床温が所定温度以下であるときなどを含む。
【００１４】
図２に示すように、制御装置２０は、機能部として、第１目標空燃比設定部Ｍ１０、ベース噴射量算出部Ｍ１２、フィードバック項算出部Ｍ１４、及びフィードバック処理部Ｍ１６を有している。また、制御装置２０は、機能部として、要求値算出部Ｍ２０、リッチ補正係数算出部Ｍ２２、リッチ補正部Ｍ２４、乗算処理部Ｍ２６、リーン補正係数算出部Ｍ２８、リーン補正部Ｍ３０、及び噴射量制御部Ｍ３２を有している。要求値算出部Ｍ２０、リッチ補正係数算出部Ｍ２２、リッチ補正部Ｍ２４、乗算処理部Ｍ２６、リーン補正係数算出部Ｍ２８、リーン補正部Ｍ３０、及び噴射量制御部Ｍ３２がディザ制御部を構成している。
【００１５】
第１目標空燃比設定部Ｍ１０は、内燃機関１０の運転状態や、後述する要求値算出部Ｍ２０によって算出された補正要求値αなどに基づいて第１目標空燃比Ａｆ１＊を設定する。第１目標空燃比Ａｆ１＊は、各気筒において全ての気筒＃１〜＃４における空燃比を平均した平均空燃比に対する目標値に相当する。なお、平均空燃比とは、各気筒＃１〜＃４に導入される各々の吸気の合計を、各気筒＃１〜＃４に噴射される各々の燃料噴射量の合計で割った質量比である。
【００１６】
ベース噴射量算出部Ｍ１２は、第１目標空燃比設定部Ｍ１０によって設定された第１目標空燃比Ａｆ１＊、機関回転速度ＮＥ、及び吸入空気量Ｇａに基づき、燃料噴射量におけるベース噴射量Ｑｂを算出する。ベース噴射量Ｑｂは、各気筒＃１〜＃４における空燃比を第１目標空燃比Ａｆ１＊に制御するための開ループ操作量として算出される。
【００１７】
フィードバック項算出部Ｍ１４は、検出空燃比Ａｆを第１目標空燃比Ａｆ１＊にフィードバック制御するためのフィードバック操作量ＫＡＦを算出する。フィードバック項算出部Ｍ１４は、第１目標空燃比Ａｆ１＊から検出空燃比Ａｆを減算した値を入力とする比例要素、積分要素、および微分要素の各出力値の和を、フィードバック操作量ＫＡＦとして算出する。
【００１８】
フィードバック処理部Ｍ１６は、ベース噴射量算出部Ｍ１２によって算出されたベース噴射量Ｑｂに、フィードバック項算出部Ｍ１４によって算出されたフィードバック操作量ＫＡＦを乗算して、要求噴射量Ｑｄを算出する。
【００１９】
要求値算出部Ｍ２０は、平均空燃比を第１目標空燃比Ａｆ１＊としつつも、各気筒＃１〜＃４における空燃比を異ならせるディザ制御処理を実行する際の補正要求値αを算出する。本実施形態では、ディザ制御処理において、第１気筒＃１〜第４気筒＃４のうちの１つの気筒を、空燃比が理論空燃比よりもリッチとするリッチ燃焼気筒とし、残りの３つの気筒を、空燃比が理論空燃比よりもリーンとするリーン燃焼気筒とする。そして、リッチ燃焼気筒における噴射量を、要求噴射量Ｑｄの「１＋α」倍とし、リーン燃焼気筒における噴射量を、要求噴射量Ｑｄの「１−（α／３）」倍とする。
【００２０】
リッチ補正係数算出部Ｍ２２では、補正要求値αに「１」を加算することで、リッチ燃焼気筒に関する要求噴射量Ｑｄの補正係数「１＋α」を算出する。
リッチ補正部Ｍ２４は、リッチ補正係数算出部Ｍ２２によって算出された補正係数「１＋α」を要求噴射量Ｑｄに乗算することによって、リッチ燃焼気筒とされる気筒＃ｗの燃料噴射量Ｑｒ＊を算出する。「ｗ」は、「１」〜「４」のいずれかを意味する。
【００２１】
乗算処理部Ｍ２６では、補正要求値αを「−１／３」倍する。リーン補正係数算出部Ｍ２８では、乗算処理部Ｍ２６の出力値に「１」を加算して、リーン燃焼気筒に関する要求噴射量Ｑｄの補正係数「１−（α／３）」を算出する。リーン補正部Ｍ３０は、リーン補正係数算出部Ｍ２８によって算出された補正係数「１−（α／３）」を要求噴射量Ｑｄに乗算することによって、リーン燃焼気筒とされる気筒＃ｘ，＃ｙ，＃ｚの燃料噴射量Ｑｌ＊を算出する。「ｘ」，「ｙ」，「ｚ」は、「１」〜「４」のいずれかであって、且つ「ｗ」、「ｘ」，「ｙ」，「ｚ」は、互いに異なるものとする。ちなみに、気筒＃１〜＃４のうちのいずれがリッチ燃焼気筒となるかは、１燃焼サイクルよりも長い周期で変更されることが望ましい。
【００２２】
噴射量制御部Ｍ３２は、リッチ補正部Ｍ２４が算出した燃料噴射量Ｑｒ＊と同量の燃料がリッチ燃焼気筒とされる気筒＃ｗに噴射されるように該気筒＃ｗに設けられている燃料噴射弁１３を制御する。また、噴射量制御部Ｍ３２は、リーン補正部Ｍ３０が算出した燃料噴射量Ｑｌ＊と同量の燃料がリーン燃焼気筒とされる気筒＃ｘ，＃ｙ，＃ｚに噴射されるように、各気筒＃ｘ，＃ｙ，＃ｚに設けられている燃料噴射弁１３を制御する。
【００２３】
また、制御装置２０は、機能部として、第２目標空燃比設定部Ｍ３４と、フィードバック処理禁止部Ｍ３６とを有している。
第２目標空燃比設定部Ｍ３４は、フィードフォーワード制御によって燃料噴射量を制御するための第２目標空燃比Ａｆ２＊を算出する。第２目標空燃比Ａｆ２＊は、内燃機関１０の運転状態や、補正要求値αなどに基づいて設定される。第２目標空燃比Ａｆ２＊は、各気筒において全ての気筒＃１〜＃４における空燃比を平均した平均空燃比に対する目標値に相当する。
【００２４】
フィードバック処理禁止部Ｍ３６は、フィードバック処理部Ｍ１６においてベース噴射量Ｑｂに対するフィードバック操作量ＫＡＦの乗算処理を禁止する禁止処理を実行する。フィードバック処理禁止部Ｍ３６によって禁止処理が実行されると、ベース噴射量Ｑｂは、フィードバック操作量ＫＡＦが乗算されることなく、リッチ補正部Ｍ２４及びリーン補正部Ｍ３０に入力される。
【００２５】
制御装置２０では、フィードフォーワード制御を実行する際に、ベース噴射量算出部Ｍ１２において、第２目標空燃比設定部Ｍ３４によって設定された第２目標空燃比Ａｆ２＊、機関回転速度ＮＥ、及び吸入空気量Ｇａに基づいて、ベース噴射量Ｑｂを算出する。第２目標空燃比Ａｆ２＊に基づいて算出されたベース噴射量Ｑｂは、各気筒＃１〜＃４における空燃比を第２目標空燃比Ａｆ２＊に制御するための開ループ操作量として算出される。そして、フィードバック処理禁止部Ｍ３６によって禁止処理を実行することで、第２目標空燃比Ａｆ２＊に基づいて算出されたベース噴射量Ｑｂを、フィードバック操作量ＫＡＦによって補正することなく、要求噴射量Ｑｄとしてリッチ補正部Ｍ２４及びリーン補正部Ｍ３０に入力させる。なお、要求値算出部Ｍ２０は、燃料噴射量をフィードフォーワード制御によって設定する場合には、補正要求値αを、平均空燃比を第２目標空燃比Ａｆ２＊としつつも、各気筒＃１〜＃４における空燃比を異ならせるための値として算出する。
【００２６】
また、制御装置２０は、各種制御として、空燃比センサ３１の異常を診断する異常診断処理を行う。すなわち、制御装置２０は、空燃比センサ３１の異常診断装置としても機能する。本実施形態では、異常診断処理においてフィードフォーワード制御によって燃料噴射量を制御する。異常診断処理では、第２目標空燃比Ａｆ２＊を理論空燃比よりもリッチにした基準リッチ空燃比と、第２目標空燃比Ａｆ２＊を理論空燃比よりもリーンにした基準リーン空燃比とに繰り返し変化させる。そして、こうして第２目標空燃比Ａｆ２＊を変化させて実際の平均空燃比を変化させたときの空燃比センサ３１の出力に基づいて、異常診断を行う。なお、目標空燃比Ａｆ＊が同じ値に設定されている場合、すなわち平均空燃比が同じになるように制御されている場合であっても、ディザ制御処理を実行しているときと、ディザ制御処理を実行していないときとでは、空燃比センサ３１の出力にずれが生じることがある。このずれは、ディザ制御処理により排気通路１５に供給される未燃燃料の影響によるものである。そのため、空燃比センサ３１の出力に基づいた空燃比センサ３１の異常診断を、ディザ制御処理を実行しつつ行う場合には、空燃比センサ３１の出力のずれによって、異常がないにも拘わらず異常と誤判定する事態が生じ得る。本実施形態では、異常診断処理において、ディザ制御処理が実行されているときには、ディザ制御処理が実行されているときとディザ制御処理が実行されていないときとにおける空燃比センサ３１の出力のずれを考慮して、空燃比センサ３１の異常診断を行う。
【００２７】
図３のフローチャートを参照して、本実施形態における空燃比センサ３１の異常診断処理に係る一連の処理の流れについて説明する。空燃比センサ３１の異常診断処理は、制御装置２０によって所定周期毎に繰り返し実行される。なお、以下では、異常診断処理の実行前後において、検出空燃比Ａｆが理論空燃比に制御される場合を例に説明する。
【００２８】
図３に示すように、空燃比センサ３１の異常診断処理に係る一連の処理を実行すると、制御装置２０はまず、異常診断処理の実行条件が成立しているか否かを判定する（ステップＳ３００）。異常診断処理の実行条件としては、例えば、空燃比センサ３１が活性温度以上であり、燃料噴射弁１３の異常が生じていない場合などが挙げられる。制御装置２０は、異常診断処理の実行条件が成立していると判定すると（ステップＳ３００：ＹＥＳ）、燃料噴射量をフィードバック制御によって設定する態様から、フィードフォーワード制御によって設定する態様に切り換える。すなわち、ベース噴射量算出部Ｍ１２は、第２目標空燃比設定部Ｍ３４によって設定された第２目標空燃比Ａｆ２＊に基づいてベース噴射量Ｑｂを算出するとともに、フィードバック処理禁止部Ｍ３６が上述した禁止処理を実行する。
【００２９】
制御装置２０は次に、ディザ制御処理の実行中ではないか否かを判定する（ステップＳ３０１）。この処理では、例えば、三元触媒１６の床温が所定温度を超えているときに、ディザ制御処理の実行中ではないと判定する。制御装置２０は、ディザ制御処理の実行中ではないと判定すると（ステップＳ３０１：ＹＥＳ）、次に通常時異常診断処理を実行する（ステップＳ３０２）。
【００３０】
図４（ａ）に実線で示すように、タイミングｔ４１において実行条件が成立し、通常時異常診断処理を開始すると、制御装置２０は、第２目標空燃比Ａｆ２＊を理論空燃比よりもリッチ側の基準リッチ空燃比に設定する。第２目標空燃比Ａｆ２＊が基準リッチ空燃比に設定されると、図４（ｃ）に実線で示すように、燃料噴射量の要求噴射量Ｑｄが増量される。これにより、実際の平均空燃比が理論空燃比よりもリッチ側の基準リッチ空燃比に変化する。図４（ｄ）に実線で示すように、空燃比センサ３１が正常であるときには、こうした空燃比の変化に追従して、空燃比センサ３１の出力が基準リッチ空燃比に相当する値となる。その後、制御装置２０は、タイミングｔ４２において、第２目標空燃比Ａｆ２＊を理論空燃比よりもリーン側の基準リーン空燃比に設定する。第２目標空燃比Ａｆ２＊が基準リーン空燃比に設定されることにより、図４（ｃ）に実線で示すように、燃料噴射量の要求噴射量Ｑｄが減量される。これにより、実際の平均空燃比が理論空燃比よりもリーン側の基準リーン空燃比に変化する。図４（ｄ）に実線で示すように、空燃比センサ３１が正常であるときには、こうした空燃比の変化に追従して、空燃比センサ３１の出力が基準リーン空燃比に相当する値となる。なお、本実施形態では、理論空燃比から基準リッチ空燃比までのリッチ側ずれ量と、理論空燃比から基準リーン空燃比までのリーン側ずれ量とが等しくなるように、基準リッチ空燃比及び基準リーン空燃比が設定されている。
【００３１】
その後、制御装置２０は、タイミングｔ４３において第２目標空燃比Ａｆ２＊を基準リッチ空燃比に設定し、タイミングｔ４４において第２目標空燃比Ａｆ２＊を理論空燃比に設定する。制御装置２０は、タイミングｔ４４において第２目標空燃比Ａｆ２＊を理論空燃比に設定すると、通常時異常診断処理を終了する。
【００３２】
図３に示すように、制御装置２０は、通常時異常診断処理を実行すると、次に、空燃比センサ３１の出力が正常範囲内にあるか否かを判定する（ステップＳ３０３）。ステップＳ３０３の処理では、図４に示すように、第２目標空燃比Ａｆ２＊を基準リッチ空燃比にしたとき（例えば、タイミングｔ４１〜ｔ４２）における空燃比センサ３１の出力が、基準リッチ空燃比に相当する値を含むリッチ側正常範囲Ｒ１内にあるか否かを判定する。リッチ側正常範囲Ｒ１は、基準リッチ空燃比に相当する値よりも高い第１上限判定値Ａ１と、基準リッチ空燃比に相当する値よりも低い第１下限判定値Ａ２との間の範囲である。また、第２目標空燃比Ａｆ２＊を基準リーン空燃比にしたとき（タイミングｔ４２〜ｔ４３）における空燃比センサ３１の出力が、基準リーン空燃比に相当する値を含むリーン側正常範囲Ｒ２内にあるか否かを判定する。リーン側正常範囲Ｒ２は、基準リーン空燃比に相当する値よりも高い第２上限判定値Ｂ１と、基準リーン空燃比に相当する値よりも低い第２下限判定値Ｂ２との間の範囲である。これらリッチ側正常範囲Ｒ１、及びリーン側正常範囲Ｒ２は、空燃比センサ３１の異常を判定可能な範囲となるように、予め実験やシミュレーションによって求められて制御装置２０に記憶されている。
【００３３】
制御装置２０は、通常時異常診断処理における空燃比センサ３１のリッチ側の出力がリッチ側正常範囲Ｒ１内にあって、且つ空燃比センサ３１のリーン側の出力がリーン側正常範囲Ｒ２内にあるときには、空燃比センサ３１の出力が正常範囲内にあると判定する（ステップＳ３０３：ＹＥＳ）。その後、制御装置２０は、空燃比センサ３１が正常であるとの正常判定を行い（ステップＳ３０４）、空燃比センサ３１の異常診断処理に係る一連の処理を終了する。
【００３４】
また、ステップＳ３０３の処理において、通常時異常診断処理における空燃比センサ３１のリッチ側の出力がリッチ側正常範囲Ｒ１内にない場合、または空燃比センサ３１のリーン側の出力がリーン側正常範囲Ｒ２内にない場合には、制御装置２０は、空燃比センサ３１の出力は正常範囲内にないと判定する（ステップＳ３０３：ＮＯ）。この場合には、制御装置２０は、空燃比センサ３１が異常であるとの異常判定を行い（ステップＳ３０５）、空燃比センサ３１の異常診断処理に係る一連の処理を終了する。なお、異常判定を行った場合、制御装置２０は、例えば報知ランプを点灯するなどして、その異常を報知する。
【００３５】
一方で、制御装置２０は、ステップＳ３０１の処理において、ディザ制御処理の実行中であると判定した場合には（ステップＳ３０３：ＮＯ）、実行時異常診断処理を実行する（ステップＳ３０６）。
【００３６】
図５に一点鎖線で示すようにディザ制御処理を実行しているときには、図５に実線で示すようにディザ制御処理を実行していないときに比して、空燃比センサ３１の出力がリッチ側にずれた値となる。すなわち、図５に実線で示すように、ディザ制御処理を実行していないときには、空燃比センサ３１の出力は平均空燃比に対応した値となる。そのため、平均空燃比が理論空燃比であれば、空燃比センサ３１の出力も理論空燃比に相当する値Ｑｒとなる。
【００３７】
一方、図５に一点鎖線で示すように、ディザ制御処理を実行しているときには、空燃比センサ３１の出力が、平均空燃比に対応した値よりもリッチ側にずれた値となる。そのため、平均空燃比が理論空燃比であっても、空燃比センサ３１の出力は理論空燃比よりもリッチ側の空燃比に相当する値Ｑｆとなる。
【００３８】
ここで、本実施形態では、ディザ制御処理の実行時には、実行時異常診断処理を実行するようにしているが、こうした構成との違いを明らかにするために、本実施形態の比較例として、ディザ制御処理の実行と通常時異常診断処理とを併せて実行する場合を例に説明する。
【００３９】
図４（ｂ）に二点鎖線で示すように、この構成では、通常時異常診断処理の実行前後を通じてディザ制御処理の実行条件が成立している。図４（ｃ）に示すように、通常時異常診断処理を開始する前（タイミングｔ４１よりも前）には、第２目標空燃比Ａｆ２＊が理論空燃比に設定されている。この場合、空燃比センサ３１が正常であっても、図４（ｄ）に二点鎖線で示すように、空燃比センサ３１の出力は理論空燃比に相当する値にはならず、空燃比センサ３１の出力は理論空燃比よりもリッチ側の値になる。そのため、空燃比センサ３１の出力は、ディザ制御処理を実行していないときの出力（図４（ｄ）の実線）に比して、リッチ側にずれている。なお、空燃比センサ３１の出力は、なまし処理などが施されていて、ディザ制御処理により各気筒＃１〜＃４の空燃比が異なる場合であっても、それら空燃比を平均した平均空燃比に相当する値として出力される。また、通常時異常診断処理を開始する前において、ディザ制御における燃料噴射量を、第２目標空燃比Ａｆ２＊に基づいて設定するのではなく、第１目標空燃比Ａｆ１＊に基づいて設定することも可能である。
【００４０】
そして、タイミングｔ４１において、通常時異常診断処理が開始されると、第２目標空燃比Ａｆ２＊が理論空燃比よりもリッチ側の基準リッチ空燃比に設定される。これにより、燃料噴射量の要求噴射量Ｑｄが増量され、実際の平均空燃比が理論空燃比よりもリッチ側に変化する。こうした空燃比の変化に追従して、タイミングｔ４１以降は、空燃比センサ３１の出力がリッチ側に変化するが、このときの空燃比センサ３１の出力は、基準リッチ空燃比に対応した値よりもリッチ側にずれた値となる。また、タイミングｔ４２において、第２目標空燃比Ａｆ２＊が理論空燃比よりもリーン側の基準リーン空燃比に設定されると、燃料噴射量の要求噴射量Ｑｄが減量され、実際の平均空燃比が理論空燃比よりもリーン側に変化する。こうした空燃比の変化に追従して、タイミングｔ４２以降は、空燃比センサ３１の出力がリーン側に変化するが、このときの空燃比センサ３１の出力は、基準リーン空燃比に対応した値よりもリッチ側にずれた値となる。そのため、空燃比センサ３１が正常であるときであっても、空燃比センサ３１の出力がリッチ側正常範囲Ｒ１内や、リーン側正常範囲Ｒ２内にない場合が生じ得る。
【００４１】
こうした点に鑑み、本実施形態では、ディザ制御処理が実行されているときには、通常時異常診断処理ではなく、実行時異常診断処理を実行する。実行時異常診断処理では、上述した出力のずれを考慮して異常診断を行う際の第２目標空燃比Ａｆ２＊を変化させる。すなわち、制御装置２０は、異常診断処理の実行条件が成立したタイミングｔ４１において、ディザ制御処理が実行されているときには、実行時異常診断処理を開始する。そして、実行時異常診断処理ではまず、第２目標空燃比Ａｆ２＊を基準リッチ空燃比よりもリーン側の減少リッチ空燃比に設定する。減少リッチ空燃比の設定は、例えば図５に示すマップに基づいて行う。このマップは、予め実験やシミュレーションによって求められて制御装置２０に記憶されている。これにより、図４（ｃ）に一点鎖線で示すように、燃料噴射量の要求噴射量Ｑｄは、第２目標空燃比Ａｆ２＊を基準リッチ空燃比に設定した場合（図４（ｃ）の実線）に比して少なくなる。すなわち、第２目標空燃比Ａｆ２＊を減少リッチ空燃比に設定した場合の要求噴射量である減少リッチ噴射量は、第２目標空燃比Ａｆ２＊を基準リッチ空燃比に設定した場合の要求噴射量である基準リッチ噴射量よりも少なくなる。減少リッチ空燃比は、ディザ制御処理が実行されていないときとの空燃比センサ３１の出力のずれを考慮して、空燃比センサ３１の出力が、基準リッチ空燃比に相当する値となるように上記マップから求められる。そのため、図４（ｄ）に実線で示すように、第２目標空燃比Ａｆ２＊が減少リッチ空燃比に設定されている場合、ディザ制御処理が実行されていても、空燃比センサ３１が正常であるときには、空燃比センサ３１の出力が基準リッチ空燃比に対応した値となる。
【００４２】
その後、制御装置２０は、タイミングｔ４２において、第２目標空燃比Ａｆ２＊を基準リーン空燃比よりもリーン側の増大リーン空燃比に設定する。これにより、図４（ｃ）に一点鎖線で示すように、燃料噴射量の要求噴射量Ｑｄは、第２目標空燃比Ａｆ２＊を基準リーン空燃比に設定した場合（図４（ｃ）の実線）に比して少なくなる。すなわち、第２目標空燃比Ａｆ２＊を増大リーン空燃比に設定した場合の要求噴射量である増大リーン噴射量は、第２目標空燃比Ａｆ２＊を基準リーン空燃比に設定した場合の要求噴射量である基準リーン噴射量よりも少なくなる。増大リーン空燃比は、ディザ制御処理が実行されていないときとの空燃比センサ３１の出力のずれを考慮して、空燃比センサ３１の出力が、基準リーン空燃比に相当する値となるように上記マップから求められる。そのため、図４（ｄ）に実線で示すように、第２目標空燃比Ａｆ２＊が増大リーン空燃比に設定されている場合、ディザ制御処理が実行されていても、空燃比センサ３１が正常であるときには、空燃比センサ３１の出力は、基準リーン空燃比に対応した値となる。その後、制御装置２０は、タイミングｔ４３において第２目標空燃比Ａｆ２＊を減少リッチ空燃比に設定し、タイミングｔ４４において第２目標空燃比Ａｆ２＊を理論空燃比に設定する。制御装置２０は、タイミングｔ４４において第２目標空燃比Ａｆ２＊を理論空燃比に設定すると実行時異常診断処理を終了する。
【００４３】
図３に示すように、制御装置２０は、実行時異常診断処理を実行すると、次に、空燃比センサ３１の出力が正常範囲内にあるか否かを判定する（ステップＳ３０３）。ステップＳ３０３の処理では、図４に示すように、第２目標空燃比Ａｆ２＊を減少リッチ空燃比にしたとき（例えば、タイミングｔ４１〜ｔ４２）における空燃比センサ３１の出力が、リッチ側正常範囲Ｒ１内にあるか否かを判定する。また、第２目標空燃比Ａｆ２＊を増大リーン空燃比にしたとき（タイミングｔ４２〜ｔ４３）における空燃比センサ３１の出力が、リーン側正常範囲Ｒ２内にあるか否かを判定する。
【００４４】
制御装置２０は、実行時異常診断処理における空燃比センサ３１のリッチ側の出力がリッチ側正常範囲Ｒ１内にあって、且つ空燃比センサ３１のリーン側の出力がリーン側正常範囲Ｒ２内にあるときには、空燃比センサ３１の出力が正常範囲内にあると判定する（ステップＳ３０３：ＹＥＳ）。その後、制御装置２０は、空燃比センサ３１が正常であるとの正常判定を行い（ステップＳ３０４）、空燃比センサ３１の異常診断処理に係る一連の処理を終了する。
【００４５】
また、ステップＳ３０３の処理において、実行時異常診断処理における空燃比センサ３１のリッチ側の出力がリッチ側正常範囲Ｒ１内にない場合、または空燃比センサ３１のリーン側の出力がリーン側正常範囲Ｒ２内にない場合には、制御装置２０は、空燃比センサ３１の出力は正常範囲内にないと判定する（ステップＳ３０３：ＮＯ）。この場合には、制御装置２０は、空燃比センサ３１が異常であるとの異常判定を行い（ステップＳ３０５）、空燃比センサ３１の異常診断処理に係る一連の処理を終了する。なお、異常判定を行った場合、制御装置２０は、例えば報知ランプを点灯するなどして、その異常を報知する。
【００４６】
なお、制御装置２０は、ステップＳ３０４の処理またはステップＳ３０５の処理を実行すると、燃料噴射量をフィードフォーワード制御によって設定する態様から、フィードバック制御によって設定する態様に切り換える。すなわち、ベース噴射量算出部Ｍ１２は、第１目標空燃比設定部Ｍ１０によって設定された第１目標空燃比Ａｆ１＊に基づいてベース噴射量Ｑｂを算出するとともに、フィードバック処理禁止部Ｍ３６の上述した禁止処理を解除することで、ベース噴射量Ｑｂに対するフィードバック操作量ＫＡＦの乗算処理を実行させる。
【００４７】
また、制御装置２０は、ステップＳ３００の処理において異常診断処理の実行条件が成立していないと判定すると（ステップＳ３００：ＮＯ）、その後の処理を実行せずに、空燃比センサ３１の異常診断処理に係る一連の処理を終了する。
【００４８】
第１実施形態の作用効果について説明する。
（１）本実施形態では、ディザ制御処理が実行されているときに異常診断を行う場合、空燃比をリッチ化する際の第２目標空燃比Ａｆ２＊を、ディザ制御処理が実行されていないときの第２目標空燃比Ａｆ２＊に比してリーン側に設定した。また、ディザ制御処理が実行されているときに異常診断を行う場合、空燃比をリーン化する際の第２目標空燃比Ａｆ２＊を、ディザ制御処理が実行されていないときの第２目標空燃比Ａｆ２＊に比してリーン側に設定した。そして、ディザ制御処理が実行されているときに異常診断を行う場合、空燃比センサ３１の出力を基準リッチ空燃比、及び基準リーン空燃比に対応した値となるように制御した。このように、ディザ制御処理が実行されているときと、ディザ制御処理が実行されていないときとにおける空燃比センサ３１の出力のずれを考慮して空燃比センサ３１の異常診断を行う。そのため、ディザ制御処理が実行されているときに異常診断を行う場合に、ディザ制御処理の実行に起因した空燃比センサ３１の出力のずれを考慮しない構成に比して、空燃比センサ３１の異常診断をより正確に行うことが可能になる。したがって、ディザ制御処理の実行中であっても、空燃比センサ３１の異常診断の精度を担保することが可能になる。
【００４９】
（第２実施形態）
空燃比センサの異常診断装置の第２実施形態について、図６〜図８を参照して説明する。本実施形態では、異常診断の方法が第１実施形態と異なっている。第１実施形態と同様の構成については、共通の符号を付して説明を省略する。
【００５０】
図６のフローチャートに示すように、本実施形態において、空燃比センサ３１の異常診断処理に係る一連の処理を実行すると、制御装置２０はまず、異常診断処理の実行条件が成立しているか否かを判定する（ステップＳ６００）。制御装置２０は、異常診断処理の実行条件が成立していると判定すると（ステップＳ６００：ＹＥＳ）、次に、通常時異常診断処理を実行する（ステップＳ６０１）。この通常時異常診断処理は、上記第１実施形態のステップＳ３０２の処理において実行される処理と同様である。
【００５１】
すなわち、図７（ａ）に示すように、タイミングｔ７１において実行条件が成立すると、制御装置２０は、第２目標空燃比Ａｆ２＊を理論空燃比よりもリッチ側の基準リッチ空燃比に設定する。第２目標空燃比Ａｆ２＊が基準リッチ空燃比に設定されると、図７（ｂ）に示すように、燃料噴射量の要求噴射量Ｑｄが基準リッチ噴射量に設定されて増量される。これにより、実際の平均空燃比が理論空燃比よりもリッチ側の基準リッチ空燃比に変化する。図７（ｃ）に実線で示すように、ディザ制御処理が実行されていないときには、こうした空燃比の変化に追従して、空燃比センサ３１の出力が基準リッチ空燃比に相当する値ＱＲ１となる。また、図７（ｃ）に一点鎖線で示すように、ディザ制御処理が実行されているときには、こうした空燃比の変化に追従して、空燃比センサ３１の出力が基準リッチ空燃比に相当する値ＱＲ１よりもリッチ側の値ＱＲ２となる。
【００５２】
その後、制御装置２０は、タイミングｔ７２において、第２目標空燃比Ａｆ２＊を理論空燃比よりもリーン側の基準リーン空燃比に設定する。第２目標空燃比Ａｆ２＊が基準リーン空燃比に設定されることにより、図７（ｂ）に示すように、燃料噴射量の要求噴射量Ｑｄが基準リーン噴射量に設定されて減量される。これにより、実際の平均空燃比が理論空燃比よりもリーン側の基準リーン空燃比に変化する。なお、本実施形態では、理論空燃比から基準リッチ空燃比までのリッチ側ずれ量と、理論空燃比から基準リーン空燃比までのリーン側ずれ量とが等しくなるように、基準リッチ空燃比及び基準リーン空燃比が設定されている。
【００５３】
図７（ｃ）に実線で示すように、ディザ制御処理が実行されていないときには、こうした空燃比の変化に追従して、空燃比センサ３１の出力が基準リーン空燃比に相当する値ＱＬ１となる。また、図７（ｃ）に一点鎖線で示すように、ディザ制御処理が実行されているときには、こうした空燃比の変化に追従して、空燃比センサ３１の出力が基準リッチ空燃比に相当する値ＱＬ１よりもリッチ側の値ＱＬ２となる。
【００５４】
その後、制御装置２０は、タイミングｔ７３において第２目標空燃比Ａｆ２＊を基準リッチ空燃比に設定し、タイミングｔ７４において第２目標空燃比Ａｆ２＊を理論空燃比に設定する。制御装置２０は、タイミングｔ７４において第２目標空燃比Ａｆ２＊を理論空燃比に設定すると、通常時異常診断処理を終了する。
【００５５】
その後、図６のフローチャートに示すように、制御装置２０は、ディザ制御処理の実行中ではないか否かを判定する（ステップＳ６０２）。制御装置２０は、ディザ制御処理の実行中ではないと判定すると（ステップＳ６０２：ＹＥＳ）、通常時判定範囲Ｒａを算出する（ステップＳ６０３）。通常時判定範囲Ｒａは、第１リッチ側正常範囲Ｒａ１と第１リーン側正常範囲Ｒａ２とを含んでいる。図７（ｃ）の実線の範囲で示すように、第１リッチ側正常範囲Ｒａ１は、基準リッチ空燃比に相当する値ＱＲ１を含み、該値ＱＲ１よりも高い第１上限判定値Ａａ１と、値ＱＲ１よりも低い第１下限判定値Ａａ２との間の範囲である。また、第１リッチ側正常範囲Ｒａ２は、基準リーン空燃比に相当する値ＱＬ１を含み、該値ＱＬ１よりも高い第２上限判定値Ｂａ１と、値ＱＬ１よりも低い第２下限判定値Ｂａ２との間の範囲である。第１リッチ側正常範囲Ｒａ１及び第１リーン側正常範囲Ｒａ２は、空燃比センサ３１の異常を判定可能な範囲となるように、予め実験やシミュレーションによって求められて制御装置２０に記憶されている。
【００５６】
制御装置２０は、通常時判定範囲Ｒａを算出すると、図６に示すように、空燃比センサ３１の出力が正常範囲内にあるか否かを判定する（ステップＳ６０５）。この処理において制御装置２０は、ディザ制御処理が実行されていない場合、図７（ｃ）に実線の範囲で示すように、第２目標空燃比Ａｆ２＊を基準リッチ空燃比にしたとき（例えば、タイミングｔ７１〜ｔ７２）における空燃比センサ３１の出力が、第１リッチ側正常範囲Ｒａ１内にあるか否かを判定する。また、第２目標空燃比Ａｆ２＊を基準リーン空燃比にしたとき（タイミングｔ７２〜ｔ７３）における空燃比センサ３１の出力が、第１リーン側正常範囲Ｒａ２内にあるか否かを判定する。
【００５７】
制御装置２０は、通常時異常診断処理における空燃比センサ３１のリッチ側の出力が第１リッチ側正常範囲Ｒａ１内にあって、且つ空燃比センサ３１のリーン側の出力が第１リーン側正常範囲Ｒａ２内にあるときには、空燃比センサ３１の出力が正常範囲内にあると判定する（ステップＳ６０５：ＹＥＳ）。その後、制御装置２０は、空燃比センサ３１が正常であるとの正常判定を行い（ステップＳ６０６）、空燃比センサ３１の異常診断処理に係る一連の処理を終了する。
【００５８】
また、制御装置２０は、ディザ制御処理が実行されていないときには、ステップＳ６０５の処理において、通常時異常診断処理における空燃比センサ３１のリッチ側の出力が第１リッチ側正常範囲Ｒａ１内にない場合に空燃比センサ３１の出力は正常範囲内にないと判定する。また、空燃比センサ３１のリーン側の出力が第１リーン側正常範囲Ｒａ２内にない場合に空燃比センサ３１の出力は正常範囲内にないと判定する（ステップＳ６０５：ＮＯ）。こうした場合には、制御装置２０は、空燃比センサ３１が異常であるとの異常判定を行い（ステップＳ６０７）、空燃比センサ３１の異常診断処理に係る一連の処理を終了する。なお、異常判定を行った場合、制御装置２０は、例えば報知ランプを点灯するなどして、その異常を報知する。
【００５９】
一方、ステップＳ６０２の処理において、制御装置２０は、ディザ制御処理の実行中であると判定すると（ステップＳ６０２：ＮＯ）、実行時判定範囲Ｒｂを算出する（ステップＳ６０４）。実行時判定範囲Ｒｂは、第２リッチ側正常範囲Ｒｂ１と第２リーン側正常範囲Ｒｂ２とを含んでいる。図７（ｃ）の一点鎖線の範囲で示すように、第２リッチ側正常範囲Ｒｂ１は、基準リッチ空燃比に相当する値ＱＲ１よりもリッチ側の値ＱＲ２を含み、該値ＱＲ２よりも高い第１上限判定値Ａｂ１と、値ＱＲ１よりも低い第１下限判定値Ａｂ２との間の範囲である。また、第２リーン側正常範囲Ｒｂ２は、基準リーン空燃比に相当する値ＱＬ１よりもリッチ側の値ＱＬ２を含み、該値ＱＬ２よりも高い第２上限判定値Ｂｂ１と、値ＱＬ２よりも低い第２下限判定値Ｂｂ２との間の範囲である。第２リッチ側正常範囲Ｒｂ１及び第２リーン側正常範囲Ｒｂ２は、ディザ制御処理の実行による空燃比センサ３１の出力のずれを考慮して設定されており、予め実験やシミュレーションによって求められて制御装置２０に記憶されている。
【００６０】
図８は、実行時判定範囲Ｒｂの算出に係るマップを示している。
図８に実線で示すように、ディザ制御処理を行っていないときの空燃比センサ３１の出力に対して、図８に一点鎖線で示すように、ディザ制御処理を行っているときの空燃比センサ３１の出力は、補正要求値αが大きくなるほどリッチ側に大きくずれる。補正要求値αは、上述したように、リッチ燃焼気筒における要求噴射量Ｑｄの算出に用いられるものである。そのため、ディザ制御処理におけるリッチ燃焼気筒における燃料噴射量が大きいときほど（図８の横軸における右側ほど）、ディザ制御処理を行っていないときとの空燃比センサ３１の出力のずれは大きくなる。これは、リッチ燃焼気筒における燃料噴射量が大きいときほど、排気に含まれる未燃燃料が多くなることによる。
【００６１】
制御装置２０は、こうした空燃比センサ３１における出力のずれについて、予め実験やシミュレーションを行うことにより求められたマップを記憶している。そして、このマップに基づいて、ディザ制御処理の実行時における実行時判定範囲Ｒｂを算出する。
【００６２】
制御装置２０は、実行時判定範囲Ｒｂを算出すると、図６に示すように、空燃比センサ３１の出力が正常範囲内にあるか否かを判定する（ステップＳ６０５）。ステップＳ６０５の処理では、図７（ｃ）に一点鎖線で示すように、第２目標空燃比Ａｆ２＊を基準リッチ空燃比にしたとき（例えば、タイミングｔ７１〜ｔ７２）における空燃比センサ３１の出力が、第２リッチ側正常範囲Ｒｂ１内にあるか否かを判定する。また、第２目標空燃比Ａｆ２＊を基準リーン空燃比にしたとき（タイミングｔ７２〜ｔ７３）における空燃比センサ３１の出力が、第２リーン側正常範囲Ｒｂ２内にあるか否かを判定する。
【００６３】
制御装置２０は、ディザ制御処理が実行されているときにおいて、通常時異常診断処理における空燃比センサ３１のリッチ側の出力が第２リッチ側正常範囲Ｒｂ１内にあって、且つ空燃比センサ３１のリーン側の出力が第２リーン側正常範囲Ｒｂ２内にあるときに、空燃比センサ３１の出力が正常範囲内にあると判定する（ステップＳ６０５：ＹＥＳ）。その後、制御装置２０は、空燃比センサ３１が正常であるとの正常判定を行い（ステップＳ６０６）、空燃比センサ３１の異常診断処理に係る一連の処理を終了する。
【００６４】
また、制御装置２０は、ディザ制御処理が実行されているときにおいて、通常時異常診断処理における空燃比センサ３１のリッチ側の出力が第２リッチ側正常範囲Ｒｂ１内にない場合には、空燃比センサ３１の出力は正常範囲内にないと判定する。また、制御装置２０は、空燃比センサ３１のリーン側の出力が第２リーン側正常範囲Ｒｂ２内にない場合には、空燃比センサ３１の出力は正常範囲内にないと判定する（ステップＳ６０５：ＮＯ）。こうした場合には、制御装置２０は、空燃比センサ３１が異常であるとの異常判定を行い（ステップＳ６０７）、空燃比センサ３１の異常診断処理に係る一連の処理を終了する。なお、異常判定を行った場合、制御装置２０は、例えば報知ランプを点灯するなどして、その異常を報知する。
【００６５】
なお、制御装置２０は、ステップＳ６０６の処理またはステップＳ６０７の処理を実行すると、燃料噴射量をフィードフォーワード制御によって設定する態様から、フィードバック制御によって設定する態様に切り換える。
【００６６】
また、制御装置２０は、ステップＳ６００の処理において異常診断処理の実行条件が成立していないと判定すると（ステップＳ６００：ＮＯ）、その後の処理を実行せずに、空燃比センサ３１の異常診断処理に係る一連の処理を終了する。
【００６７】
第２実施形態によれば、以下の作用効果が得られる。
（２）本実施形態では、異常診断を行う際の空燃比センサ３１の出力に係る判定範囲を、ディザ制御処理を実行しているときと、ディザ制御処理を実行していないときとで変更している。すなわち、ディザ制御処理を実行していないときには、図７（ｃ）に実線で示す通常時判定範囲Ｒａに基づいて空燃比センサ３１の異常診断が行われる。また、ディザ制御処理を実行しているときには、図７（ｃ）に一点鎖線で示す実行時判定範囲Ｒｂに基づいて空燃比センサ３１の異常診断が行われる。実行時判定範囲Ｒｂは、ディザ制御処理が実行されているときと、ディザ制御処理が実行されていないときとにおける空燃比センサ３１の出力のずれを反映させた判定範囲である。そのため、ディザ制御処理が実行されているときに異常診断を行う場合に、ディザ制御処理の実行に起因した空燃比センサ３１の出力のずれを考慮しない構成に比して、空燃比センサ３１の異常診断をより正確に行うことが可能になる。したがって、ディザ制御処理の実行中であっても、空燃比センサ３１の異常診断の精度を担保することが可能になる。また、本実施形態によれば、燃料噴射量などの他の制御量を変更しなくても、空燃比センサ３１の異常診断が可能になる。
【００６８】
（第３実施形態）
空燃比センサの異常診断装置の第３実施形態について、図９〜図１２を参照して説明する。本実施形態では、異常判定の方法において、空燃比センサ３１の出力の応答時間に基づいて異常を診断する点が上記各実施形態と異なっている。第１実施形態と同様の構成については、共通の符号を付して説明を省略する。
【００６９】
図９のフローチャートを参照して、本実施形態における空燃比センサの異常診断処理に係る一連の処理について説明する。なお、図９に示す処理において、ステップＳ６００〜ステップＳ６０２までの処理は、第２実施形態におけるステップＳ６００〜ステップＳ６０２までの処理と同じであるため、説明を省略する。
【００７０】
制御装置２０は、ステップＳ６０２の処理において、ディザ制御処理の実行中ではないと判定すると（ステップＳ６０２：ＹＥＳ）、空燃比センサ３１の出力の応答時間に係る判定値として、通常時判定範囲Ｔａを設定する（ステップＳ９０３）。また、制御装置２０は、ステップＳ６０２の処理において、ディザ制御処理の実行中であると判定すると（ステップＳ６０２：ＮＯ）、空燃比センサ３１の出力の応答時間に係る判定値として、実行時判定範囲Ｔｂを設定する（ステップＳ９０４）。
【００７１】
図１０に示すように、空燃比センサ３１は、平均空燃比の変化に伴ってその出力が変化する。図１０には、第２目標空燃比Ａｆ２＊を理論空燃比よりもリッチ側の基準リッチ空燃比に設定している状態から理論空燃比よりもリーン側の基準リーン空燃比に設定した場合において、ディザ制御処理を実行していない場合の出力の変化を実線で示し、ディザ制御処理を実行している場合の出力の変化を一点鎖線で示している。なお、図１０では、空燃比センサ３１の出力の変化態様を模式的に示している。
【００７２】
本実施形態では、空燃比センサ３１の出力が予め定められた第１判定値から第２判定値まで変化する際の応答時間、及び第２判定値から第１判定値まで変化する際の応答時間に基づいて空燃比センサ３１の異常を診断する。上述したように、ディザ制御処理が実行されているときの空燃比センサ３１の出力は、第２目標空燃比Ａｆ２＊が基準リッチ空燃比に設定されている場合、基準リッチ空燃比に相当する値よりもリッチ側の値となる。また、第２目標空燃比Ａｆ２＊が基準リーン空燃比に設定されている場合、空燃比センサ３１の出力は、基準リーン空燃比に相当する値よりもリッチ側の値となる。平均空燃比を基準リッチ空燃比に制御している場合において、ディザ制御処理を行っていないときに対する空燃比センサ３１の出力のずれ量ＦＲは、平均空燃比を基準リーン空燃比に制御している場合において、ディザ制御処理を行っていないときに対する空燃比センサ３１の出力のずれ量ＦＬよりも大きくなる傾向にある（ＦＲ＞ＦＬ）。そのため、ディザ制御処理を行っているときとディザ制御処理を行っていないときとでは、空燃比センサ３１の出力における振幅が異なる。
【００７３】
図１１に示すように、空燃比センサ３１の出力における振幅は、補正要求値αが大きくなるほど大きくなる傾向にある。これは、ディザ制御処理におけるリッチ燃焼気筒の燃料噴射量が大きいときほど（図１１の横軸における右側ほど）、上記ずれ量ＦＲと上記ずれ量ＦＬとの差が大きくなることによる。
【００７４】
図１０に示すように、第２目標空燃比Ａｆ２＊を基準リッチ空燃比に設定している状態から基準リーン空燃比に設定した場合において空燃比センサ３１の出力が変化するとき、一点鎖線で示すディザ制御処理を実行しているときにおける空燃比センサ３１の出力の応答時間（タイミングｔ１０２〜タイミングｔ１０４）を応答時間Ｔｄ１とする。また、実線で示すディザ制御処理を実行していないときにおける空燃比センサ３１の出力の応答時間（タイミングｔ１０１〜タイミングｔ１０３）を応答時間Ｔｎ１とする。この場合、応答時間Ｔｄ１と応答時間Ｔｎ１とは異なり、応答時間Ｔｄ１は応答時間Ｔｎ１よりも長くなる傾向にある（Ｔｄ１＞Ｔｎ１）。なお、第２目標空燃比Ａｆ２＊を基準リーン空燃比に設定している状態から基準リッチ空燃比に設定した場合においても、空燃比センサ３１の出力の変化態様は同じである。すなわち、第２目標空燃比Ａｆ２＊を基準リーン空燃比に設定している状態から基準リッチ空燃比に設定した場合において、ディザ制御処理を実行しているときにおける空燃比センサ３１の出力の応答時間Ｔｄ２と、ディザ制御処理を実行していないときにおける空燃比センサ３１の出力の応答時間Ｔｎ２とは異なる。応答時間Ｔｄ２は応答時間Ｔｎ２よりも長くなる傾向にある（Ｔｄ２＞Ｔｎ２）。
【００７５】
図１２に実線の範囲で示すように、本実施形態では、ディザ制御処理を実行していないときの通常時判定範囲Ｔａを、空燃比センサ３１が正常であるときに想定される第１基準応答時間Ｔｖ１を基準として設定している。そして、制御装置２０は、通常時判定範囲Ｔａを第１基準応答時間よりも長い第１上限時間Ｔａ１と、第１基準応答時間よりも短い第１下限時間Ｔａ２との間の範囲となるように設定している。この通常時判定範囲Ｔａは、ディザ制御処理を実行していないときにおいて、空燃比センサ３１の異常を判定可能な範囲となるように、予め実験やシミュレーションによって求められて制御装置２０に記憶されている。
【００７６】
また、図１２に一点鎖線の範囲で示すように、本実施形態では、ディザ制御処理を実行しているときの実行時判定範囲Ｔｂを、空燃比センサ３１の出力における振幅の増大を考慮して、空燃比センサ３１が正常であるときに想定される第２基準応答時間Ｔｖ２を基準として設定している。第２基準応答時間Ｔｖ２は空燃比センサ３１の出力における振幅が大きくなるほど長くなり、図１２に実線で示す第１基準応答時間Ｔｖ１とのずれ量は該振幅が大きいときほど大きくなる。制御装置２０は、実行時判定範囲Ｔｂを、第２基準応答時間Ｔｖ２よりも長い第２上限時間Ｔｂ１と、第２基準応答時間Ｔｖ２よりも短い第２下限時間Ｔｂ２との間の範囲となるように設定している。この実行時判定範囲Ｔｂは、ディザ制御処理を実行しているときにおいて、空燃比センサ３１の異常を判定可能な範囲となるように、予め実験やシミュレーションによって求められて制御装置２０に記憶されている。
【００７７】
図９に示すように、こうして通常時判定範囲Ｔａまたは実行時判定範囲Ｔｂを設定すると、制御装置２０は、空燃比センサ３１の出力が正常範囲内にあるか否かを判定する（ステップＳ９０５）。この処理において制御装置２０は、ディザ制御処理が実行されていない場合には、通常時判定範囲Ｔａに基づいて空燃比センサ３１の異常を診断する。すなわち、第２目標空燃比Ａｆ２＊を基準リッチ空燃比から基準リーン空燃比に変化させたときの空燃比センサ３１の応答時間Ｔｎ１が通常時判定範囲Ｔａ内にあるか否か、及び第２目標空燃比Ａｆ２＊を基準リーン空燃比から基準リッチ空燃比に変化させたときの空燃比センサ３１の応答時間Ｔｎ２が通常時判定範囲Ｔａ内にあるか否かを判定する。
【００７８】
制御装置２０は、応答時間Ｔｎ１及び応答時間Ｔｎ２が共に通常時判定範囲Ｔａ内にあるときには、空燃比センサ３１の出力が正常範囲内にあると判定する（ステップＳ９０５：ＹＥＳ）。その後、制御装置２０は、空燃比センサ３１が正常であるとの正常判定を行い（ステップＳ９０６）、空燃比センサ３１の異常診断処理に係る一連の処理を終了する。
【００７９】
また、制御装置２０は、ディザ制御処理が実行されていないときにおいて、応答時間Ｔｎ１及び応答時間Ｔｎ２の少なくとも一方が通常時判定範囲Ｔａ内にないときには、空燃比センサ３１の出力は正常範囲内にないと判定する（ステップＳ９０５：ＮＯ）。この場合には、制御装置２０は、空燃比センサ３１が異常であるとの異常判定を行い（ステップＳ９０７）、空燃比センサ３１の異常診断処理に係る一連の処理を終了する。なお、異常判定を行った場合、制御装置２０は、例えば報知ランプを点灯するなどして、その異常を報知する。
【００８０】
一方、ディザ制御処理が実行されている場合には、ステップＳ９０５の処理において、制御装置２０は、実行時判定範囲Ｔｂに基づいて空燃比センサ３１の異常を診断する。すなわち、第２目標空燃比Ａｆ２＊を基準リッチ空燃比から基準リーン空燃比に変化させたときの空燃比センサ３１の応答時間Ｔｄ１が実行時判定範囲Ｔｂ内にあるか否か、及び第２目標空燃比Ａｆ２＊を基準リーン空燃比から基準リッチ空燃比に変化させたときの空燃比センサ３１の応答時間Ｔｄ２が実行時判定範囲Ｔｂ内にあるか否かを判定する。
【００８１】
制御装置２０は、応答時間Ｔｄ１及び応答時間Ｔｄ２が共に実行時判定範囲Ｔｂ内にあるときには、空燃比センサ３１の出力が正常範囲内にあると判定する（ステップＳ９０５：ＹＥＳ）。その後、制御装置２０は、空燃比センサ３１が正常であるとの正常判定を行い（ステップＳ９０６）、空燃比センサ３１の異常診断処理に係る一連の処理を終了する。
【００８２】
また、制御装置２０は、応答時間Ｔｄ１及び応答時間Ｔｄ２の少なくとも一方が実行時判定範囲Ｔｂ内にないときには、空燃比センサ３１の出力は正常範囲内にないと判定する（ステップＳ９０５：ＮＯ）。この場合には、制御装置２０は、空燃比センサ３１が異常であるとの異常判定を行い（ステップＳ９０７）、空燃比センサ３１の異常診断処理に係る一連の処理を終了する。なお、異常判定を行った場合、制御装置２０は、例えば報知ランプを点灯するなどして、その異常を報知する。
【００８３】
なお、制御装置２０は、ステップＳ９０６の処理またはステップＳ９０７の処理を実行すると、燃料噴射量をフィードフォーワード制御によって設定する態様から、フィードバック制御によって設定する態様に切り換える。
【００８４】
第３実施形態によれば、以下の作用効果が得られる。
（３）本実施形態では、異常診断を行う際の空燃比センサ３１の応答時間に係る判定範囲を、ディザ制御処理を実行しているときと、ディザ制御処理を実行していないときとで変更している。すなわち、ディザ制御処理を実行していないときには、通常時判定範囲Ｔａに基づいて空燃比センサ３１の異常診断が行われる。また、ディザ制御処理を実行しているときには、実行時判定範囲Ｔｂに基づいて空燃比センサ３１の異常診断が行われる。ディザ制御処理が実行されているときにおける空燃比センサ３１の出力の応答時間と、ディザ制御処理が実行されていないときにおける空燃比センサ３１の出力の応答時間とにはずれが生じる。実行時判定範囲Ｔｂは、この応答時間のずれを反映させた判定範囲である。そのため、ディザ制御処理が実行されているときに異常診断を行う場合に、ディザ制御処理の実行に起因した空燃比センサ３１の出力のずれを考慮しない構成に比して、空燃比センサ３１の異常診断をより正確に行うことが可能になる。したがって、ディザ制御処理の実行中であっても、空燃比センサ３１の異常診断の精度を担保することが可能になる。また、本実施形態によれば、燃料噴射量などの他の制御量を変更しなくても、空燃比センサ３１の異常診断が可能になる。
【００８５】
（第４実施形態）
空燃比センサの異常診断装置の第４実施形態について、図１３及び図１４を参照して説明する。本実施形態では、異常判定の方法が第３実施形態と異なっている。第３実施形態と同様の構成については、共通の符号を付して説明を省略する。
【００８６】
図１３のフローチャートを参照して、本実施形態における空燃比センサの異常診断処理に係る一連の処理について説明する。なお、図１３に示す処理において、ステップＳ６００〜ステップＳ６０２までの処理は、第２実施形態におけるステップＳ６００〜ステップＳ６０２までの処理と同じであるため、説明を省略する。
【００８７】
制御装置２０は、ステップＳ６０２の処理において、ディザ制御処理の実行中ではないと判定すると（ステップＳ６０２：ＹＥＳ）、空燃比センサ３１の出力の応答時間が予め定められた所定時間Ｔｔとなるように通常時基準値Ｋａを設定する（ステップＳ１３０３）。また、制御装置２０は、ステップＳ６０２の処理において、ディザ制御処理の実行中であると判定すると（ステップＳ６０２：ＮＯ）、空燃比センサ３１の出力の応答時間が予め定められた所定時間Ｔｔとなるように実行時基準値Ｋｂを設定する（ステップＳ１３０４）。
【００８８】
図１４に示すように、通常時基準値Ｋａは、第１通常基準値Ｋａ１と第２通常基準値Ｋａ２とを含んでいる。これら第１通常基準値Ｋａ１と第２通常基準値Ｋａ２とは、図１４に実線で示すディザ制御処理を実行していないときの空燃比センサ３１の出力において、その出力の応答時間が所定時間Ｔｔとなるように設定されている。所定時間Ｔｔは、第２目標空燃比Ａｆ２＊を基準リッチ空燃比から基準リーン空燃比に変化させたときのタイミングｔ１４０から所定時間経過したタイミングｔ１４１を始期として設定されている。第１通常基準値Ｋａ１は、空燃比センサ３１が正常であるときにおいて、ディザ制御処理を実行していないときの空燃比センサ３１の出力（実線）におけるタイミングｔ１４１の値である。また、タイミングｔ１４１から所定時間Ｔｔ経過したときのタイミングをタイミングｔ１４２とする。第２通常基準値Ｋａ２は、空燃比センサ３１が正常であるときにおいて、ディザ制御処理を実行していないときの空燃比センサ３１の出力におけるタイミングｔ１４２の値である。これら所定時間Ｔｔ、第１通常基準値Ｋａ１、及び第２通常基準値Ｋａ２は、ディザ制御処理を実行していないときの空燃比センサ３１の出力の応答時間に基づいて異常を判定可能な値となるように、予め実験やシミュレーションによって求められて制御装置２０に記憶されている。
【００８９】
実行時基準値Ｋｂは、第１実行基準値Ｋｂ１と第２実行基準値Ｋｂ２とを含んでいる。これら第１実行基準値Ｋｂ１と第２実行基準値Ｋｂ２とは、図１４に一点鎖線で示すディザ制御処理を実行しているときの空燃比センサ３１の出力において、その出力の応答時間が所定時間Ｔｔとなるように設定されている。すなわち、第１実行基準値Ｋｂ１は、空燃比センサ３１が正常であるときにおいて、ディザ制御処理を実行しているときの空燃比センサ３１の出力（一点鎖線）におけるタイミングｔ１４１の値である。また、第２実行基準値Ｋｂ２は、空燃比センサ３１が正常であるときにおいて、ディザ制御処理を実行しているときの空燃比センサ３１の出力におけるタイミングｔ１４２の値である。図１４に示す例では、第２実行基準値Ｋｂ２は、第２通常基準値Ｋａ２よりリッチ側の値である。また、第１実行基準値Ｋｂ１は、第１通常基準値Ｋａ１よりもリッチ側の値である。これら第１実行基準値Ｋｂ１及び第２実行基準値Ｋｂ２は、ディザ制御処理を実行しているときの空燃比センサ３１の出力の応答時間に基づいて異常を判定可能な値となるように、予め実験やシミュレーションによって求められて制御装置２０に記憶されている。
【００９０】
なお、ステップＳ１３０３では、制御装置２０は上記と同様にして、第２目標空燃比Ａｆ２＊を基準リーン空燃比に設定している状態から基準リッチ空燃比に設定した場合についての通常時基準値Ｋａを、所定時間Ｔｔに基づいて設定する。また、ステップＳ１３０４の処理では、制御装置２０は同様にして、第２目標空燃比Ａｆ２＊を基準リーン空燃比に設定している状態から基準リッチ空燃比に設定した場合についての実行時基準値Ｋｂを所定時間Ｔｔに基づいて設定する。
【００９１】
図１３に示すように、こうして通常時基準値Ｋａまたは実行時基準値Ｋｂを算出すると、制御装置２０は、空燃比センサ３１の出力が正常範囲内にあるか否かを判定する（ステップＳ１３０５）。この処理において制御装置２０は、ディザ制御処理が実行されていない場合には、通常時基準値Ｋａに基づいて算出される応答時間を用いて空燃比センサ３１の異常を診断する。すなわち、制御装置２０は、第２目標空燃比Ａｆ２＊を基準リッチ空燃比から基準リーン空燃比に変化させたときの空燃比センサ３１の出力に基づいて、その出力が第１通常基準値Ｋａ１となったときのタイミングから第２通常基準値Ｋａ２となったときのタイミングまでの応答時間Ｔｍ１を算出する。そして、この応答時間Ｔｍ１が所定時間Ｔｔと略同一であるか否かを判定する。また、制御装置２０は、第２目標空燃比Ａｆ２＊を基準リーン空燃比から基準リッチ空燃比に変化させたときの空燃比センサ３１の出力に基づいて、その出力が第２通常基準値Ｋａ２となったときのタイミングから第１通常基準値Ｋａ１となったときのタイミングまでの応答時間Ｔｍ２を算出する。そして、この応答時間Ｔｍ２が所定時間Ｔｔと略同一であるか否かを判定する。
【００９２】
制御装置２０は、ディザ制御処理が実行されていないときにおいて、応答時間Ｔｍ１及び応答時間Ｔｍ２が共に所定時間Ｔｔと略同一であるときには、空燃比センサ３１の出力が正常範囲内にあると判定する（ステップＳ１３０５：ＹＥＳ）。なお、「略同一」とは、所定時間Ｔｔと一致するだけでなく、所定時間Ｔｔとの差が空燃比センサ３１の出力の誤差を含んだ範囲内にあることをいう。その後、制御装置２０は、空燃比センサ３１が正常であるとの正常判定を行い（ステップＳ１３０６）、空燃比センサ３１の異常診断処理に係る一連の処理を終了する。
【００９３】
また、制御装置２０は、ディザ制御処理が実行されていないときにおいて、応答時間Ｔｍ１及び応答時間Ｔｍ２の少なくとも一方が所定時間Ｔｔと略同一ではないときには、空燃比センサ３１の出力は正常範囲内にないと判定する（ステップＳ１３０５：ＮＯ）。この場合には、制御装置２０は、空燃比センサ３１が異常であるとの異常判定を行い（ステップＳ１３０７）、空燃比センサ３１の異常診断処理に係る一連の処理を終了する。なお、異常判定を行った場合、制御装置２０は、例えば報知ランプを点灯するなどして、その異常を報知する。
【００９４】
一方、ディザ制御処理が実行されている場合には、ステップＳ１３０５の処理において、制御装置２０は、実行時基準値Ｋｂに基づいて算出される応答時間を用いて空燃比センサ３１の異常を診断する。すなわち、制御装置２０は、第２目標空燃比Ａｆ２＊を基準リッチ空燃比から基準リーン空燃比に変化させたときの空燃比センサ３１の出力に基づいて、その出力が第１実行基準値Ｋｂ１となったときのタイミングから第２実行基準値Ｋｂ２となったときのタイミングまでの応答時間Ｔｘ１を算出する。そして、この応答時間Ｔｘ１が所定時間Ｔｔと略同一であるか否かを判定する。また、制御装置２０は、第２目標空燃比Ａｆ２＊を基準リーン空燃比から基準リッチ空燃比に変化させたときの空燃比センサ３１の出力に基づいて、その出力が第２実行基準値Ｋｂ２となったときのタイミングから第１実行基準値Ｋｂ１となったときのタイミングまでの応答時間Ｔｘ２を算出する。そして、この応答時間Ｔｘ２が所定時間Ｔｔと略同一であるか否かを判定する。
【００９５】
制御装置２０は、ディザ制御処理が実行されているときにおいて、応答時間Ｔｘ１及び応答時間Ｔｘ２が共に所定時間Ｔｔと略同一であるときには、空燃比センサ３１の出力が正常範囲内にあると判定する（ステップＳ１３０５：ＹＥＳ）。その後、制御装置２０は、空燃比センサ３１が正常であるとの正常判定を行い（ステップＳ１３０６）、空燃比センサ３１の異常診断処理に係る一連の処理を終了する。
【００９６】
また、制御装置２０は、ディザ制御処理が実行されているときにおいて、応答時間Ｔｘ１及び応答時間Ｔｘ２の少なくとも一方が所定時間Ｔｔと略同一ではないときには、空燃比センサ３１の出力は正常範囲内にないと判定する（ステップＳ１３０５：ＮＯ）。この場合には、制御装置２０は、空燃比センサ３１が異常であるとの異常判定を行い（ステップＳ１３０７）、空燃比センサ３１の異常診断処理に係る一連の処理を終了する。なお、異常判定を行った場合、制御装置２０は、例えば報知ランプを点灯するなどして、その異常を報知する。
【００９７】
なお、制御装置２０は、ステップＳ１３０６の処理またはステップＳ１３０７の処理を実行すると、燃料噴射量をフィードフォーワード制御によって設定する態様から、フィードバック制御によって設定する態様に切り換える。
【００９８】
第４実施形態によれば、以下の作用効果が得られる。
（４）本実施形態では、空燃比センサ３１の出力の応答時間が所定時間Ｔｔと略同一であるか否かに基づいて異常診断を行う。そして、この異常診断に係る判定値である応答時間を算出するための基準値を、ディザ制御処理を実行しているときと、ディザ制御処理を実行していないときとで変更している。すなわち、ディザ制御処理を実行していないときには、通常時基準値Ｋａに基づいて空燃比センサ３１の出力の応答時間が算出される。また、ディザ制御処理を実行しているときには、実行時基準値Ｋｂに基づいて空燃比センサ３１の出力の応答時間が算出される。実行時基準値Ｋｂは、ディザ制御処理が実行されている場合とディザ制御処理が実行されていない場合とにおける空燃比センサ３１の出力のずれを考慮して、正常時における空燃比センサ３１の出力の応答時間を所定時間Ｔｔに調節するために設定されている。
【００９９】
そのため、ディザ制御処理が実行されているときに異常診断を行う場合に、ディザ制御処理の実行に起因した空燃比センサ３１の出力のずれを考慮しない構成に比して、空燃比センサ３１の異常診断をより正確に行うことが可能になる。したがって、ディザ制御処理の実行中であっても、空燃比センサ３１の異常診断の精度を担保することが可能になる。また、本実施形態によれば、燃料噴射量などの他の制御量を変更しなくても、空燃比センサ３１の異常診断が可能になる。
【０１００】
上記実施形態は以下のように変更して実施することができる。以下の変更例は、互いに適宜組み合わせて実施することも可能である。
・上記第１実施形態における変形例として、例えば、図１５〜図１７に示す実施形態を採用することができる。この実施形態では、空燃比センサの異常診断処理において、実行時異常診断処理の内容が第１実施形態と異なっている。第１実施形態と同様の構成については、共通の符号を付して説明を省略する。
【０１０１】
本実施形態では、実行時異常診断処理において、第２目標空燃比Ａｆ２＊を基準リッチ空燃比よりもリーン側の減少リッチ空燃比に設定し、第２目標空燃比Ａｆ２＊を基準リーン空燃比よりもリーン側の増大リーン空燃比に設定する。これにより、空燃比センサ３１の出力を基準リッチ空燃比及び基準リーン空燃比に対応した値となるように変化させる。本実施形態では、制御装置２０は、図１５に示すマップに基づいて、減少リッチ空燃比及び増大リーン空燃比を算出する。
【０１０２】
図１５に示すように、減少リッチ空燃比ｄＲ２は、空燃比センサ３１の出力が基準リッチ空燃比に対応した値となるように、基準リッチ空燃比ｄＲ１よりもリーン側に設定される。また、増大リーン空燃比ｄＬ２は、空燃比センサ３１の出力が基準リーン空燃比に対応した値となるように、基準リーン空燃比ｄＬ１よりもリーン側に設定される。
【０１０３】
理論空燃比ｄＡから基準リッチ空燃比ｄＲ１までのリッチ側増大量は、理論空燃比ｄＡから基準リーン空燃比ｄＬ１までのリーン側減少量と等しくなるように設定されている。この場合、実行時異常診断処理において第２目標空燃比Ａｆ２＊をリーン側に変化させることで、理論空燃比ｄＡからのリッチ側増大量と、理論空燃比ｄＡからのリーン側増大量とが異なることとなる。すなわち、図１５に示すように、理論空燃比ｄＡから減少リッチ空燃比ｄＲ２までのリッチ側増大量ΔＲと、理論空燃比ｄＡから増大リーン空燃比ｄＬ２までのリーン側減少量ΔＬとは異なる値となる。その結果、異常時診断処理の実行期間における平均空燃比を平滑化した平滑化空燃比は、理論空燃比ｄＡよりもリーン側に偏ることとなる。
【０１０４】
本実施形態では、実行時異常診断処理において、第２目標空燃比Ａｆ２＊を減少リッチ空燃比ｄＲ２に設定する期間と、増大リーン空燃比ｄＬ２に設定する期間とを第２目標空燃比Ａｆ２＊、すなわち燃料噴射量に応じて変更する。
【０１０５】
図１６のフローチャートを参照して、本実施形態における実行時異常診断処理に係る処理の流れについて説明する。
図１６に示すように、制御装置２０は、実行時異常診断処理を開始するとまず、減少リッチ空燃比ｄＲ２及び増大リーン空燃比ｄＬ２を算出する（ステップＳ１６００）。この算出は、図１５に示すマップに基づいて行われる。なお、図１５に示すマップは、予め実験やシミュレーションによって求められて制御装置２０に記憶されている。その後、図１６に示すように、制御装置２０は、減少リッチ空燃比ｄＲ２に基づいた要求噴射量Ｑｄである減少リッチ噴射量Ｑｄ１を算出し、増大リーン空燃比ｄＬ２に基づいた要求噴射量Ｑｄである増大リーン噴射量Ｑｄ２を算出する（ステップＳ１６０１）。
【０１０６】
次に、制御装置２０は、燃料噴射量が減少リッチ噴射量Ｑｄ１となるように燃料噴射弁１３を制御する。これにより平均空燃比を減少リッチ空燃比ｄＲ２にする（ステップＳ１６０２）。この処理では、減少リッチ空燃比ｄＲ２に設定する期間ＴＲを、次の（式１）に基づいて算出する。
【０１０７】
ＴＲ＝ＴＬ・（ＱｄＡ−Ｑｄ２）／（Ｑｄ１−ＱｄＡ）…（式１）
ＱｄＡは、平均空燃比を理論空燃比ｄＡにするための要求噴射量である。すなわち、（ＱｄＡ−Ｑｄ２）は、平均空燃比を理論空燃比ｄＡから増大リーン空燃比ｄＬ２に変化させるときの燃料噴射量の減少量に相当する。また、（Ｑｄ１−ＱｄＡ）は、平均空燃比を理論空燃比ｄＡから減少リッチ空燃比ｄＲ２に変化させるときの燃料噴射量の増大量に相当する。ＴＬは、平均空燃比を増大リーン空燃比ｄＬ２に設定する期間である。期間ＴＬは、第２目標空燃比Ａｆ２＊が変化した後、空燃比センサ３１が基準リーン空燃比に対応した値を出力するために要する期間よりも長く設定されている。期間ＴＬは、予め実験やシミュレーションによって求められて制御装置２０に記憶されている。
【０１０８】
制御装置２０は、算出した期間ＴＲの間、燃料噴射量が減少リッチ噴射量Ｑｄ１となるように燃料噴射弁１３を制御すると、次に、期間ＴＬの間、燃料噴射量が増大リーン噴射量Ｑｄ２となるように燃料噴射弁１３を制御する。これにより、平均空燃比を増大リーン空燃比ｄＬ２にする（ステップＳ１６０３）。
【０１０９】
その後、制御装置２０は、第２目標空燃比Ａｆ２＊を理論空燃比ｄＡに設定して平均空燃比を理論空燃比ｄＡとし（ステップＳ１６０４）、実行時異常診断処理を終了する。なお、制御装置２０は、実行時異常診断処理を実行している間、吸入空気量Ｇａが変化しないように、例えばスロットルバルブなどの吸入空気量操作部を制御する。
【０１１０】
図１７を参照して、本実施形態の実行時異常診断処理における各パラメータの推移について説明する。
図１７（ａ）に示すように、異常診断処理の実行条件が成立したタイミングｔ１７１において、図１７（ｂ）に示すように、ディザ制御処理が実行されていると、制御装置２０は、実行時異常診断処理を開始する。これにより、図１７（ｄ）に示すように、燃料噴射量が減少リッチ空燃比ｄＲ２に基づいた減少リッチ噴射量Ｑｄ１に設定される。制御装置２０は、期間ＴＲの間継続して、燃料噴射量を減少リッチ噴射量Ｑｄ１に設定する。これにより、空燃比センサ３１が正常であるときには、図１７（ｅ）に示すように、空燃比の変化に追従して、空燃比センサ３１の出力が基準リッチ空燃比に相当する値となる。
【０１１１】
その後、タイミングｔ１７１から期間ＴＲ経過したタイミングｔ１７３において、図１７（ｄ）に示すように、制御装置２０は、燃料噴射量を増大リーン空燃比ｄＬ２に基づいた増大リーン噴射量Ｑｄ２に設定する。制御装置２０は、期間ＴＬの間継続して、燃料噴射量を増大リーン噴射量Ｑｄ２に設定する。これにより、空燃比センサ３１が正常であるときには、図１７（ｅ）に示すように、空燃比の変化に追従して、空燃比センサ３１の出力が基準リーン空燃比に相当する値となる。その後、図１７（ｄ）に示すように、タイミングｔ１７３から期間ＴＬ経過したタイミングｔ１７４において、制御装置２０は、燃料噴射量を理論空燃比ｄＡに基づいた理論噴射量ＱｄＡに設定する。このように、本実施形態では、実行時異常診断処理において、第２目標空燃比Ａｆ２＊を減少リッチ空燃比ｄＲ２に設定する期間ＴＲと、増大リーン空燃比ｄＬ２に設定する期間ＴＬとを燃料噴射量に応じて変更する。
【０１１２】
ここで、本実施形態における空燃比センサ３１の異常診断装置の特徴構成を明らかにするために、第２目標空燃比Ａｆ２＊を減少リッチ空燃比ｄＲ２に設定する期間ＴＲを固定の期間ＴＲｉとし、増大リーン空燃比ｄＬ２に設定する期間ＴＬを固定の期間ＴＬｉとした場合を比較例として説明する。
【０１１３】
図１７（ｃ）に示すように、この構成では、タイミングｔ１７１において、燃料噴射量が減少リッチ噴射量Ｑｄ１となるように燃料噴射弁１３を制御する。これにより、平均空燃比を減少リッチ空燃比ｄＲ２にする。平均空燃比を減少リッチ空燃比ｄＲ２に設定している期間ＴＲｉは、タイミングｔ１７１を始期とし、タイミングｔ１７３よりも前のタイミングｔ１７２を終期としている。その後、この構成では、タイミングｔ１７２において、燃料噴射量を増大リーン噴射量Ｑｄ２となるように燃料噴射弁１３を制御する。これにより、平均空燃比を増大リーン空燃比ｄＬ２にする。平均空燃比を増大リーン空燃比ｄＬ２に設定している期間ＴＬｉは、平均空燃比を減少リッチ空燃比ｄＲ２に設定している期間ＴＲｉと同じであり、タイミングｔ１７２を始期とし、タイミングｔ１７４を終期としている。すなわち、タイミングｔ１７２は、タイミングｔ１７１とタイミングｔ１７４との中間に位置している。この場合では、図１７（ｅ）に一点鎖線で示すように、タイミングｔ１７２において、空燃比センサ３１の出力が基準リーン空燃比に相当する値となるように変化し始める。
【０１１４】
こうして、期間ＴＲｉと期間ＴＬｉとを同じ固定期間とした場合、図１７（ｃ）に斜線の領域で示すように、期間ＴＲｉ（タイミングｔ１７１〜タイミングｔ１７２）における燃料噴射量の総量と、期間ＴＬｉ（タイミングｔ１７２〜タイミングｔ１７４）における燃料噴射量の総量との平均は、平均空燃比を理論空燃比ｄＡとするための燃料噴射量（＝ＱｄＡ）よりも少ない量となる。その結果、期間ＴＲｉにおける平均空燃比と、期間ＴＬｉにおける平均空燃比とを平滑化した平滑化空燃比が、理論空燃比ｄＡよりもリーン側に偏る。
【０１１５】
こうした構成に対し、本実施形態では、平均空燃比を減少リッチ空燃比ｄＲ２に設定する期間ＴＲと、増大リーン空燃比ｄＬ２に設定する期間ＴＬとを燃料噴射量に応じて変更している。これにより、平均空燃比を減少リッチ空燃比ｄＲ２に設定している期間ＴＲ（タイミングｔ１７１〜タイミングｔ１７３）は、第２目標空燃比Ａｆ２＊を増大リーン空燃比ｄＬ２に設定している期間ＴＬ（タイミングｔ１７３〜タイミングｔ１７４）よりも長くなる。そのため、図１７（ｄ）に斜線の領域で示すように、期間ＴＲにおける燃料噴射量の総量と、期間ＴＬにおける燃料噴射量の総量との平均は、平均空燃比を理論空燃比ｄＡとするための燃料噴射量（＝ＱｄＡ）に等しい量となる。そのため、期間ＴＲにおける平均空燃比と、期間ＴＬにおける平均空燃比とを平滑化した平滑化空燃比を、理論空燃比ｄＡとすることができる。
【０１１６】
本実施形態によれば、上記（１）と同様の作用効果に加えて、以下の作用効果が得られる。
（５）本実施形態では、第２目標空燃比Ａｆ２＊をリッチ側に設定する期間ＴＲと、第２目標空燃比Ａｆ２＊をリーン側に設定する期間ＴＬとを燃料噴射量に応じて変更している。そのため、第２目標空燃比Ａｆ２＊をリッチ側に設定している期間ＴＲにおける平均空燃比と、第２目標空燃比Ａｆ２＊をリーン側に設定している期間ＴＬにおける平均空燃比とを平滑化した平滑化空燃比を調節することが可能になり、平滑化空燃比を理論空燃比ｄＡとすることができる。その結果、空燃比センサ３１の異常診断を行っているときの排気性状を好適な状態に維持することができる。
【０１１７】
・上記変形例において、実行時異常診断処理を実行している間、吸入空気量Ｇａを変化させることも可能である。この場合には、吸入空気量Ｇａの積算値も考慮して、平滑化空燃比が理論空燃比ｄＡとなるように上記期間ＴＲ，ＴＬを設定すればよい。
【０１１８】
・上記変形例では、平滑化空燃比が理論空燃比ｄＡとなるように上記期間ＴＲ，ＴＬを設定したが、平滑空燃比を理論空燃比ｄＡと異なる空燃比に設定することも可能である。
・第１実施形態及び上記変形例では、異常診断処理に係る一連の処理において、ディザ制御処理の実行の有無を判断してから通常時異常診断処理と実行時異常診断処理とを選択して実行するようにした。こうした構成は適宜変更が可能である。例えば、異常診断処理に係る一連の処理において、通常時異常診断処理の実行中にディザ制御処理が開始された場合には、通常時異常診断処理から実行時異常診断処理に切り替えるといった構成を採用することも可能である。また、実行時異常診断処理の実行中にディザ制御処理が終了した場合には、実行時異常診断処理から通常時異常診断処理に切り替えるといった構成を採用してもよい。
【０１１９】
・第１実施形態、第２実施形態、及び変形例では、空燃比センサ３１のリッチ側の出力とリーン側の出力とが共に正常範囲内にあるときに、空燃比センサ３１が正常であると判定した。こうした構成に代えて、空燃比センサ３１のリッチ側の出力とリーン側の出力とのいずれか一方が正常範囲内にあるときに空燃比センサ３１が正常であると判定することも可能である。この場合には、空燃比センサ３１のリッチ側の出力とリーン側の出力との双方が正常範囲内にないときに空燃比センサ３１が異常であると判定すればよい。
【０１２０】
・第３実施形態及び第４実施形態では、第２目標空燃比Ａｆ２＊を基準リッチ空燃比から基準リーン空燃比に変化させたときの空燃比センサ３１の出力の応答時間と、第２目標空燃比Ａｆ２＊を基準リーン空燃比から基準リッチ空燃比に変化させたときの空燃比センサ３１の出力の応答時間とが共に正常範囲内にあるときに、空燃比センサ３１が正常であると判定した。こうした構成に代えて、第２目標空燃比Ａｆ２＊を基準リッチ空燃比から基準リーン空燃比に変化させたときの空燃比センサ３１の出力の応答時間と、第２目標空燃比Ａｆ２＊を基準リーン空燃比から基準リッチ空燃比に変化させたときの空燃比センサ３１の出力の応答時間とのいずれか一方が正常範囲内にあるときに空燃比センサ３１が正常であると判定してもよい。この場合には、双方の応答時間が正常範囲内にないときに空燃比センサ３１が異常であると判定すればよい。
【０１２１】
・異常診断処理では、第２目標空燃比Ａｆ２＊を理論空燃比よりもリッチ側に設定した状態とリーン側に設定した状態とを繰り返すようにしていたが、必ずしも繰り返す必要はない。例えば、第２目標空燃比Ａｆ２＊を理論空燃比よりもリッチ側に設定した状態とリーン側に設定した状態とを１回ずつ生じさせることで異常診断を行うことは可能である。
【０１２２】
・異常診断処理において、最初に第２目標空燃比Ａｆ２＊を理論空燃比よりもリッチ側に設定し、その後に第２目標空燃比Ａｆ２＊を理論空燃比よりもリーン側に設定していたが、これらの順番は適宜変更が可能である。すなわち、異常診断処理において、最初に第２目標空燃比Ａｆ２＊を理論空燃比よりもリーン側に設定し、その後に第２目標空燃比Ａｆ２＊を理論空燃比よりもリッチ側に設定してもよい。
【０１２３】
・理論空燃比から基準リッチ空燃比までのリッチ側ずれ量と、理論空燃比から基準リーン空燃比までのリーン側ずれ量とが等しくなるように、基準リッチ空燃比及び基準リーン空燃比を設定したが、これらのずれ量が異なっていてもよい。
【０１２４】
・異常診断処理において、制御装置２０が異常判定を行った場合、その異常を報知するようにしていた。こうした構成は省略してもよい。この場合には、例えば、制御装置２０が異常判定を行ったときには、そのことを制御装置２０に記憶させる。そして、メンテナンス時などに制御装置２０にアクセスし、空燃比センサ３１の異常を検出すればよい。
【０１２５】
・異常診断処理において、正常判定または異常判定した後に、燃料噴射量をフィードフォーワード制御によって設定する態様から、フィードバック制御によって設定する態様に切り換えるようにしていた。こうした構成は変更が可能である。例えば、異常診断処理において正常判定した後にはフィードバック制御によって設定する態様に切り換えるとともに、異常診断処理において異常判定した後にはフィードフォーワード制御のままとすることも可能である。また、異常診断処理において、正常判定または異常判定した後、燃料噴射量をフィードバック制御によって設定する態様に切り換えずに、フィードフォーワード制御のままとしてもよい。
【０１２６】
・異常診断処理において、フィードフォーワード制御によって燃料噴射量を制御していたが、フィードバック制御によって燃料噴射量を制御することも可能である。この場合には、第１目標空燃比Ａｆ１＊を理論空燃比よりもリッチ側とリーン側とに変化させたときの空燃比センサ３１の出力に基づいて該空燃比センサ３１の異常診断を行えばよい。なお、こうした構成であっても、フィードバックゲインによっては、ディザ制御処理が実行されているときと、ディザ制御処理が実行されていないときとにおける空燃比センサ３１の出力にずれが生じることがある。そのため、上記各実施形態と同様に、ディザ制御処理が実行されているときには、ディザ制御処理が実行されているときと、ディザ制御処理が実行されていないときとにおける空燃比センサ３１の出力のずれを考慮して、空燃比センサ３１の異常診断を行えばよい。
【０１２７】
・異常診断処理の実行前後において、検出空燃比Ａｆを理論空燃比に制御する例を説明したが、検出空燃比Ａｆを理論空燃比に制御しなくてもよい。例えば、異常診断処理の実行前後において、検出空燃比Ａｆが理論空燃比よりもリッチ側になるように制御してもよい。また、異常診断処理の実行前において、検出空燃比Ａｆが理論空燃比よりもリーン側になるように制御し、異常診断処理の実行後において、検出空燃比Ａｆが理論空燃比よりもリッチ側になるように制御してもよい。
【０１２８】
・燃料噴射弁を複数の気筒毎に１つずつ設けたが、燃料噴射部の配置はこれに限らない。例えば、燃料噴射弁を各気筒に２つ以上設けてもよい。また、ディザ制御処理が実行可能であれば、燃料噴射弁を気筒毎に設けるのではなく、吸気通路１２に設けることも可能である。
【０１２９】
・内燃機関１０における気筒数は４つに限らない。すなわち、気筒数が２つ以上の内燃機関に適用される空燃燃比センサの異常診断装置であれば、上述した各実施形態と同様の構成を適用することができる。
【符号の説明】
【０１３０】
１０…内燃機関、１１…機関本体、１２…吸気通路、１３…燃料噴射弁、１４…点火プラグ、１５…排気通路、１６…三元触媒、２０…制御装置、３１…空燃比センサ、３２…クランク角センサ、３３…エアフローメータ。
【図１】
2019031945.tif 000003
【図２】
2019031945.tif 000004
【図３】
2019031945.tif 000005
【図４】
2019031945.tif 000006
【図５】
2019031945.tif 000007
【図６】
2019031945.tif 000008
【図７】
2019031945.tif 000009
【図８】
2019031945.tif 000010
【図９】
2019031945.tif 000011
【図１０】
2019031945.tif 000012
【図１１】
2019031945.tif 000013
【図１２】
2019031945.tif 000014
【図１３】
2019031945.tif 000015
【図１４】
2019031945.tif 000016
【図１５】
2019031945.tif 000017
【図１６】
2019031945.tif 000018
【図１７】
2019031945.tif 000019