(57)【要約】【課題】ノッキングの有無を判定するために用いる判定値を速やかに、かつ精度よく補正する。【解決手段】エンジンＥＣＵは、予め定められた数だけ連続した複数の点火サイクル分のノック強度Ｎのうち、判定値Ｖ（Ｊ）以上のノック強度Ｎの数がしきい値Ｂ（１）以上である場合（Ｓ２２０にてＹＥＳ）、補正量Ａ（３）だけ判定値Ｖ（Ｊ）を大きくするステップ（Ｓ２２２）と、予め定められた数だけ連続した複数の点火サイクル分のノック強度Ｎのうち、振動の波形とノック波形モデルとを比較して算出される相関係数Ｋがしきい値Ｋ（１）以上であるという条件を満たす複数の点火サイクルにおけるノック強度Ｎのうち、判定値Ｖ（Ｊ）以上のノック強度Ｎの数がしきい値Ｂ（３）以上である場合（Ｓ２３０にてＹＥＳ）、補正量Ａ（５）だけ判定値Ｖ（Ｊ）を大きくするステップ（Ｓ２３２）とを含む、プログラムを実行する。【選択図】図１６
2008088917.tif 000002
【特許請求の範囲】
【請求項１】
内燃機関のノッキング判定装置であって、
予め定められたクランク角の間隔において、前記内燃機関の振動の強度を検出するための手段と、
前記内燃機関の振動の強度に基づいて、前記内燃機関の振動の波形を検出するための手段と、
前記内燃機関の振動の強度に応じた第１の値を算出するための手段と、
前記検出された波形と前記内燃機関の振動の波形の基準として予め定められた波形モデルとを比較した結果に基づいて、前記検出された波形と前記波形モデルとの差に応じた第２の値を算出するための手段と、
前記第１の値と予め定められた第１の判定値とを比較した結果および前記第２の値と予め定められた第２の判定値とを比較した結果に基づいて前記内燃機関にノッキングが発生したか否かを判定するための手段と、
予め定められた数だけ連続した複数の点火サイクルにおいて算出された第１の値のうち、前記第１の判定値以上の第１の値の数が第１の数以上である場合に前記第１の判定値を補正するための第１の補正手段と、
前記第２の値が予め定められた条件を満たす複数の点火サイクルにおいて算出された第１の値のうち、前記第１の判定値以上の第１の値の数が第２の数以上である場合に前記第１の判定値を補正するための第２の補正手段とを含む、内燃機関のノッキング判定装置。
【請求項２】
前記第１の補正手段は、前記第２の補正手段よりも大きい補正量で前記第１の判定値を補正するための手段を含む、請求項１に記載の内燃機関のノッキング判定装置。
【請求項３】
前記第１の補正手段は、前記予め定められた数だけ連続した複数の点火サイクルにおいて算出された第１の値のうち、前記第１の判定値以上の第１の値の数が多いほど、より大きい補正量で前記第１の判定値を補正するための手段を含む、請求項１または２に記載の内燃機関のノッキング判定装置。
【請求項４】
前記第２の補正手段は、前記第２の値が前記条件を満たす複数の点火サイクルにおいて算出された第１の値のうち、前記第１の判定値以上の第１の値の数が前記第２の数以上である場合であって、かつ前記予め定められた数だけ連続した複数の点火サイクルにおいて算出された第１の値のうち、前記第１の判定値以上の第１の値の数が前記第１の数未満である場合に、前記第１の判定値を補正するための手段を含む、請求項１〜３のいずれかに記載の内燃機関のノッキング判定装置。
【請求項５】
前記ノッキング判定装置は、
複数の点火サイクルにおいて検出された振動の強度のうち、前記内燃機関の振動の強度に基づいて算出される第３の判定値よりも大きい強度の割合が予め定められた割合より大きい場合に前記第１の判定値を補正するための第３の補正手段と、
複数の点火サイクルにおいて検出された振動の強度のうち、前記第３の判定値よりも大きい強度の割合が予め定められた割合より小さい場合であって、かつ前記内燃機関にノッキングが発生したと判断される場合に、前記第１の判定値を補正するための第４の補正手段とをさらに含み、
前記第１の補正手段は、予め定められた数だけ連続した複数の点火サイクルにおいて算出された第１の値のうち、前記第１の判定値以上の第１の値の数が前記第１の数以上である場合であって、かつ複数の点火サイクルにおいて検出された振動の強度のうち、前記第３の判定値よりも大きい強度の割合が前記予め定められた割合より小さい場合に、前記第１の判定値を補正するための手段を含む、請求項１〜４のいずれかに記載の内燃機関のノッキング判定装置。
【請求項６】
前記第２の値は、前記検出された波形と前記波形モデルとの差が小さいほどより大きくなるように算出され、
前記条件は、予め定められた値以上であるという条件である、請求項１〜５のいずれかに記載の内燃機関のノッキング判定装置。
【請求項７】
内燃機関のノッキング判定方法であって、
予め定められたクランク角の間隔において、前記内燃機関の振動の強度を検出するステップと、
前記内燃機関の振動の強度に基づいて、前記内燃機関の振動の波形を検出するステップと、
前記内燃機関の振動の強度に応じた第１の値を算出するステップと、
前記検出された波形と前記内燃機関の振動の波形の基準として予め定められた波形モデルとを比較した結果に基づいて、前記検出された波形と前記波形モデルとの差に応じた第２の値を算出するステップと、
前記第１の値と予め定められた第１の判定値とを比較した結果および前記第２の値と予め定められた第２の判定値とを比較した結果に基づいて前記内燃機関にノッキングが発生したか否かを判定するステップと、
予め定められた数だけ連続した複数の点火サイクルにおいて算出された第１の値のうち、前記第１の判定値以上の第１の値の数が第１の数以上である場合に前記第１の判定値を補正するステップと、
前記第２の値が予め定められた条件を満たす複数の点火サイクルにおいて算出された第１の値のうち、前記第１の判定値以上の第１の値の数が第２の数以上である場合に前記第１の判定値を補正するステップとを含む、内燃機関のノッキング判定方法。
【請求項８】
前記第１の判定値以上の第１の値の数が前記第１の数以上である場合に前記第１の判定値を補正するステップは、前記第１の判定値以上の第１の値の数が前記第２の数以上である場合に前記第１の判定値を補正するステップよりも大きい補正量で前記第１の判定値を補正するステップを含む、請求項７に記載の内燃機関のノッキング判定方法。
【請求項９】
前記第１の判定値以上の第１の値の数が前記第１の数以上である場合に前記第１の判定値を補正するステップは、前記予め定められた数だけ連続した複数の点火サイクルにおいて算出された第１の値のうち、前記第１の判定値以上の第１の値の数が多いほど、より大きい補正量で前記第１の判定値を補正するステップを含む、請求項７または８に記載の内燃機関のノッキング判定方法。
【請求項１０】
前記第１の判定値以上の第１の値の数が前記第２の数以上である場合に前記第１の判定値を補正するステップは、前記第２の値が前記条件を満たす複数の点火サイクルにおいて算出された第１の値のうち、前記第１の判定値以上の第１の値の数が前記第２の数以上である場合であって、かつ前記予め定められた数だけ連続した複数の点火サイクルにおいて算出された第１の値のうち、前記第１の判定値以上の第１の値の数が前記第１の数未満である場合に、前記第１の判定値を補正するステップを含む、請求項７〜９のいずれかに記載の内燃機関のノッキング判定方法。
【請求項１１】
前記ノッキング判定方法は、
複数の点火サイクルにおいて検出された振動の強度のうち、前記内燃機関の振動の強度に基づいて算出される第３の判定値よりも大きい強度の割合が予め定められた割合より多い場合に前記第１の判定値を補正するステップと、
複数の点火サイクルにおいて検出された振動の強度のうち、前記第３の判定値よりも大きい強度の割合が前記予め定められた割合より小さい場合であって、かつ前記内燃機関にノッキングが発生したと判断される場合に、前記第１の判定値を補正するステップとをさらに含み、
前記第１の判定値以上の第１の値の数が前記第１の数以上である場合に前記第１の判定値を補正するステップは、前記予め定められた数の連続した複数の点火サイクルにおいて算出された第１の値のうち、前記第１の判定値以上の第１の値の数が前記第１の数以上である場合であって、かつ複数の点火サイクルにおいて検出された振動の強度のうち、前記第３の判定値よりも大きい強度の割合が予め定められた割合より小さい場合に、前記第１の判定値を補正するステップを含む、請求項７〜１０のいずれかに記載の内燃機関のノッキング判定方法。
【請求項１２】
前記第２の値は、前記検出された波形と前記波形モデルとの差が小さいほどより大きくなるように算出され、
前記条件は、予め定められた値以上であるという条件である、請求項７〜１１のいずれかに記載の内燃機関のノッキング判定方法。
【請求項１３】
請求項７〜１２のいずれかのノッキング判定方法をコンピュータに実現させるプログラム。
【請求項１４】
請求項７〜１２のいずれかのノッキング判定方法をコンピュータに実現させるプログラムを記録した記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、内燃機関において発生するノッキングの判定に関し、特に、内燃機関の振動の強度および振動の波形に基づいたノッキングの判定に関する。
【背景技術】
【０００２】
従来より、内燃機関において発生するノッキング（ノック）を検出する様々な方法が提案されている。たとえば、内燃機関の振動の強度がしきい値よりも高いとノッキングが発生したと判定する技術がある。ところが、ノッキングが発生していなくても、たとえば吸気バルブや排気バルブが閉じる際に発生する振動などのノイズの強度がしきい値よりも高い場合がある。この場合、ノッキングが発生していないにもかかわらず、ノッキングが発生したと誤判定し得る。そこで、振動が発生するクランク角や減衰率など、強度以外の特性も考慮するために振動の波形に基づいてノッキングの有無を判定する技術が提案されている。
【０００３】
特開２００３−２１０３２号公報（特許文献１）に記載の内燃機関のノック制御装置は、内燃機関のノッキングを検出するためのノックセンサと、ノックセンサにより検出される出力信号を統計処理する統計処理部と、統計処理部による処理結果に基づいてノッキングの発生を判定する第１の仮判定部と、ノックセンサにより検出される出力信号の波形形状に基づいてノッキングの発生を判定する第２の仮判定部と、第１の仮判定部によるノック仮判定と第２の仮判定部によるノック仮判定との結果に基づいて最終的にノッキングの発生を判定する最終ノック判定部とを含む。最終ノック判定部は、第１の仮判定部と第２の仮判定部との両方がノッキングが発生したと判定したときに最終的にノッキングが発生したと判定する。第１の仮判定部では、ノックセンサにより検出される出力信号の最大値と、統計処理部による処理結果に基づいて算出されるノック判定レベル（判定値）とを比較することにより、ノッキングが発生したか否かが判定される。判定値は、ノッキングの発生頻度に基づいて、設定値ΔＶを判定値から減算した値や、「１」より大きな値Ａと設定値ΔＶとの積を判定値に加算した値に補正される。
【特許文献１】特開２００３−２１０３２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ところで、特開２００３−２１０３２号公報に記載のノック制御装置のように、ノッキングの有無を判定する際に用いる判定値を補正する際、ノッキングに起因する振動とノイズとを区別せずに用いると、ノイズの強度はノッキングに起因する振動の強度と同程度に大きいことから、判定値を誤って補正し得る。そこで、ノイズを除外して判定値を補正することが考えられる。しかしながら、ノイズを除外して判定値を補正すると、判定値を補正するために必要なデータが少なくなる。したがって、判定値の補正が遅延し得る。
【０００５】
本発明は、上述の課題を解決するためになされたものであって、その目的は、判定値を速やかに、かつ精度よく補正することができる内燃機関のノッキング判定装置、ノッキング判定方法、その方法を実現するプログラムおよびそのプログラムを記録した記録媒体を提供することである。
【課題を解決するための手段】
【０００６】
第１の発明に係る内燃機関のノッキング判定装置は、予め定められたクランク角の間隔において、内燃機関の振動の強度を検出するための手段と、内燃機関の振動の強度に基づいて、内燃機関の振動の波形を検出するための手段と、内燃機関の振動の強度に応じた第１の値を算出するための手段と、検出された波形と内燃機関の振動の波形の基準として予め定められた波形モデルとを比較した結果に基づいて、検出された波形と波形モデルとの差に応じた第２の値を算出するための手段と、第１の値と予め定められた第１の判定値とを比較した結果および第２の値と予め定められた第２の判定値とを比較した結果に基づいて内燃機関にノッキングが発生したか否かを判定するための手段と、予め定められた数だけ連続した複数の点火サイクルにおいて算出された第１の値のうち、第１の判定値以上の第１の値の数が第１の数以上である場合に第１の判定値を補正するための第１の補正手段と、第２の値が予め定められた条件を満たす複数の点火サイクルにおいて算出された第１の値のうち、第１の判定値以上の第１の値の数が第２の数以上である場合に第１の判定値を補正するための第２の補正手段とを含む。第７の発明に係る内燃機関のノッキング判定方法は、第１の発明に係る内燃機関のノッキング判定装置と同様の要件を備える。
【０００７】
第１または第７の発明によると、予め定められたクランク角の間隔において、内燃機関の振動の強度が検出される。内燃機関の振動の強度に基づいて、内燃機関の振動の波形が検出される。さらに、内燃機関の振動の強度に応じた第１の値が算出される。検出された波形と内燃機関の振動の波形の基準として予め定められた波形モデルとを比較した結果に基づいて、検出された波形と波形モデルとの差に応じた第２の値が算出される。第１の値と予め定められた第１の判定値とを比較した結果および第２の値と予め定められた第２の判定値とを比較した結果に基づいて内燃機関にノッキングが発生したか否かが判定される。これにより、振動の強度および振動の波形の両方を考慮してノッキングが発生したか否を判断することができる。ところで、内燃機関において発生する振動の強度は常に同じであるとは限らない。たとえば運転条件またはノックセンサの経年劣化などにより、検出される振動の強度が変化し得る。したがって、ノッキングが発生したか否かを判定するために用いる判定値を補正する必要がある。そこで、予め定められた数だけ連続した複数の点火サイクルにおいて算出された第１の値のうち、第１の判定値以上の第１の値の数が第１の数以上である場合に第１の判定値が補正される。これにより、振動の波形と波形モデルとの差にかかわらず、第１の判定値以上の第１の値の数が多い場合には、第１の判定値を補正することができる。すなわち、ノッキングに起因した振動であるかノイズであるかに関わらず、第１の判定値が内燃機関で発生する振動の強度に対して過小であるといえる場合には、第１の判定値を補正することができる。そのため、第１の判定値を速やかに補正することができる。ところで、ノイズの強度は比較的大きいことから、第１の判定値が過小でなくとも、第１の判定値以上の第１の値が多くなり得る。そこで、検出された波形と波形モデルとの差に応じた第２の値が予め定められた条件を満たす複数の点火サイクルにおいて算出された第１の値のうち、第１の判定値以上の第１の値の数が第２の数以上である場合に第１の判定値が補正される。これにより、たとえば、検出された波形と波形モデルとの差が大きい点火サイクル、すなわち、ノイズが混在した点火サイクルにおいて算出された第１の値を除く第１の値に対して第１の判定値が小さいといえる場合には、第１の判定値を補正することができる。そのため、ノイズの影響を除外して、判定値を精度よく補正することができる。その結果、判定値を速やかに、かつ精度よく補正することができる内燃機関のノッキング判定装置またはノッキング判定方法を提供することができる。
【０００８】
第２の発明に係る内燃機関のノッキング判定装置においては、第１の発明の構成に加え、第１の補正手段は、第２の補正手段よりも大きい補正量で第１の判定値を補正するための手段を含む。第８の発明に係る内燃機関のノッキング判定方法は、第２の発明に係る内燃機関のノッキング判定装置と同様の要件を備える。
【０００９】
第２または第８の発明によると、予め定められた数だけ連続した複数の点火サイクルにおいて算出された第１の値のうち、第１の判定値以上の第１の値の数が第１の数以上である場合は、第２の値が条件を満たす複数の点火サイクルにおいて算出された第１の値のうち、第１の判定値以上の第１の値の数が第２の数以上である場合よりも大きい補正量で第１の判定値が補正される。これにより、第１の判定値が内燃機関で発生する振動の強度に対して過小であるといえる場合には、第１の判定値を大きく補正することができる。そのため、第１の判定値を速やかに補正することができる。
【００１０】
第３の発明に係る内燃機関のノッキング判定装置においては、第１または２の発明の構成に加え、第１の補正手段は、予め定められた数だけ連続した複数の点火サイクルにおいて算出された第１の値のうち、第１の判定値以上の第１の値の数が多いほど、より大きい補正量で第１の判定値を補正するための手段を含む。第９の発明に係る内燃機関のノッキング判定方法は、第３の発明に係る内燃機関のノッキング判定装置と同様の要件を備える。
【００１１】
第３または第９の発明によると、予め定められた数だけ連続した複数の点火サイクルにおいて算出された第１の値のうち、第１の判定値以上の第１の値の数が多いほど、より大きい補正量で第１の判定値が補正される。これにより、第１の判定値が内燃機関で発生する振動の強度に対して過小であるといえる場合には、第１の判定値をより大きく補正することができる。そのため、第１の判定値を速やかに補正することができる。
【００１２】
第４の発明に係る内燃機関のノッキング判定装置においては、第１〜３のいずれかの発明の構成に加え、第２の補正手段は、第２の値が条件を満たす複数の点火サイクルにおいて算出された第１の値のうち、第１の判定値以上の第１の値の数が第２の数以上である場合であって、かつ予め定められた数だけ連続した複数の点火サイクルにおいて算出された第１の値のうち、第１の判定値以上の第１の値の数が第１の数未満である場合に、第１の判定値を補正するための手段を含む。第１０の発明に係る内燃機関のノッキング判定方法は、第４の発明に係る内燃機関のノッキング判定装置と同様の要件を備える。
【００１３】
第４または第１０の発明によると、予め定められた数だけ連続した複数の点火サイクルにおいて算出された第１の値に基づく第１の判定値の補正が行なわれない場合のみ、第２の値が条件を満たす複数の点火サイクルにおいて算出された第１の値に基づく第１の判定値の補正が行なわれる。これにより、第１の判定値が重複して補正されることを防止することができる。
【００１４】
第５の発明に係る内燃機関のノッキング判定装置は、第１〜４のいずれかの発明の構成に加え、複数の点火サイクルにおいて検出された振動の強度のうち、内燃機関の振動の強度に基づいて算出される第３の判定値よりも大きい強度の割合が予め定められた割合より大きい場合に第１の判定値を補正するための第３の補正手段と、複数の点火サイクルにおいて検出された振動の強度のうち、第３の判定値よりも大きい強度の割合が予め定められた割合より小さい場合であって、かつ内燃機関にノッキングが発生したと判断される場合に、第１の判定値を補正するための第４の補正手段とをさらに含む。第１の補正手段は、予め定められた数だけ連続した複数の点火サイクルにおいて算出された第１の値のうち、第１の判定値以上の第１の値の数が第１の数以上である場合であって、かつ複数の点火サイクルにおいて検出された振動の強度のうち、第３の判定値よりも大きい強度の割合が予め定められた割合より小さい場合に、第１の判定値を補正するための手段を含む。第１１の発明に係る内燃機関のノッキング判定方法は、第５の発明に係る内燃機関のノッキング判定装置と同様の要件を備える。
【００１５】
第５または第１１の発明によると、複数の点火サイクルにおいて検出された振動の強度のうち、内燃機関の振動の強度に基づいて算出される第３の判定値よりも大きい強度の割合が予め定められた割合より多い場合に第１の判定値が補正される。これにより、ノッキングが発生した頻度が多い場合に第１の判定値を補正することができる。第３の判定値よりも大きい強度の割合に基づく補正が行なわれない場合であっても、内燃機関にノッキングが発生したと判断される場合は、第１の判定値が補正される。これにより、ノッキングが発生した場合には、第１の判定値を確実に補正することができる。第３の判定値よりも大きい強度の割合に基づく第１の判定値の補正が行なわれない場合にのみ、予め定められた数だけ連続した複数の点火サイクルにおいて算出された第１の値に基づく第１の判定値の補正が行なわれる。これにより、第３の判定値よりも大きい強度の割合に基づく第１の判定値の補正が行なわれる場合には、補正が重複して行なわれることを抑制することができる。
【００１６】
第６の発明に係る内燃機関のノッキング判定装置においては、第１〜５のいずれかの発明の構成に加え、第２の値は、検出された波形と波形モデルとの差が小さいほどより大きくなるように算出される。条件は、予め定められた値以上であるという条件である。第１２の発明に係る内燃機関のノッキング判定方法は、第６の発明に係る内燃機関のノッキング判定装置と同様の要件を備える。
【００１７】
第６または第１２の発明によると、第２の値は、検出された波形と波形モデルとの差が小さいほどより大きくなるように算出される。第２の値が予め定められた値以上であるという条件を満たす複数の点火サイクルにおいて算出された第１の値のうち、第１の判定値以上の第１の値の数が第２の数以上である場合に第１の判定値が補正される。これにより、検出された波形と波形モデルとの差が大きい点火サイクル、すなわち、ノイズが混在した点火サイクルにおいて算出された第１の値を除く第１の値に対して第１の判定値が小さいといえる場合には、第１の判定値を補正することができる。そのため、ノイズの影響を除外して、判定値を精度よく補正することができる。
【００１８】
第１３の発明に係るプログラムは、第７〜１２のいずれかの発明に係る内燃機関のノッキング判定方法をコンピュータで実現するプログラムであって、第１４の発明に係る記録媒体は、第７〜１２のいずれかの発明に係る内燃機関のノッキング方法をコンピュータで実現するプログラムを記録した媒体である。
【００１９】
第１３または第１４の発明によると、コンピュータ（汎用でも専用でもよい）を用いて、第７〜１２のいずれかの発明に係る内燃機関のノッキング判定方法を実現することができる。
【発明を実施するための最良の形態】
【００２０】
以下、図面を参照しつつ、本発明の実施の形態について説明する。以下の説明では、同一の部品には同一の符号を付してある。それらの名称および機能も同一である。したがって、それらについての詳細な説明は繰返さない。
【００２１】
図１を参照して、本発明の実施の形態に係るノッキング判定装置を搭載した車両のエンジン１００について説明する。このエンジン１００には複数の気筒が設けられる。本実施の形態に係るノッキング判定装置は、たとえばエンジンＥＣＵ（Electronic Control Unit）２００のＲＯＭ（Read Only Memory）２０２に記憶されたプログラムを実行することにより実現される。
【００２２】
エンジン１００は、エアクリーナ１０２から吸入された空気とインジェクタ１０４から噴射される燃料との混合気を、燃焼室内で点火プラグ１０６により点火して燃焼させる内燃機関である。点火時期は、出力トルクが最大になるＭＢＴ（Minimum advance for Best Torque）になるように制御されるが、ノッキングが発生した場合など、エンジン１００の運転状態に応じて遅角されたり、進角されたりする。
【００２３】
混合気が燃焼すると、燃焼圧によりピストン１０８が押し下げられ、クランクシャフト１１０が回転する。燃焼後の混合気（排気ガス）は、三元触媒１１２により浄化された後、車外に排出される。エンジン１００に吸入される空気の量は、スロットルバルブ１１４により調整される。
【００２４】
エンジン１００は、エンジンＥＣＵ２００により制御される。エンジンＥＣＵ２００には、ノックセンサ３００と、水温センサ３０２と、タイミングロータ３０４に対向して設けられたクランクポジションセンサ３０６と、スロットル開度センサ３０８と、車速センサ３１０と、イグニッションスイッチ３１２と、エアフローメータ３１４とが接続されている。
【００２５】
ノックセンサ３００は、エンジン１００のシリンダブロックに設けられる。ノックセンサ３００は、圧電素子により構成されている。ノックセンサ３００は、エンジン１００の振動により電圧を発生する。電圧の大きさは、振動の大きさと対応した大きさとなる。ノックセンサ３００は、電圧を表わす信号をエンジンＥＣＵ２００に送信する。水温センサ３０２は、エンジン１００のウォータージャケット内の冷却水の温度を検出し、検出結果を表わす信号を、エンジンＥＣＵ２００に送信する。
【００２６】
タイミングロータ３０４は、クランクシャフト１１０に設けられており、クランクシャフト１１０と共に回転する。タイミングロータ３０４の外周には、予め定められた間隔で複数の突起が設けられている。クランクポジションセンサ３０６は、タイミングロータ３０４の突起に対向して設けられている。タイミングロータ３０４が回転すると、タイミングロータ３０４の突起と、クランクポジションセンサ３０６とのエアギャップが変化するため、クランクポジションセンサ３０６のコイル部を通過する磁束が増減し、コイル部に起電力が発生する。クランクポジションセンサ３０６は、起電力を表わす信号を、エンジンＥＣＵ２００に送信する。エンジンＥＣＵ２００は、クランクポジションセンサ３０６から送信された信号に基づいて、クランク角およびクランクシャフト１１０の回転数を検出する。
【００２７】
スロットル開度センサ３０８は、スロットル開度を検出し、検出結果を表わす信号をエンジンＥＣＵ２００に送信する。車速センサ３１０は、車輪（図示せず）の回転数を検出し、検出結果を表わす信号をエンジンＥＣＵ２００に送信する。エンジンＥＣＵ２００は、車輪の回転数から、車速を算出する。イグニッションスイッチ３１２は、エンジン１００を始動させる際に、運転者によりオン操作される。エアフローメータ３１４は、エンジン１００に吸入される空気量を検出し、検出結果を表わす信号をエンジンＥＣＵ２００に送信する。
【００２８】
エンジンＥＣＵ２００は、電源である補機バッテリ３２０から供給された電力により作動する。エンジンＥＣＵ２００は、各センサおよびイグニッションスイッチ３１２から送信された信号、ＲＯＭ２０２やＳＲＡＭ（Static Random Access Memory）２０４に記憶されたマップおよびプログラムに基づいて演算処理を行ない、エンジン１００が所望の運転状態となるように、機器類を制御する。
【００２９】
本実施の形態において、エンジンＥＣＵ２００は、ノックセンサ３００から送信された信号およびクランク角に基づいて、予め定められたノック検出ゲート（予め定められた第１クランク角から予め定められた第２クランク角までの区間）におけるエンジン１００の振動の波形（以下、振動波形と記載する）を検出し、検出された振動波形に基づいて、エンジン１００にノッキングが発生したか否かを判定する。本実施の形態におけるノック検出ゲートは、燃焼行程において上死点（０度）から９０度までである。なお、ノック検出ゲートはこれに限らない。このノック検出ゲートが、前述の第１の発明における第１の範囲に対応する。
【００３０】
ノッキングが発生した場合、エンジン１００には、図２において実線で示す周波数付近の周波数の振動が発生する。ノッキングに起因して発生する振動の周波数は一定ではなく、所定の帯域幅を有する。そのため、本実施の形態においては、図２に示すように、第１の周波数帯Ａ、第２の周波数帯Ｂおよび第３の周波数帯Ｃに含まれる振動を検出する。なお、図２におけるＣＡは、クランク角（Crank Angle。なお、ノッキングに起因して発生する振動の周波数帯は３つに限られない。
【００３１】
図３を参照して、エンジンＥＣＵ２００についてさらに説明する。エンジンＥＣＵ２００は、Ａ／Ｄ（アナログ／デジタル）変換部４００と、バンドパスフィルタ（１）４１０と、バンドパスフィルタ（２）４２０と、バンドパスフィルタ（３）４３０と、積算部４５０とを含む。
【００３２】
Ａ／Ｄ変換部４００は、ノックセンサ３００から送信されたアナログ信号をデジタル信号に変換する。バンドパスフィルタ（１）４１０は、ノックセンサ３００から送信された信号のうち、第１の周波数帯Ａの信号のみを通過させる。すなわち、バンドパスフィルタ（１）４１０により、ノックセンサ３００が検出した振動から、第１の周波数帯Ａの振動のみが抽出される。
【００３３】
バンドパスフィルタ（２）４２０は、ノックセンサ３００から送信された信号のうち、第２の周波数帯Ｂの信号のみを通過させる。すなわち、バンドパスフィルタ（２）４２０により、ノックセンサ３００が検出した振動から、第２の周波数帯Ｂの振動のみが抽出される。
【００３４】
バンドパスフィルタ（３）４３０は、ノックセンサ３００から送信された信号のうち、第３の周波数帯Ｃの信号のみを通過させる。すなわち、バンドパスフィルタ（３）４３０により、ノックセンサ３００が検出した振動から、第３の周波数帯Ｃの振動のみが抽出される。
【００３５】
積算部４５０は、バンドパスフィルタ（１）４１０〜バンドパスフィルタ（３）４３０により選別された信号、すなわち振動の強度を、クランク角度で５度分づつ積算する。以下、積算された値を積算値と表わす。積算値の算出は、周波数帯ごとに行なわれる。この積算値の算出により、各周波数帯における振動波形が検出される。
【００３６】
さらに、算出された第１の周波数帯Ａ〜第３の周波数帯Ｃの積算値は、クランク角度に対応して加算される。すなわち、第１の周波数帯Ａ〜第３の周波数帯Ｃの振動波形が合成される。
【００３７】
これにより、図４に示すように、エンジン１００の振動波形が検出される。すなわち、第１の周波数帯Ａ〜第３の周波数帯Ｃの合成波形が、エンジン１００の振動波形として用いられる。
【００３８】
検出された振動波形は、図５に示すようにエンジンＥＣＵ２００のＲＯＭ２０２に記憶されたノック波形モデルと比較される。ノック波形モデルは、エンジン１００にノッキングが発生した場合の振動波形のモデルとして予め作成される。
【００３９】
ノック波形モデルにおいて、振動の強度は０〜１の無次元数として表され、振動の強度はクランク角と一義的には対応していない。すなわち、本実施の形態のノック波形モデルにおいては、振動の強度のピーク値以降、クランク角が大きくなるにつれ振動の強度が低減することが定められているが、振動の強度がピーク値となるクランク角は定められていない。
【００４０】
本実施の形態におけるノック波形モデルは、ノッキングにより発生した振動の強度のピーク値以降の振動に対応している。なお、ノッキングに起因した振動の立ち上がり以降の振動に対応したノック波形モデルを記憶してもよい。
【００４１】
ノック波形モデルは、実験などにより、強制的にノッキングを発生させた場合におけるエンジン１００の振動波形を検出し、この振動波形に基づいて予め作成されて記憶される。
【００４２】
ノック波形モデルは、エンジン１００の寸法やノックセンサ３００の出力値が、寸法公差やノックセンサ３００の出力値の公差の中央値であるエンジン１００（以下、特性中央エンジンと記載する）を用いて作成される。すなわち、ノック波形モデルは、特性中央エンジンに強制的にノッキングを発生させた場合における振動波形である。なお、ノック波形モデルを作成する方法は、これに限られず、その他、シミュレーションにより作成してもよい。
【００４３】
検出された波形とノック波形モデルとの比較においては、図６に示すように、正規化された波形とノック波形モデルとが比較される。ここで、正規化とは、たとえば、検出された振動波形における積算値の最大値で各積算値を除算することにより、振動の強度を０〜１の無次元数で表わすことである。なお、正規化の方法はこれに限らない。
【００４４】
本実施の形態において、エンジンＥＣＵ２００は、正規化された振動波形とノック波形モデルとの偏差に関する値である相関係数Ｋを算出する。正規化後の振動波形において振動の強度が最大になるタイミングとノック波形モデルにおいて振動の強度が最大になるタイミングとを一致させた状態で、正規化後の振動波形とノック波形モデルとの偏差の絶対値（ズレ量）をクランク角ごと（５度ごと）に算出することにより、相関係数Ｋが算出される。
【００４５】
正規化後の振動波形とノック波形モデルとのクランク角ごとの偏差の絶対値をΔＳ（Ｉ）（Ｉは自然数）とし、ノック波形モデルにおける振動の強度をクランク角で積分した値（ノック波形モデルの面積）をＳとおくと、相関係数Ｋは、Ｋ＝（Ｓ−ΣΔＳ（Ｉ））／Ｓという方程式により算出される。ここで、ΣΔＳ（Ｉ）は、ΔＳ（Ｉ）の総和である。本実施の形態において、相関係数Ｋは、振動波形の形状がノック波形モデルの形状に近いほど、大きな値として算出される。したがって、振動波形にノッキング以外の要因による振動の波形が含まれた場合、相関係数Ｋは小さく算出される。なお、相関係数Ｋの算出方法はこれに限らない。
【００４６】
さらに、エンジンＥＣＵ２００は、積算値の最大値（ピーク値）に基づいて、ノック強度Ｎを算出する。積算値の最大値をＰとし、エンジン１００にノッキングが発生していない状態におけるエンジン１００の振動の強度を表わす値をＢＧＬ（Back Ground Level）とおくと、ノック強度Ｎは、Ｎ＝Ｐ／ＢＧＬという方程式で算出される。なお、ノック強度Ｎを算出する際の積算値の最大値Ｐは対数変換される。また、ノック強度Ｎの算出方法はこれに限らない。
【００４７】
ＢＧＬは、後述する強度値ＬＯＧ（Ｖ）の頻度分布において、標準偏差σと係数（たとえば「１」）との積を、中央値Ｖ（５０）から減算した値として算出される。なお、ＢＧＬの算出方法はこれに限らず、ＢＧＬをＲＯＭ２０２に記憶しておくようにしてもよい。
【００４８】
本実施の形態において、エンジンＥＣＵ２００は、算出されたノック強度ＮとＳＲＡＭ２０４に記憶された判定値Ｖ（Ｊ）とを比較し、さらに検出された波形と記憶されたノック波形モデルとを比較して、エンジン１００にノッキングが発生したか否かを１点火サイクルごとに判定する。
【００４９】
図７に示すように、判定値Ｖ（Ｊ）は、エンジン回転数ＮＥと吸入空気量ＫＬとをパラメータとした運転状態により区分される領域毎に、マップとして記憶される。本実施の形態においては、低回転（ＮＥ＜ＮＥ（１））、中回転（ＮＥ（１）≦ＮＥ＜ＮＥ（２））、高回転（ＮＥ（２）≦ＮＥ）、低負荷（ＫＬ＜ＫＬ（１））、中負荷（ＫＬ（１）≦ＫＬ＜ＫＬ（２））、高負荷（ＫＬ（２）≦ＫＬ）で区分することにより、気筒毎に９つの領域が設けられる。なお、領域の数はこれに限らない。また、エンジン回転数ＮＥおよび吸入空気量ＫＬ以外のパラメータを用いて領域を区分するようにしてもよい。
【００５０】
エンジン１００もしくは車両の出荷時において、ＲＯＭ２０２に記憶される判定値Ｖ（Ｊ）（出荷時における判定値Ｖ（Ｊ）の初期値）には、予め実験などにより定められる値が用いられる。ところが、ノックセンサ３００の出力値のばらつきや劣化などにより、エンジン１００で同じ振動が生じた場合であっても、検出される強度が変化し得る。この場合、判定値Ｖ（Ｊ）を補正し、実際に検出される強度に応じた判定値Ｖ（Ｊ）を用いてノッキングが発生したか否かを判定する必要がある。
【００５１】
そこで、本実施の形態においては、強度Ｖを対数変換した値である強度値ＬＯＧ（Ｖ）と、各強度値ＬＯＧ（Ｖ）が検出された頻度（回数、確率ともいう）との関係を示す頻度分布に基づいて、ノック判定レベルＶ（ＫＤ）が算出される。
【００５２】
エンジン回転数ＮＥと吸入空気量ＫＬとをパラメータとする領域ごとに強度値ＬＯＧ（Ｖ）が算出される。強度値ＬＯＧ（Ｖ）を算出するために用いられる強度Ｖは、予め定められたクランク角の間における強度のピーク値（５度ごとの積算値のピーク値）である。算出される強度ＬＯＧ（Ｖ）に基づいて、強度値ＬＯＧ（Ｖ）の頻度を最小値から累積して５０％になる中央値Ｖ（５０）が算出される。また、中央値Ｖ（５０）以下の強度値ＬＯＧ（Ｖ）における標準偏差σが算出される。たとえば、本実施の形態においては、複数（たとえば２００サイクル）の強度値ＬＯＧ（Ｖ）に基づいて算出される中央値および標準偏差と近似した中央値Ｖ（５０）および標準偏差σが、以下の算出方法により１点火サイクルごとに算出される。
【００５３】
今回検出された強度値ＬＯＧ（Ｖ）が前回算出された中央値Ｖ（５０）よりも大きい場合、前回算出された中央値Ｖ（５０）に予め定められた値Ｃ（１）を加算した値が、今回の中央値Ｖ（５０）として算出される。逆に、今回検出された強度値ＬＯＧ（Ｖ）が前回算出された中央値Ｖ（５０）よりも小さい場合、前回算出された中央値Ｖ（５０）から予め定められた値Ｃ（２）（たとえばＣ（２）はＣ（１）と同じ値）を減算した値が、今回の中央値Ｖ（５０）として算出される。
【００５４】
今回検出された強度値ＬＯＧ（Ｖ）が、前回算出された中央値Ｖ（５０）よりも小さく、かつ前回算出された中央値Ｖ（５０）から前回算出された標準偏差σを減算した値よりも大きい場合、前回算出された標準偏差σから予め定められた値Ｃ（３）を２倍した値を減算した値が、今回の標準偏差σとして算出される。逆に、今回検出された強度値ＬＯＧ（Ｖ）が、前回算出された中央値Ｖ（５０）よりも大きい場合、または前回算出された中央値Ｖ（５０）から前回算出された標準偏差σを減算した値よりも小さい場合、前回算出された標準偏差σに予め定められた値Ｃ（４）（たとえばＣ（４）はＣ（３）と同じ値）を加算した値が、今回の標準偏差σとして算出される。なお、中央値Ｖ（５０）および標準偏差σの算出方法はこれに限定されない。また、中央値Ｖ（５０）および標準偏差σの初期値は、予め設定された値であってもよいし、「０」であってもよい。
【００５５】
中央値Ｖ（５０）および標準偏差σを用いて、ノック判定レベルＶ（ＫＤ）が算出される。図８に示すように、中央値Ｖ（５０）に係数Ｕ（１）（Ｕ（１）は定数で、たとえばＵ（１）＝３）と標準偏差σとの積を加算した値が、ノック判定レベルＶ（ＫＤ）となる。なお、ノック判定レベルＶ（ＫＤ）の算出方法はこれに限らない。
【００５６】
ノック判定レベルＶ（ＫＤ）よりも大きい強度値ＬＯＧ（Ｖ）の割合（頻度）が、ノッキングが発生した頻度として判定され、ノック占有率ＫＣとしてカウントされる。
【００５７】
ノック占有率ＫＣがしきい値ＫＣ（０）よりも大きいと、点火時期の遅角が行なわれる頻度が高くなるように、判定値Ｖ（Ｊ）が予め定められた補正量Ａ（１）だけ小さく補正される。補正された判定値Ｖ（Ｊ）は、ＳＲＡＭ２０４に記憶される。
【００５８】
係数Ｕ（１）は、実験などより得られたデータや知見から求められた係数である。Ｕ（１）＝３とした場合のノック判定レベルＶ（ＫＤ）よりも大きい強度値ＬＯＧ（Ｖ）が、実際にノッキングが発生した点火サイクルにおける強度値ＬＯＧ（Ｖ）と略一致する。なお、係数Ｕ（１）に「３」以外の値を用いるようにしてもよい。
【００５９】
強度値ＬＯＧ（Ｖ）の頻度分布においては、エンジン１００においてノッキングが発生していなければ、図９に示すように正規分布となり、強度値ＬＯＧ（Ｖ）の最大値Ｖ（ＭＡＸ）とノック判定レベルＶ（ＫＤ）とが一致する。一方、ノッキングが発生することにより、検出される強度Ｖが大きくなり、大きい強度値ＬＯＧ（Ｖ）が算出されると、図１０に示すように、ノック判定レベルＶ（ＫＤ）よりも最大値Ｖ（ＭＡＸ）が大きくなる。
【００６０】
さらにノッキングが発生する頻度が大きくなると、図１１に示すように最大値Ｖ（ＭＡＸ）はさらに大きくなる。このとき、頻度分布における中央値Ｖ（５０）および標準偏差σは、最大値Ｖ（ＭＡＸ）とともに大きくなる。そのため、ノック判定レベルＶ（ＫＤ）が大きくなる。
【００６１】
ノック判定レベルＶ（ＫＤ）よりも小さい強度値ＬＯＧ（Ｖ）は、ノッキングが発生したサイクルにおける強度値ＬＯＧ（Ｖ）とは判定されないため、ノック判定レベルＶ（ＫＤ）が大きくなると、それだけ、ノッキングが発生していても、ノッキングが発生していないと判定される頻度が高くなる。
【００６２】
そこで、本実施の形態においては、図１２に示すように、ノック判定レベルＶ（ＫＤ）が、現在の判定値Ｖ（Ｊ）と係数Ｚとの積よりも大きい場合、ノッキングが頻発している状態であると判定する。この場合、ノック占有率ＫＣがしきい値ＫＣ（０）よりも大きい場合の補正量Ａ（１）よりも大きい補正量Ａ（２）で、判定値Ｖ（Ｊ）が小さくされる。これにより、ノッキングが頻発している場合には、点火時期の遅角制御をより多く行なって、ノッキングを抑制することができる。
【００６３】
ところで、判定値Ｖ（Ｊ）がエンジン１００で実際に発生する振動の強度に対して過小であると、ノッキングが発生している頻度が少ないにもかかわらず、ノッキングが発生したと判定される頻度が必要以上に多くなる。この場合、点火時期の遅角が行なわれる頻度が必要以上に多くなり、エンジン１００の出力の観点から好ましくない。
【００６４】
そこで、本実施の形態においては、予め定められた数（たとえば２００回）だけ連続した複数の点火サイクル分のノック強度Ｎのうち、判定値Ｖ（Ｊ）以上のノック強度Ｎの数がしきい値Ｂ（１）以上であると、補正量Ａ（３）だけ判定値Ｖ（Ｊ）が大きくされる。
【００６５】
また、予め定められた数だけ連続した複数の点火サイクル分のノック強度Ｎのうち、判定値Ｖ（Ｊ）以上のノック強度Ｎの数がしきい値Ｂ（２）（Ｂ（２）＜Ｂ（１））以上であって、しきい値Ｂ（１）未満であると、補正量Ａ（３）よりも小さい補正量Ａ（４）だけ判定値Ｖ（Ｊ）が大きくされる。これにより、判定値Ｖ（Ｊ）を速やかに大きくすることができる。
【００６６】
ところで、エンジン１００には、ノッキングに起因する振動の他、吸気バルブ１１６もしくは排気バルブ１１８の着座による振動が発生し得る。また、インジェクタ（特に、筒内に直接燃料を噴射する直噴インジェクタ）１０４もしくはインジェクタに燃料を供給するポンプ１２０の作動によっても振動が発生し得る。
【００６７】
これらによる振動は、ノッキングの有無、すなわち判定値Ｖ（Ｊ）の大きさに関わらずノイズとして検出され得る。ノイズの強度は、ノッキングによる振動の強度の大きさと同程度の大きさである。
【００６８】
したがって、予め定められた数だけ連続した複数の点火サイクル分の全てのノック強度Ｎを母集団として用いた場合、判定値Ｖ（Ｊ）が過小でなくとも、判定値Ｖ（Ｊ）以上のノック強度Ｎが存在し得る。
【００６９】
そこで、判定値Ｖ（Ｊ）以上のノック強度Ｎの数がしきい値Ｂ（１）未満であり、かつしきい値Ｂ（２）未満である場合は、予め定められた数だけ連続した複数の点火サイクル分の全てのノック強度Ｎのうち、相関係数Ｋがしきい値Ｋ（１）（たとえばＫ（１）＝０．６）以上であるという条件を満たす複数の点火サイクルにおけるノック強度Ｎが母集団として用いられる。
【００７０】
相関係数Ｋがしきい値Ｋ（１）以上であるという条件を満たす複数の点火サイクルにおけるノック強度Ｎのうち、判定値Ｖ（Ｊ）以上のノック強度Ｎの数がしきい値Ｂ（３）（Ｂ（３）＜Ｂ（２））以上であると、補正量Ａ（４）よりも小さい補正量Ａ（５）だけ判定値Ｖ（Ｊ）が大きくされる。
【００７１】
図１３を参照して、本実施の形態に係るノッキング判定装置であるエンジンＥＣＵ２００の機能について説明する。なお、以下に説明するエンジンＥＣＵ２００の機能は、ハードウェアにより実現してもよく、ソフトウェアにより実現してもよい。
【００７２】
エンジンＥＣＵ２００は、強度検出部２１０と、波形検出部２１２と、ノック強度算出部２２０と、相関係数算出部２２２と、ノッキング判定部２３０と、強度値算出部２４０と、第１補正部２４１と、第２補正部２４２と、第３補正部２４３と、第４補正部２４４とを含む。
【００７３】
強度検出部２１０は、ノックセンサ３００から送信された信号に基づいて、ノック検出ゲートにおける振動の強度Ｖを検出する。波形検出部２１２は、振動の強度Ｖをクランク角度で５度分づつ積算することにより、ノック検出ゲートにおける振動の波形を検出する。
【００７４】
ノック強度算出部２２０は、ノック強度Ｎを算出する。相関係数算出部２２２は、相関係数Ｋを算出する。ノッキング判定部２３０は、ノック強度Ｎが判定値Ｖ（Ｊ）より大きく、かつ相関係数Ｋがしきい値Ｋ（２）より大きい場合、ノッキングが発生したと判定する。
【００７５】
強度値算出部２４０は、強度Ｖを対数変換した強度値ＬＯＧ（Ｖ）を算出する。第１補正部２４１は、ノック判定レベルＶ（ＫＤ）よりも大きい強度値ＬＯＧ（Ｖ）の割合であるノック占有率ＫＣがしきい値ＫＣ（０）よりも大きいと、判定値Ｖ（Ｊ）が補正量Ａ（１）だけ小さくなるように補正する。
【００７６】
第２補正部２４２は、ノック判定レベルＶ（ＫＤ）が、現在の判定値Ｖ（Ｊ）と係数Ｚとの積よりも大きい場合、補正量Ａ（２）だけ判定値Ｖ（Ｊ）が小さくなるように補正する。
【００７７】
第３補正部２４３は、予め定められた数だけ連続した複数の点火サイクル分のノック強度Ｎのうち、判定値Ｖ（Ｊ）以上のノック強度Ｎの数がしきい値Ｂ（１）以上であると、補正量Ａ（３）だけ判定値Ｖ（Ｊ）が大きくなるように補正する。また、第３補正部２４３は、予め定められた数だけ連続した複数の点火サイクル分のノック強度Ｎのうち、判定値Ｖ（Ｊ）以上のノック強度Ｎの数がしきい値Ｂ（２）以上であると、補正量Ａ（４）だけ判定値Ｖ（Ｊ）が大きくなるように補正する。
【００７８】
第４補正部２４４は、相関係数Ｋがしきい値Ｋ（１）以上であるという条件を満たす複数の点火サイクルにおけるノック強度Ｎのうち、判定値Ｖ（Ｊ）以上のノック強度Ｎの数がしきい値Ｂ（３）以上であると、補正量Ａ（５）だけ判定値Ｖ（Ｊ）が大きくなるように補正する。
【００７９】
図１４を参照して、本実施の形態に係るノッキング判定装置であるエンジンＥＣＵ２００が、ノッキングが発生したか否かを１点火サイクルごとに判定して点火時期を制御するために実行するプログラムの制御構造について説明する。
【００８０】
ステップ（以下、ステップをＳと略す）１００にて、エンジンＥＣＵ２００は、クランクポジションセンサ３０６から送信された信号に基づいて、エンジン回転数ＮＥを検出するとともに、エアフローメータ３１４から送信された信号に基づいて、吸入空気量ＫＬを検出する。
【００８１】
Ｓ１０２にて、エンジンＥＣＵ２００は、ノックセンサ３００から送信された信号に基づいて、エンジン１００の振動の強度を検出する。振動の強度は、ノックセンサ３００の出力電圧値で表される。なお、ノックセンサ３００の出力電圧値と対応した値で振動の強度を表してもよい。強度の検出は、燃焼行程において上死点から９０度（クランク角で９０度）までの間で行なわれる。
【００８２】
Ｓ１０４にて、エンジンＥＣＵ２００は、ノックセンサ３００の出力電圧値（振動の強度を表わす値）を、クランク角で５度ごとに（５度分だけ）積算した値（積算値）を算出する。積算値の算出は、第１の周波数帯Ａ〜第３の周波数帯Ｃの振動ごとに行なわれる。さらに第１の周波数帯Ａ〜第３の周波数帯Ｃの積算値が、クランク角度に対応して加算されて、エンジン１００の振動波形が検出される。
【００８３】
Ｓ１０６にて、エンジンＥＣＵ２００は、第１の周波数帯Ａ〜第３の周波数帯Ｃの合成波形（エンジン１００の振動波形）における積算値のうち、最も大きい積算値（ピーク値Ｐ）を算出する。
【００８４】
Ｓ１０８にて、エンジンＥＣＵ２００は、エンジン１００の振動波形を正規化する。ここで、正規化とは、算出されたピーク値で、各積算値を除算することにより、振動の強度を０〜１の無次元数で表わすことをいう。
【００８５】
Ｓ１１０にて、エンジンＥＣＵ２００は、正規化された振動波形とノック波形モデルとの偏差に関する値である相関係数Ｋを算出する。Ｓ１１２にて、エンジンＥＣＵ２００は、ノック強度Ｎを算出する。
【００８６】
Ｓ１１４にて、エンジンＥＣＵ２００は、ノック強度Ｎが判定値Ｖ（Ｊ）よりも大きく、かつ相関係数Ｋがしきい値Ｋ（２）よりも大きいか否かを判別する。ノック強度Ｎが判定値Ｖ（Ｊ）よりも大きく、かつ相関係数Ｋがしきい値Ｋ（２）よりも大きい場合（Ｓ１１４にてＹＥＳ）、処理はＳ１１６に移される。そうでない場合（Ｓ１１４にてＮＯ）、処理はＳ１２０に移される。
【００８７】
Ｓ１１６にて、エンジンＥＣＵ２００は、エンジン１００にノッキングが発生したと判定する。Ｓ１１８にて、エンジンＥＣＵ２００は、点火時期を遅角する。Ｓ１２０にて、エンジンＥＣＵ２００は、エンジン１００にノッキングが発生していないと判定する。Ｓ１２２にて、エンジンＥＣＵ２００は、点火時期を進角する。
【００８８】
図１５および図１６を参照して、本実施の形態に係るノッキング判定装置であるエンジンＥＣＵ２００が、判定値Ｖ（Ｊ）を補正するために実行するプログラムの制御構造について説明する。
【００８９】
Ｓ２００にて、エンジンＥＣＵ２００は、ノックセンサ３００から送信された信号に基づいて検出される強度Ｖから、強度値ＬＯＧ（Ｖ）を算出する。ここで、強度Ｖは、予め定められたクランク角の間におけるピーク値（５度ごとの積算値のピーク値）である。
【００９０】
Ｓ２０２にて、エンジンＥＣＵ２００は、算出された強度値ＬＯＧ（Ｖ）について、中央値Ｖ（５０）および標準偏差σを算出する。なお、中央値Ｖ（５０）および標準偏差σを算出は、予め定められた数の複数の点火サイクル分の強度値ＬＯＧ（Ｖ）が抽出されるごとに算出するようにしてもよい。
【００９１】
Ｓ２０４にて、エンジンＥＣＵ２００は、算出された中央値Ｖ（５０）および標準偏差σに基づいて、ＢＧＬおよびノック判定レベルＶ（ＫＤ）を算出する。
【００９２】
Ｓ２０６にて、エンジンＥＣＵ２００は、ノック判定レベルＶ（ＫＤ）よりも大きい強度値ＬＯＧ（Ｖ）の割合を、ノック占有率ＫＣとしてカウントする。
【００９３】
Ｓ２０８にて、エンジンＥＣＵ２００は、前回判定値Ｖ（Ｊ）が補正されてから予め定められた数の複数の点火サイクル分の強度値ＬＯＧ（Ｖ）が算出されているか否かを判別する。
【００９４】
予め定められた数の複数の点火サイクル分の強度値ＬＯＧ（Ｖ）が算出されている場合（Ｓ２０８にてＹＥＳ）、処理はＳ２１０に移される。そうでない場合（Ｓ２０８にてＮＯ）、処理はＳ２００に戻される。
【００９５】
Ｓ２１０にて、エンジンＥＣＵ２００は、ノック占有率ＫＣがしきい値ＫＣ（０）よりも大きいか否かを判定する。ノック占有率ＫＣがしきい値ＫＣ（０）よりも大きい場合（Ｓ２１０にてＹＥＳ）、処理はＳ２１２に移される。そうでない場合（Ｓ２１０にてＮＯ）、処理はＳ２１４に移される。
【００９６】
Ｓ２１２にて、エンジンＥＣＵ２００は、判定値Ｖ（Ｊ）を、補正量Ａ（１）だけ小さくする。
【００９７】
Ｓ２１４にて、エンジンＥＣＵ２００は、ノック判定レベルＶ（ＫＤ）が、現在の判定値Ｖ（Ｊ）と係数Ｚ（たとえばＺ＝１．５）との積よりも大きいか否かを判別する。ノック判定レベルＶ（ＫＤ）が、現在の判定値Ｖ（Ｊ）と係数Ｚとの積よりも大きい場合（Ｓ２１４にてＹＥＳ）、処理はＳ２１６に移される。そうでない場合（Ｓ２１４にてＮＯ）、処理はＳ２２０に移される。
【００９８】
Ｓ２１６にて、エンジンＥＣＵ２００は、ノッキングが頻発していると判定する。Ｓ２１８にて、エンジンＥＣＵ２００は、判定値Ｖ（Ｊ）を、補正量Ａ（２）だけ小さくする。
【００９９】
Ｓ２２０にて、エンジンＥＣＵ２００は、予め定められた数だけ連続した複数の点火サイクル分のノック強度Ｎのうち、判定値Ｖ（Ｊ）以上のノック強度Ｎの数がしきい値Ｂ（１）以上であるか否かを判別する。
【０１００】
判定値Ｖ（Ｊ）以上のノック強度Ｎの数がしきい値Ｂ（１）以上である場合（Ｓ２２０にてＹＥＳ）、処理はＳ２２２に移される。そうでない場合（Ｓ２２０にてＮＯ）、処理はＳ２２４に移される。Ｓ２２２にて、エンジンＥＣＵ２００は、補正量Ａ（３）だけ判定値Ｖ（Ｊ）を大きくする。なお、Ｓ２２２の後にＳ２１４〜Ｓ２１８の処理を実行するようにしてもよい。
【０１０１】
Ｓ２２４にて、エンジンＥＣＵ２００は、予め定められた数だけ連続した複数の点火サイクル分のノック強度Ｎのうち、判定値Ｖ（Ｊ）以上のノック強度Ｎの数がしきい値Ｂ（２）以上であるか否かを判別する。判定値Ｖ（Ｊ）以上のノック強度Ｎの数がしきい値Ｂ（２）以上である場合（Ｓ２２４にてＹＥＳ）、処理はＳ２２６に移される。そうでない場合（Ｓ２２４にてＮＯ）、処理はＳ２２８に移される。Ｓ２２６にて、エンジンＥＣＵ２００は、補正量Ａ（４）だけ判定値Ｖ（Ｊ）を大きくする。
【０１０２】
Ｓ２２８にて、エンジンＥＣＵ２００は、予め定められた数だけ連続した複数の点火サイクル分のノック強度Ｎのうち、相関係数Ｋがしきい値Ｋ（１）以上であるという条件を満たす複数の点火サイクルにおけるノック強度Ｎを抽出する。
【０１０３】
Ｓ２３０にて、エンジンＥＣＵ２００は、抽出されたノック強度Ｎのうち、判定値Ｖ（Ｊ）以上のノック強度Ｎの数がしきい値Ｂ（３）以上であるか否かを判別する。
【０１０４】
判定値Ｖ（Ｊ）以上のノック強度Ｎの数がしきい値Ｂ（３）以上である場合（Ｓ２３０にてＹＥＳ）、処理はＳ２３２に移される。そうでない場合（Ｓ２３０にてＮＯ）、この処理は終了する。
【０１０５】
Ｓ２３２にて、エンジンＥＣＵ２００は、補正量Ａ（５）だけ判定値Ｖ（Ｊ）を大きくする。その後、この処理は終了する。
【０１０６】
以上のような構造およびフローチャートに基づく、本実施の形態に係るノッキング判定装置であるエンジンＥＣＵ２００の動作について説明する。
【０１０７】
エンジン１００の運転中において、クランクポジションセンサ３０６から送信された信号に基づいて、エンジン回転数ＮＥが検出されるとともに、エアフローメータ３１４から送信された信号に基づいて、吸入空気量ＫＬが検出される（Ｓ１００）。また、ノックセンサ３００から送信された信号に基づいて、エンジン１００の振動の強度が検出される（Ｓ１０２）。
【０１０８】
燃焼行程における上死点から９０度までの間において、５度ごとの積算値が第１の周波数帯Ａから第３の周波数帯Ｃの振動ごとに算出される（Ｓ１０４）。算出された第１の周波数帯Ａ〜第３の周波数帯Ｃの積算値がクランク角度に対応して加算され、前述した図４に示すようなエンジン１００の振動波形が検出される。
【０１０９】
５度ごとの積算値により振動波形を検出することにより、振動の強度が細かく変化する複雑な形状の振動波形が検出されることを抑制することができる。そのため、検出された振動波形とノック波形モデルとの比較を容易にすることができる。
【０１１０】
算出された積算値に基づいて、第１の周波数帯Ａ〜第３の周波数帯Ｃの合成波形（エンジン１００の振動波形）における積算値のピーク値Ｐが算出される（Ｓ１０６）。
【０１１１】
算出されたピーク値Ｐでエンジン１００の振動波形における積算値が除算されて、振動波形が正規化される（Ｓ１０８）。正規化により、振動波形における振動の強度が０〜１の無次元数で表される。これにより、振動の強度に関係なく検出された振動波形とノック波形モデルとの比較を行なうことができる。そのため、振動の強度に対応した多数のノック波形モデルを記憶しておく必要がなく、ノック波形モデルの作成を容易にすることができる。
【０１１２】
正規化後の振動波形において振動の強度が最大になるタイミングとノック波形モデルにおいて振動の強度が最大になるタイミングとを一致させ（図６参照）、この状態で、正規化後の振動波形とノック波形モデルとのクランク角ごとの偏差の絶対値ΔＳ（Ｉ）が算出される。このΔＳ（Ｉ）の総和ΣΔＳ（Ｉ）およびノック波形モデルにおいて振動の強度をクランク角で積分した値Ｓに基づいて、Ｋ＝（Ｓ−ΣΔＳ（Ｉ））／Ｓにより相関係数Ｋが算出される（Ｓ１１０）。これにより、検出された振動波形とノック波形モデルとの一致度合を数値化して客観的に判定することができる。また、振動波形とノック波形モデ
ルとを比較することで、振動の減衰傾向など、振動の挙動からノッキング時の振動であるか否かを分析することができる。
【０１１３】
さらに、ピーク値Ｐ（ピーク値Ｐを対数変換した値）をＢＧＬで除算することにより、ノック強度Ｎが算出される（Ｓ１１２）。これにより、振動の強度に基づいて、エンジン１００の振動がノッキングに起因した振動であるか否かをより詳細に分析することができる。
【０１１４】
ノック強度Ｎが判定値Ｖ（Ｊ）よりも大きく、かつ相関係数Ｋがしきい値Ｋ（２）よりも大きい場合（Ｓ１１４にてＹＥＳ）、ノッキングが発生したと判定され（Ｓ１１６）、点火時期が遅角される（Ｓ１１８）。これにより、ノッキングの発生が抑制される。
【０１１５】
ノック強度Ｎが判定値Ｖ（Ｊ）以下である場合または相関係数Ｋがしきい値Ｋ（２）以下である場合（Ｓ１１４にてＮＯ）、ノッキングが発生していないと判定され（Ｓ１２０）、点火時期が進角される（Ｓ１２２）。このようにして、ノック強度Ｎと判定値Ｖ（Ｊ）とを比較することにより１点火サイクルごとにノッキングが発生したか否かが判定され、点火時期が遅角されたり、進角されたりする。
【０１１６】
ところで、ノックセンサ３００の出力値のばらつきや劣化などにより、エンジン１００で同じ振動が生じた場合であっても、検出される強度が変化し得る。この場合、判定値Ｖ（Ｊ）を補正し、実際に検出される強度に応じた判定値Ｖ（Ｊ）を用いてノッキングが発生したか否かを判定する必要がある。
【０１１７】
そこで、本実施の形態に係るノッキング判定装置であるエンジンＥＣＵ２００においては、強度値ＬＯＧ（Ｖ）が算出される（Ｓ２００）。算出された強度値ＬＯＧ（Ｖ）について、中央値Ｖ（５０）および標準偏差σが算出される（Ｓ２０２）。これらの中央値Ｖ（５０）および標準偏差σに基づいて、ＢＧＬおよびノック判定レベルＶ（ＫＤ）が算出される（Ｓ２０４）。
【０１１８】
このノック判定レベルＶ（ＫＤ）よりも大きい強度値ＬＯＧ（Ｖ）の割合が、ノック占有率ＫＣとしてカウントされる（Ｓ２０６）。
【０１１９】
予め定められた数の複数の点火サイクル分の強度値ＬＯＧ（Ｖ）が算出されている場合であって（Ｓ２０８にてＹＥＳ）、ノック占有率ＫＣがしきい値ＫＣ（０）よりも大きい場合（Ｓ２１０にてＹＥＳ）、ノッキングが発生する頻度が大きいといえる。
【０１２０】
この場合、点火時期が遅角され易くなるように、判定値Ｖ（Ｊ）が、補正量Ａ（１）だけ小さくされる（Ｓ２１２）。これにより、ノッキングが発生する頻度を小さくすることができる。
【０１２１】
ところで、前述したように、ノッキングが発生する頻度が極めて大きくなると、検出される強度Ｖ、すなわち強度値ＬＯＧ（Ｖ）が大きくなる結果、ノック判定レベルＶ（ＫＤ）が過大になる。この場合、ノッキングが多発しているにも関わらず、ノック占有率ＫＣがしきい値ＫＣ（０）以下になり得る。
【０１２２】
そこで、ノック判定レベルＶ（ＫＤ）が、現在の判定値Ｖ（Ｊ）と係数Ｚとの積よりも大きい場合（Ｓ２１４にてＹＥＳ）、ノッキングが頻発していると判定され（Ｓ２１６）、判定値Ｖ（Ｊ）が補正量Ａ（２）だけ小さくされる（Ｓ２１８）。これにより、ノッキングが発生する頻度を小さくすることができる。
【０１２３】
一方、判定値Ｖ（Ｊ）がエンジン１００で実際に発生する振動の強度に対して過小であると、ノッキングが発生している頻度が少ないにもかかわらず、ノッキングが発生したと判定される頻度が必要以上に多くなる。この場合、点火時期の遅角が行なわれる頻度が必要以上に多くなり、エンジン１００の出力の観点から好ましくない。
【０１２４】
そこで、判定値Ｖ（Ｊ）が過小である場合に判定値Ｖ（Ｊ）を大きくするため、予め定められた数だけ連続した複数の点火サイクル分のノック強度Ｎのうち、判定値Ｖ（Ｊ）以上のノック強度Ｎの数がしきい値Ｂ（１）以上であるか否かが判別される（Ｓ２２０）。
【０１２５】
判定値Ｖ（Ｊ）以上のノック強度Ｎの数がしきい値Ｂ（１）以上である場合（Ｓ２２０にてＹＥＳ）、補正量Ａ（３）だけ判定値Ｖ（Ｊ）が大きくされる（Ｓ２２２）。
【０１２６】
判定値Ｖ（Ｊ）以上のノック強度Ｎの数がしきい値Ｂ（１）未満であるが（Ｓ２２０にてＮＯ）、しきい値Ｂ（１）より小さいしきい値Ｂ（２）以上である場合（Ｓ２２４にてＹＥＳ）、補正量Ａ（３）より小さい補正量Ａ（４）だけ判定値Ｖ（Ｊ）が大きくされる（Ｓ２２６）。
【０１２７】
これにより、点火時期が必要以上に遅角されることを抑制することができる。このとき、相関係数Ｋの大きさに関わらず、前回判定値Ｖ（Ｊ）が補正された後の点火サイクルであって、予め定められた数だけ連続した点火サイクルにおけるノック強度Ｎがしきい値Ｂ（１）またはしきい値Ｂ（２）との比較に用いられる。
【０１２８】
そのため、前回判定値Ｖ（Ｊ）が補正された後、予め定められた数のノック強度Ｎが算出され次第、判定値Ｖ（Ｊ）を大きくすることができる。そのため、判定値Ｖ（Ｊ）を速やかに大きくすることができる。
【０１２９】
一方、判定値Ｖ（Ｊ）以上のノック強度Ｎの数がしきい値Ｂ（１）未満であって（Ｓ２２０にてＮＯ）、かつしきい値Ｂ（２）未満である場合（Ｓ２２４にてＮＯ）は、予め定められた数の複数の点火サイクル分のノック強度Ｎのうち、相関係数Ｋがしきい値Ｋ（１）以上であるという条件を満たす複数の点火サイクルにおけるノック強度Ｎが抽出される（Ｓ２２８）。これにより、ノイズが検出された点火サイクルにおけるノック強度Ｎを除外することができる。
【０１３０】
抽出されたノック強度Ｎのうち、判定値Ｖ（Ｊ）以上のノック強度Ｎの数がしきい値Ｂ（３）以上である場合（Ｓ２３０にてＹＥＳ）、ノッキングの有無を判定する上で適切な値よりも判定値Ｖ（Ｊ）がわずかに小さいといえる。
【０１３１】
この場合、補正量Ａ（３）および補正量Ａ（５）よりも小さい補正量Ａ（５）だけ判定値Ｖ（Ｊ）が大きくされる（Ｓ２３２）。これにより、判定値Ｖ（Ｊ）を、ノッキングの有無を判定する上で適切な値にすることができる。
【０１３２】
以上のように、本実施の形態に係るノッキング判定装置であるエンジンＥＣＵによれば、予め定められた数だけ連続した複数の点火サイクル分のノック強度Ｎのうち、判定値Ｖ（Ｊ）以上のノック強度Ｎの数がしきい値Ｂ（１）以上である場合もしくはしきい値Ｂ（２）以上である場合、判定値Ｖ（Ｊ）が大きくされる。これにより、予め定められた数のノック強度Ｎが算出され次第、判定値Ｖ（Ｊ）を大きくすることができる。そのため、判定値Ｖ（Ｊ）を速やかに大きくすることができる。一方、判定値Ｖ（Ｊ）以上のノック強度Ｎの数がしきい値Ｂ（１）未満であって、かつしきい値Ｂ（２）未満である場合は、予め定められた数の複数の点火サイクル分のノック強度Ｎのうち、相関係数Ｋがしきい値Ｋ（１）以上であるという条件を満たす複数の点火サイクルにおけるノック強度Ｎが抽出される。これにより、ノイズが検出された点火サイクルにおけるノック強度Ｎを除外することができる。抽出されたノック強度Ｎのうち、判定値Ｖ（Ｊ）以上のノック強度Ｎの数がしきい値Ｂ（３）以上である場合、判定値Ｖ（Ｊ）が大きくされる（Ｓ２３２）。これにより、判定値Ｖ（Ｊ）を、ノッキングの有無を判定する上で適切な値にすることができる。
【０１３３】
なお、本実施の形態においては、ノック判定レベルＶ（ＫＤ）が判定値Ｖ（Ｊ）と係数Ｚとの積よりも大きい場合にノッキングが頻発していると判定するようにしていたが、ノッキングが頻発しているか否かを判定する方法はこれに限らない。たとえば、ノック判定レベルＶ（ＫＤ）が判定値Ｖ（Ｊ）と予め定められた値との和よりも大きい場合に、ノッキングが頻発していると判定するようにしてもよい。また、ノック判定レベルＶ（ＫＤ）の代わりに、ノック判定レベルＶ（ＫＤ）とは異なる値であって、中央値Ｖ（５０）に標準偏差σと係数との積を加算した値を用いて、ノッキングが頻発しているか否かを判定するようにしてもよい。
【０１３４】
今回開示された実施の形態は、すべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【図面の簡単な説明】
【０１３５】
【図１】本発明の実施の形態に係るノッキング判定装置であるエンジンＥＣＵにより制御されるエンジンを示す概略構成図である。
【図２】ノッキング時にエンジンで発生する振動の周波数帯を示す図である。
【図３】図１のエンジンＥＣＵを示す制御ブロック図である。
【図４】エンジンの振動波形を示す図である。
【図５】エンジンＥＣＵのＲＯＭに記憶されたノック波形モデルを示す図である。
【図６】振動波形とノック波形モデルとを比較した図である。
【図７】エンジンＥＣＵのＲＯＭもしくはＳＲＡＭに記憶された判定値Ｖ（Ｊ）のマップを示す図である。
【図８】強度値ＬＯＧ（Ｖ）の頻度分布を示す図（その１）である。
【図９】強度値ＬＯＧ（Ｖ）の頻度分布を示す図（その２）である。
【図１０】強度値ＬＯＧ（Ｖ）の頻度分布を示す図（その３）である。
【図１１】強度値ＬＯＧ（Ｖ）の頻度分布を示す図（その４）である。
【図１２】強度値ＬＯＧ（Ｖ）の頻度分布を示す図（その５）である。
【図１３】エンジンＥＣＵの機能ブロック図である。
【図１４】本発明の実施の形態に係るノッキング判定装置であるエンジンＥＣＵが実行するプログラムの制御構造を示すフローチャート（その１）である。
【図１５】本発明の実施の形態に係るノッキング判定装置であるエンジンＥＣＵが実行するプログラムの制御構造を示すフローチャート（その２）である。
【図１６】本発明の実施の形態に係るノッキング判定装置であるエンジンＥＣＵが実行するプログラムの制御構造を示すフローチャート（その３）である。
【符号の説明】
【０１３６】
１００  エンジン、１０２  エアクリーナ、１０４  インジェクタ、１０６  点火プラグ、１０８  ピストン、１１０  クランクシャフト、１１２  三元触媒、１１４  スロットルバルブ、１１６  吸気バルブ、１１８  排気バルブ、１２０  ポンプ、２００  エンジンＥＣＵ、２１０  強度検出部、２１２  波形検出部、２１４  波形検出部、２２０  ノック強度算出部、２２２  相関係数算出部、２３０  ノッキング判定部、２４０  強度値算出部、２４１  第１補正部、２４２  第２補正部、２４３  第３補正部、２４４  第４補正部、３００  ノックセンサ、３０２  水温センサ、３０４  タイミングロータ、３０６  クランクポジションセンサ、３０８  スロットル開度センサ、３１０  車速センサ、３１２  イグニッションスイッチ、３１４  エアフローメータ、３２０  補機バッテリ、４００  Ａ／Ｄ変換部、４１０  バンドパスフィルタ（１）、４２０  バンドパスフィルタ（２）、４３０  バンドパスフィルタ（３）、４５０  積算部。
【図１】
2008088917.tif 000003
【図２】
2008088917.tif 000004
【図３】
2008088917.tif 000005
【図４】
2008088917.tif 000006
【図５】
2008088917.tif 000007
【図６】
2008088917.tif 000008
【図７】
2008088917.tif 000009
【図８】
2008088917.tif 000010
【図９】
2008088917.tif 000011
【図１０】
2008088917.tif 000012
【図１１】
2008088917.tif 000013
【図１２】
2008088917.tif 000014
【図１３】
2008088917.tif 000015
【図１４】
2008088917.tif 000016
【図１５】
2008088917.tif 000017
【図１６】
2008088917.tif 000018