(57)【特許請求の範囲】
【請求項１】
内燃機関のノックを検出するためのノックセンサと、
前記ノックセンサにより検出される出力信号を統計処理する統計処理手段と、
前記統計処理手段による処理結果に基づいてノックの発生を判定する第１の仮判定手段と、
前記ノックセンサにより出力される出力信号の最大値を検出する第２の最大値検出手段と、
前記ノックセンサにより出力される出力信号が、第２の所定値以上となる期間を前記波形形状を判定する判定期間とする判定期間設定手段とを備え、
前記判定期間設定手段による判定期間と、前記最大値検出手段により前記判定期間中に検出される出力信号の最大値との比に基づいてノックの発生を判定する第２の仮判定手段とを備え、
前記第１の仮判定手段によるノック仮判定と前記第２の仮判定手段によるノック仮判定との結果に基づいて最終的にノックの発生を判定する最終ノック判定手段と、
前記最終ノック判定手段による最終的なノック発生の判定結果に基づいて点火時期を制御する点火時期制御手段と、
を備えることを特徴とする内燃機関のノック制御装置。
【請求項２】
前記最終ノック判定手段は、前記第１の仮判定手段によってノックが発生したと仮判定された場合に、前記第２の仮判定手段によりノック仮判定を実施することを特徴とする請求項１に記載の内燃機関のノック制御装置。
【請求項３】
前記最終ノック判定手段は、前記第１の仮判定手段と前記第２の仮判定手段との両方がノックが発生したと判定したときに最終的にノックが発生したと判定することを特徴とする請求項１または請求項２のいずれか一方に記載の内燃機関のノック制御装置。
【請求項４】
内燃機関のノックを検出するためのノックセンサと、
前記ノックセンサにより出力される出力信号の最大値を検出する第２の最大値検出手段と、
前記ノックセンサにより出力される出力信号が、第２の所定値以上となる期間を前記波形形状を判定する判定期間とする判定期間設定手段とを備え、
前記判定期間設定手段による判定期間と、前記最大値検出手段により前記判定期間中に検出される出力信号の最大値との比に基づいてノックの発生を判定する第２の仮判定手段と、
前記ノックセンサにより検出される出力信号の周波数分析を行う周波数分析手段と、
前記周波数分析手段による出力信号の分析結果に基づいてノックの発生を判定する第３の仮判定手段と、
前記第２の仮判定手段に基づいた判定結果と、前記第３の仮判定手段に基づいた判定結果とに基づいて最終的にノックの発生を判定する最終ノック判定手段と、
前記最終ノック判定手段による最終的なノック発生の判定結果に基づいて点火時期を制御する点火時期制御手段と、
を備えることを特徴とする内燃機関のノック制御装置。
【請求項５】
内燃機関のノックを検出するためのノックセンサと、
前記ノックセンサにより検出される出力信号を統計処理する統計処理手段と、
前記統計処理手段を用いてノックの発生を判定する第１の仮判定手段と、
前記ノックセンサにより出力される出力信号の最大値を検出する第２の最大値検出手段と、
前記ノックセンサにより出力される出力信号が、第２の所定値以上となる期間を前記波形形状を判定する判定期間とする判定期間設定手段とを備え、
前記判定期間設定手段による判定期間と、前記最大値検出手段により前記判定期間中に検出される出力信号の最大値との比に基づいてノックの発生を判定する第２の仮判定手段と、
前記ノックセンサにより検出される出力信号の周波数分析を行う周波数分析手段と、
前記周波数分析手段による出力信号の分析結果に基づいてノックの発生を判定する第３の仮判定手段と、
前記第１の仮判定に基づいた判定結果と、前記第２の仮判定手段に基づいた判定結果と、前記第３の仮判定手段に基づいた判定結果とのうち少なくともいずれか２つ以上の判定結果に基づいて最終的にノックの発生を判定する最終ノック判定手段と、
前記最終ノック判定手段による最終的なノック発生の判定結果に基づいて点火時期を制御する点火時期制御手段と、
を備えることを特徴とする内燃機関のノック制御装置。
【請求項６】
前記最終ノック判定手段は、前記第１の仮判定手段による仮判定結果と、前記第２の仮判定手段および／または前記第３の仮判定手段によるノック仮判定結果とがノックが発生したと判定したときに最終的にノックが発生したと判定することを特徴とする請求項５に記載の内燃機関のノック制御装置。
【請求項７】
前記ノックセンサによる所定区間の出力信号における最大値を検出する第１の最大値検出手段と、
前記最大値検出手段により検出された複数個の最大値を対数変換することにより得られる分布形状に基づいて第１の判定値を設定する第１の仮判定値設定手段とを備え、
前記第１の仮判定手段は、前記第１の仮判定値設定手段により設定される判定値と前記ノックセンサにより検出される出力信号とに基づいてノックの発生を仮判定することを特徴とする請求項１乃至請求項３または請求項５または請求項６のいずれか一つに記載の内燃機関のノック制御装置。
【請求項８】
前記ノックセンサにより出力される出力信号を所定時間毎にＡ−Ｄ変換して時系列に蓄積するＡ−Ｄ変換手段と、
前記Ａ−Ｄ変換手段に所定ポイントのＡ−Ｄ変換値が蓄積される毎に繰り返して周波数分析を実行する周波数分析手段と、
前記周波数分析手段により複数回実行された周波数分析を加算する加算手段とを備え、
前記第３の仮判定手段は、前記加算手段の結果からノックとノイズを分離してノックの発生を仮判定することを特徴とする請求項４乃至請求項６のいずれか一つに記載の内燃機関のノック制御装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ノックセンサの出力を統計処理することによるノック判定と、ノックセンサの出力波形形状に基づいて実施するノック判定とを備える内燃機関のノック制御装置に係る。
【０００２】
【従来技術】
一般的に、ノックコントロールシステムとは、つぎのような技術である。まず、エンジンの振動を検出するノックセンサからの電気的信号（以下、ノックセンサ出力信号と称する。）が、ある定められたレベルを（以下、ノック判定レベルと称する。）を越えた場合にノックが発生したものと判定する。このノックの判定結果によりノックが発生したと判定されると、点火時期を遅角してノックの発生を抑制し、ノックが発生していないと判定されると、点火時期を進角させて、点火時期を制御する。このとき、上述のように制御される点火時期は、所謂ノック限界付近に制御されるため、エンジンの燃費、出力特性を最大限に引き出すことができる。
【０００３】
このようなノックコントロールシステムにおいては、内燃機関に発生するノックを精度良く検出することが、点火時期をノック限界付近に精度良く制御する上で重要な役割を果たす。このノックを検出する手法としては、従来より特公平６−６０６２１号公報に開示される技術が知られており、また、我々が出願した特願２０００−３６４６２号の技術がある。
【０００４】
特公平６−６０６２１号公報に開示される技術では、ノックセンサからの出力値を統計処理することによりノックを判定するための判定値を補正し、この判定値に基づいて内燃機関の運転中に発生するノックを検出している。
【０００５】
より詳細には、内燃機関の運転中にノックセンサから出力される出力値のなかで、内燃機関の１燃焼サイクル毎の最大値を検出し、検出した最大値Ｖを気筒毎に多数個サンプリングして最大値の度数分布を得る。そして、この最大値の母集団を対数変換する。このとき、ノックが発生している場合とノックが発生していない場合との２つに分類して対数変換されたそれぞれの分布を図５に示す。図５中の（ａ）はノックが発生していないときの分布である。すなわち、この図５中の（ａ）が１本の直線で表されることは、この分布が一つの正規分布に従っていることを意味する。また、図５中の（ｂ）はある変曲点Ｐで傾きが変わっており、図５中の（ｂ）が正規分布ではなく、ノック発生時特有の分布であることを示す。
【０００６】
そして、この特性を利用して、ノックが何％の確率で発生しているかを判定し、ノックの発生確率に応じてノックを判定するための判定値を設定する。内燃機関に発生するノックの判定では、このようにして得られる判定値に基づいてノックが発生したか否かを判定する。すなわち、この特公平６−６０６２１号公報に示される技術では、運転状態によって変化するノックセンサの出力値に応じて、適宜判定値が設定されるのである。
【０００７】
また、特願２０００−０３６４６２号に示されるノックを検出するための技術では、ノックセンサにより出力される出力信号から得られる波形形状から、ノック特有の波形形状を検出した場合にノックを検出している。
【０００８】
【発明が解決しようとする課題】
ところが、上記特公平６−６０６２１号公報に開示される技術では、ノックセンサの出力信号が、統計処理により設定される判定値を越えたものをノックであると判定しているので、判定値の設定が困難である。すなわち、判定値を出力値の変曲点付近に設定した場合、出力信号にノイズが重畳することでノックが発生していないにも係らず、ノックが発生したと誤判定する虞がある。
【０００９】
また、特願２０００−０３６４６２号に示される技術では、センサ出力が小さい領域では、複数のノイズが重なり合うことによりセンサ出力信号の波形形状がノックに似た波形形状を示すことによりノックが発生したと誤判定する虞がある。
【００１０】
本発明は、上述の課題に鑑みてなされたものであり、内燃機関に発生するノックを精度良く検出することができる内燃機関のノック制御装置を提供することを目的とする。
【００１１】
【課題を解決するための手段】
請求項１の発明によれば、内燃機関のノックを検出するためのノックセンサと、ノックセンサにより検出される出力信号を統計処理する統計処理手段と、統計処理手段による処理結果に基づいてノックの発生を判定する第１の仮判定手段と、ノックセンサにより検出される出力信号の波形形状に基づいてノックの発生を判定する第２の仮判定手段とを備え、第１の仮判定手段によるノック仮判定と第２の仮判定手段によるノック仮判定との結果に基づいて最終的にノックの発生を判定する最終ノック判定手段と、最終ノック判定手段による最終的なノック発生の判定結果に基づいて点火時期を制御する点火時期制御手段とを備える。更に、ノックセンサにより出力される出力信号の最大値を検出する第２の最大値検出手段と、ノックセンサにより出力される出力信号の波形形状が、第２の所定値以上となる期間を前記波形形状を判定する判定期間とする判定期間設定手段とを備え、第２の仮判定手段は、前記判定期間設定手段による判定期間と、最大値検出手段により前記判定期間中に検出される出力信号の最大値との比に基づいてノックの発生を仮判定する。
【００１２】
これにより、従来技術の統計処理を用いたノック判定や波形形状を用いたノック判定のみを用いたノック発生の判定では、ノックの誤検出をしていた出力信号に対しても精度良くノックの発生を判定することができる。
【００１３】
ところで、ノック判定を請求項１の発明に開示する如く、２つのノック仮判定により行なう場合には、ノック判定のための演算負荷が大きくなることが予想される。そこで、請求項２の発明のように、最終ノック判定手段は、第１のノック仮判定手段によってノックが発生したと仮判定された場合に、第２の仮判定手段によりノック仮判定を実施する。
【００１４】
これにより、第１のノック仮判定手段がノックであるとの仮判定を行なった場合にのみ、第２のノック仮判定を実施するので、ノックを精度良く判定することと共に、演算負荷が大きくなることも防止される。
【００１５】
また、請求項３の発明のように、最終ノック判定手段は、第１の仮判定手段によるノック仮判定結果と、第２の仮判定手段によるノックか理論空然比判定結果とが両方ともノックであると仮判定した場合に、最終的にノックが発生したと判定する。
【００１６】
これにより、第１の仮判定手段ではノイズをノックであると誤検出し易い出力信号であっても、第２の仮判定手段では、ノックとノイズを精度良く判定することができ、第２の仮判定手段ではノイズをノックであると誤検出し易い出力信号であっても第１の仮判定手段ではノイズとノックとを精度良く判定することができるので、精度良くノックを検出することができる。
【００２１】
また、請求項４の発明では、内燃機関のノックを検出するためのノックセンサと、前記ノックセンサにより検出される出力信号の波形形状に基づいてノックの発生を判定する第２の仮判定手段と、ノックセンサにより検出される出力信号の周波数分析を行う周波数分析手段と、周波数分析手段による出力信号の分析結果に基づいてノックの発生を判定する第３の仮判定手段と、第２の仮判定手段に基づいた判定結果と、第３の仮判定手段に基づいた判定結果とに基づいて最終的にノックの発生を判定する最終ノック判定手段と、最終ノック判定手段による最終的なノック発生の判定結果に基づいて点火時期を制御する点火時期制御手段とを備える。更に、ノックセンサにより出力される出力信号の最大値を検出する第２の最大値検出手段と、ノックセンサにより出力される出力信号の波形形状が、第２の所定値以上となる期間を前記波形形状を判定する判定期間とする判定期間設定手段とを備え、第２の仮判定手段は、前記判定期間設定手段による判定期間と、最大値検出手段により前記判定期間中に検出される出力信号の最大値との比に基づいてノックの発生を仮判定する。
【００２２】
これにより、従来技術の統計処理を用いたノック判定や波形形状を用いたノック判定のみを用いたノック発生の判定では、ノックの誤検出をしていた出力信号に対しても精度良くノックの発生を判定することができる。
【００２３】
さらに、請求項５の発明によれば、内燃機関のノックを検出するためのノックセンサと、ノックセンサにより検出される出力信号を統計処理する統計処理手段と、統計処理手段を用いてノックの発生を判定する第１の仮判定手段と、前記ノックセンサにより検出される出力信号の波形形状に基づいてノックの発生を判定する第２の仮判定手段と、ノックセンサにより検出される出力信号の周波数分析を行う周波数分析手段と、周波数分析手段による出力信号の分析結果に基づいてノックの発生を判定する第３の仮判定手段と、第１の仮判定に基づいた判定結果と、第２の仮判定手段に基づいた判定結果と、第３の仮判定手段に基づいた判定結果とうち少なくともいずれか２つ以上の判定結果に基づいて最終的にノックの発生を判定する最終ノック判定手段と、最終ノック判定手段による最終的なノック発生の判定結果に基づいて点火時期を制御する点火時期制御手段とを備える。更に、ノックセンサにより出力される出力信号の最大値を検出する第２の最大値検出手段と、ノックセンサにより出力される出力信号の波形形状が、第２の所定値以上となる期間を前記波形形状を判定する判定期間とする判定期間設定手段とを備え、第２の仮判定手段は、前記判定期間設定手段による判定期間と、最大値検出手段により前記判定期間中に検出される出力信号の最大値との比に基づいてノックの発生を仮判定する。
【００２４】
これにより、従来技術の統計処理を用いたノック判定や波形形状を用いたノック判定のみを用いたノック発生の判定では、ノックの誤検出をしていた出力信号に対しても精度良くノックの発生を判定することができる。
【００２５】
請求項６の発明によれば、最終ノック判定手段は、第１の仮判定手段による仮判定結果と、第２の仮判定手段および／または第３の仮判定手段によるノック仮判定結果とがノックが発生したと判定したときに最終的にノックが発生したと判定する。
【００２６】
これにより、第１の仮判定手段ではノイズをノックであると誤検出し易い出力信号であっても、第２の仮判定手段および／または第３の仮判定手段では、ノックとノイズを精度良く判定することができ、第３の仮判定手段ではノイズをノックであると誤検出し易い出力信号であっても第１の仮判定手段ではノイズとノックとを精度良く判定することができるので、精度良くノックを検出することができる。
【００２７】
請求項７の発明によれば、ノックセンサによる所定区間の出力信号における最大値を検出する第１の最大値検出手段と、最大値検出手段により検出された複数個の最大値を対数変換することにより得られる分布形状に基づいて第１の判定値を設定する第１の仮判定値設定手段とを備え、第１の仮判定手段は、第１の仮判定値設定手段により設定される判定値と前記ノックセンサにより検出される出力信号とに基づいてノックの発生を仮判定する。
【００２８】
これにより、ノックセンサからの出力信号の最大値Ｖが、統計処理により設定された判定値付近である場合に、この最大値Ｖが統計処理を用いた仮判定にてノックであると判定されても、この出力信号の最大値Ｖは、統計処理を用いた仮判定の判定値以上であるためセンサ出力領域としては小さな領域の信号ではない。すなわち、たとえば、波形形状プログラムによるノック仮判定によって精度良くノック信号なのかノイズ信号なのかを判定できるセンサ出力の領域であるので、統計処理プログラムのみではノックなのかノイズなのか判定することが困難な出力信号に対しても精度良くノックの発生を判定することができる。
【００２９】
逆に、波形形状を用いたノック仮判定において、ノックセンサ６からの出力信号が小さい場合でも、統計処理を用いたノック仮判定により、統計処理によって設定される判定値を越えないとノックであるとは判定されないため、波形形状を用いたノック判定のみでは誤判定しやすいノック信号の小さな領域であってもノックが発生していないにも係らずノックであると誤判定することが防止できる。
【００３１】
請求項８の発明によれば、ノックセンサにより出力される出力信号を所定時間毎にＡ−Ｄ変換しｓ時系列に蓄積するＡ−Ｄ変換手段と、Ａ−Ｄ変換手段に所定ポイントのＡ−Ｄ変換値が蓄積される毎に繰り返して周波数分析を実行する周波数分析手段と、周波数分析手段により複数回実行された周波数分析を加算する加算手段とを備え、第３の仮判定手段は、前記加算手段の結果からノックとノイズを分離してノックの発生を仮判定する。
【００３２】
【実施の形態】
＜第１の実施の形態＞
本発明を具体化した本実施の形態について、以下に図面を用いて説明する。図１は本発明の概略構成図である。図１において、１は４気筒４サイクルエンジン、２はエアクリーナ、３はエンジンの吸入空気量を検出し、検出した吸入空気量に応じた信号を出力するエアフローメータ、４はスロットル  バルブ、５はエンジンの基準クランク角度位置（たとえば上死点）を検出するための基準角センサ５Ａと、エンジンの一定クランク角度毎に出力信号を発生するクランク角センサ５Ｂを内蔵したディストリビュータである。６はエンジンのノック現象に対応したエンジンブロックの振動を圧電素子式（ピエゾ素子式）、電磁式（マグネット、コイル）等によって検出するためのノックセンサである。９はエンジンの冷却水温に応じた信号を発生する水温センサ、１２はスロットルバルブ４が全閉状態であるときに信号を出すための全閉スイッチ（アイドルスイッチ）、１３はスロットルバルブ４がほぼ全開状態であるときに信号を出力するための全開スイッチ（パワースイッチ）、１４は排気ガスの空燃比（Ａ／Ｆ）が理論空燃比に比べて濃い（リッチ）か薄い（リーン）かに応じて出力信号を発生するＯ２センサである。
【００３３】
８は前記各センサ及び各スイッチからの入出力信号状態に応じてエンジンの点火時期や空燃比等を制御するためのエンジンコントロールユニット（以下、ＥＣＵと称する）、１０はＥＣＵ８から出力される点火時期制御信号を受けてイグニションコイルへの通電遮断を行うイグナイタ及びイグニションコイルである。イグニションコイルで発生した高電圧はディストリビュータ５の配電部を通して適切な時期に所定の気筒の点火プラグに印加される。１１はＥＣＵ８で決定された燃料噴射時間（τ）に基づいて吸気マニホルドに燃料を噴射するためのインジェクタである。
【００３４】
次にＥＣＵ８の詳細構成および動作を図２にしたがって説明する。図２において、６はエンジン１のシリンダブロックに取り付けられ、エンジン１に発生する振動波形信号を検出し電気信号に変換する振動ピックアップとしてのノックセンサであり、このノックセンサ６としては広周波数帯域の振動波形信号を検出するための非共振型センサが用いられる。ノックセンサ６からの信号、折り返し雑音防止用として２０ＫＨｚ以上の周波数成分を除去するためのローパスフィルタ（Ｌｏｗ  Ｐａｓｓ  Ｆｉｌｔｅｒ：低周波数帯域通過フィルタ；以下、ＬＰＦと称する）２１、ノック信号と関係のない１ＫＨｚ以下の周波数成分を除去するためのハイパスフィルタ（Ｈｉｇｈ  Ｐａｓｓ  Ｆｉｌｔｅｒ：高周波数帯域通過フィルタ；以下、ＨＰＦと称する）２２を介してゲイン切替器２３に入力される。
【００３５】
ゲイン切替器２３は入力された信号を適切な大きさに調整する１６ビットＡ／Ｄ変換器相当の広いダイナミックレンジを有する。ゲイン切替器２３からの信号は高速乗算処理可能なディジタルシグナルプロセッサ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ；以下、ＤＳＰと称する）３０に入力される。このＤＳＰ３０は、Ａ／Ｄ（アナログ−ディジタル）変換器３１及びパラレルＩ／Ｏ（以下、ＰｉＯと称する）３２，３３を備え、ゲイン切替器２３に対するゲイン切替信号によるゲイン選定と後述のマイクロコンピュータ４０との通信を行なうものである。
【００３６】
マイクロコンピュータ４０からエンジンのクランクシャフト（図示略）の基準信号として＃１気筒判別信号がＤＳＰ３０に入力され、ＤＳＰ３０から後述のようにノック発生の有無が判定されたノック判定信号が、マイクロコンピュータ４０に入力される。なお、＃１気筒以外の他の気筒についてはカウンタを用いて算出される。この他、マイクロコンピュータ４０にはエンジン１の、クランク角センサ（図示略）、エアフロメータ３、水温センサ９等からの各種センサ信号のうちディジタル信号はそのまま、アナログ信号はＡ／Ｄ変換器４１を介してディジタル信号に変換されて、それぞれ入力される。これらの入力信号に基づいてマイクロコンピュータ４０にて点火時期、燃料噴射量等が演算され、ノック判定信号に応じた補正が実行される。
【００３７】
ここで、マイクロコンピュータ４０は、周知の各種演算処理を実行する中央処理装置としてのＣＰＵ、制御プログラムを格納したＲＯＭ、各種データを格納するＲＡＭ、Ｂ／Ｕ（バックアップ）ＲＡＭ、入出力回路およびそれらを接続するバスライン等からなる論理演算回路として構成される。
【００３８】
以下、このような構成において行われる本実施の形態のノック検出方法を図面を用いて詳述する。まず、図１３のフローチャートは、ノックを最終的に判定するためのメインのルーチンである。この最終判定では、後述する統計処理を用いたノック仮判定と、ノックの波形形状からノック判定を行なうノック仮判定とに基づいて最終ノック判定を行なう。
【００３９】
まず、ステップＳ１０００では、統計処理でノック仮判定が行なわれたか否かが判定される。そして、行われていなければそのまま本ルーチンを終了する。一方、統計処理を用いたノック仮判定が行われていれば、ステップＳ１１００へ進み、波形形状を用いたノック仮判定が行なわれたか否かが判定される。ここで、仮判定が行なわれていなければ、そのまま本ルーチンを終了する。一方、波形形状を用いたノック仮判定が行なわれていれば、ステップＳ１３００へ進む。
【００４０】
ステップＳ１２００では、これら後述する２つのノック仮判定が行われたことを受けて、２つのノック仮判定の結果に基づいて最終的なノック判定を行なう。ノックの最終的な判定手法としては、統計処理でのノック仮判定結果と、波形形状を用いたノック仮判定結果とが、両者ともノックであると判定されたときのみ内燃機関にノックが発生していると判定する。そして、この最終的なノック判定結果に基づいてステップＳ１３００では、点火時期演算を実施する。この点火時期の演算は、図２９のフローチャートに示される。
【００４１】
まず、図２９のステップＳ１３０１では、エンジン回転速度Ｎｅと内燃機関の負荷として例えば吸入空気量とから基本点火時期をマップ等を用いることにより演算する。そして、ステップＳ１３０２では、遅角量演算を行う。この遅角量の演算は、図１３のステップＳ１２００にて行われた最終的なノック判定の結果に基づいて行う。すなわち、最終的なノック判定結果がノックが発生したと判定された場合にのみ、遅角量を演算する。この遅角量の演算は、従来より知られる方法でよく、たとえば、運転状態に応じた所定遅角量をマップにより演算する方法で良い。遅角量の演算が行われると、つぎに、ステップＳ１３０３にて、最終的な点火時期を算出する。最終的なノック判定結果によりノックが発生であるときには、点火時期は、ノック判定の結果を反映した点火時期が設定され、ノックが発生していないと判定されるときには、ノックによる点火遅角が行われない点火時期が設定される。
【００４２】
つぎに、統計処理を用いた仮判定と、波形形状を用いた仮判定との各ノック仮判定について、詳述する。まず、統計処理を用いた仮判定のプログラムについて説明する。
【００４３】
［統計処理プログラム］
最初に統計処理を用いたノック仮判定の原理について説明する。本プログラムは、大きく分けて次の２つの部分より成立っている。第１は、ノック信号の情報により、ノック判定レベルを適正値に補正するための基本的なアルゴリズムの提示である。すなわち、ノックセンサの１サイクル毎の最大値を対数変換し、これを多数サンプリングして得られた分布形状から現在のノック判定レベルの適否を判断し、望ましい方向へノック判定レベルを補正するという基本的なアルゴリズムの提供である。
【００４４】
第２は、この基本的なアルゴリズムを利用し、それをより簡単に、より低コストで実現するための実際的な方法及び装置の提供である。すなわち、基本的なアルゴリズムから引き出された結論に基づくことで、センサ信号を必ずしも対数変換する必要はなく、掛算および割算によってこのアルゴリズムを置換することができ、従って処理をより簡単化することができる。しかも、この第２の項目の中には、多数のＲＡＭ容量（データの一時記憶場所）を使用せずにセンサ信号の多サイクル分布形状を知り得る方法が含まれている。
【００４５】
まず、本発明の技術的論拠について説明する。一般に、定常運転状態におけるエンジン燃焼時のノックセンサ出力信号の所定区間における最大値（ピーク値）Ｖを気筒別に多数個サンプリングしてできる度数分布は図３のようになる。この分布を上側確率を縦軸とした累積分布に書き直したものが図４である。
【００４６】
この累積分布をさらに図４のように書き直すことにより、最大値Ｖの分布が持つ特有の性質について次に説明する。
【００４７】
図５において、縦軸はノックセンサ出力信号の最大値Ｖを対数変換した値Ｌｏｇ（Ｖ）である。同図横軸は正規分布表により、累積分布の上側％点（上側確率がその％値となる点）を正規分布における偏差と標準偏差の比ｕに対応させたものである。
【００４８】
すなわち、横軸ｕは次式で定義される。
0004465928.tif 000002
【００４９】
ここで、ｘ＝Ｌｏｇ（Ｖ）
μ＝Ｌｏｇ（Ｖ５０）（すなわちＬｏｇ（Ｖ）の平均値）
σ＝σ（ｘ）（すなわちＬｏｇ（Ｖ）の標準偏差）
この定義式（１）を図５に対応させると、図５の直線の傾きがσに相当し、ｕ＝０におけるＬｏｇ（Ｖ）の値（Ｖ５０は、上側確率が５０％の点）がμに相当する。図３のような累積分布を図４の座標に従って書き直すには、例えば（上側）５％点のデータがＶ５であったとすれば正規分布表よりｕ＝１．６を求め、（１．６、Ｌｏｇ（Ｖｓ））という点をプロットするという作業を各％点について行えばよい。
【００５０】
図５中（ａ）、（ｂ）はそれぞれノックが全く発生していない時及びノックがある頻度で発生している時のＬｏｇ（Ｖ）の分布を示すものである。（ａ）が１本の直線で表されることは、この分布が一つの正規分布に従っていることを意味する。また、（ｂ）はある変曲点Ｐで傾きが変わっており、この分布が異なる２つの正規分布よりなっていることがわかる。
【００５１】
また、（ｂ）において変曲点Ｐより左側の直線の傾きは（ａ）の傾きとほとんど変わらず、右側の直線の傾きは（ａ）の傾きより２倍程度大きい。そして、変曲点Ｐはノックの発生頻度が大きいほど図の左側へ移る。これらのことから（ａ）及び（ｂ）の変曲点Ｐより左側の分布はノックが発生していない正常燃焼時特有の分布であり、（ｂ）の変曲点Ｐより右側の分布はノック発生時特有の分布であると考えられる。
【００５２】
これら２つの傾きは後者の方が前者より２倍程度大きいので、毎点火ノックが発生しているような状態では、分布が後者の傾きを持つ正規分布になると考えられるが、その分布をノックが発生していない時の分布と誤認することはない。
【００５３】
以上のような理由によりノックセンサ出力信号の最大値Ｖを対数変換した値Ｌｏｇ（Ｖ）の分布からノックの発生状態を判断することができる。こうして、確かにＬｏｇ（Ｖ）よりノックの発生状態を判断することはできるのであるが、対数変換器のような高価な装置を必要としたり、また、Ｌｏｇ（Ｖ）の分布を把握するのに長い時間と多数のＲＡＭを要するので、さらに工夫する必要がある。
【００５４】
そこで、前述したＬｏｇ（Ｖ）の分布形状の特性を利用してノック判定レベルを補正するための簡単な方法として次のような方法を用いる。まず、ノックがまったく発生していない時の分布は上述のごとく図６（ａ）のようになる。ここで、例えば分布の１０％点、５０％点、９０％点の値をそれぞれＶ１０、Ｖ５０、Ｖ９０とすると、Ｌｏｇ（Ｖ１０）−Ｌｏｇ（Ｖ５０）＝Ｌｏｇ（Ｖ５０）−Ｌｏｇ（Ｖ９０）なる関係式が成り立つ。この式は次のように変換することができる。
【００５５】
Ｖ１０／Ｖ５０＝Ｖ５０／Ｖ９０    …（２）
また、ノックは発生しているが、その頻度が小さい時には図６（ｂ）のようになり、（２）式は成り立つ。しかし、ノックが頻繁に発生している時の分布は図６（ｃ）のようになり、
Ｖ１０／Ｖ５０＞Ｖ５０／Ｖ９０    …（３）
となる。すなわち、言い換えればＶ１０、Ｖ５０、Ｖ９０の関係が（２）式のようであればノックの発生頻度は小さすぎると判断し、逆に（３）式のようであればノックの発生頻度が大きすぎると判断することができる。
【００５６】
次にＶ１０、Ｖ５０、Ｖ９０の簡単な求め方について説明する。例えば今回とりこまれた最大値Ｖに対して、Ｖ＞Ｖ１０ならばΔＶ１０を設定値としてＶ１０＝Ｖ１０＋９×ΔＶ１０、Ｖ＜Ｖ１０ならばＶ１０＝Ｖ１０−１×ΔＶ１０というようにＶ１０の変化量の比を９倍にすることにより、Ｖ１０は分布の上位１０％点に一致するような値となる。すなわち、もし、Ｖ１０が今、実際に上位１０％点の値であれば、Ｖ＞Ｖ１０なる確率は０．１であり、Ｖ＜Ｖ１０なる確率は０．９であるので、とりこまれるＶに対してＶ１０の変化量の期待値は９×０．１−１×０．９＝０となり、今の値に安定する。また、Ｖ１０が今上位１０％点の値より小さく、例えば上位２０％点の値であったならば、Ｖ＞Ｖ１０なる確率は０．２であり、Ｖ＜Ｖ１０なる確率は０．８であるので、Ｖ１０の変化量の期待値は１．８−０．８＝１となり、Ｖ１０は大きくなる方向へ変化し上位１０％点の値に落ち着く。同様にＶ１０が今上位１０％点の値より大きな時はＶ１０の変化量の期待値は負となり、小さくなる方向へ変化し上位１０％点の値に落ち着く。
【００５７】
また、Ｖ５０についてはＶ＞Ｖ５０の場合とＶ＜Ｖ５０の場合の変化量の比を１倍にすればよく、Ｖ９０については１／９倍にすればよい。この方法を使えば分布の任意の％点の値を簡単に求めることができる。また、それぞれの変化量は一定の値とするよりもノックセンサ出力に応じた値である方がよい。例えばＶ５０は次のようにして求めてもよい。ΔＶ５０をＶとＶ５０の差の平均とし、随時、ΔＶ５０＝（３×ΔＶ５０＋｜Ｖ−Ｖ５０｜）／４と求め、Ｖ＞Ｖ５０ならばＶ５０＝Ｖ５０＋ΔＶ５０／４、Ｖ＜Ｖ５０ならばＶ５０＝Ｖ５０−ΔＶ５０／４とする。
【００５８】
このようにして求められたＶ１０、Ｖ５０、Ｖ９０について、例えば１２８サイクルごとにＶ１０／Ｖ５０とＶ５０／Ｖ９０の値を算出して、その大小関係によりノックの発生状態を判断してノック判定レベルを補正すれば、正確なノック判定レベルを作成することができる。また、ノックの発生頻度が小さい場合のＶ１０とＶ５０の比はエンジン条件、エンジン機種が変わってもあまり変わらないので、Ｖ１０とＶ５０の比がある所定値（例えば、ノックが発生していない時のＶ１０とＶ５０の比より少しだけ大きな値）になるようにノック判定レベルを補正する方法も有効である。
【００５９】
また、Ｌｏｇ（Ｖ）の分布形状の特性を利用してノック判定レベルを補正するために、次のような方法も有効である。この方法は、例えば最大値Ｖの分布の中央値Ｖ５０を求め、ある定数をＫ０として、ＶがＶ＞Ｋ０×Ｖ５０なる確率とＶ＜Ｖ５０／Ｋ０なる確率がノックが発生している時と発生していない時とでは異なることを利用した方法である。
【００６０】
ノックがまったく発生していない時及びノックの発生頻度が小さい時のＬＯＧ（Ｖ）の分布はそれぞれ図７（ａ）、（ｂ）のようになる。このような状態ではＶ５０／Ｋ０＜Ｖ＜Ｋ０×Ｖ５０の範囲内でＬｏｇ（Ｖ）の分布の直線性が保たれているためＶ＞Ｋ０×Ｖ５０なる確率とＶ＜Ｖ５０／Ｋ０なる確率は等しい。同図の例ではともに２％である。
【００６１】
逆にノックが頻繁に発生している時のＬｏｇ（Ｖ）の分布は同図（ｃ）のようになり、Ｖ＞Ｋ０×Ｖ５０なる確率はＶ＜Ｖ５０／Ｋ０なる確率より大きくなる。同図の例ではそれぞれ１６％、２％である。すなわち、Ｖ＞Ｋ０×Ｖ５０なる確率とＶ＜Ｖ５０／Ｋ０なる確率によりノックの発生状態を判断することができるわけである。また、ノックが発生していない時にＶ＞Ｋ０×Ｖ５０なる頻度はエンジン条件、エンジン機種によりあまり変わらないので、この頻度がある所定値（ノックが発生していない時にＶ＞Ｋ０×Ｖ５０となる頻度より少しだけ大きな値）になるようにノック判定レベルを補正する方法も有効である。
【００６２】
さらに以上に述べた方法において、ノック判定レベルを、Ｖの分布のある％点の値に四則演算を施して、例えば、Ｋ×Ｖ５０として作成してもよい。
【００６３】
以上、統計処理による仮ノック判定の目的、根拠及び基本原理を説明したので、次にこの統計処理によるノック判定方法を実現するためプログラムを説明する。
【００６４】
図８のフローチャートを例としてノック仮判定及びノック判定レベルの補正について説明する。まず、エンジンが起動し点火時期演算の割り込みが行われると、割り込みがスタートされる。まず、ステップＳ１００では、ノックセンサ出力信号の所定区間内における前述の最大値Ｖが気筒別に読み込まれ、ステップＳ３００へ進む。ステップＳ３００では、最大値Ｖの分布の前記％点が算出される。ステップＳ３００の処理内容は後に詳細に説明する。
【００６５】
次に、ステップＳ４００でエンジンの状態がノックコントロールを行う状態であるか否かをエンジンの負荷等から判断し、ＮＯの場合はそのまま本ルーチンを終了する。ステップＳ４００にて、ＹＥＳと判断された場合はステップＳ５００へ進み、気筒別のノック判定レベルＶｒｅｆを、例えば前述のように、
Ｖｒｅｆ＝Ｋ×Ｖ５０
なる演算式より求める。ステップＳ６００で最大値Ｖ＞Ｖｒｅｆならばノックが発生したものと仮判定して、ノックフラグを“Ｈ”にセットする。そして、ステップＳ９００へ進みノック判定レベルの補正が行われて本ルーチンを終了する。このステップＳ９００の処理内容は後に詳細に説明する。
【００６６】
以上、本発明を実施するためのノック判定及びノック判定レベルの補正の全体的な流れを説明したので、次に図９、１０のフローチャートにより、ノックセンサからの出力値Ｖの分布の％点を算出するステップＳ３００及びノック判定レベルを補正するステップＳ９００について説明する。
【００６７】
図９に示したフローチャートは、Ｖの分布の１０％点、５０％点、９０％点という３つの％点の値の比の関係より、ノック判定レベルを補正する方法であり、図８のステップＳ３００のサブルーチンである。また、同様に図１０は図８のステップＳ９００のサブルーチンとなっている。
【００６８】
まず、図９のフローチャートにてステップＳ３０１で今回読み込まれたノックセンサからの出力信号の最大値Ｖと出力信号Ｖの分布の１０％点の値を求めるためのＶ１０（気筒別にＲＡＭに格納されている）とについて、Ｖ＞Ｖ１０の判断を行い、ＹＥＳの場合はステップＳ３０２へ進み、前述のようにＶ１０＝Ｖ１０＋９×Ｖ１０とし、ＮＯの場合はステップＳ３０３へ進み、Ｖ１０＝Ｖ１０−ΔＶ１０とする。こうすることによりＶ１０は分布の上位１０％点の値に落ち着く。次にステップＳ３０４へ進み、Ｖ＞Ｖ５０を判定しＹＥＳの場合はステップＳ３０５へ進み、Ｖ５０＝Ｖ５０＋ΔＶ５０とし、ＮＯの場合はステップＳ３０６へ進み、Ｖ５０＝Ｖ５０−ΔＶ５０とする。
【００６９】
こうすることによりＶ５０は分布の中央値に落ち着く。次にステップＳ３０７へ進み、Ｖ＞Ｖ９０の判定を行いＹＥＳの場合はステップＳ３０８へ進み、Ｖ９０＝Ｖ９０＋ΔＶ９０とし、ＮＯの場合はステップＳ３０９へ進み、Ｖ９０＝Ｖ９０−９×ΔＶ９０とする。こうすることによりＶ９０は分布の上位９０％点に落ち着く。このようなステップで分布の％点の値が求められる。
【００７０】
次に、図８のフローチャートのステップＳ９００の処理のサブルーチンとして、図１０のフローチャートについて説明する。まず、ステップＳ９０１にてエンジン回転速度Ｎｅ、エンジン負荷Ｑ／Ｎｅの変動により、エンジンが定常運転状態であるか否かを判定する。ここで、ＮＯと判定される場合はステップＳ９０６へ進む。ステップＳ９０１においてＹＥＳと判定される場合はステップＳ９０２へ進み、各気筒の燃焼サイクルをカウントするカウンタＮに対して、Ｎ＝Ｎ＋１としてサイクル数をカウントする。ステップＳ９０３では、運転状態として定常状態が所定のサイクル数Ｎｏだけ続いたか否かを判定する。ここで、ＹＥＳと判定されると、ステップＳ９０４へ進み、Ｖ１０／Ｖ５０＞Ｖ５０／Ｖ９０の判断を行う。一方、ＮＯと判定される場合は、図８のフローチャートに戻りそのままルーチンを終了する。
【００７１】
ステップＳ９０４でＹＥＳと判断された場合は、ステップＳ９０５へ進み、ノック判定レベルを設定値ΔＶに対しＶｒｅｆ＝Ｖｒｅｆ−ΔＶとし、ＮＯと判断された場合はステップＸ−１５へ進み、Ｖｒｅｆ＝Ｖｒｅｆ＋Ａ×ΔＶとする。ここで、Ａには１より大きな値を設定しておく。
【００７２】
このようにノック判定レベルＶｒｅｆを小さくなる方向へ補正する量ΔＶより大きくなる方向へ補正する量Ａ×ΔＶを大きくする理由は、ノックの発生頻度が小さい時はステップＳ９０４においてＹＥＳと判断される確率とＮＯと判断される確率が等しくなるが、そのような場合にノック判定レベルが大きくなる方向へ補正されるようにするためである。こうしてノック判定レベルを補正して、ステップＳ９０６へ進み、前記カウント値Ｎを０にして、本ルーチンを終了する。
【００７３】
以上、詳細に述べたように統計処理を用いた仮ノック判定プログラムでは、統計処理によってノックを判定するためのノック判定値を設定し、このノック判定値を越える出力値が検出されるとノックであると仮判定する。すなわち、ノックと判定される出力値は常に判定値以上の出力値であるために、出力信号の小さな領域にて得られる出力信号をノックであると仮判定することがない。
【００７４】
［波形形状プログラム］
つぎに、波形形状によってノックの仮判定を行なうためのプログラムについて以下に詳述する。
【００７５】
まず、ノックセンサ６からの振動波形信号に対してＤＳＰ３０による積分・微分にて得られる３つの信号形状のそれぞれの特徴について、図１１のタイムチャートを用いて説明する。ここで、図１１（ａ）はノック信号Ｓｋｎｏｃｋ、図１１（ｂ）は機械ノイズ信号ＳＦｎｏｉｓｅ、図１１（ｃ）は電気ノイズ信号ＳＥｎｏｉｓｅを示す。
【００７６】
図１１（ａ）に示すノック信号Ｓｋｎｏｃｋは、エンジン１の燃焼室内の燃料の自己着火により発生する。このため、ノック信号Ｓｋｎｏｃｋは信号初期に大きな出力が現れたのち燃焼室内の圧力共振により徐々に減衰するという特徴を有する。すなわち、ノック信号Ｓｎｏｃｋでは、所定の信号有無判定レベルＳｔｈを越える比較的長い発生期間ＳＤに対して大きなピーク値ＳＰが早めのピーク発生時間ＳＰＴにて現れている。なお、信号有無判定レベルＳｔｈによって信号の発生期間ＳＤの長さが決まるのではなく、信号形状が分かれば良いのであるから信号有無判定レベルＳｔｈの学習精度はそれほど良くなくてもよい。
【００７７】
また、図１１（ｂ）に示す機械ノイズ信号ＳＦｎｏｉｓｅは、エンジン１の個々の部品間の摩擦、すなわちフリクションノイズにより発生する。つまり、回転体では摩擦圧力が徐々に増加し、徐々に減衰するために、機械ノイズ信号ＳＦｎｏｉｓｅも同様に遷移するという特徴を有する。すなわち、摩擦による機械ノイズ信号ＳＦｎｏｉｓｅでは、所定の信号有無判定レベルを越える発生期間ＳＤに対して小さなピーク値ＳＰが発生期間ＳＤの中央付近となるピーク発生時間ＳＰＴにて現れる。
【００７８】
さらに、図１１（ｃ）に示す電気ノイズ信号ＳＥｎｏｉｓｅは、電気負荷のオン／オフにより瞬時に発生する。このため電気ノイズ信号ＳＥｎｏｉｓｅは信号立ち上がり及び立ち下がりにて、その勾配が急峻であるという特徴を有する。すなわち、電気ノイズ信号ＳＥｎｏｉｓｅでは、所定の信号有無判定レベルＳｔｈを越える短い発生期間ＳＤに対して大きなピーク値ＳＰが短いピーク発生時間ＳＰＴにて現れる。なお、打音による機械ノイズ信号ＳＳｎｏｉｓｅは電気ノイズ信号ＳＥｎｏｉｓｅと同様な信号形状を有する。
【００７９】
以上のように、ノック信号とノイズ信号とは上述のような特性の波形形状をそれぞれ示す。以下では、ＤＳＰ３０により実施される前述の波形形状の特性を利用した波形形状プログラムを図１２のフローチャートを参照して詳細に説明する。なお、このノック発生の仮判定ルーチンはマイクロコンピュータ３０からの基準位置信号および＃１気筒判別信号に基づくエンジン１の１燃焼サイクル毎にＤＳＰ３０にて繰り返し実行される。
【００８０】
図１２において、ステップＳ１００１では、ノックセンサ６からの振動波形信号に対して得られた信号形状におけるピーク値ＳＰと発生期間ＳＤとの比（ＳＰ／ＳＤ）がノック判定のため予め設定された所定値Ｋ１（下限値）と所定値Ｋ２ｄ（上限値）との範囲内にあるかが判定される。すなわち、ステップＳ１００１の判定処理では、ノックセンサ６からの振動波形信号が図１１に示す３つの波形形状のうちの何れの波形形状であるかが判定されるのである。ステップＳ１００１の判定条件が成立、すなわち、Ｋ１＜（ＳＰ／ＳＤ）＜Ｋ２の不等式が成立するときには発生期間ＳＤに対するピーク値ＳＰが図１０（ａ）に示すノック信号Ｓｋｎｏｃｋに特有の関係にあるといしてステップＳ１００２へ進む。そして、ステップＳ１００２では、ノック発生ありとして波形形状プログラム用のノック仮判定フラグが「１」にセットされて本ルーチンを終了する。
【００８１】
一方、ステップＳ１００１の判定条件が成立せず、すなわち、Ｋ１＜（ＳＰ／ＳＤ）＜Ｋ２の不等式が成立しないときにはステップＳ１００３に進む。ステップＳ１００３では、ノック発生なしとして前述の仮判定フラグに「０」をセットして本ルーチンを終了する。ここで、（ＳＰ／ＳＤ）≦Ｋ１の不等式が成立するのは、ピーク値ＳＰが小さく発生期間ＳＤが長いときであり、図１１（ｃ）に示す電気ノイズ信号ＳＥｎｏｉｓｅ、または打音による機械ノイズ信号ＳＳｎｏｉｓｅであると分かる。
【００８２】
以上のように本実施の形態では、統計処理プログラムによるノック仮判定と、波形形状プログラムによるノック仮判定とを用いて、それぞれの仮判定にてノックが発生したと判定されるた場合にのみ、最終的にノックが発生したと判定する。このように判定することで、統計処理プログラムや波形形状プログラムのみを用いたノック判定ではノックの誤検出をしていた出力信号に対しても精度良くノックの発生を判定することができる。
【００８３】
つまり、ノックセンサ６からの出力信号の最大値Ｖが、統計処理により設定された判定値付近である場合に、この最大値Ｖが統計処理プログラムの仮判定にてノックであると判定されても、この出力信号の最大値Ｖは、統計処理プログラムの判定値以上であるためセンサ出力領域としては小さな領域の信号ではない。すなわち、波形形状プログラムによるノック仮判定によって精度良くノック信号なのかノイズ信号なのかを判定できるセンサ出力の領域であるので、統計処理プログラムのみではノックなのかノイズなのか判定することが困難な出力信号に対しても精度良くノックの発生を判定することができる。
【００８４】
逆に、波形形状プログラムによるノック仮判定において、ノックセンサ６からの出力信号が小さい場合でも、統計処理プログラムによるノック仮判定により、統計処理によって設定される判定値を越えないとノックであるとは判定されないため、波形形状プログラムでは誤判定しやすいノック信号の小さな領域であってもノックが発生していないにも係らずノックであると誤判定することが防止できる。
【００８５】
なお、本実施の形態では統計処理プログラムと波形形状プログラムとの両仮判定を同時に行なっているが、例えば、統計処理プログラムの仮判定にてノックが発生したときのみ波形形状プログラムによってノック判定を行なっても良い。また、同様に、波形形状プログラムにてノックであると判定された場合にのみ、統計処理プログラムを起動させてノック判定を行なっても良い。
【００８６】
以上のように、本実施の形態では、ノックセンサからの出力信号の最大値Ｖが、統計処理により設定された判定値付近である場合に、この最大値Ｖが統計処理を用いた仮判定にてノックであると判定されても、この出力信号の最大値Ｖは、統計処理を用いた仮判定の判定値以上であるためセンサ出力領域としては小さな領域の信号ではない。すなわち、たとえば、波形形状プログラムによるノック仮判定によって精度良くノック信号なのかノイズ信号なのかを判定できるセンサ出力の領域であるので、統計処理プログラムのみではノックなのかノイズなのか判定することが困難な出力信号に対しても精度良くノックの発生を判定することができる。
【００８７】
逆に、波形形状を用いたノック仮判定において、ノックセンサ６からの出力信号が小さい場合でも、統計処理を用いたノック仮判定により、統計処理によって設定される判定値を越えないとノックであるとは判定されないため、波形形状を用いたノック判定のみでは誤判定しやすいノック信号の小さな領域であってもノックが発生していないにも係らずノックであると誤判定することが防止できる。
【００８８】
本実施の形態において、統計処理手段は図９のフローチャートに、第１の仮判定手段は統計処理プログラムに、最終ノック判定手段は図１３のフローチャートに、点火時期制御手段は図２９のフローチャートに、それぞれ相当し機能する。
【００８９】
＜第２の実施の形態＞
第１の実施の形態では、統計処理プログラムの仮判定と波形形状プログラムの仮判定とからノックの発生を判定した。本実施の形態では、統計処理プログラムの仮判定と後述する周波数解析プログラム（以下、ＦＦＴプログラムと称する）の仮判定とからノック発生を判定する。以下に、本実施の形態のノック判定を図１４のメインルーチンを用いて説明する。
【００９０】
まず、ステップＳ１０００は統計処理プログラムでの仮ノック判定が行なわれたか否かが判定される。ここで統計処理プログラムについては、第１の実施の形態にて詳述したので説明を省略する。そして、仮ノック判定が行なわれていないと判定されるとステップＳ１３００へ進み、点火時期演算処理を実施して本ルーチンを終了する。一方、ステップＳ１０００にて統計処理プログラムによる仮ノック判定が行なわれていると判定されると、ステップＳ２００２へ進む。
【００９１】
ステップＳ２００２では、後述するＦＦＴプログラムによるノック仮判定が実施されたか否かが判定される。このＦＦＴプログラムによるノック仮判定が行なわれていなければ、ステップＳ１３００を経由して本ルーチンを終了する。一方、ＦＦＴプログラムによるノック仮判定が行なわれていれば、ステップＳ２００３に進み、最終ノック判定を行う。最終ノック判定としては、統計処理プログラムによる仮判定と、ＦＦＴプログラムによる仮判定とがノックであると判定された場合にのみ最終的な判定としてノックが発生しているとする。そして、ステップＳ１３００にてこの結果を点火時期制御に反映して本ルーチンを終了する。
【００９２】
つぎに、前述のＦＦＴプログラムによる仮ノック判定について図面を用いて説明する。
【００９３】
［ＦＦＴプログラム］
まず始めにＦＦＴ（高速フーリエ変換による周波数分析）を用いてノック判定を行なうための物理的論拠を説明するために、ノック現象について説明する。ノックはシリンダ内の未燃焼ガスが燃焼ガスにより圧縮され自己着火し急速に燃焼することによってシリンダ内で共鳴する現象をいう。このノックを微少レベルで制御すればエンジンを破損することなく燃費を向上させることができる。特開平３−４７４４９号の実施例に開示されている様に前述した共鳴はエンジンのボア径と音速で決まる固有周波数を持ち、シリンダ径方向の次数をｎ，周方向の次数をｍとしたときの共鳴振動モードをＰｎｍとすると、例えば図１５（ｂ）の様な周波数にノック成分が出ると予測される。
【００９４】
しかし、実際のエンジンでノック発生周波数を分析してみると必ずしも図１５（ｂ）に示された周波数にノック成分が発生するとは限らない。図１５（ａ）は図示しないエンジンブロックに取り付けたノックセンサからの信号の１点火分のノック発生時とノックなしの時の周波数分析結果を示したものである。ρ１０とρ２０に対応する振動モードは図１５（ｂ）から予想される値と一致するが、ρ０１，ρ３０はそれぞれ１４．６ＫＨｚ，１６．０ＫＨｚに予想されるにも係わらず１５．５ＫＨｚ，１６．５ＫＨｚにノック成分が発生している。ρ１０，ρ２０モードも別の点火サイクルでは同様にばらつくので点火毎にノック発生周波を検索することが必要である。
【００９５】
次にノック判定方法について説明する。エンジンの燃焼実験から下記の知見が得られた。すなわち、ブロックに取付けられた振動センサでは各ノック発生周波数の出力がノック発生毎に異なるのである。このため各ノック発生周波数毎にノック検出しきい値を定めてノック判定するのが望ましい。
【００９６】
次に、第１の実施の形態の図２の構成において特にＤＳＰ３０の動作を図１６のタイミングチャートにて説明する。図１６のＡは基準位置信号を示すものでその信号の立下りが各気筒のＡＴＤＣ−１０°ＣＡであり、それにより図１６の時刻ｔ１よりａの期間で基準位置割込み処理が実行される。図１６のＢはノック判定区間を示し、図１６のｂ，ｃは時刻ｔ２，ｔ３より実行される後述する図１７のタイマー１割込処理の期間を示している。図１７のｄは時刻ｔ２より実行される後述する図１８のタイマー２割込み処理の期間を示している。図１６のｅはメインルーチンで実行されるＦＦＴ等の処理期間を示している。
【００９７】
まず、図１６の時刻ｔ１の基準位置信号の立ち下がりで基準位置割込み処理ａが実行されてタイマー１にノック判定区間の開始時刻がｆで示すようにセットされる。その結果、時刻ｔ２の判定区間開始時刻になるとタイマー１割込み処理ｂが実行される。これにより、タイマー２にノック判定区間の終了時刻がｇで示すように再セットされると共に、タイマー２割込み処理ｄが実行されてノック信号のＡ−Ｄ変換を開始する。この処理はタイマー２割込みを用いて２０μｓｅｃに１回行われる。
【００９８】
ＦＦＴはその原理上２n個の所定数のデータしか扱えない。従って、ここでは２7＝１２８個を単位としてＦＦＴを行う。Ａ−Ｄ変換された値は時系列に蓄積され、その数が１２８個に達すると図１６のｅのＦＦＴ１区間にて、区間ＡＤ１でＡ−Ｄ変換したノック信号データをＦＦＴする。同時にＡ−Ｄ変換は区間ＡＤ２，ＡＤ３に続く。各区間ＡＤ１，ＡＤ２，ＡＤ３の区切は各区間ＡＤ１，ＡＤ２でのＡ−Ｄ変換データ数が１２８個である区切であるところのものであり、ノック判定区間中それらのＡ−Ｄ変換動作は同一かつ連続的に実行され、各Ａ−Ｄ変換データが時系列に蓄積される。区間ＡＤ２でも同様にデータ数が１２８に達したら区間ＦＦＴ２で２回目のＦＦＴを行う。この２回目のＦＦＴ結果は１回目の結果に加算する。
【００９９】
そしてノック判定区間が終了すると、メインルーチンにてＦＦＴ終了後に、１回のノック判定区間における各ＦＦＴの加算結果に基づいて点火１回毎にノック発生周波数を検索してノック強度を判定し、その結果をマイクロコンピュータ４０に送る。なお、ノック判定区間は１２８ポイントのＡ−Ｄ変換終了と同時に終わらないのが普通であり、通常は図１６の区間ＡＤ３の様に途中でＡ−Ｄ変換を打切る。この場合、残りのＡ−Ｄ変換ポイント部分はＡ−Ｄ変換入力が０であったと想定して１２８ポイントのＦＦＴを実行する。
【０１００】
また、前回のＦＦＴが終了していないうちにノック検出区間が終了した時は前回のＦＦＴ終了を待って、次のＦＦＴを実行する。以上の様に複数回のＦＦＴの結果を加算する構成にすることで、ノック判定区間を自由に設定することができる。合わせて低回転時は全区間を１回のＦＦＴで周波数分析するよりも少ない計算量で周波数を分析できる。
【０１０１】
図１７〜図２５はＤＳＰ３０のプログラムの流れを示すフローチャートである。次に、図１６の時刻ｔ１において基準位置での角度割込により図１８のステップＳ２０４０で示す基準位置割込プログラムが開始される。ここで、基準位置とはエンジンのクランク角度で各気筒の上死点前（ＢＴＤＣ）１０°ＣＡを示し、マイクロコンピュータ４０内のＣＰＵから送られてくる。まず、ステップＳ２０５０で気筒判別し、今回点火する気筒からノックセンサまでの距離に応じた値を出力する。この信号もマイクロコンピュータ４０内のＣＰＵから送られて来る信号で、♯１気筒の時のみ１となっており、他の気筒はカウンタを用いて算出する。ステップＳ２０６０は回転速度計算部分で、前回の基準信号から今回の基準信号までに要した時間を基に計算する。ステップＳ２０７０は前処理として入力ゲインの設定，フェイル判定とタイマ設定などを行う。ステップＳ２０８０で予めエンジン回転数に応じて設定してあるクランク角度まで待つためにタイマー１をセットする。ここで、通常ノックが発生するのは略上死点後（ＡＴＤＣ）１５°ＣＡ〜ＡＴＤＣ７０°ＣＡ程度なので、ステップＳ２０８０では少し前のＡＴＤＣ１０°ＣＡ程度の値に対応する時刻をセットする。
【０１０２】
そして、ステップＳ２０８０で設定された時刻（図１６のｔ２）になると図１７のステップＳ２０９０で示すタイマー１割込みプログラムが開始される。まず、ステップＳ２０９１では後述するノック判定終了フラグが１であることによりノック判定区間開始であると判断してステップＳ２０９２へ進み、ノック判定区間終了フラグを０にする。次にステップＳ２０９３へ進んでタイマー１にＡＴＤＣ７０°ＣＡ程度の値に対応する時刻を再セットした後ステップＳ２０９４へ進んでＡ−Ｄ変換を開始させるためのタイマー２をセットして起動させる。その後ステップＳ２０９５へ進んでメインルーチンを起動させる。
【０１０３】
また、タイマー１の再セット時刻（図１６のｔ３）になると再度図１７のステップＳ２０９０で示すタイマー１割込プログラムが開始される。今度は、ステップＳ２０９１ではノック判定終了フラグが０であることによりノック判定終了区間であると判断してステップＳ２０９６へ進み、ノック判定区間終了フラグを１にした後、ステップＳ２０９７へ進んでタイマー２の作動を停止させてＡ−Ｄ変換を終了させる。
【０１０４】
次に、図１９に示すタイマー２割込ステップＳ２０９７について説明する。このタイマー２割込みは２０μｓｅｃ毎に実行される。まず、ステップＳ２０９９でＡ−Ｄ変換器４１によるノック信号のＡ−Ｄ変換を開始させた後ステップＳ１００へ進んでＡ−Ｄ変換器３１によりＡ−Ｄ変換された値をＤＳＰ３０に取込んだ後、ステップＳ２１０１へ進んで、この取込んだＡ−Ｄ変換値をＤＳＰ３０中の図示せぬＲＡＭに時系列に格納して蓄積する。
【０１０５】
図２０は図１９のステップＳ２０７０の前処理を示すもので、まず、ステップＳ２０７１で、入力信号が適切な大きさになるようにゲイン切替器２３のゲインを調整する。次にステップＳ２０７２へ進んで、ノックセンサ６のフェイルを判定する。このフェイル判定方法としては、図２１に示すごとく、ステップＳ２７２１にて図２２にて詳述するＰＡＬＬの値を気筒別に１／１６なましした値と所定値とを比較し、この１／１６なまし値が所定値より小さいときにはステップＳ２７２２へ進んでセンサフェイル出力をマイクロコンピュータ４０のＣＰＵへ供給する。
【０１０６】
図２３は図１７のステップＳ２０９４により起動されるメインルーチンを示すもので、まずステップＳ２１０２でＦＦＴを用いたノック仮判定区間終了フラグが１か判断し、ノック仮判定区間終了フラグが１でないときにはステップＳ２１０３へ進んで、１２８ポイントのＡ−Ｄ変換が終了したか判断し、終了していないときにはステップＳ２１０２へ戻り、終了したときにはステップＳ２１０４へ進んでＦＦＴを実行すると共に、その結果を前回までの加算結果に加算する。
【０１０７】
次に、ステップＳ２１０２でノック判定区間終了フラグが１のときにはステップＳ２１０５へ進んでその時点でＡ−Ｄ変換中の１２８に満たない部分の値を所定値＝０にした後、ステップＳ２１０６へ進んでＦＦＴを実行すると共に、その結果を前回までの加算結果に加算する。
【０１０８】
そして、次のステップＳ２１０７で１回のノック判定区間における各ＦＦＴの加算結果に基づいて点火１回毎のノック発生周波数の検索などの後処理を実行した後、ステップＳ２１０８で点火１回ごとにノック強度判定を行う。
【０１０９】
図２４は図２３のステップＳ２１０７をより詳細に示すもので、１回のノック判定区間における各ＦＦＴの加算結果に基づいて得られた図１５（ａ）に対応する周波数−スペクトル強度特性から、ステップＳ３１０１〜Ｓ３１０５にて各ノッキング周波数ρ１０，ρ２０，ρ０１，ρ３０，ρ１１モードにおける各ピーク値検索と各出力計算をそれぞれ実行することにより、点火毎に各ノック発生周波数が検索されてそれら各ノッキング発生周波数に応じた出力が計算される。次のステップＳ３１０６でノック信号の電力総和を計算する。
【０１１０】
図２５により図２４のステップＳ３１０１をより詳細に説明する。なお、図２４のステップＳ３１０２〜Ｓ３１０５も図２５と基本的に同じである。図１５（ａ）の特性の要部に対応する各ＦＦＴの加算結果を簡略化して図２６に示し、この特性を代表してピーク値検索（ノック発生周波数の検索）とその出力計算の仕方を説明する。まず、ステップＳ２１３１にてρ１０モードにおける下限周波数ｆL を図示しないＲＯＭから読み込み、次のステップＳ２１３２でρ１０モードにおける上限周波数ｆｕを同様に読み込む。ここで、上下限周波数ｆＬ，ｆｕは共鳴振動モード（ノック発生周波数）ρ１０として予想される値に所定の余裕を見込んで予め設定されている値である。
【０１１１】
次のステップＳ２１３３で上下限周波数ｆＬ，ｆｕ内でのスペクトル強度の最大値ｆＭＡＸを求めた後、ステップＭ１３４でｆＭＡＸ±１１７２Ｈｚにおけるスペクトル強度の総和Ｐ１０を求める。次に、ステップＳ１１３５で、スペクトル強度の総和Ｐ１０を正規化した値ＭＤ１０を求める。すなわち、該当気筒からノックセンサ６までの距離と総和したデータ個数とを乗算した値でスペクトル強度の総和Ｐ１０を除算して正規化した値ＭＤ１０を求める。
【０１１２】
図２２により図２４のステップＳ３１０６をより詳細に説明する。ステップＳ２１４１で１回のノック判定区間における各ＦＦＴの加算結果に基づいて得られた図１５（ａ）に対応する周波数−スペクトル強度特性から５〜２０ＫＨｚの全スペクトル強度の和ＰＡＬＬを求める。
【０１１３】
図２７は図２３のノック判定ステップＳ２１０８をより詳細に示すもので、まず、ステップＳ２１５１で割込みを禁止した後ステップＳ２１５２で中間層出力ＮＭＯＵＴｎを次式により計算する。
【０１１４】
ＮＭＯＵＴｎ＝ＣＹＬ×ＷＣＹＬＨｎ＋ＴＲＰＭ×ＷＲＰＭＨｎ＋ＰＡＬＬ×ＷＡＬＬＨｎ＋ＭＤ１０×Ｗ１０Ｈｎ＋ＭＤ２０×Ｗ２０Ｈｎ＋ＭＤ０１×Ｗ０１Ｈｎ＋ＭＤ３０×Ｗ３０Ｈｎ＋ＭＤ１１×Ｗ１１Ｈｎ＋ＷＯＦＦＨｎ
ここで、ＣＹＬは気筒間差と呼ばれるもので、気筒ごとの全スペクトル強度の和ＰＡＬＬを３／４なまし処理したものの逆数で、ＴＲＰＭはマイクロコンピュータ４０内のＣＰＵから入力される基準位置信号の周期を示す値である。また、ＰＡＬＬは５ＫＨｚ〜２０ＫＨｚの間のノックセンサ６の振動エネルギーの総和値であり、ＭＤ１０，ＭＤ２０，ＭＤ０１，ＭＤ３０，ＭＤ１１はそれぞれのシリンダ内部にノッキングが原因で生じた圧力波の固有振動の近傍の総和値であり、それぞれ気筒間差、及び振動解析の際入力したデータの数で除算し正規化したものである。ＷＣＹＬＨｎ，ＷＲＰＭＨｎ，ＷＡＬＬＨｎ，Ｗ１０Ｈｎ，Ｗ２０Ｈｎ，Ｗ０１Ｈｎ，Ｗ３０Ｈｎ，Ｗ１１Ｈｎ，Ｗ０ＦＦＨｎはそれぞれシナプス結合係数と呼ばれる重み係数である。（ただしここでｎは中間ニューロンの数であり、例では０〜９，Ａ〜Ｆの１６個の値を取るもので、はじめに０に初期化されている。
【０１１５】
ＮＭＯＵＴｎは数式１により得られた結果であり、この１６ビットのデータの上位８ビットは次のステップＳ２１５３で図２８に示すごときシグモイド関数ｆ（χ）＝１／（１＋ｅｘｐ（−χ））の関数テーブルによりテーブルルックアップされ、中間ニューロンの出力Ｈｎを得る。
【０１１６】
次のステップＳ２１５４で中間ニューロンの数ｎ＝１６か判別し、中間ニューロンの数ｎに達していない時にはステップＳ２１５２に戻り、中間ニューロンの数ｎと等しくなるとステップＳ２１５５へ進む。
【０１１７】
この様にして得られたｎ＝１６個の中間層出力Ｈ０〜ＨＦに対してステップＳ２１５５にて次式に示す様な重み係数ＷＨ０〜ＷＨＦが対応され、中間層と同様の演算を行うことで、出力層ニューロンの出力ＮＮＯＵＴを得る。
【０１１８】
ＮＮＯＵＴ＝Ｈ０×ＷＨ０＋Ｈ１×ＷＨ１＋Ｈ２×ＷＨ２＋Ｈ３×ＷＨ３＋Ｈ４×ＷＨ４＋Ｈ５×ＷＨ５＋Ｈ６×ＷＨ６＋Ｈ７×ＷＨ７＋Ｈ８×ＷＨ８＋Ｈ９×ＷＨ９＋ＨＡ×ＷＨＡ＋ＨＢ×ＷＨＢ＋ＨＣ×ＷＨＣ＋ＨＤ×ＷＨＤ＋ＨＥ×ＷＨＥ＋ＨＦ×ＷＨＦ
この出力ＮＮＯＵＴを次のステップＳ２１５６で図２８に示すごとき関数テーブルによりテーブルルックアップしてノック強度に応じた１６ビットの出力を求め、次のステップＭ１５７でそのうち上位２ビットを出力する処理を施し、ノック強度に応じた判定結果ＫＮＫを得る。
【０１１９】
ここで前述の各重み係数は、一般に知られた、例えばバックプロパゲーション法等により、学習して得るもので、これにより与えられた学習データに基づいて未知の入力群に対する出力ＫＮＫを得るものである。そして、次のステップＭ１５８で割込みを許可する。
【０１２０】
なお、上述した実施例においては、図２３のノック判定ステップＳ２１０８でニューラルネットを用いてノック強度判定を行ったが、ファジィ推論を用いてノック強度判定を行うこともできる。
【０１２１】
本実施の形態において、周波数分析手段は図２７のフローチャートに、第３の仮判定手段は図２３のフローチャートに、最終ノック判定手段は図１４のフローチャートのステップＳ２００３に、それぞれ相当し機能する。
【０１２２】
（その他の実施例１）
第１の実施の形態では、統計処理プログラムを用いたノック仮判定と、波形形状プログラムを用いたノック仮判定とを備え、この２つのノック仮判定に基づいて最終的なノック判定を実施した。また、第２の実施の形態では、統計処理プログラムを用いたノック仮判定と、周波数解析プログラムを用いたノック仮判定とを備え、この２つのノック仮判定に基づいて最終的なノック判定を実施した。
【０１２３】
本実施例では、周波数プログラムを用いたノック仮判定と、波形形状プログラムを用いたノック仮判定とを備え、この２つのノック仮判定に基づいて最終的なノック判定を行なうものである。図３０のフローチャートを用いて以下に説明する。まず、ステップＳ２００２にて、ＦＦＴプログラムを用いたノック仮判定が行われたか否かを判定する。ここで、ノック仮判定が行われていない場合には、ステップＳ１３００にて通常の点火時期設定処理を行って本ルーチンを終了する。
【０１２４】
一方、ＦＦＴプログラムを用いたノック仮判定が行われていれば、ステップＳ１１００へ進み、波形形状プログラムを用いたノック仮判定が行われたか否かを判定する。ノック仮判定が行われていなければ、ステップＳ１３００を経由して本ルーチンを終了する。また、ステップＳ１１００にて波形形状プログラムを用いたノック仮判定が行われていると判定されると、ステップＳ４０００へ進む。ステップＳ４０００では、ＦＦＴプログラムを用いたノック仮判定結果と、波形形状プログラムを用いたノック仮判定結果とが両方ともにノックであると場合に、最終的にノックが発生したとの判定を行う。そして、ステップＳ１３００にて、ノックが発生している場合には、点火時期遅角を行い。他方、ノックが発生していない場合には、通常の点火時期を設定して本ルーチンを終了する。
【０１２５】
なお、本実施例では、ＦＦＴプログラムを用いたノック仮判定結果と、波形形状プログラムを用いたノック仮判定結果とから最終的なノック判定を行っているが、ＦＦＴプログラムを用いたノック仮判定結果が、ノックであると判定した場合にのみ、波形形状プログラムを用いたノック仮判定を行うようにしても良い。
【０１２６】
本実施例において、最終ノック判定手段は図３０のフローチャートのステップＳ４０００に相当し、機能する。
【０１２７】
（その他の実施例２）
本実施例では、統計処理プログラムを用いたノック仮判定、ＦＦＴプログラムを用いたノック仮判定、波形形状プログラムを用いたノック仮判定とを備え、この３つの仮判定結果に基づいて最終的なノック判定を行うものである。以下に、図３１のフローチャートを用いて説明する。
【０１２８】
まず、ステップＳ１０００では、統計処理プログラムを用いたノック仮判定が行われたか否かが判定される。ノック仮判定が行われていなければステップＳ１３００を経由して本ルーチンを終了する。一方、ステップＳ１０００にて統計処理プログラムを用いたノック仮判定が行われていれば、ステップＳ２００２へ進み、ＦＦＴプログラムを用いたノック仮判定が行われたか否かが判定される。ここで、ノック仮判定が行われていなければ、ステップＳ１３００を経由して本ルーチンを終了する。また、ステップＳ２００２にてＦＦＴプログラムを用いたノック仮判定が行われていると判定されると、ステップＳ１１００へ進み、波形形状プログラムを用いたノック仮判定が行われたか否かが判定される。ノック仮判定が行われていなければ、ステップＳ１３００を経由して本ルーチンを終了する。一方、ノック仮判定が行われていると判定されると、ステップＳ５０００へ進む。
【０１２９】
ステップＳ５０００では、統計処理プログラムを用いたノック仮判定と、ＦＦＴプログラムを用いたノック仮判定と、波形形状プログラムを用いたノック仮判定とのそれぞれの仮判定結果に基づいて、最終的なノック判定を行う。最終的なノックの判定は、３つのノック仮判定結果がすべてノックの発生であるとなった場合にのみ最終的にノックが発生したと判定しても良い。
【０１３０】
また、３つのうちの２つの仮判定がノックであると判定した場合に、最終的にノックが発生したと判定しても良い。このとき、少なくとも統計処理プログラムによるノック仮判定結果がノックであると判定していることが好ましい。この理由は、ノックセンサからの出力信号の最大値Ｖが、統計処理により設定された判定値付近である場合に、この最大値Ｖが統計処理を用いた仮判定にてノックであると判定されても、この出力信号の最大値Ｖは、統計処理を用いた仮判定の判定値以上であるためセンサ出力領域としては小さな領域の信号ではない。すなわち、たとえば、波形形状プログラム若しくはＦＦＴプログラムによるノック仮判定によって精度良くノック信号なのかノイズ信号なのかを判定できるセンサ出力の領域であるので、統計処理プログラムのみではノックなのかノイズなのか判定することが困難な出力信号に対しても精度良くノックの発生を判定することができる。
【０１３１】
逆に、波形形状プログラム、若しくはＦＦＴプログラムを用いたノック仮判定において、ノックセンサ６からの出力信号が小さい場合でも、統計処理を用いたノック仮判定により、統計処理によって設定される判定値を越えないとノックであるとは判定されないため、波形形状を用いたノック判定のみでは誤判定しやすいノック信号の小さな領域であってもノックが発生していないにも係らずノックであると誤判定することが防止できる。
【０１３２】
なお、本実施例では、３つの仮判定が全て行われた場合にのみ最終的なノック判定を実施しているが、たとえば、統計処理プログラムを用いたノック仮判定結果がノックが発生したと判定した場合にのみ、ＦＦＴプログラムを用いたノック仮判定を実施するようにしても良い。更に、このＦＦＴプログラムを用いたノック仮判定結果がノックが発生したと判定した場合に波形形状プログラムを用いたノック仮判定を実施するようにしても良い。
【０１３３】
本実施例において、最終ノック判定手段は図３１のフローチャートのステップＳ５０００に相当し、機能する。
【図面の簡単な説明】
【図１】本発明の一実施例を示す概略構成図である。
【図２】本発明のＥＣＵの概略構成図である。
【図３】ノックセンサからの出力最大値の度数分布図である。
【図４】ノックセンサからの出力最大値の累積度数分布図である。
【図５】正規分布における偏差と標準偏差の比ｕとＬｏｇ（Ｖ）の関係を示す図である。
【図６】統計処理プログラムによるノック仮判定の原理を説明する図である。
【図７】統計処理プログラムによるノック仮判定の原理を説明する図である。
【図８】統計処理プログラムによるノック仮判定とノック判定値の設定を示す図である。
【図９】図８のステップＳ３００の分布の％点算出処理のサブルーチン。
【図１０】図８のステップＳ９００のノック判定レベルの補正処理のサブルーチンである。
【図１１】ＤＳＰに入力される振動波形信号が処理された各信号のそれぞれの特徴を示す説明図である。
【図１２】波形形状プログラムによるノック仮判定のフローチャートである。
【図１３】第１の実施の形態におけるノック判定のメインのフローチャートである。
【図１４】第２の実施の形態におけるノック判定のメインのフローチャートである。
【図１５】（ａ）はノックセンサ信号の周波数−スペクトル強度特性図、（ｂ）はエンジンのノック発生周波数分析図である。
【図１６】第２の実施の形態の周波数分析プログラムのタイミングチャートである。
【図１７】第２の実施の形態の周波数分析プログラムにおけるタイマー１割り込みのフローチャートである。
【図１８】第２の実施の形態の周波数分析プログラムにおける基準位置割り込みのフローチャートである。
【図１９】第２の実施の形態の周波数分析プログラムにおけるタイマー２割り込みのフローチャートである。
【図２０】第２の実施の形態の周波数分析プログラムにおける前処理のフローチャートである。
【図２１】第２の実施の形態の周波数分析プログラムにおけるセンサフェール判定のフローチャートである。
【図２２】第２の実施の形態の周波数分析プログラムにおける電力総和計算のフローチャートである。
【図２３】第２の実施の形態の周波数分析プログラムにおけるメインルーチンのフローチャートである。
【図２４】第２の実施の形態の周波数分析プログラムにおける後処理のフローチャートである。
【図２５】第２の実施の形態の周波数分析プログラムにおけるρ１０モードピーク値検索のフローチャートである。
【図２６】第２の実施の形態の周波数分析プログラムにおけるピーク値検索の作動説明に供する特性図である。
【図２７】第２の実施の形態の周波数分析プログラムにおけるノック仮判定のフローチャートである。
【図２８】第２の実施の形態の周波数分析プログラムにおける関数テーブルサーチ特性図である。
【図２９】第１の実施の形態の点火時期演算処理を示すフローチャートである。
【図３０】その他の実施例１のノック判定のフローチャートである。
【図３１】その他の実施例２のノック判定のフローチャートである。
【符号の説明】
１…エンジン、
２…エアクリーナ、
３…エアフロメータ、
４…スロットル弁、
５…ディストリビュータ、
６…ノックセンサ、
８…ＥＣＵ、
１１…インジェクタ。
【図１】
0004465928.tif 000003
【図２】
0004465928.tif 000004
【図３】
0004465928.tif 000005
【図４】
0004465928.tif 000006
【図５】
0004465928.tif 000007
【図６】
0004465928.tif 000008
【図７】
0004465928.tif 000009
【図８】
0004465928.tif 000010
【図９】
0004465928.tif 000011
【図１０】
0004465928.tif 000012
【図１１】
0004465928.tif 000013
【図１２】
0004465928.tif 000014
【図１３】
0004465928.tif 000015
【図１４】
0004465928.tif 000016
【図１５】
0004465928.tif 000017
【図１６】
0004465928.tif 000018
【図１７】
0004465928.tif 000019
【図１８】
0004465928.tif 000020
【図１９】
0004465928.tif 000021
【図２０】
0004465928.tif 000022
【図２１】
0004465928.tif 000023
【図２２】
0004465928.tif 000024
【図２３】
0004465928.tif 000025
【図２４】
0004465928.tif 000026
【図２５】
0004465928.tif 000027
【図２６】
0004465928.tif 000028
【図２７】
0004465928.tif 000029
【図２８】
0004465928.tif 000030
【図２９】
0004465928.tif 000031
【図３０】
0004465928.tif 000032
【図３１】
0004465928.tif 000033