図1は、本発明の一実施例としてのエンジン装置11を備える自動車10の構成の概略を示す構成図である。実施例の自動車10は、図示するように、エンジン12と、燃料供給装置42と、気化燃料処理装置50と、エンジン12のクランクシャフト14に接続されると共にデファレンシャルギヤ62を介して駆動輪64a,64bに接続される変速機60と、エンジン12を始動するための図示しないスタータと、車両全体の制御を行なう電子制御ユニット70とを備える。実施例のエンジン装置11としては、主として、エンジン12と燃料供給装置42と気化燃料処理装置50と電子制御ユニット70とが該当する。
エンジン12は、燃料タンク40からのガソリンや軽油などの燃料を用いて吸気、圧縮、膨張、排気の4行程により動力を出力する内燃機関として構成されている。このエンジン12は、エアクリーナ22により清浄された空気を吸気管23に吸入してスロットルバルブ24を通過させると共に吸気管23のスロットルバルブ24よりも下流側で燃料噴射弁26から燃料を噴射し、空気と燃料とを混合する。そして、この混合気を吸気バルブ28を介して燃焼室29に吸入し、点火プラグ30による電気火花によって爆発燃焼させ、爆発燃焼によるエネルギにより押し下げられるピストン32の往復運動をクランクシャフト14の回転運動に変換する。燃焼室29から排気バルブ33を介して排気管34に排出される排気は、浄化装置35を介して外気に排出される。浄化装置35は、一酸化炭素(CO)や炭化水素(HC)、窒素酸化物(NOx)の有害成分を浄化する触媒(三元触媒)35aを有する。
燃料供給装置42は、燃料タンク40内の燃料を燃料噴射弁26に供給可能に構成されている。この燃料供給装置42は、燃料流路43と、燃料ポンプ44と、リリーフ通路45と、リリーフバルブ46とを備える。燃料流路43は、燃料噴射弁26に接続されている。燃料ポンプ44は、燃料タンク40内の燃料を燃料流路43に供給する。燃料ポンプ44には、燃料タンク40内で発生した気化燃料(蒸発や沸騰により気化した燃料)を吸いこんだときに燃料ポンプ44の駆動によりその気化燃料を排出するための排出孔44aが形成されている。
リリーフ通路45は、燃料流路43と燃料タンク40とに接続されている。リリーフバルブ46は、リリーフ通路45に設けられており、燃料流路43内の燃料の圧力(燃圧Pf)がリリーフバルブ46の開弁圧Pfrv未満のときには閉弁し、燃料流路43内の燃料の圧力が開弁圧Pfrv以上のときには開弁する。リリーフバルブ46が開弁すると、燃料流路43内の燃料の一部がリリーフ通路45を介して燃料タンク40に戻される。このようにして、燃料流路43内の燃料の圧力が過剰になるのを抑制している。
気化燃料処理装置50は、燃料タンク40内で発生した気化燃料を含む気化燃料ガス(パージガス)を吸気管23に供給するパージを実行可能に構成されている。この気化燃料処理装置50は、導入通路51と、封鎖バルブ52と、キャニスタ53と、パージ通路55と、パージバルブ56とを備える。
導入通路51は、燃料タンク40とキャニスタ53とに接続されている。封鎖バルブ52は、導入通路51に設けられており、ノーマルクローズタイプの電磁バルブとして構成されている。この封鎖バルブ52は、電子制御ユニット70により制御される。キャニスタ53は、導入通路51とパージ通路55とに接続されていると共に大気開放通路54を介して大気に開放されている。このキャニスタ53の内部には、燃料タンク40からの気化燃料を吸着可能な例えば活性炭などの吸着剤が充填されている。大気開放通路54には、図示しないエアフィルタが設けられている。
パージ通路55は、キャニスタ53と吸気管23のスロットルバルブ24よりも下流側とに接続されている。パージバルブ56は、パージ通路55に設けられており、ノーマルクローズタイプの電磁バルブとして構成されている。このパージバルブ56は、電子制御ユニット70により制御される。
この気化燃料処理装置50は、封鎖バルブ52が開弁状態であるときにパージバルブ56の開度を調節することにより、パージを実行する。具体的には、燃料タンク40内で発生した気化燃料を含む気化燃料ガス(パージガス)を吸気管23内の負圧を利用して導入通路51、キャニスタ53、パージ通路55を介して流量の調節を伴って吸気管23に供給する。したがって、エンジン12は、空気と燃料(燃料噴射弁26からの燃料および気化燃料処理装置50からの気化燃料)との混合気を燃焼室29に吸引することができるようになっている。
電子制御ユニット70は、CPUを中心とするマイクロプロセッサとして構成されており、CPUに加えて、処理プログラムを記憶するROMや、データを一時的に記憶するRAM、データを記憶保持するフラッシュメモリ、入出力ポートを備える。電子制御ユニット70には、各種センサからの信号が入力ポートを介して入力されている。
電子制御ユニット70に入力される信号としては、例えば、エンジン12のクランクシャフト14の回転位置を検出するクランクポジションセンサ14aからのクランク角θcr、エンジン12の冷却水の温度を検出する水温センサ15からの冷却水温Twを挙げることができる。スロットルバルブ24の開度(ポジション)を検出するスロットルポジションセンサ24aからのスロットル開度THや、吸気バルブ28を開閉するインテークカムシャフトや排気バルブ33を開閉するエキゾーストカムシャフトの回転位置を検出するカムポジションセンサ16からのカム角θci,θcoも挙げることができる。吸気管23のスロットルバルブ24よりも上流側に取り付けられたエアフローメータ23aからの吸入空気量Qaや、吸気管23のスロットルバルブ24よりも上流側に取り付けられた温度センサ23bからの吸気温Ta、排気管34の浄化装置35よりも上流側に取り付けられたフロント空燃比センサ37からのフロント空燃比AF1や、排気管34の浄化装置35よりも下流側に取り付けられたリヤ空燃比センサ38からのリヤ空燃比AF2も挙げることができる。燃料タンク40に取り付けられた圧力センサ40aからの燃料タンク40内の圧力であるタンク内圧Ptや、燃料流路43の燃料噴射弁26付近(例えば、デリバリパイプ)に取り付けられた燃圧センサ43pからの燃料流路43内の燃料の圧力である燃圧Pf、燃料ポンプ44に取り付けられた回転数センサ44bからの燃料ポンプ44の回転数Npも挙げることができる。封鎖バルブ52の開度(ポジション)を検出する封鎖バルブポジションセンサ52aからの封鎖バルブ52の開度Osvや、パージバルブ56の開度(ポジション)を検出するパージバルブポジションセンサ56aからのパージバルブ56の開度Opvも挙げることができる。イグニッションスイッチ80からのイグニッション信号IGや、シフトレバー81の操作位置を検出するシフトポジションセンサ82からのシフトポジションSPも挙げることができる。アクセルペダル83の踏み込み量を検出するアクセルペダルポジションセンサ84からのアクセル開度Accや、ブレーキペダル85の踏み込み量を検出するブレーキペダルポジションセンサ86からのブレーキペダルポジションBP、車速センサ88からの車速V、大気圧センサ89からの大気圧Poutも挙げることができる。
電子制御ユニット70からは、各種制御信号が出力ポートを介して出力されている。電子制御ユニット70から出力される信号としては、例えば、スロットルバルブ24への制御信号や、燃料噴射弁26への制御信号、点火プラグ30への制御信号、燃料ポンプ44への制御信号、封鎖バルブ52への制御信号、パージバルブ56への制御信号を挙げることができる。また、変速機60への制御信号や、図示しないスタータへの制御信号も挙げることができる。
電子制御ユニット70は、クランクポジションセンサ14aからのクランク角θcrに基づいてエンジン12の回転数Neを演算している。また、電子制御ユニット70は、エアフローメータ23aからの吸入空気量Qaとエンジン12の回転数Neとに基づいて負荷率(エンジン12の1サイクル当たりの行程容積に対する1サイクルで実際に吸入される空気の容積の割合)KLを演算している。さらに、電子制御ユニット70は、燃料噴射弁26からの燃料噴射量Qfに基づいてエンジン12の消費流量Qfrを演算している。
こうして構成された実施例の自動車10では、電子制御ユニット70は、アクセル開度Accや車速Vに基づくエンジン12の要求負荷率KL*に基づいて、エンジン12の運転制御、具体的には、スロットルバルブ24の開度を制御する吸入空気量制御や、燃料噴射弁26からの燃料噴射量を制御する燃料噴射制御、点火プラグ30の点火時期を制御する点火制御などを行なう。また、電子制御ユニット70は、燃料供給装置42の燃料ポンプ44の制御や、気化燃料処理装置50の封鎖バルブ52やパージバルブ56の制御なども行なう。
また、実施例の自動車10では、電子制御ユニット70は、走行中にアクセルオフされると、エンジン12の燃料カットを行なう。さらに、実施例の自動車10では、電子制御ユニット70は、停車中において、エンジン12の運転中に間欠停止条件が成立すると、エンジン12を間欠停止し、エンジン12の間欠停止中に再始動条件が成立すると、スタータによりエンジン12をクランキングしてエンジン12を再始動する。間欠停止条件としては、例えば、アクセルオフで且つブレーキオンである条件が用いられる。再始動条件としては、例えば、アクセルオンまたはブレーキオフされた条件が用いられる。
エンジン12の運転制御において、吸入空気量制御では、電子制御ユニット70は、エンジン12の要求負荷率KL*に基づいてスロットルバルブ24の目標開度TH*を設定し、設定した目標開度TH*を用いてスロットルバルブ24を制御する。点火制御では、電子制御ユニット70は、エンジン12の回転数Neおよび負荷率KLに基づいて点火プラグ30の目標点火時期Ti*を設定し、設定した目標点火時期Ti*を用いて点火プラグ30を制御する。封鎖バルブ52の制御では、タンク内圧Pt(ゲージ圧)が0kPaよりも若干高い閾値Ptref以下のときには、閉弁状態となるように封鎖バルブ52を制御し、タンク内圧Ptが閾値Ptrefよりも高いときには、開弁状態となるように封鎖バルブ52を制御する。パージバルブ56の制御では、パージ条件の成立時には、開弁状態となって上述のパージが実行されるようにパージバルブ56を制御し、パージ条件の非成立時には、閉弁状態となるようにパージバルブ56を制御する。パージ条件としては、例えば、冷却水温Twが閾値以上であり且つエンジン12の運転制御(燃料噴射制御など)を行なっており且つ封鎖バルブ52が開弁状態である条件などが用いられる。以下、燃料噴射制御や燃料ポンプ44の制御などついて説明する。
燃料噴射制御について説明する。図2は、電子制御ユニット70により実行される燃料噴射制御ルーチンの一例を示すフローチャートである。このルーチンは、燃料噴射制御を行なうときに繰り返し実行される。このルーチンが実行されると、電子制御ユニット70は、最初に、吸入空気量Qaやフロント空燃比AF1、負荷率KL、パージ濃度関連値Cpgなどのデータを入力する(ステップS100)。ここで、吸入空気量Qaは、エアフローメータ23aにより検出された値が入力される。フロント空燃比AF1は、フロント空燃比センサ37により検出された値が入力される。負荷率KLは、上述のように吸入空気量Qaおよび回転数Neに基づいて演算された値が入力される。
パージ濃度関連値Cpgは、パージ率(吸入空気量に対する気化燃料ガス(パージガス)の割合)の1%当たりのフロント空燃比AF1の要求空燃比AF*(例えば、理論空燃比)に対するずれ量に関連する値である。このパージ濃度関連値Cpgは、負の値のときには、気化燃料処理装置50から吸気管23を介して燃焼室29に供給される気体に気化燃料が含まれていることを意味し、値0以上のときには、この気体に気化燃料が含まれていないことを意味する。また、パージ濃度関連値Cpgは、パージ濃度(パージを実行するときの気化燃料ガスにおける気化燃料の濃度)が濃いほど小さくなる(負の範囲内で絶対値が大きくなる)。さらに、パージ濃度関連値Cpgは、電子制御ユニット70により実行される後述のパージ濃度関連値設定ルーチンにより設定された値が入力される。
こうしてデータを入力すると、エンジン12の負荷率KLに基づいて、燃料噴射弁26ののベース噴射量Qfbsを設定する(ステップS110)。ここで、ベース噴射量Qfbsは、フロント空燃比AF1を要求空燃比AF*とするための燃料噴射弁26の目標噴射量Qf*のベース値である。このベース噴射量Qfbsは、例えば、単位噴射量(負荷率KLの1%当たりの燃料噴射量)Qfpuに負荷率KLを乗じた値として演算することができる。
続いて、パージ濃度関連値Cpgに基づいてパージ補正係数Kpgを設定し(ステップS120)、ベース噴射量Qfbsにパージ補正係数Kpgを乗じた値を目標噴射量Qf*に設定する(ステップS130)。そして、設定した目標噴射量Qf*を用いて燃料噴射弁26を制御して(ステップS140)、本ルーチンを終了する。ここで、パージ補正係数Kpgは、例えば、パージ濃度関連値Cpgをパージ補正係数設定用マップに適用して設定することができる。パージ補正係数設定用マップは、パージ濃度関連値Cpgとパージ補正係数Kpgとの関係として予め定められ、電子制御ユニット70のROMやフラッシュメモリに記憶されている。パージ補正係数Kpgは、パージ濃度関連値Cpgが小さい(負の範囲内で絶対値が大きい)ほど即ちパージ濃度が濃いほど、値1に対して小さくなるように設定される。したがって、パージ濃度が濃いほど少なくなるように目標噴射量Qf*を設定して燃料噴射弁26を制御することになる。
次に、図2の燃料噴射制御ルーチンなどで用いられるパージ濃度関連値Cpgの設定処理について説明する。図3は、電子制御ユニット70により実行されるパージ濃度関連値設定ルーチンの一例を示すフローチャートである。このルーチンは、繰り返し実行される。なお、パージ濃度関連値Cpgおよび後述のパージ濃度学習回数Npgは、例えば、トリップの開始時に初期値としての値0が設定される。
図3のパージ濃度関連値設定ルーチンが実行されると、電子制御ユニット70は、最初に、フロント空燃比AF1や、パージ実行フラグFpgなどのデータを入力する(ステップS200)。ここで、フロント空燃比AF1は、フロント空燃比センサ37により検出された値が入力される。
パージ実行フラグFpgは、パージを実行しているときには値1が設定され、パージを実行していないときには値0が設定されるフラグである。このパージ実行フラグFpgは、電子制御ユニット70により実行される図示しないパージ実行フラグ設定ルーチンにより設定された値が入力される。パージ実行フラグ設定ルーチンでは、電子制御ユニット70は、封鎖バルブ52の開度Osvおよびパージバルブ56の開度Opvに基づいてパージを実行しているか否かを判定する。
こうしてデータを入力すると、パージ実行フラグFpgの値を調べる(ステップS210)。パージ実行フラグFpgが値0である(パージを実行していない)ときには、パージ濃度関連値Cpgを保持すると共に(ステップS220)、パージ濃度学習回数Npgを保持して(ステップS230)、本ルーチンを終了する。
ステップS210でパージ実行フラグFpgが値1である(パージを実行している)ときには、フロント空燃比AF1に基づいてパージ濃度関連値Cpgの更新量ΔCpgを設定し(ステップS240)、パージ濃度関連値Cpgの前回値に更新量ΔCpgを加えた値を新たなパージ濃度関連値Cpgに設定することにより、パージ濃度関連値Cpgを更新(学習)し(ステップS250)、パージ濃度学習回数Npgを値1だけカウントアップして(ステップS260)、本ルーチンを終了する。
ここで、更新量ΔCpgは、例えば、フロント空燃比AF1を更新量設定用マップに適用して設定することができる。更新量設定用マップは、フロント空燃比AF1と更新量ΔCpgとの関係としして予め定められ、電子制御ユニット70のROMやフラッシュメモリに記憶されている。図4は、更新量設定用マップの一例を示す説明図である。図示するように、更新量ΔCpgは、フロント空燃比AF1が要求空燃比AF*に等しいときには値0が設定される。また、更新量ΔCpgは、フロント空燃比AF1が要求空燃比AF*に比して大きいとき(リーン側のとき)には、フロント空燃比AF1が大きいほど正の範囲内で大きくなるように設定される。さらに、更新量ΔCpgは、フロント空燃比AF1が要求空燃比AF*に比して小さいとき(リッチ側のとき)には、フロント空燃比AF1が小さいほど負の範囲内で小さくなる(絶対値が大きくなる)ように設定される。基本的に、パージ濃度が濃いほど、燃焼室29内の燃料が多くなりやすく、フロント空燃比AF1が要求空燃比AF*に対して小さくなりやすい。このため、パージ濃度が濃いほど、更新量ΔCpgひいてはパージ濃度関連値Cpgが小さくなりやすい(負の範囲内で絶対値が大きくなりやすい)。
次に、燃料供給装置42の燃料ポンプ44の制御について説明する。図5~図7は、電子制御ユニット70により実行される燃料ポンプ制御ルーチンの一例を示すフローチャートである。このルーチンは、繰り返し実行される。このルーチンが実行されると、電子制御ユニット70は、最初に、燃圧Pfや負荷率KL、エンジン回転フラグFer、燃料カットフラグFfc1、燃料沸騰検知フラグFvなどのデータを入力する(ステップS300)。ここで、燃圧Pfは、燃圧センサ43pにより検出された値が入力される。負荷率KLは、上述のように吸入空気量Qaおよび回転数Neに基づいて演算された値が入力される。
エンジン回転フラグFerは、エンジン12が回転状態であるときには値1が設定され、エンジン12が回転停止状態であるときには値0が設定されるフラグである。このエンジン回転フラグFerは、電子制御ユニット70により実行される図示しないエンジン回転フラグ設定ルーチンにより設定された値が入力される。エンジン回転フラグ設定ルーチンでは、電子制御ユニット70は、エンジン12の回転数Neに基づいて、エンジン12が回転状態であるか回転停止状態であるかを判定する。
燃料カットフラグFfc1は、エンジン12の燃料カットを行なっているときには値1が設定され、エンジン12の燃料カットを行なっていない(燃料噴射制御などを行なっている)ときには値0が設定されるフラグである。この燃料カットフラグFfc1は、電子制御ユニット70により実行される図示しない燃料カットフラグ設定ルーチンにより設定された値が入力される。
燃料沸騰検知フラグFvは、燃料タンク40内の燃料の沸騰を検知しているときには値1が設定され、燃料タンク40内の燃料の沸騰を未検知であるとき(検知から未検知にリセットしたときを含む)には値0が設定されるフラグである。この燃料沸騰検知フラグFvは、電子制御ユニット70により実行される後述の燃料沸騰検知フラグ設定ルーチンにより設定された値が入力される。なお、燃料タンク40内の燃料は、燃料タンク40内の絶対圧が燃料の飽和蒸気圧以下のときに沸騰するこのため、燃料タンク40内の燃料は、標高が高く大気圧Poutが低いときや、燃料タンク40内の燃料の温度が高く燃料の飽和蒸気圧が高いときに沸騰しやすい。
こうしてデータを入力すると、エンジン回転フラグFerの値を調べる(ステップS310)。エンジン回転フラグFerが値1である(エンジン12が回転状態である)ときには、燃料沸騰検知フラグFvの値を調べる(ステップS320)。燃料沸騰検知フラグFvが値0である(燃料タンク40内の燃料の沸騰を未検知である)ときには、エンジン12の状態などに基づいて、リリーフバルブ46の開弁圧Pfrv未満の範囲内で目標燃圧Pf*を設定する(ステップS330)。なお、目標燃圧Pf*は、燃料ポンプ44の制御以外に、エンジン12の運転制御などに用いられる場合がある。
続いて、燃料カットフラグFfc1の値を調べる(ステップS340)。燃料カットフラグFfc1が値0である(エンジン12の燃料カットを行なっていない)ときには、燃圧フィードバック制御により、燃料ポンプ44の目標吐出流量Qp*の設定に用いるフィードフォワード項αfやフィードバック項の比例項および積分項であるフィードバック比例項αbpおよびフィードバック積分項αbiを設定する(ステップS350~S354)。
最初に、負荷率KLに基づいてフィードフォワード項αfを設定する(ステップS350)。ここで、フィードフォワード項αfは、例えば、負荷率KLをフィードフォワード項設定用マップに適用して設定することができる。フィードフォワード項設定用マップは、負荷率KLとフィードフォワード項αfとの関係として予め定められ、電子制御ユニット70のROMやフラッシュメモリに記憶されている。図8は、フィードフォワード項設定用マップの一例を示す説明図である。図示するように、フィードフォワード項αfは、負荷率KLが高いほど高くなるように設定される。続いて、式(1)に示すように、目標燃圧Pf*から燃圧Pfを減じた値と比例項のゲインKpとの積をフィードバック比例項αbpに設定する(ステップS352)。そして、式(2)に示すように、フィードバック積分項αbiの前回値と、目標燃圧Pf*から燃圧Pfを減じた値と積分項のゲインKiとの積と、の和を新たなフィードバック積分項αbiに設定することにより、フィードバック積分項αbiを更新する(ステップS354)。
αbp=Kp・(Pf*-Pf) (1)
αbi=前回αbi+Ki・(Pf*-Pf) (2)
ステップS340で燃料カットフラグFfc1が値1である(エンジン12の燃料カットを行なっている)ときには、フィードフォワード項αfに値0を設定し(ステップS360)、ステップS352の処理と同様に式(1)によりフィードバック比例項αbpを設定し(ステップS362)、フィードバック積分項αbiを前回値で保持する(ステップS364)。
こうしてフィードフォワード項αfやフィードバック比例項αbp、フィードバック積分項αbiを設定すると、これらの和を値0で下限ガードした値を燃料ポンプ44の目標吐出流量Qp*に設定する(ステップS370)。続いて、設定した目標吐出流量Qp*に基づいて燃料ポンプ44の目標回転数Np*を設定し(ステップS372)、設定した目標回転数Np*を用いて燃料ポンプ44を制御して(ステップS374)、本ルーチンを終了する。
この場合の目標回転数Np*は、例えば、目標吐出流量Qp*を目標回転数設定用マップに適用して設定することができる。目標回転数設定用マップは、目標吐出流量Qp*と目標回転数Np*との関係として予め定められ、電子制御ユニット70のROMやフラッシュメモリに記憶されている。図9は、目標回転数設定用マップの一例を示す説明図である。図示するように、目標回転数Np*は、目標吐出流量Qp*が多いほど高くなるように設定される。以下、エンジン回転フラグFerが値1であり且つ燃料沸騰検知フラグFvが値0であるときの燃料ポンプ44の制御(ステップS330~S374)を「通常時ポンプ制御」という。
ステップS320で燃料沸騰検知フラグFvが値1である(燃料タンク40内の燃料の沸騰を検知している)ときには、リリーフバルブ46の開弁圧Pfrvを目標燃圧Pf*に設定し(ステップS380)、燃料カットフラグFfc1の値を調べる(ステップS390)。燃料カットフラグFfc1が値0である(エンジン12の燃料カットを行なっていない)ときには、上述のステップS350の処理と同様にフィードフォワード項αfを設定する(ステップS392)。燃料カットフラグFfc1が値1である(エンジン12の燃料カットを行なっている)ときには、フィードフォワード項αfに値0を設定する(ステップS394)。
こうしてフィードフォワード項αfを設定すると、設定したフィードフォワード項αfを燃料ポンプ44の目標吐出流量Qp*に設定し(ステップS400)、上述のステップS372の処理と同様に、設定した目標吐出流量Qp*に基づいて燃料ポンプ44の目標回転数Np*の仮値である仮回転数Nptmpを設定する(ステップS402)。この場合の仮回転数Nptmpは、例えば、図9の目標回転数設定用マップの縦軸を「目標回転数Np*」から「仮回転数Nptmp」に置き換えたマップに目標吐出流量Qp*を適用して設定することができる。
続いて、式(3)に示すように、設定した燃料ポンプ44の仮回転数Nptmpを下限回転数Npminおよび上限回転数Npmaxで上下限ガードした値を燃料ポンプ44の目標回転数Np*に設定する(ステップS404)。そして、設定した目標回転数Np*を用いて燃料ポンプ44を制御する(ステップS406)。ここで、下限回転数Npminおよび上限回転数Npmaxの詳細については後述する。以下、エンジン回転フラグFerが値1であり且つ燃料沸騰検知フラグFvが値1であるときの燃料ポンプ44の制御(ステップS380~S406)を「沸騰時ポンプ制御」という。
Np*=min(max(Nptmp, Npmin), Npmax) (3)
燃料タンク40内の燃料が沸騰しているときには、燃料ポンプ44が気化燃料(蒸発や沸騰により気化した燃料、主として後者)を吸いこんで、燃料ポンプ44の吐出圧が低下する可能性がある、または、すでに燃料ポンプ44の吐出圧が低下している。燃料ポンプ44の吐出圧が低下すると、燃圧Pfの低下ひいては燃料噴射弁26からの燃料噴射量の低下(燃料噴射制御の制御性の低下)につながる。このため、燃料ポンプ44の吐出圧が低下するのを抑制する、または、すでに低下しているときに解消することが求められる。
これを踏まえて、実施例では、燃料沸騰検知フラグFvが値1である(燃料タンク40内の燃料の沸騰を検知している)ときには、沸騰時ポンプ制御を実行するものとした。具体的には、燃料ポンプ44の仮回転数Nptmpを下限回転数Npminおよび上限回転数Npmaxで上下限ガードした値を目標回転数Np*に設定して燃料ポンプ44を制御するものとした。下限回転数Npminとしては、燃料ポンプ44が気化燃料(主として沸騰により気化した燃料)を吸いこんだときにその気化燃料を排出孔44aから十分に排出可能な燃料ポンプ44の回転数範囲の下限値が用いられる。上限回転数Npmaxとしては、燃料ポンプ44の発熱量に起因する燃料ポンプ44内での気化燃料の発生を十分に抑制可能な燃料ポンプ44の回転数範囲の上限値が用いられる。
燃料タンク40内の燃料が沸騰しているときにおいて、負荷率KLが低いときや燃料カットを行なっているときには、フィードフォワード項αfが小さくなり、燃料ポンプ44の仮回転数Nptmpが小さくなる(ステップS390~S402)。実施例では、燃料ポンプ44の仮回転数Nptmpを下限回転数Npminで下限ガードした値を目標回転数Np*に設定することにより、燃料ポンプ44が気化燃料(主として沸騰により気化した燃料)を吸いこんだときにその気化燃料を排出孔44aから十分に排出することができる。この結果、燃料ポンプ44の吐出圧が低下するのを抑制する、または、すでに低下しているときに解消することができる。
また、燃料タンク40内の燃料が沸騰しているときにおいて、燃料ポンプ44の回転数Npを高くし過ぎると、その発熱量に起因して燃料ポンプ44内で気化燃料を発生する可能性がある。実施例では、燃料ポンプ44の仮回転数Nptmpを上限回転数Npmaxで上限ガードした値を目標回転数Np*に設定することにより、燃料ポンプ44の発熱量に起因する燃料ポンプ44内での気化燃料の発生を十分に抑制することができる。
このようにして沸騰時ポンプ制御を実行すると(ステップS380~S406)、沸騰時ポンプ制御の積算実行時間Tfupを計時し(ステップS408)、フィードバック積分項αbiを前回値で保持して(ステップS410)、本ルーチンを終了する。ここで、積算実行時間Tfupは、例えば、自動車10の出荷時やメンテナンス時などに初期値としての値0が設定される。実施例では、積算実行時間Tfupを電子制御ユニット70のRAMやフラッシュメモリに記憶したり、製造メーカやディーラなどに送信したりするものとした。これにより、製造メーカやディーラなどで、積算実行時間Tfupを用いて種々の解析などを行なうことができる。
ステップS310でエンジン回転フラグFerが値0である(エンジン12が回転停止状態である)ときには、目標燃圧Pf*や目標吐出流量Qp*、目標回転数Np*にそれぞれ値0を設定し(ステップS420~S424)、設定した目標回転数Np*を用いて燃料ポンプ44を制御する(ステップS426)。そして、フィードバック積分項αbiを前回値で保持して(ステップS428)、本ルーチンを終了する。この場合、燃料ポンプ44を回転停止状態とする(回転状態から回転停止状態にするまたは回転停止状態を保持する)ことになる。このように、エンジン12が回転停止状態であるときには、燃料沸騰検知フラグFvの値に拘わらずに(燃料タンク40内の燃料の沸騰を未検知であるか検知であるかに拘わらずに)、燃料ポンプ44を回転停止状態とする。これにより、燃料ポンプ44の駆動により生じる騒音や振動を乗員(運転者を含む)に感じさせるのを抑制することができる。
次に、図5~図7の燃料ポンプ制御ルーチンで用いられる燃料沸騰検知フラグFvの設定処理や、この燃料沸騰検知フラグFvの設定処理で用いられる燃圧収束検知フラグFpcの設定処理について説明する。ここで、燃圧収束検知フラグFpcは、燃圧Pfの脈動中心である燃圧Pfcnが目標燃圧Pf*付近で収束した燃圧収束を検知しているときには値1が設定され、燃圧収束を未検知であるとき(検知から未検知にリセットしたときを含む)には値0が設定されるフラグである。この燃圧収束検知フラグFpcは、電子制御ユニット70により実行される燃圧収束検知フラグ設定ルーチンにより設定された値が入力される。燃料沸騰検知フラグFvおよび燃圧収束検知フラグFpcは、例えば、トリップの開始時に初期値としての値0が設定される。
図10~図12は、電子制御ユニット70により実行される燃料沸騰検知フラグ設定ルーチンの一例を示すフローチャートであり、図13は、電子制御ユニット70により実行される燃圧収束検知フラグ設定ルーチンの一例を示すフローチャートである。これらのルーチンは、それぞれ繰り返し実行される。以下、説明の容易のために、図13の燃圧収束検知フラグ設定ルーチンについて説明した後に、図10~図12の燃料沸騰検知フラグ設定ルーチンについて説明する。
図13の燃圧収束検知フラグ設定ルーチンについて説明する。このルーチンが実行されると、電子制御ユニット70は、最初に、燃圧Pfや目標燃圧Pf*、燃料ポンプ回転フラグFpr、燃料カット継続フラグFfc2などのデータを入力する(ステップS700)。ここで、燃圧Pfは、燃圧センサ43pにより検出された値が入力される。目標燃圧Pf*は、図5~図7の燃料ポンプ制御ルーチンにより設定された値が入力される。
燃料ポンプ回転フラグFprは、燃料ポンプ44が回転状態であるときには値1が設定され、燃料ポンプ44が回転停止状態であるときには値0が設定されるフラグである。この燃料ポンプ回転フラグFprは、電子制御ユニット70により実行される図示しない燃料ポンプ回転フラグ設定ルーチンにより設定された値が入力される。燃料ポンプ回転フラグ設定ルーチンでは、電子制御ユニット70は、燃料ポンプ44の回転数Npに基づいて、燃料ポンプ44が回転状態であるか回転停止状態であるかを判定する。
燃料カット継続フラグFfc2は、エンジン12の燃料カットを行なっており且つその継続時間が所定時間Ffc以上である条件が成立しているときには値1が設定され、この条件が成立していないときには値0が設定されるフラグである。この燃料カット継続フラグFfc2は、電子制御ユニット70により実行される図示しない燃料カット継続フラグ設定ルーチンにより設定された値が入力される。所定時間Ffcとしては、フィードバック積分項αbiの信頼性を担保できなくなる時間、例えば、数百~数千msec程度が用いられる。
こうしてデータを入力すると、燃料ポンプ回転フラグFprの値を調べ(ステップS710)、目標燃圧Pf*をリリーフバルブ46の開弁圧Pfrvと比較し(ステップS712)、燃料カット継続フラグFfc2の値を調べる(ステップS714)。図5~図7の燃料ポンプ制御ルーチンで説明したように、燃料ポンプ44が回転停止状態であるときや、目標燃圧Pf*が開弁圧Pfrvに等しいとき、燃料カットを行なっているときには、フィードバック積分項αbiを保持する。このため、フィードバック積分項αbiの信頼性が低下する。ステップS710~S714の処理は、これらを踏まえて、燃圧収束を未検知とする(未検知で保持するまたは検知から未検知にリセットする)か否かを判定する処理である。
ステップS710で燃料ポンプ回転フラグFprが値0である(燃料ポンプ44が回転停止状態である)ときや、ステップS712で目標燃圧Pf*がリリーフバルブ46の開弁圧Pfrvに等しいとき、ステップS714で燃料カット継続フラグFfc2が値1である(燃料カットを行なっており且つその継続時間が所定時間Ffc以上である)ときには、燃圧収束を未検知とすると判断し、燃圧収束検知フラグFpcに値0を設定して(ステップS716)、本ルーチンを終了する。
ステップS710燃料ポンプ回転フラグFprが値1であり(燃料ポンプ44が回転状態であり)、且つ、ステップS712で目標燃圧Pf*がリリーフバルブ46の開弁圧Pfrv未満であり、且つ、ステップS714で燃料カット継続フラグFfc2が値0である(燃料カットを行なっていないまたは燃料カットの継続時間が所定時間Ffc未満である)ときには、燃圧収束を未検知とすると判断することなく、燃圧Pfになまし処理を施して得られる値を脈動中心燃圧Pfcnとして推定する(ステップS720)。エンジン12の運転制御を行なっているときには、燃料噴射弁26からの燃料噴射の影響などにより、燃圧Pfが脈動する。ステップS720の処理は、この燃圧Pfの脈動中心を推定する処理である。
続いて、目標燃圧Pf*から脈動中心燃圧Pfcnを減じた値の絶対値を燃圧差分ΔPfに設定し(ステップS730)、燃圧差分ΔPfが閾値ΔPfref以下であり且つその継続時間が所定時間Tpf以上である条件の成立の有無を判定する(ステップS740,S742)。ここで、閾値ΔPfrefは、燃圧差分ΔPfが十分に小さいか否かを判定するのに用いられる。所定時間Tpfは、燃圧差分ΔPfが閾値ΔPfref以下で安定している(脈動中心燃圧Pfcnが目標燃圧Pf*付近で収束している)と確定するのに要する時間、例えば、数百msec程度が用いられる。ステップS740,S742の処理は、燃圧収束を検知とする(未検知から検知に変更するまたは検知で保持する)か否かを判定する処理である。
ステップS740,S742で、燃圧差分ΔPfが閾値ΔPfref以下であり且つその継続時間が所定時間Tpf以上である条件が成立しているときには、燃圧収束を検知とすると判断し、燃圧収束検知フラグFpcに値1を設定して(ステップS744)、本ルーチンを終了する。上述したように、エンジン12の運転制御を行なっているときには、燃料噴射弁26からの燃料噴射の影響などにより燃圧Pfが脈動する。このため、目標燃圧Pf*から脈動中心燃圧Pfcnを減じた値の絶対値を燃圧差分ΔPfに設定することにより、目標燃圧Pf*から燃圧Pfを減じた値の絶対値を燃圧差分ΔPfに設定するものに比して、燃圧収束を検知し易くすることができる。なお、燃圧Pfや脈動中心燃圧Pfcnが目標燃圧Pf*付近で収束しているときには、図5~図7の燃料ポンプ制御ルーチンにおいて、エンジン回転フラグFerが値1であり且つ燃料沸騰検知フラグFvが値0であり且つ燃料カットフラグFfc1が値1であるときに逐次更新するフィードバック積分項αbiも安定していると想定される。
ステップS740,S742で、燃圧差分ΔPfが閾値ΔPfref以下であり且つその継続時間が所定時間Tpf以上である条件が成立していないときには、燃圧を検知とすると判断することなく、燃圧収束検知フラグFpcを前回値で保持して(ステップS746)、本ルーチンを終了する。
実施例では、燃料ポンプ回転フラグFprが値0である(燃料ポンプ44が回転停止状態である)ときや、目標燃圧Pf*がリリーフバルブ46の開弁圧Pfrvに等しいとき、燃料カット継続フラグFfc2が値1である(燃料カットを行なっており且つその継続時間が所定時間Ffc以上である)ときに、燃圧収束検知フラグFpcに値0を設定する(燃圧収束を未検知とする)ものとした。したがって、燃圧収束検知フラグFpcが値1であるときにおいて、燃料沸騰検知フラグFvが切り替わって目標燃圧Pf*を切り替えたときや、燃料カットの継続時間が所定時間Tfc未満であるときなどには、燃圧収束検知フラグFpcを値1で保持することになる。
次に、図10~図12の燃料沸騰検知フラグ設定ルーチンについて説明する。このルーチンが実行されると、電子制御ユニット70は、最初に、冷却水温Twや吸気温Ta、タンク内圧Pt、パージ濃度関連値Cpg、パージ濃度学習回数Npg、フィードバック積分項αbi、積分項更新継続フラグFiu、消費流量安定フラグFfr、燃圧収束検知フラグFpcなどのデータを入力する(ステップS500)。
ここで、冷却水温Twは、水温センサ15により検出された値が入力される。吸気温Taは、温度センサ23bにより検出された値が入力される。タンク内圧Ptは、圧力センサ40aにより検出された値が入力される。パージ濃度関連値Cpgおよびパージ濃度学習回数Npgは、図3のパージ濃度関連値設定ルーチンにより設定された値が入力される。フィードバック積分項αbiは、図5~図7の燃料ポンプ制御ルーチンにより設定された値が入力される。
積分項更新継続フラグFiuは、フィードバック積分項αbiを更新しており且つその更新継続時間が所定時間Tiu以上である条件が成立しているときには値1が設定され、この条件が成立していないときには値0が設定されるフラグである。この積分項更新継続フラグFiuは、電子制御ユニット70により実行される図示しない積分項更新継続フラグ設定ルーチンにより設定された値が入力される。所定時間Tiuとしては、フィードバック積分項αbiの信頼性を担保できる時間、例えば、数百~数千msec程度が用いられる。
消費流量安定フラグFfrは、エンジン12の燃料の消費流量Qfrが安定しているときには値1が設定され、エンジン12の燃料の消費流量Qfrが安定していないときには値0が設定されるフラグである。この消費流量安定フラグFfrは、電子制御ユニット70により実行される図示しない消費流量安定フラグ設定ルーチンにより設定された値が入力される。消費流量安定フラグ設定ルーチンでは、電子制御ユニット70は、消費流量Qfrの単位時間当たりの変動量である消費流量変動量ΔQfr(極大値と極小値との差分)が閾値ΔQfrref以下であり且つその継続時間が所定時間Tfr以上である条件が成立しているときには、エンジン12の燃料の消費流量Qfrが安定していると判定し、この条件が成立していないときには、エンジン12の燃料の消費流量Qfrが安定していないと判定する。消費流量Qfrは、燃料噴射弁26からの燃料噴射量Qfに基づいて演算される。閾値ΔQfcrefは、消費流量変動量ΔQfrが十分に小さいか否かを判定するのに用いられる。所定時間Tfrは、消費流量変動量ΔQfrが閾値ΔQfrref以下で安定していると確定するのに要する時間、例えば、数百~数千msec程度が用いられる。
こうしてデータを入力すると、フィードバック積分項αbiに高応答性のなまし処理を施して得られる値を高応答処理値βhiに設定すると共に(ステップS510)、フィードバック積分項αbiに低応答性のなまし処理を施して得られる値を低応答処理値βloに設定する(ステップS512)。ここで、高応答性のなまし処理は、なまし回数Nsmとして所定回数Nsm1(例えば、数回程度)を用いたなまし処理であり、低応答性のなまし処理は、なまし回数Nsmとして所定回数Nsm1よりも大きい所定回数Nsm2(例えば、数千回程度)を用いたなまし処理である。
続いて、燃圧収束検知フラグFpcが値0から値1に切り替わった直後であるか否かを判定する(ステップS514)。燃圧収束検知フラグFpcが値0から値1に切り替わった直後である(燃圧収束を未検知から検知に変更した直後である)ときには、高応答処理値βhiを収束時処理値βhi0に設定する(ステップS516)。燃圧収束検知フラグFpcが値0から値1に切り替わった直後でない(燃圧収束を未検知から検知に変更した直後でない)ときには、ステップS516の処理を実行しない。なお、実施例では、収束時処理値βhi0は、燃圧収束検知フラグFpcが値1から値0に切り替わったときに、リセットされるものとした。
そして、パージ濃度学習回数Npgを閾値Npgrefと比較し(ステップS520)、パージ濃度関連値Cpgを閾値Cpgref1と比較し(ステップS522)、タンク内圧Ptを閾値Ptref2と比較する(ステップS524)。ここで、閾値Npgrefは、パージ濃度関連値Cpgの信頼性を担保できるか否かを判定するのに用いられる。閾値Cpgref1は、パージ濃度関連値Cpgが比較的大きい即ちパージ濃度が比較的薄いか否かを判定するのに用いられる。閾値Ptrefは、タンク内圧Ptが0kPa程度であるか否かを判定するのに用いられる。燃料タンク40内の燃料が沸騰しているときには、沸騰していないときに比して、燃料タンク40内で多くの気化燃料が発生し、タンク内圧Ptが高くなりやすい。また、パージ濃度関連値Cpgが小さい(負の範囲内で絶対値が大きい)ほど即ちパージ濃度が濃いほど、燃料タンク40内で多くの気化燃料が発生していると想定される。ステップS520~S524の処理は、これらを踏まえて、パージ濃度学習回数Npgとパージ濃度関連値Cpgとタンク内圧Ptとを用いて燃料タンク40内の燃料の沸騰を未検知とする(未検知で保持するまたは検知から未検知にリセットする)か否かを判定する処理である。
ステップS520でパージ濃度学習回数Npgが閾値Npgref以上であり且つステップS522でパージ濃度関連値Cpgが閾値Cpgref1以上であり且つステップS524でタンク内圧Ptが閾値Ptref未満であるときには、パージ濃度学習回数Npgとパージ濃度関連値Cpgとタンク内圧Ptとの条件により燃料タンク40内の燃料の沸騰を未検知とすると判断し、仮未検知フラグFv1aに値1を設定する(ステップS526)。
ステップS520でパージ濃度学習回数Npgが閾値Npgref未満であるときや、ステップS522でパージ濃度関連値Cpgが閾値Cpgref1未満であるとき、ステップS524でタンク内圧Ptが閾値Ptref以上であるときには、パージ濃度学習回数Npgとパージ濃度関連値Cpgとタンク内圧Ptとの条件では燃料タンク40内の燃料の沸騰を未検知とすると判断することなく、仮未検知フラグFv1aに値0を設定する(ステップS528)。
さらに、冷却水温Twを閾値Twrefと比較する(ステップS530)。ここで、閾値Twrefは、冷却水温Twが比較的低いか否かを判定するのに用いられる。一般に、冷却水温Twが低いときには、燃料タンク40内の燃料の温度も低く、燃料タンク40内の燃料が沸騰しにくいと想定される。ステップS530の処理は、これを踏まえて、冷却水温Twを用いて燃料タンク40内の燃料の沸騰を未検知とするか否かを判定する処理である。
ステップS530で冷却水温Twが閾値Twref未満であるときには、冷却水温Twの条件により燃料タンク40内の燃料の沸騰を未検知とすると判断し、仮未検知フラグFv1bに値1を設定する(ステップS532)。冷却水温Twが閾値Twref以上であるときには、冷却水温Twの条件では燃料タンク40内の燃料の沸騰を未検知とすると判断することなく、仮未検知フラグFv1bに値0を設定する(ステップS534)。
また、吸気温Taを閾値Tarefと比較する(ステップS540)。ここで、閾値Tarefは、吸気温Taが比較的低いか否かを判定するのに用いられる。一般に、吸気温Taが低いときには、燃料タンク40内の燃料の温度も低く、燃料タンク40内の燃料が沸騰しにくいと想定される。ステップS540の処理は、これを踏まえて、吸気温Taを用いて燃料タンク40内の燃料の沸騰を未検知とするか否かを判定する処理である。
ステップS540で吸気温Taが閾値Taref未満であるときには、吸気温Taの条件により燃料タンク40内の燃料の沸騰を未検知とすると判断し、仮未検知フラグFv1cに値1を設定する(ステップS542)。吸気温Taが閾値Taref以上であるときには、吸気温Taの条件では燃料タンク40内の燃料の沸騰を未検知とすると判断することなく、仮未検知フラグFv1cに値0を設定する(ステップS544)。
こうして仮未検知フラグFv1a,Fv1b,Fv1cを設定すると、設定した仮未検知フラグFv1a,Fv1b,Fv1cの値を調べる(ステップS550~S554)。仮未検知フラグFv1a,Fv1b,Fv1cのうちの少なくとも1つが値1であるときには、燃料沸騰検知フラグFvに値0を設定して(ステップS556)、本ルーチンを終了する。即ち、パージ濃度学習回数Npgとパージ濃度関連値Cpgとタンク内圧Ptとの条件(ステップS520~S524)、冷却水温Twの条件(ステップS530)、吸気温Taの条件(ステップS540)のうちの少なくとも1つの条件により燃料タンク40内の燃料の沸騰を未検知とすると判断したときには、燃料沸騰検知フラグFv1に値0を設定する。このようにして、燃料タンク40内の燃料の沸騰を未検知とする(未検知で保持するまたは検知から未検知にリセットする)ことができる。
ステップS550~S554で仮未検知フラグFv1a,Fv1b,Fv1cの全てが値0であるときには、ステップS560に進む。即ち、パージ濃度学習回数Npgとパージ濃度関連値Cpgとタンク内圧Ptとの条件(ステップS520~S524)、冷却水温Twの条件(ステップS530)、吸気温Taの条件(ステップS540)のうちの何れの条件でも燃料タンク40内の燃料の沸騰を未検知とすると判断しなかったときには、ステップS560に進む。
続いて、パージ濃度関連値Cpgを上述の閾値Cpgref1以下の閾値Cpgref2と比較する(ステップS560)。ここで、閾値Cpgref2は、パージ濃度関連値Cpgが比較的小さい(負の範囲内で絶対値が大きい)即ちパージ濃度が比較的濃いか否かを判定するのに用いられる。上述したように、燃料タンク40内の燃料が沸騰しているときには、沸騰していないときに比して、燃料タンク40内で多くの気化燃料が発生する。また、パージ濃度関連値Cpgが小さい(負の範囲内で絶対値が大きい)ほど即ちパージ濃度が濃いほど、燃料タンク40内で多くの気化燃料が発生していると想定される。ステップS560の処理は、これを踏まえて、パージ濃度学習回数Npgを用いて燃料タンク40内の燃料の沸騰を検知とするか否かを判定する処理である。
ステップS560でパージ濃度関連値Cpgが閾値Cpgref2未満であるときには、パージ濃度関連値Cpgの条件により燃料タンク40内の燃料の沸騰を検知とすると判断し、仮検知フラグFv2aに値1を設定する(ステップS562)。パージ濃度関連値Cpgが閾値Cpgref2以上であるときには、パージ濃度関連値Cpgの条件では燃料タンク40内の燃料の沸騰を検知とすると判断することなく、仮検知フラグFv2aに値0を設定する(ステップS564)。なお、誤判断を抑制するために、パージ濃度関連値Cpgが閾値Cpgref2未満であり且つその継続時間が所定時間Tpg以上であるときに、仮検知フラグFv2aに値1を設定するものとしてもよい。所定時間Tpgとしては、パージ濃度関連値Cpgが閾値Cpgref2未満であると確定するのに要する時間、例えば、数百msec程度が用いられる。また、パージ濃度関連値Cpgの信頼性を考慮して、パージ濃度関連値Cpgが閾値Cpgref2未満であり且つパージ濃度学習回数Npgが閾値Npgref以上であるときに、仮検知フラグFv2aに値1を設定するものとしてもよい。
続いて、燃圧収束検知フラグFpc、積分項更新継続フラグFiu、消費流量安定フラグFfrの値を調べる(ステップS570~S574)。このステップS570~S574の処理は、フィードバック積分項αbiを信頼できるか否かを判定する処理である。燃圧収束検知フラグFpc、積分項更新継続フラグFiu、消費流量安定フラグFfrの全てが値1であるときには、フィードバック積分項αbiを信頼できると判断し、ステップS590に進む。即ち、燃圧収束を検知しており且つフィードバック積分項αbiの更新継続時間が所定時間Tiu以上であり且つエンジン12の燃料の消費流量Qfrが安定しているときには、ステップS590に進む。
そして、高応答処理値βhiから低応答処理値βloを減じた値を差分Δβ1に設定し(ステップS590)、設定した差分Δβ1を閾値Δβref1と比較する(ステップS600)。ここで、閾値Δβref1は、差分Δβ1が比較的大きいか否かを判定するのに用いられる。燃料タンク40内の燃料が沸騰していて燃料ポンプ44が気化燃料(主として沸騰により気化した燃料)を吸い込んで燃料ポンプ44の吐出圧が低下したときを考える。このときには、燃圧Pfが目標燃圧Pf*に対して低くなり、フィードバック積分項αbiが増加する(図5~図7のステップS354)。そして、このときのフィードバック積分項αbiの単位時間当たりの増加量が大きいほど、高応答処理値βhiから低応答処理値βloを減じて得られる差分Δβ1が大きくなりやすい。ステップS600の処理は、これを踏まえて、差分Δβ1を用いて燃料タンク40内の燃料の沸騰を検知とするか否かを判定する処理である。
ステップS600で差分Δβ1が閾値Δβref1以上であるときには、差分Δβ1の条件により燃料タンク40内の燃料の沸騰を検知とすると判断し、仮検知フラグFv2bに値1を設定する(ステップS602)。差分Δβ1が閾値Δβref1未満であるときには、差分Δβ1の条件では燃料タンク40内の燃料の沸騰を検知とすると判断することなく、仮検知フラグFv2bに値0を設定する(ステップS604)。なお、誤判断を抑制するために、差分Δβ1が閾値Δβref1以上であり且つその継続時間が所定時間Tβ1以上であるときに、仮検知フラグFv2bに値1を設定するものとしてもよい。所定時間Tβ1としては、差分Δβ1が閾値Δβref1以上であると確定するのに要する時間、例えば、数百msec程度が用いられる。
ステップS600~S604の処理について図14の説明図を用いて説明する。図14は、目標燃圧Pf*や燃圧Pf、フィードバック積分項αbi、高応答処理値βhi、低応答処理値βlo、差分Δβ1、仮検知フラグFv2bの様子の一例を示す説明図である。燃料ポンプ44が気化燃料(主として沸騰により気化した燃料)を吸い込んで燃料ポンプ44の吐出圧が低下すると、フィードバック積分項αbiが増加し、これに伴って高応答処理値βhiや低応答処理値βloが増加する(時刻t11~)。そして、高応答処理値βhiから低応答処理値βloを減じて得られる差分Δβ1が閾値Δβref1以上に至ると(時刻t12)、仮検知フラグFv2bに値1を設定する。このようにして、差分Δβ1の条件により燃料タンク40内の燃料の沸騰を検知することができる。
さらに、現在の高応答処理値βhiから収束時処理値βhi0を減じた値を差分Δβ2に設定し(ステップS610)、設定した差分Δβ2を閾値Δβref2と比較する(ステップS620)。ここで、閾値Δβref2は、差分Δβ2が比較的大きいか否かを判定するのに用いられる。燃料タンク40内の燃料が沸騰していて燃料ポンプ44が気化燃料(主として沸騰により気化した燃料)を吸い込んで燃料ポンプ44の吐出圧が低下したときでも、フィードバック積分項αbiの単位時間当たりの増加量がそれほど大きくないときには、差分Δβ1が閾値Δβref1以上にならない場合がある。この場合でも、フィードバック積分項αbiの増加が継続すると、高応答処理値βhiの増加が継続し、高応答処理値βhiから収束時処理値βhi0を減じて得られる差分Δβ2が比較的大きくなることがある。ステップS620は、これを踏まえて、差分Δβ2を用いて燃料タンク40内の燃料の沸騰を検知とするか否かを判定する処理である。
ステップS620で差分Δβ2が閾値Δβref2以上であるときには、差分Δβ2の条件により燃料タンク40内の燃料の沸騰を検知とすると判断し、仮検知フラグFv2cに値1を設定する(ステップS622)。差分Δβ2が閾値Δβref2未満であるときには、差分Δβ2の条件では燃料タンク40内の燃料の沸騰を検知とすると判断することなく、仮検知フラグFv2cに値0を設定する(ステップS624)。なお、誤判断を抑制するために、差分Δβ2が閾値Δβref2以上であり且つその継続時間が所定時間Tβ2以上であるときに、仮検知フラグFv2cに値1を設定するものとしてもよい。所定時間Tβ2としては、差分Δβ2が閾値Δβref2以上であると確定するのに要する時間、例えば、数百msec程度が用いられる。
ステップS620~S624の処理について図15の説明図を用いて説明する。図15は、目標燃圧Pf*や燃圧Pf、フィードバック積分項αbi、高応答処理値βhi、低応答処理値βlo、差分Δβ1,Δβ、仮検知フラグFv2b,Fv2cの様子の一例を示す説明図である。燃料ポンプ44が気化燃料(主として沸騰により気化した燃料)を吸い込んで燃料ポンプ44の吐出圧が低下すると、フィードバック積分項αbiが増加し、これに伴って高応答処理値βhiや低応答処理値βloが増加する(時刻t21~)。そして、高応答処理値βhiから低応答処理値βloを減じて得られる差分Δβ1が閾値Δβref1未満であっても、高応答処理値βhiから収束時処理値βhi0を減じて得られる差分Δβ2が閾値Δβref2以上に至ると(時刻t22)、仮検知フラグFv2cに値1を設定する。このようにして、差分Δβ2の条件により燃料タンク40内の燃料の沸騰を検知することができる。
こうして仮検知フラグFv2a,Fv2b,Fv2cを設定すると、設定した仮検知フラグFv2a,Fv2b,Fv2cの値を調べる(ステップS630~S634)。仮検知フラグFv2a,Fv2b,Fv2cのうちの少なくとも1つが値1であるときには、燃料沸騰検知フラグFvに値1を設定して(ステップS632)、本ルーチンを終了する。即ち、パージ濃度関連値Cpgの条件(ステップS560)、差分Δβ1の条件(ステップS600)、差分Δβ2の条件(ステップS620)のうちの少なくとも1つの条件により燃料タンク40内の燃料の沸騰を検知とすると判断したときには、燃料沸騰検知フラグFvに値1を設定する。このようにして、燃料タンク40内の燃料の沸騰を検知する(未検知から検知に変更するまたは検知で保持する)ことができる。
ステップS630~S634で仮検知フラグFv2a,Fv2b,Fv2cの全てが値0であるときには、燃料沸騰検知フラグFvを前回値で保持して(ステップS634)、本ルーチンを終了する。即ち、パージ濃度関連値Cpgの条件(ステップS560)、差分Δβ1の条件(ステップS600)、差分Δβ2の条件(ステップS620)のうちの何れの条件でも燃料タンク40内の燃料の沸騰を検知とすると判断しなかったときには、燃料沸騰検知フラグFvを前回値で保持する。
ステップS570~S574で、燃圧収束検知フラグFpc、積分項更新継続フラグFiu、消費流量安定フラグFfrのうちの少なくとも1つが値0であるときには、ステップS580に進む。即ち、燃圧収束を未検知であるときや、フィードバック積分項αbiの更新継続時間が所定時間Tiu未満のとき(フィードバック積分項αbiを更新していないときを含む)、エンジン12の燃料の消費流量Qfrが安定していないときには、ステップS580に進む。
続いて、仮検知フラグFv2aの値を調べる(ステップS580)。仮検知フラグFv2aが値1であるときには、燃料沸騰検知フラグFvに値1を設定して(ステップS582)、本ルーチンを終了する。即ち、パージ濃度関連値Cpgの条件(ステップS560)により燃料タンク40内の燃料の沸騰を検知とすると判断したときには、燃料沸騰検知フラグFvに値1を設定する。このようにして、燃料タンク40内の燃料の沸騰を検知とする(未検知から検知に変更するまたは検知で保持する)ことができる。
ステップS580で仮検知フラグFv2aが値0であるときには、燃料沸騰検知フラグFvを前回値で保持して(ステップS584)、本ルーチンを終了する。即ち、パージ濃度関連値Cpgの条件(ステップS560)では燃料タンク40内の燃料の沸騰を検知とすると判断しなかったときには、燃料沸騰検知フラグFvを前回値で保持する。
ここで、燃圧収束を未検知であるときや、フィードバック積分項αbiの更新継続時間が所定時間Tiu未満のとき(フィードバック積分項αbiを更新していないときを含む)、エンジン12の燃料の消費流量Qfrが安定していないときに、燃料沸騰検知フラグFvの設定に仮検知フラグFv2b,Fv2cを用いない理由について説明する。
燃圧収束を未検知であるときには、燃圧Pfが比較的大きく変動する可能性があり、これに伴ってフィードバック積分項αbiも比較的大きく変動する可能性があり、差分Δβ1の信頼性を担保できない。また、差分Δβ2については、収束時処理値βhi0を設定できていないために、演算することができない。こうした理由により、燃料タンク40内の燃料の沸騰を検知とするか否かの誤判断を抑制するために、燃圧収束を未検知であるときには、燃料沸騰検知フラグFvの設定に仮検知フラグFv2b,Fv2cを用いないものとした。
フィードバック積分項αbiを更新していないときには、フィードバック積分項αbiの信頼性を担保できないため、差分Δβ1,Δβ2の信頼性も担保できない。また、フィードバック積分項αbiを更新していてもその更新継続時間が短いときには、フィードバック積分項αbiが比較的大きく変動する可能性があり、差分Δβ1,Δβ2の信頼性を担保できない。こうした理由により、燃料タンク40内の燃料の沸騰を検知とするか否かの誤判断を抑制するために、フィードバック積分項αbiの更新継続時間が所定時間Tiu未満のとき(フィードバック積分項αbiを更新していないときを含む)には、燃料沸騰検知フラグFvの設定に仮検知フラグFv2b,Fv2cを用いないものとした。
エンジン12の燃料の消費流量Qfrが安定していないときには、燃圧Pfが比較的大きく変動する可能性があり、これに伴ってフィードバック比例項αbpやフィードバック積分項αbiも比較的大きく変動する可能性があり、差分Δβ1,Δβ2の信頼性を担保できない。こうした理由により、燃料タンク40内の燃料の沸騰を検知とするか否かの誤判断を抑制するために、エンジン12の燃料の消費流量Qfrが安定していないときには、燃料沸騰検知フラグFvの設定に仮検知フラグFv2b,Fv2cを用いないものとした。
以上説明した実施例の自動車10が備えるエンジン装置11では、燃料タンク40内の沸騰を検知したときには、燃料ポンプ44が気化燃料(主として沸騰により気化した燃料)を吸いこんだときにその気化燃料を排出孔44aから排出可能な燃料ポンプ44の回転数範囲の下限値としての下限回転数Npminと、燃料ポンプ44の発熱量に起因する燃料ポンプ44内での気化燃料の発生を抑制可能な燃料ポンプ44の回転数範囲の上限値としての上限回転数Npmaxと、の範囲内で燃料ポンプ44の目標回転数Np*を設定して燃料ポンプ44を制御する。これにより、燃料タンク40内の燃料が沸騰しているときに、燃料ポンプ44が気化燃料を吸いこんだとしてもその気化燃料を排出することができると共に燃料ポンプ44の発熱量に起因する燃料ポンプ内での気化燃料の発生を抑制することができる。
実施例のエンジン装置11では、図5~図7の燃料ポンプ制御ルーチンにおいて、ステップS320で燃料沸騰検知フラグFvが値1であるときには、ステップS380でリリーフバルブ46の開弁圧Pfrvを目標燃圧Pf*に設定するものとした。しかし、これに限定されるものではなく、燃料沸騰検知フラグFvが値1であるときには、値0であるときに比して高い値を目標燃圧Pf*に設定するものであればよい。
実施例のエンジン装置11では、図5~図7の燃料ポンプ制御ルーチンにおいて、ステップS320で燃料沸騰検知フラグFvが値1であるとき、即ち、沸騰時ポンプ制御を実行するときには、ステップS408で沸騰時ポンプ制御の積算実行時間Tfupを計時するものとした。即ち、沸騰時ポンプ制御を実行するときには、その実行に起因する要因に拘わらずに一律に積算実行時間Tfupを計時するものとした。しかし、沸騰時ポンプ制御の実行に起因する要因ごとに、積算実行時間Tfup[i](i:要因に対する変数)を計時するものとしてもよい。各要因としては、例えば、仮未検知フラグFv1aが値1である(パージ濃度関連値Cpgが閾値Cpgref2未満である)ことや、仮検知フラグFv2bおよび/または仮検知フラグFv2cである(差分Δβ1が閾値Δβref1以上であるおよび/または差分Δβ2が閾値Δβref2以上である)ことなどを挙げることができる。これらのようにすれば、製造メーカやディーラなどで、種々の解析をより適切に行なうことができる。
実施例のエンジン装置11では、燃料ポンプ44の制御として、電子制御ユニット70は、図5~図7の燃料ポンプ制御ルーチンを実行するものとした。しかし、これに代えて、電子制御ユニット70は、図5~図7の燃料ポンプ制御ルーチンのうち図6の部分を図16の部分に置き換えて実行するものとしてもよい。図16の燃料ポンプ制御ルーチンの一部は、ステップS430~S434の処理が追加された点で、図6の燃料ポンプ制御ルーチンの一部とは異なる。
図16の燃料ポンプ制御ルーチンの一部では、ステップS408で沸騰時ポンプ制御の積算実行時間Tfupを計時すると、収束時処理値βhi0を入力可能であることを条件として(ステップS430)、収束時処理値βhi0を入力し(ステップS432)、入力した収束時処理値βhi0をフィードバック積分項αbiに設定し(ステップS434)、本ルーチンを終了する。ここで、収束時処理値βhi0を入力可能であるとは、図10~図12の燃料沸騰検知フラグ設定ルーチンのステップS516で収束時処理値βhi0を設定しており、リセットしていないことを意味する。
ステップS430~S434の処理について図17の説明図を用いて説明する。図17は、目標燃圧Pf*や燃圧Pf、フィードバック積分項αbi、高応答処理値βhi、燃圧収束検知フラグFpc、燃料沸騰検知フラグFvの様子の一例を示す説明図である。燃圧差分ΔPfが閾値ΔPfref以下であり且つその継続時間が所定時間Tpf以上である条件が成立すると(時刻t31)、燃圧収束検知フラグFpcを値0から値1に切り替えると共にそのときの高応答処理値βhiを収束時処理値βhi0に設定する。その後に、燃料ポンプ44が気化燃料(主として沸騰により気化した燃料)を吸い込んで燃料ポンプ44の吐出圧が低下し、これに伴ってフィードバック積分項αbiや高応答処理値βhiが増加し、上述のパージ濃度関連値Cpgや差分Δβ1、差分Δβ2の条件により燃料沸騰検知フラグFvが値0から値1に切り替わると(時刻t32)、目標燃圧Pf*をリリーフバルブ46の開弁圧Pfrvに増加させると共に高応答処理値βhiに収束時処理値βhi0を設定する。
燃料沸騰検知フラグFvが値0から値1に切り替える直前にステップS354で設定したフィードバック積分項αbiには、燃料タンク40内の燃料が沸騰していることによる影響が含まれていると想定される。したがって、ステップS434の処理を行なわずに、燃料沸騰検知フラグFvが値1から値0に切り替わってからステップS354でフィードバック積分項αbiを設定する(更新する)と、フィードバック積分項αbiが燃料タンク40内の燃料が沸騰しているときの影響を含んだ値となる可能性がある。これを踏まえて、この変形例では、燃料沸騰検知フラグFvが値1であるときに、収束時処理値βhi0をフィードバック積分項αbiに設定するものとした。これにより、燃料沸騰検知フラグFvが値1から値0に切り替わってからステップS354でフィードバック積分項αbiを設定した(更新した)ときに、フィードバック積分項αbiをより適切な値とすることができる。
図16の燃料ポンプ制御ルーチンでは、ステップS320で燃料沸騰検知フラグFvが値1であるときには、ステップS434で収束時処理値βhi0をフィードバック積分項αbiに設定するものとした。しかし、これに代えて、燃料沸騰検知フラグFvが値1であるときには、燃圧収束検知フラグFpcが値0から値1に切り替わった直後(燃圧収束を未検知から検知に変更した直後)のフィードバック積分項αbiである収束時フィードバック積分項αbi0をフィードバック積分項αbiに設定するものとしてもよい。
実施例のエンジン装置11では、図5~図7の燃料ポンプ制御ルーチンにおいて、ステップS310でエンジン回転フラグFerが値1であり且つステップS320で燃料沸騰検知フラグFvが値0であり且つステップS340で燃料カットフラグFfc1が値0であるときには、ステップS354でフィードバック積分項αbi設定するものとした。しかし、これに代えて、エンジン回転フラグFerが値1であり且つ燃料沸騰検知フラグFvが値0であり且つ燃料カットフラグFfc1が値0であるときには、図18のフィードバック積分項設定処理によりフィードバック積分項αbiを設定するものとしてもよい。
図18のフィードバック積分項設定処理では、電子制御ユニット70は、最初に、目標燃圧Pf*の今回値から前回値を減じた値の絶対値を目標燃圧変化量δPf*に設定すると共に(ステップS800)、目標燃圧Pf*から燃圧Pfを減じた値の絶対値を燃圧差分ΔPf2に設定する(ステップS810)。続いて、目標燃圧変化量δPf*を閾値δPfrefと比較する(ステップS820)。ここで、閾値δPfrefは、目標燃圧Pf*が比較的大きく変化したか否かを判定するのに用いられる。この閾値δPfrefとしては、燃料沸騰検知フラグFvが値1から値0に切り替わるときの目標燃圧変化量δPf*よりも小さい値が用いられる。
ステップS820で目標燃圧変化量δPf*が閾値δPfref未満であるときには、目標燃圧変化量δPf*がそれほど大きく変化していないと判断し、大変化フラグFchの値を調べる(ステップS840)。ここで、大変化フラグFchは、本ルーチンにより、目標燃圧変化量δPf*が閾値δPFref以上になったときに値1が設定され、その後に解除条件が成立したときに値0が設定されるフラグである。この大変化フラグFchは、例えば、トリップの開始時に初期値としての値0が設定される。ステップS840で大変化フラグFchが値0のときには、図5~図7の燃料ポンプ制御ルーチンのステップS354の処理と同様に上述の式(2)によりフィードバック積分項αbiを設定して(ステップS880)、フィードバック積分項設定処理を終了する。
ステップS820で目標燃圧変化量δPf*が閾値δPfref以上であるときには、目標燃圧Pf*が比較的大きく変化したと判断し、大変化フラグFchに値1を設定すると共に(ステップS822)、目標燃圧変化量δPf*が閾値δPfref以上になってからの経過時間Tchについて、値0リセットしてから計時を開始する(ステップS824)。
続いて、目標燃圧変化量δPf*が閾値δPfref以上になった要因を調べる(ステップS826)。目標燃圧変化量δPf*が閾値δPfref以上になった要因が燃料沸騰検知フラグFvが値1から値0に切り替わったことでないときには、大変化フラグFchを値1で保持する上限時間Tchlimに所定時間Tch1を設定する(ステップS828)。一方、目標燃圧変化量δPf*が閾値δPfref以上になった要因が燃料沸騰検知フラグFvが値1から値0に切り替わったことであるときには、上限時間Tchlimに所定時間Tch1よりも短い所定時間Tch2を設定する(ステップS830)。ここで、所定時間Tch1としては、数千~数万msec程度が用いられ、所定時間Tch1としては、所定時間Tch1の1/3~2/3程度の時間が用いられる。そして、フィードバック積分項αbiを前回値で保持して(ステップS860)、フィードバック積分項設定処理を終了する。目標燃圧変化量δPf*が比較的大きくしたときに、フィードバック積分項αbiを更新すると、フィードバック積分項αbiの絶対値が大きくなり、燃圧Pfが目標燃圧Pf*に対してオーバーシュートしたりアンダーシュートしたりする可能性がある。このため、目標燃圧変化量δPf*が閾値δPfref以上であるときには、フィードバック積分項αbiを前回値で保持するものとした。
ステップS820で目標燃圧変化量δPf*が閾値δPfref未満であり、且つ、ステップS840で大変化フラグFchが値1であるときには、経過時間Tchを上限時間Tchlimと比較する(ステップS850)。経過時間Tchが上限時間Tchlim未満であるときには、経過時間Tchを閾値Tchrefと比較すると共に(ステップS852)、燃圧差分ΔPf2を閾値ΔPfref2と比較する(ステップS854)。ここで、所定時間Tchrefは、目標燃圧変化量δPf*が閾値δPfref以上になった後に燃圧Pfが目標燃圧Pf*付近に到達可能な時間が用いられる。閾値ΔPfref2は、目標燃圧変化量δPf*が閾値δPfref以上になった後に燃圧Pfが目標燃圧Pf*付近に到達したか否かを判定するのに用いられる。
ステップS852,S854で、経過時間Tchが閾値Tchref未満であるときや燃圧差分ΔPf2が閾値ΔPfref2よりも大きいときには、目標燃圧変化量δPf*が閾値δPfref以上になった後に燃圧Pfが目標燃圧Pf*付近に到達可能な時間が経過していないおよび/または燃圧Pfが目標燃圧Pf*付近に到達してないと判断し、フィードバック積分項αbiを前回値で保持して(ステップS860)、フィードバック積分項設定処理を終了する。
ステップS852,S854で、経過時間Tchが閾値Tchref以上であり且つ燃圧差分ΔPf2が閾値ΔPfref2以下であるときには、目標燃圧変化量δPf*が閾値δPfref以上になった後に燃圧Pfが目標燃圧Pf*付近に到達可能な時間が経過しており且つ燃圧Pfが目標燃圧Pf*付近に到達したと判断し、大変化フラグFchに値0を設定し(ステップS870)、上述のステップS880の処理によりフィードバック積分項αbiを設定して、フィードバック積分項設定処理を終了する。
ステップS850で経過時間Tchが上限時間Tchlim以上であるときには、大変化フラグFchに値0を設定し(ステップS870)、上述のステップS880の処理によりフィードバック積分項αbiを設定して、フィードバック積分項設定処理を終了する。これにより、燃圧Pfが目標燃圧Pf*付近に到達するまでの時間が過度に長くなるのを抑制することができる。しかも、この変形例では、目標燃圧変化量δPf*が閾値δPfref以上になった要因が燃料沸騰検知フラグFvが値1から値0に切り替わったことであるときには、それ以外のときに比して上限時間Tchlimを短くすることにより、燃圧Pfが目標燃圧Pf*付近に到達するまでの時間が長くなるのをより抑制することができる。
実施例のエンジン装置11では、図5~図7の燃料ポンプ制御ルーチンにおいて、ステップS310でエンジン回転フラグFerが値0であるときには、燃料ポンプ44を回転停止状態とするものとした。しかし、エンジン回転フラグFerの値に拘わらずに、燃料沸騰検知フラグFvに基づいて、通常時ポンプ制御または沸騰時ポンプ制御を実行するものとしてもよい。
実施例のエンジン装置11では、図10~図12の燃料沸騰検知フラグ設定ルーチンにおいて、ステップS522でパージ濃度関連値Cpgとの比較に用いる閾値Cpgref1として、一定値が用いられるものとした。しかし、閾値Cpgref1は、大気圧Poutに基づいて設定されるものとしてもよい。この場合、閾値Cpgref1は、例えば、大気圧Poutを第1パージ濃度閾値設定用マップに適用して設定することができる。第1パージ濃度閾値設定用マップは、大気圧Poutと閾値Cpgref1との関係として予め定められ、電子制御ユニット70のROMやフラッシュメモリに記憶される。図19は、第1パージ濃度閾値設定用マップの一例を示す説明図である。図示するように、閾値Cpgref1は、負の範囲内で、大気圧Poutが低いほど大きくなる(絶対値が小さくなる)なるように設定される。これは、大気圧Poutが低いほど、燃料タンク40内の絶対圧が燃料の飽和蒸気圧以下になりやすく、燃料タンク40内の燃料が沸騰しやすいことを踏まえて、大気圧Poutが低いほど燃料タンク40内の燃料の沸騰を未検知とし難くするためである。
実施例のエンジン装置11では、図10~図12の燃料沸騰検知フラグ設定ルーチンにおいて、ステップS540で吸気温Taとの比較に用いる閾値Tarefとして、一定値が用いられるものとした。しかし、閾値Tarefは、大気圧Poutに基づいて設定されるものとしてもよい。この場合、閾値Tarefは、例えば、大気圧Poutを吸気温閾値設定用マップに適用して設定することができる。吸気温閾値設定用マップは、大気圧Poutと閾値Tarefとの関係として予め定められ、電子制御ユニット70のROMやフラッシュメモリに記憶される。図20は、吸気温閾値設定用マップの一例を示す説明図である。図示するように、閾値Tarefは、大気圧Poutが低いほど低くなるように設定される。これは、第1パージ濃度閾値設定用マップの傾向と同様の理由に基づくものである。
実施例のエンジン装置11では、図10~図12の燃料沸騰検知フラグ設定ルーチンにおいて、ステップS540で吸気温Taを用いて仮未検知フラグFv1cを設定するものとした。しかし、吸気温Taに代えて、燃料タンク40内の燃料の温度である燃温Tfを用いて仮未検知フラグFv1cを設定するものとしてもよい。ここで、燃温Tfは、吸気温Taに基づいて推定されるものとしてもよいし、燃料タンク40に温度センサを取り付けてその温度センサにより検出されるものとしてもよい。
実施例のエンジン装置11では、図10~図12の燃料沸騰検知フラグ設定ルーチンにおいて、ステップS560でパージ濃度関連値Cpgとの比較に用いる閾値Cpgref2として、一定値が用いられるものとした。しかし、閾値Cpgref2は、大気圧Poutに基づいて設定されるものとしてもよい。この場合、閾値Cpgref2は、例えば、大気圧Poutを第2パージ濃度閾値設定用マップに適用して設定することができる。第2パージ濃度閾値設定用マップは、大気圧Poutと閾値Cpgref2との関係として予め定められ、電子制御ユニット70のROMやフラッシュメモリに記憶される。図21は、第2パージ濃度閾値設定用マップの一例を示す説明図である。図示するように、閾値Cpgref2は、負の範囲内で、大気圧Poutが低いほど大きくなる(絶対値が小さくなる)なるように設定される。これは、大気圧Poutが低いほど、燃料タンク40内の絶対圧が燃料の飽和蒸気圧以下になりやすく、燃料タンク40内の燃料が沸騰しやすいことを踏まえて、大気圧Poutが低いほど燃料タンク40内の燃料の沸騰を検知とし易くするためである。
実施例のエンジン装置11では、図10~図12の燃料沸騰検知フラグ設定ルーチンにおいて、ステップS600で差分Δβ1との比較に用いる閾値Δβref1として、一定値が用いられるものとした。しかし、閾値Δβref1は、大気圧Poutに基づいて設定されるものとしてもよい。この場合、閾値Δβref1は、例えば、大気圧Poutを第1差分閾値設定用マップに適用して設定することができる。第1差分閾値設定用マップは、大気圧Poutと閾値Δβref1との関係として予め定められ、電子制御ユニット70のROMやフラッシュメモリに記憶される。図22は、第1差分閾値設定用マップの一例を示す説明図である。図示するように、閾値Δβref1は、正の範囲内で、大気圧Poutが低いほど小さくなるように設定される。これは、第2パージ濃度閾値設定用マップの傾向と同様の理由に基づくものである。
実施例のエンジン装置11では、図10~図12の燃料沸騰検知フラグ設定ルーチンにおいて、ステップS620で差分Δβ2との比較に用いる閾値Δβref2として、一定値が用いられるものとした。しかし、閾値Δβref2は、大気圧Poutに基づいて設定されるものとしてもよい。この場合、閾値Δβref2は、例えば、大気圧Poutを第2差分閾値設定用マップに適用して設定することができる。第2差分閾値設定用マップは、大気圧Poutと閾値Δβref2との関係として予め定められ、電子制御ユニット70のROMやフラッシュメモリに記憶される。図23は、第2差分閾値設定用マップの一例を示す説明図である。図示するように、閾値Δβref2は、正の範囲内で、大気圧Poutが低いほど小さくなるように設定される。これは、第2パージ濃度閾値設定用マップの傾向と同様の理由に基づくものである。
実施例のエンジン装置11では、図10~図12の燃料沸騰検知フラグ設定ルーチンにおいて、ステップS590で高応答処理値βhiから低応答処理値βloを減じた値を差分Δβ1に設定するものとした。しかし、フィードバック積分項αbiから低応答処理値βloを減じた値を差分Δβ1に設定するものとしてもよい。
実施例のエンジン装置11では、図10~図12の燃料沸騰検知フラグ設定ルーチンにおいて、ステップS610で現在の高応答処理値βhiから収束時処理値βhi0を減じた値を差分Δβ2に設定するものとした。しかし、燃圧収束検知フラグFpcが値0から値1に切り替わった直後のフィードバック積分項αbiを収束時フィードバック積分項αbi0として記憶しておき、現在のフィードバック積分項αbiから収束時フィードバック積分項αbi0を減じた値を差分Δβ2に設定するものとしてもよい。
実施例のエンジン装置11では、図10~図12の燃料沸騰検知フラグ設定ルーチンにおいて、燃料沸騰検知フラグFvに値0を設定するか否かの判定処理(ステップS550~S554)で、パージ濃度学習回数Npgとパージ濃度関連値Cpgとタンク内圧Ptとの条件の成立の有無に基づく仮未検知フラグFv1a、冷却水温Twの条件の成立の有無に基づく仮未検知フラグFv1b、吸気温Taの条件の成立の有無に基づく仮未検知フラグFv1cを用いるものとした。しかし、この判定処理で、仮未検知フラグFv1a,Fv1b,Fv1cのうちの一部だけを用いるものとしてもよい。
実施例のエンジン装置11では、図10~図12の燃料沸騰検知フラグ設定ルーチンにおいて、燃料沸騰検知フラグFvに値1を設定するか否かの判定処理(ステップS630~S634)で、パージ濃度関連値Cpgの条件の成立の有無に基づく仮検知フラグFv2a、差分Δβ1の条件の成立の有無に基づく仮検知フラグFv2b、差分Δβ2の条件の成立の有無に基づく仮検知フラグFv2cを用いるものとした。しかし、この判定処理で、仮検知フラグFv2a,Fv2b,Fv2cのうちの一部だけを用いるものとしてもよい。
実施例のエンジン装置11では、図10~図12の燃料沸騰検知フラグ設定ルーチンにおいて、燃料沸騰検知フラグFvの設定に仮検知フラグFv2b,Fv2cを用いるか否かの判定処理(ステップS570~S574)で、燃圧収束検知フラグFpcと積分項更新継続フラグFiuと消費流量安定フラグFfrとを用いるものとした。しかし、この判定処理で、少なくとも燃圧収束検知フラグFpcを用いるものであればよく、積分項更新継続フラグFiuおよび消費流量安定フラグFfrのうちの少なくとも1つを用いないものとしてもよい。
実施例のエンジン装置11では、図13の燃圧収束検知フラグ設定ルーチンにおいて、ステップS730で目標燃圧Pf*から脈動中心燃圧Pfcnを減じた値の絶対値を燃圧差分ΔPfに設定するものとした。しかし、これに代えて、目標燃圧Pf*から燃圧Pfを減じた値の絶対値を燃圧差分ΔPfに設定するものとしてもよい。
実施例のエンジン装置11では、図13の燃圧収束検知フラグ設定ルーチンにおいて、燃圧収束検知フラグFpcに値0を設定するか否かの判定処理(ステップS710~S714)で、燃料ポンプ回転フラグFpr、目標燃圧Pf*、燃料カット継続フラグFfc2を用いるものとした。しかし、この判定処理で、燃料ポンプ回転フラグFpr、目標燃圧Pf*、燃料カット継続フラグFfc2のうちの一部だけを用いるものとしてもよい。
実施例の自動車10が備えるエンジン装置11では、エンジン12は、筒内に燃料を噴射する燃料噴射弁26(筒内噴射弁)を備えるものとした。しかし、燃料噴射弁26に代えてまたは加えて、吸気ポートに燃料を噴射するポート噴射弁を備えるものとしてもよい。
実施例では、エンジン12からの動力を用いて走行する自動車10が備えるエンジン装置11の形態とした。しかし、エンジン12を間欠運転可能な車両が備えるエンジン装置11の形態であればよく、エンジンに加えてモータを備えるハイブリッド自動車が備えるエンジン装置11の形態としてもよい。
実施例の主要な要素と課題を解決するための手段の欄に記載した発明の主要な要素との対応関係について説明する。実施例では、エンジン12が「エンジン」に相当し、燃料供給装置42が「燃料供給装置」に相当し、電子制御ユニット70が「制御装置」に相当する。
なお、実施例の主要な要素と課題を解決するための手段の欄に記載した発明の主要な要素との対応関係は、実施例が課題を解決するための手段の欄に記載した発明を実施するための形態を具体的に説明するための一例であることから、課題を解決するための手段の欄に記載した発明の要素を限定するものではない。即ち、課題を解決するための手段の欄に記載した発明についての解釈はその欄の記載に基づいて行なわれるべきものであり、実施例は課題を解決するための手段の欄に記載した発明の具体的な一例に過ぎないものである。
以上、本発明を実施するための形態について実施例を用いて説明したが、本発明はこうした実施例に何等限定されるものではなく、本発明の要旨を逸脱しない範囲内において、種々なる形態で実施し得ることは勿論である。