(57)【要約】    【課題】ＦＦＴ等の周波数変換手段による振動解析を用い、ノッキングの発生を高精度に検知する。    【解決手段】燃焼圧力波形に対し、ウィンドウＦＦＴを施し、それぞれのウィンドウにおける燃焼圧力（＝Ｐｃｙｌ）の振動強度ＦＦＴｉを算出する。算出したＦＦＴｉのうち、最大のものが得られたウィンドウ（＝ｗ２）を特定し、そのウィンドウに対応する時期を始期として解析期間を設定する。解析期間の長さは、エンジン回転数に応じて設定する。また、エンジン回転数が高いときほどウィンドウのオーバーラップを延長する。【選択図】  図１０
2005090250.tif 000002
【特許請求の範囲】
【請求項１】
燃焼時における筒内圧力の振動成分を検出する筒内圧力検出手段と、
所定のクランク角位置から開始する期間として予め設定された第１の期間において、筒内圧力検出手段により検出した圧力を記憶する圧力記憶手段と、
記憶した圧力をもとに、ノッキングの特徴を示すものとして設定された所定の周波数帯の振動強度を時系列順に算出する振動強度演算手段と、
算出した振動強度をもとに、前記第１の期間よりも短い第２の期間を設定する期間設定手段と、
設定した第２の期間に振動強度演算手段により算出した少なくとも１つの振動強度をもとに、エンジンにノッキングが発生しているか否かを判定するノック判定手段と、を含んで構成されるエンジンのノック制御装置。
【請求項２】
期間設定手段は、前記第２の期間を、振動強度演算手段により算出した振動強度の前記第１の期間における最大値が得られる時期から開始する期間として設定する請求項１に記載のエンジンのノック制御装置。
【請求項３】
期間設定手段は、前記第２の期間を、前記第１の期間の終期以前に終了するように設定する請求項１又は２に記載のエンジンのノック制御装置。
【請求項４】
振動強度算出手段は、エンジン回転数に応じ、個々の振動強度を、時間に関してオーバーラップする複数の期間のそれぞれに対応するものとして算出する請求項１〜３のいずれかに記載のエンジンのノック制御装置。
【請求項５】
振動強度算出手段は、エンジン回転数が高いときほど前記振動強度を算出する期間のオーラーラップを延長する請求項４に記載のエンジンのノック制御装置。
【請求項６】
振動強度を算出する期間がオーバーラップする場合に、ノック判定手段は、振動強度算出手段により算出した振動強度を時間に関して平均するとともに、平均した振動強度に基づいてノッキングが発生しているか否かを判定する請求項４又は５に記載のエンジンのノック制御装置。
【請求項７】
ノック判定手段は、ノッキングが発生しているか否かの判定に際し、振動強度算出手段により算出した振動強度を所定のクランク角当たりのものに変換する請求項１〜６のいずれかに記載のエンジンのノック制御装置。
【請求項８】
ノック判定手段の判定結果に応じて点火時期を変更する手段を更に含んで構成される請求項１〜７のいずれかに記載のエンジンのノック制御装置。
【請求項９】
所定のクランク角位置から開始する期間として予め設定された第１の期間において、振動成分を含んで燃焼圧力を検出するとともに、検出した燃焼圧力をもとに、ノッキングの特徴を示すものとして設定された周波数帯の振動強度を時系列順に算出していき、
算出した振動強度をもとに、前記第１の期間よりも短く、前記第１の期間に含まれる第２の期間を設定し、
設定した第２の期間について前記周波数帯の振動強度として算出される少なくとも１つの振動強度をもとに、エンジンにノッキングが発生しているか否かを判定し、
ノッキングが発生していると判定したときは、ノッキングを抑制するための制御を行うエンジンのノック制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、エンジンのノック制御装置に関し、詳細には、高速フーリエ変換（以下「ＦＦＴ」という。）等を用いた振動解析によるノック判定の結果をもとに、ノッキングを抑制する技術に関する。
【背景技術】
【０００２】
エンジンのノック制御装置として、次のものが知られている。クランク角に関して所定の解析期間が設定され、この解析期間において、燃焼圧力を検出し、検出した燃焼圧力の振動成分をもとに、エンジンにノッキングが発生しているか否かを判定するものである（特許文献１）。ノッキングが発生していると判定したときに、点火時期を遅らせ、ノッキングを抑制することも知られている。また、ノック判定をＦＦＴを用いた振動解析により行うことが知られている。すなわち、燃焼圧力波形を所定の時間帯ごとに区切り、各時間帯における燃焼圧力の振動成分をＦＦＴにより順に解析していく。得られた周波数スペクトルのうち、ノッキングの特徴を示すものとして設定された周波数帯のレベルを算出し、これをその期間帯におけるノック音の振動強度として検出する。検出した振動強度を解析期間全体に渡って積算し、その積算値の大きさによりノッキングが発生しているか否かを判定するのである。
【特許文献１】特開平０９−１２６０３９号公報（段落番号００４７〜００４９）
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、上記の振動解析によるノック判定には、次のような問題がある。すなわち、燃焼圧力の解析期間がクランク角に関して常に同じ時期（例えば、上死点後１０〜６０°）に設定され、ノッキングの発生がそのような一定の解析期間に検出した燃焼圧力に基づいて判定されることである。燃焼圧力波形のうち、大きなノック音を含む波形部分は、種々の条件によりその検出時期が前後し得るところ、そのような波形部分が確実に解析の対象となるようにするには、余裕を持たせて解析期間を長く設定することが必要となる。そして、このように解析期間を長く設定した場合は、ノック判定には本来必要のない、ノック音が比較的に小さい波形部分も解析の対象となり、その波形部分に含まれるノック音以外のノイズ成分もノック判定に反映されることとなる。このため、しきい値との比較によりノック判定を行う場合は、ノイズ成分が大きい分、しきい値を大きめに設定することが必要となり、ノッキングの発生を容易、かつ確実に検知し得るとは限らなかった。
【０００４】
本発明は、燃焼圧力波形のうち、大きなノック音を含むか、あるいはその蓋然性が高い波形部分を特定し、その結果に応じてノック判定毎に最適な解析期間を設定することで、ノッキングの発生を容易、かつ確実に検知し、発生したノッキングを抑制することを目的とする。
【課題を解決するための手段】
【０００５】
本発明は、エンジンにノッキングが発生したことを検知するとともに、発生したノッキングを抑制する装置を提供する。本発明に係る装置は、所定のクランク角位置から開始する期間として予め設定された第１の期間において、振動成分を含んで燃焼圧力を検出するとともに、検出した燃焼圧力をもとに、ノッキングの特徴を示すものとして設定された周波数帯（以下「特徴周波数帯」という。）の振動強度を時系列順に算出していく。そして、算出した振動強度をもとに、前記第１の期間よりも短く、前記第１の期間に含まれる第２の期間を設定し、設定した第２の期間について特徴周波数帯の振動強度として算出される少なくとも１つの振動強度をもとに、エンジンにノッキングが発生しているか否かを判定する。ノッキングが発生していると判定したときは、発生したノッキングを抑制するための制御を行う。そのような制御として、点火時期を遅らせるのが好ましい。
【発明の効果】
【０００６】
本発明によれば、第１の期間において、特徴周波数帯の振動強度を時系列順に算出していき、算出した振動強度をもとに、実質的な解析期間として第２の期間を設定することとした。このため、ノック判定に際し、時系列順に算出した振動強度により燃焼圧力波形全体の傾向をつかんだうえで、大きなノック音を含むか、あるいはその蓋然性が高い波形部分に対応させて最適な第２の期間を設定することができるので、ノイズ成分の影響を相対的に小さく抑え、判定精度を向上させることができる。
【発明を実施するための最良の形態】
【０００７】
以下に図面を参照し、本発明の実施の形態について説明する。
図１は、本発明の一実施形態に係るノック制御装置を備える自動車用エンジン（以下「エンジン」という。）１の構成を示している。
エンジン１は、直噴式のエンジンである。吸気通路１１には、スロットル弁１２が設置されている。吸入空気は、スロットル弁１２により流量が調整され、吸気弁１４の開期間に筒内に流入する。スロットル弁１２の上流には、エアフローメータ１３が設置されている。エアフローメータ１３により吸入空気の流量が検出される。エンジン１の本体には、燃焼室に臨ませてインジェクタ１５及び点火プラグ１６が設置されている。吸入空気に対し、インジェクタ１５から運転状態に応じた量の燃料が噴射されるとともに、形成された混合気に対し、点火プラグ１６により点火が行われる。排ガスは、排気弁１７の開期間に排気通路１８に排出される。エンジン１の本体には、クランク角センサ１９及び冷却水温度センサ２０が設置されるとともに、筒内圧力センサ２１が設置されている。クランク角センサ１９の検出信号は、次に述べるコントロールユニット２２において、エンジン回転数Ｎｅの算出に用いられる。筒内圧力センサ２１は、圧力の振動成分に感応する圧電素子を含んで構成されるものであり、そのようなものとして、いわゆるノックセンサを採用することができる。エアフローメータ１３、クランク角センサ１９、冷却水温度センサ２０及び筒内圧力センサ２１の検出信号は、コントロールユニット２２に出力される。コントロールユニット２２は、入力した信号をもとに、通常の条件に従って燃料噴射量及び点火時期を演算するとともに、演算結果に応じてインジェクタ１５及び点火プラグ１６を作動させる。また、コントロールユニット２２は、以下に述べるようにエンジン１にノッキングが発生しているか否かを判定し、ノッキングが発生していると判定した場合は、発生したノッキングを抑制するための制御として、上記の演算結果に対して点火時期を遅らせて設定する。
【０００８】
次に、コントロールユニット２２の構成を、図２に示すブロック図により説明する。
ブロック（以下、図２の説明に際して「Ｂ」と略す。）１では、筒内圧力センサ２１の出力を、ＡＤコンバータのダイナミックレンジに適合させる。
Ｂ２では、コントロールユニット２２内のＡＤコンバータを作動させ、アナログ値の筒内圧力Ｐｃｙｌをディジタル値に変換する。ディジタル値への変換は、Ｂ３で設定する検出期間（「第１の期間」に相当する。）に行う。
【０００９】
Ｂ３では、検出期間を、上死点後のクランク角（以下「ＡＴＤＣ」という。）で１０〜６０°に設定する。
Ｂ４では、ディジタル値の筒内圧力ＰｃｙｌにＦＦＴ処理を施す。ＦＦＴ処理は、検出期間を複数のウィンドウに区切り、ウィンドウ毎に行う。ＦＦＴ処理により、特徴周波数帯のそれぞれに対応させて、次に示すドレーパの式（１）により算出される５つの共振モードのレベル（以下「振動強度」という。）を算出する。なお、（１）式において、ｆｉ（ｉ＝１〜５）をモード毎の共振周波数、Ｃを雰囲気音速、Ｂをシリンダボア径、ρｍｎをモード別係数とする。モード別係数ρｍｎは、共振モードの形態に応じた値に設定され（図３）、添え字ｍは、径方向振動の次数を、ｎは、周方向振動の次数を示す。ＦＦＴ処理の結果は、コントロールユニット２２内の記憶装置に保存する。
【００１０】
ｆｉ＝Ｃ×ρｍｎ／（π×Ｂ）  ・・・（１）
Ｂ５では、ＦＦＴ処理の結果をもとに、筒内圧力の周波数別強度ＫＤＬｉを演算する。周波数別強度ＫＤＬｉの演算は、ＦＦＴ処理により得た振動強度ＦＦＴｉ（ｉ＝１〜５）を共振周波数毎に積算して行う。ここで、振動強度ＦＦＴｉの積算は、Ｂ６で設定する解析期間（「第２の期間」に相当する。）に含まれるウィンドウに対応するもののみについて行う。
【００１１】
Ｂ６では、解析期間を設定する。エンジン回転数Ｎｅに応じて解析期間の長さＴｇａｔｅを設定するとともに、振動強度ＦＦＴｉに応じて解析期間の始期を設定する。解析期間の長さＴｇａｔｅは、エンジン回転数Ｎｅが高いときほどクランク角に関して短縮して設定する。
Ｂ７では、バックグラウンドレベルＢＧＬを演算する。本実施形態では、周波数別強度の加重平均値ＫＤＬａｖｅｉをバックグラウンドレベルＢＧＬとする。
【００１２】
Ｓ８では、周波数別強度ＫＤＬｉとバックグラウンドレベルＢＧＬとの差分ΔＫＤＬｉを算出する。
Ｂ９では、差分ΔＫＤＬｉと、Ｂ１０で設定するしきい値ＳＬｉとを比較し、差分ΔＫＤＬｉのほうが大きい場合に、エンジン１にノッキングが発生していると判定する。
Ｂ１０では、しきい値ＳＬｉを、エンジン回転数Ｎｅに応じた値に設定する。
【００１３】
Ｂ１１では、ノッキングの発生を検知した場合に、発生したノッキングを抑制するため、点火時期を通常値に対して所定のクランク角だけ遅らせて設定するとともに、その後点火時期を徐々に進めていく制御を行う。例えば、ノッキングの発生を検知したことにより点火時期を比較的に大きな第１の角度だけ一気に遅らせた後、所定の時間当たりに第１の角度よりも小さい第２の角度ずつ進めていく。
【００１４】
次に、コントロールユニット２２の動作を、図４〜６に示すフローチャートにより説明する。
図４は、振動強度演算ルーチンのフローチャートである。このルーチンは、図7に示す検出開始割込タイミング（＝ＡＴＤＣ１０°）において、対応する気筒ｊについて実行される。なお、以下の説明において、気筒番号（例えば、１〜４）をｊで表す。
【００１５】
Ｓ１０１では、イニシャライズ処理を行う。
Ｓ１０２では、ＡＤコンバータを作動させ、筒内圧力Ｐｃｙｌのディジタル値への変換を開始する。
Ｓ１０３では、変換した筒内圧力Ｐｃｙｌをサンプリングする。ここで、１回のＦＦＴ処理に際してサンプリングするデータ数Ｎｓｍｐは、６４に設定している。
【００１６】
Ｓ１０４では、エンジン回転数Ｎｅが所定値Ｎｅ１よりも高いか否かを判定する。Ｎｅ１よりも高いときは、Ｓ１０５へ進み、Ｎｅ１以下であるときは、Ｓ１０６へ進む。Ｎｅ１は、低回転域と高回転域とを隔てるエンジン回転数として、例えば、３０００ｒｐｍに設定する。
Ｓ１０５では、現在のウィンドウによるサンプル数が所定値Ｎｈであるか否かを判定する。Ｎｈであるときは、Ｓ１０７へ進み、Ｎｈでないときは、Ｓ１０８へ進む。Ｎｈは、所定値Ｎｓｍｐを倍数に持つ値として、例えば、１６に設定する。
【００１７】
Ｓ１０６では、現在のウィンドウによるサンプル数が所定値Ｎｌであるか否かを判定する。Ｎｌであるときは、Ｓ１０７へ進み、Ｎｌでないときは、Ｓ１０８へ進む。Ｎｌは、所定値Ｎｓｍｐを倍数に持ち、かつＮｈよりも大きな値として、例えば、６４に設定する。
Ｓ１０７では、次のウィンドウを起動し、そのウィンドウによるサンプリングを開始する。すなわち、本実施形態では、エンジン回転数ＮｅがＮｅ１よりも高い高回転時において、サンプル数がＮｈ（＝１６）に達した時点で次のウィンドウによるサンプリングを開始することで、ウィンドウをオーバーラップさせることとしている。他方、低回転時に関する所定値Ｎｌを所定値Ｎｓｍｐに等しい６４に設定することで、ウィンドウをオーバーラップさせないこととしている。
【００１８】
Ｓ１０８では、サンプル数が所定値Ｎｓｍｐに達したか否かを判定する。Ｎｓｍｐに達したときは、Ｓ１０９へ進み、達していないときは、Ｓ１０３へ戻り、筒内圧力Ｐｃｙｌのサンプリングを継続する。
Ｓ１０９では、サンプリングした６４個の筒内圧力Ｐｃｙｌに対してＦＦＴ処理を施し、共振周波数毎の振動強度ＦＦＴｉを算出する。
【００１９】
Ｓ１１０では、算出した振動強度ＦＦＴｉを記憶装置に保存する。
Ｓ１１１では、今回のノック判定に際して実行したＦＦＴ処理の回数ｎを１だけカウントアップする。
Ｓ１１２では、カウントアップ後のＦＦＴ実行回数ｎが所定値Ｎｍａｘに達したか否かを判定する。Ｎｍａｘに達したときは、このルーチンを終了し、達していないときは、Ｓ１０３へ戻り、次のウィンドウにより筒内圧力Ｐｃｙｌをサンプリングする。なお、Ｎｍａｘは、検出期間（＝ＡＴＤＣ１０〜６０°）に収まり得るウィンドウの数の最大値に設定する。
【００２０】
図５は、ノック判定ルーチンのフローチャートである。このルーチンは、図7に示す検出終了割込タイミング（＝ＡＴＤＣ６０°）において、対応する気筒ｊについて実行される。
Ｓ２０１では、ＡＤコンバータを停止させ、筒内圧力Ｐｃｙｌのディジタル値への変換を終了する。
【００２１】
Ｓ２０２では、解析期間の長さＴｇａｔｅを設定する。Ｔｇａｔｅの設定は、エンジン回転数Ｎｅにより図８に示すテーブルを検索して行い、Ｎｅが高いときほどクランク角に関して短い期間として設定する。本実施形態では、扱いの容易さのため、解析期間の長さをＦＦＴ実行回数として設定することとし、Ｎｅが所定値Ｎｅ１よりも高いときは、Ｔｇａｔｅ＝Ｔｇａｔｅ１に、Ｎｅ１以下であるときは、Ｔｇａｔｅ＝Ｔｇａｔｅ２（＞Ｔｇａｔｅ１）に設定する。本実施形態では、Ｎｅが所定値Ｎｅ１よりも高いときに、Ｔｇａｔｅを一定の長さ（＝Ｔｇａｔｅ１）に設定することとしているが、このような設定に代え、ＮｅとＮｅ１との差（＝Ｎｅ−Ｎｅ１）に応じ、この差が大きいときほど、ＴｇａｔｅをＴｇａｔｅ２からＴｇａｔｅ１に向けて多段階に短縮させるようにしてもよい。
【００２２】
Ｓ２０３では、カウント値ｍ，ＭＡＸをともに１に設定する。
Ｓ２０４では、一方のカウント値ｍを１だけ増加させる。
Ｓ２０５では、ｍ回目のＦＦＴ処理により得た振動強度ＦＦＴｉ（ｍ）がＭＡＸ回目のＦＦＴ処理により得た振動強度ＦＦＴｉ（ＭＡＸ）よりも大きいか否かを判定する。ＦＦＴｉ（ＭＡＸ）よりも大きいときは、Ｓ２０６へ進み、ＦＦＴｉ（ＭＡＸ）以下であるときは、Ｓ２０７へ進む。なお、Ｓ２０５の処理に関し、ＦＦＴ処理により得られる振動強度ＦＦＴｉは、共振周波数毎に全部で５つあるが、ここでは、そのうちの１つを適宜に選択して行う。周波数番号ｉ＝１のもの（図３）は、ノック音以外のノイズ成分が大きく影響する傾向にあるので、それ以外のものとして、例えば、ｉ＝２のものを採用する。
【００２３】
Ｓ２０６では、カウント値ＭＡＸをｍに設定する。すなわち、カウント値ＭＡＸは、検出期間において、最大の振動強度が得られたＦＦＴ処理の番号を示す。例えば、ＭＡＸ＝３である場合は、検出期間の開始から現在までに得た振動強度のうち、３回目のＦＦＴ処理により得た振動強度ＦＦＴｉ（３）が最大であることを示す。
Ｓ２０７では、カウント値ｍが所定値Ｎｍａｘから解析期間の長さＴｇａｔｅを減じた値に達したか否かを判定する。この値（＝Ｎｍａｘ−Ｔｇａｔｅ）に達したときは、Ｓ２０８へ進み、達していないときは、Ｓ２０４へ戻り、その次のＦＦＴ処理により得た振動強度ＦＦＴｉ（ｍ＋１）と、ＦＦＴｉ（ＭＡＸ）との比較を行う。
【００２４】
Ｓ２０８では、積算周波数別強度σＦＦＴｉを演算する。σＦＦＴｉの演算は、ＭＡＸ回目からＭＡＸ＋Ｔｇａｔｅ回目までのＦＦＴ処理により得た各振動強度を、共振周波数毎に積算して行う。
Ｓ２０９では、エンジン回転数Ｎｅが所定値Ｎｅ１よりも高いか、すなわち、ＦＦＴ処理に際してウィンドウをオーバーラップさせたか否かを判定する。Ｎｅ１よりも高いときは、Ｓ２１０へ進み、Ｎｅ１以下であるときは、Ｓ２１１へ進む。
【００２５】
Ｓ２１０では、積算周波数別強度σＦＦＴｉに対し、下式（２），（３）によりウィンドウをオーバーラップさせた分の面積補正を施し、得た値を改めて積算周波数別強度σＦＦＴｉに設定する。なお、（３）式において、Ｎｏｌは、ウィンドウがオーバーラップする時間（＝Ｎｓｍｐ−Ｎｈ）を示す。
σＦＦＴｉ＝σＦＦＴｉ×Ｎｈｏｓ／（Ｔｇａｔｅ×Ｎｓｍｐ）  ・・・（２）
Ｎｈｏｓ＝Ｔｇａｔｅ×Ｎｓｍｐ−Ｎｏｌ×（Ｔｇａｔｅ−１）  ・・・（３）
ここで、Ｓ２１０における面積補正の概念を、図９により説明する。本実施形態では、高回転時にウィンドウをオーバーラップさせることとしており、前述の通りＮｓｍｐを６４、Ｎｈを１６としたことから、ウィンドウがオーバーラップする時間Ｎｏｌは、これらの差、すなわち、４８である。このような設定のもと、例えば、解析期間の長さＴｇａｔｅを６として積算周波数別強度σＦＦＴｉを算出した場合を想定する。この場合において、６つのウィンドウは、１／４の長さずつずれて設定されることとなり、積算周波数別強度σＦＦＴｉ、延いては周波数別強度ＫＤＬｉに対する時間毎の振動強度ＦＦＴｉの反映度合いが異なることとなり、図中Ａで示す初めの期間と、Ｂで示す終りの期間とでその度合いが相対的に小さくなる。（２）式は、積算周波数別強度σＦＦＴｉを、ウィンドウがオーバーラップしない場合のものに変換するものである。（２）式による面積補正の結果、時間帯によらずそれぞれの振動強度ＦＦＴｉが等しく周波数別強度ＫＤＬｉに反映されることとなる。
【００２６】
Ｓ２１１では、積算周波数別強度σＦＦＴｉを、クランク角に関して正規化する。本実施形態では、この正規化として、積算周波数別強度σＦＦＴｉを、下式（４），（５）によりＡＴＤＣ１０〜６０°、すなわち、検出期間当たりのものに変換することとする。なお、（４）式において、１回のノック判定に際してサンプリングする延べデータ数をＮｓｍｐａｌｌとする。
【００２７】
σＦＦＴｉ＝σＦＦＴｉ×｛Ｎｓｍｐａｌｌ−Ｎｏｌ×（Ｎｍａｘ−１）｝／Ｎｈｏｓ  ・・・（４）
Ｎｓｍｐａｌｌ＝Ｎｍａｘ×Ｎｓｍｐ  ・・・（５）
Ｓ２１２では、正規化したσＦＦＴｉをもとに、図６に示すフローチャートに従いノック判定を行う。
【００２８】
図６に示すフローチャートにおいて、Ｓ３０１では、気筒ｊについて前回にノック判定を行った際の判定結果をクリアする。
Ｓ３０２では、周波数別強度ＫＤＬｉを演算する。ＫＤＬｉの演算は、積算周波数別強度σＦＦＴｉを読み込むとともに、読み込んだσＦＦＴｉをエンジン回転数Ｎｅで除算して行う。
【００２９】
ＫＤＬｉ＝σＦＦＴｉ／Ｎｅ  ・・・（６）
Ｓ３０３では、バックグラウンドレベルＢＧＬを演算する。本実施形態では、バックグラウンドレベルＢＧＬを、周波数別強度の加重平均値（以下「平均周波数別強度」という。）ＫＤＬａｖｅｉとし、下式（７）により算出する。なお、前回のノック判定に際してこのＳ３０３で算出した平均周波数別強度を、ＫＤＬａｖｅｉn-1とする。
【００３０】
ＢＧＬ＝ＫＤＬａｖｅｉ＝（ＫＤＬｉ＋１５×ＫＤＬａｖｅｉn-1）／１６  ・・・（７）
Ｓ３０４では、Ｓ−Ｎ差分ΔＫＤＬｉを演算する。Ｓ−Ｎ差分ΔＫＤＬｉは、周波数別強度ＫＤＬｉとバックグラウンドレベルＢＧＬとの差であり、ΔＫＤＬｉの演算は、周波数別強度ＫＤＬｉから平均周波数別強度ＫＤＬａｖｅｉを減算して行う。
【００３１】
ΔＫＤＬｉ＝ＫＤＬｉ−ＫＤＬａｖｅｉ  ・・・（８）
Ｓ３０５では、算出したＳ−Ｎ差分ΔＫＤＬｉがノック判定のためのしきい値ＳＬｉ以下であるか否かを判定する。しきい値ＳＬｉは、エンジン回転数Ｎｅに応じて共振周波数毎に設定される。共振周波数に応じたそれぞれの周波数別強度ＫＤＬｉのすべてがＳＬｉ以下であるときは、Ｓ３０６に進み、周波数別強度ＫＤＬｉのうち、ＳＬｉよりも大きいものが１つでもあるときは、ノック音を検出したものとしてＳ３０７へ進む。
【００３２】
Ｓ３０６では、気筒ｊについてノッキングが発生していないとの判定を下す。
Ｓ３０７では、気筒ｊについてノッキングが発生しているとの判定を下す。ＥＣＵ２２は、ノッキングが発生しているとの判定を下した場合に、図２のＢ１１に関して述べた制御を行い、発生したノッキングを抑制する。
本実施形態に関し、筒内圧力センサ２１及びＥＣＵ２２によりノック制御装置が構成される。すなわち、筒内圧力センサ２１が筒内圧力検出手段としての機能を持つ。また、ＥＣＵ２２が持つ機能のうち、図４に示すフローチャートのＳ１０３の機能が圧力記憶手段に、Ｓ１０９の機能が振動強度演算手段に相当する。図５に示すフローチャートのＳ２０２〜２０７の機能が期間設定手段に、Ｓ２０８〜２１２の機能がノック判定手段に相当する。
【００３３】
本実施形態によれば、次のような効果を得ることができる。
第１に、検出期間（＝ＡＴＤＣ１０〜６０°）を複数のウィンドウにより時間帯ごとに区切り、それぞれのウィンドウに対するＦＦＴ処理の結果として算出した振動強度ＦＦＴｉをもとに、検出期間における最大の振動強度が得られる時期から開始する期間として、ノック判定の実質的な対象を定める解析期間を設定することとした。このため、筒内圧力波形のうち、大きなノック音を含む蓋然性の高い波形部分を解析の対象として選択し、そのような波形部分に対してウィンドウを設定して、周波数別強度ＫＤＬｉを算出することができる。例えば、図１０に示すように解析期間が設定された場合に、この解析期間に収まるウィンドウとして、斜線を付したもの（低回転時についてｗ２〜ｗ４、高回転時についてｗ２，ｗ３）が設定される。その結果、算出されるＫＤＬｉにおいて、ノック音以外のノイズ成分の影響を小さく抑えることができるので、算出したＫＤＬｉと、バックグラウンドレベルＢＧＬとの差を大きくとることができ、ノッキングの発生を容易に検知することができる。
【００３４】
なお、この第１の効果に関し、図５に示すフローチャートのＳ２０７において、Ｎｍａｘ−Ｔｇａｔｅ回のＦＦＴ処理を行うまでに得た振動強度のうち、最大の振動強度が得られた時期を解析期間の始期としたことで、解析期間を確実に検出期間内に収め、所定の回数のＦＦＴ処理を行うために必要な筒内圧力Ｐｃｙｌが得られなくなることを防止することができる。
【００３５】
第２に、ＦＦＴ処理に際し、ウィンドウをエンジン回転数Ｎｅに応じた長さでオーバーラップさせることとした。このため、高回転下におけるＦＦＴ処理の実質的な分解能を向上させ、運転領域全体に渡って必要とされる判定精度を実現することができる。ここで、エンジン回転数Ｎｅが高いときほどオーバーラップを延長することで、この分解能の向上効果をより顕著なものとすることができる。他方、低回転時は、オーバーラップを短縮する（オーバーラップさせない場合を含む。）ことで、不要な演算負荷の増大を回避し、判定精度と演算負荷とを両立させることができる。
【００３６】
第３に、ウィンドウをオーバーラップさせて設定した場合に、積算周波数別強度σＦＦＴｉに対してオーバーラップ分の面積補正を施し、ウィンドウがオーバーラップしない場合のものに変換することで、時間に関して平均することとした。このため、ノック判定に際し、オーバーラップの有無又はその長さの違いに応じてしきい値の扱いを変更させる必要がなくなり、しきい値との一元的な比較によりノック判定を行うことができる。
【００３７】
第４に、ノック判定に際し、積算周波数別強度σＦＦＴｉを所定のクランク角範囲（＝ＡＴＤＣ１０〜６０°）、すなわち、検出期間当たりのものに変換することで、クランク角に関して正規化することとした。本実施形態では、エンジン回転数Ｎｅに応じて解析期間の長さを変化させるところ（図８）、算出したσＦＦＴｉをクランク角に関して正規化することで、この長さの変化により周波数別強度ＫＤＬｉに生じるバラツキを補償し、判定精度の低下を抑制することができる。
【００３８】
以上では、筒内圧力波形の周波数変換手段としてＦＦＴを採用することとしたが、ＦＦＴに代え、例えば、ウェーブレット変換を採用してもよい。
【図面の簡単な説明】
【００３９】
【図１】本発明の一実施形態に係るノック制御装置を備えるエンジンの構成
【図２】同上ノック制御装置の構成
【図３】共振モードの形態及びドレーパの式におけるモード別係数ρｍｎ
【図４】振動強度演算ルーチンのフローチャート
【図５】ノック判定ルーチンのフローチャート
【図６】同上ルーチンにおけるノック判定処理のサブルーチン
【図７】筒内圧力Ｐｃｙｌの検出開始タイミング及び検出終了タイミング
【図８】エンジン回転数Ｎｅと解析期間との関係
【図９】ウィンドウのオーバーラップに対する面積補正の概念
【図１０】検出期間と解析期間との関係
【符号の説明】
【００４０】
１…エンジン、11…吸気通路、１２…スロットル弁、１３…エアフローメータ、１４…吸気弁、１５…インジェクタ、１６…点火プラグ、１７…排気弁、１８…排気通路、１９…クランク角センサ、２０…冷却水温度センサ、２１…筒内圧力センサ、２２…コントロールユニット。
【図１】
2005090250.tif 000003
【図２】
2005090250.tif 000004
【図３】
2005090250.tif 000005
【図４】
2005090250.tif 000006
【図５】
2005090250.tif 000007
【図６】
2005090250.tif 000008
【図７】
2005090250.tif 000009
【図８】
2005090250.tif 000010
【図９】
2005090250.tif 000011
【図１０】
2005090250.tif 000012