以下、実施形態について図面を参照して説明する。本実施形態は、車両用の筒内噴射式の多気筒ガソリンエンジンを制御する制御システムとして具体化している。まず、図1に基づいてエンジン制御システムの概略構成を説明する。なお、以下の各実施形態相互において、互いに同一又は均等である部分には、図中、同一符号を付しており、同一符号の部分についてはその説明を援用する。
エンジン11において、吸気管12の最上流部にはエアクリーナ13が設けられ、エアクリーナ13の下流側には、吸入空気量を検出するエアフローメータ14が設けられている。エアフローメータ14の下流側には、モータ15によって開度調節されるスロットルバルブ16と、スロットルバルブ16の開度(スロットル開度)を検出するスロットル開度センサ17とが設けられている。
スロットルバルブ16の下流側にはサージタンク18が設けられ、サージタンク18において、吸気管圧力を検出する吸気管圧力センサ19が設けられている。サージタンク18には、エンジン11の各気筒21に空気を導入する吸気マニホールド20が接続されている。エンジン11の各気筒21には、それぞれ筒内に燃料を直接噴射する電磁式の燃料噴射弁30が取り付けられている。エンジン11のシリンダヘッドには、気筒21ごとに点火プラグ22が取り付けられており、各気筒21の点火プラグ22の火花放電によって筒内の混合気に着火される。
エンジン11の排気管23には、排気を検出対象にして混合気の空燃比又はリッチ/リーン等を検出する排気センサ24が設けられている。排気センサ24は、空燃比センサ、酸素センサ等である。排気センサ24の下流側には、排気を浄化する三元触媒等の触媒25が設けられている。
エンジン11のシリンダブロックには、冷却水温を検出する冷却水温センサ26や、ノッキングを検出するノックセンサ27が取り付けられている。クランク軸28の外周側には、クランク軸28が所定クランク角回転するごとにパルス信号を出力するクランク角センサ29が取り付けられている。クランク角センサ29のクランク角信号に基づいて、クランク角やエンジン回転速度が検出される。これら各種センサの出力はECU40に入力される。
ECU40は、マイクロコンピュータを主体として構成された電子制御ユニットであり、内蔵されたROM(記憶媒体)に記憶されている制御プログラムを用い、各種センサの検出信号に基づいてエンジン11の各種制御を実施する。ECU40が燃料噴射制御装置に相当する。ECU40は、エンジン運転状態に応じた要求噴射量を算出し、その要求噴射量に基づいて燃料噴射弁30の駆動を制御するとともに、点火プラグ22の点火時期を制御する。
燃料噴射制御について詳しくは、ECU40は、燃料噴射制御を実施するエンジン制御用のマイコン41と、燃料噴射弁駆動用の駆動IC42とを備えている。マイコン41は、エンジン運転状態に基づいて要求噴射量を算出するとともに、算出した要求噴射量に基づいて噴射パルス幅を算出する。また、算出した噴射パルス幅を駆動IC42に出力する。駆動IC42は、噴射パルス幅に基づき生成された噴射パルスにより燃料噴射弁30を駆動する。これにより、要求噴射量分の燃料を燃料噴射弁30から噴射させる。
本実施形態において、エンジン11は4気筒ガソリンエンジンであり、各気筒に設けられた燃料噴射弁30による燃料噴射として、1燃焼サイクル内の吸気行程及び圧縮行程のそれぞれにおいて噴射パルスを出力し、燃料を噴射する。なお、第1気筒♯1~第4気筒♯4の燃焼順序は♯1→♯3→♯4→♯2である。燃料噴射に際しては、燃焼順序が一つ置きとなる2つの気筒をひとまとめにして駆動グループ1,2としており、駆動グループごとの駆動系統で各燃料噴射弁30が駆動される。本実施形態では、第1気筒♯1及び第4気筒♯4が駆動グループ1に属し、第2気筒♯2及び第3気筒♯3が駆動グループ2に属している。
燃料噴射弁30には、マイナス端子電圧Vmを検出する電圧センサ43や、電磁部(コイル)に流れる通電電流を検出する電流センサ44が設けられている。これら電圧センサ43及び電流センサ44の検出結果はECU40に逐次入力される。
本実施形態の燃料噴射制御においては、燃料噴射弁30の弁体をフルリフト位置まで到達させて、フルリフト状態で所望量の燃料を噴射するフルリフト噴射と、燃料噴射弁30の弁体がフルリフト位置に到達する前のパーシャルリフト状態で弁体の開弁側への移動を終了させ、その状態で所望の微少量の燃料を噴射するパーシャルリフト噴射とを実施している。パーシャルリフト噴射は、例えば、メイン噴射(本実施形態では吸気行程噴射)の後に実施される燃料噴射(本実施形態では圧縮行程噴射)において行われる。
フルリフト噴射及びパーシャルリフト噴射について、図2を用いて説明する。なお、図2中、(a)はフルリフト噴射時の動作を示し、(b)はパーシャルリフト噴射時の動作を示している。
図2に示すように、燃料噴射弁30は、通電により電磁力を生じさせる電磁部としてのコイル31と、磁性体よりなる固定コア32と、磁性体よりなり電磁力によって固定コア32の側に吸引される可動コア33と、可動コア33と一体的に駆動されるニードル状の弁体34と、弁体34を閉弁側に付勢する第1スプリング35と、可動コア33を反閉弁側に付勢する第2スプリング36とを有している。コイル31への通電に伴い弁体34が弁座から離れて開弁側に移動することで、燃料噴射弁30が開弁状態となり、燃料噴射が行われる。なお、第2スプリング36の付勢力は、第1スプリング35の付勢力よりも小さく設定されている。
図2(a)、(b)では噴射パルス幅が相違している。図2(a)に示すように、弁体リフト量がフルリフト量となる場合には、噴射パルス幅が比較的長くなる。この場合、弁体34が、可動コア33が固定コア32側のストッパ32aに突き当たる位置であるフルリフト位置に到達する。一方、図2(b)に示すように、弁体リフト量がパーシャルリフト量となる場合には、噴射パルス幅が比較的短くなる。この場合、弁体34が、可動コア33がストッパ32aに突き当たる手前の状態であり、フルリフト位置に到達しないパーシャルリフト状態となる。噴射パルスの立ち下がりに伴いコイル31の通電が停止されると、可動コア33と弁体34とが閉弁位置に戻ることで燃料噴射弁30が閉弁状態となり、燃料噴射が停止される。なお、可動コア33と弁体34とが別体で構成されているため、弁体34が閉位置に到達した際には、弁体34はその閉位置で保持されるのに対し、可動コア33は単独でより先端側に移動する。
図3は、パーシャルリフト噴射を実施するパーシャルリフト領域と、フルリフト噴射を実施するフルリフト領域とを示す図である。図3に示すように、パーシャルリフト領域及びフルリフト領域のいずれにおいても、噴射パルス幅(すなわち通電時間)が長いほど、燃料噴射量が直線的に多くなる傾向を有する。
ここで、高圧の燃料を燃料噴射弁30から筒内に噴射する筒内噴射式エンジン11では、噴射パルス幅に対する燃料噴射量の変化特性のリニアリティ(直線性)が、パーシャルリフト領域で悪化しやすく、噴射パルス幅に対応する燃料噴射量の個体差が大きくなりやすい。その一方で、噴射量ばらつきが大きいと、燃料噴射弁30から噴射される燃料量を精密に調整することができず、排気エミッションやドライバビリティ等の悪化を招くことが懸念される。特にパーシャルリフト噴射では噴射量が微少であり、この微少噴射により噴射量ばらつきの影響が大きくなりやすい。そのため、各燃料噴射弁30、ECU40の各噴射系統について、個々の噴射量ばらつきを精度良く検出し、噴射量ばらつきに応じた噴射量制御を行うことが必要となる。
燃料噴射弁30の噴射量ばらつきとしては、燃料噴射弁30のリフト挙動の個体差に起因するばらつき(以下、「機械的ばらつき」ともいう。)と、燃料噴射弁30の駆動を制御するマイコン41及び駆動IC42の回路素子の個体差に起因するばらつき(以下、「電気的ばらつき」ともいう。)と、が存在する。機械的ばらつきは、燃料噴射を実施するアクチュエータである燃料噴射弁30側の噴射量ばらつきであり、例えば固定コア32と可動コア33との組み付け状態や、弁体34の動きやすさ等に起因して生じる。一方、電気的ばらつきは、燃料噴射弁30の駆動を制御するECU40側の噴射量ばらつきであり、例えばマイコン41や駆動IC42の回路素子における磁気効率等によって生じる。この場合、ECU40の回路素子における磁気抜けが大きいほど(すなわち、磁気効率が悪いほど)、燃料噴射弁30への噴射パルスをオフしてから閉弁するまでの所要時間が短くなり、閉弁時期が早くなる。
そこで本実施形態では、燃料噴射弁30の噴射量ばらつきのうち、電気的ばらつきを補正するための噴射補正量である電気的ばらつき値と、機械的ばらつきを補正するための噴射補正量である機械的ばらつき値とを算出し、これら算出した電気的ばらつき値及び機械的ばらつき値に基づいて、燃料噴射量の補正量(噴射補正量)を算出することとしている。なお、機械的ばらつきが第1補正量に相当し、電気的ばらつき値が第2補正量に相当する。本実施形態の噴射量ばらつきの算出処理について、以下に詳しく説明する。
燃料噴射弁30は、噴射パルスのオフに伴い、誘電起電力によってマイナス端子電圧Vmが変化する。この特性について図4を用いて説明する。図4は、燃料噴射弁30の弁体34を駆動させて燃料噴射弁30から所定量の燃料を噴射させたときの挙動を示している。図4中、(a)は、燃料噴射弁30のプラス端子電圧Vpについて、(b)はマイナス端子電圧Vmについて、(c)はインジェクタ駆動電流について、(d)は燃料噴射弁30の噴射率についての挙動をそれぞれ示している。図4から分かるように、燃料噴射弁30のコイル31に通電して開弁させ、その後、噴射パルス幅に対応する時間の経過後に通電を停止させると、通電オフ直後の所定期間では、バッテリ電圧VBよりも高いフライバック電圧(逆起電圧)が発生する(図4(b)参照)。
なお、マイナス端子電圧Vmについて本明細書では、その大きさを絶対値で表している。例えば「Vmが所定値よりも大きい」とは、Vmが所定値よりも負側に大きい値であることを意味している。
こうしたフライバック電圧を利用することにより、燃料噴射弁30における実際の閉弁タイミングを検出することが可能である(図5参照)。具体的には、ECU40は、パーシャルリフト噴射による燃料噴射の実施期間中に、噴射パルスをオフした後のマイナス端子電圧Vmを、ノイズ成分の周波数よりも低い第1周波数f1をカットオフ周波数とする第1ローパスフィルタでフィルタ処理(なまし処理)した第1フィルタ電圧Vsm1を算出する。第1ローパスフィルタは、カットオフ周波数(第1周波数f1)よりも低い周波数帯域を通過域とするローパスフィルタである。
また、ECU40は、噴射パルスをオフした後のマイナス端子電圧Vmを、第1周波数f1よりも低い第2周波数f2をカットオフ周波数とする第2ローパスフィルタでフィルタ処理(なまし処理)した第2フィルタ電圧Vsm2を算出する。なお、第1ローパスフィルタを用いたフィルタ処理及び第2ローパスフィルタを用いたフィルタ処理は、エンジン11の気筒毎に行う。こうした処理により、ECU40は、マイナス端子電圧Vmからノイズ成分を除去した第1フィルタ電圧Vsm1と、閉弁位置検出用の第2フィルタ電圧Vsm2とを算出する。第2ローパスフィルタは、カットオフ周波数(第2周波数f2)よりも低い周波数帯域を通過域とするローパスフィルタである。
続いて、第1フィルタ電圧Vsm1と第2フィルタ電圧Vsm2との差分Vdiff(=Vsm1-Vsm2)を算出する。また、噴射パルスのオフ後の基準タイミング(図5のt3)から、差分Vdiffが閾値Vtを超えるタイミング(図5のt4)までに要した時間を算出し、これを閾値到達時間Tdiffとする。本実施形態では、差分Vdiffと閉弁タイミングとの間に相関があることに着目し、差分Vdiffが閾値Vtを超えるタイミングを閉弁タイミングとして検出する。なお、閾値到達時間Tdiffの算出処理はエンジン11の気筒毎に行い、気筒毎に閉弁タイミングを算出する。閾値到達時間Tdiffが、「燃料噴射弁30の駆動特性に関する情報」に相当する。
基準タイミングについて本実施形態では、噴射パルスをオフした後にマイナス端子電圧Vmが判定値Voffを下回るタイミング(換言すれば、判定値Voffよりも大から小へ移行する最初のタイミング)を基準タイミングとしている。なお、基準タイミングを、噴射パルスのオン時(図5のt1)、あるいは噴射パルスのオフ時(図5のt2)としてもよい。閾値Vtは、燃圧や燃温等に応じた可変値であってもよく、あるいは予め設定された固定値であってもよい。
さらに本実施形態では、コイル31への通電オフに伴い発生するフライバック電圧を利用し、噴射パルスのオフ後のマイナス端子電圧Vmの挙動に基づいて、機械的ばらつき値及び電気的ばらつき値を算出している。具体的には、ECU40は、パーシャルリフト噴射を実施したときの通電オフ後のマイナス端子電圧Vmに基づいて閾値到達時間Tdiff(第1駆動情報に相当)を算出するリフト学習を実施する。また、ECU40は、燃料噴射弁30から燃料を噴射しない期間(本実施形態では、燃料カット中)において、弁体34が駆動しない範囲の所定の噴射パルスで燃料噴射弁30の通電を行い、その通電オフ後のマイナス端子電圧Vmに基づいて閾値到達時間Tdiff(第2駆動情報に相当)を算出するゼロリフト学習を実施する。そして、リフト学習により算出した閾値到達時間Tdiff(以下、「閾値到達時間Tdiff_1」ともいう。)と、ゼロリフト学習により算出した閾値到達時間Tdiff(以下、「閾値到達時間Tdiff_2」ともいう。)と、に基づいて、機械的ばらつき値及び電気的ばらつき値を算出する。なお、電気的ばらつき値が「第1補正量」に相当し、機械的ばらつき値が「第2補正量」に相当する。
図6に、機械的ばらつき及び電気的ばらつきに起因するフライバック電圧の波形の相違を示す。図6中、(a)はリフト学習時、(b)はゼロリフト学習時を示している。図6では、ECU40の回路素子の磁気効率がノミナルよりも悪く、フライバック電圧が速やかに収束する場合を想定している。
ゼロリフト学習では、コイル31への通電は実施するものの、弁体34は駆動させない。この場合、噴射パルスオフ後のマイナス端子電圧Vmは、機械的ばらつきによる影響は受けず、電気的ばらつきの影響を受けてノミナル値からずれる。つまり、図6(b)に示すように、弁体34が駆動しない範囲の噴射パルスで通電を行った場合のマイナス端子電圧Vmのノミナル値からのずれ量(図6中のS1)は電気的ばらつきに起因するものとみなすことができる。
一方、リフト学習では、コイル31への通電により弁体34を駆動させて、燃料噴射弁30から燃料を噴射させる。この場合、噴射パルスオフ後のマイナス端子電圧Vmは、機械的ばらつき及び電気的ばらつきの両方の影響を受けてノミナル値からずれる。つまり、図6(a)に示すように、弁体34が駆動する範囲の噴射パルスで通電を行った場合のマイナス端子電圧Vmのノミナル値からのずれ量は、電気的ばらつきに起因するずれ量(図6中のS1)と、機械的ばらつきに起因するずれ量(図6中のS2)との合算であるとみなすことができる。したがって、ゼロリフト学習でのずれ量S1分を除けば、機械的ばらつきに起因するずれ量を取得できる。
機械的ばらつきは燃料噴射弁30ごとに定まる値であり、また、電気的ばらつきはECU40の駆動系統ごとに定まる値である。リフト学習及びゼロリフト学習によれば、燃料噴射弁30ごとの機械的ばらつきを取得できるとともに、ECU40の駆動系統ごとの電気的ばらつきを取得できる。
図7及び図8は、本実施形態の燃料噴射制御の機能ブロック図である。図7に示すように、ECU40のマイコン41は、噴射パルス演算部51と、記憶部52と、を備えている。噴射パルス演算部51は、エンジン運転状態(例えば、エンジン回転速度やエンジン負荷等)に基づいて基本噴射量を算出する。また、記憶部52に記憶されている補正パラメータを読み出し、その読み出した補正パラメータに基づいて基本噴射量を補正することにより要求噴射量を算出する。本実施形態では、補正パラメータは機械的ばらつき値及び電気的ばらつき値を含んでいる。噴射パルス演算部51は、要求噴射量に応じた噴射パルス幅Tiを表す信号を生成し、駆動IC42に出力する。
駆動IC42は、駆動制御部53と、演算部54と、を備えている。駆動制御部53は、噴射パルス幅Tiを表す信号を噴射パルス演算部51から入力し、噴射パルス幅Tiに基づき生成された噴射パルスにより燃料噴射弁30を開弁させる。演算部54は、噴射パルスのオフ後のマイナス端子電圧Vmの挙動に基づいて燃料噴射量の補正量(ずれ量)を算出する手段として、ゼロリフト学習部55と、リフト学習部56とを備えている。
ゼロリフト学習部55は、図8に示すように、Tdiff算出部55Aと、基準値記憶部55Bと、補正量演算部55Cと、補正量記憶部55Dとを備えている。Tdiff算出部55Aは、所定のゼロリフト学習実行条件が成立した場合に、燃料噴射弁30の弁体34が駆動しない範囲の噴射パルスにより燃料噴射弁30に通電し、閾値到達時間Tdiff_2を算出する。補正量演算部55Cは、Tdiff算出部55Aから閾値到達時間Tdiff_2を入力するとともに、基準値記憶部55Bから、基準値(ノミナル値、定数)を取得する。そして、基準値に対する閾値到達時間Tdiff_2のずれ量として電気的ばらつき値Q1を算出する。電気的ばらつき値Q1は、例えば下記式(1)で表される。
Q1=(閾値到達時間Tdiff_2)/基準値 …(1)
算出した電気的ばらつき値Q1は補正量記憶部55Dに記憶される。
リフト学習部56は、図8に示すように、Tdiff算出部56Aと、第1演算部56Bと、推定噴射量算出部56Cと、基準噴射量記憶部56Dと、第2演算部56Eとを備えている。Tdiff算出部56Aは、所定のリフト学習実行条件が成立した場合に、弁体34を所定のパーシャルリフト位置まで変位可能な噴射パルスにより燃料噴射弁30に通電し、閾値到達時間Tdiff_1を算出する。第1演算部56Bは、Tdiff算出部56Aから閾値到達時間Tdiff_1を入力するとともに、補正量記憶部55Dから電気的ばらつき値Q1を取得する。そして、閾値到達時間Tdiff_1に電気的ばらつき値Q1を乗算して、補正後閾値到達時間Tdiff*Q1を算出する。なお、補正後閾値到達時間Tdiff*Q1は、閾値到達時間Tdiff_1から電気的ばらつき分が取り除かれ、機械的ばらつき分が含まれた、閉弁タイミングに関する情報である。
推定噴射量算出部56Cは、補正後閾値到達時間Tdiff*Q1から推定噴射量Rを算出する。ここでは、補正後閾値到達時間Tdiff*Q1に補正係数Kを乗算することにより推定噴射量Rを算出する。第2演算部56Eは、推定噴射量算出部56Cから推定噴射量Rを入力するとともに、基準噴射量記憶部56Dから、基準噴射量(ノミナル値、定数)を取得する。そして、基準噴射量に対する推定噴射量Rのずれ量として機械的ばらつき値Q2を算出する。機械的ばらつき値Q2は、例えば下記式(2)で表される。
Q2=推定噴射量/基準噴射量 …(2)
ECU40のマイコン41は、駆動IC42から入力された電気的ばらつき値Q1及び機械的ばらつき値Q2を、噴射量ばらつきの補正量として記憶部52に記憶する。マイコン41は、記憶部52に記憶された電気的ばらつき値Q1及び機械的ばらつき値Q2を用いて基本噴射量を補正し、その補正された噴射パルスに基づいて燃料噴射弁30を開弁駆動する。リフト学習部56が「第1情報取得部」の機能を実現し、ゼロリフト学習部55が「第2情報取得部」の機能を実現する。また、リフト学習部56及びゼロリフト学習部55が「補正量算出部」の機能を実現する。
なお、電気的ばらつき値Q1を算出する際には、ゼロリフト学習用の通電を1回行うことによって閾値到達時間Tdiff_2を取得し、その取得した閾値到達時間Tdiff_2を用いて電気的ばらつき値Q1を算出してもよい。あるいは、ゼロリフト学習用の通電を複数回行うことによって閾値到達時間Tdiff_2を複数個取得し、その平均値から電気的ばらつき値Q1を算出してもよい。また、機械的ばらつき値Q2についても同じく、1回の閾値到達時間Tdiff_1により機械的ばらつき値Q2を算出してもよく、複数回の燃料噴射によって取得した閾値到達時間Tdiff_1の平均値から機械的ばらつき値Q2を算出してもよい。
次に、本実施形態におけるばらつき値算出処理の処理手順について図9のフローチャートを用いて説明する。この処理は、駆動IC42により所定周期毎(例えば1燃焼サイクル毎)に実行される。
図9において、ステップS101では、ゼロリフト学習が完了したか否かを判定する。ゼロリフト学習が未だ完了していない場合には、ステップS102へ進み、ゼロリフト学習実行条件が成立しているか否かを判定する。
ゼロリフト学習実行条件としては、以下の条件B1~B7が設定されており、これらの条件B1~B7の全てを満たす場合にステップS102で肯定判定される。
B1:今回のドライビングサイクルで未だゼロリフト学習が完了していないこと。
B2:全気筒について、減速時の燃料カット中であること。
B3:エンジン回転速度が、燃料カット状態から燃焼状態に復帰される所定の復帰回転速度以上であること。
B4:燃料噴射弁30から噴射される燃料の圧力(燃圧)が、ゼロリフト学習のための通電による意図しない燃料噴射を回避可能な所定燃圧以上であること。
B5:バッテリ電圧が、燃料噴射弁30の作動を担保可能な所定電圧以上であること。
B6:気筒内圧力が、ゼロリフト学習のための通電による意図しない燃料噴射を回避可能な所定圧力以上であること。
B7:フェールセーフの実行中でないこと。
ゼロリフト学習実行条件が成立していなければ、そのまま本ルーチンを終了する。一方、ゼロリフト学習実行条件が成立している場合には、ステップS103へ進み、図11に示すフローチャートにしたがってゼロリフト学習を実行する。その後、ステップS104では、ゼロリフト学習によって算出した電気的ばらつき値Q1をマイコン41に出力し、マイコン41の記憶部52に記憶又は更新させる。
ゼロリフト学習が完了している場合には、ステップS101で肯定判定されてステップS105へ進む。ステップS105では、リフト学習実行条件が成立しているか否かを判定する。リフト学習実行条件としては、ゼロリフト学習が完了していること、燃料カット中ではないこと、及び触媒早期暖機中であること、の条件を少なくとも含み、これら全ての条件が成立している場合に肯定判定される。
リフト学習実行条件が成立している場合には、ステップS106へ進み、リフト学習を実行する。ステップS107では、リフト学習によって算出した機械的ばらつき値Q2をマイコン41に出力し、マイコン41の記憶部52に記憶又は更新させる。
次に、リフト学習及びゼロリフト学習において閾値到達時間Tdiffを算出する処理について、図10のフローチャートを用いて説明する。この処理は、駆動IC42により所定周期毎に(例えば数msec毎に)実行される。
図10において、ステップS201では、燃料噴射弁30のマイナス端子電圧Vmを取得する。続くステップS202では、マイナス端子電圧Vmを第1ローパスフィルタでフィルタ処理して第1フィルタ電圧Vsm1を算出する。第1ローパスフィルタは、第1フィルタ電圧の前回値Vsm1(k-1)とマイナス端子電圧の今回値Vm(k)とを用いて、第1フィルタ電圧の今回値Vsm1(k)を求めるデジタルフィルタであり、下記(3)式で実装されている。
Vsm1(k)=
{(n1-1)/n1}×Vsm1(k-1)+(1/n1)×Vm(k) …(3)
なお、第1ローパスフィルタの時定数n1は、マイナス端子電圧Vmのサンプリング周波数fs(=1/Ts)と、第1ローパスフィルタのカットオフ周波数(第1周波数f1)とを用いた下記(4)式の関係を満たすように設定されている。
1/fs:1/f1=1:(n1-1) …(4)
続くステップS203では、マイナス端子電圧Vmを第1周波数f1よりも低い第2周波数f2をカットオフ周波数とする第2ローパスフィルタでフィルタ処理した第2フィルタ電圧Vsm2を算出する。第2ローパスフィルタは、第2フィルタ電圧の前回値Vsm2(k-1)と、マイナス端子電圧の今回値Vm(k)とを用いて第2フィルタ電圧の今回値Vsm2(k)を求めるデジタルフィルタであり、下記(5)式で実装されている。
Vsm2(k)=
{(n2-1)/n2}×Vsm2(k-1)+(1/n2)×Vm(k) …(5)
なお、第2ローパスフィルタの時定数n2は、マイナス端子電圧Vmのサンプリング周波数fs(=1/Ts)と、第2ローパスフィルタのカットオフ周波数(第2周波数f2)とを用いた下記(6)式の関係を満たすように設定されている。
1/fs:1/f2=1:(n2-1) …(6)
続くステップS204では、第1フィルタ電圧Vsm1と第2フィルタ電圧Vsm2との差分Vdiff(=Vsm1-Vsm2)を算出する。なお、差分Vdiffが0以上にならないようにガード処理して、マイナス成分だけを抽出するようにしてもよい。
続くステップS205では、閾値Vtを取得するとともに、閾値到達時間の前回値Tdiff(k-1)を取得する。ステップS206では、噴射パルスがオフか否かを判定する。ステップS206で肯定判定された場合には、ステップS207へ進み、燃料噴射弁30のマイナス端子電圧Vmが判定値Voffを下回るタイミング(判定値Voffよりも大から小になるタイミング)であるか否かを判定する。ステップS207で肯定判定された場合には、ステップS209へ進み、電圧変曲点時間の今回値Tdiff(k)を「0」にリセットする。
一方、ステップS207で否定判定された場合には、ステップS208へ進み、第1フィルタ電圧Vsm1と第2フィルタ電圧Vsm2との差分Vdiffが閾値Vtを超えたか否か(閾値Vtよりも小から大になったか否か)を判定する。ステップS208で否定判定された場合には、ステップS210へ進み、閾値到達時間の前回値Tdiff(k-1)に所定値Ts(本ルーチンの演算周期)を加算して閾値到達時間の今回値Tdiff(k)を求めることで、閾値到達時間Tdiffをカウントアップする。
一方、ステップS208で、差分Vdiffが閾値Vtを超えたと判定されるとステップS211へ進み、閾値到達時間の今回値Tdiff(k)を前回値Tdiff(k-1)に保持する。これにより、噴射パルスのオフ後に燃料噴射弁30のマイナス端子電圧Vmが判定値Voffを下回るタイミング(基準タイミング)から、差分Vdiffが閾値Vtを超えるタイミングまでの時間を閾値到達時間Tdiffとして算出する。
なお、ステップS206で噴射パルスがオフではない(つまり、噴射パルスがオンである)と判定された場合には、今回値Tdiff(k)を前回値Tdiff(k-1)で保持し、閾値到達時間Tdiffの算出値を次の基準タイミングまで保持する。
次に、ゼロリフト学習の処理手順について、図11のフローチャートを用いて説明する。この処理は、駆動IC42により所定の演算周期で(例えば、噴射更新タイミング毎に)実行される。
図11において、ステップS301では、ゼロリフト学習実行条件(B1~B7)が成立しているか否かを判定する。ゼロリフト学習実行条件が成立していれば、ステップS302へ進み、実行条件成立フラグをセットするとともに、ゼロリフト学習用の噴射モードに設定する。具体的には、各気筒における燃料噴射を吸気行程1回に設定する。また、噴射タイミングをゼロリフト学習用の所定時期に設定するとともに、噴射時間をゼロリフト学習用の所定時間Doffに設定する。所定時間Doffは、燃料噴射弁30の弁体34が駆動しない通電パルス幅に対応する値に設定されている(図6(b)参照)。
ステップS303では、ゼロリフト学習カウンタをカウントアップする。続くステップS304では、ゼロリフト学習カウンタが第1判定値TH1よりも大きいか否かを判定する。ゼロリフト学習カウンタが第1判定値TH1以下であれば一旦本ルーチンを終了する。一方、ゼロリフト学習カウンタが第1判定値TH1よりも大きい場合には、ステップS305へ進み、インジェクタ駆動電流をゼロリフト学習用の所定電流値Aoffに設定するとともに、燃料カット中の燃料噴射弁30の駆動を許可する。ここで、所定電流値Aoffは、燃料噴射弁30の弁体34が駆動しない電流値である。所定電流値Aoffは、エンジン運転状態(例えば燃圧等)に応じて可変に設定されてもよく、固定値であってもよい。
続くステップS306では、ゼロリフト学習カウンタが第2判定値TH2よりも大きいか否かを判定する。ゼロリフト学習カウンタが判定値TH2よりも大きいことを条件にステップS307へ進む。ステップS307では、ゼロリフト学習用値(本実施形態では、閾値到達時間Tdiff_2)の検出を許可する。また、ステップS308では、閾値到達時間Tdiff_2に基づいて電気的ばらつき値Q1を算出する。
ゼロリフト学習実行条件が成立していない場合には、ステップS309へ進み、噴射モードを通常モードに設定する。また、ステップS310では、ゼロリフト学習カウンタをリセットするとともに、ゼロリフト学習用値の検出を禁止する。その後本ルーチンを終了する。
図11のフローチャートによれば、ECU40は、噴射モードを、通常時の燃料噴射態様である通常モードから、燃料噴射弁30の弁体34が駆動しない範囲で通電して閾値到達時間Tdiffを取得するゼロリフト学習モードに切り替える場合には、ゼロリフト学習実行条件が成立しても直ちにゼロリフト学習モードに切り替えず、所定のディレイ時間が経過した後にゼロリフト学習モードに切り替える。一方、ゼロリフト学習モードから通常モードに切り替える場合には、ゼロリフト学習実行条件が不成立になったことに伴い、直ちに通常モードに切り替える。この制御について、図12及び図13のタイムチャートを用いて説明する。なお、図12及び図13中の黒塗り三角印は、噴射更新タイミングを表している。
まず、通常モードからゼロリフト学習モードへの切替時について、図12を用いて説明する。図12において、時刻t11で燃料カットが開始され、その後の噴射更新タイミングの時刻t12で、ゼロリフト学習実行条件が成立した場合を考える。この場合、時刻t12では、噴射タイミングをゼロリフト学習用の所定時期に設定するとともに、噴射時間をゼロリフト学習用の所定時間に設定する。また、ゼロリフト学習カウンタを1だけカウントアップする。
噴射更新タイミング毎にゼロリフト学習カウンタをカウントアップしていき、ゼロリフト学習カウンタが第1判定値TH1(図12では「2」)を超えると、その時刻t14で燃料カット中の燃料噴射弁30の駆動を許可するとともに、インジェクタ駆動電流をゼロリフト学習用の所定電流値Aoffに設定する。これにより、各燃料噴射弁30に対し、ゼロリフト学習用の所定時期で、弁体34が駆動しない範囲の所定電流値Aoffの通電が行われる。図12では、ゼロリフト学習実行条件の成立後において、まず、第2気筒♯2の燃料噴射弁30に対して、第2気筒♯2の吸気行程でゼロリフト学習用の通電が行われ、続いて、第1気筒♯1の燃料噴射弁30に対して、第1気筒♯1の吸気行程でゼロリフト学習用の通電が行われる。また、ゼロリフト学習カウンタが第2判定値TH2(図12では「4」)を超えると、その後の噴射更新タイミングの時刻t16で、ゼロリフト学習用値の取得が許可されて、電気的ばらつき値Q1が算出される。
次に、ゼロリフト学習モードから通常モードへ切り替える場合について、図13を用いて説明する。図13において、時刻t21で燃料カットが終了されると、その直後の噴射更新タイミングの時刻t22でゼロリフト学習実行条件が不成立と判定されたことに伴い、噴射タイミング及び噴射時間が通常モードの値に切り替えられる。また、ゼロリフト学習カウンタがゼロにリセットされるとともに、インジェクタ駆動電流が通常モードの値に切り替えられる。
以上詳述した本実施形態によれば、次の優れた効果が得られる。
パーシャルリフト噴射の通電オフ後のマイナス端子電圧Vmに基づき算出した閾値到達時間Tdiff_1は、燃料噴射弁30のリフト挙動に起因する噴射量ばらつき(機械的ばらつき)と、ECU40の回路素子に起因する噴射量ばらつき(電気的ばらつき)とを含む。一方、弁体34が駆動しない範囲の通電パルスのオフ後のマイナス端子電圧Vmに基づき算出した閾値到達時間Tdiff_2は、弁体34が駆動していない状態で取得した情報であるため、機械的ばらつきを含まず、電気的ばらつきを含む。したがって、閾値到達時間Tdiff_1及び閾値到達時間Tdiff_2によれば、機械的ばらつきに起因する噴射量のずれ量と、電気的ばらつきに起因する噴射量のずれ量とを切り分けることができる。したがって、燃料噴射弁30及びECU40のそれぞれの噴射量ばらつきを正確に把握でき、正確な噴射量補正を行うことができる。
ゼロリフト学習を実行する条件として、車両減速時の燃料カット中であることとしたため、ゼロリフト学習のために燃料カットを実施する必要がない。また、燃料カットの実施期間のうち車両減速中であることを条件としていることから、ゼロリフト学習用の通電によって燃料噴射弁30から燃料が噴射されたとしても、ドライバビリティに与える影響が少なくすることができる。
燃料噴射弁30から噴射される燃料圧力が、ゼロリフト学習のための通電による意図しない燃料噴射を回避可能な所定燃圧以上であることを条件にゼロリフト学習を実行する構成としたため、背圧が十分に高く弁体34が開弁しにくい状況下で学習を実行することができる。これにより、燃料噴射弁30の通電によって燃料が実際に噴射されないようにすることができる。
(他の実施形態)
本発明は上記実施形態の内容に限定されず、例えば次のように実施されてもよい。
・上記実施形態では、リフト学習により算出した閾値到達時間Tdiff_1を電気的ばらつき値Q1によって補正し、補正後閾値到達時間Tdiff*Q1から推定噴射量Rを算出して機械的ばらつき値Q2を算出したが、閾値到達時間Tdiff_1から推定噴射量を算出した後に、推定噴射量を電気的ばらつき値Q1によって補正することにより機械的ばらつき値Q2を算出してもよい。
・上記実施形態では、車両減速時の燃料カット中にゼロリフト学習を実行したが、車両の運転状態が、燃料噴射弁30を駆動しない運転状態であればよい。例えば、イグニッションオン後、エンジンが始動される前にゼロリフト学習を実施してもよい。また、車両停止中の燃料カット中にゼロリフト学習を実施するようにしてもよい。
・上記実施形態では、リフト学習をパーシャルリフト噴射において実施したが、フルリフト噴射において実施する構成としてもよい。
・上記の各構成要素は概念的なものであり、上記実施形態に限定されない。例えば、一つの構成要素が有する機能を複数の構成要素に分散して実現したり、複数の構成要素が有する機能を一つの構成要素で実現したりしてもよい。