(57)【要約】    【課題】  スロットル弁が吸気弁の近傍に配置されている機関の点火時期制御をより適切に行い、ノッキング限界を進角方向に拡大して機関出力を高めることができる内燃機関の点火時期制御装置を提供する。    【解決手段】  エンジン回転数ＮＥ、スロットル弁開度ＴＨ及び吸気弁作動位相ＣＡＩＮに応じて基本目標値ＩＧＴＨＣＭＤＫを算出し、大気圧ＰＡに応じた補正係数ＫＩＧＴＨＰＡを基本目標値ＩＧＴＨＣＭＤＫに乗算することにより、目標値ＩＧＴＨＣＭＤを算出する（Ｓ２１〜Ｓ２３）。スロットル弁開度補正項ＩＧＴＨを目標値ＩＧＴＨＣＭＤに一致させるように設定する（Ｓ２６，Ｓ３２〜Ｓ３４）。スロットル弁開度補正項ＩＧＴＨにより基本点火時期ＩＧＭを補正し、点火時期ＩＧＬＯＧを算出する。【選択図】  図５
2010019100.tif 000002
【特許請求の範囲】
【請求項１】
内燃機関の回転数を検出する回転数検出手段と、前記機関の吸気圧を検出する吸気圧検出手段と、検出された回転数及び吸気圧に応じて基本点火時期を算出する基本点火時期算出手段とを備える内燃機関の点火時期制御装置において、
前記機関の吸気通路に設けられたスロットル弁の開度を検出するスロットル弁開度検出手段と、
検出されたスロットル弁開度に応じて第１補正量を算出する第１補正量算出手段と、
前記基本点火時期を前記第１補正量により補正することにより点火時期を算出する点火時期算出手段とを備えることを特徴とする内燃機関の点火時期制御装置。
【請求項２】
前記第１補正量は、前記基本点火時期を進角方向に補正する補正量であり、前記第１補正量算出手段は、前記スロットル弁開度が増加するほど前記第１補正量を増加させることを特徴とする請求項１に記載の内燃機関の点火時期制御装置。
【請求項３】
前記第１補正量算出手段は、前記スロットル弁開度及び機関回転数に応じて前記第１補正量を算出し、前記機関回転数が増加するほど前記第１補正量を減少させることを特徴とする請求項２に記載の内燃機関の点火時期制御装置。
【請求項４】
前記第１補正量算出手段は、前記スロットル弁開度及び機関回転数に応じて前記第１補正量の目標値を算出し、前記目標値が前記第１補正量以下であるときは第１補正量を直ちに前記目標値に設定する一方、前記目標値が前記第１補正量より大きいときは、前記第１補正量を前記目標値に達するまで徐々に増加させる過渡制御を行うことを特徴とする請求項２または３に記載の内燃機関の点火時期制御装置。
【請求項５】
前記機関のノッキングを検出するノッキング検出手段と、
前記ノッキング検出手段による検出結果に応じて前記基本点火時期を遅角方向に補正する第２補正量を算出する第２補正量算出手段とを備え、
前記点火時期算出手段は、前記基本点火時期を前記第１及び第２補正量により補正することにより前記点火時期を算出し、
前記第１補正量算出手段は、前記第２補正量算出手段が前記第２補正量を増加させているときは、前記過渡制御中における前記第１補正量の値を維持することを特徴とする請求項４に記載の内燃機関の点火時期制御装置。
【請求項６】
前記第２補正量の学習値を算出する学習手段をさらに備え、
前記学習手段は、前記第１補正量算出手段が前記過渡制御を実行しているときは、前記学習値の更新を禁止することを特徴とする請求項５に記載の内燃機関の点火時期制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は内燃機関の点火時期制御装置に関し、特に機関の吸気系に設けられるスロットル弁が吸気弁の近傍に配置されている内燃機関の点火時期制御装置に関する。
【背景技術】
【０００２】
特許文献１は、機関回転数及び吸気圧に応じて基本点火時期を算出し、機関冷却水温、大気圧、吸気温、及びノッキングの発生状態に応じて基本点火時期を補正することにより、点火時期を算出する点火時期制御装置を開示する。
【０００３】
【特許文献１】特公昭６３−２３３７４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
スロットル弁が吸気弁の近傍に配置され、吸気圧を安定化するためのサージタンクがスロットル弁と吸気弁の間に設けられていない機関では、燃焼室に吸入される空気の温度が、スロットル弁の開度に依存して大きく変化する。そのためそのような機関に、上記従来の点火時期制御装置をそのまま適用すると、以下のような課題があった。
【０００５】
スロットル弁開度が大きくなると、燃焼室吸入空気温度は低下し、ノッキングが発生し難くなるため、点火時期をより進角させて機関の出力トルクを増加させることが可能となる。しかしながら、スロットル弁開度を考慮せずに機関回転数及び吸気圧に応じて点火時期の設定を行う従来の装置では、スロットル弁開度がどのような値であってもノッキングが発生しないように点火時期が設定されるため、機関出力性能の点で改善の余地があった。
【０００６】
本発明はこの点に着目してなされたものであり、スロットル弁が吸気弁の近傍に配置されている内燃機関の点火時期制御をより適切に行い、ノッキング限界を進角方向に拡大して機関出力を高めることができる内燃機関の点火時期制御装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するため請求項１に記載の発明は、内燃機関の回転数（ＮＥ）を検出する回転数検出手段と、前記機関の吸気圧（ＰＢＡ）を検出する吸気圧検出手段と、検出された回転数（ＮＥ）及び吸気圧（ＰＢＡ）に応じて基本点火時期（ＩＧＭ）を算出する基本点火時期算出手段とを備える内燃機関の点火時期制御装置において、前記機関の吸気通路に設けられたスロットル弁の開度（ＴＨ）を検出するスロットル弁開度検出手段と、検出されたスロットル弁開度（ＴＨ）に応じて第１補正量（ＩＧＴＨ）を算出する第１補正量算出手段と、前記基本点火時期（ＩＧＭ）を前記第１補正量（ＩＧＴＨ）により補正することにより点火時期（ＩＧＬＯＧ）を算出する点火時期算出手段とを備えることを特徴とする。
【０００８】
請求項２に記載の発明は、請求項１に記載の内燃機関の点火時期制御装置において、前記第１補正量（ＩＧＴＨ）は、前記基本点火時期（ＩＧＭ）を進角方向に補正する補正量であり、前記第１補正量算出手段は、前記スロットル弁開度（ＴＨ）が増加するほど前記第１補正量（ＩＧＴＨ）を増加させることを特徴とする。
【０００９】
請求項３に記載の発明は、請求項２に記載の内燃機関の点火時期制御装置において、前記第１補正量算出手段は、前記スロットル弁開度（ＴＨ）及び機関回転数（ＮＥ）に応じて前記第１補正量（ＩＧＴＨ）を算出し、前記機関回転数（ＮＥ）が増加するほど前記第１補正量（ＩＧＴＨ）を減少させることを特徴とする。
【００１０】
請求項４に記載の発明は、請求項２または３に記載の内燃機関の点火時期制御装置において、前記第１補正量算出手段は、前記スロットル弁開度（ＴＨ）及び機関回転数（ＮＥ）に応じて前記第１補正量（ＩＧＴＨ）の目標値（ＩＧＴＨＣＭＤ）を算出し、前記目標値（ＩＧＴＨＣＭＤ）が前記第１補正量（ＩＧＴＨ）以下であるときは第１補正量（ＩＧＴＨ）を直ちに前記目標値（ＩＧＴＨＣＭＤ）に設定する一方、前記目標値（ＩＧＴＨＣＭＤ）が前記第１補正量（ＩＧＴＨ）より大きいときは、前記第１補正量（ＩＧＴＨ）を前記目標値（ＩＧＴＨＣＭＤ）に達するまで徐々に増加させる過渡制御を行うことを特徴とする。
【００１１】
請求項５に記載の発明は、請求項４に記載の内燃機関の点火時期制御装置において、前記機関のノッキングを検出するノッキング検出手段と、前記ノッキング検出手段による検出結果に応じて前記基本点火時期（ＩＧＭ）を遅角方向に補正する第２補正量（ＩＧＫＮＯＣＫ＝ＤＩＧＫＲ×ＫＩＧＫＮ）を算出する第２補正量算出手段とを備え、前記点火時期算出手段は、前記基本点火時期（ＩＧＭ）を前記第１及び第２補正量（ＩＧＴＨ，ＩＧＫＮＯＣＫ）により補正することにより前記点火時期（ＩＧＬＯＧ）を算出し、前記第１補正量算出手段は、前記第２補正量算出手段が前記第２補正量（ＩＧＫＮＯＣＫ）を増加させているときは、前記過渡制御中における前記第１補正量（ＩＧＴＨ）の値を維持することを特徴とする。
【００１２】
請求項６に記載の発明は、請求項５に記載の内燃機関の点火時期制御装置において、前記第２補正量（ＩＧＫＮＯＣＫ）の学習値（ＤＩＧＫＲ×ＫＩＧＫＲＥＦ）を算出する学習手段をさらに備え、前記学習手段は、前記第１補正量算出手段が前記過渡制御を実行しているときは、前記学習値（ＤＩＧＫＲ×ＫＩＧＫＲＥＦ）の更新を禁止することを特徴とする。
【発明の効果】
【００１３】
請求項１に記載の発明によれば、検出されたスロットル弁開度に応じて第１補正量が算出され、基本点火時期を第１補正量により補正することにより点火時期が算出されるので、スロットル弁開度に依存して変化する燃焼室吸入空気温度の変化に対応した点火時期の設定を行い、ノッキング限界を進角方向に拡大して機関出力を高めることができる。
【００１４】
請求項２に記載の発明によれば、第１補正量により基本点火時期が進角方向に補正され、第１補正量はスロットル弁開度が増加するほど増加するように設定される。したがって、スロットル弁開度が増加するほど点火時期が進角方向に補正され、ノッキングが発生しない範囲で機関出力を増加させることができる。
【００１５】
請求項３に記載の発明によれば、スロットル弁開度及び機関回転数に応じて第１補正量が算出され、第１補正量は機関回転数が増加するほど減少するように設定される。この設定は以下の理由に基づいている。機関回転数が増加するほど、ノッキングが発生し難くなり、またスロットル弁開度が小さいときはノッキングはほとんど発生しない。そして、ノッキングが発生するような比較的大きなスロットル弁開度では、スロットル弁の上流側の吸気温と下流側の吸気温とがほぼ等しくなっているため、第１補正量による進角補正を行う必要がない。したがって、第１補正量を機関回転数が増加するほど減少するように設定することにより、高回転側での過度な進角補正を防止することができる。
【００１６】
請求項４に記載の発明によれば、スロットル弁開度及び機関回転数に応じて第１補正量の目標値が算出され、目標値が第１補正量以下であるときは第１補正量は直ちに前記目標値に設定される一方、目標値が第１補正量より大きいときは、第１補正量を目標値に達するまで徐々に増加させる過渡制御が行われる。第１補正量を進角側の目標値に直ちに変更すると、ノッキングを発生させるおそれがあるため、過渡制御を行うことにより、ノッキングを確実に防止することができる。
【００１７】
請求項５に記載の発明によれば、ノッキング検出結果に応じて基本点火時期を遅角方向に補正する第２補正量が算出され、基本点火時期を第１及び第２補正量により補正することにより点火時期が算出される。ノッキングが発生し第２補正量が増加方向に更新されたときは、過渡制御中における第１補正量の値が維持される。これにより、ノッキング抑制のための遅角補正に逆行する補正が並行して行われることを防止し、早期にノッキングを抑制することができる。
【００１８】
請求項６に記載の発明によれば、第１補正量の過渡制御が実行されているときは、第２補正量の学習値の更新が禁止される。過渡制御中は、第１補正量が目標値に達していないので、その状態での学習値更新を禁止することにより、学習値が適正値からずれてしまうことを防止することができる。
【発明を実施するための最良の形態】
【００１９】
以下本発明の実施の形態を図面を参照して説明する。
図１は本発明の一実施形態にかかる内燃機関及びその制御装置の構成を示す図である。Ｖ型１０気筒の内燃機関（以下単に「エンジン」という）１は、５気筒が設けられた２つのバンクを備えている。
【００２０】
エンジン１の吸気管２の途中にはスロットル弁３が配されている。スロットル弁３には、スロットル弁３の開度ＴＨを検出するスロットル弁開度センサ４が設けられており、その検出信号が電子制御ユニット（以下「ＥＣＵ」という）５に供給される。スロットル弁３には、スロットル弁３を駆動するアクチュエータ１４が接続されており、アクチュエータ１４は、ＥＣＵ５によりその作動が制御される。本実施形態では、サージタンク２ａがスロットル弁３の上流側に設けられている。スロットル弁３はエンジン１の吸気弁（図示せず）の近傍に各気筒毎に設けられており、スロットル弁３と吸気弁との間にはサージタンクが設けられていない。スロットル弁３と吸気弁との間隔は１５０ｍｍ程度である。１つのバンクに設けられた５個のスロットル弁３は一体として駆動可能に構成されており、アクチュエータ１４は２つのバンクのぞれぞれに対応して設けられている。
【００２１】
燃料噴射弁６は吸気弁の少し上流側に各気筒毎に設けられており、各噴射弁は図示しない燃料ポンプに接続されていると共にＥＣＵ５に電気的に接続されて当該ＥＣＵ５からの信号により燃料噴射弁６の開弁時間及び開弁時期が制御される。
【００２２】
スロットル弁３の下流側には吸気圧ＰＢＡを検出する吸気圧センサ７が設けられている。またエンジン１の本体には、エンジン冷却水温ＴＷを検出する冷却水温センサ９が装着されている。吸気温ＴＡを検出する吸気温センサ８は、サージタンク２ａより上流側に設けられている。これらのセンサの検出信号は、ＥＣＵ５に供給される。
【００２３】
ＥＣＵ５には、エンジン１のクランク軸（図示せず）の回転角度を検出するクランク角度位置センサ１０が接続されており、クランク軸の回転角度に応じた信号がＥＣＵ５に供給される。クランク角度位置センサ１０は、エンジン１の特定の気筒の所定クランク角度位置でパルス（以下「ＣＹＬパルス」という）を出力する気筒判別センサ、各気筒の吸入行程開始時の上死点（ＴＤＣ）に関し所定クランク角度前のクランク角度位置で（１０気筒エンジンではクランク角１４４度毎に）ＴＤＣパルスを出力する２つのＴＤＣセンサ及びＴＤＣパルスより短い一定クランク角周期（例えば６度周期）でＣＲＫパルスを発生するＣＲＫセンサから成り、ＣＹＬパルス、ＴＤＣパルス及びＣＲＫパルスがＥＣＵ５に供給される。これらの信号パルスは、燃料噴射時期、点火時期等の各種タイミング制御及びエンジン回転数（エンジン回転速度）ＮＥの検出に使用される。
【００２４】
エンジン１は、吸気弁の開閉弁時期を連続的に変更可能な弁作動位相可変機構３０を有する。弁作動位相可変機構の構成は、例えば特開２０００−２２７０１３号公報に示されている。吸気弁の作動位相を示すパラメータとして、吸気弁作動位相ＣＡＩＮを用いる。
【００２５】
エンジン１の各気筒毎に設けられた点火プラグ１２は、ＥＣＵ５に接続されており、点火プラグ１２の駆動信号、すなわち点火信号がＥＣＵ５から供給される。
【００２６】
エンジン１の適宜の位置に、高周波振動を検出する共振型のノックセンサ１１が装着されており、その検出信号がＥＣＵ５に供給される。また、ＥＣＵ５には、大気圧ＰＡを検出する大気圧センサ１６、及びエンジン１により駆動される車両のアクセルペダルの踏み込み量（以下「アクセルペダル操作量」という）ＡＰを検出するアクセルセンサ１７が接続されており、これらのセンサの検出信号がＥＣＵ５に供給される。
【００２７】
ＥＣＵ５は、各種センサからの入力信号波形を整形し、電圧レベルを所定レベルに修正し、アナログ信号値をデジタル信号値に変換する等の機能を有する入力回路、中央演算処理回路（以下「ＣＰＵ」という）、ＣＰＵで実行される各種演算プログラム及び演算結果等を記憶する記憶回路、前記燃料噴射弁６に駆動信号を供給する出力回路等から構成される。
【００２８】
ＥＣＵ５は、各種センサの検出信号に基づいて、燃料噴射弁６の開弁時間、点火時期、及び吸気弁作動位相ＣＡＩＮの制御を行う。またＥＣＵ５は、ノックセンサ１１の出力信号に基づいてノッキングの判定を行い、その判定結果に応じて点火時期の補正を行う。またスロットル弁３の開度は、アクセルペダル操作量ＡＰにほぼ比例するように制御される。
【００２９】
次に本実施形態における点火時期制御の概要を、図２を参照して説明する。図２のラインＬ２１は、エンジン１の出力トルクを最大とするＭＢＴ（Minimum Spark Advance for Best Torque）を示し、ラインＬ２２は、高オクタン価（例えばオクタン価１００）燃料のノック限界点火時期ＩＧＲＯＮＨを示し、ラインＬ２３は、低オクタン価（例えばオクタン価９０）燃料のノック限界点火時期ＩＧＲＯＮＬを示す。なお、点火時期は、上死点からの進角量で示される。
【００３０】
本実施形態では、高オクタン価燃料を基準とした基本点火時期ＩＧＭが、エンジン回転数ＮＥ及び吸気圧ＰＢＡに応じたマップに設定されている。より具体的には、基本点火時期ＩＧＭは、図２のライン２１に対応するＭＢＴに設定されている。
【００３１】
そして点火時期ＩＧＬＯＧは、下記式（１）により算出される。
ＩＧＬＯＧ＝ＩＧＭ＋ＩＧＣＲ                          （１）
ここで、ＩＧＣＲは下記式（２）により算出される遅角補正項である。式（２）の右辺の演算結果が正の値となったときは、遅角補正項ＩＧＣＲは「０」に設定される。
ＩＧＣＲ＝ＤＩＧＲＳＶ＋ＩＧＴＨ−ＩＧＫＮＯＣＫ
−ＩＧＴＷ−ＩＧＴＡ＋ＩＧＰＡ      （２）
【００３２】
式（２）のＤＩＧＲＳＶは、図２に示すように（ＩＧＲＯＮＨ−ＭＢＴ）に設定され、点ＰＸより低負荷側で正の値をとり、高負荷側では負の値をとる基本補正項である。
【００３３】
式（２）のＩＧＴＨは、図５の処理でスロットル弁開度ＴＨに応じて算出されるスロットル弁開度補正項である。ＩＧＫＮＯＣＫは、下記式（３）により算出されるノック補正項である。
ＩＧＫＮＯＣＫ＝ＤＩＧＫＲ×ＫＩＧＫＮ                        （３）
【００３４】
ここでＤＩＧＫＲは、図２に示すように、高オクタン価燃料のノック限界点火時期ＩＧＲＯＮＨと、低オクタン価燃料のノック限界点火時期ＩＧＲＯＮＬとの差（以下「オクタン価差分項」という）であり、ＫＩＧＫＮは、ノッキング判定結果に応じて設定される遅角係数である。ノッキングが発生するときは、遅角係数ＫＩＧＫＮは、増加する方向（遅角方向）に更新され、ノッキングが発生しないときは、遅角係数ＫＩＧＫＮは、減少する方向（進角方向）に更新される。
【００３５】
式（２）のＩＧＴＷはエンジン冷却水温ＴＷに応じて設定される水温補正項であり、ＩＧＰＡは大気圧ＰＡに応じて設定される大気圧補正項であり、ＩＧＴＡは、吸気温ＴＡに応じて設定される吸気温補正項である。
【００３６】
図３は、点火時期ＩＧＬＯＧを算出する処理のフローチャートである。この処理は、ＴＤＣパルスの発生に同期してＥＣＵ５のＣＰＵで実行される。
ステップＳ１１では、エンジン回転数ＮＥ、吸気圧ＰＢＡ、及び吸気弁作動位相ＣＡＩＮに応じて基本点火時期ＩＧＭを算出する。図４（ａ）に示すようにエンジン回転数ＮＥ及び吸気圧ＰＢＡに応じて設定されたＩＧＭマップが、吸気弁作動位相ＣＡＩＮの複数の値に対応して設けられており、検出されたエンジン回転数ＮＥ及び吸気圧ＰＢＡと、吸気弁作動位相ＣＡＩＮとに応じた検索及び補間演算により、基本点火時期ＩＧＭが算出される。図４（ａ）のＰＢ１〜ＰＢ４は、所定吸気圧であり、ＰＢ１＜ＰＢ２＜ＰＢ３＜ＰＢ４なる関係を有する。ＩＧＭマップは、おおまかにはエンジン回転数ＮＥが増加するほど基本点火時期ＩＧＭが進角し、かつ吸気圧ＰＢＡが低下するほど基本点火時期ＩＧＭが進角するように設定されている。
【００３７】
ステップＳ１２では、エンジン回転数ＮＥ、吸気圧ＰＢＡ、及び吸気弁作動位相ＣＡＩＮに応じて基本補正項ＤＩＧＲＳＶを算出する。図４（ｂ）に示すようにエンジン回転数ＮＥ及び吸気圧ＰＢＡに応じて設定されたＤＩＧＲＳＶマップが、吸気弁作動位相ＣＡＩＮの複数の値に対応して設けられており、検出されたエンジン回転数ＮＥ及び吸気圧ＰＢＡと、吸気弁作動位相ＣＡＩＮとに応じた検索及び補間演算により、基本補正項ＤＩＧＲＳＶが算出される。ＤＩＧＲＳＶマップは、おおまかには低負荷領域でエンジン回転数ＮＥが増加するほど基本補正項ＤＩＧＲＳＶが減少し、高負荷領域ではエンジン回転数ＮＥが増加するほど基本補正項ＤＩＧＲＳＶが増加するように設定され、かつ吸気圧ＰＢＡが低下するほど基本補正項ＤＩＧＲＳＶが増加するように設定されている。
【００３８】
ステップＳ１３では図５に示すＩＧＴＨ算出処理を実行し、スロットル弁開度補正項ＩＧＴＨを算出する。ステップＳ１４では図７に示すＩＧＫＮＯＣＫ算出処理を実行し、ノック補正項ＩＧＫＮＯＣＫを算出する。
【００３９】
ステップＳ１５では、上述した水温補正項ＩＧＴＷ，大気圧補正項ＩＧＰＡ，及び吸気温補正項ＩＧＴＡを算出する。ステップＳ１６では、下記式（２ａ）により、仮補正値ＩＧＣＲＫを算出する。
ＩＧＣＲＫ＝ＤＩＧＲＳＶ＋ＩＧＴＨ−ＩＧＫＮＯＣＫ
−ＩＧＴＷ−ＩＧＴＡ＋ＩＧＰＡ      （２ａ）
【００４０】
ステップＳ１７では、仮補正値ＩＧＣＲＫが「０」以下か否かを判別し、その答が否定（ＮＯ）であるときは、遅角補正項ＩＧＣＲを「０」に設定する（ステップＳ１９）。一方、ＩＧＣＲＫ≦０であるときは、遅角補正項ＩＧＣＲを仮補正値ＩＧＣＲＫに設定する（ステップＳ１８）。ステップＳ２０では、前記式（１）により、点火時期ＩＧＬＯＧを算出する。
【００４１】
図５は、図３のステップＳ１３で実行されるＩＧＴＨ算出処理のフローチャートである。
ステップＳ２１では、エンジン回転数ＮＥ、スロットル弁開度ＴＨ、及び吸気弁作動位相ＣＡＩＮに応じて基本目標値ＩＧＴＨＣＭＤＫを算出する。図６（ａ）に示すようにエンジン回転数ＮＥ及びスロットル弁開度ＴＨに応じて設定されたＩＧＴＨＣＭＤＫマップが、吸気弁作動位相ＣＡＩＮの複数の値に対応して設けられており、検出されたエンジン回転数ＮＥ及びスロットル弁開度ＴＨと、吸気弁作動位相ＣＡＩＮとに応じた検索及び補間演算により、基本目標値ＩＧＴＨＣＭＤＫが算出される。図６（ａ）のＴＨ１〜ＴＨ６は所定スロットル弁開度であり、ＴＨ１＜ＴＨ２＜ＴＨ３＜ＴＨ４＜ＴＨ５＜ＴＨ６なる関係を有する。ＩＧＴＨＣＭＤＫマップは、おおまかにはエンジン回転数ＮＥが増加するほど基本目標値ＩＧＴＨＣＭＤＫが減少し、かつスロットル弁開度ＴＨが増加するほど基本目標値ＩＧＴＨＣＭＤＫが増加するように設定されている。
【００４２】
より詳細には、エンジン回転数ＮＥが２０００ｒｐｍより低い低回転領域では、スロットル弁開度ＴＨが所定スロットル弁開度ＴＨ４〜ＴＨ６となる高開度領域では、基本目標値ＩＧＴＨＣＭＤＫはほぼ同一の値に設定され、所定スロットル弁開度ＴＨ４より小さい低開度領域でスロットル弁開度ＴＨの増加に対応して基本目標値ＩＧＴＨＣＭＤＫが増加するように設定されている。またエンジン回転数ＮＥが３０００ｒｐｍより高い高回転領域では、低開度領域では基本目標値ＩＧＴＨＣＭＤＫが「０」に設定され、高開度領域でスロットル弁開度ＴＨの増加に対応して基本目標値ＩＧＴＨＣＭＤＫが増加するように設定されている。
【００４３】
ステップＳ２２では、大気圧ＰＡに応じて図６（ｂ）に示すＫＩＧＴＨＰＡテーブルを検索し、大気圧補正係数ＫＩＧＴＨＰＡを算出する。図６（ｂ）のＰＡ０及びＰＡ１は、それぞれ１０１ｋＰａ（７６０ｍｍＨｇ）及び６６．７ｋＰａ（５００ｍｍＨｇ）に設定される所定大気圧であり、ＫＩＧＴＨＰＡ１は例えば２．８に設定される所定係数値である。ＫＩＧＴＨＰＡテーブルは、大気圧ＰＡが低下するほど、大気圧補正係数ＫＩＧＴＨＰＡが増加するように設定されている。
【００４４】
ステップＳ２３では基本目標値ＩＧＴＨＣＭＤＫ及び大気圧補正係数ＫＩＧＴＨＰＡを下記式（５）に適用し、目標値ＩＧＴＨＣＭＤを算出する。
ＩＧＴＨＣＭＤ＝ＩＧＴＨＣＭＤＫ×ＫＩＧＴＨＰＡ        （５）
【００４５】
ステップＳ２４では、スロットル弁開度補正項ＩＧＴＨが目標値ＩＧＴＨＣＭＤより小さいか否かを判別する。この答が否定（ＮＯ）であるときは、カウンタＣＩＧＴＨＡＤＶの値を「０」に設定し（ステップＳ２５）、スロットル弁開度補正項ＩＧＴＨを目標値ＩＧＴＨＣＭＤに設定する（ステップＳ２６）。すなわち目標値ＩＧＴＨＣＭＤがスロットル弁開度補正項ＩＧＴＨと同一値か、または遅角側の値であるときは、スロットル弁開度補正項ＩＧＴＨは直ちに目標値ＩＧＴＨＣＭＤに設定される。
【００４６】
ステップＳ２４でＩＧＴＨ＜ＩＧＴＨＣＭＤであるときは、遅角係数ＫＩＧＫＮが、その学習値ＫＩＧＫＲＥＦ以下であるか否かを判別する（ステップＳ２７）。ノッキングが発生していないときは、ステップＳ２７の答は肯定（ＹＥＳ）となるのでステップＳ２８に進み、カウンタＣＩＧＴＨＡＤＶの値が「０」であるか否かを判別する。
【００４７】
最初はステップＳ２８の答は肯定（ＹＥＳ）であるので、ステップＳ３０に進み、エンジン回転数ＮＥに応じて間引き数ＮＩＧＴＨＡＤＶを算出する。間引き数ＮＩＧＴＨＡＤＶは、エンジン回転数ＮＥが増加するほど増加するように設定される。ステップＳ３１では、カウンタＣＩＧＴＨＡＤＶに間引き数ＮＩＧＴＨＡＤＶを設定する。ステップＳ３２では、下記式（６）によりスロットル弁開度補正項ＩＧＴＨを更新する。式（６）の右辺のＩＧＴＨは前回算出値であり、ＤＩＧＴＨＡＤＤは例えば０．５ｄｅｇ程度に設定される所定加算値である。
ＩＧＴＨ＝ＩＧＴＨ＋ＤＩＧＴＨＡＤＤ                      （６）
【００４８】
ステップＳ３３では、スロットル弁開度補正項ＩＧＴＨが目標値ＩＧＴＨＣＭＤより大きいか否かを判別し、その答が肯定（ＹＥＳ）であるときはスロットル弁開度補正項ＩＧＴＨを目標値ＩＧＴＨＣＭＤに設定する（ステップＳ３４）。ステップＳ３３で、ＩＧＴＨ≦ＩＧＴＨＣＭＤであるときは直ちに本処理を終了する。
【００４９】
ステップＳ３１を実行した後は、ステップＳ２８の答が否定（ＮＯ）となるので、ステップＳ２９に進んで、カウンタＣＩＧＴＨＡＤＶの値を「１」だけデクリメントする。したがって、ステップＳ３０〜Ｓ３４は、本処理をＮＩＧＴＨＡＤＶ回実行する毎に１回実行される。
【００５０】
ノッキングが発生し、遅角係数ＫＩＧＫＮが漸増されているときは、ステップＳ２７の答が否定（ＮＯ）となりステップＳ２９に進む。したがって、このときはスロットル弁開度補正項ＩＧＴＨは前回値に保持される。
【００５１】
図７は、図３のステップＳ１４で実行されるＩＧＫＮＯＣＫ算出処理のフローチャートである。
ステップＳ４１では、エンジン回転数ＮＥ及び吸気圧ＰＢＡに応じてＤＩＧＫＲマップ（図示せず）を検索し、オクタン価差分項ＤＩＧＫＲを算出する。ＤＩＧＫＲマップは、図２に示すように、高オクタン価燃料のノック限界点火時期ＩＧＲＯＮＨと、低オクタン価燃料のノック限界点火時期ＩＧＲＯＮＬとの差分が、エンジン回転数ＮＥ及び吸気圧ＰＢＡに対応して設定されている。
【００５２】
ステップＳ４２では、図８及び図９に示すＫＩＧＫＮ算出処理を実行し、遅角係数ＫＩＧＫＮを算出する。ステップＳ４３では、算出したオクタン価差分項ＤＩＧＫＲ及び遅角係数ＫＩＧＫＮを前記式（３）に適用し、ノック補正項ＩＧＫＮＯＣＫを算出する。
【００５３】
図８及び図９は、図７のステップＳ４２で実行されるＫＩＧＫＮ算出処理のフローチャートである。
ステップＳ９１では、リミット値算出処理を実行し、遅角係数ＫＩＧＫＮの上限値ＫＩＧＫＮＬＭＨ及び下限値ＫＩＧＫＮＬＭＬを算出する。ステップＳ９２では、異常検出フラグＦＦＳＰＫＳが「１」であるか否かを判別する。異常検出フラグＦＦＳＰＫＳは、吸気圧センサ７，吸気温センサ８などのエンジン運転状態を検出する各種センサのいずれかの故障が検出されたとき「１」に設定される。ＦＦＳＰＫＳ＝１であって、フェールセーフ動作が必要であるときは、遅角係数ＫＩＧＫＮをフェールセーフ用所定値ＦＳＫＩＧＫＮに設定し（ステップＳ９３）、第２リミット処理を実行する（ステップＳ９４）。第２リミット処理では、遅角係数ＫＩＧＫＮが上限値ＫＩＧＫＮＬＭＨを超えているときは、その上限値ＩＧＫＮＬＭＨに再設定される。ステップＳ９４を実行した後、ステップＳ１１０（図９）に進む。
【００５４】
ステップＳ９２でＦＦＳＰＫＳ＝０であってフェールセーフ動作が不要であるときは、初期フラグＦＫＩＧＫＮＩＮＩが「１」であるか否かを判別する（ステップＳ９５）。最初は、ＦＫＩＧＫＮＩＮＩ＝０であるので、ステップＳ９６に進み、初期フラグＦＫＩＧＫＮＩＮＩを「１」に設定する。次いで、下記式（７）により、遅角係数ＫＩＧＫＮを算出する（ステップＳ９７）。
ＫＩＧＫＮ＝ＫＩＧＫＲＥＦ＋ＤＫＮＩＮＩ                      （７）
ここで、ＫＩＧＫＲＥＦは、後述する学習値算出処理で算出される、遅角係数ＫＩＧＫＮの学習値であり、ＤＫＮＩＮＩは、所定の初期設定加算値である。
ステップＳ９７の実行後は、ステップＳ１０９に進む。
【００５５】
ステップＳ９６で初期フラグＦＫＩＧＫＮＩＮＩが「１」に設定された後は、ステップＳ９５からステップＳ９８に進み、ノック判定禁止フラグＦＫＮＯＣＫＰが「１」であるか否かを判別する。ノック判定禁止フラグＦＫＮＯＣＫＰは、エンジン回転数ＮＥが低い（例えば１０００ｒｐｍ未満の）ときやエンジンへの燃料供給を停止するフュエルカット中などにおいて「１」に設定される。ステップＳ９８の答が肯定（ＹＥＳ）であるときは、ダウンカウントタイマＴＡＤＶを第１所定時間ＴＭＡＤＶＳ（例えば０．２秒）に設定してスタートさせる（ステップＳ９９）。次いで、遅角係数ＫＩＧＫＮを前回値と同一の設定として（ステップＳ１００）、ステップＳ１０９に進む。
【００５６】
ステップＳ９８でＦＫＮＯＣＫＰ＝０であるときは、ノッキングフラグＦＫＮＯＣＫが「１」であるか否かを判別する（ステップＳ１０１）。ノッキングフラグＦＫＮＯＣＫは、ノックセンサ１１の出力に基づいて周知の手法でノッキングが発生したと判定されたとき「１」に設定される。
【００５７】
ステップＳ１０１でＦＫＮＯＣＫ＝１であってノッキングが発生したときは、ダウンカウントタイマＴＡＤＶを第２所定時間ＴＭＡＤＶＬ（例えば０．５秒）に設定してスタートさせる（ステップＳ１０２）。次いで、加算項ＤＫＩＧＫＮＵを所定値ＤＫＩＧＫＮＵＳに設定し（ステップＳ１０３）、その加算項ＤＫＩＧＫＮＵを下記式（８）に適用して、遅角係数ＫＩＧＫＮを増加方向に更新する（ステップＳ１０４）。これにより、点火時期の遅角補正量が増加する。
ＫＩＧＫＮ＝ＫＩＧＫＮ＋ＤＫＩＧＫＮＵ                        （８）
ステップＳ１０４実行後は、ステップＳ１０９に進む。
【００５８】
ステップＳ１０１でＦＫＮＯＣＫ＝０であるときは、ステップＳ９９またはステップＳ１０２でスタートされるダウンカウントタイマＴＡＤＶの値が「０」であるか否かを判別する（ステップＳ１０５）。この答が否定（ＮＯ）である間は、遅角係数ＫＩＧＫＮを前回値と同一の設定として（ステップＳ１０６）、ステップＳ１０９に進む。タイマＴＡＤＶの値が「０」となると、ステップＳ１０５からステップＳ１０７に進み、該タイマＴＡＤＶを第１所定時間ＴＭＡＤＶＳに設定してスタートさせる。次いで、下記式（９）により、遅角係数ＫＩＧＫＮを減少方向に更新し（ステップＳ１０８）、ステップＳ１０９に進む。式（９）による更新によって、点火時期の遅角補正量が減少する（点火時期は進角方向に変化する）。
ＫＩＧＫＮ＝ＫＩＧＫＮ−ＤＫＩＧＫＮＤ                        （９）
ここで、ＤＫＩＧＫＮＤは、所定減算値である。
【００５９】
ステップＳ１０９では、算出された遅角係数ＫＩＧＫＮの第１リミット処理を実行する。すなわち、遅角係数ＫＩＧＫＮが、ステップＳ９１で算出される上限値ＫＩＧＫＮＬＭＨを超えるときは、その上限値ＫＩＧＫＮＬＭＨに再設定され、遅角係数ＫＩＧＫＮがステップＳ９１で算出される下限値ＫＩＧＫＮＬＭＬより小さいときは、その下限値ＫＩＧＫＮＬＭＬに再設定される。
【００６０】
ステップＳ１１０では、学習値算出用遅角係数ＫＩＧＫＭを、算出された遅角係数ＫＩＧＫＮに設定し、次いで学習領域判定処理を実行し、学習可能なエンジン運転状態であるときは、学習許可フラグＦＫＮＲＥＦＭＯＤを「１」に設定する（ステップＳ１１１）。
【００６１】
ステップＳ１１２では、図１０に示す学習値算出処理を実行し、学習値ＫＩＧＫＲＥＦを算出する。ステップＳ１１３では、学習値算出処理で設定される進角学習フラグＦＫＩＧＫＮＡＤＶが「１」であるか否かを判別する。進角学習フラグＦＫＩＧＫＮＡＤＶは、学習値ＫＩＧＫＲＥＦが進角方向に更新されたとき「１」に設定される。
【００６２】
ステップＳ１１３の答が否定（ＮＯ）であるときは、遅角係数ＫＩＧＫＮを、学習値算出用遅角係数ＫＩＧＫＭに設定する（ステップＳ１１４）。ステップＳ１１３でＦＫＩＧＫＮＡＤＶ＝１であって学習値ＫＩＧＫＲＥＦが進角方向に更新されたときは、遅角係数ＫＩＧＫＮを学習値ＫＩＧＫＲＥＦに設定する（ステップＳ１１５）。
【００６３】
図１０は、図９のステップＳ１１２で実行される学習値算出処理のフローチャートである。
ステップＳ１４０では、学習許可フラグＦＫＮＲＥＦＭＯＤが「１」であるか否かを判別する。ＦＫＮＲＥＦＭＯＤ＝０であって学習が許可されていないときは、ステップＳ１４１に進み、異常検出フラグＦＦＳＰＫＳが「１」であるか否かを判別する。この答が否定（ＮＯ）であってセンサの異常が検出されていないときは、直ちにステップＳ１６８に進む。一方、ＦＦＳＰＫＳ＝１であって何れかのセンサの異常が検出されているときは、学習値算出用の中間パラメータＫＩＧＫＮＲＥＦをフェールセーフ用所定値ＦＳＫＩＧＫＮに設定し（ステップＳ１４２）、ステップＳ１６８に進む。ステップＳ１６８では、進角学習フラグＦＫＩＧＫＮＡＤＶを「０」に設定する。
【００６４】
学習許可フラグＦＫＮＲＥＦＭＯＤが「１」に設定されると、ステップＳ１４０からステップＳ１４５に進み、中間パラメータＫＩＧＫＮＲＥＦを学習値ＫＩＧＫＲＥＦに設定する。ステップＳ１５１では、ノッキングフラグＦＫＮＯＣＫが「１」であるか否かを判別し、ＦＫＮＯＣＫ＝１であってノッキングが発生したときは、下記式（１０）により、進角補正項ＤＲＲＥＦを所定値ＤＤＲＲＥＦだけデクリメントする（ステップＳ１５２）。
ＤＲＲＥＦ＝ＤＲＲＥＦ−ＤＤＲＲＥＦ                        （１０）
【００６５】
ステップＳ１５３では、進角補正項ＤＲＲＥＦのリミット処理を行う。すなわち、進角補正項ＤＲＲＥＦが所定下限値ＤＲＲＥＦＬより小さいときは、進角補正項ＤＲＲＥＦは、その所定下限値ＤＲＲＥＦＬに再設定される。その後ステップＳ１５４に進む。
ステップＳ１５１でＦＫＮＯＣＫ＝０であってノッキングが発生していない時は、直ちにステップＳ１５４に進む。
【００６６】
ステップＳ１５４では、学習値算出用遅角係数ＫＩＧＫＭが中間パラメータＫＩＧＫＮＲＥＦ以下であるか否かを判別し、ＫＩＧＫＭ＞ＫＩＧＫＮＲＥＦであって、遅角係数ＫＩＧＫＭが中間パラメータＫＩＧＫＮＲＥＦより遅角側の値であるときは、学習値算出用遅角係数ＫＩＧＫＭを下記式（１１）に適用し、なまし処理することにより、学習値ＫＩＧＫＲＥＦを算出するとともに、算出された学習値ＫＩＧＫＲＥＦの上限リミット処理を行う（ステップＳ１５５）。すなわち、式（１１）による演算の結果、学習値ＫＩＧＫＲＥＦが所定上限値ＫＩＧＲＥＦＨを超えたときは、学習値ＫＩＧＫＲＥＦはこの所定上限値ＫＩＧＲＥＦＨに再設定される。
【００６７】
ＫＩＧＫＲＥＦ＝ＣＫＩＧＲＥＦ×ＫＩＧＫＭ
＋（１−ＣＫＩＧＲＥＦ）×ＫＩＧＫＲＥＦ  （１１）
ここでＣＫＩＧＲＥＦは０から１の間の値に設定されるなまし係数であり、右辺のＫＩＧＫＲＥＦは、学習値ＫＩＧＫＲＥＦの前回値である。
【００６８】
ステップＳ１５６では、進角学習フラグＦＫＩＧＫＮＡＤＶを「０」に設定し、本処理を終了する。
【００６９】
ステップＳ１５４でＫＩＧＫＭ≦ＫＩＧＫＮＲＥＦであって、学習値算出用遅角係数ＫＩＧＫＭが中間パラメータＫＩＧＫＮＲＥＦより進角側の値であるときは、図１１のステップＳ１８６でスタートされるダウンカウントタイマＴＤＲＲＥＦの値が「０」であるか否かを判別する（ステップＳ１６１）。最初はＴＤＲＲＥＦ＝０であるので、図１１に示すＦＡＤＶＲＥＦ設定処理を実行する（ステップＳ１６２）。図１１のステップＳ１８６でダウンカウントタイマＴＤＲＲＥＦが所定時間ＴＭＤＲＲＥＦに設定されると、ＴＤＲＲＥＦ＞０である間はステップＳ１６１からステップＳ１６８に進む。
【００７０】
図１１のステップＳ１８１では、エンジン水温ＴＷが所定水温ＴＷＲＭＨ（例えば１２０℃）より高いか否かを判別し、ＴＷ≦ＴＷＲＭＨであるときは、燃料噴射量の高負荷補正係数ＫＷＯＴが所定計数値ＫＷＯＴＫＮ（例えば１．４３８）より大きいか否かを判別する（ステップＳ１８２）。高負荷補正係数ＫＷＯＴは、スロットル弁がほぼ全開とされるスロットル全開運転状態において「１．０」より大きな値に設定され、それ以外のエンジン運転状態では「１．０」に設定される。
【００７１】
ステップＳ１８２の答が否定（ＮＯ）であるときは、スロットル弁開度補正項ＩＧＴＨが目標値ＩＧＴＨＣＭＤと等しいか否かを判別する（ステップＳ１８３）。ステップＳ１８１若しくはＳ１８２の答が肯定（ＹＥＳ）、またはステップＳ１８３の答が否定（ＮＯ）であるときは、ステップＳ１８４に進み、進角学習許可フラグＦＡＤＶＲＥＦを「０」に設定する。これにより、進角方向への学習値の更新が禁止される。平均的なエンジン運転状態から大きく外れたエンジン運転状態においては、学習値を進角方向へ更新することは好ましくないからである。
【００７２】
ステップＳ１８３の答が肯定（ＹＥＳ）であるときは、進角学習許可フラグＦＡＤＶＲＥＦを「１」に設定し（ステップＳ１８５）、ダウンカウントタイマＴＤＲＲＥＦを所定時間ＴＭＤＲＲＥＦ（例えば０．４〜１秒）に設定してスタートさせる（ステップＳ１８６）。
【００７３】
図１０に戻り、ステップＳ１６３では、進角学習許可フラグＦＡＤＶＲＥＦが「１」であるか否かを判別し、ＦＡＤＶＲＥＦ＝０であって進角学習が許可されていないときは、学習値ＫＩＧＫＲＥＦを更新することなく前記ステップＳ１６８に進む。
【００７４】
一方ＦＡＤＶＲＥＦ＝１であって進角学習が許可されているときは、下記式（１２）により、中間パラメータＫＩＧＫＮＲＥＦを進角補正項ＤＲＲＥＦだけデクリメントする（ステップＳ１６４）。これにより、中間パラメータＫＩＧＫＮＲＥＦは、進角方向に更新される。
ＫＩＧＫＮＲＥＦ＝ＫＩＧＫＮＲＥＦ−ＤＲＲＥＦ              （１２）
【００７５】
ステップＳ１６５では、中間パラメータＫＩＧＫＮＲＥＦのリミット処理を実行する。具体的には、中間パラメータＫＩＧＫＮＲＥＦが所定下限値ＫＩＧＲＥＦＬより小さいときは、中間パラメータＫＩＧＫＮＲＥＦは、その所定下限値ＫＩＧＲＥＦＬに再設定される。ステップＳ１６６では、学習値ＫＩＧＫＲＥＦを中間パラメータＫＩＧＫＮＲＥＦに設定し、ステップＳ１６７では、進角学習フラグＦＫＩＧＫＮＡＤＶを「１」に設定し、本処理を終了する。
【００７６】
図１２は、スロットル弁開度補正項ＩＧＴＨの算出、及びスロットル弁開度補正項ＩＧＴＨの算出と、遅角係数ＫＩＧＫＮ及び学習値ＫＩＧＫＲＥＦの算出との関係を説明するためのタイムチャートである。
【００７７】
時刻ｔ１にスロットル弁開度補正項の目標値ＩＧＴＨＣＭＤが増加（進角）方向に変更されると、スロットル弁開度補正項ＩＧＴＨは目標値ＩＧＴＨＣＭＤに達する時刻ｔ２まで徐々に増加する。時刻ｔ１からｔ２までの期間では、スロットル弁開度補正項ＩＧＴＨは目標値ＩＧＴＨＣＭＤと一致していないため、図１１のステップＳ１８３の答が否定（ＮＯ）となり、学習値ＫＩＧＫＲＥＦの進角方向への更新が禁止される。目標値ＩＧＴＨＣＭＤが遅角方向に変更されたときは（時刻ｔ３，ｔ８）、スロットル弁開度補正項ＩＧＴＨは直ちに目標値ＩＧＴＨＣＭＤに追従する。
【００７８】
時刻ｔ４においてスロットル弁開度補正項の目標値ＩＧＴＨＣＭＤが増加（進角）方向に変更されると、スロットル弁開度補正項ＩＧＴＨは徐々に増加するが、時刻ｔ５においてノッキングが発生し、遅角係数ＫＩＧＫＮが増加方向に変更されると、図５のステップＳ２７の答が否定（ＮＯ）となり、スロットル弁開度補正項ＩＧＴＨは前回値に保持される。その後ノッキングが発生しなくなり、時刻ｔ６において学習値ＫＩＧＫＲＥＦと遅角係数ＫＩＧＫＮが一致すると、ステップＳ２７の答が肯定（ＹＥＳ）となって、スロットル弁開度補正項ＩＧＴＨの漸増が開始される。その後、学習値ＫＩＧＫＲＥＦの進角（減少）方向への更新は禁止され、スロットル弁開度補正項ＩＧＴＨが目標値ＩＧＴＨＣＭＤに達すると（時刻ｔ７）、学習値ＫＩＧＫＲＥＦの進角方向への更新が開始される。
【００７９】
以上の詳述したように本実施形態では、検出されたスロットル弁開度ＴＨに応じてスロットル弁開度補正項ＩＧＴＨを算出し、基本点火時期ＩＧＭを補正するようにしたので、スロットル弁開度ＴＨに依存して変化する燃焼室吸入空気温度の変化に対応した点火時期ＩＧＬＯＧの設定を行い、ノッキング限界を進角方向に拡大してエンジン出力を高めることができる。
【００８０】
またスロットル弁開度補正項ＩＧＴＨは、スロットル弁開度ＴＨが増加するほど増加するように設定されるので、スロットル弁開度ＴＨが増加するほど点火時期ＩＧＬＯＧが進角方向に補正され、ノッキングが発生しない範囲でエンジン出力を増加させることができる。
【００８１】
またスロットル弁開度補正項ＩＧＴＨは、スロットル弁開度ＴＨだけでなくエンジン回転数ＮＥに応じて、エンジン回転数ＮＥが増加するほど減少するように設定される。この設定は以下の理由に基づいている。エンジン回転数ＮＥが増加するほど、ノッキングが発生し難くなり、またスロットル弁開度ＴＨが小さいときはノッキングはほとんど発生しない。そして、ノッキングが発生するような比較的大きなスロットル弁開度では、スロットル弁の上流側の吸気温と下流側の吸気温とがほぼ等しくなっているため、スロットル弁開度補正項ＩＧＴＨによる進角補正を行う必要がない。したがって、スロットル弁開度補正項ＩＧＴＨをエンジン回転数ＮＥが増加するほど減少するように設定することにより、高回転側での過度な進角補正を防止することができる。
【００８２】
またスロットル弁開度補正項ＩＧＴＨを、目標値ＩＧＴＨＣＭＤに達するまで徐々に増加させる過渡制御が行われる。スロットル弁開度補正項ＩＧＴＨを目標値ＩＧＴＨＣＭＤに直ちに変更すると、ノッキングを発生させるおそれがあるため、過渡制御を行うことにより、ノッキングを確実に防止することができる。
【００８３】
またノック補正項ＩＧＫＮＯＣＫの算出に適用される遅角係数ＫＩＧＫＮがノッキング検出結果に応じて算出され、ノッキングが発生して遅角係数ＫＩＧＫＮが増加方向に更新されたときは、過渡制御中におけるスロットル弁開度補正項ＩＧＴＨが前回値保持とされる。したがって、ノッキング抑制のための遅角補正に逆行する補正が並行して行われることを防止し、早期にノッキングを抑制することができる。
【００８４】
またスロットル弁開度補正項ＩＧＴＨの過渡制御が実行されているときは、遅角係数ＫＩＧＫＮの学習値ＫＩＧＫＲＥＦの進角方向への更新が禁止される。過渡制御中は、スロットル弁開度補正項ＩＧＴＨが目標値ＩＧＴＨＣＭＤに達していないので、その状態での学習値ＫＩＧＫＲＥＦの更新を禁止することにより、学習値ＫＩＧＫＲＥＦが適正値からずれてしまうことを防止することができる。
【００８５】
本実施形態では、クランク角度位置センサ１０が回転数検出手段に相当し、吸気圧センサ７が吸気圧検出手段に相当し、スロットル弁開度センサ４がスロットル弁開度検出手段に相当する。またノッキングセンサ１１がノッキング検出手段の一部を構成し、ＥＣＵ５が基本点火時期算出手段、第１補正量算出手段、点火時期算出手段、ノッキング検出手段の一部、第２補正量算出手段、及び学習手段を構成する。具体的には、図３のステップＳ１１が基本点火時期算出手段に相当し、ステップＳ１３（図５の処理）が第１補正量算出手段に相当し、ステップＳ１６が点火時期算出手段に相当し、ステップＳ１４（図７の処理）が第２補正量算出手段に相当し、図１０の処理が学習手段に相当する。
【００８６】
なお本発明は上述した実施形態に限るものではなく、種々の変形が可能である。例えば、上述した実施形態では１つのバンクに対応する５つのスロットル弁を一体に駆動するスロットル弁駆動機構が設けられたＶ型１０気筒エンジンの点火時期制御に本願発明を適用した例を示したが、本願発明はスロットル弁が吸気弁の近傍に設けられ、スロットル弁と吸気弁との間にサージタンクが設けられていないエンジンに適用することにより、ノッキングを抑制した状態でのエンジン出力を向上させる効果を得ることができる。
【００８７】
また本発明は、クランク軸を鉛直方向とした船外機などのような船舶推進機用エンジンなどの点火時期制御にも適用が可能である。
【図面の簡単な説明】
【００８８】
【図１】本発明の一実施形態にかかる内燃機関及びその制御装置の構成を示す図である。
【図２】点火時期の設定を説明するための図である。
【図３】点火時期制御のフローチャートである。
【図４】図３の処理で参照されるマップを示す図である。
【図５】スロットル弁開度補正項（ＩＧＴＨ）を算出する処理のフローチャートである。
【図６】図５の処理で参照されるマップ及びテーブルを示す図である。
【図７】ノック補正項（ＩＧＫＮＯＣＫ）を算出する処理のフローチャートである。
【図８】図７の処理で実行される遅角係数（ＫＩＧＫＮ）算出処理のフローチャートである。
【図９】図７の処理で実行される遅角係数（ＫＩＧＫＮ）算出処理のフローチャートである。
【図１０】図９の処理で実行される学習値（ＫＩＧＫＲＥＦ）算出処理のフローチャートである。
【図１１】図１０の処理で実行される進角学習許可フラグ（ＦＡＤＶＲＥＦ）設定処理のフローチャートである。
【図１２】スロットル弁開度補正項（ＩＧＴＨ）及び学習値（ＫＩＧＫＲＥＦ）の算出処理を説明するためのタイムチャートである。
【符号の説明】
【００８９】
１  内燃機関
２  吸気管
３  スロットル弁
４  スロットル弁開度センサ（スロットル弁開度検出手段）
５  電子制御ユニット（基本点火時期算出手段、第１補正量算出手段、点火時期算出手段、ノッキング検出手段、第２補正量算出手段、学習手段）
７  吸気圧センサ（吸気圧検出手段）
１０  クランク角度位置センサ（回転数検出手段）
１１  ノックセンサ（ノッキング検出手段）
１２  点火プラグ
【図１】
2010019100.tif 000003
【図２】
2010019100.tif 000004
【図３】
2010019100.tif 000005
【図４】
2010019100.tif 000006
【図５】
2010019100.tif 000007
【図６】
2010019100.tif 000008
【図７】
2010019100.tif 000009
【図８】
2010019100.tif 000010
【図９】
2010019100.tif 000011
【図１０】
2010019100.tif 000012
【図１１】
2010019100.tif 000013
【図１２】
2010019100.tif 000014