以下、実施形態について説明を行う。なお、以下の実施形態相互において、互いに同一もしくは均等である部分には、図中、同一符号を付しており、同一符号の部分についてはその説明を援用する。本実施形態では、車両用のガソリンエンジンを制御するエンジン制御システムとして具体化している。
(第1実施形態)
図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の下流側に、排出ガスを浄化する三元触媒等の触媒25が設けられている。
エンジン11のシリンダブロックには、冷却水温を検出する冷却水温センサ26や、ノッキングを検出するノックセンサ27が取り付けられている。クランク軸28の外周側には、クランク軸28が所定クランク角回転するごとにパルス信号を出力するクランク角センサ29が取り付けられ、このクランク角センサ29のクランク角信号に基づいてクランク角やエンジン回転速度が検出される。
これら各種センサの出力はECU40に入力される。ECU40は、マイクロコンピュータを主体として構成された電子制御ユニットであり、各種センサの検出信号を用いてエンジン11の各種制御を実施する。ECU40は、エンジン運転状態に応じた燃料噴射量を算出して燃料噴射弁30の燃料噴射を制御するとともに、点火プラグ22の点火時期を制御する。
これら点火プラグ22や燃料噴射弁30には車載のバッテリ51から電力が供給される。バッテリ51の電圧が低下している場合には、エンジン11の出力軸に接続されたオルタネータ52を回転させてバッテリ51に電力を供給することにより、バッテリ51が所定電圧(本実施の形態においては12V)となるように充電される。
図2に示すように、ECU40は、エンジン制御用のマイコン41(エンジン11の制御用のマイクロコンピュータ)や、インジェクタ駆動用の駆動IC42(燃料噴射弁30の駆動用IC)、電圧切替回路43a,43b、電流検出回路44a,44b等を備えている。マイコン41が「燃料噴射制御装置」に相当する。マイコン41は、エンジン運転状態(例えばエンジン回転速度やエンジン負荷等)に応じて要求噴射量を算出するとともに、この要求噴射量に基づき算出される噴射時間から駆動パルスを生成し、駆動IC42に出力する。駆動IC42は、駆動パルスに基づき燃料噴射弁30を開弁駆動して、要求噴射量分の燃料を噴射させる。
電圧切替回路43a,43bは、各気筒21の燃料噴射弁30に印加される駆動用電圧を高電圧V2と低電圧V1とで切り替える回路である。具体的には、電圧切替回路43a,43bは、図示しないスイッチング素子のオンオフにより、低圧電源部45と高圧電源部46とのいずれかから燃料噴射弁30のコイル31に対して駆動電流を供給させる。
低圧電源部45は、バッテリ51のバッテリ電圧(低電圧V1)を燃料噴射弁30に印加する低電圧出力回路を有している。高圧電源部46は、バッテリ電圧を40V〜70Vとなるように昇圧した高電圧V2(昇圧電圧)を燃料噴射弁30に印加する高電圧出力回路(昇圧回路)を有している。
駆動パルスにより燃料噴射弁30が開弁駆動される際には、燃料噴射弁30に対して低電圧V1と高電圧V2とが時系列で切り替えられて印加されるようになっている。この場合、開弁初期には高電圧V2が印加されることで燃料噴射弁30の開弁応答性が確保され、それに引き続いて低電圧V1が印加されることで燃料噴射弁30の開弁状態が保持される。
電流検出回路44a,44bは、「電流検出部」に相当し、燃料噴射弁30の開弁駆動時における通電電流(駆動電流)の電流値を検出するものであり、その検出結果は駆動IC42に逐次出力される。電流検出回路44a,44bは周知構成であればよく、例えばシャント抵抗と比較器とを有するものとなっている。
本実施形態において、高圧電源部46と、低圧電源部45と、これら各電源部からの電力供給により駆動される燃料噴射弁30と、燃料噴射弁の駆動電流を検出する電流検出回路44a,44bと、を備えるシステムが、燃料噴射システムに相当する。
また本実施形態では、エンジン11を4気筒エンジンとし、気筒21ごとの燃料噴射弁30による燃料噴射として、吸気行程と圧縮行程とにおいて各々噴射パルスを出力して燃料噴射を実施することとしている。なお、#1〜#4の気筒21の燃焼順序を#1→#2→#3→#4としている。この場合、燃焼順序が前後に連続する2つの気筒21では、各燃料噴射弁30による燃料噴射の期間が重複することが懸念される。
そのため、図2の構成においては、4気筒エンジンであるエンジン11において、燃焼順序が一つ置きとなる2つの気筒21を1まとめにして駆動グループ1,2としており、駆動グループごとに各々電圧切替回路43a,43b及び電流検出回路44a,44bが設けられている。すなわち、駆動グループ1の電圧切替回路43a及び電流検出回路44aでは、#1,#3の気筒21の燃料噴射弁30について電圧切り替えと電流検出とが行われる構成となっている。また、駆動グループ2の電圧切替回路43b及び電流検出回路44bでは、#2,#4の気筒21の燃料噴射弁30について電圧切り替えと電流検出とが行われる構成となっている。これにより、駆動グループ1,2ごとの駆動系統で各燃料噴射弁30が駆動される。そして、各気筒21において吸気行程と圧縮行程とで各々燃料噴射が実施されることに起因して、燃焼順序が前後に連続する2つの気筒21で燃料噴射の期間が重複しても、各気筒21の燃料噴射が適正に実施されるようになっている。
ここで、図3を参照して燃料噴射弁30について説明する。燃料噴射弁30は、通電により電磁力を生じさせるコイル31と、その電磁力によってプランジャ32(可動コア)と一体的に駆動されるニードル33(弁体)と、プランジャ32を閉弁方向とは反対方向へ付勢するバネ部材34とを有している。ニードル33がバネ部材34の付勢力に抗して開弁位置に移動することで燃料噴射弁30が開弁状態となり、燃料噴射が行われる。そして、駆動パルスの立ち下がりに伴いコイル31の通電が停止されると、プランジャ32とニードル33とが閉弁位置に戻ることで燃料噴射弁30が閉弁状態となり、燃料噴射が停止される。以下の説明では、プランジャ32がストッパ35に当たってそれ以上の開弁方向への移動が制限される位置を、ニードル33の「フルリフト位置」と称する。
次に、燃料噴射弁30の駆動動作を図4に基づき説明する。
時刻ta1では、駆動パルスの立ち上がりに伴いバッテリ電圧を昇圧した高電圧V2が燃料噴射弁30に印加される。時刻ta2において、駆動電流の電流値が、あらかじめ定めたピーク値Ipに到達すると、高電圧V2の印加が停止される。このとき、駆動電流の電流値がピーク値Ipに到達するタイミング又はその直前のタイミングにおいて、ニードルリフトが開始され、そのニードルリフトに伴い燃料噴射が開始される。駆動電流の電流値がピーク値Ipに到達したか否かの判定は、電流検出回路44a,44bにより検出された駆動電流の電流値に基づいて実施される。つまり、昇圧期間(ta1〜ta2)では、駆動IC42により駆動電流の電流値がピーク値Ip以上になったか否かが判定され、駆動電流の電流値≧ピーク値Ipになった時点で、電圧切替回路43a,43bにより印加電圧の切替(V2印加停止)が実施される。
駆動電流が時刻ta3において、駆動電流の電流値があらかじめ定めた電流閾値Ihを下回ると、バッテリ電圧である低電圧V1が燃料噴射弁30に印加される。駆動電流の電流値が電流閾値Ihを下回ったか否かの判定は、電流検出回路44a,44bにより検出された駆動電流の電流値に基づいて実施される。つまり、印加停止期間(ta2〜ta3)では、駆動IC42により駆動電流の電流値が電流閾値Ih以下になったか否かが判定され、駆動電流の電流値≦電流閾値Ihになった時点で、電圧切替回路43a,43bにより印加電圧の切替(V1印加開始)が実施される。
その後、一定の電流が維持されるように低電圧V1の印加及び印加停止が繰り返される。例えば、検出された電流値が第1目標電流値Ia1以下となった場合には、低電圧V1が印加され、検出された電流値が、第1目標電流値Ia1よりも一定値以上高くなった場合には、低電圧V1の印加が停止される。これにより、ニードル33がフルリフト位置に到達した後においてそのフルリフト状態が維持され、燃料噴射が継続されることとなる。その後、時刻ta5で駆動パルスがオフになると、燃料噴射弁30への電圧印加が停止され、駆動電流がゼロになる。そして、燃料噴射弁30のコイル通電の停止に伴いニードルリフトが終了され、それに合わせて燃料噴射が停止される。
このように、燃料噴射弁30は駆動電流の電流値に基づき制御され、その駆動電流の電流値は、電流検出回路44a,44bにより検出される。しかしながら、電流検出回路44a,44bは、シャント抵抗などの回路素子を有しており、回路素子の違い等を原因として、実際の電流値(実電流値)と、検出される電流値(検出電流値)との間に誤差が生じる場合がある。このため、検出電流値に基づき、燃料噴射弁30を駆動制御する場合、実電流値との誤差により、ニードル33(弁体)が開弁状態又は閉弁状態となるタイミングに誤差が生じる可能性がある(つまり燃料噴射時間に誤差が生じる可能性がある)。すなわち、燃料噴射量に誤差が生じる可能性がある。
そこで、本実施形態のECU40では、電流値の検出誤差を適切に補正する構成及び処理を備えることとした。以下、詳しく説明する。
まず、電流値の検出誤差を把握するための原理について説明する。燃料噴射弁30への通電を停止させた後(電圧印加を停止させた後)、電流変化に基づきコイル31における磁束が変化し、誘導起電力が発生することが知られている。この誘導起電力は、同じ実電流値の駆動電流が流れている状態で通電が停止された場合、諸条件(ニードル33の位置や、通電時間等)も同じであれば、同じとなるはずである。しかしながら、異なる実電流値の駆動電流が流れている状態で通電が停止された場合、諸条件も同じであったとしても、誘導起電力が異なる。なぜならば、コイル31に流れる駆動電流(実電流値)の大きさに応じて、通電が停止した後における磁束の変化が異なるからである。
具体的には、図5に示すように、コイル31への通電が停止した後、電圧値(誘導起電力)は、一定時間(時刻T3〜T4)極大値Vmaxを取り、その後(時刻T4以降)、逓減していく。その際、通電時における駆動電流の実電流値に応じて、逓減する際の傾きが異なる。より詳しくは、通電時における駆動電流の実電流値が大きいほど(実線で示す)、実電流値が小さい場合(破線で示す)と比較して、電圧値は緩やかに逓減する。つまり、通電時における駆動電流の実電流値が小さいほど、実電流値が大きい場合と比較して、急峻に逓減する。よって、実電流値と検出電流値との検出誤差を補正するためには、逓減する際における電圧値の傾きを比較すればよい。
すなわち、基準とする電圧値の傾きと比較して、緩やかに傾いている場合、基準とする電圧値に対応する電流値と比較して実電流値は大きいと判断して、検出電流値を大きくする補正(又は指示電流値を小さくする補正)を行えばよい。その際、基準とする電圧値の傾きと比較して、検出された電圧値の傾きが緩やかであるほど、誤差が大きいとして、検出電流値をより大きくする補正(指示電流値をより小さくする補正)を行えばよい。なお、指示電流値とは、燃料噴射弁30を駆動制御する際、マイコン41から駆動IC42に指示され、検出電流値の判定基準(比較対象)となる電流値のことであり、例えば、前述したピーク値Ip、電流閾値Ih、及び第1目標電流値Ia1等のことである。
同様に、基準とする電圧値の傾きと比較して、急峻に傾いている場合、基準とする電圧値に対応する電流値と比較して実電流値は小さいと判断して、検出電流値を小さくする補正(又は指示電流値を大きくする補正)を行えばよい。その際、基準とする電圧値の傾きと比較して、検出された電圧値の傾きが急であるほど、誤差が大きいとして、検出電流値をより小さくする補正(又は指示電流値をより大きくする補正)を行えばよい。
なお、本実施形態では、指示電流値を補正することにより、検出誤差を補正することとしている。また、電圧値の傾きをどのような方法で把握してもよい。例えば、所定時間における電圧値の変化量に基づき、電圧値の傾きを特定してもよいし、極大値Vmaxから所定電圧値に低下するまでの時間に基づき、電圧値の傾きを特定してもよい。また、所定電圧値における電圧値の傾きを微分等により算出してもよい。
本実施形態において、マイコン41は、検出された電圧値が極大値Vmaxよりも小さい初期値Vsとなった時刻T5から、初期値よりも小さい終期値Veとなった時刻T6,T7までの逓減時間を取得し、この逓減時間に基づき、電圧値の傾きを特定する。初期値Vs及び終期値Veは、誘電起電力(電圧値)の極大値Vmaxに応じてあらかじめ設定される。
そこで、本実施形態では、通電停止後の電圧値(誘電起電力)に基づき電流値の検出誤差を補正する。このため、燃料噴射弁30の端子(本実施形態ではマイナス端子)における電圧値を検出する電圧検出回路47を備えた。電圧検出回路47が検出した電圧値は、マイコン41に入力されるように構成されている。
また、誘電起電力に係る電圧値を検出するため、燃料噴射弁30のマイナス端子と高圧電源部46との間に、燃料噴射弁30への通電を停止させた後において、燃料噴射弁30のマイナス端子からの電流が流れることを許容する電気経路L1を設けた。この電気経路L1には、還流機構としてのダイオード48が設けられている。このダイオード48は、燃料噴射弁30のマイナス端子から高圧電源部46への電流を許可するように設けられている。これにより、誘電起電力が発生した場合、燃料噴射弁30のマイナス端子から高圧電源部46への素早く電流が流れるようになっている。
なお、本実施形態では、高圧電源部46に電力(エネルギ)を還流させていたが、電圧値を検出できるのであれば、接続先は任意に変更してもよい。例えば、任意の抵抗を介してグランドに接続してもよい。また、燃料噴射弁30のマイナス端子の電圧値を検出したが、プラス端子の電圧値を検出する構成としてもよい。
そして、マイコン41は、コイル31への通電開始及び通電停止を制御する通電制御部41aとしての機能を備えている。また、マイコン41は、コイル31への通電を停止させた後に、燃料噴射弁30におけるマイナス端子の電圧値を、電圧検出回路47により検出された電圧値を取得する電圧取得部41bとしての機能を備えている。また、マイコン41は、取得した電圧値に基づき、電流検出回路44a,44bにより検出される電流値の検出誤差を補正する補正処理を行う補正部41cとしての機能を備えている。より詳しくは、マイコン41は、取得した電圧値の傾きと、基準とする電圧値の傾きとの比較に基づき、補正値を算出する。そして、マイコン41は、燃料噴射弁30を駆動させる場合、補正値を利用して指示電流値(ピーク値、閾値、目標電流値等)を補正する。これにより、電流検出回路44により検出される電流値の検出誤差が適正に補正される。
ところで、通電を停止させた後、ニードル33がコイル31から離れるように移動すると、コイル31の磁束変化に影響を与える。つまり、誘電起電力に影響を与え、誤差の要因となり得る(適切な補正値を算出できない可能性がある)。
そこで、マイコン41は、補正値を算出する場合、ニードル33が閉弁状態のままとなる条件でコイル31を非開弁通電し、非開弁通電される状態で検出された電圧値を取得する。そして、マイコン41は、この電圧値に基づき、補正値を算出することとしている。
また、駆動電流の電流値が一定となるように電圧印加及び印加停止しても、通電開始後、所定時間が経過するまで駆動電流は変化する。駆動電流の変化中に通電を停止させると、コイル31の磁束変化に影響を与える可能性がある。つまり、誘電起電力に影響を与え、誤差の要因となり得る(適切な補正値を算出できない可能性がある)。
そこで、マイコン41は、補正値を算出する場合、補正値を算出しない場合(通常の燃料噴射制御)に比べて、小さい値の定電流が駆動電流として流れるように制御する。具体的には、マイコン41は、補正値を算出する場合、第1目標電流値Ia1よりも低い第2目標電流値Ia2を基準として一定の駆動電流が流れるように制御する。
すなわち、図6に示すように、駆動IC42は、駆動パルスの立ち上がりに伴い、高電圧V2を印加する。そして、駆動IC42は、検出電流値が第2目標電流値Ia2以上となった場合には、高電圧V2の印加を停止する。その後、駆動IC42は、駆動パルスがオフされるまで、検出電流値が第2目標電流値Ia2以下となった場合には、低電圧V1を印加し、第2目標電流値Iaよりも一定値以上、高くなった場合には、低電圧V1の印加を停止する。これにより、通電時における駆動電流の変化に基づく磁束変化を早く収束させ、通電停止後、補正値を精度よく算出することが可能となる。このため、マイコン41は、定電流制御部として機能する。
次に、図7を参照して、補正値を算出するための補正値算出処理について説明する。この補正値算出処理は、所定周期ごとにマイコン41により実行され、補正値が算出(確定)されるまで繰り返される。なお、補正値は、所定時期ごとに算出されればよく、例えば、1日に一度又はイグニッションスイッチがオンされた場合に一度算出されればよい。
そして、補正値算出処理は、気筒21毎にそれぞれ実行されるように構成されている。また、補正値算出処理が各気筒21について万遍なく実行されるように構成されている。例えば、#1→#2→#3→#4の順番で対象とする気筒21を変更して補正値算出処理が実行される。なお、以下の説明で、今回の補正値算出処理において対象とする気筒21のことを、単に対象とする気筒21と示す場合がある。
補正値算出処理において、マイコン41は、まず、燃料噴射が要求されているか否かを判定する(ステップS11)。すなわち、前述したように、補正値を算出する場合、非開弁通電される状態で検出された電圧値を取得する必要がある。そこで、ステップS11において、マイコン41は、燃料噴射が要求されているか否かを判定する。例えば、マイコン41は、エンジン運転状態などに基づき算出された燃料噴射量が0でない場合には、燃料噴射が要求されていると判定し、燃料噴射量が0である場合には、燃料噴射が要求されていないと判定する。
ステップS11の判定結果が肯定の場合(燃料噴射が要求されている場合)、マイコン41は、補正値を算出することなく、補正値算出処理を終了する。一方、ステップS11の判定結果が否定の場合(燃料噴射が要求されていない場合)、マイコン41は、補正値を算出するため、ステップS12に移行する。
ステップS11の判定結果が否定の場合、マイコン41は、図8に示す電流値設定処理を実施し(ステップS12)、ステップS13に移行する。この電流値設定処理では、第2目標電流値Ia2の指示や、補正比率γの算出等が行われる。この電流値設定処理については、詳しくは後述する。
そして、マイコン41は、電流値設定処理で指示された第2目標電流値Ia2に基づき対象となる気筒21の燃料噴射弁30を通電(駆動)させる(ステップS13)。具体的には、マイコン41は、第2目標電流値Ia2が駆動IC42に指示された後、駆動パルスを駆動IC42に出力する。
駆動IC42は、駆動パルスの立ち上がりに伴い、対象とする気筒21の燃料噴射弁30に対して高電圧V2を印加する。そして、駆動IC42は、電流検出回路44a,44bの検出電流値が、第2目標電流値Ia2以上となった場合には、高電圧V2の印加を停止する。その後、駆動IC42は、駆動パルスがオフされるまで、検出電流値が第2目標電流値Ia2以下となった場合には、対象とする気筒21の燃料噴射弁30に対して低電圧V1を印加する。また、駆動IC42は、第2目標電流値Ia2よりも一定値以上、高くなった場合には、低電圧V1の印加を停止する。所定時間経過後、マイコン41は、駆動パルスの出力を停止して、対象とする気筒21の燃料噴射弁30への通電を停止させ(電圧印加を停止させ)、ステップS14に移行する。このステップS13により、マイコン41は、定電流制御部として機能する。
通電を停止させた後、マイコン41は、電圧検出回路47から、対象とする気筒21の燃料噴射弁30のマイナス端子における電圧値を取得する(ステップS14)。そして、マイコン41は、取得した電圧値に基づき、電圧値の傾きとしての逓減時間を取得し、ECU40が備える記憶部に記憶する(ステップS15)。具体的には、マイコン41は、取得した電圧値が初期値Vsとなった時刻から、終期値Veとなった時刻までの逓減時間を取得し、記憶部に記憶する。その際、逓減時間を取得した取得回数(すなわち、誘電起電力を検出した回数)も合わせて記憶する。つまり、取得回数に1加算する。
なお、対象とする気筒21ごとに区別して逓減時間及び取得回数を記憶する。すなわち、♯1の気筒21を対象としている場合、♯1の気筒21における逓減時間であること及び♯1の気筒21における取得回数であることを記憶部に記憶する。他の気筒21(♯2〜4)も同様である。
その後、マイコン41は、取得回数が所定回数(例えば、40回)以上となったか否かを判定する(ステップS16)。ステップS16においては、各気筒21における取得回数がすべて所定回数以上となったか否かを判定する。この所定回数は、任意に変更してもよく、例えば、40〜100回における任意の回数に変更してもよい。ステップS16の判定結果が否定の場合、補正値算出処理を終了し、ステップS16の判定結果が肯定の場合、ステップS17に移行する。
ステップS16の判定結果が肯定の場合、マイコン41は、気筒21毎に、取得回数分の逓減時間を読みだし、駆動グループ1,2毎の平均値(逓減時間の平均)を算出する(ステップS17)。そして、マイコン41は、駆動グループ1,2毎の平均値を比較し、平均値に差があるか否かを判定する(ステップS18)。
ステップS18において、マイコン41は、例えば、駆動グループ1,2における平均値の差が閾値以上である場合、差があると判定する。閾値は、0又は0近傍の値であり、あらかじめ設定されている。すなわち、ステップS17,18において、各駆動グループ1,2における電圧値(誘導起電力)の傾きが同一であるか否か(差がないか否か)を判定している。なお、本実施形態では、差分に基づき判定したが、比率に基づき判定してもよい。
ステップS18の判定結果が肯定の場合(差がある場合)、補正値算出処理を終了する。一方、ステップS18の判定結果が否定の場合(差がない場合)、マイコン41は、電流値設定処理において、算出された補正比率γを補正値(補正係数)として確定し、記憶部に記憶する(ステップS19)。電流値設定処理において、補正比率γは、気筒21ごとに算出される(後述)。このため、ステップS19では、気筒21毎の補正比率γが気筒21毎の補正値としてそれぞれ確定されて、記憶される。なお、補正比率γは、取得回数分記憶されている。このため、ステップS19において補正値として確定される補正比率γは、最新の補正比率γであってもよく、記憶されている補正比率γの平均値であってもよい。
また、マイコン41は、ステップS19において補正完了フラグを記憶部に設定する。そして、補正値算出処理を終了する。この補正完了フラグが設定されている場合、補正値算出処理は実行されないようになっている。補正完了フラグは任意のタイミングでリセットされる。例えば、前述した所定時期ごとにリセットされるように構成すればよい。これにより、補正値は、所定時期ごとに算出(確定)されることとなる。
以上のように、補正値算出処理では、各気筒21間において、電圧値にばらつきがある場合、適切な補正比率γが算出されていないとして、適切な補正比率γが算出されるまで繰り返し補正値算出処理が実行される。一方、各気筒21間において、電圧値にばらつきがない場合、適切な補正比率γが算出されているとして、当該補正比率γを補正値として確定する。
次に、図8に基づきステップS12の電流値設定処理について説明する。
電流値設定処理において、まず、マイコン41は、対象とする気筒21に関して、すでに補正値算出処理が実行されて、その結果(前回の結果)が記憶部に記憶されているか否かを判定する(ステップS21)。前回の結果とは、前回補正値算出処理が実行されたときにおいて指示された第2目標電流値Ia2、及び当該第2目標電流値Ia2に基づき駆動制御された後における電圧値の傾き(逓減時間)のことである。
この判定結果が否定の場合、マイコン41は、予め決められた初期値を、今回指示する第2目標電流値Ia2として決定する(ステップS22)。すなわち、初めて第2目標電流値Ia2を決定する場合、初期値を第2目標電流値Ia2とする。第2目標電流値Ia2の初期値は、予め決められており、記憶部に記憶されている。
一方、ステップS21の判定結果が肯定の場合、マイコン41は、前回の結果に基づき、今回指示する第2目標電流値Ia2を決定する(ステップS23)。ステップS23において、マイコン41は、前回取得した電圧値の傾きと、基準とすべき電圧値の傾きとを比較して、前回の第2目標電流値Ia2を補正して、今回指示する第2目標電流値Ia2を算出する。
つまり、前述したように、マイコン41は、基準とする電圧値の傾きと比較して、緩やかに傾いている場合、前回における実電流値は、基準とする電流値(基準とする電圧値に対応する電流値)と比較して大きいと判断できる。そこで、マイコン41は、基準とする電圧値の傾きと比較して、緩やかに傾いている場合、今回指示する第2目標電流値Ia2を、前回における第2目標電流値Ia2と比較して小さくする補正を行う。
一方、急峻に傾いている場合には、前回における実電流値は、基準とする電流値と比較して小さいと判断できる。そこで、マイコン41は、基準とする電圧値の傾きと比較して、急峻に傾いている場合には、今回指示する第2目標電流値Ia2を、前回における第2目標電流値Ia2と比較して大きくする補正を行う。
なお、基準とする電圧値の傾きは、予め決められた気筒21(例えば、♯1の気筒21)における電圧値の傾きであってもよいし、予め実験により計測された電圧値の傾き(判定値)であってもよい。また、本実施形態において、電圧値の傾きは、逓減時間によって特定される。基準とする電圧値の傾きを予め決められた気筒21とする場合、複数の電流検出回路44a,44bのうちいずれかを基準として、他の電流検出回路44a,44bにより検出される電流値の検出誤差を補正することとなる。
より具体的には、ステップS23において、数式(1)に基づき、今回指示する第2目標電流値Ia2を算出する。すなわち、基準とする逓減時間(基準とする電圧値の傾き)を、前回取得した逓減時間(前回取得した電圧値の傾き)により除算した値(比率)に、定数β及び前回指示した第2目標電流値Ia2を乗算することにより、今回指示する第2目標電流値を算出する。定数βは実験などにより適切な値が設定され、記憶部に記憶されている。
今回指示する第2目標電流値Ia2=(基準とする逓減時間/前回取得した逓減時間)×定数β×前回指示した第2目標電流値Ia2・・・(1)
これにより、ステップS23において、マイコン41は、基準とする電圧値の傾きと取得される電圧値の傾きが一致するように(少なくとも前回よりも差が少なくなるように)、今回指示する第2目標電流値Ia2を算出する。
また、マイコン41は、ステップS23で算出された今回指示する第2目標電流値Ia2を、第2目標電流値Ia2の初期値で除算することにより、補正比率γを算出する(ステップS24)。補正比率γは、対象とする気筒21毎に算出される。このため、マイコン41は、算出した補正比率γを、今回の補正値算出処理において対象とする気筒21と対応付けて記憶部に記憶する。
その後、マイコン41は、取得回数が所定回数以上であるか否かを判定する(ステップS25)。このステップS25において、対象とする気筒21における取得回数が所定回数以上であるか否かを判定する。所定回数は、ステップS16における所定回数と同一回数である。この判定結果が肯定の場合、マイコン41は、対象とする気筒21に対応付けて記憶されていた逓減時間及び取得回数をリセットする(ステップS26)。なお、すべての気筒21に対応付けられて記憶されていた逓減時間及び取得回数をリセットしてもよい。
ステップS25の判定結果が否定の場合、又はステップS22,S26の処理後、マイコン41は、第2目標電流値Ia2を駆動IC42に指示する(ステップS27)。
より詳しくは、ステップS25の判定結果が否定の場合、又はステップS26の処理後、マイコン41は、ステップS23で算出された第2目標電流値Ia2を、駆動IC42に指示する。また、ステップS22の処理後、マイコン41は、ステップS22で決定した第2目標電流値Ia2(初期値)を、駆動IC42に指示する。その後、電流値設定処理を終了する。
そして、補正算出処理において確定された補正値は、燃料噴射弁30を駆動制御する際に利用される。すなわち、マイコン41は、ピーク値Ip、電流閾値Ih、第1目標電流値Ia1など、駆動IC42に指示する指示電流値に補正値をそれぞれ乗算して算出された指示電流値(補正後の指示電流値)を駆動IC42に指示する。より詳しくは、マイコン41は、ピーク値Ipの初期値、電流閾値Ihの初期値、及び第1目標電流値Ia1の初期値にそれぞれ補正値を乗算することにより、補正後のピーク値Ip、補正後の電流閾値Ih及び補正後の第1目標電流値Ia1を算出する。そして、補正後の指示電流値を駆動IC42に指示する。その際、乗算される補正値は、駆動させる燃料噴射弁30の気筒21に対応する補正値である。
駆動IC42は、これら補正後の指示電流値に基づき、駆動制御を行う。例えば、駆動IC42は、駆動パルスの立ち上がりに伴い高電圧V2を燃料噴射弁30に印加し、電流検出回路44a,44bにより検出電流値が、補正後のピーク値Ipに到達すると、高電圧V2の印加を停止する。そして、駆動IC42は、検出電流値が、補正後の電流閾値Ihを下回ると、低電圧V1を燃料噴射弁30に印加する。その後、駆動IC42は、検出電流値が補正後の第1目標電流値Ia1以下となった場合には、低電圧V1を印加し、補正後の第1目標電流値Ia1よりも一定値以上、高くなった場合には、低電圧V1の印加を停止する。
電流検出回路44a,44bにより検出された検出電流値は、実電流値との間で検出誤差があるが、それを相殺するように指示電流値を補正値に基づき補正している。このため、電流検出回路44a,44bにより検出された電流値の検出誤差が適切に補正されることとなる。また、気筒21間で差がなくなるように、補正値が算出されるため、補正後の指示電流値に基づき駆動制御することにより、燃料噴射弁30(気筒21)ごとのばらつきが抑制される。
上記第1実施形態によれば以下の優れた効果を奏することができる。
電流検出回路44a,44bを構成する素子などの違いにより、電流検出回路44a,44bにより検出される検出電流値と、実電流値に誤差が生じる場合がある。ところで、マイコン41が通電を停止させた後、燃料噴射弁30が有するコイル31内の磁場変化に基づく電磁誘導によって、燃料噴射弁30の端子に電圧(誘導起電力)が生じる。通電停止後における電圧(誘導起電力)の変化態様は、燃料噴射弁30のコイル31に流れる駆動電流(実電流値)が同じであれば、同じとなる一方、コイル31に流れる駆動電流(実電流値)が異なれば、同様に異なる。
そこで、マイコン41は、燃料噴射弁30の通電が停止された後、燃料噴射弁30のマイナス端子における電圧値を取得し、取得された電圧値の傾きに基づき、検出電流値と実電流値との検出誤差を補正する補正処理を行うようにした。これにより、電流値の検出誤差を好適に補正することができる。
ニードル33が開弁した場合、通電停止後、ニードル33の移動により、コイル31内の磁束変化に影響を与え、その結果、誘導起電力に影響を与える可能性がある。そこで、マイコン41は、非開弁通電される状態で取得された電圧値に基づいて、補正値を算出し、当該補正値により、検出誤差を補正することとした。これにより、ニードル33の挙動による影響を受けない状態で取得した電圧値に基づき検出誤差を補正することができ、誤差をより抑制することができる。
通電開始後、所定時間が経過するまで、駆動電流が安定しない(変化している)可能性があり、その結果、コイル31の磁束変化に影響を与える。磁束変化に影響を与えた場合、通電停止後においても、その影響を受けて取得される電圧値に誤差が生じる可能性がある。そこで、マイコン41は、補正値算出処理を実施する場合に、補正値算出処理を実施しない場合に比べて、定電流を小さい値に制御することとした。具体的には、マイコン41は、補正値を算出する場合に燃料噴射弁30の通電制御を行う際、第1目標電流値Ia1よりも低い第2目標電流値Ia2を指定し、当該第2目標電流値Ia2を基準とする定電流が流れるようにした。これにより、コイル31の磁束変化を早く収束させ、補正値の精度を向上させることができる。
電圧値の極大値Vmaxから減衰開始するまでの時間は、異なる場合がある。この時間は、実電流値に差がない場合であっても、異なる場合がある。そこで、取得される電圧値の極大値Vmaxから減衰を開始した時点を始期とし、所定電圧に減衰した時点を終期とする減衰時間を電圧値の傾きとして、比較し、補正値を算出することとした。これにより、より適切な補正値を算出することができ、検出誤差を好適に抑制することができる。
マイコン41は、基準とする逓減時間(電圧値の傾き)と、取得された逓減時間(電圧値の傾き)との比較し、差がなくなるように補正比率γを算出した。そして、気筒21間に差がない場合には、算出していた補正比率γを補正値として確定した。この補正値に基づき指示電流値を補正することにより、検出誤差を抑制できる。また、気筒21間の差がない場合に、算出していた補正比率γを補正値として確定する。このため、気筒21間でばらつきを抑制できる。
検出誤差を補正する際、駆動IC42に指示する指示電流値を補正した。これにより、検出電流値を取得する都度、検出電流値を補正する場合と比較して処理量を減らすことができる。また、取得回数が所定回数となるまで繰り返し電圧値を取得する。これにより、検出誤差を適切に抑制することができる。
マイコン41は、取得した電圧値の平均値が駆動グループ1,2間で差がなくなるまで、前回の結果に基づき、前回指示した第2目標電流値Ia2を補正(修正)して、今回指示する第2目標電流値Ia2を決定することを繰り返す。このため、1回の結果に基づき、検出誤差の補正を行う場合と比較して、適正な補正を行うことができる。
(第2実施形態)
第2実施形態では、補正値を算出する場合、駆動制御の方法を異ならせる点などが第1実施形態と異なる。以下、第1実施形態とは異なる点を中心に、詳しく説明する。
燃料噴射弁30への通電終了後、電圧検出回路47により検出される電圧値には、電流検出回路44a,44b以外の要素により違い(誤差)が生じる可能性がある。例えば、ECU40内における回路や燃料噴射弁30内の回路等における配線抵抗や、浮遊容量等が異なることにより、違いが生じる可能性がある。このため、基準とする気筒21において取得された電圧値と、他の気筒21において取得された電圧値とを比較しても、電流検出回路44a,44b以外の要素による違いか、電流値の検出誤差を起因とする違いかを区別できず、適切な補正値を算出できない可能性がある。
そこで、第2実施形態では、電流検出回路44a,44b以外の要素による電圧値の違い(以下、単に第1誤差と示す)と、電流値の検出誤差を起因とする電圧値の違い(以下、単に第2誤差と示す)とを区別し、第2誤差に基づき補正値を算出するようにした。まず、第1誤差と、第2誤差とを区別するための原理について説明する。
図9(a)における電圧値Vaは、検出電流値と第2目標電流値Ia2との偏差に基づいて燃料噴射弁30を駆動させ、通電を停止させた後に検出(取得)された電圧値を示している。すなわち、マイコン41が、第1実施形態のステップS13と同様にして、第2目標電流値Ia2に基づき燃料噴射弁30を通電させた場合において、その後に取得される電圧値を電圧値Vaとして示している。なお、図9において基準となる電圧値を実線で示している。
なお、検出電流値と第2目標電流値Ia2との偏差に基づいて燃料噴射弁30を駆動させる駆動制御を、第2駆動制御と示す。この電圧値Vaの傾きには、前述したように、第1誤差及び第2誤差が含まれている。
一方、図9(b)における電圧値Vbは、所定電圧の短駆動パルスにより燃料噴射弁30を駆動させ、通電を停止させた後に、検出(取得)される電圧値を示している。より詳しくは、マイコン41が、短駆動パルスを出力し、当該短駆動パルスの出力期間中、高電圧V2を燃料噴射弁30に印加させた場合において、その後に取得される電圧値を電圧値Vbとして示している。
なお、短駆動パルスは、第2駆動制御における駆動パルスよりも短く、一定時間に定められている。また、第2駆動制御とは異なり、指示電流値(第2目標電流値Ia2)を指示せず、高電圧V2を印加させる。所定電圧の短パルス通電により燃料噴射弁30を駆動させる駆動制御を、第1駆動制御と示す。本実施形態では、電流値がピーク値Ipに到達する前まで、短駆動パルスが出力されるように短駆動パルスの出力時間が定められている。
この電圧値Vbの傾きには、指示電流値を指示することなく、高電圧V2を短時間印加するため、第2誤差が含まれていない。その一方、この電圧値Vbの傾きには、電流検出回路44a,44b以外の要素による影響を受けるため、第1誤差が含まれることとなる。
したがって、この電圧値Vaと、電圧値Vbとを比較することにより、第2誤差を抽出することが可能となる。つまり、電圧値Vaから第1誤差を除くこと(少なくとも影響を小さくすること)が可能となる。なお、電圧値を比較する場合、駆動制御の方法が異なる以外は、同じ条件で取得された電圧値を比較することが望ましい。例えば、同じ気筒21を対象として駆動制御方法を変えて駆動させた場合に、取得される電圧値を比較することが望ましい。
以上のことを踏まえて、第2実施形態では、図10に示す補正値算出処理を行っている。以下、詳しく説明する。
図10に示す補正値算出処理は、第1実施形態と同様、所定周期ごとにマイコン41により実行され、補正値が算出(確定)されるまで繰り返される。なお、補正値算出処理は、第1実施形態と同様、各気筒21を対象としてそれぞれ実行されるように構成されている。
補正値算出処理において、マイコン41は、まず、燃料噴射が要求されているか否かを判定する(ステップS111)。ステップS111の判定結果が肯定の場合(燃料噴射が要求されている場合)、マイコン41は、補正値を算出することなく、補正値算出処理を終了する。一方、ステップS111の判定結果が否定の場合(燃料噴射が要求されていない場合)、マイコン41は、補正値を算出するため、ステップS112に移行する。
ステップS111の判定結果が否定の場合、マイコン41は、第1駆動制御後の電圧値が取得された取得回数を示す第1取得回数が第1所定回数(例えば40回)以上であるか否かを判定する(ステップS112)。
ステップS112の判定結果が否定の場合、マイコン41は、第1駆動制御にて、対象となる気筒21の燃料噴射弁30を通電させる(ステップS113)。具体的には、マイコン41は、第2目標電流値Ia2を指示せず、短駆動パルスを駆動IC42に出力する。駆動IC42は、短駆動パルスの立ち上がりに伴い、高電圧V2を印加する。そして、駆動IC42は、短駆動パルスの立ち上がりに伴い、高電圧V2を印加停止する。
通電を停止させた後、マイコン41は、電圧検出回路47から、対象となる気筒21の燃料噴射弁30のマイナス端子における電圧値(第1取得電圧値)を取得する(ステップS114)。そして、マイコン41は、取得した電圧値に基づき、第1駆動制御後の電圧値の傾きとしての第1逓減時間を取得し、記憶部に記憶する(ステップS115)。具体的には、マイコン41は、取得した電圧値が初期値Vsとなった時刻から、終期値Veとなった時刻までの時間を第1逓減時間として取得し、記憶部に記憶する。その際、第1取得回数も合わせて更新(記憶)する。つまり、第1取得回数に1加算する。
なお、対象とする気筒21ごとに区別して第1逓減時間及び第1取得回数を記憶する。すなわち、♯1の気筒21を対象としている場合、♯1の気筒21における第1逓減時間であること及び♯1の気筒21における第1取得回数であることを記憶部に記憶する。他の気筒21(♯2〜4)も同様である。
その後、マイコン41は、第1取得回数が第1所定回数(例えば、40回)以上となったか否かを判定する(ステップS116)。ステップS116においては、各気筒21における第1取得回数がすべて第1所定回数以上となったか否かを判定する。ステップS116の判定結果が否定の場合、補正値算出処理を終了し、ステップS116の判定結果が肯定の場合、ステップS117に移行する。
ステップS116の判定結果が肯定の場合、マイコン41は、気筒21毎に、第1取得回数分、第1逓減時間を読みだし、気筒21毎に、第1逓減時間の平均値(以下、第1平均値と示す)を算出する(ステップS117)。そして、マイコン41は、気筒21ごとの第1平均値を記憶し、補正値算出処理を終了する。
一方、ステップS112の判定結果が肯定の場合、マイコン41は、ステップS118に移行する。すなわち、第1取得回数が所定回数以上であり、ステップS117において、第1平均値がすでに記憶されている場合、ステップS118に移行する。
マイコン41は、図11に示す電流値設定処理を実施し(ステップS118)、ステップS119に移行する。この電流値設定処理では、第2目標電流値Ia2の指示や、補正比率γの算出等が行われる。この電流値設定処理については、詳しくは後述する。
そして、マイコン41は、第2駆動制御にて、対象となる気筒21の燃料噴射弁30を通電させる(ステップS119)。すなわち、マイコン41は、第2目標電流値Ia2が駆動IC42に指示された後、駆動パルスを駆動IC42に出力する。
駆動IC42は、駆動パルスの立ち上がりに伴い、対象となる気筒21の燃料噴射弁30に対して高電圧V2を印加する。そして、駆動IC42は、電流検出回路44a,44bの検出電流値が、第2目標電流値Ia2以上となった場合には、高電圧V2の印加を停止する。その後、駆動IC42は、駆動パルスがオフされるまで、検出電流値が第2目標電流値Ia2以下となった場合には、対象となる気筒21の燃料噴射弁30に対して低電圧V1を印加する。また、駆動IC42は、第2目標電流値Ia2よりも一定値以上、高くなった場合には、低電圧V1の印加を停止する。これにより、マイコン41は、第2目標電流値Ia2を基準とする定電流を燃料噴射弁30に流させる。定電流が流れてから所定時間経過後、マイコン41は、駆動パルスの出力を停止して、燃料噴射弁30への通電を停止させ(電圧印加を停止させ)、ステップS120に移行する。
通電を停止させた後、マイコン41は、電圧検出回路47から、対象となる気筒21の燃料噴射弁30のマイナス端子における電圧値(第2取得電圧値)を取得する(ステップS120)。そして、マイコン41は、取得した電圧値に基づき、第2駆動制御後の電圧の傾きとしての第2逓減時間を取得し、記憶部に記憶する(ステップS121)。第2逓減時間の取得方法は、前述した第1逓減時間の取得方法と同様である。その際、第2逓減時間を取得した取得回数を示す第2取得回数も合わせて記憶する。つまり、第2取得回数に1加算する。また、対象とする気筒21ごとに区別して第2逓減時間及び第2取得回数を記憶する。
その後、マイコン41は、第2取得回数が第2所定回数(例えば、50回)以上となったか否かを判定する(ステップS122)。ステップS122においては、マイコン41は、各気筒21における第2取得回数がすべて第2所定回数以上となったか否かを判定する。ステップS122の判定結果が否定の場合、マイコン41は、補正値算出処理を終了し、ステップS122の判定結果が肯定の場合、ステップS123に移行する。
ステップS122の判定結果が肯定の場合、マイコン41は、気筒21毎に、第2所定回数分、第2逓減時間を読みだし、気筒21毎に、第2逓減時間の平均値(以下、第2平均値と示す)を算出する(ステップS123)。
そして、マイコン41は、気筒21毎に、第1平均値を記憶部から読み出す。マイコン41は、気筒21毎に、第2平均値から読み出した第1平均値を減算することにより、第2誤差に基づく時間差(電流値の検出誤差に基づく時間差)の平均である差分値を算出する(ステップS124)。ステップS124では、♯1の気筒21における第2平均値から、♯1の気筒21における第1平均値を減算することにより、♯1の気筒21における差分値を算出する。他の気筒21も同様である。
そして、マイコン41は、各気筒21における差分値に基づき、駆動グループ1,2毎の差分値の平均を算出し、駆動グループ1,2間で差分値の平均に差があるか否か(差が閾値以上であるか否か)を判定する(ステップS125)。すなわち、駆動グループ1,2間において、第2誤差に基づく時間差の平均に差があるか否かを判定する。
ステップS125の判定結果が肯定の場合(差がある場合)、補正値算出処理を終了する。一方、ステップS125の判定結果が否定の場合(差がない場合)、マイコン41は、電流値設定処理において、算出された補正比率γを補正値(補正係数)として確定し、記憶部に記憶する(ステップS126)。電流値設定処理において、補正比率γは、気筒21ごとに算出される。このため、ステップS126では、気筒21毎の補正比率γが気筒21毎の補正値としてそれぞれ確定されて、記憶される。なお、補正比率γは、第2取得回数分記憶されている。このため、ステップS126において補正値として確定される補正比率γは、最新の補正比率γであってもよく、記憶されている補正比率γの平均値であってもよい。また、ステップS126において補正完了フラグを設定する。そして、補正値算出処理を終了する。
次に、図11に基づきステップS118の電流値設定処理について説明する。
電流値設定処理において、まず、マイコン41は、対象とする気筒21に関して、すでに電流値設定処理が実行されて、その結果(前回の結果)が記憶部に記憶されているか否かを判定する(ステップS131)。前回の結果とは、前回補正値算出処理のステップS119が実行されたときにおいて指示された第2目標電流値Ia2、及び当該第2目標電流値Ia2に基づき第2駆動制御された後における電圧値の傾き(第2逓減時間)のことである。この判定結果が否定の場合、マイコン41は、予め決められた初期値を第2目標電流値Ia2として決定する(ステップS132)。
一方、ステップS131の判定結果が肯定の場合、マイコン41は、前回の結果と、第1平均値に基づき、今回指示する第2目標電流値Ia2を決定する(ステップS133)。ステップS133において、マイコン41は、前回の第2駆動制御後に取得した電圧値の傾きと、第1平均値(第1駆動制御後に取得した電圧値の傾き)とを比較することにより、第2誤差に基づく時間差(電流値の検出誤差に基づく時間差)を抽出する。そして、第2誤差に基づく時間差と、基準値との比較に基づき、前回の第2目標電流値Ia2を補正して、今回指示する第2目標電流値Ia2を算出する。
具体的には、マイコン41は、前回取得した第2逓減時間から、第1平均値(第1逓減時間の平均)を減算し、第2誤差に基づく時間差を抽出する。なお、前回取得した第2逓減時間から、第1平均値を減算した値には、第2誤差に基づく時間差の他、駆動制御の違いによる時間差なども含まれる可能性があるが、本実施形態では、当該値を単に第2誤差に基づく時間差と示す。
そして、マイコン41は、第2誤差に基づく時間差と、基準値とを比較して、前回の第2目標電流値Ia2を補正して、今回の第2目標電流値Ia2を算出する。基準値は、予め決められた気筒21(例えば、♯1の気筒21)における第2逓減時間から、当該気筒21における第1平均値を減算した値である。なお、基準値は、予め実験により計測された値であって、記憶部に記憶されている値(判定値)であってもよい。
そして、マイコン41は、第2誤差に基づく時間差が、基準値と比較して大きい場合には、今回指示する第2目標電流値Ia2を、前回における第2目標電流値Ia2と比較して小さくする補正を行う。その一方、マイコン41は、第2誤差に基づく時間差が、第2基準値と比較して小さい場合には、今回指示する第2目標電流値Ia2を、前回における第2目標電流値Ia2と比較して大きくする補正を行う。つまり、第2誤差に基づく時間差が基準値と一致するように、今回指示する第2目標電流値Ia2を決定する。
より具体的には、ステップS133において、数式(2)に基づき、今回指示する第2目標電流値Ia2を算出する。すなわち、基準値を、第2誤差に基づく時間差により除算して算出した値(比率)に、定数α及び前回指示した第2目標電流値Ia2を乗算することにより、今回指示する第2目標電流値を算出する。定数αは実験などにより適切な値が設定され、記憶部に記憶されている。
今回指示する第2目標電流値Ia2=(基準値/第2誤差に基づく時間差)×定数α×前回指示した第2目標電流値Ia2・・・(2)
これにより、ステップS133において、マイコン41は、基準値と第2誤差に基づく時間差が一致するように(少なくとも前回よりも差が少なくなるように)、今回指示する第2目標電流値Ia2を算出する。
また、マイコン41は、ステップS133で算出された今回指示する第2目標電流値Ia2を、第2目標電流値Ia2の初期値で除算することにより、補正比率γを算出する(ステップS134)。補正比率γは、対象とする気筒21毎に算出される。このため、マイコン41は、算出した補正比率γを、今回の補正値算出処理において対象とする気筒21と対応付けて記憶部に記憶する。
その後、マイコン41は、第1取得回数が第1所定回数以上であって、且つ第2取得回数が第2所定回数以上であるか否かを判定する(ステップS135)。このステップS135において、対象とする気筒21についての第1取得回数及び第2所得回数に基づき判定する。この判定結果が肯定の場合、マイコン41は、対象とする気筒21の逓減時間及び取得回数をリセットする(ステップS136)。このステップS136では、対象とする気筒21に対応付けられて記憶されているすべての逓減時間(第1逓減時間、第2逓減時間)及び取得回数(第1取得回数、第2取得回数)をリセットする。なお、全ての気筒21における逓減時間及び取得回数をリセットしてもよい。
ステップS135の判定結果が否定の場合、又はステップS132,S136の処理後、マイコン41は、第2目標電流値Ia2を駆動IC42に指示する(ステップS137)。
より詳しくは、ステップS135の判定結果が否定の場合、又はステップS136の処理後、マイコン41は、ステップS133で算出された第2目標電流値Ia2を、駆動IC42に指示する。また、ステップS132の処理後、マイコン41は、ステップS132で決定した第2目標電流値Ia2を、駆動IC42に指示する。その後、電流値設定処理を終了する。
このように確定された補正値は、第1実施形態と同様に、燃料噴射弁30を駆動制御する際に利用される。このため、電流検出回路44a,44bにより検出された電流値の検出誤差が適切に補正されることとなる。また、気筒21間で差がなくなるように、補正値が算出されるため、補正後の指示電流値に基づき駆動制御することにより、燃料噴射弁30ごとのばらつきが抑制される。
上記第2実施形態によれば以下の優れた効果を奏することができる。
電流検出回路44a,44b以外の要因、例えば、ECU40内や燃料噴射弁30内の回路における抵抗や浮遊容量等により、電圧検出回路47によって検出される電圧値に誤差が生じる場合がある。
そこで、第2逓減時間と第1逓減時間とを比較して、第2誤差に基づく時間差を抽出し、当該第2誤差に基づく時間差に基づき、補正値を算出することとした。第2逓減時間には、第2誤差に基づく時間差(電流値の検出誤差に基づく時間差)と、第1誤差に基づく時間差(回路要因に基づく時間差)とが重複して含まれる。一方、第1逓減時間には、第2誤差に基づく時間差が含まれないが、第1誤差に基づく時間差は第2逓減時間と同様に含まれる。このため、第2逓減時間と第1逓減時間とを比較することにより、第2誤差に基づく時間差を抽出することができる。したがって、抽出された第2誤差に基づく時間差を利用して、補正処理を行うことにより、第1誤差に基づく時間差の影響を抑えて、適正に補正をすることができる。
(他の実施形態)
本発明は、上記実施形態に限定されず、例えば以下のように実施してもよい。なお、以下では、各実施形態で互いに同一又は均等である部分には同一符号を付しており、同一符号の部分についてはその説明を援用する。
上記実施形態において、第2目標電流値Ia2に応じた所定範囲の駆動電流が燃料噴射弁30に流れるのであれば、電圧の印加方法を任意の方法に変更してもよい。例えば、低電圧V1を印加する際、デューティ制御を行い、オンオフを周期的に繰り返すようにしてもよい。また、低電圧V1を継続して印加してよい。また、低電圧V1の代わりに高電圧V2を印加してもよい。
上記実施形態において、燃料噴射弁30が非開弁通電される状態で取得された電圧値に基づき、補正処理を行ったが、燃料噴射弁30が開弁通電される状態で取得された電圧値に基づき、補正処理を行ってもよい。
上記実施形態において、第2目標電流値Ia2は、第1目標電流値Ia1よりも小さい値としたが、大きい値としてもよい。
上記実施形態において、気筒21の数は任意に変更してもよい。
上記実施形態において、指示電流値の数及び種類は任意に変更してもよい。
上記実施形態において、電流検出回路44a,44bは、気筒21毎に設けてもよい。また、高圧電源部46を複数設けてもよい。例えば、駆動グループ1,2毎に高圧電源部46を設けてもよい。この場合、駆動グループ1,2ごとに還流機構(ダイオード48)を備えることが望ましい。
上記第1実施形態のステップS18において、各駆動グループ1,2の平均値に差があるか否かを判定したが、各気筒21における平均値に差があるか否かを判定してもよい。同様に第2実施形態のステップS125において、各気筒21における差分値の平均に差があるか否かを判定してもよい。
上記第1実施形態のステップS18において、駆動グループ1,2の平均値に差があるか否かを判定したが、駆動グループ1,2の平均値がそれぞれ予め決められた基準となる値と差があるか否かを判定してもよい。すなわち、駆動グループ1,2の平均値が基準となる値と一致又はほぼ一致するか否かを判定してもよい。基準となる値は、いずれかの気筒21における逓減時間としてもよいし、実験により設定された値であって記憶部に記憶されている値もよい。
上記第2実施形態のステップS125において、駆動グループ1,2の差分値(平均)に差があるか否かを判定したが、駆動グループ1,2の差分値(平均)がそれぞれ予め決められた基準となる値と差があるか否かを判定してもよい。すなわち、駆動グループ1,2の差分値(平均)が基準となる値と一致又はほぼ一致するか否かを判定してもよい。基準となる値は、いずれかの気筒21における第2誤差に基づく時間差としてもよいし、実験により設定された値であって記憶部に記憶されている値もよい。
上記第1実施形態において、補正値を確定するまでに、複数回の電圧値を取得していたが、1回の電圧値に基づき、補正値を確定してもよい。この場合、第1実施形態のステップS15の処理を省略してもよい。同様に、第2実施形態において、補正値を確定するまでに、駆動制御を異ならせて電圧値をそれぞれ複数回取得していたが、それぞれ1回ずつでもよい。この場合、第2実施形態のステップS116やステップS122の処理を省略してもよい。
上記第1実施形態のステップS18では、逓減時間の平均値に差があるか否かを判定したが、最新の電圧値の傾き(逓減時間)に差があるか否かを判定してもよい。同様に、第2実施形態のステップS125では、第2誤差に基づく時間差(差分値)の平均に差があるか否かを判定したが、最新の差分値に差があるか否かを判定してもよい。
上記第1実施形態のステップS23において、今回指示する第2目標電流値Ia2の算出方法は、数式(1)に限らず、任意の方法としてもよい。例えば、数式(3)に基づき、今回指示する第2目標電流値Ia2を算出してもよい。すなわち、基準とする逓減時間(基準とする電圧値の傾き)から、前回取得した逓減時間(前回取得した電圧値の傾き)を減算した値に、定数Bを乗算し、乗算して得られた値に1加算した値に対して前回指示した第2目標電流値Ia2をさらに乗算することにより、今回指示する第2目標電流値Ia2を算出してもよい。定数Bは実験などにより適切な値が設定され、記憶部に記憶されている。
今回指示する第2目標電流値Ia2=((基準とする逓減時間−前回取得した逓減時間)×定数B+1)×前回指示した第2目標電流値Ia2・・・(3)
上記第2実施形態のステップS133において、今回指示する第2目標電流値Ia2の算出方法は、数式(2)に限らず、任意の方法としてもよい。例えば、数式(4)に基づき、今回指示する第2目標電流値Ia2を算出してもよい。すなわち、基準値から、第2誤差に基づく時間差を減算した値に、定数Aを乗算し、乗算して得られた値に1加算した値に対して前回指示した第2目標電流値Ia2をさらに乗算することにより、今回指示する第2目標電流値を算出してもよい。定数Aは実験などにより適切な値が設定され、記憶部に記憶されている。
今回指示する第2目標電流値Ia2=((基準値−第2誤差に基づく時間差)×定数A+1)×前回指示した第2目標電流値Ia2・・・(4)
また、数式(5)〜(7)に基づき、今回指示する第2目標電流値Ia2を算出してもよい。定数Cは、実験などにより適切な値が設定され、記憶部に記憶されている。また、基準となる第1逓減時間及び第2逓減時間は、予め決められた気筒21における第1逓減時間及び第2逓減時間としてもよいし、実験などにより適切な第1逓減時間及び第2逓減時間を設定して記憶しておいてもよい。
基準となる第1逓減時間−前回取得された第1逓減時間=検出値D・・・(5)
基準となる第2逓減時間−前回取得された第2逓減時間=検出値E・・・(6)
今回指示する第2目標電流値Ia2=((検出値E−検出値D)×定数C+1)×前回指示した第2目標電流値Ia2・・・(7)
上記実施形態では、電流値がピーク値Ipに到達する前まで、短駆動パルスが出力されるように短駆動パルスの出力時間が設定されていたが、これに限らず任意に変更してもよい。例えば、電流値がピーク値Ipに到達した後、低電圧V1の印加開始前まで短駆動パルスが出力されるように短駆動パルスの出力時間が設定されていてもよい。