(57)【特許請求の範囲】
【請求項１】
燃焼室に臨んで設けられる点火プラグと、
一次側コイルと二次側コイルとで構成される点火コイルと、
前記一次側コイルを流れる電流を所定のタイミングで遮断することによって前記点火プラグの電極間に放電を行わせる点火時に、前記点火コイルの二次側コイルを流れる電流を検出する二次電流検出回路と、
前記検出される二次側コイルを流れる電流から、前記放電の持続時間をサイクル毎に検出する放電持続時間検出手段と、
前記サイクル毎に検出される放電持続時間の時系列データに対し、移動平均の処理を施して移動平均値を求める移動平均処理手段と、
前記移動平均値に基づいて、予兆プレイグニッションが生じているか否かを判定する予兆プレイグニッション判定手段と
を備えるエンジンのプレイグニッション検出装置。
【請求項２】
前記移動平均値は前記サイクル毎の前記放電の持続時間を平滑化係数を用いて加重平均することで求められることを特徴とする請求項１に記載のエンジンのプレイグニッション検出装置。
【請求項３】
前回のサイクルで算出された前記移動平均値と今回のサイクルで得られた放電持続時間との偏差が予兆プレイグニッション判定閾値未満の場合に予兆プレイグニッションが生じていると判定することを特徴とする請求項１に記載のエンジンのプレイグニッション検出装置。
【請求項４】
前回のサイクルで算出された前記移動平均値と今回のサイクルで得られた放電持続時間との比率が予兆プレイグニッション判定閾値未満の場合に予兆プレイグニッションが生じていると判定することを特徴とする請求項１に記載のエンジンのプレイグニッション検出装置。
【請求項５】
前回のサイクルで算出された前記移動平均値と今回のサイクルで得られた放電持続時間との偏差の積算値である積算偏差が予兆プレイグニッション判定閾値未満の場合に予兆プレイグニッションが生じていると判定することを特徴とする請求項１に記載のエンジンのプレイグニッション検出装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は内燃機関（以下「エンジン」という。）のプレイグニッション検出装置、特に点火コイルの二次電流から得られる放電持続時間に基づいてプレイグニッションを検出するものに関する。
【背景技術】
【０００２】
バッテリ側の正常／異常に基づいてエンジンのプレイグニッションを検出するものがある（特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平１１−１３６１５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、燃焼室内の燃焼状態が、正常燃焼から、暴走プレイグニッションの前段階である予兆プレイグニッションへと移行するにつれて、点火コイルの二次電流から得られる放電持続時間が短くなっていくことが知られている。そこで、放電持続時間に基づいて予兆プレイグニッションであるか否かを検出することが考えられるのであるが、サイクル毎の放電持続時間には大きなバラツキが生じる。このバラツキの影響を受けて、正常燃焼の場合の放電持続時間と予兆プレイグニッションの場合の放電持続時間とを明確に区別することができない。このため、実際には正常燃焼であるのに予兆プレイグニッションであると誤検出されたり、実際には予兆プレイグニッションが生じているのに正常燃焼であると誤検出されたりする。
【０００５】
しかしながら、上記特許文献１の技術にはこうした点について一切記載がない。
【０００６】
そこで本発明は、バラツキのある放電持続時間に基づいて予兆プレイグニッションを検出する場合であっても、予兆プレイグニッションを精度良く検出し得る装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明のエンジンのプレイグニッション検出装置は、点火プラグと、点火コイルと、二次電流検出回路と、放電持続時間検出手段と、移動平均処理手段と、予兆プレイグニッション判定手段とを備える。上記点火プラグは燃焼室に臨んで設けられる。上記点火コイルは一次側コイルと二次側コイルとで構成される。上記二次電流検出回路は前記一次側コイルを流れる電流を所定のタイミングで遮断することによって前記点火プラグの電極間に放電を行わせる点火時に前記点火コイルの二次側コイルを流れる電流を検出する。上記放電持続時間検出手段は前記検出される二次側コイルを流れる電流から、前記放電の持続時間をサイクル毎に検出する。上記移動平均処理手段は前記サイクル毎に検出される放電持続時間の時系列データに対し、移動平均の処理を施して移動平均値を求める。上記予兆プレイグニッション判定手段は前記移動平均値、前記移動平均値と今回のサイクルで得られた放電持続時間との偏差、前記移動平均値と今回のサイクルで得られた放電持続時間との比率、前記偏差の積算値である積算偏差のいずれかに基づいて、予兆プレイグニッションが生じているか否かを判定する。
【発明の効果】
【０００８】
本発明では、バラツキのある放電持続時間に基づいて予兆プレイグニッションを検出する場合であっても、正常燃焼の場合の放電持続時間と予兆プレイグニッションの場合の放電持続時間とを明確に区別することができることとなった。これによって、予兆プレイグニッションを精度良く検出することができる。
【図面の簡単な説明】
【０００９】
【図１】本発明の第１実施形態のガソリンエンジンの概略構成図である。
【図２】第１実施形態の点火装置の概略構成図である。
【図３】プレイグニッションが生じ得るある運転条件で燃焼状態が正常燃焼、予兆プレイグニッション、暴走プレイグニッションへと少しずつ変化する様子を示す特性図である。
【図４】質量燃焼割合が１０％のときのクランク角位置と放電持続時間の関係を示す特性図である。
【図５】点火コイルの一次電流、二次電流の特性図である。
【図６】正常燃焼、予兆プレイグニッションの各場合の頻度分布、累積度数分布を示す特性図である。
【図７】第１実施形態の予兆プレイグニッション判定フラグの設定を説明するためのフローチャートである。
【図８】プレイグニッション発生域を示す運転領域図である。
【図９】第１実施形態の燃料・点火停止フラグの設定を説明するためのフローチャートである。
【図１０】第１実施形態の場合のタイミングチャートである。
【図１１】第２実施形態の予兆プレイグニッション判定フラグの設定を説明するためのフローチャートである。
【図１２】第２実施形態の場合のタイミングチャートである。
【図１３】第３実施形態の予兆プレイグニッション判定フラグの設定を説明するためのフローチャートである。
【図１４】第３実施形態の場合のタイミングチャートである。
【図１５】第４実施形態の予兆プレイグニッション判定フラグの設定を説明するためのフローチャートである。
【図１６】第４実施形態の場合のタイミングチャートである。
【発明を実施するための形態】
【００１０】
以下、本発明の実施形態を図面に基づき説明する。
【００１１】
（第１実施形態）
図１は本発明の第１実施形態のガソリンエンジンの制御装置の概略構成図、図２は点火装置１３の概略構成図である。
【００１２】
エンジン１はガソリンエンジン（以下、単に「エンジン」ともいう。）である。エンジン１は図示しない車両に搭載されている。エンジン１には、吸気通路４、排気通路２１を備える。上記の吸気通路４は、吸気管４ａ、吸気コレクタ４ｂ、吸気マニホールド４ｃで構成される。
【００１３】
吸気コレクタ４ｂのすぐ上流の吸気管４ａにはアクセルペダル４３の踏込量に応動する電子制御のスロットル装置を備える。スロットル装置は、スロットルバルブ５と、スロットルバルブ５を駆動するモータ（回転電機）６、実際のスロットル開度を検出するスロットルセンサ７により構成されている。吸入空気は吸気管４ａを経てスロットルバルブ５によって調量される。スロットルバルブ開度は、アクセルセンサ４４により検出されるアクセル開度（アクセルペダル４３の踏み量）と、クランク角センサ４５により検出されるエンジン回転速度Ｎｅに応じて設定されている。調量された空気は吸気コレクタ４ｂに蓄えられ、吸気弁８が開いたときにこの吸気コレクタ４ｂから吸気マニホールド４ｃを介して各気筒の燃焼室１０に分配供給される。第１実施形態は電子制御のスロットル装置の場合であるが、スロットルバルブとアクセルペダルとがワイヤーにより連結されたものであってよい。
【００１４】
エンジン１には点火装置１３を備える。点火装置１３は、点火プラグ１４、ＩＧＢＴ内蔵の点火コイル１５から構成される。点火プラグ１４が燃焼室１０に直接臨んで、かつ燃料噴射弁１２が燃焼室１０に直接臨んでそれぞれ設けられている。
【００１５】
気筒毎に設けられる点火コイル１５は、図２にも示したように、一次側コイル１５ａ、二次側コイル１５ｂで構成されている。一次側コイル１５ａは一端がバッテリ６１の高電位側に接続され、他端がスイッチ手段としてのＩＧＢＴ１５ｃを介して接地されている。ＩＧＢＴ１３のゲートはエンジンコントローラ４１に接続されており、エンジンコントローラ４１によりＩＧＢＴ１５ｃがＯＮ、ＯＦＦされる。二次側コイル１５ｂは一端が点火プラグ１４に接続され、他端が二次電流検出回路６３を介して接地されている。
【００１６】
エンジンコントローラ４１が所定のタイミングでＩＧＢＴ１５ｃをＯＦＦして一次側コイル１５ａを流れる電流（一次側電流）を遮断したとき、二次側コイル１５ｂに高圧の二次電圧が発生する。この高圧の二次電圧は点火プラグ１４の電極間に作用し、電極間で放電が行われる（火花が飛ぶ）。二次電流検出回路６３については後述する。
【００１７】
エンジンコントローラ４１では、吸入空気量ＱａとＮｅから基本燃料噴射パルス幅Ｔｐ［ｍｓ］を算出し、このＴｐを目標当量比ＴＦＢＹＡ［無名数］や空燃比フィードバック補正係数α［無名数］で補正して燃料噴射パルス幅Ｔｉ［ｍｓ］を算出する。上記の吸入空気量Ｑａはエアフローメータ４２により検出する。所定のタイミングでこのＴｉだけ燃料噴射弁１２を開かせることで、燃料が燃焼室１０の内部に直接噴射される。
【００１８】
一方、エンジンコントローラ４１では、エンジンの負荷と回転速度Ｎｅから所定のマップを参照することにより、ＭＢＴが得られる基本点火時期ＡＤＶ０［ｄｅｇＣＡ（ＢＴＤＣ）］を算出する。特に、高負荷低回転速度域ではノッキングが生じる。このため、ノッキングが生じるときの点火時期より少しだけ遅角側にトレース点火時期ＡＤＶｔｒ０［ｄｅｇＣＡ（ＢＴＤＣ）］を、上記の基本点火時期ＡＤＶ０とは別に定めている。高負荷低回転速度域で、このトレース点火時期ＡＤＶｔｒ０と上記の基本点火時期ＡＤＶ０とを比較すると、トレース点火時期ＡＤＶｔｒ０のほうが遅角側にくるので、トレース点火時期ＡＤＶｔｒ０が点火時期指令値ＡＤＶ［ｄｅｇＣＡ（ＢＴＤＣ）］として選択される。
【００１９】
そして、クランク角センサ４５により検出されるエンジンのクランク角がこの点火時期指令値ＡＤＶと一致するタイミングでパワートランジスタを介して点火コイル１５の一次側電流を遮断することで、点火プラグ１４から火花を発生させる。
【００２０】
燃焼室１０に噴射された燃料は、吸気弁８が閉じた後にスロットルバルブ５によって調量された空気と混合してガスとなり、このガスを点火プラグ１４で着火して燃焼させる。燃焼するガスは、シリンダを摺動するピストン１１を押し下げる仕事をした後、排気弁９が開いたときに排気通路２１に排出される。燃料噴射弁１２を設ける位置は燃焼室１０に限らない。吸気マニホールド４ｃ（吸気ポート）に燃料噴射弁を設けるものであってよい。
【００２１】
エンジン１には吸気弁用のカムシャフトに対する吸気弁８の作動角中心の位相を可変に調整し得る可変バルブタイミング機構１６を備える。同様に、排気弁用のカムシャフトに対する排気弁９の作動角中心の位相を可変に調整し得る可変バルブタイミング機構１７を備える。これら２つの可変バルブタイミング機構１６，１７を用い、吸排気弁８，９の開期間が重複するバルブオーバーラップを例えば低負荷域で生じさせることで、エンジンのポンピングロスが減少する。これによって、エンジンの燃費を良くすることができる。バルブオーバーラップを生じさせる運転域を予め定めており、エンジンコンローラ４１ではこの運転域になると、２つの可変バルブタイミング機構１６，１７に指令してバルブオーバーラップを生じさせる。具体的には、ＩＶＯ（吸気弁開時期）の特性及びＥＶＣ（排気弁閉時期）の特性がエンジンの負荷と回転速度Ｎｅをパラメータとするマップ上に予め定められている。エンジンコントローラ４１ではエンジンの負荷と回転速度Ｎｅから当該各マップを参照して、ＩＶＯとＥＶＣを求め、この求めたＩＶＯとＥＶＣが得られるように２つの可変バルブタイミング機構１６，１７に対して指令値を出力する。
【００２２】
排気通路２１は、各気筒の燃焼室１０からの排気が流入する排気マニホールド２１ａ、この排気マニホールド２１ａの集合部に接続される排気管２１ｂで構成される。排気中にはＨＣ、ＣＯ、ＮＯｘの有害三成分を含むので、これらを全て浄化するため排気マニホールド２１ａの集合部にマニホールド触媒２５を、それよりも下流の排気管２１ｂにメイン触媒２６を備えている。メイン触媒２６は例えば車両の床下に設けられる。これら各触媒２５，２６は例えば三元触媒で構成される。排気管２１ｂの末端にはマフラー２７を備えている。メイン触媒２６の活性化後になると、エンジンコンローラ４１では、空燃比フィードバック制御を開始する。空燃比フィードバック制御では、空燃比センサ４６及びＯ2センサ４７からの信号に基づいてメイン触媒２５の酸素ストレージ量が目標値となるように空燃比フィードバック補正係数α［無名数］を算出する。
【００２３】
さて、図３は、プレイグニッションが発生し得る運転域でエンジン回転速度、点火時期、ＩＶＣ（吸気弁閉時期）を一定としていても、燃焼室１０内の燃焼状態が正常燃焼、予兆プレイグニッション、暴走プレイグニッションへと徐々に変化する様子を示している。なお、図３の特性はあくまでモデルであり実際のデータを表すものでない。
【００２４】
ここで、図３の横軸はサイクル数［回］である。図３の縦軸は質量燃焼割合（mass  fraction  burnt）［％］が例えば１０％のときのクランク角位置［ｄｅｇＣＡ（ＡＴＤＣ）］である。質量燃焼割合が１０％のときのクランク角位置は、上にいくほど進角側である。上記の「質量燃焼割合」とは、燃焼室１０内の燃料が全て燃焼したときを１００％として、何％の燃料が燃焼したかを示す指標である。「質量燃焼割合が１０％のときのクランク角位置」とは燃焼室１０内の燃料が１０％燃焼したときのクランク角位置のことである。ここでは、質量燃焼割合が１０％のときのクランク角位置で示しているが、質量燃焼割合が他のパーセント、例えば５０％や９０％のときのクランク角位置で示しても同様の結果が得られると考えられる。
【００２５】
上記「正常燃焼」は、点火プラグ１４で燃焼室１０内の混合気に点火した後に燃焼が始まる燃焼ことである。正常燃焼の場合に、熱発生率の波形でみると、点火の後に熱発生の山が生じる。つまり、「正常燃焼」とは熱発生が点火時期より遅角側にくるものをいうものとする。
【００２６】
一方、上記「暴走プレイグニッション」は、正常燃焼の場合よりも燃焼室１０内の温度が高くなり、燃焼室１０内の熱源（ヒートスポット）から自着火する燃焼のことである。暴走プレイグニッションの場合、熱発生が点火時期より進角側にずれる。つまり、「暴走プレイグニッション」とは熱発生が点火時期より進角側にくるものをいう。
【００２７】
正常燃焼からは暴走プレイグニッションへと一気に移行するものでなく、暴走プレイグニッションより前段階の燃焼が存在する。この前段階の燃焼では、正常燃焼の場合の熱発生よりは熱発生のタイミングが早く、暴走プレイグニッションの場合の熱発生よりは熱発生のタイミングが遅い状態が生じる。この暴走プレイグニッションへと移る前段階の燃焼を「予兆プレイグニッション」という。要は、正常燃焼から暴走プレイグニッションに即座に移行するのではなく、遷移する時間が必要になるので、図３に示したように燃焼室１０内の燃焼状態が徐々に遷移していくパターンが存在するわけである。
【００２８】
上記の暴走プレイグニッションが生じてしまうと、エンジン１にダメージを与えてしまうので、本実施形態では暴走プレイグニッションの前段階にある予兆プレイグニッションを検出することを考える。
【００２９】
さて、予兆プレイグニッションや暴走プレイグニッション（これらをまとめて「プレイグニッション」ともいう。）では、点火コイル１５の二次電流から検出される放電持続時間（スパークが持続している時間のこと）が短くなることが知られている。そこで、図３のモデルの場合で、質量燃焼割合が１０％のときのクランク角位置と放電持続時間の関係で採り直すと、図４の特性が得られる。
【００３０】
図４において横軸のゼロは、質量燃焼割合が１０％のときのクランク角位置が点火時期と一致するタイミングである。このため、横軸のゼロより左側の領域は、質量燃焼割合が１０％のときのクランク角位置が点火時期より早い、つまり暴走プレイグニッションが生じる領域となる。
【００３１】
一方、正常燃焼の領域では質量燃焼割合が１０％のときのクランク角位置が点火時期より遅いので、正常燃焼の領域は横軸のゼロより右側にくる。そして、正常燃焼の領域と暴走プレイグニッションの領域との間に予兆プレイグニッションの領域が存在するはずである。
【００３２】
言い換えると、正常燃焼では、図５に実線で示したように、ある長さの放電持続時間（＝要求放電持続時間）が生じるように設定される。一方、予兆プレイグニッションになると、図５に破線で示したように、放電持続時間が正常燃焼の場合の要求放電持続時間より短くなる。この理由は次の通りである。すなわち、予兆プレイグニッションでは、燃焼室１０内の圧力が正常燃焼の場合より上昇し、放電の電極間距離にあるガス圧力が高まる。これによって、放電持続時間が短くなるという特性があるためである。
【００３３】
このため、点火コイル１５の二次電流に現れる放電特性をモニターしておけば、正常燃焼の放電特性から予兆プレイグニッションの放電特性へと徐々に移行していく。要は、正常燃焼の場合には、要求放電持続時間が得られているはずなのに、実際の放電持続時間が要求放電持続時間より徐々に短くなっていることをモニターできれば、予兆プレイグニッションへと移行していることを理論的には判断できるはずである。
【００３４】
実際には、放電持続時間がサイクル毎に大きくバラツク。ここで、図４の１つの○は１サイクルでのデータを表している。図４に示したように、放電持続時間がサイクル毎にバラツク場合に、１サイクルだけの放電持続時間から、予兆プレイグニッションであるか否かを判断するのでは誤判定が生じ得る。実際には正常燃焼であるのに予兆プレイグニッションであると誤判定したり、実際には予兆プレイグニッションであるのに正常燃焼であると誤判定したりするわけである。言い換えると、図４の特性では、正常燃焼と予兆プレイグニッションとの切り分けが難しいのである。
【００３５】
こうした誤判定を避けるため、点火コイルの二次電流を検出するだけじゃなくてイオン
しかしながら、従来装置のようにイオン電流を別に検出するのでは、コストが高くなる。
電流を検出することを併用する従来装置がある。
【００３６】
そこで本実施形態では、二次電流検出回路を用いて放電持続時間をサイクル毎に検出する。このサイクル毎に検出される放電持続時間の時系列データに対して、正常燃焼から予兆プレイグニッションへと移行する際の放電持続時間のゆっくりとした変化を捉えるような演算処理を行う。これによって、予兆プレイグニッションであるか否かの判定精度を向上させる。実際には予兆プレイグニッションであるのに正常燃焼であるとの誤判定や、実際には正常燃焼であるのに予兆プレイグニッションであるとの誤判定を防止するである。
【００３７】
上記の演算処理について、図６を参照して説明する。まず、図６上段は、正常燃焼と予兆プレイグニッションについて、横軸に放電持続時間を、縦軸に頻度を採った特性図である。正常燃焼、予兆プレイグニッションとも、頻度（度数）がある放電持続時間の幅で分布する。このように頻度分布図でみても、左右２つの分布が重なっているため、正常燃焼と予兆プレイグニッションとに切り分けることができない。図示の位置に閾値を設けたのでは、実際には予兆プレイグニッションであるのに正常燃焼であると誤判定したり、実際には正常燃焼であるのに予兆プレイグニッションであると誤判定したりする。
【００３８】
統計学上、上記の頻度は度数のことである。統計学に累積度数という指標があるので、上段の頻度分布から累積度数の分布を作成すると、図６下段の実線が得られる。ここで、「累積度数」とは、頻度（度数）を積み上げで表現したもので、全てを積み上げたとき１００％となる値である。ただし、正常燃焼の場合の度数は、放電持続時間が短い側から積み上げているのに対し、予兆プレイグニッションの度数は、放電持続時間が長い側から積み上げている。このように累積度数の分布図に変換しても、左右２つの累積度数の分布が重なっているため、正常燃焼と予兆プレイグニッションとに切り分けることはできない。
【００３９】
ここで、正常燃焼から暴走プレイグニッションに即座に移行するのではなく遷移する時間が必要になるため放電持続時間の時系列データが徐々に変化していく点に本発明の発明者が着目した。すなわち、時間的に徐々に変化するデータ（時系列データ）を平滑化する方法に、移動平均の手法がある。移動平均の主要なものは、単純移動平均、加重平均である。第１実施形態ではこのうちの加重平均を用いる。
【００４０】
上記の加重平均では、時系列上のｔのタイミングでの値をＹｔで表し、ｔのタイミングでの加重平均値をＳｔで表す。ｔ≧２の場合に、加重平均値の計算式は次の通りである。
【００４１】
Ｓｔ＝Ａ×Ｙｔ−１＋（１−Ａ）×Ｓｔ−１                …（１）
ただし、Ｓｔ：ｔのタイミングでの加重平均値、
Ｓｔ−１：ｔ−１のタイミングでの加重平均値、
Ｙｔ−１：ｔ−１のタイミングでの値、
Ａ：平滑化係数（ゼロと１の間の値）、
そこで、上記（１）式の値に放電持続時間Ｔ［ｍｓ］の時系列データを適用すると、次式が得られる。
【００４２】
Ｓｔ＝Ａｓ×Ｔｔ−１＋（１−Ａｓ）×Ｓｔ−１            …（２）
ただし、Ｓｔ：放電持続時間の今回のサイクルでの加重平均値、
Ｓｔ−１：放電持続時間の前回のサイクルでの加重平均値、
Ｔｔ−１：前回のサイクルでの放電持続時間、
Ａｓ：平滑化係数（ゼロと１の間の値）、
放電持続時間Ｔのサイクル毎の時系列データに対して、上記（２）式の加重平均の処理を行うことで、加重平均値Ｓｔのサイクル毎の時系列データを得る。この加重平均値Ｓｔのサイクル毎時系列データで累積度数の分布を作成したとき、累積度数の分布が下段の破線へと変化した。つまり、加重平均値のサイクル毎の時系列データで累積度数の分布を作成したとき、予兆プレイグニッションの場合の累積度数の分布と正常燃焼の場合の累積度数の分布とが全く重なることがなくなった。このように、左右２つの累積度数分布に重なる部分がなくなると、同じ閾値であっても予兆プレイグニッションの場合と正常燃焼の場合とを明確に（つまり精度良く）切り分けることができることとなった。
【００４３】
言い換えると、単純には放電持続時間をサイクル毎に検出してそのサイクル毎に得られるデータを時系列データとして記憶し、その時系列データに加重平均処理を行うことにより、予兆プレイグニッションであるか否かを精度良く判定できることになった。この場合、加重平均の処理であれば、エンジンコントローラ４１での演算上の負荷を低減することができるので、加重平均処理を追加することに伴うコストアップを最小限にすることができる。ここでは、加重平均を用いる場合で説明したが、この場合に限られるものでなく、単純移動平均であってよい。
【００４４】
点火コイル１５の二次電流から得られるサイクル毎の放電持続時間Ｔを検出するため、図２にも示したように二次電流検出回路６３を備える。二次電流検出回路６３はツェナダイオード６４及び電流検出用の抵抗６５から構成される（特開２００７−２３１９２７号公報参照）。すなわち、二次側コイル１０ｂの他端は、ツェナダイオード６４及び電流検出用の抵抗６５を介して接地されている。二次電流検出回路の構成はこの場合に限定されるものでなく、公知の二次電流検出回路のいずれであってもよい。
【００４５】
なお、図１には１気筒分の点火コイル１５しか示していない。多気筒エンジン、例えば４気筒エンジンであれば、気筒数分の点火コイルに対応して、図２に示したように、気筒数分の二次電流検出回路６３Ａ，６３Ｂ，６３Ｃ，６３Ｄが存在する。そして、各気筒の二次電流検出回路６３Ａ，６３Ｂ，６３Ｃ，６３Ｄからの出力（電流検出用抵抗の出力）がエンジンコンロトローラ４１に入力される。後述するように、エンジンコントローラ４１では各気筒の二次電流検出回路６３Ａ，６３Ｂ，６３Ｃ，６３Ｄで検出される二次側電流から放電持続時間をサイクル毎に検出する。
【００４６】
エンジンコントローラ４１で実行されるこの予兆プレイグニッションの検出を、以下のフローチャートを参照して説明する。
【００４７】
まず、図７のフローは、予兆プレイグニッションフラグを設定するためのもので、サイクル毎に実行する。ここで、「サイクル」を具体的に説明する。単気筒４サイクルエンジンの場合であれば、７２０ｄｅｇＣＡ（Ｃrank  Ａngle）で１回の点火タイミングが訪れるので、１サイクルとは７２０ｄｅｇＣＡのことである。４気筒４サイクルエンジンの場合であれば、７２０ｄｅｇＣＡ毎に各気筒の点火タイミングが訪れるので、１サイクルとは１８０ｄｅｇＣＡである。言い換えると、４気筒４サイクルエンジンの場合には各気筒の点火が終了するタイミングを実行タイミングとして、１８０ｄｅｇＣＡ毎に図７のフローを繰り返し実行することとなる。
【００４８】
ステップ１では、エンジン１の運転中であるか否かをみる。例えば、エンジンの始動時にエンジン回転速度Ｎｅは初爆回転速度を超えてアイドル状態に至るので、エンジン回転速度Ｎｅが初爆回転速度以下であればエンジンの運転中でないと判断する。このときにはステップ７に進み、予兆プレイグニッションフラグ（エンジン始動時にゼロに初期設定）＝０とする。
【００４９】
ステップ１でエンジン回転速度Ｎｅが初爆回転速度を超えていればエンジンの運転中であると判断する。このときにはステップ２に進み、プレイグニッションの発生する運転域（以下「プレイグニッション発生域」という。）にあるか否かをみる。
【００５０】
実際には、エンジン１の全ての運転域でプレイグニッションが発生するわけでなく、図８に示したように横軸にエンジン回転速度Ｎｅ、縦軸にエンジントルク（あるいはエンジン負荷）を採ったとき、熱面着火域と低温酸化反応域でプレイグニッションが生じる。上記の「熱面着火域」とは、燃焼室１０内の混合気の温度が低・中負荷域よりも相対的に高くなる高負荷域のことである。たとえば、エンジン１が高回転速度（例えば６０００ｒｐｍ）で回り続けると、点火プラグ１４自体が相対的に高温となり、点火プラグ１４による点火に関係なく、点火プラグ表面で自着火（熱面着火）が生じる。この場合、点火プラグ表面はホットスポットと呼ばれる。一方、上記の低温酸化反応域は、燃焼室１０内の混合気の温度が熱面着火域ほど高くない高負荷低回転側の領域にある。すなわち、「低温酸化反応域」とは、ある温度帯で長い時間、エンジン１が放置されることで、点火プラグ１４による点火に関係なく、燃焼室１０内で混合気の化学反応が勝手に進む現象が生じる領域のことである。
【００５１】
ステップ２でエンジン回転速度Ｎｅとエンジントルク（あるいはエンジン負荷）から定まる運転条件が図８に示した熱面着火域または低温酸化反応域にないときにはプレイグニッション発生域にないと判断する。このときにはステップ７に進み、予兆プレイグニッションフラグ＝０とする。
【００５２】
ステップ２でエンジン回転速度Ｎｅとエンジン負荷から定まる運転条件が図８に示した熱面着火域または低温酸化反応域にあるときにはプレイグニッション発生域にあると判断する。このときには予兆プレイグニッションが生じ得ると判断しステップ３以降に進む。
【００５３】
ステップ３〜６は予兆プレイグニッションを検出する部分である。まずステップ３では、前回のサイクルで得られた放電持続時間である「Ｔｚ」［ｍｓ］を読み込む。放電持続時間Ｔは、図示しないフローにおいて、サイクル毎に二次電流検出回路６３Ａ，６３Ｂ，６３Ｃ，６３Ｄを用いて検出し、サイクル毎に検出した放電持続時間Ｔを時系列でメモリに保存している。プレイグニッションを検出ここでは、今回のサイクルで得られる放電持続時間をＴ［ｍｓ］、前回のサイクルで得られた放電持続時間をＴｚ［ｍｓ］としている。
【００５４】
ステップ４では、前回のサイクルで得られた放電持続時間である「Ｔｚ」を用いて放電持続時間の今回のサイクルでの加重平均値（以下、単に「放電持続時間の加重平均値」という。）Ｓを次式により算出する。
【００５５】
Ｓ＝Ｔｚ×Ａｓ＋（１−Ａｓ）×Ｓｚ                      …（３）
ただし、Ｓｚ：前回のサイクルでのＳ、
Ａｓ：平滑化係数（ゼロと１の間の値）、
（３）式は上記（２）式と同じ式である。（３）式の平滑化係数Ａｓは適合により予め求めておく。
【００５６】
ステップ５では、放電持続時間の加重平均値Ｓと予兆プレイグニッション判定閾値（図７は「閾値」で略記。）を比較する。予兆プレイグニッション判定閾値は正常燃焼と予兆プレイグニッションを切り分けるための値で、予め適合しておく。放電持続時間の加重平均値Ｓが予兆プレイグニッション判定閾値以上であるときには正常燃焼であると判断する。このときには予兆プレイグニッションが生じていないことを表すため、ステップ７に進んで予兆プレイグニッションフラグ＝０とする。
【００５７】
ステップ５で放電持続時間の加重平均値Ｓが予兆プレイグニッション判定閾値未満になったら予兆プレイグニッションが生じていると判断する。このときには予兆プレイグニッションが生じていることを表すため、ステップ６に進んで予兆プレイグニッションフラグ＝１とする。これによって予兆プレイグニッションが検出された。
【００５８】
このように設定される予兆プレイグニッションフラグの値（つまり予兆プレイグニッションの検出結果）はメモリに保存しておく。
【００５９】
図９のフローは、燃料・点火停止フラグを設定するためのもので、図９のフローとは別に、一定時間毎（例えば１０ｍｓ毎）に実行する。
【００６０】
ステップ１１の操作は、図７のステップ２の操作と同じである。すなわち、ステップ１１では、プレイグニッション発生域にあるか否かをみる。エンジン回転速度Ｎｅとエンジントルクから定まる運転条件がプレイグニッション発生域にないときにはそのまま今回の処理を終了する。
【００６１】
ステップ２でエンジン回転速度Ｎｅとエンジントルクから定まる運転条件がプレイグニッション発生域にあるときにはステップ１２に進み、燃料・点火停止フラグをみる。この燃料・点火停止フラグはエンジン始動時にゼロに初期設定されている。ここでは、燃料・点火停止フラグ＝０であるとしてステップ１３に進み、予兆プレイグニッションフラグ（図７のフローにより設定済み）をみる。予兆プレイグニッションフラグ＝０であるときにはそのまま今回の処理を終了する。
【００６２】
ステップ１３で予兆プレイグニッションフラグ＝１であるときには、燃料供給及び点火を停止するためステップ１４に進み、燃料・点火停止フラグ（エンジン始動時にゼロに初期設定）＝１とする。この燃料・点火停止フラグ＝１の指示を受けて図示しないフローでは、各気筒において燃料噴射弁１２からの燃料供給及び点火プラグ１４での点火が停止される。これによって、エンジンを空回しし吸入空気を燃焼室１０に導いて燃焼室１０内の温度を低下させる。
【００６３】
ステップ１５ではタイマを起動する（タイマ値ｔｍ１＝０）。このタイマは、燃料・点火供給停止フラグ＝１としてからの経過時間を計測するためのものである。
【００６４】
ステップ１４での燃料・点火供給停止フラグ＝１により、次回よりステップ１２からステップ１６に進む。ステップ１６ではタイマ値ｔｍ１と所定値ｔｍ０を比較する。所定値ｔｍ０は燃焼室１０内が十分に冷えるまでの時間、つまり燃焼室１０内が、予兆プレイグニッションが生じない温度になるまでの時間を定める値で、適合により予め定めておく。タイマ値ｔｍ１が所定値Ｔｍ０未満であるときにはステップ１４，１５の操作を実行する。
【００６５】
ステップ１６でタイマ値ｔｍ１が所定値ｔｍ０未満である限り、ステップ１４，１５の操作を繰り返す。燃焼室１０内で点火プラグ１４自体が高温となり、点火プラグ表面がホットスポットとなっていても、燃料噴射弁１２からの燃料供給及び点火プラグ１４での点火を停止して、燃焼室１０内で燃焼させなければ、吸気によって燃焼室１０内が冷やされる。やがて、点火プラグ表面がホットスポットでなくなり、予兆プレイグニッションが解消される。ステップ１６でタイマ値ｔｍ１が所定値ｔｍ０以上になると、燃焼室１０内が十分に冷えた、つまり燃焼室１０内が、予兆プレイグニッションが生じない温度になったと判断する。このときには、燃料噴射弁１２からの燃料供給及び点火プラグ１４での点火の停止を解除するためステップ１７に進み、燃料・点火停止フラグ＝０に戻す。これによって、再び各気筒で燃料噴射弁１２からの燃料供給及び点火プラグ１４での点火が再開される。
【００６６】
図１０は、エンジン１の運転中にエンジン１の運転条件がプレイグニッション発生域に入ったときに放電持続時間がどのように変化するのかをモデルで示した第１実施形態の場合のタイミングチャートである。ここでは、ｔ１のタイミングからｔ３のタイミングまでの期間で、例えば熱面着火域に入ったとする。
【００６７】
この場合、図１０第３段目には正常燃焼の場合の放電持続時間の生値及び加重平均値の動きと、予兆プレイグニッションの場合の放電持続時間の生値及び加重平均値の動きとを重ねて示している。ここで、上記「放電持続時間の生値」とは、二次電流検出回路により検出される放電持続時間のサイクル毎の時系列データのことである。このサイクル毎のデータにはバラツキがあるので、図示のように上下に小刻みに振動している。
【００６８】
さて、プレイグニッションが生じ得る熱面着火域に入ったからといって、正常燃焼から予兆プレイグニッションへと必ず移行するわけでない。なぜかというと、基本的には全ての運転域で暴走プレイグニッションが発生しないように、エンジン１を設計しているためである。
【００６９】
しかしながら、エンジン１の経年劣化で燃焼室１０内にデポジットが付着することがある。デポジットは煤の塊のことである。デポジットの存在で、その分、実際の圧縮比が高くなると、正常燃焼から予兆プレイグニッションへと徐々に移行し、ついには暴走プレイグニッションが起きやすくなる。もしくは、砂漠地のように吸気温度がもともと高温となっている場合において圧縮比が高くなると、予兆プレイグニッションから暴走プレイグニッションへと移行し、暴走プレイグニッションが起きやすくなる。暴走プレイグニッションが生じ得る熱面着火域にあっても、正常燃焼にとどまり予兆プレイグニッションに移行しない場合もあれば、正常燃焼から徐々に予兆プレイグニッションへと移行する場合もあり得るわけである。
【００７０】
熱面着火域でも、正常燃焼から予兆プレイグニッションに移行しなければ、放電持続時間の生値が上下に振れつつ変化するものの、放電持続時間の加重平均値（図１０では「加重平均値」で略記。）はほぼ同じようなレベルを維持する。このため、放電持続時間の加重平均値が予兆プレイグニッション判定閾値を横切って下回ることはない。
【００７１】
一方、熱面着火域で正常燃焼から予兆プレイグニッションに移行する場合には、放電持続時間の加重平均値がｔ１のタイミングから低下してゆく。そして、ｔ２のタイミングで予兆プレイグニッション判定閾値を横切って低下するため、予兆プレイグニッションフラグがゼロから１に切換わる。
【００７２】
なお、図１０のタイミングチャートは図７のフローだけと対応するもので、図７及び図９のフローと対応するものでない。なぜなら、図９のフローに従えば、予兆プレイグニッションフラグがゼロから１に切換わるタイミングで、各気筒の燃料供給及び点火を停止する。これにより、燃焼室１０内が冷やされ、予兆プレイグニッションが生じない方向、つまり放電持続時間の生値が長くなる方向に動くはずであるが、そうなっていないためである。これは、予兆プレイグニッションフラグがゼロから１に切換わるタイミングで燃料供給及び点火を停止した場合の放電持続時間の生値の動きを記載するとすれば、正常燃焼の場合の放電持続時間の生値の動きと紛らわしくなるので、これを避けるためである。要は、図１０のタイミングチャートは、正常燃焼から予兆プレイグニッションへと移行する際に、放電持続時間の生値及び加重平均値がどのような挙動をするかを示すものである。
【００７３】
ここで、本実施形態の作用効果を説明する。
【００７４】
本実施形態では、点火プラグ１４と、点火コイル１５と、二次電流検出回路６３と、放電持続時間検出手段（４１）と、移動平均処理手段（４１）と、予兆プレイグニッション判定手段（４１）とを備える。上記点火プラグ１４は燃焼室１０に臨んで設けられる。上記点火コイル１５は一次側コイル１５ａと二次側コイル１５ｂとで構成される。上記二次電流検出回路６３は一次電流（一次側コイルを流れる電流）を所定のタイミングで遮断することによって点火プラグ１４の電極間に放電を行わせる点火時に二次電流（点火コイルの二次側コイルを流れる電流）を検出する。上記放電持続時間検出手段（４１）は検出される二次電流から、前記放電の持続時間をサイクル毎に検出する。上記移動平均処理手段（４１）はサイクル毎に検出される放電持続時間Ｔの時系列データに対し、移動平均の処理を施して移動平均値Ｓを求める。上記予兆プレイグニッション判定手段（４１）は移動平均値Ｓに基づいて、予兆プレイグニッションが生じているか否かを判定する。本実施形態によれば、放電持続時間に基づいて予兆プレイグニッションを検出する場合であっても、正常燃焼の場合の放電持続時間と予兆プレイグニッションの場合の放電持続時間とを明確に区別することができることとなった。これによって、予兆プレイグニッションを精度良く検出することができる。暴走プレイグニッションの前段階の予兆プレイグニッションを検出するので、エンジン１の信頼性に影響を与えることはない。
【００７５】
本実施形態では、移動平均値は加重平均値Ｓであるので、エンジンコントローラ４１での演算上の負荷を軽減することができる。
【００７６】
（第２実施形態）
図１１のフローは第２実施形態の予兆プレイグニッションフラグを設定するためのもので、サイクル毎に実行する。図１１のフローは第１実施形態の図７のフローと置き換わるものである。第１実施形態の図７のフローと同一部分には同一の符号を付している。
【００７７】
第１実施形態の図７のフローと相違する部分を主に説明する。ステップ１でエンジン１の運転中であるときにはステップ２１に進み、予兆プレイグニッション経験済みフラグ（図１１では「予兆プレイグ経験済フラグ」で略記。）をみる。ここでは予兆プレイグニッション経験済みフラグ＝０であるとしてステップ２に進む。
【００７８】
ステップ２ではプレイグニッション発生域であるか否かをみて、プレイグニッション発生域であるときにはステップ３以降に進む。
【００７９】
ステップ３，２２，２３，２４，２５，６は予兆プレイグニッションを検出する部分である。まずステップ３では、まず今回のサイクルで得られた放電持続時間からｎ回（例えば１０回）前のサイクルで得られた放電持続時間までの１０個の時系列データを読み込む。ここで、放電持続時間の時系列データを最新のものからＴ１［ｍｓ］，Ｔ２［ｍｓ］，Ｔ３［ｍｓ］，Ｔ４［ｍｓ］，Ｔ５［ｍｓ］，Ｔ６［ｍｓ］，Ｔ７［ｍｓ］，Ｔ８［ｍｓ］，Ｔ９［ｍｓ］，Ｔ１０［ｍｓ］とする。
【００８０】
ステップ２２では、放電持続時間の時系列データである１０個のデータＴ１〜Ｔ１０を用いて、次式により放電持続時間の単純移動平均値Ｔａｖｅ［ｍｓ］を算出する。
【００８１】
Ｔａｖｅ＝（Ｔ１＋Ｔ２＋…＋Ｔ１０ ）／１０             …（４）
次回のサイクルで単純移動平均値Ｔａｖｅを求めるには、次回のサイクルで求まる放電持続時間を新たな値として加え、一番古いサイクルでの放電持続時間（一番古い値）を除けばよい。
【００８２】
なお、放電持続時間の時系列データが１０個である場合に限定されるものでなく、ステップ２２には次のように放電持続時間の時系列データがｎ（ｎは自然数）個である場合の単純移動平均値Ｔａｖｅの一般式を記載している。
【００８３】
Ｔａｖｅ＝ΣＴｎ／ｎ                                    …（５）
ただし、ｎ：サンプル数（時系列データ数）、
（５）式でサンプル数ｎが１０個である場合が上記（４）式である。
【００８４】
ステップ２３では、この単純移動平均値Ｔａｖｅと今回のサイクルで得られる放電持続時間Ｔ１［ｍｓ］との差を、放電持続時間の今回のサイクルでの偏差ΔＴ１［ｍｓ］として、つまり次式により放電持続時間の今回のサイクルでの偏差ΔＴ１を算出する。
【００８５】
ΔＴ１＝Ｔａｖｅ−Ｔ１                                    …（６）
ステップ２４ではこの放電持続時間の今回のサイクルでの偏差ΔＴ１を、改めて放電持続時間の偏差ΔＴに入れる。ステップ２５ではこの放電持続時間の偏差ΔＴと予兆プレイグニッション判定閾値（図１１では「閾値」で略記。）を比較する。予兆プレイグニッション判定閾値は正常燃焼と予兆プレイグニッションを切り分けるための値で、予め適合しておく。放電持続時間の偏差ΔＴが予兆プレイグニッション判定閾値以上であるときには正常燃焼であると判断する。このときには予兆プレイグニッションが生じていないことを表すため、ステップ７に進んで予兆プレイグニッションフラグ＝０とする。
【００８６】
ステップ２５で放電持続時間の偏差ΔＴが予兆プレイグニッション判定閾値未満になったときには予兆プレイグニッションが生じていると判断する。このときには予兆プレイグニッションが生じていることを表すため、ステップ６に進んで予兆プレイグニッションフラグ＝１とする。これによって予兆プレイグニッションが検出された。
【００８７】
ステップ２６では予兆プレイグニッション経験済みフラグ＝１とする。予兆プレイグニッション経験済みフラグは、一旦、予兆プレイグニッションフラグを１に切換えた後には、エンジン１の運転条件がプレイグニッション発生域を外れるまで、このフラグの値を維持させておくためのものである。
【００８８】
ステップ２６での予兆プレイグニッション経験済みフラグ＝１により、次回にはステップ２１からステップ２７に進む。ステップ２７ではプレイグニッション発生域に継続してあるか否かをみる。エンジン１の運転条件がプレイグニッション発生域に継続してあるときにはステップ６，２６の操作を実行する。
【００８９】
一方、ステップ２７でエンジン１の運転条件がプレイグニッション発生域を外れたときには次回の予兆プレイグニッションの検出に備えるためステップ２８，２９に進み、予兆プレイグニッションフラグ＝０、予兆プレイグニッション経験済みフラグ＝０とする。
【００９０】
第２実施形態では、放電持続時間の今回のサイクルでの偏差ΔＴ１を算出する際に、単純移動平均値Ｔａｖｅを用いたが、この場合に限られない。単純移動平均値Ｔａｖｅに代えて、第１実施形態の放電持続時間の加重平均値Ｓを用いることであってよい。
【００９１】
図１２は、エンジン１の運転中にエンジン１の運転条件がプレイグニッション発生域に入ったときに放電持続時間及び偏差ΔＴがどのように変化するのかをモデルで示した第２実施形態の場合のタイミングチャートである。ここでは、ｔ１１のタイミングからｔ１４のタイミングまでの期間で、例えば熱面着火域に入ったとする。参考のため、図１０第３段目をそのまま図１２第３段目にも記載している。
【００９２】
この場合、図１２第４段目には正常燃焼の場合の放電持続時間の偏差ΔＴの動きと、予兆プレイグニッションの場合の放電持続時間の偏差ΔＴの動きとを重ねて示している。この放電持続時間の偏差ΔＴのデータにはサイクル毎のバラツキがあるので、図示のように上下に小刻みに振動している。
【００９３】
さて、熱面着火域でも、正常燃焼から予兆プレイグニッションに移行しなければ、つまり正常燃焼の場合には放電持続時間の生値が上下に振れつつ変化するものの、放電持続時間の偏差ΔＴはあるレベルから動くことはない。したがって、正常燃焼の場合に放電持続時間の偏差ΔＴが予兆プレイグニッション判定閾値を横切って下回ることはない。
【００９４】
一方、熱面着火域で正常燃焼から予兆プレイグニッションに移行する場合には、放電持続時間の偏差ΔＴがｔ１１のタイミングから低下してゆき、ｔ１２のタイミングで予兆プレイグニッション判定閾値を横切って低下するため、予兆プレイグニッションフラグがゼロから１に切換わる。
【００９５】
その後、放電持続時間の偏差ΔＴが大きくなる側に向かい、ｔ１３で予兆プレイグニッション判定閾値を横切って上昇している。この場合に、ｔ１３のタイミングで、予兆プレイグニッションフラグを１からゼロに切換えることはなしない。なぜなら、実際には、予兆プレイグニッションがｔ１２のタイミングから生じ、ｔ１３のタイミングを超えても予兆プレイグニッションが継続して生じているからである。このようにｔ１３のタイミングで予兆プレイグニッションフラグを１からゼロに切換えることをしない理由は、予兆プレイグニッションが生じている状態での放電持続時間の生値が安定しているために、放電持続時間の偏差が大きくなる側に戻ってくるためである。
【００９６】
さらに述べると、これは放電持続時間の偏差ΔＴを採用する場合の特殊性ともいえるものである。このため放電持続時間の偏差ΔＴを採用するときには、予兆プレイグニッションフラグを一度、１に切換えた後には、エンジン１の運転条件がプレイグニッション発生域を外れるまで１を維持させる。
【００９７】
第２実形態では、二次電流検出回路によって検出される二次電流（二次側コイルを流れる電流）から、放電持続時間Ｔをサイクル毎に検出し、サイクル毎に検出される放電持続時間Ｔの時系列データに対し、単純移動平均（移動平均）の処理を施して単純移動平均値Ｔａｖｅ（移動平均値）を求める。そして、この単純移動平均値Ｔａｖｅと今回のサイクルで得られた放電持続時間Ｔ１との偏差ΔＴに基づいて、予兆プレイグニッションが生じているか否かを判定する。これによって、第１実施形態と同様に、バラツキのある放電持続時間に基づいて予兆プレイグニッションを検出する場合であっても、正常燃焼の場合の放電持続時間と予兆プレイグニッションの場合の放電持続時間とを明確に区別することができることとなった。これによって、予兆プレイグニッションを精度良く検出することができる。
【００９８】
（第３実施形態）
図１３のフローは第３実施形態の予兆プレイグニッションフラグを設定するためのもので、サイクル毎に実行する。図１３のフローは第２実施形態の図１１のフローと置き換わるものである。第２実施形態の図１１のフローと同一部分には同一の符号を付している。
【００９９】
第２実施形態の図１１のフローと相違する部分はステップ３１，３２のみである。すなわち、ステップ３１では、今回のサイクルで得られる放電持続時間Ｔ１［ｍｓ］を単純移動平均値Ｔａｖｅ［ｍｓ］で除算した値を放電持続時間の比率Ｔｒａｔｅ［無名数］として、つまり次式により放電持続時間の比率Ｔｒａｔｅを算出する。
【０１００】
Ｔｒａｔｅ＝Ｔ１／Ｔａｖｅ                              …（７）
ステップ３２ではこの放電持続時間の比率Ｔｒａｔｅと予兆プレイグニッション判定閾値（図１３では「閾値」で略記。）を比較する。予兆プレイグニッション判定閾値は正常燃焼と予兆プレイグニッションを切り分けるための値で、予め適合しておく。放電持続時間の比率Ｔｒａｔｅが予兆プレイグニッション判定閾値以上であるときには正常燃焼であると判断する。このときには予兆プレイグニッションが生じていないことを表すため、ステップ７に進んで予兆プレイグニッションフラグ＝０とする。
【０１０１】
ステップ３２で放電持続時間の比率Ｔｒａｔｅが予兆プレイグニッション判定閾値未満になったときには予兆プレイグニッションが生じていると判断する。このときには予兆プレイグニッションが生じていることを表すため、ステップ６に進んで予兆プレイグニッションフラグ＝１とする。これによって予兆プレイグニッションが検出された。
【０１０２】
第３実施形態でも、放電持続時間の比率Ｔｒａｔｅを算出する際に、単純移動平均値Ｔａｖｅを用いたが、この場合に限られない。単純移動平均値Ｔａｖｅに代えて、第１実施形態の放電持続時間の加重平均値Ｓを用いることであってよい。
【０１０３】
図１４は、エンジン１の運転中にエンジン１の運転条件がプレイグニッション発生域に入ったときに放電持続時間及び比率Ｔｒａｔｅがどのように変化するのかをモデルで示した第３実施形態の場合のタイミングチャートである。ここでは、ｔ２１のタイミングからｔ２４のタイミングまでの期間で、例えば熱面着火域に入ったとする。参考のため、図１０第３段目をそのまま図１４第３段目にも記載している。
【０１０４】
この場合、図１４第４段目には正常燃焼の場合の放電持続時間の比率Ｔｒａｔｅの動きと、予兆プレイグニッションの場合の放電持続時間の比率Ｔｒａｔｅの動きとを重ねて示している。この放電持続時間の比率Ｔｒａｔｅのデータにはサイクル毎のバラツキがあるので、図示のように上下に小刻みに振動している。
【０１０５】
さて、熱面着火域でも、正常燃焼から予兆プレイグニッションに移行しなければ、つまり正常燃焼の場合には放電持続時間の生値が上下に振れつつ変化するものの、放電持続時間の比率Ｔｒａｔｅはあるレベルから動くことはない。したがって、正常燃焼の場合に放電持続時間の比率Ｔｒａｔｅが予兆プレイグニッション判定閾値を横切って下回ることはない。
【０１０６】
一方、熱面着火域で正常燃焼から予兆プレイグニッションに移行する場合には、放電持続時間の比率Ｔｒａｔｅがｔ２１のタイミングから低下してゆき、ｔ２２のタイミングで予兆プレイグニッション判定閾値を横切って低下するため、予兆プレイグニッションフラグがゼロから１に切換わる。
【０１０７】
その後、放電持続時間の比率Ｔｒａｔｅが大きくなる側に向かい、ｔ２３で予兆プレイグニッション判定閾値を横切って上昇している。この場合に、ｔ２３のタイミングで、予兆プレイグニッションフラグを１からゼロに切換えることはなしない。なぜなら、実際には、予兆プレイグニッションがｔ２２のタイミングから生じ、ｔ２３のタイミングを超えても予兆プレイグニッションが継続して生じているからである。このようにｔ２３のタイミングで予兆プレイグニッションフラグを１からゼロに切換えることをしない理由は、予兆プレイグニッションが生じている状態での放電持続時間の生値が安定しているために、放電持続時間の比率が大きくなる側に戻ってくるためである。
【０１０８】
さらに述べると、これは放電持続時間の偏差ΔＴと同じく比率Ｔｒａｔｅを採用する場合の特殊性ともいえるものである。このため放電持続時間の比率Ｔｒａｔｅを採用するときにも、予兆プレイグニッションフラグを一度、１に切換えた後には、エンジン１の運転条件がプレイグニッション発生域を外れるまで１を維持させる。
【０１０９】
このように放電持続時間の比率Ｔｒａｔｅは第２実施形態の放電持続時間の偏差ΔＴとほぼ等価な値である。
【０１１０】
第３実形態では、二次電流検出回路によって検出される二次電流（二次側コイルを流れる電流）から、放電持続時間Ｔをサイクル毎に検出し、サイクル毎に検出される放電持続時間Ｔの時系列データに対し、単純移動平均（移動平均）の処理を施して単純移動平均値Ｔａｖｅ（移動平均値）を求める。そして、この単純移動平均値Ｔａｖｅと今回のサイクルで得られた放電持続時間Ｔ１との比率ｒａｔｅに基づいて、予兆プレイグニッションが生じているか否かを判定する。これによって、第１実施形態と同様に、バラツキのある放電持続時間に基づいて予兆プレイグニッションを検出する場合であっても、正常燃焼の場合の放電持続時間と予兆プレイグニッションの場合の放電持続時間とを明確に区別することができることとなった。これによって予兆プレイグニッションを精度良く検出することができる。
【０１１１】
（第４実施形態）
図１５のフローは第４実施形態の予兆プレイグニッションフラグを設定するためのもので、サイクル毎に実行する。図１５のフローは第１実施形態の図７のフローと置き換わるものである。第１、第２の実施形態の図７、図１１のフローと同一部分には同一の符号を付している。
【０１１２】
第１実施形態の図７、第２実施形態の図１１の各フローと相違する部分はステップ４１，４２，４３のみである。すなわち、ステップ２でプレイグニッション発生域であるときにはステップ４１に進む。ステップ４１では、放電持続時間の時系列データである９個のデータＴ１〜Ｔ９を１サイクル前のデータへと順次移す。具体的には、Ｔ９のデータをＴ１０に、Ｔ８のデータをＴ９に、Ｔ７のデータをＴ８に、Ｔ６のデータをＴ７に、Ｔ５のデータをＴ６に、Ｔ４のデータをＴ５に、Ｔ３のデータをＴ４に、Ｔ２のデータをＴ３に、Ｔ１のデータをＴ２に移す。この一連の操作はデータのシフト操作と呼ばれる。このシフト操作によって、最も古いＴ１０のデータを捨てたことになる。
【０１１３】
ステップ２３では、単純移動平均値Ｔａｖｅと今回のサイクルで得られる放電持続時間Ｔ１との差を放電持続時間の今回のサイクルでの偏差ΔＴ１［ｍｓ］として、つまり次式により放電持続時間の今回のサイクルでの偏差ΔＴ１を算出する。
【０１１４】
ΔＴ１＝Ｔａｖｅ−Ｔ１                                  …（８）
このステップ２３で得た今回のサイクルでのデータＴ１と、ステップ４１でのシフト操作により得られるＴ２〜Ｔ１０のデータとで、放電持続時間の偏差の時系列データである１０個のデータΔＴ１〜Ｔ１０が得られた。
【０１１５】
ステップ４２では、放電持続時間の偏差の時系列データである１０個のデータΔＴ１〜Ｔ１０を用いて次式により放電持続時間の積算偏差Ｔσを算出する。
【０１１６】
Ｔσ＝ΔＴ１＋ΔＴ２＋…＋ΔＴ１０                      …（９）
なお、放電持続時間の偏差の時系列データが１０個である場合に限定されるものでなく、ステップ４２には次のように放電持続時間の積算偏差Ｔσの一般式を記載している。
【０１１７】
Ｔσ＝ΣΔＴｎ                                          …（１０）
ただし、ｎ：サンプル数（時系列データ数）、
（１０）式でサンプル数ｎが１０個である場合が上記（９）式である。
【０１１８】
ステップ４３では放電持続時間の積算偏差Ｔσと予兆プレイグニッション判定閾値（図１５では「閾値」で略記。）を比較する。予兆プレイグニッション判定閾値は正常燃焼と予兆プレイグニッションを切り分けるための値で、予め適合しておく。放電持続時間の積算偏差Ｔσが予兆プレイグニッション判定閾値以上であるときには正常燃焼であると判断する。このときには予兆プレイグニッションが生じていないことを表すため、ステップ７に進んで予兆プレイグニッションフラグ＝０とする。
【０１１９】
ステップ４３で放電持続時間の積算偏差Ｔσが予兆プレイグニッション判定閾値未満になったときには予兆プレイグニッションが生じていると判断する。このときには予兆プレイグニッションが生じていることを表すため、ステップ６に進んで予兆プレイグニッションフラグ＝１とする。これによって予兆プレイグニッションが検出された。
【０１２０】
第４実施形態でも、放電持続時間の今回のサイクルでの偏差ΔＴ１を算出する際に、単純移動平均値Ｔａｖｅを用いたが、この場合に限られない。単純移動平均値Ｔａｖｅに代えて、第１実施形態の放電持続時間の加重平均値Ｓを用いることであってよい。
【０１２１】
図１６は、エンジン１の運転中にエンジン１の運転条件がプレイグニッション発生域に入ったときに放電持続時間、偏差ΔＴ及び積算偏差Ｔσがどのように変化するのかをモデルで示した第４実施形態の場合のタイミングチャートである。ここでは、ｔ３１のタイミングからｔ３３のタイミングまでの期間で、例えば熱面着火域に入ったとする。参考のため、図１０第３段目をそのまま図１６第１段目に記載している。
【０１２２】
図１６のタイミングチャートは第２実施形態の図１２のタイミングチャートと置き換わるものである。ただし、図１２のタイミングチャートにあったエンジン回転速度Ｎｅとエンジントルクの動きが削除され、代わりに、放電持続時間の積算偏差Ｔδの動きが図１６第３段目に追加されている。すなわち、図１６第３段目には正常燃焼の場合の放電持続時間の積算偏差Ｔσの動きと、予兆プレイグニッションの場合の放電持続時間の積算偏差Ｔσの動きとを重ねて示している。この放電持続時間の積算偏差Ｔσのデータにはバラツキがあるので、図示のように上下に小刻みに振動している。
【０１２３】
さて、熱面着火域でも、正常燃焼から予兆プレイグニッションに移行しなければ、つまり正常燃焼の場合には放電持続時間の生値が上下に振れつつ変化するものの、放電持続時間の積算偏差Ｔσはあるレベルから動くことはない。したがって、正常燃焼の場合に放電持続時間の積算偏差Ｔσが予兆プレイグニッション判定閾値を横切って下回ることはない。
【０１２４】
一方、熱面着火域で正常燃焼から予兆プレイグニッションに移行する場合には、放電持続時間の積算偏差Ｔσがｔ３１のタイミングから低下してゆき、ｔ３２のタイミングで予兆プレイグニッション判定閾値を横切って低下するため、予兆プレイグニッションフラグがゼロから１に切換わる。
【０１２５】
放電持続時間の偏差ΔＴの場合には、上記図１２に示したようにｔ１３のタイミングで放電持続時間の偏差ΔＴが予兆プレイグニッション判定閾値を横切って上昇した。しかしながら、放電持続時間の偏差を積算した値である積算偏差Ｔであればこうした事態は起こらない。これは、予兆プレイグニッションが生じた状態で、放電持続時間Ｔが安定したら、放電持続時間の積算偏差Ｔσも安定するためである。
【０１２６】
第４実形態では、二次電流検出回路によって検出される二次電流（二次側コイルを流れる電流）から、放電持続時間Ｔをサイクル毎に検出し、サイクル毎に検出される放電持続時間Ｔの時系列データに対し、単純移動平均（移動平均）の処理を施して単純移動平均値Ｔａｖｅ（移動平均値）を求める。そして、この単純移動平均値Ｔａｖｅと今回のサイクルで得られた放電持続時間Ｔ１との偏差ΔＴ１の積算値である積算偏差Ｔσに基づいて、予兆プレイグニッションが生じているか否かを判定する。これによって、第１実施形態と同様に、バラツキのある放電持続時間に基づいて予兆プレイグニッションを検出する場合であっても、正常燃焼の場合の放電持続時間と予兆プレイグニッションの場合の放電持続時間とを明確に区別することができることとなった。これによって予兆プレイグニッションを精度良く検出することができる。
【符号の説明】
【０１２７】
１  エンジン
１０  燃焼室
１３  点火装置
１４  点火プラグ
１５  点火コイル
１５ａ  一次側コイル
１５ｂ  二次側コイル
６３Ａ，６３Ｂ，６３Ｃ，６３Ｄ  二次電流検出回路
６５  電流検出用の抵抗
４１  エンジンコントローラ（放電持続時間検出手段、移動平均処理手段、予兆プレイグニッション判定手段）
【図１】
0006424603.tif 000002
【図２】
0006424603.tif 000003
【図３】
0006424603.tif 000004
【図４】
0006424603.tif 000005
【図５】
0006424603.tif 000006
【図６】
0006424603.tif 000007
【図７】
0006424603.tif 000008
【図８】
0006424603.tif 000009
【図９】
0006424603.tif 000010
【図１０】
0006424603.tif 000011
【図１１】
0006424603.tif 000012
【図１２】
0006424603.tif 000013
【図１３】
0006424603.tif 000014
【図１４】
0006424603.tif 000015
【図１５】
0006424603.tif 000016
【図１６】
0006424603.tif 000017