(57)【要約】【課題】ノッキングの誤検出を抑制することができ、全ての運転状態における点火時期を最適に制御可能な内燃機関のノッキング検出システムを提供する。【解決手段】振動センサと、振動センサにより検出された振動から２つ以上の所定の周波数成分を抽出し、各周波数成分の強度を算出する周波数分析部と、各周波数成分の強度を積算して積算強度を算出する積算部と、内燃機関７の運転状態に基づき、内燃機関７のバックグラウンドレベルの推定値を決定するバックグラウンドレベル推定部と、積算強度から推定値を減算した後にその減算後の積算強度を平滑化する平滑化部と、平滑化された積算強度、推定値、および積算強度に基づき、ノッキングの程度を示すノック指標を算出するノック指標算出部と、ノック指標と判定閾値とを比較することにより内燃機関７にノッキングが生じているか否かを判定する判定部と、を備える。【選択図】図１０
2018091214.tif 000002
【特許請求の範囲】
【請求項１】
内燃機関の振動を検出する振動センサと、
前記振動センサにより検出された振動から２つ以上の所定の周波数成分を抽出し、各周波数成分の強度を算出する周波数分析部と、
前記各周波数成分の強度を積算して積算強度を算出する積算部と、
前記内燃機関の運転状態に基づき、前記内燃機関のバックグラウンドレベルの推定値を決定するバックグラウンドレベル推定部と、
前記積算強度から前記推定値を減算した後にその減算後の前記積算強度を、ノッキングが発生していないときの減算後の積算強度に基づき、平滑化する平滑化部と、
前記平滑化された積算強度、前記推定値、および前記積算強度に基づき、ノッキングの程度を示すノック指標を算出するノック指標算出部と、
前記ノック指標と判定閾値とを比較することにより前記内燃機関にノッキングが生じているか否かを判定する判定部と、を備えることを特徴とする内燃機関のノッキング検出システム。
【請求項２】
前記ノック指標算出部は、前記平滑化された積算強度に対して前記推定値を加算した値と、前記積算強度とに基づき、前記ノック指標を算出することを特徴とする請求項１に記載の内燃機関のノッキング検出システム。
【請求項３】
前記ノック指標算出部は、前記積算強度から前記推定値を減算した値と、前記平滑化された積算強度とに基づき、前記ノック指標を算出することを特徴とする請求項１に記載の内燃機関のノッキング検出システム。
【請求項４】
前記バックグラウンドレベル推定部は、前記内燃機関の負荷状態と前記内燃機関の回転数に基づき前記推定値を決定することを特徴とする請求項１または請求項２に記載の内燃機関のノッキング検出システム。
【請求項５】
前記バックグラウンドレベル推定部は、前記内燃機関の負荷状態を、スロットルセンサ信号、吸入空気量信号、燃料噴射パルス信号、および吸気管圧力信号に基づき決定することを特徴とする請求項４に記載の内燃機関のノッキング検出システム。
【請求項６】
前記バックグラウンドレベル推定部は、エンジンアクチュエータの動作状態に基づき前記推定値を決定することを特徴とする請求項１または請求項２に記載の内燃機関のノッキング検出システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、内燃機関のノッキング検出システムに関する。
【背景技術】
【０００２】
ノッキングは、内燃機関の燃焼室内の端末部の未燃ガスの自己発火により燃焼室内のガスが振動を起こし、この振動が機関本体に伝わる現象である。そして、このノッキングは、機関の発生エネルギの損失（出力低下）や機関各部への衝撃、さらには燃費の低下等を招来するため、できるだけ回避するのが望ましい。そのため、ノッキングの発生を正確に検出することが不可欠である。
【０００３】
従来、特許文献１に記載のように、振動検出センサの出力信号の中から５〜１２ｋＨｚの範囲の単一の共鳴周波数成分だけをバンドパスフィルタを用いて分離し、その出力の積分値がバックグラウンドレベル（振動センサの信号自体の過去の値を加重平均して平均化したもの）より大きくなったか否かにより、ノッキングの発生を検出している。
【０００４】
特許文献１のように、単一の共鳴周波数成分だけを用いてノッキングの発生を検出するものでは、バックグラウンドレベルが高速回転時には大きくなり、正確なノッキング発生の検出ができなかったり、機関の諸元が変化するとノッキングの共鳴周波数も変化して正確なノッキング発生の検出ができなかった。そこで、特許文献２では、複数の共鳴周波数成分を取り出してノッキングの検出を行う方法を提案している。
【０００５】
また、特許文献３には、運転時のバックグラウンドレベル応答遅れ防止のための手段として、エンジン回転数変化により運転状態を検出し、検出した運転状態に基づきノッキング判定用閾値を補正することが開示されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開昭５８−４５５２０号公報
【特許文献２】特開平３−４７４４９号公報
【特許文献３】特開昭６３−２９５８６４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
燃費の向上、排気浄化性能の向上等の要求で機関の圧縮比を上げる試みがなされているが、この圧縮比を上げることによって、ノッキングが発生し易くなり、ノッキングの検出精度を更に向上することが期待されている。
【０００８】
そして、特許文献２に記載のように、複数の共鳴周波数成分を取り出してノッキングの検出を行う方法において更にノッキングの検出精度を高める場合、以下に述べるような問題を解決する必要がある。すなわち、ノッキングを検出するための１つのパラメータとして用いられるバックグラウンドレベルは、ノッキングが無い時のノックセンサー入力の平均値を正確に算出する必要がある。当該平均値の精度を上げるためには、遅れフィルタを重くする必要がある。一方、遅れフィルタは、運転状態変動時に応答性遅れがあり、この応答遅れが大きいと機関の負荷変動時にノッキング発生の誤検出による点火時期の誤差が発生し、特に、動力性能、排気ガス性能、燃料消費性能等に悪影響を及ぼす場合があった。
【０００９】
特許文献３に記載のように、複数の共鳴周波数を用いて検出精度を向上させた場合、エンジン回転数変化によるノックセンサーの出力増大のみならず、エンジン負荷状態によるノックセンサーの出力増大についても高精度に検出してしまうため、スロットル開度の急変においても誤検出の危険性が増大する可能性がある。
【００１０】
本発明は、このような問題に鑑みてなされたものであって、その目的は、ノッキングの誤検出を抑制することができ、全ての運転状態における点火時期を最適に制御可能な内燃機関のノッキング検出システムを提供することである。
【課題を解決するための手段】
【００１１】
前記目的を達成するため、本発明に係わる内燃機関のノッキング検出装置は、内燃機関の振動を検出する振動センサと、前記振動センサにより検出された振動から２つ以上の所定の周波数成分を抽出し、各周波数成分の強度を算出する周波数分析部と、前記各周波数成分の強度を積算して積算強度を算出する積算部と、前記内燃機関の運転状態に基づき、前記内燃機関のバックグラウンドレベルの推定値を決定するバックグラウンドレベル推定部と、前記積算強度から前記推定値を減算した後にその減算後の前記積算強度を、ノッキングが発生していないときの減算後の積算強度に基づき、平滑化する平滑化部と、前記平滑化された積算強度、前記推定値、および前記積算強度に基づき、ノッキングの程度を示すノック指標を算出するノック指標算出部と、前記ノック指標と判定閾値とを比較することにより前記内燃機関にノッキングが生じているか否かを判定する判定部と、を備える。
【発明の効果】
【００１２】
本発明によれば、ノッキングの誤検出を抑制することができ、全ての運転状態における点火時期を最適に制御可能な内燃機関のノッキング検出システムを提供することができる。
【図面の簡単な説明】
【００１３】
【図１】ノッキングが発生していない時の振動センサの出力の周波数成分の解析結果を表わした図である。
【図２】ノッキングが発生した時の振動センサの出力の周波数成分の解析結果を表わした図である。
【図３】ノッキング判定指標を用いてノッキング発生の有無を判定する一般的原理について説明する図である。
【図４】周波数毎の振動強度（パワースペクトル）を表わした図である。
【図５】過渡運転時のスロットル開度、エンジン回転数、各周波数ｆｉのバックグラウンドレベルＢＧＬｉ、ノック指標、ノック判定信号（ノック有無を表す信号）の経時変化を示す図である。
【図６】エンジン点火装置のシステム構成図を示す。
【図７】コントロールユニットの構成のブロック図を示す。
【図８】ノッキングの検出方法のフローチャートを示す。
【図９】従来技術におけるノッキング有無を判定する手順を説明する演算チャートである。
【図１０】本実施形態におけるノッキング有無を判定する手順を説明する演算チャートである。
【図１１】バックグラウンドレベルの推定値を記述したマップデータのイメージ図である。
【図１２】点火時期を演算する手順を説明するフローチャートを示す。
【発明を実施するための形態】
【００１４】
以下、本発明の一実施形態に係る内燃機関のノッキング検出装置について図面を参照して説明する。
【００１５】
まず、一般的なノッキングの発生の有無の判定の原理について説明する。
【００１６】
エンジンの振動には、例えば、ピストンの摩擦、クランク軸の回転、弁の作動等による多くの振動成分が含まれている。しかも、これらの振動成分はエンジン状態によって変化する。エンジンにノッキングが発生すると、ノッキングに特有な振動が発生する。ノッキングの発生の有無の判定は、振動センサが検出するエンジンの全体の振動からノッキングに特有な振動を分離することによってなされる。
【００１７】
図１は、ノッキングが発生していない時の振動センサの出力の周波数成分の解析結果を表わした図である。図２は、ノッキングが発生した時の振動センサの出力の周波数成分の解析結果を表わした図である。
【００１８】
図１と図２を比較すれば判るように、ノッキングが発生している場合は、ノッキングが発生していない場合に比して、各々の共鳴周波数成分が大きくなっている。図２に示すように、例えば、ｆ１０、ｆ０１、ｆ１１近傍においてノッキングが発生している。ここで、ノッキング特徴周波数を検出可能なフィルタの周波数設定を、エンジンの運転状態に応じて切替えることで信頼性の高いノッキング判定が可能となる。フィルタは、ハイパスフィルタ、ローパスフィルタ、バンドパスフィルタのいずれでもよい。
【００１９】
図３は、ノッキング判定指標を用いてノッキング発生の有無を判定する一般的原理について説明する図である。
【００２０】
以下の原理説明においては、便宜上、図２で示した共鳴周波数ｆ１０（６．３ＫＨｚ）とｆ０１（１３．０ＫＨｚ）の共鳴周波数成分ω１０Ｐ（ｆ１０）、ω０１Ｐ（ｆ０１）を用いて説明する。しかしながら、これに拘束されるものではなく、任意の２以上の共鳴周波数成分を用いてノッキング発生の有無の判定ができる。
【００２１】
振動センサはノッキング発生による振動とバックグラウンド振動（ノッキング以外の要因によって発生する振動）を含んだ振動を合成して検出する。したがって、ノッキング判定指標Ｉは、ノッキングが発生していないときはバックグラウンド振動で定められる指標Ｉｂとなり、ノッキングが発生したときはバックグラウンド振動Ｉｂとノッキングの発生による振動Ｉｋを含んで定められる指標Ｉとなる。
【００２２】
ノッキング判定指標Ｉを主要な共鳴周波数成分を用いて数式化すると下式となる。
（数１）
Ｉ＝ω１０Ｐ（ｆ１０）＋ω２０Ｐ（ｆ２０）＋ω０１Ｐ（ｆ０１）＋ω３０Ｐ（ｆ３０）＋ω１１Ｐ（ｆ１１）・・・（１）
ここで、ωはエンジン回転数で定まる実数値をとる。また、ωは１か０かの２値をとることもできる。また、Ｐは各共鳴周波数成分の振動強度（パワースペクトル）である。
【００２３】
図３に示すように、バックグラウンド振動の共鳴周波数成分によって示されるノッキング判定指標Ｉｂとノッキングの発生による振動の共鳴周波数成分によって示される指標Ｉｋは方向と大きさを異にしている。これは人間による聴覚試験でも明らかなように、ノッキング無の場合のエンジン音に対し、ノッキング有の場合は例えばカリカリ等という音で聴き分けられるものであり、ノッキング有り無しによって音色が異なるためである。
【００２４】
バックグラウンド振動に対してノッキングの発生による振動が加わると、図３に示すように、振動センサに含まれるｆ０１、ｆ１０成分によるノッキング判定指標Ｉは、閾値Ｉ０２の外側に出る。これにより、ノッキングの発生していることを判定することができる。
【００２５】
このように、バッググラウンド振動に加えて、ノッキングの発生による特有な周波数成分を考慮してノック指標を算出するので、バックグラウンド振動が大きくなってもノッキング発生の有無を判定することができる。
【００２６】
図４は、周波数毎の振動強度（パワースペクトル）を表わした図である。
【００２７】
図４では、ノッキングが発生している場合を実線で示し、ノッキングが発生していない場合を破線で示している。ノッキングの発生によって各共鳴周波数帯での振動強度が大きくなっていることがわかる。このように、ノッキングの有無による振動強度の差が有る周波数帯域において、ノッキングの検出が可能となる。
【００２８】
従来、ノック指標は、ノッキング有り無しにおける、信号／ノイズの振動強度（バックグラウンドレベル）比（Ｓ／Ｎ比）に基づき算出しており、各周波数毎にノッキング無し時の振動強度（バックグラウンドレバル）を過去に検出した周波数成分を基に平滑化処理にて作成している。このため、ノッキングが発生していなくても、エンジンや燃焼振動の増大により振動強度が急変すると、バックグラウンドレベルの算出結果が最新状態に追従できず、結果として、図５で説明するようにノッキングを誤検出する可能性がある。 
【００２９】
図５は、過渡運転時のスロットル開度、エンジン回転数、各周波数ｆｉのバックグラウンドレベルＢＧＬｉ、ノック指標、ノック判定信号（ノック有無を表す信号）の経時変化を示す図である。
【００３０】
図５において、スロットル開度ＴＶＯを全閉から全開にした場合、実際にエンジン回転数Ｎｅが立上がるのは遅れ時間をおいてからである。バックグラウンドレベル（ＢＧＬｉ）は本来破線で示したような動きであるが、実際には平滑化処理により実線で示したような遅れが生じてしまう。ノック指標はＳ／Ｎ比（ＢＧＬｉに対する周波数成分の比）の計算により求めている。
【００３１】
図５に示す例によれば、ＢＧＬｉが遅れることにより、ノッキングが発生していないにもかかわらず、ノック指標は理論的なノック指標を超過し、その結果としてノッキングを誤判定していることが分かる。この理由についてさらに説明する。
【００３２】
バックグラウンドレベルが急増したとき、平滑化処理を実施することにより求めるバックグラウンドレベルの算出結果が実際の値に対して遅れることになる。ノック指標としてＢＧＬｉに対するノイズの比を用いる場合、バックグランドレベルの算出遅れはノック指標の分母が実際の値よりも小さくなることにつながり、したがってノック指標が本来の値よりも大きく算出されることになる。そうすると過渡運転状態においては、ノック指標とノック判定閾値との間のクリアランスが小さくなり、ノッキングが発生していないにもかかわらずノッキング有りと判定される可能性がある。図５に示す例はこのような状態を示している。
【００３３】
次に、本発明の実施形態に係る内燃機関７およびその制御装置９について説明する。
【００３４】
図６は、エンジン点火装置のシステム構成図を示している。
【００３５】
空気はエアクリーナ１の入口部より入り、ダクト３，絞弁を有するスロットルボディ５，吸気筒６を通りエンジン（内燃機関）７のシリンダ内に吸入される。吸入空気量はダクト３に設けられた熱線式空気流量計２によって検出され、検出信号はコントロールユニット９に出力される。
【００３６】
燃料は図示していない燃料タンクからインジェクタ１６を経て噴射され、吸気筒６内で吸入空気と混合されエンジン７のシリンダ内に供給される。混合気はエンジン７のシリンダ内で圧縮され、点火プラグ１５により着火される。爆発後の混合気は、排気管８から排出される。排気管８には排気センサ１１が設けられており、排気センサ１１による検出信号はコントロールユニット９に対して入力される。
【００３７】
点火コイル１３により発生した高電圧は、分配器１４によって各気筒に分配され、点火プラグ１５に対して供給される。エンジンの回転状態は、クランク角センサ１２によって検出され、クランク角センサ１２は１回転毎の絶対位置を示すＲｅｆ信号および当該絶対位置からの所定角度移動した位置を示すＰＯＳ信号を出力する。Ｒｅｆ信号およびＰＯＳ信号はコントロールユニット９に対して入力される。エンジン７には振動を検出する振動センサ（燃焼状態センサ）１５１が取付けてあり、検出信号はコントロールユニット９に入力される。ノッキングを検出するための振動センサ１５１は、従来のものは１３ＫＨｚ付近で共振するが、本実施形態では少なくとも１８〜２０ＫＨｚまでの共鳴周波数成分を得るために、１８ＫＨｚ以上で共振するものを用いている。
【００３８】
図７は、コントロールユニット９の構成のブロック図を示している。
【００３９】
コントロールユニット９は、各センサからの信号に基づいて燃料供給量および点火時期等を演算し、インジェクタ１６と点火コイル１３とに制御信号を出力する。コントロールユニット９は、制御ブロック３４とノッキング検出ブロック３５に大別される。
制御ブロック３４は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｃｏｎｔｒｏｌ  Ｕｎｉｔ）２０、Ａ／Ｄ変換器２１、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）２２、入力Ｉ／Ｏ２３、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）２４、ＤＰＲＡＭ（Ｄｕａｌ  Ｐｏｒｔ  ＲＡＭ）２５、出力Ｉ／Ｏ２６、およびバス３７を備える。ノッキング検出ブロック３５は、ＣＰＵ２９、ポート２７、タイミング回路２８、Ａ／Ｄ変換器３０、ＲＯＭ３１、ＲＡＭ３２、クロック３３、オペレーショナル回路３８、およびバス３６を備える。ここで、ＣＰＵ２０とＣＰＵ２９との間のデータの交換は、ＤＰＲＡＭ２５を介してなされる。
【００４０】
熱線式流量計２によって検出された吸入空気量Ｑａは、Ａ／Ｄ変換器２１によってデジタル値に変換され、ＣＰＵ２０に取り込まれる。クランク角センサ１２によって検出されるＲｅｆ信号およびＰＯＳ信号は、入力Ｉ／Ｏ２３を通じてＣＰＵ２０に取り込まれる。ＣＰＵ２０は、ＲＯＭ２２に保持しているプログラムに従って演算処理され、演算結果は出力Ｉ／Ｏ２６を介して、燃料噴射量を意味する燃料噴射時間信号Ｔｉ、点火時期を指示する点火時期信号θｉｇｎとしての各々のアクチュエータに伝えられる。ＲＡＭ２４は、演算処理中の必要なデータを格納する。
【００４１】
タイミング回路２８は、オペレーション回路３５が上死点（Ｔｏｐ Ｄｅａｄ Ｃｅｎｔｅｒ）を示すＴＤＣ信号を発生すると、ＣＰＵ２０がポート２７に入力した内容に従って、クロック３３の発生する周期信号を分周してサンプリング信号を発生する。サンプリング信号が発生すると、Ａ／Ｄ変換器３０は、振動センサ１５の出力信号をデジタル値に変換する。
【００４２】
ＣＰＵ２９は、ＲＯＭ３１に格納されているプログラムにしたがって、サンプリングされたデジタル値をＲＡＭ３２に格納するとともに、図８で説明するフローチャートにしたがって、周波数分析し、ノッキングの発生の有無の判定をする。ノッキングの発生の有無の判定結果はＤＰＲＡＭ２５を介してＣＰＵ２０に伝えられる。
【００４３】
次に、本実施形態におけるノッキングの検出方法について詳細に説明する。
【００４４】
図８は、ノッキングの検出方法のフローチャートを示している。
【００４５】
図８に示すフローチャートは、エンジンの爆発サイクル毎に実行されるものであり、ＣＰＵ２９に対して割り込みをかけることにより、ＣＰＵ２９が実施するものである。以下、図８の各ステップについて説明する。
【００４６】
まず、ＣＰＵ２９は、振動センサ１５１からの検出信号がＡ／Ｄ変換器３０で変換されたＡ／Ｄ変換値を取り込む（Ｓ１０１）。ＣＰＵ２９は、取り込んだ振動センサ１５１の検出信号を周波数分析する（Ｓ１０２）。この周波数分析は、例えば、高速フーリエ変換やウォルシュフーリエ変換といった手法で行われる。ＣＰＵ２９は、ステップＳ１０２において分析した周波数成分のうち、共鳴周波数を含むものを複数個選択し、選択した各周波数成分の強度を算出する（Ｓ１０３）。例えば３個の共鳴周波数を選択する。本ステップにおいて選択する周波数成分は、エンジンの運転状態に応じたフィルタによって決めてもよいし、例えばエンジンの仕様などに応じてあらかじめ定めてもよい。
【００４７】
次に、ＣＰＵ２９は、算出した強度を加算した加算強度と、後述のバックグラウンドレベルの推定値とに基づきノック指標を算出する（Ｓ１０４）。当該ノック指標の算出方法については、図１０において詳細に説明する。
【００４８】
ＣＰＵ２９は、判定閾値とステップＳ１０４において求めたノック指標とを比較する（Ｓ１０５）。ノック指標が判定閾値より大きい場合（Ｓ１０５：Ｙｅｓ）はステップＳ１０７へ進み、ノック指標が判定閾値より小さいまたは等しい場合（Ｓ１０５：Ｎｏ）、ステップＳ１１２へ進む。
【００４９】
ノック指標が判定閾値より大きい場合（Ｓ１０５：Ｙｅｓ）、ＣＰＵ２９はノッキングが発生したと判断し（Ｓ１０７）、ノッキング発生を示すノックフラグに“１”をセットする（Ｓ１０８）。このノックフラグは、別に起動される点火制御タスクにおいて用いられる。
【００５０】
一方、ノック指標が判定閾値より小さいまたは等しい場合（Ｓ１０５：Ｎｏ）、バックグラウンドレベル（後述のマップデータ）を更新し（Ｓ１１１）、ＣＰＵ２９は、ノックフラグを“０”にセットする（Ｓ１１２）。バックグラウンドレベルの更新は選択された周波数の振動強度をフィルタ処理して求められる。具体的には各々の選択された周波数毎にＢＧＬ＝ＢＧＬ×（１−α）＋ｆ×αで求められる。以上の処理でノック検出ルーチンが終了するが、このルーチンでセットされたノックフラグが点火制御タスクで使用されることになる。
【００５１】
以上、本実施形態におけるノッキング有無を判定する手順を説明した。以下では従来技術におけるノッキング有無を判定する手順と本発明を比較しながら、本発明における手順の詳細について、図９〜図１１を用いて説明する。
【００５２】
図９は、従来技術におけるノッキング有無を判定する手順を説明する演算チャートである。各ステップはＣＰＵが実施するものとする。以下図９における各演算ブロックの処理について説明する。
【００５３】
振動センサはエンジンの振動を検出し（Ｓ３０１）、ＡＤ変換器はその検出結果をデジタル信号に変換する（Ｓ３０２）。ＣＰＵは、振動信号に対して例えばバンドパスフィルタ（ＢＰＦ：Ｂａｎｄ−ｐａｓｓ  ｆｉｌｔｅｒ）を適用することにより、ノック指標を算出するために用いる周波数成分（ここでは３つの周波数成分を例示した）を抽出し、その強度を演算する（Ｓ３０３）。
【００５４】
ＣＰＵは、周波数成分ごとに加重平均を算出する（Ｓ３０４）。ＣＰＵは、算出した加重平均を適当な指標（例えば、加重平均とＳ３０３で算出した周波数成分の強度との差分）に変換する（Ｓ３０５）。ＣＰＵは、各周波数成分の指標（差分）を加算することによりノック指標を求め（Ｓ３０６）、ノック判定閾値を演算する（Ｓ３０７）。ノック判定閾値は、あらかじめ定めておくこともできるし、例えばエンジン回転数などの運転状態に基づき算出することもできる。算出手法としては、例えば運転状態と判定閾値との間の対応関係をあらかじめ定義したデータマップなどを用いることができるが、これに限られるものではない。そして、ＣＰＵは、ノック指標とノック判定閾値を比較することにより、ノッキングの有無を判定する（Ｓ３０８）。
【００５５】
図９の各演算ブロックには、過渡運転時における算出結果を模式的に示す図を併記している。過渡運転時においては、周波数成分（周波数強度信号）が時間とともに増加する。Ｓ３０４において加重平均によりバックグラウンドレベルを算出すると、バックグラウンドレベルが実際よりも小さい値として得られるので、結果としてノック指標が大きくなり、誤判定が生じる可能性がある。また、ノッキング時、或いは、ノッキングが検出されないような小さなレベルのノイズや小さなノッキングが発生すると、その時の検出値がバックグラウンドレベルに反映されてしまい、バックグラウンドレベルを増大させてしまうため、ノック検出精度が低下してしまう可能性がある。
【００５６】
図１０は、本実施形態におけるノッキング有無を判定する手順を説明する演算チャートである。各ステップはＣＰＵ２９が実施するものである。以下図１０における各演算ブロックの処理について説明する。
【００５７】
ステップＳ４０１〜Ｓ４０３は、図９におけるステップＳ３０１〜Ｓ３０３と同様である。これらは図８におけるＳ１０１〜Ｓ１０３に対応する。
【００５８】
ＣＰＵ２９は、ステップＳ４０３で算出した周波数成分の強度を全て積算して、全周波数を合算した強度を算出する（Ｓ４０４）。また、ＣＰＵ２９は、例えばエンジン回転数や負荷などに基づきエンジンの運転状態を推定し、現在の運転状態におけるバックグラウンドレベル推定値を算出する（Ｓ４１０）。ＲＯＭ３１は、エンジンの運転状態とその運転常態における標準的なバックグラウンドレベルとの間の対応関係を記述したマップデータをあらかじめ格納している。ＣＰＵ２９は、推定した運転状態に基づきマップデータを参照することにより、現在の運転状態におけるバックグラウンドレベル推定値を算出する。
【００５９】
図１１にステップＳ４１０の一実施例を示す。図１１は、バックグラウンドレベルの推定値を記述したマップデータのイメージ図である。マップデータは、エンジン回転数（または変化率）、エンジン負荷（または変化率）、バックグラウンドレベル（または規定レベルに対する補正値）の対応関係を記述している。図１１に示す例においては、高回転側/高負荷側でバックグラウンドレベルが上がる傾向がある。
【００６０】
バックグラウンドレベルを推定するその他手法として、ＣＰＵ２９は、スロットルセンサ信号（スロットル開度を表す信号）、吸入空気量信号（エンジンに対する吸入空気量を表す信号）、燃料噴射パルス信号（燃料噴射を指示するパルス信号）、吸気管圧力信号（吸気管６の内部の圧力を表す信号）などの負荷状態を表すセンサ信号を取得し、これら信号に基づき運転状態を推定してもよい。これら信号と運転状態との間の対応関係は、例えば図１１と同様のマップデータなどによって記述することもできるし、その他適当な手法により運転状態を算出することもできる。さらには、図１１に例示するエンジン回転数とエンジン負荷のマップデータを組み合わせてもよい。
【００６１】
ＣＰＵ２９は、ステップＳ４０４において全周波数を積算した強度（積算強度）から、ステップＳ４１０で求めたバックグラウンドレベルの推定値を減算する（Ｓ４０５）。すなわち、積算強度と推定値との差分を求める。これにより、エンジンの回転数や負荷の変化によるバックグラウンドレベルの変動が後続の加重平均（Ｓ４０６）に対して入力されないようにしている。
【００６２】
ＣＰＵ２９は、ステップＳ４０５で算出した差分について加重平均を算出する（Ｓ４０６）。例えば、ノッキングが発生していないときの差分の前回値と差分の今回値とに基づき、前回値の差分に対する重みづけを重くして、加重平均処理を行う。これにより、エンジンの回転数や負荷の変化によるバックグラウンドレベルの変動が加重平均処理に入力されないために、精度の高い平均値を算出することができ、加重平均による追従遅れを抑制できる。
【００６３】
ＣＰＵ２９は、ステップＳ４０６で算出した加重平均に対し、ステップＳ４１０で算出したバックグラウンドレベルの推定値を加算する。これにより、信号レベルを元に戻している。ＣＰＵ２９は、ステップＳ４０４において算出した積算強度（ｆ）と、ステップＳ４０７で算出したバックグラウンドレベル（ＢＧＬ）とに基づきノック指標を算出する（Ｓ４０８）。例えば、バックグラウンドレベルに対する積算強度の比率（Ｓ／Ｎ比（＝ｆ／ＢＧＬ））をノック指標として算出する。なお、比率に代えて、バックグラウンドレベルと積算強度との差分をノック指標として算出してもよい。
【００６４】
ステップＳ４０９、Ｓ４１１は、図９におけるステップＳ３０８、３０７と同様である。これらは図８におけるＳ１０６以降に対応する。このように、ノック指標を算出するにあたり、ステップＳ４０５、Ｓ４１０によりバックグラウンドレベルの過渡変動が除去されているので、従来技術とは異なり過渡変動にともなう誤判定を抑制することができる。
【００６５】
次に、ＣＰＵ２０による点火時期の演算動作を図１２に基づき説明する。
【００６６】
図１２は、ＣＰＵ２０が点火時期を演算する手順を説明するフローチャートを示している。このフローチャートの動作は一定時間周期、例えば１０ｍｓｅｃ毎に起動される。
【００６７】
ＣＰＵ２０は、ＲＡＭ２４内に設定された所定のレジスタからエンジン回転数Ｎ及び吸入空気量Ｑを読みこむ（Ｓ２０１）。
【００６８】
ＣＰＵ２０は、単位回転数当たりの吸入空気量Ｑ／Ｎ（基本燃料噴射量）を演算し、さらに吸入空気量Ｑ／Ｎから燃料噴射時間幅Ｔｉを求める（Ｓ２０２）。ＣＰＵ２０は、ＲＯＭ２２内に格納されている基本点火時期マップから基本点火時期θｂａｓｅを求める。基本点火時期マップは、吸入空気量Ｑ／Ｎ、回転数Ｎ、および基本点火時期θｂａｓｅの対応関係を記述したデータマップである。
【００６９】
ＣＰＵ２０は、ノックフラグ（ＣＰＵ２９が図８にしたがって求めたもの）の内容にしたがってノッキング発生の有無を判定する（Ｓ２０３）。ノッキングが発生していれば（Ｓ２０３Ｙｅｓ）、ＣＰＵ２０はステップＳ２１３へ進み、発生していなければ（Ｓ２０３：Ｎｏ）、ＣＰＵ２０はステップＳ２０４へ進む。
【００７０】
ノッキングが発生している場合（Ｓ２０３：Ｙｅｓ）、ＣＰＵ２０は、点火時期θａｄｖから所定の遅角量Δθｒｅｔを減算する。この減算によって点火時期が遅角（リタード）される（Ｓ２１３）。ＣＰＵ２０は、カウント値Ａを初期化してステップＳ２０８に進む。カウント値Ａは、ノッキング発生回数をカウントするための変数である。カウント値Ａはノッキング発生により遅角された点火時期θａｄｖを進角量Δθａｄｖだけリカバーする時間になったかを判定するために用いられる。カウント値Ａの用い方については後述のステップで説明する。
【００７１】
ノッキングが発生していない場合（Ｓ２０３：Ｎｏ）、ＣＰＵ２０は、カウント値Ａを１つカウントアップする（Ｓ２０４）。ＣＰＵ２０は、カウント値Ａが所定値（例えば５０）に到達したか否かを判断する。到達している場合（Ｓ２０５：Ｙｅｓ）はステップＳ２０６へ進み、到達していない場合（Ｓ２０５：Ｎｏ）はステップＳ２０８へスキップする。
【００７２】
ＣＰＵ２０は、進角値θａｄｖに対して所定の進角量Δθａｄｖを加算する（Ｓ２０６）。この加算により、ステップＳ２１３において遅角された点火時期がリカバーされることになる。本フローチャートを１０ｍｓｅｃ毎に起動する場合、カウント値Ａが５０に到達した時点において、カウント値Ａが初期化されてから０. ５秒が経過したことになる。すなわち本ステップは、ノッキング発生により点火時期を遅角させてから０. ５秒が経過する毎に、点火時期をリカバーするものである。ＣＰＵ２０は、Ａを初期化する。
【００７３】
ＣＰＵ２０は、基本点火時期θｂａｓｅに対して進角値θａｄｖを加えることにより、点火時期θｉｇｎを演算する（Ｓ２０８）。ＣＰＵ２０は、ＲＯＭ２２内に格納されている最大進角値マップから最大進角値θｒｅｓを読み出す（Ｓ２０９）。最大進角値マップは、吸入空気量Ｑ／Ｎ、回転数Ｎ、および基本点火時期θｒｅｓの対応関係を記述したデータマップである。
【００７４】
ＣＰＵ２０は、点火時期θｉｇｎが最大進角値θｒｅｓを超えたかを判断する（Ｓ２１０）。超えていなければ（Ｓ２１０：Ｎｏ）ＣＰＵ２０はステップＳ２１２へスキップする。超えている場合（Ｓ２１０：Ｙｅｓ）、θｉｇｎは進角しすぎているので、ＣＰＵ２０は、点火時期θｉｇｎを最大進角値θｒｅｓにセットする（Ｓ２１１）。
【００７５】
ＣＰＵ２０は、エンジン状態に応じて、ディレイ時間ｔｄ、サンプリング点数ｎｓ、分周比ｔｓをポート２７に対して出力する（Ｓ２１２）。分周比ｔｓによって振動センサ１５１の出力のデジタル値のサンプリング周期が決まり、サンプリング点数ｎｓによってサンプリング点数が決まる。
【００７６】
以上のように、本実施形態にかかる内燃機関７のコントロールユニット（ノッキング検出装置）９によれば、各周波数成分の強度を積算して算出される積算強度と、エンジン７の運転状態に基づき決定されたエンジン７のバックグラウンドレベルの推定値と、積算強度から推定値を減算した後にその減算後の積算強度を平滑化（加重平均）した値とに基づき、ノッキングの程度を示すノック指標が算出され、当該ノック指標に基づきノッキングが生じているか否かが判定される。そして、ノック指標は、加重平均された積算強度に対して推定値を加算した値と、積算強度とに基づき算出される。
【００７７】
これにより、エンジンの回転数や負荷の変化によるバックグラウンドレベルの変動が除外され加重平均処理に入力されないので、精度の高い平均値を算出することができ、加重平均による追従遅れを抑制できる。よって、ノッキング誤検出を抑制することができ、全ての運転状態において点火時期を最適に制御することが可能となる。
【００７８】
なお、本発明は、上述した実施例に限定されない。当業者であれば、本発明の範囲内で、種々の追加や変更等を行うことができる。
【００７９】
例えば、ＣＰＵ２９（振動検出部、周波数分析部、積算部、バックグラウンドレベル推定部、平滑化部、ノック指標算出部、判定部に相当）がソフトウェアを実行することによりノッキング検出のための各ステップを実施することを説明したが、同等の機能を回路デバイスなどのハードウェアにより実装してもよい。例えば振動検出、周波数分析、平滑化、マップデータから推定値を取得する処理、ノック指標の算出、閾値判定のうちいずれか１以上を、回路デバイスによって実装してもよい。
【００８０】
振動センサ１５１は、インジェクタ１６が動作することに起因するインジェクタノイズを取得するため、インジェクタ１６を作動させる期間をサンプリングウインドウとしてセットしてそのウインドウ内でインジェクタノイズを取得する。このインジェクタノイズはノック指標を算出する際に不要であるので、除去することが望ましい。そこで、想定されるインジェクタノイズを記述したデータをあらかじめＲＯＭ２２などに格納しておき、ＣＰＵ２９はサンプリングウインドウ内における振動センサ１５１の検出結果からそのインジェクタノイズを減算してもよい。また、インジェクタノイズを検出した時は、所定値をバックグラウンドレベルの推定値に加算してもよい。これにより、インジェクタノイズに影響されることなくノック指標を正確に算出することができる。
【００８１】
バックグラウンドレベルの推定値を記述したマップデータは、標準的なバックグラウンドレベルを記述するものであるので、バックグラウンドレベルの過渡的な変動については同マップデータ内に記述しないことが望ましい。例えば、エンジン回転数やエンジン負荷が急増したときバックグラウンドレベルも急増することが想定されるが、そのような急変するバックグラウンドレベルについてはマップデータ内に記述しないこととする。具体的には、バックグラウンドレベルの変動率がある範囲以内のもののみマップデータ内に記述することが望ましい。
【００８２】
振動センサ１５１の検出結果から抽出した周波数成分は、必ずしも全て抽出する必要はなく、例えば代表的な周波数成分のみ抽出して他の周波数成分は補間処理により補うこともできる。補間処理のための演算式は、例えば試験結果などに基づきあらかじめ定めておくことができる。これにより周波数成分を抽出するための演算負荷を抑制することができる。
【００８３】
上記の実施形態では、ステップＳ４０８において、ステップＳ４０４において算出した積算強度（ｆ）と、ステップＳ４０７で算出したバックグラウンドレベル（ＢＧＬ）とに基づきノック指標を算出したが、図１０の点線の矢印で示したように、ステップＳ４０６で算出した加重平均と、ステップＳ４０５で算出した差分とに基づきノック指標を算出してもよい。当該ノック指標を用いたとしても、ノッキング誤検出を抑制することができ、全ての運転状態において点火時期を最適に制御することが可能となる。
【符号の説明】
【００８４】
７：内燃機関、９：コントロールユニット、１５１：振動センサ  
【図１】
2018091214.tif 000003
【図２】
2018091214.tif 000004
【図３】
2018091214.tif 000005
【図４】
2018091214.tif 000006
【図５】
2018091214.tif 000007
【図６】
2018091214.tif 000008
【図７】
2018091214.tif 000009
【図８】
2018091214.tif 000010
【図９】
2018091214.tif 000011
【図１０】
2018091214.tif 000012
【図１１】
2018091214.tif 000013
【図１２】
2018091214.tif 000014