"吸気通路内に設けられたスロットル弁と、前記機関に燃料を供給する燃料タンク内で発生する蒸発燃料と空気の混合気である蒸発燃料混合気を前記吸気通路に供給する蒸発燃料通路とを備える内燃機関の制御装置において、前記機関の回転数を検出する回転数検出手段と、前記機関の吸気圧を検出する吸気圧検出手段と、前記スロットル弁を全開にした状態に対応する吸入空気量である全開吸入空気量を、前記機関回転数に応じて算出する全開吸入空気量算出手段と、前記機関の排気が燃焼室に還流されない状態に対応する理論吸入空気量を、前記全開吸入空気量及び前記吸気圧に応じて算出する理論吸入空気量算出手段と、前記機関の吸入空気量を検出または推定する吸入空気量取得手段と、前記蒸発燃料通路を介して前記吸気通路に供給される蒸発燃料混合気量を算出する蒸発燃料混合気量算出手段と、前記蒸発燃料混合気量を用いて前記吸入空気量を補正することにより、吸入ガス量を算出する吸入ガス量算出手段と、前記理論吸入空気量及び吸入ガス量を用いて排気還流率を算出する排気還流率算出手段とを備え、前記排気還流率を用いて前記機関を制御することを特徴とする制御装置。前記機関の出力を最大とする最適点火時期を前記排気還流率に応じて算出する最適点火時期算出手段を有し、前記最適点火時期を用いて前記機関の点火時期を制御する点火時期制御手段をさらに備える請求項1の制御装置。前記蒸発燃料混合気中の蒸発燃料濃度を算出する蒸発燃料濃度算出手段と、前記蒸発燃料混合気量及び蒸発燃料濃度に応じて、前記蒸発燃料混合気中の新気量を二次新気量として算出する二次新気量算出手段と、前記二次新気量を用いて前記吸入空気量を補正することにより、補正吸入空気量を算出する補正吸入空気量算出手段とをさらに備え、前記点火時期制御手段は、前記機関におけるノッキングの発生限界に対応するノック限界点火時期を、前記排気還流率及び補正吸入空気量に応じて算出するノック限界点火時期算出手段を有し、前記最適点火時期またはノック限界点火時期の何れか遅角側の点火時期を用いて前記点火時期の制御を行う請求項2の制御装置。前記機関は吸気弁の作動位相を変更する吸気弁作動位相可変機構を備え、前記点火時期制御手段は、前記作動位相に応じて前記ノック限界点火時期を補正する補正手段を有する請求項3の制御装置。前記補正手段は、前記作動位相に応じて前記機関の実効圧縮比を算出し、該実効圧縮比に応じて前記ノック限界点火時期を補正する請求項4の制御装置。前記スロットル弁の開度を検出するスロットル弁開度検出手段と、前記スロットル弁開度の増加に対する前記吸気圧の増加率が所定増加率以下となる前記スロットル弁の有効開度を、前記機関回転数に応じて算出する有効開度算出手段とをさらに備え、前記排気還流率算出手段は、前記スロットル弁開度が前記有効開度以上であるときは、前記排気還流率を0に設定する請求項1からの5の何れか1項の制御装置。吸気通路内に設けられたスロットル弁と、前記機関に燃料を供給する燃料タンク内で発生する蒸発燃料と空気の混合気である蒸発燃料混合気を前記吸気通路に供給する蒸発燃料通路とを備える内燃機関の制御方法であって、a前記機関の回転数を検出し、b前記機関の吸気圧を検出し、c前記スロットル弁を全開にした状態に対応する吸入空気量である全開吸入空気量を、前記機関回転数に応じて算出し、d前記機関の排気が燃焼室に還流されない状態に対応する理論吸入空気量を、前記全開吸入空気量及び前記吸気圧に応じて算出し、e前記機関の吸入空気量を検出または推定し、f前記蒸発燃料通路を介して前記吸気通路に供給される蒸発燃料混合気量を算出し、g前記蒸発燃料混合気量を用いて前記吸入空気量を補正することにより、吸入ガス量を算出し、h前記理論吸入空気量及び吸入ガス量を用いて排気還流率を算出し、i前記排気還流率を用いて前記機関を制御するステップを備えることを特徴とする制御方法。前記ステップiは、j前記機関の出力を最大とする最適点火時期を前記排気還流率に応じて算出し、k前記最適点火時期を用いて前記機関の点火時期を制御するステップを含む請求項7の制御方法。l前記蒸発燃料混合気中の蒸発燃料濃度を算出し、m前記蒸発燃料混合気量及び蒸発燃料濃度に応じて、前記蒸発燃料混合気中の新気量を二次新気量として算出し、n前記二次新気量を用いて前記吸入空気量を補正することにより、補正吸入空気量を算出するステップをさらに備え、前記ステップkは、o前記機関におけるノッキングの発生限界に対応するノック限界点火時期を、前記排気還流率及び補正吸入空気量に応じて算出するステップを含み、前記最適点火時期またはノック限界点火時期の何れか遅角側の点火時期を用いて前記点火時期の制御が行われる請求項8の制御方法。前記機関は吸気弁の作動位相を変更する吸気弁作動位相可変機構を備え、前記ステップkは、p前記作動位相に応じて前記ノック限界点火時期を補正するステップをさらに含む請求項9の制御方法。前記ステップpは、q前記作動位相に応じて前記機関の実効圧縮比を算出し、r該実効圧縮比に応じて前記ノック限界点火時期を補正するステップを含む請求項10の制御方法。s前記スロットル弁の開度を検出し、t前記スロットル弁開度の増加に対する前記吸気圧の増加率が所定増加率以下となる前記スロットル弁の有効開度を、前記機関回転数に応じて算出するステップをさらに備え、前記ステップhでは、前記スロットル弁開度が前記有効開度以上であるときは、前記排気還流率が0に設定される請求項7からの11の何れか1項の制御方法。特許文献1に示された残留ガス率の算出手法は、算出に適用するパラメータが多く、テーブルやマップの設定工数が多くなるという課題がある。また、外部排気還流率の算出に適用される従来の手法において、種々の機関運転状態に対応して多くのマップが必要となる。そのため、内部排気還流及び外部排気還流をともに考慮して、排気還流率を算出するためには、さらに多くのテーブルやマップを必要とし、設定工数が膨大なものとなる。本発明はこの点に着目してなされたものであり、比較的簡便な手法で機関運転状態に対応した正確な排気還流率を算出可能とした内燃機関の制御装置を提供することを目的とする。上記目的を達成するため本発明は、吸気通路2内に設けられたスロットル弁3と、前記機関に燃料を供給する燃料タンク内で発生する蒸発燃料と空気の混合気である蒸発燃料混合気を前記吸気通路2に供給する蒸発燃料通路25とを備える内燃機関の制御装置を提供する。この制御装置は、前記機関の回転数NEを検出する回転数検出手段と、前記機関の吸気圧PBAを検出する吸気圧検出手段と、前記スロットル弁3を全開にした状態に対応する吸入空気量である全開吸入空気量GAWOTを、前記機関回転数NEに応じて算出する全開吸入空気量算出手段と、前記機関の排気が燃焼室に還流されない状態に対応する理論吸入空気量GATHを、前記全開吸入空気量GAWOT及び前記吸気圧PBAに応じて算出する理論吸入空気量算出手段と、前記機関の吸入空気量GAIRCYLを検出または推定する吸入空気量取得手段と、前記蒸発燃料通路25を介して前記吸気通路2に供給される蒸発燃料混合気量GPGCを算出する蒸発燃料混合気量算出手段と、前記蒸発燃料混合気量GPGCを用いて前記吸入空気量GAIRCYLを補正することにより、吸入ガス量GINGASCYLを算出する吸入ガス量算出手段と、前記理論吸入空気量GATH及び吸入ガス量GINGASCYLを用いて排気還流率REGRTを算出する排気還流率算出手段とを備え、前記排気還流率REGRTを用いて前記機関を制御することを特徴とする。この構成によれば、スロットル弁を全開にした状態に対応する吸入空気量である全開吸入空気量が、機関回転数に応じて算出され、排気還流が全くない状態に対応する理論吸入空気量が、全開吸入空気量及び吸気圧に応じて算出される。さらに蒸発燃料通路を介して吸気通路に供給される蒸発燃料混合気量が算出され、蒸発燃料混合気量を用いて吸入空気量を補正することにより吸入ガス量が算出され、算出される吸入ガス量と理論吸入空気量とを用いて排気還流率が算出され、算出された排気還流率を用いて機関の制御が行われる。したがって、排気還流率を算出するために、種々の機関運転状態に対応する多数のマップを予め設定しておく必要がなく、マップ設定工数を大幅に低減することができる。また大気圧が変化してもそれに伴う補正演算は不要であり、排気還流率を簡便かつ正確に算出することが可能となる。さらに蒸発燃料通路を介して吸気通路に供給される蒸発燃料混合気量により補正された吸入ガス量を用いて、排気還流率が算出されるので、蒸発燃料混合気が供給されている状態においても正確な排気還流率を得ることができる。前記制御装置は、前記機関の出力を最大とする最適点火時期IGMBTを前記排気還流率REGRTに応じて算出する最適点火時期算出手段を有し、前記最適点火時期IGMBTを用いて前記機関の点火時期を制御する点火時期制御手段をさらに備えることが望ましい。この構成によれば、最適点火時期が排気還流率に応じて算出され、算出された最適点火時期を用いて点火時期制御が行われる。排気還流率と最適点火時期との関係は、吸気弁の作動位相や外部排気還流の有無の影響を受けないことが確認されているので、排気還流率に応じて最適点火時期を設定することにより、機関運転状態に適した最適点火時期を簡便に算出することができる。前記制御装置は、前記蒸発燃料混合気中の蒸発燃料濃度KAFEVACTを算出する蒸発燃料濃度算出手段と、前記蒸発燃料混合気量GPGC及び蒸発燃料濃度KAFEVACTに応じて算出される前記蒸発燃料混合気中の新気量を二次新気量GPGACYLとして算出する二次新気量算出手段と、前記二次新気量を用いて前記吸入空気量GAIRCYLを補正することにより、補正吸入空気量GAIRCYLCを算出する補正吸入空気量算出手段とをさらに備え、前記点火時期制御手段は、前記機関におけるノッキングの発生限界に対応するノック限界点火時期IGKNOCKを、前記排気還流率REGRT及び補正吸入空気量GAIRCYLCに応じて算出するノック限界点火時期算出手段を有し、前記最適点火時期IGMBTまたはノック限界点火時期IGKNOCKの何れか遅角側の点火時期を用いて前記点火時期の制御を行うことが望ましい。この構成によれば、蒸発燃料混合気中の蒸発燃料濃度が算出され、蒸発燃料混合気量及び蒸発燃料濃度に応じて算出される蒸発燃料混合気中の新気量が二次新気量として算出され、この二次新気量を用いて吸入空気量を補正することにより補正吸入空気量が算出され、排気還流率及び補正吸入空気量に応じてノック限界点火時期が算出される。ノック限界点火時期は排気還流率との相関性が高いので、排気還流率に応じてノック限界点火時期を算出することにより、ノッキングを確実に回避可能な範囲で機関出力を最大化する点火時期制御を高精度に行うことができる。また、蒸発燃料通路を介して蒸発燃料混合気が吸気通路に供給されるときは、気筒に吸入される新気量は、吸入空気量に蒸発燃料混合気中の新気量を加算したものとなるので、排気還流率及び補正吸入空気量に応じてノック限界点火時期を算出することにより、ノック限界点火時期の算出精度を高めることができる。前記機関は吸気弁の作動位相CAINを変更する吸気弁作動位相可変機構42を備え、前記点火時期制御手段は、前記作動位相CAINに応じて前記ノック限界点火時期IGKNOCKを補正する補正手段を有することが望ましい。この構成によれば、吸気弁の作動位相に応じてノック限界点火時期が補正されるので、吸気弁の作動位相を機関運転状態に応じて変化させる機関においても正確なノック限界点火時期を得ることができる。前記補正手段は、前記作動位相CAINに応じて前記機関の実効圧縮比CMPRを算出し、該実効圧縮比CMPRに応じて前記ノック限界点火時期IGKNOCKを補正することが望ましい。この構成によれば、吸気弁作動位相に応じて機関の実効圧縮比が算出され、該実効圧縮比に応じてノック限界点火時期が補正される。ノック限界点火時期は実効圧縮比に依存して変化するので、吸気弁作動位相に応じて実効圧縮比を算出し、その実効圧縮比に応じてノック限界点火時期を補正することにより、より適切な補正を行うことができる。前記制御装置は、前記スロットル弁の開度THを検出するスロットル弁開度検出手段と、前記スロットル弁開度THの増加に対する前記吸気圧PBAの増加率が所定増加率以下となる前記スロットル弁の有効開度THEFCTを、前記機関回転数NEに応じて算出する有効開度算出手段とをさらに備え、前記排気還流率算出手段は、前記スロットル弁開度THが前記有効開度THEFCT以上であるときは、前記排気還流率REGRTを0とすることが望ましい。請求項6に記載の発明の発明によれば、機関回転数に応じてスロットル弁の有効開度が算出され、検出されるスロットル弁開度が有効開度以上であるときは、排気還流率が0に設定される。機関の低回転状態でスロットル弁開度が急激に増加する急加速が行われると、実際に気筒に供給される空気量の増加は、吸気圧の増加より遅れる。そのため、吸入空気量と理論吸入空気量吸気圧に応じて算出されるとを用いて排気還流率を算出すると、算出誤差が大きくなる。検出されるスロットル弁開度が有効開度以上であるときは、実際の排気還流率はほぼ0となるので、排気還流率を0に設定することにより、実際の排気還流率をより正確に近似することができる。したがって、このように算出される排気還流率を用いて機関制御点火時期制御、燃料供給量制御を行うことにより、急加速過渡運転状態における不適切な制御を防止し、ノッキングの発生あるいは排気特性の悪化を防止することができる。以下本発明の実施の形態を図面を参照して説明する。[第1の実施形態]図1は、本発明の一実施形態にかかる内燃機関とその制御装置の構成を示す図であり、図2は弁作動特性可変装置の構成を示す図である。図1において、例えば4気筒を有する内燃機関以下単にエンジンという1は、吸気弁及び排気弁と、これらを駆動するカムを備えるとともに、吸気弁を駆動するカムの、クランク軸回転角度を基準とした作動位相を連続的に変更するカム位相可変機構としての弁作動特性可変機構42を有する弁作動特性可変装置40を備えている。弁作動特性可変機構42により吸気弁を駆動するカムの作動位相が変更され、吸気弁の作動位相が変更される。エンジン1の吸気通路2にはスロットル弁3が配されている。また、スロットル弁3にはスロットル弁開度THを検出するスロットル弁開度センサ4が連結されており、その検出信号は、電子コントロールユニット以下ECUという5に供給される。スロットル弁3には、スロットル弁3を駆動するアクチュエータ7が接続されており、アクチュエータ7は、ECU5によりその作動が制御される。吸気通路2には、エンジン1の吸入空気流量GAIRを検出する吸入空気流量センサ13が設けられている。吸入空気流量センサ13の検出信号は、ECU5に供給される。吸気通路2のスロットル弁3の下流側には、蒸発燃料通路25が接続されており、蒸発燃料通路25は図示しないキャニスタに接続されている。蒸発燃料通路25には、蒸発燃料と空気の混合気蒸発燃料混合気、以下パージガスというの流量を制御するパージ制御弁26が設けられている。パージ制御弁26はECU5によりその作動が制御される。キャニスタは、エンジン1に燃料を供給する燃料タンク内で発生する蒸発燃料を貯蔵するものであり、パージ制御弁26が開弁されると、キャニスタからパージガスが蒸発燃料通路25を介して、吸気通路2に供給される。排気通路21と吸気通路2の間には、排気還流通路22が設けられており、排気還流通路22は、スロットル弁3の下流側において吸気通路2と接続されている。排気還流通路22には、排気還流量を制御する排気還流制御弁23が設けられており、排気還流制御弁23はECU5によりその作動が制御される。排気通路21には、酸素濃度センサ24以下LAFセンサ24というが装着されており、このLAFセンサ24は排気中の酸素濃度空燃比にほぼ比例した検出信号をECU5に供給する。燃料噴射弁6はエンジン1とスロットル弁3との間かつ吸気通路2の図示しない吸気弁の少し上流側に各気筒毎に設けられており、各噴射弁は図示しない燃料ポンプに接続されていると共にECU5に電気的に接続されて当該ECU5からの信号により燃料噴射弁6の開弁時間が制御される。エンジン1の各気筒の点火プラグ15は、ECU5に接続されており、ECU5は点火プラグ15に点火信号を供給し、点火時期制御を行う。スロットル弁3の下流には吸気圧PBAを検出する吸気圧センサ8及び吸気温TAを検出する吸気温センサ9が取付けられている。またエンジン1の本体には、エンジン冷却水温TWを検出するエンジン冷却水温センサ10が取り付けられている。これらのセンサの検出信号は、ECU5に供給される。ECU5には、エンジン1のクランク軸図示せずの回転角度を検出するクランク角度位置センサ11及び、エンジン1の吸気弁を駆動するカムが固定されたカム軸の回転角度を検出するカム角度位置センサ12が接続されており、クランク軸の回転角度及びカム軸の回転角度に応じた信号がECU5に供給される。クランク角度位置センサ11は、一定クランク角周期毎例えば6度周期に1パルス以下CRKパルスというと、クランク軸の所定角度位置を特定するパルスを発生する。また、カム角度位置センサ12は、エンジン1の特定の気筒の所定クランク角度位置でパルス以下CYLパルスというと、各気筒の吸入行程開始時の上死点TDCでパルス以下TDCパルスというを発生する。これらのパルスは、燃料噴射時期、点火時期等の各種タイミング制御及びエンジン回転数エンジン回転速度NEの検出に使用される。なお、カム角度位置センサ12より出力されるTDCパルスと、クランク角度位置センサ11より出力されるCRKパルスとの相対関係からカム軸の実際の作動位相CAINが検出される。エンジン1の適宜の位置に、高周波振動を検出するノックセンサ14が装着されており、その検出信号がECU5に供給される。またECU5には、エンジン1によって駆動される車両のアクセルペダルの踏み込み量以下アクセルペダル操作量というAPを検出するアクセルセンサ31、当該車両の走行速度車速VPを検出する車速センサ32、及び大気圧PAを検出する大気圧センサ33が接続されている。これらのセンサの検出信号は、ECU5に供給される。弁作動特性可変装置40は、図2に示すように、吸気弁の作動位相を連続的に変更する弁作動特性可変機構42と、吸気弁の作動位相を連続的に変更するために、その開度が連続的に変更可能な電磁弁44とを備えている。吸気弁の作動位相を示すパラメータとして、上記カム軸の作動位相CAINが用いられる以下吸気弁作動位相CAINという。電磁弁44には、オイルパン46の潤滑油がオイルポンプ45により、加圧されて供給される。なお、弁作動特性可変機構42の具体的な構成は、例えば特開2000-227013号公報に示されている。弁作動特性可変機構42により、吸気弁は、図3に実線L2で示す特性を中心として、吸気弁作動位相CAINの変化に伴って破線L1で示す最進角位相から、一点鎖線L3で示す最遅角位相までの間の位相で駆動される。本実施形態では、吸気弁作動位相CAINは、最遅角位相を基準とした進角量として定義される。ECU5は各種センサからの入力信号波形を整形し、電圧レベルを所定レベルに修正し、アナログ信号値をデジタル信号値に変換する等の機能を有する入力回路、中央演算処理ユニット以下CPUという、CPUで実行される演算プログラム及び演算結果等を記憶する記憶回路のほか、アクチュエータ7、燃料噴射弁6、点火プラグ15、排気還流制御弁23、及び電磁弁44に駆動信号を供給する出力回路等から構成される。ECU5のCPUは、上記センサの検出信号に応じて、点火時期制御、スロットル弁3の開度制御、エンジン1に供給する燃料量燃料噴射弁6の開弁時間の制御、排気還流制御弁23による排気還流制御、及び電磁弁44による弁作動特性の制御を行う。燃料噴射弁6の開弁時間TOUTは、下記式1により算出される。TOUT=TIM×KCMD×KAF×KTOTAL1ここに、TIMは基本燃料量、具体的には燃料噴射弁6の基本燃料噴射時間であり、吸入空気流量GAIRに応じて設定されたTIMテーブルを検索して決定される。TIMテーブルは、エンジンに供給する混合気の空燃比がほぼ理論空燃比になるように設定されている。KCMDはエンジン1の運転状態に応じて設定される目標空燃比係数である。目標空燃比係数KCMDは、空燃比A/Fの逆数、すなわち燃空比F/Aに比例し、理論空燃比のとき値1.0をとるので、以下目標当量比という。KAFは、フィードバック制御の実行条件が成立するときは、LAFセンサ24の検出値から算出される検出当量比KACTが目標当量比KCMDに一致するようにPID比例積分微分制御あるいは適応制御器SelfTuningRegulatorを用いた適応制御により算出される空燃比補正係数である。KTOTALは夫々各種エンジンパラメータ信号に応じて演算される他の補正係数エンジン冷却水温TWに応じた補正係数KTW、吸気温TAに応じた補正係数KTAなどの積である。次に本実施形態における排気還流率の算出手法の概要を説明する。以下の説明における吸入空気量、還流排気量などのガス量の次元は正確には1TDC期間TDCパルスの発生周期、例えば4気筒エンジンではクランク角が180度回転する期間当たりのガス質量である。図4は、本実施形態における全排気還流率以下全EGR率というREGRTの算出手法を説明するための図であり、吸気圧PBAと、エンジンに吸入されるガス量空気量還流排気量との関係エンジン回転数NE及び吸気弁作動位相CAINは一定を示す。全EGR率REGRTは、内部排気還流と排気還流通路22を介した外部排気還流による全還流排気量の、全吸入ガス量理論吸入空気量GATHに対する比率である下記式1215参照。図4aは、パージ制御弁26が閉弁され、パージガスが吸気通路2に供給されない状態以下パージ停止状態というに対応し、図4bは、パージ制御弁26が開弁され、パージガスが吸気通路2に供給されている状態以下パージ実行状態というに対応する。図4において、動作点PWOTは、スロットル弁3を全開とした状態に対応し、外部排気還流が行われず、かつ内部排気還流が無いと仮定した理想的な動作点を示す。動作点PWOTでは、吸入空気量はエンジン回転数NE一定の条件下で最大となる。なお、スロットル弁3を全開とした状態においても実際には残留ガス率内部排気還流率が0となることはない。ただし、吸気圧PBAWOTはほぼ大気圧PAと等しくなるので、内部排気還流率は最小となる。動作点PWOTと原点を通る直線LTHは、外部排気還流が行われず、かつ内部排気還流が無いと仮定した理想的な吸入空気量と吸気圧との関係を示す。以下この直線LTHを、理論吸入空気量直線LTHという。また線L11及びL12は、それぞれ内部排気還流のみを考慮したときの関係、及び内部排気還流及び外部排気還流をともに考慮したときの関係を示す。なお、線L11及びL12は、実際には直線とはならないが、説明のために直線で示している。先ず図4aを参照してパージ停止状態における全EGR率REGRTの算出手法を説明する。吸気圧PBAがPBA1である状態に対応する、理論吸入空気量直線LTH上のガス量を理論吸入空気量GATHとすると、理論吸入空気量GATHは、下記式11で表される。式11のGAIRCYLは吸入空気量新気量であり、GEGRIN,GEGREX,及びGEGRTは、それぞれ内部還流排気量、外部還流排気量、及び全還流排気量である。GATH=GAIRCYLGEGRINGEGREX=GAIRCYLGEGRT11したがって、全EGR率REGRTは、下記式12により算出される。REGRT=GEGRT/GATH=GATH-GAIRCYL/GATH12一方、パージ実行状態では、理論吸入空気量GATHは、下記式13で与えられる。式13のGPGCは、蒸発燃料通路26から吸気通路2に供給されるパージガス量であり、下記式14で示すように、パージガスに含まれる蒸発燃料量GVAPOR及びパージガスに含まれる新気量以下二次新気量というGPGACYLの和で与えられる。また式13のGINGASCYLは、吸入空気量GAIRCYLとパージガス量GPGCとの和であり、以下吸入ガス量GINGASCYLという。GATH=GAIRCYLGPGCGEGRINGEGREX=GINGASCYLGEGRT13GPGC=GVAPORGPGACYL14したがって、全EGR率REGRTは、下記式15により算出される。REGRT=GEGRT/GATH=GATH-GINGASCYL/GATH15なお、後述するように点火時期IGLOGの制御においては、吸入空気量GAIRCYLに二次新気量GPGACYLを加算することにより算出される補正吸入空気量GAIRCYLC図4b参照が使用される。パージ実行状態に対応する式13及び15において、パージガス量GPGCを0とすれば、パージ停止状態に対応する式11及び12が得られるので、パージ実行状態に対応する式13及び15を基本式として以下の説明を行う。図5は、大気圧が変化した場合を説明するための図であり、全開動作点PWOT1が基準状態に対応する動作点であり、吸気圧PBAが基準吸気圧PBASTD例えば100kPa750mmHgである状態に相当する。当該車両が高地に移動し大気圧が低下するのに伴って、動作点PWOT1は理論吸入空気量直線LTH上を、動作点PWOT2,PWOT3のように移動する。各動作点PWOT1~PWOT3から出発する曲線L21~L23は、それぞれ内部排気還流を考慮した外部排気還流を行わない場合の吸入ガス量GINGASCYLを示す。このように本実施形態では、大気圧変化に対して理論吸入空気量直線LTHを変更する必要がなく、高地においても正確な全EGR率REGRTを算出することができる。ただし、吸気温TAの変化に伴う空気密度補正を行う必要があり、検出される吸気温TAに応じて下記式16による補正を行う。式16のTASTDは、基準状態の吸気温例えば25°Cであり、GAWOTSTDは、基準状態における全開動作点PWOTに対応する吸入空気量であり、以下基準理論全開空気量GAWOTSTDという。またGAWOTは、検出される吸気温TAの運転状態における全開動作点PWOTに対応する吸入空気量であり、理論全開空気量GAWOTという。nは、実験により0から1の間の値に設定される定数であり、例えば0.5に設定される。図6に示す直線LTHSTDが基準状態における理論吸入空気量直線であり、直線LTHが検出吸気温TAに対応する理論吸入空気量直線である。なお図6は、検出吸気温TAが基準吸気温TASTDより高い例に対応する。図7は、全EGR率REGRTと、最適点火時期IGMBTとの関係エンジン回転数NEは一定を示す図である。最適点火時期IGMBTは、エンジン出力トルクが最大となる点火時期である。この図において、記号●及び○は、吸気弁作動位相CAINが0度の運転状態に対応し、記号■及び□は、吸気弁作動位相CAINが20度の運転状態に対応し、記号▲及び△は、吸気弁作動位相CAINが45度の運転状態に対応する。また記号●,■及び▲は、外部排気還流を行わない場合内部排気還流のみに対応し、記号○,□及び△は、外部排気還流を行った場合内部排気還流外部排気還流に対応する。図7から、全EGR率REGRTと、最適点火時期IGMBTとの関係が、吸気弁の作動位相CAIN、あるいは外部排気還流の有無に依存せず、曲線L31で代表させることが可能であることが確認される。したがって、エンジン回転数NE及び全EGR率REGRTに応じて設定された最適点火時期算出マップIGMBTマップを1つ設けておくことにより、すべての運転状態に対応した最適点火時期の設定を行うことが可能となる。よって、マップ設定工数を大幅に低減することができる。図8は、燃焼室内に吸入された混合気の質量燃焼割合RCMBの変化特性横軸はクランク角度CAを示す図である。同図aは、充填効率ηcを一定として、全EGR率REGRTを変化させたときの特性を示しており、曲線L41~L43は、それぞれ、全EGR率REGRTが6.3,16.2,及び26.3である運転状態に対応する。曲線L41が最も燃焼速度が速いことを意味する。すなわち、全EGR率REGRTは、混合気の燃焼速度を変化させる主要因であることが確認される。一方図8bは、全EGR率を一定として充填効率ηcを変化させたときの特性実線、破線、及び一点鎖線を示している。図に示す実線、破線、及び一点鎖線は、ほとんど重なっており、充填効率ηcを変化させても混合気の燃焼速度はほとんど変化しないことが確認できる。したがって、最適点火時期IGMBTを充填効率ηc吸入新気量ではなく、全EGR率REGRTに応じて設定することが適切であることが確認できる。図9は、全EGR率REGRTと、EGRノッキング補正量DEGRTとの関係エンジン回転数NEは一定を示す図である。EGRノッキング補正量DEGRTは、ノッキングの発生限界を示すノック限界点火時期IGKNOCKの算出に適用される点火時期補正量であり、還流排気量の変化に対応した補正を行うために適用される。この図に示す記号○,□及び△は、充填効率ηcが異なる状態に対応するデータを示しており、充填効率ηcに依存しないことが確認できる。したがって、エンジン回転数NEが一定の状態では、全EGR率REGRTと、EGRノッキング補正量DEGRTとの関係は、曲線L51で代表させることができる。よって、EGRノッキング補正量DEGRTは、エンジン回転数NE及び全EGR率REGRTに応じて設定されたDEGRTマップを用いることにより、適切に設定することができる。なお、曲線L51で示される関係は、基本的には吸気弁作動位相CAINに依存しないが、エンジン特性のばらつきなどによって吸気弁作動位相CAINに応じた修正が必要となることも考えられる。そのような場合には、吸気弁作動位相CAINに応じた複数のテーブルを設けるか、あるいは吸気弁作動位相CAINに応じた補正を行うようにしてもよい。図10は、全EGR率REGRTを算出する処理のフローチャートである。この処理はTDCパルスの発生に同期してECU5のCPUで実行される。ステップS11では、エンジン回転数NE及び吸気弁作動位相CAINに応じて設定されたGAWOTSTDマップを検索し、基準理論全開空気量GAWOTSTDを算出する。ステップS12では、上記式16による吸気温TAに応じた補正を行い、理論全開空気量GAWOTを算出する。ステップS13では、検出される吸気圧PBAを下記式17に適用し、理論吸入空気量GATHを算出する。GATH=GAWOT×PBA/PBASTD17ステップS14では、検出される吸入空気流量GAIR[g/sec]及び図12のステップS68で算出されるパージガス流量QPGCをそれぞれ下記式18及び19に適用し、1つの気筒の1吸気行程における吸入空気量GAIRCYL及びパージガス量GPGCに変換する。式18及び19のKCは、変換係数である。GAIRCYL=GAIR×KC/NE18GPGC=QPGC×KC/NE19ステップS15では、下記式20に吸入空気量GAIRCYL及びパージガス量GPGCを適用し、吸入ガス量GINGASCYLを算出する。GINGASCYL=GAIRCYLGPGC20ステップS15では、前記式15により、全EGR率REGRTを算出する。図11は、パージガス流量制御、すなわちパージ制御弁26の開度制御を行う処理のフローチャートである。この処理は、ECU5のCPUで所定時間例えば80msec毎に実行される。ステップS51では、パージ実行フラグFPGACTが1であるか否かを判別する。パージ実行フラグFPGACTは、パージガスを吸気通路2に供給する運転状態であるとき1に設定される。ステップS51の答が否定NOであるときは、パージ制御弁駆動デューティDOUTPGCを0に設定しステップS52、次いで過渡制御係数KPGTを所定初期値KPGTINI<1.0に設定するステップS53。過渡制御係数KPGTは、パージガスの供給開始当初においてパージガス流量を制限するための係数であり、パージガス供給開始後、1.0に達するまで時間経過にともなって増加するように設定される図12,ステップS65~S67参照。ステップS51の答が肯定YES、すなわちパージガス供給を行うときは、燃料カットフラグFFCが1であるか否かを判別するステップS54。燃料カットフラグFFCは、エンジン1への燃料供給を一時的に停止する運転状態において1に設定される。燃料カットフラグFFCが1であるときは、過渡制御係数KPGTを所定初期値KPGTINIに設定するとともに、パージ制御弁駆動デューティDOUTPGCを0に設定するステップS55,S56。ステップS54の答が否定NOであるときは、図12に示すPGCMD算出処理を実行し、目標駆動デューティPGCMDを算出するステップS57。ステップS58では、パージ制御弁駆動デューティDOUTPGCを目標駆動デューティPGCMDに設定する。ステップS59では、図12の処理で算出されるパージガス流量QPGC及び基本パージガス流量QPGCBASEを下記式21に適用し、パージガス流量比QRATEを算出する。パージガス流量比QRATEは、図13のステップS80で使用される。QRATE=QPGC/QPGCBASE21図12は、図11のステップS57で実行されるPGCMD算出処理のフローチャートである。ステップS61では、検出される吸入空気流量GAIRを下記式22に適用し、基本パージガス流量QPGCBASEを算出する。式22のKQPGBは、所定目標パージ率である。QPGCBASE=GAIR×KQPGB22ステップS62では、基本パージガス流量QPGCBASEが上限値QPGMAXより大きいか否かを判別し、その答が否定NOであるときは、目標パージガス流量QPGCMDを基本パージガス流量QPGCBASEに設定するステップS63。基本パージガス流量QPGCBASEが上限値QPGMAXより大きいときは、目標パージガス流量QPGCMDを上限値QPGMAXに設定するステップS64。ステップS65では、過渡制御係数KPGTを所定量DKPGT<1.0だけ増加させる。ステップS66では、過渡制御係数KPGTが1.0より大きいか否かを判別し、その答が否定NOであるときは、直ちにステップS68に進む。ステップS66の答が肯定YESであるときは、過渡制御係数KPGTを1.0に設定しステップS67、ステップS68に進む。ステップS68では、目標パージガス流量QPGCMD及び過渡制御係数KPGTを下記式23に適用し、パージガス流量QPGCを算出する。QPGC=QPGCMD×KPGT23ステップS69では、パージガス流量QPGCを下記式24に適用し、パージガス流量QPGCを目標駆動デューティPGCMDに変換する。KDUTYは、所定の変換係数であり、KDPBGは吸気圧PBAと大気圧PAとの差圧に応じて設定される差圧係数である。PGCMD=QPGC×KDUTY/KDPBG24図12の処理から明らかなように、図11のステップS59で算出されるパージガス流量比QRATEは、過渡制御係数KPGTが1.0より小さいとき、及び基本パージガス流量QPGCBASEが上限値QPGMAXより大きいとき、1.0より小さい値をとり、それ以外のとき1.0をとる。図13は、パージガス中の蒸発燃料濃度を示す蒸発燃料濃度係数KAFEVACTを算出する処理のフローチャートである。この処理は、ECU5のCPUで所定時間例えば80msec毎に実行される。ステップS71では、フィードバック制御フラグFAFFBが1であるか否かを判別する。フィードバック制御フラグFAFFBは、LAFセンサ24により検出される空燃比KACTを目標空燃比KCMDと一致させる空燃比フィードバック制御を実行するとき1に設定される。ステップS71の答が否定NOであるときは、直ちにステップS76に進む。ステップS71の答が肯定YESであって空燃比フィードバック制御が行われているときは、空燃比補正係数KAFが学習値KREFXから下側偏差DKAFVXLを減算した値より小さいか否かを判別するステップS72。学習値KREFXは、パージガスを吸気通路2に供給していないときに算出される空燃比補正係数KAFの移動平均値である。下側偏差DKAFVXLは、パージガス供給による空燃比補正係数KAFの減少方向のずれを判定するためのパラメータであり、吸入空気流量GAIRが大きくなるほど小さな値に設定される。ステップS72の答が肯定YESであって、パージガス供給による空燃比補正係数KAFの減少方向のずれが大きいときは、パージガス中の蒸発燃料濃度が高いと判定し、下記式25によって基本濃度係数KAFEVを所定加算量DKEVAPOPだけ増加させるステップS74。KAFEV=KAFEVDKEVAPOP25ステップS72の答が否定NOであるときは、空燃比補正係数KAFが学習値KREFXに上側偏差DKAFVXHを加算した値より大きいか否かを判別するステップS73。上側偏差DKAFVXHは、パージガス供給による空燃比補正係数KAFの増加方向のずれを判定するためのパラメータであり、吸入空気流量GAIRが大きくなるほど小さな値に設定される。ステップS73の答が肯定YESであって、パージガス供給による空燃比補正係数KAFの増加方向のずれが大きいときは、パージガス中の蒸発燃料濃度が低いと判定し、下記式26によって基本濃度係数KAFEVを所定減算量DKEVAPOMだけ減少させるステップS75。KAFEV=KAFEV-DKEVAPOM26ステップS73の答が否定NOであるときは、基本濃度係数KAFEVの更新を行うことなくステップS76に進む。ステップS76では、基本濃度係数KAFEVが0より大きいか否かを判別し、その答が否定NOであるときは、基本濃度係数KAFEVを0に設定するステップS77。基本濃度係数KAFEVが0より大きいときはさらに、上限係数値KAFEVLMTより大きいか否かを判別するステップS78。その答が肯定YESであるときは、基本濃度係数KAFEVを上限係数値KAFEVLMTに設定しステップS79、ステップS80に進む。ステップS78の答が否定NOであるときは直ちにステップS80に進む。ステップS80では、下記式27に基本濃度係数KAFEV及びパージガス流量比QRATEを適用し、蒸発燃料濃度係数KAFEVACTを算出する。蒸発燃料濃度係数KAFEVACTは、図16のステップS91で使用される。KAFEVACT=KAFEV×QRATE27図14は、圧縮上死点からの進角量で示される点火時期IGLOGを算出する処理のフローチャートである。この処理はTDCパルスの発生に同期してECU5のCPUで実行される。ステップS21では、エンジン回転数NE及び全EGR率REGRTに応じてIGMBTマップ図7参照を検索し、最適点火時期IGMBTを算出する。ステップS22では、図15に示すIGKNOCK算出処理を実行し、ノック限界点火時期IGKNOCKを算出する。ステップS23では、最適点火時期IGMBTがノック限界点火時期IGKNOCK以上であるか否かを判別し、その答が肯定YESであるときは、基本点火時期IGBをノック限界点火時期IGKNOCKに設定するステップS24。ステップS23で最適点火時期IGMBTがノック限界点火時期IGKNOCKより小さいときは、基本点火時期IGBを最適点火時期IGMBTに設定するステップS25。ステップS26では、基本点火時期IGBに例えばエンジン冷却水温TWに応じて算出される補正値IGCRを加算して、点火時期IGLOGを算出する。ECU5のCPUは、算出された点火時期IGLOGに応じて点火プラグ15による点火を行う。図15は、図14のステップS22で実行されるIGKNOCK算出処理のフローチャートである。ステップS30では、図16に示すGAIRCYLC算出処理を実行し、補正吸入空気量GAIRCYLCを算出する。図16のステップS91では、パージガス量GPGC及び蒸発燃料濃度係数KAFEVACTを下記式31に適用し、バージガスに含まれる新気量を示す二次新気量GPGACYLを算出する。GPGACYL=GPGC×1-KAFEVACT31ステップS92では、吸入空気量GAIRCYLに二次新気量GPGACYLを加算することにより下記式32、補正吸入空気量GAIRCYLCを算出する。GAIRCYLC=GAIRCYLGPGACYL32図15に戻り、ステップS31では、エンジン回転数NE及び補正吸入空気量GAIRCYLCに応じてIGKNOCKBマップを検索し、基本ノック限界点火時期IGKNOCKBを算出する。IGKNOCKBマップは、全EGR率REGRTが所定基準値に設定され、かつ吸気弁作動位相CAINが0度に設定された状態に対応して設定されている。ステップS32では、吸気弁作動位相CAINに応じて図17aに示すCMPRテーブルを検索し、実効圧縮比CMPRを算出する。吸気弁作動位相CAINが変化すると、吸気弁の閉弁時期CACLが変化し、実効圧縮比CMPRが変化する。CMPRテーブルには、予め算出された吸気弁作動位相CAINと実効圧縮比CMPRとの関係が設定されている。ステップS33では、実効圧縮比CMPR及びエンジン回転数NEに応じてDCMPRマップを検索し、圧縮比ノッキング補正量DCMPRを算出する。圧縮比ノッキング補正量DCMPRは、図17bに示すように、0以下の値をとり、実効圧縮比CMPRが増加するほど減少するように設定されている。ステップS34では、全EGR率REGRT及びエンジン回転数NEに応じてDEGRTマップを検索し、EGRノッキング補正量DEGRTを算出する。EGRノッキング補正量DEGRTは、0より大きい値をとり、図9に示すように全EGR率REGRTが増加するほど増加するように設定されている。ステップS35では、下記式33に基本ノック限界点火時期IGKNOCKB、圧縮比ノッキング補正量DCMPR、及びEGRノッキング補正量DEGRTを適用し、ノック限界点火時期IGKNOCKを算出する。IGKNOCK=IGKNOCKBDCMPRDEGRT33なお、本実施形態では、燃料噴射弁6の開弁時間、すなわち燃料噴射量TOUTも、全EGR率REGRTを用いて算出される。またノックセンサ14によるノッキングの検出結果に応じてノック限界点火時期IGKNOCKの修正が行われるが、図15においては省略されている。図18は、実効圧縮比CMPRを算出する手法を説明するための図であり、同図aは吸気弁のリフトカーブを示し、同図bは同図aのA部、すなわちリフトカーブの閉弁時期近傍を拡大して示す。これらの図に示す各リフトカーブL61,L62,L63のそれぞれに対応して、リフト量LFTが所定リフト量閾値LFTCMP0より若干大きいリフト量に設定されると等しくなるクランク角度CA1,CA2,CA3を求め、図18cに示すように各クランク角度CA1~CA3におけるピストン位置に対応する気筒容積VCC1,VCC2,VCC3を求める。各リフトカーブL61~L63に対応する実効圧縮比CMPR1,CMPR2,CMPR3は、下記式7~9により算出される。VCCTDCは、ピストンが上死点位置するときの気筒容積である。CMPR1=VCC1/VCCTDC7CMPR2=VCC2/VCCTDC8CMPR3=VCC3/VCCTDC9図19は、充填効率ηcと基本ノック限界点火時期IGKNOCKBとの関係を示す図であり、図19aに示す実線はパージガス供給時においても吸入空気量GAIRCYLに応じて基本ノック限界点火時期IGKNOCKBを算出した例を示し、図19bに示す実線は補正吸入空気量GAIRCYLCに応じて基本ノック限界点火時期IGKNOCKBを算出した例を示す。図19に示す記号□及び△は、実際のノック限界点火時期を示し、それぞれパージガスが25流入した状態及び75流入した状態に対応する。すなわち、吸入空気量GAIRCYLに応じて基本ノック限界点火時期IGKNOCKBを算出した場合には、基本ノック限界点火時期IGKNOCKBが実際のノック限界点火時期より遅角側の値となり、基本ノック限界点火時期IGKNOCKBの設定誤差が大きくなる。これに対し、補正吸入空気量GAIRCYLCに応じて基本ノック限界点火時期IGKNOCKBを算出した場合には、基本ノック限界点火時期IGKNOCKBと、実際のノック限界点火時期との差はほとんどなくなり、基本ノック限界点火時期IGKNOCKBの設定精度を高めることができる。以上のように本実施形態では、スロットル弁3を全開にした状態に対応する吸入空気量である理論全開空気量GAWOTが、吸気弁作動位相CAIN及びエンジン回転数NEに応じて算出され、還流排気量が0である仮想的な状態に対応する理論吸入空気量GATHが、理論全開空気量GAWOT及び吸気圧PBAに応じて算出される。さらに蒸発燃料通路25を介して吸気通路2に供給されるパージガス量GPGCが算出され、パージガス量GPGCを用いて吸入空気量GAIRCYLを補正することにより、吸入ガス量GINGASCYLが算出され、吸入ガス量GINGASCYLと理論吸入空気量GATHとを用いて全EGR率REGRTが算出される。したがって、排気還流率を算出するために、種々のエンジン運転状態に対応する多数のマップを予め設定しておく必要がなく、マップ設定工数を大幅に低減することができる。さらに大気圧が変化してもそれに伴う補正演算は不要であり、排気還流率を簡便かつ正確に算出することが可能となる。さらに蒸発燃料通路25を介して吸気通路2に供給されるパージガス量GPGCにより補正された吸入ガス量GINGASCYLを用いて、全EGR率REGRTが算出されるので、パージガスが供給されている状態においても正確な排気還流率を得ることができる。また最適点火時期IGMBTが全EGR率REGRTに応じて算出されるので、内部排気還流まで考慮された高精度の最適点火時期IGMBTを得ることができる。また全EGR率REGRTと最適点火時期IGMBTとの関係は、吸気弁作動位相CAINや外部排気還流の有無の影響を受けないことが確認されているので図7、全EGR率REGRTに応じて最適点火時期IGMBTを設定することにより、エンジン運転状態に適した最適点火時期IGMBTを簡便に算出することができる。そして、算出された最適点火時期IGMBTを用いて点火時期制御を行うことにより、エンジンの出力性能を十分に発揮させることができる。またパージガス中の蒸発燃料濃度を示す蒸発燃料濃度係数KAFEVACTが算出され、パージガス量GPGC及び蒸発燃料濃度係数KAFEVACTに応じて二次新気量GPGACYLが算出され、この二次新気量GPGACYLを用いて吸入空気量GAIRCYLを補正することにより補正吸入空気量GAIRCYLCが算出され、基本ノック限界点火時期IGKNOCKBがエンジン回転数NE及び補正吸入空気量GAIRCYLCに応じて算出される。さらに全EGR率REGRTに応じてEGRノッキング補正量DEGRTが算出され、基本ノック限界点火時期IGKNOCKBを、EGRノッキング補正量DEGRTにより補正することによりノック限界点火時期IGKNOCKが算出される。ノック限界点火時期IGKNOCKは全EGR率REGRTとの相関性が高いので図9参照、全EGR率REGRTに応じて算出されるEGRノッキング補正量DEGRTによる補正を行うことにより、ノッキングを確実に回避可能な範囲でエンジン出力を最大化する点火時期制御を高精度に行うことができる。また、蒸発燃料通路25を介してパージガスが吸気通路2に供給されるときは、気筒に吸入される新気量は、吸入空気量GAIRCYLに二次新気量GPGACYLを加算したものとなるので、全EGR率REGRT及び補正吸入空気量GAIRCYLCに応じてノック限界点火時期IGKNOCKを算出することにより、ノック限界点火時期IGKNOCKの算出精度を高めることができる。また吸気弁作動位相CAINに応じて圧縮比ノッキング補正量DCMPRが算出され、基本ノック限界点火時期IGKNOCKBが圧縮比ノッキング補正量DCMPRにより補正されるので、吸気弁作動位相CAINをエンジン運転状態に応じて変化させる場合においても正確なノック限界点火時期IGKNOCKを得ることができる。より具体的には、吸気弁作動位相CAINに応じてエンジンの実効圧縮比CMPRが算出され、該実効圧縮比CMPRに応じて圧縮比ノッキング補正量DCMPRが算出される。ノック限界点火時期IGKNOCKは実効圧縮比CMPRに依存して変化するので、吸気弁作動位相CAINに応じて実効圧縮比CMPRを算出し、その実効圧縮比CMPRに応じて基本ノック限界点火時期IGKNOCKBを補正することにより、より適切な補正を行うことができる。本実施形態では、クランク角度位置センサ11及び吸気圧センサ8が、回転数検出手段及び吸気圧検出手段に相当し、弁作動特性可変機構42が吸気弁作動位相可変機構に相当し、吸入空気流量センサ13が吸入空気量取得手段に相当し、ECU5が、全開吸入空気量算出手段、理論吸入空気量算出手段、蒸発燃料混合気量算出手段、吸入ガス量算出手段、排気還流率算出手段、蒸発燃料濃度算出手段、二次新気量算出手段、補正吸入空気量算出手段、最適点火時期算出手段、ノック限界点火時期算出手段、及び補正手段を構成する。具体的には、図10のステップS11及びS12が全開吸入空気量算出手段に相当し、ステップS13が理論吸入空気量算出手段に相当し、ステップS15が吸入ガス量算出手段に相当し、ステップS15が排気還流率算出手段に相当し、図12のステップS61~S68が蒸発燃料混合気量算出手段に相当し、図13の処理が蒸発燃料濃度算出手段に相当し、図14のステップS21が最適点火時期算出手段に相当し、図15の処理がノック限界点火時期算出手段に相当し、ステップS32,S33,及びS35が補正手段に相当し、図16のステップS91が二次新気量算出手段に相当し、ステップS92が補正吸入空気量算出手段に相当する。[第2の実施形態]上述した図10に示す処理により算出される全EGR率REGRTは、スロットル弁開度THの変化速度が比較的低いときは、実際の全排気還流率と精度よく一致する。しかし、スロットル弁開度増加速度が高い過渡運転状態以下急加速運転状態というにおいては、実際に気筒に吸入される空気量GAIRACTの変化遅れのために、算出精度が低下するという課題がある。図20は、この課題を説明するためのタイムチャートであり、エンジン回転数NEが低回転の状態例えば700rpm程度から急加速運転状態に移行したときにおけるスロットル弁開度TH、吸気圧PBA、吸入空気量GAIRACT、及び算出される全EGR率REGRTの推移を示す。図20a~図20cを比較すると明らかなように、吸気圧PBAの増加はスロットル弁開度THの増加より遅れ、実吸入空気量GAIRACTの増加は、吸気圧PBAの増加よりさらに遅れる。そのため、急加速運転状態における実際の全EGR率は、加速開始前より減少するにもかかわらず、吸気圧PBA及び検出吸気流量GAIRを用いて算出される全EGR率REGRTは、60程度まで増加する図20d。その結果、この全EGR率REGRTを用いて算出される点火時期IGLOGは、所望値より大幅に進角されて、ノッキングを発生させることになる。そこで本実施形態では、スロットル弁開度THが有効スロットル弁開度THEFCT以上であるときは、全EGR率REGRTを0に設定するようにしている。有効スロットル弁開度THEFCTは、スロットル弁開度THの増加に対して吸気圧PBAがほとんど増加しなくなるスロットル弁開度、より具体的には、エンジン回転数が一定であるという条件の下で、スロットル弁開度THの増加に対する吸気圧PBAの増加率が所定増加率以下となるスロットル弁開度である。例えば、エンジン回転数が700rpmであるときのスロットル弁開度THと吸気圧PBAとの関係は、図21に示すようになり、同図に示すTHEFCTが有効スロットル弁開度であり、THFOが全開開度である。エンジン回転数が低いときは比較的低開度で吸気圧PBAが飽和するため、有効スロットル弁開度THEFCTは比較的小さな開度例えば全開開度THFOの15~20程度の開度となる。スロットル弁開度THが有効スロットル弁開度THEFCT以上であるときは、全EGR率REGRTを0に設定することにより、図20の時刻t1近傍で全EGR率REGRTが0に設定されるので、上記課題を解決することができる。図22は、本実施形態における全EGR率算出処理のフローチャートである。この処理は、図10に示す処理にステップS21~S23を追加したものである。ステップS21では、エンジン回転数NEに応じて図23に示すTHEFCTテーブルを検索し、有効スロットル弁開度THEFCTを算出する。THEFCTテーブルは、エンジン回転数NEが増加するほど有効スロットル弁開度THEFCTが増加するように設定されている。ステップS22では、スロットル弁開度THが有効スロットル弁開度THEFCT以上であるか否かを判別する。この答が肯定YESであるときは、エンジン1が上述した急加速過転状態にあると判定し、全EGR率REGRTを0に設定するステップS23。ステップS22の答が否定NO、すなわちスロットル弁開度THが有効スロットル弁開度THEFCTより小さいときは、ステップS15に進み、式15を用いて全EGR率REGRTを算出する。以上のように本実施形態では、エンジン回転数NEに応じて有効スロットル弁開度THEFCTが算出され、検出されるスロットル弁開度THが有効開度THEFCT以上であるときは、全EGR率REGRTが0に設定される。エンジンの低回転状態でスロットル弁開度THが急激に増加する急加速運転状態では、実際に気筒に供給される空気量の増加は、吸気圧PBAの増加より遅れるため図20参照、吸入空気量GAIRCYLと、吸気圧PBAに応じて算出される理論吸入空気量GATHとを用いて全EGR率REGRTを算出すると、算出誤差が大きくなる。検出されるスロットル弁開度THが有効スロットル弁開度THEFCT以上であるときは、実際の排気還流率はほぼ0となるので、全EGR率REGRTを0に設定することにより、実際の排気還流率を正確に近似することができる。その結果、全EGR率REGRTを用いて点火時期IGLOG及び燃料噴射量TOUTの制御を行うことにより、急加速過渡運転状態における不適切な制御を防止し、ノッキングの発生や排気特性の悪化を防止することができる。本実施形態では、スロットル弁開度センサ4がスロットル弁開度検出手段に相当し、図22のステップS21が有効開度算出手段に相当し、ステップS15,S22,及びS23が排気還流率算出手段に相当する。なお本発明は上述した実施形態に限るものではなく、種々の変形が可能である。例えば、上述した実施形態では、吸入空気流量センサ13により検出される吸入空気流量GAIRを用いて全EGR率REGRTを算出するようにしたが、スロットル弁開度TH,大気圧PA,及び吸気圧PBAに応じて推定吸入空気流量HGAIRを算出し、推定吸入空気流量HGAIRを用いて全EGR率REGRTを算出するようにしてもよい。また上述した実施形態では、排気還流通路22による外部排気還流が行われる内燃機関の制御に本発明を適用した例を示したが、外部排気還流が行われない内部排気還流のみが行われる内燃機関の制御にも本発明は適用可能である。また上述した実施形態では、吸気弁作動位相CAINに応じて実効圧縮比CMPRを算出し、実効圧縮比CMPRに応じて圧縮比ノッキング補正量DCMPRを算出するようにしたが、吸気弁作動位相CAINに応じて直接、圧縮比ノッキング補正量DCMPRを算出するようにしてもよい。また本発明は、クランク軸を鉛直方向とした船外機などのような船舶推進機用エンジンなどの制御にも適用が可能である。"