(57)【要約】【課題】エアスクリューの調整が行われた場合であっても、燃料噴射量の算出精度を向上させるエンジンの燃料噴射制御装置を提供する。【解決手段】エンジン１０の燃料噴射制御装置１２は、エンジン１０の燃料噴射制御装置１２は、吸気管２２のスロットルバルブ３４の上流側と下流側とを接続するバイパス通路３６と、バイパス通路３６を開閉するエアスクリュー３８とを備え、エアスクリュー３８の調整量を検出してスロットル開度補正値ΔＴＨＡＳを算出し、算出したスロットル開度補正値ΔＴＨＡＳを用いてスロットル開度センサ４４が検出したスロットル開度を補正して基本噴射量ＴＩＭＢを算出する。【選択図】図６
2014199039.tif 000002
【特許請求の範囲】
【請求項１】
エンジン（１０）の吸気管（２２）のスロットルバルブ（３４）の上流側と下流側とを接続するバイパス通路（３６）と、
前記バイパス通路（３６）を開閉するエアスクリュー（３８）と、
基本噴射量が記憶された噴射量マップ（８０）と、
前記スロットルバルブ（３４）のスロットル開度（ＴＨ）を検出するスロットル開度センサ（４４）と、
前記噴射量マップ（８０）を用いて前記スロットル開度センサ（４４）が検出した前記スロットル開度（ＴＨ）に応じた基本噴射量（ＴＩＭＢ）を算出する基本噴射量算出部（６０）と、
を備えるエンジン（１０）の燃料噴射制御装置（１２）において、
前記エアスクリュー（３８）の調整量を検出する調整検出部（７０）と、
前記調整検出部（７０）が検出した前記エアスクリュー（３８）の調整量に応じてスロットル開度補正値（ΔＴＨＡＳ）を算出する補正値算出部（７２）と、
を備え、
前記基本噴射量算出部（６０）は、前記補正値算出部（７２）が算出した前記スロットル開度補正値（ΔＴＨＡＳ）を用いて前記スロットル開度センサ（４４）が検出したスロットル開度（ＴＨ）を補正して基本噴射量（ＴＩＭＢ）を算出する
ことを特徴とするエンジン（１０）の燃料噴射制御装置（１２）。
【請求項２】
請求項１に記載のエンジン（１０）の燃料噴射制御装置（１２）において、
前記エンジン（１０）の排気ガス中の酸素濃度を検出する酸素センサ（５０）と、
前記酸素センサ（５０）が検出した酸素濃度に基づいて補正係数であるフィードバック補正量（ＫＯ２）を算出すると共に、前記フィードバック補正量（ＫＯ２）に応じて学習した補正係数である学習値（ＫＢＵ）を、前記スロットルバルブ（３４）のスロットル開度（ＴＨ）に応じて区分された複数のフィードバック領域毎に算出して更新する係数算出部（８４）と、
前記基本噴射量（ＴＩＭＢ）を前記フィードバック補正量（ＫＯ２）及び前記学習値（ＫＢＵ）を用いて補正して燃料噴射量（ＴＯＵＴ）を算出する燃料噴射量算出部（６８）と、
を備え、
前記調整検出部（７０）は、前記スロットル開度（ＴＨ）が低開度側のフィードバック領域の前記学習値（ＫＢＵ）と、前記スロットル開度（ＴＨ）が高開度側のフィードバック領域の前記学習値（ＫＢＵ）との差に基づいて前記調整量を検出する
ことを特徴とするエンジン（１０）の燃料噴射制御装置（１２）。
【請求項３】
請求項２に記載のエンジン（１０）の燃料噴射制御装置（１２）において、
前記基本噴射量算出部（６０）は、前記低開度側のフィードバック領域の前記スロットル開度（ＴＨ）より大きく、前記高開度側のフィードバック領域の前記スロットル開度（ＴＨ）以下のフィードバック領域であって、前記エアスクリュー（３８）の調整によって前記学習値（ＫＢＵ）に影響を与えるフィードバック領域内でのみ、前記スロットル開度センサ（４４）が検出したスロットル開度（ＴＨ）を補正して基本噴射量（ＴＩＭＢ）を算出する
ことを特徴とするエンジン（１０）の燃料噴射制御装置（１２）。
【請求項４】
請求項３に記載のエンジン（１０）の燃料噴射制御装置（１２）において、
前記複数のフィードバック領域は、前記エンジン（１０）のアイドリング領域である第１フィードバック領域（Ａ１）と、前記第１フィードバック領域（Ａ１）にエンジン回転数（ＮＥ）が高回転側で隣接する第２フィードバック領域（Ａ２）と、前記第１フィードバック領域（Ａ１）及び前記第２フィードバック領域（Ａ２）に前記スロットル開度（ＴＨ）の高開度側で隣接する第３フィードバック領域（Ａ３）と、前記第３フィードバック領域（Ａ３）に前記スロットル開度（ＴＨ）の高開度側で隣接する第４フィードバック領域（Ａ４）と、前記第４フィードバック領域（Ａ４）に前記スロットル開度（ＴＨ）の高開度側で隣接する第５フィードバック領域（Ａ５）と、前記第５フィードバック領域（Ａ５）に前記スロットル開度（ＴＨ）の高開度側で隣接する第６フィードバック領域（Ａ６）からなり、
前記エアスクリュー（３８）の調整によって前記学習値（ＫＢＵ）に影響を与える前記フィードバック領域は、前記第２フィードバック領域（Ａ２）及び前記第３フィードバック領域（Ａ３）である
ことを特徴とするエンジン（１０）の燃料噴射制御装置（１２）。
【請求項５】
請求項３に記載のエンジン（１０）の燃料噴射制御装置（１２）において、
前記補正値算出部（７２）は、算出した前記スロットル開度補正値（ΔＴＨＡＳ）を不揮発性メモリ（６７）に記憶する
ことを特徴とするエンジン（１０）の燃料噴射制御装置（１２）。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、Ｏ２フィードバック制御を行なうエンジンの燃料噴射制御装置に関する。
【背景技術】
【０００２】
下記特許文献１には、排気ガス中の酸素濃度を検出するＯ２センサから変数であるＫＯ２を求める共に、ＫＯ２の変動分を乗算した変数であるＫＢＵＫ（ＫＢＵ）を求め、得られたＫＯ２及びＫＢＵＫで基本噴射量を補正して最終的な燃料噴射量を算出することが開示されている。ここで、ＫＢＵＫは、スロットル開度とエンジン回転数とで区分けされた複数の学習領域毎に記憶され、現在の運転状態に応じたＫＢＵＫを用いることが記載されている。
【０００３】
また、下記特許文献２には、アイドル回転数を調整するため、スロットルバルブの上流と下流とを接続するアイドル空気制御通路に、それを開閉するエアスクリューを設けることが開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００９−２０３９７３号公報
【特許文献２】特開２００６−７０７８８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上記特許文献１に記載されているように、Ｏ２フィードバック制御を実行することで、ＫＯ２、ＫＢＵＫを逐次更新することで燃調の精度を確保していた。しかしながら、Ｏ２センサのみを用いたＯ２フィードバック制御では、空燃比が理想空燃比近傍にある時にしかＫＯ２を算出することができない。
【０００６】
そのため、例えば、加速しようとして理想空燃比よりもリッチな空燃比で運転すると、Ｏ２フィードバック制御を一旦停止することになる。ここで、エンジンの運転中に運転者によってエアスクリューが調整され、加速運転が行われると、ＫＢＵＫにずれが生じてしまう場合がある。そのため、加速運転が頻発する中でエアスクリューの調整も行なわれると、実際に必要な燃料噴射量よりも多い又は少ない燃料噴射量が算出されてしまう。
【０００７】
そこで、本発明は、エアスクリューの調整が行われた場合であっても、燃料噴射量の算出精度を向上させるエンジンの燃料噴射制御装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明に係るエンジン（１０）の燃料噴射制御装置（１２）は、以下の特徴を有する。
【０００９】
第１の特徴；エンジン（１０）の吸気管（２２）のスロットルバルブ（３４）の上流側と下流側とを接続するバイパス通路（３６）と、前記バイパス通路（３６）を開閉するエアスクリュー（３８）と、基本噴射量が記憶された噴射量マップ（８０）と、前記スロットルバルブ（３４）のスロットル開度（ＴＨ）を検出するスロットル開度センサ（４４）と、前記噴射量マップ（８０）を用いて前記スロットル開度センサ（４４）が検出した前記スロットル開度（ＴＨ）に応じた基本噴射量（ＴＩＭＢ）を算出する基本噴射量算出部（６０）と、を備えるエンジン（１０）の燃料噴射制御装置（１２）において、前記エアスクリュー（３８）の調整量を検出する調整検出部（７０）と、前記調整検出部（７０）が検出した前記エアスクリュー（３８）の調整量に応じてスロットル開度補正値（ΔＴＨＡＳ）を算出する補正値算出部（７２）と、を備え、前記基本噴射量算出部（６０）は、前記補正値算出部（７２）が算出した前記スロットル開度補正値（ΔＴＨＡＳ）を用いて前記スロットル開度センサ（４４）が検出したスロットル開度（ＴＨ）を補正して基本噴射量（ＴＩＭＢ）を算出する。
【００１０】
第２の特徴；前記エンジン（１０）の排気ガス中の酸素濃度を検出する酸素センサ（５０）と、前記酸素センサ（５０）が検出した酸素濃度に基づいて補正係数であるフィードバック補正量（ＫＯ２）を算出すると共に、前記フィードバック補正量（ＫＯ２）に応じて学習した補正係数である学習値（ＫＢＵ）を、前記スロットルバルブ（３４）のスロットル開度（ＴＨ）に応じて区分された複数のフィードバック領域毎に算出して更新する係数算出部（８４）と、前記基本噴射量（ＴＩＭＢ）を前記フィードバック補正量（ＫＯ２）及び前記学習値（ＫＢＵ）を用いて補正して燃料噴射量（ＴＯＵＴ）を算出する燃料噴射量算出部（６８）と、を備え、前記調整検出部（７０）は、前記スロットル開度（ＴＨ）が低開度側のフィードバック領域の前記学習値（ＫＢＵ）と、前記スロットル開度（ＴＨ）が高開度側のフィードバック領域の前記学習値（ＫＢＵ）との差に基づいて前記調整量を検出する。
【００１１】
第３の特徴；前記基本噴射量算出部（６０）は、前記低開度側のフィードバック領域の前記スロットル開度（ＴＨ）より大きく、前記高開度側のフィードバック領域の前記スロットル開度（ＴＨ）以下のフィードバック領域であって、前記エアスクリュー（３８）の調整によって前記学習値（ＫＢＵ）に影響を与えるフィードバック領域内でのみ、前記スロットル開度センサ（４４）が検出したスロットル開度（ＴＨ）を補正して基本噴射量（ＴＩＭＢ）を算出する。
【００１２】
第４の特徴；前記複数のフィードバック領域は、前記エンジン（１０）のアイドリング領域である第１フィードバック領域（Ａ１）と、前記第１フィードバック領域（Ａ１）にエンジン回転数（ＮＥ）が高回転側で隣接する第２フィードバック領域（Ａ２）と、前記第１フィードバック領域（Ａ１）及び前記第２フィードバック領域（Ａ２）に前記スロットル開度（ＴＨ）の高開度側で隣接する第３フィードバック領域（Ａ３）と、前記第３フィードバック領域（Ａ３）に前記スロットル開度（ＴＨ）の高開度側で隣接する第４フィードバック領域（Ａ４）と、前記第４フィードバック領域（Ａ４）に前記スロットル開度（ＴＨ）の高開度側で隣接する第５フィードバック領域（Ａ５）と、前記第５フィードバック領域（Ａ５）に前記スロットル開度（ＴＨ）の高開度側で隣接する第６フィードバック領域（Ａ６）からなり、前記エアスクリュー（３８）の調整によって前記学習値（ＫＢＵ）に影響を与える前記フィードバック領域は、前記第２フィードバック領域（Ａ２）及び前記第３フィードバック領域（Ａ３）である。
【００１３】
第５の特徴；前記補正値算出部（７２）は、算出した前記スロットル開度補正値（ΔＴＨＡＳ）を不揮発性メモリ（６７）に記憶する。
【発明の効果】
【００１４】
本発明の第１の特徴によれば、エアスクリューの調整量を検出し、エアスクリューの調整量に応じてスロットル開度補正値を算出し、該スロットル開度補正値を用いてスロットル開度センサが検出したスロットル開度を補正して基本噴射量を算出するので、エアスクリューの調整による吸気量増減分に応じて吸気量と密接に関係するスロットル開度を補正することができ、この補正されたスロットル開度を用いて基本噴射量を算出することができる。従って、エアスクリューの調整による吸気量の増減を簡易且つ精度良く補正することができ、基本噴射量の算出精度を向上させることができ、その結果、燃料噴射量の算出精度を向上させることができる。
【００１５】
エアスクリューの調整を行うと、スロットル開度の低開度側の学習値がその影響を受けやすく、高開度側の学習値は比較的影響を受けにくいので、低開度側の学習値と高開度側の学習値との差からエアスクリューの調整量を推測することができる。従って、本発明の第２の特徴によれば、スロットル開度が低開度側のフィードバック領域の学習値と、スロットル開度が高開度側のフィードバック領域の学習値との差に基づいて調整量を検出するので、エアスクリューの調整量を簡易な構造で精度良く求めることができ、その結果、燃料噴射量の算出精度を向上させることができる。
【００１６】
出願人は、研究の結果、エアスクリューによる吸気量の増減はスロットル開度の低開度側で顕著にその影響が表れるが、スロットル開度が高開度側になるにつれ、その影響が弱まっていく傾向があることを発見した。この性質を利用した本発明の第３の特徴によれば、低開度側のフィードバック領域のスロットル開度より大きく、高開度側のフィードバック領域のスロットル開度以下のフィードバック領域であって、エアスクリューの調整によって学習値に影響を与えるフィードバック領域内でのみ、スロットル開度センサが検出したスロットル開度を補正して基本噴射量を算出するので、基本噴射量の算出精度を向上させることができ、その結果、全スロットル開度の領域において、燃料噴射量の算出精度を向上させることができる。
【００１７】
本発明の第４の特徴によれば、複数のフィードバック領域は、エンジンのアイドリング領域である第１フィードバック領域と、第１フィードバック領域にエンジン回転数が高回転側で隣接する第２フィードバック領域と、第１フィードバック領域及び第２フィードバック領域にスロットル開度の高開度側で隣接する第３フィードバック領域と、第３フィードバック領域にスロットル開度の高開度側で隣接する第４フィードバック領域と、第４フィードバック領域にスロットル開度の高開度側で隣接する第５フィードバック領域と、第５フィードバック領域にスロットル開度の高開度側で隣接する第６フィードバック領域からなり、エアスクリューの調整によって学習値に影響を与えるフィードバック領域は、第２フィードバック領域及び第３フィードバック領域であるので、基本噴射量の算出精度を向上させることができ、その結果、全スロットル開度の領域において、燃料噴射量の算出精度を向上させることができる。
【００１８】
本発明の第５の特徴によれば、算出したスロットル開度補正値を不揮発性メモリに記憶するので、次回のエンジン始動時から適切な燃料噴射量を算出することができる。
【図面の簡単な説明】
【００１９】
【図１】実施の形態のエンジンの燃料噴射制御装置の構成を示すブロック図である。
【図２】エンジンの運転領域を検索するためのマップである。
【図３】空燃比のフィードバック領域を示すマップである。
【図４】図２及び図３で定められる領域を重ねることで６つに区分けされたＯ２Ｆ／Ｂ領域の各フィードバック領域を示すＫＢＵマップである。
【図５】図４に示すＫＢＵマップの模式図である
【図６】図１の制御部の構成を示すブロック図である。
【図７】図６の噴射量マップの一例を示す図である。
【図８】図６の揮発性メモリの構成を示すブロック図である。
【図９】ベース値と、バイパス通路を通る空気量を減少させるようにエアスクリューが初期位置からずれた時の学習値との関係を示す図である。
【図１０】バイパス通路を通る空気量を減少させるようにエアスクリューが初期位置から閉じ側にずれた時のベース値とＯ２フィードバック制御によって更新される第２フィードバック領域の学習値との関係を示す図である。
【図１１】バイパス通路を通る空気量を減少させるようにエアスクリューが初期位置から閉じ側にずれた時のオープンループ制御中のベース値と第２フィードバック領域の学習値との関係を示す図である。
【図１２】ベース値と、外気温、大気圧等の環境変化が生じた時の学習値との関係を示す図である。
【図１３】図６の調整量マップを示す図である。
【図１４】図６の補正値テーブルを示す図である。
【図１５】バイパス通路を通る空気量を減少させるようにエアスクリューが初期位置から閉じ側にずれた時のオープンループ制御中にスロットル開度を補正した場合の学習値とベース値との関係を示す図である。
【図１６】スロットル開度補正値の算出動作を示すフローチャートである。
【図１７】基本噴射量の算出動作を示すフローチャートである。
【図１８】制御部のメイン動作を示すフローチャートである。
【発明を実施するための形態】
【００２０】
本発明に係るエンジンの燃料噴射制御装置について、好適な実施の形態を掲げ、添付の図面を参照しながら以下、詳細に説明する。
【００２１】
図１は、実施の形態のエンジン１０の燃料噴射制御装置１２の構成を示すブロック図である。自動二輪車等の車両に搭載されるエンジン１０のシリンダボア１４には、ピストン１６が摺動可能に嵌合されている。エンジン１０のシリンダヘッド１８には、燃焼室２０に混合気を供給する吸気管２２と、燃焼室２０からの排気ガスを排出する排気管２４とが接続されている。排気管２４には、触媒コンバータ２６が取り付けられている。シリンダヘッド１８には、その先端が燃焼室２０に突出する点火プラグ２８、吸気バルブ３０、及び排気バルブ３２が取り付けられている。
【００２２】
吸気管２２には、吸気量を制御するスロットルバルブ３４が開閉可能に配設されると共に、スロットルバルブ３４の上流側と下流側とを接続するバイパス通路３６が設けられている。このバイパス通路３６には、バイパス通路３６を開閉することで、バイパス通路３６を通る空気量を調整するエアスクリュー３８が設けられている。このエアスクリュー３８を運転者が調整することで、アイドリング（アイドル）回転数の調整が行われる。スロットルバルブ３４の下流側には、燃料を噴射する燃料噴射弁４０が設けられている。
【００２３】
制御部４２は、点火プラグ２８の点火タイミング、及び燃料噴射弁４０から噴射される燃料噴射量等を制御する。エンジン１０の燃料噴射制御装置１２は、更に、スロットルバルブ３４の開度（以下、スロットル開度）ＴＨを検出するスロットル開度センサ４４と、ピストン１６に連接されたエンジン１０のクランク軸１０ａの回転数（以下、エンジン回転数）ＮＥを検出するエンジン回転数センサ４６と、エンジン１０の冷却水の水温ＴＷを検出する水温センサ４８と、触媒コンバータ２６より上流側に設けられ排気ガスに残存する酸素濃度を検出する酸素センサ５０と、燃焼室２０に吸気される吸気温ＴＡを検出する吸気温センサ５２とを備える。このスロットル開度センサ４４、エンジン回転数センサ４６、水温センサ４８、酸素センサ５０、及び吸気温センサ５２のそれぞれの出力信号は制御部４２に入力される。
【００２４】
図２は、エンジン１０の運転領域を検索するためのマップである。制御部４２は、エンジン回転数ＮＥとスロットル開度ＴＨとに基づいて運転領域がどの領域にあるかを検索する。このマップでは、下限スロットル開度ＴＨＯ２Ｌ及び上限スロットル開度ＴＨＯ２Ｈと、この両スロットル開度間の複数のスロットル開度ＴＨＦＢ０、ＴＨＦＢ１、ＴＨＦＢ２、ＴＨＦＢ３とが、エンジン回転数ＮＥの増大に応じて大きくなる。これらのスロットル開度は、ＴＨＯ２Ｌ＜ＴＨＦＢ０＜ＴＨＦＢ１＜ＴＨＦＢ２＜ＴＨＦＢ３＜ＴＨＯ２Ｈ、の関係が成り立つように予め設定されている。
【００２５】
設定された各スロットル開度ＴＨＯ２Ｌ、ＴＨＦＢ０、ＴＨＦＢ１、ＴＨＦＢ２、ＴＨＦＢ３、ＴＨＯ２Ｈを示す実線は、それぞれスロットル開度ＴＨを増大させる際に適用される境界値であり、この実線に隣接する破線は、それぞれスロットル開度を減少させる際に適用される境界値であり、ヒステリシスを設けて設定されている。
【００２６】
図３は、空燃比のフィードバック領域を示すマップである。斜線で示す空燃比のフィードバック（Ｏ２フィードバック、Ｏ２Ｆ／Ｂ）領域は、下限回転数ＮＬＯＰ、アイドル領域上限回転数ＮＴＨＯ２Ｌ、及び上限回転数ＮＨＯＰと、下限スロットル開度ＴＨＯ２Ｌ及び上限スロットル開度ＴＨＯ２Ｈとで定まる領域である。下限回転数ＮＬＯＰ、アイドル領域上限回転数ＮＴＨＯ２Ｌ、及び上限回転数ＮＨＯＰは、エンジン回転数ＮＥの増大側での値が実線で示され、エンジン回転数ＮＥの減少側での値が破線で示されることでヒステリシスが設定されている。下限スロットル開度ＴＨＯ２Ｌ及び上限スロットル開度ＴＨＯ２Ｈは、スロットル開度ＴＨの増大側での値が実線で示され、スロットル開度ＴＨの減少側での値が破線で示されることでヒステリシスが設定されている。
【００２７】
図４は、図２及び図３で定められる領域を重ねることで６つに区分けされたＯ２フィードバック領域の各フィードバック領域Ａを示すＫＢＵマップ６４であり、図５は、図４に示すＫＢＵマップ６４の模式図である。この複数のフィードバック領域Ａは、Ｏ２フィードバック領域を図２の運転領域（スロットル開度ＴＨ及びエンジン回転数ＮＥ）に応じて６つに区分したものである。この図４では、エンジン回転数ＮＥ及びスロットル開度ＴＨに基づいて、複数のフィードバック領域Ａを含む複数の運転領域が設定される。本実施の形態では、６つのフィードバック領域Ａの運転領域が「１」〜「６」の番号を付されて示され、フィードバック領域以外の運転領域が「０」、「７」〜「１１」の番号を付して示される。
【００２８】
「１」のフィードバック領域Ａ（以下、第１フィードバック領域Ａ１）は、エンジン１０のアイドリング領域である。「２」のフィードバック領域Ａ（以下、第２フィードバック領域Ａ２）は、第１フィードバック領域Ａ１にエンジン回転数ＮＥが高回転側で隣接するフィードバック領域Ａである。「３」のフィードバック領域Ａ（以下、第３フィードバック領域Ａ３）は、第１フィードバック領域Ａ１及び第２フィードバック領域Ａ２にスロットル開度ＴＨの高開度側で隣接するフィードバック領域Ａである。「４」のフィードバック領域Ａ（以下、第４フィードバック領域Ａ４）は、第３フィードバック領域Ａ３にスロットル開度ＴＨの高開度側で隣接するフィードバック領域Ａである。「５」のフィードバック領域Ａ（以下、第５フィードバック領域Ａ５）は、第４フィードバック領域Ａ４にスロットル開度ＴＨの高開度側で隣接するフィードバック領域Ａである。「６」のフィードバック領域Ａ（以下、第６フィードバック領域Ａ６）は、第５フィードバック領域Ａ５にスロットル開度ＴＨの高開度側で隣接するフィードバック領域Ａである。第２フィードバック領域Ａ２及び第３フィードバック領域Ａ３は、スロットル開度ＴＨが低開度のフィードバック領域であり、第４フィードバック領域Ａ４〜第６フィードバック領域Ａ６は、スロットル開度ＴＨが中開度以上のフィードバック領域である。
【００２９】
図６は、制御部４２の構成を示すブロック図である。制御部４２は、基本噴射量算出部６０、Ｏ２フィードバック部６２、図４及び図５に示すＫＢＵマップ６４、揮発性メモリ６６、不揮発性メモリ６７、燃料噴射量算出部６８、調整検出部７０、及び補正値算出部７２を備える。
【００３０】
基本噴射量算出部６０は、噴射量マップ８０を有する。噴射量マップ８０には、スロットル開度ＴＨとエンジン回転数ＮＥに応じた基本噴射量ＴＩＭＢが記憶されている３次元マップである。この基本噴射量ＴＩＭＢは、理想空燃比が得られるように、シミュレーション又は実験等によって予め設定されている。
【００３１】
図７は、噴射量マップ８０の一例を示す図である。図７においては、エンジン回転数ＮＥが所定回数の時の基本噴射量ＴＩＭＢを示している。図７に示すように、スロットル開度ＴＨが大きくなるほど、基本噴射量ＴＩＭＢも増加する。
【００３２】
基本噴射量算出部６０は、スロットル開度センサ４４が検出したスロットル開度ＴＨ及びエンジン回転数センサ４６が検出したエンジン回転数ＮＥに応じた基本噴射量ＴＩＭＢを噴射量マップ８０から取得することで、基本噴射量ＴＩＭＢを算出する。この基本噴射量ＴＩＭＢは燃料噴射弁４０が開いている時間で表すことができる。
【００３３】
Ｏ２フィードバック部６２は、空燃比を理想空燃比（ストイキ）に近づけるような補正係数を算出する。Ｏ２フィードバック部６２は、リッチリーン判定部８２と係数算出部８４とを有する。リッチリーン判定部８２は、酸素センサ５０の出力信号に基づいて排気ガスのリッチ又はリーンを判定する。
【００３４】
係数算出部８４は、フィードバック補正量算出部８４ａと、学習値算出部８４ｂとを有する。フィードバック補正量算出部８４ａは、リッチリーン判定部８２の判定結果に基づいてフィードバック補正量ＫＯ２及びその平均値ＫＯ２ａｖｅを算出する。学習値算出部８４ｂは、フィードバック補正量ＫＯ２に応じて学習した学習値ＫＢＵを算出すると共に、その平均値ＫＢＵａｖｅを算出する。本実施の形態では、学習値算出部８４ｂは、平均値ＫＯ２ａｖｅの基準値に対する変動分を乗算した学習値ＫＢＵを算出する。この算出されたフィードバック補正量ＫＯ２及びその平均値ＫＯ２ａｖｅと、学習値ＫＢＵ及びその平均値ＫＢＵａｖｅと、後述するスロットル開度補正値ΔＴＨＡＳとは、揮発性メモリ６６に記憶される。不揮発性メモリ６７には、エンジン１０の暖機後の学習値ＫＢＵ１〜ＫＢＵ６と、エンジン停止時のスロットル開度補正値ΔＴＨＡＳとが記憶される。
【００３５】
このフィードバック補正量ＫＯ２及び学習値ＫＢＵは、Ｏ２フィードバック制御を行なう際に使用される補正係数であり、空燃比を理想空燃比（ストイキ）に近づけるためのものである。学習値算出部８４ｂは、スロットル開度ＴＨ及びエンジン回転数ＮＥに基づいて、複数のフィードバック領域Ａ毎に学習値ＫＢＵを算出する。
【００３６】
揮発性メモリ６６は、図８に示すように、フィードバック補正量ＫＯ２が記憶されるＫＯ２記憶部９０と、フィードバック補正量ＫＯ２の平均値ＫＯ２ａｖｅが記憶されるＫＯ２平均値記憶部９２とを有する。また、揮発性メモリ６６は、第１フィードバック領域Ａ１〜第６フィードバック領域Ａ６の学習値ＫＢＵ（以下、学習値ＫＢＵ１〜ＫＢＵ６）を記憶するＫＢＵ１記憶部９４、ＫＢＵ２記憶部９６、ＫＢＵ３記憶部９８、ＫＢＵ４記憶部１００、ＫＢＵ５記憶部１０２、及びＫＢＵ６記憶部１０４を有する。
【００３７】
また、揮発性メモリ６６は、第１フィードバック領域Ａ１〜第６フィードバック領域Ａ６の学習値ＫＢＵの平均値ＫＢＵａｖｅ（平均値ＫＢＵａｖｅ１〜ＫＢＵａｖｅ６）を記憶するＫＢＵ１平均値記憶部１０６、ＫＢＵ２平均値記憶部１０８、ＫＢＵ３平均値記憶部１１０、ＫＢＵ４平均値記憶部１１２、ＫＢＵ５平均値記憶部１１４、及びＫＢＵ６平均値記憶部１１６を有する。この上記各記憶部（９０〜１１６）には、最新の値のみが記憶されている。
【００３８】
フィードバック補正量算出部８４ａは、リッチリーン判定部８２の判定結果が切り換わった場合（例えば、リッチからリーンになった時、リーンからリッチになった時）に、フィードバック補正量ＫＯ２を算出する。フィードバック補正量算出部８４ａは、算出したフィードバック補正量ＫＯ２を揮発性メモリ６６のＫＯ２記憶部９０に上書きして記憶することで、フィードバック補正量ＫＯ２を更新する。
【００３９】
また、フィードバック補正量算出部８４ａは、毎フィードバック補正量ＫＯ２の算出サイクルにて所定回数前までに算出したフィードバック補正量ＫＯ２（例えば、今回と前回と前々回の計過去３回分のフィードバック補正量ＫＯ２）の平均値ＫＯ２ａｖｅを算出する。フィードバック補正量算出部８４ａは、算出した平均値ＫＯ２ａｖｅを揮発性メモリ６６のＫＯ２平均値記憶部９２に上書きして記憶することで、フィードバック補正量ＫＯ２の算出の度に平均値ＫＯ２ａｖｅを更新する。
【００４０】
学習値算出部８４ｂは、リッチリーン判定部８２の判定結果が切り換わった時に、ＫＢＵマップ６４を用いて、運転領域（スロットル開度センサ４４及びエンジン回転数センサ４６が検出したスロットル開度ＴＨ及びエンジン回転数ＮＥ）に応じたその時点におけるフィードバック領域Ａを参照し、参照したフィードバック領域Ａの学習値ＫＢＵ（学習値ＫＢＵ１〜ＫＢＵ６の何れか１つ）を算出して更新する。
【００４１】
この学習値ＫＢＵの算出は、ＫＯ２平均値記憶部９２に記憶されている平均値ＫＯ２ａｖｅの基準値に対する変動分（平均値ＫＯ２ａｖｅ／基準値）と、現在の運転領域に応じたフィードバック領域Ａの現在の学習値ＫＢＵとを乗算することで新たな学習値ＫＢＵを算出する。学習値算出部８４ｂは、この算出された学習値ＫＢＵを揮発性メモリ６６に記憶することで、フィードバック補正量ＫＯ２の算出の度にその時点における運転領域に応じたフィードバック領域Ａの学習値ＫＢＵを更新する。
【００４２】
例えば、現在の運転領域に応じたフィードバック領域Ａが第１フィードバック領域Ａ１の場合は、学習値算出部８４ｂは、ＫＯ２平均値記憶部９２に記憶されている平均値ＫＯ２ａｖｅの基準値に対する変動分（平均値ＫＯ２ａｖｅ／基準値）と、ＫＢＵ１記憶部９４に記憶されている学習値ＫＢＵ１とを乗算して新たな学習値ＫＢＵ１を算出し、ＫＢＵ１記憶部９４に上書きして記憶する。
【００４３】
また、学習値算出部８４ｂは、現在の運転領域に応じたフィードバック領域Ａの学習値ＫＢＵを算出すると、現在の運転領域に応じたフィードバック領域Ａの学習値ＫＢＵの平均値ＫＢＵａｖｅを新たに算出する。この平均値ＫＢＵａｖｅは、所定回数前までに算出した学習値ＫＢＵ（例えば、今回と４回前までの計過去５回分の学習値）の平均値を算出することで求めることができる。学習値算出部８４ｂは、算出した平均値ＫＢＵａｖｅを揮発性メモリ６６に記憶することで、学習値ＫＢＵの算出の度にその時点における運転領域に応じたフィードバック領域Ａの該平均値ＫＢＵａｖｅを更新する。
【００４４】
例えば、現在の運転領域に応じたフィードバック領域Ａが第１フィードバック領域Ａ１の場合は、学習値算出部８４ｂは、第１フィードバック領域Ａ１の過去所定回数分の学習値ＫＢＵ１の平均値ＫＢＵａｖｅ１を算出し、ＫＢＵ１平均値記憶部１０６に該算出した平均値ＫＢＵａｖｅ１を記憶する。
【００４５】
燃料噴射量算出部６８は、燃料噴射弁４０から噴射される燃料噴射量ＴＯＵＴを算出する。詳しくは、燃料噴射量算出部６８は、Ｏ２フィードバック制御を行なっている場合は、ＴＯＵＴ＝ＴＩＭＢ×ＫＯ２×ＫＢＵ×ＫＴＡ、の（１）式によって、燃料噴射量ＴＯＵＴを算出する。
【００４６】
ここで、（１）式のＴＩＭＢは、基本噴射量算出部６０が現在のスロットル開度ＴＨ及びエンジン回転数ＮＥに応じて算出した基本噴射量ＴＩＭＢであり、ＫＯ２は、ＫＯ２記憶部９０に記憶されているフィードバック補正量ＫＯ２である。また、（１）式のＫＢＵは、現在のスロットル開度ＴＨ及びエンジン回転数ＮＥに応じたフィードバック領域Ａの学習値ＫＢＵであり、揮発性メモリ６６に記憶されているものである。例えば、現在の運転領域に応じたフィードバック領域Ａが第３フィードバック領域Ａ３の場合は、ＫＢＵ３記憶部９８に記憶されている学習値ＫＢＵ３である。（１）式のＫＴＡは、吸気温センサ５２が検出した吸気温ＴＡに応じた吸気温補正係数ＫＴＡである。この吸気温補正係数ＫＴＡは、図示しないテーブル又はマップから取得する。
【００４７】
燃料噴射量算出部６８は、Ｏ２フィードバック制御を行なうことができない加速運転時の場合（オープンループ制御の場合）は、ＴＯＵＴ＝ＴＩＭＢ×ＫＢＵａｖｅ×ＫＴＡ＋ＴＡＣＣ×ＫＴＡＣＣ、の（２）式によって、燃料噴射量ＴＯＵＴを算出する。（２）式のＴＩＭＢ及びＫＴＡは、（１）式と同様であり、（２）式のＫＢＵａｖｅは、現在の現在の運転領域に応じたフィードバック領域Ａの学習値ＫＢＵの平均値ＫＢＵａｖｅである。（２）式のＴＡＣＣは、現在のスロットル開度ＴＨとエンジン回転数ＮＥに応じた加速補正での追加噴射量ＴＡＣＣである。この追加噴射量ＴＡＣＣは、図示しないマップから取得する。また、（２）式のＫＴＡＣＣは、加速補正係数ＫＴＡＣＣである。なお、（２）式は、オープンループ制御の一種としての加速運転時の燃料噴射量ＴＯＵＴの算出式である。
【００４８】
Ｏ２フィードバック制御を行なうことができないオープンループ制御の場合は、フィードバック補正量ＫＯ２及びその平均値ＫＯ２ａｖｅと、学習値ＫＢＵ及びその平均値ＫＢＵａｖｅとが逐次更新されないので、オープンループ制御に入る直前のＫＢＵａｖｅがそのまま使用されることになる。
【００４９】
この燃料噴射量ＴＯＵＴは燃料噴射弁４０が開いている時間で表すことができ、算出された燃料噴射量ＴＯＵＴの間燃料噴射弁４０が開くことで、燃料噴射弁４０から燃料が噴射される。
【００５０】
図９は、ベース値Ｅと、バイパス通路３６を通る空気量を減少させる（バイパス通路３６を閉じる）ようにエアスクリュー３８が初期位置からずれた時の学習値ＫＢＵとの関係を示す図である。なお、ベース値Ｅは、エアスクリュー３８が初期位置にある時を基準とした時の学習値ＫＢＵである。図９に示すように運転者によってエアスクリュー３８が初期位置から閉じ側に調整されると、スロットル開度ＴＨが大きい第４フィードバック領域Ａ４〜第６フィードバック領域Ａ６の学習値ＫＢＵ４〜ＫＢＵ６は、ベース値Ｅとの差があまり生じない。
【００５１】
しかし、スロットル開度ＴＨが小さい第１フィードバック領域Ａ１〜第３フィードバック領域Ａ３の学習値ＫＢＵ１〜ＫＢＵ３では、スロットル開度ＴＨが小さくになるにつれベース値Ｅとの差が大きくなってしまう。特に、スロットル開度ＴＨが全閉若しくは全閉に近い学習値ＫＢＵ１で最もその影響は大きい。これは、スロットルバルブ３４が閉じるほど、吸気管２２内の流路抵抗が大きくなり、バイパス通路３６の流路抵抗が相対的に小さくなることがその理由として考えられる。スロットルバルブ３４が中開度以上開いてくると、吸気管２２の流路抵抗は下がり、バイパス通路３６の流路抵抗が相対的に大きくなるため、学習値ＫＢＵはベース値Ｅと略同じ値にある。
【００５２】
図１０は、バイパス通路３６を通る空気量を減少させるようにエアスクリュー３８が初期位置から閉じ側にずれた時のベース値ＥとＯ２フィードバック制御によって更新される学習値ＫＢＵ２との関係を示す図である。図１０に示すように、同じ第２フィードバック領域内の学習値ＫＢＵ２であっても、スロットル開度ＴＨが低開度側の学習値ＫＢＵ２と、スロットル開度ＴＨが高開度側の学習値ＫＢＵ２とで大きな差が生じてしまう。なお、これに伴い、スロットル開度ＴＨが低開度側で算出された平均値ＫＢＵａｖｅ２と高開度側で算出された平均値ＫＢＵａｖｅ２とでも大きな差が生じる。
【００５３】
しかしながら、Ｏ２フィードバック制御を行なっている最中は、前述したようにフィードバック補正量ＫＯ２の算出の度に、フィードバック補正量ＫＯ２及びその平均値ＫＯ２ａｖｅと、学習値ＫＢＵ及びその平均値ＫＢＵａｖｅとが逐次更新されていくので、エアスクリュー３８の調整によって同じ第２フィードバック領域Ａ２の学習値ＫＢＵに差異が生じても、上記（１）式によって算出される燃料噴射量ＴＯＵＴに与える影響は少ない。
【００５４】
これに対して、オープンループ制御の場合は、フィードバック補正量ＫＯ２及びその平均値ＫＯ２ａｖｅと、学習値ＫＢＵ及びその平均値ＫＢＵａｖｅが更新されていかないので、エアスクリュー３８の調整による学習値ＫＢＵの差異が燃料噴射量ＴＯＵＴに与える影響が大きくなる。
【００５５】
図１１は、バイパス通路３６を通る空気量を減少させるようにエアスクリュー３８が初期位置から閉じ側にずれた時のオープンループ制御中のベース値Ｅと学習値ＫＢＵ２との関係を示す図である。オープンループ制御の場合は、上記（２）式のように、オープンループ制御に入る直前に揮発性メモリ６６に更新された学習値ＫＢＵの平均値ＫＢＵａｖｅを用いる。そのため、例えば、ＫＢＵ２平均値記憶部１０８に記憶されている平均値ＫＢＵａｖｅ２が低開度側で算出されたものである場合に（図１１の黒丸）、現在のスロットル開度ＴＨが、第２フィードバック領域内の高開度側になると（図１１の白丸）、ＫＢＵ２平均値記憶部１０８に記憶されている平均値ＫＢＵａｖｅ２とのズレが大きくなる。従って、適切な燃料噴射量ＴＯＵＴで燃料を噴射することができない場合が生じる。なお、このことは、学習値ＫＢＵ３及びその平均値ＫＢＵａｖｅ３についても同様の問題が生じる。
【００５６】
そこで、本実施の形態では、エアスクリュー３８が調整されたことを検出し、エアスクリューが調整された場合は、該調整量に応じてスロットル開度ＴＨを補正するというものである。
【００５７】
図６の調整検出部７０は、エアスクリュー３８が調整されて初期位置からずれているか否かを検出する。詳しくは、揮発性メモリ６６のＫＢＵ１平均値記憶部１０６に記憶されている平均値ＫＢＵａｖｅ１とＫＢＵ４平均値記憶部１１２に記憶されている平均値ＫＢＵａｖｅ４との差（ＫＢＵａｖｅ１−ＫＢＵａｖｅ４）の絶対値が閾値を超えた場合に、エアスクリュー３８が調整されて初期位置からずれたと検出する。調整検出部７０は、現在のスロットル開度ＴＨ及びエンジン回転数ＮＥに応じたフィードバック領域Ａが第１フィードバック領域Ａ１の場合に、エアスクリュー３８が調整されたか否かを検出する。
【００５８】
調整検出部７０は、エアスクリュー３８が調整されたことを検出した場合は調整フラグを１にし、エアスクリュー３８が調整されていないことを検出した場合は、調整フラグを０にする。この調整フラグは、揮発性メモリ６６の調整フラグ記憶部１１８に記憶される。なお、調整検出部７０は、平均値ＫＢＵａｖｅ１と平均値ＫＢＵａｖｅ５との差（ＫＢＵａｖｅ１−ＫＢＵａｖｅ５）の絶対値が閾値を超えた場合に、エアスクリュー３８が調整されたと検出してもよい。
【００５９】
ここで、平均値ＫＢＵａｖｅ１と平均値ＫＢＵａｖｅ４又は平均値ＫＢＵａｖｅ５との差分を取る理由について説明する。平均値ＫＢＵａｖｅ１は、エアスクリュー３８の調整によって値が大きく変動するので、前回算出した平均値ＫＢＵａｖｅ１と今回算出した平均値ＫＢＵａｖｅ１との差分を取ることで、エアスクリュー３８が調整されたと検出することも可能ではある。しかしながら、この手法では、正確にエアスクリュー３８が調整されたか否かを精度良く検出することはできない。なぜならば、外気温、大気圧等の環境変化に応じても、学習値ＫＢＵが変動し、その結果、平均値ＫＢＵａｖｅも変動してしまうからである。例えば、図１２に示すように、高地に上がることによって気圧が低下すると、学習値ＫＢＵが低下し、それに伴い平均値ＫＢＵａｖｅも低下する。
【００６０】
ここで、出願人は、研究の結果エアスクリュー３８の調整を行うと、低開度側のフィードバック領域Ａほど学習値ＫＢＵが変化するが、環境変化では全フィードバック領域Ａで同じような学習値ＫＢＵの変化が生じることを発見した。そして、平均値ＫＢＵａｖｅ１−平均値ＫＢＵａｖｅ４（又は平均値ＫＢＵａｖｅ５）を見ることで、精度よくエアスクリュー３８の調整を検出する手法を発明した。即ち、仮に大気圧の変化等による環境変化であれば、平均値ＫＢＵａｖｅ１、ＫＢＵａｖｅ４、ＫＢＵａｖｅ５は、皆同じように変化するため、平均値ＫＢＵａｖｅ１−平均値ＫＢＵａｖｅ４（又は平均値ＫＢＵａｖｅ５）の値は、それほど大きな値にはならない。一方で、エアスクリュー３８が調整された場合は、平均値ＫＢＵａｖｅ１は大きく変化するが、平均値ＫＢＵａｖｅ４、ＫＢＵａｖｅ５は殆ど変化しないため、ＫＢＵａｖｅ１−平均値ＫＢＵａｖｅ４（又は平均値ＫＢＵａｖｅ５）は大きな値を取る。
【００６１】
従って、環境変化及びエアスクリュー３８の調整によって変動する平均値ＫＢＵａｖｅ１と、環境変化によって変動しエアスクリュー３８の調整によってあまり変動しない平均値ＫＢＵａｖｅ４又は平均値ＫＢＵａｖｅ５との差分を取ることで、エアスクリュー３８が調整されたか否かを精度良く検出することができる。
【００６２】
調整検出部７０は、エアスクリュー３８が調整されて初期位置からずれたと検出すると、エアスクリュー３８の調整量（以下、アイドル吸気量変化率）を検出する。調整検出部７０は、図１３に示すような調整量マップ７０ａを有する。調整量マップ７０ａは、図１３の実線で示すように、（ＫＢＵａｖｅ１−ＫＢＵａｖｅ４）とアイドル吸気量変化率とが対応付けて記憶されている。調整検出部７０は、該調整量マップ７０ａを用いて、算出した平均値ＫＢＵａｖｅ１と平均値ＫＢＵａｖｅ４との差に応じたアイドル吸気量変化率を検出する。このアイドル吸気量変化率は、エアスクリュー３８が初期位置の時にバイパス通路３６を通る吸気量に対する変化率である。
【００６３】
なお、調整量マップ７０ａは、図１３の破線に示すように、（ＫＢＵａｖｅ１−ＫＢＵａｖｅ５）とアイドル吸気量変化率とが対応付けて記憶されたものであってもよい。この場合は、調整検出部７０は、算出した平均値ＫＢＵａｖｅ１と平均値ＫＢＵａｖｅ５との差に応じたアイドル吸気量変化率を検出する。
【００６４】
また、上述したようにエアスクリュー３８が調整された場合も、学習値ＫＢＵ６とベース値Ｅとの差があまり生じないので、平均値ＫＢＵａｖｅ１と平均値ＫＢＵａｖｅ６との差を取って、エアスクリュー３８が調整されたか否かの検出及びエアスクリュー３８の調整量の検出を行うようにしてもよい。しかし、学習値ＫＢＵ６及びその平均値ＫＢＵａｖｅ６は、スロットル開度ＴＨが比較的高開度側なので、第６フィードバック領域Ａ６となるスロットル開度ＴＨまでスロットルバルブ３４が開かれる可能性が少ないと考えられる。そうすると、学習値ＫＢＵ６及びその平均値ＫＢＵａｖｅ６が更新される頻度は少なくなる。そのため、本実施の形態では、比較的頻繁に更新されやすい平均値ＫＢＵａｖｅ４又は平均値ＫＢＵａｖｅ５を用いることとした。
【００６５】
補正値算出部７２は、図１４に示すような、アイドル吸気量変化率とスロットル開度補正値ΔＴＨＡＳとが対応付けて記憶された補正値テーブル７２ａを有する。補正値算出部７２は、調整検出部７０が検出したアイドル吸気量変化率に応じたスロットル開度補正値ΔＴＨＡＳを補正値テーブル７２ａから取得することで、スロットル開度補正値ΔＴＨＡＳを算出する。補正値算出部７２は、算出したスロットル開度補正値ΔＴＨＡＳを揮発性メモリ６６の補正値記憶部１２０に上書きして記憶する。なお、調整検出部７０により、エアスクリュー３８が調整されていないと検出された場合は、補正値算出部７２は、補正値記憶部１２０に記憶されているスロットル開度補正値ΔＴＨＡＳを０にする。
【００６６】
基本噴射量算出部６０は、調整フラグが１であり、且つ、現在のスロットル開度ＴＨ及びエンジン回転数ＮＥに応じたフィードバック領域Ａが第２フィードバック領域Ａ２又は第３フィードバック領域Ａ３であると判断すると、該スロットル開度補正値ΔＴＨＡＳを用いてスロットル開度ＴＨを補正する。詳しくは、スロットル開度センサ４４が検出したスロットル開度ＴＨに、スロットル開度補正値ΔＴＨＡＳを加算することでスロットル開度ＴＨを補正する。そして、基本噴射量算出部６０は、噴射量マップ８０を用いて、補正したスロットル開度ＴＨ（以下、ＴＨＭ）とエンジン回転数ＮＥに応じた基本噴射量ＴＩＭＢを算出する。
【００６７】
このように、エアスクリュー３８が調整されるとスロットル開度ＴＨを補正し、補正後のスロットル開度ＴＨＭを用いて基本噴射量ＴＩＭＢを算出するので、Ｏ２フィードバック制御によって更新される学習値ＫＢＵ２及び学習値ＫＢＵ３は、スロットル開度ＴＨを補正しない場合に比べ、ベース値Ｅとの差が小さくなる。
【００６８】
図１５は、バイパス通路３６を通る空気量を減少させるようにエアスクリュー３８が初期位置から閉じ側にずれた時のオープンループ制御中にスロットル開度ＴＨを補正した場合の学習値ＫＢＵ２とベース値Ｅとの関係を示す図である。図１５に示すように、ＫＢＵ２記憶部９６に記憶された学習値ＫＢＵ２が低開度側のスロットル開度ＴＨで算出されたものであっても（図１５の黒丸）、ＫＢＵ２記憶部９６に記憶された学習値ＫＢＵ２とスロットル開度が高開度側の学習値ＫＢＵ２との差は、スロットル開度ＴＨを補正しない場合に比べて（図１１と比べて）小さくなる。従って、これにより、ＫＢＵ２平均値記憶部１０８に記憶された平均値ＫＢＵａｖｅ２が低開度側のスロットル開度ＴＨで算出されたものであっても、ＫＢＵ２平均値記憶部１０８に記憶された平均値ＫＢＵａｖｅ２と高開度側での平均値ＫＢＵａｖｅ２との差を小さくすることができ、より適切な燃料噴射量ＴＯＵＴで燃料を噴射することができる。
【００６９】
スロットル開度補正値ΔＴＨＡＳの算出動作を、図１６のフローチャートに従って説明する。この図１６に示す動作は、毎フィードバック補正量ＫＯ２の算出サイクル時実行される。調整検出部７０は、スロットル開度センサ４４及びエンジン回転数センサ４６が検出した現在のスロットル開度ＴＨ及びエンジン回転数ＮＥに応じたフィードバック領域Ａが第１フィードバック領域Ａ１であるか否かを判断する（ステップＳ１）。
【００７０】
ステップＳ１で、現在のスロットル開度ＴＨ及びエンジン回転数ＮＥに応じたフィードバック領域Ａが第１フィードバック領域Ａ１でないと判断すると、処理を終了する。一方、ステップＳ１で、現在のスロットル開度ＴＨ及びエンジン回転数ＮＥに応じたフィードバック領域Ａが第１フィードバック領域Ａ１であると判断すると、調整検出部７０は、ＫＢＵ１平均値記憶部１０６に記憶されている平均値ＫＢＵａｖｅ１と、ＫＢＵ４平均値記憶部１１２に記憶されている平均値ＫＢＵａｖｅ４との差の絶対値が閾値を超えているか否かを判断する（ステップＳ２）。
【００７１】
ステップＳ２で、平均値ＫＢＵａｖｅ１と平均値ＫＢＵａｖｅ４との差の絶対値が閾値を超えていると判断すると、調整検出部７０は、エアスクリュー３８が調整されたことを検出し、調整フラグを１にする（ステップＳ３）。つまり、調整フラグ記憶部１１８に１を記憶する。
【００７２】
次いで、補正値算出部７２は、スロットル開度補正値ΔＴＨＡＳを算出し、算出したスロットル開度補正値ΔＴＨＡＳを揮発性メモリ６６の補正値記憶部１２０に記憶する（ステップＳ４）。詳しくは、調整検出部７０は、調整量マップ７０ａを用いて平均値ＫＢＵａｖｅ１と平均値ＫＢＵａｖｅ４との差に応じた調整量であるアイドル吸気量変化率を検出する。そして、補正値算出部７２は、補正値テーブル７２ａを用いて検出されたアイドル吸気量変化率に応じたスロットル開度補正値ΔＴＨＡＳを算出する。
【００７３】
一方、ステップＳ２で、平均値ＫＢＵａｖｅ１と平均値ＫＢＵａｖｅ４との差の絶対値が閾値を超えていないと判断すると、調整検出部７０は、エアスクリュー３８が調整されていないことを検出し、調整フラグを０にする（ステップＳ５）。つまり、調整フラグ記憶部１１８に０を記憶する。次いで、補正値算出部７２は、スロットル開度補正値ΔＴＨＡＳを０にして、揮発性メモリ６６の補正値記憶部１２０に記憶する（ステップＳ６）。
【００７４】
基本噴射量算出部６０の基本噴射量ＴＩＭＢの算出動作を図１７のフローチャートに従って説明する。基本噴射量算出部６０は、基本噴射量を算出する際には、まず、スロットル開度センサ４４及びエンジン回転数センサ４６が検出した現在のスロットル開度ＴＨ及びエンジン回転数ＮＥに応じたフィードバック領域Ａが第２フィードバック領域Ａ２又は第３フィードバック領域Ａ３であるか否かを判断する（ステップＳ１１）。
【００７５】
ステップＳ１１で、現在のスロットル開度ＴＨ及びエンジン回転数ＮＥに応じたフィードバック領域Ａが第２フィードバック領域Ａ２又は第３フィードバック領域Ａ３であると判断すると、基本噴射量算出部６０は、調整フラグが１であるか否かを判断する（ステップＳ１２）。この判断は、調整フラグ記憶部１１８に記憶されている値に基づいて判断する。
【００７６】
ステップＳ１２で、調整フラグが１であると判断すると、基本噴射量算出部６０は、スロットル開度センサ４４によって検出されたスロットル開度ＴＨを補正する（ステップＳ１３）。詳しくは、検出されたスロットル開度ＴＨに、補正値記憶部１２０に記憶されているスロットル開度補正値ΔＴＨＡＳを加算することで、スロットル開度ＴＨを補正する。
【００７７】
次いで、基本噴射量算出部６０は、噴射量マップ８０を用いて補正後のスロットル開度ＴＨＭとエンジン回転数センサ４６が検出した現在のエンジン回転数ＮＥに応じた基本噴射量ＴＩＭＢを算出する（ステップＳ１４）。
【００７８】
一方、ステップＳ１１で、現在のスロットル開度ＴＨ及びエンジン回転数ＮＥに応じたフィードバック領域Ａが第２フィードバック領域Ａ２及び第３フィードバック領域Ａ３でないと判断された場合、又は、ステップＳ１２で調整フラグが１でないと判断された場合は、ステップＳ１５に進む。
【００７９】
ステップＳ１５に進むと、基本噴射量算出部６０は、噴射量マップ８０を用いてスロットル開度センサ４４及びエンジン回転数センサ４６が検出した現在のスロットル開度ＴＨ及びエンジン回転数ＮＥに応じた基本噴射量ＴＩＭＢを算出する。
【００８０】
次に、制御部４２のメイン動作を図１８のフローチャートに従って説明する。まず、制御部４２は、スロットル開度センサ４４が検出したスロットル開度ＴＨの角速度ｄＴＨ／ｄｔが所定値より大きいか否かを判断する（ステップＳ２１）。つまり、ステップＳ２１では、スロットル開度ＴＨの単位時間当たりの変化量が所定値より大きいか否かを判断している。
【００８１】
この角速度ｄＴＨ／ｄｔは、スロットル開度ＴＨを時間ｔで微分することで求めてもよいし、（ＴＨ１−ＴＨ０）／（ｔ１−ｔ０）、の計算式で求めてもよい。このＴＨ１は、今回検出したスロットル開度ＴＨを表し、ＴＨ０は、前回検出したスロットル開度ＴＨを表している。ｔ１は、スロットル開度ＴＨ１を検出したタイミングを表し、ｔ０は、スロットル開度ＴＨ０を検出したタイミングを表している。
【００８２】
ステップＳ２１で、スロットル開度ＴＨの角速度ｄＴＨ／ｄｔが所定値より大きくないと判断すると、制御部４２は、Ｏ２Ｆ／Ｂ制御を実行することで、燃料噴射量ＴＯＵＴを算出する（ステップＳ２２）。燃料噴射弁４０は、この算出された燃料噴射量ＴＯＵＴで燃料を噴射する。
【００８３】
具体的には、燃料噴射量算出部６８は、スロットル開度センサ４４及びエンジン回転数センサ４６が検出した現在の運転領域（スロットル開度ＴＨ及びエンジン回転数ＮＥ）に応じたフィードバック領域Ａの学習値ＫＢＵと、フィードバック補正量ＫＯ２とを揮発性メモリ６６から取得する。そして、燃料噴射量算出部６８は、図１５の動作に従って基本噴射量算出部６０が算出した基本噴射量ＴＩＭＢに、取得したフィードバック補正量ＫＯ２及び学習値ＫＢＵと、吸気温センサ５２が検出した吸気温ＴＡに応じた吸気温補正係数ＫＴＡとを乗算することで、燃料噴射量ＴＯＵＴを算出する。つまり、上述した（１）式を用いて算出する。
【００８４】
係数算出部８４は、このＯ２Ｆ／Ｂ制御中に、フィードバック補正量ＫＯ２及びその平均値ＫＯ２ａｖｅと、学習値ＫＢＵ及びその平均値ＫＢＵａｖｅとを逐次更新し、揮発性メモリ６６に記憶する。係数算出部８４は、現在のスロットル開度ＴＨ及びエンジン回転数ＮＥに応じたフィードバック領域Ａ（Ａ１〜Ａ６）の学習値ＫＢＵ（ＫＢＵ１〜ＫＢＵ６）及びその平均値ＫＢＵａｖｅを更新する。
【００８５】
エアスクリュー３８が調整された状態でのＯ２フィードバック制御中に、現在の運転領域が第２フィードバック領域Ａ２又は第３フィードバック領域Ａ３にある時は、スロットル開度ＴＨが補正される。従って、スロットル開度ＴＨが低開度側と高開度側での差が小さい学習値ＫＢＵ２、ＫＢＵ３、及びその平均値ＫＢＵａｖｅ２、ＫＢＵａｖｅ３が更新されることになる。
【００８６】
一方、ステップＳ２１で、スロットル開度ＴＨの角速度ｄＴＨ／ｄｔが所定値より大きいと判断すると、加速補正噴射制御を行なって燃料噴射量ＴＯＵＴを算出する（ステップＳ２３）。
【００８７】
具体的には、燃料噴射量算出部６８は、スロットル開度センサ４４及びエンジン回転数センサ４６が検出した現在のスロットル開度ＴＨ及びエンジン回転数ＮＥに応じたフィードバック領域Ａの平均値ＫＢＵａｖｅを揮発性メモリ６６から取得する。そして、燃料噴射量算出部６８は、図１５の動作に従って基本噴射量算出部６０が算出した基本噴射量ＴＩＭＢに、取得した平均値ＫＢＵａｖｅと、吸気温センサ５２が検出した吸気温ＴＡに応じた吸気温補正係数ＫＴＡとを乗算する。そして、乗算して得られた値に、現在のスロットル開度ＴＨとエンジン回転数ＮＥに応じた加速補正での追加噴射量ＴＡＣＣと加速補正係数ＫＴＡＣＣとを乗算した値を加算することで、燃料噴射量ＴＯＵＴを算出する。つまり、上述した（２）式を用いて算出する。
【００８８】
揮発性メモリ６６に記憶されている平均値ＫＢＵａｖｅ２、ＫＢＵａｖｅ３は、スロットル開度ＴＨが低開度側と高開度側での差が小さい値となっているので、Ｏ２フィードバック制御が実行されないオープンループ制御の場合であっても適切な燃料噴射量ＴＯＵＴを算出することができる。また、運転領域が第２フィードバック領域Ａ２又は第３フィードバック領域Ａ３にある時は、スロットル開度ＴＨを補正して基本噴射量ＴＩＭＢが算出されるので、より適切な燃料噴射量ＴＯＵＴを算出することができる。
【００８９】
なお、上記実施の形態では、フィードバック補正量ＫＯ２の平均値ＫＯ２ａｖｅの基準値に対する変動分を乗算した学習値ＫＢＵを算出するようにしたが、フィードバック補正量ＫＯ２の基準値に対する変動分を乗算した学習値ＫＢＵを算出するようにしてもよい。
【００９０】
また、上記実施の形態では、第１フィードバック領域Ａ１の平均値ＫＢＵａｖｅ１と、第４フィードバック領域Ａ４の平均値ＫＢＵａｖｅ４又は第５フィードバック領域Ａ５の平均値ＫＢＵａｖｅ５との差の絶対値に基づいてエアスクリュー３８が調整されたか否かを検出するようにしたが、第１フィードバック領域Ａ１の学習値ＫＢＵ１と、第４フィードバック領域Ａ４の学習値ＫＢＵ４又は第５フィードバック領域Ａ５の学習値ＫＢＵ５との差の絶対値に基づいてエアスクリュー３８が調整されたか否かを検出してもよい。
【００９１】
また、上記実施の形態では、第１フィードバック領域Ａ１の平均値ＫＢＵａｖｅ１と、第４フィードバック領域Ａ４の平均値ＫＢＵａｖｅ４又は第５フィードバック領域Ａ５の平均値ＫＢＵａｖｅ５との差に応じてアイドル吸気量変化率を検出するようにしたが、第１フィードバック領域Ａ１の学習値ＫＢＵ１と、第４フィードバック領域Ａ４の学習値ＫＢＵ４又は第５フィードバック領域Ａ５の学習値ＫＢＵ５との差に応じてアイドル吸気量変化率を検出してもよい。
【００９２】
つまり、上記実施の形態では、平均値ＫＯ２ａｖｅ、ＫＢＵａｖｅを算出して、該平均値ＫＯ２ａｖｅ、ＫＢＵａｖｅを用いるようにしたが、該平均値ＫＯ２ａｖｅ、ＫＢＵａｖｅを算出せずに、平均値ＫＯ２ａｖｅ、ＫＢＵａｖｅの代わりにフィードバック補正量ＫＯ２、学習値ＫＢＵを用いてもよい。
【００９３】
エアスクリュー３８によって調整されるバイパス通路３６を通過する吸気は、スロットル開度ＴＨが低開度であるほどバイパス通路３６を流れるので、学習値ＫＢＵが低開度側であるほどエアスクリュー３８の調整による学習値ＫＢＵのずれが生じやすい。出願人は、研究の結果、スロットル開度ＴＨが高開度側になると吸気はバイパス通路３６を通らずに吸気管２２を通過するようになるため、高開度側の学習値ＫＢＵはエアスクリュー３８の調整による影響を受けにくいことを発見した。従って、本実施の形態ではこの性質を生かし、スロットル開度ＴＨが低開度側のフィードバック領域Ａの学習値ＫＢＵと、スロットル開度ＴＨが高開度側のフィードバック領域Ａの学習値ＫＢＵとの差の絶対値が閾値を超えた場合は、エアスクリュー３８が調整されたと検出するので、エアスクリュー３８の調整を精度良く、簡易な構造で検出することができる。
【００９４】
アイドル時は、スロットル開度ＴＨが全閉のため、エアスクリュー３８の調整よる学習値ＫＢＵのずれが顕著にでる。しかも、エアスクリュー３８の調整は、アイドリング時に行われることが多い。そのため、本実施の形態では、低開度側のフィードバック領域Ａは、エンジン１０のアイドリング領域である第１フィードバック領域Ａ１であり、高開度側のフィードバック領域Ａは、エアスクリュー３８の調整によって学習値ＫＢＵに影響を与えない、つまり、スロットル開度ＴＨが中開度以上のフィードバック領域（Ａ４〜Ａ５の何れか１つ）とするので、エアスクリュー３８の調整を検出し易くなり、且つ、エアスクリュー３８の調整をより精度に検出することができる。
【００９５】
第２及び第３フィードバック領域Ａ２、Ａ３は、停車から発進して定常走行になるまでに通過する運転領域である。一方、第４及び第５フィードバック領域Ａ４、Ａ５は、定常走行に入っている可能性が高い運転領域であり、スロットル開度ＴＨが第１〜第３フィードバック領域Ａ１〜Ａ３よりも高いため、エアスクリュー３８の調整による学習値ＫＢＵのずれの影響も出にくい領域となる。そのため、本実施の形態では、複数のフィードバック領域Ａは、第１フィードバック領域Ａ１と、第１フィードバック領域Ａ１にエンジン回転数ＮＥの高回転側で隣接する第２フィードバック領域Ａ２と、第１フィードバック領域Ａ１及び第２フィードバック領域Ａ２にスロットル開度ＴＨの高開度側で隣接する第３フィードバック領域Ａ３と、第３フィードバック領域Ａ３にスロットル開度ＴＨの高開度側で隣接する第４フィードバック領域Ａ４と、第４フィードバック領域Ａ４にスロットル開度ＴＨの高開度側で隣接する第５フィードバック領域Ａ５と、第５フィードバック領域Ａ５にスロットル開度ＴＨの高開度側で隣接する第６フィードバック領域Ａ６からなり、高開度側のフィードバック領域Ａは、第４フィードバック領域Ａ４又は第５フィードバック領域Ａ５とするので、頻繁に学習値ＫＢＵが更新されやすいフィードバック領域Ａの学習値ＫＢＵを用いることで、エアスクリュー３８の調整をより精度に検出することができる。
【００９６】
低開度側のフィードバック領域Ａの過去所定回数分の学習値ＫＢＵの平均値ＫＢＵａｖｅと、高開度側のフィードバック領域Ａの過去所定回数分の学習値ＫＢＵの平均値ＫＢＵａｖｅとの差を用いて、エアスクリュー３８が調整されたかを検出するので、学習値ＫＢＵのバラツキを抑えてエアスクリュー３８が調整されたかを検出することができ、エアスクリュー３８の調整の検出精度をより向上させることができる。
【００９７】
エアスクリュー３８の調整量を検出し、エアスクリュー３８の調整量に応じてスロットル開度補正値ΔＴＨＡＳを算出し、該スロットル開度補正値ΔＴＨＡＳを用いてスロットル開度センサ４４が検出したスロットル開度ＴＨを補正して基本噴射量ＴＩＭＢを算出するので、エアスクリュー３８の調整による吸気量増減分に応じて吸気量と密接に関係するスロットル開度ＴＨを補正することができ、この補正されたスロットル開度ＴＨＭを用いて基本噴射量ＴＩＭＢを算出することができる。従って、エアスクリュー３８の調整による吸気量の増減を簡易且つ精度良く補正することができ、基本噴射量ＴＩＭＢの算出精度を向上させることができ、その結果、燃料噴射量ＴＯＵＴの算出精度を向上させることができる。
【００９８】
エアスクリュー３８の調整を行うと、スロットル開度ＴＨの低開度側の学習値ＫＢＵがその影響を受けやすく、高開度側の学習値ＫＢＵは比較的影響を受けにくいので、低開度側の学習値ＫＢＵと高開度側の学習値ＫＢＵとの差からエアスクリュー３８の調整量を推測することができる。従って、スロットル開度ＴＨが低開度側のフィードバック領域Ａの学習値ＫＢＵと、スロットル開度ＴＨが高開度側のフィードバック領域Ａの学習値ＫＢＵとの差に基づいて調整量を検出するので、エアスクリュー３８の調整量を簡易な構造で精度良く求めることができ、その結果、燃料噴射量ＴＯＵＴの算出精度を向上させることができる。
【００９９】
低開度側のフィードバック領域Ａのスロットル開度ＴＨより大きく、高開度側のフィードバック領域Ａのスロットル開度ＴＨ以下のフィードバック領域であって、エアスクリュー３８の調整によって学習値ＫＢＵに影響を与えるフィードバック領域Ａ内でのみ、スロットル開度センサ４４が検出したスロットル開度ＴＨを補正して基本噴射量ＴＩＭＢを算出するので、基本噴射量ＴＩＭＢの算出精度を向上させることができ、その結果、特にエアスクリュー３８の調整によって影響を受けやすいスロットル開度低開度領域において、燃料噴射量ＴＯＵＴの算出精度を向上させることができる。
【０１００】
複数のフィードバック領域Ａは、エンジン１０のアイドリング領域である第１フィードバック領域Ａ１と、第１フィードバック領域Ａ１にエンジン回転数ＮＥが高回転側で隣接する第２フィードバック領域Ａ２と、第１フィードバック領域Ａ１及び第２フィードバック領域Ａ２にスロットル開度ＴＨの高開度側で隣接する第３フィードバック領域Ａ３と、第３フィードバック領域Ａ３にスロットル開度ＴＨの高開度側で隣接する第４フィードバック領域Ａ４と、第４フィードバック領域Ａ４にスロットル開度ＴＨの高開度側で隣接する第５フィードバック領域Ａ５と、第５フィードバック領域Ａ５にスロットル開度ＴＨの高開度側で隣接する第６フィードバック領域Ａ６からなり、エアスクリュー３８の調整によって学習値ＫＢＵに影響を与えるフィードバック領域Ａは、第２フィードバック領域Ａ２及び第３フィードバック領域Ａ３であるので、基本噴射量ＴＩＭＢの算出精度を向上させることができ、その結果、全スロットル開度ＴＨの領域において、燃料噴射量ＴＯＵＴの算出精度を向上させることができる。
【０１０１】
算出したスロットル開度補正値ΔＴＨＡＳを揮発性メモリ６６に記憶するが、エンジン１０の停止時にその時点で揮発性メモリ６６に記憶されているスロットル開度補正値ΔＴＨＡＳは、不揮発性メモリ６７に記憶される。従って、次回のエンジン始動時から適切な燃料噴射量ＴＯＵＴを算出することができる。
【０１０２】
以上、本発明について好適な実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更又は改良を加えることが可能であることが当業者に明らかである。その様な変更又は改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。また、特許請求の範囲に記載された括弧書きの符号は、本発明の理解の容易化のために添付図面中の符号に倣って付したものであり、本発明がその符号をつけた要素に限定して解釈されるものではない。
【符号の説明】
【０１０３】
１０…エンジン                        １２…燃料噴射制御装置
２２…吸気管                          ２４…排気管
３０…吸気バルブ                      ３２…排気バルブ
３４…スロットルバルブ                ３６…バイパス通路
３８…エアスクリュー                  ４０…燃料噴射弁
４２…制御部                          ４４…スロットル開度センサ
４６…エンジン回転数センサ            ５０…酸素センサ
６０…基本噴射量算出部                ６２…フィードバック部
６４…ＫＢＵマップ                    ６６…揮発性メモリ
６８…燃料噴射量算出部                ７０…調整検出部
７０ａ…調整量マップ                  ７２…補正値算出部
７２ａ…補正値テーブル                ８０…噴射量マップ
８２…リッチリーン判定部              ８４…係数算出部
８４ａ…フィードバック補正量算出部    ８４ｂ…学習値算出部
【図１】
2014199039.tif 000003
【図２】
2014199039.tif 000004
【図３】
2014199039.tif 000005
【図４】
2014199039.tif 000006
【図５】
2014199039.tif 000007
【図６】
2014199039.tif 000008
【図７】
2014199039.tif 000009
【図８】
2014199039.tif 000010
【図９】
2014199039.tif 000011
【図１０】
2014199039.tif 000012
【図１１】
2014199039.tif 000013
【図１２】
2014199039.tif 000014
【図１３】
2014199039.tif 000015
【図１４】
2014199039.tif 000016
【図１５】
2014199039.tif 000017
【図１６】
2014199039.tif 000018
【図１７】
2014199039.tif 000019
【図１８】
2014199039.tif 000020