(57)【要約】【課題】段差吸収処理の不用意な実行により、内燃機関でのノック発生を効果的に抑制できなくなったり、点火時期が過度に遅角側の値となったりすることを抑制する。【解決手段】エンジン運転状態が各基本学習領域ｉの間で移行して点火時期指令値ＳＴの算出に用いられる基本学習値ＡＧ(i)の切り換えが行われるとき、その点火時期指令値ＳＴに段差が生じることは段差吸収処理の実行を通じて抑制される。ただし、エンジン運転状態が各多点学習領域ｎの間で移行したり、多点学習領域ｎと基本学習領域ｉにおける各多点学習領域ｎ以外の領域との間で移行したりするときに上記点火時期指令値ＳＴに段差が生じる場合、段差吸収処理が実行されるとエンジン１のノック発生を効果的に抑制できなくなったり、点火時期が過度に遅角側の値となったりする。従って、こうした状況のもとでは段差吸収処理の実行が禁止される。【選択図】図１
2010174856.tif 000002
【特許請求の範囲】
【請求項１】
内燃機関の点火時期を点火時期指令値に基づき同指令値が減少するほど遅角側に制御する点火時期制御装置であって、前記点火時期指令値は、機関運転状態に基づき算出されるノック限界点火時期に対し、ノック発生の有無に応じて増減するフィードバック項による補正を加えるとともに、前記フィードバック項に基づき更新される基本学習値による補正を加えることで算出されるものであり、前記基本学習値に関しては、機関運転状態に応じて区画された複数の基本学習領域毎に用意されて現在の機関運転状態に対応する基本学習領域の値が前記フィードバック項に基づき更新されるとともに前記ノック限界点火時期の補正に用いられるものであり、前記ノック限界点火時期の補正に用いられる学習値が機関運転状態の変化に伴い切り換えられる際、同切り換え前後の学習値の大きさの違いに基づく点火時期指令値の段差が生じるとき、その段差による点火時期指令値の変化分を同点火時期指令値に対し徐々に反映させる段差吸収処理が実行される内燃機関の点火時期制御装置において、
前記複数の基本学習領域のうちの少なくとも一つの領域内にあって、内燃機関の経年劣化によるノック発生への影響にばらつきが生じる領域に、機関運転状態に応じて区画された複数の多点学習領域が設定されるとともに、それら多点学習領域毎に前記ノック限界点火時期の補正に用いられる多点学習値が用意され、
前記多点学習値に関しては、現在の機関運転状態が多点学習領域にあるとき、その多点学習領域の値が前記フィードバック項に基づき更新されるとともに前記ノック限界点火時期の補正に用いられるものであり、
前記段差吸収処理に関しては、機関運転状態が各基本学習領域の間で移行するときのみ実行され、機関運転状態が各多点学習領域の間で移行するとき及び多点学習領域と基本学習領域との間で移行するときには実行禁止される
ことを特徴とする内燃機関の点火時期制御装置。
【請求項２】
機関運転状態が各多点学習領域の間で移行するとき及び多点学習領域と基本学習領域の間で移行するときであって、それに伴って前記ノック限界点火時期の補正に用いられる学習値が切り換えられる際、同切り換え前後の学習値の大きさの違いに基づく点火時期指令値の段差が許容上限値以上であるときには、前記段差吸収処理の実行禁止が解除されて同処理が実行される
請求項１記載の内燃機関の点火時期制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、内燃機関の点火時期制御装置に関する。
【背景技術】
【０００２】
自動車用エンジン等の内燃機関においては、ノックの発生を抑制するための点火時期の遅角を含めて点火時期制御が行われる。
こうした内燃機関の点火時期制御は機関運転状態等に基づき算出される点火時期指令値を用いて行われ、同制御を通じて上記点火時期指令値が減少するほど同機関の点火時期が遅角されることとなる。上記点火時期指令値は、機関運転状態に基づき算出されるノック限界点火時期に対し、ノック発生の有無に応じて増減するフィードバック項による補正を加えるとともに、前記フィードバック項に基づき更新される基本学習値による補正を加えることによって算出される。
【０００３】
点火時期指令値の算出に用いられる上記フィードバック項は、ノック発生ありのときには予め定められた遅角更新量分だけ減量されて点火時期を遅角補正し、ノック発生なしのときには予め定められた進角更新量分だけ増量されて点火時期を進角補正するものである。従って、フィードバック項は、ノック発生時に点火時期を直ちに遅角させてノックの抑制を図るとともに、ノック発生のないときには点火時期を進角させて上記点火時期の遅角によって低下した機関出力を可能な限り回復させるための補正項ということになる。
【０００４】
また、点火時期指令値の算出に用いられる上記基本学習値に関しては、機関運転状態に応じて区画された複数の基本学習領域毎に用意されて現在の機関運転状態に対応したものが上記フィードバック項に基づき更新される。こうした基本学習値の更新は、例えば、上記フィードバック項に徐変処理を施した値が新たな基本学習値とされることにより実現される。そして、このように更新される基本学習値は、ノックの発生を抑制すべく点火時期を定常的に補正するための補正項ということになる。
【０００５】
なお、上記点火時期指令値を算出する際にノック限界点火時期に対し補正を加えるための基本学習値としては、現在の機関運転状態に対応する基本学習領域の基本学習値が用いられる。従って、機関運転状態が所定の基本学習領域から別の基本学習領域に移行すると、それに合わせて上記点火時期指令値の算出に用いられる基本学習値も、上記所定の基本学習領域に対応したものから上記別の基本学習領域に対応したものに切り換えられる。
【０００６】
ここで、内燃機関において、燃焼室内でのデポジットの付着など経年劣化が生じると、同機関でノックが発生しやすくなることから、それに基づいて基本学習値が減少側の値に更新される。このように更新された基本学習値に関しては、内燃機関の経年劣化によって点火時期のノック限界が遅角側に移行する際の移行量に対応した値となると考えられる。ちなみに、内燃機関の経年劣化による点火時期のノック限界の遅角側への移行量に関しては各基本学習領域毎にほぼ等しくなると推測される関係から、各基本学習領域の基本学習値の更新が進んだ後にはそれら基本学習値同士が近い値になる。そして、上記更新後の基本学習値を用いて点火時期（直接的にはノック限界点火時期）を補正することで、内燃機関の経年劣化によってノックが発生しやすくなることの抑制が図られる。
【０００７】
ただし、各基本学習値の間で更新の度合いに違いがあると、それら基本学習値の間に大きな差が生じるようになる可能性がある。この場合、機関運転状態が所定の基本学習領域から別の基本学習領域に移行し、上記点火時期指令値の算出に用いられる基本学習値が切り換えられたとき、同切り換え前後の基本学習値の大きさの違いに基づき点火時期指令値に段差が生じる。その結果、上記点火時期指令値の段差の分だけ内燃機関にトルク段差が生じ、そのトルク段差によって自動車の運転者がショックを感じるおそれがある。このため、機関運転状態の変化に伴い点火時期指令値の算出に用いられる学習値の切り換えが行われ、同切り換え前後の学習値の大きさの違いに基づき内燃機関に上述したようにトルク段差が生じるおそれのあるときには、特許文献１に示されるように上記トルク段差が生じないようにするための段差吸収処理を実行することが考えられる。
【０００８】
こうした段差吸収処理に関しては、例えば、機関運転状態の変化に伴い点火時期指令値の算出に用いられる学習値の切り換えが行われる際、同切り換え前後の学習値の大きさの違いに基づく点火時期指令値の段差が生じるとき、その段差による点火時期指令値の変化分を同点火時期指令値に対し徐々に反映させることによって実現される。このように段差吸収処理を実行することにより、機関運転状態の変化に伴い点火時期指令値の算出に用いられる学習値の切り換えが行われる際、同切り換え前後の学習値の大きさの違いに基づく内燃機関のトルク段差の発生を抑制することができるようになる。
【０００９】
ところで、燃焼室内でのデポジットの付着といった内燃機関の経年劣化によるノック発生への影響は、同一の基本学習領域内において、その領域内中における更に細かな機関運転領域によって大きく異なる可能性がある。この場合、基本学習領域毎に設定された基本学習値を用いて点火時期の補正を行うとき、同基本学習領域内での機関運転状態によっては上記基本学習値が内燃機関の経年劣化によるノック発生を抑制するうえで不適切な値となるおそれがある。詳しくは、上記ノック発生を抑制するうえで、上記基本学習値が大きすぎる値となって同ノック発生を効果的に抑制できなくなったり、上記基本学習値が小さすぎる値となって点火時期が過度に遅角側に補正されて内燃機関の出力低下を招いたりするおそれがある。
【００１０】
こうした不具合に対処するため、基本学習領域内において内燃機関の経年劣化によるノック発生への影響のばらつきが大きい領域に、特許文献２に示されるように、同基本学習領域よりも細分化された複数の学習領域を設定し、それら細分化された学習領域毎に細分学習値を用意することが考えられる。この場合、現在の機関運転状態が基本学習領域内において内燃機関の経年劣化によるノック発生への影響のばらつきが大きい領域にあるときには、上記細分化された学習領域のうち現在の機関運転状態の存在する領域の細分学習値がフィードバック補正項に基づき更新され、更新後の細分学習値が基本学習値に代えて点火時期の補正に用いられる。
【００１１】
基本学習領域内における内燃機関の経年劣化によるノック発生への影響のばらつきが大きい領域において、同領域を細分化した学習領域毎の細分学習値はそれぞれ、更新が進むことによって上記ばらつきに応じてノック発生を抑制するうえで適切な値となる。そして、更新の進んだ各細分学習値は、上記細分化した学習領域毎における内燃機関の経年劣化によるノック発生への影響のばらつきに応じて、互いに異なる値とされるようになる。そして、上記細分化された学習領域での各々の細分学習値を用いて点火時期を補正することにより、同領域において内燃機関でのノック発生を効果的に抑制できなくなったり、同点火時期が過度に遅角側に補正されて内燃機関の出力低下を招いたりするという不具合が生じることを抑制できるようになる。
【先行技術文献】
【特許文献】
【００１２】
【特許文献１】特開２００７−２６２９４１公報（段落［００２９］、図４）
【特許文献２】特開昭６２−４５９５８公報（第６頁左上欄第１３行〜右上欄第４行）
【発明の概要】
【発明が解決しようとする課題】
【００１３】
上述したように、細分学習値を用いて点火時期の補正を行うことで、基本学習領域内における内燃機関の経年劣化によるノック発生への影響のばらつきが大きい領域でも、そのばらつきに応じて点火時期がノック発生を効果的に抑制し得る値となり、且つ過度に遅角側の値となることのないようにすることはできる。
【００１４】
ここで、機関運転状態が基本学習領域内における内燃機関の経年劣化によるノック発生への影響のばらつきが大きい領域内で変化したり、その領域と同領域外との間で変化したりする際には、それに伴い点火時期の補正に用いられる細分学習値が切り換えられ、その切り換え前後の細分学習値の大きさに違いが生じる。このように切り換え前後の細分学習値の大きさに違いが生じるのは、更新の進んだ各細分学習値は、上記細分化した学習領域毎における内燃機関の経年劣化によるノック発生への影響のばらつきに応じて、互いに異なる値とされるようになるためである。言い換えれば、上記細分学習値に関しては、内燃機関の経年劣化によるノック発生への影響のばらつきに応じて各学習領域毎に異なる値とすることで、同細分学習値に基づく点火時期の補正を通じて、上記細分化された各学習領域で点火時期の過遅角を抑制しつつ内燃機関のノック発生を効果的に抑制することを目的とした値ということになる。
【００１５】
しかし、上記切り換え前後の細分学習値の大きさの違いに基づき点火時期指令値に段差が生じて内燃機関にトルク段差が生じる際、同段差を抑制すべく上述した段差吸収処理が実行されると、それに起因して内燃機関でのノック発生を効果的に抑制できなくなったり、点火時期が過度に遅角側の値となったりするおそれがある。すなわち、上記段差吸収処理では、上述した点火時期指令値の段差による点火時期指令値の変化分を同点火時期指令値に対し徐々に反映させることとなる。このように上記段差による点火時期指令値の変化分を同点火時期指令値に対し徐々に反映させるということは、その反映中にあっては点火時期が内燃機関のノック発生を効果的に抑制できない値となった状態、もしくは過度に遅角側の値となった状態であることを意味する。従って、上述した状況で段差吸収処理が実行されると、それに起因して内燃機関でのノック発生を効果的に抑制できなくなったり、点火時期が過度に遅角側の値となったりするおそれがある。
【００１６】
本発明はこのような実情に鑑みてなされたものであって、その目的は、段差吸収処理の不用意な実行により、内燃機関でのノック発生を効果的に抑制できなくなったり、点火時期が過度に遅角側の値となったりすることを抑制できる内燃機関の点火時期制御装置を提供することにある。
【課題を解決するための手段】
【００１７】
以下、上記目的を達成するための手段及びその作用効果について記載する。
上記目的を達成するため、請求項１記載の発明では、内燃機関の点火時期を点火時期指令値に基づき同指令値が減少するほど遅角側に制御する点火時期制御装置であって、前記点火時期指令値は、機関運転状態に基づき算出されるノック限界点火時期に対し、ノック発生の有無に応じて増減するフィードバック項による補正を加えるとともに、前記フィードバック項に基づき更新される基本学習値による補正を加えることで算出されるものであり、前記基本学習値に関しては、機関運転状態に応じて区画された複数の基本学習領域毎に用意されて現在の機関運転状態に対応する基本学習領域の値が前記フィードバック項に基づき更新されるとともに前記ノック限界点火時期の補正に用いられるものであり、前記ノック限界点火時期の補正に用いられる学習値が機関運転状態の変化に伴い切り換えられる際、同切り換え前後の学習値の大きさの違いに基づく点火時期指令値の段差が生じるとき、その段差による点火時期指令値の変化分を同点火時期指令値に対し徐々に反映させる段差吸収処理が実行される内燃機関の点火時期制御装置において、前記複数の基本学習領域のうちの少なくとも一つの領域内にあって、内燃機関の経年劣化によるノック発生への影響にばらつきが生じる領域に、機関運転状態に応じて区画された複数の多点学習領域が設定されるとともに、それら多点学習領域毎に前記ノック限界点火時期の補正に用いられる多点学習値が用意され、前記多点学習値に関しては、現在の機関運転状態が多点学習領域にあるとき、その多点学習領域の値が前記フィードバック項に基づき更新されるとともに前記ノック限界点火時期の補正に用いられるものであり、前記段差吸収処理に関しては、機関運転状態が各基本学習領域の間で移行するときのみ実行され、機関運転状態が各多点学習領域の間で移行するとき及び多点学習領域と基本学習領域との間で移行するときには実行禁止されることを要旨とした。
【００１８】
基本学習領域内における内燃機関の経年劣化によるノック発生への影響のばらつきが大きい領域では、複数の多点学習領域が設定され、それら多点学習領域のうち現在の機関運転状態のある多点学習領域に対応する多点学習値による補正がノック限界点火時期に対し加えられる。ここで、各多点学習領域では、内燃機関の経年劣化によるノック発生への影響が大きく異なり、それに応じて各多点学習領域の多点学習値も更新が進むにつれて互いに異なる値となる。この多点学習値によるノック限界点火時期の補正により、点火時期の過遅角を抑制しつつ、内燃機関の経年劣化等に起因する同機関での定常的なノック発生の抑制が図られるようになる。
【００１９】
機関運転状態が多点学習領域の間で移行するとき、及び多点学習領域と基本学習領域との間で移行するときには、点火時期指令値の算出に用いられる学習値が切り換えられ、同切り換え前後の多点学習値の大きさの違いに起因して点火時期指令値に段差が生じ、ひいては内燃機関にトルク段差が生じることとなる。仮に、こうした状況のもとで段差吸収処理が実行されたとすると、上記点火時期指令値の段差による点火時期指令値の変化分が同点火時期指令値に対し徐々に反映されるため、点火時期指令値の段差の発生が抑制され、ひいては内燃機関のトルク段差の発生も抑制される。しかし、上記段差による点火時期指令値の変化分を同点火時期指令値に対し徐々に反映させるということは、その反映中にあっては点火時期が内燃機関のノック発生を効果的に抑制できない値となった状態、もしくは過度に遅角側の値となった状態であることを意味する。
【００２０】
上記構成によれば、機関運転状態が多点学習領域の間で移行するとき、及び多点学習領域と基本学習領域との間で移行するときには、点火時期指令値の算出に用いられる学習値が切り換えられる際、その切り換え前後の学習値の大きさの違いに起因して点火時期指令値に段差が生じるとしても、上記段差吸収処理が実行されることはない。従って、上記の状況下で段差吸収処理が実行されることにより、内燃機関でのノック発生を効果的に抑制できなくなったり、点火時期が過度に遅角側の値となったりすることを回避できるようになる。
【００２１】
請求項２記載の発明では、請求項１記載の発明では、機関運転状態が各多点学習領域の間で移行するとき及び多点学習領域と基本学習領域との間で移行するときであって、それに伴って前記ノック限界点火時期の補正に用いられる学習値が切り換えられる際、同切り換え前後の学習値の大きさの違いに基づく点火時期指令値の段差が許容上限値以上であるときには、前記段差吸収処理の実行禁止が解除されて同処理が実行されることを要旨とした。
【００２２】
機関運転状態が各多点学習領域の間で移行するとき、及び多点学習領域と基本学習領域との間で移行するときには、点火時期指令値の算出に用いられる多点学習値が切り換えられ、同切り換え前後の多点学習値の大きさの違いに起因して点火時期指令値に段差が生じ、ひいては内燃機関にトルク段差が生じることとなる。上記点火時期指令値の段差が許容上限値以上であるときには、その段差に起因する内燃機関のトルク段差が大きくなり、同トルク段差によって自動車の運転者が感じるショックが問題となる。しかし、上記構成によれば、上記点火時期指令値の段差が上記許容上限値以上であるときには、段差吸収処理の実行禁止が解除されて同処理が実行され、その段差吸収処理の実行を通じて内燃機関のトルク段差の発生が抑制される。従って、内燃機関の上記トルク段差により自動車の運転者がショックを感じることが抑制される。
【図面の簡単な説明】
【００２３】
【図１】本実施形態の点火時期制御装置が適用されるエンジン全体を示す略図。
【図２】（ａ）〜（ｄ）は、エンジン運転状態が所定の学習領域から別の学習領域に移行するときの点火時期指令値の算出に用いられる学習値の変化態様、点火時期指令値の変化態様、エンジントルクの変化態様、及び反映制御値の変化態様を示すタイムチャート。
【図３】（ａ）〜（ｄ）は、エンジン運転状態が所定の学習領域から別の学習領域に移行するときの点火時期指令値の算出に用いられる学習値の変化態様、点火時期指令値の変化態様、エンジントルクの変化態様、及び反映制御値の変化態様を示すタイムチャート。
【図４】点火時期指令値の算出の概要を示す説明図。
【図５】点火時期指令値の算出の概要を示す説明図。
【図６】基本学習領域及び多点学習領域を示す説明図。
【図７】最も低回転側の基本学習領域内における多点学習領域以外の領域における点火時期指令値の推移、及びエンジンの経年劣化の有無による点火時期指令値の上記推移の変化の一例を示したグラフ。
【図８】多点学習領域における点火時期指令値の推移、及びエンジンの経年劣化の有無による点火時期指令値の上記推移の変化の一例を示したグラフ。
【図９】（ａ）〜（ｄ）は、エンジン運転状態が所定の学習領域から別の学習領域に移行するときの点火時期指令値の算出に用いられる学習値の変化態様、点火時期指令値の変化態様、エンジントルクの変化態様、及び反映制御値の変化態様を示すタイムチャート。
【図１０】（ａ）〜（ｄ）は、エンジン運転状態が所定の学習領域から別の学習領域に移行するときの点火時期指令値の算出に用いられる学習値の変化態様、点火時期指令値の変化態様、エンジントルクの変化態様、及び反映制御値の変化態様を示すタイムチャート。
【図１１】段差吸収処理の実行及び実行禁止の手順を示すフローチャート。
【発明を実施するための形態】
【００２４】
以下、本発明を自動車用エンジンの点火時期制御装置に具体化した一実施形態を図１〜図１１に従って説明する。
図１に示されるエンジン１においては、その燃焼室２に吸気通路３を通じて空気が吸入されるとともに、燃料噴射弁４から噴射された燃料が同燃焼室２に供給される。この空気と燃料とからなる混合気に対し点火プラグ５による点火が行われると、同混合気が燃焼してピストン６が往復移動し、エンジン１の出力軸であるクランクシャフト７が回転する。そして、燃焼後の混合気は排気として各燃焼室２から排気通路８に送り出される。
【００２５】
こうしたエンジン１の点火時期制御装置は、同エンジン１の各種運転制御を実行する電子制御装置２６を備えている。この電子制御装置２６は、上記制御に係る各種演算処理を実行するＣＰＵ、その制御に必要なプログラムやデータの記憶されたＲＯＭ、ＣＰＵの演算結果等が一時記憶されるＲＡＭ、外部との間で信号を入・出力するための入・出力ポート等を備えて構成されている。
【００２６】
電子制御装置２６の入力ポートには、以下に示す各種センサが接続されている。
・自動車の運転者によって踏み込み操作されるアクセルペダル２７の踏み込み量（アクセル踏込量）を検出するアクセルポジションセンサ２８。
【００２７】
・吸気通路３に設けられたスロットルバルブ２９の開度（スロットル開度）を検出するスロットルポジションセンサ３０。
・エンジン１でのノック発生を検出するノックセンサ３１。
【００２８】
・吸気通路３を通じて燃焼室２に吸入される空気の量を検出するエアフローメータ３２。
・クランクシャフト７の回転に対応する信号を出力し、エンジン回転速度（機関回転速度）の算出等に用いられるクランクポジションセンサ３４。
【００２９】
また、電子制御装置２６の出力ポートには、点火プラグ５の駆動回路等が接続されている。
そして、電子制御装置２６は、上記各種センサから入力した検出信号に基づき、エンジン回転速度やエンジン負荷（エンジン１の１サイクル当たりに燃焼室２に吸入される空気の量）といったエンジン運転状態を把握する。なお、エンジン回転速度はクランクポジションセンサ３４からの検出信号に基づき求められる。また、エンジン負荷は、アクセルポジションセンサ２８、スロットルポジションセンサ３０、及び、エアフローメータ３２等の検出信号に基づき求められるエンジン１の吸入空気量とエンジン回転速度とから算出される。電子制御装置２６は、エンジン負荷やエンジン回転速度といったエンジン運転状態に応じて、上記出力ポートに接続された各種駆動回路に指令信号を出力する。こうしてエンジン１の点火時期制御等の各種運転制御が電子制御装置２６を通じて実施される。
【００３０】
次に、エンジン１の点火時期制御の概要について説明する。
エンジン１の点火時期に関しては、エンジン運転状態等から求められる点火時期指令値ＳＴに基づき、同点火時期指令値ＳＴが減少するほど遅角側に制御されることとなる。同点火時期指令値ＳＴは、例えば、エンジン運転状態に基づき算出されるノック限界点火時期（ＢＴ−Ｒ）に対し、ノック発生の有無に応じて増減するフィードバック項Ｆによる補正を加えるとともに、そのフィードバック項Ｆに基づき更新される基本学習値ＡＧ(i) による補正を加えることによって算出される。
【００３１】
ここで、点火時期指令値ＳＴの算出に用いられるノック限界点火時期（ＢＴ−Ｒ）は、エンジン負荷及びエンジン回転速度に基づき標準的な環境条件下においてノックを生じさせない最も進角側の点火時期として算出されるベース点火時期ＢＴから、実験等により予め定められた固定値であるノック余裕代Ｒを減算することにより算出される。このように算出されたノック限界点火時期（ＢＴ−Ｒ）は、上記ベース点火時期ＢＴからノック余裕代Ｒだけ遅角させた値となり、最もノックが発生しやすい環境条件下においてノックを生じさせない最も進角側の点火時期を表す値となる。なお、上記環境条件としては気温、湿度、大気圧、及びエンジン冷却水温等があげられ、これらの条件に応じてエンジン１でのノックの発生しやすさが変化することとなる。
【００３２】
上記点火時期指令値ＳＴの算出に用いられるフィードバック項Ｆは、ノックセンサ３１からの検出信号に基づきノック発生ありの旨判断されたときには予め定められた遅角更新量ａ分だけ減量されて点火時期を遅角補正し、ノック発生なしの旨判断されたときには予め定められた進角更新量ｂ分だけ増量されて点火時期を進角補正するものである。従って、フィードバック項Ｆは、ノック発生時に点火時期を直ちに遅角させてノックの抑制を図るとともに、ノック発生のないときには点火時期を進角させて上記点火時期の遅角によって低下したエンジン出力を可能な限り回復させるための補正項ということになる。
【００３３】
上記点火時期指令値ＳＴの算出に用いられる基本学習値ＡＧ(i) は、エンジン負荷及びエンジン回転速度といったエンジン運転状態に応じて区画された複数（この例では「３」）の基本学習領域ｉ（ｉ＝１、２、３）毎に用意されている。そして、点火時期指令値ＳＴの算出に用いられる基本学習値ＡＧ(i) としては、現在のエンジン運転状態に対応する基本学習領域ｉの値が用いられることとなる。また、現在のエンジン運転状態のある基本学習領域ｉでは、フィードバック項Ｆに基づき基本学習値ＡＧ(i) の更新が行われる。こうした基本学習値ＡＧ(i) の更新は、例えば、上記フィードバック項Ｆに徐変処理を施した値を新たな基本学習値ＡＧ(i) とすることによって実現される。このように更新される基本学習値ＡＧ(i) は、ノックの発生を抑制すべく点火時期を定常的に補正するための補正項ということになる。
【００３４】
ここで、燃焼室２内でのデポジットの付着などエンジン１の経年劣化が生じると、同エンジン１でノックが発生しやすくなることから、それに基づいて基本学習値ＡＧ(i) が減少側の値に更新される。このように更新された基本学習値ＡＧ(i) に関しては、エンジン１の経年劣化によって点火時期のノック限界が遅角側に移行する際の移行量に対応した値となると考えられる。ちなみに、エンジン１の経年劣化による点火時期のノック限界の遅角側への移行量に関しては各基本学習領域ｉ毎にほぼ等しくなると推測される関係から、各基本学習領域ｉの基本学習値ＡＧ(i) の更新が進んだ後にはそれら基本学習値ＡＧ(i) 同士が近い値になる。そして、上記更新後の基本学習値ＡＧ(i) を用いて点火時期（直接的にはノック限界点火時期（ＢＴ−Ｒ））を補正することで、エンジン１の経年劣化によってノックが発生しやすくなることの抑制が図られる。
【００３５】
ただし、各基本学習値ＡＧ(i) の間で更新の度合いに違いがあると、それら基本学習値ＡＧ(i) の間に大きな差が生じるようになる可能性がある。この場合、エンジン運転状態が所定の基本学習領域ｉから別の基本学習領域ｉに移行し、上記点火時期指令値ＳＴの算出に用いられる基本学習値ＡＧ(i) が切り換えられたとき、同切り換え前後の基本学習値ＡＧ(i) の大きさの違いに基づき点火時期指令値ＳＴに段差が生じる。その結果、上記点火時期指令値ＳＴの段差の分だけエンジン１にトルク段差が生じ、そのトルク段差によって自動車の運転者がショックを感じるおそれがある。このため、エンジン運転状態の変化に伴い点火時期指令値ＳＴの算出に用いられる学習値の切り換えが行われ、同切り換え前後の学習値の大きさの違いに基づきエンジンに上述したようにトルク段差が生じるおそれのあるときには、上記トルク段差が生じないようにするための段差吸収処理を実行することが考えられる。
【００３６】
こうした段差吸収処理に関しては、エンジン運転状態の変化に伴い点火時期指令値ＳＴの算出に用いられる学習値の切り換えが行われる際、同切り換え前後の学習値の大きさの違いに基づく点火時期指令値ＳＴの段差が生じるとき、その段差による点火時期指令値ＳＴの変化分を同点火時期指令値ＳＴに対し徐々に反映させることによって実現される。このように段差吸収処理を実行することにより、エンジン運転状態の変化に伴い点火時期指令値ＳＴの算出に用いられる学習値の切り換えが行われる際、同切り換え前後の学習値の大きさの違いに基づくエンジン１のトルク段差の発生を抑制することができるようになる。
【００３７】
図２は、エンジン運転状態の変化に伴い点火時期指令値ＳＴの算出に用いられる学習値（基本学習値ＡＧ(i) ）が切り換えられ、それによって同学習値が増大した場合に行われる段差吸収処理について説明するためのタイムチャートである。
【００３８】
エンジン運転状態が例えば基本学習領域ｉ（ｉ＝１）から基本学習領域ｉ（ｉ＝２）に移行し、それに基づき点火時期指令値ＳＴの算出に用いられる基本学習値ＡＧ(i) が図２（ａ）に示されるように切り換えられる（タイミングＴ１）。この例では、上記切り換え後の基本学習値ＡＧ(i) が同切り換え前の基本学習値ＡＧ(i) よりも大きくなる。こうした切り換え前後の基本学習値ＡＧ(i) の大きさの違いは、各基本学習値ＡＧ(i) における更新の度合いの違い等によって生じる。そして、上記切り換え前後の基本学習値ＡＧ(i) に大きさの違いが生じると、それに基づき図２（ｂ）に二点鎖線で示されるように点火時期指令値ＳＴに段差が生じ、ひいては図２（ｃ）に二点鎖線で示されるようにエンジン１のトルク段差が生じることとなる。
【００３９】
しかし、こうした点火時期指令値ＳＴの段差は、上記切り換え後の基本学習値ＡＧ(i) から同切り換え前の基本学習値ＡＧ(i) を減算した値に対応する大きさとなっており、上記段差吸収処理の実行を通じて抑制されることとなる。この段差吸収処理においては、まず上記切り換え後の基本学習値ＡＧ(i) から同切り換え前の基本学習値ＡＧ(i) を減算した値として反映制御値ΔＡＧが算出され（Ｔ１）、そのときの値を初期値として同反映制御値ΔＡＧを時間経過に伴い徐々に小さくすることが行われる。従って、上記反映制御値ΔＡＧは、タイミングＴ１以降、時間経過に伴って図２（ｄ）に示されるように「０」になるまで徐々に減少される。そして、上記のように変化する反映制御値ΔＡＧが点火時期指令値ＳＴの算出毎に同点火時期指令値ＳＴから減算される。
【００４０】
その結果、反映制御値ΔＡＧの減算後の点火時期指令値ＳＴに関しては、上記基本学習値ＡＧ(i) の切り換え前後の段差による点火時期指令値ＳＴの変化分（二点鎖線の段差）が時間経過に伴い徐々に反映された値となり、図２（ｂ）に実線で示されるように二点鎖線で示される値へと徐々に増加（進角側に変化）することとなる。また、上記点火時期指令値ＳＴが二点鎖線で示される値へと徐々に増加することにより、エンジン１のトルクも図２（ｄ）に実線で示されるように二点鎖線で示される値へと徐々に増加する。このため、エンジン運転状態の変化に伴い点火時期指令値ＳＴの算出に用いられる学習値の切り換えが行われる際、同切り換え前後の学習値の大きさの違いに基づきエンジン１のトルク段差が発生することは抑制される。
【００４１】
図３は、エンジン運転状態の変化に伴い点火時期指令値ＳＴの算出に用いられる学習値（基本学習値ＡＧ(i) ）が切り換えられ、それによって同学習値が減少した場合に行われる段差吸収処理について説明するためのタイムチャートである。
【００４２】
エンジン運転状態が例えば基本学習領域ｉ（ｉ＝２）から基本学習領域ｉ（ｉ＝１）に移行し、それに基づき点火時期指令値ＳＴの算出に用いられる基本学習値ＡＧ(i) が図３（ａ）に示されるように切り換えられる（タイミングＴ２）。この例では、上記切り換え後の基本学習値ＡＧ(i) が同切り換え前の基本学習値ＡＧ(i) よりも小さくなる。こうした切り換え前後の基本学習値ＡＧ(i) の大きさの違いも、各基本学習値ＡＧ(i) における更新の度合いの違い等によって生じる。そして、上記切り換え前後の基本学習値ＡＧ(i) に大きさの違いが生じると、それに基づき図３（ｂ）に二点鎖線で示されるように点火時期指令値ＳＴに段差が生じ、ひいては図３（ｃ）に二点鎖線で示されるようにエンジン１のトルク段差が生じることとなる。
【００４３】
しかし、こうした点火時期指令値ＳＴの段差は、上記切り換え後の基本学習値ＡＧ(i) から同切り換え前の基本学習値ＡＧ(i) を減算した値に対応する大きさとなっており、上記段差吸収処理の実行を通じて抑制されることとなる。この段差吸収処理においては、まず上記切り換え後の基本学習値ＡＧ(i) から同切り換え前の基本学習値ＡＧ(i) を減算した値として反映制御値ΔＡＧが算出され（Ｔ２）、そのときの値を初期値として同反映制御値ΔＡＧを時間経過に伴い徐々に大きくすることが行われる。従って、上記反映制御値ΔＡＧは、タイミングＴ２以降、時間経過に伴って図３（ｄ）に示されるように「０」になるまで徐々に増大される。そして、上記のように変化する反映制御値ΔＡＧが点火時期指令値ＳＴの算出毎に同点火時期指令値ＳＴから減算される。
【００４４】
その結果、反映制御値ΔＡＧの減算後の点火時期指令値ＳＴに関しては、上記基本学習値ＡＧ(i) の切り換え前後の段差による点火時期指令値ＳＴの変化分（二点鎖線の段差）が時間経過に伴い徐々に反映された値となり、図３（ｂ）に実線で示されるように二点鎖線で示される値へと徐々に減少（遅角側に変化）することとなる。また、上記点火時期指令値ＳＴが二点鎖線で示される値へと徐々に減少することにより、エンジン１のトルクも図３（ｄ）に実線で示されるように二点鎖線で示される値へと徐々に減少する。このため、エンジン運転状態の変化に伴い点火時期指令値ＳＴの算出に用いられる学習値の切り換えが行われる際、同切り換え前後の学習値の大きさの違いに基づきエンジン１のトルク段差が発生することは抑制される。
【００４５】
ところで、燃焼室２内でのデポジットの付着といったエンジン１の経年劣化によるノック発生への影響は、同一の基本学習領域ｉ内において、その領域ｉ内中における更に細かなエンジン運転領域によって大きく異なる可能性がある。この場合、基本学習領域ｉ毎に設定された基本学習値ＡＧ(i) を用いて点火時期の補正を行うとき、同基本学習領域ｉ内でのエンジン運転状態によっては上記基本学習値ＡＧ(i) がエンジン１の経年劣化によるノック発生を抑制するうえで不適切な値となるおそれがある。詳しくは、上記ノック発生を抑制するうえで、上記基本学習値ＡＧ(i) が大きすぎる値となって同ノック発生を効果的に抑制できなくなったり、上記基本学習値ＡＧ(i) が小さすぎる値となって点火時期が過度に遅角側に補正されてエンジン１の出力低下を招いたりするおそれがある。
【００４６】
上述した不具合への対策として、この実施形態では、以下の式（１）から求められる点火時期指令値ＳＴに基づきエンジン１の点火時期制御を行うようにしている。
ＳＴ＝（ＢＴ−Ｒ）＋Ｆ＋ＡＧ(i) ＋ＡＧｄｐ(n)   …（１）
ＳＴ        ：点火時期指令値
（ＢＴ−Ｒ）：ノック限界点火時期
ＢＴ        ：ベース点火時期
Ｒ          ：ノック余裕代
Ｆ          ：フィードバック項
ＡＧ(i)     ：基本学習値
ＡＧｄｐ(n) ：多点学習値
この式（１）の多点学習値ＡＧｄｐ(n) は、燃焼室２内でのデポジットの付着などエンジン１の経年劣化が生じたとき、その経年劣化によるノック発生への影響のばらつきに対応して点火時期を補正するための補正項である。
【００４７】
この多点学習値ＡＧｄｐ(n) は、基本学習領域ｉ内におけるエンジン１の経年劣化によるノック発生への影響のばらつきが大きい領域にエンジン運転状態に応じて同基本学習領域ｉよりも更に細かく区画された複数の多点学習領域ｎ毎に用意されている。そして、各多点学習領域ｎの多点学習値ＡＧｄｐ(n) のうち、エンジン１の運転時に現在のエンジン運転状態のある多点学習領域ｎに対応したものがフィードバック項Ｆに基づき更新される。詳しくは、基本学習値ＡＧ(i) の更新と同様、フィードバック項Ｆに徐変処理を施した値を新たな多点学習値ＡＧｄｐ(n) とすることにより、同多点学習値ＡＧｄｐ(n) の更新が行われることとなる。従って、基本学習領域ｉ内におけるエンジン１の経年劣化によるノック発生への影響のばらつきが大きい領域では、そのばらつきに応じて同領域を細分化した多点学習領域ｎ毎の多点学習値ＡＧｄｐ(n) をそれぞれノック発生を抑制するうえで適切な値とすることができる。なお、現在のエンジン運転状態が多点学習領域ｎ内にあるときには、その多点学習領域ｎの存在する基本学習領域ｉの基本学習値ＡＧ(i) のフィードバック項Ｆに基づく更新は行われないようにされる。
【００４８】
式（１）の多点学習値ＡＧｄｐ(n) としては、現在のエンジン運転状態が複数の多点学習領域ｎ内のいずれかにあるときには、同エンジン運転状態のある多点学習領域ｎに対応したものが用いられる。また、現在のエンジン運転状態が複数の多点学習領域ｎのうちのいずれにもないときには、式（１）の多点学習値ＡＧｄｐ(n) が「０」に設定されることとなる。このため、現在のエンジン運転状態が複数の多点学習領域ｎのうちのいずれにもないときには、点火時期指令値ＳＴが多点学習値ＡＧｄｐ(n) を用いずに算出されることになり、点火時期の同多点学習値ＡＧｄｐ(n) による補正も行われなくなる。
【００４９】
上記式（１）から求められる点火時期指令値ＳＴに基づきエンジン１の点火時期制御を行うことで、基本学習領域ｉ内におけるエンジン１の経年劣化によるノック発生への影響のばらつきが大きい領域では、ノック限界点火時期（ＢＴ−Ｒ）に対し基本学習値ＡＧ(i) 及び多点学習値ＡＧｄｐ(n) に基づく補正が加えられることとなる。この多点学習値ＡＧｄｐ(n) は、基本学習領域ｉ内におけるエンジン１の経年劣化によるノック発生への影響のばらつきが大きい領域に同基本学習領域ｉよりも細かく区画された複数の多点学習領域ｎ毎に用意されたものであり、現在の機関運転状態のある多点学習領域ｎに対応したものが用いられる。
【００５０】
こうした多点学習値ＡＧｄｐ(n) によるノック限界点火時期（ＢＴ−Ｒ）の補正により、基本学習領域ｉ内であってエンジン１の経年劣化によるノック発生への影響のばらつきが大きい領域においても、同経年劣化等に起因する同エンジン１での定常的なノック発生を的確に抑制することができる。言い換えれば、基本学習領域ｉ内であってエンジン１の経年劣化によるノック発生への影響のばらつきが大きい領域において、エンジン１でのノック発生を効果的に抑制できなくなったり、同点火時期が過度に遅角側に補正されてエンジン１の出力低下を招いたりするという不具合が生じることを抑制できるようになる。
【００５１】
図４は、エンジン運転状態が多点学習領域ｎにあり、同領域ｎの多点学習値ＡＧｄｐ(n) が負の値であるときの点火時期指令値ＳＴの算出の概要を示している。また、図５は、エンジン運転状態が多点学習領域ｎにあり、同領域ｎの多点学習値ＡＧｄｐ(n) が正の値であるときの点火時期指令値ＳＴの算出の概要を示している。これらの図に示されるように、上記点火時期指令値ＳＴに関しては、ノック限界点火時期（ＢＴ−Ｒ）に対し、上記多点学習領域ｎに対応する多点学習値ＡＧｄｐ(n) による補正が加えられるとともに、同多点学習領域ｎの存在する基本学習領域ｉに対応する基本学習値ＡＧ(i) による補正が加えられる。この状態にあって、ノック発生の有無に応じてフィードバック項Ｆが増減されると、そのフィードバック項Ｆの増減分だけ点火時期指令値ＳＴが矢印Ｙ１又は矢印Ｙ２で示されるように増減する。そして、この増減するフィードバック項Ｆを徐変処理した値が新たな多点学習値ＡＧｄｐ(n) とされることで同多点学習値ＡＧｄｐ(n) の更新が行われる。
【００５２】
図６は、上記基本学習領域ｉ及び多点学習領域ｎを示したものである。この例では、基本学習領域ｉとして、エンジン回転速度に応じて三つに区画された基本学習領域ｉ（ｉ＝１、２、３）が設定されている。また、複数の基本学習領域ｉのうちエンジン回転速度の変化方向について最も低回転側に存在する基本学習領域ｉ（ｉ＝１）内において、エンジン負荷の変化方向について低負荷側の領域には、複数の多点学習領域ｎが設定されている。これは、こうした領域において、エンジン１の経年劣化によるノック発生への影響の度合いのばらつきが大きくなるためである。そして、同領域がエンジン回転速度の変化方向について４つに区画されるとともにエンジン負荷の変化方向について６つに区画され、その領域に合計で２４の多点学習領域ｎ（ｎ＝１〜２４）が設定されている。従って、多点学習領域ｎに関してはエンジン負荷方向についての数がエンジン回転方向についての数よりも多くされている。
【００５３】
ここで、エンジン１の経年劣化の有無による点火時期指令値ＳＴの変化について、最も低回転側の基本学習領域ｉ（ｉ＝１）内における多点学習領域ｎとそれ以外の領域とでの違いを図７及び図８に基づき説明する。
【００５４】
図７は、上記基本学習領域ｉ（ｉ＝１）内における多点学習領域ｎ以外の領域において、エンジン１の経年劣化の有無による点火時期指令値ＳＴの変化の一例を示したものである。なお、同図における実線及び破線は、エンジン回転速度一定の条件のもとでのエンジン負荷の変化に対する点火時期指令値ＳＴの推移であって、それぞれエンジン１の経年劣化なしでの推移（実線）と同経年劣化ありでの推移（二点鎖線）とを示している。
【００５５】
同図においては、エンジン１の経年劣化が生じてノックが発生しやすくなると、点火時期指令値ＳＴが実線で示される状態から破線で示される状態へとエンジン負荷の変化方向について一律の幅をもって遅角側に変化する。この点火時期指令値ＳＴの遅角側への変化量は、エンジン１の経年劣化の発生に伴うノック発生を抑制すべく、上記基本学習領域ｉの基本学習値ＡＧ(i) が遅角側に変化した分に対応している。上記基本学習領域ｉ（ｉ＝１）内における多点学習領域ｎ以外の領域においては、エンジン１の経年劣化によりノックが発生しやすくなることを、上記基本学習値ＡＧ(i) による点火時期の補正を通じて抑制可能である。これは、上記領域内においては、エンジン１の経年劣化によるノック発生への影響がほぼ一律となるためである。
【００５６】
一方、図８は、上記基本学習領域ｉ（ｉ＝１）内における各多点学習領域ｎの設定された領域（ここでは例えばｎ＝１〜６の多点学習領域ｎに対応する領域）において、エンジン１の経年劣化の有無による点火時期指令値ＳＴの変化の一例を示したものである。なお、同図における実線及び破線は、エンジン回転速度一定の条件のもとでのエンジン負荷の変化に対する点火時期指令値ＳＴの推移であって、それぞれエンジン１の経年劣化なしでの推移（実線）と同経年劣化ありでの推移（二点鎖線）とを示している。
【００５７】
同図においては、エンジン１の経年劣化が生じてノックが発生しやすくなると、点火時期指令値ＳＴが実線で示される状態から破線で示される状態へとエンジン負荷毎に異なる幅をもって遅角側に変化する。この点火時期指令値ＳＴの遅角側への変化量には、上記基本学習値ＡＧ(i) の遅角側への変化分に加え、エンジン１の経年劣化の発生に伴うノック発生を抑制すべく各多点学習領域ｎの多点学習値ＡＧｄｐ(n) が遅角側に変化した分も含まれている。上記基本学習領域ｉ（ｉ＝１）内における各多点学習領域ｎの設定された領域では、エンジン１の経年劣化によりノックが発生しやすくなることを、上記多点学習値ＡＧｄｐ(n) による点火時期の補正を通じて抑制可能である。これは、エンジン１の経年劣化によるノック発生への影響の度合いが多点学習領域ｎ毎に大きくばらつくとしても、そのばらつきを考慮して細分化した多点学習領域ｎ毎の多点学習値ＡＧｄｐ(n) がそれぞれノック発生を抑制するうえで適切な値に更新され、それら多点学習値ＡＧｄｐ(n) を用いて点火時期の補正が行われるためである。
【００５８】
ところで、エンジン運転状態が各多点学習領域ｎの間で変化したり、その領域ｎと同領域ｎ外との間で変化したりする際には、それに伴い点火時期の補正に用いられる多点学習値ＡＧｄｐ(n) が切り換えられ、その切り換え前後の多点学習値ＡＧｄｐ(n) の大きさに違いが生じる。これは、基本学習領域ｉ内における各多点学習領域ｎでは、エンジン１の経年劣化によるノック発生への影響が大きく異なり、それに応じて各多点学習領域ｎの多点学習値ＡＧｄｐ(n) も更新が進むにつれて互いに異なる値となってゆくためである。こうした切り換え前後の多点学習値ＡＧｄｐ(n) の大きさの違いに基づき点火時期指令値ＳＴに段差が生じてエンジン１にトルク段差が生じることを抑制すべく、上述した段差吸収処理が実行されると、それに起因してエンジン１でのノック発生を効果的に抑制できなくなったり、エンジン１の点火時期が過度に遅角側の値となったりするおそれがある。
【００５９】
上記段差吸収処理では、エンジン運転状態が基本学習領域ｉ内における各多点学習領域ｎ内で変化したり、その領域ｎと同領域ｎ外との間で変化したりし、点火時期の補正に用いられる多点学習値ＡＧｄｐ(n) が切り換えられる際、同切り換え前後の多点学習値ＡＧｄｐ(n) の大きさの違いに基づく点火時期指令値ＳＴの段差発生が抑制される。すなわち、その段差による点火時期指令値ＳＴの変化分を同点火時期指令値ＳＴに対し徐々に反映させる。以下、こうした段差吸収処理が実行されたと仮定した場合の不具合について、図９及び図１０を参照して説明する。
【００６０】
図９は、エンジン運転状態の変化に伴い点火時期指令値ＳＴの算出に用いられる学習値（多点学習値ＡＧｄｐ(n) ）が切り換えられ、それによって同学習値が増大する状況のもと、上記段差吸収処理を実行したと仮定した場合の例を示すタイムチャートである。
【００６１】
エンジン運転状態が例えば多点学習領域ｎ（ｎ＝１）から多点学習領域ｎ（ｎ＝２）に移行し、それに基づき点火時期指令値ＳＴの算出に用いられる多点学習値ＡＧｄｐ(n) が図９（ａ）に示されるように切り換えられる（タイミングＴ３）。この例では、上述したように切り換え後の多点学習値ＡＧｄｐ(n) が同切り換え前の多点学習値ＡＧｄｐ(n) よりも大きくなる。
【００６２】
なお、エンジン運転状態が所定の多点学習領域ｎから基本学習領域ｉ（ｉ＝１）内における各多点学習領域ｎ以外の領域に移行し、それに基づき点火時期指令値ＳＴの算出に用いられる多点学習値ＡＧｄｐ(n) が切り換えられる場合もある。この場合、切り換え後の多点学習値ＡＧｄｐ(n) が「０」となることから、同切り換え前の多点学習値ＡＧｄｐ(n) が「０」未満の値であれば、上記切り換えによって点火時期指令値ＳＴの算出に用いられる多点学習値ＡＧｄｐ(n) が図９（ａ）と同じく大きくされることになる。
【００６３】
また、エンジン運転状態が基本学習領域ｉ（ｉ＝１）内における各多点学習領域ｎ以外の領域から所定の多点学習領域ｎに移行し、それに基づき点火時期指令値ＳＴの算出に用いられる多点学習値ＡＧｄｐ(n) が切り換えられる場合もある。この場合、切り換え前の多点学習値ＡＧｄｐ(n) が「０」となることから、同切り換え後の多点学習値ＡＧｄｐ(n) が「０」よりも大きい値であれば、上記切り換えによって点火時期指令値ＳＴの算出に用いられる多点学習値ＡＧｄｐ(n) が図９（ａ）と同じく大きくされることになる。
【００６４】
上記切り換え前後の多点学習値ＡＧｄｐ(n) の大きさの違いに基づき、図９（ｂ）に二点鎖線で示されるように点火時期指令値ＳＴに段差が生じ、且つ図９（ｃ）に二点鎖線で示されるようにエンジン１のトルク段差が生じる。こうした状況のもとで段差吸収処理が実行されたとすると、上記切り換え後の多点学習値ＡＧｄｐ(n) から同切り換え前の多点学習値ＡＧｄｐ(n) を減算した値として反映制御値ΔＡＧが算出され（Ｔ３）、そのときの値を初期値として同反映制御値ΔＡＧを時間経過に伴い徐々に小さくすることが行われる。従って、上記反映制御値ΔＡＧは、タイミングＴ３以降、時間経過に伴って図９（ｄ）に示されるように「０」になるまで徐々に減少される。そして、上記のように変化する反映制御値ΔＡＧが点火時期指令値ＳＴの算出毎に同点火時期指令値ＳＴから減算される。
【００６５】
その結果、反映制御値ΔＡＧの減算後の点火時期指令値ＳＴに関しては、上記多点学習値ＡＧｄｐ(n) の切り換え前後の段差による点火時期指令値ＳＴの変化分（二点鎖線の段差）が時間経過に伴い徐々に反映された値となり、図９（ｂ）に実線で示されるように二点鎖線で示される値へと徐々に増加（進角側に変化）することとなる。また、上記点火時期指令値ＳＴが実線で示されるように二点鎖線で示される値へと徐々に増加することにより、エンジン１のトルクも図９（ｄ）に実線で示されるように二点鎖線で示される値へと徐々に増加する。このため、エンジン運転状態の変化に伴い点火時期指令値ＳＴの算出に用いられる学習値の切り換えが行われる際、同切り換え前後の学習値の大きさの違いに基づきエンジン１のトルク段差が発生することは抑制される。
【００６６】
しかし、上記多点学習値ＡＧｄｐ(n) の切り換え前後の段差による点火時期指令値ＳＴの変化分を同点火時期指令値ＳＴに対し徐々に反映させるということは、その反映中（Ｔ３〜Ｔ４）にあっては点火時期指令値ＳＴが過度に遅角側の値となった状態であることを意味する。従って、上述した状況で段差吸収処理が実行されると、それに起因して点火時期が過度に遅角側の値となるおそれがある。
【００６７】
図１０は、エンジン運転状態の変化に伴い点火時期指令値ＳＴの算出に用いられる学習値（多点学習値ＡＧｄｐ(n) ）が切り換えられ、それによって同学習値が減少する状況のもと、上記段差吸収処理を実行したと仮定した場合の例を示すタイムチャートである。
【００６８】
エンジン運転状態が例えば多点学習領域ｎ（ｎ＝２）から多点学習領域ｎ（ｎ＝１）に移行し、それに基づき点火時期指令値ＳＴの算出に用いられる多点学習値ＡＧｄｐ(n) が図１０（ａ）に示されるように切り換えられる（タイミングＴ５）。この例では、上述したように切り換え後の多点学習値ＡＧｄｐ(n) が同切り換え前の多点学習値ＡＧｄｐ(n) よりも小さくなる。
【００６９】
なお、エンジン運転状態が所定の多点学習領域ｎから基本学習領域ｉ（ｉ＝１）内における各多点学習領域ｎ以外の領域に移行し、それに基づき点火時期指令値ＳＴの算出に用いられる多点学習値ＡＧｄｐ(n) が切り換えられる場合もある。この場合、切り換え後の多点学習値ＡＧｄｐ(n) が「０」となることから、同切り換え前の多点学習値ＡＧｄｐ(n) が「０」よりも大きい値であれば、上記切り換えによって点火時期指令値ＳＴの算出に用いられる多点学習値ＡＧｄｐ(n) が図１０（ａ）と同じく小さくされることになる。
【００７０】
また、エンジン運転状態が基本学習領域ｉ（ｉ＝１）内における各多点学習領域ｎ以外の領域から所定の多点学習領域ｎに移行し、それに基づき点火時期指令値ＳＴの算出に用いられる多点学習値ＡＧｄｐ(n) が切り換えられる場合もある。この場合、切り換え前の多点学習値ＡＧｄｐ(n) が「０」となることから、同切り換え後の多点学習値ＡＧｄｐ(n) が「０」未満の値であれば、上記切り換えによって点火時期指令値ＳＴの算出に用いられる多点学習値ＡＧｄｐ(n) が図１０（ａ）と同じく小さくされることになる。
【００７１】
上記切り換え前後の多点学習値ＡＧｄｐ(n) の大きさの違いに基づき、図１０（ｂ）に二点鎖線で示されるように点火時期指令値ＳＴに段差が生じ、且つ図１０（ｃ）に二点鎖線で示されるようにエンジン１のトルク段差が生じる。こうした状況のもとで段差吸収処理が実行されたとすると、上記切り換え後の多点学習値ＡＧｄｐ(n) から同切り換え前の多点学習値ＡＧｄｐ(n) を減算した値として反映制御値ΔＡＧが算出され（Ｔ５）、そのときの値を初期値として同反映制御値ΔＡＧを時間経過に伴い徐々に大きくすることが行われる。従って、上記反映制御値ΔＡＧは、タイミングＴ５以降、時間経過に伴って図１０（ｄ）に示されるように「０」になるまで徐々に増大される。そして、上記のように変化する反映制御値ΔＡＧが点火時期指令値ＳＴの算出毎に同点火時期指令値ＳＴから減算される。
【００７２】
その結果、反映制御値ΔＡＧの減算後の点火時期指令値ＳＴに関しては、上記多点学習値ＡＧｄｐ(n) の切り換え前後の段差による点火時期指令値ＳＴの変化分（二点鎖線の段差）が時間経過に伴い徐々に反映された値となり、図１０（ｂ）に実線で示されるように二点鎖線で示される値へと徐々に減少（遅角側に変化）することとなる。また、上記点火時期指令値ＳＴが実線で示されるように二点鎖線で示される値へと徐々に減少することにより、エンジン１のトルクも図１０（ｄ）に実線で示されるように二点鎖線で示される値へと徐々に減少する。このため、エンジン運転状態の変化に伴い点火時期指令値ＳＴの算出に用いられる学習値の切り換えが行われる際、同切り換え前後の学習値の大きさの違いに基づきエンジン１のトルク段差が発生することは抑制される。
【００７３】
しかし、上記多点学習値ＡＧｄｐ(n) の切り換え前後の段差による点火時期指令値ＳＴの変化分を同点火時期指令値ＳＴに対し徐々に反映させるということは、その反映中（Ｔ５〜Ｔ６）にあっては点火時期指令値ＳＴがエンジン１のノック発生を効果的に抑制できない値（進角側の値）となった状態であることを意味する。従って、上述した状況で段差吸収処理が実行されると、それに起因してエンジンでのノック発生を効果的に抑制できなくなるおそれがある。
【００７４】
次に、上述した不具合、すなわち点火時期指令値ＳＴの算出に用いられる多点学習値ＡＧｄｐ(n) が切り換えられる際、上述した段差吸収処理の実行を通じて、エンジン１でのノック発生を効果的に抑制できなくなったり、点火時期が過度に遅角側の値となったりするという不具合への対策について、図１１を参照して説明する。なお、図１１は、上記段差吸収処理の実行を制御するための段差吸収処理実行ルーチンを示すフローチャートである。この段差吸収処理実行ルーチンは、電子制御装置２６を通じて、例えば所定時間毎の時間割り込みにて周期的に実行される。
【００７５】
同ルーチンにおいては、まずエンジン運転状態が各基本学習領域ｉの間で移行したか否かが判断される（Ｓ１０１）。ここで肯定判定であれば段差吸収処理が実行され（Ｓ１０２）、否定判定であれば上記段差吸収処理を実行禁止するための処理（Ｓ１０３〜Ｓ１０６）が実行される。
【００７６】
上記段差吸収処理を実行禁止するための処理では、エンジン運転状態が各多点学習領域ｎの間で移行したか否か（Ｓ１０３）、エンジン運転状態が多点学習領域ｎと基本学習領域ｉ（ｉ＝１）における各多点学習領域ｎ以外の領域との間で移行したか否か（Ｓ１０４）が判断される。これらステップＳ１０３とステップＳ１０４とのいずれか一方で肯定判定がなされるということは、点火時期指令値ＳＴの算出に用いられる多点学習値ＡＧｄｐ(n) の切り換えが行われ、その切り換え前後の同多点学習値ＡＧｄｐ(n) の大きさの違いに基づき点火時期指令値ＳＴに段差が生じることを意味する。そして、上記ステップＳ１０３と上記ステップＳ１０４とのいずれか一方で肯定判定がなされると、上記点火時期指令値ＳＴの段差が許容上限値未満であることを条件に（Ｓ１０５：ＮＯ）、段差吸収処理の実行が禁止される（Ｓ１０６）。
【００７７】
図９の例において、上記のように段差吸収処理の実行が禁止されると、点火時期指令値ＳＴの算出に用いられる多点学習値ＡＧｄｐ(n) の切り換えが行われ（Ｔ３）、その切り換え前後の同多点学習値ＡＧｄｐ(n) の大きさの違いに起因して点火時期指令値ＳＴに段差が生じるとしても、段差吸収処理が実行されることはない。このため、点火時期指令値ＳＴが図９（ｂ）に二点鎖線で示されるように推移し、上記多点学習値ＡＧｄｐ(n) の切り換え直後（Ｔ３直後）に点火時期指令値ＳＴが過度に遅角側の値となることは抑制される。従って、上記の状況下で段差吸収処理が実行されることで、それに起因して点火時期が過度に遅角側の値となることを回避できるようになる。
【００７８】
また、図１０の例において、上記のように段差吸収処理の実行が禁止されると、点火時期指令値ＳＴの算出に用いられる多点学習値ＡＧｄｐ(n) の切り換えが行われ（Ｔ５）、その切り換え前後の同多点学習値ＡＧｄｐ(n) の大きさの違いに起因して点火時期指令値ＳＴに段差が生じるとしても、段差吸収処理が実行されることはない。このため、点火時期指令値ＳＴが図１０（ｂ）に二点鎖線で示されるように推移し、上記多点学習値ＡＧｄｐ(n) の切り換え直後（Ｔ５直後）から点火時期指令値ＳＴがエンジン１のノック発生を効果的に抑制できる値となる。従って、上記の状況下で段差吸収処理が実行されることで、エンジン１のノック発生を効果的に抑制できなくなることを回避できるようになる。
【００７９】
段差吸収処理実行ルーチン（図１１）において、ステップＳ１０５で上記点火時期指令値ＳＴの段差が許容上限値以上である旨判断されると、段差吸収処理の実行禁止が解除されて同処理が実行される（Ｓ１０２）。このステップＳ１０５で用いられる許容上限値としては、上記点火時期指令値ＳＴの段差に起因するエンジン１のトルク段差によって自動車の運転者がショックを感じる範囲の最小値を予め実験等により求めておき、その値を採用することが考えられる。従って、上記点火時期指令値ＳＴの段差が許容上限値以上であるときに段差吸収処理の実行禁止を解除して同処理を実行させ、その段差吸収処理の実行を通じてエンジン１のトルク段差の発生を抑制することにより、そのトルク段差に伴い自動車の運転者がショックを感じることは抑制される。
【００８０】
以上詳述した本実施形態によれば、以下に示す効果が得られるようになる。
（１）エンジン運転状態が各基本学習領域ｉの間で移行して点火時期指令値ＳＴの算出に用いられる基本学習値ＡＧ(i) の切り換えが行われるとき、その切り換え前後の基本学習値ＡＧ(i) の大きさの違いに基づき点火時期指令値ＳＴに段差が生じることは、段差吸収処理の実行を通じて抑制される。また、エンジン運転状態が各多点学習領域ｎの間で移行したり、多点学習領域ｎと基本学習領域ｉ（ｉ＝１）における各多点学習領域ｎ以外の領域との間で移行したりするときには、点火時期指令値ＳＴの算出に用いられる多点学習値ＡＧｄｐ(n) の切り換えが行われる。こうした多点学習値ＡＧｄｐ(n) の切り換えが行われると、その切り換え前後の同多点学習値ＡＧｄｐ(n) の大きさの違いに基づき点火時期指令値ＳＴに段差が生じるものの、このときには同段差が許容上限値未満であることを条件に上記段差吸収処理の実行が禁止される。従って、上記のような状況下で段差吸収処理が実行されることに起因して、エンジン１のノック発生を効果的に抑制できなくなったり、点火時期が過度に遅角側の値となったりすることが抑制されるようになる。
【００８１】
（２）エンジン運転状態が各多点学習領域ｎの間で移行したり、多点学習領域ｎと基本学習領域ｉ（ｉ＝１）における各多点学習領域ｎ以外の領域との間で移行したりするとき、上記点火時期指令値ＳＴの段差が許容上限値以上になる場合、その段差に起因するエンジン１のトルク段差が大きくなり、自動車の運転者が感じるショックが問題となる。しかし、上記点火時期指令値ＳＴの段差が許容上限値以上になる場合には、段差吸収処理の実行禁止が解除されて同処理が実行され、上記エンジン１のトルク段差の発生が抑制されるため、同トルク段差に伴い自動車の運転者がショックを感じることは抑制される。
【００８２】
なお、上記実施形態は、例えば以下のように変更することもできる。
・段差吸収処理実行ルーチンのステップＳ１０５を省略し、エンジン運転状態が各多点学習領域ｎの間で移行したり、多点学習領域ｎと基本学習領域ｉ（ｉ＝１）における各多点学習領域ｎ以外の領域との間で移行したりするとき、段差吸収処理が必ず実行禁止されるようにしてもよい。
【００８３】
・現在のエンジン運転状態が多点学習領域ｎ内にあるとき、基本学習値ＡＧ(i) を「０」に設定し、同多点学習領域ｎに対応する多点学習値ＡＧｄｐ(n) のみがノックの発生を抑制すべく点火時期を定常的に補正する補正項として用いられるようにしてもよい。
【００８４】
・最も低回転側の基本学習領域ｉ内において、低負荷側の領域以外の領域に多点学習領域ｎを設定してもよい。
・基本学習領域ｉの合計数や多点学習領域ｎの合計数を適宜変更してもよい。
【符号の説明】
【００８５】
１…エンジン、２…燃焼室、３…吸気通路、４…燃料噴射弁、５…点火プラグ、６…ピストン、７…クランクシャフト、８…排気通路、２６…電子制御装置、２７…アクセルペダル、２８…アクセルポジションセンサ、２９…スロットルバルブ、３０…スロットルポジションセンサ、３１…ノックセンサ、３２…エアフローメータ、３４…クランクポジションセンサ。
【図１】
2010174856.tif 000003
【図２】
2010174856.tif 000004
【図３】
2010174856.tif 000005
【図４】
2010174856.tif 000006
【図５】
2010174856.tif 000007
【図６】
2010174856.tif 000008
【図７】
2010174856.tif 000009
【図８】
2010174856.tif 000010
【図９】
2010174856.tif 000011
【図１０】
2010174856.tif 000012
【図１１】
2010174856.tif 000013