(57)【要約】      （修正有）【課題】ノッキングの発生を良好に抑えることのできる内燃機関の点火時期制御装置を提供する。【解決手段】学習値更新部が行う学習処理は、全気筒制御の最中の学習処理（第１学習処理）と、気筒別制御の最中の学習処理（第２学習処理）と、に大別される。第１学習処理では、切り替えフラグがＯＦＦである給油直後Ｓ３０ＹＥＳにおいて、徐変値ＡＫＣＳＳＭが規定値αよりも小さい場合、ノッキングの発生に影響を及ぼすような燃料性状の変化があったと推定して、燃料性状学習値ＡＫＧ［ｉ］の更新を行うＳ３６。また、切り替えフラグがＯＮとなる、ノッキングの発生に対する燃料性状の変化の影響が縮小すると考えられる一定時間の経過後においては、燃料性状学習値ＡＫＧ［ｉ］の更新が禁止されＳ３２、第２学習処理によってデポジット学習値ＡＤＥＰ、機差学習値ＡＫＧＭＧおよび比率学習値ＲＫＧの更新を行う。【選択図】図１０
2019190321.tif 000002
【特許請求の範囲】
【請求項１】
複数の気筒を備えるエンジンのノッキングの発生を検出するノッキング検出部と、
前記ノッキングの発生の検出結果に基づいて、前記エンジンの点火時期を制御する点火時期制御部と、
前記点火時期制御部が設定する前記点火時期のフィードバック補正値に基づいて、前記点火時期の学習値を更新する学習処理を行う学習値更新部と、
を備える内燃機関の点火時期制御装置であって、
前記学習処理は、
前記エンジンの始動直後に行われて第１学習値を更新する第１学習処理と、
前記第１学習処理の後に行われて第２学習値を更新する第２学習処理と、を含み、
前記学習値更新部は、
前記第１学習処理の最中は前記第２学習値の更新を禁止し、
前記第２学習処理の最中は前記第１学習値の更新を禁止する
ことを特徴とする内燃機関の点火時期制御装置。
【請求項２】
前記点火時期制御部は、
前記複数の気筒の点火時期を一律に制御する全気筒制御と、
前記複数の気筒の点火時期を個別に制御する気筒別制御と、
を行い、
前記学習値更新部は、
前記全気筒制御の最中に前記第１学習処理を行い、
前記気筒別制御の最中に前記第２学習処理を行う
ことを特徴とする請求項１に記載の内燃機関の点火時期制御装置。
【請求項３】
前記第２学習処理は、
前記エンジンの運転領域の一部を細分化した細分化領域に個別に設定された前記第２学習値を更新する処理と、
前記細分化領域に個別に設定された前記点火時期の最大遅角量に基づいて、点火プラグに付着するデポジットの付着度合いを示す比率学習値を前記第２学習値とは別に更新する処理と、を含み、
前記細分化領域は、
前記第２学習値の更新が頻繁に行われる高頻度領域と、
前記第２学習値の更新が頻繁に行われない低頻度領域と、を含み、
前記学習値更新部は、
前記高頻度領域に設定された前記第２学習値と、前記高頻度領域に設定された前記最大遅角量と、に基づいて、前記比率学習値を更新し、
前記高頻度領域に設定された前記最大遅角量と、前記比率学習値と、に基づいて、前記低頻度領域に個別に設定された前記第２学習値を更新する
ことを特徴とする請求項２に記載の内燃機関の点火時期制御装置。
【請求項４】
前記学習値更新部は、
前記点火時期のフィードバック補正値の増減速度を鈍化させる処理を施した徐変値に基づいて、前記第１学習値および前記第２学習値を更新し、
前記細分化領域を構成する領域の個数が多くなるほど、前記増減速度を鈍化させる処理の回数を減らす
ことを特徴とする請求項３に記載の内燃機関の点火時期制御装置。
【請求項５】
前記第１学習値が、燃料性状の変化による前記点火時期の変化を補償するための学習値であり、
前記第２学習値が、点火プラグに付着するデポジットの付着量の増加による前記点火時期の変化を補償するための学習値、および、経年変化による前記点火時期の変化を補償するための学習値である
ことを特徴とする請求項１乃至４何れか１項に記載の内燃機関の点火時期制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、内燃機関の点火時期制御装置に関する。
【背景技術】
【０００２】
特開２００２−３４９４０８号公報には、点火時期の遅角量の学習処理を行う内燃機関の点火時期制御装置が開示されている。この学習処理は、内燃機関の定常運転中に行われる。遅角量の学習値は、内燃機関の過渡運転中の点火時期に反映される。
【０００３】
ガソリンのオクタン価（すなわち、燃料性状）、および、点火プラグに付着するデポジットの量は、ノッキングが発生する点火時期に影響を及ぼす。この点、上述した学習処理を行えば、内燃機関の過渡運転中にノッキングが発生するのを抑えることができる。
【０００４】
特開２０１０−２８１２６４号公報には、点火時期の遅角量の学習処理を行う２種類の領域が設定された内燃機関の点火時期制御装置が開示されている。この２種類の領域は、基本学習領域および多点学習領域である。多点学習領域は、学習処理を行う領域を細分化したものである。多点学習領域は、基本学習領域の一部と重複している。
【０００５】
上記２種類の学習領域が重複する重複領域では、原則、多点学習領域における遅角量の学習処理が行われる。ただし、燃料性状の変化が検出された場合、多点学習領域における遅角量の学習処理の実行が禁止され、基本学習領域における遅角量の学習処理が優先的に行われる。この場合、多点学習領域における遅角量の学習処理の禁止は、この優先学習処理が完了した後に解除される。
【０００６】
上記優先学習処理によれば、燃料性状の変化が検出された場合に、重複領域における遅角量の学習処理を早期に完了することができる。つまり、燃料性状の変化による点火時期の変化をいち早く点火時期に反映させることができる。また、優先学習処理後に行われる多点学習領域における遅角量の学習処理によれば、内燃機関の経年変化（例えば、点火プラグへのデポジットの付着量の増加）による点火時期の変化を補償することもできる。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００２−３４９４０８号公報
【特許文献２】特開２０１０−２８１２６４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかし、特開２００２−３４９４０８号公報の制御装置では、定常運転中に行われる学習処理において、燃料性状の変化と、デポジットの付着量の増加とが区別されていない。そのため、燃料性状の変化による影響が大きいと考えられる給油直後の遅角量の学習値と、この影響が縮小すると考えられる一定時間の経過後の遅角量の学習値と、の間に乖離が生じるおそれがある。そうすると、前回から今回の給油までに十分な時間が経過したような場合に、デポジットの付着量の増加に偏った遅角量の学習値が今回の給油直後の点火時期に反映されてしまい、ノッキングが多発するおそれがある。
【０００９】
この点、優先学習処理を行う特開２０１０−２８１２６４号公報の制御装置によれば、上述した不具合の発生を抑えることができるとも考えられる。ところが、この制御装置では、２種類の学習領域が重複しない非重複領域における遅角量の学習処理が、優先学習処理の対象外とされている。そのため、この非重複領域においては、燃料性状の変化と、デポジットの付着量の増加との区別がなされることなく、遅角量の学習値が算出され続けてしまう。したがって、前回から今回の給油までに十分な時間が経過したような場合おいて、内燃機関が非重複領域で運転されると、上述した不具合の発生が避けられない。
【００１０】
本発明は、上述した課題に鑑みてなされたものであり、ノッキングの発生を良好に抑えることのできる内燃機関の点火時期制御装置を提供することを目的とする。
【課題を解決するための手段】
【００１１】
第１の発明は、上述した課題を解決するための内燃機関の点火時期制御装置であり、次の特徴を有する。
前記点火時期制御装置は、ノッキング検出部と、点火時期制御部と、学習値更新部と、を備える。
前記ノッキング検出部は、複数の気筒を備えるエンジンのノッキングの発生を検出する。
前記点火時期制御部は、前記ノッキングの発生の検出結果に基づいて、前記エンジンの点火時期を制御する。
前記学習値更新部は、前記点火時期制御部が設定する前記点火時期のフィードバック補正値に基づいて、前記点火時期の学習値を更新する。
前記学習処理は、第１学習処理と、第２学習処理と、を含む。
前記第１学習処理は、前記エンジンの始動直後に行われて第１学習値を更新する処理である。
前記第２学習処理は、前記第１学習処理の後に行われて第２学習値を更新する処理である。
前記学習値更新部は、前記第１学習処理の最中は前記第２学習値の更新を禁止する。
前記学習値更新部は、前記第２学習処理の最中は前記第１学習値の更新を禁止する。
【００１２】
第２の発明は、第１の発明において、更に次の特徴を有する。
前記点火時期制御部は、全気筒制御と、気筒別制御と、を行う。
前記全気筒制御では、前記複数の気筒の点火時期が一律に制御される。
前記気筒別制御では、前記複数の気筒の点火時期が個別に制御される。
前記学習値更新部は、前記全気筒制御の最中に前記第１学習処理を行う。
前記学習値更新部は、前記気筒別制御の最中に前記第２学習処理を行う。
【００１３】
第３の発明は、第２の発明において、更に次の特徴を有する。
前記第２学習処理は、前記エンジンの運転領域の一部を細分化した細分化領域に個別に設定された前記第２学習値を更新する処理を含む。
前記第２学習処理は、前記細分化領域に個別に設定された前記点火時期の最大遅角量に基づいて、比率学習値を前記第２学習値とは別に更新する処理を含む。
前記比率学習値は、点火プラグに付着するデポジットの付着度合いを示す学習値である。
前記細分化領域は、高頻度領域と、低頻度領域と、を含む。
前記高頻度領域は、前記第２学習値の更新が頻繁に行われる領域である。
前記低頻度領域は、前記第２学習値の更新が頻繁に行われない領域である。
前記学習値更新部は、前記高頻度領域に設定された前記第２学習値と、前記高頻度領域に設定された前記最大遅角量と、に基づいて、前記比率学習値を更新する。
前記学習値更新部は、前記高頻度領域に設定された前記最大遅角量と、前記比率学習値と、に基づいて、前記低頻度領域に個別に設定された前記第２学習値を更新する。
【００１４】
第４の発明は、第３の発明において、更に次の特徴を有する。
前記学習値更新部は、前記点火時期のフィードバック補正値の増減速度を鈍化させる処理を施した徐変値に基づいて、前記第１学習値および前記第２学習値を更新する。
前記学習値更新部は、前記細分化領域を構成する領域の個数が多くなるほど、前記増減速度を鈍化させる処理の回数を減らす。
【００１５】
第５の発明は、第１乃至第４の何れかの発明において、更に次の特徴を有する。
前記第１学習値は、燃料性状の変化による前記点火時期の変化を補償するための学習値である。
前記第２学習値は、点火プラグに付着するデポジットの付着量の増加による前記点火時期の変化を補償するための学習値、および、経年変化による前記点火時期の変化を補償するための学習値である。
【発明の効果】
【００１６】
第１の発明によれば、第１学習処理の最中は第２学習値の更新が禁止され、第２学習処理の最中は第１学習値の更新が禁止される。つまり、第１学習処理の最中は第１学習値の更新が許可され、第２学習処理の最中は第２学習値の更新が許可される。第１学習処理はエンジンの始動直後に行われる。そのため、第１学習処理の最中に第１学習値の更新が許可されれば、始動直後に発生するノッキングの発生要因をいち早く点火時期制御に反映させることができる。また、第２学習処理は第１学習処理後に行われる。そのため、第２学習処理の最中に第２学習値の更新を許可すれば、例えばエンジンの暖機後に発生するノッキングの発生要因を点火時期制御に反映させることもできる。したがって、ノッキングの発生を良好に抑えることができる。
【００１７】
第２の発明によれば、全気筒制御の最中に第１学習処理が行われ、個別気筒制御の最中に第２学習処理が行われる。全気筒制御では、複数の気筒の点火時期が一律に制御される。そのため、全気筒制御の最中に第１学習処理が行われれば、始動直後に発生するノッキングの発生要因をより早期に点火時期制御に反映させることができる。個別気筒制御では、複数の気筒の点火時期が個別に制御される。そのため、気筒別制御の最中に第２学習処理が行われれば、例えばエンジンの暖機後に発生するノッキングの発生要因を的確に点火時期制御に反映させることもできる。
【００１８】
第３の発明によれば、第２学習処理において、高頻度領域における第２学習値と、高頻度領域に設定された点火時期の最大遅角量と、に基づいて比率学習値が更新される。また、高頻度領域に設定された点火時期の最大遅角量と、比率学習値と、に基づいて、低頻度領域に設定された第２学習値が更新される。第２学習値は、細分化領域に個別に設定されている。そのため、細分化領域の内の一部の領域では、第２学習値の更新が頻繁に行われ、残りの領域では当該更新が頻繁に行われない可能性がある。この点、第３の発明によれば、比率学習値を更新して低頻度領域に設定された第２学習値を更新できる。したがって、低頻度領域に設定された第２学習値の更新が進まなくなるのを回避することができる。
【００１９】
第４の発明によれば、細分化領域を構成する領域の個数が多くなるほど、増減速度を鈍化させる処理の回数を減らされる。そのため、細分化領域を構成する各領域における第２学習値の精度を高めることができる。また、増減速度を鈍化させる回数を減らせば、細分化領域を構成する各領域の第２学習値の更新が進まなくなるのを回避することもできる。
【００２０】
第５の発明によれば、第１学習処理の最中に燃料性状の変化による点火時期の変化を補償するための学習値が更新される。また、第２学習処理の最中に、点火プラグに付着するデポジットの付着量の増加による点火時期の変化を補償するための学習値、および、経年変化による点火時期の変化を補償するための学習値が更新される。
【図面の簡単な説明】
【００２１】
【図１】本実施の形態１に係る点火時期制御装置のシステム構成を説明するブロック図である。
【図２】点火時期制御における基本的な処理の流れを説明するフローチャートである。
【図３】点火時期制御による目標点火時期ＡＯＰの設定態様の一例を示した図である。
【図４】切り替え処理の流れを説明するフローチャートである。
【図５】燃料性状学習値ＡＫＧの区分け領域の一例を示す図である。
【図６】デポジット学習値ＡＤＥＰの区分け領域の一例を示す図である。
【図７】機差学習値ＡＫＧＭＧの区分け領域の一例を示す図である。
【図８】高頻度領域と低頻度領域を説明する図である。
【図９】遅角量ＤＬＡＫＮＯＫの一例を示す図である。
【図１０】第１学習処理の流れを説明するフローチャートである。
【図１１】第２学習処理の流れを説明するフローチャートである。
【図１２】全気筒制御の最中においてノッキングが発生することが確認されたときの点火時期の一例を示した図である。
【図１３】本発明の実施の形態２における機差学習値ＡＫＧＭＧの区分け領域の一例を示す図である。
【図１４】本発明の実施の形態１における第２学習処理の問題点を説明する図である。
【発明を実施するための形態】
【００２２】
以下、図面を参照して本発明の実施の形態について説明する。ただし、以下に示す実施の形態において各要素の個数、数量、量、範囲等の数に言及した場合、特に明示した場合や原理的に明らかにその数に特定される場合を除いて、その言及した数に、この発明が限定されるものではない。また、以下に示す実施の形態において説明する構造やステップ等は、特に明示した場合や明らかに原理的にそれに特定される場合を除いて、この発明に必ずしも必須のものではない。
【００２３】
実施の形態１．
先ず、図１乃至図１２を参照して、本発明の実施の形態１について説明する。
【００２４】
１．システム構成の説明
本発明の実施の形態１に係る点火時期制御装置は、車両に搭載される内燃機関の点火時期を制御する装置である。この内燃機関は、具体的には、複数の気筒を有する火花点火式のエンジンである。図１は、本実施の形態１に係る点火時期制御装置のシステム構成を説明するブロック図である。図１に示すシステムは、ノックセンサ１２と、クランクポジションセンサ１４と、エアフロメータ１６と、水温センサ１８と、ＥＣＵ（Electric Control Unit）２０と、点火装置３０と、を備えている。
【００２５】
ノックセンサ１２は、エンジンのシリンダヘッドに取り付けられている。ノックセンサ１２は、エンジンの気筒で発生したノッキングの強度に応じた信号を出力する。ノックセンサ１２からの信号は、ＥＣＵ２０に入力される。
【００２６】
クランクポジションセンサ１４は、エンジンのクランクシャフトの回転角であるクランク角や、エンジン回転速度の算出などに用いられるクランク角の変化に応じた信号を出力する。クランクポジションセンサ１４からの信号は、ＥＣＵ２０に入力される。
【００２７】
エアフロメータ１６は、エンジンに吸入される吸入空気量Ｇａに応じた信号を出力する。エアフロメータ１６からの信号は、ＥＣＵ２０に入力される。
【００２８】
水温センサ１８は、エンジンのウォータジャケットを循環する冷却水の温度ＴＨＷに応じた信号を出力する。水温センサ１８からの信号は、ＥＣＵ２０に入力される。
【００２９】
ＥＣＵ２０は、プロセッサ、メモリ、および、入出力インタフェースを備えるマイクロコンピュータである。ＥＣＵ２０は、入出力インタフェースを介して各種情報を受け取る。ＥＣＵ２０は、受け取った各種情報に基づいて、エンジンの点火時期制御を行う。
【００３０】
点火装置３０は、エンジンのシリンダヘッドに取り付けられる。点火装置３０は、気筒ごとに設けられている。点火装置３０は、点火プラグと点火コイルを備えている。点火コイルは、点火プラグに高電圧を印加する。点火プラグに高電圧が印加されると、点火プラグに放電火花が生じる。
【００３１】
２．ＥＣＵ２０の機能の説明
ＥＣＵ２０は、エンジンの点火時期を制御する機能として、ノッキング検出部２２と、点火時期制御部２４と、学習値更新部２６と、を備えている。以下、これらの機能について説明する。
【００３２】
２．１  ノッキング検出部２２
ノッキング検出部２２は、ノックセンサ１２から入力される信号に基づいて、ノッキングの発生を検出する。ノッキング検出部２２は、複数の気筒のうちのどの気筒においてノッキングが発生したかを判別する。ノッキング検出部２２は、ノッキングの検出結果に関する情報を点火時期制御部２４に送る。ノッキングの発生が検出された場合、ノッキングが発生した気筒の情報や、発生したノッキングの強度の情報が、検出結果に関する情報に付加される。
【００３３】
２．２  点火時期制御部２４
点火時期制御部２４は、エンジンの点火時期を遅角側または進角側に変更する点火時期制御を行う。点火時期は、圧縮上死点を基準とした進角側へのクランク角で表される。例えば、点火時期が圧縮上死点よりも進角側であるほど点火時期を示すクランク角の値が大きくなる。点火時期制御部２４は、また、切り替え処理を行う。切り替え処理は、複数の気筒の全てにおいて点火時期を一律に制御する全気筒制御と、気筒ごとに独立して点火時期を制御する気筒別制御と、を切り替える処理である。以下、点火時期制御および切り替え処理について説明する。
【００３４】
２．２．１  点火時期制御
図２乃至図３を参照して、点火時期制御を説明する。図２は、点火時期制御における基本的な処理の流れを説明するフローチャートである。図３は、点火時期制御による目標点火時期ＡＯＰの設定態様の一例を示した図である。なお、図２に示す処理は、エンジンの運転中、規定の制御周期ごとに繰り返し実行される。
【００３５】
図２に示す処理ルーチンでは、先ず、基本点火時期ＡＢＳＥおよび限界遅角点火時期ＡＫＭＦが算出される（ステップＳ１０）。これらの点火時期は、エンジンの運転条件（例えば、エンジン回転速度およびエンジン負荷）に基づいて算出される。エンジン回転速度は、クランク角の情報に基づいて求められる。エンジン負荷は、吸入空気量Ｇａなどに基づいて求められる。
【００３６】
基本点火時期ＡＢＳＥは、最適点火時期ＭＢＴと第１ノック限界点火時期ＡＫＮＯＫ１のうち、より遅角側の点火時期である。最適点火時期ＭＢＴは、現状のエンジンの運転条件においてエンジンのトルクの発生効率が最大となる点火時期である。第１ノック限界点火時期ＡＫＮＯＫ１は、ノック限界の高い高オクタン価燃料を使用し、且つ、想定される最良の条件下でエンジンを運転した場合に、ノッキングが発生することが確認された点火時期の範囲の遅角側の限界値である。これらの点火時期は、エンジンの運転条件に基づき、ＥＣＵ２０のメモリに記憶されたマップを参照して設定される。
【００３７】
限界遅角点火時期ＡＫＭＦは、ノッキングが発生し易い条件下においてもノッキングが発生しないことが確認された点火時期の範囲の進角側の限界値である。限界遅角点火時期ＡＫＭＦは、図３に示す第２ノック限界点火時期ＡＫＮＯＫ２から、デポジット学習値ＡＤＥＰまたは機差学習値ＡＫＧＭＧの分だけ遅角させた点火時期である（ＡＫＭＦ←ＡＫＮＯＫ２−ＡＤＥＰ、または、ＡＫＭＦ←ＡＫＮＯＫ２−ＡＫＧＭＧ）。
【００３８】
第２ノック限界点火時期ＡＫＮＯＫ２は、ノック限界の低い低オクタン価燃料を使用し、想定される最良の条件下でエンジンを運転した場合に（デポジットの付着はないと仮定する）、ノッキングが発生することが確認された点火時期の範囲の遅角側の限界値である。デポジット学習値ＡＤＥＰおよび機差学習値ＡＫＧＭＧは、クランク角で表される。図３に示すように、デポジット学習値ＡＤＥＰおよび機差学習値ＡＫＧＭＧは、これらの値が大きいほど、点火時期の遅角量が大きくなる。これらの学習値の詳細は後述する。
【００３９】
図２に示す処理ルーチンでは、ステップＳ１０に続いて、限界遅角量ＡＫＭＡＸが算出される（ステップＳ１２）。限界遅角量ＡＫＭＡＸは、基本点火時期ＡＢＳＥから限界遅角点火時期ＡＫＭＦを減算した値である(ＡＫＭＡＸ←ＡＢＳＥ−ＡＫＭＦ)。限界遅角量ＡＫＭＡＸは、デポジット学習値ＡＤＥＰまたは機差学習値ＡＫＧＭＧが大きいほど、大きな値を示す。ただし、限界遅角量ＡＫＭＡＸの上限値は、図３に示す第３ノック限界点火時期ＡＫＮＯＫ３である。
【００４０】
第３ノック限界点火時期ＡＫＮＯＫ３は、ノック限界の低い低オクタン価燃料を使用し、想定される最悪の条件下でエンジンを運転した場合に（デポジットの付着量が最大で、かつ、点火装置が十分に劣化していると仮定する）、ノッキングが発生することが確認された点火時期の範囲の遅角側の限界値である。第３ノック限界点火時期ＡＫＮＯＫ３は、基本点火時期ＡＢＳＥに対する目標点火時期ＡＯＰの遅角量の上限値でもある。
【００４１】
図２に示す処理ルーチンでは、ステップＳ１２に続いて、ノッキングが発生したか否かが判定される（ステップＳ１４）。ノッキングが発生したか否かは、上述したノッキングの検出結果に基づいて判定される。ノッキングが発生したと判定された場合、ＫＣＳフィードバック補正値ＡＫＣＳが減らされる（ステップＳ１６）。ＫＣＳフィードバック補正値ＡＫＣＳは、クランク角で表される。ＫＣＳフィードバック補正値ＡＫＣＳの減少量は、所定量（例えば、１°ＣＡ）に設定されている。
【００４２】
ステップＳ１４において、ノッキングが発生したと判定された場合、ＫＣＳフィードバック補正値ＡＫＣＳが増やされる（ステップＳ１８）。ＫＣＳフィードバック補正値ＡＫＣＳの増加量は、検出されたノッキングの強度や、ノッキングの発生頻度に応じて設定される。例えば、ノッキングの検出強度が大きいほど、増加量が大きな値に設定される。ノッキングの発生頻度が高いほど、増加量が大きな値に設定される。
【００４３】
ステップＳ１６またはＳ１８に続いて、点火時期遅角量ＡＫＮＫが算出される（ステップＳ２０）。点火時期遅角量ＡＫＮＫは、基本点火時期ＡＢＳＥからの点火時期の遅角量である。点火時期遅角量ＡＫＮＫは、限界遅角量ＡＫＭＡＸから燃料性状学習値ＡＫＧを減算し、ＫＣＳフィードバック補正値ＡＫＣＳを加算することで算出される（ＡＫＮＫ←ＡＫＭＡＸ−ＡＫＧ＋ＡＫＣＳ）。燃料性状学習値ＡＫＧは、クランク角で表される。図３に示すように、燃料性状学習値ＡＫＧの値が大きいほど、点火時期の進角量が大きくなる。燃料性状学習値ＡＫＧについては後述する。
【００４４】
ステップＳ２０に続いて、目標点火時期ＡＯＰが設定される（ステップＳ２２）。目標点火時期ＡＯＰは、基本点火時期ＡＢＳＥから点火時期遅角量ＡＫＮＫの分だけ遅角側に補正することによって設定される。具体的に、目標点火時期ＡＯＰは、基本点火時期ＡＢＳＥから点火時期遅角量ＡＫＮＫの分だけ遅角側に補正することによって設定される（ＡＯＰ←ＡＢＳＥ−ＡＫＮＫ）。
【００４５】
２．２．２  切り替え処理
図４を参照して、切り替え処理を説明する。図４は、切り替え処理の流れを説明するフローチャートである。なお、図４に示す処理は、エンジンの始動後、点火時期制御が全気筒制御から気筒別制御に切り替わるまでの間、所定時間ごとに繰り返し実行される。また、図４に示す処理の実行の都度、切り替えフラグがＯＦＦに設定される。
【００４６】
図４に示す処理ルーチンでは、先ず、切り替え条件が成立しているか否かが判定される（ステップＳ２４）。切り替え条件は、次の条件Ａまたは条件Ｂが満たされる場合に、成立していると判定される。
条件Ａ：エンジンの暖機が完了した時点からの経過時間が、規定時間β以上である
条件Ｂ：エンジンの始動が開始されてからの吸入空気量Ｇａの積算値が、規定値γ以上である
なお、エンジンの暖機が完了したか否かは、温度ＴＨＷが規定温度δ以上であるか否かに基づいて判定される。
【００４７】
ステップＳ２４において、切り替え条件が成立していないと判定された場合、切り替え処理が終了される。一方、切り替え条件が成立していると判定された場合、切り替えフラグがＯＮとされる（ステップＳ２６）。更に、全気筒制御を終了して気筒別制御の開始指令を出す（ステップＳ２８）。これにより、気筒別制御の実行が開始される。
【００４８】
２．３  学習値更新部２６
学習値更新部２６は、ノッキングの発生限界となる点火時期の学習値を更新する学習処理を行う。学習処理は、３種類の学習値を更新する処理である。３種類の学習値は、具体的に、燃料性状学習値ＡＫＧ、デポジット学習値ＡＤＥＰおよび機差学習値ＡＫＧＭＧである。学習値更新部２６は、３種類の学習値を、点火時期制御の実施時期に対応付けて更新する。以下、３種類の学習値とそれらの更新方法について説明する。
【００４９】
２．３．１  ３種類の学習値
（１）燃料性状学習値ＡＫＧ
燃料性状学習値ＡＫＧは、燃料性状の変化による点火時期の変化を補償するための学習値である。燃料性状学習値ＡＫＧは、エンジンの運転領域を複数に区分けした区分け領域ごとに用意され、ＥＣＵ２０のメモリに記憶されている。燃料性状学習値ＡＫＧは、複数の気筒に共通する値が設定されている。
【００５０】
図５は、燃料性状学習値ＡＫＧの区分け領域の一例を示す図である。図５に示すように、燃料性状学習値ＡＫＧ［ｉ］（ｉ＝１〜３）は、低エンジン回転域、中エンジン回転域および高エンジン回転域という３つの区分け領域のそれぞれに設定されている。
【００５１】
燃料性状学習値ＡＫＧ［ｉ］は、ＫＣＳフィードバック補正値ＡＫＣＳの徐変値ＡＫＣＳＳＭと、規定値α（ただし、α＜０）との差（ＡＫＣＳＳＭ−α）を用いて表される（ＡＫＧ［ｉ］←ＡＫＧ［ｉ］＋ＡＫＣＳＳＭ−α）。この徐変値ＡＫＣＳＳＭは、ＫＣＳフィードバック補正値ＡＫＣＳに対してその増減速度を鈍化させる処理を施した値、いわゆる「なまし値」である。徐変値ＡＫＣＳＳＭは、直近のＮ個（例えば、Ｎ＝８）のＫＣＳフィードバック補正値ＡＫＣＳを平均することで算出される。ＫＣＳフィードバック補正値ＡＫＣＳ同様、徐変値ＡＫＣＳＳＭは、クランク角で表される。
【００５２】
（２）デポジット学習値ＡＤＥＰ
デポジット学習値ＡＤＥＰは、点火プラグに付着するデポジットの増加による点火時期の変化を補償するための学習値である。デポジット学習値ＡＤＥＰは、エンジンの運転領域を複数に区分けした区分け領域ごとに用意され、ＥＣＵ２０のメモリに記憶されている。デポジット学習値ＡＤＥＰは、複数の気筒のそれぞれに対応する形で設定されている。
【００５３】
図６は、デポジット学習値ＡＤＥＰの区分け領域の一例を示す図である。図６に示すように、デポジット学習値ＡＤＥＰ［ｉ］（ｉ＝１〜３）は、低エンジン回転域、中エンジン回転域および高エンジン回転域という３つの区分け領域のそれぞれに設定されている。
【００５４】
図６を図５と比較すると分かるように、デポジット学習値ＡＤＥＰ［ｉ］と燃料性状学習値ＡＫＧ［ｉ］は、３つの領域に区分けされている点において一致している。ただし、デポジット学習値ＡＤＥＰの区分け領域の中央部には、更に、多点学習領域と重複する領域が存在する。この多点学習領域は、機差学習値ＡＫＧＭＧ用の区分け領域である。多点学習領域との重複領域には、デポジット学習値ＡＤＥＰ［ｉ］が用意されていない。以下、説明の便宜上、多点学習領域と重複しない領域を「非重複領域」ともいう。
【００５５】
非重複領域におけるデポジット学習値ＡＤＥＰ［ｉ］は、徐変値ＡＫＣＳＳＭと規定値αの差（ＡＫＣＳＳＭ−α）を用いて表される（ＡＤＥＰ［ｉ］←ＡＤＥＰ［ｉ］＋ＡＫＣＳＳＭ−α）。つまり、非重複領域におけるデポジット学習値ＡＤＥＰ［ｉ］は、燃料性状学習値ＡＫＧ［ｉ］と同じ手法により算出される。
【００５６】
（３）機差学習値ＡＫＧＭＧ
機差学習値ＡＫＧＭＧは、経年変化による点火時期の変化を補償するための学習値である。経年変化には、点火装置の機能の劣化が含まれる。経年変化には、点火プラグに付着するデポジットの増加も含まれる。機差学習値ＡＫＧＭＧは、エンジンの運転領域のうちの特定の一部を細分化した領域ごとに用意され、ＥＣＵ２０のメモリに記憶されている。細分化領域の全体が、多点学習領域に相当する。機差学習値ＡＫＧＭＧは、複数の気筒のそれぞれに対応する形で設定されている。
【００５７】
図７は、機差学習値ＡＫＧＭＧの区分け領域の一例を示す図である。図７に示すように、機差学習値ＡＫＧＭＧの区分け領域は、低エンジン回転域と中エンジン回転域に跨っている。機差学習値ＡＫＧＭＧ［ｊ］（ｊ＝１〜１２）は、区分け領域を構成する領域ごとに設定されている。
【００５８】
機差学習値ＡＫＧＭＧ［ｊ］は、基本的に、徐変値ＡＫＣＳＳＭと、規定値αとの差（ＡＫＣＳＳＭ−α）を用いて表される（ＡＫＧＭＧ［ｊ］←ＡＫＧＭＧ［ｊ］＋ＡＫＣＳＳＭ−α）。つまり、機差学習値ＡＫＧＭＧ［ｊ］は、基本的に、燃料性状学習値ＡＫＧ［ｉ］と同じ手法により算出される。ただし、現実的な問題として、区分け領域は、機差学習値ＡＫＧＭＧ［ｉ］の更新が頻繁に行われる領域（高頻度領域）と、当該更新が頻繁に行われない領域（低頻度領域）と、に区別されてしまう。
【００５９】
図８は、高頻度領域と低頻度領域を説明する図である。図８に示すように、区分け領域は、ロードロードラインＲ／Ｌに近い領域と、当該ラインＲ／Ｌから遠い領域と、に分けられる。ロードロードラインＲ／Ｌは、平坦路面上において車両を定速で走行させたときの運転線を意味し、この運転線は、車速ごとに引くことができる。したがって、平坦路面において加減速なしに車両が走行したと仮定すると、ロードロードラインＲ／Ｌに近い領域が高頻度領域となり、運転線Ｒ／Ｌから遠い領域が低頻度領域となる。
【００６０】
以下、説明の便宜上、高頻度領域に設定される機差学習値ＡＫＧＭＧ［ｊ］を「機差学習値ＡＫＧＭＧ［ｍ］」と定義し、低頻度領域に設定される機差学習値ＡＫＧＭＧ［ｊ］を、「機差学習値ＡＫＧＭＧ［ｋ］」と定義する（ｍ＋ｋ＝ｊ）。なお、高頻度領域および低頻度領域は、エンジンの運転条件の履歴を分析することにより特定される。
【００６１】
機差学習値ＡＫＧＭＧ［ｍ］は、徐変値ＡＫＣＳＳＭと規定値αの差（ＡＫＣＳＳＭ−α）を用いて表される（ＡＫＧＭＧ［ｍ］←ＡＫＧＭＧ［ｍ］＋ＡＫＣＳＳＭ−α）。つまり、機差学習値ＡＫＧＭＧ［ｍ］は、燃料性状学習値ＡＫＧ［ｉ］と同じ手法により算出される。一方、機差学習値ＡＫＧＭＧ［ｋ］は、遅角量ＤＬＡＫＮＯＫ［ｋ］と比率学習値ＲＫＧの乗算値を用いて表される（ＡＫＧＭＧ［ｋ］←ＤＬＡＫＮＯＫ［ｋ］×ＲＫＧ）。遅角量ＤＬＡＫＮＯＫ［ｋ］および比率学習値ＲＫＧについては後述する。
【００６２】
ただし、低頻度領域において徐変値ＡＫＣＳＳＭが算出されたときには、この徐変値ＡＫＣＳＳＭと規定値αの差（ＡＫＣＳＳＭ−α）、および、上述した乗算値（＝ＤＬＡＫＮＯＫ［ｋ］×ＲＫＧ）のうち、より値の小さい方を機差学習値ＡＫＧＭＧ［ｋ］とする（ＡＫＧＭＧ［ｋ］←ｍｉｎ｛ＡＫＧＭＧ［ｋ］＋ＡＫＣＳＳＭ−α，ＤＬＡＫＮＯＫ［ｋ］×ＲＫＧ｝）。
【００６３】
（３．１）遅角量ＤＬＡＫＮＯＫ
遅角量ＤＬＡＫＮＯＫは、想定される最大量のデポジットが付着し、また、点火装置が十分に劣化したときの点火時期の最大遅角量を示す値である。遅角量ＤＬＡＫＮＯＫは、クランク角で表される。遅角量ＤＬＡＫＮＯＫは、第２ノック限界点火時期ＡＫＮＯＫ２から第３ノック限界点火時期ＡＫＮＯＫ３を減算することで算出される（ＤＬＡＫＮＯＫ←ＡＫＮＯＫ２−ＡＫＮＯＫ３）。
【００６４】
遅角量ＤＬＡＫＮＯＫは、エンジンの運転領域のうちの特定の一部を細分化した領域ごとに用意され、ＥＣＵ２０のメモリに記憶されている。図９は、遅角量ＤＬＡＫＮＯＫの一例を示す図である。図９に示す区分け領域は、低エンジン回転域と中エンジン回転域に跨っている。図９を図７と比較すると分かるように、図９に示す区分け領域は、図７に示した区分け領域とそれぞれ一致している。図９に示す遅角量ＤＬＡＫＮＯＫ［ｊ］（ｊ＝１〜１２）は、区分け領域を構成する領域ごとに設定されている。
【００６５】
以下、説明の便宜上、高頻度領域に設定される遅角量ＤＬＡＫＮＯＫ［ｊ］を「遅角量ＤＬＡＫＮＯＫ［ｍ］」と定義し、低頻度領域に設定される遅角量ＤＬＡＫＮＯＫ［ｊ］を、「遅角量ＤＬＡＫＮＯＫ［ｋ］」と定義する（ｍ＋ｋ＝ｊ）。なお、高頻度領域および低頻度領域は、エンジンの運転条件の履歴を分析することにより特定される。
【００６６】
（３．２）比率学習値ＲＫＧ
比率学習値ＲＫＧは、点火プラグへのデポジットの付着度合いを示す指標値である。比率学習値ＲＫＧは、遅角量ＤＬＡＫＮＯＫ［ｍ］に対する機差学習値ＡＫＧＭＧ［ｍ］の平均値ＡＶＥ（＝ａｖｅｒａｇｅ（ＡＫＧＭＧ［ｍ］／ＤＬＡＫＮＯＫ［ｍ］））として定義される。比率学習値ＲＫＧは、エンジンの運転領域に関係ない単一の値として、ＥＣＵ２０のメモリに記憶されている。比率学習値ＲＫＧは、デポジットの付着が完全に無い状態では値「０」となり、デポジットの付着量が最大となった状態では値「１」となる。
【００６７】
工場出荷時において比率学習値ＲＫＧは初期値「０」に設定されている。機差学習値ＡＫＧＭＧの学習期間においてノッキングが発生した場合、比率学習値ＲＫＧの値が大きな値に更新される。比率学習値ＲＫＧの更新の詳細は後述する。
【００６８】
２．３．２  学習処理
学習値更新部２６が行う学習処理は、全気筒制御の最中の学習処理と、気筒別制御の最中の学習処理と、に大別される。以下、これらの学習処理について説明する。
【００６９】
（１）全気筒制御中の学習処理（以下、「第１学習処理」ともいう。）
第１学習処理は、ノッキングの発生に対する燃料性状の変化の影響が大きいと考えられる給油直後において、燃料性状学習値ＡＫＧ［ｉ］を更新する処理である。燃料性状の変化による影響は複数の気筒の全てに共通するものであることから、第１学習処理は後述する第２学習処理の実行に優先して行われる。
【００７０】
図１０を参照して、第１学習処理を説明する。図１０は、第１学習処理の流れを説明するフローチャートである。なお、図１０に示す処理は、エンジンの始動後、所定時間ごとに繰り返し実行される。
【００７１】
図１０に示す処理ルーチンでは、先ず、切り替えフラグがＯＦＦか否かが判定される（ステップＳ３０）。切り替えフラグは、エンジンの始動後、上述した切り替え条件が成立した場合にＯＦＦからＯＮに切り替えられる。切り替えフラグがＯＮの場合は、全気筒制御ではなく気筒別制御が実行されていると判断される。そのため、切り替えフラグがＯＮであると判定された場合、燃料性状学習値ＡＫＧ［ｉ］の更新が禁止される（ステップＳ３２）。
【００７２】
ステップＳ３０において切り替えフラグがＯＦＦであると判定された場合、徐変値ＡＫＣＳＳＭが規定値α（α＜０）よりも小さいか否かが判定される（ステップＳ３４）。既に説明した通り、徐変値ＡＫＣＳＳＭは、ＫＣＳフィードバック補正値ＡＫＣＳに対してその増減速度を鈍化させる処理を施した値である。また、ＫＣＳフィードバック補正値ＡＫＣＳは、ノッキングが発生した場合に遅角側に増やされる。そのため、徐変値ＡＫＣＳＳＭが規定値α以上であるということは、給油が行われなかったか、または、給油が行われたものの、ノッキングの発生に影響を及ぼすような燃料性状の変化は無かったと推定できる。よって、徐変値ＡＫＣＳＳＭが規定値α以上であると判定された場合、第１学習処理が終了される。
【００７３】
ステップＳ３４において徐変値ＡＫＣＳＳＭが規定値αよりも小さいと判定された場合、ノッキングの発生に影響を及ぼすような燃料性状の変化があったと推定できる。そのため、燃料性状学習値ＡＫＧ［ｉ］の更新が行われる（ステップＳ３６）。燃料性状学習値ＡＫＧ［ｉ］の更新は、現在の燃料性状学習値ＡＫＧ［ｉ］に、差（ＡＫＣＳＳＭ−α）を加算することにより行われる（ＡＫＧ［ｉ］←ＡＫＧ［ｉ］＋ＡＫＣＳＳＭ−α）。
【００７４】
（２）気筒別制御中の学習処理（以下、「第２学習処理」ともいう。）
第２学習処理は、ノッキングの発生に対する燃料性状の変化の影響が縮小すると考えられる一定時間の経過後において、デポジット学習値ＡＤＥＰ［ｉ］および機差学習値ＡＫＧＭＧ［ｊ］を更新する処理である。第２学習処理は、比率学習値ＲＫＧの更新を行う処理でもある。
【００７５】
図１１を参照して、第２学習処理を説明する。図１１は、第２学習処理の流れを説明するフローチャートである。なお、図１１に示す処理は、エンジンの始動後、所定時間ごとに繰り返し実行される。
【００７６】
図１１に示す処理ルーチンでは、先ず、切り替えフラグがＯＮか否かが判定される（ステップＳ３８）。ステップＳ３８では、基本的には図１０のステップＳ３０の処理と反対の判定が行われる。切り替えフラグがＯＦＦの場合は、気筒別制御ではなく全気筒制御が実行されていると判断される。そのため、切り替えフラグがＯＦＦであると判定された場合、デポジット学習値ＡＤＥＰ［ｉ］および機差学習値ＡＫＧＭＧ［ｊ］の更新が禁止される（ステップＳ４０）。
【００７７】
ステップＳ３８において切り替えフラグがＯＮであると判定された場合、エンジンの運転条件が多点学習領域にあるか否かが判定される（ステップＳ４２）。既に説明した通り、多点学習領域は、機差学習値ＡＫＧＭＧ用の区分け領域である。また、多点学習領域以外の領域（つまり、非重複領域）は、デポジット学習値ＡＤＥＰ用の区分け領域である。そのため、ステップＳ４２において運転条件が多点学習領域にないと判定された場合、デポジット学習値ＡＤＥＰ［ｉ］の更新が行われる（ステップＳ４４およびＳ４６）。
【００７８】
ステップＳ４４およびＳ４６の処理は、基本的に図１０のステップＳ３４およびＳ３６の処理と同じである。具体的に説明すると次の通りである。すなわち、ステップＳ４４では、徐変値ＡＫＣＳＳＭが規定値α（α＜０）よりも小さいか否かが判定される。徐変値ＡＫＣＳＳＭが規定値α以上であるということは、ノッキングの発生に影響を及ぼす程度までデポジットの付着量が増えていないと推定できる。よって、徐変値ＡＫＣＳＳＭが規定値α以上であると判定された場合、第２学習処理が終了される。
【００７９】
ステップＳ４４において徐変値ＡＫＣＳＳＭが規定値αよりも小さいと判定された場合、ノッキングの発生に影響を及ぼす程度までデポジットの付着量が増えたと推定できる。そのため、この場合は、ステップＳ４６においてデポジット学習値ＡＤＥＰ［ｉ］の更新が行われる。デポジット学習値ＡＤＥＰ［ｉ］の更新は、現在のデポジット学習値ＡＤＥＰ［ｉ］に、差（ＡＫＣＳＳＭ−α）を加算することにより行われる（ＡＤＥＰ［ｉ］←ＡＤＥＰ［ｉ］＋ＡＫＣＳＳＭ−α）。
【００８０】
ステップＳ４２において運転条件が多点学習領域にあると判定された場合、一時的な（temporal）機差学習値Ｔ＿ＡＫＧＭＧ［ｊ］の更新が行われる（ステップＳ４８）。一時的な機差学習値Ｔ＿ＡＫＧＭＧ［ｊ］は、機差学習値ＡＫＧＭＧ［ｊ］の仮の値である。一時的な機差学習値Ｔ＿ＡＫＧＭＧ［ｊ］は、クランク角で表される。一時的な機差学習値Ｔ＿ＡＫＧＭＧ［ｊ］は、例えば、現在の機差学習値ＡＫＧＭＧ［ｊ］から規定値ε（ε＜０）だけ遅角させた値である。
【００８１】
ステップＳ４８に続いて、エンジンの運転条件が高頻度領域にあるか否かが判定される（ステップＳ５０）。既に説明した通り、高頻度領域および低頻度領域は、運転条件の履歴を分析することにより特定される。運転条件が高頻度領域にあるか否かは、この特定結果を用いて行われる。運転条件が高頻度領域にあると判定された場合、機差学習値ＡＫＧＭＧ［ｍ］および比率学習値ＲＫＧの更新が行われる（ステップＳ５２およびＳ５４）。運転条件が低頻度領域にあると判定された場合、機差学習値ＡＫＧＭＧ［ｋ］のみ更新が行われる（ステップＳ５６）。
【００８２】
ステップＳ５２において、機差学習値ＡＫＧＭＧ［ｍ］の更新は、一時的な機差学習値Ｔ＿ＡＫＧＭＧ［ｊ］を用いて行われる。機差学習値ＡＫＧＭＧ［ｍ］の更新は、一時的な機差学習値Ｔ＿ＡＫＧＭＧ［ｊ］をそのまま適用することにより行われる。
【００８３】
ステップＳ５４において、比率学習値ＲＫＧの更新は、次のように行われる。先ず、ステップＳ５２で更新した機差学習値ＡＫＧＭＧ［ｍ］を、この更新値が格納される領域の遅角量ＤＬＡＫＮＯＫ［ｍ］によって除算した除算値（＝ＡＫＧＭＧ［ｍ］／ＤＬＡＫＮＯＫ［ｍ］）を算出する。続いて、今回の更新に係る領域以外の領域についても、除算値（＝ＡＫＧＭＧ［ｍ］／ＤＬＡＫＮＯＫ［ｍ］）を算出する。そして、これらの除算値の平均値ＡＶＥ（＝ａｖｅｒａｇｅ（ＡＫＧＭＧ［ｍ］／ＤＬＡＫＮＯＫ［ｍ］））を算出する。この平均値ＡＶＥが、比率学習値ＲＫＧの更新値とされる。
【００８４】
ステップＳ５６において、機差学習値ＡＫＧＭＧ［ｋ］の更新は、一時的な機差学習値Ｔ＿ＡＫＧＭＧ［ｋ］と、比率学習値ＲＫＧと、遅角量ＤＬＡＫＮＯＫ［ｋ］と、を用いて行われる。すなわち、比率学習値ＲＫＧと遅角量ＤＬＡＫＮＯＫ［ｋ］の乗算値、および、一時的な機差学習値Ｔ＿ＡＫＧＭＧ［ｋ］のうち、より値の小さい方が、機差学習値ＡＫＧＭＧ［ｋ］の更新値とされる（ＡＫＧＭＧ［ｋ］←ｍｉｎ｛Ｔ＿ＡＫＧＭＧ［ｋ］，ＤＬＡＫＮＯＫ［ｋ］×ＲＫＧ｝）。
【００８５】
なお、ステップＳ４８〜Ｓ５６においては、一時的な機差学習値Ｔ＿ＡＫＧＭＧ［ｊ］を用いて機差学習値ＡＫＧＭＧ［ｊ］を更新した。しかしながら、一時的な機差学習値Ｔ＿ＡＫＧＭＧ［ｊ］を用いることなく、機差学習値ＡＫＧＭＧ［ｊ］の更新を行ってもよい。
【００８６】
この場合、機差学習値ＡＫＧＭＧ［ｍ］の更新は、燃料性状学習値ＡＫＧ［ｉ］やデポジット学習値ＡＤＥＰ［ｉ］の更新の手法と同様に行われる。すなわち、機差学習値ＡＫＧＭＧ［ｍ］の更新は、現在の機差学習値ＡＫＧＭＧ［ｍ］に、差（ＡＫＣＳＳＭ−α）を加算することにより行われる（ＡＫＧＭＧ［ｍ］←ＡＫＧＭＧ［ｍ］＋ＡＫＣＳＳＭ−α）。機差学習値ＡＫＧＭＧ［ｋ］の更新は、上述した加算値（＝ＡＫＧＭＧ［ｍ］＋ＡＫＣＳＳＭ−α）、および、上述した乗算値（＝ＤＬＡＫＮＯＫ［ｋ］×ＲＫＧ）のうち、より値の小さい方を選択することにより行われる。
【００８７】
３．効果
以上説明した本実施の形態１によれば、各種の効果を得ることができる。
（１）第１学習処理において燃料性状学習値ＡＫＧのみを更新できる。第１学習処理は第２学習処理の実行に優先して行われるので、第１学習処理において燃料性状学習値ＡＫＧのみを更新すれば、燃料性状の変化による点火時期の変化をいち早く点火時期制御に反映させることができる。
【００８８】
（２）第２学習処理においてデポジット学習値ＡＤＥＰを更新できる。第１学習処理の最中にデポジット学習値ＡＤＥＰを更新すれば、デポジットの付着量の増加による点火時期の変化をいち早く点火時期制御に反映できる。しかしながら、近年のエンジンでは、デポジットの付着量の気筒間差が拡大する傾向にある。図１２は、全気筒制御の最中においてノッキングが発生することが確認されたときの点火時期の一例を示した図である。図１２から分かるように、１番気筒と４番気筒の点火時期よりも、２番気筒と３番気筒の点火時期が遅角側に位置している。
【００８９】
全気筒制御の最中においてノッキングの発生に影響を及ぼすのは、燃料性状の変化およびデポジットの付着量の増加が想定される。ただし、燃料性状の変化がノッキングの発生の気筒間差に影響するとは考え難い。そうすると、ノッキングの発生の気筒間差に影響を及ぼしているのは、デポジットの付着量に気筒間差が生じたからと考えられる。この点、第２学習処理においてデポジット学習値ＡＤＥＰを更新すれば、デポジットの付着量の増加による点火時期の変化を、より正確に点火時期制御に反映させることができる。
【００９０】
（３）第２学習処理において比率学習値ＲＫＧを更新できる。比率学習値ＲＫＧは、高頻度領域の機差学習値ＡＫＧＭＧ［ｊ］（つまり、機差学習値ＡＫＧＭＧ［ｍ］）に基づいて算出されている。したがって、低頻度領域において機差学習値ＡＫＧＭＧ［ｊ］（つまり、機差学習値ＡＫＧＭＧ［ｋ］）の更新が進まなくなるのを回避することができる。
【００９１】
実施の形態２．
次に、図１３乃至図１４を参照して、本発明の実施の形態２について説明する。なお、以下においては、本実施の形態２の特徴部分について説明し、上述した実施の形態１と共通する部分についての説明は適宜省略する。
【００９２】
１．実施の形態２の特徴
本実施の形態２は、第２学習処理に特徴がある。図１３は、本実施の形態２における機差学習値ＡＫＧＭＧの区分け領域の一例を示す図である。図１３に示す区分け領域の範囲は、図７に示した区分け領域の範囲と一致している。つまり、図１３に示す区分け領域は、低エンジン回転域と中エンジン回転域に跨っている。
【００９３】
図１３に示すように、機差学習値ＡＫＧＭＧ［ｎ］（ｎ＝１〜２４）は、区分け領域を構成する領域ごとに設定されている。図７と図１３を比較すると分かるように、図１３に示す区分け領域は、図７に示す区分け領域よりも更に細分化されている。なお、細分化領域の全体が多点学習領域に相当することは図７で説明した通りである。
【００９４】
本実施の形態２において、遅角量ＤＬＡＫＮＯＫは、図１３に示した区分け領域を構成する領域ごとに設定されている。
【００９５】
本実施の形態２の第２学習処理では、徐変値ＡＫＣＳＳＭが、直近のＭ個（Ｍ＜Ｎ。例えば、Ｍ＝２）のＫＣＳフィードバック補正値ＡＫＣＳを平均することで算出される。つまり、本実施の形態２の第２学習処理では、徐変値ＡＫＣＳＳＭの算出に用いるＫＣＳフィードバック補正値ＡＫＣＳの個数が減らされている。
【００９６】
２．効果
以上説明した本実施の形態２によれば、次の効果を得ることができる。すなわち、第２学習処理において、より細分化した機差学習値ＡＫＧＭＧを更新できる。図１４は、実施の形態１における第２学習処理の問題点を説明する図である。区分け領域を設定すれば、経年劣化による点火時期の変化を補償できる。しかしながら、機差学習値ＡＫＧＭＧ［ｊ］は連続的な値を取ることから、同一の領域（ｊ＝９の領域）における低負荷側の値と、高負荷側の値との間に差が生じる可能性がある。
【００９７】
この点、区分け領域を図１３のように細分化領域を増やせば、経年劣化による点火時期の変化を、より正確に点火時期制御に反映させることができる。また、徐変値ＡＫＣＳＳＭの算出に用いるＫＣＳフィードバック補正値ＡＫＣＳの個数を減らせば、機差学習値ＡＫＧＭＧ［ｎ］の更新が進まなくなるのを回避することができる。
【符号の説明】
【００９８】
１２    ノックセンサ
１４    クランクポジションセンサ
１６    エアフロメータ
１８    水温センサ
２０    ＥＣＵ
２２    ノッキング検出部
２４    点火時期制御部
２６    学習値更新部
３０    点火装置
【図１】
2019190321.tif 000003
【図２】
2019190321.tif 000004
【図３】
2019190321.tif 000005
【図４】
2019190321.tif 000006
【図５】
2019190321.tif 000007
【図６】
2019190321.tif 000008
【図７】
2019190321.tif 000009
【図８】
2019190321.tif 000010
【図９】
2019190321.tif 000011
【図１０】
2019190321.tif 000012
【図１１】
2019190321.tif 000013
【図１２】
2019190321.tif 000014
【図１３】
2019190321.tif 000015
【図１４】
2019190321.tif 000016