(57)【特許請求の範囲】
【請求項１】
ノッキングセンサの出力信号のサンプリングデータに基づいて、エンジンのノッキングを検出するノッキング検出装置において、
複数個のサンプリングデータを用いて、前記出力信号の周波数解析を行う周波数解析部と、
前記周波数解析に用いられる複数個のサンプリングデータのうち、所定個数のサンプリングデータを予め決められた同一の固定値に設定する固定値設定部と、
を備え、
前記同一の固定値として、前記出力信号の振幅の中央値を用いることを特徴とするノッキング検出装置。
【請求項２】
前記複数個のサンプリングデータに対応した所定期間として、前記出力信号からサンプリングデータを取得するデータ取得期間と、前記データ取得期間とは重ならない固定値設定期間とが設定されており、
前記データ取得期間におけるサンプリングデータを取得した後に、該データ取得期間に取得したサンプリングデータと、前記固定値設定期間に対応して前記固定値に設定されたサンプリングデータとを用いて、前記周波数解析を行うことを特徴とする請求項１に記載のノッキング検出装置。
【請求項３】
前記エンジンの状態に応じて、前記データ取得期間を設定することを特徴とする請求項２に記載のノッキング検出装置。
【請求項４】
前記エンジンの回転状態に応じて、前記データ取得期間を設定することを特徴とする請求項２又は３に記載のノッキング検出装置。
【請求項５】
前記複数個のサンプリングデータに対応した所定期間には、ノイズを除去するために設けられたノイズ除去期間が設定されており、
前記所定期間におけるサンプリングデータを取得した後に、該サンプリングデータのうち前記ノイズ除去期間に対応したサンプリングデータを前記固定値に設定して、前記周波数解析を行うことを特徴とする請求項１又は２に記載のノッキング検出装置。
【請求項６】
前記エンジンの状態に応じて、前記ノイズ除去期間を設定することを特徴とする請求項５に記載のノッキング検出装置。
【請求項７】
前記エンジンの回転状態に応じて、前記ノイズ除去期間を設定することを特徴とする請求項５又は６に記載のノッキング検出装置。
【請求項８】
前記周波数解析部は、前記複数個のサンプリングデータを用いて、ＦＦＴ演算を行うことを特徴とする請求項１〜７のいずれか１項に記載のノッキング検出装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、内燃機関（エンジン）のノッキングを検出するノッキング検出装置に関し、例えば、小型船舶、小型発電機、芝刈機等に使用される汎用エンジン、２輪車用のエンジン、各種の建設機械に用いられるエンジン等のノッキングを好適に検出することができるノッキング検出装置に関する。
【背景技術】
【０００２】
従来より、エンジンに発生するノッキングを検出する技術として、燃焼室に配設された点火プラグとグランドとの間を流れるイオン電流を検出して、イオン電流に含まれる所定の周波数成分を抽出し、その周波数成分に基づいてノッキングを検出する技術が知られている（特許文献１参照）。
【０００３】
また、エンジンのシリンダブロック等に、圧電素子を利用したノッキングセンサを取り付け、ノッキングによってノッキングセンサから出力される信号を周波数解析することによってノッキングを検出する技術が知られている（特許文献２参照）。
【０００４】
上述した周波数解析の技術としては、ノッキングセンサの出力をＦＦＴ解析（高速フーリエ変換）する方法が知られている。
このＦＦＴ解析は、例えば図４に示すように、ノッキングセンサの出力を、所定サンプリング周期（例えば１５．６μsec）毎にサンプリングして、所定個数（例えば２６個）のサンプリングデータを蓄積し、その蓄積したサンプリングデータを用いてＦＦＴ演算を行うものである。
【０００５】
なお、このＦＦＴ演算では、所定の分解能（例えば１kHzのＦＦＴ周波数分解能）とするために、上述した所定個数のサンプリングデータが必要であるので、その個数に対応したサンプリング期間（例えば１msec）が必要である。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平１１−２９５１８８号公報
【特許文献２】特開２００８−２１５１４１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、上述したノッキングセンサの出力は、エンジンなどの振動によって発生するので、ノッキングの振動以外の振動がある場合には、精度良くノッキングを検出できないことがあった。
【０００８】
例えば、ノッキングセンサの出力に、バルブの着座などに起因するノイズ等が含まれている場合に、従来技術のように、ノッキングセンサの出力から得られる全てのサンプリングデータを使用してＦＦＴ演算を行うと、精度良くノッキングが検出できないことがあった。
【０００９】
つまり、サンプリングデータにノイズが含まれている場合には、精度良くノッキングが検出できないという問題があった。
本発明は、前記課題を解決するためになされたものであり、その目的は、ノッキングの発生を精度良く検出できるノッキング検出装置を提供することである。
【課題を解決するための手段】
【００１０】
（１）本発明の第１態様は、ノッキングセンサの出力信号のサンプリングデータに基づいて、エンジンのノッキングを検出するノッキング検出装置において、複数個のサンプリングデータを用いて、前記出力信号の周波数解析を行う周波数解析部と、前記周波数解析に用いられる複数個のサンプリングデータのうち、所定個数のサンプリングデータを予め決められた同一の固定値に設定する固定値設定部と、を備え、前記同一の固定値として、前記出力信号の振幅の中央値を用いることを特徴とする。
【００１１】
本第１態様では、固定値設定部により、周波数解析に用いられる複数個のサンプリングデータのうち、所定個数のサンプリングデータを予め決められた固定値に設定する。そして、周波数解析部により、前記固定値に設定された所定個数のサンプリングデータを含む複数個のサンプリングデータを用いて、出力信号の周波数解析を行う。よって、その周波数解析の結果に基づいて、精度良くノッキングを検出することができる。
【００１２】
つまり、本第１態様では、サンプリングデータのうち、例えばノイズの発生が予想される範囲のサンプリングデータとして、予め決められた固定値を採用できる。この固定値は、ノイズの影響を受けることなく（ノイズとは別に）設定できるので、この固定値を含むサンプリングデータを用いて周波数解析を行うと、その周波数解析の結果は、ノイズの影響を受けにくいものとなる。よって、ノイズの影響が少ない周波数解析の結果に基づいて、精度良くノッキングの検出を行うことができる。
【００１３】
なお、どの範囲のサンプリングデータがノイズの影響を受けやすいかは、周知の技術的知見や実験等により確認することができる。例えばバルブの着座ノイズは、エンジンの所定回転角の場合に発生し易いことが知られているので、サンプリングデータのどの範囲がノイズの影響を受け易いかが分かる。
【００１４】
しかも、本第１態様では、前記固定値として、同一の固定値を用いる。
このように、サンプリングデータとして同一の固定値を用いると、そのサンプリングデータを用いて周波数解析を行った場合に、周波数解析は固定値の影響を受けにくいので好適である。
さらに、本第１態様では、前記同一の固定値として、前記出力信号の振幅の中央値を用いる。
つまり、固定値として例えば０「ゼロ」を用いると、０に持ち替えたタイミングを含めた周波数解析演算において、演算誤差が発生する。一方、固定値として、出力信号の振幅の中央値を用いる場合には、固定値として０「ゼロ」を用いた場合に比べて、演算誤差が発生しない。
よって、本第１態様のように、出力信号の振幅の中央値である固定値を設定すると、周波数解析の際に固定値を用いる影響を受けにくいという利点がある。
【００１５】
（２）本発明の第２態様では、前記複数個のサンプリングデータに対応した所定期間（例えば全サンプリング期間）として、前記出力信号からサンプリングデータを取得するデータ取得期間と、前記データ取得期間とは重ならない固定値設定期間とが設定されており、前記データ取得期間におけるサンプリングデータを取得した後に、該データ取得期間に取得したサンプリングデータと、前記固定値設定期間に対応して固定値に設定されたサンプリングデータとを用いて、前記周波数解析を行う。
【００１６】
本第２態様では、データ取得期間にてサンプリングデータを所得した後に、そのデータ取得期間に取得したサンプリングデータと、固定値設定期間に対応して固定値に設定されたサンプリングデータとを用いて、周波数解析を行う。
【００１７】
従って、ノイズの発生し易い期間を固定値設定期間に設定しておくことにより、ノイズの影響が少ないデータ取得期間にて取得したサンプリングデータと、固定値設定期間の固定値とを用いて、周波数解析を行って、精度良くノッキングを検出することができる。
【００１８】
つまり、本第２態様によれば、データ取得期間の後にノイズが発生する場合に、精度良くノッキングを検出できる。
（３）本発明の第３態様では、前記エンジンの状態に応じて、前記データ取得期間を設定する。
ここで、エンジンの状態とは、例えば、エンジンの回転状態、油温（エンジンオイル等の温度）、水温（冷却水温）、吸入空気の温度など、エンジンの運転（稼働）に影響を与える各種の構成の状態のことである。
このエンジンの状態が変化すると、ノッキングやノイズ（例えば着座ノイズ）の発生のタイミング（発生の時期や期間）が変化するので、エンジンの状態に応じて、データ取得期間を設定すると、より精度良くノッキングの検出ができる。
なお、エンジンの状態の変化は、例えばクランク角度センサや、油温センサ等の各種のセンサにより判断することができる。
（４）本発明の第４態様では、前記エンジンの回転状態に応じて、前記データ取得期間を設定する。
エンジンの回転状態（回転数：回転速度）が変化すると、ノッキングやノイズ（例えば着座ノイズ）の発生のタイミング（発生の時期や期間）が変化する。例えばエンジンの回転数が増加すると、そうでない場合に比べて、ノッキングや着座ノイズの発生時期が早くなり、また、発生期間が短くなる。
従って、エンジンの回転状態に応じて、データ取得期間を設定すると、より精度良くノッキングの検出ができる。
なお、エンジンの回転状態の変化は、エンジンの回転状態を検出する各種のセンサ（例えば回転数センサ等）によって検出できるが、それ以外に、エンジンの点火信号から算出することができるので、本第４態様の場合には、各種のセンサ信号を用いなくても、エンジンの回転状態を判断できるという利点がある。
（５）本発明の第５態様では、前記複数個のサンプリングデータに対応した所定期間には、ノイズを除去するために設けられたノイズ除去期間が設定されており、前記所定期間におけるサンプリングデータを取得した後に、該サンプリングデータのうち前記ノイズ除去期間に対応したサンプリングデータを前記固定値に設定して、前記周波数解析を行う。
【００１９】
本第５態様では、所定期間（例えば全サンプリング期間）におけるサンプリングデータを取得した後に、そのサンプリングデータのうちノイズ除去期間に対応したサンプリングデータを固定値に設定して、周波数解析を行う。
【００２０】
従って、ノイズの発生し易い期間をノイズ除去期間に設定しておくことにより、ノイズの影響が少ない他の期間（ノイズ除去期間以外の期間）にて取得したサンプリングデータとノイズ除去期間の固定値とを用いて、周波数解析を行って、精度良くノッキングを検出することができる。
【００２１】
つまり、本第５態様によれば、所定期間（例えば全サンプリング期間）の途中でノイズが発生する場合に、精度良くノッキングを検出できる。
（６）本発明の第６態様では、前記エンジンの状態に応じて、前記ノイズ除去期間を設定する。
【００２２】
ここで、エンジンの状態とは、例えば、エンジンの回転状態、油温（エンジンオイル等の温度）、水温（冷却水温）、吸入空気の温度など、エンジンの運転（稼働）に影響を与える各種の構成の状態のことである。
【００２３】
このエンジンの状態が変化すると、ノッキングやノイズ（例えば着座ノイズ）の発生のタイミング（発生の時期や期間）が変化するので、エンジンの状態に応じて、ノイズ除去期間を設定すると、より精度良くノッキングの検出ができる。
【００２４】
なお、エンジンの状態の変化は、例えばクランク角度センサや、油温センサ等の各種のセンサにより判断することができる。
（７）本発明の第７態様では、前記エンジンの回転状態に応じて、前記ノイズ除去期間を設定する。
【００２５】
エンジンの回転状態（回転数：回転速度）が変化すると、ノッキングやノイズ（例えば着座ノイズ）の発生のタイミング（発生の時期や期間）が変化する。例えばエンジンの回転数が増加すると、そうでない場合に比べて、ノッキングや着座ノイズの発生時期が早くなり、また、発生期間が短くなる。
【００２６】
従って、エンジンの回転状態に応じて、ノイズ除去期間を設定すると、より精度良くノッキングの検出ができる。
なお、エンジンの回転状態の変化は、エンジンの回転状態を検出する各種のセンサ（例えば回転数センサ等）によって検出できるが、それ以外に、エンジンの点火信号から算出することができるので、本第７態様の場合には、各種のセンサ信号を用いなくても、エンジンの回転状態を判断できるという利点がある。
【００２９】
（８）本発明の第８態様では、前記周波数解析部は、前記複数個のサンプリングデータを用いて、ＦＦＴ演算を行う。
【００３０】
本第８態様は、周波数解析部での処理を例示している。なお、このＦＦＴ演算とは、周波数解析（スペクトル解析）の際の周知の高速フーリエ変換（Fast Fourier Transform）による演算である。
【図面の簡単な説明】
【００３１】
【図１】実施例１のノッキング制御装置が用いられる内燃機関のシステム構成を示す説明図である。
【図２】実施例１のノッキング制御装置の電気的構成を示す説明図である。
【図３】点火時期信号とノッキング検出期間とサンプリング期間とノッキングセンサの出力信号を示すタイミングチャートである。
【図４】従来のノッキング信号のサンプリング方法を示す説明図である。
【図５】実施例１のサンプリングデータの設定方法を示す説明図である。
【図６】実施例１の補正点火時期算出処理を示すフローチャートである。
【図７】実施例１のノッキング検出処理を示すフローチャートである。
【図８】実施例１のＦＦＴ全体処理を示すフローチャートである。
【図９】実施例１のＡ／Ｄサンプリング処理を示すフローチャートである。
【図１０】ノッキング信号にノイズが含まれる状態を示す説明図である。
【図１１】実施例２のサンプリングデータの設定方法を示す説明図である。
【図１２】実施例２のＦＦＴ全体処理を示すフローチャートである。
【図１３】エンジンの回転数に応じてノイズの発生時期が異なることを示すタイミングチャートである。
【発明を実施するための形態】
【００３２】
以下では、本発明を実施するための形態（実施例）について説明する。
【実施例１】
【００３３】
本実施例１のノッキング検出装置は、汎用エンジンや２輪車用エンジンなどの各種のエンジン（内燃機関）のノッキングを検出する装置である。なお、以下では、４サイクルの２輪車用エンジンを例に挙げて説明する。
【００３４】
ａ）まず、本実施例１のノッキング検出装置を備えた内燃機関のシステム全体について説明する。
図１に示す様に、エンジン１は、エンジン本体３と、エンジン本体３に空気を導入する吸気管５と、吸入空気量を検出するエアフローメータ７と、吸入空気量を調整するスロットルバルブ９と、スロットルバルブ９の開度を検出するスロットル開度センサ１１と、燃焼室１３内に空気を導入する吸気マニホールド１５と、燃料を吸気マニホールド１５内に噴射する燃料噴射弁１７と、エンジン本体３から（燃焼後の）空気を排出する排気マニホールド１９と、排気マニホールド１９から排出される排気から空燃比を検出する空燃比センサ（又は酸素センサ）２１などを備えている。
【００３５】
また、エンジン本体３のシリンダヘッド２３には、点火プラグ２５が取り付けられ、エンジン本体３には、エンジン回転数（回転速度）を検出するエンジン回転数センサ２７や、クランク角（回転角）を検出するクランク角センサ２９が取り付けられている。
【００３６】
更に、エンジン本体３には、後述する点火時期制御装置３１が取り付けられている。この点火時期制御装置３１には、イグナイタ３３が接続され、イグナイタ３３には点火コイル３５が接続され、点火コイル３５は点火プラグ２５に接続されている。
【００３７】
また、エンジン１には、エンジン本体３等の運転状態（例えばエンジン回転数や空燃比センサ２１の出力に基づく空燃比フィードバック制御など）を総合的に制御する内燃機関用制御装置（エンジンコントロールユニット）３７が設けられている。この内燃機関用制御装置３７は、図示しないが、周知のＲＡＭ、ＲＯＭ、ＣＰＵ等を有するマイコンを備えた電子制御装置（ＥＣＵ）である。
【００３８】
内燃機関用制御装置３７の入力ポート（図示せず）には、エアフローメータ７、スロットル開度センサ１１、空燃比センサ２１、エンジン回転数センサ２７、クランク角センサ２９、点火時期制御装置３１が接続されており、これらの各機器からの信号（センサ信号等）が入力ポートに入力する。
【００３９】
一方、内燃機関用制御装置３７の出力ポート（図示せず）には、燃料噴射弁１７、点火時期制御装置３１が接続されており、これらの機器に対して、内燃機関用制御装置３７から、各機器の動作を制御するための制御信号が出力される。
【００４０】
ｂ）次に、点火時期制御装置３１について説明する。
点火時期制御装置３１は、ノッキングセンサ４１とノッキング制御装置４３とが、接続ケーブル４５を介して、電気的及び機械的に分離不可能に一体に構成されている。なお、ノッキングセンサ４１とノッキング制御装置４３とは、電気的に接続されていればよく、分離可能であってもよい。また、ノッキング制御装置４３は、内燃機関用制御装置３７に含まれていてもよい。
【００４１】
このうち、ノッキングセンサ４１は、周知の圧電素子（図示せず）を用いた非共振型ノッキングセンサであり、取付用ボルト（図示せず）によってエンジン本体３のシリンダブロック４９（図１参照）に固定される。
【００４２】
また、ノッキング制御装置４３は、後に詳述するように、ノッキングを検出する機能と点火時期を調整する機能とを有する制御装置であり、前記内燃機関用制御装置３７と同様に、周知のＲＡＭ、ＲＯＭ、ＣＰＵ等を有するマイコン（図示せず）を備えた電子制御装置である。
【００４３】
なお、ノッキング制御装置４３のうち、ノッキング検出の機能を有する部分（後述するＦＦＴ演算部６３：図２参照）が本発明のノッキング検出装置に相当する。
ｃ）次に、ノッキング制御装置４３の電気的構成について説明する。
【００４４】
図２に示すように、ノッキング制御装置４３は、バッテリー（図示せず）に接続された電源回路５１と、ノッキングセンサ４１に接続されたフィルター回路５３と、イグナイタ３３に接続された点火時期出力回路５５と、各種の演算等を行うマイクロプロセッサ（ＭＰＵ）５７とを備えている。
【００４５】
このうち、電源回路５１は、バッテリーから供給される電力（ＶＢ電圧１２Ｖの直流電流）を、５Ｖの直流に変換してＭＰＵ５７に供給する回路である。
フィルター回路５３は、ノッキングセンサ４１から出力される信号のうち、ノッキングの検出に不要な高周波成分を除去するバンドパスフィルタである。このフィルター回路５３にてフィルタリングされたノッキング信号が、ＭＰＵ５７（詳しくはＡ／Ｄ変換部６１）に出力される。
【００４６】
点火時期出力回路５５は、ＭＰＵ５７（詳しくは点火時期制御部６７）から出力される点火時期を示す点火時期信号を、バッファ回路（図示せず）を介し、イグナイタ３３に対して出力する回路である。
【００４７】
ＭＰＵ５７は、自身の処理内容を機能的に示すと、ノッキング信号をＡ／Ｄ変換するＡ／Ｄ変換部６１と、Ａ／Ｄ変換されたノッキング信号を用いてＦＦＴ演算を行うＦＦＴ演算部６３と、ＦＦＴ演算結果に基づいてノッキングの判定を行うノッキング判定部６５と、ノッキングの判定結果に基づいて点火時期を制御する点火時期制御部６７とを備えている。
【００４８】
詳しくは、ＦＦＴ演算部６３では、後述するサンプリング期間におけるサンプリングデータを用いて、周知のＦＦＴ演算を行って、周波数解析を行う。この周波数解析により、例えばノッキングが発生している場合には、ノッキングを示す所定の周波数にて顕著なピークを有するパワースペクトルが得られる。
【００４９】
ノッキング判定部６５では、ＦＦＴ演算による周波数解析の結果に基づいて、ノッキングの発生の有無を判定する。例えば、ノッキングを示すような所定の周波数にて、所定値より大きなピークが得られるか否かを判定し、大きなピークが得られた場合等には、ノッキングが発生したと判定する。
【００５０】
点火時期制御部６７では、内燃機関用制御装置３７から得られる基準点火信号（Ａ）に基づいて、点火時期の調整を行って、点火時期出力回路５５に対して、基準点火信号（Ａ）を補正した補正点火信号（Ｂ）である点火時期信号を出力する。
【００５１】
ｄ）次に、点火時期制御の基本的な動作について説明する。
内燃機関用制御装置３７では、例えばエンジン回転数や吸入空気量などに基づいて、点火時期の基準となる基準点火時期を決定する。この基準点火時期とは、エンジン１毎のばらつきや気候変化等を考慮したときにも当該エンジン１が破損しないような十分なマージンを持って設定された点火時期を、エンジン１の運転状態毎に複数設定したマップを用いた上で、このマップと現在の運転状態とを対応（照合）して設定されるベースとなる点火時期（即ち、ノッキング制御装置４３によって調整される対象の点火時期）である。
【００５２】
この内燃機関用制御装置３７にて決定された基準点火時期を示す決定する基準点火信号（Ａ）が、ノッキング制御装置４３に対して出力される。
基準点火信号（Ａ）を受信するノッキング制御装置４３（詳しくはＭＰＵ５７）では、ノッキングセンサ４１からの信号（ノッキング信号）を受信し、そのノッキング信号に基づいて、ノッキングの発生の有無を検出する。
【００５３】
そして、ノッキングの発生状態等に応じて、点火時期を調整（補正）して、補正点火時期を決定する。なお、この補正点火時期を示す信号が、補正点火信号（Ｂ）である。
具体的には、例えば、ノッキングが発生していない場合には、所定期間毎に、点火時期を最大進角に至るまで徐々に進角させ、ノッキングが発生すると基準点火時期に戻すように、補正点火時期を設定する。
【００５４】
次に、上述のように補正点火時期が決定されると、ノッキング制御装置４３から、点火時期出力回路５５を介して、イグナイタ３３に対し、点火時期信号である補正点火信号（Ｂ）が出力される。
【００５５】
イグナイタ３３では、パワートランジスタ（図示せず）のベースに、補正点火信号（Ｂ）が与えられると、この補正点火信号（Ｂ）のオン・オフに応じてスイッチング動作が行われる。
【００５６】
詳しくは、図３に示すように（点火時期信号参照）、補正点火信号（Ｂ）がオフ（ローレベル：一般にグランド電位）である場合には、ベース電流が流れずパワートランジスタはオフ状態（遮断状態）となり、一次巻線に電流（一次電流ｉ１）が流れることはない。また、補正点火信号（Ｂ）がオン（ハイレベル：ノッキング制御装置４３からの正の電圧が供給される状態）である場合には、ベース電流が流れてパワートランジスタはオン状態（通電状態）となり、一次巻線に電流（一次電流ｉ１）が流れる。この一次巻線への通電により、点火コイル３５に磁束エネルギーが蓄積される。
【００５７】
また、補正点火信号（Ｂ）がハイレベルであり一次巻線に一次電流ｉ１が流れている状態で、補正点火信号（Ｂ）がローレベルになると、パワートランジスタがオフ状態となり、一次巻線への一次電流ｉ１の通電が遮断（停止）される。すると、点火コイル３５における磁束密度が急激に変化して、二次巻線に点火用電圧が発生し、これが点火プラグ２５に印加されることで、点火プラグ２５の中心電極と接地電極との間に火花放電が発生する。このときに二次巻線に流れる電流が二次電流ｉ２である。
【００５８】
ｅ）次に、本実施例１の要部であるノッキング検出に必要なＦＦＴ演算等の原理について説明する。
エンジン１が回転している場合には、エンジン１の振動によって、ノッキングセンサ４１からは常時信号（ノッキング信号）が出力される。
【００５９】
ところが、ノッキングは、エンジン１の所定の回転角（クランク角）の期間に発生し易いので、通常は、所定の回転角の間（即ちノッキング検出期間）のみ、ノッキング信号が利用されるように設定されている。
【００６０】
例えば、図３に示すように、ノッキングは、エンジン１の点火直後の所定の回転角の期間に発生し易いので、ノッキング検出期間（従って全サンプリング期間）は、エンジン１の各点火直後の所定の回転毎に周期的に設定されている。
【００６１】
なお、ノッキング検出期間は、ＦＦＴ演算に必要なサンプリング数のサンプリングが可能なように、全てのサンプリング数に対応した全サンプリング期間以上に設定されている。
【００６２】
このノッキング検出期間としては、エンジンの圧縮行程上死点（ＴＤＣ）から１０°ＣＡ後〜７０°ＣＡ後（ＡＴＤＣ１０°ＣＡ〜ＡＴＤＣ７０°ＣＡ）の間が挙げられる。
そして、上述したノッキング検出期間（従って全サンプリング期間）にて得られたノッキング信号に基づいて、ノッキングを検出するために周知のＦＦＴ演算が行われる。
【００６３】
ここで、図４に示すように、例えば、サンプリング周期１５．６μsec、サンプリング数（実効サンプリング数）６４、サンプリング時間（サンプリング期間）１msec、ＦＦＴ周波数分解能１kHzという条件でＦＦＴ演算を行う場合を考える。なお、ここで実効サンプリング数とは、実際のノッキング信号から得られる（１フレームの）サンプリング数である。
【００６４】
この場合、通常では、Ａ／Ｄ変換されたノッキング信号は、１５．６μsec毎にサンプリングされ、Ｘ０〜Ｘ６３の６４個のサンプリングデータが得られる。従って、この６４個のサンプリングデータを使用して、周知のＦＦＴ演算が行われる。なお、Ｘ０〜Ｘ６４は、各サンプリングデータを示している。
【００６５】
この場合、１ｋＨｚの分解能とするためには、６４個のサンプリングデータが必要であるので、サンプリング期間は１msec必要になる。
ところが、通常、ノッキングセンサ４１の出力のうち、ノッキングによる信号の変動は、サンプリング期間（即ちノッキング検出期間）の前半が多いが、後半になると、バルブの着座などによるノイズが多くなる。
【００６６】
ところが、目的とする分解能を得るためには、全サンプリング期間（例えば１msec）でのサンプリングが必要になるので、サンプリング期間の後半のノイズを含む全てのサンプリングデータを用いてＦＦＴ演算を行うと、その演算結果もノイズの影響を受けてしまう。
【００６７】
そこで、本実施例１では、図５に示すように、実効サンプリング数を全サンプリングデータの半分の３２とし、残りの半分（３２個）のサンプリングデータの値を固定値（例えば０）とする。
【００６８】
なお、この場合は、サンプリング周期１５．６μsec、サンプリング数（実効サンプリング数）３２、サンプリング時間０．５msec、ＦＦＴ周波数分解能１kHzという条件である。
【００６９】
詳しくは、サンプリング開始から３２個目までのサンプリングデータ、即ち、サンプリング時間０．５msecにおけるサンプリングデータ（Ｘ０〜Ｘ３１）については、従来と同様に、ノッキング信号から１５．６μsec毎にサンプリングデータ取得（記憶）する。その後は、実際にノッキング信号からサンプリングを行うことなく、残り３２個のサンプリングデータ（Ｘ３２〜Ｘ６３）の値を、所定の一定の固定値（例えば０）とする。
【００７０】
そして、この固定値を含む６４個のサンプリングデータを用いて、従来と同様にＦＦＴ演算を行う。
なお、前記図３に示すように、全サンプリング期間の前半が、サンプリングデータ（Ｘ０〜Ｘ３１）を取得するデータ取得期間であり、残りのサンプリングデータ（Ｘ３２〜Ｘ６３）に対応する期間が、固定値設定期間である。
【００７１】
また、上述したノッキング信号は、実際には、ノッキング信号の振動が無い０点を中心にプラス、マイナスに振動するが、本実施例１では、前記図４及び図５に示すように、０点に対応する中央値が２．５Ｖとなるように、例えばＡ／Ｄ変換前に、ノッキング信号にバイアスを加えている。これにより、ノッキング信号は、振幅の中央値である２．５Ｖを中心にして、図４及び図５の上下方向に、０〜５Ｖの範囲で振動する信号となる。
【００７２】
ｆ）次に、本実施例１のＭＰＵ５７にて実施される制御処理について説明する。
＜補正点火時期算出処理＞
まず、点火時期制御部６７にて実施される処理のうち、基準点火信号（Ａ）から補正点火信号（Ｂ）を算出する処理について説明する。なお、この補正点火時期算出処理は、特許第５４３２３９８号公報に記載の補正点火時期算出処理と同じであるので、簡単に説明する。
【００７３】
本処理は、基準点火信号（Ａ）に基づいて補正点火時期を算出するとともに、基準点火信号（Ａ）を利用してエンジン回転数を算出する処理である。
図６のフローチャートに示す様に、ステップ（Ｓ）１００では、タイマー記憶変数Ｎをリセット（０に設定）する。
【００７４】
続くステップ１１０では、回転数格納／ノックウィンドウ（Window）変数Ｓをリセットする。
続くステップ１２０では、タイマーＴの初期値Ｔ（０）を０に設定する。
【００７５】
続くステップ１３０では、ノック検知ウィンドウＫＮＷの初期値ＫＮＷ（０）を０に設定する。このノック検知ウィンドウＫＮＷとは、ノッキングの発生する可能性のある領域（所定の回転角の区間）を示すものであり、点火時期を起点に設定される特定の期間に相当し、ノッキング信号の解析区間（即ちノッキング検出期間）に相当するものである。
【００７６】
続くステップ１４０では、内燃機関用制御装置３７から受信した基準点火信号（Ａ）に基づいて、基準点火時期（入力点火時期）ＴＩＧＩＮを補正点火時期ＴＩＧとして設定する。
【００７７】
続くステップ１５０では、点火信号間隔測定タイマーＴ１をリセットする。
続くステップ１６０では、基準点火信号（Ａ）が入力したか否かを判定する。ここで肯定判断されるとステップ１７０に進み、一方否定判断されると待機する。
【００７８】
ステップ１７０では、基準点火信号（Ａ）が入力してからの時間を計測するために、点火信号間隔測定タイマーＴ１をスタートする。
続くステップ１８０では、再度基準点火信号（Ａ）が入力したか否かを判定する。ここで肯定判断されるとステップ１９０に進み、否定判断されると待機する。
【００７９】
ステップ１９０では、基準点火信号（Ａ）が入力したので、前記タイマー記憶変数Ｎをカウントアップする。
続くステップ２００では、今回（Ｎ回目）、基準点火信号（Ａ）が入力した時間を、タイマーＴ（Ｎ）として記憶する。
【００８０】
続くステップ２１０では、今回（Ｎ回目）、基準点火信号（Ａ）が入力した時間（Ｔ（Ｎ））と、前回（Ｎ−１回目）、基準点火信号（Ａ）が入力した時間（Ｔ（Ｎ−１））との差ΔＴ（Ｎ）を求める。
【００８１】
続くステップ２２０では、「２回転×６０ｓｅｃ／ΔＴ（Ｎ）」の演算（４サイクルエンジンにて１点火／２回転の場合）によって、エンジン回転数（ｒｐｍ）を算出する。
続くステップ２３０では、回転数格納／ノックウィンドウ変数Ｓをカウントアップする。
【００８２】
続くステップ２４０では、前記ステップ２２０で求めたエンジン回転数を、ＲＰＮ（Ｓ）として格納（記憶）する。
続くステップ２５０では、ノック検知ウィンドウＫＮＷ（Ｓ）の演算を行う。
【００８３】
続くステップ２６０では、回転数格納／ノックウィンドウ変数Ｓが２を上回るか否かを判定する。ここで肯定判断されるとステップ２７０に進み、一方否定判断されると前記ステップ１８０に戻る。
【００８４】
ステップ２７０では、後述するノッキング検出処理を行って、ノッキングを検出する。
続くステップ２８０では、エンジン回転数の「ＲＰＮＳ（Ｓ）／ＲＰＮＳ（Ｓ−１）」の演算、即ち、今回（Ｓ回目）のエンジン回転数ＲＰＮＳ（Ｓ）を前回（Ｓ−１回目）のエンジン回転数ＲＰＮＳ（Ｓ−１）で割ることにより、エンジン回転数の変動の大きさを示すエンジン回転数の偏差（回転数偏差）ΔＲＰＮを算出する。
【００８５】
続くステップ２９０では、回転数偏差ΔＲＰＮが所定の判定値ＲＰＮｓを下回るか否かを判定する。ここで肯定判断されるとステップ３００に進み、一方否定判断されるとステップ３１０に進む。
【００８６】
ステップ３１０では、回転数偏差ΔＲＰＮが大きく、点火時期を進角させることは適当ではないので、基準点火時期ＴＩＧＩＮそのものを補正点火時期ＴＩＧとして設定し、前記ステップ１８０に戻る。
【００８７】
一方、ステップ３００では、ノッキングが発生しているか否かを、後述するノッキング検出処理にて設定されるノック検知フラグＫＮＳが１であるか否かによって判定する。ここで肯定判断されるとステップ３２０に進み、一方否定判断されるとステップ３３０に進む。
【００８８】
ステップ３２０では、ノッキングが発生しているので、ノッキングの発生を防止するために、点火時期を遅角する。
一方、ステップ３３０では、ノッキングが発生していないので、点火時期（補正点火時期ＴＩＧ）が最大進角ＴＩＧＭか否かを判定する。ここで肯定判断されるとステップ３４０に進み、一方否定判断されるとステップ３５０に進む。
【００８９】
ステップ３４０では、補正点火時期ＴＩＧが最大進角ＴＩＧＭであるので、その最大進角ＴＩＧＭの値を補正点火時期ＴＩＧの値として設定し、前記ステップ１８０に戻る。
一方、ステップ３５０では、補正点火時期ＴＩＧが最大進角ＴＩＧＭではないので、点火時期を所定値ΔＴＩＧ分進角させる。
【００９０】
＜ノッキング検出処理＞
次に、ノッキング判定部にて実施されるノッキング検出処理について説明する。なお、このノッキング検出処理は、特許第５４３２３９８号公報に記載のノッキング検出処理と、下記のＳ４７０、Ｓ４７５の処理以外は基本的に同様な処理である。
【００９１】
本処理は、ノッキング信号に基づいて、ノッキングを検出する処理である。本処理は所定期間毎に実施される。
図７に示す様に、ステップ４００にて、ノック検知フラグＫＮＳをクリア（０に設定）する。
【００９２】
続くステップ４１０では、点火時期か否か（点火信号がハイレベルからローレベルになるタイミングであるか否か）を判定する。ここで肯定判断されるとステップ４２０に進み、一方否定判断されると一旦本処理を終了する。
【００９３】
ステップ４２０では、ノック検知ウィンドウ測定タイマーをスタートする。
続くステップ４３０では、ステップ２５０にて演算したノック検知ウィンドウＫＮＷに対応する期間内にあるか否か（換言すれば、ノック検知ウィンドウＫＮＷ内であるか否か）をノックウィンドウ測定タイマーの値に基づき判定する。ここで肯定判断されるとステップ４４０に進み、一方否定判断されると前記ステップ４３０に戻って同様な処理を繰り返す。
【００９４】
ステップ４４０では、ノッキングセンサ４１から得られたノッキング信号が有効であると設定する。
続くステップ４５０では、ステップ２５０にて演算したノック検知ウィンドウＫＮＷに対応する期間が経過したか否か（換言すれば、ノック検知ウィンドウＫＮＷ外であるか否か）をノックウィンドウ測定タイマーの値に基づき判定する。ここで肯定判断されるとステップ４６０に進み、一方否定判断されると前記ステップ４４０に戻って同様な処理を繰り返す。
【００９５】
ステップ４６０では、ノックウォンドウ測定タイマーをリセットする。
続くステップ４７０では、ノック検知ウィンドウＫＮＷに対応する期間（即ちノッキング検出期間）内のサンプリングデータ、即ち、全サンプリング期間に対応するサンプリングデータに基づいて、ＦＦＴ演算を行う。
【００９６】
ここで、全サンプリング期間に対応するサンプリングデータとは、上述したように、データ取得期間にノッキング信号から得られたサンプリングデータと、固定値設定期間に対応して設定された固定値のサンプリングデータである。
【００９７】
続くステップ４７５では、ＦＦＴ演算の結果得られたパワースペクトルに基づいて、例えば単一の共鳴振動モードにおけるピーク（即ち、ノッキングの発生を示す所定の周波数帯におけるピーク）を抽出する。
【００９８】
続くステップ４８０では、前記ピーク値ＫｎｉｎＰｋが、ノッキングの有無を判定する所定の判定値Ｔｈを上回るか否か、即ち、ノッキングが発生したか否かを判定する。ここで肯定判断されるとステップ４９０に進み、一方否定判断されると一旦本処理を終了する。
【００９９】
ステップ４９０では、ノッキングが発生しているので、そのことを示すノック検出フラグＫＮＳをセット（１に設定）し、本処理を終了する。
＜ＦＦＴ関連処理＞
次に、ＦＦＴ演算に関する処理について説明するが、ここでは、本処理について、「(１)全体の処理ルーチン（ＦＦＴ全体処理）」と「(２)Ａ／Ｄサンプリング処理」と「(３)ＦＦＴ演算処理」とに分けて順次説明する。
【０１００】
(１)ＦＦＴ全体処理
本処理は、１５．６μsec毎に実施される割り込み処理である。なお、本処理は、前記図７のステップ４３０にて、ノック検知ウィンドウＫＮＷに対応する期間内に実施される処理である。
【０１０１】
図８に示すように、本処理では、ステップ５００にて、Ａ／Ｄサンプリング処理を行う。即ち、後述するように、Ａ／Ｄ変換されたノッキング信号の値をサンプリングデータとして取得する処理等を行う。
【０１０２】
続くステップ５１０では、サンプリングデータの取得回数を示すカウンタであるＡ／Ｄ回数の値が、所定の判定値であるＡ／Ｄ回数制限値（ここではサンプル数３２）以上であるか否かを判定する。ここで肯定判断されるとステップ５２０に進み、一方否定判断されると一旦本処理を終了する。
【０１０３】
ステップ５２０では、Ａ／Ｄ回数を０にセットする。
続くステップ５３０では、ＦＦＴ演算を行うための残りの３２個のサンプリングデータの値を、固定値の０に設定する。
【０１０４】
続くステップ５４０では、全てのサンプリングデータ（即ち６４個のサンプリングデータ）が得られたので、後述するＦＦＴ演算を行って、一旦本処理を終了する。
(２)Ａ／Ｄサンプリング処理
本処理は、前記図８のステップ５００の処理である。
【０１０５】
本処理では、図９に示すように、ステップ６００にて、今回取得したサンプリングデータを記憶する。
続くステップ６１０では、Ａ／Ｄ回数をカウントアップし、一旦本処理を終了する。
【０１０６】
(３)ＦＦＴ演算処理
本処理は、前記図８のステップ５３０の処理であり、ここでは６４個のサンプリングデータを用いて、ＦＦＴ演算を行う。
【０１０７】
このＦＦＴ演算とは、周知のように、例えば窓関数を設定し、実数部演算、実数部積算、虚数部演算、虚数部積算等の演算を行って、周波数解析を行って、周波数スペクトルを求めるものである。
【０１０８】
ｇ）次に、本実施例１の効果を説明する。
本実施例１では、全サンプリング期間のうち、前半のデータ取得期間、即ち、ノッキング信号からサンプリングデータを取得するデータ取得期間にて、例えば３２個のサンプリングデータを取得する。また、全サンプリング期間のうち、後半の固定値設定期間に対応する例えば３２個のサンプリングデータを、予め決められた固定値（例えば０）に設定する。
【０１０９】
そして、データ取得期間にて取得された例えば３２個のサンプリングデータと、固定値設定期間に対応する例えば３２個のサンプリングデータとを用いて、ＦＦＴ演算を行って、ノッキング信号の周波数解析を行う。よって、その周波数解析の結果に基づいて、精度良くノッキングを検出することができる。
【０１１０】
つまり、本実施例１では、サンプリングデータのうち、例えばノイズの発生が予想される範囲、ここでは後半の固定値設定期間の３２個のサンプリングデータとして、予め決められた固定値を用いる。この固定値は、ノイズとは別に設定できるので、この固定値を含むサンプリングデータを用いて周波数解析を行うと、その周波数解析の結果は、ノイズの影響を受けにくいものとなる。よって、ノイズの影響が少ない周波数解析の結果に基づいて、精度良くノッキングの検出を行うことができる。
【０１１１】
つまり、本実施例１によれば、データ取得期間の後にノイズが発生する場合に、精度良くノッキングを検出できる。
また、本実施例１では、ノッキング信号からサンプリングを取得する期間は、全サンプリング期間の半分のデータ取得期間で済むので、サンプリング等の処理の負担が少なくて済み、処理時間を短縮できるという利点がある。
【０１１２】
更に、本実施例１では、固定値設定期間のサンプリングデータとして同一の固定値（例えば０）を用いる。そのため、そのサンプリングデータを用いて周波数解析を行った場合に、周波数解析は固定値の影響を受けにくいので好適である。
【０１１３】
ｈ）次に、本実施例１の変形例について説明する。
本実施例１の変形例では、固定値として、ノッキング信号の振幅の中央値を用いることができる。
固定値として例えば０「ゼロ」を用いると、０に持ち替えたタイミングを含めた周波数解析演算において、演算誤差が発生する。一方、固定値として、出力信号の振幅の中央値を用いる場合には、固定値として０「ゼロ」を用いた場合に比べて、演算誤差が発生しない。よって、出力信号の振幅の中央値である固定値を設定すると、周波数解析の際に固定値を用いる影響を受けにくいという利点がある。
【０１１４】
また、本実施例１において、エンジンの回転状態に応じて、データ取得期間を設定することができる。
つまり、エンジンの回転状態（回転数：回転速度）が変化すると、ノイズ（例えば着座ノイズ）の発生のタイミング（時期、期間）が変化する。例えばエンジンの回転数が増加すると、そうでない場合に比べて、着座ノイズの発生時期が早くなり、発生期間が短くなる。
【０１１５】
従って、エンジンの回転状態に応じて、データ取得期間を設定すると、より、一層精度良くノッキングの検出ができる。
具体的には、エンジンの回転数とデータ取得期間との関連を示すマップをマイコンに保持して、エンジンの回転数に応じてデータ取得期間を設定することができる。
【実施例２】
【０１１６】
次に、実施例２について説明するが、前記実施例１と同様な構成については説明を省略する。なお、前記実施例１と同じ構成には同じ番号を用いて説明する。
本実施例２は、前記実施例１とは、ＦＦＴ演算に用いるサンプリングデータの設定方法が異なっているので、相違点を中心にして本実施例２を説明する。
【０１１７】
ａ）まず、本実施例２の要部であるノッキング検出に必要なＦＦＴ演算等の原理について説明する。
図１０に示すように、例えば、サンプリング周期１５．６μsec、サンプリング数（実効サンプリング数）６４、サンプリング時間１msec、ＦＦＴ周波数分解能１kHzという条件でＦＦＴ演算を行う場合を考える。
【０１１８】
この場合、Ａ／Ｄ変換されたノッキング信号は、１５．６μsec毎にサンプリングされ、Ｘ０〜Ｘ６３の６４個のサンプリングデータが得られる。
ところが、６４個のサンプリングデータを得る間に、ノイズ発生領域（ノイズが発生する期間）がある場合には、その範囲のサンプリングデータはノイズの影響を受けてしまう。その結果、ノイズを含む全てのサンプリングデータを用いてＦＦＴ演算を行うと、その演算結果もノイズの影響を受けてしまう。
【０１１９】
そこで、本実施例２では、図１１に示すように、Ｘ０〜Ｘ６３の６４個全てのサンプリングデータを取得した後に、ノイズ発生領域における例えばＸ２１〜Ｘ３０の１０個のサンプリングデータ、即ちノイズ除去期間におけるサンプリングデータの値を固定値（例えば０）とする。
【０１２０】
そして、この固定値を含む６４個のサンプリングデータを用いて、従来と同様にＦＦＴ演算を行う。
ｂ）次に、本実施例２のＭＰＵ５７にて実施される制御処理のうち、ＦＦＴ関連処理の（１）ＦＦＴ全体処理について説明する。
【０１２１】
なお、このＦＦＴ関連処理は、前記実施例１と同様に、「(１)全体の処理ルーチン（ＦＦＴ全体処理）」と「(２)Ａ／Ｄサンプリング処理」と「(３)ＦＦＴ演算処理」からなる。
【０１２２】
(１)ＦＦＴ全体処理
本処理は、１５．６μsec毎に実施される割り込み処理である。
図１２に示すように、本処理では、ステップ７００にて、前記実施例１と同様なＡ／Ｄサンプリング処理を行う。
【０１２３】
続くステップ７１０では、サンプリングデータの取得回数を示すカウンタであるＡ／Ｄ回数の値が、所定の判定値であるＡ／Ｄ回数制限値（ここではサンプル数６４）以上であるか否かを判定する。ここで肯定判断されるとステップ７２０に進み、一方否定判断されると一旦本処理を終了する。
【０１２４】
ステップ７２０では、Ａ／Ｄ回数を０にセットする。
続くステップ７３０では、前記６４個のサンプリングデータのうち、ノイズ発生領域の例えばＸ２１〜Ｘ３０の１０個のサンプリングデータの値を固定値（例えば０）とする。
【０１２５】
続くステップ７４０では、全てのサンプリングデータ（即ち６４個のサンプリングデータ）が得られたので、前記実施例１と同様なＦＦＴ演算を行って、一旦本処理を終了する。
【０１２６】
ｃ）次に、本実施例２の効果を説明する。
本実施例２では、ＦＦＴ演算に必要な個数のサンプリングデータに対応した全サンプリング期間には、ノイズを除去するために設けられた（ノイズ発生領域に対応した）ノイズ除去期間が設定されている。そして、全サンプリング期間におけるサンプリングデータを取得した後に、ノイズ除去期間に対応したサンプリングデータを固定値に変更し、固定値を含む全てのサンプリングを用いてＦＦＴ演算を行って周波数解析を行う。
【０１２７】
従って、ノイズの発生し易い期間をノイズ除去期間に設定しておくことにより、ノイズの影響が少ない他の期間（ノイズ除去期間以外の期間）にて取得したサンプリングデータとノイズ除去期間の固定値とを用いて、周波数解析を行って、精度良くノッキングを検出することができる。
【０１２８】
つまり、本実施例２によれば、全サンプリング期間の途中でノイズが発生する場合に、精度良くノッキングを検出できるという利点がある。
例えば、図１３に示すように、エンジンの回転状態（回転数：回転速度）が変化すると、ノイズ（例えば着座ノイズ）の発生のタイミング（時期、期間）が変化する。具体的には、エンジンの回転数が増加すると、そうでない場合に比べて、例えば、着座ノイズの発生時期が早くなって、前記図１１に示すように、全サンプリング期間の前半にて、ノッキング信号の振動に重なるようにノイズが発生することがある。
【０１２９】
従って、このような場合には、本実施例２のように、ノイズ発生領域をノイズ除去期間として設定することにより、精度良くノッキングの検出ができる。
ここで、どのサンプリングデータがノイズ除去期間のサンプリングデータに該当するかは、エンジン回転数に対応して定まる例えば着座ノイズが発生する回転角となる時間から求めることができる。
【０１３０】
［特許請求の範囲との対応関係］
ＭＰＵのＦＦＴ演算部が、ノッキング検出装置、周波数解析部、固定値設定部の一例に相当する。
【０１３１】
尚、本発明は、上述した実施例に何ら限定されるものではなく、本発明の技術的範囲に属する限り種々の形態を採り得ることはいうまでもない。
（１）例えば、前記各実施例では、ノッキング制御装置にてノッキングの制御を行う装置について説明したが、本発明は、内燃機関用制御装置によってノッキングを制御する装置に適用できる。つまり、ノッキング制御装置にて検出されたノッキング信号等を用いて、内燃機関用制御装置にて、ノッキングを抑制する適切な点火時期を決定し、その点火時期を示す信号をイグナイタに出力するようにしてもよい。なお、この場合には、ノッキング制御装置では、イグナイタに対して点火時期を制御する信号を出力しない。
【０１３２】
（２）また、ノッキングセンサとしては、非共振型ノッキングセンサに限らず、共振型ノッキングセンサを使用でき、ノッキングを検出できれば、その種類は限定されない。
（３）さらに、本発明は、２サイクルのエンジンに適用することもできる。
【符号の説明】
【０１３３】
１…内燃機関（エンジン）
３１…点火時期制御装置
３７…内燃機関用制御装置（ＥＣＵ）
４１…ノッキングセンサ
４３…ノッキング制御装置
５７…ＭＰＵ
【図１】
0006374326.tif 000002
【図２】
0006374326.tif 000003
【図３】
0006374326.tif 000004
【図４】
0006374326.tif 000005
【図５】
0006374326.tif 000006
【図６】
0006374326.tif 000007
【図７】
0006374326.tif 000008
【図８】
0006374326.tif 000009
【図９】
0006374326.tif 000010
【図１０】
0006374326.tif 000011
【図１１】
0006374326.tif 000012
【図１２】
0006374326.tif 000013
【図１３】
0006374326.tif 000014