(57)【特許請求の範囲】
【請求項１】
車両のエンジンに備えられる燃料噴射装置の燃料噴射量を制御するための燃料噴射制御装置であって、
前記エンジンの排気が通る排気通路内の酸素濃度に応答する酸素センサと、
前記酸素センサの出力に基づいて前記燃料噴射量を制御する噴射量制御手段とを含み、
前記噴射量制御手段が、
前記酸素センサの出力に基づいて噴射量補正値を求める噴射量補正値演算手段と、
前記噴射量補正値に基づいて所定のショートタイム学習速度で更新されるショートタイム学習値を求めるショートタイム学習値演算手段と、
前記ショートタイム学習値に基づいて、前記ショートタイム学習速度よりも低速なロングタイム学習速度で更新されるロングタイム学習値を求めるロングタイム学習値演算手段と、
前記噴射量補正値、前記ショートタイム学習値および前記ロングタイム学習値の和をフィードバック補正量として演算するフィードバック補正量演算手段と、
前記フィードバック補正量を用いて前記燃料噴射量の制御値を演算する噴射量制御値演算手段と、
前記ロングタイム学習値を保持するロングタイム学習値保持手段とを含み、
前記エンジンが始動されたときに、前記ロングタイム学習値演算手段は前記ロングタイム学習値保持手段から従前の前記ロングタイム学習値を読み出して使用する一方、前記ショートタイム学習値演算手段は従前の前記ショートタイム学習値を引き継ぐことなくショートタイム学習値の演算を新たに開始する
燃料噴射制御装置。
【請求項２】
前記ショートタイム学習値演算手段が、前記噴射量補正値が零に近づくように前記ショートタイム学習値を更新し、
前記ロングタイム学習値演算手段が、前記ショートタイム学習値を零に導くように前記ロングタイム学習値を更新する、請求項１に記載の燃料噴射制御装置。
【請求項３】
前記噴射量制御手段は、所定の中断条件が成立すると、前記噴射量補正値演算手段の演算を中断して前記酸素センサの出力に基づくフィードバック制御を中断するフィードバック制御中断手段を含み、
前記ショートタイム学習値演算手段は、前記フィードバック制御が中断されているときに、前記ショートタイム学習値を所定時間に渡って保持し、前記フィードバック制御が中断されている時間が前記所定時間に達すると、前記ショートタイム学習値を徐々に零に近づけ、
前記フィードバック補正量演算手段は、前記フィードバック制御が中断されているときに、前記ショートタイム学習値および前記ロングタイム学習値の和を前記フィードバック補正量として演算する、請求項１または２に記載の燃料噴射制御装置。
【請求項４】
前記フィードバック制御中断手段は、前記排気通路に空気を導入するエアインダクション動作中および前記燃料噴射量を零にする燃料カット制御中に前記フィードバック制御を中断する、請求項３に記載の燃料噴射制御装置。
【請求項５】
前記ショートタイム学習値演算手段が、前記噴射量補正値の絶対値が所定の高速学習閾値よりも大きいときに、前記ショートタイム学習速度よりも高速な高速ショートタイム学習速度で前記ショートタイム学習値を更新する、請求項１〜４のいずれか一項に記載の燃料噴射制御装置。
【請求項６】
前記ショートタイム学習値および前記ロングタイム学習値の和の絶対値と所定の異常閾値とを比較して、前記エンジンの燃料供給系における異常の有無を判定する異常判定手段をさらに含む、請求項１〜５のいずれか一項に記載の燃料噴射制御装置。
【請求項７】
所定のアイドル停止条件が充足されると前記エンジンを自動停止するアイドル停止手段と、
前記アイドル停止手段によって前記エンジンが自動停止させられた自動停止状態のときに、所定の再始動条件が充足されると前記エンジンを再始動する再始動手段と
をさらに含み、
前記再始動手段によって前記エンジンが再始動されたとき、前記ショートタイム学習値演算手段は従前の前記ショートタイム学習値を引き継ぐ
請求項１〜６のいずれか一項に記載の燃料噴射制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、車両のエンジンに備えられる燃料噴射装置の噴射量を制御するための燃料噴射制御装置に関する。
【背景技術】
【０００２】
特許文献１は、内燃機関の燃料系異常診断装置を開示している。この先行技術では、排ガスの空燃比を目標空燃比付近のフィードバック制御するためのフィードバック補正係数が求められる。また、目標空燃比からの実空燃比のずれ量を学習して学習補正係数が求められる。これらのフィードバック補正係数および学習補正係数を用いて要求燃料噴射量が算出される。学習補正係数は、バッテリでバックアップされたバックアップＲＡＭに格納される。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００１−３２９８９４号公報
【発明の概要】
【課題を解決するための手段】
【０００４】
特許文献１には、学習補正量は、誤学習を防止するために、学習補正量の変化をフィードバック補正係数の変化と比較して、緩やかにすべきことが記載されている。
たとえば、学習速度を速くすると、学習値（上記学習補正量）がフィードバック補正係数に迅速に追従する反面、エンジン状態の短期的な変動や中期的な変動の影響を受けやすくなるため、必ずしも適切な燃料噴射制御を行うことができない。エンジン状態の短期的な変動の具体的な原因例は、加減速による一時的なリッチ／リーンの発生、燃料カットからの復帰時の一時的なリーンの発生、ガス欠によるリーンの発生などである。エンジン状態の中期的な変動の具体的な原因例の一つは、燃料の種類（ハイオクガソリン、レギュラーガソリン、粗悪燃料、アルコール燃料等）である。前回の運転時の値が引き継がれていく学習値には、これらの短期的および中期的な変動は反映すべきではない。したがって、エンジン状態の長期的な変動のみが反映されるように、学習速度が設定されることが好ましい。長期的な変動の原因例は、個体ばらつき、経年変化などであり、半ば恒久的な変動である。
【０００５】
しかし、特許文献１の構成において、エンジン状態の長期的な変動のみを学習値で吸収しようとすると、エンジン状態の短期的な変動のみならず、その中期的な変動への対処も、専らフィードバック補正係数に委ねられる。そのため、フィードバック制御が中断された状態では、燃料噴射量の制御は専ら長期的な変動にのみ対応した学習値によらなければならない。したがって、適切な燃料噴射量を設定できない。また、フィードバック制御中断からの復帰時には、中期的な変動および短期的な変動の両方が、フィードバック補正係数によって吸収されなければならない。そのため、追従性が充分でない。よって、燃費向上等の観点から、改善の余地がある。
【０００６】
そこで、この発明の目的は、燃料噴射量をより適切に制御することができる燃料噴射制御装置を提供することである。
この発明は、車両のエンジンに備えられる燃料噴射装置の燃料噴射量を制御するための燃料噴射制御装置であって、前記エンジンの排気が通る排気通路内の酸素濃度に応答する酸素センサと、前記酸素センサの出力に基づいて前記燃料噴射量を制御する噴射量制御手段とを含む燃料噴射制御装置を提供する。前記噴射量制御手段は、前記酸素センサの出力に基づいて噴射量補正値を求める噴射量補正値演算手段と、前記噴射量補正値に基づいて所定のショートタイム学習速度で更新されるショートタイム学習値を求めるショートタイム学習値演算手段と、前記ショートタイム学習値に基づいて、前記ショートタイム学習速度よりも低速なロングタイム学習速度で更新されるロングタイム学習値を求めるロングタイム学習値演算手段と、前記噴射量補正値、前記ショートタイム学習値および前記ロングタイム学習値の和をフィードバック補正量として演算するフィードバック補正量演算手段と、前記フィードバック補正量を用いて前記燃料噴射量の制御値を演算する噴射量制御値演算手段と、前記ロングタイム学習値を保持するロングタイム学習値保持手段とを含む。前記エンジンが始動されたときに、前記ロングタイム学習値演算手段は前記ロングタイム学習値保持手段から従前の前記ロングタイム学習値を読み出して使用する一方、前記ショートタイム学習値演算手段は従前の前記ショートタイム学習値を引き継ぐことなくショートタイム学習値の演算を新たに開始する。
【０００７】
この構成によれば、燃料噴射量の制御値を求めるためのフィードバック補正量は、噴射量補正値、ショートタイム学習値およびロングタイム学習値の和を用いて求められる。噴射量補正値は、排気通路内の酸素濃度に応答する酸素センサの出力に基づいて求められるので、エンジンの排気の状態に応じて速やかに変動する。ショートタイム学習値は、噴射量補正値に基づいてショートタイム学習速度で更新される。ロングタイム学習値は、ショートタイム学習値に基づいてロングタイム学習速度で更新される。ショートタイム学習速度は、ロングタイム学習速度よりも速い。すなわち、ショートタイム学習値は、ロングタイム学習値よりも速く変動する。
【０００８】
したがって、噴射量補正値は、ショートタイム学習速度に応じてショートタイム学習値へと徐々に移行していき、ショートタイム学習値はロングタイム学習速度に応じて徐々にロングタイム学習値へと移行していく。それによって、エンジン状態の長期的な変動の影響はロングタイム学習値によって吸収され、エンジン状態の中期的な変動の影響はショートタイム学習値によって吸収され、エンジン状態の短期的な変動の影響は噴射量補正値によって吸収されることになる。これにより、噴射量補正値の更新が一時的に中断されて噴射量補正値がリセットされても、ショートタイム学習値およびロングタイム学習値を用いることによって、エンジンの状態に応じた適切な燃料噴射量を設定できる。また、噴射量補正値の更新中断からの復帰時においても、噴射量補正値は短期的な変動の影響を吸収すればよいので、速やかに適切な燃料噴射量を設定できる。これによって、燃費を向上することができ、排気浄化用の触媒を備えたエンジンにおいては、排気の清浄度を高めることができる。
【０００９】
一方、エンジンの始動時には、前回運転時のロングタイム学習値が引き継がれるのに対して、ショートタイム学習値は前回運転時の値が引き継がれない。これにより、ショートタイム学習の影響が恒久化されないので、仮にその学習速度を比較的大きく設定したとしても、次回の運転に悪影響を及ぼすことがない。また、ショートタイム学習値を設けることによって、ロングタイム学習値の学習速度を充分に遅くすることができるから、中期的な変動がロングタイム学習値に及ぼす影響を低減できる。ロングタイム学習値が次回の運転に引き継がれることから、エンジンの始動時にも、酸素センサの出力を用いたフィードバック制御が開始される前から、適切な燃料噴射制御を実現できる。
【００１０】
この発明の一実施形態では、前記ショートタイム学習値演算手段は、前記噴射量補正値が零に近づくように前記ショートタイム学習値を更新し、前記ロングタイム学習値演算手段は、前記ショートタイム学習値を零に導くように前記ロングタイム学習値を更新する。
この構成により、噴射量補正値の変動はショートタイム学習値へと移行していき、ショートタイム学習値の変動はロングタイム学習値へと移行していく。それによって、学習が進むに従い、噴射量補正値が零に近づいていくので、噴射量補正値の更新が一時的に中断されて噴射量補正値がリセットされるオープンループ制御の状態においても、燃料噴射制御を適切に行える。
【００１１】
この発明の一実施形態では、前記噴射量制御手段は、所定の中断条件が成立すると、前記噴射量補正値演算手段の演算を中断して前記酸素センサの出力に基づくフィードバック制御を中断するフィードバック制御中断手段を含み、前記ショートタイム学習値演算手段は、前記フィードバック制御が中断されているときに、前記ショートタイム学習値を所定時間に渡って保持し、前記フィードバック制御が中断されている時間が前記所定時間に達すると、前記ショートタイム学習値を徐々に零に近づけ、前記フィードバック補正量演算手段は、前記フィードバック制御が中断されているときに、前記ショートタイム学習値および前記ロングタイム学習値の和を前記フィードバック補正量として演算する。
【００１２】
この構成により、所定の中断条件が成立すると、フィードバック制御が中断され、ショートタイム学習値およびロングタイム学習値の和をフィードバック補正量として用いて燃料噴射量の制御値を演算するオープンループ制御となる。ショートタイム学習値は、エンジン状態の中期的な変動を吸収した値であるので、ロングタイム学習値だけをオープンループ制御に用いる場合に比較して、適切な燃料噴射制御を行うことができる。また、オープンループ制御からフィードバック制御に復帰するときも、噴射量補正値はエンジン状態の短期的な変動の影響を吸収すればよいので、その絶対値は小さくてよい。したがって、フィードバック制御からの復帰時には、迅速に、適切な燃料噴射制御を実現できる。
【００１３】
上記中断条件の例は、前記排気通路に空気を導入するエアインダクション動作中であること、前記燃料噴射量を零にする燃料カット制御中であることなどである。排気通路に触媒（とくに三元触媒）が配置される場合には、排気通路に二次空気（エンジンの燃焼室を通っていない空気）を導入するエアインダクションによって排気通路内の酸素濃度を意図的に高めて、排気の浄化を図る場合がある。このときの酸素濃度は、エンジンに供給される混合気中の燃料比率を反映していないので、フィードバック制御を中断するのが適切である。また、燃料噴射量を零にする燃料カット中にフィードバック制御を中断することにより、燃料噴射再開時に燃料カットの影響が現れることを回避できる。
【００１４】
この発明の一実施形態では、前記ショートタイム学習値演算手段は、前記噴射量補正値の絶対値が所定の高速学習閾値よりも大きいときに、前記ショートタイム学習速度よりも高速な高速ショートタイム学習速度で前記ショートタイム学習値を更新する。この構成では、噴射量補正値の値が大きいときには、ショートタイム学習値の学習速度が高められる。それによって、噴射量補正値の絶対値を短い時間内に小さくできるので、噴射量補正値の更新が一時的に中断されて噴射量補正値がリセットされても、適切な燃料噴射制御を早期に実現できる。すなわち、噴射量補正値をショートタイム学習値に早く移行させることができるので、フィードバック制御中断時におけるオープンループ制御の際などに、適切な燃料噴射量を設定できる。
【００１５】
エンジン始動直後には、ショートタイム学習が新たに開始されるので、ショートタイム学習値は初期値となる。そのため、噴射量補正値の絶対値は、エンジンの中期的な変動の影響をも吸収するために大きな値となる。このような場合に、ショートタイム学習値が高速に更新される。それによって、速やかに適切な燃料噴射制御を行うことができる。
この発明の一実施形態に係る燃料噴射制御装置は、前記ショートタイム学習値および前記ロングタイム学習値の和の絶対値と所定の異常閾値とを比較して、前記エンジンの燃料供給系における異常の有無を判定する異常判定手段をさらに含む。
【００１６】
この構成によれば、ショートタイム学習値およびロングタイム学習値の和の絶対値を用いて燃料供給系の異常判定が行われる。それによって、中期的および長期的なエンジン状態の変動に基づいて、燃料供給系の異常を判定できる。一方、噴射量補正値を異常判定のために用いていないので、エンジン状態の短期的な変動の影響を排除しながら異常判定を行うことができるので、誤判定の確率を低減できる。
【００１７】
しかも、ショートタイム学習値の学習速度は比較的速いので、燃料供給系に異常が生じたときには、速やかに異常判定を行うことができる。また、ショートタイム学習値の学習速度が速いので、ロングタイム学習値の学習速度は充分に低速にしておくことができる。それによって、燃料噴射制御の安定性を損なうことなく、燃料供給系の異常判定を適切に行うことができる。また、ショートタイム学習値は、エンジンの始動時に前回値が引き継がれないので、仮に、一時的な事象のためにショートタイム学習値が大きくなったとしても、次回の運転時には引き継がれない。それによって、燃料供給系の異常判定および燃料噴射制御をいずれも適切に行うことができる。
【００１８】
この発明の一実施形態に係る燃料噴射制御装置は、所定のアイドル停止条件が充足されると前記エンジンを自動停止するアイドル停止手段と、前記アイドル停止手段によって前記エンジンが自動停止させられた自動停止状態のときに、所定の再始動条件が充足されると前記エンジンを再始動する再始動手段とをさらに含む。そして、前記再始動手段によって前記エンジンが再始動されたとき、前記ショートタイム学習値演算手段は従前の前記ショートタイム学習値を引き継ぐ。
【００１９】
この構成によれば、アイドル停止条件の充足によってエンジンが自動停止されることにより、燃費を向上できる。アイドル停止手段によってエンジンが自動停止したときには、燃料噴射制御には問題はないと考えられるから、従前のショートタイム学習値を引き続き用いても差し支えない。そこで、エンジン自動停止状態からのエンジン再始動時には、従前のショートタイム学習値が引き継がれる。それによって、エンジン再始動後の燃料噴射制御を適切に行える。一方、アイドル停止制御によってエンジンが自動停止したのではなく、燃料噴射制御等が妥当でないためにエンジンが停止してしまった場合には、従前のショートタイム学習値は、次回のエンジン始動時に引き継がれない。これにより、従前のショートタイム学習値を破棄して、新たに適切な学習を開始することができる。
【図面の簡単な説明】
【００２０】
【図１】図１は、この発明の一実施形態に係る燃料噴射制御装置が適用可能な車両の側面図である。
【図２】図２は、車両に備えられたエンジンに関連する構成を説明するための構成図である。
【図３】図３は、エンジンの制御に関連する機能的な構成を説明するためのブロック図である。
【図４】図４は、エンジンコントローラとしてのＥＣＵによる処理の概要を説明するためのフローチャートである。
【図５】図５は、噴射量補正値の演算処理を説明するためのフローチャートである。
【図６】図６は、噴射量補正値の変動例を説明するためのタイムチャートである。
【図７】図７は、ショートタイム学習値のための学習処理を説明するためのフローチャートである。
【図８】図８は、ロングタイム学習値のための学習処理を説明するためのフローチャートである。
【図９】図９は、この発明の他の実施形態に係る燃料噴射装置が適用された車両の電気的構成を説明するためのブロック図である。
【図１０】図１０は、図９の実施形態におけるＥＣＵの処理の概要を説明するためのフローチャートである。
【発明を実施するための形態】
【００２１】
以下では、この発明の実施の形態を、添付図面を参照して詳細に説明する。
図１は、この発明の一実施形態に係る燃料噴射制御装置が適用可能な車両の側面図である。この実施形態に係る車両は、鞍乗り型車両の一例である自動二輪車１である。自動二輪車１の形式は図１に示された形式でなくてもよく、いわゆるスクータ型、モペット型、オフロード型、オンロード型等のいずれの型式の自動二輪車であってもよい。また、鞍乗り型車両の形態は、自動二輪車に限定される訳ではなく、ＡＴＶ（All-Terrain Vehicle）等であってもよい。鞍乗り型車両とは、乗員が跨って乗車する形態の車両のことである。さらに、この実施形態の燃料噴射制御装置が適用可能な車両は鞍乗り型車両に限定される訳でもなく、車室を有する４輪車両等にも適用可能である。端的には、この実施形態に係る燃料噴射制御装置は、燃料噴射式エンジンを備える車両に広く適用することができる。
【００２２】
自動二輪車１は、燃料タンク２と、乗車シート３と、内燃機関であるエンジン４と、それらを支持する車体フレーム５とを備えている。乗員としてのライダーおよび同乗者は、鞍型の乗車シート３に跨がって着座する。車体フレーム５の前方にはヘッドパイプ６が設けられており、ヘッドパイプ６にはステアリングシャフト（図示せず）が支持されている。このステアリングシャフトの上部にハンドル１２が固定されている。また、ステアリングシャフトの下部には、フロントフォーク７が設けられている。フロントフォーク７の下端部には、前輪８が回転自在に支持されている。車体フレーム５にはスイングアーム９が上下揺動自在に支持されている。スイングアーム９の後端部には後輪１０が回転自在に支持されている。エンジン４の駆動力は後輪１０に伝達されるようになっている。
【００２３】
ハンドル１２の両端には、ライダーが左右の手でそれぞれ保持するための一対のグリップが設けられている。それらのうちの一方の（たとえば乗車シート３に着座したライダーから見て右側のグリップ）は、エンジン４の出力を調節するためのアクセルグリップ１３である。アクセルグリップ１３は、ハンドル１２の一端に回動自在に結合されている。アクセルグリップ１３は、アクセル操作部材の一例である。ハンドル１２の前方には、表示パネル１４が配置されている。表示パネル１４は、たとえば、エンジン回転速度メータ、スピードメータ等のメータ類、各種インジケータ類を含む。
【００２４】
図２は、エンジン４に関連する構成を説明するための構成図である。エンジン４は、シリンダ２１と、シリンダ２１内を往復するピストン２２と、クランク軸２３と、ピストン２２とクランク軸２３とを連結するコンロッド２４とを備えている。エンジン４は、吸気行程、圧縮行程、膨張行程、および排気行程からなるサイクルを繰り返す４ストローク式の単気筒エンジンである。ただし、エンジン４は単気筒エンジンに限らず、多気筒エンジンであってもよい。
【００２５】
エンジン４は、燃料を噴射する燃料噴射装置である燃料噴射弁２５と、燃焼室２６内の燃料に点火を行う点火装置２７と、始動のためのスタータモータ２８とを備えている。エンジン４には、クランク軸２３の回転速度を検出する回転速度センサ３１と、エンジン４の温度を検出する温度センサ３２とが設けられている。クランク軸２３の回転速度とは、クランク軸２３の単位時間当たりの回転数のことである。以下では、クランク軸２３の回転速度のことを単に「エンジン回転速度」という。温度センサ３２は、エンジン４の一部（たとえば、シリンダ２１）の温度を検出するセンサであってもよい。エンジン４が水冷式の場合には、温度センサ３２は、冷却水の温度を検出する冷却水温センサであってもよい。すなわち、温度センサ３２は、エンジン４の温度を直接検出するセンサであってもよく、冷却水等を介してエンジン４の温度を間接的に検出するセンサであってもよい。
【００２６】
エンジン４は、燃焼室２６に空気を導入する吸気通路４１と、吸気通路４１と燃焼室２６との間を開閉する吸気弁４２と、燃焼室２６内での燃焼によって生じる排気を排出する排気通路４３と、燃焼室２６と排気通路４３との間を開閉する排気弁４４とを備えている。この実施形態では、燃料噴射弁２５は、吸気通路４１内に燃料を噴射するように配置されている。ただし、燃料噴射弁２５は、燃焼室２６内に直接燃料を噴射するように構成されていてもよい。また、吸気通路４１内および燃焼室２６内に燃料を噴射する２種類の燃料噴射弁が備えられていてもよい。
【００２７】
排気通路４３には、触媒４５が設けられている。触媒４５は、三元触媒コンバータであり、エンジン４の排気中に含まれる有害成分である炭化水素（ＨＣ）、一酸化炭素（ＣＯ）および窒素酸化物（ＮＯｘ）を同時に除去する。より具体的には、炭化水素および一酸化炭素を酸化して無害化し、窒素酸化物を還元して無害化する酸化・還元触媒である。高効率での酸化・還元のためには、エンジン４に供給される混合気中の空燃比が理論空燃比（ストイキ：stoichiometry）である必要がある。そのために、排気通路４３に酸素センサ３３が配置され、その出力信号に基づいて、燃料噴射量が制御される。酸素センサ３３は、排気中に含まれる酸素濃度を検出する。言い換えると、酸素センサ３３は、混合気中の空燃比が理論空燃比に対して燃料が過剰なリッチ領域にあるときはリッチ信号を出力し、空気が過剰なリーン領域にあるときはリーン信号を出力するセンサである。
【００２８】
排気通路４３には、エアインダクションシステム（ＡＩＳ）２９が接続されている。エアインダクションシステム２９は、暖機運転時のようにストイキよりもリッチで運転しているときに作動させられ、排気通路４３において触媒４５の上流側に二次空気を導入する二次空気導入装置である。二次空気とは、燃焼室２６を通っていない空気であり、酸素を多量に含んでいる。
【００２９】
燃料タンク２と燃料噴射弁２５とは、燃料配管４６によって接続されている。燃料タンク２の内部には、燃料配管４６に向かって燃料を供給する燃料ポンプ４７と、燃料タンク２内の燃料量を検出する燃料センサ３４とが設けられている。燃料センサ３４は、液面センサ等の周知のセンサであってもよい。燃料タンク２に入れられる燃料は、ガソリンであってもよいし、ガソリンおよびエタノールを混合した混合燃料であってもよい。燃料配管４６の途中には、燃料の圧力をほぼ一定に保つための燃圧レギュレータ４８が配置されている。燃料タンク２、燃料噴射弁２５、燃料配管４６、燃料ポンプ４７および燃圧レギュレータ４８などによって燃料供給系が構成されている。
【００３０】
吸気通路４１には、吸気通路４１の内部圧力である吸気管圧力を検出する圧力センサ３５が設けられている。吸気通路４１には、スロットルバルブ４０が配置されている。スロットルバルブ４０は、スロットルワイヤ４９に結合されている。スロットルワイヤ４９は、ハンドル１２の一端に設けられたアクセルグリップ１３に結合されている。したがって、ライダーがアクセルグリップ１３を回動操作することによって、スロットルバルブ４０の開度を調節でき、それによって、エンジン４の出力（エンジン回転速度）を調節できる。スロットルバルブ４０には、スロットル開度センサ３６が付設されている。スロットル開度センサ３６は、スロットルバルブ４０の位置を検出することにより、その開度を表す信号を出力する。
【００３１】
自動二輪車１は、エンジン４の制御を行うエンジンコントロールユニットとして、ＥＣＵ（Electronic Control Unit：電子制御ユニット）５０を備えている。自動二輪車１は、さらに、バッテリ１５と、メインスイッチ１６とを備えている。使用者によりメインスイッチ１６がＯＮされると、バッテリ１５とＥＣＵ５０との間が通電状態となり、ＥＣＵ５０に電力が供給される。ＥＣＵ５０は、各種演算を実行する演算部５１と、後述する制御を行うための制御プログラムや各種情報を記憶する記憶部５２とを有している。演算部５１はＣＰＵを含み、記憶部５２はＲＯＭおよびＲＡＭを含む。この実施形態では、記憶部５２は、メインスイッチ１６の遮断によって記憶内容が失われる揮発性メモリ５２Ｖと、メインスイッチ１６の遮断時にも記憶内容が保持される書き込み可能な不揮発性メモリ５２Ｎとを含む。
【００３２】
図３は、エンジン４の制御に関連する機能的な構成を説明するためのブロック図である。ＥＣＵ５０には前述のセンサ類が接続され、各センサからＥＣＵ５０に対して検出信号が入力されるようになっている。具体的には、ＥＣＵ５０には、回転速度センサ３１、温度センサ３２、酸素センサ３３、燃料センサ３４、圧力センサ３５、スロットル開度センサ３６が接続されている。ＥＣＵ５０は、これらのセンサ類の検出値等に基づき、エンジン４を制御する。
【００３３】
演算部５１は、記憶部５２に格納された動作プログラムを実行することによって、実質的に、複数の機能処理ユニットとしての働きを有する。複数の機能処理ユニットは、点火制御部６１、噴射量制御部６２、異常判定部６３、および通知制御部６４を含む。
点火制御部６１は、点火装置２７を制御する。噴射量制御部６２は、燃料噴射弁２５を制御し、燃料噴射タイミングおよび燃料噴射量を制御する。必要に応じて、噴射量制御部６２は、燃料噴射量を通常時よりも加減したり、燃料噴射をカットしたりする。たとえば、エンジン４の暖機完了まで（冷機時）には、燃料噴射量を通常時よりも多くする。また、加速時においても、燃料噴射量を多くして、エンジン４の出力を増大させる。また、減速時には、燃料噴射をカットする。このように、通常時とは異なる燃料噴射制御が行われるときには、酸素センサ３３の出力信号に基づく燃料噴射量のフィードバック制御が中断される。異常判定部６３は、燃料供給系の異常の有無を判定する異常判定処理を実行する。通知制御部６４は、異常判定部６３が燃料供給系に異常が発生したと判定すると、ライダーにそのことを通知するための制御等を実行する。より具体的には、表示パネル１４内に配置されたインジケータ１４ａを点灯させる。表示パネル１４外のインジケータを用いて同様の警告を行ってもよい。
【００３４】
噴射量制御部６２は、フィードフォワード噴射量演算部６０と、フィードバック補正量演算部６５と、噴射量制御値演算部６９と、フィードバック制御中断部７０とを含む。噴射量制御部６２は、センサ類の出力に基づいて燃料噴射弁２５からの一回当たりの燃料噴射量を制御する。より具体的には、噴射量制御部６２は、燃料噴射時間を制御する。
フィードフォワード噴射量演算部６０は、酸素センサ３３の出力信号のフィードバックによることなく求められる制御値として、フィードフォワード噴射量を演算する。フィードバック補正量演算部６５は、酸素センサ３３の出力信号に基づいて燃料噴射量を補正するためのフィードバック補正量を演算する。
【００３５】
たとえば、フィードフォワード噴射量演算部６０は、回転速度センサ３１、温度センサ３２、圧力センサ３５、スロットル開度センサ３６等の出力信号に基づいて、フィードフォワード噴射量を演算する。具体的には、フィードフォワード噴射量演算部６０は、スロットル開度およびエンジン回転速度に対して吸入空気量を対応付けたマップ、または吸気圧およびエンジン回転速度に対して吸入空気量を対応付けたマップを用いて、吸入空気量を求める。さらに、フィードフォワード噴射量演算部６０は、その吸入空気量に対して目標空燃比を達成できる基本噴射量を決定する。この基本噴射量は、外気が常温の１気圧の状態での暖機後のエンジンに適合されている。そこで、フィードフォワード噴射量演算部６０は、エンジン温度、外気温度、外気圧等に基づいて基本噴射量を補正する。さらに、フィードフォワード噴射量演算部６０は、加減速時の過渡特性に応じた補正を行う。こうして、基本噴射量を補正したフィードフォワード噴射量が求まる。
【００３６】
フィードバック補正量演算部６５は、酸素センサ３３の出力信号を用いて、フィードフォワード噴射量を補正するためのフィードバック補正量を求める。具体的には、フィードバック補正量演算部６５は、噴射量補正値演算部６６と、ショートタイム学習値演算部６７と、ロングタイム学習値演算部６８と、加算部７１とを含む。
噴射量補正値演算部６６は、酸素センサ３３の出力に基づいて噴射量補正値を求める。より具体的には、酸素センサ３３の出力がリーン信号であれば、次回の燃料噴射量（より具体的には燃料噴射時間）が増えるように噴射量補正値を求める。さらに具体的には、酸素センサ３３の出力がリーン信号のときは、噴射量補正値演算部６６は、一定変量である補正変量だけ噴射量補正値を増加させる。一方、酸素センサ３３の出力がリッチ信号であれば、次回の燃料噴射量（より具体的には燃料噴射時間）が減るように噴射量補正値を求める。さらに具体的には、酸素センサ３３の出力がリッチ信号のときは、噴射量補正値演算部６６は、前記補正変量だけ噴射量補正値を減少させる。また、酸素センサ３３の出力がリーン信号からリッチ信号に転じた直後は、噴射量補正値演算部６６は、前記補正変量よりも大きなスキップ変量だけ噴射量補正値を減少させる。同様に、酸素センサ３３の出力がリッチ信号からリーン信号に転じた直後は、噴射量補正値演算部６６は、前記スキップ変量だけ噴射量補正値を増加させる。
【００３７】
ショートタイム学習値演算部６７は、噴射量補正値演算部６６によって求められる噴射量補正値に基づいて、ショートタイム学習値を求める。ショートタイム学習値演算部６７は、所定の更新周期（たとえば１秒）ごとに、前記補正変量よりも小さな一定変量であるショートタイム学習更新量ずつショートタイム学習値を更新する学習演算を実行する。具体的には、ショートタイム学習値演算部６７は、酸素センサ３３の出力がリーン信号とリッチ信号との間で反転した直後、すなわち、スキップ直後における噴射量補正値を用いる。より具体的には、時間的に隣接する２回のスキップの各直後の噴射量補正値の相加平均値を求める。この相加平均値は、排気通路４３における酸素濃度をストイキ（リッチでもリーンでもない）付近にできる噴射量補正値に対応している。ショートタイム学習値演算部６７は、その相加平均値の符号に応じて、ショートタイム学習更新量だけショートタイム学習値を増減させる。これにより、ショートタイム学習値は、噴射量補正値が零に近づくように変化していく。噴射量補正値が、酸素センサ３３の出力に迅速に応答するのに対して、ショートタイム学習値の学習速度は噴射量補正値の変化よりも緩慢である。
【００３８】
この実施形態では、ショートタイム学習更新量は、噴射量補正値の絶対値の大きさに応じて、通常更新量と高速更新量との２種類に切り換えられる。具体的には、ショートタイム学習値演算部６７は、噴射量補正値の絶対値が所定の高速学習閾値以下のときには通常更新量をショートタイム学習更新量に設定する。一方、噴射量補正値の絶対値が前記高速学習閾値を超えているときには、ショートタイム学習値演算部６７は、通常更新量よりも大きな高速更新量をショートタイム学習更新量に設定する。これにより、噴射量補正値が大きいときには、ショートタイム学習更新量の変化速度、すなわち学習速度が速くなり、高速学習が実行される。
【００３９】
ロングタイム学習値演算部６８は、ショートタイム学習値演算部６７が求めるショートタイム学習値に基づいて、ショートタイム学習速度よりも低速なロングタイム学習速度で更新されるロングタイム学習値を求める。ロングタイム学習値演算部６８は、所定の更新周期（たとえば３秒）ごとに、ショートタイム学習更新量よりも小さい一定変量であるロングタイム学習更新量だけロングタイム学習値を更新する。より具体的には、ロングタイム学習値演算部６８は、現在のショートタイム学習値の符号に応じて、ロングタイム学習更新量だけロングタイム学習値を更新する。それによって、ロングタイム学習値は、ショートタイム学習値を徐々に零に近づけるように変化する。ロングタイム学習更新量はショートタイム学習更新量よりも小さい値であるので、それら更新周期が等しくても、ロングタイム学習値の学習速度はショートタイム学習値の学習速度よりも低速になる。
【００４０】
加算部７１は、噴射量補正値演算部６６が演算する噴射量補正値、ショートタイム学習値演算部６７が演算するショートタイム学習値、およびロングタイム学習値演算部６８が演算するロングタイム学習値を加算して、フィードバック補正量を求める。
噴射量制御値演算部６９は、下記式（Ａ）のとおり、フィードフォワード噴射量演算部６０が求めるフィードフォワード噴射量と、フィードバック補正量演算部６５が求めるフィードバック補正量との和を、燃料噴射量の制御値として求める。フィードバック補正量は、前述のとおり、前記噴射量補正値、前記ショートタイム学習値および前記ロングタイム学習値の和である。こうして求められた燃料噴射量の制御値を用いて、燃料噴射弁２５の燃料噴射量（燃料噴射時間）が求められる。この燃料噴射時間に基づいて、噴射量制御部６２は、燃料噴射弁２５の動作を制御する。
【００４１】
制御値＝フィードフォワード噴射量＋フィードバック補正量
＝フィードフォワード噴射量
＋噴射量補正値＋ショートタイム学習値＋ロングタイム学習値  …（Ａ）
学習演算が進むに従って、噴射量補正値はショートタイム学習値へと移行していき、ショートタイム学習値はロングタイム学習値へと移行していく。それにより、噴射量補正値が零に近づいていき、安定した燃料噴射制御ができる状態へと導かれる。
【００４２】
噴射量補正値演算部６６は、求めた噴射量補正値を揮発性メモリ５２Ｖに格納する。また、ショートタイム学習値演算部６７は、求めたショートタイム学習値を揮発性メモリ５２Ｖに格納する。さらに、ロングタイム学習値演算部６８は、求めたロングタイム学習値を不揮発性メモリ５２Ｎに格納する。すなわち、この実施形態では、不揮発性メモリ５２Ｎは、ロングタイム学習値保持手段である。メインスイッチ１６が遮断されてＥＣＵ５０の電源が失われると、揮発性メモリ５２Ｖに格納されている噴射量補正値およびショートタイム学習値は消滅し、ロングタイム学習値は不揮発性メモリ５２Ｎ内に保持される。よって、次にメインスイッチ１６が投入されてＥＣＵ５０の演算が開始されると、噴射量補正値およびショートタイム学習値は、それぞれの初期値から演算が開始される。ロングタイム学習値に関しては、不揮発性メモリ５２Ｎに保持された従前の学習値を引き継いで、その学習演算が開始される。
【００４３】
フィードバック制御中断部７０は、所定の中断条件が満たされると、噴射量補正値演算部６６による噴射量補正値の演算を停止させ、噴射量補正値を零にリセットする。これにより、酸素センサ３３の出力をフィードバックして燃料噴射量を制御するフィードバック制御が中断される。前記中断条件とは、この実施形態では、次の条件ａ，ｂを含む。
ａ：排気通路４３に空気を導入するエアインダクションシステム２９の動作中である。
【００４４】
ｂ：燃料噴射量を零にする燃料カット制御中である。
条件ａ，ｂのいずれかが充足されると、酸素センサ３３の出力を用いたフィードバック制御が中断される。エアインダクションシステム２９の作動中は、二次空気が排気通路４３に導入される。二次空気は、燃焼室２６を通っていない空気であり、酸素を多量に含んでいる。したがって、エアインダクションシステム２９の作動中は、酸素センサ３３が検出する酸素濃度は、燃焼室２６に供給される混合気中の燃料比率とは無関係になる。そのため、エアインダクションシステム２９の作動中に酸素センサ３３の出力信号をフィードバックすると、噴射量補正値が適切な値にならない。また、減速のためにスロットル全閉となったときなどに実行される燃料カット制御中にも、酸素センサ３３の出力は混合気中の燃料比率に対応しないので、やはりフィードバック制御を実行すべきではない。中断条件は、そのほかにも、理論空燃比（ストイキ）以外の空燃比で運転したい場合などを含んでいてもよい。
【００４５】
異常判定部６３は、燃料供給系の異常の有無を判定する。具体的には、異常判定部６３は、下記式（Ｂ）のとおり、ショートタイム学習値およびロングタイム学習値の和の絶対値を判定値として演算する。
判定値＝｜ショートタイム学習値＋ロングタイム学習値｜  …（Ｂ）
異常判定部６３は、前記判定値が異常閾値を超えると、燃料供給系に異常が発生したと判定し、前記判定値が異常閾値以下であれば、燃料供給系の異常はないと判定する。燃料供給系に異常が生じると、燃料の供給が適切に行われないので、排気通路４３で検出されるリーン状態またはリッチ状態が解消されなくなり、噴射量補正値は絶対値の大きな値をとり続ける。それに応じて、ショートタイム学習値が大きな絶対値をとるようになり、さらにはロングタイム学習値も大きな絶対値をとるようになる。それによって、判定値が異常閾値を超えて、燃料供給系の異常判定に至る。加速時や減速時において噴射量補正値が一時的に大きな値をとっても、ショートタイム学習値またはロングタイム学習値に直ちに影響することはない。そのため、エンジン状態の短期的な変動による影響を排除して、燃料供給系の異常判定を適切に行える。
【００４６】
燃料供給系の異常の例は、燃料配管４６の異常、燃料ポンプ４７の異常、燃圧レギュレータ４８の異常、燃料噴射弁２５の異常などである。いずれの異常も上記判定値を監視することによって検出できる。
異常判定部６３は、燃料供給系に異常が生じていると判定すると、異常判定通知を通知制御部６４に与える。これを受けて、通知制御部６４は、ライダーに異常を通知するための制御を実行する。具体的には、表示パネル１４に備えられたインジケータ１４ａを点灯させて、ライダーに異常発生を通知する。
【００４７】
図４は、ＥＣＵ５０による処理の概要を説明するためのフローチャートである。メインスイッチ１６が導通されてＥＣＵ５０に電力が供給されると、噴射量補正値Ｃおよびショートタイム学習値Ｓがそれぞれ初期値（たとえば零）に初期化される（ステップＳ１，Ｓ２）。その一方で、ロングタイム学習値Ｌには、不揮発性メモリ５２Ｎに格納されている値がロードされる（ステップＳ３）。この値は、前回の運転時におけるロングタイム学習値Ｌの演算結果である。すなわち、ショートタイム学習値Ｓに関しては前回運転時の学習結果が引き継がれないのに対して、ロングタイム学習値Ｌに関しては前回運転時の学習結果を引き継いでその学習演算が開始される。
【００４８】
ライダーによってエンジン４の始動操作が行われてエンジン４が始動すると（ステップＳ４）、ＥＣＵ５０は、フィードフォワード噴射量を演算し（ステップＳ５）、さらに中断条件が満たされているかどうかを判断する（ステップＳ６）。始動操作とは、スタータモータ２８を作動させるためのスタータースイッチの操作、キックスターターレバーの操作などである。中断条件は、前述のとおりであり、酸素センサ３３の出力信号をフィードバックして燃料噴射量を制御するフィードバック制御を中断すべき条件である。
【００４９】
中断条件が不成立なら（ステップＳ６：ＮＯ）、ＥＣＵ５０は、噴射量補正値Ｃ、ショートタイム学習値Ｓ、ロングタイム学習値Ｌをそれぞれ演算する（ステップＳ７，Ｓ８，Ｓ９）。中断条件が成立する場合には（ステップＳ６：ＹＥＳ）、ＥＣＵ５０は、噴射量補正値Ｃに零を代入して従前の噴射量補正値Ｃを無効化し（ステップＳ１０）、かつ噴射量補正値Ｃの演算（ステップＳ７）を省いて、ショートタイム学習値Ｓおよびロングタイム学習値Ｌを演算する（ステップＳ８，Ｓ９）。
【００５０】
そして、ＥＣＵ５０は、フィードフォワード噴射量（ＦＦ）、噴射量補正値Ｃ、ショートタイム学習値Ｓおよびロングタイム学習値Ｌの和を求め、それを燃料噴射量のための制御値とする（ステップＳ１１）。中断条件が成立するときには、噴射量補正値Ｃが零になるので、フィードバック補正量は、実質的にショートタイム学習値Ｓおよびロングタイム学習値Ｌの和となる。したがって、制御値は、実質的に、フィードフォワード噴射量（ＦＦ）、ショートタイム学習値Ｓおよびロングタイム学習値Ｌの和となる。こうして求められた制御値を用いて、ＥＣＵ５０は、燃料噴射弁２５の噴射時間（すなわち燃料噴射量）を制御する（ステップＳ１２）。
【００５１】
ＥＣＵ５０は、さらに、ショートタイム学習値Ｓおよびロングタイム学習値Ｌの和の絶対値を求めて、燃料供給系異常判定のための判定値とする。ＥＣＵ５０は、その判定値を異常閾値ＴＨと大小比較する（ステップＳ１３）。判定値が異常閾値ＴＨを超えているときには（ステップＳ１３：ＹＥＳ）、ＥＣＵ５０は、インジケータ１４ａを点灯させ、ライダーに対して警告を発生する（ステップＳ１４）。判定値が異常閾値ＴＨ以下であれば（ステップＳ１３：ＮＯ）、ステップＳ１４が省かれ、インジケータ１４ａは消灯状態に保持される。
【００５２】
ＥＣＵ５０は、さらに、エンジンストールが生じたかどうかを判断する（ステップＳ１５）。エンジンストールが生じたときには（ステップＳ１５：ＹＥＳ）、燃料噴射量が一時的に不適切な値となった可能性があるので、ＥＣＵ５０は、噴射量補正値Ｃおよびショートタイム学習値Ｓを零に初期化する（ステップＳ１６，Ｓ１７）。ロングタイム学習値Ｌは、短期的な影響をほとんど受けないので、エンジンストールの際にも値が保持される。
【００５３】
ＥＣＵ５０は、メインスイッチ１６が遮断されたかどうかを判断し（ステップＳ１８）、メインスイッチ１６が遮断されれば（ステップＳ１８：ＹＥＳ）、所定の終了処理を実行して電源を遮断する。メインスイッチ１６が遮断されず、電力の供給が継続していれば（ステップＳ１８：ＮＯ）、所定の制御周期（たとえば０．５秒）毎に（ステップＳ１９）、ステップＳ５からの処理を繰り返し実行する。エンジンストールの後は、エンジン４の始動（ステップＳ４）を経て、ステップＳ５からの処理が制御周期ごとに繰り返される。
【００５４】
図５は、噴射量補正値Ｃの演算処理（噴射量補正値演算部６６の演算動作）を説明するためのフローチャートである。噴射量補正値演算部６６は、酸素センサ３３の出力がリッチ信号かリーン信号かを判定する（ステップＳ３１）。
リッチ信号のときは、噴射量補正値演算部６６は、酸素センサ３３の出力がリッチ信号となってから最初の制御周期かどうかを判断する（ステップＳ３２）。最初の制御周期であれば（ステップＳ３２：ＹＥＳ）、次式(1)に示すように、今回の制御周期ｎ（ｎは自然数）の噴射量補正値Ｃ(n)に対して、前回の制御周期ｎ−１の噴射量補正値Ｃ(n-1)からスキップ変量Δｓ（ただし、Δｓ＞０）を減じた値が代入される（ステップＳ３３）。エンジン４が始動された直後の制御周期では、噴射量補正値Ｃ(1)，Ｃ(0)がいずれも零であるので、Ｃ(1)＝−Δｓとなる。ただし、エンジン始動直後には次式を適用せずに、噴射量補正値Ｃ(1)＝０としてもよい。
【００５５】
Ｃ(n)＝Ｃ(n-1)−Δｓ    …(1)
酸素センサ３３の出力がリッチ信号となってから２回目以降の制御周期であれば（ステップＳ３２：ＮＯ）、次式(2)に示すように、今回の制御周期ｎの噴射量補正値Ｃ(n)に対して、前回の制御周期ｎ−１の噴射量補正値Ｃ(n-1)から一定の補正変量Δ（ただし、０＜Δ＜Δｓ）を減じた値が代入される（ステップＳ３４）。
【００５６】
Ｃ(n)＝Ｃ(n-1)−Δ    …(2)
一方、酸素センサ３３の出力がリーン信号であるときは（ステップＳ３１）、噴射量補正値演算部６６は、酸素センサ３３の出力がリーン信号となってから最初の制御周期かどうかを判断する（ステップＳ３５）。最初の制御周期であれば（ステップＳ３５：ＹＥＳ）、次式(3)に示すように、今回の制御周期ｎの噴射量補正値Ｃ(n)に対して、前回の制御周期ｎ−１の噴射量補正値Ｃ(n-1)にスキップ変量Δｓを加えた値が代入される（ステップＳ３６）。エンジン４が始動された直後の制御周期では、噴射量補正値Ｃ(1)，Ｃ(0)がいずれも零であるので、Ｃ(1)＝＋Δｓとなる。ただし、エンジン始動直後には次式を適用せずに、噴射量補正値Ｃ(1)＝０としてもよい。
【００５７】
Ｃ(n)＝Ｃ(n-1)＋Δｓ    …(3)
酸素センサ３３の出力がリーン信号となってから２回目以降の制御周期であれば（ステップＳ３５：ＮＯ）、次式(4)に示すように、今回の制御周期ｎの噴射量補正値Ｃ(n)に対して、前回の制御周期ｎ−１の噴射量補正値Ｃ(n-1)に一定の補正変量Δを加えた値が代入される（ステップＳ３７）。
【００５８】
Ｃ(n)＝Ｃ(n-1)＋Δ    …(4)
こうして、制御周期毎に、補正変量Δまたはスキップ変量Δｓだけ変動するように噴射量補正値Ｃが求められる。求められた補正値Ｃは、揮発性メモリ５２Ｖに書き込まれる（ステップＳ３８）。したがって、噴射量補正値Ｃは、メインスイッチ１６が遮断されてＥＣＵ５０への電力供給が停止されると、その値が失われる。
【００５９】
図６は、噴射量補正値Ｃの変動例を説明するためのタイムチャートである。酸素センサ３３の出力がリーン信号である期間には、噴射量補正値Ｃは、制御周期毎に補正変量Δずつ増加していく。これによって、燃焼室２６に供給される混合気中の燃料比率が高まるので、酸素センサ３３の出力はやがてリッチ信号に反転する。すると、噴射量補正値Ｃはスキップ変量Δｓだけ減少させられる（スキップ）。酸素センサ３３の出力がリッチ信号である期間には、噴射量補正値Ｃは、制御周期毎に補正変量Δずつ減少していく。これによって、燃焼室２６に供給される混合気中の燃料比率が低くなっていくので、酸素センサ３３の出力はやがてリーン信号に反転する。すると、噴射量補正値Ｃはスキップ変量Δｓだけ増加させられる（スキップ）。
【００６０】
図７は、ショートタイム学習値Ｓのための学習処理（ショートタイム学習値演算部６７の演算動作）を説明するためのフローチャートである。ショートタイム学習値演算部６７は、酸素センサ３３の出力を用いた燃料噴射量のフィードバック制御、すなわち噴射量補正値Ｃの更新が中断しているかどうかを判断する（ステップＳ４１）。フィードバック制御が中断していなければ（ステップＳ４１：ＮＯ）、ショートタイム学習値演算部６７は、さらに、噴射量補正値Ｃの絶対値が高速学習閾値（＞０）を超えているかどうかを判断する（ステップＳ４２）。
【００６１】
噴射量補正値Ｃの絶対値が高速学習閾値を超えているときには（ステップＳ４２：ＹＥＳ）、ショートタイム学習値演算部６７は、噴射量補正値Ｃの符号に応じて、ショートタイム学習値Ｓを更新する。具体的には、噴射量補正値Ｃが正ならば（ステップＳ４３：ＹＥＳ）、次式(5)に示すように、今制御周期ｎのショートタイム学習値Ｓ(n)に対して、前制御周期ｎ−１のショートタイム学習値Ｓ(n-1)に高速学習更新量ＳＨＵ（ただし、ＳＨＵ＞０）を加算した値が代入される（ステップＳ４４）。エンジン４が始動された直後の制御周期では、ショートタイム学習値Ｓ(1)，Ｓ(0)がいずれも零であるので、Ｓ(1)＝＋ＳＨＵとなる。ただし、エンジン始動直後には次式を適用せずに、ショートタイム学習値Ｓ(1)＝０としてもよい。
【００６２】
Ｓ(n)＝Ｓ(n-1)＋ＳＨＵ    …(5)
噴射量補正値Ｃが負の値ならば（ステップＳ４５：ＹＥＳ）、次式(6)に示すように、今制御周期ｎのショートタイム学習値Ｓ(n)に対して、前制御周期ｎ−１のショートタイム学習値Ｓ(n-1)から高速学習更新量ＳＨＵを減算した値が代入される（ステップＳ４６）。エンジン４が始動された直後の制御周期では、ショートタイム学習値Ｓ(1)，Ｓ(0)がいずれも零であるので、Ｓ(1)＝−ＳＨＵとなる。ただし、エンジン始動直後には次式を適用せずに、ショートタイム学習値Ｓ(1)＝０としてもよい。
【００６３】
Ｓ(n)＝Ｓ(n-1)−ＳＨＵ    …(6)
噴射量補正値Ｃが零であれば（ステップＳ４３，Ｓ４５でいずれもＮＯ）、今制御周期ｎのショートタイム学習値Ｓ(n)に前制御周期のショートタイム学習値Ｓ(n-1)が代入され（ステップＳ４７）、従前のショートタイム学習値が維持される。
高速学習更新量ＳＨＵは比較的大きな正の値に設定されている。そのため、酸素センサ３３のフィードバックによって絶対値が大きな噴射量補正値Ｃが設定されているときには、ショートタイム学習値Ｓの学習速度を速めることができる。それによって、噴射量補正値Ｃの絶対値を速やかに減少させることができる。
【００６４】
噴射量補正値Ｃが高速学習閾値以下のときには（ステップＳ４２：ＮＯ）、ショートタイム学習値演算部６７は、直前の２回のスキップ直後の噴射量補正値Ｃの相加平均値ＡＶの符号に応じて、ショートタイム学習値Ｓを更新する。より具体的には、ショートタイム学習値演算部６７は、スキップが生じると、そのスキップ後の噴射量補正値Ｃと、その一回前のスキップ後の噴射量補正値Ｃとの相加平均値ＡＶを求める（図６参照）。この２回のスキップの間に、排気通路４３内の酸素濃度を目標値にすることができる制御値（適値）が存在する。したがって、相加平均値ＡＶを用いることによって、噴射量補正値Ｃが零に近づくように、ショートタイム学習値Ｓを更新することができる。具体的には、相加平均値ＡＶが正ならば（ステップＳ４８：ＹＥＳ）、次式(7)に示すように、今制御周期のショートタイム学習値Ｓ(n)に対して、前制御周期のショートタイム学習値Ｓ(n-1)にショートタイム学習更新量ＳＵを加算した値が代入される（ステップＳ４９）。ただし、０＜ＳＵ＜ＳＨＵである。また、ＳＵ＜Δ（噴射量補正値の補正変量）である。エンジン４が始動された直後の制御周期では、ショートタイム学習値Ｓ(1)，Ｓ(0)がいずれも零であるので、Ｓ(1)＝＋ＳＵとなる。ただし、エンジン始動直後には次式を適用せずに、ショートタイム学習値Ｓ(1)＝０としてもよい。
【００６５】
Ｓ(n)＝Ｓ(n-1)＋ＳＵ    …(7)
一方、相加平均値ＡＶが負ならば（ステップＳ５０：ＹＥＳ）、次式(8)に示すように、今制御周期のショートタイム学習値Ｓ(n)に対して、前制御周期のショートタイム学習値Ｓ(n-1)からショートタイム学習更新量ＳＵを減算した値が代入される（ステップＳ５１）。エンジン４が始動された直後の制御周期では、ショートタイム学習値Ｓ(1)，Ｓ(0)がいずれも零であるので、Ｓ(1)＝−ＳＵとなる。ただし、エンジン始動直後には次式を適用せずに、ショートタイム学習値Ｓ(1)＝０としてもよい。
【００６６】
Ｓ(n)＝Ｓ(n-1)−ＳＵ    (8)
相加平均値ＡＶが零であれば（ステップＳ４８，Ｓ５０でいずれもＮＯ）、今制御周期のショートタイム学習値Ｓ(n)に前制御周期のショートタイム学習値Ｓ(n-1)が代入され（ステップＳ５２）、従前のショートタイム学習値が維持される。
一方、フィードバック制御が中断しているときには（ステップＳ４１：ＹＥＳ）、ショートタイム学習値演算部６７は、フィードバック制御中断からの経過時間が所定の保持時間（たとえば３００秒程度）未満かどうかを判断する（ステップＳ５３）。経過時間が保持時間未満であれば（ステップＳ５３：ＹＥＳ）、今制御周期のショートタイム学習値Ｓ(n)に前制御周期のショートタイム学習値Ｓ(n-1)が代入され（ステップＳ５４）、従前のショートタイム学習値Ｓが維持される。
【００６７】
経過時間が保持時間以上になると（ステップＳ５３：ＮＯ）、ショートタイム学習値演算部６７は、ショートタイム学習値Ｓの絶対値を減衰量Ａ（ただし、Ａ＞０）ずつ減じる処理を実行する。
具体的には、前制御周期のショートタイム学習値Ｓ(n-1)が正であれば（ステップＳ５５）、ショートタイム学習値演算部６７は、今制御周期のショートタイム学習値Ｓ(n)に、前制御周期のショートタイム学習値Ｓ(n-1)から減衰量Ａを減じた値を代入する（ステップＳ５６）。一方、前制御周期のショートタイム学習値Ｓ(n-1)が負であれば（ステップＳ５７）、ショートタイム学習値演算部６７は、今制御周期のショートタイム学習値Ｓ(n)に、前制御周期のショートタイム学習値Ｓ(n-1)に減衰量Ａを加えた値を代入する（ステップＳ５８）。前制御周期のショートタイム学習値Ｓ(n-1)が零であれば（ステップＳ５４，Ｓ５６でいずれもＮＯ）、ショートタイム学習値演算部６７は、今制御周期のショートタイム学習値Ｓ(n)に、前制御周期のショートタイム学習値Ｓ(n-1)（＝０）を代入する（ステップＳ５４）。
【００６８】
こうして求められたショートタイム学習値Ｓ(n)は、揮発性メモリ５２Ｖに格納される（ステップＳ５９）。したがって、ショートタイム学習値Ｓ(n)は、メインスイッチ１６が遮断されてＥＣＵ５０への電力供給が停止されると、その値が失われる。
このように、ショートタイム学習値Ｓは、噴射量補正値Ｃを零に導くように更新されていくので、学習が進むに従って、噴射量補正値Ｃがショートタイム学習値Ｓへと移行していく。また、フィードバック制御が中断している間は、所定の保持時間は従前のショートタイム学習値Ｓが保持され、その後にショートタイム学習値Ｓが減衰していく。それによって、短時間のフィードバック制御中断のときには、ショートタイム学習値Ｓを維持できるので、フィードバック制御中断からの復帰時に適切な燃料噴射制御を再開できる。また、所定の保持時間を超えてフィードバック制御が中断するときには、ショートタイム学習値が徐々に減衰していくので、中断時間に応じた割合でショートタイム学習値を保持できる。したがって、フィードバック制御中断からの復帰時に、妥当な割合でショートタイム学習値を燃料噴射制御に反映することができる。
【００６９】
図８は、ロングタイム学習値Ｌのための学習処理（ロングタイム学習値演算部６８の演算動作）を説明するためのフローチャートである。ロングタイム学習値演算部６８は、ショートタイム学習値Ｓの符号に応じて、ロングタイム学習値Ｌを更新する。具体的には、ショートタイム学習値Ｓが正の値ならば（ステップＳ６１：ＹＥＳ）、次式(9)に示すように、今制御周期のロングタイム学習値Ｌ(n)に対して、前制御周期のロングタイム学習値Ｌ(n-1)にロングタイム学習更新量ＬＵ（ただし、０＜ＬＵ＜ＳＵ）を加算した値が代入される（ステップＳ６２）。エンジン４が始動された直後の制御周期では、ロングタイム学習値Ｌ(0)として不揮発性メモリ５２Ｎから前回運転時の値がロードされるので、Ｌ(1)＝（前回運転時の値）＋ＬＵとなる。ただし、エンジン始動直後には次式を適用せずに、ロングタイム学習値Ｌ(1)＝Ｌ(0)＝（前回運転時の値）としてもよい。
【００７０】
Ｌ(n)＝Ｌ(n-1)＋ＬＵ    …(9)
一方、ショートタイム学習値Ｓが負の値ならば（ステップＳ６３：ＹＥＳ）、次式(10)に示すように、今制御周期のロングタイム学習値Ｌ(n)に対して、前制御周期のロングタイム学習値Ｌ(n-1)からロングタイム学習更新量ＬＵを減算した値が代入される（ステップＳ６４）。エンジン４が始動された直後の制御周期では、ロングタイム学習値Ｌ(0)として不揮発性メモリ５２Ｎから前回運転時の値がロードされるので、Ｌ(1)＝（前回運転時の値）−ＬＵとなる。ただし、エンジン始動直後には、次式を適用せずに、ロングタイム学習値Ｌ(1)＝Ｌ(0)＝（前回運転時の値）としてもよい。
【００７１】
Ｌ(n)＝Ｌ(n-1)−ＬＵ    …(10)
ショートタイム学習値Ｓが零であれば（ステップＳ６１，Ｓ６３でいずれもＮＯ）、今制御周期ｎのロングタイム学習値Ｌ(n)に前制御周期のロングタイム学習値Ｌ(n-1)が代入され（ステップＳ６５）、従前のロングタイム学習値が維持される。エンジン始動直後であれば、前回運転時のロングタイム学習値がそのまま用いられる。
【００７２】
こうして求められたロングタイム学習値Ｌ(n)は、不揮発性メモリ５２Ｎに格納される。したがって、ロングタイム学習値Ｌ(n)は、メインスイッチ１６が遮断されてＥＣＵ５０への電力供給が停止されても、その値が保持され、次回のエンジン４の始動時に学習に引き継がれる。
なお、ロングタイム学習値Ｌを揮発性メモリ５２Ｖに格納しながら、ロングタイム学習値Ｌの学習演算を行ってもよい。そして、メインスイッチ１６が遮断されたことに応答して、ＥＣＵ５０が不揮発性メモリ５２Ｎにロングタイム学習値Ｌを書き込んでもよい。より具体的には、メインスイッチ１６に並列にリレーを設けて、このリレーをＥＣＵ５０によって制御すればよい。これにより、メインスイッチ１６が遮断されても、ＥＣＵ５０は電源を自己保持できる。そこで、メインスイッチ１６が遮断されたことに応答して、ＥＣＵ５０は、電源を自己保持しながら、ロングタイム学習値Ｌを不揮発性メモリ５２Ｎに書き込み、その後に、リレーを遮断すればよい。噴射量補正値Ｃおよびショートタイム学習値Ｓについては、不揮発性メモリ５２Ｎへの書き込みを要しない。
【００７３】
以上のように、この実施形態の構成によれば、燃料噴射量の制御値は、フィードフォワード噴射量およびフィードバック補正量の和であり、フィードバック補正量は、噴射量補正値Ｃ、ショートタイム学習値Ｓおよびロングタイム学習値Ｌの和によって求められる。噴射量補正値Ｃは、排気通路４３内の酸素濃度に応答する酸素センサ３３の出力に基づいて求められるので、エンジン４の排気の状態に応じて速やかに変動する。ショートタイム学習値Ｓは、噴射量補正値Ｃに基づいてショートタイム学習速度で更新される。ショートタイム学習速度は、具体的には、ショートタイム学習値Ｓが更新される周期とショートタイム学習更新量ＳＵとの積で定義される。ロングタイム学習値Ｌは、ショートタイム学習値Ｓに基づいてロングタイム学習速度で更新される。ロングタイム学習速度は、具体的には、ロングタイム学習値Ｌが更新される周期とロングタイム学習更新量ＬＵとの積で定義される。ショートタイム学習速度は、ロングタイム学習速度よりも速い。すなわち、ショートタイム学習値Ｓは、ロングタイム学習値Ｌよりも速く変動する。
【００７４】
したがって、噴射量補正値Ｃは、ショートタイム学習速度に応じてショートタイム学習値Ｓへと徐々に移行していき、ショートタイム学習値Ｓはロングタイム学習速度に応じてロングタイム学習値Ｌへと徐々に移行していく。それによって、エンジン状態の長期的な変動の影響はロングタイム学習値Ｌによって吸収され、エンジン状態の中期的な変動の影響はショートタイム学習値Ｓによって吸収され、エンジン状態の短期的な変動の影響は噴射量補正値Ｃによって吸収されることになる。
【００７５】
これにより、噴射量補正値Ｃの更新が一時的に中断されても、ショートタイム学習値Ｓおよびロングタイム学習値Ｌを用いることによって、エンジン４の状態に応じた適切な燃料噴射量を設定できる。また、噴射量補正値Ｃの更新中断からの復帰時においても、噴射量補正値Ｃは短期的な変動の影響を吸収すればよいので、速やかに適切な燃料噴射量を設定できる。これによって、燃費を向上することができ、排気中の空燃比が理論空燃比に近い状態を保持できるので、触媒４５による排気浄化機能を促進でき、それによって、排気の清浄度を高めることができる。
【００７６】
一方、エンジン４の始動時には、前回運転時のロングタイム学習値Ｌが引き継がれるのに対して、ショートタイム学習値Ｓは前回運転時の値が引き継がれない。これにより、ショートタイム学習の影響が恒久化されないので、仮にその学習速度を比較的大きく設定したとしても、すなわち、ショートタイム学習更新量ＳＵを比較的大きくしても、次回の運転に悪影響を及ぼすことがない。また、ショートタイム学習値Ｓを設けることによって、ロングタイム学習値Ｌの学習速度を充分に遅くすることができる。そこで、ロングタイム学習更新量ＬＵを比較的小さな値に設定し、ロングタイム学習値Ｌの学習速度を充分に遅くすることにより、エンジン状態の中期的な変動がロングタイム学習値Ｌに及ぼす影響を低減できる。また、ロングタイム学習値Ｌが次回の運転に引き継がれることから、エンジン４の始動時にも、噴射量補正値Ｃが非常に大きい値となることを回避できる。それによって、フィードバック制御開始前、あるいは、噴射量補正値が一時的に中断されて噴射量補正値がリセットされるオープンループ制御の状態においても適切な燃料噴射制御を実現できる。
【００７７】
ショートタイム学習値Ｓは噴射量補正値Ｃが零に近づくように更新されるので、噴射量補正値Ｃはショートタイム学習値Ｓへと移行していく。また、ロングタイム学習値Ｌはショートタイム学習値Ｓが零に近づくように更新されるので、ショートタイム学習値Ｓはロングタイム学習値Ｌへと移行していく。それによって、学習が進むに従い、噴射量補正値Ｃが零に近づいていくので、フィードバック制御開始前、あるいは、噴射量補正値が一時的に中断されて噴射量補正値がリセットされるオープンループ制御の状態においても燃料噴射制御を適切に行える。
【００７８】
また、この実施形態では、酸素センサ３３の出力を用いたフィードバック制御が中断されると、ショートタイム学習値Ｓおよびロングタイム学習値Ｌの和をフィードバック補正量として燃料噴射量の制御値を演算するオープンループ制御となる。ショートタイム学習値Ｓは、エンジン状態の中期的な変動を吸収した値であるので、ロングタイム学習値Ｌだけをオープンループ制御時のフィードバック補正量として用いる場合に比較して、適切な燃料噴射制御を行うことができる。また、オープンループ制御からフィードバック制御に復帰するときも、噴射量補正値Ｃはエンジン状態の短期的な変動の影響を吸収すればよいので、その絶対値は小さくてよい。したがって、フィードバック制御からの復帰時には、迅速に、適切な燃料噴射制御を実現できる。
【００７９】
さらに、この実施形態では、エアインダクション動作中および燃料カット中に、フィードバック制御が中断される。エアインダクション動作中における排気通路４３内の酸素濃度は、エンジン４に供給される混合気の空燃比を反映していないので、フィードバック制御を中断するのが適切である。また、燃料噴射量を零にする燃料カット中にフィードバック制御を中断することにより、燃料噴射再開時に燃料カットの影響が現れることを回避できる。
【００８０】
また、この実施形態では、噴射量補正値Ｃが高速学習閾値よりも大きいときは、ショートタイム学習値Ｓの学習速度が速められる。具体的には、ショートタイム学習値Ｓが更新される制御周期と高速学習更新量ＳＨＵとの積で表される高速ショートタイム学習速度でショートタイム学習値Ｓが更新される。これにより、噴射量補正値Ｃの値を速やかに小さくすることができるので、適切な燃料噴射制御を早期に実現できる。すなわち、噴射量補正値Ｃをショートタイム学習値Ｓに速く移行させることができるので、フィードバック制御中断時におけるオープンループ制御の際などに、適切な燃料噴射量を設定できる。
【００８１】
エンジン始動直後には、ショートタイム学習値Ｓは初期値となるので、噴射量補正値Ｃは、エンジン４の中期的な変動の影響をも吸収するために大きな値となる。このような場合に、ショートタイム学習値Ｓが高速に更新される。それによって、適切な燃料噴射制御を速やかに行える。
また、この実施形態では、ショートタイム学習値Ｓおよびロングタイム学習値Ｌとの和の絶対値が異常判定値とされ、この異常判定値が異常閾値ＴＨを超えると、燃料供給系に異常が生じていると判定され、インジケータ１４ａが点灯する。これにより、ライダーに燃料供給系の異常を通知できる。異常判定値が、ショートタイム学習値Ｓおよびロングタイム学習値Ｌの和の絶対値であるので、中期的および長期的なエンジン状態の変動に基づいて、燃料供給系の異常を判定できる。一方、噴射量補正値Ｃを異常判定のために用いていないので、エンジン状態の短期的な変動の影響を排除しながら異常判定を行うことができるので、誤判定の確率を低減できる。しかも、ショートタイム学習値Ｓの学習速度は比較的速いので、燃料供給系に異常が生じたときには、速やかに異常判定を行うことができる。また、ショートタイム学習値Ｓの学習速度が速いので、ロングタイム学習値Ｌの学習速度は充分に低速にしておくことができる。それによって、燃料噴射制御の安定性を損なうことなく、燃料供給系の異常判定を適切に行うことができる。また、ショートタイム学習値Ｓは、エンジン４の始動時に前回値が引き継がれないので、仮に、一時的な事象のためにショートタイム学習値Ｓが大きくなったとしても、次回の運転時には引き継がれない。それによって、燃料供給系の異常判定および燃料噴射制御をいずれも適切に行うことができる。
【００８２】
図９は、この発明の第２の実施形態に係る燃料噴射装置が適用された車両の電気的構成を説明するためのブロック図である。この第２の実施形態の説明において、前述の図１〜図８を再び参照する。図９に示された構成は、前述の図３の構成に代えて用いられる。図９において、図３に示された各部の対応部分に同一参照符号を付し、説明を省略する。
この実施形態では、ＥＣＵ５０の演算部５１は、機能処理部として、点火制御部６１と、噴射量制御部６２と、異常判定部６３と、通知制御部６４と、アイドル停止部７３と、再始動部７４とを含む。アイドル停止部７３は、所定のアイドル停止条件が充足されるとエンジン４を自動停止させる。再始動部７４は、アイドル停止部７３によってエンジン４が自動停止させられた自動停止状態のときに、所定の再始動条件が充足されるとエンジン４を再始動する。
【００８３】
アイドル停止条件は、次の条件Ａ１〜Ａ５の全てが所定時間（たとえば３秒間）継続することであってもよい。
Ａ１：スロットル開度が全閉開度。
Ａ２：車速が所定値（たとえば３km/h）以下。
Ａ３：エンジン回転速度がアイドル回転速度域（たとえば２５００ｒｐｍ以下）。
【００８４】
Ａ４：エンジン温度が所定値（たとえば６０℃）以上。
Ａ５：バッテリ１５の残量が所定値以上。
再始動条件は、スロットル開度が所定開度以上となったことであってもよい。したがって、ライダーがアクセルグリップ１３を操作することによって、エンジン４のクランキングを開始させて、エンジン４を再始動させることができる。
【００８５】
アイドル停止部７３によってエンジン４が自動停止したときには、エンジンストールの場合とは異なり、燃料噴射量の制御値は適切な値であると考えられる。そこで、この実施形態では、アイドル停止部７３によってエンジン４が自動停止したときには、ショートタイム学習値Ｓが保持される。したがって、ショートタイム学習値演算部６７は、再始動部７４によってエンジン４が再始動されたとき、揮発性メモリ５２Ｖに格納されている従前のショートタイム学習値を引き継いで、学習動作を再開する。
【００８６】
図１０は、この実施形態におけるＥＣＵ５０の処理の概要を説明するためのフローチャートである。図１０において、前述の図４に示された各ステップと同様の処理が行われるステップに同一参照符号を付して、説明を省略する。
エンジン４が始動（ステップＳ４）した後、アイドル停止条件が充足されるかどうかが判断される（ステップＳ２１）。アイドル停止条件が充足されなければ（ステップＳ２１：ＮＯ）、ステップＳ５からの処理が実行される。アイドル停止条件が充足されると（ステップＳ２１：ＹＥＳ）、ＥＣＵ５０は、点火制御および燃料噴射制御を停止して、エンジン４を自動停止させる（ステップＳ２２）。その後は、再始動条件が充足されるかどうかが判断される（ステップＳ２３）。
【００８７】
再始動条件が充足されると（ステップＳ２３：ＹＥＳ）、ＥＣＵ５０は、スタータモータ２８に通電してエンジン４のクランキングを開始し、さらに点火制御および燃料噴射制御を再開して、エンジン４を再始動させる（ステップＳ２４）。その後、噴射量補正値Ｃは零にリセットされる（ステップＳ２５）。また、ショートタイム学習値Ｓは前回の運転時の値が揮発性メモリ５２Ｖからロードされて引き継がれる（ステップＳ２６）。さらに、ロングタイム学習値Ｌは前回の運転時の値が不揮発性メモリ５２Ｎからロードされて引き継がれる（ステップＳ２７）。
【００８８】
再始動条件が充足されなければ（ステップＳ２３：ＮＯ）、ＥＣＵ５０は、メインスイッチ１６が遮断されたかどうかを判断する（ステップＳ２８）。メインスイッチ１６が遮断されなければ（ステップＳ２８：ＮＯ）、再始動条件の成否が監視される（ステップＳ２３）。メインスイッチ１６が遮断されると（ステップＳ２８：ＹＥＳ）、ＥＣＵ５０は、所定の終了処理を実行して電源を遮断する。したがって、揮発性メモリ５２Ｖに保持されている噴射量補正値Ｃおよびショートタイム学習値Ｓの値は失われ、不揮発性メモリ５２Ｎに保持されているロングタイム学習値Ｌは、燃料噴射制御のために引き継がれる。
【００８９】
このように、この実施形態によれば、アイドル停止条件の充足によってエンジン４が自動停止されるので、燃費を向上できる。アイドル停止機能によってエンジン４が自動停止した場合には、揮発性メモリ５２Ｖに保持されているショートタイム学習値Ｓは、適切な値であると考えられる。そこで、アイドル停止機能によるエンジン自動停止状態からのエンジン再始動時には、従前のショートタイム学習値Ｓが引き継がれ、そのショートタイム学習値Ｓを用いて燃料噴射量のための制御値が求められる。それによって、エンジン再始動後の燃料噴射制御を、再始動直後から適切に行える。
【００９０】
一方、アイドル停止制御によってエンジン４が自動停止したのではなく、燃料噴射制御等が妥当でないためにエンジン４が停止してしまった場合には、従前のショートタイム学習値Ｓは、次回のエンジン始動時に引き継がれない（ステップＳ１４，Ｓ１６）。これにより、妥当でない可能性のある従前のショートタイム学習値Ｓを破棄して、適切な学習を新たに開始することができる。
【００９１】
以上、この発明の実施形態について説明してきたが、この発明は、さらに他の形態で実施することもできる。たとえば、前述の実施形態では、ショートタイム学習値Ｓは、揮発性メモリ５２Ｖに格納され、ＥＣＵ５０への電力供給が遮断されると消滅する。しかし、ショートタイム学習値Ｓを不揮発性メモリ５２Ｎに格納しても差し支えない。この場合には、電源投入後に最初にエンジン４が始動されるときに、ＥＣＵ５０は、従前のショートタイム学習値Ｓを零に初期化すればよい。
【００９２】
また、前述の実施形態では、主として、ショートタイム学習更新量ＳＵおよびロングタイム学習更新量ＬＵの設定によって、ショートタイム学習速度およびロングタイム学習速度が設定されている。しかし、学習更新量ＳＵ，ＬＵの設定に代えて、または学習更新量ＳＵ，ＬＵの設定とともに、それらの更新周期を設定することによっても、それらの学習速度を設定することができる。
【００９３】
さらに、前述の実施形態のようにして求められるショートタイム学習値Ｓに対して係数（定数または変数）を乗除して得られる値を「ショートタイム学習値」として用いてもよい。同様に、前述の実施形態のようにして求められるロングタイム学習値Ｌに対して係数（定数または変数）を乗除して得られる値を「ロングタイム学習値」として用いてもよい。さらに言えば、噴射量補正値、学習速度が速いショートタイム学習値、および学習速度が遅いロングタイム学習値の和を用いて燃料噴射量の制御値が演算されればよく、噴射量補正値、ショートタイム学習値およびロングタイム学習値の演算は、前述の実施形態の例に限定されない。
【００９４】
その他、特許請求の範囲に記載された事項の範囲で種々の設計変更を施すことが可能である。
【符号の説明】
【００９５】
１     自動二輪車
２     燃料タンク
３     乗車シート
４     エンジン
８     前輪
１０   後輪
１２   ハンドル
１３   アクセルグリップ
１４   表示パネル
１４ａ インジケータ
１５   バッテリ
１６   メインスイッチ
２５   燃料噴射弁
２６   燃焼室
２７   点火装置
２８   スタータモータ
２９   エアインダクションシステム
４０   スロットルバルブ
４１   吸気通路
４３   排気通路
４５   触媒
４６    燃料配管
４７    燃料ポンプ
４８    燃圧レギュレータ
５０   ＥＣＵ（エンジンコントローラ）
５１   演算部
５２   記憶部
５２Ｎ      不揮発性メモリ
５２Ｖ      揮発性メモリ
６０   フィードフォワード噴射量演算部
６１   点火制御部
６２   噴射量制御部
６３   異常判定部
６４   通知制御部
６５   フィードバック補正量演算部
６６   噴射量補正値演算部
６７   ショートタイム学習値演算部
６８   ロングタイム学習値演算部
６９   噴射量制御値演算部
７０   フィードバック制御中断部
７３   アイドル停止部
７４   再始動部
【図１】
0005623578.tif 000002
【図２】
0005623578.tif 000003
【図３】
0005623578.tif 000004
【図４】
0005623578.tif 000005
【図５】
0005623578.tif 000006
【図６】
0005623578.tif 000007
【図７】
0005623578.tif 000008
【図８】
0005623578.tif 000009
【図９】
0005623578.tif 000010
【図１０】
0005623578.tif 000011