(57)【要約】【課題】内燃機関の燃焼ノイズによるノッキング誤判定を防止してノッキング制御性能を向上する。【解決手段】低回転を除く条件で気筒毎に燃料カット中か否かを判定し（Ｓ４１，Ｓ４２）、それぞれの状態に切り換え後所定期間を経過した後で、ノックセンサからの振動信号の強度平均値を算出し（Ｓ４３〜Ｓ５０）、燃料カット中の強度平均値ＦＣａｖｅにしきい値係数ＳＬｎｏｉｓｅを乗じた値より非燃料カット時つまり燃焼時の強度平均値ＮＦＣａｖｅが大きいときに（Ｓ５１→Ｓ５３）、この気筒ｊに燃焼ノイズが発生していると判定する。【選択図】  図９
2004270592.tif 000002
【特許請求の範囲】
【請求項１】
機関振動検出信号からノッキングの特徴を示す複数の周波数帯の振動強度に基づいてノッキングの有無を判定する内燃機関のノッキング判定装置であって、前記複数の周波数帯の少なくとも１つについて燃焼時に生じる燃焼ノイズの有無を、該燃焼ノイズの発生傾向が異なる複数の機関運転状態での振動強度同士を比較して判定し、燃焼ノイズが有ると判定されたときは、この周波数帯の振動強度をノッキング判定から除外することを特徴とする内燃機関のノッキング判定装置。
【請求項２】
前記燃焼ノイズの有無の判定は、燃料供給時と燃料カット時との振動強度を比較して所定以上の差があるときに燃焼ノイズ有りとの判定を含むことを特徴とする請求項１に記載の内燃機関のノッキング判定装置。
【請求項３】
前記燃焼ノイズの判定は、燃焼ノイズの発生傾向が大きい機関回転速度領域と燃焼ノイズの発生傾向が小さい機関回転速度領域との振動強度を比較して所定以上の差があるときに燃焼ノイズ有りとの判定を含むことを特徴とする請求項１または請求項２に記載の内燃機関のノッキング判定装置。
【請求項４】
前記燃焼ノイズの判定は、前記燃焼ノイズの発生傾向が異なる各運転状態に入ってから所定期間経過後の加重平均処理された振動強度同士を比較することを特徴とする請求項１〜請求項３のいずれか１つに記載の内燃機関のノッキング判定装置。
【請求項５】
機関回転速度で正規化した振動強度同士を比較することを特徴とする請求項１〜請求項４のいずれか１つに記載の内燃機関のノッキング判定装置。
【請求項６】
前記燃焼ノイズの判定は、下記のドレーパの式における振動モード係数ρ１０＝１．８４１相当の振動周波数帯ｆの振動強度に基づいて行うことを特徴とする請求項１〜請求項５のいずれか１つに記載の内燃機関のノッキング判定装置。
ｆ＝Ｃ・ρｍｎ／（π×Ｂ）
ｆ：共振周波数、Ｃ：燃焼雰囲気下での音速、Ｂ：シリンダボア径、ρｍｎ：モード別係数（ｍはシリンダボア径方向の振動次数、ｎはシリンダボア周方向に振動次数）
【請求項７】
前記燃焼ノイズの判定は、少なくとも気筒別，機関回転速度別，オクタン価別に行うことを特徴とする請求項１〜請求項６のいずれか１つに記載の内燃機関のノッキング判定装置。
【請求項８】
前記燃焼ノイズの判定は、機関回転速度の所定以下の低速域では禁止することを特徴とする請求項１〜請求項７のいずれか１つに記載の内燃機関のノッキング判定装置。
【請求項９】
前記燃焼ノイズの判定は、機関冷却水温度の所定以下のときは禁止することを特徴とする請求項１〜請求項８のいずれか１つに記載の内燃機関のノッキング判定装置。
【請求項１０】
請求項１〜請求項９のいずれか１つに記載の内燃機関のノッキング判定装置を用いたノッキング判定結果に基づいて点火時期を進・遅角制御することを特徴とする内燃機関のノッキング制御装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、内燃機関のノッキングを判定する技術に関し、特に、燃焼ノイズによるノッキングの誤判定を防止して判定精度を高める技術に関する。
【０００２】
【従来の技術】
内燃機関におけるノッキング判定としては、ノックセンサで検出した機関振動信号からノッキングの特徴的な複数の周波数帯をフィルタで抽出し、これら周波数帯の強度に基づいて行うことが一般的である。
【０００３】
上記一般的なノッキング判定方式では、燃焼時に生じるノイズ（燃焼ノイズという）によるノッキングの誤判定が問題とされてきており、かかる誤判定の防止を図った技術として、燃焼ノイズ発生の有無を、気筒毎のノッキング検出頻度の差に基づいて判定し、判定結果に応じてフィルタを切り換えるようにした技術が提案されている（特許文献１参照）。
【０００４】
【特許文献１】
特開２００１−１７３５０８号公報
【０００５】
【発明が解決しようとする課題】
しかしながら、上記のようにノッキング発生頻度に基づいて燃焼ノイズ判定を行う方式では、以下のような問題を生じていた。
【０００６】
車両実装状態では必ずしも機関が定常運転を行うとは限らないので、リアルタイムに統計処理をするのは実用的でない。つまり、統計結果のばらつきを低減しようとするとサンプリング条件を狭くして、母数を多く取ればよいが、判定の頻度が極端に低下して燃焼ノイズの判定が遅れると共に、サンプリングデータを保存するためのメモリ容量や演算負荷を大きく必要とする。判定頻度を上げようとすると逆に統計結果のばらつきが大きくなり、燃焼ノイズの判定精度が悪化する。
【０００７】
本発明は、このような従来の課題に着目してなされたもので、比較的簡易な判定方式で精度よく燃焼ノイズを判定してノッキング誤判定を良好に防止できるようにした内燃機関のノッキング判定装置及び該判定装置を用いたノッキング制御装置を提供することを目的とする。
【０００８】
【課題を解決するための手段】
このため、本発明は、機関振動検出信号から抽出されるノッキングの特徴を示す複数の周波数帯の少なくとも１つについて燃焼時に生じる燃焼ノイズの有無を、該燃焼ノイズの発生傾向が異なる複数の機関運転状態での振動強度同士を比較して判定する。そして、燃焼ノイズが有ると判定されたときは、この周波数帯の振動強度をノッキング判定から除外する構成とした。
【０００９】
このようにすれば、燃焼ノイズの発生傾向が予め判っている運転領域における振動強度同士を比較することによって燃焼ノイズを高精度に判定することができ、この周波数帯の振動強度をノッキング判定から除外することにより、燃焼ノイズによるノッキングの誤判定を良好に防止することができる。
【００１０】
【発明の実施の形態】
以下、本発明の実施形態を図に基づいて説明する。
図１は、本発明の一実施形態のシステム構成を示す。
【００１１】
エンジン（内燃機関）１には、吸入空気量を制御する電子制御式スロットル弁２、燃料を噴射供給する燃料噴射弁３、点火を行う点火栓４等が備えられている。
【００１２】
また、各種センサ類として、吸入空気量を検出するエアフロメータ５、単位クランク角毎のパルス信号を出力するクランク角センサ６、エンジン冷却水温度を検出する水温センサ７を備えると共に、ノッキング判定のため機関振動を検出するノックセンサ８を備える。なお、ノックセンサの代わりに筒内圧を検出するセンサを用いてもよい。
【００１３】
前記各種センサ類からの検出信号は、マイクロコンピュータを含むコントロールユニット９へ入力され、該コントロールユニット９は、前記センサ類からの信号に基づいてスロットル弁２、燃料噴射弁３、点火栓４を駆動して吸入空気量、燃料噴射量、点火時期を制御し、特に、ノックセンサ８からの信号を処理して本発明にかかるノッキング判定を行いつつノッキング制御（点火時期制御）を行う。
【００１４】
図２は、前記ノッキング制御の制御ブロック図であり、前記ノックセンサ８からの信号は、入力回路１１を経てゲイン調整回路１２でゲイン調整された後、Ａ／Ｄ変換器１３でＡ／Ｄ変換された後、前記コントロールユニット９のマイクロコンピュータで以下のように処理される。
【００１５】
まず、周波数解析部１４は、前記Ａ／Ｄ変換されたデジタル値からノッキングの特徴を示す複数の周波数帯の振動強度を算出する。
ノッキング判定部１５は、前記複数の周波数帯の振動強度に基づいてノッキングの有無を判定する。ここで、特定の周波数帯について振動強度に基づいて前記燃焼ノイズを判定し、燃焼ノイズがあると判定されたときは、この特定の周波数帯の振動強度を除外してノッキング判定を行う。
【００１６】
ノッキング制御部１６は、前記ノッキングの判定結果に応じてノッキングを抑制する制御を行う。
以下、各部の処理の詳細を図３以下のフローチャートにしたがって、説明する。
【００１７】
図３は、周波数解析部１４における処理を示す。図３の処理は、図４に示すように、前記クランク角センサ６からのパルス信号により気筒毎のノッキング判定区間の開始時期である所定のクランク角位置で割り込まれて開始される。
【００１８】
ステップ（図ではＳと記す。以下同様）１でイニシャライズ処理が行われ、ステップ２で前記Ａ／Ｄ変換器１３を駆動してＡ／Ｄ変換を開始させる。
ステップ３では、一定周期毎に振動強度のＡ／Ｄ変換値をサンプリングし、ステップ４の判定でサンプリング数が所定値（例えば６４個）に達するまでサンプリングする。
【００１９】
サンプリング数が所定値に達すると、ステップ５でＦＦＴ処理を開始し、周波数帯［ｉ：ｉ＝１〜５］別の振動強度（以下周波数別強度という）に分別し、ステップ６で各周波数別強度をそれぞれ積算し、ステップ７の判定でＦＦＴ回数が上限に達するまでステップ３に戻ってかかる処理を繰り返す。なお、ＦＦＴ処理の代わりにウェーブレット変換など他の周波数解析処理を行ってもよい。
【００２０】
ここで、上記ＦＦＴ処理により分別されるノッキングの特徴を示す複数の周波数帯［ｉ：１〜５］は、公知の下記のドレーパの式における複数（５個）の振動モード係数ρｍｎ（ρ１０，ρ２０，ρ０１，ρ３０，ρ１１、添え字ｍは径方向振動の次数、ｎは周方向振動の次数を示す。）で決定される各周波数を中心とする周波数帯である（図５参照）。
【００２１】
ｆ＝Ｃ・ρｍｎ／（π×Ｂ）
ｆ：共振周波数、Ｃ：燃焼雰囲気下での音速、Ｂ：シリンダボア径、ρｍｎ：モード別係数
図４に示すように、前記クランク角センサ６からのパルス信号により気筒毎のノッキング判定区間の終了時期である所定のクランク角位置で割り込まれて、図６のフローチャートに示す処理が行われる。
【００２２】
すなわち、ステップ１１では、前記前記Ａ／Ｄ変換器１３の駆動を停止してＡ／Ｄ変換を終了させる。
ステップ１２では、前記図４で算出した周波数別強度積算値［ｉ］を次式によって正規化補正する。
【００２３】
周波数別強度積算値補正値［ｉ］＝周波数別強度積算値［ｉ］×検出区間時間／（総サンプリング数×サンプリング周期）
ステップ１３では、前記周波数別強度積算値補正値［ｉ］に基づいてノッキング判定処理を行い（後に詳述する）、ステップ１４で終了処理を行って、終了する。
【００２４】
図７は、気筒［ｊ：例えば４気筒エンジンでｊ＝１〜４］別のノッキング判定処理を示す。
ステップ２１では、現在前記ノッキング判定終了時期にある気筒ｊの前回のノッキング判定結果をクリアする。
【００２５】
ステップ２２では、周波数別強度平均値を算出処理する。具体的には、図８に示すサブルーチンで処理される。
すなわち、ステップ１０１では、前記ステップ１２で算出した周波数別強度積算値補正値［ｉ］を、次式のようにエンジン回転速度で除算して正規化した周波数別強度ＫＤＬ［ｉ］を算出する。
【００２６】
ＫＤＬ［ｉ］＝周波数別強度積算値補正値［ｉ］／エンジン回転速度
これは、強度の積算が時間周期で実行されエンジン回転速度が増大するほど積算値が増大するので、エンジン回転速度の相違によるノッキング判定精度への影響を除くため行う。
【００２７】
ステップ１０２では、ノッキング判定用のしきい値を得るため、上記周波数別強度積算値補正値［ｉ］を次式のように加重平均して周波数別強度平均値ＫＤＬａｖｅを算出する。
【００２８】
ＫＤＬａｖｅ［ｉ］［ｊ］＝（ＫＤＬ［ｉ］＋１５×ＫＤＬａｖｅ−１［ｉ］［ｊ］）／１６
ＫＤＬａｖｅ［ｉ］［ｊ］：ｊ気筒の周波数別強度ＫＤＬ［ｉ］の加重平均値
ＫＤＬａｖｅ−１［ｉ］［ｊ］：加重平均値ＫＤＬａｖｅ［ｉ］［ｊ］の前回値
図７に戻って、ステップ２３では本発明にかかる燃焼ノイズの判定処理を行う。
【００２９】
具体的には、図９と図１１との２つの処理を行い、少なくとも一方の処理で燃焼ノイズが有りと判定されたときに、この判定を確定する。
ところで、燃焼ノイズはノッキングほど振動レベルが大きくないため、振動モードρ１０（径方向の一次振動モード）で顕著に生じることが判明した。そこで、本実施形態では、振動モードρ１０で決定される周波数帯［ｉ＝１］についてのみ、燃焼ノイズの有無を判定し、後述するようにこの周波数帯［１］で燃焼ノイズが有るときはこの周波数帯［１］の振動強度をノッキング判定から除外する構成とする。他の周波数帯についても燃焼ノイズ判定を行う構成としてもよいが、周波数帯［１］のみ燃焼ノイズ判定を行う構成とすることにより制御が簡易になると共に、他の周波数帯に比較して燃焼ノイズを高精度に判定できるので、誤判定によるノッキング判定精度への影響も十分に回避できる。
【００３０】
図９は、燃料供給時と燃料カット時との振動モードρ１０の振動強度を比較して燃焼ノイズの有無を判定する処理を示す。
ステップ４１では、エンジン回転速度ＮＥが、燃焼ノイズ判定が困難な下限回転速度ＮＥＳＬ未満であるかを判定し、ＮＥＳＬ未満のときはステップ５１へ進んで新たな燃焼ノイズ判定を禁止する。回転速度が低すぎるとノックセンサからの信号が変動して燃焼ノイズを誤判定する可能性があるからである。該低速度領域で判定を禁止することにより良好な判定精度を確保できる。この他、暖機前の低水温時は、燃焼ノイズが暖機後と異なることがあるので、燃焼ノイズ判定を禁止するようにしてもよい。また、吸・排気バルブのバルブ着座時も強度平均値が大きくなって燃焼ノイズを判定しにくくなるので、予めバルブ着座近傍をノイズ判定区間から外しておき、あるいは可変バルブタイミング機構により可変制御されるバルブ着座タイミングがノイズ判定区間と重なったときは、燃焼ノイズ判定を禁止するようにしてもよい。
【００３１】
ステップ４１で、エンジン回転速度ＮＥが下限回転速度ＮＥＳＬ以上と判定されたときはステップ４２で気筒ｊが燃料カットされているか否かを判定する。
燃料カットされていると判定されたときは、ステップ４３で非燃料カット継続回数カウンタＮＦＣｃｏｕｎｔ［ｊ］を０にクリアした後、ステップ４４で燃料カット継続回数カウンタＦＣｃｏｕｎｔ［ｊ］をインクリメントする。
【００３２】
そして、ステップ４５で前記ＦＣｃｏｕｎｔ［ｊ］の値が所定値（例えば８回）に達したかを判定し、達する前はそのままステップ５１へ進み、達したときはステップ４６で最新のＫＤＬａｖｅ［１］を、ＦＣＬａｖｅ［ｊ］（燃料カット時ＫＤＬａｖｅ）として更新設定する。
【００３３】
また、ステップ４２で気筒ｊが燃料カット中でない、つまり燃料供給中と判定されたときは、ステップ４７で燃料カット継続回数カウンタＦＣｃｏｕｎｔ［ｊ］を０にクリアした後、ステップ４８で非燃料カット継続回数カウンタＮＦＣｃｏｕｎｔ［ｊ］をインクリメントする。
【００３４】
そして、ステップ４９で前記ＮＦＣｃｏｕｎｔ［ｊ］の値が所定値（例えば８回）に達したかを判定し、達する前はそのままステップ５１へ進み、達したときはステップ４０で最新のＫＤＬａｖｅ［１］を、ＮＦＣＬａｖｅ［ｊ］（非燃料カット時ＫＤＬａｖｅ）として更新設定する。
【００３５】
このようにして、燃料カットまたは燃料供給に切り換え後、所定期間経過後の強度平均値ＫＤＬａｖｅをそれぞれ燃焼ノイズ判定用の値として更新する。このように切り換え後所定期間経過後の値を用いることで、加重平均演算における切り換え前の状態の影響を除いて切り換え後の状態を十分に反映させた値を燃焼ノイズ判定に用いることができるので、判定精度が向上する。
【００３６】
ステップ５１では、上記の各値を用いて燃焼ノイズの有無を判定する。具体的には次式が成立するかを判定する。
ＦＣＬａｖｅ［ｊ］×ＳＬｎｏｉｚｅ［ｊ］［ＮＥ］＜ＮＦＣＬａｖｅ［ｊ］
ここで、ＳＬｎｏｉｚｅ［ｊ］［ＮＥ］は気筒別・エンジン回転速度別にテーブル設定されるしきい値係数であり、例えば２〜３程度の値に設定されている。
【００３７】
そして、上記の式が成立したときはステップ５２で、気筒ｊに燃焼ノイズは生じていないとし、成立しないときはステップ５３で、気筒ｊに燃焼ノイズを生じているとする判定結果を下す。
【００３８】
すなわち、燃料カット時は燃焼が行われないので、燃焼ノイズは発生せず、非燃料カット時（燃料供給時）は燃焼しているので振動強度は燃焼ノイズが無い場合でも燃料カット時よりは大きいが、燃焼ノイズを生じている場合はそれよりさらに大きくなるので、燃焼時の強度平均値ＮＦＣＬａｖｅが燃料カット時の強度平均値ＦＣＬａｖｅに対し所定倍以上大きいときに燃焼ノイズが生じていると判定する。かかる判定方式では、燃焼ノイズを発生しない燃料カット時を一方の比較値として用いているため高い判定精度を確保できる（図１０参照）。
【００３９】
このようにして燃焼ノイズ有りと判定された周波数帯をノッキング判定から除外し、それによって燃焼ノイズによるノッキング有りとの誤判定を防止できる。なお、燃焼ノイズとノッキングとが同時に発生する場合もあるが、他の周波数帯の少なくとも１つによってノッキング有りと判定有りと判定することができる。
【００４０】
ただし、燃焼ノイズのみ発生しノッキングを発生していない状態を検出してこの場合だけノッキング判定から除外し、ノッキングを同時に発生している場合は、この周波数帯をノッキング判定に用いるようにすれば、燃焼ノイズによるノッキング有りとの誤判定を防止しつつノッキング発生をより正確に判定することができる。このようにするために、例えば、低負荷条件では燃焼ノイズの強度レベルの方がノッキングの強度レベルより高くなるので、判定用のしきい値（係数）を、燃焼ノイズの強度レベルより低く設定するように構成すればよい。
【００４１】
また、燃焼ノイズの発生をより正確に判定するためには、燃料カット有無の切り換え後、十分に収束してからしきい値係数ＳＬｎｏｉｚｅを大きくして判定し、そのために切り換え後に強度平均値を更新するまでの継続回数を多めに設定すればよい。また、切り換え後比較的速やかに判定結果を得たい場合には、しきい値係数ＳＬｎｏｉｚｅを比較的小さくしつつ強度平均値を更新するまでの継続回数を少なめに設定すればよい。また、ＮＦＣＬａｖｅ，ＦＣＬａｖｅを算出更新する毎にバックアップメモリに記憶しておき、更新時以外はそれまでの最新値を用いてステップ５１での燃焼ノイズ判定を行うことにより、電源ＯＦＦ後に再度ＯＮした直後の燃焼ノイズによるノッキング誤判定を防止できる。さらに、前記しきい値係数ＳＬｎｏｉｚｅ［ｊ］［ＮＥ］を、気筒別・エンジン回転速度別に設定したことにより、より燃焼ノイズの判定精度を高めることができる。これらのことは、以下の第２の燃焼ノイズ判定処理でも同様である。
【００４２】
図１１は、エンジン回転速度領域別に振動モードρ１０の振動強度を比較して燃焼ノイズの有無を判定する第２の判定処理を示す。上記のように燃料カットの有無（非燃焼時と燃焼時）に応じた判定方式は精度が高いので、これのみでもよい。しかし、本実施形態のように補助的に第２の燃焼ノイズ判定処理を合わせて行うことにより、判定頻度を増やして、より早く燃焼ノイズによるノッキングの誤判定を防止してノッキング制御性を向上できる。
【００４３】
ステップ６１では、図９のステップ３１同様に、エンジン回転速度ＮＥが、燃焼ノイズ判定が困難な下限回転速度ＮＥＳＬ未満であるかを判定し、ＮＥＳＬ未満のときはステップ７１へ進んで新たな燃焼ノイズ判定を中止する。
【００４４】
ステップ６１でエンジン回転速度ＮＥが下限回転速度ＮＥＳＬ以上と判定されたときは、ステップ６２で燃焼ノイズの発生傾向が高いエンジン回転速度領域（以下ノイズ領域という）であるかを判定する。具体的には、エンジン回転速度ＮＥが上記領域の下限回転速度ＮＥＬより高く、上限回転速度ＮＥＨより低いかを判定する。
【００４５】
そして、前記ノイズ領域以外と判定されたときは、ステップ６３でノイズ領域カウンタＮＡｃｏｕｎｔ［ｊ］を０にクリアした後、ステップ６４で非ノイズ領域カウンタＮＮＡｃｏｕｎｔ［ｊ］をインクリメントする。
【００４６】
そして、ステップ６５で前記カウンタＮＮＡｃｏｕｎｔ［ｊ］の値が所定値（例えば８回）に達したかを判定し、達する前はそのままステップ７１へ進み、達したときはステップ６６で最新のＫＤＬａｖｅ［１］を、ＮＮＡａｖｅ［ｊ］（非ノイズ領域ＫＤＬａｖｅ）として更新設定する。
【００４７】
また、ステップ６２で気筒ｊがノイズ領域にあると判定されたときは、ステップ６７で非ノイズ領域継続回数カウンタＮＮＡｃｏｕｎｔ［ｊ］を０にクリアした後、ステップ６８でノイズ領域継続回数カウンタＮＡｃｏｕｎｔ［ｊ］をインクリメントする。
【００４８】
そして、ステップ６９で前記ＮＡｃｏｕｎｔ［ｊ］の値が所定値（例えば８回）に達したかを判定し、達する前はそのままステップ７１へ進み、達したときはステップ７０で最新のＫＤＬａｖｅ［１］を、ＮＡａｖｅ［ｊ］（ノイズ領域ＫＤＬａｖｅ）として更新設定する。
【００４９】
このようにして、非ノイズ領域またはノイズ領域に切り換え後、所定期間経過後の強度平均値ＫＤＬａｖｅをそれぞれ燃焼ノイズ判定用の値として更新することで判定精度が向上することは第１の燃焼ノイズ判定処理と同様である。
【００５０】
ステップ７１では、上記の各値を用いて燃焼ノイズの有無を判定する。具体的には次式が成立するかを判定する。
ＮＮＡａｖｅ［ｊ］×ＳＬｎｏｉｚｅ２［ｊ］［ＮＥ］＜ＮＡａｖｅ［ｊ］
ここで、ＳＬｎｏｉｚｅ２［ｊ］［ＮＥ］は本判定処理方式における気筒別・エンジン回転速度別にテーブル設定されるしきい値係数である。
【００５１】
そして、上記の式が成立したときはステップ７２で、気筒ｊに燃焼ノイズは生じていないとし、成立しないときはステップ７３で、気筒ｊに燃焼ノイズを生じているとする判定結果を下す。
【００５２】
既述したように、以上図９，１１に示した２つの燃焼ノイズ判定処理の少なくとも一方の処理で燃焼ノイズが有りと判定されたときに、この判定を確定する。図７に戻って、ステップ２４では、気筒ｊの上記燃焼ノイズ判定結果を判別し、燃焼ノイズが無いと判別されたときは、ステップ２５へ進んで燃焼ノイズ判定に用いた振動モードρ１０に対応する周波数帯［１］を含めてノッキング判定を行うように、ｉ＝１にセットする。
【００５３】
一方、気筒ｊに燃焼ノイズが有ると判定されたときは、燃焼ノイズ判定に用いた周波数帯［１］を除いてノッキング判定を行うようステップ２６へ進んでｉ＝２にセットする。
【００５４】
そして、ステップ２７でノッキングの有無を判定する。具体的には、次式が成立するかを判定する。
ＫＤＬ［ｉ］≦ＳＬ［ｉ］［ｊ］［ＮＥ］＋ＫＤＬａｖｅ［ｉ］
ここで、ＳＬ［ｉ］［ｊ］［ＮＥ］は、気筒別・エンジン回転速度別にテーブル設定されるしきい値である。
【００５５】
そして、上記の式が成立したときはステップ２８で、気筒ｊにノッキングは生じていないと仮に判定した後、ステップ２９でｉをインクリメントし、ステップ３０の判定でｉ＞５となるまでステップ２７に戻ってインクリメントされた周波数帯［ｉ］について上記判定を繰り返し、ステップ３０の判定でｉ＞５となったときに気筒ｊのノッキング判定を終了する。ｉ＞５となったときはｉ＝１〜４の全てのノッキングに特徴的な周波数帯についてノッキングを生じていないと判定されたので、ステップ２９での気筒ｊにノッキングは生じていないとの判定を確定する。
【００５６】
一方、ｉ＝１からｉ＝５となるまでの間に、ステップ２７の判定で上記の式が不成立となったとき、つまり、ＫＤＬ［ｉ］＞ＳＬ［ｉ］［ｊ］［ＮＥ］＋ＫＤＬａｖｅ［ｉ］となったときは、ステップ３１へ進み、気筒ｊにノッキングを生じていると判定して気筒ｊのノッキング判定を終了する（ノッキング有りの判定結果が確定する）。
【００５７】
すなわち、前記ステップ１０２（図８）で算出した最新の強度ＫＤＬ［ｉ］が強度平均値ＫＤＬａｖｅ［ｉ］に所定のしきい値ＳＬ［ｉ］［ｊ］［ＮＥ］を加算した値以上となったときにノッキングを発生していると判定する。
【００５８】
以上示した一連の処理が残りの気筒についても同様に実行される。
このようにして、燃焼ノイズが生じた周波数帯［１］については、ノッキング判定には用いられないようにしたので、燃焼ノイズによる誤判定を防止してノッキング判定精度を高めることができ、ひいてはノッキング制御精度を高めることができ運転性、燃費等を向上できる。
【００５９】
このようにして得られたノッキング判定結果に基づいて、周知の方法でノッキング制御が行われる。一般的には、ノッキング無しと判定された気筒について点火時期を微小量ずつ進角させつつノッキング有りと判定されたときに点火時期を所定量遅角させることによりノッキングを抑制しつつ最大限出力を高めるように制御するが、その他のノッキング制御とすることもできる。
【図面の簡単な説明】
【図１】本発明の実施形態のシステム構成を示す図。
【図２】同上実施形態によるノッキング制御を示すブロック図。
【図３】同上ノッキング制御の周波数解析処理を示すフローチャート。
【図４】ノッキング判定区間と判定処理割り込みタイミングを示すタイムチャート。
【図５】ドレーパの式における振動モード係数及びその関連内容を示す図。
【図６】同上ノッキング制御のノッキング判定区間終了時における割り込み処理を示すフローチャート。
【図７】同上ノッキング制御のノッキング判定処理を示すフローチャート。
【図８】同じく周波数別強度平均値算出処理を示すフローチャート。
【図９】同じく第１の燃焼ノイズ判定処理を示すフローチャート。
【図１０】同上第１の燃焼ノイズ判定処理の作用・効果を示すタイムチャート。
【図１１】同上ノッキング制御の第２の燃焼ノイズ判定処理を示すフローチャート。
【符号の説明】
１    エンジン（内燃機関）
３    燃料噴射弁
４    点火栓
６    クランク角センサ
７    水温センサ
８    ノックセンサ
９    コントロールユニット
【図１】
2004270592.tif 000003
【図２】
2004270592.tif 000004
【図３】
2004270592.tif 000005
【図４】
2004270592.tif 000006
【図５】
2004270592.tif 000007
【図６】
2004270592.tif 000008
【図７】
2004270592.tif 000009
【図８】
2004270592.tif 000010
【図９】
2004270592.tif 000011
【図１０】
2004270592.tif 000012
【図１１】
2004270592.tif 000013