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