(57)【特許請求の範囲】
【請求項１】
酸素過剰状態の混合気を燃焼可能な希薄燃焼内燃機関と、前記希薄燃焼内燃機関の運転状態を検出する機関運転状態検出手段と、前記希薄燃焼内燃機関に併設される燃料タンク内で発生した蒸発燃料を前記希薄燃焼内燃機関の吸気系に導くパージ通路と、蒸発燃料のパージを実行する際に、機関運転状態に応じて定められる流量制御値に基づいて前記パージ通路内の蒸発燃料流量を調節する流量制御手段と、機関運転状態に応じて前記希薄燃焼内燃機関の燃料噴射量を調節する燃料噴射量制御手段とを備える希薄燃焼内燃機関の蒸発燃料処理装置であって、蒸発燃料のパージ実行時における燃料噴射量を補正すべく、所定の更新量で更新される燃料噴射補正量を算出する燃料噴射補正量算出手段と、前記希薄燃焼内燃機関の目標回転数と実際の回転数との偏差に応じて前記燃料噴射補正量の更新量を変更する燃料噴射更新量変更手段と、を備えることを特徴とする希薄燃焼内燃機関の蒸発燃料処理装置。
【請求項２】
酸素過剰状態の混合気を燃焼可能な希薄燃焼内燃機関と、前記希薄燃焼内燃機関の運転状態を検出する機関運転状態検出手段と、前記希薄燃焼内燃機関に併設される燃料タンク内で発生した蒸発燃料を前記希薄燃焼内燃機関の吸気系に導くパージ通路と、蒸発燃料のパージを実行する際に、機関運転状態に応じて定められる流量制御値に基づいて前記パージ通路内の蒸発燃料流量を調節する流量制御手段と、機関運転状態に応じて前記希薄燃焼内燃機関の燃料噴射量を調節する燃料噴射量制御手段とを備える希薄燃焼内燃機関の蒸発燃料処理装置であって、パージ実行時における燃料噴射量を補正するための燃料噴射補正量を算出する燃料噴射補正量算出手段と、前記燃料噴射補正量が所定値未満のときは、前記流量制御値が所定の上限ガード値より大きくならないよう制限する流量制御値制限手段と、を備えることを特徴とする希薄燃焼内燃機関の蒸発燃料処理装置。
【請求項３】
前記上限ガード値は、前記希薄燃焼内燃機関の燃焼状態と燃料温度と燃料性状と給油燃料量との中から選択される少なくとも一つをパラメータとして決定されることを特徴とする請求項２記載の希薄燃焼内燃機関の蒸発燃料処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、内燃機関に併設される燃料タンク内で発生した蒸発燃料を処理する技術に関し、特に希薄燃焼内燃機関における蒸発燃料処理技術に関する。
【０００２】
【従来の技術】
自動車等に搭載される内燃機関では、燃料消費量の低減を図るべく、理論空燃比より高い空燃比の混合気（酸素過剰状態の混合気）を燃焼可能な希薄燃焼内燃機関の開発が進められている。このような希薄燃焼内燃機関としては、その噴孔が燃焼室内に臨むよう燃料噴射弁が取り付けられた筒内噴射式の内燃機関が知られている。
【０００３】
筒内噴射式内燃機関は、低負荷運転領域では、吸気行程において燃焼室内に新気を導入し、続く圧縮行程において燃料噴射弁から燃料を噴射し、点火栓の近傍のみに可燃な混合気を形成する。つまり、燃焼室内の混合気は、点火栓近傍が可燃混合気層となり、それ以外の領域が空気層となる、いわゆる成層化状態となる。成層化された混合気は、点火栓近傍の可燃混合気層を着火源として燃焼される。
【０００４】
また、筒内噴射式内燃機関は、中負荷運転領域では、吸気行程において燃焼室内に新気を導入すると同時に、燃料噴射弁から燃料を噴射する。その際、燃料噴射弁から噴射される燃料量は、燃料の量に対する新気の量が理論空燃比より高くなる量である。この場合、燃焼室内の略全域にわたって、燃料と新気とが均質に混ざり合ったリーン混合気が形成される。
【０００５】
続いて、筒内噴射式内燃機関は、高負荷運転領域では、吸気行程において燃焼室内に新気を導入すると同時に、燃料噴射弁から燃料を噴射する。その際、燃料噴射弁から噴射される燃料量は、燃料の量に対する新気の量が略理論空燃比となる量である。この場合、燃焼室内の全域にわたって、燃料と新気とが均質に混ざり合ったストイキ混合気が形成される。
【０００６】
このように筒内噴射式内燃機関は、低中負荷運転領域において希薄燃焼を実現することができるので、燃料消費量を大幅に軽減することができる。
【０００７】
一方、内燃機関には、燃料タンク等で発生した蒸発燃料を処理する蒸発燃料処理装置が併設されている。この蒸発燃料処理装置は、燃料タンクで発生した蒸発燃料を一旦貯留するチャコールキャニスタと、チャコールキャニスタ内に大気を導入する大気導入通路と、スロットル弁下流の吸気通路内で発生する吸気管負圧をチャコールキャニスタ内へ導入する負圧導入通路と、負圧導入通路内の流量を調節する流量制御弁とから構成される。
【０００８】
このように構成された蒸発燃料処理装置では、流量制御弁が閉弁されているときに、燃料タンク内で発生した蒸発燃料がチャコールキャニスタに内装される活性炭等の吸着剤に吸着される。そして、流量制御弁が開弁されると、吸気通路内で発生する吸気管負圧が負圧導入通路を介してチャコールキャニスタに印加される。これにより、チャコールキャニスタ内には、大気導入通路を介して大気が吸い込まれる。チャコールキャニスタ内に吸い込まれた大気は、負圧導入通路を介して吸気通路内に吸い込まれる。このように、流量制御弁が開弁されると、チャコールキャニスタを貫流する大気の流れが発生する。
【０００９】
上記した大気の貫流により吸着剤に吸着されていた蒸発燃料が脱離され、大気とともに吸気通路へ導かれる。吸気通路へ導かれた蒸発燃料及び大気（以下、パージ通路から吸気通路へ導入される蒸発燃料及び大気をパージガスと称する）は、吸気通路上流からの新気と混ざり合いながら内燃機関の燃焼室へ導入され、燃料噴射弁から噴射される燃料とともに燃焼及び処理される。
【００１０】
一方、蒸発燃料のパージが行われた場合、内燃機関の燃焼室には、燃料噴射弁から噴射された燃料と蒸発燃料処理装置によりパージされた蒸発燃料とが供給されることになり、混合気の空燃比が変動する。このため、蒸発燃料処理装置を備えた内燃機関では、パージされる蒸発燃料量に応じて燃料噴射量を補正し、空燃比の変動を抑制する必要がある。
【００１１】
このような要求に対し、特開平８−１７７５７２号公報に記載された内燃機関の空燃比制御装置が知られている。この空燃比制御装置は、排気系に取り付けられた酸素センサの検出信号に基づいて空燃比を理論空燃比とすべくフィードバック制御するとともに、酸素センサや燃料噴射弁固有の誤差を補正する空燃比学習制御、及びパージガス中の蒸発燃料濃度を算出するパージ濃度学習制御を行う装置において、空燃比学習制御とパージ濃度学習制御との少なくとも一方が完了している場合は、空燃比学習制御及びパージ濃度学習制御が完了していない場合に比べ、空燃比補正量を小さくし、蒸発燃料のパージによる空燃比の変動を抑制しようとするものである。
【００１２】
【発明が解決しようとする課題】
ところで、筒内噴射式の内燃機関のように酸素過剰状態の混合気を燃焼可能な内燃機関においては、酸素過剰状態の混合気の燃焼が行われているときは、酸素センサが排気ガス中の酸素濃度を正確に検出することができない。このため、排気の空燃比を正確に判定することができず、パージ濃度学習制御を行うことが困難となる。特に、筒内噴射式内燃機関で成層燃焼（希薄燃焼）が行われているときにパージガス中の燃料濃度が濃くなると、可燃混合気層に過剰な燃料が含まれることになり、失火等を生じ、機関運転状態が悪化する虞がある。
【００１３】
本発明は、上記したような問題点に鑑みてなされたものであり、酸素過剰状態の混合気の燃焼を行える希薄燃焼内燃機関において、蒸発燃料のパージ量と燃料噴射量とを適切に制御することができる技術を提供することにより、蒸発燃料のパージに起因した機関運転状態の悪化を防止することを目的とする。
【００１４】
【課題を解決するための手段】
本発明は、上記課題を解決するために以下のような手段を採用した。すなわち、本発明に係る希薄燃焼内燃機関の蒸発燃料処理装置は、酸素過剰状態の混合気を燃焼可能な希薄燃焼内燃機関と、
前記希薄燃焼内燃機関の運転状態を検出する機関運転状態検出手段と、
前記希薄燃焼内燃機関に併設される燃料タンク内で発生した蒸発燃料を前記希薄燃焼内燃機関の吸気系に導くパージ通路と、
蒸発燃料のパージを実行する際に、機関運転状態に応じて定められる流量制御値に基づいて前記パージ通路内の蒸発燃料流量を調節する流量制御手段と、
機関運転状態に応じて前記希薄燃焼内燃機関の燃料噴射量を調節する燃料噴射量制御手段とを備える希薄燃焼内燃機関の蒸発燃料処理装置であって、
蒸発燃料のパージ実行時における燃料噴射量を補正すべく、所定の更新量で更新される燃料噴射補正量を算出する燃料噴射補正量算出手段と、
前記流量制御値の大きさに応じて前記燃料噴射補正量の更新量を変更する燃料噴射更新量変更手段と、
を備えることを特徴とする。
【００１５】
このように構成された蒸発燃料処理装置では、蒸発燃料のパージを実行する際に、流量制御手段が機関運転状態に応じて流量制御値を決定する。
【００１６】
一方、燃料噴射補正量算出手段は、希薄燃焼内燃機関に過剰な燃料が供給されるのを防止すべく、つまり燃料噴射量を減少させるべく、燃料噴射量の補正量を算出する。この燃料噴射補正量は、所定の更新量で更新される量であり、前記更新量は、燃料噴射更新量変更手段がパージ通路の流量を燃料噴射量に反映させるべく、流量制御手段により決定された流量制御値の大きさに応じて変更する量である。
【００１７】
そして、燃料噴射量制御手段は、燃料噴射補正量算出手段により算出された燃料噴射補正量に従って燃料噴射量を調節する。
【００１８】
この場合、燃料噴射量は、パージ通路の流量に応じて補正されることになり、希薄燃焼内燃機関の運転状態の変化に影響されることがない。
【００１９】
また、本発明に係る蒸発燃料処理装置は、酸素過剰状態の混合気を燃焼可能な希薄燃焼内燃機関と、
前記希薄燃焼内燃機関の運転状態を検出する機関運転状態検出手段と、
前記希薄燃焼内燃機関に併設される燃料タンク内で発生した蒸発燃料を前記希薄燃焼内燃機関の吸気系に導くパージ通路と、
蒸発燃料のパージを実行する際に、機関運転状態に応じて定められる流量制御値に基づいて前記パージ通路内の蒸発燃料流量を調節する流量制御手段と、
機関運転状態に応じて前記希薄燃焼内燃機関の燃料噴射量を調節する燃料噴射量制御手段とを備える希薄燃焼内燃機関の蒸発燃料処理装置であって、
蒸発燃料のパージ実行時における燃料噴射量を補正すべく、所定の更新量で更新される燃料噴射補正量を算出する燃料噴射補正量算出手段と、
前記希薄燃焼内燃機関の目標回転数と実際の回転数との偏差に応じて前記燃料噴射補正量の更新量を変更する燃料噴射更新量変更手段と、
を備えることを特徴としてもよい。
【００２０】
このように構成された蒸発燃料処理装置では、蒸発燃料のパージを実行する際に、流量制御手段が機関運転状態に応じて流量制御値を決定する。
【００２１】
一方、燃料噴射補正量算出手段は、希薄燃焼内燃機関に過剰な燃料が供給されるのを防止すべく、つまり燃料噴射量を減少させるべく、燃料噴射量の補正量を算出する。この燃料噴射補正量は、所定の更新量で更新される量であり、前記更新量は、燃料噴射更新量変更手段がパージ実行時における希薄燃焼内燃機関の目標回転数と実際の回転数との偏差に応じて変更する量である。
【００２２】
そして、燃料噴射量制御手段は、燃料噴射補正量算出手段により算出された燃料噴射補正量に従って燃料噴射量を調節する。
【００２３】
この場合、燃料噴射量は、希薄燃焼内燃機関の機関回転数に応じて補正されることになる。
【００２４】
ここで、蒸発燃料の濃度や流量の変化は、希薄燃焼内燃機関の燃焼室内に供給される総燃料量（燃料噴射量とパージされた蒸発燃料量との総和）に影響を与え、この総燃料量が変化することにより機関回転数の変化が生じる。
【００２５】
従って、機関回転数の変化に応じて燃料噴射量を補正することにより、応答性が高く、且つ安定性が高い制御を行うことが可能となる。
【００２６】
さらに、希薄燃焼内燃機関が筒内噴射式の内燃機関である場合は、燃料噴射量の変化が直ちに機関回転数の変化に反映されるため、機関回転数の変化に応じて燃料噴射量を補正することにより、より応答性の高い制御を行うことが可能となる。
【００２７】
また、本発明に係る蒸発燃料処理装置は、酸素過剰状態の混合気を燃焼可能な希薄燃焼内燃機関と、
前記希薄燃焼内燃機関の運転状態を検出する機関運転状態検出手段と、
前記希薄燃焼内燃機関に併設される燃料タンク内で発生した蒸発燃料を前記希薄燃焼内燃機関の吸気系に導くパージ通路と、
蒸発燃料のパージを実行する際に、機関運転状態に応じて定められる流量制御値に基づいて前記パージ通路内の蒸発燃料流量を調節する流量制御手段と、
機関運転状態に応じて前記希薄燃焼内燃機関の燃料噴射量を調節する燃料噴射量制御手段とを備える希薄燃焼内燃機関の蒸発燃料処理装置であって、
パージ実行時における燃料噴射量を補正するための燃料噴射補正量を算出する燃料噴射補正量算出手段と、
前記燃料噴射補正量が所定値未満のときは、前記流量制御値が所定の上限ガード値より大きくならないよう制限する流量制御値制限手段と、
を備えることを特徴としてもよい。
【００２８】
このように構成された蒸発燃料処理装置では、蒸発燃料のパージを実行する際に、流量制御手段が機関運転状態に応じて流量制御値を決定する。一方、燃料噴射補正量算出手段は、希薄燃焼内燃機関に過剰な燃料が供給されるのを防止すべく、つまり燃料噴射量を減少させるべく、燃料噴射補正量を算出する。
【００２９】
そして、流量制御値制限手段は、燃料噴射補正量算出手段により算出された燃料噴射補正量が所定値未満であるか否かを判別する。前記燃料噴射補正量が所定値未満であるときは、流量制御値制限手段は、前記流量制御値を所定の上限ガード値により制限する。
【００３０】
この場合、燃料噴射補正量が所定値未満になると、パージ通路の流量が制限されるため、希薄燃焼内燃機関に過剰の燃料が供給されることがなく、希薄燃焼内燃機関の燃焼状態が不安定になることがない。
【００３１】
一方、燃料噴射補正量算出手段により算出された燃料噴射補正量が所定値以上であるときは、流量制御手段は、流量制御値に従ってパージ通路の流量を調節する。
【００３２】
尚、上限ガード値は、希薄燃焼内燃機関の燃焼状態と燃料温度と燃料性状と給油燃料量との中から選択される少なくとも一つをパラメータとして決定されるようにしてもよい。
【００３３】
【発明の実施の形態】
以下、本発明に係る蒸発燃料処理装置の実施の形態について図面に基づいて説明する。
【００３４】
〈実施の形態１〉
図１は、本発明に係る蒸発燃料処理装置を適用する内燃機関の概略構成を示す図である。図１に示す内燃機関１は、複数の気筒２を備えるとともに、各気筒２内に直接燃料を噴射する燃料噴射弁９を具備する４サイクルの筒内噴射式内燃機関である。
【００３５】
前記内燃機関１は、複数の気筒２及び冷却水路１ｃが形成されたシリンダブロック１ｂと、このシリンダブロック１ｂの上部に固定されたシリンダヘッド１ａとを備える。
【００３６】
前記シリンダブロック１ｂには、機関出力軸であるクランクシャフト４が回転自在に支持され、このクランクシャフト４は、各気筒２内に摺動自在に装填されたピストン３と連結される。
【００３７】
前記ピストン３の上方には、前記ピストン３の頂面と前記シリンダヘッド１ａとに囲まれた燃焼室５が形成される。そして、前記シリンダヘッド１ａには、前記燃焼室５に臨むよう点火栓６が取り付けられ、この点火栓６には、点火栓６に駆動電流を印加するためのイグナイタ６ａが接続される。
【００３８】
さらに、前記シリンダヘッド１ａには、２つの吸気ポート７と２つの排気ポート８の開口端が前記燃焼室５に臨むよう形成されるとともに、その噴孔が前記燃焼室５に臨むよう燃料噴射弁９が取り付けられる。
【００３９】
前記吸排気ポート７、８の各開口端は、前記シリンダヘッド１ａに進退自在に支持された吸気弁７０及び排気弁８０により開閉され、これら吸排気弁７０、８０は、前記シリンダヘッド１ａに回転自在に支持されるインテーク側カムシャフト１１及びエキゾースト側カムシャフト１２により進退駆動される。
【００４０】
前記インテーク側カムシャフト１１及び前記エキゾースト側カムシャフト１２は、図示しないタイミングベルトを介してクランクシャフト４と連結され、クランクシャフト４の回転が前記タイミングベルトを介して前記インテーク側カムシャフト１１及び前記エキゾースト側カムシャフト１２へ伝達される。
【００４１】
各気筒２に連通する２つの吸気ポート７のうちの一方の吸気ポート７は、シリンダヘッド１ａ外壁に形成された開口端から燃焼室５に臨む開口端へ向かって直線状に形成された流路を有するストレートポートで構成され、他方の吸気ポート７は、シリンダヘッド１ａ外壁の開口端から燃焼室５の開口端へ向かって旋回するよう形成された流路を有するヘリカルポートで構成される。
【００４２】
前記各吸気ポート７は、前記シリンダヘッド１ａに取り付けられる吸気枝管１６の各枝管と連通する。２つの吸気ポート７のうちのストレートポートと連通する枝管には、その枝管内の流量を調節するスワールコントロールバルブ１０が設けられる。前記スワールコントロールバルブ１０には、ステップモータ等からなり、印加電流に応じて前記スワールコントロールバルブ１０を開閉駆動するアクチュエータ１０ａが取り付けられる。
【００４３】
前記吸気枝管１６は、サージタンク１７に接続され、このサージタンク１７は、吸気管１８を介してエアクリーナボックス１９と接続される。前記サージタンク１７には、サージタンク１７内の圧力に対応した電気信号を出力するバキュームセンサ２０が取り付けられる。
【００４４】
前記吸気管１８には、前記吸気管１８内の流量を調節するスロットル弁２１が取り付けられる。このスロットル弁２１には、印加電流に応じて前記スロットル弁２１を開閉駆動するステップモータ等からなるアクチュエータ２２が取り付けられる。
【００４５】
前記スロットル弁２１には、スロットル弁２１の開度に対応した電気信号を出力するスロットルポジションセンサ２３が取り付けられるとともに、アクセルペダル２４に連動して回転するアクセルレバー（図示せず）が併設される。
【００４６】
前記アクセルレバーには、アクセルレバーの回転位置（アクセルペダル２４の踏み込み量）に対応した電気信号を出力するアクセルポジションセンサ２５が取り付けられる。
【００４７】
前記スロットル弁２１より上流の吸気管１８には、吸気管１８内を流れる新気の質量（吸入空気質量）に対応した電気信号を出力するエアフローメータ２６が取り付けられる。
【００４８】
一方、各排気ポート８は、前記シリンダヘッド１ａに取り付けられる排気枝管２７の各枝管と連通し、この排気枝管２７は、第１の触媒２８を介して排気管２９に接続される。前記排気管２９は、下流にて図示しないマフラと接続される。前記排気枝管２７には、排気枝管２７内を流れる排気ガスの空燃比に対応した電気信号を出力する第１空燃比センサ３０が取り付けられる。
【００４９】
前記排気管２９の途中には、第２の触媒３１が設けられ、この第２の触媒３１より下流の排気管２９には、前記第２の触媒３１から流出した排気ガスの空燃比に対応した電気信号を出力する第２空燃比センサ３２が取り付けられる。
【００５０】
前記第１の触媒２８は、前記第２の触媒３１より容量の小さい三元触媒であり、前記第２の触媒３１は、三元触媒や窒素酸化物吸蔵還元型触媒等である。
【００５１】
次に、内燃機関１には、燃料タンク３３と、この燃料タンク３３内で発生した蒸発燃料を一旦貯留するチャコールキャニスタ３４とが併設される。前記燃料タンク３３と前記チャコールキャニスタ３４とは、蒸発燃料通路３５を介して接続され、この蒸発燃料通路３５の途中には、燃料タンク３３内の圧力に応じて蒸発燃料通路３５内の流路を開閉するタンク内圧制御弁３６が取り付けられる。
【００５２】
前記タンク内圧制御弁３６は、正圧弁と負圧弁とを組み合わせて構成され、前記正圧弁は、蒸発燃料の増加により燃料タンク３３内の圧力が第１の所定値以上になると開弁し、前記負圧弁は、燃料の減少により燃料タンク３３内の圧力が第２の所定値（＜第１の所定値）以下になると開弁する。
【００５３】
前記チャコールキャニスタ３４には、大気導入通路３７が接続され、この大気導入通路３７は、前記エアフローメータ２６と前記スロットル弁２１との間に位置する吸気管１８に接続される。
【００５４】
さらに、前記チャコールキャニスタ３４には、負圧導入通路３８が接続され、この負圧導入通路３８は、前記スロットル弁２１下流の吸気管１８に接続される。前記負圧導入通路３８の途中には、負圧導入通路３８内の流量を調節する電磁弁３９が取り付けられる。
【００５５】
前記チャコールキャニスタ３４を介して連通する大気導入通路３７及び負圧導入通路３８は、本発明にかかるパージ通路を実現する（以下、チャコールキャニスタ３４、大気導入通路３７、及び負圧導入通路３８を総称してパージ通路４９と記す）。
【００５６】
また、内燃機関１には、機関制御用の電子制御ユニット（Electronic Control Unit：ＥＣＵ）４０が併設されており、このＥＣＵ４０には、バキュームセンサ２０、スロットルポジションセンサ２３、アクセルポジションセンサ２５、エアフローメータ２６、第１空燃比センサ３０、及び第２空燃比センサ３２に加え、クランクシャフト４の端部に取り付けられたタイミングロータ１３ａとこのタイミングロータ１３ａ近傍のシリンダブロック１ｂに取り付けられた電磁ピックアップ１３ｂとからなるクランクポジションセンサ１３や、シリンダブロック１ｂの冷却水路１ｃ内を流れる冷却水の温度を検出すべくシリンダブロック１ｂに取り付けられた水温センサ１４等の各種センサが電気配線を介して接続される。
【００５７】
さらに、ＥＣＵ４０には、イグナイタ６ａ、燃料噴射弁９、アクチュエータ１０ａ、アクチュエータ２２、電磁弁３９等が電気配線を介して接続される。
【００５８】
ＥＣＵ４０は、前記各種センサからの出力信号をパラメータとして内燃機関１の運転状態、チャコールキャニスタ３４の蒸発燃料吸着状態等を判定し、その判定結果に応じて、イグナイタ６ａ、燃料噴射弁９、アクチュエータ１０ａ、アクチュエータ２２、及び電磁弁３９等の各種制御を行う。
【００５９】
ここで、ＥＣＵ４０は、図２に示すように、双方向性バス４１により相互に接続された、ＣＰＵ４２とＲＯＭ４３とＲＡＭ４４とバックアップＲＡＭ４５と入力ポート４６と出力ポート４７とを備えるとともに、前記入力ポート４６に接続されたＡ／Ｄコンバータ（Ａ／Ｄ）４８を備える。
【００６０】
前記入力ポート４６は、クランクポジションセンサ１３とスロットルポジションセンサ２３とアクセルポジションセンサ２５とから出力される信号を入力し、それらの出力信号をＣＰＵ４２あるいはＲＡＭ４４へ送信する。
【００６１】
さらに、前記入力ポート４６は、水温センサ１４とバキュームセンサ２０とエアフローメータ２６と第１及び第２空燃比センサ３０及び３２とから出力される信号をＡ／Ｄ４８を介して入力し、それらの出力信号をＣＰＵ４２あるいはＲＡＭ４４へ送信する。
【００６２】
前記出力ポート４７は、前記ＣＰＵ４２から出力される制御信号をイグナイタ６ａ、燃料噴射弁９、アクチュエータ１０ａ、アクチュエータ２２、あるいは電磁弁３９等へ出力する。
【００６３】
前記ＲＯＭ４３は、燃料噴射量を決定するための燃料噴射量制御ルーチン、燃料噴射時期を決定するための燃料噴射時期制御ルーチン、点火時期を決定するための点火時期制御ルーチン、蒸発燃料のパージを実行するためのパージ実行制御ルーチン、あるいは内燃機関１のトルク変動値を算出するためのトルク変動値算出ルーチン等のアプリケーションプログラムや、各種の制御マップ等を記憶する。
【００６４】
前記制御マップは、例えば、内燃機関１の運転状態と燃料噴射量との関係を示す燃料噴射量制御マップ、内燃機関１の運転状態と燃料噴射時期との関係を示す燃料噴射時期制御マップ、内燃機関１の運転状態と点火時期との関係を示す点火時期制御マップ、内燃機関１の運転状態又はチャコールキャニスタ３４の状態と電磁弁３９の開度との関係を示すパージ流量制御マップ等である。
【００６５】
前記ＲＡＭ４４は、各センサの出力信号やＣＰＵ４２の演算結果等を記憶する。前記演算結果は、例えば、クランクポジションセンサ１３の出力信号に基づいて算出される機関回転数等である。そして、各センサの出力信号やＣＰＵ４２の演算結果等は、クランクポジションセンサ１３が信号を出力する度に最新のデータに書き換えられる。
【００６６】
さらに、ＲＡＭ４４には、蒸発燃料のパージ実行時に“１”がセットされ、蒸発燃料のパージ非実行時に“０”がリセットされるパージ判定フラグを記憶するパージ判定フラグ記憶領域が設定される。
【００６７】
前記バックアップＲＡＭ４５は、内燃機関１停止後もデータを保持する不揮発性のメモリである。
【００６８】
前記ＣＰＵ４２は、前記ＲＯＭ４３に記憶されたアプリケーションプログラムに従って動作し、各センサの出力信号より内燃機関１の運転状態を判定し、判定された運転状態と各制御マップとから燃料噴射量、燃料噴射時期、スロットル弁２１の開度、点火時期、電磁弁３９の開閉時期、電磁弁３９の開度（電磁弁３９制御用デューティ比：ＤＰＧ）、パージ実行時における燃料噴射量の補正量（燃料噴射補正量）ＦＰＧ等を算出する。そして、ＣＰＵ４２は、算出結果に基づいてイグナイタ６ａ、燃料噴射弁９、アクチュエータ１０ａ、アクチュエータ２２、あるいは電磁弁３９に対する制御信号を出力する。
【００６９】
例えば、ＣＰＵ４２は、クランクポジションセンサ１３、アクセルポジションセンサ２５、あるいはエアフローメータ２６の出力信号値より、内燃機関１の運転状態が低負荷運転領域にあると判定した場合は、成層燃焼を実現すべく、アクチュエータ１０ａへ制御信号を送信してスワールコントロールバルブ１０の開度を小さくし、アクチュエータ２２へ制御信号を送信してスロットル弁２１を実質的に全開状態とし、さらに各気筒２の圧縮行程時に燃料噴射弁９に駆動電流を印加して圧縮行程噴射を行う。この場合、各気筒２の燃焼室５内には、点火栓６の近傍のみに可燃混合気層が形成されるとともに、その他の領域に空気層が形成され、成層燃焼が実現される。
【００７０】
機関運転状態が中負荷運転領域にあると判定した場合は、ＣＰＵ４２は、リーン混合気による均質リーン燃焼を実現すべく、アクチュエータ１０ａへ制御信号を送信してスワールコントロールバルブ１０の開度を小さくし、さらに各気筒２の吸気行程時に燃料噴射弁９に駆動電流を印加して吸気行程噴射を行う。この場合、各気筒２の燃焼室５内の略全域にわたって、空気と燃料とが均質に混じり合ったリーン混合気が形成され、均質リーン燃焼が実現される。
【００７１】
機関運転状態が高負荷運転領域にあると判定した場合は、ＣＰＵ４２は、理論空燃比近傍の混合気による均質燃焼を実現すべく、アクチュエータ１０ａへ制御信号を送信してスワールコントロールバルブ１０を全開状態とし、スロットル弁２１がアクセルペダル２４の踏み込み量（アクセルポジションセンサ２５の出力信号値）に対応した開度となるようアクチュエータ２２へ制御信号を送信し、さらに各気筒２の吸気行程時に燃料噴射弁９に駆動電流を印加して吸気行程噴射を行う。この場合、各気筒２の燃焼室５内の略全域にわたって、空気と燃料とが均質に混じり合った理論空燃比の混合気が形成され、均質燃焼が実現される。
【００７２】
尚、ＣＰＵ４２は、成層燃焼制御から均質燃焼制御へ移行する際、あるいは均質燃焼制御から成層燃焼制御へ移行する際に、内燃機関１のトルク変動を防止すべく各気筒２の圧縮行程時と吸気行程時の二回に分けて燃料噴射弁９に駆動電流を印加する。この場合、各気筒２の燃焼室５内には、点火栓６の近傍に可燃混合気層が形成されるとともに、その他の領域にリーン混合気層が形成され、いわゆる弱成層燃焼が実現される。
【００７３】
また、ＣＰＵ４２は、機関運転状態がアイドル運転領域にあると判定した場合は、実際の機関回転数を目標アイドル回転数に収束させるために必要な吸入空気量を確保すべくスロットル弁２１の開度を制御する、いわゆるアイドルスピードコントロール（ＩＳＣ）のフィードバック制御を行う。
【００７４】
次に、ＣＰＵ４２は、蒸発燃料のパージを実行するにあたり、通常は電磁弁３９を閉弁するよう制御を行う。この状態で燃料タンク３３内の蒸発燃料が増加して燃料タンク３３内の圧力が第１の所定値を越えると、タンク内圧制御弁３６の正圧弁が開弁し、蒸発燃料通路３５が導通状態となる。そして、燃料タンク３３内の蒸発燃料は、蒸発燃料通路３５を介してチャコールキャニスタ３４内に導入され、チャコールキャニスタ３４に内装された活性炭等の吸着剤に一旦吸着される。
【００７５】
また、ＣＰＵ４２は、所定時間毎に蒸発燃料のパージ実行条件が成立しているか否かを判別する。このパージ実行条件としては、例えば、内燃機関１や第１及び第２の触媒２８、３１の暖機が完了している、燃料噴射弁９からの燃料噴射量が所定量以上である、あるいは内燃機関１の始動後所定時間以上経過している等の条件を例示することができる。
【００７６】
上記したようなパージ実行条件が成立していると判定した場合は、ＣＰＵ４２は、電磁弁３９を開弁させる。この場合、負圧導入通路３８が導通状態となり、これによりパージ通路４９が導通状態となる。
【００７７】
ここで、パージ通路４９の上流にあたるスロットル弁２１上流の吸気管１８内は略大気圧：ＰＡとなるが、パージ通路４９の下流にあたるスロットル弁２１下流の吸気管１８内の圧力（吸気管圧力）：ＰＭは吸気管負圧の発生により負圧となるため、パージ通路４９の上流と下流とで圧力差：△ＰＭ（＝ＰＡ−ＰＭ）が生じる。
【００７８】
上記した圧力差：△ＰＭにより、スロットル弁２１上流の吸気管１８内を流れる大気の一部がパージ通路４９内に流れ込み、スロットル弁２１下流の吸気管１８内へ導かれる。つまり、パージ通路４９では、チャコールキャニスタ３４を貫流する大気の流れが生じる。
【００７９】
その際、チャコールキャニスタ３４内の吸着剤に吸着されていた蒸発燃料は、大気の流れを受けて吸着剤から脱離し、大気とともにスロットル弁２１下流の吸気管１８内へ導入される。このように吸気管１８内に導入された大気及び蒸発燃料（パージガス）は、吸気管１８内を上流から流れてきた新気と混ざり合いながら燃焼室５内に導入され、燃料噴射弁９から噴射された燃料とともに燃焼及び処理される。
【００８０】
一方、ＣＰＵ４２は、パージ実行時における燃焼室５内の混合気の空燃比を所望の空燃比とすべく、蒸発燃料のパージ量に応じて燃料噴射弁９からの燃料噴射量を補正する。すなわち、ＣＰＵ４２は、燃料噴射量制御ルーチンに従って算出された燃料噴射量（基本燃料噴射量）：ＱＡＬＬから蒸発燃料のパージ量に応じて決定される燃料噴射量の補正量（燃料噴射補正量）：ＦＰＧを減算して、実際の燃料噴射量：ＱＡＬＬＩＮＪを算出する。
【００８１】
ところで、希薄燃焼内燃機関１において理論空燃比近傍の混合気による均質燃焼が行われている場合は、第１空燃比センサ３０あるいは第２空燃比センサ３２により精度良く排気の空燃比を検出することができるため、パージ非実行時の第１空燃比センサ３０（又は第２空燃比センサ３２）の出力信号値とパージ実行時の第１空燃比センサ３０（又は第２空燃比センサ３２）の出力信号値との差分から蒸発燃料濃度を特定し、特定された蒸発燃料濃度に基づいて燃料噴射補正量：ＦＰＧを決定することができるが、混合気がリーン状態となる場合は、第１及び第２空燃比センサ３０、３２により排気の空燃比を精度良く検出することができないため、蒸発燃料濃度を直接検出する専用のセンサ（例えば、ＨＣセンサや酸素センサ等）を用いない限り、蒸発燃料濃度を特定することができず、燃料噴射量を適切に補正することが不可能となる。
【００８２】
そこで、本実施の形態では、ＣＰＵ４２は、パージ実行時における機関回転数の変動やトルク変動に応じて仮の燃料噴射補正量（仮燃料噴射補正量）：ＦＰＧＮを算出するとともに、電磁弁３９制御用デューティ比：ＤＰＧの大きさに応じて仮燃料噴射補正量：ＦＰＧＮを補正して実際の燃料噴射補正量：ＦＰＧを算出する。そして、ＣＰＵ４２は、上記したような処理を繰り返し行うことにより最適な燃料噴射補正量：ＦＰＧを学習するようにした。
【００８３】
上記したような制御によれば、機関運転状態に影響されることなく、燃料噴射補正量の学習制御を行うことができるため、蒸発燃料濃度を検出するための専用のセンサを取り付ける必要がない。
【００８４】
尚、ＣＰＵ４２は、上記したような学習制御により算出された燃料噴射補正量：ＦＰＧが所定値未満の場合は、燃料過多による燃焼状態の悪化を防止すべく、電磁弁３９制御用デューティ比：ＤＰＧを上限ガード値により制限するようにしてもよい。
【００８５】
このように、ＣＰＵ４２は、ＲＯＭ４３に記憶されたアプリケーションプログラムを実行することにより、本発明に係る機関運転状態検出手段、流量制御手段、燃料噴射量制御手段、燃料噴射補正量算出手段、燃料噴射更新量変更手段、及び流量制御値制限手段を実現する。
【００８６】
以下、本実施の形態における具体的なパージ制御について述べる。
【００８７】
ＣＰＵ４２は、希薄燃焼内燃機関１の運転時に図３に示すようなパージ実行制御ルーチンを所定時間毎に繰り返し実行する。
【００８８】
パージ実行制御ルーチンでは、ＣＰＵ４２は、Ｓ３０１においてパージ実行条件が成立しているか否かを判別する。
【００８９】
前記Ｓ３０１においてパージ実行条件が不成立であると判定した場合は、ＣＰＵ４２は、Ｓ３０６へ進み、燃料噴射補正量：ＦＰＧ及び電磁弁３９制御用デューティ比：ＤＰＧをともに“０”に設定し、本ルーチンの実行を一旦終了する。
【００９０】
一方、前記Ｓ３０１においてパージ実行条件が成立していると判定した場合は、ＣＰＵ４２は、Ｓ３０２へ進み、電磁弁３９制御用デューティ比：ＤＰＧの算出処理と、仮燃料噴射補正量：ＦＰＧＮの算出処理とを実行する。
【００９１】
電磁弁３９制御用デューティ比：ＤＰＧの算出処理を行う場合、ＣＰＵ４２は、先ず、希薄燃焼内燃機関１がアイドル状態にあるか否かを判別する。
【００９２】
希薄燃焼内燃機関１がアイドル状態にあると判定した場合は、ＣＰＵ４２は、図４に示すようなアイドル時デューティ比制御ルーチンを実行して、電磁弁３９制御用デューティ比：ＤＰＧを算出する。
【００９３】
アイドル時デューティ比制御ルーチンでは、ＣＰＵ４２は、Ｓ４０１において、アクセルポジションセンサ２５の出力信号値（アクセル開度）：ＡＣＡとクランクポジションセンサ１３の出力信号に基づいて算出された機関回転数：ＮＥとをＲＡＭ４４から読み出す。
【００９４】
Ｓ４０２では、ＣＰＵ４２は、前記Ｓ４０１で読み出されたアクセル開度：ＡＣＡと機関回転数：ＮＥとに基づいて、その時点における希薄燃焼内燃機関１が均質燃焼と均質リーン燃焼と弱成層燃焼と成層燃焼との中の何れの燃焼状態にあるかを判別する。具体的には、アクセル開度：ＡＣＡと機関回転数：ＮＥと燃焼状態との関係を示す燃焼状態制御マップが予めＲＯＭ４３に記憶されており、ＣＰＵ４２は、アクセル開度：ＡＣＡと機関回転数：ＮＥとをパラメータとして前記燃焼状態制御マップにアクセスし、希薄燃焼内燃機関１の燃焼状態を判別する。
【００９５】
Ｓ４０３では、ＣＰＵ４２は、前記Ｓ４０２で判定された燃焼状態に応じた各種補正係数を算出する。各種補正係数は、例えば、電磁弁３９制御用デューティ比：ＤＰＧの更新量：ＫＤＰＧＵ、ＫＤＰＧＤ等である。前記更新量：ＫＤＰＧＵは、電磁弁３９制御用デューティ比：ＤＰＧを増加方向に更新する際に使用される更新量であり、前記更新量：ＫＤＰＧＤは、電磁弁３９制御用デューティ比：ＤＰＧを減少方向に更新する際に使用される更新量である。これらの更新量：ＫＤＰＧＵ、ＫＤＰＧＤは、予め実験等により求められた値であり、燃焼状態と更新量：ＫＤＰＧＵ、ＫＤＰＧＤとの関係を示すマップとしてＲＯＭ４３に記憶される。
【００９６】
Ｓ４０４では、ＣＰＵ４２は、ＩＳＣのフィードバック制御が実行されているか否かを判別する。すなわち、ＣＰＵ４２は、別途のＩＳＣフィードバック制御ルーチンが実行されているか否かを判別する。
【００９７】
前記Ｓ４０４においてＩＳＣフィードバック制御ルーチンが実行されていると判定した場合は、ＣＰＵ４２は、機関回転数：ＮＥが安定しているとみなし、Ｓ４０５へ進む。
【００９８】
Ｓ４０５では、ＣＰＵ４２は、ＲＡＭ４４から実際の機関回転数：ＮＥ（以下、実機関回転数と称する）と目標回転数：ＮＴとを読み出し、実機関回転数：ＮＥから目標回転数：ＮＴを減算して偏差：ＤＬＮＴを算出する。
【００９９】
Ｓ４０６では、ＣＰＵ４２は、前記Ｓ４０５で算出された偏差：ＤＬＮＴが第１の判定値：Ａ（ｒｐｍ）より小さいか否かを判別する。前記第１の判定値：Ａは、予め実験等で求められた値であり、ＲＯＭ４３の所定領域に記憶される。
【０１００】
前記Ｓ４０６において前記偏差：ＤＬＮＴが第１の判定値：Ａ（ｒｐｍ）より小さいと判定した場合は、ＣＰＵ４２は、Ｓ４０７へ進む。
【０１０１】
Ｓ４０７では、ＣＰＵ４２は、基本となる電磁弁３９制御用デューティ比（以下、基本デューティ比と称する）：ｔＤＰＧを算出する。基本デューティ比：ｔＤＰＧは、本ルーチンを前回実行した際に算出された最終の電磁弁３９制御用デューティ比：ＤＰＧi-1に、前記Ｓ４０３で算出された更新量：ＫＤＰＧＵを加算して得られる値である。
【０１０２】
続いて、ＣＰＵ４２は、Ｓ４０８へ進み、前記Ｓ４０７で算出された基本デューティ比：ｔＤＰＧを最終の電磁弁３９制御用デューティ比：ＤＰＧとして、ＲＡＭ４４の所定領域に記憶させ、本ルーチンの実行を終了する。
【０１０３】
この場合、希薄燃焼内燃機関１の実機関回転数：ＮＥが目標回転数：ＮＴより低くなっているが、電磁弁３９制御用デューティ比：ＤＰＧが前回値に所定の更新量：ＫＤＰＧＵを加算した値となるため、電磁弁３９の開度が大きくなり、その結果、希薄燃焼内燃機関１の燃焼室５に供給される蒸発燃料量が増加し、実際の機関回転数が目標回転数：ＮＴの近傍まで上昇する。
【０１０４】
また、前記Ｓ４０６において偏差：ＤＬＮＴが第１の判定値：Ａ以上であると判定した場合は、ＣＰＵ４２は、Ｓ４０９へ進み、偏差：ＤＬＮＴが第２の判定値：Ｂ（＞Ａ）より大きいか否かを判別する。第２の判定値：Ｂも、前記第１の判定値：Ａと同様に、予め実験等で求められた値であり、ＲＯＭ４３の所定領域に記憶される。
【０１０５】
前記Ｓ４０９において偏差：ＤＬＮＴが第２の判定値：Ｂより大きいと判定した場合は、ＣＰＵ４２は、Ｓ４１０へ進み、蒸発燃料のパージ量を減少させるべく基本デューティ比：ｔＤＰＧを算出する。この場合の基本デューティ比：ｔＤＰＧは、本ルーチンを前回実行した際に算出された最終の電磁弁３９制御用デューティ比：ＤＰＧi-1から前記Ｓ４０３で算出された更新量：ＫＤＰＧＤを減算して得られる値である。
【０１０６】
前記Ｓ４１０の処理を実行し終えたＣＰＵ４２は、Ｓ４０８へ進み、前記Ｓ４１０で算出された基本デューティ比：ｔＤＰＧ（＝ＤＰＧi-1−ＫＤＰＧＤ）を最終の電磁弁３９制御用デューティ比：ＤＰＧとしてＲＡＭ４４の所定領域に記憶させ、本ルーチンの実行を終了する。
【０１０７】
この場合、希薄燃焼内燃機関１の実機関回転数：ＮＥが目標回転数：ＮＴより高くなっているが、電磁弁３９制御用デューティ比：ＤＰＧが前回値から所定の更新量：ＫＤＰＧＤを減算した値となるため、電磁弁３９の開度が小さくなり、その結果、希薄燃焼内燃機関１の燃焼室５に供給される蒸発燃料量が減少し、実際の機関回転数が目標回転数の近傍まで低下することになる。
【０１０８】
また、前記Ｓ４０９において偏差：ＤＬＮＴが第２の判定値：Ｂ以下であると判定した場合、すなわち偏差：ＤＬＮＴがＡ以上且つＢ以下であると判定した場合は、ＣＰＵ４２は、偏差：ＤＬＮＴが許容範囲内にあるとみなし、Ｓ４１１へ進む。Ｓ４１１では、ＣＰＵ４２は、前回の電磁弁３９制御用デューティ比：ＤＰＧi-1を基本デューティ比：ｔＤＰＧとして設定する。
【０１０９】
そして、ＣＰＵ４２は、Ｓ４０８へ進み、前記Ｓ４１１で設定された基本デューティ比：ｔＤＰＧを最終の電磁弁３９制御用デューティ比：ＤＰＧとしてＲＡＭ４４の所定領域に記憶させ、本ルーチンの実行を終了する。
【０１１０】
この場合、希薄燃焼内燃機関１の実機関回転数：ＮＥが目標回転数：ＮＴより高くなっているが、その偏差：ＤＬＮＴが許容範囲内に収まっているため、電磁弁３９制御用デューティ比：ＤＰＧが前回値と同値に設定され、電磁弁３９の開度が前回と同様の開度に保持される。つまり、蒸発燃料のパージ量は、前回と同様の量に保持される。
【０１１１】
また、前記Ｓ４０４においてＩＳＣフィードバック制御ルーチンが実行されていないと判定した場合は、ＣＰＵ４２は、機関回転数：ＮＥが安定していないとみなし、Ｓ４１２へ進む。
【０１１２】
Ｓ４１２では、ＣＰＵ４２は、本ルーチンを以前に実行した際に算出された最終の電磁弁３９制御用デューティ比であって、且つＩＳＣフィードバック制御中に算出された電磁弁３９制御用デューティ比のうち、最新のデューティ比：ＤＰＧOをＲＡＭ４４から読み出し、そのデューティ比：ＤＰＧOを今回の電磁弁３９制御用デューティ比：ＤＰＧとしてＲＡＭ４４の所定領域に記憶させる。
【０１１３】
ここで、更新量：ＫＤＰＧＵと更新量：ＫＤＰＧＤは、機関の運転状態（例えば、吸入空気量、燃料噴射量、機関回転数、機関負荷（吸入空気量／機関回転数）、吸気管負圧等）、あるいは燃焼状態（例えば、機関運転状態に応じて決定される燃焼形態（均質燃焼、均質リーン燃焼、弱成層燃焼、成層燃焼）、燃料噴射時期、燃焼の安定度等）に応じて増減される可変値でもよい。
【０１１４】
その場合、更新量：ＫＤＰＧＵ、ＫＤＰＧＤは、例えば、均質燃焼のときは値を大きくし、成層燃焼のときは小さな値とする。これによって、均質燃焼時は大量の蒸発燃料をパージすることが可能となるとともに、成層燃焼時は蒸発燃料のパージ量の変化が小さいの内燃機関１の燃焼を安定させることができる。また、燃焼の切換時には、更新量ＫＤＰＧＵ、ＫＤＰＧＤをスキップ的に変化させて切換後の燃焼に対応した更新量に変更すれば、切換時及び切換後の燃焼を安定させることができる。
【０１１５】
一方、ＣＰＵ４２は、電磁弁３９制御用デューティ比：ＤＰＧを算出する際に、希薄燃焼内燃機関１が非アイドル状態にあると判定した場合は、図５に示すような非アイドル時デューティ比制御ルーチンを実行して、電磁弁３９制御用デューティ比：ＤＰＧを算出する。
【０１１６】
非アイドル時デューティ比制御ルーチンでは、ＣＰＵ４２は、Ｓ５０１において、アクセルポジションセンサ２５の出力信号値（アクセル開度）：ＡＣＡと機関回転数：ＮＥとをＲＡＭ４４から読み出す。
【０１１７】
Ｓ５０２では、ＣＰＵ４２は、前記Ｓ５０１で読み出されたアクセル開度：ＡＣＡと機関回転数：ＮＥとをパラメータとしてＲＯＭ４３の燃焼状態制御マップにアクセスし、その時点における希薄燃焼内燃機関１の燃焼状態を判別する。
【０１１８】
続いて、ＣＰＵ４２は、Ｓ５０３へ進み、前記Ｓ５０２で判定された燃焼状態に応じた各種補正係数を算出する。各種補正係数は、例えば、電磁弁３９制御用のデューティ比：ＤＰＧの更新量：Ｅ、Ｆ等である。
【０１１９】
前記更新量：Ｅは、電磁弁３９制御用デューティ比：ＤＰＧを増加方向に補正する際に使用される更新量であり、前記更新量：Ｆは、電磁弁３９制御用デューティ比：ＤＰＧを減少方向に補正する際に使用される更新量である。これらの更新量：Ｅ、Ｆは、予め実験等により求められた値であり、燃焼状態と更新量：Ｅ、Ｆとの関係を示すマップとしてＲＯＭ４３に記憶される。
【０１２０】
Ｓ５０４では、ＣＰＵ４２は、希薄燃焼内燃機関１のトルク変動値：ＤＬＮＩＳＭＸの算出条件が成立しているか否かを判別する。その際、ＣＰＵ４２は、図示しない別途のトルク変動値算出ルーチンによりトルク変動値：ＤＬＮＩＳＭＸが算出されていればトルク変動値：ＤＬＮＩＳＭＸの算出条件が成立していると判定し、前記トルク変動値算出ルーチンによりトルク変動値：ＤＬＮＩＳＭＸが算出されていなければトルク変動値：ＤＬＮＩＳＭＸの算出条件が不成立であると判定する。
【０１２１】
ここで、希薄燃焼内燃機関１のトルクは、例えば、ある所定のクランク角度間における角速度の差で表される。そして、トルク変動値は、任意の気筒２において、クランクシャフト４が特定の回転位置から所定角度回転する時の角速度と、前記特定の回転位置から７２０°ＣＡ回転した時点から所定角度回転する時の角速度との差で表すことができる。
【０１２２】
但し、本実施の形態では、希薄燃焼内燃機関１が複数の気筒２を有しているため、各気筒２毎にトルク変動値を求め、それらの平均値をトルク変動値：ＤＬＮＩＳＭＸとして用いるものとする。
【０１２３】
尚、希薄燃焼内燃機関１のトルク変動は、専用のトルクセンサを用いて直接検出するようにしてもよく、あるいは機関回転数や燃焼圧等から推定するようにしてもよい。
【０１２４】
前記Ｓ５０４においてトルク変動値：ＤＬＮＩＳＭＸの算出条件が成立していると判定した場合は、ＣＰＵ４２は、Ｓ５０５へ進み、前記トルク変動値算出ルーチンにおいて算出されたトルク変動値：ＤＬＮＩＳＭＸを入力する。
【０１２５】
Ｓ５０６では、ＣＰＵ４２は、前記Ｓ５０５で入力されたトルク変動値：ＤＬＮＩＳＭＸと目標トルク変動値：ＬＶＬＤＬＮとを比較する。目標トルク変動値：ＬＶＬＤＬＮは、予め実験等により求められた値であり、内燃機関１の運転状態と目標トルク変動値：ＬＶＬＤＬＮとの関係を示すマップとしてＲＯＭ４３に記憶されている。
【０１２６】
前記Ｓ５０６においてトルク変動値：ＤＬＮＩＳＭＸが目標トルク変動値：ＬＶＬＤＬＮ以上であると判定した場合は、ＣＰＵ４２は、Ｓ５０７へ進み、基本デューティ比：ｔＤＰＧを算出する。具体的には、ＣＰＵ４２は、本ルーチンを前回実行した際に算出された最終の電磁弁３９制御用デューティ比：ＤＰＧi-1に、前記Ｓ５０３で算出された更新量：Ｅを加算して、基本デューティ比：ｔＤＰＧを算出する。
【０１２７】
続いて、ＣＰＵ４２は、Ｓ５０８へ進み、前記Ｓ５０７で算出された基本デューティ比：ｔＤＰＧを最終の電磁弁３９制御用デューティ比：ＤＰＧとしてＲＡＭ４４の所定領域に記憶させ、本ルーチンの実行を終了する。
【０１２８】
また、前記Ｓ５０６においてトルク変動値：ＤＬＮＩＳＭＸが目標トルク変動値：ＬＶＬＤＬＮ未満であると判定した場合は、ＣＰＵ４２は、Ｓ５０９へ進み、
トルク変動値：ＤＬＮＩＳＭＸと目標トルク変動値：ＬＶＬＤＬＮから所定値αを減算した値（＝ＬＶＬＤＬＮ−α）とを比較する。
【０１２９】
前記Ｓ５０９においてトルク変動値：ＤＬＮＩＳＭＸが目標トルク変動値：ＬＶＬＤＬＮから所定値αを減算した値（＝ＬＶＬＤＬＮ−α）よりも小さいと判定した場合は、ＣＰＵ４２は、Ｓ５１０へ進む。
【０１３０】
Ｓ５１０では、ＣＰＵ４２は、基本デューティ比：ｔＤＰＧを算出する。具体的には、ＣＰＵ４２は、本ルーチンを前回実行した際に算出された最終の電磁弁３９制御用デューティ比：ＤＰＧi-1から前記Ｓ５０３で算出された更新量：Ｆを減算して、基本デューティ比：ｔＤＰＧを算出する。
【０１３１】
続いて、ＣＰＵ４２は、Ｓ５０８へ進み、前記Ｓ５１０で算出された基本デューティ比：ｔＤＰＧを最終の電磁弁３９制御用デューティ比：ＤＰＧとしてＲＡＭ４４の所定領域に記憶させ、本ルーチンの実行を終了する。
【０１３２】
また、前記Ｓ５０９においてトルク変動値：ＤＬＮＩＳＭＸが目標トルク変動値：ＬＶＬＤＬＮから所定値αを減算した値（＝ＬＶＬＤＬＮ−α）以上であると判定した場合、すなわちトルク変動値：ＤＬＮＩＳＭＸと目標トルク変動値：ＬＶＬＤＬＮとの差が所定値α以下であると判定した場合は、ＣＰＵ４２は、トルク変動値：ＤＬＮＩＳＭＸが許容範囲内にあるとみなし、Ｓ５１１へ進む。
【０１３３】
Ｓ５１１では、ＣＰＵ４２は、本ルーチンを前回実行した際に算出された最終の電磁弁３９制御用デューティ比：ＤＰＧi-1を基本デューティ比：ｔＤＰＧとして設定する。
【０１３４】
続いて、ＣＰＵ４２は、Ｓ５０８へ進み、前記Ｓ５１１で算出された基本デューティ比：ｔＤＰＧを最終の電磁弁３９制御用デューティ比：ＤＰＧとしてＲＡＭ４４の所定領域に記憶させ、本ルーチンの実行を終了する。
【０１３５】
また、前記Ｓ５０４においてトルク変動値：ＤＬＮＩＳＭＸの算出条件が不成立であると判定した場合は、ＣＰＵ４２は、Ｓ５１２へ進み、本ルーチンを以前に実行した際に算出された最終の電磁弁３９制御用デューティ比であって、且つトルク変動値：ＤＬＮＩＳＭＸの算出条件が成立しているときに算出された電磁弁３９制御用デューティ比のうち、最新の電磁弁３９制御用デューティ比：ＤＰＧOをＲＡＭ４４から読み出し、その電磁弁３９制御用デューティ比：ＤＰＧOを今回の最終の電磁弁３９制御用デューティ比：ＤＰＧとしてＲＡＭ４４の所定領域に記憶させ、本ルーチンの実行を終了する。
【０１３６】
ここで、トルク変動値と燃焼室５に供給される燃料量との関係を図８に示す。図８において、燃焼室５に供給される燃料量を少し増加すると、トルク変動が向上し、さらに燃料量を増加するとトルク変動が悪化する傾向となる。従って、本実施の形態では、目標トルク変動値：ＬＶＬＤＬＮをトルク変動値が最適となるよう設定すれば、トルク変動値を図８中の“ａ”から“ｂ”に変更する際、図５の非アイドル時デューティ比制御ルーチンに基づいて蒸発燃料のパージ量を調節することにより、トルク変動値がパージ量の過剰な増加により図中の“ｃ”へ移行することがなく、目標トルク変動値：ＬＶＬＤＬＮを中心とした許容範囲内に収束することになる。
【０１３７】
次に、ＣＰＵ４２は、仮燃料噴射補正量：ＦＰＧＮを算出する場合も、先ず希薄燃焼内燃機関１がアイドル状態にあるか否かを判別する。
【０１３８】
ＣＰＵ４２は、希薄燃焼内燃機関１がアイドル状態にあると判定した場合は、図６に示すようなアイドル時燃料噴射補正量制御ルーチンを実行して仮燃料噴射補正量：ＦＰＧＮを算出する。
【０１３９】
アイドル時燃料噴射補正量制御ルーチンでは、ＣＰＵ４２は、Ｓ６０１において、アクセルポジションセンサ２５の出力信号値（アクセル開度）：ＡＣＡと機関回転数：ＮＥとをＲＡＭ４４から読み出す。
【０１４０】
Ｓ６０２では、ＣＰＵ４２は、前記Ｓ６０１で読み出されたアクセル開度：ＡＣＡと機関回転数：ＮＥとをパラメータとしてＲＯＭ４３の燃焼状態制御マップへアクセスし、その時点における希薄燃焼内燃機関１の燃焼状態を判別する。
【０１４１】
続いて、ＣＰＵ４２は、Ｓ６０３へ進み、前記Ｓ６０２で判定された燃焼状態に応じた各種補正係数を算出する。各種補正係数は、例えば、仮燃料噴射補正量：ＦＰＧＮの更新量：ＫＦＰＧＮＤ、ＫＦＰＧＮＵ等である。
【０１４２】
前記更新量：ＫＦＰＧＮＤは、仮燃料噴射補正量：ＦＰＧＮを減少方向に更新する際に使用される更新量であり、前記更新量：ＫＦＰＧＮＵは、仮燃料噴射補正量：ＦＰＧＮを増加方向に補正する際に使用される更新量である。これらの更新量：ＫＦＰＧＮＤ、ＫＦＰＧＮＵは、予め実験等により求められた値であり、燃焼状態と更新量：ＫＦＰＧＮＤ、ＫＦＰＧＮＵとの関係を示すマップとしてＲＯＭ４３に記憶される。
【０１４３】
Ｓ６０４では、ＣＰＵ４２は、ＩＳＣのフィードバック制御が実行されているか否かを判別する。
【０１４４】
前記Ｓ６０４においてＩＳＣフィードバック制御ルーチンが実行されていると判定した場合は、ＣＰＵ４２は、機関回転数：ＮＥが安定しているとみなし、Ｓ６０５へ進む。
【０１４５】
Ｓ６０５では、ＣＰＵ４２は、ＲＡＭ４４から実際の機関回転数：ＮＥ（以下、実機関回転数と称する）と目標回転数：ＮＴとを読み出し、実機関回転数：ＮＥから目標回転数：ＮＴを減算して偏差：ＤＬＮＴを算出する。
【０１４６】
Ｓ６０６では、ＣＰＵ４２は、前記Ｓ６０５で算出した偏差：ＤＬＮＴが第３の判定値：Ｃ（ｒｐｍ）より小さいか否かを判別する。前記第３の判定値：Ｃは、予め実験等で求められた値であり、ＲＯＭ４３の所定領域に記憶される。
【０１４７】
前記Ｓ６０６において前記偏差：ＤＬＮＴが第３の判定値：Ｃより小さいと判定した場合は、ＣＰＵ４２は、Ｓ６０７へ進む。
【０１４８】
Ｓ６０７では、ＣＰＵ４２は、仮燃料噴射補正量の基本となる値（以下、基本燃料噴射補正量と称する）：ｔＦＰＧＮを算出する。基本燃料噴射補正量：ｔＦＰＧＮは、本ルーチンを前回実行した際に算出された最終の仮燃料噴射補正量：ＦＰＧＮi-1から、前記Ｓ６０３で算出された更新量：ＫＦＰＧＮＤを減算して得られる値である。
【０１４９】
続いて、ＣＰＵ４２は、Ｓ６０８へ進み、前記Ｓ６０７で算出された基本燃料噴射補正量：ｔＦＰＧＮを最終の仮燃料噴射補正量：ＦＰＧＮとして、ＲＡＭ４４の所定領域に記憶させ、本ルーチンの実行を終了する。
【０１５０】
また、前記Ｓ６０６において偏差：ＤＬＮＴが第３の判定値：Ｃ以上であると判定した場合は、ＣＰＵ４２は、Ｓ６０９へ進み、偏差：ＤＬＮＴが第４の判定値：Ｄ（＞Ｃ）より大きいか否かを判別する。第４の判定値：Ｄも、前記第３の判定値：Ｃと同様に、予め実験等で求められた値であり、ＲＯＭ４３の所定領域に記憶される。
【０１５１】
前記Ｓ６０９において偏差：ＤＬＮＴが第４の判定値：Ｄより大きいと判定した場合は、ＣＰＵ４２は、Ｓ６１０へ進み、基本燃料噴射補正量：ｔＦＰＧＮを算出する。この場合の基本燃料噴射補正量：ｔＦＰＧＮは、本ルーチンを前回実行した際に算出された最終の仮燃料噴射補正量：ＦＰＧＮi-1に、前記Ｓ６０３で算出された更新量：ＫＦＰＧＮＵを加算して得られる値である。
【０１５２】
前記Ｓ６１０の処理を実行し終えたＣＰＵ４２は、Ｓ６０８へ進み、前記Ｓ６１０で算出された基本燃料噴射補正量：ｔＦＰＧＮを最終の仮燃料噴射補正量：ＦＰＧＮとしてＲＡＭ４４の所定領域に記憶させ、本ルーチンの実行を終了する。
【０１５３】
また、前記Ｓ６０９において偏差：ＤＬＮＴが第４の判定値：Ｄ以下であると判定した場合、すなわち偏差：ＤＬＮＴがＣ以上且つＤ以下であると判定した場合は、ＣＰＵ４２は、偏差：ＤＬＮＴが許容範囲内にあるとみなし、Ｓ６１１へ進む。
【０１５４】
Ｓ６１１では、ＣＰＵ４２は、前回の仮燃料噴射補正量：ＦＰＧＮi-1を基本燃料噴射補正量：ｔＦＰＧＮとして設定する。
【０１５５】
そして、ＣＰＵ４２は、Ｓ６０８へ進み、前記Ｓ６１１で設定された基本燃料噴射補正量：ｔＦＰＧＮを最終の仮燃料噴射補正量：ＦＰＧＮとしてＲＡＭ４４の所定領域に記憶させ、本ルーチンの実行を終了する。
【０１５６】
また、前記Ｓ６０４においてＩＳＣフィードバック制御ルーチンが実行されていないと判定した場合は、ＣＰＵ４２は、機関回転数：ＮＥが安定していないとみなし、Ｓ６１２へ進む。
【０１５７】
Ｓ６１２では、ＣＰＵ４２は、本ルーチンを以前に実行した際に算出された最終の仮燃料噴射補正量であって、且つＩＳＣフィードバック制御中に算出された仮燃料噴射補正量のうち、最新の仮燃料噴射補正量：ＦＰＧＮOをＲＡＭ４４から読み出し、その仮燃料噴射補正量：ＦＰＧＮOを今回の最終の仮燃料噴射補正量：ＦＰＧＮとしてＲＡＭ４４の所定領域に記憶させる。
【０１５８】
一方、ＣＰＵ４２は、仮燃料噴射補正量：ＦＰＧＮを算出する際に、希薄燃焼内燃機関１が非アイドル状態にあると判定した場合は、図７に示すような非アイドル時燃料噴射補正量制御ルーチンを実行して、仮燃料噴射補正量：ＦＰＧＮを算出する。
【０１５９】
前記非アイドル時燃料噴射補正量制御ルーチンでは、ＣＰＵ４２は、Ｓ７０１において、アクセルポジションセンサ２５の出力信号値（アクセル開度）：ＡＣＡと機関回転数：ＮＥとをＲＡＭ４４から読み出す。
【０１６０】
Ｓ７０２では、ＣＰＵ４２は、前記Ｓ７０１で読み出されたアクセル開度：ＡＣＡと機関回転数：ＮＥとをパラメータとしてＲＯＭ４３の燃焼状態制御マップへアクセスし、その時点における希薄燃焼内燃機関１の燃焼状態を判別する。
【０１６１】
続いて、ＣＰＵ４２は、Ｓ７０３へ進み、前記Ｓ７０２で判定された燃焼状態に応じた各種補正係数を算出する。各種補正係数は、例えば、仮燃料噴射補正量：ＦＰＧＮの更新量：Ｇ，Ｈ等である。
【０１６２】
前記更新量：Ｇは、仮燃料噴射補正量：ＦＰＧＮを増加方向に更新する際に使用される更新量であり、前記更新量：Ｈは、仮燃料噴射補正量：ＦＰＧＮを減少方向に更新する際に使用される更新量である。これらの更新量：Ｇ，Ｈは、予め実験等により求められた値であり、燃焼状態と更新量：Ｇ，Ｈとの関係を示すマップとしてＲＯＭ４３に記憶される。
【０１６３】
Ｓ７０４では、ＣＰＵ４２は、希薄燃焼内燃機関１のトルク変動値：ＤＬＮＩＳＭＸの算出条件が成立しているか否か、すなわち、別途のトルク変動値算出ルーチンによりトルク変動値：ＤＬＮＩＳＭＸが算出されているか否かを判別する。
【０１６４】
前記Ｓ７０４においてトルク変動値：ＤＬＮＩＳＭＸの算出条件が成立していると判定した場合は、ＣＰＵ４２は、Ｓ７０５へ進み、トルク変動値算出ルーチンにおいて算出されたトルク変動値：ＤＬＮＩＳＭＸを入力する。
【０１６５】
Ｓ７０６では、ＣＰＵ４２は、前記Ｓ７０５で入力されたトルク変動値：ＤＬＮＩＳＭＸと目標トルク変動値：ＬＶＬＤＬＮとを比較する。
【０１６６】
前記Ｓ７０６においてトルク変動値：ＤＬＮＩＳＭＸが目標トルク変動値：ＬＶＬＤＬＮ未満であると判定した場合は、ＣＰＵ４２は、Ｓ７０７へ進み、基本燃料噴射補正量：ｔＦＰＧＮを算出する。具体的には、ＣＰＵ４２は、本ルーチンを前回実行した際に算出された最終の仮燃料噴射補正量：ＦＰＧＮi-1に前記Ｓ７０３で算出された更新量：Ｇを加算して、基本燃料噴射補正量：ｔＦＰＧＮを算出する。
【０１６７】
続いて、ＣＰＵ４２は、Ｓ７０８へ進み、前記Ｓ７０７で算出された基本燃料噴射補正量：ｔＦＰＧＮを最終の仮燃料噴射補正量：ＦＰＧＮとしてＲＡＭ４４の所定領域に記憶させ、本ルーチンの実行を終了する。
【０１６８】
また、前記Ｓ７０６においてトルク変動値：ＤＬＮＩＳＭＸが目標トルク変動値：ＬＶＬＤＬＮ以上であると判定した場合は、ＣＰＵ４２は、Ｓ７０９へ進み、
トルク変動値：ＤＬＮＩＳＭＸと目標トルク変動値：ＬＶＬＤＬＮに所定値βを加算した値（＝ＬＶＬＤＬＮ＋β）とを比較する。
【０１６９】
前記Ｓ７０９においてトルク変動値：ＤＬＮＩＳＭＸが目標トルク変動値：ＬＶＬＤＬＮに所定値βを加算した値（＝ＬＶＬＤＬＮ＋β）以上であると判定した場合は、ＣＰＵ４２は、Ｓ７１０へ進む。
【０１７０】
Ｓ７１０では、ＣＰＵ４２は、基本燃料噴射補正量：ｔＦＰＧＮを算出する。具体的には、ＣＰＵ４２は、本ルーチンを前回実行した際に算出された最終の仮燃料噴射補正量：ＦＰＧＮi-1から前記Ｓ７０３で算出された更新量：Ｈを減算して、基本燃料噴射補正量：ｔＦＰＧＮを算出する。
【０１７１】
続いて、ＣＰＵ４２は、Ｓ７０８へ進み、前記Ｓ７１０で算出された基本燃料噴射補正量：ｔＦＰＧＮを最終の仮燃料噴射補正量：ＦＰＧＮとしてＲＡＭ４４の所定領域に記憶させ、本ルーチンの実行を終了する。
【０１７２】
また、前記Ｓ７０９においてトルク変動値：ＤＬＮＩＳＭＸが目標トルク変動値：ＬＶＬＤＬＮに所定値βを加算した値（＝ＬＶＬＤＬＮ＋β）未満であると判定した場合、すなわち、トルク変動値：ＤＬＮＩＳＭＸと目標トルク変動値：ＬＶＬＤＬＮとの差が所定値β未満であると判定した場合は、ＣＰＵ４２は、Ｓ７１１へ進む。
【０１７３】
Ｓ７１１では、ＣＰＵ４２は、本ルーチンを前回実行した際に算出された最終の仮燃料噴射補正量：ＦＰＧＮi-1を基本燃料噴射補正量：ｔＦＰＧＮとして設定する。
【０１７４】
続いて、ＣＰＵ４２は、Ｓ７０８へ進み、前記Ｓ７１１で算出された基本燃料噴射補正量：ｔＦＰＧＮを最終の仮燃料噴射補正量：ＦＰＧＮとしてＲＡＭ４４の所定領域に記憶させ、本ルーチンの実行を終了する。
【０１７５】
また、前記Ｓ７０４においてトルク変動値：ＤＬＮＩＳＭＸの算出条件が不成立であると判定した場合は、ＣＰＵ４２は、Ｓ７１２へ進み、本ルーチンを以前に実行した際に算出された最終の仮燃料噴射補正量であって、且つトルク変動値：ＤＬＮＩＳＭＸの算出条件が成立しているときに算出された仮燃料噴射補正量のうち、最新の仮燃料噴射補正量：ＦＰＧＮOをＲＡＭ４４から読み出し、その仮燃料噴射補正量：ＦＰＧＮOを今回の最終の仮燃料噴射補正量：ＦＰＧＮとしてＲＡＭ４４の所定領域に記憶させ、本ルーチンの実行を終了する。
【０１７６】
上記した非アイドル時燃料噴射補正量制御ルーチンによれば、前述の図８の説明で述べたように、燃料噴射量の増加によるトルク変動値の悪化が防止されるとともに、目標トルク変動値ＬＶＬＤＬＮを中心とした許容範囲内にトルク変動値を収束させることができる。
【０１７７】
ここで、ＣＰＵ４２は、図３のパージ実行制御ルーチンに戻り、Ｓ３０３において、前回のパージ制御実行時に算出された燃料噴射補正量の学習値：ＦＰＧＢをＲＡＭ４４の所定領域から読み出す。
【０１７８】
Ｓ３０４では、ＣＰＵ４２は、前記Ｓ３０２で算出された電磁弁３９制御用デューティ比：ＤＰＧと前記Ｓ３０３で読み出した学習値：ＦＰＧＢとに基づいて燃料噴射補正量の更新量：ＦＰＧＤを算出する。具体的には、ＣＰＵ４２は、下記の式に従って、更新量：ＦＰＧＤを算出する。
【０１７９】
ＦＰＧＤ＝（ＤＰＧ−Ｃ）×Ｋ
Ｋ＝（△ＰＭ／△ＰＭB）×（ＦＰＧＢ／（ＤＰＧ−Ｃ）B）
（Ｃ：定数、△ＰＭB：前回の△ＰＭ、（ＤＰＧ−Ｃ）B：前回の（ＤＰＧ−Ｃ））
続いて、ＣＰＵ４２は、Ｓ３０５へ進み、前記Ｓ３０２で算出された仮燃料噴射補正量：ＦＰＧＮと前記Ｓ３０４で算出された更新量：ＦＰＧＤとを加算して、新たな学習値：ＦＰＧを算出する。
【０１８０】
前記Ｓ３０５の処理を実行し終えたＣＰＵ４２は、本ルーチンの実行を一旦終了し、図９に示すようなパージ流量ガード制御ルーチンを実行する。パージ流量ガード制御ルーチンでは、ＣＰＵ４２は、Ｓ９０１において、別途のパージ実行制御ルーチンで算出された燃料噴射補正量：ＦＰＧが所定値：Ｃｆ未満であるか否かを判別する。
【０１８１】
ここで、前記所定値：Ｃｆは、燃料噴射弁９固有の最低噴射量に相当する値であり、予め実験等により求められた値である。この所定値：Ｃｆは、ＲＯＭ４３の所定領域に記憶される。
【０１８２】
前記Ｓ９０１において前記燃料噴射補正量：ＦＰＧが所定値：Ｃｆ以上であると判定した場合は、ＣＰＵ４２は、本ルーチンの実行を終了する。一方、前記Ｓ９０１において前記燃料噴射補正量：ＦＰＧが所定値：Ｃｆ未満であると判定した場合は、ＣＰＵ４２は、Ｓ９０２へ進む。
【０１８３】
Ｓ９０２では、ＣＰＵ４２は、パージ実行制御ルーチンで算出された電磁弁３９制御用デューティ比：ＤＰＧが所定の上限ガード値：Ｃｄ以上であるか否かを判別する。
【０１８４】
ここで、前記上限ガード値：Ｃｄは、パージ量の限界値に相当する値である。つまり、前記上限ガード値：Ｃｄは、希薄燃焼内燃機関１で燃焼が成立する範囲内における最大のパージ量に相当する値である。この上限ガード値：Ｃｄは、予め実験等により求められた値であり、ＲＯＭ４３の所定領域に記憶される。
【０１８５】
尚、前記上限ガード値：Ｃｄは、固定値でもよく、希薄燃焼内燃機関の燃焼状態、燃料温度、燃料性状、あるいは給油燃料量に応じて変更される可変値でもよい。
【０１８６】
上限ガード値を可変値とする場合は、上限ガード値は、図１０に示すように、燃料噴射補正量：ＦＰＧの大きさに比例して大きくなるよう設定されることが好ましい。
【０１８７】
前記Ｓ９０２において前記電磁弁３９制御用デューティ比：ＤＰＧが前記上限ガード値：Ｃｄ未満であると判定した場合は、ＣＰＵ４２は、本ルーチンの実行を終了する。一方、前記Ｓ９０２において前記電磁弁３９制御用デューティ比：ＤＰＧが前記上限ガード値：Ｃｄ以上であると判定した場合は、ＣＰＵ４２は、Ｓ９０３へ進む。
【０１８８】
Ｓ９０３では、ＣＰＵ４２は、前記上限ガード値：Ｃｄを新たな電磁弁３９制御用デューティ比：ＤＰＧとしてＲＡＭ４４の所定領域へ記憶させる。
【０１８９】
ＣＰＵ４２は、上記したようなパージ流量ガード制御ルーチンを実行し終えると、パージ流量ガード制御ルーチンにより特定された電磁弁３９制御用デューティ比：ＤＰＧに対応する駆動パルス信号を電磁弁３９に印加する。これと同時に、ＣＰＵ４２は、図示しない燃料噴射量制御ルーチンで算出された基本燃料噴射量：ＱＡＬＬから、パージ実行制御ルーチンで算出された学習値：ＦＰＧを減算して、実際の燃料噴射量：ＱＡＬＬＩＮＪ（＝ＱＡＬＬ−ＦＰＧ）を算出し、算出した燃料噴射量：ＱＡＬＬＩＮＪに対応する駆動電流を燃料噴射弁９へ印加する。
【０１９０】
尚、ＣＰＵ４２は、希薄燃焼内燃機関１の運転状態に関わらず上記したパージ実行制御ルーチンにより燃料噴射補正量：ＦＰＧの学習制御を行うようにしても良く、もしくは希薄燃焼内燃機関１でリーン状態の混合気が燃焼されている場合のみパージ実行制御ルーチンを実行して燃料噴射補正量：ＦＰＧの学習制御を行い、理想空燃比近傍の混合気が燃焼されている場合は第１あるいは第２空燃比センサ３０、３２の出力信号値に基づいて燃料噴射補正量：ＦＰＧの学習制御を行うようにしてもよい。
【０１９１】
以上述べた実施の形態によれば、希薄燃焼内燃機関１の運転状態に依存せず、電磁弁３９の開度（電磁弁３９制御用デューティ比：ＤＰＧ）に応じて燃料噴射補正量：ＦＰＧを学習するため、蒸発燃料の濃度を検出するための専用のセンサを取り付ける必要がなく、且つ機関運転状態が変化した場合でも燃料噴射補正量：ＦＰＧを適切な値にすることができ、燃焼室５内に必要以上の燃料が供給されることがない。この結果、希薄燃焼内燃機関において、蒸発燃料のパージに起因した燃焼状態の悪化が防止される。
【０１９２】
〈実施の形態２〉
本発明にかかる蒸発燃料処理装置の第２の実施の形態について図面に基づいて説明する。ここでは、前述の第１の実施の形態と異なる構成について説明し、同様の構成については説明を省略する。
【０１９３】
前述の第１の実施の形態では、ＤＰＧに基づいてＦＰＧを調節する例について述べたが、本実施の形態では、ＦＰＧに基づいてＤＰＧを調節する例について述べる。
【０１９４】
図１１は、本実施の形態におけるパージ実行制御ルーチンを示すフローチャート図である。このパージ実行制御ルーチンでは、ＣＰＵ４２、Ｓ１１０１において、パージ実行条件が成立しているか否かを判別する。
【０１９５】
前記Ｓ１１０１においてパージ実行条件が不成立であると判定した場合は、ＣＰＵ４２は、本ルーチンの実行を一旦終了する。一方、前記Ｓ１１０１においてパージ実行条件が成立していると判定した場合は、ＣＰＵ４２は、Ｓ１１０２へ進む。
【０１９６】
Ｓ１１０２では、ＣＰＵ４２は、その時点における電磁弁３９制御用デューティ比：ＤＰＧ（このデューティ比は、本ルーチンを前回実行した際に算出された電磁弁３９制御用デューティ比：ＤＰＧi-1である）が所定値：Ｃ0未満であるか否かを判別する。
【０１９７】
前記所定値：Ｃ0は、電磁弁３９を有効に作動させるデューティ比の最小値である。つまり、電磁弁３９をデューティ制御する場合、所定値以上のデューティ比で電磁弁３９を制御すると、パージ通路４９の流量がデューティ比に対応して増減するが、前記所定値未満のデューティ比で電磁弁３９を制御すると、パージ通路４９の流量がデューティ比に対応しなくなるため、前記所定値が電磁弁３９を有効に作動させるデューティ比の最小値：Ｃ0となる。この最小値：Ｃ0は、予め実験等で求められた値であり、ＲＯＭ４３の所定領域に記憶される。
【０１９８】
前記Ｓ１１０２において電磁弁３９制御用デューティ比：ＤＰＧi-1が所定値：Ｃ0未満であると判定した場合は、ＣＰＵ４２は、Ｓ１１０３へ進み、その電磁弁３９制御用デューティ比：ＤＰＧi-1に第１の所定値：Ｃｄ1を加算して、新たな電磁弁３９制御用デューティ比：ＤＰＧを算出し、本ルーチンの実行を終了する。前記Ｓ１１０で算出された新たな電磁弁３９制御用デューティ比：ＤＰＧは、ＲＡＭ４４の所定領域に記憶される。
【０１９９】
また、前記Ｓ１１０２において電磁弁３９制御用デューティ比：ＤＰＧi-1が所定値：Ｃ0以上であると判定した場合は、ＣＰＵ４２は、電磁弁３９が有効に作動しているとみなし、Ｓ１１０４へ進む。
【０２００】
Ｓ１１０４では、ＣＰＵ４２は、燃料噴射補正量：ＦＰＧの算出処理を行う。具体的には、ＣＰＵ４２は、実機関回転数：ＮＥから目標回転数：ＮＴを減算して偏差：ＤＬＮＴを算出する。続いて、ＣＰＵ４２は、偏差：ＤＬＮＴと更新量：ｄＦＰＧとの関係を示す制御マップより、前記偏差：ＤＬＮＴに対応する更新量：ｄＦＰＧを算出する。
【０２０１】
前記制御マップは、例えば、図１２に示すように、偏差：ＤＬＮＴ（＝ＮＥ−ＮＴ）が正値の場合はそれに比例して更新量：ｄＦＰＧが正値となり、且つ、偏差：ＤＬＮＴ（＝ＮＥ−ＮＴ）が負値の場合はそれに比例して更新量：ｄＦＰＧが負値となるよう設定される。
【０２０２】
ＣＰＵ４２は、前記制御マップと偏差：ＤＬＮＴとに基づいて更新量：ｄＦＰＧを算出すると、本ルーチンを前回実行した際に算出された燃料噴射補正量：ＦＰＧi-1に前記更新量：ｄＦＰＧを加算して新たな燃料噴射補正量：ＦＰＧ（＝ＦＰＧi-1＋ｄＦＰＧ）を算出する。この新たな燃料噴射補正量：ＦＰＧは、ＲＡＭ４４の所定領域に記憶される。
【０２０３】
続いて、ＣＰＵ４２は、Ｓ１１０５へ進み、前記Ｓ１１０４において燃料噴射補正量：ＦＰＧの算出過程で算出された更新量：ｄＦＰＧが正値であるか否かを判別する。
【０２０４】
前記Ｓ１１０５において更新量：ｄＦＰＧが正値であると判定した場合は、ＣＰＵ４２は、Ｓ１１０６へ進み、本ルーチンを前回実行した際に算出された電磁弁３９制御用デューティ比：ＤＰＧi-1から第２の所定値：Ｃｄ2を減算して、新たな電磁弁３９制御用デューティ比：ＤＰＧ（＝ＤＰＧi-1−Ｃｄ2）を算出し、本ルーチンの実行を終了する。前記Ｓ１１０６で算出された新たな電磁弁３９制御用デューティ比：ＤＰＧは、ＲＡＭ４４の所定領域に記憶される。
【０２０５】
一方、前記Ｓ１１０５において更新量：ｄＦＰＧが“０”以下の値であると判定した場合は、ＣＰＵ４２は、Ｓ１１０７へ進み、本ルーチンを前回実行した際に算出された電磁弁３９制御用デューティ比：ＤＰＧi-1に第３の所定値：Ｃｄ3を加算して、新たな電磁弁３９制御用デューティ比：ＤＰＧ（＝ＤＰＧi-1＋Ｃｄ3）を算出し、本ルーチンの実行を終了する。前記Ｓ１１０７で算出された新たな電磁弁３９制御用デューティ比：ＤＰＧは、ＲＡＭ４４の所定領域に記憶される。
【０２０６】
尚、前記した第１〜第３の所定値：Ｃｄ1〜Ｃｄ3は、予め実験等で求められた値であり、ＲＯＭ４３の所定領域に記憶される。
【０２０７】
以上述べた、パージ実行制御ルーチンによれば、燃料噴射補正量：ＦＰＧが増加傾向にあるときは、電磁弁３９制御用デューティ比：ＤＰＧを減少補正し、燃料噴射補正量：ＦＰＧが減少傾向にあるときは、電磁弁３９制御用デューティ比：ＤＰＧを増加補正するため、電磁弁３９制御用デューティ比：ＤＰＧが燃料噴射補正量：ＦＰＧに対して過度に大きくなることがなく、燃料過多による燃焼状態の悪化が防止される。
【０２０８】
【発明の効果】
本発明に係る蒸発燃料処理装置では、蒸発燃料のパージを実行する際に、パージ通路の流量に基づいて燃料噴射量が補正されるため、酸素過剰状態の混合気の燃焼が行われているときでも、燃料噴射量が適切に調節される。
【０２０９】
従って、本発明によれば、希薄燃焼内燃機関の運転状態に影響されることなく、希薄燃焼内燃機関に供給される燃料量を適量に保つことができ、パージによる燃焼状態の悪化が防止される。
【図面の簡単な説明】
【図１】  本発明にかかる蒸発燃料処理装置を適用する希薄燃焼内燃機関の概略構成を示す図
【図２】  ＥＣＵの内部構成を示すブロック図
【図３】  第１の実施の形態にかかるパージ実行制御ルーチンを示すフローチャート図
【図４】  アイドル時デューティ比制御ルーチンを示すフローチャート図
【図５】  非アイドル時デューティ比制御ルーチンを示すフローチャート図
【図６】  アイドル時燃料噴射補正量制御ルーチンを示すフローチャート図
【図７】  非アイドル時燃料噴射補正量制御ルーチンを示すフローチャート図
【図８】  希薄燃焼内燃機関に供給される燃料量とトルク変動量の関係を示す図
【図９】  パージ流量ガード制御ルーチンを示すフローチャート図
【図１０】  上限ガード値：Ｃｄと燃料噴射補正量：ＦＰＧとの関係を示す図
【図１１】  第２の実施の形態にかかるパージ実行制御ルーチンを示すフローチャート図
【図１２】  偏差：ＤＬＮＴと更新量：ｄＦＰＧとの関係を示す制御マップの具体例を示す図
【符号の説明】
１・・・希薄燃焼内燃機関
４・・・クランクシャフト
５・・・燃焼室
７・・・吸気ポート
９・・・燃料噴射弁
１３・・クランクポジションセンサ
１４・・水温センサ
１６・・吸気枝管
１７・・サージタンク
１８・・吸気管
１９・・エアクリーナボックス
２１・・スロットル弁
２３・・スロットルポジションセンサ
２５・・アクセルポジションセンサ
２６・・エアフローメータ
３３・・燃料タンク
３４・・チャコールキャニスタ
３５・・蒸発燃料通路
３６・・タンク内圧制御弁
３７・・大気導入通路
３８・・負圧導入通路
３９・・電磁弁
４０・・ＥＣＵ
４９・・パージ通路
【図１】
0003777794.tif 000002
【図２】
0003777794.tif 000003
【図３】
0003777794.tif 000004
【図４】
0003777794.tif 000005
【図５】
0003777794.tif 000006
【図６】
0003777794.tif 000007
【図７】
0003777794.tif 000008
【図８】
0003777794.tif 000009
【図９】
0003777794.tif 000010
【図１０】
0003777794.tif 000011
【図１１】
0003777794.tif 000012
【図１２】
0003777794.tif 000013