内燃機関のシリンダに流入する空気量を検出する吸入空気量検出手段と、上記吸入空気量検出手段で検出された空気量に基づいて上記内燃機関における基本燃料噴射量を算出する基本燃料噴射量算出手段と、上記シリンダに流入する空気量と、上記シリンダに流入した空気量のうち当該シリンダ内にトラップされずに排気通路へ流出する空気量との比率である掃気率に基づいて上記基本燃料噴射量を補正する燃料噴射量補正手段と、吸気弁の閉時期を検出する吸気弁閉時期検出手段と、上記シリンダに流入する空気の温度を検出する吸入空気温度検出手段と、上記シリンダに流入する空気の圧力を検出する吸入空気圧力検出手段と、上記吸気弁と排気弁とがともに開となるバルブオーバーラップ期間の長さを検出するバルブオーバーラップ期間検出手段と、上記内燃機関の機関回転数を検出する回転数検出手段と、上記吸気弁の閉時期と、上記シリンダに流入する空気の温度と、上記シリンダに流入する空気の圧力と、上記吸入空気量検出手段で検出されたシリンダに流入する空気量と、に基づいて第1掃気率を算出する第1掃気率算出手段と、上記シリンダに流入する空気の圧力と、上記バルブオーバーラップ期間の長さと、上記機関回転数と、に基づいて第2掃気率を算出する第2掃気率算出手段と、を備え、上記燃料噴射量補正手段は、上記第1掃気率及び上記第2掃気率のうちの大きい方を用いて上記基本燃料噴射量を補正することを特徴とする内燃機関の制御装置。上記第1掃気率算出手段は、上記吸気弁の閉時期に基づいて吸気弁閉時期におけるシリンダ容積を算出し、上記シリンダに流入する空気の温度及び圧力に基づいて当該シリンダに流入する空気の空気密度を算出し、上記シリンダ容積と上記空気密度とに基づいて当該シリンダにトラップされるシリンダトラップ空気量を算出し、上記シリンダトラップ空気量と上記吸入空気量検出手段で検出された空気量とに基づいて上記第1掃気率を算出することを特徴とする請求項1に記載の内燃機関の制御装置。上記第2掃気率算出手段で算出される第2掃気率は、機関回転数が一定であるとき、上記シリンダに流入する空気の圧力が高くなるほど、または上記バルブオーバーラップ期間が長くなるほど、大きくなることを特徴とする請求項1または2に記載の内燃機関の制御装置。上記第1掃気率と上記第2掃気率とが予め設定された所定値以上互いに乖離した場合には、上記第1掃気率及び上記第2掃気率の算出に必要なパラメータを検出する上記各検出手段のいずれかに異常があると判定することを特徴とする請求項1~3のいずれかに記載の内燃機関の制御装置。内燃機関のシリンダに流入する空気量に基づいて算出された基本燃料噴射量を、内燃機関のシリンダに流入する空気量と、上記シリンダに流入した空気量のうち当該シリンダ内にトラップされずに排気通路へ流出する空気量との比率である掃気率に基づいて補正する燃料噴射量補正手段と、吸気弁の閉時期と、上記シリンダに流入する空気の温度と、上記シリンダに流入する空気の圧力と、上記シリンダに流入する空気量と、に基づいて第1掃気率を算出する第1掃気率算出手段と、上記シリンダに流入する空気の圧力と、上記吸気弁と排気弁とがともに開となるバルブオーバーラップ期間の長さと、上記内燃機関の機関回転数と、に基づいて第2掃気率を算出する第2掃気率算出手段と、を備え、上記燃料噴射量補正手段は、上記第1掃気率及び上記第2掃気率のうちの大きい方を用いて上記基本燃料噴射量を補正することを特徴とする内燃機関の制御方法。しかしながら、この特許文献1においては、上記バルブオーバーラップが設定された運転状態で筒内の空燃比がリッチになった場合に、排気と上記シリンダ内にトラップされずに排気通路に吹き抜けた新気とにより、排気通路に配置されている排気浄化用の触媒での酸化反応が促進され、触媒温度が過度に上昇する可能性がある。そのため、この特許文献1においては、燃料噴射量を決定する際に使用する新気吹き抜け量掃気量の値が、センサ等の異常により実際の値からずれて筒内の空燃比がリッチとなった場合に、上記触媒の温度が過度に上昇し、上記触媒の熱劣化が促進されてしまうという問題がある。そこで、本発明の内燃機関の制御装置は、吸気弁の閉時期と、シリンダに流入する空気の温度と、上記シリンダに流入する空気の圧力と、上記シリンダに流入する空気量と、に基づいて算出した第1掃気率と、上記シリンダに流入する空気の圧力と、吸気弁と排気弁とがともに開となるバルブオーバーラップ期間の長さと、内燃機関の機関回転数と、に基づいて算出した第2掃気率とのうちの大きい方の掃気率を用いて、上記内燃機関のシリンダに流入する空気量に基づいて算出された基本燃料噴射量を補正することを特徴としている。本発明によれば、基本燃料噴射量は、第1掃気率または第2掃気率の算出に必要なセンサが故障した場合でも、第1掃気率と第2掃気率のうち筒内空燃比をリーン側とする掃気率に基づいて補正されるので、排気通路に配置された排気浄化用の触媒が、第1掃気率または第2掃気率の算出に必要なセンサの故障に起因して過度に熱劣化してしまうことを防止できる。以下、本発明の一実施例を図面に基づいて詳細に説明する。図1は、本発明が適用された内燃機関エンジン1のシステム構成を模式的に示した説明図である。内燃機関1は、ガソリンエンジンもしくはディーゼルエンジンであり、燃焼室を構成するシリンダ2内に燃料噴射弁3が直接燃料を噴射する筒内直接噴射式であって、シリンダ2内に噴射された燃料は点火プラグ4によって点火される。また、各シリンダ2には、吸気弁5を介して吸気通路6が接続され、排気弁7を介して排気通路8がそれぞれ接続されている。燃料噴射弁3には、高圧燃料ポンプ9により高圧の燃料が供給されている。本実施形態においては、吸気弁5側の動弁機構及び排気弁7側の動弁機構として、機関弁のバルブリフト特性を変更する油圧駆動式の可変動弁機構が設けられている。この可変動弁機構は、周知のようにクランクシャフト12に対するカムシャフトの位相を変化させる位相可変機構VTCであり、シリンダヘッド上部の動弁室13にそれぞれ配置されている。吸気弁5側の可変動弁機構15は、吸気弁5を開閉する吸気カムシャフト16の一端に設けられ、電磁ソレノイド17により作動油の供給量を制御することで、クランクシャフト12に対する吸気カムシャフト16の相対位相角である変換角を変更して、吸気弁5の開閉時期を変更するものである。吸気弁5の開閉時期に対応する吸気カムシャフト16の位相変換角は、吸気カム角センサ18により検出される。排気弁7側の可変動弁機構20は、排気弁7を開閉する排気カムシャフト21の一端に設けられ、電磁ソレノイド22により作動油の供給量を制御することで、クランクシャフト12に対する排気カムシャフト21の相対位相角である変換角を変更して、排気弁7の開閉時期を変更するものである。排気弁7の開閉時期に対応する排気カムシャフト21の位相変換角は、排気カム角センサ23により検出される。なお、可変動弁機構としては、吸気弁5と排気弁7のいずれもが開弁したオーバーラップ期間が生ずるように、吸気弁5の開弁期間あるいは排気弁7の開弁期間を変化させるものであればよく、例えば、機関弁のバルブリフト量と作動角の双方を変化させるリフト作動角可変機構VELを適用することも可能である。また、吸気弁5側の動弁機構と排気弁7側の動弁機構のうち、一方の動弁機構がリフト作動角及びリフト中心角の位相が常に一定となる一般的な直動式の動弁機構であってもよい。内燃機関1は、排気タービン26とコンプレッサ27とを同軸上に備えた過給機25を有している。この過給機25は、図示しないウェストゲート弁の開度を調整して運転状態に応じた最適な過給圧を提供するよう構成される。排気タービン26の下流側の排気通路8には、2つの三元触媒28、29が直列に配置されている。三元触媒28、29は、理論空燃比を中心とするいわゆるウィンドウに空燃比がある場合に最大の転化効率をもって排気中のNOx、HC、COを同時に浄化できるものである。三元触媒28の上流側には、排気空燃比を検出するA/Fセンサ30が配置され、三元触媒28と三元触媒29の間には、酸素センサ31が配置されている。また、排気タービン26の上流側の排気通路8には、排気温度を検出する排気温度センサ32が配置されている。ここで、A/Fセンサ30は、排気空燃比に応じたほぼリニアな出力特性を有するいわゆる広域型空燃比センサであり、酸素センサ31は、理論空燃比付近の狭い範囲で出力電圧がON/OFFリッチ、リーン的に変化して、空燃比のリッチ、リーンのみを検出するセンサである。吸気通路6は、エアクリーナ35を備え、その下流側には吸入空気量を検出するエアフローメータAFM36、上述した過給機25のコンプレッサ27、過給された高温の空気を冷却するインタークーラ37、スロットル弁38、吸気コレクタ39が設けられている。また、吸気通路6には、コンプレッサ27をバイパスするようにバイパス通路40が接続されている。バイパス通路40には、過給空気のリサーキュレーションを行うリサーキュレーション弁41が設けられている。スロットル弁38の下流側に位置する吸気コレクタ39には、吸入負圧を倍力源とするブレーキブースタ45に負圧を供給する負圧導入通路46及び燃料タンク47で発生した蒸発燃料を導入するパージ通路48が接続されている。また、この吸気コレクタ39には、インタークーラ37の下流側における吸気温度を検出する吸気温センサ49と、スロットル弁38の下流側の吸気圧力を検出する吸気圧力センサ50が設けられている。ブレーキブースタ45は、ブレーキペダル51の踏み込み力を軽減するものであって、吸気コレクタ39に発生する吸入負圧を利用してブレーキペダル51の踏み込み力を増幅している。パージ通路48には、パージ制御弁52が介装されていると共に、燃料タンク47で発生する蒸発燃料ガスを処理するキャニスタ53が接続されている。パージ制御弁52は、例えば、蒸発燃料ガスのパージ流量が吸入空気量の増加に応じて増加するように制御される。なお、図1中の55は動弁室13のブローバイガスを吸気通路6に導入するブローバイガス導入通路、56はブローバイガス導入通路55に設けられたPCV弁、57は低負荷時には動弁室13内に新気を導入し、高負荷時には動弁室13のブローバイガスを吸気通路6に戻す新気導入通路である。ECMエンジンコントロールモジュール60には、上述した吸気カム角センサ18、排気カム角センサ23、A/Fセンサ30、酸素センサ31、排気温度センサ32、エアフローメータ36の検出信号のほか、クランクシャフト12のクランク角を検出するクランク角センサ61、スロットル弁8の開度を検出するスロットルセンサ62、インタークーラ37とスロットル弁38との間の吸気圧力を検出する圧力センサ63、アクセルペダル図示せずの踏込量を検出するアクセル開度センサ64、大気圧を検出する大気圧センサ65、ウォータジャケット内の冷却水温を検出する水温センサ66、エンジンオイルの油温を検出する油温センサ67等の各種センサ類からの検出信号が入力されている。そして、ECM60は、これらの検出信号に基づいて、内燃機関1の点火時期、バルブタイミング、空燃比等の制御を実施すると共に、可変動弁機構15、20により、排気上死点の前後で吸気弁5と排気弁7とがともに開弁するバルブオーバーラップが設定される運転状態においては、吸気通路6から排気通路8への新気の吹き抜け量を推定して、エアフローメータ36で検出された吸入空気量に基づいて算出される燃料噴射量を補正する。バルブオーバーラップがある場合、エアフローメータ36で検出された吸入空気量の一部は新気の吹き抜け量として排気通路8に流れてしまうため、新気の吹き抜け量を考慮して燃料噴射量を設定しなければ必要以上の燃料が噴射されることになり、燃料の燃え残りが後燃えして三元触媒28、29に悪影響をおよぼす虞がある。また、推定された新気の吹き抜け量が、センサ等の異常や故障等により実際の値から外れてしまった場合、必要以上の燃料が噴射されてしまう可能性がある。そこで、本実施例では、シリンダ2内に流入する空気量と、シリンダ2内に流入した空気量のうちシリンダ2内にトラップされずに排気通路8へ流出する空気量との比率である掃気率を異なる2つの方法で算出し、算出された2つの掃気率計測掃気率と推定掃気率のうちの大きい方を最終掃気率とし、この最終掃気率を用いてエアフローメータ36で検出された空気量に基づいて算出される基本燃料噴射量を補正する。第1掃気率としての計測掃気率は、図2に示すように、シリンダ2に流入する空気量、すなわちエアフローメータ36で検出されたAFM計測空気量に対してシリンダ2内にトラップされる筒内トラップ空気量が占める割合として算出される値である。筒内トラップ空気量は、シリンダ2内に流入する空気の空気密度と、吸気弁5の閉弁時期IVCにおけるシリンダ容積燃焼室容積とから算出される。シリンダ2内に流入する空気の空気密度は、吸気コレクタ39に取り付けられた吸気温センサ49及び吸気圧力センサ50の検出値に基づいて算出される。吸気弁5の閉弁時期IVCは、吸気カム角センサ18の検出値から算出することができる。具体的には、内燃機関1の仕様から吸気弁閉時期IVCにおけるピストン冠面位置を算出することでシリンダ容積燃焼室容積を算出することができる。そして、AFM計測空気量から筒内トラップ空気量を減算した値を計測掃気量とすると、第1掃気率は、この計測掃気率をAFM計測空気量で除算することで算出される。一方、第2掃気率として推定掃気率は、吸気コレクタ39に取り付けられた吸気圧力センサ50の検出値と、バルブオーバーラップの期間であるバルブオーバーラップ量と、内燃機関の機関回転数と、に基づいて算出される。具体的には、図3に示すような推定掃気率算出マップを用いて、吸気コレクタ39内の吸気圧力と、バルブオーバーラップ量とから推定掃気率を算出する。推定掃気率算出マップは、機関回転数に応じて複数用意されているものであり、吸気圧力が高くなるほど、またはバルブオーバーラップ量が大きくなるほど、算出される推定掃気率が大きくなっている。つまり、機関回転数が一定であるとき、シリンダ2内に流入する空気の圧力が高くなるほど、またはバルブオーバーラップ量が大きくなるほど、推定掃気率は大きくなるという特性となっている。図4は、掃気率の算出に必要な各種検出値の値が、実際の値から外れた場合に、掃気率がどのように変化するかをまとめて示した説明図である。この図4においては、計測掃気率及び推定掃気率の算出に必要な検出値を検出するセンサが正常である場合の検出値を中央値とし、正常な検出値を用いて算出された掃気率の値を同様に中央値としている。エアフローメータ36、吸気圧力センサ50、吸気温センサ49、吸気カム角センサ18、排気カム角センサ21、が全て正常な場合状態1には、吸入空気量、吸気圧力、吸気温度、吸気弁5のリフト中心角の位相、排気弁7のリフト中心角の位相、は全て正しく検出され、その検出値は全て中央値となるので、これら中央値を用いて算出される計測掃気率及び推定掃気率も必然的に中央値となり、最終掃気率も中央値となる。なお、本実施例では、計測掃気率と推定掃気率とが同じ値であった場合には、計測掃気率を最終掃気率としている。状態2、3はエアフローメータ36が故障した場合を示している。エアフローメータ36で検出される吸入空気量が中央値よりも大きくなる状態2では、計測掃気率が中央値よりも大きくなるため、最終掃気率としては計測掃気率が選択される。エアフローメータ36で検出される吸入空気量が中央値よりも小さくなる状態3では、計測掃気率が中央値よりも小さくなるため、最終掃気率としては推定掃気率が選択される。推定掃気率は、エアフローメータ36で検出される吸入空気量に依存しないため、エアフローメータ36が故障しても中央値となる。状態4、5は吸気圧力センサ50が故障した場合を示している。吸気圧力センサ50で検出される吸気圧力が中央値よりも大きくなる状態4では、計測掃気率が中央値よりも小さくなり、推定掃気率が中央値よりも大きくなるため、最終掃気率としては推定掃気率が選択される。吸気圧力センサ50で検出される吸気圧力が中央値よりも小さくなる状態5では、計測掃気率が中央値よりも大きくなり、推定掃気率が中央値よりも小さくなるため、最終掃気率として計測掃気率が選択される。このように、計測掃気率と推定掃気率の双方の算出に必要な吸気圧力を検出する吸気圧力センサ50が故障した場合には、計測掃気率と推定掃気率が中央値に対して互いに逆方向に変化した値となるため、吸気圧力センサ50の故障を早期に発見することができる。状態6、7は吸気温センサ49が故障した場合を示している。吸気温センサ49で検出される吸気温度が中央値よりも大きくなる状態6では、計測掃気率が中央値よりも大きくなるため、最終掃気率としては計測掃気率が選択される。吸気温センサ49で検出される吸気温度が中央値よりも小さくなる状態7では、計測掃気率が中央値よりも小さくなるため、最終掃気率としては推定掃気率が選択される。推定掃気率は、吸気温センサ49で検出される吸気温度に依存しないため、吸気温センサ49が故障しても中央値となる。状態8、9は吸気カム角センサ18が故障した場合を示している。吸気カム角センサ18で検出される吸気弁閉時期が中央値よりも遅角側の値となる状態8では、計測掃気率が中央値よりも大きくなり、推定掃気率が中央値よりも小さくなるため、最終掃気率としては計測掃気率が選択される。状態8においては、ピストン冠面が上死点に近い位置で吸気弁5が閉じられると認識するため、吸気弁閉時のシリンダ容積が小さくなり、筒内トラップ空気量が小さくなって、計測空気量が大きくなり、計測掃気率が中央値よりも大きくなる。また状態8のおいては、バルブオーバーラップ量が中央値よりも小さくなるため、推定掃気率が中央値よりも小さくなる。吸気カム角センサ18で検出される吸気弁閉時期が中央値よりも進角側の値となる状態9では、計測掃気率が中央値よりも小さくなり、推定掃気率が中央値よりも大きくなるため、最終掃気率としては推定掃気率が選択される。状態9においては、ピストン冠面が下死点に近い位置で吸気弁5が閉じられると認識するため、吸気弁閉時のシリンダ容積が大きくなり、筒内トラップ空気量が大きくなって、計測空気量が小さくなり、計測掃気率が中央値よりも小さくなる。また状態9のおいては、バルブオーバーラップ量が中央値よりも大きくなるため、推定掃気率が中央値よりも大きくなる。状態10、11は排気カム角センサ23が故障した場合を示している。排気カム角センサ23で検出される排気弁開時期が中央値よりも進角側の値となる状態10では、推定掃気率が中央値よりも小さくなるため、最終掃気率としては計測掃気率が選択される。状態10のおいては、バルブオーバーラップ量が中央値よりも小さくなるため、推定掃気率が中央値よりも小さくなる。排気カム角センサ23で検出される排気弁開時期が中央値よりも遅角側の値となる状態11では、推定掃気率が中央値よりも大きくなるため、最終掃気率としては推定掃気率が選択される。状態11のおいては、バルブオーバーラップ量が中央値よりも大きくなるため、推定掃気率が中央値よりも小さくなる。計測掃気率は、排気カム角センサ23で検出される排気弁開時期に依存しないため、排気カム角センサ23が故障しても中央値となる。このように、最終的に燃料噴射量の補正に用いる最終掃気率は、掃気率の算出に用いるパラメータを検出するセンサが故障した場合でも、必ず中央値以上の値となるので、センサ正常時には、演算された掃気率を用いて筒内空燃比がストイキとなるように基本燃料噴射量を補正されるようにしておいても、センサ故障時には、筒内空燃比をストイキよりも確実にリーン側にすることが可能となる。すなわち、エアフローメータ36で検出される吸入空気量から筒内トラップ空気量を減算した計測掃気量から算出する計測掃気率と、バルブオーバーラップ量と吸気コレクタ39内の空気圧力とから算出する推定掃気率と、を算出しておき、算出された2つの掃気率のうち、常に大きい方の掃気率を用いて基本燃料噴射量を補正することで、計測掃気率または推定掃気率の算出に必要な検出値を検出するセンサの故障により、この故障したセンサの検出値の値が、中央値計測掃気率及び推定掃気率の算出に必要な検出値を検出するセンサが正常である場合の検出値に対して増加側、減少側のどちらの方向にずれていたとしても、筒内空燃比を常にストイキよりもリーン側となるようにすることができる。また、計測掃気率または推定掃気率の算出に必要な検出値を検出するセンサの故障診断が行えない状態であっても、算出された計測掃気率と推定掃気率との乖離量から、計測掃気率及び推定掃気率の算出に必要な検出値を検出するセンサのいずれかに異常があるとあると検知することができる。特に、計測掃気率及び推定掃気率の双方を算出するのに必要な吸気コレクタ39内の空気圧力を検出する吸気圧力センサ50が故障した場合には、計測掃気率の中央値に対する変化の方向と、推定掃気率の中央値に対する変化の方向がとが、互いに逆方向となって現れるため、計測掃気率と推定掃気掃気率の乖離量が大きくなるため、早期に吸気圧力センサ50の異常を検知することが可能となる。本実施例では、計測掃気率と推定掃気率との乖離量計測掃気率と推定掃気率の差が予め設定された所定値以上となった場合に、計測掃気率及び推定掃気率の算出に必要な検出値を検出するセンサのいずれかに異常があると判定し、吸気弁5と排気弁7のバルブオーバーラップが無くなるように、吸気弁3及び排気弁7のバルブタイミングが変更され、以降はバルブオーバーラップが設定されるように吸気弁3及び排気弁7のバルブタイミングが制御されることが禁止される。そして、計測掃気率または推定掃気率の算出に必要な検出値を検出するセンサの故障時でも、基本燃料噴射量に対する補正が、三元触媒28、29に対して安全な方向リーン側となるため、計測掃気率または推定掃気率の算出に必要な検出値を検出するセンサの故障に起因して三元触媒28、29が熱劣化してしまうことを確実に防止することができる。次に、このように設定された最終掃気率を用いた基本燃料噴射量の補正方法について説明する。バルブオーバーラップが設定される運転状態において、エアフローメータ36で検出された吸入空気量に対して、筒内空燃比が所望の空燃比となるような量の燃料を噴射すると、吸気通路6から排気通路8への新気の吹き抜けがあるため、筒内トラップ空気量は、エアフローメータ36で検出された吸入空気量からこのとき吸気通路6から排気通路8へ吹き抜ける新気の吹き抜ける量掃気量を減算した量となり、筒内空燃比は所望の空燃比よりもリッチになる。本実施例では、内燃機関1がバルブオーバーラップが設定される運転状態である場合、エアフローメータ36で検出された吸入空気量に対し、所定の空燃比となるような燃料量バルブオーバーラップが設定される運転状態における基本燃料噴射量を噴射するように適合しておき、その上で最終掃気率と、そのときの筒内目標空燃比に基づいて、この所定の空燃比となるような燃料量を補正する。換言すると、エアフローメータ36で検出された吸入空気量に対し、機関回転数と負荷に基づいて算出したトータル空燃比適合時のtotalA/Fとなるように基本燃料噴射量が設定され、かつこの基本燃料噴射量を最終掃気率と筒内目標空燃比とに基づいて補正する。このトータル空燃比は、バルブオーバーラップが設定される運転状態においては、例えば、A/Fセンサ30で検出される空燃比排気空燃比が三元触媒28、29での酸化反応が過度に促進されないような所定のリーン空燃比となるように設定されている。最終掃気率を用いて基本燃料噴射量を補正する際に、基本燃料噴射量から最終掃気率に応じた燃料量を減算しただけでは、筒内空燃比がトータル空燃比となり、排気空燃比がトータル空燃比よりもリーンになる。そこで、本実施例では、基本燃料噴射量から最終掃気率に応じた燃料量を減算したものを筒内空燃比の目標値とトータル空燃比との比率に応じてさらに補正することで、筒内空燃比が目標筒内空燃比となるようにしている。図5は、燃料噴射量の演算内容を示すブロック図である。S1では、吸気カム角センサ18で検出された吸気弁閉時期からこのときのピストン冠面位置を算出して、吸気弁閉時期におけるシリンダ容積を算出する。S2では、吸気コレクタ39内の空気温度と、吸気コレクタ39内の空気圧力過給圧から、シリンダ2内に流入する空気の空気密度を算出する。S3では、S2で算出したシリンダ容積とS3で算出した空気密度を乗算して筒内トラップ空気量を算出する。S4では、エアフローメータ36で検出されたAFM計測空気量からS3で算出された筒内トラップ空気量を減算して計測掃気量を算出する。S5では、S3で算出された計測掃気量をAFM計測空気量で除算して、計測掃気率を算出する。S6では、吸気コレクタ39内の空気圧力過給圧と、排気上死点の前後で吸気弁5と排気弁7とがともに開弁している期間であるバルブオーバーラップ量と、現在の内燃機関1の機関回転数とから推定掃気率を算出する。S7では、S5で算出された計測掃気率とS6で算出された推定掃気率の大小を比較し、値が大きい方を最終掃気率とする。S8では、S7で算出された最終掃気率を用いて、エアフローメータ36で検出されたAFM計測空気量に対する筒内トラップ空気量の割合を算出する。つまり、基本燃料噴射量と、基本燃料噴射量から新気の吹き抜ける量掃気量に応じて分の燃料量を減算した燃料量との割合を算出する。S9では、トータル空燃比を筒内目標空燃比で除算することで、筒内空燃比が目標筒内空燃比となるようにするための補正係数を算出する。S10では、S8で算出されたAFM計測空気量に対する筒内トラップ空気量の割合と、S9で算出された筒内空燃比が目標筒内空燃比となるようにするための補正係数と、を乗算して燃料噴射量補正係数を算出する。この燃料噴射量補正係数は、S7で算出された最終掃気率のときに、筒内が目標筒内空燃比となるように基本燃料噴射量を補正するものである。そして、S11では、基本燃料噴射量を噴射するために必要な燃料噴射パルス幅と、S10で算出された燃料噴射量補正係数とを乗算する。すなわち、基本燃料噴射量を補正して、A/Fセンサ30で検出される空燃比がストイキよりもリーン側となり、かつ筒内空燃比が筒内目標空燃比となるように、基本燃料噴射量をS10で算出された燃料噴射量補正係数を用いて補正する。図5に示す演算は、ECM60内で演算されるものであり、この演算におけるS1~S5が計測掃気率を演算する計測掃気率演算部、S6が推定掃気率を演算する推定掃気率演算部、S7~S10が燃料噴射量補正係数を演算する燃料噴射量補正係数演算部とみなすことができる。