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