(57)【要約】【課題】ポート噴射弁１６および筒内噴射弁２６を操作して空燃比フィードバック制御がなされているときのフィードバック操作量に基づき学習値を高精度に更新することができるようにした内燃機関の空燃比制御装置を提供する。【解決手段】筒内噴射弁２６のみから燃料を噴射しつつ空燃比フィードバック制御をしているときに、フィードバック操作量に基づき筒内噴射弁２６用の学習値を更新し、フィードバック操作量によるベース噴射量の補正率が所定比率以下となることにより、学習値が収束した旨判定する。ポート噴射弁１６および筒内噴射弁２６の双方から燃料が噴射される場合、筒内噴射弁２６用の学習値が収束していることと、ポート噴射弁１６による燃料の噴射割合が規定値以上であることとを条件として、ポート噴射弁１６用の学習値を更新する。【選択図】図１
2018003836.tif 000002
【特許請求の範囲】
【請求項１】
吸気通路に燃料を噴射するポート噴射弁および燃焼室に燃料を噴射する筒内噴射弁のいずれか一方である第１噴射弁および他方である第２噴射弁の双方を備えた内燃機関を制御対象とし、
空燃比を目標値に開ループ制御するためのベース噴射量を設定する開ループ処理部と、
前記空燃比の検出値を前記目標値にフィードバック制御するためのフィードバック操作量を算出するフィードバック処理部と、
前記内燃機関の燃焼室に燃料を供給するために、前記フィードバック操作量および第１噴射弁用の学習値によって補正された前記ベース噴射量に基づく前記第１噴射弁の操作、および前記フィードバック操作量および第２噴射弁用の学習値によって補正された前記ベース噴射量に基づく前記第２噴射弁の操作の少なくとも一方を実行する操作処理部と、
前記操作処理部が前記第１噴射弁のみを操作しているときに、前記第１噴射弁用の前記学習値を、前記フィードバック操作量に基づき更新する第１更新処理部と、
前記第１更新処理部によって前記第１噴射弁用の前記学習値が更新されているときに、前記フィードバック操作量による前記ベース噴射量の補正率が所定比率以下となることを条件に、前記第１噴射弁用の前記学習値が収束したと判定する第１判定処理部と、
前記操作処理部が前記第１噴射弁および前記第２噴射弁の双方を操作しているときに、前記第２噴射弁用の前記学習値を、前記フィードバック操作量に基づき更新する第２更新処理部と、を備え、
前記第２更新処理部は、前記第１判定処理部によって前記第１噴射弁用の前記学習値が収束していると判定されて且つ前記第１噴射弁および前記第２噴射弁の総噴射量に対する前記第２噴射弁から噴射される燃料量の割合である噴き分け率が規定値以上であることを条件に、前記第２噴射弁用の前記学習値を更新し、前記第１判定処理部によって前記第１噴射弁用の前記学習値が収束していると判定されている場合であっても前記噴き分け率が前記規定値未満である場合、前記第２噴射弁用の前記学習値を更新しない内燃機関の空燃比制御装置。
【請求項２】
前記第１噴射弁用の学習値は、前記内燃機関の吸入空気量の値に応じて区分された複数の学習領域毎に更新されるものであり、
前記操作処理部は、前記複数の学習領域のうちのいずれかの前記学習領域において前記第１噴射弁および前記第２噴射弁の双方を操作しているとき、当該学習領域における前記第１噴射弁用の前記学習値に基づき、前記第１噴射弁を操作するものであり、
前記第１判定処理部による判定対象となる前記学習値は、前記第１更新処理部によって前記第１噴射弁用の前記学習値が更新されているときの前記吸入空気量を含む前記学習領域における前記第１噴射弁用の前記学習値であり、
前記第２更新処理部が前記第２噴射弁用の前記学習値を更新する条件である、前記第１噴射弁用の前記学習値が収束していると判定されている旨の条件は、前記複数の前記学習領域のうち前記第２噴射弁用の前記学習値を更新するときの前記吸入空気量を含む前記学習領域における前記第１噴射弁用の前記学習値が前記第１判定処理部によって収束していると判定されている旨の条件を含む請求項１記載の内燃機関の空燃比制御装置。
【請求項３】
前記複数の学習領域のうち、前記吸入空気量の大きさが隣り合うもの同士の間には、前記第１噴射弁用の前記学習値の更新が禁止される学習禁止領域が設けられており、
前記複数の学習領域のそれぞれには、当該学習領域内の特定の吸入空気量の値を有した代表点が設定されており、
前記学習禁止領域は、隣接する前記学習領域との境界と当該学習領域における前記代表点との幅よりも広い領域であり、
前記操作処理部は、前記第１噴射弁および前記第２噴射弁の双方を操作しているときの前記吸入空気量が互いに隣り合う一対の前記代表点の間の値である場合、前記一対の前記代表点のそれぞれを含む前記学習領域における前記第１噴射弁用の前記学習値の加重移動平均処理によって得られた学習値に基づき前記第１噴射弁を操作するものであり、
前記加重移動平均処理は、前記双方を操作しているときの前記吸入空気量に近い前記代表点に対応する重み係数を遠い前記代表点に対応する重み係数よりも大きくするものであり、
前記加重移動平均処理によって得られた前記学習値に基づき前記第１噴射弁が操作されて且つ、前記加重移動平均処理に用いられる前記学習値に対応する２つの前記学習領域のうちの一方が前記第２噴射弁用の前記学習値を更新するときの吸入空気量を含んで他方が含まない場合、前記第２更新処理部が前記第２噴射弁用の前記学習値を更新する条件である、前記第１噴射弁用の前記学習値が収束していると判定されている旨の条件には、前記他方の前記学習領域における前記第１噴射弁用の前記学習値が前記第１判定処理部によって収束していると判定されている旨の条件が含まれない請求項２記載の内燃機関の空燃比制御装置。
【請求項４】
前記第２更新処理部によって前記第２噴射弁用の前記学習値が更新されているときに、前記フィードバック操作量による前記ベース噴射量の補正率が前記所定比率以下となることを条件に、前記第２噴射弁用の前記学習値が収束したと判定する第２判定処理部を備え、
前記第２更新処理部は、
前記操作処理部が前記第２噴射弁のみを操作しているときであっても、前記第２噴射弁用の前記学習値を、前記フィードバック操作量に基づき更新するものであって、
前記操作処理部が前記第２噴射弁のみを操作しているときには、前記第２判定処理部によって前記第２噴射弁用の前記学習値が収束したと判定されている場合であっても、前記学習値を更新する処理を実行する一方、
前記操作処理部が前記第１噴射弁および前記第２噴射弁の双方を操作しているときには、前記第２判定処理部によって前記第２噴射弁用の前記学習値が収束したと判定されている場合、前記第２噴射弁用の前記学習値を更新しない請求項１〜３のいずれか１項に記載の内燃機関の空燃比制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、吸気通路に燃料を噴射するポート噴射弁および燃焼室に燃料を噴射する筒内噴射弁の双方を備えた内燃機関を制御対象とする内燃機関の空燃比制御装置に関する。
【背景技術】
【０００２】
空燃比を目標値とするための開ループ操作量であるベース噴射量に基づき燃料噴射弁を操作する場合、燃料噴射弁の噴射特性の基準となる特性に対するずれや、ベース噴射量の算出に用いた筒内吸入空気量と実際の筒内吸入空気量とのずれ等に起因して実際の空燃比が目標値からずれうる。これに対し、ベース噴射量による開ループ制御に加えてフィードバック制御を採用する場合、上記開ループ制御によって生じる空燃比と目標値とのずれ（ベース噴射量による空燃比制御の誤差）は、フィードバック操作量によって補償される。さらに、空燃比制御においては、ベース噴射量による空燃比制御の誤差を補償するための補償量を学習値として学習することが周知である。
【０００３】
学習値を学習する空燃比制御装置としては、たとえば特許文献１に見られるものがある。この装置は、ポート噴射弁および筒内噴射弁を用いた空燃比フィードバック制御がなされているときに、ポート噴射弁用の学習値の学習が完了しているなら、フィードバック操作量によるベース噴射量の補正率がゼロでない場合にその要因が筒内噴射弁用の学習値によるものと見なして、フィードバック操作量に基づき筒内噴射弁用の学習値を更新する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００５−４８７３０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ただし、ポート噴射弁および筒内噴射弁を用いた空燃比フィードバック制御がなされているときに、ポート噴射弁用の学習値の学習が完了しているとしても、フィードバック操作量によるベース噴射量の補正率がゼロでない場合にその要因が筒内噴射弁用の学習値を用いたことのみに起因するとは限らない。特に、ポート噴射弁による燃料噴射割合が大きい場合には、フィードバック操作量によるベース噴射量の補正率がゼロでない場合にその主な要因の１つがポート噴射弁用の学習値にある可能性が高くなるおそれがある。そして、フィードバック操作量によるベース噴射量の補正率がゼロでない場合にその主な要因の１つがポート噴射弁用の学習値である場合、筒内噴射弁用の学習値を更新すると、その更新精度が低下する。
【０００６】
本発明は、そうした実情に鑑みてなされたものであり、その目的は、ポート噴射弁および筒内噴射弁を操作して空燃比フィードバック制御がなされているときのフィードバック操作量に基づき学習値を高精度に更新することができるようにした内燃機関の空燃比制御装置を提供することにある。
【課題を解決するための手段】
【０００７】
以下、上記課題を解決するための手段およびその作用効果について記載する。
１．内燃機関の空燃比制御装置は、吸気通路に燃料を噴射するポート噴射弁および燃焼室に燃料を噴射する筒内噴射弁のいずれか一方である第１噴射弁および他方である第２噴射弁の双方を備えた内燃機関を制御対象とし、空燃比を目標値に開ループ制御するためのベース噴射量を設定する開ループ処理部と、前記空燃比の検出値を前記目標値にフィードバック制御するためのフィードバック操作量を算出するフィードバック処理部と、前記内燃機関の燃焼室に燃料を供給するために、前記フィードバック操作量および第１噴射弁用の学習値によって補正された前記ベース噴射量に基づく前記第１噴射弁の操作、および前記フィードバック操作量および第２噴射弁用の学習値によって補正された前記ベース噴射量に基づく前記第２噴射弁の操作の少なくとも一方を実行する操作処理部と、前記操作処理部が前記第１噴射弁のみを操作しているときに、前記第１噴射弁用の前記学習値を、前記フィードバック操作量に基づき更新する第１更新処理部と、前記第１更新処理部によって前記第１噴射弁用の前記学習値が更新されているときに、前記フィードバック操作量による前記ベース噴射量の補正率が所定比率以下となることを条件に、前記第１噴射弁用の前記学習値が収束したと判定する第１判定処理部と、前記操作処理部が前記第１噴射弁および前記第２噴射弁の双方を操作しているときに、前記第２噴射弁用の前記学習値を、前記フィードバック操作量に基づき更新する第２更新処理部と、を備え、前記第２更新処理部は、前記第１判定処理部によって前記第１噴射弁用の前記学習値が収束していると判定されて且つ前記第１噴射弁および前記第２噴射弁の総噴射量に対する前記第２噴射弁から噴射される燃料量の割合である噴き分け率が規定値以上であることを条件に、前記第２噴射弁用の前記学習値を更新し、前記第１判定処理部によって前記第１噴射弁用の前記学習値が収束していると判定されている場合であっても前記噴き分け率が前記規定値未満である場合、前記第２噴射弁用の前記学習値を更新しない。
【０００８】
上記構成では、第１噴射弁および第２噴射弁の双方を操作しているときに、第２学習処理部が第２噴射弁用の学習値をフィードバック操作量に基づき更新する更新条件に、第１噴射弁用の学習値が収束していると判定される条件に加えて、噴き分け率が規定値以上である旨の条件を含めた。これにより、規定値を調整することによって、フィードバック操作量によるベース噴射量の補正率がゼロでない場合に、第１噴射弁用の学習値がその主な要因の１つとなりうる場合に第２噴射弁用の学習値が更新されることを抑制することができる。このため、ポート噴射弁および筒内噴射弁を操作して空燃比フィードバック制御がなされているときのフィードバック操作量に基づき学習値を高精度に更新することができる。
【０００９】
２．上記１記載の内燃機関の空燃比制御装置において、前記第１噴射弁用の学習値は、前記内燃機関の吸入空気量の値に応じて区分された複数の学習領域毎に更新されるものであり、前記操作処理部は、前記複数の学習領域のうちのいずれかの前記学習領域において前記第１噴射弁および前記第２噴射弁の双方を操作しているとき、当該学習領域における前記第１噴射弁用の前記学習値に基づき、前記第１噴射弁を操作するものであり、前記第１判定処理部による判定対象となる前記学習値は、前記第１更新処理部によって前記第１噴射弁用の前記学習値が更新されているときの前記吸入空気量を含む前記学習領域における前記第１噴射弁用の前記学習値であり、前記第２更新処理部が前記第２噴射弁用の前記学習値を更新する条件である、前記第１噴射弁用の前記学習値が収束していると判定されている旨の条件は、前記複数の前記学習領域のうち前記第２噴射弁用の前記学習値を更新するときの前記吸入空気量を含む前記学習領域における前記第１噴射弁用の前記学習値が前記第１判定処理部によって収束していると判定されている旨の条件を含む。
【００１０】
上記構成では、第１噴射弁および第２噴射弁の双方が操作されているときに、そのときの吸入空気量を含む学習領域における学習値に基づき第１噴射弁が操作される。そしてその場合、同吸入空気量を含む学習領域における第１噴射弁用の学習値が収束していることを条件に、第２噴射弁用の学習値を更新する。このため、第１噴射弁の操作のために参照されている学習値の信頼性が高いことを条件に、第２噴射弁用の学習値を更新することができ、ひいては第２噴射弁用の学習値を高精度に更新することができる。
【００１１】
３．上記２記載の内燃機関の空燃比制御装置において、前記複数の学習領域のうち、前記吸入空気量の大きさが隣り合うもの同士の間には、前記第１噴射弁用の前記学習値の更新が禁止される学習禁止領域が設けられており、前記複数の学習領域のそれぞれには、当該学習領域内の特定の吸入空気量の値を有した代表点が設定されており、前記学習禁止領域は、隣接する前記学習領域との境界と当該学習領域における前記代表点との幅よりも広い領域であり、前記操作処理部は、前記第１噴射弁および前記第２噴射弁の双方を操作しているときの前記吸入空気量が互いに隣り合う一対の前記代表点の間の値である場合、前記一対の前記代表点のそれぞれを含む前記学習領域における前記第１噴射弁用の前記学習値の加重移動平均処理によって得られた学習値に基づき前記第１噴射弁を操作するものであり、前記加重移動平均処理は、前記双方を操作しているときの前記吸入空気量に近い前記代表点に対応する重み係数を遠い前記代表点に対応する重み係数よりも大きくするものであり、前記加重移動平均処理によって得られた前記学習値に基づき前記第１噴射弁が操作されて且つ、前記加重移動平均処理に用いられる前記学習値に対応する２つの前記学習領域のうちの一方が前記第２噴射弁用の前記学習値を更新するときの吸入空気量を含んで他方が含まない場合、前記第２更新処理部が前記第２噴射弁用の前記学習値を更新する条件である、前記第１噴射弁用の前記学習値が収束していると判定されている旨の条件には、前記他方の前記学習領域における前記第１噴射弁用の前記学習値が前記第１判定処理部によって収束していると判定されている旨の条件が含まれない。
【００１２】
上記構成では、互いに隣り合う学習領域同士は、上記幅を有した学習禁止領域によって隔てられている。このため、現在の吸入空気量が所定の学習領域内の吸入空気量に含まれる場合、第１噴射弁の操作のために用いられる学習値が、所定の学習領域の学習値と隣の学習領域の学習値との加重移動平均値である場合、所定の学習領域の学習値の重み係数の方が大きくなる。このため、第１噴射弁の操作のために用いられる学習値が、所定の学習領域の学習値と隣の学習領域の学習値との加重移動平均処理に起因して、所定の学習領域の学習値と一致しない場合であっても、隣の学習領域の学習値の影響は小さい。このため、第２噴射弁用の学習値を更新する条件に、隣の学習領域の学習値が収束している条件を含めなくても、第２噴射弁用の学習値の更新精度の低下は抑制できる。しかも、第２噴射弁用の学習値を更新する条件に、隣の学習領域の学習値が収束している条件を含めないために、更新する機会を増加させることができる。
【００１３】
４．上記１〜３のいずれか１項に記載の内燃機関の空燃比制御装置において、前記第２更新処理部によって前記第２噴射弁用の前記学習値が更新されているときに、前記フィードバック操作量による前記ベース噴射量の補正率が前記所定比率以下となることを条件に、前記第２噴射弁用の前記学習値が収束したと判定する第２判定処理部を備え、前記第２更新処理部は、前記操作処理部が前記第２噴射弁のみを操作しているときであっても、前記第２噴射弁用の前記学習値を、前記フィードバック操作量に基づき更新するものであって、前記操作処理部が前記第２噴射弁のみを操作しているときには、前記第２判定処理部によって前記第２噴射弁用の前記学習値が収束したと判定されている場合であっても、前記学習値を更新する処理を実行する一方、前記操作処理部が前記第１噴射弁および前記第２噴射弁の双方を操作しているときには、前記第２判定処理部によって前記第２噴射弁用の前記学習値が収束したと判定されている場合、前記第２噴射弁用の前記学習値を更新しない。
【００１４】
第１噴射弁および第２噴射弁の双方を操作しているときには、フィードバック操作量によるベース噴射量の補正率がゼロよりも大きい場合にその要因の１つが、第１噴射弁用の学習値となりうる。そこで、上記構成では、第２噴射弁のみが操作されているときと比較して、第１噴射弁および第２噴射弁の双方が操作されているときには、第２更新処理部による第２噴射弁用の学習値の更新を、フィードバック操作量によるベース噴射量の補正率がより大きいときに限定する。これにより、第１噴射弁および第２噴射弁の双方が操作されているときに第２噴射弁用の学習値を更新することに起因して、第２噴射弁用の学習値が不適切な値に更新されることを抑制することができる。
【図面の簡単な説明】
【００１５】
【図１】空燃比制御装置にかかる一実施形態および内燃機関を示す図。
【図２】同実施形態にかかるポート噴射および筒内噴射の領域を示す図。
【図３】同実施形態にかかる空燃比制御のブロック図。
【図４】同実施形態にかかる学習領域および代表点を示す図。
【図５】同実施形態にかかる学習値の算出処理の手順を示す流れ図。
【図６】同実施形態にかかるポート噴射弁用の学習処理の手順を示す流れ図。
【図７】同実施形態にかかる筒内噴射弁用の学習処理の手順を示す流れ図。
【図８】同実施形態にかかるポート噴射弁用の学習処理の手順を示す流れ図。
【図９】同実施形態にかかる筒内噴射弁用の学習処理の手順を示す流れ図。
【図１０】同実施形態にかかる学習値の更新処理を例示するタイムチャート。
【発明を実施するための形態】
【００１６】
以下、内燃機関の空燃比制御装置にかかる一実施形態について図面を参照しつつ説明する。
図１に示す内燃機関１０の吸気通路１２には、その流路断面積を可変とするための電子制御式のスロットルバルブ１４が設けられている。吸気通路１２のうちスロットルバルブ１４の下流には、吸気ポートに燃料を噴射するポート噴射弁１６が設けられている。吸気通路１２内の空気やポート噴射弁１６から噴射された燃料は、吸気バルブ１８の開弁動作に伴って、シリンダ２０およびピストン２２によって区画される燃焼室２４に充填される。燃焼室２４には、筒内噴射弁２６により燃料が噴射される。また、燃焼室２４には、点火装置３０の点火プラグ２８が突出している。そして、点火プラグ２８による火花点火によって、空気と燃料との混合気が着火され、混合気が燃焼に供される。混合気の燃焼エネルギの一部は、ピストン２２がシリンダ２０の壁面に沿って往復動作することによってクランク軸３２の回転エネルギに変換される。
【００１７】
燃焼に供された混合気は、排気バルブ３４の開弁動作に伴って、排気として、排気通路３６に排出される。排気通路３６には、三元触媒等の触媒３８が設けられている。
制御装置４０は、内燃機関１０を制御対象とし、制御量（トルク、排気成分）を制御するために、ポート噴射弁１６や、筒内噴射弁２６、点火装置３０等のアクチュエータを操作する。上記制御のために、制御装置４０は、クランク軸３２の回転角度を検出するクランク角センサ５０や、空燃比を検出する空燃比センサ５２、吸入空気量Ｇａを検出するエアフローメータ５６等の各種センサ類の出力値を取り込む。ここで、空燃比センサ５２は、触媒３８の上流側における排気通路３６に設けられ、排気通路３６内の排気成分に応じた出力値Ｉａｆを出力する。
【００１８】
制御装置４０は、イグニッションスイッチ５８がオン状態であることを条件に、上記制御量を制御するために、ポート噴射弁１６や筒内噴射弁２６から燃料を噴射する。詳しくは、制御装置４０は、ポート噴射弁１６および筒内噴射弁２６の双方から噴射される合計の燃料噴射量に対するポート噴射弁１６から噴射される燃料の割合（噴き分け率Ｋｐｆｉ）を、様々に設定し、ポート噴射弁１６および筒内噴射弁２６の少なくとも一方からの燃料噴射を実行する。
【００１９】
図２に、本実施形態にかかる基本的な噴き分け率Ｋｐｆｉの、回転速度ＮＥおよび負荷ＫＬによって定まる動作点における設定を示す。図２に示すように、本実施形態では、主に、低負荷領域では噴き分け率Ｋｐｆｉを「１」とし、ポート噴射弁１６だけを用いた燃料噴射を実行し、中負荷領域では噴き分け率Ｋｐｆｉを「１」より小さく「０」よりも大きくし、ポート噴射弁１６および筒内噴射弁２６の双方を用いた燃料噴射を実行する。また、主に高負荷領域では噴き分け率Ｋｐｆｉを「０」とし、筒内噴射弁２６だけを用いた燃料噴射を実行する。ここで、負荷が高い領域等において、噴き分け率Ｋｐｆｉを小さくして筒内噴射弁２６から噴射される燃料の割合を増加させるのは、燃焼室２４内で気化する燃料量を多くして燃焼室２４内において燃焼に供される混合気の温度を下げることを狙ったものである。なお、図２における領域Ａ１〜Ａ３については後述する。
【００２０】
制御装置４０は、中央処理装置（ＣＰＵ４２）およびメモリ４４を備えており、メモリ４４に記憶されたプログラムをＣＰＵ４２が実行することにより、上記制御を実行する。図３に、メモリ４４に記憶されたプログラムに従ってＣＰＵ４２が実行する処理の一部を示す。
【００２１】
目標値設定処理部Ｍ１０は、燃焼室２４において燃焼に供される混合気の空燃比の目標値ＡＦ＊を設定するとともに、目標値ＡＦ＊に対応する空燃比センサ５２の出力値Ｉａｆの目標値Ｉａｆ＊を設定する。
【００２２】
開ループ処理部Ｍ１２は、目標値ＡＦ＊に基づき、燃焼室２４内の空燃比を目標値ＡＦ＊とするための開ループ操作量として、ベース噴射量Ｑｂを算出する。詳しくは、開ループ処理部Ｍ１２は、吸入空気量Ｇａおよび回転速度ＮＥに応じて定まる燃焼室２４に吸入される空気量（筒内充填空気量）と、目標値ＡＦ＊とに基づき、ベース噴射量Ｑｂを算出する。なお、回転速度ＮＥは、クランク角センサ５０の出力信号Ｓｃｒに基づき算出される。ちなみに、図２に示した負荷は、回転速度ＮＥが与えられたときの筒内充填空気量の最大値に対する実際の筒内充填空気量の割合を示すものである。
【００２３】
フィードバック処理部Ｍ１４は、出力値Ｉａｆを目標値Ｉａｆ＊にフィードバック制御するためのフィードバック操作量ＫＡＦを算出する。詳しくは、フィードバック処理部Ｍ１４は、出力値Ｉａｆから目標値Ｉａｆ＊を減算した値を入力とする、比例要素、積分要素、および微分要素を備えており、それらの各出力値の和に基づき、フィードバック操作量ＫＡＦを算出する。なお、本実施形態において、フィードバック操作量ＫＡＦは、ベース噴射量Ｑｂの補正率を表現するパラメータであり、「１」となる場合に補正率が「０」となる。
【００２４】
乗算処理部Ｍ１６は、フィードバック処理部Ｍ１４が動作しているフィードバック制御の実行時には、ベース噴射量Ｑｂにフィードバック操作量ＫＡＦを乗算することによって、フィードバック操作量ＫＡＦで補正されたベース噴射量Ｑｂである補正後噴射量Ｑｆｂを算出して出力する。
【００２５】
第１噴き分け率乗算処理部Ｍ１８は、補正後噴射量Ｑｆｂに上記噴き分け率Ｋｐｆｉを乗算した値を出力する。一方、第２噴き分け率乗算処理部Ｍ２０は、補正後噴射量Ｑｆｂに「１−Ｋｐｆｉ」を乗算した値を出力する。
【００２６】
ポート側学習補正処理部Ｍ２２は、第１噴き分け率乗算処理部Ｍ１８の出力値にポート噴射弁１６用の学習値ＬＰを乗算することによって、同出力値を補正し、これをポート噴射弁１６に対する指令噴射量Ｑｐ＊として出力する。筒内側学習補正処理部Ｍ２４は、第２噴き分け率乗算処理部Ｍ２０の出力値に筒内噴射弁２６用の学習値ＬＤを乗算することによって、同出力値を補正し、これを筒内噴射弁２６に対する指令噴射量Ｑｄ＊として出力する。なお、上記乗算処理部Ｍ１６は、フィードバック制御の停止時には、ベース噴射量Ｑｂに、「１」を乗算した値を、補正後噴射量Ｑｆｂとして出力する。なお、この場合、補正後噴射量Ｑｆｂは、ベース噴射量Ｑｂそのものとなるものの、指令噴射量Ｑｐ＊は、学習値ＬＰによってベース噴射量Ｑｂが補正された値に応じたものとなっており、指令噴射量Ｑｄ＊は、学習値ＬＤによってベース噴射量Ｑｂが補正された値に応じたものとなっている。
【００２７】
操作処理部Ｍ２６は、指令噴射量Ｑｐ＊に基づき、ポート噴射弁１６の操作信号ＭＳ２を生成してポート噴射弁１６に出力し、指令噴射量Ｑｄ＊に基づき、筒内噴射弁２６の操作信号ＭＳ３を生成して筒内噴射弁２６に出力する。
【００２８】
平均操作量算出処理部Ｍ３０は、フィードバック操作量ＫＡＦの平均値（平均操作量ＫＡＦａ）を算出する。ここでは、加重移動平均処理を例示している。すなわち、平均操作量ＫＡＦａの更新タイミングにおけるフィードバック操作量ＫＡＦに、係数αを乗算した値と、更新タイミング直前において保持されていた平均操作量ＫＡＦａに係数βを乗算した値との和を、更新された平均操作量ＫＡＦａとする。ここで、「０＜α＜β＜１，α＋β＝１」である。
【００２９】
学習処理部Ｍ３２は、平均操作量ＫＡＦａを入力とし、ポート噴射弁１６用の学習値ＬＰや筒内噴射弁２６用の学習値ＬＤを更新する。
学習値算出処理部Ｍ３４は、ポート側学習補正処理部Ｍ２２や筒内側学習補正処理部Ｍ２４に出力する学習値ＬＰ，ＬＤを算出して出力する。本実施形態では、学習値ＬＰ，ＬＤをいずれも、吸入空気量Ｇａによって定まる複数の学習領域のそれぞれ毎に定めている。詳しくは、図４に示すように、学習値ＬＰ，ＬＤには、互いに共通の学習領域ＡＬ１，ＡＬ２，ＡＬ３，…が定められている。ここで、学習領域ＡＬ１と学習領域ＡＬ２とは互いに吸入空気量Ｇａの大きさが隣り合うもの同士であるが、それらの間には、学習領域ＡＬ１よりも吸入空気量Ｇａが大きくて且つ学習領域ＡＬ２よりも吸入空気量Ｇａが小さい学習禁止領域ＡＰが介在している。学習禁止領域ＡＰは、学習値ＬＰ，ＬＤの更新が禁止される領域である。同様に、吸入空気量Ｇａの大きさが隣り合う学習領域ＡＬ２および学習領域ＡＬ３の間には、学習禁止領域ＡＰが介在している。このように、本実施形態では、互いに隣り合う学習領域ＡＬｉと学習領域ＡＬｊ（ｊ＝ｉ＋１）との間には、学習禁止領域ＡＰが介在している。なお、本実施形態において、互いに隣り合う学習領域ＡＬｉ，ＡＬｊに挟まれた学習禁止領域ＡＰは、学習領域ＡＬｉ，ＡＬｊよりも広くなっている。ここで、領域の広さとは、領域の一対の境界における吸入空気量の差のことである。
【００３０】
上記学習処理部Ｍ３２は、吸入空気量Ｇａが学習領域ＡＬ１，ＡＬ２，ＡＬ３，…のいずれかに含まれることを条件に、吸入空気量Ｇａが含まれる学習領域ＡＬｉにおける学習値ＬＰ（ｉ），ＬＤ（ｉ）を更新する。これに対し、学習処理部Ｍ３２は、吸入空気量Ｇａが学習領域ＡＬ１，ＡＬ２，ＡＬ３，…のいずれにも含まれない場合には、いずれの学習領域ＡＬｊ（ｊ＝１，２，３，…）においても学習値ＬＰ（ｊ），ＬＤ（ｊ）を更新しない。なお、本明細書においては、学習領域ＡＬ１，ＡＬ２，ＡＬ３，…の学習値ＬＰ（１），ＬＰ（２），ＬＰ（３），…や学習値ＬＤ（１），ＬＤ（２），ＬＤ（３），…を総括する場合や、それらのいずれかを特に特定しない場合、さらには学習値算出処理部Ｍ３４の出力値を示す場合には、学習値ＬＰ，ＬＤと記載する。
【００３１】
学習値算出処理部Ｍ３４では、学習領域ＡＬ１，ＡＬ２，ＡＬ３，…のそれぞれに代表点ＲＰ１，ＲＰ２，ＲＰ３，…を定めている。代表点ＲＰ１，ＲＰ２，ＲＰ３，…は、該当する学習領域ＡＬ１，ＡＬ２，ＡＬ３，…の中央における吸入空気量Ｇａの値を有する。そして、学習値算出処理部Ｍ３４では、学習領域ＡＬｉ（ｉ＝１，２，３，…）にて更新された学習値ＬＰ（ｉ），ＬＤ（ｉ）を、代表点ＲＰｉにおける値とする。そして、吸入空気量Ｇａが、代表点ＲＰ１，ＲＰ２，ＲＰ３，…のいずれにも一致しない場合、吸入空気量Ｇａに隣接する一対の代表点ＲＰｉ，ＲＰｊ（ｊ＝ｉ＋１）における値の加重移動平均処理によって学習値ＬＰ（ＬＤ）を算出して出力する。
【００３２】
図５に、学習値算出処理部Ｍ３４によるポート噴射弁１６用の学習値ＬＰの算出処理の手順を示す。図５に示す処理は、たとえば所定周期で繰り返し実行される。なお、以下では、ＣＰＵ４２を主体として記述する。ちなみに、学習値算出処理部Ｍ３４による筒内噴射弁２６用の学習値ＬＤの算出処理の手順についても、図５に示したものと同様であるため、これについては図を用いた説明を省略する。
【００３３】
図５に示す一連の処理において、ＣＰＵ４２は、まず吸入空気量Ｇａを取得する（Ｓ２）。次に、ＣＰＵ４２は、以下の式（ｃ１）に基づき学習値ＬＰを算出する（Ｓ４）。
ＬＰ＝ａ・ＬＰ（ｉ）＋ｂ・ＬＰ（ｉ＋１）  …（ｃ１）
ここで、代表点ＲＰｉは、ステップＳ２の処理によって取得された吸入空気量Ｇａ以下であり、代表点ＲＰｊ（ｊ＝ｉ＋１）は、同吸入空気量Ｇａ以上である。重み係数ａ，ｂは、いずれもゼロ以上の値であり、「ａ＋ｂ＝１」を満たす。ここで、重み係数ａは、ステップＳ２において取得された吸入空気量Ｇａと代表点ＲＰｉとの差が小さいほど大きい値とされ、特に、吸入空気量Ｇａと代表点ＲＰｉとが一致する場合に「１」とされる。一方、重み係数ｂは、ステップＳ２において取得された吸入空気量Ｇａと代表点ＲＰｊとの差が小さいほど大きい値とされ、特に、吸入空気量Ｇａと代表点ＲＰｊとが一致する場合に「１」とされる。
【００３４】
ＣＰＵ４２は、ステップＳ４の処理が完了する場合、図５に示す一連の処理を一旦終了する。なお、ステップＳ２の処理によって取得された吸入空気量Ｇａが、互いに隣り合う一対の代表点ＲＰｉ，ＲＰｊに挟まれない場合、たとえば、同吸入空気量Ｇａに最も近い代表点ＲＰｉに対応する学習値ＬＰ（ｉ）を、最終的な学習値ＬＰとすればよい。
【００３５】
図６に、上記学習処理部Ｍ３２が実行する処理のうち、ポート噴射弁１６用の学習値ＬＰに関する処理の手順を示す。図６に示す処理は、たとえば所定周期で繰り返し実行される。なお、以下では、主体をＣＰＵ４２として記述する。
【００３６】
図６に示す一連の処理において、ＣＰＵ４２は、まず、噴き分け率Ｋｐｆｉが「１」であるか否かを判定する（Ｓ１０）。ＣＰＵ４２は、「１」であると判定する場合（Ｓ１０：ＹＥＳ）、吸入空気量Ｇａを取得する（Ｓ１２）。次に、ＣＰＵ４２は、吸入空気量Ｇａが、学習領域ＡＬ１，ＡＬ２，ＡＬ３，…のいずれかに含まれているか否かを判定する（Ｓ１４）。そして、いずれかに含まれていると判定する場合（Ｓ１４：ＹＥＳ）、吸入空気量Ｇａを含む学習領域ＡＬｉを選択する（Ｓ１６）。
【００３７】
次に、ＣＰＵ４２は、平均操作量ＫＡＦａが「１−δ」以上であって且つ「１＋δ」以下であるか否かを判定する（Ｓ１８）。換言すれば、平均操作量ＫＡＦａによるベース噴射量Ｑｂの補正率（絶対値）が所定比率δ以下であるか否かを判定する。ここで、補正率は、ベース噴射量Ｑｂの値とは独立に「ＫＡＦａ−１」の絶対値によって定義される。この処理は、学習値ＬＰ（ｉ）が、ベース噴射量Ｑｂによる目標値ＡＦ＊への制御の誤差を補償する値として適切な値に収束したか否かを判定するためのものである。すなわち、学習値ＬＰ（ｉ）が適切な値に収束する場合、ベース噴射量Ｑｂが学習値ＬＰ（ｉ）に基づき補正された値は、空燃比センサ５２の出力値Ｉａｆを目標値Ｉａｆ＊に制御するうえで最適な値に近づく。このため、フィードバック操作量ＫＡＦが「１」に近づき、ひいては平均操作量ＫＡＦａが「１」に近づく。ちなみに、吸入空気量Ｇａが学習領域ＡＬｉに含まれている場合であっても、ベース噴射量Ｑｂの補正に用いられる学習値ＬＰは、学習領域ＡＬｉにおける学習値ＬＰ（ｉ）とは限らず、学習値ＬＰ（ｉ）と、隣接する学習領域ＡＬｊにおける学習値ＬＰ（ｊ）との加重移動平均処理によって求められた値であり得る。しかし、学習領域ＡＬｉと学習領域ＡＬｊとの間には学習禁止領域ＡＰが設けられているため、吸入空気量Ｇａが学習領域ＡＬｉに含まれている場合、ベース噴射量Ｑｂの補正に用いられる学習値ＬＰにおいて、学習値ＬＰ（ｉ）の影響が支配的である。詳しくは、吸入空気量Ｇａと代表点ＲＰｊとの差の方が吸入空気量Ｇａと代表点ＲＰｉとの差よりも大きいため、代表点ＲＰｉに関する重み係数の方が大きくなることから、学習値ＬＰ（ｉ）の影響が支配的となる。したがって、本実施形態では、平均操作量ＫＡＦａが「１」に近づく場合、学習値ＬＰ（ｉ）が適切な値に収束していると判定する。
【００３８】
ＣＰＵ４２は、平均操作量ＫＡＦａが「１−δ」以上であって且つ「１＋δ」以下であると判定する場合（Ｓ１８：ＹＥＳ）、学習領域ＡＬｉにおける学習値ＬＰ（ｉ）が収束している旨を示す収束判定フラグＦＰ（ｉ）を「１」とする（Ｓ２０）。これに対し、ＣＰＵ４２は、平均操作量ＫＡＦａが「１−δ」より小さいか「１＋δ」よりも大きいと判定する場合（Ｓ１８：ＮＯ）、収束判定フラグＦＰ（ｉ）を「０」とする（Ｓ２２）。
【００３９】
ＣＰＵ４２は、ステップＳ２０，Ｓ２２の処理が完了する場合、平均操作量ＫＡＦａに基づき、学習値ＬＰの更新量ΔＬを算出する（Ｓ２４）。更新量ΔＬは、フィードバック操作量ＫＡＦによるベース噴射量Ｑｂの補正率を低減するための値に設定される。具体的には、ＣＰＵ４２は、平均操作量ＫＡＦａが大きければ大きいほど更新量ΔＬを大きい値とし、平均操作量ＫＡＦａが小さければ小さいほど更新量ΔＬを小さい値とし、平均操作量ＫＡＦａが「１」の場合には、更新量ΔＬをゼロとする。これは、メモリ４４に、平均操作量ＫＡＦａと更新量ΔＬとの関係を定めたマップを予め記憶しておき、マップを用いて更新量ΔＬを算出することで実現できる。そしてＣＰＵ４２は、学習領域ＡＬｉにおける学習値ＬＰ（ｉ）に、更新量ΔＬを加算することによって、学習値ＬＰ（ｉ）を更新する（Ｓ２６）。
【００４０】
なお、ＣＰＵ４２は、ステップＳ２６の処理が完了する場合や、ステップＳ１０、Ｓ１４において否定判定する場合には、図６に示す一連の処理を一旦終了する。
図７に、上記学習処理部Ｍ３２が実行する処理のうち、筒内噴射弁２６用の学習値ＬＤに関する処理の手順を示す。図７に示す処理は、たとえば所定周期で繰り返し実行される。なお、以下では、主体をＣＰＵ４２として記述する。
【００４１】
図７に示す処理は、筒内噴射弁２６のみから燃料が噴射されているときに筒内噴射弁２６用の学習値ＬＤを更新する処理であり、図６に示した処理が、ポート噴射弁１６のみから燃料が噴射されているときにポート噴射弁１６用の学習値ＬＰを更新する処理であるのと対照的である。図７に示すステップＳ３０〜Ｓ４６の処理は、図６に示したステップＳ１０〜Ｓ２６の処理に対応している。ただし、ステップＳ３０の処理は、ポート噴射弁１６の噴射量と筒内噴射弁２６の噴射量との総量に対する筒内噴射弁２６の噴射量の割合である噴き分け率「１−Ｋｐｆｉ」が「１」であるか否かを判定する処理である。また、ステップＳ４０，Ｓ４２においては、学習値ＬＤ（ｉ）が収束している旨を示す収束判定フラグＦＤ（ｉ）の値を設定する。また、ステップＳ４６においては、ステップＳ３６において選択された学習領域ＡＬｉにおける学習値ＬＤ（ｉ）を更新する。
【００４２】
次に、ポート噴射弁１６および筒内噴射弁２６の双方から燃料が噴射されているときにおける学習値ＬＰ，ＬＤを更新する処理について説明する。
図８に、上記学習処理部Ｍ３２が実行する処理のうち、ポート噴射弁１６用の学習値ＬＰに関する処理の手順を示す。図８に示す処理は、たとえば所定周期で繰り返し実行される。なお、以下では、主体をＣＰＵ４２として記述する。
【００４３】
図８に示す一連の処理において、ＣＰＵ４２は、まず噴き分け率Ｋｐｆｉが規定値Ｋｔｈ以上であって且つ「１」未満であるか否かを判定する（Ｓ５０）。この処理は、ポート噴射弁１６および筒内噴射弁２６の双方から燃料が噴射されているときにポート噴射弁１６用の学習値ＬＰの更新処理を実行する１つの条件が成立するか否かを判定するためのものである。本実施形態では、規定値Ｋｔｈを「０．５」とする。
【００４４】
そして、ＣＰＵ４２は、規定値Ｋｔｈ以上であって且つ「１」未満であると判定する場合（Ｓ５０：ＹＥＳ）、更新処理を実行する１つの条件が成立するとして、図６に示したステップＳ１２〜Ｓ１６の処理に相当する、ステップＳ５２〜Ｓ５６の処理を実行する。次に、ＣＰＵ４２は、ステップＳ５６において選択した学習領域ＡＬｉに関する筒内噴射弁２６用の学習値ＬＤ（ｉ）の収束判定フラグＦＤ（ｉ）が「１」であって且つ、ポート噴射弁１６用の学習値ＬＰ（ｉ）の収束判定フラグＦＰ（ｉ）が「０」であるか否かを判定する（Ｓ５８）。
【００４５】
この条件は、ポート噴射弁１６および筒内噴射弁２６の双方から燃料が噴射されているときにポート噴射弁１６用の学習値ＬＰの更新処理を実行する１つの条件が成立するか否かを判定するためのものである。ここで、収束判定フラグＦＤ（ｉ）が「１」である旨の条件と、ステップＳ５０における規定値Ｋｔｈ以上である旨の条件との論理積が真であることは、ポート噴射弁１６用の学習値ＬＰの更新処理を実行する条件を、次の条件とすることを狙ったものである。すなわち、フィードバック操作量ＫＡＦが「１」からずれた場合に、その主な要因が、ポート噴射弁１６用の学習値ＬＰが未収束状態であることであると考えられることを、１つの条件とすることを狙ったものである。
【００４６】
そして、ＣＰＵ４２は、ステップＳ５８において肯定判定する場合、図６のステップＳ１８の処理と同様、平均操作量ＫＡＦａが「１−δ」以上であって且つ「１＋δ」以下であるか否かを判定する（Ｓ６０）。そして、ＣＰＵ４２は、平均操作量ＫＡＦａが「１−δ」より小さいか「１＋δ」よりも大きいと判定する場合（Ｓ６０：ＮＯ）、ステップＳ２４の処理と同様に、更新量ΔＬを算出する（Ｓ６２）。そして、ＣＰＵ４２は、ステップＳ２６の処理と同様、算出された更新量ΔＬに基づき学習領域ＡＬｉにおける学習値ＬＰ（ｉ）を更新する（Ｓ６４）。
【００４７】
一方、ＣＰＵ４２は、平均操作量ＫＡＦａが「１−δ」以上であって且つ「１＋δ」以下であると判定する場合（Ｓ６０：ＹＥＳ）、学習値ＬＰ（ｉ）の収束判定フラグＦＰ（ｉ）を「１」とする（Ｓ６６）。
【００４８】
ＣＰＵ４２は、ステップＳ６４，Ｓ６６の処理が完了する場合や、ステップＳ５０，Ｓ５４，Ｓ５８において否定判定する場合には、図８に示した一連の処理を一旦終了する。
すなわち、本実施形態では、ポート噴射弁１６および筒内噴射弁２６の双方から燃料が噴射されているときにポート噴射弁１６用の学習値ＬＰが収束したと判定される場合（Ｓ６０，ＹＥＳ）、学習値ＬＰの更新処理を実行しない。これは、ポート噴射弁１６および筒内噴射弁２６の双方から燃料が噴射されているときには、平均操作量ＫＡＦａ（言い換えれば、フィードバック操作量ＫＡＦ）が「１」からずれる要因の１つに、筒内噴射弁２６用の学習値ＬＤが考えられるためである。すなわち、筒内噴射弁２６用の学習値ＬＤが収束したと判定されている場合であっても（Ｓ５８において、収束判定フラグＦＤ（ｉ）＝「１」）、仮に筒内噴射弁２６用の学習値ＬＤを用いつつ筒内噴射弁２６のみから燃料噴射をしたとすると、平均操作量ＫＡＦａが「１」に対して±δの範囲内でずれうる（図７のＳ３８参照）。つまり、筒内噴射弁２６用の学習値ＬＤが収束したと判定されている場合であっても、筒内噴射弁２６用の学習値ＬＤが筒内噴射弁２６の噴射量の誤差を完全に補償できているとは限らない。そして学習値ＬＤを用いて筒内噴射弁２６のみから燃料噴射をしたとしても平均操作量ＫＡＦａが「１」に対して±δの範囲内でずれうるのであれば、ポート噴射弁１６および筒内噴射弁２６の双方から燃料が噴射されているときに図８のＳ６０の処理において平均操作量ＫＡＦａが「１」に対して±δの範囲内でずれる要因の１つが、筒内噴射弁２６用の学習値ＬＤであると考えられる。よって、図８のステップＳ５８において筒内噴射弁２６用の学習値ＬＤが収束したと判定されている状況でステップＳ６０において肯定判定される場合、平均操作量ＫＡＦａ（言い換えれば、フィードバック操作量ＫＡＦ）の「１」に対するずれが筒内噴射弁２６用の学習値ＬＤおよびポート噴射弁１６用の学習値ＬＰのいずれに起因するものであるのか特定できない。こうした理由から、本実施形態では、図８のステップＳ５８において筒内噴射弁２６用の学習値ＬＤが収束したと判定されている状況で平均操作量ＫＡＦａの「１」に対するずれ量が±δの範囲内となることでポート噴射弁１６用の学習値ＬＰも収束したとみなす一方、収束したとみなした後には、ポート噴射弁１６用の学習値ＬＰの更新処理を実行しないようにしている。その結果、図８の処理においてポート噴射弁１６用の学習値ＬＰが誤学習されるおそれが減少し、ひいては図６に示す処理においてポート噴射弁１６用の学習値ＬＰが適切な値に速やかに収束し得る。
【００４９】
図９に、上記学習処理部Ｍ３２が実行する処理のうち、筒内噴射弁２６用の学習値ＬＤに関する処理の手順を示す。図９に示す処理は、たとえば所定周期で繰り返し実行される。なお、以下では、主体をＣＰＵ４２として記述する。
【００５０】
図９に示す処理は、筒内噴射弁２６からの噴射量がポート噴射弁１６から噴射される噴射量以上である場合に筒内噴射弁２６用の学習値ＬＤを更新する処理である。これは、図８に示した処理が、ポート噴射弁１６からの噴射量が筒内噴射弁２６から噴射される噴射量以上である場合にポート噴射弁１６用の学習値ＬＰを更新する処理であるのと対照的である。図９に示すステップＳ７０〜Ｓ８６の処理は、図８に示したステップＳ５０〜Ｓ６６の処理に相当する。ただし、ステップＳ７０の処理においては、上述の噴き分け率「１−Ｋｐｆｉ」が、規定値Ｋｔｈ以上であって且つ「１」よりも小さいか否かを判定している。また、ステップＳ７８、Ｓ８６の処理においては、ステップＳ５８，Ｓ６６の処理における収束判定フラグＦＤ（ｉ）を収束判定フラグＦＰ（ｉ）に代え、ステップＳ５８，Ｓ６６の処理における収束判定フラグＦＰ（ｉ）を、収束判定フラグＦＤ（ｉ）に代える。また、ステップＳ８４においては、ステップＳ７６において選択された学習領域ＡＬｉにおける筒内噴射弁２６用の学習値ＬＤ（ｉ）を更新する（Ｓ８４）。
【００５１】
この図９に示す筒内噴射弁２６用の学習値ＬＤの更新処理においても、図８に示すポート噴射弁１６用の学習値ＬＰの更新処理と同様、筒内噴射弁２６用の学習値ＬＤが収束したと判定される場合（Ｓ８０：ＹＥＳ）、筒内噴射弁２６用の学習値ＬＤの更新処理を実行しない。これは、ポート噴射弁１６および筒内噴射弁２６の双方から燃料が噴射されているときには、平均操作量ＫＡＦａ（言い換えれば、フィードバック操作量ＫＡＦ）が「１」からずれる要因の１つが、ポート噴射弁１６用の学習値ＬＰであると考えられるためである。すなわち、ポート噴射弁１６用の学習値ＬＰが収束したと判定されている場合であっても（Ｓ７８において、収束判定フラグＦＰ（ｉ）＝「１」）、仮にポート噴射弁１６用の学習値ＬＰを用いつつポート噴射弁１６のみから燃料噴射をしたとすると、平均操作量ＫＡＦａが「１」に対して±δの範囲内でずれうる（図６のＳ１８参照）。つまり、ポート噴射弁１６用の学習値ＬＰが収束したと判定されている場合であっても、ポート噴射弁１６用の学習値ＬＰがポート噴射弁１６の噴射量の誤差を完全に補償できているとは限らない。そしてポート噴射弁１６用の学習値ＬＰを用いてポート噴射弁１６のみから燃料噴射をしたとしても平均操作量ＫＡＦａが「１」に対して±δの範囲内でずれうるのであれば、ポート噴射弁１６および筒内噴射弁２６の双方から燃料が噴射されているときに図９のステップＳ８０において平均操作量ＫＡＦａが「１」に対して±δの範囲内でずれる要因の１つが、ポート噴射弁１６用の学習値ＬＰであると考えられる。よって、図９のステップＳ７８においてポート噴射弁１６用の学習値ＬＰが収束したと判定されている状況でステップＳ８０において肯定判定される場合、平均操作量ＫＡＦａ（言い換えれば、フィードバック操作量ＫＡＦ）の「１」に対するずれが筒内噴射弁２６用の学習値ＬＤおよびポート噴射弁１６用の学習値ＬＰのいずれに起因するものであるのか特定できない。こうした理由から、本実施形態では、図９のステップＳ７８においてポート噴射弁１６用の学習値ＬＰが収束したと判定されている状況で平均操作量ＫＡＦａの「１」に対するずれ量が±δの範囲内となることで筒内噴射弁２６用の学習値ＬＤも収束したとみなす一方、収束したとみなした後には、筒内噴射弁２６用の学習値ＬＤの更新処理を実行しないようにしている。その結果、図９の処理において筒内噴射弁２６用の学習値ＬＤが誤学習されるおそれが減少し、ひいては図７に示す処理において筒内噴射弁２６用の学習値ＬＤが適切な値に速やかに収束し得る。
【００５２】
なお、本実施形態において、ＣＰＵ４２は、収束判定フラグＦＰ（ｉ）と収束判定フラグＦＤ（ｉ）とを、イグニッションスイッチ５８がオフ状態からオン状態に切り替えられるときに初期化して「０」とする。ただし、学習領域ＡＬ１，ＡＬ２，ＡＬ３，…のそれぞれにおけるポート噴射弁１６用の学習値ＬＰや筒内噴射弁２６用の学習値ＬＤは、更新処理がなされるまでイグニッションスイッチ５８が前回オン状態とされていたときの値をそのまま利用する。
【００５３】
ここで、本実施形態の作用を説明する。
図１０に、学習領域ＡＬｉにおける学習値ＬＤ（ｉ），ＬＰ（ｉ）の更新処理の実行状態および停止状態の推移を示す。なお、図１０においては、時刻ｔ１以降、学習領域ＡＬｉが変化しないことを想定している。
【００５４】
図１０に示すように、時刻ｔ１以降、噴き分け率Ｋｐｆｉが「０」となると、筒内噴射弁２６用の学習値ＬＤ（ｉ）の更新処理は実行状態となる一方、ポート噴射弁１６用の学習値ＬＰ（ｉ）の更新処理は停止状態となる。特に図１０においては、時刻ｔ２以降、学習値ＬＤ（ｉ）が収束したことを示している。その後、時刻ｔ３において噴き分け率Ｋｐｆｉがゼロよりも大きくなると、学習値ＬＤ（ｉ）の更新処理は停止状態となる。また、学習値ＬＰ（ｉ）の更新処理は、噴き分け率Ｋｐｆｉが規定値Ｋｔｈ未満であるため、停止状態のままとなる。その後、時刻ｔ４において噴き分け率Ｋｐｆｉが規定値Ｋｔｈ以上となることにより、ポート噴射弁１６用の学習値ＬＰ（ｉ）の更新処理が実行される。そして、時刻ｔ５において、学習値ＬＰ（ｉ）の収束判定がなされると、学習値ＬＰ（ｉ）の更新処理が停止状態となる。
【００５５】
このように、噴き分け率Ｋｐｆｉが「１」未満であっても、学習値ＬＰ（ｉ）を更新することにより、噴き分け率Ｋｐｆｉが「１」のときに限って学習値ＬＰ（ｉ）を更新する場合と比較すると、学習値ＬＰ（ｉ）の更新頻度を向上させることができる。たとえば、図２に示すように、噴き分け率Ｋｐｆｉが「１」である領域Ａ１と、「１」よりも小さくゼロよりも大きい領域Ａ２と、「０」である領域Ａ３とが同一の学習領域ＡＬｉであるとする。イグニッションスイッチ５８がオン状態に切り替えられた後、領域Ａ３において学習値ＬＤ（ｉ）が収束した旨判定されると、領域Ａ２において、学習値ＬＰ（ｉ）を更新することができる。このため、噴き分け率Ｋｐｆｉが「１」である領域に限って学習値ＬＰ（ｉ）を更新する場合と比較すると、学習値ＬＰ（ｉ）の更新頻度が向上する。
【００５６】
このため、イグニッションスイッチ５８がオフ状態からオン状態へと切り替えられた後、ポート噴射弁１６用の学習値ＬＰ（ｉ）を早期に収束させることができる。このため、たとえば、学習値ＬＰ（ｉ）が収束していることを実行条件とする処理を設ける場合であっても、その処理の実行条件を迅速に成立させることが可能となる。
【００５７】
しかも、噴き分け率Ｋｐｆｉが「１」よりも小さい場合には、学習値ＬＤ（ｉ）に関し収束判定フラグＦＤ（ｉ）が「１」となっていることと、噴き分け率Ｋｐｆｉが規定値Ｋｔｈ以上であることとの論理積が真となることを、ポート噴射弁１６用の学習値ＬＰ（ｉ）を更新する条件とした。このため、噴き分け率Ｋｐｆｉが「１」よりも小さいときに学習値ＬＰ（ｉ）を更新しつつも、ポート噴射弁１６用の学習値ＬＰ（ｉ）を高精度に更新することができる。
【００５８】
逆に、学習領域ＡＬｉにおいてポート噴射弁１６用の学習値ＬＰ（ｉ）が収束した後には、学習領域ＡＬｉにおいてポート噴射弁１６および筒内噴射弁２６の双方から燃料を噴射しているときに、筒内噴射弁２６用の学習値ＬＤ（ｉ）を更新することができる。このため、学習領域ＡＬｉにおける学習値ＬＤ（ｉ）の更新頻度が向上する。しかも、上記噴き分け率「１−Ｋｐｆｉ」が「１」よりも小さい場合には、学習値ＬＰ（ｉ）の収束判定フラグＦＰ（ｉ）が「１」となっていることと、噴き分け率「１−Ｋｐｆｉ」が規定値Ｋｔｈ以上であることとの論理積が真となることを、筒内噴射弁２６用の学習値ＬＤ（ｉ）を更新する条件とした。このため、噴き分け率「１−Ｋｐｆｉ」が「１」よりも小さいときに学習値ＬＤ（ｉ）を更新しつつも、筒内噴射弁２６用の学習値ＬＤ（ｉ）を高精度に更新することができる。
【００５９】
なお、図２に示す噴き分け率Ｋｐｆｉの設定によれば、学習領域ＡＬ１，ＡＬ２，ＡＬ３，…の全てにおいて、ポート噴射弁１６のみからの燃料噴射と、筒内噴射弁２６のみからの燃料噴射と、ポート噴射弁１６および筒内噴射弁２６の双方からの燃料噴射との全てが実行されるわけではない。たとえば、筒内噴射弁２６のみからの燃料噴射と、ポート噴射弁１６および筒内噴射弁２６の双方からの燃料噴射とについては実行されるものの、ポート噴射弁１６のみからの燃料噴射については実行されない領域がある。しかし、この場合であっても、図８に示した処理によってポート噴射弁１６用の学習値ＬＰ（ｊ）を更新することができる。このため、たとえば筒内噴射弁２６に異常が生じ、図２に示した噴き分け率Ｋｐｆｉを守ることができず、ポート噴射弁１６のみを用いて燃料噴射を実行することとなったとしても、その当初からすでに収束した学習値ＬＰ（ｊ）を用いて算出された指令噴射量Ｑｐ＊を用いることができる。
【００６０】
以上説明した本実施形態によれば、さらに以下に記載する効果が得られる。
（１）学習領域ＡＬｉにおけるポート噴射弁１６用の学習値ＬＰ（ｉ）の更新処理の実行条件に、学習領域ＡＬｉにおける筒内噴射弁２６用の学習値ＬＤ（ｉ）が収束している旨の条件を含めた。学習領域ＡＬｉにおいては、フィードバック操作量ＫＡＦが「１」からずれる要因のうち筒内噴射弁２６用の学習値ＬＤに関するものとしては、学習領域ＡＬｉにおける学習値ＬＤ（ｉ）が主な要因となる。このため、学習領域ＡＬｉにおける学習値ＬＤ（ｉ）が収束していることを条件とすることにより、指令噴射量Ｑｄ＊の算出に利用された学習値ＬＤに起因したフィードバック操作量ＫＡＦの「１」からのずれ量が小さいことを条件に、ポート噴射弁用の学習値ＬＰ（ｉ）を更新することができる。したがって、ポート噴射弁用の学習値ＬＰ（ｉ）を高精度に更新することができる。
【００６１】
同様に、学習領域ＡＬｉにおける筒内噴射弁２６用の学習値ＬＤ（ｉ）の更新処理の実行条件に、学習領域ＡＬｉにおけるポート噴射弁１６用の学習値ＬＰ（ｉ）が収束している旨の条件を含めたため、筒内噴射弁用の学習値ＬＤ（ｉ）を高精度に更新することができる。
【００６２】
（２）複数の学習領域ＡＬｉ，ＡＬｊのそれぞれにおける学習値の加重移動平均処理によって算出された学習値に応じて指令噴射量Ｑｄ＊や指令噴射量Ｑｐ＊が算出されているときであっても、学習領域ＡＬｉにおける更新処理の実行条件に、学習領域ＡＬｊにおける学習値が収束している旨の条件を含めなかった。これにより、更新精度の低下を抑制しつつも、学習値ＬＰ（ｉ），ＬＤ（ｉ）を更新する機会を増加させることができる。
【００６３】
（３）ポート噴射弁１６および筒内噴射弁２６の双方から燃料を噴射しているときにおいて、学習値ＬＰや学習値ＬＤの更新処理の実行条件に、平均操作量ＫＡＦａによるベース噴射量Ｑｂの補正率が所定比率δよりも大きいことを含めた。これにより、学習値が不適切な値に更新されることを抑制することができる。
【００６４】
（４）平均操作量ＫＡＦａによるベース噴射量Ｑｂの補正率が所定比率δ以下となる場合に、学習値ＬＰ，ＬＤが収束したと判定した。これにより、フィードバック操作量ＫＡＦによる補正率が突発的に所定比率δ以下となった場合に収束したと誤判定される事態を抑制することができる。
【００６５】
＜対応関係＞
上記「課題を解決するための手段」の欄に記載した事項と、実施形態における事項との対応関係は、次の通りである。以下では、「課題を解決するための手段」の欄に記載した解決手段の番号毎に、対応関係を示している。なお、以下において、「メモリ４４に記憶されたプログラムに従って所定の処理を実行するＣＰＵ４２」のことを、記載を簡素化するために、「所定の処理を実行するＣＰＵ４２」と記載する。
【００６６】
１．第１噴射弁がポート噴射弁１６に対応する場合、第１更新処理部は、ステップＳ１０〜Ｓ１６，Ｓ２４，Ｓ２６の処理を実行するＣＰＵ４２に対応し、第１判定処理部は、ステップＳ１８〜Ｓ２２の処理を実行するＣＰＵ４２に対応し、第２更新処理部は、ステップＳ７０〜Ｓ７８，Ｓ８２，Ｓ８４の処理を実行するＣＰＵ４２に対応する。第１噴射弁が筒内噴射弁２６に対応する場合、第１更新処理部は、ステップＳ３０〜Ｓ３６，Ｓ４４，Ｓ４６の処理を実行するＣＰＵ４２に対応し、第１判定処理部は、ステップＳ３８〜Ｓ４２の処理を実行するＣＰＵ４２に対応し、第２更新処理部は、ステップＳ５０〜Ｓ５８，Ｓ６２，Ｓ６４の処理を実行するＣＰＵ４２に対応する。空燃比制御装置は、制御装置４０に対応する。
【００６７】
２．「更新するときの前記吸入空気量を含む前記学習領域における前記第１噴射弁用の学習値が前記第１判定処理部によって収束していると判定されている旨の条件」は、ステップＳ５８の処理における「ＦＤ（ｉ）＝１」の条件や、ステップＳ７８の処理における「ＦＰ（ｉ）＝１」の条件に対応する。
【００６８】
３．ｉとは別のｊについて、ステップＳ５８の処理において「ＦＤ（ｊ）＝１」の条件を含まないことや、ステップＳ７８の処理において「ＦＰ（ｊ）＝１」の条件を含まないことに対応する。
【００６９】
４．第１噴射弁がポート噴射弁１６に対応する場合、第２判定処理部は、ステップＳ８０，Ｓ８６の処理を実行するＣＰＵ４２に対応し、第１噴射弁が筒内噴射弁２６に対応する場合、第２判定処理部は、ステップＳ６０，Ｓ６６の処理を実行するＣＰＵ４２に対応する。
【００７０】
＜その他の実施形態＞
なお、上記実施形態の各事項の少なくとも１つを、以下のように変更してもよい。
・「平均操作量算出処理部Ｍ３０について」
平均操作量算出処理部Ｍ３０としては、フィードバック操作量ＫＡＦの加重移動平均処理を実行するものに限らず、たとえば、所定の複数個の単純移動平均値を算出する処理であってもよい。ここで、所定の複数個は、１０個以上であることが望ましい。
【００７１】
・「更新量算出処理のゲインについて」
更新量算出処理としては、平均操作量ＫＡＦａと「１」との乖離が大きいほど、学習値の更新量ΔＬの絶対値を大きくするものに限らない。たとえば、「ＫＡＦａ−１」に所定のゼロ以上１以下の定数を乗算した値を、更新量ΔＬとする処理であってもよい。
【００７２】
・「更新量ΔＬの算出処理の入力パラメータについて」
更新量ΔＬの算出処理の入力パラメータとしては、平均操作量ＫＡＦａに限らない。たとえば、フィードバック処理部Ｍ１４が積分要素を備える場合、積分要素の出力値としてもよい。なお、この場合、積分要素の出力値の変動量が所定量以下となることを条件に、学習値の更新を許可することが望ましい。
【００７３】
なお、積分要素の出力値にも限らず、たとえば都度のフィードバック操作量ＫＡＦに応じて更新量ΔＬを算出してもよい。
・「収束判定について」
フィードバック操作量ＫＡＦによるベース噴射量Ｑｂの補正率の平均値が所定比率δ以下となるか否かの判定処理としては、平均操作量ＫＡＦａに基づくものに限らない。たとえば、フィードバック操作量ＫＡＦによるベース噴射量Ｑｂの補正率が所定比率δ以下となる状態が所定時間継続する場合に、学習値ＬＰや学習値ＬＤが収束した旨の判定をする処理であってもよい。すなわち、この場合、フィードバック操作量ＫＡＦによるベース噴射量Ｑｂの補正率の所定時間における平均値についても、所定比率δ以下となっている。
【００７４】
またたとえば、フィードバック操作量ＫＡＦによるベース噴射量Ｑｂの補正率が所定比率δよりも小さい特定比率以下となることと、フィードバック操作量ＫＡＦの所定期間における変動量が所定量以下であることとの論理積が真である場合に、収束した旨判定する処理であってもよい。この場合、所定期間における補正率の平均値を、所定比率δ以下とすることができる。
【００７５】
さらに、フィードバック操作量ＫＡＦを入力として収束した旨判定する処理に限らない。たとえば、フィードバック処理部Ｍ１４の積分要素の出力値によるベース噴射量Ｑｂの補正率が所定比率δよりも小さい特定比率以下であることと、所定期間における積分要素の出力値の変動量が所定量以下であることとの論理積が真である場合、収束した旨の判定をしてもよい。すなわち、積分要素の出力値の変動量が小さい場合、比例要素の出力値や微分要素の出力値の「１」に対するずれ量は小さくなるため、上記論理積が真となるなら、フィードバック操作量ＫＡＦによるベース噴射量Ｑｂの補正率が所定比率δ以下となると考えられる。
【００７６】
・「不感帯について」
上記実施形態では、ポート噴射弁１６および筒内噴射弁２６の双方を操作対象とする空燃比フィードバック制御時において、平均操作量ＫＡＦａが「１−δ」以上且つ「１＋δ」以下の領域を、学習値を更新しない不感帯領域としたが、これに限らない。すなわち、たとえば、図８のステップＳ６０において肯定判定される場合においても、ステップＳ６２，Ｓ６４の処理を実行したり、図９のステップＳ８０において肯定判定される場合においても、ステップＳ８２，Ｓ８４の処理を実行したりしてもよい。
【００７７】
なお、不感帯の設定は、ポート噴射弁１６および筒内噴射弁２６の双方を操作対象とする空燃比フィードバック制御時に限らない。すなわち、たとえば図６のステップＳ１８の処理において肯定判定される場合にはステップＳ２４，Ｓ２６の処理を実行しないこととしたり、図７のステップＳ３８の処理において肯定判定される場合にはステップＳ４４，Ｓ４６の処理を実行しないこととしてもよい。
【００７８】
またこれに代えて、噴き分け率Ｋｐｆｉが「１」または「０」である場合において、ベース噴射量Ｑｂの補正率が規定比率δＬよりも大きいことを条件に、学習値ＬＰ，ＬＤを更新することとし、規定比率δＬをゼロよりも大きい値であって且つ、上記所定比率δよりも小さい値としてもよい。
【００７９】
・「学習禁止領域について」
学習禁止領域ＡＰとしては、互いに隣り合う学習領域ＡＬｉ，ＡＬｊであって且つ当該学習禁止領域ＡＰを挟む学習領域ＡＬｉ，ＡＬｊよりも広いものに限らない。この際、次の設定とする場合には、学習領域ＡＬｉにおいて、学習領域ＡＬｉ，ＡＬｊのそれぞれにおける学習値の加重移動平均処理値が学習値ＬＰ，ＬＤとされている場合に、学習値ＬＰ，ＬＤにおいて、学習領域ＡＬｉにおける値が支配的となる。その設定とは、学習領域ＡＬｉと学習禁止領域ＡＰとの境界と代表点ＲＰｉとの幅や、学習領域ＡＬｊと学習禁止領域ＡＰとの境界と代表点ＲＰｊとの幅よりも、学習禁止領域ＡＰが広い設定である。
【００８０】
・「学習領域について」
吸入空気量Ｇａの値に応じて区分された複数の領域としては、吸入空気量Ｇａの大きさが隣り合う領域同士の間に学習禁止領域を挟むものに限らない。たとえば、吸入空気量Ｇａの大きさが隣り合う領域が互いに隣接するものであってもよい。なお、この場合、たとえば「ＫＡＦａ−１」の大きさが同一の場合、更新量ΔＬを代表点ＲＰｉに近いほど大きくする等、学習値の更新ゲインを、吸入空気量Ｇａと代表点ＲＰｉとの距離が近いほど大きくしてもよい。
【００８１】
また、学習領域としては、吸入空気量Ｇａによって区分されるものに限らず、たとえば、内燃機関１０の冷却水温および吸入空気量Ｇａによって区分されるものであってもよい。もっとも、吸入空気量Ｇａによって区分されること自体必須ではない。
【００８２】
さらに、学習領域が複数あることも必須ではない。
ポート噴射弁１６用の学習値ＬＰの学習領域と筒内噴射弁２６用の学習値ＬＤの学習領域とが同一であることも必須ではない。
【００８３】
・「噴射量への学習値の反映について」
上記実施形態では、実際の吸入空気量Ｇａが代表点ＲＰのいずれにも一致しない場合、２つの代表点ＲＰｉ，ＲＰｊ（ｊ＝ｉ＋１）のそれぞれにおける学習値の加重移動平均処理によって指令噴射量Ｑｐ＊，Ｑｄ＊の算出に用いる学習値ＬＤ，ＬＰを算出したが、これに限らない。たとえば、「学習領域について」の欄に記載したように、学習禁止領域が存在しないものにおいて、現在の学習領域ＡＬｉに対応する学習値ＬＤ（ｉ），ＬＰ（ｉ）を学習値ＬＤ，ＬＰとしてもよい。もっとも、学習禁止領域が存在する場合であっても、吸入空気量Ｇａがいずれかの学習領域ＡＬｉに入っている場合には、学習値ＬＤ（ｉ），ＬＰ（ｉ）を学習値ＬＤ，ＬＰとしてもよい。
【００８４】
・「０＜Ｋｐｆｉ＜１における更新条件について」
上記実施形態では、収束判定フラグＦＰ（ｉ）が「１」であることを条件に、学習値ＬＤ（ｉ）を更新したが、これに限らない。たとえば、学習値ＬＰ（ｉ）と学習値ＬＰ（ｉ＋１）との加重移動平均処理によって学習値ＬＰが算出される場合、収束判定フラグＦＰ（ｉ）に加えて収束判定フラグＦＰ（ｉ＋１）が「１」であること条件に学習値ＬＤ（ｉ）を更新してもよい。同様に、収束判定フラグＦＤ（ｉ）が「１」であることを条件に、学習値ＬＰ（ｉ）を更新するものに限らない。たとえば、学習値ＬＤ（ｉ）と学習値ＬＤ（ｉ＋１）との加重移動平均処理によって学習値ＬＤが算出される場合、収束判定フラグＦＤ（ｉ）に加えて収束判定フラグＦＤ（ｉ＋１）が「１」であること条件に学習値ＬＰ（ｉ）を更新してもよい。この条件設定は、学習禁止領域ＡＰが狭い場合には特に有効である。
【００８５】
上記「学習領域について」の欄に記載したように、ポート噴射弁１６用の学習値ＬＰの学習領域と筒内噴射弁２６用の学習値ＬＤの学習領域とが一致しない場合、たとえば、噴き分け率Ｋｐｆｉが規定値Ｋｔｈ以上であって現在の吸入空気量Ｇａがポート噴射弁１６用の学習値ＬＰ（ｉ）の学習領域ＡＬｉに入っているときには次のようにすればよい。すなわち、指令噴射量Ｑｄ＊の算出に用いる学習値ＬＤ（ｊ），ＬＤ（ｊ＋１）のうちの学習値ＬＤ（ｊ）の学習領域に現在の吸入空気量Ｇａが含まれるなら、学習値ＬＤ（ｊ）が収束していることを学習値ＬＰ（ｉ）の更新条件とすればよい。また、学習値ＬＤ（ｊ）の学習領域と学習値ＬＤ（ｊ＋１）の学習領域とのいずれも現在の吸入空気量Ｇａを含まないなら、学習値ＬＤ（ｊ），ＬＤ（ｊ＋１）の双方が収束していることを、学習値ＬＰ（ｉ）の更新条件とすればよい。
【００８６】
・「噴き分け領域について」
噴き分け率Ｋｐｆｉの設定としては、図２に示したものに限らない。特に、学習領域ＡＬ１，ＡＬ２，ＡＬ３，…のうちの、ポート噴射弁１６のみの燃料噴射と、筒内噴射弁２６のみの燃料噴射と、ポート噴射弁１６および筒内噴射弁２６の双方からの燃料噴射とのいずれともなりうる領域が少なくとも１つ存在する設定に限らない。たとえば、上記いずれともなりうる領域が１つもない設定を原則とする場合であってもよい。この場合であっても、たとえば、筒内噴射弁２６のみの燃料噴射と、ポート噴射弁１６および筒内噴射弁２６の双方からの燃料噴射とのいずれともなりうる領域であって、ポート噴射弁１６のみの燃料噴射を実行することがない領域については、上記双方から燃料を噴射するときにポート噴射弁１６用の学習値ＬＰを更新すればよい。これにより、たとえば筒内噴射弁２６の異常時に、上記領域においてポート噴射弁１６のみを用いた燃料噴射を実行する必要が生じた場合にその当初から空燃比の制御性を高く維持することができる。
【００８７】
・「噴き分け時の更新処理について」
上記実施形態では、ポート噴射弁１６および筒内噴射弁２６の双方から燃料噴射を実行しているときに、ポート噴射弁１６用の学習値ＬＰと筒内噴射弁２６用の学習値ＬＤとの双方が更新対象となり得たが、これに限らない。たとえば、ポート噴射弁１６用の学習値ＬＰのみが更新対象となりうる設定であってもよく、またたとえば、筒内噴射弁２６用の学習値ＬＤのみが更新対象となりうる設定であってもよい。
【００８８】
・「フィードバック処理部について」
比例要素、積分要素、および微分要素の各出力値の和をフィードバック操作量ＫＡＦとする代わりに、たとえば、比例要素および積分要素の各出力値の和をフィードバック操作量ＫＡＦとしてもよい。またたとえば、比例要素の出力値をフィードバック操作量ＫＡＦとしたり、積分要素の出力値をフィードバック操作量ＫＡＦとしたりしてもよい。
【００８９】
・「規定値Ｋｔｈについて」
上記実施形態では、規定値Ｋｔｈを、「０．５」としたが、これに限らない。たとえば、「０．４」以上「０．５」未満の値に設定してもよく、またたとえば、「０．５」よりも大きく「０．６」以下の値に設定してもよい。もっとも、「０．４」から「０．６」の間の値にも限らない。
【００９０】
・「収束判定のリセット条件について」
収束判定をした旨の履歴をリセットする条件としては、学習値ＬＰ，ＬＤが収束していない旨の判定がなされる旨の条件や、イグニッションスイッチ５８がオフからオンに切り替わる旨の条件に限らない。たとえば、イグニッションスイッチ５８がオフからオンに切り替わることを条件とすることに代えて、イグニッションスイッチ５８がオンからオフに切り替わることを条件としてもよい。
【００９１】
また、たとえば、内燃機関および電動機を備えるいわゆるハイブリッド車両において、同ハイブリッド車両を走行可能とするスイッチがオン状態になっている期間において内燃機関の始動要求が最初に生じることを条件としてもよい。
【００９２】
なお、これに限らず、たとえば、エアフローメータ５６が交換されたり、ポート噴射弁１６が交換されたりすることをポート噴射弁１６用の学習値ＬＰの収束判定履歴のリセット条件とし、エアフローメータ５６が交換されたり、筒内噴射弁２６が交換されたりすることを筒内噴射弁２６用の学習値ＬＤの収束判定履歴のリセット条件としてもよい。ただし、こうしたリセット条件を設けて且つ、たとえばポート噴射弁１６のみの燃料噴射が原則なされない学習領域ＡＬｉが存在する設定の場合、次のようにすることが望ましい。すなわち、図８の処理において、収束判定フラグＦＰ（ｉ），ＦＤ（ｉ）がともに「１」の場合、平均操作量ＫＡＦａによるベース噴射量Ｑｂの補正率が所定比率δよりも大きくなることにより、収束判定フラグＦＰ（ｉ）をリセットすることが望ましい。また、筒内噴射弁２６のみの燃料噴射が原則なされない学習領域が存在する設定の場合、次のようにすることが望ましい。すなわち、図９の処理において、収束判定フラグＦＰ（ｉ），ＦＤ（ｉ）がともに「１」の場合、平均操作量ＫＡＦａによるベース噴射量Ｑｂの補正率が所定比率δよりも大きくなることにより、収束判定フラグＦＤ（ｉ）をリセットすることが望ましい。
【００９３】
・「開ループ処理部について」
たとえば、ベース噴射量Ｑｂの算出に吸入空気量Ｇａを直接用いることなく、定常時においてエアモデルを補正するためにのみ吸入空気量Ｇａを利用することとし、エアモデルから推定された筒内充填空気量に基づきベース噴射量Ｑｂを算出してもよい。この場合、エアモデルによって推定される筒内充填空気量は、吸入空気量Ｇａに含まれる誤差の影響を受け、この誤差に起因した空燃比制御の誤差が学習値ＬＰ，ＬＤによって補償される。
【００９４】
・「制御装置について」
制御装置４０が、ＣＰＵ４２およびメモリ４４を備えて、上述した各種処理を全てソフトウェア処理するものに限らない。たとえば、平均操作量算出処理部Ｍ３０の処理を、専用のハードウェア（特定用途向け集積回路：ＡＳＩＣ）にて処理するなど、少なくとも一部の処理を実行するＡＳＩＣを備えたものであってもよい。
【符号の説明】
【００９５】
１０…内燃機関、１２…吸気通路、１４…スロットルバルブ、１６…ポート噴射弁、１８…吸気バルブ、２０…シリンダ、２２…ピストン、２４…燃焼室、２６…筒内噴射弁、２８…点火プラグ、３０…点火装置、３２…クランク軸、３４…排気バルブ、３６…排気通路、３８…触媒、４０…制御装置、４２…ＣＰＵ、４４…メモリ、４８…起動スイッチ、５０…クランク角センサ、５２…空燃比センサ、５６…エアフローメータ、５８…イグニッションスイッチ。
【図１】
2018003836.tif 000003
【図２】
2018003836.tif 000004
【図３】
2018003836.tif 000005
【図４】
2018003836.tif 000006
【図５】
2018003836.tif 000007
【図６】
2018003836.tif 000008
【図７】
2018003836.tif 000009
【図８】
2018003836.tif 000010
【図９】
2018003836.tif 000011
【図１０】
2018003836.tif 000012