(57)【特許請求の範囲】
【請求項１】
機関運転状態に基づいて最進角点火時期及び最遅角点火時期を算出するとともに、それら最進角点火時期及び最遅角点火時期の差である最大遅角量を算出し、ノッキング発生の有無に応じて常時更新されるノッキング補正値と、同ノッキング補正値が所定値を超えたときに更新されるノッキング学習値とを前記最大遅角量から減算して前記最進角点火時期からの点火時期遅角量を算出することで要求点火時期を設定する内燃機関の点火時期制御装置において、
デポジットの付着度合に応じて更新されるデポジット学習値に基づいて前記最遅角点火時期を補正する最遅角点火時期補正手段と、
デポジットの付着が全く無いときに対応する第１最遅角点火時期と、デポジットの付着が想定される最大量となったときに対応する第２最遅角点火時期とを機関運転状態に基づいてそれぞれ算出し、それら第１最遅角点火時期及び第２最遅角点火時期の差である遅角幅とデポジットの付着度合に応じて変化するノッキングの発生頻度に対応して更新される比率との乗算値を前記デポジット学習値として設定するデポジット学習値設定手段と、
前記遅角幅が所定値以上になる機関運転状態での前記ノッキング学習値及び前記デポジット学習値の更新態様を、前記ノッキング学習値の更新方向に応じて変更する変更手段とを備える
ことを特徴とする内燃機関の点火時期制御装置。
【請求項２】
前記変更手段は、前記遅角幅が所定値以上になる機関運転状態において、前記ノッキング学習値が進角側に更新されるときには、その進角側へのノッキング学習値の更新を禁止して前記デポジット学習値の更新のみを行う
請求項１に記載の内燃機関の点火時期制御装置。
【請求項３】
前記変更手段は、前記遅角幅が所定値以上になる機関運転状態において、前記ノッキング学習値が遅角側に更新されるときには、その遅角側へのノッキング学習値の更新及び前記デポジット学習値の更新を行うとともに、ノッキング学習値の遅角側への更新量を、前記遅角幅が所定値未満になる機関運転状態における更新量よりも少なくする
請求項１または２に記載の内燃機関の点火時期制御装置。
【請求項４】
前記点火時期遅角量として、前記要求点火時期が前記最進角点火時期よりも進角側の時期に設定される値が算出されたときには、その算出された値に代えて、前記ノッキング補正値を前記点火時期遅角量として設定する
請求項１〜３のいずれか１項に記載の内燃機関の点火時期制御装置。
【請求項５】
前記点火時期遅角量として、前記要求点火時期が前記最進角点火時期よりも進角側の時期に設定される値が算出されたときには、その算出された値に代えて、前記ノッキング補正値を所定の分だけ遅角側に変更した値を前記点火時期遅角量として設定する
請求項１〜３のいずれか１項に記載の内燃機関の点火時期制御装置。
【請求項６】
前記点火時期遅角量として、前記要求点火時期が前記最進角点火時期よりも進角側の時期に設定される値が算出されたときには、前記最進角点火時期を遅角側に補正する
請求項１〜３のいずれか１項に記載の内燃機関の点火時期制御装置。
【請求項７】
前記最進角点火時期の遅角側への補正値に基づき、前記最進角点火時期の設定マップを補正する
請求項６に記載の内燃機関の点火時期制御装置。
【請求項８】
遅角側に補正された前記最進角点火時期と前記要求点火時期の差が所定値を超えたときには、前記デポジット学習値に基づいて補正される前記最遅角点火時期を前記差に基づいて遅角側に補正する
請求項６に記載の内燃機関の点火時期制御装置。
【請求項９】
前記点火時期遅角量として、前記要求点火時期が前記最進角点火時期よりも進角側の時期に設定される値が算出されるときには、前記ノッキング学習値の更新を禁止する
請求項４〜８のいずれか１項に記載の内燃機関の点火時期制御装置。
【請求項１０】
前記点火時期遅角量として、前記要求点火時期が前記最進角点火時期よりも進角側の時期に設定される値が算出されたときには、前記要求点火時期が前記最進角点火時期よりも遅角側の時期に設定されるように、前記点火時期遅角量を制限する
請求項４〜９のいずれか１項に記載の内燃機関の点火時期制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、内燃機関の点火時期制御装置に関するものである。
【背景技術】
【０００２】
一般に、内燃機関では、ノックセンサによってノッキングの発生状態を検出し、その検出結果に応じて点火時期を調整するノッキング制御が行われている。このノッキング制御では、ノッキングの発生頻度が高いときには点火時期を遅角させ、低いときには点火時期を進角させることで、ノッキングの発生を抑制するようにしている。
【０００３】
例えば、ノッキングの抑制及び機関出力の確保を両立しうる要求点火時期を設定する際には、次のような処理が行われる。まず、設定可能な最進角点火時期と最遅角点火時期とが機関運転状態に基づいて設定され、それら最進角点火時期と最遅角点火時期との差である最大遅角量が算出される。そして、ノッキング発生の有無に応じて常に更新されるノッキング補正値と、このノッキング補正値がある程度大きくなると更新される値であって点火時期の補正傾向が反映されるノッキング学習値とが上記最大遅角量から減算されることにより、現在のノッキング発生状態に応じた点火時期遅角量が算出される。そして、その点火時期遅角量の分だけ上記最進角点火時期を遅角した時期が要求点火時期として設定される。
【０００４】
ところで、内燃機関の吸気ポートや吸気バルブ、あるいはピストンなどには、未燃燃料やブローバイガス、潤滑油等に由来するデポジットが時間経過とともに次第に付着していく。こうしたデポジットの付着量が増大すると、燃焼室の実質的な容積が減少して燃焼時の筒内圧力が増大すること等に起因してノッキングは発生し易くなる。
【０００５】
こうしたデポジットの付着、いわば内燃機関の経年変化がノッキングの発生に与える影響を補償するために、特許文献１に記載の装置では、デポジットの付着度合に応じて変化するノッキングの発生頻度に対応して更新されるデポジット学習値に基づいて上記最遅角点火時期を補正するようにしている。
【０００６】
また、機関運転状態が低負荷状態のときには、高負荷状態のときと比較して、デポジットの付着に起因する最遅角点火時期の遅角要求は大きくなる傾向があるため、上記文献に記載の装置では、ノッキング学習値の更新量とデポジット学習値の更新量とを機関負荷に応じて変化させるようにしている。例えば、機関負荷が低くなるほど、ノッキング学習値の更新量よりもデポジット学習値の更新量の方が大きくなるようにしている。
【特許文献１】特開２００５−１４７１１２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
上記ノッキング学習値は、点火時期の補正傾向を示すものであり、その値は極力変動することなく安定していることが望ましい。こうしたノッキング学習値の安定化は、機関運転状態が種々変化してノッキング学習値が負荷領域全体に対応した平均的な値に収束することで行われる。
【０００８】
しかし、上記文献に記載の装置によるように、機関負荷が低くなるほど、ノッキング学習値の更新量よりもデポジット学習値の更新量の方が大きくなるようにする、即ち機関負荷が低くなるほどノッキング学習値の更新量が少なくなるようにすると、機関運転状態が高負荷状態から低負荷状態に変化したときのノッキング学習値の更新速度が遅くなる。そのため、ノッキング学習値が安定化するまでの時間は長くなってしまうといった不都合が発生するおそれがある。
【０００９】
この発明はこうした事情に鑑みてなされたものであって、その目的は、ノッキング学習値をより好適に安定させることのできる内燃機関の点火時期制御装置を提供することにある。
【課題を解決するための手段】
【００１０】
上記目的を達成するための手段及びその作用効果について以下に記載する。
請求項１に記載の発明は、機関運転状態に基づいて最進角点火時期及び最遅角点火時期を算出するとともに、それら最進角点火時期及び最遅角点火時期の差である最大遅角量を算出し、ノッキング発生の有無に応じて常時更新されるノッキング補正値と、同ノッキング補正値が所定値を超えたときに更新されるノッキング学習値とを前記最大遅角量から減算して前記最進角点火時期からの点火時期遅角量を算出することで要求点火時期を設定する内燃機関の点火時期制御装置において、デポジットの付着度合に応じて更新されるデポジット学習値に基づいて前記最遅角点火時期を補正する最遅角点火時期補正手段と、デポジットの付着が全く無いときに対応する第１最遅角点火時期と、デポジットの付着が想定される最大量となったときに対応する第２最遅角点火時期とを機関運転状態に基づいてそれぞれ算出し、それら第１最遅角点火時期及び第２最遅角点火時期の差である遅角幅とデポジットの付着度合に応じて変化するノッキングの発生頻度に対応して更新される比率との乗算値を前記デポジット学習値として設定するデポジット学習値設定手段と、前記遅角幅が所定値以上になる機関運転状態での前記ノッキング学習値及び前記デポジット学習値の更新態様を、前記ノッキング学習値の更新方向に応じて変更する変更手段とを備えることをその要旨とする。
【００１１】
同構成では、ノッキング発生の有無に応じて常時更新される上記ノッキング補正値が所定値を超えると上記ノッキング学習値は更新される。また、機関運転状態に基づいて算出される上記第１最遅角点火時期及び第２最遅角点火時期についてそれらの差である遅角幅とデポジットの付着度合に応じて変化するノッキングの発生頻度に対応して更新される比率とに基づいて上記デポジット学習値は更新される。
【００１２】
そして、上記遅角幅が所定値以上になる機関運転状態、すなわちデポジットの付着に起因する最遅角点火時期の遅角要求が大きくなる低負荷状態等においては、ノッキング学習値が進角側に更新されるか遅角側に更新されるかに応じて、ノッキング学習値及びデポジット学習値の更新態様が変更される。
【００１３】
このように、上記遅角幅が所定値以上になる機関運転状態では、ノッキング学習値の更新方向に応じて同ノッキング学習値及びデポジット学習値の更新態様が変更されることにより、そうした機関運転状態におけるノッキング学習値及びデポジット学習値の更新量をより適切に調整することができるようになり、これによりノッキング学習値をより好適に安定させることができるようになる。
【００１４】
請求項２に記載の発明は、請求項１に記載の内燃機関の点火時期制御装置において、前記変更手段は、前記遅角幅が所定値以上になる機関運転状態において、前記ノッキング学習値が進角側に更新されるときには、その進角側へのノッキング学習値の更新を禁止して前記デポジット学習値の更新のみを行うことをその要旨とする。
【００１５】
同構成によれば、上記遅角幅が所定値未満となる機関運転状態においては、ノッキング学習値が更新される。一方、遅角幅が所定値以上となる機関運転状態に移行したときにあって、ノッキング学習値が進角側に更新されるときには、その進角側へのノッキング学習値の更新が禁止されることにより、同ノッキング学習値は、遅角幅が所定値未満となる機関運転状態において更新されたノッキング学習値のまま保持される。このように、遅角幅が所定値以上となる機関運転状態においてノッキング学習値が進角側に更新されるときにはその更新が禁止されることにより、ノッキング学習値は変動することなく安定するようになる。なお、遅角幅が所定値以上となる機関運転状態にあって、ノッキング学習値の更新が禁止されるときでも、デポジット学習値の更新は行われることにより、上記最遅角点火時期は、遅角幅が所定値以上となる機関運転状態に対応した時期に設定される。従って、ノッキング学習値の更新を禁止しても、適切な要求点火時期を設定することができる。
【００１６】
請求項３に記載の発明は、請求項１または２に記載の内燃機関の点火時期制御装置において、前記変更手段は、前記遅角幅が所定値以上になる機関運転状態において、前記ノッキング学習値が遅角側に更新されるときには、その遅角側へのノッキング学習値の更新及び前記デポジット学習値の更新を行うとともに、ノッキング学習値の遅角側への更新量を、前記遅角幅が所定値未満になる機関運転状態における更新量よりも少なくすることをその要旨とする。
【００１７】
遅角幅が所定値以上になる機関運転状態において、ノッキング学習値が遅角側に更新されるときにも、その遅角側へのノッキング学習値の更新を禁止するようにすると、ノッキングが発生した場合、要求点火時期の遅角側への補正が、ノッキング補正値とデポジット学習値とによって行われることになる。ここで、ノッキング補正値が過度に大きくなると、点火時期のフィードバック補正が不安定になるため、通常、ノッキング補正値が所定値を超えると、予め設定された更新量にて同ノッキング補正値は更新される。従って、ノッキング補正値が取り得る値は、そうした所定値にて制限されることになり、同ノッキング補正値による点火時期の遅角には限界がある。また、デポジット学習値によって最大限まで遅角側に補正された最遅角点火時期は、上記第２最遅角点火時期であり、この第２最遅角点火時期を超えてさらに最遅角点火時期を遅角側に補正することはできない。そのため、デポジット学習値による点火時期の遅角にも限界がある。
【００１８】
そこで、同構成では、遅角幅が所定値以上になる機関運転状態において、ノッキング学習値が遅角側に更新されるときに、その遅角側へのノッキング学習値の更新を禁止するのではなく、許可するようにしている。そのため、ノッキングが発生しているときには、ノッキング補正値及びデポジット学習値に加え、さらにノッキング学習値による点火時期の遅角も行うことができるようになり、これによりノッキングの発生が適切に抑えることができるようになる。また、同構成では、遅角幅が所定値以上になる機関運転状態において、ノッキング学習値が遅角側に更新されるときには、そのノッキング学習値の遅角側への更新量を、上記遅角幅が所定値未満になる機関運転状態における更新量よりも少なくするようにしている。そのため、ノッキング学習値を更新するようにしても、その値の変動は比較的抑えられるようになり、当該ノッキング学習値の安定化を好適に図ることができるようになる。
【００１９】
他方、遅角幅が所定値未満になる機関運転状態においてノッキング学習値が進角側に大きくされていた場合、遅角幅が所定値以上になる機関運転状態に移行したときには、要求点火時期が上記最進角点火時期よりも進角側の時期に設定されるおそれがあり、この場合にはノッキングが発生してしまう可能性がある。こうして発生したノッキングは、その後、上記ノッキング制御による要求点火時期の遅角補正によって抑制されるのであるが、その補正値が十分な量に達するまでは、ノッキングを十分に抑制することができない。特に、遅角幅が所定値以上になる機関運転状態において、ノッキング学習値が遅角側に更新されるときにはその更新量を少なくする場合には、要求点火時期の遅角側への変更速度が遅くなるため、ノッキングが抑制されるまでの時間はさらに長くなってしまう。こうした不都合の発生は、以下の発明によって抑えることができる。
【００２０】
まず、請求項４に記載の発明は、請求項１〜３のいずれか１項に記載の内燃機関の点火時期制御装置において、前記点火時期遅角量として、前記要求点火時期が前記最進角点火時期よりも進角側の時期に設定される値が算出されたときには、その算出された値に代えて、前記ノッキング補正値を前記点火時期遅角量として設定することをその要旨とする。
【００２１】
同構成によれば、点火時期遅角量として、要求点火時期が最進角点火時期よりも進角側の時期に設定される値が算出されたときには、そのときのノッキングの発生状態が速やかに反映されるノッキング補正値の分だけ最進角点火時期を遅角した時期が要求点火時期として設定される。そのため、要求点火時期は好適に、且つ速やかに遅角されるようになり、ノッキングの発生を速やかに抑えることができるようになる。
【００２２】
また、請求項５に記載の発明は、請求項１〜３のいずれか１項に記載の内燃機関の点火時期制御装置において、前記点火時期遅角量として、前記要求点火時期が前記最進角点火時期よりも進角側の時期に設定される値が算出されたときには、その算出された値に代えて、前記ノッキング補正値を所定の分だけ遅角側に変更した値を前記点火時期遅角量として設定することをその要旨とする。
【００２３】
点火時期遅角量として、要求点火時期が最進角点火時期よりも進角側の時期に設定される値が算出されたときには、ノッキング補正値の分だけ最進角点火時期を遅角した時期を要求点火時期として設定するようにしても、その設定直後においては点火時期の遅角量が不足するおそれがある。この点、同構成によれば、ノッキング補正値をさらに所定の分だけ遅角側に変更した値の分だけ最進角点火時期を遅角した時期が要求点火時期として設定されることにより、そのように要求点火時期が設定された直後の点火時期の遅角量をさらに大きくすることができ、これより、ノッキングの発生をより速やかに抑えることができるようになる。
【００２４】
また、請求項６に記載の発明は、請求項１〜３のいずれか１項に記載の内燃機関の点火時期制御装置において、前記点火時期遅角量として、前記要求点火時期が前記最進角点火時期よりも進角側の時期に設定される値が算出されたときには、前記最進角点火時期を遅角側に補正することをその要旨とする。
【００２５】
同構成によれば、点火時期遅角量として、要求点火時期が最進角点火時期よりも進角側の時期に設定される値が算出されるときには、最進角点火時期が遅角側に補正されることにより、要求点火時期は速やかに遅角されるようになり、ノッキングの発生が速やかに抑えられるようになる。
【００２６】
また、このように最進角点火時期を遅角側に補正する場合には、請求項７に記載の発明によるように、前記最進角点火時期の遅角側への補正値に基づき、前記最進角点火時期の設定マップを補正する、といった構成を採用することにより、機関運転状態が変化したときに、最進角点火時期を予め遅角側に補正しておくことができる。そのため、機関運転状態が変化したときのノッキングの発生を好適に抑えることができる。
【００２７】
また、そのように最進角点火時期を遅角側に補正する場合には、請求項８に記載の発明によるように、遅角側に補正された前記最進角点火時期と前記要求点火時期の差が所定値を超えたときには、前記デポジット学習値に基づいて補正される前記最遅角点火時期を前記差に基づいて遅角側に補正する、といった構成を採用することもできる。この場合には、遅角側に補正された最進角点火時期と現在設定されている要求点火時期の差が所定値を超えており、同最進角点火時期に対する点火時期遅角量が大きくなっているときには、最遅角点火時期がさらに遅角側に補正されることにより、ノッキングの発生をより確実に抑えることができる。また、機関運転状態が変化したときでも、最遅角点火時期を予め遅角側に補正しておくことができるため、この場合にも機関運転状態が変化したときのノッキングの発生を好適に抑えることができる。
【００２８】
請求項９に記載の発明は、請求項４〜８のいずれか１項に記載の内燃機関の点火時期制御装置において、前記点火時期遅角量として、前記要求点火時期が前記最進角点火時期よりも進角側の時期に設定される値が算出されたときには、前記ノッキング学習値の更新を禁止することをその要旨とする。
【００２９】
点火時期遅角量として、要求点火時期が最進角点火時期よりも進角側の時期に設定される値が算出されたときにあって、上記態様にて要求点火時期を強制的に遅角する場合には、そうした要求点火時期にて混合気の点火が行われるときのノッキングの発生態様は一時的なものであり、その発生態様に基づいてノッキング学習値が更新されてしまうと、同ノッキング学習値は誤って学習されてしまうおそれがある。この点、同構成によれば、点火時期遅角量として、要求点火時期が最進角点火時期よりも進角側の時期に設定される値が算出されたときには、換言すれば要求点火時期が強制的に遅角される場合には、ノッキング学習値の更新が禁止されるため、そうしたノッキング学習値の誤学習を抑えることができるようになる。
【００３０】
また、同構成を、請求項４や請求項５に記載の発明に適用する場合には、さらに次のような効果も得られる。すなわち、ノッキング学習値の更新が行われる場合には、ノッキング補正値が所定値を超えると、予め設定された更新量にて同ノッキング補正値は更新されるため、ノッキング補正値が取り得る値は、そうした所定値にて制限される。そのため、ノッキング補正値を点火時期遅角量として設定する請求項４や請求項５に記載の構成において、ノッキング学習値の更新が行われる場合には、その点火時期遅角量もある程度の大きさで制限されてしまい、要求点火時期の遅角量が不足してしまうといった不都合が発生するおそれがある。この点、同構成によれば、点火時期遅角量として、要求点火時期が最進角点火時期よりも進角側の時期に設定される値が算出されたときには、換言すれば要求点火時期が強制的に遅角される場合には、ノッキング学習値の更新が禁止されるため、要求点火時期の遅角量を十分に確保することができるようになる。
【００３１】
請求項１０に記載の発明は、請求項４〜９のいずれか１項に記載の内燃機関の点火時期制御装置において、前記点火時期遅角量として、前記要求点火時期が前記最進角点火時期よりも進角側の時期に設定される値が算出されたときには、前記要求点火時期が前記最進角点火時期よりも遅角側の時期に設定されるように、前記点火時期遅角量を制限することをその要旨とする。
【００３２】
同構成によれば、要求点火時期が最進角点火時期よりも遅角側の時期に設定されるように点火時期遅角量が制限されるため、要求点火時期が最進角点火時期よりも進角側の時期に設定されるような点火時期遅角量が算出されたとしても、実際に要求点火時期が最進角点火時期よりも進角側の時期に設定されることはなく、これにより要求点火時期の過度な進角によるノッキングの頻発は抑えられるようになる。
【００３３】
ここで、内燃機関の状態によっては、最進角点火時期においてノッキングが発生する可能性がある。そのため、点火時期遅角量が制限されることで、最進角点火時期が要求点火時期として設定された場合には、ノッキングが発生する可能性がある。この場合において、ノッキングが発生すると、ノッキング補正値やノッキング学習値などは遅角側に更新されるため、算出される点火時期遅角量も、徐々に遅角側の値に変化していく。しかし、その算出される点火時期遅角量が、要求点火時期を最進角点火時期よりも進角側の時期に設定する値となっている間は、実際の点火時期遅角量は制限されるため、実際の要求点火時期は最進角点火時期のままである。そのため、ノッキング補正値やノッキング学習値などの遅角側への更新が進行し、算出される点火時期遅角量が、要求点火時期を最進角点火時期よりも遅角側の時期に設定する値になるまでは、要求点火時期の遅角補正が行われないことになる。従って、この場合にも、点火時期遅角量の制限を行わない場合と同様な不都合が発生するおそれがある。
【００３４】
すなわち、上記遅角幅が所定値未満になる機関運転状態においてノッキング学習値が進角側に大きくされていた場合にあって、遅角幅が所定値以上になる機関運転状態に移行した移行した直後から、しばらくの間はノッキングが発生してしまう可能性があり、このときのノッキング学習値の遅角側への更新量が少なくされていると、ノッキングが抑制されるまでの時間が長くなってしまうといった不都合が発生するおそれがある。この点、同構成によれば、上記請求項４〜請求項９のいずれか１項の構成を備えることにより、こうした不都合の発生を抑えることができるようになる。
【発明を実施するための最良の形態】
【００３５】
（第１実施形態）
以下、この発明にかかる内燃機関の点火時期制御装置を具体化した第１実施形態について、図１〜図５を参照して説明する。
【００３６】
図１に示すように、本実施形態が適用される内燃機関１０の燃焼室１３には、同燃焼室１３に吸入された空気と燃料との混合気を点火させて燃焼させる点火プラグ１４が設けられている。また内燃機関１０のシリンダブロック１１には、混合気の燃焼に伴うノッキングの発生状況を検出するノックセンサ１５が設けられている。
【００３７】
この内燃機関１０の運転に係る各種制御は、制御装置１６により行われる。制御装置１６は、各種制御を実行するＣＰＵ、同制御に必要な情報が記憶されるメモリ、外部から信号を入力するための入力ポート、外部に指令信号を出力するための出力ポート等を備えて構成されている。
【００３８】
制御装置１６の入力ポートには、機関運転状態を検出するための各種センサが接続されている。例えば、上記ノックセンサ１５、クランクシャフトの回転位相であるクランク角を検出するクランク角センサ１７、スロットル開度ＴＡを検出するスロットルセンサ１９等がこの入力ポートに接続されている。そして、それらセンサの検出信号が、その入力ポートを通じて制御装置１６に入力される。なお、クランク角センサ１７の検出信号からは、機関回転速度ＮＥが求められるようにもなっている。
【００３９】
一方、制御装置１６の出力ポートには、上記点火プラグ１４による混合気の点火に必要な高圧電流を発生させるイグナイタ１４ａ等、機関制御に必要なアクチュエータ類の駆動回路が接続されている。制御装置１６は、上記各センサの検出信号に基づき、それらアクチュエータ類を駆動制御して機関制御を行う。
【００４０】
以上のように構成される内燃機関１０において、制御装置１６は、上記ノックセンサ１５によって検出されるノッキングの発生状況に応じて点火時期を調整する「ノッキング制御」を実行する。以下、本実施形態における「ノッキング制御」の概要を説明する。
【００４１】
本実施形態でのノッキング制御は、下記の如く、点火時期の制御指令値である要求点火時期ａｆｉｎを設定することで行われる。なお、ここでは点火時期を、点火対象となる気筒の圧縮上死点に対するクランク角の進角量［°ＣＡ］として表すようにしている。
【００４２】
（最大遅角量ａｋｍａｘの算出）
要求点火時期ａｆｉｎの設定に際しては、まずはノッキング制御における要求点火時期ａｆｉｎの設定範囲の進角側の限界値である最進角点火時期ａｂｓｅｆ、及びその遅角側の限界値である最遅角点火時期ａｋｍｆが算出される。そして、それらに基づき、ノッキング制御中の最進角点火時期ａｂｓｅｆに対する要求点火時期ａｆｉｎの最大遅角量ａｋｍａｘが算出される。
【００４３】
上記最進角点火時期ａｂｓｅｆは、ＭＢＴ点ａｍｂｔ、及び第１ノック限界点ａｋｎｏｋ１に基づき算出される。具体的には、次式（１）に示すように、それらＭＢＴ点ａｍｂｔ、及び第１ノック限界点ａｋｎｏｋ１のうちで、より遅角側の値が、最進角点火時期ａｂｓｅｆとして設定される。
【００４４】
ａｂｓｅｆ＝ｍｉｎ（ａｍｂｔ、ａｋｎｏｋ１）  …（１）
ここでのＭＢＴ点ａｍｂｔは、現状の機関運転条件において、最大トルクの得られる点火時期（最大トルク点火時期）を示している。また第１ノック限界点ａｋｎｏｋ１は、ノック限界の高い高オクタン価燃料の使用時に、想定される最良の条件下で、ノッキングを許容できるレベル以内に収めることのできる点火時期の進角限界値（ノック限界点火時期）を示している。それらＭＢＴ点ａｍｂｔ、及び第１ノック限界点ａｋｎｏｋ１は、現状の機関回転速度ＮＥや機関負荷ＫＬ等に基づき、制御装置１６のメモリに記憶された設定マップを参照して設定される。なお、本実施形態では、機関負荷ＫＬを吸入空気量に基づいて算出するようにしているが、その他のパラメータ、例えば燃料噴射量や、スロットル開度、或いはアクセルペダルの操作量に基づいて算出するようにしてよい。
【００４５】
一方、最遅角点火時期ａｋｍｆは、想定される最悪の条件下でも、十分にノッキングを許容できるレベル以内に収めることのできる点火時期の指標値としてその値が設定される。具体的には、次式（２）に示すように、第２ノック限界点ａｋｎｏｋ２に対して、デポジット学習値ａｄｅｐの分だけ遅角させた値が、最遅角点火時期ａｋｍｆとして設定される。
【００４６】
ａｋｍｆ＝ａｋｎｏｋ２−ａｄｅｐ  …（２）
第２ノック限界点ａｋｎｏｋ２は、ノック限界の低い低オクタン価燃料の使用時に、想定される最良の条件下で、例えば上述したデポジット付着が全く無いときにあって、ノッキングを許容できるレベル以内に収めることのできる点火時期の進角限界（ノック限界点火時期）を示している。なお、この第２ノック限界点ａｋｎｏｋ２についても、現状の機関回転速度ＮＥや機関負荷ＫＬ等に基づき、制御装置１６のメモリに記憶された設定マップを参照して設定される。また、同第２ノック限界点ａｋｎｏｋ２は、上記第１最遅角点火時期に対応する。
【００４７】
また、デポジット学習値ａｄｅｐは、現状の内燃機関１０のデポジットの付着度合に応じた点火時期の遅角量を示す指標値となっている。具体的には、次式（３）に示すように、遅角幅ＤＬＡＫＮＯＫに比率学習値ｒｇｋｎｋを乗算させた値が、デポジット学習値ａｄｅｐとして設定される。
【００４８】
ａｄｅｐ＝ＤＬＡＫＮＯＫ×ｒｇｋｎｋ  …（３）
遅角幅ＤＬＡＫＮＯＫは、デポジット付着の影響が最も顕著に現れる所定の機関運転条件において、想定される最大量のデポジットが付着した状態でのデポジット付着の影響による要求点火時期ａｆｉｎの遅角量を示す値であり、より詳細には、デポジット付着の影響による最遅角点火時期ａｋｍｆの遅角量を示す値である。そして、この遅角幅ＤＬＡＫＮＯＫは、次式（４）に示すように、上記第２ノック限界点ａｋｎｏｋ２から第３ノック限界点ａｋｎｏｋ３を減算することで算出される。
【００４９】
ＤＬＡＫＮＯＫ＝ａｋｎｏｋ２−ａｋｎｏｋ３  …（４）
第３ノック限界点ａｋｎｏｋ３は、ノック限界の低い低オクタン価燃料の使用時に、想定される最悪の条件下で、例えば上述したデポジット付着が想定される最大量に達しているときにあって、ノッキングを許容できるレベル以内に収めることのできる点火時期の進角限界（ノック限界点火時期）を示している。なお、この第３ノック限界点ａｋｎｏｋ３についても、現状の機関回転速度ＮＥや機関負荷ＫＬ等を考慮してその値が設定される。また、同第３ノック限界点ａｋｎｏｋ３は、上記第２最遅角点火時期に対応する。
【００５０】
また、上記比率学習値ｒｇｋｎｋは、内燃機関１０へのデポジットの付着度合いを示す指標値としてその値が設定されている。ここでは、デポジットの付着が完全に無い状態を値「０」とし、デポジットの付着量が想定される最大値となった状態を値「１」として、デポジットの付着度合いを比率学習値ｒｇｋｎｋの値で表すようにしている。
【００５１】
この比率学習値ｒｇｋｎｋは、デポジットの付着が無い工場出荷時に、初期値としてその値が「０」に設定されている。その後、比率学習値ｒｇｋｎｋの値は、「０」以上、「１」以下の範囲内で、ノックセンサ１５により検出されるノッキングの発生頻度に応じて徐々に増減される。具体的には、ノッキングの発生頻度が増大すれば比率学習値ｒｇｋｎｋの値は徐々に増大され、ノッキングの発生頻度が低下すればその値は徐々に減少される。この比率学習値ｒｇｋｎｋの更新態様の詳細については後述する。
【００５２】
そして、更新された比率学習値ｒｇｋｎｋの値は、制御装置１６のバックアップメモリに記憶され、機関停止中もその値が保持される。なお、この比率学習値ｒｇｋｎｋは、デポジットの付着度合に応じて変化するノッキングの発生頻度に対応して更新される上記比率に対応する。
【００５３】
また、この比率学習値ｒｇｋｎｋはノッキングの発生頻度に応じて更新されることにより、同比率学習値ｒｇｋｎｋと上記遅角幅ＤＬＡＫＮＯＫとを乗算して得られる上記ノッキング学習値も、デポジットの付着度合に応じて更新されることになる。
【００５４】
そして以上のように算出された最進角点火時期ａｂｓｅｆ、及び最遅角点火時期ａｋｍｆから、次式（５）に基づいて、上記最大遅角量ａｋｍａｘが算出される。
ａｋｍａｘ＝ａｂｓｅｆ−ａｋｍｆ  …（５）
（要求点火時期ａｆｉｎの算出）
要求点火時期ａｆｉｎの算出は、上記最進角点火時期ａｂｓｅｆに対する要求点火時期ａｆｉｎの遅角量である点火時期遅角量ａｋｎｋを求めることで行われる。点火時期遅角量ａｋｎｋは、次式（６）に示すように、上記最大遅角量ａｋｍａｘ、ＫＣＳ学習値ａｇｋｎｋ、及びＫＣＳフィードバック補正値ａｋｃｓに基づきその値が設定される。
【００５５】
ａｋｎｋ＝ａｋｍａｘ−ａｇｋｎｋ＋ａｋｃｓ  …（６）
そして、次式（７）や図２に示すように、最進角点火時期ａｂｓｅｆから上記求められた点火時期遅角量ａｋｎｋを減算して要求点火時期ａｆｉｎが設定される。すなわち、要求点火時期ａｆｉｎは、次式（８）や先の図２に示すように、第２ノック限界点ａｋｎｏｋ２がデポジット学習値ａｄｅｐの分だけ遅角されることで設定される最遅角点火時期ａｋｍｆに対して、ＫＣＳ学習値ａｇｋｎｋの分だけ進角され、ＫＣＳフィードバック補正値ａｋｃｓの分だけ遅角された値となる。なお、算出される要求点火時期ａｆｉｎが最進角点火時期ａｂｓｅｆよりも進角側の時期にならないように、点火時期遅角量ａｋｎｋの値には制限がかけられる。例えば、式（７）に基づいて要求点火時期ａｆｉｎを算出する場合、点火時期遅角量ａｋｎｋは、「０」以上の値となるように制限される。従って、式（６）に基づいて算出された点火時期遅角量ａｋｎｋが負の値となったときには、その値が「０」に設定される。
【００５６】
ａｆｉｎ＝ａｂｓｅｆ−ａｋｎｋ                      …（７）
ａｆｉｎ＝ａｋｍｆ＋ａｇｋｎｋ−ａｋｃｓ            …（８）
上記ＫＣＳフィードバック補正値ａｋｃｓは、上記ノックセンサ１５により検出されるノッキングの発生状況に応じてその値が設定される。具体的には、検出されたノッキングのレベルが所定の判定値未満で、ノッキングが十分許容できるレベル以下に収まっていると判断されたときには、ＫＣＳフィードバック補正値ａｋｃｓの値は徐々に減少される。また検出されたノッキングのレベルが上記判定値以上であるときには、ＫＣＳフィードバック補正値ａｋｃｓの値は所定値だけ増加される。なお、このＫＣＳフィードバック補正値ａｋｃｓは、上記ノッキング補正値に相当する。
【００５７】
一方、上記ＫＣＳ学習値ａｇｋｎｋは、ＫＣＳフィードバック補正値ａｋｃｓの絶対値が所定値よりも大きい状態（｜ａｋｃｓ｜＞Ａ）が所定時間以上継続したときに、該ＫＣＳフィードバック補正値ａｋｃｓの絶対値を徐々に縮小するようにその値が更新される。すなわち、ＫＣＳフィードバック補正値ａｋｃｓが正の値［Ａ］よりも大きい状態（ａｋｃｓ＞Ａ）が継続したときには、ＫＣＳ学習値ａｇｋｎｋの値から所定値Ｂが減算される。また、これとともにＫＣＳフィードバック補正値ａｋｃｓの値からも同じく所定値Ｂが減算される。一方、ＫＣＳフィードバック補正値ａｋｃｓが負の値［−Ａ］よりも小さい状態（ａｋｃｓ＜−Ａ）が継続したときには、ＫＣＳ学習値ａｇｋｎｋの値、及びＫＣＳフィードバック補正値ａｋｃｓの値にそれぞれ所定値Ｂが加算される。このＫＣＳ学習値ａｇｋｎｋの更新態様の詳細についても後述する。
【００５８】
そして、更新されたＫＣＳ学習値ａｇｋｎｋの値も、制御装置１６のバックアップメモリに記憶され、機関停止中もその値は保持される。なお、このＫＣＳ学習値ａｇｋｎｋは、上記ノッキング学習値に相当する。
【００５９】
以上のようなノッキング制御により、要求点火時期ａｆｉｎは、許容されるレベル以上のノッキングが発生されない範囲内において、より大きいトルクが得られる、より進角側の値に設定される。
【００６０】
（ＫＣＳ学習値及び比率学習値の更新）
上記ノッキング制御では、学習値として、デポジット付着の影響による点火時期の変化分を反映する比率学習値ｒｇｋｎｋと、それ以外の要因による点火時期の変化分を反映するＫＣＳ学習値ａｇｋｎｋとの２つの学習値を用いており、これら各学習値は次のようにして更新される。
【００６１】
本実施形態では、ノッキングの発生状況に応じてＫＣＳフィードバック補正値ａｋｃｓの０からの乖離量が大きい状態（ａｋｃｓ＜−Ａ、又はａｋｃｓ＞Ａ）であれば、上記両学習値の更新を行うようにしている。そしてその乖離量に応じて学習更新量ｔｄｌを求めるようにしている。学習更新量ｔｄｌとは、ＫＣＳ学習値ａｇｋｎｋの更新によるＫＣＳフィードバック起点（ａｋｃｓ＝０のときの要求点火時期ａｆｉｎ）の更新量と、比率学習値ｒｇｋｎｋの更新によるＫＣＳフィードバック起点の更新量との和を示す。すなわち、この学習更新量ｔｄｌとは、要求されるＫＣＳフィードバック起点の更新量の総量のことである。
【００６２】
例えば、図３に示すように、ノッキングの発生により、ＫＣＳフィードバック補正値ａｋｃｓが上記正の値［Ａ］を超えると［（Ａ）の状態］、ＫＣＳ学習値ａｇｋｎｋは更新量Δａｇｋｎｋの分だけ遅角側に小さくされることにより、ＫＣＳフィードバック起点ａｋｃｓｂｐも更新量Δａｇｋｎｋの分だけ遅角側に変化する［（Ｂ）の状態］。また、ノッキングの発生により、比率学習値ｒｇｋｎｋが更新量Δｒｇｋｎｋの分だけ更新され、その結果、デポジット学習値ａｄｅｐが更新量Δａｄｅｐの分だけ遅角側に大きくされると、ＫＣＳフィードバック起点ａｋｃｓｂｐも更新量Δａｄｅｐの分だけ遅角側に変化する［（Ｃ）の状態］。このように、ノッキングの発生により更新されたＫＣＳ学習値ａｇｋｎｋの更新量Δａｇｋｎｋと、デポジット学習値ａｄｅｐの更新量Δａｄｅｐの和が、学習更新量ｔｄｌとなる。
【００６３】
ＫＣＳ学習値ａｇｋｎｋ及びデポジット学習値ａｄｅｐの更新は、上記学習更新量ｔｄｌが、ＫＣＳ学習値ａｇｋｎｋ側への反映分と比率学習値ｒｇｋｎｋ側への反映分とに分配されることによって行われる。このときの両学習値に対する更新量の分配割合は、機関負荷ＫＬに応じて決定される。
【００６４】
図４に示すように、第２ノック限界点ａｋｎｏｋ２と第３ノック限界点ａｋｎｏｋ３との差である遅角幅ＤＬＡＫＮＯＫは、低負荷領域において大きくなる傾向がある。すなわち、機関運転状態が低負荷状態のときには、高負荷状態のときと比較して、デポジットの付着に起因する最遅角点火時期ａｋｍｆの遅角要求が大きくなる傾向がある。換言すれば、低負荷領域では、デポジット付着の影響以外の要因によってノッキングが発生する可能性は低いと考えられることから、上記分配に際しての比率学習値ｒｇｋｎｋ側への反映分（分配割合）は大きくされると共に、その分、ＫＣＳ学習値ａｇｋｎｋ側への反映分（分配割合）は小さくされる。一方、機関負荷ＫＬが高くなれば、デポジット付着の影響以外の要因によってノッキングが発生する可能性は高くなる。よって機関負荷ＫＬの増加に応じて、比率学習値ｒｇｋｎｋ側への反映分は小さくされると共に、その分、ＫＣＳ学習値ａｇｋｎｋ側への反映分は大きくされる。
【００６５】
本実施形態では、こうした学習更新量ｔｄｌの分配割合を、分配率ｔｋで表すようにしている。分配率ｔｋは、学習更新量ｔｄｌに対するそのＫＣＳ学習値ａｇｋｎｋ側への反映分の比率を示している。この分配率ｔｋは０から１までの値を取り、機関運転状態が低負荷状態のときには、分配率ｔｋは小さい値に設定され、機関負荷ＫＬが高くなるほどその値は１に近い値に増大される。そして設定された分配率ｔｋに基づき、次式（９）及び次式（１０）に従って、ＫＣＳ学習値ａｇｋｎｋの更新量Δａｇｋｎｋ及び比率学習値ｒｇｋｎｋの更新量Δｒｇｋｎｋが算出される。なお、ＫＣＳ学習値ａｇｋｎｋの更新量Δａｇｋｎｋは、上記所定値Ｂに相当する値である。
【００６６】
Δａｇｋｎｋ＝ｔｋ  ×  ｔｄｌ    …（９）
Δｒｇｋｎｋ＝（１−ｔｋ）×（ｔｄｌ）÷ＤＬＡＫＮＯＫ  …（１０）
ところで、ＫＣＳ学習値ａｇｋｎｋは、点火時期の補正傾向を示すものであり、その値が大きく変動すると、ＫＣＳフィードバック補正値ａｋｃｓも変動してしまい、点火時期のフィードバック制御が不安定になってしまう。そのため、ＫＣＳ学習値ａｇｋｎｋは、極力変動することなく安定していることが望ましい。こうしたＫＣＳ学習値ａｇｋｎｋの安定化は、機関運転状態が種々変化して同ＫＣＳ学習値ａｇｋｎｋが負荷領域全体に対応した平均的な値に収束することで行われる。
【００６７】
ここで、上述したように、機関負荷ＫＬが低くなるほどＫＣＳ学習値ａｇｋｎｋの更新量Δａｇｋｎｋが小さくなるようにすると、機関運転状態が高負荷状態から低負荷状態に変化したときのＫＣＳ学習値ａｇｋｎｋの更新速度は遅くなる。そのため、ＫＣＳ学習値ａｇｋｎｋが安定化するまでの時間が長くなってしまうといった不都合が発生するおそれがある。
【００６８】
そこで、本実施形態では、上記遅角幅ＤＬＡＫＮＯＫが所定値Ｃ以上になる機関運転状態でのＫＣＳ学習値ａｇｋｎｋ及び比率学習値ｒｇｋｎｋの更新態様を、ＫＣＳ学習値ａｇｋｎｋの更新方向に応じて変更するようにしている。即ち、デポジットの付着に起因する最遅角点火時期ａｋｍｆの遅角要求が大きくなる低負荷領域でのＫＣＳ学習値ａｇｋｎｋ及び比率学習値ｒｇｋｎｋの更新態様を、ＫＣＳ学習値ａｇｋｎｋが進角側に更新されるか遅角側に更新されるかに応じて変更するようにしている。そして、このようにＫＣＳ学習値ａｇｋｎｋ及びデポジット学習値ａｄｅｐの更新態様を変更することにより、そうした機関運転状態におけるＫＣＳ学習値ａｇｋｎｋ及びデポジット学習値ａｄｅｐの更新量をより適切に調整して、ＫＣＳ学習値ａｇｋｎｋをより適切に安定させるようにしている。
【００６９】
より具体的には、遅角幅ＤＬＡＫＮＯＫが所定値Ｃ以上になる機関運転状態において、ＫＣＳ学習値ａｇｋｎｋが進角側に更新されるときには、その進角側へのＫＣＳ学習値ａｇｋｎｋの更新を禁止してデポジット学習値ａｄｅｐの更新のみを行うようにしている。これは、ＫＣＳフィードバック補正値ａｋｃｓについて、上記負の値［−Ａ］よりも小さい状態（ａｋｃｓ＜−Ａ）が継続しており、その結果、ＫＣＳ学習値ａｇｋｎｋが進角側に更新される状況においては、上記分配率ｔｋを「０」に設定することにより実施される。このように分配率ｔｋが「０」に設定されると、ＫＣＳ学習値ａｇｋｎｋの更新量Δａｇｋｎｋは「０」になるため、同ＫＣＳ学習値ａｇｋｎｋの進角側への更新は実質的に禁止され、学習更新量ｔｄｌの全てが、比率学習値ｒｇｋｎｋの更新量Δｒｇｋｎｋに反映されることにより、デポジット学習値ａｄｅｐの更新のみが行われる。
【００７０】
こうした処理を行うことにより、まず、遅角幅ＤＬＡＫＮＯＫが所定値Ｃ未満となる機関運転状態においては、ＫＣＳ学習値ａｇｋｎｋは更新される。一方、遅角幅ＤＬＡＫＮＯＫが所定値Ｃ以上となる機関運転状態に移行したときにあって、ＫＣＳ学習値ａｇｋｎｋが進角側に更新されるときには、その進角側へのＫＣＳ学習値ａｇｋｎｋの更新が禁止される。このようにＫＣＳ学習値ａｇｋｎｋの更新が禁止されると、同ＫＣＳ学習値ａｇｋｎｋは、遅角幅ＤＬＡＫＮＯＫが所定値Ｃ未満となる機関運転状態において更新されたＫＣＳ学習値ａｇｋｎｋのまま保持される。このように、遅角幅ＤＬＡＫＮＯＫが所定値Ｃ以上となる機関運転状態においてＫＣＳ学習値ａｇｋｎｋが進角側に更新されるときにはその更新が禁止されることにより、ＫＣＳ学習値ａｇｋｎｋは変動することなく安定するようになる。また、遅角幅ＤＬＡＫＮＯＫが所定値Ｃ以上となる機関運転状態にあって、ＫＣＳ学習値ａｇｋｎｋの更新が禁止されるときでも、デポジット学習値ａｄｅｐの更新は行われることにより、上記最遅角点火時期ａｋｍｆは、遅角幅ＤＬＡＫＮＯＫが所定値Ｃ以上となる機関運転状態に対応した時期に設定される。従って、ＫＣＳ学習値ａｇｋｎｋの更新を禁止したとしても、適切な要求点火時期ａｆｉｎが設定される。
【００７１】
一方、遅角幅ＤＬＡＫＮＯＫが所定値Ｃ以上になる機関運転状態において、ＫＣＳ学習値ａｇｋｎｋが遅角側に更新されるときには、その遅角側へのＫＣＳ学習値ａｇｋｎｋの更新及びデポジット学習値ａｄｅｐの更新を行う。そしてその更新に際しては、ＫＣＳ学習値ａｇｋｎｋの遅角側への更新量Δａｇｋｎｋを、遅角幅ＤＬＡＫＮＯＫが所定値Ｃ未満になる機関運転状態での更新量Δａｇｋｎｋよりも少なくするようにしている。これは、ＫＣＳフィードバック補正値ａｋｃｓについて、上記正の値［Ａ］よりも大きい状態（ａｋｃｓ＞Ａ）が継続しており、その結果、ＫＣＳ学習値ａｇｋｎｋが遅角側に更新される状況においては、上述したように分配率ｔｋを機関負荷ＫＬに基づいて設定することにより実施される。例えば低負荷状態のときように、遅角幅ＤＬＡＫＮＯＫが所定値Ｃ以上になる機関運転状態においては、高負荷状態のときのように遅角幅ＤＬＡＫＮＯＫが所定値Ｃ未満になる機関運転状態のときよりも、分配率ｔｋは小さくされる。これにより、遅角側へのＫＣＳ学習値ａｇｋｎｋの更新及びデポジット学習値ａｄｅｐの更新が行われるとともに、ＫＣＳ学習値ａｇｋｎｋの遅角側への更新量Δａｇｋｎｋは、遅角幅ＤＬＡＫＮＯＫが所定値Ｃ未満になる機関運転状態での更新量Δａｇｋｎｋよりも少なくされる。ＫＣＳ学習値ａｇｋｎｋが遅角側に更新されるときには、こうした処理を行うことにより、次の効果が得られる。
【００７２】
まず、遅角幅ＤＬＡＫＮＯＫが所定値Ｃ以上になる機関運転状態において、ＫＣＳ学習値ａｇｋｎｋが遅角側に更新されるときにも、進角側への更新と同様に、その遅角側へのＫＣＳ学習値ａｇｋｎｋの更新を禁止するようにした場合、次のようになる。すなわち、ノッキングが発生した場合の要求点火時期ａｆｉｎの遅角側への補正は、ＫＣＳフィードバック補正値ａｋｃｓとデポジット学習値ａｄｅｐとによって行われることになる。
【００７３】
ここで、ＫＣＳフィードバック補正値ａｋｃｓが過度に大きくなると、点火時期のフィードバック補正が不安定になる。こうした理由により、上述したように、ＫＣＳフィードバック補正値ａｋｃｓが正の値［Ａ］よりも大きくなったり、負の値［−Ａ］よりも小さくなったりすると、上記所定値Ｂにて同ＫＣＳフィードバック補正値ａｋｃｓは更新される。従って、ＫＣＳフィードバック補正値ａｋｃｓが取り得る値は、そうした正の値［Ａ］や負の値［−Ａ］にて制限されることになり、同ＫＣＳフィードバック補正値ａｋｃｓによる点火時期の遅角には限界がある。
【００７４】
また、デポジット学習値ａｄｅｐによって最大限まで遅角側に補正された最遅角点火時期ａｋｍｆは、上記第３ノック限界点ａｋｎｏｋ３であり、この第３ノック限界点ａｋｎｏｋ３を超えてさらに最遅角点火時期ａｋｍｆを遅角側に補正することはできない。そのため、デポジット学習値ａｄｅｐによる点火時期の遅角にも限界がある。
【００７５】
この点、ＫＣＳ学習値ａｇｋｎｋが遅角側に更新されるときに、その遅角側へのＫＣＳ学習値ａｇｋｎｋの更新を禁止するのではなく、許可するようにすれば、ノッキングの発生時において、ＫＣＳフィードバック補正値ａｋｃｓ及びデポジット学習値ａｄｅｐのみならず、ＫＣＳ学習値ａｇｋｎｋによっても点火時期の遅角が行われるようになる。従って、ノッキングの発生が適切に抑えられるようになる。また、ＫＣＳ学習値ａｇｋｎｋの遅角側への更新量は、遅角幅ＤＬＡＫＮＯＫが所定値Ｃ未満になる機関運転状態での更新量よりも少なくされるため、そのようにＫＣＳ学習値ａｇｋｎｋを更新するようにしても、その値の変動は比較的抑えられるようになり、当該ＫＣＳ学習値ａｇｋｎｋは適切に安定化される。
【００７６】
図５に、上述した学習値の更新処理についてその処理手順を示す。なお、本処理は、制御装置１６によって、所定周期毎に繰り返し実行される。また、本実施形態では、ＫＣＳ学習値ａｇｋｎｋ及び比率学習値ｒｇｋｎｋを、機関回転速度ＮＥによって区分けされた複数の領域において、それぞれ個別に算出するようにしている。以下の説明では、そうした学習領域を１、２・・・ｎの番号で区別し、各学習領域のＫＣＳ学習値ａｇｋｎｋ及び比率学習値ｒｇｋｎｋをそれぞれａｇｋｎｋ［ｉ］、ｒｇｋｎｋ［ｉ］（ｉは、該当する学習領域の番号）で表すものとする。
【００７７】
本処理が開始されると、まず、ＫＣＳ学習値ａｇｋｎｋ及び比率学習値ｒｇｋｎｋの更新条件が成立しているか否かの判定が行われる（Ｓ１００）。ここでは、例えば、以下の各条件がすべて成立しているときに、更新条件は成立していると判定される。
・機関回転速度ＮＥが所定の範囲内であり、極端な低回転又は高回転速度域でない。
・急加減速等の過渡運転状態が終了した後、所定時間以上が経過しており、機関運転状態が不安定な状態でない。
・内燃機関１０の暖機が完了している。
・機関負荷が所定値以上で、極端な低負荷領域ではない。
【００７８】
そして、更新条件が不成立である場合には（Ｓ１００：ＮＯ）、本処理は、一旦終了される。一方、更新条件が成立している場合には（Ｓ１００：ＹＥＳ）、ステップＳ１１０以降の処理が行われることにより、学習更新量ｔｄｌの算出が行われる。
【００７９】
（学習更新量ｔｄｌの算出）
ステップＳ１１０では、ＫＣＳ学習値ａｇｋｎｋが進角側に更新される状況にあるか否かが判定される。ここでは、ＫＣＳフィードバック補正値ａｋｃｓが上記負の値［−Ａ］未満であるときに、ＫＣＳ学習値ａｇｋｎｋが進角側に更新される状況にあると判定される。そして、ステップＳ１１０にて肯定判定される場合には、ＫＣＳフィードバック起点ａｋｃｓｂｐが遅角側に修正されるように、学習更新量ｔｄｌが算出される。具体的には、現状のＫＣＳフィードバック補正値ａｋｃｓに上記値Ａを加算したものが学習更新量ｔｄｌとして設定される（Ｓ１２０）。
【００８０】
一方、ステップＳ１１０にて否定判定される場合には、ＫＣＳ学習値ａｇｋｎｋが遅角側に更新される状況にあるか否かが判定される（Ｓ１３０）。ここでは、ＫＣＳフィードバック補正値ａｋｃｓが、上記正の値［Ａ］を超えているときに、ＫＣＳ学習値ａｇｋｎｋが遅角側に更新される状況にあると判定される。そして、ステップＳ１３０にて肯定判定されるときには、ＫＣＳフィードバック起点ａｋｃｓｂｐが進角側に修正されるように、学習更新量ｔｄｌが算出される。具体的には、上記学習領域毎に設定された所定値ＴＤＬ［ｉ］（ｉは、学習領域の番号）が学習更新量ｔｄｌとして設定される（Ｓ１４０）。
【００８１】
なお、ステップＳ１３０にて否定判定される場合には、本処理は一旦終了される。
（分配率ｔｋの算出）
以上のようにして学習更新量ｔｄｌが設定されると、次に、ステップＳ１５０以降の処理が行われることにより、上記分配率ｔｋの算出が行われる。
【００８２】
ステップＳ１５０では、現在の機関運転状態において、上記式（４）から求められる遅角幅ＤＬＡＫＮＯＫが所定値Ｃ以上であるか否かが判定される。そして、遅角幅ＤＬＡＫＮＯＫが所定値Ｃ未満である場合には（Ｓ１５０：ＮＯ）、機関負荷ＫＬに基づいて分配率ｔｋが算出される（Ｓ１９０）。
【００８３】
一方、遅角幅ＤＬＡＫＮＯＫが所定値以上である場合には（Ｓ１５０：ＹＥＳ）、ＫＣＳ学習値ａｇｋｎｋが進角側に更新される状況にあるか否かが判定される（Ｓ１６０）。ここでは、先のステップＳ１１０での判定結果が流用される。そして、ＫＣＳ学習値ａｇｋｎｋが進角側に更新される状況にある場合には（Ｓ１６０：ＹＥＳ）、分配率ｔｋとして「０」が設定される（Ｓ１７０）。
【００８４】
一方、ステップＳ１６０にて否定判定される場合には、ＫＣＳ学習値ａｇｋｎｋが遅角側に更新される状況にあるか否かが判定される（Ｓ１８０）。ここでは、先のステップＳ１３０での判定結果が流用される。そして、ＫＣＳ学習値ａｇｋｎｋが遅角側に更新される状況にある場合には（Ｓ１８０：ＹＥＳ）、機関負荷ＫＬに基づいて分配率ｔｋが算出される（Ｓ１９０）。なお、ステップＳ１８０にて否定判定される場合には、本処理は一旦終了される。
【００８５】
（学習値の更新）
以上により、学習更新量ｔｄｌ及び分配率ｔｋが設定されると、ステップＳ２００の処理が行われることにより、ＫＣＳ学習値ａｇｋｎｋ及びデポジット学習値ａｄｅｐの更新が行われる。ここでは、ＫＣＳ学習値ａｇｋｎｋ及び比率学習値ｒｇｋｎｋに対して、分配率ｔｋに応じた学習更新量ｔｄｌが分配される。
【００８６】
ＫＣＳ学習値ａｇｋｎｋの更新は、上記式（９）にて求められた更新量ΔａｇｋｎｋがそれまでのＫＣＳ学習値ａｇｋｎｋに加算されることで行われる（ａｇｋｎｋ［ｉ］←ａｇｋｎｋ［ｉ］＋Δａｇｋｎｋ）。また、デポジット学習値ａｄｅｐの更新は、上記式（１０）にて求められた更新量Δｒｇｋｎｋがそれまでの比率学習値ｒｇｋｎｋに加算され（ｒｇｋｎｋ［ｉ］←ｒｇｋｎｋ［ｉ］＋Δｒｇｋｎｋ）、その加算された比率学習値ｒｇｋｎｋが遅角幅ＤＬＡＫＮＯＫに乗算される（上記式（３）を参照）ことによって行われる。
【００８７】
以上説明したように、本実施形態によれば、従来の装置に比べて、次のような効果を得ることができる。
（１）遅角幅ＤＬＡＫＮＯＫが所定値Ｃ以上になる機関運転状態においては、ＫＣＳ学習値ａｇｋｎｋの更新方向に応じて、即ち進角側に更新されるか遅角側に更新されるかに応じて、同ＫＣＳ学習値ａｇｋｎｋ及びデポジット学習値ａｄｅｐの更新態様を変更するようにしている。そのため、そうした機関運転状態におけるＫＣＳ学習値ａｇｋｎｋ及びデポジット学習値ａｄｅｐの更新量をより適切に調整することができるようになり、これによりＫＣＳ学習値ａｇｋｎｋをより好適に安定させることができるようになる。
【００８８】
（２）遅角幅ＤＬＡＫＮＯＫが所定値Ｃ以上になる機関運転状態において、ＫＣＳ学習値ａｇｋｎｋが進角側に更新されるときには、その進角側へのＫＣＳ学習値ａｇｋｎｋの更新を禁止してデポジット学習値ａｄｅｐの更新のみを行うようにしている。そのため、ＫＣＳ学習値ａｇｋｎｋは変動することなく安定するようになる。また、ＫＣＳ学習値ａｇｋｎｋの更新が禁止されるときでも、デポジット学習値ａｄｅｐの更新は行うようにしているため、そうしたＫＣＳ学習値ａｇｋｎｋの更新を禁止する場合でも、要求点火時期ａｆｉｎを適切に設定することができる。
【００８９】
（３）遅角幅ＤＬＡＫＮＯＫが所定値Ｃ以上になる機関運転状態において、ＫＣＳ学習値ａｇｋｎｋが遅角側に更新されるときには、その遅角側へのＫＣＳ学習値ａｇｋｎｋの更新及びデポジット学習値ａｄｅｐの更新を行うようにしている。そのため、ノッキングが発生しているときには、ＫＣＳフィードバック補正値ａｋｃｓ及びデポジット学習値ａｄｅｐに加え、さらにＫＣＳ学習値ａｇｋｎｋによる点火時期の遅角も行うことができるようになり、これによりノッキングの発生が適切に抑えることができるようになる。また、ＫＣＳ学習値ａｇｋｎｋが遅角側に更新されるときの更新量Δａｇｋｎｋは、遅角幅ＤＬＡＫＮＯＫが所定値Ｃ未満になる機関運転状態での更新量Δａｇｋｎｋよりも少なくなるようにしている。そのため、ＫＣＳ学習値ａｇｋｎｋを更新するようにしても、その値の変動は比較的抑えられるようになり、当該ＫＣＳ学習値ａｇｋｎｋの安定化を好適に図ることができるようになる。
（第２実施形態）
次に、本発明にかかる内燃機関の点火時期制御装置を具体化した第２実施形態について、図６及び図７を参照して説明する。
【００９０】
遅角幅ＤＬＡＫＮＯＫが所定値Ｃ未満になる機関運転状態においてＫＣＳ学習値ａｇｋｎｋが進角側に大きくされていた場合、遅角幅ＤＬＡＫＮＯＫが所定値Ｃ以上になる機関運転状態に移行したときには、図６に示すように、要求点火時期ａｆｉｎが上記最進角点火時期ａｂｓｅｆよりも進角側の時期に設定されてしまうおそれがある。しかし、実際には、上述したように点火時期遅角量ａｋｎｋの値には制限がかけられており、その値は常に「０」以上となるようになっている。従って、要求点火時期ａｆｉｎが最進角点火時期ａｂｓｅｆよりも進角側の時期に設定される場合、即ち上記式（６）に基づいて算出された点火時期遅角量ａｋｎｋが負の値になるときには、点火時期遅角量ａｋｎｋの値が強制的に「０」にされる。これにより、要求点火時期ａｆｉｎは最進角点火時期ａｂｓｅｆと同一の値になり、同要求点火時期ａｆｉｎの過度な進角は抑えられる。
【００９１】
ここで、最進角点火時期ａｂｓｅｆは、ノック限界の高い高オクタン価燃料の使用時に、想定される最良の条件下で、ノッキングを許容できるレベル以内に収めることのできる点火時期の進角限界値が設定されることがある。そのため、内燃機関の状態がその最良の条件から外れた状態となっているときの最進角点火時期ａｂｓｅｆが要求点火時期ａｆｉｎとして設定されてしまうと、ノッキングが発生する可能性がある。この場合において、ノッキングが発生すると、ＫＣＳフィードバック補正値ａｋｃｓやＫＣＳ学習値ａｇｋｎｋなどは遅角側に更新されるため、上記式（６）に基づいて算出される点火時期遅角量ａｋｎｋは、徐々に負の値から正の値に変化していく。しかし、少なくとも負の値になっている間は、点火時期遅角量ａｋｎｋとして「０」が設定されるため、実際の要求点火時期ａｆｉｎは、最進角点火時期ａｂｓｅｆのままである。そのため、ＫＣＳフィードバック補正値ａｋｃｓやＫＣＳ学習値ａｇｋｎｋなどの遅角側への更新が進行して、点火時期遅角量ａｋｎｋが正の値になるまでは、要求点火時期ａｆｉｎの遅角補正が行われないことになる。そのため、遅角幅ＤＬＡＫＮＯＫが所定値Ｃ以上になる機関運転状態に移行した直後から、しばらくの間はノッキングが発生してしまう可能性がある。
【００９２】
ここで、第１実施形態によるように、遅角幅ＤＬＡＫＮＯＫが所定値Ｃ以上になる機関運転状態において、ＫＣＳ学習値ａｇｋｎｋが遅角側に更新されるときにはその更新量を少なくすると、点火時期遅角量ａｋｎｋの変更速度が遅くなる。そのため、この場合には、ノッキングが抑制されるまでの時間はさらに長くなってしまう。
【００９３】
そこで、本実施形態では、図７に示す点火時期遅角処理を行うことにより、そうした不都合の発生を抑えるようにしている。なお、この点火時期遅角処理も、制御装置１６によって繰り返し行われる。
【００９４】
この点火時期遅角処理が開始されると、まず、上記式（６）に基づいて算出される点火時期遅角量ａｋｎｋが「０」以上であるか否かが判定される（Ｓ３００）。そして、点火時期遅角量ａｋｎｋが「０」以上である場合には（Ｓ３００：ＹＥＳ）、現在算出されている点火時期遅角量ａｋｎｋ（式（６）で算出された値）に基づいて要求点火時期ａｆｉｎが設定され（Ｓ３１０）、本処理は一旦終了される。
【００９５】
一方、点火時期遅角量ａｋｎｋが「０」未満である場合には（Ｓ３００：ＮＯ）、現在算出されている点火時期遅角量ａｋｎｋに基づいて要求点火時期ａｆｉｎを設定すると、その設定される要求点火時期ａｆｉｎが最進角点火時期ａｂｓｅｆよりも進角側の時期に設定されてしまう。そこで、現在のＫＣＳフィードバック補正値ａｋｃｓ、及びＫＣＳフィードバック補正値ａｋｃｓの初期値ａｋｃｓｄに基づき、次式（１１）から第２点火時期遅角量ａｋｎｋ２が設定され（Ｓ３２０）、この第２点火時期遅角量ａｋｎｋ２に基づいて要求点火時期ａｆｉｎが設定される（Ｓ３３０）。
【００９６】
ａｋｎｋ２＝ａｋｃｓ−ａｋｃｓｄ  …（１１）
上記第２点火時期遅角量ａｋｎｋ２を用いて設定される要求点火時期ａｆｉｎは、最進角点火時期ａｂｓｅｆを、ＫＣＳフィードバック補正値ａｋｃｓと初期値ａｋｃｓｄの分だけ遅角した時期となるように強制的に遅角される。このように、点火時期遅角量ａｋｎｋとして、要求点火時期ａｆｉｎが最進角点火時期ａｂｓｅｆよりも進角側の時期に設定される値が算出されたときには、その算出された点火時期遅角量ａｋｎｋに代えて、上記第２点火時期遅角量ａｋｎｋ２が新たな点火時期遅角量として設定される。従って、そのときのノッキングの発生状態が速やかに反映されるＫＣＳフィードバック補正値ａｋｃｓの分だけ最進角点火時期ａｂｓｅｆを遅角した時期が要求点火時期ａｆｉｎとして設定される。そのため、要求点火時期ａｆｉｎは適切に、且つ速やかに遅角されるようになり、ノッキングの発生を速やかに抑えることができる。
【００９７】
ここで、上述したように、ＫＣＳフィードバック補正値ａｋｃｓは、上記正の値［Ａ］や負の値［−Ａ］にて制限されており、その値は過度に大きくならないようにされている。そのため、ＫＣＳフィードバック補正値ａｋｃｓの分だけ最進角点火時期ａｂｓｅｆを遅角した時期を要求点火時期ａｆｉｎとして設定するようにしても、その設定直後においては点火時期の遅角量が不足するおそれがある。この点、本実施形態では、ＫＣＳフィードバック補正値ａｋｃｓをさらに所定の分（本実施形態ではＫＣＳフィードバック補正値ａｋｃｓの初期値ａｋｃｓｄの分）だけ遅角側に変更した値をもって最進角点火時期ａｂｓｅｆを遅角した時期が要求点火時期ａｆｉｎとして設定される。従って、要求点火時期ａｆｉｎが設定された直後の点火時期の遅角量をさらに大きくすることができ、ノッキングの発生をより速やかに抑えることができる。
【００９８】
次に、ステップＳ３３０にて要求点火時期ａｆｉｎの設定が行われると、ＫＣＳ学習値ａｇｋｎｋの更新が禁止されて（Ｓ３４０）、本処理は一旦終了される。
ステップＳ３４０でＫＣＳ学習値ａｇｋｎｋの更新を禁止するのは、次の理由による。
【００９９】
すなわち、ＫＣＳ学習値ａｇｋｎｋの更新が行われるようにしてしまうと、上述したように、ＫＣＳフィードバック補正値ａｋｃｓが上記正の値［Ａ］よりも大きくなったり、上記負の値［−Ａ］よりも小さくなったりした場合に、上記所定値Ｂにて同ＫＣＳフィードバック補正値ａｋｃｓは更新されてしまい、その値は制限されてしまう。そのため、第２点火時期遅角量ａｋｎｋ２もある程度の大きさで制限されてしまい、要求点火時期ａｆｉｎの遅角量が不足してしまうといった不都合が発生するおそれがある。
【０１００】
また、要求点火時期ａｆｉｎは、本来、上記式（６）に基づいて算出された点火時期遅角量ａｋｎｋを用いて設定されるのであるが、その点火時期遅角量ａｋｎｋが「０」未満のときには、上述したような不都合の発生が懸念されるため、一時的に上記式（１１）に基づいて算出された第２点火時期遅角量ａｋｎｋ２が用いられる。従って、一時的に使用される第２点火時期遅角量ａｋｎｋ２で設定された要求点火時期ａｆｉｎにて混合気の点火が行われるときのノッキングの発生態様も一時的なものであり、そうした発生態様に基づいてＫＣＳ学習値ａｇｋｎｋが更新されると、同ＫＣＳ学習値ａｇｋｎｋが誤って学習されるといった不都合が発生してしまう。
【０１０１】
そこで、ステップＳ３２０の処理を通じて点火時期遅角量ａｋｎｋ２が設定されたときには、換言すれば、点火時期遅角量ａｋｎｋとして、要求点火時期ａｆｉｎが最進角点火時期ａｂｓｅｆよりも進角側の時期に設定される値が算出されたときには、ステップＳ３４０にてＫＣＳ学習値ａｇｋｎｋの更新が禁止される。このようにＫＣＳ学習値ａｇｋｎｋの更新が禁止されることにより、要求点火時期ａｆｉｎの遅角量は十分に確保されると共に、ＫＣＳ学習値ａｇｋｎｋの誤学習が抑えられる。
【０１０２】
上述した点火時期遅角処理を実行する本実施形態によれば、次の効果を得ることができる。
（４）点火時期遅角量ａｋｎｋとして、要求点火時期ａｆｉｎが最進角点火時期ａｂｓｅｆよりも進角側の時期に設定される値が算出されたときには、ＫＣＳフィードバック補正値ａｋｃｓを第２点火時期遅角量ａｋｎｋ２として設定するようにしている。そのため、要求点火時期ａｆｉｎは適切に、且つ速やかに遅角されるようになり、ノッキングの発生を速やかに抑えることができるようになる。
【０１０３】
（５）第２点火時期遅角量ａｋｎｋ２の設定に際しては、ＫＣＳフィードバック補正値ａｋｃｓをさらに所定の分（本実施形態ではＫＣＳフィードバック補正値ａｋｃｓの初期値ａｋｃｓｄの分）だけ遅角側に変更した値を、同第２点火時期遅角量ａｋｎｋ２として設定するようにしている。従って、要求点火時期ａｆｉｎが設定された直後の点火時期の遅角量をさらに大きくすることができ、ノッキングの発生をより速やかに抑えることができるようになる。
【０１０４】
（６）点火時期遅角量ａｋｎｋとして、要求点火時期ａｆｉｎが最進角点火時期ａｂｓｅｆよりも進角側の時期に設定される値が算出されたときには、ＫＣＳ学習値ａｇｋｎｋの更新を禁止するようにしている。従って、要求点火時期ａｆｉｎの遅角量を十分に確保することができると共に、ＫＣＳ学習値ａｇｋｎｋの誤学習も抑えられるようになる。
【０１０５】
なお、上記各実施形態は以下のように変更して実施することもできる。
・第１実施形態では、機関回転速度によって区分けされた学習領域毎に、それぞれ個別に比率学習値ｒｇｋｎｋ及びＫＣＳ学習値ａｇｋｎｋを求めるようにしていたが、そうした学習領域を更に機関負荷によって区分けする等、その区分け態様は適宜変更してもよい。またそうした学習領域の区分けを行わず、すべての機関運転領域で共通の比率学習値ｒｇｋｎｋ及びＫＣＳ学習値ａｇｋｎｋを使用するようにしてもよい。
【０１０６】
・ステップＳ１００における学習値の更新条件は、上記実施形態で例示したもの以外に適宜変更してもよい。
・機関負荷ＫＬに応じて分配率ｔｋを可変設定するようにしたが、分配率ｔｋの設定態様は適宜変更してもよい。例えば、機関負荷ＫＬに加えて機関回転速度ＮＥにも基づいて分配率ｔｋを求めるようにしてもよい。
【０１０７】
・学習更新量ｔｄｌの設定態様も、上記実施形態に例示した態様から適宜変更してもよい。
・第２実施形態で説明した上記点火時期遅角処理では、ＫＣＳフィードバック補正値ａｋｃｓをさらに所定の分だけ遅角した値を算出する際に、その所定の分として、ＫＣＳフィードバック補正値ａｋｃｓの初期値ａｋｃｓｄを適用するようにしたが、その他の値に変更するようにしてもよい。
【０１０８】
・第２実施形態では、点火時期遅角量ａｋｎｋを制限する場合について説明したが、制限しない場合でも、上記点火時期遅角処理を適用することができる。すなわち、点火時期遅角量ａｋｎｋを制限しない場合にあって、遅角幅ＤＬＡＫＮＯＫが所定値Ｃ以上になる機関運転状態に移行した直後に、要求点火時期ａｆｉｎが最進角点火時期ａｂｓｅｆよりも進角側の時期に設定されたときには、要求点火時期ａｆｉｎは次のように変化する。すなわちノッキングが発生すると、ＫＣＳフィードバック補正値ａｋｃｓやＫＣＳ学習値ａｇｋｎｋなどは徐々に遅角側に更新されていくことにより、要求点火時期ａｆｉｎは徐々に遅角されていき、最終的にはノッキングの発生が抑えられる。しかし、この場合においても、第１実施形態によるように、遅角幅ＤＬＡＫＮＯＫが所定値Ｃ以上になる機関運転状態において、ＫＣＳ学習値ａｇｋｎｋが進角側に更新されるときにはその更新を禁止したり、遅角側に更新されるときにはその更新量を少なくしたりすると、点火時期遅角量ａｋｎｋの変更速度が遅くなる。そのため、ノッキングが抑制されるまでの時間は長くなってしまう。従って、遅角幅ＤＬＡＫＮＯＫが所定値Ｃ以上になる機関運転状態に移行した直後から、しばらくの間はノッキングが発生してしまう可能性がある。そこで、点火時期遅角量ａｋｎｋを制限しない場合でも、上述した点火時期遅角処理は行うことにより、ノッキングの発生を速やかに抑えることができるようになる。
【０１０９】
・第２実施形態では、点火時期遅角量ａｋｎｋが「０」未満のときには、上記式（６）にて算出される点火時期遅角量ａｋｎｋに代えて、上記式（１１）にて算出される第２点火時期遅角量ａｋｎｋ２にて最進角点火時期ａｂｓｅｆを遅角した時期を、要求点火時期ａｆｉｎとして設定するようにした。しかし、この他の態様で要求点火時期ａｆｉｎを遅角側に補正するようにしてもよい。
【０１１０】
例えば、機関運転状態に基づいて算出される最進角点火時期ａｂｓｅｆ自体を遅角側に補正して、その補正された最進角点火時期ａｂｓｅｆと点火時期遅角量ａｋｎｋとに基づいて要求点火時期ａｆｉｎを設定するようにしてもよい。図８に、この変形例にかかる点火時期遅角処理の処理手順についてその一例を示す。この点火時期遅角処理が開始されると、まず、上記式（６）に基づいて算出される点火時期遅角量ａｋｎｋが「０」以上であるか否かが判定される（Ｓ４００）。そして、点火時期遅角量ａｋｎｋが「０」以上である場合には（Ｓ４００：ＹＥＳ）、現在算出されている最進角点火時期ａｂｓｅｆと点火時期遅角量ａｋｎｋとに基づいて要求点火時期ａｆｉｎが設定され（Ｓ４１０）、本処理は一旦終了される。
【０１１１】
一方、点火時期遅角量ａｋｎｋが「０」未満である場合には（Ｓ４００：ＮＯ）、現在算出されている点火時期遅角量ａｋｎｋに基づいて要求点火時期ａｆｉｎを設定すると、その設定される要求点火時期ａｆｉｎが最進角点火時期ａｂｓｅｆよりも進角側の時期に設定されてしまう。そこで、現在設定されている最進角点火時期ａｂｓｅｆが適宜設定された補正値Ｅにて遅角側に補正される（Ｓ４２０）。
【０１１２】
そして、この補正された最進角点火時期ａｂｓｅｆと点火時期遅角量ａｋｎｋとに基づいて要求点火時期ａｆｉｎが設定される（Ｓ４３０）。
次に、ステップＳ４３０にて要求点火時期ａｆｉｎの設定が行われると、ＫＣＳ学習値ａｇｋｎｋの更新が禁止されて（Ｓ４４０）、本処理は一旦終了される。
【０１１３】
こうした変形例においても、要求点火時期ａｆｉｎは速やかに遅角されるようになり、ノッキングの発生が速やかに抑えられるようになる。
・また、そのようにして最進角点火時期ａｂｓｅｆ自体を遅角側に補正する場合には、その遅角側への補正値に基づき、同最進角点火時期ａｂｓｅｆを設定する上記設定マップを遅角側に補正するようにしてもよい。例えば、図９に示すように、先の図８におけるステップＳ４４０の処理に続いて、最進角点火時期ａｂｓｅｆの設定マップを上記補正値Ｅにて遅角側に補正する処理を行うようにしてもよい（Ｓ５００）。こうした変形例によれば、機関運転状態が変化したときに設定される最進角点火時期ａｂｓｅｆを予め遅角側に補正しておくことができる。そのため、機関運転状態が変化したときのノッキングの発生を好適に抑えることができるようになる。
【０１１４】
・また、そのようにして最進角点火時期ａｂｓｅｆ自体を遅角側に補正する場合には、次のような処理を行うようにしてもよい。すなわち、遅角側に補正された最進角点火時期ａｂｓｅｆと現在設定されている要求点火時期ａｆｉｎとの差ΔＦが所定値Ｇを超えたときには、デポジット学習値ａｄｅｐに基づいて補正された最遅角点火時期ａｋｍｆを、その差ΔＦに基づいて遅角側に補正するようにしてもよい。例えば、図１０に示すように、先の図８におけるステップＳ４４０の処理に続いて、次の処理を行うようにしてもよい。
【０１１５】
即ち、ステップＳ４４０の処理が行われた後、補正値Ｅにて補正された最進角点火時期ａｂｓｅｆと現在算出されている要求点火時期ａｆｉｎとの差ΔＦを算出する（Ｓ６００）。そして、差ΔＦが所定値Ｇ以上であるか否かが判定される（Ｓ６１０）。そして、差ΔＦが所定値Ｇ未満である場合には（Ｓ６１０：ＮＯ）、本処理は一旦終了される。一方、差ΔＦが所定値Ｇ以上であり、最進角点火時期ａｂｓｅｆに対する点火時期遅角量ａｋｎｋが大きくなっていると判断できる場合には（Ｓ６１０：ＹＥＳ）、その差Ｆの分だけ上記最遅角点火時期ａｋｍｆがさらに遅角側に補正されて（Ｓ６１０）、本処理は一旦終了される。
【０１１６】
こうした変形例によれば、点火時期遅角量ａｋｎｋが大きくなっているときには、最遅角点火時期ａｋｍｆがさらに遅角側に補正される。これにより、ノッキングの発生がより確実に抑えられるようになる。また、機関運転状態が変化したときでも、最遅角点火時期ａｋｍｆを予め遅角側に補正しておくことができるため、この場合にも機関運転状態が変化したときのノッキングの発生を好適に抑えることができる。
【０１１７】
・第２実施形態やその変形例においては、点火時期遅角量ａｋｎｋが「０」未満であるときに、ＫＣＳ学習値ａｇｋｎｋの更新を禁止するようにしたが、そうした禁止処理を省略するようにしてもよい。この場合でも、点火時期遅角量ａｋｎｋが「０」未満であるときには、少なくとも要求点火時期ａｆｉｎを適切に、且つ速やかに遅角させるための処理は行われるため、ノッキングの発生を速やかに抑えることができる。
【図面の簡単な説明】
【０１１８】
【図１】本発明にかかる内燃機関の点火時期制御装置について、これが適用される第１実施形態での内燃機関の構成を示す模式図。
【図２】点火時期の算出態様をしめす模式図。
【図３】学習更新量を説明する模式図。
【図４】機関負荷の変化に対する第２ノック限界点及び第３ノック限界点の変化態様を示すグラフ。
【図５】同実施形態における学習値の更新処理についてその手順を示すフローチャート。
【図６】第２実施形態において、要求点火時期が最進角点火時期よりも進角側の時期に設定されるときの態様を示す模式図。
【図７】同実施形態における点火時期遅角処理についてその手順を示すフローチャート。
【図８】第２実施形態の変形例における点火時期遅角処理についてその手順を示すフローチャート。
【図９】第２実施形態の変形例における点火時期遅角処理についてその手順を示すフローチャート。
【図１０】第２実施形態の変形例における点火時期遅角処理についてその手順を示すフローチャート。
【符号の説明】
【０１１９】
１０…内燃機関、１１…シリンダブロック、１３…燃焼室、１４…点火プラグ、１４ａ…イグナイタ、１５…ノックセンサ、１６…制御装置、１７…クランク角センサ、１９…スロットルセンサ。
【図１】
0004821730.tif 000002
【図２】
0004821730.tif 000003
【図３】
0004821730.tif 000004
【図４】
0004821730.tif 000005
【図５】
0004821730.tif 000006
【図６】
0004821730.tif 000007
【図７】
0004821730.tif 000008
【図８】
0004821730.tif 000009
【図９】
0004821730.tif 000010
【図１０】
0004821730.tif 000011