(57)【特許請求の範囲】
【請求項１】
内燃機関のシリンダ内で発生する振動又は圧力波を振動データとして検出する振動検出部と、
前記内燃機関の運転状態に応じて、前記内燃機関のノックにより発生する振動レベルが顕著にあらわれる第１の期間が含まれるように、ノック検出ウィンドウを予め設定するノック検出ウィンドウ設定部と、
前記ノック検出ウィンドウ内で検出された前記振動データに対して、時間・周波数解析を実施することにより得られる所定時間ごとの振動レベルを複数の周波数に対して同時に算出するデジタル信号処理部と、
前記第１の期間に基づいて設定される第２の期間を用いて、前記所定時間ごとの振動レベルを順次移動平均し、前記移動平均後の振動レベルのうちのピーク値を抽出する処理を、前記複数の周波数に対して同時に実施する移動平均処理部と、
前記抽出されたピーク値に基づいてノック判定閾値を算出し、前記ピーク値と前記ノック判定閾値とを比較することにより前記ノックの発生の有無を判定する処理を、前記複数の周波数に対して同時に実施するノック判定部と、
前記複数の周波数のうち少なくともいずれか１つの周波数により前記ノックが発生したことを判定したときには、前記ノックを回避するための処置を行なうノック回避部と、
前記内燃機関の運転状態に基づいて、前記ノック検出ウィンドウ内に疑似ノックが発生しているか否かを判定する疑似ノック判定部と、
を備え、
前記疑似ノックは、前記第１の期間と同等の期間に設定された前記第２の期間を用いて前記移動平均を実施したときに、前記ノックが発生しているときの前記ピーク値と前記ノックが発生していないときの前記ピーク値との比が所定値以下となる場合に於ける、前記ノックが発生していないときの前記ピーク値を有する振動であり、
前記移動平均処理部は、
前記疑似ノックが発生していないと判定されているときには、前記第１の期間と同等の期間を前記第２の期間として設定し、
前記疑似ノックが発生していると判定されているときには、前記移動平均を実施しない、もしくは前記第１の期間より狭い期間を前記第２の期間として設定する、
ことを特徴とする内燃機関の制御装置。
【請求項２】
内燃機関のシリンダ内で発生する振動又は圧力波を振動データとして検出する振動検出部と、
前記内燃機関の運転状態に応じて、前記内燃機関のノックにより発生する振動レベルが顕著にあらわれる第１の期間が含まれるように、ノック検出ウィンドウを予め設定するノック検出ウィンドウ設定部と、
前記ノック検出ウィンドウ内で検出された前記振動データに対して、時間・周波数解析を実施することにより得られる所定時間ごとの振動レベルを複数の周波数に対して同時に算出するデジタル信号処理部と、
前記第１の期間に基づいて設定される第２の期間を用いて、前記所定時間ごとの振動レベルを順次移動平均し、前記移動平均後の振動レベルのうちのピーク値を抽出する処理を、前記複数の周波数に対して同時に実施する移動平均処理部と、
前記抽出されたピーク値に基づいてノック判定閾値を算出し、前記ピーク値と前記ノック判定閾値とを比較することにより前記ノックの発生の有無を判定する処理を、前記複数の周波数に対して同時に実施するノック判定部と、
前記複数の周波数のうち少なくともいずれか１つの周波数により前記ノックが発生したことを判定したときには、前記ノックを回避するための処置を行なうノック回避部と、
前記内燃機関の運転状態に基づいて、前記ノック検出ウィンドウ内に疑似ノックが発生しているか否かを判定する疑似ノック判定部と、
を備え、
前記疑似ノックは、前記第１の期間と同等の期間に設定された前記第２の期間を用いて前記移動平均を実施したときに、前記ノックが発生しているときの前記ピーク値と前記ノックが発生していないときの前記ピーク値との比が所定値以下となる場合に於ける、前記ノックが発生していないときの前記ピーク値を有する振動であり、
前記移動平均処理部は、
前記疑似ノック判定部による前記疑似ノックの発生の有無の判定結果にかかわらず、前記疑似ノックが発生していないことが判定されているときの前記第２の期間と、前記疑似ノックが発生していることが判定されているときの前記第２の期間とを用いて、前記所定時間ごとの振動レベルを順次移動平均し、前記移動平均後の振動レベルのうちのピーク値を抽出する処理を、前記複数の周波数に対して同時に実施し、
前記ノック判定部は、前記抽出されたピーク値に基づいて前記ノック判定閾値を算出する処理を、前記複数の周波数に対して同時に実施する、
ことを特徴とする内燃機関の制御装置。
【請求項３】
前記第１の期間、及び第２の期間は、前記所定時間ごとの振動レベルを順次移動平均する移動平均個数に相当することを特徴とする請求項１又は２に記載の内燃機関の制御装置。
【請求項４】
前記移動平均個数は、前記内燃機関の回転数に対応して予め設定された移動平均個数マップに基づいて定められることを特徴とする請求項３に記載の内燃機関の制御装置。
【請求項５】
前記疑似ノック判定部は、予め設定された疑似ノック判定マップに基づいて前記判定を行うことを特徴とする請求項１乃至４のうちの何れか一項に記載の内燃機関の制御装置。 
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、内燃機関の制御装置に関し、より詳しくは、内燃機関に発生するノックを検出するノック検出機能を備えた内燃機関の制御装置に関するものである。
【背景技術】
【０００２】
従来から、内燃機関により発生するノック現象を振動センサにより検出する方法が知られている。これは、内燃機関の運転中にノックが発生すると、内燃機関やノックの振動モードに応じた固有周波数の振動が発生することを利用して、所定のノック検出ウィンドウにおける固有周波数の振動レベルを抽出することでノックの検出を行うものである。固有周波数の振動レベルの抽出には、アナログのバンドパスフィルタ回路を用いた方法や、短時間フーリエ変換（以下、「ＳＴＦＴ」と称する）、離散フーリエ変換（以下、「ＤＦＴ」と称する）などのデジタル信号処理の実施が一般的に知られている。
【０００３】
ところで、抽出した固有周波数の振動レベルの中には、吸排気バルブの着座やインジェクタによる燃料噴射の開始および終了に起因する機械ノイズ、或いは電気ノイズが重畳している場合がある。そこで、特許文献１（特開２００６−３４８７６４号公報）に開示された技術では、ノックに起因する振動レベルからなるノック波形がピーク到達後に緩やかに減衰するのに対して、機械ノイズの振動レベルからなる機械ノイズ波形および電気ノイズ波形がピーク到達後に速やかに減衰することに着目して、予め設定された第１の周波数と第２の周波数とを内燃機関の運転状態に応じて切り替えて、ノック波形がより顕著にあらわれる固有周波数を得るようにしている。
【０００４】
特許文献１に開示された技術は、更に詳しく述べれば、第１の運転状態では第１の周波数に切り替え、第２の運転状態では第２の周波数に切り替える。そして、第１の周波数では振動レベルのピーク値に基づいてノックの発生を判定し、第２の周波数では振動レベルの積算値に基づいてノックの発生を判定するようにしたものである。
【０００５】
特許文献１に記載された従来の技術によれば、機械ノイズや電気ノイズが重畳する第２の周波数に対して、第２の周波数の振動レベルの積算値を用いるものであり、ノック波形を含むノック検出ウィンドウ内の振動レベルの面積と、機械ノイズ波形を含むノック検出ウィンドウ内の振動レベルの面積とを比較するようにしているので、ノック波形を含むノック検出ウィンドウ内の振動レベルのピーク値と機械ノイズ波形を含む振動レベルのピーク値とを比較する場合よりもＳ／Ｎを向上させることができる。
【０００６】
また、内燃機関の燃焼室内の環境条件（例えば内燃機関オイルの温度、冷却水の温度）や、内燃機関の機差バラツキ（例えば、燃焼室の圧縮比バラツキ）など様々な要素によって、圧縮上死点を基準としたクランク角に対するノック波形の開始位置は変化する。そのため、ノック波形の開始位置と終了位置に合わせるようにノック検出ウィンドウを適切に設定することは難しく、ノック検出ウィンドウの範囲をある程度広く設定せざるを得ない。これに対して、特許文献２（特許第３０８３５４６号公報）に開示された技術では、ノック検出ウィンドウ内の振動レベル（特許文献２ではＳＴＦＴを実施して算出されるスペクトル列を示す）を所定のスペクトル個数ごとに順次移動平均し、移動平均後のスペクトル列をもとにノックの発生を判定するようにしている。
【０００７】
特許文献２に開示された従来の技術によれば、ノック検出ウィンドウの範囲をある程度広く設定しても、ノック波形の開始位置と終了位置の幅に相当する期間（所定のスペクトル個数）を用いて移動平均を実施することで、ノックに起因する振動レベルが顕著にあらわれる期間をとらえつつ、特許文献１に開示された技術における振動レベルの積算値を用いた場合と同様に、機械ノイズや電気ノイズの振動レベルを低減することができる。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００６−３４８７６４号公報
【特許文献２】特許第３０８３５４６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
特許文献１に開示された従来の技術では、第１の周波数においてノック検出ウィンドウ内の振動レベルのピーク値に基づいてノックの発生を判定しているが、内燃機関によっては第１の周波数、第２の周波数ともに機械ノイズや電気ノイズが重畳するケースも当然ながら存在する。これに対しては、第１の周波数でもノック検出ウィンドウ内の振動レベルの積算値にもとづいてノックの発生を判定することが簡易に考えられる。このことは、特許文献２に開示された従来の技術において、複数の固有周波数の全てに対して、所定のスペクトル個数ごとにノック検出ウィンドウ内のスペクトル列を順次移動平均することと同等のことである。
【００１０】
しかし、例えば「内燃機関の回転数２０００［ｒ／ｍｉｎ］付近で、かつ高負荷、かつ空燃比（以下、「Ａ／Ｆ」と称する）がエンリッチである」のような特定の運転条件において、特異な燃焼ノイズ（以下、疑似ノックと称する）が固有周波数に発生することがあり、その場合に、特許文献１に開示された技術のようにノック検出ウィンドウ内の振動レベルの積算値を用いていると、疑似ノックが発生したときに、Ｓ／Ｎが悪化する。
【００１１】
図９は、ノックが発生しているときとノックが未発生で疑似ノックが発生しているときの、クランク角とスペクトルの関係特性を比較した説明図であり、横軸はクランク角、縦軸はスペクトルを示している。そして、図９の（１）は、ピストンの上死点後（After Top Death Center：以下、「ＡＴＤＣ」と称する）「−１０°」ＣＡからＡＴＤＣ「８０°」ＣＡの間の振動データを用いてＤＦＴを実施したときのクランク角とスペクトルの関係特性を示す。
【００１２】
図９の（２）は、図９の（１）のクランク角とスペクトルの関係特性に対して、ノック波形の幅と同じ期間であるスペクトル個数を用いて移動平均を実施したときのクランク角とスペクトルの関係特性を示す。図９の（３）は、図９の（１）のクランク角とスペクトルの関係特性に対して、図９の（２）に示す場合よりも多いスペクトル個数を用いて移動平均を実施したときのクランク角とスペクトルの関係特性を示す。なお、以下の説明では、移動平均に用いるスペクトル個数を移動平均個数と称する。
【００１３】
図９の（１）、図９の（２）、図９の（３）において、Ｓはノックが発生しているときのクランク角とスペクトルとの関係特性のピーク値、Ｎは疑似ノックが発生しているときのクランク角とスペクトルとの関係特性のピーク値をそれぞれ示し、Ｓ／Ｎは、ピーク値Ｓとピーク値Ｎとの比を表している。
【００１４】
図９の（１）に示すように、疑似ノック波形は、ピーク値Ｎに到達後のスペクトルレベルの減衰が、ノック波形がピーク値Ｓに到達後のスペクトルレベルの減衰よりもさらに遅いという特徴がある。疑似ノックが発生した場合に移動平均を実施すると、図９の（１）では「Ｓ／Ｎ＝１．３６４」であるのに対して、図９の（２）では「Ｓ／Ｎ＝０．８０９」となり、図９の（３）では「Ｓ／Ｎ＝０．６４４」となる。このように、移動平均個数（特許文献１でのノック検出ウィンドウの期間に相当）が多くなるほどＳ／Ｎが小さくなり、疑似ノックが重畳する周波数が固有周波数とほぼ同一であった場合には、ノック検出性および耐誤検出性が悪化するという課題がある。
【００１５】
ところが、特許文献１に開示された従来の技術では、機械ノイズや電気ノイズが重畳する第２の周波数において、疑似ノックの発生有無に関わらず、ノック検出ウィンドウ内の振動レベルの積算値に基づいてノックの発生を判定しており、また、特許文献２に開示された従来の技術でも、疑似ノックの発生有無に関わらず、所定の移動平均個数ごとにスペクトル列を順次移動平均することにもとづいてノックの発生を判定するようにしているため、疑似ノックが重畳したときにノック検出性および耐誤検出性が悪化するという課題があった。
【００１６】
この発明は、従来の技術に於ける前述の課題を解決するためになされたもので、疑似ノックが発生してもノック検出性および耐誤検出性の悪化を抑制し得る内燃機関の制御装置を提供することを目的とする。
【課題を解決するための手段】
【００１７】
本願の第１の発明による内燃機関の制御装置は、
内燃機関のシリンダ内で発生する振動又は圧力波を振動データとして検出する振動検出部と、
前記内燃機関の運転状態に応じて、前記内燃機関のノックにより発生する振動レベルが顕著にあらわれる第１の期間が含まれるように、ノック検出ウィンドウを予め設定するノック検出ウィンドウ設定部と、
前記ノック検出ウィンドウ内で検出された前記振動データに対して、時間・周波数解析を実施することにより得られる所定時間ごとの振動レベルを複数の周波数に対して同時に算出するデジタル信号処理部と、
前記第１の期間に基づいて設定される第２の期間を用いて、前記所定時間ごとの振動レベルを順次移動平均し、前記移動平均後の振動レベルのうちのピーク値を抽出する処理を、前記複数の周波数に対して同時に実施する移動平均処理部と、
前記抽出されたピーク値に基づいてノック判定閾値を算出し、前記ピーク値と前記ノック判定閾値とを比較することにより前記ノックの発生の有無を判定する処理を、前記複数の周波数に対して同時に実施するノック判定部と、
前記複数の周波数のうち少なくともいずれか１つの周波数により前記ノックが発生したことを判定したときには、前記ノックを回避するための処置を行なうノック回避部と、
前記内燃機関の運転状態に基づいて、前記ノック検出ウィンドウ内に疑似ノックが発生しているか否かを判定する疑似ノック判定部と、
を備え、
前記疑似ノックは、前記第１の期間と同等の期間に設定された前記第２の期間を用いて前記移動平均を実施したときに、前記ノックが発生しているときの前記ピーク値と前記ノックが発生していないときの前記ピーク値との比が所定値以下となる場合に於ける、前記ノックが発生していないときの前記ピーク値を有する振動であり、
前記移動平均処理部は、
前記疑似ノックが発生していないと判定されているときには、前記第１の期間と同等の期間を前記第２の期間として設定し、
前記疑似ノックが発生していると判定されているときには、前記移動平均を実施しない、もしくは前記第１の期間より狭い期間を前記第２の期間として設定する、
ことを特徴とするものである。 
【００１８】
また、本願の第２の発明による内燃機関の制御装置は、
内燃機関のシリンダ内で発生する振動又は圧力波を振動データとして検出する振動検出部と、
前記内燃機関の運転状態に応じて、前記内燃機関のノックにより発生する振動レベルが顕著にあらわれる第１の期間が含まれるように、ノック検出ウィンドウを予め設定するノック検出ウィンドウ設定部と、
前記ノック検出ウィンドウ内で検出された前記振動データに対して、時間・周波数解析を実施することにより得られる所定時間ごとの振動レベルを複数の周波数に対して同時に算出するデジタル信号処理部と、
前記第１の期間に基づいて設定される第２の期間を用いて、前記所定時間ごとの振動レベルを順次移動平均し、前記移動平均後の振動レベルのうちのピーク値を抽出する処理を、前記複数の周波数に対して同時に実施する移動平均処理部と、
前記抽出されたピーク値に基づいてノック判定閾値を算出し、前記ピーク値と前記ノック判定閾値とを比較することにより前記ノックの発生の有無を判定する処理を、前記複数の周波数に対して同時に実施するノック判定部と、
前記複数の周波数のうち少なくともいずれか１つの周波数により前記ノックが発生したことを判定したときには、前記ノックを回避するための処置を行なうノック回避部と、
前記内燃機関の運転状態に基づいて、前記ノック検出ウィンドウ内に疑似ノックが発生しているか否かを判定する疑似ノック判定部と、
を備え、
前記疑似ノックは、前記第１の期間と同等の期間に設定された前記第２の期間を用いて前記移動平均を実施したときに、前記ノックが発生しているときの前記ピーク値と前記ノックが発生していないときの前記ピーク値との比が所定値以下となる場合に於ける、前記ノックが発生していないときの前記ピーク値を有する振動であり、
前記移動平均処理部は、
前記疑似ノック判定部による前記疑似ノックの発生の有無の判定結果にかかわらず、前記疑似ノックが発生していないことが判定されているときの前記第２の期間と、前記疑似ノックが発生していることが判定されているときの前記第２の期間とを用いて、前記所定時間ごとの振動レベルを順次移動平均し、前記移動平均後の振動レベルのうちのピーク値を抽出する処理を、前記複数の周波数に対して同時に実施し、
前記ノック判定部は、前記抽出されたピーク値に基づいて前記ノック判定閾値を算出する処理を、前記複数の周波数に対して同時に実施する、
ことを特徴とするものである。 
【発明の効果】
【００２０】
本願の第１の発明による内燃機関の制御装置によれば、疑似ノックが発生した場合に移動平均を実施しない、もしくは第１の期間より狭い期間で移動平均を実施するため、疑似ノックが発生してもノック検出性および耐誤検出性の悪化を抑制する効果が得られる。
【００２１】
また、本願の第２の発明による内燃機関の制御装置によれば、疑似ノックが発生している運転状態と疑似ノックが発生していない運転状態とが切り替わった直後からすみやかにノックを判定することができ、疑似ノックが発生している運転状態と疑似ノックが発生していない運転状態とが切り替わった直後からノック判定閾値が収束するまでの間に誤検出が生じることを抑制する効果が得られる。
【図面の簡単な説明】
【００２２】
【図１】この発明の実施の形態１による内燃機関の制御装置を適用する内燃機関を概略的に示す構成図である。
【図２】この発明の実施の形態１よる内燃機関の制御装置における制御部を概略的に示す構成図である。
【図３】この発明の実施の形態１による内燃機関の制御装置における、ノック制御部を概略的に示す構成図である。
【図４】この発明の実施の形態１による内燃機関の制御装置における、振動データから移動平均までの信号処理のイメージ図である。
【図５Ａ】この発明の実施の形態１による内燃機関の制御装置における動作を説明するフローチャートである。
【図５Ｂ】この発明の実施の形態１による内燃機関の制御装置における動作を説明するフローチャートである。
【図５Ｃ】この発明の実施の形態１による内燃機関の制御装置における動作を説明するフローチャートである。
【００２３】
【図６】この発明の実施の形態１による内燃機関の制御装置における、疑似ノック判定マップである。
【図７】この発明の実施の形態１による内燃機関の制御装置における、第１の移動平均個数マップである。
【図８】ノックが発生しているときと、機械ノイズが発生しているとき（ただしノックは未発生）のクランク角―スペクトルの関係特性を比較したチャートである。
【図９】ノックが発生しているときとノックが未発生で疑似ノックが発生しているときの、クランク角とスペクトルの関係特性を比較した説明図である。
【図１０】この発明の実施の形態１による内燃機関の制御装置における、ノック未発生時におけるピーク値とノック判定閾値の挙動を示すチャートである。
【発明を実施するための形態】
【００２４】
実施の形態１．
以下、図面を参照しながら、この発明の実施の形態１よる内燃機関の制御装置について詳細に説明する。図１は、この発明の実施の形態１による内燃機関の制御装置を適用する内燃機関を概略的に示す構成図である。尚、自動車等の車両用の内燃機関は、通常、複数のシリンダ及びピストンを備えているが、図１では説明の便宜上、一つのシリンダ及びピストンのみを示している。図２は、この発明の実施の形態１よる内燃機関の制御装置における制御部を概略的に示す構成図である。
【００２５】
図１において、内燃機関１の吸気系の上流に吸入空気流量を調整するために電子的に制御される電子制御式スロットルバルブ２が設けられている。また、電子制御式スロットルバルブ２の開度を測定するために、スロットル開度センサ３が設けられている。なお、電子制御式スロットルバルブ２の代わりに、図示していないアクセルペダルに直接ワイヤを介して連結された機械式スロットルバルブを用いてもよい。
【００２６】
電子制御式スロットルバルブ２の上流側には、吸入空気流量を測定するエアフロセンサ４が設けられており、電子制御式スロットルバルブ２の下流側である内燃機関１側には、サージタンク５内の圧力を測定するインテークマニホールド圧力センサ（以下、「インマニ圧センサ」と称する）６が設けられている。なお、エアフロセンサ４とインマニ圧センサ６に関しては、両方とも設けてもよいし、いずれか一方のみが設けられていてもよい。
【００２７】
サージタンク５の下流側の吸気ポートに設けられた吸気バルブには、吸気バルブの開閉タイミングやリフト量を可変制御できる可変吸気バルブ機構７が取り付けられており、また、吸気ポートには燃料を噴射するインジェクタ８が設けられている。なお、インジェクタ８は、内燃機関１のシリンダ内に直接噴射できるように設けられてもよい。
【００２８】
内燃機関１のシリンダ内の混合気に点火するための点火コイル９及び点火プラグ１０、内燃機関１の回転速度やクランク角度を検出するためにクランク軸に設けられたプレートのエッジを検出するためのクランク角センサ１１、内燃機関１のシリンダ内で発生する振動又は圧力波を振動データとして検出するための振動検出部としてのノックセンサ１２、内燃機関１の運転状態量としてのＡ／Ｆを検出するためのＡ／Ｆセンサ１３が、内燃機関１にそれぞれ設けられている。なお、ノックセンサ１２の代わりに、例えば内燃機関１のシリンダ内の圧力波を振動データとして計測する筒内圧センサを設けてもよい。
【００２９】
図２おいて、エアフロセンサ４で測定された吸入空気流量と、インマニ圧センサ６で測定されたインマニ圧と、スロットル開度センサ３で測定された電子制御式スロットルバルブ２の開度と、クランク角センサ１１より出力されるクランク軸に設けられたプレートのエッジに同期したパルスと、ノックセンサ１２で測定された振動データと、Ａ／Ｆセンサ１３で測定された内燃機関の運転状態量としてのＡ／Ｆは、電子制御ユニット（以下、「ＥＣＵ」と称す）１４に入力される。また、前記以外の各種センサからもＥＣＵ１４に測定値が入力され、さらに、他のコントローラ（例えば、自動変速機制御、ブレーキ制御、トラクション制御等の制御システム）からの信号も入力される。
【００３０】
ＥＣＵ１４は、アクセル開度や内燃機関の運転状態などを基にして目標スロットル開度が算出されて電子制御式スロットルバルブ２を制御する。また、ＥＣＵ１４は、その時の内燃機関１の運転状態に応じて、吸気バルブの開閉タイミングを可変制御する可変吸気バルブ機構７を制御し、目標Ａ／Ｆを達成するようにインジェクタ８を駆動し、目標点火時期を達成するように点火コイル９への通電を行なう。なお、後述の方法でノックが検出された場合には、ＥＣＵ１４は、目標点火時期を遅角側（リタード側）に設定することでノックの発生を抑制する制御も行なう。さらに、ＥＣＵ１４は、前記以外の各種アクチュエータへの指示値も算出する。
【００３１】
次に図を参照しながら、ＥＣＵ１４内で行うノック制御の概要について説明する。図３は、この発明の実施の形態１による内燃機関の制御装置における、ノック制御部を概略的に示す構成図である。図４は、この発明の実施の形態１による内燃機関の制御装置における、振動データから移動平均までの信号処理のイメージ図で、図４の（１）の縦軸はローパスフィルタ後の振動データ、（２）の縦軸はノック検出ウィンドウ、（３）の縦軸はＡ／Ｄ変換後の振動データ、（４）の縦軸はＤＦＴにより算出したスペクトル列、（５）の縦軸は移動平均後のスペクトル列を示し、それぞれの横軸はクランク角を示す。
【００３２】
図３において、ノックセンサ１２およびＥＣＵ１４は、ぞれぞれ、図１、図２に示したノックセンサ１２およびＥＣＵに相当する。次に、ＥＣＵ１４内のノック制御部の構成について説明する。ＥＣＵ１４は、各種のＩ／Ｆ回路１４１とマイクロコンピュータ１４２とから構成されている。マイクロコンピュータ１４２は、アナログ信号をデジタル信号に変換するＡ／Ｄ変換器、制御プログラムや制御定数を記憶しておくＲＯＭ領域、プログラムを実行した際の変数を記憶しておくＲＡＭ領域等により構成されている。
【００３３】
Ｉ／Ｆ回路１４１におけるローパスフィルタ（以下、「ＬＰＦ」と称する）１５は、ノックセンサ１２からの振動データから高周波成分を除去し、図４の（１）に示すノック、機械ノイズ、電気ノイズが重畳した振動データを得る。
【００３４】
マイクロコンピュータ１４２は、Ａ／Ｄ変換器１６と、デジタル信号処理部１７と、移動平均処理部１８と、ノック判定閾値算出部１９と、比較演算部２０と、１点火毎遅角量算出部２１と、運転状態値検出部２２と、疑似ノック判定部２３とを構成している。
【００３５】
Ａ／Ｄ変換器１６は、例えば、１０［μｓ］や２０［μｓ］等の一定の時間間隔毎にＡ／Ｄ変換を実行し、ＬＰＦ１５からのアナログ振動データをデジタル振動データに変換する。なお、ＬＰＦ１５には、Ａ／Ｄ変換器１６に全振動データを取り込むために、例えば、２．５［Ｖ］にバイアス（振動データの中心を２．５［Ｖ］にする）しておく機能と、２．５「Ｖ」を中心に０〜５［Ｖ］の範囲に振動データが収まるように、振動データが小さい場合には２．５［Ｖ］を中心に増幅し、振動データが大きい場合には２．５［Ｖ］を中心に減少させるゲイン変換機能も含まれている。
【００３６】
なお、Ａ／Ｄ変換器１６によるＡ／Ｄ変換は常時行っておいて、ノック検出ウィンドウの振動データのみデジタル信号処理部１７以降へ送るようにしても良いし、ノック検出ウィンドウでのみＡ／Ｄ変換を行いデジタル信号処理部１７以降へ送るようにしても良い。図４の（２）にノック検出ウィンドウのイメージを示し、この実施の形態１では、ＡＴＤＣ「−１０°」ＣＡからＡＴＤＣ「８０°」ＣＡまでを、ノック検出ウィンドウとしている。図４の（３）にノック検出ウィンドウ内でのＡ／Ｄ変換後の振動データを示す。ノック検出ウィンドウは、内燃機関１の運転状態に応じて、内燃機関１のノックにより発生する振動レベルが顕著にあらわれる第１の期間が含まれるように、ノック検出ウィンドウを予め設定するノック検出ウィンドウ設定部（図示せず）により設定される。ノック検出ウィンドウ設定部は、マイクロコンピュータ１４２により構成される。
【００３７】
デジタル信号処理部１７は、Ａ／Ｄ変換器１６からのデジタル信号に対してデジタル信号処理による時間・周波数解析を行なう。このデジタル信号処理として、例えば、ＳＴＦＴやＤＦＴにより、複数の固有周波数における所定時間ごとの振動レベルであるスペクトル列が算出される。デジタル信号処理部１７は、ノック検出ウィンドウ内で検出された振動データに対して、時間・周波数解析を実施することにより得られる所定時間ごとの振動レベルを後述する複数の周波数に対して同時に算出する。
【００３８】
なお、前述のデジタル信号処理部１７によるデジタル信号処理としては、無限インパルス応答（ＩＩＲ）フィルタや有限インパルス応答（ＦＩＲ）フィルタを用いて固有周波数の振動レベルを抽出するようにしてもよい。また、デジタル信号処理部１７での演算は、Ａ／Ｄ変換を実施しながら処理してもよいし、内燃機関１の回転に同期した割込み処理によりまとめて実施しても良い。図４の（４）にＤＦＴにより算出されるスペクトル列のイメージを示す。
【００３９】
例えば、図２に示すスロットル開度センサ３、エアフロセンサ４、インマニ圧センサ６、クランク角センサ１１、Ａ／Ｆセンサ１３等の複数のセンサの信号より、運転状態値検出部２２にて検出された複数の運転状態値を用いて、疑似ノック判定部２３により疑似ノックの発生有無を判定し、その判定結果を移動平均処理部１８に送る。また、後述する第１の期間に相当する第１の移動平均個数の設定のため、運転状態値検出部２２により検出された複数の運転状態値も移動平均処理部１８へ入力する。
【００４０】
移動平均処理部１８は、運転状態値検出部２２により検出された複数の運転状態値に基づく第１の移動平均個数と、疑似ノック判定部２３からの疑似ノックが発生しているとの判定結果とから、前述の第１の期間に基づいて設定される第２の期間に相当する第２の移動平均個数を設定し、その後に、第２の移動平均個数を用いて、デジタル信号処理部１７により算出したスペクトル列を順次移動平均し、移動平均後のスペクトル列のピーク値ＶＭＡＶ２を抽出する。移動平均処理部１８は、前述の移動平均後の振動レベルのうちのピーク値を抽出する処理を、前述の複数の周波数に対して同時に実施する。
【００４１】
なお、図４の（４）に示すスペクトル列に対して、「移動平均個数＝５」で移動平均を実施したときの移動平均後のスペクトル列のイメージを図４の（５）に示す。図４の（４）および図４の（５）に示すとおり、図４の（４）における１番目のスペクトルから５番目のスペクトルまでの平均値が図４の（５）における１番目のスペクトル、図４の（４）における２番目のスペクトルから６番目のスペクトルまでの平均値が図４の（５）における２番目のスペクトル、というようにして、図４の（５）に示すように移動平均後のスペクトル列が算出される。そしてこの図４の（５）に示す移動平均後のスペクトル列のうちからピーク値ＶＭＡＶ２を抽出する。  
【００４２】
図３に戻って、ノック判定閾値算出部１９は、ノック判定閾値ＶＴＨを算出する。ノック判定閾値ＶＴＨは、複数の固有周波数の各々において下記の式（１）〜（３）を用いて算出される。まず、下記の式（１）により、サイクルごと（なお、気筒別にノック判定閾値を算出しない内燃機関の制御装置である場合は、内燃機関の行程ごととなる）に算出された前述のピーク値ＶＭＡＶ２に対するフィルタ処理を行い平均化する。
ＶＢＧＬ（ｎ）＝Ｋ１（ｎ）×ＶＢＧＬ(ｎ−１)
＋（１−Ｋ１（ｎ））×ＶＭＡＶ２(ｎ)  ・・・・・（１）
ここで、ＶＢＧＬ(ｎ)はフィルタ値、ＶＭＡＶ２(ｎ)は第２の移動平均個数を用いた移動平均後のスペクトル列のピーク値、Ｋ１(ｎ)は第１のフィルタ係数、ｎはサイクル数、である。
【００４３】
次に、下記の式（２）、（３）により、分散及び標準偏差を算出する。
ＶＶ(ｎ)＝Ｋ２(ｎ)×ＶＶ(ｎ−１)
＋（１−Ｋ２(ｎ)）×（ＶＢＧＬ(ｎ)−ＶＭＡＶ２(ｎ)）^２
・・・・・（２）
ＶＳＧＭ(ｎ)＝ｓｑｒｔ(ＶＶ(ｎ))                        ・・・・・（３）
ここで、ＶＳＧＭ(ｎ)は標準偏差、ＶＶ(ｎ)は分散、Ｋ２(ｎ)は第２のフィルタ係数、ｓｑｒｔは平方根算出関数、である。
【００４４】
次に下記の式（４）によりノック判定閾値を算出する。
ＶＴＨ(ｎ)＝ＶＢＧＬ(ｎ)＋Ｋｔｈ×ＶＳＧＭ(ｎ)          ・・・・・（４）
ここで、ＶＴＨ(ｎ)はノック判定閾値、Ｋｔｈは閾値算出係数、である。
【００４５】
なお、ノック判定閾値ＶＴＨの算出方法は前述の式（１）〜（４）による方法に限らず、別の算出方法を用いてもよい。
【００４６】
次に、ノック判定部としての比較演算部２０は、ピーク値ＶＭＡＶ２とノック判定閾値ＶＴＨとを比較し、下記の式（５）によりノック発生の有無を判定し、ノック強度に応じた信号を出力する。比較演算部２０は、前記ノックの発生の有無を判定する処理を、前記複数の周波数に対して同時に実施する。
ＶＫ(ｎ)＝ｍａｘ［{ＶＭＡＶ２(ｎ)−ＶＴＨ(ｎ)}／ＶＴＨ(ｎ),０ ］
・・・・・（５）
ここで、ＶＫ(ｎ)はノック強度であり、「ＶＫ(ｎ)＞０」のときにノック有りと判定する。
【００４７】
ノック回避部としての１点火毎遅角量算出部２１は、比較演算部２０によるノック判別結果から下記の式（６）により１点火毎のノック強度に応じた遅角量を算出する。
ΔθＲ（ｎ）＝ｍａｘ{−ＶＫ(ｎ)×Ｋｇ(ｎ),θｍｉｎ}     ・・・・・（６）
ここで、ΔθＲ(ｎ)は１点火毎遅角量、Ｋｇ(ｎ)は遅角量反映係数、θｍｉｎは最大遅角量である。
【００４８】
「ΔθＲ(ｎ)＞０」の場合は、１点火毎遅角量ΔθＲ(ｎ)に応じて点火時期を遅角し、「ΔθＲ(ｎ)＝０」の場合は、所定分だけ点火を進角側に復帰させる。なお、ノックの発生有無の判定方法および点火制御方法は前述の式（５）、（６）に記載の方法に限らず、別の方法を用いてもよい。
【００４９】
図５Ａ乃至図５Ｃは、この発明の実施の形態１による内燃機関の制御装置における動作を説明するフローチャートであり、運転状態値の取得からノック強度算出までの処理を示している。なお、図５Ａ乃至図５Ｃに示すフローチャートによる処理は、ノック検出に用いる複数の周波数、この実施の形態１では第１の周波数としての低周波数Ｆ１（以下、「周波数Ｆ１」と称する）と、第２の周波数としての高周波数Ｆ２（以下、「周波数Ｆ２」と称する）との２つの周波数、に対して各々実施する。
【００５０】
図５Ａに示すフローチャートは、運転状態値の取得（ステップ１０１）、疑似ノックの発生有無の判定（ステップ１０２）、第２の移動平均個数の設定を経てノック判定閾値の算出（ステップ１０３、１０７〜１１５）、ノック強度の算出（１０４〜１０６）、により構成される。以下、ステップ１０１から順に追って説明する。
【００５１】
図５（Ａ）において、ステップ１０１では、運転状態値検出部２２から、内燃機関の回転数Ｎｅ、内燃機関１の負荷状態を示す状態量としての燃料の充填率Ｃｅ、Ａ／Ｆを取得し、ステップ１０２に進む。
【００５２】
ステップ１０２では、ステップ１０１で取得した回転数Ｎｅ、充填率Ｃｅ、Ａ／Ｆと、ノック検出に用いる周波数Ｆ１、周波数Ｆ２と、次に述べる疑似ノック判定マップに基づいて、疑似ノックの発生有無を判定する。
【００５３】
ここで、疑似ノック判定マップについて説明する。図６は、この発明の実施の形態１による内燃機関の制御装置における、疑似ノック判定マップである。図６に示す疑似ノック判定マップは、回転数Ｎｅ、充填率Ｃｅ、Ａ／Ｆ、ノック検出に用いる周波数Ｆ１及び周波数Ｆ２をパラメータとし、回転数Ｎｅに関する第１の閾値としての閾値Ｎｅ（１）および第２の閾値としての閾値Ｎｅ（２）、充填率Ｃｅに関する第１の閾値としての閾値Ｃｅ（１）および第２の閾値としての閾値Ｃｅ（２）、Ａ／Ｆに関する第１の閾値としての閾値Ａ／Ｆ（１）および第２の閾値としての閾値Ａ／Ｆ（２）、および周波数Ｆ１、周波数Ｆ２によって区分けされている。
【００５４】
そして、各区分け部分には疑似ノック発生の有無の情報を格納しており、図６に示す疑似ノック判定マップにおいて、「疑似ノック発生」と記載している区分け部分は、疑似ノックが発生する運転状態、「疑似ノック未発生」と記載している区分け部分は、疑似ノックが発生しない運転状態であることを示す。
【００５５】
疑似ノック判定マップにおける前述の各閾値は、予めＥＣＵ１４のＲＯＭ領域に書き込まれるものであり、事前に内燃機関の試験を実施して疑似ノックが発生する運転状態を特定するなどにより設定する。例えば、内燃機関の試験により周波数Ｆ１において「Ｎｅ＜２５００［ｒ／ｍｉｎ］かつＣｅ≧０．７かつＡ／Ｆ≦１３」で疑似ノックが発生し、周波数Ｆ２において「２５００≦Ｎｅ＜３５００［ｒ／ｍｉｎ］かつＣｅ≧０．８かつＡ／Ｆ≦１２．５」で疑似ノックが発生することが特定された場合は、「Ｎｅ（１）＝２５００［ｒ／ｍｉｎ］」、「Ｎｅ（２）＝３５００［ｒ／ｍｉｎ］」、「Ｃｅ（１）＝０．７」、「Ｃｅ（２）＝０．８」、「Ａ／Ｆ（１）＝１３、Ａ／Ｆ（２）＝１２．５」と設定すればよい。 
【００５６】
図６に示す疑似ノック判定マップの各閾値が前述の値であるとして、図５Ａにおけるステップ１０１で取得した回転数Ｎｅ、充填率Ｃｅ、Ａ／Ｆがそれぞれ「Ｎｅ＝２０００［ｒ／ｍｉｎ］」、「Ｃｅ＝０．８」、「Ａ／Ｆ＝１２．５」であった場合は、図６の疑似ノック判定マップ中に矢印Ｘで指し示す区分け部分に対応するため、Ｆ１に対する処理を実施しているのであれば疑似ノックが発生していると判定され、Ｆ２に対する処理を実施しているのであれば疑似ノックが発生していないと判定される。このように、ステップ１０２において、ステップ１０１で取得したＮｅ、Ｃｅ、Ａ／Ｆと、ノック検出に用いるＦ１、Ｆ２と、図６の疑似ノック判定マップとに基づいて疑似ノックの発生有無を判定する。
【００５７】
なお、図６の疑似ノック判定マップは一例であって、事前の内燃機関の試験による疑似ノックが発生する運転状態の特定結果をもとに、疑似ノックが発生する運転状態の区分けの必要に応じて疑似ノック判定マップの区分けをより細分化してもよい。
【００５８】
図５Ａに戻り、ステップ１０２において前述のようにして疑似ノックの発生有無を判定した後に、ステップ１０３に進む。ステップ１０３では、ステップ１０２での判定結果の如何に関わらず、後述する図５Ｂに示す第１の処理としての処理αと、図５Ｃに示す第２の処理としての処理βとを並列処理する。
【００５９】
図５Ｂに示す処理αは、ステップ１０７〜１１１により構成され、疑似ノックが発生していないことが判定されているときの第２の移動平均個数を用いた処理である。図５Ｃに示す処理βは、ステップ１１２〜１１５により構成され、疑似ノックが発生していることが判定されているときの第２の移動平均個数を用いた処理である。なお、処理αと処理βを並列処理する理由については、後述する。
【００６０】
ここで、図５Ｂに示す処理αについて説明する。図５Ｂのフローチャートに示す処理αは、第１の移動平均個数ＭＡＶ１の設定（ステップ１０７）、第２の移動平均個数ＭＡＶ２αの設定（ステップ１０８）、移動平均実施（ステップ１０９）、移動平均後のスペクトル列のピーク値ＶＭＡＶ２αの抽出（ステップ１１０）、ノック判定閾値ＶＴＨαの算出（ステップ１１１）により構成される。
【００６１】
図５Ｂにおいて、最初にステップ１０７により、前述のステップ１０１にて取得した回転数Ｎｅ、充填率Ｃｅと、ノック検出に用いる周波数Ｆ１および周波数Ｆ２と、図７に示す第１の移動平均個数マップとから、第１の移動平均個数ＭＡＶ１を設定する。
【００６２】
ここで、図７に示す第１の移動平均個数マップについて説明する。図７に示す第１の移動平均個数マップは、回転数Ｎｅ、充填率Ｃｅ、ノック検出に用いる周波数Ｆ１および周波数Ｆ２をパラメータとし、回転数Ｎｅに関する閾値Ｎｅ１（１）と閾値Ｎｅ１（２）、充填率Ｃｅに関する閾値Ｃｅ１（１）乃至閾値Ｃｅ１（６）、周波数Ｆ１、周波数Ｆ２、によって区分けされている。
【００６３】
なお、図７に示すマップは、の説明の便宜上、「Ｎｅ＜Ｎｅ１（１）」を低回転数域（Ａ１）、「Ｎｅ１（１）≦Ｎｅ＜Ｎｅ１（２）」を中回転数域（Ａ２）、「Ｎｅ≧Ｎｅ１（２）」を高回転数域（Ａ３）として区分けしている。
【００６４】
そして低速回転数域（Ａ１）において、「Ｃｅ＜Ｃｅ１（１）」を低負荷域（Ｂ１）、「Ｃｅ１（１）≦Ｃｅ＜Ｃｅ１（２）」を中負荷域（Ｂ２）、「Ｃｅ≧Ｃｅ１（２）」を高負荷域（Ｂ３）として区分けしている。  
【００６５】
同様に、中回転数域（Ａ２）において、「Ｃｅ＜Ｃｅ１（３）」を低負荷域（Ｂ４）、「Ｃｅ１（３）≦Ｃｅ＜Ｃｅ１（４）」を中負荷域（Ｂ５）、「Ｃｅ≧Ｃｅ１（４）」を高負荷域（Ｂ６）、として区分けしている。
【００６６】
更に、高回転数域（Ａ３）において、「Ｃｅ＜Ｃｅ１（５）」を低負荷域（Ｂ７）、「Ｃｅ１（５）≦Ｃｅ＜Ｃｅ１（６）」を中負荷域（Ｂ８）、「Ｃｅ≧Ｃｅ１（４６」を高負荷域（Ｂ９）、として区分けしている。
【００６７】
図７におけるマップの各区分け部分に、第１の移動平均個数ＭＡＶ１（Ａ１、Ｂ１、Ｆ１）〜ＭＡＶ１（Ａ３、Ｂ９、Ｆ２）を格納しており、例えばＭＡＶ１（Ａ１、Ｂ１、Ｆ１）は低回転数域（Ａ１）、低負荷域（Ｂ１）、周波数Ｆ１での第１の移動平均個数ＭＡＶ１の値を示す。
【００６８】
なお、第１の移動平均個数マップの各閾値および第１の移動平均個数ＭＡＶ１（Ａ１、Ｂ１、Ｆ１）〜ＭＡＶ１（Ａ３、Ｂ９、Ｆ２）は、予めＥＣＵ１４のＲＯＭ領域に書き込まれるものである。
【００６９】
図７に示すマップにおける第１の移動平均個数ＭＡＶ１（Ａ１、Ｂ１、Ｆ１）〜ＭＡＶ１（Ａ３、Ｂ９、Ｆ２）は、機械ノイズや電気ノイズを低減してＳ／Ｎが向上するよう設定するものであり、次に図８を参照しながら、第１の移動平均個数ＭＡＶ１（Ａ１、Ｂ１、Ｆ１）〜ＭＡＶ１（Ａ３、Ｂ９、Ｆ２）と、第１の移動平均個数の各閾値の設定について説明する。
【００７０】
図８は、ノックが発生しているときと、機械ノイズが発生しているとき（ただしノックは未発生）のクランク角とスペクトルの関係特性を比較したチャートであり、横軸はクランク角、縦軸はスペクトルを示す。図８の（１）は、ＡＴＤＣ「−１０°」ＣＡからＡＴＤＣ「８０°」ＣＡの間の振動データを用いてＤＦＴを実施したときのクランク角とスペクトルの関係特性を示す。図８の（２）は、図８の（１）のクランク角とスペクトルの関係特性に対して、ノック波形の幅（図８−（１）参照）と同じ期間である移動平均個数を用いて移動平均を実施したときのクランク角とスペクトルの関係特性を示す。図８の（３）は、図８の（１）のクランク角とスペクトルの関係特性に対して、図８−の（２）よりも多い移動平均個数を用いて移動平均を実施したときのクランク角とスペクトルの関係特性を示す。
【００７１】
また、図８の（１）、図８の（２）、図８の（３）において、Ｓはノックが発生しているときのクランク角とスペクトルの関係特性のピーク値、Ｎは機械ノイズが発生しているときのクランク角とスペクトルの関係特性のピーク値を示し、夫々の図の下の欄にピーク値Ｓとピーク値Ｎとの比Ｓ／Ｎを示している。
【００７２】
図８の（１）では「Ｓ／Ｎ＝０．８７５」であるのに対して、図８の（２）では「Ｓ／Ｎ＝３．１９５」、図８の（３）では「Ｓ／Ｎ＝２．７６２」となり、第１の移動平均個数はノック波形の幅と同じ期間である移動平均個数に設定することが好ましい。そこで、事前に内燃機関の試験を実施して、各運転状態でのクランク角とスペクトルの関係特性に基づいてノック波形の幅を特定するなどにより、図７に示すマップの第１の移動平均個数ＭＡＶ１（Ａ１、Ｂ１、Ｆ１）〜ＭＡＶ１（Ａ３、Ｂ９、Ｆ２）と第１の移動平均個数マップの各閾値を設定する。
【００７３】
ここで事前に実施する内燃機関の試験において、回転数Ｎｅは「１０００［ｒ／ｍｉｎ］」と「３０００［ｒ／ｍｉｎ］」と「５０００［ｒ／ｍｉｎ］」の３パターンを実施し、充填率Ｃｅは回転数Ｎｅの各パターンに対して、スロットル全開時の充填率Ｃｅ＿ＨＩと、ノック限界である点火時期とトルクが最大となる点火時期とが略一致する時の充填率Ｃｅ＿ＬＯと、スロットル全開時の充填率Ｃｅ＿ＨＩとトルクが最大となる点火時期が略一致する時の充填率Ｃｅ＿ＬＯとの中間の充填率Ｃｅ＿ＭＩＤと、の３パターンを実施して、各運転状態でのノック波形の幅を特定した場合を例に説明する。
【００７４】
第１の移動平均個数マップの回転数Ｎｅに関する閾値は、「Ｎｅ１（１）＝２０００［ｒ／ｍｉｎ］（回転数１０００［ｒ／ｍｉｎ］と３０００［ｒ／ｍｉｎ］の中間）、「Ｎｅ１（２）＝４０００［ｒ／ｍｉｎ］」（回転数３０００［ｒ／ｍｉｎ］と５０００［ｒ／ｍｉｎ］の中間）とする。また、第１の移動平均個数マップの充填率Ｃｅに関する閾値は、例えばＣｅ１（３）は３０００［ｒ／ｍｉｎ］での前述のＣｅ＿ＬＯとＣｅ＿ＭＩＤの中間の充填率Ｃｅの値（例として「Ｃ１（３）＝０．５」とする）を設定し、Ｃｅ１（４）は３０００［ｒ／ｍｉｎ］でのＣｅ＿ＭＩＤとＣｅ＿ＨＩの中間の充填率Ｃｅの値（例として「Ｃ１（４）＝０．７」とする）を設定しておけばよい。
【００７５】
また、第１の移動平均個数マップのＭＡＶ１（Ａ１、Ｂ１、Ｆ１）〜ＭＡＶ１（Ａ３、Ｂ９、Ｆ２）については、例えば、ＭＡＶ１（Ａ１、Ｂ１、Ｆ１）には「Ｎｅ＝１０００［ｒ／ｍｉｎ］」、「Ｃｅ＝１０００［ｒ／ｍｉｎ］でのＣｅ＿ＬＯ」、周波数Ｆ１でのノック波形の幅と同じ期間である移動平均個数を設定し、ＭＡＶ１（Ａ２、Ｂ５、Ｆ２）には「Ｎｅ＝３０００［ｒ／ｍｉｎ］」、「Ｃｅ＝３０００［ｒ／ｍｉｎ］でのＣｅ＿ＭＩＤ」、周波数Ｆ２でのノック波形の幅と同じ期間である移動平均個数を設定し、ＭＡＶ１（Ａ３、Ｂ９、Ｆ１）には「Ｎｅ＝５０００［ｒ／ｍｉｎ］」、「Ｃｅ＝５０００［ｒ／ｍｉｎ］でのＣｅ＿ＨＩ」、周波数Ｆ１でのノック波形の幅と同じ期間である移動平均個数を、それぞれ設定しておけばよい。以上のようにして、第１の移動平均個数マップのＭＡＶ１（Ａ１、Ｂ１、Ｆ１）〜ＭＡＶ１（Ａ３、Ｂ９、Ｆ２）と、第１の移動平均個数マップの各閾値は設定される。
【００７６】
なお、図７の第１の移動平均個数マップは一例であって、事前の内燃機関試験で実施する運転状態のパターンが上記より多い場合は、必要に応じて第１の移動平均個数マップをより細分化してもよい。
【００７７】
図７の第１の移動平均個数マップの各閾値が前述の値であるとして、前述の図５Ａにおけるステップ１０１で取得した回転数Ｎｅ、充填率Ｃｅが、それぞれ「Ｎｅ＝２０００［ｒ／ｍｉｎ］」、「Ｃｅ＝０．８」であった場合は、図７の第１の移動平均個数マップ中の矢印Ｙにより指し示す区分け部分にあたるため、周波数Ｆ１に対する処理を実施しているのであれば第１の移動平均個数ＭＡＶ１を「ＭＡＶ１（Ａ２、Ｂ６、Ｆ１）」の値に設定し、周波数Ｆ２に対する処理を実施しているのであれば第１の移動平均個数ＭＡＶ１を「ＭＡＶ１（Ａ２、Ｂ６、Ｆ２）」の値に設定する。
【００７８】
図５Ｂに戻り、ステップ１０７により第１の移動平均個数ＭＡＶ１を前述のように設定した後に、ステップ１０８に進む。ステップ１０８では、第２の移動平均個数ＭＡＶ２αとして、ステップ１０７で設定した第１の移動平均項数ＭＡＶ１の値を設定し、その後にステップ１０９に進む。
【００７９】
ステップ１０９では、ステップ１０８で設定した第２の移動平均個数ＭＡＶ２αを用いて移動平均を実施し、その後ステップ１１０に進む。
【００８０】
ステップ１１０では、ステップ１０９で算出した移動平均後のスペクトル列からピーク値ＶＭＡＶ２αを抽出し、その後、ステップ１１1に進む。
【００８１】
ステップ１１１では、前述の式（１）〜（４）を用いてステップ１１０で算出した第２の移動平均個数ＶＭＡＶ２αに対するノック判定閾ＶＴＨαを算出し、処理αを終了する。
【００８２】
次に図５Ｃに示す処理βについて説明する。図５Ｃのフローチャートに示す処理βは、第２の移動平均個数ＭＡＶ２βの設定（ステップ１１２）、移動平均実施（ステップ１１３）、移動平均後のスペクトル列のピーク値ＶＭＡＶ２βの抽出（ステップ１１４）、ノック判定閾値ＶＴＨβの算出（ステップ１１５）で構成される。
【００８３】
図５Ｃにおいて、最初にステップ１１２により、第２の移動平均個数ＭＡＶ２βとしてＭＡＶβを設定する。ＭＡＶβは予めＥＣＵ１４のＲＯＭ領域に書き込まれるものであり、「ＭＡＶβ＝１」（移動平均なし）、もしくは、例えば「ＭＡＶβ＝３」（急峻な電気ノイズや機械ノイズを低減するための設定）として、移動平均を実施しない、もしくは第１の移動平均個数より少ない個数を第２の移動平均個数として設定することにより、疑似ノック発生時のＳ／Ｎの悪化を抑制する。ステップ１１２で第２の移動平均個数ＭＡＶ２βを設定した後にステップ１１３に進む。
【００８４】
ステップ１１３では、ステップ１１２で設定した第２の移動平均個数ＭＡＶ２βを用いて移動平均を実施してステップ１１４に進む。ただし、「ＭＡＶ２β＝１」の場合は移動平均は実施せずにステップ１１４に進む。
【００８５】
ステップ１１４では、ステップ１１３で算出した移動平均後のスペクトル列（「ＭＡＶ２β＝１」の場合は、移動平均未実施のスペクトル列）からピーク値ＶＭＡＶ２βを抽出し、その後、ステップ１１５に進む。
【００８６】
ステップ１１５では、前述の式（１）〜（４）を用いてステップ１１４で算出した第２の移動平均個数ＶＭＡＶ２βに対するノック判定閾値ＶＴＨβを算出し、処理βを終了する。
【００８７】
次に、図５Ａに戻り、ステップ１０３において前述の処理α（図５Ｂ）、処理β（図５Ｃ）の並列処理を完了した後に、ステップ１０４に進む。ステップ１０４では、ステップ１０２で疑似ノックが発生していないことが判定されているときはステップ１０５に進み、疑似ノックが発生していることが判定されているときはステップ１０６に進む。
【００８８】
ステップ１０５に進んだ場合は、疑似ノックが発生していないことが判定されているので、第１の移動平均個数と同じ個数を第２の移動平均個数として設定したときの結果を用いてノック強度を算出する。即ち、処理αのステップ１１０で算出した移動平均後のスペクトル列のピーク値ＶＭＡＶ２αとステップ１１１で算出したノック判定閾値ＶＴＨαから前述の式（５）を用いてノック強度を算出し、図３の１点火毎遅角量算出部２１に送る。
【００８９】
ステップ１０６に進んだ場合は、疑似ノックが発生していることが判定されているので、「第２の移動平均個数ＭＡＶ２β＝１」、もしくは第１の移動平均個数より少ない個数を第２の移動平均個数としての設定したときの結果を用いてノック強度を算出する。即ち、処理βのステップ１１４で算出した第２の移動平均個数ＭＡＶ２βとステップ１１５で算出したノック判定閾値ＶＴＨβから前述の式（５）を用いてノック強度を算出し、図３の１点火毎遅角量算出部２１に送る。
【００９０】
次に、図１０を用いて、図５Ａのステップ１０３において、疑似ノックが発生しているか否かの判定結果に関わらず、処理αと処理βを並列処理する理由を説明する。図１０は、この発明の実施の形態１による内燃機関の制御装置における、ノック未発生時におけるピーク値とノック判定閾値の挙動を示すチャートであり、ノック未発生（4０［ｓｅｃ］以降で疑似ノックが発生していると判定）におけるピーク値ＶＭＡＶ２（ＶＭＡＶ２αおよびＶＭＡＶ２β）とノック判定閾値ＶＴＨ（ＶＴＨαおよびＶＴＨβ）の挙動を示している。
【００９１】
図１０の（１）は、図５Ａのステップ１０３により処理αと処理βを並列処理しておらず、それに代えて図５Ａのステップ１０２で疑似ノックが発生していないと判定されているときは処理αのみ実施し、疑似ノックが発生している判定されているときは処理βのみを実施しているときのピーク値ＶＭＡＶ２およびノック判定閾値ＶＴＨの挙動を示している。
【００９２】
図１０の（２）は、図５Ａのステップ１０３で処理αと処理βを並列処理しているときのピーク値ＶＭＡＶ２およびノック判定閾値ＶＴＨの挙動を示し、図１０の（２）の上側のチャートが処理αでのピーク値ＶＭＡＶ２（＝ＶＭＡＶ２α）およびノック判定閾値ＶＴＨ（＝ＶＴＨα）の挙動、下側のチャートが処理βでのピーク値ＶＭＡＶ２（＝ＶＭＡＶ２β）およびノック判定閾値ＶＴＨ（＝ＶＴＨβ）の挙動を示している。
【００９３】
なお、図１０に示すチャートでは、「ＶＭＡＶ２β＝１」としている。また、各チャートの横軸は時間［ｓｅｃ］、縦軸はピーク値ＶＭＡＶ２およびノック判定閾値ＶＴＨである。また、図１０の（２）の上側のチャートにおいて網掛けを施している領域（４０［ｓｅｃ］以降の領域）と、下側のチャートにおいて網掛けをしている領域（４０［ｓｅｃ］以前の領域）は、図５Ａのステップ１０４でノック強度を算出しないと判定された区間を示している。
【００９４】
図１０の（１）に示すように、処理αと処理βを並列処理していない場合は、疑似ノックが発生していない運転状態から疑似ノックが発生している運転状態へ突入した際に、疑似ノックが発生していないことが判定されているときの第２の移動平均個数と疑似ノックが発生していることが判定されているときの第２の移動平均個数の違いにより、ピーク値ＶＭＡＶ２に急激な変化が生じ、ノック判定閾値ＶＴＨが収束するまでの間に誤検出を生じてしまう。それに対して、図１０の（２）に示すように、処理αと処理βを並列処理する場合は、疑似ノックが発生していない運転状態から疑似ノックが発生している運転状態へ突入した際でも、ピーク値ＶＭＡＶ２に急激な変化が生ぜず、誤検出を生じない。
【００９５】
以上説明したとおり、この発明の実施の形態１による内燃機関の制御装置では、ノック検出に用いる周波数、内燃機関の回転数、負荷、Ａ／Ｆの少なくともいずれか１つにもとづいて疑似ノックの発生有無を判定する。そして、疑似ノックが発生していないことが判定されているときには、第１の移動平均個数と同じ個数を第２の移動平均個数として設定して移動平均を実施する。一方、疑似ノックが発生していることが判定されているときには、「第２の移動平均個数＝１」、もしくは第１の移動平均個数より少ない個数を第２の移動平均個数として設定して移動平均を実施する。このようにすることで、疑似ノックが発生してもノック検出性および耐誤検出性の悪化を抑制する効果が得られる。
【００９６】
また、この発明の実施の形態１による内燃機関の制御装置では、疑似ノックが発生しているか否かの判定結果に関わらず、疑似ノックが発生していないことが判定されているときの第２の移動平均個数と、疑似ノックが発生していることが判定されているときの第２の移動平均個数の２つの第２の移動平均個数を用いて、移動平均の実施からノック判定閾値の算出までを並列処理する。このようにすることで、疑似ノックが発生している運転状態と疑似ノックが発生していない運転状態とが切り替わった直後からすみやかにノックを判定することができ、疑似ノックが発生している運転状態と疑似ノックが発生していない運転状態とが切り替わった直後からノック判定閾値が収束するまでの間に誤検出が生じることを抑制する効果が得られる。
【符号の説明】
【００９７】
１    内燃機関                            ２    電子制御式スロットルバルブ
３    スロットル開度センサ                ４    エアフロセンサ
５    サージタンク                        ６    インマニ圧センサ
７    可変吸気バルブ機構                  ８    インジェクタ
９    点火コイル                          １０    点火プラグ
１１    クランク角センサ                  １２    ノックセンサ
１３    Ａ／Ｆセンサ                      １４    ＥＣＵ
【図１】
0005839972.tif 000002
【図２】
0005839972.tif 000003
【図３】
0005839972.tif 000004
【図４】
0005839972.tif 000005
【図５Ａ】
0005839972.tif 000006
【図５Ｂ】
0005839972.tif 000007
【図５Ｃ】
0005839972.tif 000008
【図６】
0005839972.tif 000009
【図７】
0005839972.tif 000010
【図８】
0005839972.tif 000011
【図９】
0005839972.tif 000012
【図１０】
0005839972.tif 000013