以下、本発明に係る燃焼判定装置の実施形態について、図1乃至図19を参照して説明する。
<燃焼判定装置の構成>
先ず、本実施形態に係る燃焼判定装置が搭載される車両について、図1を参照して説明する。ここに、図1は、本実施形態に係る燃焼判定装置が搭載される車両の構成を示すブロック図である。尚、図1では、説明の便宜上、車両の詳細な構成部材については適宜省略し、直接関連のある構成部材のみを示している。
図1において、車両1は、エンジン10、第1モータ・ジェネレータ(MG1)11、第2モータ・ジェネレータ(MG2)12、遊星歯車機構を有する動力分配機構13及びトーショナルダンパ14を備えて構成されている。
エンジン10のクランクシャフト101は、トーショナルダンパ14を介して、動力分配機構13の複数の遊星ギア133のキャリアである遊星キャリア134の回転軸としてのインプットシャフト131に接続されている。また、エンジン10の排気通路103には、エンジン10の各気筒から排出される排気ガスを浄化するための触媒104が設けられている。
尚、本実施形態に係るエンジン10は、4つの気筒を有する4気筒エンジンであるが、該4気筒エンジンに限らず、例えば6気筒、8気筒、12気筒、16気筒等の各種エンジンであってよい。
動力分配機構13のサンギア132の回転軸は、第1モータ・ジェネレータ11に接続されている。動力分配機構13のリングギア135の回転軸は、第2モータ・ジェネレータ12に接続されている。動力分配機構13の動力出力ギア136は、チェーンベルト137を介して、動力伝達ギア(図示せず)に動力を伝達する。動力伝達ギアに伝達された動力は、駆動軸及びデファレンシャルギア(図示せず)を介して、車両1の駆動輪(図示せず)に伝達される。
車両1は、更に、エンジン10を統括制御するエンジンECU(Electronic Control Unit)22(以下、適宜“ENG−ECU”と称する)、第1及び第2モータ・ジェネレータに係る各種制御を行うモータ・ジェネレータECU(以下、適宜“MG−ECU”)23、並びに、ENG−ECU22及びMG−ECU23に係る各種制御を行うハイブリッドECU21(以下、適宜“HV−ECU”と称する)を備えて構成されている。
MG−ECU23は、第1モータ・ジェネレータ11を統括制御する第1モータ・ジェネレータECU24(以下、適宜“MG1−ECU”と称する)、及び第2モータ・ジェネレータ12を統括制御する第2モータ・ジェネレータECU25(以下、適宜“MG2−ECU”と称する)を備えて構成されている。
本実施形態に係る燃焼判定装置100は、クランク角センサ31、レゾルバ32及び33、HV−ECU21、ENG−ECU22並びにMG−ECU23を備えて構成されている。ここで、本実施形態に係る「クランク角センサ31」及び「ENG−ECU22」は、夫々、本発明に係る「クランク角検出手段」及び「判定手段」の一例であり、本実施形態に係る「MG−ECU23」並びに「レゾルバ32及び33」は、本発明に係る「回転角検出手段」の一例である。本実施形態では、各種電子制御用のHV−ECU21、ENG−ECU22及びMG−ECU23を、燃焼判定装置100の一部として用いている。
ここで、クランク角センサ31について、図2及び図3を参照して説明する。ここに、図2は、本実施形態に係るクランク角センサの構成を概略的に示した構成図であり、図3は、クランク角センサ信号の一例である。
図2において、クランクシャフト101には、図中の矢印方向に回転されるクランクロータ102が取り付けられている。クランクロータ102の外周には、クランク角検出用として、例えば10度CA毎の等しい角度間隔で形成された歯部102aと、2歯分連続して欠歯された欠歯部102bとが設けられている。
クランク角センサ31は、各歯部102aに対向し、該歯部102aによりクランクシャフト101の回転角度を検出するセンサ部311と、該センサ部311からの出力信号を処理する信号処理部312とを備えて構成されている。センサ部311から出力されるクランク角センサ信号は、クランクシャフト101の回転位置が予め設定された特定位置でないときには、所定のクランク角(例えば10度CA)回転する期間を1周期としたパルス信号となり、クランクシャフト101が特定位置に来たときには、クランクシャフト101が、例えば30度CA回転する期間を1周期とした欠歯信号となる。該欠歯信号は、クランクシャフト101が1回転する毎(即ち、360度CA毎)に発生する。
信号処理部312は、センサ部311からの出力信号(図3のクランク角センサ信号参照)を受信すると、クランク角センサ信号中における欠歯信号の検出動作を開始する。そして、信号処理部312は、クランク角センサ信号が欠歯信号になったことを最初に検出すると、以降、クランク角センサ信号を分周して、クランクシャフト101が30度回転する期間を1周期とした(即ち、クランクシャフト101が30度回転する毎に立ち上がる)パルス信号としての30度CA信号NE0(図1参照)を生成し出力する。
また、信号処理部312は、欠歯信号を検出してから30度CA信号NE0の所定周期期間分の判定期間に、エンジン10のカム軸の回転に応じて、カム角センサ(図示せず)から出力される気筒判別用信号(図3のカムセンサ信号参照)の立ち上がりが検出されると、判定期間の終了タイミングに基準位置信号G1を出力する。従って、該基準位置信号G1は、クランクシャフト101の回転位置が欠歯信号の発生する特定位置から所定周期分進んだ位置に来たときに立ち上がる。ENG−ECU22は、30度CA信号NE0及び基準位置信号G1等に基づいて、エンジン10の気筒の判別を行い、エンジン10を制御する。
尚、本実施形態に係る基準位置信号G1は、カムシャフトが720度回転する期間を1周期とするパルス信号(即ち、720度CA信号)である。
再び図1に戻り、本実施形態では、ENG−ECU22、MG1−ECU24及びMG2−ECU25に、クランク角センサ31から出力される30度CA信号NE0等が入力されることによって、ENG−ECU22、MG1−ECU24及びMG2−ECU25の同期性が確保されている。
<エンジンフィードバック制御>
次に、以上のように構成された燃焼判定装置100を搭載する車両1の走行中に、ENG−ECU21等が実行するエンジンフィードバック制御処理について、図4のフローチャートを参照して説明する。尚、このエンジンフィードバック制御処理は、例えば数μ(マイクロ)秒〜数十μ秒等で周期的に実行される。
先ず、ENG−ECU22、MG1−ECU24及びMG2−ECU25において、割込み処理が発生しない場合について説明する。
(割込み処理が発生しない場合)
図4において、先ず、クランク角センサ31のセンサ部311によって、エンジン10のクランクシャフト101の回転角度が検出されると共に、該検出された回転角度に基づいて、クランク角センサ信号及び欠歯信号を出力する(ステップS1)
次に、クランク角センサ31の信号処理部312は、クランク角センサ信号及び欠歯信号を受信して、30度CA信号NE0及び基準位置信号G1を生成すると共に、該生成された30度CA信号NE0及び基準位置信号G1を、ENG−ECU22、MG1−ECU24及びMG2−ECU25に送信する(ステップS2)。
次に、ENG−ECU22において、送信された30度CA信号NE0及び基準位置信号G1を時間軸上の基準として、エンジン10のトルク制御処理を含むメイン処理が実行される(ステップS5)。このENG−ECU22におけるメイン処理は、典型的には、エンジントルクの実際の値として推定される推定値と、エンジントルクの目標値との変化量をゼロに近づけるフィードバック制御を含んでいる。
上記ステップS5の処理と相前後して、MG1−ECU24において、送信された30度CA信号NE0及び基準位置信号G1を時間軸上の基準として、第1モータ・ジェネレータ11の制御処理を含むメイン処理が実行される(ステップS12)。
上記ステップS5及びS12の処理と相前後して、MG2−ECU25において、送信された30度CA信号NE0及び基準位置信号G1を時間軸上の基準として、第2モータ・ジェネレータ12の制御処理を含むメイン処理が実行される(ステップS22)。
次に、ENG−ECU22のメイン処理、MG1−ECU24のメイン処理、及びMG2−ECU25のメイン処理が夫々終了すると、リターンされ処理開始を停止して待機状態になる、即ち、所定周期によって一義的に決まる、次の処理開始時期に到達するまで、ステップS1の処理の実行を停止して待機状態になる。
(割込み処理が発生した場合)
上述したステップS1及びS2の処理の後、上述したステップS5の処理と相前後して、MG1−ECU24において、送信された30度CA信号NE0及び基準位置信号G1を時間軸上の基準として、割込み処理が実行される(ステップS10)。続いて、MG1−ECU24において、上述したメイン処理が実行される(ステップS12)。
上述したステップS1及びS2の処理の後、上述したステップS5及びS10の処理と相前後して、MG2−ECU25において、送信された30度CA信号NE0及び基準位置信号G1を時間軸上の基準として、割込み処理が実行される(ステップS20)。続いて、MG2−ECU25において、上述したメイン処理が実行される(ステップS22)。
(MG1−ECUにおける割込み処理)
次に、MG1−ECU24における割込み処理S10について、詳細に説明する。
図4において、MG1−ECU24は、30度CA信号NE0が入力されたか否かを判定する(ステップS101)。30度CA信号NE0が入力されたと判定された場合(ステップS101:Yes)MG1−ECU24は、30度CA信号NE0を契機として、レゾルバ32を介して、動力分配機構13のサンギア132の回転軸の回転角度をサンプリングする(ステップS102)。他方、30度CA信号NE0等が入力されていないと判定された場合(ステップS101:No)、MG1−ECU24は、ステップS101の処理を実行する。
上記ステップS102の処理に続いて、MG1−ECU24は、レゾルバ32を介して、サンギア132の回転軸の回転角度の補正角度をサンプリングする(ステップS103)。尚、補正角度は、典型的には、トーショナルダンパ14の捻れ角度を算出するためのマップ又は関数に基づいて、レゾルバ32において一義的に決定される。
尚、捻れ角度は、絶対角度であってもよいし、相対角度であってもよい。ここで、捻れ角度の絶対角度とは、エンジン10が無負荷運転(即ち、エンジントルクがゼロとみなせる運転)を行っているときの捻れ角度を原点として、これを基準点とした角度である。従って、絶対捻れ角度は、エンジントルクに応じて変動する変動量である。他方、捻れ角度の相対角度とは、捻れ角度の絶対角度を中心としてエンジン10の燃焼状態に応じて変動する変動量である。
次に、MG1−ECU24は、30度CA信号NE0の入力回数を示すカウンタを1だけ増加する(ステップS104)。続いて、MG1−ECU24は、基準位置信号G1が入力されたか否かを判定する(ステップS105)。
基準位置信号G1が入力されたと判定された場合(ステップS105:Yes)、MG1−ECU24は、上述の30度CA信号NE0の入力回数を示すカウンタにゼロを入力する(ステップS106)。他方、基準位置信号G1が入力されていないと判定された場合(ステップS105:No)、ステップS106の処理は省略される。
次に、MG1−ECU24は、割込み処理が実行された時刻に関するデータを記憶する(ステップS107)。
(MG1−ECUにおけるメイン処理)
次に、MG1−ECU24におけるメイン処理S12について、詳細に説明する。
図4において、MG1−ECU24は、上述した割込み処理の回数を計測する(ステップS121)。続いて、MG1−ECU24は、連続して入力される2つの30度CA信号NE0の時間間隔において、サンギア132の回転軸の回転角度が、どの程度変化したかを示す変位角度を算出する(ステップS122)。
次に、MG1−ECU24は、クランクシャフト101が30度だけ回転する場合にかかる時間、言い換えると、クランク角度が30度だけ変化する場合にかかる時間(所謂T30CA)を算出する(ステップS123)。
次に、MG1−ECU24は、上述した割込み処理における、30度CA信号NE0の入力回数を示すカウンタと、上記ステップS121乃至S123において実行されたメイン処理の識別情報との関連付けを行う(ステップS124)。続いて、MG1−ECU24は、上述した割込み処理及びメイン処理各々によって得られた各種データ群を、MG2−ECU25に送信する(ステップS125)。
(MG2−ECUにおける割込み処理)
次に、MG2−ECU25における割込み処理S20について、詳細に説明する。
図4において、MG2−ECU25は、30度CA信号NE0が入力されたか否かを判定する(ステップS201)。30度CA信号NE0が入力されたと判定された場合(ステップS201:Yes)MG2−ECU25は、30度CA信号NE0を契機として、レゾルバ33を介して、動力分配機構13のリングギア135の回転軸の回転角度をサンプリングする(ステップS202)。他方、30度CA信号NE0等が入力されていないと判定された場合(ステップS201:No)、MG2−ECU25は、ステップS201の処理を実行する。
上記ステップS202の処理に続いて、MG2−ECU25は、レゾルバ33を介して、リングギア135の回転軸の回転角度の補正角度をサンプリングする(ステップS203)。尚、補正角度は、典型的には、トーショナルダンパ14の捻れ角度を算出するためのマップ又は関数に基づいて、レゾルバ33において一義的に決定される。
次に、MG2−ECU25は、30度CA信号NE0の入力回数を示すカウンタを1だけ増加する(ステップS204)。続いて、MG2−ECU25は、基準位置信号G1が入力されたか否かを判定する(ステップS205)。
基準位置信号G1が入力されたと判定された場合(ステップS205:Yes)、MG2−ECU25は、上述の30度CA信号NE0の入力回数を示すカウンタにゼロを入力する(ステップS206)。他方、基準位置信号G1が入力されていないと判定された場合(ステップS205:No)、ステップS206の処理は省略される。
次に、MG2−ECU25は、割込み処理が実行された時刻に関するデータを記憶する(ステップS207)。
(MG2−ECUにおけるメイン処理)
次に、MG2−ECU25におけるメイン処理S22について、詳細に説明する。
図4において、MG2−ECU25は、上述した割込み処理の回数を計測する(ステップS221)。続いて、MG2−ECU25は、連続して入力される2つの30度CA信号NE0の時間間隔において、リングギア135の回転軸の回転角度が、どの程度変化したかを示す変位角度を算出する(ステップS222)。次に、MG2−ECU25は、クランクシャフト101が30度だけ回転する場合にかかる時間を算出する(ステップS223)。
次に、MG2−ECU25は、上述した割込み処理における、30度CA信号NE0の入力回数を示すカウンタと、上記ステップS221乃至S223において実行されたメイン処理の識別情報との関連付けを行う(ステップS224)。次に、MG2−ECU25は、MG1−ECU24において実行された割込み処理及びメイン処理各々によって得られた各種データ群を受信する(ステップS225)。
続いて、MG2−ECU25は、MG1−ECU24において実行された割込み処理及びメイン処理各々によって得られた各種データ群と、MG2−ECU25において実行された割込み処理及びメイン処理各々によって得られた各種データ群とを、例えばカウンタを共通の指標(所謂、インデックスキー)として一対一に対応付けると共に、MG2−ECU25の記憶装置に格納する(ステップS226)。
次に、MG2−ECU25は、一対一に対応付けられたMG1−ECU24において得られた各種データ群、及びMG2−ECU25において得られた各種データ群に基づいて、例えば、TE=Ie・dωe/dt+Tf+Kdamp・(θe−θis)という式からエンジントルクの推定値を算出する。
ここで、TEはエンジントルクであり、Ieはエンジン10の慣性モーメントであり、dωe/dtはクランクシャフト101の角速度変化であり、Tfはフリクショントルクであり、Kdampはトーショナルダンパ14のトーション部材のバネ定数であり、θeはクランクシャフト101の回転角度であり、θisはインプットシャフト131の回転角度である。尚、インプットシャフト131の回転角度θisは、サンギア132の回転軸の回転角度と、リングギア135の回転軸の回転角度とに基づいて決定することができる。
MG2−ECU25は、例えば、今回算出されたエンジントルクの推定値と、前回算出されたエンジントルクの推定値とを比較して、エンジントルクの変動値を算出する(ステップS227)。続いて、MG2−ECU25は、HV−ECU21を介して、算出されたエンジントルクの変動値を、ENG−ECU22に送信する(ステップS228)。
(ENG−ECUにおけるメイン処理)
次に、ENG−ECUにおけるメイン処理について、詳細に説明する。
図4において、ENG−ECU22は、HV−ECU21を介して、MG2−ECU25において算出されたエンジントルクの変動値に係るデータを受信する(ステップS6)。続いて、ENG−ECU22は、受信したエンジントルクの変動値に基づいて、エンジン10のフィードバック制御を実行する(ステップS7)。
<クランクシャフトの回転角度とインプットシャフトの回転角度との関係>
次に、クランクシャフト101の回転角度とインプットシャフト131の回転角度との関係について、図5乃至図12を参照して説明する。
先ず、エンジン10のうち一の気筒(例えば#1気筒)に供給される混合気の空燃比をリーン(例えば、空燃比18)にして、該一の気筒に燃焼不良が生じた場合のクランクシャフト101の回転角度とインプットシャフト131の回転角度との関係について、図5乃至図8を参照して説明する。ここに、図5は、クランクシャフトの回転角度とインプットシャフトの回転角度との関係をエンジンの負荷毎に示す概念図である。
尚、図5における実線(i)、点線(ii)、破線(iii)の順でエンジン10の負荷が大きくなる(即ち、エンジン負荷の関係は(i)<(ii)<(iii))。また、図5の星印「★」のタイミングで一の気筒が点火する。以降の図においても同様である。
図5に示すように、エンジン10の負荷が大きくなるにつれて、一の気筒に生じた燃焼不良の影響がインプットシャフト131の回転角度に現れる(即ち、インプットシャフト131の回転角度が小さくなる)時期が遅くなっていることが判る。これは、エンジン10と、動力分配機構13等を含むトランスアクスルとの間における回転系の慣性力に起因するものであることが、本願発明者の研究により判明している。
次に、車両1の速度を時速80kmから時速120kmまで変化させた場合の実験データを図6に示す。ここに、図6は、クランクシャフトの回転角度とインプットシャフトの回転角度との関係を車両の速度毎に示す実験データの一例である。尚、図6における「クランクカウンタ」は、例えばMG1−ECU24の割込み処理S10(図4参照)における「30度CA信号NE0の入力回数を示すカウンタ」等と同様の、ENG−ECU22に入力された30度CA信号NE0の入力回数を示すカウンタの値を示している。以降の図においても同様である。
図6に示すように、車両1の速度が時速80km及び時速90kmでは、クランクシャフト101の回転角度が180度から360度までの間に、インプットシャフト131の回転角度が小さくなっている。他方で、車両1の速度が時速100km乃至時速120kmでは、クランクシャフト101の回転角度が360度から720度までの間に、インプットシャフト131の回転角度が小さくなっている。
次に、一の気筒に供給される混合気の空燃比を変化させた場合の実験データを図7及び図8に示す。ここに、図7及び図8は、夫々、クランクシャフトの回転角度とインプットシャフトの回転角度との関係を空燃比毎に示す実験データの一例及び他の例である。尚、図7及び図8における凡例の「TF」は、ある空燃比におけるエンジン10のトルク変動(Torque Fluctuation)を示している。また、図7は、車両1の速度が時速80kmである場合の実験データであり、図8は、車両1の速度が時速120kmである場合の実験データである。
図7に示した実験データは、いずれもクランクシャフト101の回転角度が180度から360度までの間に、インプットシャフト131の回転角度が小さくなっていることが判る。他方、図8に示した実験データは、クランクシャフト101の回転角度が360度から720度までの間に、インプットシャフト131の回転角度が小さくなっていることが判る。
ここでは特に、インプットシャフト131の回転角度の変動の程度が空燃比(及び該空燃比に起因するトルク変動)によって異なっているので、一の気筒に燃焼不良が生じているか否かを正確に判定するためには、一の気筒に燃焼不良が生じているか否かの判定値(又は閾値)を、例えばトルク変動に応じて変更することが有効であることが判る。
次に、エンジン10の4つの気筒のうちいずれかの気筒に燃焼不良が生じた場合のクランクシャフト101の回転角度とインプットシャフト131の回転角度との関係について、図9及び図10を参照して説明する。ここに、図9は、エンジンにおいて発生されるトルクが比較的小さい場合のクランクカウンタとインプットシャフトの回転角度との関係を示す実験データの一例であり、図10は、エンジンにおいて発生されるトルクが比較的大きい場合のクランクカウンタとインプットシャフトの回転角度との関係を示す実験データの一例である。
尚、図9(a)は、例えばMG1−ECU24のメイン処理S12におけるステップS122の処理(図4参照)で算出されたサンギア132の回転軸の変位角度、及びMG2−ECU25のメイン処理S22におけるステップS222の処理(図4参照)で算出されたリングギア135の回転軸の変位角度等に基づいて算出又は推定された、クランクシャフト101が30度だけ回転した場合に回転したインプットシャフト131の回転角度を示している。図9(b)は、図9(a)に示したデータに基づいて、クランクシャフト101が180度だけ回転した場合に回転したインプットシャフト131の回転角度を示している。図9(c)は、図9(a)に示したデータに基づいて、クランクシャフト101が360度だけ回転した場合に回転したインプットシャフト131の回転角度を示している。図10(a)〜(c)も同様である。
また、図9及び図10における「#1燃焼」、「#2燃焼」、「#3燃焼」及び「#4燃焼」は、夫々、「クランクカウンタが0〜6(即ち、クランク角0度〜180度)の場合#1気筒の燃焼期間」、「クランクカウンタが18〜24(即ち、クランク角540度〜720度)の場合#2気筒の燃焼期間」、「クランクカウンタが6〜12(即ち、クランク角180度〜360度)の場合#3気筒の燃焼期間」及び「クランクカウンタが12〜18(即ち、クランク角360度〜540度)場合#4気筒の燃焼期間」を示している。ここで、各気筒は、各々の燃焼期間の開始時に点火する。以降の図においても同様である。
図9(a)に示す実験データでは、凡例に示される各条件(即ち、ランダム不良等、#1気筒燃焼不良、#2気筒燃焼不良、#3気筒燃焼不良及び#4気筒燃焼不良)の間に差異は見られるが、このまま判定することは困難である。また、図9(c)に示す実験データでは、各条件の間に顕著な違いが認められるが、例えば、#1気筒燃焼不良の場合、クランクカウンタが9の場合のインプットシャフト131の回転角度と、クランクカウンタが15の場合のインプットシャフト131の回転角度との差異は比較的小さい。
他方で、図9(b)に示す実験データでは、各気筒の燃焼期間の開始時から180度経過した(即ち、クランクカウンタが6増加した)時点から、各気筒の燃焼期間の開始時から360度経過した(即ち、クランクカウンタが12増加した)時点までの間にインプットシャフト131の回転角度が顕著に小さくなっている。
尚、図9(b)及び図9(c)に示すように、ランダム不良や全気筒に共通原因によって燃焼不良が生じている場合は、インプットシャフト131の回転角度が大きく変動することはない。
この結果、エンジン10において発生されるトルクが比較的小さい場合には、各気筒の燃焼期間の開始時から180度経過した時点から、各気筒の燃焼期間の開始時から360度経過した時点までの間におけるインプットシャフト131の回転角度の変動に基づいて、気筒に燃焼不良が生じているか否かを判定することが有効であることが判る。
図10(a)に示す実験データでは、図9(a)と同様に、各条件の間に差異は見られるが、このまま判定することは困難である。また、図10(b)に示す実験データでは、各条件の間に顕著な違いが認められるが、例えば、#1気筒燃焼不良の場合、クランクカウンタが15の場合のインプットシャフト131の回転角度と、クランクカウンタが21の場合のインプットシャフト131の回転角度との差異は比較的小さい。
他方で、図10(c)に示す実験データでは、各気筒の燃焼期間の開始時から360度経過した(即ち、クランクカウンタが18増加した)時点から、各気筒の燃焼期間の開始時から720度経過した(即ち、クランクカウンタが24増加した)時点までの間にインプットシャフト131の回転角度が顕著に小さくなっている。
この結果、エンジン10において発生されるトルクが比較的大きい場合には、各気筒の燃焼期間の開始時から360度経過した時点から、各気筒の燃焼期間の開始時から720度経過した時点までの間におけるインプットシャフト131の回転角度の変動に基づいて、気筒に燃焼不良が生じているか否かを判定することが有効であることが判る。
次に、例えばENG−ECU22に30度CA信号NE0が入力される時間間隔と、インプットシャフト131の回転角度との関係について、図11及び図12を参照して説明する。ここに、図11は、クランクシャフトの回転角度と30度CA信号NE0が入力される時間間隔との関係を示す実験データの一例であり、図12は、図11に示す関係に対応するクランクシャフトの回転角度とインプットシャフトの回転角度との関係を示す実験データの一例である。
図11及び図12に示すように、クランクシャフト101の回転角度(即ち、図中のクランク角)が120度近傍及び480度近傍において、時間間隔(図11参照)及びインプットシャフト131の回転角度(図12参照)が増加している。これは、クランクロータ102の欠歯部102bの影響により、本来のT30CAに対して誤差が発生するためであることが、本願発明者の研究により判明している。
この結果、気筒に燃焼不良が生じているか否かを判定する場合には、欠歯部102bの影響のない期間において気筒に燃焼不良が生じているか否かを判定すれば、判定精度が向上することが判る。
<燃焼不良判定>
上述した図5乃至図12の実験データ等に鑑みて、本実施形態に係る燃焼判定装置100は、エンジン10の運転状態に応じて、4つの気筒のうち一の気筒における点火上死点後クランクシャフト101が180度から360度まで回転する第1期間、又は一の気筒における点火上死点後クランクシャフト101が360度から720度まで回転する第2期間において、一の気筒に燃焼不良が生じているか否かを判定する。
ここで特に、燃焼判定装置100は、エンジン10において発生されるトルクが比較的小さい場合、第1期間に検出されたインプットシャフト131の回転角度が第1判定値より小さいことを条件に、一の気筒に燃焼不良が生じていると判定する。他方、燃焼判定装置100は、エンジン10において発生されるトルクが比較的大きい場合、第2期間に検出されたインプットシャフト131の回転角度が第2判定値より小さいことを条件に、一の気筒に燃焼不良が生じていると判定する。
(インプットシャフトの回転角度算出)
燃焼判定装置100を搭載する車両1の走行中に、ENG−ECU21等が実行するインプットシャフトの回転角度算出処理について、図13のフローチャートを参照して説明する。尚、このインプットシャフトの回転角度算出処理は、例えば数μ秒〜数十μ秒等で周期的に実行される。
図13において、MG1−ECU24は、割込み処理S10(図4参照)の後、クランクカウンタ処理を実行する(ステップS141)。続いて、MG1−ECU24は、レゾルバ32を介して、サンギア132の回転軸の回転角度を検出し、該検出された回転角度に基づいて、前回からのサンギア132の回転軸の角度変化を算出する(ステップS142)。
続いて、MG1−ECU24は、算出されたサンギア132の回転軸の角度変化に基づいて、インプットシャフト131の角度変化を算出する(ステップS143)。次に、MG1−ECU24は、算出されたインプットシャフト131の角度変化を、MG2−ECU25に送信する(ステップS144)。
図13において、MG2−ECU25は、上述したステップS10の処理と相前後して、割込み処理S20(図4参照)を実行した後、クランクカウンタ処理を実行する(ステップS241)。続いて、MG2−ECU25は、レゾルバ33を介して、リングギア135の回転軸の回転角度を検出し、該検出された回転角度に基づいて、前回からのリングギア135の回転軸の角度変化を算出する(ステップS242)。
続いて、MG2−ECU25は、算出されたリングギア135の回転軸の角度変化に基づいて、インプットシャフト131の角度変化を算出する(ステップS243)。次に、MG2−ECU25は、MG1−ECU24により送信されたインプットシャフト131の角度変化を受信する(ステップS244)。
次に、MG2−ECU25は、受信したインプットシャフト131の角度変化(即ち、サンギア132の回転軸の角度変化に基づいて算出されたインプットシャフト131の角度変化)、及び上記ステップS243の処理において算出されたインプットシャフト131の角度変化(即ち、リングギア135の回転軸の角度変化に基づいて算出されたインプットシャフト131の角度変化)の和を求めることによって、インプットシャフト131の角度変化を算出する(ステップS245)。尚、該ステップS245の処理において算出されるインプットシャフト131の角度変化は、クランクシャフト101が30度だけ回転する間に回転するインプットシャフト131の回転角度である(図9(a)及び図10(a)参照)。
次に、MG2−ECU25は、一の気筒における点火上死点後クランクシャフト101が180度から360度まで回転する第1期間において一の気筒に燃焼不良が生じているか否かを判定する(以下、適宜“第1判定”と称する)ためのインプットシャフト131の回転角度を算出する(図9(b)及び図10(b)参照)(ステップS246)。
具体的には例えば、MG2−ECU25は、#1気筒に燃焼不良が生じているか否かを判定するために、ステップS245の処理において算出されたインプットシャフト131の角度変化のうち、クランクカウンタ6〜12のインプットシャフト131の角度変化を積算する。同様に、MG2−ECU25は、#2気筒に燃焼不良が生じているか否かを判定するために、ステップS245の処理において算出されたインプットシャフト131の角度変化のうち、クランクカウンタ0〜6のインプットシャフト131の角度変化を積算する。同様に、MG2−ECU25は、#3気筒に燃焼不良が生じているか否かを判定するために、ステップS245の処理において算出されたインプットシャフト131の角度変化のうち、クランクカウンタ12〜18のインプットシャフト131の角度変化を積算する。同様に、MG2−ECU25は、#4気筒に燃焼不良が生じているか否かを判定するために、ステップS245の処理において算出されたインプットシャフト131の角度変化のうち、クランクカウンタ18〜24のインプットシャフト131の角度変化を積算する。
次に、MG2−ECU25は、一の気筒における点火上死点後クランクシャフト101が360度から720度まで回転する第2期間、又は触媒104(図1参照)を暖機するファーストアイドル時において一の気筒に燃焼不良が生じているか否かを判定する(以下、適宜“第2判定”と称する)ためのインプットシャフト131の回転角度を算出する(図9(c)及び図10(c)参照)(ステップS247)。
具体的には例えば、MG2−ECU25は、#1気筒に燃焼不良が生じているか否かを判定するために、ステップS245の処理において算出されたインプットシャフト131の角度変化のうち、クランクカウンタ12〜24のインプットシャフト131の角度変化を積算する。同様に、MG2−ECU25は、#2気筒に燃焼不良が生じているか否かを判定するために、ステップS245の処理において算出されたインプットシャフト131の角度変化のうち、クランクカウンタ6〜18のインプットシャフト131の角度変化を積算する。同様に、MG2−ECU25は、#3気筒に燃焼不良が生じているか否かを判定するために、ステップS245の処理において算出されたインプットシャフト131の角度変化のうち、クランクカウンタ18〜6のインプットシャフト131の角度変化を積算する。同様に、MG2−ECU25は、#4気筒に燃焼不良が生じているか否かを判定するために、ステップS245の処理において算出されたインプットシャフト131の角度変化のうち、クランクカウンタ0〜12のインプットシャフト131の角度変化を積算する。
次に、MG2−ECU25は、ステップS246の処理において算出された第1判定用のインプットシャフト131の回転角度、及びステップS247の処理において算出された第2判定用のインプットシャフト131の回転角度を、HV−ECU21を介して、ENG−ECU22に送信する(ステップS248)。
ENG−ECU22は、第1判定用のインプットシャフト131の回転角度及び第2判定用のインプットシャフト131の回転角度を、HV−ECU21を介して、受信する(ステップS31)。
次に、ENG−ECU22における処理、MG1−ECU24における処理、及びMG2−ECU25における処理が夫々終了すると、リターンされ処理開始を停止して待機状態になる。
(燃焼不良カウンタ操作)
燃焼判定装置100を搭載する車両1の走行中に、ENG−ECU21が実行する燃焼不良カウンタ操作処理について、図14のフローチャートを参照して説明する。尚、この燃焼不良カウンタ操作処理は、例えば数μ秒〜数十μ秒等で周期的に実行される。
図14において、先ず、ENG−ECU22は、例えば図15に示すようなトルク変動値と燃焼不良判定基準値との関係を示すマップから、第1判定用の燃焼不良判定基準値及び第2判定用の燃焼不良判定基準値を特定する。ここに、図15は、本実施形態に係るトルク変動値と燃焼不良判定基準値との関係を示すマップの一例である。このようなマップは、第1判定用及び第2判定用の各々に対応して複数存在することが望ましい。尚、ENG−ECU22は、典型的には、上述したステップS6の処理(図4参照)において受信したエンジン10のトルク変動値に基づいて、燃焼不良判定基準値を特定する。
続いて、ENG−ECU22は、180度から特定された第1判定用の燃焼不良判定基準値を減じて、第1判定値を算出すると共に、360度から特定された第2判定用の燃焼不良判定基準値を減じて、第2判定値を算出する(ステップS301)。ここで、本実施形態に係る「第1判定用の燃焼不良判定基準値」及び「第2判定用の燃焼不良判定基準値」は、夫々、本発明に係る「第1所定角」及び「第2所定角」の一例である。
次に、ENG−ECU22は、クランクカウンタが6であるか否かを判定する(ステップS302)。クランクカウンタが6であると判定された場合(ステップS302:Yes)、ENG−ECU22は、上述したステップS246の処理(図13参照)において算出されたクランクカウンタ0〜6(以下、適宜“第12区間”と称する)のインプットシャフト131の角度変化が、第1判定値より小さいか否かを判定する(ステップS303)。
第12区間のインプットシャフト131の角度変化が第1判定値より小さいと判定された場合(ステップS303:Yes)、ENG−ECU22は、第12区間カウンタの値を1だけ増加する(ステップS304)。他方、第12区間のインプットシャフト131の角度変化が第1判定値より大きいと判定された場合(ステップS303:No)、ENG−ECU22は、第12区間カウンタの値を2だけ減ずる(ステップS305)。但し、該ステップS305の処理の結果、第12区間カウンタの値がマイナスになった場合には、ENG−ECU22は、第12区間カウンタの値をゼロとする。
尚、第12区間のインプットシャフト131の角度変化が第1判定値と「等しい」場合には、どちらかの場合に含めて扱えばよい。
次に、ENG−ECU22は、上述したステップS246の処理(図13参照)において算出されたクランクカウンタ18〜6(以下、適宜“第23区間”と称する)のインプットシャフト131の角度変化が、第2判定値より小さいか否かを判定する(ステップS306)。
第23区間のインプットシャフト131の角度変化が第2判定値より小さいと判定された場合(ステップS306:Yes)、ENG−ECU22は、第23区間カウンタの値を1だけ増加する(ステップS307)。他方、第23区間のインプットシャフト131の角度変化が第2判定値より大きいと判定された場合(ステップS306:No)、ENG−ECU22は、第23区間カウンタの値を2だけ減ずる(ステップS308)。但し、該ステップS308の処理の結果、第23区間カウンタの値がマイナスになった場合には、ENG−ECU22は、第23区間カウンタの値をゼロとする。
ステップS302の処理において、クランクカウンタが6でないと判定された場合(ステップS302:No)、ENG−ECU22は、クランクカウンタが12であるか否かを判定する(ステップS309)。クランクカウンタが12であると判定された場合(ステップS309:Yes)、ENG−ECU22は、上述したステップS246の処理(図13参照)において算出されたクランクカウンタ6〜12(以下、適宜“第11区間”と称する)のインプットシャフト131の角度変化が、第1判定値より小さいか否かを判定する(ステップS310)。
第11区間のインプットシャフト131の角度変化が第1判定値より小さいと判定された場合(ステップS310:Yes)、ENG−ECU22は、第11区間カウンタの値を1だけ増加する(ステップS311)。他方、第11区間のインプットシャフト131の角度変化が第1判定値より大きいと判定された場合(ステップS310:No)、ENG−ECU22は、第11区間カウンタの値を2だけ減ずる(ステップS312)。但し、該ステップS312の処理の結果、第11区間カウンタの値がマイナスになった場合には、ENG−ECU22は、第11区間カウンタの値をゼロとする。
次に、ENG−ECU22は、上述したステップS246の処理(図13参照)において算出されたクランクカウンタ0〜12(以下、適宜“第24区間”と称する)のインプットシャフト131の角度変化が、第2判定値より小さいか否かを判定する(ステップS313)。
第24区間のインプットシャフト131の角度変化が第2判定値より小さいと判定された場合(ステップS313:Yes)、ENG−ECU22は、第24区間カウンタの値を1だけ増加する(ステップS314)。他方、第24区間のインプットシャフト131の角度変化が第2判定値より大きいと判定された場合(ステップS313:No)、ENG−ECU22は、第24区間カウンタの値を2だけ減ずる(ステップS315)。但し、該ステップS315の処理の結果、第24区間カウンタの値がマイナスになった場合には、ENG−ECU22は、第24区間カウンタの値をゼロとする。
ステップS309の処理において、クランクカウンタが12でないと判定された場合(ステップS309:No)、ENG−ECU22は、クランクカウンタが18であるか否かを判定する(ステップS316)。クランクカウンタが18であると判定された場合(ステップS316:Yes)、ENG−ECU22は、上述したステップS246の処理(図13参照)において算出されたクランクカウンタ12〜18(以下、適宜“第13区間”と称する)のインプットシャフト131の角度変化が、第1判定値より小さいか否かを判定する(ステップS317)。
第13区間のインプットシャフト131の角度変化が第1判定値より小さいと判定された場合(ステップS317:Yes)、ENG−ECU22は、第13区間カウンタの値を1だけ増加する(ステップS318)。他方、第13区間のインプットシャフト131の角度変化が第1判定値より大きいと判定された場合(ステップS317:No)、ENG−ECU22は、第13区間カウンタの値を2だけ減ずる(ステップS319)。但し、該ステップS319の処理の結果、第13区間カウンタの値がマイナスになった場合には、ENG−ECU22は、第13区間カウンタの値をゼロとする。
次に、ENG−ECU22は、上述したステップS246の処理(図13参照)において算出されたクランクカウンタ6〜18(以下、適宜“第22区間”と称する)のインプットシャフト131の角度変化が、第2判定値より小さいか否かを判定する(ステップS320)。
第22区間のインプットシャフト131の角度変化が第2判定値より小さいと判定された場合(ステップS320:Yes)、ENG−ECU22は、第22区間カウンタの値を1だけ増加する(ステップS321)。他方、第22区間のインプットシャフト131の角度変化が第2判定値より大きいと判定された場合(ステップS320:No)、ENG−ECU22は、第22区間カウンタの値を2だけ減ずる(ステップS322)。但し、該ステップS322の処理の結果、第22区間カウンタの値がマイナスになった場合には、ENG−ECU22は、第22区間カウンタの値をゼロとする。
ステップS316の処理において、クランクカウンタが18でないと判定された場合(ステップS316:No)、ENG−ECU22は、クランクカウンタが0(又は24)であるか否かを判定する(ステップS323)。クランクカウンタが0(又は24)であると判定された場合(ステップS323:Yes)、ENG−ECU22は、上述したステップS246の処理(図13参照)において算出されたクランクカウンタ18〜24(以下、適宜“第14区間”と称する)のインプットシャフト131の角度変化が、第1判定値より小さいか否かを判定する(ステップS324)。
第14区間のインプットシャフト131の角度変化が第1判定値より小さいと判定された場合(ステップS324:Yes)、ENG−ECU22は、第14区間カウンタの値を1だけ増加する(ステップS325)。他方、第14区間のインプットシャフト131の角度変化が第1判定値より大きいと判定された場合(ステップS324:No)、ENG−ECU22は、第14区間カウンタの値を2だけ減ずる(ステップS336)。但し、該ステップS326の処理の結果、第14区間カウンタの値がマイナスになった場合には、ENG−ECU22は、第14区間カウンタの値をゼロとする。
次に、ENG−ECU22は、上述したステップS246の処理(図13参照)において算出されたクランクカウンタ12〜24(以下、適宜“第21区間”と称する)のインプットシャフト131の角度変化が、第2判定値より小さいか否かを判定する(ステップS327)。
第21区間のインプットシャフト131の角度変化が第2判定値より小さいと判定された場合(ステップS327:Yes)、ENG−ECU22は、第21区間カウンタの値を1だけ増加する(ステップS328)。他方、第21区間のインプットシャフト131の角度変化が第2判定値より大きいと判定された場合(ステップS327:No)、ENG−ECU22は、第21区間カウンタの値を2だけ減ずる(ステップS329)。但し、該ステップS329の処理の結果、第21区間カウンタの値がマイナスになった場合には、ENG−ECU22は、第21区間カウンタの値をゼロとする。
ステップS323の処理において、クランクカウンタが0(又は24)でないと判定された場合(ステップS323:No)、ENG−ECU22は、一旦処理を終了する。
(燃焼不良判定)
燃焼判定装置100を搭載する車両1の走行中に、ENG−ECU21が実行する燃焼不良判定処理について、図16及び図18のフローチャートを参照して説明する。尚、この燃焼不良判定処理は、例えば数μ秒〜数十μ秒等で周期的に実行される。
図16において、先ず、ENG−ECU22は、判定期間カウンタの値を1だけ増加する(ステップS401)。続いて、ENG−ECU22は、判定期間カウンタの値が、例えばエンジン10の回転数又は時間等により定まる基準値より大きいか否かを判定する(ステップS402)。
判定期間カウンタの値が基準値より大きいと判定された場合(ステップS402:Yes)、ENG−ECU22は、例えば図17に示すような走行条件(ここでは車速)と燃焼悪化基準値との関係を示すマップに基づいて、燃焼不良判定が必要か否かを判定する(ステップS403)。ここに、図17は、本実施形態に係る走行条件と燃焼悪化基準値との関係を示すマップの一例である。他方、判定期間カウンタの値が基準値より小さいと判定された場合(ステップS402:No)、ENG−ECU22は、一旦処理を終了する。
ステップS403の処理において、燃焼不良判定が必要と判定された場合(ステップS403:Yes)、ENG−ECU22は、典型的には、上述したステップS6の処理(図4参照)において受信したエンジン10のトルク変動値に基づいて、第31判定値及び第32判定値を選択する(ステップS404)。他方、燃焼不良判定が不要と判定された場合(ステップS403:No)、ENG−ECU22は、後述するステップS416の処理を行う。
尚、燃焼不良判定が必要か否かは、上述したステップS6の処理(図4参照)において受信したエンジン10のトルク変動値が、図17に示すマップの燃焼不良領域にあるか否かを判定して、判定すればよい。また、第31判定値及び第32判定値は、典型的には、判定期間カウンタに対して、トルク変動値により誤判定しない値として、例えば実験等によって設定されている。
次に、ENG−ECU22は、クランクカウンタが6であるか否かを判定する(ステップS405)。クランクカウンタが6であると判定された場合(ステップS405:Yes)、ENG−ECU22は、#2気筒の燃料不良判定を行う(ステップS406)。他方、クランクカウンタが6でないと判定された場合(ステップS405:No)、ENG−ECU22は、クランクカウンタが12であるか否かを判定する(ステップS407)。
クランクカウンタが12であると判定された場合(ステップS407:Yes)、ENG−ECU22は、#1気筒の燃料不良判定を行う(ステップS408)。他方、クランクカウンタが12でないと判定された場合(ステップS407:No)、ENG−ECU22は、クランクカウンタが18であるか否かを判定する(ステップS409)。
クランクカウンタが18であると判定された場合(ステップS409:Yes)、ENG−ECU22は、#3気筒の燃料不良判定を行う(ステップS410)。他方、クランクカウンタが18でないと判定された場合(ステップS409:No)、ENG−ECU22は、クランクカウンタが0(又は24)であるか否かを判定する(ステップS411)。
クランクカウンタが0(又は24)であると判定された場合(ステップS411:Yes)、ENG−ECU22は、#4気筒の燃料不良判定を行う(ステップS412)。他方、クランクカウンタが0(又は24)でないと判定された場合(ステップS411:No)、ENG−ECU22は、後述するステップS416の処理を行う。
ステップS406、S408、S410及びS412の処理の後、ENG−ECU22は、特定気筒の燃焼不良が無いか否かを判定する(ステップS413)。特定気筒の燃焼不良が無いと判定された場合(ステップS413:Yes)、ENG−ECU22は、全気筒に共通の原因で燃焼不良が生じている又はランダム不良であると認定する(ステップS414)。他方、特定気筒の燃焼不良があると判定された場合(ステップS413:No)、ENG−ECU22は、特定気筒で燃焼不良が生じていると認定する(ステップS415)。
次に、ENG−ECU22は、判定期間カウンタ及び各気筒判定カウンタ(即ち、第11区間カウンタ、第12区間カウンタ、第13区間カウンタ、第14区間カウンタ、第21区間カウンタ、第22区間カウンタ、第23区間カウンタ及び第24区間カウンタ)の値をクリアして(ステップS416)、一旦処理を終了する。
次に、上述したステップS406、S408、S410及びS412における各気筒の燃焼不良判定について、図18を参照して説明する。尚、図18は、例として#2気筒の燃焼不良判定を示している。
図18において、ENG−ECU22は、第12区間カウンタの値が第31判定値より大きいか否かを判定する(ステップS4061)。第31判定値より大きいと判定された場合(ステップS4061:Yes)、ENG−ECU22は、第22区間カウンタの値が、第21区間カウンタ、第22区間カウンタ、第23区間カウンタ及び第24区間カウンタの各々の値のうち最大であるか否かを判定する(ステップS4062)。他方、第31判定値より小さいと判定された場合(ステップS4061:No)、ENG−ECU22は、後述するステップS4065の処理を行う。
ステップS4062の処理において、第22区間カウンタの値が、第21区間カウンタ、第22区間カウンタ、第23区間カウンタ及び第24区間カウンタの各々の値のうち最大であると判定された場合(ステップS4062:Yes)、ENG−ECU22は、#2気筒が燃焼不良であると認定する(ステップS4064)。他方、ステップS4062の処理において、第22区間カウンタの値が、第21区間カウンタ、第22区間カウンタ、第23区間カウンタ及び第24区間カウンタの各々の値のうち最大でないと判定された場合(ステップS4062:No)、ENG−ECU22は、第21区間カウンタ、第22区間カウンタ、第23区間カウンタ及び第24区間カウンタの各々の値が、第32判定値より小さいか否かを判定する(ステップS4063)。
ステップS4063の処理において第32判定値より小さいと判定された場合(ステップS4063:Yes)、ENG−ECU22は、#2気筒が燃焼不良であると認定する(ステップS4064)。他方、ステップS4063の処理において第32判定値より大きいと判定された場合(ステップS4063:No)、ENG−ECU22は、第22区間カウンタの値が第32判定値より大きいか否かを判定する(ステップS4065)。
ステップS4065の処理において、第32判定値より大きいと判定された場合(ステップS4065:Yes)、ENG−ECU22は、#2気筒が燃焼不良であると認定する(ステップS4066)。他方、ステップS4065の処理において、第32判定値より小さいと判定された場合(ステップS4065:No)、ENG−ECU22は、#2気筒が燃焼不良ではないと認定する(ステップS4067)。
尚、#1気筒の燃焼不良判定は、図18における第12区間カウンタを第11区間カウンタと、第22区間カウンタを第21区間カウンタと読み替えればよい。#3気筒及び#4気筒の燃焼不良判定についても、同様の読み替えをすればよい。
(燃焼不良度合いの判定)
燃焼判定装置100を搭載する車両1の走行中に、ENG−ECU21が実行する燃焼不良度合いの判定処理について、図19のフローチャートを参照して説明する。尚、この燃焼不良判定処理は、例えば数μ秒〜数十μ秒等で周期的に実行される。
図19において、先ず、ENG−ECU22は、上述の燃焼不良判定処理(図16参照)の結果に基づいて、特定気筒の燃焼不良があるか否かを判定する(ステップS501)。特定気筒の燃焼不良があると判定された場合(ステップS501:Yes)、ENG−ECU22は、第1判定により特定気筒の燃焼不良があると判定されたか否かを判定する(ステップS502)。他方、特定気筒の燃焼不良が無いと判定された場合(ステップS501:No)、ENG−ECU22は、一旦処理を終了する。
尚、第1判定により特定気筒の燃焼不良があると判定されたか否かは、例えば図18におけるステップS4064の処理により燃焼不良であると認定されたか否かを判定して、判定すればよい。
ステップS502の処理において、第1判定により特定気筒の燃焼不良があると判定されたと判定された場合(ステップS502:Yes)、ENG−ECU22は、第1判定におけるクランクシャフト101の回転角度とインプットシャフト131の回転角度との差分に基づいて、燃焼不良の度合いを判定する(ステップS503)。他方、ステップS502の処理において、第1判定により特定気筒の燃焼不良があると判定さていないと判定された場合(ステップS502:No)、ENG−ECU22は、第2判定におけるクランクシャフト101の回転角度とインプットシャフト131の回転角度との差分に基づいて、燃焼不良の度合いを判定する(ステップS504)。
次に、ENG−ECU22は、ステップS503又はS504の処理において判定された燃焼不良の度合い応じて、エンジン10を制御して(ステップS505)、一旦処理を終了する。
<変形例>
次に、本実施形態に係る燃焼判定装置における、燃焼不良度合いの判定処理の変形例について、図20のフローチャートを参照して説明する。
図20において、先ず、ENG−ECU22は、上述の燃焼不良判定処理(図16参照)の結果に基づいて、特定気筒の燃焼不良があるか否かを判定する(ステップS601)。特定気筒の燃焼不良があると判定された場合(ステップS601:Yes)、ENG−ECU22は、燃焼不良の気筒の判定時のカウンタ値を取得する(ステップS602)。他方、特定気筒の燃焼不良が無いと判定された場合(ステップS601:No)、ENG−ECU22は、一旦処理を終了する。
ステップS602の処理に続いて、ENG−ECU22は、第1判定により特定気筒の燃焼不良があると判定されたか否かを判定する(ステップS603)。第1判定により特定気筒の燃焼不良があると判定されたと判定された場合(ステップS603:Yes)、ENG−ECU22は、第1判定におけるカウンタ値に基づいて、燃焼不良の度合いを判定する(ステップS604)。他方、第1判定により特定気筒の燃焼不良があると判定さていないと判定された場合(ステップS603:No)、ENG−ECU22は、第2判定におけるカウンタ値に基づいて、燃焼不良の度合いを判定する(ステップS605)。
次に、ENG−ECU22は、ステップS604又はS605の処理において判定された燃焼不良の度合い応じて、エンジン10を制御して(ステップS606)、一旦処理を終了する。
尚、本発明は、上述した実施形態に限られるものではなく、特許請求の範囲及び明細書全体から読み取れる発明の要旨、或いは思想に反しない範囲で適宜変更可能であり、そのような変更を伴う燃焼判定装置もまた、本発明の技術的範囲に含まれるものである。