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