(57)【要約】    【課題】  充填効率に応じた点火時期設定が、機関の特性ばらつきや経時変化によって最適値からずれた場合において、適切な点火時期の設定を行う。    【解決手段】  吸入空気流量ＧＡＩＲ及びエンジン回転数ＮＥに応じて充填効率ηｃが算出され、エンジン回転数ＮＥ及び充填効率ηｃに応じて初期ノック限界点火時期ＩＧＩＮＩが算出される。ノッキングの検出結果に応じて、ノック補正値ＩＧＫＮＯＣＫが算出され、第１及び第２学習パラメータａ，ｂが設定された学習パラメータテーブルが、ノック補正値ＩＧＫＮＯＣＫに基づいて更新される。エンジン回転数ＮＥに応じて第１及び第２学習パラメータａ，ｂが算出され、充填効率ηｃ並びに第１及び第２学習パラメータａ，ｂを用いて、エンジン１の複数気筒のそれぞれに対応する気筒別補正値ＤＩＧＲＬＳ（Ｎ）が算出される。【選択図】  図１４
2010185326.tif 000002
【特許請求の範囲】
【請求項１】
内燃機関の点火時期を制御する内燃機関の点火時期制御装置において、
前記機関の吸入空気流量を検出する吸入空気流量検出手段と、
前記機関の回転数を検出する回転数検出手段と、
検出される吸入空気流量及び機関回転数に応じて前記機関の充填効率を算出する充填効率算出手段と、
前記機関回転数及び充填効率に応じてノック限界点火時期を算出するノック限界点火時期算出手段と、
前記機関のノッキングを検出するノッキング検出手段と、
前記ノッキング検出手段による検出結果に応じて、ノック補正値を算出するノック補正値算出手段と、
前記ノッキングが検出されたときの機関回転数及び前記ノック補正値に基づいて、第１及び第２学習パラメータが設定された学習パラメータテーブルを更新する学習手段と、
前記機関回転数に応じて前記学習パラメータテーブルを検索し、前記第１及び第２学習パラメータを算出する学習パラメータ算出手段と、
前記充填効率並びに前記第１及び第２学習パラメータを用いて、前記機関の複数気筒のそれぞれに対応する気筒別補正値を算出する気筒別補正値算出手段と、
前記ノック限界点火時期及び気筒別補正値を用いて前記機関の点火時期を算出する点火時期算出手段とを備えることを特徴とする内燃機関の点火時期制御装置。
【請求項２】
前記気筒別補正値算出手段は、前記第１及び第２学習パラメータを含む一次式に前記充填効率の基準値と前記充填効率との差分を適用して前記気筒別補正値を算出することを特徴とする請求項１に記載の内燃機関の点火時期制御装置。
【請求項３】
前記基準値は１００％より大きな値に設定されていることを特徴とする請求項２に記載の内燃機関の点火時期制御装置。
【請求項４】
前記ノック限界点火時期算出手段は、
前記充填効率に応じて基本ノック限界点火時期を算出する基本ノック限界点火時期算出手段と、
前記機関回転数に応じて回転数補正値を算出する回転数補正値算出手段とを有し、
前記基本ノック限界点火時期を前記回転数補正値により補正することにより、前記ノック限界点火時期を算出することを特徴とする請求項１から３の何れか１項に記載の内燃機関の点火時期制御装置。
【請求項５】
前記機関は吸気弁の作動位相を連続的に変更する弁作動特性可変機構を備え、
前記ノック限界点火時期算出手段は、
前記充填効率に応じて基本ノック限界点火時期を算出する基本ノック限界点火時期算出手段と、
前記機関回転数に応じて回転数補正値を算出する回転数補正値算出手段と、
前記充填効率及び機関回転数に応じて傾き係数を算出する傾き係数算出手段と、
前記傾き係数に前記吸気弁の作動位相角を乗算することにより、作動位相角補正値を算出する作動位相角補正値算出手段とを有し、
前記基本ノック限界点火時期を前記回転数補正値及び作動位相角補正値により補正することにより、前記ノック限界点火時期を算出することを特徴とする請求項１から３の何れか１項に記載の内燃機関の点火時期制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、内燃機関の点火時期制御装置に関し、特に機関負荷を示すパラメータとして機関の充填効率を用いて点火時期を制御するものに関する。
【背景技術】
【０００２】
特許文献１には、機関負荷を示すパラメータとして機関の充填効率を用いて機関制御を行う制御装置が示されている。この装置では、機関回転数及び充填効率に応じてマップを検索することにより機関制御量、例えば基本点火時期が算出され、機関の過渡運転状態では基本点火時期を補正して点火時期制御が行われる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許第４０６８６８０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１に示された装置では、充填効率に応じた最適な点火時期特性の、機関毎のばらつきや経時変化が考慮されていないため、設計時に設定された基本点火時期マップを量産されるすべての機関に適用した場合に、実際の点火時期が制御対象となる機関の最適値からずれる可能性がある。また点火時期特性が経時変化した場合も同様の問題が発生する。
【０００５】
本発明はこの点に着目してなされたものであり、充填効率に応じた点火時期設定が、機関の特性ばらつきや経時変化によって最適値からずれた場合において、適切な点火時期の設定を行うことができる内燃機関の点火時期制御装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記目的を達成するため請求項１に記載の発明は、内燃機関の点火時期を制御する内燃機関の点火時期制御装置において、前記機関の吸入空気流量（ＧＡＩＲ）を検出する吸入空気流量検出手段と、前記機関の回転数（ＮＥ）を検出する回転数検出手段と、検出される吸入空気流量（ＧＡＩＲ）及び機関回転数（ＮＥ）に応じて前記機関の充填効率（ηｃ）を算出する充填効率算出手段と、前記機関回転数（ＮＥ）及び充填効率（ηｃ）に応じてノック限界点火時期（ＩＧＩＮＩ）を算出するノック限界点火時期算出手段と、前記機関のノッキングを検出するノッキング検出手段と、前記ノッキング検出手段による検出結果に応じて、ノック補正値（ＩＧＫＮＯＣＫ）を算出するノック補正値算出手段と、前記ノッキングが検出されたときの機関回転数（ＮＥＫ）及び前記ノック補正値（ＩＧＫＮＯＣＫ）に基づいて、第１及び第２学習パラメータ（ａ，ｂ）が設定された学習パラメータテーブルを更新する学習手段と、前記機関回転数（ＮＥ）に応じて前記学習パラメータテーブルを検索し、前記第１及び第２学習パラメータ（ａ，ｂ）を算出する学習パラメータ算出手段と、前記充填効率（ηｃ）並びに前記第１及び第２学習パラメータ（ａ，ｂ）を用いて、前記機関の複数気筒のそれぞれに対応する気筒別補正値（ＤＩＧＲＬＳ）を算出する気筒別補正値算出手段と、前記ノック限界点火時期（ＩＧＩＮＩ）及び気筒別補正値（ＤＩＧＲＬＳ）を用いて前記機関の点火時期（ＩＧＬＯＧ）を算出する点火時期算出手段とを備えることを特徴とする。
【０００７】
請求項２に記載の発明は、請求項１に記載の内燃機関の点火時期制御装置において、前記気筒別補正値算出手段は、前記第１及び第２学習パラメータ（ａ，ｂ）を含む一次式に前記充填効率の基準値（ηｃＲＥＦ）と前記充填効率（ηｃ）との差分（ηｃｘ）を適用して前記気筒別補正値（ＤＩＧＲＬＳ）を算出することを特徴とする。
【０００８】
請求項３に記載の発明は、請求項２に記載の内燃機関の点火時期制御装置において、前記基準値（ηｃＲＥＦ）は１００％より大きな値に設定されていることを特徴とする。
【０００９】
請求項４に記載の発明は、請求項１から３の何れか１項に記載の内燃機関の点火時期制御装置において、前記ノック限界点火時期算出手段は、前記充填効率（ηｃ）に応じて基本ノック限界点火時期（ＩＧＫＢＡＳＥ）を算出する基本ノック限界点火時期算出手段と、前記機関回転数（ＮＥ）に応じて回転数補正値（ＤＩＧＫＮＥ）を算出する回転数補正値算出手段とを有し、前記基本ノック限界点火時期（ＩＧＫＢＡＳＥ）を前記回転数補正値（ＤＩＧＫＮＥ）により補正することにより、前記ノック限界点火時期（ＩＧＩＮＩ）を算出することを特徴とする。
【００１０】
請求項５に記載の発明は、請求項１から３の何れか１項に記載の内燃機関の点火時期制御装置において、前記機関は吸気弁の作動位相を連続的に変更する弁作動特性可変機構（４２）を備え、前記ノック限界点火時期算出手段は、前記充填効率（ηｃ）に応じて基本ノック限界点火時期（ＩＧＫＢＡＳＥ）を算出する基本ノック限界点火時期算出手段と、前記機関回転数（ＮＥ）に応じて回転数補正値（ＤＩＧＫＮＥ）を算出する回転数補正値算出手段と、前記充填効率（ηｃ）及び機関回転数（ＮＥ）に応じて傾き係数（ＫＩＧＫＶＴＣ）を算出する傾き係数算出手段と、前記傾き係数（ＫＩＧＫＶＴＣ）に前記吸気弁の作動位相角（ＶＴＣ）を乗算することにより、作動位相角補正値（ＤＩＧＫＶＴＣ）を算出する作動位相角補正値算出手段とを有し、前記基本ノック限界点火時期（ＩＧＫＢＡＳＥ）を前記回転数補正値（ＤＩＧＫＮＥ）及び作動位相角補正値（ＤＩＧＫＶＴＣ）により補正することにより、前記ノック限界点火時期（ＩＧＩＮＩ）を算出することを特徴とする。
【発明の効果】
【００１１】
請求項１に記載の発明によれば、吸入空気流量及び機関回転数に応じて充填効率が算出され、機関回転数及び充填効率に応じてノック限界点火時期が算出されるとともに、機関のノッキングが検出され、その検出結果に応じて、ノック補正値が算出される。ノッキングが検出されたときの機関回転数及びノック補正値に基づいて、第１及び第２学習パラメータが設定された学習パラメータテーブルが更新される。機関回転数に応じて学習パラメータテーブルを検索することにより第１及び第２学習パラメータが算出され、充填効率並びに第１及び第２学習パラメータを用いて、機関の複数気筒のそれぞれに対応する気筒別補正値が算出され、ノック限界点火時期及び気筒別補正値を用いて機関の点火時期が算出される。したがって、第１及び第２学習パラメータが設定された学習パラメータテーブルがノッキングの発生状況に応じて更新され、ノック限界点火時期の気筒毎あるいは機関毎のばらつき、または経時変化が、第１及び第２学習パラメータに反映される。その結果、ノック限界点火時期のばらつきや経時変化に拘わらず、常にノッキングを抑制可能な適切な点火時期の設定を行うことができる。
【００１２】
請求項２に記載の発明によれば、第１及び第２学習パラメータを含む一次式に、充填効率の基準値と充填効率との差分を適用して気筒別補正値が算出される。機関回転数が同一であるという条件の元では、充填効率が低下するほど特性ばらつきや経時変化の影響が大きくなる傾向があり、それを補正するための気筒別補正値は、充填効率とその基準値との差分の一次式を用いて算出することができることが確認されている。そこで第１及び第２学習パラメータを、その一次式を定義する２つのパラメータ（係数及び加算項）として算出し、算出した第１及び第２学習パラメータを含む一次式を用いることにより、適切な気筒別補正値を得ることができる。
【００１３】
請求項３に記載の発明によれば、充填効率の基準値は１００％より大きな値に設定される。機関運転中に算出される充填効率は、１００％近くに達することがあり、基準値を１００％とすると、学習パラメータの学習開始当初において充填効率が大きな値をとると、学習パラメータの値が適正値から大きくずれる可能性がある。そこで、充填効率の基準値を１００％より大きな値に設定することにより、特に学習開始当初における学習パラメータ値を適正値に維持することが可能となる。
【００１４】
請求項４の発明によれば、充填効率に応じて基本ノック限界点火時期が算出され、機関回転数に応じて回転数補正値が算出され、基本ノック限界点火時期を回転数補正値で補正することにより、ノック限界点火時期が算出される。したがって、充填効率及び機関回転数に応じて設定されたマップを用いることなく、２つのテーブル（充填効率に応じて設定された基本ノック限界点火時期のテーブル、及び機関回転数に応じて設定された回転数補正値テーブル）によって、ノック限界点火時期を算出することができ、マップ設定の工数を低減できる。
【００１５】
請求項５の発明によれば、充填効率に応じて基本ノック限界点火時期が算出され、機関回転数に応じて回転数補正値が算出されるとともに、充填効率及び機関回転数に応じて傾き係数が算出される。その傾き係数に吸気弁の作動位相角を乗算することにより、作動位相角補正値が算出され、基本ノック限界点火時期を、回転数補正値及び作動位相角補正値で補正することにより、ノック限界点火時期が算出される。すなわち、２つのテーブルと１つのマップ（傾き係数マップ）を用いることにより、ノック限界点火時期を算出することが可能となるので、吸気弁の複数の作動位相に対応させて複数の基本ノック限界点火時期マップを設定することなく、制御精度を維持することができる。その結果、マップ設定のための工数を大幅に低減することができる。
【図面の簡単な説明】
【００１６】
【図１】本発明の一実施形態にかかる内燃機関及びその制御装置の構成を示す図である。
【図２】図１に示す弁作動特性可変装置の構成を示す図である。
【図３】吸気弁の作動特性を示す図である。
【図４】ノック限界点火時期（ＩＧＫＮＫ）と充填効率（ηｃ）との関係を説明するための図である。
【図５】吸気弁の作動位相角（ＶＴＣ）と、ノック限界点火時期（ＩＧＫＮＫ）及び最適点火時期（ＩＧＭＢＴ）との関係を示す図である。
【図６】点火時期（ＩＧＬＯＧ）を算出する処理のフローチャートである。
【図７】図６の処理で充填効率（ηｃ）を算出する処理のフローチャートである。
【図８】図６の処理で最適点火時期（ＩＧＭＢＴ）を算出する処理のフローチャートである。
【図９】図６の処理でノック限界点火時期（ＩＧＫＮＫ）を算出する処理のフローチャートである。
【図１０】図９の処理で参照されるテーブルを示す図である。
【図１１】図６の処理を説明するためのタイムチャートである。
【図１２】気筒別補正値（ＤＩＧＲＬＳ）を説明するための図である。
【図１３】点火時期（ＩＧＬＯＧ）が最適点火時期（ＩＧＭＢＴ）に設定される場合を説明するための図である。
【図１４】図９の処理で気筒別補正値（ＤＩＧＲＬＳ）を算出する処理のフローチャートである。
【図１５】所定回転数（ＮＥＬ，ＮＥＨ）における同定誤差（ｅＬ(k)，ｅＨ(k)）の算出手法を説明するための図である。
【図１６】学習パラメータ（ａＬ，ｂＬ，ａＨ，ｂＨ）を更新する学習処理のフローチャートである。
【発明を実施するための形態】
【００１７】
以下本発明の実施の形態を図面を参照して説明する。
図１は、本発明の一実施形態にかかる内燃機関とその制御装置の構成を示す図であり、図２は弁作動特性可変装置の構成を示す図である。図１において、例えば４気筒を有する内燃機関（以下単に「エンジン」という）１は、吸気弁及び排気弁と、これらを駆動するカムを備えるとともに、吸気弁を駆動するカムの、クランク軸回転角度を基準とした作動位相を連続的に変更するカム位相可変機構としての弁作動特性可変機構４２を有する弁作動特性可変装置４０を備えている。弁作動特性可変機構４２により吸気弁を駆動するカムの作動位相が変更され、吸気弁の作動位相が変更される。
【００１８】
エンジン１の吸気管２の途中にはスロットル弁３が配されている。また、スロットル弁３にはスロットル弁開度（ＴＨ）センサ４が連結されており、当該スロットル弁３の開度に応じた電気信号を出力して電子コントロールユニット（以下（ＥＣＵ）という）５に供給する。スロットル弁３には、スロットル弁３を駆動するアクチュエータ７が接続されており、アクチュエータ７は、ＥＣＵ５によりその作動が制御される。
【００１９】
吸気管２には、エンジン１の吸入空気流量ＧＡＩＲを検出する吸入空気流量センサ１３が設けられている。吸入空気流量センサ１３の検出信号は、ＥＣＵ５に供給される。
【００２０】
燃料噴射弁６はエンジン１とスロットル弁３との間かつ吸気管２の図示しない吸気弁の少し上流側に各気筒毎に設けられており、各噴射弁は図示しない燃料ポンプに接続されていると共にＥＣＵ５に電気的に接続されて当該ＥＣＵ５からの信号により燃料噴射弁６の開弁時間が制御される。
【００２１】
エンジン１の各気筒の点火プラグ１５は、ＥＣＵ５に接続されており、ＥＣＵ５は点火プラグ１５に点火信号を供給し、点火時期制御を行う。
スロットル弁３の下流には吸気圧ＰＢＡを検出する吸気圧センサ８及び吸気温ＴＡを検出する吸気温センサ９が取付けられている。またエンジン１の本体には、エンジン冷却水温ＴＷを検出するエンジン冷却水温センサ１０が取り付けられている。これらのセンサの検出信号は、ＥＣＵ５に供給される。
【００２２】
ＥＣＵ５には、エンジン１のクランク軸（図示せず）の回転角度を検出するクランク角度位置センサ１１及び、エンジン１の吸気弁を駆動するカムが固定されたカム軸の回転角度を検出するカム角度位置センサ１２が接続されており、クランク軸の回転角度及びカム軸の回転角度に応じた信号がＥＣＵ５に供給される。クランク角度位置センサ１１は、一定クランク角周期毎（例えば３０度周期）に１パルス（以下「ＣＲＫパルス」という）と、クランク軸の所定角度位置を特定するパルスを発生する。また、カム角度位置センサ１２は、エンジン１の特定の気筒の所定クランク角度位置でパルス（以下「ＣＹＬパルス」という）と、各気筒の吸入行程開始時の上死点（ＴＤＣ）でパルス（以下「ＴＤＣパルス」という）を発生する。これらのパルスは、燃料噴射時期、点火時期等の各種タイミング制御及びエンジン回転数（エンジン回転速度）ＮＥの検出に使用される。なお、カム角度位置センサ１２より出力されるＴＤＣパルスと、クランク角度位置センサ１１より出力されるＣＲＫパルスとの相対関係からカム軸の実際の作動位相ＣＡＩＮが検出される。
【００２３】
エンジン１ の適宜の位置に、高周波振動を検出するノックセンサ１４が装着されており、その検出信号がＥＣＵ５に供給される。またＥＣＵ５には、エンジン１によって駆動される車両のアクセルペダルの踏み込み量（以下「アクセルペダル操作量」という）ＡＰを検出するアクセルセンサ３１、当該車両の走行速度（車速）ＶＰを検出する車速センサ３２、及び大気圧ＰＡを検出する大気圧センサ３３が接続されている。これらのセンサの検出信号は、ＥＣＵ５に供給される。
【００２４】
弁作動特性可変装置４０は、図２に示すように、吸気弁の作動位相を連続的に変更する弁作動特性可変機構４２と、吸気弁の作動位相を連続的に変更するために、その開度が連続的に変更可能な電磁弁４４とを備えている。吸気弁の作動位相を示すパラメータとして、上記カム軸の作動位相ＣＡＩＮから算出される弁作動位相角ＶＴＣが用いられる。電磁弁４４には、オイルパン４６の潤滑油がオイルポンプ４５により、加圧されて供給される。なお、弁作動特性可変機構４２の具体的な構成は、例えば特開２０００−２２７０１３号公報に示されている。
【００２５】
弁作動特性可変機構４２により、吸気弁は、図３に実線Ｌ２で示す特性を中心として、カムの作動位相ＣＡＩＮの変化に伴って破線Ｌ１で示す最進角位相から、一点鎖線Ｌ３で示す最遅角位相までの間の位相で駆動される。本実施形態では、弁作動位相角ＶＴＣは、最遅角位相を基準とした進角量として定義される。
【００２６】
ＥＣＵ５は各種センサからの入力信号波形を整形し、電圧レベルを所定レベルに修正し、アナログ信号値をデジタル信号値に変換する等の機能を有する入力回路、中央演算処理ユニット（以下「ＣＰＵ」という）、ＣＰＵで実行される演算プログラム及び演算結果等を記憶する記憶回路のほか、アクチュエータ７、燃料噴射弁６、電磁弁４４に駆動信号を供給する出力回路等から構成される。
【００２７】
ＥＣＵ５のＣＰＵは、上記センサの検出信号に応じて、点火時期制御、スロットル弁３の開度制御、エンジン１に供給する燃料量（燃料噴射弁６の開弁時間）の制御、並びに電磁弁４４による弁作動特性の制御を行う。
【００２８】
図４は本実施形態におけるノック限界点火時期ＩＧＫＮＫの算出手法を説明するための図である。ノック限界点火時期ＩＧＫＮＫは、ノッキングが発生する可能性が高くなる点火時期範囲の最小値（最遅角値）に対応する点火時期であり、点火時期ＩＧＬＯＧは、ノック限界点火時期ＩＧＫＮＫ以下の値、すなわちノック限界点火時期ＩＧＫＮＫと同一またはより遅角側の値に設定される。
【００２９】
従来は、図４（ａ）に示すようにエンジン回転数ＮＥ及び吸気圧ＰＢＡに応じて設定されたノック限界点火時期マップを用いてノック限界点火時期ＩＧＫＮＫを算出する手法が採用されていた。図４（ａ）において、太い実線Ｌ１１，一点鎖線Ｌ１２，破線Ｌ１３，実線Ｌ１４，細い一点鎖線Ｌ１５，細い破線Ｌ１６，及び細い実線Ｌ１７は、それぞれエンジン回転数ＮＥが１０００，１５００，２０００，３０００，４０００，５０００，及び６５００ｒｐｍに対応している（実際には５００ｒｐｍ間隔で設定されているが、グラフの表示が煩雑となるため省略している）。図４（ａ）に示すマップを用いる手法では、吸気弁の作動位相を連続的に変化させるエンジンでは、代表的な作動位相のそれぞれについてノック限界点火時期マップを設定しなければならない。
【００３０】
図４（ｂ）は、図４（ａ）に示すマップを、エンジン回転数ＮＥ及び充填効率ηｃに応じたマップに変換したものである（図４（ａ）で省略したエンジン回転数ＮＥに対応するラインも含まれている）。各ラインの変化特性は類似しているため、すべてのラインをηｃ：７０％，ＩＧ：２０度の点を通過するように上下方向に移動させると、図４（ｃ）が得られる。図４（ｃ）から、ノック限界点火時期が比較的小さくなる充填効率５０％以上の領域では、１つのラインで示される特性を適用可能であることが判る。
【００３１】
そこで本実施形態では、図４（ｃ）に示すノック限界点火時期が基本ノック限界点火時期ＩＧＫＢＡＳＥとして、充填効率ηｃに応じて設定されたＩＧＫＢＡＳＥテーブルと、エンジン回転数ＮＥに応じて回転数補正値ＤＩＧＫＮＥが設定されたＤＩＧＫＮＥテーブルとを設け、充填効率ηｃに応じて基本ノック限界点火時期ＩＧＫＢＡＳＥを算出するとともに、エンジン回転数ＮＥに応じて回転数補正値ＤＩＧＫＮＥを算出し、基本ノック限界点火時期ＩＧＫＢＡＳＥに回転数補正値ＤＩＧＫＮＥを加算することにより、ノック限界点火時期を算出するようにしている。
【００３２】
図５（ａ）〜図５（ｃ）は、弁作動位相角ＶＴＣと、ノック限界点火時期ＩＧＫＮＫとの関係を示す図であり、それぞれエンジン回転数ＮＥが１５００，３０００，及び５０００ｒｐｍに対応する。これらの図に示された直線のうち中間の太さの実線、破線、及び一点鎖線は、ぞれぞれ充填効率ηｃが６０％，７０％，及び８０％である状態に対応する。図５（ａ）の太い実線は充填効率ηｃが４５％の状態に対応し、図５（ｂ）（ｃ）の太い実線は充填効率ηｃが５０％の状態に対応する。
【００３３】
これらの図から明らかなように、エンジン回転数ＮＥ及び充填効率ηｃが一定であれば、弁作動位相角ＶＴＣと、ノック限界点火時期ＩＧＫＮＫとの関係は、直線で示される。すなわち、弁作動位相角ＶＴＣと、ノック限界点火時期ＩＧＫＮＫとの関係は、充填効率ηｃ及びエンジン回転数ＮＥが同一であれば、直線で近似できる。そこで本実施形態では、弁作動位相角ＶＴＣを下記式（１）に適用し、作動位相角補正値ＤＩＧＫＶＴＣを算出し、これを用いて基本ノック限界点火時期ＩＧＫＢＡＳＥを補正するようにしている。
【００３４】
ＤＩＧＫＶＴＣ＝ＶＴＣ×ＫＩＧＫＶＴＣ            （１）
ここで、ＫＩＧＫＶＴＣは、充填効率ηｃ及びエンジン回転数ＮＥに応じた傾き係数マップ（ＫＩＧＫＶＴＣマップ）を検索することにより算出される傾き係数である。
【００３５】
上述した算出手法を採用することにより、２つのテーブルと１つのマップを用いて、エンジン回転数ＮＥ、充填効率ηｃ、及び弁作動位相角ＶＴＣの変化に対応して常に最適なノック限界点火時期ＩＧＫＮＫを得ることができる。すなわち、複数の弁作動位相角に対応した複数のマップ（エンジン回転数ＮＥ及び充填効率ηｃに応じて設定された）を設ける必要がなく、マップ設定工数を大幅に低減できる。
【００３６】
また図５（ｄ）〜図５（ｆ）は、弁作動位相角ＶＴＣと、最適点火時期ＩＧＭＢＴ（エンジン出力トルクが最大となる点火時期）との関係を示す図であり、それぞれエンジン回転数ＮＥが１５００，３０００，及び５０００ｒｐｍに対応する。これらの図に示された直線のうち通常の太さの実線、破線、及び一点鎖線は、ぞれぞれ充填効率ηｃが６０％，７０％，及び８０％である状態に対応する。また太い実線は充填効率ηｃが４５％の状態に対応し、細い実線は充填効率ηｃが３０％の状態に対応する。
【００３７】
これらの図から明らかなように、エンジン回転数ＮＥ及び充填効率ηｃが一定であれば、弁作動位相角ＶＴＣと、最適点火時期ＩＧＭＢＴとの関係は、直線で示される。すなわち、弁作動位相角ＶＴＣと、最適点火時期ＩＧＭＢＴとの関係は、充填効率ηｃ及びエンジン回転数ＮＥが同一であれば、直線で近似できる。そこで本実施形態では、弁作動位相角ＶＴＣを下記式（２）に適用して作動位相角補正値ＤＩＧＭＶＴＣを算出するとともに、エンジン回転数ＮＥ及び充填効率ηｃに応じて基本最適限界点火時期ＩＧＭＢＴＢを算出し、基本最適限界点火時期ＩＧＭＢＴＢを作動位相角補正値ＤＩＧＭＶＴＣで補正するようにしている。
【００３８】
ＤＩＧＭＶＴＣ＝ＶＴＣ×ＫＩＧＭＶＴＣ            （２）
ここで、ＫＩＧＭＶＴＣは、充填効率ηｃ及びエンジン回転数ＮＥに応じた傾き係数マップ（ＫＩＧＭＶＴＣマップ）を検索することにより算出される傾き係数である。
【００３９】
上述した算出手法を適用することにより、エンジン回転数ＮＥ及び充填効率ηｃに応じて最適点火時期ＩＧＭＢＴが設定されたマップを、複数の弁作動位相角ＶＴＣに対応して複数設ける必要が無くなり、マップ設定工数を低減することができる。
【００４０】
図６は、圧縮上死点からの進角量で示される点火時期ＩＧＬＯＧを算出する処理のフローチャートである。この処理は、ＥＣＵ５のＣＰＵでＴＤＣパルスに同期して実行される。
【００４１】
ステップＳ１１では、図７に示すηｃ算出処理を実行し、充填効率ηｃを算出する。ステップＳ１２では、図８に示すＩＧＭＢＴ算出処理を実行し、最適点火時期ＩＧＭＢＴを算出する。
【００４２】
ステップＳ１３では、図９に示すＩＧＫＮＫ算出処理を実行し、ノック限界点火時期ＩＧＫＮＫを算出する。ステップＳ１４では、図示しないノッキング検出処理における検出結果に応じて、ノック補正値ＩＧＫＮＯＣＫ（遅角方向を正の値とする遅角補正値）を算出する。具体的には、ノック補正値ＩＧＫＮＯＣＫは、ノックセンサ１４の出力に基づいてノッキングが検出されると所定増加量ＤＩＧＡＤＤだけ増量され、ノッキングが検出されない期間中は徐々に減量される。ノッキングの検出手法及びノック補正値ＩＧＫＮＯＣＫの算出手法は例えば特開２００４−３５３４７３号公報に示されるように公知の手法が採用される。
【００４３】
ステップＳ１５では、環境補正値ＩＧＫＡＮ（遅角方向を正の値とする遅角補正値）を算出する。具体的には、吸気温ＴＡに応じて算出される吸気温補正値ＩＧＴＡと、エンジン冷却水温ＴＷに応じて算出される冷却水温補正値ＩＧＴＷと、大気圧ＰＡに応じて算出される大気圧補正値ＩＧＰＡを加算することにより、環境補正値ＩＧＫＡＮが算出される。
【００４４】
ステップＳ１６では、下記式（３）にノック限界点火時期ＩＧＫＮＫ、ノック補正値ＩＧＫＮＯＣＫ、及び環境補正値ＩＧＫＡＮを適用し、補正ノック限界点火時期ＩＧＫＮＫＭを算出する。
ＩＧＫＮＫＭ＝ＩＧＫＮＫ−ＩＧＫＮＯＣＫ−ＩＧＫＡＮ        （３）
【００４５】
ステップＳ１７では、ステップＳ１２で算出された最適点火時期ＩＧＭＢＴが補正ノック限界点火時期ＩＧＫＮＫＭより小さいか否かを判別する。この答が肯定（ＹＥＳ）であるときは、点火時期ＩＧＬＯＧを最適点火時期ＩＧＭＢＴに設定する（ステップＳ１９）。一方。ステップＳ１７の答が否定（ＮＯ）、すなわちＩＧＭＢＴ≧ＩＧＫＮＫＭであるときは、点火時期ＩＧＬＯＧを補正ノック限界点火時期ＩＧＫＮＫＭに設定する（ステップＳ１８）。
【００４６】
図７は、図６のステップＳ１１で実行されるηｃ算出処理のフローチャートである。
ステップＳ２１では、検出される吸入空気流量ＧＡＩＲ［ｇ／ｓｅｃ］を下記式（４）に適用し、１つの気筒の１吸気行程における吸入空気量ＧＡＩＲＣＹＬを算出する。式（４）のＫＣは、所定の変換係数である。
ＧＡＩＲＣＹＬ＝ＧＡＩＲ×ＫＣ／ＮＥ                        （４）
【００４７】
ステップＳ２２では、下記式（５）に吸入空気量ＧＡＩＲＣＹＬを適用し、充填効率ηｃを算出する。式（５）のＧＡＩＲＢＡＳＥは標準大気状態（例えば、気圧１０１，３ｋＰａ，温度２０℃、湿度６０％）においてピストンが下死点にあるときに気筒容積を満たす空気量であり、予め算出されている。
ηｃ＝（ＧＡＩＲＣＹＬ／ＧＡＩＲＢＡＳＥ）×１００          （５）
【００４８】
図８は、図６のステップＳ１２で実行されるＩＧＭＢＴ算出処理のフローチャートである。
【００４９】
ステップＳ２５では、エンジン回転数ＮＥ及び充填効率ηｃに応じてＩＧＭＢＴＢマップを検索し、基本最適点火時期ＩＧＭＢＴＢを算出する。ＩＧＭＢＴＢマップは、充填効率ηｃが増加するほど基本最適点火時期ＩＧＭＢＴＢが減少するように設定され、またエンジン回転数ＮＥが比較的低い領域では、エンジン回転数ＮＥが増加するほど基本最適点火時期ＩＧＭＢＴＢが増加するように設定されている。
【００５０】
ステップＳ２６では、エンジン回転数ＮＥ及び充填効率ηｃに応じて上述したＫＩＧＭＶＴＣマップを検索し、第１傾き係数ＫＩＧＭＶＴＣを算出する。
ステップＳ２７では、前記式（２）により第１作動位相角補正値ＤＩＧＭＶＴＣを算出し、ステップＳ２８では、下記式（６）に基本最適点火時期ＩＧＭＢＴＢ及び第１作動位相角補正値ＤＩＧＭＶＴＣを適用し、最適点火時期ＩＧＭＢＴを算出する。
ＩＧＭＢＴ＝ＩＧＭＢＴＢ＋ＤＩＧＭＶＴＣ                    （６）
【００５１】
図９は、図６のＳステップＳ１３で実行されるＩＧＫＮＫ算出処理のフローチャートである。
【００５２】
ステップＳ３１では、充填効率ηｃに応じて図１０（ａ）に示すＩＧＫＢＡＳＥテーブルを検索し、基本ノック限界点火時期ＩＧＫＢＡＳＥを算出する。ＩＧＫＢＡＳＥテーブルは、充填効率ηｃが増加するほど、基本ノック限界点火時期ＩＧＫＢＡＳＥが減少するように設定されている。
【００５３】
ステップＳ３２では、エンジン回転数ＮＥに応じて図１０（ｂ）に示すＤＩＧＫＮＥテーブルを検索し、回転数補正値ＤＩＧＫＮＥを算出する。ＤＩＧＫＮＥテーブルは、エンジン回転数ＮＥが所定回転数ＮＥＸ（例えば３０００ｒｐｍ）より低い低回転領域では、エンジン回転数ＮＥが増加するほど回転数補正値ＤＩＧＫＮＥが増加するように設定されている。
【００５４】
ステップＳ３３では、エンジン回転数ＮＥ及び充填効率ηｃに応じて上述したＫＩＧＫＶＴＣマップを検索し、第２傾き係数ＫＩＧＫＶＴＣを算出する。ステップＳ３４では、前記記式（１）に弁作動位相角ＶＴＣ及び第２傾き係数ＫＩＧＫＶＴＣを適用し、第２作動位相角補正値ＤＩＧＫＶＴＣを算出する。
【００５５】
ステップＳ３５では、図１４に示すＤＩＧＲＬＳ算出処理を実行し、気筒別補正値ＤＩＧＲＬＳを算出する。気筒別補正値ＤＩＧＲＬＳは、気筒毎に算出されるパラメータであり、必要に応じて「ＤＩＧＲＬＳ（Ｎ）」と記載する。「Ｎ」は気筒番号であり、例えば４気筒エンジンでは、１〜４の値をとる。気筒別補正値ＤＩＧＲＬＳは、遅角方向の正の値とする遅角補正値である。ただし、例えばレギュラーガソリン用のエンジンにハイオクガソリンが使用された場合には、ノッキングが発生し難くく、ノック補正値ＩＧＫＮＯＣＫが負の値をとることがあるため、気筒別補正値ＤＩＧＲＬＳも負の値をとる場合がある。
【００５６】
ステップＳ３６では、下記式（７）に、基本ノック限界点火時期ＩＧＫＢＡＳＥ、回転数補正値ＤＩＧＫＮＥ、及び第２作動位相角補正値ＤＩＧＫＶＴＣを適用し、ノック限界点火時期ＩＧＫＮＫを算出する。
ＩＧＫＮＫ＝ＩＧＫＢＡＳＥ＋ＤＩＧＫＮＥ＋ＤＩＧＫＶＴＣ
−ＤＩＧＲＬＳ（Ｎ）    （７）
【００５７】
図１１は、ノック限界点火時期ＩＧＫＮＫ及び関連するパラメータの推移を示すタイムチャートであり、時刻ｔ１，ｔ２，ｔ３においてノッキングが検出された場合が示されている。図１１の実線Ｌ２２がノック限界点火時期ＩＧＫＮＫに対応し、破線Ｌ２１は初期ノック限界点火時期ＩＧＩＮＩ、すなわちノック限界点火時期ＩＧＫＮＫに気筒別補正値ＤＩＧＲＬＳを加算したパラメータ（換言すれば、気筒別補正値ＤＩＧＲＬＳが「０」である場合のノック限界点火時期ＩＧＫＮＫ）に対応する。実際にはエンジン運転状態の変化に伴って初期ノック限界点火時期ＩＧＩＮＩも変化するが、図１１では説明のために一定である状態が示されている。また破線Ｌ２３は、ノック限界点火時期ＩＧＫＮＫをノック補正値ＩＧＫＮＯＣＫにより補正した点火時期を示す。
【００５８】
ノック補正値ＩＧＫＮＯＣＫは、上述したようにノッキングが検出されると（ｔ１〜ｔ３）増量され、その後漸減される。また気筒別補正値ＤＩＧＲＬＳは、ノック補正値ＩＧＫＮＯＣＫの学習値として算出されるパラメータであり、ノッキングが検出されると、気筒別補正値ＤＩＧＲＬＳの算出に適用される第１及び第２学習パラメータａ，ｂが、ノック補正値ＩＧＫＮＯＣＫに応じて更新される。
【００５９】
以下気筒別補正値ＤＩＧＲＬＳについて詳細に説明する。
初期ノック限界点火時期ＩＧＩＮＩ及びノック限界点火時期ＩＧＫＮＫと、充填効率ηｃとの関係は例えば図１２（ａ）の実線Ｌ３１及び破線Ｌ３２で示される（エンジン回転数ＮＥは一定とする）。すなわち、この図において初期ノック限界点火時期ＩＧＩＮＩとノック限界点火時期ＩＧＫＮＫとの差が気筒別補正値ＤＩＧＲＬＳに対応し、例えば経時変化によって気筒別補正値ＤＩＧＲＬＳがある程度増加した状態が示されている。
【００６０】
図１２（ａ）に示される関係から気筒別補正値ＤＩＧＲＬＳと、充填効率ηｃとの関係は、図１２（ｂ）で示されるように直線Ｌ３３で近似できることが実験により確認されている。本実施形態では、下記式（８）により充填効率パラメータηｃｘを定義し、充填効率パラメータηｃｘを横軸とした図１２（ｃ）に示す直線Ｌ３４を下記式（９）で表し、式（９）の係数ａ及び加算項ｂを、それぞれ第１及び第２学習パラメータとして、逐次型最小二乗法により同定するようにしている。
ηｃｘ＝ηｃＲＥＦ−ηｃ                      （８）
ＤＩＧＲＬＳ＝ａ×ηｃｘ＋ｂ                  （９）
【００６１】
次に第１及び第２学習パラメータａ，ｂの同定手法を説明する。先ず第１及び第２学習パラメータａ，ｂを下記式（１０）で定義される学習パラメータベクトルＡＢ(k)で表示し、変数ベクトルｕ(k)を下記式（１１）で定義すると、学習パラメータベクトルＡＢ(k)は、下記式（１２）により算出される。下記式に含まれるインデクスパラメータｋは、ノッキングの発生が検出される毎に「１」だけインクリメントされるパラメータである。
【数１】
2010185326.tif 000003
【００６２】
式（１２）のｅ(k)は同定誤差であり、点火時期ＩＧＬＯＧとして修正ノック限界点火時期ＩＧＫＮＫＭが適用されるとき（図６、ステップＳ１７の答が否定（ＮＯ）であるとき）は、下記式（１３）で示すように、ノック補正値ＩＧＫＮＯＣＫに設定される。また点火時期ＩＧＬＯＧとして最適点火時期ＩＧＭＢＴが適用されるとき（図６、ステップＳ１７の答が肯定（ＹＥＳ）であるとき）は、下記式（１４）により算出される（図１６ステップＳ５１〜Ｓ５３参照）。
ｅ(k)＝ＩＧＫＮＯＣＫ                                （１３）
ｅ(k)＝ＩＧＫＮＯＣＫ＋ＩＧＫＮＫＭ−ＩＧＭＢＴ      （１４）
【００６３】
最適点火時期ＩＧＭＢＴが適用されるときは、図１３に示すように最適点火時期ＩＧＭＢＴが修正ノック限界点火時期ＩＧＫＮＫＭより遅角側にある。その状態でノッキングが発生した場合には、同定誤差ｅ(k)はノック補正値ＩＧＫＮＯＣＫに、最適点火時期ＩＧＭＢＴと修正ノック限界点火時期ＩＧＫＮＫＭの差分ＤＩＧＫＭ（＝ＩＧＫＮＫＭ−ＩＧＭＢＴ）を加算したものとする必要があるからである。なお、同定誤差ｅ(k)に適用されるノック補正値ＩＧＫＮＯＣＫは、ノッキングの発生に対応して増量更新される前の値である。
【００６４】
また式（１２）に含まれるＰ(k)は、下記式（１５）に示す２行２列の学習行列であり、下記式（１６）により算出される。式（１６）の「λ」は、学習パラメータａ，ｂの過去値の重みを決める重みパラメータであり、通常は「０．９７〜０．９９５」程度の値に設定される。
【数２】
2010185326.tif 000004
【００６５】
上述した学習パラメータａ，ｂ及び学習行列Ｐ(k)は、エンジン回転数ＮＥに依存して変化するため、複数の所定回転数ＮＥ１〜ＮＥｍ（ｍは例えば２０程度に設定される）に対応して、気筒毎に算出され、不揮発性メモリに格納される。学習パラメータａ，ｂが所定回転数ＮＥ１〜ＮＥｍに対応して格納されているテーブルを以下「学習パラメータテーブル」という。
【００６６】
なお、学習パラメータａ，ｂ及び学習行列Ｐ(k)の要素の初期値は、所定値に設定する。ただし、学習行列Ｐ(k)の要素Ｐ４の初期値Ｐ４ＩＮＩは、要素Ｐ１の初期値Ｐ１ＩＮＩ以上の値に設定し（Ｐ４ＩＮＩ≧Ｐ１ＩＮＩ）、逐次同定演算開始当初における第２学習パラメータｂの更新速度を、第１学習パラメータａの更新速度より速くすることが望ましい。これにより、逐次同定演算開始当初において第１学習パラメータａの更新量が過大となり、気筒別補正値ＤＩＧＲＬＳが不適切な値に設定されることを防止できる。
【００６７】
図１４は、図９のステップＳ３５で実行されるＤＩＧＲＬＳ算出処理のフローチャートである。
ステップＳ４１では、エンジン回転数ＮＥ以下でかつエンジン回転数ＮＥに最も近い下側回転数ＮＥＬと、エンジン回転数ＮＥより高くかつエンジン回転数ＮＥに最も近い上側回転数ＮＥＨ（ＮＥＬ≦ＮＥ≦ＮＥＨ）とを選択し、選択した下側回転数ＮＥＬ及び上側回転数ＮＥＨに対応する学習パラメータａＬ，ｂＬ及びａＨ，ｂＨを学習パラメータテーブル（今回の制御対象気筒に対応するもの）から読み出す。
【００６８】
ステップＳ４２では、前記式（８）により、充填効率パラメータηｃｘを算出する。ステップＳ４３では、充填効率パラメータηｃｘと、ステップＳ４１で読み出した学習パラメータとを下記式（２１）、（２２）に適用し、下側補正値ＤＩＧＲＬＳＬ及び上側補正値ＤＩＧＲＬＳＨを算出する。
ＤＩＧＲＬＳＬ＝ａＬ×ηｃｘ＋ｂＬ            （２１）
ＤＩＧＲＬＳＨ＝ａＨ×ηｃｘ＋ｂＨ            （２２）
【００６９】
ステップＳ４４では、下記式（２３）による補間演算により、気筒別補正値ＤＩＧＲＬＳ（Ｎ）を算出する。
【数３】
2010185326.tif 000005
【００７０】
次に図１５を参照して学習パラメータテーブルの更新方法を説明する。学習パラメータテーブルの更新は、ノッキングが検出されたときに実行されるので、ノッキングが検出されたときのエンジン回転数ＮＥを、以下「ノッキング回転数ＮＥＫ」という。ノッキング回転数ＮＥＫにおける同定誤差ｅ(k)がそのとき適用されたノック補正値ＩＧＫＮＯＣＫ（または（ＩＧＫＮＫＭ−ＩＧＭＢＴ）を加算したもの）であるため、同定誤差ｅ(k)に応じて下側回転数ＮＥＬ及び上側回転数ＮＥＨにおける下側同定誤差ｅＬ(k)及び上側同定誤差ｅＨ(k)を算出する必要がある。この算出手法には図１５（ａ）〜図１５（ｃ）に示す３通りの手法がある。
【００７１】
図１５（ａ）に示す第１の手法は、下記式（２３）、（２４）で示されるように、ノッキング回転数ＮＥＫにおける同定誤差ｅ(k)をそのまま使用するものである。
ｅＬ(k)＝ｅ(k)                                            （２３）
ｅＨ(k)＝ｅ(k)                                            （２４）
【００７２】
図１５（ｂ）に示す第２の手法は、下記式（２５）、（２６）により算出するものである。すなわち、ノッキング回転数ＮＥＫと下側回転数ＮＥＬとの差分ＤＮＥＬ（＝ＮＥＫ−ＮＥＬ）、及びノッキング回転数ＮＥＫと上側回転数ＮＥＨとの差分ＤＮＥＨ（＝ＮＥＨ−ＮＥＫ）を算出し、差分ＤＮＥＬ，ＤＮＥＨ（以下「下側差分ＤＮＥＬ」，「上下側差分ＤＮＥＨ」という）に応じて比例配分する手法である。
ｅＬ(k)＝ＤＮＥＨ×ｅ(k)／（ＮＥＨ−ＮＥＬ）              （２５）
ｅＨ(k)＝ＤＮＥＬ×ｅ(k)／（ＮＥＨ−ＮＥＬ）              （２６）
【００７３】
図１５（ｃ）に示す第３の手法は、下側差分ＤＮＥＬと上側差分ＤＮＥＨの大小関係に応じて、下記式（２７）、（２８）または（２９）、（３０）により算出するものである。式（２８）、（２９）の「ＰＲＬＳ」は、実験的に定めらる所定係数である。
【００７４】
１）ＤＮＥＨ＞ＤＮＥＬであるとき
ｅＬ(k)＝ｅ(k)                                            （２７）
ｅＨ(k)＝ＰＲＬＳ×ＤＮＥＬ×ｅ(k)／（ＮＥＨ−ＮＥＬ）    （２８）
２）ＤＮＥＨ≦ＤＮＥＬであるとき
ｅＬ(k)＝ＰＲＬＳ×ＤＮＥＨ×ｅ(k)／（ＮＥＨ−ＮＥＬ）    （２９）
ｅＨ(k)＝ｅ(k)                                            （３０）
【００７５】
所定回転数ＮＥ１〜ＮＥｍの設定間隔ＤＮＥＤＶが一定である場合には、上記第２の手法を使用し、設定間隔ＤＮＥＤＶが一定でなく、かつ２００ｒｐｍ以下の場合には、第１の手法を使用し、設定間隔ＤＮＥＤＶが一定でなく、かつ２００ｒｐｍより広い場合には、第３の手法を使用することが望ましい。
【００７６】
図１６は、上述した学習パラメータテーブルを更新する学習処理のフローチャートである。この処理は、ノッキングが検出された直後に実行される。
ステップＳ５１では、最適点火時期ＩＧＭＢＴが補正ノック限界点火時期ＩＧＫＮＫＭより小さいか否かを判別し、その答が否定（ＮＯ）であるときは、同定誤差ｅ(k)をノック補正値ＩＧＫＮＯＣＫに設定する（ステップＳ５２）。一方ＩＧＭＢＴ＜ＩＧＫＮＫＭであるときは、前記式（１４）により同定誤差ｅ(k)を算出する（ステップＳ５３）。
【００７７】
ステップＳ５４では、エンジン回転数ＮＥに応じて下側回転数ＮＥＬ及び上側回転数ＮＥＨを決定し、ステップＳ５５では、上述した３つ算出手法に何れかを適用して下側同定誤差ｅＬ(k)及び上側同定誤差ｅＨ(k)を算出する。
【００７８】
ステップＳ５６では、下側同定誤差ｅＬ(k)を式（１２）のｅ(k)に適用し、下側周波数ＮＥＬに対応する学習パラメータベクトルＡＢＬ(k)、すなわち第１及び第２学習パラメータａＬ，ｂＬを更新する。このとき同時に対応する学習行列Ｐ(k)の更新も行う（式（１６））。
【００７９】
ステップＳ５７では、上側同定誤差ｅＨ(k)を式（１２）のｅ(k)に適用し、上側周波数ＮＥＨに対応する学習パラメータベクトルＡＢＨ(k)、すなわち第１及び第２学習パラメータａＨ，ｂＨを更新する。このとき同時に対応する学習行列Ｐ(k)の更新も行う（式（１６））。
【００８０】
以上のようにしてノッキングが発生した気筒に対応する学習パラメータテーブルが更新される。
【００８１】
本実施形態によれば、吸入空気流量ＧＡＩＲ及びエンジン回転数ＮＥに応じて充填効率ηｃが算出され、エンジン回転数ＮＥ及び充填効率ηｃに応じて初期ノック限界点火時期ＩＧＩＮＩ（＝ＩＧＫＢＡＳＥ＋ＤＩＧＫＮＥ＋ＤＩＧＫＶＴＣ）が算出されるとともに、エンジン１のノッキングが検出され、その検出結果に応じて、ノック補正値ＩＧＫＮＯＣＫが算出される。ノッキングが検出されたときのエンジン回転数ＮＥ及びノック補正値ＩＧＫＮＯＣＫに基づいて、第１及び第２学習パラメータａ，ｂが設定された学習パラメータテーブルが更新される。エンジン回転数ＮＥに応じて学習パラメータテーブルを検索することにより第１及び第２学習パラメータａ，ｂが算出され、充填効率ηｃ並びに第１及び第２学習パラメータａ，ｂを用いて、エンジン１の複数気筒のそれぞれに対応する気筒別補正値ＤＩＧＲＬＳ（Ｎ）が算出され、初期ノック限界点火時期ＩＧＩＮＩ及び気筒別補正値ＤＩＧＲＬＳ（Ｎ）を用いて点火時期ＩＧＬＯＧが算出される。したがって、第１及び第２学習パラメータａ，ｂが設定された学習パラメータテーブルがノッキングの発生状況に応じて更新され、ノック限界点火時期ＩＧＫＮＫの気筒毎あるいはエンジン毎のばらづき、または経時変化が、第１及び第２学習パラメータａ，ｂに反映される。その結果、ノック限界点火時期ＩＧＫＮＫのばらつきや経時変化に拘わらず、常にノッキングを抑制可能な適切な点火時期ＩＧＬＯＧの設定を行うことができる。
【００８２】
また第１及び第２学習パラメータａ，ｂを含む一次式である式（９）に、充填効率ηｃの基準値ηｃＲＥＦと充填効率ηｃとの差分である充填効率パラメータηｃｘを適用して気筒別補正値ＤＩＧＲＬＳが算出される。エンジン回転数ＮＥが同一であるという条件の元では、充填効率ηｃが低下するほど特性ばらつきや経時変化の影響が大きくなる傾向があり、それを補正するための気筒別補正値ＤＩＧＲＬＳは、充填効率パラメータηｃｘの一次式（９）を用いて算出することができることが確認されている。そこで第１及び第２学習パラメータａ，ｂを、その式（９）を定義する係数及び加算項として算出し、算出した第１及び第２学習パラメータａ，ｂを含む一次式（９）を用いることにより、適切な気筒別補正値ＤＩＧＲＬＳを得ることができる。
【００８３】
また充填効率ηｃの基準値ηｃＲＥＦは１００％より大きな値（例えば１１０％）に設定される。エンジン運転中に算出される充填効率ηｃは、１００％近くに達することがあり、基準値ηｃＲＥＦを１００％とすると、学習パラメータａ，ｂの学習開始当初において充填効率ηｃが大きな値をとると、学習パラメータａ，ｂの値が適正値から大きくずれる可能性がある。そこで、充填効率の基準値ηｃＲＥＦを１００％より大きな値に設定することにより、特に学習開始当初における学習パラメータ値を適正値に維持することが可能となる。
【００８４】
また充填効率ηｃに応じて基本ノック限界点火時期ＩＧＫＢＡＳＥが算出され、エンジン回転数ＮＥに応じて回転数補正値ＤＩＧＫＮＥが算出されるとともに、充填効率ηｃ及びエンジン回転数ＮＥに応じて傾き係数ＫＩＧＫＶＴＣが算出される。そして傾き係数ＫＩＧＫＶＴＣに吸気弁の作動位相角ＶＴＣを乗算することにより、作動位相角補正値ＤＩＧＫＶＴＣが算出され、基本ノック限界点火時期ＩＧＫＢＡＳＥを、回転数補正値ＤＩＧＫＮＥ及び作動位相角補正値ＤＩＧＫＶＴＣで補正することにより、初期ノック限界点火時期ＩＧＩＮＩが算出される。すなわち、２つのテーブルと１つのマップ（傾き係数マップ）を用いることにより、初期ノック限界点火時期ＩＧＩＮＩを算出することが可能となるので、吸気弁の複数の作動位相に対応させて複数の基本ノック限界点火時期マップを設定することなく、制御精度を維持することができる。その結果、マップ設定のための工数を大幅に低減することができる。
【００８５】
本実施形態では、吸入空気流量センサ１３が吸入空気流量検出手段に相当し、クランク角度位置センサ１１が回転数検出手段に相当し、ノックセンサ１１及びＥＣＵ５がノッキング検出手段を構成する。またＥＣＵ５が、充填効率算出手段、ノック限界点火時期算出手段、ノック補正値算出手段、学習手段、学習パラメータ算出手段、気筒別補正値算出手段、点火時期算出手段、基本ノック限界点火時期算出手段、回転数補正値算出手段、傾き係数算出手段、及び作動位相角補正値算出手段を構成する。具体的には、図７の処理が充填効率算出手段に相当し、図９の処理がノック限界点火時期算出手段に相当し、図６のステップＳ１４がノック補正値算出手段に相当し、図１６の処理が学習手段に相当し、図１４のステップＳ４１が学習パラメータ算出手段に相当し、図１４の処理が気筒別補正値算出手段に相当し、図６のステップＳ１６〜Ｓ１９が点火時期算出手段に相当し、図９のステップＳ３１が基本ノック限界点火時期算出手段に相当し、ステップＳ３２が回転数補正値算出手段に相当し、ステップＳ３３が傾き係数算出手段に相当し、ステップＳ３４が作動位相角補正値算出手段に相当する。
【００８６】
なお本発明は上述した実施形態に限るものではなく、種々の変形が可能である。例えば、上述した実施形態では、吸気弁の作動位相を連続的に変更する弁作動特性可変機構を備えるエンジンを制御対象としたが、本発明は吸気弁の作動位相が固定された通常のエンジンの制御にも適用可能である。その場合には、図８のステップＳ２６及びＳ２７を削除し、最適点火時期ＩＧＭＢＴを基本最適点火時期ＩＧＭＢＴＢに設定する。
【００８７】
さらに図９のステップＳ３３及びＳ３４を削除し、ノック限界点火時期ＩＧＫＮＫは、下記式（７ａ）により算出する。したがって、初期ノック限界点火時期ＩＧＩＮＩは下記式（７ｂ）で算出される。
ＩＧＫＮＫ＝ＩＧＫＢＡＳＥ＋ＤＩＧＫＮＥ−ＤＩＧＲＬＳ（Ｎ）  （７ａ）
ＩＧＩＮＩ＝ＩＧＫＢＡＳＥ＋ＤＩＧＫＮＥ                      （７ｂ）
【００８８】
また本発明は、クランク軸を鉛直方向とした船外機などのような船舶推進機用エンジンなどの点火時期制御にも適用が可能である。
【符号の説明】
【００８９】
１  内燃機関
５  電子制御ユニット（充填効率算出手段、ノック限界点火時期算出手段、ノッキング検出手段、ノック補正値算出手段、学習手段、学習パラメータ算出手段、気筒別補正値算出手段、点火時期算出手段、基本ノック限界点火時期算出手段、回転数補正値算出手段、傾き係数算出手段、作動位相角補正値算出手段）
１１  クランク角度位置センサ（回転数検出手段）
１２  カム角度位置センサ
１３  吸入空気流量センサ（吸入空気流量検出手段）
１４  ノックセンサ（ノッキング検出手段）
【図１】
2010185326.tif 000006
【図２】
2010185326.tif 000007
【図３】
2010185326.tif 000008
【図４】
2010185326.tif 000009
【図５】
2010185326.tif 000010
【図６】
2010185326.tif 000011
【図７】
2010185326.tif 000012
【図８】
2010185326.tif 000013
【図９】
2010185326.tif 000014
【図１０】
2010185326.tif 000015
【図１１】
2010185326.tif 000016
【図１２】
2010185326.tif 000017
【図１３】
2010185326.tif 000018
【図１４】
2010185326.tif 000019
【図１５】
2010185326.tif 000020
【図１６】
2010185326.tif 000021