(57)【要約】【課題】過渡時におけるノッキングの誤判定を抑制すると共に、内燃機関の定常運転／過渡運転を問わず正確なバックグラウンドレベルを算出することによりノッキングの検出精度を向上させることができる新規な内燃機関のノッキング制御装置を提供することにある。【解決手段】振動センサが検出した周波数毎の信号成分から、演算ブロックＢ１０５で，予め定めた基準バックグラウンドレベルを減算して差分値を求め、この差分値に振動ノイズが有る場合、演算ブロックＢ１０７で差分値に第１の平均化処理の演算を行なって補正した後の第１の補正差分値に、演算ブロックＢ１０９で更に第２の平均化処理の演算を行って第２の補正差分値を求め、また、差分値に振動ノイズが無い場合は、演算ブロックＢ１０９で差分値に第２の平均化処理の演算を行って第２の補正差分値を求め、その後に演算ブロックＢ１１０で第２の補正差分値をバックグラウンドレベルの推定基準値に加算して最終的なバックグラウンドレベルとする、ところにある。【選択図】図８
2018096255.tif 000002
【特許請求の範囲】
【請求項１】
内燃機関の振動を検出する振動センサの検出信号に基づきノッキングの発生の有無を判定するコントロールユニットを備える内燃機関のノッキング検出装置であって、
前記コントロールユニットは、
前記振動センサが検出した振動から２つ以上の周波数成分を抽出する周波数分析手段と、
前記内燃機関の運転状態に基づいて予め定めたバックグラウンドレベルの推定基準値（以下、基準バックグランドレベルと表記する）を、前記周波数成分の夫々について求める基準バックグラウンドレベル推定手段と、
夫々の前記周波数成分から対応する周波数の前記基準バックグランドレベルを減算して夫々の差分値を求める差分演算手段と、
夫々の前記差分値に平均化処理の演算を行って補正差分値を求める平均化処理手段と、
平均化処理された夫々の前記補正差分値と、夫々の前記補正差分値に対応した前記基準バックグランドレベルを加算して修正バックグランドレベルを求める修正バックグランドレベル演算手段と、
夫々の前記修正バックグランドレベルと、前記振動センサが検出した夫々の前記周波数成分とから夫々のノック指標を求め、夫々の前記ノック指標を合算して最終ノック指標を求めるノック指標演算手段と、
前記最終ノック指標とノック判定閾値基とを比較することにより前記内燃機関のノッキングが生じているか否かを判定するノック判定手段と、
を備えることを特徴とする内燃機関のノッキング検出装置。
【請求項２】
内燃機関の振動を検出する振動センサの検出信号に基づきノッキングの発生の有無を判定するコントロールユニットを備える内燃機関のノッキング検出装置であって、
前記コントロールユニットは、
前記振動センサが検出した振動から２つ以上の周波数成分を抽出する周波数分析手段と、
前記内燃機関の運転状態に基づいて予め定めたバックグラウンドレベルの推定基準値（以下、基準バックグランドレベルと表記する）を、前記周波数成分の夫々について求める基準バックグラウンドレベル推定手段と、
夫々の前記周波数成分から対応する周波数の前記基準バックグランドレベルを減算して夫々の差分値を求める差分演算手段と、
夫々の前記差分値の少なくとも１つ以上に振動ノイズが有るかどうかを判定する振動ノイズ判定手段と、
前記振動ノイズ判定手段によって振動ノイズがある場合は、夫々の前記差分値に第１の平均化処理の演算を行なって第１の補正差分値を求め、前記第１の平均化処理された前記第１の補正差分値に、更に第２の平均化処理の演算を行って第２の補正差分値を求め、一方、振動ノイズが無い場合は、夫々の前記差分値に前記第２の平均化処理の演算を行って前記第２の補正差分値を求める平均化処理手段と、
前記第２の平均化処理の演算を行なわれた夫々の第２の補正差分値と、夫々の前記差分値に対応した前記基準バックグランドレベルを加算して修正バックグランドレベルを求める修正バックグランドレベル演算手段と、
夫々の前記修正バックグランドレベルと、前記振動センサが検出した夫々の前記周波数成分とから夫々のノック指標を求め、夫々の前記ノック指標を合算して最終ノック指標を求めるノック指標演算手段と、
前記最終ノック指標とノック判定閾値基とを比較することにより前記内燃機関のノッキングが生じているか否かを判定するノッキング判定手段と、
を備えることを特徴とする内燃機関のノッキング検出装置。
【請求項３】
請求項２記載の内燃機関のノッキング検出装置において、
前記平均化処理手段によって実行される、前記第１の平均化処理と前記第２の平均化処理は加重平均の演算であり、
前記第１の平均化処理の加重平均で使用される重み係数は、前記第２の平均化処理の加重平均で使用される重み係数より大きく設定されている
ことを特徴とする内燃機関のノッキング検出装置。
【請求項４】
請求項２記載の内燃機関のノッキング検出装置において、
前記振動ノイズ判定手段は、前記差分演算手段で求められた前記差分値と所定の振動ノイズ判定用閾値とを比較して判定されるものであり、前記差分値が前記振動ノイズ判定用閾値より大きいと振動ノイズがあるものと判定する
ことを特徴とする内燃機関のノッキング検出装置。
【請求項５】
請求項２記載の内燃機関のノッキング検出装置において、
前記振動ノイズ判定手段は、前記ノッキング判定手段による判定結果に基づき振動ノイズの有無を判定する
ことを特徴とする内燃機関のノッキング検出装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は内燃機関のノッキングを検出して点火時期を制御する内燃機関のノッキング検出装置に関するものである。
【背景技術】
【０００２】
周知のように内燃機関でのノッキングは、燃焼室内の端末部の未燃ガスの自己発火により燃焼室内の燃焼ガスが振動を起こし、この振動が機関本体に伝わる現象である。ノッキングは、機関の発生エネルギの損失（出力低下）や機関各部への衝撃、更には燃費の低下等を招くので、できるだけ回避するのが望ましい。そのためには、ノッキングの発生を正確に検出してノッキングを抑制することが不可欠である。
【０００３】
一般的に空気と燃料の混合気を圧縮して点火プラグにより着火する火花点火式の内燃機関においては、ノッキングの発生を抑制するノック制御装置が搭載されている。このノック制御装置は、周知のように、振動センサであるノックセンサから出力される所定レベルのノック信号に基づいて、点火時期をノックが発生しない点火時期にフィードバック制御するものである。
【０００４】
このノック制御装置におけるノッキング検出方法においては、主に内燃機関のシリンダブロックに取り付けられたノックセンサの信号を、ノッキング発生区間の間に亘って取り込むように、所定のクランク角の範囲で規定された区間（いわゆる、ノック検出ウィンドウ）でＡＤ変換し、ノッキングが発生していない時のＡＤ変換値をフィルタリング、例えば、加重平均することでバックグランドレベルを算出し、このバックグランドレベルとノックが発生した時のノック信号のＡＤ変換値とを比較し、その「比」、または「差」が所定値（以下、ノック判定閾値）を超えたとき、ノック有りと判定する手法が知られている。
【０００５】
ところで、このバックグランドレベルを正確に求めることは、ノッキングの発生を抑制する上で重要な課題である。このため、従来から多くの方法が提案されており、例えば、代表的な例として特開平３−４７４４９号公報（特許文献１）、特開昭６３−２９５８６４号公報（特許文献２）、特開２００１−１０７７９８号公報（特許文献３）等において、バックグランドレベルの精度を向上する提案がなされている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平３−４７４４９号公報
【特許文献２】特開昭６３−２９５８６４号公報
【特許文献３】特開２００１−１０７７９８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ところで、最近では燃料消費量の低減や排気ガス有害成分の低減を図るため、気筒内に燃料を直接的に噴射する直接噴射方式の内燃機関が使用されるようになってきている。この直接噴射方式の内燃機関では、燃料を直接噴射することによって燃焼室を冷却できるため、圧縮比を上げることが可能となっている。しかしながら、圧縮比を上げることによってノッキングが発生し易くなる傾向になるので、ノッキングの検出精度を向上してノッキングを効率良く抑制することが重要である。
【０００８】
そして、ノッキングの検出精度を高めるためには、ノッキングが発生していないときのノックセンサの入力信号の平均値（バックグランドレベル）を正確に算出する必要がある。例えば遅れフィルタを用いて平均値を算出する場合は、フィルタをより強くかける必要がある。一方、遅れフィルタは加減速運転のように運転状態の変動時に応答性が遅れる特性を有している。この応答遅れが大きいと、過渡運転のような負荷変動が生じた時に、ノッキングの発生を誤検出して点火時期の制御に悪影響を及ぼすようになる。
【０００９】
また、ノックセンサの入力信号を平均化処理してバックグラウンドレベルを演算した場合、ノッキングの発生時、或いは突発的な振動ノイズが発生した時、これらの振動ノイズが平均化処理に反映されてしまうことで、バックグラウンドレベルを正確に算出することができず、ノッキングの検出精度が低下してしまう恐れがある。
【００１０】
本発明の目的は、過渡時におけるノッキングの誤判定を抑制すると共に、内燃機関の定常運転／過渡運転を問わず正確なバックグラウンドレベルを算出することによりノッキングの検出精度を向上させることができる新規な内燃機関のノッキング検出装置を提供することにある。
【課題を解決するための手段】
【００１１】
本発明の第１の特徴は、振動センサが検出した周波数毎の信号成分から、予め定めたバックグラウンドレベルの推定基準値を減算して差分値を求め、この差分値に平均化処理の演算を行なって求めた補正差分値をバックグラウンドレベルの推定基準値に加算して最終的な修正バックグラウンドレベルとする、ところにある。
【００１２】
本発明の第２の特徴は、振動センサが検出した周波数毎の信号成分から、予め定めたバックグラウンドレベルの推定基準値を減算して差分値を求め、この差分値に振動ノイズが有る場合、差分値に第１の平均化処理の演算を行なって第１の補正差分値を求め、更に第１の補正差分値を第２の平均化処理の演算を行って第２の補正差分値を求め、また、差分値に振動ノイズが無い場合は、差分値に上述の第２の平均化処理の演算を行って第２の補正差分値を求め、第２の平均化処理の演算を行なった第２の補正差分値をバックグラウンドレベルの推定基準値に加算して最終的な修正バックグラウンドレベルとする、ところにある。
【発明の効果】
【００１３】
本発明によれば、過渡運転時においてバックグラウンドレベルを算出する際の追従性が高まり、加えてノイズ発生時に平均化処理を強くかけることができる。これによって、過渡時におけるノッキングの誤判定を抑制するとともに、内燃機関の定常運転／過渡運転を問わずノック検出精度を向上させることができる。
【図面の簡単な説明】
【００１４】
【図１】ノッキングが発生していない時の振動センサの出力信号の周波数成分の解析結果を示す特性図である。
【図２】ノッキングが発生した時の振動センサの出力信号の周波数成分の解析結果を示す特性図である。
【図３】ノッキング判定指標を用いてノッキングの発生の有無を判定する方法を説明する説明図である。
【図４】過渡運転時におけるスロットル開度、内燃機関の回転数、周波数ｆｉのバックグラウンドレベルＢＧＬｉ、ノック指標、ノック判定信号（ノック有無を表す信号）の経時変化を示すタイムチャート図である。
【図５】内燃機関の制御システムの構成図である。
【図６】コントロールユニットの制御ブロックを示すブロック図である。
【図７】ノッキングの有無を判定する手順を説明するフローチャートである。
【図８】本発明の実施形態になるノッキングの発生の有無を判定する演算ブロックを示す演算ブロック図である。
【図９】点火時期を演算する手順を説明するフローチャートである。
【図１０】バックグラウンドレベルの推定基準値を記述したマップデータを説明する説明図である。
【発明を実施するための形態】
【００１５】
以下、本発明の実施形態について図面を用いて詳細に説明するが、本発明は以下の実施形態に限定されることなく、本発明の技術的な概念の中で種々の変形例や応用例をもその範囲に含むものである。
【００１６】
本発明の実施形態を説明する前に、先ずノッキングを検出する一般的な方法について説明し、その後に本発明の実施形態について説明する。
【００１７】
内燃機関の振動には、例えば、ピストンの摩擦、クランク軸の回転、吸気/排気弁の作動等による多くの振動成分が含まれている。しかも、これらの振動成分は内燃機関の作動状態によって大きく変化する。内燃機関にノッキングが発生するとノッキングに特有な振動が発生し、ノッキングの発生の有無の判定は、振動センサが検出する内燃機関の全体の振動からノッキングに特有な振動を分離することによって行うことができる。
【００１８】
図１は、ノッキングが発生していない時の振動センサの出力信号の周波数成分の解析結果を示したものである。ここでは、略２０ＫＨｚまでの周波数範囲内における解析結果を示しているが、これに限らず他の周波数範囲であっても差し支えないものであり、以下の説明においても同様である。
【００１９】
図２は、ノッキングが発生した時の振動センサの出力信号の周波数成分の解析結果を示したものである。図１の周波数特性と図２の周波数特性を比較すれば分かるように、ノッキングが発生していない場合に比べて、ノッキングが発生していると各々の共鳴周波数成分が大きくなっていることがわかる。例えば、周波数ｆ１０、ｆ０１、ｆ１１の近傍においてノッキングが発生していることがわかる。
【００２０】
図３は、ノック指標を用いてノッキングの発生の有無を判定する方法について示している。以下の説明においては、便宜上、図２で示した共鳴周波数ｆ１０（６．３ＫＨｚ）とｆ０１（１３．０ＫＨｚ）の共鳴周波数成分ω１０Ｐ（ｆ１０）、ω０１Ｐ（ｆ０１）を用いてノック指標を算出する例を説明する。ただし本実施形態はこれらの周波数に限定されるものではなく、任意の２つ以上の共鳴周波数成分を用いてノッキングの発生の有無を判定することができる。
【００２１】
振動センサは、ノッキングの発生による振動とバックグラウンド振動（ノッキング以外の要因によって発生する振動）を合成して検出する。したがってノック指標Ｉは、ノッキングが発生していないときはバックグラウンド振動に対応する指標Ｉｂであり、ノッキングが発生したときはバックグラウンド振動に対応する指標Ｉｂとノッキングに対応する指標Ｉｋの合成により求められる。
【００２２】
ノック指標Ｉは、図２に示す主要な共鳴周波数成分を用いて以下の（式１）により表すことができる。「ω」は内燃機関の回転数により定まる実数値であり、「ω」は「１」、或いは「０」の２値をとることもできる。「Ｐ」は各共鳴周波数成分の振動強度（パワースペクトル）である。
【００２３】
Ｉ＝ω１０Ｐ（ｆ１０）＋ω２０Ｐ（ｆ２０）＋ω０１Ｐ（ｆ０１）＋ω３０Ｐ（ｆ３０）＋ω１１Ｐ（ｆ１１）……（式１）
図３に示すように、バックグラウンド振動の共鳴周波数成分によって示される指標Ｉｂと、ノッキングの発生による振動の共鳴周波数成分によって示される指標Ｉｋとは、方向と大きさを異にしている。これは人間による聴覚試験でも明らかなように、「ノック無し」の場合の内燃機関の発生音に対し、「ノック有り」の場合の発生音は、例えばカリカリ等という音で聴き分けられることに対応している。
【００２４】
そして、バックグラウンド振動による指標Ｉｂに対してノッキングの発生による振動が加わると、ノック指標Ｉはノック判定閾値Ｉ０２を超過する。これによりノッキングが発生していることを判定することができる。このように、バックグラウンド振動に加えてノッキング発生による特有な周波数成分を考慮してノック指標Ｉを算出するので、バックグラウンド振動が大きくなってもノッキング発生の有無を判定することができる。尚、以下において（式１）の右辺の５つの項に限らず、振動センサの出力に含まれる複数の共鳴周波数成分を組み合わせることにより算出する指標は、すべてノック指標と定義する。
【００２５】
次に、本実施形態におけるノッキングの検出方法の基本的な考え方を説明する。本実施形態においては、ノック指標を算出する際に、振動センサが検出した振動信号を周波数成分毎に平均化することにより、バックグラウンドレベルを算出する。この場合、ノッキングが発生していないとしても、例えば内燃機関の運転状態変化や燃焼振動の増大により振動強度が急変すると、バックグラウンドレベルの演算結果が最新の状態に追従することができず、以下の図４で説明するようにノッキングを誤検出する恐れがある。
【００２６】
図４は、加速運転のような過渡運転時における、スロットル開度、内燃機関の回転数、周波数ｆｉのバックグラウンドレベルＢＧＬｉ、ノック指標Ｉｉ、ノック判定信号（ノックの有無を表す信号）の経時変化を示している。図４において、スロットル開度ＴＶＯを全閉から全開にした場合、実際に内燃機関の回転数Ｎｅが立ち上がるのは所定の遅れ時間ｔｄを経過してからである。実際のバックグランドレベルＢＧＬｉは、本来は破線で示したような変化をおこなうものであるが、平均化処理を行なっているのでバックグランドレベルＢＧＬｉを演算すると、実線で示したような遅れを生じて変化する。ここで、ノック指標ＩｉはＳ／Ｎ比（ＢＧＬｉに対する各周波数成分の比）の計算により求めている。
【００２７】
したがって、図４に示す例によれば、バックグランドレベルＢＧＬｉの変化が遅れることにより、ノッキングが発生していないにもかかわらず、ノック指標Ｉｉは理論的なノック指標を超過して大きくなり、その結果としてノッキングが発生したと誤判定することになる。
【００２８】
すなわち、振動センサが検出した振動信号が急増したとき、平均化処理を実施することにより求められるバックグラウンドレベルＢＧＬｉの演算結果が、実際のバックグラウンドレベルの値に対して遅れることになる。ノック指標ＩｉとしてバックグラウンドレベルＢＧＬｉに対する周波数成分の比（Ｓ/Ｎ比）を用いる場合、バックグランドレベルＢＧＬｉの遅れは、ノック指標Ｉｉ（＝Ｓ/Ｎ比）の分母が実際の値よりも小さくなることにつながる。したがってノック指標Ｉｉが本来の値よりも大きく算出されることになり、過渡運転状態においては、実際のノック指標がノック判定閾値を超えてしまい、ノッキングが発生していないにもかかわらず、ノッキングが発生したと判定される恐れがある。
【００２９】
また、ノッキングの発生時や突発的な振動ノイズが発生すると、そのときの大きな振動信号がバックグラウンドレベルＢＧＬｉに反映されるので、バックグラウンドレベルＢＧＬｉの値を増大させることになる。そして、大きくなったバックグラウンドレベルＢＧＬｉを使用すると、ノック指標ＩｉであるＳ/Ｎ比が小さくなり、通常では検出可能なノッキングが検出できなくなってしまう恐れがある。
【００３０】
このため、ノッキングや突発的な振動ノイズを検出した場合には、バックグラウンドレベルＢＧＬｉの更新を禁止することで、バックグラウンドレベルＢＧＬｉの演算精度を高める方法が考えられる。しかしながら、突発的で且つノッキングが検出されないような小さな値の振動ノイズやノッキングによってバックグラウンドレベルＢＧＬｉが増大している期間に、通常では検出可能なノッキングが発生してもノッキングを検出できない恐れがある。
【００３１】
本発明は、上述した課題に対応すべく過渡時におけるノッキングの誤判定を抑制すると共に、内燃機関の定常運転／過渡運転を問わず正確なバックグラウンドレベルを算出することにより、ノッキングの検出精度を向上させることができる内燃機関のノッキング制御装置を提案するものであり、以下にその具体的な実施形態を説明する。
【００３２】
本実施形態は、過渡状態でバックグラウンドレベルＢＧＬｉの平均化処理の演算結果が、実際のバックグラウンドレベルＢＧＬｉに対して追従できずに遅れることに起因するノッキング発生の有無の誤判定を抑制し、かつ、ノッキングの発生や突発的な振動ノイズがバックグラウンドレベルＢＧＬｉの演算に反映されることによるノッキングの検出精度の低下を抑制してノッキングの検出精度を向上させる方法を提案するものである。以下、本実施形態の具体的な構成とその動作について説明する。
【００３３】
図５において、筒内噴射型の内燃機関ＥＳは、例えば、第１気筒〜第４気筒の４つの気筒を有する直列４気筒の内燃機関であって、シリンダヘッド１１と、シリンダブロック１２と、このシリンダブロック１２内に摺動自在に嵌挿されたピストン１３とを有し、ピストン１３の上方には燃焼室１４が形成されている。
【００３４】
燃焼室１４には、点火コイル２７から高電圧が印加される点火プラグ２８及び燃焼室１４内に直接的に燃料を噴射するインジェクタ２６が臨設されている。なお、図において、点火プラグ２８及びインジェクタ２６は、便宜上、燃焼室１４の天井部の左右に並設されているが、それらの配設位置は適宜に設定可能である。
【００３５】
各シリンダに導入されて燃料の燃焼に供せられる空気は、吸気通路１７の始端部に設けられたエアクリーナ１８の入口部１８ａから取り入れられ、空気流量計（エアフロセンサ）２０を通り、電制スロットル弁２１が収容されたスロットルボディ２２を通ってコレクタ２に入る。コレクタ２に入った空気は、コレクタ２から吸気通路の下流部分を形成する分岐通路部（吸気管、吸気ポート）及びその下流端に配在された、吸気カムシャフト２により開閉駆動される吸気弁２を介して各気筒の燃焼室１に導かれる。
【００３６】
燃焼室１に吸入された空気とインジェクタから噴射された燃料との混合気は、点火プラグ２８により点火されて爆発、燃焼せしめられ、その燃焼排気ガスは、排気カムシャフト３４により開閉駆動される排気弁３３を介して排気通路３１に排出され、排気通路３１に配備された触媒コンバータ３２で浄化された後、外部に排出される。
【００３７】
また、エアフロセンサ２０からは、吸気流量を表す信号がコントロールユニット１０に出力されている。さらに、スロットルボディ２２には、電制スロットル弁２１の開度を検出するスロットルセンサ１９が取り付けられており、その信号もコントロールユニット１０に出力されるようになっている。
【００３８】
一方、インジェクタ２６から噴射されるガソリン等の燃料は、燃料タンク３５から低圧燃料ポンプ３６により一次加圧されて燃圧レギュレータ３７により一定の圧力（例えば３ｋｇ／ｃｍ２）に調圧される。調圧された燃料は、さらに、排気カムシャフト３４に設けられたポンプ駆動カムにより駆動される高圧燃料ポンプ４１において、より高い圧力（例えば５０ｋｇ／ｃｍ２）に２次加圧されてコモンレール（蓄圧室）３８へ圧送される。
【００３９】
コモンレール３８に、圧送された燃料は、各気筒に設けられているインジェクタ２６に供給され、インジェクタ２６から各気筒の燃焼室１４に噴射される。燃焼室１４に噴射された燃料は、点火コイル２７で高電圧化された点火信号により点火プラグ２８で着火される。尚、インジェクタ２６に供給される燃料の圧力（燃圧）は、燃圧セン４０により検出され、その信号はコントロールユニット１０に出力されるようになっている。
【００４０】
シリンダブロック１２には、振動センサ４３が設けられており、シリンダブロック１２の機械振動からノッキングを検出している。振動センサの出力信号はコントロールユニット１０に入力され、ノッキングが発生すると点火時期を所定量だけ遅角させてノックを抑制するようにしている。
【００４１】
内燃機関ＥＳのクランク軸１５に取り付けられたクランク角センサ３０は、クランク軸１５の回転位置を検出し、検出された信号はコントロールユニット１０に出力されるようになっている。
【００４２】
さらに、クランク軸１５からのトルクは変速機４２に伝達され、変速機４２は、コントロールユニット１０からの制御信号により、所望の変速段数に変更され、変更された変速段数は、ポジションセンサ２９により検出され、この検出信号は、コントロールユニット１０に出力される。
【００４３】
図６は、コントロールユニット１０のブロック図である。コントロールユニット１０は、各センサからの信号に基づいて燃料供給量や点火時期などを演算し、インジェクタ２６と点火コイル２７に対して制御信号を出力する。コントロールユニット１０は、制御ブロック４５とノッキング検出ブロック４６に大別される。
【００４４】
制御ブロック４５は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｃｏｎｔｒｏｌ  Ｕｎｉｔ）４７、Ａ／Ｄ変換器４８、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）４９、入力Ｉ／Ｏ５０、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）５１、ＤＰＲＡＭ（Ｄｕａｌ  Ｐｏｒｔ  ＲＡＭ）５２、出力Ｉ／Ｏ５３、バス５４を備える。
【００４５】
ノッキング検出ブロック４６は、ＣＰＵ５５、Ｉ/Ｏポート５６、タイミング回路５７、Ａ／Ｄ変換器５８、ＲＯＭ５９、ＲＡＭ６０、クロック６１、オペレーショナル回路６２、バス６３を備える。制御ブロック４５のＣＰＵ４７とノッキング検出ブロック４６のＣＰＵ５５の間のデータの交換は、例えばＤＰＲＡＭ５２を介してなされる。
【００４６】
熱線式空気流量計２によって検出された吸入空気量Ｑａは、Ａ／Ｄ変換器４８によってデジタル値に変換され、ＣＰＵ４７に取り込まれる。クランク角センサ１２によって検出されるＲｅｆ信号及びＰＯＳ信号は、入力Ｉ／Ｏポート５０を介してＣＰＵ４７に取り込まれる。ＣＰＵ４７は、ＲＯＭ４９が格納しているプログラムにしたがって演算を実施し、演算結果は出力Ｉ／Ｏ５３を介して、燃料噴射量を指示する燃料噴射時間信号Ｔｉ、点火時期を指示する点火時期信号θｉｇｎとして各アクチュエータに対して出力される。ＲＡＭ５３は演算処理中の必要なデータを格納する。
【００４７】
クランク角センサ１２によって検出されるＲｅｆ信号及びＰＯＳ信号はオペレーショナル回路６２に入力され、オペレーショナル回路６２が上死点（Ｔｏｐ  Ｄｅａｄ  Ｃｅｎｔｅｒ）を示すＴＤＣ信号を発生すると、タイミング回路５７は、ＣＰＵ４７がＩ/Ｏポート５６に対して入力した情報にしたがって、クロック６１の発生する周期信号を分周することによりサンプリング信号を発生する。Ａ／Ｄ変換器５８は、サンプリング信号が発生すると、振動センサ４３の出力信号Ｋｐをデジタル値に変換する。
【００４８】
ノッキングを検出するための従来の振動センサは、１３ＫＨｚ付近で共振するが、本実施形態においては少なくとも１８〜２０ＫＨｚまでの共鳴周波数成分を得るために、１８ＫＨｚ以上で共振するものを用いる。ＣＰＵ５５は、ＲＯＭ５９が格納しているプログラムにしたがって、サンプリングされたデジタル値をＲＡＭ６０に格納するとともに、後述する図７で説明するフローチャートにしたがってノッキングの発生の有無を判定する。
【００４９】
ノッキングの発生の有無の判定結果は、ＤＰＲＡＭ５２を介してＣＰＵ４７に対して通知される。ＣＰＵ４７は、ノッキングが発生していると点火時期を所定量だけ遅角してノッキングの発生を抑制し、その後に徐々に進角していき再びノッキングを検出すると所定量だけ遅角するという動作を繰り返すものである。
【００５０】
図７は、ノッキングの発生の有無を判定する制御ステップの手順を説明するフローチャートである。この制御フローは、内燃機関の爆発サイクル毎に実行されるものであり、ＣＰＵ５５に対して角度割り込みをかけて起動することにより、ＣＰＵ５５によって実行されるものである。以下、図７の各制御ステップについて説明する。
【００５１】
≪ステップＳ１０１≫
ステップＳ１０１においては、振動センサ４３からの検出信号ＫｐがＡ／Ｄ変換器５８によってＡ／Ｄ変換されたＡ／Ｄ変換値を取り込む。この検出信号ＫｐのＡ/Ｄ変換値の取り込みが完了すると次のステップＳ１０２に移行する。
【００５２】
≪ステップＳ１０２≫
ステップＳ１０２においては、振動センサ４３の検出信号Ｋｐを周波数分析する。この周波数分析は、例えば高速フーリエ変換（ＦＦＴ）やウォルシュフーリエ変換などによって実施することができる。周波数分析が完了すると次のステップＳ１０３に移行する。
【００５３】
≪ステップＳ１０３≫
ステップＳ１０３においては、先のステップＳ１０２において分析した周波数成分のうち、共鳴周波数を含むものを複数個だけ選択する。本実施形態では例えば８個の共鳴周波数を選択している。本ステップにおいて選択する周波数成分は、例えば内燃機関の仕様などに応じて予め定めておくことができる。周波数帯域の選択が完了すると次のステップＳ１０４に移行する。
【００５４】
≪ステップＳ１０４≫
ステップＳ１０４においては、振動強度ＳＬを表わすＳ／Ｎ比を、ステップＳ１０３において選択した周波数成分毎に求める。具体的には、選択した周波数成分（ｆ１、………、ｆｉ）に対応するバックグラウンドレベル（ＢＧＬ１、………、ＢＧＬｉ）を平均化処理（例えば、加重平均）により求め、周波数毎の振動強度ＳＬをＳＬｉ＝ｆｉ／ＢＧＬｉの計算よって求める。尚、本実施形態では、ステップＳ１０３において８個の周波数成分を選択しているので、振動強度ＳＬ１〜ＳＬ８を求めることになる。
【００５５】
ここで、本実施形態ではこの振動強度の求め方に特徴を有するものである。バックグラウンドレベルＢＧＬｉを算出する際には、振動センサ４３が検出した周波数毎の信号成分をそのまま用いるのではなく、まず信号成分から、実験やシミュレーション等によって予め求めたバックグラウンドレベルＢＧＬｉの推定基準値を減算し、この減算された差分値を用いて振動ノイズの発生の有無を判定している。
【００５６】
そして、減算して得られた差分値に振動ノイズが有る場合、差分値に第１の平均化処理の演算を行なって求めた第１の補正差分値に、更に第２の平均化処理の演算を行って第２の補正差分値を求め、また、差分値に振動ノイズが無い場合は、実際の差分値に第２の平均化処理の演算を行って第２の補正差分値を求め、その後に第２の平均化処理の演算を行なった第２の補正差分値をバックグラウンドレベルＢＧＬｉの推定基準値に加算して最終的な修正バックグラウンドレベルＢＧＬｉとするものである。
【００５７】
この演算によって得られた修正バックグラウンドレベルＢＧＬｉに対する信号成分ｆｉの比率を、本ステップにおける振動強度ＳＬｉとして算出する。このステップＳ１０４の具体的な構成は、後述の図８で詳細に説明する。周波数毎の振動強度ＳＬｉの演算が完了すると次のステップＳ１０５に移行する。
【００５８】
≪ステップＳ１０５≫
ステップＳ１０５においては、ステップＳ１０３において選択した周波数成分のうち、ステップＳ１０４において求めた振動強度ＳＬ（Ｓ／Ｎ比）が大きい順にｍ個を抽出し、これらを合算することにより最終的な振動強度Ｓを求めることができる。この最終的な振動強度Ｓは最終ノック指標Ｉに対応するものである。本実施形態では、例えば上位５個の周波数成分の振動強度ＳＬを抽出して加算している。最終的な振動強度Ｓ（＝最終ノック指標Ｉ）の演算が完了すると次のステップＳ１０６に移行する。
【００５９】
≪ステップＳ１０６≫
ステップＳ１０６においては、ノック判定閾値とステップＳ１０５において求めた振動強度Ｓ（＝最終ノック指標Ｉ）を比較する。振動強度Ｓのほうが大きい場合はステップＳ１０７へ移行し、それ以外であればステップＳ１０９へ移行する。
【００６０】
本ステップにおいて用いるノック判定閾値は、予め定めておくこともできるし、例えば、内燃機関の回転数などの運転状態に基づき算出することもできる。算出方法としては、例えば運転状態とノック判定閾値との間の対応関係をあらかじめ定義したテーブルやマップなどを用いることができるが、これに限られるものではない。
【００６１】
≪ステップＳ１０７、Ｓ１０８≫
ステップＳ１０６で振動強度Ｓがノック判定閾値を超えていると判断されているので、ステップＳ１０７においては、ノッキングが発生したと判断し、ステップＳ１０８においては、ノッキング発生を示すノックフラグに「１」をセットする。このノックフラグは、別に起動される点火制御タスクにおいて用いられる。つまり、このノックフラグによって、ノッキングが発生したとして点火時期が遅角されるものである。
【００６２】
≪ステップＳ１０９≫
ステップＳ１０６で振動強度Ｓがノック判定閾値を超えていないと判断されているので、ステップＳ１０９においては、ノックフラグを「０」にセットする。
【００６３】
以上の説明は、ノッキングの発生の有無を判定する制御ステップ手順を説明した。次に本実施形態の特徴的な構成であるステップＳ１０４の詳細な説明を行なうこととする。
【００６４】
従来技術におけるノッキングの発生の有無を判定する方法はおおむね次の通りである。振動センサは内燃機関の振動を検出し、ＡＤ変換器はその検出結果をデジタル信号に変換する。振動信号に対して、例えばバンドパスフィルタを適用することにより、ノック指標を算出するために用いる周波数成分（ここでは３つの周波数成分を例示した）を抽出する。
【００６５】
ＣＰＵは、周波数成分毎に加重平均を算出し、算出した加重平均を適当な指標（例えば、ステップＳ１０４で説明した振動強度ＳＬ）に変換する。ＣＰＵは、各周波数成分の指標を合算することによりノック指標を求め、ノック指標とノック判定閾値を比較することにより、ノッキングの発生の有無を判定するものである。
【００６６】
ところで、過渡運転時においては振動センサが検出した振動信号が急増するので、平均化処理を実施することにより求められるバックグラウンドレベルＢＧＬｉの演算結果が、実際のバックグラウンドレベルＢＧＬｉの値に対して遅れることになる。
【００６７】
ノック指標としてバックグランドレベルＢＧＬｉに対する周波数成分の比（Ｓ/Ｎ比）を用いる場合、バックグランドレベルＢＧＬｉの遅れは、ノック指標（Ｓ/Ｎ比）の分母が実際の値よりも小さくなる。したがって、ノック指標が本来の値よりも大きく算出されることになり、過渡運転状態においては、実際のノック指標がノック判定閾値を超えてしない、ノッキングが発生していないにもかかわらず、ノッキングが発生したと判定される恐れがある。
【００６８】
また、ノッキングの発生時や突発的な振動ノイズが発生すると、そのときの大きな振動信号がバックグラウンドレベルＢＧＬｉに反映されるので、バックグラウンドレベルＢＧＬｉの値を増大させることになる。そして、大きくなったバックグラウンドレベルＢＧＬｉを使用すると、ノック指標であるＳ/Ｎ比が小さくなり、通常では検出可能なノッキングが検出できなくなってしまう恐れがある。
【００６９】
そこで、本実施形態では、図８に示すような構成を提案することで、過渡時におけるノッキングの誤判定を抑制すると共に、内燃機関の定常運転／過渡運転を問わず正確なバックグラウンドレベルを算出することにより、ノッキングの検出精度を向上させるようにしたものである。尚、以下では特定周波数として、７kＨｚ、９kＨｚ、１２kＨｚの周波数を使用してノッキングの発生を検出するものとしている。
【００７０】
図８は、本実施形態におけるノッキングの発生の有無を判定するための演算ブロックである。各演算ブロックはＣＰＵ５５によって実施される演算機能である。尚、演算ブロックＢ１０１〜Ｂ１０３は、図７におけるステップＳ１０１〜Ｓ１０３に対応するものであるので説明は省略する。
【００７１】
演算ブロックＢ１０５において、例えば内燃機関の回転数や負荷などに基づき内燃機関の運転状態を推定する。図６に示すＲＯＭ５９には、内燃機関の運転状態と、その運転状態における標準的なバックグラウンドレベルの推定基準値との間の対応関係を記述したマップデータが予め格納されている。このバックグラウンドレベルの推定基準値は周波数成分毎に記述されている。演算ブロックＢ１０４は、推定した運転状態に基づきマップデータを参照することにより、現在の運転状態におけるバックグラウンドレベルの推定基準値を求める。以下、このバックグラウンドレベルの推定基準値を「基準バックグランドレベル」と表記する。
【００７２】
演算ブロックＢ１０５においては、演算ブロック１０３において抽出した周波数成分毎に、演算ブロックＢ１０４で対応する基準バックグラウンドレベルを読み出して減算することで差分値を演算する。これにより、回転数や負荷の変化によるバックグラウンドレベルの変動が後続の加重平均に対して入力されないことになるので、加重平均処理にともなう追従遅れを抑制することができる。ただし本演算ブロックにおいて減算した基準バックグラウンドレベルは、後続の演算ブロックＢ１１０において周波数成分毎に足し戻されて「修正バックグラウンドレベル」とされる。
【００７３】
演算ブロックＢ１０６において、演算ブロックＢ１０５により周波数成分毎に対応する周波数成分の基準バックグラウンドレベルを減算した差分値と、所定の振動ノイズ判定閾値を比較し、少なくとも１つ以上の差分値がノイズ判定閾値を超えているかどうかを判定して振動ノイズの有無を判定する。この振動ノイズの判定結果により、演算ブロック１０８は、演算ブロックＢ１０９への入力値を切り替える。
【００７４】
ここで、演算ブロック１０８には、演算ブロック１０５で求めた差分値と、演算ブロック１０７で第１の平均化処理の演算を行なった第１の補正差分値が入力されている。つまり、演算ブロックＢ１０８では、演算ブロックＢ１０５で求めた実際の差分値と、この実際の差分値を第１の平均化処理による加重平均演算した第１の補正差分値を切り替えるものである。
【００７５】
そして、演算ブロックＢ１０８によって選択された、実際の差分値、或いは加重平均された第１の補正差分値は、演算ブロックＢ１０９に送られる。演算ブロックＢ１０９は、実際の差分値、或いは第１の補正差分値を第２の平均化処理による加重平均演算を行なって、第２の補正差分値を求めている。
【００７６】
ここで、演算ブロックＢ１０７の第１の平均化処理の演算に使用する「重み係数」は、演算ブロックＢ１０９の第２の平均化処理の演算に使用する「重み係数」と異なる重み係数を設定することができ、自動車、或いは、内燃機関の運転環境に合わせて調整可能なものとされている。
【００７７】
本実施形態によれば、基準バックグラウンドレベルによって過渡期のバックグラウンドレベルの変動を抑えることができるものである。また、演算ブロックＢ１０７は、ノッキングの発生時や突発的な振動ノイズが発生した時のバックグラウンドレベルの変動を抑制することができる。尚、バックグラウンドレベルの変動を抑制する（バックグランドレベルをほぼ一定に維持する）ため、演算ブロックＢ１０７の第１の平均化処理の演算に使用する「重み係数」は、演算ブロックＢ１０９の第２の平均化処理の演算に使用する「重み係数」よりも大きくするのが良いものである。
【００７８】
ここで、本実施例では、演算ブロックＢ１０７の入力として演算ブロックＢ１０５で算出した差分値を用いているが、固定値を入力としてバックグラウンドレベルを固定値へ収束させる、または演算ブロックＢ１０９で算出した値を入力としてバックグラウンドレベルの更新を禁止させる構成としてもよい。これによって、ノッキングが検出されないような小さなレベルの振動ノイズ等のバックグラウンドレベルへの影響を軽減または無くすことができる。このため、バックグラウンドレベルの検出精度を高め、ノッキングの発生の有無の判断精度を向上することができる。
【００７９】
次に、演算ブロックＢ１１０において、演算ブロックＢ１０９で求められた周波数成分毎の加重平均された第２の補正差分値に対して、演算ブロックＢ１０４で求められた基準バックグラウンドレベルを周波数成分毎に足し戻すようにしている。これにより、信号成分は減算前の水準まで戻されることになる。これまでの処理によって、修正バックグランドレベルが求められることになる。
【００８０】
次に、演算ブロックＢ１１１では、夫々の周波数成分毎に演算ブロックＢ１１０で求めた修正バックグランドレベルと、演算ブロックＢ１０３からの各周波数成分とから各周波数成分の振動強度ＳＬ（Ｓ／Ｎ比）が求められる。ここで、振動強度ＳＬ（Ｓ／Ｎ比）を算出する際の分母は、演算ブロックＢ１１０の演算結果であり、分子は演算ブロックＢ１０３において抽出した周波数成分である。
【００８１】
したがって、演算ブロックＢ１１１に到達する前に演算ブロックＢ１０７と演算ブロックＢ１０９で平均化処理演算を行なっているため、バックグラウンドレベルの過渡状態での変動が抑制されているので、過渡状態でのノッキングの誤判定を抑制することができる。
【００８２】
演算ブロックＢ１１２は、演算ブロック１１１で求めた各周波数の振動強度を合算して最終ノック指標を演算するもので、図７のステップＳ１０５に対応している。また、演算ブロックＢ１１３は内燃機関の回転数に基づいてノック判定閾値を求めるものであり、図７のステップＳ１０６で使用されるノック判定閾値を求めている。更に、演算ブロックＢ１１４は、演算ブロック１１２で求めた振動強度と、演算ブロック１１３で求めたノック判定閾値を比較してノッキングの発生の有無を判定するもので、図７のステップＳ１０６〜Ｓ１０９に対応している。
【００８３】
そして、図８に示すような構成において、ノッキングが検出されると点火時期を遅角してノッキングを抑制するために点火時期を補正する。次にこの点火時期の補正方法について図９を用いて説明する。
【００８４】
図９は、図６に示すＣＰＵ４７によって点火時期を演算する手順を説明するフローチャートである。このフローチャートは、周期的に（例えば１０ｍｓｅｃ毎）起動されて実行されるものである。
【００８５】
≪ステップＳ２０１≫
ステップＳ２０１においては、図６に示すＲＡＭ５１内に設定された所定のレジスタから内燃機関の回転数Ｎと吸入空気量Ｑを読みこむ。これらの回転数Ｎや空気量Ｑは、ＣＰＵ４７によって実行されるプログラムによって演算されており、演算が終了するたびに、ＲＡＭ５１に記憶されていくものである。内燃機関の回転数Ｎと吸入空気量Ｑの読み込みが完了するとステップＳ２０２に移行する。
【００８６】
≪ステップＳ２０２≫
ステップＳ２０２においては、単位回転数当たりの吸入空気量Ｑ／Ｎ（基本燃料噴射量）を演算し、更に吸入空気量Ｑ／Ｎから燃料噴射時間幅Ｔｉを求める。また、ＲＯＭ４９内に格納されている基本点火時期マップから基本点火時期θｂａｓｅを求める。基本点火時期マップは、吸入空気量Ｑ／Ｎと回転数Ｎ、および基本点火時期θｂａｓｅの対応関係を記述したデータマップである。基本点火時期が求まるとステップＳ２０３に移行する。
【００８７】
≪ステップＳ２０３≫
ステップＳ２０３においては、ノックフラグ（ＣＰＵ５５が図７のステップＳ１０８、Ｓ１０９で求めたもの）にしたがってノッキングの発生の有無を判定する。ノックフラグが「１」であれば、ノッキングが発生しているのでステップＳ２０４へ進み、ノックフラグが「０」であれば、ノッキングが発生していないのでステップＳ２０６へ進む。
【００８８】
≪ステップＳ２０４≫
ステップＳ２０３においてノッキングが発生したと判断されているので、ステップＳ２０４においては、進角補正値θａｄｖから所定の遅角値Δθｒｅｔを減算する。この減算によって後述する最終点火時期が遅角（リタード）される。進角補正値θａｄｖは内燃機関の状態（機関温度、バッテリ電圧、負荷変動等）に基づいて演算されている。進角補正値θａｄｖが求まるとステップＳ２０５に移行する。
【００８９】
≪ステップＳ２０５≫
ステップＳ２０５においては、カウント値Ａを初期化してステップＳ２１０に進む。このカウント値Ａは、ノッキングの発生を抑制するために遅角した点火時期を、進角側にリカバーする時期を決めるための変数である。カウント値Ａの用い方については後述のステップで説明する。カウント値ＡがリセットされるとステップＳ２１０に移行する。
【００９０】
≪ステップＳ２０６≫
ステップＳ２０３でノッキングが発生していないと判断されているので、ステップＳ２０６においては、カウント値Ａを１つカウントアップする。カウント値Ａが「＋１」だけインクリメントされるとステップＳ２０７に移行する。
【００９１】
≪ステップＳ２０７≫
ステップＳ２０７においては、カウント値Ａが所定値（例えば「５０」）に到達したか否かを判断する。到達している場合はステップＳ２０８へ進み、到達していない場合はステップＳ２１０へスキップする。
【００９２】
≪ステップＳ２０８≫
ステップＳ２０８においては、ステップＳ２０４で求めた進角補正値θａｄｖに対して所定の補正値Δθａｄｖ（一定値）を加算して進角補正を行なう。この加算により、ステップＳ２０４において遅角された進角補正値θａｄｖが所定の補正値Δθａｄｖだけ進角側に補正されることになる。本実施形態のように１０ｍｓｅｃ毎に起動されている場合、カウント値Ａが「５０」に到達した時点において、カウント値Ａが初期化されてから０. ５秒が経過したことになる。すなわち、ステップＳ２０８は、ノッキングの発生により点火時期を遅角値Δθｒｅｔだけ遅角させてから０. ５秒が経過する毎に、点火時期を補正値Δθａｄｖだけ進角側にリカバーするものである。点火時期のリカバーが完了するとステップＳ２０９に移行する。
【００９３】
≪ステップＳ２０９≫
ステップＳ２０８においては、カウント値Ａを「０」に初期化する。したがって、以下に示す制御ステップを実行して次の起動タイミングが到来してノッキングが検出されないと、ステップＳ２０６〜Ｓ２０９を繰り返すことになる。これによって、ノッキングが発生するまで点火時期は段階的に進角されていくことになる。カウント値ＡがリセットされるとステップＳ２１０に移行する。
【００９４】
≪ステップＳ２１０≫
ステップＳ２１０においては、ステップＳ２０２で求めた基本点火時期θｂａｓｅに対して、進角補正値θａｄｖを加えることにより、最終点火時期θｉｇｎを演算する。最終点火時期θｉｇｎが求まると、ステップＳ２１１に移行する。
【００９５】
≪ステップＳ２１１≫
ステップＳ２１１においては、ＲＯＭ４９内に格納されている最大進角値マップから最大進角値θｒｅｓを読み出す。最大進角値マップは、吸入空気量Ｑ／Ｎ、回転数Ｎ、および最大進角値θｒｅｓの対応関係を記述したデータマップである。最大進角値θｒｅｓが求まるとステップＳ２１２に移行する。
【００９６】
≪ステップＳ２１２≫
ステップＳ２１２においては、最終点火時期θｉｇｎが最大進角値θｒｅｓを超えたかをどうかを判断する。最終点火時期θｉｇｎが最大進角値θｒｅｓを超えていなければステップＳ２１４へスキップする。最終点火時期θｉｇｎが最大進角値θｒｅｓを超えている場合はステップＳ２１３に移行する。
【００９７】
≪ステップＳ２１３≫
ステップＳ２１２で最終点火時期θｉｇｎが最大進角値θｒｅｓを超えていると判断されているので、ステップＳ２１３においては、最終点火時期θｉｇｎが進角しすぎているとして最終点火時期θｉｇｎを最大進角値θｒｅｓに置き換えてセットする。最終点火時期θｉｇｎを最大進角値θｒｅｓに置き換えるとステップＳ２１４に移行する。これまでの処理で最終点火時期θｉｇｎが求まり、これに基づいて点火コイルへの通電が制御されることになる。ステップＳ２１２，Ｓ２１３が完了するとステップＳ２１４に移行する。
【００９８】
≪ステップＳ２１４≫
ステップＳ２１４においては、振動センサ４３の振動信号の取り込みの設定をおこなうもので、内燃機関の運転状態に応じて、ディレイ時間、サンプリング点数、分周比をＩ/Ｏポート５６に対して出力する。尚、分周比によって振動センサ４３の出力のデジタル値のサンプリング周期が決まり、サンプリング点数によってサンプリング点数が決まるようになっている。
【００９９】
以上のステップＳ２０１〜Ｓ２１４の制御ステップが完了するとリターンに抜けて、次の起動タイミングの到来を待つことになる。
【０１００】
このように、本実施形態においては、振動センサの周波数成分から予め求めた基準バックグラウンドレベルを減算した差分値を平均化処理し、その後にバックグラウンドレベルを足し戻すようにしている。差分値の平均化処理においてはバックグラウンドレベルの過渡変動が抑制されるので、その過渡変動にともなう算出遅れとこれを原因とするノッキング誤検出を抑制することができる。
【０１０１】
また、平均化処理を行う前に差分値を用いて振動ノイズ判定を行うことで、バックグラウンドレベルの精度を向上することができ、ノッキング検出の精度を高めることができる。したがって、広い範囲の運転状態において点火時期を最適に制御することが可能となる。
【０１０２】
図１０は、基準バックグラウンドレベルを記述したマップデータを示している。マップデータは、内燃機関の回転数（または変化率）、内燃機関の負荷（または変化率）、基準バックグラウンドレベル（または、規定レベルに対する補正値）の対応関係を記述している。図１０に示す例においては、高回転側／高負荷側で基準バックグラウンドレベルが大きくなる傾向に設定されている。
【０１０３】
基準バックグラウンドレベルを推定する方法として、ＣＰＵ５５は、スロットルセンサ信号（スロットル開度を表す信号）、吸入空気量信号（内燃機関に対する吸入空気量を表す信号）、燃料噴射パルス信号（燃料噴射弁を駆動するパルス信号）、吸気管圧力信号（吸気管６の内部の圧力を表す信号）などの負荷状態を表すセンサ信号を取得し、これら信号に基づき運転状態を推定してもよい。
【０１０４】
これら信号と運転状態との間の対応関係は、例えば図１０と同様のマップデータなどによって記述することもできるし、その他適当な方法により運転状態を算出することもできる。さらには、図１０に例示する内燃機関の回転数と内燃機関の負荷のマップデータを組み合わせてもよいものである。
【０１０５】
上述の実施形態においては、ＣＰＵ５５がソフトウェア（制御プログラム）を実行することにより、周波数分析、平均化処理、基準バックグラウンドレベルの推定、ノック指標算出、ノック判定等のノッキング検出のための演算を実施することを説明した。
【０１０６】
しかしながら、同等の機能を回路デバイスなどのハードウェアを実装して実行することも可能である。例えば、周波数分析、平均化処理、基準バックグラウンドレベルの推定、ノック指標算出、ノック判定等のうちいずれか１つ以上を、回路デバイスによって実装しても良いものである。
【０１０７】
また、シリンダブロックに取り付けられた振動センサ４３からの出力は、内燃機関の回転数や負荷の上昇により増大する特性を持っている。これは、内燃機関内でのピストンスラッジなどのメカニカル振動ノイズや燃焼モード変化によるものである。したがって、図７のステップＳ１０３において、シリンダ毎に異なる周波数成分を選択することも可能である。
【０１０８】
また、振動センサ４３は、インジェクタ２６が動作することに起因するインジェクタ振動ノイズを取り込むことがある。つまり、インジェクタ２６を作動させる期間をサンプリングウインドウとして設定すると、そのサンプリングウインドウ内でインジェクタ振動ノイズが取り込まれるようになる。
【０１０９】
このインジェクタ振動ノイズは、ノック指標を算出する際に不要で、しかも悪影響を及ぼすので、除去することが望ましい。そこで、想定されるインジェクタ振動ノイズを記述したデータをあらかじめＲＯＭ４９などに格納しておき、ＣＰＵ５５はサンプリングウインドウ内における振動センサ４３の検出結果から、そのインジェクタ振動ノイズを減算してもよい。これにより、インジェクタ振動ノイズに影響されることなくノック指標を正確に算出することができる。
【０１１０】
また、予め定めた基準バックグラウンドレベルを記述したマップデータは、標準的なバックグラウンドレベルを記述するものであるので、バックグラウンドレベルの過渡的な変動については同マップデータ内に記述しないことが望ましい。例えば、回転数や負荷が急変したときにバックグラウンドレベルも急変することが想定されるが、そのような急変するバックグラウンドレベルについては、マップデータ内に記述しないようにしている。具体的には、バックグラウンドレベルの変動率がある範囲以内のものだけマップデータ内に記述することが望ましい。
【０１１１】
振動センサ４３の検出結果から抽出した周波数成分は、必ずしも全て抽出する必要はなく、例えば代表的な周波数成分のみ抽出して他の周波数成分は補間処理により補うこともできる。補間処理のための演算式は、例えば、試験結果などに基づき予め定めておくことができる。これにより周波数成分を抽出するための演算負荷を抑制することができる。
【０１１２】
以上の実施形態においては、バックグラウンドレベルに対する周波数成分の比率（Ｓ／Ｎ比）をその周波数成分のノック指標として算出しているが、比率に代えてバックグラウンドレベルに対する差分をノック指標として用いても良いものである。
【０１１３】
また、振動センサ４３の周波数成分から基準バックグラウンドレベルを減算した差分値を用いて振動ノイズの判定を行っている(演算ブロックＢ１０６)が、これに限ることなく、ノック判定(演算ブロックＢ１１４)の結果を演算ブロックＢ１０６の代用として使用することができる。また、演算ブロックＢ１１４で使用する最終ノック指標を、演算ブロックＢ１１４で使用するノック判定閾値とは異なる別の振動ノイズ判定閾値で判定した結果を演算ブロックＢ１０６の代用として使用しても良いものである。
【０１１４】
以上述べた通り、本発明は、振動センサが検出した周波数毎の信号成分から、予め求められていた基準バックグラウンドレベルを減算して差分値を求め、この差分値に平均化処理の演算を行なって求めた補正差分値を基準バックグラウンドレベルに加算して最終的な修正バックグラウンドレベルとする、構成とした。
【０１１５】
また、振動センサが検出した周波数毎の信号成分から、予め求めていた基準バックグラウンドレベルを減算して差分値を求め、この差分値に振動ノイズが有る場合、差分値に第１の平均化処理の演算を行なって求めた第１の補正差分値に、更に第２の平均化処理の演算を行って第２の補正差分値を求め、また、差分値に振動ノイズが無い場合は、実際の差分値に第２の平均化処理の演算を行って第２の補正差分値を求め、第２の平均化処理の演算を行なった第２の補正差分値を基準バックグラウンドレベルに加算して最終的な修正バックグラウンドレベルとする、構成とした。
【０１１６】
これによれば、過渡運転時においてバックグラウンドレベルを算出する際の追従性が高まるので、平滑化処理を強くかけることができる。また、同時にノイズ発生時にバックグラウンドレベルを補正することにより過渡時におけるノッキングの誤判定を抑制するとともに、内燃機関の定常運転／過渡運転を問わずノック検出精度を向上させることができる。
【０１１７】
尚、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
【符号の説明】
【０１１８】
１０…内燃機関の制御装置（コントロールユニット）、１１…シリンダヘッド、１２…シリンダブロック、１３…ピストン、１４…燃焼室、１５…クランク軸、１６…水温センサ、１７…吸気通路、１８…エアクリーナ、１８ａ…入口部、１９…スロットルセンサ、２０…エアフロセンサ、２１…電制スロットル弁、２２…スロットルボディ、２３…コレクタ、２４…吸気弁、２５…カムシャフト、２６…インジェクタ、２７…点火コイル、２８…点火プラグ、２９…ポジションセンサ、３０、クランク角センサ、３１…排気通路、３２…コンバータ、３３…排気弁、３４…カムシャフト、３５…燃料タンク、３６…低圧燃料ポンプ、３７…レギュレータ、３８…コモンレール、３９…電制リリーフ弁、４０…燃圧センサ、４１…高圧燃料ポンプ、４２…変速機、４３…振動センサ。
【図１】
2018096255.tif 000003
【図２】
2018096255.tif 000004
【図３】
2018096255.tif 000005
【図４】
2018096255.tif 000006
【図５】
2018096255.tif 000007
【図６】
2018096255.tif 000008
【図７】
2018096255.tif 000009
【図８】
2018096255.tif 000010
【図９】
2018096255.tif 000011
【図１０】
2018096255.tif 000012