"内燃機関のクランク角と筒内圧とに基いて燃焼行程中の燃焼質量割合を算出する機能を有し、ノックの発生に必要な量の未燃燃料が筒内に存在する限界の燃焼質量割合をノック限界燃焼割合として取得するノック限界燃焼割合取得手段と、燃焼行程中の燃焼質量割合が前記ノック限界燃焼割合と一致した状態で、ノックが実際に発生した場合における前記未燃燃料の量をノック発生時燃料残量として算出する手段であって、前記筒内に供給された燃料の量と前記ノック限界燃焼割合とに基いて前記ノック発生時燃料残量を算出する燃料残量算出手段と、燃焼行程中の燃焼質量割合が前記ノック限界燃焼割合と一致した状態で、ノックが発生しない場合の前記未燃燃料の量である基準残量が予め記憶された基準残量記憶手段と、前記ノック発生時燃料残量から前記基準残量を減算することにより両者の差分を指標として算出する指標算出手段と、前記指標に基いて燃料のオクタン価を推定するオクタン価推定手段と、前記オクタン価推定手段を作動させて燃料のオクタン価を推定する時期を内燃機関の運転状態に基いて設定する推定時期設定手段と、を備えることを特徴とする内燃機関の制御装置。前記推定時期設定手段は、前記指標が変化するときの速度が所定の急変判定値以上である場合に、前記オクタン価推定手段を作動させる構成としてなる請求項1に記載の内燃機関の制御装置。前記推定時期設定手段は、内燃機関の始動時に前記オクタン価推定手段を作動させる構成としてなる請求項1または2に記載の内燃機関の制御装置。筒内に付着したデポジットの付着量を前記指標に基いて推定するデポジット付着量推定手段を備え、前記推定時期設定手段は、前記オクタン価推定手段を作動させない時期に前記デポジット付着量推定手段を作動させてデポジットの付着量を推定する構成としてなる請求項1乃至3のうち何れか1項に記載の内燃機関の制御装置。前記燃料残量算出手段により算出された前記ノック発生時燃料残量を記憶する燃料残量記憶手段と、前記ノック発生時燃料残量の算出時と異なる運転状態を含む任意の運転状態において、前記筒内に供給される燃料の量と前記ノック発生時燃料残量の記憶値とに基いて前記ノック限界燃焼割合を算出するノック限界燃焼割合逆算手段と、少なくとも筒内圧と筒内温度とに基いて所定の積分処理を行うことにより、ノックが発生するクランク角をノック発生予測角として算出するノック発生角予測手段と、前記ノック発生予測角から前記ノック限界燃焼割合に対応するクランク角を減算することにより、ノックを発生させずに点火時期を進角させることが可能なクランク角の余裕度を点火進角余裕度として算出する点火進角余裕度算出手段と、を備えてなる請求項1乃至4のうち何れか1項に記載の内燃機関の制御装置。ところで、上述した従来技術では、ノックの発生点火時期を算出するために、筒内の未燃燃料量や、ノックの発生に必要な量の未燃燃料が存在する限界のクランク角等をパラメータとして用いている。これらのパラメータは、例えば内燃機関の運転状態負荷状態、燃料のオクタン価、筒内に付着したデポジットの付着量等によっても変化する。しかし、従来技術では、これらの要因による影響を十分に考慮していないので、ノック制御を正確に実行するのが難しいという問題がある。本発明は、上述のような課題を解決するためになされたもので、本発明の目的は、運転状態に影響されることなく、ノックの発生要因やノックの発生タイミングを簡単な構成によって正確に推定することができ、ノック回避制御等の精度を向上させることが可能な内燃機関の制御装置を提供することにある。第1の発明は、内燃機関のクランク角と筒内圧とに基いて燃焼行程中の燃焼質量割合を算出する機能を有し、ノックの発生に必要な量の未燃燃料が筒内に存在する限界の燃焼質量割合をノック限界燃焼割合として取得するノック限界燃焼割合取得手段と、燃焼行程中の燃焼質量割合が前記ノック限界燃焼割合と一致した状態で、ノックが実際に発生した場合における前記未燃燃料の量をノック発生時燃料残量として算出する手段であって、前記筒内に供給された燃料の量と前記ノック限界燃焼割合とに基いて前記ノック発生時燃料残量を算出する燃料残量算出手段と、燃焼行程中の燃焼質量割合が前記ノック限界燃焼割合と一致した状態で、ノックが発生しない場合の前記未燃燃料の量である基準残量が予め記憶された基準残量記憶手段と、前記ノック発生時燃料残量から前記基準残量を減算することにより両者の差分を指標として算出する指標算出手段と、前記指標に基いて燃料のオクタン価を推定するオクタン価推定手段と、前記オクタン価推定手段を作動させて燃料のオクタン価を推定する時期を内燃機関の運転状態に基いて設定する推定時期設定手段と、を備えることを特徴とする。第2の発明によると、前記推定時期設定手段は、前記指標が変化するときの速度が所定の急変判定値以上である場合に、前記オクタン価推定手段を作動させる構成としている。第3の発明によると、前記推定時期設定手段は、内燃機関の始動時に前記オクタン価推定手段を作動させる構成としている。第4の発明は、筒内に付着したデポジットの付着量を前記指標に基いて推定するデポジット付着量推定手段を備え、前記推定時期設定手段は、前記オクタン価推定手段を作動させない時期に前記デポジット付着量推定手段を作動させてデポジットの付着量を推定する構成としている。第5の発明は、前記燃料残量算出手段により算出された前記ノック発生時燃料残量を記憶する燃料残量記憶手段と、前記ノック発生時燃料残量の算出時と異なる運転状態を含む任意の運転状態において、前記筒内に供給される燃料の量と前記ノック発生時燃料残量の記憶値とに基いて前記ノック限界燃焼割合を算出するノック限界燃焼割合逆算手段と、少なくとも筒内圧と筒内温度とに基いて所定の積分処理を行うことにより、ノックが発生するクランク角をノック発生予測角として算出するノック発生角予測手段と、前記ノック発生予測角から前記ノック限界燃焼割合に対応するクランク角を減算することにより、ノックを発生させずに点火時期を進角させることが可能なクランク角の余裕度を点火進角余裕度として算出する点火進角余裕度算出手段と、を備える。第1の発明によれば、ノック限界燃焼割合での未燃燃料量であるノック発生時燃料残量を算出することができ、このノック発生時燃料残量とノックが発生しない場合の基準燃料残量との差分を指標として算出することができる。ここで、ノック発生時燃料残量は、内燃機関の負荷率が変化してもほぼ一定の値となるものであり、ノック発生時燃料残量により算出される指標も同様に、負荷率に影響されないパラメータとなる。このため、第1の発明によれば、負荷率の変化に影響されない指標に基いて、燃料のオクタン価を正確に推定することができる。そして、この推定結果に基いて各種の対応制御を的確に実行し、ノック回避制御等の精度を向上させることができる。また、指標は、負荷率に影響されないので、データマップや関数式により運転状態毎に設定する必要がない。これにより、制御に必要なデータ量を減らすことができ、また、個々のデータを運転状態に適合させるための適合工数を大幅に減少させることができる。第2の発明によれば、燃料のオクタン価は、給油等により急激に変化することが多いので、推定時期設定手段は、指標が急変した場合にのみ、当該指標に基いてオクタン価を推定する。これにより、例えばオクタン価を推定するタイミングを、その値が変化し易い時期に限定することができ、最小限の推定処理によって高い効果を得ることができる。第3の発明によれば、燃料のオクタン価は、内燃機関の停止中に給油等が行われることにより、内燃機関の始動時に変化していることが多い。このため、推定時期設定手段は、内燃機関の始動時に指標に基いてオクタン価を推定する。これにより、第2の発明と同様の効果が得られる上に、始動直後に燃料のオクタン価を速やかに推定することができるので、オクタン価が異常である場合の対応処理を迅速に行うことができる。第4の発明によれば、筒内のデポジット付着量は、内燃機関の始動後に燃焼が繰り返されることにより徐々に増加していく傾向がある。従って、推定時期設定手段は、デポジット付着量を推定するタイミングを、その値が変化し易い時期に限定することができ、最小限の推定処理によって高い効果を得ることができる。また、センサの追加等を行わなくても、同一の指標に基いて2種類の異なるパラメータオクタン価とデポジット付着量をそれぞれ個別に推定することができ、両者の推定処理を簡単な制御により適切に使い分けることができる。従って、ノックの発生要因をそれぞれ個別に検出することができ、個々の発生要因に対してそれぞれ適切な対応を行うことができる。第5の発明によれば、ある運転状態においてノック発生時燃料残量を一旦算出すれば、その値に基いて任意の運転状態におけるノック限界燃焼割合を正確かつ容易に算出することができる。そして、このノック限界燃焼割合に対応するノック限界クランク角と、ノック発生予測角とに基いて、ノックを発生させずに点火時期の進角が可能となる点火進角余裕度を算出することができる。即ち、ノックが発生する点火時期での筒内圧燃焼圧を計測及び推定しなくても、ノックが実際に発生する点火時期を容易に予測することができる。これにより、ノックを発生させない範囲で点火時期の進角量を最大化したり、ノックの発生を回避する場合の点火時期の遅角量を最小限に抑制えることができ、ノック回避制御等の精度を更に向上させることができる。また、ノック発生時燃料残量が運転状態に関係なく一定値となることを利用して、任意の運転状態での点火進角余裕度を算出するので、点火進角余裕度をデータマップや関数式により運転状態毎に設定する必要がない。これにより、制御に必要なデータ量を減らし、個々のデータを運転状態に適合させるための適合工数を大幅に減少させることができる。実施の形態1.[実施の形態1の構成]以下、図1乃至図5を参照しつつ、本発明の実施の形態1について説明する。図1は、本発明の実施の形態1のシステム構成を説明するための全体構成図である。本実施の形態のシステムは、多気筒型の内燃機関としてのエンジン10を備えている。なお、図1では、エンジン10の1気筒のみを例示している。また、本発明は、単気筒を含む任意の気筒数のエンジンに適用されるものである。図1に示すように、エンジン10の各気筒には、ピストン12により燃焼室14が画成されており、ピストン12はエンジンのクランク軸16に連結されている。また、エンジン10は、各気筒の燃焼室14内筒内に吸入空気を吸込む吸気通路18と、各気筒から排気ガスが排出される排気通路20とを備えている。吸気通路18には、アクセル開度等に基いて吸入空気量を調整する電子制御式のスロットルバルブ22が設けられている。排気通路20には、排気ガスを浄化する触媒24が設けられている。また、各気筒には、吸気ポートに燃料を噴射する燃料噴射弁26と、筒内の混合気に点火する点火プラグ28と、吸気ポートを筒内に対して開閉する吸気バルブ30と、排気ポートを筒内に対して開閉する排気バルブ32とが設けられている。また、本実施の形態のシステムは、センサ40~48を含むセンサ系統と、エンジン10の運転状態を制御するECU50とを備えている。まず、センサ系統について説明すると、クランク角センサ40は、クランク軸16の回転に同期した信号を出力するもので、エアフローセンサ42は吸入空気量を検出する。また、筒内圧センサ44は、筒内圧に対応する信号を出力する公知のセンサにより構成され、気筒毎にそれぞれ設けられている。吸気温センサ46は、吸入空気の温度を検出するもので、ノックセンサ48は、エンジンの振動状態に基いてノックの発生を検出する。この他にも、センサ系統には、エンジン制御に必要な各種のセンサスロットルバルブ22の開度を検出するスロットルセンサ、エンジン冷却水の温度を検出する水温センサ、排気空燃比を検出する空燃比センサ等が含まれている。ECU50は、例えばROM、RAM、不揮発性メモリ等を含む記憶回路を備えた演算処理装置により構成されている。ECU50の入力側には、センサ系統の各センサが接続されており、ECU50の出力側には、スロットルバルブ22、燃料噴射弁26、点火プラグ28等を含む各種のアクチュエータが接続されている。また、ECU50は、クランク角に応じて変化する各種のデータを、当該クランク角と共に時系列データとして記憶する機能を備えている。この時系列データには、各センサの出力値、及び当該出力値に基いて算出される各種の指標、パラメータ等が含まれる。そして、ECU50は、エンジンの運転情報をセンサ系統により検出しつつ、各アクチュエータを駆動して運転状態を制御する。具体的には、クランク角センサ40の出力に基いてエンジン回転数機関回転数とクランク角とを検出し、エアフローセンサ42の出力に基いて吸入空気量を算出する。また、吸入空気量、エンジン回転数等に基いてエンジンの負荷負荷率を算出する。そして、クランク角に基いて燃料噴射時期や点火時期を決定し、これらの時期が到来したときには、燃料噴射弁26や点火プラグ28を駆動する。これにより、筒内で混合気を燃焼させ、エンジンを運転することができる。実施の形態1の特徴本実施の形態では、燃焼行程中に筒内に残存する未燃燃料の量K値と、ノックの発生状態とに基いて燃料のオクタン価や筒内のデポジット付着量を推定すること特徴としている。以下、その具体的な処理について説明する。ノック限界燃焼割合MFBmaxの取得まず、最初の処理では、例えば点火時期を徐々に進角させつつ、ノックが実際に発生するクランク角を検出し、このクランク角での燃焼質量割合MFBMassFractionofBurnedfuelをノック限界燃焼割合MFBmaxとして取得する。ここで、ノック限界燃焼割合MFBmaxとは、ノックの発生に必要な量の未燃燃料が筒内に存在する限界上限の燃焼質量割合として定義される。筒内に残存する未燃燃料の量は、燃焼質量割合が高くなるほど減少するので、燃焼質量割合がある上限値以上に高い状態では、燃える燃料が無くなってノックが発生しなくなる。即ち、燃焼質量割合には、ノックが発生し得る上限値が存在しており、この上限値がノック限界燃焼割合MFBmaxに相当している。また、燃焼行程中の任意のクランク角θにおける燃焼質量割合MFBは、燃焼行程中の発熱量と相関があるパラメータPVκに基いて、下記1式により算出される。ここで、PVκは、筒内圧センサ44によりクランク角θで検出された筒内圧Pと、クランク角θでの筒内容積Vを比熱比κにより累乗した値Vκとを乗算したものである。また、PVκは、燃焼行程が開始されるクランク角θs例えば、爆発上死点を基準として、BTDC60°CAにおけるPVκの値であり、PVκは、燃焼行程が終了するクランク角θe例えば、ATDC60°CAにおけるPVκの値である。従って、点火時期を徐々に進角させることによりノックが発生したときに、この時点のクランク角をθとして前記1式の演算を実行すれば、ノック限界燃焼割合MFBmaxを取得することができる。ノック発生時燃料残量Krの算出次の処理では、燃焼質量割合MFBがノック限界燃焼割合MFBmaxと一致した状態でノックが実際に発生した場合のK値を、ノック発生時燃料残量Krとして算出する。即ち、ノック発生時燃料残量Krは、上記処理によりノック限界燃焼割合MFBmaxを取得した時点で筒内に残存する未燃燃料の量として定義される。そして、ノック発生時燃料残量Krは、1サイクル中に筒内に供給吸入または噴射された燃料の供給量Qと、ノック限界燃焼割合MFBmaxとに基いて、下記2式により算出される。Kr=Q×1-MFBmax2指標ΔKの算出一方、ECU50には、ノックが発生しない正常燃焼時のK値である基準残量Kthが予め記憶されている。基準残量Kthは、燃焼質量割合MFBがノック限界燃焼割合MFBmaxと一致した状態でノックが発生しない場合のK値に相当するもので、例えば正常燃焼時の点火時期、クランク角、筒内圧等に応じて変化するデータマップとして設定されている。そして、次の処理では、下記3式に示すように、ノック発生時燃料残量Krから基準残量Kthを減算することにより、両者の差分である指標ΔKを算出する。ΔK=Kr-Kth3オクタン価及びデポジット付着量の推定このように算出された指標ΔKは、図2及び図3に示すように、燃料のオクタン価及び筒内のデポジット付着量に対して一定の相関を有している。ここで、図2は、燃料のオクタン価と指標ΔKとの関係を示す特性線図であり、図3は、筒内に付着したデポジットの量と指標ΔKとの関係を示す特性線図である。具体的に述べると、指標ΔKは、燃料のオクタン価が低いほど増加する特性を有し、また、筒内のデポジット付着量が多くなるほど増加する特性を有している。これらの図に示す特性は、データマップ等としてECU50に予め記憶されている。従って、上記特性を利用すれば、指標ΔKに基いて燃料のオクタン価及び筒内のデポジット付着量を推定し、その推定結果に応じて適切な対応制御を実行することができる。具体例を挙げると、まず、図2に示すように、指標ΔKが所定のオクタン価判定値よりも大きい場合には、燃料のオクタン価が許容範囲から外れている異常判定ラインである閾値よりも低いと判定する。この場合には、オクタン価が許容範囲内である場合と比較してノックが発生し易くなるので、例えばオクタン価用の警告灯を点灯して使用燃料の交換等を促したり、エンジンの出力や点火時期の進角を通常よりも規制する等の対応制御を行う。なお、オクタン価判定値は、例えばオクタン価の許容範囲の下限値に対応して設定される。一方、図3に示すように、指標ΔKが所定のデポジット判定値よりも大きい場合には、筒内のデポジット付着量が許容範囲から外れている異常判定ラインである閾値よりも多いと判定する。この場合には、ノッキングやプレイグニッション等の異常燃焼が発生し易くなるので、例えばデポジット用の警告灯を点灯してエンジンの整備を促したり、エンジンの出力や点火時期の進角を規制する等の対応制御を行う。なお、デポジット判定値は、例えばデポジット付着量の許容範囲の下限値に対応するもので、オクタン価判定値と別個に設定される。推定時期の制御また、上述したオクタン価やデポジット付着量の推定処理判定処理は、それぞれの値が変化し易い時期に合わせて実行するのが好ましい。そこで、本実施の形態では、指標ΔKが急変した場合に指標ΔKに基いて燃料のオクタン価を推定し、指標ΔKが急変していない場合には、指標ΔKに基いてデポジット付着量を推定する構成としている。具体例を挙げると、まず、ECU50は、演算サイクル毎に算出される指標ΔKの最新値と、前回の演算サイクルで算出された指標ΔKの前回値との差分を指標変化量ΔKdとして算出する。この指標変化量ΔKdは、指標ΔKが変化するときの速度に対応している。そして、指標変化量ΔKdが所定の急変判定値Zよりも大きい場合には、指標ΔKが急変したものと判定し、指標変化量ΔKdが急変判定値Z以下の場合には、指標ΔKが急変していないものと判定する。なお、急変判定値Zは、実験等に基いて適宜設定する。ここで、燃料のオクタン価は、給油等により急激に変化することがあり、また、筒内のデポジット付着量は、燃焼の繰り返しにより徐々に増加していく傾向がある。従って、指標ΔKが急変した場合には、この変化が給油等によるオクタン価の変化に起因するものと判断されるので、指標ΔKに基いてオクタン価の推定判定を実行する。一方、指標ΔKが急変していない比較的緩やかに変化する場合には、この変化がデポジット付着量の増加に起因するものと判断されるので、指標ΔKに基いてデポジットの付着量を推定判定する。この構成によれば、例えばオクタン価やデポジット付着量を推定するタイミングを、これらのパラメータが変化し易い時期に限定することができ、最小限の推定処理によって高い効果を得ることができる。また、筒内圧センサ44以外のセンサを追加しなくても、同一の指標ΔKに基いて2種類の異なるパラメータをそれぞれ個別に推定することができ、両者の推定処理を簡単な制御により適切に使い分けることができる。従って、ノックの発生要因をそれぞれ個別に検出することができ、個々の発生要因に対してそれぞれ適切な対応を行うことができる。次に、図4を参照して、指標ΔKに基いた推定処理の効果について説明する。図4は、ノック限界燃焼割合MFBmax及びノック発生時燃料残量Krの特性を例示した説明図である。この図において、θ90,θ90は、それぞれ燃焼質量割合が90、92となるときのクランク角を表している。まず、図4aについて説明すると、この図は、例えば負荷率充填効率KL=40において、ノック限界燃焼割合MFBmax=90となる運転状態を示している。この運転状態において、負荷率KLが60に増加した場合には、図4bに示すように、燃料噴射量が増加するので、燃焼質量割合が90よりも高い状態であっても、ノックが発生し得る。この場合、ノック限界燃焼割合MFBmaxは、図4cに示すように、例えば負荷率KLに応じて92に上昇している。このように、ノック限界燃焼割合MFBmax及び当該燃焼割合に対応するクランク角は、負荷率KLによって変化する。従って、これらの値を指標としてノック回避制御や前記推定処理を行う場合には、負荷率KLに応じて指標を補正する処理が必要となる。具体的には、例えばノック限界燃焼割合MFBmaxを運転状態毎に異なるデータマップや関数式として作成し、運転状態毎に異なる個々のデータをそれぞれ適合させる作業が必要となる。これに対し、ノック限界燃焼割合MFBmaxにおける未燃燃料の量、即ち、ノック発生時燃料残量Krは、図4a,cに示すように、負荷率KLが変化しても、ほぼ一定の値となる。また、ノック発生時燃料残量Krにより算出される指標ΔKも同様に、負荷率KLに影響されないパラメータとなる。このため、本実施の形態によれば、負荷率KLの変化に影響されない指標ΔKに基いて、燃料のオクタン価や筒内のデポジット付着量を正確に推定することができる。そして、これらの推定結果に基いて各種の対応制御を的確に実行し、ノック回避制御等の精度を向上させることができる。また、指標ΔKノック発生時燃料残量Krは負荷率KLに影響されないので、データマップや関数式により運転状態毎に設定する必要がない。これにより、制御に必要なデータ量を減らすことができ、また、個々のデータを運転状態に適合させるための適合工数を大幅に減少させることができる。[実施の形態1を実現するための具体的な処理]次に、図5を参照して、上述した制御を実現するための具体的な処理について説明する。図5は、本発明の実施の形態1において、ECUにより実行される制御のフローチャートである。この図に示すルーチンは、エンジンの運転中に繰返し実行されるものとする。図5に示すルーチンでは、まず、ステップ100において、エンジンの運転状態エンジン回転数、負荷率を推定処理に適した所定の値に設定制御する。次に、ステップ102では、点火時期を徐々に進角させてノックを意図的に発生させ、ノックセンサ48によりノックの発生を検出する。そして、ステップ104では、ノックを検出した時点の燃焼割合をノック限界燃焼割合MFBmaxとして取得する。また、ステップ106では、1サイクル中の燃料供給量Qとノック限界燃焼割合MFBmaxとに基いて、前記2式によりノック発生時燃料残量Krを算出し、ステップ108では、算出したノック発生時燃料残量KrをECU50に記憶する。次に、ステップ110では、前記ステップ102でノックを発生させていたので、ノック回避制御を実行する。このノック回避制御としては、点火時期の遅角等を含む公知の制御を用いてもよいし、または、後述する実施の形態3で説明する制御を用いてもよい。次に、ステップ112では、ノック発生時燃料残量Krと基準残量Kthとに基いて、前記3式により指標ΔKを算出する。そして、ステップ114では、前述の手法により、指標ΔKが急変したか否かを判定する。ここで、ステップ114の判定が成立した場合には、給油等により指標ΔKが急変したと判断されるので、ステップ116では、制御状態を燃焼異常判定モードに設定する。そして、ステップ118では、指標ΔKと燃料のオクタン価との関係を示すデータマップ図2を参照し、ステップ120では、オクタン価が前記閾値未満であるか否か、即ち、指標ΔKがオクタン価判定値よりも大きいか否かを判定する。この判定が成立した場合には、ステップ122において、オクタン価用の警告灯を点灯し、必要に応じて他の対応制御を実行する。また、ステップ120の判定が不成立の場合には、そのまま本ルーチンを終了する。一方、ステップ114の判定が不成立の場合には、筒内のデポジット付着量が増大することにより、指標ΔKが緩やかに増加したと判断される。そこで、この場合には、ステップ124において、制御状態をデポジット判定モードに設定し、ステップ126では、指標ΔKと筒内のデポジット付着量との関係を示すデータマップ図3を参照する。そして、ステップ128では、デポジットの付着量が閾値よりも大きいか否か、即ち、指標ΔKがデポジット判定値よりも大きいか否かを判定する。この判定が成立した場合には、ステップ130において、デポジット用の警告灯を点灯し、必要に応じて他の対応制御を実行する。また、ステップ128の判定が不成立の場合には、そのまま本ルーチンを終了する。なお、前記実施の形態1では、図5中のステップ104が請求項1におけるノック限界燃焼割合取得手段の具体例を示し、ステップ106が燃料残量算出手段の具体例を示している。また、ステップ112は指標算出手段の具体例を示し、ステップ120はオクタン価推定手段の具体例を示している。さらに、ステップ114は、請求項1,2,4における推定時期設定手段の具体例を示し、ステップ128は、請求項4におけるデポジット付着量推定手段の具体例を示している。一方、ECU50は、請求項1における基準残量記憶手段の具体例を示している。実施の形態2.次に、図6を参照して、本発明の実施の形態2について説明する。本実施の形態では、前記実施の形態1と同様の構成及び制御において、エンジンの始動時に燃料のオクタン価を推定し、エンジンの始動後にデポジット付着量を推定することを特徴としている。なお、本実施の形態では、実施の形態1と同一の構成要素に同一の符号を付し、その説明を省略するものとする。[実施の形態2の特徴]前述したように、オクタン価やデポジット付着量の推定処理判定処理は、それぞれの値が変化し易い時期に合わせて実行するのが好ましい。この点について、実施の形態1と異なる観点から考察すると、燃料のオクタン価は、エンジンの停止中に給油等が行われることにより、エンジンの始動時に変化していることが多い。また、筒内のデポジット付着量は、エンジンの始動時に突然増加するものではなく、始動後にある程度の時間が経過した時点例えば、暖機がある程度進行した時点で増加が目立つようになる。このため、本実施の形態では、エンジンの始動時に指標ΔKに基いて燃料のオクタン価を推定し、始動後に指標ΔKに基いて筒内のデポジット付着量を推定する構成としている。ここで、始動時とは、例えばエンジンのクランキング中、及びエンジンの自立運転が開始されてから所定の時間が経過するまでの期間を意味している。また、始動後とは、前記所定の時間が経過した後を意味している。前記所定の時間は、例えば指標ΔKに基いて燃料のオクタン価を推定するのに必要な時間として設定される。このように構成される本実施の形態でも、前記実施の形態1とほぼ同様の作用効果を得ることができる。特に、本実施の形態では、エンジンの始動直後に燃料のオクタン価を速やかに推定することができるので、オクタン価が異常である場合の対応処理を迅速に行うことができる。[実施の形態2を実現するための具体的な処理]次に、図6を参照して、上述した制御を実現するための具体的な処理について説明する。図6は、本発明の実施の形態2において、ECUにより実行される制御のフローチャートである。この図に示すルーチンでは、ステップ214を除いて、実施の形態1図5と同様の処理を実行する。また、ステップ214では、上述の方法によりエンジンが始動時であるか否かを判定する。そして、この判定が成立した場合には、ステップ216~222において、オクタン価の推定処理を実行し、ステップ214の判定が不成立の場合には、ステップ224~230において、デポジット付着量の推定処理を実行する。なお、前記実施の形態2では、図6中のステップ214が請求項1,3,4における推定時期設定手段の具体例を示している。その他の手段の具体例については、実施の形態1と同様である。実施の形態3.次に、図7及び図8を参照して、本発明の実施の形態3について説明する。本実施の形態では、前記実施の形態1または2と同様の構成及び制御に加えて、ノック発生時燃料残量Kr等に基いてノックの発生時期を予測し、ノック回避制御を実行することを特徴としている。なお、本実施の形態では、実施の形態1と同一の構成要素に同一の符号を付し、その説明を省略するものとする。[実施の形態3の特徴]前記図4において説明したように、ノック発生時燃料残量Krは、負荷率KLによって変動することがない。このため、本実施の形態では、現在の点火時期におけるノックの発生し易さ、及びノックを発生させずに現在の点火時期を進角させることが可能な量を、ノック発生時燃料残量Kr等に基いて推定する構成としている。以下、この推定処理について具体的に説明する。まず、図7は、本発明の実施の形態3において、LivengoodWu積分式による積分値と、ノック限界燃焼割合MFBmaxと、ノックの発生し易さとの関係を示す説明図である。この図において、ノック限界クランク角θmfbmaxとは、ノック限界燃焼割合MFBmaxに対応するクランク角であり、燃焼質量割合がノック限界燃焼割合MFBmaxと等しくなるクランク角として定義される。また、LivengoodWu積分式とは、少なくとも筒内圧と筒内温度とに基いて所定の積分処理を行うことにより、ノックが発生するクランク角を予測する公知の予測モデルである。この予測モデルについては、例えば特開2004-332584号公報、特開2008-95593号公報、特開2010-84621号公報等に記載されているので、詳細な説明は省略する。LivengoodWu積分式の積分値が1となるクランク角では、ノックの発生が予測される。以下の説明では、上記積分値が1となるクランク角をノック発生予測角θknockと称するものとする。図7には、点火時期が異なる3つのサイクルA,B,Cが例示されている。各サイクルの特性線は、点火時期を進角させるほど、特性線が急激に立ち上がる特性、即ち、ノック発生予測角θknockが小さくなる進角される特性を有している。また、例えばサイクルA,Bでは、上記積分値が1となるノック発生予測角θknockがノック限界クランク角θmfbmax以下となっている。このため、サイクルA,Bでは、ノックが発生し得る燃焼質量割合の領域において、クランク角がノック予測角θknockに到達することになる。このことは、サイクルA,Bにおいて、現在の点火時期でもノックが発生する可能性があり、ノックの発生までにクランク角の余裕がない点火時期を進角させる余裕がないことを意味している。一方、例えばサイクルCでは、ノック発生予測角θknockがノック限界クランク角θmfbmaxよりも大きくなっている。即ち、サイクルCでは、ノックが発生しない燃焼質量割合の領域において、クランク角がノック予測角θknockに到達することになる。また、サイクルCにおいて、点火時期を進角させた場合には、その進角量が大きくなるほど、ノック発生予測角θknockがノック限界クランク角θmfbmaxに接近し、両者が一致した時点でノックが発生する。このことは、サイクルCにおいて、ノックが発生するまでにクランク角の余裕度点火時期を進角させる余裕度があることを意味している。この余裕度を点火進角余裕度Δθと定義すれば、点火進角余裕度Δθは、図7に示すように、ノック発生予測角θknockとノック限界クランク角θmfbmaxとに基いて、下記4式により算出される。サイクルCのように、点火進角余裕度Δθが正となるサイクルでは、ノックを発生させずに点火時期をΔθ分だけ進角させることができる。Δθ=θknock-θmfbmax4上記4式において、ノック発生予測角θknockは、前述したようにLivengoodWu積分式の積分値が1となるクランク角として求めることができる。また、ノック限界クランク角θmfbmaxは、予め記憶したデータマップ、関数式等に基いて、燃焼質量割合がノック限界燃焼割合MFBmaxと一致するクランク角として求められるものであり、このノック限界燃焼割合MFBmaxは、実施の形態1,2で算出されたノック発生時燃料残量Krと、筒内の燃料供給量Qとに基いて、下記5式により算出される。MFBmax=1-Kr/Q5ここで、上記5式は、前記2式を変形したものである。即ち、ノック発生時燃料残量Krは、前記2式を算出した時点と比較してエンジンの運転状態エンジン回転数や負荷率が変化したとしても、一定の値に保持される。従って、本実施の形態では、前記2式によりノック発生時燃料残量Krを算出した時点で、その値を記憶しておく。そして、運転状態が変化した場合でも、当該運転状態での燃料供給量Qとノック発生時燃料残量Krの記憶値とに基いて上記5式の演算を行うことにより、新たな運転状態に対応するノック限界燃焼割合MFBmaxを算出逆算する。このように、本実施の形態によれば、ある運転状態においてノック発生時燃料残量Krを一旦算出すれば、その値に基いて任意の運転状態におけるノック限界燃焼割合MFBmaxを正確かつ容易に算出することができる。そして、このノック限界燃焼割合MFBmaxに対応するノック限界クランク角θmfbmaxと、ノック発生予測角θknockとに基いて、ノックを発生させずに現在の点火時期を進角させることが可能な最大の進角量である点火進角余裕度Δθを算出することができる。即ち、本実施の形態では、例えばノックが発生する点火時期での筒内圧燃焼圧を計測及び推定しなくても、ノックが実際に発生する点火時期を容易に予測することができる。これにより、ノックを発生させない範囲で点火時期の進角量を最大化したり、ノックの発生を回避する場合の点火時期の遅角量を最小限に抑制えることができ、ノックを回避しつつ点火時期の制御を適切に行うことができる。従って、実施の形態1,2の作用効果に加えて、ノック回避制御等の精度を更に向上させることができる。しかも、ノック発生時燃料残量Krが運転状態に関係なく一定値となることを利用して、任意の運転状態での点火進角余裕度Δθを算出するので、点火進角余裕度Δθをデータマップや関数式により運転状態毎に設定する必要がない。これにより、制御に必要なデータ量を減らして制御を簡略化することができる。また、個々のデータを運転状態に適合させるための適合工数を大幅に減少させることができる。[実施の形態3を実現するための具体的な処理]次に、図8を参照して、上述した制御を実現するための具体的な処理について説明する。図8は、本発明の実施の形態3において、ECUにより実行される制御のフローチャートである。この図に示すルーチンは、実施の形態1,2図5,図6で説明したルーチンのステップ110または210において実行されるものである。そして、図8に示すルーチンにおいて、まず、ステップ300では、エンジンの運転状態を、前記ステップ106または206でノック発生時燃料残量Krを算出したときと異なる任意の運転状態エンジン回転数または負荷率に変更する。次に、ステップ302では、前記ステップ108または208で記憶しておいたノック発生時燃料残量Kr等に基いて前記5式の演算を実行し、変更された運転状態に対応するノック限界燃焼割合MFBmaxを算出する。そして、ステップ304では、このノック限界燃焼割合MFBmaxに対応するノック限界クランク角θmfbmaxを算出する。また、ステップ306では、LivengoodWu積分式の積分値が1となるノック発生予測角θknockを算出し、ステップ308では、前記4式により点火進角余裕度Δθを算出する。次に、ステップ310では、点火進角余裕度Δθが零よりも大きいか否かを判定し、この判定が成立した場合には、ステップ312において、現在の点火時期をΔθ分だけ進角できるものと予測し、ステップ314において、点火時期を実際に進角させる。そして、ステップ316では、点火時期の制御を終了するタイミングであるか否かを判定し、この判定が成立した場合には、本ルーチンを終了する。また、制御を終了しない場合には、ステップ302に戻ってステップ302~318の処理を繰り返す。一方、ステップ310の判定が不成立の場合には、ステップ318において、ノックが発生するものと予測し、必要に応じて点火時期の遅角等を含む対応制御を実行する。そして、ステップ300に戻ってステップ300~318の処理を繰り返す。なお、前記実施の形態3では、図5または図6中のステップ108,208が請求項5における燃料残量記憶手段の具体例を示し、図8中のステップ302がノック限界燃焼割合逆算手段の具体例を示している。また、ステップ306はノック発生角予測手段の具体例を示し、ステップ308は点火進角余裕度算出手段の具体例を示している。また、前記実施の形態1~3では、それぞれの構成を個別に説明したが、本発明はこれに限らず、例えば実施の形態1~3のうち何れか2つまたは3つの構成を組合わせてもよい。即ち、実施の形態1,2を組合わせることにより、指標ΔKの急変時及びエンジンの始動時に燃料のオクタン価を推定し、それ以外の場合には筒内のデポジット付着量を推定する構成としてもよい。また、実施の形態1,2の何れか一方の構成、または両者を組合わせた構成において、実施の形態3で説明した制御を実行する構成としてもよい。また、前記実施の形態1,2では、オクタン価とデポジット付着量の両方を推定するものとしたが、本発明はこれに限らず、例えば指標ΔKの急変時やエンジンの始動時にオクタン価のみを推定し、デポジット付着量の推定処理は実行しない構成としてもよい。また、前記実施の形態1,2では、オクタン価やデポジット付着量の推定処理を判定値閾値との比較により行うものとした。しかし、本発明はこれに限らず、指標ΔKに基いて図2及び図3に示す特性データを参照することにより、オクタン価及びデポジット付着量を連続的に変化する値として推定してもよい。また、前記実施の形態では、燃料噴射弁26により吸気ポート内に燃料を噴射するエンジンを例に挙げて説明した。しかし、本発明はこれに限らず、燃料を筒内に直接噴射する筒内噴射型のエンジンに適用してもよい。"