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