(57)【要約】【課題】ノッキング判定のために保存すべきデータ数を低減しつつ、正確なノッキング判定が可能なノッキング検出装置を提供する。【解決手段】ノックセンサ信号を一定時間ｔｓ毎にＡ／Ｄ変換してデジタル的にフィルタ処理し、そのフィルタ処理結果データからノッキングの有無を判定する装置は、１２０°ＣＡ毎に立ち下がるＴＤＣ信号の立ち下がり間隔時間Ｔを測定し、その時間Ｔから、５°ＣＡ分の時間を一定時間ｔｓで割った数値を求め、その数値を四捨五入により整数化した値Ｎを算出する。そして、ＴＤＣ信号の立ち下がり時から所定クランク角度後（例えば１０°ＣＡ後）のタイミングになると、上記一定時間（＝Ａ／Ｄ変換間隔）ｔｓ毎に算出されるフィルタ処理結果データを上記Ｎ個分ずつ積算し、積算値の数が例えば１２個になったら、その１２個の積算値（即ち６０°ＣＡ期間分の積算値）を用いてノッキング判定を行う。【選択図】  図２
2004309267.tif 000002
【特許請求の範囲】
【請求項１】
内燃機関に取り付けられたノックセンサからのアナログ信号を、一定のサンプリング間隔毎にＡ／Ｄ変換してデジタル的にフィルタ処理する信号処理手段と、
前記内燃機関の回転速度に基づいて、前記内燃機関のクランク軸が所定角度回転するのに要する時間あたりのＡ／Ｄ変換回数を表す数値を求め、その数値を整数化した値Ｎを算出する算出手段と、
前記クランク軸の回転に同期して設定される動作開始タイミングから所定期間の間、前記信号処理手段によるフィルタ処理結果データを、前記算出手段にて算出された前記Ｎ個分ずつ積算する積算手段と、
該積算手段により算出された複数の積算値を用いてノッキングの有無を判定するノック判定手段とを備え、
更に、前記算出手段は、前記積算手段が動作を開始する前毎に前記Ｎを算出すると共に、前記積算手段が動作している期間中は前記Ｎを更新しないように構成されていること、
を特徴とするノッキング検出装置。
【請求項２】
請求項１に記載のノッキング検出装置において、
前記算出手段は、
前記クランク軸が一定角度回転する毎に発生する基準信号の発生間隔を前記内燃機関の回転速度として測定し、その測定した基準信号の発生間隔に、前記一定角度と前記所定角度と前記サンプリング間隔とから決められた定数を乗じることで、前記数値を求めること、
を特徴とするノッキング検出装置。
【請求項３】
請求項１又は請求項２に記載のノッキング検出装置において、
前記算出手段は、
前記内燃機関の回転速度が所定値以下の場合、或いは、所定値以上の場合に、前記Ｎの値を予め定められた固定値にすること、
を特徴とするノッキング検出装置。
【請求項４】
請求項１ないし請求項３の何れか１項に記載のノッキング検出装置において、
前記積算手段は、動作を開始すると、積算値がａ個（ａは２以上の自然数）になるまで、前記フィルタ処理結果データを前記Ｎ個分ずつ積算すると共に、
前記ノック判定手段は、前記積算手段により算出された前記ａ個の積算値を用いてノッキングの有無を判定し、
更に、前記算出手段は、前記数値を四捨五入により整数化して前記Ｎを算出するようになっており、
前記算出手段が前記数値の小数点以下を切り捨てて前記Ｎを算出した場合には、前記ａの値が増加されるように構成されていること、
を特徴とするノッキング検出装置。
【請求項５】
請求項１ないし請求項３の何れか１項に記載のノッキング検出装置において、
前記積算手段の動作開始タイミングは、前記クランク軸の回転位置が特定の基準位置となったときに、その時点から前記内燃機関の回転速度に基づき前記クランク軸がある角度だけ回転すると予想される時刻として設定されると共に、
前記積算手段は、前記動作開始タイミングが到来して動作を開始すると、積算値が２以上の所定個数になるまで、前記フィルタ処理結果データを前記Ｎ個分ずつ積算するようになっており、
更に、前記ノック判定手段は、
前記クランク軸の回転位置が前記基準位置となるまでの前記内燃機関の回転速度と、前記クランク軸の回転位置が前記基準位置となってから前記積算手段が前記所定個数の積算値の算出を完了するまでの間の前記内燃機関の回転速度とから、前記内燃機関の加減速状態を判定し、前記積算手段により算出された前記所定個数の積算値のうちで、ノッキング判定に実際に用いられる連続した順番の複数の積算値を、前記加減速状態の判定結果に応じて選択する使用積算値選択手段を備え、
前記使用積算値選択手段によって選択された積算値を用いてノッキングの有無を判定すること、
を特徴とするノッキング検出装置。
【請求項６】
請求項５に記載のノッキング検出装置において、
前記使用積算値選択手段は、
常に一定個数の積算値を、ノッキング判定に実際に用いられる積算値として選択すること、
を特徴とするノッキング検出装置。
【請求項７】
請求項１ないし請求項３の何れか１項に記載のノッキング検出装置において、
前記積算手段の動作開始タイミングは、前記クランク軸の回転位置が特定の基準位置となったときに、その時点から前記内燃機関の回転速度に基づき前記クランク軸がある角度だけ回転すると予想される時刻として設定されると共に、
前記積算手段は、前記動作開始タイミングが到来して動作を開始すると、積算値が２以上の所定個数になるまで、前記フィルタ処理結果データを前記Ｎ個分ずつ積算するようになっており、
更に、前記ノック判定手段は、
前記クランク軸の回転位置が前記基準位置となるまでの前記内燃機関の回転速度と、前記クランク軸の回転位置が前記基準位置となってから前記積算手段が前記所定個数の積算値の算出を完了するまでの間の前記内燃機関の回転速度とから、前記内燃機関の加減速状態を判定し、
前記内燃機関の加減速が所定パーセント以内であった場合には、前記積算手段により算出された各積算値を、１番目のものから順にｍ個（ｍは２以上の自然数）毎に積算したｂ個（ｂは２以上の自然数）の積算値を用いてノッキングの有無を判定し、
前記内燃機関が所定パーセントよりも大きく減速していた場合には、前記積算手段により算出された各積算値を、１番目のものから順に前記ｍよりも多い一定の個数毎に積算したｂ個の積算値を用いてノッキングの有無を判定し、
前記内燃機関が所定パーセントよりも大きく加速していた場合には、前記積算手段により算出された各積算値を、１番目のものから順に前記ｍよりも少ない一定の個数毎に積算したｂ個の積算値を用いてノッキングの有無を判定すること、
を特徴とするノッキング検出装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、内燃機関のノッキングを検出する技術に関するものである。
【０００２】
【従来の技術】
従来より、内燃機関のノッキング検出装置として、ノックセンサからのアナログ信号（以下、ノックセンサ信号ともいう）を一定のサンプリング周期毎にＡ／Ｄ変換すると共に、そのＡ／Ｄ変換された時系列のデータ（サンプリングデータ）をデジタルフィルタ処理し、そのフィルタ処理結果に基づいて、ノッキングの発生を検出するものが提案されている（例えば、特許文献１参照）。
【０００３】
【特許文献１】
特許第２７６４４９５号公報
【０００４】
【発明が解決しようとする課題】
ここで、この種のノッキング検出装置においては、ノックセンサ信号にノッキングの特徴が現れると予想される所定のノック判定区間（ノックセンサ信号の処理区間であり、内燃機関のクランク軸がある角度から所定の角度分だけ回転する区間）での各サンプリングタイミング毎の全てのフィルタ処理結果データを保存して、その全フィルタ処理結果データからノッキングの有無を判定するように構成することが考えられる。
【０００５】
しかし、このように構成すると、内燃機関の低回転時においてはノック判定区間の時間が長くなるため、ノッキング判定（ノッキングの有無の判定）のために保存すべきデータ数が膨大になってしまい、延いては、メモリ容量や処理負荷の増大を招いてしまう。
【０００６】
このため、第１案として、ノック判定区間における各サンプリングタイミング毎のフィルタ処理結果データを一定個数Ｋ毎に積算（詳しくは、絶対値をとって積算）し、その各積算値からノッキングの有無を判定するように構成することで、保存すべきデータ数を低減させることが考えられる。このようにすれば、積算済みのフィルタ処理結果データは捨てていくことができ、積算値のみを保存していけば良いため、ノッキング判定のために保存すべきデータ数を１／Ｋに低減することができるからである。尚、図１３に示すように、ノッキングの有無は各積算値同士の増減状態等からを判定することができる。
【０００７】
ところが、このように構成しても、内燃機関の低回転時には、ノック判定区間の時間が長くなるため、やはり保存すべきデータ数（この場合は積算値の数）が多くなってしまう。また、上記一定個数Ｋを大きく設定して、ノック判定区間内で算出される積算値の数を減らすようにすると、今度は、内燃機関の高回転時において積算値の数が非常に少なくなってしまい、正確なノッキング判定を行うことができなくなってしまう。つまり、積算値の数が少なすぎると、ノッキングの特徴を捉えることができなくなるからである（図１３参照）。
【０００８】
そこで、第２案として、Ａ／Ｄ変換しデジタルフィルタ処理したデータを、一定個数毎に積算することに代えて、クランク軸が一定の所定角度Ｒだけ回転する期間分毎（例えば５°ＣＡの期間分毎）に積算するように構成することが考えられる。つまり、クランク軸が上記所定角度Ｒだけ回転する毎にタイミング信号が発生するようにしておき、そのタイミング信号が発生してから次に発生するまでの各期間毎に、その期間内のフィルタ処理結果データを積算し、その各積算値からノッキングの有無を判定するのである。そして、このように構成すれば、積算値の数を、回転数によらず、常に必要十分な一定値（＝ノック判定区間のクランク角度範囲／Ｒ）に抑えることができる。尚、「ＣＡ」とは、クランク軸の回転角度（クランク角度）を意味している。
【０００９】
しかしながら、このようにフィルタ処理結果データを所定角度分毎に積算するようにした場合には、また別の問題が生じてしまう。
まず、この場合、各サンプリングタイミング毎のフィルタ処理結果データは所定角度毎に区切られることとなるが、その区切り方（即ち、積算の開始タイミング）によって、図１４（Ａ）に示すように、所定角度毎の期間（この例では５°ＣＡ毎の期間）で積算されるフィルタ処理結果データの個数がばらついてしまう。尚、図１４における黒丸（●）は、ノックセンサ信号のサンプリングタイミング（Ａ／Ｄ変換タイミング）であると共に、新たなフィルタ処理結果データが算出されるタイミングを示している。
【００１０】
つまり、例えば５°ＣＡ＝８５μｓとし、ノックセンサ信号のサンプリング周期＝２０μｓ（５０ｋＨｚ）とした場合、積算を開始するタイミングによっては、５°ＣＡの期間に、４個のデータを積算することもあれば、５個のデータを積算することもある。よって、１つの積算値に含まれるフィルタ処理結果データの個数にばらつきが生じる。
【００１１】
また、図１４（Ｂ），（Ｃ）の各々に示すように、内燃機関の急減速や急加速によっても、各積算値に含まれるフィルタ処理結果データの個数にばらつきが発生する。尚、図１４（Ｂ），（Ｃ）における「ＮＥ」は、５°ＣＡ毎にレベル反転するタイミング信号を示している。
【００１２】
そして、このように各積算値に含まれるフィルタ処理結果データの個数にばらつきが生じると、各積算値がノックセンサ信号の波形以外の要因で増減することとなるため、ノッキングを正確に検出することができなくなってしまう。ノッキングの特徴を正確に捉えることができなくなるからである。
【００１３】
本発明は、こうした問題に鑑みなされたものであり、ノッキング判定のために保存すべきデータ数を低減しつつ、正確なノッキング判定が可能なノッキング検出装置を提供することを目的としている。
【００１４】
【課題を解決するための手段及び発明の効果】
上記目的を達成するためになされた請求項１に記載のノッキング検出装置では、信号処理手段が、ノックセンサ信号（ノックセンサからのアナログ信号）を、一定のサンプリング間隔毎にＡ／Ｄ変換してデジタル的にフィルタ処理する。
【００１５】
また、算出手段が、内燃機関の回転速度に基づいて、該内燃機関のクランク軸が所定角度回転するのに要する時間あたりのＡ／Ｄ変換回数を表す数値（即ち、クランク軸が所定角度回転するのに要する時間を前記サンプリング間隔で割った数値）を求め、その数値を整数化した値Ｎを算出する。
【００１６】
そして、積算手段が、クランク軸の回転に同期して設定される動作開始タイミングから所定期間の間、信号処理手段によるフィルタ処理結果データを、算出手段にて算出された前記Ｎ個分ずつ積算し、ノック判定手段が、その積算手段により算出された複数の積算値を用いてノッキングの有無を判定する。そして更に、上記算出手段は、積算手段が動作を開始する前毎に前記Ｎを算出すると共に、積算手段が動作している期間中は前記Ｎを更新しないように構成されている。
【００１７】
このような請求項１のノッキング検出装置によれば、前述した第１案の欠点と第２案の欠点とを両方共に解決することができる。
つまり、まず、このノッキング検出装置において、積算手段による各積算値は、クランク軸が上記所定角度だけ回転すると予想される時間分のＮ個のフィルタ処理結果データを積算したものとなり、そのＮの値（即ち、各積算値に含まれるフィルタ処理結果データの個数）は、積算の開始タイミングや内燃機関の急加速及び急減速に拘わらず、積算手段が動作している期間中は一定である。このため、前述した第２案の欠点が解消され、積算の開始タイミングや内燃機関の急加速及び急減速に拘わらず、常に一定個数Ｎのフィルタ処理結果データを積算した各積算値に基づいてノッキング判定を行うことができる。
【００１８】
また、このノッキング検出装置において、積算手段が動作する期間（即ち、上記所定期間）としては、例えば、（１）：動作開始タイミングから積算値がＭ個（Ｍは２以上の自然数）になるまでの期間や、（２）：動作開始タイミングからクランク軸の回転位置が所定の角度位置になったことが検出されるまでの期間、とすることができるが、その（１），（２）の何れにおいても、Ｎの値は固定値でなく、内燃機関の回転速度に応じて設定されるため、ノッキング判定のために保存すべきデータ数（積算値の数）が低回転時に多くなってしまったり、高回転時に積算値の数が少なくなってノッキング判定を正確に行うことができなくなってしまうことを回避することができる。
【００１９】
このように請求項１のノッキング検出装置によれば、ノッキング判定のために保存すべきデータ数を低減しつつ、正確なノッキング判定が可能になる。
尚、ノック判定手段が、積算手段により算出されたＰ個（Ｐは２以上の自然数）の積算値を用いてノッキングの有無を判定するものとすると、積算手段の動作開始タイミングからクランク軸が「上記所定角度×Ｐ」の角度だけ回転すると予想される期間がノック判定区間となり、その期間のノックセンサ信号からノッキングの有無が判定されることとなる。
【００２０】
ところで、算出手段は、請求項２に記載の如く、クランク軸が一定角度回転する毎に発生する基準信号の発生間隔を内燃機関の回転速度として測定し、その測定した基準信号の発生間隔に、上記一定角度と上記所定角度と上記サンプリング間隔とから決められた定数を乗じることで、上記数値を求めるように構成することができる。尚、上記一定角度をＱとし、上記所定角度をＲとし、上記サンプリング間隔をｔｓとすると、上記定数は「Ｒ／Ｑ／ｔｓ」となる。
【００２１】
そして、このように構成すれば、Ｎの値を算出するための処理負荷を軽減することができる。内燃機関の回転速度としては、例えば「ｒｐｍ」単位の回転数を計算して、それを用いても良いが、請求項２の如く構成すれば、そのような回転数を計算する手間を省くことができるからである。
【００２２】
また、算出手段は、請求項３に記載の如く、内燃機関の回転速度が所定値以下の場合、或いは、所定値以上の場合に、前記Ｎの値を予め定められた固定値にするように構成すれば、より効果的である。
つまり、内燃機関の回転速度が所定値以下の場合に、Ｎの値を固定値にするように構成すれば、内燃機関の低回転時にＮの値が大きくなり過ぎて積算値がオーバーフローしてしまうことを回避することができる。
【００２３】
また、内燃機関の回転速度が所定値以上の場合に、Ｎの値を固定値にするように構成すれば、内燃機関の高回転時においても積算値の精度を確保することができるようになる。即ち、回転速度の上昇に伴いＮの値が極端に小さくなると、各積算値が大きくばらつき易くなり、ノッキングの検出精度が低下する可能性があるが、高回転時にＮの値を固定値にガードすることにより、そのような検出精度の悪化を防止することができる。
【００２４】
次に、請求項４に記載のノッキング検出装置では、請求項１〜３のノッキング検出装置において、積算手段は、動作を開始すると、積算値がａ個（ａは２以上の自然数）になるまで、前記フィルタ処理結果データを前記Ｎ個分ずつ積算すると共に、ノック判定手段は、積算手段により算出された前記ａ個の積算値を用いてノッキングの有無を判定するようになっている。更に、算出手段は、前記数値を四捨五入により整数化して前記Ｎを算出するようになっている。
【００２５】
そして特に、この請求項４のノッキング検出装置では、算出手段が前記数値の小数点以下を切り捨てて前記Ｎを算出した場合には、前記ａの値が増加されるようになっている。
このような請求項４のノッキング検出装置によれば、積算手段の動作開始タイミングからクランク軸が「上記所定角度Ｒ×ａ」の角度だけ回転すると予想される期間が設定上のノック判定区間となるが、算出手段にてＮの値が切り捨てによって算出された場合（即ち、クランク軸が所定角度回転するのに要する時間をサンプリング間隔で割った数値の小数点以下が０．５未満であった場合）には、積算値の数ａが増やされるため、そのような場合でも、ノッキング判定に必要なクランク角度範囲相当分の積算値（換言すれば、設定上のノック判定区間相当分の積算値）を得ることができ、正確なノッキング判定を行うことができるようになる。
【００２６】
つまり、Ｎの値が切り捨てによって算出された場合に、もし、前記ａの値を増加させないとすると、積算手段の動作開始タイミングから該積算手段がａ個の積算値の算出を完了するまでの期間（即ち、実際のノック判定区間）が、「上記所定角度Ｒ×ａ」のクランク角度範囲分の実際の期間（即ち、設定上のノック判定区間）よりも短くなってしまうが、請求項４の如くａの値を増加させることで、実際のノック判定区間が設定上のノック判定区間よりも短くなってしまうのを防止することができる。
【００２７】
次に、請求項５に記載のノッキング検出装置では、請求項１〜３のノッキング検出装置において、積算手段の動作開始タイミングは、クランク軸の回転位置が特定の基準位置となったときに、その時点から内燃機関の回転速度に基づきクランク軸がある角度だけ回転すると予想される時刻として設定される。
【００２８】
また、積算手段は、動作開始タイミングが到来して動作を開始すると、積算値が２以上の所定個数になるまで、前記フィルタ処理結果データを前記Ｎ個分ずつ積算するようになっている。
そして更に、ノック判定手段は、クランク軸の回転位置が前記基準位置となるまでの内燃機関の回転速度Ｖｂと、クランク軸の回転位置が前記基準位置となってから積算手段が前記所定個数の積算値の算出を完了するまでの間の内燃機関の回転速度Ｖａとから、内燃機関の加減速状態を判定し、積算手段により算出された前記所定個数の積算値のうちで、ノッキング判定に実際に用いられる連続した順番の複数の積算値を、前記加減速状態の判定結果に応じて選択する使用積算値選択手段を備えており、その使用積算値選択手段によって選択された積算値を用いてノッキングの有無を判定するようになっている。
【００２９】
具体例を挙げると、まず、設定上のノック判定区間が、クランク軸が上記特定の基準位置から所定の角度Ｒ１だけ回転したタイミングを開始点として、そこからクランク軸が更に所定の角度Ｒｈだけ回転するまでの期間であるとする。
この場合、例えば、積算手段の動作開始タイミングを、クランク軸の回転位置が上記特定の基準位置となった時点からクランク軸が上記角度Ｒ１よりも小さい角度Ｒ２だけ回転すると予想される時刻に設定すると共に、上記所定個数を「上記角度Ｒｈ／上記所定角度Ｒ」よりも大きい整数に設定しておく。
【００３０】
そして、「上記角度Ｒｈ／上記所定角度Ｒ」の整数値をＬとすると、▲１▼：内燃機関の加減速（加速又は減速）が所定パーセント以内であった場合には、積算手段により算出された所定個数の積算値のうち、１番目ではない所定番目の積算値からＬ個の積算値を用いてノッキングの有無を判定し、▲２▼：内燃機関が所定パーセントよりも大きく減速していた場合には、積算手段により算出された所定個数の積算値のうち、１番目ではない所定番目の積算値からＬ個よりも多い個数の積算値を用いてノッキングの有無を判定し、▲３▼：内燃機関が所定パーセントよりも大きく加速していた場合には、積算手段により算出された所定個数の積算値のうち、１番目の積算値からＬ個よりも少ない個数の積算値を用いてノッキングの有無を判定する、といった具合に構成することができる。
【００３１】
このような請求項５のノッキング検出装置によれば、内燃機関が加速又は減速しても（つまり、上記Ｖａが上記Ｖｂから変化しても）、設定上のノック判定区間相当分の積算値を用いた適切なノッキング判定を行うことが可能になり、内燃機関の加減速による影響を一層排除することができる。
【００３２】
次に、請求項６に記載のノッキング検出装置では、請求項５のノッキング検出装置において、使用積算値選択手段は、常に一定個数の積算値を、ノッキング判定に実際に用いられる積算値として選択するようになっている。
そして、このような請求項６のノッキング検出装置によれば、加減速状態判定手段の判定結果に拘わらず（つまり、内燃機関の加減速状態に拘わらず）ノッキング判定用の処理を固定化することができる、という点で有利である。
【００３３】
次に、請求項７に記載のノッキング検出装置では、請求項１〜３のノッキング検出装置において、積算手段の動作開始タイミングは、クランク軸の回転位置が特定の基準位置となったときに、その時点から内燃機関の回転速度に基づきクランク軸がある角度だけ回転すると予想される時刻として設定される。
【００３４】
また、積算手段は、動作開始タイミングが到来して動作を開始すると、積算値が２以上の所定個数になるまで、前記フィルタ処理結果データを前記Ｎ個分ずつ積算するようになっている。
そして更に、ノック判定手段は、クランク軸の回転位置が前記基準位置となるまでの内燃機関の回転速度Ｖｂと、クランク軸の回転位置が前記基準位置となってから積算手段が前記所定個数の積算値の算出を完了するまでの間の内燃機関の回転速度Ｖａとから、内燃機関の加減速状態を判定し、▲１▼：内燃機関の加減速（加速又は減速）が所定パーセント以内であった場合には、積算手段により算出された各積算値を、１番目のものから順にｍ個（ｍは２以上の自然数）毎に積算したｂ個（ｂは２以上の自然数）の積算値を用いてノッキングの有無を判定し、▲２▼：内燃機関が所定パーセントよりも大きく減速していた場合には、積算手段により算出された各積算値を、１番目のものから順に前記ｍよりも多い一定の個数毎に積算したｂ個の積算値を用いてノッキングの有無を判定し、▲３▼：内燃機関が所定パーセントよりも大きく加速していた場合には、積算手段により算出された各積算値を、１番目のものから順に前記ｍよりも少ない一定の個数毎に積算したｂ個の積算値を用いてノッキングの有無を判定する。
【００３５】
そして、このような請求項７のノッキング検出装置によっても、請求項６のノッキング検出装置と同様の効果を得ることができる。つまり、内燃機関が加減速しても、設定上のノック判定区間相当分の積算値を用いた適切なノッキング判定が可能になると共に、内燃機関の加減速状態に拘わらず、ノッキング判定に用いられる積算値の数を一定のｂ個にすることができ、ノッキング判定用の処理を固定化することができる。
【００３６】
【発明の実施の形態】
以下、本発明が適用された実施形態について、図面を用いて説明する。
まず図１は、第１実施形態のエンジン制御装置１０の構成を表すブロック図である。尚、このエンジン制御装置１０は、６気筒のガソリン式エンジン（内燃機関）を制御するものである。
【００３７】
図１に示すように、本実施形態のエンジン制御装置１０は、６気筒のうちの３気筒（この例では、第１気筒＃１，第３気筒＃３，第５気筒＃５）に関するノッキングを検出するためにエンジンに取り付けられたノックセンサＳＮ１からのアナログ信号（以下、ノックセンサ信号１という）と、６気筒のうちの他の３気筒（この例では、第２気筒＃２，第４気筒＃４，第６気筒＃６）に関するノッキングを検出するためにエンジンに取り付けられたノックセンサＳＮ２からのアナログ信号（以下、ノックセンサ信号２という）とが入力され、そのノックセンサ信号１，２のうちの何れか一方を選択して出力するマルチプレクサ（ＭＰＸ）３と、マルチプレクサ３から出力されるノックセンサ信号を一定のサンプリング間隔ｔｓ（本実施形態では１０μｓ）毎にＡ／Ｄ変換するＡ／Ｄ変換器４と、そのＡ／Ｄ変換器４によるＡ／Ｄ変換値（サンプリングデータ）を順次入力してデジタル的にフィルタ処理するデジタルフィルタ処理部５と、そのデジタルフィルタ処理部５によるフィルタ処理結果データを積算（詳しくは、絶対値をとって積算）する積算部６と、その積算部６による積算値からノッキングの有無を判定するノック判定部７と、そのノック判定部７による判定結果とエンジンの回転速度や冷却水温等の他の運転状態情報とに基づいて、エンジンの点火時期や燃料噴射料等を制御するエンジン制御用のＣＰＵ９とを備えている。
【００３８】
そして、上記デジタルフィルタ処理部５、積算部６、及びノック判定部７は、ＣＰＵ、ＲＯＭ、及びＲＡＭ等からなるマイコン８によって構成されている。
また、本エンジン制御装置１０には、エンジンのクランク軸の回転速度及び回転位置を検出するための周知の回転数信号（所定クランク角度毎のパルス信号）と気筒判別信号（エンジン２回転毎のパルス信号）とが入力されている。そして、信号生成回路１１が、上記回転数信号と気筒判別信号とから、各気筒の圧縮行程上死点（以下、ＴＤＣと記す）のタイミングで立ち下がるＴＤＣ信号（図２の最上段参照）を生成して、そのＴＤＣ信号をマイコン８及びＣＰＵ９へ出力するようになっている。尚、本実施形態では、エンジンが６気筒であるため、ＴＤＣ信号は、１２０°ＣＡ毎（クランク軸が１２０°回転する毎）に立ち下がることとなる。
【００３９】
次に、デジタルフィルタ処理部５、積算部６、及びノック判定部７としてのマイコン８が、ノッキング検出のために実行する処理について、図２〜図６を用いて説明する。
尚、図２は、処理の概要を表すタイムチャートであり、図３は、図２における１点火分の処理内容を表すタイムチャートであって、例えば図２にて点線で囲まれた部分の詳細を表している。そして、図４〜図６は、マイコン８が実行する処理の内容を表すフローチャートである。
【００４０】
また、本実施形態では、例えばＴＤＣ信号の立ち下がりタイミング（即ち、各気筒のＴＤＣタイミング）毎に、マルチプレクサ３がＡ／Ｄ変換器４へ出力するノックセンサ信号１，２を切り替えるようになっている。例えば、第１気筒＃１のＴＤＣタイミングで、Ａ／Ｄ変換器４へ出力されるノックセンサ信号がノックセンサ信号２から第１気筒＃１に対応するノックセンサ信号１に切り替えられ、第２気筒＃２のＴＤＣタイミングで、Ａ／Ｄ変換器４へ出力されるノックセンサ信号がノックセンサ信号１から第２気筒＃２に対応するノックセンサ信号２に切り替えられる。また、各気筒のゲート終了タイミング（即ち、ノッキング判定のためのフィルタ処理結果データの積算を終了するタイミング）にて、次の気筒に対応するノックセンサを予想し切り替えるようにしてもよい。このようにすれば、ノックセンサを切り替えてから（即ち、マルチプレクサ３からＡ／Ｄ変換器４へ入力されるノックセンサ信号を切り替えてから）、フィルタ処理結果データの積算が開始されるゲート開始タイミングまでの時間を十分に確保し易くなり有利である。つまり、Ａ／Ｄ変換器４へ入力されるノックセンサ信号を切り替えてから、その切り替え後のノックセンサ信号に関する安定したフィルタ処理結果データが得られるまでには遅れ時間があるが、ＴＤＣタイミングよりも前のゲート終了タイミングで次の気筒に対応するノックセンサ信号がＡ／Ｄ変換器４へ入力されるように切り替えを行えば、その切り替え時から次の気筒のゲート開始タイミングまでの時間を、確実に上記遅れ時間以上にすることができる。
【００４１】
但し、以下では説明を簡略化するために、２つのノックセンサ信号１，２を特に区別せずに、ノックセンサ信号と総称することにする。
また更に、本実施形態では、各気筒のＴＤＣタイミングから１０°ＣＡ後のタイミング（ＡＴＤＣ１０°ＣＡのタイミング）から、６０°ＣＡ分の期間（即ち、クランク軸が６０°回転する分の期間であり、ＡＴＤＣ７０°ＣＡまでの期間）を、設定上のノック判定区間としている。尚、「ＡＴＤＣ」とは、ＴＤＣタイミング後のクランク角度を意味している。
【００４２】
まず、図４は、ＴＤＣ信号が立ち下がる毎に起動されるＴＤＣ立ち下がり時処理を表すフローチャートである。
そして、マイコン８がこのＴＤＣ立ち下がり時処理の実行を開始すると、まずＳ１１０にて、その時のフリーランタイマの値をＲＡＭの記憶部ｔ１に記憶する。尚、フリーランタイマは、当該マイコン８の内部クロックによって常時カウントアップされているタイマである。
【００４３】
次に、Ｓ１２０にて、記憶部ｔ１の値からＲＡＭの記憶部ｔ２の値を引き、更に、その引き算値（＝ｔ１−ｔ２）にフリーランタイマの１カウントアップ時間（即ち、上記内部クロックの１周期時間）ｔｃｋを乗ずることで、前回のＴＤＣタイミングから今回のＴＤＣタイミングまでの１２０°ＣＡ分の時間（ＴＤＣ間隔時間）Ｔを算出する（図２参照）。尚、記憶部ｔ２には、後述するＳ１４０の処理により、前回のＴＤＣタイミングでのフリーランタイマの値が記憶されている。
【００４４】
そして、続くＳ１３０にて、上記Ｓ１２０で算出したＴＤＣ間隔時間Ｔから、下記の式１により、クランク軸が所定角度（本第１実施形態では５°）回転するのに要する時間をＡ／Ｄ変換器４によるサンプリング間隔ｔｓ（＝１０μｓ）で割った数値Ｚを求め、更に、その数値Ｚを四捨五入により整数化した値Ｎを算出する。
【００４５】
2004309267.tif 000003
つまり、数値Ｚを整数化したＮは、それまでのエンジンの回転速度（この例では、ＴＤＣ間隔時間Ｔ）に基づいて５°ＣＡ分のＡ／Ｄ変換回数（サンプリング回数であり、サンプリングデータ数でもある）の整数値を求めたものである。尚、数値Ｚを整数化する処理としては、四捨五入に限らず、例えば切り上げや切り捨てを用いても良い。
【００４６】
次に、Ｓ１４０にて、記憶部ｔ１の値を記憶部ｔ２にコピーする。
そして、続くＳ１５０にて、上記Ｓ１２０で求めた引き算値（＝ｔ１−ｔ２）から、下記の式２により、１０°ＣＡ分の時間に相当するフリーランタイマのカウント値αを算出し、更に、そのカウント値αを記憶部ｔ１の値に加えた値を、ゲート開始時刻として記憶する。
【００４７】
α＝（ｔ１−ｔ２）×（１０°ＣＡ／１２０°ＣＡ）…式２
つまり、ゲート開始時刻は、それまでのエンジンの回転速度（この例では、ＴＤＣ間隔時間Ｔ）に基づいて、今回のＴＤＣタイミングからクランク軸が１０°回転すると予想した時刻を表すものである。
【００４８】
そして、上記Ｓ１５０の処理が終わると、当該ＴＤＣ立ち下がり時処理が終了される。
次に、図５は、フリーランタイマの値が図４のＳ１５０で記憶されたゲート開始時刻に一致した時に起動されるゲート開始時刻処理を表すフローチャートである。
【００４９】
そして、マイコン８がこのゲート開始時刻処理の実行を開始すると、まずＳ２１０にて、フラグｆｌｇをオン（ＯＮ）し、続くＳ２２０にて、ＲＡＭ内に設けられた積算用メモリＳＵＭと積算値個数カウンタＣＮＴ（以下単に、カウンタＣＮＴという）との各値を、０にクリアする。そして更に、次のＳ２３０にて、図４のＳ１３０で算出されたＮの値を、ＲＡＭの記憶部ｎにセットし、その後、当該ゲート開始時刻処理を終了する。
【００５０】
尚、上記回転数信号等に基づきＴＤＣタイミングからのクランク角度を検出することができるシステムの場合には、図４のＳ１５０でゲート開始時刻をセットする代わりにＡＴＤＣ１０°ＣＡという角度を設定し、図５の処理は、そのセットされたＡＴＤＣ１０°ＣＡタイミングで実行されるようにすることも可能である。
【００５１】
次に、図６は、ノックセンサ信号のＡ／Ｄ変換が終了する毎に起動されるＡ／Ｄ終了時処理を表すフローチャートである。
そして、マイコン８がこのＡ／Ｄ終了時処理の実行を開始すると、まずＳ３１０にて、Ａ／Ｄ変換器４による今回のＡ／Ｄ変換値を最新のデータとする時系列のＡ／Ｄ変換値に対してデジタルフィルタ処理（例えばＦＩＲ型又はＩＩＲ型のデジタルフィルタ処理）を行い、そのフィルタ処理結果データを、ＲＡＭの記憶部ｆｉｌｔに記憶する。
【００５２】
次に、Ｓ３２０にて、フラグｆｌｇがオンであるか否かを判定する。そして、フラグｆｌｇがオンでなければ（Ｓ３２０：ＮＯ）、そのまま当該Ａ／Ｄ終了時処理を終了するが、フラグｆｌｇがオンであれば（Ｓ３２０：ＹＥＳ）、Ｓ３３０に進んで、フィルタ処理結果データの積算を行う。
【００５３】
即ち、Ｓ３３０では、現在の積算用メモリＳＵＭの値に、記憶部ｆｉｌｔの値の絶対値（今回算出したフィルタ処理結果データの絶対値）を加算し、その加算後の値を積算用メモリＳＵＭに記憶し直す。
そして、続くＳ３４０にて、記憶部ｎの値を１デクリメント（−１）し、続くＳ３５０にて、記憶部ｎの値が０よりも大きいか否かを判定する。
【００５４】
ここで、記憶部ｎの値が０よりも大きいと判定した場合には（Ｓ３５０：ＹＥＳ）、そのまま当該Ａ／Ｄ終了時処理を終了するが、記憶部ｎの値が０よりも大きくないと判定した場合（即ち、記憶部ｎの値＝０の場合）には（Ｓ３５０：ＮＯ）、Ｓ３６０に進んで、その時点の積算用メモリＳＵＭの値を、その時のカウンタＣＮＴの値が示す順番の積算値ＩＮＴ（ＣＮＴ）として記憶する。
【００５５】
例えば、カウンタＣＮＴの値が０であれば、積算用メモリＳＵＭの値が１番目の積算値ＩＮＴ（０）として記憶され、カウンタＣＮＴの値が１であれば、積算用メモリＳＵＭの値が２番目の積算値ＩＮＴ（１）として記憶される。尚、この例では、カウンタＣＮＴの初期値が図５のＳ２２０によって０となるため、１番目の積算値は、ＩＮＴ（０）と表される。
【００５６】
そして、次のＳ３７０にて、積算用メモリＳＵＭの値を０にクリアすると共に、図４のＳ１３０で算出されたＮの値を記憶部ｎに再セットし、続くＳ３８０にて、カウンタＣＮＴの値を１インクリメント（＋１）する。
次に、Ｓ３９０にて、カウンタＣＮＴの値が予め定められた設定値（本第１実施形態では、１２）よりも小さいか否かを判定し、カウンタＣＮＴの値が１２よりも小さければ、そのまま当該Ａ／Ｄ終了時処理を終了する。
【００５７】
これに対し、上記Ｓ３９０にて、カウンタＣＮＴの値が１２よりも小さくないと判定した場合（即ち、カウンタＣＮＴの値が１２に達した場合）には、Ｓ４００に進んで、フラグｆｌｇをオフ（ＯＦＦ）する。
そして、続くＳ４１０にて、フラグｆｌｇがオンされていた期間中に上記Ｓ３６０で記憶された複数の積算値（この例では１番目から１２番目までの１２個の積算値ＩＮＴ（０）〜ＩＮＴ（１１））を用いてノッキングの有無を判定する。例えば、各積算値ＩＮＴ（０）〜ＩＮＴ（１１）同士の増減状態と各積算値ＩＮＴ（０）〜ＩＮＴ（１１）のうちの最大値などから、ノッキングが生じたか否かを判定する。そして、その後、当該Ａ／Ｄ終了時処理を終了する。
【００５８】
つまり、本第１実施形態では、ＴＤＣタイミング毎に実行される図４のＳ１１０，Ｓ１２０，及びＳ１４０の処理により、図２のように、ＴＤＣ間隔時間（１２０°ＣＡ毎に発生するＴＤＣ信号の立ち下がり間隔）Ｔをエンジンの回転速度として測定し、そのＴＤＣ間隔時間Ｔから、図４のＳ１３０の処理により、５°ＣＡ分の時間をサンプリング間隔（Ａ／Ｄ変換間隔）ｔｓで割った数値Ｚを求めると共に、その数値Ｚを四捨五入により整数化した値Ｎを算出している。
【００５９】
例えば、図２に例示しているように、第１気筒＃１のＴＤＣタイミングから第２気筒＃２のＴＤＣタイミングまでのＴＤＣ間隔時間Ｔが４０００μｓであったならば、第２気筒＃２のＴＤＣタイミングで算出されるＮの値が１７となり。第２気筒＃２のＴＤＣタイミングから第３気筒＃３のＴＤＣタイミングまでのＴＤＣ間隔時間Ｔが３９００μｓであったならば、第３気筒＃３のＴＤＣタイミングで算出されるＮの値が１６となる。尚、図２の最下段に記載されている「ソフト処理」のタイミングは、図４のＴＤＣ立ち下がり時処理が実行されるタイミングを表している。
【００６０】
そして、各気筒のＴＤＣタイミングから、図４のＳ１５０で算出されたカウント値αが示す１０°ＣＡ相当の時間が経過すると、図５のゲート開始時刻処理が実行されて、図３の最上段に示す如くフラグｆｌｇがオンされ（Ｓ２１０）、更に、積算用メモリＳＵＭとカウンタＣＮＴとの各値が０にクリアされると共に（Ｓ２２０）、ＲＡＭの記憶部ｎに、直前のＴＤＣタイミングにおける図４のＳ１３０で算出されたＮの値が初期値としてセットされる（Ｓ２３０）。
【００６１】
すると、その時点（フラグｆｌｇがオンされた時点）からは、Ａ／Ｄ変換器４によるノックセンサ信号のＡ／Ｄ変換が終了して、図６のＳ３１０によりＡ／Ｄ変換値に対するデジタルフィルタ処理が行われる毎に、図６のＳ３２０で肯定判定され、図６のＳ３３０〜Ｓ３９０の処理により、上記Ｓ３１０のフィルタ処理によるフィルタ処理結果データが上記Ｓ１３０で算出されたＮ個分ずつ積算される。
【００６２】
即ち、図６のＡ／Ｄ終了時処理では、Ｓ３３０でフィルタ処理結果データの積算を行っているが、図３に示す如く、その積算処理の実行回数を、Ｓ３４０及びＳ３５０の処理により、記憶部ｎの値をＮから１ずつ０まで減算することで計数している。そして、Ｓ３３０の積算処理をＮ回実行する毎（つまり、記憶部ｎの値が０になる毎）に、Ｓ３６０〜Ｓ３９０の処理を行って、フィルタ処理結果データＮ個分の積算値である積算用メモリＳＵＭの値を積算値ＩＮＴ（ＣＮＴ）として記憶すると共に（Ｓ３６０）、カウンタＣＮＴの値を１ずつカウントアップすることで（Ｓ３８０）、既に求めた積算値の個数を計数している。
【００６３】
そして、積算値の個数が１２個になると（Ｓ３９０：ＮＯ）、図３の最上段に示す如くフラグｆｌｇがオフされると共に（Ｓ４００）、図６のＳ４１０の処理により、今回のフラグｆｌｇのオン期間中に算出した１２個の積算値ＩＮＴ（０）〜ＩＮＴ（１１）を用いてノッキングの有無が判定されることとなる。
【００６４】
その後、次の気筒のＴＤＣタイミングが到来すると、再び、図４のＴＤＣ立ち下がり時処理が実行されてＮの値が更新され、そのＮの値に基づき図６の処理が実施されることとなる。
尚、図６のＡ／Ｄ終了時処理において、積算を実施しない場合（フラグｆｌｇ＝オフの場合）でもデジタルフィルタ処理（Ｓ３１０）を行っているのは、デジタルフィルタ処理としてＦＩＲ型やＩＩＲ型を想定しており、この種のデジタルフィルタ処理には、最新のＡ／Ｄ変換値だけでなく過去のＡ／Ｄ変換値も必要とするからである。
【００６５】
また、図６のＳ３９０にてカウンタＣＮＴの値と比較される設定値を、１２にしている（即ち、積算値ＩＮＴを１２個求めるようにしている）のは、本実施形態では、前述したように、ＡＴＤＣ１０°ＣＡ〜７０°ＣＡの６０°ＣＡ分の期間を、設定上のノック判定区間としているからである。つまり、Ｎの値は、５°ＣＡ分のサンプリング回数（＝フィルタ処理結果データ数）であり、サンプリングタイミング毎に算出されるフィルタ処理結果データをＮ個分積算して１つの積算値を得る時間は、５°ＣＡ相当の時間となる。よって、６０°ＣＡ分の期間のノックセンサ信号からノッキング判定を行うようにするには、６０°ＣＡ／５°ＣＡ＝１２個の積算値を求めてノッキング判定を行えば良いのである。
【００６６】
一方、本第１実施形態では、Ａ／Ｄ変換器４と図６におけるＳ３１０の処理とが、信号処理手段に相当し、図４におけるＳ１１０〜Ｓ１４０の処理が、算出手段に相当している。そして、図６におけるＳ３３０〜Ｓ３９０の処理が、積算手段に相当し、図６におけるＳ４１０の処理が、ノック判定手段に相当している。また、フラグｆｌｇのオンされるタイミングが、積算手段の動作開始タイミングに相当している。
【００６７】
以上のような本第１実施形態のエンジン制御装置１０によれば、［発明が解決しようとする課題］の欄で述べた第１案の欠点と第２案の欠点とを両方共に解決することができ、その結果、ノッキング判定のために保存すべきデータ数を低減しつつ、正確なノッキング判定を行うことが可能となる。
【００６８】
即ち、まず、ノッキング判定に用いられる各積算値ＩＮＴ（ＣＮＴ）は、クランク軸が５°（請求項１の所定角度に相当）だけ回転すると予想される時間分のＮ個のフィルタ処理結果データを積算したものとなり、その各積算値に含まれるフィルタ処理結果データの個数Ｎは、積算の開始タイミングやエンジンの急加速及び急減速に拘わらず、フィルタ処理結果データの積算を実施している期間中は一定である。このため、積算の開始タイミングや内燃機関の急加速及び急減速に拘わらず、常に一定個数Ｎのフィルタ処理結果データを積算した各積算値に基づいてノッキング判定を行うことができる。そして更に、Ｎの値は固定値でなく、前述した式１によりエンジンの回転速度に応じて設定されるため、ノッキング判定のために保存すべきデータ数（積算値の数）が低回転時に多くなってしまったり、高回転時に積算値の数が少なくなってノッキング判定を正確に行うことができなくなってしまうことを回避することができる。
【００６９】
また、本第１実施形態では、クランク軸が１２０°（請求項２の一定角度に相当）回転する毎に発生するＴＤＣ信号の立ち下がり（請求項２の基準信号に相当）の発生間隔であるＴＤＣ間隔時間Ｔをエンジンの回転速度として測定し、その測定したＴに定数（＝０．００４１６７）を乗じることで、５°ＣＡ分の時間をサンプリング間隔で割った数値Ｚを求めるようにしているため、エンジンの回転速度として例えば「ｒｐｍ」単位の回転数を計算しなくても良く、Ｎの値を算出するための処理負荷を軽減することができる。尚、ＴＤＣ間隔時間Ｔの代わりに、例えば、クランク軸が３０°回転する毎に発生するパルス信号の発生間隔を測定して上記Ｚ及びＮを求めてもよい。
【００７０】
ところで、算出手段としての図４のＳ１３０では、Ｓ１２０で算出したＴＤＣ間隔時間Ｔ（エンジンの回転速度に相当）が第１の所定値Ｔ１から第２の所定値Ｔ２（＜Ｔ１）までの範囲内であるか否かを判定して、（Ａ）：「Ｔ≧Ｔ１」であれば（エンジンの回転速度が所定値以下の場合に相当）、Ｎの値を第１の固定値Ｎ１に制限し、（Ｂ）：「Ｔ≦Ｔ２」であれば（エンジンの回転速度が所定値以上の場合に相当）、Ｎの値を第２の固定値Ｎ２（＜Ｎ１）に設定する、という処理を行うようにしても良い。
【００７１】
つまり、上記（Ａ）のようにすれば、エンジンの低回転時にＮの値が大きくなり過ぎて、積算値（積算用メモリＳＵＭやＩＮＴの値）がオーバーフローしてしまうことを回避することができる。尚、上記（Ａ）でＮの値を第１の固定値Ｎ１に制限した場合に、求める積算値ＩＮＴの個数を増やして、実質的なノック判定区間が短くならないようにしても良い。また、上記（Ｂ）のようにすれば、エンジンの高回転時においても積算値の精度を確保することができるようになる。即ち、回転速度の上昇に伴いＮの値が極端に小さくなると、各積算値が大きくばらつき易くなり、ノッキングの検出精度が低下する可能性があるが、高回転時にＮの値を固定値Ｎ２にガードすることにより、そのような検出精度の悪化を防止することができる。
【００７２】
例えば、図７は、エンジンが６気筒で１０μｓ毎にＡ／Ｄ変換する場合のエンジン回転数（横軸）と、Ｎの値（縦軸）との関係を表すグラフであるが、その図７に示されるように、１０００ｒｐｍの時には、ＴＤＣ間隔時間Ｔ＝２０ｍｓでＮ＝８３となり、３２７ｒｐｍの時には、ＴＤＣ間隔時間Ｔ＝６１．２ｍｓでＮ＝２５５となり、８３３３ｒｐｍの時には、ＴＤＣ間隔時間Ｔ＝２．４ｍｓでＮ＝１０となる。よって、３２７ｒｐｍ以下ではＮの値を２５５に固定し、８３３３ｒｐｍ以上ではＮの値を１０に固定する、といった処理を行えば良い。
【００７３】
尚、このようにＮの値を固定する処理は、後述する変形例及び他の実施形態についても同様に適用することができる。
一方、上記第１実施形態では、図４のＳ１３０にて、数値Ｚを四捨五入により整数化してＮを算出するようにしているが、そのＳ１３０で数値Ｚの小数点以下を切り捨てた値をＮとした場合（即ち、数値Ｚの小数点以下が０．５未満であった場合）には、ノッキング判定のために算出する積算値ＩＮＴの個数を増加するようにしても良い。具体的には、図６のＳ３９０でカウンタＣＮＴの値と比較される設定値を１２から、それよりも大きい値（例えば１３）に変更するように構成すれば良い。
【００７４】
つまり、Ｎの値が切り捨てによって算出された場合に、もし、積算値の個数を増加させないとすると、フラグｆｌｇのオンタイミングから１２個の積算値の算出が完了するまでの期間（即ち、実際のノック判定区間）が、６０°ＣＡ分の実際の期間（即ち、設定上のノック判定区間）よりも短くなってしまうが、積算値の数を１２個から例えば１３個に増加させることで、実際のノック判定区間が設定上のノック判定区間よりも短くなってしまうのを防止することができる。換言すれば、ノッキング判定に必要な６０°ＣＡ相当分の積算値を確実に得ることができ、ノッキング判定の正確性を向上させることができる。
【００７５】
次に、第２実施形態について説明する。
本第２実施形態のエンジン制御装置は、第１実施形態のエンジン制御装置１０と比較して、下記の（１−１）及び（１−２）の点が異なっている。
（１−１）まず、図６のＡ／Ｄ終了時処理において、Ｓ３９０では、カウンタＣＮＴの値が、６０°ＣＡ分相当の１２よりも大きい設定値（ここでは１７であるものとする）よりも小さいか否かを判定するようになっている。よって、本第２実施形態では、積算値ＩＮＴが、ＩＮＴ（０）〜ＩＮＴ（１６）までの１７個算出されることとなる。尚、本第２実施形態では、その１７個が、請求項５に記載の「所定個数」に相当している。
【００７６】
また、Ｓ４１０の処理が削除されている。つまり、Ａ／Ｄ終了時処理ではノッキング判定を行わない。
（１−２）図４のＴＤＣ立ち下がり時処理に代えて、図８のＴＤＣ立ち下がり時処理を実行するようになっている。
【００７７】
そして、図８のＴＤＣ立ち下がり時処理は、図４の処理と比較して、Ｓ１５０の処理内容が若干変更されている点と、そのＳ１５０の後にＳ１６０及びＳ１７０の処理が追加されている点とが異なっている。尚、その他は図４の処理と同じである。
【００７８】
まず、Ｓ１５０では、Ｓ１２０で求めた引き算値（＝ｔ１−ｔ２）から、カウント値αとして、１０°ＣＡ分の時間ではなく、それよりも前の時間（ここでは５°ＣＡ分の時間）に相当するフリーランタイマの値を算出し、そのカウント値αを記憶部ｔ１の値に加えた値を、ゲート開始時刻として記憶する。つまり、本第２実施形態のゲート開始時刻は、ＴＤＣタイミングから５°ＣＡ後の予想時刻を表すものである。尚、本第２実施形態では、その５°が、請求項５に記載の「ある角度」に相当し、ＴＤＣタイミング（ＴＤＣ信号の立ち下がりタイミング）が、請求項５に記載の「クランク軸の回転位置が特定の基準位置となったとき」に相当している。
【００７９】
よって、本第２実施形態においては、エンジンの回転速度が一定で、前回のＴＤＣタイミングから今回のＴＤＣタイミングまでのＴＤＣ間隔時間Ｔと、今回のＴＤＣタイミングから次回のＴＤＣタイミングまでのＴＤＣ間隔時間Ｔとに差がなければ、図９に示すように、今回のＴＤＣタイミングから次回のＴＤＣタイミングまでの間においては、設定上のノック判定区間（ＡＴＤＣ１０°ＣＡ〜７０°ＣＡ）よりも前後に広いＡＴＤＣ５°ＣＡ〜９０°ＣＡの８５°ＣＡ分の期間において、１７個の積算値が算出されることとなる。換言すれば、本第２実施形態では、フィルタ処理結果データのＮ個分ずつの積算（以下、本第２実施形態において、５°ＣＡ相当の積算という）が、ＴＤＣタイミングまでのエンジン回転速度から予想されるＡＴＤＣ５°ＣＡ〜９０°ＣＡの期間に渡って行われるようにしている。尚、図９において、１番目から１７番目までの各積算値は、図３における表現に対して１つずつ前に描いている。そして、このことは、後述する図１０〜図１２についても同様である。
【００８０】
次に、Ｓ１６０では、まず、前回のＳ１２０で求めたＴＤＣ間隔時間Ｔ（前述した回転速度Ｖｂに相当し、以下、Ｔｂと記す）と、今回のＳ１２０で求めたＴＤＣ間隔時間Ｔ（前述した回転速度Ｖａに相当し、以下、Ｔａと記す）とから、前回のＴＤＣタイミングから今回のＴＤＣタイミングまでのエンジン回転速度（上記Ｖａに相当）が、前々回のＴＤＣタイミングから前回のＴＤＣタイミングまでのエンジン回転速度（上記Ｖｂに相当）に対して、どれだけ増加したかを表す変化割合値Ｗ（＝（Ｔｂ／Ｔａ）−１）を算出する。
【００８１】
そして更に、このＳ１６０では、前回のＴＤＣタイミングから今回のＴＤＣタイミングまでの間に算出された１７個の積算値のうちから、ノッキング判定に実際に用いる連続した順番の積算値を、上記変化割合値Ｗに応じて選択する。
例えば、［１−２−１］：変化割合値Ｗが−Ｇ（Ｇは正の数で例えば０．１）以上で且つ＋Ｇ以下であった場合、即ち、エンジンの加減速が「１００×Ｇ」パーセント以内であり、回転速度がほぼ一定であった場合には、図９に示すように、２番目から１３番目までの１２個の積算値を選択する。そして、この場合には、設定上のノック判定区間（ＡＴＤＣ１０°ＣＡ〜７０°ＣＡ）相当分の積算値が選択されることとなる。
【００８２】
［１−２−２］：変化割合値Ｗが−Ｇよりも小さかった場合、即ち、エンジンが「１００×Ｇ」パーセントよりも大きく減速していた場合には、図１０の中段に示すように、２番目から１６番目までの１５個（＞１２個）の積算値を選択する。そして、この場合には、減速後のＡＴＤＣ１０°ＣＡ〜７０°ＣＡ相当分の積算値が選択されることとなる。
【００８３】
［１−２−３］：変化割合値Ｗが＋Ｇよりも大きかった場合、即ち、エンジンが「１００×Ｇ」パーセントよりも大きく加速していた場合には、図１０の下段に示すように、１番目から１１番目までの１１個（＜１２個）の積算値を選択する。そして、この場合には、加速後のＡＴＤＣ１０°ＣＡ〜７０°ＣＡ相当分の積算値が選択されることとなる。
【００８４】
そして、次のＳ１７０では、上記Ｓ１６０で選択した複数個の積算値を用いてノッキングの有無を判定する。
尚、上記例の場合、積算値は必ずしも１７個算出する必要はなく、少なくとも１番目から１６番目までの１６個の積算値を算出すれば良い。また、上記例の場合、エンジンの回転速度が一定の定常時には１２個の積算値が、減速時には１５個の積算値が、加速時には１１個の積算値が、それぞれノッキング判定に用いられることとなるが、ノッキング波形の大まかな形状を認識する上では影響がない。一方、エンジンの１点火当たりの回転速度の変化量は、最大でも１５〜２０パーセント程度である。また、本第２実施形態では、上記Ｓ１６０及びＳ１７０の処理が、ノック判定手段に相当し、そのうちのＳ１６０の処理が、使用積算値選択手段に相当している。
【００８５】
以上のような第２実施形態のエンジン制御装置によれば、ノッキング判定に実際に用いられる複数の積算値をエンジンの加減速状態に応じて選択するようにしているため、図１０に示すように、エンジンが加速又は減速しても、設定上のノック判定区間（ＡＴＤＣ１０°ＣＡ〜７０°ＣＡ）相当分の積算値を用いた適切なノッキング判定を行うことが可能になり、エンジンの加減速による影響を一層排除することができる。
【００８６】
一方、ノックセンサ信号の波形形状を認識してノッキングを判定するような場合、後の方の積算値（例えば１０個目以降の積算値）はノッキングの判定に大きく影響しないため、上記第２実施形態は、例えば以下のように変形しても良い。
即ち、図８のＳ１６０では、エンジンが加速していた上記［１−２−３］の場合にだけ、１番目から１１番目までの１１個の積算値をノッキング判定用の積算値として選択し、その他の場合には、２番目から１２番目までの１１個の積算値をノッキング判定用の積算値として選択するようにしても良い。
【００８７】
そして、このように常に一定個数の積算値を選択するように構成すれば、エンジンの加減速状態に拘わらず、Ｓ１７０でのノッキング判定用の処理を固定化することができ有利である。尚、この例の場合、積算値は１７個算出する必要はなく、少なくとも１番目から１２番目までの１２個の積算値を算出すれば良い。
【００８８】
また、次のような構成も考えられる。
例えば、ノック判定区間としてＡＴＤＣ１０°ＣＡ〜７０°ＣＡの６０°ＣＡ間のノックセンサ信号の積算処理を実施したい場合、上記第２実施形態と同様に、５°ＣＡ相当の積算をＡＴＤＣ５°ＣＡと予想されるタイミングから積算値が１７個になるまで行うように設定しておく。そして、本来のゲート終了タイミング（ノック判定区間の終了タイミング）であるＡＴＤＣ７０°ＣＡのタイミングを検出すると共に、そのタイミングを検出したら、積算値が１７個に達していなくても、５°ＣＡ相当の積算を止めるように構成してもよい。
【００８９】
その場合、エンジンが加速していた場合には１番目から最終番目の積算値をノッキング判定に用い、その他の場合には２番目から最終番目までの積算値をノッキング判定に用いるように構成しても良い。尚、加減速の判定方法としては、実際のＡＴＤＣ７０°ＣＡのタイミングと、当初予定していたＡＴＤＣ７０°ＣＡのタイミング（即ち、ＴＤＣ間隔時間Ｔ等から予想されるＡＴＤＣ７０°ＣＡのタイミング）との大小を比較することで知ることが可能である。
【００９０】
この構成の場合、定常回転数でも加減速した場合でも本来のＡＴＤＣ７０°ＣＡタイミングまで積算結果を取り込むことができ、かつ、ＡＴＤＣ７０°ＣＡタイミングにてノッキング判定も実施することが可能となる。尚、上記ＡＴＤＣ７０°ＣＡのタイミングで積算を止める方法としては、ＡＴＤＣ７０°ＣＡのタイミングで実施している積算を最後までやり遂げてから止める方法と、ＡＴＤＣ７０°ＣＡのタイミングで即座に積算を止めてしまって現在積算している１つ前までの積算値を使用する方法（即ち、積算が完全に済んだ最後の積算値まで使用する方法）との２つが考えられる。
【００９１】
次に、第３実施形態について、図１１及び図１２を用いて説明する。
本第３実施形態のエンジン制御装置は、第２実施形態のエンジン制御装置と比較して、下記の（２−１）〜（２−３）の点が異なっている。
（２−１）まず、図８のＳ１３０では、Ｓ１２０で算出したＴＤＣ間隔時間Ｔから、クランク軸が５°よりも小さい所定角度（本第１実施形態では１°）回転するのに要する時間をサンプリング間隔ｔｓ（＝１０μｓ）で割った数値Ｚを求め、更に、その数値Ｚを例えば四捨五入により整数化した値Ｎを算出する。
【００９２】
尚、数値Ｚは、式１と同様の下記式３によって算出することができる。
2004309267.tif 000004
つまり、本第３実施形態では、第２実施形態と比較すると、フィルタ処理結果データを積算していく個数Ｎを１／ｍ（ｍは２以上の自然数であり、この例ではｍ＝５）に設定しており、フィルタ処理結果データを１°ＣＡ相当分の個数ずつ積算するようにしている。尚、以下、本第３実施形態において、フィルタ処理結果データのＮ個分ずつの積算のことを、１°ＣＡ相当の積算という。
【００９３】
（２−２）図６のＳ３９０でカウンタＣＮＴの値と比較される設定値が、第２実施形態の場合の値（＝１７）を上記ｍ（＝５）倍した値（＝８５）に設定されている。
よって、本第３実施形態では、１°ＣＡ相当の積算値ＩＮＴが、ＩＮＴ（０）〜ＩＮＴ（８４）までの８５個算出されることとなる。また特に、エンジンの回転速度が一定で、前回のＴＤＣタイミングから今回のＴＤＣタイミングまでのＴＤＣ間隔時間Ｔと、今回のＴＤＣタイミングから次回のＴＤＣタイミングまでのＴＤＣ間隔時間Ｔとに差がなければ、図１１に示すように、今回のＴＤＣタイミングから次回のＴＤＣタイミングまでの間においては、設定上のノック判定区間（ＡＴＤＣ１０°ＣＡ〜７０°ＣＡ）よりも前後に広いＡＴＤＣ５°ＣＡ〜９０°ＣＡの８５°ＣＡ分の期間において、１°ＣＡ相当の積算値ＩＮＴが８５個算出されることとなる。尚、本第３実施形態では、その８５個が、請求項７に記載の「所定個数」に相当している。
【００９４】
（２−３）図８のＳ１６０では、第２実施形態の場合と同様に、エンジン回転速度の変化割合値Ｗ（＝（Ｔｂ／Ｔａ）−１）を算出するが、その後、積算値を選択する処理は行わずにそのままＳ１７０へ進む。
そして、Ｓ１７０では、上記Ｓ１６０で算出した変化割合値Ｗに基づき、下記［２−３−１］〜［２−３−３］の手順でノッキングの有無を判定する。
【００９５】
［２−３−１］：変化割合値Ｗが−Ｇ（Ｇは正の数で例えば０．１）以上で且つ＋Ｇ以下であった場合、即ち、エンジンの加減速が「１００×Ｇ」パーセント以内であり、回転速度がほぼ一定であった場合には、図１１に示すように、今回のＴＤＣタイミングまでに算出されている１°ＣＡ相当の各積算値を、１番目のものから順にｍ個（この例ではｍ＝５個）毎に積算して、ｂ個（本実施形態では、ｂ＝１２個）の積算値を求め、その１２個の積算値（つまり、１２個の５°ＣＡ相当の積算値）を用いてノッキングの有無を判定する。よって、この場合には、設定上のノック判定区間（ＡＴＤＣ１０°ＣＡ〜７０°ＣＡ）相当分の積算値を用いてノッキング判定が行われることとなる。
【００９６】
［２−３−２］：変化割合値Ｗが−Ｇよりも小さかった場合、即ち、エンジンが「１００×Ｇ」パーセントよりも大きく減速していた場合には、図１２の中段に示すように、今回のＴＤＣタイミングまでに算出されている１°ＣＡ相当の各積算値を、１番目のものから順に上記ｍよりも多い一定の個数（例えば６個）毎に積算した１２個の積算値を用いてノッキングの有無を判定する。よって、この場合には、減速後のＡＴＤＣ１０°ＣＡ〜７０°ＣＡ相当分の積算値を用いてノッキング判定が行われることとなる。
【００９７】
［２−３−３］：変化割合値Ｗが＋Ｇよりも大きかった場合、即ち、エンジンが「１００×Ｇ」パーセントよりも大きく加速していた場合には、図１２の下段に示すように、今回のＴＤＣタイミングまでに算出されている１°ＣＡ相当の各積算値を、１番目のものから順に上記ｍよりも少ない一定の個数（例えば４個）毎に積算した１２個の積算値を用いてノッキングの有無を判定する。よって、この場合には、加速後のＡＴＤＣ１０°ＣＡ〜７０°ＣＡ相当分の積算値を用いてノッキング判定が行われることとなる。
【００９８】
以上のような第３実施形態のエンジン制御装置によっても、図１２に示す如く、エンジンが急に加速又は減速した場合でも、設定上のノック判定区間（ＡＴＤＣ１０°ＣＡ〜７０°ＣＡ）相当分の積算値を用いた適切なノッキング判定を行うことが可能になり、エンジンの加減速による影響を一層排除することができる。そして更に、エンジンの加減速状態に拘わらず、常に一定個数の積算値からノッキング判定を行うことができ、ノッキング判定用の処理を固定化することができる。
【００９９】
尚、本第３実施形態においても、第２実施形態と同様に、ＡＴＤＣ５°ＣＡの予想時刻から積算を開始するようにしているが、その５°が、請求項７に記載の「ある角度」に相当し、ＴＤＣタイミングが、請求項７に記載の「クランク軸の回転位置が特定の基準位置となったとき」に相当している。また、上記（２−３）で説明したＳ１６０及びＳ１７０の処理が、請求項７に記載のノック判定手段に相当している。
【０１００】
以上、本発明の一実施形態について説明したが、本発明は、種々の形態を採り得ることは言うまでもない。
例えば、デジタルフィルタ処理及び積算処理を複数系統設けてノッキング判定を行うようにしてもよい。つまり、ノックセンサ信号のＡ／Ｄ変換値に対して、複数種類のデジタルフィルタ処理をそれぞれ行うと共に、その各デジタルフィルタ処理の結果データをそれぞれ積算し、その複数系統の積算値から、ノッキングの有無を判定するようにしても良い。また、この場合、積算値の個数はフィルタ処理毎に変えても良いし同じでも良い。そして、同じ場合には、前述した処理のカウンタＣＮＴや記憶部ｎを、各処理系統で共通に使用することができる。
【０１０１】
一方、ノックセンサとしては、振動式センサでも良いし、イオン電流式センサや筒内圧センサでも良い。
【図面の簡単な説明】
【図１】第１実施形態のエンジン制御装置の構成を表すブロック図である。
【図２】第１実施形態のエンジン制御装置のマイコンが実行する処理の概要を表すタイムチャートである。
【図３】図２における１点火分の処理内容を表すタイムチャートである。
【図４】第１実施形態のマイコンが実行するＴＤＣ立ち下がり時処理を表すフローチャートである。
【図５】第１実施形態のマイコンが実行するゲート開始時刻処理を表すフローチャートである。
【図６】第１実施形態のマイコンが実行するＡ／Ｄ終了時処理を表すフローチャートである。
【図７】エンジンが６気筒で１０μｓ毎にＡ／Ｄ変換する場合の、エンジン回転数（横軸）とＮの値（縦軸）との関係を表すグラフである。
【図８】第２実施形態のマイコンが実行するＴＤＣ立ち下がり時処理を表すフローチャートである。
【図９】第２実施形態においてエンジン回転速度がほぼ一定であった場合の動作を表す図である。
【図１０】第２実施形態においてエンジンが急に減速又は加速した場合の動作を表す図である。
【図１１】第３実施形態においてエンジン回転速度がほぼ一定であった場合の動作を表す図である。
【図１２】第３実施形態においてエンジンが急に減速又は加速した場合の動作を表す図である。
【図１３】従来技術及び問題点を説明するための図の、その１である。
【図１４】従来技術及び問題点を説明するための図の、その２である。
【符号の説明】
１０…エンジン制御装置、３…マルチプレクサ（ＭＰＸ）、４…Ａ／Ｄ変換器、５…デジタルフィルタ処理部、６…積算部、７…ノック判定部、８…マイコン、９…エンジン制御用のＣＰＵ、１１…信号生成回路、ＳＮ１，ＳＮ２…ノックセンサ
【図１】
2004309267.tif 000005
【図２】
2004309267.tif 000006
【図３】
2004309267.tif 000007
【図４】
2004309267.tif 000008
【図５】
2004309267.tif 000009
【図６】
2004309267.tif 000010
【図７】
2004309267.tif 000011
【図８】
2004309267.tif 000012
【図９】
2004309267.tif 000013
【図１０】
2004309267.tif 000014
【図１１】
2004309267.tif 000015
【図１２】
2004309267.tif 000016
【図１３】
2004309267.tif 000017
【図１４】
2004309267.tif 000018