(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-11-28
(45)【発行日】2023-12-06
(54)【発明の名称】内燃機関の失火検出装置
(51)【国際特許分類】
F02D 45/00 20060101AFI20231129BHJP
F02D 41/22 20060101ALI20231129BHJP
【FI】
F02D45/00 368Z
F02D45/00 362
F02D41/22
(21)【出願番号】P 2021012555
(22)【出願日】2021-01-29
【審査請求日】2023-02-23
(73)【特許権者】
【識別番号】000003207
【氏名又は名称】トヨタ自動車株式会社
(74)【代理人】
【識別番号】100105957
【氏名又は名称】恩田 誠
(74)【代理人】
【識別番号】100068755
【氏名又は名称】恩田 博宣
(72)【発明者】
【氏名】杉本 仁己
【審査官】北村 亮
(56)【参考文献】
【文献】特開2018-197503(JP,A)
【文献】特開2011-52698(JP,A)
【文献】特開平7-119536(JP,A)
【文献】特開2009-174503(JP,A)
【文献】特開2018-127969(JP,A)
【文献】特開2008-248877(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
F02D 45/00
F02D 41/22
(57)【特許請求の範囲】
【請求項1】
複数の気筒を有した内燃機関に適用され、
前記内燃機関のクランク軸は、ねじれ剛性体に連結されており、
前記クランク軸の回転0.5次の周期で前記内燃機関の燃焼エネルギ量を周期的に変動させる変動処理と、
前記クランク軸の回転変動量を入力とし、ランダム失火判定用期間内に失火が生じた比率が所定比率以上となる場合にランダム失火が生じたと判定するランダム失火判定処理と、
クランク信号に基づき、前記回転変動量を算出する変動量算出処理と、
を実行し、
前記回転変動量は、瞬時速度変数の変化量であり、
前記瞬時速度変数は、前記クランク軸が回転する際の速度を示す変数であり、
前記変動量算出処理は、
フィルタ処理を利用して前記クランク軸の回転0.5次の周波数およびその高調波のうちの少なくとも1つの成分を選択的に用いて前記回転変動量を算出する第1処理と、
前記フィルタ処理を利用することなく前記回転変動量を算出する第2処理と、
を含み、
前記ランダム失火判定処理は、前記変動処理が実行されていないときには前記第2処理によって算出された前記回転変動量を採用し、前記変動処理が実行されているときには前記第1処理によって算出された前記回転変動量を採用する選択処理を含む内燃機関の失火検出装置。
【請求項2】
前記第1処理は、
前記クランク軸の前記瞬時速度変数であるクランク側速度変数を取得するクランク側取得処理と、
前記ねじれ剛性体のうちの前記クランク軸とは逆側における前記瞬時速度変数である後段側速度変数を取得する後段側取得処理と、
を含み、前記クランク側速度変数および前記後段側速度変数の差を入力とし、前記クランク側速度変数のうち前記ねじれ剛性体のねじれに起因した成分であるねじれ速度成分を除去したものに基づき前記回転変動量を算出する処理であって且つ、前記ねじれ速度成分の算出に前記フィルタ処理を用いる処理である請求項1記載の内燃機関の失火検出装置。
【請求項3】
前記回転変動量を入力とし、前記複数の気筒のうちの特定の気筒において連続失火判定用期間内に失火が生じた比率が規定比率以上となる場合に前記特定の気筒において連続失火が生じたと判定する連続失火判定処理を実行し、
前記連続失火判定処理は、前記第1処理によって算出された前記回転変動量を入力とする請求項1または2記載の内燃機関の失火検出装置。
【請求項4】
前記第1処理は、
前記クランク側速度変数および前記後段側速度変数の差を入力とし、物理モデルに基づき前記クランク側速度変数のうち前記ねじれ剛性体のねじれに起因した成分であるねじれ速度成分を算出するねじれ成分算出処理と、
前記ねじれ速度成分が除去された前記クランク軸の前記瞬時速度変数である判定用速度変数に基づき、前記回転変動量を算出する処理と、を含み、
前記ねじれ成分算出処理は、前記物理モデルが扱う変数に前記フィルタ処理を施す処理である請求項2記載の内燃機関の失火検出装置。
【請求項5】
前記フィルタ処理は、入力される前記変数の個数を、前記内燃機関の気筒数の倍数個とするフィルタを利用する処理を含む請求項1~3のいずれか1項に記載の内燃機関の失火検出装置。
【請求項6】
前記変動処理は、前記複数の気筒のうちの一部の気筒における燃焼制御を停止する停止処理を含む請求項1~5のいずれか1項に記載の内燃機関の失火検出装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、内燃機関の失火検出装置に関する。
【背景技術】
【0002】
たとえば下記特許文献1にはクランク軸がダンパを介して駆動輪側に機械的に連結された内燃機関に適用される失火検出装置が記載されている。この装置は、クランク軸の回転速度と、ダンパのうちの駆動輪側の回転速度である後段側速度との差を入力とする物理モデルに基づき、クランク軸の回転速度のうちの共振によるねじれ速度成分を算出する。そしてこの装置では、クランク軸の回転速度からねじれ速度成分を除去した値に基づき、失火の有無を判定する。さらにこの装置では、ねじれ速度成分の算出処理に、ハイパスフィルタを用いることにより、共振周波数よりも低い周波数成分である低周波成分を除去している。
【0003】
またたとえば下記特許文献2には、複数の気筒を有した内燃機関における連続失火と間欠失火とを検出する装置が記載されている。ここで、連続失火は、特定の気筒において連続的に失火が生じるなどの特定の気筒の失火率が規定比率以上となる失火である。これに対し、間欠失火は、複数の気筒のトータルの失火率が所定比率以上となる失火である。
【先行技術文献】
【特許文献】
【0004】
【文献】特開2008-248877号公報
【文献】特開平6-2609号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
発明者は、内燃機関の軸トルクがゼロではないときにおいて、後処理装置の再生処理を実行すべく、一部の気筒のみ燃焼制御を停止し、残りの気筒の空燃比を理論空燃比よりもリッチとして、排気中に未燃燃料および酸素を供給することを検討した。しかし、その場合、失火の判定精度が再生処理によって低下するおそれがある。
【課題を解決するための手段】
【0006】
以下、上記課題を解決するための手段およびその作用効果について記載する。
1.複数の気筒を有した内燃機関に適用され、前記内燃機関のクランク軸は、ねじれ剛性体に連結されており、前記クランク軸の回転0.5次の周期で前記内燃機関の燃焼エネルギ量を周期的に変動させる変動処理と、前記クランク軸の回転変動量を入力とし、ランダム失火判定用期間内に失火が生じた比率が所定比率以上となる場合にランダム失火が生じたと判定するランダム失火判定処理と、クランク信号に基づき、前記回転変動量を算出する変動量算出処理と、を実行し、前記回転変動量は、瞬時速度変数の変化量であり、前記瞬時速度変数は、前記クランク軸が回転する際の速度を示す変数であり、前記変動量算出処理は、フィルタ処理を利用して前記クランク軸の回転0.5次の周波数およびその高調波のうちの少なくとも1つの成分を選択的に用いて前記回転変動量を算出する第1処理と、前記フィルタ処理を利用することなく前記回転変動量を算出する第2処理と、を含み、前記ランダム失火判定処理は、前記変動処理が実行されていないときには前記第2処理によって算出された前記回転変動量を採用し、前記変動処理が実行されているときには前記第1処理によって算出された前記回転変動量を採用する選択処理を含む内燃機関の失火検出装置である。
【0007】
上記変動処理によれば、内燃機関のトルクが回転0.5次の周期で周期的に変動することから、回転0.5次の周波数またはその高調波の周波数が共振周波数と一致する場合、ねじれ剛性体のねじれが顕著となるおそれがある。そしてその場合、ねじれが回転変動量の値に顕著な影響を及ぼし、回転変動量に基づく失火の判定精度が低下するおそれがある。そこで、上記構成では、フィルタ処理を利用して回転0.5次およびその高調波のうちの少なくとも1つの成分を選択的に用いて回転変動量を算出することにより、回転変動量からねじれの影響を低減できる。
【0008】
ただし、0.5次の周波数成分およびその高調波成分の少なくとも一方を選択的に用いるためにフィルタ処理を利用する場合、それ以外の周波数のゲインについては過度に低下させられたり、また位相が進んだりするおそれがある。一方、変動処理が実行されていない場合において、ランダム失火判定期間における失火率が所定比率以上であってもたとえば1燃焼サイクル当たりの失火の回数が1回未満であるなら、失火が生じた直前におけるねじれ剛性体のねじれは無視しうる。そうした状況において、上記フィルタ処理を用いる場合、失火の判定に用いる回転変動量がフィルタ処理の影響で過度に大きくなったり小さくなったりして失火の判定精度が低下するおそれがある。そこで上記構成では、変動処理が実行されていない場合にはフィルタ処理を利用せずに回転変動量を算出する。
【0009】
これにより、変動処理の実行の有無にかかわらず失火の有無を高精度に判定できる。
2.前記第1処理は、前記クランク軸の前記瞬時速度変数であるクランク側速度変数を取得するクランク側取得処理と、前記ねじれ剛性体のうちの前記クランク軸とは逆側における前記瞬時速度変数である後段側速度変数を取得する後段側取得処理と、を含み、前記クランク側速度変数および前記後段側速度変数の差を入力とし、前記クランク側速度変数のうち前記ねじれ剛性体のねじれに起因した成分であるねじれ速度成分を除去したものに基づき前記回転変動量を算出する処理であって且つ、前記ねじれ速度成分の算出に前記フィルタ処理を用いる処理である上記1記載の内燃機関の失火検出装置である。
【0010】
上記構成では、変動処理を実行する場合、ねじれ速度成分が除去された瞬時速度変数に基づき回転変動量を算出する。そして、ねじれ速度成分の算出に、フィルタ処理を利用して回転0.5次およびその高調波のうちの少なくとも1つの成分が選択的に用いられることにより、ねじれ速度成分を高精度に算出できる。
【0011】
3.前記回転変動量を入力とし、前記複数の気筒のうちの特定の気筒において連続失火判定用期間内に失火が生じた比率が規定比率以上となる場合に前記特定の気筒において連続失火が生じたと判定する連続失火判定処理を実行し、前記連続失火判定処理は、前記第1処理によって算出された前記回転変動量を入力とする上記1または2記載の内燃機関の失火検出装置である。
【0012】
各燃焼サイクルにおいて特定の気筒で失火が生じるなど、特定の気筒における失火率が高くなる場合、内燃機関のトルクが回転0.5次の周期で周期的に変動する。そのため、回転0.5次の周波数またはその高調波の周波数が共振周波数と一致する場合、ねじれ剛性体のねじれが顕著となるおそれがある。そしてその場合、ねじれが回転変動量の値に顕著な影響を及ぼし、回転変動量に基づく失火の判定精度が低下するおそれがある。そこで、上記構成では、特定の気筒における失火率が高いか否かを判定する際には、フィルタ処理を利用して算出した回転変動量を用いる。これにより、特定の気筒における失火率が高いか否かを高精度に判定できる。
【0013】
4.前記第1処理は、前記クランク側速度変数および前記後段側速度変数の差を入力とし、物理モデルに基づき前記クランク側速度変数のうち前記ねじれ剛性体のねじれに起因した成分であるねじれ速度成分を算出するねじれ成分算出処理と、前記ねじれ速度成分が除去された前記クランク軸の前記瞬時速度変数である判定用速度変数に基づき、前記回転変動量を算出する処理と、を含み、前記ねじれ成分算出処理は、前記物理モデルが扱う変数に前記フィルタ処理を施す処理である上記2記載の内燃機関の失火検出装置である。
【0014】
上記構成では、物理モデルに基づきねじれ速度成分を瞬時速度成分から除去することにより、回転変動量からねじれの影響を除去することができる。そして、ねじれ速度成分の算出にフィルタ処理を施すことにより、回転0.5次およびその高調波の少なくとも一方の周波数帯の成分を選択的に用いつつねじれ速度成分を算出できる。
【0015】
5.前記フィルタ処理は、入力される前記変数の個数を、前記内燃機関の気筒数の倍数個とするフィルタを利用する処理を含む上記1~4のいずれか1つに記載の内燃機関の失火検出装置である。
【0016】
上記構成では、圧縮上死点の出現周波数の整数分の1の倍数の周波数成分のゲインを「1」として且つ位相特性の相違を小さくすることが可能となり、ひいては、ねじれ速度成分を高精度に算出できる。
【0017】
6.前記変動処理は、前記複数の気筒のうちの一部の気筒における燃焼制御を停止する停止処理を含む上記1~5のいずれか1つに記載の内燃機関の失火検出装置である。
上記構成では、一部の気筒の膨張行程において生成される燃焼エネルギがほぼゼロとなることから、一部の気筒の圧縮上死点近傍で燃焼エネルギ量が周期的に減少する変動処理となる。
【図面の簡単な説明】
【0018】
【
図1】一実施形態にかかる車両の駆動系および制御装置の構成を示す図。
【
図2】同実施形態にかかるGPF再生処理の手順を示す流れ図。
【
図3】同実施形態にかかる連続失火の判定に関する処理の手順を示す流れ図。
【
図4】同実施形態にかかるランダム失火の判定に関する処理の手順を示す流れ図。
【
図5】同実施形態にかかる瞬時速度変数の算出に関する処理の手順を示す流れ図。
【
図6】同実施形態にかかる瞬時速度変数の算出に関する処理の一部の詳細な手順を示す流れ図。
【
図7】同実施形態にかかる瞬時速度変数の算出に関する処理の一部の詳細な手順を示す流れ図。
【
図8】同実施形態で用いるフィルタのゲイン特性および位相特性を示す図。
【発明を実施するための形態】
【0019】
<第1の実施形態>
図1に示すように、車両VCに搭載される内燃機関10は、4つの気筒#1~#4を備える。内燃機関10の吸気通路12には、スロットルバルブ14が設けられている。吸気通路12の下流部分である吸気ポート12aには、吸気ポート12aに燃料を噴射するポート噴射弁16が設けられている。吸気通路12に吸入された空気やポート噴射弁16から噴射された燃料は、吸気バルブ18の開弁に伴って、燃焼室20に流入する。燃焼室20には、筒内噴射弁22から燃料が噴射される。また、燃焼室20内の空気と燃料との混合気は、点火プラグ24の火花放電に伴って燃焼に供される。そのときに生成される燃焼エネルギは、クランク軸26の回転エネルギに変換される。なお、クランク軸26の回転に伴って気筒#1,#3,#4,#2の順に圧縮上死点が訪れる。
【0020】
燃焼室20において燃焼に供された混合気は、排気バルブ28の開弁に伴って、排気として排気通路30に排出される。排気通路30には、酸素吸蔵能力を有した三元触媒32と、ガソリンパティキュレートフィルタ(GPF34)とが設けられている。なお、本実施形態では、GPF34として、PMを捕集するフィルタに三元触媒が担持されたものを想定している。
【0021】
クランク軸26には、歯部42が設けられたクランクロータ40が結合されている。歯部42は、クランク軸26の複数の回転角度のそれぞれを示す。クランクロータ40には、基本的には、10°CA間隔で歯部42が設けられているものの、隣接する歯部42間の間隔が30°CAとなる箇所である欠け歯部44が1箇所設けられている。これは、クランク軸26の基準となる回転角度を示すためのものである。
【0022】
クランク軸26は、ダンパ48を介して、動力分割装置を構成する遊星歯車機構50のキャリアCに機械的に連結されている。遊星歯車機構50のサンギアSには、第1モータジェネレータ52の回転軸52aが機械的に連結されている。また、遊星歯車機構50のリングギアRには、第2モータジェネレータ54の回転軸54aと変速装置60とが機械的に連結されている。変速装置60は、駆動輪62に機械的に連結されている。第1モータジェネレータ52の端子には、インバータ56によって交流電圧が印加される。また、第2モータジェネレータ54の端子には、インバータ58によって交流電圧が印加される。
【0023】
制御装置70は、内燃機関10を制御対象とし、その制御量としてのトルクや排気成分比率等を制御するために、スロットルバルブ14、ポート噴射弁16、筒内噴射弁22、および点火プラグ24等の内燃機関10の操作部を操作する。また、制御装置70は、第1モータジェネレータ52を制御対象とし、その制御量である回転速度を制御すべく、インバータ56を操作する。また、制御装置70は、第2モータジェネレータ54を制御対象とし、その制御量であるトルクを制御すべくインバータ58を操作する。また、制御装置70は、クランク軸26に対する駆動輪62の相対的は回転速度の比である変速比を制御するために変速装置60を操作する。
図1には、スロットルバルブ14、ポート噴射弁16、筒内噴射弁22、点火プラグ24、インバータ56,58、および変速装置60のそれぞれの操作信号MS1~MS7を記載している。制御装置70は、内燃機関10の制御量を制御するために、エアフローメータ80によって検出される吸入空気量Ga、クランク角センサ82の出力信号Scr、水温センサ86によって検出される水温THW、および排気圧センサ88によって検出されるGPF34に流入する排気の圧力Pexを参照する。また、制御装置70は、第1モータジェネレータ52の制御量を制御するために、第1モータジェネレータ52の回転角を検知する第1回転角センサ90の出力信号Sm1を参照する。また、制御装置70は、第2モータジェネレータ54の制御量を制御するために、第2モータジェネレータ54の回転角を検知する第2回転角センサ92の出力信号Sm2を参照する。
【0024】
制御装置70は、CPU72、ROM74、記憶装置75、および周辺回路76を備えており、それらが通信線78によって通信可能とされている。ここで、周辺回路76は、内部の動作を規定するクロック信号を生成する回路や、電源回路、リセット回路等を含む。制御装置70は、ROM74に記憶されたプログラムをCPU72が実行することにより制御量を制御する。
【0025】
特に制御装置70は、GPF34の再生処理と、特定の気筒の失火率が高くなる失火異常である連続失火の判定処理と、気筒#1~#4のトータルの失火率が所定比率以上となるランダム失火の判定処理と、を実行する。以下では、「再生処理に関する処理」、「連続失火判定に関する処理」、「ランダム失火判定に関する処理」および「失火判定のための回転変動量の算出に関する処理」の順に詳述する。
【0026】
「再生処理に関する処理」
図2に、再生処理に関する処理の手順を示す。
図2に示す処理は、ROM74に記憶されたプログラムをCPU72がたとえば所定周期で繰り返し実行することにより実現される。なお、以下では、先頭に「S」が付与された数字によって、各処理のステップ番号を表現する。
【0027】
図2に示す一連の処理において、CPU72は、まず、回転速度NE、充填効率ηおよび水温THWを取得する(S10)。回転速度NEは、CPU72により、出力信号Scrに基づき算出される。また、充填効率ηは、CPU72により、吸入空気量Gaおよび回転速度NEに基づき算出される。次にCPU72は、回転速度NE、充填効率ηおよび水温THWに基づき、堆積量DPMの更新量ΔDPMを算出する(S12)。ここで、堆積量DPMは、GPF34に捕集されているPMの量である。詳しくは、CPU72は、回転速度NE、充填効率ηおよび水温THWに基づき排気通路30に排出される排気中のPMの量を算出する。また、CPU72は、回転速度NEおよび充填効率ηに基づきGPF34の温度を算出する。そしてCPU72は、排気中のPMの量とGPF34の温度とに基づき更新量ΔDPMを算出する。なお、CPU72は、後述のS22の処理を実行する場合には、更新量ΔDPMを減少補正すればよい。
【0028】
次にCPU72は、堆積量DPMを、更新量ΔDPMに応じて更新する(S14)。次に、CPU72は、フラグFが「1」であるか否かを判定する(S16)。フラグFは、「1」である場合に、GPF34のPMを燃焼除去するための再生処理を実行していることを示し、「0」である場合にそうではないことを示す。CPU72は、「0」であると判定する場合(S16:NO)、堆積量DPMが再生実行値DPMH以上であることと、後述のS22の処理を中断しているときであることとの論理和が真であるか否かを判定する(S18)。再生実行値DPMHは、GPF34が捕集したPM量が多くなっており、PMを除去することが望まれる値に設定されている。CPU72は、論理和が真であると判定する場合(S18:YES)、以下の条件(a)および上記条件(b)の論理積が真であるか否かを判定する(S20)。この処理は、再生処理の実行が許可されるか否かを判定する処理である。
【0029】
条件(a):内燃機関10に対する要求トルクである機関要求トルクTe*が規定値Teth以上である旨の条件である。
条件(b):回転速度の指令値NE*が規定速度NEth以上である旨の条件である。
【0030】
CPU72は、論理積が真であると判定する場合(S20:YES)、再生処理を実行し、フラグFに「1」を代入する(S22)。すなわち、CPU72は、気筒#1のポート噴射弁16および筒内噴射弁22からの燃料の噴射を停止する。また、CPU72は、気筒#2~#4の燃焼室20内の混合気の空燃比を理論空燃比よりもリッチとすべくポート噴射弁16および筒内噴射弁22を操作する。この処理は、排気通路30に酸素と未燃燃料とを排出し、GPF34の温度を上昇させてGPF34が捕集したPMを燃焼除去するための処理である。すなわち、排気通路30に酸素と未燃燃料を排出することにより、三元触媒32等において未燃燃料を燃焼させ排気の温度を上昇させ、ひいてはGPF34の温度を上昇させることができる。また、GPF34に酸素を供給することによって、GPF34が捕集したPMを燃焼除去することができる。
【0031】
一方、CPU72は、フラグFが「1」であると判定する場合(S16:YES)、堆積量DPMが停止用閾値DPML以下であるか否かを判定する(S24)。停止用閾値DPMLは、GPF34に捕集されているPMの量が十分に小さくなり、再生処理を停止させてもよい値に設定されている。CPU72は、停止用閾値DPMLを上回ると判定する場合(S24:NO)、S20の処理に移行する。一方、CPU72は、停止用閾値DPML以下と判定する場合(S24:YES)と、S20の処理において否定判定される場合とには、再生処理を停止し、フラグFに「0」を代入する(S26)。
【0032】
なお、CPU72は、S22,S26の処理を完了する場合と、S18の処理において否定判定する場合と、には、
図2に示す一連の処理を一旦終了する。
「連続失火判定に関する処理」
図3に、連続失火の判定に関する処理の手順を示す。なお、
図3においては、気筒#3を例にとって、気筒#3における失火率が高まる異常の有無の判定に関する処理を例示している。
図3に示す処理は、ROM74に記憶されたプログラムをCPU72がたとえば所定周期で繰り返し実行することにより実現される。
【0033】
図3に示す一連の処理において、CPU72は、まず、クランク軸26が30°CA回転するのに要する時間T30を取得する(S30)。次にCPU72は、「m=0,1,2,3,…」として、時間T30[m+1]に時間T30[m]を代入し、時間T30[0]にS30の処理で新たに取得した時間T30を代入する(S32)。この処理は、時間T30の後のカッコ内の変数を、過去のものほど数字が大きくなるようにするための処理である。この処理によって、カッコ内の変数の値が1つ大きい場合、30°CAだけ前の時間T30となる。
【0034】
次にCPU72は、現在のクランク軸26の回転角度が、気筒#3の圧縮上死点を基準としてATDC120°CAであるか否かを判定する(S34)。CPU72は、ATDC120°CAであると判定する場合(S34:YES)、回転変動量ΔT30[m+1]に回転変動量ΔT30[m]を代入し、時間T30[0]から時間T30[4]を減算した値を、回転変動量ΔT30[0]に代入する(S36)。回転変動量ΔT30は、失火の有無の判定対象となる気筒において失火が生じていない場合に負の値となり、失火が生じている場合に正の値となる変数である。ここで、失火の有無の対象となる気筒とは、S34の処理によって、圧縮上死点を120°過ぎたと判定された気筒、すなわち気筒#3である。
【0035】
次にCPU72は、回転変動量ΔT30[0]から回転変動量ΔT30「2」を減算した値が閾値ΔTth以上であるか否かを判定する(S38)。
この処理は、判定対象となる気筒において失火が生じたか否かを判定する処理である。すなわち、失火が生じていない場合、回転変動量ΔT30[0]および回転変動量ΔT30[2]は、同程度の値となることから、それらの差は、絶対値が小さい値となる。これに対し、判定対象となる気筒で失火が生じている場合、回転変動量ΔT30[0]が正の値となる。一方、判定対象となる気筒の360°CA前に圧縮上死点となった気筒で失火が生じていない場合には、回転変動量ΔT30[2]が負の値となる。したがって、判定対象となる気筒で失火が生じている場合、回転変動量ΔT30[0]から回転変動量ΔT30「2」を減算した値は、正で絶対値が大きい値となる。
【0036】
CPU72は、閾値ΔTth以上であると判定する場合(S38:YES)、気筒#3において失火が生じた旨の仮判定をする(S40)。そして、CPU72は、気筒#3における仮判定の回数をカウントするカウンタC[3]をインクリメントする(S42)。
【0037】
CPU72は、S42の処理を完了する場合と、S38の処理において否定判定する場合とには、連続失火判定期間が経過したか否かを判定する(S44)。ここで、連続失火判定期間の始点は、S38の処理を初めて実行したタイミングと、後述のS52の処理を最後に実行したタイミングとのうちの遅い方のタイミングとする。CPU72は、連続失火判定期間が経過したと判定する場合(S44:YES)、カウンタC[3]が閾値Cth以上であるか否かを判定する(S46)。閾値Cthは、連続失火判定期間内に見過ごすことができない失火率で失火が生じた場合の失火率の下限値に応じて設定されている。すなわち、連続失火判定期間の長さと、閾値Cthとは、上記下限値に応じて予め定められている。
【0038】
CPU72は、閾値Cth以上であると判定する場合(S46:YES)、連続失火が生じた旨、本判定し(S48)、
図1に示した警告灯100を操作することによって、ユーザに、気筒#3における失火率が見過ごすことができないレベルで生じた旨を報知する報知処理を実行する(S50)。一方、CPU72は、カウンタC[3]が閾値Cth未満であると判定する場合(S46:NO)、カウンタC[3]を初期化する(S52)。
【0039】
なお、CPU72は、S50,S52の処理が完了する場合と、S34,S44の処理において否定判定する場合と、には、
図3に示した一連の処理を一旦終了する。
「ランダム失火判定に関する処理」
図4に、ランダム失火の判定に関する処理の手順を示す。
図4に示す処理は、ROM74に記憶されたプログラムをCPU72がたとえば所定周期で繰り返し実行することにより実現される。なお、
図4において、
図3に示した処理に対応する処理については、便宜上同一のステップ番号を付与してその説明を省略する。
【0040】
図4に示す一連の処理において、CPU72は、S30,S32の処理を完了する場合、気筒#1,#2,#3,#4のいずれかの圧縮上死点を基準としてATDC120°CAであるか否かを判定する(S34a)。CPU72は、ATDC120°CAであると判定する場合(S34a:YES)、フラグFが「1」であって且つ気筒#1のATDC120°CAであるか否かを判定する(S35)。そしてCPU72は、フラグFが「0」であるか、フラグFが「1」であっても気筒#2、#3,#4のいずれかのATDC120°CAである場合(S35:NO)には、S36の処理を実行する。
【0041】
そしてCPU72は、回転変動量ΔT30[0]から回転変動量ΔT30[2]を減算した値が閾値ΔTth以上であるか否かを判定する(S38a)。そして、CPU72は、閾値ΔTth以上であると判定する場合(S38a:YES)、失火の判定対象となる気筒において失火が生じた旨の仮判定をする(S40)。ここでの判定対象となる気筒は、S34aの処理において肯定判定された時点から120°進角側に圧縮上死点を有する気筒である。そして、CPU72は、S40の処理を完了する場合、S40の処理の実行回数をカウントするカウンタCrをインクリメントする(S42a)。
【0042】
CPU72は、S42aの処理を完了する場合や、S38aの処理において否定判定する場合には、ランダム失火判定期間が経過したか否かを判定する(S44a)。ランダム失火判定期間の始点は、S38aの処理を最初に行ったタイミングと、後述のS52aの処理を最後に行ったタイミングとのうちのいずれか遅い方のタイミングである。CPU72は、ランダム失火判定期間が経過したと判定する場合(S44a:YES)、カウンタCrが閾値Crth以上であるか否かを判定する(S46a)。閾値Crthとランダム失火判定期間の長さとは、ランダム失火判定期間内における失火率が許容範囲を超える下限値に応じて設定されている。なお、ランダム失火判定期間の長さと、閾値Crthとのいずれか少なくとも一方は、ランダム失火判定期間内にS35の処理において肯定判定される回数に応じて可変設定されることが望ましい。具体的には、たとえばランダム失火判定期間内にS35の処理において肯定判定される回数が多い場合に少ない場合よりも閾値Crthを小さい値に設定すればよい。またたとえば、S35の処理において肯定判定される回数が多い場合に少ない場合よりも、ランダム失火判定期間の長さを長くしてもよい。こうした設定によれば、S46aの処理において肯定判定される際の失火率の変動を抑制できる。
【0043】
CPU72は、閾値Crth以上であると判定する場合(S46a:YES)、ランダム失火が生じていると判定し(S48a)、S50の処理を実行する。これに対しCPU72は、閾値Crth未満であると判定する場合(S46a:NO)、カウンタCrを初期化する(S52a)。
【0044】
なお、CPU72は、S50,S52aの処理を完了する場合と、S34a,S44aの処理において否定判定する場合と、S35の処理において肯定判定する場合と、には、
図4に示す一連の処理を一旦終了する。
【0045】
「失火判定のための回転変動量の算出に関する処理」
図5に、ダンパ48が30°CA回転するのに要する時間T30を算出する処理の手順を示す。
図5に示す処理は、ROM74に記憶されたプログラムをCPU72が、クランク軸26が30°CA回転する周期で繰り返し実行することにより実現される。具体的には、たとえばクランク角センサ82が所定の歯部42を検知することをトリガとして繰り返し実行される。なお、所定の歯部42は、30°CA毎に定義されているものとする。
【0046】
図5に示す一連の処理において、CPU72は、まず直近の30°CAの回転角度領域をクランク軸26が回転するのに要した時間et3txdhを算出する(S60)。この処理は、
図1に示すように、クランク角センサ82が30°CAだけ離間した2つの歯部42のいずれか一方を検知してから他方を検知するまでに要した時間の計時処理となる。次にCPU72は、30°CAに対応する角度定数CRを時間et3txdhによって除算することによって、直近の30°CAの回転角度領域におけるクランク軸26の回転速度であるクランク側速度ωeを算出する(S62)。
【0047】
次にCPU72は、ダンパ48のうちのキャリアC側の回転速度である後段側速度ωoutを算出する(S64)。CPU72は、第1モータジェネレータ52の回転軸52aの微小回転角度領域における回転速度ωm1と、第2モータジェネレータ54の回転軸54aの微小回転角度領域における回転速度ωm2と、遊星歯車機構50のギア比とに基づき、後段側速度ωoutを算出する。ここで、微小回転角度領域は、1回転よりも小さい回転角度領域とする。また、回転速度ωm1は、第1回転角センサ90の出力信号Sm1に基づきCPU72によって算出される。また、回転速度ωm2は、第2回転角センサ92の出力信号Sm2に基づきCPU72によって算出される。
【0048】
次にCPU72は、クランク側速度ωeから後段側速度ωoutを減算した値を差分速度ωdampに代入する(S66)。次にCPU72は、差分速度ωdampの積算処理に基づきダンパ48のクランク軸26側とキャリアC側とのねじれ角θdampを算出する(S68)。そして、CPU72は、ねじれ角θdampに弾性係数Kを乗算した値を、ねじれトルクTdampに代入する(S70)。ねじれトルクTdampは、ねじれ角θdampの絶対値がゼロよりも大きくなることによって発生するトルクである。
【0049】
そしてCPU72は、ねじれトルクTdampの積算処理に基づき、ダンパ48のねじれによって発生するトルクがクランク軸26の回転速度に及ぼす影響分を定量化した速度成分であるねじれ速度成分ωrを算出する(S72)。ここでは、ねじれトルクTdampに比例したクランク軸26の角加速度成分の積算処理によってねじれ速度成分ωrを算出する物理モデルを用いる。
【0050】
次にCPU72は、連続失火判定のための時間T30が求められているか否かを判定する(S74)。そして、CPU72は、連続失火判定のための時間T30が求められていると判定する場合(S74:YES)、クランク側速度ωeからねじれ速度成分ωrを減算した値によって角度定数CRを除算した値を、
図3のS30の処理のための時間T30に代入する(S76)。一方、CPU72は、ランダム失火判定のための時間T30が求められていると判定する場合(S74:NO)、フラグFが「1」であるか否かを判定する(S78)。そしてCPU72は、フラグFが「0」であると判定する場合(S78:NO)、S60の処理によって算出した時間et3txdhを
図4のS30の処理のための時間T30に代入する(S80)。
【0051】
これに対し、CPU72は、フラグFが「1」であると判定する場合(S78:YES)、クランク側速度ωeからねじれ速度成分ωrを減算した値によって角度定数CRを除算した値を、
図4のS30の処理のための時間T30に代入する(S76)。
【0052】
なお、CPU72は、S76,S80の処理を完了する場合には、
図5に示した一連の処理を一旦終了する。
図6に、S68の処理の詳細な手順を示す。
【0053】
図6に示す一連の処理において、CPU72は、まず直近に算出された差分速度ωdampと、時間et3txdhとを取得する(S90)。次にCPU72は、直近の24個の差分速度ωdamp[0]~ωdamp[23]の単純移動平均処理値を平均差分速度ωdamp720[0]に代入する(S92)。平均差分速度ωdamp720は、差分速度ωdampの高周波成分を除去した変数である。換言すれば、差分速度ωdampにローパスフィルタ処理が施された変数である。なお、差分速度ωdamp[i]の変数iは、値が大きいほどより過去の値を示す。
【0054】
次にCPU72は、差分速度ωdampの積算処理によって、ねじれ角θdampの原型となるねじれ角θdampbを算出する(S94)。本実施形態では、積算処理として、台形近似を例示する。すなわち、本実施形態にかかる積分要素は、今回のねじれ角θdampb[0]を算出すべく前回のねじれ角θdampb[1]に加算する変数を、今回の差分速度ωdamp[0]に時間et3txdhを乗算した値とする代わりに、差分速度ωdamp[0],ωdamp[1]の和と時間et3txdhとの積の「1/2」相当の量とする。詳しくは、差分速度ωdamp[0],ωdamp[1]のそれぞれから低周波成分を除去した値同士の和と時間et3txdhとの積の「1/2」とする。ここで、差分速度ωdamp[0]から低周波成分を除去した値は、「ωdamp[0]-ωdamp720[0]」であり、差分速度ωdamp[1]から低周波成分を除去した値は、「ωdamp[1]-ωdamp720[1]」である。ここで、低周波成分とは、1燃焼サイクルよりも大きい周期を有する成分のことである。
【0055】
次にCPU72は、直近の24個のねじれ角θdampb[0]~θdampb[23]の単純移動平均処理値を平均ねじれ角θdamp720に代入する(S96)。平均ねじれ角θdamp720は、ねじれ角θdampbの高周波成分を除去した変数である。換言すれば、ねじれ角θdampbにローパスフィルタ処理が施された変数である。なお、ねじれ角θdampb[i]の変数iは、値が大きいほどより過去の値を示す。
【0056】
次にCPU72は、ねじれ角θdampb[0]の絶対値が閾値θth以上であることと、平均ねじれ角θdamp720の絶対値が閾値θth以上であることとの論理和が真であるか否かを判定する(S98)。この処理は、平均差分速度ωdamp720を用いても除去しきれなかった低周波成分がねじれ角θdampbに蓄積しているか否かと、平均差分速度ωdamp720自体に低周波成分が蓄積しているか否かと、を判定する処理である。そしてCPU72は、論理和が真であると判定する場合(S98:YES)、ねじれ角θdampb[0]から平均ねじれ角θdamp720を減算した値をねじれ角θdampb[0]に代入し、平均ねじれ角θdamp720および、ねじれ角θdampb[1],θdampb[2],…を初期化する(S100)。
【0057】
CPU72は、S100の処理を完了する場合と、S98の処理において否定判定する場合と、には、ねじれ角θdampb[0]から平均ねじれ角θdamp720を減算した値をねじれ角θdampa[0]に代入する(S102)。この処理は、ねじれ角θdampb[0]から低周波成分を除去する処理である。ここで、低周波成分とは、1燃焼サイクルよりも大きい周期を有する成分のことである。
【0058】
次にCPU72は、ねじれ角θdampaにコウムフィルタ処理を施すことによって、ねじれ角θdampを算出する(S104)。本実施形態では、コウムフィルタとして、フィードフォワード型のフィルタを採用する。詳しくは、今回のねじれ角θdampa[0]と1燃焼サイクル前のねじれ角θdampa[24]との加重移動平均処理をするフィルタを採用する。すなわち、CPU72は、今回のねじれ角θdampa[0]に係数βを乗算した値と、1燃焼サイクル前のねじれ角θdampa[24]に係数αを乗算した値との和を、ねじれ角θdampとする。ここで、「α+β=1」である。
【0059】
なおCPU72は、S104の処理を完了する場合、
図5のS68の処理を完了する。
図7に、
図5のS72の処理の詳細な手順を示す。
図7に示すように、CPU72は、まず、S70の処理によって算出された最新のねじれトルクTdamp[0]と、時間et3txdhとを取得する(S110)。次にCPU72は、直近の24個のねじれトルクTdamp[0]~Tdamp[23]の単純移動平均処理値を、平均ねじれトルクTdamp720[0]に代入する(S112)。平均ねじれトルクTdamp720は、ねじれトルクTdampの高周波成分を除去した変数である。換言すれば、ねじれトルクTdampにローパスフィルタ処理が施された変数である。なお、ねじれトルクTdamp[i]の変数iは、値が大きいほどより過去の値を示す。
【0060】
次にCPU72は、ねじれトルクTdampから慣性係数Jを除算した値の積算処理によって、ねじれ速度成分ωrの原型となるねじれ速度成分ωrbを算出する(S114)。本実施形態では、積算処理として、台形近似を例示する。すなわち、本実施形態にかかる積分要素は、今回のねじれ速度成分ωrb[0]を算出すべく前回のねじれ速度成分ωrb[1]に加算する変数を、ねじれトルクTdamp[0],Tdamp[1]から慣性係数Jを除算した値同士の和と時間et3txdhとの積の「1/2」相当の量とする。詳しくは、ねじれトルクTdamp[0],Tdamp[1]のそれぞれから低周波成分を除去した値同士の和と時間et3txdhとの積の「1/2」とする。ここで、ねじれトルクTdamp[0]から低周波成分を除去した値は、「Tdamp[0]-Tdamp720[0]」であり、ねじれトルクTdamp[1]から低周波成分を除去した値は、「Tdamp[1]-Tdamp720[1]」である。ここで、低周波成分とは、1燃焼サイクルよりも大きい周期を有する成分のことである。
【0061】
次にCPU72は、直近の24個のねじれ速度成分ωrb[0]~ωrb[23]の単純移動平均処理値を平均ねじれ速度成分ωr720に代入する(S116)。平均ねじれ速度成分ωr720は、ねじれ速度成分ωrbの高周波成分を除去した変数である。換言すれば、ねじれ速度成分ωrbにローパスフィルタ処理が施された変数である。なお、ねじれ速度成分ωrb[i]の変数iは、値が大きいほどより過去の値を示す。
【0062】
次にCPU72は、ねじれ速度成分ωrb[0]の絶対値がωth以上であることと、平均ねじれ速度成分ωr720の絶対値が閾値ωth以上であることとの論理和が真であるか否かを判定する(S118)。この処理は、平均ねじれ速度成分ωr720を用いても除去しきれなかった低周波成分がねじれ速度成分ωrbに蓄積しているか否かと、平均ねじれ速度成分ωr720自体に低周波成分が蓄積しているか否かと、を判定する処理である。そしてCPU72は、論理和が真であると判定する場合(S118:YES)、ねじれ速度成分ωrb[0]から平均ねじれ速度成分ωr720を減算した値をねじれ速度成分ωrb[0]に代入し、平均ねじれ速度成分ωr720および、ねじれ速度成分ωrb[1],ωrb[2],…を初期化する(S120)。
【0063】
CPU72は、S120の処理を完了する場合や、S118の処理において否定判定する場合には、ねじれ速度成分ωrb[0]から平均ねじれ速度成分ωr720を減算した値をねじれ速度成分ωra[0]に代入する(S122)。この処理は、ねじれ速度成分ωrb[0]から低周波成分を除去する処理である。ここで、低周波成分とは、1燃焼サイクルよりも大きい周期を有する成分のことである。
【0064】
次にCPU72は、ねじれ速度成分ωraにコウムフィルタ処理を施すことによって、ねじれ速度成分ωrを算出する(S124)。本実施形態では、コウムフィルタとして、フィードフォワード型のフィルタを採用する。詳しくは、今回のねじれ速度成分ωra[0]と1燃焼サイクル前のねじれ速度成分ωra[24]との加重移動平均処理をするフィルタを採用する。すなわち、CPU72は、今回のねじれ速度成分ωra[0]に係数βを乗算した値と、1燃焼サイクル前のねじれ速度成分ωra[24]に係数αを乗算した値との和を、ねじれ速度成分ωrとする。ここで、「α+β=1」である。
【0065】
なお、CPU72は、S124の処理を完了する場合、
図5のS72の処理を完了する。
図8に、本実施形態にかかるフィルタのゲイン特性および位相特性を示す。なお、
図8においては、説明の便宜上、模式的に、回転0.5次が10Hz、回転1次が20Hzのときに共振周波数と一致するとしている。
【0066】
図8に示す曲線fcは、S92,S96,S112,S116の処理において用いるローパスフィルタと上記積分要素とを組み合わせた特性を示す。
図8に示すように、上記積分要素とローパスフィルタとを組み合わせることによって、回転0.5次の整数倍におけるゲインを「1」、位相を「0」にそろえることができる。また、
図8に示す曲線fdは、S104,S124の処理において用いたコウムフィルタを加えた特性を示す。
図8に示すように、コウムフィルタを用いることにより、回転0.5次よりも低周波のゲインを低下させることができる。これは、コウムフィルタとして、回転0.5次の倍数成分を抽出するフィルタを用いたためである。
【0067】
ここで、本実施形態の作用および効果について説明する。
CPU72は、GPF34が捕集したPMの量が多くなると、再生処理を実行する。すなわち、CPU72は、気筒#1の燃焼制御を停止する停止処理と、気筒#2~#4の混合気の空燃比をリッチとするリッチ燃焼処理とを実行する。これにより、再生処理時には、180°CA周期で燃焼エネルギが生じるものの、720°CAに一度、燃焼エネルギがゼロとなる。すなわち、720°CAに一度、トルク抜けが生じる。これにより、クランク軸26の回転に伴って、回転0.5次およびその高調波の周波数成分の強度が大きくなる。そのため、回転0.5次またはその高調波の周波数が駆動系の共振周波数と一致する場合、ダンパ48が大きくねじれ、クランク軸26の回転挙動が、共振が生じていないときとは顕著に異なるものとなる。そしてその場合、30°CA離間した歯部42の検出タイミング同士の差である時間et3txdhを直接用いて算出した回転変動量ΔT30によっては、失火が生じた気筒を特定することが困難となる。
【0068】
そこで本実施形態では、再生処理の実行時には、ランダム失火の判定処理に、クランク側速度ωeからねじれ速度成分ωrを減算した値によって角度定数CRを除算した値である時間T30を用いる。ここで、CPU72は、ねじれ速度成分ωrの算出において、低周波成分を除去するために、内燃機関10のクランク軸26の回転周波数が回転0.5次の周波数の整数倍となるときのゲインが「1」となって且つ位相がそろっているフィルタを用いる。これにより、回転0.5次の周波数の整数倍の周波数が共振周波数となるときに、共振周波数成分を選択的に用いたねじれ速度成分ωrを算出できる。そして、ねじれ速度成分を除去することにより、回転変動量ΔT30を、ダンパ48のねじれが生じていないときと同等の量とすることができる。そのため、ランダム失火の有無を精度良く判定できる。
【0069】
ただし、上記フィルタは、回転0.5次の周波数の整数倍となるときのゲインが「1」となって且つ位相がそろっているものの、それ以外の周波数帯では、ゲインが「1」からずれ、また位相が進んだり遅れたりする。ここで、1燃焼サイクル内の失火の回数が1回未満であって且つ再生処理が実行されていない場合には、ダンパ48のねじれも無視できる量となる。そのため、失火が生じる前には、S66の処理において算出される差分速度ωdampがゼロとなる。こうした状況において失火が生じる場合、失火によってダンパ48にねじれが生じ、差分速度ωdampの大きさが大きくなる。その場合、ねじれの速度成分ωrの算出に用いるフィルタの特性から、回転0.5次およびその高調波以外の周波数成分の位相が進むことなどに起因して、失火が生じたときの回転変動量ΔT30を算出するために用いるねじれ速度成分ωrがゼロよりも大きくなる。これにより、回転変動量ΔT30にフィルタの特性に起因したノイズが重畳し、ランダム失火の判定精度を低下させる。
【0070】
そこで本実施形態では、再生処理が実行されていない場合、30°CA離間した歯部42の検出タイミング同士の差である時間et3txdhを直接用いて算出した回転変動量ΔT30によってランダム失火の有無を判定する。
【0071】
これにより、再生処理の実行の有無にかかわらず、ランダム失火の仮判定の精度を高めることができる。
以上説明した本実施形態によれば、さらに以下に記載する作用および効果が得られる。
【0072】
(1)CPU72は、連続失火の判定処理に、クランク側速度ωeからねじれ速度成分ωrを減算した値によって角度定数CRを除算した値である時間T30を用いた。これにより、時間et3txdhを用いる場合と比較して、連続失火の仮判定の精度を高めることができる。
【0073】
(2)ねじれ速度成分ωrの算出において、低周波成分を除去するために、回転0.5次の周波数の整数倍となるときのゲインが「1」となって且つ位相がそろっているフィルタを用いた。これにより、互いに異なる複数の周波数が駆動系の共振周波数と一致する場合であっても、ねじれ速度成分ωrを算出する共通のフィルタで対処できる。これは、変速装置60を備える場合に特に有効である。すなわち、その場合、たとえば、変速装置60の変速比が4速であるときには回転0.5次の周波数が駆動系の共振周波数に一致し、1速であるときには回転1次の周波数が共振周波数と一致するなどの現象が生じうる。その場合、ねじれ速度成分ωrの算出に用いるフィルタにおいて回転0.5次および回転1次のゲインを極力大きくして且つ一定値とするのみならず、それらにおいて位相特性をそろえる必要がある。これは、たとえゲイン特性を同等としたところで、位相特性がそろわない場合には、変速比が4速であるか1速であるかに応じてねじれ速度成分ωrの算出に用いるロジックを変更する必要が生じるためである。
【0074】
(3)S92,S96,S112,S116の処理において用いるローパスフィルタを、入力される変数の個数が、内燃機関10の気筒数の倍数個であるフィルタとした。これにより、圧縮上死点の出現周波数の整数分の1の倍数の周波数成分のゲインを「1」として且つ位相特性の相違を小さくすることが可能となる。
【0075】
(4)S92,S96,S112,S116の処理において用いるローパスフィルタを、1燃焼サイクルにおける変数の値の単純移動平均処理値を出力するフィルタとした。これにより、回転0.5次の倍数の周波数成分のゲインを「1」として且つ位相特性の相違を小さくするうえで高い性能を発揮できる。
【0076】
(5)ねじれ角θdampb[0]の絶対値や平均ねじれ角θdamp720の絶対値が閾値θthを超える場合、ねじれ角θdampb[1],θdampb[2],…を初期化した。これにより、ローパスフィルタ処理によって低周波成分を完全には除去できないことに起因してねじれ角θdampbの絶対値がある程度大きい値となったとしても、これを解消できる。
【0077】
(6)ねじれ速度成分ωrb[0]の絶対値や平均ねじれ速度成分ωr720の絶対値が閾値ωthを超える場合、ねじれ速度成分ωrb[1],ωrb[2],…を初期化した。これにより、ローパスフィルタ処理によって低周波成分を完全には除去できないことに起因してねじれ速度成分ωrbの絶対値がある程度大きい値となったとしても、これを解消できる。
【0078】
<対応関係>
上記実施形態における事項と、上記「課題を解決するための手段」の欄に記載した事項との対応関係は、次の通りである。以下では、「課題を解決するための手段」の欄に記載した解決手段の番号毎に、対応関係を示している。[1,2]変動処理は、S22の処理に対応し、ランダム失火判定処理は、S38a,S40,S42a,S44a,S46a,S48a,S52aの処理に対応する。変動量算出処理は、S36,S60~S80の処理に対応する。瞬時速度変数は、時間T30に対応する。回転変動量は、回転変動量ΔT30に対応する。フィルタ処理は、S68,S72の処理に対応する。第1処理は、S36,S60~S72,S74,S76の処理に対応する。第2処理は、S36,S60,S80の処理に対応する。[3]連続失火判定処理は、S38~S48,S52の処理に対応する。[4]ねじれ剛性体は、ダンパ48に対応している。クランク側取得処理は、S60の処理に対応する。後段側取得処理は、S64の処理に対応する。ねじれ成分算出処理は、S66~S72の処理に対応する。[5]S92,S96,S112,S116の処理において、24個の移動平均処理をしていることに対応する。[6]停止処理は、S22の処理に対応する。
【0079】
<その他の実施形態>
なお、本実施形態は、以下のように変更して実施することができる。本実施形態および以下の変更例は、技術的に矛盾しない範囲で互いに組み合わせて実施することができる。
【0080】
「瞬時速度変数について」
・上記実施形態では、圧縮上死点間の間隔以下のクランク角度領域におけるクランク軸26の回転速度を示す変数である瞬時速度変数を定義するクランク角度領域を30°CAとしたが、これに限らない。たとえば、10°CAであってもよく、またたとえば圧縮上死点間の間隔自体であってもよい。
【0081】
・瞬時速度変数としては、時間の次元を有する量に限らず、たとえば速度の次元を有する量であってもよい。
「回転変動量について」
・上記実施形態では、回転変動量ΔT30を、120°CA離間した瞬時速度変数同士の差としたが、これに限らない。たとえば、90°CA離間した瞬時速度変数同士の差としてもよい。
【0082】
・上記実施形態では、回転変動量を算出するための一対の瞬時速度変数を、連続失火判定用とランダム失火判定用とで、互いに等しい角度領域だけ離間した変数としたが、これに限らない。すなわち、たとえば連続失火用の回転変動量ΔT30を、「T30[0]-T30[3]」とし、ランダム失火用の回転変動量ΔT30を、「T30[0]-T30[4]」としてもよい。
【0083】
・回転変動量としては、瞬時速度変数同士の差に限らず、瞬時速度変数同士の比であってもよい。
「仮判定処理について」
・仮判定処理としては、互いに360°CAまたは720°CAだけ離間した回転変動量ΔT30同士の差を用いるものに限らない。要は、360°CAの整数倍だけ離間した回転変動量ΔT30同士の差を用いることにより、仮判定の精度がクランクロータ40の歯部42の公差によって低下することを抑制できる。
【0084】
・仮判定処理としては、互いに360°CAの整数倍だけ離間した回転変動量ΔT30同士の差と閾値との大小比較をするものに限らず、判定対象となる気筒の回転変動量と閾値とを直接大小比較する処理であってもよい。
【0085】
「停止処理について」
・停止処理としては、再生処理に限らない。たとえば、内燃機関10の出力を調整するために一部の気筒における燃料の供給を停止する処理であってもよい。またたとえば、1部の気筒において異常が生じた場合に、その気筒における燃焼制御を停止する処理であってもよい。またたとえば、三元触媒32の酸素吸蔵量が規定値以下となる場合に、一部の気筒のみ燃焼制御を停止し、残りの気筒における混合気の空燃比を理論空燃比とする制御を実行する処理であってもよい。
【0086】
「積分要素について」
・上記実施形態では、S94の処理における積分要素として、台形近似をするものを例示したが、これに限らない。たとえば、最新の差分速度ωdamp[0]と時間間隔との積を都度加算する処理であってもよい。
【0087】
・上記実施形態では、S114の処理における積分要素として、台形近似をするものを例示したが、これに限らない。たとえば、最新のねじれトルクTdamp[0]から慣性係数Jを除算した値と時間間隔との積を都度加算する処理であってもよい。
【0088】
「フィルタ処理について」
・上記実施形態では、フィルタ処理への入力となる変数の値を30°CA毎に算出したが、これに限らない。たとえば、180°CAの整数分の1である、10°CA毎に算出してもよく、またたとえば60°CA毎に算出してもよい。もっとも、それらにも限らない。ただし、ローパスフィルタ処理への入力となる変数の値は、圧縮上死点の出現間隔の整数分の1毎に算出されることが望ましい。
【0089】
・上記実施形態では、圧縮上死点の出現間隔の整数分の1毎に算出される変数の値の1燃焼サイクルにおける時系列データをローパスフィルタ処理の入力としたが、これに限らない。たとえば、2燃焼サイクルにおける時系列データをローパスフィルタ処理の入力としてもよい。これによっても、回転0.5次の整数倍の周波数におけるゲインおよび位相をそろえることが可能となる。もっとも、1燃焼サイクルの整数倍における時系列データをローパスフィルタ処理の入力とすること自体必須ではない。たとえば、回転1次以上の周波数においてのみ共振がみられる場合、2ストロークにおける時系列データをローパスフィルタ処理の入力としてもよい。
【0090】
・上記実施形態では、S92,S96,S112,S116の処理において用いるローパスフィルタの入力となる変数の値の個数を全て同一としたが、これに限らない。たとえば、S112,S116の処理において用いるローパスフィルタの入力となる変数の値の個数を24個としつつも、S92,S96の処理において用いるローパスフィルタの入力となる変数の値の個数については、12個としてもよい。その場合であっても、S92,S96の処理において用いるローパスフィルタの入力となる変数の値は、圧縮上死点の出現間隔の整数分の1毎に算出されることが望ましい。
【0091】
・上記実施形態では、S92,S96,S112,S116の処理において圧縮上死点の出現間隔の整数分の1毎に算出される変数の値の互いに共通した所定期間である1燃焼サイクルにおける時系列データをローパスフィルタ処理の入力としたが、これに限らない。たとえば、S112,S116の処理においては、1燃焼サイクルにおける時系列データをローパスフィルタ処理の入力としつつも、S92,S96の処理においては、2燃焼サイクルにおける時系列データをローパスフィルタ処理の入力としてもよい。
【0092】
・上記実施形態では、S92,S96,S112,S116の処理におけるローパスフィルタ処理を全て単純移動平均処理としたが、これに限らない。たとえば、S112,S116の処理においては、単純移動平均処理としつつも、S92,S96の処理においては、指数移動平均処理としてもよい。
【0093】
・S92,S96,S112,S116の処理の少なくとも1つにおいて、単純移動平均処理を用いることも必須ではなく、任意の有限応答型のフィルタを用いてよい。
・フィルタ処理としては、回転0.5次および回転1次のゲインが「1」であって、それらの位相がそろっているフィルタを用いる処理に限らない。たとえば回転0.5次のゲインが「1」であるものの、回転0.5次および回転1次の位相がそろっていないものであってもよい。そのようなフィルタであっても、たとえば下記「車両について」の欄に記載したように変速装置60を備えず、失火の検出精度を低下させる要因となる共振周波数が1つの場合などには、失火の判定精度を高める上で有効である。さらに、回転0.5次およびその高調波のうち共振周波数と一致することがある周波数におけるゲインが「1」であることも必須ではなく、「1」よりも大きくてもよい。その場合、フィルタ処理によって選択的に透過された周波数成分を用いてねじれ速度成分ωrを算出し、同ねじれ速度成分ωrによって減算される対象となる速度成分の位相を調整したり、ねじれ速度成分ωrに補正係数を乗算したりすればよい。
【0094】
・フィルタ処理としては、ローパスフィルタを用いるものに限らず、ハイパスフィルタを用いるものであってもよい。その場合、回転0.5次またはその高調波成分を選択的に透過させるものとし、積分要素の入力をフィルタ処理の施された変数の値とすればよい。すなわち、その場合、積分要素において低周波成分を除去する処理を行わなくてもよい。
【0095】
「物理モデルについて」
・上記実施形態では、ねじれ速度成分ωrを算出するための物理モデルとして、弾性係数Kおよび慣性係数Jを固定値とするモデルを例示したが、これに限らない。たとえば、ねじれ角θdampの絶対値が大きい場合に小さい場合よりも弾性係数Kを大きい値とするなど、ねじれ角θdampに応じて弾性係数Kを可変としてもよい。
【0096】
・ねじれ速度成分ωrを算出するための物理モデルとしては、弾性係数Kおよび慣性係数Jのみからなるものにも限らない。たとえば、粘性係数と差分速度ωdampとの積からなる項と、ねじれ角θdampと弾性係数Kとの積からなる項との和を、ねじれトルクTdampとするモデルであってもよい。
【0097】
「算出処理について」
・S92,S96,S112,S116の全てのローパスフィルタ処理を行うものに限らない。たとえば、S116の処理のみを実行しつつも、それ以外については実行しなくてもよい。
【0098】
・上記実施形態では、S104,S124の処理の双方のコウムフィルタ処理を実行したが、これに限らない。たとえばS124の処理を実行しつつも、S104の処理については削除してもよい。もっとも、コウムフィルタ処理を実行すること自体必須ではない。
【0099】
「失火の判定結果の反映について」
・上記実施形態では、失火が生じたと判定する場合、警告灯100を用いた報知処理を実行したが、報知処理としては、視覚情報を出力する装置を操作対象とする処理に限らず、たとえば聴覚情報を出力する装置を操作対象とする処理であってもよい。
【0100】
・失火の判定結果を報知処理に利用すること自体必須ではない。たとえば、失火が生じた場合に、失火が生じにくい運転状態へと内燃機関10の制御を変更すべく、内燃機関10の操作部を操作する処理を実行してもよい。要は、失火の判定結果は、所定のハードウェア手段を操作することによって失火に対処する処理に反映されればよい。
【0101】
「変動処理について」
・変動処理としては、停止処理を含むものに限らない。たとえば、複数の気筒の一部の気筒における混合気の空燃比を理論空燃比よりもリッチとし、残りの気筒における混合気の空燃比を理論空燃比よりもリーンとする、いわゆるディザ制御であってもよい。すなわち、たとえば気筒#1における混合気の空燃比を理論空燃比よりもリッチとし、気筒#2~#4における混合気の空燃比を理論空燃比よりもリーンとする場合、1燃焼サイクルに一度、燃焼エネルギ量が周期的に大きくなる。そのため、ランダム失火の判定においても、停止処理を実行する場合と同様の瞬時速度変数を用いることが有効である。
【0102】
「堆積量の推定について」
・堆積量DPMの推定処理としては、
図2において例示したものに限らない。たとえば、GPF34の上流側と下流側との圧力の差と吸入空気量Gaとに基づき堆積量DPMを推定してもよい。具体的には、圧力の差が大きい場合に小さい場合よりも堆積量DPMを大きい値に推定し、圧力の差が同一であっても、吸入空気量Gaが小さい場合に大きい場合よりも堆積量DPMを大きい値に推定すればよい。ここで、GPF34の下流側の圧力を一定値とみなす場合、差圧に代えて上記圧力Pexを用いることができる。
【0103】
「ねじれ剛性体について」
・ねじれ剛性体としては、ダンパ48に限らない。たとえば、下記「車両について」の欄に記載されているように、内燃機関10のクランク軸26がトルクコンバータを介して変速装置に連結されて且つ、トルクコンバータがロックアップクラッチを備える場合、ロックアップクラッチをねじれ剛性体としてもよい。すなわち、この場合、ロックアップクラッチは、ダンパ48よりもねじれ剛性が高いが、ねじれによる反力を生じさせることには相違ない。
【0104】
「後処理装置について」
・後処理装置としては、三元触媒32の下流にGPF34を備えるものに限らず、たとえばGPF34の下流に三元触媒32を備えるものであってもよい。また、三元触媒32およびGPF34を備えるものに限らない。たとえば、GPF34のみを備えてもよい。また、たとえば後処理装置が三元触媒32のみからなる場合であっても、その再生処理時において後処理装置の昇温が必要となるなら、上記実施形態やそれらの変更例に例示した処理を実行することが有効である。なお、後処理装置が三元触媒32とGPFとを備える場合には、GPFとしては、三元触媒が担持されたフィルタに限らず、フィルタのみであってもよい。
【0105】
「制御装置について」
・制御装置としては、CPU72とROM74とを備えて、ソフトウェア処理を実行するものに限らない。たとえば、上記実施形態においてソフトウェア処理されたものの少なくとも一部を、ハードウェア処理するたとえばASIC等の専用のハードウェア回路を備えてもよい。すなわち、制御装置は、以下の(a)~(c)のいずれかの構成であればよい。(a)上記処理の全てを、プログラムに従って実行する処理装置と、プログラムを記憶するROM等のプログラム格納装置とを備える。(b)上記処理の一部をプログラムに従って実行する処理装置およびプログラム格納装置と、残りの処理を実行する専用のハードウェア回路とを備える。(c)上記処理の全てを実行する専用のハードウェア回路を備える。ここで、処理装置およびプログラム格納装置を備えたソフトウェア実行装置や、専用のハードウェア回路は複数であってもよい。
【0106】
「内燃機関について」
・内燃機関の気筒数は4つに限らず、たとえば、6個でもよく、またたとえば8個でもよい。
【0107】
・内燃機関がポート噴射弁16および筒内噴射弁22を備えることも必須ではない。
・内燃機関としては、ガソリン機関のような火花点火式内燃機関に限らず、たとえば燃料を軽油とする圧縮着火式内燃機関等であってもよい。
【0108】
「車両について」
・
図1において、変速装置60を備えることは必須ではない。
・車両としては、シリーズ・パラレルハイブリッド車に限らず、たとえばパラレルハイブリッド車やシリーズハイブリッド車であってもよい。もっとも、ハイブリッド車に限らず、たとえば、車両の動力発生装置が内燃機関10のみの車両であってもよい。その場合、内燃機関10と変速装置との間にロックアップクラッチを備えたトルクコンバータを備えてもよい。
【符号の説明】
【0109】
10…内燃機関
20…燃焼室
26…クランク軸
30…排気通路
32…三元触媒
34…GPF
40…クランクロータ
48…ダンパ