(57)【特許請求の範囲】
【請求項１】
燃料タンク内の燃料を内燃機関に供給する燃料供給装置と、
前記内燃機関の排気系に設置されて前記内燃機関からの排気ガス中の空燃比を検出する空燃比検出手段と、
前記空燃比検出手段の検出値に基づいて、前記内燃機関への燃料噴射量を補正するための空燃比補正量を算出する空燃比補正量算出手段と、
前記空燃比補正量が所定閾値の範囲外となったときに前記燃料の濃度推定の開始条件が成立したと判定し、前記濃度推定の開始条件の成立後に前記内燃機関に供給された前記燃料噴射量を積算した第１の積算噴射量に応じて、前記濃度推定の許可時期を設定する推定許可判定手段と、
前記推定許可判定手段により前記濃度推定が許可されている間に、前記空燃比補正量に基づいて前記燃料の単一組成分の濃度推定値を算出する濃度推定手段と、
前記空燃比補正量および前記濃度推定値に応じて前記燃料噴射量を補正する燃料噴射量算出手段と
を備えた内燃機関制御装置であって、
前記燃料供給装置は、
前記燃料タンク内の燃料から発生する蒸散ガスを吸着するキャニスタと、
前記キャニスタに吸着された蒸散ガスを前記内燃機関に導入するパージ開閉手段とを含み、
前記推定許可判定手段は、前記パージ開閉手段の開放を禁止するためのパージ禁止期間を設定するパージ禁止期間設定手段を含み、
前記パージ禁止期間設定手段は、前記推定許可判定手段により前記濃度推定の開始条件が成立したか否かを判定している判定実行期間を、前記パージ禁止期間として設定することを特徴とする内燃機関制御装置。
【請求項２】
前記濃度推定手段は、
前記空燃比補正量と制御定数とに基づき前記濃度推定値を更新するとともに、
前記第１の積算噴射量に応じて前記制御定数を可変設定することを特徴とする請求項１に記載の内燃機関制御装置。
【請求項３】
前記推定許可判定手段は、前記第１の積算噴射量に応じて、前記パージ禁止期間を設定することを特徴とする請求項１または請求項２に記載の内燃機関制御装置。
【請求項４】
前記空燃比補正量算出手段は、前記空燃比補正量をフィルタ処理または平均化処理して更新された学習補正係数を用いて前記燃料噴射量を補正する学習補正手段を含み、
前記推定許可判定手段は、前記学習補正係数の更新を禁止するための更新禁止期間を設定する学習値更新禁止期間設定手段を含み、
前記学習値更新禁止期間設定手段は、前記判定実行期間と、前記第１の積算噴射量が第１の所定量以下を示す期間とを、前記更新禁止期間として設定することを特徴とする請求項１から請求項３までのいずれか１項に記載の内燃機関制御装置。
【請求項５】
前記推定許可判定手段は、前記濃度推定の開始条件の成立時に、前記学習補正係数を所定値にリセットすることを特徴とする請求項１から請求項４までのいずれか１項に記載の内燃機関制御装置。
【請求項６】
前記推定許可判定手段は、前記空燃比補正量が前記所定閾値の範囲外となっている期間の燃料噴射量を積算した第２の積算噴射量が第２の所定量に到達したときに、前記濃度推定の開始条件が成立したと判定することを特徴とする請求項１から請求項５までのいずれか１項に記載の内燃機関制御装置。
【請求項７】
前記推定許可判定手段は、前記燃料タンクへの燃料給油後に前記燃料噴射量を積算した第３の積算噴射量に応じて、前記所定閾値を可変設定することを特徴とする請求項１から請求項６までのいずれか１項に記載の内燃機関制御装置。
【請求項８】
前記推定許可判定手段は、前記第１の積算噴射量に応じて、前記空燃比補正量算出手段における前記空燃比補正量の算出を停止させないための制御停止禁止期間を設定することを特徴とする請求項１から請求項７までのいずれか１項に記載の内燃機関制御装置。
【請求項９】
前記推定許可判定手段は、前記判定実行期間を、前記燃料タンクへの燃料給油後に前記燃料噴射量を積算した第３の積算噴射量に応じて設定することを特徴とする請求項１から請求項８までのいずれか１項に記載の内燃機関制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、アルコール（単一組成分）とガソリンとの各種組成の混合燃料でも走行可能な内燃機関制御装置に関し、特に、空燃比補正量に基づいて単一組成分濃度を推定して、濃度推定値を用いて燃料噴射量を最適化する技術に関するものである。
【背景技術】
【０００２】
近年、ＦＦＶ（フレキシブルフューエルビークル）と称される自動車が開発されており、ガソリンの他に、アルコールおよびガソリンの各種組成の混合燃料でも走行可能となっている。
【０００３】
この場合、アルコールは、通常のガソリン（混合燃料）に対してＣ（炭素）原子の含有量が異なることから、ＦＦＶに用いられる内燃機関にアルコールおよびガソリンの混合燃料を供給する際には、燃料内のアルコール濃度にしたがって燃料噴射量を調整する必要がある。
【０００４】
この種のＦＦＶにおいて、従来から、燃料内のアルコール濃度を推定する内燃機関制御装置として、排気ガス中の空燃比センサによる空燃比ＡＦに基づいて算出される空燃比フィードバック補正係数と、アルコール濃度との相関関係により、アルコール濃度を推定する技術が提案されている（たとえば、特許文献１、特許文献２参照）。
【０００５】
一般に、給油によりアルコール濃度が変化した場合、濃度変化した燃料タンク内の混合燃料が、内燃機関に燃料供給するインジェクタに到達するまでには搬送遅れがあり、リターンレスの燃料供給システムではこの遅れが大きい。
【０００６】
図１２のブロック構成図に示す一般的なリターンレスの燃料供給システムにおいて、燃料タンク２０内の燃料は、燃料ポンプ２２および圧力レギュレータ２３を介して、燃料供給パイプ２５に送出され、さらにデリバリパイプ２６に導入され、適正な噴射タイミングでインジェクタ２１から内燃機関に噴射される。
【０００７】
このとき、燃料は、圧力レギュレータ２３の下流側では、インジェクタ２１で噴射された分しか進まなくなっているので、アルコール濃度変化の遅れが大きいが、圧力レギュレータ２３の上流側では、燃料タンク２０→燃料ポンプ２２→圧力レギュレータ２３→燃料タンク２０の経路で常に循環しているので、アルコール濃度変化の遅れは非常に小さい。
【０００８】
したがって、燃料タンク２０内の燃料からインジェクタ２１における燃料までのアルコール濃度変化の遅れは、圧力レギュレータ２３の下流側の燃料供給パイプ２５およびデリバリパイプの燃料移送遅れで表される。
ここで、比較的細長い燃料供給パイプ２５での遅れは無駄時間遅れとなるが、比較的太い燃料供給デリバリパイプ２６での遅れは、パイプ内で燃料が混合するので、一次遅れとなる。
【０００９】
このような無駄時間遅れおよび一次遅れは、燃料流量に反比例して変化し、積算噴射量で整理すると、所定関数で表される。
図１３は所定関数からなるアルコール濃度変化の遅れを示す波形図であり、横軸は積算噴射量を示し、縦軸は燃料タンク２０内（上段）およびインジェクタ２１内（下段）の各アルコール濃度を示している。
【００１０】
図１３において、積算噴射量が「０」の状態で、給油によりアルコール濃度の高い燃料が燃料タンク２０内に供給されると、燃料タンク２０内のアルコール濃度（上段）が高くなる。
一方、インジェクタ２１におけるアルコール濃度（下段）は、無駄時間Ｑ１および一次遅れＱ２の遅れを持って変化し、この遅れ（＝Ｑ１＋Ｑ２）の期間は、所定の積算噴射量となる。
【００１１】
上記特許文献１、特許文献２に記載の従来装置では、無駄時間Ｑ１が終了し、一次遅れＱ２で濃度が変化する期間を、給油後の積算噴射量に基づいて設定し、この設定期間においてアルコール濃度を推定している。
【００１２】
しかしながら、上記従来装置によれば、給油後から濃度変化が開始するまでの無駄時間Ｑ１が変動した場合に、濃度推定に誤差が生じることになる。
すなわち、濃度推定の開始時期の設定に誤差が生じた場合、一次遅れＱ２の濃度変化挙動に合わせて、適切な濃度推定時期や推定値の更新ゲインを設定することができないので、濃度推定に誤差が生じる。
【００１３】
また、濃度変化速度は、一次遅れＱ２の挙動から濃度変化開始後に最も大きくなるので、開始時期に誤差が生じた場合に、濃度推定の誤差が大きくなり、濃度推定値に応じて制御定数が変更される広範囲の内燃機関制御（燃料制御および点火制御など）に悪影響をおよぼすことになる。
【００１４】
さらに、このような濃度変化の開始時期の変動は、様々な要因で発生するので、あらかじめ変動幅を考慮して適切な制御定数を設定することは困難である。
濃度変化の開始時期の変動要因としては、たとえば、給油中などの内燃機関停止中に、燃料供給パイプ２５およびデリバリパイプ２６内の燃料が、内燃機関からの伝達熱によって生じた気化燃料により燃料タンク２０に押し戻された場合があげられる。
【００１５】
また、他の変動要因として、長期間内燃機関を停止している間に、燃料供給パイプ２５およびデリバリパイプ２６内の燃料が燃料タンク２０に戻った場合、給油後の積算噴射量の演算に誤差が生じた場合、積算噴射量の演算値が途中でリセットされた場合、異なる形状のパイプに変更された場合、パイプ交換時に燃料が抜けた場合などがあげられる。
【００１６】
【特許文献１】特開２００４−２４５０９７号公報
【特許文献２】米国特許６０１６７９６号公報
【発明の開示】
【発明が解決しようとする課題】
【００１７】
従来の内燃機関制御装置では、給油後から濃度変化が開始するまでの無駄時間Ｑ１が変動した場合に、濃度推定に誤差が生じるので、濃度推定値に基づく燃料制御などに悪影響をおよぼすという課題があった。
【００１８】
この発明は、上記のような課題を解決するためになされたもので、空燃比補正量の変化によりアルコール濃度変化の開始時期を判定することにより、内燃機関の停止中に発生したベーパ（燃料蒸散）などにより濃度変化の開始時期が変動した場合でも、濃度推定処理の開始時期を精度よく検出するとともに、濃度推定処理の開始後の一次遅れ的な濃度変化挙動に合わせた適切な濃度推定時期を設定して、濃度推定値の精度を向上させて制御を適性化した内燃機関制御装置を得ることを目的とする。
【課題を解決するための手段】
【００１９】
この発明による内燃機関制御装置は、燃料タンク内の燃料を内燃機関に供給する燃料供給装置と、内燃機関の排気系に設置されて内燃機関からの排気ガス中の空燃比を検出する空燃比検出手段と、空燃比検出手段の検出値に基づいて、内燃機関への燃料噴射量を補正するための空燃比補正量を算出する空燃比補正量算出手段と、空燃比補正量が所定閾値の範囲外となったときに燃料の濃度推定の開始条件が成立したと判定し、濃度推定の開始条件の成立後に燃料噴射量を積算した第１の積算噴射量に応じて、濃度推定の許可時期を設定する推定許可判定手段と、推定許可判定手段により濃度推定が許可されている間に、空燃比補正量に基づいて燃料の単一組成分の濃度推定値を算出する濃度推定手段と、空燃比補正量および濃度推定値に応じて燃料噴射量を補正する燃料噴射量算出手段とを備えた内燃機関制御装置であって、燃料供給装置は、燃料タンク内の燃料から発生する蒸散ガスを吸着するキャニスタと、キャニスタに吸着された蒸散ガスを内燃機関に導入するパージ開閉手段とを含み、推定許可判定手段は、パージ開閉手段の開放を禁止するためのパージ禁止期間を設定するパージ禁止期間設定手段を含み、パージ禁止期間設定手段は、推定許可判定手段により濃度推定の開始条件が成立したか否かを判定している判定実行期間を、パージ禁止期間として設定するものである。
【発明の効果】
【００２０】
この発明によれば、濃度推定の開始時期を精度よく検出することができ、また開始後の一次遅れ的な濃度変化挙動に合わせた適切な濃度推定時期を設定することができるので、濃度推定値の精度を向上させて制御精度を向上させることができる。
【発明を実施するための最良の形態】
【００２１】
実施の形態１．
図１はこの発明の実施の形態１に係る内燃機関制御装置を概略的に示すブロック構成図であり、アルコールを含む燃料を用いた内燃機関の場合を示している。
図１において、内燃機関であるエンジン１０の吸気ポート１１には、吸気管１２が接続されている。
吸気管１２の最上流部にはエアクリーナ１３が設けられており、エアクリーナ１３の下流側には、エンジン１０への吸入空気量ｑａを検出するエアフローメータ３３が設けられ、エアフローメータ３３の下流側にスロットルバルブ１４が設けられている。
【００２２】
スロットルバルブ１４を収納するスロットルボディ１５には、スロットルバルブ１４をバイパスする吸気量を調節するアイドルスピードコントロールバルブ１６と、吸気管圧力Ｐａを検出する吸気管圧力センサ１７とが設けられている。
スロットルボディ１５の下流側にはサージタンク１８が設けられ、サージタンク１８内には、吸気温度Ｔａを検出する吸気温度センサ１９が設けられている。
【００２３】
また、各気筒の吸気ポート１１の近傍には、燃料タンク２０から供給される燃料を噴射する燃料噴射弁（インジェクタ）２１が設けられている。
燃料タンク２０内の燃料は、燃料ポンプ２２により汲み上げられ、燃料供給パイプ２５中に送られ、圧力レギュレータ２３、燃料フィルタ２４を経て、インジェクタ２１への燃料供給を行うデリバリパイプ２６に送られ、デリバリパイプ２６から各気筒のインジェクタ２１に分配される。
【００２４】
圧力レギュレータ２３の背圧室は大気に開放されており、燃料ポンプ２２から圧力レギュレータ２３に送られてくる燃料の余剰分は、圧力レギュレータ２３の燃料戻し口３６から燃料タンク２０内に戻される。
【００２５】
デリバリパイプ２６およびインジェクタ２１は、エンジン１０に燃料を供給する燃料供給装置を構成している。また、圧力レギュレータ２３および燃料フィルタ２４を含む燃料供給パイプ２５は、燃料タンク２０からインジェクタ２１（燃料供給装置）への燃料供給流路を構成している。
図１に示した燃料供給流路および燃料供給装置からなる燃料供給系は、デリバリパイプ２６から燃料タンク２０内に余剰燃料を戻すリターン配管が廃止されて、燃料供給パイプ２５がデリバリパイプ２６で終端となるリターンレスの燃料供給システムを構成している。
【００２６】
燃料タンク２０内には、燃料の液面レベルを検出する燃料レベルゲージ９が取り付けられている。
また、燃料タンク２０と、サージタンク１８との間には、キャニスタ８およびバルブ７（パージ開閉手段）を有する配管が設けられており、燃料タンク２０内の蒸発燃料を吸着して必要時に吸気管１２内に吸着燃料をパージするようになっている。
【００２７】
エンジン１０を冷却するウォータジャケット３０には、冷却水温Ｔｗを検出する水温センサ３１が取り付けられている。また、エンジン１０の回転速度Ｎｅは、クランク角センサ３２から所定クランク角ごとに出力されるパルス信号ＳＧＴの周波数によって検出される。
【００２８】
エンジン１０およびその周辺に設けられた各種センサの検出信号（運転状態情報）は、マイクロコンピュータからなるエンジンコントロールユニット（以下、「ＥＣＵ」という）３５に入力される。
ＥＣＵ３５は、後述する各種演算処理に用いられるデータを格納するバックアップＲＡＭまたはＥＥＰＲＯＭ（図示せず）と、演算制御プログラムが格納されたＲＯＭ３９とを有する。
【００２９】
インジェクタ２１は、ＥＣＵ３５からの噴射指令信号Ｊにより、運転条件に応じた所定の空燃比となるように、吸気管１２内の吸入空気中に燃料を噴射供給する。
一方、エンジン１０の排気ポート２７に接続された排気管２８（排気系）には、排出ガスの空燃比ＡＦを検出する酸素濃度センサ２９（空燃比検出手段）が設けられ、酸素濃度センサ２９の下流側には、排ガス浄化用の３元触媒コンバータ（以下、単に「触媒」という）３４が設けられている。
【００３０】
３元触媒３４は、空燃比が理論空燃比を中心とするウィンドウ内にある場合に最大の転化効率をもって排気中のＮＯｘ、ＨＣ、ＣＯを同時に浄化できるので、ＥＣＵ３５は、３元触媒３４の上流側に設けられた酸素濃度センサ２９からの空燃比ＡＦ（検出値）に基づいて、排気空燃比がウィンドウ範囲内で変動するように排気空燃比のフィードバック制御を行う。
【００３１】
燃料供給装置内のキャニスタ８は、バルブ７を有する配管を介して、吸気管１２のサージタンク１８に接続されており、燃料タンク２０内の燃料から発生する蒸散ガスを吸着する。
バルブ７は、ＥＣＵ３５の制御下で蒸散ガス導入時に開放され、キャニスタ８に吸着された蒸散ガスを、吸気管１２に導入してエンジン１０に導入させる。
【００３２】
ところで、周知のように、アルコールを含む燃料は、通常のガソリンに対してＣ（炭素）原子およびＯ（酸素）原子の含有量が異なるので、同一の当量比を得るためには大きな噴射量が要求される。したがって、アルコールおよびガソリンの混合燃料をエンジンに供給する際には、燃料内のアルコール濃度ＡＬに応じて燃料噴射量を調整する必要がある。
【００３３】
そこで、ＥＣＵ３５は、酸素濃度センサ２９で検出される空燃比ＡＦの値を利用して燃料内のアルコール濃度ＡＬを予測し、噴射指令信号を補正して燃料噴射量に反映させる。
すなわち、ＥＣＵ３５は、空燃比ＡＦに基づく空燃比フィードバック制御の補正係数を用いて、燃料内の単一組成分濃度（アルコール濃度ＡＬ）を推定する。
【００３４】
図２は図１内のＥＣＵ３５の具体的構成を示す機能ブロック図である。
図２において、各種センサ３８は、酸素濃度センサ２９以外のセンサ類を総称しており、エンジン１０の運転状態を検出する。
【００３５】
ＥＣＵ３５は、酸素濃度センサ２９で検出される空燃比ＡＦと、各種センサ３８からの運転状態情報とを入力情報としており、空燃比補正量算出手段４０と、燃料噴射量算出手段４１と、推定許可判定手段４２と、濃度推定手段４９とを備えている。
【００３６】
空燃比補正量算出手段４０は、酸素濃度センサ２９で検出される空燃比ＡＦに基づいて、エンジン１０への燃料噴射量をフィードバック補正するための空燃比補正量を算出する。
また、空燃比補正量算出手段４０は、後述するように、空燃比補正量（空燃比補正係数ＫＦＢ）をフィルタ処理または平均化処理して更新された学習値（学習補正係数ＫＬＲＮ）を算出する。さらに、これと平行して、空燃比補正量算出手段４０は、更新された学習補正係数を用いて燃料噴射量を補正するための学習補正手段４０ａを備えている。
燃料噴射量算出手段４１は、空燃比補正量および学習値（学習補正係数ＫＬＲＮ）に基づいて燃料噴射量を補正するとともに、濃度推定手段４９による濃度推定値に応じて燃料噴射量を補正する。
【００３７】
推定許可判定手段４２は、空燃比補正量を所定閾値ＫＦＢＪＤと比較する比較手段４３と、比較手段４３の比較結果に応じて積算噴射量を算出する燃料噴射量積算手段４４と、積算噴射量に応じて濃度推定の許可時期を設定する推定許可時期設定手段４５と、積算噴射量に応じてパージ禁止期間を設定するパージ禁止期間設定手段４６と、積算噴射量に応じて学習補正係数ＫＬＲＮの更新を禁止するための更新禁止期間を設定する学習値更新禁止期間設定手段４７と、積算噴射量に応じて空燃比補正量算出手段４０のフィードバック制御の停止禁止期間を設定する制御停止禁止期間設定手段４８とを備えている。
【００３８】
これにより、推定許可判定手段４２は、比較手段４３の比較結果に基づき、空燃比補正量が所定閾値ＫＦＢＪＤ（１−ＫＦＢＪＤ〜１＋ＫＦＢＪＤ）の範囲外となったときに、燃料の濃度推定の開始条件が成立したと判定し、濃度推定の開始条件の成立後に燃料噴射量積算手段４４で求めた積算噴射量（第１の積算噴射量）ＩＮＪＳＵＭＪＤに応じて、推定許可時期設定手段４５により濃度推定の許可時期を設定する。
【００３９】
また、推定許可判定手段４２は、空燃比補正量が所定閾値の範囲外となっている期間の燃料噴射量を積算した積算噴射量（第２の積算噴射量）ＩＮＪＳＵＭＤＬＹが第２の所定量に到達したときに、濃度推定の開始条件が成立したと判定するための判定ディレイを備えている。
また、推定許可判定手段４２は、濃度推定の開始条件の成立時に、学習補正係数ＫＬＲＮを所定値にリセットする。
また、推定許可判定手段４２は、燃料タンク２０への燃料給油後に燃料噴射量を積算した積算噴射量（第３の積算噴射量）ＩＮＪＳＵＭＲＦに応じて、所定閾値ＫＦＢＪＤを可変設定する。
さらに、推定許可判定手段４２は、第３の積算噴射量ＩＮＪＳＵＭＲＦに応じて、濃度推定の開始条件が成立したか否かを判定している期間（判定実行期間）を設定する。
【００４０】
推定許可判定手段４２内において、パージ禁止期間設定手段４６は、第１の積算噴射量ＩＮＪＳＵＭＪＤに応じて、バルブ７（パージ開閉手段）の開放を禁止するためのパージ禁止期間を設定し、パージ禁止期間においては、バルブ７の閉成状態を維持させる。
具体的には、パージ禁止期間設定手段４６は、濃度推定の開始条件が成立したか否かを判定している期間を、パージ開閉手段の開放を禁止するためのパージ禁止期間として設定する。
【００４１】
学習値更新禁止期間設定手段４７は、濃度推定の開始条件が成立したか否かを判定している期間と、第１の積算噴射量ＩＮＪＳＵＭＪＤが第１の所定量以下を示す期間とを、更新禁止期間として設定する。
また、制御停止禁止期間設定手段４８は、第１の積算噴射量ＩＮＪＳＵＭＪＤに応じて、空燃比補正量算出手段４０における空燃比補正量の算出を停止させない（オープンループ制御を禁止する）ための制御停止禁止期間を設定する。
【００４２】
濃度推定手段４９は、推定許可判定手段４２により濃度推定が許可されている間に、空燃比補正量に基づいて燃料の単一組成分（アルコール）の濃度推定値を算出する。
さらに具体的には、濃度推定手段４９は、空燃比補正量と制御定数とに基づき、濃度推定値を更新するとともに、第１の積算噴射量ＩＮＪＳＵＭＪＤに応じて制御定数を可変設定する。
【００４３】
次に、図１、図２とともに、図３のフローチャートおよび図４の説明図を参照しながら、この発明の実施の形態１による空燃比フィードバック制御用の空燃比補正係数ＫＦＢの演算ルーチンについて、具体的に説明する。なお、図３内の各判定処理からの分岐部には、それぞれ、符号Ｙ（Ｙｅｓ）、Ｎ（Ｎｏ）が付されている。
図３の演算ルーチンは、ＥＣＵ３５において所定時間（たとえば、５ｍｓ）ごとに実行される。
【００４４】
図３において、まず、ＥＣＵ３５内の燃料噴射量算出手段４１は、酸素濃度センサ２９の出力電圧Ｖ１（空燃比ＡＦに対応）をＡ／Ｄ変換して取り込み（ステップＳ１）、酸素濃度センサ２９の検出値に基づく空燃比の閉ループ（フィードバック）条件が成立しているか否かを判定する（ステップＳ２）。
【００４５】
たとえば、理論空燃比制御以外の空燃比制御条件時、酸素濃度センサの不活性状態時、酸素濃度センサ２９の故障時などは、いずれも閉ループ条件が不成立と判定され、その他の場合は閉ループ条件が成立と判定される。
なお、空燃比制御条件としては、たとえば、エンジン１０の始動中、冷却水温Ｔｗが低温時でのリッチ化制御中、高負荷パワー増量のリッチ化制御中、燃費向上のためのリーン化制御中、始動後のリーン化制御中、燃料カット中などがあげられる。
【００４６】
ステップＳ２において、閉ループ条件が不成立（すなわち、Ｎｏ）と判定されれば、空燃比補正係数ＫＦＢを「１．０」に設定し（ステップＳ８）、積分演算値ＫＩを「０．０」にリセットして（ステップＳ９）、ステップＳ１０（後述する）に進む。
【００４７】
一方、ステップＳ２において、閉ループ条件が成立（すなわち、Ｙｅｓ）と判定されれば、比例演算値ＫＰおよび積分演算値ＫＩを用いた比例・積分演算によるフィードバック制御（ステップＳ３〜Ｓ７）を行う。
まず、酸素濃度センサ２９の出力電圧Ｖ１と目標電圧ＶＦ１とを比較して、リッチ状態であるか否（リーン状態）かを判定する（ステップＳ３）。
【００４８】
もし、出力電圧Ｖ１が目標電圧ＶＦ１以上であって、空燃比ＡＦ（検出値）がリッチである（すなわち、Ｙｅｓ）と判定されれば、燃料噴射量を減少させるために、以下の式（１）、（２）のように、積分演算値ＫＩを所定のゲインＤＩだけ減少させるとともに、比例演算値ＫＰを負のゲイン「−ＤＰ」に設定する（ステップＳ４）。
【００４９】
ＫＩ←ＫＩ−ＤＩ  ・・・（１）
ＫＰ←−ＤＰ      ・・・（２）
【００５０】
式（１）、（２）において、積分演算値ＫＩのゲインＤＩ、比例演算値ＫＰのゲインＤＰは、運転条件ごとにフィードバック性能が良好になるような値にそれぞれ設定されている。
一方、ステップＳ３において、Ｖ１がＶＦ１よりも小さく、空燃比ＡＦがリーンである（すなわち、Ｙｅｓ）と判定されれば、燃料噴射量を増加させるために、以下の式（３）、（４）のように、積分演算値ＫＩを所定のゲインＤＩだけ増加させるとともに、比例演算値ＫＰを正のゲイン「＋ＤＰ」に設定する（ステップＳ５）。
【００５１】
ＫＩ←ＫＩ＋ＤＩ  ・・・（３）
ＫＰ←＋ＤＰ      ・・・（４）
【００５２】
続いて、ステップＳ４またはＳ５で設定された積分演算値ＫＩおよび比例演算値ＫＰを用いて、以下の式（５）のように、空燃比補正係数ＫＦＢを演算する（ステップＳ６）。
【００５３】
ＫＦＢ←１．０＋ＫＩ＋ＫＰ  ・・・（５）
【００５４】
また、以下の式（６）のように、下限値ＫＦＢｍｉｎおよび上限値ＫＦＢｍａｘを用いて、空燃比補正係数ＫＦＢに対して上下限制限処理を施す（ステップＳ７）。
【００５５】
ＫＦＢｍｉｎ＜ＫＦＢ＜ＫＦＢｍａｘ  ・・・（６）
【００５６】
ステップＳ７の上下限制限処理により、過大な燃料操作を防止することができ、ドライバビリティの悪化などを防ぐことができる。
【００５７】
次に、ステップＳ１０〜Ｓ１４において、空燃比補正係数ＫＦＢの学習値である学習補正係数ＫＬＲＮを算出（増減補正）する。学習補正係数ＫＬＲＮは、図５（後述する）内のリセット処理（ステップＳ３４）により初期値が「１」に設定されている。
空燃比補正係数ＫＦＢの学習制御は、燃料供給装置の経年変化や生産バラツキ（たとえば、インジェクタ２１の噴射量特性の変化、エアフローメータ３３で検出される吸入空気量ｑａの誤差など）を補償するために行われる。
【００５８】
なお、特性変化が生じない場合は、空燃比補正係数ＫＦＢの中心は「１．０」になるように設計されているが、特性変化が生じると、「１．０」からズレを生じることになる。学習制御は、空燃比補正係数ＫＦＢの「１．０」からのずれを学習補正係数ＫＬＲＮにより補償して、空燃比補正係数ＫＦＢの中心を「１．０」に維持させる作用がある。
【００５９】
まず、学習補正係数ＫＬＲＮを更新する条件であるか否かを判定し（ステップＳ１０）、更新許可条件を満たしていない更新禁止条件である（すなわち、Ｎｏ）と判定されれば、直ちにステップＳ１４に進む。
【００６０】
なお、更新許可条件には、空燃比フィードバック制御中、水温条件、蒸散ガスの非導入時、アルコール濃度ＡＬの変化中でない場合などがあげられる。
また、アルコール濃度ＡＬの変化中でない条件は、更新許可フラグＦＦＢＬＲＮ（後述する）を参照して、更新許可フラグＦＦＢＬＲＮが「１」のときに更新許可と判定する。
【００６１】
ステップＳ１０において、更新許可条件である（すなわち、Ｎｏ）と判定されれば、続いて、積分演算値ＫＩが「０」以上であるか否かを判定する（ステップＳ１１）。
ステップＳ１１において、ＫＩ≧０（すなわち、Ｙｅｓ）と判定されれば、燃料供給装置による噴射量が少なくなっていること示しているので、以下の式（７）のように、学習補正係数ＫＬＲＮを所定の更新ゲインＤＬＲＮだけ増加させて（ステップＳ１２）、ステップＳ１４に進む。
【００６２】
ＫＬＲＮ←ＫＬＲＮ＋ＤＬＲＮ  ・・・（７）
【００６３】
一方、ステップＳ１１において、ＫＩ＜０（すなわち、Ｎｏ）と判定されれば、以下の式（８）のように、学習補正係数ＫＬＲＮを更新ゲインＤＬＲＮだけ減少させて（ステップＳ１３）、ステップＳ１４に進む。
【００６４】
ＫＬＲＮ←ＫＬＲＮ−ＤＬＲＮ  ・・・（８）
【００６５】
式（７）、（８）において、更新ゲインＤＬＲＮは、積分演算更新ゲインＤＩよりも十分小さい値に設定されており、学習補正係数ＫＬＲＮの変化速度が、空燃比補正係数ＫＦＢに比べて大きくなり過ぎないようにする。
また、学習補正係数ＫＬＲＮは、エンジン１０の回転速度または負荷によって区切られた運転条件ごとに保持されており、運転条件による特性変動の傾向差を吸収するように求められる。
【００６６】
なお、ステップＳ１０〜Ｓ１３では、更新ゲインＤＬＲＮを用いて学習補正係数ＫＬＲＮを増減補正したが、他の公知の演算処理を用いて、空燃比補正量ＫＦＢをフィルタ処理または平均化処理して更新された学習補正係数ＫＬＲＮを算出してもよい。
【００６７】
続いて、下限値ＫＬＲＮｍｉｎおよび上限値ＫＬＲＮｍａｘを用いて、以下の式（９）のように、学習補正係数ＫＬＲＮに対して上下限制限処理を施す（ステップＳ１４）。
【００６８】
ＫＬＲＮｍｉｎ＜ＫＬＲＮ＜ＫＬＲＮｍａｘ  ・・・（９）
【００６９】
式（９）の上下限制限処理により、過大な燃料操作を防止することができ、ドライバビリティの悪化などを防ぐことができる。また、学習補正係数ＫＬＲＮが上下限に到達した場合は、燃料供給システムに何らかの不具合が生じた可能性があるので、故障発生の判定に用いることができる。
【００７０】
次に、ステップＳ１５〜Ｓ１９において、吸気管１２に導入された蒸散ガスによる空燃比変化を補償するための蒸散ガス導入補正係数ＫＰＲＧを算出する。
まず、蒸散ガスの導入条件であるか否かを判定し（ステップＳ１５）、蒸散ガスが非導入である（すなわち、Ｎｏ）と判定されれば、蒸散ガス導入補正係数ＫＰＲＧを「１．０」にリセットして（ステップＳ１９）、図３の演算ルーチンを終了する。
【００７１】
なお、蒸散ガスの導入条件は、アルコール濃度ＡＬの変化中での導入禁止フラグＡＬＰＲＧ（後述する）を参照して判定され、「ＡＬＰＲＧ＝０」のときに導入を許可し、「ＡＬＰＲＧ＝１」のときに導入を禁止する。
【００７２】
ステップＳ１５において、蒸散ガスの導入中である（すなわち、Ｙｅｓ）と判定されれば、続いて、積分演算値ＫＩが「０」以上であるか否かを判定する（ステップＳ１６）。
ステップＳ１６において、ＫＩ≧０（すなわち、Ｙｅｓ）と判定されれば、蒸散ガスの導入によってリーンの空燃比変動を生じていること示しているので、以下の式（１０）のように、蒸散ガス導入補正係数ＫＰＲＧを更新ゲインＤＰＲＧだけ増加させて（ステップＳ１７）、図３の演算ルーチンを終了する。
【００７３】
ＫＰＲＧ←ＫＰＲＧ＋ＤＰＲＧ  ・・・（１０）
【００７４】
一方、ステップＳ１６において、ＫＩ＜０（すなわち、Ｎｏ）と判定されれば、以下の式（１１）のように、蒸散ガス導入補正係数ＫＰＲＧを更新ゲインＤＰＲＧだけ減少させて（ステップＳ１８）、図３の演算ルーチンを終了する。
【００７５】
ＫＰＲＧ←ＫＰＲＧ−ＤＰＲＧ  ・・・（１１）
【００７６】
なお、インジェクタ２１からエンジン１０に供給される燃料噴射量Ｑｆｕｅｌ１は、アルコール濃度ＡＬが０％の場合の基本噴射量Ｑｆｕｅｌ０、アルコール濃度補正係数ＫＡＬ、空燃比補正係数ＫＦＢ、学習補正係数ＫＬＲＮ、蒸散ガス導入補正係数ＫＰＲＧ（いずれも、後述する）を用いて、以下の式（１２）のように設定される。
【００７７】
Ｑｆｕｅｌ１＝Ｑｆｕｅｌ０×ＫＡＬ×ＫＦＢ×ＫＬＲＮ×ＫＰＲＧ  ・・・（１２）
【００７８】
また、基本燃料量Ｑｆｕｅｌ０は、エアフローメータ３３で検出される吸入空気量ｑａから演算されるエンジン１０への実供給空気量Ｑａｃｙｌと、目標空燃比ＡＦｏとを用いて、以下の式（１３）のように演算される。
【００７９】
Ｑｆｕｅｌ０＝Ｑａｃｙｌ／ＡＦｏ  ・・・（１３）
【００８０】
目標空燃比ＡＦｏは、アルコール濃度ＡＬが０％のときの空燃比であり、図４に示すように、エンジン回転速度Ｎｅと負荷（たとえば、吸入空気量ｑａ、スロットルバルブ１４の開度など）との２次元マップに基づく値に設定される。
【００８１】
図４において、エンジン回転速度Ｎｅまたは負荷が大きい場合には、リッチ化制御用の目標空燃比ＡＦｏ（＝１２〜１３）が設定され、中間運転域では理論空燃比制御用の目標空燃比ＡＦｏ（≒１４．５３）が設定される。また、エンジン回転速度Ｎｅが中間運転域で負荷が小さい場合には、リーン化制御用の目標空燃比ＡＦｏ（＝１６）または燃料カット用の目標空燃比ＡＦｏ（＝∞）が設定される。
【００８２】
なお、ここでは、エアフローメータ３３により吸入空気量ｑａを直接計測したが、吸入空気量ｑａは、吸気管圧力Ｐａまたはエンジン回転速度Ｎｅに応じて、または、スロットルバルブ１４の開度およびエンジン回転速度Ｎｅに応じて、または、エンジン１０の吸排気バルブの開閉タイミングおよびリフト量に応じて、演算により求めてもよい。
【００８３】
次に、図１、図２とともに、図５のフローチャートおよび図６〜図１０の説明図を参照しながら、この発明の実施の形態１によるアルコール濃度ＡＬ（推定値）の更新演算ルーチンについて、具体的に説明する。
図５の演算ルーチンは、ＥＣＵ３５において所定時間（たとえば、５ｍｓ）ごとに実行される。図５の演算ルーチンでは、空燃比補正係数ＫＦＢの変動から濃度変化の開始判定を行い、開始判定後の第１の積算噴射量ＩＮＪＳＵＭＪＤに応じて、濃度更新時期、更新ゲインを設定し、空燃比補正係数ＫＦＢの変動からアルコール濃度ＡＬを更新する。
【００８４】
図５において、ＥＣＵ３５は、まず、燃料タンク２０内の燃料レベルゲージ９の検出信号の変化などに基づいて、燃料タンク２０に燃料が給油されたか否かを判定し（ステップＳ２１）、給油されていない（すなわち、Ｎｏ）と判定されれば、直ちにステップＳ２４（後述する）に進む。
【００８５】
なお、給油判定（ステップＳ２１）の際に、車両走行中は燃料タンク２０内の液面変動により燃料レベルゲージ９の出力値が変動して誤判定を招くので、停車中の燃料レベルゲージ９の出力変化をモニタしてもよい。
【００８６】
ステップＳ２１において、十分に短い所定時間内での燃料レベルの増加量が所定量以上となり、燃料タンク２０に燃料が給油された（すなわち、Ｙｅｓ）と判定されれば、濃度学習開始時での各変数の初期値を設定する（ステップＳ２２、Ｓ２３）。
すなわち、給油後の積算噴射量ＩＮＪＳＵＭＲＦ（第３の積算噴射量）を「０」にリセットし（ステップＳ２２）、濃度変化開始判定フラグＦＡＬＬＲＳＴを「０」（未判定）にセットする（ステップＳ２３）。濃度変化開始判定フラグＦＡＬＬＲＳＴが「０」にリセットされることにより、給油後に濃度変化が開始したと判定していないことが設定される。
【００８７】
また、ＥＣＵ３５のリセット処理により、燃料レベルゲージ９の出力値、アルコール濃度ＡＬ（濃度推定値）などの各種制御定数の記憶値がリセットされた場合は、濃度変化の開始判定が成立したものと見なして、開始判定後の濃度推定処理を強制的に開始してもよい。
これにより、ＥＣＵ３５のリセット後に、濃度推定処理を開始することができ、濃度推定誤差による不具合を防止することができる。
【００８８】
また、燃料レベルゲージ９のセンサ故障が判定された場合は、フェールセーフとして常に給油されたものと判定し、空燃比補正係数ＫＦＢの変動による濃度推定の開始判定（後述する）が行われるようにしてもよい。
これにより、燃料レベルゲージ９のセンサ故障時でも、濃度推定処理を開始することができ、濃度推定誤差による不具合を防止することができる。
【００８９】
続いて、インジェクタ２１から燃料が噴射供給されたときに、以下の式（１４）のように、給油後の積算噴射量ＩＮＪＳＵＭＲＦに燃料噴射量Ｑｆｕｅｌ１を加算補正して、給油後の積算噴射量ＩＮＪＳＵＭＲＦを更新する（ステップＳ２４）。
【００９０】
ＩＮＪＳＵＭＲＦ←ＩＮＪＳＵＭＲＦ＋Ｑｆｕｅｌ１  ・・・（１４）
【００９１】
以下、空燃比補正係数ＫＦＢが所定閾値ＫＦＢＪＤの範囲（１−ＫＦＢＪＤ〜１＋ＫＦＢＪＤ）から逸脱したときに、濃度変化が開始したと判定されるが、それに先だって、まず、開始判定基準となる所定閾値ＫＦＢＪＤを算出する（ステップＳ２５）。
所定閾値ＫＦＢＪＤは、たとえば、図６に示すような２次元マップデータにより、給油後の積算噴射量ＩＮＪＳＵＭＲＦに応じて一義的に算出される。
【００９２】
図６において、所定閾値ＫＦＢＪＤは、給油後の積算噴射量ＩＮＪＳＵＭＲＦの増大に応じて低減され、濃度変化の開始判定精度を向上させるようになっている。
たとえば、給油後の積算噴射量ＩＮＪＳＵＭＲＦがＱｓ１≦ＩＮＪＳＵＭＲＦ＜Ｑｓ２の範囲は、通常の使用条件（たとえば、エンジン１０の停止中のベーパ発生などによる無駄時間の変動範囲）に対応する。
【００９３】
また、所定閾値ＫＦＢＪＤの設定は、車両の加減速などの外乱による一時的な空燃比補正係数ＫＦＢの変動によって開始誤判定が生じないように、適切な値に設定される。
また、ベーパ発生量は、エンジン停止前のエンジン温度（冷却水温ＴＷ）、エンジン停止期間などの条件によって変化するので、Ｑｓ１≦ＩＮＪＳＵＭＲＦ＜Ｑｓ２の期間は、あらかじめ実験的に求めた変動幅に設定される。
【００９４】
また、給油後の積算噴射量ＩＮＪＳＵＭＲＦがＩＮＪＳＵＭＲＦ≧Ｑｓ２の期間では、給油による濃度変化量が小さく、空燃比補正係数ＫＦＢの変化量が小さい場合でも開始判定が行われるように、所定閾値ＫＦＢＪＤは、徐々に低減されている。
さらに、図６において、給油後の積算噴射量ＩＮＪＳＵＭＲＦが０≦ＩＮＪＳＵＭＲＦ＜Ｑｓ１の範囲は、通常でない条件（たとえば燃料配管の交換などによって、無駄時間による遅れが大幅に減少した場合）に対応する。
【００９５】
この条件（０≦ＩＮＪＳＵＭＲＦ＜Ｑｓ１）は、頻度は低いものの起こり得るので、この条件下での所定閾値ＫＦＢＪＤは、給油後の積算噴射量ＩＮＪＳＵＭＲＦが「０」に近づくほど大きい値に設定される。
これにより、開始判定が成立しにくくなるものの、大きな濃度変化が生じた場合には開始判定が行われて、濃度推定誤差による不具合を防止することができる。
または、この条件下では、所定閾値ＫＦＢＪＤを積算噴射量ＩＮＪＳＵＭＲＦに応じて可変設定せずに、単純に一定値に設定してしてもよい。
【００９６】
図５に戻り、次に、濃度変化の開始判定に用いられる空燃比補正係数ＫＦＢのノイズ除去を目的として、フィルタ値ＫＦＢ＿ｆｌｔを演算する（ステップＳ２６）。
なお、フィルタ値ＫＦＢ＿ｆｌｔの演算は、公知の一次遅れ処理や移動平均処理などにより行われる。
【００９７】
一般に、空燃比補正係数ＫＦＢは、フィードバック制御や外乱などにより、常にアルコール濃度変化に比べて高周波で変動しているので、所定閾値ＫＦＢＪＤとの比較結果が安定せず、判定精度の劣化を招く可能性がある。
したがって、空燃比補正係数ＫＦＢの高周波変動を除去したフィルタ値ＫＦＢ＿ｆｌｔを用いて濃度開始判定を行うことにより、判定精度を向上させることができる。
【００９８】
なお、フィルタ値ＫＦＢ＿ｆｌｔの更新は、空燃比フィードバック制御の開始後から所定時間経過している場合に行い、それ以外の場合は、フィルタ値ＫＦＢ＿ｆｌｔの更新を行わずに前回値に保持することが望ましい。
たとえば、空燃比フィードバック制御中でないときは、前述（図３）のステップＳ８のように、空燃比補正係数ＫＦＢは「１．０」にリセットされるので、フィルタ処理を継続すると、フィルタ値ＫＦＢ＿ｆｌｔが「１．０」に近づいていき、開始判定が途中で中断してしまう不具合が生じるからである。
【００９９】
また、空燃比フィードバック開始後に、空燃比補正係数ＫＦＢがリセット値「１．０」から安定するまでには、ある程度の時間を要するからである。
したがって、空燃比フィードバック制御の開始後から所定時間経過後にフィルタ値ＫＦＢ＿ｆｌｔの更新処理を行うことにより、オープンループ時の空燃比補正係数ＫＦＢのリセットによるフィルタ値ＫＦＢ＿ｆｌｔの変動を防止することができ、開始判定精度を向上させることができる。
【０１００】
次に、ステップＳ２７〜Ｓ３４において、濃度変化の開始判定を行う。
まず、濃度変化開始判定フラグＦＡＬＬＲＳＴが「０」（未判定状態）であるか否かにより、開始判定が許可されているか否かを判定し（ステップＳ２７）、ＦＡＬＬＲＳＴ＝１（すなわち、Ｎｏ）と判定されれば、開始判定を許可せずに、判定ディレイＩＮＪＳＵＭＤＬＹを「０」にリセットして（ステップＳ３０）、ステップＳ３１（後述する）に進む。
【０１０１】
一方、ステップＳ２７において、給油後に濃度変化の開始判定が終了しておらず、ＦＡＬＬＲＳＴ＝０（すなわち、Ｙｅｓ）と判定されれば、開始判定を許可して、空燃比補正係数のフィルタ値ＫＦＢ＿ｆｌｔが所定閾値ＫＦＢＪＤの範囲外であるか否かを判定する（ステップＳ２８）。
【０１０２】
ステップＳ２８において、フィルタ値ＫＦＢ＿ｆｌｔが「１−ＫＦＢＪＤ＜ＫＦＢ＿ｆｌｔ＜１＋ＫＦＢＪＤ」であって、所定閾値ＫＦＢＪＤの範囲内である（すなわち、Ｎｏ）と判定されれば、判定ディレイＩＮＪＳＵＭＤＬＹを「０」にリセット処理（ステップＳ３０）に進む。
【０１０３】
一方、ステップＳ２８において、フィルタ値ＫＦＢ＿ｆｌｔが「ＫＦＢ＿ｆｌｔ≧１＋ＫＦＢＪＤ」または「ＫＦＢ＿ｆｌｔ≦１−ＫＦＢＪＤ」であって、所定閾値ＫＦＢＪＤの範囲外である（すなわち、Ｙｅｓ）と判定されれば、判定ディレイＩＮＪＳＵＭＤＬＹを更新して（ステップＳ２９）、ステップＳ３１に進む。
このとき、判定ディレイＩＮＪＳＵＭＤＬＹは、以下の式（１５）のように、燃料噴射量Ｑｆｕｅｌ１だけ増加するように更新演算される。
【０１０４】
ＩＮＪＳＵＭＤＬＹ←ＩＮＪＳＵＭＤＬＹ＋Ｑｆｕｅｌ１  ・・・（１５）
【０１０５】
なお、給油後の積算噴射量ＩＮＪＳＵＭＲＦが所定値（たとえば、図６内のＱｓ１）以上に達したときは、無駄時間による遅れが終了する可能性が高くなるので、開始判定処理を開始するようにしてもよい。
また、給油後の積算噴射量ＩＮＪＳＵＭＲＦが所定値（Ｑｓ２またはＱｓ３）以上に達しても開始判定処理が終了しない場合は、給油により濃度変化が生じなかった可能性があるので、開始判定処理を中断して、その後の濃度更新処理を実行しないようにしてもよい。
このように、給油後の積算噴射量ＩＮＪＳＵＭＲＦに基づき、開始判定処理を行う期間を設定することにより、濃度変化が生じる可能性が高い期間に開始判定処理を行うことができるようになり、開始判定の精度が向上する。
【０１０６】
次に、判定ディレイＩＮＪＳＵＭＤＬＹが所定設定値ＸＤＬＹ以上であるか否かを判定し（ステップＳ３１）、ＩＮＪＳＵＭＤＬＹ＜ＸＤＬＹ（すなわち、Ｎｏ）と判定されれば、直ちにステップＳ３５（後述する）に進む。
一方、ステップＳ３１において、ＩＮＪＳＵＭＤＬＹ≧ＸＤＬＹ（すなわち、Ｙｅｓ）と判定されれば、濃度変化が開始したものと見なして、濃度変化開始判定フラグＦＡＬＬＲＳＴを「１」に設定する（ステップＳ３２）。
【０１０７】
このように、判定ディレイＩＮＪＳＵＭＤＬＹを設定することにより、車両加減速などの外乱による一時的な空燃比補正係数ＫＦＢの変動に起因した濃度変化開始の誤判定を防止することができ、濃度推定精度を向上させることができる。
また、給油後の積算噴射量ＩＮＪＳＵＭＲＦに応じてアルコール濃度ＡＬが変化するので、判定ディレイＩＮＪＳＵＭＤＬＹを積算噴射量ＩＮＪＳＵＭＲＦに応じて設定することにより、濃度変化の開始判定精度が向上し、これにより濃度推定精度を向上させることができる。
【０１０８】
続いて、開始判定後の積算噴射量ＩＮＪＳＵＭＪＤ（第１の積算噴射量）を「０」にリセットし（ステップＳ３３）、学習補正係数ＫＬＲＮを中心値「１．０」にリセットして（ステップＳ３４）、ステップＳ３５に進む。
なお、学習補正係数ＫＬＲＮが運転条件ごとに保持されている場合は、全運転条件の係数値を「１．０」にリセットしてもよいが、全運転条件の係数平均値が「１．０」になるように、全運転条件の係数値を一律に可変設定してもよい。
【０１０９】
このように、学習補正係数ＫＬＲＮをリセットすることにより、アルコール濃度変化による空燃比補正係数ＫＦＢの変動を、学習補正係数ＫＬＲＮにより誤学習した場合でも、誤学習の蓄積を防止することができる。
また、学習補正係数ＫＬＲＮおよびアルコール濃度補正係数ＫＡＬは、同じ空燃比補正係数ＫＦＢを用いて更新されていることから、相互に影響し合っているので、学習補正係数ＫＬＲＮの誤学習を防止することにより、アルコール濃度ＡＬの推定精度を向上させることができる。
【０１１０】
また、開始判定後に学習補正係数ＫＬＲＮを「１」にリセットすることにより、開始判定中においては、リセット前の学習補正係数ＫＬＲＮにより空燃比補正係数ＫＦＢは中心付近に安定し、アルコール濃度変化による空燃比補正係数ＫＦＢの変動分の検出精度を向上させるとともに、開始判定後に開始するアルコール濃度の推定精度を向上させることができる。
【０１１１】
さらに、学習補正係数ＫＬＲＮを、全運転条件の平均値が「１．０」になるように全運転条件の値を一律に可変設定することにより、運転条件によって異なる特性変動を吸収する学習補正係数ＫＬＲＮを保持したまままで、アルコール濃度の推定精度を向上させることができる。
【０１１２】
次に、インジェクタ２１から燃料が噴射供給されたときに、以下の式（１６）のように、燃料噴射量Ｑｆｕｅｌ１だけ増加補正することにより、開始判定後の積算噴射量ＩＮＪＳＵＭＪＤを更新する（ステップＳ３５）。
【０１１３】
ＩＮＪＳＵＭＪＤ←ＩＮＪＳＵＭＪＤ＋Ｑｆｕｅｌ１  ・・・（１６）
【０１１４】
続いて、アルコール濃度ＡＬ（推定値）の更新条件であるか否かを判定し（ステップＳ３６）、濃度更新条件が不成立（すなわち、Ｎｏ）と判定されれば、直ちにステップＳ４１（後述する）に進む。
濃度更新条件としては、開始判定後の積算噴射量ＩＮＪＳＵＭＪＤが所定設定値ＸＪＤ以下であること、空燃比フィードバック制御中であること、および、パージ導入中でないこと、などがあげられる。
【０１１５】
濃度変化開始後の一時遅れ的な濃度変化は、濃度変化開始後の積算噴射量ＩＮＪＳＵＭＪＤに応じて変化していき、所定の積算噴射量になると濃度変化が終了するので、開始判定後の積算噴射量ＩＮＪＳＵＭＪＤに応じて濃度更新期間を設定することにより、適切な更新期間を設定することができ、濃度推定精度を向上させることができる。
【０１１６】
一方、ステップＳ３６において、濃度更新条件が成立している（すなわち、Ｙｅｓ）と判定されれば、制御定数であるアルコール濃度ＡＬの更新ゲインＤＡＬを算出する（ステップＳ３７）。
このとき、更新ゲインＤＡＬは、図７に示すような２次元マップデータにより、開始判定後の積算噴射量ＩＮＪＳＵＭＪＤに応じて算出される。
【０１１７】
一般に、一次遅れ的な濃度変化の挙動から、開始判定直後においては、濃度変化速度が大きいので、図６のように更新ゲインＤＡＬを大きい値に設定し、濃度変化に追従できるようにする。
その後、積算噴射量ＩＮＪＳＵＭＪＤが大きくなるにつれて、濃度変化速度が小さくなるので、更新ゲインＤＡＬを徐々に小さい値に設定し、濃度更新値を安定化させる。
これにより、濃度変化の挙動に合わせて、適切な更新ゲインＤＡＬを設定することができ、濃度推定精度を向上させることができる。
【０１１８】
次に、燃料フィードバック補正係数の積分演算値（積分項）ＫＩが「０」以上であるか否かを判定し（ステップＳ３８）、ＫＩ≧０（すなわち、Ｙｅｓ）と判定されれば、アルコール濃度ＡＬ（推定値）よりも実際のアルコール濃度（実アルコール濃度）の方が低いことを示しているので、以下の式（１７）のように、アルコール濃度ＡＬを更新ゲインＤＡＬだけ増加補正する（ステップＳ３９）。
【０１１９】
ＡＬ←ＡＬ＋ＤＡＬ  ・・・（１７）
【０１２０】
一方、ステップＳ３８において、ＫＩ＜０（すなわち、Ｎｏ）と判定されれば、以下の式（１８）のように、アルコール濃度ＡＬを更新ゲインＤＡＬだけ減少補正する（ステップＳ４０）。
【０１２１】
ＡＬ←ＡＬ−ＤＡＬ  ・・・（１８）
【０１２２】
続いて、式（１７）または式（１８）で増減補正されたアルコール濃度ＡＬに応じて、図８に示すような２次元マップデータにより、燃料噴射量Ｑｆｕｅｌ１を補正するためのアルコール濃度補正係数ＫＡＬを算出する（ステップＳ４１）。
図８において、アルコール濃度補正係数ＫＡＬは、アルコール濃度ＡＬが０％のときは「１．０」に設定され、アルコールとしてエタノールを用いた場合のアルコール濃度ＡＬが８５％のときは約「１．４」に設定される。
【０１２３】
次に、キャニスタ８を介した蒸散ガスの導入禁止条件であるか否かを判定する（ステップＳ４２）。
このとき、蒸散ガスの導入禁止条件としては、濃度変化の開始判定中である場合と、開始判定後の積算噴射量ＩＮＪＳＵＭＪＤが所定設定値ＸＪＤ以下である場合と、があげられる。
【０１２４】
ステップＳ４２において、蒸散ガス導入禁止条件の成立が判定された場合は、導入禁止フラグＡＬＰＲＧを「１」（導入禁止）に設定し、蒸散ガス導入禁止条件の不成立が判定された場合は、導入禁止フラグＡＬＰＲＧを「０」（導入許可）に設定する。
【０１２５】
このように、濃度変化の開始判定中、または濃度変化中に、蒸散ガスの導入を禁止することにより、蒸散ガス導入による空燃比補正係数ＫＦＢの変動を防止することができ、開始判定の精度を向上させることができる。
【０１２６】
ただし、濃度変化中に常に蒸散ガスの導入を禁止して蒸散ガス導入量を減少させると、蒸散ガスを吸着するキャニスタ８の吸着能力を超過して、蒸散ガスが大気中に放出されて大気汚染を招く可能性がある。
したがって、濃度変化中であっても適切に蒸散ガスを導入するために、図９の２次元マップ（タイミング）のように、導入禁止フラグＡＬＰＲＧを離散的に「０」（導入許可）に切り換えることにより、開始判定後の積算噴射量ＩＮＪＳＵＭＪＤに応じて、蒸散ガスの導入を許可してもよい。
【０１２７】
図９において、開始判定後しばらくの間は、一次遅れ的な濃度変化から、濃度変化が大きい期間であるので、蒸散ガスの導入を禁止して、濃度推定を行い、濃度変化に追従できるようにする。
一方、積算噴射量が増加するにつれて濃度変化が小さくなっていくので、離散的に蒸散ガスの導入を行うとともに、徐々に導入期間を長くしていく。
このように、開始判定後の積算噴射量ＩＮＪＳＵＭＪＤに応じて、蒸散ガスの導入時期を設定することにより、濃度推定の悪化を防止することができるので、濃度推定精度を維持しつつ、蒸散ガスの導入量を増加させることができる。
【０１２８】
次に、学習補正係数ＫＬＲＮの学習値更新禁止条件であるか否かを判定する（ステップＳ４３）。
学習値更新禁止条件としては、濃度変化開始判定フラグＦＡＬＬＲＳＴが「０」であって濃度変化の開始判定中である場合と、開始判定後の積算噴射量ＩＮＪＳＵＭＪＤが所定設定値ＸＪＤ以下である場合と、があげられる。
【０１２９】
ステップＳ４３において、学習補正係数ＫＬＲＮの更新禁止条件の成立が判定された場合は、更新許可フラグＦＦＢＬＲＮを「０」（更新禁止）に設定し、更新禁止条件の不成立が判定された場合は「１」（更新許可）に設定する。
【０１３０】
一般に、濃度変化の開始判定中は、アルコール濃度が変化する可能性があるので、学習補正係数ＫＬＲＮの更新を禁止することにより、アルコール濃度変化による誤学習を防止することができ、アルコール濃度推定精度を向上させるとともに、濃度変化による空燃比補正係数ＫＦＢの変動が学習補正係数ＫＬＲＮに吸収されることを防止して、開始判定精度の低下を防止することができる。
【０１３１】
最後に、空燃比オープンループ制御の禁止条件を判定して（ステップＳ４４）、図５の演算ルーチンを終了する。
空燃比オープンループ制御の条件としては、高負荷でのリッチ化制御、燃費向上のためのリーン化制御、始動後のリッチ化制御などがあげられる。
【０１３２】
また、空燃比オープンループ制御の禁止条件としては、濃度変化の開始判定中である場合と、開始判定後の積算噴射量ＩＮＪＳＵＭＪＤが所定設定値ＸＪＤ以下である場合と、があげられる。
濃度変化の可能性がある期間は、空燃比オープンループ制御を禁止して、確実に空燃比フィードバック制御を行い、濃度推定処理を可能にすることにより、濃度推定精度を向上させることができる。
【０１３３】
ただし、濃度変化中に常に空燃比オープンループ制御を禁止すると、本来の機能が損なわれるので、図１０の２次元マップ（タイミング）のように、オープンループ禁止フラグを離散的に「０」（空燃比オープンループ制御許可）に切り換えることにより、開始判定後の積算噴射量ＩＮＪＳＵＭＪＤに応じてオープンループ制御の禁止期間を設定し、オープンループ禁止期間を短縮してもよい。
【０１３４】
図１０において、開始判定後しばらくの間は、濃度変化が大きい期間であるので、オープンループ制御を禁止し、空燃比フィードバック制御を実行して濃度推定を行い、濃度変化に追従できるようにする。
その後、開始判定後の積算噴射量ＩＮＪＳＵＭＪＤが増加するにつれて、濃度変化が小さくなっていくので、離散的にオープンループ制御を禁止しつつ、徐々に禁止期間を短く設定していく。
これにより、濃度推定精度の悪化を防止することができるので、濃度推定精度を維持しつつ、オープンループ制御の禁止期間を短縮させることができる。
【０１３５】
また、アルコール濃度ＡＬ（推定値）、給油後の積算噴射量ＩＮＪＳＵＭＲＦ（第３の積算噴射量）、開始判定後の積算噴射量ＩＮＪＳＵＭＪＤ（第１の積算噴射量）、燃料レベルゲージ９の出力値は、ＥＣＵ３５内のバックアップＲＡＭまたはＥＥＰＲＯＭに保持されており、エンジン１０の停止時またはＥＣＵ３５の電源供給ＯＦＦ時にも、リセットされないように設計されている。
【０１３６】
ＥＣＵ３５内のバックアップＲＡＭやＥＥＰＲＯＭがリセットされた場合、アルコール濃度ＡＬ（推定値）の初期値としては、中間的なアルコール濃度（４０％程度）が設定される。
ただし、アルコール濃度ＡＬを再推定する必要があるので、図５内の給油判定処理（ステップＳ２１）において、給油されたものと判定して強制的にアルコール濃度推定を開始させるか、または、濃度変化開始判定処理（ステップＳ３１）において、濃度変化が開始したものと判定して、強制的にアルコール濃度推定を開始させる。
【０１３７】
また、アルコール濃度ＡＬ（推定値）は、エンジン１０の各種制御（燃料制御、点火制御など）に用いられ、燃料制御には、エンジン始動時の燃料制御などが含まれ、点火制御には、点火時期演算およびノック制御に関する制御定数演算などが含まれる。
【０１３８】
なお、図５内のステップＳ３８〜Ｓ４０では、積分演算値ＫＩが「０」以上か、または「０」以下であるかに応じて、アルコール濃度ＡＬを増減更新したが、アルコール濃度補正係数ＫＡＬおよび積分演算値ＫＩからアルコール濃度ＡＬを求めてもよい。
アルコール濃度補正係数ＫＡＬおよび積分項ＫＩに基づく「ＫＡＬ×（１＋ＫＩ）」の値は、アルコール濃度ＡＬ＝０％から現在の濃度値を補償するための真のアルコール濃度補正係数ＫＡＬに相当するので、アルコール濃度補正係数ＫＡＬを、以下の式（１９）のように、直接的にかつ定期的に更新してもよい。
【０１３９】
ＫＡＬ←ＫＡＬ×（１＋ＫＩ）  ・・・（１９）
【０１４０】
アルコール濃度補正係数ＫＡＬの更新時には、積分演算値ＫＩの変動がアルコール濃度補正係数ＫＡＬに反映されるので、積分演算値ＫＩを「０」にリセットする。
また、図８のように、アルコール濃度ＡＬとアルコール濃度補正係数ＫＡＬとの特性マップを用いて、濃度補正係数ＫＡＬのマップ関数として、以下の式（２０）のように、真のアルコール濃度ＡＬを演算することができる。
【０１４１】
ＡＬ←ＭＡＰ（ＫＡＬ）  ・・・（２０）
【０１４２】
また、積分演算値ＫＩは、フィードバックによって常に変動しており、アルコール濃度ＡＬ（推定値）も変動するので、積分演算値ＫＩにフィルタ処理を施すか、または移動平均を加えた値を、アルコール濃度補正係数ＫＡＬの更新に用いてもよい。
【０１４３】
また、開始判定後の積算噴射量が増加するにつれて、フィルタ定数（制御定数）を大きく設定してフィルタ効果を大きくするか、または移動平均期間（制御定数）を長く設定してもよい。
これにより、積算噴射量が小さく濃度変化の大きい期間では、実際の積分演算値ＫＩに近い値で濃度推定を行うことにより、濃度変化に追従させることができる。
一方、積算噴射量が大きく濃度変化速度の小さい期間では、実際の積分演算値ＫＩの平滑化の効果を大きくして、アルコール濃度ＡＬ（推定値）を安定化させることができる。
【０１４４】
また、前述のように、開始判定を実行している期間は、空燃比補正係数ＫＦＢの変動が大きくなる可能性があるので、空燃比補正係数ＫＦＢの変動による故障診断を禁止して、故障診断からアルコール濃度ＡＬの変化による要因を除外するようにしてもよい。
【０１４５】
さらに、スロットルバルブ１４以外の吸気管１２との流路（たとえば、エンジン１０から漏洩するブローバイガス、ブレーキマスターバックなどの空気流動）による外乱の影響は、スロットルバルブ１４を通過する吸入空気量ｑａが低いほど相対的に大きくなるので、空燃比補正係数ＫＦＢの変動が大きくなって濃度推定精度が低下する可能性がある。
したがって、開始判定後の積算噴射量ＫＦＢＪＤが所定設定値ＸＪＤ以上になって、濃度更新期間が終了した後の最終的な濃度推定値は、吸入空気量ｑａが所定値以上に達してから更新することが望ましい。
【０１４６】
次に、図１１のタイミングチャートを参照しながら、この発明の実施の形態１による各パラメータの具体的な挙動（時間変化）について説明する。
図１１は図５の演算ルーチンによる処理動作を示しており、各パラメータの時間変化を相互に関連付けて示している。
【０１４７】
図１１においては、燃料タンク２０内の実アルコール濃度、インジェクタ２１内の実アルコール濃度、燃料レベルゲージ９の出力値、給油後の積算噴射量ＩＮＪＳＵＭＲＦ、開始判定用の所定閾値ＫＦＢＪＤ、空燃比補正係数のフィルタ値ＫＦＢ＿ｆｌｔ、判定ディレイＩＮＪＳＵＭＤＬＹ、濃度変化開始判定フラグＦＡＬＬＲＳＴ、開始判定後の積算噴射量ＩＮＪＳＵＭＪＤ、濃度更新許可フラグ、導入禁止フラグＡＬＰＲＧ、学習補正係数ＫＬＲＮの更新禁止フラグ、更新ゲインＤＡＬ、アルコール濃度ＡＬ、アルコール濃度補正係数ＫＡＬの時間変化を示している。
【０１４８】
また、図１１においては、給油前のアルコール濃度ＡＬは０％であり、給油により燃料タンク２０内の実アルコール濃度が８５％になった場合の挙動を示している。
時刻ｔ１において、アルコール燃料が給油されると、燃料タンク２０内の実アルコール濃度は、直ちに０％から８５％に変化する。
【０１４９】
一方、インジェクタ２１内の実アルコール濃度は、リターンレスの燃料搬送遅れによって、無駄時間だけ遅れた時刻ｔ２から一次遅れ的に変化し始め、時刻ｔ４において変化が終了し、燃料タンク２０内の実アルコール濃度と同じ８５％となる。
このとき、無駄時間の終了時期ｔ２は、ベーパ発生などにより変動するので、空燃比補正係数ＫＦＢの変動に基づいて、無駄時間の終了時期、すなわち一次遅れの濃度変化の開始時期を検出して、アルコール濃度ＡＬの推定処理を許可する。
【０１５０】
以下、ＥＣＵ３５内の処理について説明する。
まず、時刻ｔ１において、燃料レベルゲージ９の変化に基づいて給油判定が行われ、開始判定フラグＦＡＬＬＲＳＴが「０」（未判定）に設定され、濃度変化の開始判定処理が開始する。
また、給油判定に応じて、給油後の積算噴射量ＩＮＪＳＵＭＲＦが「０」にリセットされ、燃料噴射量Ｑｆｕｅｌ１が積算されていく。
また、給油後の積算噴射量ＩＮＪＳＵＭＲＦに応じて、空燃比補正係数ＫＦＢに対する比較判定基準となる所定閾値ＫＦＢＪＤが算出される。
【０１５１】
続いて、時刻ｔ２において無駄時間が終了して、一次遅れの濃度変化が開始し、濃度変化を補正するための空燃比補正係数ＫＦＢが増加していく。
以下、空燃比補正係数ＫＦＢのフィルタ値ＫＦＢ＿ｆｌｔが所定閾値ＫＦＢＪＤの範囲外（図１１では、ＫＦＢ＿ｆｌｔ＞＋ＫＦＢＪＤ）になった時点で、給油後の積算噴射量ＩＮＪＳＵＭＲＦを用いた判定ディレイＩＮＪＳＵＭＤＬＹのカウントアップを開始する。
【０１５２】
続いて、時刻ｔ３において、判定ディレイＩＮＪＳＵＭＤＬＹが所定設定値ＸＤＬＹに到達したときに、濃度変化の開始判定が終了したとして、開始判定フラグＦＡＬＬＲＳＴを「１」に設定する。
時刻ｔ３において開始判定が終了すると、開始判定後の積算噴射量ＩＮＪＳＵＭＪＤが「０」にリセットされ、燃料噴射量Ｑｆｕｅｌ１が積算されていく。
濃度更新期間は、開始判定後の積算噴射量ＩＮＪＳＵＭＪＤが、一次遅れの濃度変化の終了時期に相当するＸＪＤに到達するまでの時刻ｔ３から、時刻ｔ４までの間に設定される。
【０１５３】
ただし、前述のように、蒸散ガスの導入中は、濃度更新を禁止する。
蒸散ガスの導入は、開始判定後の積算噴射量ＩＮＪＳＵＭＪＤに応じて設定されており、開始判定後からしばらくの間は濃度変化が大きいので、蒸散ガス導入を禁止して濃度変化の更新を行い、濃度変化に追従するようにしている。
【０１５４】
その後、開始判定後の積算噴射量ＩＮＪＳＵＭＪＤが大きくなるにつれて、蒸散ガスの導入期間を増加させ、濃度更新を中断しているが、濃度変化が小さいので、濃度変化への追従を維持しつつ、蒸散ガスの導入量を増加させることができる。
また、時刻ｔ１からの開始判定期間においても、蒸散ガスの導入を禁止することにより、蒸散ガス導入による空燃比補正係数の変動を防止して、開始判定の精度を向上させている。
【０１５５】
また、開始判定後の積算噴射量ＩＮＪＳＵＭＪＤに応じて、アルコール濃度ＡＬ（推定値）の更新ゲインＤＡＬを設定しており、開始判定後からしばらくの間は濃度変化が大きいので、更新ゲインＤＡＬを大きい値に設定して、濃度変化に追従できるようにしている。
その後、開始判定後の積算噴射量ＩＮＪＳＵＭＪＤが大きくなるにつれて、濃度変化速度が小さくなるので、更新ゲインＤＡＬを徐々に小さい値に設定して、濃度更新値の変化を減少させることにより、安定化させている。
【０１５６】
このように、開始判定後の積算噴射量ＩＮＪＳＵＭＪＤに応じて濃度更新用の制御定数（更新ゲインＤＡＬ）を設定することにより、濃度変化の挙動に合わせた適切な制御定数を設定することができ、濃度推定精度を向上させることができる。
【０１５７】
また、時刻ｔ１から時刻ｔ４までの期間は、アルコール濃度変化が生じる可能性があるので、学習補正係数ＫＬＲＮの更新を禁止して、濃度変化による誤学習を防止している。
また、時刻ｔ３の開始判定の終了時刻において、学習補正係数ＫＬＲＮをリセットすることにより、誤学習の蓄積を防止している。
学習補正係数ＫＬＲＮとアルコール濃度補正係数ＫＡＬとは、相互に影響し合うので、学習補正係数ＫＬＲＮの誤学習を防止することにより、アルコール濃度推定精度を向上させることができる。
【０１５８】
以上のように、空燃比補正係数ＫＬＲＮの変動に基づいて、高精度に濃度変化の開始時期を検出し、開始判定後の積算噴射量ＩＮＪＳＵＭＪＤに応じて、一次遅れの濃度変化に合うように、アルコール濃度ＡＬ（推定値）の更新期間の設定と、濃度更新用の制御定数（更新ゲインＤＡＬ）の設定と、蒸散ガスの導入時期の設定と、学習補正係数ＫＬＲＮの語学習の防止とを行うことにより、濃度推定精度を向上させることができ、また、蒸散ガスの導入量を増加させることができる。
【０１５９】
なお、酸素濃度センサ２９として、排気ガスの空燃比変化に対してリニアな出力を有するリニア型酸素濃度センサを用いても、空燃比フィードバック制御を行うことができ、アルコール濃度ＡＬを推定することができるので、同様の効果を有する。
【０１６０】
また、酸素濃度センサ２９としてリニア型酸素濃度センサを用いた場合は、理論空燃比制御以外のリッチ化制御またはリーン化制御においても、目標空燃比ＡＦｏをリッチまたはリーンに設定して空燃比フィードバック制御を行い、アルコール濃度推定を行うようにしてもよい。このとき、アルコール濃度変化中であっても、リッチ化またはリーン化の空燃比フィードバック制御を行い、リッチ化またはリーン化の禁止は行われない。
【０１６１】
また、空燃比フィードバック制御に比例・積分演算を用いるように説明したが、酸素濃度センサ２９からの空燃比ＡＦに基づき空燃比フィードバック制御を行ういずれの方式であっても、空燃比補正係数ＫＦＢによりアルコール濃度ＡＬを推定可能なので、同様の効果を奏する。
【０１６２】
酸素濃度センサ２９は、排気ガスの空燃比を検出することのできるセンサであれば何でもよく、リニア型空燃比センサ、ＮＯｘセンサ、ＨＣセンサ、ＣＯセンサなどでも、空燃比フィードバック制御を行うことができ、アルコール濃度ＡＬを推定することがでるので、同様の効果を奏する。
【図面の簡単な説明】
【０１６３】
【図１】この発明の実施の形態１に係る内燃機関制御装置を概略的に示すブロック構成図である。
【図２】この発明の実施の形態１に係る内燃機関制御装置のＥＣＵ構成を示す機能ブロック図である。
【図３】この発明の実施の形態１による空燃比フィードバック制御ルーチンを示すフローチャートである。
【図４】この発明の実施の形態１による空燃比フィードバック制御の目標空燃比設定用の２次元マップを示す説明図である。
【図５】この発明の実施の形態１によるアルコール濃度推定用の演算ルーチンを示すフローチャートである。
【図６】この発明の実施の形態１による所定閾値設定用の２次元マップを示す説明図である。
【図７】この発明の実施の形態１による更新ゲイン設定用の２次元マップを示す説明図である。
【図８】この発明の実施の形態１によるアルコール濃度補正係数設定用の２次元マップを示す説明図である。
【図９】この発明の実施の形態１による蒸散ガスの導入禁止フラグの２次元マップを示す説明図である。
【図１０】この発明の実施の形態１による空燃比オープンループ制御禁止フラグの２次元マップを示す説明図である。
【図１１】この発明の実施の形態１によるアルコール濃度推定処理を示すタイミングチャートである。
【図１２】従来の内燃機関制御装置に用いられる一般的なリターンレスの燃料供給システムを概略的に示すブロック構成図である。
【図１３】従来の内燃機関制御装置におけるアルコール濃度変化の遅れを示す波形図である。
【符号の説明】
【０１６４】
７  バルブ（パージ開閉手段）、８  キャニスタ、９  燃料レベルゲージ、１０  エンジン（内燃機関）、２０  燃料タンク、２１  インジェクタ、２２  燃料ポンプ、２３  圧力レギュレータ、２４  燃料フィルタ、２５燃料供給パイプ、２６  デリバリパイプ、２７  排気ポート、２８  排気管、２９  酸素濃度センサ、３５  ＥＣＵ、３８  各種センサ、４０  空燃比補正量算出手段、４１  燃料噴射量算出手段、４２  推定許可手段、４３  比較手段、４４  燃料噴射量積算手段、４５  推定許可時期設定手段、４６  パージ禁止期間設定手段、４７  学習値更新禁止期間設定手段、４８  制御禁止期間設定手段、４９  濃度推定手段、ＫＦＢ  空燃比補正係数、ＫＦＢＪＤ  所定閾値、ＫＬＲＮ  学習補正係数、ＩＮＪＳＵＭＪＤ  開始判定後の積算噴射量（第１の積算噴射量）、ＩＮＪＳＵＭＤＬＹ  判定ディレイ（第２の積算噴射量）、ＩＮＪＳＵＭＲＦ  給油後の積算噴射量（第３の積算噴射量）。
【図１】
0004672048.tif 000002
【図２】
0004672048.tif 000003
【図３】
0004672048.tif 000004
【図４】
0004672048.tif 000005
【図５】
0004672048.tif 000006
【図６】
0004672048.tif 000007
【図７】
0004672048.tif 000008
【図８】
0004672048.tif 000009
【図９】
0004672048.tif 000010
【図１０】
0004672048.tif 000011
【図１１】
0004672048.tif 000012
【図１２】
0004672048.tif 000013
【図１３】
0004672048.tif 000014