(57)【要約】    【課題】  複数のノックセンサを使用する場合における入力回路の構成をより簡略化したノッキング検出装置を提供する。    【解決手段】  第１及び第２ノックセンサ１１ａ，１１ｂが、それぞれ＃１〜＃３気筒からなる第１気筒群と、＃４〜＃６気筒からなる第２気筒群とに対応して設けられている。第１ノックセンサ１１ａの出力端子１１１，１１２は、ノックセンサ入力部の入力端子ＰＩ１，ＰＩ２に接続され、第２ノックセンサ１１ｂの出力端子１１３，１１４も、入力端子ＰＩ１，ＰＩ２に接続されている。２つのノックセンサ１１ａ，１１ｂの出力信号は、単一の入力回路に入力され、増幅される。増幅回路１２１の出力信号ＶＳに基づいてノッキング判定が行われる。【選択図】  図２
2010180836.tif 000002
【特許請求の範囲】
【請求項１】
内燃機関に装着された複数のノックセンサの出力信号に基づいてノッキングを判定するノッキング判定手段を備える内燃機関のノッキング検出装置において、  前記複数のノックセンサの出力信号が入力される単一の入力回路を備え、
前記ノッキング判定手段は、前記入力回路の出力信号を用いてノッキングの判定を行い、
前記複数のノックセンサのそれぞれが有する一対の出力端子は、前記入力回路の一対の入力端子に接続されていることを特徴とする内燃機関のノッキング検出装置。
【請求項２】
前記複数気筒は、第１気筒群及び第２気筒群からなり、前記複数のノックセンサは、前記第１気筒群及び第２気筒群に対応して設けられていることを特徴とする請求項１に記載の内燃機関のノッキング検出装置。
【請求項３】
前記ノッキング判定手段は、
所定クランク角度間隔で前記入力回路の出力信号の周波数成分分析を行う周波数成分分析手段と、
前記周波数成分分析により得られる、複数の周波数成分の強度を時系列データとして格納するデータ格納手段と、
前記周波数成分強度の時系列データを二値化する二値化手段とを備え、
二値化された時系列データに基づいてノッキングが発生したか否かを判定することを特徴とする請求項１または２に記載の内燃機関のノッキング検出装置。
【請求項４】
前記周波数成分強度の時系列データに基づいて、ノイズ成分の時系列データを算出するノイズ成分算出手段と、
前記周波数成分強度の時系列データを前記ノイズ成分の時系列データにより補正するノイズ補正手段とを備え、
前記二値化手段は、補正後の時系列データを二値化することを特徴とする請求項３に記載の内燃機関のノッキング検出装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、内燃機関のノッキング検出装置に関し、特に複数のノックセンサを備えるものに関する。
【背景技術】
【０００２】
特許文献１には複数のノックセンサを用いたノッキング検出装置が示されている。この装置では、複数のノックセンサのそれぞれに対応してローパスフィルタ、ＡＤ変換回路などを含む入力回路が並列に設けられている。
【０００３】
また特許文献２には、２つのノックセンサの出力信号を処理する信号処理回路が示されている。この回路では、２つのノックセンサの出力信号がマルチプレクサに入力され、マルチプレクサにより選択された信号が増幅器に入力されるように構成されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平６−１９４２５０号公報
【特許文献２】特開２００７−８８５７２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１に示された装置では、ノックセンサの数と同数の入力回路が必要となり、また特許文献２に示された装置ではマルチプレクサが必要となる。すなわち、ノックセンサの数が２個以上となると、入力回路の構成が複雑化するという課題がある。
【０００６】
本発明はこの点を考慮してなされたものであり、複数のノックセンサを使用する場合における入力回路の構成をより簡略化したノッキング検出装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するため請求項１に記載の発明は、内燃機関に装着された複数のノックセンサ（１１ａ，１１ｂ）の出力信号に基づいてノッキングを判定するノッキング判定手段を備える内燃機関のノッキング検出装置において、前記複数のノックセンサ（１１ａ，１１ｂ）の出力信号が入力される単一の入力回路を備え、前記ノッキング判定手段は、前記入力回路の出力信号（ＶＳ）を用いてノッキングの判定を行い、前記複数のノックセンサ（１１ａ，１１ｂ）のそれぞれが有する一対の出力端子（１１１〜１１４）は、前記入力回路の一対の入力端子（ＰＩ１，ＰＩ２）に接続されていることを特徴とする。
【０００８】
請求項２に記載の発明は、請求項１に記載の内燃機関のノッキング検出装置において、前記複数気筒は、第１気筒群及び第２気筒群からなり、前記複数のノックセンサ（１１ａ，１１ｂ）は、前記第１気筒群及び第２気筒群に対応して設けられていることを特徴とする。
【０００９】
請求項３に記載の発明は、請求項１または２に記載の内燃機関のノッキング検出装置において、前記ノッキング判定手段は、所定クランク角度間隔で前記入力回路の出力信号（ＶＳ）の周波数成分分析を行う周波数成分分析手段と、前記周波数成分分析により得られる、複数の周波数成分の強度を時系列データ（ＫＭＡＰ(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)が得られる。２つのノックセンサ１１ａ及び１１ｂの出力信号を単一の入力回路に入力することに起因して、一つのノックセンサ出力信号が他のノックセンサ出力信号に混合されてノイズ成分となるおそれがあるが、そのようなノイズ成分を除去してより正確な判定を行うことが可能となる。
【０１０２】
本実施形態では、図２０のステップＳ１１ａがデータ格納手段に相当し、ステップＳ１２ａがノイズ補正手段に相当し、ステップＳ１８ａがノイズ成分算出手段に相当し、ステップＳ１１ｂが二値化手段に相当し、ステップＳ１３〜Ｓ１７がノッキング判定手段に相当する。
【０１０３】
なお本発明は上述した実施形態に限るものではなく、種々の変形が可能である。例えば、ノックセンサ出力のサンプリング周期や周波数成分分析を行うクランク角度間隔は上述したもの（２０マイクロ秒、６度）に限るものではなく、本発明の目的が達成される範囲内において変更可能である。また、二値化スペクトル時系列マップ（上述した実施形態では２１行×１５列のマトリクスで構成）も同様に変更可能である。
【０１０４】
また上述した実施形態では、二値化強度パラメータＮＫＭＡＰ(j,i)及びマスタパラメータＭＭＡＰ(j,i)に重み付けパラメータＷＭＡＰ(j,i)を乗算して、適合率ＰＦＩＴを算出したが、重み付けパラメータＷＭＡＰ(j,i)を乗算せずに、すなわち重み付けを行わずに算出するようにしてもよい。
【０１０５】
また上述した実施形態では、判定閾値ＳＬＶＬ、二値化閾値ＢＬＶＬ、マスタパターンマップ、及び重み付けマップをエンジン回転数ＮＥ及び吸気圧ＰＢＡに応じて、算出または選択するようにしたが、予め設定された値または１つのマップに固定しておいてもよい。
【０１０６】
また本発明は、クランク軸を鉛直方向とした船外機などのような船舶推進機用エンジンなどのノッキング検出にも適用が可能である。
【符号の説明】
【０１０７】
１  内燃機関
５  電子制御ユニット（ノッキング判定手段、周波数成分分析手段、データ格納手段、二値化手段、ノイズ成分算出手段）
１１  ノックセンサ
【図１】
2010180836.tif 000003
【図２】
2010180836.tif 000004
【図３】
2010180836.tif 000005
【図４】
2010180836.tif 000006
【図５】
2010180836.tif 000007
【図６】
2010180836.tif 000008
【図７】
2010180836.tif 000009
【図８】
2010180836.tif 000010
【図９】
2010180836.tif 000011
【図１０】
2010180836.tif 000012
【図１１】
2010180836.tif 000013
【図１２】
2010180836.tif 000014
【図１３】
2010180836.tif 000015
【図１４】
2010180836.tif 000016
【図１５】
2010180836.tif 000017
【図１６】
2010180836.tif 000018
【図１７】
2010180836.tif 000019
【図１８】
2010180836.tif 000020
【図１９】
2010180836.tif 000021
【図２０】
2010180836.tif 000022
【図２１】
2010180836.tif 000023
【図２２】
2010180836.tif 000024
【図２３】
2010180836.tif 000025
【図２４】
2010180836.tif 000026
【図２５】
2010180836.tif 000027
【図２６】
2010180836.tif 000028
【図２７】
2010180836.tif 000029