図1は、本発明の一実施例としての内燃機関装置20の構成の概略を示す構成図である。実施例の内燃機関装置20は、図示するように、エンジン22と、電子制御ユニット(以下、「ECU」という)24と、を備える。内燃機関装置20は、例えば、走行用のモータと共にハイブリッド自動車に搭載される。
エンジン22は、例えばガソリンや軽油などの炭化水素系の燃料を用いて吸気,圧縮,膨張(爆発燃焼),排気の各行程により動力を出力する多気筒の内燃機関として構成されている。エンジン22は、エアクリーナ122により清浄された空気をスロットルバルブ124を介して吸気管125に吸入すると共に燃料噴射弁126から燃料を噴射して空気と燃料とを混合する。そして、この混合気を吸気バルブ128aを介して燃焼室129に吸入し、点火プラグ130による電気火花によって爆発燃焼させて、そのエネルギにより押し下げられるピストン132の往復運動をクランクシャフト26の回転運動に変換する。燃焼室129から排気バルブ128bを介して排気管133に排出される排気は、一酸化炭素(CO)や炭化水素(HC),窒素酸化物(NOx)の有害成分を浄化する浄化触媒(三元触媒)を有する排気浄化装置134と粒子状物質除去フィルタ(以下、PMフィルタという)25とを介して外気に排出される。排気浄化装置134には、排気中の未燃焼燃料や窒素酸化物を除去する触媒が充填されている。PMフィルタ25は、セラミックスやステンレスなどにより多孔質フィルタとして形成されており、煤などの粒子状物質(PM:Particulate Matter)を捕捉する。このエンジン22は、吸気バルブ128aや排気バルブ128bの開閉タイミングを変更可能な可変バルブタイミング機構150a,150bを備える。エンジン22は、ECU24によって運転制御されている。
ECU24は、図示しないが、CPUを中心とするマイクロプロセッサとして構成されており、CPUの他に、処理プログラムを記憶するROM,データを一時的に記憶するRAM,入出力ポート,通信ポートを備える。
ECU24には、エンジン22を運転制御するのに必要な各種センサからの信号が入力ポートを介して入力されている。ECU24に入力される信号としては、例えば、クランクシャフト26の回転位置を検出するクランクポジションセンサ140からのクランク角θcrや、エンジン22の冷却水の温度を検出する水温センサ142からの冷却水温Twを挙げることができる。また、吸気バルブ128aを開閉するインテークカムシャフトの回転位置や排気バルブ128bを開閉するエキゾーストカムシャフトの回転位置を検出するカムポジションセンサ144a,144bからのカム角θca,θcbも挙げることができる。更に、スロットルバルブ124のポジションを検出するスロットルバルブポジションセンサ146からのスロットル開度THや、吸気管に取り付けられたエアフローメータ148からの吸入空気量Qa,吸気管に取り付けられた温度センサ149からの吸気温Taも挙げることができる。各気筒の燃料噴射弁126の内部に取り付けられ噴射される燃料の圧力を検出する圧力センサ126aからの噴射圧Pinjも挙げることができる。排気管に取り付けられた空燃比センサ135aからの空燃比AFや、排気管に取り付けられた酸素センサ135bからの酸素信号O2も挙げることができる。更に、PMフィルタ25の上流側および下流側に取り付けられた圧力センサ25a,25bからの圧力P1,P2も挙げることができる。
ECU24からは、エンジン22を運転制御するための各種制御信号が出力ポートを介して出力されている。ECU24から出力される信号としては、例えば、スロットルバルブ124のポジションを調節するスロットルモータ136への駆動制御信号や、燃料噴射弁126への駆動制御信号,イグナイタと一体化されたイグニッションコイル138への駆動制御信号,可変バルブタイミング機構150a,150bへの駆動制御信号も挙げることができる。
ECU24は、クランク角θcrに基づいて、クランクシャフト26の回転数、即ち、エンジン22の回転数Neを演算している。また、ECU24は、各気筒の圧力センサ126aからの噴射圧Pinjの圧力波形(圧力の時間変化)から各気筒毎に実際の燃料噴射量(実噴射量)Pirを演算している。ECU24は、エアフローメータ148からの吸入空気量Qaとエンジン22の回転数Neとに基づいて、体積効率(エンジン22の1サイクルあたりの行程容積に対する1サイクルで実際に吸入される空気の容積の比)KLも演算している。ECU24は、圧力センサ25a,25bからの圧力P1,P2の差圧ΔP(ΔP=P1−P2)に基づいてPMフィルタ25に補足された粒子状物質の推定される堆積量としてのPM堆積量Qpmを演算したり、エンジン22の運転状態に基づいてPMフィルタ25の推定される温度としてのフィルタ温度Tfを演算したりしている。また、ECU24は、クランク角θcrに基づいて、クランクシャフト26が所定角度(例えば10度)だけ回転するたびに、クランクシャフト26が30度だけ回転するのに要した時間である30度回転所要時間T30(msec)を取得し、当該30度回転所要時間T30に基づいて、クランクシャフト26(エンジン22)の角速度ωeg(rad/sec)を算出する。角速度ωegは、ωeg=2π×(30/360)/T30×1000として算出される。
こうして構成された実施例の内燃機関装置20では、ECU24は、エンジン22から要求出力が出力されるように、スロットルバルブ124の開度を調節する吸入空気量制御,燃料噴射弁126からの燃料噴射量を調節する燃料噴射制御,点火プラグ130の点火時期を調節する点火制御などを行なう。
次に、こうして構成された実施例の内燃機関装置20の動作、特に、エンジン22において失火が生じているか否かを判定する際の動作について説明する。図2は、ECU24により実行される失火判定ルーチンの一例を示すフローチャートである。本ルーチンは、エンジン22が運転されているときに繰り返し実行される。
本ルーチンが実行されると、ECU24は、エンジン22の回転数Neや体積効率KL,ディザ制御フラグF,各気筒の実噴射量Pirを入力する処理を実行する(ステップS100)。ここで、エンジン22の回転数Neは、クランク角θcrに基づいて演算したものを入力している。体積効率KLは、エアフローメータ148からの吸入空気量Qaとエンジン22の回転数Neとに基づいて演算したものを入力している。ディザ制御要求フラグFは、ディザ制御の実行が要求されていないときに値0に設定され、ディザ制御の実行が要求されているときに値1に設定されるフラグを入力している。実噴射量Pirは、圧力センサ126aからの噴射圧Pinjに基づいて演算したものを入力している。
ここで、ディザ制御について説明する。ディザ制御は、エンジン22の空燃比をリッチ(理論空燃比に比して燃料量を多くした状態)とリーン(理論空燃比に比して燃料量を少なくした状態)とが繰り返されるように燃料噴射を行なってエンジン22を運転する制御である。このディザ制御では、エンジン22の複数の気筒のうち一部の気筒をリッチとし、残余の気筒をリーンとし、ディザ率を目標値Rdcとしつつエンジン22全体としての燃料噴射量の増減の平均値が値0となるようにエンジン22を運転する。ディザ率とは、エンジン22の燃料噴射量を気筒数で除した気筒平均噴射量に対するリッチとした気筒の実際の燃料噴射量から気筒平均噴射量を減じた増量値の比率の総和である。例えば、エンジン22を6気筒の内燃機関とした場合、ディザ率が0.2(20%)のときには、各気筒の燃料噴射量は、気筒平均噴射量に対して最初に点火する気筒の燃料噴射量を5%減のリーンとし、次に点火する気筒の燃料噴射量を気筒平均噴射量に対して10%増のリッチとし、残りの気筒の燃料噴射量を、以降点火順に、5%減のリーン,5%減のリーン,10%増のリッチ,5%減のリーンとして、エンジン22を運転する。そして、エンジン22が所定回転Nref(例えば、100回転、200回転,300回転など)すると、リッチとする気筒とリーンとする気筒とを変更する。例えば、最初に点火する気筒の燃料噴射量を気筒平均噴射量に対して10%増のリッチとし、残りの気筒の燃料噴射量を、以降点火順に、5%減のリーン,10%増のリッチ,5%減のリーン,5%減のリーン,5%減のリーンとして、エンジン22を運転する。このようにリッチとする気筒とリーンとする気筒とを変更するのは、一部の気筒を継続してリッチとすると、リッチとなった気筒の劣化がその他の気筒より早く進むからである。こうした制御により、排気温度を上昇させて排気浄化装置134の浄化触媒に被毒した硫黄分のパージを行なったり、PMフィルタ25の温度を迅速に再生可能温度(例えば600℃など)以上の状態に上昇させてPMフィルタ25を再生する。
こうしたディザ制御は、PMフィルタ25の再生の要求がなされている第1条件と、エンジン22が運転している(エンジン22が停止中や燃料カット中ではない)第2条件と、エンジン22の空燃比が安定している(エンジン22の空燃比制御おけるフィードバック補正量が所定範囲内にあって空燃比に関する学習が完了している)第3条件と、エンジン22の暖機が完了している(エンジン22の冷却水温Twが所定温度(例えば、70℃,75℃,80℃など)以上である)第4条件と、の全ての条件が成立しているときに、実行要求がなされる。PMフィルタ25の再生要求は、PMフィルタ25に堆積した粒子状物質の堆積量としてのPM堆積量Qpmが閾値Qpmref以上であるときになされる。ここで、PM堆積量Qpmは、圧力センサ25a,25bからの圧力P1,P2の差圧ΔP(ΔP=P1−P2)に基づいて演算(推定)される。閾値Qpmrefは、PMフィルタ25の再生が必要であると判断できるPM堆積量Qpmである。ディザ制御要求フラグFは、上述した第1条件〜第4条件のうち少なくとも1つの条件が成立していないときには値0に設定され、第1条件〜第4条件の全ての条件が成立しているときには値1に設定される。
続いて、失火判定条件が成立しているか否かを判定する(ステップS110)。ここでは、エンジン22の回転数Neが下限回転数Nmin(例えば、800rpm,850rpm,900rpmなど)より高く上限回転数Nmax(例えば、6000rpm,6500rpm,7000rpmなど)より低い第1判定条件、または、体積効率KLが所定率Kref(例えば、9.0%,9.5%,10%など)以上である第2判定条件が成立したときに、失火判定条件が成立していると判定する。
ステップS110の処理で失火判定条件が成立していないと判定されたときには、失火の判定を実行する必要がないと判断して、本ルーチンを終了する。
ステップS110の処理で失火判定要件が成立していると判定されたときには、続いて、ディザ制御フラグFが値1であるか否かを判定する(ステップS120)。ディザ制御フラグFが値0であるときには、ディザ制御が実行されないから、判定用閾値dωrefを所定値dωref1として失火判定を実行して(ステップS170)、本ルーチンを終了する。失火判定では、まずは、燃焼室毎に点火時期が到来すると、その時点で算出されている角速度ωegと当該燃焼室の前回の点火時期における角速度ωegとに基づいてエンジン22の回転変動量Δωを算出し、回転変動量Δωと判定用閾値dωrefとを比較する。ここで、判定用閾値dωrefは、当該燃焼室において失火が発生しているか否かを判定するための閾値である。そして、回転変動量Δωが判定用閾値dωref以上であるときには、当該燃焼室において失火が発生することにより回転変動量Δωが大きくなっている可能性があると判断して、続いて、回転変動量Δωの時間波形と予め定めた判定用波形とを比較する。そして、回転変動量Δωの時間波形が判定用波形と誤差の範囲内で同一であるときには、失火が生じていないと判定し、回転変動量Δωの時間波形が判定用波形より誤差の範囲内を超えて大きくなっているときには、失火が生じていると判定する。こうした判定により、失火が生じているか否かを判定することができる。なお、所定値dωref1は、失火が生じていない場合において、ディザ制御を実行していないときおよびディザ率が目標値Rdcに追従しているときにおけるエンジン22の回転変動量Δωの最大値より若干大きい値として予め実験や解析などにより設定されている。
ステップS120の処理でディザ制御フラグFが値1であると判定されたときには、入力された各気筒の実噴射量Pirを用いて、実ディザ率Rdrを設定する(ステップS130)。実ディザ率Rdrは、各気筒の実噴射量Pirの総和を気筒数で除した実気筒平均噴射量に対するリッチとした気筒の実噴射量Pirから実気筒平均噴射量を減じた増量値の比率の総和である。例えば、エンジン22の実気筒平均噴射量に対して、所定回転Nrefの間、最初に点火する気筒の実燃料噴射量Pirが5.2%減のリーンで、以降点火順に、10.3%増のリッチ、5.1%減のリーン,5.1%減のリーン,10.1%増のリッチ,5.0%減のリーンとなっているときには、実ディザ率Rdrは、0.204(=0.103(10.3%)+0.101(10.1%))となる。なお、実ディザ率Rdrは、実気筒平均噴射量に対する実気筒平均噴射量からリーンとした気筒の実噴射量Pirを減じた減少量の比率の総和としてもよい。
続いて、実ディザ率Rdrが判定用閾値Rdref以上であるか否かを判定する(ステップS140)。判定用閾値Rdrefは、失火が生じていないにも拘わらず、ディザ制御によるエンジン22の回転変動量Δωが所定値dωref1を超えてしまうディザ率として予め定めた値であり、目標値Rdcより大きな値に設定される。ディザ率が目標値Rdcとなるようにディザ制御を実行しても、制御誤差により実際のディザ率(実ディザ率Rdr)が大きくなり、エンジン22の回転変動量Δωが所定値dωref1以上となって、失火判定で誤判定が生じることがある。ステップS140の処理は、こうした誤判定が生じる可能性があるか否かを判定する処理となっている。
ステップS140の処理で実ディザ率Rdrが判定用閾値Rdref未満であると判定したときには、判定用閾値dωrefとして所定値dωref1を用いて失火判定をしても差し支えないと判断して、ステップS170の処理に進み、判定用閾値dωrefとして所定値dωref1を用いて失火判定を実行して(ステップS170)、本ルーチンを終了する。
ステップS140の処理で実ディザ率Rdrが判定用閾値Rdref以上であると判定したときには、判定用閾値dωrefとして所定値dωref1を用いて失火判定を実行すると誤判定する可能性があると判断して、実ディザ率Rdrを用いて引き上げ係数kを設定し(ステップS150)、引き上げ係数kを用いて判定用閾値dωrefを引き上げる処理を実行し(ステップS160)、ステップS160の処理で引き上げた判定用閾値dωrefを用いて失火判定を実行して(ステップS170)、本ルーチンを終了する。ステップS150の処理では、引き上げ係数kは、制御誤差により実際のディザ率(実ディザ率Rdr)が目標値Rdcより大きくなりエンジン22の回転変動量Δωが大きくなっても、失火の判定を誤判定しないように判定用閾値dωrefを調整するための係数であり、値1より大きい値として設定される。実ディザ率Rdrが大きいときは小さいときに比してエンジン22の回転変動量Δωが大きくなる、すなわち、実ディザ率Rdrが大きいほどエンジン22の回転変動量Δωが大きくなることから、引き上げ係数kも、実ディザ率Rdrが大きいときは小さいときに比して大きくなるように、すなわち、実ディザ率Rdrが大きいほど大きくなるように設定される。こうした処理により、判定用閾値dωrefは、ディザ制御フラグFが値0であるときに比して大きく設定される。
図3は、失火が生じていないときにおけるエンジン22の回転変動量Δωの時間変化の一例を示す説明図である。図中、実線は、ディザ制御を実行しているときにおける回転変動量Δωと、ディザ制御を実行しており、且つ、実ディザ率Rdrが判定用閾値Rdref以上であるときの判定用閾値dωref(=k・dωref1)との時間変化の一例を示している。破線は、ディザ制御を実行していないときにおける回転変動量Δωと判定用閾値dωref(=dωref1)との時間変化の一例を示している。ディザ制御では、エンジン22の空燃比を気筒別にリッチまたはリーンとなるように燃料噴射を行なってエンジン22を運転するから、図示するように、エンジン22には回転変動が生じる。ディザ制御において、失火が生じていないときにおいて、実際のディザ率Rdrが目標値Rdcに追従しているときには、図示するように、回転変動量Δωが所定値dωref1未満となるから、失火の判定では失火が生じていないと判定される。しかしながら、実際のディザ率Rdrが目標値Rdcから大きくなる方向にずれて判定用閾値Rdref以上となると、回転変動量Δωが所定値dωref1を超えることがある。実施例では、実ディザ率Rdrが判定用閾値Rdref以上のときには、判定用閾値dωrefを所定値dωref1より大きい値(k・dωref)に設定するから、失火の誤判定を抑制することができる。
以上説明した実施例の内燃機関装置20によれば、失火判定条件が成立し、且つ、ディザ制御フラグFが値1である場合において、実ディザ率Rdrが判定用閾値Rdref以上であるときに、ディザ制御フラグFが値0のときに比して判定用閾値dωrefを大きく設定することにより、失火判定での誤判定を抑制することができる。
実施例の内燃機関装置20では、ステップS140〜S160の処理で、実ディザ率Rdrが判定用閾値Rdref以上であるときに実ディザ率Rdrを用いて引き上げ係数kを設定して、係数kに所定値dωref1を乗じたものを判定用閾値dωrefに設定している。しかしながら、図4の変形例の失火判定ルーチンの一例に示すように、ステップS140の処理に変えてステップS200の処理を実行して、リーンとなっている気筒に対して失火判定を実行するか否かを判定し、リーンとなっている気筒に対して失火判定を実行するときには実ディザ率Rdrを用いて引き上げ係数kを設定して、係数kに所定値dωref1を乗じたものを判定用閾値dωrefに設定してもよい。
図5は、変形例の内燃機関装置において、失火が生じていないときにおけるエンジン22の回転変動量Δωの時間変化の一例を示す説明図である。図中、実線は、ディザ制御を実行しているときにおける回転変動量Δωと判定用閾値dωref(=k・dωref1)との時間変化の一例を示している。破線は、ディザ制御を実行していないときにおける回転変動量Δωと判定用閾値dωref(=dωref1)との時間変化の一例を示している。リーンとなっている気筒を点火するときのエンジン22の回転変動量Δωはリッチとなっている気筒を点火するときより大きい。そのため、リーンとなっている気筒に失火が生じているか否かを判定するときは、リッチとなっている気筒に失火が生じているか否かを判定するときに比して失火の誤判定を生じやすい。変形例では、図示するように、リーンとなっている気筒の失火を判定するときには実ディザ率Rdrを用いて引き上げ係数kを設定して、係数kに所定値dωref1を乗じたものを判定用閾値dωrefに設定する。こうすれば、失火の判定における誤判定を抑制することができる。
実施例の内燃機関装置20では、ステップS160の処理で、所定値dωref1に値1より大きい係数kを乗じたものを判定用閾値dωrefに設定することで判定用閾値dωrefを引き上げている。しかしながら、判定用閾値dωrefを所定値dωref1より大きい値を設定すればよいから、判定用閾値dωrefを、例えば、所定値dωref1より大きい所定値dωref2を設定してもよい。
実施例の内燃機関装置20では、ステップS120の処理でディザ制御フラグFが値1であると判定されたときには、ステップS130〜S160の処理で、実ディザ率Rdrが判定用閾値Rdref以上であるときに実ディザ率Rdrを用いて引き上げ係数kを設定して、係数kに所定値dωref1を乗じたものを判定用閾値dωrefに設定している。しかしながら、ステップS120の処理でディザ制御フラグFが値1であると判定されたときには、ステップS140の処理を実行することなく、ステップS130,S150,S160の処理を実行してもよい。
実施例の内燃機関装置20では、本発明を失火を判定する処理に適用する場合について説明した。しかしながら、本発明は、エンジン22の回転変動量Δωを用いて異常判定する処理に適用すればよいから、例えば、燃料噴射量の気筒間のインバランスが生じているか否かを判定するインバランス判定の処理に適用してもよい。図6は、本発明をインバランス判定に適用したときのインバランス判定ルーチンの一例を示すフローチャートである。このルーチンで実行する処理は、図2に例示した失火判定ルーチンのステップS110,S170の処理に代えてステップS310,S370の処理を実行する点と判定用閾値dωrefがインバランス判定をする際の閾値である点とを除いて、図2に例示した失火判定ルーチンと同一の処理となっている。したがって、同一の処理には同一の符号を付し、詳細な説明を省略する。
ステップS100の処理で、必要なデータを入力する処理を実行すると、ステップS310の処理では、インバランス判定条件が成立しているか否かを判定する(ステップS310)。インバランス判定条件は、インバランス判定を実行するための前提条件であり、冷却水温Twが閾値Twref以上であるときに、成立していると判定する。閾値Twrefは、エンジン22の暖機が完了しているか否かの判定に用いられる閾値であり、例えば、70℃,75℃,80℃などを用いることができる。
ステップS310の処理で、インバランス判定条件が成立していないと判定されたときには、本ルーチンを終了する。
ステップS310の処理で、インバランス判定条件が成立していると判定されたときには、ディザ制御フラグFが値1であるか否かを判定し(ステップS120)、ディザ制御フラグFが値0であるときには、インバランス判定を実行して(ステップS370)、本ルーチンを終了する。ここで、インバランス判定は、燃料噴射量の気筒間のインバランスが生じているか否かを判定する処理である。燃料噴射量の気筒間のインバランスとしては、いずれかの気筒の燃料噴射量が他の気筒の燃料噴射量よりも多くなっているリッチインバランスと、いずれかの気筒の燃料噴射量が他の気筒の燃料噴射量よりも少なくなっているリーンインバランスと、がある。実施例のインバランス判定では、燃焼室毎に点火時期が到来すると、その時点で算出されている角速度ωegと当該燃焼室の前回の点火時期における角速度ωegとに基づいてエンジン22の回転変動量Δωを算出し、回転変動量Δωと判定用閾値dωrefとを比較する。ここで、判定用閾値dωrefは、予め定められた所定値dωref1に設定されている。所定値dωref1は、ディザ制御を実行していないときおよびディザ率が目標値Rdcに追従しているときにおけるエンジン22の回転変動量の最大値より若干大きい値として予め実験や解析などにより設定されている。そして、回転変動量Δωが判定用閾値dωref以上であるときには、当該燃焼室においてインバランスが生じていると判定する。
ステップS120の処理で、ディザ制御フラグFが値1であると判定されたときには、入力された実噴射量Pirを用いて、実ディザ率Rdrを設定し(ステップS130)、実ディザ率Rdrが判定用閾値Rdref以上であるか否かを判定する(ステップS140)。そして、判定用閾値Rdref未満であると判定したときには、判定用閾値dωrefとして所定値dωref1を用いてインバランス判定を実行しても差し支えないと判断して、ステップS170の処理に進み、判定用閾値dωrefとして所定値dωref1を用いてインバランス判定を実行し(ステップS370)、を終了する。なお、ディザ制御は、気筒間の燃料噴射量にインバランスを生じさせる制御であるが、所定値dωrefは、ディザ制御におけるインバランスの程度を超えていることを判定可能な閾値として設定されている。したがって、ディザ制御フラグFが値1であるときのインバランス判定は、ディザ制御におけるインバランスの程度を超えたインバランスが生じているか否かを判定する処理となっている。
ステップS140の処理で実ディザ率Rdrが判定用閾値Rdref以上であると判定したときには、判定用閾値dωrefとして所定値dωref1を用いてインバランス判定を実行すると誤判定する可能性があると判断して、実ディザ率Rdrを用いて引き上げ係数kを設定し(ステップS150)、引き上げ係数kを用いて判定用閾値dωrefを引き上げる処理を実行し(ステップS160)、ステップS160の処理で引き上げた判定用閾値dωrefを用いてインバランス判定を実行して(ステップS370)、本ルーチンを終了する。こうすれば、実ディザ率Rdrが目標値Rdcより大きくなっているときでも、インバランス判定での誤判定を抑制することができる。
また、本発明をインバランス判定に適用する場合、図6に例示した変形例のインバランス判定ルーチンに代えて、図7に例示する変形例のインバランス判定ルーチンを実行してもよい。図7に例示する変形例のインバランス判定ルーチンは、図4に例示した失火判定ルーチンのステップS110,S170の処理に代えて上述したステップS310,S370の処理を実行する点と、判定用閾値dωrefがインバランス判定をする際の閾値である点とを除いて、図4に例示した失火判定ルーチンと同一の処理となっている。このように、インバランス判定において、リーンとなっている気筒にディザ制御におけるインバランスの程度を超えるインバランスが生じているか否かを判定するときに実ディザ率Rdrを用いて引き上げ係数kを設定して、係数kに所定値dωref1を乗じたものを判定用閾値dωrefに設定してもよい。これは、リーンとなっている気筒を点火するときのエンジン22の回転変動量Δωがリッチとなっている気筒を点火するときより大きく、リーンとなっている気筒にインバランスが生じているか否かを判定するときは、リッチとなっている気筒にインバランスが生じているか否かを判定するときに比してインバランス判定を誤判定しやすいからである。変形例では、リーンとなっている気筒のインバランスを判定するときに実ディザ率Rdrを用いて引き上げ係数kを設定して、係数kに所定値dωref1を乗じたものを判定用閾値dωrefに設定する。こうすれば、インバランス判定における誤判定を抑制することができる。
実施例の内燃機関装置20では、ディザ制御要求フラグFを、第1条件〜第4条件のうち少なくとも1つの条件が成立していないときには値0に設定し、第1条件〜第4条件の全ての条件が成立しているときには値1に設定している。しかしながら、少なくとも第1条件が成立しているときに値1に設定されればよいから、第4条件を考慮せずに第1〜第3条件が成立しているときに値1に設定したり、第2,第3条件を考慮せずに第1,第4条件が成立したときに値1に設定してもよい。また、第1〜第4条件に限定されず、他の条件に基づいてディザ制御要求フラグFを設定してもよい。
実施例の主要な要素と課題を解決するための手段の欄に記載した発明の主要な要素との対応関係について説明する。実施例では、エンジン22が「内燃機関」に相当し、ECU24が「制御装置」に相当する。
なお、実施例の主要な要素と課題を解決するための手段の欄に記載した発明の主要な要素との対応関係は、実施例が課題を解決するための手段の欄に記載した発明を実施するための形態を具体的に説明するための一例であることから、課題を解決するための手段の欄に記載した発明の要素を限定するものではない。即ち、課題を解決するための手段の欄に記載した発明についての解釈はその欄の記載に基づいて行なわれるべきものであり、実施例は課題を解決するための手段の欄に記載した発明の具体的な一例に過ぎないものである。
以上、本発明を実施するための形態について実施例を用いて説明したが、本発明はこうした実施例に何等限定されるものではなく、本発明の要旨を逸脱しない範囲内において、種々なる形態で実施し得ることは勿論である。