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