(57)【要約】【課題】空燃比学習が十分に進行しているか否かを確実に判断し、空燃比学習制御とキャニスタパージ制御とを両立させて制御性を向上する。【解決手段】バックアップＲＡＭがクリアされず、大気圧領域が変化していない場合、空燃比フィードバック補正係数の平均値ＬＡＭＢＤＡＡＶＥが基準値に対して設定範囲内に収まっているか否かを調べる（Ｓ５０５）。そして、平均値ＬＡＭＢＤＡＡＶＥが設定範囲内の場合、現在の学習領域の学習完了と判定し（Ｓ５０６）、学習完了判定領域数が設定領域数以上あるか否かを調べる（Ｓ５０７）。その結果、学習完了判定領域数が設定数以上ある場合、パージ実行許可フラグＦＬＧをセットし（Ｓ５０８）、キャニスタパージの実行を許可する。これにより、空燃比学習が十分に進行しているか否かを確実に判断し、空燃比学習制御とキャニスタパージ制御とを両立させて制御性を向上することができる。【選択図】　　図９
2004116371.tif 000002
【特許請求の範囲】
【請求項１】
エンジンの排気系に介装した空燃比センサの出力に基づいて設定される空燃比フィードバック補正係数の基準値からのずれを学習する空燃比学習手段と、燃料タンク内の蒸発燃料を貯溜するキャニスタからエンジンの吸気系にパージする蒸発燃料量を制御するパージ制御手段とを備えたエンジンの制御装置において、
上記空燃比学習手段による学習領域毎に、空燃比学習が完了したか否かを判定する空燃比学習完了判定手段と、
上記空燃比学習完了判定手段により学習完了と判定された領域数が設定数以上のとき、上記パージ制御手段による上記キャニスタから吸気系への蒸発燃料のパージ実行を許可するパージ実行許可手段とを備えたことを特徴とするエンジンの制御装置。
【請求項２】
上記空燃比学習完了判定手段は、
現在の学習領域において、大気圧が予め区分した複数の大気圧領域間を移行することなく、上記空燃比フィードバック補正係数の平均値が設定範囲内にあるとき、空燃比学習完了と判定することを特徴とする請求項１記載のエンジンの制御装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、空燃比学習制御とキャニスタパージ制御とを両立させて制御性を向上させるエンジンの制御装置に関する。
【０００２】
【従来の技術】
周知のように、エンジンの空燃比制御システムにおいては、エンジン仕様に対する公差のばらつき、すなわち、吸入空気量センサ等の吸入空気計測系やインジェクタ等の燃料供給系の生産時のばらつき、或いは経時変化による空燃比のずれを迅速に補正するため、Ｏ２センサ等の空燃比センサによるフィードバック制御に対して空燃比学習制御を取入れ、運転状態が大きく変化した場合にも常に目標空燃比の状態が保持されるようにしている。
【０００３】
この空燃比学習においては、燃料タンクの蒸発燃料を貯留するキャニスタから吸気系に蒸発燃料をパージするキャニスタパージ制御が実行されると、このキャニスタパージによる空燃比変化を誤学習してしまう。このため、一般に、キャニスタパージ実行中は、空燃比学習を行わないようにしているが、パージ実行頻度が多い場合には、空燃比の学習頻度が少なくなり、学習によるエンジン公差を吸収しきれない状態で、キャニスタパージ実行時の空燃比補正を行うことなり、制御性が悪化する。
【０００４】
これに対処するに、特開平６−１０１５８１号公報には、空燃比学習値の更新回数をカウントし、学習値の更新回数が所定値以上のときにパージを実行させることで、空燃比学習制御とキャニスタパージ制御とを両立させる技術が開示されている（特許文献１参照）。また、特開平１１−１６６４５５号公報には、空燃比学習値記憶マップの複数の学習領域に、学習実行回数をカウントするカウンタを設定し、このカウンタが設定された学習領域全てで学習回数が設定回数未満のときには、パージを制限（禁止）することで、空燃比学習制御とキャニスタパージ制御とを両立させる技術が開示されている（特許文献２参照）。
【０００５】
【特許文献１】
特開平６−１０１５８１号公報
【０００６】
【特許文献２】
特開平１１−１６６４５５号公報
【０００７】
【発明が解決しようとする課題】
しかしながら、特許文献１の技術では、一部の領域で学習値の更新回数が所定回数に達しただけでキャニスタパージが実行されてしまい、領域全体として十分に学習が進行してない状態でキャニスタパージが実行され虞がある。また、特許文献２の技術においても、同様に学習回数のみでキャニスタパージの実行可否を判断しているため、低地から高地或いは高地から低地等といったように走行環境が変化し、運転条件が変化して学習値の変動が予想される場合であっても、キャニスタパージが実行される虞がある。
【０００８】
すなわち、特許文献１や特許文献２に開示されている先行技術は、何れも学習回数のみでキャニスタパージの実行／非実行を決定しており、運転領域全体や様々な運転条件に対して学習が十分に進行しているか否かを確実に把握してキャニスタパージの実行／非実行を決定しているわけではない。つまり、学習回数によってキャニスタパージの実行／非実行を決定するのみでは、エンジン公差のばらつきによる空燃比の変動に対し、最大のばらつきを想定した回数を設定する等の大まかな推定にしかならず、キャニスタパージ実行時の空燃比制御に、空燃比学習の本来の機能を反映させることはできない。
【０００９】
本発明は上記事情に鑑みてなされたもので、空燃比学習が十分に進行しているか否かを確実に判断し、空燃比学習制御とキャニスタパージ制御とを両立させて制御性を向上することのできるエンジンの制御装置を提供することを目的としている。
【００１０】
【課題を解決するための手段】
上記目的を達成するため、請求項１記載の発明は、エンジンの排気系に介装した空燃比センサの出力に基づいて設定される空燃比フィードバック補正係数の基準値からのずれを学習する空燃比学習手段と、燃料タンク内の蒸発燃料を貯溜するキャニスタからエンジンの吸気系にパージする蒸発燃料量を制御するパージ制御手段とを備えたエンジンの制御装置において、上記空燃比学習手段による学習領域毎に、空燃比学習が完了したか否かを判定する空燃比学習完了判定手段と、上記空燃比学習完了判定手段により学習完了と判定された領域数が設定数以上のとき、上記パージ制御手段による上記キャニスタから吸気系への蒸発燃料のパージ実行を許可するパージ実行許可手段とを備えたことを特徴とする。
【００１１】
請求項２は、請求項１記載の発明において、上記空燃比学習完了判定手段は、現在の学習領域において、大気圧が予め区分した複数の大気圧領域間を移行することなく、上記空燃比フィードバック補正係数の平均値が設定範囲内にあるとき、空燃比学習完了と判定することを特徴とする。
【００１２】
すなわち、請求項１記載の発明は、空燃比学習の学習領域毎に学習が完了したか否かを判定し、学習完了と判定された領域数が設定数以上のとき、キャニスタから吸気系への蒸発燃料のパージ実行を許可することで、様々な運転領域や運転条件に対して空燃比学習が十分に進行しているか否かを確実に判断し、空燃比学習制御とキャニスタパージ制御とを両立させて制御性を向上する。
【００１３】
その際、現在の学習領域において、大気圧が予め区分した複数の大気圧領域間を移行することなく、空燃比フィードバック補正係数の平均値が設定範囲内にあるとき、空燃比学習完了と判定することが望ましい。
【００１４】
【発明の実施の形態】
以下、図面を参照して本発明の実施の形態を説明する。図１〜図１０は本発明の実施の一形態に係わり、図１はエンジン系の全体図、図２は電子制御系の回路構成図、図３は燃料噴射制御ルーチンのフローチャート、図４は空燃比フィードバック補正係数設定ルーチンのフローチャート、図５はＯ２センサ出力電圧と空燃比フィードバック補正係数との関係を示すタイムチャート、図６は空燃比学習値学習ルーチンのフローチャート、図７は定常状態判定マトリックスと空燃比学習値テーブルの説明図、図８は大気圧領域判定ルーチンのフローチャート、図９はパージ実行許可ルーチンのフローチャート、図１０はパージ制御ルーチンのフローチャートである。
【００１５】
先ず、図１に基づいてエンジンの全体構成について説明する。同図において、符号１はエンジンであり、本形態においては、シリンダブロック１ａがクランクシャフト１ｂを中心として両側のバンク（図の右側が左バンク、左側が右バンク）に２分割される水平対向型４気筒エンジンを示す。エンジン１のシリンダブロック１ａの左右両バンクには、シリンダヘッド２がそれぞれ設けられ、各シリンダヘッド２に、吸気ポート２ａと排気ポート２ｂが形成されている。
【００１６】
吸気ポート２ａには、インテークマニホルド３が連通され、このインテークマニホルド３に各気筒の吸気通路が集合するエアチャンバ４を介してスロットルチャンバ５が連通され、スロットルチャンバ５の上流側に吸気管６を介してエアクリーナ７が取り付けられ、エアインテークチャンバ８に連通されている。また、排気ポート２ｂには、エキゾーストマニホルド９を介して排気管１０が連通され、この排気管１０に触媒コンバータ１１が介装されてマフラ１２に連通されている。
【００１７】
また、スロットルチャンバ５には、アクセルペダルに連動するスロットル弁５ａが設けられ、該スロットル弁５ａをバイパスするバイパス通路１３が吸気管６から分岐されている。バイパス通路１３には、アイドル時にバイパス通路１３を流れるバイパス空気量を調整してアイドル回転数を制御するアイドル回転数制御弁（ＩＳＣ弁）１４が介装されている。ＩＳＣ弁１４は、本形態では、後述する電子制御装置５０（図２参照）から出力される制御信号のデューティ比に応じて弁開度が調節される。
【００１８】
また、インテークマニホルド３の各気筒の吸気ポート２ａの直上流側にインジェクタ１５が配設され、燃料供給路１６を介して燃料タンク１７に連通されている。燃料タンク１７には、インタンク式の燃料ポンプ１８が設けられ、この燃料ポンプ１８からの燃料が、燃料供給路１６に介装された燃料フィルタ１９を経てインジェクタ１５及びプレッシャレギュレータ２０に圧送され、このプレッシャレギュレータ２０から燃料タンク１７にリターンされて、インジェクタ１５への燃料圧力が所定の圧力に調圧される。
【００１９】
更に、燃料タンク１７の上部からは、燃料タンク１７内で発生した蒸発燃料を放出するための放出通路２１が延出され、２ウェイバルブ２２を介して活性炭等からなる吸着部を備えたキャニスタ２３の上部に連通されている。キャニスタ２３は、下部に大気に連通する新気導入口が設けられ、この新気導入口からの新気と吸着部に貯えられた蒸発燃料ガスとの混合気（エバポガス）を導くパージ通路２４が上部から延出されている。
【００２０】
パージ通路２４は、その中途に、エバポガスのパージ量を調整するアクチュエータとしてのキャニスタパージコントロール（ＣＰＣ）デューティソレノイド弁２５が介装されており、スロットル弁５ａ下流側でエアチャンバ４の右バンク側の部位に接続されて開口されている。尚、ＣＰＣデューティソレノイド弁２５は、ＩＳＣ弁１４同様、後述する電子制御装置５０（図２参照）から出力される制御信号のデューティ比に応じて弁開度が調節される。一方、シリンダヘッド２の各気筒毎に、先端の放電電極を燃焼室１ｃに露呈する点火プラグ２６が取り付けられ、この点火プラグ２６に、イグナイタ２８を内蔵するイグニッションコイル２７が接続されている。
【００２１】
次に、エンジン運転状態を検出するためのセンサ類について説明する。吸気管６のエアクリーナ７の直下流に、ホットワイヤ或いはホットフィルム等を用いた熱式の吸入空気量センサ２９が介装され、更に、スロットルチャンバ５に設けられたスロットル弁５ａに、スロットル開度センサ３０ａとスロットル全閉でＯＮするアイドルスイッチ３０ｂとを内蔵したスロットルセンサ３０が連設されている。また、エアチャンバ４には、スロットル弁５ａ下流の吸気管圧力を絶対圧で検出する吸気管圧力センサ３１が取付けられている。
【００２２】
また、エンジン１のシリンダブロック１ａにノックセンサ３２が取り付けられると共に、シリンダブロック１ａの左右バンクを連通する冷却水通路３３に冷却水温センサ３４が臨まされ、更に、触媒コンバータ１１の上流側に、空燃比センサとしてのＯ２センサ３５が配設されている。また、エンジン１のクランクシャフト１ｂに軸着するクランクロータ３６の外周に、クランク角センサ３７が対設され、更に、クランクシャフト１ｂに対して１／２回転するカムシャフト１ｄに連設するカムロータ３８に、現在の燃焼行程気筒、燃料噴射対象気筒や点火対象気筒を判別するための気筒判別センサ３９が対設されている。
【００２３】
次に、エンジン１を制御する電子制御装置（ＥＣＵ）５０について、図２に基づいて説明する。ＥＣＵ５０は、ＣＰＵ５１、ＲＯＭ５２、ＲＡＭ５３、バックアップＲＡＭ５４、カウンタ・タイマ群５５、及びＩ／Ｏインターフェイス５６がバスラインを介して互いに接続されるマイクロコンピュータを中心として構成され、各部に安定化電源を供給する定電圧回路５７、Ｉ／Ｏインターフェイス５６に接続される駆動回路５８及びＡ／Ｄ変換器５９等の周辺回路が内蔵されている。
【００２４】
尚、カウンタ・タイマ群５５は、フリーランカウンタ、気筒判別センサ信号（気筒判別パルス）の入力計数用カウンタ等の各種カウンタ、燃料噴射用タイマ、点火用タイマ、定期割り込みを発生させるための定期割り込み用タイマ、クランク角センサ信号（クランクパルス）の入力間隔計時用タイマ、及びシステム異常監視用のウオッチドッグタイマ等の各種タイマを便宜上総称するものであり、その他、各種のソフトウエアカウンタ・タイマが用いられる。
【００２５】
定電圧回路５７は、２回路のリレー接点を有する電源リレー６０の第１のリレー接点を介してバッテリ６１に接続されると共に、直接、バッテリ６１に接続されており、イグニッションスイッチ６２がＯＮされて電源リレー６０の接点が閉となるとＥＣＵ５０内の各部へ電源を供給する一方、イグニッションスイッチ６２のＯＮ，ＯＦＦに拘らず、常時、バックアップＲＡＭ５４にバックアップ用の電源を供給する。更に、バッテリ６１には、燃料ポンプリレー６３のリレー接点を介して燃料ポンプ１８が接続されている。尚、電源リレー６０の第２のリレー接点には、バッテリ６１から各アクチュエータに電源を供給するための電源線が接続されている。
【００２６】
Ｉ／Ｏインターフェイス５６の入力ポートには、イグニッションスイッチ６２、アイドルスイッチ３０ｂ、ノックセンサ３２、クランク角センサ３７、気筒判別センサ３９、及び、車速センサ４０等が接続されており、更に、Ａ／Ｄ変換器５９を介して、吸入空気量センサ２９、スロットル開度センサ３０ａ、吸気管圧力センサ３１、冷却水温センサ３４、Ｏ２センサ３５、及び大気圧センサ４１等が接続されると共に、バッテリ電圧ＶＢが入力されてモニタされる。
【００２７】
一方、Ｉ／Ｏインターフェイス５６の出力ポートには、電源リレー６０及び燃料ポンプリレー６３の各リレーコイル、ＩＳＣ弁１４、インジェクタ１５、及び、ＣＰＣデューティソレノイド弁２５等が駆動回路５８を介して接続されると共に、イグナイタ２８が接続されている。
【００２８】
ＣＰＵ５１では、ＲＯＭ５２に記憶されている制御プログラムに従い、Ｉ／Ｏインターフェイス５６を介して入力されるセンサ・スイッチ類からの検出信号、及びバッテリ電圧等を処理し、ＲＡＭ５３に格納される各種データ、及びバックアップＲＡＭ５４に格納されている空燃比学習値等の各種学習値データ、ＲＯＭ５２に記憶されている固定データ等に基づき、燃料噴射量、点火時期、ＩＳＣ弁１４に対する制御デューティ、ＣＰＣデューティソレノイド弁２５に対する制御デューティ等を演算し、空燃比制御（燃料噴射制御）、点火時期制御、アイドル回転数制御、キャニスタパージ制御等のエンジン制御を行う。
【００２９】
このようなエンジン制御において、ＥＣＵ５０は、空燃比制御における空燃比の学習が完了していると判定された領域数により、正確に空燃比学習の進行状態を把握し、学習が完了していると判定された領域数が設定領域数に達したときのみ、キャニスタパージの実行を許可することで、空燃比学習制御とキャニスタパージ制御との両立を図るようにしている。
【００３０】
空燃比学習が完了した状態とは、空燃比学習値の更新回数によって判断するものではなく、運転領域全体で学習が進行しており、空燃比学習値の変化が小さく、安定していると判断される状態であり、本形態においては、バックアップＲＡＭ５４の空燃比学習値がクリアされておらず、大気圧の変化による空燃比学習値の変動がなく、Ｏ２センサ３５の出力に基づいて設定される空燃比フィードバック補正係数の平均値が設定範囲にあるとき、学習が完了したと判定する。
【００３１】
すなわち、ＥＣＵ５０は、空燃比学習手段、パージ制御手段、空燃比学習完了判定手段、パージ実行許可手段の機能を有し、具体的には、図３以下に示すルーチンにより各手段の機能を実現する。以下、ＥＣＵ５０によるエンジン制御に係わる処理について、図３以下のフローチャートを用いて説明する。
【００３２】
図３は、システムがイニシャライズされた後、所定周期毎に実行される燃料噴射制御ルーチンであり、先ず、ステップＳ１０１で、１行程当たりの吸入空気量に対応する基本燃料噴射量を定める基本燃料噴射パルス幅Ｔｐを算出する。本形態においては、吸入空気量センサ２９によって直接計測した吸入空気量Ｑを、クランク角センサ３７からの信号に基づくエンジン回転数ＮＥで除算した値にインジェクタ特性定数Ｋを乗算して基本燃料噴射パルス幅Ｔｐを設定する（Ｔｐ←Ｋ×Ｑ／ＮＥ）。
【００３３】
次に、ステップＳ１０２へ進み、基本燃料噴射パルス幅Ｔｐに各種補正項を乗算或いは加算してインジェクタ１５から噴射する最終的な燃料噴射量を定める燃料噴射パルス幅Ｔｉを算出する。基本燃料噴射パルス幅Ｔｐに対する補正乗算項としては、例えば、冷却水温補正、加減速補正、全開増量補正、アイドル後増量補正等に係わる各種増量補正係数ＣＯＥＦ、Ｏ２センサ３５の出力に基づく空燃比補正に係わる空燃比フィードバック補正係数ＬＡＭＢＤＡ、後述する空燃比学習値テーブルの空燃比学習値ＫＬＲを検索して補間計算により設定される空燃比学習補正係数ＫＢＬＲＣがあり、また、補正加算項としては、バッテリ電圧に応じて変化するインジェクタ１５の無効噴射時間を補正するための電圧補正パルス幅Ｔｓがある。そして、これらの補正項により基本燃料噴射パルス幅Ｔｐを補正して燃料噴射パルス幅Ｔｉを算出する（Ｔｉ←Ｔｐ×ＣＯＥＦ×ＬＡＭＢＤＡ×ＫＢＬＲＣ＋Ｔｓ）。そして、ステップＳ１０３で、この燃料噴射パルス幅Ｔｉを噴射タイマにセットし、ルーチンを抜ける。
【００３４】
次に、空燃比フィードバック補正係数ＬＡＭＢＤＡを設定する図４の空燃比フィードバック補正係数設定ルーチンについて説明する。
【００３５】
この空燃比フィードバック補正係数設定ルーチンは、所定周期毎に実行され、先ず、ステップＳ２０１で、Ｆ／Ｂ条件（空燃比フィードバック条件）が成立しているか否かを判断する。Ｆ／Ｂ条件は、ＮＥ＝０のエンジン非回転状態、エンジンクランキング時、エンジン始動後の時間が設定時間内の何れかの条件が成立する初期状態のとき、Ｏ２センサ３５の出力電圧ＶＯ２が設定値に達せず所定範囲の状態が設定時間以上継続していない不活性状態のとき、或いは、加減速中、燃料カット中等のエンジン過渡運転状態のとき、Ｆ／Ｂ条件不成立と判断し、いずれの条件にも該当しない場合、Ｆ／Ｂ条件成立と判断する。
【００３６】
そして、Ｆ／Ｂ条件不成立の場合には、ステップＳ２０１からステップＳ２０２へ進んで、後述する反転初回判別フラグＦＲを０にクリアして初期化し（ＦＲ←０）、ステップＳ２０３で、空燃比フィードバック補正係数ＬＡＭＢＤＡを、ＬＡＭＢＤＡ＝１．０にセットしてルーチンを抜ける。すなわち、Ｆ／Ｂ条件非成立時には、空燃比フィードバック補正係数ＬＡＭＢＤＡが１．０に固定或いはクランプされ、Ｏ２センサ３５の出力に基づく空燃比フィードバック補正が停止され、オープンループ制御となる。
【００３７】
一方、ステップＳ２０１でＦ／Ｂ条件が成立する場合には、ステップＳ２０１からステップＳ２０４以降へ進み、Ｏ２センサ３５の出力電圧ＶＯ２と空燃比状態を判断するための判定値であるスライスレベルＳＬとの比較結果に応じ、比例積分制御（ＰＩ制御）によって空燃比フィードバック補正係数ＬＡＭＢＤＡを設定する。
【００３８】
すなわち、ステップＳ２０４で、Ｏ２センサ３５の出力電圧ＶＯ２を読込み、Ｏ２センサ出力電圧ＶＯ２とスライスレベルＳＬとを比較して現在の空燃比がストイキオに対してリッチ側にずれているかリーン側にずれているかを判断する。そして、ＶＯ２≧ＳＬで空燃比がリッチ側にずれているときには、ステップＳ２０５へ進み、反転初回判別フラグＦＲの値を参照する。
【００３９】
反転初回判別フラグＦＲは、空燃比がリーン側からリッチ側に反転した初回、或いは空燃比がリッチ側からリーン側に反転した初回を判断するためのフラグであり、空燃比がリーン側からリッチ側に反転した後に１→０とされ、リッチ側からリーン側に反転した後に０→１とされる。
【００４０】
従って、空燃比がリッチ側で、且つＦＲ＝１のときには、空燃比がリーン側からリッチ側に反転した初回であるため、ステップＳ２０５からステップＳ２０６へ進み、図５に示すように、空燃比フィードバック補正係数ＬＡＭＢＤＡをＰＩ制御の比例定数ＰＤによりマイナス方向へスキップさせ（ＬＡＭＢＤＡ←ＬＡＭＢＤＡ−ＰＤ）、ステップＳ２０８で反転初回判別フラグＦＲをクリアして（ＦＲ←０）、ルーチンを抜ける。
【００４１】
また、空燃比がリッチ側で、且つＦＲ＝０のときには、既に空燃比フィードバック補正係数ＬＡＭＢＤＡに対し比例定数ＰＤによるマイナス方向へのスキップが実行されているため、ステップＳ２０５からステップＳ２０７へ進み、図５に示すように、空燃比フィードバック補正係数ＬＡＭＢＤＡをＰＩ制御の積分定数ＩＤによりルーチン実行毎に漸次減少させ（ＬＡＭＢＤＡ←ＬＡＭＢＤＡ−ＩＤ）、前述のステップＳ３０８を経てルーチンを抜ける。
【００４２】
一方、ステップＳ２０４において、ＶＯ２＜ＳＬで空燃比リーン側のときには、ステップＳ２０４からステップＳ２０９へ進み、同様に反転初回判別フラグＦＲの値を参照する。そして、空燃比リーン側で、且つＦＲ＝０のときには、空燃比がリッチ側からリーン側に反転した初回であるため、ステップＳ２１０へ進み、図５に示すように、空燃比フィードバック補正係数ＬＡＭＢＤＡを比例定数ＰＵによってプラス方向にスキップさせ（ＬＡＭＢＤＡ←ＬＡＭＢＤＡ＋ＰＵ）、ステップＳ２１２で、反転初回判別フラグＦＲを１にセットして（ＦＲ←１）、ルーチンを抜ける。
【００４３】
また、空燃比がリーン側で、且つＦＲ＝１のときには、既に空燃比フィードバック補正係数ＬＡＭＢＤＡに対し比例定数ＰＵによるプラス方向へのスキップが実行されているため、ステップＳ２０９からステップＳ２１１へ進み、図５に示すように、空燃比フィードバック補正係数ＬＡＭＢＤＡをＰＩ制御の積分定数ＩＵによりルーチン実行毎に漸次増加させ（ＬＡＭＢＤＡ←ＬＡＭＢＤＡ＋ＩＵ）、前述のステップＳ２１２を経てルーチンを抜ける。
【００４４】
以上の空燃比フィードバック補正係数ＬＡＭＢＤＡは、基準値からのずれが図６の空燃比学習値学習ルーチンによって学習され、その学習結果が前述の燃料噴射制御ルーチンに反映される。すなわち、空燃比学習値ＫＬＲに基づく空燃比学習補正係数ＫＢＬＲＣにより、吸入空気量センサ２９等の吸入空気量計測系及びインジェクタ１５等の燃料供給系の生産時のバラツキや経時劣化等による空燃比のずれが吸収される。
【００４５】
この空燃比学習値学習ルーチンは、所定周期毎に実行され、先ず、ステップＳ３０１で、Ｆ／Ｂ条件が成立するか否かを判別する。そして、Ｆ／Ｂ条件が成立する場合には、ステップＳ３０１からステップＳ３０２へ進み、Ｆ／Ｂ条件非成立の場合、ステップＳ３０５へジャンプして後述するリッチ／リーン切換わり回数をカウントするためのカウント値ＣＯＵＮＴをクリアし（ＣＯＵＮＴ←０）、ルーチンを抜ける。
【００４６】
ステップＳ３０２では、エンジン回転数ＮＥと基本燃料噴射パルス幅Ｔｐとによる現在の運転領域が図７に示す定常状態判定マトリックスの範囲内（ＮＥ０≦ＮＥ≦ＮＥｎ且つＴｐ０≦Ｔｐ≦Ｔｐｎ）にあるか否かを調べる。そして、定常状態判定マトリックスの範囲外である場合は、前述のステップＳ３０５を経てルーチンを抜け、定常状態判定マトリックスの範囲内にある場合、ステップＳ３０３で、定常状態判定マトリックス内の区画位置Ｄ１を特定し、この区画位置Ｄ１の領域データＮＥＷが前回のルーチン実行時に特定され、且つ、ＲＡＭ５３に記憶されている領域データＯＬＤと同一であるか否かを調べる。
【００４７】
その結果、前回の領域データＯＬＤと今回の領域データＮＥＷとが異なるとき、すなわち、ルーチンの実行が初回であるときや、前回ルーチン実行時の運転領域と今回ルーチン実行時の運転領域とが同一でなく定常運転状態でないときには、ステップＳ３０３からステップＳ３０４へ進み、今回の領域データＮＥＷを旧データＯＬＤとして（ＯＬＤ←ＮＥＷ）ＲＡＭ５３に記憶し、前述のステップＳ３０５を経てルーチンを抜ける。
【００４８】
一方、前回の領域データＯＬＤと今回の領域データＮＥＷとが同一の場合、ステップＳ３０３からステップＳ３０６へ進み、所定時間Ｔ０内でＯ２センサ３５の出力電圧ＶＯ２のリッチ／リーン切換わりがあるか否か、すなわち空燃比がリッチ側からリーン側へ、或いはリーン側からリッチ側へ反転したか否かを調べる。そして、所定時間Ｔ０内にＯ２センサ３５の出力電圧ＶＯ２の反転がない場合には、ステップＳ３０６から前述のステップＳ３０５へ分岐してルーチンを抜け、所定時間Ｔ０内にＯ２センサ３５の出力電圧ＶＯ２の反転があった場合、ステップＳ３０６からステップＳ３０７へ進んで、カウント値ＯＵＮＴをカウントアップする（ＣＯＵＮＴ←ＣＯＵＮＴ＋１）。
【００４９】
その後、ステップＳ３０８へ進み、カウント値ＣＯＵＮＴが設定回数ＣＯＵＮＴＳＥＴ以上となったか否かを調べ、ＣＯＵＮＴ＜ＣＯＵＮＴＳＥＴのとき、定常状態でないと判別してルーチンを抜け、ＣＯＵＮＴ≧ＣＯＵＮＴＳＥＴのとき、すなわち、エンジン回転数ＮＥ及び基本燃料噴射パルス幅Ｔｐによる運転領域が略同一であり、且つ、このときＯ２センサ３５の出力電圧ＶＯ２の反転回数がＣＯＵＮＴＳＥＴ以上あったときには、定常状態と判定してステップＳ３０９へ進む。
【００５０】
ステップ３０９では、カウント値ＣＯＵＮＴをクリアし（ＣＯＵＮＴ←０）、次いで、ステップＳ３１０で、Ｏ２センサ３５の出力電圧ＶＯ２がスライスレベルを設定回数（例えば、３回）以上横切った間の空燃比フィードバック補正係数ＬＡＭＢＤＡの極大値及び極小値の平均値ＬＡＭＢＤＡＡＶＥを算出し、この平均値ＬＡＭＢＤＡＡＶＥの基準値１．０からの偏差量（基準値からのずれ）ΔＬＡＭＢＤＡを算出する（ΔＬＡＭＢＤＡ←ＬＡＭＢＤＡＡＶＥ−１．０）。
【００５１】
そして、ステップＳ３１１へ進み、エンジン回転数ＮＥと基本燃料噴射パルス幅ＴｐとをパラメータとしてバックアップＲＡＭ５４の空燃比学習値テーブルから空燃比学習値ＫＬＲを検索する。空燃比学習値テーブルは、図７に示すように、エンジン回転数ＮＥとエンジン負荷としての基本燃料噴射パルス幅Ｔｐとにより特定される各領域毎に、定常運転状態で空燃比フィードバック補正係数ＬＡＭＢＤＡが空燃比リッチ／リーンを所定回数繰り返した間の平均値と基準値との差に基づく空燃比学習値ＫＬＲをストアするものであり、未学習の初期状態では、テーブル内のデータは全てイニシャル値（＝１．０）にセットされている。
【００５２】
従って、ステップＳ３１１からステップＳ３１２へ進むと、検索した空燃比学習値ＫＬＲとステップＳ３１０で算出した偏差量ΔＬＡＭＢＤＡとから空燃比学習値ＫＬＲを設定し（ＫＬＲ←ＫＬＲ＋Ｍ×ΔＬＡＭＢＤＡ；Ｍは学習値更新の比率を決定する定数）、この空燃比学習値ＫＬＲを空燃比学習値テーブルの該当アドレスに書き込んでルーチンを抜ける。
【００５３】
以上の燃料噴射制御ルーチン、空燃比フィードバック補正係数設定ルーチン、空燃比学習値学習ルーチンに並行して、図８の大気圧領域判定ルーチン、図９のパージ実行許可ルーチン、図１０のパージ制御ルーチンが、それぞれ所定周期毎に実行される。大気圧領域判定ルーチンでは、現在の大気圧が予め区分した複数の大気圧領域の何れに属するかを判定し、その大気圧の判定結果と空燃比フィードバック補正係数ＬＡＭＢＤＡの変化とに基づいて、パージ実行許可ルーチンでキャニスタパージの実行許可を判断する。そして、キャニスタパージ実行が許可されたとき、パージ制御ルーチンによりキャニスタパージが実行される。
【００５４】
先ず、図８の大気圧領域判定ルーチンについて説明する。本形態においては、大気圧領域を、以下に示すように、領域１，２，３の３つの領域にヒステリシス付で区分し、現在の大気圧ＰＡＴが何れの領域に属するかを判定する。
（１）大気圧領域１　…　ＰＡＴ≧Ｐ１
（２）大気圧領域２　…　Ｐ２≦ＰＡＴ＜Ｐ１
（３）大気圧領域３　…　ＰＡＴ＜Ｐ２
【００５５】
このため、大気圧領域判定ルーチンでは、ステップＳ４０１で、大気圧センサ４１で検出される現在の大気圧ＰＡＴがＰ１（例えば、６９０ｍｍＨｇ＝９１．９９ｋＰａ）以上か否かを調べる。そして、ＰＡＴ≧Ｐ１の場合には、ステップＳ４０２で大気圧領域の領域番号を１としてルーチンを抜け、ＰＡＴ＜Ｐ１の場合には、ステップＳ４０１からステップＳ４０３へ進み、現在の大気圧ＰＡＴがＰ２（例えば、６２０ｍｍＨｇ＝８２．６６ｋＰａ）未満か否かを調べる。
【００５６】
その結果、ＰＡＴ≧Ｐ２の場合には、ステップＳ４０３からステップＳ４０４へ進んで大気圧領域の領域番号を２としてルーチンを抜ける。一方、ＰＡＴ＜Ｐ２の場合には、ステップＳ４０３からステップＳ４０５へ進んみ、大気圧領域の領域番号を３としてルーチンを抜ける。
【００５７】
また、図９のパージ実行許可ルーチンでは、最初のステップＳ５０１で、バックアップＲＡＭ５４の内容がクリアされているか否かを、キーワードがクリアされているか否かにより判断する。このキーワードは、バックアップＲＡＭ５４の特定のアドレスに書込まれている特定のデータ（例えば、２ビットの“１１”のデータ）であり、この特定のデータがクリアされているときには、修理等によりバッテリ６１が外されてバックアップＲＡＭ５４へのバックアップ電源が遮断され、バックアップＲＡＭ５４内の学習値データが破壊されている、或いは、診断等のための意図的なキーワードのクリア操作によりバックアップＲＡＭ５４内の学習値データが初期化されていると判断する。
【００５８】
そして、バックアップＲＡＭ５４のキーワードがクリアされている場合には、ステップＳ５０１からステップＳ５０２へ進み、後述する学習完了判定をクリアする。そして、ステップＳ５０３で、キャニスタパージの実行許可を指示するパージ実行許可フラグＦＬＧをクリアして（ＦＬＧ←０）キャニスタパージの実行を禁止し、ルーチンを抜ける。
【００５９】
尚、バックアップＲＡＭ５４のキーワードは、クリアされた後、ディーラのサービスステーション等で再セット可能であることは勿論であるが、その他、例えば、前述の空燃比学習値学習ルーチンにより空燃比学習値ＫＬＲが所定回数更新されたとき、自動的に再セットされ、ユーザが自分でバッテリ６１を外して交換した場合にも、キャニスタパージの実行が不能となることが回避される。
【００６０】
一方、バックアップＲＡＭ５４のキーワードがクリアされていない場合には、ステップＳ５０１からステップＳ５０４へ進み、大気圧領域が変化したか否かを調べる。その結果、ステップＳ５０４において、前回ルーチン実行時の大気圧領域番号と今回ルーチン実行時の大気圧領域番号が異なり、大気圧領域が変化している場合、例えば、低地から高地或いは高地から低地に移動して走行環境が変化した場合等には、吸気密度及び排圧の変化に伴うエンジンの体積効率の変化により空燃比学習値が変動することが予想されるため、学習未完了として前述のステップＳ５０２，Ｓ５０３を経てルーチンを抜ける。
【００６１】
また、前回ルーチン実行時の大気圧領域番号と今回ルーチン実行時の大気圧領域番号が同じで、大気圧領域が変化していない場合には、ステップＳ５０４からステップＳ５０５へ進んで、現在の学習領域における空燃比フィードバック補正係数ＬＡＭＢＤＡの平均値ＬＡＭＢＤＡＡＶＥが基準値（１．０）に対して設定範囲内（例えば、−５％≦ＬＡＭＢＤＡＡＶＥ≦５％）に収まっているか否かを調べる。
【００６２】
そして、空燃比フィードバック補正係数ＬＡＭＢＤＡの平均値ＬＡＭＢＤＡＡＶＥが設定範囲外の場合には、現在の学習領域における学習が完了していないと判定して前述のステップＳ５０３を経てルーチンを抜ける。一方、空燃比フィードバック補正係数ＬＡＭＢＤＡの平均値ＬＡＭＢＤＡＡＶＥが設定範囲内の場合には、ステップＳ５０５からステップＳ５０６へ進んで現在の学習領域の学習完了と判定する。
【００６３】
すなわち、空燃比学習が完了してしない状態では、Ｏ２センサ３５の出力に基づく空燃比フィードバック補正係数ＬＡＭＢＤＡで空燃比補正がなされることから、空燃比フィードバック補正係数ＬＡＭＢＤＡが大きな値で補正しているときには、空燃比学習が未完了及び進行中であり、空燃比フィードバック補正係数ＬＡＭＢＤＡの変動が小さくなったとき、空燃比学習が完了したと判断することができる。
【００６４】
従って、過渡的な空燃比変動の影響を避けるため、空燃比フィードバック補正係数ＬＡＭＢＤＡの平均値ＬＡＭＢＤＡＡＶＥを用いて学習完了判定を行い、平均値ＬＡＭＢＤＡＡＶＥが設定範囲内にあるとき、該当領域の学習が完了したと判定する。空燃比フィードバック補正係数ＬＡＭＢＤＡの平均値ＬＡＭＢＤＡＡＶＥに対する設定範囲は、エンジン特性を考慮して予めシミュレーション或いは実験等により学習領域毎に適正範囲を求めておき、固定データとしてＲＯＭ５２に記憶させておく。
【００６５】
その後、ステップＳ５０６からステップＳ５０７へ進み、学習完了と判定された領域数（学習完了判定領域数）が設定領域数以上あるか否かを調べる。この設定領域数は、キャニスタパージの実行頻度を低下させることなく、且つ空燃比学習の進行状態がキャニスタパージを実行しても空燃比学習値を燃料噴射量に十分に反映させることが可能な状態に達していると判断される領域数であり、例えば、３領域である。
【００６６】
そして、学習完了判定領域数が設定数未満の場合には、前述のステップＳ５０３でパージ実行許可フラグＦＬＧをクリア状態（パージ実行禁止）に維持してルーチンを抜け、学習完了判定領域数が設定数以上ある場合、ステップＳ５０７からステップＳ５０８へ進んで、キャニスタパージの実行を許可すべくパージ実行許可フラグＦＬＧをセットし（ＦＬＧ←１）、ルーチンを抜ける。
【００６７】
このパージ実行許可フラグＦＬＧは、図１０のパージ制御ルーチンで参照され、ＦＬＧ＝１のとき、ＣＰＣデューティソレノイド弁２５が開弁駆動され、キャニスタ２３から吸気系へ蒸発燃料がパージされる。
【００６８】
すなわち、パージ制御ルーチンでは、最初のステップＳ６０１でパージ実行許可フラグＦＬＧの値を参照し、キャニスタパージの実行が許可されているか否かを調べる。そして、ＦＬＧ＝０でキャニスタパージの実行が禁止されている場合、ステップＳ６０２でＣＰＣデューティソレノイド弁２５に対する制御デューティ（デューティ比）ＣＰＣＤを０としてルーチンを抜ける。これにより、ＦＬＧ＝０のキャニスタパージ禁止時は、制御デューティＣＰＣＤ＝０により、ＣＰＣデューティソレノイド弁２５が全閉し、キャニスタパージが禁止される。一方、ＦＬＧ＝０でキャニスタパージの実行が許可されている場合、ステップＳ６０３へ進む。
【００６９】
ステップＳ６０３では、吸気管圧力ＰＢと吸入空気量Ｑとに基づき制御デューティマップＭＡＰを参照し、基本制御デューティＣＰＣＤＭＡＰを設定する（ＣＰＣＤＭＡＰ←ＭＡＰ（ＰＢ，Ｑ））。制御デューティマップＭＡＰは、ステップＳ６０３に例示するように、予めシミュレーション或いは実験等により、上述のパージ条件が成立する状態下で、吸気管圧力ＰＢと吸入空気量Ｑとをパラメータとして最適パージ量を得るＣＰＣデューティソレノイド弁２５に対する制御デューティ（デューティ比）を求め、これを基本制御デューティＣＰＣＤＭＡＰとしてＲＯＭ５２にメモリしたものである。
【００７０】
ステップＳ６０３で基本制御デューティＣＰＣＤＭＡＰを設定した後は、ステップＳ６０４へ進み、基本制御デューティＣＰＣＤＭＡＰを運転状態に応じた各種パージ補正係数ＣＰＣＫにより補正し、ＣＰＣデューティソレノイド弁２５に対する制御デューティ（デューティ比）ＣＰＣＤを設定する（ＣＰＣＤ←ＣＰＣＤＭＡＰ×ＣＰＣＫ）。そして、ステップＳ６０５で、制御デューティＣＰＣＤをＣＰＣデューティソレノイド弁２５に対する駆動信号のデューティ比としてセットし、ルーチンを抜ける。従って、ＦＬＧ＝１でキャニスタパージが許可されているときは、そのときのエンジン運転状態に適応して制御デューティＣＰＣＤが設定され、ＣＰＣデューティソレノイド弁２５の開弁によりパージが実行される。
【００７１】
このように本実施の形態においては、学習領域毎に、大気圧領域による走行環境の変化、空燃比フィードバック補正係数ＬＡＭＢＤＡの平均値の変化を調べて学習完了判定を行い、学習完了と判定された領域数が、キャニスタパージの実行頻度を低下させることなく、且つ空燃比学習の進行状態がキャニスタパージを実行しても空燃比学習値を燃料噴射量に十分に反映させることが可能な状態に達していると判断される領域数に達したとき、キャニスタパージの実行を許可するため、キャニスタパージ実行に伴う空燃比補正の際に、燃料噴射量に空燃比学習値を反映させることができ、エンジン公差のばらつきを吸収して空燃比制御性を向上し、排気ガスエミッションの向上、燃費低減に寄与することができる。
【００７２】
【発明の効果】
以上説明したように本発明によれば、空燃比学習が十分に進行しているか否かを確実に判断し、空燃比学習制御とキャニスタパージ制御とを両立させて制御性を向上することができる。
【図面の簡単な説明】
【図１】エンジン系の全体図
【図２】電子制御系の回路構成図
【図３】燃料噴射制御ルーチンのフローチャート
【図４】空燃比フィードバック補正係数設定ルーチンのフローチャート
【図５】Ｏ２センサ出力電圧と空燃比フィードバック補正係数との関係を示すタイムチャート
【図６】空燃比学習値学習ルーチンのフローチャート
【図７】定常状態判定マトリックスと空燃比学習値テーブルの説明図
【図８】大気圧領域判定ルーチンのフローチャート
【図９】パージ実行許可ルーチンのフローチャート
【図１０】パージ制御ルーチンのフローチャート
【符号の説明】
１　エンジン
１７　燃料タンク
２３　キャニスタ
５０　電子制御装置（空燃比学習手段、パージ制御手段、空燃比学習完了判定手段、パージ実行許可手段）
ＫＬＲ　空燃比学習値
ＬＡＭＢＤＡ　空燃比フィードバック補正係数
ＬＡＭＢＤＡＡＶＥ　空燃比フィードバック補正係数の平均値
ＰＡＴ　大気圧
【図１】
2004116371.tif 000003
【図２】
2004116371.tif 000004
【図３】
2004116371.tif 000005
【図４】
2004116371.tif 000006
【図５】
2004116371.tif 000007
【図６】
2004116371.tif 000008
【図７】
2004116371.tif 000009
【図８】
2004116371.tif 000010
【図９】
2004116371.tif 000011
【図１０】
2004116371.tif 000012