(58)【調査した分野】(Int.Cl.,DB名)
前記内燃機関のフューエルカットが行われている期間に、前記非燃焼時エンジントルクを前記所定のクランク角度毎に取得して記憶する非燃焼時エンジントルク取得手段を更に備え、
前記トルク差分算出手段は、前記燃焼時エンジントルクと、前記非燃焼時エンジントルク取得手段が記憶する前記非燃焼時エンジントルクとの差分を前記所定のクランク角度毎に算出する請求項1に記載の失火検出装置。
前記非燃焼時トルク取得手段は、前記内燃機関の角加速度及び慣性モーメント、並びに前記モータ・ジェネレータの角加速度及び慣性モーメントに基づいた計算により前記非燃焼時エンジントルクを取得する請求項2に記載の失火検出装置。
【発明の概要】
【発明が解決しようとする課題】
【0004】
一般に内燃機関の気筒数が多いほど気筒間の燃焼間隔が短くなる。このため、気筒数が多くなるほど、ある気筒の燃焼により生じるトルクが次に点火時期を迎える気筒の燃焼により生じるトルクと重なる燃焼オーバーラップが生じやすくなる。さらに、点火遅角が行われると燃焼時期が遅れるため燃焼オーバーラップの影響が拡大する。このような燃焼オーバーラップの影響により、特許文献1のように失火を判定する際にエンジン回転数の変動がどの気筒で生じたかを判別することが難しくなるため、その判定精度が悪化する可能性がある。
【0005】
そこで、本発明は、ハイブリッド車両に搭載された内燃機関の点火遅角時における失火の判定精度の悪化を抑制できる内燃機関の失火検出装置を提供することを目的とする。
【課題を解決するための手段】
【0006】
本発明の失火検出装置は、複数の気筒を備えた火花点火型の内燃機関とモータ・ジェネレータとを備えたハイブリッド車両に適用される内燃機関の失火検出装置において、所定の大きさのクランク角度に設定された失火判定区間における前記内燃機関が燃焼する際の燃焼時エンジントルクを評価することにより前記内燃機関の失火を前記気筒毎に判定する失火判定手段と、前記燃焼時エンジントルクと、前記内燃機関が燃焼せずに回転する際の非燃焼時エンジントルクとの差分を所定のクランク角度毎に算出するトルク差分算出手段と、前記内燃機関が点火遅角されている場合に、前記トルク差分算出手段が算出した前記差分の前記失火判定区間内における合計値が増加する方向に前記失火判定区間をシフトするシフト手段と、を備えるものである(請求項1)。
【0007】
内燃機関の燃焼時に発生する燃焼時エンジントルクは、気筒内で圧縮された空気が弾性的に膨張する際に発生する膨張トルクと燃焼エネルギーで発生する燃焼トルクとが合成されたトルクである。モータリングなどで内燃機関が燃焼せずに回転する際には燃焼トルクが生じないので非燃焼時エンジントルクは膨張トルクに相当する。したがって、燃焼時エンジントルクと非燃焼時エンジントルクとの差分を算出することにより燃焼トルクが得られる。内燃機関に対して点火遅角が実行されると、非燃焼時エンジントルクがピークに達する時期に対して燃焼トルクがピークに達する時期が遅れる。しかも、点火遅角によって燃焼時エンジントルクが低下する。そのため、失火判定区間の起点を気筒毎に固定すると、ある気筒の燃焼トルクが次に点火時期が到来する気筒の失火判定区間にまで及ぶ燃焼オーバーラップが発生するとともに、燃焼オーバーラップの影響が点火遅角を行わない場合よりも大きくなる。したがって、点火遅角時においては失火判定区間における燃焼時エンジントルクの評価が不正確となり失火の判定精度が悪化する。
【0008】
本発明の失火検出装置は、所定のクランク角度毎に算出した燃焼時エンジントルクと非燃焼時エンジントルクとの差分の失火判定区間内における合計値が増加する方向に失火判定区間をシフトする。つまり、失火判定区間の大きさが維持された状態で失火判定区間の起点が移動する。燃焼時エンジントルクと非燃焼時エンジントルクとの差分は燃焼トルクに相当するから、この差分の失火判定区間内の合計値が大きいほど失火判定区間内に燃焼トルクが収まりかつ燃焼オーバーラップの影響が低減することを意味する。したがって、その合計値が増加する方向に失火判定区間をシフトすることにより、各気筒で生じた燃焼トルクを失火判定区間内に可能な限り収めて次の失火判定区間への影響を少なくできる。これにより、失火判定区間における燃焼時エンジントルクの評価の正確性が高まるため失火の判定精度の悪化を抑制できる。なお、合計値が増加するとは、シフト前の起点における失火判定区間の差分の合計値から増加することを意味する。
【0009】
本発明の失火検査装置の一態様において、前記内燃機関のフューエルカットが行われている期間に、前記非燃焼時エンジントルクを前記所定のクランク角度毎に取得して記憶する非燃焼時エンジントルク取得手段を更に備え、前記トルク差分算出手段は、前記燃焼時エンジントルクと、前記非燃焼時エンジントルク取得手段が記憶する前記非燃焼時エンジントルクとの差分を前記所定のクランク角度毎に算出してもよい(請求項2)。この態様によれば、シミュレーションや実機試験等によって予め作成されたマップから得られた非燃焼時エンジントルクを用いて差分を計算する場合に比べて、内燃機関の個体差や経年変化が考慮された非燃焼時エンジントルクを得ることができる。これにより、実体に即した差分を算出できる結果、失火の判定精度が向上する。
【0010】
この態様において、前記非燃焼時トルク取得手段は、前記内燃機関の角加速度及び慣性モーメント、並びに前記モータ・ジェネレータの角加速度及び慣性モーメントに基づいた計算により前記非燃焼時エンジントルクを取得してもよい(請求項3)。内燃機関及びモータ・ジェネレータの慣性モーメントは既知の物理量であるため、クランク角度によって変化する内燃機関及びモータ・ジェネレータの角加速度を取得することによって、所定のクランク角度毎の非燃焼時エンジントルクを取得できる。
【発明の効果】
【0011】
以上説明したように、本発明の失火検出装置によれば、所定のクランク角毎に算出した燃焼時エンジントルクと非燃焼時エンジントルクとの差分の失火判定区間内における合計値が増加する方向に失火判定区間がシフトされるため、各気筒で生じた燃焼トルクを失火判定区間内に可能な限り収め、次の失火判定区間への影響を少なくできる。これにより、失火判定区間における燃焼時エンジントルクの評価の正確性が高まるため失火の有無の判定精度の悪化を抑制できる。
【発明を実施するための形態】
【0013】
(第1の形態)
図1に示すように、車両1は複数の動力源を組み合わせたハイブリッド車両として構成されている。車両1は、内燃機関3と、2つのモータ・ジェネレータ4、5とを走行用の動力源として備えている。内燃機関3は6つの気筒2を備えたV型6気筒の火花点火型の内燃機関として構成されている。#1〜#6の気筒番号として、一方のバンクB1の気筒2に奇数の気筒番号#1、#3、#5を、他方のバンクB2の気筒2に偶数の気筒番号#2、#4、#6を与えた場合、内燃機関3の点火順序は、#1、#2、#3、#4、#5、#6に設定されている。内燃機関3は6気筒であるので各気筒2の点火間隔はクランク角度で120°である。以下、クランク角度及びその大きさを数値で示す場合は数値の後にクランク角度を意味する「°CA」を併記する。
【0014】
内燃機関3と第1モータ・ジェネレータ4とは動力分割機構6に連結されている。第1モータ・ジェネレータ4はステータ4aとロータ4bとを有する。ステータ4aはケース10に固定されている。第1モータ・ジェネレータ4は動力分割機構6にて分配された内燃機関3の動力を受けて発電する発電機として機能するとともに、交流電力にて駆動される電動機としても機能する。同様に、第2モータ・ジェネレータ5はケース10に固定されたステータ5aとロータ5bとを有し、電動機及び発電機としてそれぞれ機能する。第1モータ・ジェネレータ4は本発明に係るモータ・ジェネレータに相当する。
【0015】
動力分割機構6はシングルピニオン型の遊星歯車機構として構成されている。動力分割機構6は、外歯歯車のサンギアSと、サンギアSと同軸に配置された内歯歯車のリングギアRと、これらのギアS、Rに噛み合うピニオンPを自転及び公転可能に保持するプラネタリキャリアCとを有している。内燃機関3が出力するエンジントルクは動力分割機構6のプラネタリキャリアCにトーショナルダンパ17を介して伝達される。
【0016】
第1モータ・ジェネレータ4のロータ4bは動力分割機構6のサンギアSに連結されている。動力分割機構6からリングギアRを介して出力されたトルクは出力ギア20に伝達される。出力ギア20から出力されたトルクは各種の伝達機構を介して不図示の駆動輪に伝達される。
【0017】
車両1の各部の制御はコンピュータとして構成された電子制御装置(ECU)30にて制御される。ECU30は内燃機関3及び各モータ・ジェネレータ4、5等に対して各種の制御を行う。ECU30には車両1の各種の情報が入力される。例えば、ECU30には、第1モータ・ジェネレータ4の回転角度に応じた信号を出力する第1レゾルバ31の出力信号と、第2モータ・ジェネレータ5の回転角度に応じた信号を出力する第2レゾルバ32の出力信号と、アクセルペダル34の踏み込み量に対応する信号を出力するアクセル開度センサ33の出力信号と、車両1の車速に応じた信号を出力する車速センサ35の出力信号と、内燃機関3のクランク角に対応する信号を出力するクランク角センサ36の出力信号とがそれぞれ入力される。
【0018】
ECU30は、アクセル開度センサ33の出力信号と車速センサ35の出力信号とを参照して運転者が要求する要求駆動力を計算し、その要求駆動力に対するシステム効率が最適となるように各種のモードを切り替えながら車両1を制御する。例えば、内燃機関3の熱効率が低下する低負荷領域では内燃機関3の燃焼を停止して第2モータ・ジェネレータ5を駆動するEVモードが選択される。また、内燃機関3だけではトルクが不足する場合は、内燃機関3とともに第2モータ・ジェネレータ5を走行用駆動源とするハイブリッドモードが選択される。
【0019】
また、ECU30は内燃機関3の失火を気筒2毎に判定する失火検査装置としての機能を有している。本形態は内燃機関3の点火遅角時に行う失火判定処理に特徴がある。本形態の特徴を説明する前に、失火判定処理の基本的な諸事項について
図2〜
図4を参照しながら説明する。
図2は、内燃機関3の点火進角時のエンジントルクを示しており、各気筒2から出力されるエンジントルクが互いに重ね合わせて表示されている。ちなみに、
図2に示された各気筒2のエンジントルクを合成した場合は
図3に示した波形となる。上述したように、内燃機関3は気筒2間の点火間隔が120°CAに設定されている。これらの図に示すように、内燃機関3の点火進角時においては、失火判定を行う失火判定区間Aの大きさを120°CAとし、気筒2毎に設けられた失火判定区間Aの起点aを0°CA、120°CA、240°CA、360°CA、480°CA、600°CAとした場合、燃焼オーバーラップが生じても各気筒2のエンジントルクのほとんどが各失火判定区間Aにカバーされる。しかも、点火進角時においては点火遅角時と比べて正常時のエンジントルクと失火時のエンジントルクとの差が大きい。このため、
図2及び
図3の点火進角時においては、幾らかの燃焼オーバーラップが生じても失火判定区間Aにおけるエンジントルクを評価することにより失火の判定精度を保つことができる。
【0020】
これに対して、
図4に示した内燃機関3の点火遅角時においては、点火遅角により燃焼トルクの発生が遅れ、かつエンジントルク自体が低下するので、ハッチングで示した燃焼オーバーラップの影響が大きくなる。そのため、
図2及び3に示した点火進角時と同様に失火判定区間A及びその起点aを
図4のように設定すると、失火判定区間Aにおけるエンジントルクの評価が不正確なものとなり失火の判定精度が悪化する。
【0021】
図5に示すように、内燃機関3の燃焼時に発生する燃焼時エンジントルクTeは、気筒2内で圧縮された空気が弾性的に膨張する際に発生する膨張トルクTe1と燃焼エネルギーで発生する燃焼トルクTe2とが合成されたトルクである。失火が発生した場合は燃焼トルクTe2が発生せずに膨張トルクTe1のみが燃焼時エンジントルクTeとして出力される。そのため、燃焼トルクTe2の有無を正確に評価できれば失火判定の精度が高まる。したがって、燃焼トルクTe2を可能な限り収めることができるように失火判定区間Aを設定することにより、燃焼オーバーラップの影響を低減したエンジントルクの評価が可能となる。燃焼トルクTe2は燃焼時エンジントルクTeと膨張トルクTe1との差分に相当するため、
図5のハッチングで示した領域を最大にカバーする区間を失火判定区間Aとすることによって燃焼トルクTe2の有無、すなわち失火の有無を正確に判定することが可能となる。そこで、本形態の失火判定処理は、燃焼時エンジントルクTeと膨張トルクTe1との差分を所定のクランク角毎に算出し、失火判定区間A内での各差分の合計値が最大となるシフト量βを算出し、そのシフト量βだけ失火判定区間Aをシフトする。これにより、各気筒2で生じた燃焼トルクTe2が失火判定区間A内に可能な限り収められ、次の失火判定区間Aへの燃焼トルクTe2の影響が低減するため失火の判定精度の悪化を抑制できる。
【0022】
以上の制御はECU30が
図6の制御ルーチンを実行することにより実現される。
図6の制御ルーチンのプログラムはECU30に記憶されており、適時に読み出されて所定間隔で繰り返し実行される。ステップS1において、ECU30は内燃機関3のエンジン回転数Neが燃焼運転時の基準値Nea以上か否かを判定する。例えば、基準値Neaは400rpmに設定される。エンジン回転数Neはクランク角センサ36の出力信号に基づいて計算される。エンジン回転数Neが基準値Nea以上の場合はステップS2に進む。エンジン回転数Neが基準値Nea未満の場合は以後の処理をスキップして今回のルーチンを終了する。ステップS2において、ECU30は内燃機関3の燃焼が行われていないフューエルカット中か否かを判定する。フューエルカット中ではなく内燃機関3の燃焼が行われている場合はステップS3に進む。フューエルカット中の場合は以後の処理をスキップして今回のルーチンを終了する。
【0023】
ステップS3において、ECU30は判定区間カウンタC1をインクリメントする。判定区間カウンタC1は失火判定を行う気筒2を特定する変数であり、このカウンタC1の値を参照することにより6つの気筒2のいずれが失火判定の対象であるかを特定することができる。これにより、気筒2毎の失火の判定が可能となる。ステップS4において、ECU30は内燃機関3の点火時期が所定基準よりも後、すなわち点火時期が所定基準よりも遅角されているか否かを判定する。この所定基準としては、例えば、上死点の前の5°CAに、すなわちBTDC5°CAに設定されている。点火時期が所定基準よりも遅角されていない場合はステップS5に進む。点火時期が所定基準よりも遅角されている場合はステップS6に進む。
【0024】
ステップS5において、ECU30は気筒別トルクTexを算出する。気筒別トルクTexは失火判定区間A内の燃焼時エンジントルクTeの平均値である(
図2及び
図3参照)。この平均値の算出方法は特に制限されないが、ECU30は判定区間カウンタC1を参照して失火判定の対象となる気筒2に対応する失火判定区間Aを特定する。そして、特定した失火判定区間Aにおける燃焼時エンジントルクTeの計算値(標本)を複数個求め、各標本の算術平均を求めている。燃焼時エンジントルクTeの計算値の個数及び間隔は適宜設定される。ここでは、失火判定の対象となる気筒2の上死点から120°CAの範囲内で1°CA毎に合計120個の燃焼時エンジントルクTeの標本を得ている。失火判定区間A内における燃焼時エンジントルクTeの計算は以下の式1に基づいて行われる。
【0025】
Te=Ie*dωe+(1+ρ)/ρ*(Ig*dωg−Tg) ………1
【0026】
ここで、Ieは内燃機関3の慣性モーメント、dωeは内燃機関3の角加速度、Igは第1モータ・ジェネレータ4の慣性モーメント、dωgは第1モータ・ジェネレータ4の角加速度、Tgは第1モータ・ジェネレータ4のトルク反力、ρは動力分割機構6のプラネタリギア比である。
【0027】
式1のうち、慣性モーメントIe、Ig、プラネタリギア比ρはそれぞれ既知の物理量の定数である。残りのパラメータはECU30にて計算される。内燃機関3の角加速度dωeはクランク角センサ36の出力信号に基づいて、第1モータ・ジェネレータ4の角加速度dωgは第1レゾルバ31の出力信号に基づいてそれぞれECU30にて計算される。トルク反力Tgは第1モータ・ジェネレータ4の制御パラメータとしてECU30にて常時把握されているので、ECU30が把握するトルク反力Tgの値が用いられる。ECU30は、式1にて計算した燃焼時エンジントルクTeの複数個の標本の平均値を求めることによって失火判定区間A内の気筒別トルクTexを算出する。
【0028】
一方、点火遅角が行われている場合、ECU30はステップS6において燃焼時エンジントルクTeを所定のクランク角度毎に例えば30°CA毎に算出する。この算出は式1を用いた上記の方法で行われる。クランク角度で規定される燃焼時エンジントルクTeの算出範囲は適宜設定してよい。ここでは、失火判定の対象となる気筒2の上死点前120°CAから上死点後120°CAの算出範囲で燃焼時エンジントルクTeが算出される。
【0029】
ステップS7において、ECU30は非燃焼時トルクとしての膨張トルクTe1を取得する。ECU30は、膨張トルクTe1とクランク角度とが対応付けられ、予めECU30に記憶されたマップ(不図示)を参照し、ステップS6で算出した燃焼時エンジントルクTeと同一のクランク角度に対応する膨張トルクTe1を読み出すことにより取得する。このマップは、実施試験やシミュレーション等の調査方法で事前に膨張トルクTe1とクランク角度との対応を調査し、その調査結果に基づいて作成される。ステップS8において、ECU30は燃焼時エンジントルクTeと膨張トルクTe1との差分を、ステップS6と同じクランク角度毎に算出する。
【0030】
ステップS9において、ECU30は失火判定区間Aのシフト量βを算出する。このシフト量βは、
図5で説明した方法で算出される。すなわち、ECU30は、失火判定区間Aの大きさを維持しつつシフト前の起点a(
図4も参照)から失火判定区間Aをシフトさせながらシフトした失火判定区間A内に含まれる上記各差分の合計値を求める。そして、その合計値が最大となるシフト量βを探索することによりシフト量βを算出する。
【0031】
ステップS10において、ECU30はステップS9で算出したシフト量βだけ失火判定区間Aをシフトさせる。ステップS11において、ECU30はステップS10でシフトさせた失火判定区間Aにおいて気筒別トルクTexを算出する。この気筒別トルクTexの算出方法はステップS5の算出方法と同じである。
【0032】
ステップS12において、ECU30はステップS5又はステップS11で算出した気筒別トルクTexが失火判定トルクTexaよりも小さいか否かを判定する。失火判定トルクTexaは失火が生じたと見なし得るトルク範囲の上限値として設定されている。したがって、気筒別トルクTexが失火判定トルクTexaよりも小さい場合は失火が生じたと見なすことができる。気筒別トルクTexが失火判定トルクTexaよりも小さい場合はステップS13に進む。気筒別トルクTexが失火判定トルクTexa以上の場合はステップS13をスキップしてステップS14に進む。
【0033】
ステップS13において、ECU30は失火の発生回数を計数するための失火カウンタC2をインクリメントする。ステップS14において、ECU30は失火カウンタC2の値が所定の閾値N以上であるか否かを判定する。失火は何らかの原因で偶発的に生じる可能性もある。そのため、エンジン不調を原因とした失火と区別すべく閾値Nが設定されている。失火カウンタC2の値が閾値N以上の場合はステップS15に進み、失火カウンタC2の値が閾値N未満の場合は今回のルーチンを終了する。ステップS15において、ECU30は、エンジン不調を原因とする失火が発生した失火状態と診断する。ECU30は失火状態と診断した場合には不図示の警告灯を点灯させる。
【0034】
図6の制御ルーチンによれば、失火判定区間Aをシフト量βだけシフトさせるため、上述したように各気筒2で生じた燃焼トルクTe2が失火判定区間A内に可能な限り収められる。それにより、次の失火判定区間Aへの燃焼トルクTe2の影響が低減するため失火の判定精度の悪化を抑制できる。ECU30は、
図6のステップS5又はステップS11とステップS12とを実行することにより本発明に係る失火判定手段として、
図6のステップS8を実行することにより本発明に係るトルク差分算出手段として、
図6のステップS9及びステップS10を実行することにより本発明に係るシフト手段として、それぞれ機能する。
【0035】
(第2の形態)
次に、本発明の第2の形態を、
図7を参照しながら説明する。第2の形態は制御内容を除いて第1の形態と共通するため第2の形態の物理的構成については
図1が参照される。第2の形態の制御は
図6の制御ルーチンと組み合わせて実施される。第1の形態では、
図6のステップS7において非燃焼時エンジントルクとしての膨張トルクTe1を予め実機試験等で作成してECU30に記憶されたマップに基づいて計算した。第2の形態は、このマップの代りに、車両1の走行中に膨張トルクTe1を算出し、膨張トルクTe1をクランク角度毎に整理したデータベースを用いて失火判定処理を行う。つまり、ECU30は
図6のステップS7を実行する際にこのデータベースに基づいて膨張トルクTe1を算出する。
【0036】
図7の制御ルーチンのプログラムはECU30に保持されており、所定の間隔で繰り返し実行される。ステップS21において、ECU30はエンジン回転数Neが基準値Ne1よりも大きいか否かを判定する。この基準値Ne1はエンジン回転数Neが十分な大きさを有するか否かを判断するために設定され、例えば600rpmに設定される。エンジン回転数Neが基準値Ne1よりも大きい場合はステップS22に進み、エンジン回転数Neが基準値Ne1以下の場合は処理を戻す。ステップS22において、ECU30は内燃機関3がフューエルカット中か否かを判定し、フューエルカット中の場合はステップS23に進み、そうでない場合は処理をステップS21に戻す。ステップS23において、ECU30は、計算結果の精度を確保するため、内燃機関3の回転変動が規定値以下か否かを判定する。この回転変動はクランク角センサ36の出力信号に基づいて計算され、所定時間当たりのエンジン回転数Neの変化に相当する。内燃機関3の回転変動が規定値以下の場合はステップS24に進む。内燃機関3の回転変動が規定値を超えている場合は処理をステップS21に戻す。
【0037】
ステップS21〜ステップS23の全てにおいて肯定的な判定がなされた場合、ECU30はステップS24において、現在のクランク角度の膨張トルクTe1を算出する。この膨張トルクTe1の算出は、上述した燃焼時エンジントルクTeの算出と同様に式1を用いて実施される。上述したように、内燃機関3及び第1モータ・ジェネレータ4の慣性モーメントは既知の物理量の定数であるため、内燃機関3及び第1モータ・ジェネレータ4の角加速度を計算して取得することによって、所定のクランク角度毎の膨張トルクTe1を取得できる。ステップS25において、ECU30はステップS24の算出結果をクランク角度と対応付けて記憶する。
【0038】
ステップS26において、ECU30は、ステップS24の計算時のクランク角度に対応する膨張トルクTe1の算出結果の数(蓄積データ数)がN個以上か否かを判定する。Nは、個々のクランク角度に対する膨張トルクTe1の平均値を計算するための標本数であり、Nの値は適宜に設定される。蓄積データ数がN個以上の場合はステップS27に進む。蓄積データ数がN個未満の場合は処理をステップS21に戻す。
【0039】
ステップS27において、ECU30は蓄積データ数がN個に達したクランク角度に対応する膨張トルクTe1の平均値を算出し、その平均値をそのクランク角度に対する膨張トルクTe1として記憶することによりデータベースを作成する。ステップS28において、ECU30は、予め決められた全てのクランク角度について膨張トルクTe1の平均値が記憶されたか否か、つまりデータベースが完成したか否かを判定する。データベースが完成した場合はステップS29に進み、そうでない場合はステップS29をスキップして今回のルーチンを終了する。ステップS29において、ECU30は、
図6のステップS6〜ステップS11の処理の実行の可否を管理するための計算許可フラグをセットする。第2の形態において
図6の制御ルーチンを実施する場合、ECU30はこの計算許可フラグがセットされていることを条件として、ステップS6〜ステップS11の処理を実行する。ECU30は
図6のステップS7を実行する際には、
図7の制御ルーチンにより作成されたデータベースを参照して、膨張トルクTe1を取得する。
【0040】
図7の制御ルーチンによれば、第1の形態のように予め作成されたマップを用いて膨張トルクTe1を取得し、燃焼時エンジントルクTeと膨張トルクTe1との差分を計算する場合に比べて、内燃機関3の個体差や経年変化が考慮された膨張トルクTe1を得ることができる。このため実体に即した差分を算出できる結果、失火の判定精度が向上する。なお、
図7の制御ルーチンによって作成したデータベースは、データベースが完成してからの内燃機関3の運転時間の積算値が所定値を超えた場合やデータベースが完成してからの経過時間が所定値を超えた場合等の更新条件が成立した場合にデータベースを更新することも可能である。このようにデータベースを更新することにより、内燃機関3の経年変化が適切に反映されたデータベースが得られる。ECU30は、
図7の制御ルーチンを実行することにより、本発明に係る非燃焼時エンジントルク取得手段として機能する。
【0041】
本発明は上記の各形態に限定されず、本発明の要旨の範囲内において種々の形態にて実施できる。本発明の失火検出装置の適用対象としては、
図1に示した形態のハイブリッド車両に限らない。例えば、一つのモータ・ジェネレータが内燃機関に直結された形態のハイブリッド車両に対しても本発明を適用できる。
【0042】
上記の各形態は、
図5に示したように、失火判定区間Aの大きさを維持しつつシフト前の起点aから失火判定区間Aをシフトさせながらシフトした失火判定区間A内に含まれる燃焼時エンジントルクTeと膨張トルクTe1との差分の合計値を求め、その合計値が最大となるシフト量βを探索することによりシフト量βを算出する。しかしながら、当該差分の合計値が最大となるシフト量βを算出することは一例にすぎない。当該差分の合計値が増加する方向に失火判定区間Aをシフトできれば、起点aを固定する場合よりも失火の判定精度の悪化を抑制できる。したがって、当該差分の合計値が最大値に至らない程度、例えば、当該差分の合計値が最大値の70%〜90%となるシフト量を算出し、そのシフト量に基づいて失火判定区間をシフトする形態で本発明を実施することもできる。
【0043】
上記の各形態は、失火判定区間内の燃焼時エンジントルクの平均値である気筒別トルクを算出し、気筒別トルクと失火判定トルクとを比較することによって失火を判定しているが、この失火の判定方法は失火判定区間内の燃焼時エンジントルクを評価して失火を判定する一例にすぎない。例えば、失火判定区間内の燃焼時エンジントルクの最小値と最大値との差分を求め、その差分と判定値とを比較することによって失火を判定することも可能である。
【0044】
燃焼オーバーラップは5気筒以上の内燃機関の場合にその影響が大きくなるが、本発明の適用対象は5気筒以上の内燃機関に制限されない。複数の気筒を有する内燃機関であれば本発明を適用することができ、失火判定の精度向上が期待できる。