(57)【要約】【課題】ノック周波数の選定やノック判定のしきい値の設定をエンジン毎に事前に行わずにノックの自動検出を可能にした内燃機関のノック検出装置を提供すること。【解決手段】各筒内圧センサ出力に含まれる振動成分の振幅相当量Ａｍｐ［ｉ］を算出し（Ｓ６００）、その最大値Ａｍｐｍａｘの任意サイクル加算平均値に基づきしきい値１，２を算出する（Ｓ８００）ので、ノック周波数の選定やしきい値の設定をエンジン毎に事前に行わずにノックを自動検出できる。また、ノック無しサイクルだけの最大値Ａｍｐｍａｘの加算平均値に基づきしきい値を再計算する。再計算したしきい値が前回値と同じになるまで、ノック判定を繰り返すことでしきい値が下がっていく。このため、遅角側の点火時期でしきい値を計算し、その後徐々に進角すると同時にしきい値を計算し直しながらノックを検出する場合と同様の判定結果が得られる。【選択図】　　　図２
2004052750.tif 000002
【特許請求の範囲】
【請求項１】
内燃機関の各気筒の筒内圧センサ出力を高周波サンプリングした筒内圧データに基づき、各筒内圧センサ出力に含まれる振動成分の振幅相当量と、該振幅相当量の最大値或いは積分値とを気筒毎およびサイクル毎に算出するように構成された内燃機関のノック検出装置であって、
前記最大値或いは積分値の任意サイクル分の加算平均値に基づきしきい値を算出するしきい値算出手段と、前記最大値或いは積分値と前記しきい値との比較によりノック判定を行なうノック判定手段とを備えることを特徴とする内燃機関のノック検出装置。
【請求項２】
前記ノック判定手段は前記ノック判定を気筒毎およびサイクル毎に行うことを特徴とする請求項１に記載の内燃機関のノック検出装置。
【請求項３】
前記しきい値算出手段は、任意サイクルのうちノック無しと判定されたサイクルだけの前記最大値或いは積分値の加算平均値に基づき前記しきい値を再計算し、前記ノック判定手段は、ノック無しと判定されたサイクルのノック判定を前記再計算したしきい値に基づき再度行なうことを特徴とする請求項１又は２に記載の内燃機関のノック検出装置。
【請求項４】
前記しきい値は、前記最大値或いは積分値の任意サイクル分の加算平均値とその標準偏差を整数倍した値との加算値であることを特徴とする請求項１〜３のいずれか一項に記載の内燃機関のノック検出装置。
【請求項５】
前記ノック判定手段は、前記再計算したしきい値の今回値がその前回値と同じになるまで、ノック無しと判定されたサイクルに対するノック判定を繰り返すことを特徴とする請求項１〜４のいずれか一項に記載の内燃機関のノック検出装置。
【請求項６】
前記しきい値算出手段は、点火時期を遅角側の値に設定して内燃機関を任意サイクル運転したときに得られる前記最大値或いは積分値の任意サイクル分の加算平均値に基づきしきい値を算出し、この算出後、前記ノック判定手段は、点火時期を前記遅角側の値から進角させて内燃機関をさらに任意サイクル運転したときに得られる前記最大値或いは積分値と前記遅角側でのしきい値との比較により気筒毎およびサイクル毎にノック判定を行い、このノック判定後、前記しきい値算出手段は、任意サイクルのうち前記遅角側のしきい値に基づくノック判定によりノック無しと判定されたサイクルだけの前記最大値或いは積分値の加算平均値に基づきしきい値を再計算し、前記ノック判定手段は、前記再計算したしきい値に基づきノック無しと判定されたサイクルのノック判定を再度行なうことを特徴とする請求項１〜４のいずれか一項に記載の内燃機関のノック検出装置。
【請求項７】
前記しきい値算出手段は、筒内圧最大位置以前の所定のクランク角範囲を含む第１区間での前記最大値或いは積分値の任意サイクル分の加算平均値に基づきしきい値を算出し、前記ノック判定手段は、筒内圧最大位置以降の所定のクランク角範囲を含む第２区間での前記最大値或いは積分値と前記しきい値との比較により気筒毎およびサイクル毎にノック判定を行ない、この判定後、前記しきい値算出手段は、任意サイクルのうちノック判定によりノック無しと判定されたサイクルだけの前記第２区間での前記最大値或いは積分値の加算平均値に基づきしきい値を再計算し、前記ノック判定手段は、前記再計算したしきい値に基づきノック無しと判定されたサイクルのノック判定を再度行なうことを特徴とする請求項１〜４のいずれか一項に記載の内燃機関のノック検出装置。
【請求項８】
前記各気筒の筒内圧センサ出力を高周波サンプリングするとともに、前記しきい値算出手段および前記ノック判定手段の機能を有するノック検出手段が前記内燃機関の運転状態を制御する電子制御装置に実装され、該電子制御装置は、前記ノック検出手段から送られる前記ノック判定の結果に基づき点火時期等の前記運転状態の制御を実行することを特徴とする請求項１〜５のいずれか一項に記載の内燃機関のノック検出装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、内燃機関のノック検出装置に関する。
【０００２】
【従来の技術】
一般に、内燃機関としてのエンジンで発生するノック波形の周波数（ノック周波数）は、エンジン毎に異なり、シリンダのボア径で決まる。そのため、筒内圧センサの出力或いはブロック振動センサの出力からノック波形を抽出するのにバンドパスフィルタ等のフィルタを使う方法が主流である。
【０００３】
このような方法でノック（ノッキング）を検出するノック検出装置として、筒内圧センサの出力信号から所定のノック周波数帯域（１２〜１４ＫＨｚ程度）の振動成分をフィルタにより抽出するものが知られている（例えば、特許文献１）。
【０００４】
【特許文献１】
実公平４−５７３４号公報。
【０００５】
【発明が解決しようとする課題】
ところが、上記前者の従来技術では、各気筒の筒内圧センサの出力信号から所定のノック周波数帯域の信号成分をバンドパスフィルタ等のフィルタにより抽出するので、エンジン毎にノック周波数を事前に特定し、その周波数に応じたフィルタ中心波長をもつバンドパスフィルタを選定する必要がある。このようなノック周波数の特定とバンドパスフィルタの選定は、人間が行なう必要があるとともに、内燃機関の点火時期、燃料増量値、ＶＶＴ進角等の自動適合をする際に必須となるノックの自動検出を実現できない。
【０００６】
これと同様な問題は、エンジンのシリンダブロックに直接取り付けるブロック振動センサでノックを検出するノック検出装置においても発生する。すなわち、このノック検出装置では、機械ノイズ等のノック以外の振動成分とノックによる振動発生成分とを分離しなければならない。このため、事前に、ノック周波数の選定と、その周波数に応じたフィルタ中心波長をもつバンドパスフィルタの設定と、センサ出力と比較されるノック判定のしきい値の設定とを行なう必要がある。なぜなら、ブロック振動センサでは、シリンダブロックに伝わるあらゆる振動を拾ってしまうため、ノック振動のみを分離する必要があるが、ノック周波数はエンジン毎に異なるとともに、機械ノイズの発生周波数も異なるからである。ところで、ノック周波数に応じたバンドパスフィルタの設定やしきい値の設定をする際には、まずはそのエンジンで実際に聴覚で聞えるノックを発生させて、その時のセンサ出力のＦＦＴ解析によりノック共振周波数がどこに有るのかを特定する必要がある。しかし、ノック共振周波数には機械ノイズ周波数のピークが重なることも有り得るため、必ずしもＳ／Ｎが良いとは限らない。したがって、ノック判定のためのしきい値も一義的には決まらず、エンジン毎の適合が必要となる。
【０００７】
本発明は、このような従来の問題点に着目してなされたもので、その目的は、ノック周波数の選定やノック判定のしきい値の設定をエンジン毎に事前に行わずにノックの自動検出を可能にした内燃機関のノック検出装置を提供することにある。
【０００８】
【課題を解決するための手段】
以下、上記目的を達成するための手段及びその作用効果について記載する。
請求項１に係る発明は、内燃機関の各気筒の筒内圧センサ出力を高周波サンプリングした筒内圧データに基づき、各筒内圧センサ出力に含まれる振動成分の振幅相当量と、該振幅相当量の最大値或いは積分値とを気筒毎およびサイクル毎に算出するように構成された内燃機関のノック検出装置であって、前記最大値或いは積分値の任意サイクル分の加算平均値に基づきしきい値を算出するしきい値算出手段と、前記最大値或いは積分値と前記しきい値との比較によりノック判定を行なうノック判定手段とを備えることを要旨とする。
【０００９】
この構成によれば、各筒内圧センサ出力に含まれる振動成分の振幅相当量の最大値或いは積分値の任意サイクル分の加算平均値に基づきノック判定のしきい値が算出される。したがって、ノック周波数の選定やノック判定のしきい値の設定をエンジン毎に事前に行わずにノックを自動検出することができる。
【００１０】
請求項２に係る発明は、請求項１に記載の内燃機関のノック検出装置において、前記ノック判定手段は前記ノック判定を気筒毎およびサイクル毎に行うことを要旨とする。
【００１１】
この構成によれば、ノック判定を気筒毎およびサイクル毎に行うことができる。つまり、気筒毎およびサイクル毎に「ノック」か「ノイズ」の判定結果が得られる。例えば、１気筒の４サイクル目が「ノック」であるという判定結果が得られる。このような判定結果が得られるので、内燃機関の点火時期、燃料増量値、ＶＶＴ進角等を自動適合する自動適合用ノック自動検出装置に適用する場合、きめの細かい自動適合が可能になる。
【００１２】
一方、内燃機関の運転状態を制御する電子制御装置に組み込んでノック判定結果に基づき点火時期等を制御するノック制御装置に適用する場合、気筒毎およびサイクル毎のノック判定結果に基づき点火時期等をきめ細かく制御することができる。
【００１３】
請求項３に係る発明は、請求項１又は２に記載の内燃機関のノック検出装置において、前記しきい値算出手段は、任意サイクルのうちノック無しと判定されたサイクルだけの前記最大値或いは積分値の加算平均値に基づき前記しきい値を再計算し、前記ノック判定手段は、ノック無しと判定されたサイクルのノック判定を前記再計算したしきい値に基づき再度行なうことを要旨とする。
【００１４】
この構成によれば、任意サイクルのうちノック無しと判定されたサイクルだけの振幅相当量の最大値或いは積分値の加算平均値と標準偏差よりしきい値を再計算する。そして、ノック無しと判定されたサイクルのノック判定を再計算したしきい値に基づき再度行なう。このため、各筒内圧センサ出力を高周波サンプリングした任意サイクル内に、ノック強度の強いサイクルが頻度大で含まれているためにしきい値が高くなっている場合でも、小レベルのノックを検出できる。
【００１５】
このため、上記自動適合用ノック自動検出装置に適用する場合、必ずノックが発生していない遅角側の点火時期で任意サイクル運転してしきい値を計算し、その後徐々に進角させた任意サイクル運転を何回か繰り返し、該各運転でしきい値を計算し直しながらノックを検出する点火時期設定方法を採る必要がない。これにより、自動適合時の点火時期設定方法が制限されず、適合時間が短縮される。したがって、自動適合用ノック自動検出装置に適用する場合、ノック検出性を向上させることができ、自動適合時の点火時期設定方法が制限されることがなく、また、適合時間を短縮することができる。
【００１６】
一方、ノック制御装置に適用する場合、車両走行時においてノックのしきい値を随時更新することが可能になり、最適な点火時期を常に設定することができる。
【００１７】
請求項４に係る発明は、請求項１〜３のいずれか一項に記載の内燃機関のノック検出装置において、前記しきい値は、前記最大値或いは積分値の任意サイクル分の加算平均値とその標準偏差を整数倍した値との加算値であることを要旨とする。
【００１８】
この構成によれば、前記筒内圧データを任意サイクル例えば１００サイクル分取ると、振幅相当量の最大値或いは積分値の１００サイクル分の加算平均値および標準偏差は、その取った筒内圧データから自動的に求まってしまう。すなわち、ノック判定のためのしきい値は、内燃機関毎に固有の値を設定する必要が無く、そのしきい値を自動で設定することができる。また、そのしきい値は、前記最大値或いは積分値の任意サイクル分の加算平均値だけでなく、その標準偏差を整数倍した値を加味して求められるので、そのしきい値を任意サイクルでの最大値或いは積分値のばらつきに応じて設定することができる。
【００１９】
請求項５に係る発明は、請求項１〜４のいずれか一項に記載の内燃機関のノック検出装置において、前記ノック判定手段は、前記再計算したしきい値の今回値がその前回値と同じになるまで、ノック無しと判定されたサイクルに対するノック判定を繰り返すことを要旨とする。
【００２０】
この構成によれば、再計算したしきい値の今回値がその前回値と同じになるまで、ノック無しと判定されたサイクルに対するノック判定を繰り返すことにより、しきい値が徐々に下がっていく。これにより、そのしきい値は、ノックの発生しない遅角側から徐々に進角させることでノックを検出する場合のしきい値に収束していく。このため、自動適合用ノック自動検出装置に適用する場合、上述した点火時期設定方法を採る場合と同様のノック判定結果を短時間で得ることができる。
【００２１】
請求項６に係る発明は、請求項１〜４のいずれか一項に記載の内燃機関のノック検出装置において、前記しきい値算出手段は、点火時期を遅角側の値に設定して内燃機関を任意サイクル運転したときに得られる前記最大値或いは積分値の任意サイクル分の加算平均値に基づきしきい値を算出し、この算出後、前記ノック判定手段は、点火時期を前記遅角側の値から進角させて内燃機関をさらに任意サイクル運転したときに得られる前記最大値或いは積分値と前記遅角側でのしきい値との比較により気筒毎およびサイクル毎にノック判定を行い、このノック判定後、前記しきい値算出手段は、任意サイクルのうち前記遅角側のしきい値に基づくノック判定によりノック無しと判定されたサイクルだけの前記最大値或いは積分値の加算平均値に基づきしきい値を再計算し、前記ノック判定手段は、前記再計算したしきい値に基づきノック無しと判定されたサイクルのノック判定を再度行なうことを要旨とする。
【００２２】
この構成によれば、再計算したしきい値に基づきノック無しと判定された全てのノイズサイクルのノック判定を一度だけ行ない、これらのノイズサイクルについて「ノック」か「ノイズ」の最終的なノック判定を確定する。このため、自動適合用ノック自動検出装置に適用する場合、気筒毎およびサイクル毎のノック判定結果を短時間で得ることができ、適合時間を短縮することができる。また、遅角側でのしきい値と再計算したしきい値は値が異なるが、一度ノック無しと判定された全てのノイズサイクルに対して再度ノック判定をするので、ノック誤判定を回避できる。
【００２３】
請求項７に係る発明は、請求項１〜４のいずれか一項に記載の内燃機関のノック検出装置において、前記しきい値算出手段は、筒内圧最大位置以前の所定のクランク角範囲を含む第１区間での前記最大値或いは積分値の任意サイクル分の加算平均値に基づきしきい値を算出し、前記ノック判定手段は、筒内圧最大位置以降の所定のクランク角範囲を含む第２区間での前記最大値或いは積分値と前記しきい値との比較により気筒毎およびサイクル毎にノック判定を行ない、この判定後、前記しきい値算出手段は、任意サイクルのうちノック判定によりノック無しと判定されたサイクルだけの前記第２区間での前記最大値或いは積分値の加算平均値に基づきしきい値を再計算し、前記ノック判定手段は、前記再計算したしきい値に基づきノック無しと判定されたサイクルのノック判定を再度行なうことを要旨とする。
【００２４】
この構成によれば、再計算したしきい値に基づきノック無しと判定された全てのノイズサイクルのノック判定を一度だけ行ない、これらのノイズサイクルについて「ノック」か「ノイズ」の最終的なノック判定を確定する。このため、自動適合用ノック自動検出装置に適用する場合、気筒毎およびサイクル毎のノック判定結果を短時間で得ることができる。また、第１区間でのデータから求めたしきい値と、第２区間でのデータから求めたしきい値とは値が異なるが、一度ノック無しと判定された全てのノイズサイクルに対して再度ノック判定をするので、ノック誤判定を回避できる。
【００２５】
請求項８に係る発明は、請求項１〜５のいずれか一項に記載の内燃機関のノック検出装置において、前記各気筒の筒内圧センサ出力を高周波サンプリングするとともに、前記しきい値算出手段および前記ノック判定手段の機能を有するノック検出手段が前記内燃機関の運転状態を制御する電子制御装置に実装され、該電子制御装置は、前記ノック検出手段から送られる前記ノック判定の結果に基づき点火時期等の前記運転状態の制御を実行することを要旨とする。
【００２６】
この構成によれば、車両走行時においてノックのしきい値を随時更新することが可能になり、最適な点火時期を常に設定することができる。
【００２７】
【発明の実施の形態】
以下、本発明に係る内燃機関のノック検出装置を具体化した各実施形態を図面に基づいて説明する。
【００２８】
［　第１実施形態］
図１は、第１実施形態に係る自動適合用ノック自動検出装置の全体構成を模式的に示している。この自動適合用ノック自動検出装置は、エンジンの点火時期、燃料増量値、ＶＶＴ進角等を自動適合化するための装置であり、筒内圧を利用してノックを自動検出するものである。ここにいう「ＶＶＴ」とは、エンジン２１の吸気カムシャフト（図示略）のクランクシャフト（図示略）に対する相対角を連続的に変化させるための可変バルブタイミング機構をいう。
【００２９】
エンジン２１には、クランク角センサ２２および筒内圧センサ２４が取り付けられている。筒内圧センサ２４は、４気筒エンジン２１の各気筒に設けられている。クランク角センサ２２は、クランクシャフトの１回転につき所定角度毎（例えば１５度毎）にパルス状の信号（クランク角信号）を出力する。このクランク角信号は、各気筒の圧縮上死点位置ＴＤＣを算出するのに用いられる。そして、各筒内圧センサ２４は、気筒毎の筒内圧（燃焼圧）をそれぞれ検出し、筒内圧信号を出力する。図９は、各気筒の筒内圧センサ２４の出力（筒内圧センサ出力）が表す１／２サイクル分の筒内圧波形（指圧線）を示している。この指圧線には、筒内圧が筒内圧最大値Ｐｍａｘとなる位置付近（破線６５で囲んだ領域）に、ノック波形が含まれている。
【００３０】
自動適合用ノック自動検出装置（以下、単に「ノック自動検出装置」という。
）は、増幅回路２５と、高速データ収録手段としての高速データロガー２６と、筒内圧解析用パソコン（パーソナルコンピュータ）２７とを備える。増幅回路２５は、４つの筒内圧センサ２４からそれぞれ出力される筒内圧センサ出力を増幅して高速データロガー２６に出力する。
【００３１】
高速データロガー２６は、増幅回路２５により増幅された各筒内圧センサ出力を高周波サンプリングして、気筒毎およびサイクル毎に単位期間毎の筒内圧データＰｄａｔａ［ｉ］を収録する。なお、高速データロガー２６による高周波サンプリングは、時間ベースまたはクランク角ベースのいずれでも良い。本実施形態では、高速データロガー２６は、各筒内圧センサ出力（各気筒の筒内圧波形）に含まれるノック波形（振動周波数が１２〜１４ＫＨｚ程度の振動成分）を精度良く解析して抽出するのに十分高い周波数、例えば２００ＫＨｚで各気筒の筒内圧センサ出力をサンプリングする。
【００３２】
また、高速データロガー２６には、各筒内圧センサ出力の他に、クランク角センサ２２から出力されるクランク角信号が入力されている。これにより、高速データロガー２６は、デジタル信号に変換したクランク角信号と、各気筒の筒内圧データＰｄａｔａ［ｉ］とを同期して筒内圧解析用パソコン２７へ出力するようになっている。
【００３３】
また、筒内圧解析用パソコン２７は、高速データロガー２６にデータ計測指示を与えて、同データロガーから各気筒の筒内圧データＰｄａｔａ［ｉ］およびクランク角信号のデータを任意サイクル分（例えば、１００サイクル分）一括して取り込むようになっている。
【００３４】
また、筒内圧解析用パソコン２７には、「ノック判定処理」用のプログラムが組み込まれている。このノック判定処理では、各気筒の筒内圧データとクランク角信号とに基づき、各筒内圧センサ出力に含まれるノック波形等の振動成分の振幅相当量Ａｍｐ［ｉ］（図１０に示す振動波形）を気筒毎およびサイクル毎に算出し、ノック判定を行なう。
【００３５】
次に、この「ノック判定処理」について図２〜図１４を参照して説明する。
まず、図２に示すフローチャートのステップＳ１０で、エンジン２１の運転状態を定常状態に設定し、所定の運転条件および所定の点火時期にてエンジン２１を運転する。つまり、エンジン２１を、エンジン回転数、吸入空気量および空燃比をそれぞれ一定に設定するとともに、点火時期を一定値に設定して運転する。
【００３６】
次に、ステップＳ１００に進み、高速データロガー２６により気筒毎にそれぞれ収録された筒内圧データＰｄａｔａ［ｉ］とクランク角信号を、上記任意サイクル分取り込む。ここで、高速データロガー２６による１サイクル当たりの筒内圧データのサンプリングデータ数をｓｉｚｅとすると、筒内圧データＰｄａｔａ［ｉ］は、ｉ＝０（吸気工程下死点付近の基準点で、クランク角０度）〜ｉ＝ｓｉｚｅ（クランク角７２０度）である。また、筒内圧解析用パソコン２７は、取り込んだクランク角信号に基づき、各気筒の圧縮上死点位置ＴＤＣを算出する。
【００３７】
次に、ステップＳ２００に進み、ステップＳ１００で取り込んだ各気筒の筒内圧データに基づき、気筒毎およびサイクル毎に筒内圧最大値Ｐｍａｘとその位置ｉｍａｘ（図９参照）を算出する。このステップＳ２００が最大値算出手段に相当する。
【００３８】
次に、ステップＳ３００に進み、気筒毎およびサイクル毎に、筒内圧波形（指圧線）の形から点火時期の大遅角状態を検出する。具体的には、気筒毎およびサイクル毎に、ステップＳ２００で算出した筒内圧最大値Ｐｍａｘと圧縮上死点位置での筒内圧Ｐ［ｉ＝ＴＤＣ］との差が所定のしきい値を超えているか否かを判定する。その差がしきい値を超えている場合には大遅角状態ではないと判定されてステップＳ４００に進み、その差がしきい値以下の場合には、大遅角状態であると判定されてステップＳ３１０に進み、分析を終了する。
【００３９】
大遅角状態ではないと判定されてステップＳ４００に進むと、筒内圧データに基づき気筒毎およびサイクル毎に筒内圧最小値Ｐｍｉｎとその位置ｉｍｉｎを算出する。
【００４０】
次に、ステップＳ５００に進み、気筒毎およびサイクル毎に指圧線全体の変曲点の数を算出する。ここにいう、「指圧線全体」とは、１サイクルの指圧線をいう。このステップＳ５００では、図４に示すように、ステップＳ４００で算出した筒内圧最小値ＰｍｉｎとステップＳ１００で算出した圧縮上死点位置での筒内圧Ｐ［ｉ＝ＴＤＣ］を比較し、両者が等しい場合には指圧線全体の変曲点が１つであると判定し、そうでない場合には変曲点が３つであると判定する。つまり、筒内圧が圧縮上死点位置ＴＤＣの前後で上昇し続けて筒内圧最大値Ｐｍａｘに達し、この位置ｉｍａｘから筒内圧が下降し続ける場合には、指圧線全体の変曲点が１つであると判定される。この判定がなされると、ステップＳ５１０に進み、１つの変曲点の位置をｉｍａｘとして設定する。
【００４１】
一方、圧縮上死点位置ＴＤＣの近傍に極大値を持つ場合には、指圧線全体の変曲点が３つであると判定される。この判定がなされると、ステップＳ５２０に進み、３つの変曲点の位置をそれぞれＴＤＣ、ｉｍｉｎおよびｉｍａｘとして設定する。なお、指圧線の圧縮上死点位置ＴＤＣ近傍に極大値（変曲点）ができる場合には、その変曲点はＴＤＣの近傍にできるので、ＴＤＣをその変曲点に代えて１つの変曲点に設定している。これにより、圧縮上死点位置ＴＤＣ近傍の変曲点を算出する処理を省略でき、処理速度を早くすることができる。
【００４２】
こうして気筒毎およびサイクル毎に指圧線全体の変曲点の数を算出した後、図２のステップＳ６００に進む。このステップＳ６００では、気筒毎およびサイクル毎に、筒内圧データＰｄａｔａ［ｉ］に基づき筒内圧波形（指圧線）に含まれる振動波形を抽出し、その振動成分の振幅相当量Ａｍｐ［ｉ］（図１０参照）を算出する。
【００４３】
次に、変曲点の数が１と判定された場合にステップＳ６００で実行される振幅相当量Ａｍｐ［ｉ］の計算処理を図５および図６に基づいて説明する。上記ステップＳ５００で変曲点が１つと判定された場合、気筒毎およびサイクル毎に、筒内圧Ｐの上昇中（０＜ｉ＜ｉｍａｘ）と、筒内圧Ｐの下降中（ｉｍａｘ＜ｉ＜ｓｉｚｅ）とに分けて振幅相当量Ａｍｐ［ｉ］を計算する。
【００４４】
まず、筒内圧データＰｄａｔａ［ｉ］のデータ数ｉが０〜ｉｍａｘまでの筒内圧上昇中（０＜ｉ＜ｉｍａｘ）、すなわち図９で筒内圧ＰがＰｍａｘに達するまでのクランク角区間では、上記ステップＳ５１０から図５のステップＳ６１０に進み、同図に示す計算処理を実行する。
【００４５】
このステップＳ６１０は、データ数ｉが０〜ｉｍａｘまでのクランク角区間で計算処理がなされるように、ゲートをかけている。すなわち、このステップＳ６１０では、最初にｉを０に設定し、ｉがｉｍａｘになるまでの間、ステップＳ６１４以下の処理を繰り返しつつ、データ数ｉを１ずつインクリメント（ｉ←ｉ＋１）する。
【００４６】
ｉがｉｍａｘになるまでの間はステップＳ６１０の判定結果はＹＥＳになり、ステップＳ６１４に進む。このステップＳ６１４では、筒内圧データの単位期間当たりの変化量ＤＬＰ［ｉ］（ＤＬＰ［ｉ］＝Ｐｄａｔａ［ｉ］−Ｐｄａｔａ［ｉ−１］）を算出し、ＤＬＰ［ｉ］が負または０であるか否かを判定する。ＤＬＰ［ｉ］が正の場合、すなわち筒内圧データの今回値Ｐｄａｔａ［ｉ］がその前回値Ｐｄａｔａ［ｉ−１］より大きい場合、ステップＳ６１４の判定結果はＮＯになり、ステップＳ６１６に進み、振幅相当量Ａｍｐ［ｉ］およびｔ−ａｍｐを共に０に設定する。
【００４７】
この後、ステップＳ６１０に戻り、筒内圧データのデータ数ｉを１だけインクリメントし（ｉ←ｉ＋１）、ｉがｉｍａｘより小さいか否かを判定する。ｉ＜ｉｍａｘでかつＤＬＰ［ｉ］が正の間は、ステップＳ６１０の判定結果はＹＥＳでかつステップＳ６１４の判定結果はＮＯであるので、ステップＳ６１０，Ｓ６１４およびＳ６１６が繰り返し実行される。その間、ステップＳ６１０でデータ数ｉが１ずつインクリメントされていくとともに、Ａｍｐ［ｉ］およびｔ−ａｍｐは共に０のままに維持される。
【００４８】
こうして、ステップＳ６１０，Ｓ６１４およびＳ６１６が繰り返される間に、図１３の区間９０のように筒内圧が低下すると、筒内圧データの今回値ＤＬＰ［ｉ］がその前回値Ｐｄａｔａ［ｉ−１］より小さくなり、ＤＬＰ［ｉ］が負になるので、ステップＳ６１４からステップＳ６１８に進む。
【００４９】
このステップＳ６１８では、ｔ−ａｍｐとＤＬＰ［ｉ］の加算値をｔ−ａｍｐとして設定する。このとき、ｔ−ａｍｐは上記ステップＳ６１６で０に設定されているので、このステップＳ６１８で設定されるｔ−ａｍｐはＤＬＰ［ｉ］に等しい。
【００５０】
この後、ステップＳ６２０に進み、筒内圧データの今回値と次回値の変化量ＤＬＰ［ｉ＋１］（ＤＬＰ［ｉ＋１］＝Ｐｄａｔａ［ｉ＋１］−Ｐｄａｔａ［ｉ］）が正であるか否かを判定する。図１３の区間９０で示すようにその変化量ＤＬＰ［ｉ＋１］が負の場合には、ステップＳ６２２に進み、振幅相当量Ａｍｐ［ｉ］を０に維持する。
【００５１】
この後、ステップＳ６１０に戻り、ステップＳ６１４に進む。このとき、ステップＳ６１４では、前回算出した変化量ＤＬＰ［ｉ］よりデータ数が１つ増えたデータ数ｉの筒内圧データ（今回値）とその前回値の変化量ＤＬＰ［ｉ］を算出し、その変化量が負または０であるか否かについて判定する。つまり、図１３の区間９０で、ＤＬＰ［ｉ＋１］が負または０であるか否かを判定する。ＤＬＰ［ｉ＋１］は負であるので、ステップＳ６１４の判定結果はＹＥＳになり、ステップＳ６１８に進む。このとき、ｔ−ａｍｐ＝ＤＬＰ［ｉ］であるので、ステップＳ６１８で設定されるｔ−ａｍｐはＤＬＰ［ｉ］にＤＬＰ［ｉ＋１］を加算した値に設定される。
【００５２】
この後、ステップＳ６２０に進み、筒内圧データの今回値と次回値の変化量ＤＬＰ［ｉ＋１］が正であるか否かを判定する。ここでは、図１３の場合でいうと、その今回値に相当する区間９０のｉ＋１位置の筒内圧と、その次回値であるｉ＋２位置の筒内圧の変化量が正であるか否かを判定する。同図の場合、筒内圧はｉ＋１位置からｉ＋２位置の間で上昇に転じているので、ステップＳ６２０の判定結果がＹＥＳになり、ステップＳ６２４に進む。
【００５３】
このステップＳ６２４では、ステップＳ６１８で設定したｔ−ａｍｐ（負の値）の絶対値を振幅相当量Ａｍｐ［ｉ］として設定する。こうして、筒内圧上昇中には（データ数ｉが０〜ｉｍａｘまでのクランク角区間では）、図１３の区間９０、９１、９２のように筒内圧データの変化量ＤＬＰ［ｉ］が負である各区間内での同変化量の総和の絶対値を振幅相当量Ａｍｐ［ｉ］として算出する。
【００５４】
そして、データ数ｉがｉｍａｘに達すると、ステップＳ６１０の判定結果がＮＯになるので、ステップＳ６１２に進み、図５の計算処理を終了する。また、ｉ＝ｉｍａｘの位置では、変化量ＤＬＰ［ｉ］は０に設定される。
【００５５】
次に、変曲点が１つと判定された場合、気筒毎およびサイクル毎に、筒内圧Ｐの下降中（ｉｍａｘ＜ｉ＜ｓｉｚｅ）に、図６の計算処理が実行される。筒内圧データＰｄａｔａ［ｉ］のデータ数ｉがｉｍａｘ〜ｓｉｚｅまでの筒内圧下降中、すなわち図９で筒内圧ＰがＰｍａｘから低下し続けるクランク角区間では、上記ステップＳ５１０から図６のステップＳ６３０に進み、図６に示す計算処理を実行する。
【００５６】
このステップＳ６３０は、データ数ｉがｉｍａｘ〜ｓｉｚｅまでのクランク角区間で計算処理がなされるように、ゲートをかけている。すなわち、このステップＳ６３０では、最初にｉをｉｍａｘ＋１に設定し、ｉがｓｉｚｅになるまでの間、ステップＳ６３４以下の処理を繰り返しつつ、データ数ｉを１ずつインクリメント（ｉ←ｉ＋１）する。
【００５７】
ｉがｓｉｚｅになるまでの間はステップＳ６３０の判定結果はＹＥＳになり、ステップＳ６３４に進む。このステップＳ６３４では、筒内圧データの単位期間当たりの変化量ＤＬＰ［ｉ］を算出し、ＤＬＰ［ｉ］が正または０であるか否かを判定する。ＤＬＰ［ｉ］が負の場合、ステップＳ６３４の判定結果はＮＯになり、ステップＳ６３６に進み、振幅相当量Ａｍｐ［ｉ］およびｔ−ａｍｐを共に０に設定する。
【００５８】
この後、ステップＳ６３０に戻り、筒内圧データのデータ数ｉを１だけインクリメントし（ｉ←ｉ＋１）、ｉがｓｉｚｅより小さいか否かを判定する。ｉ＜ｓｉｚｅでかつＤＬＰ［ｉ］が負の間は、ステップＳ６３０の判定結果はＹＥＳでかつステップＳ６３４の判定結果はＮＯであるので、ステップＳ６３０，Ｓ６３４およびＳ６３６が繰り返し実行される。その間、ステップＳ６３０でデータ数ｉが１ずつインクリメントされていくとともに、Ａｍｐ［ｉ］およびｔ−ａｍｐは共に０のままに維持される。
【００５９】
こうして、ステップＳ６３０，Ｓ６３４およびＳ６３６が繰り返される間に、図１４の区間９５のように筒内圧が上昇すると、筒内圧データの今回値Ｐｄａｔａ［ｉ］がその前回値Ｐｄａｔａ［ｉ−１］より大きくなり、ＤＬＰ［ｉ］が正になるので、ステップＳ６３４からステップＳ６３８に進む。
【００６０】
このステップＳ６３８では、ｔ−ａｍｐとＤＬＰ［ｉ］の加算値をｔ−ａｍｐとして設定する。このとき、ｔ−ａｍｐは上記ステップＳ６３６で０に設定されているので、このステップＳ６３８で設定されるｔ−ａｍｐはＤＬＰ［ｉ］に等しい。
【００６１】
この後、ステップＳ６４０に進み、筒内圧データの今回値と次回値の変化量ＤＬＰ［ｉ＋１］（ＤＬＰ［ｉ＋１］＝Ｐｄａｔａ［ｉ＋１］−Ｐｄａｔａ［ｉ］）が負であるか否かを判定する。図１４の区間９５で示すようにその変化量ＤＬＰ［ｉ＋１］が正の場合には、ステップＳ６４２に進み、振幅相当量Ａｍｐ［ｉ］を０に維持する。
【００６２】
この後、ステップＳ６３０に戻り、ステップＳ６３４に進む。このとき、ステップＳ６３４では、前回算出した変化量ＤＬＰ［ｉ］よりデータ数が１つ増えたデータ数ｉの筒内圧データ（今回値）とその前回値の変化量ＤＬＰ［ｉ］を算出し、その変化量が正または０であるか否かについて判定する。つまり、図１４の区間９５で、ＤＬＰ［ｉ＋１］が正または０であるか否かを判定する。ＤＬＰ［ｉ＋１］は正であるので、ステップＳ６３４の判定結果はＹＥＳになり、ステップＳ６３８に進む。このとき、ｔ−ａｍｐ＝ＤＬＰ［ｉ］であるので、ステップＳ６３８で設定されるｔ−ａｍｐはＤＬＰ［ｉ］にＤＬＰ［ｉ＋１］を加算した値に設定される。
【００６３】
この後、ステップＳ６４０に進み、筒内圧データの今回値と次回値の変化量ＤＬＰ［ｉ＋１］が負であるか否かを判定する。ここでは、図１４の場合でいうと、その今回値に相当する区間９５のｉ＋１位置の筒内圧と、その次回値であるｉ＋２位置の筒内圧の変化量が負であるか否かを判定する。同図の場合、筒内圧はｉ＋１位置からｉ＋２位置の間で下降に転じているので、ステップＳ６４０の判定結果がＹＥＳになり、ステップＳ６４４に進む。
【００６４】
このステップＳ６４４では、ステップＳ６３８で設定したｔ−ａｍｐ（　正の値）を振幅相当量Ａｍｐ［ｉ］として設定する。こうして、筒内圧下降中には（データ数ｉがｉ〜ｓｉｚｅまでのクランク角区間では）、図１４の区間９４、９５、９６のように筒内圧データの変化量ＤＬＰ［ｉ］が正である各区間内での同変化量の総和を振幅相当量Ａｍｐ［ｉ］として算出する。そして、データ数ｉがｓｉｚｅに達すると、ステップＳ６３０の判定結果がＮＯになるので、ステップＳ６３２に進み、図６の計算処理を終了する。
【００６５】
このようにして、指圧線全体の変曲点が１つの場合、気筒毎およびサイクル毎に、筒内圧データＰｄａｔａ［ｉ］に基づき筒内圧波形（指圧線）に含まれる振動波形を抽出し、その振動成分の振幅相当量Ａｍｐ［ｉ］を算出することができる。こうして気筒毎およびサイクル毎に算出される振幅相当量Ａｍｐ［ｉ］を、図１０で示してある。
【００６６】
次に、上記ステップＳ５００で変曲点の数が３と判定された場合に、ステップＳ６００で実行される振幅相当量Ａｍｐ［ｉ］の計算処理について説明する。
（１）まず、筒内圧Ｐ上昇中のクランク角区間（０＜ｉ＜ＴＤＣ）では、気筒毎およびサイクル毎に、筒内圧データの変化量ＤＬＰ［ｉ］が負である各区間内での同変化量の総和の絶対値を振幅相当量Ａｍｐ［ｉ］として算出する。
【００６７】
（２）次に、圧縮上死点位置（ｉ＝ＴＤＣ）では、振幅相当量Ａｍｐ［ｉ］を０に設定する。
（３）次に、筒内圧Ｐ下降中のクランク角区間（ＴＤＣ＜ｉ＜ｉｍｉｎ）では、気筒毎およびサイクル毎に、筒内圧データの変化量ＤＬＰ［ｉ］が正である各区間内での同変化量の総和を振幅相当量Ａｍｐ［ｉ］として算出する。
【００６８】
（４）次に、筒内圧最小値Ｐｍｉｎの位置（ｉ＝ｉｍｉｎ）では、振幅相当量Ａｍｐ［ｉ］を０に設定する。
（５）次に、筒内圧Ｐ上昇中のクランク角区間（ｉｍｉｎ＜ｉ＜ｉｍａｘ）では、気筒毎およびサイクル毎に、筒内圧データの変化量ＤＬＰ［ｉ］が負である各区間内での同変化量の総和の絶対値を振幅相当量Ａｍｐ［ｉ］として算出する。
【００６９】
（６）次に、筒内圧最大値Ｐｍａｘの位置（ｉ＝ｉｍａｘ）では、振幅相当量Ａｍｐ［ｉ］を０に設定する。
（７）そして、筒内圧Ｐ下降中のクランク角区間（ｉｍａｘ＜ｉ＜ｓｉｚｅ）では、気筒毎およびサイクル毎に、筒内圧データの変化量ＤＬＰ［ｉ］が正である各区間内での同変化量の総和を振幅相当量Ａｍｐ［ｉ］として算出する。
【００７０】
このようにして、指圧線全体の変曲点が３つの場合、気筒毎およびサイクル毎に、筒内圧データＰｄａｔａ［ｉ］に基づき筒内圧波形（指圧線）に含まれる振動波形を抽出し、図１０で示すその振動成分の振幅相当量Ａｍｐ［ｉ］を算出することができる。上記ステップＳ６００が振動成分抽出手段に相当する。
【００７１】
このようにして上記ステップＳ６００で振幅相当量Ａｍｐ［ｉ］を計算した後、図２のステップＳ７００に進む。このステップＳ７００では、気筒毎およびサイクル毎に、１サイクル中の第１ゲート区間（図１１参照）内での振幅相当量Ａｍｐ［ｉ］の最大値Ａｍｐｍａｘを算出する。その第１ゲート区間は、図９で示すように、上記ステップＳ２００で算出したｉｍａｘ前後のα＋βのクランク角区間（図９参照）である。
【００７２】
ステップＳ７００の処理を図７のフローチャートに基づいて説明する。
まず、ステップＳ７１０では、データ数ｉがｉｍａｘ−αからｉｍａｘ−βまでの第１ゲート区間で計算処理がなされるように、ゲートをかけている。すなわち、このステップＳ７１０では、最初にｉをｉｍａｘ−αに設定し、ｉがｉｍａｘ−βになるまでの間、ステップＳ７１０、Ｓ７２０およびＳ７３０の処理を繰り返しつつ、データ数ｉを１ずつインクリメント（ｉ←ｉ＋１）する。
【００７３】
ｉがｉｍａｘ−βになるまでの間はステップＳ７１０の判定結果はＹＥＳになり、ステップＳ７２０に進む。このステップＳ７２０では、振幅相当量Ａｍｐ［ｉ］の今回値が最大値Ａｍｐｍａｘを超えているか否かを判定する。その今回値がＡｍｐｍａｘ以下の場合には、ステップＳ７１０に戻る。一方、その今回値がＡｍｐｍａｘを超えている場合には、ステップＳ７３０に進み、振幅相当量Ａｍｐ［ｉ］の今回値をＡｍｐｍａｘとして設定する。この後、ステップＳ７１０に戻る。
【００７４】
こうして、データ数ｉがｉｍａｘ−αからｉｍａｘ−βまでの第１ゲート区間において、振幅相当量Ａｍｐ［ｉ］の今回値が最大値Ａｍｐｍａｘを超える度にその今回値でＡｍｐｍａｘを更新していくことで、第１ゲート区間内での最大値Ａｍｐｍａｘを算出する。なお、上記ステップＳ７００が、振幅最大値算出手段に相当する。
【００７５】
この後、図２のステップＳ８００に進み、気筒毎に、しきい値１としきい値２を設定する（図１１参照）。このステップＳ８００では、ステップＳ７００で算出した最大値Ａｍｐｍａｘの任意サイクル（例えば１００サイクル）分の加算平均値と、その標準偏差σを３倍した値との加算値（任意サイクル平均値＋３σ）をしきい値１として算出する。また、最大値Ａｍｐｍａｘの任意サイクル分の加算平均値（任意サイクル平均値）をしきい値２として算出する。なお、このステップＳ８００が、しきい値算出手段に相当する。
【００７６】
この後、図３のステップＳ９００に進み、気筒毎およびサイクル毎にノック判定を行なう。このステップＳ９００では、上記ステップＳ７００で算出した振幅相当量Ａｍｐ［ｉ］の最大値Ａｍｐｍａｘと、振動成分の繰り返し性の有無とに基づき、気筒毎およびサイクル毎にノック判定を行なう。
【００７７】
ステップＳ９００の処理（「ノックＯＲノイズ判定処理」）を図８のフローチャートに基づいて説明する。
まず、ステップＳ９１０では、ステップＳ７００で算出した振幅相当量Ａｍｐ［ｉ］の最大値ＡｍｐｍａｘがステップＳ８００で設定したしきい値１を超えているか否かについて判定する。この判定結果がＮＯの場合、すなわち最大値Ａｍｐｍａｘがしきい値１以下の場合、ステップＳ９６０に進み、「ノイズ」と判定される。こうして、気筒毎に最大値Ａｍｐｍａｘがしきい値１以下のサイクルについては、「ノイズ」と判定される。
【００７８】
また、ステップＳ９１０の判定結果がＹＥＳの場合、すなわち最大値Ａｍｐｍａｘがしきい値１を超えている場合には、振動が大きくノックである可能性が高いので、次のステップ９２０に進む。このステップＳ９２０では、データ数ｉが最大値Ａｍｐｍａｘの位置であるｉａｍｐｍａｘからｉａｍｐｍａｘ＋γまでの第２ゲート区間（図１１参照）で計算処理がなされるように、ゲートをかけている。すなわち、このステップＳ９２０では、最初にｉをｉａｍｐｍａｘに設定し、ｉがｉａｍｐｍａｘ＋γになるまでの間、ステップＳ９２０〜Ｓ９７０の処理を繰り返しつつ、データ数ｉを１ずつインクリメント（ｉ←ｉ＋１）する。
【００７９】
ｉがｉａｍｐｍａｘ＋γになるまでの間はステップＳ９２０の判定結果はＹＥＳになり、ステップＳ９３０に進む。このステップＳ９３０では、振幅相当量Ａｍｐ［ｉ］の今回値がステップＳ８００で設定したしきい値２を超えているか否かを判定する。この判定結果がＮＯの場合にはステップＳ９２０に戻る。一方、その判定結果がＹＥＳの場合にはステップＳ９４０に進む。
【００８０】
このステップＳ９４０では、振幅相当量Ａｍｐ［ｉ］がしきい値２を超える回数である振幅繰り返し数Ｎを１だけインクリメントする。なお、ステップＳ９４０では、ｉａｍｐｍａｘでの最大値Ａｍｐｍａｘを含めて振幅繰り返し数Ｎをカウントする。つまり、図８の処理が開始されたときのｉａｍｐｍａｘの位置で、ステップＳ９４０において振幅繰り返し数Ｎが１に設定されるようになっている。この後、ステップＳ９２０に戻る。
【００８１】
こうしてｉがｉａｍｐｍａｘ＋γになるまでの第２ゲート区間内に、最大値Ａｍｐｍａｘを含めて振幅相当量Ａｍｐ［ｉ］がしきい値２を超えた振幅繰り返し数Ｎをカウントする。
【００８２】
そして、ｉがｉａｍｐｍａｘ＋γになると、ステップＳ９２０の判定結果がＮＯになり、ステップＳ９５０に進む。このステップＳ９５０では、ステップＳ９４０で設定した振幅繰り返し数Ｎがしきい値３を超えているか否かを判定する。
【００８３】
振幅繰り返し数Ｎがしきい値３以下の場合には、ステップＳ９５０の判定結果がＮＯになり、上記ステップＳ９６０に進み、「ノイズ」と判定される。すなわち、ノック無しサイクルであるノイズサイクルと判定される。一方、振幅繰り返し数Ｎがしきい値３を超えている場合には、ステップＳ９５０の判定結果がＹＥＳになり、ステップＳ９７０に進み、「ノック」と判定される。すなわち、ノック有りサイクルであるノックサイクルと判定される。
【００８４】
このようにして、気筒毎に、次の２つの条件が成立したサイクルについては、「ノック」と判定される（ステップＳ９７０）。（条件１）図１１で示すように、第１ゲート区間内での最大値Ａｍｐｍａｘがしきい値１を超えている（ステップＳ９１０でＹＥＳ）。（条件２）第２ゲート区間内での振幅繰り返し数Ｎがしきい値３を超えている（ステップＳ９５０でＹＥＳ）。すなわち、振動成分の繰り返し性が有ると判定される。
【００８５】
これに対して、最大値Ａｍｐｍａｘがしきい値１以下（ステップＳ９１０でＮＯ）となる各気筒のサイクル、或いは振幅繰り返し数Ｎがしきい値３以下（ステップＳ９５０でＮＯ）となる各気筒のサイクルは、いずれもノック無し、すなわち「ノイズ」（ノイズサイクル）と判定される。なお、上記ステップＳ９００が、ノック判定手段に相当する。
【００８６】
そして、図３に示す上記ステップＳ９６０に進み、「ノイズ」と判定された場合には、図３のステップＳ１０００に進む。このステップＳ１０００では、図２の上記ステップＳ８００で算出したしきい値１，しきい値２を再計算する。すなわち、任意サイクルのうちステップＳ９００でノック無しと判定されたノイズサイクルだけの最大値Ａｍｐｍａｘの加算平均値と、その標準偏差σを３倍した値との加算値（「ノイズ」サイクルのＡｍｐｍａｘの平均値＋３σ）をしきい値１として算出する。また、ノイズサイクルだけの最大値Ａｍｐｍａｘの加算平均値（ノイズサイクルのＡｍｐｍａｘの平均値）をしきい値２として算出する。このステップＳ１０００も、しきい値設定手段に相当する。
【００８７】
この後、ステップＳ１１００に進み、しきい値の収束判定を行なう。すなわち、ステップＳ１０００で再計算したしきい値２の今回値が前回のしきい値２（しきい値２の前回値）と同じになったか否かを判定する。しきい値２の今回値がその前回値と同じになるまでは、ステップＳ９００、Ｓ９６０およびＳ１０００が繰り返されて値の大きな最大値Ａｍｐｍａｘが徐々に除外されるので、しきい値１，しきい値２がそれぞれ徐々に下がっていく（図１２参照）。また、その間にステップＳ９００の判定結果がＹＥＳになる場合には、ステップＳ９７０に進み「ノック」と判定される。こうして、しきい値２の今回値がその前回値と同じになるまでは、「ノック」と判定されるサイクルを除外しながら（図１２参照）、ノック無しと判定されたノイズサイクルだけの最大値Ａｍｐｍａｘの加算平均値とその標準偏差σとに基づき両しきい値１，２が再計算される。
【００８８】
そして、しきい値２の今回値がその前回値と同じになり、ステップＳ１１００の判定結果がＹＥＳになると、ステップＳ１２００に進み、ステップＳ９００〜Ｓ１１００の繰り返し判定を終了する。これにより、気筒毎およびサイクル毎に「ノック」か「ノイズ」の判定結果（ｋ，ｃｙｃｌｅ）＝「ノック」ＯＲ「ノイズ」が得られる。ここで、ｋは気筒番号であり、ｃｙｃｌｅはサイクル番号である。例えば、１気筒の４サイクル目が「ノック」の場合には、（１，４）＝「ノック」という判定結果が得られる。
【００８９】
こうして、ステップＳ１１００の判定結果がＹＥＳになった時点でノック無しと判定されていたサイクルが最終的にノイズサイクルとなり、それ以外のサイクルは「ノック」となる。この後、図２及び図３に示すノック判定処理が終了する。
【００９０】
以上のように構成された第１実施形態によれば、以下の作用効果を奏する。
（イ）各気筒の筒内圧データＰｄａｔａ［ｉ］に基づき、各筒内圧センサ出力に含まれる振動成分の振幅相当量Ａｍｐ［ｉ］を気筒毎およびサイクル毎に算出することにより、振動波形（ノック波形）が得られる。このため、エンジン毎にノック周波数を事前に特定し、その周波数に応じたフィルタ中心波長をもつバンドパスフィルタ等のフィルタを選定する必要がない。換言すると、ノック波形の周波数に関係なくノック波形を抽出できる。この結果、内燃機関の点火時期、燃料増量値、ＶＶＴ進角等を自動適合する際に必須となるノック波形の自動抽出が可能となる。したがって、ノック周波数の選定やノック判定のしきい値の設定をエンジン毎に事前に行わずにノックを自動検出することができる。
【００９１】
（ロ）ノック判定を気筒毎およびサイクル毎に行うことができる。つまり、気筒毎およびサイクル毎に「ノック」か「ノイズ」の判定結果（ｋ，ｃｙｃｌｅ）＝「ノック」ＯＲ「ノイズ」が得られる。このような判定結果が得られるので、きめの細かい自動適合が可能になる。
【００９２】
（ハ）任意サイクルのうちノック無しと判定されたサイクル（ノイズサイクル）だけの振幅相当量Ａｍｐ［ｉ］の最大値Ａｍｐｍａｘの加算平均値と標準偏差σよりしきい値を再計算する（図３のステップＳ１０００）。この後、ノイズサイクルのノック判定を再計算したしきい値に基づき再度行なう（図３のステップＳ９００）。このため、各筒内圧センサ出力を高周波サンプリングした任意サイクル内に、ノック強度の強いサイクルが頻度大で含まれているためにしきい値が高くなっている場合でも、小レベルのノックを判定できる。このため、自動適合時に、必ずノックが発生していない遅角側の点火時期で任意サイクル運転してしきい値を計算し、その後徐々に進角させた任意サイクル運転を何回か繰り返し、該各運転でしきい値を計算し直しながらノックを検出する点火時期設定方法を採る必要がない。これにより、自動適合時の点火時期設定方法が制限されず、適合時間が短縮される。したがって、ノック検出性を向上させることができ、自動適合時の点火時期設定方法が制限されることがなく、また、適合時間を短縮することができる。
【００９３】
（ニ）図２のステップＳ８００および図３のステップＳ１０００で計算するしきい値１は、最大値Ａｍｐｍａｘの任意サイクル分の加算平均値と、その標準偏差σを３倍した値との加算値（Ａｍｐｍａｘの任意サイクル平均値＋３σ）である。筒内圧データＰｄａｔａ［ｉ］を任意サイクル例えば１００サイクル分取ると、振幅相当量Ａｍｐ［ｉ］の最大値Ａｍｐｍａｘの１００サイクル分の加算平均値および標準偏差は、その取った筒内圧データから自動的に求まってしまう。すなわち、ノック判定のためのしきい値１，２は、エンジン毎に固有の値を設定する必要が無く、そのしきい値１，２を自動で設定することができる。
【００９４】
（ホ）図３のステップＳ１０００で再計算したしきい値２の今回値がその前回値と同じになるまで、同図のステップＳ９００〜Ｓ１１００を繰り返してノック無しと判定されたノイズサイクルに対するノック判定を繰り返すことにより、しきい値１，２が徐々に下がっていく。これにより、そのしきい値１，２は、ノックの発生しない遅角側から徐々に進角させることでノックを検出する場合のしきい値に収束していく。このため、遅角側の点火時期でしきい値を計算し、その後徐々に進角すると同時にしきい値を計算し直しながらノックを検出する場合と同様の判定結果を得ることができる。
【００９５】
（ヘ）各筒内圧センサ２４から出力される筒内圧センサ出力を高速データロガー２６により高周波サンプリングした各気筒の筒内圧データＰｄａｔａ［ｉ］に基づき、筒内圧波形に含まれる振動成分の振幅相当量Ａｍｐ［ｉ］を気筒毎およびサイクル毎に算出する。そして、図２のステップＳ７００で算出した振幅相当量の最大値Ａｍｐｍａｘと振動成分の繰り返し性の有無とに基づくノック判定をステップＳ９００により気筒毎およびサイクル毎に行い、最大値Ａｍｐｍａｘがしきい値１を超えかつ前記繰り返し性が有る場合にノックと判定する。これにより、その繰り返し性が無く、ノック波形の周波数帯にノイズが乗ったために最大値Ａｍｐｍａｘがしきい値を超えた場合に、ノックと判定されるのを回避できる。
【００９６】
このため、ノック周波数帯域の振動成分、つまりノック波形の周波数帯にノイズが乗る場合でも、ノックであるのかノイズであるのかの判定を精度良く行なうことができる。したがって、ノック検出性を向上することができ、精度の高いノック判定を行なうことができる。
【００９７】
（ト）上記２つの条件（条件１および２）が同時に成立したときに「ノック」と判定する。このようにして最大値Ａｍｐｍａｘと前記振動成分の繰り返し性の有無とに基づくノック判定を気筒毎およびサイクル毎に実行する。これにより、最大値Ａｍｐｍａｘがしきい値１を超えていても、振幅繰り返し数Ｎが第３しきい値未満であれば、ノック周波数帯域の振動成分にノイズが乗っているために最大値Ａｍｐｍａｘが大きくなっていると判定できる。このため、ノック周波数帯域の振動成分にノイズが乗り、最大値Ａｍｐｍａｘがしきい値を超えてノックと判定されるのを回避できる。したがって、ノック検出性をより一層向上することができ、より精度の高いノック判定を行なうことができる。
【００９８】
（チ）ステップＳ２００で筒内圧データＰｄａｔａ［ｉ］に基づき気筒毎およびサイクル毎に筒内圧最大値Ｐｍａｘとその位置ｉｍａｘを算出する。そして、図９に示す第１ゲート区間および図１１に示す第２ゲート区間は、筒内圧最大値の位置ｉｍａｘ以降の所定期間をそれぞれ含んでいる。これにより、各筒内圧センサ出力に含まれる振動成分がノック波形の場合、理想的にはその振幅相当量Ａｍｐ［ｉ］が位置ｉｍａｘの位置以降に徐々に減衰することが多いという特徴を利用してノック判定を行なうようにしている。すなわち、位置ｉｍａｘ以降の所定期間を含む第１ゲート区間内での最大値Ａｍｐｍａｘがしきい値１を超えるとともに、その所定期間を含む第２ゲート区間内でしきい値２を超える回数がしきい値３を超える場合にノックと判定する。これにより、ノック波形の理想的な形に応じたノック判定を精度良く行なうことができる。
【００９９】
（リ）バンドパスフィルタ等のフィルタを使わずに筒内圧を利用してノックを自動検出することができるので、エンジン２１の点火時期、燃料増量値、ＶＶＴ進角等の自動適合が可能になる。
【０１００】
［　第２実施形態］
図１５は第２実施形態に係る自動適合用ノック自動検出装置により実行される「ノック判定処理」を示している。この「ノック判定処理」の特徴は次の点にある。すなわち、点火時期を遅角側の値に設定した任意サイクル運転時のデータからしきい値を設定し、このしきい値でノック判定を行なう。この後、点火時期を進角側の値に設定してさらに任意サイクル運転した時のデータからしきい値を再計算し、このしきい値でノック無しと判定されたサイクルのノック判定を再度行なう。
【０１０１】
エンジン回転数ｎｅ，吸入空気量が同一であれば、ノックが発生していない点火時期領域では、任意サイクル分の最大値Ａｍｐｍａｘの加算平均値と標準偏差σ共にそう大きく値が変わらないことが実験結果によりわかっている。このため、上記従来技術のように点火時期を遅角側から進角側へ除変しながらノック発生点を検出するようにはしない。すなわち、本実施形態では、１度遅角側でしきい値を算出し、その後任意の点火時期に一気に進角させ、遅角側で求めたしきい値でノック判定を行い、その結果を基にノイズサイクルで再度しきい値を算出し、ノイズサイクルのノック判定を再度行なう。
【０１０２】
この「ノック判定処理」について、その特徴部を中心に図１５に基づいて説明する。この説明において、図２および図３での処理と同様の処理については一部説明を省略する。
【０１０３】
まず、ステップＳ２０１０では、上記ステップＳ１０と同様にエンジン２１の運転状態を定常状態に設定するとともに、点火時期を遅角側の値（ｎｅ等から求まる基本点火時期−５°ＣＡ）に設定してエンジン２１を任意サイクル運転する。
【０１０４】
この任意サイクル運転時にステップＳ２１００で任意サイクル分取り込んだ筒内圧データＰｄａｔａ［ｉ］とクランク角信号とに基づき、ｉｍａｘ〜２０°ＣＡ間での振幅相当量Ａｍｐ［ｉ］の最大値Ａｍｐｍａｘを気筒毎およびサイクル毎に算出する（ステップＳ２７００）。
【０１０５】
次に、ステップＳ２８００に進み、ステップＳ２７００で算出した最大値Ａｍｐｍａｘの任意サイクル分の加算平均値とその標準偏差σより遅角側でのしきい値１Ａ，２Ａを算出する。
【０１０６】
この算出後、点火時期を遅角側の値から進角させてエンジン２１をさらに任意サイクル運転し、このときに得られる最大値Ａｍｐｍａｘと遅角側でのしきい値１Ａ，２Ａとの比較により気筒毎およびサイクル毎にノック判定を行う。すなわち、遅角側でのしきい値１Ａ，２Ａの算出後、ステップＳ２０１１に進み，点火時期をステップＳ２０１０での設定値より進角側の値に設定してエンジン２１をさらに任意サイクル運転する。この２回目の運転後にステップＳ２１１０で取り込んだ筒内圧データＰｄａｔａ［ｉ］とクランク角信号とに基づき、ｉｍａｘ〜２０°ＣＡ間での振幅相当量Ａｍｐ［ｉ］の最大値Ａｍｐｍａｘを気筒毎およびサイクル毎に算出する（ステップＳ２７１０）。そして、ステップＳ２７１０で算出した最大値Ａｍｐｍａｘと遅角側のしきい値１Ａとの比較等により、上記ステップＳ９００と同様のノック判定を行なう。
【０１０７】
このノック判定後、ステップＳ２８２０に進み、上記２回目の運転による任意サイクルのうち遅角側のしきい値１Ａ，２Ａに基づくノック判定によりノック無しと判定されたノイズサイクルだけの最大値Ａｍｐｍａｘの加算平均値と標準偏差より進角側でのしきい値１Ｂ，２Ｂを算出する（しきい値を再計算する）。
【０１０８】
そして、再計算したしきい値１Ｂ，２Ｂに基づきノック無しと判定された全てのノイズサイクルのノック判定を再度行なう（ステップＳ２９２０）。すなわち、ステップＳ２９００でノック有りと判定される場合には、ステップＳ２９１０に進み「ノック」と判定される。一方、ステップＳ２９００でノック無しと判定される場合には、ステップＳ２９２０に進み、ノック判定を再度行なう。ここでのノック判定により、ステップＳ２９００で「ノイズ」と判定された全てのノイズサイクルについて、「ノック」か「ノイズ」の最終的なノック判定が確定する。
【０１０９】
このようにして、上記第１実施形態と同様に、気筒毎およびサイクル毎に「ノック」か「ノイズ」の判定結果（ｋ，ｃｙｃｌｅ）＝「ノック」ＯＲ「ノイズ」が得られる。
【０１１０】
以上のように構成された第２実施形態によれば、上記作用効果（イ）〜（ハ）および（ホ）〜（リ）に加えて以下の作用効果を奏する。
（ヌ）再計算したしきい値１Ｂ，２Ｂに基づきノック無しと判定された全てのノイズサイクルのノック判定を一度だけ行ない、これらのノイズサイクルについて「ノック」か「ノイズ」の最終的なノック判定を確定する（ステップＳ２９２０）。このため、気筒毎およびサイクル毎のノック判定結果を短時間で得ることができ、適合時間を短縮することができる。
【０１１１】
（ル）遅角側でのしきい値１Ａ，２Ａと進角側でのしきい値１Ｂ，２Ｂは値が異なる（遅角側の方が値が小さい）が、一度ノック無しと判定された全てのノイズサイクルに対してステップＳ２９２０で再度ノック判定をするので、ノック誤判定を回避できる。
【０１１２】
［　第３実施形態］
図１６は第３実施形態に係る自動適合用ノック自動検出装置により実行される「ノック判定処理」を示している。
【０１１３】
任意サイクル分の最大値Ａｍｐｍａｘの加算平均値、およびその標準偏差σは、ノック無しサイクル（ノイズサイクル）に限って言えば結局のところ、各筒内圧センサ出力に含まれるノイズレベルを測定しているに過ぎない。ノック発生と同じクランク角領域（例えばｉｍａｘ〜２０°ＣＡ）でのデータからしきい値を計算しなくても、例えばｉｍａｘ−２０°ＣＡ〜ｉｍａｘ領域でのデータを用いてしきい値を計算しても近い計算結果が得られる。このため、本実施形態の「ノック判定処理」は、任意のクランク角領域でのデータから設定したしきい値でノック判定し、ノック無しと判定されたサイクルについて、別のクランク角領域でのデータから再設定したしきい値で再度ノック判定を行なう点に特徴がある。
【０１１４】
この「ノック判定処理」について、その特徴部を中心に図１６に基づいて説明する。この説明においても、図２および図３での処理と同様の処理については一部説明を省略する。
【０１１５】
まず、ステップＳ３０１０では、エンジン２１の運転状態を定常状態に設定するとともに、点火時期を一定値に設定してエンジン２１を任意サイクル運転する。
【０１１６】
次に、ステップＳ３１００で任意サイクル分取り込んだ筒内圧データＰｄａｔａ［ｉ］とクランク角信号とに基づき、任意のクランク角領域である第１区間（ｉｍａｘ−２０°ＣＡ〜ｉｍａｘ）での振幅相当量Ａｍｐ［ｉ］の最大値Ａｍｐｍａｘを気筒毎およびサイクル毎に算出する（ステップＳ３７００）。
【０１１７】
次に、ステップＳ３８００に進み、ステップＳ３７００で算出した最大値Ａｍｐｍａｘの任意サイクル分の加算平均値とその標準偏差σよりしきい値１Ａ，２Ａを算出する。
【０１１８】
次に、第１区間とは別のクランク角領域である第２区間（ｉｍａｘ〜２０°ＣＡ）での振幅相当量Ａｍｐ［ｉ］の最大値Ａｍｐｍａｘを気筒毎およびサイクル毎に算出する（ステップＳ３７２０）。
【０１１９】
次に、ステップＳ３７００で算出した最大値Ａｍｐｍａｘとしきい値１Ａとの比較等により、上記ステップＳ９００と同様のノック判定を行なう（ステップＳ３９００）。
【０１２０】
このノック判定後、ステップＳ２８２０に進み、任意サイクルのうちしきい値１Ａ，２Ａに基づくノック判定によりノック無しと判定されたノイズサイクルだけの最大値Ａｍｐｍａｘの加算平均値と標準偏差よりしきい値１Ｂ，２Ｂを算出する（しきい値を再計算する）。
【０１２１】
そして、ステップＳ３７２０で算出した最大値Ａｍｐｍａｘと再計算したしきい値１Ｂ，２Ｂとの比較等により上記ステップＳ３９００でノック無しと判定された全てのノイズサイクルのノック判定を再度行なう（ステップＳ３９２０）。
すなわち、ステップＳ３９００でノック有りと判定される場合には、ステップＳ３９１０に進み「ノック」と判定される。一方、ステップＳ３９００でノック無しと判定される場合には、ステップＳ３９２０に進み、ステップＳ３９００のしきい値１Ａ，２Ａとは異なるしきい値１Ｂ，２Ｂに基づいてノック判定を再度行なう。ここでのノック判定により、ステップＳ３９００で「ノイズ」と判定された全てのノイズサイクルについて、「ノック」か「ノイズ」の最終的なノック判定が確定する。
【０１２２】
このようにして、上記第１実施形態と同様に、気筒毎およびサイクル毎に「ノック」か「ノイズ」の判定結果（ｋ，ｃｙｃｌｅ）＝「ノック」ＯＲ「ノイズ」が得られる。
【０１２３】
以上のように構成された第３実施形態によれば、上記作用効果（イ）〜（ハ）および（ホ）〜（リ）に加えて以下の作用効果を奏する。
（ヲ）再計算したしきい値１Ｂ，２Ｂに基づきノック無しと判定された全てのノイズサイクルのノック判定を一度だけ行ない、これらのノイズサイクルについて「ノック」か「ノイズ」の最終的なノック判定を確定する（ステップＳ２９２０）。このため、気筒毎およびサイクル毎のノック判定結果を短時間で得ることができ、適合時間を短縮することができる。
【０１２４】
（ワ）第１区間（ｉｍａｘ〜２０°ＣＡ）でのデータから求めたしきい値１Ａ，２Ａと、第２区間（ｉｍａｘ−２０°ＣＡ〜ｉｍａｘ）でのデータから求めたしきい値１Ｂ，２Ｂとは値が異なる。しかし、ステップＳ３９００でしきい値１Ａ，２Ａに基づいて一度ノック無しと判定された全てのノイズサイクルに対してステップＳ３９２０でしきい値１Ｂ，２Ｂに基づいて再度ノック判定をするので、ノック誤判定を回避できる。
【０１２５】
［第４実施形態］
図１７は、第４実施形態に係るノック検出装置の概略構成を示している。このノック検出装置は、エンジン２１の運転状態を制御する電子制御装置に組み込んでノック判定結果に基づき点火時期等を制御するノック制御装置に適用したものである。
【０１２６】
このノック検出装置は、４つの筒内圧センサ２４からそれぞれ出力される各筒内圧センサ出力を増幅する増幅回路２５と、増幅回路２５で増幅された各気筒の筒内圧信号を高周波サンプリングするノック検出用マイクロコンピュータ４０とを備えている。増幅回路２５とノック検出用マイクロコンピュータ４０は、エンジン２１の運転状態を制御する電子制御装置としてのエンジンコントロールユニット（以下、「ＥＣＵ」という。）３０に組み込んで車両に実装されている。
【０１２７】
ノック検出用マイクロコンピュータ４０は、各気筒の筒内圧センサ出力を例えば２００ＫＨｚで高周波サンプリングできるＡＤ変換周期（５μｓ、２００ＫＨｚ）のものを用いる。また、ノック検出用マイクロコンピュータ４０は、図１８に示すノック判定処理（ステップ４１００〜Ｓ５０００の処理）を実行してノック判定結果を制御用マイクロコンピュータ３１に送信する機能を有する。すなわち、ノック検出用マイクロコンピュータ４０は、各気筒の筒内圧センサ出力を高周波サンプリングするとともに、しきい値算出手段およびノック判定手段の機能を有するノック検出手段に相当する。
【０１２８】
また、制御用マイクロコンピュータ３１のＣＰＵ３４は、ノック検出用マイクロコンピュータ４０から送られるノック判定の結果に基づき点火時期等の運転状態の制御を実行するようになっている。
【０１２９】
この制御用マイクロコンピュータ３１は、エンジン２１の各種制御、例えば、燃焼形態の切替制御、スロットル開度制御、燃料噴射制御、ノック制御（ＫＣＳ制御）を含む点火時期制御等を実行するように構成されている。制御用マイクロコンピュータ３１は、ＲＯＭ３３、ＣＰＵ３４、ＲＡＭ３５、及びバックアップＲＡＭ３６等を備えている。
【０１３０】
ここで、ＲＯＭ３３は各種制御プログラムや、これらのプログラムを実行する際に参照されるマップ等が記憶されたメモリであり、ＣＰＵ３４はＲＯＭ３３に記憶された各種制御プログラムやマップに基づいて演算処理を実行する。また、ＲＡＭ３５は、ＣＰＵ３４での演算結果や上記各種制御に必要な各種センサから入力されるデータ等を一時的に記憶するメモリである。また、バックアップＲＡＭ３６は、エンジン２１の停止時にその記憶されたデータ等を保存する不揮発性のメモリである。そして、ＲＯＭ３３、ＣＰＵ３４、ＲＡＭ３５及びバックアップＲＡＭ３６は、バス３７を介して互いに接続されるとともに、外部入力回路３８及び外部出力回路３９と接続されている。
【０１３１】
外部入力回路３８には、ノック検出用マイクロコンピュータ４０の他に、上記各種制御に必要な各種センサ、例えばカムポジションセンサ、アクセルポジションセンサ、バキュームセンサ及び吸気温センサ等が接続されている。また、外部出力回路３９には、それぞれ図示を省略したスロットル用モータ、燃料噴射弁、及びイグナイタ等が接続されている。そして、制御用マイクロコンピュータ３１は、点火プラグ（図示略）の一次コイルに通電を開始するクランク角（通電開始時期）と一次コイルの電流を遮断するクランク角（点火時期）を、イグナイタを介して制御する（点火時期制御を行う）ようになっている。
【０１３２】
ノック検出用マイクロコンピュータ４０は、各気筒の筒内圧データＰｄａｔａ［ｉ］とクランク角信号とに基づき、図２に示す上記「ノック波形抽出処理」を実行して気筒毎およびサイクル毎に上記振動成分の振幅相当量Ａｍｐ［ｉ］を算出する。そして、その算出結果に基づき、気筒毎およびサイクル毎にノックであるのか否かのノック判定を実行し、その判定結果を制御用マイクロコンピュータ３１へ出力するように構成されている。
【０１３３】
そして、制御用マイクロコンピュータ３１は、ノック検出用マイクロコンピュータ４０から気筒毎およびサイクル毎に出力されるノック判定結果に基づき、ノック制御（ＫＣＳ制御）を実行する。ここにいう、「ノック制御」とは、ノック検出用マイクロコンピュータ４０からのノック判定結果に基づき点火プラグの通電をイグナイタを介して制御することで、点火時期を最適点火時期より遅角させ、ノックの発生を抑制する制御である。
【０１３４】
次に、「ノック判定処理」について図１８のローチャートを参照して説明する。ノック検出用マイクロコンピュータ４０は、ノック判定処理（ステップ４１００〜Ｓ５０００の処理）を所定の制御周期毎に繰り返し実行し、その判定結果に基づき制御用マイクロコンピュータ３１がステップＳ５１００の処理を実行する。
【０１３５】
まず、図１８のステップＳ４１００で、図２の上記ステップＳ１００と同様に、４つの筒内圧センサ２４からそれぞれ出力される各筒内圧センサ出力（増幅回路２５で増幅された筒内圧データＰｄａｔａ［ｉ］）を２００ｋＨｚで高周波サンプリングする（筒内圧計測）。
【０１３６】
次に、ステップＳ４２００に進み、図２の上記ステップＳ６００と同様に、
気筒毎およびサイクル毎に、筒内圧データＰｄａｔａ［ｉ］に基づき筒内圧波形（指圧線）に含まれる振動波形を抽出し、図１０で示すその振動成分の振幅相当量Ａｍｐ［ｉ］を算出する。
【０１３７】
次に、ステップＳ４３００に進み、気筒毎およびサイクル毎に、１サイクル中の第１ゲート区間（図１１参照）内での振幅相当量Ａｍｐ［ｉ］の最大値Ａｍｐｍａｘを算出する。
【０１３８】
次に、ステップＳ４４００に進み、図２の上記ステップＳ８００と同様に、気筒毎に、上記しきい値１としきい値２を設定する（図１１参照）。
次に、ステップＳ４５００に進み、図３のステップＳ９００と同様に、気筒毎およびサイクル毎にノック判定を行なう。この判定結果がＹＥＳの場合、ステップＳ４６００に進み、ノック有りサイクルである「ノック」と判定される。一方、その判定結果がＮＯの場合、ステップＳ４７００に進み、ノック無しサイクルである「ノイズ」と判定される。
【０１３９】
ステップＳ４７００に進んで「ノイズ」と判定されると、ステップＳ４８００に進む。このステップＳ４８００では、図３のステップＳ１０００と同様に、上記ステップＳ４４００で算出したしきい値１，しきい値２を再計算する。すなわち、任意サイクルのうちステップＳ４５００でノック無しと判定されたノイズサイクルだけの最大値Ａｍｐｍａｘの加算平均値と、その標準偏差σを３倍した値との加算値とに基づき、しきい値１およびしきい値２を再計算する。
【０１４０】
次に、ステップＳ４９００に進み、図３のステップＳ１１００と同様に、しきい値の収束判定を行なう。すなわち、ステップＳ４８００で再計算したしきい値２の今回値が前回のしきい値２（前回の計算値）と同じになったか否かを判定する。しきい値２の今回値がその前回値と同じになるまでは、ステップＳ４５００、Ｓ４７００およびＳ４８００が繰り返されて値の大きな最大値Ａｍｐｍａｘが徐々に除外されるので、しきい値１、しきい値２がそれぞれ徐々に下がっていく（図１２参照）。また、その間にステップＳ４５００の判定結果がＹＥＳになる場合には、ステップＳ４６００に進み「ノック」と判定される。こうして、しきい値２の今回値がその前回値と同じになるまでは、「ノック」と判定されるサイクルを除外しながら（図１２参照）、ノック無しと判定されたノイズサイクルだけの最大値Ａｍｐｍａｘの加算平均値とその標準偏差σとに基づき両しきい値１，２が再計算される。
【０１４１】
そして、しきい値２の今回値がその前回値と同じになり、ステップＳ４９００の判定結果がＹＥＳになると、ステップＳ５０００に進む。このステップＳ５０００では、気筒毎およびサイクル毎に得られた「ノック」か「ノイズ」の判定結果に基づき「ノック有り」或いは「ノック無し」のノック検出結果を制御用マイクロコンピュータ３１に送信する。
【０１４２】
そして、ノック検出用マイクロコンピュータ４０よりノック検出結果を受けた制御用マイクロコンピュータ３１は、その検出結果に基づきエンジン２１の運転状態を制御する。つまり、「ノック有り」のノック検出結果を受けた場合には、点火時期を遅角させ、また、「ノック無し」のノック検出結果を受けた場合には、点火時期を進角させる。
【０１４３】
以上のように構成された第４実施形態によれば、以下の作用効果を奏する。
（カ）各筒内圧センサ出力に含まれる振動成分の振幅相当量の最大値Ａｍｐｍａｘの任意サイクル分の加算平均値に基づきノック判定のしきい値１，２が算出される。したがって、ＥＣＵ３０に組み込んで車両に実装してノック制御装置に適用される場合に、ノック周波数の選定やノック判定のしきい値の設定をエンジン毎に事前に行わずに、ノックを自動検出することができる。
【０１４４】
（ヨ）ノック検出用マイクロコンピュータ４０は、気筒毎およびサイクル毎に得られた「ノック」か「ノイズ」の判定結果に基づき「ノック有り」或いは「ノック無し」のノック検出結果を制御用マイクロコンピュータ３１に送信する。このため、点火時期等をきめ細かく制御することができる。
【０１４５】
（タ）任意サイクルのうちノック無しと判定されたサイクルだけの振幅相当量の最大値或いは積分値の加算平均値と標準偏差よりしきい値を再計算する。そして、ノック無しと判定されたサイクルのノック判定を再計算したしきい値に基づき再度行なう。このため、各筒内圧センサ出力を高周波サンプリングした任意サイクル内に、ノック強度の強いサイクルが頻度大で含まれているためにしきい値が高くなっている場合でも、小レベルのノックを検出できる。このため、ノック制御装置に適用される場合に、車両走行時においてノックのしきい値を随時更新することが可能になり、最適な点火時期を常に設定することができる。
【０１４６】
（レ）しきい値１は、振幅相当量の最大値Ａｍｐｍａｘの任意サイクル分の加算平均値だけでなく、その標準偏差を３倍した値を加味して求められるので、しきい値１を任意サイクルでの最大値Ａｍｐｍａｘのばらつきに応じて設定することができる。
【０１４７】
［　変形例］
なお、この発明は以下のように変更して具体化することもできる。
・上記各実施形態において、しきい値を、最大値Ａｍｐｍａｘの任意サイクル分の加算平均値と、その標準偏差σを３以外の整数倍した値との加算値としてもよい。
【０１４８】
・上記各実施形態では、本発明を４気筒のエンジン２１に適用した例を示したが、本発明は多気筒の内燃機関に広く適用可能である。
・上記各実施形態では、図２のステップＳ７００で振幅相当量の最大値Ａｍｐｍａｘを算出しているが、その最大値に代えて同振幅相当量の積分値を算出するようにしてもよい。この場合、ステップＳ９００（ノック判定手段）により、その積分値と振動成分の繰り返し性の有無とに基づき、気筒毎およびサイクル毎にノック判定を行なう。
【０１４９】
・上記第１実施形態では、指圧線の圧縮上死点位置ＴＤＣ近傍に極大値（変曲点）ができる場合には、その変曲点はＴＤＣの近傍にできるので、ＴＤＣをその変曲点に代えて１つの変曲点に設定しているが、その変曲点の位置を算出して、この変曲点を１つの変曲点として設定するようにしても良い。
【０１５０】
・上記第１実施形態では、高速データロガー２６は、各筒内圧センサ出力を例えば２００ＫＨｚでサンプリングしているが、そのサンプリング周波数は適宜変更可能である。
【０１５１】
・上記第１実施形態において、図８に示す第１ゲート区間を図１１に示す第２ゲート区間と同じにしても良い。
・上記第４実施形態において、ノック検出用マイクロコンピュータ４０に代えて、各気筒の筒内圧信号を高周波サンプリングするデジタル信号処理装置としてのＤＳＰを用いる構成にも本発明は適用可能である。
【０１５２】
以下、上記各実施形態から把握できる技術思想について説明する。
（１）各気筒の筒内圧を検出する複数の筒内圧センサを備えた自動適合用ノック自動検出装置において、
前記複数の筒内圧センサからそれぞれ出力される各筒内圧センサ出力を高周波サンプリングして、気筒毎およびサイクル毎に筒内圧データを収録する高速データ収録手段と、
前記筒内圧データに基づき、前記各筒内圧センサ出力に含まれる振動成分の振幅相当量を気筒毎およびサイクル毎に算出する振動成分抽出手段と、
気筒毎およびサイクル毎に、前記振幅相当量の最大値或いは積分値を算出する振幅最大値算出手段と、
前記最大値或いは積分値の任意サイクル分の加算平均値と標準偏差とからしきい値を算出するしきい値算出手段と、
前記最大値或いは積分値と前記振動成分の繰り返し性の有無とに基づくノック判定を気筒毎およびサイクル毎に行い、同最大値或いは積分値がしきい値を超えかつ前記繰り返し性が有る場合にノックと判定するノック判定手段とを備え、
前記しきい値算出手段は、任意サイクルのうちノック無しと判定されたサイクルだけの前記最大値或いは積分値の加算平均値と標準偏差より前記しきい値を再計算し、
前記ノック判定手段は、ノック無しと判定されたサイクルのノック判定を前記再計算したしきい値に基づき再度行なうことを特徴とする自動適合用ノック自動検出装置。
【０１５３】
ここで、高速データ収録手段は高速データロガー２６により構成されている。また、ステップＳ６００が振動成分抽出手段に、ステップＳ７００が振幅最大値算出手段に、ステップＳ８００がしきい値算出手段に、ステップＳ９００がノック判定手段にそれぞれ相当する。
【０１５４】
（２）上記（１）に記載の自動適合用ノック自動検出装置において、前記ノック判定手段は、１サイクル中の第１ゲート区間内での前記最大値或いは積分値が第１しきい値を超えるとともに、前記振幅相当量が１サイクル中の第２ゲート区間内で前記第１しきい値より低い第２しきい値を超える回数が第３しきい値を超える場合にノックと判定することを特徴とする自動適合用ノック自動検出装置。
【０１５５】
（３）上記（２）に記載の自動適合用ノック自動検出装置において、前記筒内圧データに基づき気筒毎およびサイクル毎に筒内圧最大値とその位置を算出する最大値算出手段を備え、前記第１ゲート区間および第２ゲート区間は、前記筒内圧最大値の位置以降の所定期間をそれぞれ含むことを特徴とする自動適合用ノック自動検出装置。
【０１５６】
（４）上記（１）〜（３）のいずれ一つに記載の自動適合用ノック自動検出装置において、前記各筒内圧センサ出力を増幅する増幅回路と、該増幅回路で増幅された各筒内圧センサ出力を高周波サンプリングする前記高速データ収録手段としての高速データロガーと、前記振動成分抽出手段としての筒内圧解析用パーソナルコンピュータとを備えることを特徴とする自動適合用ノック自動検出装置。
【図面の簡単な説明】
【図１】第１実施形態に係る自動適合用ノック自動検出装置の全体を模式的に示す構成図。
【図２】ノック判定処理を示すフローチャート。
【図３】図２のノック判定処理の続きを示すフローチャート。
【図４】図２のステップＳ５００の処理内容を示すフローチャート。
【図５】図２のステップＳ６００における変曲点１つの場合で筒内圧上昇中の振幅相当量の計算処理を示すフローチャート。
【図６】図２のステップＳ６００における変曲点１つの場合で筒内圧下降中の振幅相当量の計算処理を示すフローチャート。
【図７】図２のステップＳ７００の処理内容を示すフローチャート。
【図８】図２のステップＳ９００の処理内容を示すフローチャート。
【図９】筒内圧波形を示すグラフ。
【図１０】図９の筒内圧波形から抽出した振動波形を示すグラフ。
【図１１】しきい値と振動成分の関係を示す説明図。
【図１２】しきい値の再計算についての説明図。
【図１３】変曲点１つの場合で筒内圧上昇中の振幅相当量の計算処理を示す説明図。
【図１４】変曲点１つの場合で筒内圧下降中の振幅相当量の計算処理を示す説明図。
【図１５】第２実施形態によるノック判定処理を示すフローチャート。
【図１６】第３実施形態によるノック判定処理を示すフローチャート。
【図１７】車両に実装した第４実施形態に係るノック検出装置の全体を模式的に示す構成図。
【図１８】第４実施形態によるノック判定処理を示すフローチャート。
【符号の説明】
２１…内燃機関としてのエンジン、２４…筒内圧センサ、２５…増幅回路、２６…高速データ収録手段としての高速データロガー、２７…筒内圧解析用パソコン（パーソナルコンピュータ）、３０…電子制御装置としてのエンジンコントロールユニット（ＥＣＵ）、３１…制御用マイクロコンピュータ、４０…ノック検出手段としてのノック検出用マイクロコンピュータ。
【図１】
2004052750.tif 000003
【図２】
2004052750.tif 000004
【図３】
2004052750.tif 000005
【図４】
2004052750.tif 000006
【図５】
2004052750.tif 000007
【図６】
2004052750.tif 000008
【図７】
2004052750.tif 000009
【図８】
2004052750.tif 000010
【図９】
2004052750.tif 000011
【図１０】
2004052750.tif 000012
【図１１】
2004052750.tif 000013
【図１２】
2004052750.tif 000014
【図１３】
2004052750.tif 000015
【図１４】
2004052750.tif 000016
【図１５】
2004052750.tif 000017
【図１６】
2004052750.tif 000018
【図１７】
2004052750.tif 000019
【図１８】
2004052750.tif 000020