(57)【要約】【課題】ノック回避のための点火時期の遅角とそれに続く進角の操作とを繰り返さない方法でノックを回避する装置を提供する。【解決手段】燃焼室（５）内で実際にノックが生じているか否かを検出するノック検出手段（４７）と、燃焼室内でのノック発生時期を検出するノック発生時期検出手段（４７）と、このノック発生時期検出値とノック発生時期予測値とを比較する比較手段（３１）と、この比較結果及び前記ノック検出結果に基づいてノック相関パラメータの推定値を算出するノック相関パラメータ推定値算出手段（３１）と、このノック相関パラメータ推定値に基づいて前記ノック発生時期予測値を算出するノック発生時期予測値算出手段（３１）と、このノック発生時期予測値に基づいてノック限界点火時期を算出するノック限界点火時期算出手段（３１）と、このノック限界点火時期で火花点火を行う点火実行手段（３１、１４）とを備える。【選択図】図１
2008196506.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）：更新前のオクタン価推定値、
ｃｏｎｓｔ０５     ：大きくする側への更新量、
オクタン価推定値ＯＣＴＥＳＴの更新は、カウンタ値ｃｏｕｎｔが所定値ｃｏｎｓｔ０４となる毎であるので、ステップ２７１ではカウンタ値ｃｏｕｎｔをゼロにリセットする。
【０２８５】
図４２は点火時期、カウンタ値ｃｏｕｎｔ、オクタン価推定値ＯＣＴＥＳＴの動きをモデルで示している。図４２において一点鎖線が第１実施形態（本発明）の場合であり、実線は比較例１の場合を示している。
【０２８６】
ここで、「比較例１」とは図３８においてステップ２６２、２６３、２６４、２６６がなく、ステップ２６５において上記（８０）式に代えて、
ＯＣＴＥＳＴ（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）：更新前の圧縮比推定値、
ｃｏｎｓｔ２３：大きくする側への更新割合（正の無名数）、
ここで、（８２）式第２項は圧縮比推定値の一回当たりの更新量を定めている。一回当たりの更新量に着火時期差Δθを導入しているのは、圧縮比推定値ＣＭＰＥＳＴの収束を早めるためである。すなわち、圧縮比推定値ＣＭＰＥＳＴが実際の圧縮比より小さくかつ実際の圧縮比に近いときには自着火時期予測値θｋｎｋｅｓｔが自着火時期検出値θｋｎｋｒｅａｌより遅角側にそれほどズレないが、圧縮比推定値ＣＭＰＥＳＴが実際の圧縮比より小さくかつ実際の圧縮比より大きくズレているときには自着火時期予測値θｋｎｋｅｓｔが自着火時期検出値θｋｎｋｒｅａｌより遅角側に大きくズレてしまう。そこで、自着火時期予測値θｋｎｋｅｓｔが自着火時期検出値θｋｎｋｒｅａｌより遅角側に大きくズレている（Δθが大きい）ときにはこれに合わせて圧縮比推定値の一回当たりの更新量を大きくして圧縮比推定値ＣＭＰＥＳＴの収束を早めるようにしたものである。
【０３４１】
ステップ３３２ではこの更新後の圧縮比推定値ＣＭＰＥＳＴを用いて自着火時期予測値θｋｎｋｅｓｔを再び算出する。この自着火時期予測値θｋｎｋｅｓｔの算出は２回目であり（図３３のステップ２１８での自着火時期予測値θｋｎｋｅｓｔの算出が１回目）、この２回目の自着火時期予測値θｋｎｋｅｓｔを１回目の自着火時期予測値θｋｎｋｅｓｔの上に上書きする。
【０３４２】
２回目以降の自着火時期予測値θｋｎｋｅｓｔの算出については図５１、図５２のフローにより説明する。２回目以降の自着火時期予測値θｋｎｋｅｓｔの算出処理は図４９、図３３における自着火時期予測値の算出処理を流用するものであり、従って図５１、図５２において図４９、図３３と同一部分に同一のステップ番号をつけている。
【０３４３】
図４９、図３３と異なるのは、図５２のステップ２８１、３４１のみである。すなわち、図５１のステップ２１０において１／τの積算値ＳＵＭが１以上となったときには図５２のステップ２８１に進みそのときのクランク角θを自着火時期予測値θｋｎｋｅｓｔ［ｄｅｇＢＴＤＣ］に入れることによって２回目の自着火時期予測値θｋｎｋｅｓｔを算出する。
【０３４４】
このようにして２回目に算出した自着火時期予測値θｋｎｋｅｓｔは図３３のステップ２１８で１回目に算出した自着火時期予測値θｋｎｋｅｓｔよりも自着火時期検出値θｋｎｋｒｅａｌに近づくことになるので、図５０のステップ２６３に戻り、その２回目に算出した自着火時期予測値θｋｎｋｅｓｔを用いて再び着火時期差Δθを算出し、ステップ２６４でこの着火時期差Δθと所定値を比較し、着火時期差Δθが所定値以上であるときにはステップ３３１、３３２、２６３、２６４を繰り返す。この繰り返しによりやがて何回目かに算出した自着火時期予測値θｋｎｋｅｓｔを用いて算出される着火時期差Δθが所定値未満に収まったとき、図５０のステップ２６４から「ＥＮＤ」へと抜けて今回の処理を終了する。
【０３４５】
このように、ノックを検出した場合に着火時期差Δが所定値未満に収まるまで圧縮比推定値ＣＭＰＥＳＴを繰り返し更新する操作（図５０においてステップ２６３、２６４、３３１、３３２のループ操作）は、次の燃焼サイクルが到達するまでには余裕を持って終了するのであり、ノックが検出された燃焼サイクルが終了すれば圧縮比推定値ＣＭＰＥＳＴは収束している。
【０３４６】
一方、図５１において１／τの積算値ＳＵＭが１に達することなくクランク角θが所定値ｃｏｎｓｔ２１を超えたときには図５１のステップ３２２より図５２のステップ３４１に進み所定値ｃｏｎｓｔ２６を自着火時期予測値θｋｎｋｅｓｔに移した後、今回の処理を終了する。所定値ｃｏｎｓｔ２６としては図５１のステップ３２２での所定値ｃｏｎｓｔ２１と同等かこれより大きい値（遅角側の値）を用いる。
【０３４７】
このようにして第３実施形態では、ノックが発生していることが検出されたときには、そのノックが検出された燃焼サイクルにおいて着火時期差Δθが許容範囲に収まるまで圧縮比推定値ＣＭＰＥＳＴを大きくしている。
【０３４８】
一方、図５０においてノッキングが検出されない場合で点火時期最小値ＰＡＤＶが基本点火時期ＭＢＴＣＡＬと一致しておらずかつカウンタ値ｃｏｕｎｔが所定値ｃｏｎｓｔ２４以上になったとき、ステップ２６１、２６７、３３３よりステップ３３４に進んで圧縮比推定値ＣＭＰＥＳＴを第２の所定値ｃｏｎｓｔ２５だけ小さくする。つまり、次式により圧縮比推定値ＣＭＰＥＳＴを更新する。
【０３４９】
ＣＭＰＥＳＴ（new）＝ＣＭＰＥＳＴ（old）−ｃｏｎｓｔ２５…（８５）
ただし、ＣＭＰＥＳＴ（new）：更新後の圧縮比推定値、
ＣＭＰＥＳＴ（old）：更新前の圧縮比推定値、
ｃｏｎｓｔ２５：小さくする側への更新量、
また、図４９のステップ３２２、３２３、図５０のステップ３３３では所定値ｃｏｎｓｔ２１、ｃｏｎｓｔ２２、ｃｏｎｓｔ２４を第１実施形態と異なる値にしている。これらの所定値ｃｏｎｓｔ２１、ｃｏｎｓｔ２２、ｃｏｎｓｔ２４は事前の予備実験等によりマッチングする。このうち所定値ｃｏｎｓｔ２１、ｃｏｎｓｔ２２は第１実施形態の所定値ｃｏｎｓｔ０１、ｃｏｎｓｔ０２と同じでかまわない。
【０３５０】
第３実施形態では、このようにして算出される圧縮比推定値ＣＭＰＥＳＴに基づいて燃焼室５の吸気弁閉時期における容積ＶＩＶＣと、燃焼室５の燃焼開始時期（ＭＢＴＣＹＣＬ）における容積Ｖ０とを算出する。これを図５３、図５４のフローにより説明する。
【０３５１】
図５３、図５４のフローは第１実施形態の図５、図１０と置き換わるものである。図５３において図５と同一部分には同一のステップ番号を、また図５４において図１０と同一部分には同一のステップ番号を付している。
【０３５２】
第１実施形態と相違する部分を主に説明すると、図５３においてステップ３５１では次式により隙間容積Ｖｃ［ｍ3］を算出する。
【０３５３】
Ｖｃ＝｛１／（ＣＭＰＥＳＴ−１）｝×（π／４）Ｄ2・Ｈx    …（８６）
ただし、ＣＭＰＥＳＴ：圧縮比推定値、
Ｄ ：シリンダボア径［ｍ］、
Ｈx：ピストンピン７６のＴＤＣからの距離の最大値と最小値の差［ｍ］
、
ここで、（８６）式は第１実施形態の上記（３）式に置き換わるものである。第１実施形態では（３）式の圧縮比εが一定であるとしていたのを、第３実施形態では可変値としての圧縮比推定値ＣＭＰＥＳＴとしたものである。
【０３５４】
このようにして求めた隙間容積Ｖｃを用い、ステップ３５２では燃焼室５の吸気弁閉時期における容積ＶＩＶＣを次式により算出する。
【０３５５】
ＶＩＶＣ＝Ｖｃ＋（π／４）Ｄ2・Ｈivc                      …（８７）
Ｄ   ：シリンダボア径［ｍ］、
Ｈivc：吸気弁閉時期におけるピストンピン７６のＴＤＣからの距離
［ｍ］、
この（８７）式は、第１実施形態の上記（２）式と同じである。
【０３５６】
次に、図５４においてステップ３６１では上記（８６）式により隙間容積Ｖｃ［ｍ3］を算出し、この隙間容積Ｖｃを用い、ステップ３６２において次式により燃焼室５の燃焼開始時期（ＭＢＴＣＹＣＬ）における容積Ｖ０を算出する。
【０３５７】
Ｖ０＝Ｖｃ＋（π／４）Ｄ2・Ｈmbtcycl                      …（８８）
ただし、Ｄ       ：シリンダボア径［ｍ］、
Ｈmbtcycl：燃焼開始時期（ＭＢＴＣＹＣＬ）におけるピストンピン
７６のＴＤＣからの距離［ｍ］、
第３実施形態（請求項１０に記載の発明）によれば、予めオクタン価の定まっている燃料、ここではオクタン価８０の燃料を使用する場合に、ノックセンサ４７によるノック検出結果を点火時期ではなく圧縮比にフィードバックしている（図５０参照）。このため、圧縮比推定値ＣＭＰＥＳＴの動きは図４８最下段に一点鎖線で示した示したアルコール濃度推定値ＡＬＣＥＳＴと同様の動きをする。すなわち、ノッキングが生じたときには圧縮比推定値ＣＭＰＥＳＴが実際の圧縮比より低い結果であると判断されて圧縮比推定値ＣＭＰＥＳＴがステップ的に高くなる。この結果、ノッキングが生じないようであれば、カウンタ値ｃｏｕｎｔが所定値ｃｏｎｓｔ２４に達する毎に今度は圧縮比推定値ＣＭＰＥＳＴが第２の所定値ｃｏｎｓｔ２５ずつ一定の周期で低くなってゆく。そして、点火時期最小値ＰＡＤＶがＭＢＴＣＡＬに一致した後は圧縮比推定値ＣＭＰＥＳＴの更新は中止されそのときの値が保持される。このように変化する圧縮比推定値ＣＭＰＥＳＴに基づいて燃焼室５の吸気弁閉時期における容積ＶＩＶＣと、燃焼室５の燃焼開始時期（ＭＢＴＣＹＣＬ）における容積Ｖ０とが算出される。
【０３５８】
このように、第３実施形態（請求項１０に記載の発明）によれば、ノックセンサ４７によるノック検出結果に基づいて圧縮比推定値ＣＭＰＥＳＴを算出し（図５０のステップ２６１、３３１、３３４参照）、その圧縮比推定値ＣＭＰＥＳＴに基づいて初期燃焼期間ＢＵＲＮ１の算出に用いられる、燃焼室５の燃焼開始時期における容積Ｖ０を算出する（図５４のステップ３６１、３６２参照）ので、オクタン価８０の燃料（予めオクタン価の定まっている燃料）を使用する場合において何らかの原因で実際の圧縮比がエンジン仕様の圧縮比より高くなったときにおいても、運転状態によらず、ノック検出結果を点火時期にフィードバックする従来装置のようにノック回避のための点火時期の遅角とそれに続く進角の操作とが繰り返されることがない。このため、第１、第２の各実施形態と同様に過渡でもノック限界点火時期を追従できるので、燃費悪化、出力低下を防ぐことができる。
【０３５９】
また、第３実施形態（請求項４５に記載の発明）によれば、燃焼室内で実際にノックが生じているか否かを検出し、燃焼室内でのノック発生時期を検出し、このノック発生時期検出値θｋｎｋｒｅａｌとノック発生時期予測値θｋｎｋｅｓｔとを比較し、この比較結果及び前記ノック検出結果に基づいて圧縮比の推定値ＣＭＰＥＳＴを算出し、この圧縮比推定値ＣＭＰＥＳＴに基づいて前記燃焼室の燃焼開始時期における容積Ｖ０を算出し、この燃焼開始時期における容積Ｖ０に基づいて燃焼開始から所定クランク角までの燃焼期間（ＢＵＲＮ１、ＢＵＲＮ２）を算出し、この燃焼期間（ＢＵＲＮ１、ＢＵＲＮ２）に基づいてＭＢＴの得られる基本点火時期ＭＢＴＣＡＬを算出し、この基本点火時期ＭＢＴＣＡＬで火花点火を行うので、予めオクタン価の定まっている燃料やアルコール濃度の定まっている混合燃料を使用する場合において何らかの原因で実際の圧縮比がエンジン仕様の圧縮比より高くなったときにおいても、圧縮比推定値ＣＭＰＥＳＴの収束を早めつつ、ＭＢＴの得られる基本点火時期を精度よく与えることができる。
【０３６０】
また、圧縮比推定値ＣＭＰＥＳＴの更新（算出）に際しては上記（８４）式に示したように自着火時期検出値θｋｎｋｒｅａｌ（ノック発生時期検出値）と自着火時期予測値θｋｎｋｅｓｔ（ノック発生時期予測値）の着火時期差Δθ（＝θｋｎｋｒｅａｌ−θｋｎｋｅｓｔ）をも考慮している。すなわち、自着火時期予測値θｋｎｋｅｓｔが自着火時期検出値θｋｎｋｒｅａｌより遅角側に大きくズレている（Δθが大きい）ときには、自着火時期予測値θｋｎｋｅｓｔが自着火時期検出値θｋｎｋｒｅａｌより遅角側にそれほどズレてない（Δθが小さい）ときより圧縮比推定値の一回当たりの更新量が大きくなり、自着火時期予測値θｋｎｋｅｓｔが自着火時期検出値θｋｎｋｒｅａｌより遅角側に大きくズレているときのほうが自着火時期予測値θｋｎｋｅｓｔが自着火時期検出値θｋｎｋｒｅａｌより遅角側にそれほどズレていないときより圧縮比推定値ＣＭＰＥＳＴが早く収束する。
【０３６１】
このように、第３実施形態（請求項１０に記載の発明）によれば、着火時期差Δθ（自着火時期検出値θｋｎｋｒｅａｌと自着火時期予測値θｋｎｋｅｓｔとの比較結果）に基づいても圧縮比推定値ＣＭＰＥＳＴ（ノック相関パラメータ推定値）を算出するようにしたので（図５０のステップ３３１参照）、圧縮比推定値ＣＭＰＥＳＴの収束を早めることができ、そのぶん運転性が向上する。
【０３６２】
第３実施形態（請求項１２、４７に記載の発明）によれば、圧縮比推定値算出手段が、ノックが生じたことを検出したときそのノックの検出された燃焼サイクルにおいて自着火時期検出値θｋｎｋｒｅａｌ（ノック発生時期検出値）と自着火時期予測値θｋｎｋｅｓｔ（ノック発生時期予測値）との着火時期差Δθ（発生時期差）が許容範囲内に収まるまで圧縮比推定値ＣＭＰＥＳＴを大きくなる側に更新し（図５０のステップ２６３、２６４、３３１、３３２のループ操作参照）、その後は圧縮比推定値ＣＭＰＥＳＴを第２の所定値ｃｏｎｓｔ２５ずつ小さくなる側に一定の周期で更新する（図５０のステップ２６１、２６７、３３３、２６９、３３４、２７１参照）手段であるので、ノックが検出された燃焼サイクルで圧縮比推定値ＣＭＰＥＳＴを収束させることができる。
【０３６３】
第３実施形態（請求項１３、４８に記載の発明）によれば  圧縮比推定値ＣＭＰＥＳＴを第２の所定値ｃｏｎｓｔ２５ずつ小さくなる側（ノックが発生する側）にする更新（図５０のステップ３３４参照）を、基本点火時期ＭＢＴＣＡＬではノックが発生する条件で実行する（図５０のステップ２６７）ので、圧縮比推定値ＣＭＰＥＳＴを誤って更新することがない。
【０３６４】
第３実施形態（請求項１４、４９に記載の発明）によれば、図５４に示したように燃焼室５の吸気弁閉時期における容積ＶＩＶＣと燃焼開始時期における容積Ｖ０とに基づいて吸気弁閉時期ＩＶＣから燃焼開始時期までの有効圧縮比Ｅｃを算出し（図５４のステップ１６３参照）、燃焼室５の吸気弁閉時期の温度ＴＩＮＩとこの有効圧縮比Ｅｃとから燃焼室５の燃焼開始時期における温度Ｔ０を、燃焼室５の吸気弁閉時期の圧力ＰＩＮＩとこの有効圧縮比Ｅｃとから燃焼室５の燃焼開始時期における圧力Ｐ０をそれぞれ算出し（図５４のステップ１６４〜１６７参照）、これら燃焼室５の燃焼開始時期における温度Ｔ０と圧力Ｐ０とに基づいて初期燃焼期間ＢＵＲＮ１の算出に用いる層流燃焼速度ＳＬ１を算出する（図５４のステップ１６８参照）場合に、圧縮比推定値ＣＭＰＥＳＴに基づいて燃焼室５の吸気弁閉時期における容積ＶＩＶＣを算出する（図５３のステップ３５１、３５２）ので、予めオクタン価の定まっている燃料を使用する場合において何らかの原因で実際の圧縮比が予定している圧縮比より高くなったときにおいても、燃焼室５の吸気弁閉時期における容積ＶＩＶＣを精度よく算出できる。
【０３６５】
第３実施形態では、自着火時期予測値θｋｎｋｅｓｔ（ノック発生時期予測値）を燃焼室内の燃料が自着火に至るまでの時間の逆数の分布を表す特性に基づいて算出する場合で説明したが、自着火時期予測値θｋｎｋｅｓｔに代えて自着火時期検出値θｋｎｋｒｅａｌ（ノック発生時期検出値）を用いるようにしてもかまわない（請求項１１、４６に記載の発明）。
【０３６６】
図５５、図５９、図６１のフローはそれぞれ第４、第５、第６の実施形態で、図５５は第１実施形態の図３８と、図５９は第２実施形態の図４５と、図６１は第３実施形態の図５０とそれぞれ置き換わるものである。図５５において図３８と同一部分には同一のステップ番号を、図５９において図４５と同一部分には同一のステップ番号を、また図６１において図５０と同一部分には同一のステップ番号を付している。
【０３６７】
第１から第３までの３つの実施形態では、ノックが発生していることが検出されたときに、ノックが検出された燃焼サイクルにおいて自着火時期検出値θｋｎｋｒｅａｌと自着火時期予測値θｋｎｋｅｓｔの差である着火時期差Δθが許容範囲内に収まるまでノック相関パラメータを変化させたが（第１実施形態についてオクタン価推定値ＯＣＴＥＳＴを小さくし、第２実施形態についてアルコール濃度推定値ＡＬＣＥＳＴを高くし、第３実施形態について圧縮比推定値ＣＭＰＥＳＴを大きくしている）、第４から第６までの３つの実施形態は、ノックが発生していることが検出されたときに、ノックが検出された燃焼サイクルにおいてノック強度推定値ＫＩＣＥＳＴとノック強度検出値ＫＩＣＲＥＡＬの差であるノック強度差ΔＫＩＣが許容範囲内に収まるまでノック相関パラメータ（第４実施形態についてオクタン価推定値、第５実施形態についてアルコール濃度推定値、第６実施形態について圧縮比推定値）を変化させるものである。
【０３６８】
図５５に示す第４実施形態において図３８に示す第１実施形態と相違する部分はステップ３７１〜３７５、図５９に示す第５実施形態において図４５に示す第２実施形態と相違する部分はステップ３７１〜３７３、３８１、３８２、図６１に示す第６実施形態において図５０に示す第３実施形態と相違する部分はステップ３７１〜３７３、３９１、３９２である。すなわち、第４、第５、第６の各実施形態に共通のステップ３７１では実際のノック強度を読み込む。実際のノック強度を得るには、ノック分の周波数成分の特性を示す図５６においてしきい値から上の面積を積分して求めてやればよい。このようにして求めた積分値に相関係数２を乗算してノック強度に変換し、その変換後の値をノック強度検出値ＫＩＣＲＥＡＬとして読み込む。なお、図５６の特性図は図３９の特性図と同じものである。
【０３６９】
第４実施形態において図５５のステップ３７２〜３７５のループ操作はノック強度差ΔＫＩＣが許容範囲内に収まるようにノックを生じさせることなくオクタン価推定値ＯＣＴＥＳＴを収束させる部分、第５実施形態において図５９のステップ３７２、３７３、３８１、３８２のループ操作はノック強度差ΔＫＩＣが許容範囲内に収まるようにノックを生じさせることなくアルコール濃度推定値ＡＬＣＥＳＴを収束させる部分、また第６実施形態において図６１のステップ３７２、３７３、３９１、３９２のループ操作はノック強度差ΔＫＩＣが許容範囲内に収まるようにノックを生じさせることなく圧縮比推定値ＣＭＰＥＳＴを収束させる部分である。まず第４、第５、第６の各実施形態に共通のステップ３７２で次式によりノック強度差ΔＫＩＣを計算する。
【０３７０】
ΔＫＩＣ＝ＫＩＣＥＳＴ−ＫＩＣＲＥＡＬ                  …（８９）
同じく第４、第５、第６の各実施形態に共通のステップ３７３ではこのノック強度差ΔＫＩＣの絶対値と所定値ｃｏｎｓｔ６とを比較する。所定値ｃｏｎｓｔ６は許容範囲を定めるもので、ノック強度差ΔＫＩＣの絶対値が所定値ｃｏｎｓｔ６未満であれば、ノック強度差ΔＫＩＣは許容範囲内にありオクタン価推定値、アルコール濃度推定値、圧縮比推定値の各誤差とは別の要因でノックが生じたものと判断してそのまま今回の処理を終了する。
【０３７１】
ノック強度差ΔＫＩＣの絶対値が所定値以上であるときには第４実施形態においては図５５のステップ３７４に、第５実施形態においては図５９のステップ３８１に、また第６実施形態においては図６１のステップ３９１に進む。すなわち、ノック強度推定値ＫＩＣＥＳＴのほうがノック強度検出値ＫＩＣＲＥＡＬより大きいときには、ノック強度推定値が大き過ぎることを意味するので、第４実施形態においては図５５のステップ３７４でオクタン価推定値ＯＣＴＥＳＴを第１の所定値ｃｏｎｓｔ０３にノック強度差ΔＫＩＣを乗算した値だけ小さくする。つまり、次式によりオクタン価推定値ＯＣＴＥＳＴを更新する。
【０３７２】
ＯＣＴＥＳＴ（new）＝ＯＣＴＥＳＴ（old）−ｃｏｎｓｔ０３×ΔＫＩＣ…（９０）
ただし、ＯＣＴＥＳＴ（new）：更新後のオクタン価推定値、
ＯＣＴＥＳＴ（old）：更新前のオクタン価推定値、
ｃｏｎｓｔ０３     ：小さくする側への更新割合（正の無名数）、
同様にして第５実施形態においては図５９のステップ３８１でアルコール濃度推定値ＡＬＣＥＳＴを第１の所定値ｃｏｎｓｔ１３にノック強度差ΔＫＩＣを乗算した値だけ大きくする。つまり、次式によりアルコール濃度推定値ＡＬＣＥＳＴを更新する。
【０３７３】
ＡＬＣＥＳＴ（new）＝ＡＬＣＥＳＴ（old）＋ｃｏｎｓｔ１３×ΔＫＩＣ…（９１）
ただし、ＡＬＣＥＳＴ（new）：更新後のアルコール濃度推定値、
ＡＬＣＥＳＴ（old）：更新前のアルコール濃度推定値、
ｃｏｎｓｔ１３     ：大きくする側への更新割合（正の無名数）、
また第６実施形態においては図６１のステップ３９１で圧縮比推定値ＣＭＰＥＳＴを第１の所定値ｃｏｎｓｔ２３にノック強度差ΔＫＩＣを乗算した値だけ大きくする。つまり、次式により圧縮比推定値ＣＭＰＥＳＴを更新する。
【０３７４】
ＣＭＰＥＳＴ（new）＝ＣＭＰＥＳＴ（old）＋ｃｏｎｓｔ２３×ΔＫＩＣ…（９２）
ただし、ＣＭＰＥＳＴ（new）：更新後の圧縮比推定値、
ＣＭＰＥＳＴ（old）：更新前の圧縮比推定値、
ｃｏｎｓｔ２３     ：大きくする側への更新割合（正の無名数）、
ここで、（９０）式右辺第２項はオクタン価推定値の一回当たりの更新量を定めている。一回当たりの更新量にノック強度差ΔＫＩＣを導入しているのは、オクタン価推定値ＯＣＴＥＳＴの収束を早めるためである。すなわち、オクタン価推定値ＯＣＴＥＳＴが実際のオクタン価より大きくかつ実際のオクタン価に近いときにはノック強度推定値ＫＩＣＥＳＴがノック強度検出値ＫＩＣＲＥＡＬより大きい側にそれほどズレないが、オクタン価推定値ＯＣＴＥＳＴが実際のオクタン価より大きくかつ実際のオクタン価より大きくズレているときにはノック強度推定値ＫＩＣＥＳＴがノック強度検出値ＫＩＣＲＥＡＬより大きい側に大きくズレてしまう。そこで、ノック強度推定値ＫＩＣＥＳＴがノック強度検出値ＫＩＣＲＥＡＬより大きい側に大きくズレている（つまりΔＫＩＣが大きい）ときにはこれに合わせて一回当たりの更新量を大きくしてオクタン価推定値ＯＣＴＥＳＴの収束を早めるようにしたものである。（９１）式において第１の所定値ｃｏｎｓｔ１３に、また（９２）式において第１の所定値ｃｏｎｓｔ２３にそれぞれノック強度差ΔＫＩＣを乗算しているのも同じ理由からである。
【０３７５】
第４実施形態において図５５のステップ３７５ではその直前のステップ３７４で更新したオクタン価推定値ＯＣＴＥＳＴを用いて、第５実施形態において図５９のステップ３８２ではその直前のステップ３８１で更新したアルコール濃度推定値ＡＬＣＥＳＴを用いて、また第６実施形態において図６１のステップ３９２ではその直前のステップ３９１で更新した圧縮比推定値ＣＭＰＥＳＴを用いてノック強度推定値ＫＩＣＥＳＴを再び算出する。これらノック強度推定値ＫＩＣＥＳＴの各算出は２回目であり（図３３のステップ２２９でのノック強度推定値ＫＩＣＥＳＴの算出が１回目）、この２回目のノック強度推定値ＫＩＣＥＳＴを１回目のノック強度推定値ＫＩＣＥＳＴの上に上書きする。
【０３７６】
２回目以降のノック強度推定値ＫＩＣＥＳＴの算出については、第４実施形態について図５７、図５８（図５５のステップ３７５のサブルーチン）のフローにより、第５実施形態について図６０、図５８（図５９のステップ３８２のサブルーチン）のフローにより、また第６実施形態について図６２、図５８（図６１のステップ３９２のサブルーチン）のフローにより説明する。２回目以降のノック強度推定値ＫＩＣＥＳＴの算出処理は、第４実施形態においては第１実施形態の図３２、図３３におけるノック強度推定値の算出処理を、第５実施形態においては第２実施形態の図４３、図３３におけるノック強度推定値の算出処理を、第６実施形態においては第３実施形態の図４９、図３３におけるノック強度推定値の算出処理を流用するものであり、従って第４実施形態の図５７、図５８において第１実施形態の図３２、図３３と同一部分に、第５実施形態の図６０、図５８において第２実施形態の図４３、図３３と同一部分に、第６実施形態の図６２、図５８において第３実施形態の図４９、図３３と同一部分に同一のステップ番号をつけている。
【０３７７】
第１、第２、第３の各実施形態におけるノック強度推定値ＫＩＣＥＳＴの算出処理と異なるのは、第１、第２、第３の各実施形態に共通の図３３に示すステップ２３０、２３１、２３２が、第４、第５、第６の各実施形態に共通の図５８になく、かつ第４、第５、第６の各実施形態に共通の図５８において新たにステップ３８１を加えている点である。従って、第４実施形態において図５５のステップ３７４で更新されたオクタン価推定値ＯＣＴＥＳＴを、図５７のステップ２０８において用いた場合に図５７のステップ２１０において１／τの積算値ＳＵＭが１以上となったときに、第５実施形態において図５９のステップ３８１で更新されたアルコール濃度推定値ＡＬＣＥＳＴを図６０のステップ２９３において用いた場合に図６０のステップ２１０において１／τの積算値ＳＵＭが１以上となったときに、また第６実施形態において図６２のステップ２１０において１／τの積算値ＳＵＭが１以上となったときに、第４、第５、第６の各実施形態に共通の図５８のステップ２２９に進んでノック強度推定値ＫＩＣＥＳＴを算出する。
【０３７８】
このようにして２回目に算出したノック強度推定値ＫＩＣＥＳＴは図３３のステップ２２９で１回目に算出したノック強度推定値ＫＩＣＥＳＴよりもノック強度検出値ＫＩＣＲＥＡＬに近づくことになるので、第４実施形態では図５５のステップ３７２に、第５実施形態では図５９のステップ３７２に、また第６実施形態では図６１のステップ３７２に戻り、その２回目に算出したノック強度推定値ＫＩＣＥＳＴを用いて再びノック強度差ΔＫＩＣを算出し、図５５、図５９、図６１のステップ３７３でこのノック強度差ΔＫＩＣと所定値を比較し、ノック強度差ΔＫＩＣが所定値以上であるときには第４実施形態では図５５のステップ３７４、３７５、３７２、３７３を、第５実施形態では図５９のステップ３８１、３８２、３７２、３７３を、また第６実施形態では図６１のステップ３９１、３９２、３７２、３７３を繰り返す。この繰り返しによりやがて何回目かに算出したノック強度推定値ＫＩＣＥＳＴを用いて算出されるノック強度差ΔＫＩＣが所定値未満に収まったとき図５５、図５９、図６１のステップ３７３から「ＥＮＤ」へと抜けて今回の処理を終了する。
【０３７９】
このように、第４実施形態についてノックを検出した場合にノック強度差ΔＫＩＣが所定値未満に収まるまでオクタン価推定値ＯＣＴＥＳＴを繰り返し更新する操作（図５５においてステップ３７２〜３７５のループ操作）、第５実施形態についてノックを検出した場合にノック強度差ΔＫＩＣが所定値未満に収まるまでアルコール濃度価推定値ＡＬＣＥＳＴを繰り返し更新する操作（図５９においてステップ３７２、３７３、３８１、３８２のループ操作）、また第６実施形態についてノックを検出した場合にノック強度差ΔＫＩＣが所定値未満に収まるまで圧縮比推定値ＣＭＰＥＳＴを繰り返し更新する操作（図６１においてステップ３７２、３７３、３９１、３９２のループ操作）は、次の燃焼サイクルが到達するまでには余裕を持って終了するのであり、ノックが検出された燃焼サイクルが終了すれば第４実施形態についてオクタン価推定値ＯＣＴＥＳＴが、第５実施形態についてアルコール濃度推定値ＡＬＣＥＳＴが、また第６実施形態について圧縮比推定値ＣＭＰＥＳＴがそれぞれ収束している。
【０３８０】
一方、第４実施形態の図５７において１／τの積算値ＳＵＭが１に達することなくクランク角θが所定値ｃｏｎｓｔ０１を超えたときには図５７のステップ２１１より、第５実施形態の図６０において１／τの積算値ＳＵＭが１に達することなくクランク角θが所定値ｃｏｎｓｔ１１を超えたときには図６０のステップ２９４より、また第６実施形態の図６２において１／τの積算値ＳＵＭが１に達することなくクランク角θが所定値ｃｏｎｓｔ２１を超えたときには図６０のステップ３２２より、第４、第５、第６の実施形態に共通である図５８のステップ３８１に進みノック強度推定値ＫＩＣＥＳＴ＝０とした後、今回の処理を終了する。
【０３８１】
このようにしてノックが発生していることが検出されたときには、そのノックが検出された燃焼サイクルにおいてノック強度差ΔＫＩＣが許容範囲内に収まるまで、第４実施形態においてはオクタン価推定値ＯＣＴＥＳＴを小さく、第５実施形態においてはアルコール濃度推定値ＡＬＣＥＳＴを高く、また第６実施形態においては圧縮比推定値ＣＭＰＳＴを大きくしている。
【０３８２】
第４、第５、第６の実施形態（請求項１７、２６に記載の発明）によれば、ノック検出結果に基づいてオクタン価、アルコール濃度、圧縮比といったノック相関パラメータの推定値を算出し（ノック検出結果をノック相関パラメータにフィードバック）し（第４実施形態について図５５のステップ２６１、３７４、２７０、第５実施形態について図５９のステップ２６１、３８１、３０４、第６実施形態について図６１のステップ２６１、３９１、３３４参照）、そのノック相関パラメータ推定値に基づいて燃焼室５内での自着火時期予測値θｋｎｋｅｓｔ（ノック発生時期予測値）を算出し（第４実施形態について図３２のステップ２０６〜２１０、図３３のステップ２１８、第５実施形態について図４３のステップ２９１〜２９３、２０９、２１０、図３３のステップ２１８、第６実施形態について図４９のステップ３２１、２０９、２１０、図３３のステップ２１８参照）、この自着火時期予測値θｋｎｋｅｓｔに基づいてノック限界点火時期ＫＮＯＣＫｃａｌを算出する（図３３のステップ２１９〜２３１参照）ようにしたので、燃料のオクタン価や混合燃料中のアルコール濃度を予め知り得ていない市場で販売される燃料を使用する場合においても、また、予めオクタン価の定まっている燃料を使用する場合において何らかの原因で実際の圧縮比がエンジン仕様の圧縮比より高くなったときにおいても、運転状態によらず、ノック検出結果を点火時期にフィードバックする従来装置のようにノック回避のための点火時期の遅角とそれに続く進角の操作とが繰り返されることがない。このため、加速時や減速時などの過渡でもノック限界点火時期を追従できるので、燃費悪化、出力低下を防ぐことができる。
【０３８３】
また、ノックが検出されたときのオクタン価推定値ＯＣＴＥＳＴ、アルコール濃度推定値ＡＬＣＥＳＴ、圧縮比推定値ＣＭＰＥＳＴの各更新（算出）に際しては上記（９０）式、（９１）式、（９２）式に示したようにノック強度推定値ＫＩＣＥＳＴとノック強度検出値ＫＩＣＲＥＡＬのノック強度差ΔＫＩＣ（＝ＫＩＣＥＳＴ−ＫＩＣＲＥＡＬ）をも考慮している。すなわち、第４実施形態についてオクタン価推定値ＯＣＴＥＳＴが実際のオクタン価より大きくかつ実際のオクタン価より大きくズレている（つまりノック強度推定値ＫＩＣＥＳＴがノック強度検出値ＫＩＣＲＥＡＬより大きい側に大きくズレている）ときには、オクタン価推定値ＯＣＴＥＳＴが実際のオクタン価より大きくかつ実際のオクタン価に近い（つまりノック強度推定値ＫＩＣＥＳＴがノック強度検出値ＫＩＣＲＥＡＬより大きい側にそれほどズレてない）ときよりオクタン価推定値の一回当たりの更新量が大きくなり、オクタン価推定値ＯＣＴＥＳＴが実際のオクタン価より大きくかつ実際のオクタン価より大きくズレているときのほうがオクタン価推定値ＯＣＴＥＳＴが実際のオクタン価より大きくかつ実際のオクタン価に近いときよりオクタン価推定値ＯＣＴＥＳＴが早く収束する。第５実施形態についてアルコール濃度推定値ＡＬＣＴＥＳＴが実際のアルコール濃度より低くかつ実際のアルコール濃度より大きくズレている（つまりノック強度推定値ＫＩＣＥＳＴがノック強度検出値ＫＩＣＲＥＡＬより大きい側に大きくズレている）ときには、アルコール濃度推定値ＡＬＣＥＳＴが実際のアルコール濃度より低くかつ実際のアルコール濃度に近い（つまりノック強度推定値ＫＩＣＥＳＴがノック強度検出値ＫＩＣＲＥＡＬより大きい側にそれほどズレてない）ときよりアルコール濃度推定値の一回当たりの更新量が大きくなり、アルコール濃度推定値ＡＬＣＥＳＴが実際のアルコール濃度より低くかつ実際のアルコール濃度より大きくズレているときのほうがアルコール濃度推定値ＡＬＣＥＳＴが実際のアルコール濃度より低くかつ実際のアルコール濃度に近いときよりアルコール濃度推定値ＡＬＣＥＳＴが早く収束する。第６実施形態についてノック強度推定値ＫＩＣＥＳＴがノック強度検出値ＫＩＣＲＥＡＬより大きい側に大きくズレている（Δθが大きい）ときには、ノック強度推定値ＫＩＣＥＳＴがノック強度検出値ＫＩＣＲＥＡＬより大きい側にそれほどズレてない（Δθが小さい）ときより圧縮比推定値の一回当たりの更新量が大きくなり、ノック強度推定値ＫＩＣＥＳＴがノック強度検出値ＫＩＣＲＥＡＬより大きい側に大きくズレているときのほうがノック強度推定値ＫＩＣＥＳＴがノック強度検出値ＫＩＣＲＥＡＬより大きい側にそれほどズレてないときより圧縮比推定値ＣＭＰＥＳＴが早く収束する。
【０３８４】
このように第４、第５、第６の実施形態（請求項１７、２６に記載の発明）によれば、ノック強度差ΔＫＩＣ（ノック強度推定値ＫＩＣＥＳＴとノック強度検出値ＫＩＣＲＥＡＬとの比較結果）に基づいても、オクタン価推定値ＯＣＴＥＳＴ、アルコール濃度推定値ＡＬＣＥＳＴ、圧縮比推定値ＣＭＰＥＳＴといったノック相関パラメータ推定値を算出するので（図５５のステップ３７４、図５９の３８１、図６１のステップ３９１参照）、ノック相関パラメータ推定値の収束を早めることができ、そのぶん運転性が向上する。
【０３８５】
また、ノックセンサ４７を用いた自着火時期（ノック発生時期）の検出において精度を高めるにはサンプリング周期を短くする必要があるが、ノック強度を用いるのであればノックセンサ４７のサンプリング周波数を低くできることから、ノック強度を用いる第４、第５、第６の実施形態（請求項１７、２６に記載の発明）によれば、性能を悪化することなく安価にシステムを構成できる。
【０３８６】
第４実施形態では、図５、図１０、図１２、図１３に示したように、層流燃焼速度ＳＬ１、ＳＬ２、燃焼ガス体積相当容積（Ｖ０、ＶＴＤＣ）、燃焼質量割合（ＢＲ１、ＢＲ２）及び反応確率ＲＰＲＯＢＡに基づいて燃焼開始から所定クランク角までの燃焼期間（ＢＵＲＮ１、ＢＵＲＮ２）を算出し、この燃焼期間（ＢＵＲＮ１、ＢＵＲＮ２）に基づいて基本点火時期ＭＢＴＣＡＬを算出する場合で説明したが、基本点火時期ＭＢＴＣＡＬの算出に代えて、ベース点火時期のマップを備えさせるものでもかまわない。この場合に、ノック限界点火時期算出手段を、自着火時期予測値θｋｎｋｅｓｔ（ノック発生時期予測値）と運転条件とに基づいて燃焼室５のノックによる圧力上昇量ＤＰ１を推定する圧力上昇量推定手段（図３３のステップ２１９〜２２６参照）と、この圧力上昇量ＤＰ１に基づいてノック強度推定値ＫＩＣを算出するノック強度推定値算出手段（図３３のステップ２２７〜２２９参照）と、このノック強度推定値ＫＩＣに基づいてノックリタード量ＫＮＲＴを算出するノックリタード量算出手段（図３３のステップ２３０参照）と、このノックリタード量ＫＮＲＴだけ基本点火時期ＭＢＴＣＡＬを遅角側に補正した値をノック限界点火時期ＫＮＯＣＫｃａｌとして設定するノック限界点火時期設定手段（図３３のステップ２３１参照）とを含んで構成することで（請求項１８に記載の発明）、基本点火時期としてのベース点火時期をマップで与えるにしても、最大オクタン価から最小オクタン価までの複数の異なるオクタン価毎にベース点火時期のマップを与える必要がなく、これによりＲＯＭ容量が大きくなることがない。
【０３８７】
第４実施形態（請求１９に記載の発明）によれば、ガソリンを燃料とする場合にオクタン価がノックに及ぼす影響が一番大きいことに対応して、このオクタン価推定値ＯＣＴＥＳＴをノック検出結果及びノック強度ΔＫＩＣ（ノック強度検出値ＫＩＣＲＥＡＬとノック強度推定値ＫＩＣＥＳＴの比較結果）に基づいて算出するので（図５５のステップ２６１、３７１、３７２、３７４参照）、オクタン価が予め分かっていないガソリンを使用燃料とする場合であっても自着火時期予測値θｋｎｋｅｓｔ（ノック発生時期予測値）を精度よく算出できる。
【０３８８】
また、第４実施形態（請求項２０に記載の発明）によれば、オクタン価推定値算出手段が、ノックが生じたことを検出したときそのノックの検出された燃焼サイクルにおいてノック強度推定値ＫＩＣＥＳＴとノック強度検出値ＫＩＣＲＥＡＬとのノック強度差ΔＫＩＣが許容範囲内に収まるまでオクタン価推定値ＯＣＴＥＳＴを小さくなる側に更新し（特に図５５のステップ３７２〜３７５のループ操作参照）、その後はオクタン価推定値ＯＣＴＥＳＴを第２の所定値ｃｏｎｓｔ０５ずつ大きくなる側に一定の周期で更新する（図５５のステップ２６１、２６７〜２７１参照）手段であるので、ノックが検出された燃焼サイクルでオクタン価推定値ＯＣＴＥＳＴを収束させることができる。
【０３８９】
第４実施形態（請求項２１に記載の発明）によれば  オクタン価推定値ＯＣＴＥＳＴを第２の所定値ｃｏｎｓｔ０５ずつ大きくなる側（ノックが発生する側）にする更新（図５５のステップ２７０参照）を、基本点火時期ＭＢＴＣＡＬではノックが発生する条件でつまり点火時期最小値ＰＡＤＶが基本点火時期ＭＢＴＣＡＬより遅角されている場合にだけ実行する（図３８のステップ２６７）ので、オクタン価推定値ＯＣＴＥＳＴを誤って更新することがない。
【０３９０】
第４実施形態（請求項２５に記載の発明）によれば、基本点火時期算出手段が、燃焼ガスの層流状態での燃焼速度である層流燃焼速度（ＳＬ１、ＳＬ２）を算出する層流燃焼速度算出手段（図１０のステップ１６８、図１２のステップ１８８参照）と、燃焼室５内の燃焼ガス体積に相当する容積（Ｖ０、ＶＴＤＣ）を算出する燃焼ガス体積相当容積算出手段（図１０のステップ１６２、図１２の１８２参照）と、所定のクランク角までに燃焼室５内で燃焼するガスの燃焼質量割合（ＢＲ１、ＢＲ２）を算出する燃焼質量割合算出手段（図１０のステップ１７１、図１２のステップ１９１参照）と、所定運転条件での燃焼ガスの燃焼のしやすさを示す反応確率ＲＰＲＯＢＡを算出する反応確率算出手段（図５のステップ１５参照）と、これら層流燃焼速度（ＳＬ１、ＳＬ２）、燃焼ガス体積相当容積（Ｖ０、ＶＴＤＣ）、燃焼質量割合（ＢＲ１、ＢＲ２）及び反応確率ＲＰＲＯＢＡに基づいて燃焼開始から所定クランク角までの燃焼期間（ＢＵＲＮ１、ＢＵＲＮ２）を算出する燃焼期間算出手段（図１０のステップ１７１、図１２のステップ１９１参照）と、この燃焼期間（ＢＵＲＮ１、ＢＵＲＮ２）に基づいてＭＢＴの得られる基本点火時期ＭＢＴＣＡＬを算出する基本点火時期算出手段（図１３のステップ４１〜４３参照）とを含むので、この基本点火時期ＭＢＴＣＡＬを遅角側に補正した値であるノック限界点火時期ＫＮＯＣＫｃａｌが燃焼解析に基づいて算出されることになり、これにより運転条件によらず最適なノック限界点火時期ＫＮＯＣＫｃａｌを算出できる。
【０３９１】
第５実施形態（請求項２２に記載の発明）によれば、ガソリンとアルコールの混合燃料では混合燃料中のアルコール濃度がノックに影響を及ぼすことに対応して、このアルコール濃度推定値ＡＬＣＥＳＴをノック検出結果及びノック強度差ΔＫＩＣ（ノック強度推定値ＫＩＣＥＳＴとノック強度検出値ＫＩＣｒｅａｌの比較結果）に基づいて算出するので（図５９のステップ２６１、３７１、３７２、３８１参照）、アルコール濃度を予め知り得ないアルコール含有燃料を使用燃料とする場合であっても自着火時期予測値θｋｎｋｅｓｔ（ノック発生時期予測値）を精度よく算出できる。
【０３９２】
第５実施形態（請求項２３に記載の発明）によれば、アルコール濃度推定値算出手段が、ノックが生じたことを検出したときそのノックの検出された燃焼サイクルにおいてノック強度推定値ＫＩＣＥＳＴとノック強度検出値ＫＩＣＲＥＡＬとのノック強度差ΔＫＩＣが許容範囲内に収まるまでアルコール濃度推定値ＡＬＣＥＳＴを高くなる側に更新し（特に図５９のステップ３７２、３７３、３８１、３８２のループ操作参照）、その後はアルコール濃度推定値ＡＬＣＥＳＴを第２の所定値ｃｏｎｓｔ１５ずつ低くなる側に一定の周期で更新する（図５９のステップ２６１、２６７、３０３、２６９、３０４、２７１参照）手段であるので、ノックが検出された燃焼サイクルでアルコール濃度推定値ＡＬＣＥＳＴを収束させることができる。
【０３９３】
第５実施形態（請求項２４に記載の発明）によれば、アルコール濃度推定値ＡＬＣＥＳＴを第２の所定値ｃｏｎｓｔ１５ずつ低くなる側（ノックが発生する側）にする更新（図５９のステップ３０４参照）を、基本点火時期ＭＢＴＣＡＬではノックが発生する条件で実行する（図５９のステップ２６７）ので、アルコール濃度推定値ＡＬＣＥＳＴを誤って更新することがない。
【０３９４】
第６実施形態（請求項５２に記載の発明）によれば、燃焼室内で実際にノックが生じているか否かを検出し、燃焼室内でのノック強度を検出し、このノック強度検出値ＫＩＣＲＥＡＬとノック強度推定値ＫＩＣＥＳＴとを比較し、この比較結果及び前記ノック検出結果に基づいて圧縮比の推定値ＣＭＰＥＳＴを算出し、この圧縮比推定値ＣＭＰＥＳＴに基づいて前記燃焼室の燃焼開始時期における容積Ｖ０を算出し、この燃焼開始時期における容積Ｖ０に基づいて燃焼開始から所定クランク角までの燃焼期間（ＢＵＲＮ１、ＢＵＲＮ２）を算出し、この燃焼期間（ＢＵＲＮ１、ＢＵＲＮ２）に基づいてＭＢＴの得られる基本点火時期ＭＢＴＣＡＬを算出し、この基本点火時期ＭＢＴＣＡＬで火花点火を行うので、予めオクタン価の定まっている燃料やアルコール濃度の定まっている混合燃料を使用する場合において何らかの原因で実際の圧縮比がエンジン仕様の圧縮比より高くなったときにおいても、圧縮比推定値ＣＭＰＥＳＴの収束を早めつつ、ＭＢＴの得られる基本点火時期を精度よく与えることができる。
【０３９５】
第６実施形態（請求項２８、５５に記載の発明）によれば、圧縮比推定値算出手段が、ノックが生じたことを検出したときそのノックの検出された燃焼サイクルにおいてノック強度推定値ＫＩＣＥＳＴとノック強度検出値ＫＩＣＲＥＡＬとのノック強度差ΔＫＩＣが許容範囲内に収まるまで圧縮比推定値ＣＭＰＥＳＴを大きくなる側に更新し（特に図６１のステップ３７２、３７３、３９１、３９２のループ操作参照）、その後は圧縮比推定値ＣＭＰＥＳＴを第２の所定値ｃｏｎｓｔ２５ずつ低くなる側に一定の周期で更新する（図６１のステップ２６１、２６７、３３３、２６９、３３４、２７１参照）手段であるので、ノックが検出された燃焼サイクルで圧縮比推定値ＣＭＰＥＳＴを収束させることができる。
【０３９６】
第６実施形態（請求項２９、５５に記載の発明）によれば  圧縮比推定値ＣＭＰＥＳＴを第２の所定値ｃｏｎｓｔ２５ずつ小さくなる側（ノックが発生する側）にする更新（図６１のステップ３３４参照）を、基本点火時期ＭＢＴＣＡＬではノックが発生する条件で実行する（図６１のステップ２６７）ので、圧縮比推定値ＣＭＰＥＳＴを誤って更新することがない。
【０３９７】
第６実施形態（請求項３０、５６に記載の発明）によれば、図５４に示したように燃焼室５の吸気弁閉時期における容積ＶＩＶＣと燃焼開始時期における容積Ｖ０とに基づいて吸気弁閉時期ＩＶＣから燃焼開始時期までの有効圧縮比Ｅｃを算出し（図５４のステップ１６３参照）、燃焼室５の吸気弁閉時期の温度ＴＩＮＩとこの有効圧縮比Ｅｃとから燃焼室５の燃焼開始時期における温度Ｔ０を、燃焼室５の吸気弁閉時期の圧力ＰＩＮＩとこの有効圧縮比Ｅｃとから燃焼室５の燃焼開始時期における圧力Ｐ０をそれぞれ算出し（図５４のステップ１６４〜１６７参照）、これら燃焼室５の燃焼開始時期における温度Ｔ０と圧力Ｐ０とに基づいて初期燃焼期間ＢＵＲＮ１の算出に用いる層流燃焼速度ＳＬ１を算出する（図５４のステップ１６８参照）場合に、圧縮比推定値ＣＭＰＥＳＴに基づいて燃焼室５の吸気弁閉時期における容積ＶＩＶＣを算出する（図５３のステップ３５１、３５２）ので、予めオクタン価の定まっている燃料を使用する場合において何らかの原因で実際の圧縮比が予定している圧縮比より高くなったときにおいても、燃焼室５の吸気弁閉時期における容積ＶＩＶＣを精度よく算出できる。
【０３９８】
第６実施形態では、自着火時期予測値θｋｎｋｅｓｔ（ノック発生時期予測値）を燃焼室内の燃料が自着火に至るまでの時間の逆数の分布を表す特性に基づいて算出する場合で説明したが、自着火時期予測値θｋｎｋｅｓｔに代えて自着火時期検出値θｋｎｋｒｅａｌ（ノック発生時期検出値）を用いるようにしてもかまわない（請求項２７、５３に記載の発明）。
【０３９９】
このように第４、第６、第７の実施形態においても、第１、第２、第３実施形態と同様の作用効果を奏する。
【０４００】
図６３のフローは第７実施形態、図６８のフローは第８実施形態で、図６３は第１実施形態の図３８または第４実施形態の図５５と、また図６８は第２実施形態の図４５または第５実施形態の図５９とそれぞれ置き換わるものである。図６３において図３８、図５５と同一部分には同一のステップ番号を、また図６８において図４５、図５９と同一部分には同一のステップ番号を付している。
【０４０１】
第１実施形態ではノックが発生していることが検出されたときに、そのノックが検出された燃焼サイクルにおいて自着火時期検出値θｋｎｋｒｅａｌと自着火時期予測値θｋｎｋｅｓｔの差である着火時期差Δθが許容範囲内に収まるまでオクタン価推定値ＯＣＴＥＳＴを小さくしたが、第７実施形態はノックが発生していることが検出されたときに、そのノックが検出された燃焼サイクルにおいてこれに加えて圧縮比推定値をも算出するようにしたものである。同様にして第２実施形態では、ノックが発生していることが検出されたときに、そのノックが検出された燃焼サイクルにおいて自着火時期検出値θｋｎｋｒｅａｌと自着火時期予測値θｋｎｋｅｓｔの差である着火時期差Δθが許容範囲内に収まるまでアルコール濃度推定値ＡＬＣＥＳＴを高くしたが、第８実施形態はノックが発生していることが検出されたときに、そのノックが検出された燃焼サイクルにおいてこれに加えて圧縮比推定値をも算出するようにしたものである。
【０４０２】
図６３に示す第７実施形態について図３８に示す第１実施形態または図５５に示す第４実施形態と主に相違する部分はステップ４０１、４０２、また図６８に示す第８実施形態について図４５に示す第２実施形態または図５９に示す第５実施形態と主に相違する部分はステップ４０１、４６１である。すなわち、第７、第８の実施形態に共通のステップ４０１では圧縮比推定値ＣＭＰＥＳＴ２を算出する。この圧縮比推定値ＣＭＰＥＳＴ２の算出については第７、第８の実施形態に共通である図６４のフローにより説明する。
【０４０３】
ここで、第７、第８の実施形態における圧縮比推定値の算出方法は第３実施形態における圧縮比推定値の算出方法と相違するため、第７、第８の実施形態で算出する圧縮比推定値を「ＣＭＰＥＳＴ２」として第３実施形態で算出される圧縮比推定値「ＣＭＰＥＳＴ」と区別する。
【０４０４】
第７、第８の実施形態に共通である図６４（図６３、図６８のステップ４０１のサブルーチン）においてステップ４１１では図１４のステップ５２、５３で算出されているシリンダ新気量ＭＡＣＹＬ［ｇ］及び内部不活性ガス量ＭＲＥＳ［ｇ］、燃料量ＱＩＮＪ［ｇ］を読み込む。なお、燃料量ＱＩＮＪ［ｇ］は燃料噴射パルス幅ＴＩ［ｍｓ］に比例させて求めればよい。
【０４０５】
ステップ４１２ではシリンダ新気量ＭＡＣＹＬ［ｇ］をＷＩＤＲＹ［ｇ］に、内部不活性ガス量ＭＲＥＳ［ｇ］をＭＡＳＳＺ［ｇ］に移す。これらＷＩＤＲＹ、ＭＡＳＳＺは、ノック強度指標ＫＮＫＩの算出にのみ用いるために導入したもので、ＷＩＤＲＹはシリンダ新気量、ＭＡＳＳＺは内部不活性ガス量である。
【０４０６】
ステップ４１３では、図６３、図６８のステップ２６２で得ている自着火時期検出値θｋｎｋｒｅａｌを用いて、自着火時期検出値θｋｎｋｒｅａｌでの燃焼質量割合ＢＲｋｎｋｒｅａｌを算出する。これは自着火時期検出値θｋｎｋｒｅａｌが初期燃焼期間にあるときにはこの自着火時期検出値θｋｎｋｒｅａｌを圧縮上死点ＴＤＣを基準とする上記のクランク角Θに変換し、その変換したクランク角Θを上記の（６２）式に、また自着火時期検出値θｋｎｋｒｅａｌが主燃焼期間にあるときにはこの自着火時期検出値θｋｎｋｒｅａｌを圧縮上死点ＴＤＣを基準とする上記のクランク角Θに変換し、その変換したクランク角Θを上記の（６３）式にそれぞれ代入することによって求めることができる。
【０４０７】
ステップ４１４では、燃焼室５の自着火時における平均温度ＴＥを算出する。これは上記（６４）式右辺の燃焼質量割合ＢＲに１．０を代入して得られる燃焼室５の平均温度ＴＣを燃焼室５の自着火時平均温度ＴＥとして求めればよい。
【０４０８】
ステップ４１５では燃料量ＱＩＮＪ［ｇ］と自着火時期検出値θｋｎｋｒｅａｌでの燃焼質量割合ＢＲｋｎｋｒｅａｌとから自着火時の未燃燃料量ＭＵＢ２［ｇ］を次式により算出する。
【０４０９】
ＭＵＢ２＝ＱＩＮＪ×（１−ＢＲｋｎｋｒｅａｌ）          …（９３）
（９３）式は上記（補１０）式においてＭＵＢ→ＭＵＢ２、ＢＲｋｎｋ→ＢＲｋｎｋｒｅａｌの置き換えにより得られる式である。
【０４１０】
ステップ４１６〜４１８では総ガスモル数ＭＬＡＬＬ、ガスエンタルピＥ、既燃ガスの比熱Ｃｖをそれぞれ算出する。これらの算出は図３３のステップ２２３、２２４、２２５と同じであるので説明を省略する。
【０４１１】
ステップ４１９では、図６３、図６８のステップ３７１で得ているノック強度検出値ＫＩＣＲＥＡＬを用いて自着火による圧力上昇分つまりノックによる圧力上昇分ＤＰ２［Ｐａ］を次式により算出する。
【０４１２】
ＤＰ２＝ＫＩＣＲＥＡＬ／相関係数３                      …（９４）
（９４）式は上記（７５）式と同じ式である。すなわち上記（７５）式は圧力上昇分をノック強度へと変換するものであったが、（９４）式はこの逆にノック強度を圧力上昇分へと変換するものである。従って、（９４）式右辺の相関係数３はノック強度との相関を表すための係数である。簡単には相関係数３は図３３のステップ２２７で用いた相関係数１と同じでよい。
【０４１３】
ステップ４２０では燃焼室５の自着火時期検出値θｋｎｋｒｅａｌにおける容積Ｖｋｎｋ２を次式により算出する。
【０４１４】
Ｖｋｎｋ２＝（ＭＬＡＬＬ×Ｒ＃×ＣＦ＃×ＭＵＢ２）
／｛ＤＰ２×Ｃｖ×（ＭＡＳＳＺ＋ＱＩＮＪ＋ＷＩＤＲＹ）｝
…（９５）
ただし、ＣＦ＃：燃料の低位発熱量、
（９５）式は上記（７４）式と同じ式である。すなわち、上記（７４）式は圧力上昇分について整理した式、（９５）式は燃焼室容積について整理した式である。
【０４１５】
ステップ４２１ではこの燃焼室５の自着火時期検出値θｋｎｋｒｅａｌにおける容積Ｖｋｎｋ２を用いて次式により隙間容積Ｖｃ２を算出する。
【０４１６】
Ｖｃ２＝Ｖｋｎｋ２−（π／４）Ｄ2・Ｈｋｎｋｒｅａｌ      …（９６）
ただし、Ｄ              ：シリンダボア径［ｍ］、
Ｈｋｎｋｒｅａｌ：自着火時期検出値におけるピストンピン７６のＴＤＣ                                からの距離［ｍ］、
（９６）式は上記（２）式と同じ式である。すなわち、（９６）式右辺第２項は燃焼室５の自着火時期検出値θｋｎｋｒｅａｌにおける容積（隙間面積を含まない）であるので、隙間容積を含んでいるＶｋｎｋ２からこの容積を差し引くことで隙間容積を得ることができる。Ｄ、Ｈｋｎｋｒｅａｌはエンジンの仕様により既知である。
【０４１７】
ステップ４２２ではこの隙間容積Ｖｃ２を用いて圧縮比推定値ＣＭＰＥＳＴ２を次式により算出する。
【０４１８】
ＣＭＰＥＳＴ２＝（π／４）Ｄ2・Ｈx／Ｖｃ２＋１           …（９７）
ただし、Ｄ ：シリンダボア径［ｍ］、
Ｈx：ピストンピン７６のＴＤＣからの距離の最大値と最小値の差［ｍ］
、
（９７）式は上記（８６）式と同じ式である。すなわち、上記（８６）式は隙間容積について整理した式、（９７）式は圧縮比について整理した式である。Ｄ、Ｈxもエンジンの仕様により既知である。
【０４１９】
このようにして圧縮比推定値ＣＭＰＥＳＴ２の算出を終了したら第７実施形態においては図６３に戻りステップ４０２でオクタン価推定値ＯＣＴＥＳＴを、また第８実施形態においては図６８に戻りステップ４６１でアルコール濃度推定値ＡＬＣＥＳＴを算出する。第７実施形態のオクタン価推定値ＯＣＴＥＳＴの算出については図６５のフローにより、また第８実施形態のアルコール濃度推定値ＡＬＣＥＳＴの算出については図６９のフローにより説明する。
【０４２０】
ノックが生じたことを検出した場合にそのノックを検出した燃焼サイクルにおいて第１実施形態では着火時期差Δθが所定値未満に収まるまで、また第４実施形態ではノック強度差ΔＫＩＣが所定値未満に収まるまでオクタン価推定値ＯＣＴＥＳＴを繰り返し更新してオクタン価推定値ＯＣＴＥＳＴを収束させたが、ノックが生じたことを検出した場合にそのノックを検出した燃焼サイクルにおいて第７実施形態は燃焼室５内の燃料が自着火に至るまでの時間であって燃焼室５内の圧力と温度によって相違する時間τの逆数（１／τ）を所定のクランク角毎に燃焼開始時期よりノック発生時期検出値θｋｎｋｒｅａｌまでにわたって積算し、その積算値ＳＵＭと１との差の絶対値が許容範囲内に収まるまでオクタン価推定値ＯＣＴＥＳＴを繰り返し更新してオクタン価推定値ＯＣＴＥＳＴを収束させるものである。
【０４２１】
同様にして、ノックが生じたことを検出した場合にそのノックを検出した燃焼サイクルにおいて第２実施形態では着火時期差Δθが所定値未満に収まるまで、また第５実施形態ではノック強度差ΔＫＩＣが所定値未満に収まるまでアルコール濃度推定値ＡＬＣＥＳＴを繰り返し更新してアルコール濃度推定値ＡＬＣＥＳＴを収束させたが、ノックが生じたことを検出した場合にそのノックを検出した燃焼サイクルにおいて第８実施形態は燃焼室５内の燃料が自着火に至るまでの時間であって燃焼室５内の圧力と温度によって相違する時間の逆数（１／τ）を所定のクランク角毎に燃焼開始時期よりノック発生時期検出値θｋｎｋｒｅａｌまでにわたって積算し、その積算値ＳＵＭと１との差の絶対値が許容範囲に収まるまでアルコール濃度推定値ＡＬＣＥＳＴを繰り返し更新してアルコール濃度推定値ＡＬＣＥＳＴを収束させるものである。
【０４２２】
ここでは、第７実施形態でのオクタン価推定値ＯＣＴＥＳＴの算出方法として第１実施形態の上記図４０、図４１における自着火時期予測値の算出方法または第４実施形態の上記図５７、図５８における自着火時期予測値の算出方法を、また第８実施形態でのアルコール濃度推定値ＡＬＣＥＳＴの算出方法として第２実施形態の上記図４６、図４７における自着火時期予測値の算出方法または第５実施形態の上記図６０、図５８における自着火時期予測値の算出方法を流用する。
【０４２３】
具体的に説明すると、第７実施形態の図６５（図６３ステップ４０２のサブルーチン）について第１実施形態の図４０または第４実施形態の図５７と同一部分には同一のステップ番号を、また第８実施形態の図６９（図６８ステップ４６１のサブルーチン）において第２実施形態の図４６または第５実施形態の図６０と同一部分には同一のステップ番号をつけている。
【０４２４】
第７実施形態の図６５について第１実施形態の図４０または第４実施形態の図５７と相違するのはステップ４３１、４３２、４３３、第８実施形態の図６９について第２実施形態の図４６または第５実施形態の図６０と相違するのはステップ４３１、４３２、４７１である。
【０４２５】
第７実施形態について第１、第４の実施形態と相違する部分を主に説明すると、図６５においてまずステップ４３１ではクランク角θと、図６３のステップ２６２で得ている自着火時期検出値θｋｎｋｒｅａｌとを比較する。クランク角θが自着火時期検出値θｋｎｋｒｅａｌに達しない前には図６５のステップ２１２に進んでクランク角θを所定角度ｃｏｎｓｔ０２ずつ進めつつ図６５のステップ２１３〜２１７、２０６〜２０９、４３１の操作を繰り返す。やがてクランク角θが自着火時期検出値θｋｎｋｒｅａｌに達したときには図６５ののステップ４３１よりステップ４３２に進んでオクタン価推定値ＯＣＴＥＳＴの燃料での１／τの積算値ＳＵＭと１との差の絶対値を所定値ε（正の値）と比較する。所定値εは許容範囲を定めるもので、１と１／τの積算値ＳＵＭの差の絶対値が所定値ε未満に収まっていれば、「ＥＮＤ」へと進んで今回の処理を終了する。
【０４２６】
一方、１と１／τの積算値ＳＵＭの差の絶対値が所定値ε以上あればオクタン価推定値ＯＣＴＥＳＴが大き過ぎると判断し、ステップ４３３に進んでオクタン価推定値ＯＣＴＥＳＴを小さくする。つまり、次式によりオクタン価推定値ＯＣＴＥＳＴを更新する。
【０４２７】
ＯＣＴＥＳＴ（new）＝ＯＣＴＥＳＴ（old）−ｃｏｎｓｔ０３×（１−ＳＵＭ）
…（９８）
ただし、ＯＣＴＥＳＴ（new）：更新後のオクタン価推定値、
ＯＣＴＥＳＴ（old）：更新前のオクタン価推定値、
ｃｏｎｓｔ０３     ：小さくする側への更新割合（正の無名数）、
ここで、（９８）式右辺第２項はオクタン価推定値の一回当たりの更新量を定めている。一回当たりの更新量に１から１／τの積算値ＳＵＭを差し引いた値を導入しているのは、オクタン価推定値ＯＣＴＥＳＴの収束を早めるためである。すなわち、オクタン価推定値ＯＣＴＥＳＴが実際のオクタン価より大きくかつ実際のオクタン価に近いときには１から１／τの積算値ＳＵＭを差し引いた値は相対的に小さなものであるが、オクタン価推定値ＯＣＴＥＳＴが実際のオクタン価より大きくかつ実際のオクタン価より大きくズレているときには１から１／τの積算値ＳＵＭを差し引いた値が相対的に大きなものとなる。そこで、１から１／τの積算値ＳＵＭを差し引いた値が相対的に大きいときにはこれに合わせてオクタン価推定値の一回当たりの更新量を大きくしてオクタン価推定値ＯＣＴＥＳＴの収束を早めるようにしたものである。
【０４２８】
その後は図６５のステップ２０３に戻ってステップ２０３からの操作を繰り返し実行し、クランク角θが自着火時期検出値θｋｎｋｒｅａｌに達したときには図６５のステップ４３１よりステップ４３２へと進み１と１／τの積算値ＳＵＭ１の差の絶対値が所定値ε以上あればオクタン価推定値ＯＣＴＥＳＴがまだ大き過ぎると判断しステップ４３３でオクタン価推定値ＯＣＴＥＳＴを再び小さくした後図６５のステップ２０３に戻る。再び上記の操作を繰り返すと、やがて１と１／τの積算値ＳＵＭの差の絶対値が所定値ε未満となり、このときには「ＥＮＤ」へと進んで図６５の処理を終了する。この結果、１と１／τの積算値ＳＵＭの差の絶対値が所定値ε未満に収まったときのオクタン価推定値がオクタン価推定値の収束値となる。
【０４２９】
このようにして、ノックが発生していることが検出されたときには、そのノックが検出された燃焼サイクルにおいて燃焼開始時期（ＭＢＴＣＡＬ＋ＩＧＮＤＥＡＤ）より自着火時期検出値θｋｎｋｒｅａｌまでの１／τの積算値ＳＵＭと１との差の絶対値が許容範囲内に収まるまでオクタン価推定値ＯＣＴＥＳＴを繰り返し更新してオクタン価推定値ＯＣＴＥＳＴを収束させる。
【０４３０】
次に、第８実施形態において第２、第５の実施形態と相違する部分を主に説明すると、図６９においてまずステップ４３１ではクランク角θと、図６８のステップ２６２で得ている自着火時期検出値θｋｎｋｒｅａｌとを比較する。クランク角θが自着火時期検出値θｋｎｋｒｅａｌに達しない前には図６９のステップ２９５に進んでクランク角θを所定角度ｃｏｎｓｔ１２ずつ進めつつ図６９のステップ２１３〜２１７、２９１、２９２、２９３、２０９、４３１の操作を繰り返す。やがてクランク角θが自着火時期検出値θｋｎｋｒｅａｌに達したときには図６９のステップ４３１よりステップ４３２に進んでアルコール濃度推定値ＡＬＣＥＳＴの混合燃料での１／τの積算値ＳＵＭと１との差の絶対値を所定値ε（正の値）と比較する。１と１／τの積算値ＳＵＭの差の絶対値が所定値ε未満に収まっていれば、「ＥＮＤ」へと進んで今回の処理を終了する。
【０４３１】
一方、１と１／τの積算値ＳＵＭの差の絶対値が所定値ε以上あればアルコール濃度推定値ＡＬＣＥＳＴが小さ過ぎると判断し、ステップ４７１に進んでアルコール濃度推定値ＡＬＣＥＳＴを大きくする。つまり、次式によりアルコール濃度推定値ＡＬＣＥＳＴを更新する。
【０４３２】
ＡＬＣＥＳＴ（new）＝ＡＬＣＥＳＴ（old）＋ｃｏｎｓｔ１３×（１−ＳＵＭ）
…（９９）
ただし、ＡＬＣＥＳＴ（new）：更新後のアルコール濃度推定値、
ＡＬＣＥＳＴ（old）：更新前のアルコール濃度推定値、
ｃｏｎｓｔ１３     ：大きくする側への更新割合（正の無名数）、
ここで、（９９）式右辺第２項はアルコール濃度推定値の一回当たりの更新量を定めている。一回当たりの更新量に１から１／τの積算値ＳＵＭを差し引いた値を導入しているのは、アルコール濃度推定値ＡＬＣＥＳＴの収束を早めるためである。すなわち、アルコール濃度推定値ＡＬＣＥＳＴが実際のアルコール濃度より低くかつ実際のアルコール濃度に近いときには１から１／τの積算値ＳＵＭを差し引いた値は相対的に小さなものであるが、アルコール濃度推定値ＡＬＣＥＳＴが実際のアルコール濃度より低くかつ実際のアルコール濃度より大きくズレているときには１から１／τの積算値ＳＵＭを差し引いた値が相対的に大きなものとなる。そこで、１から１／τの積算値ＳＵＭを差し引いた値が相対的に大きいときにはこれに合わせてアルコール濃度推定値の一回当たりの更新量を大きくしてアルコール濃度推定値ＡＬＣＥＳＴの収束を早めるようにしたものである。
【０４３３】
その後は図６９のステップ２０３に戻ってステップ２０３からの操作を繰り返し実行し、クランク角θが自着火時期検出値θｋｎｋｒｅａｌに達したときには図６９のステップ４３１よりステップ４３２へと進み１と１／τの積算値ＳＵＭの差の絶対値が所定値ε以上あればアルコール濃度推定値ＡＬＣＥＳＴがまだ小さ過ぎると判断しステップ４７１でアルコール濃度推定値ＡＬＣＥＳＴを再び大きくした後ステップ２０３に戻る。再び上記の操作を繰り返すと、やがて１と１／τの積算値ＳＵＭの差の絶対値が所定値ε未満となり、このときには「ＥＮＤ」へと進んで図６９の処理を終了する。この結果、１と１／τの積算値ＳＵＭの差の絶対値が所定値ε未満に収まったときのアルコール濃度推定値がアルコール濃度推定値の収束値となる。
【０４３４】
このようにして、ノックが発生していることが検出されたときには、そのノックが検出された燃焼サイクルにおいて燃焼開始時期（ＭＢＴＣＡＬ＋ＩＧＮＤＥＡＤ）より自着火時期検出値θｋｎｋｒｅａｌまでの１／τの積算値ＳＵＭと１との差の絶対値が許容範囲内に収まるまでアルコール濃度推定値ＡＬＣＥＳＴを繰り返し更新してアルコール濃度推定値ＡＬＣＥＳＴを収束させる。
【０４３５】
上記のようにして第７、第８の実施形態に共通の図６４により算出した圧縮比推定値ＣＭＰＥＳＴ２は、第７、第８実施形態において、第３実施形態と同様に、図６６、図６７に示したように燃焼室５の吸気弁閉時期における容積ＶＩＶＣと、燃焼室５の燃焼開始時期（ＭＢＴＣＹＣＬ）における容積Ｖ０との算出に用いる（図６６のステップ４４１、３５２、図６７のステップ４５１、３６２参照）。
【０４３６】
なお、第７、第８の実施形態に共通の図６６、図６７において第３実施形態の図５３、図５４と同一部分には同一のステップ番号を付しその説明は省略する。
【０４３７】
第７、第８の実施形態（請求項３３に記載の発明）によれば、ノック検出結果に基づいて圧縮比以外のノック相関パラメータの推定値（第７実施形態についてオクタン価推定値ＯＣＴＥＳＴ、第８実施形態についてアルコール濃度推定値ＡＬＣＥＳＴ）を算出し（ノック検出結果をノック相関パラメータにフィードバック）し（第７実施形態について図６３のステップ２６１、４０２、２７０、第８実施形態について図６８のステップ２６１、４６１、３０４参照）、そのノック相関パラメータ推定値に基づいて燃焼室５内での自着火時期予測値θｋｎｋｅｓｔ（ノック発生時期予測値）を算出し（第７実施形態について図３２のステップ２０６〜２１０、図３３のステップ２１８、第８実施形態について図４３のステップ２９１〜２９３、２０９、２１０、図３３のステップ２１８参照）、この自着火時期予測値θｋｎｋｅｓｔに基づいてノック限界点火時期ＫＮＯＣＫｃａｌを算出する（第７、第８実施形態について図３３のステップ２１９〜２３１参照）ようにしたので、燃料のオクタン価や混合燃料中のアルコール濃度を予め知り得ていない市場で販売される燃料を使用する場合においても、運転状態によらず、ノック検出結果を点火時期にフィードバックする従来装置のようにノック回避のための点火時期の遅角とそれに続く進角の操作とが繰り返されることがない。このため、加速時や減速時などの過渡でもノック限界点火時期を追従できるので、燃費悪化、出力低下を防ぐことができる。
【０４３８】
また、ノックが生じたことが検出されたときの、圧縮比以外のノック相関パラメータｍの推定値（第７実施形態についてオクタン価推定値ＯＣＴＥＳＴ、第８実施形態についてアルコール濃度推定値ＡＬＣＥＳＴ）の更新（算出）に際しては上記（９８）式、（９９）式に示したように１から１／τの積算値ＳＵＭを差し引いた値をも考慮している。すなわち、第７実施形態についてオクタン価推定値ＯＣＴＥＳＴが実際のオクタン価より大きくかつ実際のオクタン価より大きくズレている（つまり１から１／τの積算値ＳＵＭを差し引いた値が相対的に大きい）ときには、オクタン価推定値ＯＣＴＥＳＴが実際のオクタン価より大きくかつ実際のオクタン価に近い（つまり１から１／τの積算値ＳＵＭを差し引いた値が相対的に小さい）ときよりオクタン価推定値の一回当たりの更新量が大きくなり、オクタン価推定値ＯＣＴＥＳＴが実際のオクタン価より大きくかつ実際のオクタン価より大きくズレているときのほうがオクタン価推定値ＯＣＴＥＳＴが実際のオクタン価より大きくかつ実際のオクタン価に近いときよりオクタン価推定値ＯＣＴＥＳＴが早く収束する。第８実施形態についてアルコール濃度推定値ＡＬＣＴＥＳＴが実際のアルコール濃度より低くかつ実際のアルコール濃度より大きくズレている（つまり１から１／τの積算値ＳＵＭを差し引いた値が相対的に大きい）ときには、アルコール濃度推定値ＡＬＣＥＳＴが実際のアルコール濃度より低くかつ実際のアルコール濃度に近い（つまり１から１／τの積算値ＳＵＭを差し引いた値が相対的に小さい）ときよりアルコール濃度推定値の一回当たりの更新量が大きくなり、アルコール濃度推定値ＡＬＣＥＳＴが実際のアルコール濃度より低くかつ実際のアルコール濃度より大きくズレているときのほうがアルコール濃度推定値ＡＬＣＥＳＴが実際のアルコール濃度より低くかつ実際のアルコール濃度に近いときよりアルコール濃度推定値ＡＬＣＥＳＴが早く収束する。
【０４３９】
このように第７、第８の実施形態（請求項３３に記載の発明）によれば、自着火時期検出値θｋｎｋｒｅａｌ（ノック発生時期検出値）に基づいても圧縮比以外のノック相関パラメータ推定値（第７実施形態についてオクタン価推定値ＯＣＴＥＳＴ、第８実施形態についてアルコール濃度推定値ＡＬＣＥＳＴ）を算出するので（第７実施形態について図６５のステップ４３３、第７実施形態について図６９のステップ４７１参照）、圧縮比以外のノック相関パラメータの推定値の収束を早めることができ、そのぶん運転性が向上する。
【０４４０】
第７、第８の実施形態では、図６６、図６７、図１２、図１３に示したように、層流燃焼速度ＳＬ１、ＳＬ２、燃焼ガス体積相当容積（Ｖ０、ＶＴＤＣ）、燃焼質量割合（ＢＲ１、ＢＲ２）及び反応確率ＲＰＲＯＢＡに基づいて燃焼開始から所定クランク角までの燃焼期間（ＢＵＲＮ１、ＢＵＲＮ２）を算出し、この燃焼期間（ＢＵＲＮ１、ＢＵＲＮ２）に基づいて基本点火時期ＭＢＴＣＡＬを算出する場合で説明したが、基本点火時期ＭＢＴＣＡＬの算出に代えて、ベース点火時期のマップを備えさせるものでもかまわない。この場合に、ノック限界点火時期算出手段を、自着火時期予測値θｋｎｋｅｓｔ（ノック発生時期予測値）と運転条件とに基づいて燃焼室５のノックによる圧力上昇量ＤＰ１を推定する圧力上昇量推定手段（図３３のステップ２１９〜２２６参照）と、この圧力上昇量ＤＰ１に基づいてノック強度推定値ＫＩＣを算出するノック強度推定値算出手段（図３３のステップ２２７〜２２９参照）と、このノック強度推定値ＫＩＣに基づいてノックリタード量ＫＮＲＴを算出するノックリタード量算出手段（図３３のステップ２３０参照）と、このノックリタード量ＫＮＲＴだけ基本点火時期ＭＢＴＣＡＬを遅角側に補正した値をノック限界点火時期ＫＮＯＣＫｃａｌとして設定するノック限界点火時期設定手段（図３３のステップ２３１参照）とを含んで構成することで（請求項３４に記載の発明）、基本点火時期としてのベース点火時期をマップで与えるにしても、最大オクタン価から最小オクタン価までの複数の異なるオクタン価毎にベース点火時期のマップを与える必要がなく、これによりＲＯＭ容量が大きくなることがない。
【０４４１】
第７実施形態（請求項３５に記載の発明）によれば、ガソリンを燃料とする場合にオクタン価がノックに及ぼす影響が一番大きいことに対応して、このオクタン価推定値ＯＣＴＥＳＴをノック検出結果及び自着火時期検出値θｋｎｋｒｅａｌ（ノック発生時期検出値）に基づいて算出するので（図６３のステップ２６１、２６２、４０２、図６５参照）、オクタン価が予め分かっていないガソリンを使用燃料とする場合であっても自着火時期予測値θｋｎｋｅｓｔ（ノック発生時期予測値）を精度よく算出できる。
【０４４２】
第７実施形態（請求項３６に記載の発明）によれば、オクタン価推定値算出手段が、ノックが生じたことを検出したときそのノックの検出された燃焼サイクルにおいて燃焼室５内の燃料が自着火に至るまでの時間であって燃焼室５内の圧力と温度によって相違する時間の逆数（１／τ）を所定のクランク角ｃｏｎｓｔ０２毎に燃焼開始時期（ＭＢＴＣＡＬ＋ＩＧＮＤＥＡＤ）よりノック発生時期検出値θｋｎｋｒｅａｌまでにわたって積算し、その積算値ＳＵＭと１との差の絶対値が許容範囲内に収まるまでオクタン価推定値ＯＣＴＥＳＴを小さくなる側に更新し（特に図６５のステップ２０３〜２０９、４３１〜４３３のループ操作参照）、その後はオクタン価推定値を第２の所定値ｃｏｎｓｔ０５ずつ大きくなる側に一定の周期で更新する（図６３のステップ２６１、２６７〜２７１参照）手段であるので、ノックが検出された燃焼サイクルでオクタン価推定値ＯＣＴＥＳＴを収束させることができる。
【０４４３】
第７実施形態（請求項３７に記載の発明）によれば  オクタン価推定値ＯＣＴＥＳＴを第２の所定値ｃｏｎｓｔ０５ずつ大きくなる側（ノックが発生する側）にする更新（図６３のステップ２７０参照）を、基本点火時期ＭＢＴＣＡＬではノックが発生する条件でつまり点火時期最小値ＰＡＤＶが基本点火時期ＭＢＴＣＡＬより遅角されている場合にだけ実行する（図６３のステップ２６７）ので、オクタン価推定値ＯＣＴＥＳＴを誤って更新することがない。
【０４４４】
第８実施形態（請求項３８に記載の発明）によれば、ガソリンとアルコールの混合燃料では混合燃料中のアルコール濃度がノックに影響を及ぼすことに対応して、このアルコール濃度推定値ＡＬＣＥＳＴをノック検出結果及び自着火時期検出値θｋｎｋｒｅａｌ（ノック発生時期検出値）に基づいて算出するので（図６８のステップ２６１、２６２、４６１参照）、アルコール濃度を予め知り得ないアルコール含有燃料を使用燃料とする場合であっても自着火時期予測値θｋｎｋｅｓｔ（ノック発生時期予測値）を精度よく算出できる。
【０４４５】
第８実施形態（請求項３９に記載の発明）によれば、アルコール濃度推定値算出手段が、ノックが生じたことを検出したときそのノックの検出された燃焼サイクルにおいて
燃焼室５内の燃料が自着火に至るまでの時間であって燃焼室５内の圧力と温度によって相違する時間の逆数（１／τ）を所定のクランク角ｃｏｎｓｔ１２毎に燃焼開始時期（ＭＢＴＣＡＬ＋ＩＧＮＤＥＡＤ）よりノック発生時期検出値θｋｎｋｒｅａｌまでにわたって積算し、その積算値ＳＵＭと１との差の絶対値が許容範囲内に収まるまでアルコール濃度推定値ＡＬＣＥＳＴを高くなる側に更新し（特に図６９のステップ２０３〜２０５、２９１〜２９３、２０９、４３１、４３２、４７１のループ操作参照）、その後はアルコール濃度推定値を第２の所定値ｃｏｎｓｔ１５ずつ低くなる側に一定の周期で更新する（図６８のステップ２６１、２６７、３０３、２６９、３０４、２７１参照）手段であるので、ノックが検出された燃焼サイクルでアルコール濃度推定値ＡＬＣＥＳＴを収束させることができる。
【０４４６】
第８実施形態（請求項４０に記載の発明）によれば、アルコール濃度推定値ＡＬＣＥＳＴを第２の所定値ｃｏｎｓｔ１５ずつ低くなる側（ノックが発生する側）にする更新（図６８のステップ３０４参照）を、基本点火時期ＭＢＴＣＡＬではノックが発生する条件で実行する（図６８のステップ２６７）ので、アルコール濃度推定値ＡＬＣＥＳＴを誤って更新することがない。
【０４４７】
第７、第８の実施形態（請求項４１に記載の発明）によれば、基本点火時期算出手段が、燃焼ガスの層流状態での燃焼速度である層流燃焼速度（ＳＬ１、ＳＬ２）を算出する層流燃焼速度算出手段（図６７のステップ１６８、図１２のステップ１８８参照）と、燃焼室５内の燃焼ガス体積に相当する容積（Ｖ０、ＶＴＤＣ）を算出する燃焼ガス体積相当容積算出手段（図６７のステップ１６２、図１２の１８２参照）と、所定のクランク角までに燃焼室５内で燃焼するガスの燃焼質量割合（ＢＲ１、ＢＲ２）を算出する燃焼質量割合算出手段（図６７のステップ１７１、図１２のステップ１９１参照）と、所定運転条件での燃焼ガスの燃焼のしやすさを示す反応確率ＲＰＲＯＢＡを算出する反応確率算出手段（図６６のステップ１５参照）と、これら層流燃焼速度（ＳＬ１、ＳＬ２）、燃焼ガス体積相当容積（Ｖ０、ＶＴＤＣ）、燃焼質量割合（ＢＲ１、ＢＲ２）及び反応確率ＲＰＲＯＢＡに基づいて燃焼開始から所定クランク角までの燃焼期間（ＢＵＲＮ１、ＢＵＲＮ２）を算出する燃焼期間算出手段（図６７のステップ１７１、図１２のステップ１９１参照）と、この燃焼期間（ＢＵＲＮ１、ＢＵＲＮ２）に基づいてＭＢＴの得られる基本点火時期ＭＢＴＣＡＬを算出する基本点火時期算出手段（図１３のステップ４１〜４３参照）とを含むので、この基本点火時期ＭＢＴＣＡＬを遅角側に補正した値であるノック限界点火時期ＫＮＯＣＫｃａｌが燃焼解析に基づいて算出されることになり、これにより運転条件によらず最適なノック限界点火時期ＫＮＯＣＫｃａｌを算出できる。
【０４４８】
第７、第８の実施形態（請求項４２に記載の発明）によれば、ノックセンサ４７によるノック検出結果に基づいて圧縮比推定値ＣＭＰＥＳＴ２を算出し（第７実施形態について図６３のステップ２６１、４０１、図６４、第８実施形態について図６８のステップ２６１、４０１、図６４参照）、その圧縮比推定値ＣＭＰＥＳＴ２に基づいて初期燃焼期間ＢＵＲＮ１の算出に用いられる、燃焼室５の圧縮開始時期における容積Ｖ０を算出する（第７、第８の実施形態に共通する図６７のステップ４５１、３６２参照）ので、オクタン価８０の燃料（予めオクタン価の定まっている燃料）を使用する場合において何らかの原因で実際の圧縮比がエンジン仕様の圧縮比より高くなったときにおいても、運転状態によらず、ノック検出結果を点火時期にフィードバックする従来装置のようにノック回避のための点火時期の遅角とそれに続く進角の操作とが繰り返されることがない。このため、第１、第２の各実施形態と同様に過渡でもノック限界点火時期を追従できるので、燃費悪化、出力低下を防ぐことができる。
【０４４９】
第７、第８の実施形態（請求項４３に記載の発明）によれば、図６７に示したように燃焼室５の吸気弁閉時期における容積ＶＩＶＣと燃焼開始時期における容積Ｖ０とに基づいて吸気弁閉時期ＩＶＣから燃焼開始時期までの有効圧縮比Ｅｃを算出し（図６７のステップ１６３参照）、燃焼室５の吸気弁閉時期の温度ＴＩＮＩとこの有効圧縮比Ｅｃとから燃焼室５の燃焼開始時期における温度Ｔ０を、燃焼室５の吸気弁閉時期の圧力ＰＩＮＩとこの有効圧縮比Ｅｃとから燃焼室５の燃焼開始時期における圧力Ｐ０をそれぞれ算出し（図６７のステップ１６４〜１６７参照）、これら燃焼室５の燃焼開始時期における温度Ｔ０と圧力Ｐ０とに基づいて初期燃焼期間ＢＵＲＮ１の算出に用いる層流燃焼速度ＳＬ１を算出する（図６７のステップ１６８参照）場合に、圧縮比推定値ＣＭＰＥＳＴ２に基づいて燃焼室５の吸気弁閉時期における容積ＶＩＶＣを算出する（図６６のステップ４４１、３５２）ので、予めオクタン価の定まっている燃料を使用する場合において何らかの原因で実際の圧縮比が予定している圧縮比より高くなったときにおいても、燃焼室５の吸気弁閉時期における容積ＶＩＶＣを精度よく算出できる。
【０４５０】
請求項１に記載の発明において、比較手段の機能は図３８のステップ２６３により、ノック相関パラメータ推定値算出手段の機能は図３８のステップ２６１、２６５、２７０により、ノック発生時期予測値算出手段の機能は図３２のステップ２０６、２０７、２０８、２０９、２１０、図３３の２１８により、ノック限界点火時期算出手段の機能は図３３のステップ２１９〜２３１によりそれぞれ果たされている。
【０４５１】
請求項１０に記載の発明において、層流燃焼速度算出手段の機能は図５４のステップ１６８、図１２のステップ１８８により、燃焼ガス体積相当容積算出手段の機能は図５４のステップ３６２、図１２のステップ１８２により、燃焼質量割合算出手段の機能は図５４のステップ１７１、図１２のステップ１９１により、反応確率算出手段の機能は図５３のステップ１５により、基本点火時期算出手段の機能は図１３のステップ４１、４２、４３により、比較手段の機能は図５０のステップ２６３により、圧縮比推定値算出手段の機能は図５０のステップ２６１、３３１、３３４により、燃焼開始時容積算出手段の機能は図５４のステップ３６１、３６２によりそれぞれ果たされている。
【０４５２】
請求項１７に記載の発明において、比較手段の機能は図５５のステップ３７２により、ノック相関パラメータ推定値算出手段の機能は図５５のステップ２６１、３７４、２７０により、ノック発生時期予測値算出手段の機能は図３２のステップ２０６、２０７、２０８、２０９、２１０、図３３の２１８により、ノック限界点火時期算出手段の機能は図３３のステップ２１９〜２３１によりそれぞれ果たされている。
【０４５３】
請求項２６に記載の発明において、層流燃焼速度算出手段の機能は図５４のステップ１６８、図１２のステップ１８８により、燃焼ガス体積相当容積算出手段の機能は図５４のステップ３６２、図１２のステップ１８２により、燃焼質量割合算出手段の機能は図５４のステップ１７１、図１２のステップ１９１により、反応確率算出手段の機能は図５３のステップ１５により、基本点火時期算出手段の機能は図１３のステップ４１、４２、４３により、比較手段の機能は図６１のステップ３７２により、圧縮比推定値算出手段の機能は図６１のステップ２６１、３９１、３３４により、燃焼開始時容積算出手段の機能は図５４のステップ３６１、３６２によりそれぞれ果たされている。
【０４５４】
請求項３３に記載の発明において、圧縮比推定値算出手段の機能は図６３、図６８のステップ２６１、２６２、３７１、４０１により、ノック相関パラメータ推定値算出手段の機能は図６３のステップ２６１、２６２、４０２または図６８のステップ２６１。２６２、４６１により、ノック発生時期予測値算出手段の機能は図３２のステップ２０６、２０７、２０８、２０９、２１０、図３３の２１８または図４３のステップ２９１〜２９３、２０９、２１０、図３３の２１８により、ノック限界点火時期算出手段の機能は図３３のステップ２１９〜２３１によりそれぞれ果たされている。
【０４５５】
請求項４５に記載の発明において、ノック発生時期検出手段の機能は図５０のステップ２６２により、比較手段の機能は図５０のステップ２６３により、圧縮比推定値算出手段の機能は図５０のステップ２６１、３３１、２２４により、燃焼開始時期容積算出手段の機能は図５４のステップ３６１、３６２により、燃焼期間算出手段の機能は図５４のステップ１７１、図１２のステップ１９１により、基本点火時期算出手段の機能は図１３のステップ４２、４３によりそれぞれ果たされている。
【０４５６】
請求項５２に記載の発明において、比較手段の機能は図５５のステップ３７２により、圧縮比推定値算出手段の機能は図５５のステップ２６１、３７４、２７０により、燃焼開始時期容積算出手段の機能は図５４のステップ３６１、３６２により、燃焼期間算出手段の機能は図５４のステップ１７１、図１２のステップ１９１により、基本点火時期算出手段の機能は図１３のステップ４２、４３によりそれぞれ果たされている。
【図面の簡単な説明】
【０４５７】
【図１】一実施形態のエンジンの制御システム図。
【図２】点火時期制御を説明するためのフローチャート。
【図３】燃焼室の圧力変化図。
【図４】燃焼質量割合の変化を説明する特性図。
【図５】第１、第２、第４、第５の実施形態の物理量の算出を説明するためのフローチャート。
【図６】エンジンのクランクシャフトとコネクティングロッドの位置関係を説明するダイアグラム。
【図７】水温補正係数の特性図。
【図８】当量比補正係数の特性図。
【図９】基準クランク角の特性図。
【図１０】第１、第２、第４、第５の実施形態の初期燃焼期間の算出を説明するためのフローチャート。
【図１１】温度上昇率の特性図。
【図１２】主燃焼期間の算出を説明するためのフローチャート。
【図１３】基本点火時期の算出を説明するためのフローチャート。
【図１４】内部不活性ガス率の算出を説明するためのフローチャート。
【図１５】内部不活性ガス量の算出を説明するためのフローチャート。
【図１６】ＥＶＣ時不活性ガス量の算出を説明するためのフローチャート。
【図１７】オーバーラップ中吹き返し不活性ガス量の算出を説明するためのフローチャート。
【図１８】過給判定フラグ、チョーク判定フラグの設定を説明するためのフローチャート。
【図１９】過給無しかつチョーク無し時のオーバーラップ中吹き返し不活性ガス流量の算出を説明するためのフローチャート。
【図２０】過給無しかつチョーク有り時のオーバーラップ中吹き返し不活性ガス流量の算出を説明するためのフローチャート。
【図２１】過給有りかつチョーク無し時のオーバーラップ中吹き返し不活性ガス流量の算出を説明するためのフローチャート。
【図２２】過給有りかつチョーク有り時のオーバーラップ中吹き返し不活性ガス流量の算出を説明するためのフローチャート。
【図２３】排気弁閉時期における燃焼室容積の特性図。
【図２４】不活性ガスのガス定数の特性図。
【図２５】オーバーラップ中の積算有効面積の特性図。
【図２６】オーバーラップ中の積算有効面積の説明図。
【図２７】不活性ガスの比熱比の特性図。
【図２８】混合気の比熱比の特性図。
【図２９】ノック発生時の燃焼室内の圧力履歴を示す特性図。
【図３０Ａ】第１、第４、第７の実施形態のオクタン価１００の燃料での１／τの特性図。
【図３０Ｂ】第１、第３、第４、第７の実施形態のオクタン価８０の燃料での１／τの特性図。
【図３１】直線で近似した場合の燃焼質量割合の変化を示す特性図。
【図３２】第１、第４、第７の実施形態のノック限界点火時期の算出を説明するためのフローチャート。
【図３３】第１、第２、第３、第４、第５、第６、第７、第８の実施形態のノック限界点火時期の算出を説明するためのフローチャート。
【図３４】総ガスモル数の算出を説明するためのフローチャート。
【図３５】ガスエンタルピの算出を説明するためのフローチャート。
【図３６】回転速度補正係数の特性図。
【図３７】トレースノック強度の特性図。
【図３８】第１実施形態のオクタン価推定値の算出を説明するためのフローチャート。
【図３９】第１、第２、第３、第７、第８の実施形態のノック分の周波数成分の特性図。
【図４０】第１実施形態の自着火時期予測値の算出を説明するためのフローチャート。
【図４１】第１実施形態の自着火時期予測値の算出を説明するためのフローチャート。
【図４２】第１実施形態のノック検出時のオクタン価推定値の動きを示す波形図。
【図４３】第２、第５、第８の実施形態のノック限界点火時期の算出を説明するためのフローチャート。
【図４４Ａ】第２、第５、第８の実施形態のアルコール濃度０％の混合燃料での１／τの特性図。
【図４４Ｂ】第２、第５、第８の実施形態のアルコール濃度８５％の混合燃料での１／τの特性図。
【図４５】第２、第５、第８の実施形態のアルコール濃度推定値の算出を説明するためのフローチャート。
【図４６】第２実施形態の自着火時期予測値の算出を説明するためのフローチャート。
【図４７】第２実施形態の自着火時期予測値の算出を説明するためのフローチャート。
【図４８】第２実施形態のノック検出時のアルコール濃度推定値の動きを示す波形図。
【図４９】第３、第６の実施形態のノック限界点火時期の算出を説明するためのフローチャート。
【図５０】第３実施形態の圧縮比推定値の算出を説明するためのフローチャート。
【図５１】第３実施形態の自着火時期予測値の算出を説明するためのフローチャート。
【図５２】第３実施形態の自着火時期予測値の算出を説明するためのフローチャート。
【図５３】第３、第６の実施形態の物理量の算出を説明するためのフローチャート。
【図５４】第３、第６の実施形態の初期燃焼期間の算出を説明するためのフローチャート。
【図５５】第４実施形態のオクタン価推定値の算出を説明するためのフローチャート。
【図５６】第４、第５、第６、第７、第８の実施形態のノック分の周波数成分の特性図。
【図５７】第４実施形態のノック強度推定値の算出を説明するためのフローチャート。
【図５８】第４、第５、第６の実施形態のノック強度推定値の算出を説明するためのフローチャート。
【図５９】第５実施形態のアルコール濃度推定値の算出を説明するためのフローチャート。
【図６０】第５実施形態のノック強度推定値の算出を説明するためのフローチャート。
【図６１】第６実施形態の圧縮比推定値の算出を説明するためのフローチャート。
【図６２】第６実施形態のノック強度推定値の算出を説明するためのフローチャート。
【図６３】第７実施形態の圧縮比推定値及びオクタン価推定値の算出を説明するためのフローチャート。
【図６４】第７、第８の実施形態の圧縮比推定値の算出を説明するためのフローチャート。
【図６５】第７実施形態のオクタン価推定値の算出を説明するためのフローチャート。
【図６６】第７、第８の実施形態の物理量の算出を説明するためのフローチャート。
【図６７】第７、第８の実施形態の初期燃焼期間の算出を説明するためのフローチャート。
【図６８】第８実施形態の圧縮比推定値及びアルコール濃度推定値の算出を説明するためのフローチャート。
【図６９】第８実施形態のアルコール濃度推定値の算出を説明するためのフローチャート。
【符号の説明】
【０４５８】
１  エンジン
５  燃焼室
１１  点火装置（火花点火手段）
２１  燃料インジェクタ
３１  エンジンコントローラ
４７  ノックセンサ（ノック検出手段、ノック強度検出手段、ノック発生時期検出手段        ）
【図１】
2008196506.tif 000003
【図２】
2008196506.tif 000004
【図３】
2008196506.tif 000005
【図４】
2008196506.tif 000006
【図５】
2008196506.tif 000007
【図６】
2008196506.tif 000008
【図７】
2008196506.tif 000009
【図８】
2008196506.tif 000010
【図９】
2008196506.tif 000011
【図１０】
2008196506.tif 000012
【図１１】
2008196506.tif 000013
【図１２】
2008196506.tif 000014
【図１３】
2008196506.tif 000015
【図１４】
2008196506.tif 000016
【図１５】
2008196506.tif 000017
【図１６】
2008196506.tif 000018
【図１７】
2008196506.tif 000019
【図１８】
2008196506.tif 000020
【図１９】
2008196506.tif 000021
【図２０】
2008196506.tif 000022
【図２１】
2008196506.tif 000023
【図２２】
2008196506.tif 000024
【図２３】
2008196506.tif 000025
【図２４】
2008196506.tif 000026
【図２５】
2008196506.tif 000027
【図２６】
2008196506.tif 000028
【図２７】
2008196506.tif 000029
【図２８】
2008196506.tif 000030
【図２９】
2008196506.tif 000031
【図３０Ａ】
2008196506.tif 000032
【図３０Ｂ】
2008196506.tif 000033
【図３１】
2008196506.tif 000034
【図３２】
2008196506.tif 000035
【図３３】
2008196506.tif 000036
【図３４】
2008196506.tif 000037
【図３５】
2008196506.tif 000038
【図３６】
2008196506.tif 000039
【図３７】
2008196506.tif 000040
【図３８】
2008196506.tif 000041
【図３９】
2008196506.tif 000042
【図４０】
2008196506.tif 000043
【図４１】
2008196506.tif 000044
【図４２】
2008196506.tif 000045
【図４３】
2008196506.tif 000046
【図４４Ａ】
2008196506.tif 000047
【図４４Ｂ】
2008196506.tif 000048
【図４５】
2008196506.tif 000049
【図４６】
2008196506.tif 000050
【図４７】
2008196506.tif 000051
【図４８】
2008196506.tif 000052
【図４９】
2008196506.tif 000053
【図５０】
2008196506.tif 000054
【図５１】
2008196506.tif 000055
【図５２】
2008196506.tif 000056
【図５３】
2008196506.tif 000057
【図５４】
2008196506.tif 000058
【図５５】
2008196506.tif 000059
【図５６】
2008196506.tif 000060
【図５７】
2008196506.tif 000061
【図５８】
2008196506.tif 000062
【図５９】
2008196506.tif 000063
【図６０】
2008196506.tif 000064
【図６１】
2008196506.tif 000065
【図６２】
2008196506.tif 000066
【図６３】
2008196506.tif 000067
【図６４】
2008196506.tif 000068
【図６５】
2008196506.tif 000069
【図６６】
2008196506.tif 000070
【図６７】
2008196506.tif 000071
【図６８】
2008196506.tif 000072
【図６９】
2008196506.tif 000073
【手続補正書】
【提出日】平成20年6月20日(2008.6.20)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
燃焼室内で実際にノックが生じているか否かを検出するノック検出手段と、
燃焼室内でのノック発生時期を検出するノック発生時期検出手段と、
燃焼室内でのノック強度を検出するノック強度検出手段と、
前記ノック検出結果、ノック発生時期検出値及びノック強度検出値に基づいて圧縮比推定値を算出する圧縮比推定値算出手段と、
前記ノック検出結果及びノック発生時期検出値に基づいて前記圧縮比以外のノック相関パラメータの推定値を算出するノック相関パラメータ推定値算出手段と、
このノック相関パラメータに基づいて燃焼室内でのノック発生時期予測値を算出するノック発生時期予測値算出手段と、
このノック発生時期予測値に基づいてノック限界点火時期を算出するノック限界点火時期算出手段と、
このノック限界点火時期で火花点火を行う点火実行手段と
を備えることを特徴とするエンジンのノック制御装置。
【請求項２】
前記ノック限界点火時期算出手段は、前記ノック発生時期予測値と運転条件とに基づいて燃焼室のノックによる圧力上昇量を推定する圧力上昇量推定手段と、運転条件に応じた基本点火時期を算出する基本点火時期算出手段と、前記燃料室内の圧力上昇量に基づいてこの基本点火時期を遅角側に補正した値をノック限界点火時期として設定するノック限界点火時期設定手段とを含むことを特徴とする請求項１に記載のエンジンのノック制御装置。
【請求項３】
ガソリンを燃料とする場合に前記ノック相関パラメータ推定値算出手段は前記ノック検出結果及びノック発生時期検出値に基づきオクタン価推定値を算出するオクタン価推定値算出手段であることを特徴とする請求項２に記載のエンジンのノック制御装置。
【請求項４】
前記オクタン価推定値算出手段は、ノックが生じたことを検出したときそのノックの検出された燃焼サイクルにおいて燃焼室内の燃料が自着火に至るまでの時間であって燃焼室内の圧力と温度によって相違する時間の逆数を所定のクランク角毎に燃焼開始時期より前記ノック発生時期検出値までにわたって積算し、その積算値と１との差の絶対値が許容範囲内に収まるまでオクタン価推定値を小さくなる側に更新し、その後はオクタン価推定値を第２の所定値ずつ大きくなる側に一定の周期で更新する手段であることを特徴とする請求項３に記載のエンジンのノック制御装置。
【請求項５】
前記オクタン価推定値を第２の所定値ずつ大きくなる側にする更新を、前記ノック限界点火時期が前記基本点火時期より遅角側にある場合に実行することを特徴とする請求項４に記載のエンジンのノック制御装置。
【請求項６】
ガソリンとアルコールの混合燃料である場合に、前記ノック相関パラメータ推定値算出手段は前記ノック検出結果及びノック発生時期検出値に基づき混合燃料中のアルコール濃度推定値を算出するアルコール濃度推定値算出手段であることを特徴とする請求項２に記載のエンジンのノック制御装置。
【請求項７】
前記アルコール濃度推定値算出手段は、ノックが生じたことを検出したときそのノックの検出された燃焼サイクルにおいて燃焼室内の燃料が自着火に至るまでの時間であって燃焼室内の圧力と温度によって相違する時間の逆数を所定のクランク角毎に燃焼開始時期より前記ノック発生時期検出値までにわたって積算し、その積算値と１との差の絶対値が許容範囲内に収まるまでアルコール濃度推定値を高くなる側に更新し、その後はアルコール濃度推定値を第２の所定値ずつ低くなる側に一定の周期で更新する手段であることを特徴とする請求項６に記載のエンジンのノック制御装置。
【請求項８】
前記アルコール濃度推定値を第２の所定値ずつ低くなる側にする更新を、前記ノック限界点火時期が前記基本点火時期より遅角側にある場合に実行することを特徴とする請求項７に記載のエンジンのノック制御装置。
【請求項９】
前記基本点火時期算出手段は、燃焼ガスの層流状態での燃焼速度である層流燃焼速度を算出する層流燃焼速度算出手段と、燃焼室内の燃焼ガス体積に相当する容積を算出する燃焼ガス体積相当容積算出手段と、所定のクランク角までに前記燃焼室内で燃焼するガスの燃焼質量割合を算出する燃焼質量割合算出手段と、所定運転条件での燃焼ガスの燃焼のしやすさを示す反応確率を算出する反応確率算出手段と、これら層流燃焼速度、燃焼ガス体積相当容積、燃焼質量割合及び反応確率に基づいて燃焼開始から所定クランク角までの燃焼期間を算出する燃焼期間算出手段と、この燃焼期間に基づいてＭＢＴの得られる基本点火時期を算出する基本点火時期算出手段とを含むことを特徴とする請求項２に記載のエンジンのノック制御装置。
【請求項１０】
前記燃焼期間を初期燃焼期間と主燃焼期間とに分割し、
このうち初期燃焼期間を、燃焼室の圧縮開始時期の容積を前記燃焼室内の燃焼ガス体積に相当する容積として用いて算出する初期燃焼期間算出手段と、
前記圧縮比推定値に基づいてこの燃焼室の圧縮開始時期における容積を算出する圧縮開始時容積算出手段と
を備えることを特徴とする請求項９に記載のエンジンのノック制御装置。
【請求項１１】
燃焼室の吸気弁閉時期における容積と燃焼開始時期における容積とに基づいて吸気弁閉時期から燃焼開始時期までの有効圧縮比を算出し、
燃焼室の吸気弁閉時期の温度とこの有効圧縮比とから燃焼室の燃焼開始時期における温度を、燃焼室の吸気弁閉時期の圧力とこの有効圧縮比とから燃焼室の燃焼開始時期における圧力をそれぞれ算出し、
これら燃焼室の燃焼開始時期における温度と圧力とに基づいて前記初期燃焼期間の算出に用いる層流燃焼速度を算出する場合に、
前記圧縮比推定値に基づいて前記燃焼室の吸気弁閉時期における容積を算出することを特徴とする請求項１０に記載のエンジンのノック制御装置。
【請求項１２】
前記圧縮比推定値算出手段は、前記ノック発生時期検出値における燃焼質量割合を算出する手段と、前記ノック発生時期検出値における未燃燃料量を算出する手段と、前記ノック強度検出値に基づいてノックによる圧力上昇量を算出する手段と、これらノック発生時期検出値における燃焼質量割合、ノック発生時期検出値における未燃燃料量及びノックによる圧力上昇量に基づいて前記ノック発生時期検出値における容積を算出する手段と、このノック発生時期検出値における容積に基づいて隙間容積を算出する手段と、この隙間容積に基づいて圧縮比推定値を算出する手段とを含むことを特徴とする請求項１に記載のエンジンのノック制御装置。
【請求項１３】
前記ノック発生時期予測値の燃焼質量割合を算出する算出手段と、
前記ノック発生時期予測値における容積を算出する燃焼室容積算出手段と、
燃料量と前記ノック発生時期予測値の燃焼質量割合とに基づいて燃焼室内の未燃燃料量を算出する算出手段と、
燃焼室内の全てのガスのモル数を算出する総ガスモル数算出手段と、
既燃ガスの比熱を算出する比熱算出手段と、
燃焼室内の全てのガスの質量を算出する全ガス質量算出手段と
を備え、
前記圧力上昇量推定手段は、これら５つの値のうち燃焼室内の未燃燃料量と燃焼室内の全てのガスのモル数とを乗算した値を、ノック発生時期予測値における容積と既燃ガスの比熱と燃焼室内の全てのガスの質量とを乗算した値で除算する計算式により燃焼室のノックによる圧力上昇量を推定することを特徴とする請求項２に記載のエンジンのノック制御装置。
【請求項１４】
前記ノック発生時期予測値からノック発生時期予測値における平均温度を算出する平均温度算出手段と、
自着火する燃料ガスのエンタルピを算出する手段と
を備え、
前記比熱算出手段は、このガスエンタルピとノック発生時期予測値における平均温度とに基づいて既燃ガスの比熱を算出することを特徴とする請求項１３に記載のエンジンのノック制御装置。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０００９
【補正方法】削除
【補正の内容】
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００１０
【補正方法】削除
【補正の内容】
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００１１
【補正方法】変更
【補正の内容】
【００１１】
本発明は、燃焼室内で実際にノックが生じているか否かを検出し、燃焼室内でのノック発生時期を検出し、燃焼室内でのノック強度を検出し、前記ノック検出結果、ノック発生時期検出値（θｋｎｋｒｅａｌ）及びノック強度検出値（ＫＩＣＲＥＡＬ）に基づいて圧縮比推定値（ＣＭＰＥＳＴ２）を算出し、前記ノック検出結果及びノック発生時期検出値（θｋｎｋｒｅａｌ）に基づいて前記圧縮比以外のノック相関パラメータの推定値を算出し、このノック相関パラメータに基づいて燃焼室内でのノック発生時期予測値（θｋｎｋｅｓｔ）を算出し、このノック発生時期予測値（θｋｎｋｅｓｔ）に基づいてノック限界点火時期（ＫＮＯＣＫｃａｌ）を算出し、このノック限界点火時期で火花点火を行うように構成する。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】００１２
【補正方法】削除
【補正の内容】
【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】００１３
【補正方法】削除
【補正の内容】
【手続補正７】
【補正対象書類名】明細書
【補正対象項目名】００１４
【補正方法】削除
【補正の内容】
【手続補正８】
【補正対象書類名】明細書
【補正対象項目名】００１５
【補正方法】削除
【補正の内容】
【手続補正９】
【補正対象書類名】明細書
【補正対象項目名】００１６
【補正方法】変更
【補正の内容】
【００１６】
本発明によれば、燃焼室内で実際にノックが生じているか否かを検出し、燃焼室内でのノック発生時期を検出し、燃焼室内でのノック強度を検出し、前記ノック検出結果、ノック発生時期検出値（θｋｎｋｒｅａｌ）及びノック強度検出値（ＫＩＣＲＥＡＬ）に基づいて圧縮比推定値（ＣＭＰＥＳＴ２）を算出し、前記ノック検出結果及びノック発生時期検出値（θｋｎｋｒｅａｌ）に基づいて前記圧縮比以外のノック相関パラメータの推定値を算出し、このノック相関パラメータに基づいて燃焼室内でのノック発生時期予測値を算出し、このノック発生時期予測値に基づいてノック限界点火時期を算出するようにしたので、燃料のオクタン価や混合燃料中のアルコール濃度を予め知り得ていない市場で販売される燃料を使用する場合においても、運転状態によらず、ノック検出結果を点火時期にフィードバックする従来装置のようにノック回避のための点火時期の遅角とそれに続く進角の操作とが繰り返されることがない。このため、加速時や減速時などの過渡でもノック限界点火時期を追従できるので、燃費悪化、出力低下を防ぐことができる。
【手続補正１０】
【補正対象書類名】明細書
【補正対象項目名】００１７
【補正方法】削除
【補正の内容】
【手続補正１１】
【補正対象書類名】明細書
【補正対象項目名】００１８
【補正方法】削除
【補正の内容】
【手続補正１２】
【補正対象書類名】明細書
【補正対象項目名】０２１０
【補正方法】変更
【補正の内容】
【０２１０】
次に、ノック限界点火時期ＫＮＯＣＫｃａｌの算出を以下のフローチャートを参照しながら詳述する。
以下には第１から第８までの合計８つの実施形態を説明するが、本発明に係る実施形態は第７、第８の実施形態のみである。
【手続補正１３】
【補正対象書類名】明細書
【補正対象項目名】０２９３
【補正方法】変更
【補正の内容】
【０２９３】
第１実施形態によれば、ガソリンを燃料としている場合に、ノックセンサ４７によるノック検出結果を点火時期ではなく燃料のオクタン価にフィードバックしている（図３８参照）。すなわち、図４２最下段に一点鎖線で示したように、オクタン価推定値ＯＣＴＥＳＴは、ノックが生じたことを検出したときにステップ的に小さくなり、その後は第２の所定値ｃｏｎｓｔ０５ずつ所定の周期で徐々に大きくなっている。
【手続補正１４】
【補正対象書類名】明細書
【補正対象項目名】０２９４
【補正方法】変更
【補正の内容】
【０２９４】
このように、第１実施形態によれば、ノックセンサ４７によるノック検出結果に基づいてオクタン価推定値ＯＣＴＥＳＴを算出し（図３８のステップ２６１、２６５、２７０参照）、そのオクタン価推定値ＯＣＴＥＳＴに基づいて燃焼室５内での自着火時期予測値θｋｎｋｅｓｔ（ノック発生時期予測値）を算出し（図３２のステップ２０６〜２１０、図３３のステップ２１８参照）、この自着火時期予測値θｋｎｋｅｓｔに基づいてノック限界点火時期ＫＮＯＣＫｃａｌを算出する（図３３のステップ２１９〜２３１参照）ので、燃料のオクタン価を予め知り得ていない市場で販売される燃料を使用する場合においても、運転状態によらず、ノックセンサ４７によるノック検出結果を点火時期にフィードバックする従来装置のようにノック回避のための点火時期の遅角とそれに続く進角の操作とが繰り返されることがない。このため、加速時や減速時といった過渡でもノック限界点火時期を追従できるので、燃費悪化、出力低下を防ぐことができる。
【手続補正１５】
【補正対象書類名】明細書
【補正対象項目名】０２９６
【補正方法】変更
【補正の内容】
【０２９６】
このように、第１実施形態によれば、着火時期差Δθ（自着火時期検出値θｋｎｋｒｅａｌと自着火時期予測値θｋｎｋｅｓｔとの比較結果）に基づいてもオクタン価推定値ＯＣＴＥＳＴ（ノック相関パラメータ推定値）を算出するようにしたので（図３８のステップ２６５参照）、オクタン価推定値ＯＣＴＥＳＴの収束を早めることができ、そのぶん運転性が向上する。
【手続補正１６】
【補正対象書類名】明細書
【補正対象項目名】０２９７
【補正方法】変更
【補正の内容】
【０２９７】
第１実施形態では、図５、図１０、図１２、図１３に示したように、層流燃焼速度ＳＬ１、ＳＬ２、燃焼ガス体積相当容積（Ｖ０、ＶＴＤＣ）、燃焼質量割合（ＢＲ１、ＢＲ２）及び反応確率ＲＰＲＯＢＡに基づいて燃焼開始から所定クランク角までの燃焼期間（ＢＵＲＮ１、ＢＵＲＮ２）を算出し、この燃焼期間（ＢＵＲＮ１、ＢＵＲＮ２）に基づいて基本点火時期ＭＢＴＣＡＬを算出する場合で説明したが、基本点火時期ＭＢＴＣＡＬの算出に代えて、ベース点火時期のマップを備えさせるものでもかまわない。この場合に、ノック限界点火時期算出手段を、自着火時期予測値θｋｎｋｅｓｔ（ノック発生時期予測値）と運転条件とに基づいて燃焼室５のノックによる圧力上昇量ＤＰ１を推定する圧力上昇量推定手段（図３３のステップ２１９〜２２６参照）と、この圧力上昇量ＤＰ１に基づいてノック強度推定値ＫＩＣを算出するノック強度推定値算出手段（図３３のステップ２２７〜２２９参照）と、このノック強度推定値ＫＩＣに基づいてノックリタード量ＫＮＲＴを算出するノックリタード量算出手段（図３３のステップ２３０参照）と、このノックリタード量ＫＮＲＴだけ基本点火時期ＭＢＴＣＡＬを遅角側に補正した値をノック限界点火時期ＫＮＯＣＫｃａｌとして設定するノック限界点火時期設定手段（図３３のステップ２３１参照）とを含んで構成することで、基本点火時期としてのベース点火時期をマップで与えるにしても、最大オクタン価から最小オクタン価までの複数の異なるオクタン価毎にベース点火時期のマップを与える必要がなく、これによりＲＯＭ容量が大きくなることがない。
【手続補正１７】
【補正対象書類名】明細書
【補正対象項目名】０２９８
【補正方法】変更
【補正の内容】
【０２９８】
第１実施形態によれば、ガソリンを燃料とする場合にオクタン価がノックに及ぼす影響が一番大きいことに対応して、このオクタン価推定値ＯＣＴＥＳＴをノック検出結果及び着火時期差Δθ（ノック発生時期検出値とノック発生時期予測値との比較結果）に基づいて算出するので（図３８のステップ２６１、２６２、２６３、２６５参照）、オクタン価が予め分かっていないガソリンを使用燃料とする場合であっても自着火時期予測値θｋｎｋｅｓｔ（ノック発生時期予測値）を精度よく算出できる。
【手続補正１８】
【補正対象書類名】明細書
【補正対象項目名】０２９９
【補正方法】変更
【補正の内容】
【０２９９】
第１実施形態によれば、オクタン価推定値算出手段が、ノックが生じたことを検出したときそのノックの検出された燃焼サイクルにおいて自着火時期検出値θｋｎｋｒｅａｌ（ノック発生時期検出値）と自着火時期予測値θｋｎｋｅｓｔ（ノック発生時期予測値）との着火時期差Δθ（発生時期差）が許容範囲内に収まるまでオクタン価推定値ＯＣＴＥＳＴを小さくなる側に更新し（図３８のステップ２６３〜２６６のループ操作参照）、その後はオクタン価推定値ＯＣＴＥＳＴを第２の所定値ｃｏｎｓｔ０５ずつ大きくなる側に一定の周期で更新する（図３８のステップ２６１、２６７〜２７１参照）手段であるので、ノックが検出された燃焼サイクルでオクタン価推定値ＯＣＴＥＳＴを収束させることができる。
【手続補正１９】
【補正対象書類名】明細書
【補正対象項目名】０３００
【補正方法】変更
【補正の内容】
【０３００】
第１実施形態によれば  オクタン価推定値ＯＣＴＥＳＴを第２の所定値ｃｏｎｓｔ０５ずつ大きくなる側（ノックが発生する側）にする更新（図３８のステップ２７０参照）を、基本点火時期ＭＢＴＣＡＬではノックが発生する条件でつまり点火時期最小値ＰＡＤＶが基本点火時期ＭＢＴＣＡＬより遅角されている場合にだけ実行する（図３８のステップ２６７）ので、オクタン価推定値ＯＣＴＥＳＴを誤って更新することがない。
【手続補正２０】
【補正対象書類名】明細書
【補正対象項目名】０３０１
【補正方法】変更
【補正の内容】
【０３０１】
第１実施形態によれば、基本点火時期算出手段が、燃焼ガスの層流状態での燃焼速度である層流燃焼速度（ＳＬ１、ＳＬ２）を算出する層流燃焼速度算出手段（図１０のステップ１６８、図１２のステップ１８８参照）と、燃焼室５内の燃焼ガス体積に相当する容積（Ｖ０、ＶＴＤＣ）を算出する燃焼ガス体積相当容積算出手段（図１０のステップ１６２、図１２の１８２参照）と、所定のクランク角までに燃焼室５内で燃焼するガスの燃焼質量割合（ＢＲ１、ＢＲ２）を算出する燃焼質量割合算出手段（図１０のステップ１７１、図１２のステップ１９１参照）と、所定運転条件での燃焼ガスの燃焼のしやすさを示す反応確率ＲＰＲＯＢＡを算出する反応確率算出手段（図５のステップ１５参照）と、これら層流燃焼速度（ＳＬ１、ＳＬ２）、燃焼ガス体積相当容積（Ｖ０、ＶＴＤＣ）、燃焼質量割合（ＢＲ１、ＢＲ２）及び反応確率ＲＰＲＯＢＡに基づいて燃焼開始から所定クランク角までの燃焼期間（ＢＵＲＮ１、ＢＵＲＮ２）を算出する燃焼期間算出手段（図１０のステップ１７１、図１２のステップ１９１参照）と、この燃焼期間（ＢＵＲＮ１、ＢＵＲＮ２）に基づいてＭＢＴの得られる基本点火時期ＭＢＴＣＡＬを算出する基本点火時期算出手段（図１３のステップ４１〜４３参照）とを含むので、この基本点火時期ＭＢＴＣＡＬを遅角側に補正した値であるノック限界点火時期ＫＮＯＣＫｃａｌが燃焼解析に基づいて算出されることになり、これにより運転条件によらず最適なノック限界点火時期ＫＮＯＣＫｃａｌを算出できる。
【手続補正２１】
【補正対象書類名】明細書
【補正対象項目名】０３２９
【補正方法】変更
【補正の内容】
【０３２９】
このように、第２施形態によれば、ノックセンサ４７によるノック検出結果に基づいてアルコール濃度推定値ＡＬＣＥＳＴを算出し（図４５のステップ２６１、３０１、３０４参照）、そのアルコール濃度推定値ＡＬＣＥＳＴに基づいて燃焼室５内での自着火時期予測値θｋｎｋｅｓｔ（ノック発生時期予測値）を算出し（図４３のステップ２９１〜２９３、２０９、２１０、図３３のステップ２１８参照）、この自着火時期予測値θｋｎｋｅｓｔに基づいてノック限界点火時期ＫＮＯＣＫｃａｌを算出する（図３３のステップ２１９〜２３１参照）ので、混合燃料中のアルコール濃度を予め知り得ていない市場で販売される混合燃料を使用する場合においても、運転状態によらず、ノック検出結果を点火時期にフィードバックする従来装置のようにノック回避のための点火時期の遅角とそれに続く進角の操作とが繰り返されることがない。このため、第１実施形態と同様に過渡でもノック限界点火時期を追従できるので、燃費悪化、出力低下を防ぐことができる。
【手続補正２２】
【補正対象書類名】明細書
【補正対象項目名】０３３１
【補正方法】変更
【補正の内容】
【０３３１】
このように、第２実施形態によれば、着火時期差Δθ（自着火時期検出値θｋｎｋｒｅａｌと自着火時期予測値θｋｎｋｅｓｔとの比較結果）に基づいてもアルコール濃度推定値ＡＬＣＥＳＴ（ノック相関パラメータ推定値）を算出するようにしたので（図４５のステップ３０１参照）、アルコール濃度推定値ＡＬＣＥＳＴの収束を早めることができ、そのぶん運転性が向上する。
【手続補正２３】
【補正対象書類名】明細書
【補正対象項目名】０３３２
【補正方法】変更
【補正の内容】
【０３３２】
第２実施形態によれば、ガソリンとアルコールの混合燃料では混合燃料中のアルコール濃度がノックに影響を及ぼすことに対応して、このアルコール濃度推定値ＡＬＣＥＳＴをノック検出結果及び着火時期差Δθ（ノック発生時期検出値とノック発生時期予測値との比較結果）に基づいて算出するので（図４５のステップ２６１、２６２、２６３、３０１参照）、アルコール濃度を予め知り得ないアルコール含有燃料を使用燃料とする場合であっても自着火時期予測値θｋｎｋｅｓｔ（ノック発生時期予測値）を精度よく算出できる。
【手続補正２４】
【補正対象書類名】明細書
【補正対象項目名】０３３３
【補正方法】変更
【補正の内容】
【０３３３】
第２実施形態によれば、アルコール濃度推定値算出手段が、ノックが生じたことを検出したときそのノックの検出された燃焼サイクルにおいて自着火時期検出値θｋｎｋｒｅａｌ（ノック発生時期検出値）と自着火時期予測値θｋｎｋｅｓｔ（ノック発生時期予測値）との着火時期差Δθ（発生時期差）が許容範囲内に収まるまでアルコール濃度推定値ＡＬＣＥＳＴを高くなる側に更新し（図４５のステップ２６３、２６４、３０１、３０２のループ操作参照）、その後はアルコール濃度推定値ＡＬＣＥＳＴを第２の所定値ｃｏｎｓｔ１５ずつ低くなる側に一定の周期で更新する（図４５のステップ２６１、２６７、３０３、２６９、３０４、２７１参照）手段であるので、ノックが検出された燃焼サイクルでアルコール濃度推定値ＡＬＣＥＳＴを収束させることができる。
【手続補正２５】
【補正対象書類名】明細書
【補正対象項目名】０３３４
【補正方法】変更
【補正の内容】
【０３３４】
第２実施形態によれば、アルコール濃度推定値ＡＬＣＥＳＴを第２の所定値ｃｏｎｓｔ１５ずつ低くなる側（ノックが発生する側）にする更新（図４５のステップ３０４参照）を、基本点火時期ＭＢＴＣＡＬではノックが発生する条件で実行する（図４５のステップ２６７）ので、アルコール濃度推定値ＡＬＣＥＳＴを誤って更新することがない。
【手続補正２６】
【補正対象書類名】明細書
【補正対象項目名】０３５７
【補正方法】変更
【補正の内容】
【０３５７】
Ｖ０＝Ｖｃ＋（π／４）Ｄ2・Ｈmbtcycl                      …（８８）
ただし、Ｄ       ：シリンダボア径［ｍ］、
Ｈmbtcycl：燃焼開始時期（ＭＢＴＣＹＣＬ）におけるピストンピン
７６のＴＤＣからの距離［ｍ］、
第３実施形態によれば、予めオクタン価の定まっている燃料、ここではオクタン価８０の燃料を使用する場合に、ノックセンサ４７によるノック検出結果を点火時期ではなく圧縮比にフィードバックしている（図５０参照）。このため、圧縮比推定値ＣＭＰＥＳＴの動きは図４８最下段に一点鎖線で示した示したアルコール濃度推定値ＡＬＣＥＳＴと同様の動きをする。すなわち、ノッキングが生じたときには圧縮比推定値ＣＭＰＥＳＴが実際の圧縮比より低い結果であると判断されて圧縮比推定値ＣＭＰＥＳＴがステップ的に高くなる。この結果、ノッキングが生じないようであれば、カウンタ値ｃｏｕｎｔが所定値ｃｏｎｓｔ２４に達する毎に今度は圧縮比推定値ＣＭＰＥＳＴが第２の所定値ｃｏｎｓｔ２５ずつ一定の周期で低くなってゆく。そして、点火時期最小値ＰＡＤＶがＭＢＴＣＡＬに一致した後は圧縮比推定値ＣＭＰＥＳＴの更新は中止されそのときの値が保持される。このように変化する圧縮比推定値ＣＭＰＥＳＴに基づいて燃焼室５の吸気弁閉時期における容積ＶＩＶＣと、燃焼室５の燃焼開始時期（ＭＢＴＣＹＣＬ）における容積Ｖ０とが算出される。
【手続補正２７】
【補正対象書類名】明細書
【補正対象項目名】０３５８
【補正方法】変更
【補正の内容】
【０３５８】
このように、第３実施形態によれば、ノックセンサ４７によるノック検出結果に基づいて圧縮比推定値ＣＭＰＥＳＴを算出し（図５０のステップ２６１、３３１、３３４参照）、その圧縮比推定値ＣＭＰＥＳＴに基づいて初期燃焼期間ＢＵＲＮ１の算出に用いられる、燃焼室５の燃焼開始時期における容積Ｖ０を算出する（図５４のステップ３６１、３６２参照）ので、オクタン価８０の燃料（予めオクタン価の定まっている燃料）を使用する場合において何らかの原因で実際の圧縮比がエンジン仕様の圧縮比より高くなったときにおいても、運転状態によらず、ノック検出結果を点火時期にフィードバックする従来装置のようにノック回避のための点火時期の遅角とそれに続く進角の操作とが繰り返されることがない。このため、第１、第２の各実施形態と同様に過渡でもノック限界点火時期を追従できるので、燃費悪化、出力低下を防ぐことができる。
【手続補正２８】
【補正対象書類名】明細書
【補正対象項目名】０３５９
【補正方法】変更
【補正の内容】
【０３５９】
また、第３実施形態によれば、燃焼室内で実際にノックが生じているか否かを検出し、燃焼室内でのノック発生時期を検出し、このノック発生時期検出値θｋｎｋｒｅａｌとノック発生時期予測値θｋｎｋｅｓｔとを比較し、この比較結果及び前記ノック検出結果に基づいて圧縮比の推定値ＣＭＰＥＳＴを算出し、この圧縮比推定値ＣＭＰＥＳＴに基づいて前記燃焼室の燃焼開始時期における容積Ｖ０を算出し、この燃焼開始時期における容積Ｖ０に基づいて燃焼開始から所定クランク角までの燃焼期間（ＢＵＲＮ１、ＢＵＲＮ２）を算出し、この燃焼期間（ＢＵＲＮ１、ＢＵＲＮ２）に基づいてＭＢＴの得られる基本点火時期ＭＢＴＣＡＬを算出し、この基本点火時期ＭＢＴＣＡＬで火花点火を行うので、予めオクタン価の定まっている燃料やアルコール濃度の定まっている混合燃料を使用する場合において何らかの原因で実際の圧縮比がエンジン仕様の圧縮比より高くなったときにおいても、圧縮比推定値ＣＭＰＥＳＴの収束を早めつつ、ＭＢＴの得られる基本点火時期を精度よく与えることができる。
【手続補正２９】
【補正対象書類名】明細書
【補正対象項目名】０３６１
【補正方法】変更
【補正の内容】
【０３６１】
このように、第３実施形態によれば、着火時期差Δθ（自着火時期検出値θｋｎｋｒｅａｌと自着火時期予測値θｋｎｋｅｓｔとの比較結果）に基づいても圧縮比推定値ＣＭＰＥＳＴ（ノック相関パラメータ推定値）を算出するようにしたので（図５０のステップ３３１参照）、圧縮比推定値ＣＭＰＥＳＴの収束を早めることができ、そのぶん運転性が向上する。
【手続補正３０】
【補正対象書類名】明細書
【補正対象項目名】０３６２
【補正方法】変更
【補正の内容】
【０３６２】
第３実施形態によれば、圧縮比推定値算出手段が、ノックが生じたことを検出したときそのノックの検出された燃焼サイクルにおいて自着火時期検出値θｋｎｋｒｅａｌ（ノック発生時期検出値）と自着火時期予測値θｋｎｋｅｓｔ（ノック発生時期予測値）との着火時期差Δθ（発生時期差）が許容範囲内に収まるまで圧縮比推定値ＣＭＰＥＳＴを大きくなる側に更新し（図５０のステップ２６３、２６４、３３１、３３２のループ操作参照）、その後は圧縮比推定値ＣＭＰＥＳＴを第２の所定値ｃｏｎｓｔ２５ずつ小さくなる側に一定の周期で更新する（図５０のステップ２６１、２６７、３３３、２６９、３３４、２７１参照）手段であるので、ノックが検出された燃焼サイクルで圧縮比推定値ＣＭＰＥＳＴを収束させることができる。
【手続補正３１】
【補正対象書類名】明細書
【補正対象項目名】０３６３
【補正方法】変更
【補正の内容】
【０３６３】
第３実施形態によれば  圧縮比推定値ＣＭＰＥＳＴを第２の所定値ｃｏｎｓｔ２５ずつ小さくなる側（ノックが発生する側）にする更新（図５０のステップ３３４参照）を、基本点火時期ＭＢＴＣＡＬではノックが発生する条件で実行する（図５０のステップ２６７）ので、圧縮比推定値ＣＭＰＥＳＴを誤って更新することがない。
【手続補正３２】
【補正対象書類名】明細書
【補正対象項目名】０３６４
【補正方法】変更
【補正の内容】
【０３６４】
第３実施形態によれば、図５４に示したように燃焼室５の吸気弁閉時期における容積ＶＩＶＣと燃焼開始時期における容積Ｖ０とに基づいて吸気弁閉時期ＩＶＣから燃焼開始時期までの有効圧縮比Ｅｃを算出し（図５４のステップ１６３参照）、燃焼室５の吸気弁閉時期の温度ＴＩＮＩとこの有効圧縮比Ｅｃとから燃焼室５の燃焼開始時期における温度Ｔ０を、燃焼室５の吸気弁閉時期の圧力ＰＩＮＩとこの有効圧縮比Ｅｃとから燃焼室５の燃焼開始時期における圧力Ｐ０をそれぞれ算出し（図５４のステップ１６４〜１６７参照）、これら燃焼室５の燃焼開始時期における温度Ｔ０と圧力Ｐ０とに基づいて初期燃焼期間ＢＵＲＮ１の算出に用いる層流燃焼速度ＳＬ１を算出する（図５４のステップ１６８参照）場合に、圧縮比推定値ＣＭＰＥＳＴに基づいて燃焼室５の吸気弁閉時期における容積ＶＩＶＣを算出する（図５３のステップ３５１、３５２）ので、予めオクタン価の定まっている燃料を使用する場合において何らかの原因で実際の圧縮比が予定している圧縮比より高くなったときにおいても、燃焼室５の吸気弁閉時期における容積ＶＩＶＣを精度よく算出できる。
【手続補正３３】
【補正対象書類名】明細書
【補正対象項目名】０３６５
【補正方法】変更
【補正の内容】
【０３６５】
第３実施形態では、自着火時期予測値θｋｎｋｅｓｔ（ノック発生時期予測値）を燃焼室内の燃料が自着火に至るまでの時間の逆数の分布を表す特性に基づいて算出する場合で説明したが、自着火時期予測値θｋｎｋｅｓｔに代えて自着火時期検出値θｋｎｋｒｅａｌ（ノック発生時期検出値）を用いるようにしてもかまわない。
【手続補正３４】
【補正対象書類名】明細書
【補正対象項目名】０３８２
【補正方法】変更
【補正の内容】
【０３８２】
第４、第５、第６の実施形態によれば、ノック検出結果に基づいてオクタン価、アルコール濃度、圧縮比といったノック相関パラメータの推定値を算出し（ノック検出結果をノック相関パラメータにフィードバック）し（第４実施形態について図５５のステップ２６１、３７４、２７０、第５実施形態について図５９のステップ２６１、３８１、３０４、第６実施形態について図６１のステップ２６１、３９１、３３４参照）、そのノック相関パラメータ推定値に基づいて燃焼室５内での自着火時期予測値θｋｎｋｅｓｔ（ノック発生時期予測値）を算出し（第４実施形態について図３２のステップ２０６〜２１０、図３３のステップ２１８、第５実施形態について図４３のステップ２９１〜２９３、２０９、２１０、図３３のステップ２１８、第６実施形態について図４９のステップ３２１、２０９、２１０、図３３のステップ２１８参照）、この自着火時期予測値θｋｎｋｅｓｔに基づいてノック限界点火時期ＫＮＯＣＫｃａｌを算出する（図３３のステップ２１９〜２３１参照）ようにしたので、燃料のオクタン価や混合燃料中のアルコール濃度を予め知り得ていない市場で販売される燃料を使用する場合においても、また、予めオクタン価の定まっている燃料を使用する場合において何らかの原因で実際の圧縮比がエンジン仕様の圧縮比より高くなったときにおいても、運転状態によらず、ノック検出結果を点火時期にフィードバックする従来装置のようにノック回避のための点火時期の遅角とそれに続く進角の操作とが繰り返されることがない。このため、加速時や減速時などの過渡でもノック限界点火時期を追従できるので、燃費悪化、出力低下を防ぐことができる。
【手続補正３５】
【補正対象書類名】明細書
【補正対象項目名】０３８４
【補正方法】変更
【補正の内容】
【０３８４】
このように第４、第５、第６の実施形態によれば、ノック強度差ΔＫＩＣ（ノック強度推定値ＫＩＣＥＳＴとノック強度検出値ＫＩＣＲＥＡＬとの比較結果）に基づいても、オクタン価推定値ＯＣＴＥＳＴ、アルコール濃度推定値ＡＬＣＥＳＴ、圧縮比推定値ＣＭＰＥＳＴといったノック相関パラメータ推定値を算出するので（図５５のステップ３７４、図５９の３８１、図６１のステップ３９１参照）、ノック相関パラメータ推定値の収束を早めることができ、そのぶん運転性が向上する。
【手続補正３６】
【補正対象書類名】明細書
【補正対象項目名】０３８５
【補正方法】変更
【補正の内容】
【０３８５】
また、ノックセンサ４７を用いた自着火時期（ノック発生時期）の検出において精度を高めるにはサンプリング周期を短くする必要があるが、ノック強度を用いるのであればノックセンサ４７のサンプリング周波数を低くできることから、ノック強度を用いる第４、第５、第６の実施形態によれば、性能を悪化することなく安価にシステムを構成できる。
【手続補正３７】
【補正対象書類名】明細書
【補正対象項目名】０３８６
【補正方法】変更
【補正の内容】
【０３８６】
第４実施形態では、図５、図１０、図１２、図１３に示したように、層流燃焼速度ＳＬ１、ＳＬ２、燃焼ガス体積相当容積（Ｖ０、ＶＴＤＣ）、燃焼質量割合（ＢＲ１、ＢＲ２）及び反応確率ＲＰＲＯＢＡに基づいて燃焼開始から所定クランク角までの燃焼期間（ＢＵＲＮ１、ＢＵＲＮ２）を算出し、この燃焼期間（ＢＵＲＮ１、ＢＵＲＮ２）に基づいて基本点火時期ＭＢＴＣＡＬを算出する場合で説明したが、基本点火時期ＭＢＴＣＡＬの算出に代えて、ベース点火時期のマップを備えさせるものでもかまわない。この場合に、ノック限界点火時期算出手段を、自着火時期予測値θｋｎｋｅｓｔ（ノック発生時期予測値）と運転条件とに基づいて燃焼室５のノックによる圧力上昇量ＤＰ１を推定する圧力上昇量推定手段（図３３のステップ２１９〜２２６参照）と、この圧力上昇量ＤＰ１に基づいてノック強度推定値ＫＩＣを算出するノック強度推定値算出手段（図３３のステップ２２７〜２２９参照）と、このノック強度推定値ＫＩＣに基づいてノックリタード量ＫＮＲＴを算出するノックリタード量算出手段（図３３のステップ２３０参照）と、このノックリタード量ＫＮＲＴだけ基本点火時期ＭＢＴＣＡＬを遅角側に補正した値をノック限界点火時期ＫＮＯＣＫｃａｌとして設定するノック限界点火時期設定手段（図３３のステップ２３１参照）とを含んで構成することで、基本点火時期としてのベース点火時期をマップで与えるにしても、最大オクタン価から最小オクタン価までの複数の異なるオクタン価毎にベース点火時期のマップを与える必要がなく、これによりＲＯＭ容量が大きくなることがない。
【手続補正３８】
【補正対象書類名】明細書
【補正対象項目名】０３８７
【補正方法】変更
【補正の内容】
【０３８７】
第４実施形態によれば、ガソリンを燃料とする場合にオクタン価がノックに及ぼす影響が一番大きいことに対応して、このオクタン価推定値ＯＣＴＥＳＴをノック検出結果及びノック強度ΔＫＩＣ（ノック強度検出値ＫＩＣＲＥＡＬとノック強度推定値ＫＩＣＥＳＴの比較結果）に基づいて算出するので（図５５のステップ２６１、３７１、３７２、３７４参照）、オクタン価が予め分かっていないガソリンを使用燃料とする場合であっても自着火時期予測値θｋｎｋｅｓｔ（ノック発生時期予測値）を精度よく算出できる。
【手続補正３９】
【補正対象書類名】明細書
【補正対象項目名】０３８８
【補正方法】変更
【補正の内容】
【０３８８】
また、第４実施形態によれば、オクタン価推定値算出手段が、ノックが生じたことを検出したときそのノックの検出された燃焼サイクルにおいてノック強度推定値ＫＩＣＥＳＴとノック強度検出値ＫＩＣＲＥＡＬとのノック強度差ΔＫＩＣが許容範囲内に収まるまでオクタン価推定値ＯＣＴＥＳＴを小さくなる側に更新し（特に図５５のステップ３７２〜３７５のループ操作参照）、その後はオクタン価推定値ＯＣＴＥＳＴを第２の所定値ｃｏｎｓｔ０５ずつ大きくなる側に一定の周期で更新する（図５５のステップ２６１、２６７〜２７１参照）手段であるので、ノックが検出された燃焼サイクルでオクタン価推定値ＯＣＴＥＳＴを収束させることができる。
【手続補正４０】
【補正対象書類名】明細書
【補正対象項目名】０３８９
【補正方法】変更
【補正の内容】
【０３８９】
第４実施形態によれば  オクタン価推定値ＯＣＴＥＳＴを第２の所定値ｃｏｎｓｔ０５ずつ大きくなる側（ノックが発生する側）にする更新（図５５のステップ２７０参照）を、基本点火時期ＭＢＴＣＡＬではノックが発生する条件でつまり点火時期最小値ＰＡＤＶが基本点火時期ＭＢＴＣＡＬより遅角されている場合にだけ実行する（図３８のステップ２６７）ので、オクタン価推定値ＯＣＴＥＳＴを誤って更新することがない。
【手続補正４１】
【補正対象書類名】明細書
【補正対象項目名】０３９０
【補正方法】変更
【補正の内容】
【０３９０】
第４実施形態によれば、基本点火時期算出手段が、燃焼ガスの層流状態での燃焼速度である層流燃焼速度（ＳＬ１、ＳＬ２）を算出する層流燃焼速度算出手段（図１０のステップ１６８、図１２のステップ１８８参照）と、燃焼室５内の燃焼ガス体積に相当する容積（Ｖ０、ＶＴＤＣ）を算出する燃焼ガス体積相当容積算出手段（図１０のステップ１６２、図１２の１８２参照）と、所定のクランク角までに燃焼室５内で燃焼するガスの燃焼質量割合（ＢＲ１、ＢＲ２）を算出する燃焼質量割合算出手段（図１０のステップ１７１、図１２のステップ１９１参照）と、所定運転条件での燃焼ガスの燃焼のしやすさを示す反応確率ＲＰＲＯＢＡを算出する反応確率算出手段（図５のステップ１５参照）と、これら層流燃焼速度（ＳＬ１、ＳＬ２）、燃焼ガス体積相当容積（Ｖ０、ＶＴＤＣ）、燃焼質量割合（ＢＲ１、ＢＲ２）及び反応確率ＲＰＲＯＢＡに基づいて燃焼開始から所定クランク角までの燃焼期間（ＢＵＲＮ１、ＢＵＲＮ２）を算出する燃焼期間算出手段（図１０のステップ１７１、図１２のステップ１９１参照）と、この燃焼期間（ＢＵＲＮ１、ＢＵＲＮ２）に基づいてＭＢＴの得られる基本点火時期ＭＢＴＣＡＬを算出する基本点火時期算出手段（図１３のステップ４１〜４３参照）とを含むので、この基本点火時期ＭＢＴＣＡＬを遅角側に補正した値であるノック限界点火時期ＫＮＯＣＫｃａｌが燃焼解析に基づいて算出されることになり、これにより運転条件によらず最適なノック限界点火時期ＫＮＯＣＫｃａｌを算出できる。
【手続補正４２】
【補正対象書類名】明細書
【補正対象項目名】０３９１
【補正方法】変更
【補正の内容】
【０３９１】
第５実施形態によれば、ガソリンとアルコールの混合燃料では混合燃料中のアルコール濃度がノックに影響を及ぼすことに対応して、このアルコール濃度推定値ＡＬＣＥＳＴをノック検出結果及びノック強度差ΔＫＩＣ（ノック強度推定値ＫＩＣＥＳＴとノック強度検出値ＫＩＣｒｅａｌの比較結果）に基づいて算出するので（図５９のステップ２６１、３７１、３７２、３８１参照）、アルコール濃度を予め知り得ないアルコール含有燃料を使用燃料とする場合であっても自着火時期予測値θｋｎｋｅｓｔ（ノック発生時期予測値）を精度よく算出できる。
【手続補正４３】
【補正対象書類名】明細書
【補正対象項目名】０３９２
【補正方法】変更
【補正の内容】
【０３９２】
第５実施形態によれば、アルコール濃度推定値算出手段が、ノックが生じたことを検出したときそのノックの検出された燃焼サイクルにおいてノック強度推定値ＫＩＣＥＳＴとノック強度検出値ＫＩＣＲＥＡＬとのノック強度差ΔＫＩＣが許容範囲内に収まるまでアルコール濃度推定値ＡＬＣＥＳＴを高くなる側に更新し（特に図５９のステップ３７２、３７３、３８１、３８２のループ操作参照）、その後はアルコール濃度推定値ＡＬＣＥＳＴを第２の所定値ｃｏｎｓｔ１５ずつ低くなる側に一定の周期で更新する（図５９のステップ２６１、２６７、３０３、２６９、３０４、２７１参照）手段であるので、ノックが検出された燃焼サイクルでアルコール濃度推定値ＡＬＣＥＳＴを収束させることができる。
【手続補正４４】
【補正対象書類名】明細書
【補正対象項目名】０３９３
【補正方法】変更
【補正の内容】
【０３９３】
第５実施形態によれば、アルコール濃度推定値ＡＬＣＥＳＴを第２の所定値ｃｏｎｓｔ１５ずつ低くなる側（ノックが発生する側）にする更新（図５９のステップ３０４参照）を、基本点火時期ＭＢＴＣＡＬではノックが発生する条件で実行する（図５９のステップ２６７）ので、アルコール濃度推定値ＡＬＣＥＳＴを誤って更新することがない。
【手続補正４５】
【補正対象書類名】明細書
【補正対象項目名】０３９４
【補正方法】変更
【補正の内容】
【０３９４】
第６実施形態によれば、燃焼室内で実際にノックが生じているか否かを検出し、燃焼室内でのノック強度を検出し、このノック強度検出値ＫＩＣＲＥＡＬとノック強度推定値ＫＩＣＥＳＴとを比較し、この比較結果及び前記ノック検出結果に基づいて圧縮比の推定値ＣＭＰＥＳＴを算出し、この圧縮比推定値ＣＭＰＥＳＴに基づいて前記燃焼室の燃焼開始時期における容積Ｖ０を算出し、この燃焼開始時期における容積Ｖ０に基づいて燃焼開始から所定クランク角までの燃焼期間（ＢＵＲＮ１、ＢＵＲＮ２）を算出し、この燃焼期間（ＢＵＲＮ１、ＢＵＲＮ２）に基づいてＭＢＴの得られる基本点火時期ＭＢＴＣＡＬを算出し、この基本点火時期ＭＢＴＣＡＬで火花点火を行うので、予めオクタン価の定まっている燃料やアルコール濃度の定まっている混合燃料を使用する場合において何らかの原因で実際の圧縮比がエンジン仕様の圧縮比より高くなったときにおいても、圧縮比推定値ＣＭＰＥＳＴの収束を早めつつ、ＭＢＴの得られる基本点火時期を精度よく与えることができる。
【手続補正４６】
【補正対象書類名】明細書
【補正対象項目名】０３９５
【補正方法】変更
【補正の内容】
【０３９５】
第６実施形態によれば、圧縮比推定値算出手段が、ノックが生じたことを検出したときそのノックの検出された燃焼サイクルにおいてノック強度推定値ＫＩＣＥＳＴとノック強度検出値ＫＩＣＲＥＡＬとのノック強度差ΔＫＩＣが許容範囲内に収まるまで圧縮比推定値ＣＭＰＥＳＴを大きくなる側に更新し（特に図６１のステップ３７２、３７３、３９１、３９２のループ操作参照）、その後は圧縮比推定値ＣＭＰＥＳＴを第２の所定値ｃｏｎｓｔ２５ずつ低くなる側に一定の周期で更新する（図６１のステップ２６１、２６７、３３３、２６９、３３４、２７１参照）手段であるので、ノックが検出された燃焼サイクルで圧縮比推定値ＣＭＰＥＳＴを収束させることができる。
【手続補正４７】
【補正対象書類名】明細書
【補正対象項目名】０３９６
【補正方法】変更
【補正の内容】
【０３９６】
第６実施形態によれば  圧縮比推定値ＣＭＰＥＳＴを第２の所定値ｃｏｎｓｔ２５ずつ小さくなる側（ノックが発生する側）にする更新（図６１のステップ３３４参照）を、基本点火時期ＭＢＴＣＡＬではノックが発生する条件で実行する（図６１のステップ２６７）ので、圧縮比推定値ＣＭＰＥＳＴを誤って更新することがない。
【手続補正４８】
【補正対象書類名】明細書
【補正対象項目名】０３９７
【補正方法】変更
【補正の内容】
【０３９７】
第６実施形態によれば、図５４に示したように燃焼室５の吸気弁閉時期における容積ＶＩＶＣと燃焼開始時期における容積Ｖ０とに基づいて吸気弁閉時期ＩＶＣから燃焼開始時期までの有効圧縮比Ｅｃを算出し（図５４のステップ１６３参照）、燃焼室５の吸気弁閉時期の温度ＴＩＮＩとこの有効圧縮比Ｅｃとから燃焼室５の燃焼開始時期における温度Ｔ０を、燃焼室５の吸気弁閉時期の圧力ＰＩＮＩとこの有効圧縮比Ｅｃとから燃焼室５の燃焼開始時期における圧力Ｐ０をそれぞれ算出し（図５４のステップ１６４〜１６７参照）、これら燃焼室５の燃焼開始時期における温度Ｔ０と圧力Ｐ０とに基づいて初期燃焼期間ＢＵＲＮ１の算出に用いる層流燃焼速度ＳＬ１を算出する（図５４のステップ１６８参照）場合に、圧縮比推定値ＣＭＰＥＳＴに基づいて燃焼室５の吸気弁閉時期における容積ＶＩＶＣを算出する（図５３のステップ３５１、３５２）ので、予めオクタン価の定まっている燃料を使用する場合において何らかの原因で実際の圧縮比が予定している圧縮比より高くなったときにおいても、燃焼室５の吸気弁閉時期における容積ＶＩＶＣを精度よく算出できる。
【手続補正４９】
【補正対象書類名】明細書
【補正対象項目名】０３９８
【補正方法】変更
【補正の内容】
【０３９８】
第６実施形態では、自着火時期予測値θｋｎｋｅｓｔ（ノック発生時期予測値）を燃焼室内の燃料が自着火に至るまでの時間の逆数の分布を表す特性に基づいて算出する場合で説明したが、自着火時期予測値θｋｎｋｅｓｔに代えて自着火時期検出値θｋｎｋｒｅａｌ（ノック発生時期検出値）を用いるようにしてもかまわない。
【手続補正５０】
【補正対象書類名】明細書
【補正対象項目名】０３９９
【補正方法】変更
【補正の内容】
【０３９９】
このように第４、第５、第６の実施形態においても、第１、第２、第３実施形態と同様の作用効果を奏する。
【手続補正５１】
【補正対象書類名】明細書
【補正対象項目名】０４３７
【補正方法】変更
【補正の内容】
【０４３７】
第７、第８の実施形態（請求項１に記載の発明）によれば、ノック検出結果に基づいて圧縮比以外のノック相関パラメータの推定値（第７実施形態についてオクタン価推定値ＯＣＴＥＳＴ、第８実施形態についてアルコール濃度推定値ＡＬＣＥＳＴ）を算出し（ノック検出結果をノック相関パラメータにフィードバック）し（第７実施形態について図６３のステップ２６１、４０２、２７０、第８実施形態について図６８のステップ２６１、４６１、３０４参照）、そのノック相関パラメータ推定値に基づいて燃焼室５内での自着火時期予測値θｋｎｋｅｓｔ（ノック発生時期予測値）を算出し（第７実施形態について図３２のステップ２０６〜２１０、図３３のステップ２１８、第８実施形態について図４３のステップ２９１〜２９３、２０９、２１０、図３３のステップ２１８参照）、この自着火時期予測値θｋｎｋｅｓｔに基づいてノック限界点火時期ＫＮＯＣＫｃａｌを算出する（第７、第８実施形態について図３３のステップ２１９〜２３１参照）ようにしたので、燃料のオクタン価や混合燃料中のアルコール濃度を予め知り得ていない市場で販売される燃料を使用する場合においても、運転状態によらず、ノック検出結果を点火時期にフィードバックする従来装置のようにノック回避のための点火時期の遅角とそれに続く進角の操作とが繰り返されることがない。このため、加速時や減速時などの過渡でもノック限界点火時期を追従できるので、燃費悪化、出力低下を防ぐことができる。
【手続補正５２】
【補正対象書類名】明細書
【補正対象項目名】０４３９
【補正方法】変更
【補正の内容】
【０４３９】
このように第７、第８の実施形態（請求項１に記載の発明）によれば、自着火時期検出値θｋｎｋｒｅａｌ（ノック発生時期検出値）に基づいても圧縮比以外のノック相関パラメータ推定値（第７実施形態についてオクタン価推定値ＯＣＴＥＳＴ、第８実施形態についてアルコール濃度推定値ＡＬＣＥＳＴ）を算出するので（第７実施形態について図６５のステップ４３３、第７実施形態について図６９のステップ４７１参照）、圧縮比以外のノック相関パラメータの推定値の収束を早めることができ、そのぶん運転性が向上する。
【手続補正５３】
【補正対象書類名】明細書
【補正対象項目名】０４４０
【補正方法】変更
【補正の内容】
【０４４０】
第７、第８の実施形態では、図６６、図６７、図１２、図１３に示したように、層流燃焼速度ＳＬ１、ＳＬ２、燃焼ガス体積相当容積（Ｖ０、ＶＴＤＣ）、燃焼質量割合（ＢＲ１、ＢＲ２）及び反応確率ＲＰＲＯＢＡに基づいて燃焼開始から所定クランク角までの燃焼期間（ＢＵＲＮ１、ＢＵＲＮ２）を算出し、この燃焼期間（ＢＵＲＮ１、ＢＵＲＮ２）に基づいて基本点火時期ＭＢＴＣＡＬを算出する場合で説明したが、基本点火時期ＭＢＴＣＡＬの算出に代えて、ベース点火時期のマップを備えさせるものでもかまわない。この場合に、ノック限界点火時期算出手段を、自着火時期予測値θｋｎｋｅｓｔ（ノック発生時期予測値）と運転条件とに基づいて燃焼室５のノックによる圧力上昇量ＤＰ１を推定する圧力上昇量推定手段（図３３のステップ２１９〜２２６参照）と、この圧力上昇量ＤＰ１に基づいてノック強度推定値ＫＩＣを算出するノック強度推定値算出手段（図３３のステップ２２７〜２２９参照）と、このノック強度推定値ＫＩＣに基づいてノックリタード量ＫＮＲＴを算出するノックリタード量算出手段（図３３のステップ２３０参照）と、このノックリタード量ＫＮＲＴだけ基本点火時期ＭＢＴＣＡＬを遅角側に補正した値をノック限界点火時期ＫＮＯＣＫｃａｌとして設定するノック限界点火時期設定手段（図３３のステップ２３１参照）とを含んで構成することで（請求項２に記載の発明）、基本点火時期としてのベース点火時期をマップで与えるにしても、最大オクタン価から最小オクタン価までの複数の異なるオクタン価毎にベース点火時期のマップを与える必要がなく、これによりＲＯＭ容量が大きくなることがない。
【手続補正５４】
【補正対象書類名】明細書
【補正対象項目名】０４４１
【補正方法】変更
【補正の内容】
【０４４１】
第７実施形態（請求項３に記載の発明）によれば、ガソリンを燃料とする場合にオクタン価がノックに及ぼす影響が一番大きいことに対応して、このオクタン価推定値ＯＣＴＥＳＴをノック検出結果及び自着火時期検出値θｋｎｋｒｅａｌ（ノック発生時期検出値）に基づいて算出するので（図６３のステップ２６１、２６２、４０２、図６５参照）、オクタン価が予め分かっていないガソリンを使用燃料とする場合であっても自着火時期予測値θｋｎｋｅｓｔ（ノック発生時期予測値）を精度よく算出できる。
【手続補正５５】
【補正対象書類名】明細書
【補正対象項目名】０４４２
【補正方法】変更
【補正の内容】
【０４４２】
第７実施形態（請求項４に記載の発明）によれば、オクタン価推定値算出手段が、ノックが生じたことを検出したときそのノックの検出された燃焼サイクルにおいて燃焼室５内の燃料が自着火に至るまでの時間であって燃焼室５内の圧力と温度によって相違する時間の逆数（１／τ）を所定のクランク角ｃｏｎｓｔ０２毎に燃焼開始時期（ＭＢＴＣＡＬ＋ＩＧＮＤＥＡＤ）よりノック発生時期検出値θｋｎｋｒｅａｌまでにわたって積算し、その積算値ＳＵＭと１との差の絶対値が許容範囲内に収まるまでオクタン価推定値ＯＣＴＥＳＴを小さくなる側に更新し（特に図６５のステップ２０３〜２０９、４３１〜４３３のループ操作参照）、その後はオクタン価推定値を第２の所定値ｃｏｎｓｔ０５ずつ大きくなる側に一定の周期で更新する（図６３のステップ２６１、２６７〜２７１参照）手段であるので、ノックが検出された燃焼サイクルでオクタン価推定値ＯＣＴＥＳＴを収束させることができる。
【手続補正５６】
【補正対象書類名】明細書
【補正対象項目名】０４４３
【補正方法】変更
【補正の内容】
【０４４３】
第７実施形態（請求項５に記載の発明）によれば  オクタン価推定値ＯＣＴＥＳＴを第２の所定値ｃｏｎｓｔ０５ずつ大きくなる側（ノックが発生する側）にする更新（図６３のステップ２７０参照）を、基本点火時期ＭＢＴＣＡＬではノックが発生する条件でつまり点火時期最小値ＰＡＤＶが基本点火時期ＭＢＴＣＡＬより遅角されている場合にだけ実行する（図６３のステップ２６７）ので、オクタン価推定値ＯＣＴＥＳＴを誤って更新することがない。
【手続補正５７】
【補正対象書類名】明細書
【補正対象項目名】０４４４
【補正方法】変更
【補正の内容】
【０４４４】
第８実施形態（請求項６に記載の発明）によれば、ガソリンとアルコールの混合燃料では混合燃料中のアルコール濃度がノックに影響を及ぼすことに対応して、このアルコール濃度推定値ＡＬＣＥＳＴをノック検出結果及び自着火時期検出値θｋｎｋｒｅａｌ（ノック発生時期検出値）に基づいて算出するので（図６８のステップ２６１、２６２、４６１参照）、アルコール濃度を予め知り得ないアルコール含有燃料を使用燃料とする場合であっても自着火時期予測値θｋｎｋｅｓｔ（ノック発生時期予測値）を精度よく算出できる。
【手続補正５８】
【補正対象書類名】明細書
【補正対象項目名】０４４５
【補正方法】変更
【補正の内容】
【０４４５】
第８実施形態（請求項７に記載の発明）によれば、アルコール濃度推定値算出手段が、ノックが生じたことを検出したときそのノックの検出された燃焼サイクルにおいて燃焼室５内の燃料が自着火に至るまでの時間であって燃焼室５内の圧力と温度によって相違する時間の逆数（１／τ）を所定のクランク角ｃｏｎｓｔ１２毎に燃焼開始時期（ＭＢＴＣＡＬ＋ＩＧＮＤＥＡＤ）よりノック発生時期検出値θｋｎｋｒｅａｌまでにわたって積算し、その積算値ＳＵＭと１との差の絶対値が許容範囲内に収まるまでアルコール濃度推定値ＡＬＣＥＳＴを高くなる側に更新し（特に図６９のステップ２０３〜２０５、２９１〜２９３、２０９、４３１、４３２、４７１のループ操作参照）、その後はアルコール濃度推定値を第２の所定値ｃｏｎｓｔ１５ずつ低くなる側に一定の周期で更新する（図６８のステップ２６１、２６７、３０３、２６９、３０４、２７１参照）手段であるので、ノックが検出された燃焼サイクルでアルコール濃度推定値ＡＬＣＥＳＴを収束させることができる。
【手続補正５９】
【補正対象書類名】明細書
【補正対象項目名】０４４６
【補正方法】変更
【補正の内容】
【０４４６】
第８実施形態（請求項８に記載の発明）によれば、アルコール濃度推定値ＡＬＣＥＳＴを第２の所定値ｃｏｎｓｔ１５ずつ低くなる側（ノックが発生する側）にする更新（図６８のステップ３０４参照）を、基本点火時期ＭＢＴＣＡＬではノックが発生する条件で実行する（図６８のステップ２６７）ので、アルコール濃度推定値ＡＬＣＥＳＴを誤って更新することがない。
【手続補正６０】
【補正対象書類名】明細書
【補正対象項目名】０４４７
【補正方法】変更
【補正の内容】
【０４４７】
第７、第８の実施形態（請求項９に記載の発明）によれば、基本点火時期算出手段が、燃焼ガスの層流状態での燃焼速度である層流燃焼速度（ＳＬ１、ＳＬ２）を算出する層流燃焼速度算出手段（図６７のステップ１６８、図１２のステップ１８８参照）と、燃焼室５内の燃焼ガス体積に相当する容積（Ｖ０、ＶＴＤＣ）を算出する燃焼ガス体積相当容積算出手段（図６７のステップ１６２、図１２の１８２参照）と、所定のクランク角までに燃焼室５内で燃焼するガスの燃焼質量割合（ＢＲ１、ＢＲ２）を算出する燃焼質量割合算出手段（図６７のステップ１７１、図１２のステップ１９１参照）と、所定運転条件での燃焼ガスの燃焼のしやすさを示す反応確率ＲＰＲＯＢＡを算出する反応確率算出手段（図６６のステップ１５参照）と、これら層流燃焼速度（ＳＬ１、ＳＬ２）、燃焼ガス体積相当容積（Ｖ０、ＶＴＤＣ）、燃焼質量割合（ＢＲ１、ＢＲ２）及び反応確率ＲＰＲＯＢＡに基づいて燃焼開始から所定クランク角までの燃焼期間（ＢＵＲＮ１、ＢＵＲＮ２）を算出する燃焼期間算出手段（図６７のステップ１７１、図１２のステップ１９１参照）と、この燃焼期間（ＢＵＲＮ１、ＢＵＲＮ２）に基づいてＭＢＴの得られる基本点火時期ＭＢＴＣＡＬを算出する基本点火時期算出手段（図１３のステップ４１〜４３参照）とを含むので、この基本点火時期ＭＢＴＣＡＬを遅角側に補正した値であるノック限界点火時期ＫＮＯＣＫｃａｌが燃焼解析に基づいて算出されることになり、これにより運転条件によらず最適なノック限界点火時期ＫＮＯＣＫｃａｌを算出できる。
【手続補正６１】
【補正対象書類名】明細書
【補正対象項目名】０４４８
【補正方法】変更
【補正の内容】
【０４４８】
第７、第８の実施形態（請求項１０に記載の発明）によれば、ノックセンサ４７によるノック検出結果に基づいて圧縮比推定値ＣＭＰＥＳＴ２を算出し（第７実施形態について図６３のステップ２６１、４０１、図６４、第８実施形態について図６８のステップ２６１、４０１、図６４参照）、その圧縮比推定値ＣＭＰＥＳＴ２に基づいて初期燃焼期間ＢＵＲＮ１の算出に用いられる、燃焼室５の圧縮開始時期における容積Ｖ０を算出する（第７、第８の実施形態に共通する図６７のステップ４５１、３６２参照）ので、オクタン価８０の燃料（予めオクタン価の定まっている燃料）を使用する場合において何らかの原因で実際の圧縮比がエンジン仕様の圧縮比より高くなったときにおいても、運転状態によらず、ノック検出結果を点火時期にフィードバックする従来装置のようにノック回避のための点火時期の遅角とそれに続く進角の操作とが繰り返されることがない。このため、第１、第２の各実施形態と同様に過渡でもノック限界点火時期を追従できるので、燃費悪化、出力低下を防ぐことができる。
【手続補正６２】
【補正対象書類名】明細書
【補正対象項目名】０４４９
【補正方法】変更
【補正の内容】
【０４４９】
第７、第８の実施形態（請求項１１に記載の発明）によれば、図６７に示したように燃焼室５の吸気弁閉時期における容積ＶＩＶＣと燃焼開始時期における容積Ｖ０とに基づいて吸気弁閉時期ＩＶＣから燃焼開始時期までの有効圧縮比Ｅｃを算出し（図６７のステップ１６３参照）、燃焼室５の吸気弁閉時期の温度ＴＩＮＩとこの有効圧縮比Ｅｃとから燃焼室５の燃焼開始時期における温度Ｔ０を、燃焼室５の吸気弁閉時期の圧力ＰＩＮＩとこの有効圧縮比Ｅｃとから燃焼室５の燃焼開始時期における圧力Ｐ０をそれぞれ算出し（図６７のステップ１６４〜１６７参照）、これら燃焼室５の燃焼開始時期における温度Ｔ０と圧力Ｐ０とに基づいて初期燃焼期間ＢＵＲＮ１の算出に用いる層流燃焼速度ＳＬ１を算出する（図６７のステップ１６８参照）場合に、圧縮比推定値ＣＭＰＥＳＴ２に基づいて燃焼室５の吸気弁閉時期における容積ＶＩＶＣを算出する（図６６のステップ４４１、３５２）ので、予めオクタン価の定まっている燃料を使用する場合において何らかの原因で実際の圧縮比が予定している圧縮比より高くなったときにおいても、燃焼室５の吸気弁閉時期における容積ＶＩＶＣを精度よく算出できる。
【手続補正６３】
【補正対象書類名】明細書
【補正対象項目名】０４５０
【補正方法】削除
【補正の内容】
【手続補正６４】
【補正対象書類名】明細書
【補正対象項目名】０４５１
【補正方法】削除
【補正の内容】
【手続補正６５】
【補正対象書類名】明細書
【補正対象項目名】０４５２
【補正方法】削除
【補正の内容】
【手続補正６６】
【補正対象書類名】明細書
【補正対象項目名】０４５３
【補正方法】削除
【補正の内容】
【手続補正６７】
【補正対象書類名】明細書
【補正対象項目名】０４５４
【補正方法】変更
【補正の内容】
【０４５４】
請求項１に記載の発明において、圧縮比推定値算出手段の機能は図６３、図６８のステップ２６１、２６２、３７１、４０１により、ノック相関パラメータ推定値算出手段の機能は図６３のステップ２６１、２６２、４０２または図６８のステップ２６１。２６２、４６１により、ノック発生時期予測値算出手段の機能は図３２のステップ２０６、２０７、２０８、２０９、２１０、図３３の２１８または図４３のステップ２９１〜２９３、２０９、２１０、図３３の２１８により、ノック限界点火時期算出手段の機能は図３３のステップ２１９〜２３１によりそれぞれ果たされている。
【手続補正６８】
【補正対象書類名】明細書
【補正対象項目名】０４５５
【補正方法】削除
【補正の内容】
【手続補正６９】
【補正対象書類名】明細書
【補正対象項目名】０４５６
【補正方法】削除
【補正の内容】