(57)【特許請求の範囲】
【請求項１】
内燃機関に装着されたノックセンサの出力信号に基づいてノッキングを判定するノッキング判定手段を備える内燃機関のノッキング検出装置において、
所定クランク角度間隔で前記ノックセンサ出力信号の周波数成分分析を行う周波数成分分析手段と、
前記周波数成分分析により得られる、複数の周波数成分の強度の時系列データを、クランク角度位置及び周波数で定義される２次元マップとして格納するデータ格納手段と、
前記周波数成分強度の時系列データを二値化する二値化手段とを備え、
前記ノッキング判定手段は、二値化された時系列データの２次元マップと、ノッキングが発生した状態に対応するマスタパターンデータの２次元マップとを比較することにより、ノッキングが発生したか否かを判定することを特徴とする内燃機関のノッキング検出装置。
【請求項２】
前記ノッキング判定手段は、
前記二値化された時系列データに基づいて、ノイズ成分の時系列データを算出するノイズ成分算出手段と、
前記二値化された時系列データを前記ノイズ成分の時系列データにより補正するノイズ補正手段とを備え、
補正後の時系列データに基づいて前記ノッキング判定を行うことを特徴とする請求項１に記載の内燃機関のノッキング検出装置。
【請求項３】
前記周波数成分強度の時系列データに基づいて、ノイズ成分の時系列データを算出するノイズ成分算出手段と、
前記周波数成分強度の時系列データを前記ノイズ成分の時系列データにより補正するノイズ補正手段とを備え、
前記二値化手段は、補正後の時系列データを二値化することを特徴とする請求項１に記載の内燃機関のノッキング検出装置。
【請求項４】
前記ノイズ成分算出手段は、ノッキングが発生していないときに得られる前記周波数成分強度の時系列データに対応する２次元マップの各マップ値のなまし演算を行うことにより、前記ノイズ成分の時系列データを算出することを特徴とする請求項３に記載の内燃機関のノッキング検出装置。
【請求項５】
前記ノッキング判定手段は、
前記二値化された時系列データ及び前記マスタパターンデータに対して、周波数に応じた重み付けを行う重み付け手段を備え、
重み付けされた時系列データ及びマスタパターンデータを用いて前記ノッキング判定を行うことを特徴とする請求項２から４の何れか１項に記載の内燃機関のノッキング検出装置。
【請求項６】
前記ノッキング判定手段は、前記マスタパターンデータと前記二値化された時系列データとの適合率を算出し、前記適合率が判定閾値を超えたときにノッキングが発生したと判定することを特徴とする請求項２から５の何れか１項に記載の内燃機関のノッキング検出装置。
【請求項７】
前記マスタパターンデータは前記機関の運転状態に応じて設定されることを特徴とする請求項２から６の何れか１項に記載の内燃機関のノッキング検出装置。
【請求項８】
複数の周波数からなる周波数グループ毎に、１つのサンプルタイミングにおける最大強度を選択することにより、周波数グループ時系列データを生成する周波数グループ時系列データ生成手段を備え、
前記二値化手段は前記周波数グループ時系列データを二値化することを特徴とする請求項１または２に記載の内燃機関のノッキング検出装置。
【請求項９】
前記周波数グループ時系列データに基づいて、前記周波数グループに対応するグループノイズ成分の時系列データを算出するグループノイズ成分算出手段と、
前記周波数グループ時系列データを前記グループノイズ成分の時系列データにより補正するグループノイズ補正手段とを備え、
前記二値化手段は、補正後の周波数グループ時系列データを二値化することを特徴とする請求項８に記載の内燃機関のノッキング検出装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、内燃機関のノッキング検出装置に関し、特にノックセンサの出力信号の周波数成分に基づいてノッキングの有無を判定するものに関する。
【背景技術】
【０００２】
特許文献１には、ノックセンサの出力信号に含まれる複数の共鳴周波数成分を求め、その複数の共鳴周波数成分に基づいてノッキング指標を算出し、ノッキング指標と所定値とを比較することによりノッキングの有無を判定するようにしたノッキング検出装置が示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許第２６８４６１１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１に示された手法では、高速フーリエ変換により例えば１６個の周波数に対応する周波数成分の強度が算出され、強度の大きいもの５個を選択して、各成分に所定の重み付けを行って合計することによりノッキング指標が算出される。しかしながら、この手法には以下に説明するような課題がある。
【０００５】
図３０は、ノックセンサの出力信号の周波数成分分析結果の一例を示す図であり、同図の破線がノッキングが発生したときのスペクトルを示し、実線が機関の吸気弁の着座に起因する振動（以下「着座ノイズ」という）が発生したときのスペクトルを示す。このように着座ノイズの影響がノックセンサの出力信号に表れる場合には、特定の周波数成分がノッキング発生時と同程度の強さで表れるため、ノッキングが発生していないにも拘わらずノッキングが発生したと誤判定する可能性があった。
【０００６】
本発明はこの点に着目してなされたものであり、ノックセンサの出力信号の周波数成分に基づいて、ノッキングの判定をより正確に行うことができる内燃機関のノッキング検出装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するため請求項１に記載の発明は、内燃機関（１）に装着されたノックセンサ（１１）の出力信号に基づいてノッキングを判定するノッキング判定手段を備える内燃機関のノッキング検出装置において、所定クランク角度間隔で前記ノックセンサ出力信号の周波数成分分析を行う周波数成分分析手段と、前記周波数成分分析により得られる、複数の周波数成分の強度の時系列データ（ＫＭＡＰ(j,i)）を、クランク角度位置及び周波数で定義される２次元マップとして格納するデータ格納手段と、前記周波数成分強度の時系列データ（ＫＭＡＰ(j,i)）を二値化する二値化手段とを備え、前記ノッキング判定手段は、二値化された時系列データ（ＮＫＭＡＰ(j,i)）の２次元マップと、ノッキングが発生した状態に対応するマスタパターンデータの２次元マップとを比較することにより、ノッキングが発生したか否かを判定することを特徴とする。
【０００９】
請求項２に記載の発明は、請求項１に記載の内燃機関のノッキング検出装置において、前記ノッキング判定手段は、前記二値化された時系列データ（ＮＫＭＡＰ(j,i)）に基づいて、ノイズ成分の時系列データ（ＮＮＭＡＰ(j,i)）を算出するノイズ成分算出手段と、前記二値化された時系列データ（ＮＫＭＡＰ(j,i)）を前記ノイズ成分の時系列データ（ＮＮＭＡＰ(j,i)）により補正するノイズ補正手段とを備え、補正後の時系列データ（ＪＫＭＡＰ(j,i)）に基づいて前記ノッキング判定を行うことを特徴とする。
【００１０】
請求項３に記載の発明は、請求項１に記載の内燃機関のノッキング検出装置において、前記周波数成分強度分布の時系列データ（ＫＭＡＰ(j,i)）に基づいて、ノイズ成分の時系列データ（ＮＬＭＡＰ(j,i)）を算出するノイズ成分算出手段と、前記周波数成分強度の時系列データ（ＫＭＡＰ(j,i)）を前記ノイズ成分の時系列データ（ＮＬＭＡＰ(j,i)）により補正するノイズ補正手段とを備え、前記二値化手段は、補正後の時系列データ（ＪＫＭＡＰＩ(j,i)）を二値化することを特徴とする。
請求項４に記載の発明は、請求項３に記載の内燃機関のノッキング検出装置において、前記ノイズ成分算出手段は、ノッキングが発生していないときに得られる前記周波数成分強度の時系列データ（ＫＭＡＰ(j,i)）に対応する２次元マップの各マップ値のなまし演算を行うことにより、前記ノイズ成分の時系列データ（ＮＬＭＡＰ(j,i)）を算出することを特徴とする。
【００１１】
請求項５に記載の発明は、請求項２から４の何れか１項に記載の内燃機関のノッキング検出装置において、前記ノッキング判定手段は、前記二値化された時系列データ（ＮＫＭＡＰ(j,i)，ＪＫＭＡＰ(j,i)）及び前記マスタパターンデータ（ＭＭＡＰ(j,i)）に対して、周波数に応じた重み付けを行う重み付け手段を備え、重み付けされた時系列データ及びマスタパターンデータを用いて前記ノッキング判定を行うことを特徴とする。
【００１２】
請求項６に記載の発明は、請求項２から５の何れか１項に記載の内燃機関のノッキング検出装置において、前記ノッキング判定手段は、前記マスタパターンデータ（ＭＭＡＰ(j,i)）と前記二値化された時系列データ（ＮＫＭＡＰ(j,i)，ＪＫＭＡＰ(j,i)）との適合率（ＰＦＩＴ）を算出し、前記適合率（ＰＦＩＴ）が判定閾値（ＳＬＶＬ）を超えたときにノッキングが発生したと判定することを特徴とする。
【００１３】
請求項７に記載の発明は、請求項２から６の何れか１項に記載の内燃機関のノッキング検出装置において、前記マスタパターンデータ（ＭＭＡＰ(j,i)）は前記機関の運転状態に応じて設定されることを特徴とする。
【００１４】
請求項８に記載の発明は、請求項１または２に記載の内燃機関のノッキング検出装置において、複数の周波数からなる周波数グループ（Ｇ１〜Ｇ７）毎に、１つのサンプルタイミングにおける最大強度を選択することにより、周波数グループ時系列データ（ＧＫＭＡＰ(j,i)）を生成する周波数グループ時系列データ生成手段を備え、前記二値化手段は前記周波数グループ時系列データ（ＧＫＭＡＰ(j,i)）を二値化することを特徴とする。
【００１５】
請求項９に記載の発明は、請求項８に記載の内燃機関のノッキング検出装置において、前記周波数グループ時系列データ（ＧＫＭＡＰ(j,i)）に基づいて、前記周波数グループに対応するグループノイズ成分の時系列データ（ＧＮＬＭＡＰ(j,i)）を算出するグループノイズ成分算出手段と、前記周波数グループ時系列データ（ＧＫＭＡＰ(j,i)）を前記グループノイズ成分の時系列データ（ＧＮＬＭＡＰ(j,i)）により補正するグループノイズ補正手段とを備え、前記二値化手段は、補正後の周波数グループ時系列データ（ＧＪＫＭＡＰＩ(j,i)）を二値化することを特徴とする。
【発明の効果】
【００１６】
請求項１に記載の発明によれば、所定クランク角度間隔でノックセンサ出力信号の周波数成分分析が行われ、この周波数成分分析により得られる、複数の周波数成分の強度分布の時系列データが、クランク角度位置及び周波数で定義される２次元マップとして格納される。そして、強度分布の時系列データが二値化され、該二値化された時系列データの２次元マップと、ノッキングが発生した状態に対応するマスタパターンデータの２次元マップとを比較することにより、ノッキングが発生したか否かが判定される。二値化された時系列データには、機関の回転に伴う強度分布の変化が表れるので、この時系列データの２次元マップと、ノッキングが発生した状態に対応するマスタパターンデータの２次元マップとを比較することにより、ノッキングの発生を正確に判定することができる。すなわち、二値化された時系列データの２次元マップがマスタパターンデータの２次元マップに近い変化パターンを示すとき、ノッキングが発生した可能性が高いので、得られた時系列データとマスタパターンの類似性（相関性）を示すパラメータを算出することにより、正確な判定を行うことができる。また二値化することにより、データ量が減少するとともに時系列データの変化パターンが単純化されるので、メモリ容量を低減するとともに演算速度を高めることができる。
【００１８】
請求項２に記載の発明によれば、二値化された時系列データに基づいて、ノイズ成分の時系列データが算出され、二値化された時系列データがノイズ成分の時系列データにより補正され、補正後の二値化時系列データに基づいてノッキング判定が行われる。したがって、上述した着座ノイズのように定常的に表れるノイズ成分を除去してより正確な判定を行うことが可能となる。
【００１９】
請求項３に記載の発明によれば、強度分布の時系列データに基づいて、ノイズ成分の時系列データが算出され、強度分布の時系列データがノイズ成分の時系列データにより補正される。そして補正後の時系列データが二値化され、その二値化された時系列データに基づいてノッキング判定が行われる。二値化した後にノイズ成分を低減する補正を行う場合に比べて、ノイズ成分の低減をより適切に行うことができる。
請求項４に記載の発明によれば、ノッキングが発生していないときに得られる周波数成分強度の時系列データに対応する２次元マップの各マップ値のなまし演算を行うことにより、ノイズ成分の時系列データが算出される。
【００２０】
請求項５に記載の発明によれば、二値化された時系列データ及びマスタパターンデータに対して、周波数に応じた重み付けが行われ、重み付けされた時系列データ及びマスタパターンデータを用いてノッキング判定が行われる。ノッキングが発生したときに大きくなる周波数成分は予め判明しているので、その周波数の近傍の周波数に対応するデータに大きな重みを付けることにより、判定精度を高めることができる。
【００２１】
請求項６に記載の発明によれば、マスタパターンデータと二値化された時系列データとの適合率が算出され、適合率が判定閾値を超えたときにノッキングが発生したと判定される。適合率を用いることにより、マスタパターンデータと二値化された時系列データとの相関を、比較的簡単な演算で的確に評価し、正確な判定を行うことができる。
【００２２】
請求項７に記載の発明によれば、マスタパターンデータが機関の運転状態に応じて設定されるので、機関運転状態の変化に拘わらず正確な判定を行うことができる。
【００２３】
請求項８に記載の発明によれば、複数の周波数からなる周波数グループ毎に、１つのサンプルタイミングにおける最大強度を選択することにより、周波数グループ時系列データが生成され、該生成された周波数グループ時系列データが二値化され、その二値化された時系列データに基づいてノッキング判定が行われる。周波数グループ時系列データを用いることにより、判定処理に適用されるデータ量を減らし、装置の演算負荷を軽減することができる。
【００２４】
請求項９に記載の発明によれば、周波数グループ時系列データに基づいて、周波数グループに対応するグループノイズ成分の時系列データが算出され、周波数グループ時系列データがグループノイズ成分の時系列データにより補正される。そして補正後の時系列データが二値化され、その二値化された時系列データに基づいてノッキング判定が行われる。したがって、周波数グループ時系列データに基づくノッキング判定を行う場合において、ノイズ成分の影響を軽減し、正確な判定を行うことができる。
【図面の簡単な説明】
【００２５】
【図１】本発明の一実施形態にかかる内燃機関及びその制御装置の構成を示す図である。
【図２】ノックセンサ出力のサンプリング及び周波数成分分析を説明するための図である。
【図３】周波数成分分析による得られる強度データをスペクトル時系列マップ及び二値化スペクトル時系列マップとして示した図である。
【図４】吸気弁の着座ノイズの二値化スペクトル時系列マップを示す図である。
【図５】ノイズ除去処理を説明するために二値化スペクトル時系列マップを示す図である。
【図６】マスタパターンマップを用いたノッキング判定を説明するために二値化スペクトル時系列マップを示す図である。
【図７】重み付けマップの一例を示す図である。
【図８】ノッキング判定処理のフローチャートである。
【図９】図８の処理で参照されるマップを示す図である。
【図１０】図８に示す処理で実行される二値化データマップ算出処理のフローチャートである。
【図１１】図１０に示す処理で実行される二値化処理のフローチャートである。
【図１２】図１１の処理で参照されるマップを示す図である。
【図１３】図８に示す処理で実行されるノイズ除去処理のフローチャートである。
【図１４】図８に示す処理で実行される適合率算出処理のフローチャートである。
【図１５】図１４の処理で参照されるマップを説明するための図である。
【図１６】図８に示す処理で実行されるノイズ学習処理のフローチャートである。
【図１７】図１６に示す処理で実行されるノイズマップ更新処理のフローチャートである。
【図１８】本発明の第２の実施形態にかかるノッキング判定処理のフローチャートである。
【図１９】周波数成分分析による得られる強度データをスペクトル時系列マップ及びノイズ成分強度をスペクトル時系列マップとして示した図である。
【図２０】ノイズ除去処理後のスペクトル時系列マップ及びそのスペクトル時系列マップを二値化したマップを示す図である。
【図２１】図１８の処理で実行されるデータマップ算出処理のフローチャートである。
【図２２】図１８の処理で実行されるノイズ除去処理のフローチャートである。
【図２３】図１８の処理で実行される二値化処理のフローチャートである。
【図２４】図１８の処理で実行されるノイズ学習処理のフローチャートである。
【図２５】本発明の第３の実施形態におけるグループ化を説明するための図である。
【図２６】グループ化されたスペクトル時系列マップに基づくノッキング判定処理を説明するための図である。
【図２７】本発明の第３の実施形態にかかるノッキング判定処理のフローチャートである。
【図２８】図２７の処理で実行されるグループ化処理のフローチャートである。
【図２９】図１４に示す処理の変形例を示すフローチャートである。
【図３０】従来技術の課題を説明するための図である。
【発明を実施するための形態】
【００２６】
以下本発明の実施の形態を図面を参照して説明する。
［第１の実施形態］
図１は、本発明の一実施形態にかかる内燃機関（以下「エンジン」という）及びその制御装置の全体構成図であり、例えば４気筒のエンジン１の吸気管２の途中にはスロットル弁３が配されている。スロットル弁３にはスロットル弁開度ＴＨを検出するスロットル弁開度センサ４が連結されており、センサ４の検出信号は、電子制御ユニット（以下「ＥＣＵ」という）５に供給される。
【００２７】
燃料噴射弁６はエンジン１とスロットル弁３との間かつ吸気管２の図示しない吸気弁の少し上流側に各気筒毎に設けられており、各噴射弁は図示しない燃料ポンプに接続されていると共にＥＣＵ５に電気的に接続されて当該ＥＣＵ５からの信号により燃料噴射弁６の開弁時間が制御される。エンジン１の各気筒には、点火プラグ７が設けられており、点火プラグ７はＥＣＵ５に接続されている。ＥＣＵ５は、点火プラグ７に点火信号を供給する。
【００２８】
スロットル弁３の下流側には吸気圧ＰＢＡを検出する吸気圧センサ８、及び吸気温ＴＡを検出する吸気温センサ９が設けられている。エンジン１の本体には、エンジン冷却水温ＴＷを検出する冷却水温センサ１０及び非共振型のノックセンサ１１が装着されている。センサ８〜１１の検出信号は、ＥＣＵ５に供給される。ノックセンサ１１としては、例えば５ｋＨｚから２５ｋＨｚまでの周波数帯域の振動を検出可能なものが使用される。
【００２９】
吸気管２のスロットル弁３の上流側には、吸入空気流量ＧＡを検出する吸入空気流量センサ１３が設けられており、その検出信号はＥＣＵ５に供給される。
ＥＣＵ５には、エンジン１のクランク軸（図示せず）の回転角度を検出するクランク角度位置センサ１１が接続されており、クランク軸の回転角度に応じた信号がＥＣＵ５に供給される。クランク角度位置センサ１１は、エンジン１の特定の気筒の所定クランク角度位置でパルス（以下「ＣＹＬパルス」という）を出力する気筒判別センサ、各気筒の吸入行程開始時の上死点（ＴＤＣ）に関し所定クランク角度前のクランク角度位置で（４気筒エンジンではクランク角１８０度毎に）ＴＤＣパルスを出力するＴＤＣセンサ及びＴＤＣパルスより短い一定クランク角周期（例えば６度周期）で１パルス（以下「ＣＲＫパルス」という）を発生するＣＲＫセンサから成り、ＣＹＬパルス、ＴＤＣパルス及びＣＲＫパルスがＥＣＵ５に供給される。これらのパルスは、燃料噴射時期、点火時期等の各種タイミング制御、エンジン回転数（エンジン回転速度）ＮＥの検出に使用される。
【００３０】
エンジン１は、吸気弁（図示せず）の弁リフト量及び開角（開弁期間）を連続的に変更する第１弁作動特性可変機構と、吸気弁を駆動するカムの、クランク軸回転角度を基準とした作動位相を連続的に変更する第２弁作動特性可変機構とを有する弁作動特性可変装置２０を備えている。ＥＣＵ５は、弁作動特性可変装置２０にリフト量制御信号及び作動位相制御信号を供給し、吸気弁の作動制御を行う。第１及び第２弁作動特性可変機構の構成は、それぞれ例えば特開２００８−２５４１８号公報及び特開２０００−２２７０１３号公報に示されている。
【００３１】
ＥＣＵ５は、各種センサからの入力信号波形を整形し、電圧レベルを所定レベルに修正し、アナログ信号値をデジタル信号値に変換する等の機能を有する入力回路、中央演算処理ユニット（以下「ＣＰＵ」という）、該ＣＰＵで実行される各種演算プログラム及び演算結果等を記憶する記憶回路（メモリ）、燃料噴射弁６及び点火プラグ７に駆動信号を供給する出力回路等から構成される。
【００３２】
次に本実施形態におけるノッキング判定手法の概要を説明する。図２（ａ）は、ノックセンサ１１の出力信号波形を示し、図２（ｂ）は、同図（ａ）の期間ＴＳの波形を拡大して示す図である。本実施形態では、サンプリング周期２０マクロ秒で検出される５０個のデータを対象として、高速フーリエ変換による周波数成分分析を行う。その周波数成分分析の結果が図２（ｃ）に示されている。図２（ｃ）の縦軸はエネルギ強度ＰＳであり、本実施形態では、５ｋＨｚから２５ｋＨｚまでの周波数帯域における１ｋＨｚ毎の周波数（５，６，７，…，２４，２５ｋＨｚ）に対応するエネルギ強度ＰＳが、クランク角度６度毎に算出される。
【００３３】
これにより、周波数成分の時系列データが図３（ａ）に示すように２次元マトリクス（以下「スペクトル時系列マップ」という）として算出される。スペクトル時系列マップは縦方向が周波数ｆ［ｋＨｚ］であり、横方向がクランク角度（燃焼行程が開始する上死点後のクランク角度）ＣＡ［ｄｅｇ］である。ここで、縦方向及び横方向のインデクスとしてそれぞれ「ｊ」（ｊ＝０〜２０）及び「ｉ」（ｉ＝０〜１４）を用い、スペクトル時系列マップの要素を強度パラメータＫＭＡＰ(j,i)と表示する。例えば強度パラメータＫＭＡＰ(0,0)は、左下端の「３４」、強度パラメータＫＭＡＰ(0,14)は右下端の「３１」、強度パラメータＫＭＡＰ(20,0)は左上端の「５６」、強度パラメータＫＭＡＰ(20,14)は右上端の「３０」に相当する。なお強度パラメータＫＭＡＰは相対強度を示す無次元量である。
【００３４】
図３（ａ）のスペクトル時系列マップを二値化すると図３（ｂ）の二値化スペクトル時系列マップが得られる。図３（ｂ）のマップの要素である二値化強度パラメータＮＫＭＡＰ(j,i)は、強度パラメータＫＭＡＰ(j,i)が「５０」以上であるとき「１」、「５０」未満であるとき「０」をとる。
【００３５】
図３（ｂ）に示す二値化スペクトル時系列マップは、図３０に破線で示すノッキングが発生したときに得られるマップである。一方図３０に実線で示す着座ノイズの二値化スペクトル時系列マップは、図４に示すようになり、図３（ｂ）に示すノッキング発生時のマップと明確に相違するため、着座ノイズをノッキング発生と誤判定することがなく、正確なノッキング判定を行うことができる。
【００３６】
本実施形態ではさらに、ノッキングが発生していないと判定されたときの二値化スペクトル時系列マップに基づいて、ノイズに対応する二値化スペクトル時系列マップ（以下単に「二値化ノイズマップ」という）を学習演算により生成し、二値化ノイズマップ上のノイズ学習値を、検出データから算出される二値化スペクトル時系列マップ上の対応する値から差し引くことにより、ノイズの影響を除去するようにしている。
【００３７】
図５（ａ）は、学習演算により得られた二値化ノイズマップの一例を示す図であり、クランク角度６度のタイミングで６〜２５ｋＨｚの帯域でノイズ成分が表れている。図５（ｂ）は、図３（ｂ）に示す二値化スペクトル時系列マップから図５（ａ）に示すノイズ成分を減算することによりノイズ除去処理を行った後の二値化スペクトル時系列マップを示す。このようにノイズ除去処理を行うことにより、ノイズの影響を除き、より正確な判定が可能となる。
【００３８】
また本実施形態では、検出データから得られる二値化スペクトル時系列マップを、図６（ａ）に示すマスタパターンマップと比較することにより、ノッキングが発生したか否かを判定するようにしている。マスタパターンマップは、ノッキングが発生したときに得られる典型的な二値化スペクトル時系列マップに相当するものである。
【００３９】
上記比較は具体的には以下のように行われる。二値化スペクトル時系列マップ上の二値化強度パラメータＮＫＭＡＰ(j,i)と、マスタパターンマップ上のマスタパラメータＭＭＡＰ(j,i)との積を積算することにより、強度積算値ＳＵＭＫを算出し、マスタパラメータＭＭＡＰ(j,i)そのものの積算値である基準積算値ＳＵＭＭを算出し、基準積算値ＳＵＭＭに対する強度積算値ＳＵＭＫの比率として適合率ＰＦＩＴ（＝ＳＵＭＫ／ＳＵＭＭ）を算出する。そして、適合率ＰＦＩＴが判定閾値ＳＬＶＬを超えるとノッキングが発生したと判定する。
【００４０】
図６（ｂ）は、図５（ｂ）に示す二値化強度パラメータＮＫＭＡＰ(j,i)と、図６（ａ）に示すマスタパターンマップ上のマスタパラメータＭＭＡＰ(j,i)との積（ＮＫＭＡＰ(j,i)×ＭＭＡＰ(j,i)）のマップを示す。この例では、図６（ｂ）の積マップは、図５（ｂ）に示すもとのマップと全く同一となり、適合率ＰＦＩＴは、「０．８６３」となる。
【００４１】
なお、後述する実際のノッキング判定処理においては、上記強度積算値ＳＵＭＫ及び基準積算値ＳＵＭＭを算出する際にエンジン運転状態に応じた重み付けを行うようにしている。この重み付けを行うための重み付けパラメータＷＭＡＰ(j,i)が設定されている重み付けマップの一例を図７に示す。図７に示す重み付けマップは、周波数６ｋＨｚの成分についてクランク角１２度から７２度までのパラメータ値、周波数１０ｋＨｚの成分についてクランク角３６度から６６度までのパラメータ値、並びに周波数１１ｋＨｚ、１３ｋＨｚ、１５ｋＨｚ、及び２０ｋＨｚの成分についてクランク角１２度から３０度までのパラメータ値に対して重みが付けられるように設定されている。
【００４２】
図７に示すような重み付けマップによる重み付けは、エンジン運転状態に依存して二値化スペクトル時系列マップの周波数に対する特性が変化することを補償するために行われるものである。エンジン運転状態に応じて重み付けを行うことにより、エンジン運転状態の変化に拘わらず正確な判定を行うことが可能となる。
【００４３】
本実施形態におけるノックセンサ出力ＶＳのサンプリング周期は２０マイクロ秒とし、５０個のサンプリング値を用いて周波数成分分析を行う。これにより、２５ｋＨｚまでの周波数成分を１ｋＨｚ間隔で算出することが可能となる。なお、クランク軸が６度回転するのに要する時間ＴＤ６は、エンジン回転数ＮＥが１０００ｒｐｍのとき１ミリ秒であり５０個のサンプリング値が得られる。また例えばエンジン回転数ＮＥが２０００ｒｐｍのときは時間ＴＤ６が５００マイクロ秒となり、サンプリングデータの数は２５となるので、周波数成分分析は、直前に検出された、クランク角１２度分のサンプリング値を用いてクランク角６度毎に行われる。
【００４４】
周波数成分分析（高速フーリエ変換）は、図示しない処理において実行され、クランク角度６度毎に、演算の結果得られる周波数毎の強度値ＳＴＦＴ(k)（ｋ＝０〜（ＫＮ−１））がＥＣＵ５の記憶回路（ＲＡＭ）に格納される。ＫＮは、上死点後６度から９０度までのクランク角度範囲で得られる強度値の数であり、本実施形態では３１５（図３〜６に示すマップ上のデータ数）である。
【００４５】
図８は、上述した手法によりノッキング判定を行う処理のフローチャートであり、この処理はＥＣＵ５のＣＰＵでＴＤＣパルスの発生に同期して実行される。
【００４６】
ステップＳ１１では、図１０に示す二値化データマップ算出処理を実行し、上述した二値化スペクトル時系列マップの算出を行う。ステップＳ１２では、図１３に示すノイズ除去処理を実行し、図５（ａ）に例示するような二値化ノイズマップを用いてノイズ成分を除去する処理を行う。
【００４７】
ステップＳ１３では、図１４に示す適合率算出処理を実行し、ノイズ成分が除去された二値化スペクトル時系列マップと、マスタパターンマップとを用いて適合率ＰＦＩＴを算出する。
【００４８】
ステップＳ１４では、エンジン回転数ＮＥ及び吸気圧ＰＢＡに応じて例えば図９に示すように設定されたＳＬＶＬマップを検索し、判定閾値ＳＬＶＬを算出する。ＳＬＶＬマップに設定されている格子点以外のエンジン回転数ＮＥ及び吸気圧ＰＢＡについては、補間演算により判定閾値ＳＬＶＬを算出する。
【００４９】
ステップＳ１５では、ステップＳ１３で算出される適合率ＰＦＩＴが判定閾値ＳＬＶＬより大きいか否かを判別し、その答が肯定（ＹＥＳ）であるときは、ノッキングが発生したと判定し、ノッキングフラグＦＫＮＯＣＫを「１」に設定する（ステップＳ１６）。
【００５０】
ステップＳ１５でＰＦＩＴ≦ＳＬＶＬであるときは、ノッキングは発生していないと判定し、ノッキングフラグＦＫＮＯＣＫを「０」に設定する（ステップＳ１７）。次いで図１６に示すノイズ学習処理を実行し、二値化ノイズマップ（図５（ａ）参照）の更新を行う。
【００５１】
図１０は、図８のステップＳ１１で実行される二値化データマップ算出処理のフローチャートである。
ステップＳ２１では、クランク角インデクスｉ，周波数インデクスｊ，及びメモリアドレスインデクスｋをいずれも「０」に初期化する。ステップＳ２２では、周波数インデクスｊが周波数データ数ＪＮ（本実施形態では２１）から「１」を減算した値より大きいか否かを判別する。最初はこの答は否定（ＮＯ）であるので、ステップＳ２３に進み、クランク角インデクスｉがクランク角データ数ＩＮ（本実施形態では１５）から「１」を減算した値より大きいか否かを判別する。
【００５２】
最初はステップＳ２３の答も否定（ＮＯ）であるので、メモリアドレスインデクスｋを下記式（１）により算出する（ステップＳ２４）。したがって、メモリアドレスインデクスｋは、クランク角インデクスｉ及び周波数インデクスｊの増加に伴って、０から（ＪＮ×ＩＮ−１）まで変化する。
ｋ＝ｉ＋ｊ×ＩＮ                                （１）
【００５３】
ステップＳ２５では、強度パラメータＫＭＡＰ(j,i)を、メモリに格納されている強度値ＳＴＦＴ[k]に設定し、ステップＳ２６では、図１１に示す二値化処理を実行する。次いでクランク角インデクスｉを「１」だけインクリメントする（ステップＳ２７）。
【００５４】
図１１のステップＳ３１では、エンジン回転数ＮＥ及び吸気圧ＰＢＡに応じて図１２に示すＢＬＶＬマップを検索し、二値化閾値ＢＬＶＬを算出する。ＢＬＶＬマップは、エンジン回転数ＮＥが増加するほど二値化閾値ＢＬＶＬが増加し、かつ吸気圧ＰＢＡが増加するほど二値化閾値ＢＬＶＬが増加するように設定されている。ラインＬ１で示される設定値は、第１所定吸気圧ＰＢＡ１（例えば５３ｋＰａ（４００ｍｍＨｇ））から第２所定吸気圧ＰＢＡ２（例えば８０ｋＰａ（６００ｍｍＨｇ））の範囲で適用される。ラインＬ２及びＬ３は、それぞれ第３所定吸気圧ＰＢＡ３（例えば９３ｋＰａ（７００ｍｍＨｇ））及び第４所定吸気圧ＰＢＡ４（例えば１０７ｋＰａ（８００ｍｍＨｇ））に対応する。
【００５５】
ステップＳ３２では、強度パラメータＫＭＡＰ(j,i)が二値化閾値ＢＬＶＬより大きいか否かを判別し、その答が肯定（ＹＥＳ）であるときは、二値化強度パラメータＮＫＭＡＰ(j,i)を「１」に設定する（ステップＳ３３）。一方、ステップＳ３２でＫＭＡＰ(j,i)≦ＢＬＶＬであるときは、二値化強度パラメータＮＫＭＡＰ(j,i)を「０」に設定する（ステップＳ３４）。
【００５６】
図１０に戻り、ステップＳ２３の答が否定（ＮＯ）である間はステップＳ２４〜Ｓ２７を繰り返し実行し、クランク角インデクスｉが（ＩＮ−１）を超えると、ステップＳ２８に進み、クランク角インデクスｉを「０」に戻すとともに、周波数インデクスｊを「１」だけインクリメントし、ステップＳ２２に戻る。
【００５７】
ステップＳ２２の答が否定（ＮＯ）である間は、ステップＳ２３〜Ｓ２８を繰り返し実行し、周波数インデクスｊが（ＪＮ−１）を超えると、本処理を終了する。
【００５８】
図１０の処理により、メモリに格納されている、周波数成分分析の結果として得られた強度値ＳＴＦＴ[k]が、図３（ａ）に示すスペクトル時系列マップの形式に変換されるとともに、強度パラメータＫＭＡＰ(j,i)の二値化が行われ、二値化強度パラメータＮＫＭＡＰ(j,i)が算出される。すなわち、図３（ｂ）に示す二値化スペクトル時系列マップが生成される。
【００５９】
図１３は、図８のステップＳ１２で実行されるノイズ除去処理のフローチャートである。
ステップＳ４１では、クランク角インデクスｉ及び周波数インデクスｊをともに「０」に初期化する。ステップＳ４２では、周波数インデクスｊが周波数データ数ＪＮから「１」を減算した値より大きいか否かを判別する。最初はこの答は否定（ＮＯ）であるので、ステップＳ４３に進み、クランク角インデクスｉがクランク角データ数ＩＮから「１」を減算した値より大きいか否かを判別する。
【００６０】
最初はステップＳ４３の答も否定（ＮＯ）であるので、下記式（２）により二値化強度パラメータＮＫＭＡＰ(j,i)を補正し、補正二値化強度パラメータＪＫＭＡＰ(j,i)を算出する。式（２）のＮＮＭＡＰ(j,i)は、学習処理により更新される二値化ノイズマップ上の二値化ノイズパラメータである。
ＪＫＭＡＰ(j,i)＝ＮＫＭＡＰ(j,i)−ＮＮＭＡＰ(j,i)          （２）
【００６１】
ステップＳ４５では、補正二値化強度パラメータＪＫＭＡＰ(j,i)が負の値であるか否かを判別し、その答が否定（ＮＯ）であるときは直ちにステップＳ４７に進む。ＪＫＭＡＰ(j,i)＜０であるときは、ＪＫＭＡＰ(j,i)を「０」に設定し（ステップＳ４６）、ステップＳ４７に進む。
【００６２】
ステップＳ４７ではクランク角インデクスｉを「１」だけインクリメントし、ステップＳ４３に戻る。ステップＳ４３の答が否定（ＮＯ）である間はステップＳ４４〜Ｓ４７を繰り返し実行し、クランク角インデクスｉが（ＩＮ−１）を超えると、ステップＳ４８に進み、クランク角インデクスｉを「０」に戻すとともに、周波数インデクスｊを「１」だけインクリメントし、ステップＳ４２に戻る。ステップＳ４２の答が否定（ＮＯ）である間は、ステップＳ４３〜Ｓ４８を繰り返し実行し、周波数インデクスｊが（ＪＮ−１）を超えると、本処理を終了する。
【００６３】
図１３の処理により、ノイズが除去された補正二値化強度パラメータＪＫＭＡＰ(j,i)が得られる（図５（ｂ）参照）。
【００６４】
図１４は、図８のステップＳ１３で実行される適合率算出処理のフローチャートである。
ステップＳ５１では、エンジン回転数ＮＥ及び吸気圧ＰＢＡに応じてマスタパターンマップを選択し、ステップＳ５２では、エンジン回転数ＮＥ及び吸気圧ＰＢＡに応じて重み付けマップを選択する。重み付けマップは、エンジン運転状態に依存して二値化スペクトル時系列マップの周波数に対する特性が変化することを補償するために設けられている。エンジン回転数ＮＥまたは吸気圧ＰＢＡ（エンジン負荷）が変化すると、燃焼室内の温度が変化し、二値化スペクトル時系列マップが変化する。したがって、エンジン回転数ＮＥ及び吸気圧ＰＢＡに応じてマスタパターンマップ及び重み付けマップを選択することにより、エンジン運転状態の変化に拘わらず正確な判定を行うことが可能となる。
【００６５】
本実施形態では、図１５に示すようにエンジン回転数ＮＥ及び吸気圧ＰＢＡにより定義される９個のエンジン運転領域に対応して、９個のマスタパターンマップ及び９個の重み付けマップが予め設定されており、ステップＳ５１では９個のマスタパターンマップうちの１つが選択され、ステップＳ５２では、９個の重み付けマップのうちの１つが選択される。図１５において低回転領域は例えばエンジン回転数ＮＥが２０００ｒｐｍ以下の領域とされ、中回転領域は２０００ｒｐｍから４０００ｒｐｍまでの領域とされ、高回転領域は４０００ｒｐｍを超える領域とされる。また低負荷領域は例えば吸気圧ＰＢＡが６７ｋＰａ（５００ｍｍＨｇ）以下の領域とされ、中負荷領域は６７ｋＰａから９３ｋＰａ（７００ｍｍＨｇ）までの領域とされ、高負荷領域は９３ｋＰａを超える領域とされる。
【００６６】
ステップＳ５３では、クランク角インデクスｉ及び周波数インデクスｊをともに「０」に初期化するとともに、強度積算値ＳＵＭＫ及び基準積算値ＳＵＭＭを「０」に初期化する。強度積算値ＳＵＭＫ及び基準積算値ＳＵＭＭは、後述するステップＳ５７で更新され、ステップＳ６０で適合率ＰＦＩＴの算出に適用される。
【００６７】
ステップＳ５４では、周波数インデクスｊが周波数データ数ＪＮから「１」を減算した値より大きいか否かを判別する。最初はこの答は否定（ＮＯ）であるので、ステップＳ５５に進み、クランク角インデクスｉがクランク角データ数ＩＮから「１」を減算した値より大きいか否かを判別する。
【００６８】
最初はステップＳ５５の答も否定（ＮＯ）であるので、ステップＳ５６に進み、下記式（３）及び（４）により、重み付けマスタパラメータＭＭＷ及び重み付け積パラメータＫＭＷを算出する。下記式のＷＭＡＰ(j,i)は、重み付けマップに設定されている重み付けパラメータである。重み付け積パラメータＫＭＷは、マスタパラメータＭＭＡＰ(j,i)と補正二値化強度パラメータＪＫＭＡＰ(j,i)との積を、重み付けパラメータＷＭＡＰ(j,i)によって重み付けしたものである。
ＭＭＷ＝ＭＭＡＰ(j,i)×ＷＭＡＰ(j,i)                        （３）
ＫＭＷ＝ＭＭＡＰ(j,i)×ＪＫＭＡＰ(j,i)×ＷＭＡＰ(j,i)       （４）
【００６９】
ステップＳ５７では、下記式（５）及び（６）により、重み付けマスタパラメータＭＭＷ及び重み付け積パラメータＫＭＷを積算し、基準積算値ＳＵＭＭ及び強度積算値ＳＵＭＫを算出する。
ＳＵＭＭ＝ＳＵＭＭ＋ＭＭＷ                                  （５）
ＳＵＭＫ＝ＳＵＭＫ＋ＫＭＷ                                  （６）
【００７０】
ステップＳ５８では、クランク角インデクスｉを「１」だけインクリメントし、ステップＳ５５に戻る。ステップＳ５５の答が否定（ＮＯ）である間はステップＳ５６〜Ｓ５８を繰り返し実行し、クランク角インデクスｉが（ＩＮ−１）を超えると、ステップＳ５９に進み、クランク角インデクスｉを「０」に戻すとともに、周波数インデクスｊを「１」だけインクリメントし、ステップＳ５４に戻る。ステップＳ５４の答が否定（ＮＯ）である間は、ステップＳ５５〜Ｓ５９を繰り返し実行し、周波数インデクスｊが（ＪＮ−１）を超えると、ステップＳ６０に進み、下記式（７）により適合率ＰＦＩＴを算出する。
ＰＦＩＴ＝ＳＵＭＫ／ＳＵＭＭ                                （７）
【００７１】
図１６は、図８のステップＳ１８で実行されるノイズ学習処理のフローチャートである。
ステップＳ７１では、クランク角インデクスｉ、周波数インデクスｊ、加算学習パラメータＬＫ、及び減算学習パラメータＬＭをいずれも「０」に初期化する。ステップＳ７２では、周波数インデクスｊが周波数データ数ＪＮから「１」を減算した値より大きいか否かを判別する。最初はこの答は否定（ＮＯ）であるので、ステップＳ７３に進み、クランク角インデクスｉがクランク角データ数ＩＮから「１」を減算した値より大きいか否かを判別する。
【００７２】
最初はステップＳ７３の答も否定（ＮＯ）であるので、ステップＳ７４に進み、二値化強度パラメータＮＫＭＡＰ(j,i)が二値化ノイズパラメータＮＮＭＡＰ(j,i)と等しいか否かを判別する。この答が肯定（ＹＥＳ）であるときは、直ちにステップＳ８０に進む。
【００７３】
ステップＳ７４の答が否定（ＮＯ）であって、二値化強度パラメータＮＫＭＡＰ(j,i)が二値化ノイズパラメータＮＮＭＡＰ(j,i)と異なるときは、二値化強度パラメータＮＫＭＡＰ(j,i)が二値化ノイズパラメータＮＮＭＡＰ(j,i)より大きいか否かを判別する（ステップＳ７５）。この答が肯定（ＹＥＳ）であるときは、加算学習パラメータＬＫを「１」に設定し、減算学習パラメータＬＭを「０」に設定する（ステップＳ７６）。一方、ＮＫＭＡＰ(j,i)＜ＮＮＭＡＰ(j,i)であるときは、加算学習パラメータＬＫを「０」に設定し、減算学習パラメータＬＭを「１」に設定する（ステップＳ７７）。
【００７４】
ステップＳ７８では、下記式（８）及び（９）により、加算学習パラメータＬＫ及び減算学習パラメータＬＭを修正する。式（８）、（９）のＤＳＮＯＩＳＥは、例えば０．１に設定されるノイズ学習係数である。
ＬＫ＝ＤＳＮＯＩＳＥ×ＬＫ                                  （８）
ＬＭ＝ＤＳＮＯＩＳＥ×ＬＭ                                  （９）
【００７５】
ステップＳ７９では、下記式（１０）に加算学習パラメータＬＫ及び減算学習パラメータＬＭを適用し、ノイズパラメータＮＭＡＰ(j,i)を更新する。次に説明する図１７の処理で、ノイズパラメータＮＭＡＰ(j,i)を二値化することにより、二値化ノイズパラメータＮＮＭＡＰ(j,i)が算出される。
ＮＭＡＰ(j,i)＝ＮＭＡＰ(j,i)＋ＬＫ−ＬＭ                （１０）
【００７６】
ステップＳ８０ではクランク角インデクスｉを「１」だけインクリメントし、ステップＳ７３に戻る。ステップＳ７３の答が否定（ＮＯ）である間はステップＳ７４〜Ｓ８０を繰り返し実行し、クランク角インデクスｉが（ＩＮ−１）を超えると、ステップＳ８１に進み、クランク角インデクスｉを「０」に戻すとともに、周波数インデクスｊを「１」だけインクリメントし、ステップＳ７２に戻る。ステップＳ７２の答が否定（ＮＯ）である間は、ステップＳ７３〜Ｓ８１を繰り返し実行し、周波数インデクスｊが（ＪＮ−１）を超えると、ステップＳ８２に進み、図１７に示すノイズマップ更新処理を実行する。
【００７７】
図１７のステップＳ９１では、クランク角インデクスｉ及び周波数インデクスｊをともに「０」に初期化する。ステップＳ９２では、周波数インデクスｊが周波数データ数ＪＮから「１」を減算した値より大きいか否かを判別する。最初はこの答は否定（ＮＯ）であるので、ステップＳ９３に進み、クランク角インデクスｉがクランク角データ数ＩＮから「１」を減算した値より大きいか否かを判別する。
【００７８】
最初はステップＳ９３の答も否定（ＮＯ）であるので、ステップＳ９４に進み、ノイズパラメータＮＭＡＰ(j,i)がノイズ二値化閾値ＮＬＶＬ（例えば０．８）より大きいか否かを判別する。この答が肯定（ＹＥＳ）であるときは、二値化ノイズパラメータＮＮＭＡＰ(j,i)を「１」に設定する（ステップＳ９５）。一方、ＮＭＡＰ(j,i)≦ＮＬＶＬであるときは、二値化ノイズパラメータＮＮＭＡＰ(j,i)を「０」に設定する（ステップＳ９６）。
【００７９】
ステップＳ９７ではクランク角インデクスｉを「１」だけインクリメントし、ステップＳ９３に戻る。ステップＳ９３の答が否定（ＮＯ）である間はステップＳ９４〜Ｓ９７を繰り返し実行し、クランク角インデクスｉが（ＩＮ−１）を超えると、ステップＳ９８に進み、クランク角インデクスｉを「０」に戻すとともに、周波数インデクスｊを「１」だけインクリメントし、ステップＳ９２に戻る。ステップＳ９２の答が否定（ＮＯ）である間は、ステップＳ９３〜Ｓ９８を繰り返し実行し、周波数インデクスｊが（ＪＮ−１）を超えると、本処理を終了する。
【００８０】
図１６のステップＳ７５でＮＫＭＡＰ(j,i)＞ＮＮＭＡＰ(j,i)であるときは、ステップＳ７８でＬＫ＝０．１，ＬＭ＝０となり、式（１０）により、ノイズパラメータＮＭＡＰ(j,i)が「０．１」だけインクリメントされる。一方、ステップＳ７５でＮＫＭＡＰ(j,i)＜ＮＮＭＡＰ(j,i)であるときは、ステップＳ７８でＬＫ＝０，ＬＭ＝０．１となり、式（１０）により、ノイズパラメータＮＭＡＰ(j,i)が「０．１」だけデクリメントされる。そして、図１７の処理でノイズパラメータＮＭＡＰ(j,i)がノイズ二値化閾値ＮＬＶＬより大きいとき、二値化ノイズパラメータＮＮＭＡＰ(j,i)が「１」に設定される一方、ノイズパラメータＮＭＡＰ(j,i)がノイズ二値化閾値ＮＬＶＬ以下であるときは、二値化ノイズパラメータＮＮＭＡＰ(j,i)が「０」に設定される。
【００８１】
図１６及び図１７の処理により、ノッキングが発生していないと判定されたときの二値化強度パラメータＮＫＭＡＰ(j,i)に応じて二値化ノイズマップが更新され、例えば吸気弁の着座ノイズのように定常的に発生するノイズが二値化ノイズマップに反映される。その結果、ノイズの影響を除いて高精度の判定を行うことが可能となる。
【００８２】
なお、ノイズ除去処理（図８，ステップＳ１２）を行わずに、二値化強度パラメータＮＫＭＡＰをそのまま用いて適合率ＰＦＩＴの算出を行うようにしてよい。ノイズ除去処理を行わない場合には、ノイズの影響を受ける可能性が高くなるが、図３０を参照して説明したようにノイズと区別してノッキングの判定を行うことができるからである。
【００８３】
以上詳述したように本実施形態では、クランク角６度間隔でノックセンサ１１の出力信号の高速フーリエ変換演算（周波数成分分析）が行われ、その結果得られる、５ｋＨｚ〜２５ｋＨｚの周波数成分の強度の時系列データであるスペクトル時系列マップが生成される。すなわち、スペクトル時系列マップの要素が二次元配列データである強度パラメータＫＭＡＰ(j,i)としてメモリに格納される。そして、強度パラメータＫＭＡＰ(j,i)を二値化することにより、二値化強度パラメータＮＫＭＡＰ(j,i)が算出され、該二値化強度パラメータＮＫＭＡＰ(j,i)に基づいてノッキングが発生したか否かが判定される。二値化強度パラメータＮＫＭＡＰ(j,i)には、エンジンの回転に伴う周波数成分分布の変化が反映されるので、二値化強度パラメータＮＫＭＡＰ(j,i)と、ノッキング発生時に特有の変化パターンに対応するマスタパターンマップ上のマスタパラメータＭＭＡＰ(j,i)とを比較することにより、ノッキングの発生を正確に判定することができる。また周波数成分分析の結果得られる強度パラメータＫＭＡＰ(j,i)を二値化することにより、データ量が減少するとともに時系列データの変化パターンが単純化されるので、メモリ容量を低減するとともに演算速度を高めることができる。
【００８４】
また二値化強度パラメータＮＫＭＡＰ(j,i)（ＪＫＭＡＰ(j,i)）が、マスタパラメータＭＭＡＰ(j,i)に近い変化パターンを示すときに、ノッキングが発生している可能性が高いので、二値化強度パラメータＮＫＭＡＰ(j,i)（ＪＫＭＡＰ(j,i)）とマスタパラメータＭＭＡＰ(j,i)との類似性（相関性）を示すパラメータを算出することにより、正確な判定を行うことができる。
【００８５】
本実施形態ではこの類似性（相関性）を示すパラメータとして適合率ＰＦＩＴを用い、適合率ＰＦＩＴが判定閾値ＳＬＶＬを超えたときにノッキングが発生したと判定される。適合率ＰＦＩＴを用いることにより、二値化強度パラメータＮＫＭＡＰ(j,i)（ＪＫＭＡＰ(j,i)）とマスタパラメータＭＭＡＰ(j,i)との類似性（相関性）を比較的簡単な演算で的確に評価し、正確な判定を行うことができる。
【００８６】
また二値化強度パラメータＮＫＭＡＰ(j,i)に基づいて、ノイズ成分の時系列データＮＮＭＡＰ(j,i)が算出され、二値化強度パラメータＮＫＭＡＰ(j,i)がノイズ成分の時系列データであるノイズパラメータＮＮＭＡＰ(j,i)により補正され、補正二値化強度パラメータＪＫＭＡＰ(j,i)に基づいてノッキング判定が行われる。したがって、上述した着座ノイズのように定常的に表れるノイズ成分を除去してより正確な判定を行うことが可能となる。
【００８７】
また二値化強度パラメータＮＫＭＡＰ(j,i)（ＪＮＫＭＡＰ(j,i)）及びマスタパラメータＭＭＡＰ(j,i)に対して、周波数に応じて設定された重み付けパラメータＷＭＡＰ(j,i)を乗算して、適合率ＰＦＩＴが算出される。ノッキングが発生したときに大きくなる周波数成分は予め判明しているので、その周波数の近傍の周波数に対応するパラメータに大きな重みを付けることにより、判定精度を高めることができる。
【００８８】
本実施形態では、ＥＣＵ５がノッキング判定手段、周波数成分分析手段、データ格納手段、二値化手段、ノイズ成分算出手段、ノイズ補正手段、及び重み付け手段を構成する。具体的には、図８のステップＳ１２〜Ｓ１８がノッキング判定手段に相当し、ステップＳ１１（図１０の処理）がデータ格納手段及び二値化手段に相当する。またステップＳ１８がノイズ成分算出手段に相当し、ステップＳ１２がノイズ補正手段に相当し、図１４のステップＳ５２及びＳ５６が重み付け手段に相当する。
【００８９】
［第２の実施形態］
本実施形態は、第１の実施形態におけるノッキング判定処理（図８）を、図１８に示す処理に変更したものである。以下に説明する点以外は、第１の実施形態と同一である。
【００９０】
図１８に示す処理では、先ず二値化する前の強度パラメータＫＭＡＰについて、ノイズ除去処理を実行して、補正強度パラメータＪＫＭＡＰＩを算出し（ステップＳ１２ａ）、補正強度パラメータＪＫＭＡＰＩを二値化して、補正二値化強度パラメータＪＫＭＡＰを算出する（ステップＳ１１ｂ）。
【００９１】
図１９（ａ）は、本実施形態におけるスペクトル時系列マップの一例を示し、図１９（ｂ）は、本実施形態におけるノイズマップの一例を示す図であり、二値化されていないノイズ学習値が設定されている。ノイズ除去処理は、図１９（ａ）のスペクトル時系列マップの各マップ値から図１９（ｂ）のノイズマップ値を減算することにより行われ、図２０（ａ）に示す補正スペクトル時系列マップが得られる。そして、図２０（ａ）の補正スペクトル時系列マップを二値化することにより、図２０（ｂ）に示す補正二値化強度パラメータマップが得られる。
【００９２】
図２１は、図１８のステップＳ１１ａで実行されるデータマップ算出処理のフローチャートである。この処理は、図１０に示す二値化データマップ算出処理のステップＳ２６を削除したものである。すなわち、強度値ＳＴＦＴ(k)をスペクトル時系列マップの形式に変換する処理のみ行われる。
【００９３】
図２２は、図１８のステップＳ１２ａで実行されるノイズ除去処理のフローチャートである。この処理は、図１３に示す処理のステップＳ４４〜Ｓ４６をそれぞれステップＳ４４ａ〜Ｓ４６ａに変更したものである。
【００９４】
ステップＳ４４ａでは、下記式（２ａ）により、補正強度パラメータＪＫＭＡＰＩを算出する。式（２ａ）のＮＬＭＡＰ(j,i)は、学習処理により更新されるノイズマップ（図１９（ｂ））上のノイズパラメータである。
ＪＫＭＡＰＩ(j,i)＝ＫＭＡＰ(j,i)−ＮＬＭＡＰ(j,i)          （２ａ）
【００９５】
ステップＳ４５ａでは、補正強度パラメータＪＫＭＡＰＩ(j,i)が負の値であるか否かを判別し、その答が否定（ＮＯ）であるときは直ちにステップＳ４７に進む。ＪＫＭＡＰＩ(j,i)＜０であるときは、ＪＫＭＡＰＩ(j,i)を「０」に設定し（ステップＳ４６ａ）、ステップＳ４７に進む。
【００９６】
図２２の処理により図２０（ａ）に示す補正スペクトル時系列マップが得られる。
【００９７】
図２３は、図１８のステップＳ１１ｂで実行される二値化処理のフローチャートである。この処理は図１１に示す二値化処理のステップＳ３２〜Ｓ３４をそれぞれステップＳ３２ａ〜３４ａに変更し、さらにすべてのマップ値について二値化を行うためのステップＳ４１〜Ｓ４３，Ｓ４７及びＳ４８（図２２に示すステップと同じ処理を行うステップ）を追加したものである。
【００９８】
ステップＳ３２ａでは、補正強度パラメータＪＫＭＡＰＩ(j,i)が二値化閾値ＢＬＶＬより大きいか否かを判別し、その答が肯定（ＹＥＳ）であるときは、補正二値化強度パラメータＪＫＭＡＰ(j,i)を「１」に設定する（ステップＳ３３ａ）。一方、ステップＳ３２ａでＪＫＭＡＰＩ(j,i)≦ＢＬＶＬであるときは、補正二値化強度パラメータＪＫＭＡＰ(j,i)を「０」に設定する（ステップＳ３４ａ）。
【００９９】
図２３の処理により、図２０（ａ）に示すマップから図２０（ｂ）に示す補正二値化強度パラメータマップが得られる。
【０１００】
図２４は、図１８のステップＳ１８ａで実行されるノイズ学習処理のフローチャートである。この処理は、図１６に示す処理のステップＳ７４〜Ｓ７８，及びＳ８２を削除し、ステップＳ７９をステップＳ７９ａに変更したものである。
【０１０１】
ステップＳ７９ａでは、ノイズパラメータＮＬＭＡＰ(j,i)の更新を行う。具体的には、ノッキングが検出されないときに得られた強度パラメータＫＭＡＰ(j,i)を下記式（３１）に適用し、ノイズパラメータＮＬＭＡＰ(j,i)を更新する。右辺のノイズパラメータＮＬＭＡＰ(j,i)は、更新前のマップ値であり、ＤＳＮＯＩＳＥａは例えば「０．５」に設定されるなまし係数である。
ＮＬＭＡＰ(j,i)＝ＮＬＭＡＰ(j,i)×ＤＳＮＯＳＥａ
＋ＫＭＡＰ(j,i)×（１−ＤＳＮＯＳＥａ）      （３１）
【０１０２】
なお、式（３１）のなまし係数ＤＳＮＯＩＳＥａは、以下に説明するようにエンジン運転状態に応じて０から１の範囲で変更するようにしてもよい。
１）エンジン回転数ＮＥが急激に上昇したとき（例えばエンジン回転数の今回値ＮＥ(m)と前回値ＮＥ(m-1)との差（ＮＥ(m)−ＮＥ(m-1)）が２００ｒｐｍ以上であるとき）は、なまし係数ＤＳＮＯＩＳＥａをより小さい値に変更する。これにより、強度パラメータの今回値ＫＭＡＰ(j,i)の重みを増加させ、ノイズパラメータＮＬＭＡＰ(j,i)の学習速度が高められる。上記「ｍ」は、図１８の処理の実行周期で離散化した離散化時刻である。
【０１０３】
２）吸気弁の開弁時期ＣＡＩが急激に変化したとき（例えば開弁時期の今回値ＣＡＩ(m)と前回値ＣＡＩ(m-1)との差の絶対値が５度以上であるとき）は、なまし係数ＤＳＮＯＩＳＥａをより小さい値に変更する。
【０１０４】
３）吸気弁のリフト量ＬＦＴが急激に変化したとき（例えばリフト量の今回値ＬＦＴ(m)と前回値ＬＦＴ(m-1)との差の絶対値が０．５ｍｍ以上であるとき）は、なまし係数ＤＳＮＯＩＳＥａをより小さい値に変更する。
【０１０５】
本実施形態によれば、ノイズマップのマップ値（ＮＬＭＡＰ）が、二値化前の強度パラメータＫＭＡＰを用いて更新されるので、第１の実施形態と比べて、より精度の高いノイズパラメータＮＬＭＡＰ(j,i)が得られる。
【０１０６】
本実施形態では、図１８のステップＳ１１ａがデータ格納手段に相当し、ステップＳ１２ａがノイズ補正手段に相当し、ステップＳ１８ａがノイズ成分算出手段に相当し、ステップＳ１１ｂが二値化手段に相当し、ステップＳ１３〜Ｓ１７がノッキング判定手段に相当する。
【０１０７】
［第３の実施形態］
本実施形態は、５ｋＨｚから２５ｋＨｚまでの２１個の周波数を、３個の周波数からなる７つの周波数グループＧ１〜Ｇ７に分割（グループ化）し、１つサンプルタイミングに対応する強度パラメータＫＭＡＰの代表値であるグループ強度パラメータＧＫＭＡＰを、周波数グループ内の最大値に設定するようにしたものである。このようにグループ化を最初に行うことにより、ノイズ除去処理、二値化処理、及び適合率算出処理の対象となるデータ数が１／３に減少し、演算負荷を大幅に低減することができる。なお、以下に説明する点以外は、第２の実施形態と同一である。
【０１０８】
図２５は、グループ化を説明するための図である。図２５（ａ）に示すように、周波数５，６，７ｋＨｚが周波数グループＧ１に対応し、周波数８，９，１０ｋＨｚが周波数グループＧ２に対応し、周波数１１，１２，１３ｋＨｚが周波数グループＧ３に対応し、周波数１４，１５，１６ｋＨｚが周波数グループＧ４に対応し、周波数１７，１８，１９ｋＨｚが周波数グループＧ５に対応し、周波数２０，２１，２２ｋＨｚが周波数グループＧ６に対応し、周波数２３，２４，２５ｋＨｚが周波数グループＧ７に対応する。各サンプルタイミング（クランク角度）におけるグループ内の最大値がハッチングを付して示されている。この最大値を抽出することにより、図２５（ｂ）に示すグループ化したスペクトル時系列マップが得られる。
【０１０９】
本実施形態では、図２５（ｂ）に示すスペクトル時系列マップを用いて、ノッキング判定が行われる。図２５（ｂ）に示すスペクトル時系列マップの設定値を、「グループ強度パラメータＧＫＭＡＰ(n,i)」という。「ｎ」は、周波数グループを示すグループインデクスであり、本実施形態では周波数グループＧ１からＧ７に対応して「０」から「６」の値をとる。
【０１１０】
図２６（ａ）は、図２５（ｂ）と同一のマップを示し、図２６（ｂ）は、第２の実施形態で示した学習処理により得られるノイズマップである。図２６（ｂ）に示すノイズマップの設定値を、「グループノイズパラメータＧＮＬＭＡＰ(n,i)」という。
【０１１１】
グループ強度パラメータＧＫＭＡＰ(n,i)からグループノイズパラメータＧＮＬＭＡＰ(n,i)を減算することにより、グループ補正強度パラメータＧＪＫＭＡＰＩ(n,i)が算出される。図２６（ｃ）は、グループ補正強度パラメータＧＪＫＭＡＰＩ(n,i)が設定されたスペクトル時系列マップを示す。
【０１１２】
さらにグループ補正強度パラメータＧＪＫＭＡＰＩ(n,j)を二値化することにより、二値化グループ補正強度パラメータＧＪＫＭＡＰ(n,j)が算出される。図２６（ｄ）は、二値化グループ補正強度パラメータＧＪＫＭＡＰ(n,i)が設定されたスペクトル時系列マップを示す。またマスタパターンマップは例えば図２６（ｅ）で与えられる。
【０１１３】
二値化グループ補正強度パラメータＧＪＫＭＡＰ及び図２６（ｅ）に示すマスタパターンマップに基づいて算出される適合率ＰＦＩＴに応じたノッキング判定は、上述した実施形態と同様にして行うことができる。
【０１１４】
図２７は、本実施形態におけるノッキング判定処理のフローチャートである。図１８に示す処理にグループ化処理を行うステップＳ１００を追加し、ステップＳ１２ａ，Ｓ１１ｂ，Ｓ１３〜Ｓ１７，Ｓ１８ａをそれぞれステップＳ１０１〜Ｓ１０８に変更したものである。
【０１１５】
ステップＳ１０１〜Ｓ１０３及びＳ１０８の処理が対応する図１８のステップの処理と異なる点は、処理対象となるマップの行数が２１行ではなく７行である点のみであるので、詳細な説明を省略する。
【０１１６】
図２８は、図２７のステップＳ１００で実行されるグループ化処理のフローチャートである。
ステップＳ１１１では、クランク角インデクスｉ，周波数インデクスｊ，及びグループインデクスｎをすべて「０」に初期化する。ステップＳ１１２では、周波数インデクスｊが周波数データ数ＪＮから「１」を減算した値より大きいか否かを判別する。最初はこの答は否定（ＮＯ）であるので、ステップＳ１１３に進み、クランク角インデクスｉがクランク角データ数ＩＮから「１」を減算した値より大きいか否かを判別する。
【０１１７】
最初はステップＳ１１３の答も否定（ＮＯ）であるので、ステップＳ１１４に進み、パラメータａ，ｂ，ｃをそれぞれ周波数方向に連続する強度パラメータＫＭＡＰ(j,i)，ＫＭＡＰ(j+1,i)，ＫＭＡＰ(j+2,i)に設定する。ステップＳ１１５では、グループ強度パラメータＧＫＭＡＰ(n,i)をパラメータａ，ｂ，ｃの最大値に設定する。
【０１１８】
ステップＳ１１６ではクランク角インデクスｉを「１」だけインクリメントし、ステップＳ１１３に戻る。ステップＳ１１３の答が否定（ＮＯ）である間はステップＳ１１４〜Ｓ１１６を繰り返し実行し、クランク角インデクスｉが（ＩＮ−１）を超えると、ステップＳ１１７に進み、クランク角インデクスｉを「０」に戻すとともに、周波数インデクスｊを「３」だけインクリメントし、ステップＳ１１２に戻る。ステップＳ１１２の答が否定（ＮＯ）である間は、ステップＳ１１３〜Ｓ１１７を繰り返し実行し、周波数インデクスｊが（ＪＮ−１）を超えると、本処理を終了する。
【０１１９】
図２８の処理により、グループ強度パラメータＧＫＭＡＰ(n,i)が設定されたスペクトル時系列マップ（図２５（ｂ））が得られる。
【０１２０】
本実施形態によれば、グループ強度パラメータＧＫＭＡＰを対象として、ノイズ除去処理、二値化処理、及び適合率算出処理が行われるので、処理対象となるデータ数が減少し、演算負荷を低減することができる。
【０１２１】
本実施形態では、図２８の処理が周波数グループ時系列データ生成手段に相当し、図２７のステップＳ１０８がグループノイズ成分算出手段に相当し、ステップＳ１０１がグループノイズ補正手段に相当する。
【０１２２】
なお本発明は上述した実施形態に限るものではなく、種々の変形が可能である。例えば、ノックセンサ出力のサンプリング周期や周波数成分分析を行うクランク角度間隔は上述したもの（２０マイクロ秒、６度）に限るものではなく、本発明の目的が達成される範囲内において変更可能である。また、二値化スペクトル時系列マップ（上述した実施形態では２１行×１５列のマトリクスで構成）も同様に変更可能である。
【０１２３】
また上述した第１の実施形態では、補正二値化強度パラメータＪＫＭＡＰ(j,i)及びマスタパラメータＭＭＡＰ(j,i)に重み付けパラメータＷＭＡＰ(j,i)を乗算して、適合率ＰＦＩＴを算出したが、重み付けパラメータＷＭＡＰ(j,i)を乗算せずに、すなわち重み付けを行わずに算出するようにしてもよい。
【０１２４】
また上述した実施形態では、判定閾値ＳＬＶＬ、二値化閾値ＢＬＶＬ、マスタパターンマップ、及び重み付けマップをエンジン回転数ＮＥ及び吸気圧ＰＢＡに応じて、算出または選択するようにしたが、予め設定された値または１つのマップに固定しておいてもよい。
【０１２５】
また適合率ＰＦＩＴは、図２９に示す処理により算出するようにしてもよい。図２９に示す処理は、図１４のステップＳ５３，Ｓ５６，Ｓ５７，Ｓ６０をステップＳ５３ａ，Ｓ５６ａ，Ｓ５７ａ，Ｓ５７ｂ，及び６０ａに変更したものである。
【０１２６】
ステップＳ５３ａでは、クランク角インデクスｉ及び周波数インデクスｊを初期化するとともに、強度積算値ＳＵＭＫａ及び基準積算値ＳＵＭＭａを「０」に初期化する。
【０１２７】
ステップＳ５６ａでは、補正二値化強度パラメータＪＫＭＡＰ(j,i)が対応するマスタパラメータＭＭＡＰ(j,i)と等しいか否かを判別し、その答が肯定（ＹＥＳ）であるときは、下記式（１１）により、強度積算値ＳＵＭＫａを更新する（ステップＳ５７ａ）。
ＳＵＭＫａ＝ＳＵＭＫａ＋ＷＭＡＰ(j,i)                      （１１）
【０１２８】
ステップＳ５６ａでＪＫＭＡＰ(j,i)が対応するマスタパラメータＭＭＡＰ(j,i)と等しくないときは、直ちにステップＳ５７ｂに進む。
ステップＳ５７ｂでは、下記式（１２）により、基準積算値ＳＵＭＭａを更新する。
ＳＵＭＭａ＝ＳＵＭＭａ＋ＷＭＡＰ(j,i)                      （１２）
【０１２９】
ステップＳ６０ａでは、下記式（１３）に強度積算値ＳＵＭＫａ及び基準積算値ＳＵＭＭａを適用し、適合率ＰＦＩＴを算出する。
ＰＦＩＴ＝ＳＵＭＫａ／ＳＵＭＭａ                            （１３）
【０１３０】
図２９の処理により算出される適合率ＰＦＩＴも、補正二値化強度パラメータＪＫＭＡＰ(j,i)とマスタパラメータＭＭＡＰ(j,i)の類似性（相関性）が高いほど、大きな値となり、類似性（相関性）を示すパラメータとして使用することができる。
【０１３１】
また上述した実施形態では、補正二値化強度パラメータＪＫＭＡＰ(j,i)とマスタパラメータＭＭＡＰ(j,i)との類似性（相関性）を示すパラメータとして、適合度ＰＦＩＴを用いたが、例えば下記式（２１）で算出される補正二値化強度パラメータＪＫＭＡＰ(j,i)とマスタパラメータＭＭＡＰ(j,i)の差の絶対値の合計である差分積算値ＳＵＭＤＩＦを用いることもできる。
【数１】
0004827936.tif 000002
【０１３２】
差分積算値ＳＵＭＤＩＦは、その値が小さいほど類似性（相関性）が高いことを示すので、差分積算値ＳＵＭＤＩＦが差分判定閾値ＳＤＬＶＬより小さいとき、ノッキングが発生したと判定する。
【０１３３】
また上述した第３の実施形態では、グループ強度パラメータＧＫＭＡＰを
グループノイズパラメータＧＮＬＭＡＰにより補正することによりグループ補正強度パラメータＧＪＫＭＡＰＩを算出し、グループ補正強度パラメータＧＪＫＭＡＰＩを二値化することにより、二値化グループ補正強度パラメータＧＪＫＭＡＰを算出するようにしたが、第１の実施形態と同様に、グループ強度パラメータＧＫＭＡＰを二値化して二値化グループ強度パラメータＧＮＫＭＡＰを算出し、二値化グループ強度パラメータＧＮＫＭＡＰを二値化グループノイズパラメータＮＮＭＡＰで補正することにより二値化グループ補正強度パラメータＧＪＫＭＡＰを算出するようにしてもよい。
【０１３４】
また上述した実施形態では、ノッキング判定を常時行うようにしているが、ノッキングの発生し難い気筒の有無を判定し、そのような気筒（以下「気筒ＣＹＬＸＫ」という）が有る場合には、気筒ＣＹＬＸＫの爆発行程におけるノッキング判定処理を行わないようにしてもよい。これによって、ノッキング判定処理の演算負荷を低減することができる。
【０１３５】
気筒ＣＹＬＸＫの選択は例えば以下のようにして行う。エンジン回転数ＮＥが比較的低い運転状態で全気筒についてノッキング判定を実行し、そのときに点火時期の遅角補正値ＩＧＫＮＯＣＫを気筒毎に算出する。そして遅角補正値ＩＧＫＮＯＣＫの最小値が所定閾値より小さい気筒を、気筒ＣＹＬＸＫとして選択する。そして、エンジン回転数ＮＥが所定回転数より高い高回転領域において、気筒ＣＹＬＸＫに対応するノッキング判定処理を停止する。点火時期の遅角補正値ＩＧＫＮＯＣＫは、ノッキングが検出されたとき、第１所定量だけ増加させ、ノッキングが検出されないときは点火時期毎に漸減することにより算出される（この算出手法は、例えば特開２００４−３５３４７３号公報に示されている）。
【０１３６】
また本発明は、クランク軸を鉛直方向とした船外機などのような船舶推進機用エンジンなどのノッキング検出にも適用が可能である。
【符号の説明】
【０１３７】
１  内燃機関
５  電子制御ユニット（ノッキング判定手段、周波数成分分析手段、データ格納手段、二値化手段、ノイズ成分算出手段、ノイズ補正手段、重み付け手段、周波数グループ時系列データ生成手段、グループノイズ成分算出手段、グループノイズ補正手段）
１１  ノックセンサ
【図１】
0004827936.tif 000003
【図２】
0004827936.tif 000004
【図３】
0004827936.tif 000005
【図４】
0004827936.tif 000006
【図５】
0004827936.tif 000007
【図６】
0004827936.tif 000008
【図７】
0004827936.tif 000009
【図８】
0004827936.tif 000010
【図９】
0004827936.tif 000011
【図１０】
0004827936.tif 000012
【図１１】
0004827936.tif 000013
【図１２】
0004827936.tif 000014
【図１３】
0004827936.tif 000015
【図１４】
0004827936.tif 000016
【図１５】
0004827936.tif 000017
【図１６】
0004827936.tif 000018
【図１７】
0004827936.tif 000019
【図１８】
0004827936.tif 000020
【図１９】
0004827936.tif 000021
【図２０】
0004827936.tif 000022
【図２１】
0004827936.tif 000023
【図２２】
0004827936.tif 000024
【図２３】
0004827936.tif 000025
【図２４】
0004827936.tif 000026
【図２５】
0004827936.tif 000027
【図２６】
0004827936.tif 000028
【図２７】
0004827936.tif 000029
【図２８】
0004827936.tif 000030
【図２９】
0004827936.tif 000031
【図３０】
0004827936.tif 000032