図1はこの発明の第1実施例に係る内燃機関の燃料供給制御装置を全体的に示す概略図である。
図において、符号10は図示しない車両に搭載されたOHC直列4気筒の内燃機関(以下「エンジン」という)を示す。図示しないエアフィルタやスロットルバルブを介して吸気(インテーク)マニホルド12から導入された吸気は、2個の吸気バルブ(図示せず)を介してエンジン10の各気筒(シリンダ)14に流入する。尚、図1では1つの気筒のみ示す。
気筒14のそれぞれにはピストン16が移動自在に設けられると共に、その頂部に凹部が形成され、ピストン16の頂部とシリンダヘッド18の内壁との間に燃焼室20が形成される。燃焼室20を臨む位置の中央付近には、インジェクタ(燃料噴射弁)22が設けられる。
インジェクタ22は燃料供給管24を介して燃料タンク28に接続される。燃料供給管24の最も上流位置には、低圧ポンプ30が設けられる。また、燃料供給管24において低圧ポンプ30よりも下流位置(低圧ポンプ30とインジェクタ22の間)には、高圧ポンプ32が設けられる。以下、低圧ポンプ30と高圧ポンプ32を接続する燃料供給管(符号24aで示す)を「低圧燃料供給管」という。
高圧ポンプ32は、それよりも下流位置(高圧ポンプ32とインジェクタ22の間)に設けられたデリバリパイプ(蓄圧室)34に接続される。以下、高圧ポンプ32とデリバリパイプ34を接続する燃料供給管(符号24bで示す)を「高圧燃料供給管」という。デリバリパイプ34には、各気筒14に設けられたインジェクタ22が接続される。尚、図1において、図示の便宜上、高圧ポンプ32とデリバリパイプ34をエンジン10から離間した位置に示したが、実際には、それらは共にエンジン10のシリンダヘッド18に取り付けられる。
低圧ポンプ30は、図示しない電動モータで駆動されて燃料タンク28に貯留された燃料(ガソリン燃料)を吸入し、吸入した燃料を低圧(例えば、0.35MPa)に加圧して高圧ポンプ32に吐出(圧送)する。高圧ポンプ32は、エンジン10のカムシャフトに設けられた高圧ポンプ駆動用のカム(図1で図示せず)で駆動されて低圧ポンプ30から吐出された燃料を吸入し、吸入した燃料を高圧(例えば、最大12MPa)に加圧してデリバリパイプ34に吐出(圧送)する。
図1で図示を省略するが、高圧ポンプ32はチェックバルブや電磁ソレノイドを備え、前記電磁ソレノイドを駆動することでその吐出量(吐出時間)が調整自在に構成される。また、低圧燃料管24aには、その内部の燃料圧力が所定値以上に上昇したときに余剰燃料を燃料タンク28に還流するレギュレータと、燃料内の不純物を取り除くエアフィルタ(共に図示せず)が設けられる。
インジェクタ22は、エンジン10の運転状態などに応じて決定される所定の燃料噴射時期で開弁し、デリバリパイプ34の燃料圧力(以下「燃圧」という)に応じた高圧燃料を燃焼室20内に直接噴射する。
燃焼室20には、さらに点火プラグ36が配置される。点火プラグ36は、点火コイルを含む点火装置(図示せず)から点火エネルギの供給を受け、所定の点火時期において噴射燃料と吸入空気の混合気を点火する。点火された混合気は燃焼して爆発し、ピストン16を駆動する。
このように、この実施例に係るエンジン10は、ガソリン燃料をインジェクタ22を介して各気筒14の燃焼室20に直接噴射する、火花点火式の筒内噴射型内燃機関である。
燃焼ガスは、2個の排気バルブ(図示せず)を介して排気(エキゾースト)マニホルド40に排出され、図示しないNOx成分除去触媒装置や三元触媒装置で浄化された後に大気に放出される。
ピストン16はコンロッド42を介してクランクシャフト44に連結されると共に、クランクシャフト44の付近にはクランク角センサ46が配置される。クランク角センサ46は、クランクシャフト44に取り付けられたパルサ46aおよびそれに対向配置された磁気ピックアップ46bからなる。
クランク角センサ46は、クランク角度720度ごとに気筒判別用のCYL信号を、各気筒14のBTDC所定クランク角度ごとにTDC信号を、TDC信号間隔を6個に細分したクランク角度30度ごとにCRK信号を出力する。
また、前記したデリバリパイプ34には、燃圧センサ48が設けられ、デリバリパイプ34の燃圧(実燃圧)PFに応じた信号を出力する。即ち、燃圧センサ48は、高圧ポンプ32から吐出されてインジェクタ22に供給される燃料の圧力に応じた信号を出力する。
また、車両の適宜位置には、インジェクタ22や点火プラグ36、高圧ポンプ32の電磁バルブなどに電圧を供給するバッテリ(電源。図示せず)が搭載される。前記バッテリには電圧センサ50が接続され、バッテリ電圧(電源電圧)VBに応じた信号を出力する。
上記した各センサ、およびスロットル開度や冷却水温などを検出する図示しないセンサ群の出力は、電子制御ユニット(以下「ECU」という)52に送られる。ECU52はマイクロコンピュータからなり、入力回路52a、CPU52b,メモリ52cおよび出力回路52dならびにカウンタ(図示せず)を備える。
クランク角センサ46が出力するCRK信号は、入力回路52aを介して入力された後、カウンタでカウントされてエンジン回転数NEが検出されてメモリ52cに記憶(格納)される。また、その他のセンサ出力値も、入力回路52aを介して入力され、A/D変換などの処理が施された後にメモリ52cに記憶(格納)される。CPU52bは、検出されたエンジン回転数NEおよび入力したセンサ出力値に基づいてインジェクタ22の燃料噴射量や点火プラグ36の点火時期、高圧ポンプ32の吐出量(吐出時間)などを算出すると共に、それに応じた通電指令値を、対応する各機器に出力回路52dを介して送出する。
図2は、上記した高圧ポンプ32の拡大説明図である。
以下、図2を参照して高圧ポンプ32の構造について説明すると、高圧ポンプ32は、エンジン10のカムシャフト60に設けられた高圧ポンプ駆動用カム62で往復駆動される1本のプランジャ64を備えたピストン型のポンプである。尚、高圧ポンプ32は開口部を2箇所備え、そのうち符号68で示す開口部が低圧燃料供給管24aを介して低圧ポンプ30に接続され、符号70で示す開口部が高圧燃料供給管24bを介してデリバリパイプ34に接続される。
高圧ポンプ32の加圧室72の吐出側(加圧室72とデリバリパイプ34の間)には、吐出チェックバルブ74が設けられる。吐出チェックバルブ74は、加圧室72の燃圧(即ち、高圧ポンプ32の吐出圧)がデリバリパイプ34の燃圧PFを上回っているときに開弁される一方、しからざるときは閉弁され、デリバリパイプ34から高圧ポンプ32に燃料が逆流するのを防止する。
また、加圧室72の吸入側(加圧室72と低圧ポンプ30の間)には、吸入チェックバルブ78が設けられる。吸入チェックバルブ78は、低圧ポンプ30の吐出圧が加圧室72の燃圧を上回っているときに開弁される一方、しからざるときは閉弁され、高圧ポンプ32から低圧ポンプ30(低圧燃料供給管24a)に燃料が逆流するのを防止する。
高圧ポンプ32は、さらに電磁ソレノイド80を備える。電磁ソレノイド80は通電(励磁)されることによって変位する可動体(鉄心)80aを備え、その変位方向が吸入チェックバルブ78の変位方向(開弁状態から閉弁されるとき(あるいはその逆のとき)に吸入チェックバルブ78が変位する方向)と一致するように配置される。
可動体80aには円柱状の突出部80bが形成され、突出部80bは、電磁ソレノイド80が通電されていないとき、可動体80aがバネ80cによって吸入チェックバルブ78の方向に付勢されることにより、吸入チェックバルブ78の先端部に当接され、吸入チェックバルブ78を開弁方向に押圧する。
即ち、吸入チェックバルブ78は、電磁ソレノイド80が通電されていないとき、突出部80bによって押圧されることによって開弁される。
一方、電磁ソレノイド80が通電されると、可動体80aは吸入チェックバルブ78の押圧を解除する方向に駆動される。このとき、加圧室72の燃圧が低圧ポンプ30の吐出圧を上回れば、吸入チェックバルブ78が閉弁される。尚、吸入チェックバルブ78の先端部と突出部80bは、上記したように当接しているに過ぎず(即ち、それらは固定されているわけではなく)、従って、電磁ソレノイド80に通電することにより、吸入チェックバルブ78が強制的に閉弁されるわけではない。即ち、吸入チェックバルブ78の開閉弁は、あくまでその上流と下流の圧力差に依存する。
次いで、高圧ポンプ32の動作について図3から図5を参照して説明する。
図3に示すように、プランジャ64が下降することによって加圧室72の燃圧が低下すると、吸入チェックバルブ78が開弁して低圧ポンプ30から吐出された燃料が加圧室72に吸入される。
その後、図4に示すようにプランジャ64が上昇に転じると、加圧室72の燃圧が上昇して吸入チェックバルブ78が閉弁方向に変位しようとする。このとき、電磁ソレノイド80が通電されていない場合は、電磁ソレノイド80の可動体80aに形成された突出部80bによって吸入チェックバルブ78の閉弁が阻止される。これにより、加圧室72に吸入された燃料は、その圧力が吐出チェックバルブ74の下流の圧力(即ち、デリバリパイプ34の燃圧PF)を上回らない限り、吸入チェックバルブ78を介して低圧燃料供給管24aへと還流される。以下、低圧燃料供給管24aに対して行われる燃料の還流を「スピル」という。スピルされた燃料は、前記したレギュレータを介して燃料タンク28へと還流される。
一方、プランジャ64が上昇に転じ、かつ電磁ソレノイド80が通電された場合、図5に示すように、吸入チェックバルブ78が閉弁される。そして、加圧室72の燃圧(吐出圧)がデリバリパイプ34の燃圧PFを超えると、吐出チェックバルブ74が開弁されてデリバリパイプ34に燃料が吐出される。
このように、この実施例に係る高圧ポンプ32は、電磁ソレノイド80を駆動してスピル量を調整することにより、吐出量(吐出時間。別言すれば、デリバリパイプ34に供給される燃料量)を調整することができ、よってデリバリパイプ34の燃圧PF(即ち、インジェクタ22に供給される燃料の圧力)を制御することができる。
また、加圧室72の燃圧が上昇して吸入チェックバルブ78を閉弁方向に押圧する力が大きくなる(バネ80cの付勢力を超える)と、電磁ソレノイド80に対する通電を停止しても吸入チェックバルブ78は開弁されない。即ち、高圧ポンプ32の吐出圧が電磁ソレノイド80のバネ80cの付勢力を上回っている限り、電磁ソレノイド80への通電を行うことなく燃料の吐出を継続することができる。
これについて図6に示すタイムチャートを参照して説明すると、加圧室72に吸引した燃料を加圧しない(デリバリパイプ34に吐出させないでスピルさせる)ときは電磁ソレノイド80に通電する必要がないのは前述の通りである。また、加圧室72に吸引した燃料を加圧する(高圧ポンプ32で吸引した燃料をデリバリパイプ34に吐出する)場合も、吸入チェックバルブ78が閉弁した後、高圧ポンプ32の吐出圧がバネ80cの付勢力を下回るまでは電磁ソレノイド80に通電する必要がなく、よって図示のように、吸入チェックバルブ78を閉弁すべき時間よりも短い時間のみ通電すれば足りることになる。
ここで、デリバリパイプ34への燃料の吐出時間(吐出量)は、吸入チェックバルブ78の閉弁時間に依存することから、上記は、短い通電時間でデリバリパイプ34の燃圧PFを制御することが可能であることを意味する。即ち、この実施例に係る高圧ポンプ32にあっては、吸入チェックバルブ78と電磁ソレノイド80を別体に構成することで、デリバリパイプ34の燃圧PFの制御に必要な消費電力を大幅に低減することを可能とした。
尚、吸入チェックバルブ78が開弁している場合であっても、低圧ポンプ30の吐出圧がデリバリパイプ34の燃圧PFを上回っていれば、燃料はデリバリパイプ34に供給される。即ち、高圧ポンプ32が燃料の加圧を行っていないときであっても、デリバリパイプ34の燃圧PFが0.35MPaを下回っていれば、低圧ポンプ30の吐出圧によってデリバリパイプに燃料を供給することができる。
次いで、上記した高圧ポンプ32の特性を前提として、この実施例に係る内燃機関の燃料供給制御装置の動作、より具体的には、電磁ソレノイド80の通電制御について詳説する。
図7は、その動作を示すメインルーチンフローチャートである。図示のプログラムは、クランク角センサ46からTDC信号が出力される度にECU52によって実行される。
以下説明すると、先ずS10において、高圧ポンプ32の動作(具体的には、燃料の加圧動作)を実行すべきか否かの判断処理を行う。
図8は、その高圧ポンプ動作実行判断処理を示すサブルーチンフローチャートである。同図を参照して高圧ポンプ動作実行判断処理について説明すると、先ず、S100において、フラグF.CYLINIのビットが1にセットされているか否か判断する。フラグF.CYLINIは、図示しないプログラムにおいて、高圧ポンプ32の動作を実行すべき所定クランク角(例えばTDC)のときにそのビットが1にセットされる。
S100で否定されて高圧ポンプ32の動作を実行すべきタイミングではないと判断されたときは、S102に進み、高圧ポンプ動作実行フラグF.HPUMPACTのビットを0にリセットする。尚、高圧ポンプ動作実行フラグF.HPUMPACTは、そのビットが1にセットされているときに高圧ポンプ32の動作を実行することを示し、0にリセットされているときは、高圧ポンプ32の動作を実行しないことを示す。
一方、S100で肯定されて高圧ポンプ32の動作を実行すべきタイミングであると判断されたときは、次いでS104に進み、フェイルセーフフラグF.FSPHPUMPのビットが1にセットされているか否か判断する。フェイルセーフフラグF.FSPHPUMPは、高圧ポンプ32に故障などの異常が発生したときに、図示しないプログラムでそのビットが1にセットされる。
S104で肯定されるときは、S102に進んで高圧ポンプ動作実行フラグF.HPUMPACTのビットを0にリセットする一方、S104で否定されるときは、次いでS106に進み、高圧ポンプ動作実行フラグF.HPUMPACTのビットを1にセットし、高圧ポンプ32の動作を実行することを指示する。
図7フローチャートの説明に戻ると、次いでS12に進み、フルスピル(スピル量を最大にする)あるいはフル吐出(吐出量を最大にする)の要求がなされているか否かの判定処理を行う。
図9は、そのフルスピル・フル吐出要求判定処理を示すサブルーチンフローチャートである。同図を参照してフルスピル・フル吐出要求判定処理について説明すると、先ず、S200において、燃圧偏差の算出処理を行う。
図10は、その燃圧偏差算出処理を示すサブルーチンフローチャートであり、先ず、S300において、前回のプログラム実行時に設定されたステータスST.PFOJ(後述)を、前回ステータスST.PFOJZにセットし、前回ステータスST.PFOJZを更新する。
次いで、S302に進み、前記した高圧ポンプ動作実行フラグF.HPUMPACTのビットが1にセットされているか否か、即ち、高圧ポンプ32の動作の実行が指示されているか否か判断する。
S302で肯定されるときは次いでS304に進み、エンジン回転数NEが第1の所定回転数#NPFOJ1以下か否か判断する。尚、第1の所定回転数#NPFOJ1は、例えば1000rpm程度の低い回転数に設定される。
S304で肯定されてエンジン回転数NEが1000rpm以下の低速域にあると判断されたときは、次いでS306に進み、第1の所定目標燃圧#PFOBJ0(例えば、8MPa)をデリバリパイプ34の目標燃圧PFOBJに設定し、さらにS308に進んで第1のステータス00hをステータスST.PFOJに設定する。
他方、S304で否定されるときは次いでS310に進み、エンジン回転数NEが第2の所定回転数#NPFOJ2以下か否か判断する。第2の所定回転数#NPFOJ2は、例えば5000rpm程度の高い回転数に設定される。
S310で肯定されてエンジン回転数NEが1000rpmから5000rpmの間の中速域にあると判断されたときは、次いでS312に進み、第1の所定目標燃圧#PFOBJ0よりも高い値(例えば、10MPa)に設定された第2の所定目標燃圧#PFOBJ1を目標燃圧PFOBJに設定した後、S314に進んで第2のステータス01hをステータスST.PFOJに設定する。
これに対し、S310で否定されてエンジン回転数NEが5000rpmを上回る高速域にあると判断されたときは、S316に進み、第2の所定目標燃圧#PFOBJ1よりも高い値(例えば、11MPa)に設定された第3の所定目標燃圧#PFOBJ2を目標燃圧PFOBJに設定し、さらにS318に進んで第3のステータス02hをステータスST.PFOJに設定する。
一方、前述したS302で否定されたときは次いでS320に進み、第1の所定目標燃圧#PFOBJ0よりも低い値(例えば、0.35MPa。より具体的には、低圧ポンプ30の吐出圧)に設定された第4の所定目標燃圧#PFFEDを目標燃圧PFOBJに設定すると共に、S322に進んで第4のステータス03hをステータスST.PFOJに設定する。このように、ステータスST.PFOJは、目標燃圧PFBOJとして第1から第4の所定目標燃圧#PFOBJ0,#PFOBJ1,#PFOBJ2,#PFFEDのどれが選択されているかを表している。
以上のように、この実施例にあっては、目標燃圧PFOBJをエンジン回転数NEに基づいて段階的に(3段階に)決定するようにした。尚、エンジン回転数NEが高くなるに従って目標燃圧PFOBJが大きい値に設定されるのは、エンジン回転数NEが高くなるほど燃料噴射が可能な期間が短くなり、より高い燃料圧力が必要とされるためである。
図10フローチャートの説明を続けると、目標燃圧PFOBJとステータスST.PFOJが設定された後、さらにS324に進み、前回のプログラム実行時に算出された燃圧偏差DPFOBJの値を前回燃圧偏差DPFOBJZにセットすることにより、前回燃圧偏差DPFOBJZを更新する。そして、S326において、検出された燃圧(実燃圧)PFから目標燃圧PFOBJを減算し、燃圧偏差DPFOBJの今回値を算出(設定)する。
次いでS328に進み、前回のプログラム実行時に算出された燃圧偏差DPFOBJの一次差分値DDPFOBJを前回一次差分値DDPFOBJZにセットして前回一次差分値DDPFOBJZを更新すると共に、S330に進んで燃圧偏差DPFOBJから前回燃圧偏差DPFOBJZを減算し(即ち、燃圧偏差DPFOBJの今回値と前回値の差分を求め)、一次差分値DDPFOBJの今回値を算出(設定)する。そして、さらにS332に進み、一次差分値DDPFOBJから前回一次差分値DDPFOBJZを減算し(一次差分値DDPFOBJの今回値と前回値の差分を求め)、二次差分値DDDPFOBJを算出(設定)する。尚、一次差分値DDPFOBJと二次差分値DDDPFOBJは、共に燃圧PFのフィードバック制御(PID制御)で使用されるD項用の値である。
図9フローチャートの説明に戻ると、次いでS202に進み、前記高圧ポンプ動作実行フラグF.HPUMPACTのビットが1にセットされているか否か判断する。S202で否定されるときは次いでS204に進み、フル吐出要求フラグF.HPSTGFLのビットを0にリセットし、次いでS206に進んでフルスピル要求フラグF.HPNFLSPのビットも0にリセットする。
尚、フル吐出要求フラグF.HPSTGFLは、そのビットが1にセットされているとき、高圧ポンプ32に吸引された燃料を全てデリバリパイプ34に吐出する、即ち、燃料の吐出量(吐出時間)を最大にすることを示し、0にリセットされているときはしからざる場合を示す。また、フルスピル要求フラグF.HPNFLSPは、そのビットが0にリセットされているとき、高圧ポンプ32に吸引された燃料を全てスピルさせる(スピル量を最大にする)、即ち、燃料の吐出量を零にすることを示し、1にセットされているときはしからざる場合を示す。
従って、S202で否定されて高圧ポンプ32の動作の実行が指示されていないときは、フル吐出要求フラグF.HPSTGFLのビットを0にリセットすると共に、フルスピル要求フラグF.HPNFLSPのビットも0にリセットすることで、高圧ポンプ32から燃料が吐出されないようにする。
他方、S202で肯定されるときは次いでS208に進み、フューエルカットフラグF.FCのビットが1にセットされているか否か判断する。フューエルカットフラグF.FCは、図示しないプログラムにおいて、車両の減速時など、フューエルカットを行うべきときにそのビットが1にセットされる。
S208で肯定されてフューエルカットすべきと判断されたときは、燃料を供給する必要がないことから、前記したS204とS206に進んで高圧ポンプ32から燃料が吐出されないように各フラグをリセットする。
一方、S208で否定されるときは次いでS210に進み、目標燃圧PFOBJが減少されたときの処理を行う。
図11は、その目標燃圧減少時処理を示すサブルーチンフローチャートである。以下同図を参照して目標燃圧減少時処理について説明すると、先ず、S400で始動時フラグF.STMODのビットが1にセットされているか否か判断する。始動時フラグF.STMODは、そのビットが1にセットされているとき、今回のプログラムループがエンジン10の始動後初めて実行されたプログラムループであることを示す。尚、始動時フラグF.STMODのビットは、図示しないプログラムにおいて、エンジン回転数NEが完爆回転数に達したかなどの判断に基づいて生成される。
S400で肯定されて始動時と判断されるときはS402に進み、始動後タイマTASPFDN(ダウンカウンタ)に所定時間#TMASPFDNをセットすると共に、S404に進んでフルスピル実施タイマTPFDN(ダウンカウンタ)に所定時間#TMPFDNをセットする。そして、S406に進み、目標燃圧減少時フルスピル要求フラグF.RQPFDNのビット0にリセットする。
尚、目標燃圧減少時フルスピル要求フラグF.RQPFDNは、そのビットが1にセットされているとき、目標燃圧PFOBJが減少させられたことに伴って生じる実燃圧の追従性低下を防止するためのフルスピルが要求されていることを示し、0にリセットされているときはしからざる場合を示す。従って、S400で肯定された場合は、エンジン10の始動時であり、目標燃圧PFOBJが減少させられることがないため、目標燃圧減少時フルスピル要求フラグF.RQPFDNのビットが0にリセットされる。
S400で否定されるときは、S408に進んで始動後タイマTASPFDNの値が零に達したか否か判断する。S408で否定されるときは、エンジン始動後から所定時間は燃圧PFを上昇させるべきであるのでS404とS406に進む一方、S408で肯定されるときは、次いでS410に進み、目標燃圧減少時フルスピル要求フラグF.RQPFDNのビットが1にセットされているか否か判断する。
エンジン10の始動後、初めて始動後タイマTASPFDNの値が零に達したときはS410で否定され、S412に進む。S412では、ステータスST.PFOJが第1のステータス00hに設定されているか否か判断し、そこで肯定されたときはS414に進んで前回ステータスST.PFOJZが第2のステータス01hに設定されているか否か判断する。
ここで、ステータスST.PFOJが第1のステータス00hに設定されるときの目標燃圧PFOBJは、前述したように8MPaである。一方、ステータスST.PFOJが第2のステータス01hに設定されるときの目標燃圧PFOBJは10MPaである。従って、S412とS414で共に肯定される場合は、目標燃圧PFOBJが減少する方向に変更されたことを意味し、S412で肯定された後にS414で否定された場合は、目標燃圧PFOBJが増加する方向に変更された、あるいは変更されなかったことを意味する。
S412あるいはS414で否定されたときは次いでS416に進み、ステータスST.PFOJが第2のステータス01hに設定されているか否か判断し、そこで肯定されたときはS418に進み、前回ステータスST.PFOJZが第3のステータス02hに設定されているか否か判断する。即ち、S416とS418で共に肯定される場合は、目標燃圧PFOBJが減少する方向に変更されたことを意味し、S416で肯定された後にS418で否定された場合は、目標燃圧PFOBJが増加する方向に変更された、あるいは変更されなかったことを意味する。
S416あるいはS418で否定されて目標燃圧PFOBJが増加する方向に変更された、あるいは変更されなかったと判断されたときは、前記したS404とS406に進む。一方、S414あるいはS418で肯定されて目標燃圧PFOBJが減少されられたと判断されたときは、次いでS420に進み、燃圧偏差DPFOBJが所定値#DPFFBDN以下か否か判断する。S420で否定されるときは、次いでS422に進み、フルスピル実施タイマTPFDNの値が零に達したか否か判断する。S422で否定されたときは、さらにS424に進んで目標燃圧減少時フルスピル要求フラグF.RQPFDNのビットを1にセットし、燃料のフルスピルを実行するようにする。
目標燃圧減少時フルスピル要求フラグF.RQPFDNのビットが1にセットされると、次回以降のプログラム実行時はS410で肯定されてS420からS424に進み、S420あるいはS422で肯定されない限り、燃料のフルスピルが継続される。
このように、この実施例にあっては、目標燃圧PFOBJが減少させられ、かつ燃圧偏差DPFOBJが所定値#DPFFBDNを上回っているときは、燃料をフルスピルさせて(高圧ポンプ32に吸引された燃料を全てスピルさせて)デリバリパイプ34に新たな燃料が供給されないようし、デリバリパイプ34の燃圧PFを速やかに低下させるようにした。これにより、目標燃圧PFOBJが減少させられたときの実燃圧(燃圧PF)の追従性を向上させることができ、よって所望の燃料噴射を実行することができる。
尚、燃圧偏差DPFOBJが所定値#DPFFBDN以下になったとき(S420で肯定されたとき)は、実燃圧が目標燃圧PFOBJに追従したと判断し、S404とS406に進んで燃料のフルスピルを終了する。また、フルスピル実施タイマTPFDNの値が零に達したとき(S422で肯定されたとき)、別言すれば、燃圧偏差DPFOBJが所定値#DPFFBDNを上回っている状態が所定時間継続したと判断されたときも、S404とS406に進んで燃料のフルスピルを終了する。これは、なんらかの理由によって燃圧偏差DPFOBJが正しい値を示さなかった場合に、燃圧PFが低圧のまま維持されて運転フィーリングが著しく低下するのを防止するためである。
図9フローチャートの説明に戻ると、S212に進み、高圧ポンプ32の制御に用いられる高圧ポンプ制御用燃料噴射量TOUTHPMXの算出処理を行う。
図12は、その高圧ポンプ制御用燃料噴射量算出処理を示すサブルーチンフローチャートである。以下説明すると、先ず、S500で気筒数iを0にリセットし、次いでS502で気筒別要求燃料量の最大値toutnmaxを0にリセットし、さらにS504に進んで気筒数iを1つインクリメントする。
次いでS506に進み、気筒別の実燃料噴射量TNET[i]と燃料付着量などの各種パラメータに基づいて気筒別の要求燃料量toutntmpに算出すると共に、S508に進んで気筒別要求燃料量の最大値toutnmaxとS506で算出した気筒別要求燃料量toutntmpのうち、大きい値を新たな気筒別要求燃料量の最大値toutnmaxに設定する。
次いで、S510に進み、気筒数iがエンジン10の備える気筒数NOFCYL(即ち、4)に達したか否か判断する。S510で否定されるときはS504からS508までの処理を再度実行すると共に、S510肯定されるときは次いでS512に進み、気筒別要求燃料量の最大値toutnmaxを高圧ポンプ制御用燃料噴射量TOUTHPMXに設定する。
図9フローチャートの説明に戻ると、次いでS214に進み、目標燃圧減少時フルスピル要求フラグF.RQPFDNのビットが1にセットされているか否か判断する。S214で肯定されるときは前述したS204とS206に進む一方、S214で否定されるときは次いでS216に進み、燃圧PF(実燃圧)が第1の所定燃圧#PFFLLを上回っているか否か判断する。第1の所定燃圧#PFFLLは、例えば0.4MPa程度の低い値に設定される。
S216で否定されるときは次いでS218に進み、フルスピル要求フラグF.HPNFLSPのビットが1にセットされているか否か(フルスピルが要求されていないか否か)判断し、そこで否定されるとき(フルスピルが要求されているとき)は、次いでS220に進み、高圧ポンプ制御用燃料噴射量TOUTHPMX(具体的には、気筒別要求燃料量toutntmpの最大値)が、高圧ポンプ32の最大吐出量#TOUTHPONを上回っているか否か判断する。
S220で肯定されるときは高圧ポンプ32の吐出量を最大にしてもエンジン10に要求される燃料量の全てを供給することができないため、S204とS206に進んで高圧ポンプ32に吸引された燃料をフルスピルさせる。このとき、デリバリパイプ34の燃圧PFが低圧ポンプ30の吐出圧(0.35MPa)を下回っていれば、低圧ポンプ30の吐出圧によって燃料がデリバリパイプ34に吐出される。
一方、S220で否定されるときは、次いでS222に進み、フル吐出要求フラグF.HPSTGFLのビットを0にリセットすると共に、さらにS224に進んでフルスピル要求フラグF.HPNFLSPのビットを1にセットし、高圧ポンプ32を動作させる通常のフィードバック制御に移行する。
このように、この実施例にあっては、高圧ポンプ制御用燃料噴射量TOUTHPMX(気筒別要求燃料量toutntmpの最大値)が、高圧ポンプ32の最大吐出量#TOUTHPONを上回っているか否か判断し、高圧ポンプ制御用燃料噴射量TOUTHPMXが最大吐出量#TOUTHPONを上回ったとき、高圧ポンプ32による燃料の加圧を中止して低圧ポンプ30の吐出圧でインジェクタ22(デリバリパイプ34)に燃料を供給するように構成したので、冷間始動時など、高圧ポンプ32では必要な燃料量の全てを供給しきれない場合は低圧ポンプ30で燃料を供給することができ、エンジン10の始動性を向上させることができる。また、燃料の供給を高圧ポンプ32で賄えるようになった場合は直ちに高圧ポンプ32を動作させることができるため、燃圧PFを速やかに上昇させて噴射燃料を微粒化でき、エミッションも向上させることができる。
図9フローチャートの説明を続けると、S216で肯定されるときは次いでS226に進み、燃圧PF(実燃圧)が第2の所定燃圧#PFFLHを上回っているか否か判断する。第2の所定燃圧#PFFLHは、第1の所定燃圧#PFFLLより高い値、例えば5MPa程度に設定される。
S226で肯定されるとき、即ち、5MPaを上回る十分に高い燃圧が確保できていると判断されたときは、S222とS224に進んで通常のフィードバック制御に移行する。他方、S226で否定され、燃圧PFが0.4MPaから5MPaの比較的低い値であると判断されたときは、次いでS228に進み、フル吐出要求フラグF.HPSTGFLのビットを1にセットして燃料をフル吐出させる。即ち、高圧ポンプ32の吐出量(吐出時間)を最大にして燃圧PFを速やかに上昇させる。
このように、この実施例にあっては、デリバリパイプ34の燃圧PFを検出し、検出された燃圧PFが第2の所定燃圧#PFFLH(5MPa)を下回っているとき、高圧ポンプ32の吐出量が最大となるように構成したので、機関始動直後の目標燃圧PFOBJに対する実燃圧(燃圧PF)の追従性を向上させることができ、よって所望の燃料噴射を実行することができる。具体的には、機関始動直後の燃圧PFを速やかに上昇させることができ、よってエンジン10の失火を防止することができる。
図7フローチャートの説明に戻ると、次いでS14に進み、燃圧PFのフィードバック係数KHPFPIDの算出処理を行う。
図13は、そのフィードバック係数算出処理を示すサブルーチンフローチャートである。以下、同図について説明すると、先ず、S600において、算出完了カウンタCKHPFPID(ダウンカウンタ)の値が零に達したか否か判断する。S600で否定されるときは、次いでS602に進み、フィードバック制御ディレイカウンタCHPFBDLY(ダウンカウンタ)の値を零にリセットする。次いでS604に進み、フィードバック制御実行フラグF.HPFPFBのビットを0にリセットすると共に、S606でフィードバック係数KHPFPIDを初期値#KHPFPIDINIとする。尚、フィードバック制御実行フラグF.HPFPFBは、そのビットが1にセットされているとき、燃圧PFのフィードバック制御を実行することを示し、0にリセットされているときはしからざる場合を示す。
一方、S600で肯定されるときは次いでS608に進み、フルスピル要求フラグF.HPNFLSPのビットが1にセットされているか否か判断する。S608で否定される、即ち、フルスピルの実行が要求されているときは、S610に進んでフィードバック制御ディレイカウンタCHPFBDLYに所定値#CTHPFBDLYをセットする。次いでS612に進み、S604と同様にフィードバック制御実行フラグF.HPFPFBのビットを0にリセットし、さらにS614に進んでフィードバック係数KHPFPIDを1.0とする。
また、S608で肯定されるときは次いでS616に進み、フル吐出要求フラグF.HPSTGFLのビットが1にセットされているか否か判断する。S616で肯定されてフル吐出の実行が要求されていると判断されるときは、S610からS614に進む一方、S616で否定されるときは、次いでS618に進み、フィードバック制御ディレイカウンタCHPFBDLYの値が零に達したか否か判断する。
S618で否定されるときは、S612とS614に進むと共に、S618で肯定されるときはS620に進み、フィードバック制御実行フラグF.HPFPFBのビットを1にセットする。
次いでS622に進み、前記した一次差分値DDPFOBJに基づいてP項用マップDKHPFPを検索し、フィードバック制御用のP項DKHPFPXを決定する。同様に、S624とS626において、燃圧偏差DPFOBJに基づいてI項用マップDKHPFIを検索してフィードバック制御用のI項DKHPFIXを決定すると共に、二次差分値DDDPFOBJに基づいてD項用マップDKHPFDを検索してフィードバック制御用のD項DKHPFDXを決定する。そして、S628で、上記P項DKHPFPXとI項DKHPFIXとD項DKHPFDXを加算し、フィードバック制御用の加減算項DKHPFPIDを算出する。
次いで、S630に進み、前回のプログラム実行時に算出されたフィードバック係数KHPFPIDに上記加減算項DKHPFPIDを加算して得た値を仮フィードバック係数khpfpidtmpに設定し、さらにS632に進み、仮フィードバック係数khpfpidtmpをリミット処理して得た値を最終的なフィードバック係数KHPFPIDに設定する。尚、リミット処理の上限値#KHPFPIDHは1.5に、下限値#KHPFPIDLは0.5にそれぞれ設定され、フィードバック係数KHPFPIDはそれらの間の値として算出される。
図7フローチャートの説明に戻ると、次いでS16に進み、高圧ポンプ32の吐出時間THPCALの算出処理を行う。
図14は、その吐出時間算出処理を示すサブルーチンフローチャートであり、以下同図について説明すると、先ずS700でフルスピル要求フラグF.HPNFLSPのビットが1にセットされているか否か判断する。
S700で否定されてフルスピルの実行が要求されていると判断されるときは、次いでS702に進み、吐出時間THPCALを零とする。
他方、S700で肯定されるときは、次いでS704に進み、フル吐出要求フラグF.HPSTGFLのビットが1にセットされているか否か判断する。S704で肯定されてフル吐出の実行が要求されていると判断されるときは、次いでS706に進み、エンジン回転数NEに基づいてフル吐出時用マップTHPMFL(即ち、目標燃圧PFOBJが5MPa以下(より詳しくは、0.4MPaから5MPaの間)のときのマップ)を検索し、基本吐出時間THPMXを決定する。
また、S704で否定されるときは、S708に進んで前記したステータスST.PFOJに第1のステータス00hが設定されているか否か判断する。S708で肯定されるときは、S710に進み、エンジン回転数NEと高圧ポンプ制御用燃料噴射量TOUTHPMXに基づいて第1ステータス用マップTHPM0(目標燃圧PFOBJが8MPaのときのマップ)を検索し、基本吐出時間THPMXを決定する。
一方、S708で否定されるときは次いでS712に進み、ステータスST.PFOJに第2のステータス01hが設定されているか否か判断する。S712で肯定されるときは、次いでS714に進み、エンジン回転数NEと高圧ポンプ制御用燃料噴射量TOUTHPMXに基づいて第2ステータス用マップTHPM1(目標燃圧PFOBJが10MPaのときのマップ)を検索して基本吐出時間THPMXを決定すると共に、S712で否定されるときは、S716に進み、エンジン回転数NEと高圧ポンプ制御用燃料噴射量TOUTHPMXに基づいて第3ステータス用マップTHPM2(目標燃圧PFOBJが11MPaのときのマップ)を検索して基本吐出時間THPMXを決定する。
ここで、上記したフル吐出時用マップおよび第1から第3のステータス用マップは、同一エンジン回転数NE、同一高圧ポンプ制御用燃料噴射量TOUTHPMXで比較した場合、目標燃圧PFOBJが大きいときに選択されるマップほど基本吐出時間THPMXが長く設定される。これは、燃圧PFが大きいときほど、同一時間内に噴射される燃料量が多くなるためである。
基本吐出時間THPMXが決定されると、S718に進み、バッテリ電圧VBに基づいてマップTHPVBを検索し、通電無効時間(遅れ無効時間)THPVBXを決定する。
次いでS720に進み、基本吐出時間THPMXに前記したフィードバック係数KHPFPIDを乗算して得た値をフィードバック補正入り仮基本吐出時間thptmpに設定し、さらにS722に進み、エンジン回転数NEに基づいてマップTHPFBHを検索して最大吐出時間THPFBHXを決定する。
そして、S724で最大吐出時間THPFBHXを上限値としてリミット処理したフィードバック補正入り仮基本吐出時間thptmpを、フィードバック補正入り基本吐出時間THPFBに設定し、さらにS726に進み、フィードバック補正入り基本吐出時間THPFBに通電無効時間THPVBXを加算して得た値を最終的な吐出時間THPCALに設定する。
図7フローチャートの説明に戻ると、次いでS18に進み、電磁ソレノイド80の通電開始時期THEHPSSTと通電時間THOUTの算出処理を行う。
図15は、その通電開始時期および通電時間算出処理を示すサブルーチンフローチャートである。以下説明すると、先ず、S800において、フルスピル要求フラグF.HPNFLSPのビットが1にセットされているか否か判断する。
S800で否定されてフルスピルの実行が要求されていると判断されるときは、次いでS802に進み、通電開始時期THEHPSSTを零にセットすると共に、S804に進んで通電時間THOUTも零にセットする。
他方、S800で肯定されるときは次いでS806に進み、予め設定された吐出終了時期#THEHPEND(例えば、プランジャ64の上死点)から吐出時間THPCALを減算して得た値を吐出開始時期thehpcalclに設定し、S808で、そのリミット処理を行う(吐出開始時期thehpcalclが過去に設定されないようにする)。
次いで、S810に進み、吐出開始時期thehpcalclからセンサ遅れ時間IGSDを減算して得た値を吐出開始時期thehpcalclとして更新し、S812において、S808と同様にそのリミット処理を行う。
そして、S814に進んで吐出開始時期thehpcalclを通電開始時期THEHPSSTに設定し、さらにS816に進んでエンジン回転数NEとバッテリ電圧VBに基づいてマップTHPOUTMを検索し、通電時間THOUTを決定する。
ここで、通電時間THOUTは、エンジン回転数NEが高くなるに従って短くなるように設定される。これは、エンジン回転数NEが高いほど、加圧室72の圧力が上昇するのに要する時間が短い(即ち、吸入チェックバルブ78が閉弁するまでの時間が短い)ためである。前述したように、吸入チェックバルブ78が閉弁し、加圧室72の圧力が電磁ソレノイドのバネ80cの付勢力を上回った後は、電磁ソレノイド80に通電することなく燃料の吐出を継続できる。従って、エンジン回転数NEが高く、加圧室72の圧力上昇に要する時間が短いほど、電磁ソレノイド80の通電時間を短くすることができる。
また、通電時間THOUTは、バッテリ電圧VBが大きくなるに従って短くなるように設定される。これは、バッテリ電圧VBが大きいほど、電磁ソレノイドの可動体80aが実際に変位を終え、吸入チェックバルブ78が閉弁可能となるまでの時間が短いためである。
電磁ソレノイド80は、上記のようにして決定された通電開始時期THEHPSSTから、通電時間THOUTにわたって電力を供給され、可動体80aを吸入チェックバルブ78の押圧を解除する方向に駆動する。
このように、この実施例にあっては、高圧ポンプ制御用燃料噴射量TOUTHPMX(気筒別要求燃料量toutntmpの最大値)とフィードバック補正係数KHPFPIDと電磁ソレノイド80の通電無効時間THPVBXとに基づいて高圧ポンプ32の吐出時間THPCALを決定し、前記決定された吐出時間THPCALと予め設定された吐出終了時期#THEHPENDとに基づいて高圧ポンプ32の吐出開始時期thehpcalclを決定し、さらに前記決定された吐出開始時期thehpcalclに基づいて電磁ソレノイドの通電開始時期THEHPSSTを決定するように構成した、具体的には、電磁ソレノイド80の通電時間と高圧ポンプ32による燃料の吐出時間のずれを考慮し、吐出量と等価である吐出時間をフィードバック制御し、それに基づいて通電時間を決定するようにしたので、本実施例に係る高圧ポンプ32のように電磁ソレノイドの通電時間と燃料の吐出時間が一致しない場合であってもその吐出量を正確に調整することができ、よってインジェクタ22に供給される燃料の圧力(燃圧PF)を精度良く制御することができる。
また、通電時間THOUTをエンジン回転数NEとバッテリ電圧VBに基づいて決定するようにしたので、高圧ポンプ32の吐出量をより正確に調整することができ、よってインジェクタ22に供給される燃料の圧力をより精度良く制御することができる。
また、目標燃圧PFOBJをエンジン回転数NEに基づいて段階的に(3段階に)決定すると共に、目標燃圧PFOBJが減少させられ、かつ燃圧偏差DPFOBJが所定値#DPFFBDNを上回っているときに燃料をフルスピルさせて(スピル量を最大にして)デリバリパイプ34に新たな燃料が供給されないようし、よってデリバリパイプ34の燃圧PFを速やかに低下させるようにしたので、目標燃圧PFOBJが減少させられたときの実燃圧(燃圧PF)の追従性を向上させることができ、よって所望の燃料噴射を実行することができる。
また、高圧ポンプ制御用燃料噴射量TOUTHPMX(気筒別要求燃料量toutntmpの最大値)が、高圧ポンプ32の最大吐出量#TOUTHPONを上回っているとき、高圧ポンプ32による燃料の加圧を中止して低圧ポンプ30の吐出圧でインジェクタ22(デリバリパイプ34)に燃料を供給するように構成したので、冷間始動時など、高圧ポンプ32では必要な燃料量の全てを供給しきれない場合は低圧ポンプ30で燃料を供給することができ、エンジン10の始動性を向上させることができる。また、燃料の供給を高圧ポンプ32で賄えるようになった場合は直ちに高圧ポンプ32を動作させることができるため、燃圧PFを速やかに上昇させて噴射燃料を微粒化でき、エミッションも向上させることができる。
さらに、デリバリパイプ34の燃圧PFが第2の所定燃圧#PFFLH(5MPa)を下回っているとき、高圧ポンプ32の吐出量が最大となる(吐出時間が最長となる)ように構成したので、機関始動直後の目標燃圧PFOBJに対する実燃圧(燃圧PF)の追従性を向上させることができ、よって所望の燃料噴射を実行することができる。具体的には、機関始動直後の燃圧PFを速やかに上昇させることができ、よってエンジン10の失火を防止することができる。
以上の如く、この発明の第1実施例にあっては、内燃機関(エンジン10)のインジェクタ(22)に供給される燃料を貯留する燃料タンク(28)と、前記インジェクタと前記燃料タンクとを接続する燃料供給管(24)と、前記燃料タンクに貯留された燃料を吸入し、高圧に加圧して前記インジェクタに吐出する高圧ポンプ(32)と、前記高圧ポンプの吐出量を調整して前記インジェクタに供給される燃料の圧力(燃圧PF)を制御する燃料圧力制御手段(ECU52)とを備えると共に、前記高圧ポンプは、吐出側に配置されて前記吐出した燃料の逆流を防止する第1のチェックバルブ(吐出チェックバルブ74)と、吸入側に配置されて前記吸入した燃料をスピルさせる電磁ソレノイド(80)とを備え、前記燃料圧力制御手段は、前記電磁ソレノイドを駆動して前記燃料のスピル量を調整し、よって前記高圧ポンプの吐出量を調整して前記燃料圧力を制御する内燃機関の燃料供給制御装置において、前記燃料圧力制御手段は、前記内燃機関で要求される要求燃料量(高圧ポンプ制御用燃料噴射量TOUTHPMX)と前記燃料圧力の補正係数(フィードバック係数KHPFDPID)と前記電磁ソレノイドの通電無効時間(THPVBX)とに基づいて前記高圧ポンプの吐出時間(THPCAL)を決定する吐出時間決定手段(ECU52、図14フローチャートのS700からS726)と、前記決定された吐出時間と予め設定された吐出終了時期(THEHPEND)とに基づいて前記高圧ポンプの吐出開始時期(thehpcalcl)を決定する吐出開始時期決定手段(ECU52、図15フローチャートのS806)と、前記決定された吐出開始時期に基づいて前記電磁ソレノイドの通電開始時期(THEHPSST)を決定する通電開始時期決定手段(ECU52、図15フローチャートのS814)とを備えるように構成した。
また、前記高圧ポンプは、さらに、吸入側に配置されて前記吸入した燃料の逆流を防止する一方、前記吸入した燃料をスピルさせるときに前記電磁ソレノイドによって開弁させられる第2のチェックバルブ(吸入チェックバルブ78)を備えると共に、前記燃料圧力制御手段は、さらに、前記電磁ソレノイドに供給される電源電圧(バッテリ電圧VB)を検出する電源電圧検出手段(電圧センサ50)と、前記検出された電源電圧に基づいて前記電磁ソレノイドの通電時間(THPOUT)を決定する通電時間決定手段(ECU52、図15フローチャートのS816)とを備えるように構成した。
また、前記燃料圧力制御手段は、さらに、前記内燃機関の回転数(エンジン回転数NE)を検出する機関回転数検出手段(クランク角センサ46)を備えると共に、前記通電時間決定手段は、前記検出された電源電圧と機関回転数とに基づいて前記電磁ソレノイドの通電時間を決定する(ECU52、図15フローチャートのS816)ように構成した。