(57)【特許請求の範囲】
【請求項１】
排気の一部を吸気通路に還流させるためのＥＧＲ弁
を備え、
所定のＥＧＲ領域においてＥＧＲガス量またはＥＧＲ率を可変に制御するＥＧＲガス量・ＥＧＲ率制御手段と、
許可条件が成立したとき燃料カットを行い、その後に燃料カットからのリカバー条件が成立したとき燃料供給を再開する燃料カット・燃料供給再開手段と、
前記ＥＧＲ領域での前記燃料供給再開時のシリンダ吸入ＥＧＲガス量またはシリンダ吸入ＥＧＲ率の応答を第１応答として無駄時間で算出する第１応答算出手段と、
この算出した第１応答に基づいて点火時期を算出する点火時期算出手段と、
この算出した点火時期で火花点火を実行する点火実行手段と、
前記燃料カット中の時間または前記燃料カット中のサイクル数を計測する燃料カット中時間・燃料カット中サイクル数計測手段と
を備え、
前記無駄時間を、この燃料カット中の時間または燃料カット中のサイクル数に応じて算出することを特徴とするエンジンの点火時期制御装置。
【請求項２】
ＥＧＲ弁通過ＥＧＲガス量またはＥＧＲ弁通過ＥＧＲ率を算出するＥＧＲ弁通過ＥＧＲガス量・ＥＧＲ弁通過ＥＧＲ率算出手段と、
前記ＥＧＲ領域での前記燃料供給再開時のシリンダ吸入ＥＧＲガス量またはシリンダ吸入ＥＧＲ率が立ち上がってからの応答の時定数相当の値である加重平均係数を算出する加重平均係数算出手段と
を備え、
前記第１応答は、前記無駄時間と、無駄時間経過後の一次遅れの応答との組合せであり、
このＥＧＲ弁通過ＥＧＲガス量またはＥＧＲ弁通過ＥＧＲ率と、加重平均係数とから前記無駄時間経過後の一次遅れの応答を決定することを特徴とする請求項１に記載のエンジンの点火時期制御装置。
【請求項３】
前記ＥＧＲ領域での前記燃料供給再開時を除く、ＥＧＲガス量またはＥＧＲ率の変化時のシリンダ吸入ＥＧＲガス量またはシリンダ吸入ＥＧＲ率の応答を第２応答として算出する第２応答算出手段と、
前記ＥＧＲ領域での前記燃料供給再開時であるのか、それとも前記ＥＧＲ領域での前記燃料供給再開時を除く、ＥＧＲガス量またはＥＧＲ率の変化時であるのかを判定する判定手段と
を備え、
この判定結果より、ＥＧＲ領域での燃料供給再開時を除く、ＥＧＲガス量またはＥＧＲ率の変化時には前記第１応答に代え前記第２応答に基づいて点火時期を算出することを特徴とする請求項１または２に記載のエンジンの点火時期制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、火花点火エンジン（内燃機関）の点火時期制御装置、特にＥＧＲ（排気還流）と燃料カットとを行うものに関する。
【背景技術】
【０００２】
排気の一部を吸気通路に還流させるためのＥＧＲ弁を備え、所定のＥＧＲ領域においてＥＧＲ率（またはＥＧＲガス量）を可変に制御するものにおいて、
実ＥＧＲ率＝目標ＥＧＲ率×（実ＥＧＲ弁開度／目標ＥＧＲ弁開度）
の式により実ＥＧＲ率を算出し、この実ＥＧＲ率に応じて進角補正量を設定し、この進角補正量で基本点火時期を補正して最終的な点火時期を算出するものがある（特許文献１参照）。
【特許文献１】特開平０９−２４２６５４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
ところで、従来はＥＧＲ率が最大でも５％程度であったのが、近年ではタンブル流の強化などにより成層燃焼を行わせなくとも４０％以上のＥＧＲ率を実現できるエンジンが出現しており、こうしたエンジンにおいては、図２７に示したように、ＥＧＲ領域での燃料カットリカバー時にノッキングが発生することが判明した（ノック判定フラグｆＫＮＯＣＫがｔ３〜ｔ４の期間で３つの山を作っている部分を参照）。
【０００４】
４０％以上のＥＧＲ率を実現しているエンジンにおいて、ＥＧＲ領域での燃料カットリカバー時にノッキングが生じた原因を解析したところを次に述べる。
【０００５】
ＥＧＲ中であれば、ＥＧＲガスはＥＧＲ弁よりＥＧＲ通路を経て吸気マニホールドに入り燃焼室へと吸入されるため、ＥＧＲ弁位置でのＥＧＲ率を「ＥＧＲ弁通過ＥＧＲ率」、燃焼室入口でのＥＧＲ率を「シリンダ吸入ＥＧＲ率」と定義すると、あるいはＥＧＲ弁位置でのＥＧＲガス量を「ＥＧＲ弁通過ＥＧＲガス量」、燃焼室入口でのＥＧＲガス量を「シリンダ吸入ＥＧＲガス量」と定義すると、シリンダ吸入ＥＧＲ率はＥＧＲ弁通過ＥＧＲ率を基準として、あるいはシリンダ吸入ＥＧＲガス量はＥＧＲ弁通過ＥＧＲガス量を基準として、無駄時間と一次遅れの応答との組み合わせで表すことができる。なお、ここでのＥＧＲ率とは、ＥＧＲガス量を新気量で除した比のことである。以下ではＥＧＲ率のほうで説明する。
【０００６】
これを図２上段に示すと、ＥＧＲ領域においてｔ０のタイミングでＥＧＲ率が３０％より５０％へと切換えられたとき、シリンダ吸入ＥＧＲ率ＲＡＴＥＧＲは、ｔ１までの無駄時間ＥＧＲＤＬＹ＃の経過中は３０％のままであり、無駄時間ＥＧＲＤＬＹ＃が経過するｔ１のタイミングより立ち上がり５０％に向けて追従している。ｔ１からの無駄時間ＥＧＲＤＬＹ＃経過後のシリンダ吸入ＥＧＲ率ＲＡＴＥＧＲは、ＥＧＲ弁通過ＥＧＲ率ＲＴＥＧＲを用いて、後述する（１）式により算出することができる。
【０００７】
後述する（１）式は、ｔ１からの無駄時間ＥＧＲＤＬＹ＃経過後のシリンダ吸入ＥＧＲ率ＲＡＴＥＧＲをＥＧＲ弁通過ＥＧＲ率ＲＴＥＧＲの一次遅れで近似するものである。
【０００８】
ここで、（１）式右辺のＥＧＲ弁通過ＥＧＲ率ＲＴＥＧＲは容易に求めることができ、（１）式右辺の加重平均係数ＦＬＯＡＤは時定数相当の値（正確には時定数とは逆数の関係）であり、この値が適合値となる。このため、加重平均係数ＦＬＯＡＤを適合して実験してみたところ、図２８上段に示したように、ＥＧＲ領域でのＥＧＲ率の切換時であれば、無駄時間、無駄時間経過後の追従性（時定数）のいずれも、シリンダ吸入ＥＧＲ率の演算値（ＲＡＴＥＧＲ）とシリンダ吸入ＥＧＲ率の計測値とでよく合致している。
【０００９】
しかしながら、ＥＧＲ領域での燃料カットリカバー時にも、ＥＧＲ領域におけるＥＧＲ率の切換時と同じ無駄時間と加重平均係数（時定数）とを与えたとき、図２８下段に示したように、無駄時間についてシリンダ吸入ＥＧＲ率の演算値よりもシリンダ吸入ＥＧＲ率の計測値のほうが長く、かつ無駄時間経過後の応答の時定数についてシリンダ吸入ＥＧＲ率の計測値のほうが大きくなっている。つまり、ＥＧＲ領域での燃料カットリカバー時にも、ＥＧＲ領域におけるＥＧＲ率の切換時と同じ無駄時間と加重平均係数とを与えたのでは、シリンダ吸入ＥＧＲ率の演算値がシリンダ吸入ＥＧＲ率の計測値（実際値）より大きく外れてしまうのである。
【００１０】
このように、ＥＧＲ領域での燃料カットリカバー時にシリンダ吸入ＥＧＲ率の計測値が演算値よりも大きく遅れるのは次の理由からであると思われる。すなわち、燃料カット中に排気マニホールド、ＥＧＲ通路、吸気マニホールドは全て新気で満たされるため、燃料カットリカバー時にＥＧＲ弁が開かれても直ぐには新気が吸気マニホールドに入るだけである。そして、燃料カットリカバー時に燃焼を開始した気筒の不活性ガスが、排気マニホールド、ＥＧＲ通路、吸気マニホールドと順次流れて燃焼室に到達する。つまり、ＥＧＲ領域におけるＥＧＲ率の切換時であれば、ＥＧＲ率の変化はＥＧＲ弁位置から開始するのに、ＥＧＲ領域での燃料カットリカバー時には、燃焼開始気筒からＥＧＲ弁位置までの容積がシリンダ吸入ＥＧＲ率の変化に影響するために、ＥＧＲ領域での燃料カットリカバー時のシリンダ吸入ＥＧＲ率の応答は、ＥＧＲ領域におけるＥＧＲ率切換時のシリンダ吸入ＥＧＲ率の応答とは無駄時間、加重平均係数とも異なってしまうためである。
【００１１】
そこで、ＥＧＲ領域での燃料カットリカバー時のシリンダ吸入ＥＧＲ率の変化をモデルで示すと、図２下段のようになる。すなわち、ＥＧＲ領域での燃料カットリカバー時のシリンダ吸入ＥＧＲ率の応答は、図２上段に示すＥＧＲ領域におけるＥＧＲ率切換時のシリンダ吸入ＥＧＲ率の応答に較べて無駄時間が長くなりかつ時定数が大きくなる（逆に加重平均係数は小さくなる）と思われる。このように、ＥＧＲ領域での燃料カットリカバー時のシリンダ吸入ＥＧＲ率には、ＥＧＲ領域におけるＥＧＲ率切換時よりも大きな応答遅れが生じているのに、ｔ０の当初より、ＥＧＲ率が３０％のときの要求点火時期に設定したのでは、シリンダ吸入ＥＧＲ率に応答遅れが生じる期間で点火時期の進角のし過ぎとなりノッキングが生じてしまうのである。なお、ＥＧＲ率の最大を５％とするエンジンにおいても、ＥＧＲ領域での燃料カットリカバー時のシリンダ吸入ＥＧＲ率に応答遅れが生じるのであるが、ＥＧＲ率は最大でも５％程度であったため、要求点火時期への影響は殆どなかったものと思われる。
【００１２】
しかしながら、ここで考察した、ＥＧＲ弁通過ＥＧＲ率とは別にシリンダ吸入ＥＧＲ率を導入する点、またシリンダ吸入ＥＧＲ率を導入しても特にＥＧＲ領域での燃料カットリカバー時のシリンダ吸入ＥＧＲ率に、ＥＧＲ領域でのＥＧＲ率切換時のシリンダ吸入ＥＧＲ率の応答よりも大きな応答遅れが生じる点、について上記特許文献１に一切記載されていない。
【００１３】
そこで本発明は、４０％以上といった高率のＥＧＲ率あるいは大量のＥＧＲガス量を実現しているエンジンにあっても、ＥＧＲ領域での燃料カットリカバー時におけるノッキングを防止することが可能な点火時期制御方法及び点火時期制御装置を提供することを目的とする。
【課題を解決するための手段】
【００１４】
本発明は、排気の一部を吸気通路に還流させるためのＥＧＲ弁を備え、所定のＥＧＲ領域においてＥＧＲガス量またはＥＧＲ率を可変に制御し、許可条件が成立したとき燃料カットを行い、その後に燃料カットからのリカバー条件が成立したとき燃料供給を再開し、前記ＥＧＲ領域での前記燃料供給再開時のシリンダ吸入ＥＧＲガス量またはシリンダ吸入ＥＧＲ率の応答を第１応答として無駄時間で算出し、この算出した第１応答に基づいて点火時期を算出し、この算出した点火時期で火花点火を実行する一方で、燃料カット中の時間または前記燃料カット中のサイクル数を計測し、前記無駄時間を、この燃料カット中の時間または燃料カット中のサイクル数に応じて算出するように構成する。
【発明の効果】
【００１６】
本発明によれば、排気の一部を吸気通路に還流させるためのＥＧＲ弁を備え、所定のＥＧＲ領域においてＥＧＲガス量またはＥＧＲ率を可変に制御し、許可条件が成立したとき燃料カットを行い、その後に燃料カットからのリカバー条件が成立したとき燃料供給を再開し、ＥＧＲ領域での燃料供給再開時のシリンダ吸入ＥＧＲガス量またはシリンダ吸入ＥＧＲ率の応答を第１応答として無駄時間で算出し、この算出した第１応答に基づいて点火時期を算出し、この算出した点火時期で火花点火を実行する一方で、燃料カット中の時間または前記燃料カット中のサイクル数を計測し、前記無駄時間を、この燃料カット中の時間または燃料カット中のサイクル数に応じて算出するので、４０％以上といった高率のＥＧＲ率や大量のＥＧＲガス量を実現しているエンジンにあっても、ＥＧＲ領域での燃料供給再開時におけるノッキングを防止することができる。
【発明を実施するための最良の形態】
【００１８】
以下、図面に基づき本発明の実施形態について説明する。
【００１９】
図１は、エンジンの点火時期制御方法の実施に直接使用するエンジンの点火時期制御装置を有するエンジンの概略図である。図示しないが、エンジンは車両に搭載されている。
【００２０】
空気は吸気コレクタ２に蓄えられた後、吸気マニホールド３を介して各気筒の燃焼室５に導入される。燃料は各気筒の吸気ポート４に配置された燃料インジェクタ２１より噴射供給される。空気中に噴射された燃料は気化しつつ空気と混合してガス（混合気）を作り燃焼室５に流入する。この混合気は吸気弁１５が閉じることで燃焼室５内に閉じこめられ、ピストン６の上昇によって圧縮される。
【００２１】
この圧縮混合気に対して高圧火花により点火を行うため、パワートランジスタ内蔵の点火コイルを各気筒に配した電子配電システムの点火装置１１を備える。すなわち、点火装置１１は、バッテリからの電気エネルギーを蓄える点火コイル１３と、点火コイル１３の一次側への通電、遮断を行うパワートランジスタと、燃焼室５の天井に設けられ点火コイル１３の一次電流の遮断によって点火コイル１３の二次側に発生する高電圧を受けて、火花放電を行う点火プラグ１４とからなっている。
【００２２】
燃費が最良となる点火時期が基本点火時期として定められており、エンジンコントローラ３１では運転条件（エンジンの負荷と回転速度）に応じて基本点火時期を演算し、実際のクランク角がこの点火時期に一致するとき、パワートランジスタ１３を介して点火プラグ１４の一次側電流を遮断することにより、点火時期を制御する。
【００２３】
この点火時期は圧縮上死点より少し手前にあり、点火プラグ１４により火花が飛ばされ燃焼室５内の圧縮混合気に着火されると、火炎が広がりやがて爆発的に燃焼し、この燃焼によるガス圧がピストン６を押し下げる仕事を行う。この仕事はクランクシャフト７の回転力として取り出される。燃焼後のガス（排気）は排気弁１６が開いたとき排気通路８へと排出される。
【００２４】
排気通路８には三元触媒９を備える。三元触媒９は排気の空燃比が理論空燃比を中心とした狭い範囲（ウインドウ）にあるとき、排気に含まれるＨＣ、ＣＯ、ＮＯｘといった有害三成分を同時に効率よく除去できる。空燃比は吸入空気量と燃料量の比であるので、エンジンの１サイクル（４サイクルエンジンではクランク角で７２０°区間）当たりに燃焼室５に導入される吸入空気量と、燃料インジェクタ２１からの燃料噴射量との比が理論空燃比となるように、エンジンコントローラ３１ではエアフローメータ３２からの吸入空気流量の信号とクランク角センサ（３３、３４）からの信号に基づいて燃料インジェクタ２１からの燃料噴射量を定めると共に、三元触媒９の上流に設けたＯ2センサ（図示しない）からの信号に基づいて空燃比をフィードバック制御している。
【００２５】
吸気コレクタ２の上流には吸気絞り弁２３がスロットルモータ２４により駆動される、いわゆる電子制御スロットル２２を備える。運転者が要求するトルクはアクセルペダル４１の踏み込み量（アクセル開度）に現れるので、エンジンコントローラ３１ではアクセルセンサ４２からの信号に基づいて目標トルクを定め、この目標トルクを実現するための目標空気量を定め、この目標空気量が得られるようにスロットルモータ２４を介して吸気絞り弁２３の開度を制御する。
【００２６】
燃費向上とＮＯｘ低減のためＥＧＲ装置を備える。ＥＧＲ装置は、排気通路８と吸気マニホールド３を連通するＥＧＲ通路２５と、このＥＧＲ通路２５を介して吸気マニホールド３へと流れるＥＧＲガス量（あるいはＥＧＲ率）を調整し得るＥＧＲ弁２６と、このＥＧＲ弁２６を駆動するアクチュエータ２７（例えばステップモータ）とからなり、エンジンコントローラ３１では所定のＥＧＲ領域において目標ＥＧＲ率（または目標ＥＧＲガス量）が得られるようにＥＧＲ弁開度を制御する。ＥＧＲ領域は図７に示したように目標ＥＧＲ率がゼロでない領域で、そのときのエンジン回転速度Ｎｅと基本噴射パルス幅Ｔｐ（エンジン負荷相当）とから定まる運転条件に対応する目標ＥＧＲ率がゼロでなければＥＧＲ領域である。ＥＧＲ領域内はさらに、目標ＥＧＲ率の違いによって大、中、小の３つの領域に分けられ、４０％以上のＥＧＲ率を設定している。そして、ＥＧＲガスが吸気マニホールド３に導入されると、ポンピングロスが減ってそのぶん燃費がよくなり、また燃焼温度が低くなりＮＯｘの発生が抑制される。
【００２７】
一方、エンジンコントローラ３１では、車両走行中の燃料消費の削減のため、燃料カット条件（許可条件）が成立したとき、燃料インジェクタ２１からの燃料供給を遮断する燃料カットを行い、その後に燃料カットからのリカバー条件が成立したとき燃料インジェクタ２１からの燃料供給を再開する。
【００２８】
さて、ＥＧＲ領域で４０％以上のＥＧＲ率を実現しているエンジンにおいて、燃料カットの途中でアクセルペダル４１を踏み込んで燃料カットリカバーを行わせたとき、図２７に示したように、燃料カットリカバーの直後にノッキングが生じることが判明した。図２７上段おいては、上よりスロットル弁開度ＴＶＯ、アクセルペダル開度ＡＰＯ、点火時期ＡＤＶ、ノック制御による点火時期遅角量ＢＥＴＡ、ノック判定フラグｆＫＮＯＣＫの、また図２７下段おいては、上より空燃比Ａ／Ｆ、吸気管圧力ＢＯＯＳＴ、目標当量比ＴＦＢＹＡ、シリンダ吸入ＥＧＲ率ＲＡＴＥＧＲの各変化を示しており、ｔ０のタイミングでアクセルペダル開度をゼロ以外の値にした（アクセルペダル４１を踏み込んだ）とき、燃料カットリカバーのため目標当量比ＴＦＢＹＡがゼロより大きくなってｔ１のタイミングで１．０（理論空燃比）となり、ｔ１より少し遅れたｔ２のタイミングでシリンダ吸入ＥＧＲ率ＲＡＴＥＧＲが立ち上がると共に、その後のｔ３のタイミングよりｔ４のタイミングまでの区間でノック判定フラグｆＫＮＯＣＫが３回立ち上がっている（ノッキングが生じている）ことがわかる。
【００２９】
４０％以上といった高率のＥＧＲ率を実現しているエンジンにおいて、ＥＧＲ領域での燃料カットリカバー時にノッキングが生じた原因を解析したところを次に述べる。
【００３０】
ＥＧＲ中であれば、ＥＧＲガスはＥＧＲ弁よりＥＧＲ通路を経て吸気マニホールドに入り燃焼室へと吸入されるため、シリンダ吸入ＥＧＲ率は、ＥＧＲ弁通過ＥＧＲ率を基準として、無駄時間と一次遅れの応答との組み合わせで表すことができる。
【００３１】
これを図２上段に示すと、ＥＧＲ領域においてｔ０のタイミングでＥＧＲ率が３０％より５０％へと切換えられたとき、シリンダ吸入ＥＧＲ率ＲＡＴＥＧＲは、ｔ１までの無駄時間ＥＧＲＤＬＹ＃の経過中は３０％のままであり、無駄時間ＥＧＲＤＬＹ＃が経過するｔ１のタイミングより立ち上がり５０％に向けて追従している。ｔ１からの無駄時間ＥＧＲＤＬＹ＃経過後のシリンダ吸入ＥＧＲ率ＲＡＴＥＧＲは、ＥＧＲ弁通過ＥＧＲ率ＲＴＥＧＲを用いて次式により算出することができる。
【００３２】
ＲＡＴＥＧＲ＝ＲＴＥＧＲ×ＦＬＯＡＤ＋ＲＡＴＥＧＲold×（１−ＦＬＯＡＤ）
…（１）
ただし、ＲＴＥＧＲ     ：ＥＧＲ弁通過ＥＧＲ率、
ＦＬＯＡＤ     ：加重平均係数、
ＲＡＴＥＧＲold：シリンダ吸入ＥＧＲ率前回値、
（１）式はｔ１からのシリンダ吸入ＥＧＲ率ＲＡＴＥＧＲを、ＥＧＲ弁通過ＥＧＲ率ＲＴＥＧＲの一次遅れで近似するものである。
【００３３】
ここで、（１）式右辺のＥＧＲ弁通過ＥＧＲ率ＲＴＥＧＲは容易に求めることができ、（１）式右辺の加重平均係数ＦＬＯＡＤは時定数相当の値（正確には時定数とは逆数の関係）であり、この値が適合値となる。このため、加重平均係数ＦＬＯＡＤを適合して実験してみたところ、図２８上段に示したように、ＥＧＲ領域でのＥＧＲ率の切換時であれば無駄時間、無駄時間経過後の追従性（時定数）のいずれも、シリンダ吸入ＥＧＲ率の演算値（ＲＡＴＥＧＲ）とシリンダ吸入ＥＧＲ率の計測値とでよく合致している。
【００３４】
しかしながら、ＥＧＲ領域での燃料カットリカバー時にも、ＥＧＲ領域におけるＥＧＲ率の切換時と同じ無駄時間と加重平均係数（時定数）とを与えたとき、図２８下段に示したように、無駄時間についてシリンダ吸入ＥＧＲ率の演算値よりもシリンダ吸入ＥＧＲ率の計測値のほうが長く、かつ無駄時間経過後の応答の時定数についてシリンダ吸入ＥＧＲ率の計測値のほうが大きくなっている。つまり、ＥＧＲ領域での燃料カットリカバー時にも、ＥＧＲ領域におけるＥＧＲ率の切換時と同じ無駄時間と加重平均係数とを与えたのでは、シリンダ吸入ＥＧＲ率の演算値がシリンダ吸入ＥＧＲ率の計測値（実際値）より大きく外れてしまうことになる。
【００３５】
そこで、本実施形態では、改めてシリンダ吸入ＥＧＲ率（あるいはシリンダ吸入ＥＧＲガス量）を考察する。
【００３６】
上記（１）式は次のようにして導いたものである。過渡時におけるＥＧＲ量変化をモデルを用いて表すと、
Ｍegr ｖ−Ｍegr ｃｙｌ＝（Ｖｍ／Ｖｃ）×ｄ（Ｍegr ｃｙｌ）／ｄｔ
…（補１）
であるので、
Ｍegr ｖ−Ｍegr ｃｙｌ＝１２０×Ｖｍ／（ＶＯＬ×Ｎｅ×新規割合×Δｔ）
×（Ｍegr ｃｙｌ−Ｍegr ｃｙｌold）
…（補２）
ただし、Ｍegr ｖ       ：ＥＧＲ弁通過ＥＧＲガス量、
Ｍegr ｃｙｌ   ：シリンダ吸入ＥＧＲガス量、
Ｍegr ｃｙｌold：Ｍegr ｃｙｌの前回値（Δｔ前の値）、
Ｖｍ            ：吸気容積、
Ｖｃ            ：シリンダ吸入体積、
ＶＯＬ          ：排気量、
Δｔ            ：制御周期、
と表される。
【００３７】
ここで、１２０×Ｖｍ／（ＶＯＬ×Ｎｅ×新規割合×Δｔ）＝Ｋとおくと、（補２）式は次のようになる。
【００３８】
Ｍegr ｃｙｌ＝１／（１＋Ｋ）×Ｍegr ｖ＋Ｋ／（１＋Ｋ）×Ｍegr ｃｙｌold
…（補３）
さらに、１／（１＋Ｋ）＝ＦＬＯＡＤとして、（補３）式を変形すると次の式が得られる。
【００３９】
Ｍegr ｃｙｌ＝ＦＬＯＡＤ×Ｍegr ｖ
＋Ｍegr ｃｙｌold×（１−ＦＬＯＡＤ）
…（補４）
（補４）式において「シリンダ吸入ＥＧＲガス量Ｍegr ｃｙｌ」→「シリンダ吸入ＥＧＲ率ＲＡＴＥＧＲ」、「シリンダ吸入ＥＧＲガス量前回値Ｍegr ｃｙｌold」→「シリンダ吸入ＥＧＲ率前回値ＲＡＴＥＧＲold」、「ＥＧＲ弁通過ＥＧＲガス量Ｍegr ｖ」→「ＥＧＲ弁通過ＥＧＲ率ＲＴＥＧＲ」の置き換えを行うと、上記（１）式が得られる。
【００４０】
さて、上記（補４）式をＥＧＲ領域での燃料カットリカバー時に当てはめると、次のようなことが考えられる。
〈１〉ＥＧＲ弁通過ＥＧＲ量Ｍegr ｖ、シリンダ吸入ＥＧＲ量Ｍegr ｃｙｌ、新規割合      は燃料カット時間の関数となる。
〈２〉燃料カットリカバー直後の１サイクル目の燃焼は、Ｍegr ｖ−Ｍegr ｃｙｌ＝０      （Ｏ2濃度として）、新規割合＝１００％となり、２サイクル目以降、Ｏ2とＣＯ2が混      合していく。
〈３〉対象となる吸気容積Ｖｍとして、排気マニホールドとＥＧＲ弁２６までのＥＧＲ通      路分の容積が加算されるため、ＥＧＲ領域での燃料カットリカバー時のシリンダ吸      入ＥＧＲ率の応答（無駄時間及び加重平均係数ＦＬＯＡＤ）はＥＧＲ領域でのＥＧ      Ｒ率切換時のシリンダ吸入ＥＧＲ率の応答とは異なったものとなる。
【００４１】
このようにみてくると、ＥＧＲ領域での燃料カットリカバー時のシリンダ吸入ＥＧＲ率の算出に際しては、ＥＧＲ領域でのＥＧＲ率切換時のシリンダ吸入ＥＧＲ率の算出に用いる無駄時間及び加重平均係数とは別に、新たに無駄時間、加重平均係数を設定することが必要である。
【００４２】
そこで、本実施形態では、図２上段に示したように、ＥＧＲ領域でのＥＧＲ率切換時のシリンダ吸入ＥＧＲ率の応答モデルを設定すると共に、図２下段に示したように、図２上段に示したＥＧＲ領域でのＥＧＲ率切換時のシリンダ吸入ＥＧＲ率の応答モデルとは別に、ＥＧＲ領域での燃料カットリカバー時のシリンダ吸入ＥＧＲ率の応答モデルを設定する。ここで、ＥＧＲ領域での燃料カットリカバー時とは、例えば図７おいて目標ＥＧＲ率が大や中の領域で燃料カットリカバーが行われる場合である。
【００４３】
以下では、ＥＧＲ領域での燃料カットリカバー時のシリンダ吸入ＥＧＲ率の応答（第１応答）における無駄時間及び加重平均係数と、ＥＧＲ領域でのＥＧＲ率切換時のシリンダ吸入ＥＧＲ率の応答（第２応答）における無駄時間及び加重平均係数とを区別するため、ＥＧＲ領域での燃料カットリカバー時のシリンダ吸入ＥＧＲ率の応答における無駄時間及び加重平均係数を、「第１無駄時間」及び「第１加重平均係数」と、またＥＧＲ領域でのＥＧＲ率切換時のシリンダ吸入ＥＧＲ率の応答における無駄時間及び加重平均係数を、「第２無駄時間」及び「第２加重平均係数」という。
【００４４】
具体的には、次のように無駄時間と加重平均係数を設定する。
〔１〕ＥＧＲ領域での燃料カットリカバー時：
上記〈１〉に記載したように、第１無駄時間ＥＧＲＤＹＦＣを燃料カット中のサイクル数の関数とする。
【００４５】
第１加重平均係数ＦＬＯＡＤ１を次の式により算出する。
【００４６】
ＦＬＯＡＤ１＝ＫＥＧＯＮＦＣ×ＫＮＥＨＯ                …（補５）
ただし、ＫＥＧＯＮＦＣ：基本加重平均係数、
ＫＮＥＨＯ    ：回転速度補正値、
ここで、（補５）式の基本加重平均係数ＫＥＧＯＮＦＣはスロットル弁開度ＴＶＯをパラメータとするテーブルで、同じく回転速度補正値ＫＮＥＨＯは回転速度Ｎｅをパラメータとするテーブルで与える。
〔２〕ＥＧＲ領域でのＥＧＲ率切換時：
第２無駄時間ＤＧＲＤＬＹ＃は一定値とする。
【００４７】
第２加重平均係数ＦＬＯＡＤ２はＥＧＲ率の増加時と減少時に分けて次の式により算出する。
【００４８】
増加時：ＦＬＯＡＤ２＝ＫＥＧＲＯＮ×ＫＮＥＨＯＳ        …（補６）
減少時：ＦＬＯＡＤ２＝ＫＥＧＲＯＦ×ＫＮＥＨＯＳ        …（補７）
ただし、ＫＥＧＲＯＮ：ＥＧＲ率増加時の基本加重平均係数、
ＫＥＧＲＯＦ：ＥＧＲ率減少時の基本加重平均係数、
ＫＮＥＨＯＳ：回転速度補正値
ここで、（補６）、（補７）式の基本加重平均係数ＫＥＧＲＯＮ、ＫＥＧＲＯＦはスロットル弁開度ＴＶＯをパラメータとするのテーブルで、同じく回転速度補正値ＫＮＥＨＯＳは回転速度Ｎｅをパラメータとするテーブルで与える。
【００４９】
エンジンコントローラ３１で実行されるこの制御内容を以下、フローチャートを参照して詳述する。
【００５０】
図３はＥＧＲ弁通過ＥＧＲ率ＲＴＥＧＲ［％］を算出するためのもので、一定時間毎（例えば１０ｍｓ毎）に実行する。
【００５１】
ステップ１ではスロットルセンサ４３により検出されるスロットル弁開度ＴＶＯを読み込み、ステップ２でこのスロットル弁開度ＴＶＯより図４を内容とするテーブルを検索することにより、スロットル弁開口面積ＡＴＶＯ［ｍ2］を算出する。
【００５２】
ステップ３ではエンジン回転速度Ｎｅ［ｒｐｍ］と基本燃料噴射パルス幅Ｔｐ［ｍｓ］（エンジン負荷相当）より図５を内容とするマップを検索することにより、ＥＧＲガス／新気換算係数ＫＱＥＧＲ［％］を算出する。このＥＧＲガス／新気換算係数ＫＱＥＧＲは目標ＥＧＲ弁開口面積を与えるための係数である。実際の値は適合する。
【００５３】
ステップ４では次式により点火時期補正用開口面積ＴＥＧＲＡＲ［ｍ2］を算出する。
【００５４】
ＴＥＧＲＡＲ＝ＡＴＶＯ×ＫＱＥＧＲ                      …（２）
実ＥＧＲ弁開口面積ＲＥＧＲＡＲが実ＥＧＲ率のときのＥＧＲ弁開口面積であるので、（２）式の点火時期補正用開口面積ＴＥＧＲＡＲは目標ＥＧＲ率のときのＥＧＲ弁開口面積（つまり目標ＥＧＲ弁開口面積）を求めるようにしたものである。
【００５５】
ステップ５では実ＥＧＲ弁開口面積ＲＥＧＲＡＲ［ｍ2］を算出する。ＥＧＲ弁２６が例えばステップモータにより駆動される場合、目標開度のステップ変化に対し、所定時間に所定開度ずつステップ的に変化するので、そのステップ数より実ＥＧＲ弁開口面積ＲＥＧＲＡＲを求めればよい。
【００５６】
ステップ６ではＥＧＲ弁通過ＥＧＲ率ＲＴＥＧＲ［％］を次の式により算出する。
【００５７】
ＲＴＥＧＲ＝ＲＥＧＲＡＲ／ＴＥＧＲＡＲ                  …（３）
ＥＧＲ弁通過ＥＧＲ率ＲＴＥＧＲは、目標ＥＧＲ率［％］がステップ的に大きくなったときに、これに一次遅れで追従する値である（図２の（ａ）、（ｄ）の一点鎖線参照）。
【００５８】
ステップ７ではＥＧＲ弁通過ＥＧＲ率ＲＴＥＧＲのシフト操作を行う。これは、現サイクル（今回のサイクル）より数えて過去の４サイクル前までのＥＧＲ弁通過ＥＧＲ率ＲＴＥＧＲ値を記憶しておく操作である。例えば、メモリがＸ１、Ｘ２、Ｘ３、Ｘ４の合計４個あるとして、基準気筒（例えば燃料カットリカバー時の燃焼開始気筒）について１サイクルが経過する毎にメモリＸ４の値を捨て、メモリＸ３の値をメモリＸ４に移し、メモリＸ２の値をメモリＸ３に移し、メモリＸ１の値をメモリＸ２に移し、今回算出したＥＧＲ弁通過ＥＧＲ率ＲＴＥＧＲをメモリＸ１に移すことで、基準気筒についてメモリＸ１、Ｘ２、Ｘ３、Ｘ４に現サイクルより過去４サイクル前までのＥＧＲ弁通過ＥＧＲ率ＲＴＥＧＲの値が１サイクル毎に保存される。
【００５９】
図６（Ａ）、図６（Ｂ）は、無駄時間（第１無駄時間）及び加重平均係数（第１加重平均係数と第２加重平均係数）を算出するためのもので、一定時間毎（例えば１０ｍｓ毎）に実行する。
【００６０】
ステップ１１、１２では今回に燃料カットフラグが１であるか否か、また前回に燃料カットフラグがゼロであったか否かをみる。燃料カットフラグは燃料カット許可条件が成立したときにゼロより１へと切換わるフラグである。ここで、燃料カット許可条件とは、例えば自動変速機を備えるエンジンの場合に、車両走行中にアクセルペダル４１を離したときの回転速度Ｎｅが所定の燃料カット回転速度以上でかつ車速が所定車速のときなどである。
【００６１】
今回に燃料カットフラグが１でかつ前回に燃料カットフラグがゼロであったとき、つまり燃料カットフラグがゼロより１へと切換わった直後であるときには、ステップ１３に進んでカウンタを起動する。このカウンタは、燃料カット中の経過サイクル数を計測するためのものである。例えば、燃料カットリカバー時の燃焼開始気筒は予め定まっているので、この燃焼開始気筒について１サイクル（４気筒エンジンではクランク角で７２０ｄｅｇ）が経過する毎にカウンタ値を１づつ増してゆく。
【００６２】
ステップ１１、１２で今回、前回とも燃料カットフラグが１であるとき、つまり燃料カット中であればステップ１４、１５、１６に進み、運転条件がＥＧＲ領域にあるか否か、今回に燃料カットリカバーフラグが１であるか否か、また前回に燃料カットリカバーフラグがゼロであったか否かをみる。
【００６３】
ＥＧＲ領域は図７に示したように目標ＥＧＲ率がゼロでない領域である。そのときのエンジン回転速度Ｎｅと基本噴射パルス幅Ｔｐ（エンジン負荷相当）とから定まる運転条件に対応する目標ＥＧＲ率がゼロでなければＥＧＲ領域である。ＥＧＲ領域内はさらに、目標ＥＧＲ率の違いによって大、中、小の３つの領域に分けられている。
【００６４】
燃料カットリカバーフラグは燃料カットリカバー条件が成立したときにゼロより１へと切換わるフラグである。ここで、燃料カットリカバー条件とは、燃料カット中にアクセルペダル４１を踏み込んだときあるいは自動変速機を備えるエンジンの場合にエンジン回転速度が所定の燃料カットリカバー回転速度以下となったときなどである。
【００６５】
運転条件がＥＧＲ領域にありかつ今回に燃料カットリカバーフラグが１でかつ前回に燃料カットリカバーフラグがゼロであったとき、つまりＥＧＲ領域において燃料カットリカバーフラグがゼロより１へと切換わった直後（燃料カットリカバー時）であるときには、ステップ１７に進んでそのときのカウンタ値を燃料カット中サイクル数ＣＮＴｆｃとして取り込む。この燃料カット中サイクル数ＣＮＴｆｃは、燃焼開始気筒についてこのサイクル数の間、燃料カットが行われたことを表す。
【００６６】
ステップ１８では、この取り込んだ燃料カット中サイクル数ＣＮＴｆｃに応じて第１無駄時間ＥＧＲＤＹＦＣを算出する。
【００６７】
第１無駄時間ＥＧＲＤＹＦＣとして、具体的には図８に示したように、５〜８サイクルを与えている。つまり、５サイクルを最小、８サイクルを最大として燃料カット中サイクル数ＣＮＴｆｃが大きいほど無駄時間ＥＧＲＤＹＦＣとしてのサイクル数が大きくなるようにしている。燃料カット中サイクル数ＣＮＴｆｃが大きいほど第１無駄時間ＥＧＲＤＹＦＣとしてのサイクル数を大きくしているのは、燃料カット中サイクル数ＣＮＴｆｃが大きいほど、ＥＧＲ領域での燃料カットリカバリー時に燃焼開始気筒からの不活性ガスの燃焼室５への導入が遅れるためである。
【００６８】
また、最大の８サイクルに達した後は第１無駄時間としてのサイクル数を一定としている。
【００６９】
第１無駄時間ＥＧＲＤＹＦＣの算出方法はこれに限られるものでなく、時間で与えてもかまわない。例えば、５サイクルに相当する時間を最小、８サイクルに相当する時間を最大として燃料カット中サイクル数ＣＮＴｆｃが大きいほど第１無駄時間ＥＧＲＤＹＦＣが長くなるようにし、最大の８サイクルに相当する時間に達した後は一定とする。
【００７０】
ステップ１９、２０では、スロットルセンサ４３により検出されるスロットル弁開度ＴＶＯから図９を内容とするテーブルを検索することにより、基本加重平均係数ＫＥＧＯＮＦＣ［％］を、またエンジン回転速度Ｎｅから図１０を内容とするテーブルを検索することにより加重平均係数の回転速度補正値ＫＮＥＨＯ［無名数］をそれぞれ求め、ステップ２１でこれらを乗算して、つまり次の式により、第１加重平均係数ＦＬＯＡＤ１［％］を算出する。
【００７１】
ＦＬＯＡＤ１＝ＫＥＧＯＮＦＣ×ＫＮＥＨＯ                  …（４）
ＥＧＲ領域での燃料カットリカバー時のシリンダ吸入ＥＧＲ率の応答における時定数は、基本的には吸気系の応答の時定数で定まり、吸気系の応答の時定数は、新気割合（この値に相関する代表値はスロットル弁開度ＴＶＯ）と、単位時間あたりの吸い込み回数（この値に相関する代表値は回転速度Ｎｅ）とで決まるため、スロットル弁開度ＴＶＯと回転速度Ｎｅをパラメータとして加重平均係数ＦＬＯＡＤ１を求めるようにしたものである。      
【００７２】
ここで、新気割合つまりスロットル弁開度ＴＶＯが大きくなるほど吸気系の応答の時定数が小さくなるので、時定数と逆数の関係にある基本加重平均係数ＫＥＧＯＮＦＣは、図９のようにスロットル弁開度が大きくなるほど大きくなる値である。
【００７３】
また、単位時間当たりの吸い込み回数つまり回転速度Ｎｅが大きくなるほど吸気系の応答の時定数が小さくなるので、回転速度補正値ＫＮＥＨＯは、図１０のように、基本回転速度Ｎ０（基本加重平均係数ＫＥＧＯＮＦＣを適合したときのエンジン回転速度）のとき１．０となり、この基本回転速度Ｎ０より高いとき１．０を超える値となり、この逆に基本回転速度Ｎ０より低いとき１．０未満の正の値としている。
【００７４】
実際には、吸気容積のほか、排気マニホールド容積とＥＧＲ弁２６までのＥＧＲ通路２５分容積との合計の容積が時定数に影響するので、これらの容積をも考慮して第１加重平均係数ＦＬＯＡＤ１の設定を行なう必要がある。また、新気割合が、ＥＧＲ領域でのＥＧＲ率切換時とは異なり、燃料カット中サイクル数ＣＮＴｆｃ（または時間）で変化するため、燃料カット中サイクル数ＣＮＴｆｃで時定数（基本加重平均係数）を補正するようにすれば第１加重平均係数ＦＬＯＡＤ１の算出精度をさらに向上できる。
【００７５】
このようにして、第１無駄時間ＥＧＲＤＹＦＣ及び第１加重平均係数ＦＬＯＡＤ１の設定を終了したらステップ２２で次回の燃料カットリカバー時に備えてカウンタ値＝０とする。
【００７６】
一方、ＥＧＲ領域にないとき、ＥＧＲ領域にあっても今回に燃料カットリカバーフラグが１でないときあるいは今回、前回とも燃料カットリカバーフラグ＝１であるときにはステップ１４〜１６より１７〜２１を飛ばしてステップ２２に進みカウンタ値＝０として今回の処理を終了する。つまり、第１無駄時間ＥＧＲＤＹＦＣ及び第１加重平均係数ＦＬＯＡＤ１の設定はＥＧＲ領域における燃料カットリカバー時に一度行うだけである。
【００７７】
次に、ステップ１１で今回に燃料カットフラグが１でないときには図６（Ｂ）のステップ２３以降に進む。
【００７８】
ステップ２３では、目標ＥＧＲ率の切換時（ＥＧＲ率変化時）であるか否かをみる。ここでは、簡単のため目標ＥＧＲ率を図７で示したように大、中、小、ゼロと４段階に設けている場合で説明すると、目標ＥＧＲ率がゼロより小へ、小より中へ、中より大へと大きくなる側に切換わり、あるいはこの逆に大より中へ、中より小へ、小よりゼロへと小さくなる側に切換わるときが、目標ＥＧＲ率の切換時である。目標ＥＧＲ率がゼロ、小、中、大の状態を維持しているときは、目標ＥＧＲ率の切換時でない。目標ＥＧＲ率の切換時でないときにはそのまま今回の処理を終了する。
【００７９】
目標ＥＧＲ率の切換時であるときにはステップ２４に進み、算出済みフラグをみる。算出済みフラグは後述するように、第２加重平均係数ＦＬＯＡＤ２の算出を終了したとき、算出済みフラグ（ゼロに初期設定）＝１となるフラグである（ステップ３２）。ここでは算出済みフラグ＝０であるとして説明すると、このときには第２加重平均係数ＦＬＯＡＤ２を算出するためステップ２５以降に進む。
【００８０】
ステップ２５〜３１は、前述の第１加重平均係数ＦＬＯＡＤ１の算出方法と同様にして、第２加重平均係数ＦＬＯＡＤ２［％］を算出する部分である。
【００８１】
まず、ステップ２５ではステップ２３での目標ＥＧＲ率の切換がさらにＥＧＲ率の増大側であるのか、それともＥＧＲ率の減少側であるのかをみる。目標ＥＧＲ率が増加する側の切換時である場合には、ステップ２６、２７に進みスロットルセンサ４３により検出されるスロットル弁開度ＴＶＯから図１１を内容とするテーブルを検索することにより、ＥＧＲ率増加時の基本加重平均係数ＫＥＧＲＯＮ［％］を、またエンジン回転速度Ｎｅから図１２を内容とするテーブルを検索することにより加重平均係数の回転速度補正値ＫＮＥＨＯＳ［無名数］をそれぞれ求め、ステップ２８でこれらを乗算して、つまり次の式により、第２加重平均係数ＦＬＯＡＤ２［％］を算出する。
【００８２】
ＦＬＯＡＤ２＝ＫＥＧＲＯＮ×ＫＮＥＨＯＳ                …（５）
一方、目標ＥＧＲ率が減少する側の切換時である場合には、ステップ２５よりステップ２９、３０に進みスロットルセンサ４３により検出されるスロットル弁開度ＴＶＯから図１３を内容とするテーブルを検索することにより、ＥＧＲ率減少時の基本加重平均係数ＫＥＧＲＯＦ［％］を、またエンジン回転速度Ｎｅから図１２を内容とするテーブルを検索することにより加重平均係数の回転速度補正値ＫＮＥＨＯＳ［無名数］をそれぞれ求め、ステップ３１でこれらを乗算して、つまり次の式により、第２加重平均係数ＦＬＯＡＤ２［％］を算出する。
【００８３】
ＦＬＯＡＤ２＝ＫＥＧＲＯＦ×ＫＮＥＨＯＳ                …（６）
図１１〜図１３に示した特性の実際の値は適合により求める。
【００８４】
このようにして第２加重平均係数ＦＬＯＡＤ２の算出を終了したらステップ３２で算出済みフラグ意＝１とする。この算出済みフラグ＝１により、次回よりステップ２５以降に進むことができない。つまり、第２加重平均係数ＦＬＯＡＤ２の設定はＥＧＲ領域における目標ＥＧＲ率の切換時に一度行うだけである。
【００８５】
図１４はシリンダ吸入ＥＧＲ率ＲＡＴＥＧＲ［％］を算出するためのもので、一定時間毎（例えば１０ｍｓ毎）に実行する。
【００８６】
ステップ４１では運転条件がＥＧＲ領域にあるか否かをみる。運転条件がＥＧＲ領域になければステップ４２に進んでシリンダ吸入ＥＧＲ率ＲＡＴＥＧＲ＝０とする。
【００８７】
運転条件がＥＧＲ領域にあるときにはステップ４１よりステップ４３に進み、ＥＧＲ領域での燃料カットリカバー時より所定のサイクル数（例えば５０サイクル）が経過しているか否かをみる。ＥＧＲ領域での燃料カットリカバー時より所定サイクル数が経過していない場合にはステップ４４以降に進む。
【００８８】
ステップ４４〜４８はＥＧＲ領域での燃料カットリカバー時のシリンダ吸入ＥＧＲ率の応答（第１応答）を算出する部分である。
【００８９】
ステップ４４では、燃料カットリカバー時より、図６（Ａ）のステップ１８で算出している第１無駄時間ＥＧＲＤＹＦＣが経過したか否かをみる。
【００９０】
なお、多気筒エンジンの燃料カットリカバーのやり方にはさまざまなものがあり、例えば、全気筒で燃料カットリカバーを行わせたのではトルク段差が生じるので、一部の気筒でまず燃料カットリカバーを行わせ、段階的に燃料カットリカバー気筒数を増やして最終的に全気筒で燃料カットリカバーを行わせることにより、燃料カットリカバー前後で大きなトルク段差が生じることがないようにしたものがある。こうした燃料カットリカバーを行うエンジンの場合には、全気筒燃料カット状態より１気筒でも燃料カットリカバリしたタイミングから所定サイクル数（例えば５０サイクル）が経過しているか否かをみて、全気筒燃料カット状態より１気筒でも燃料カットリカバリしたタイミングから所定サイクル数が経過していない場合にステップ４４に進み、燃料カットリカバー時より、図６（Ａ）のステップ１８で算出している第１無駄時間ＥＧＲＤＹＦＣが経過したか否かをみるようにすればよい。
【００９１】
燃料カットリカバー時より第１無駄時間ＥＧＲＤＹＦＣが経過していなければステップ４５に進み、シリンダ吸入ＥＧＲ率前回値ＲＡＴＥＧＲold［％］としてゼロを採用する。第１無駄時間ＥＧＲＤＹＦＣが経過しない前にはステップ４５の操作を繰り返す。
【００９２】
これは、基準気筒について燃料カットが所定サイクル数続いた後の燃料カットリカバー時には排気マニホールド、ＥＧＲ通路２５、吸気マニホールド３、燃焼室５の全てが新気に置換されてしまっており、再びＥＧＲ弁２６が開いて、燃焼開始気筒の不活性ガスがＥＧＲガスとしてＥＧＲ通路２５、吸気マニホールド３を経て燃焼室５に到達するのに所定の遅れ時間がかかるため、このステップ４４、４５の操作によりその遅れ時間のあいだ（つまり第１無駄時間が経過するまで）シリンダ吸入ＥＧＲ率ＲＡＴＥＧＲをゼロのままに保持するものである。
【００９３】
ステップ４６では、このシリンダ吸入ＥＧＲ率前回値ＲＡＴＥＧＲoldをそのままシリンダ吸入ＥＧＲ率ＲＡＴＥＧＲ［％］に移す。
【００９４】
やがて燃料カットリカバー時より第１無駄時間ＥＧＲＤＹＦＣが経過したときにはステップ４４よりステップ４７に進み、図３のステップ６で算出しているＥＧＲ弁通過ＥＧＲ率ＲＴＥＧＲと、図６（Ａ）のステップ２１で算出している第１加重平均係数ＦＬＯＡＤ１とを用いて、次式により第１無駄時間経過後のシリンダ吸入ＥＧＲ率ＲＡＴＥＧＲ［％］を算出する。
【００９５】
ＲＡＴＥＧＲ＝ＲＴＥＧＲ×ＦＬＯＡＤ１＋ＲＡＴＥＧＲold×（１−ＦＬＯＡＤ１）
…（７）
（７）式は、第１無駄時間ＥＧＲＤＹＦＣ経過後のシリンダ吸入ＥＧＲ率ＲＡＴＥＧＲの変化を、ＥＧＲ弁通過ＥＧＲ率ＲＴＥＧＲの一次遅れで近似するものである。
【００９６】
ステップ４８ではこのシリンダ吸入ＥＧＲ率ＲＡＴＥＧＲの値を次回処理のため、シリンダ吸入ＥＧＲ率前回値ＲＡＴＥＧＲold［％］に移しておく。
【００９７】
上記（７）式右辺のシリンダ吸入ＥＧＲ率前回値ＲＡＴＥＧＲoldの初期値としてはステップ４５で求めている値を用い、２回目からはステップ４８で求めている値を用いる。
【００９８】
そして、燃料カットリカバー時より所定サイクル数が経過するまで、ステップ４７、４８の操作を繰り返す。
【００９９】
やがて燃料カットリカバー時より所定のサイクル数が経過したときにはステップ４９以降に進む。
【０１００】
まず、ステップ４９では図６（Ｂ）のステップ２３と同じに目標ＥＧＲ率の切換時（ＥＧＲ率変化時）であるか否かを、またステップ５０ではその切換時より所定のサイクル数以内であるか否かをみる。
【０１０１】
目標ＥＧＲ率の切換時でありかつその切換時より所定のサイクル数以内であるときにはステップ５１以降に進む。
【０１０２】
ステップ５１〜５５はＥＧＲ領域でのＥＧＲ率切換時のシリンダ吸入ＥＧＲ率の応答（第２応答）を算出する部分である。
【０１０３】
ステップ５１では、目標ＥＧＲ率の切換時を起点として、第２無駄時間ＥＧＲＤＬＹ＃が経過したか否かをみる。この第２無駄時間ＥＧＲＤＬＹ＃としてのサイクル数は、上記の第１無駄時間ＥＧＲＤＹＦＣとしてのサイクル数より小さい値（例えば４サイクルで一定値）である。
【０１０４】
目標ＥＧＲ率の切換時より、基準気筒について第２無駄時間ＥＧＲＤＬＹ＃としての４サイクルが経過していなければステップ５２に進み、この第２無駄時間ＥＧＲＤＬＹ＃としての４サイクル前のＥＧＲ弁通過ＥＧＲ率ＲＴＥＧＲの値をシリンダ吸入ＥＧＲ率前回値ＲＡＴＥＧＲold［％］として採用する。つまり、図３のステップ７でメモリＸ４に４サイクル前のＥＧＲ弁通過ＥＧＲ率を格納しているが、ステップ５２ではこの４サイクル前のＥＧＲ弁通過ＥＧＲ率を格納しているメモリＸ４の値が読み出されてシリンダ吸入ＥＧＲ率前回値ＲＡＴＥＧＲoldに格納される。
【０１０５】
第２無駄時間ＥＧＲＤＬＹ＃としての４サイクルが経過しない前にはステップ５１、５２の操作を繰り返す。これは、基準気筒についてアクチュエータ２７に目標ＥＧＲ率の切換を指示してからそのＥＧＲ率の変化が燃焼室５に達するのに所定の遅れ時間ＥＧＲＤＬＹ＃がかかるため、このステップ５１、５２の操作によりその遅れ時間ＥＧＲＤＬＹ＃のあいだシリンダ吸入ＥＧＲ率ＲＡＴＥＧＲを、目標ＥＧＲ率の切換前の値に保持するものである。
【０１０６】
ステップ５３では、このシリンダ吸入ＥＧＲ率前回値ＲＡＴＥＧＲoldをそのままシリンダ吸入ＥＧＲ率ＲＡＴＥＧＲ［％］に移す。
【０１０７】
やがて目標ＥＧＲ率の切換時より第２無駄時間ＥＧＲＤＬＹ＃が経過したときにはステップ５１よりステップ５４に進み、図３のステップ６で算出しているＥＧＲ弁通過ＥＧＲ率ＲＴＥＧＲと、図６（Ｂ）のステップ２８または３１で算出している第２加重平均係数ＦＬＯＡＤ２とを用いて、次式により第２無駄時間経過後のシリンダ吸入ＥＧＲ率ＲＡＴＥＧＲ［％］を算出する。
【０１０８】
ＲＡＴＥＧＲ＝ＲＴＥＧＲ×ＦＬＯＡＤ２＋ＲＡＴＥＧＲold×（１−ＦＬＯＡＤ２）
…（８）
（８）式は、第２無駄時間ＥＧＲＤＬＹ＃経過後のシリンダ吸入ＥＧＲ率の変化を、ＥＧＲ弁通過ＥＧＲ率ＲＴＥＧＲの一次遅れで近似するものである。
【０１０９】
ステップ５５では、このシリンダ吸入ＥＧＲ率ＲＡＴＥＧＲの値を次回処理のため、シリンダ吸入ＥＧＲ率前回値ＲＡＴＥＧＲold［％］に移す。
【０１１０】
（８）式右辺のシリンダ吸入ＥＧＲ率前回値ＲＡＴＥＧＲoldの初期値としてはステップ５２で求めている値を用い、２回目からはステップ５５で求めている値を用いる。
【０１１１】
そして、目標ＥＧＲ率の切換時より所定のサイクル数が経過するまで、ステップ５４、５５の操作を繰り返す。
【０１１２】
一方、ステップ５０で目標ＥＧＲ率の切換時より所定サイクル数が経過したときには、ステップ５６に進み、次回の目標ＥＧＲ率の切換時に備えて算出済みフラグ＝０とし、ステップ５７では、図３により算出しているＥＧＲ弁通過ＥＧＲ率ＲＴＥＧＲをそのままシリンダ吸入ＥＧＲ率ＲＡＴＥＧＲ［％］とし今回の処理を終了する。ステップ４９で目標ＥＧＲ率の切換時でないときにはステップ５７に進んでステップ５７の操作を実行する。
【０１１３】
次に、このようにして算出したシリンダ吸入ＥＧＲ率ＲＡＴＥＧＲに基づいて点火時期を算出する方法について説明する。ここでは、特開２００４−３３２６４７号公報に記載されている点火時期算出方法に適用した場合で説明する。
【０１１４】
図１５はエンジンコントローラ３１内で行われる点火時期制御のブロック図で、大きくは点火時期演算部５１と点火時期制御部６１とからなる。点火時期演算部５１はさらに初期燃焼期間算出部５２、主燃焼期間算出部５３、燃焼期間算出部５４、基本点火時期算出部５５及び前回燃焼開始時期算出部５６からなる。
【０１１５】
初期燃焼期間算出部５２では、混合気が着火してから火炎核が形成されるまでの期間を初期燃焼期間ＢＵＲＮ１として算出する。主燃焼期間算出部５３では、火炎核が形成されてから燃焼圧力が最大値Ｐｍａｘに達するまでの期間を主燃焼期間ＢＵＲＮ２として算出する。燃焼期間算出部５４では、これら初期燃焼期間ＢＵＲＮ１と主燃焼期間ＢＵＲＮ２との合計を、燃焼開始より最大燃焼圧力Ｐｍａｘに至るまでの燃焼期間ＢＵＲＮとして算出する。基本点火時期算出部５５では、この燃焼期間ＢＵＲＮに基づいてＭＢＴの得られる点火時期（この点火時期を「基本点火時期」という。）ＭＢＴＣＡＬを算出する。
【０１１６】
点火時期制御部６１ではこのようにして算出された基本点火時期を点火時期指令値とし、この指令値で点火プラグ１４が燃焼室５内の混合気に対して着火するように、イグニッションコイル１３への通電角と非通電角を制御する。
【０１１７】
上記のように燃焼期間ＢＵＲＮを初期燃焼期間ＢＵＲＮ１と主燃焼期間ＢＵＲＮ２に分けて算出し、燃焼期間ＢＵＲＮに応じて基本点火時期ＭＢＴＣＡＬを求めるようにしたのは、燃焼解析より得られた結果に基づくものである。以下、燃焼解析に基づくこの点火時期制御をさらに説明する。
【０１１８】
図１６に示すようにＭＢＴ（最大トルクの得られる最小進角値）で混合気に点火した場合に混合気の燃焼圧力が最大値Ｐｍａｘとなるクランク角を基準クランク角θＰＭＡＸ［ｄｅｇＡＴＤＣ］とする。基準クランク角θＰＭＡＸは燃焼方式によらずほぼ一定であり、一般に圧縮上死点後１２〜１５度、最大で圧縮上死点後１０〜２０度の範囲にある。
【０１１９】
図１７に火花点火エンジンにおける燃焼室内の燃焼解析により得られた燃焼質量割合ＢＲ（燃焼ガス質量割合）の変化を示す。燃焼室に供給された燃料に対する燃焼質量の比率を表す燃焼質量割合ＢＲは、点火時に０％であり、完全燃焼によって１００％に達する。基準クランク角θＰＭＡＸにおける燃焼質量割合は一定で約６０％であることが実験により確かめられている。
【０１２０】
燃焼質量割合ＢＲが０％から基準クランク角θＰＭＡＸ相当の約６０％に達するまでの変化代に相当する燃焼期間は、燃焼開始直後で燃焼質量割合にも燃焼圧力にもほとんど変化のない期間である初期燃焼期間と、燃焼質量割合と燃焼圧力が急激に増加する主燃焼期間とに分けられる。初期燃焼期間は、燃焼開始から火炎核が形成されるまでの段階であり、火炎核が形成されるのは燃焼質量割合が０％から２％〜１０％まで変化したときである。この初期燃焼期間中は、燃焼圧力や燃焼温度の上昇速度が小さく、燃焼質量割合の変化に対して初期燃焼期間は長い。初期燃焼期間の長さは燃焼室内の温度や圧力の変化の影響を受けやすい。
【０１２１】
一方、主燃焼期間においては、火炎核から外側へと火炎が伝播するのであり、その火炎速度（つまり燃焼速度）が急上昇する。そのため、主燃焼期間の燃焼質量割合の変化は初期燃焼期間の燃焼質量割合の変化に比べて大きい。
【０１２２】
エンジンコントローラ３１では、燃焼質量割合が２％に達する（変化する）までを初期燃焼期間ＢＵＲＮ１［ｄｅｇ］とし、初期燃焼期間ＢＵＲＮ１の終了後、基準クランク角θＰＭＡＸに至るまでの区間（燃焼室量割合でいえば２％より約６０％に達するまでの間）を主燃焼期間ＢＵＲＮ２［ｄｅｇ］として区別する。そして、初期燃焼期間ＢＵＲＮ１に主燃焼期間ＢＵＲＮ２を加えた合計である燃焼期間ＢＵＲＮ［ｄｅｇ］を算出し、この燃焼期間ＢＵＲＮから基準クランク角θＰＭＡＸ［ｄｅｇＡＴＤＣ］を差し引き、さらに後述する点火無駄時間相当クランク角ＩＧＮＤＥＡＤ［ｄｅｇ］を加えたクランク角位置を、ＭＢＴの得られる点火時期である基本点火時期ＭＢＴＣＡＬ［ｄｅｇＢＴＤＣ］として設定する。
【０１２３】
火炎核の形成される初期燃焼期間での燃焼室５内の圧力、温度は、点火時の圧力、温度とほぼ等価になるが、これから点火時期を算出しようとしているのに、最初から正確な点火時期を設定することはできない。そこで、図１５に示したように前回燃焼開始時期算出部５６で基本点火時期の前回値を前回燃焼開始時期ＭＢＴＣＹＣＬ［ｄｅｇＢＴＤＣ］として算出し、この値を初期燃焼期間算出部５２に対して与えるようにし、初期燃焼期間算出部５２において初期燃焼期間の算出をサイクリックに繰り返すことで、精度の高い結果を時間遅れなしに出すようにしている。
【０１２４】
次に、エンジンコントローラ３１で実行される上記の基本点火時期ＭＢＴＣＡＬの算出を以下のフローチャートを参照しながら詳述する。
【０１２５】
図１８は点火時期の算出に必要な各種の物理量を算出するためのもので、一定時間毎（例えば１０ｍｓ毎）に実行する。
【０１２６】
まずステップ６１では、吸気弁閉時期ＩＶＣ［ｄｅｇＢＴＤＣ］、温度センサ４４により検出されるコレクタ内温度ＴＣＯＬ［Ｋ］、圧力センサ４５により検出されるコレクタ内圧力ＰＣＯＬ［Ｐａ］、温度センサ４６により検出される排気温度ＴＥＸＨ［Ｋ］、図１４で算出されているシリンダ吸入ＥＧＲ率ＲＡＴＥＧＲ［％］、温度センサ４７により検出される冷却水温ＴＷＫ［Ｋ］、目標当量比ＴＦＢＹＡ、クランク角センサ（３３、３４）により検出されるエンジン回転速度Ｎｅ［ｒｐｍ］、点火無駄時間ＤＥＡＤＴＩＭＥ［μｓｅｃ］を読み込む。
【０１２７】
ここで、クランク角センサはクランクシャフト７のポジションを検出するポジションセンサ３３と、吸気用カムシャフト２５ポジションを検出するフェーズセンサ３４とからなり、これら２つのセンサ３３、３４からの信号に基づいてエンジン回転速度Ｎｅ［ｒｐｍ］が算出されている。
【０１２８】
吸気弁閉時期ＩＶＣは既知である。あるいはフェーズセンサ３４により実際の吸気弁閉時期を検出してもかまわない。点火無駄時間ＤＥＡＤＴＩＭＥは一定値である。
【０１２９】
目標当量比ＴＦＢＹＡは図示しない燃料噴射量の算出フローにおいて算出されている。目標当量比ＴＦＢＹＡは無名数であり、理論空燃比を１４．７とすると、次式により表される値である。
【０１３０】
ＴＦＢＹＡ＝１４．７／目標空燃比                        …（１１）
例えば（１１）式より目標空燃比が理論空燃比のときＴＦＢＹＡ＝１．０となり、目標空燃比が例えば２２．０といったリーン側の値であるとき、ＴＦＢＹＡは１．０未満の正の値である。
【０１３１】
ステップ６２では、燃焼室５の吸気弁閉時期ＩＶＣにおける容積（つまり圧縮開始時期での容積）ＶＩＶＣ［ｍ3］を算出する。燃焼室５の吸気弁閉時期における容積ＶＩＶＣは、ピストン６のストローク位置によって決まる。ピストン６のストローク位置はエンジンのクランク角位置によって決まる。
【０１３２】
図１９を参照して、エンジンのクランクシャフト７１の回転中心７２がシリンダの中心軸７３からオフセットしている場合を考える。コネクティングロッド７４、コネクティングロッド７４とクランクシャフト７１との結節点７５、コネクティングロッド７４とピストンをつなぐピストンピン７６が図に示す関係にあるとする。このときの、燃焼室５の吸気弁閉時期における容積ＶＩＶＣは次式（１２）〜（１６）で表すことができる。
【０１３３】
ＶＩＶＣ＝ｆ１（θivc）
＝Ｖｃ＋（π／４）Ｄ2・Ｈivc                    …（１２）
Ｖｃ＝（π／４）Ｄ2・Ｈx／（ε−１）                  …（１３）
Ｈivc＝｛（ＣＮＤ＋ＳＴ2／２）−（ＣＲoff−ＰＩＳoff）2｝1/2
−｛（ＳＴ／２）・cos（θivc＋θoff）｝＋（ＣＮＤ2−Ｘ2）1/2
…（１４）
Ｘ  ＝（ＳＴ／２）・sin（θivc＋θoff）−ＣＲoff＋ＰＩＳoff
…（１５）
θoff＝arcsin｛（ＣＲoff−ＰＩＳoff）／（ＣＮＤ・（ＳＴ／２））｝
…（１６）
ただし、Ｖｃ：隙間容積［ｍ3］、
ε       ：圧縮比、
Ｄ       ：シリンダボア径［ｍ］、
ＳＴ     ：ピストンの全ストローク［ｍ］、
Ｈivc    ：吸気弁閉時期におけるピストンピン７６のＴＤＣからの
距離［ｍ］、
Ｈx      ：ピストンピン７６のＴＤＣからの距離の最大値と最小値
の差［ｍ］、
ＣＮＤ   ：コネクティングロッド７４の長さ［ｍ］、
ＣＲoff  ：結節点７５のシリンダ中心軸７３からのオフセット距離                            ［ｍ］、
ＰＩＳoff：クランクシャフト回転中心７２のシリンダ中心軸７３から                            のオフセット距離［ｍ］、
θivc    ：吸気弁閉時期のクランク角［ｄｅｇＡＴＤＣ］、
θoff    ：ピストンピン７６とクランクシャフト回転中心７２と
を結ぶ線がＴＤＣにおいて垂直線となす角度［ｄｅｇ］、
Ｘ       ：結節点７５とピストンピン７６との水平距離［ｍ］、
吸気弁閉時期のクランク角θivcは前述のように、エンジンコントローラ３１から吸気ＶＴＣ機構２７への指令信号によって決まるので、既知である。式（１２）〜（１６）にこのときのクランク角θivc（＝ＩＶＣ）を代入すれば、燃焼室５の吸気弁閉時期における容積ＶＩＶＣを算出することができる。したがって、実用上は燃焼室５の吸気弁閉時期における容積ＶＩＶＣは吸気弁閉時期ＩＶＣをパラメータとするテーブルで設定したものを用いる。吸気ＶＴＣ機構２７を備えないときには定数で与えることができる。
【０１３４】
ステップ６３では、燃焼室５の吸気弁閉時期ＩＶＣにおける不活性ガス率ＭＲＥＳＦＲ［％］を算出する。すなわち、吸気弁閉時期ＩＶＣになったタイミングでのシリンダ吸入ＥＧＲ率ＲＡＴＥＧＲを吸気弁閉時期ＩＶＣにおける不活性ガス率ＭＲＥＳＦＲとして取り込む。これは、燃焼室５に吸入される不活性ガス率は吸気弁閉時期ＩＶＣで確定されるためである。
【０１３５】
ステップ６４では、燃焼室５の吸気弁閉時期ＩＶＣにおける温度（つまり圧縮開始時期温度）ＴＩＮＩ［Ｋ］を算出する。燃焼室５に流入するガスの温度は、燃焼室５に流入する新気と燃焼室５に残留する不活性ガスとが混じったガスの温度であり、燃焼室５に流入する新気の温度は吸気コレクタ２内の新気温度ＴＣＯＬに等しく、また燃焼室５内に残留する不活性ガスの温度は排気ポート部近傍の排気温度ＴＥＸＨで近似できるので、燃焼室５の吸気弁閉時期ＩＶＣにおける温度ＴＩＮＩは吸気弁閉時期ＩＶＣになったタイミングでの、吸気コレクタ２内の新気温度ＴＣＯＬ、排気温度ＴＥＸＨ、不活性ガス率ＭＲＥＳＦＲから次式により求めることができる。
【０１３６】
ＴＩＮＩ＝ＴＥＸＨ×ＭＲＥＳＦＲ＋ＴＣＯＬ×（１−ＭＲＥＳＦＲ）
…（１７）
ステップ６５では燃焼室５の吸気弁閉時期ＩＶＣにおける圧力（つまり圧縮開始時期圧力）ＰＩＮＩ［Ｐａ］を算出する。すなわち、吸気弁閉時期ＩＶＣになったタイミングでのコレクタ内圧力ＰＣＯＬを吸気弁閉時期ＩＶＣにおける圧力ＰＩＮＩとして取り込む。
【０１３７】
ステップ６６では、燃焼室５内の混合気の燃えやすさを表す反応確率ＲＰＲＯＢＡ［％］を算出する。反応確率ＲＰＲＯＢＡは無次元の値であり、不活性ガス率ＭＲＥＳＦＲ、冷却水温ＴＷＫ［Ｋ］、目標当量比ＴＦＢＹＡの３つのパラメータに依存するので、次式により表すことができる。
【０１３８】
ＲＰＲＯＢＡ＝ｆ３（ＭＲＥＳＦＲ、ＴＷＫ、ＴＦＢＹＡ）  …（１８）
具体的に説明すると、ＭＲＥＳＦＲ、ＴＷＫ、ＴＦＢＹＡの３つのパラメータの組み合わせによって得られる反応確率の最大値を１００％とし、これらのパラメータと反応確率ＲＰＲＯＢＡの関係を実験的に求め、求めた反応確率ＲＰＲＯＢＡをパラメータに応じたテーブルとしてエンジンコントローラ３１のメモリに予め格納しておく。ステップ６６ではパラメータに応じてこのテーブルを検索することにより反応確率ＲＰＲＯＢＡを求める。
【０１３９】
具体的には、冷却水温ＴＷＫに応じて図２０に示すような特性を有する水温補正係数のテーブルと、同様に設定された不活性ガス率ＭＲＥＳＦＲのテーブル（図示しない）と、目標当量比ＴＦＢＹＡに応じて図２１に示すような特性を有する当量比補正係数のテーブルを予めメモリに格納しておく。各補正係数の最大値はそれぞれ１．０であり、３種類の補正係数の積に反応確率の最大値１００％を掛け合わせることで、反応確率ＲＰＲＯＢＡを算出する。
【０１４０】
各テーブルを説明すると、図２０に示す水温補正係数は冷却水温ＴＷＫが高いほど大きく、冷却水温ＴＷＫが８０℃以上では１．０になる。図２１に示す当量比補正係数は目標当量比ＴＦＢＹＡが１．０のとき、つまり理論空燃比のときに最大値の１．０となり、目標当量比が１．０より大きくても小さくても当量比補正係数は減少する。不活性ガス率補正係数は図示しないが、不活性ガス率ＭＲＥＳＦＲがゼロの場合に１．０となる。
【０１４１】
ステップ６７では、基準クランク角θＰＭＡＸ［ｄｅｇＡＴＤＣ］を算出する。前述のように基準クランク角θＰＭＡＸはあまり変動しないが、それでもエンジン回転速度Ｎｅの上昇に応じて進角する傾向があるため、基準クランク角θＰＭＡＸはエンジン回転速度Ｎｅの関数として次式で表すことができる。
【０１４２】
θＰＭＡＸ＝ｆ４（Ｎｅ）                                …（１９）
具体的にはエンジン回転速度Ｎｅから、エンジンコントローラ３１のメモリに予め格納された図２２に示す特性のテーブルを検索することにより基準クランク角θＰＭＡＸを求める。算出を容易にするために、基準クランク角θＰＭＡＸを一定とみなすことも可能である。
【０１４３】
最後にステップ６８では、点火無駄時間相当クランク角ＩＧＮＤＥＡＤ［ｄｅｇ］を算出する。点火無駄時間相当クランク角ＩＧＮＤＥＡＤは、エンジンコントローラ３１から点火コイル１３の一次電流を遮断する信号を出力したタイミングから点火プラグ１４が実際に点火するまでのクランク角区間で、次式により表すことができる。
【０１４４】
ＩＧＮＤＥＡＤ＝ｆ５（ＤＥＡＤＴＩＭＥ、Ｎｅ）          …（２０）
ここでは、点火無駄時間ＤＥＡＤＴＩＭＥを２００μｓｅｃとする。（２０）式は、エンジン回転速度Ｎｅから点火無駄時間ＤＥＡＤＴＩＭＥに相当するクランク角である点火無駄時間相当クランク角ＩＧＮＤＥＡＤを算出するためのものである。
【０１４５】
図２３は初期燃焼期間ＢＵＲＮ１［ｄｅｇ］を算出するためのもの、また図２５は主燃焼期間ＢＵＲＮ２［ｄｅｇ］を算出するためのもので、一定時間毎（例えば１０ｍｓ毎）に実行する。図２３、図２５は図１８に続けて実行する。図２３、図２５はどちらを先に実行してもかまわない。
【０１４６】
まず図２３から説明すると、ステップ７１では、前回燃焼開始時期ＭＢＴＣＹＣＬ［ｄｅｇＢＴＤＣ］、図１８のステップ６２で算出されている燃焼室５の吸気弁閉時期における容積ＶＩＶＣ［ｍ3］、図１８のステップ６４で算出されている燃焼室５の吸気弁閉時期における温度ＴＩＮＩ［Ｋ］、図１８のステップ６５で算出されている燃焼室５の吸気弁閉時期における圧力ＰＩＮＩ［Ｐａ］、エンジン回転速度Ｎｅ［ｒｐｍ］、図１８のステップ６６で算出されている反応確率ＲＰＲＯＢＡ［％］を読み込む。
【０１４７】
ここで、前回燃焼開始時期ＭＢＴＣＹＣＬは、基本点火時期ＭＢＴＣＡＬの［ｄｅｇＢＴＤＣ］の１サイクル前の値であり、その算出については図２６により後述する。
【０１４８】
ステップ７２では燃焼室５の燃焼開始時期における容積Ｖ０［ｍ3］を算出する。前述したように、ここでの点火時期（燃焼開始時期）は今回のサイクルで演算する基本点火時期ＭＢＴＣＡＬではなく基本点火時期の１サイクル前の値である。すなわち、基本点火時期の１サイクル前の値であるＭＢＴＣＹＣＬから次式により燃焼室５の燃焼開始時期における容積Ｖ０を算出する。
【０１４９】
Ｖ０＝ｆ６（ＭＢＴＣＹＣＬ）                            …（２１）
具体的には前回燃焼開始時期ＭＢＴＣＹＣＬにおけるピストン６のストローク位置と、燃焼室５のボア径から、燃焼室５のＭＢＴＣＹＣＬにおける容積Ｖ０を算出する。図１８のステップ６２では、燃焼室５の吸気弁閉時期ＩＶＣにおける容積ＶＩＶＣを、吸気弁閉時期をパラメータとする吸気弁閉時期容積のテーブルを検索することにより求めたが、ここではＭＢＴＣＹＣＬをパラメータとする前回燃焼開始時期容積のテーブルを検索することにより、燃焼室５の前回燃焼開始時期ＭＢＴＣＹＣＬにおける容積Ｖ０を求めればよい。
【０１５０】
ステップ７３では燃焼開始時期における有効圧縮比Ｅｃを算出する。有効圧縮比Ｅｃは無次元の値であり、次式に示すように燃焼室５の燃焼開始時期における容積Ｖ０を燃焼室５の吸気弁閉時期における容積ＶＩＶＣで除した値である。
【０１５１】
Ｅｃ＝ｆ７（Ｖ０、ＶＩＶＣ）＝Ｖ０／ＶＩＶＣ            …（２２）
ステップ７４では吸気弁閉時期ＩＶＣから燃焼開始時期に至る間の燃焼室５内の温度上昇率ＴＣＯＭＰを次式に示すように有効圧縮比Ｅｃに基づいて算出する。
【０１５２】
ＴＣＯＭＰ＝ｆ８（Ｅｃ）＝Ｅｃ＾（κ−１）              …（２３）
ただし、κ：比熱比、
（２３）式は断熱圧縮されるガスの温度上昇率の式である。なお、（２３）式右辺の「＾」は累乗計算を表している。この記号は後述する式でも使用する。
【０１５３】
κは断熱圧縮されるガスの定圧比熱を定容比熱で除した値で、断熱圧縮されるガスが空気であればκ＝１．４であり、簡単にはこの値を用いればよい。ただし、混合気に対してκの値を実験的に求めることで、一層の算出精度の向上が可能である。
【０１５４】
図２４は（２３）式を図示したものである。従って、このような特性のテーブルを予めエンジンコントローラ３１のメモリに格納しておき、有効圧縮比Ｅｃに基づき当該テーブルを検索することにより温度上昇率ＴＣＯＭＰを求めることも可能である。
【０１５５】
ステップ７５では、燃焼室５の燃焼開始時期における温度Ｔ０［Ｋ］を、燃焼室５の吸気弁閉時期における温度ＴＩＮＩに温度上昇率ＴＣＯＭＰを乗じることで、つまり
Ｔ０＝ＴＩＮＩ×ＴＣＯＭＰ                              …（２４）
の式により算出する。
【０１５６】
ステップ７６、７７はステップ７４、７５と同様である。すなわち、ステップ７６では吸気弁閉時期ＩＶＣから燃焼開始時期に至る間の燃焼室５内の圧力上昇率ＰＣＯＭＰを次式に示すように有効圧縮比Ｅｃに基づいて算出する。
【０１５７】
ＰＣＯＭＰ＝ｆ９（Ｅｃ）＝Ｅｃ＾κ                      …（２５）
ただし、κ：比熱比、
（２５）式も（２３）式と同じに断熱圧縮されるガスの圧力上昇率の式である。（２５）式右辺の「＾」も（２３）式と同じに累乗計算を表している。
【０１５８】
κは上記（２３）式で用いている値と同じで、断熱圧縮されるガスが空気であればκ＝１．４であり、簡単にはこの値を用いればよい。ただし、混合気に対してその組成、温度からκの値を求めることで、一層の算出精度の向上が可能である。
【０１５９】
図２４と同様の特性のテーブルを予めエンジンコントローラ３１のメモリに格納しておき、有効圧縮比Ｅｃに基づき当該テーブルを検索することにより圧力上昇率ＰＣＯＭＰを求めることも可能である。
【０１６０】
ステップ７７では、燃焼室５の燃焼開始時期における圧力Ｐ０［Ｐａ］を、燃焼室５の吸気弁閉時期における圧力ＰＩＮＩに圧力上昇率ＰＣＯＭＰを乗じることで、つまり
Ｐ０＝ＰＩＮＩ×ＰＣＯＭＰ                              …（２６）
の式により算出する。
【０１６１】
ステップ７８では、初期燃焼期間における層流火炎速度ＳＬ１［ｍ／ｓｅｃ］を次式（公知）により算出する。
【０１６２】
ＳＬ１＝ｆ１０（Ｔ０、Ｐ０）
＝ＳＬstd×｛（Ｔ０／Ｔstd）＾２．１８｝
×｛（Ｐ０／Ｐstd）＾（−０．１６）｝ …（２７）
ただし、Ｔstd  ：基準温度［Ｋ］、
Ｐstd  ：基準圧力［Ｐａ］、
ＳＬstd：基準温度Ｔstdと基準圧力Ｐstdにおける基準層流火炎速度
［ｍ／ｓｅｃ］、
Ｔ０   ：燃焼室５の燃焼開始時期における温度［Ｋ］、
Ｐ０   ：燃焼室５の燃焼開始時期における圧力［Ｐａ］、
層流火炎速度は気体の流れがない状態での火炎の伝播速度のことであり、燃焼室５内の圧縮速度、燃焼室５内の吸気流速に因らず、燃焼室５の温度及び圧力の関数となることが知られていることから、初期燃焼期間における層流火炎速度を燃焼開始時温度Ｔ０と燃焼開始時圧力Ｐ０の関数として、また後述するように主燃焼期における層流火炎速度を圧縮上死点時温度ＴＴＤＣと圧縮上死点圧力ＰＴＤＣの関数としている。これは、層流火炎速度は一般的に、エンジン負荷、燃焼室５内の不活性ガス率、吸気弁閉時期、比熱比、吸気温度により変化するのであるが、これらは燃焼室５内の温度Ｔと圧力Ｐに影響する因子であるので、層流火炎速度は最終的に燃焼室５内の温度Ｔと圧力Ｐにより規定できるとするものである。
【０１６３】
上記の（２７）式において基準温度Ｔstdと基準圧力Ｐstdと基準層流火炎速度ＳＬstdは実験により予め定められる値である。
【０１６４】
燃焼室５の通常の圧力である２ｂａｒ以上の圧力下では、（２７）式の圧力項（Ｐ０／Ｐstd）＾（−０．１６）は小さな値となる。従って、圧力項（Ｐ０／Ｐstd）＾（−０．１６）を一定値として、基準層流火炎速度ＳＬstdを基準温度Ｔstdのみで規定することも可能である。
【０１６５】
従って、基準温度Ｔstdが５５０［Ｋ］で、基準層流火炎速度ＳＬstdが１．０［ｍ／ｓｅｃ］で、圧力項が０．７である場合の燃焼開始時期における温度Ｔ０と層流火炎速度ＳＬ１との関係は近似的に次式で定義することができる。
【０１６６】
ＳＬ１＝ｆ１１（Ｔ０）
＝１．０×０．７×（Ｔ０／５５０）＾２．１８ …（２８）
ステップ７９では、初期燃焼期間におけるガス流動の平均乱れ強さＳＴ１を算出する。このガス流動の平均乱れ強さＳＴ１は無次元の値であり、燃焼５に流入する新気の流速と燃料インジェクタ２１の噴射燃料のペネトレーションとに依存する。
【０１６７】
ステップ８０では初期燃焼期間における層流火炎速度Ｓ１とこの初期燃焼期間におけるガス流動の平均乱れ強さＳＴ１から、初期燃焼期間におけるガスの乱流火炎速度ＦＬＡＭＥ１［ｍ／ｓｅｃ］（燃焼速度）を次式により算出する。
【０１６８】
ＦＬＡＭＥ１＝ＳＬ１×ＳＴ１                            …（２９）
燃焼室５内にガス乱れがあるとガスの火炎速度が変化する。（２９）式はこのガス乱れに伴う火炎速度への寄与（影響）を考慮して、気体の流れがある状態での火炎速度である乱流火炎速度を算出するようにしたものである。
【０１６９】
ステップ８１では、このようにして算出した乱流火炎速度ＦＬＡＭＥ１に基づいて次式により初期燃焼期間ＢＵＲＮ１［ｄｅｇ］を算出する。
【０１７０】
ＢＵＲＮ１＝｛（Ｎｅ×６）×（ＢＲ１×Ｖ０）｝
／（ＲＰＲＯＢＡ×ＡＦ１×ＦＬＡＭＥ１）    …（３０）
ただし、ＡＦ１：火炎核の反応面積（固定値）［ｍ2］、
この（３０）式および後述する（４１）式は、燃焼ガス質量を乱流火炎速度（燃焼速度）で割ると燃焼期間が得られるとする次の基本式より導いたものであるが、（３０）式、後述する（４１）式右辺の分子、分母ががただちに燃焼ガス質量、燃焼速度を表すものではない。
【０１７１】
燃焼期間［ｓｅｃ］＝シリンダ内総質量［ｇ］
／（未燃ガス密度［ｇ／ｍ3］
×火炎表面積［ｍ2］×乱流火炎速度［ｍ／ｓｅｃ］）
…（補１１）
（補１１）式右辺分母の未燃ガス密度は、未燃ガス質量［ｇ］を未燃ガス体積［ｍ3］で割った値であるので、従来装置（特開平１０−３０５３５号公報）のように質量に相当する充填効率ＩＴＡＣのみの関数では未燃ガス密度を正確に計算できているとはいえない。そこで、（補１１）式に対して実験結果とを照らし合わせつつ所定の近似を導入して初めて得られたのが上記（３０）式及び後述する（４１）式に示す実験式である。
【０１７２】
ここで、（３０）式右辺のＢＲ１は燃焼開始時期より初期燃焼期間ＢＵＲＮ１の終了時期までの燃焼質量割合の変化代であり、ここではＢＲ１＝２％に設定している。（３０）式右辺の（Ｎｅ×６）は単位をｒｐｍからクランク角（ｄｅｇ）に変換するための処理である。火炎核の反応面積ＡＦ１は実験的に設定される。
【０１７３】
また、初期燃焼期間中はほぼ燃焼室容積は変わらないとみなすことができる。従って、初期燃焼期間ＢＵＲＮ１を算出するに際して最初の燃焼室容積である燃焼開始時の燃焼室容積Ｖ０を採用している。
【０１７４】
次に図２５のフローに移ると、ステップ９１では図２３のステップ７１と同様に、図１８のステップ６２で算出されている燃焼室５の吸気弁閉時期における容積ＶＩＶＣ［ｍ3］、図１８のステップ６４で算出されている燃焼室５の吸気弁閉時期における温度ＴＩＮＩ［Ｋ］、図１８のステップ６５で算出されている燃焼室５の吸気弁閉時期における圧力ＰＩＮＩ［Ｐａ］、エンジン回転速度Ｎｅ［ｒｐｍ］、図１８のステップ６６で算出されている反応確率ＲＰＲＯＢＡ［％］を読み込み、さらにシリンダ新気量ＭＡＣＹＬ［ｇ]、目標当量比ＴＦＢＹＡ、、図１８のステップ６３で算出されている不活性ガス率ＭＲＥＳＦＲ［％］を読み込む。
【０１７５】
ここで、シリンダ新気量ＭＡＣＹＬ（燃焼室５に流入する新気量）の算出方法については公知の手法を用いればよい（特開２００１−５０００９１公報参照）。
【０１７６】
ステップ９２、９３は図２３のステップ７３、７４と同様である。すなわち、ステップ９２で圧縮上死点時期における有効圧縮比Ｅｃ ２を算出する。有効圧縮比Ｅｃ ２も上記（２２）式の有効圧縮比Ｅｃと同様に無次元の値であり、次式に示すように燃焼室５の圧縮上死点時における容積ＶＴＤＣを燃焼室５の吸気弁閉時期における容積ＶＩＶＣで除した値である。
【０１７７】
Ｅｃ ２＝ｆ１３（ＶＴＤＣ、ＶＩＶＣ）＝ＶＴＤＣ／ＶＩＶＣ
…（３１）
（３１）式において燃焼室５の圧縮上死点時における容積ＶＴＤＣは運転条件によらず一定であり、予めエンジンコントローラ３１のメモリに格納しておけばよい。
【０１７８】
ステップ９３では吸気弁閉時期ＩＶＣから圧縮上死点に至る間の燃焼室５内の断熱圧縮による温度上昇率ＴＣＯＭＰ ２を次式に示すように有効圧縮比Ｅｃ ２に基づいて算出する。
【０１７９】
ＴＣＯＭＰ ２＝ｆ１４（Ｅｃ ２）＝Ｅｃ ２＾（κ−１）…（３２）
ただし、κ：比熱比、
図２４と同様の特性のテーブルを予めエンジンコントローラ３１のメモリに格納しておき、有効圧縮比Ｅｃ ２から当該テーブルを検索することにより温度上昇率ＴＣＯＭＰ ２を求めることも可能である。
【０１８０】
ステップ９４ではシリンダ新気量ＭＡＣＹＬ、目標当量比ＴＦＢＹＡ、不活性ガス率ＭＲＥＳＦＲから次式により燃焼室５の総ガス質量ＭＧＡＳ［ｇ］を算出する。
【０１８１】
ＭＧＡＳ＝ＭＡＣＹＬ×(１＋ＴＦＢＹＡ／１４．７)＋ＭＡＣＹＬ×ＭＲＥＳＦＲ
…（３３）
（３３）式右辺の括弧内の「１」は新気分、「ＴＦＢＹＡ／１４．７」は燃料分である。（３３）式右辺のＭＡＣＹＬ×ＭＲＥＳＦＲは不活性ガス量［ｇ］である。これは、ここでのＥＧＲ率は、ＥＧＲガス量を新気量で除した比のことであるため、ＥＧＲ率に新気量を乗算することにより簡単に不活性ガス量を求めている。
【０１８２】
なお、ＭＡＣＹＬ×ＭＲＥＳＦＲは外部からの不活性ガス量であるから、燃焼室５内の内部不活性ガス量ＭＲＥＳ［ｇ］を算出し、これを（３３）式右辺に加算することでさらに、燃焼室５の総ガス質量ＭＧＡＳの算出精度が向上する。燃焼室５内の内部不活性ガス量ＭＲＥＳの算出方法としては、特開２００４−３３２６４７公報を用いればよい。
【０１８３】
ステップ９５ではこの燃焼室５の総ガス質量ＭＧＡＳと、シリンダ新気量ＭＡＣＹＬ、目標当量比ＴＦＢＹＡを用い、次式により混合気の燃焼による温度上昇量（燃焼上昇温度）ＴＢＵＲＮ［Ｋ］を算出する。
【０１８４】
ＴＢＵＲＮ＝｛ＭＡＣＹＬ×ＴＦＢＹＡ／１４．７×ＢＲｋ×Ｑ｝
／（Ｃｖ×ＭＧＡＳ）
…（３４）
ただし、Ｑ    ：燃料の定発熱量、
ＢＲｋ：シリンダ内燃料の燃焼質量割合、
Ｃｖ  ：定積比熱、
（３４）式右辺の分子はシリンダ内燃料による発生総熱量［Ｊ］、分母は単位発生熱量当たりの温度上昇率［Ｊ／Ｋ］を意味している。すなわち、（３４）式は熱力学の公式に当てはめた近似式である。
【０１８５】
ここで、シリンダ内燃料の燃焼質量割合ＢＲｋとしては予め実験等で適合しておく。簡易的には例えば６０％／２＝３０％を設定する。これは、本実施形態では燃焼質量割合ＢＲが約６０％に達するまでを燃焼期間として扱うので、そのちょうど中間の３０％をＢＲｋとして設定するものである。
【０１８６】
燃料の定発熱量Ｑは燃料の種類により異なる値であるので、燃料の種類に応じ予め実験等で求めておく。定積比熱Ｃｖは２〜３の値であり予め実験等で代表値を適合しておく。ただし、混合気に対してその組成、温度から定積比熱Ｃｖの値を求めることで、一層の算出精度の向上が可能である。
【０１８７】
ステップ９６では、燃焼室５の圧縮上死点における温度ＴＴＤＣ［Ｋ］を、燃焼室５の吸気弁閉時期における温度ＴＩＮＩに圧縮上死点までの温度上昇率ＴＣＯＭＰ ２を乗じその乗算値に上記の燃焼上昇温度ＴＢＵＲＮを加算することで、つまり次式により算出する。
【０１８８】
ＴＴＤＣ＝ＴＩＮＩ×ＴＣＯＭＰ ２＋ＴＢＵＲＮ          …（３５）
ステップ９７では、この燃焼室５の圧縮上死点における温度ＴＴＤＣと容積ＶＴＤＣ及び燃焼室５の吸気弁閉時期における圧力ＰＩＮＩ、容積ＶＩＶＣ及び温度ＴＩＮＩから次式により燃焼室５の圧縮上死点における圧力ＰＴＤＣ［Ｋ］を算出する。
【０１８９】
ＰＴＤＣ＝ＰＩＮＩ×ＶＩＶＣ×ＴＴＤＣ／（ＶＴＤＣ×ＴＩＮＩ）
…（３６）
（３６）式は状態方程式を用いて得たものである。すなわち、吸気弁閉時期における圧力、容積及び温度（ＰＩＮＩ、ＶＩＶＣ、ＴＩＮＩ）を用いて次の状態方程式が成立する。
【０１９０】
ＰＩＮＩ×ＶＩＶＣ＝ｎ・Ｒ・ＴＩＮＩ                    …（補１２）
ただし、ｎ：モル数、
Ｒ：ガス定数、
圧縮上死点近傍では容積はほぼ等しいので、圧縮上死点での圧力、容積及び温度（ＰＴＤＣ、ＶＴＤＣ、ＴＴＤＣ）を用いて次の状態方程式が成立する。
【０１９１】
ＰＴＤＣ×ＶＴＤＣ＝ｎ・Ｒ・ＴＴＤＣ                    …（補１３）
この（補１３）式と上記（補１２）との両式からｎ・Ｒを消去しＰＴＤＣについて解くと、上記（３６）式が得られる。
【０１９２】
ステップ９８では図２３のステップ７８と同様にして、次式（公知）により、主燃焼期間における層流火炎速度ＳＬ２［ｍ／ｓｅｃ］を算出する。
【０１９３】
ＳＬ２＝ｆ１５（ＴＴＤＣ、ＰＴＤＣ）
＝ＳＬstd×｛（ＴＴＤＣ／Ｔstd）＾２．１８｝
×｛（ＰＴＤＣ／Ｐstd）＾（−０．１６）｝
…（３７）
ただし、Ｔstd  ：基準温度［Ｋ］、
Ｐstd  ：基準圧力［Ｐａ］、
ＳＬstd：基準温度Ｔstdと基準圧力Ｐstdにおける基準層流火炎速度
［ｍ／ｓｅｃ］、
ＴＴＤＣ：燃焼室５の圧縮上死点における温度［Ｋ］、
ＰＴＤＣ：燃焼室５の圧縮上死点における圧力［Ｐａ］、
（３７）式の解説は上記（２８）式と同様ある。すなわち、（３７）式の基準温度Ｔstdと基準圧力Ｐstdと基準層流火炎速度ＳＬstdは実験により予め定められる値である。燃焼室５の通常の圧力である２ｂａｒ以上の圧力下では、（３７）式の圧力項（ＰＴＤＣ／Ｐstd）＾（−０．１６）は小さな値となる。従って、圧力項（ＰＴＤＣ／Ｐstd）＾（−０．１６）を一定値として、基準層流火炎速度ＳＬstdを基準温度Ｔstdのみで規定することも可能である。よって、基準温度Ｔstdが５５０［Ｋ］で、基準層流火炎速度ＳＬstdが１．０［ｍ／ｓｅｃ］で、圧力項が０．７である場合の圧縮上死点における温度ＴＴＤＣと層流火炎速度ＳＬ２との関係は近似的に次式で定義することができる。
【０１９４】
ＳＬ２＝ｆ１６（ＴＴＤＣ）
＝１．０×０．７×（ＴＴＤＣ／５５０）＾２．１８  …（３８）
ステップ９９では主燃焼期間におけるガス流動の平均乱れ強さＳＴ２を算出する。この主燃焼期間におけるガス流動の平均乱れ強さＳＴ２も初期燃焼期間におけるガス流動の平均乱れ強さＳＴ１と同様に、エンジン回転速度Ｎｅの関数として次式であらわすことができる。
【０１９５】
ＳＴ２＝ｆ１７（Ｎｅ）＝Ｃ２×Ｎｅ …（３９）
ただし、Ｃ２：定数、
乱れ強さＳＴ２を回転速度をパラメータとするテーブルから求めることも可能である。
【０１９６】
ステップ１００では、主燃焼期間における層流火炎速度ＳＬ２［ｍ／ｓｅｃ］と主燃焼期間におけるガス流動の平均乱れ強さＳＴ２とから、主燃焼期間における乱流火炎速度ＦＬＡＭＥ２［ｍ／ｓｅｃ］（燃焼速度）を次式により算出する。
【０１９７】
ＦＬＡＭＥ２＝ＳＬ２×ＳＴ２                            …（４０）
ただし、ＳＬ２：層流火炎速度［ｍ／ｓｅｃ］、
（４０）式は（２９）式と同様、ガス乱れに伴う乱流火炎速度への寄与を考慮して、気体の流れがある状態での火炎速度である乱流火炎速度を算出するようにしたものである。
【０１９８】
ステップ１０１では、このようにして算出した主燃焼期間における乱流火炎速度ＦＬＡＭＥ２に基づいて主燃焼期間ＢＵＲＮ２［ｄｅｇ］を上記の（３０）式に類似した次式で算出する。
【０１９９】
ＢＵＲＮ２＝｛（ＮＲＰＭ×６）×（ＢＲ２×ＶＴＤＣ）｝
／（ＲＰＲＯＢＡ×ＡＦ２×ＦＬＡＭＥ２）      …（４１）
ただし、ＡＦ２：火炎核の反応面積［ｍ2］
ここで、（４１）式右辺のＢＲ２は主燃焼期間の開始時期より終了時期までの燃焼質量割合の変化代である。初期燃焼期間の終了時期に燃焼質量割合ＢＲが２％になり、その後、主燃焼期間が開始し、燃焼質量割合ＢＲが６０％に達して主燃焼期間が終了すると考えているので、ＢＲ２＝６０％−２％＝５８％を設定している。ＡＦ２は火炎核の成長行程における平均の反応面積であり、（３０）式のＡＦ１と同様に、予め実験的に定めた固定値とする。
【０２００】
主燃焼期間では圧縮上死点を挟んで燃焼室容積が変化する。つまり、主燃焼期間の開始時期と、主燃焼期間の終了時期のほぼ中央に圧縮上死点位置が存在するとみなすことができる。また、圧縮上死点付近ではクランク角が変化しても燃焼室容積があまり変化しない。そこで主燃焼期間での燃焼室容積としてはこの圧縮上死点での燃焼室容積ＶＴＤＣで代表させることとしている。
【０２０１】
図２６は基本点火時期ＭＢＴＣＡＬ［ｄｅｇＢＴＤＣ］を算出するためのもので、一定時間毎（例えば１０ｍｓ毎）に実行する。図２３、図２５のうち遅く実行されるフローに続けて実行する。
【０２０２】
ステップ１１１では、図２３のステップ８１で算出されている初期燃焼期間ＢＵＲＮ１、図２５のステップ１０１で算出されている主燃焼期間ＢＵＲＮ２、図１８のステップ６７で算出されている点火時期無駄時間相当クランク角ＩＧＮＤＥＡＤ、図１８のステップ６６で算出されている基準クランク角θＰＭＡＸを読み込む。
【０２０３】
ステップ１１２では、初期燃焼期間ＢＵＲＮ１と主燃焼期間ＢＵＲＮ２の合計を燃焼期間ＢＵＲＮ［ｄｅｇ］として算出する。
【０２０４】
ステップ１１３では次式により基本点火時期ＭＢＴＣＡＬ［ｄｅｇＢＴＤＣ］を算出する。
【０２０５】
ＭＢＴＣＡＬ＝ＢＵＲＮ−θＰＭＡＸ＋ＩＧＮＤＥＡＤ      …（４２）
ステップ１１４では、この基本点火時期ＭＢＴＣＡＬから点火無駄時間相当クランク角ＩＧＮＤＥＡＤを差し引いた値を前回燃焼開始時期ＭＢＴＣＹＣＬ［ｄｅｇＢＴＤＣ］として算出する。
【０２０６】
このようにして算出した基本点火時期ＭＢＴＣＡＬは、点火時期指令値として点火レジスタに移され、実際のクランク角がこの点火時期指令値と一致したタイミングでエンジンコントローラ３１より一次電流を遮断する点火信号が点火コイル１３に出力される。
【０２０７】
また、今サイクルの点火時期指令値としてステップ１１３で算出された基本点火時期ＭＢＴＣＡＬが用いられたとすると、次サイクルの点火時期になるまでの間、ステップ１１４で算出された前回燃焼開始時期ＭＢＴＣＹＣＬが図２３のステップ７２において用いられる。
【０２０８】
ここで、本実施形態の作用効果を説明する。
【０２０９】
本実施形態によれば、所定のＥＧＲ領域においてＥＧＲ率を可変に制御し、燃料カット条件（許可条件）が成立したとき燃料カットを行い、その後に燃料カットからのリカバー条件が成立したとき燃料供給を再開し、ＥＧＲ領域での燃料カットリカバー時（燃料供給再開時）のシリンダ吸入ＥＧＲ率の応答を算出し（図１４のステップ４４〜４８参照）、この算出したＥＧＲ領域での燃料カットリカバー時のシリンダ吸入ＥＧＲ率の応答に基づいて点火時期を算出し（図１８、図２５、図２６参照）、この算出した点火時期で火花点火を実行するので、４０％以上といった高率のＥＧＲ率を実現しているエンジンであっても、ＥＧＲ領域での燃料カットリカバー時におけるノッキングを防止することができる。
【０２１０】
また、本実施形態によれば、所定のＥＧＲ領域においてＥＧＲ率を可変に制御し、燃料カット条件（許可条件）が成立したとき燃料カットを行い、その後に燃料カットからのリカバー条件が成立したとき燃料供給を再開し、ＥＧＲ領域での燃料カットリカバー時（燃料供給再開時）のシリンダ吸入ＥＧＲ率の応答を第１応答として算出し（図１４のステップ４４〜４８参照）、ＥＧＲ領域での燃料カットリカバー時（燃料供給再開時）を除く、ＥＧＲ率切換時（ＥＧＲ率変化時）のシリンダ吸入ＥＧＲ率の応答を第２応答として算出し（図１４のステップ５１〜５５参照）、ＥＧＲ領域での燃料カットリカバー時であるのか、それともＥＧＲ領域での燃料カットリカバー時を除く、ＥＧＲ率切換時（ＥＧＲ率変化時）であるのかを判定し（図１４のステップ４１、４３、４９、５０参照）、この判定結果より、ＥＧＲ領域での燃料カットリカバー時には第１応答に基づいて、またＥＧＲ領域での燃料カットリカバー時を除く、ＥＧＲ率切換時には第２応答に基づいて点火時期を算出し（図１８、図２５、図２６参照）、この算出した点火時期で火花点火を実行するので、４０％以上といった高率のＥＧＲ率を実現しているエンジンであっても、ＥＧＲ領域での燃料カットリカバー時におけるノッキングを防止することができるほか、ＥＧＲ領域でのＥＧＲ率切換時に最適な点火時期を精度良く与えることができる。
【０２１１】
本実施形態によれば、燃料カット中サイクル数ＣＮＴｆｃを計測し、この燃料カット中サイクル数ＣＮＴｆｃに応じて第１無駄時間ＥＧＲＤＹＦＣを算出するので（図６（Ａ）のステップ１７、１８参照）、燃料カット中のサイクル数に応じた第１無駄時間ＥＧＲＤＹＦＣを精度良く与えることができる。
【０２１２】
実施形態では、所定のＥＧＲ領域においてＥＧＲ率を可変に制御し、許可条件が成立したとき燃料カットを行い、その後に燃料カットからのリカバー条件が成立したとき燃料供給を再開し、前記ＥＧＲ領域での前記燃料供給再開時のシリンダ吸入ＥＧＲ率の応答を算出し、この算出したＥＧＲ領域での燃料供給再開時のシリンダ吸入ＥＧＲ率の応答に基づいて点火時期を算出し、この算出した点火時期で火花点火を実行する場合で説明したが、シリンダ吸入ＥＧＲ率に代えてシリンダ吸入ＥＧＲガス量を用いることができる。
【０２１３】
実施形態では、所定のＥＧＲ領域においてＥＧＲ率を可変に制御し、許可条件が成立したとき燃料カットを行い、その後に燃料カットからのリカバー条件が成立したとき燃料供給を再開し、前記ＥＧＲ領域での前記燃料供給再開時のシリンダ吸入ＥＧＲ率の応答を第１応答として算出し、前記ＥＧＲ領域での前記燃料供給再開時を除く、ＥＧＲ率の変化時のシリンダ吸入ＥＧＲ率の応答を第２応答として算出し、前記ＥＧＲ領域での前記燃料供給再開時であるのか、それとも前記ＥＧＲ領域での前記燃料供給再開時を除く、ＥＧＲ率の変化時であるのかを判定し、この判定結果より、ＥＧＲ領域での燃料供給の再開時には前記第１応答に基づいて、またＥＧＲ領域での燃料供給再開時を除く、ＥＧＲ率の変化時には前記第２応答に基づいて点火時期を算出し、この算出した点火時期で火花点火を実行する場合で説明したが、シリンダ吸入ＥＧＲ率に代えてシリンダ吸入ＥＧＲガス量を用いることができる。
【０２１４】
実施形態では、エンジンの点火時期算出方法について説明したが、エンジンの点火時期制御装置としては、排気の一部を吸気通路に還流させるためのＥＧＲ弁を備え、所定のＥＧＲ領域においてＥＧＲガス量またはＥＧＲ率を可変に制御するＥＧＲガス量・ＥＧＲ率制御手段と、許可条件が成立したとき燃料カットを行い、その後に燃料カットからのリカバー条件が成立したとき燃料供給を再開する燃料カット・燃料供給再開手段と、前記ＥＧＲ領域での前記燃料供給再開時のシリンダ吸入ＥＧＲガス量またはシリンダ吸入ＥＧＲ率の応答を算出する応答算出手段と、この算出したＥＧＲ領域での燃料供給再開時のシリンダ吸入ＥＧＲガス量またはシリンダ吸入ＥＧＲ率の応答に基づいて点火時期を算出する点火時期算出手段と、この算出した点火時期で火花点火を実行する点火実行手段とを備えるエンジンの点火時期制御装置が考えられる（請求項１に記載の発明）。また、排気の一部を吸気通路に還流させるためのＥＧＲ弁を備え、所定のＥＧＲ領域においてＥＧＲガス量またはＥＧＲ率を可変に制御するＥＧＲガス量・ＥＧＲ率制御手段と、許可条件が成立したとき燃料カットを行い、その後に燃料カットからのリカバー条件が成立したとき燃料供給を再開する燃料カット・燃料供給再開手段と、前記ＥＧＲ領域での前記燃料供給再開時のシリンダ吸入ＥＧＲガス量またはシリンダ吸入ＥＧＲ率の応答を第１応答として算出する第１応答算出手段と、前記ＥＧＲ領域での前記燃料供給再開時を除く、ＥＧＲガス量またはＥＧＲ率の変化時のシリンダ吸入ＥＧＲガス量またはシリンダ吸入ＥＧＲ率の応答を第２応答として算出する第２応答算出手段と、前記ＥＧＲ領域での前記燃料供給再開時であるのか、それとも前記ＥＧＲ領域での前記燃料供給再開時を除く、ＥＧＲガス量またはＥＧＲ率の変化時であるのかを判定する判定手段と、この判定結果より、ＥＧＲ領域での燃料供給再開時には前記第１応答に基づいて、またＥＧＲ領域での燃料供給再開時を除く、ＥＧＲガス量またはＥＧＲ率の変化時には前記第２応答に基づいて点火時期を算出する点火時期算出手段と、この算出した点火時期で火花点火を実行する点火実行手段とを備えるエンジンの点火時期制御装置が考えられる（請求項３に記載の発明）。
【０２１７】
請求項１に記載の発明において、ＥＧＲガス量・ＥＧＲ率制御手段の機能は図１のエンジンコントローラ３１により、燃料カット・燃料供給再開手段の機能は図１のエンジンコントローラ３１により、応答算出手段の機能は図１４のステップ４４〜４８により、点火時期算出手段の機能は図１８、図２５、図２６により、点火実行手段の機能は図１のエンジンコントローラ３１によりそれぞれ果たされている。
【図面の簡単な説明】
【０２１９】
【図１】本発明の第１実施形態のエンジンの点火時期制御装置の概略構成図。
【図２】ＥＧＲ領域での目標ＥＧＲ率の切換時及びＥＧＲ領域での燃料カットリカバー時のシリンダ吸入ＥＧＲ率の各変化を示す波形図。
【図３】ＥＧＲ弁通過ＥＧＲ率の算出を説明するためのフローチャート。
【図４】スロットル弁開口面積の特性図。
【図５】ＥＧＲガス／新気換算係数の特性図。
【図６（Ａ）】無駄時間及び加重平均係数の算出を説明するためのフローチャート。
【図６（Ｂ）】無駄時間及び加重平均係数の算出を説明するためのフローチャート。
【図７】ＥＧＲ領域及び目標ＥＧＲ率の特性図。
【図８】無駄時間としてのサイクル数の特性図。
【図９】基本加重平均係数の特性図。
【図１０】回転速度補正値の特性図。
【図１１】ＥＧＲ率増加時の基本加重平均係数の特性図。
【図１２】回転速度補正値の特性図。
【図１３】ＥＧＲ率減少時の基本加重平均係数の特性図。
【図１４】シリンダ吸入ＥＧＲ率の算出を説明するためのフローチャート。
【図１５】エンジンコントローラで実行される点火時期制御のブロック図。
【図１６】燃焼室の圧力変化図。
【図１７】燃焼質量割合の変化を説明する特性図。
【図１８】物理量の算出を説明するためのフローチャート。
【図１９】エンジンのクランクシャフトとコネクティングロッドの位置関係を説明するダイアグラム。
【図２０】水温補正係数の特性図。
【図２１】当量比補正係数の特性図。
【図２２】基準クランク角の特性図。
【図２３】初期燃焼期間の算出を説明するためのフローチャート。
【図２４】温度上昇率の特性図。
【図２５】主燃焼期間の算出を説明するためのフローチャート。
【図２６】基本点火時期の算出を説明するためのフローチャート。
【図２７】従来装置のＥＧＲ領域での燃料カットリカバー時の変化波形図。
【図２８】シリンダ吸入ＥＧＲ率の変化波形図。
【符号の説明】
【０２２０】
１  エンジン
５  燃焼室
１１  点火装置（火花点火手段）
１５  吸気弁
３１  エンジンコントローラ
【図１】
0004604903.tif 000002
【図２】
0004604903.tif 000003
【図３】
0004604903.tif 000004
【図４】
0004604903.tif 000005
【図５】
0004604903.tif 000006
【図６（Ａ）】
0004604903.tif 000007
【図６（Ｂ）】
0004604903.tif 000008
【図７】
0004604903.tif 000009
【図８】
0004604903.tif 000010
【図９】
0004604903.tif 000011
【図１０】
0004604903.tif 000012
【図１１】
0004604903.tif 000013
【図１２】
0004604903.tif 000014
【図１３】
0004604903.tif 000015
【図１４】
0004604903.tif 000016
【図１５】
0004604903.tif 000017
【図１６】
0004604903.tif 000018
【図１７】
0004604903.tif 000019
【図１８】
0004604903.tif 000020
【図１９】
0004604903.tif 000021
【図２０】
0004604903.tif 000022
【図２１】
0004604903.tif 000023
【図２２】
0004604903.tif 000024
【図２３】
0004604903.tif 000025
【図２４】
0004604903.tif 000026
【図２５】
0004604903.tif 000027
【図２６】
0004604903.tif 000028
【図２７】
0004604903.tif 000029
【図２８】
0004604903.tif 000030