以下、図面を参照して本発明の実施の形態を説明する。図1および図2は、本発明を4ストローク火花点火式内燃機関に適用した場合を示している。図1および図2を参照すると、1は機関本体、2はシリンダブロック、3はシリンダヘッド、4はピストン、5は燃焼室、6は電気制御式燃料噴射弁、6aは点火栓、7は吸気弁、8は吸気ポート、9は排気弁、10は排気ポートをそれぞれ示す。吸気ポート8は、対応する吸気枝管11を介してサージタンク12に連結され、サージタンク12は、吸気管13およびインタークーラ14を介して過給機、例えば、排気ターボチャージャ15のコンプレッサ16の出口部に連結される。コンプレッサ16の入口部は、吸気管17およびエアフローメータ18を介してエアクリーナ19に連結され、吸気管17内には、ステップモータ20により駆動されるスロットル弁21が配置される。
一方、排気ポート10は、排気マニホルド22を介して排気ターボチャージャ15の排気タービン23の入口部に連結され、排気タービン23の出口部は、三元触媒24を内蔵したケーシング25に連結される。
三元触媒24は、その温度が或る温度(いわゆる、活性温度)以上であって、且つ、図3に示したように、そこに流入する排気ガスの空燃比が理論空燃比近傍の領域X内にあるときに、排気ガス中の窒素酸化物(NOx)、一酸化炭素(CO)、炭化水素(HC)を同時に高い浄化率でもって浄化する。一方、三元触媒24は、そこに流入する排気ガスの空燃比が理論空燃比よりもリーンであるときには、排気ガス中の酸素を吸収し、そこに流入する排気ガスの空燃比が理論空燃比よりもリッチであるときには、吸収した酸素を放出する酸素吸放出能力(いわゆる酸素ストレージ能力)を有する。この酸素吸放出能力が正常に機能する限り、三元触媒24に流入する排気ガスの空燃比が理論空燃比よりもリーンであってもリッチであっても、三元触媒24内の雰囲気の空燃比がほぼ理論空燃比近傍に維持されるので、排気ガス中のNOx、CO、HCが同時に高い浄化率で浄化される。
また、ケーシング25の出口部に連結された排気管26とスロットル弁21下流の吸気管17とは、EGR通路27を介して互いに連結され、EGR通路27内には、ステップモータ28により駆動されるEGR制御弁29が配置される。また、EGR通路27内には、EGR通路27内を流れるEGRガスを冷却するためのインタークーラ30が配置される。図1に示した実施形態では、機関冷却水がインタークーラ30内に導かれ、機関冷却水によってEGRガスが冷却される。
一方、燃料噴射弁6は、燃料供給管31を介して燃料リザーバ、いわゆるコモンレール32に連結される。このコモンレール32内へは、電気制御式の吐出量可変な燃料ポンプ33から燃料が供給され、コモンレール32内に供給された燃料は、各燃料供給管31を介して燃料噴射弁6に供給される。コモンレール32には、コモンレール32内の燃料圧を検出するための燃料圧センサ34が取付けられ、燃料圧センサ34の出力信号に基づいてコモンレール32内の燃料圧が目標燃料圧となるように燃料ポンプ33の吐出量が制御される。
一方、図1に示した実施形態では、機関の出力軸に変速機35が連結され、変速機35の出力軸36に電気モータ37が連結される。この場合、変速機35としては、トルクコンバータを具えた通常の自動変速機、各種の無段変速機、或いは、クラッチを具えた手動変速機におけるクラッチ操作および変速操作を自動的に行うようにした形式の自動変速機等を用いることができる。
また、変速機35の出力軸36に連結された電気モータ37は、機関の駆動力とは別個に駆動力を発生する駆動力発生装置を構成している。図1に示した実施形態では、この電気モータ37は、変速機35の出力軸36上に取付けられかつ外周面に複数個の永久磁石を取付けたロータ38と、回転磁界を形成する励磁コイルを巻設したステータ39とを具備した交流同期電動機からなる。ステータ39の励磁コイルは、モータ駆動制御回路40に接続され、このモータ駆動制御回路40は、直流高電圧を発生するバッテリ41に接続される。
また、内燃機関は、燃料タンク60で発生するベーパ(蒸発燃料)を処理するためのベーパ処理装置61を備える。このベーパ処理装置61は、内部に活性炭62を収容したキャニスタ63を有する。キャニスタ63の内部空間は、活性炭62によって2つの空間64,65に分割されている。活性炭62によって分割されたキャニスタ63の一方の空間64は、ベーパ通路66を介して燃料タンク60に接続されていると共にベーパ通路67を介してスロットル弁21下流の吸気管13に接続されている。一方、活性炭62によって分割されたキャニスタ63の他方の空間65は、大気通路68を介して大気に連通せしめられている。
燃料タンク60に接続されているベーパ通路66は、燃料タンク60の燃料液面上方の空間に開口している。また、吸気管13に接続されているベーパ通路67は、吸気管13内の空間に開口している。さらに、吸気管13に接続されているベーパ通路67内には、ステップモータ69により駆動されるパージ制御弁70が配置される。
機関運転停止中、パージ制御弁70は閉弁されており、このとき燃料タンク60内で発生するベーパは、ベーパ通路66を介してキャニスタ63内に流入し、活性炭62に吸着する。一方、機関運転中、パージ制御弁70が開弁されると、活性炭62に吸着しているベーパは、機関運転中にスロットル弁21下流の吸気管13内に発生する負圧によって大気通路68を介してキャニスタ63に流入する空気に乗って、活性炭62からベーパ通路67を介して吸気管13内へと吸引され、結果として、燃焼室5に導入される(このように、ベーパをベーパ通路および吸気管を介して燃焼室に導入することを以下「パージ」という)。そして、機関運転中にキャニスタ63からベーパ通路67を介して吸気管13に流入するベーパを含んだ空気(以下「パージガス」という)の量は、パージ制御弁70の開度を制御することによって制御される。したがって、パージ制御弁70の開度を制御することによってパージガス量を制御することで、キャニスタ63からベーパ通路67を介して吸気管13に流入するベーパの量も制御されることになる。また、本実施形態では、基本的には、機関運転中、パージ制御弁70を開いて、キャニスタ63の活性炭62に吸着されているベーパを吸気管17に導入する。
電子制御ユニット50は、デジタルコンピュータからなり、双方向性バス51によって互いに接続されたROM(リードオンリメモリ)52、RAM(ランダムアクセスメモリ)53、CPU(マイクロプロセッサ)54、入力ポート55および出力ポート56を具備する。エアフローメータ18および燃料圧センサ34の出力信号は、それぞれ対応するAD変換器57を介して入力ポート55に入力される。排気マニホルド22内および排気管26内には、それぞれ空燃比センサ43a,43bが配置され、これら空燃比センサ43a,43bの出力信号は、それぞれ対応するAD変換器57を介して入力ポート55に入力される。また、入力ポート55には、変速機35の変速比または変速段、および、出力軸36の回転数等を表わす種々の信号が入力される。
空燃比センサ43a、43bは、図4に示されているように、排気ガスの空燃比(以下「排気空燃比」ともいう)が理論空燃比よりもリーンであるときには、0.1V程度の電圧を出力し、理論空燃比よりもリッチであるときには、0.9V程度の電圧を出力する。そして、出力電圧は、排気空燃比が理論空燃比近傍にある領域で急激に変化して、理論空燃比に相当する基準電圧(図4に示した例では、0.45V)を横切る。すなわち、空燃比センサは、排気空燃比が理論空燃比に対してリーンであるかリッチであるかに応じて異なる一定の電圧を出力する。
また、アクセルペダル44には、アクセルペダル44の踏込量(以下「アクセル踏込量」という)に比例した出力電圧を発生する負荷センサ45が接続され、負荷センサ45の出力電圧は、対応するAD変換器57を介して入力ポート55に入力される。また、ブレーキペダル71には、ブレーキペダル71の踏込量(以下「ブレーキ踏込量」という)に比例した出力電圧を発生する踏込量センサ72が接続され、踏込量センサ72の出力電圧は、対応するAD変換器57を介して入力ポート55に入力される。さらに、入力ポート55には、クランクシャフトが、例えば、30°回転する毎に出力パルスを発生するクランク角センサ46が接続される。一方、出力ポート56は、対応する駆動回路58を介して燃料噴射弁6、点火栓6a、ステップモータ20、EGR制御弁制御用ステップモータ28、燃料ポンプ33、変速機35、モータ駆動制御回路40、および、パージ制御弁制御用ステップモータ69に接続される。
ところで、電気モータ37のステータ39の励磁コイルへの電力の供給は、通常停止せしめられており、このときロータ38は、変速機37の出力軸36と共に回転している。一方、電気モータ37を駆動せしめるときには、バッテリ41の直流高電圧がモータ駆動制御回路40において周波数がfmで電流値がImの三相交流に変換され、この三相交流がステータ39の励磁コイルに供給される。この周波数fmは、励磁コイルにより発生する回転磁界をロータ38の回転に同期して回転させるのに必要な周波数であり、この周波数fmは、出力軸36の回転数に基づいてCPU54で算出される。モータ駆動制御回路40では、この周波数fmが三相交流の周波数とされる。
一方、電気モータ37の出力トルクは、三相交流の電流値Imにほぼ比例する。この電流値Imは、電気モータ37の要求出力トルクに基づきCPU54において算出され、モータ駆動制御回路40では、この電流値Imが三相交流の電流値とされる。
また、外力により電気モータ37を駆動する状態にすると、電気モータ37は発電機として作動し、このとき発生した電力がバッテリ41に回生される。外力により電気モータ37を駆動すべきか否かは、CPU54において判断され、外力により電気モータ37を駆動すべきであると判別されたときには、モータ制御回路40により電気モータ37に発生した電力バッテリ41に回生されるように制御される。
図5の縦軸TQは、機関に対する要求トルクを示しており、横軸Nは、機関回転数を示しており、各実線は、アクセルペダル44の同一踏込量における要求トルクTQと機関回転数Nとの関係を示している。また、図5において、実線Aは、アクセル踏込量が零のとき、実線Bは、アクセル踏込量が最大のときを示しており、実線Aから実線Bに向けてアクセル踏込量が増大していく。本実施形態では、図5に示す関係からアクセル踏込量Lと機関回転数Nとに応じた要求トルクTQが、まず初めに、算出され、この要求トルクTQに基づいて燃料噴射量等が算出される。
次に、加速運転時および減速運転時における運転制御について説明する。本実施形態では、排気ターボチャージャ15が作動しない運転領域の加速運転時には、良好な加速運転が得られるように、電気モータ37が駆動される。一方、減速運転時には、電気モータ37が発電機として作動せしめられ、発生した電力が回生される。
図6は、加減速時の処理ルーチンの一例を示しており、このルーチンは、一定時間毎の割込みによって実行される。図6のルーチンでは、初めに、ステップ10において、例えば、アクセル踏込量Lの変化量ΔL(>0)から加速運転時であるか否かが判別される。加速運転時であるときには、ステップ11に進んで、電気モータ37が発生すべき出力トルクTmが算出される。この出力トルクTmは、アクセル踏込量Lの変化量ΔLが大きいほど大きくなる。次いで、ステップ12では、電気モータ37が出力トルクTmを発生するために電気モータ37に供給すべき三相交流の電流値Imが算出される。次いで、ステップ13では、機関回転数Nに基づいて電気モータ37に供給すべき三相交流の周波数fmが算出される。次いで、ステップ14では、電流値がImで周波数がfmの三相交流が電気モータ37に供給され、それによって、電気モータ37が駆動せしめられる。このように、加速運転時には、機関の出力トルクに電気モータ37の出力トルクが重畳される。
次いで、ステップ15では、例えば、アクセル踏込量Lと機関回転数Nとから減速運転時であるか否かが判別される。減速運転時であるときには、ステップ16に進んで、電気モータ37が発電機として作動せしめられ、発生した電力がバッテリ41に回生せしめられる。
ところで、本実施形態では、燃焼室5内の混合気の空燃比が理論空燃比となるように、燃料噴射弁6から噴射させる燃料の量(以下「燃料噴射量」という)を制御する。次に、燃焼室5内の混合気の空燃比を理論空燃比に制御する本実施形態の方法について説明する。なお、以下の説明において、機関空燃比とは、燃焼室5に供給された燃料の量に対する同燃焼室5に供給された空気の量の比を意味し、排気空燃比とは、排気ガスの空燃比を意味し、排気ガスの空燃比とは、燃焼室5に吸入された空気(機関排気通路に空気を供給することができるようにしたシステムでは機関排気通路に供給された空気を含む。)の量に対する燃焼室5に供給された燃料(機関排気通路に燃料を供給することができるようにしたシステムでは機関排気通路に供給された燃料を含む。)の比を意味する。
図1に示した内燃機関では、基本的には、次式1に従って燃料噴射弁6を開弁する時間(以下「燃料噴射時間」という)TAUが算出される。
TAU=TP・FW・(FAF+KGj−FPG) …(1)
上式1において、TPは、基本燃料噴射時間であり、FWは、補正係数であり、FAFは、フィードバック補正係数であり、KGjは、空燃比の学習係数であり、FPGは、パージ空燃比補正係数(以下「パージA/F補正係数」という)である。
基本燃料噴射時間TPは、空燃比を理論空燃比とするのに必要な実験により求められた噴射時間であって、機関負荷Ga/N(吸入空気量Ga/機関回転数N)および機関回転数Nの関数として予めROM52内に記憶されている。
また、補正係数FWは、暖機増量係数や加速増量係数を一まとめにして表わしたもので、増量補正する必要がないときには、FW=1.0となる。また、フィードバック補正係数FAFは、空燃比センサ43aの出力信号に基づいて空燃比を理論空燃比に制御するための係数である。また、パージA/F補正係数FPGは、内燃機関の運転が開始されてからパージが開始されるまでの間は、零とされ、パージが開始された後は、パージガス中のベーパ濃度が高くなるほど大きくされ、機関運転中にパージが一時的に停止されたときは、パージの停止中、零とされる。
ところで、上述したように、フィードバック補正係数FAFは、空燃比センサ43aの出力信号に基づいて空燃比を理論空燃比に制御するためのものである。なお、空燃比を理論空燃比に制御する場合、空燃比センサ43aとしては、図4に示したように、排気ガス中の酸素濃度に応じ出力電圧が変化するセンサが使用されるので、以下、空燃比センサ43aをO2センサと称する。上述したように、O2センサ43aは、空燃比がリッチ(過濃側)であるとき、0.9(V)程度の出力電圧を発生し、空燃比がリーン(希薄側)であるとき、0.1(V)程度の出力電圧を発生する。
図7は、空燃比が理論空燃比に維持されているときのO2センサ43aの出力電圧Vとフィードバック補正係数FAFとの関係を示している。図7に示されるように、O2センサ43aの出力電圧Vが基準電圧、例えば、0.45(V)よりも高くなると、すなわち、空燃比がリッチになると、フィードバック補正係数FAFは、スキップ量Sだけ急激に低下せしめられ、次いで、積分定数Kでもって徐々に減少せしめられる。一方、O2センサ43aの出力電圧Vが基準電圧よりも低くなると、すなわち、空燃比がリーンになると、フィードバック補正係数FAFは、スキップ量Sだけ急激に増大せしめられ、次いで、積分定数Kでもって徐々に増大せしめられる。
すなわち、空燃比がリッチになるとフィードバック補正係数FAFが減少せしめられて燃料噴射量が減少せしめられ、一方、空燃比がリーンになるとフィードバック補正係数FAFが増大せしめられて燃料噴射量が増大せしめられ、斯くして、空燃比が理論空燃比に制御される。このとき、フィードバック補正係数FAFは、図7に示されるように、基準値、すなわち、1.0を中心として上下動する。
また、図7において、FAFLは、空燃比がリーンからリッチになったときのフィードバック補正係数FAFの値を示し、FAFRは、空燃比がリッチからリーンになったときのフィードバック補正係数FAFの値を示している。本実施形態では、フィードバック補正係数FAFの変動平均値(以下単に「平均値」という)として、これらFAFLとFAFRとの平均値が用いられる。
図8は、パージ率PGR(これは、図1に示した例では、大気からエアクリーナ19を介して燃焼室5内に吸入される空気の量(以下「吸入空気量」という)に対するパージガスの量の割合である)を示している。図8に示したように、本実施形態では、機関運転開始後、初めてパージが開始されると、パージ率PGRは零から徐々に増大せしめられ、パージ率PGRが目標値(例えば、6パーセント)に達すると、その後は、パージ率PGRは目標値に維持される。
そして、例えば、減速運転時に燃料噴射弁6からの燃料の供給が停止されたような場合、Xで示したように、パージ率PGRが一時的に零にされる。そして、次にパージが再開されたときのパージ率PGRは、パージが停止される直前のパージ率とされる。
次に、図9を参照しつつパージガス中のベーパ濃度(以下「ベーパ濃度」ともいう)の学習方法について説明する。ベーパ濃度の学習は、単位パージ率当りのベーパ濃度(以下単に「単位ベーパ濃度」ともいう)を正確に求めることから始まる。図9では、単位ベーパ濃度をFGPGで示している。また、パージA/F補正係数FPGは、単位ベーパ濃度FGPGにパージ率PGRを乗算することによって得られる。
単位ベーパ濃度FGPGは、フィードバック補正係数FAFがスキップ(図7のS)する毎に次式2に従って算出される。
FGPG=FGPG+tFG …(2)
ここで、tFGは、フィードバック補正係数FAFのスキップ毎に行われる単位ベーパ濃度FGPGの更新量であり、次式3に従って算出される。
tFG=(1−FAFAV)/(PGR・a) …(3)
ここで、FAFAVは、フィードバック補正係数の平均値(=(FAFL+FAFR)/2)であり、aは、本実施形態では、2に設定されている。
すなわち、パージが開始されると空燃比がリッチとなるので、空燃比を理論空燃比とすべくフィードバック補正係数FAFが小さくなる。次いで、時刻t1において、O2センサ43aにより空燃比がリッチからリーンに切替ったと判断されると、フィードバック補正係数FAFは増大せしめられる。この場合、パージが開始されてから時刻t1に至るまでのフィードバック補正係数FAFの変化量ΔFAF(=1.0−FAF)は、パージによる空燃比の変動量を表しており、この変動量ΔFAFは、時刻t1における単位ベーパ濃度を表わしていることになる。
時刻t1に達すると、空燃比は理論空燃比に維持され、その後、空燃比が理論空燃比からずれないようにフィードバック補正係数の平均値FAFAVを1.0まで戻すために単位ベーパ濃度FGPGがフィードバック補正係数FAFのスキップ毎に徐々に更新される。このときの単位ベーパ濃度FGPGの1回当りの更新量tFGは、1.0に対するフィードバック補正係数の平均値FAFAVのずれ量の半分とされるので、この更新量tFGは、上述したように、tFG=(1−FAFAV)/(PGR・2)となる。
図9に示されるように、単位ベーパ濃度FGPGの更新が数回繰返されると、フィードバック補正係数の平均値FAFAVは、1.0に戻り、その後は、単位ベーパ濃度FGPGは、一定となる。このように、単位ベーパ濃度FGPGが一定になるということは、このときのFGPGが単位ベーパ濃度を正確に表わしていることを意味しており、したがって、単位ベーパ濃度の学習が完了したことを意味している。一方、実際のベーパ濃度は、単位ベーパ濃度FGPGにパージ率PGRを乗算した値となる。したがって、実際のベーパ濃度を表わすパージA/F補正係数FPG(=FGPG・PGR)は、図9に示されるように、単位ベーパ濃度FGPGが更新される毎に更新され、パージ率PGRが増大するにつれて増大する。
パージ開始後における単位ベーパ濃度の学習が一旦完了した後においても単位ベーパ濃度が変化すれば、フィードバック補正係数FAFは1.0からずれ、このときにも、上述のtFG(=(1−FAFAV)/(PGR・a))を用いて単位ベーパ濃度FGPGの更新量が算出される。
次に、図10および図11を参照しつつ、パージ制御ルーチンについて説明する。なお、このルーチンは、一定時間毎の割込みによって実行される。図10および図11のルーチンでは、まず初めに、ステップ20において、パージ制御弁70の駆動パルスのデューティ比の計算時期か否かが判別される。本実施形態では、デューティ比の計算は、100msec毎に行われる。ここで、デューティ比の計算時期でないと判別されたときには、図12に示されているパージ制御弁70の駆動処理ルーチンに進む。一方、ステップ20において、デューティ比の計算時期であると判別されたときには、ステップ21に進んで、パージ条件1が成立しているか否か、例えば、暖機が完了したか否かが判別される。
ここで、パージ条件1が成立していないと判別されたときには、ステップ28に進んで、初期化処理、すなわち、前回のパージの中止直前のパージ率PRGOが零とされ、次いで、ステップ29に進んで、デューティ比DPGおよびパージ率PGRも零とされ、次いで、図12に示されているパージ制御弁70の駆動処理ルーチンに進む。一方、ステップ21において、パージ条件1が成立していると判別されたときには、ステップ22に進んで、パージ条件2が成立しているか否か、例えば、空燃比のフィードバック制御が行われているか否かおよび燃料噴射弁6からの燃料の供給が停止されていないか否かが判別される。
ここで、パージ条件2が成立していないと判別されたときには、ステップ29に進んで、デューティ比DPGおよびパージ率PGRが零とされ、次いで、図12に示されているパージ制御弁70の駆動処理ルーチンに進む。一方、ステップ22において、パージ条件2が成立していると判別されたときには、ステップ23に進む。
ステップ23では、全開パージ率PG100が算出される。ここで、全開パージ率PG100は、全開パージ量PGQと吸入空気量Gaとの比((PGQ/Ga)・100)であって、例えば、機関負荷Ga/N(=吸入空気量Ga/機関回転数N)と機関回転数Nとの関数であって予め実験により求められ、下表に示すようなマップの形で予めROM52内に記憶されている。なお、全開パージ量PGQは、パージ制御弁70を全開にしたときのパージガス量を表わしている。
機関負荷Ga/Nが低くなるほど吸入空気量Gaに対する全開パージ量PGQは大きくなるので、表1に示されるように、全開パージ率PG100は、機関負荷Ga/Nが低くなるほど大きくなり、また、機関回転数Nが低くなるほど吸入空気量Gaに対する全開パージ量PGQは大きくなるので、表1に示されるように、全開パージ率PG100は、機関回転数Nが低くなるほど大きくなる。
次いで、ステップ24では、フィードバック補正係数FAFが上限値KFAF15(=1.15)と下限値KFAF85(=0.85)との間にある(KFAF15>FAF>KFAF85)か否かが判別される。ここで、KFAF15>FAF>KFAF85であると判別されたとき(このときには、空燃比が理論空燃比にフィードバック制御されている)には、ステップ25に進んで、パージ率PGRが零である(PGR=0)か否かが判別される。
ここで、PGR≠0である(ここで、パージ率PGRは、常に零以上であるから、PGR≠0であるということは、PGR>0であること、すなわち、パージが行われていることを意味する)と判別されたときには、ステップ27にジャンプする。一方、ステップ25において、PGR=0である(すなわち、パージが行われていない)と判別されたときには、ステップ26に進んで、パージ率PGRが前回のパージの中止直前のパージ率(再開パージ率)PGROとされる。ここで、機関運転が開始されてから初めてルーチンがステップ26に進んだとき(すなわち、機関運転が開始されてから初めてパージ条件1が成立したとき)には、ステップ28の初期化処理によって前回のパージの中止直前のパージ率PGROが零とされているので、ステップ26では、パージ率PGRは零とされている。一方、機関運転が開始されてから初めてルーチンがステップ26に進んだのではないとき(すなわち、パージが一旦中止された後にパージが再開されたとき)には、ステップ26では、パージ率PGRは前回のパージの中止直前のパージ率PGROとされる。
次いで、ステップ27では、パージ率PGRに一定値KPGRuを加算することによって目標パージ率tPGR(=PGR+KPGRu)が算出され、次いで、ステップ31に進む。すなわち、フィードバック補正係数FAFが上限値KFAF15と下限値KFAF85との間にあるときには、目標パージ率tPGRが100msec毎に徐々に増大せしめられることになる。なお、ステップ27に示されているように、目標パージ率tPGRに対しては、上限値P(例えば、6%)が設定されているので、目標パージ率tPGRは、上限値Pまでしか増大せしめられない。
一方、ステップ24において、FAF≧KFAF15またはFAF≦KFAF85であると判別されたときには、ステップ30に進んで、パージ率PGRから一定値KPGRdを減算することによって目標パージ率tPGR(=PGR−KPGRd)が算出され、次いで、ステップ31に進む。すなわち、フィードバック補正係数FAFが上限値KFAF15と下限値KFAF85との間に制御されていないとき、すなわち、空燃比が理論空燃比に制御されていないときには、パージの影響によって空燃比が理論空燃比に制御されていないものと判断し、目標パージ率tPGRが減少せしめられる。なお、ステップ30に示されているように、目標パージ率tPGRに対しては、下限値S(例えば、0%)が設定されているので、目標パージ率tPGRは、下限値Sまでしか減少せしめられない。
ステップ31では、目標パージ率tPGRを全開パージ率PG100により除算することによってパージ制御弁70の駆動パルスのデューティ比DPG(=(tPGR/PG100)・100)が算出される。したがって、パージ制御弁70の駆動パルスのデューティ比DPG、すなわち、パージ制御弁70の開弁量は、全開パージ率PG100に対する目標パージ率tPGRの割合に応じて制御されることになる。
次いで、ステップ32において、全開パージ率PG100にデューティ比DPGを乗算することによって実際のパージ率PGR(=PG100・(DPG/100))が算出される。次いで、ステップ33において、デューティ比DPGがDPGOとされると共にパージ率PGRがPGROとされる。次いで、ステップ34において、パージが開始されてからの時間を示すパージ実行時間カウンタCPGRが1だけインクリメントされ、次いで、図12に示されているパージ制御弁70の駆動処理ルーチンに進む。
次に、図12に示されているパージ制御弁70の駆動処理ルーチンについて説明する。図12のルーチンでは、まず初めに、ステップ40において、機関運転中か否かが判別される。ここで、機関運転中であると判別されたときには、ステップ41に進む。一方、機関運転中ではない、すなわち、機関運転停止中であると判別されたときには、ステップ47に進んで、パージ制御弁70の駆動パルスYEVPがオフとされる。
ステップ41では、デューティ比の出力周期か否か、すなわち、パージ制御弁70の駆動パルスの立上り周期であるか否かが判別される。このデューティ比の出力周期は、100msecである。ステップ41において、デューティ比の出力周期であると判別されたときには、ステップ42に進んで、デューティ比DPGが零である(DPG=0)か否かが判別される。ここで、DPG=0であると判別されたときには、ステップ47に進んで、パージ制御弁70の駆動パルスYEVPがオフとされる。一方、ステップ42において、DPG≠0であると判別されたときには、ステップ43に進んで、パージ制御弁70の駆動パルスYEVPがオンにされる。
次いで、ステップ44において、現在の時刻TIMERにデューティ比DPGを加算することによって駆動パルスのオフ時刻TDPG(=DPG+TIMER)が算出される。次いで、ステップ45に進んで、パージガス量の積算値ΣPが算出される。すなわち、ステップ45では、前回ステップ45で算出されて記憶されているパージガス量の積算値ΣPに、前回ステップ45が実行されてから今回ステップ45が実行されるまでのパージガス量Pを加算することによって、今回のパージガス量の積算値ΣPが算出される。次いで、ステップ46に進んで、吸入空気量の積算値ΣGaが算出される。すなわち、ステップ46では、前回ステップ46で算出されて記憶されている吸入空気量の積算値ΣGaに、前回ステップ46が実行されてから今回ステップ46が実行されるまでの吸入空気量Gaを加算することによって、今回の吸入空気量の積算値ΣGaが算出される。
一方、ステップ41において、デューティ比の出力周期ではないと判別されたときには、ステップ48に進んで、現在の時刻TIMERが駆動パルスのオフ時刻TDPGである(TIMER=TDPG)か否かが判別される。ここで、TIMER=TDPGであると判別されたときには、ステップ49に進んで、駆動パルスYEVPがオフとされる。
次に、図13に示したフィードバック補正係数FAFの算出ルーチンについて説明する。このルーチンは、例えば、一定時間毎の割込みによって実行される。
図13のルーチンでは、まず初めに、ステップ50において、空燃比のフィードバック制御条件が成立しているか否かが判別される。ここで、フィードバック制御条件が成立していないと判別されたときには、ステップ59に進んで、フィードバック補正係数FAFが1.0に固定され、次いで、ステップ60に進んで、フィードバック補正係数の平均値FAFAVが1.0に固定され、次いで、ステップ64に進む。一方、ステップ50において、フィードバック制御条件が成立していると判別されたときには、ステップ51に進む。
ステップ51では、O2センサ43aの出力電圧Vが0.45(V)よりも高い(V≧0.45)か否か、すなわち、リッチであるか否かが判別される。ここで、V≧0.45であると判別されたとき、すなわち、リッチであると判別されたときには、ステップ52に進んで、前回の本ルーチンの実行時にリーンであったか否かが判別される。ここで、前回の本ルーチンの実行時にリーンであったと判別されたとき、すなわち、前回の本ルーチンの実行時から今回の本ルーチンの実行時までの間に、空燃比がリーンからリッチに変化したときには、ステップ53に進んで、FAFLがFAFとされ、次いで、ステップ54に進む。
ステップ54では、フィードバック補正係数FAFからスキップ値Sが減算され、次いで、ステップ55に進む。これにより、図7に示されるように、フィードバック補正係数FAFがスキップ値Sだけ急激に減少せしめられことになる。
一方、ステップ52において、前回の本ルーチンの実行時にもリッチであったと判別されたときは、ステップ58に進んで、フィードバック補正係数FAFから積分値K(K≪S)が減算され、次いで、ステップ57に進む。これにより、図7に示されるように、フィードバック補正係数FAFが徐々に減少せしめられることになる。
一方、ステップ51において、V<0.45であると判別されたとき、すなわち、リーンであると判別されたときには、ステップ61に進んで、前回の本ルーチンの実行時にリッチであったか否かが判別される。ここで、前回の本ルーチンの実行時にリッチであったと判別されたとき、すなわち、前回の本ルーチンの実行時から今回の本ルーチンの実行時までの間に、空燃比がリッチからリーンに変化したときには、ステップ62に進んで、FAFRがFAFとされ、次いで、ステップ63に進む。
ステップ63では、フィードバック補正係数FAFにスキップ値Sが加算され、次いで、ステップ55に進む。これにより、図7に示されるように、フィードバック補正係数FAFは、スキップ値Sだけ急激に増大せしめられることになる。
ステップ55では、ステップ53で算出されたFAFLとステップ62で算出されたFAFRとの平均値FAFAVが算出される。次いで、ステップ56において、スキップフラグがセットされ、次いで、ステップ57に進む。
一方、ステップ61において、前回の本ルーチンの実行時にもリーンであったと判別されたときは、ステップ64に進んで、フィードバック補正係数FAFに積分値Kが加算される。これにより、図7に示されるように、フィードバック補正係数FAFが徐々に増大せしめられることになる。
ステップ57では、フィードバック補正係数FAFが変動許容範囲の上限1.2と下限0.8とによりガードされる。すなわち、FAFが1.2よりも大きくならず、0.8よりも小さくならないようにFAFの値がガードされる。上述したように、空燃比がリッチとなってFAFが小さくなると、燃料噴射時間TAUが短くなって空燃比がリーン側へと移行し、FAFが大きくなると、燃料噴射時間TAUが長くなって空燃比がリッチ側へと移行するので、空燃比が理論空燃比に維持されることになる。
図13に示したフィードバック補正係数FAFの算出ルーチンが完了すると、図14に示した空燃比の学習ルーチンに進む。
図14のルーチンでは、まず初めに、ステップ70において、空燃比の学習条件が成立しているか否かが判別される。ここで、空燃比の学習条件が成立していないと判別されたときには、ステップ77にジャンプし、空燃比の学習条件が成立していると判別されたときには、ステップ71に進む。ステップ71では、スキップフラグがセットされているか否かが判別される。ここで、スキップフラグがセットされていないと判別されたときには、ステップ77にジャンプし、スキップフラグがセットされていると判別されたときには、ステップ72に進む。ステップ72では、スキップフラグがリセットされ、次いで、ステップ73に進む。すなわち、本ルーチンでは、フィードバック補正係数FAFがスキップせしめられる毎にステップ73に進むことになる。
ステップ73では、パージ率PGRが零である(PGR=0)か否か、すなわち、パージが行われているか否かが判別される。ここで、PGR≠0であると判別されたとき、すなわち、パージが行われているときには、図15に示したベーパ濃度の学習ルーチンへ進む。一方、PGR=0であると判別されたとき、すなわち、パージが行われていないときには、ステップ74に進み、以降のステップにおいて、空燃比の学習が行われる。
すなわち、まず初めに、ステップ74において、フィードバック補正係数の平均値FAFAVが1.02よりも大きい(FAFAV≧1.02)か否かが判別される。ここで、FAFAV≧1.02であると判別されたときには、ステップ78に進んで、学習領域jに対する空燃比の学習値KGjに一定値Xが加算される。すなわち、本実施形態では、機関負荷に応じて複数個の学習領域jが予め定められており、各学習領域jに対してそれぞれ空燃比の学習値KGjが設けられている。したがって、ステップ78では、機関負荷に応じた学習領域jの空燃比の学習値KGjが更新され、ステップ77に進む。
一方、ステップ74において、FAFAV<1.02であると判別されたときには、ステップ75に進んで、フィードバック補正係数の平均値FAFAVが0.98よりも小さい(FAFAV≦0.98)か否かが判別される。ここで、FAFAV≦0.98であると判別されたときには、ステップ76に進んで、機関負荷に応じた学習領域jの空燃比の学習値KGjから一定値Xが減算される。一方、ステップ75において、FAFAV>0.98であると判別されたとき、すなわち、FAFAVが0.98と1.02との間にあるときには、空燃比の学習値KGjを更新することなく、ステップ77にジャンプする。
ステップ77およびステップ79では、ベーパ濃度を学習するための初期化処理が行われる。すなわち、ステップ77では、機関始動中であるか否かが判別される。ここで、機関始動中であると判別されたときには、ステップ79に進んで、単位ベーパ濃度FGPGが零とされると共にパージ実行時間カウント値CPGRがクリアされ、図16に示されている燃料噴射時間の算出ルーチンに進む。一方、ステップ77において、機関始動中ではないと判別されたときには、図16に示されている燃料噴射時間の算出ルーチンに直接進む。
上述したように、ステップ73において、パージが行われていると判別されたときには、図15に示されているベーパ濃度の学習ルーチンに進む。次に、このベーパ濃度の学習ルーチンについて説明する。
図15のルーチンでは、まず初めに、ステップ80において、フィードバック補正係数の平均値FAFAVが一定の設定範囲内にあるか否か、すなわち、1.02>FAFAV>0.98であるか否かが判別される。ここで、1.02>FAFAV>0.98であると判別されたときには、ステップ81に進んで、単位ベーパ濃度FGPGの更新量tFGが零とされ、次いで、ステップ82に進む。
ステップ82では、ベーパ濃度FGPGに更新量tFGが加算されるのであるが、ステップ81を経由してステップ82に達した場合、更新量tFGは零であるので、この場合には、ベーパ濃度FGPGは更新されないことになる。
一方、ステップ80において、FAFAV≧1.02またはFAFAV≦0.98であると判別されたときには、ステップ84に進んで、次式3に従ってベーパ濃度FGPGの更新量tFGが算出される。
tFG=(1.0−FAFAV)/PGR・a …(3)
ここで、aは2である。すなわち、フィードバック補正係数の平均値FAFAVが設定範囲(0.98と1.02との間)を越えると、ステップ84において、1.0に対するFAFAVのずれ量の半分が更新量tFGとされ、ステップ82に進む。
上述したように、ステップ82では、ベーパ濃度FGPGに更新量tFGが加算されるのであるが、ステップ84を経由してステップ82に達した場合、更新量tFGは、多くの場合、零ではないので、この場合には、ベーパ濃度FGPGは更新されることになる。
ステップ83では、ベーパ濃度FGPGの更新回数を表している更新回数カウンタCFGPGが1だけインクリメントされ、次いで、図16に示されている燃料噴射時間の算出ルーチンに進む。
次に、図16に示されている燃料噴射時間の算出ルーチンについて説明する。図16のルーチンでは、まず初めに、ステップ90において、機関負荷Ga/Nおよび機関回転数Nに基づいて基本燃料噴射時間TPが算出され、次いで、ステップ91において、暖機増量等のための補正係数FWが算出される。次いで、ステップ92において、単位ベーパ濃度FGPGにパージ率PGRを乗算することによってパージA/F補正係数FGR(=FGPG・PGR)が算出され、次いで、ステップ93において、次式4に従って燃料噴射時間TAUが算出される。
TAU=TP・FW・(FAF+KGj−FPG) …(4)
ところで、本実施形態では、所定の条件が成立した場合、機関運転を停止するようにしている。次に、機関運転を停止するか或いは内燃機関を運転させるかを決定する手順について、図17を参照して説明する。図17は、機関運転とその停止とを制御するルーチンの一例を示した図である。図17のルーチンでは、初めに、ステップ100において、冷却水温Twが或る所定の範囲内に収まっている(TwL<Tw<TwH)か否かが判別される。ここで、TwL<Tw<TwHであると判別されたときには、ステップ101に進む。
ステップ101では、機関回転数Nが所定値Nthよりも小さい(N<Nth)か否かが判別される。ここで、N<Nthであると判別されたときには、ステップ102に進む。ステップ102では、ブレーキ踏込量Dbが所定量Dbthよりも大きい(Db>Dbth)か否かが判別される。ここで、Db>Dbthであると判別されたときには、ステップ103に進む。ステップ103では、車速Vが零である(V=0)か否かが判別される。ここで、V=0であると判別されたときには、ステップ104に進む。
ステップ104では、バッテリ41の充電量Cが所定量Cthよりも多い(C>Cth)か否かが判別される。ここで、C>Cthであると判別されたときには、ステップ105に進む。ステップ105では、後述する機関運転停止の禁止・許可制御において機関運転の停止が許可されているか否かが判別される。ここで、機関運転の停止が許可されていると判別されたときには、ステップ16に進んで、機関運転を停止させる。
なお、ステップ100において、Tw≦TwLであると判別されたとき、或いは、Tw≧TwHであると判別されたとき、または、ステップ101において、N≧Nthであると判別されたとき、または、ステップ102において、Db≦Dbthであると判別されたとき、または、ステップ103において、V≠0であると判別されたとき、または、ステップ104において、C≦Cthであると判別されたとき、または、ステップ105において、機関運転の停止が許可されていないと判別されたときには、ステップ107に進んで、このとき、機関運転が停止している場合には機関運転を開始させ、一方、このとき、機関運転が行われている場合には機関運転を継続する。
このように、図17に示した例において、機関運転を停止させる条件とは、冷却水温が或る所定の範囲内に収まっており、且つ、機関回転数が所定値よりも小さく、且つ、ブレーキ踏込量が所定量よりも大きく、且つ、車速が零であり、且つ、バッテリ41の充電量が所定量よりも多く、且つ、後述する機関運転停止の禁止・許可制御において機関運転の停止が許可されていることになる。
次に、図18を参照して、機関運転停止の禁止と許可とを制御する本発明の方法の一例について説明する。図18のルーチンでは、まず初めに、ステップ110において、ベーパ濃度の学習値FGPG(これは、例えば、図15に示したルーチンにおいて算出されるベーパ濃度の学習値FGPGである)が予め定められた値FGPGthよりも大きい(FGPG>FGPGth)か否かが判別される。
ここで、FGPG≦FGPGthであると判別されたときには、ステップ112に進んで、ベーパ濃度の学習値の更新量tFG(これは、例えば、図15に示したルーチンにおいて算出されるベーパ濃度の更新量tFGである)が予め定められた量tFGthよりも小さい(tFG<tFGth)か否かが判別される。
ここで、tFG≧tFGthであると判別されたときには、ステップ111に進んで、機関運転の停止が禁止される。すなわち、本実施形態では、tFG≧tFGthであるときには、ベーパ濃度の学習値の増大率が比較的大きいことから、キャニスタ63内のベーパ量が比較的多いと推察する。すなわち、本実施形態では、ベーパ濃度の学習値が比較的小さいとき(ステップ110において、FGPG≦FGPGthであると判別されたとき)であっても、ベーパ濃度の学習値の増大率が比較的大きいとき(ステップ112において、tFG≧tFGthであると判別されたとき)には、キャニスタ63内のベーパ量が比較的多いと推察する。そして、この場合、キャニスタ63内のベーパ量を早期に少なくするためにはパージを行うべきであるので、本実施形態では、機関運転の停止を禁止するようにしたのである(図12に示したルーチンのステップ40を参照すると分かるように、本実施形態において、機関運転が停止してしまうと、パージは行われない)。これによれば、キャニスタ内のベーパ量が比較的多いときにキャニスタ内のベーパ量を早期に少なくすることができる。
一方、ステップ112において、tFG<tFGthであると判別されたときには、ステップ113に進んで、機関運転の停止が許可される。すなわち、本実施形態では、tFG<tFGthであるときには、ベーパ濃度の学習値の増大率が比較的小さいか或いは該ベーパ濃度の学習値が減少していることから、キャニスタ63内のベーパ量が比較的少ないと推察する。すなわち、本実施形態では、ベーパ濃度の学習値が比較的小さいとき(ステップ110において、FGPG≦FGPGthであると判別されたとき)であって且つベーパ濃度の学習値の増大率が比較的小さいか或いは該ベーパ濃度の学習値が減少しているときに初めて、キャニスタ63内のベーパ量が比較的少ないと推察する。そして、この場合、キャニスタ63内のベーパ量を現在の量からさらに少なくする必要性に乏しく、このため、パージを行う必要性にも乏しいので、本実施形態では、機関運転の停止を許可するようにしたのである。
もちろん、ステップ110において、FGPG>FGPGthであると判別されたときには、ベーパ濃度の学習値が比較的高いことから、キャニスタ63内のベーパ量が比較的多いと推察されるので、ステップ111に進んで、機関運転の停止が禁止される。
なお、図18に示した例では、ベーパ濃度の学習値が比較的小さいとき(ステップ110において、FGPG≦FGPGthであると判別されたとき)であって且つベーパ濃度の学習値の増大率が比較的大きいとき(ステップ112において、tFG≧tFGthであると判別されたとき)に、機関運転の停止が禁止されるようになっている。しかしながら、ベーパ濃度の学習値の増大率が比較的大きいことのみをもって、キャニスタ63内のベーパ量が比較的多いと推察することもできるので、図18に示した例において、ベーパ濃度の学習値の大小に係わらず、ベーパ濃度の学習値の増大率が比較的大きいときに、機関運転の停止を禁止するようにしてもよい。そして、この場合、ベーパ濃度の学習値の増大率が比較的小さくなったときに、機関運転の停止を許可するようにしてもよい。
次に、図19および図20を参照して、機関運転の停止の許可と停止とを制御する本発明の方法の別の一例について説明する。図19および図20のルーチンでは、まず初めに、ステップ120において、ベーパ濃度の学習値FGPG(これは、例えば、図15に示したルーチンにおいて算出されるベーパ濃度の学習値FGPGである)が予め定められた値FGPGthよりも大きい(FGPG>FGPGth)か否かが判別される。
ここで、FGPG≦FGPGthであると判別されたときには、ステップ125に進んで、判定完了フラグF1がリセットされている(F1=0)か否かが判別される。この判定完了フラグF1は、機関運転の停止を許可するのか或いは禁止するのかの本ルーチンによる判定(以下「本ルーチンによる許可・禁止判定」という)が完了したときにセットされ或いはリセットされるフラグであり、詳細には、機関運転の停止が許可されるとセットされ、機関運転の停止が禁止されるとリセットされるフラグである。
ステップ125において、F1=0であると判別されたとき(すなわち、機関運転停止が禁止されているとき)には、ステップ126に進んで、本ルーチンによる許可・禁止判定が完了してから現在まで(本ルーチンによる許可・禁止判定が完了していない場合には、パージが開始されてから現在まで)のパージガス量の積算値ΣP(これは、例えば、図12に示したルーチンにおいて算出される値ΣPであり、以下単に「パージガス積算値」という)が予め定められた値ΣPthHよりも大きい(ΣP>ΣPthH)か否かが判別される。
ここで、ΣP≦ΣPthHであると判別されたときには、ステップ130に進んで、本ルーチンによる許可・禁止判定が完了してから現在まで(本ルーチンによる許可・禁止判定が完了していない場合には、パージが開始されてから現在まで)の吸入空気量の積算値ΣGa(これは、例えば、図12に示したルーチンにおいて算出される値ΣGaであって、以下単に「吸気積算値」という)が予め定められた値ΣGathよりも大きい(ΣGa>ΣGath)か否かが判別される。ここで、ΣGa>ΣGathであると判別されたときには、ステップ131に進んで、パージガス積算値ΣPが上記予め定められた値ΣPthHよりも小さい予め定められた値ΣPthLよりも大きい(ΣP>ΣPthL)か否かが判別される。
ここで、ΣP>ΣPthLであると判別されたときには、ステップ132に進んで、機関運転の停止が許可され、次いで、ステップ133に進んで、判定完了フラグF1がセットされ、次いで、ステップ123に進んで、パージガス積算値ΣPがクリアされ、次いで、ステップ124に進んで、吸気積算値ΣGaがクリアされる。
すなわち、本実施形態では、吸気積算値ΣGaが予め定められた値ΣGathよりも大きくなったとき(すなわち、一定の期間の間に、エアクリーナ19を経由して燃焼室5に吸入された空気の総量が比較的多くなったとき)に、パージガス積算値ΣPが予め定められた値ΣPthLよりも大きくなっているとき(すなわち、同じ一定の期間の間に、吸気管17に導入されたパージガスの総量が比較的多くなっているとき)には、十分な量のベーパがキャニスタ63から吸気管17へと導入されており、キャニスタ63内のベーパ量が比較的少なくなっていると推察する。そして、この場合、キャニスタ63内のベーパ量を現在の量からさらに少なくする必要性に乏しく、このため、パージを行う必要性に乏しいので、本実施形態では、機関運転の停止を許可するようにしたのである。
そして、いったんキャニスタ63内のベーパ量が比較的少なくなっていると判断されると、本実施形態では、ステップ133において、判定完了フラグF1がセットされる。したがって、次に、ルーチンがステップ125に到来したときには、ステップ129に進むことになる。そして、ステップ129では、判定完了フラグF1がリセットされるので、さらにその後、ルーチンがステップ125に到来すると、ステップ126に進んで、ステップ126以降のステップにより、本ルーチンによる許可・禁止判定が行われることになる。
また、いったんキャニスタ63内のベーパ量が比較的少なくなっていると判断されると、本実施形態では、ステップ123およびステップ124において、パージガス積算値ΣPおよび吸気積算値ΣGaがクリアされる。したがって、次回の本ルーチンによる許可・禁止判定は、ルーチンがこれらステップ123およびステップ124を通過した後からのパージガス積算値および吸気積算値に基づいて行われることになる。
一方、ステップ131において、ΣP≦ΣPthLであると判別されたときには、ステップ134に進んで、機関運転の停止が禁止され、次いで、ステップ123に進んで、パージガス積算値ΣPがクリアされ、次いで、ステップ124に進んで、吸気積算値ΣGaがクリアされる。
すなわち、本実施形態では、吸気積算値ΣGaが予め定められた値ΣGathよりも大きくなっているにも係わらず(すなわち、一定の期間の間に、エアクリーナ19を経由して燃焼室5に吸入された空気の総量が比較的多くなっているにも係わらず)、パージガス積算値ΣPが予め定められた値ΣPthLよりも小さいとき(すなわち、同じ一定の期間の間に、吸気管17に導入されたパージガスの総量が比較的少ないとき)には、十分な量のベーパがキャニスタ63から吸気管17へと導入されておらず、キャニスタ63内のベーパ量は比較的多いままであると推察する。そして、この場合、キャニスタ63内のベーパ量を早期に少なくするためにはパージを行うべきであるので、本実施形態では、機関運転の停止を禁止するようにしたのである。これによれば、キャニスタ内のベーパ量が比較的多いときにキャニスタ内のベーパ量を早期に少なくすることができる。
そして、この場合には、機関運転の停止を禁止し続けるべきか否かを継続して判定する必要がある。このことから、本実施形態では、ステップ134が行われた後に判定完了フラグF1をセットしないのである(これによれば、次に、ルーチンがステップ125に到来したときには、必ず、ステップ126へと進むので、ステップ126以降のステップにより、本ルーチンによる許可・禁止判定が行われることになる)。
ところで、ステップ126において、ΣP>ΣPthHであると判別されたときには、ステップ127に進んで、機関運転停止が許可され、次いで、ステップ128に進んで、判定完了フラグF1がセットされ、次いで、ステップ123に進んで、パージガス積算値ΣPがクリアされ、次いで、ステップ124に進んで、吸気積算値ΣGaがクリアされる。
すなわち、本実施形態では、パージガス積算値ΣPが比較的大きい値ΣPthHよりも大きいとき(すなわち、パージガス総量が非常に多いとき)には、吸気積算値ΣGaの大小に係わらず、十分な量のベーパがキャニスタ63から吸気管17へと導入されており、キャニスタ63内のベーパ量が比較的少なくなっていると推察する。このため、この場合、本実施形態では、機関運転の停止を許可するようにしたのである。
なお、ステップ120において、FGPG>FGPGthであると判別されたときには、ベーパ濃度の学習値が比較的高いことから、キャニスタ63内のベーパ量が比較的多いと推察されるので、ステップ121に進んで、機関運転の停止が禁止され、次いで、ステップ122に進んで、判定完了フラグF1がリセットされ、次いで、ステップ123に進んで、パージガス積算値ΣPがクリアされ、次いで、ステップ124に進んで、吸気積算値ΣGaがクリアされる。
なお、図19および図20に示した例では、ベーパ濃度の学習値が比較的小さいとき(ステップ120において、FGPG≦FGPGthであると判別されたとき)であって且つ吸気積算値が比較的大きいとき(ステップ130において、ΣGa>ΣGathであると判別されたとき)であって且つパージガス積算値が比較的小さいとき(ステップ131において、ΣP≦ΣPthLであると判別されたとき)に、機関運転の停止が禁止されるようになっている。しかしながら、パージガス積算値が比較的小さいことのみをもって、キャニスタ63内のベーパ量が比較的多いと推察することもできるので、図19および図20に示した例において、ベーパ濃度の学習値の大小や吸気積算値の大小に係わらず、パージガス積算値が比較的小さいときに、機関運転の停止を禁止するようにしてもよい。そして、この場合、例えば、パージガス積算値が比較的大きくなったときに、機関運転の停止を許可する。
また、ベーパ濃度の学習値が比較的小さいときにパージガス積算値が比較的小さいことのみをもって、キャニスタ63内のベーパ量が比較的多いと推察することもできるので、図19および図20に示した例において、吸気積算値の大小に係わらず、ベーパ濃度の学習値が比較的小さいがパージガス積算値も比較的小さいときに、機関運転の停止を禁止するようにしてもよい。そして、この場合、例えば、パージガス積算値が比較的大きくなったときに、機関運転の停止を許可する。
また、吸気積算値が比較的小さいことのみをもって、キャニスタ63内のベーパ量が比較的多いと推察することもできるので、図19および図20に示した例において、ベーパ濃度の学習値の大小やパージガス積算値の大小に係わらず、吸気積算値が比較的小さいときに、機関運転の停止を禁止するようにしてもよい。そして、この場合、例えば、吸気積算値が比較的大きくなったときに、機関運転の停止を許可する。
また、吸気積算値が比較的大きく且つパージガス積算値が比較的小さいことのみをもって、キャニスタ63内のベーパ量が比較的多いと推察することもできるので、図19および図20に示した例において、ベーパ濃度の学習値の大小に係わらず、吸気積算値が比較的大きく且つパージガス積算値が比較的小さいときに、機関運転の停止を禁止するようにしてもよい。そして、この場合、例えば、パージガス積算値が比較的大きくなったときに、機関運転の停止を許可する。
また、パージガス積算値が非常に大きい(すなわち、図19のステップ126において、ΣP>ΣPthHである)ことのみをもって、キャニスタ63内のベーパ量が比較的少ないと推察することもできるので、図19および図20に示した例において、ベーパ濃度の学習値の大小や吸気積算値の大小に係わらず、パージガス積算値が非常に大きいときに、機関運転の停止を許可するようにしてもよい。
また、吸気積算値に対するパージガス積算値の割合が小さいことをもって、キャニスタ63内のベーパ量が比較的多いと推察することもできるので、図19および図20に示した例において、ベーパ濃度の学習値の大小や吸気積算値の大小やパージガス積算値の大小に係わらず、吸気積算値に対するパージガス積算値の割合が比較的小さいときに、機関運転の停止を禁止するようにしてもよい。また、吸気積算値の大小やパージガス積算値の大小に係わらず、ベーパ濃度の学習値が比較的小さいが吸気積算値に対するパージガス積算値の割合が比較的小さいときに、機関運転の停止を禁止するようにしてもよい。そして、こうした場合、例えば、吸気積算値に対するパージガス積算値の割合が比較的大きくなったときに、機関運転の停止を許可する。
なお、上述した実施形態では、或る条件が成立したときに機関運転の停止を単に禁止してしまっているが、例えば、図17のルーチンのステップ100において、冷却水温Twに関する所定の範囲を狭くしたり、ステップ101の機関回転数Nに関する所定値Nthを小さくしたり等、機関運転が停止せしめられる条件を厳しくするようにしてもよい。これによっても、機関運転が停止せしめられる頻度が少なくなるので、キャニスタ内のベーパ量を早期に少なくすることができる。