(57)【特許請求の範囲】
【請求項１】
それぞれが内燃機関（２）に対して異なる位置に配置されて、前記内燃機関の振動に応じた検出信号を出力する複数の検出手段（３Ａ，３Ｂ）から、前記検出信号が入力されるノッキング検出装置（３１）であって、
前記各検出手段からの複数の前記検出信号に基づいて、前記内燃機関にノッキングが発生したか否かを判定するノッキング判定手段（Ｓ１１０〜Ｓ２００）を備え、
前記ノッキング判定手段は、
前記複数の検出信号の各々について、その検出信号がノッキングの発生を示しているか否かを判定する第１の判定手段（Ｓ１２０）と、
前記第１の判定手段により前記複数の検出信号の全てがノッキングの発生を示していると判定された場合に（Ｓ１３０：ＹＥＳ）、前記第１の判定手段によりノッキングの発生を示していると判定された前記複数の検出信号の少なくとも２つについて、ノッキングを示す所定の特徴が現れた時刻の時間差が所定範囲内か否かを判定し、前記時間差が前記所定範囲内であることを条件にして、前記内燃機関にノッキングが発生したと判定する第２の判定手段（Ｓ１４０〜Ｓ１６０，Ｓ１８２〜Ｓ２００）と、を備え、
前記検出手段は、前記内燃機関に対して２つ設けられており、
前記ノッキング判定手段は、前記内燃機関の複数の気筒毎について、ノッキングが発生したか否かを判定するようになっており、
更に、前記ノッキング判定手段は、ノッキングが発生したか否かの判定対象とする気筒毎に、前記第２の判定手段が前記時間差の判定に用いる前記所定範囲を切り換えて設定する設定手段（Ｓ１７５）を備えること、
を特徴とするノッキング検出装置。
【請求項２】
請求項１に記載のノッキング検出装置において、
前記各検出手段から出力される前記各検出信号から、ノッキングの周波数成分を抽出する複数のフィルタ手段（９Ａ，９Ｂ）を備え、
前記第１の判定手段と前記第２の判定手段は、前記複数のフィルタ手段から出力される前記検出信号を、処理の対象として動作すること、
を特徴とするノッキング検出装置。
【請求項３】
請求項１又は請求項２に記載のノッキング検出装置において、
前記所定の特徴は、前記検出信号が最大値になったという特徴であること、
を特徴とするノッキング検出装置。
【請求項４】
請求項１ないし請求項３の何れか１項に記載のノッキング検出装置において、
前記検出手段は、マイクであること、
を特徴とするノッキング検出装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、エンジンのノッキング検出装置に関する。
【背景技術】
【０００２】
エンジンの振動をノックセンサにより電気信号に変換し、そのノックセンサからの信号に基づいて、ノッキングの有無（つまり、ノッキングが発生したか否か）を判定するノック検出装置がある（例えば、特許文献１参照）。ノックとは、ノッキングの略である。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平５−３４０２９２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
従来のノック検出装置では、例えばエンジンにおける気筒とは別の部分でノッキングの特徴と類似した振動が発生した場合に、ノッキング有り（つまり、ノッキングが発生した）と誤判定してしまう可能性が高い。
【０００５】
そこで、本発明は、ノッキングの検出精度を向上させることを目的としている。
【課題を解決するための手段】
【０００６】
第１発明のノッキング検出装置には、複数の検出手段から検出信号が入力される。複数の各検出手段は、それぞれが内燃機関に対して異なる位置に配置され、内燃機関の振動に応じた検出信号を出力する。
【０００７】
そして、第１発明のノッキング検出装置は、各検出手段からの複数の検出信号に基づいて、内燃機関にノッキングが発生したか否かを判定するノッキング判定を備える。そのノッキング判定手段は、第１の判定手段と、第２の判定手段とを備える。
【０００８】
第１の判定手段は、複数の検出信号の各々について、その検出信号がノッキングの発生を示しているか否かを判定する。
第２の判定手段は、第１の判定手段により複数の検出信号の全てがノッキングの発生を示していると判定された場合に、動作する。そして、第２の判定手段は、第１の判定手段によりノッキングの発生を示していると判定された前記複数の検出信号の少なくとも２つについて、ノッキングを示す所定の特徴が現れた時刻の時間差が所定範囲内か否かを判定し、その時間差が所定範囲内であることを条件にして、内燃機関にノッキングが発生したと判定する。
【０００９】
内燃機関の気筒内でノッキングが発生してから、各検出手段からの検出信号の各々にノッキングを示す所定の特徴が現れるまでの時間は、ノッキングの発生位置と各検出手段との距離によって決まる。このため、ノッキングが発生した場合に、各検出信号に上記所定の特徴が現れる時刻の時間差は、所定範囲内になると考えられる。逆に、第１の判定手段により複数の検出信号の全てがノッキングの発生を示していると判定されても、少なくとも２つの検出信号についての上記時間差が所定範囲内でなければ、ノッキングは発生していないと判断することができる。その場合には、例えば、エンジンにおける気筒とは別の部分でノッキングの特徴と類似した振動が発生したと考えられる。
【００１０】
そこで、第２の判定手段は、第１の判定手段により複数の検出信号の全てがノッキングの発生を示していると判定された場合に動作して、少なくとも２つの検出信号についての上記時間差が所定範囲内でなければ、ノッキングが発生したとは判定しないようにしている。つまり、上記時間差が所定範囲内か否かにより、本当にノッキングが発生したか否かを確認している。よって、このノッキング検出装置によれば、ノッキングが発生したか否かの判定精度（即ち、ノッキングの検出精度）を向上させることができる。
【００１１】
なお、特許請求の範囲に記載した括弧内の符号は、一つの態様として後述する実施形態に記載の具体的手段との対応関係を示すものであって、本発明の技術的範囲を限定するものではない。
【図面の簡単な説明】
【００１２】
【図１】第１実施形態の電子制御装置（ＥＣＵ）の構成を表す構成図である。
【図２】ノッキング判定期間の説明図である。
【図３】第１実施形態のノッキング判定処理を表すフローチャートである。
【図４】第１実施形態のノッキング判定処理の作用として、ノッキング有りと判定される場合を説明する説明図である。
【図５】第１実施形態のノッキング判定処理の作用として、ノッキング無しと判定される場合を説明する説明図である。
【図６】第２実施形態の電子制御装置（ＥＣＵ）の構成を表す構成図である。
【図７】第２実施形態のノッキング判定処理を表すフローチャートである。
【発明を実施するための形態】
【００１３】
以下に、本発明が適用された実施形態の電子制御装置（以下、ＥＣＵという）について説明する。本実施形態のＥＣＵは、車両のエンジン（内燃機関）を制御するＥＣＵであるが、以下では、ノッキングの検出に関する事項について説明する。尚、ＥＣＵは、「Electronic Control Unit」の略である。
【００１４】
［第１実施形態］
図１に示すように、第１実施形態のＥＣＵ１が制御するエンジン２は、例えば４つの気筒＃１〜＃４を有している。
【００１５】
そして、エンジン２のシリンダーブロック（エンジンブロック）には、気筒＃１〜＃４毎に、２つのノッキングセンサ（以下単に、センサともいう）３Ａ−１，３Ｂ−１〜３Ａ−４，３Ｂ−４がそれぞれ設けられている。
【００１６】
この例において、センサ３Ａ−１，３Ｂ−１〜３Ａ−４，３Ｂ−４は、内蔵の圧電素子によってエンジン２の振動を電圧に変換する非共振型のセンサである。このため、センサ３Ａ−１，３Ｂ−１〜３Ａ−４，３Ｂ−４の出力信号（以下、センサ信号という）は、そのセンサ３Ａ−１，３Ｂ−１〜３Ａ−４，３Ｂ−４の取り付け位置における振動を表す電圧の信号となる。センサ３Ａ−１，３Ｂ−１〜３Ａ−４，３Ｂ−４の各々は、検出手段に相当し、センサ信号は、検出信号に相当する。
【００１７】
尚、センサの符号（３Ａ−１，３Ｂ−１〜３Ａ−４，３Ｂ−４）において、「−」に続く数字をｎ（ｎは１〜４の何れか）とすると、「３Ａ−ｎ」，「３Ｂ−ｎ」は、その符号が付されたセンサが、気筒＃ｎに対応するものであることを意味する。また、以下の説明において、気筒＃１〜＃４を特に区別しない場合には、気筒の符号として、「＃ｎ」を用い、その気筒＃ｎについて設けられている２つのセンサの符号として、「３Ａ−ｎ」，「３Ｂ−ｎ」を用いる。
【００１８】
各気筒＃１〜＃４についての２つ１組のセンサ３Ａ−１，３Ｂ−１〜３Ａ−４，３Ｂ−４は、各気筒＃１〜＃４を挟むように、且つ、各気筒＃１〜＃４の中心軸に対して対称の位置に、設けられている。また、各気筒＃１〜＃４に対するセンサ３Ａ−１，３Ｂ−１〜３Ａ−４，３Ｂ−４の位置関係は、全ての気筒＃１〜＃４で同じになっている。尚、このようなセンサの配置は勿論一例である。
【００１９】
センサ３Ａ−１，３Ｂ−１〜３Ａ−４，３Ｂ−４からのセンサ信号は、ＥＣＵ１に入力される。
ＥＣＵ１は、２つのマルチプレクサ（ＭＰＸ）５Ａ，５Ｂと、２つのアンプ（増幅回路）７Ａ，７Ｂと、２つのフィルタ９Ａ，９Ｂと、当該ＥＣＵ１の動作を司る処理部としてのマイクロコンピュータ（以下、マイコンという）１１と、を備えている。
【００２０】
マルチプレクサ５Ａには、各気筒＃１〜＃４についての一方のセンサ３Ａ−１，３Ａ−２，３Ａ−３，３Ａ−４からのセンサ信号が入力される。そして、マルチプレクサ５Ａは、マイコン１１からの指令に応じて、センサ３Ａ−１〜３Ａ−４からのセンサ信号のうちの何れか１つを選択してアンプ７Ａに出力する。
【００２１】
マルチプレクサ５Ｂには、各気筒＃１〜＃４についての他方のセンサ３Ｂ−１，３Ｂ−２，３Ｂ−３，３Ｂ−４からのセンサ信号が入力される。そして、マルチプレクサ５Ｂは、マイコン１１からの指令に応じて、センサ３Ｂ−１〜３Ｂ−４からのセンサ信号のうちの何れか１つを選択してアンプ７Ｂに出力する。
【００２２】
アンプ７Ａ，７Ｂの各々は、マルチプレクサ５Ａ，５Ｂの各々から入力されるセンサ信号を増幅して出力する。そして、アンプ７Ａの出力はフィルタ９Ａに入力され、アンプ７Ｂの出力はフィルタ９Ｂに入力される。
【００２３】
フィルタ９Ａは、アンプ７Ａから入力されるセンサ信号から、ノッキングの周波数成分（ノッキング特有の振動周波数であり、例えば５〜１５ｋＨｚ）を抽出して出力するバンドパスフィルタである。そして、フィルタ９Ａの出力はマイコン１１に入力される。
【００２４】
フィルタ９Ｂも、アンプ７Ｂから入力されるセンサ信号から、ノッキングの周波数成分を抽出して出力するバンドパスフィルタである。そして、フィルタ９Ｂの出力もマイコン１１に入力される。尚、この例において、フィルタ９Ａ，９Ｂはアナログ回路のフィルタであるが、フィルタ９Ａ，９Ｂはデジタルフィルタでも良い。
【００２５】
マイコン１１は、ＣＰＵ１３と、ＣＰＵ１３が実行するプログラムやデータが記憶されたＲＯＭ１５と、ＣＰＵ１３の演算結果を記憶するＲＡＭ１７と、Ａ／Ｄ変換器（ＡＤＣ）１９と、レジスタ２１と、を備えている。
【００２６】
また、ＥＣＵ１には、気筒＃１〜＃４の各々に燃料を噴射するインジェクタ２３と、気筒＃１〜＃４の各々に点火するイグナイタ２５とが接続されている。尚、図１において、インジェクタ２３とイグナイタ２５は、１つずつ図示しているが、それらは実際には、各気筒＃１〜＃４に対してそれぞれ設けられている。
【００２７】
ＥＣＵ１においては、センサ３Ａ−１〜３Ａ−４からのセンサ信号のうちの何れかが、マルチプレクサ５Ａ及びアンプ７Ａを介してフィルタ９Ａに入力され、フィルタ９Ａを通過したセンサ信号が、マイコン１１に入力される。同様に、センサ３Ｂ−１〜３Ｂ−４からのセンサ信号のうちの何れかが、マルチプレクサ５Ｂ及びアンプ７Ｂを介してフィルタ９Ｂに入力され、フィルタ９Ｂを通過したセンサ信号が、マイコン１１に入力される。尚、アンプ７Ａ，７Ｂと、フィルタ９Ａ，９Ｂとの配置順序は、逆にしても良い。
【００２８】
そして、マイコン１１は、フィルタ９Ａ，９Ｂの各々を通過した各センサ信号をＡ／Ｄ変換器１９によりＡ／Ｄ変換し、そのＡ／Ｄ変換結果を用いて、エンジン２にノッキングが発生したか否か（即ちノッキングの有無）を判定する。本実施形態において、マイコン１１は、気筒＃１〜＃４毎についてノッキングの有無を判定する。尚、以下では、フィルタ９Ａ，９Ｂの各々を通過したセンサ信号のことを、フィルタ後センサ信号ともいう。そして、フィルタ後センサ信号のＡ／Ｄ変換結果のことを、フィルタ後センサ値ともいう。フィルタ後センサ値はノッキングの強度を示すこととなる。
【００２９】
次に、マイコン１１がノッキングの有無を判定するために行う処理について説明する。尚、マイコン１１が行う処理は、実際には、ＣＰＵ１３がＲＯＭ１５内のプログラムを実行することで実現される。
【００３０】
マイコン１１は、各気筒＃１〜＃４について、ノッキングが発生する可能性がある期間を、ノッキング判定期間として設定する。ノッキング判定期間は、ノッキングの有無を判定する対象の期間である。例えば、図２の斜線部で示すように、各気筒＃１〜＃４について、イグナイタ２５による点火タイミングから所定クランク角度分の期間が、ノッキング判定期間Ｋｐとして設定される。所定クランク角度分の期間とは、エンジン２のクランク軸が所定クランク角度だけ回転するのに要する期間である。
【００３１】
尚、図２において、「イグナイタ」の段の波形は、イグナイタ２５への点火パルスを表しており、その点火パルスのハイ（ＯＮ）からロー（ＯＦＦ）への立ち下がりタイミングが、点火タイミングとなる。そして、これらのことは、後述する図４，図５についても同様である。また例えば、気筒＃１〜＃４の点火順序は「＃１→＃２→＃４→＃３」である。そして、図２における３つの斜線部のうち、例えば、左側の斜線部は、気筒＃１のノッキング判定期間Ｋｐであり、中央の斜線部は、気筒＃２のノッキング判定期間Ｋｐであり、右側の斜線部は、気筒＃４のノッキング判定期間Ｋｐである。
【００３２】
マイコン１１は、各気筒＃１〜＃４のノッキング判定期間Ｋｐにおいては、現在のノッキング判定期間Ｋｐに対応する気筒＃ｎについて設けられたセンサ３Ａ−ｎ，３Ｂ−ｎからのセンサ信号を、マルチプレクサ５Ａ，５Ｂに選択させる。そして更に、マイコン１１は、ノッキング判定期間Ｋｐにおいては、各フィルタ９Ａ，９Ｂから出力されるフィルタ後センサ信号の各々について、Ａ／Ｄ変換を一定時間毎に実施すると共に、その一定時間毎のＡ／Ｄ変換結果（フィルタ後センサ値）をＲＡＭ１７に順次格納する。尚、フィルタ後センサ信号のＡ／Ｄ変換間隔である上記一定時間は、フィルタ後センサ信号の波形を把握することができる程度に十分に短い時間に設定されている。
【００３３】
このため、気筒＃ｎのノッキング判定期間Ｋｐの終了時において、ＲＡＭ１７には、気筒＃ｎに対応するセンサ３Ａ−ｎ，３Ｂ−ｎからの各センサ信号について、一定時間毎のフィルタ後センサ値が、ノッキング判定期間Ｋｐの分だけ記憶されていることになる。
【００３４】
そして、マイコン１１は、各気筒＃１〜＃４のノッキング判定期間Ｋｐが終了する毎に、図３のノッキング判定処理を実行する。
図３のノッキング判定処理は、終了したノッキング判定期間Ｋｐに対応する気筒について、ノッキングの有無を判定するための処理である。以下では、気筒＃ｎのノッキング判定期間Ｋｐが終了した場合として説明する。つまり、気筒＃ｎについて、ノッキングの有無を判定するものとして説明する。また、以下では、気筒＃ｎのセンサ３Ａ−ｎからのセンサ信号を、センサ信号Ａといい、フィルタ９Ａを通過したセンサ信号Ａのことを、フィルタ後センサ信号Ａといい、そのフィルタ後センサ信号ＡのＡ／Ｄ変換結果のことを、フィルタ後センサ値Ａという。同様に、気筒＃ｎのセンサ３Ｂ−ｎからのセンサ信号を、センサ信号Ｂといい、フィルタ９Ｂを通過したセンサ信号Ｂのことを、フィルタ後センサ信号Ｂといい、そのフィルタ後センサ信号ＢのＡ／Ｄ変換結果のことを、フィルタ後センサ値Ｂという。
【００３５】
図３に示すように、マイコン１１は、ノッキング判定処理を開始すると、まずＳ１１０にて、ノッキング有無の判定結果を示す判定フラグを、「ノッキング無し」を示す方の“０”に設定する。つまり、判定フラグの初期化を行う。判定フラグは、例えばレジスタ２１に格納される１ビットのデータである。
【００３６】
そして、マイコン１１は、次のＳ１２０にて、気筒＃ｎのセンサ３Ａ−ｎ，３Ｂ−ｎからの各センサ信号Ａ，Ｂについて、ノッキングの発生（ノッキング有り）を示しているか否かを判定する。例えば、マイコン１１は、センサ信号Ａについては、ＲＡＭ１７に記憶されているノッキング判定期間Ｋｐ分のフィルタ後センサ値Ａのうち、予め定められたノッキング判定値Ｎｔｈ以上のフィルタ後センサ値Ａがあるか否かを判定する。そして、ノッキング判定値Ｎｔｈ以上のフィルタ後センサ値Ａがあれば、センサ信号Ａがノッキングの発生を示していると判定する。同様に、マイコン１１は、センサ信号Ｂについては、ＲＡＭ１７に記憶されているノッキング判定期間Ｋｐ分のフィルタ後センサ値Ｂのうち、ノッキング判定値Ｎｔｈ以上のフィルタ後センサ値Ｂがあるか否かを判定する。そして、ノッキング判定値Ｎｔｈ以上のフィルタ後センサ値Ｂがあれば、センサ信号Ｂがノッキングの発生を示していると判定する。
【００３７】
マイコン１１は、次のＳ１３０にて、Ｓ１２０での各センサ信号Ａ，Ｂについての判定結果が全て「ノッキング有り」であるか否かを判定する。各センサ信号Ａ，Ｂについての判定結果が全て「ノッキング有り」、ということは、Ｓ１２０にてセンサ信号Ａ，Ｂの全てがノッキングの発生を示していると判定された、ということである。
【００３８】
そして、マイコン１１は、Ｓ１３０にて否定判定（ＮＯと判定）した場合（つまり、センサ信号Ａ，Ｂのうちの１つでもノッキングの発生を示していなかった場合）には、そのまま当該ノッキング判定処理を終了する。
【００３９】
また、マイコン１１は、Ｓ１３０にて肯定判定（ＹＥＳと判定）した場合（つまり、センサ信号Ａ，Ｂの全てがノッキングの発生を示していた場合）には、Ｓ１４０に進み、判定フラグを、「ノッキング有り」を示す方の“１”に設定する。但し、Ｓ１４０での判定フラグの設定は、仮の判定に基づく設定（つまり、仮の設定）である。
【００４０】
そして、マイコン１１は、次のＳ１５０にて、ノッキング判定期間Ｋｐにおける各センサ信号Ａ，Ｂについて、ノッキングを示す所定の特徴が現れた時刻（以下、特徴時刻という）を検出する。
【００４１】
本実施形態では、例えば、フィルタ後センサ信号Ａ，Ｂが最大値（換言すれば、ピーク値）になったことを、上記所定の特徴としている。このため、マイコン１１は、Ｓ１５０では、フィルタ後センサ信号Ａ，Ｂの各々について、それが最大値となった時刻を、特徴時刻として検出する。
【００４２】
具体的には、マイコン１１は、ＲＡＭ１７に記憶されているノッキング判定期間Ｋｐ分のフィルタ後センサ値Ａのなかから最大値を検出し、その最大値であるフィルタ後センサ値ＡのＡ／Ｄ変換を実施した時刻を、センサ信号Ａについての特徴時刻ｔＡとして記憶する。同様に、マイコン１１は、ＲＡＭ１７に記憶されているノッキング判定期間Ｋｐ分のフィルタ後センサ値Ｂのなかから最大値を検出し、その最大値であるフィルタ後センサ値ＢのＡ／Ｄ変換を実施した時刻を、センサ信号Ｂについての特徴時刻ｔＢとして記憶する。
【００４３】
そして、マイコン１１は、次のＳ１６０にて、Ｓ１５０で検出した特徴時刻ｔＡ，ｔＢの時間差（詳しくは時間差の絶対値＝｜ｔＡ−ｔＢ｜）Ｄｔを算出し、その後、Ｓ１７０に進む。
【００４４】
マイコン１１は、Ｓ１７０では、次のＳ１８０で用いるノッキング有無判定時間Ｒを設定する。尚、ノッキング有無判定時間Ｒについては、後で説明する。
マイコン１１は、Ｓ１８０では、Ｓ１６０で算出した時間差Ｄｔがノッキング判定時間Ｒ以下であるか否かを判定する。尚、時間差Ｄｔの最小値は０であるため、Ｓ１８０での判定は、時間差Ｄｔが「０〜Ｒ」の範囲内であるか否かを判定していることになる。
【００４５】
そして、マイコン１１は、Ｓ１８０にて、時間差Ｄｔがノッキング判定時間Ｒ以下であると判定した場合には、気筒＃ｎについて本当にノッキングが発生していると判断して、判定フラグの設定を変えることなく、そのままＳ２００に進む。
【００４６】
また、マイコン１１は、Ｓ１８０にて、時間差Ｄｔがノッキング判定時間Ｒ以下ではないと判定した場合、つまり、時間差Ｄｔが「０〜Ｒ」の範囲内でない場合には、ノッキングが発生していないと判断して、Ｓ１９０に進む。そして、マイコン１１は、Ｓ１９０では、判定フラグを“１”から“０”に書き換え、その後、Ｓ２００に進む。
【００４７】
マイコン１１は、Ｓ２００では、判定フラグが“１”であるか否かを判定し、判定フラグが“１”でなければ、そのまま当該ノッキング判定処理を終了するが、判定フラグが“１”であれば、Ｓ２１０に進む。そして、マイコン１１は、Ｓ２１０では、ノッキングを解消するための処理として、例えばエンジン２に対する点火タイミングを遅角させる処理を行い、その後、当該ノッキング判定処理を終了する。
【００４８】
ここで、Ｓ１８０での判定に用いられるノッキング有無判定時間Ｒについて説明する。
気筒＃ｎ内でノッキングが発生してから、センサ信号Ａ，Ｂの各々にノッキングを示す所定の特徴が現れるまでの時間（本実施形態では、フィルタ後センサ信号Ａ，Ｂが最大値になるまでの時間）は、ノッキングの発生位置と各センサ３Ａ−ｎ，３Ｂ−ｎとの距離によって決まる。よって、気筒＃ｎ内でノッキングが発生した場合に、Ｓ１６０で算出される時間差Ｄｔは、気筒＃ｎと各センサ３Ａ−ｎ，３Ｂ−ｎとの位置関係によって決まる所定範囲内になると考えられる。逆に、Ｓ１２０にてセンサ信号Ａ，Ｂの全てがノッキングの発生を示していると判定されたとしても、Ｓ１６０で算出される時間差Ｄｔが所定範囲内でなければ、ノッキングは発生していないと判断することができる。
【００４９】
また、本実施形態において、気筒＃ｎの中心軸から各センサ３Ａ−ｎ，３Ｂ−ｎまでの距離は等しいため、気筒＃ｎ内でノッキングが発生した場合の時間差Ｄｔの最小値は０となる。このため、ノッキング有無判定時間Ｒは、気筒＃ｎ内でノッキングが発生した場合の時間差Ｄｔの最大値に設定される。このようなノッキング有無判定時間Ｒは、理論計算と実験との両方又は一方によって定めることができる。本実施形態において、ＲＯＭ１５には、理論計算や実験によって予め定めたノッキング有無判定時間Ｒが記憶されており、マイコン１１は、Ｓ１７０では、ＲＯＭ１５からノッキング有無判定時間Ｒを読み出す処理を行う。
【００５０】
尚、本実施形態では、各気筒＃１〜＃４に対するセンサ３Ａ−１，３Ｂ−１〜３Ａ−４，３Ｂ−４の位置関係が、全ての気筒＃１〜＃４で同じであるため、ノッキング有無判定時間Ｒも、全ての気筒＃１〜＃４で同じ値を用いている。一方、例えば、気筒＃１〜＃４毎に、センサ３Ａ−１，３Ｂ−１〜３Ａ−４，３Ｂ−４までの振動の伝達速度が異なる場合や、センサ３Ａ−１，３Ｂ−１〜３Ａ−４，３Ｂ−４との位置関係が異なる場合には、Ｓ１７０では、ノッキング有無判定時間Ｒを気筒＃１〜＃４毎に異なる値に設定するように構成すれば良い。
【００５１】
次に、ノッキング判定処理（図３）の作用について図４，図５を用い説明する。尚、図４及び図５において、「センサＡ」の段の波形は、フィルタ後センサ信号Ａを表しており、「センサＢ」の段の波形は、フィルタ後センサ信号Ｂを表している。
【００５２】
気筒＃ｎ内でノッキングが発生した場合には、図４に示すように、その気筒＃ｎのノッキング判定期間Ｋｐにおいて、フィルタ後センサ信号Ａとフィルタ後センサ信号Ｂとの両方が、ノッキング判定値Ｎｔｈ以上となる。このため、図３のノッキング判定処理では、Ｓ１２０にて、センサ信号Ａ，Ｂの全てがノッキングの発生を示していると判定されて、Ｓ１３０にてＹＥＳと判定され、Ｓ１４０にて判定フラグが“１”に設定される。更に、この場合には、図４に示すように、図３のＳ１６０で算出される時間差Ｄｔ（＝｜ｔＡ−ｔＢ｜）がノッキング有無判定時間Ｒ以下になる。このため、図３のノッキング判定処理では、Ｓ１８０にてＹＥＳと判定されて、判定フラグは“１”のままになる。つまり、気筒＃ｎについてノッキングが発生していると最終的に判断される。その結果、ノッキングを解消するために、点火タイミングを遅角させる処理が行われる（Ｓ２１０）。
【００５３】
一方、気筒＃ｎのノッキング判定期間Ｋｐにおいて、例えば気筒＃ｎの外でノッキングの特徴と類似した振動が発生したとする。そして、図５に示すように、ノッキング判定期間Ｋｐにおけるフィルタ後センサ信号Ａとフィルタ後センサ信号Ｂとの両方が、ノッキング判定値Ｎｔｈ以上になったとする。すると、図３のノッキング判定処理では、Ｓ１２０にて、センサ信号Ａ，Ｂの全てがノッキングの発生を示していると判定されて、Ｓ１３０にてＹＥＳと判定され、Ｓ１４０にて判定フラグが“１”に設定される。
【００５４】
しかし、図５に示すように、図３のＳ１６０で算出される時間差Ｄｔ（＝｜ｔＡ−ｔＢ｜）がノッキング有無判定時間Ｒよりも大きければ、図３のノッキング判定処理では、Ｓ１８０にてＮＯと判定され、Ｓ１９０にて判定フラグが“１”から“０”に書き換えられる。つまり、ノッキング有無の判定結果が「ノッキング無し」に改められることとなり、最終的にノッキング有りとは判定されない（ノッキング無しと判定される）。その結果、点火タイミングの遅角は実施されない。例えば、気筒＃ｎのセンサ３Ａ−ｎ又はセンサ３Ｂ−ｎからみて気筒＃ｎ側とは反対側で、ノッキングの特徴と類似した振動が発生して、図３のＳ１３０でＹＥＳと判定されたとしても、Ｓ１８０でＮＯと判定して、ノッキング有りと誤判定してしまうことを防止することができる。
【００５５】
よって、本実施形態のＥＣＵ１によれば、ノッキングが発生したか否かの判定精度（ノッキングの検出精度）を向上させることができる。この結果、最小限のノッキング回避制御（点火タイミング制御）でエンジン２をコントロールすることができ、燃費や出力の向上につながる。また一般的に、ノッキング判定は、ノイズによる誤判定を考慮して、複数回の燃焼サイクルでノッキング有りと判定された場合に、ノッキング有りと確定判定する手法が採用されていたが、ＥＣＵ１では、１回の燃焼サイクルでノッキング有りと判定することも可能になる。このため、より早期にノッキングを検出でき、ノッキングによるエンジン２の損傷をより確実に回避することができるようになる。
【００５６】
また、ＥＣＵ１では、センサ３Ａ−１，３Ｂ−１〜３Ａ−４，３Ｂ−４から出力される各センサ信号から、フィルタ９Ａ，９Ｂによってノッキングの周波数成分を抽出し、図３のノッキング判定処理では、フィルタ９Ａ，９Ｂを通過したフィルタ後センサ信号を処理の対象としている。このため、様々な周波数の信号のなかからノッキングで発生する周波数帯域の信号だけを処理の対象とすることができる。よって、無駄な計算を排除して、ノッキングの判定時間を短縮することができる。
【００５７】
また、ＥＣＵ１では、センサ信号における「ノッキングを示す所定の特徴」として、センサ信号（本実施形態ではフィルタ後センサ信号）が最大値になった、という特徴を検出している。最大値を検出する処理は比較的容易であるため、ノッキング判定のための処理負荷を軽減することができる。
【００５８】
また、本実施形態では、エンジン２の気筒＃ｎ毎に、複数（この例では２つ）のセンサ３Ａ−ｎ，３Ｂ−ｎを設けている。そして、ノッキング判定処理では、気筒＃ｎ毎に、その気筒＃ｎに対応するセンサ３Ａ−ｎ，３Ｂ−ｎからのセンサ信号Ａ，Ｂに基づいて、ノッキングが発生したか否かを判定する。このため、ノッキングの発生源とセンサとの距離を近くすることができ、ノッキングに関するＳ／Ｎ比が良好なセンサ信号に基づいて、ノッキングの有無を一層精度良く判定することができる。また、気筒間の影響を受けにくいという利点がある。
【００５９】
［第２実施形態］
次に、第２実施形態のＥＣＵについて説明する。尚、第１実施形態と同様の構成要素や処理については、第１実施形態と同じ符号を用いる。
【００６０】
第２実施形態は、第１実施形態と比較すると、下記〈１〉〜〈３〉の事項が異なる。
〈１〉図６に示すように、第２実施形態のＥＣＵ３１が制御するエンジン２のシリンダーブロックには、気筒＃１〜＃４が並ぶ方向の両端に２つのセンサ３Ａ，３Ｂが設けられている。その２つのセンサ３Ａ，３Ｂは、第１実施形態のセンサ３Ａ−１，３Ｂ−１〜３Ａ−４，３Ｂ−４と同様のセンサであるが、全ての気筒＃１〜＃４について共通のセンサとして設けられている。
【００６１】
尚、本第２実施形態においても、センサ３Ａ，３Ｂの出力信号を、センサ信号という。また、本第２実施形態では、センサ３Ａからのセンサ信号を、センサ信号Ａといい、センサ３Ｂからのセンサ信号を、センサ信号Ｂという。
【００６２】
〈２〉第２実施形態のＥＣＵ３１には、マルチプレクサ５Ａ，５Ｂが設けられていない。そして、センサ３Ａからのセンサ信号Ａがアンプ７Ａ及びフィルタ９Ａを介してマイコン１１に入力され、センサ３Ｂからのセンサ信号Ｂがアンプ７Ｂ及びフィルタ９Ｂを介してマイコン１１に入力される。
【００６３】
このため、マイコン１１は、マルチプレクサ５Ａ，５Ｂに対する選択切り換え制御は実施しない。そして、マイコン１１は、各気筒＃１〜＃４のノッキング判定期間Ｋｐにおいては、各フィルタ９Ａ，９Ｂから出力されるフィルタ後センサ信号Ａ，Ｂの各々について、Ａ／Ｄ変換を一定時間毎に実施すると共に、その一定時間毎のＡ／Ｄ変換結果であるフィルタ後センサ値Ａ，ＢをＲＡＭ１７に順次格納する。
【００６４】
〈３〉マイコン１１は、図３のノッキング判定処理に代えて、図７のノッキング判定処理を実行する。
図７のノッキング判定処理は、図３のノッキング判定処理と比較すると、Ｓ１７０に代えて、Ｓ１７５が設けられており、Ｓ１８０に代えて、Ｓ１８２〜Ｓ１８８が設けられている。
【００６５】
尚、図７のノッキング判定処理におけるＳ１２０，Ｓ１３０，Ｓ１５０，Ｓ１６０では、気筒＃１〜＃４のうちの何れのノッキング判定期間Ｋｐが終了した場合でも、センサ３Ａ，３Ｂからの各センサ信号Ａ，Ｂについて、第１実施形態と同じ処理が行われる。
【００６６】
マイコン１１は、図７のノッキング判定処理では、Ｓ１６０の次に、Ｓ１７５へ進む。
そして、マイコン１１は、Ｓ１７５では、後のＳ１８８での判定に用いる２つのノッキング有無判定時間Ｒ１，Ｒ２として、ノッキング判定対象の気筒に応じた値を設定する。
【００６７】
ノッキング判定対象の気筒とは、気筒＃１〜＃４のうち、ノッキング有無の判定対象とする気筒であり、今回ノッキング判定期間Ｋｐが終了した気筒のことである。ノッキング有無判定時間Ｒ１，Ｒ２のうちのＲ１は、ノッキング判定対象の気筒内でノッキングが発生した場合の時間差Ｄｔの最小値であり、ノッキング有無判定時間Ｒ１，Ｒ２のうちのＲ２は、ノッキング判定対象の気筒内でノッキングが発生した場合の時間差Ｄｔの最大値である。時間差Ｄｔは、Ｓ１６０で算出される時間差Ｄｔのことである。
【００６８】
このようなノッキング有無判定時間Ｒ１，Ｒ２も、理論計算と実験との両方又は一方によって定められて、ＲＯＭ１５に記憶されている。このため、マイコン１１は、Ｓ１７５では、ＲＯＭ１５から、ノッキング判定対象の気筒について用意されたノッキング有無判定時間Ｒ１，Ｒ２を読み出すこととなる。
【００６９】
マイコン１１は、Ｓ１７５の次にＳ１８２に進み、ノッキング判定対象の気筒が、気筒＃１，＃２の何れかであるか否かを判定し、肯定判定（ＹＥＳと判定）した場合には、Ｓ１８４に進む。
【００７０】
そして、マイコン１１は、Ｓ１８４では、Ｓ１５０で検出したセンサ信号Ａ，Ｂについての特徴時刻ｔＡ，ｔＢを比較して、「ｔＡ＜ｔＢ」であるか否か（つまり、特徴時刻ｔＡが特徴時刻ｔＢよりも前であるか否か）を判定し、「ｔＡ＜ｔＢ」であれば、Ｓ１８８に進む。
【００７１】
また、マイコン１１は、Ｓ１８２にて、否定判定（ＮＯと判定）した場合、つまり、ノッキング判定対象の気筒が、気筒＃３，＃４の何れかである場合には、Ｓ１８６に進む。
そして、マイコン１１は、Ｓ１８６では、Ｓ１５０で検出したセンサ信号Ａ，Ｂについての特徴時刻ｔＡ，ｔＢを比較して、「ｔＡ＞ｔＢ」であるか否か（つまり、特徴時刻ｔＡが特徴時刻ｔＢよりも後であるか否か）を判定し、「ｔＡ＞ｔＢ」であれば、Ｓ１８８に進む。
【００７２】
マイコン１１は、Ｓ１８８では、Ｓ１６０で算出した時間差Ｄｔが、Ｓ１７５で設定したＲ１からＲ２までの範囲内であるか否かを判定する。
そして、マイコン１１は、Ｓ１８８にて、時間差Ｄｔが「Ｒ１〜Ｒ２」の範囲内であると判定した場合には、ノッキング判定対象の気筒について本当にノッキングが発生していると判断し、判定フラグの設定を変えることなく、そのまま前述のＳ２００に進む。
【００７３】
また、マイコン１１は、Ｓ１８８にて、時間差Ｄｔが「Ｒ１〜Ｒ２」の範囲内ではないと判定した場合には、ノッキングが発生していないと判断して、Ｓ１９０に進み、そのＳ１９０で判定フラグを“０”に書き換えた後、Ｓ２００に進む。
【００７４】
一方、マイコン１１は、Ｓ１８４にて「ｔＡ＜ｔＢ」ではないと判定した場合、あるいは、Ｓ１８６にて「ｔＡ＞ｔＢ」ではないと判定した場合にも、Ｓ１９０に進み、そのＳ１９０で判定フラグを“０”に書き換えた後、Ｓ２００に進む。
【００７５】
つまり、第２実施形態では、エンジン２に設けた２つのセンサ３Ａ，３Ｂを、各気筒＃１〜＃４について共通に用いる構成であるため、ノッキング判定対象の気筒が変わると、そのノッキング判定対象の気筒と各センサ３Ａ，３Ｂとの位置関係が変わる。
【００７６】
このため、マイコン１１は、Ｓ１７５の処理により、ノッキング判定対象の気筒毎に、Ｓ１８８での時間差Ｄｔの判定に用いるノッキング有無判定時間Ｒ１，Ｒ２を切り換えて設定するようになっている。
【００７７】
よって、本第２実施形態のＥＣＵ３１によれば、エンジン２に２つのセンサ３Ａ，３Ｂを設けただけで、気筒＃１〜＃４毎のノッキング有無判定を精度良く行うことができる。
また、気筒＃１，＃２からみて、センサ３Ａの位置はセンサ３Ｂの位置よりも近く、気筒＃３，＃４からみて、センサ３Ｂの位置はセンサ３Ａの位置よりも近い。
【００７８】
よって、気筒＃１，＃２の何れかがノッキング判定対象である場合に、そのノッキング判定対象の気筒内でノッキングが発生したならば、センサ信号Ａについての特徴時刻ｔＡは、センサ信号Ｂについての特徴時刻ｔＢよりも前になるはずである。
【００７９】
また、気筒＃３，＃４の何れかがノッキング判定対象である場合に、そのノッキング判定対象の気筒内でノッキングが発生したならば、センサ信号Ａについての特徴時刻ｔＡは、センサ信号Ｂについての特徴時刻ｔＢよりも後になるはずである。
【００８０】
このため、マイコン１１は、気筒＃１，＃２の何れかがノッキング判定対象である場合には（Ｓ１８２：ＹＥＳ）、Ｓ１８４にて「ｔＡ＜ｔＢ」であるか否かを判定し、「ｔＡ＜ｔＢ」でなければ（Ｓ１８４：ＮＯ）、ノッキングが発生していないと判断している。同様に、マイコン１１は、気筒＃３，＃４の何れかがノッキング判定対象である場合には（Ｓ１８２：ＮＯ）、Ｓ１８６にて「ｔＡ＞ｔＢ」であるか否かを判定し、「ｔＡ＞ｔＢ」でなければ（Ｓ１８６：ＮＯ）、ノッキングが発生していないと判断している。
【００８１】
このように、図７におけるＳ１８２，Ｓ１８４，Ｓ１８６では、特徴時刻ｔＡ，ｔＢのどちらが先になるかの矛盾も検出して、ノッキング有りとの誤判定を防止している。換言すれば、特徴時刻ｔＡ，ｔＢのどちらが先になるかという条件も、ノッキング有りと判定する条件に加えている。また、第２実施形態では、Ｓ１８２〜Ｓ１８６とＳ１８８とのトータルで、「ｔＡ−ｔＢ」という正負符号付きの時間差が所定範囲内であるか否かを判定していることとなる。よって、ノッキング有無の判定をより精度良く行うことができる。
【００８２】
［他の実施形態１］
例えば、第１，第２実施形態において、センサ信号における「ノッキングを示す所定の特徴」としては、センサ信号（上記各実施形態ではフィルタ後センサ信号）がノッキング判定値Ｎｔｈ以上になった、という特徴を検出しても良い。その場合、図３又は図７のＳ１５０では、フィルタ後センサ信号Ａ，Ｂの各々がノッキング判定値Ｎｔｈ以上となった各時刻を、特徴時刻ｔＡ，ｔＢの各々として検出することとなる。
【００８３】
［他の実施形態２］
例えば、第１実施形態において、エンジン２の気筒＃ｎ毎に、３つ以上のノッキングセンサをそれぞれ設けても良い。
【００８４】
その場合、図３のＳ１２０では、気筒＃ｎの全てのセンサからの各センサ信号について、ノッキングの発生を示しているか否かを判定する。
そして、図３のＳ１３０でＹＥＳと判定した場合には、例えば、各センサ信号の２つずつについて、それぞれ前述の時間差Ｄｔを算出し、その時間差Ｄｔの各々が、予め定めた所定範囲内でなければ、Ｓ１９０の処理を行うようにすれば良い。
【００８５】
また例えば、センサの数が３つ以上であっても、各センサ信号のうちの何れか２つだけについて、前述の時間差Ｄｔを算出し、その時間差Ｄｔが所定範囲内でなければ、Ｓ１９０の処理を行うようにしても良い。
【００８６】
一方、図１のように気筒＃ｎ毎に２つのセンサをそれぞれ設けた場合においても、気筒＃ｎ毎に３つ以上のセンサをそれぞれ設けた場合と同様の処理を行うこともできる。つまり、各気筒についてのノッキング判定を、他の気筒用のセンサも用いて実施すれば良い。例えば、気筒＃１についてのノッキング判定を行う場合に、センサ３Ａ−１，３Ａ−２からのセンサ信号だけではく、気筒＃２用のセンサ３Ａ−２，３Ｂ−２からのセンサ信号も用いる、といったことも可能である。
【００８７】
［他の実施形態３］
例えば、複数のノッキングセンサは、エンジン２に対して、同一平面上に配置することに限らず、立体的に配置しても良い。例えば、３つのセンサのうち、１つをエンジン２の上面に、他の１つをエンジン２の下面に、残りの１つをエンジン２の側面に、それぞれ設けるようにしても良い。
【００８８】
［他の実施形態４］
例えば、第１，第２実施形態において、検出手段としては、センサ３Ａ−１，３Ｂ−１〜３Ａ−４，３Ｂ−４，３Ａ，３Ｂに代えて、マイク（音センサ）を用いても良い。マイクを用いれば、エンジン２の振動を、空気を介して検出することとなるため、エンジン２の個体差や構造差によらずに、前述の時間差Ｄｔを正しく検出することができ、延いては、ノッキングの判定精度を向上させることができる。
【００８９】
［他の実施形態５］
例えば、第１，第２実施形態のＥＣＵ１の構成は、一般的なノッキング試験装置にも適用することができる。
【００９０】
［他の実施形態６］
例えば、第１実施形態においては、図３のＳ１８０でＹＥＳと判定してからＳ２００に進む前に、判定フラグを“１”に設定するようにしても良い。その場合、Ｓ１４０とＳ１９０の処理は削除することができる。このような変形は、第２実施形態についても同様に適用することができる。
【００９１】
［他の実施形態７］
例えば、第１，第２実施形態において、ノッキングセンサとしては、共振型のノッキングセンサを用いても良い。一般的に、共振型ノッキングセンサは、予め定められたノッキング周波数の振動を一定レベル以上検出すると出力電圧が大きくなる。このため、共振型ノッキングセンサを用いた場合には、図３又は図７のノッキング判定処理が、フィルタ後センサ信号に対してではなく、共振型ノッキングセンサからのセンサ信号（検出信号に相当）に対して実施されるようにすれば良い。その場合、図１又は図６のフィルタ９Ａ，９Ｂを削除するか、あるいは、フィルタ９Ａ，９Ｂの代わりに、ノイズフィルタとしてのローパスフィルタを用いることができる。また、その場合、図３又は図７におけるＳ１２０やＳ１５０の処理は、センサ信号を入力とするハードウェア回路によって実施するように構成することもできる。
【００９２】
［他の実施形態８］
図３又は図７におけるＳ１２０の判定処理（センサ信号についてノッキング有りを示しているか否かを判定する処理）としては、ノッキング判定のための他の公知の処理でも良い。
【００９３】
以上、本発明の実施形態について説明したが、本発明は上記実施形態に限定されることなく、種々の形態を採り得る。また、前述の数値も一例であり他の値でも良い。
例えば、上記他の実施形態１〜８は組み合わせて適用しても良い。また、上記実施形態における１つの構成要素が有する機能を複数の構成要素として分散させたり、複数の構成要素が有する機能を１つの構成要素に統合させたりしてもよい。また、上記実施形態の構成の少なくとも一部を、同様の機能を有する公知の構成に置き換えてもよい。また、上記実施形態の構成の一部を省略してもよい。また、上記実施形態の構成の少なくとも一部を、他の上記実施形態の構成に対して付加又は置換してもよい。なお、特許請求の範囲に記載した文言によって特定される技術思想に含まれるあらゆる態様が本発明の実施形態である。また、上述したＥＣＵの他、当該ＥＣＵを構成要素とするシステム、当該ＥＣＵとしてコンピュータを機能させるためのプログラム、このプログラムを記録した媒体、ノッキング検出方法など、種々の形態で本発明を実現することもできる。
【符号の説明】
【００９４】
１，３１…ＥＣＵ（電子制御装置）、２…エンジン（内燃機関）、３Ａ−１，３Ｂ−１〜３Ａ−４，３Ｂ−４，３Ａ，３Ｂ…ノッキングセンサ
【図１】
0006424718.tif 000002
【図２】
0006424718.tif 000003
【図３】
0006424718.tif 000004
【図４】
0006424718.tif 000005
【図５】
0006424718.tif 000006
【図６】
0006424718.tif 000007
【図７】
0006424718.tif 000008