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