【実施例1】
【0033】
本実施例1のノッキング検出装置は、汎用エンジンや2輪車用エンジンなどの各種のエンジン(内燃機関)のノッキングを検出する装置である。なお、以下では、4サイクルの2輪車用エンジンを例に挙げて説明する。
【0034】
a)まず、本実施例1のノッキング検出装置を備えた内燃機関のシステム全体について説明する。
図1に示す様に、エンジン1は、エンジン本体3と、エンジン本体3に空気を導入する吸気管5と、吸入空気量を検出するエアフローメータ7と、吸入空気量を調整するスロットルバルブ9と、スロットルバルブ9の開度を検出するスロットル開度センサ11と、燃焼室13内に空気を導入する吸気マニホールド15と、燃料を吸気マニホールド15内に噴射する燃料噴射弁17と、エンジン本体3から(燃焼後の)空気を排出する排気マニホールド19と、排気マニホールド19から排出される排気から空燃比を検出する空燃比センサ(又は酸素センサ)21などを備えている。
【0035】
また、エンジン本体3のシリンダヘッド23には、点火プラグ25が取り付けられ、エンジン本体3には、エンジン回転数(回転速度)を検出するエンジン回転数センサ27や、クランク角(回転角)を検出するクランク角センサ29が取り付けられている。
【0036】
更に、エンジン本体3には、後述する点火時期制御装置31が取り付けられている。この点火時期制御装置31には、イグナイタ33が接続され、イグナイタ33には点火コイル35が接続され、点火コイル35は点火プラグ25に接続されている。
【0037】
また、エンジン1には、エンジン本体3等の運転状態(例えばエンジン回転数や空燃比センサ21の出力に基づく空燃比フィードバック制御など)を総合的に制御する内燃機関用制御装置(エンジンコントロールユニット)37が設けられている。この内燃機関用制御装置37は、図示しないが、周知のRAM、ROM、CPU等を有するマイコンを備えた電子制御装置(ECU)である。
【0038】
内燃機関用制御装置37の入力ポート(図示せず)には、エアフローメータ7、スロットル開度センサ11、空燃比センサ21、エンジン回転数センサ27、クランク角センサ29、点火時期制御装置31が接続されており、これらの各機器からの信号(センサ信号等)が入力ポートに入力する。
【0039】
一方、内燃機関用制御装置37の出力ポート(図示せず)には、燃料噴射弁17、点火時期制御装置31が接続されており、これらの機器に対して、内燃機関用制御装置37から、各機器の動作を制御するための制御信号が出力される。
【0040】
b)次に、点火時期制御装置31について説明する。
点火時期制御装置31は、ノッキングセンサ41とノッキング制御装置43とが、接続ケーブル45を介して、電気的及び機械的に分離不可能に一体に構成されている。なお、ノッキングセンサ41とノッキング制御装置43とは、電気的に接続されていればよく、分離可能であってもよい。また、ノッキング制御装置43は、内燃機関用制御装置37に含まれていてもよい。
【0041】
このうち、ノッキングセンサ41は、周知の圧電素子(図示せず)を用いた非共振型ノッキングセンサであり、取付用ボルト(図示せず)によってエンジン本体3のシリンダブロック49(
図1参照)に固定される。
【0042】
また、ノッキング制御装置43は、後に詳述するように、ノッキングを検出する機能と点火時期を調整する機能とを有する制御装置であり、前記内燃機関用制御装置37と同様に、周知のRAM、ROM、CPU等を有するマイコン(図示せず)を備えた電子制御装置である。
【0043】
なお、ノッキング制御装置43のうち、ノッキング検出の機能を有する部分(後述するFFT演算部63:
図2参照)が本発明のノッキング検出装置に相当する。
c)次に、ノッキング制御装置43の電気的構成について説明する。
【0044】
図2に示すように、ノッキング制御装置43は、バッテリー(図示せず)に接続された電源回路51と、ノッキングセンサ41に接続されたフィルター回路53と、イグナイタ33に接続された点火時期出力回路55と、各種の演算等を行うマイクロプロセッサ(MPU)57とを備えている。
【0045】
このうち、電源回路51は、バッテリーから供給される電力(VB電圧12Vの直流電流)を、5Vの直流に変換してMPU57に供給する回路である。
フィルター回路53は、ノッキングセンサ41から出力される信号のうち、ノッキングの検出に不要な高周波成分を除去するバンドパスフィルタである。このフィルター回路53にてフィルタリングされたノッキング信号が、MPU57(詳しくはA/D変換部61)に出力される。
【0046】
点火時期出力回路55は、MPU57(詳しくは点火時期制御部67)から出力される点火時期を示す点火時期信号を、バッファ回路(図示せず)を介し、イグナイタ33に対して出力する回路である。
【0047】
MPU57は、自身の処理内容を機能的に示すと、ノッキング信号をA/D変換するA/D変換部61と、A/D変換されたノッキング信号を用いてFFT演算を行うFFT演算部63と、FFT演算結果に基づいてノッキングの判定を行うノッキング判定部65と、ノッキングの判定結果に基づいて点火時期を制御する点火時期制御部67とを備えている。
【0048】
詳しくは、FFT演算部63では、後述するサンプリング期間におけるサンプリングデータを用いて、周知のFFT演算を行って、周波数解析を行う。この周波数解析により、例えばノッキングが発生している場合には、ノッキングを示す所定の周波数にて顕著なピークを有するパワースペクトルが得られる。
【0049】
ノッキング判定部65では、FFT演算による周波数解析の結果に基づいて、ノッキングの発生の有無を判定する。例えば、ノッキングを示すような所定の周波数にて、所定値より大きなピークが得られるか否かを判定し、大きなピークが得られた場合等には、ノッキングが発生したと判定する。
【0050】
点火時期制御部67では、内燃機関用制御装置37から得られる基準点火信号(A)に基づいて、点火時期の調整を行って、点火時期出力回路55に対して、基準点火信号(A)を補正した補正点火信号(B)である点火時期信号を出力する。
【0051】
d)次に、点火時期制御の基本的な動作について説明する。
内燃機関用制御装置37では、例えばエンジン回転数や吸入空気量などに基づいて、点火時期の基準となる基準点火時期を決定する。この基準点火時期とは、エンジン1毎のばらつきや気候変化等を考慮したときにも当該エンジン1が破損しないような十分なマージンを持って設定された点火時期を、エンジン1の運転状態毎に複数設定したマップを用いた上で、このマップと現在の運転状態とを対応(照合)して設定されるベースとなる点火時期(即ち、ノッキング制御装置43によって調整される対象の点火時期)である。
【0052】
この内燃機関用制御装置37にて決定された基準点火時期を示す決定する基準点火信号(A)が、ノッキング制御装置43に対して出力される。
基準点火信号(A)を受信するノッキング制御装置43(詳しくはMPU57)では、ノッキングセンサ41からの信号(ノッキング信号)を受信し、そのノッキング信号に基づいて、ノッキングの発生の有無を検出する。
【0053】
そして、ノッキングの発生状態等に応じて、点火時期を調整(補正)して、補正点火時期を決定する。なお、この補正点火時期を示す信号が、補正点火信号(B)である。
具体的には、例えば、ノッキングが発生していない場合には、所定期間毎に、点火時期を最大進角に至るまで徐々に進角させ、ノッキングが発生すると基準点火時期に戻すように、補正点火時期を設定する。
【0054】
次に、上述のように補正点火時期が決定されると、ノッキング制御装置43から、点火時期出力回路55を介して、イグナイタ33に対し、点火時期信号である補正点火信号(B)が出力される。
【0055】
イグナイタ33では、パワートランジスタ(図示せず)のベースに、補正点火信号(B)が与えられると、この補正点火信号(B)のオン・オフに応じてスイッチング動作が行われる。
【0056】
詳しくは、
図3に示すように(点火時期信号参照)、補正点火信号(B)がオフ(ローレベル:一般にグランド電位)である場合には、ベース電流が流れずパワートランジスタはオフ状態(遮断状態)となり、一次巻線に電流(一次電流i1)が流れることはない。また、補正点火信号(B)がオン(ハイレベル:ノッキング制御装置43からの正の電圧が供給される状態)である場合には、ベース電流が流れてパワートランジスタはオン状態(通電状態)となり、一次巻線に電流(一次電流i1)が流れる。この一次巻線への通電により、点火コイル35に磁束エネルギーが蓄積される。
【0057】
また、補正点火信号(B)がハイレベルであり一次巻線に一次電流i1が流れている状態で、補正点火信号(B)がローレベルになると、パワートランジスタがオフ状態となり、一次巻線への一次電流i1の通電が遮断(停止)される。すると、点火コイル35における磁束密度が急激に変化して、二次巻線に点火用電圧が発生し、これが点火プラグ25に印加されることで、点火プラグ25の中心電極と接地電極との間に火花放電が発生する。このときに二次巻線に流れる電流が二次電流i2である。
【0058】
e)次に、本実施例1の要部であるノッキング検出に必要なFFT演算等の原理について説明する。
エンジン1が回転している場合には、エンジン1の振動によって、ノッキングセンサ41からは常時信号(ノッキング信号)が出力される。
【0059】
ところが、ノッキングは、エンジン1の所定の回転角(クランク角)の期間に発生し易いので、通常は、所定の回転角の間(即ちノッキング検出期間)のみ、ノッキング信号が利用されるように設定されている。
【0060】
例えば、
図3に示すように、ノッキングは、エンジン1の点火直後の所定の回転角の期間に発生し易いので、ノッキング検出期間(従って全サンプリング期間)は、エンジン1の各点火直後の所定の回転毎に周期的に設定されている。
【0061】
なお、ノッキング検出期間は、FFT演算に必要なサンプリング数のサンプリングが可能なように、全てのサンプリング数に対応した全サンプリング期間以上に設定されている。
【0062】
このノッキング検出期間としては、エンジンの圧縮行程上死点(TDC)から10°CA後〜70°CA後(ATDC10°CA〜ATDC70°CA)の間が挙げられる。
そして、上述したノッキング検出期間(従って全サンプリング期間)にて得られたノッキング信号に基づいて、ノッキングを検出するために周知のFFT演算が行われる。
【0063】
ここで、
図4に示すように、例えば、サンプリング周期15.6μsec、サンプリング数(実効サンプリング数)64、サンプリング時間(サンプリング期間)1msec、FFT周波数分解能1kHzという条件でFFT演算を行う場合を考える。なお、ここで実効サンプリング数とは、実際のノッキング信号から得られる(1フレームの)サンプリング数である。
【0064】
この場合、通常では、A/D変換されたノッキング信号は、15.6μsec毎にサンプリングされ、X0〜X63の64個のサンプリングデータが得られる。従って、この64個のサンプリングデータを使用して、周知のFFT演算が行われる。なお、X0〜X64は、各サンプリングデータを示している。
【0065】
この場合、1kHzの分解能とするためには、64個のサンプリングデータが必要であるので、サンプリング期間は1msec必要になる。
ところが、通常、ノッキングセンサ41の出力のうち、ノッキングによる信号の変動は、サンプリング期間(即ちノッキング検出期間)の前半が多いが、後半になると、バルブの着座などによるノイズが多くなる。
【0066】
ところが、目的とする分解能を得るためには、全サンプリング期間(例えば1msec)でのサンプリングが必要になるので、サンプリング期間の後半のノイズを含む全てのサンプリングデータを用いてFFT演算を行うと、その演算結果もノイズの影響を受けてしまう。
【0067】
そこで、本実施例1では、
図5に示すように、実効サンプリング数を全サンプリングデータの半分の32とし、残りの半分(32個)のサンプリングデータの値を固定値(例えば0)とする。
【0068】
なお、この場合は、サンプリング周期15.6μsec、サンプリング数(実効サンプリング数)32、サンプリング時間0.5msec、FFT周波数分解能1kHzという条件である。
【0069】
詳しくは、サンプリング開始から32個目までのサンプリングデータ、即ち、サンプリング時間0.5msecにおけるサンプリングデータ(X0〜X31)については、従来と同様に、ノッキング信号から15.6μsec毎にサンプリングデータ取得(記憶)する。その後は、実際にノッキング信号からサンプリングを行うことなく、残り32個のサンプリングデータ(X32〜X63)の値を、所定の一定の固定値(例えば0)とする。
【0070】
そして、この固定値を含む64個のサンプリングデータを用いて、従来と同様にFFT演算を行う。
なお、前記
図3に示すように、全サンプリング期間の前半が、サンプリングデータ(X0〜X31)を取得するデータ取得期間であり、残りのサンプリングデータ(X32〜X63)に対応する期間が、固定値設定期間である。
【0071】
また、上述したノッキング信号は、実際には、ノッキング信号の振動が無い0点を中心にプラス、マイナスに振動するが、本実施例1では、前記
図4及び
図5に示すように、0点に対応する中央値が2.5Vとなるように、例えばA/D変換前に、ノッキング信号にバイアスを加えている。これにより、ノッキング信号は、振幅の中央値である2.5Vを中心にして、
図4及び
図5の上下方向に、0〜5Vの範囲で振動する信号となる。
【0072】
f)次に、本実施例1のMPU57にて実施される制御処理について説明する。
<補正点火時期算出処理>
まず、点火時期制御部67にて実施される処理のうち、基準点火信号(A)から補正点火信号(B)を算出する処理について説明する。なお、この補正点火時期算出処理は、特許第5432398号公報に記載の補正点火時期算出処理と同じであるので、簡単に説明する。
【0073】
本処理は、基準点火信号(A)に基づいて補正点火時期を算出するとともに、基準点火信号(A)を利用してエンジン回転数を算出する処理である。
図6のフローチャートに示す様に、ステップ(S)100では、タイマー記憶変数Nをリセット(0に設定)する。
【0074】
続くステップ110では、回転数格納/ノックウィンドウ(Window)変数Sをリセットする。
続くステップ120では、タイマーTの初期値T(0)を0に設定する。
【0075】
続くステップ130では、ノック検知ウィンドウKNWの初期値KNW(0)を0に設定する。このノック検知ウィンドウKNWとは、ノッキングの発生する可能性のある領域(所定の回転角の区間)を示すものであり、点火時期を起点に設定される特定の期間に相当し、ノッキング信号の解析区間(即ちノッキング検出期間)に相当するものである。
【0076】
続くステップ140では、内燃機関用制御装置37から受信した基準点火信号(A)に基づいて、基準点火時期(入力点火時期)TIGINを補正点火時期TIGとして設定する。
【0077】
続くステップ150では、点火信号間隔測定タイマーT1をリセットする。
続くステップ160では、基準点火信号(A)が入力したか否かを判定する。ここで肯定判断されるとステップ170に進み、一方否定判断されると待機する。
【0078】
ステップ170では、基準点火信号(A)が入力してからの時間を計測するために、点火信号間隔測定タイマーT1をスタートする。
続くステップ180では、再度基準点火信号(A)が入力したか否かを判定する。ここで肯定判断されるとステップ190に進み、否定判断されると待機する。
【0079】
ステップ190では、基準点火信号(A)が入力したので、前記タイマー記憶変数Nをカウントアップする。
続くステップ200では、今回(N回目)、基準点火信号(A)が入力した時間を、タイマーT(N)として記憶する。
【0080】
続くステップ210では、今回(N回目)、基準点火信号(A)が入力した時間(T(N))と、前回(N−1回目)、基準点火信号(A)が入力した時間(T(N−1))との差ΔT(N)を求める。
【0081】
続くステップ220では、「2回転×60sec/ΔT(N)」の演算(4サイクルエンジンにて1点火/2回転の場合)によって、エンジン回転数(rpm)を算出する。
続くステップ230では、回転数格納/ノックウィンドウ変数Sをカウントアップする。
【0082】
続くステップ240では、前記ステップ220で求めたエンジン回転数を、RPN(S)として格納(記憶)する。
続くステップ250では、ノック検知ウィンドウKNW(S)の演算を行う。
【0083】
続くステップ260では、回転数格納/ノックウィンドウ変数Sが2を上回るか否かを判定する。ここで肯定判断されるとステップ270に進み、一方否定判断されると前記ステップ180に戻る。
【0084】
ステップ270では、後述するノッキング検出処理を行って、ノッキングを検出する。
続くステップ280では、エンジン回転数の「RPNS(S)/RPNS(S−1)」の演算、即ち、今回(S回目)のエンジン回転数RPNS(S)を前回(S−1回目)のエンジン回転数RPNS(S−1)で割ることにより、エンジン回転数の変動の大きさを示すエンジン回転数の偏差(回転数偏差)ΔRPNを算出する。
【0085】
続くステップ290では、回転数偏差ΔRPNが所定の判定値RPNsを下回るか否かを判定する。ここで肯定判断されるとステップ300に進み、一方否定判断されるとステップ310に進む。
【0086】
ステップ310では、回転数偏差ΔRPNが大きく、点火時期を進角させることは適当ではないので、基準点火時期TIGINそのものを補正点火時期TIGとして設定し、前記ステップ180に戻る。
【0087】
一方、ステップ300では、ノッキングが発生しているか否かを、後述するノッキング検出処理にて設定されるノック検知フラグKNSが1であるか否かによって判定する。ここで肯定判断されるとステップ320に進み、一方否定判断されるとステップ330に進む。
【0088】
ステップ320では、ノッキングが発生しているので、ノッキングの発生を防止するために、点火時期を遅角する。
一方、ステップ330では、ノッキングが発生していないので、点火時期(補正点火時期TIG)が最大進角TIGMか否かを判定する。ここで肯定判断されるとステップ340に進み、一方否定判断されるとステップ350に進む。
【0089】
ステップ340では、補正点火時期TIGが最大進角TIGMであるので、その最大進角TIGMの値を補正点火時期TIGの値として設定し、前記ステップ180に戻る。
一方、ステップ350では、補正点火時期TIGが最大進角TIGMではないので、点火時期を所定値ΔTIG分進角させる。
【0090】
<ノッキング検出処理>
次に、ノッキング判定部にて実施されるノッキング検出処理について説明する。なお、このノッキング検出処理は、特許第5432398号公報に記載のノッキング検出処理と、下記のS470、S475の処理以外は基本的に同様な処理である。
【0091】
本処理は、ノッキング信号に基づいて、ノッキングを検出する処理である。本処理は所定期間毎に実施される。
図7に示す様に、ステップ400にて、ノック検知フラグKNSをクリア(0に設定)する。
【0092】
続くステップ410では、点火時期か否か(点火信号がハイレベルからローレベルになるタイミングであるか否か)を判定する。ここで肯定判断されるとステップ420に進み、一方否定判断されると一旦本処理を終了する。
【0093】
ステップ420では、ノック検知ウィンドウ測定タイマーをスタートする。
続くステップ430では、ステップ250にて演算したノック検知ウィンドウKNWに対応する期間内にあるか否か(換言すれば、ノック検知ウィンドウKNW内であるか否か)をノックウィンドウ測定タイマーの値に基づき判定する。ここで肯定判断されるとステップ440に進み、一方否定判断されると前記ステップ430に戻って同様な処理を繰り返す。
【0094】
ステップ440では、ノッキングセンサ41から得られたノッキング信号が有効であると設定する。
続くステップ450では、ステップ250にて演算したノック検知ウィンドウKNWに対応する期間が経過したか否か(換言すれば、ノック検知ウィンドウKNW外であるか否か)をノックウィンドウ測定タイマーの値に基づき判定する。ここで肯定判断されるとステップ460に進み、一方否定判断されると前記ステップ440に戻って同様な処理を繰り返す。
【0095】
ステップ460では、ノックウォンドウ測定タイマーをリセットする。
続くステップ470では、ノック検知ウィンドウKNWに対応する期間(即ちノッキング検出期間)内のサンプリングデータ、即ち、全サンプリング期間に対応するサンプリングデータに基づいて、FFT演算を行う。
【0096】
ここで、全サンプリング期間に対応するサンプリングデータとは、上述したように、データ取得期間にノッキング信号から得られたサンプリングデータと、固定値設定期間に対応して設定された固定値のサンプリングデータである。
【0097】
続くステップ475では、FFT演算の結果得られたパワースペクトルに基づいて、例えば単一の共鳴振動モードにおけるピーク(即ち、ノッキングの発生を示す所定の周波数帯におけるピーク)を抽出する。
【0098】
続くステップ480では、前記ピーク値KninPkが、ノッキングの有無を判定する所定の判定値Thを上回るか否か、即ち、ノッキングが発生したか否かを判定する。ここで肯定判断されるとステップ490に進み、一方否定判断されると一旦本処理を終了する。
【0099】
ステップ490では、ノッキングが発生しているので、そのことを示すノック検出フラグKNSをセット(1に設定)し、本処理を終了する。
<FFT関連処理>
次に、FFT演算に関する処理について説明するが、ここでは、本処理について、「(1)全体の処理ルーチン(FFT全体処理)」と「(2)A/Dサンプリング処理」と「(3)FFT演算処理」とに分けて順次説明する。
【0100】
(1)FFT全体処理
本処理は、15.6μsec毎に実施される割り込み処理である。なお、本処理は、前記
図7のステップ430にて、ノック検知ウィンドウKNWに対応する期間内に実施される処理である。
【0101】
図8に示すように、本処理では、ステップ500にて、A/Dサンプリング処理を行う。即ち、後述するように、A/D変換されたノッキング信号の値をサンプリングデータとして取得する処理等を行う。
【0102】
続くステップ510では、サンプリングデータの取得回数を示すカウンタであるA/D回数の値が、所定の判定値であるA/D回数制限値(ここではサンプル数32)以上であるか否かを判定する。ここで肯定判断されるとステップ520に進み、一方否定判断されると一旦本処理を終了する。
【0103】
ステップ520では、A/D回数を0にセットする。
続くステップ530では、FFT演算を行うための残りの32個のサンプリングデータの値を、固定値の0に設定する。
【0104】
続くステップ540では、全てのサンプリングデータ(即ち64個のサンプリングデータ)が得られたので、後述するFFT演算を行って、一旦本処理を終了する。
(2)A/Dサンプリング処理
本処理は、前記
図8のステップ500の処理である。
【0105】
本処理では、
図9に示すように、ステップ600にて、今回取得したサンプリングデータを記憶する。
続くステップ610では、A/D回数をカウントアップし、一旦本処理を終了する。
【0106】
(3)FFT演算処理
本処理は、前記
図8のステップ530の処理であり、ここでは64個のサンプリングデータを用いて、FFT演算を行う。
【0107】
このFFT演算とは、周知のように、例えば窓関数を設定し、実数部演算、実数部積算、虚数部演算、虚数部積算等の演算を行って、周波数解析を行って、周波数スペクトルを求めるものである。
【0108】
g)次に、本実施例1の効果を説明する。
本実施例1では、全サンプリング期間のうち、前半のデータ取得期間、即ち、ノッキング信号からサンプリングデータを取得するデータ取得期間にて、例えば32個のサンプリングデータを取得する。また、全サンプリング期間のうち、後半の固定値設定期間に対応する例えば32個のサンプリングデータを、予め決められた固定値(例えば0)に設定する。
【0109】
そして、データ取得期間にて取得された例えば32個のサンプリングデータと、固定値設定期間に対応する例えば32個のサンプリングデータとを用いて、FFT演算を行って、ノッキング信号の周波数解析を行う。よって、その周波数解析の結果に基づいて、精度良くノッキングを検出することができる。
【0110】
つまり、本実施例1では、サンプリングデータのうち、例えばノイズの発生が予想される範囲、ここでは後半の固定値設定期間の32個のサンプリングデータとして、予め決められた固定値を用いる。この固定値は、ノイズとは別に設定できるので、この固定値を含むサンプリングデータを用いて周波数解析を行うと、その周波数解析の結果は、ノイズの影響を受けにくいものとなる。よって、ノイズの影響が少ない周波数解析の結果に基づいて、精度良くノッキングの検出を行うことができる。
【0111】
つまり、本実施例1によれば、データ取得期間の後にノイズが発生する場合に、精度良くノッキングを検出できる。
また、本実施例1では、ノッキング信号からサンプリングを取得する期間は、全サンプリング期間の半分のデータ取得期間で済むので、サンプリング等の処理の負担が少なくて済み、処理時間を短縮できるという利点がある。
【0112】
更に、本実施例1では、固定値設定期間のサンプリングデータとして同一の固定値(例えば0)を用いる。そのため、そのサンプリングデータを用いて周波数解析を行った場合に、周波数解析は固定値の影響を受けにくいので好適である。
【0113】
h)次に、本実施例1の変形例について説明する。
本実施例1の変形例では、固定値として、ノッキング信号の振幅の中央値を用いることができる。
固定値として例えば0「ゼロ」を用いると、0に持ち替えたタイミングを含めた周波数解析演算において、演算誤差が発生する。一方、固定値として、出力信号の振幅の中央値を用いる場合には、固定値として0「ゼロ」を用いた場合に比べて、演算誤差が発生しない。よって、出力信号の振幅の中央値である固定値を設定すると、周波数解析の際に固定値を用いる影響を受けにくいという利点がある。
【0114】
また、本実施例1において、エンジンの回転状態に応じて、データ取得期間を設定することができる。
つまり、エンジンの回転状態(回転数:回転速度)が変化すると、ノイズ(例えば着座ノイズ)の発生のタイミング(時期、期間)が変化する。例えばエンジンの回転数が増加すると、そうでない場合に比べて、着座ノイズの発生時期が早くなり、発生期間が短くなる。
【0115】
従って、エンジンの回転状態に応じて、データ取得期間を設定すると、より、一層精度良くノッキングの検出ができる。
具体的には、エンジンの回転数とデータ取得期間との関連を示すマップをマイコンに保持して、エンジンの回転数に応じてデータ取得期間を設定することができる。
【実施例2】
【0116】
次に、実施例2について説明するが、前記実施例1と同様な構成については説明を省略する。なお、前記実施例1と同じ構成には同じ番号を用いて説明する。
本実施例2は、前記実施例1とは、FFT演算に用いるサンプリングデータの設定方法が異なっているので、相違点を中心にして本実施例2を説明する。
【0117】
a)まず、本実施例2の要部であるノッキング検出に必要なFFT演算等の原理について説明する。
図10に示すように、例えば、サンプリング周期15.6μsec、サンプリング数(実効サンプリング数)64、サンプリング時間1msec、FFT周波数分解能1kHzという条件でFFT演算を行う場合を考える。
【0118】
この場合、A/D変換されたノッキング信号は、15.6μsec毎にサンプリングされ、X0〜X63の64個のサンプリングデータが得られる。
ところが、64個のサンプリングデータを得る間に、ノイズ発生領域(ノイズが発生する期間)がある場合には、その範囲のサンプリングデータはノイズの影響を受けてしまう。その結果、ノイズを含む全てのサンプリングデータを用いてFFT演算を行うと、その演算結果もノイズの影響を受けてしまう。
【0119】
そこで、本実施例2では、
図11に示すように、X0〜X63の64個全てのサンプリングデータを取得した後に、ノイズ発生領域における例えばX21〜X30の10個のサンプリングデータ、即ちノイズ除去期間におけるサンプリングデータの値を固定値(例えば0)とする。
【0120】
そして、この固定値を含む64個のサンプリングデータを用いて、従来と同様にFFT演算を行う。
b)次に、本実施例2のMPU57にて実施される制御処理のうち、FFT関連処理の(1)FFT全体処理について説明する。
【0121】
なお、このFFT関連処理は、前記実施例1と同様に、「(1)全体の処理ルーチン(FFT全体処理)」と「(2)A/Dサンプリング処理」と「(3)FFT演算処理」からなる。
【0122】
(1)FFT全体処理
本処理は、15.6μsec毎に実施される割り込み処理である。
図12に示すように、本処理では、ステップ700にて、前記実施例1と同様なA/Dサンプリング処理を行う。
【0123】
続くステップ710では、サンプリングデータの取得回数を示すカウンタであるA/D回数の値が、所定の判定値であるA/D回数制限値(ここではサンプル数64)以上であるか否かを判定する。ここで肯定判断されるとステップ720に進み、一方否定判断されると一旦本処理を終了する。
【0124】
ステップ720では、A/D回数を0にセットする。
続くステップ730では、前記64個のサンプリングデータのうち、ノイズ発生領域の例えばX21〜X30の10個のサンプリングデータの値を固定値(例えば0)とする。
【0125】
続くステップ740では、全てのサンプリングデータ(即ち64個のサンプリングデータ)が得られたので、前記実施例1と同様なFFT演算を行って、一旦本処理を終了する。
【0126】
c)次に、本実施例2の効果を説明する。
本実施例2では、FFT演算に必要な個数のサンプリングデータに対応した全サンプリング期間には、ノイズを除去するために設けられた(ノイズ発生領域に対応した)ノイズ除去期間が設定されている。そして、全サンプリング期間におけるサンプリングデータを取得した後に、ノイズ除去期間に対応したサンプリングデータを固定値に変更し、固定値を含む全てのサンプリングを用いてFFT演算を行って周波数解析を行う。
【0127】
従って、ノイズの発生し易い期間をノイズ除去期間に設定しておくことにより、ノイズの影響が少ない他の期間(ノイズ除去期間以外の期間)にて取得したサンプリングデータとノイズ除去期間の固定値とを用いて、周波数解析を行って、精度良くノッキングを検出することができる。
【0128】
つまり、本実施例2によれば、全サンプリング期間の途中でノイズが発生する場合に、精度良くノッキングを検出できるという利点がある。
例えば、
図13に示すように、エンジンの回転状態(回転数:回転速度)が変化すると、ノイズ(例えば着座ノイズ)の発生のタイミング(時期、期間)が変化する。具体的には、エンジンの回転数が増加すると、そうでない場合に比べて、例えば、着座ノイズの発生時期が早くなって、前記
図11に示すように、全サンプリング期間の前半にて、ノッキング信号の振動に重なるようにノイズが発生することがある。
【0129】
従って、このような場合には、本実施例2のように、ノイズ発生領域をノイズ除去期間として設定することにより、精度良くノッキングの検出ができる。
ここで、どのサンプリングデータがノイズ除去期間のサンプリングデータに該当するかは、エンジン回転数に対応して定まる例えば着座ノイズが発生する回転角となる時間から求めることができる。
【0130】
[特許請求の範囲との対応関係]
MPUのFFT演算部が、ノッキング検出装置、周波数解析部、固定値設定部の一例に相当する。
【0131】
尚、本発明は、上述した実施例に何ら限定されるものではなく、本発明の技術的範囲に属する限り種々の形態を採り得ることはいうまでもない。
(1)例えば、前記各実施例では、ノッキング制御装置にてノッキングの制御を行う装置について説明したが、本発明は、内燃機関用制御装置によってノッキングを制御する装置に適用できる。つまり、ノッキング制御装置にて検出されたノッキング信号等を用いて、内燃機関用制御装置にて、ノッキングを抑制する適切な点火時期を決定し、その点火時期を示す信号をイグナイタに出力するようにしてもよい。なお、この場合には、ノッキング制御装置では、イグナイタに対して点火時期を制御する信号を出力しない。
【0132】
(2)また、ノッキングセンサとしては、非共振型ノッキングセンサに限らず、共振型ノッキングセンサを使用でき、ノッキングを検出できれば、その種類は限定されない。
(3)さらに、本発明は、2サイクルのエンジンに適用することもできる。