(57)【要約】      （修正有）【課題】空燃比学習制御の学習領域の移行時の空燃比制御を制度良く行う。【解決手段】空燃比を目標空燃比と一致させるために排ガスの空燃比に基づいて燃料噴射量を補正するための補正値を学習する空燃比学習をそれぞれが吸入空気量に対応する複数の領域規定値により規定される複数の学習領域毎に行う。更にスロットル弁通過空気量に関連する指標値が学習が完了している学習領域に属するか否かを判定する領域判定を行う。指標値が学習が完了している学習領域に属すると判定された場合、パージの実行を許可し、指標値が学習が完了していない学習領域に属すると判定された場合、パージを停止する。パージ停止中はスロットル弁通過空気量を指標値として用いて領域判定を行い、パージ実行中はパージによって吸気通路に導入される蒸発燃料とともに導入される空気の量をスロットル弁通過空気量に加えた値を指標値として用いて領域判定を行う。【選択図】図１０
2016145546.tif 000002
【特許請求の範囲】
【請求項１】
燃焼室に燃料を供給するための燃料噴射弁、
燃焼室に吸入される空気の量を制御するためのスロットル弁、
燃料を貯留するための燃料タンク、
前記燃料タンクにて発生した蒸発燃料を貯留するためのキャニスタ、
前記キャニスタに貯留されている蒸発燃料を前記スロットル弁下流において吸気通路に導入するためのパージ管、及び、
前記パージ管を介して前記吸気通路に導入される蒸発燃料の量を制御するためのパージ制御弁、
を備えた内燃機関に適用され、
前記燃料噴射弁、前記スロットル弁、及び、前記パージ制御弁の作動を制御する制御部を有し、
前記制御部は、
燃焼室に形成される混合気の空燃比を目標空燃比と一致させるために排ガスの空燃比に基づいて前記燃料噴射弁から前記燃焼室に供給される燃料の量を補正するための補正値を学習する空燃比学習を、それぞれが前記機関の吸入空気量に対応する複数の領域規定値により規定される複数の学習領域毎に行い、
前記スロットル弁を通過する空気の量であるスロットル弁通過空気量に関連する指標値が前記複数の学習領域のうちの前記空燃比学習が完了している学習領域に属するか否かを判定する学習完了領域判定を行い、
前記指標値が前記空燃比学習が完了している学習領域に属すると判定された場合には前記パージ制御弁を開弁することによって前記パージ管を介して前記吸気通路へ蒸発燃料を導入するパージの実行を許可し、
前記指標値が前記空燃比学習が完了していない学習領域に属すると判定された場合には前記パージ制御弁を全閉することによって前記パージを停止する、
内燃機関の制御装置において、
前記制御部は、
前記パージが停止されている場合、前記スロットル弁通過空気量を前記指標値として用いて前記習完了領域判定を行い、
前記パージが実行されている場合、前記パージによって前記吸気通路に導入される蒸発燃料とともに導入される空気の量を前記スロットル弁通過空気量に加えた値を前記指標値として用いて前記学習完了領域判定を行う、
制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、燃料タンクにおいて発生した蒸発燃料の吸気通路への導入（パージ）を制御するための内燃機関の制御装置に関する。
【背景技術】
【０００２】
燃料タンクにおいて発生した蒸発燃料（ベーパ）をスロットル弁の下流位置にて吸気通路に導入する蒸発燃料処理装置を備えた内燃機関の制御装置が特許文献１に記載されている。この制御装置（以下、「従来装置」と称呼する。）は、所定条件が成立した場合、蒸発燃料処理装置によって蒸発燃料を吸気通路に導入する。
【０００３】
更に、従来装置は、スロットル弁の上流位置に配設されたエアフローメータによって吸入空気量（スロットル弁を通過する空気の量であるスロットル弁通過空気量）を取得する。
【０００４】
加えて、従来装置は、「吸入空気量に応じて分割された複数の領域（学習領域）」それぞれにおいて空燃比フィードバック学習（以下、「空燃比学習」と称呼する。）を行う。この空燃比学習は、空燃比を目標空燃比と一致させるために排ガスの空燃比に基づいて燃料噴射量をフィードバック制御したときの定常偏差を演算し記憶しておく制御である。従来装置は、そのときのスロットル弁通過空気量が属する学習領域が「既に空燃比学習が完了している学習領域」である場合、吸気通路への蒸発燃料の導入（パージ）を実行する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００８−１８０１４２号公報（段落００７９、段落００９５乃至段落０１４１を参照。）
【発明の概要】
【０００６】
ところで、パージが開始されるとスロットル弁下流の負圧（吸気負圧）の大きさが小さくなり、その結果、スロットル弁通過空気量が少なくなる。このとき、スロットル弁通過空気量が属する学習領域が「パージ開始前にスロットル弁通過空気量が属していた学習領域」から「別の学習領域」に移行することがある。この場合において、前記別の学習領域が「空燃比学習が完了していない領域」であると、パージが停止される。
【０００７】
パージが停止されると吸気負圧の大きさが大きくなり、その結果、スロットル弁通過空気量が多くなる。このとき、スロットル弁通過空気量が属する学習領域が「パージ停止前にスロットル弁通過空気量が属していた学習領域」から「元の学習領域」に移行することがある。この場合、元の学習領域は「既に空燃比学習が完了している領域」であるので、再び、パージが開始される。
【０００８】
このように、各時点におけるスロットル弁通過空気量が「空燃比学習が完了している学習領域」に属しているか否かによってパージの実行の有無を判断するようになっている場合、パージの開始と停止とが短い時間間隔で繰り返されてしまう事態が発生する場合がある。その結果、空燃比が変動する可能性が高まる。
【０００９】
特に、パージの開始に伴ってスロットル弁開度を減少させるようにしている内燃機関では、上記事態が頻繁に発生する可能性が高い。尚、パージの開始に伴ってスロットル弁開度を減少させる理由は以下のとおりである。
【００１０】
パージの開始に伴い、パージ管を通して蒸発燃料のみならず空気も機関に供給される。このとき、スロットル弁下流の負圧の大きさの減少によるスロットル弁通過空気量の減少量よりもパージ管を通して機関に供給される空気の増加量の方が大きい。よって、パージが開始されると、スロットル弁開度が変化しないにも関わらず「機関に実際に吸入される空気量」が増大する。従って、パージの開始に伴い、スロットル弁開度を減少させてスロットル弁通過空気量を減少させ、それにより「機関に実際に吸入される空気量」が大きく増大することを防ぐことができる。これが「パージの開始に伴ってスロットル弁開度を減少させる理由」である。
【００１１】
本発明は、上述した課題に対処するためになされたものである。即ち、本発明の目的の１つは、パージの開始と停止とが繰り返されることを防止することができるようにパージを制御する内燃機関の制御装置を提供することにある。
【００１２】
本発明の制御装置（以下、「本発明装置」と称呼する。）は、
（１）燃焼室に燃料を供給するための燃料噴射弁、
（２）燃焼室に吸入される空気の量を制御するためのスロットル弁、
（３）燃料を貯留するための燃料タンク、
（４）前記燃料タンクにて発生した蒸発燃料を貯留するためのキャニスタ、
（５）前記キャニスタに貯留されている蒸発燃料を前記スロットル弁下流において吸気通路に導入するためのパージ管、及び、
（６）前記パージ管を介して前記吸気通路に導入される蒸発燃料の量を制御するためのパージ制御弁、
を備えた内燃機関に適用される。
【００１３】
本発明装置は、前記燃料噴射弁、前記スロットル弁、及び、前記パージ制御弁の作動を制御する制御部を有する。
【００１４】
前記制御部は、燃焼室に形成される混合気の空燃比を目標空燃比と一致させるために排ガスの空燃比に基づいて前記燃料噴射弁から前記燃焼室に供給される燃料の量を補正するための補正値を学習する空燃比学習を、それぞれが前記機関の吸入空気量に対応する複数の領域規定値により規定される複数の学習領域毎に行う。
【００１５】
更に、前記制御部は、前記スロットル弁を通過する空気の量であるスロットル弁通過空気量に関連する指標値が前記複数の学習領域のうち前記空燃比学習が完了している学習領域に属するか否かを判定する学習完了領域判定を行う。
【００１６】
前記制御部は、前記指標値が前記空燃比学習が完了している学習領域に属すると判定された場合には前記パージ制御弁を開弁することによって前記パージ管を介して前記吸気通路へ蒸発燃料を導入するパージの実行を許可する。一方、前記制御部は、前記指標値が前記空燃比学習が完了していない学習領域に属すると判定された場合には前記パージ制御弁を全閉することによって前記パージを停止する。
【００１７】
前記制御部は、前記パージが停止されている場合、前記スロットル弁通過空気量を前記指標値として用いて前記学習完了領域判定を行う。一方、前記制御部は、前記パージが実行されている場合、前記パージによって前記吸気通路に導入される蒸発燃料とともに導入される空気の量を前記スロットル弁通過空気量に加えた値を前記指標値として用いて前記学習完了領域判定を行う。
【００１８】
本発明装置は、各時点における前記指標値が属する学習領域に対応する空燃比学習が完了すると、パージを開始する。このとき、パージ管を介して吸気通路に導入される蒸発燃料とともに空気も吸気通路に導入される。従って、スロットル弁下流の吸気通路内の負圧の大きさが小さくなる。その結果、スロットル弁通過空気量が少なくなる。
【００１９】
ここで、前記指標値としてスロットル弁通過空気量のみを用いていると、そのスロットル弁通過空気量が属する学習領域が別の学習領域に移行する場合がある。このとき、その移行した学習領域に対応する空燃比学習が完了していない場合、パージが停止される。このとき、パージ管を介して吸気通路に導入される空気の量が「０」になる。従って、スロットル弁下流の吸気通路内の負圧の大きさが大きくなる。その結果、スロットル弁通過空気量が多くなる。
【００２０】
このとき、そのスロットル弁通過空気量が属する学習領域が元の学習領域に移行する可能性がある。このとき、その移行した元の学習領域に対応する空燃比学習は完了しているので、再び、パージが開始される。
【００２１】
このように、前記指標値としてスロットル弁通過空気量のみを用いている場合、パージの開始と停止とが繰り返し行われる可能性がある。
【００２２】
これに対し、本発明装置は、パージを開始した場合、前記指標値として「パージによって吸気通路に導入される空気の量」を「スロットル弁通過空気量」に加えた値を用いる。従って、パージが開始されてスロットル弁通過空気量が少なくなったとしても、前記指標値はパージを開始する前の指標値と同じ値（又は略同じ値）である。このため、パージが開始されたとしても、前記指標値が属する学習領域が別の学習領域に移行することは殆どない。
【００２３】
更に、本発明装置は、パージを停止した場合、前記指標値として「スロットル弁通過空気量」を用いる。従って、パージが停止されてスロットル弁通過空気量が多くなったとしても、前記指標値はパージを停止する前の指標値と同じ値（又は略同じ値）である。このため、パージが停止されたとしても、前記指標値が属する学習領域が別の学習領域に移行することは殆どない。
【００２４】
従って、本発明装置によれば、パージの開始と停止とが繰り返し行われることを防止することができる。
【図面の簡単な説明】
【００２５】
【図１】図１は、本発明の実施形態（本実施形態）に係る制御装置が適用される内燃機関の全体図である。
【図２】図２は、上流側空燃比センサの出力特性を示した図である。
【図３】図３は、下流側空燃比センサの出力特性を示した図である。
【図４】図４は、図１に示したＣＰＵが実行する燃料噴射量制御ルーチンを示したフローチャートである。
【図５】図５は、図１に示したＣＰＵが実行するメインフィードバック制御ルーチンを示したフローチャートである。
【図６】図６は、図１に示したＣＰＵが実行するメインフィードバック学習（空燃比学習）ルーチンを示したフローチャートである。
【図７】図７は、図１に示したＣＰＵが実行するパージ濃度学習ルーチンを示したフローチャートである。
【図８】図８は、図１に示したＣＰＵが実行するサブフィードバック量算出ルーチンを示したフローチャートである。
【図９】図９は、図１に示したＣＰＵが実行するスロットル弁通過空気量制御ルーチンを示したフローチャートである。
【図１０】図１０は、図１に示したＣＰＵが実行するパージ制御ルーチンを示したフローチャートである。
【図１１】図１１は、本実施形態に従ってパージ制御条件の成立の有無を判断した場合におけるパージ制御条件の成立・不成立等を示したタイムチャートである。
【図１２】図１２は、本実施形態とは異なる形態に従ってパージ制御条件の成立の有無を判断した場合におけるパージ制御条件の成立・不成立等を示したタイムチャートである。
【発明を実施するための形態】
【００２６】
以下、図面を参照しながら、本発明の実施形態に係る「内燃機関の制御装置（以下、「本制御装置」と称呼する。）」について説明する。
【００２７】
（構成）
本制御装置は、図１に示した内燃機関（機関）１０に適用される。機関１０は、多気筒（本例では直列４気筒）・４サイクル・ピストン往復動型・火花点火式ガソリン機関である。図１は、１つの気筒のみを示しているが、他の気筒も同様な構成を備えている。
【００２８】
内燃機関１０は、シリンダブロック、シリンダブロックロワーケース及びオイルパン等を含むシリンダブロック部２０、シリンダブロック部２０の上に固定されるシリンダヘッド部３０、シリンダブロック部２０に燃料と空気とからなる混合気を供給するための吸気システム４０、及び、シリンダブロック部２０からの排ガスを外部に放出するための排気システム５０、を備えている。
【００２９】
シリンダブロック部２０は、シリンダ２１、ピストン２２、コンロッド２３、及び、クランクシャフト２４を備えている。ピストン２２は、シリンダ２１内を往復動する。ピストン２２の往復動は、コンロッド２３を介してクランクシャフト２４に伝達され、これにより、クランクシャフト２４が回転するようになっている。シリンダ２１、ピストン２２及びシリンダヘッド部３０は、燃焼室（気筒）２５を形成している。
【００３０】
シリンダヘッド部３０は、燃焼室２５に連通した吸気ポート３１、吸気ポート３１を開閉する吸気弁３２、燃焼室２５に連通した排気ポート３３、排気ポート３３を開閉する排気弁３４、燃焼室２５内の燃料に点火する点火装置３５、及び、燃料を吸気ポート３１内に噴射する燃料噴射弁３９を備えている。
【００３１】
燃料噴射弁３９は、後述するエンジンＥＣＵ（電子制御ユニット）８０の指示に応答して開弁し、吸気ポート３１に燃料を噴射するようになっている。
【００３２】
点火装置３５は、点火プラグ３７、及び、点火プラグ３７に与える高電圧を発生するイグニッションコイルを含むイグナイタ３８を含む。イグナイタ３８は、後述するＥＣＵ８０の指示に応答してイグニッションコイルによって高電圧を発生するようになっている。この高電圧は点火プラグ３７に与えられ、点火プラグ３７によって火花が生成される。
【００３３】
吸気システム４０は、吸気ポート３１に連通したインテークマニホールド４１、インテークマニホールド４１に連通したサージタンク４２、及び、サージタンク４２に一端が接続された吸気管４３を備えている。吸気ポート３１、インテークマニホールド４１、サージタンク４２及び吸気管４３は、吸気通路を構成している。
【００３４】
更に、吸気システム４０は、吸気管４３の他端から下流（サージタンク４２）に向けて順に、吸気管４３に配設されたエアフィルタ４４、スロットル弁４５及びスロットル弁アクチュエータ４５ａを備えている。
【００３５】
スロットル弁４５は、吸気管４３に回転可能に支持され、スロットル弁アクチュエータ４５ａによって駆動されることにより開度が調整されるようになっている。これにより、スロットル弁４５は、吸気管４３の通路断面積を可変とするようになっている。スロットル弁４５の開度（スロットル弁開度）ＴＡは、通路断面積を最小とする状態におけるスロットル弁４５の位置から回転した角度により定義される。
【００３６】
スロットル弁アクチュエータ４５ａは、ＤＣモータからなり、ＥＣＵ８０の指示に応答してスロットル弁４５を駆動するようになっている。
【００３７】
排気システム５０は、排気ポート３３に連通するエキゾーストマニホールド５１、及び、エキゾーストマニホールド５１に接続された排気管５２を備えている。排気ポート３３、エキゾーストマニホールド５１及び排気管５２は、排気通路を構成している。
【００３８】
更に、排気システム５０は、排気管５２に配設された三元触媒５３を備えている。三元触媒５３は、所謂、白金等の貴金属からなる活性成分を担持する三元触媒装置（排気浄化触媒）である。三元触媒５３は、そこに流入するガスの空燃比が理論空燃比であるとき、ＨＣ、ＣＯ、Ｈ２等の未燃成分を酸化するとともに、ＮＯｘ（窒素酸化物）を還元する機能を有する。
【００３９】
更に、三元触媒５３は、酸素を吸蔵（貯蔵）する酸素吸蔵機能を有し、この酸素吸蔵機能により空燃比が理論空燃比から偏移したとしても、未燃成分及びＮＯｘを浄化することができる。この酸素吸蔵機能は、三元触媒５３に担持されているセリア（ＣｅＯ２）によってもたらされる。
【００４０】
更に、内燃機関１０は、液体ガソリン燃料を貯留する燃料タンク６０、燃料タンク６０内にて発生した蒸発燃料を吸蔵（貯留）可能なキャニスタ６１、前記蒸発燃料を含むガスを燃料タンク６０からキャニスタ６１へと導くためのベーパ捕集管６２、キャニスタ６１から脱離した蒸発燃料を「蒸発燃料ガス」としてサージタンク４２に導入するためのパージ管６３、及び、パージ管６３に配設されたパージ制御弁６４を備えている。
【００４１】
燃料タンク６０に貯留された燃料は、燃料ポンプ６５及び燃料供給管６６等を通して燃料噴射弁３９に供給されるようになっている。ベーパ捕集管６２及びパージ管６３は、蒸発燃料ガスをサージタンク４２へ供給するためのパージ通路を構成している。
【００４２】
パージ制御弁６４は、指示信号であるデューティ比Ｄprgを表す駆動信号により開度（開弁期間）が調節されることにより、パージ管６３の通路断面積を変更するようになっている。パージ制御弁６４は、デューティ比Ｄprgが「０」であるときにパージ管６３を完全に閉じるようになっている。即ち、パージ制御弁６４は、パージ通路に配設されるとともに指示信号に応答して開度が変更されるように構成されている。
【００４３】
キャニスタ６１は周知のチャコールキャニスタである。キャニスタ６１は、ベーパ捕集管６２に接続されたタンクポート６１ａと、パージ管６３に接続されたパージポート６１ｂと、大気に曝されている大気ポート６１ｃと、が形成された筐体を備える。キャニスタ６１は、その筐体内に、蒸発燃料を吸着するための吸着剤６１ｄを収納している。
【００４４】
キャニスタ６１は、パージ制御弁６４が完全に閉じられている期間において燃料タンク６０内で発生した蒸発燃料を吸蔵するようになっている。一方、キャニスタ６１は、パージ制御弁６４が開かれている期間において、吸蔵した蒸発燃料を蒸発燃料ガスとしてパージ管６３を通してサージタンク４２（スロットル弁４５よりも下流の吸気通路）に放出するようになっている。これにより、蒸発燃料ガスは機関１０の吸気通路を通して各燃焼室２５へ供給される。即ち、パージ制御弁６４が開かれることにより、蒸発燃料ガスパージ（又は、エバポパージ）が行われる。
【００４５】
ＥＣＵ８０は、周知のマイクロコンピュータを含む電子回路であり、ＣＰＵ、ＲＯＭ、ＲＡＭ、バックアップＲＡＭ及びインターフェース等を含む。ＥＣＵ８０は、以下に述べるセンサ類と接続されていて、これらのセンサからの信号を受信（入力）するようになっている。更に、ＥＣＵ８０は、各種アクチュエータ（スロットル弁アクチュエータ４５ａ、燃料噴射弁３９及びパージ制御弁６４等）に指示（駆動）信号を送出するようになっている。
【００４６】
ＥＣＵ８０は、エアフローメータ７１、スロットルポジションセンサ７２、水温センサ７３、クランク角度センサ７４、アクセル操作量センサ７５、空燃比センサ７６、空燃比センサ７７、及び、車速センサ７８と接続されている。
【００４７】
エアフローメータ７１は、吸気管４３に配設されている。このエアフローメータ７１は、そこを通過する空気の質量流量、即ち、スロットル弁４５を通過する空気の質量流量（以下、「スロットル弁通過空気量」と称呼する。）を測定し、そのスロットル弁通過空気量ＧＡthを表す信号を出力する。
【００４８】
スロットルポジションセンサ７２は、スロットル弁４５に近接して吸気管４３に配設されている。このスロットルポジションセンサ７２は、スロットル弁４５の開度（スロットル弁開度）を検出し、スロットル弁開度ＴＡを表す信号を出力するようになっている。
水温センサ７３は、シリンダブロック部２０に配設されている。この水温センサ７３は、機関１０を冷却する冷却水の温度を測定し、その温度（冷却水温）ＴＨＡを表す信号を出力するようになっている。
【００４９】
クランク角度センサ７４は、シリンダブロック部２０に配設されている。このクランク角度センサ７４は、クランクシャフト２４の回転位置（即ち、クランク角度）に応じた信号を出力する。ＥＣＵ８０は、このクランク角度センサ７４及び図示しないカムポジションセンサからの信号に基づいて、所定の気筒の圧縮上死点を基準とした機関１０のクランク角度（絶対クランク角度）を取得する。更に、ＥＣＵ８０は、クランク角度センサ７４からの信号に基づいて、機関回転速度ＮＥを取得する。
【００５０】
アクセル操作量センサ７５は、アクセルペダル９１の操作量を検出し、この操作量Ａccpを表す信号を出力する。
【００５１】
空燃比センサ７６は、エキゾーストマニホールド５１の集合部（排気集合部）と三元触媒５３との間の位置において排気管５２に配設されている。この空燃比センサ（以下、「上流側空燃比センサ」と称呼する。）７６は、「拡散抵抗層を備える限界電流式広域空燃比センサ」である。上流側空燃比センサ７６は、そこに到達するガスの空燃比を測定し、その空燃比を表す「電流（即ち、限界電流）」を電圧に変換した値ＶＭを出力する。
【００５２】
この出力値ＶＭは、図２に示したように、上流側空燃比センサ７６に到達するガスの空燃比が大きくなるほど（リーンとなるほど）増大する。即ち、出力値ＶＭは、上流側空燃比センサ７６に到達している排ガスの空燃比ＡＦｍに実質的に比例する。
【００５３】
ＥＣＵ８０は、図２に示した空燃比変換テーブル（マップ）MapAFm(VM)を記憶していて、上流側空燃比センサ７６の出力値ＶＭを空燃比変換テーブルMapAFm(VM)に適用することにより、実際の空燃比ＡＦｍを検出する（即ち、検出空燃比ＡＦｍを取得する）。
【００５４】
空燃比センサ７７は、三元触媒５３よりも下流側の排気管５２に配設されている。この空燃比センサ（以下、「下流側空燃比センサ」と称呼する。）７７は、周知の起電力式の酸素濃度センサ（安定化ジルコニアを用いた周知の濃淡電池型の酸素濃度センサ）である。下流側空燃比センサ７７は、三元触媒５３から流出するガスの空燃比（機関１０に供給される混合気の空燃比の時間的平均値）を測定し、その空燃比を表す出力値ＶＳを出力する。
【００５５】
この出力値ＶＳは、図３に示したように、下流側空燃比センサ７７に到達するガス（被検出ガス）の空燃比が理論空燃比よりもリッチのときに最大出力値ＶＳmax（例えば、約０．９Ｖ）となり、被検出ガスの空燃比が理論空燃比よりもリーンのときに最小出力値ＶＳmin（例えば、約０．１Ｖ）となる。更に、出力値ＶＳは、被検出ガスの空燃比が理論空燃比であるときに最大出力値ＶＳmaxと最小出力値ＶＳminの略中間の電圧ＶＳst（中間電圧ＶＳst、例えば、約０．５Ｖ）となる。
【００５６】
加えて、出力値ＶＳは、被検出ガスの空燃比が理論空燃比よりもリッチな空燃比からリーンな空燃比へと変化する際に最大出力値ＶＳmaxから最小出力値ＶＳminへと急変し、被検出ガスの空燃比が理論空燃比よりもリーンな空燃比からリッチな空燃比へと変化する際に最小出力値ＶＳminから最大出力値ＶＳmaxへと急変する。
【００５７】
ＥＣＵ８０は、図３に示した空燃比変換テーブル（マップ）MapAFs(VS)を記憶していて、下流側空燃比センサ７７の出力値ＶＳを空燃比変換テーブルMapAFs(VS)に適用することにより、被検出ガスの空燃比ＡＦｓを取得する。
【００５８】
車速センサ７８は、機関１０が搭載された車両の速度を測定し、この速度（車速）を表す信号ＳＰＤを出力する。
【００５９】
（燃料噴射量制御）
次に、図４を参照しながら、本制御装置が実行する「燃料噴射弁３９から噴射する燃料の量（燃料噴射量）の制御」について説明する。ＥＣＵ８０のＣＰＵは、図４にフローチャートにより示した燃料噴射量制御ルーチンを所定時間が経過する毎に実行するようになっている。従って、ＣＰＵは、所定のタイミングになると、図４のステップ４００から処理を開始し、以下に述べるステップ４０５乃至ステップ４３０の処理を順に行い、ステップ４９５に進んで本ルーチンを一旦終了する。
【００６０】
ステップ４０５：ＣＰＵは、スロットル弁通過空気量ＧＡth及び機関回転速度ＮＥをルックアップテーブルMapMC(GAth,NE)に適用することにより、筒内吸入空気量ＭＣを取得する。ルックアップテーブルMapMC(GAth,NE)によれば、筒内吸入空気量ＭＣは、スロットル弁通過空気量ＧＡthが大きいほど大きい値として取得され、機関回転速度ＮＥが大きいほど大きい値として取得される。
【００６１】
ステップ４１０：ＣＰＵは、下記の（１）式に従って基本燃料噴射量ＱＦＢを取得する。（１）式において、「ＭＣ」は筒内吸入空気量であり、「ＡＦtgt」は目標空燃比であり、本例においては、理論空燃比である。
ＱＦＢ＝ＭＣ／ＡＦtgt      …（１）
【００６２】
ステップ４１５：ＣＰＵは、下記の（２）式に従ってパージ補正係数Ｋprgを取得する。（２）式において、「ＲＰtgt」は後述する図１０のルーチンにより決定される目標パージ率であり、「ＫＧＰ」は後述する図７のルーチンにより取得されるパージ濃度学習値である。
Ｋprg＝１＋ＲＰtgt・（１−ＫＧＰ）      …（２）
【００６３】
ステップ４２０：ＣＰＵは、スロットル弁通過空気量ＧＡthをルックアップテーブルMapKGM(N)(GAth)に適用することにより、メインフィードバック学習値ＫＧＭ(Ｎ)を取得する。
【００６４】
ルックアップテーブルMapKGM(N)(GAth)によれば、スロットル弁通過空気量ＧＡthが「０」以上であり且つ第１空気量ＧＡth１よりも小さい場合（０≦ＧＡth＜ＧＡth１）、メインフィードバック学習値ＫＧＭ（１）が取得され、空気量ＧＡthが第１空気量ＧＡth１以上であり且つ第２空気量ＧＡth２よりも小さい場合（ＧＡth１≦ＧＡth＜ＧＡth２）、学習値ＫＧＭ（２）が取得される。第２空気量ＧＡth２は第１空気量ＧＡth１よりも大きい（ＧＡth１＜ＧＡth２）。
【００６５】
更に、スロットル弁通過空気量ＧＡthが第２空気量ＧＡth２以上であり且つ第３空気量ＧＡth３よりも小さい場合（ＧＡth２≦ＧＡth＜ＧＡth３）、メインフィードバック学習値ＫＧＭ（３）が取得され、空気量ＧＡthが第３空気量ＧＡth３以上である場合（ＧＡth３≦ＧＡth）、学習値ＫＧＭ（４）が取得される。第３空気量ＧＡth３は第２空気量ＧＡth２よりも大きく、第４空気量ＧＡth４は第３空気量ＧＡth３よりも大きい（ＧＡth２＜ＧＡth３＜ＧＡth４）。
【００６６】
ステップ４２５：ＣＰＵは、下記の（３）式に従って指示燃料噴射量ＱＦＩを取得する。（３）式において、「ＦＡＦ」は、後述する図５のルーチンにより取得されるメインフィードバック係数である。
ＱＦＩ＝ＫＧＭ(Ｎ)・Ｋprg・ＦＡＦ・ＱＦＢ      …（３）
【００６７】
メインフィードバック係数ＦＡＦは、メインフィードバック制御条件が成立しているときに、上流側空燃比センサ７６の出力値ＶＭにより表される空燃比（検出空燃比ＡＦｍ）が目標空燃比ＡＦtgtよりも小さい（リッチである）とき、次第に減少され、検出空燃比ＡＦｍが目標空燃比ＡＦtgtよりも大きい（リーンである）とき、次第に増大されるように算出される。
【００６８】
ステップ４３０：ＣＰＵは、指示燃料噴射量ＱＦＩの燃料が燃料噴射弁３９から噴射されるように、燃料噴射弁３９に指示信号を送出する。
【００６９】
（メインフィードバック制御）
更に、ＣＰＵは、図５にフローチャートにより示したメインフィードバック制御ルーチンを所定時間が経過する毎に実行するようになっている。従って、ＣＰＵは、所定のタイミングになると、ステップ５００から処理を開始してステップ５０５に進み、メインフィードバック制御条件が成立しているか否かを判定する。メインフィードバック制御条件は、例えば、フューエルカット中ではなく、機関１０の冷却水温ＴＨＷが第１所定温度以上であり、機関負荷ＫＬが所定値以下であり、且つ、上流側空燃比センサ７６が活性化しているときに成立する。
【００７０】
ＣＰＵがステップ５０５の処理を実行する時点においてメインフィードバック制御条件が成立している場合、ＣＰＵはそのステップ５０５にて「Ｙｅｓ」と判定し、以下に述べるステップ５１０乃至ステップ５４５の処理を順に実行する。その後、ＣＰＵは、ステップ５９５に進み、本ルーチンを一旦終了する。
【００７１】
ステップ５１０：ＣＰＵは、下記の（４）式に従ってフィードバック制御用出力値ＶＣを取得する。（４）式において、「ＶＭ」は上流側空燃比センサ７６の出力値であり、「ＶＢ」は後述する図８のルーチンにより取得されるサブフィードバック量である。
ＶＣ＝ＶＭ＋ＶＢ      …（４）
【００７２】
ステップ５１５：ＣＰＵは、フィードバック制御用出力値ＶＣをルックアップテーブルMapAFm(VC)に適用することにより、フィードバック制御用空燃比ＡＦｍを取得する。ルックアップテーブルMapAFm(VC)によれば、空燃比ＡＦｍは出力値ＶＣが大きいほど大きい値として取得される。
【００７３】
ステップ５２０：ＣＰＵは、下記の（５）式に従って「現時点よりもＮサイクル前の時点において燃焼室２５に実際に供給された燃料の量（筒内燃料供給量）ＱＦＣ」を取得する。（５）式において、「ＭＣ」は図４のルーチンにより取得される「現時点よりもＮサイクル前の時点における筒内吸入空気量」である。
ＱＦＣ＝ＭＣ／ＡＦｍ      …（５）
【００７４】
ステップ５２５：ＣＰＵは、下記の（６）式に従って「現時点よりもＮサイクル前の時点において燃焼室２５に供給されるべきであった燃料の量（目標筒内燃料供給量）ＱＦＣtgt」を取得する。（６）式において、「ＭＣ」は図４のルーチンにより取得される「現時点よりもＮサイクル前の時点における筒内吸入空気量」であり、「ＡＦtgt」は目標空燃比である。
ＱＦＣtgt＝ＭＣ／ＡＦtgt      …（６）
【００７５】
ステップ５３０：ＣＰＵは、下記の（７）式に従って筒内燃料供給量偏差Ｄqfcを取得する。
Ｄqfc＝ＱＦＣtgt−ＱＦＣ      …（７）
【００７６】
ステップ５３５：ＣＰＵは、下記の（８）式に従ってメインフィードバック値Ｄqfiを取得する。（８）式において、「Ｇｐ」は予め設定された比例ゲイン、「Ｇｉ」は予め設定された積分ゲインであり、「Ｓdqfc」は筒内燃料供給量偏差Ｄqfcの時間積分値である。
Ｄqfi＝Ｇｐ・Ｄqfc＋Ｇｉ・Ｓdqfc      …（８）
【００７７】
ステップ５４０：ＣＰＵは、下記の（９）式に従ってメインフィードバック係数ＦＡＦを取得する。（９）式において、「ＱＦＢ」は基本燃料噴射量である。
ＦＡＦ＝（ＱＦＢ＋Ｄqfc）／ＱＦＢ      …（９）
【００７８】
ステップ５４５：ＣＰＵは、下記の（１０）式に従ってメインフィードバック係数ＦＡＦの加重平均値をメインフィードバック係数平均ＦＡＦaveとして取得する。（１０）式において、「ｑ」は「０」よりも大きく且つ「１」よりも小さい定数である。
ＦＡＦave＝ｑ・ＦＡＦ＋（１−ｑ）・ＦＡＦave      …（１０）
【００７９】
これに対し、ＣＰＵがステップ５０５の処理を実行する時点においてメインフィードバック制御条件が成立していない場合、ＣＰＵはそのステップ５０５にて「Ｎｏ」と判定し、以下に述べるステップ５５０乃至ステップ５６５の処理を順に実行する。その後、ＣＰＵは、ステップ５９５に進み、本ルーチンを一旦終了する。
【００８０】
ステップ５５０：ＣＰＵは、メインフィードバック値Ｄqfiの値を「０」に設定する。
ステップ５５５：ＣＰＵは、筒内燃料供給量偏差Ｄqfcの時間積分値Ｓdqfcの値を「０」に設定する。
ステップ５６０：ＣＰＵは、メインフィードバック係数ＦＡＦの値を「１」に設定する。
ステップ５６５：ＣＰＵは、メインフィードバック係数平均ＦＡＦaveの値を「１」に設定する。
【００８１】
以上が本制御装置によるメインフィードバック制御である。
【００８２】
（メインフィードバック学習）
更に、ＣＰＵは、メインフィードバック学習値ＫＧＭ(Ｎ)の更新を行うために、図６にフローチャートにより示したメインフィードバック学習（空燃比学習）ルーチンを所定時間が経過する毎に実行するようになっている。従って、ＣＰＵは、所定のタイミングになると、ステップ６００から処理を開始し、以下に述べるステップ６０５及びステップ６１０の処理を順に実行し、その後、ステップ６１５に進む。
【００８３】
ステップ６０５：ＣＰＵは、スロットル弁通過空気量ＧＡthを取得する。このスロットル弁通過空気量ＧＡthは、ＣＰＵが別途実行する処理によりエアフローメータ７１の信号に基づいて取得され、ＥＣＵ８０のバックアップＲＡＭに格納されている。
【００８４】
ステップ６１０：ＣＰＵは、スロットル弁通過空気量ＧＡthをルックアップテーブルMapR(N)(GAth)に適用することにより、学習領域Ｒ(Ｎ)を取得する。
【００８５】
ルックアップテーブルMapR(N)(GAth)によれば、スロットル弁通過空気量ＧＡthが前記第１空気量ＧＡth１よりも小さい場合（ＧＡth＜ＧＡth１）、学習領域Ｒ(１)が取得され、空気量ＧＡthが前記第１空気量ＧＡth１以上であり且つ前記第２空気量ＧＡth２よりも小さい場合（ＧＡth１≦ＧＡth＜ＧＡth２）、学習領域Ｒ(２)が取得される。
【００８６】
更に、スロットル弁通過空気量ＧＡthが前記第２空気量ＧＡth２以上であり且つ前記第３空気量ＧＡth３よりも小さい場合（ＧＡth２≦ＧＡth＜ＧＡth３）、学習領域Ｒ(３)が取得され、空気量ＧＡthが前記第３空気量ＧＡth３以上である場合（ＧＡth３≦ＧＡth）、学習領域Ｒ(４)が取得される。
【００８７】
ＣＰＵは、ステップ６１５に進むと、メインフィードバック制御が実行中であるか否かを判定する。このとき、メインフィードバック制御が実行中ではない場合、ＣＰＵはそのステップ６１５にて「Ｎｏ」と判定し、以下に述べるステップ６５０の処理を実行し、その後、ステップ６９５に進み、本ルーチンを一旦終了する。この場合、メインフィードバック学習値ＫＧＭ(Ｎ)の更新は行われない。
【００８８】
ステップ６５０：ＣＰＵは、先に述べたステップ６１０にて決定した学習領域Ｒ(Ｎ)に対応するメインフィードバック学習値ＫＧＭ(Ｎ)の学習（空燃比学習）が完了したことを表すメインフィードバック学習完了フラグＸkgm(Ｎ)の値を「０」に設定する。
【００８９】
これに対し、ＣＰＵがステップ６１５の処理を実行する時点においてメインフィードバック制御が実行中である場合、ＣＰＵはそのステップ６１５にて「Ｙｅｓ」と判定してステップ６２０に進み、パージ制御が実行中ではないか否か（具体的には、後述する図１０のルーチンにより決定される「目標パージ率ＲＰtgt又はデューティ比Ｄprgの値」が「０」ではないか否か）を判定する。
【００９０】
パージ制御が実行中である場合、ＣＰＵはそのステップ６２０にて「Ｎｏ」と判定してステップ６９５に進み、本ルーチンを一旦終了する。この場合、メインフィードバック学習値ＫＧＭ(Ｎ)の更新は行われない。
【００９１】
これに対し、ＣＰＵがステップ６２０の処理を実行する時点においてパージ制御が実行中ではない場合、ＣＰＵはそのステップ６２０にて「Ｙｅｓ」と判定してステップ６２５に進み、メインフィードバック係数平均ＦＡＦaveが値１＋α（αは「０」よりも大きく、「１」よりも小さい微少な所定値であり、例えば、０．０２）以上であるか否かを判定する。
【００９２】
メインフィードバック係数平均ＦＡＦaveが値１＋α以上である場合、ＣＰＵは、以下に述べるステップ６３０及びステップ６４５の処理を順に実行し、その後、ステップ６９５に進み、本ルーチンを一旦終了する。
【００９３】
ステップ６３０：ＣＰＵは、先に述べたステップ６１０の処理により取得した学習領域Ｒ(Ｎ)に対応するメインフィードバック学習値ＫＧＭ(Ｎ)を正の所定値ΔＫＧＭだけ増大させる。
【００９４】
ステップ６４５：ＣＰＵは、先に述べたステップ６１０にて決定した学習領域Ｒ(Ｎ)に対応するメインフィードバック学習値ＫＧＭ(Ｎ)の学習が完了したことを表す空燃比学習完了フラグＸkgm(Ｎ)の値を「１」に設定する。
【００９５】
これに対し、ＣＰＵがステップ６２５の処理を実行する時点においてメインフィードバック係数平均ＦＡＦaveが値１＋αよりも小さい場合、ＣＰＵはそのステップ６２５にて「Ｎｏ」と判定してステップ６３５に進み、メインフィードバック係数平均ＦＡＦaveが値１−α以下であるか否かを判定する。メインフィードバック係数平均ＦＡＦaveが値１−α以下である場合、以下に述べるステップ６４０及び先に述べたステップ６４５を順に実行し、その後、ステップ６９５に進み、本ルーチンを一旦終了する。
【００９６】
ステップ６４０：ＣＰＵは、先に述べたステップ６１０の処理により取得した学習領域Ｒ(Ｎ)に対応するメインフィードバック学習値ＫＧＭ(Ｎ)を正の所定値ΔＫＧＭだけ減少させる。
【００９７】
これに対し、ＣＰＵがステップ６３５の処理を実行する時点においてメインフィードバック係数平均ＦＡＦaveが値１−αよりも大きい場合、ＣＰＵはそのステップ６３５にて「Ｎｏ」と判定してステップ６９５に進み、本ルーチンを一旦終了する。この場合、メインフィードバック学習値ＫＧＭ(Ｎ)の更新は行われない。
【００９８】
（パージ濃度学習）
更に、ＣＰＵは、パージ濃度学習値ＫＧＰの更新を行うために、図７にフローチャートにより示したパージ濃度学習ルーチンを所定時間が経過する毎に実行するようになっている。従って、ＣＰＵは、所定のタイミングになると、図７のステップ７００から処理を開始し、ステップ７０５に進み、メインフィードバック制御が実行中であるか否かを判定する。
【００９９】
メインフィードバック制御が実行中ではない場合、ＣＰＵはそのステップ７０５にて「Ｎｏ」と判定してステップ７９５に進み、本ルーチンを一旦終了する。この場合、パージ濃度学習値ＫＧＰの更新は行われない。
【０１００】
これに対し、ＣＰＵがステップ７０５の処理を実行する時点においてメインフィードバック制御が実行中である場合、ＣＰＵはそのステップ７０５にて「Ｙｅｓ」と判定してステップ７１０に進み、パージ制御が実行中であるか否か（具体的には、後述する図１０のルーチンにより決定される「目標パージ率ＲＰtgt又はデューティ比Ｄprgの値」が「０」であるか否か）を判定する。
【０１０１】
ＣＰＵがステップ７１０の処理を実行する時点においてパージ制御が実行中ではない場合、ＣＰＵはそのステップ７１０にて「Ｎｏ」と判定してステップ７９５に進み、本ルーチンを一旦終了する。この場合、パージ濃度学習値ＫＧＰの更新は行われない。
【０１０２】
これに対し、ＣＰＵがステップ７１０の処理を実行する時点においてパージ制御が実行中である場合、ＣＰＵはそのステップ７１０にて「Ｙｅｓ」と判定してステップ７１５に進み、値ＦＡＦ−１が所定閾値βよりも大きいか否かを判定する。
【０１０３】
ＣＰＵがステップ７１５の処理を実行する時点において値ＦＡＦ−１が所定閾値βよりも大きい場合、ＣＰＵはそのステップ７１５にて「Ｙｅｓ」と判定し、以下に述べるステップ７２０及びステップ７３０の処理を順に実行する。その後、ＣＰＵは、ステップ７９５に進み、本ルーチンを一旦終了する。
【０１０４】
これに対し、ＣＰＵがステップ７１５の処理を実行する時点において値ＦＡＦ−１が所定閾値β以下である場合、ＣＰＵはそのステップ７１５にて「Ｎｏ」と判定し、以下に述べるステップ７２５及びステップ７３０の処理を順に実行する。その後、ＣＰＵは、ステップ７９５に進み、本ルーチンを一旦終了する。
【０１０５】
ステップ７２０：ＣＰＵは、下記の（１１）式に従ってパージ濃度学習値ＫＧＰを更新するための更新値ΔＫＧＰを取得する。
ΔＫＧＰ＝（ＦＡＦ−１）／ＲＰtgt      …（１１）
【０１０６】
ステップ７２５：ＣＰＵは、パージ濃度学習値ＫＧＰを更新するための更新値ΔＫＧＰの値を「０」に設定する。
ステップ７３０：ＣＰＵは、下記の（１２）式に従ってパージ濃度学習値ＫＧＰを取得（更新）する。
ＫＧＰ＝ＫＧＰ＋ΔＫＧＰ      …（１２）
【０１０７】
以上が本制御装置によるパージ濃度学習である。
【０１０８】
更に、ＣＰＵは、図８にフローチャートにより示したサブフィードバック量算出ルーチンを所定時間が経過する毎に実行するようになっている。従って、ＣＰＵは、所定のタイミングになると、図８のステップ８００から処理を開始してステップ８０５に進み、サブフィードバック制御条件が成立しているか否かを判定する。サブフィードバック制御条件は、例えば、先に述べた図５のステップ５０５におけるメインフィードバック制御条件が成立し、目標空燃比ＡＦtgtが理論空燃比に設定され、機関１０の冷却水温ＴＨＷが前記第１所定温度よりも高い第２所定温度以上であり、且つ、下流側空燃比センサ７７が活性化しているときに成立する。
【０１０９】
ＣＰＵがステップ８０５の処理を実行する時点においてサブフィードバック制御条件が成立している場合、ＣＰＵはそのステップ８０５にて「Ｙｅｓ」と判定し、以下に述べるステップ８１０乃至ステップ８３０の処理を順に実行する。その後、ＣＰＵは、ステップ８９５に進み、本ルーチンを一旦終了する。
【０１１０】
ステップ８１０：ＣＰＵは、下記の（１３）式に従って下流側目標値ＶＳstと下流側空燃比センサ７７の出力値ＶＳとの差である出力偏差量Ｄvsを取得する。（１３）式において、「下流側目標値ＶＳst」は、理論空燃比に対応する下流側空燃比センサ７７の出力値ＶＳである。
Ｄvs＝ＶＳst−ＶＳ      …（１３）
【０１１１】
ステップ８１５：ＣＰＵは、下記の（１４）式に従ってサブフィードバック量ＶＢを取得する。（１４）式において、「Ｋｐ」は予め設定された比例ゲイン、「Ｋｉ」は予め設定された積分ゲイン、「Ｋｄ」は予め設定された微分ゲインである。更に、「Ｓdvs」は出力偏差量Ｄvsの時間積分値であり、「Ｄdvs」は出力偏差量Ｄvsの時間微分値である。
ＶＢ＝Ｋｐ・Ｄvs＋Ｋｉ・Ｓdvs＋Ｋｄ・Ｄdvs      …（１４）
【０１１２】
ステップ８２０：ＣＰＵは、「その時点における出力偏差量の時間積分値Ｓdvs」に「上記ステップ８１０にて取得した出力偏差量Ｄvs」を加えることにより、新たな出力偏差量の時間積分値Ｓdvsを取得する。
【０１１３】
ステップ８２５：ＣＰＵは、「上記ステップ８１０にて取得した出力偏差量Ｄvs」から「本ルーチンを前回実行した際に取得した出力偏差量である前回出力偏差量Ｄvs_old」を減じることにより、新たな出力偏差量の時間微分値Ｄdvsを取得する。
【０１１４】
ステップ８３０：ＣＰＵは、「上記ステップ８１０にて取得した出力偏差量Ｄvs」を「前回出力偏差量Ｄvs_old」としてＥＣＵ８０のバックアップＲＡＭに格納する。
【０１１５】
これに対し、ＣＰＵがステップ８０５の処理を実行する時点においてサブフィードバック制御条件が成立していない場合、ＣＰＵはそのステップ８０５にて「Ｎｏ」と判定し、以下に述べるステップ８４０及びステップ８４５の処理を順に実行する。その後、ＣＰＵは、ステップ８９５に進み、本ルーチンを一旦終了する。
【０１１６】
ステップ８４０：ＣＰＵは、サブフィードバック量ＶＢの値を「０」に設定する。
ステップ８４５：ＣＰＵは、出力偏差量の時間積分値Ｓdvsの値を「０」に設定する。
【０１１７】
以上が本制御装置によるサブフィードバック量の算出である。
【０１１８】
（スロットル弁開度制御）
次に、本制御装置によるスロットル弁通過空気量制御について説明する。ＣＰＵは、図９にフローチャートにより示したスロットル弁通過空気量制御ルーチンを所定時間が経過する毎に実行するようになっている。従って、ＣＰＵは、所定のタイミングになると、図９のステップ９００から処理を開始し、以下に述べるステップ９０５及びステップ９１０の処理を順に実行し、その後、ステップ９１５に進む。
【０１１９】
ステップ９０５：ＣＰＵは、アクセルペダル操作量Ａccp及び車速ＳＰＤを取得する。アクセルペダル操作量Ａccpは、ＣＰＵが別途実行する処理によりアクセルペダル操作量センサ７５の信号に基づいて取得され、ＥＣＵ８０のバックアップＲＡＭに格納されている。車速ＳＰＤは、ＣＰＵが別途実行する処理により車速センサ７８の信号に基づいて取得され、ＥＣＵ８０のバックアップＲＡＭに格納されている。
【０１２０】
ステップ９１０：ＣＰＵは、アクセルペダル操作量Ａccp及び車速ＳＰＤをルックアップテーブルMapTAb(Accp,SPD)に適用することにより、基準スロットル弁開度ＴＡｂを決定する。ルックアップテーブルMapTAb(Accp,SPD)によれば、基準スロットル弁開度ＴＡｂは、アクセルペダル操作量Ａccpが大きいほど大きい値として決定され、車速ＳＰＤが大きいほど大きい値として決定される。
【０１２１】
ＣＰＵは、ステップ９１５に進むと、パージ実行フラグＸprgの値が「１」であるか否かを判定する。パージ実行フラグＸprgは、パージ管６３を介した吸気通路への蒸発燃料（ベーパ）の導入であるパージが実行されているか否かを表すフラグであって、後述する図１０のルーチンにおいて「１」又は「０」が入力されるフラグである。パージ実行フラグＸprgの値が「１」である場合、パージが実行されており、パージ実行フラグＸprgの値が「０」である場合、パージが実行されていない。
【０１２２】
ＣＰＵがステップ９１５の処理を実行する時点においてパージ実行フラグＸprgの値が「１」である場合、ＣＰＵは、以下に述べるステップ９２０乃至ステップ９４０の処理を順に実行する。その後、ＣＰＵは、ステップ９９５に進み、本ルーチンを一旦終了する。
【０１２３】
これに対し、ＣＰＵがステップ９１５の処理を実行する時点においてパージ実行フラグＸprgの値が「０」である場合、ＣＰＵは以下に述べるステップ９４５及びステップ９４０の処理を順に実行する。その後、ＣＰＵは、ステップ９９５に進み、本ルーチンを一旦終了する。
【０１２４】
ステップ９２０：ＣＰＵは、スロットル弁通過空気量ＧＡthを取得する。
ステップ９２５：ＣＰＵは、下記の（１４）式に従ってパージ空気量ＧＡprgを推定する。このパージ空気量ＧＡprgは、パージ管６３を介して蒸発燃料とともにサージタンク４２に導入される空気の量である。更に、（１４）式において、「ＲＰtgt」は、後述する図１０のルーチンにより決定される目標パージ率である。
ＧＡprg＝ＧＡth・ＲＰtgt      …（１４）
【０１２５】
ステップ９３０：ＣＰＵは、パージ空気量ＧＡprg及びその時点におけるスロットル弁開度ＴＡをルックアップテーブルMapKta(GAprg,TA)に適用することにより、スロットル弁開度補正値Ｋtaを決定する。
【０１２６】
ルックアップテーブルMapKta(GAprg,TA)によれば、スロットル弁開度補正値Ｋtaは、パージ空気量ＧＡprgが大きいほど大きい正の値として決定され、スロットル弁開度ＴＡから定まる単位スロットル弁通過空気量変化値が大きいほど小さい値として決定される。単位スロットル弁通過空気量変化値は、スロットル弁開度ＴＡを「１°」変化させたときのスロットル弁通過空気量ＧＡthの変化量であり、実験等により予め求められ、ＥＣＵ８０のＲＯＭに記憶されている。
【０１２７】
ステップ９３５：ＣＰＵは、下記の（１５）式に従って目標スロットル弁開度ＴＡtgtを決定する。即ち、基準スロットル弁開度ＴＡｂをスロットル弁開度補正値Ｋtaによって補正することにより、目標スロットル弁開度ＴＡtgtを決定する。
ＴＡtgt＝ＴＡｂ−Ｋta      …（１５）
【０１２８】
このステップ９３５の処理は、パージ空気量ＧＡprgの分だけスロットル弁通過空気量ＧＡthを減らすことによって燃焼室２５に供給される空気の量を目標量とするために行われる。
【０１２９】
ステップ９４０：ＣＰＵは、スロットル弁開度ＴＡを目標スロットル弁開度ＴＡtgtと一致させるための駆動指示信号をスロットル弁４５に送出する。
ステップ９４５：ＣＰＵは、基準スロットル弁開度ＴＡｂを目標スロットル弁開度ＴＡtgtに設定する。
【０１３０】
以上が本制御装置によるスロットル弁通過空気量制御である。
【０１３１】
次に、本制御装置によるパージ制御について説明する。ＣＰＵは、図１０にフローチャートにより示したパージ制御ルーチンを所定時間が経過する毎に実行するようになっている。従って、ＣＰＵは、所定のタイミングになると、図１０のステップ１０００から処理を開始し、以下に述べるステップ１００２乃至ステップ１００５の処理を順に実行し、その後、ステップ１０１０に進む。
【０１３２】
ステップ１００２：ＣＰＵは、下記の（１６）式に従ってパージ空気量ＧＡprgを推定する。（１６）式において、「ＧＡth」はスロットル弁通過空気量であり、「ＲＰprg」は本ルーチンを前回実行したときに決定された目標パージ率である。
ＧＡprg＝ＧＡth・ＲＰtgt      …（１６）
【０１３３】
ステップ１００４：ＣＰＵは、スロットル弁通過空気量ＧＡthとパージ空気量ＧＡprgとを合算することにより、筒内吸入空気量ＧＡtotalを取得する（ＧＡtotal＝ＧＡth＋ＧＡprg）。
【０１３４】
ステップ１００５：ＣＰＵは、筒内吸入空気量ＧＡtotalをルックアップテーブルMapXkgm(N)(GAtotal)に適用することにより、メインフィードバック学習完了フラグＸkgm(Ｎ)を取得する。
【０１３５】
このメインフィードバック学習完了フラグＸkgm(Ｎ)は、図６のルーチンにより「１」又は「０」が入力されるフラグである。スロットル弁通過空気量ＧＡthは、ＣＰＵが別途実行する処理によりによりエアフローメータ７１の出力値に基づいて取得され、ＥＣＵ８０のバックアップＲＡＭに記憶されている。パージ空気量ＧＡprgは、先に述べた図９のルーチンにより推定されるパージ空気量である。
【０１３６】
ルックアップテーブルMapXkgm(N)(GAtotal)によれば、筒内吸入空気量ＧＡtotalが「０」以上であり且つ前記第１空気量ＧＡth１よりも小さい場合（０≦ＧＡtotal＜ＧＡth１）、フラグＸkgm(１)が取得され、空気量ＧＡtotalが前記第１空気量ＧＡth１以上であり且つ前記第２空気量ＧＡth２よりも小さい場合（ＧＡth１≦ＧＡtotal＜ＧＡth２）、フラグＸkgm(２)が取得される。
【０１３７】
更に、筒内吸入空気量ＧＡtotalが前記第２空気量ＧＡth２以上であり且つ前記第３空気量ＧＡth３よりも小さい場合（ＧＡth２≦ＧＡtotal＜ＧＡth３）、フラグＸkgm(３)が取得され、空気量ＧＡtotalが前記第３空気量ＧＡth３以上である場合（ＧＡth３≦ＧＡtotal）、フラグＸkgm(４)が取得される。
【０１３８】
ＣＰＵは、ステップ１０１０に進むと、パージ制御条件が成立しているか否かを判定する。本例において、パージ制御条件は、
（１）メインフィードバック学習完了フラグＸkgm(Ｎ)の値が「１」であり（即ち、その時点における筒内吸入空気量ＧＡtotalが属する学習領域Ｒ(Ｎ)に対応するメインフィードバック学習値ＫＧＭ(Ｎ)の学習（更新）が完了しており）、且つ、
（２）メインフィードバック制御条件が成立しており、且つ、
（３）機関１０が定常運転されているとき（例えば、スロットル弁開度ＴＡの単位時間あたりの変化量が所定閾値以下であるとき）、
に成立する。
【０１３９】
ＣＰＵがステップ１０１０の処理を実行する時点においてパージ制御条件が成立している場合、ＣＰＵはそのステップ１０１０にて「Ｙｅｓ」と判定し、以下に述べるステップ１０１５乃至ステップ１０３５の処理を順に実行する。その後、ＣＰＵは、ステップ１０９５に進み、本ルーチンを一旦終了する。
【０１４０】
これに対し、ＣＰＵがステップ１０１０の処理を実行する時点においてパージ制御条件が成立していない場合、ＣＰＵはそのステップ１０１０にて「Ｎｏ」と判定し、以下に述べるステップ１０４０、ステップ１０４５及びステップ１０３５の処理を順に実行する。その後、ＣＰＵは、ステップ１０９５に進み、本ルーチンを一旦終了する。
【０１４１】
ステップ１０１５：ＣＰＵは、機関負荷ＫＬをルックアップテーブルMapRPtgt(KL)に適用することにより、目標パージ率ＲＰtgtを決定する。ルックアップテーブルMapRPtgt(KL)によれば、目標パージ率ＲＰtgtは、機関負荷ＫＬが大きいほど大きい値として決定される。
【０１４２】
ステップ１０２０：ＣＰＵは、機関回転速度ＮＥ及び機関負荷ＫＬをルックアップテーブルMapRPmax(NE,KL)に適用することにより、全開パージ率ＲＰmaxを取得する。全開パージ率ＲＰmaxは、パージ制御弁６４の開度を最大開度とした場合のパージ率である。ルックアップテーブルMapRPmax(NE,KL)によれば、全開パージ率ＲＰmaxは、機関回転速度ＮＥが大きいほど大きい値として取得され、機関負荷ＫＬが大きいほど大きい値として取得される。
【０１４３】
ステップ１０２５：ＣＰＵは、下記の（１７）式に従ってパージデューティ比Ｄprgを決定する。このパージデューティ比Ｄprgは、パージ制御弁６４への電力供給に用いられるデューティ比である。
Ｄprg＝（ＲＰtgt／ＲＰmax）・１００      …（１７）
【０１４４】
ステップ１０３０：ＣＰＵは、パージ実行フラグＸprgの値を「１」に設定する。
ステップ１０３５：ＣＰＵは、パージデューティ比Ｄprgに従ってパージ制御弁６４に駆動信号を送出する。
ステップ１０４０：ＣＰＵは、パージデューティ比Ｄprgの値を「０」に設定する。
ステップ１０４５：ＣＰＵは、パージ実行フラグＸprgの値を「０」に設定する。
【０１４５】
以上が本制御装置によるパージ制御である。
【０１４６】
次に、図１１及び図１２を参照しながら、上述した本制御装置によるパージ制御により得られる効果について説明する。
【０１４７】
図１１は、本制御装置によるパージ制御条件の成立の有無の判断が行われた場合におけるパージ制御条件の成立・不成立等を示している。より具体的に述べると、図１１は、先に述べた図１０のステップ１０１０において、メインフィードバック学習完了フラグＸkgm（Ｎ）を取得するために用いるパラメータとして「筒内吸入空気量ＧＡtotal（スロットル弁通過空気量ＧＡthとパージ空気量ＧＡprgとの合計）」を用いた場合におけるパージ制御条件の成立・不成立等を示している。
【０１４８】
一方、図１２は、本制御装置によるパージ制御条件の成立の有無の判断とは異なる判断が行われた場合におけるパージ制御条件の成立・不成立等を示している。より具体的に述べると、図１２は、先に述べた図１０のステップ１０１０において、メインフィードバック学習完了フラグＸkgm（Ｎ）を取得するために用いるパラメータとして「スロットル弁通過空気量ＧＡth」を用いた場合におけるパラメータ制御条件の成立・不成立等を示している。
【０１４９】
更に、図１１及び図１２に示した例においては、メインフィードバック学習が完了しているか否か以外のパージ制御条件（即ち、メインフィードバック制御条件が成立しており、且つ、機関１０が定常運転されているという条件）は成立しているものとする。
【０１５０】
加えて、図１１に示した例においては、時刻ｔ０以前の筒内吸入空気量ＧＡtotalは学習領域Ｒ(３)に属しており、この学習領域Ｒ(３)に対応するメインフィードバック学習は時刻ｔ０までは完了しておらず時刻ｔ０において完了するものとする。一方、図１２に示した例においては、時刻ｔ１以前のスロットル弁通過空気量ＧＡthは学習領域Ｒ(３)に属しており、この学習領域Ｒ(３)に対応するメインフィードバック学習は時刻ｔ１までは完了しておらず時刻ｔ１において完了するものとする。更に、図１１及び図１２に示した例においては、学習領域Ｒ（２）に対応するメインフィードバック学習は完了していないものとする。
【０１５１】
まず、図１２に示した例においては、時刻ｔ１以前において、スロットル弁通過空気量ＧＡthは学習領域Ｒ(３)に属しており、この学習領域Ｒ(３)に対応するメインフィードバック学習は完了していない。従って、パージ制御条件が成立しないので、パージ空気量ＧＡprgは「０」である。
【０１５２】
時刻ｔ１において、学習領域Ｒ(３)に対応するメインフィードバック学習が完了すると、パージ制御条件が成立する。その結果、パージ制御弁６４の開度が増大されるとともにスロットル弁４５の開度が減少される。これにより、パージ空気量ＧＡprgが増大するとともにスロットル弁通過空気量ＧＡthが減少する。このとき、時刻ｔ２において、スロットル弁通過空気量ＧＡthが属する学習領域Ｒ(Ｎ)は学習領域Ｒ(３)から学習領域Ｒ(２)に移行する。
【０１５３】
この学習領域Ｒ(２)に対応するメインフィードバック学習は完了していないので、時刻ｔ２において、パージ制御条件が不成立となる。その結果、パージ制御弁６４の開度が「０」とされるとともにスロットル弁４５の開度が増大される。これにより、パージ空気量ＧＡprgが「０」になるとともにスロットル弁通過空気量ＧＡthが増大する。このとき、時刻ｔ３において、スロットル弁通過空気量ＧＡthが属する学習領域Ｒ(Ｎ)は学習領域Ｒ(２)から学習領域Ｒ(３)に移行する。
【０１５４】
この学習領域Ｒ(３)に対応するメインフィードバック学習は完了しているので、時刻ｔ３において、パージ制御条件が成立する。以降、「パージ制御弁６４の開度の増大及びスロットル弁４５の開度の減少」と「パージ制御弁６４の開度の減少及びスロットル弁４５の開度の増大」とが繰り返され、その結果、パージ制御条件の成立（時刻ｔ５、時刻ｔ７及び時刻ｔ９を参照。）と不成立（時刻ｔ４、時刻ｔ６及び時刻ｔ８を参照。）とが繰り返される。このため、パージの実行と停止とが繰り返されてしまう。
【０１５５】
これに対し、図１１に示した例においては、時刻ｔ０以前において、筒内吸入空気量ＧＡtotalは学習領域Ｒ(３)に属しており、この学習領域Ｒ(３)に対応するメインフィードバック学習は完了していない。従って、パージ制御条件は成立しないので、パージ空気量ＧＡprgは「０」である。
【０１５６】
時刻ｔ０において、学習領域Ｒ(３)に対応するメインフィードバック学習が完了する。これにより、パージ制御条件が成立する。その結果、パージ制御弁６４の開度が増大されるとともにスロットル弁４５の開度が減少される。これにより、パージ空気量ＧＡprgが増大するとともにスロットル弁通過空気量ＧＡthが減少する。このとき、筒内吸入空気量ＧＡtotalは学習領域Ｒ(３)に属したままである。従って、時刻ｔ０以降も、パージ制御条件が成立するので、パージが継続して実行される。
【０１５７】
このように、本制御装置によれば、パージの実行と停止との繰り返しを防止することができる。
【符号の説明】
【０１５８】
１０…内燃機関、３９…燃料噴射弁、４５…スロットル弁、６０…燃料タンク、６１…キャニスタ、６３…-パージ管、６４…パージ制御弁、７１…エアフローメータ、８０…電子制御装置（ＥＣＵ）
【図１】
2016145546.tif 000003
【図２】
2016145546.tif 000004
【図３】
2016145546.tif 000005
【図４】
2016145546.tif 000006
【図５】
2016145546.tif 000007
【図６】
2016145546.tif 000008
【図７】
2016145546.tif 000009
【図８】
2016145546.tif 000010
【図９】
2016145546.tif 000011
【図１０】
2016145546.tif 000012
【図１１】
2016145546.tif 000013
【図１２】
2016145546.tif 000014