(57)【要約】【課題】ノッキングの発生頻度を抑制可能な内燃機関の点火時期制御装置を提供する。【解決手段】エンジンＥの点火時期制御装置は、エンジンＥのある運転状態におけるＫＣＳ学習値ｅａｇｋｎｋｘを、エンジンＥの他の運転状態における点火時期の制御にも反映させ、最遅角点火時期ｅａｋｍｆに対しＫＣＳ学習値ｅａｇｋｎｋｘを反映させて設定された推定ノック発生点火時期で点火を行い、その後のノッキング発生状況に応じてＫＣＳフィードバック補正値ｅａｋｃｓを増減させて最終点火時期ｅａｏｐを設定するように構成される。エンジンＥの運転状態が推定ノック発生点火時期の予測が困難な領域に入った場合、ＫＣＳフィードバック補正値ｅａｋｃｓを遅角側へシフトさせ、そのシフトさせたＫＣＳフィードバック補正値ｅａｋｃｓを、ＫＣＳ学習値ｅａｇｋｎｋｘとともに、推定ノック発生点火時期の設定に反映させる。【選択図】図７
2008297909.tif 000002
【特許請求の範囲】
【請求項１】
学習制御によって学習された内燃機関のある運転状態における学習値を、内燃機関の他の運転状態における点火時期の制御にも反映させるように構成され、
内燃機関の運転状態に基づく最遅角点火時期に対し前記学習値を反映させて設定された推定ノック発生点火時期で点火を行って、その後のノッキングの発生状況に応じて補正量を増減するフィードバック補正に基づいて最終点火時期を設定するように構成された内燃機関の点火時期制御装置において、
内燃機関の運転状態が、前記推定ノック発生点火時期の予測が困難な領域に入った場合には、前記補正量を所定量だけ遅角側へシフトさせ、
その遅角側へシフトさせた補正量を、前記学習値とともに、前記推定ノック発生点火時期の設定に反映させることを特徴とする内燃機関の点火時期制御装置。
【請求項２】
前記推定ノック発生点火時期の予測が困難な領域が、前記内燃機関の軽負荷領域であることを特徴とする請求項１に記載の内燃機関の点火時期制御装置。
【請求項３】
前記推定ノック発生点火時期の予測が困難な領域が、前記内燃機関の軽負荷領域、かつ、前記内燃機関へのデポジットの付着が全く無い場合の最遅角点火時期とデポジットの付着が想定される最大量となった場合の最遅角点火時期との偏差が所定値以上の領域であることを特徴とする請求項１に記載の内燃機関の点火時期制御装置。
【請求項４】
前記補正量の遅角側へのシフト量が、ノッキングの発生時にこの補正量の遅角側への変更量に比べ大きく設定されていることを特徴とする請求項１〜請求項３のいずれかに記載の内燃機関の点火時期制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、内燃機関の運転状態に応じて点火栓（点火プラグ）の点火時期を制御する点火時期制御装置に関する。
【背景技術】
【０００２】
内燃機関（以下、「エンジン」ともいう。）では、燃焼によって得られる出力を最大限効率よく得ようとするために、また、排気ガス浄化性能や燃費性能を良好とするために点火時期制御が行われる。ここで、燃焼によって発生されたエネルギーを最も効率よく出力として得るには、燃焼室内部の圧力ピークが圧縮上死点よりもやや遅れたところで発生することが好ましいことが知られている。このため、圧縮上死点よりもやや遅れたところで圧力ピークが発生するように点火時期が決定されるが、点火時期が早すぎると（進角されすぎると）ノッキングが生じてしまう。
【０００３】
点火時期制御装置の一例として、次のようなＫＣＳ（Ｋｎｏｃｋ  Ｃｏｎｔｒｏｌ  Ｓｙｓｔｅｍ）制御を行うものが知られている。この制御では、ノックセンサによってノッキングの発生状況を検出し、その検出結果に応じて点火時期を調整するフィードバック補正（フィードバック制御）を行いつつ、そのフィードバック補正の応答性を高めるべく、フィードバック補正による点火時期の変化度合いを学習値として記憶保持する学習制御を行っている（例えば、特許文献１，２参照）。この点火時期制御装置によれば、エンジンの最終点火時期は、例えば、下記の式（３）や式（４）などに基づいて算出される（例えば図４参照）。
【０００４】
特許文献１の点火時期制御装置では、学習制御によって学習されたあるエンジン運転状態における学習値（ＫＣＳ学習値）を、他のエンジン運転状態における点火時期の制御にも反映させるようにしている。例えば最遅角点火時期の設定ラインに対して平行に点火時期（推定ノック発生点火時期）のラインを設定して、そのライン上の点火時期で点火を行う。この場合、推定ノック発生点火時期のラインは、最遅角点火時期のラインに対して平行に、反映させる学習値の分だけ進角させたラインになっている。そして、その後のノッキングの発生状況によって点火時期をフィードバック補正したフィードバック補正値に基づいて最終点火時期を設定するようにしている（例えば図４参照）。また、その結果、そのエンジン運転状態における点火時期を学習させ、学習値を更新する。こうして学習された学習値を他のエンジン運転状態における点火時期の制御にもさらに反映させる。
【特許文献１】特開２００２−０３１０２４号公報
【特許文献２】特開２００５−１４７１１２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ところで、上述したような点火時期制御装置では、最遅角点火時期に対し学習制御による学習値を反映させて設定される推定ノック発生点火時期を正確に予測して設定することがノッキングの発生を抑制する上で重要である。すなわち、推定ノック発生点火時期を正確に予測できなければ、ノッキングの解消までに時間を要し、継続的に多数回のノッキングが発生してしまう可能性があり、ノッキング音が車室内に伝達されてしまって乗員に違和感を与えたり、エンジンに悪影響を与えたりする可能性がある。
【０００６】
しかし、個々のエンジンについて、推定ノック発生点火時期を正確に予測することは、市場での多様な運転環境や個体差などを考えると困難である。それに加え、エンジンの運転条件によっても、推定ノック発生点火時期を正確に予測することが困難な場合がある。このような場合に、上述した学習制御による学習値をそのまま反映させると、予測される推定ノック発生点火時期に大きなバラツキが発生してしまうことになる。したがって、上述した学習制御による学習値をそのまま適用することが難しいエンジンの運転条件が存在する。
【０００７】
そのようなエンジンの運転条件の一例として、例えば、運転者によりアクセルペダルが操作されることなどによって、エンジン運転状態が軽負荷の領域に入った場合が挙げられる。軽負荷の領域では、運転環境やエンジンの個体差などによる点火時期の感度が高く、点火時期が変動しやすいので、正確な推定ノック発生点火時期の予測が難しくなる。
【０００８】
また、上記エンジンの運転条件の一例として、例えば、未燃燃料やブローバイガス、潤滑油等に由来するデポジットのエンジンへの付着度合いが大きくなった場合が挙げられる。デポジットは、エンジンの使用に応じ、吸気ポートや吸気バルブ、ピストンなどに次第に付着する。そして、デポジットの付着度合いが増大すると、実質的な燃焼室の容積が減少して燃焼時の筒内圧力が増大すること等に起因してノッキングが発生しやすくなる。特許文献２には、点火時期制御において、デポジットの付着による影響度合いを考慮した比率学習を行うことが示されている。しかし、デポジットによる影響はエンジン運転状態が軽負荷であるほど顕著に現れるため、そのような軽負荷の領域では比率学習を行ったとしても、正確な推定ノック発生点火時期の予測が難しくなる。
【０００９】
また、上述のように、推定ノック発生点火時期を正確に予測できない場合、ノック判定にも悪影響を与える可能性がある。すなわち、徐々に発生するノッキングに対してはそのノック判定を正確に行うことができる。しかし、推定ノック発生点火時期を正確に予測できないために、エンジンの運転条件が変化して、突然、予期しない大レベルのノッキング（過大ノック）が発生する場合があり、この場合にはノック判定を正確に行えなくなる可能性がある。
【００１０】
ノック判定は、例えば、図１１に示すように、ノックセンサ出力（図１１では１点鎖線で示す）のピークホールド値を、正規分布と想定した気筒のバックグラウンド信号（図１１では２点鎖線で示す）と比較することによって行う場合、ノック判定レベル（図１１ではＴｈ１）以上において、ノックセンサ出力とバックグラウンド信号との差が所定の判定値以上であればノッキングが発生したと判定する。しかし、この場合、上述のような予期しない過大ノックの発生などにより、バックグラウンド信号が大きな状態になると（図１１では実線で示すライン）、これにともなってノック判定レベルも大きくなる（図１１ではＴｈ２）。ノック判定レベルが大きくなると、実際にはノッキングが発生しているにもかかわらず、ノッキングが発生したとは判定されなくなる場合がある。その結果、点火時期を適切に遅角させることができなくなり、ノッキングが発生した状態が継続してしまう可能性がある。
【００１１】
本発明は、そのような問題点を鑑みてなされたものであり、内燃機関の運転状態が、最遅角点火時期に対し学習制御による学習値を反映させて設定される推定ノック発生点火時期の正確な予測が困難な領域に入ったとしても、ノッキングの発生頻度を抑制可能であるような内燃機関の点火時期制御装置を提供することを目的とする。
【課題を解決するための手段】
【００１２】
本発明は、上述の課題を解決するための手段を以下のように構成している。すなわち、本発明は、内燃機関の点火時期制御装置であって、学習制御によって学習された内燃機関のある運転状態における学習値を、内燃機関の他の運転状態における点火時期の制御にも反映させるように構成され、内燃機関の運転状態に基づく最遅角点火時期に対し前記学習値を反映させて設定された推定ノック発生点火時期で点火を行って、その後のノッキングの発生状況に応じて補正量を増減するフィードバック補正に基づいて最終点火時期を設定するように構成されている。
【００１３】
そして、内燃機関の運転状態が、前記推定ノック発生点火時期の予測が困難な領域に入った場合には、前記補正量を所定量だけ遅角側へシフトさせ、その遅角側へシフトさせた補正量を、前記学習値とともに、前記推定ノック発生点火時期の設定に反映させることを特徴としている。この場合、前記補正量の遅角側へのシフト量を、ノッキングの発生時にこの補正量の遅角側への変更量に比べ大きく設定することが好ましい。
【００１４】
上記構成によれば、内燃機関の運転状態が、推定ノック発生点火時期の正確な予測が困難な領域に入ったとしても、ノッキングの発生状況に応じて増減されるフィードバック補正の補正量を所定量だけ遅角側へシフトさせて、点火時期（推定ノック発生点火時期）に反映させている。つまり、その領域に入った場合、学習制御による学習値をそのまま適用するのではなく、この学習値とともに所定量だけ遅角側へシフトさせた補正量を推定ノック発生点火時期の設定に反映させている。これにともなって、その推定ノック発生点火時期がその補正量のシフト量の分だけ遅角側に設定されるようになる。これにより、ノッキングが発生したとしても、フィードバック補正によって最終点火時期を迅速に遅角させることが可能になる。したがって、ノッキングの解消までに要する時間が短時間で済み、ノッキングの発生頻度を抑制できる。
【００１５】
また、内燃機関の運転状態が、推定ノック発生点火時期の正確な予測が困難な軽負荷領域に入ったとしても、予期しない大レベルのノッキング（過大ノック）が発生することを抑制できる。例えば、実際にはノッキングが発生しているにもかかわらずノッキングが発生したとは判定されなくなることいったような、ノック判定への悪影響を抑制できる。このように、ノック判定を正確に行うことができるようになるので、フィードバック補正によって最終点火時期を適切に遅角させることができ、ノッキングの解消を確実に行うことができる。
【００１６】
ここで、前記推定ノック発生点火時期の予測が困難な領域の具体例として、以下の２態様が挙げられる。
【００１７】
まず、内燃機関の軽負荷領域が挙げられる。その理由は、内燃機関の軽負荷領域では、運転環境や内燃機関の個体差などによる点火時期の感度が高く、点火時期が変動しやすいので、正確な推定ノック発生点火時期の予測が難しくなるからである。
【００１８】
また、内燃機関の軽負荷領域、かつ、内燃機関へのデポジットの付着が全く無い場合の最遅角点火時期とデポジットの付着が想定される最大量となった場合の最遅角点火時期との偏差が所定値以上の領域が挙げられる。その理由は、デポジットの付着度合いが増大すると、実質的な燃焼室の容積が減少して燃焼時の筒内圧力が増大すること等に起因してノッキングが発生しやすくなる。このようなデポジットによる影響は内燃機関の運転状態が軽負荷であるほど顕著に現れるため、そのような軽負荷の領域では、正確な推定ノック発生点火時期の予測が難しくなるからである。
【発明の効果】
【００１９】
本発明によれば、内燃機関の運転状態が、最遅角点火時期に対し学習制御による学習値を反映させて設定される推定ノック発生点火時期の正確な予測が困難な領域に入ったとしても、ノッキングの解消までに要する時間が短時間で済み、ノッキングの発生頻度を抑制することができる。
【発明を実施するための最良の形態】
【００２０】
本発明の実施の形態を図面に基づいて説明する。以下では、本発明に係る点火時期制御装置を自動車用Ｖ型６気筒エンジンに適用した場合について説明する。なお、本発明は、自動車用Ｖ型６気筒エンジンに限らず、種々のエンジンに対して適用可能である。
【００２１】
−エンジン全体構成−
図１は、実施形態に係るＶ型エンジンＥをクランクシャフトＣの軸心に沿った方向から見たエンジン内部の概略構成を示す図である。図２は、このＶ型エンジンＥ、吸排気系および制御系の概略を示すシステム構成図である。
【００２２】
図１、図２に例示するＶ型エンジン（以下、単に「エンジン」という）Ｅは、シリンダブロック１の上部にＶ型に突出した一対のバンク２Ｌ，２Ｒを有している。各バンク２Ｌ，２Ｒは、シリンダブロック１の上端部に設置されたシリンダヘッド３Ｌ，３Ｒと、その上端に取り付けられたヘッドカバー４Ｌ，４Ｒとをそれぞれ備えている。シリンダブロック１には、複数のシリンダ５Ｌ，５Ｒ，…（例えば、各バンク２Ｌ，２Ｒに３つずつ）が所定の挟み角（例えば９０°）をもって配設されており、これらシリンダ５Ｌ，５Ｒ，…の内部にピストン５１Ｌ，５１Ｒ，…が往復移動可能に収容されている。各ピストン５１Ｌ，５１Ｒ，…はコネクティングロッド５２Ｌ，５２Ｒ，…を介してクランクシャフトＣに動力伝達可能に連結されている。さらに、シリンダブロック１の下側にはクランクケース６が取り付けられており、シリンダブロック１内の下部からクランクケース６の内部に亘る空間がクランク室６１となっている。また、このクランクケース６のさらに下側にはオイル溜まり部となるオイルパン６２が配設されている。
【００２３】
シリンダヘッド３Ｌ，３Ｒには、吸気ポート３１Ｌ，３１Ｒを開閉するための吸気バルブ３２Ｌ，３２Ｒおよび排気ポート３３Ｌ，３３Ｒを開閉するための排気バルブ３４Ｌ，３４Ｒがそれぞれ組み付けられている。そして、シリンダヘッド３Ｌ，３Ｒとヘッドカバー４Ｌ，４Ｒとの間に形成されているカム室４１Ｌ，４１Ｒに配置されたカムシャフト３５Ｌ，３５Ｒ，３６Ｌ，３６Ｒの回転によって各バルブ３２Ｌ，３２Ｒ，３４Ｌ，３４Ｒの開閉動作が行われるようになっている。
【００２４】
シリンダヘッド３Ｌ，３Ｒは、分割構造となっている。詳しくは、シリンダブロック１の上面に取り付けられるシリンダヘッド本体３７Ｌ，３７Ｒと、このシリンダヘッド本体３７Ｌ，３７Ｒの上側に組み付けられるカムシャフトハウジング３８Ｌ，３８Ｒとによりシリンダヘッド３Ｌ，３Ｒが構成されている。
【００２５】
一方、各バンク２Ｌ，２Ｒの内側（バンク間側）の上部には各バンク２Ｌ，２Ｒに対応する吸気マニホールド７Ｌ，７Ｒが配設されており、各吸気マニホールド７Ｌ，７Ｒの下流端が各吸気ポート３１Ｌ，３１Ｒ，…に連通している。また、吸気マニホールド７Ｌ，７Ｒは、各バンク共通のサージタンク７１（図２参照）およびスロットルバルブ７２を備えた吸気管７３に連通されており、この吸気管７３の上流側にはエアクリーナ７４が設けられている。これにより、エアクリーナ７４から吸気管７３内に導入された空気は、サージタンク７１を通じて各吸気マニホールド７Ｌ，７Ｒに導入される。
【００２６】
シリンダヘッド３Ｌ，３Ｒの吸気ポート３１Ｌ，３１Ｒにはインジェクタ７５Ｌ，７５Ｒがそれぞれ設けられており、インジェクタ７５Ｌ，７５Ｒからの燃料噴射時にあっては、吸気マニホールド７Ｌ，７Ｒ内に導入された空気と、このインジェクタ７５Ｌ，７５Ｒから噴射された燃料とが混合されて混合気となり、吸気バルブ３２Ｌ，３２Ｒの開弁にともなって燃焼室７６Ｌ，７６Ｒへ導入されることになる。
【００２７】
燃焼室７６Ｌ，７６Ｒの頂部には点火プラグ７７Ｌ，７７Ｒが配設されている。燃焼室７６Ｌ，７６Ｒにおいて、点火プラグ７７Ｌ，７７Ｒの点火にともなう混合気の燃焼圧力はピストン５１Ｌ，５１Ｒに伝えられ、ピストン５１Ｌ，５１Ｒを往復運動させる。ピストン５１Ｌ，５１Ｒの往復運動は、コネクティングロッド５２Ｌ，５２Ｒを介してクランクシャフトＣに伝えられ、回転運動に変換されてエンジンＥの出力として取り出されることになる。また、各カムシャフト３５Ｌ，３５Ｒ，３６Ｌ，３６Ｒは、クランクシャフトＣから取り出される動力がタイミングチェーンによって伝達されて回転駆動され、この回転によって上記各バルブ３２Ｌ，３２Ｒ，３４Ｌ，３４Ｒの開閉動作を行わせる。
【００２８】
そして、燃焼後の混合気は排気ガスとなり、排気バルブ３４Ｌ，３４Ｒの開弁にともない排気マニホールド８Ｌ，８Ｒに排出される。排気マニホールド８Ｌ，８Ｒには排気管８１Ｌ，８１Ｒがそれぞれ接続され、さらに、排気管８１Ｌ，８１Ｒには三元触媒等を内蔵した触媒コンバータ８２Ｌ，８２Ｒが取り付けられている。触媒コンバータ８２Ｌ，８２Ｒを排気ガスが通過することにより、排気ガス中に含まれる炭化水素（ＨＣ）、一酸化炭素（ＣＯ）、および、酸化窒素成分（ＮＯｘ）が浄化されるようになっている。また、排気管８１Ｌ，８１Ｒの下流端側は合流されてマフラ８３に接続されている。
【００２９】
−制御ブロックの説明−
以上のエンジンＥの運転状態はエンジンＥＣＵ（Ｅｌｅｃｔｒｏｎｉｃ  Ｃｏｎｔｒｏｌ  Ｕｎｉｔ）９によって制御される。このエンジンＥＣＵ９は、図３に示すように、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）９１、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）９２、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）９３、バックアップＲＡＭ９４などを備えている。
【００３０】
ＲＯＭ９２は、各種制御プログラムや、それら各種制御プログラムを実行する際に参照されるマップ等が記憶されている。ＣＰＵ９１は、ＲＯＭ９２に記憶された各種制御プログラムやマップに基づいて演算処理を実行する。ＲＡＭ９３は、ＣＰＵ９１での演算結果や各センサから入力されたデータ等を一時的に記憶するメモリであり、バックアップＲＡＭ９４は、エンジンＥの停止時にその保存すべきデータ等を記憶する不揮発性のメモリである。これらＲＯＭ９２、ＣＰＵ９１、ＲＡＭ９３およびバックアップＲＡＭ９４は、バス９７を介して互いに接続されるとともに、外部入力回路９５および外部出力回路９６と接続されている。
【００３１】
外部入力回路９５には、水温センサ１０１、エアフローメータ１０２、吸気温センサ１０３、Ｏ2センサ１０４、スロットルポジションセンサ１０５、クランク角センサ１０６、カム角センサ１０７、ノックセンサ１０８、吸気圧センサ１０９、アクセル開度センサ１１０などが接続されている。一方、外部出力回路９６には、インジェクタ７５Ｌ，７５Ｒ、イグナイタ１１１、スロットルバルブ７２を駆動するスロットルモータ７２ａなどが接続されている。
【００３２】
水温センサ１０１は、シリンダブロック１に形成されているウォータジャケット１１内を流れる冷却水の温度を検出し、その冷却水温信号をエンジンＥＣＵ９に送信する。エアフローメータ１０２は、吸入空気量を検出し、その吸入空気量信号をエンジンＥＣＵ９に送信する。吸気温センサ１０３は、上記エアクリーナ７４の下流側に配設され、吸入空気温度を検出して、その吸入空気温度信号をエンジンＥＣＵ９に送信する。Ｏ2センサ１０４は、各触媒コンバータ８２Ｌ，８２Ｒの下流側に配設され、排気ガス中の酸素濃度を検知するものであり、排気中の空燃比が理論空燃比にあるか否かを判定しその判定信号をエンジンＥＣＵ９に送信する。スロットルポジションセンサ１０５は、スロットルバルブ７２の開度を検出するものであって、そのスロットル開度信号をエンジンＥＣＵ９に送信する。
【００３３】
クランク角センサ１０６は、クランクシャフトＣの近傍に配設されており、クランクシャフトＣの回転角（クランク角ＣＡ）および回転速度（エンジン回転速度ｅｎｅ）を検出するものである。具体的に、このクランク角センサ１０６は、所定のクランク角（例えば３０°）ごとにパルス信号を出力する。このクランク角センサ１０６によるクランク角の検出手法の一例としては、クランクシャフトＣと回転一体のロータ（ＮＥロータ）１０６ａの外周面の３０°おきに外歯を形成しておき、この外歯と対面して電磁ピックアップで成るクランク角センサ１０６を配置する。そして、クランクシャフトＣの回転にともなって外歯がクランク角センサ１０６の近傍を通過した際に、このクランク角センサ１０６が出力パルスを発生するようになっている。なお、このＮＥロータ１０６ａとしては、外周面に形成される外歯が１０°おきに形成されたものが適用される場合もある。この場合、エンジンＥＣＵ９内で分周して３０°ＣＡごとの出力パルスを発生する。
【００３４】
カム角センサ１０７は、吸気カムシャフト３５Ｌ，３５Ｒの近傍に配設されており、例えば、第１番気筒の圧縮上死点（ＴＤＣ）に対応してパルス信号を出力することにより気筒判別センサとして使用される。つまり、このカム角センサ１０７は、吸気カムシャフト３５Ｌ，３５Ｒの１回転ごとにパルス信号を出力する。このカム角センサ１０７によるカム角の検出手法の一例としては、吸気カムシャフト３５Ｌ，３５Ｒと回転一体のロータの外周面の１箇所に外歯を形成しておき、この外歯と対面して電磁ピックアップで成るカム角センサ１０７を配置し、吸気カムシャフト３５Ｌ，３５Ｒの回転にともなって外歯がカム角センサ１０７の近傍を通過した際に、このカム角センサ１０７が出力パルスを発生するようになっている。このロータはクランクシャフトＣの２分の１の回転速度で回転するため、クランクシャフトＣが７２０°回転するごとに出力パルスを発生する。言い換えると、ある特定の気筒が同一行程（例えば、第１番気筒が圧縮上死点に達した時点）となるごとに出力パルスを発生する構成である。
【００３５】
ノックセンサ１０８は、各バンク２Ｌ，２Ｒそれぞれに配設され、シリンダブロック１に伝わるエンジンの振動を圧電素子式（ピエゾ素子式）または電磁式（マグネット、コイル）などによって検出する振動式センサであり、シリンダブロック１の振動の大きさに応じた出力信号をエンジンＥＣＵ９に送信する。吸気圧センサ１０９は、サージタンク７１に取り付けられており、吸気管７３内の圧力（吸気管内圧力）を検出し、その吸気圧信号をエンジンＥＣＵ９に送信する。アクセル開度センサ１１０は、アクセルペダルの踏み込み量（アクセル開度）に応じた検出信号を出力するものであり、単位時間あたりのアクセル開度の変化量を認識することによってアクセルの操作速度を認識できるようになっている。
【００３６】
そして、エンジンＥＣＵ９は、上記各種センサ１０１〜１１０の出力信号に基づいて、イグナイタ１１１、インジェクタ７５Ｌ，７５Ｒ、スロットルモータ７２ａ等の各部を制御することにより、後述する点火時期制御を含むエンジンＥの各種制御を実行する。
【００３７】
その一例として、エンジンＥのイグナイタ１１１，１１１による点火プラグ７７Ｌ，７７Ｒの点火時期制御（ＫＣＳ制御）としては、ノックセンサ１０８，１０８によって検出されるノッキングの発生状況に応じて点火時期を調整して、ノッキングの発生を抑制する制御が行われる。エンジンＥにおける点火時期制御の詳細については後述する。また、エンジンＥのインジェクタ７５Ｌ，７５Ｒの燃料噴射の制御としては、エンジン負荷やエンジン回転速度等に基づいて目標空燃比を算出し、エアフローメータ１０２によって検出された吸入空気量に基づき、上記目標空燃比が得られるように燃料噴射量の制御（インジェクタ７５Ｌ，７５Ｒの開弁時間の制御）が行われる。また、エンジンＥのスロットルモータ７２ａの駆動制御としては、運転者により操作されるアクセルペダルの開度等に基づき、要求されたエンジン出力を得るための吸入空気量となるスロットルバルブ７２の開度が得られるようにスロットルモータ７２ａの駆動量が制御される。
【００３８】
−点火時期制御の基本制御−
次に、この実施形態の点火時期制御の基本制御の動作について説明する。エンジンＥにおける点火時期制御動作は、点火時期の制御指令値である最終点火時期ｅａｏｐを設定することによって行われる。なお、以下では、点火時期を、点火対象となる気筒の圧縮上死点に対するクランク角の進角量［°ＣＡ］として表すようにしている。また、ここでは、エンジンＥの使用に応じ、吸気ポート吸気ポート３１Ｌ，３１Ｒや吸気バルブ３２Ｌ，３２Ｒ、ピストン５１Ｌ，５１Ｒなどに次第に付着するデポジットによる影響を考慮しない場合について説明する。エンジンＥに付着するデポジットによる影響を考慮した場合については後述する。
【００３９】
点火時期制御動作の基本的な動作としては、上記背景技術で述べた動作と同様であり、例えば、上記特許文献１，２などの場合と同様の動作が行われる。すなわち、制御主体であるエンジンＥＣＵ９が、ノックセンサ１０８，１０８によってノッキングの発生状況を検出し、その検出結果に応じて点火時期を調整するフィードバック補正（フィードバック制御）動作、および、そのフィードバック補正動作の応答性を高めるべく、こうしたフィードバック補正動作による点火時期の変化度合いを学習値として記憶保持する学習制御動作を行っている。
【００４０】
具体的に、次のような動作が行われる。以下の動作は、エンジンＥの運転開始後、点火時期制御動作を行う期間内（ＫＣＳ領域内）にある場合には、一定周期ごと（例えば６４ｍｓｅｃごと）に繰り返される。
【００４１】
まず、エンジンＥＣＵ９は、最終点火時期ｅａｏｐの設定を行うにあたって、基本点火時期ｅａｂｓｅおよび遅角側の限界値である最遅角点火時期ｅａｋｍｆを算出する。そして、それらに基づき、基本点火時期ｅａｂｓｅに対する最終点火時期ｅａｏｐの最大遅角量ｅａｋｍａｘを算出する。基本点火時期ｅａｂｓｅとしては、例えば、ノッキング等による影響を考慮せずに、エンジンＥの出力トルクが最大となるような点火時期（ＭＢＴ（Ｍｉｎｉｍｕｍ  ｓｐａｒｋ  ａｄｖａｎｃｅ  ｆｏｒ  Ｂｅｓｔ  Ｔｏｒｑｕｅ）と呼ばれる。）に設定することが可能である。最遅角点火時期ｅａｋｍｆとしては、想定される最悪の条件下でも、十分にノッキングを許容できるレベル以内に収めることのできる点火時期に設定することが可能である。
【００４２】
この場合、エンジンＥＣＵ９は、クランク角センサ１０６およびエアフローメータ１０２の出力信号に基づいてエンジン回転速度ｅｎｅおよび吸入空気量ｅｇａを読み込むとともに、エンジン負荷ｅｋｌｓｍ（＝ｅｇａ／ｅｎｅ）を算出する。そして、エンジンＥＣＵ９は、エンジン回転速度ｅｎｅおよびエンジン負荷ｅｋｌｓｍに基づいて基本点火時期ｅａｂｓｅおよび最遅角点火時期ｅａｋｍｆを算出する。ここで、エンジンＥＣＵ９のＲＯＭ９２には、エンジン回転速度ｅｎｅおよびエンジン負荷ｅｋｌｓｍと基本点火時期ｅａｂｓｅとの関係、ならびに、エンジン回転速度ｅｎｅおよびエンジン負荷ｅｋｌｓｍと最遅角点火時期ｅａｋｍｆとの関係を、それぞれ定義するマップデータあるいは関数データが記憶されている。エンジンＥＣＵ９は、そのＲＯＭ９２のデータを参照して基本点火時期ｅａｂｓｅおよび最遅角点火時期ｅａｋｍｆを算出する。
【００４３】
次に、エンジンＥＣＵ９は、基本点火時期ｅａｂｓｅおよび最遅角点火時期ｅａｋｍｆに基づいて、次の式（１）により、最大遅角量ｅａｋｍａｘを算出する。最大遅角量ｅａｋｍａｘは、基本点火時期ｅａｂｓｅを遅角させる際の最大量であり、ノッキングの発生を確実に抑制することができる大きさに設定される。
【００４４】
ｅａｋｍａｘ＝ｅａｂｓｅ−ｅａｋｍｆ  ・・・（１）
次に、エンジンＥＣＵ９は、基本点火時期ｅａｂｓｅに対する最終点火時期ｅａｏｐの遅角量であるＫＣＳ遅角量ｅａｋｎｋを求めることによって、最終点火時期ｅａｏｐを算出する。この際、エンジンＥＣＵ９は、最大遅角量ｅａｋｍａｘ、ＫＣＳ学習値ｅａｇｋｎｋｘ、および、ＫＣＳフィードバック補正値（ＫＣＳフィードバック量）ｅａｋｃｓに基づいて、次の式（２）により、ＫＣＳ遅角量ｅａｋｎｋを算出する。
【００４５】
ｅａｋｎｋ＝ｅａｋｍａｘ−ｅａｇｋｎｋｘ−ｅａｋｃｓ  ・・・（２）
そして、エンジンＥＣＵ９は、次の式（３）に示すように、基本点火時期ｅａｂｓｅからＫＣＳ遅角量ｅａｋｎｋを減算して最終点火時期ｅａｏｐを設定する。すなわち、最終点火時期ｅａｏｐは、次の式（４）に示すように、最遅角点火時期ｅａｋｍｆに対して、ＫＣＳ学習値ｅａｇｋｎｋｘの分だけ進角され、ＫＣＳフィードバック補正値ｅａｋｃｓの分だけ遅角された値となる。なお、最終点火時期ｅａｏｐの値には、基本点火時期ｅａｂｓｅ以上となったり、あるいは、最遅角点火時期ｅａｋｍｆ以下となったりしないように、その値の上限および下限が設定されている。
【００４６】
ｅａｏｐ＝ｅａｂｓｅ−ｅａｋｎｋ  ・・・（３）
ｅａｏｐ＝ｅａｋｍｆ＋ｅａｇｋｎｋｘ−ｅａｋｃｓ  ・・・（４）
ここで、ＫＣＳフィードバック補正値ｅａｋｃｓは、ノックセンサ１０８，１０８により検出されるノッキングの発生状況に応じてその値が設定される。具体的には、ノッキングが発生していないと判定された場合、ＫＣＳフィードバック補正値ｅａｋｃｓの値は徐々に減少される。例えば、ノックセンサ１０８，１０８の出力が所定の判定値未満で、ノッキングが十分許容できるレベル以下に収まっていると判断されたときには、ＫＣＳフィードバック補正値ｅａｋｃｓの値は徐々に減少される。この場合、式（４）によれば、最終点火時期ｅａｏｐが進角側に設定されることになる。一方、ノッキングが発生したと判定された場合、ＫＣＳフィードバック補正値ｅａｋｃｓの値は所定値（例えば、「１．０°ＣＡ」）だけ加増される。例えば、ノックセンサ１０８，１０８の出力が上記判定値以上であるときには、ＫＣＳフィードバック補正値ｅａｋｃｓの値は所定値だけ加増される。この場合、式（４）によれば、最終点火時期ｅａｏｐが遅角側に設定されることになる。
【００４７】
また、ＫＣＳ学習値ｅａｇｋｎｋｘは、次のような学習制御によって更新される値である。すなわち、ＫＣＳ学習値ｅａｇｋｎｋｘは、上記ＫＣＳフィードバック補正値ｅａｋｃｓの絶対値が所定値よりも大きい状態（｜ｅａｋｃｓ｜＞Ｘ）が所定時間以上継続したときに、このＫＣＳフィードバック補正値ｅａｋｃｓの絶対値を徐々に縮小するようにその値が更新される。つまり、ＫＣＳフィードバック補正値ｅａｋｃｓがある正の値（ｅａｋｃｓ＞Ｘ）よりも大きい状態が継続したときには、ＫＣＳ学習値ｅａｇｋｎｋｘの値に所定値Ｙが減算される。また、これとともにＫＣＳフィードバック補正値ｅａｋｃｓの値にも同じく所定値Ｙが減算される。一方、ＫＣＳフィードバック補正値ｅａｋｃｓがある負の値（ｅａｋｃｓ＜−Ｘ）よりも小さい状態が継続したときには、ＫＣＳ学習値ｅａｇｋｎｋｘの値およびＫＣＳフィードバック補正値ｅａｋｃｓの値にそれぞれ所定値Ｙが加算される。
【００４８】
このような学習制御によって更新されたＫＣＳ学習値ｅａｇｋｎｋｘの値は、エンジンＥＣＵ９のバックアップＲＡＭ９４に記憶され、エンジンＥの停止中もその値が保持される。なお、点火時期制御の開始時には、ＫＣＳフィードバック補正値ｅａｋｃｓは、その初期値である値「０」に設定されており、したがって、最終点火時期ｅａｏｐは、最遅角点火時期ｅａｋｍｆからＫＣＳ学習値ｅａｇｋｎｋｘの分だけ進角させた値に設定される。
【００４９】
なお、学習制御を、ＫＣＳフィードバック補正値ｅａｋｃｓの値に対するなまし処理を行って、そのなまし処理後の値をＫＣＳ学習値ｅａｇｋｎｋｘに反映させるようにしてもよい。この場合、なまし処理のなまし率として、例えば、４分の１などを採用することが可能である。
【００５０】
そして、この実施形態では、上述のようにして学習されたあるエンジン運転状態におけるＫＣＳ学習値ｅａｇｋｎｋｘを、他のエンジン運転状態における点火時期の制御にも反映させるようにしている。例えば、図４のエンジン負荷と点火時期との関係を示す図で説明すれば、点火時期制御の開始時に、バックアップＲＡＭ９４に記憶されている現在のＫＣＳ学習値ｅａｇｋｎｋｘを反映させ、最遅角点火時期ｅａｋｍｆの設定ラインＡ（図４の破線）に対して平行に点火時期（推定ノック発生点火時期）のラインＢ（図４の実線）を設定して、そのラインＢ上の点火時期で点火を行う。この場合、推定ノック発生点火時期のラインＢは、最遅角点火時期ｅａｋｍｆのラインＡに対して平行に、反映させるＫＣＳ学習値ｅａｇｋｎｋｘの分だけ進角させたラインになっている。そして、その後のノッキングの発生状況によって点火時期をフィードバック補正したＫＣＳフィードバック補正値ｅａｋｃｓに基づいて最終点火時期ｅａｏｐを設定する。また、その結果、そのエンジン運転状態における点火時期を学習させ、ＫＣＳ学習値ｅａｇｋｎｋｘを更新する。こうして学習されたＫＣＳ学習値ｅａｇｋｎｋｘを他のエンジン運転状態における点火時期の制御にもさらに反映させる。なお、図４に示す１点鎖線のラインＤは基本点火時期ｅａｂｓｅの設定ラインである。
【００５１】
以上のような点火時期制御によって、最終点火時期ｅａｏｐは、許容されるレベル以上のノッキングが発生されない範囲内において、より大きい出力トルクの得られる、より進角側の値に設定されるようになる。
【００５２】
−実施形態の特徴部分−
この実施形態の特徴部分は、最遅角点火時期ｅａｋｍｆに対しＫＣＳ学習値ｅａｇｋｎｋｘを反映させて設定される推定ノック発生点火時期を正確に予測することが困難である場合に、点火時期を遅角側へシフトさせる制御（シフト制御）を行う点にある。つまり、上述した学習制御によるＫＣＳ学習値ｅａｇｋｎｋｘをそのまま適用することが難しい場合に、シフト制御が行われる。以下では、シフト制御を行う場合、つまり、推定ノック発生点火時期を正確に予測することが困難な場合として、２つの場合（第１、第２実施例）を挙げて説明する。
【００５３】
（第１実施例）
この第１実施例では、エンジンＥの運転状態が、例えば図６に示すような軽負荷領域Ｇ１内に入った場合に、点火時期を遅角側へシフトさせるシフト制御を行うようにしている。
【００５４】
図６に例示する軽負荷領域Ｇ１は、エンジン回転速度ｅｎｅとエンジン負荷ｅｋｌｓｍとに基づいて設定された領域である。具体的に、軽負荷領域Ｇ１は、エンジン負荷ｅｋｌｓｍについて、Ｌ１以上かつＬ２未満の軽負荷の領域（Ｌ１≦ｅｋｌｓｍ＜Ｌ２）となっており、エンジン回転速度ｅｎｅについて、Ｎ１以上かつＮ２未満の領域（Ｎ１≦ｅｎｅ＜Ｎ２）となっている。この図６に示す軽負荷領域Ｇ１は、上記背景技術で述べた推定ノック発生点火時期の正確な予測が困難な領域に該当する。したがって、エンジンＥの運転状態がこの軽負荷領域Ｇ１に突入した場合には、以下のシフト制御を行う。
【００５５】
次に、この例のシフト制御について、図７のフローチャートを参照して説明する。この図７に示すシフト制御ルーチンは、エンジンＥＣＵ９が実行する点火時期制御に関するメインルーチンの一部であり、一定周期ごと（例えば６４ｍｓｅｃごと）に繰り返される。
【００５６】
まず、エンジンＥＣＵ９は、点火時期制御を行うＫＣＳ領域内、言い換えれば、ノッキング発生の有無を判定する期間内（例えば、アイドリング時などを除く期間内）であれば（ステップＳＴ１１）、ステップＳＴ１２において、シフト処理を行うための前提条件が成立しているか否かを判定する。この前提条件は、エンジンＥの環境条件であり、具体的には、ＫＣＳ学習値ｅａｇｋｎｋｘおよび吸入空気温度ｅｔｈａに関して要求される条件である。ＫＣＳ学習値ｅａｇｋｎｋｘについては、所定値未満（例えば、ｅａｇｋｎｋｘ＜１５°ＣＡ）であることが要求される。吸入空気温度ｅｔｈａについては、所定温度以上（ｅｔｈａ≧４０℃）であることが要求される。
【００５７】
そして、ＫＣＳ学習値ｅａｇｋｎｋｘおよび吸入空気温度ｅｔｈａの条件のいずれか一方の条件が満たされている場合には、前提条件が成立していると判定される。一方、いずれの条件も満たされていない場合には、前提条件が成立していないと判定される。ＫＣＳ学習値ｅａｇｋｎｋｘが所定値未満か否かの判定は、バックアップＲＡＭ９４に記憶されているＫＣＳ学習値ｅａｇｋｎｋｘを参照することによって行われる。また、吸入空気温度ｅｔｈａが所定温度以上か否かの判定は、吸気温センサ１０３からの出力信号に基づいて行われる。
【００５８】
ここで、ＫＣＳ学習値ｅａｇｋｎｋｘが所定値未満であることを条件とするのは、ＫＣＳ学習値ｅａｇｋｎｋｘが大きい場合、このＫＣＳ学習値ｅａｇｋｎｋｘを反映させて設定される推定ノック発生点火時期が基本点火時期ｅａｂｓｅに近づくので、この場合は推定ノック発生点火時期の正確な予測が行えるためである。したがって、ＫＣＳ学習値ｅａｇｋｎｋｘが小さい場合、言い換えれば、設定される推定ノック発生点火時期が最遅角点火時期ｅａｋｍｆに近い場合にシフト処理を行うようにしている。また、吸入空気温度ｅｔｈａが所定温度以上であることを条件とするのは、吸入空気温度ｅｔｈａが高いほど、ノッキングが発生しやすくなるためである。
【００５９】
そして、前提条件が成立していない場合には、ステップＳＴ１５へ進み、上述した点火時期制御の基本制御（ＫＣＳフィードバック）を行う。一方、前提条件が成立している場合には、次のステップＳＴ１３へ進む。
【００６０】
ステップＳＴ１３において、エンジンＥＣＵ９は、シフト処理を行うための実行条件が成立しているか否かを判定する。この実行条件は、エンジンＥの運転条件であり、具体的には、エンジン回転速度ｅｎｅおよびエンジン負荷ｅｋｌｓｍに関して要求される条件である。この場合、エンジン回転速度ｅｎｅおよびエンジン負荷ｅｋｌｓｍが図６に示す軽負荷領域Ｇ１内へ入ったか否かによって実行条件の成否が判定される。この判定は、クランク角センサ１０６およびエアフローメータ１０２の出力信号に基づいて行われる。エンジン負荷ｅｋｌｓｍは、クランク角センサ１０６およびエアフローメータ１０２の出力信号に基づいて算出される。
【００６１】
そして、エンジン回転速度ｅｎｅおよびエンジン負荷ｅｋｌｓｍが軽負荷領域Ｇ１外から軽負荷領域Ｇ１内へ入った場合には、実行条件が成立していると判定され、次のステップＳＴ１４へ進む。一方、それ以外の場合には、実行条件が成立していないと判定され、ステップＳＴ１５へ進み、上述した点火時期制御の基本制御（ＫＣＳフィードバック）を行う。
【００６２】
ステップＳＴ１４において、エンジンＥＣＵ９は、シフト処理を実行する。具体的には、ＫＣＳフィードバック補正値ｅａｋｃｓを遅角側へ所定量だけシフトさせる。つまり、ＫＣＳフィードバック補正値ｅａｋｃｓの値を所定値（例えば、「３．０°ＣＡ」）だけ加増する。例えば、上述した点火時期のフィードバック補正を行う前の場合のように、ＫＣＳフィードバック補正値ｅａｋｃｓの値が「０」（点火時期制御の開始時の初期値）であれば、ＫＣＳフィードバック補正値ｅａｋｃｓの値は、３．０°ＣＡに設定される。このＫＣＳフィードバック補正値ｅａｋｃｓのシフト量（遅角側への補正量）は、上述した点火時期のフィードバック補正において、ノッキングの発生が検出された場合に、ＫＣＳフィードバック補正値ｅａｋｃｓに対し加増される値（例えば、「１．０°ＣＡ」）よりも大きく設定することが好ましい。
【００６３】
そして、ステップＳＴ１５では、エンジンＥＣＵ９は、ステップＳＴ１４のシフト処理で設定されたＫＣＳフィードバック補正値ｅａｋｃｓに基づいて、上述した点火時期制御の基本制御（ＫＣＳフィードバック）を行う。次に、この場合の点火時期制御の制御態様の一例について、図５を参照して説明する。なお、図５では、このシフト制御を行う場合のＫＣＳフィードバック補正値ｅａｋｃｓおよび最終点火時期ｅａｏｐを実線Ｅ１，Ｆ１で示し、シフト制御を行わない場合のＫＣＳフィードバック補正値ｅａｋｃｓおよび最終点火時期ｅａｏｐを破線Ｅ２，Ｆ２で示す。
【００６４】
図５では、時刻ｔ０から、点火時期制御によるノッキングの発生状況に応じた点火時期の調整が開始されている。点火時期制御の開始時には、ＫＣＳフィードバック補正値ｅａｋｃｓは、その初期値である値、例えば「０」に設定されるが、時刻ｔ０において、エンジンＥの運転状態が上記軽負荷領域Ｇ１内に突入した判定されると、ＫＣＳフィードバック補正値ｅａｋｃｓは、実線Ｅ１で示すように、所定値（例えば、「３．０°ＣＡ」）だけ加増される。したがって、最終点火時期ｅａｏｐは、実線Ｆ１で示すように、最遅角点火時期ｅａｋｍｆに対して、ＫＣＳ学習値ｅａｇｋｎｋｘの分だけ進角され、加増されたＫＣＳフィードバック補正値ｅａｋｃｓの分だけ遅角された値に設定される。
【００６５】
その後、上述したＫＣＳフィードバックが行われるが、時刻ｔ０から時刻ｔ１までの期間は、上記判定値以上のレベルのノッキングの発生が検出されておらず、ＫＣＳフィードバック補正値ｅａｋｃｓは、実線Ｅ１で示すように、時刻ｔ０において設定された「３．０°ＣＡ」から徐々に減少されている。このため、時刻ｔ０以降、最終点火時期ｅａｏｐは、実線Ｆ１で示すように、徐々に進角側に変更されている。
【００６６】
その後の時刻ｔ１において、上記判定値以上のレベルのノッキングの発生が検出されると、つまり、ノック判定ｅｃｓｋｎｋのフラグが立つと、ＫＣＳフィードバック補正値ｅａｋｃｓの値は、所定値（例えば、「１．０°ＣＡ」）だけ加増される。このため、最終点火時期ｅａｏｐは、そうしたノッキングの発生が検出されている間は、所定値だけ遅角側に変更される。なお、ノッキングの発生が検出されるごとに、ＫＣＳフィードバック補正値ｅａｋｃｓの値が所定値ずつ加増され、最終点火時期ｅａｏｐが所定値ずつ遅角側に変更される。
【００６７】
さらに時刻ｔ１以降、そうしたノッキングの発生が検出されなくなると、再びＫＣＳフィードバック補正値ｅａｋｃｓが徐々に減少され、最終点火時期ｅａｏｐが徐々に進角側に変更されるようになる。
【００６８】
以上より、エンジンＥの運転状態が、推定ノック発生点火時期の正確な予測が困難な軽負荷領域Ｇ１に入ったとしても、ＫＣＳフィードバック補正値ｅａｋｃｓを予め遅角側へシフトさせて、点火時期（推定ノック発生点火時期）に反映させている。つまり、軽負荷領域Ｇ１に入った場合、ＫＣＳ学習値ｅａｇｋｎｋｘをそのまま適用するのではなく、ＫＣＳ学習値ｅａｇｋｎｋｘとともにＫＣＳフィードバック補正値ｅａｋｃｓを推定ノック発生点火時期の設定に反映させている。これにともなって、その推定ノック発生点火時期がＫＣＳフィードバック補正値ｅａｋｃｓのシフト量の分だけ遅角側に設定されるようになる。これにより、ノッキングが発生したとしても、フィードバック補正によって最終点火時期ｅａｏｐを迅速に遅角させることが可能になる。したがって、ノッキングの解消までに要する時間が短時間で済み、ノッキングの発生頻度を抑制できる。
【００６９】
また、エンジンＥの運転状態が、推定ノック発生点火時期の正確な予測が困難な軽負荷領域Ｇ１に入ったとしても、予期しない大レベルのノッキング（過大ノック）が発生することを抑制できる。例えば、実際にはノッキングが発生しているにもかかわらずノッキングが発生したとは判定されなくなることいったような、ノック判定への悪影響を抑制できる。このように、ノック判定を正確に行うことができるようになるので、フィードバック補正によって最終点火時期ｅａｏｐを適切に遅角させることができ、ノッキングの解消を確実に行うことができる。
【００７０】
図５では、点火時期制御の開始時（時刻ｔ０）に、エンジンＥの運転状態が上記軽負荷領域Ｇ１内に突入した判定されているが、点火時期制御の実行中に、エンジンＥの運転状態が上記軽負荷領域Ｇ１内に突入した判定される場合もあり、この場合にも、ステップＳＴ１４のシフト処理を行うようにする。
【００７１】
ところで、この例のシフト制御に関し、次のような改善策が挙げられる。
【００７２】
エンジンＥの運転状態が、上記軽負荷領域Ｇ１の境界をまたいで変動することが繰り返し行われる場合、軽負荷領域Ｇ１内への突入が起きるたびに、ステップＳＴ１４のシフト処理が行われることになる。この場合、ＫＣＳフィードバック補正値ｅａｋｃｓへの遅角側へのシフト量が加算され、ＫＣＳフィードバック補正値ｅａｋｃｓの値が大きくなりすぎる可能性がある。
【００７３】
これを回避するには、例えば、上記軽負荷領域Ｇ１の境界条件にヒステリシスを設定することが好ましい。これにより、むやみに軽負荷領域Ｇ１内への突入が起きることが回避され、制御の安定化が図れる。
【００７４】
また、例えば、シフト処理によるＫＣＳフィードバック補正値ｅａｋｃｓへの遅角側へのシフト量を前回シフト処理を実施した履歴によって修正することが好ましい。これにより、軽負荷領域Ｇ１内への突入が複数回起きたとしても、ＫＣＳフィードバック補正値ｅａｋｃｓが設定した上限を超えて遅角側へシフトすることが回避される。
【００７５】
また、エンジンＥの運転状態の急激な変動により、上記軽負荷領域Ｇ１を過渡的に通過する場合、その通過が軽負荷領域Ｇ１内への突入として判定される可能性がある。しかし、例えば、アクセルペダルを急速に踏み込んだ場合などには、エンジン負荷ｅｋｌｓｍが急激に増大するが、そのような場合にはシフト処理を行う必要はない。
【００７６】
これを回避するには、上記ステップＳＴ１３の実行条件にエンジン負荷ｅｋｌｓｍの変化率に関して要求される条件を追加することが好ましい。この場合、エンジン負荷ｅｋｌｓｍの変化率については、所定値未満であることが要求される。そして、エンジン回転速度ｅｎｅおよびエンジン負荷ｅｋｌｓｍが図６に示す軽負荷領域Ｇ１内へ入り、かつ、エンジン負荷ｅｋｌｓｍの変化率が所定値未満である場合に実行条件が成立したと判定される。こうすれば、エンジンＥの運転状態が、上記軽負荷領域Ｇ１を過渡的に通過する場合などのようなエンジン負荷ｅｋｌｓｍの変化率が所定値以上の場合に、シフト処理が行われることを回避できる。
【００７７】
また、この例では、上述したような学習制御によって、ＫＣＳフィードバック補正値ｅａｋｃｓの変化がＫＣＳ学習値ｅａｇｋｎｋｘの値に反映される。しかし、ＫＣＳフィードバック補正値ｅａｋｃｓのシフト量が、ノッキングの発生時にこのＫＣＳフィードバック補正値ｅａｋｃｓの遅角側への変更量に比べ大きく設定されている場合、ＫＣＳ学習値ｅａｇｋｎｋｘが遅角側へ誤学習される可能性がある。
【００７８】
そこで、なまし処理によってＫＣＳ学習値ｅａｇｋｎｋｘの値を更新する場合、シフト制御の実行中は、そのなまし処理のなまし率を小さく設定することが好ましい。例えば、通常のなまし率を４分の１とする場合、シフト制御の実行中は、なまし率を８分の１とすることが好ましい。こうすれば、シフト処理によって、ＫＣＳフィードバック補正値ｅａｋｃｓが遅角側へシフトされたとしても、ＫＣＳ学習値ｅａｇｋｎｋｘの遅角側への誤学習を抑制することができる。
【００７９】
（第２実施例）
この第２実施例では、エンジンＥの運転状態が、例えば図８に示すような軽負荷領域Ｇ２内に入った場合に、点火時期を遅角側へシフトさせるシフト制御を行うようにしている。この第２実施例が上記第１実施例と異なるのは、エンジンＥへのデポジットの付着による影響度合いを考慮している点である。したがって、シフト処理を行うための実行条件が上記第１実施例の場合と異なっている。ここでは、異なる点について主に説明することとし、上記第１実施例と同様の点については同じ符号を付してその詳しい説明を省略する。
【００８０】
まず、エンジンＥへのデポジットの付着による影響度合いを考慮した比率学習について説明する。すなわち、点火時期制御においては、ノッキングの発生状況に応じて、比率学習値ｅｒａｇｋｎｋｘの更新が行われる。比率学習値ｅｒａｇｋｎｋｘは、エンジンＥへのデポジットの付着度合いを示す指標値としてその値が設定されている。ここでは、デポジットの付着が完全に無い状態を値「０」とし、デポジットの付着量が想定される最大値となった状態を値「１」として、デポジットの付着度合いを比率学習値ｅｒａｇｋｎｋｘの値で表すようにしている。
【００８１】
比率学習値ｅｒａｇｋｎｋｘは、デポジットの付着の無い工場出荷時に初期値としてその値が「０」に設定されている。その後、比率学習値ｅｒａｇｋｎｋｘの値は、「０」以上、「１」以下の範囲内で、ノックセンサ１０８，１０８により検出されるノッキングの発生頻度に応じて徐々に増減される。具体的には、ノッキングの発生頻度が増大すれば比率学習値ｅｒａｇｋｎｋｘの値は徐々に増大され、ノッキングの発生頻度が低下すればその値は徐々に減少される。更新された比率学習値ｅｒａｇｋｎｋｘの値は、上記ＫＣＳ学習値ｅａｇｋｎｋｘと同様に、エンジンＥＣＵ９のバックアップＲＡＭ９４に記憶され、エンジンＥの停止中もその値が保持される。
【００８２】
そして、この例では、デポジットの付着度合い、つまり、比率学習値ｅｒａｇｋｎｋｘが大きくなると、ノッキングが発生しやすくなるので、比率学習値ｅｒａｇｋｎｋｘに基づいて、最遅角点火時期をさらに遅角側へ変更するようにしている。上記第１実施例では最遅角点火時期ｅａｋｍｆを用いて各種の点火時期などを算出したが、この実施例では、その最遅角点火時期ｅａｋｍｆの代わりに、比率学習値ｅｒａｇｋｎｋｘに基づいて算出される最遅角点火時期ｅａｋｍｆｘが用いられる。
【００８３】
エンジンＥの運転開始後、点火時期制御動作を行う場合、エンジンＥＣＵ９は、最終点火時期ｅａｏｐの設定を行うにあたって、基本点火時期ｅａｂｓｅを算出するとともに、比率学習値ｅｒａｇｋｎｋｘに基づく最遅角点火時期ｅａｋｍｆｘを算出する。ある値の比率学習値ｅｒａｇｋｎｋｘにおける最遅角点火時期ｅａｋｍｆｘは、次のようにして算出される。
【００８４】
比率学習値ｅｒａｇｋｎｋｘが「０」の場合、最遅角点火時期ｅａｋｍｆｘとして、上記第１実施例の最遅角点火時期ｅａｋｍｆがそのまま適用される。この比率学習値ｅｒａｇｋｎｋｘが「０」の場合の最遅角点火時期ｅａｋｍｆについては、エンジン回転速度ｅｎｅおよびエンジン負荷ｅｋｌｓｍとこの最遅角点火時期ｅａｋｍｆとの関係を定義するマップデータあるいは関数データが、エンジンＥＣＵ９のＲＯＭ９２に記憶されている。図１０のエンジン負荷と点火時期との関係を示す図では、比率学習値ｅｒａｇｋｎｋｘが「０」の場合の最遅角点火時期ｅａｋｍｆの設定ラインＡ０を破線で示している。
【００８５】
一方、比率学習値ｅｒａｇｋｎｋｘが「１」の場合、最遅角点火時期ｅａｋｍｆｘとして、上記第１実施例の最遅角点火時期ｅａｋｍｆをさらに遅角させた最遅角点火時期ｅａｋｍｆ’が適用される。この比率学習値ｅｒａｇｋｎｋｘが「１」の場合の最遅角点火時期ｅａｋｍｆ’については、エンジン回転速度ｅｎｅおよびエンジン負荷ｅｋｌｓｍとこの最遅角点火時期ｅａｋｍｆ’との関係を定義するマップデータあるいは関数データが、エンジンＥＣＵ９のＲＯＭ９２に記憶されている。図１０のエンジン負荷と点火時期との関係を示す図では、比率学習値ｅｒａｇｋｎｋｘが「１」の場合の最遅角点火時期ｅａｋｍｆ’の設定ラインＡ１を２点鎖線で示している。
【００８６】
そして、ある値の比率学習値ｅｒａｇｋｎｋｘにおける最遅角点火時期ｅａｋｍｆｘは、次の式（５）により算出される。
【００８７】
ｅａｋｍｆｘ＝（１−ｅｒａｇｋｎｋｘ）＊ｅａｋｍｆ＋ｅｒａｇｋｎｋｘ＊ｅａｋｍｆ’  ・・・（５）
この式（５）によれば、最遅角点火時期ｅａｋｍｆｘは、比率学習値ｅｒａｇｋｎｋｘが「０」に近づくほど、比率学習値ｅｒａｇｋｎｋｘが「０」の場合の最遅角点火時期ｅａｋｍｆに近づき、逆に、比率学習値ｅｒａｇｋｎｋｘが「１」に近づくほど、比率学習値ｅｒａｇｋｎｋｘが「１」の場合の最遅角点火時期ｅａｋｍｆ’に近づく。図１０のエンジン負荷と点火時期との関係を示す図では、比率学習値ｅｒａｇｋｎｋｘが「１」の場合の最遅角点火時期ｅａｋｍｆｘの設定ラインＡｘを細い実線で示している。
【００８８】
そして、上記第１実施例の式（１）〜（４）において、最遅角点火時期ｅａｋｍｆの代わりに、式（５）により算出される最遅角点火時期ｅａｋｍｆｘを用いて、最終点火時期ｅａｏｐ、最大遅角量ｅａｋｍａｘ、ＫＣＳ学習値ｅａｇｋｎｋｘ、ＫＣＳフィードバック補正値ｅａｋｃｓ、ＫＣＳ遅角量ｅａｋｎｋなどを算出する。
【００８９】
さらに、学習制御により学習されたあるエンジン運転状態におけるＫＣＳ学習値ｅａｇｋｎｋｘを、他のエンジン運転状態における点火時期の制御にも反映させるようにしている。例えば、図１０のエンジン負荷と点火時期との関係を示す図で説明すれば、点火時期制御の開始時に、バックアップＲＡＭ９４に記憶されている現在のＫＣＳ学習値ｅａｇｋｎｋｘを反映させ、最遅角点火時期ｅａｋｍｆｘの設定ラインＡｘ（図１０の細い実線）に対して平行に点火時期（推定ノック発生点火時期）のラインＢｘ（図１０の太い実線）を設定して、そのラインＢｘ上の点火時期で点火を行う。この場合、推定ノック発生点火時期のラインＢｘは、最遅角点火時期ｅａｋｍｆｘのラインＡｘに対して平行に、反映させるＫＣＳ学習値ｅａｇｋｎｋｘの分だけ進角させたラインになっている。そして、その後のノッキングの発生状況によって点火時期をフィードバック補正したＫＣＳフィードバック補正値ｅａｋｃｓに基づいて最終点火時期ｅａｏｐを設定する。また、その結果、そのエンジン運転状態における点火時期を学習させ、ＫＣＳ学習値ｅａｇｋｎｋｘを更新する。こうして学習されたＫＣＳ学習値ｅａｇｋｎｋｘを他のエンジン運転状態における点火時期の制御にもさらに反映させる。なお、図１０に示す１点鎖線のラインＤは基本点火時期ｅａｂｓｅの設定ラインである。
【００９０】
そして、この例では、エンジンＥの運転状態が、例えば図８に示すような軽負荷領域Ｇ２内に入った場合に、点火時期を遅角側へシフトさせるシフト制御を行うようにしている。
【００９１】
図８に例示する軽負荷領域Ｇ２は、エンジン回転速度ｅｎｅとエンジン負荷ｅｋｌｓｍとノックライン偏差ｅｄｌａｋｍｆとに基づいて設定された領域である。具体的に、軽負荷領域Ｇ２は、エンジン負荷ｅｋｌｓｍについて、Ｌ３以上かつＬ４未満の軽負荷の領域（Ｌ３≦ｅｋｌｓｍ＜Ｌ４）となっており、エンジン回転速度ｅｎｅについて、Ｎ３以上かつＮ４未満の領域（Ｎ３≦ｅｎｅ＜Ｎ４）となっている。また、ノックライン偏差ｅｄｌａｋｍｆについて、所定値以上の領域（例えば、ｅｄｌａｋｍｆ≧３．０°ＣＡ）となっている。ノックライン偏差ｅｄｌａｋｍｆは、あるエンジン回転速度ｅｎｅおよびエンジン負荷ｅｋｌｓｍにおいて、比率学習値ｅｒａｇｋｎｋｘが「０」の場合の最遅角点火時期ｅａｋｍｆと、比率学習値ｅｒａｇｋｎｋｘが「１」の場合の最遅角点火時期ｅａｋｍｆ’との偏差（角度差）を表す量である。この図８に示す軽負荷領域Ｇ２は、上記第１実施例の軽負荷領域Ｇ１と同様に、上記背景技術で述べた推定ノック発生点火時期の正確な予測が困難な領域に該当する。したがって、エンジンＥの運転状態がこの軽負荷領域Ｇ２に突入した場合には、以下のシフト制御を行う。
【００９２】
次に、この例のシフト制御について、図９のフローチャートを参照して説明する。この図９に示すシフト制御ルーチンは、エンジンＥＣＵ９が実行する点火時期制御に関するメインルーチンの一部であり、一定周期ごと（例えば６４ｍｓｅｃごと）に繰り返される。
【００９３】
このルーチンは、上記第１実施例の図７に示すルーチンとほぼ同様であって、ステップＳＴ２２の前提条件およびステップＳＴ２３の実行条件が、ステップＳＴ１２の前提条件およびステップＳＴ１３の実行条件とは若干異なっている。ステップＳＴ２１，２４，２５の各処理については、ステップＳＴ１１，１４，１５の各処理と同様である。
【００９４】
ステップＳＴ２２においては、エンジンＥＣＵ９は、シフト処理を行うための前提条件が成立しているか否かを判定する。この前提条件は、エンジンＥの環境条件であり、具体的には、ＫＣＳ学習値ｅａｇｋｎｋｘ、吸入空気温度ｅｔｈａ、および、比率学習値ｅｒａｇｋｎｋｘに関して要求される条件である。ＫＣＳ学習値ｅａｇｋｎｋｘについては、所定値未満（例えば、ｅａｇｋｎｋｘ＜１５°ＣＡ）であることが要求される。吸入空気温度ｅｔｈａについては、所定温度以上（ｅｔｈａ≧４０℃）であることが要求される。比率学習値ｅｒａｇｋｎｋｘについては、所定値以上（例えば、ｅｒａｇｋｎｋｘ≧０．２）であることが要求される。
【００９５】
そして、ＫＣＳ学習値ｅａｇｋｎｋｘ、吸入空気温度ｅｔｈａ、および、比率学習値ｅｒａｇｋｎｋｘの条件のいずれか１つの条件が満たされている場合には、前提条件が成立していると判定される。一方、いずれの条件も満たされていない場合には、前提条件が成立していないと判定される。比率学習値ｅｒａｇｋｎｋｘが所定値以上か否かの判定は、バックアップＲＡＭ９４に記憶されている比率学習値ｅｒａｇｋｎｋｘを参照することによって行われる。このように、比率学習値ｅｒａｇｋｎｋｘが所定値以上であることを条件とするのは、比率学習値ｅｒａｇｋｎｋｘが大きくなると、エンジンＥへのデポジットの付着度合いが大きくなり、この場合はノッキングが発生しやすくなるためである。
【００９６】
そして、前提条件が成立していない場合には、ステップＳＴ２５へ進み、上述した点火時期制御の基本制御（ＫＣＳフィードバック）を行う。一方、前提条件が成立している場合には、次のステップＳＴ２３へ進む。
【００９７】
ステップＳＴ２３においては、エンジンＥＣＵ９は、シフト処理を行うための実行条件が成立しているか否かを判定する。この実行条件は、エンジンＥの運転条件であり、具体的には、エンジン回転速度ｅｎｅ、エンジン負荷ｅｋｌｓｍ、および、ノックライン偏差ｅｄｌａｋｍｆに関して要求される条件である。この場合、エンジン回転速度ｅｎｅ、エンジン負荷ｅｋｌｓｍ、および、ノックライン偏差ｅｄｌａｋｍｆが図８に示す軽負荷領域Ｇ２内へ入ったか否かによって実行条件の成否が判定される。
【００９８】
そして、エンジン回転速度ｅｎｅ、エンジン負荷ｅｋｌｓｍ、および、ノックライン偏差ｅｄｌａｋｍｆが軽負荷領域Ｇ２外から軽負荷領域Ｇ２内へ入った場合には、実行条件が成立していると判定され、次のステップＳＴ２４へ進み、シフト処理を実行する。一方、それ以外の場合には、実行条件が成立していないと判定され、ステップＳＴ２５へ進み、上述した点火時期制御の基本制御（ＫＣＳフィードバック）を行う。
【００９９】
この第２実施例においても、エンジンＥの運転状態が、推定ノック発生点火時期の正確な予測が困難な軽負荷領域Ｇ２に入った場合には、上記第１実施例の場合と同様のシフト処理を行うので、上記第１実施例の場合と同様の作用効果が得られる。また、この例のシフト制御に関しても、上記第１実施例の場合と同様の改善策が挙げられるが、その説明は省略する。
【図面の簡単な説明】
【０１００】
【図１】実施形態に係るＶ型エンジンをクランクシャフトの軸心に沿った方向から見たエンジン内部の概略構成を示す図である。
【図２】エンジン、吸排気系および制御系の概略を示すシステム構成図である。
【図３】エンジンの制御系を示すブロック図である。
【図４】エンジン負荷と点火時期との関係を示す図である。
【図５】点火時期制御の制御態様の一例を示すタイムチャートである。
【図６】第１実施例の軽負荷領域Ｇ１を示す図である。
【図７】第１実施例のシフト制御の手順を示すフローチャートである。
【図８】第２実施例の軽負荷領域Ｇ２を示す図である。
【図９】第２実施例のシフト制御の手順を示すフローチャートである。
【図１０】第２実施例のエンジン負荷と点火時期との関係を示す図である。
【図１１】従来におけるノック判定への悪影響を説明するための図である。
【符号の説明】
【０１０１】
９              エンジンＥＣＵ
７７Ｌ，７７Ｒ  点火プラグ
１０２          エアフローメータ
１０６          クランク角センサ
１０８          ノックセンサ
Ｅ              エンジン
Ｇ１            軽負荷領域
ｅａｇｋｎｋｘ  ＫＣＳ学習値
ｅａｋｃｓ      ＫＣＳフィードバック補正値
ｅａｋｍｆ      最遅角点火時期
ｅａｏｐ        最終点火時期
ｅｋｌｓｍ      エンジン負荷
ｅｎｅ          エンジン回転速度
【図１】
2008297909.tif 000003
【図２】
2008297909.tif 000004
【図３】
2008297909.tif 000005
【図４】
2008297909.tif 000006
【図５】
2008297909.tif 000007
【図６】
2008297909.tif 000008
【図７】
2008297909.tif 000009
【図８】
2008297909.tif 000010
【図９】
2008297909.tif 000011
【図１０】
2008297909.tif 000012
【図１１】
2008297909.tif 000013