以下、図面を参照しつつ、本発明の実施の形態について説明する。以下の説明では、同一の部品には同一の符号を付してある。それらの名称および機能も同一である。したがって、それらについての詳細な説明は繰返さない。
図1を参照して、本発明の実施の形態に係る点火時期制御装置を搭載した車両のエンジン100について説明する。エンジン100には4つの気筒が設けられる。なお、気筒の数は「4」限らず、「5」、「6」、「8」、「10」および「12」などであってもよい。
本実施の形態に係る点火時期制御装置は、たとえばエンジンECU(Electronic Control Unit)200が実行するプログラムにより実現される。なお、エンジンECU200により実行されるプログラムをCD(Compact Disc)、DVD(Digital Versatile Disc)などの記録媒体に記録して市場に流通させてもよい。
エンジン100は、エアクリーナ102から吸入された空気とインジェクタ104から噴射される燃料との混合気を、燃焼室内で点火プラグ106により点火して燃焼させる内燃機関である。
点火時期は、エンジン100の運転状態に応じて設定される。以下、エンジン100の運転状態に応じて設定される点火時期を基本点火時期とも記載する。ノッキングが発生した場合などには、点火時期は基本点火時期から遅角される。
基本点火時期は、エンジン回転数NEおよび負荷KLをパラメータとして有するマップに従って設定される。たとえば、エンジン回転数NEがしきい値NE1より小さく、かつ負荷KLがしきい値KL1より小さい運転状態(運転領域)において、MBT(Minimum advance for Best Torque)が基本点火時期として設定される。エンジン回転数NEがしきい値NE1より小さく、かつ負荷KLがしきい値KL1より小さい運転状態では、ノッキングがほとんど発生しないからである。なお、MBTとは、エンジン100の出力が最大になる点火時期を示す。
負荷KLは、後述するエアフローメータ314により検出された吸入空気量およびエンジン回転数NEなどに基づいて算出される。なお、負荷KLを算出する方法は周知の一般的な技術を利用すればよいため、ここではそれらの詳細な説明は繰り返さない。
混合気が燃焼すると、燃焼圧によりピストン108が押し下げられ、クランクシャフト110が回転する。燃焼後の混合気(排気ガス)は、三元触媒112により浄化された後、車外に排出される。エンジン100に吸入される空気の量は、スロットルバルブ114により調整される。吸気バルブ116が開いた際に燃焼室に混合気が導入される。排気バルブ118が開いた際に燃焼室から排気ガスが排出される。
エンジン100は、エンジンECU200により制御される。エンジンECU200には、ノックセンサ300と、水温センサ302と、タイミングロータ304に対向して設けられたクランクポジションセンサ306と、スロットル開度センサ308と、車速センサ310と、イグニッションスイッチ312と、エアフローメータ314とが接続されている。
ノックセンサ300は、エンジン100のシリンダブロックに設けられる。ノックセンサ300は、圧電素子により構成されている。ノックセンサ300は、エンジン100の振動により電圧を発生する。電圧の大きさは、振動の大きさと対応した大きさとなる。ノックセンサ300は、電圧を表わす信号をエンジンECU200に送信する。水温センサ302は、エンジン100のウォータージャケット内の冷却水の温度(水温)を検出し、検出結果を表わす信号を、エンジンECU200に送信する。
タイミングロータ304は、クランクシャフト110に設けられており、クランクシャフト110と共に回転する。タイミングロータ304の外周には、予め定められた間隔で複数の突起が設けられている。クランクポジションセンサ306は、タイミングロータ304の突起に対向して設けられている。タイミングロータ304が回転すると、タイミングロータ304の突起と、クランクポジションセンサ306とのエアギャップが変化するため、クランクポジションセンサ306のコイル部を通過する磁束が増減し、コイル部に起電力が発生する。クランクポジションセンサ306は、起電力を表わす信号を、エンジンECU200に送信する。エンジンECU200は、クランクポジションセンサ306から送信された信号に基づいて、クランク角およびクランクシャフト110の回転数を検出する。
スロットル開度センサ308は、スロットル開度を検出し、検出結果を表わす信号をエンジンECU200に送信する。車速センサ310は、車輪(図示せず)の回転数を検出し、検出結果を表わす信号をエンジンECU200に送信する。エンジンECU200は、車輪の回転数から、車速を算出する。イグニッションスイッチ312は、エンジン100を始動させる際に、運転者によりオン操作される。エアフローメータ314は、エンジン100に吸入される空気量を検出し、検出結果を表わす信号をエンジンECU200に送信する。
エンジンECU200は、電源である補機バッテリ320から供給された電力により作動する。エンジンECU200は、各センサおよびイグニッションスイッチ312から送信された信号、ROM(Read Only Memory)202に記憶されたマップおよびプログラムに基づいて演算処理を行ない、エンジン100が所望の運転状態となるように、機器類を制御する。
本実施の形態において、エンジンECU200は、ノックセンサ300から送信された信号およびクランク角に基づいて、予め定められたノック検出ゲート(予め定められた第1クランク角から予め定められた第2クランク角までの区間)におけるエンジン100の振動の波形(以下、振動波形と記載する)を検出し、検出された振動波形に基づいて、エンジン100にノッキングが発生したか否かを判定する。本実施の形態におけるノック検出ゲートは、燃焼行程において上死点(0度)から90度までである。なお、ノック検出ゲートはこれに限らない。
ノッキングが発生した場合、図2に示すように、エンジン100には、周波数帯A〜Cに含まれるの周波数の振動が発生する。そこで、本実施の形態においては、周波数帯A〜Cを含む広域の周波数帯Dにおける振動が検出される。
図3に示すように、エンジンECU200は、A/D(アナログ/デジタル)変換部400と、バンドパスフィルタ410と、積算部420とを含む。
A/D変換部400は、アナログ信号をデジタル信号に変換する。バンドパスフィルタ410は、ノックセンサ300から送信された信号のうち、周波数帯Dの信号のみを通過させる。すなわち、バンドパスフィルタ410により、ノックセンサ300が検出した振
動から、周波数帯Dの振動のみが抽出される。
積算部420は、バンドパスフィルタ410により選別された信号、すなわち振動の強度を、クランク角度で5度分づつ積算した積算値(以下、5度積算値とも記載する)を算出する。これにより、図4に示すように、周波数帯Dの振動波形が検出される。
検出された振動波形は、振動波形がノック波形モデルに類似する度合を表わす(振動波形の形状とノック波形モデルの形状との差を表わす)相関係数Kを算出するために用いられる。図5に示すように、隣接するクランク角の強度に比べて大きく、かつそのような強度の中で最大の強度のクランク角、すなわち強度がピークになるクランク角以降のクランク角の範囲において、検出された振動波形とノック波形モデルとを比較することにより、相関係数Kが算出される。
ノック波形モデルは、ノッキングが発生した場合のエンジン100の振動波形の基準として定められる。本実施の形態において、ノック波形モデルの強度は、振動波形と比較する度に設定される。より具体的には、ノック波形モデルにおける強度の最大値が、振動波形において、隣接する強度に比べて大きい強度(強度のピーク値)と同じになるように設定される。
一方、最大値以外の強度は、エンジン回転数NEおよびエンジン100の負荷に応じて設定される。より具体的には、隣接するクランク角における強度の減衰率が、エンジン回転数NEおよびエンジン100の負荷をパラメータに有するマップに従って設定される。
たとえば、25%の減衰率で、クランク角で20度分の強度を設定する場合、図6に示すように、25%ずつ強度が減少する。なお、ノック波形モデルの強度を設定する方法はこれに限らない。
振動波形における強度とノック波形モデルにおける強度との差の絶対値(ズレ量)をクランク角ごと(5度ごと)に算出することにより、相関係数Kが算出される。なお、5度以外のクランク角ごとに振動波形における強度とノック波形モデルにおける強度との差の絶対値を算出するようにしてもよい。
振動波形における強度とノック波形モデルにおける強度とのクランク角ごとの差の絶対値をΔS(I)(Iは自然数)とおく。図7において斜線で示すように、ノック波形モデルの振動の強度を合計した値、すなわち、ノック波形モデルの面積をSとおく。相関係数Kは、下記の式1を用いて算出される。
K=(S−ΣΔS(I))/S・・・(1)
ΣΔS(I)は、ΔS(I)の総和である。なお、相関係数Kの算出方法はこれに限らない。
本実施の形態においては、相関係数Kの他、ノック強度Nが算出される。ノック強度Nは、図8において斜線で示すように、振動波形における強度(5度積算値)を合計した90度積算値lpkknkを用いて算出される。なお、90度積算値lpkknkの代わりに、振動波形における最大の強度を用いるようにしてもよい。
エンジン100にノッキングが発生していない状態におけるエンジン100の振動の強度を表わす値をBGL(Back Ground Level)と表わす。ノック強度Nは、下記の式2を用いて算出される。
N=lpkknk/BGL・・・(2)
なお、ノック強度Nの算出方法はこれに限らない。BGLは、各90度積算値lpkknkが検出された頻度(回数、確率ともいう)を表わす頻度分布において、標準偏差σと係数(たとえば「1」)との積を、中央値VMEDから減算した値として算出される。ノック強度Nを算出する際、BGLは逆対数変換される。なお、BGLの算出方法はこれに限らず、BGLをROM202に記憶しておくようにしてもよい。また、頻度分布を作成する際、90度積算値lpkknkの対数変換値が用いられる。
本実施の形態においては、振動波形の形状に基づいて算出される相関係数Kおよび振動波形の強度に基づいて算出されるノック強度Nを用いて、ノッキングが発生したか否かが1点火毎に判定される。ノッキングが発生したか否かは気筒毎に判定される。相関係数Kがしきい値K1以上であり、かつノック強度Nが判定値VJ以上であると、ノッキングが発生したと判定される。もしそうでないと、ノッキングが発生していないと判定される。
ノッキングが発生したと判定された場合、予め定められた量だけ全ての気筒における点火時期が遅角される。ノッキングが発生していないと判定された場合、予め定められた量だけ全ての気筒における点火時期が進角される。
ところで、エンジン100もしくは車両の出荷時において、ROM202に記憶される判定値VJ(出荷時における判定値VJの初期値)には、予め実験などにより定められる値が用いられる。ところが、ノックセンサ300の出力値のばらつきや劣化などにより、エンジン100で同じ振動が生じた場合であっても、検出される強度が変化し得る。この場合、判定値VJを補正し、実際に検出される強度に応じた判定値VJを用いてノッキングが発生したか否かを判定する必要がある。
そこで、本実施の形態においては、気筒毎に作成される90度積算値lpkknkの頻度分布を用いて判定値VJが補正される。
図9に示すように、各点火サイクルにおいて算出された90度積算値lpkknkの頻度分布を用いて判定値VJが補正される。頻度分布を作成する際には、90度積算値lpkknkの対数変換値が用いられる。
頻度分布においては、図9に示すように、90度積算値lpkknkの中央値VMEDおよび標準偏差σが算出される。中央値VMは、下記の式3を用いて1点火サイクル毎に算出される。
VM(i)=VM(i−1)+(lpkknk−VM(i−1))/X・・・(3)
式3においてVM(i)は今回値を示す。VM(i−1)は前回値を示す。Xは正の値である。すなわち、中央値VMは、積算値lpkknkに応じて定められる更新量(lpkknk−VM(i−1))/Xだけ更新することにより算出される。Xが小さくなることにより、中央値VMの更新量が大きくなる。
なお、式3を用いて算出される中央値VMは、複数(たとえば200点火サイクル)の積算値lpkknkに基づいて算出される中央値を表わす近似値である。したがって、式3を用いて算出される中央値VMは、実際の中央値とは異なり得る。
標準偏差σは、下記の式4を用いて1点火サイクル毎に算出される。
σ(i)=σ(i−1)+(lpkknk−σ(i−1))/Y・・・(4)
式4においてσ(i)は今回値を示す。σ(i−1)は前回値を示す。Yは正の値である。すなわち、標準偏差σは、積算値lpkknkに応じて定められる更新量(lpkknk−σ(i−1))/Yだけ更新することにより算出される。
なお、式4を用いて算出される標準偏差σは、複数(たとえば200点火サイクル)の積算値lpkknkに基づいて算出される標準偏差を表わす近似値である。したがって、式4を用いて算出される標準偏差σは、実際の標準偏差とは異なり得る。
なお、式3および式4を用いて中央値VMおよび標準偏差σを算出する代わりに、以下の算出方法を用いるようにしてもよい。
今回算出された積算値lpkknkが前回算出された中央値VMよりも大きい場合、前回算出された中央値VMに予め定められた値C1を加算した値が、今回の中央値VMとして算出される。逆に、今回算出された積算値lpkknkが前回算出された中央値VMよりも小さい場合、前回算出された中央値VMから予め定められた値C2(たとえばC2はC1と同じ値)を減算した値が、今回の中央値VMとして算出される。
今回算出された積算値lpkknkが、前回算出された中央値VMよりも小さく、かつ前回算出された中央値VMから前回算出された標準偏差σを減算した値よりも大きい場合、前回算出された標準偏差σから予め定められた値C3を2倍した値を減算した値が、今回の標準偏差σとして算出される。逆に、今回算出された積算値lpkknkが、前回算出された中央値VMよりも大きい場合、または前回算出された中央値VMから前回算出された標準偏差σを減算した値よりも小さい場合、前回算出された標準偏差σに予め定められた値C4(たとえばC4はC3と同じ値)を加算した値が、今回の標準偏差σとして算出される。中央値VMおよび標準偏差σの初期値は、予め設定された値であってもよいし、「0」であってもよい。
中央値VMEDおよび標準偏差σを用いて、ノック判定レベルVKDが算出される。図9に示すように、中央値VMEDに係数U(Uは定数で、たとえばU=3)と標準偏差σとの積を加算した値が、ノック判定レベルVKDとなる。なお、ノック判定レベルVKDの算出方法はこれに限らない。
係数Uは、実験などより得られたデータや知見から求められた係数である。U=3とした場合のノック判定レベルVKDよりも大きい90度積算値lpkknkが、実際にノッキングが発生した点火サイクルにおける90度積算値lpkknkと略一致する。なお、係数Uに「3」以外の値を用いるようにしてもよい。
ノック判定レベルVKDよりも大きい90度積算値lpkknkの割合(頻度)としてカウントされるノック占有率KCがしきい値KC1以上である場合、予め定められた補正量A1だけ小さくなるように、判定値VJが補正される。また、ノック占有率KCがしきい値KC1よりも小さい場合、予め定められた補正量A2だけ大きくなるように判定値VJが補正される。なお、本実施の形態において、ノック占有率KCは、予め定められた点火サイクル(例えば200点火サイクル)においてノッキングが発生した頻度を示す。
判定値VJは、予め定められた点火サイクル(例えば200点火サイクル)毎に補正される。また、判定値VJは気筒毎に補正される。ただし、判定値VJは、判定値VJの平均値を基準にして定められた上限値以下であって、かつ下限値以上になるように制限される。すなわち、判定値VJが上限値より大きい場合、判定値VJに上限値が設定される。判定値VJが下限値より小さい場合、判定値VJに下限値が設定される。
ところで、エンジン100に設けられた複数の気筒のうちの一部の気筒のみでノッキングが発生する場合がある。この場合、ノッキングが集中する気筒における点火時期のみを他の気筒における点火時期に比べて遅角することが好ましい。
そこで、本実施の形態においては、予め定められた回数IGN1(たとえば3回)連続して同じ気筒のみでノッキングが発生した場合、ノッキングが連続して発生した気筒における点火時期が他の気筒における点火時期に比べて遅角される。
図10を参照して、エンジンECU200の機能について説明する。なお、以下に説明する機能はソフトウェアにより実現するようにしてもよく、ハードウェアにより実現するようにしてもよい。
エンジンECU200は、判定部500と、第1遅角部501と、第2遅角部502と、減衰部504とを備える。
判定部500は、複数の気筒のうちのいずれかの気筒において予め定められた回数IGN1以上連続してノッキングが発生したか否かを判定する。なお、ノッキングが発生したか否かは、各気筒の各点火サイクル毎に順番に判定される。したがって、同じに気筒に連続してノッキングが発生する場合、4ストロークのエンジンであればクランクシャフトが2回転する間に他の気筒でノッキングが発生しなかったことになる。
第1遅角部501は、複数の気筒のうちのいずれかの気筒において予め定められた回数IGN1以上連続してノッキングが発生した場合、図11に示すように、ノッキングが連続して発生した気筒における点火時期をCA1だけ、他の気筒における点火時期に比べてさらに遅角する。なお、CA1は、たとえば3°CA(Crank Angle)である。また、図11には、一例として1番、2番、3番および4番気筒のうち、1番気筒の点火時期をCA1だけ時間T1において遅角した状態を示す。
本実施の形態においては、複数の気筒のうちのいずれかの気筒においてノッキングが発生した場合、全ての気筒における点火時期が遅角されるので、予め定められた回数IGN1以上連続してノッキングが発生した気筒における点火時期は、全ての気筒に共通の遅角量に加えてさらにCA1だけ多く遅角される。
その他、各気筒における点火時期は、実験およびシミュレーションなどにより予め定められるベース遅角量だけ他の気筒における点火時期に比べて遅角される場合がある。したがって、連続してノッキングが発生した気筒における遅角量は、全ての気筒に共通の遅角量、実験およびシミュレーションなどにより予め定められるベース遅角量および連続してノッキングが発生した場合に追加される遅角量rtdetcの和として表わされる。
なお、水温がしきい値以下であるという条件、エンジン100の運転状態がノッキングが発生し得ない状態であるという条件、基本点火時期がMBTであるという条件、プレミアムガソリン(ハイオクガソリン)仕様のエンジンにレギュラーガソリンが入れられたという条件、エンジン100がアイドル状態であるという条件、ノッキングを抑制するために要求される点火時期が、ノッキング以外(たとえば変速時のトルクダウン)の要件により要求される点火時期よりも進角側にあるという条件などが満たされた場合は、誤作動を防止するため、連続してノッキングが発生した気筒における点火時期のみの遅角を禁止するようにしてもよい。
第2遅角部502は、ノッキングが連続して発生した気筒における点火時期を他の気筒における点火時期に比べてさらに遅角した状態において、別の気筒でノッキングが予め定められた回数IGN1以上連続して発生した場合、ノッキングが連続して発生した気筒に対して追加される遅角量の合計が制限値以下になるように、連続してノッキングが発生したと新たに判定された気筒の点火時期を遅角する。
図11には、一例として、1番気筒に加えて、3番気筒における点火時期を遅角した状態を示す。図11に示すように、3番気筒でノッキングが連続して発生した場合、時間T5において3番気筒の点火時期が1番気筒を除く他の気筒における点火時期に比べて遅角される。
3番気筒における追加の遅角量rtdetc3は、制限値から1番気筒における追加の遅角量rtdetc1を減算した値(制限値−rtdetc1)である。ただし、3番気筒における追加の遅角量rtdetc3は、CA1以下に制限される。なお、3番気筒における追加の遅角量rtdetc3が、制限値から1番気筒における追加の遅角量rtdetc1を減算した値よりも小さくなるようにしてもよい。また、制限値はCA1よりも大きい値であって、たとえば4°CAである。
減衰部504は、予め定められた回数IGN1以上連続してノッキングが発生したと判定された気筒において、ノッキングが発生したと判定されなくなると、図11に示すように、遅角量をCA2だけ段階的に小さくする。より具体的には、予め定められた回数IGN2(たとえば3回)分のノッキングが発生したと判定された気筒に、予め定められた回数IGN1以上連続してノッキングが発生したと判定された気筒が含まれていないと、追加の遅角量rtdetcがCA2だけ小さくされる。予め定められた回数IGN2分のノッキングが発生したと判定された気筒に、予め定められた回数IGN1以上連続してノッキングが発生したと判定された気筒が含まれていると、追加の遅角量rtdetcが維持される。
なお、CA2はCA1よりも小さい値であって、たとえば0.1°CAである。また、図11には、一例として時間T2、T3、T4およびT5において1番気筒における追加の遅角量rtdetc1を小さくした状態を示す。
図12を参照して、エンジンECU200が実行するプログラムの制御構造について説明する。
ステップ(以下、ステップをSと略す)100にて、エンジンECU200は、ノッキングが発生したか否かを複数の気筒毎に判定する。
S110にて、エンジンECU200は、複数の気筒のうちのいずれかの気筒において予め定められた回数IGN1以上連続してノッキングが発生したか否かを判定する。
複数の気筒のうちのいずれかの気筒において予め定められた回数IGN1以上連続してノッキングが発生すると(S110にてYES)、処理はS112に移される。もしそうでないと(S110にてNO)、処理はS114に移される。S112にて、エンジンECU200は、ノッキングが連続して発生した気筒における点火時期をCA1だけ、他の気筒における点火時期に比べてさらに遅角する。
S114にて、エンジンECU200は、予め定められた回数IGN2分のノッキングが発生したと判定された気筒に、予め定められた回数IGN1以上連続してノッキングが発生したと判定された気筒が含まれているか否かを判定する。
予め定められた回数IGN2分のノッキングが発生したと判定された気筒に、予め定められた回数IGN1以上連続してノッキングが発生したと判定された気筒が含まれていると(S114にてYES)、処理はS116に移される。もしそうでないと(S114にてNO)、処理はS118に移される。
S116にて、エンジンECU200は、予め定められた回数IGN1以上連続してノッキングが発生したと判定された気筒に対して追加された遅角量rtdetcを維持する。S118にて、エンジンECU200は、予め定められた回数IGN1以上連続してノッキングが発生したと判定された気筒に対して追加された遅角量rtdetcをCA2だけ小さくする。
S120にて、エンジンECU200は、ノッキングが連続して発生した気筒における点火時期を他の気筒における点火時期に比べてさらに遅角した状態において、別の気筒でノッキングが予め定められた回数IGN1以上連続して発生したか否かを判定する。別の気筒でノッキングが予め定められた回数IGN1以上連続して発生すると(S120にてYES)、処理はS122に移される。もしそうでないと(S120にてNO)、処理はS100に戻される。
S122にて、エンジンECU200は、ノッキングが予め定められた回数IGN1以上連続して発生したと新たに判定された気筒における点火時期を、制限値から先にノッキングが予め定められた回数IGN1以上連続して発生したと判定された気筒における追加の遅角量rtdetcを減算した値だけ遅角する。
以上のような構造およびフローチャートに基づく、本実施の形態に係る点火時期制御装置の動作について説明する。
エンジン100の運転中、ノッキングが発生したか否かが複数の気筒毎に判定される(S100)。複数の気筒のうちのいずれかの気筒において予め定められた回数IGN1以上連続してノッキングが発生すると(S110にてYES)、ノッキングが連続して発生した気筒における点火時期がCA1だけ、他の気筒における点火時期に比べてさらに遅角される(S112)。
これにより、ノッキングが発生し難くすることができる。遅角量は制限値よりも小さいCA1に制限される。そのため、点火時期の遅角に起因するトルク変動を小さくすることができる。
その後、予め定められた回数IGN2分のノッキングが発生したと判定された気筒に、予め定められた回数IGN1以上連続してノッキングが発生したと判定された気筒が含まれていると(S114にてYES)、予め定められた回数IGN1以上連続してノッキングが発生したと判定された気筒に対して追加された遅角量rtdetcは維持される(S116)。
予め定められた回数IGN2分のノッキングが発生したと判定された気筒に、予め定められた回数IGN1以上連続してノッキングが発生したと判定された気筒が含まれていないと(S114にてNO)、予め定められた回数IGN1以上連続してノッキングが発生したと判定された気筒に対して追加された遅角量rtdetcがCA2だけ小さくされる(S118)。ノッキングが発生しなくなった場合には、追加の遅角量rtdetcを徐々に小さくすることができる。そのため、出力トルクを徐々に増大することができる。
ノッキングが連続して発生した気筒における点火時期を他の気筒における点火時期に比べてさらに遅角した状態において、別の気筒でノッキングが予め定められた回数IGN1以上連続して発生すると(S120にてYES)、その気筒における点火時期のみが遅角される。
ノッキングが予め定められた回数IGN1以上連続して発生したと新たに判定された気筒における点火時期は、制限値から先にノッキングが予め定められた回数IGN1以上連続して発生したと判定された気筒における追加の遅角量rtdetcを減算した値だけ遅角される(S122)。
これにより、他の気筒に比べて点火時期が追加的に遅角される気筒の燃焼行程における出力トルクの低下量を制限することができる。そのため、点火時期を遅角した後のトルク変動を小さくすることができる。また、トルク変動を許容できる範囲内でできるだけ大きく点火時期が遅角される。そのため、ノッキングの抑制とトルク変動の低減とを両立することができる。
以上のように、本実施の形態に係る点火時期制御装置によれば、ノッキングが連続して発生した気筒における点火時期がCA1だけ、他の気筒における点火時期に比べてさらに遅角される。ノッキングが連続して発生した気筒における点火時期を他の気筒における点火時期に比べてさらに遅角した状態において、別の気筒でノッキングが予め定められた回数IGN1以上連続して発生すると、その気筒における点火時期のみが遅角される。ノッキングが予め定められた回数IGN1以上連続して発生したと新たに判定された気筒における点火時期は、制限値から先にノッキングが予め定められた回数IGN1以上連続して発生したと判定された気筒における追加の遅角量rtdetcを減算した値だけ遅角される。これにより、他の気筒に比べて点火時期が追加的に遅角される気筒の燃焼行程における出力トルクの低下量を制限することができる。そのため、点火時期を遅角した後のトルク変動を小さくすることができる。
<第1参考例>
以下、第1参考例について説明する。以下に説明する第1参考例では、ノック占有率KCと目標占有率KCTとの差が最も大きい気筒における点火時期のみを他の気筒における点火時期に比べて遅角する。エンジン100の構造については前述の実施の形態と同じである。したがって、ここではそれらの詳細な説明は繰り返さない。
図13に示すように、実際のノック占有率KCが気筒毎に定められる目標占有率KCTよりも大きく、かつ実際のノック占有率KCと目標占有率KCTとの差が最も大きい気筒における点火時期のみが、他の気筒における点火時期に比べて追加的に遅角される。いずれの気筒における点火時期を他の気筒における点火時期に比べて追加的に遅角するかは、たとえば200点火サイクル毎に判定される。
ただし、ノック占有率KCと目標占有率KCTとの差の最大値Δ1と、2番目に大きい値Δ2との差がしきい値より小さい場合、2つの気筒においてノッキングが頻発していると考えられるため、1つの気筒のみに対する追加的な遅角は行なわれない。
<第2参考例>
以下、第2参考例について説明する。以下に説明する第2参考例では、判定値VJが先に述べた判定値VJの下限値よりも小さい気筒における点火時期のみを他の気筒における点火時期に比べて遅角する。エンジン100の構造については前述の実施の形態と同じである。したがって、ここではそれらの詳細な説明は繰り返さない。
図14に示すように、判定値VJが下限値よりも小さい気筒における点火時期のみが、他の気筒における点火時期に比べて追加的に遅角される。いずれの気筒における点火時期を他の気筒における点火時期に比べて追加的に遅角するかは、たとえば200点火サイクル毎に判定される。
ただし、2つ以上の気筒の判定値VJが下限値よりも小さい場合、2つ以上の気筒においてノッキングが頻発していると考えられるため、1つの気筒のみに対する追加的な遅角は行なわれない。
今回開示された実施の形態は、すべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
100 エンジン、104 インジェクタ、106 点火プラグ、110 クランクシャフト、116 吸気バルブ、118 排気バルブ、200 エンジンECU、202 ROM、300 ノックセンサ、302 水温センサ、304 タイミングロータ、306 クランクポジションセンサ、308 スロットル開度センサ、310 車速センサ、312 イグニッションスイッチ、314 エアフローメータ、320 補機バッテリ、400 A/D変換部、410 バンドパスフィルタ、420 積算部、500 判定部、501 第1遅角部、502 第2遅角部、504 減衰部。