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