(57)【特許請求の範囲】
【請求項１】
内燃機関の負荷に応じて少なくとも各気筒の吸気弁の作用角を可変制御する吸気弁可変制御装置を備えた内燃機関の異常診断装置において、
各気筒の空燃比を推定する気筒別空燃比推定手段と、
前記内燃機関の負荷が所定値より大きいとき、前記気筒別空燃比推定手段により求められた各気筒の空燃比推定値の所定の基準値からのズレ量に基づいて、各気筒の燃料系の異常の有無を診断する異常診断手段と、
前記異常診断手段により燃料系が正常と診断されなかった気筒について、前記空燃比推定値を前記基準値に近づけるよう燃料噴射量の補正を行う補正手段と、
を備え、
前記異常診断手段は、全気筒の燃料系を正常と診断した後又は前記補正手段による補正が行われた後、前記内燃機関の負荷が所定値より小さいときに、前記空燃比推定値の前記基準値からのズレ量に基づいて、各気筒の空気系の異常の有無を診断し、
前記吸気弁可変制御装置は、前記異常診断手段により空気系が正常と診断されなかった気筒について、前記空燃比推定値を前記基準値に近づけるよう作用角を所定時間補正制御し、
前記異常診断手段は、当該気筒について、前記補正制御後に前記空燃比推定値が前記基準値に対し所定値以内となるよう近づかなかったとき、前記吸気弁可変制御装置の異常と診断し、
当該気筒について、前記補正制御後に前記空燃比推定値が前記基準値に対し所定値以内となるよう近づいたとき、前記吸気弁可変制御装置は当該作用角の補正状態を維持する
ことを特徴とする内燃機関の異常診断装置。
【請求項２】
前記異常診断手段は、前記空燃比推定値と前記基準値との差又は比に基づいて、各気筒の燃料系の異常の有無を診断する
ことを特徴とする請求項１記載の内燃機関の異常診断装置。
【請求項３】
前記異常診断手段は、前記内燃機関の負荷が所定値より大きいときであって且つ前記作用角が所定値より大きいとき、各気筒の燃料系の異常の有無を診断する
ことを特徴とする請求項１又は２に記載の内燃機関の異常診断装置。
【請求項４】
前記異常診断手段は、前記空燃比推定値と前記基準値との差又は比に基づいて、各気筒の空気系の異常の有無を診断する
ことを特徴とする請求項１〜３のいずれか一項に記載の内燃機関の異常診断装置。
【請求項５】
前記異常診断手段は、前記内燃機関の負荷が所定値より小さいときであって且つ前記作用角が所定値より小さいとき、各気筒の空気系の異常の有無を診断する
ことを特徴とする請求項４に記載の内燃機関の異常診断装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、内燃機関の異常診断装置に関する。
【背景技術】
【０００２】
近年、車両等に搭載される内燃機関においては、各気筒の吸気弁の作用角（開弁から閉弁までのクランク角）を内燃機関の負荷等に応じて連続的に可変制御する吸気弁可変制御装置を備えたものがある。こうした内燃機関では、吸気弁の作用角を変化させることで、燃焼室内に吸入される空気量を全運転領域に亘って変化させることができる。よってスロットル開度を通常より開いたり、或いは省略することもでき、これによってポンピングロスを減少し、同一の出力をより少ない空気量及び燃料量で得られ、燃費等を向上することができる。
【０００３】
一方、車両等に搭載される内燃機関においては、各気筒の排気ガスが集合する排気集合部に設置した空燃比センサの出力に基づいて各気筒の空燃比（気筒別空燃比）を推定するものがある。これら吸気弁作用角制御と気筒別空燃比推定とを同時に実行可能な内燃機関においては、ある気筒の空燃比が異常であることを検出できたとしても、その原因ないし異常箇所の特定が一般的に困難である。その理由は、空燃比異常が主に燃料系の異常（インジェクタの異常等）と空気系の異常（吸気弁可変制御装置の異常等）との両方に起因し得るからである。
【０００４】
特許文献１に記載の装置では、各気筒の空燃比を推定し、各気筒の空燃比推定値と可変バルブリフト装置の制御状態とに基づいて可変バルブリフト装置の異常の有無を診断するようにしている。各気筒の空燃比推定値と可変バルブリフト装置の制御状態とを組み合わせて評価することで、可変バルブリフト装置の異常を他の燃料系等の異常と区別して診断できる、としている。
【０００５】
【特許文献１】特開２００５−２１４０７３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１に記載の装置では、各気筒の空燃比推定値に基づいて可変バルブリフト装置の異常を診断することはできるものの、燃料系の異常を診断することはできない。また、燃料系の異常と空気系の異常との両者を区別して診断することはできない。
【０００７】
そこで本発明の目的は、各気筒の空燃比推定値に基づいて燃料系の異常を診断できるようにすることであり、また、本発明の他の目的は、各気筒の空燃比推定値に基づいて燃料系の異常と空気系の異常との両者を区別して診断することができるようにすることである。
【課題を解決するための手段】
【０００８】
本発明の一形態によれば、内燃機関の負荷に応じて少なくとも各気筒の吸気弁の作用角を可変制御する吸気弁可変制御装置を備えた内燃機関の異常診断装置において、
各気筒の空燃比を推定する気筒別空燃比推定手段と、
前記内燃機関の負荷が所定値より大きいとき、前記気筒別空燃比推定手段により求められた各気筒の空燃比推定値の所定の基準値からのズレ量に基づいて、各気筒の燃料系の異常の有無を診断する異常診断手段と
を備えたことを特徴とする内燃機関の異常診断装置が提供される。
【０００９】
これによれば、各気筒の空燃比推定値、特に各気筒の空燃比推定値の所定の基準値からのズレ量に基づいて、各気筒の燃料系の異常を診断できる。内燃機関の負荷が所定値より大きいとき、好ましくは高負荷であるときには、吸入空気量の絶対量が多くなるため、空気系の異常が吸入空気量に及ぼす影響が小さくなる。そこでこの点に着目して、内燃機関の負荷が所定値より大きいときに各気筒の燃料系の異常の有無を診断する。これにより空気系異常の影響を排除し、燃料系異常を空気系異常と区別して確実に診断することができる。
【００１０】
好ましくは、前記異常診断手段は、前記空燃比推定値と前記基準値との差又は比に基づいて、各気筒の燃料系の異常の有無を診断する。当該差又は比は、各気筒の空燃比推定値の基準値からのズレ量を表す指標値として好適である。
【００１１】
好ましくは、前記異常診断手段は、前記内燃機関の負荷が所定値より大きいときであって且つ前記作用角が所定値より大きいとき、各気筒の燃料系の異常の有無を診断する。作用角が所定値より大きいという条件を付加することにより、空気系異常の影響が小さくなる条件をより一層担保できる。
【００１２】
好ましくは、前記異常診断装置は、前記異常診断手段により燃料系が正常と診断されなかった気筒について、前記空燃比推定値を前記基準値に近づけるよう燃料噴射量の補正を行う補正手段を備え、前記異常診断手段は、全気筒の燃料系を正常と診断した後又は前記補正手段による補正が行われた後、前記内燃機関の負荷が所定値より小さいときに、前記空燃比推定値の前記基準値からのズレ量に基づいて、各気筒の空気系の異常の有無を診断する。
【００１３】
これによれば、燃料系異常の影響を排除した上で、空気系異常の影響が大きい条件下で空気系異常を診断し、空気系の異常を燃料系異常と区別して確実に診断することができる。こうして各気筒の空燃比推定値に基づいて燃料系の異常と空気系の異常との両者を区別して診断することができるようになる。
【００１４】
好ましくは、前記異常診断手段は、前記空燃比推定値と前記基準値との差又は比に基づいて、各気筒の空気系の異常の有無を診断する。
【００１５】
好ましくは、前記異常診断手段は、前記内燃機関の負荷が所定値より小さいときであって且つ前記作用角が所定値より小さいとき、各気筒の空気系の異常の有無を診断する。作用角が所定値より小さいという条件を付加することにより、空気系異常の影響が大きくなる条件をより一層担保できる。
【００１６】
好ましくは、前記吸気弁可変制御装置は、前記異常診断手段により空気系が正常と診断されなかった気筒について、前記空燃比推定値を前記基準値に近づけるよう作用角を所定時間補正制御し、前記異常診断手段は、当該気筒について、前記補正制御後に前記空燃比推定値が前記基準値に対し所定値以内となるよう近づかなかったとき、前記吸気弁可変制御装置の異常と診断する。
【００１７】
好ましくは、当該気筒について、前記補正制御後に前記空燃比推定値が前記基準値に対し所定値以内となるよう近づいたとき、前記吸気弁可変制御装置は当該作用角の補正状態を維持する。
【発明の効果】
【００１８】
本発明によれば、各気筒の空燃比推定値に基づいて燃料系の異常を診断することができ、また、各気筒の空燃比推定値に基づいて燃料系の異常と空気系の異常との両者を区別して診断することができるという、優れた効果が発揮される。
【発明を実施するための最良の形態】
【００１９】
以下、本発明を実施するための最良の形態を添付図面を参照しつつ説明する。
【００２０】
図１に示すように、車両には、内燃機関として筒内噴射式の火花点火式内燃機関（ガソリンエンジン）１１が搭載されている。エンジン１１は、ピストン１３が往復動可能に収容された複数の気筒（シリンダ）１２を有している。各ピストン１３は、コネクティングロッド１５を介し、エンジン１１の出力軸であるクランクシャフト１６に連結されている。各ピストン１３の往復運動は、コネクティングロッド１５によって回転運動に変換された後、クランクシャフト１６に伝達される。
【００２１】
気筒１２毎の燃焼室１７には、スロットルバルブ１８、サージタンク１９、吸気マニホルド２１等を有する吸気通路２２が接続されている。エンジン１１の外部の空気は、吸気通路２２の各部を順に通過して燃焼室１７に吸入される。スロットルバルブ１８は吸気通路２２に回動可能に設けられており、電動モータ等からなるアクチュエータ２３に駆動連結されている。アクチュエータ２３は、運転者によるアクセルペダル２４の踏込み操作等に応じて作動し、スロットルバルブ１８を回動させる。吸気通路２２を流れる空気の量（吸入空気量）は、スロットルバルブ１８の回動角度（スロットル開度）に応じて変化する。
【００２２】
また、燃焼室１７には、排気マニホルド２５、触媒６０等を有する排気通路２６が接続されている。燃焼室１７で生じた排気ガスは、排気通路２６の各部を順に通ってエンジン１１の外部へ排出される。なお図示される触媒６０の下流側に別の触媒も設けられている。
【００２３】
エンジン１１には、吸気通路２２の燃焼室１７との接続部分を開閉する吸気弁２７と、排気通路２６の燃焼室１７との接続部分を開閉する排気弁２８とが気筒１２毎に設けられている。これらの吸・排気弁２７，２８は、バルブスプリング（図示略）によって、吸・排気通路２２，２６と燃焼室１７との連通を遮断する方向（閉弁方向、図１の略上方）へ常に付勢されている。吸気弁２７の略上方には、吸気カム３１Ａを有する吸気カムシャフト３１が設けられ、また排気弁２８の略上方には、排気カム３２Ａを有する排気カムシャフト３２が設けられている。これらの吸・排気カムシャフト３１，３２は、クランクシャフト１６の回転が伝達されて回転する。この回転に伴い吸・排気カムシャフト３１，３２は、上記バルブスプリングに抗して吸・排気弁２７，２８を押下げる。この押下げにより、吸・排気通路２２，２６が燃焼室１７に連通された状態（開弁状態）になる。このようにして、吸・排気カムシャフト３１，３２の回転に伴い吸・排気弁２７，２８が周期的に開弁及び閉弁する。
【００２４】
エンジン１１には、電磁式のインジェクタ（燃料噴射弁）３３が気筒１２毎に取付けられている。各インジェクタ３３は開閉制御されることにより、対応する燃焼室１７に高圧燃料を直接噴射供給する。インジェクタ３３から噴射された燃料は、燃焼室１７内の空気と混ざり合って混合気となる。
【００２５】
エンジン１１には、点火プラグ３４が気筒１２毎に取付けられている。各点火プラグ３４は、イグナイタ３５からの点火信号に基づいて作動する。点火プラグ３４には、点火コイル３６から出力される高電圧が印加される。そして、前記混合気は点火プラグ３４の火花放電によって着火され、燃焼する。このときに生じた高温高圧の燃焼ガスによりピストン１３が往復動され、クランクシャフト１６が回転されてエンジン１１の駆動力（出力トルク）が得られる。
【００２６】
この駆動力は、運転者によるアクセルペダル２４の踏込み操作に応じて調整される。すなわち、アクセルペダル２４の踏込み操作に応じ、スロットルバルブ１８がアクチュエータ２３によって駆動されてスロットル開度が調節され、燃焼室１７への吸入空気量が変化する。この変化に対応してインジェクタ３３からの燃料噴射量が制御され、燃焼室１７に充填される混合気の量が変化してエンジン１１の出力が調整される。
【００２７】
ところで、上記エンジン１１は、クランクシャフト１６が２回転（７２０°ＣＡ回転）して、ピストン１３が２往復する間に、吸気行程、圧縮行程、膨張行程及び排気行程という一連の４行程（サイクル）を行うようにした、いわゆる４サイクルエンジンである。吸気行程及び膨張行程はピストン１３の下降時に行われ、圧縮行程及び排気行程はピストン１３の上昇時に行われる。これらの行程により、各気筒１２内の状態は大まかには次のように変化する。
【００２８】
吸気行程では、排気弁２８が閉弁されるとともに吸気弁２７が開弁され、ピストン１３の下降に伴う燃焼室１７内の圧力の低下によって燃焼室１７内に空気が吸入される。圧縮行程では、排気弁２８に加えて吸気弁２７が閉弁される。このため、ピストン１３の上昇に伴って燃焼室１７内の圧力が上昇する。膨張行程では、吸・排気弁２７，２８がともに閉弁された状態で点火プラグ３４による点火が行われ、上記吸入空気とインジェクタ３３から噴射された燃料との混合気が着火、燃焼される。この燃焼に伴う下向きの力によりピストン１３が押下げられ、コネクティングロッド１５を介してクランクシャフト１６に回転力が付与される。排気行程では排気弁２８が開弁される。このため、燃焼室１７内で発生した排気がピストン１３の上昇に伴い排気通路２６へ排出される。
【００２９】
エンジン１１には、吸気弁２７のバルブ特性を可変とする可変動弁機構として、バルブタイミング可変機構４１及び作用角可変機構４２が設けられている。バルブタイミング可変機構４１は、クランクシャフト１６に対する吸気カムシャフト３１の相対回転位相を変更することにより、図２において実線及び二点鎖線で示すように、吸気弁２７の作用角（開弁から閉弁までのクランク角）或いは開弁期間を一定に保持した状態で、同吸気弁２７の開弁時期及び閉弁時期をともに進角又は遅角させる機構である。
【００３０】
また、作用角可変機構４２は、図３に示すように、吸気弁２７の作用角を連続的に可変とする機構である。本実施形態では作用角可変機構４２により吸気弁２７の最大リフト量も連続的に変更される。作用角及び最大リフト量は、作用角可変機構４２によって互いに同期して変化させられ、作用角が小さくなるほど最大リフト量も小さくなり、作用角が大きくなるほど最大リフト量も大きくなる。
【００３１】
作用角可変機構４２としては、例えば図１に示すように、気筒１２毎に設けられた仲介駆動機構４３と、全気筒の仲介駆動機構４３に共通のコントロールシャフト４４及びアクチュエータ４６とを備えたもの（特開２００１−２６３０１５号公報参照）を用いることができる。アクチュエータ４６は、例えば電動モータと、その電動モータの回転を直線運動に変換してコントロールシャフト４４に伝達する動力伝達機構とを備える。そして、通電により電動モータが回転すると、それに伴い動力伝達機構が作動してコントロールシャフト４４が軸方向へ変位させられる。
【００３２】
各仲介駆動機構４３は、吸気カムシャフト３１と吸気弁２７との間に設けられており、入力アーム４７及び出力アーム４８を備える。コントロールシャフト４４と入・出力アーム４７，４８との間には、動力伝達用のスライダ４９が回動可能かつ軸方向移動可能に介在されている。スライダ４９及び入・出力アーム４７，４８は、ヘリカルスプラインによって相互に噛合わされている。
【００３３】
そして、吸気カムシャフト３１が回転すると、吸気カム３１Ａによって入力アーム４７がコントロールシャフト４４を支点として上下に揺動する。この揺動はスライダ４９を介して出力アーム４８に伝達され、同出力アーム４８が上下に揺動する。この揺動する出力アーム４８によって吸気弁２７が駆動されて開閉する。
【００３４】
また、アクチュエータ４６によってコントロールシャフト４４が軸方向へ移動されることで、スライダ４９が同方向へ変位しながら回転し、入・出力アーム４７，４８の揺動方向について、入力アーム４７と出力アーム４８との相対位相差が変更される。この変更に伴い各吸気弁２７のバルブ特性（作用角及び最大リフト量）が連続的且つ一律に変化する。相対位相差が小さいときには作用角及び最大リフト量がともに小さく、気筒１２当りの吸入空気量が少なくなる。相対位相差が増大すると、作用角及び最大リフト量がともに大きくなって同吸入空気量が多くなる。
【００３５】
さらに、車両には、各部の状態を検出するセンサが種々取付けられている。これらのセンサとしては、例えばクランク角センサ５１、回転角センサ５２、エアフロ−メータ５３、スロットル開度センサ５４、アクセル開度センサ５５等が用いられている。
【００３６】
クランク角センサ５１はクランクシャフト１６が一定角度回転する毎にパルス状の信号を発生する。この信号は、クランクシャフト１６の回転角度であるクランク角や、単位時間当りのクランクシャフト１６の回転数であるエンジン回転速度の算出等に用いられる。回転角センサ５２は、吸気弁２７のバルブ特性（作用角及び最大リフト量）を検出すべく、アクチュエータ４６における電動モータの回転角度を検出する。エアフロ−メータ５３は、吸気通路２２を流れる空気の量（吸入空気量）を検出し、スロットル開度センサ５４はスロットル開度を検出し、アクセル開度センサ５５は運転者によるアクセルペダル２４の踏込み量即ちアクセル開度を検出する。
【００３７】
触媒６０の上流側と下流側とにそれぞれ、排気中の酸素濃度に基づいて排気空燃比を検出する空燃比センサ、即ち触媒前空燃比センサ６１及び触媒後空燃比センサ６２が取り付けられている。触媒前空燃比センサ６１は、エンジン１１の各気筒の排気マニホルド２５が集合した後の排気集合部に取り付けられている。触媒前空燃比センサ６１は所謂広域空燃比センサからなり、比較的広範囲に亘る空燃比を連続的に検出可能で、排気空燃比に比例した値の信号を出力する。他方、触媒後空燃比センサ６２は所謂Ｏ2センサからなり、理論空燃比（ストイキ、例えばＡ／Ｆ＝１４．６）を境に出力値が急変する特性を持つ。
【００３８】
車両には、前記各種信号に基づいて、エンジン１１等の各部を制御する電子制御装置（以下、ＥＣＵという）１００が設けられている。ＥＣＵ１００はマイクロコンピュータを中心として構成されており、中央処理装置（ＣＰＵ）が、読出し専用メモリ（ＲＯＭ）に記憶されている制御プログラム、初期データ、制御マップ等に従って演算処理を行い、その演算結果に基づいて各種制御を実行する。ＣＰＵによる演算結果は、ランダムアクセスメモリ（ＲＡＭ）において一時的に記憶される。ＥＣＵ１００が行う制御としては、例えばエンジン１１の燃料噴射制御、点火時期制御、スロットル開度制御、吸気弁２７の作用角制御等が挙げられる。
【００３９】
触媒６０は、これに流入する排気ガスの空燃比Ａ／Ｆが理論空燃比近傍のときにＮＯｘ ，ＨＣおよびＣＯを高効率で同時に浄化するようになっている。よってこれに対応して、ＥＣＵ１００は、触媒６０に流入する排気ガスの空燃比を理論空燃比に一致させるように混合気の空燃比ないし燃料噴射量を制御する。具体的にはＥＣＵ１００は、エンジンの回転速度及び負荷といったエンジン１１の運転状態に基づき、混合気の空燃比を所定の空燃比目標値（具体的には理論空燃比）とするような基本噴射量をマップ（関数でもよい。以下同様。）から算出する。そして触媒前空燃比センサ６１により検出された実際の空燃比と空燃比目標値との偏差に基づいて空燃比フィードバック補正量を算出し、基本噴射量と空燃比フィードバック補正量とに基づき、偏差をゼロとするよう、混合気の空燃比ないし燃料噴射量をフィードバック制御する。なおこのような空燃比制御をメイン空燃比制御という。
【００４０】
またＥＣＵ１００は、触媒１１から流出した排気ガスの空燃比、即ち触媒後空燃比センサ６２により検出された空燃比が空燃比目標値に一致するように空燃比を制御する。このような空燃比制御をサブ空燃比制御という。メイン空燃比制御を実行していても、触媒前空燃比センサ６１の製品バラツキや劣化等により実際の中心空燃比が理論空燃比からずれる場合があるので、このずれを補正する目的でサブ空燃比制御が同時に行われる。メイン空燃比制御が極めて短い時間周期で実行されるのに対し、サブ空燃比制御は比較的長い時間周期で実行される。
【００４１】
なお、空燃比目標値を理論空燃比以外の値に設定して空燃比制御することもできる。例えば、燃費向上のため、空燃比目標値を理論空燃比よりリーン側の値に設定して空燃比制御（所謂リーンバーン制御）することもできる。いずれにせよ、空燃比目標値が、空燃比を制御する際の空燃比の基準値となる。
【００４２】
スロットル開度制御では、エンジン１１の負荷（運転者からの要求負荷）を表すアクセル開度、即ちアクセル開度センサ５５で検出されたアクセル開度が大となるほど、スロットルバルブ１８が開き側となるように、アクチュエータ２３がＥＣＵ１００により駆動制御される。
【００４３】
一方、吸気弁２７の作用角制御では、エンジン１１の運転状態に関するパラメータ、特にエンジンの回転速度及び負荷に基づいて、目標作用角が算出される。そして回転角センサ５２によって検出された回転角に基づき、その回転角に対応する吸気弁２７の実作用角が算出される。この実作用角が上記目標作用角となるようにアクチュエータ４６に対する通電がＥＣＵ１００により制御される。特に、エンジン負荷が大となるほどエンジン１１の吸入空気量を増大すべく吸気弁２７の作用角が大きくされ、エンジン負荷が小さくなるほどエンジン１１の吸入空気量を減少すべく吸気弁２７の作用角が小さくされる。スロットル開度と吸気弁作用角とは協調制御されるが、吸気弁作用角の増減により吸入空気量を増減できるため、特に低負荷時において、吸気弁作用角制御しない場合に比べ、スロットルバルブ１８が開き側に制御される。このためポンピングロスを減少し燃費増大等を図れる。
【００４４】
なお、この説明で理解されるように、作用角可変機構４２、回転角センサ５２及びＥＣＵ１００が、エンジン１１の負荷に応じて各気筒の吸気弁２７の作用角を可変制御する吸気弁可変制御装置を構成する。かかる吸気弁可変制御装置を設けると、吸気弁作用角の制御のみで吸入空気量を全域制御可能とすることができるため、スロットルバルブ１８を省略することも可能である。本実施形態の吸気弁可変制御装置はバルブタイミング可変機構４１も含む。吸気弁可変制御装置は本実施形態のものの他、例えば電磁駆動弁を用いて各気筒の吸気弁を個別に駆動制御するものや、最大リフトを一定としたまま作用角を可変とするものなど、任意のものを採用することができる。
【００４５】
さて、本実施形態では、前述の空燃比制御（メイン空燃比制御及びサブ空燃比制御）を全気筒に対し一律に行う。つまり１エンジンサイクル（７２０°ＣＡ）毎に、全気筒に共通の基本噴射量と空燃比フィードバック補正量を算出し、これらに基づいて算出した燃料噴射量を各気筒から噴射するようにしている。
【００４６】
こうすると基準値としての空燃比目標値に対し、各気筒の空燃比が多少なりともバラつくが、本実施形態ではＥＣＵ１００により、各気筒の空燃比（気筒別空燃比）を個別に推定するようにしている。この気筒別空燃比の推定は、触媒前空燃比センサ６１の検出値に基づいて行われ、特許文献１に開示されているような気筒別空燃比推定モデルを用いて行われる。
【００４７】
触媒前空燃比センサ６１が設置される排気集合部のガス交換に着目し、触媒前空燃比センサ６１の検出値を、排気集合部における各気筒の空燃比の履歴と空燃比センサ６１の検出値の履歴とにそれぞれ所定の重みを乗じて加算したものとしてモデル化し、該モデルを用いて各気筒の空燃比を推定する。尚、オブザーバとしてはカルマンフィルタを用いる。
【００４８】
排気集合部におけるガス交換のモデルを次の（１）式にて近似する。
【００４９】
【数１】
0004936140.tif 000002
【００５０】
ここで、ｙは触媒前空燃比センサ６１の検出値、ｕは排気集合部に流入するガスの空燃比、ｋ１〜ｋ４は所定の定数である。排気系では、排気集合部におけるガス流入及び混合の一次遅れ要素と、空燃比センサ６１の応答遅れによる一次遅れ要素とが存在する。そこで、上記（１）式では、これらの一次遅れ要素を考慮して過去２回分の履歴を参照することとしている。
【００５１】
上記（１）式を状態空間モデルに変換すると、次の（２ａ）、（２ｂ）式が導き出される。
【００５２】
【数２】
0004936140.tif 000003
【００５３】
ここで、Ａ，Ｂ，Ｃ，Ｄはモデルのパラメータ、Ｙは空燃比センサ６１の検出値、Ｘは状態変数としての気筒別空燃比、Ｗはノイズである。
【００５４】
更に、上記（２ａ）、（２ｂ）式によりカルマンフィルタを設計すると、次の（３）式が得られる。
【００５５】
【数３】
0004936140.tif 000004
【００５６】
ここで左辺の項（便宜上「Ｘハット（ｋ＋１｜ｋ）」などと称す）は各気筒の空燃比の推定値、Ｋはカルマンゲインである。左辺の項の意味は、時間（ｋ）の推定値により時間（ｋ＋１）の推定値を求めることを表す。
【００５７】
以上のようにして、気筒別空燃比推定モデルをカルマンフィルタ型オブザーバにて構成することにより、各気筒の燃焼サイクル毎の空燃比を順次推定できる。
【００５８】
さて、本実施形態の如く気筒別空燃比を推定可能な場合、各気筒の空燃比を所定の空燃比目標値（例えば理論空燃比）に一律に制御しているにも拘わらず、その空燃比目標値とはかけ離れた異常な空燃比推定値を示す気筒があると、当該気筒に燃料系の異常と空気系の異常との少なくともいずれか一方が発生している可能性があることが分かる。製造上の理由等による各気筒のバラツキ、例えば各気筒のインジェクタ３３や作用角可変機構４２の仲介駆動機構４３のバラツキにより、各気筒の空燃比が多少バラつくことは避けられないが、空燃比目標値からあまりにかけ離れた気筒別空燃比を示す気筒があると、当該気筒には燃料系か空気系の異常が発生しているとみなせる。ここで燃料系の異常とは、対象気筒に対する燃料供給量が予定量よりも過剰又は過少となる異常をいい、詰まりや開弁若しくは閉弁不良といったインジェクタ３３の異常の他、燃料供給装置の異常、ブローバイガスや燃料蒸気の分配不良等を含む。また、空気系の異常とは、対象気筒に対する吸入空気量が予定量よりも過剰又は過少となる異常をいい、吸気弁２７の開閉タイミング及び作用角のズレといった吸気弁可変制御装置の異常の他、タペットクリアランスの異常、デポジット付着による異常等を含む。
【００５９】
しかしながら、当該気筒において、燃料系の異常と空気系の異常とのいずれが発生しているかを特定するのは一般的には困難である。そこで本実施形態では、以下の手法により、まず各気筒の燃料系の異常の有無を診断し、その後、全気筒について燃料系の異常が無い状態（即ち燃料系が正常である状態）を保証した上で、空気系の異常の有無を診断し、燃料系の異常と空気系の異常とを区別して診断するようにしている。
【００６０】
本実施形態のような吸気弁作用角可変のエンジンの場合、空気系の異常は、主に実際の作用角が目標値からズレる作用角ズレ、ひいては作用角可変機構４２の異常によるところが大きい。仲介駆動機構４３が気筒毎に設けられているので、空気系異常は気筒毎に起こり得る。しかし、この作用角ズレが実際の吸入空気量に与える影響は、作用角が大きいほど、つまりエンジンの負荷が高いほど、小さくなる。
【００６１】
図４は、一定量の作用角ズレがある場合に、エンジン負荷の変化に伴って実際の吸入空気量がどれだけ目標値からズレるかを示すグラフである。プラス側の線図ａは、ある１気筒の実際の作用角が、エンジン負荷に対応した目標値に対し一定量（例えば５°ＣＡ）多い場合を示し、マイナス側の線図ｂは逆に一定量だけ少ない場合を示す。例えば線図ａについて言えば、エンジン負荷が低いとき即ち作用角が小さいときには、そのエンジン負荷に対応した目標値に対し実際の吸入空気量が大きくプラス側にズレているが、エンジン負荷即ち作用角が大きくなるにつれズレ量は小さくなり、エンジン負荷が高いとき即ち作用角が大きいときにはズレ量は極めて小さくなる。線図ｂについても正負の逆はあるが同じことが言え、エンジン負荷が低いとき即ち作用角が小さいときには実際の吸入空気量が目標値に対し大きくマイナス側にズレているが、エンジン負荷が高いとき即ち作用角が大きいときにはズレ量は極めて小さくなる。
【００６２】
図５はかかる傾向がある理由を説明するための図である。図示するバルブリフト線図の内側の面積は実際の吸入空気量に相関する値である。例えば高負荷・大作用角の場合、作用角が目標値（実線）αｔに対し一定量Δαだけズレても、このズレが面積、即ち実際の吸入空気量に及ぼす影響は小さい。元々の面積即ち吸入空気量が大だからである。これに対し、低負荷・小作用角の場合だと、作用角が目標値（実線）αｔに対し一定量Δαズレると、このズレが面積即ち実際の吸入空気量に及ぼす影響は大きい。元々の面積即ち吸入空気量が小だからである。なお、タペットクリアランスのズレやデポジット付着による空気量のズレも、高負荷・大作用角の方が低負荷・小作用角の場合に比べ小さいことが理解されよう。
【００６３】
そこで本実施形態では、高負荷・大作用角のときに作用角ズレが実際の吸入空気量に及ぼす影響が小さいという特性に着目し、高負荷・大作用角のときに各気筒の燃料系の異常の有無を診断する。つまり高負荷・大作用角のときには主に作用角ズレといった空気系異常があったとしても、その影響が小さい。そこでこのときに空燃比推定値が空燃比目標値から大きくズレた気筒があれば、当該気筒の燃料系異常であると特定できるのである。なお、こうした燃料系異常の診断を終えた後、燃料系の正常状態を保証した上で、低負荷・小作用角のときに空気系異常の有無を診断する。燃料系の正常状態が保証されれば、低負荷・小作用角のときに現れた空燃比推定値のズレは、空気系異常に起因するものとみなせるからである。
【００６４】
以下、具体的な異常診断処理の例を図６〜図８を参照しつつ説明する。
【００６５】
まず図６に示す第１の例について説明する。かかる診断処理はＥＣＵ１００によって所定周期（例えば１６ｍｓｅｃ）毎に繰り返し実行される。この第１の例では、最終的に燃料系の異常の有無を気筒別に診断することになる。
【００６６】
まずステップＳ１０１では、実際に検出されたエンジンの回転速度ＮＥと負荷ＫＬの値がＥＣＵ１００に取得される。次にステップＳ１０２において、取得されたエンジン負荷ＫＬが所定値Ｘより大きいか否かが判断される。所定値Ｘは、中負荷或いは高負荷（好ましくは高負荷）とそれより低い負荷との境界をなすような大きさの値が設定されている。
【００６７】
エンジン負荷ＫＬが所定値Ｘ以下の場合、ルーチンが終了される。他方、エンジン負荷ＫＬが所定値Ｘより大きい場合、即ちエンジン負荷ＫＬが中負荷或いは高負荷の場合、ステップＳ１０３にて、触媒前空燃比センサ６１の検出値に基づいて各気筒の空燃比推定値が算出される。＃ｉ気筒（ｉは気筒番号を表し、例えば４気筒エンジンの場合だとｉ＝１，２，３，４）の空燃比推定値をＡ／Ｆｅ（ｉ）で表す。
【００６８】
次いでステップＳ１０４では、エンジンの回転速度ＮＥ及び負荷ＫＬの値に基づき、ＥＣＵ１００に予め記憶されたマップから空燃比目標値Ａ／Ｆｔの値が取得される。本実施形態では全気筒の空燃比目標値Ａ／Ｆｔ（即ち空燃比の基準値）が等しく、例えば理論空燃比とされるが、各気筒毎に空燃比目標値Ａ／Ｆｔを異ならせてもよい。
【００６９】
この後ステップＳ１０５において、各気筒につき、空燃比推定値Ａ／Ｆｅ（ｉ）と空燃比目標値Ａ／Ｆｔの差である気筒別空燃比差ΔＡ／Ｆ（ｉ）＝Ａ／Ｆｅ（ｉ）−Ａ／Ｆｔが算出される。この気筒別空燃比差ΔＡ／Ｆ（ｉ）は、空燃比推定値Ａ／Ｆｅ（ｉ）の空燃比目標値Ａ／Ｆｔからのズレ量を表す指標値であるが、かかる指標値としては、両者の差の代わりに比を用いてもよい。
【００７０】
次に、ステップＳ１０６において、各気筒の気筒別空燃比差ΔＡ／Ｆ（ｉ）が所定の異常判定値Ａと比較される。異常判定値Ａは、プラスの値であり、空燃比推定値Ａ／Ｆｅ（ｉ）のズレ量を異常とみなすのに十分な比較的大きな値とされる。
【００７１】
気筒別空燃比差ΔＡ／Ｆ（ｉ）が異常判定値Ａ以上となっている気筒がある場合、ステップＳ１０７において当該気筒につき燃料系の異常、特に気筒別空燃比がリーン側に大きくずれる燃料過少異常が発生していると判定され、ルーチンが終了される。
【００７２】
他方、ステップＳ１０６において気筒別空燃比差ΔＡ／Ｆ（ｉ）が異常判定値Ａ以上となっている気筒がないと判断された場合、ステップＳ１０８に進んで、各気筒の気筒別空燃比差ΔＡ／Ｆ（ｉ）がマイナス側の異常判定値−Ａと比較される。なおここではプラス側の異常判定値Ａとマイナス側の異常判定値−Ａとをゼロに対し対称の、同じ絶対値を有する値としたが、非対称、異なる絶対値を有する値としてもよい。
【００７３】
気筒別空燃比差ΔＡ／Ｆ（ｉ）が異常判定値−Ａ以下となっている気筒がある場合、ステップＳ１０９において当該気筒につき燃料系の異常、特に気筒別空燃比がリッチ側に大きくずれる燃料過剰異常が発生していると判定され、ルーチンが終了される。
【００７４】
他方、ステップＳ１０８において気筒別空燃比差ΔＡ／Ｆ（ｉ）が異常判定値−Ａ以下となっている気筒がないと判断された場合、ステップＳ１１０に進んで、全気筒の燃料系が正常と判定され、ルーチンが終了される。
【００７５】
このように、エンジン負荷ＫＬが所定値Ｘより大きい中負荷或いは高負荷（好ましくは高負荷）という条件下で燃料系の異常の有無を診断するので、空気系異常の影響が小さいという条件下で燃料系異常を診断し、空気系異常と区別して燃料系の異常を確実に診断することができる。
【００７６】
次に、異常診断処理の第２の例を図７に基づき説明する。この第２の例は図６に示した第１の例と大略同様であり、燃料系異常を診断するものであるが、主に以下の点で相違している。
【００７７】
まず最初のステップＳ２０１Ａで、吸気弁作用角αが所定値Ｃより大きいか否かが判断される。所定値Ｃは、空気系異常の影響を小さくし得るような比較的大きな値のうちの最小値として設定される。作用角制御の特性上、高負荷であれば大作用角となり、高負荷であることを担保すれば自ずと大作用角という条件も担保できるが、この第２の例では安全のため、作用角αが大きいか否かも別途単独で判定するようにしている。ここで用いる作用角の値は、エンジンの回転速度及び負荷に基づいて定まる目標作用角の値でもよいし、回転角センサ５２の検出値に基づく実作用角の値であってもよい。
【００７８】
作用角αが所定値Ｃ以下の場合、ルーチンが終了される。他方、作用角αが所定値Ｃより大きい場合、ステップＳ２０１において前記ステップＳ１０１と同様にエンジンの回転速度ＮＥと負荷ＫＬの値が取得される。
【００７９】
以降、ステップＳ２０２〜Ｓ２０９は前記ステップＳ１０２〜Ｓ１０９と同様である。ステップＳ２０２により、エンジン負荷ＫＬが所定値Ｘより大きいという条件、即ち中負荷或いは高負荷であるという条件が担保される。
【００８０】
ステップＳ２０８で、気筒別空燃比差ΔＡ／Ｆ（ｉ）が異常判定値−Ａ以下となっている気筒がないと判断された場合、ステップＳ２１０において、各気筒の気筒別空燃比差ΔＡ／Ｆ（ｉ）が所定の正常判定値Ｂと比較される。この正常判定値Ｂは、プラスの値で且つ異常判定値Ａより小さい値であり、気筒別空燃比のズレ量の最大許容値に相当する値として設定されている。
【００８１】
気筒別空燃比差ΔＡ／Ｆ（ｉ）が正常判定値Ｂより大きい気筒がある場合、ステップＳ２１１において全気筒の燃料系の正常判定が保留される。即ちこの場合、当該気筒について異常とみなせる程大きくはないが、正常とみなすには大きすぎる気筒別空燃比のリーンずれが生じているので、全気筒の燃料系の正常判定が保留される。この結果、燃料系は正常とも異常とも判定されないことになる。
【００８２】
他方、気筒別空燃比差ΔＡ／Ｆ（ｉ）が正常判定値Ｂより大きい気筒がない場合、ステップＳ２１２に進んで、各気筒の気筒別空燃比差ΔＡ／Ｆ（ｉ）がマイナス側の正常判定値−Ｂと比較される。前記同様、ここではプラス側の正常判定値Ｂとマイナス側の正常判定値−Ｂとをゼロに対し対称の、同じ絶対値を有する値としたが、非対称、異なる絶対値を有する値としてもよい。
【００８３】
気筒別空燃比差ΔＡ／Ｆ（ｉ）がマイナス側の正常判定値−Ｂ未満となっている気筒がある場合、ステップＳ２１１に進んで全気筒についての燃料系の正常判定が保留される。他方、気筒別空燃比差ΔＡ／Ｆ（ｉ）がマイナス側の正常判定値−Ｂ未満となっている気筒がない場合、ステップＳ２１３に進んで、全気筒の燃料系が正常と判定され、ルーチンが終了される。
【００８４】
次に、異常診断処理の第３の例を図８に基づき説明する。この第３の例は、実質的に、図６に示した第１の例又は図７に示した第２の例により燃料系異常診断を終えた後に行われる処理である。この処理もＥＣＵ１００によって所定周期（例えば１６ｍｓｅｃ）毎に繰り返し実行される。この第３の例では、最終的に空気系の異常の有無を気筒別に診断することになる。
【００８５】
まず最初のステップＳ３０１では、前記第１又は第２の例により、全気筒の燃料系につき正常判定がなされたか否かが判断される。正常判定がなされた場合にはステップＳ３０３に進む。
【００８６】
他方、正常判定がなされなかった場合、即ち、ある気筒につき燃料過少異常判定及び燃料過剰異常判定のいずれかがなされた場合、又は全気筒の燃料系正常判定が保留された場合には、ステップＳ３０２に進み、前者の場合には異常判定がなされた気筒（異常気筒）につき、後者の場合には異常とも正常とも判定されなかった気筒（半異常気筒）につき、燃料噴射量の補正を実行し、且つこの補正が完了したか否かが判断される。
【００８７】
この補正は、エンジン負荷ＫＬが所定値Ｘより大きい中負荷或いは高負荷のときに行われる。そしてこの補正では、異常気筒又は半異常気筒においてのみ、空燃比推定値Ａ／Ｆｅ（ｉ）を空燃比目標値Ａ／Ｆｔに近づけるよう或いは等しくするよう、燃料噴射量が補正される。これにより異常気筒又は半異常気筒における燃料系の異常状態又は半異常状態が解消され、燃料系は全気筒正常状態となる。
【００８８】
もっとも、インジェクタが完全に故障している等の理由で補正不可能な場合には、補正が完了しないので、ルーチンが終了される。他方、補正が可能で補正が完了した場合には、ステップＳ３０３に進む。
【００８９】
ステップＳ３０３では、吸気弁作用角αが所定値Ｄより小さいか否かが判断される。所定値Ｄは、空気系異常の影響を十分大きくし得るような比較的小さな値のうちの最大値として設定される。これは空気系異常の影響が出やすい低負荷・小作用角の条件下で空気系異常の診断を行うためである。後のステップでエンジン負荷が低負荷という条件も判断されるが、ここでは安全のため、作用角αが小さいか否かも別途単独で判定するようにしている。作用角の値は目標作用角の値でもよいし、実作用角の値であってもよい。なお、このステップＳ３０３における所定値Ｄと、前記ステップＳ２０１Ａにおける所定値Ｃとは、同じ値であってもよいし、異なる値であってもよい。異ならせる場合は前者を後者より小さな値とするのが好ましい。
【００９０】
作用角αが所定値Ｄ以上の場合、ルーチンが終了される。他方、作用角αが所定値Ｄより小さい場合、ステップＳ３０４において前記ステップＳ１０１と同様にエンジンの回転速度ＮＥと負荷ＫＬの値が取得される。
【００９１】
次のステップＳ３０５では、取得されたエンジン負荷ＫＬが所定値Ｙより小さいか否かが判断される。所定値Ｙは、低負荷とそれより高い負荷との境界をなすような大きさの値が設定されている。このステップＳ３０５における所定値Ｙと、前記ステップＳ１０２における所定値Ｘとは、同じ大きさの値であってもよいし、異なる大きさの値であってもよい。異ならせる場合は前者を後者より小さな値とするのが好ましい。
【００９２】
エンジン負荷ＫＬが所定値Ｙ以上の場合、ルーチンが終了される。他方、エンジン負荷ＫＬが所定値Ｙより小さい場合、即ちエンジン負荷ＫＬが低負荷の場合、ステップＳ３０６にて、前記ステップＳ１０３と同様、触媒前空燃比センサ６１の検出値に基づいて各気筒の空燃比推定値Ａ／Ｆｅ（ｉ）が算出される。
【００９３】
次いでステップＳ３０７では前記ステップＳ１０４と同様に空燃比目標値Ａ／Ｆｔの値が取得され、ステップＳ３０８では前記ステップＳ１０５と同様に各気筒の気筒別空燃比差ΔＡ／Ｆ（ｉ）が算出される。
【００９４】
次に、ステップＳ３０９において、各気筒の気筒別空燃比差ΔＡ／Ｆ（ｉ）が所定の異常判定値Ａ’と比較される。異常判定値Ａ’はプラスの値であり、空燃比推定値Ａ／Ｆｅ（ｉ）のズレ量を異常とみなすのに十分な比較的大きな値とされる。
【００９５】
ここで、空気系に関する異常判定値Ａ’と後述する正常判定値Ｂ’、並びにマイナス側の異常判定値−Ａ’及び正常判定値−Ｂ’は、図９に示すような、図４の特性に対応づけたマップを用い、エンジン負荷ＫＬに応じて定められる。
【００９６】
気筒別空燃比差ΔＡ／Ｆ（ｉ）が異常判定値Ａ’以上となっている気筒がある場合、ステップＳ３１０において当該気筒につき空気系の異常、特に気筒別空燃比がリーン側に大きくずれる空気過剰異常が発生していると判定され、ルーチンが終了される。
【００９７】
他方、ステップＳ３０９において気筒別空燃比差ΔＡ／Ｆ（ｉ）が異常判定値Ａ’以上となっている気筒がないと判断された場合、ステップＳ３１１に進んで、各気筒の気筒別空燃比差ΔＡ／Ｆ（ｉ）がマイナス側の異常判定値−Ａ’と比較される。なおここではプラス側の異常判定値Ａ’とマイナス側の異常判定値−Ａ’とをゼロに対し対称の、同じ絶対値を有する値としたが、非対称、異なる絶対値を有する値としてもよい。
【００９８】
気筒別空燃比差ΔＡ／Ｆ（ｉ）がマイナス側の異常判定値−Ａ’以下となっている気筒がある場合、ステップＳ３１２において当該気筒につき空気系の異常、特に気筒別空燃比がリッチ側に大きくずれる空気過少異常が発生していると判定され、ルーチンが終了される。
【００９９】
他方、ステップＳ３１１において気筒別空燃比差ΔＡ／Ｆ（ｉ）が異常判定値−Ａ’以下となっている気筒がないと判断された場合、ステップＳ３１３に進んで、各気筒の気筒別空燃比差ΔＡ／Ｆ（ｉ）が所定の正常判定値Ｂ’と比較される。この正常判定値Ｂ’は、プラスの値で且つ異常判定値Ａ’より小さい値であり、空燃比推定値Ａ／Ｆｅ（ｉ）のズレ量の最大許容値に設定されている。
【０１００】
気筒別空燃比差ΔＡ／Ｆ（ｉ）が正常判定値Ｂ’より大きい気筒がある場合、ステップＳ３１４において全気筒の空気系の正常判定が保留される。即ちこの場合、当該気筒（半異常気筒）について異常とみなせる程大きくはないが、正常とみなすには大きすぎる気筒別空燃比Ａ／Ｆ（ｉ）のリーンずれが生じているので、全気筒の空気系の正常判定が保留される。この結果、空気系は正常とも異常とも判定されないことになる。
【０１０１】
他方、気筒別空燃比差ΔＡ／Ｆ（ｉ）が正常判定値Ｂ’より大きい気筒がない場合、ステップＳ３１５に進んで、各気筒の気筒別空燃比差ΔＡ／Ｆ（ｉ）がマイナス側の正常判定値−Ｂ’と比較される。前記同様、ここではプラス側の正常判定値Ｂ’とマイナス側の正常判定値−Ｂ’とをゼロに対し対称の、同じ絶対値を有する値としたが、非対称、異なる絶対値を有する値としてもよい。
【０１０２】
気筒別空燃比差ΔＡ／Ｆ（ｉ）がマイナス側の正常判定値−Ｂ’未満となっている気筒がある場合、ステップＳ３１４に進んで全気筒についての空気系の正常判定が保留される。他方、気筒別空燃比差ΔＡ／Ｆ（ｉ）がマイナス側の正常判定値−Ｂ’未満となっている気筒がない場合、ステップＳ３１６に進んで、全気筒の空気系が正常と判定され、ルーチンが終了される。
【０１０３】
このように、燃料系が正常状態であり、且つエンジン負荷ＫＬが所定値Ｙより小さい低負荷という条件下で空気系の異常の有無を診断するので、燃料系の異常の可能性を排除した上で、空気系異常の影響が大きい条件下で空気系異常を診断し、燃料系異常と区別して空気系の異常を確実に診断することができる。
【０１０４】
次に、異常診断処理の第３の例の変形例を図１０に基づき説明する。
【０１０５】
この変形例は、各気筒の吸気弁の作用角を気筒別に制御可能な吸気弁可変制御装置を前提とする。例えば、前記作用角可変機構４２において各気筒の仲介駆動機構４３を気筒別に制御できるものや、各気筒の吸気弁を電磁駆動弁により気筒別に制御できるものなどに適用される。ここでは前記同様に作用角と同期して最大リフト量も変化させられる。
【０１０６】
ステップＳ４０１〜Ｓ４１６はそれぞれ第３の例のステップＳ３０１〜Ｓ３１６と同様である。ステップＳ４１０，Ｓ４１２，Ｓ４１４，Ｓ４１４で空気系の異常、半異常（正常判定保留）又は正常が判定されるまで、前記第１又は第２の例も含めて、吸気弁作用角は全気筒一律に制御される。
【０１０７】
ステップＳ４１０又はＳ４１２で空気系異常が判定されるか又はステップＳ４１４で空気系半異常が判定されたとき（即ち、空気系正常判定がされなかったとき）、ステップＳ４１７に進む。このステップＳ４１７では、空気系が異常又は半異常と判断された気筒ｉｘにつき、空燃比推定値Ａ／Ｆｅ（ｉｘ）が空燃比目標値Ａ／Ｆｔに等しくなるように（即ち気筒別空燃比差ΔＡ／Ｆ（ｉｘ）がゼロになるように）、作用角が所定時間補正制御される。これによって当該気筒ｉｘにおいて空気量を補正し、空燃比推定値Ａ／Ｆｅ（ｉｘ）を空燃比目標値Ａ／Ｆｔに一致させるよう試みがなされる。なお当該気筒ｉｘ以外の気筒ではこのような作用角補正制御は行われない。
【０１０８】
所定時間の補正制御が終了したならば次にステップＳ４１８に進み、実際の空燃比推定値Ａ／Ｆｅ（ｉｘ）が空燃比目標値Ａ／Ｆｔに対し所定値以内となるよう十分近づいたか否か、具体的には気筒別空燃比差ΔＡ／Ｆ（ｉｘ）の絶対値が所定値Ｅ（＞０）以下となったか否かが判断される。
【０１０９】
気筒別空燃比差ΔＡ／Ｆ（ｉｘ）の絶対値が所定値Ｅ以下となった場合、空気量ズレは作用角の補正によって解消可能なので、ステップＳ４１９において、当該気筒ｉｘの最終的な作用角補正状態が維持される。これにより以降の空燃比制御等において当該気筒ｉｘの空気量ズレを起こすことがなくなり、正常な制御を行うことができる。
【０１１０】
他方、気筒別空燃比差ΔＡ／Ｆ（ｉｘ）の絶対値が所定値Ｅ以下とならなかった場合、空気量ズレは作用角を補正しても解消不能であるので、ステップＳ４２０において吸気弁可変制御装置の異常と判定される。この吸気弁可変制御装置の異常は、典型的には吸気弁可変制御装置（特に作用角可変機構４２）の当該気筒ｉｘに関する部分の異常を含む。吸気弁可変制御装置以外の異常、即ちタペットクリアランス異常やデポジット付着異常等の場合だと、空気量のズレはそれほど大きくなく作用角の補正で解消可能となる可能性が高い。しかし、作用角を補正しても空気量ズレが解消できない場合だと、より重大な異常即ち吸気弁可変制御装置の異常である可能性が高い。そこでここでは、当該気筒ｉｘについて作用角を補正してもなお空燃比ズレが解消できない場合、吸気弁可変制御装置の異常（特に当該気筒ｉｘに関連する部分の異常）と判定し、異常箇所をより詳細に特定することとしている。これにより一層正確で且つ緻密な異常診断が可能となる。
【０１１１】
以上、本発明の実施形態について詳細に述べたが、本発明の実施形態は他にも様々なものが考えられる。例えば内燃機関の用途や形式は任意であり、例えば車両用以外であってもよいし、圧縮着火式内燃機関（ディーゼルエンジン）であってもよいし、ポート直噴式等であってもよい。気筒数も多気筒なら任意である。前記実施形態では、気筒別空燃比のズレ量の基準値を全気筒一律の空燃比目標値、例えば理論空燃比に定めたが、これに限らず、例えば各気筒の気筒別空燃比の平均値を当該基準値に定めてもよい。また、図７の第２の例において燃料系の正常判定を保留する場合（ステップＳ２１１）、並びに図８の第３の例において空気系の正常判定を保留する場合（ステップＳ３１４）、異常とも正常ともみなせない気筒についてのみ正常判定を保留し、その他の気筒については正常判定してもよい。
【０１１２】
本発明には、特許請求の範囲によって規定される本発明の思想に包含されるあらゆる変形例や応用例、均等物が含まれる。従って本発明は、限定的に解釈されるべきではなく、本発明の思想の範囲内に帰属する他の任意の技術にも適用することが可能である。
【図面の簡単な説明】
【０１１３】
【図１】本発明の一実施形態に係るエンジンの概略図である。
【図２】吸気弁の可変タイミング特性を示す線図である。
【図３】吸気弁の可変作用角特性を示す線図である。
【図４】作用角ズレがある場合のエンジン負荷と吸入空気量ズレ量との関係を示すグラフである。
【図５】エンジン負荷に応じて吸入空気量ズレ量が異なる理由を説明するための図である。
【図６】異常診断処理の第１の例に係るフローチャートである。
【図７】異常診断処理の第２の例に係るフローチャートである。
【図８】異常診断処理の第３の例に係るフローチャートである。
【図９】空気系の異常判定値及び正常判定値を算出するためのマップである。
【図１０】異常診断処理の第３の例の変形例に係るフローチャートである。
【符号の説明】
【０１１４】
１１  内燃機関
２７  吸気弁
４２  作用角可変機構
４３  仲介駆動機構
５２  回転角センサ
５５  アクセル開度センサ
６１  触媒前空燃比センサ
１００  電子制御装置（ＥＣＵ）
ＫＬ  負荷
α  作用角
Ａ／Ｆｅ（ｉ）  各気筒の空燃比推定値
Ａ／Ｆｔ  目標空燃比
ΔＡ／Ｆ（ｉ）  気筒別空燃比差
【図１】
0004936140.tif 000005
【図２】
0004936140.tif 000006
【図３】
0004936140.tif 000007
【図４】
0004936140.tif 000008
【図５】
0004936140.tif 000009
【図６】
0004936140.tif 000010
【図７】
0004936140.tif 000011
【図８】
0004936140.tif 000012
【図９】
0004936140.tif 000013
【図１０】
0004936140.tif 000014