(57)【特許請求の範囲】
【請求項１】
内燃機関のノック振動を検出するノックセンサの出力信号に基づいてノック振動指標を算出し、該ノック振動指標をノック判定値と比較してノックの有無を判定するノック判定手段を備えた内燃機関のノック判定装置において、
所定期間毎に前記ノック振動指標のデータに基づいてノック振動指標分布の分布状態を判定する分布状態判定手段と、
所定期間毎に前記ノック判定手段によりノック有りと判定された回数に基づいてノック検出頻度を判定するノック検出頻度判定手段と、
前記ノック振動指標分布の分布状態と前記ノック検出頻度とに基づいて該ノック検出頻度が所定範囲内に収まるように前記ノック判定値を補正するノック判定値補正手段と
を備え、
前記分布状態判定手段は、前記ノック振動指標分布の中央値よりもノック振動指標が大きい領域のばらつき幅と該中央値よりもノック振動指標が小さい領域のばらつき幅との大小関係に基づいて前記ノック振動指標分布がノック過剰発生状態に相当する分布状態であるか否かを判定し、
前記ノック判定値補正手段は、前記ノック振動指標分布の中央値よりもノック振動指標が大きい領域の標準偏差と該中央値よりもノック振動指標が小さい領域の標準偏差との差又は比が所定範囲外の場合に、前記ノック判定値を、ノックを検出し易い方向に補正することを特徴とする内燃機関のノック判定装置。
【請求項２】
内燃機関のノック振動を検出するノックセンサの出力信号に基づいてノック振動指標を算出し、該ノック振動指標をノック判定値と比較してノックの有無を判定するノック判定手段を備えた内燃機関のノック判定装置において、
所定期間毎に前記ノック振動指標のデータに基づいてノック振動指標分布の分布状態を判定する分布状態判定手段と、
所定期間毎に前記ノック判定手段によりノック有りと判定された回数に基づいてノック検出頻度を判定するノック検出頻度判定手段と、
前記ノック振動指標分布の分布状態と前記ノック検出頻度とに基づいて該ノック検出頻度が所定範囲内に収まるように前記ノック判定値を補正するノック判定値補正手段と
を備え、
前記分布状態判定手段は、前記ノック振動指標分布の中央値よりもノック振動指標が大きい領域のばらつき幅と該中央値よりもノック振動指標が小さい領域のばらつき幅との大小関係に基づいて前記ノック振動指標分布がノック過剰発生状態に相当する分布状態であるか否かを判定し、
前記ノック判定値補正手段は、前記ノック振動指標分布の中央値よりもノック振動指標が大きい領域の標準偏差と該中央値よりもノック振動指標が小さい領域の標準偏差との差又は比が所定範囲内で且つ前記ノック検出頻度が所定値よりも大きい場合に、前記ノック判定値を、ノックを検出し易い方向に補正することを特徴とする内燃機関のノック判定装置。
【請求項３】
前記ノック判定値補正手段は、前記ノック振動指標分布の中央値よりもノック振動指標が大きい領域の標準偏差と該中央値よりもノック振動指標が小さい領域の標準偏差との差又は比が所定範囲内で且つ前記ノック検出頻度が所定値よりも大きい場合でも、前記ノック振動指標分布が正規分布であれば、前記ノック判定値を、ノックを検出し難い方向に補正することを特徴とする請求項２に記載の内燃機関のノック判定装置。
【請求項４】
内燃機関のノック振動を検出するノックセンサの出力信号に基づいてノック振動指標を算出し、該ノック振動指標をノック判定値と比較してノックの有無を判定するノック判定手段を備えた内燃機関のノック判定装置において、
所定期間毎に前記ノック振動指標のデータに基づいてノック振動指標分布の分布状態を判定する分布状態判定手段と、
所定期間毎に前記ノック判定手段によりノック有りと判定された回数に基づいてノック検出頻度を判定するノック検出頻度判定手段と、
前記ノック振動指標分布の分布状態と前記ノック検出頻度とに基づいて該ノック検出頻度が所定範囲内に収まるように前記ノック判定値を補正するノック判定値補正手段と
を備え、
前記分布状態判定手段は、前記ノック振動指標分布の中央値よりもノック振動指標が大きい領域のばらつき幅と該中央値よりもノック振動指標が小さい領域のばらつき幅との大小関係に基づいて前記ノック振動指標分布がノック過剰発生状態に相当する分布状態であるか否かを判定し、
前記ノック判定値補正手段は、前記ノック振動指標分布の中央値よりもノック振動指標が大きい領域の標準偏差と該中央値よりもノック振動指標が小さい領域の標準偏差との差又は比が所定範囲内で且つ前記ノック検出頻度が所定値よりも小さい場合に、前記ノック判定値を、ノックを検出し難い方向に補正することを特徴とする内燃機関のノック判定装置。
【請求項５】
前記ノック判定値補正手段により補正されたノック判定値又は該ノック判定値の補正に用いた係数を書き換え可能な不揮発性メモリに記憶して学習する学習手段を備えていることを特徴とする請求項１乃至４のいずれかに記載の内燃機関のノック判定装置。
【請求項６】
前記学習手段は、前記ノック判定値補正手段により補正されたノック判定値又は該ノック判定値の補正に用いた係数を内燃機関の運転状態に応じた学習領域毎に学習することを特徴とする請求項５に記載の内燃機関のノック判定装置。
【請求項７】
前記ノック判定手段は、前記ノックセンサの出力信号から抽出した複数の周波数帯の振動成分毎に前記ノック振動指標を前記ノック判定値と比較してノックの有無を判定し、
前記ノック判定値補正手段は、各周波数帯の振動成分毎に前記ノック振動指標分布の分布状態と前記ノック検出頻度とに基づいて該ノック検出頻度が所定範囲内に収まるように前記ノック判定値を補正することを特徴とする請求項１乃至６のいずれかに記載の内燃機関のノック判定装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ノックセンサの出力信号から求めたノック振動指標をノック判定値と比較してノックの有無を判定する内燃機関のノック判定装置に関する発明である。
【背景技術】
【０００２】
従来より、特許文献１（特許第２６０５８０５号公報）に示すように、ノックセンサの出力信号から算出された振動強度の対数変換値の分布（以下「振動強度分布」という）を判定し、この振動強度分布からノック判定値を演算するようにしたものがある。このノック判定値の演算方法を図２に基づいて説明すると、振動強度分布の形状を評価する統計的指標となる中央値ｖｍｅｄと標準偏差ｓｇｍを算出し、この標準偏差ｓｇｍをｕ倍（一般には３倍）した値を中央値ｖｍｅｄに加算してノック判定値ｖｋｄｌを求めるようにしている。
ノック判定値ｖｋｄｌ＝ｖｍｅｄ＋ｕ×ｓｇｍ
【特許文献１】特許第２６０５８０５号公報（第３頁〜第４頁等参照）
【発明の開示】
【発明が解決しようとする課題】
【０００３】
ところで、図３に示すように、ノックが頻発するような運転条件では、振動強度分布の中央値ｖｍｅｄと標準偏差ｓｇｍが共に大きくなる発散現象が発生する。このため、ノックが頻発するような運転条件では、ノック判定値ｖｋｄｌ（＝ｖｍｅｄ＋ｕ×ｓｇｍ）がノック無し時と比較して著しく大きくなってしまい、実際にはノックが頻発しているのにノックを検出できなくなる可能性がある。
【０００４】
また、システムの個体差（製造誤差）や経時変化等によるばらつきによっても振動強度分布の形状が変化して振動強度分布の中央値ｖｍｅｄや標準偏差ｓｇｍが変化することがあるため、システムのばらつきによる振動強度分布の変化の影響を受けてノック判定値ｖｋｄｌ（＝ｖｍｅｄ＋ｕ×ｓｇｍ）が適正範囲から外れてしまい、ノック検出精度が変化してしまう可能性がある。
【０００５】
本発明は、これらの事情を考慮してなされたものであり、従って本発明の目的は、ノックの頻発やシステムのばらつきによるノック振動指標分布の変化の影響を受けずに適正なノック判定値を設定することができ、安定したノック検出精度を確保することができる内燃機関のノック判定装置を提供することにある。
【課題を解決するための手段】
【０００６】
上記目的を達成するために、請求項１に係る発明は、内燃機関のノック振動を検出するノックセンサの出力信号に基づいてノック振動指標を算出し、該ノック振動指標をノック判定値と比較してノックの有無を判定するノック判定手段を備えた内燃機関のノック判定装置において、所定期間毎（例えば所定点火数毎）にノック振動指標のデータに基づいてノック振動指標分布の分布状態を分布状態判定手段により判定すると共に、所定期間毎にノック判定手段によりノック有りと判定された回数に基づいてノック検出頻度をノック検出頻度判定手段により判定し、ノック振動指標分布の分布状態とノック検出頻度とに基づいて該ノック検出頻度が所定範囲内に収まるようにノック判定値をノック判定値補正手段により補正することを第１の特徴とし、更に、前記分布状態判定手段によって、前記ノック振動指標分布の中央値よりもノック振動指標が大きい領域のばらつき幅と該中央値よりもノック振動指標が小さい領域のばらつき幅との大小関係に基づいて前記ノック振動指標分布がノック過剰発生状態に相当する分布状態であるか否かを判定し、前記ノック判定値補正手段によって、前記ノック振動指標分布の中央値よりもノック振動指標が大きい領域の標準偏差と該中央値よりもノック振動指標が小さい領域の標準偏差との差又は比が所定範囲外の場合に、前記ノック判定値を、ノックを検出し易い方向に補正することを第２の特徴とするものである。
【０００７】
この構成では、ノックの頻発やシステムのばらつきによってノック振動指標分布が変化してノック検出頻度が変化しても、そのノック振動指標分布の分布状態やノック検出頻度に応じてノック検出頻度が適正範囲内に収まるようにノック判定値を補正することができるため、ノックの頻発やシステムのばらつきによるノック振動指標分布の変化の影響を受けずに適正なノック判定値を設定することができ、安定したノック検出精度を確保することができる。
【０００８】
この場合、請求項１のように、ノック振動指標分布の中央値よりもノック振動指標が大きい領域のばらつき幅（以下「上側ばらつき幅」という）と該中央値よりもノック振動指標が小さい領域のばらつき幅（以下「下側ばらつき幅」という）との大小関係に基づいてノック振動指標分布がノック過剰発生状態に相当する分布状態であるか否かを判定するようにすると良い。ノック検出頻度が適正範囲内であれば、ノック振動指標分布が概ね正規分布となるため、上側ばらつき幅と下側ばらつき幅との差が小さくなるが、ノックが頻発するノック過剰発生状態では、ノック振動指標分布の上側ばらつき幅と下側ばらつき幅との差が大きくなるため、上側ばらつき幅と下側ばらつき幅との大小関係を評価すれば、ノック振動指標分布がノック過剰発生状態に相当する分布状態であるか否かを精度良く判定することができる。
【０００９】
ノック判定値の具体的な補正方法としては、請求項１のように、ノック振動指標分布の中央値よりもノック振動指標が大きい領域の標準偏差（以下「上側標準偏差」という）と該中央値よりもノック振動指標が小さい領域の標準偏差（以下「下側標準偏差」という）との差又は比が所定範囲外の場合には、ノック判定値を、ノックを検出し易い方向に補正するようにすると良い。このようにすれば、上側標準偏差と下側標準偏差との差又は比が所定範囲外の場合には、ノック振動指標分布がノック過剰発生状態に相当する分布状態であるため、ノック頻発の影響でノック判定値が適正範囲から外れて、実際にはノックが頻発しているのにノック検出頻度が小さくなっている可能性があると判断して、ノック判定値を、ノックを検出し易い方向に補正することで、ノック判定値を適正範囲内に設定することができる。
【００１０】
また、請求項２のように、上側標準偏差と下側標準偏差との差又は比が所定範囲内で且つノック検出頻度が所定値よりも大きい場合には、ノック判定値を、ノックを検出し易い方向に補正するようにしても良い。このようにすれば、ノック検出頻度が所定値よりも大きい場合には、ノック制御により点火時期が遅角側に補正されるため、ノック振動強度が小さくなってノックを検出し難くなる可能性があると判断して、ノック判定値を、ノックを検出し易い方向に補正することで、ノック判定値を適正範囲内に設定することができる。
【００１１】
但し、請求項３のように、上側標準偏差と下側標準偏差との差又は比が所定範囲内で且つノック検出頻度が所定値よりも大きい場合でも、ノック振動指標分布が正規分布であれば、ノック判定値を、ノックを検出し難い方向に補正するようにしても良い。このようにすれば、ノック検出頻度が所定値よりも大きいにも拘らず、ノック振動指標分布が正規分布である場合には、ノックを誤検出している可能性が高いと判断して、ノック判定値を、ノックを検出し難い方向に補正することで、ノックの誤検出を防止することができる。
【００１２】
また、請求項４のように、上側標準偏差と下側標準偏差との差又は比が所定範囲内で且つノック検出頻度が所定値よりも小さい場合には、ノック判定値を、ノックを検出し難い方向に補正するようにしても良い。このようにすれば、ノック検出頻度が所定値よりも小さい場合には、ノック制御により点火時期が進角側に補正されるため、ノック振動強度が大きくなってノック検出し易くなる可能性があると判断して、ノック判定値を、ノックを検出し難い方向に補正することで、ノック判定値を適正範囲内に設定することができる。
【００１３】
更に、請求項５のように、補正されたノック判定値又は該ノック判定値の補正に用いた係数を学習手段により書き換え可能な不揮発性メモリ（制御回路の電源オフ中でも記憶データを保持する書き換え可能なメモリ）に記憶して学習するようにしても良い。このようにすれば、制御回路の電源がオフされる内燃機関の停止中も、補正されたノック判定値又は該ノック判定値の補正に用いた係数を学習値として保持することができるため、内燃機関の始動直後から前回の運転中の補正を反映したノック判定値を用いてノック判定を行うことができる。
【００１４】
この場合、請求項６のように、ノック判定値補正手段により補正されたノック判定値又は該ノック判定値の補正に用いた係数を内燃機関の運転状態に応じた学習領域毎に学習するようにしても良い。このようにすれば、各学習領域の学習値を用いて内燃機関の運転状態に応じた適正なノック判定値を設定することができる。
【００１５】
また、請求項７のように、ノックセンサの出力信号から抽出した複数の周波数帯の振動成分毎にノック振動指標をノック判定値と比較してノックの有無を判定し、各周波数帯の振動成分毎にノック振動指標分布の分布状態とノック検出頻度とに基づいて該ノック検出頻度が所定範囲内に収まるようにノック判定値を補正するようにしても良い。このようにすれば、各周波数帯毎にノックの頻発やシステムのばらつきによるノック振動指標分布の変化の影響を受けずに適正なノック判定値を設定することができる。
【発明を実施するための最良の形態】
【００１６】
以下、本発明を実施するための最良の形態を具体化した幾つかの実施例を説明する。
【実施例１】
【００１７】
本発明の実施例１を図１乃至図８に基づいて説明する。
まず、図１に基づいてエンジン制御システム全体の概略構成を説明する。
内燃機関であるエンジン１１の吸気管１２の最上流部には、エアクリーナ１３が設けられ、このエアクリーナ１３の下流側に、吸入空気量を検出するエアフローメータ１４が設けられている。このエアフローメータ１４の下流側には、モータ１５によって開度調節されるスロットルバルブ１６と、このスロットルバルブ１６の開度（スロットル開度）を検出するスロットル開度センサ１７とが設けられている。
【００１８】
更に、スロットルバルブ１６の下流側には、サージタンク１８が設けられ、このサージタンク１８に、吸気管圧力を検出する吸気管圧力センサ１９が設けられている。また、サージタンク１８には、エンジン１１の各気筒に空気を導入する吸気マニホールド２０が設けられ、各気筒の吸気マニホールド２０の吸気ポート近傍に、それぞれ燃料を噴射する燃料噴射弁２１が取り付けられている。また、エンジン１１のシリンダヘッドには、各気筒毎に点火プラグ２２が取り付けられ、各点火プラグ２２の火花放電によって筒内の混合気に着火される。
【００１９】
一方、エンジン１１の排気管２３には、排出ガスの空燃比又はリッチ／リーン等を検出する排出ガスセンサ２４（空燃比センサ、酸素センサ等）が設けられ、この排出ガスセンサ２４の下流側に、排出ガスを浄化する三元触媒等の触媒２５が設けられている。
【００２０】
また、エンジン１１のシリンダブロックには、冷却水温を検出する冷却水温センサ２６や、ノック振動を検出するノックセンサ２９が取り付けられている。また、クランク軸２７の外周側には、クランク軸２７が所定クランク角回転する毎にパルス信号を出力するクランク角センサ２８が取り付けられ、このクランク角センサ２８の出力信号に基づいてクランク角やエンジン回転速度が検出される。
【００２１】
これら各種センサの出力は、エンジン制御回路（以下「ＥＣＵ」と表記する）３０に入力される。このＥＣＵ３０は、マイクロコンピュータを主体として構成され、内蔵されたＲＯＭ（記憶媒体）に記憶された各種のエンジン制御プログラムを実行することで、エンジン運転状態に応じて燃料噴射弁２１の燃料噴射量や点火プラグ２２の点火時期を制御する。
【００２２】
更に、ＥＣＵ３０は、後述する図５乃至図８のノック判定用の各ルーチンを実行することで、次のようにしてノック判定を行う。
図４に示すように、まず、ピーク値検出部３２で、所定のノック判定区間におけるノックセンサ２９の出力信号のピーク値ｖｐｅａｋを検出した後、対数変換部３３で、このピーク値ｖｐｅａｋを対数変換した値を振動強度ｌｖｐｋ（ノック振動指標）として算出する。
【００２３】
更に、統計演算部３４で、振動強度ｌｖｐｋのデータを統計的に処理して振動強度分布を判定し、この振動強度分布の中央値ｖｍｅｄと、この中央値ｖｍｅｄよりも振動強度ｌｖｐｋが小さい領域の標準偏差（ばらつき幅）である下側標準偏差ｓｇｍ＿Ｌと、中央値ｖｍｅｄよりも振動強度ｌｖｐｋが大きい領域の標準偏差（ばらつき幅）である上側標準偏差ｓｇｍ＿Ｈを算出する。
【００２４】
この後、ノック判定値演算部３５で、振動強度分布の中央値ｖｍｅｄに下側標準偏差ｓｇｍ＿Ｌのｕ倍の値を加算してノック判定値ｖｋｄｌを求める。
ｖｋｄｌ＝ｖｍｅｄ＋ｕ×ｓｇｍ＿Ｌ
ここで、ｕ値（係数）は、初期値が例えば「３」に設定されているが、後述するｕ値補正部４０で補正される。
【００２５】
この後、ノック判定部３６（ノック判定手段）で、振動強度ｌｖｐｋをノック判定値ｖｋｄｌと比較してノックの有無を判定し、ノック有りと判定されたときに点火時期を遅角側に補正してノックを抑制し、ノック無しと判定されたときに点火時期を進角側に補正するというノック制御をノック制御部３７で行うことで、聴感で許容できるノック音の範囲内で点火時期を進角させてエンジン出力や燃費を向上させるようにしている。
【００２６】
また、本実施例１では、ノックの頻発によって振動強度分布が変化した場合や、システムの個体差（製造誤差）や経時変化等によるばらつきによって振動強度分布が変化した場合の影響を補償するために、次のようにしてノック判定値ｖｋｄｌを補正する。
【００２７】
まず、分布状態判定部３８（分布状態判定手段）で、所定点火回数毎に振動強度分布の上側標準偏差ｓｇｍ＿Ｈと下側標準偏差ｓｇｍ＿Ｌとの比ｓｇｍ＿ｒａｔｉｏを求め、この比ｓｇｍ＿ｒａｔｉｏが「１」前後の所定範囲内であるか否かによって振動強度分布の分布状態を判定する。
【００２８】
ノック検出頻度が適正範囲内であれば、振動強度分布が概ね正規分布となるため、上側標準偏差と下側標準偏差との差が小さくなって、上側標準偏差と下側標準偏差との比ｓｇｍ＿ｒａｔｉｏが「１」前後の所定範囲内となるが、ノックが頻発するノック過剰発生状態では、振動強度分布の上側標準偏差と下側標準偏差との差が大きくなるため、上側標準偏差と下側標準偏差との比ｓｇｍ＿ｒａｔｉｏが所定範囲外となる。従って、上側標準偏差と下側標準偏差との比ｓｇｍ＿ｒａｔｉｏが「１」前後の所定範囲内であれば、振動強度分布が概ね正規分布であると判断でき、上側標準偏差と下側標準偏差との比ｓｇｍ＿ｒａｔｉｏが所定範囲外であれば、振動強度分布がノック過剰発生状態に相当する分布状態であると判断できる。
【００２９】
更に、ノック検出頻度判定部３９（ノック検出頻度判定手段）で、所定点火回数毎にノック判定部３６によりノック有りと判定された回数が所定値Ｍよりも大きいか否かによって、ノック検出頻度が所定値Ｍよりも大きいか否かを判定する。
【００３０】
この後、ｕ値補正部４０（ノック判定値補正手段）で、分布状態判定部３８により判定した振動強度分布の分布状態とノック検出頻度判定部３９により判定したノック検出頻度とに基づいてｕ値を補正することで、ノック検出頻度が適正範囲内に収まるようにノック判定値ｖｋｄｌ（＝ｖｍｅｄ＋ｕ×ｓｇｍ＿Ｌ）を補正する。
【００３１】
この後、ｕ値学習部４１（学習手段）で、ｕ値補正部４０により補正されたｕ値をＥＣＵ３０のバックアップＲＡＭ３１等の書き換え可能な不揮発性メモリ（ＥＣＵ３０の電源オフ中でも車載バッテリをバックアップ電源として記憶データを保持する書き換え可能なメモリ）に記憶する。
【００３２】
以上説明した本実施例１のノック判定は、ＥＣＵ３０によって図５乃至図８のノック判定用の各ルーチンに従って実行される。以下、各ルーチンの処理内容を説明する。
【００３３】
［ノック判定メインルーチン］
図５に示すノック判定メインルーチンは、ＥＣＵ３５の電源オン中に所定周期で実行される。本ルーチンが起動されると、まず、ステップ１００で、後述する図６のノック判定ルーチンを実行することで、ノックセンサ２９の出力信号から求めた振動強度ｌｖｐｋをノック判定値ｖｋｄｌと比較してノックの有無を判定する。
【００３４】
この後、ステップ２００で、後述する図７の統計的指標算出ルーチンを実行することで、振動強度分布の中央値ｖｍｅｄと下側標準偏差ｓｇｍ＿Ｌ及び上側標準偏差ｓｇｍ＿Ｈを算出する。
【００３５】
この後、ステップ３００で、後述する図８のｕ値補正ルーチンを実行することで、振動強度分布の分布状態を判定すると共にノック検出頻度を判定し、振動強度分布の分布状態とノック検出頻度とに基づいてノック検出頻度が所定の適正範囲内に収まるようにノック判定値ｖｋｄｌを補正する。
【００３６】
［ノック判定ルーチン］
図６に示すノック判定ルーチンは、前記図５のノック判定メインルーチンのステップ１００で実行されるサブルーチンである。本ルーチンが起動されると、まず、ステップ１０１で、所定のノック判定区間におけるノックセンサ２９の出力信号のピーク値ｖｐｅａｋを検出する。この後、ステップ１０２に進み、このピーク値ｖｐｅａｋを対数変換した値を振動強度ｌｖｐｋとして算出する。
【００３７】
この後、ステップ１０３に進み、点火回数をカウントする点火回数カウンタｃｆｉｒｅをカウントアップした後、ステップ１０４に進み、ノック判定値ｖｋｄｌの算出に用いるｕ値をバックアップＲＡＭ３１から読み出す。このｕ値は、後述する図８のｕ値補正ルーチンでノック検出頻度が適正範囲内になるように補正された値である。尚、車載バッテリの脱着等によるバックアップ電源の遮断によりバックアップＲＡＭ３１の記憶データが初期化された場合のために、ｕ値の初期値（例えば３）は、バックアップ電源が不要なＲＯＭ等の不揮発性メモリに記憶しておく。
【００３８】
この後、ステップ１０５に進み、バックアップＲＡＭ３１から読み出したｕ値と、振動強度分布の中央値ｖｍｅｄと下側標準偏差ｓｇｍ＿Ｌとを用いて次式によりノック判定値ｖｋｄｌを求める。
ｖｋｄｌ＝ｖｍｅｄ＋ｕ×ｓｇｍ＿Ｌ
ここで、振動強度分布の中央値ｖｍｅｄと下側標準偏差ｓｇｍ＿Ｌは、後述する図７の統計的指標算出ルーチンで前回算出された値が用いられる。
【００３９】
この後、ステップ１０６に進み、振動強度ｌｖｐｋをノック判定値ｖｋｄｌと比較し、振動強度ｌｖｐｋがノック判定値ｖｋｄｌ以下であると判定されれば、ステップ１０７に進み、ノック無しと判定する。
【００４０】
一方、上記ステップ１０６で、振動強度ｌｖｐｋがノック判定値ｖｋｄｌよりも大きいと判定されれば、ステップ１０８に進み、ノック有りと判定された回数をカウントするノック判定回数カウンタｋｎｋをカウントアップした後、ステップ１０９に進み、ノック有りと判定する。
【００４１】
尚、ＥＣＵ３０は、ノック有りと判定された場合には、点火時期を遅角側に補正及び／又は空燃比をリッチ側に補正してノックを抑制し、ノック無しと判定された場合には、点火時期を進角側に補正及び／又は空燃比をリーン側に補正するノック制御を行う。
【００４２】
［統計的指標算出ルーチン］
図７に示す統計的指標算出ルーチンは、前記図５のノック判定メインルーチンのステップ２００で実行されるサブルーチンである。本ルーチンが起動されると、まず、ステップ２０１〜２０３で、振動強度分布の中央値ｖｍｅｄを更新する。
【００４３】
具体的には、ステップ２０１で、今回の振動強度ｌｖｐｋを振動強度分布の中央値ｖｍｅｄと比較し、今回の振動強度ｌｖｐｋが振動強度分布の中央値ｖｍｅｄよりも大きければ、ステップ２０２に進み、現在の中央値ｖｍｅｄに所定値Ａを加算した値を新たな中央値ｖｍｅｄとする。
ｖｍｅｄ＝ｖｍｅｄ＋Ａ
【００４４】
一方、今回の振動強度ｌｖｐｋが振動強度分布の中央値ｖｍｅｄよりも小さければ、ステップ２０３に進み、現在の中央値ｖｍｅｄから所定値Ａを減算した値を新たな中央値ｖｍｅｄとする。
ｖｍｅｄ＝ｖｍｅｄ−Ａ
尚、所定値Ａは、予め設定した固定値としても良いが、前回の中央値ｖｍｅｄと振動強度ｌｖｐｋとの偏差に応じて所定値Ａを変化させるようにしても良い。
【００４５】
この後、ステップ２０４〜２０６で、振動強度分布の中央値ｖｍｅｄに対して振動強度ｌｖｐｋが小さい領域の標準偏差（ばらつき幅）である下側標準偏差ｓｇｍ＿Ｌを更新し、次のステップ２０７〜２０９で、振動強度分布の中央値ｖｍｅｄに対して振動強度ｌｖｐｋが大きい領域の標準偏差（ばらつき幅）である上側標準偏差ｓｇｍ＿Ｈを更新する。
【００４６】
具体的には、ステップ２０４で、今回の振動強度ｌｖｐｋが振動強度分布の中央値ｖｍｅｄからｖｍｅｄ−ｓｇｍ＿Ｌの範囲内（ｖｍｅｄ−ｓｇｍ＿Ｌ＜ｌｖｐｋ＜ｖｍｅｄ）であるか否かを判定し、今回の振動強度ｌｖｐｋが中央値ｖｍｅｄからｖｍｅｄ−ｓｇｍ＿Ｌの範囲内に存在すれば、ステップ２０５に進み、現在の下側標準偏差ｓｇｍ＿Ｌから所定値Ｂの２倍の値を減算した値（ｓｇｍ＿Ｌ−２×Ｂ）を新たな下側標準偏差ｓｇｍ＿Ｌとする。
ｓｇｍ＿Ｌ＝ｓｇｍ＿Ｌ−２×Ｂ
【００４７】
一方、今回の振動強度ｌｖｐｋが中央値ｖｍｅｄからｖｍｅｄ−ｓｇｍ＿Ｌの範囲内に存在しなければ、ステップ２０６に進み、現在の下側標準偏差ｓｇｍ＿Ｌに所定値Ｂを加算した値を新たな下側標準偏差ｓｇｍ＿Ｌとする。
ｓｇｍ＿Ｌ＝ｓｇｍ＿Ｌ＋Ｂ
【００４８】
この後、ステップ２０７に進み、今回の振動強度ｌｖｐｋが振動強度分布の中央値ｖｍｅｄからｖｍｅｄ＋ｓｇｍ＿Ｈの範囲内（ｖｍｅｄ＜ｌｖｐｋ＜ｖｍｅｄ＋ｓｇｍ＿Ｈ）であるか否かを判定し、今回の振動強度ｌｖｐｋが中央値ｖｍｅｄからｖｍｅｄ＋ｓｇｍ＿Ｈの範囲内に存在すれば、ステップ２０８に進み、現在の上側標準偏差ｓｇｍ＿Ｈから所定値Ｂの２倍の値を減算した値（ｓｇｍ＿Ｈ−２×Ｂ）を新たな上側標準偏差ｓｇｍ＿Ｈとする。
ｓｇｍ＿Ｈ＝ｓｇｍ＿Ｈ−２×Ｂ
【００４９】
一方、今回の振動強度ｌｖｐｋが中央値ｖｍｅｄからｖｍｅｄ＋ｓｇｍ＿Ｈの範囲内に存在しなければ、ステップ２０９に進み、現在の上側標準偏差ｓｇｍ＿Ｈに所定値Ｂを加算した値を新たな上側標準偏差ｓｇｍ＿Ｈとする。
ｓｇｍ＿Ｈ＝ｓｇｍ＿Ｈ＋Ｂ
尚、振動強度分布の分布形状が正規分布である場合には、下側標準偏差ｓｇｍ＿Ｌと上側標準偏差ｓｇｍ＿Ｈがほぼ同一となる。
【００５０】
この後、ステップ２１０に進み、前回までの下側標準偏差の積算値ａｃｃ＿ｓｇｍ＿Ｌに今回の下側標準偏差ｓｇｍ＿Ｌを加算して下側標準偏差の積算値ａｃｃ＿ｓｇｍ＿Ｌを更新する。
ａｃｃ＿ｓｇｍ＿Ｌ＝ａｃｃ＿ｓｇｍ＿Ｌ＋ｓｇｍ＿Ｌ
【００５１】
この後、ステップ２１１に進み、前回までの上側標準偏差の積算値ａｃｃ＿ｓｇｍ＿Ｈに今回の上側標準偏差ｓｇｍ＿Ｈを加算して上側標準偏差の積算値ａｃｃ＿ｓｇｍ＿Ｈを更新する。
ａｃｃ＿ｓｇｍ＿Ｈ＝ａｃｃ＿ｓｇｍ＿Ｈ＋ｓｇｍ＿Ｈ
これらの下側標準偏差の積算値ａｃｃ＿ｓｇｍ＿Ｌと上側標準偏差の積算値ａｃｃ＿ｓｇｍ＿Ｈは、後述する図８のｕ値補正ルーチンで使用される。
【００５２】
［ｕ値補正ルーチン］
図８に示すｕ値補正ルーチンは、前記図５のノック判定メインルーチンのステップ３００で実行されるサブルーチンである。本ルーチンが起動されると、まず、ステップ３０１で、現在の点火回数カウンタｃｆｉｒｅのカウント値が所定値Ｌ以上であるか否かによって、前回のｕ値の補正後の点火回数が所定点火回数Ｌ以上であるか否かを判定し、前回のｕ値の補正後の点火回数が所定点火回数Ｌよりも少なければ、ステップ３０２以降の処理を行うことなく、本ルーチンを終了する。
【００５３】
その後、上記ステップ３０１で、前回のｕ値の補正後の点火回数が所定点火回数Ｌ以上であると判定されたときに、ステップ３０２に進み、振動強度分布の上側標準偏差の積算値ａｃｃ＿ｓｇｍ＿Ｈと下側標準偏差の積算値ａｃｃ＿ｓｇｍ＿Ｌとの比ｓｇｍ＿ｒａｔｉｏを算出することで、振動強度分布の上側標準偏差と下側標準偏差との比ｓｇｍ＿ｒａｔｉｏを求める。
ｓｇｍ＿ｒａｔｉｏ＝ａｃｃ＿ｓｇｍ＿Ｈ／ａｃｃ＿ｓｇｍ＿Ｌ
【００５４】
この後、ステップ３０３に進み、振動強度分布の上側標準偏差と下側標準偏差との比ｓｇｍ＿ｒａｔｉｏが「１」前後の所定範囲内（Ｓ１≦ｓｇｍ＿ｒａｔｉｏ≦Ｓ２）であるか否かを判定する。ここで、所定範囲の下限値Ｓ１は「１」よりも少し小さい値に設定され、所定範囲の上限値Ｓ２は「１」よりも少し大きい値に設定されている。
【００５５】
ノック検出頻度が適正範囲内であれば、振動強度分布が概ね正規分布となるため、上側標準偏差と下側標準偏差との差が小さくなって、上側標準偏差と下側標準偏差との比ｓｇｍ＿ｒａｔｉｏが「１」前後の所定範囲内（Ｓ１≦ｓｇｍ＿ｒａｔｉｏ≦Ｓ２）となるが、ノックが頻発するノック過剰発生状態では、振動強度分布の上側標準偏差と下側標準偏差との差が大きくなるため、上側標準偏差と下側標準偏差との比ｓｇｍ＿ｒａｔｉｏが所定範囲外（ｓｇｍ＿ｒａｔｉｏ＜Ｓ１又はＳ２＜ｓｇｍ＿ｒａｔｉｏ）となる。
【００５６】
従って、上側標準偏差と下側標準偏差との比ｓｇｍ＿ｒａｔｉｏが「１」前後の所定範囲内（Ｓ１≦ｓｇｍ＿ｒａｔｉｏ≦Ｓ２）であれば、振動強度分布が概ね正規分布であると判断でき、上側標準偏差と下側標準偏差との比ｓｇｍ＿ｒａｔｉｏが所定範囲外（ｓｇｍ＿ｒａｔｉｏ＜Ｓ１又はＳ２＜ｓｇｍ＿ｒａｔｉｏ）であれば、振動強度分布がノック過剰発生状態に相当する分布状態であると判断できる。
【００５７】
このステップ３０３で、上側標準偏差と下側標準偏差との比ｓｇｍ＿ｒａｔｉｏが所定範囲外（ｓｇｍ＿ｒａｔｉｏ＜Ｓ１又はＳ２＜ｓｇｍ＿ｒａｔｉｏ）であると判定された場合には、振動強度分布がノック過剰発生状態に相当する分布状態であるため、ノック頻発の影響でノック判定値ｖｋｄｌが適正範囲から外れて、実際にはノックが頻発しているのにノック検出頻度が小さくなっている可能性があると判断して、ステップ３０４に進み、現在のｕ値から所定値Ｐの２倍を減算した値を新たなｕ値とすることで、ノック判定値ｖｋｄｌの算出に用いるｕ値をノック判定値ｖｋｄｌの減少方向に補正する。
【００５８】
ｕ＝ｕ−Ｐ×２
これにより、ノック判定値ｖｋｄｌを、ノックを検出し易い方向である減少方向に補正して、ノック判定値ｖｋｄｌを適正範囲内に設定する。
【００５９】
一方、上記ステップ３０３で、上側標準偏差と下側標準偏差との比ｓｇｍ＿ｒａｔｉｏが「１」前後の所定範囲内（Ｓ１≦ｓｇｍ＿ｒａｔｉｏ≦Ｓ２）であると判定された場合には、振動強度分布が概ね正規分布であると判断して、ステップ３０５に進み、現在のノック判定回数カウンタｋｎｋのカウント値が所定値Ｍよりも大きいか否かによって、所定点火回数Ｌにおけるノック検出頻度が所定値Ｍよりも大きいか否かを判定する。
【００６０】
このステップ３０５で、ノック検出頻度が所定値Ｍよりも大きいと判定された場合には、次のステップ３０６で、上側標準偏差と下側標準偏差との比ｓｇｍ＿ｒａｔｉｏがほぼ「１」と判断できる所定範囲内（Ｓ３≦ｓｇｍ＿ｒａｔｉｏ≦Ｓ４）であるか否かによって、振動強度分布が正規分布（又は正規分布に限りなく近い分布状態）であるか否かを判定する。ここで、所定範囲の下限値Ｓ３は「１」よりも僅かに小さい値に設定され、所定範囲の上限値Ｓ４は「１」よりも僅かに大きい値に設定されている（Ｓ１＜Ｓ３＜１＜Ｓ４＜Ｓ２）。
【００６１】
上記ステップ３０５でノック検出頻度が所定値Ｍよりも大きいと判定され、且つ、次のステップ３０６で振動強度分布が正規分布（又は正規分布に限りなく近い分布状態）ではないと判定された場合は、ノック検出頻度が所定値Ｍよりも大きければ、ノック制御により点火時期が遅角側に補正されるため、ノック振動強度が小さくなってノックを検出し難くなる可能性があると判断して、ステップ３０８に進み、現在のｕ値から所定値Ｐを減算した値を新たなｕ値とすることで、ノック判定値ｖｋｄｌの算出に用いるｕ値をノック判定値ｖｋｄｌの減少方向に補正する。
【００６２】
ｕ＝ｕ−Ｐ
これにより、ノック判定値ｖｋｄｌを、ノックを検出し易い方向である減少方向に補正して、ノック判定値ｖｋｄｌを適正範囲内に設定する。
【００６３】
これに対して、上記ステップ３０５でノック検出頻度が所定値Ｍよりも大きいと判定されたにも拘らず、次のステップ３０６で振動強度分布が正規分布（又は正規分布に限りなく近い分布状態）であると判定された場合には、ノック判定値ｖｋｄｌが小さ過ぎてノックを誤検出している可能性が高いと判断して、ステップ３０７に進み、現在のｕ値に所定値Ｐを加算した値を新たなｕ値とすることで、ノック判定値ｖｋｄｌの算出に用いるｕ値をノック判定値ｖｋｄｌの増加方向に補正する。
【００６４】
ｕ＝ｕ＋Ｐ
これにより、ノック判定値ｖｋｄｌを、ノックを検出し難い方向である増加方向に補正することで、ノックの誤検出を防止する。
【００６５】
一方、上記ステップ３０５で、ノック検出頻度が所定値Ｍ以下であると判定された場合には、ステップ３０９に進み、現在のノック判定回数カウンタｋｎｋのカウント値が所定値Ｎ（但し、Ｎ＜Ｍ）よりも小さいか否かによって、所定点火回数Ｌにおけるノック検出頻度が所定値Ｎよりも小さいか否かを判定する。
【００６６】
このステップ３０９で、ノック検出頻度が所定値Ｎよりも小さいと判定された場合には、ノック制御により点火時期が進角側に補正されるため、ノック振動強度が大きくなってノックを検出し易くなる可能性があると判断して、ステップ３１０に進み、現在のｕ値に所定値Ｐを加算した値を新たなｕ値とすることで、ノック判定値ｖｋｄｌの算出に用いるｕ値をノック判定値ｖｋｄｌの増加方向に補正する。
【００６７】
ｕ＝ｕ＋Ｐ
これにより、ノック判定値ｖｋｄｌを、ノックを検出し難い方向である増加方向に補正して、ノック判定値ｖｋｄｌを適正範囲内に設定する。
【００６８】
また、上記ステップ３０５でノック検出頻度が所定値Ｍ以下であると判定され、且つ、上記ステップ３０９でノック検出頻度が所定値Ｎ以上であると判定された場合には、ノック検出頻度が適正範囲内であるため、ノック判定値ｖｋｄｌを補正する必要がないと判断して、現在のｕ値をそのまま維持する。
【００６９】
このようにして、ノック判定値ｖｋｄｌの算出に用いるｕ値を補正（又は維持）した後、ステップ３１１に進み、ｕ値を学習値としてバックアップＲＡＭ３１に記憶した後、ステップ３１７に進み、点火回数カウンタｃｆｉｒｅ、ノック判定回数カウンタｋｎｋ、下側標準偏差の積算値ａｃｃ＿ｓｇｍ＿Ｌ及び上側標準偏差の積算値ａｃｃ＿ｓｇｍ＿Ｈを全てクリアして、本ルーチンを終了する。
【００７０】
以上説明した本実施例１では、ノックセンサ２９の出力信号から振動強度ｌｖｐｋを求めると共に、振動強度分布の中央値ｖｍｅｄに下側標準偏差ｓｇｍ＿Ｌのｕ倍の値を加算してノック判定値ｖｋｄｌ（＝ｖｍｅｄ＋ｕ×ｓｇｍ＿Ｌ）を求め、振動強度ｌｖｐｋをノック判定値ｖｋｄｌと比較してノックの有無を判定するシステムにおいて、振動強度分布の上側標準偏差ｓｇｍ＿Ｈと下側標準偏差ｓｇｍ＿Ｌとの比ｓｇｍ＿ｒａｔｉｏに基づいて振動強度分布の分布状態を判定すると共に、所定点火回数毎にノック有りと判定された回数に基づいてノック検出頻度を判定し、振動強度分布の分布状態とノック検出頻度とに基づいてｕ値を補正することで、ノック検出頻度が適正範囲内に収まるようにノック判定値ｖｋｄｌを補正するようにしたので、ノックの頻発やシステムのばらつきによって振動強度分布が変化してノック検出頻度が変化しても、その振動強度分布の分布状態やノック検出頻度に応じてノック検出頻度が適正範囲内に収まるようにノック判定値を補正することができる。これにより、ノックの頻発やシステムのばらつきによる振動強度分布の変化の影響を受けずに適正なノック判定値を設定することができ、安定したノック検出精度を確保することができる。
【００７１】
また、本実施例１では、振動強度分布の分布状態とノック検出頻度とに基づいて補正したｕ値を学習値としてＥＣＵ３０のバックアップＲＡＭ３１に記憶するようにしたので、ＥＣＵ３０の電源がオフされるエンジン停止中も、ｕ値の記憶データを保持することができ、エンジン始動直後から前回の運転中の補正を反映したノック判定値ｖｋｄｌ（＝ｖｍｅｄ＋ｕ×ｓｇｍ＿Ｌ）を用いてノック判定を行うことができる。
【実施例２】
【００７２】
次に、図９及び図１０を用いて本発明の実施例２を説明する。但し、前記実施例１と実質的に同一部分には同一符号を付して説明を省略又は簡略化し、主として前記実施例１と異なる部分について説明する。
【００７３】
本実施例２では、図９に示すように、ｕ値学習部４１で、ｕ値補正部４０により補正されたｕ値を、エンジン運転状態（例えば、エンジン回転速度と吸気管圧力）に応じた学習領域毎にバックアップＲＡＭ３１（書き換え可能な不揮発性メモリ）に記憶する。
【００７４】
図１０に示すように、バックアップＲＡＭ３１には、ｕ値の学習値のマップが記憶されている。このｕ値の学習値のマップは、エンジン運転状態（例えば、エンジン回転速度と吸気管圧力）をパラメータとする複数の学習領域に区分され、各学習領域毎に、それぞれｕ値の学習値が記憶されている。そして、このｕ値の学習値のマップにおいて、今回のエンジン運転状態（例えば、エンジン回転速度と吸気管圧力）に対応した学習領域におけるｕ値の学習値を、今回のｕ値で更新する。
【００７５】
一方、バックアップＲＡＭ３１からｕ値を読み出す場合には、ｕ値の学習値のマップを参照して、現在のエンジン運転状態（例えば、エンジン回転速度と吸気管圧力）に対応した学習領域におけるｕ値の学習値を読み出す。
【００７６】
この場合、ノック検出頻度判定部３９で、ノック検出頻度が所定値Ｍよりも大きいか否かを判定する際の所定値Ｍをエンジン運転状態（例えば、エンジン回転速度と吸気管圧力）に応じて設定するようにしても良い。
【００７７】
以上説明した本実施例２では、ノック判定値ｖｋｄｌの補正に用いるｕ値をエンジン運転状態に応じた学習領域毎に学習するようにしたので、エンジン運転状態に応じた適正なｕ値の学習値を用いてノック判定値ｖｋｄｌを補正することができ、エンジン運転状態に応じた適正なノック判定値を設定することができる。
【実施例３】
【００７８】
次に、図１１を用いて本発明の実施例３を説明する。但し、前記実施例１と実質的に同一部分には同一符号を付して説明を省略又は簡略化し、主として前記実施例１と異なる部分について説明する。
【００７９】
本実施例３では、図１１に示すように、ノックセンサ２９の出力信号のピーク値ｖｐｅａｋから求めた振動強度ｌｖｐｋと、ノックセンサ２９の出力信号の積算値ｖｓｑから求めた振動強度ｌｖｓｑの両方をノック振動指標として用いるようにしている。
【００８０】
具体的には、ピーク値検出部３２で、所定のノック判定区間におけるノックセンサ２９の出力信号のピーク値ｖｐｅａｋを検出した後、対数変換部３３で、このピーク値ｖｐｅａｋを対数変換した値を振動強度ｌｖｐｋとして算出する。
【００８１】
更に、統計演算部３４で、ピーク値ｖｐｅａｋから求めた振動強度ｌｖｐｋのデータを統計的に処理して振動強度分布の中央値ｐ＿ｖｍｅｄと下側標準偏差ｐ＿ｓｇｍ＿Ｌと上側標準偏差ｐ＿ｓｇｍ＿Ｈを算出した後、ノック判定値演算部３５で、振動強度分布の中央値ｐ＿ｖｍｅｄに下側標準偏差ｐ＿ｓｇｍ＿Ｌのｕ倍の値を加算してノック判定値ｐ＿ｖｋｄｌを求める。
ｐ＿ｖｋｄｌ＝ｐ＿ｖｍｅｄ＋ｕ×ｐ＿ｓｇｍ＿Ｌ
【００８２】
この後、ノック仮判定部４２で、ピーク値ｖｐｅａｋから求めた振動強度ｌｖｐｋをノック判定値ｐ＿ｖｋｄｌと比較してノックの有無を仮判定する。
また、積算値検出部４３で、所定のノック判定区間におけるノックセンサ２９の出力信号の積算値ｖｓｑ（面積値）を検出した後、対数変換部４４で、この積算値ｖｓｑを対数変換した値を振動強度ｌｖｓｑとして算出する。
【００８３】
更に、統計演算部４５で、積算値ｖｓｑから求めた振動強度ｌｖｓｑのデータを統計的に処理して振動強度分布の中央値ｓ＿ｖｍｅｄと下側標準偏差ｓ＿ｓｇｍ＿Ｌと上側標準偏差ｓ＿ｓｇｍ＿Ｈを算出した後、ノック判定値演算部４６で、振動強度分布の中央値ｓ＿ｖｍｅｄに下側標準偏差ｓ＿ｓｇｍ＿Ｌのｕ倍の値を加算してノック判定値ｓ＿ｖｋｄｌを求める。
ｓ＿ｖｋｄｌ＝ｓ＿ｖｍｅｄ＋ｕ×ｓ＿ｓｇｍ＿Ｌ
【００８４】
この後、ノック仮判定部４７で、積算値ｖｓｑから求めた振動強度ｌｖｓｑをノック判定値ｓ＿ｖｋｄｌと比較してノックの有無を仮判定する。
【００８５】
ノック仮判定部４２とノック仮判定部４７の両方でノック有りと仮判定された場合には、ノック判定部４８で最終的にノック有りと判定し、ノック仮判定部４２とノック仮判定部４７のうちの少なくとも一方でノック無しと仮判定された場合には、ノック判定部４８で最終的にノック無しと判定する。
【００８６】
また、分布状態判定部３８で、所定点火回数毎にピーク値ｖｐｅａｋから求めた振動強度分布の上側標準偏差ｐ＿ｓｇｍ＿Ｈと下側標準偏差ｐ＿ｓｇｍ＿Ｌとの比ｐ＿ｓｇｍ＿ｒａｔｉｏに基づいてピーク値ｖｐｅａｋから求めた振動強度分布の分布状態を判定し、積算値ｖｓｑから求めた振動強度分布の上側標準偏差ｓ＿ｓｇｍ＿Ｈと下側標準偏差ｓ＿ｓｇｍ＿Ｌとの比ｓ＿ｓｇｍ＿ｒａｔｉｏに基づいて積算値ｖｓｑから求めた振動強度分布の分布状態を判定する。
【００８７】
更に、ノック検出頻度判定部３９で、所定点火回数毎にノック判定部４８によりノック有りと判定された回数が所定値Ｍよりも大きいか否かによって、ノック検出頻度が所定値Ｍよりも大きいか否かを判定する。
【００８８】
この後、ｕ値補正部４０で、分布状態判定部３８により判定した振動強度分布の分布状態とノック検出頻度判定部３９により判定したノック検出頻度とに基づいてｕ値を補正することで、ノック検出頻度が適正範囲内になるように、ピーク値ｖｐｅａｋから求めた振動強度ｌｖｐｋのノック判定値ｐ＿ｖｋｄｌと、積算値ｖｓｑから求めた振動強度ｌｖｓｑのノック判定値ｓ＿ｖｋｄｌを補正する。
【００８９】
以上説明した本実施例３では、ノックセンサ２９の出力信号のピーク値ｖｐｅａｋから求めた振動強度ｌｖｐｋと、ノックセンサ２９の出力信号の積算値ｖｓｑから求めた振動強度ｌｖｓｑの両方をノック振動指標として用いてノックの有無を判定するようにしたので、ノックとノイズの分離性能を高めて、ノック制御性を向上させることができる。
【実施例４】
【００９０】
次に、図１２を用いて本発明の実施例４を説明する。但し、前記実施例３と実質的に同一部分には同一符号を付して説明を省略又は簡略化し、主として前記実施例３と異なる部分について説明する。
【００９１】
本実施例４では、図１２に示すように、ノックセンサ２９の出力信号から複数の周波数帯の振動成分を抽出し、各周波数帯の振動成分毎に振動強度をノック判定値と比較してノックの有無を判定すると共に、各周波数帯の振動成分毎に振動強度分布の分布状態やノック検出頻度に応じてノック検出頻度が適正範囲内に収まるようにノック判定値を補正するようにしている。
【００９２】
具体的には、図１２に示すように、１次の周波数帯のノック判定処理部４９と２次（又は１．５次）の周波数帯のノック判定処理部５１とが設けられている。
１次の周波数帯のノック判定処理部４９では、まず、第１のバンドパスフィルタフィルタ部５０で、ノックセンサ２９の出力信号から１次の周波数帯の振動成分（以下「１次の周波数成分」という）を抽出する。ここで、１次の周波数帯（つまり第１のバンドパスフィルタフィルタ部５０の通過帯域）は、ノック振動の周波数のうちの１次の共振周波数を含む周波数帯に設定されている。
【００９３】
この後、前記実施例３と同様の方法で、１次の周波数成分のピーク値ｖｐｅａｋ１から振動強度ｌｖｐｋ１を求めると共に、その振動強度分布の中央値ｐ１＿ｖｍｅｄに下側標準偏差ｐ１＿ｓｇｍ＿Ｌのｕ１倍の値を加算してノック判定値ｐ１＿ｖｋｄｌ（＝ｐ１＿ｖｍｅｄ＋ｕ１×ｐ１＿ｓｇｍ＿Ｌ）を求めた後、ノック仮判定部４２で１次の周波数成分のピーク値ｖｐｅａｋ１から求めた振動強度ｌｖｐｋ１をノック判定値ｐ１＿ｖｋｄｌと比較してノックの有無を仮判定する。
【００９４】
また、１次の周波数成分の積算値ｖｓｑ１から振動強度ｌｖｓｑ１を求めると共に、その振動強度分布の中央値ｓ１＿ｖｍｅｄに下側標準偏差ｓ１＿ｓｇｍ＿Ｌのｕ１倍の値を加算してノック判定値ｓ１＿ｖｋｄｌ（＝ｓ１＿ｖｍｅｄ＋ｕ１×ｓ１＿ｓｇｍ＿Ｌ）を求めた後、ノック仮判定部４７で１次の周波数成分の積算値ｖｓｑ１から求めた振動強度ｌｖｓｑ１をノック判定値ｓ１＿ｖｋｄｌと比較してノックの有無を仮判定する。
【００９５】
１次の周波数帯のノック判定処理部４９のノック仮判定部４２とノック仮判定部４７の両方でノック有りと仮判定された場合に、ノック判定部４８でノック有りと判定する。更に、ノック検出頻度判定部３９で、所定点火回数毎にノック判定部４８によりノック有りと判定された回数を１次の周波数帯のノック検出頻度として算出する。
【００９６】
一方、２次（又は１．５次）の周波数帯のノック判定処理部５１では、まず、第２のバンドパスフィルタフィルタ部５２で、ノックセンサ２９の出力信号から２次（又は１．５次）の周波数帯の振動成分（周波数成分）を抽出する。ここで、２次（又は１．５次）の周波数帯（つまり第２のバンドパスフィルタフィルタ部５２の通過帯域）は、ノック振動の周波数のうちの２次（又は１．５次）の共振周波数を含む周波数帯に設定されている。      
【００９７】
この後、前記実施例３と同様の方法で、２次（又は１．５次）の周波数成分のピーク値ｖｐｅａｋ２から振動強度ｌｖｐｋ２を求めると共に、その振動強度分布の中央値ｐ２＿ｖｍｅｄに下側標準偏差ｐ２＿ｓｇｍ＿Ｌのｕ２倍の値を加算してノック判定値ｐ２＿ｖｋｄｌ（＝ｐ２＿ｖｍｅｄ＋ｕ２×ｐ２＿ｓｇｍ＿Ｌ）を求めた後、ノック仮判定部４２で２次（又は１．５次）の周波数成分のピーク値ｖｐｅａｋ２から求めた振動強度ｌｖｐｋ２をノック判定値ｐ２＿ｖｋｄｌと比較してノックの有無を仮判定する。
【００９８】
また、２次（又は１．５次）の周波数成分の積算値ｖｓｑ２から振動強度ｌｖｓｑ２を求めると共に、その振動強度分布の中央値ｓ２＿ｖｍｅｄに下側標準偏差ｓ２＿ｓｇｍ＿Ｌのｕ２倍の値を加算してノック判定値ｓ２＿ｖｋｄｌ（＝ｓ２＿ｖｍｅｄ＋ｕ２×ｓ２＿ｓｇｍ＿Ｌ）を求めた後、ノック仮判定部４７で２次（又は１．５次）の周波数成分の積算値ｖｓｑ２から求めた振動強度ｌｖｓｑ２をノック判定値ｓ２＿ｖｋｄｌと比較してノックの有無を仮判定する。
【００９９】
２次（又は１．５次）の周波数帯のノック判定処理部５１のノック仮判定部４２とノック仮判定部４７の両方でノック有りと仮判定された場合には、ノック判定部４８でノック有りと判定する。更に、ノック検出頻度判定部３９で、所定点火回数毎にノック判定部４８によりノック有りと判定された回数を２次（又は１．５次）の周波数帯のノック検出頻度として算出する。
【０１００】
そして、１次の周波数帯のノック判定処理部４９のノック判定部４８と２次（又は１．５次）の周波数帯のノック判定処理部５１のノック判定部４８のうちの少なくとも一方でノック有りと判定された場合に、最終ノック判定部５３で最終的にノック有りと判定する。更に、最終ノック検出頻度判定部５４で、所定点火回数毎に最終ノック判定部５３によりノック有りと判定された回数を最終ノック検出頻度として算出する。
【０１０１】
また、１次の周波数帯のノック判定処理部４９では、分布状態判定部３８で、所定点火回数毎に１次の周波数成分のピーク値ｖｐｅａｋ１から求めた振動強度分布の上側標準偏差ｐ１＿ｓｇｍ＿Ｈと下側標準偏差ｐ１＿ｓｇｍ＿Ｌとの比ｐ１＿ｓｇｍ＿ｒａｔｉｏに基づいて１次の周波数成分のピーク値ｖｐｅａｋ１から求めた振動強度分布の分布状態を判定し、１次の周波数成分の積算値ｖｓｑ１から求めた振動強度分布の上側標準偏差ｓ１＿ｓｇｍ＿Ｈと下側標準偏差ｓ１＿ｓｇｍ＿Ｌとの比ｓ１＿ｓｇｍ＿ｒａｔｉｏに基づいて１次の周波数成分の積算値ｖｓｑ１から求めた振動強度分布の分布状態を判定する。
【０１０２】
この後、ｕ値補正部４０で、分布状態判定部３８により判定した１次の周波数帯の振動強度分布の分布状態と、ノック検出頻度判定部３９により判定した１次の周波数帯のノック検出頻度と最終ノック検出頻度判定部５４により判定した最終ノック検出頻度との差又は比に基づいてｕ１値を補正することで、１次の周波数帯のノック検出頻度が適正範囲内に収まるように、１次の周波数成分のピーク値ｖｐｅａｋ１から求めた振動強度ｌｖｐｋ１のノック判定値ｐ１＿ｖｋｄｌと、１次の周波数成分の積算値ｖｓｑ１から求めた振動強度ｌｖｓｑ１のノック判定値ｓ１＿ｖｋｄｌを補正する。
【０１０３】
一方、２次（又は１．５次）の周波数帯のノック判定処理部５１では、分布状態判定部３８で、所定点火回数毎に２次（又は１．５次）の周波数成分のピーク値ｖｐｅａｋ２から求めた振動強度分布の上側標準偏差ｐ２＿ｓｇｍ＿Ｈと下側標準偏差ｐ２＿ｓｇｍ＿Ｌとの比ｐ２＿ｓｇｍ＿ｒａｔｉｏに基づいて２次（又は１．５次）の周波数成分のピーク値ｖｐｅａｋ２から求めた振動強度分布の分布状態を判定し、２次（又は１．５次）の周波数成分の積算値ｖｓｑ２から求めた振動強度分布の上側標準偏差ｓ２＿ｓｇｍ＿Ｈと下側標準偏差ｓ２＿ｓｇｍ＿Ｌとの比ｓ２＿ｓｇｍ＿ｒａｔｉｏに基づいて２次（又は１．５次）の周波数成分の積算値ｖｓｑ２から求めた振動強度分布の分布状態を判定する。
【０１０４】
この後、ｕ値補正部４０で、分布状態判定部３８により判定した２次（又は１．５次）の周波数帯の振動強度分布の分布状態と、ノック検出頻度判定部３９により判定した２次（又は１．５次）の周波数帯のノック検出頻度と最終ノック検出頻度判定部５４により判定した最終ノック検出頻度との差又は比に基づいてｕ２値を補正することで、２次（又は１．５次）の周波数帯のノック検出頻度が適正範囲内に収まるように、２次（又は１．５次）の周波数成分のピーク値ｖｐｅａｋ２から求めた振動強度ｌｖｐｋ２のノック判定値ｐ１＿ｖｋｄ２と、２次（又は１．５次）の周波数成分の積算値ｖｓｑ２から求めた振動強度ｌｖｓｑ２のノック判定値ｓ２＿ｖｋｄｌを補正する。
【０１０５】
以上説明した本実施例４では、１次の周波数成分と２次（又は１．５次）の周波数成分で、それぞれ振動強度分布の分布状態やノック検出頻度に応じてノック検出頻度が適正範囲内になるようにノック判定値を補正するようにしたので、各周波数帯毎にノックの頻発やシステムのばらつきによる振動強度分布の変化の影響を受けずに適正なノック判定値を設定することができる。
【０１０６】
尚、上記実施例４では、１次の周波数成分と２次（又は１．５次）の周波数成分でノック判定を行うようにしたが、これに限定されず、ノック判定を行う周波数帯は適宜変更しても良い。また、３つ以上の周波数成分でノック判定を行うようにしても良い。
【０１０７】
また、上記各実施例１〜４では、振動強度分布の上側標準偏差の積算値と下側標準偏差の積算値との比に基づいて振動強度分布の分布状態を判定するようにしたが、振動強度分布の分布状態の判定方法は適宜変更しても良く、例えば、振動強度分布の上側標準偏差の積算値と下側標準偏差の積算値との差に基づいて振動強度分布の分布状態を判定するようにしても良い。或は、振動強度分布の上側標準偏差と下側標準偏差との差の積算値に基づいて振動強度分布の分布状態を判定するようにしても良い。
【０１０８】
また、上記各実施例１〜４では、ノック判定値の補正に用いるｕ値をバックアップＲＡＭ３１等の書き換え可能な不揮発性メモリに記憶するようにしたが、ｕ値の初期値からの補正量をバックアップＲＡＭ３１等の書き換え可能な不揮発性メモリに記憶するようにしても良い。或は、補正後のノック判定値（補正後のｕ値を用いて補正したノック判定値）をバックアップＲＡＭ３１等の書き換え可能な不揮発性メモリに記憶するようにしても良い。
【０１０９】
また、本発明のノック判定値の補正は、全気筒で一律に行うようにしても良いが、気筒毎にそれぞれｕ値を補正してノック判定値を補正するようにしても良い。
【図面の簡単な説明】
【０１１０】
【図１】本発明の実施例１におけるエンジン制御システム全体の概略構成図である。
【図２】振動強度分布の中央値ｖｍｅｄと標準偏差ｓｇｍとノック判定値ｖｋｄｌとの関係を説明する図である。
【図３】ノック過剰発生状態における振動強度分布を示す図である。
【図４】実施例１のノック判定の機能を示すブロック図である。
【図５】ノック判定メインルーチンの処理の流れを説明するフローチャートである。
【図６】ノック判定ルーチンの処理の流れを説明するフローチャートである。
【図７】統計的指標算出ルーチンの処理の流れを説明するフローチャートである。
【図８】ｕ値補正ルーチンの処理の流れを説明するフローチャートである。
【図９】実施例２のノック判定の機能を示すブロック図である。
【図１０】ｕ値の学習値のマップの一例を概念的に示す図である。
【図１１】実施例３のノック判定の機能を示すブロック図である。
【図１２】実施例４のノック判定の機能を示すブロック図である。
【符号の説明】
【０１１１】
１１…エンジン（内燃機関）、１２…吸気管、１６…スロットルバルブ、２１…燃料噴射弁、２２…点火プラグ、２３…排気管、２４…、２５…、２６…、２７…、２８…、２９…ノックセンサ、３０…ＥＣＵ、３１…バックアップＲＡＭ（不揮発性メモリ）、３２…ピーク値検出部、３３…対数変換部、３４…統計演算部、３５…ノック判定値演算部、３６…ノック判定部（ノック判定手段）、３７…ノック制御部、３８…分布状態判定部（分布状態判定手段）、３９…ノック検出頻度判定部（ノック検出頻度判定手段）、４０…ｕ値補正部（ノック判定値補正手段）、４１…ｕ値学習部（学習手段）、４３…積算値検出部、４４…対数変換部、４５…統計演算部、４６…ノック判定値演算部、４９…１次の周波数帯のノック判定処理部、５０…第１のバンドパスフィルタフィルタ部、５１…２次の周波数帯のノック判定処理部、５２…第２のバンドパスフィルタフィルタ部
【図１】
0004919097.tif 000002
【図２】
0004919097.tif 000003
【図３】
0004919097.tif 000004
【図４】
0004919097.tif 000005
【図５】
0004919097.tif 000006
【図６】
0004919097.tif 000007
【図７】
0004919097.tif 000008
【図８】
0004919097.tif 000009
【図９】
0004919097.tif 000010
【図１０】
0004919097.tif 000011
【図１１】
0004919097.tif 000012
【図１２】
0004919097.tif 000013