(57)【特許請求の範囲】
【請求項１】
内燃機関の燃料を収容する燃料収容手段から発生する蒸発燃料を内燃機関の吸気系にパージするパージ通路と、
前記パージ通路から前記吸気系に導入される蒸発燃料量を、内燃機関の運転状態に応じて制御するパージ制御手段と、
均質燃焼運転と希薄燃焼運転とを内燃機関の運転状態に応じて切り換える燃焼制御手段とを備えた内燃機関において、
前記内燃機関の希薄燃焼運転中に蒸発燃料濃度を検出するか否かを判定する判定手段を更に備え、
前記判定手段により、前記内燃機関の希薄燃焼運転中に蒸発燃料濃度を検出すると判定された場合に、内燃機関を希薄燃焼運転から均質燃焼運転に切り換え、蒸発燃料濃度を均質燃焼運転下で検出することを特徴とする希薄燃焼内燃機関の蒸発燃料濃度検出装置。
【請求項２】
請求項１において、
前記判定手段は、蒸発燃料の状態変化に応じて蒸発燃料濃度を検出するか否かを判定することを特徴とする希薄燃焼内燃機関の蒸発燃料濃度検出装置。
【請求項３】
請求項１又は２において、
前記判定手段は、蒸発燃料濃度が増加していた場合に、蒸発燃料濃度を検出すると判定することを特徴とする希薄燃焼内燃機関の蒸発燃料濃度検出装置。
【請求項４】
内燃機関の燃料を収容する燃料収容手段から発生する蒸発燃料を内燃機関の吸気系にパージするパージ通路と、
前記パージ通路から前記吸気系に導入される蒸発燃料量を、内燃機関の運転状態に応じて制御するパージ制御手段と、
均質燃焼運転と希薄燃焼運転とを内燃機関の運転状態に応じて切り換える燃焼制御手段と、
を備えた内燃機関において、
運転状態により前記内燃機関が希薄燃焼運転から均質燃焼運転に切り換わったとき、蒸発燃料濃度を検出することを特徴とする希薄燃焼内燃機関の蒸発燃料濃度検出装置。
【請求項５】
請求項４において、
前記内燃機関が希薄燃焼運転から均質燃焼運転に切り替わる運転状態は、空燃比をリッチ又は理論空燃比とするリッチスパイクが行われる運転状態であることを特徴とする希薄燃焼内燃機関の蒸発燃料濃度検出装置。
【請求項６】
請求項４において、
前記内燃機関が希薄燃焼運転から均質燃焼運転に切り替わる運転状態は、ブレーキブースターのブレーキ負圧を確保するとき又はリッチスパイクを行うときにスロットル弁を絞る運転状態であることを特徴とする希薄燃焼内燃機関の蒸発燃料濃度検出装置。
【請求項７】
内燃機関の燃料を収容する燃料収容手段から発生する蒸発燃料を内燃機関の吸気系にパージするパージ通路と、
前記パージ通路から前記吸気系に導入される蒸発燃料量を、内燃機関の運転状態に応じて制御するパージ制御手段と、
パージ制御手段により吸気系にパージされる蒸発燃料濃度を検出する濃度学習手段と、
均質燃焼運転と希薄燃焼運転とを内燃機関の運転状態に応じて切り換える燃焼制御手段と、
を備え、
前記濃度学習手段は、前記内燃機関の希薄燃焼運転中に蒸発燃料濃度を学習する必要があるか否かを判定する学習判定手段を有するとともに、
学習判定手段により濃度学習が必要と判定された場合に、内燃機関を希薄燃焼運転から均質燃焼運転に切り換える運転切り換え手段を有し、
蒸発燃料の濃度学習を均質燃焼運転下で行うことを特徴とする希薄燃焼内燃機関の蒸発燃料供給制御装置。
【請求項８】
前記均質燃焼時において、目標空燃比となるように運転制御する目標空燃比制御手段を備え、
前記濃度学習手段は、目標空燃比制御運転下で行うことを特徴とする請求項７記載の希薄燃焼内燃機関の蒸発燃料供給制御装置。
【請求項９】
前記学習判定手段は、蒸発燃料の状態変化を予測し、予測された変化から学習の必要性を判定することを特徴とする請求項７記載の希薄燃焼内燃機関の蒸発燃料供給制御装置。
【請求項１０】
内燃機関の燃料を収容する燃料収容手段から発生する蒸発燃料を内燃機関の吸気系にパージするパージ通路と、
前記パージ通路から前記吸気系に導入される蒸発燃料量を、内燃機関の運転状態に応じて制御するパージ制御手段と、
パージ制御手段により吸気系にパージされる蒸発燃料濃度を検出する濃度学習手段と、
均質燃焼運転と希薄燃焼運転とを内燃機関の運転状態に応じて切り換える燃焼制御手段と、
を備え、
前記濃度学習手段は、運転状態によって希薄燃焼運転から均質燃焼運転に切り換わったとき、蒸発燃料の濃度学習を均質燃焼運転下で行うことを特徴とする希薄燃焼内燃機関の蒸発燃料供給制御装置。
【請求項１１】
前記均質燃焼時において、目標空燃比となるように運転制御する目標空燃比制御手段を備え、
前記濃度学習手段は、目標空燃比制御運転下で行うことを特徴とする請求項１０記載の希薄燃焼内燃機関の蒸発燃料供給制御装置。
【請求項１２】
前記燃焼制御手段は、蒸発燃料濃度に応じて燃料噴射状態を変更することを特徴とする請求項７または１０記載の希薄燃焼内燃機関の蒸発燃料供給制御装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、例えば燃料タンク等で発生する蒸発燃料（ベーパ）を希薄燃焼内燃機関の運転状態に応じて吸気系に供給する希薄燃焼内燃機関の蒸発燃料供給制御装置に関するものである。
【０００２】
【従来の技術】
従来、一般的に使用されているエンジンにおいては、燃料噴射弁からの燃料は吸気ポートに噴射され、燃焼室には予め燃料と空気との均質混合気が供給される。かかるエンジンでは、アクセル操作に連動するスロットル弁によって吸気通路が開閉される。
【０００３】
このスロットル弁の開閉により、エンジンの燃焼室に供給される吸入空気量（結果的には燃料と空気とが均質に混合された気体の量）が調整され、もってエンジン出力が制御される。
【０００４】
しかし、上記のいわゆる均質燃焼による技術では、スロットル弁の絞り動作に伴って大きな吸気負圧が発生し、ポンピングロスが大きくなって効率は低くなる。これに対し、スロットル弁の絞りを小とし、燃焼室に直接燃料を供給することにより、点火プラグの近傍に可燃混合気を存在させ、当該部分の空燃比を高めて、着火性を向上するようにしたいわゆる「成層燃焼」という技術が知られている。かかる技術においては、エンジンの低負荷時には、噴射された燃料が、点火プラグ周りに偏在供給されるとともに、スロットル弁がほぼ全開相当に開かれて成層燃焼が実行される。これにより、ポンピングロスの低減が図られ、燃費の向上が図られる。
【０００５】
上記のような「成層燃焼」を行うことができる内燃機関は、例えば、低負荷から高負荷に変化した時には、成層燃焼、弱成層燃焼、均質リーン、均質燃焼というような燃焼状態を順次とる。
【０００６】
成層燃焼とは先に説明したように、空燃比の低い混合気層が点火プラグの近傍に存在させて、他の部位のガスとの間で層をなす。
弱成層燃焼は、成層燃焼に比較して成層度合いが小さい場合である。
【０００７】
均質リーンは、燃料と空気が均質ではあるが燃料の比率が小さい場合である。
均質燃焼は、燃料と空気が均質に混合されかつ燃料の比率が高い場合である。
【０００８】
また、このような「成層燃焼」が行われる場合や、希薄燃焼が行われる場合には、噴射された燃料の混合気に渦流が形成される場合がある。すなわち、吸気ポートにはスワールコントロールバルブ（ＳＣＶ）が設けられ、該ＳＣＶの開度が調整されることにより、渦流（スワール）の強度が制御される。その結果、少ない燃料供給量でもって燃焼性の向上が図られるのである。
【０００９】
ところで、燃料タンク等からの蒸発燃料（ベーパ）をキャニスタに一時的に蓄え、内燃機関の運転状態に応じて蓄えられていたベーパを吸気系に供給する希薄燃焼内燃機関の蒸発燃料供給制御装置が知られている（特開平４−１９４３５４号公報）。
【００１０】
この技術においては、蒸発燃料吸着用のキャニスタと吸気通路とを連結する蒸発燃料用のパージ通路内には、パージ制御弁が設けられている。そして、エンジンの運転状態に応じて、適切な燃料パージ量（ベーパの吸気通路内への導入量、以下、パージ量という）が得られるように（例えば、機関負荷が大きい場合には、ベーパを供給するように）パージ制御弁が制御される。
【００１１】
一方、内燃機関の排気通路に設けた空燃比センサを用いて空燃比を検出し、機関の空燃比を理論空燃比に一致させるためにフィードバック制御する内燃機関において、燃料噴射弁及び空燃比センサ等の経時劣化による空燃比誤差や、蒸発燃料の濃度変化による空燃比誤差に起因して発生する空燃比の変動を抑制するため、空燃比学習と蒸発燃料濃度学習が行われている。例えば、特開平８−１７７５７２号では両学習が完了していないときは、学習が完了しているときに比べてフィードバック制御の空燃比補正量を大きくすることが記載されている。
【００１２】
【発明が解決しようとする課題】
しかし、従来の内燃機関では、通常排気通路には酸素センサ等の空燃比センサが配設されており、その出力信号に基づいて実際の空燃比が検出され、混合気の空燃比が別途算出された目標空燃比となるよう適宜に燃料噴射量等がフィードバック制御される。この時、蒸発燃料のパージが実行され空燃比がリッチになっても、混合気が目標空燃比となるようにフィードバック制御される。ところが、上記の酸素センサは、目標空燃比（Ａ／Ｆ）が例えば理論空燃比（Ａ／Ｆ＝１４．５）近辺での検出を行うものであり、空燃比がこれよりも大きい希薄燃焼の場合には、パージによる空燃比の変化を精度良く検出することができない。しかも、従来技術の空燃比センサの出力から算出していた蒸発燃料のパージ量を制御するための指標（例えば蒸発燃料濃度）を正確に算出できない。
【００１３】
この理由としては、希薄燃焼状態では空燃比センサの精度が高くないため、希薄燃焼状態での空燃比による濃度学習制御が困難で、パージ量を求めることができないからである。この結果、特に運転中においても、パージカットや高負荷運転によってパージの濃度が変化するため、パージ量（濃度）が不明瞭な状態でパージを実行してしまうと、例えば成層運転時に点火プラグ近傍の可燃混合気が過剰にリッチとなり、失火が発生して燃焼が不安定となるおそれがある。
【００１４】
本発明は、このような点に鑑みてなされたものであって、希薄燃焼内燃機関において、蒸発燃料の濃度を確実に検出することのできる蒸発燃料濃度検出装置を提供すること、また、その装置を利用して蒸発燃料の供給量の算出が悪化することがなく、リッチ失火等を抑制することができる希薄燃焼内燃機関の蒸発燃料供給制御装置を提供することを課題とする。
【００１５】
【課題を解決するための手段】
（１）上記課題を達成するための本発明の第１の特徴点は、内燃機関の燃料を収容する燃料収容手段から発生する蒸発燃料を内燃機関の吸気系にパージするパージ通路と、前記パージ通路から前記吸気系に導入される蒸発燃料量を、内燃機関の運転状態に応じて制御するパージ制御手段と、均質燃焼運転と希薄燃焼運転とを内燃機関の運転状態に応じて切り換える燃焼制御手段とを備えた内燃機関において、前記内燃機関の希薄燃焼運転中に蒸発燃料濃度を検出するか否かを判定する判定手段を更に備え、前記判定手段により、前記内燃機関の希薄燃焼運転中にパージを実行して蒸発燃料濃度を検出すると判定された場合に、内燃機関を希薄燃焼運転から均質燃焼運転に切り換え、蒸発燃料濃度を均質燃焼運転下で検出することを特徴とする希薄燃焼内燃機関の蒸発燃料濃度検出装置である。
（２）本発明の第２の特徴点は、内燃機関の燃料を収容する燃料収容手段から発生する蒸発燃料を内燃機関の吸気系にパージするパージ通路と、前記パージ通路から前記吸気系に導入される蒸発燃料量を、内燃機関の運転状態に応じて制御するパージ制御手段と、均質燃焼運転と希薄燃焼運転とを内燃機関の運転状態に応じて切り換える燃焼制御手段と、を備えた内燃機関において、パージ実行中に運転状態により前記内燃機関が希薄燃焼運転から均質燃焼運転に切り換わったとき、蒸発燃料濃度を検出することを特徴とする希薄燃焼内燃機関の蒸発燃料濃度検出装置である。
（３）本発明の第３の特徴点は、前記（１）の装置の応用であり、内燃機関の燃料を収容する燃料収容手段から発生する蒸発燃料を内燃機関の吸気系にパージするパージ通路と、前記パージ通路から前記吸気系に導入される蒸発燃料量を、内燃機関の運転状態に応じて制御するパージ制御手段と、パージ制御手段により吸気系にパージされる蒸発燃料濃度を検出する濃度学習手段と、均質燃焼運転と希薄燃焼運転とを内燃機関の運転状態に応じて切り換える燃焼制御手段と、を備え、前記濃度学習手段は、前記内燃機関の希薄燃焼運転中にパージを実行して蒸発燃料濃度を学習する必要があるか否かを判定する学習判定手段を有するとともに、学習判定手段により濃度学習が必要と判定された場合に、内燃機関を希薄燃焼運転から均質燃焼運転に切り換える運転切り換え手段を有し、蒸発燃料の濃度学習を均質燃焼運転下で行うことを特徴とする希薄燃焼内燃機関の蒸発燃料供給制御装置である。
【００１６】
濃度学習手段において、蒸発燃料濃度を学習する必要がある場合とは、パージ制御手段により、蒸発燃料量を制御する際の制御量を決定するため、濃度学習をする必要がある場合などである。蒸発燃料量の制御は、最終燃料噴射量を決定し、空燃比制御を行うために必要とされる。
【００１７】
ここで、前記均質燃焼時において、目標空燃比となるように運転制御する目標空燃比制御手段を備え、前記濃度学習手段は、目標空燃比制御運転下で行うようにすることができる。
【００１８】
さらに、前記学習判定手段は、蒸発燃料の状態変化を予測し、予測された変化から学習の必要性を判定するようにすることができる。
蒸発燃料の状態変化とは、蒸発燃料の量や濃度の変化をいい、これらの変化を燃料タンク内圧力、燃料タンク温度、パージカットの有無、エンジン負荷（運転状態）に基づいて予測する。燃料タンク内圧力や燃料タンク温度が高い場合は、蒸発燃料濃度が濃いと予測する。パージカットが有る場合は、カット中に蒸発燃料がパージ通路に蓄積されるので蒸発燃料濃度が濃いと予測する。また、エンジン負荷が高いとタンク温度上昇するのでエンジン負荷が高い場合は蒸発燃料濃度が高いものと予測する。
（４）本発明の第４の特徴点は、前記（２）の特徴点の応用であり、内燃機関の燃料を収容する燃料収容手段から発生する蒸発燃料を内燃機関の吸気系にパージするパージ通路と、前記パージ通路から前記吸気系に導入される蒸発燃料量を、内燃機関の運転状態に応じて制御するパージ制御手段と、パージ制御手段により吸気系にパージされる蒸発燃料濃度を検出する濃度学習手段と、均質燃焼運転と希薄燃焼運転とを内燃機関の運転状態に応じて切り換える燃焼制御手段と、を備え、  前記濃度学習手段は、運転状態によって希薄燃焼運転から均質燃焼運転に切り換わったとき、蒸発燃料の濃度学習を均質燃焼運転下で行うことを特徴とする希薄燃焼内燃機関の蒸発燃料供給制御装置である。
【００１９】
ここで、前記均質燃焼時において、目標空燃比となるように運転制御する目標空燃比制御手段を備え、前記濃度学習手段は、目標空燃比制御運転下で行うようにすることができる。
【００２０】
ここでは、何らかの運転条件により希薄燃焼運転状態から均質燃焼、特に空燃比センサによる目標空燃比制御運転に切り換わった場合に、蒸発燃料濃度を検出して学習する。換言すれば、希薄燃焼時に蒸発燃料濃度を検出することがないので、誤った濃度値を学習してしまうことがない。
【００２１】
前記（３）（４）において、燃焼制御手段は、蒸発燃料濃度に応じて燃料噴射状態を変更するようにすることが可能である。ここで、噴射状態とは、噴射弁の噴射量、噴射時期、噴射方向をいう。
【００２２】
【発明の実施の形態】
以下、本発明の実施の形態を、図面に基づいて詳細に説明する。
【００２３】
＜システム構成概要＞
図１は、本発明に係る筒内噴射型内燃機関の概要を示した図である。図１において、１は、シリンダ２内にピストン３を備えた内燃機関であり、シリンダ２の端面を塞ぐシリンダヘッド４に、２つの吸気ポート５と２つの排気ポート６が設けられている。図１では明確ではないが、第１の吸気ポート５はヘリカル型吸気ポートであり、第２の吸気ポート５はほぼ真っ直ぐに延びるストレートポートである。ヘリカル型吸気ポートへと続く吸気管には、スワールコントロールバルブ７が設けられている。さらに、各排気ポートには、排気弁８がそれぞれ設けられているとともに、排気マニホルド９が接続されている。また、シリンダヘッド４の内壁面の中央部には、点火プラグ１０が配設されている。さらに、各吸気ポート５には第１及び第２の吸気弁１１が設けられ、各吸気弁１１近傍のシリンダヘッド４内壁面周辺部には燃料供給手段としての燃料噴射弁１２が配置されている。すなわち、本実施形態においては、燃料噴射弁１２からの燃料は、直接的にシリンダ内に噴射されるようになっている。そして、周知のように噴射された燃料に点火プラグ１０で点火することで、ピストン３が往復動し、この往復運動がクランクアーム１３を介してクランクシャフト１４を回転させる。そして、その回転角がクランクシャフト１４に設けたクランク角センサ１５で検出されるようになっている。また、シリンダ部分に設けた冷却水通路内の冷却水温度を検出する冷却水温センサ１６が設けられている。
【００２４】
前記吸気弁１１は、可変バルブタイミング機構により制御され、この可変バルブタイミング機構は、エンジン状態に応じて吸気バルブカムシャフトの位相を連続可変制御する。
【００２５】
吸気管５には、吸気脈動を抑制するためのサージタンク１７が設けられ、このサージタンク１７には吸気圧センサ１８が設けられている。また、サージタンク１７の上流側に電子スロットル１９が設けられている。この電子スロットル１９は、アクセルセンサ２０で検出したアクセルペダルの踏み込み量に応じて、コンピュータ２１により開度制御される。さらに、サージタンク１７の吸気負圧はブレーキブースタ２２へと印加され、吸気負圧がブレーキ踏力を補助するようになっている。ブレーキブースタ２２には、ブースタ内圧力を検出する負圧センサ２３が設けられている。
【００２６】
前記排気マニホルド９には、排気ガス中の酸素濃度を検出することで空燃比を検出するための空燃比センサとしての第１の酸素センサ２３が設けられ、その下流側には三元触媒２４が設けられ、さらに排気管２５を介して、ＮＯｘ吸蔵還元型三元触媒２６が設けられている。また、ＮＯx 吸蔵還元型三元触媒２６の下流側には、第２の酸素センサ２７が設けられている。
【００２７】
排気管と吸気管とは、ＥＧＲ管２８で連通され、電磁弁からなるＥＧＲバルブ２９がこのＥＧＲ管２８に介装されている。そして、このＥＧＲバルブの開閉によりＥＧＲ制御を行う。
【００２８】
また、燃料タンク３１に収容された燃料を送る燃料ポンプ３２が設けられ、この燃料ポンプ３２から送られた燃料は高圧燃料ポンプ３３により高圧化されて高圧デリバリパイプを介して燃料噴射弁１２に供給される。高圧デリバリパイプには、燃圧センサ３４が設けられ、燃圧センサ３４で検出した燃料圧力により、燃料の圧送量を補正するようにしている。
【００２９】
さらに、燃料タンク３１から蒸発する燃料（ベーパ）が大気中に逃げるのを防止するキャニスタ３５が設けられている。
キャニスタの構造を図２に従ってさらに詳細に説明する。
【００３０】
キャニスタ３５は、内部に活性炭等の吸着剤が充填されている。また、キャニスタ３５にはパージポート３５ａ、大気ポート３５ｂ、およびタンクポート３５ｃがあり、パージポート３５ａとタンクポート３５ｃとはキャニスタ３５内で中継室３５ｄによって連通されている。キャニスタ３５のタンクポート３５ｃは燃料タンク２１の上底とベーパ捕集管３６で結ばれ、燃料タンク２１から蒸発するベーパを吸着する。キャニスタ３５の大気ボート３５ｂは大気に開放されており、パージポート３５ａはパージ通路３７によりパージ制御弁３８を介して吸気通路のサージタンクに接続されている。パージ制御弁３８は、内燃機関の運転状態に応じて吸気通路に送られるパージベーパ量をデューティ制御する。
【００３１】
ベーパ捕集管３６の途中には、燃料タンク３１内のベーパの圧力が所定圧以上になった時に開くタンク内圧制御弁３９が設けられている。この内圧制御弁３９にはスイッチが取り付けられており、内圧制御弁３９の開閉状況はコンピュータ２１に入力されるようになっている。
【００３２】
図１、図２に示した内燃機関１は、エンジンコンピュータ２１により制御される。このエンジンコンピュータ２１には、クランク角センサ１５、冷却水温センサ１６、吸気圧センサ１８、アクセルセンサ２０（スロットル開度センサ）、ブレーキブースタ用負圧センサ２３、酸素センサ２３、２７、燃圧センサ３４がそれぞれ、Ａ／Ｄ変換器１０１を介して接続され、各センサからの情報が入力されるようになっている。
【００３３】
また、エンジンコンピュータ２１には、スワールコントロールバルブ７、点火プラグ１０に電流を印加するイグニッションコイル、燃料噴射弁１２、可変バルブタイミング機構、電子スロットル１９、ＥＧＲバルブ２９、高圧燃料ポンプ３３、パージ制御弁３８がそれぞれ入出力インターフェィス１０２を介して接続され、これらは、前記各種センサからの情報を基に、前記コンピュータ２１により制御されるようになっている。
【００３４】
なお、燃料噴射弁１２は、入出力インターフェィス１０２に接続された燃料噴射制御回路１１０により駆動制御される。この噴射制御回路１１０は、図示しないが、ダウンカウンタ、フリップフロップ、駆動回路を含む。そして、噴射制御回路１１０では、後述する燃料噴射制御プログラムで算出される燃料噴射量ＴＡＵと燃料噴射時期が噴射制御回路１１０のダウンカウンタにプリセットされるとともに、フリップフロップもセットされ、セットした燃料噴射時期に応じて駆動回路が燃料噴射弁の付勢を開始する。
【００３５】
他方、ダウンカウンタがクロック信号を計測して最後そのキャリアウト端子が”１”レベルになった時、フリップフロップがリセットされて駆動回路が燃料噴射弁１２の付勢を停止する。すなわち、燃料噴射量ＴＡＵだけ燃料噴射弁が付勢され内燃機関の燃料室内に送り込まれる。
【００３６】
クランク角センサ１５からの信号は、燃料噴射時期の割り込み要求信号、点火時期の基準タイミング信号、燃料噴射量演算制御の割り込み要求信号を生成するために使用される。
【００３７】
冷却水温センサ１６からの信号は、エンジンが冷間運転にあるか否か、あるいは、オーバーヒートの判定などに使用される。
吸気圧センサ１８は、吸気管負圧を検出し、この吸気管負圧は吸入空気量を算出するために使用される。なお、吸気管にエアフローメータを設けて吸入空気量を検出するようにしてもよい。
【００３８】
アクセルセンサ２０からは、アクセルペダルの踏み込み量が検出されるが、この踏み込み量に応じて電子スロットルの開閉制御や燃料噴射制御が実行される。ブレーキブースタ用負圧センサ２３はブレーキブースタ内の圧力を検出して、ブレーキ制御等に使用する。
【００３９】
第１及び第２の酸素センサ２３、２７は排気ガス中の酸素成分濃度に応じて電気信号を発生する。第１の酸素センサ２３は実際の空燃比に対応した出力信号を信号処理回路１１１を介してＡ／Ｄ変換器１０１に供給する。第２の酸素センサ２７は空燃比が理論空燃比に対してリッチ側かリーン側かに応じて異なる出力信号を信号処理回路を介してＡ／Ｄ変換器１０１に供給する。
【００４０】
燃圧センサ３４で検出した燃料圧は、運転状況に応じて燃料圧力を最適にする可変燃圧制御に利用する。
前記コンピュータは、前記Ａ／Ｄ変換器１０１、入出力インターフェイス１０２、ＣＰＵ１０３の他に、制御プログラムを記憶したＲＯＭ１０４、演算結果等を書き込むＲＡＭ１０５、データのバックアップを行うバックアップＲＡＭ１０６、コンピュータ２１の演算タイミングを制御するクロック（ＣＬＫ）１０７を備えている。これらはバス１１３で接続されている。
＜コンピュータ上に実現される各種制御手段＞
前記制御プログラムを実行することにより、均質燃焼運転、希薄燃焼運転（成層燃焼運転）等、燃焼状態を制御する燃焼制御手段と、キャニスタに吸着された蒸発燃焼をパージ通路から前記吸気系に導入する際、導入される蒸発燃料量を、内燃機関の運転状態に応じて制御するパージ制御手段と、パージガス中の蒸発燃料濃度を学習する濃度学習手段が実現される。
【００４１】
濃度学習手段は、前記内燃機関の希薄燃焼運転中に蒸発燃料濃度を学習する必要があるか否かを判定する学習判定手段を有する。蒸発燃料濃度を学習する必要がある場合とは、パージ制御手段により、蒸発燃料量を制御する際の制御量を決定するため、濃度学習をする必要がある場合などである。濃度学習が必要な場合とは、パージを実行する場合、パージ再開時に濃度が変化する場合などである。
【００４２】
また、濃度学習手段は、学習判定手段により濃度学習が必要と判定された場合に、内燃機関を希薄燃焼運転から目標空燃比となるように運転制御する目標空燃比制御運転に切り換える運転切換手段を有し、蒸発燃料の濃度学習を目標空燃比制御運転下で行う。
【００４３】
前記学習判定手段は、蒸発燃料の状態変化を予測し、予測された変化から学習の必要性を判定するようにすることができる。
＜本例に係る筒内噴射式内燃機関の運転＞
本件の内燃機関は、図３に示したように、燃焼制御手段により、負荷に応じて、成層燃焼（希薄燃焼）、均質燃焼の制御を行う。
【００４４】
燃焼制御手段は、低〜中回転領域及び低〜中負荷領域では成層燃焼（リーン：希薄燃焼）を行う。また、高回転・高負荷領域では均質燃焼（理論空燃比またはリッチ）を行う。さらに、各燃焼状態には成層燃焼より若干空燃比のリッチな弱成層燃焼、均質燃焼の中でも、理論空燃比及びそれより濃い空燃比で運転を行う本来の均質燃焼と、均質ではあるが本来の均質燃焼よりややリーンである均質希薄燃焼（均質リーン）の燃焼モードを有する。
【００４５】
成層燃焼エンジンでは、軽負荷領域は空気量が多く、また、負荷が変化しても吸入空気量はあまり変化しない。そのため、吸入空気量で負荷の変化を判断することが困難である。そこで、本例のエンジンでは、低・中負荷領域では、図４に示したようなアクセル開度ＡＣＣＰと機関回転数ＮＥのマップから基本燃料噴射量（ＱＡＬＬ）を決定している（Ｔ−Ｊ方式）。一方、高負荷領域及び冷間時、リッチスパイク時、ブレーキ負圧確保制御時には、従来のエンジンと同様に、吸入空気量を吸気管負圧から算出し、吸入空気量と回転数に基づいて燃料噴射量を決定する（Ｄ−Ｊ方式）。Ｄ−Ｊ方式の運転では、理論空燃比を目標値とする空燃比フィードバック制御が行われる。
【００４６】
このような内燃機関において、イグニッションをＯＮにすると、まず、Ｄ−Ｊ方式の運転で暖機運転が開始される。暖機運転では噴射燃料量を増加するいわゆる暖機増量が行われる。暖機増量は冷却水が６０度から７０度となるまで行われる。当初はオープンループ的に単に燃料を増量するのみである。温度がある程度上がって、空燃比センサ（酸素センサ）が活性化すると、空燃比フィードバック制御が開始される。
【００４７】
Ｄ−Ｊ運転開始の後、暖機が完了すると、Ｔ−Ｊ運転の条件が揃うので、低負荷の条件下において、成層燃焼であるＴ−Ｊ運転へと移行する。ここでは、図４のように、アクセル開度ＡＣＣＰとエンジン回転数に応じてマップを選びながら燃料噴射量を選択し、とりわけ、吸入空気量や負荷が大きくなるに従って、成層のマップから、弱成層、均質リーン、均質燃焼のマップへと移行する。同時に噴射タイミングを圧縮行程噴射から吸気行程噴射へと切り換える。ここではＴ−Ｊ運転からＤ−Ｊ運転へと移行する。成層燃焼から均質燃焼への切り換え時には、いわゆる２回噴射という制御を行い、移行の途中でのトルクショックを抑えるようにしている。
【００４８】
Ｄ−Ｊ運転になると、図５に示したような、吸入空気量Ｑｐとエンジン回転数ＮＥからエンジン回転数ＮＥと機関負荷Ｑ／Ｎ（空気吸入量Ｑｐ／回転数ＮＥ）からなる基本燃料噴射量ＴＡＵＢを決定するマップを参照し、さらに触媒の上流側にある空燃比センサ（酸素センサ２３）の信号を拾い、図６に示したように、空燃比センサの信号から空燃比フィードバック補正係数ＦＡＦを生成し、基本燃料噴射量を補正して、フィードバック値である１４．６という理論空燃比に合わせるように制御する。
【００４９】
高負荷から低負荷に変化すると今度は逆の方向でマップを選択して、噴射量を制御し、あるいは噴射タイミングを吸気行程噴射から圧縮行程噴射へと切り換える。
【００５０】
なお、加速した後、アクセルを戻すと燃料カット制御が行われる。燃料をカットした後直ちにリーンにすると、触媒が損傷してしまう。すなわち、高温状態で酸素が入ってしまうと触媒が高温化してしまうので、当初は理論空燃比近傍で運転し、燃料を多く噴射すれば、触媒は冷やされるので、理論空燃比でのフィードバック制御をある程度行った後に徐々に成層運転に戻していく。
【００５１】
成層燃焼ではＮＯｘが多く出るので、これを除去するため、本実施の態様ではＮＯｘ吸蔵還元型触媒２６を排気管に備えている。このＮＯｘ吸蔵還元型触媒２６は、空燃比がリーンの時、ＮＯｘを触媒内に吸蔵し、空燃比をリッチまたは理論空燃比とするリッチスパイク制御を行って、触媒内に吸蔵されたＮＯｘを還元して浄化する。すなわち、成層燃焼が開始された後、ＮＯｘカウンタを加算していき、このＮＯｘカウンタが所定値に達した時点でＮＯｘが飽和状態になったものとみなし、リッチスパイクを行い、空燃比をリッチ状態、例えばＡ／Ｆ＝１２程度にする。ＮＯｘが除去されるとカウンタが０とされ、再度成層燃焼に戻される。
【００５２】
さらに、筒内噴射式内燃機関では、スロットル弁をほぼ全開相当にした状態で運転される。そして、スロットル弁を閉じる場合とは、例えば、ブレーキブースターのブレーキ負圧を確保するときである。また、リッチスパイクを行うときも、Ａ／Ｆ＝約１２という空燃比を得るためスロットル弁をやや絞る。但し、ブレーキ負圧を得る場合など、十分な負圧が確保される場合、必ずしもスロットル弁を絞る必要はない。
【００５３】
以上のような運転中において、パージ制御が並行して行われる。パージ制御の実行条件としては、暖機が完了していること、空燃比フィードバック制御等で使用する、エンジンが持っている固有の学習値、例えば空燃比学習値の演算が完了していること、イグニッションしてから所定時間がたっている等の条件が揃っていることなどである。例えば、これら条件が揃っている場合に、均質燃焼であるＤ−Ｊ運転時にパージ制御を行うというようにする。だたし、キャニスタの容量が限られているので、均質燃焼時だけでは、パージが不十分であり、キャニスタに捕捉しえない蒸発燃料が大気に放出されてしまうおそれがある。そこで、アイドル時等の成層燃焼時にもパージし、可能な限りキャニスタが飽和しないようにして、キャニスタの容量を確保しておく必要がある。
【００５４】
成層燃焼のときパージをすると、元来、基本燃料噴射量が均質燃焼のときより少ない一方、パージされる燃料の量は均質燃焼のときと変わらないので、パージガス中の蒸発燃料量の変動が与える影響は、均質燃焼のときより成層燃焼のときの方が大きい。そこで、成層燃焼のときパージをする場合、燃焼を安定させる制御が必要となる。
【００５５】
パージガス流量は、パージ制御弁の開度と吸気管負圧とでおおよそ算出できるので、パージガス中の蒸発燃焼濃度が一定である限り、蒸発燃料量を算出することは可能である。しかし、蒸発燃料濃度は運転の状態によって変わってくる。例えば、外気の温度、エンジン等の熱により、燃料タンク内の燃料が加熱されることがある。また、燃料が環流するタイプでは、エンジン側で加熱されて燃料タンクに戻って来る燃料により燃料タンク内の燃料温度が上昇する。この結果、蒸発燃料濃度が高くなる。また、パージ制御弁を閉じ、パージを中止することがあるが、すると、キャニスタに蒸発燃料が蓄積され、その濃度が高くなる。このような蓄積後に再度パージ制御弁を開くと、その当初濃度の高いパージガスがキャニスタから流出する。このとき、成層燃焼であると、空燃比Ａ／Ｆ＝１０以下の極めて高いリッチ状態となり、リッチ失火が生じるおそれが生じる。これを避ける方法としては、濃度が濃くなったとき、パージ制御弁の開度を小さくする方法と、燃料噴射量を減らす方法とがある。
【００５６】
そこで、蒸発燃料濃度学習ということが問題となるが、従来では、Ｄ−Ｊ運転のとき空燃比センサの値から、より具体的には内燃機関が理論空燃比で定常的に運転されている時に、パージを実行した場合、ＦＡＦ信号の理論空燃比点からのずれ量をみて、それがリッチになっていれば、そのリッチ分がパージされた燃料量に相当するとみて、その時の吸入空気量から、単位体積あたりの燃料量ということで濃度を検出していた。
【００５７】
これに対し、Ｔ−Ｊ運転下でのパージ制御を行う場合、リーンの領域でも蒸発燃料濃度学習を行う必要が生じるわけであるが、リーン状態では空燃比センサが働かない。すなわち、現状の空燃比センサでは、空燃比が２０以下でないと検出できず、空燃比３０以上の成層燃焼では空燃比センサは働かない。従って、ＦＡＦ信号の生成が不可能となり、パージ濃度の検出・学習が困難となる。
【００５８】
そこで、Ｔ−Ｊ運転下において、パージ濃度学習が必要となった場合に、Ｄ−Ｊ運転に一旦切り換え、濃度学習を行う。
以下、この切り換えによる濃度学習制御について詳細に説明する。
＜Ｄ−Ｊ方式の場合における燃料噴射量（時間）ＴＡＵ の算出と空燃比制御＞まず、濃度学習に先だって、Ｄ−Ｊ方式における燃料噴射制御を説明する。Ｄ−Ｊ方式における燃料噴射量ＴＡＵの計算は以下の式に基づいて行われる。
ＴＡＵ＝ＴＡＵＢ×ＦＷ×（ＦＡＦ＋ＫＧＸ−ＦＰＧ）      ・・・・（１）
この式（１）中、
ＴＡＵＢ：基本燃料噴射量
ＦＷ：基本補正量
ＦＡＦ：空燃比フィードバック補正係数
ＫＧＸ：空燃比学習値
ＦＰＧ：パージ空燃比補正係数（蒸発燃料量補正量）
基本燃料噴射量ＴＡＵＢは、例えば、エンジン負荷Ｑ／Ｎ（Ｑ：空気吸入量、Ｎ：エンジン回転数）に、その負荷に対応する燃料噴射量に換算する換算係数Ｋを掛け合わせたものである。
【００５９】
基本補正量ＴＦＷは、例えば、機関暖機時の暖機増量係数、加速時の加速増量係数、減速時の減量係数等からなる補正量である。
空燃比フィードバック補正係数ＦＡＦは、酸素（空燃比）センサ２３によって検出された空燃比の変動を目標空燃比（例えば理論空燃比）にフィードバック制御するための補正係数である。従って、目標空燃比の混合気が燃焼している場合には、ＦＡＦは１．０となる。図６に酸素センサで検出した空燃比とＦＡＦとの関係を示す。
【００６０】
空燃比学習値ＫＧＸは、機関の固体差や経時変化によって発生する空燃比のずれを学習して燃料噴射量ＴＡＵを補正する補正係数である。
パージ空燃比補正係数（蒸発燃料量補正量）ＦＰＧは、パージガスが吸気管に導入された際の空燃比のずれ補正するための補正係数である。従ってパージが行われていない場合にはＦＰＧ＝０となる。
【００６１】
コンピュータ２１は、酸素センサ２３からの出力信号に基づいて空燃比フィードバック制御を行う。すなわち、酸素センサの出力信号に基づいて空燃比フィードバック補正係数ＦＡＦを算出し、空燃比が目標空燃比（例えば、理論空燃比）となるように燃料噴射時間（燃料噴射量）をフィードバック制御する。
図７は、Ｄ−Ｊ方式下における空燃比制御に係るメインルーチンを示す。
【００６２】
コンピュータ２１は、ステップ３００において空燃比のフィードバック制御を行い、続くステップ４００では空燃比学習値ＫＧＸを求める学習制御を行った後、さらに、ステップ２００で濃度学習手段によりベーパ濃度学習制御を行う。このベーパ濃度学習制御が終了した後、上記した燃料噴射量ＴＡＵの演算が行われる。
《Ｄ−Ｊ運転下における空燃比フィードバック制御》
図８に空燃比フィードバックの詳細を示す。まず、ステップ３０１で、フィードバック条件が成立しているか否かを判定する。フィードバック条件の成立要件は、(1)エンジンが始動時でない、(2)燃料カット中でない、(3)暖機完了後である、(4)空燃比センサの活性化が終了している、の４つである。
【００６３】
ステップ３０１でフィードバック条件が成立していないと判定した場合、ステップ３０２に進み空燃比フィードバック補正量ＦＡＦの平均値ＦＡＦＡＶを基準値１．０とし、続くステップ３０３で空燃比フィードバック補正量ＦＡＦを基準値１．０としてこのルーチンを終了する。
【００６４】
一方、ステップ３０１でフィードバック条件が成立していると判定したときは、ステップ３０４に進み、空燃比（Ａ／Ｆ）が理論空燃比に対してリッチか否か判定する。空燃比がリッチであるときはステップ３０５に進み、リッチフラグＸＯＸが１か０かをみる。リッチフラグＸＯＸは、前回の判定時の空燃比判定結果を示すフラグであり、１が立っていれば前回判定時での空燃比がリッチであり、０であれば、前回空燃比はリーンであったことがわかる。
【００６５】
前回がリーンで今回がリッチに反転した場合、ステップ３０６に進み、スキップフラグＸＳＫＩＰに１を立て（ＸＳＫＩＰ←１）、続くステップ３０７で前回の空燃比フィードバック補正量ＦＡＦと今回の空燃比フィードバック補正量ＦＡＦの平均値ＦＡＦＡＶを算出し、さらに、ステップ３０８で空燃比フィードバック補正量ＦＡＦを所定のスキップ値ＲＳＬだけスキップ的に減量する。
【００６６】
また、ステップ３０５で前回もリッチであると判定した場合はステップ３０９に進み、空燃比フィードバック補正量ＦＡＦを所定の積分値ＫＩＬだけ積分減量する。そして、以上のステップ３０８、３０９が終了した後は、ステップ３１０で前回は空燃比がリッチであったことを示すため、リッチフラグＸＯＸに１を立て、このルーチンを終了する。
【００６７】
前記ステップ３０４で、空燃比がリーンであると判定した場合、ステップ３１１に進み、ここでリッチフラグＸＯＸを参照して空燃比が前回もリーンであったか否かを判定する。
【００６８】
前回がリッチで今回リーンに反転した場合、ステップ３１３に進み、スキップフラグＸＳＫＩＰに１を立て、続くステップ３１４で前回の空燃比フィードバック補正量ＦＡＦと今回の空燃比フィードバック補正量ＦＡＦの平均値ＦＡＦＡＶを算出し、さらに、ステップ３１５で空燃比フィードバック補正量ＦＡＦを所定のスキップ値ＲＳＲだけスキップ的に増量する。
【００６９】
ステップ３１１で前回が今回と同様にリーンであると判定した場合、ステップ３１２に進み、空燃比フィードバック補正量ＦＡＦを所定の積分値ＫＩＲだけ積分増量する。そして、ステップ３１２、３１５が終了した後は、ステップ３１６でリッチフラグＸＯＸに０を立て、前回空燃比がリーンであったことを残し、ルーチンを終了する。上記スキップ値ＲＳＬ、ＲＳＲ、積分値ＫＩＬ、ＫＩＲは予め定めた定数、あるいは、ＮＯｘ吸蔵触媒２６の下流に設けられた第２の酸素センサ２７の出力信号に応じて大きさを変更してもよい。なおＲＳＬ＞＞ＫＩＬ、ＲＳＲ＞＞ＫＩＲの大小関係を有する。
《Ｄ−Ｊ運転下における空燃比学習制御》
以上のようにしてステップ２００における空燃比フィードバック制御が終了すると、ステップ４００に進み、空燃比学習手段によって空燃比学習制御を実行する。
【００７０】
図９で、まず、ステップ４０１では、現在の機関運転状態が予め定められた空燃比学習領域ｔｊのいずれの領域にあるかを算出する。この空燃比学習領域ｔｊは吸気管圧力の大きさで、図１０に示したように、例えばＫＧ１〜ＫＧ７（ｔｊ１〜ｔｊ７）に分けられている。
続くステップ４０２では、前回求めた空燃比学習領域の番号ｊと、今回算出した空燃比学習領域ｔｊとが同じであるか否かを判定する。ステップ４０２での判定が「否」であるとき、ステップ４０３で今回算出した空燃比学習領域ｔｊを前回の空燃比学習領域ｊとして記憶し、続くステップ４０５でスキップカウンタＣＳＫＩＰをクリアしてこのルーチンを終了する。
【００７１】
ステップ４０２で、前回求めた空燃比学習領域の番号ｊと、今回算出した空燃比学習領域ｔｊとが同じであると判定した場合、ステップ４０４に進み、空燃比学習条件が成立しているか否かを判定する。空燃比学習条件の成立要件は、(1)空燃比フィードバック中である、(2)空燃比フィードバック補正量に増量が無い、(3)水温が８０℃以上である、のすべてを満たす場合である。
【００７２】
ステップ４０４で空燃比学習条件が成立していない場合、ステップ４０５に進んでスキップカウンタＣＳＫＩＰをクリアしてこのルーチンを終了する。
空燃比学習条件が成立している場合は、ステップ４０６に進む。ステップ４０６では、スキップフラグＸＳＫＩＰが１か否かを判定し、ＸＳＫＩＰ＝０のときはこのルーチンを終了し、ＸＳＫＩＰ＝１のときはステップ４０７においてスキップフラグＸＳＫＩＰを０にした後に、ステップ４０８でスキップカウンタＣＳＫＩＰをインクリメントする。
【００７３】
続くステップ４０９ではこのスキップカウンタＣＳＫＩＰが所定値ＫＣＫＩＰ、例えば、「３」以上か否かを判定し、ＣＳＫＩＰがＫＣＫＩＰ未満の場合はこのルーチンを終了し、ＣＳＫＩＰがＫＣＫＩＰ以上の場合はステップ４１０に進む。ステップ４１０に進む場合は、同一の空燃比学習領域においてフィードバック制御中であることを示しているので、ここでパージ率ＰＧＲが０すなわちパージ停止中か否かを判定する。
【００７４】
ステップ４１０でパージ率が０でない場合、図７で示したステップ２１１に進むが、パージ率が０の場合は、ステップ４１１に進んで、空燃比フィードバック補正量の平均値ＦＡＦＡＶが所定値（この例では１．０２）以上か否かを判定し、続くステップ４１２では空燃比フィードバック補正量の平均値ＦＡＦＡＶが所定値（この例では０．９８）以下か否かを調べる。すなわち、この例のステップ４１１、４１２は空燃比フィードバック補正量の平均値ＦＡＦＡＶが２％以上ずれているか否かを判定するものである。
【００７５】
ステップ４１１で空燃比フィードバック補正量の平均値ＦＡＦＡＶが２％以上大きいときは、ステップ４１３に進み、この学習領域における学習値ＫＧＪを所定値ｘだけ増大させる。ステップ４１２で空燃比フィードバック補正量の平均値ＦＡＦＡＶが２％以上小さいときは、ステップ４１４へ進み、この学習領域における学習値ＫＧＪを所定値ｘだけ減らす。そして、ステップ４１１、４１２で空燃比フィードバック補正量の平均値ＦＡＦＡＶが±２％未満と判定した場合はステップ４１５に進み、この学習領域における空燃比学習完了フラグＸＫＧＪを立てて、この学習制御ルーチンを完了する。
《Ｄ−Ｊ運転下におけるベーパ濃度学習制御》
ステップ４００の空燃比学習制御が終了すると、今度はステップ２００に進んでベーパ濃度学習制御を行う。図９のステップ４１０において、パージ率ＰＧＲが０でないと判定した場合、図７のステップ２０１に進んで、吸入空気量と蒸発燃料量の比であるパージ率が所定値（ここでは０．５％）以上か否かを判定する。ステップ２０１でパージ率が０．５％以上であると判定した場合、ステップ２０２に進み、空燃比フィードバック補正量の平均値ＦＡＦＡＶが±２％以内か否かを判定する。そして、０．９８＜ＦＡＦＡＶ＜１．０２のときはステップ２０４に進んでベーパ濃度更新値ｔＦＧを０にしてステップ２０５に進み、ＦＡＦＡＶ≦０．９８またはＦＡＦＡＶ≧１．０２のときはステップ２０３に進んで下式
ｔＦＧ←（１−ＦＡＦＡＶ）／（ＰＧＲ×ａ）               ・・・（２）
ａ：定数（ＦＡＦのずれに対してどの程度更新させるかを決めるための定数で通常２程度の値である）
より単位パージ率当たりのベーパ濃度更新値ｔＦＧを求め、ステップ２０５に進む。
【００７６】
ステップ２０５では、ベーパ濃度更新カウンタＣＦＧＰＧを更新してステップ２１０に進む。
一方、ステップ２０１でパージ率ＰＧＲが０．５％未満であると判定した場合、ステップ２０６以降に進み、空燃比フィードバック補正量ＦＡＦのずれが大きいか否かを判定する。ここでは、空燃比のずれを±１０％以内に設定している。すなわち、ステップ２０６では空燃比フィードバック補正量ＦＡＦが１．１より大きいか否かを判定し、続くステップ２０８では空燃比フィードバック補正量ＦＡＦが０．９より小さいか否かを判定する。そしてＦＡＦ＞１．１のときはステップ２０６からステップ２０７に進み、ベーパ濃度更新値ｔＦＧを所定値Ｙだけ減らしてステップ２１０に進む。
【００７７】
また、ＦＡＦ＜０．９のときはステップ２０６からステップ２０８を経てステップ２０９に進み、ベーパ濃度更新値ｔＦＧを所定値Ｙだけ増やしてステップ２１０に進む。さらに、０．９≦ＦＡＦ≦１．１のときはステップ２０６とステップ２０８で共にＮＯとなるので、そのままステップ２１０に進む。このようにパージ率が極めて小さいときには、空燃比フィードバック補正量ＦＡＦの変動量をそのままベーパ濃度ＦＧＰＧの更新値ｔＦＧに反映させるとベーパ濃度ＦＧＰＧの誤差が大きくなる。従って、この場合には空燃比フィードバック補正係数ＦＡＦが１．０に対して大きく変動した場合にのみ一定の小さな更新値Ｙだけ更新する。
【００７８】
ステップ２１０では、ベーパ濃度ＦＧＰＧにベーパ濃度更新値ｔＦＧを加えることによって、ベーパ濃度ＦＧＰＧを更新し、次の燃料噴射量ＴＡＵの演算ルーチンに進む。
【００７９】
ステップ４００の空燃比学習制御においてパージが行われず、パージ率が０の場合、ステップ４００からステップ２１１に進む。ステップ２１１では、エンジンが始動中か否かを判定し、エンジンが始動中でない場合はそのままステップ５００に進むが、エンジンが始動中である場合は、ステップ２１２に進む。ステップ２１２では、ベーパ濃度ＦＧＰＧを基準値１．０に設定するとともに、ベーパ濃度更新カウンタＣＧＰＧをクリアしてステップ２１３に進む。ステップ２１３では、その他の変数に初期値を設定して、図に示したステップ５００に進む。
【００８０】
ステップ５００では、燃料噴射量ＴＡＵの演算を行う（図１１参照）。
まず、ステップ５０１で格納されているデータのエンジン回転速度とエンジン負荷とを基に基本燃料噴射量ＴＡＵＢと各種基本補正量ＦＷを算出する。
【００８１】
そして、続くステップ５０２では現在の吸気管圧力での空燃比学習値ＫＧＸを隣接する学習領域の空燃比学習値ＫＧｊから求める。更にステップ５０３では次の式
ＦＰＧ＝ＦＧＰＧ×ＰＧＲ                    ・・・（３）
により、パージ空燃比補正量ＦＰＧを求める。
【００８２】
最後にステップ５０４によりすでに述べた式（１）に従って燃料噴射量ＴＡＵを演算してメインルーチンを終了する。
＜パージ制御＞
次にパージ制御について図１２を用いて説明する。なお、この制御はＤ−Ｊ運転の制御である。
【００８３】
ステップ６０１でデューティ周期か否かを判定する。デューティ周期とは、パージ制御弁３８をデューティ制御する周期であり、通常１００ｍｓ程度である。ステップ６０１でデューティ周期でないと判定された場合、ステップ６１４に進みパージ制御弁３８の通電終了時刻ＴＤＰＧか否かをＴＤＰＧ＝ＴＩＭＥＲで判定し、ＴＤＰＧ＝ＴＩＭＥＲでないとき、そのままルーチンを終了し、ＴＤＰＧ＝ＴＩＭＥＲのときは、ステップ６１５に進んでパージ制御弁３８への通電を止めてこれをｏｆｆする。
【００８４】
一方、ステップ６０１でデューティ周期であると判定された場合、ステップ６０２に進み、第１のパージ条件が成立しているか否かを判定する。第１のパージ条件は燃料カットを除く空燃比学習条件の成立である。第１のパージ条件が成立していないときは、ステップ６１０に進み、関係するＲＡＭの初期化を行って、ステップ６１１においてデューティ値ＤＰＧとパージ率ＰＧＲをクリアしてステップ６１５に進み、パージ制御弁３８をｏｆｆ（閉弁）する。
【００８５】
ステップ６０２で第１のパージ条件を満たすときは、ステップ６０３に進み、第２のパージ条件が成立しているか否かを判定する。第２のパージ条件は、燃料カットではなく、かつ、学習完了領域にある空燃比学習完了フラグＸＫＧｊ＝１が成立しているときである。第２のパージ条件が成立していないときは、ステップ６１１に進み、デューティ値ＤＰＧとパージ率ＰＧＲをクリアしてステップ６１５に進み、パージ制御弁３８をｏｆｆ（閉弁）する。また、第２のパージ条件が成立しているときは、ステップ６０４に進み、パージ実行タイマをインクリメントし、ステップ６０５においてパージ制御弁３８が全開時のパージ流量ＰＧＱ（図１３（ａ）参照）の吸入空気量ＱＡ比率から、パージ制御弁３８が全開時のパージ率ＰＧ１００を次の式
ＰＧ１００＝（ＰＧＱ／ＱＡ）×１００            ・・・（４）
により演算し、次にステップ６０６において空燃比フィードバック補正量ＦＡＦが±１５％の０．８５＜ＦＡＦ＜１．１５の所定範囲（ＫＦＡＦ８５＜ＦＡＦ＜ＫＦＡＦ１５）内にあるか否かを判定し、当該範囲内にあるときはステップ６０６Ａで目標パージ率ｔＰＧＲを次の式
ｔＰＧＲ＝ＰＧＲ＋ＫＰＧＲｕ                    ・・・（５）
によって増大する。但し、ｔＰＧＲの最大値は図１３（ｂ）に示すＰ％（例えば６％）に制限する、一方、空燃比フィードバック補正量ＦＡＦが所定範囲内にないときは、ステップ６０６Ｂに進み、目標パージ率ｔＰＧＲを次の式
ｔＰＧＲ＝ＰＧＲ−ＫＰＧＲｄ                    ・・・（６）
によって減少させる。但し、ｔＰＧＲの最小値は図１３（ｂ）に示すＳ％（例えば０％）に制限する。このように、目標パージ率ｔＰＧＲをＳ％〜Ｐ％の間に制限するのは、パージによる空燃比の荒れを防止するためである。また、ＫＰＧＲｕ、ＫＰＧＲｄは予め実験で求めた一定値である。
【００８６】
次に、ステップ６０７にパージ制御弁３８の開弁時間であるデューティ値ＤＰＧの値を次の式
ＤＰＧ＝（ｔＰＧＲ／ＰＧ１００）×１００            ・・・（７）
によって算出する。すなわち、パージ制御弁３８の開弁量は、全開パージ率ＰＧ１００に対する目標パージ率ｔＰＧＲの割合に応じて制御される。但し、このデューティ値ＤＰＧの最大値は１００％である。次に、ステップ６０８において実際のパージ率ＰＧＲを次の式
ＰＧＲ＝ＰＧ１００×（ＤＰＧ／１００）              ・・・（８）
によって算出する。この後、ステップ６０９においてデューティ値ＤＰＧを前回の値ＤＰＧ０として記憶し、パージ率ＰＧＲを前回のパージ率ＰＧＲ０として記憶する。
【００８７】
このようにしてパージ制御が終了した後は、ステップ６１２に進み、パージ制御弁３８に通電してこれをｏｎし、続くステップ６１３でパージ制御弁３８の通電終了時刻ＴＤＰＧを演算してこのルーチンを終了する。
＜Ｔ−Ｊ方式の場合における燃料噴射量（時間）の算出方法＞
次に、低・中負荷領域での希薄燃焼時は、Ｔ−Ｊ方式により次の式から燃料噴射量を決定する。
ＱＡＬＬＩＮＪ＝ＱＡＬＬ−ＦＰＧ                  ・・・（９）
ＱＡＬＬＩＮＪ：最終燃料噴射量
ＱＡＬＬ：アクセル開度とエンジン回転数から定められた基本燃料噴射量
ＦＰＧ：パージ空燃比補正係数（蒸発燃料量補正量）
希薄燃焼運転時の最終燃料噴射量もまた、パージ制御手段によって導入される蒸発燃料量に依存する。よって、図１４に示した希薄燃焼運転時のパージ制御に伴う「燃料補正ルーチン」を示すフローチャートに従って、最終燃料噴射量をどのように決定するのかを説明する。なお、最終燃料噴射量ＱＡＬＬＩＮＪは、前記Ｄ−Ｊ方式において式（１）で決定される燃料噴射量ＴＡＵに相当する概念である。
【００８８】
図１４のルーチンは、コンピュータ３０（ＥＣＵ）が所定時間毎の割り込みで実行する。
処理がこのルーチンへ移行すると、ＥＣＵ３０にエンジン回転数ＮＥとアクセル開度ＡＣＣＰが入力される（ステップ６）。次いで、入力されたエンジン回転数とアクセル開度に従って基本的な基本燃料噴射量（ＱＡＬＬ）を計算する（ステップ７）。
【００８９】
すなわち、まず、図示しない、エンジン回転数及びアクセル開度と基本燃料噴射量との相関関係を定めたマップから、当該エンジン回転数とアクセル開度に対応する基本燃料噴射量を補間的に計算する。なお、噴射量マップとして、運転条件あるいは燃焼状態に応じた複数のマップが用意されており、その中から適宜選択されて使用される。
【００９０】
ステップ８では、パージ中であるか否かを判定し、パージ中であれば、ステップ９において、アクセル開度ＡＣＣＰから現在の燃焼状態を判断する。ステップ１０では、各燃焼状態に対応したパージ制御における各種補正係数の値をＲＯＭ３３から読み込む。各種補正係数とは、例えば、パージデューティ更新量ＫＤＰＧＵ及びＫＤＰＧＤなどである。
【００９１】
なお、エンジン１はＥＣＵ３０の制御により、成層燃焼、弱成層燃焼、均質リーン燃焼、及び均質燃焼の各燃焼状態をとることができる。そして、エンジン回転数ＮＥ及びアクセル開度ＡＣＣＰＰに基づいて燃焼状態が成層燃焼である場合には燃焼モードＦＭＯＤＥが「０」に設定され、弱成層燃焼である場合には、燃焼モードＦＭＯＤＥが「１」に設定され、均質リーン燃焼である場合には、燃焼モードＦＭＯＤＥが「２」に設定され、均質燃焼が実行されている場合には燃焼モードＦＭＯＤＥが「３」に設定される。
【００９２】
ステップ２０においては、アイドルスピードコントロール（ＩＳＣ）のフィードバック制御中か否かを判定する。ここでは、別途のＩＳＣ制御ルーチンが実行されているか否かを判定するのである。ＩＳＣ制御ルーチンが実行されていなければ、エンジン回転数ＮＥが安定していないとしてこの判定を「ＮＯ」とし、ステップ６３に移行する。ＩＳＣ制御ルーチンが行われていれば、エンジン回転数ＮＥが安定しているとしてこの判定を「ＹＥＳ」とし、ステップ３０に移行する。
【００９３】
ステップ３０では、エンジンの目標回転数ＮＴと実際のエンジン回転数ＮＥとの偏差ＤＬＮＴを算出する。次いでステップ４０において、偏差ＤＬＮＴが第１の判定値Ａ（ｒｐｍ）よりも小さいか否かを判定する。ステップ４０において、偏差ＤＬＮＴが第１の判定値Ａ未満であると判定された場合、すなわちエンジンが安定して回転しているときには、ステップ５０に移行し、仮要求パージデューティ値ｔＤＰＧを算出する。仮要求パージデューティ値ｔＤＰＧは、前回値（前回の制御ルーチンで得られた最終要求デューティ値）ＤＰＧi-1 に対しパージデューティ更新量ＫＤＰＧＵを加算したものとする。
【００９４】
このパージデューティ更新量ＫＤＰＧＵは、予め実験等により求められたものであり、ＲＯＭ３３に格納されている。次にステップ６０において、最終要求デューティ値ＤＰＧとして前記ステップ５０において算出された仮要求パージデューティ値ｔＤＰＧをセットし、この制御ルーチンを終了する。
【００９５】
又、前記ステップ４０において、偏差ＤＬＮＴが第１の判定値Ａ以上であれば、エンジン回転に変動がありとされ、ステップ７０において、偏差ＤＬＮＴが第２の判定値Ｂ（ｒｐｍ）よりも小さいか否かを判定する。なお、Ａ＜Ｂである。同ステップ７０において、偏差ＤＬＮＴが第２の判定値Ｂを越えていると判定した場合には、ステップ８０に移行し、仮要求パージデューティ値ｔＤＰＧを算出する。仮要求パージデューティ値ｔＤＰＧは、前回値（前回の制御ルーチンで得られた最終要求デューティ値）ＤＰＧi-1 からパージデューティ更新量ＫＤＰＧＤを減算したものとする。このパージデューティ更新量ＫＤＰＧＤは、予め実験等により求められたものであり、ＲＯＭ３３に格納されている。
【００９６】
なお、前記パージデューティ更新量ＫＤＰＧＵ及びＫＤＰＧＤの値は、機関の運転状態あるいは燃焼状態によって異なる値としてもよい。例えば均質燃焼のときは値を大きくし、成層燃焼のときは小さな値とする。これによって、均質燃焼時は大量のパージを導入することが可能となるとともに、成層燃焼時はパージの変化が小さいので燃焼を安定させることができる。また、燃焼の切換時には、パージデューティ更新量ＫＤＰＧＵ及びＫＤＰＧＤをスキップ的に変化させて切換後の燃焼に対応した更新量に変更すれば、切換後の燃焼を安定させることができる。
【００９７】
次にステップ６０において、最終要求デューティ値ＤＰＧとして前記ステップ８０において算出された仮要求パージデューティ値ｔＤＰＧをセットする。
又、前記ステップ７０において、偏差ＤＬＮＴが第２の判定値Ｂ以下であると判定した場合には、ステップ９０に移行し、仮要求パージデューティ値ｔＤＰＧを算出する。仮要求パージデューティ値ｔＤＰＧは、前回値の最終要求デューティ値ＤＰＧi-1 とする。
【００９８】
次いで、ステップ６０に移行して、最終要求デューティ値ＤＰＧとして前記ステップ９０において得られた仮要求パージデューティ値ｔＤＰＧをセットする。
なお、ステップ２０で、ＩＳＣ制御ルーチンが実行されていないとされた場合、すなわち、ＩＳＣがＦ／Ｂ制御中でなく安定していなければ、ＤＰＧとして前回の安定時に一時記憶されたデューティ値ＤＰＧＯを最終要求デューティ値ＤＰＧに代入する（ステップ６３）。
【００９９】
従って、ＥＣＵ３０は、ステップ６０あるいは６３で得た最終要求デューティ値ＤＰＧに基づいて、電磁弁８１をデューティ制御する。
なお、デューティ制御によるパージ制御弁の制御は、後述するパージ実行条件が成立すると、パージ開始時にデューティ比０から立ち上がり、所定の制御に従って、デューティ比の大小制御がなされ、パージ禁止指令が入った時点で、デューティ比が０とされる。
【０１００】
ステップ６０でデューティ比が決定されると、その後、デューティ比から蒸発燃料量補正量が換算される。すなわち、デューティ比により決定されるパージ制御弁の開度と、吸気管負圧等でパージ量が決定するので、この他に後述するパージガス中の蒸発燃量濃度が判明すれば、蒸発燃料量が判明する（ステップ６１）。この蒸発燃料量が内燃機関に供給されるので、ステップ６４では、先の式（９）に従って、予め得た基本燃料噴射量から蒸発燃料量を補正量として差し引くことで、最終的に内燃機関に供給される燃料噴射量を補正する。
【０１０１】
なお、ステップ８で、パージ中でないとされた場合、ステップ６２で蒸発燃料量補正量を０とし、予め得た基本燃料噴射量をそのまま最終燃料噴射量（ＱＡＬＬＩＮＪ）とする。
【０１０２】
その後、別途定めた燃料噴射プログラムに従って燃料噴射を行う。
図１４の「燃料補正ルーチン」においては、ステップ４０において、エンジンの目標回転数ＮＴと実機関回転数であるエンジン回転数ＮＥとの偏差ＤＬＮＴが第１の判定値Ａ未満であれば、目標エンジン回転数ＮＴよりも実回転数ＮＥが小さいため、パージ量を増やすべく、仮要求パージデューティ値ｔＤＰＧを、前回値（前回の制御ルーチンで得られた最終要求デューティ値）ＤＰＧi-1 に対しパージデューティ更新量ＫＤＰＧＵを加算し、仮要求パージデューティ値ｔＤＰＧとする。この仮要求パージデューティ値ｔＤＰＧを最終要求デューティ値ＤＰＧとして、電磁弁８１を制御することになる。この結果、蒸発燃料のパージ量が多くなり、エンジン回転数が上昇する。
【０１０３】
又、図１４の「パージ制御ルーチン」においては、ステップ７０において、エンジンの目標回転数ＮＴと実回転数であるエンジン回転数ＮＥとの偏差ＤＬＮＴが第２の判定値Ｂを越えていれば、目標エンジン回転数ＮＴよりも実回転数ＮＥが大きいため、パージ量を減らすべく、要求デューティ値ｔＤＰＧを、前回値（前回の制御ルーチンで得られた最終要求デューティ値）ＤＰＧi-1 からパージデューティ更新量ＫＤＰＧＵを減算した値とする（ステップ８０）。そして、この仮要求パージデューティ値ｔＤＰＧを最終要求デューティ値ＤＰＧとする。この結果、蒸発燃料のパージ量が少なくなる。このため、エンジン回転数は減少する。
【０１０４】
さらに、図１４の「燃料補正ルーチン」においては、エンジンの目標回転数ＮＴと実回転数であるエンジン回転数ＮＥとの偏差ＤＬＮＴが第１の判定値Ａ以上であって、第２の判定値Ｂ以下であれば、ステップ９０において、仮要求パージデューティ値ｔＤＰＧを前回値の最終要求デューティ値ＤＰＧとする。そして、この仮要求パージデューティ値ｔＤＰＧを最終要求デューティ値ＤＰＧとする。この結果、偏差ＤＬＮＴが上記範囲内にある場合には、蒸発燃料のパージ量は一定値とされる。
【０１０５】
なお、筒内直接噴射型の内燃機関において、パージ実行条件は、暖機完了、すなわち冷却水温が所定温度以上に上がった後の他、クランキングが完了して所定時間、例えば３０秒が経過した後である。
《Ｔ−Ｊ運転下におけるベーパ濃度学習制御》
前記したようにステップ６１において、パージガス中の蒸発燃量濃度（ベーパ濃度）が判明すれば、蒸発燃料量が判明する。よって、Ｔ−Ｊ方式の運転においても、ベーパ濃度学習制御が必要となる。
【０１０６】
ここで、パージガス中の蒸発燃料濃度の算出と基本燃料噴射量との関係について説明する。
パージガス中の蒸発燃料濃度は、燃料噴射量の算出に必要なＦＰＧの算出に必要である。そして、ＦＰＧの算出は、上記したＤ−Ｊ方式の場合と、Ｔ−Ｊ方式の場合の双方における燃料噴射量の算出に必要である。
【０１０７】
ところで、希薄燃焼時には、空燃比センサが正確に作用しないので、本実施態様では濃度学習が必要になった時、Ｄ−Ｊ運転、すなわち理論空燃比を目標空燃比とする均質燃焼に一時的に変更し、蒸発燃料濃度を検出・学習し、その学習が完了したら、Ｔ−Ｊ運転に戻して、基本燃料噴射量を算出する。
すなわち、図１５に示したように、まず、エンジンが成層燃焼（希薄燃焼）運転中か否かを判定する（ステップ１）。成層運転中でなければ、空燃比が１４．５か否か、すなわち、理論空燃比を目標とする空燃比フィードバック制御運転（Ｄ−Ｊ運転）か否か判定され（ステップ２）、Ｄ−Ｊ運転であれば、前述した空燃比フィードバック補正係数ＦＡＦよりパージ濃度学習を行い（ステップ３）、Ｄ−Ｊ運転でなければ、処理をそのまま終了する。
【０１０８】
ステップ１で成層燃焼運転中であるとされた場合は、運転状態からパージ濃度が増加しているか否かが判断される（ステップ４）。すなわち、運転状態として、蒸発燃料の状態変化（蒸発燃料の量や濃度の変化）を燃料タンク内圧力、燃料タンク温度、パージカットの有無、エンジン負荷（運転状態）に基づいて予測する。燃料タンク内圧力や燃料タンク温度が高い場合は、蒸発燃料濃度が濃いと予測する。パージカットが有る場合は、カット中に蒸発燃料が蓄積されるので蒸発燃料濃度が濃いと予測する。また、エンジン負荷が高いとタンク温度上昇するのでエンジン負荷が高い場合は蒸発燃料濃度が高いものと予測する。
【０１０９】
ここでパージ濃度が増加していると予測されたのであれば、スロットル弁の開度を閉じる方向に制御するスロットルとじ込み制御をし（ステップ５）、Ｄ−Ｊ運転へと切り換える。
【０１１０】
その後、ステップ６では、前述したＤ−Ｊ運転における空燃比フィードバック補正係数ＦＡＦよりパージ濃度の再学習を行う。そして、学習が完了したら（ステップ７）、成層運転（希薄燃焼運転）に戻し（ステップ８）、処理を終了する。
【０１１１】
一方前記ステップ４でパージ濃度が増加していなかった場合、あるいは小さい場合は、Ｄ−Ｊ域での前回学習した濃度学習値を用いてパージ制御を行う（ステップ９）。
【０１１２】
以下、Ｔ−Ｊ運転中にＤ−Ｊ運転に切り換えてパージ濃度学習制御をする方法を図１６のフローチャートに従い、さらに詳細に説明する。
図１６に示したフローチャートは所定時間間隔の割り込みで実行される。
【０１１３】
まず、ステップ１０１で、燃焼モード（ｎｍｏｄｅ）が６（Ｄ−Ｊ方式）であるか否かが判定される。
燃焼モードがＤ−Ｊ方式である場合、ステップ１０２でパージ制御弁制御デューティ値ＤＰＧが０か否か判定する。ＤＰＧは、パージ制御弁の開度を決定するもので、０のときは、開度は０である。ＤＰＧが０であるとき、ステップ１０３へ進み、蒸発燃料量補正量ＦＰＧを０とする。すなわち、式（９）に従って燃料噴射弁から噴射される最終燃料噴射量が決定されるが、ＤＰＧ＝０に伴い、供給される蒸発燃料量がなくなるので、ＦＰＧも０にして、基本燃料噴射量の値を最終燃料噴射量とするのである。
【０１１４】
その後、ステップ１０４でアイドル時の空燃比フィードバック補正量ＦＡＦＩＤＬに空燃比フィードバック補正量平均値ＦＡＦＡＶＥを代入する。
ステップ１０２でＤＰＧが０でない場合、ステップ１０５で、パージ量Qapg（空気と蒸発燃料双方を含む）をＤＰＧ、Ｐｍ、Ｐａから所定のマップにより算出する。Ｐｍは吸気管負圧であり、Ｐａは大気圧である。
【０１１５】
次いで、ステップ１０６で、ＫＰＧ＝ＦＡＦＩＤＬ-ＦＡＦＡＶＥを算出する。
ＫＰＧはベーパ濃度学習値である。
【０１１６】
さらに、ステップ１０７で、パージ中のエバポ量（蒸発燃料量）ＱＦＰＧ＝ＱＡＬＬ＊ＫＰＧを算出する。ここで、ＱＡＬＬは基本燃料噴射量である。
次いで、ステップ１０８で、ＫＦＰＧ＝ＱＦＰＧ／ＱＡＰＧを求める。すなわち、パージ量に対する蒸発燃料量の比率（蒸発燃料濃度）ＫＦＰＧを求める。
【０１１７】
ステップ１０１で、燃焼モードが６でない場合、ステップ１０９でスロットル閉じ込み量trtc(i)が０であるか否か判定される。
trtc(i)が０である場合、ステップ１１１でパージ量ＱＡＰＧをＤＰＧ、Ｐｍ、Ｐａから算出する。さらに、ステップ１１２で、パージ中のエバポ量（蒸発燃料量）ＱＦＰＧ＝ＱＡＰＧ＊ＫＦＰＧを算出する。
【０１１８】
次いで、ステップ１１３で、エンジン回転数ＮＥが目標回転数ＮＴ＋Ｃ１より大きいか否か判定される。エンジン回転数ＮＥが目標回転数ＮＴ＋Ｃ１より大きいとき、ステップ１１４で、エンジン回転数ＮＥが目標回転数ＮＴ＋Ｃ４より小さいか否か判定される。ここで、ＮＴ＋Ｃ１＜ＮＴ＋Ｃ４である。ステップ１１４でエンジン回転数ＮＥが目標回転数ＮＴ＋Ｃ４より小さい場合、ステップ１１５でＦＰＧ(i)＝ＦＰＧ(i-1)＋Cfが算出される。
ＦＰＧ(i)は今回のＦＰＧであり、ＦＰＧ(i-1)は前回のＦＰＧであり、Cfは所定の更新量である。
【０１１９】
次いで、ステップ１１６にて、ＦＰＧＦ＝ＦＰＧ(i)＋ＱＦＰＧが算出される。ＦＰＧＦは最終パージ中燃料量であり、ＦＰＧ(i)にＱＦＰＧ（パージ中蒸発燃料量）を加えたものである。
【０１２０】
ステップ１１４で、エンジン回転数ＮＥが目標回転数ＮＴ＋Ｃ４より小さくないと判定された場合、ステップ１１７でＤＰＧ(i)=ＤＰＧ(i-1)-Cdが算出される。
ＤＰＧ(i)は今回ＤＰＧであり、ＤＰＧ(i-1)は前回ＤＰＧであり、Cdは所定の更新量である。
【０１２１】
次いで、ステップ１１８で、ＦＰＧＦ＝ＦＰＧ(i-1)＋ＱＦＰＧが算出される。
前記ステップ１１３で、エンジン回転数ＮＥが目標回転数ＮＴ＋Ｃ１より大きくない場合、ステップ１１９で、エンジン回転数ＮＥが目標回転数ＮＴ＋Ｃ２より小さいか否か判定される。ここで、ＮＴ＋Ｃ２＜ＮＴ＋Ｃ１である。エンジン回転数ＮＥが目標回転数ＮＴ＋Ｃ２より小さくない場合、処理は終了する。エンジン回転数ＮＥが目標回転数ＮＴ＋Ｃ２より小さい場合、さらに、ステップ１２０でエンジン回転数ＮＥが目標回転数ＮＴ−Ｃ３より大きいか否かが判定される。ここで、ＮＴ−Ｃ３＜ＮＴ＋Ｃ２である。
【０１２２】
エンジン回転数ＮＥが目標回転数ＮＴ−Ｃ３より大きい場合、ステップ１２１でＤＰＧ(i)=ＤＰＧ(i-1)＋Cdが算出される。その後、ステップ１２２でＦＰＧＦ＝ＦＰＧ(i-1)＋ＱＦＰＧが算出され、処理が終了する。
【０１２３】
ステップ１２０でエンジン回転数ＮＥが目標回転数ＮＴ−Ｃ３より大きくない場合、ステップ１２３でＦＰＧ(i)＝ＦＰＧ(i-1)-Cfが算出され、ステップ１１６へ移行して、ＦＰＧＦ＝ＦＰＧ(i)＋ＱＦＰＧが算出され、処理が終了する。なお、学習した蒸発燃料濃度に応じて、燃料噴射量を補正するだけでなく、蒸発燃料濃度に応じて燃料噴射状態を変更するようにするようにすることも可能である。ここで、噴射状態とは、噴射弁の噴射量、噴射時期、噴射方向をいう。
＜第２の実施形態＞
上記したように、本例に係る筒内噴射式内燃機関では、リッチスパイク時やブレーキ負圧の確保時に、均質燃焼に切り換えている。従って、その機会を捕らえて、パージをして濃度学習も行うようにすると、その学習値を成層燃焼時のパージ制御に利用することができる。
【０１２４】
先の実施形態で、内燃機関の燃料を収容する燃料収容手段から発生する蒸発燃料を内燃機関の吸気系にパージするパージ通路と、前記パージ通路から前記吸気系に導入される蒸発燃料量を、内燃機関の運転状態に応じて制御するパージ制御手段と、均質燃焼運転と希薄燃焼運転とを内燃機関の運転状態に応じて切り換える燃焼制御手段とを備えた内燃機関を具体的に説明したが、このような内燃機関において、運転状態により前記内燃機関が希薄燃焼運転から均質燃焼運転に切り換わったとき、蒸発燃料濃度を検出する。
【０１２５】
すなわち、リッチスパイク時や、ブレーキ負圧確保のためのスロットル閉じ込み制御時において、成層燃焼であるＴ−Ｊ運転から、Ｄ−Ｊ運転での目標空燃比フィードバック制御運転に切り換わるが、そのような場合、先の実施形態と同様に、蒸発燃料濃度学習を行う。そして、その学習値を次のＴ−Ｊ運転時に使用して燃料噴射量の補正や、燃料噴射状態の変更制御を行う。
【０１２６】
なお、この他に、本発明は、吸気管に燃料を噴射するポート噴射式の希薄燃焼内燃機関にも適用可能である。
【０１２７】
【発明の効果】
以上詳述したように、本発明によれば、内燃機関の希薄燃焼運転中に蒸発燃料濃度を検出するにあたり、内燃機関を希薄燃焼運転から均質燃焼運転に切り換え、蒸発燃料濃度を均質燃焼運転下で検出するようにしたので、蒸発燃料濃度を確実に検出し、これを機関の運転制御に利用できるので、リッチ失火等を防止することができる。
【０１２８】
また、リッチスパイク制御やブレーキブースタ負圧確保のためのスロットル閉じ込み制御などのように、運転状態により前記内燃機関が希薄燃焼運転から均質燃焼運転に切り換わる機会をとらえて、蒸発燃料濃度を検出するようにし、その検出値を機関の運転制御に利用する場合は、わざわざ濃度検出のために均質運転に切り換えないので、本来の制御に集中できることとなる。
【図面の簡単な説明】
【図１】本発明に係る筒内噴射式希薄燃焼内燃機関の基本構成を示す概念図
【図２】本発明に係る内燃機関の基本構成を示す第２の概念図
【図３】エンジン回転数及びトルクと燃焼方法との関係を示す図
【図４】Ｔ−Ｊ方式における基本燃焼噴射量ＱＡＬＬを定めたマップ
【図５】Ｄ−Ｊ方式における基本燃焼噴射量ＴＡＵＢを定めたマップ
【図６】空燃比フィードバック制御における酸素センサの検出値とＦＡＦ信号との関係を示すグラフ図
【図７】ベーパ濃度学習制御を含む空燃比制御のフローチャート図
【図８】空燃比フィードバック制御を示すフローチャート図
【図９】空燃比学習制御を示すフローチャート図
【図１０】区分された空燃比学習領域ｔｊを示す図
【図１１】空燃比学習制御を示すフローチャート図
【図１２】パージ制御を示すフローチャート図
【図１３】（ａ）は吸気マニホルド負圧に対するパージ流量特性を示すグラフ図であり、（ｂ）はパージ実行時間に対する最大目標パージ率の関係を示すグラフ図
【図１４】Ｔ−Ｊ希薄燃焼時の蒸発燃料補正ルーチンを示すフローチャート図
【図１５】本発明による希薄燃焼時における濃度学習のための切り換え操作を示すフローチャート図
【図１６】図１５をさらに詳細に説明するフローチャート図
【符号の説明】
１・・・・筒内噴射式希薄燃焼内燃機関
２・・・・シリンダ
３・・・・ピストン
４・・・・シリンダヘッド
５・・・・吸気ポート
６・・・・排気ポート
７・・・・スワールコントロールバルブ
８・・・・排気弁
９・・・・排気マニホルド
１０・・・点火プラグ
１１・・・吸気弁
１２・・・燃料噴射弁
１３・・・クランクアーム
１４・・・クランクシャフト
１５・・・クランク角センサ
１６・・・冷却水温センサ
１７・・・サージタンク
１８・・・吸気圧センサ
１９・・・電子スロットル
２０・・・アクセルセンサ
２１・・・コンピュータ
２２・・・ブレーキブースタ
２３・・・負圧センサ
２４・・・空燃比センサ（第１の酸素センサ）
２４・・・三元触媒
２５・・・排気管
２６・・・ＮＯｘ吸蔵還元型三元触媒
２７・・・第２の酸素センサ
２８・・・ＥＧＲ管
２９・・・ＥＧＲバルブ
３１・・・燃料タンク
３２・・・燃料ポンプ
３３・・・高圧燃料ポンプ
３４・・・燃圧センサ
３５・・・キャニスタ
３５ａ・・パージポート
３５ｂ・・大気ポート
３５ｃ・・タンクポート
３５ｄ・・中継室
３６・・・ベーパ捕集管
３７・・・パージ通路
３８・・・パージ制御弁
３９・・・タンク内圧制御弁
１０１・・Ａ／Ｄ変換器
１０２・・入出力インタフェース
１０３・・ＣＰＵ
１０４・・ＲＯＭ
１０５・・ＲＡＭ
１０６・・バックアップＲＡＭ
１０７・・クロック（ＣＬＫ）
１１０・・燃料噴射制御回路
１１３・・バス
【図１】
0003861446.tif 000002
【図２】
0003861446.tif 000003
【図３】
0003861446.tif 000004
【図４】
0003861446.tif 000005
【図５】
0003861446.tif 000006
【図６】
0003861446.tif 000007
【図７】
0003861446.tif 000008
【図８】
0003861446.tif 000009
【図９】
0003861446.tif 000010
【図１０】
0003861446.tif 000011
【図１１】
0003861446.tif 000012
【図１２】
0003861446.tif 000013
【図１３】
0003861446.tif 000014
【図１４】
0003861446.tif 000015
【図１５】
0003861446.tif 000016
【図１６】
0003861446.tif 000017