(57)【要約】【課題】シリンダ壁面の温度にかかわらず低温増量処理がなされているときの学習値の誤学習を抑制できるようにした内燃機関の空燃比制御装置を提供する。【解決手段】フィードバック処理部Ｍ１４は、空燃比センサの出力値Ｉａｆを目標値Ｉａｆ＊にフィードバック制御するためのフィードバック操作量ＫＡＦを算出する。指令噴射量算出処理部Ｍ１６は、内燃機関の低温駆動時において、ベース噴射量Ｑｂを、フィードバック操作量ＫＡＦおよび低温学習値ＬａｆＬ、および低温増量処理のための増量係数にて補正することによって、指令噴射量Ｑ＊を算出する。更新処理部Ｍ１８は、フィードバック操作量ＫＡＦに基づき、低温学習値ＬａｆＬを更新する。詳しくは、更新処理部Ｍ１８は、学習用補正処理部Ｍ１８ａにおいて内燃機関のシリンダ壁面の温度に応じてフィードバック操作量ＫＡＦを補正し、補正された値に応じて低温学習値ＬａｆＬを更新する。【選択図】図２
2018003603.tif 000002
【特許請求の範囲】
【請求項１】
空燃比を目標値に開ループ制御するためのベース噴射量を設定する開ループ処理部と、
内燃機関の排気通路に設けられた空燃比センサによる前記空燃比の検出値を前記目標値にフィードバック制御するためのフィードバック操作量を算出するフィードバック処理部と、
前記内燃機関の温度が規定温度以下である場合、前記ベース噴射量を増量補正する増量処理部と、
前記フィードバック操作量および学習値によって補正されて且つ前記増量処理部によって増量補正された前記ベース噴射量に基づき、燃料噴射弁を操作する操作処理部と、
前記フィードバック操作量に基づき、前記学習値を更新する更新処理部と、を備え、
前記更新処理部は、前記増量処理部による増量補正がなされているとき、前記フィードバック操作量による前記ベース噴射量の補正率を同一として且つ前記増量処理部による前記ベース噴射量の増量補正率を同一とする場合、前記学習値を、前記内燃機関のシリンダ壁面の温度が高い場合に低い場合よりも前記ベース噴射量の増量補正率が大きくなるように更新する内燃機関の空燃比制御装置。
【請求項２】
前記内燃機関の回転速度および負荷によって定まる動作点が同一である場合、前記増量処理部による増量補正がなされているときになされていないときと比較して前記目標値をリッチとするリッチ処理部を備える請求項１記載の内燃機関の空燃比制御装置。
【請求項３】
前記更新処理部は、
前記内燃機関の吸入空気量の積算量である積算空気量を算出する空気量積算処理部を備え、
前記フィードバック操作量による前記ベース噴射量の補正率を同一として且つ前記増量処理部による前記ベース噴射量の増量補正率を同一とする場合、前記空気量積算処理部が算出した積算空気量が多い場合に少ない場合よりも前記シリンダ壁面の温度が高いとして、前記学習値を、前記ベース噴射量の増量補正率が大きくなるように更新する請求項１または２記載の内燃機関の空燃比制御装置。
【請求項４】
前記更新処理部は、
前記ベース噴射量の積算量である積算噴射量を算出する噴射量積算処理部を備え、
前記フィードバック操作量による前記ベース噴射量の補正率を同一として且つ前記増量処理部による前記ベース噴射量の増量補正率を同一とする場合、前記噴射量積算処理部が算出した積算噴射量が多い場合に少ない場合よりも前記シリンダ壁面の温度が高いとして、前記学習値を、前記ベース噴射量の増量補正率が大きくなるように更新する請求項１または２記載の内燃機関の空燃比制御装置。
【請求項５】
前記更新処理部は、
前記内燃機関の燃焼室内の圧力の検出値の時系列データに基づき、前記内燃機関の燃焼室内において発生する熱量を算出する熱量算出処理部を備え、
前記増量処理部による増量補正がなされているとき、前記熱量算出処理部によって算出される熱量に基づき前記シリンダ壁面の温度を把握しつつ、前記学習値を更新する請求項１または２記載の内燃機関の空燃比制御装置。
【請求項６】
前記更新処理部は、前記増量処理部による増量がなされているとき、前記内燃機関の冷却水の温度が高い場合に低い場合よりも前記シリンダ壁面の温度が高いとし、前記冷却水の温度を加味して前記学習値を更新する請求項３〜５のいずれか１項に記載の内燃機関の空燃比制御装置。
【請求項７】
前記学習値は、前記内燃機関の温度が所定温度よりも高い場合の高温学習値と、前記所定温度以下である場合の低温学習値と、を含み、
前記操作処理部は、前記内燃機関の温度が前記規定温度よりも高い場合、前記フィードバック操作量および学習値によって補正された前記ベース噴射量に基づき、前記燃料噴射弁を操作するものであり、
前記所定温度が、前記規定温度以上であって、前記増量処理部による増量補正がなされているときの前記更新処理部による更新対象が、前記低温学習値である請求項１〜６のいずれか１項に記載の内燃機関の空燃比制御装置。
【請求項８】
前記フィードバック処理部は、前記検出値と前記目標値との差を入力とする積分要素を備え、
前記フィードバック操作量は、前記積分要素の出力値に基づく値であり、
前記ベース噴射量の補正に用いられる前記学習値が前記低温学習値から前記高温学習値に切り替えられる際、前記低温学習値から前記高温学習値を減算した値である差分値を前記積分要素が保持している値に加算する加算処理部を備える請求項７記載の内燃機関の空燃比制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、空燃比を目標値に開ループ制御するためのベース噴射量がフィードバック操作量および学習値に基づき補正されたものに応じて燃料噴射弁を操作する内燃機関の空燃比制御装置に関する。
【背景技術】
【０００２】
空燃比を目標値とするための開ループ操作量であるベース噴射量に基づき燃料噴射弁を操作する場合、燃料噴射弁の噴射特性の基準となる特性に対するずれや、ベース噴射量の算出に用いた筒内吸入空気量と実際の筒内吸入空気量とのずれ等に起因して実際の空燃比が目標値からずれる。これに対し、ベース噴射量による開ループ制御に加えてフィードバック制御を採用する場合、上記開ループ制御によって生じる空燃比と目標値とのずれ（ベース噴射量による空燃比制御の誤差）は、フィードバック操作量によって補償される。さらに、空燃比制御においては、ベース噴射量による空燃比制御の誤差を補償するための補償量を学習値として学習することが周知である。
【０００３】
学習値を学習する空燃比制御装置として、たとえば特許文献１には、ベース噴射量を、低温時の燃料増量である暖機増量（低温増量）にて増量補正しているときに、空燃比のフィードバック操作量に基づき学習値を更新する装置が記載されている。この装置は、フィードバック操作量によるベース噴射量の補正率に、増量補正に基づく補正量が加算された値に基づき、学習値を更新する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平８−４５７９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上記のように内燃機関のベース噴射量の増量補正がなされている場合、増量された燃料の一部は、シリンダ壁面等に付着することなく、排気空燃比をリッチ化することに寄与する。そして、低温増量にて増量された燃料のうち排気空燃比のリッチ化に寄与する燃料によって、フィードバック操作量が変化することとなる。
【０００６】
ここで、排気空燃比をリッチ化させるのに寄与する割合は、低温増量によるベース噴射量の増量補正率が同一であっても、シリンダ壁面の温度に応じて変化する。したがって、上記装置のように、フィードバック操作量によるベース噴射量の補正率に低温増量に基づく補正量を加算したのみでは、シリンダ壁面の温度によっては、低温増量によって増量された燃料のうち排気空燃比をリッチ化するのに寄与した燃料に大きく影響されて学習値が更新されるいわゆる誤学習がなされるおそれがある。すなわち、燃料噴射弁の噴射特性の基準となる特性に対するずれや、ベース噴射量の算出に用いた筒内吸入空気量と実際の筒内吸入空気量とのずれ等に起因したベース噴射量による空燃比制御の誤差を補償するうえで適切な値から大きくずれた値に学習値が更新されるおそれがある。
【０００７】
本発明は、そうした実情に鑑みてなされたものであり、その目的は、シリンダ壁面の温度にかかわらず低温増量処理がなされているときの学習値の誤学習を抑制できるようにした内燃機関の空燃比制御装置を提供することにある。
【課題を解決するための手段】
【０００８】
以下、上記課題を解決するための手段およびその作用効果について記載する。
１．内燃機関の空燃比制御装置は、空燃比を目標値に開ループ制御するためのベース噴射量を設定する開ループ処理部と、内燃機関の排気通路に設けられた空燃比センサによる前記空燃比の検出値を前記目標値にフィードバック制御するためのフィードバック操作量を算出するフィードバック処理部と、前記内燃機関の温度が規定温度以下である場合、前記ベース噴射量を増量補正する増量処理部と、前記フィードバック操作量および学習値によって補正されて且つ前記増量処理部によって増量補正された前記ベース噴射量に基づき、燃料噴射弁を操作する操作処理部と、前記フィードバック操作量に基づき、前記学習値を更新する更新処理部と、を備え、前記更新処理部は、前記増量処理部による増量補正がなされているとき、前記フィードバック操作量による前記ベース噴射量の補正率を同一として且つ前記増量処理部による前記ベース噴射量の増量補正率を同一とする場合、前記学習値を、前記内燃機関のシリンダ壁面の温度が高い場合に低い場合よりも前記ベース噴射量の増量補正率が大きくなるように更新する。
【０００９】
上記構成において、フィードバック操作量および学習値によって補正されたベース噴射量は、空燃比を目標値に制御するための値である。このため、ベース噴射量が増量処理部によってさらに増量補正される場合、増量処理部による増量補正量の一部が排気空燃比をリッチ化させるのに寄与し得る。そして、リッチ化に寄与し得る量は、シリンダ壁面の温度が高い場合に低い場合よりも、多くなる。これは、増量処理部によるベース噴射量の増量補正率が同一であったとしても、シリンダ壁面の温度が高い場合には低い場合と比較して、排気空燃比が目標値に対してリッチ側により大きくずれることを意味する。このため、増量処理部によるベース噴射量の増量補正率が同一であったとしても、シリンダ壁面の温度が高い場合には低い場合と比較して、フィードバック操作量は、よりリーン側の値となる。したがって、増量補正がなされているときのフィードバック操作量が、仮に増量補正がなされていなかったと仮定する場合のフィードバック操作量よりもよりリーンとなる度合いは、シリンダ壁面の温度が高い場合に低い場合よりも大きくなる。
【００１０】
そこで上記構成では、フィードバック操作量によるベース噴射量の補正率を同一として且つ増量処理部によるベース噴射量の増量補正率とを同一とする場合、学習値を、シリンダ壁面の温度が高い場合に低い場合よりもベース噴射量の増量補正率が大きくなる値に更新する。これにより、増量補正によるフィードバック操作量の変化の影響を高精度に低減することができる。したがって、シリンダ壁面の温度にかかわらず増量補正がなされているときの学習値の誤学習を抑制できる。
【００１１】
なお、「増量補正率が大きくなるように更新する」とは、たとえば、フィードバック操作量がベース噴射量を減量補正する値である場合、その減量補正の度合いを小さくするように更新することも含まれる。
【００１２】
２．上記１記載の内燃機関の空燃比制御装置において、前記内燃機関の回転速度および負荷によって定まる動作点が同一である場合、前記増量処理部による増量補正がなされているときになされていないときと比較して前記目標値をリッチとするリッチ処理部を備える。
【００１３】
空燃比が同一である場合、内燃機関の温度が低い場合においては高い場合と比較して、燃料の燃焼速度が低くなる傾向がある。そこで上記構成では、低温駆動時において、低温駆動時ではないときよりも目標値をリッチとすることにより、燃焼室内において燃焼に供される混合気の空燃比を低温駆動時ではないときよりもリッチとすることができる。これにより、低温駆動時における燃焼速度を高く維持することが可能となる。しかも、この場合、ベース噴射量が、リッチ化された目標値に空燃比を制御するうえでの噴射量とされるため、燃焼室内において燃焼に供される混合気の空燃比をリッチとするための燃料増量がフィードバック操作量に影響を及ぼすことを抑制することができる。
【００１４】
３．上記１または２記載の内燃機関の空燃比制御装置において、前記更新処理部は、前記内燃機関の吸入空気量の積算量である積算空気量を算出する空気量積算処理部を備え、前記フィードバック操作量による前記ベース噴射量の補正率を同一として且つ前記増量処理部による前記ベース噴射量の増量補正率を同一とする場合、前記空気量積算処理部が算出した積算空気量が多い場合に少ない場合よりも前記シリンダ壁面の温度が高いとして、前記学習値を、前記ベース噴射量の増量補正率が大きくなるように更新する。
【００１５】
積算空気量は、燃焼室における燃焼エネルギの積算量と強い正の相関を有するパラメータである一方、シリンダ壁面の温度は、燃焼室における燃焼エネルギの積算量と強い正の相関を有する。上記構成では、この相関関係に鑑み、積算空気量が多い場合に少ない場合よりもシリンダ壁面の温度が高いとする。
【００１６】
４．上記１または２記載の内燃機関の空燃比制御装置において、前記更新処理部は、前記ベース噴射量の積算量である積算噴射量を算出する噴射量積算処理部を備え、前記フィードバック操作量による前記ベース噴射量の補正率を同一として且つ前記増量処理部による前記ベース噴射量の増量補正率を同一とする場合、前記噴射量積算処理部が算出した積算噴射量が多い場合に少ない場合よりも前記シリンダ壁面の温度が高いとして、前記学習値を、前記ベース噴射量の増量補正率が大きくなるように更新する。
【００１７】
積算噴射量は、燃焼室における燃焼エネルギの積算量と強い正の相関を有するパラメータである一方、シリンダ壁面の温度は、燃焼室における燃焼エネルギの積算量と強い正の相関を有する。上記構成では、この相関関係に鑑み、積算噴射量が多い場合に少ない場合よりもシリンダ壁面の温度が高いとする。
【００１８】
５．上記１または２記載の内燃機関の空燃比制御装置において、前記更新処理部は、前記内燃機関の燃焼室内の圧力の検出値の時系列データに基づき、前記内燃機関の燃焼室内において発生する熱量を算出する熱量算出処理部を備え、前記増量処理部による増量補正がなされているとき、前記熱量算出処理部によって算出される熱量に基づき前記シリンダ壁面の温度を把握しつつ、前記学習値を更新する。
【００１９】
シリンダ壁面の温度は、燃焼室内において発生する熱量と正の相関を有する。上記構成では、この相関関係に鑑み、熱量に基づきシリンダ壁面の温度を把握しつつ学習値を更新する。
【００２０】
６．上記３〜５のいずれか１項に記載の内燃機関の空燃比制御装置において、前記更新処理部は、前記増量処理部による増量がなされているとき、前記内燃機関の冷却水の温度が高い場合に低い場合よりも前記シリンダ壁面の温度が高いとし、前記冷却水の温度を加味して前記学習値を更新する。
【００２１】
積算空気量や、積算噴射量、燃焼室内において発生する熱量が同一であっても冷却水の温度が高い場合には低い場合よりもシリンダ壁面の温度が高くなる。このため、上記構成では、シリンダ壁面の温度を、冷却水の温度を加味して把握する。
【００２２】
７．上記１〜６のいずれか１項に記載の内燃機関の空燃比制御装置において、前記学習値は、前記内燃機関の温度が所定温度よりも高い場合の高温学習値と、前記所定温度以下である場合の低温学習値と、を含み、前記操作処理部は、前記内燃機関の温度が前記規定温度よりも高い場合、前記フィードバック操作量および学習値によって補正された前記ベース噴射量に基づき、前記燃料噴射弁を操作するものであり、前記所定温度が、前記規定温度以上であって、前記増量処理部による増量補正がなされているときの前記更新処理部による更新対象が、前記低温学習値である。
【００２３】
内燃機関の低温駆動時には、低温駆動時ではない場合と比較して、燃料が気化し難いことから、ベース噴射量が同一である場合の排気空燃比のばらつきは、低温駆動時と低温駆動時ではない場合とで相違する傾向にある。そこで、上記構成では、低温学習値と高温学習値とを備えることにより、内燃機関の温度に応じて適切な学習値を用いることができる。
【００２４】
８．上記７記載の内燃機関の空燃比制御装置において、前記フィードバック処理部は、前記検出値と前記目標値との差を入力とする積分要素を備え、前記フィードバック操作量は、前記積分要素の出力値に基づく値であり、前記ベース噴射量の補正に用いられる前記学習値が前記低温学習値から前記高温学習値に切り替えられる際、前記低温学習値から前記高温学習値を減算した値である差分値を前記積分要素が保持している値に加算する加算処理部を備える。
【００２５】
低温学習値と高温学習値とに相違がある場合、低温学習値から高温学習値に切り替えられるのに伴って、燃料噴射弁の噴射量がステップ状に変化するおそれがある。これに対し、上記構成では、積分要素が保持している値に差分値を加算することによって、切替に起因して噴射量がステップ状に変化することを抑制できる。しかも、切替後は、フィードバック制御によって、積分要素が更新されるため、仮に積分要素の保持する値が空燃比の検出値を目標値にフィードバック制御するうえで適切な値からずれていたとしても、そのずれは積分要素が保持する値が更新されることによって滑らかに正しい値に移行する。また、積分要素の保持する値が空燃比の検出値を目標値にフィードバック制御するうえで適切な値であって且つ保持する値の絶対値がゼロと比較して大きい場合には、高温学習値が更新されるのに伴って、積分要素が保持する値が更新され、積分要素が保持する値の絶対値が滑らかに減少していく。
【図面の簡単な説明】
【００２６】
【図１】第１の実施形態にかかる空燃比制御装置および内燃機関を示す図。
【図２】同実施形態にかかる空燃比制御装置の処理の一部を示すブロック図。
【図３】同実施形態にかかる指令噴射量算出処理部の処理の手順を示す流れ図。
【図４】同実施形態にかかる選択学習処理部の処理の手順を示す流れ図。
【図５】同実施形態にかかる学習用補正処理部の処理の手順を示す流れ図。
【図６】同実施形態にかかるフィードバックの有無に応じた噴射量を示す図。
【図７】第２の実施形態にかかる低温学習値および高温学習値の切替時の処理を示す流れ図。
【図８】同実施形態にかかる積分要素の補正処理を示すタイムチャート。
【図９】第３の実施形態にかかる学習用補正処理部の処理の手順を示す流れ図。
【図１０】第４の実施形態にかかる学習用補正処理部の処理の手順を示す流れ図。
【発明を実施するための形態】
【００２７】
＜第１の実施形態＞
以下、内燃機関の空燃比制御装置にかかる第１の実施形態について図面を参照しつつ説明する。
【００２８】
図１に示す内燃機関１０は、火花点火式の多気筒内燃機関である。内燃機関１０の吸気通路１２には、その流路断面積を可変とするための電子制御式のスロットルバルブ１４が設けられている。吸気通路１２のうちスロットルバルブ１４の下流には、吸気ポートに燃料を噴射するポート噴射弁１６が設けられている。吸気通路１２内の空気やポート噴射弁１６から噴射された燃料は、吸気バルブ１８の開弁動作に伴って、シリンダ２０およびピストン２２によって区画される燃焼室２４に充填される。燃焼室２４には、点火装置３０の点火プラグ２８が突出している。そして、点火プラグ２８による火花点火によって、空気と燃料との混合気が着火され、混合気が燃焼に供される。混合気の燃焼エネルギの一部は、ピストン２２がシリンダ２０の壁面（シリンダ壁面２１）に沿って往復動作することによってクランク軸３２の回転エネルギに変換される。
【００２９】
燃焼に供された混合気は、排気バルブ３３の開弁動作に伴って、排気として、排気通路３４に排出される。排気通路３４には、三元触媒等の触媒３６が設けられている。
制御装置４０は、内燃機関１０を制御対象とし、制御量（トルク、排気成分）を制御するために、ポート噴射弁１６や、点火装置３０等のアクチュエータを操作する。上記制御に際し、制御装置４０は、クランク軸３２の回転角度を検出するクランク角センサ５０や、空燃比を検出する空燃比センサ５２、冷却水温（水温ＴＨＷ）を検出する水温センサ５４、吸入空気量Ｇａを検出するエアフローメータ５６等の各種センサ類の出力値を取り込む。
【００３０】
上記空燃比センサ５２は、触媒３６の上流側における排気通路３４に設けられ、排気通路３４内の排気成分に基づき排気空燃比を検出し、出力値Ｉａｆとして出力する。ここでは、対象排気の排気空燃比を、仮想混合気を用いて定義している。すなわち、仮想混合気を、新気および燃料のみからなって且つ燃焼させた場合に生成される排気の未燃燃料濃度（たとえばＨＣ）、不完全燃焼成分濃度（たとえばＣＯ）および酸素濃度が対象排気の未燃燃料濃度、不完全燃焼成分濃度および酸素濃度と同一となる混合気と定義し、排気空燃比を、仮想混合気の空燃比と定義している。ただし、ここで仮想混合気の燃焼には、未燃燃料濃度および不完全燃焼成分濃度と酸素濃度との少なくとも一方がゼロまたはゼロと見なせる値となる燃焼に限らず、未燃燃料濃度および不完全燃焼成分濃度と酸素濃度との双方がゼロよりも大きい状態となる燃焼も含まれることとする。
【００３１】
制御装置４０は、中央処理装置（ＣＰＵ４２）およびメモリ４４を備えており、メモリ４４に記憶されたプログラムをＣＰＵ４２が実行することにより、上記制御を実行する。図２に、メモリ４４に記憶されたプログラムに従ってＣＰＵ４２が実行する処理の一部を示す。
【００３２】
目標値設定処理部Ｍ１０は、燃焼室２４において燃焼に供される混合気の空燃比の目標値ＡＦ＊を設定する。本実施形態において、目標値設定処理部Ｍ１０は、目標値ＡＦ＊を、基本的には、理論空燃比とする。ただし、水温ＴＨＷが規定温度Ｔｔｈ以下の場合には、目標値ＡＦ＊を理論空燃比よりもリッチとする。これは、低温時には、燃料の燃焼速度が遅くなる傾向があることに鑑み、温度が高い場合と同等の燃焼速度とするための設定である。この設定によれば、内燃機関１０の負荷および回転速度にて定まる動作点が同一であったとしても、水温ＴＨＷが規定温度Ｔｔｈ以下である場合には、規定温度Ｔｔｈよりも高い場合よりも目標値ＡＦ＊がリッチとされることとなる。なお、規定温度Ｔｔｈは、たとえば、４０〜８０°Ｃ程度の値に設定すればよい。
【００３３】
目標値設定処理部Ｍ１０は、目標値ＡＦ＊を設定するとともに、目標値ＡＦ＊に対応する空燃比センサ５２の出力値Ｉａｆの目標値Ｉａｆ＊を設定する。
開ループ処理部Ｍ１２は、目標値ＡＦ＊に基づき、燃焼室２４内の空燃比を目標値ＡＦ＊とするための開ループ操作量として、ベース噴射量Ｑｂを算出する。詳しくは、開ループ処理部Ｍ１２は、吸入空気量Ｇａおよび回転速度ＮＥに応じて定まる燃焼室２４に吸入される空気量と、目標値ＡＦ＊とに基づき、ベース噴射量Ｑｂを算出する。なお、回転速度ＮＥは、クランク角センサ５０の出力信号Ｓｃｒに基づき算出される。
【００３４】
フィードバック処理部Ｍ１４は、出力値Ｉａｆを目標値Ｉａｆ＊にフィードバック制御するためのフィードバック操作量ＫＡＦを算出する。詳しくは、フィードバック処理部Ｍ１４は、比例要素、積分要素、および微分要素を備えており、それらの各出力値の和に基づき、フィードバック操作量ＫＡＦを算出する。なお、本実施形態において、フィードバック操作量ＫＡＦは、ベース噴射量Ｑｂの補正率を表現するパラメータであり、「１」となる場合に補正率が「０」となる。
【００３５】
指令噴射量算出処理部Ｍ１６は、ベース噴射量Ｑｂおよびフィードバック操作量ＫＡＦと、図２に示す低温学習値ＬａｆＬまたは高温学習値ＬａｆＨのいずれかに基づき、指令噴射量Ｑ＊を算出する。ここで、低温学習値ＬａｆＬおよび高温学習値ＬａｆＨは、いずれも、ベース噴射量Ｑｂの補正率を表現するパラメータであり、「１」となる場合に補正率が「０」となる。
【００３６】
図３に、指令噴射量算出処理部Ｍ１６が実行する処理の手順を示す。この処理は、たとえば所定周期で繰り返し実行される。なお、以下では、処理の主体を、ＣＰＵ４２として記載する。
【００３７】
図３に示す一連の処理において、ＣＰＵ４２は、まず、水温ＴＨＷを取得し（Ｓ１０）、吸入空気量Ｇａを取得する（Ｓ１２）。次に、ＣＰＵ４２は、内燃機関１０の低温時においてベース噴射量Ｑｂを増量補正する低温増量処理を実行していることを示す低温増量フラグＦが「１」であるか否かを判定する（Ｓ１４）。ＣＰＵ４２は、低温増量フラグＦが「１」ではないと判定する場合（Ｓ１４：ＮＯ）、水温ＴＨＷが規定温度Ｔｔｈ以下であるか否かを判定する（Ｓ１６）。この処理は、低温増量処理を実行するか否かを判定するための処理である。規定温度Ｔｔｈは、内燃機関１０の温度が低いことに起因して失火が生じるなどの事態が生じやすい温度の上限値に設定されている。
【００３８】
ＣＰＵ４２は、規定温度Ｔｔｈ以下であると判定する場合（Ｓ１６；ＹＥＳ）、低温増量フラグＦを「１」とする（Ｓ１８）。そして、ＣＰＵ４２は、低温増量処理を実行するために、ベース噴射量Ｑｂの増量係数ＫＷＬＢを算出する（Ｓ２０）。ここで、増量係数ＫＷＬＢは、「１」よりも大きい値を有し、水温ＴＨＷが低い場合に高い場合よりも大きい値に設定される。増量係数ＫＷＬＢは、内燃機関１０の低温駆動時に、重質燃料等、着火性の低い燃料が用いられたとしても必要量の燃料を確実に燃焼させることができるように余裕を持った値に設定される。
【００３９】
次に、ＣＰＵ４２は、低温増量処理を実行しているときの学習値である低温学習値ＬａｆＬのうち、ステップＳ１２の処理で取得した吸入空気量Ｇａに対応する値を選択する（Ｓ２２）。これは、図２に模式的に示すように、本実施形態では、吸入空気量Ｇａによって、いくつかの領域が区分され、区分された領域毎に、低温学習値ＬａｆＬが学習されることに対応している。
【００４０】
次に、ＣＰＵ４２は、ベース噴射量Ｑｂに、フィードバック操作量ＫＡＦ、低温学習値ＬａｆＬ、および増量係数ＫＷＬＢを乗算することによって指令噴射量Ｑ＊を算出する（Ｓ２４）。
【００４１】
一方、ＣＰＵ４２は、低温増量フラグＦが「１」であると判定する場合（Ｓ１４：ＹＥＳ）、水温ＴＨＷが規定温度Ｔｔｈよりも高いか否かを判定する（Ｓ２６）。そして、ＣＰＵ４２は、規定温度Ｔｔｈ以下と判定する場合（Ｓ２６：ＮＯ）、ステップＳ２０の処理に移行する。これに対し、ＣＰＵ４２は、規定温度Ｔｔｈよりも高いと判定する場合（Ｓ２６：ＹＥＳ）、低温増量フラグＦを「０」とする（Ｓ２８）。
【００４２】
そして、ＣＰＵ４２は、低温増量処理を実行していないときの学習値である高温学習値ＬａｆＨのうち、ステップＳ１２の処理で取得した吸入空気量Ｇａに対応する値を選択する（Ｓ３０）。これは、図２に模式的に示したように、本実施形態では、吸入空気量Ｇａによって、いくつかの領域が区分され、区分された領域毎に、高温学習値ＬａｆＨが学習されることに対応している。そしてＣＰＵ４２は、ベース噴射量Ｑｂに、フィードバック操作量ＫＡＦおよび高温学習値ＬａｆＨを乗算することによって指令噴射量Ｑ＊を算出する（Ｓ３２）。
【００４３】
なお、ＣＰＵ４２は、ステップＳ２４，Ｓ３２の処理が完了する場合には、図３に示す一連の処理を一旦終了する。
図２に戻り、操作処理部Ｍ２０は、指令噴射量Ｑ＊に基づき、ポート噴射弁１６を操作するための操作信号ＭＳ２を生成して、ポート噴射弁１６に出力する。
【００４４】
上記低温学習値ＬａｆＬおよび高温学習値ＬａｆＨは、フィードバック操作量ＫＡＦに基づき、更新処理部Ｍ１８によって生成される。次にこれについて説明する。
学習用補正処理部Ｍ１８ａは、フィードバック操作量ＫＡＦを入力とし、低温増量処理時には、これを補正したものを、低温増量処理がなされていないときには、その値をそのまま平均操作量算出処理部Ｍ１８ｂに出力する。
【００４５】
平均操作量算出処理部Ｍ１８ｂは、フィードバック操作量ＫＡＦから短いタイムスケールにおける変動を除いた平均操作量ＫＡＦａを算出する。ここでは、加重移動平均処理を例示している。すなわち、平均操作量ＫＡＦａの更新タイミングにおけるフィードバック操作量ＫＡＦに、係数αを乗算した値と、更新タイミング直前において保持されていた平均操作量ＫＡＦａに係数βを乗算した値との和を、更新された平均操作量ＫＡＦａとする。ここで、「０＜α＜β＜１、α＋β＝１」である。
【００４６】
選択学習処理部Ｍ１８ｃは、平均操作量ＫＡＦａに基づき、学習値を更新する処理を実行する。
図４に、選択学習処理部Ｍ１８ｃの処理の手順を示す。図４に示す処理は、たとえば所定周期で繰り返し実行される。なお、以下では、処理の主体をＣＰＵ４２として記載する。
【００４７】
図４に示す一連の処理において、ＣＰＵ４２は、まず、低温学習値ＬａｆＬや高温学習値ＬａｆＨの更新に用いるフィードバック操作量である平均操作量ＫＡＦａに基づき、低温学習値ＬａｆＬや高温学習値ＬａｆＨの更新量ΔＬを算出する（Ｓ４０）。ＣＰＵ４２は、平均操作量ＫＡＦａが大きければ大きいほど更新量ΔＬを大きい値とし、平均操作量ＫＡＦａが小さければ小さいほど更新量ΔＬを小さい値とし、平均操作量ＫＡＦａが「１」の場合には、更新量ΔＬをゼロとする。
【００４８】
次に、ＣＰＵ４２は、吸入空気量Ｇａを取得し（Ｓ４２）、吸入空気量Ｇａに基づき学習領域を選択する（Ｓ４４）。そして、ＣＰＵ４２は、低温増量フラグＦが「１」であるか否かを判定する（Ｓ４６）。ＣＰＵ４２は、「１」であると判定する場合（Ｓ４６：ＹＥＳ）、水温ＴＨＷが、規定温度Ｔｔｈよりも低い許容下限値ＴｔｈＬ以上であるか否かを判定する（Ｓ４８）。ここで、許容下限値ＴｔｈＬは、燃料性状によらず低温学習値ＬａｆＬを適切な値として学習可能な温度の下限値に設定されている。これは、温度が過度に低い場合、燃料性状によって適切な学習値が大きく変動することに鑑みたものである。そして、ＣＰＵ４２は、許容下限値ＴｔｈＬ以上であると判定する場合（Ｓ４８：ＹＥＳ）、ステップＳ４４において選択された学習領域における低温学習値ＬａｆＬに更新量ΔＬを加算し、低温学習値ＬａｆＬを更新する（Ｓ５０）。一方、ＣＰＵ４２は、「１」ではないと判定する場合（Ｓ４６：ＮＯ）、ステップＳ４４において選択された学習領域における高温学習値ＬａｆＨに更新量ΔＬを加算し、高温学習値ＬａｆＨを更新する（Ｓ５２）。
【００４９】
なお、ＣＰＵ４２は、ステップＳ５０，Ｓ５２の処理が完了する場合や、ステップＳ４８において否定判定する場合には、図４に示す一連の処理を一旦終了する。
図５に、上記学習用補正処理部Ｍ１８ａの処理の手順を示す。図５に示す処理は、たとえば所定周期で繰り返し実行される。なお、以下では、処理の主体をＣＰＵ４２として記載する。
【００５０】
図５に示す一連の処理において、ＣＰＵ４２は、まず、低温増量フラグＦが「１」であるか否かを判定する（Ｓ６０）。そしてＣＰＵ４２は、低温増量フラグＦが「１」であると判定する場合（Ｓ６０：ＹＥＳ）、水温ＴＨＷを取得する（Ｓ６２）。次に、ＣＰＵ４２は、内燃機関１０の始動時からの積算空気量ＩｎＧを更新する（Ｓ６４）。すなわち、図５に示す一連の処理の前回の制御周期から今回の制御周期までの吸入空気量Ｇａを、積算空気量ＩｎＧに加算することによって積算空気量ＩｎＧを更新する。なお、積算空気量ＩｎＧは、内燃機関１０の始動に際して一旦ゼロに初期化され、その後、ステップＳ６４の処理によって、吸入空気量Ｇａが都度加算されていく量である。
【００５１】
次に、ＣＰＵ４２は、低温増量処理によってポート噴射弁１６から噴射された余剰燃料のうち、排気空燃比のリッチ化に寄与しない燃料量の割合を示す未寄与分補正率Ｒｎｃ（０＜Ｒｎｃ＜１）を算出する（Ｓ６６）。未寄与分補正率Ｒｎｃは、シリンダ壁面２１の温度や吸気ポートの壁面（ポート壁面）の温度が低い場合に高い場合よりも大きい値となる。これは、燃料が気化することなくシリンダ壁面２１やポート壁面に付着する燃料量が、シリンダ壁面２１やポート壁面の温度が低い場合に高い場合よりも多くなるためである。
【００５２】
詳しくは、ＣＰＵ４２は、積算空気量ＩｎＧが大きい場合には小さい場合よりも、未寄与分補正率Ｒｎｃを小さい値に設定する。これは、積算空気量ＩｎＧが、燃焼室２４内で生じた燃焼エネルギ量の総量と相関を有することに鑑みたものである。すなわち、燃焼エネルギ量の総量が大きい場合には小さい場合よりもシリンダ壁面２１やポート壁面の温度が高くなる。また、ＣＰＵ４２は、水温ＴＨＷが高い場合に低い場合よりも未寄与分補正率Ｒｎｃを小さい値に設定する。これは、燃焼エネルギ量の総量が同一であったとしても、水温ＴＨＷが高いほど、シリンダ壁面２１やポート壁面の温度が高くなることに鑑みたものである。
【００５３】
具体的には、ＣＰＵ４２は、積算空気量ＩｎＧおよび水温ＴＨＷと未寄与分補正率Ｒｎｃとの関係を示す２次元マップを用いて、未寄与分補正率Ｒｎｃをマップ演算する。ここで、マップとは、入力変数（ここでは、積算空気量ＩｎＧおよび水温ＴＨＷ）の離散的な値のそれぞれと、出力変数（ここでは、未寄与分補正率Ｒｎｃ）との組となるデータである。ＣＰＵ４２は、出力変数を算出するための実際の入力変数の値がマップの入力変数の値のいずれにも一致しない場合、補間演算によって出力変数の値を算出する。
【００５４】
ＣＰＵ４２は、未寄与分補正率Ｒｎｃを算出すると、未寄与分補正率Ｒｎｃに基づき、フィードバック処理部Ｍ１４によって算出されたフィードバック操作量ＫＡＦから、低温増量処理に起因した排気空燃比のリッチ側へのずれ量を除去する処理を実行する（Ｓ６８）。具体的には、フィードバック操作量ＫＡＦに、リッチ化寄与分補正量Ａｃを加算する増量補正を実行する。リッチ化寄与分補正量Ａｃは、基本的には、「（１−１／ＫＷＬＢ）−Ｒｎｃ」であるが、「（１−１／ＫＷＬＢ）−Ｒｎｃ」がゼロ以上となるようにガード処理が施されたものである。
【００５５】
ここで、「１／ＫＷＬＢ」は、排気空燃比が目標値Ｉａｆ＊からずれる要因が低温増量処理のみであって且つ、低温増量処理による増量分の全てが排気空燃比をリッチ化させるのに寄与したと仮定した場合のフィードバック操作量ＫＡＦの値として想定されるものである。そのため、「１−１／ＫＷＬＢ」は、排気空燃比が目標値Ｉａｆ＊からずれる要因が低温増量処理のみであって且つ、低温増量処理による増量分の全てが排気空燃比をリッチ化させるのに寄与したと仮定した場合のフィードバック操作量ＫＡＦの減少量である。ただし、実際には、低温増量処理を実行した場合、その一部の燃料は、ポート壁面やシリンダ壁面２１に付着するなどして、排気空燃比をリッチ化することに寄与しない。「１−１／ＫＷＬＢ」から、この寄与しない部分の影響を差し引くべく、未寄与分補正率Ｒｎｃを減算した値がリッチ化寄与分補正量Ａｃである。リッチ化寄与分補正量Ａｃをフィードバック操作量ＫＡＦに加算することによって、低温増量処理に起因して排気空燃比がリッチ化されることによるフィードバック操作量ＫＡＦの減少分を補償した値を算出することができる。
【００５６】
なお、ＣＰＵ４２は、ステップＳ６８の処理が完了する場合や、ステップＳ６０において否定判定する場合には、図５に示す一連の処理を一旦終了する。
ここで、本実施形態の作用を説明する。
【００５７】
図６の左側には、フィードバック操作量ＫＡＦおよび低温学習値ＬａｆＬを利用しない場合の噴射量（図中、オープンループ）を示している。この噴射量は、ベース噴射量Ｑｂと、低温増量処理による噴射量「Ｑｂ・（ＫＷＬＢ−１）」とからなる。この燃料がポート噴射弁１６から噴射されることによって、排気空燃比のリッチ化に寄与する燃料量を図の右側において、寄与分燃料ΔＱｃと記載し、また、寄与しない燃料量を、未寄与分燃料ΔＱｎｃと記載している。フィードバック操作量ＫＡＦは、寄与分燃料ΔＱｃを減少させる値となる一方、未寄与分燃料ΔＱｎｃは、フィードバック操作量ＫＡＦには影響しない。このため、本実施形態では、低温増量処理をした場合にしなかった場合と比較して排気空燃比がリッチ化されるのに寄与した分だけ、低温学習値ＬａｆＬの算出に用いるフィードバック操作量ＫＡＦを補正する。
【００５８】
ここで、フィードバック操作量ＫＡＦに、リッチ化寄与分補正量Ａｃを加算する補正をする場合、平均操作量ＫＡＦａも増加補正される。このため、リッチ化寄与分補正量Ａｃによる補正がなされない場合と比較して、フィードバック処理部Ｍ１４によるフィードバック操作量ＫＡＦが同一であっても、低温学習値ＬａｆＬが、より大きい値に更新される。換言すれば、低温学習値ＬａｆＬによるベース噴射量Ｑｂの増量補正率がより大きくなるように低温学習値ＬａｆＬが更新される。特に、未寄与分補正率Ｒｎｃが小さいほど、リッチ化寄与分補正量Ａｃが大きい値となることから、未寄与分補正率Ｒｎｃが小さい場合には大きい場合と比較して、フィードバック処理部Ｍ１４によるフィードバック操作量ＫＡＦが同一であっても、低温学習値ＬａｆＬが、より大きい値に更新される。ここで、未寄与分補正率Ｒｎｃは、シリンダ壁面２１の温度が高い場合に低い場合よりも小さい値となる。このため、フィードバック操作量ＫＡＦによるベース噴射量Ｑｂの補正率が同一であって且つ低温増量処理によるベース噴射量の増量補正率（増量係数ＫＷＬＢ）が同一であっても、シリンダ壁面２１の温度が高い場合に低い場合よりも、低温学習値ＬａｆＬが、より大きい値に更新される。換言すれば、低温学習値ＬａｆＬによるベース噴射量Ｑｂの増量補正率が大きくなるように更新される。
【００５９】
このように、本実施形態によれば、増量係数ＫＷＬＢのみならず、シリンダ壁面２１の温度に応じて補正されたフィードバック操作量ＫＡＦに基づき低温学習値ＬａｆＬを補正することにより、シリンダ壁面２１の温度にかかわらず増量補正がなされているときの低温学習値ＬａｆＬの誤学習を抑制することができる。
【００６０】
ちなみに、リッチ化寄与分補正量Ａｃに応じた燃料量だけ低温増量処理によって増量する燃料量を減少させる場合には、リッチ化寄与分補正量Ａｃの誤差に起因して失火等の燃焼不良が生じる事態を確実に回避できないことが懸念される。これに対し、本実施形態では、低温増量処理については増量する燃料を余裕を持って多めに設定し、実際の排気空燃比が目標値ＡＦ＊からずれる場合には、フィードバック処理部Ｍ１４によって実際の排気空燃比を目標値ＡＦ＊とするために指令噴射量Ｑ＊が補正される。したがって、燃焼不良を確実に回避することと、排気空燃比を目標値ＡＦ＊に制御することとの双方を実現することができる。
【００６１】
以上説明した本実施形態によれば、さらに以下に記載する効果が得られる。
（１）燃焼速度を高く維持すべく、低温増量処理がなされている場合、なされていない場合と比較して目標値ＡＦ＊をリッチ側の値とした。この場合、ベース噴射量Ｑｂが、空燃比をリッチ化された目標値ＡＦ＊とするうえでの噴射量とされるため、燃焼室２４内において燃焼に供される混合気の空燃比をリッチとするための燃料増量がフィードバック操作量ＫＡＦに影響を及ぼすことを抑制することができる。
【００６２】
（２）未寄与分補正率Ｒｎｃを、シリンダ壁面２１の温度と強い相関を有する積算空気量ＩｎＧに基づき算出することにより、未寄与分補正率Ｒｎｃを高精度に算出することができる。
【００６３】
（３）燃焼室２４内の燃焼エネルギの総量が同一であっても、内燃機関１０の温度によって、シリンダ壁面２１の温度が相違する。そこで、未寄与分補正率Ｒｎｃを、水温ＴＨＷに基づき算出することによって、積算空気量ＩｎＧのみから算出する場合と比較すると、未寄与分補正率Ｒｎｃをより高精度に算出することができる。
【００６４】
（４）低温駆動時には、低温駆動時ではない場合と比較して、燃料が気化しにくいことから、ベース噴射量Ｑｂが同一である場合の排気空燃比のばらつきは、低温駆動時と低温駆動時ではない場合とで相違する傾向にある。そこで、低温学習値ＬａｆＬと高温学習値ＬａｆＨとを各別に学習することにより、内燃機関１０の温度に応じて適切な学習値を用いることができる。
【００６５】
（５）フィードバック処理部Ｍ１４によるフィードバック操作量ＫＡＦを未寄与分補正率Ｒｎｃに基づき補正した値に基づき、低温学習値ＬａｆＬの算出に用いる平均操作量ＫＡＦａを算出した。これにより、低温学習値ＬａｆＬの更新周期の間に増量係数ＫＷＬＢおよび未寄与分補正率Ｒｎｃが変化する場合、平均操作量ＫＡＦａを更新量ΔＬの算出時におけるリッチ化寄与分補正量Ａｃに基づき補正する場合と比較して、低温学習値ＬａｆＬの算出に用いるフィードバック操作量（平均操作量ＫＡＦａ）をより高精度な値とすることができる。
【００６６】
＜第２の実施形態＞
以下、内燃機関の空燃比制御装置にかかる第２の実施形態について、第１の実施形態との相違点を中心に図面を参照しつつ説明する。
【００６７】
上述した低温学習値ＬａｆＬと高温学習値ＬａｆＨとは、吸入空気量Ｇａが同一であっても互いに異なる値となりうる。低温学習値ＬａｆＬと高温学習値ＬａｆＨとが相違する場合、低温増量処理が終了し、低温学習値ＬａｆＬから高温学習値ＬａｆＨに切り替えられるときに、ポート噴射弁１６から噴射される燃料量がステップ状に変化するおそれがある。そこで、本実施形態では、以下の処理を実行する。
【００６８】
図７に、低温学習値ＬａｆＬを用いた燃料噴射制御から高温学習値ＬａｆＨを用いた燃料噴射制御への切替時の処理の手順を示す。図７に示す処理は、メモリ４４に記憶されたプログラムをＣＰＵ４２が実行することにより、指令噴射量算出処理部Ｍ１６の処理として実現される。なお、図７に示す処理は、たとえば所定周期で繰り返し実行される。
【００６９】
図７に示す一連の処理において、ＣＰＵ４２は、まず、低温増量フラグＦが、前回の制御周期において「１」であって且つ今回の制御周期において「０」となっているか否かを判定する（Ｓ７０）。この処理は、低温学習値ＬａｆＬを用いた燃料噴射制御から高温学習値ＬａｆＨを用いた燃料噴射制御への切替時であるか否かを判定するためのものである。そして、ＣＰＵ４２は、切替時であると判定する場合（Ｓ７０：ＹＥＳ）、吸入空気量Ｇａを取得し（Ｓ７２）、取得した吸入空気量Ｇａに基づき、燃料噴射制御に用いる学習値に対応する学習領域を選択する（Ｓ７４）。次に、ＣＰＵ４２は、選択された学習領域における低温学習値ＬａｆＬから選択された学習領域における高温学習値ＬａｆＨを減算した値である差分値ΔＩを算出する（Ｓ７６）。そして、ＣＰＵ４２は、フィードバック処理部Ｍ１４の積分要素の保持する値Ｉに、差分値ΔＩを加算する（Ｓ７８）。
【００７０】
なお、ＣＰＵ４２は、ステップＳ７８の処理が完了する場合や、ステップＳ７０において否定判定する場合には、図７に示す一連の処理を一旦終了する。
ここで、本実施形態の作用を説明する。
【００７１】
図８に、増量係数ＫＷＬＢ、燃料噴射制御に利用される学習値Ｌａｆ、および積分要素が保持する値Ｉの推移を示す。図８には、時刻ｔ１において学習値Ｌａｆが低温学習値ＬａｆＬから高温学習値ＬａｆＨに切り替えられることによって、学習値Ｌａｆの値がステップ状に小さくなっている例を示した。この場合、時刻ｔ１において、学習値Ｌａｆのステップ状の変化は、積分要素が保持する値Ｉのステップ状の変化によって相殺される。そして、時刻ｔ１以降において、仮に、積分要素が保持する値Ｉが、出力値Ｉａｆを目標値Ｉａｆ＊とするうえで適切な値ではない場合、積分要素が保持する値Ｉは、出力値Ｉａｆと目標値Ｉａｆ＊との偏差に応じて徐々に更新され、滑らかに変化する。また、積分要素が保持する値Ｉが、出力値Ｉａｆを目標値Ｉａｆ＊とするうえで適切な値であって絶対値がゼロと比較して大きい場合、高温学習値ＬａｆＨが積分要素が保持する値Ｉに近づくように更新されることに伴って、値Ｉも徐々に更新され、滑らかに減少する。
【００７２】
このため本実施形態では、燃料噴射制御に用いられる学習値Ｌａｆが低温学習値ＬａｆＬから高温学習値ＬａｆＨに切り替えられることに起因して、指令噴射量Ｑ＊がステップ状の変化をすることを抑制することができる。
【００７３】
＜第３の実施形態＞
以下、内燃機関の空燃比制御装置にかかる第３の実施形態について、第１の実施形態との相違点を中心に図面を参照しつつ説明する。
【００７４】
上記第１の実施形態では、未寄与分補正率Ｒｎｃの算出処理に積算空気量ＩｎＧを用いたが、本実施形態では、積算空気量ＩｎＧに代えて、積算噴射量ＩｎＱｂを用いる。
図９に、本実施形態にかかる学習用補正処理部Ｍ１８ａの処理を示す。図９に示す処理は、たとえば所定周期で繰り返し実行される。なお、図９において、図５に示した処理に対応するものについては、便宜上同一のステップ番号を付してその説明を省略する。
【００７５】
図９に示す一連の処理において、ＣＰＵ４２は、ステップＳ６２の処理が完了すると、内燃機関１０の始動からのベース噴射量Ｑｂの積算値である積算噴射量ＩｎＱｂを更新する（Ｓ６４ａ）。すなわち、図９に示す一連の処理の１制御周期内におけるベース噴射量Ｑｂの総量を積算噴射量ＩｎＱｂに加算することによって積算噴射量ＩｎＱｂを更新する。なお、積算噴射量ＩｎＱｂは、内燃機関１０の始動に際して一旦ゼロに初期化された後、ステップＳ６４ａの処理によって、都度のベース噴射量Ｑｂが積算された量である。
【００７６】
そしてＣＰＵ４２は、積算噴射量ＩｎＱｂと水温ＴＨＷとに基づき、未寄与分補正率Ｒｎｃを算出する（Ｓ６６ａ）。具体的には、ＣＰＵ４２は、水温ＴＨＷが同一である場合、積算噴射量ＩｎＱｂが大きい場合に小さい場合よりも、未寄与分補正率Ｒｎｃを小さい値とし、積算噴射量ＩｎＱｂが同一である場合、水温ＴＨＷが高い場合に低い場合よりも未寄与分補正率Ｒｎｃを小さい値とする。ここで、積算噴射量ＩｎＱｂは、内燃機関１０の始動からの燃焼室２４内の燃焼エネルギの総量と相関を有するパラメータとして利用されている。なお、ＣＰＵ４２は、ステップＳ６６ａの処理を、積算噴射量ＩｎＱｂおよび水温ＴＨＷを入力変数とし、未寄与分補正率Ｒｎｃを出力変数とする２次元マップを用いて算出する。
【００７７】
＜第４の実施形態＞
以下、内燃機関の空燃比制御装置にかかる第４の実施形態について、第１の実施形態との相違点を中心に図面を参照しつつ説明する。
【００７８】
本実施形態では、図１に示す内燃機関１０において、燃焼室２４内の圧力（筒内圧Ｐ）を検出する筒内圧センサを備えることを想定する。そして、上記第１の実施形態では、未寄与分補正率Ｒｎｃの算出処理に積算空気量ＩｎＧを用いたが、本実施形態では、積算空気量ＩｎＧに代えて、筒内圧に基づき算出される積算熱量ＩｎＱを用いる。
【００７９】
図１０に、本実施形態にかかる学習用補正処理部Ｍ１８ａの処理を示す。図１０に示す処理は、たとえば所定周期で繰り返し実行される。なお、図１０において、図５に示した処理に対応するものについては、便宜上同一のステップ番号を付してその説明を省略する。
【００８０】
図１０に示す一連の処理において、ＣＰＵ４２は、ステップＳ６２の処理が完了すると、内燃機関１０の始動からの燃焼室２４内で生じる熱量の積算値である積算熱量ＩｎＱを更新する（Ｓ６４ｂ）。すなわち、図１０に示す一連の処理の前回のステップＳ６４ｂの処理から今回のステップＳ６４ｂの処理までの期間における熱量Ｑの積算量を、積算熱量ＩｎＱに加算することによって、積算熱量ＩｎＱを更新する。なお、積算熱量ＩｎＱは、内燃機関１０の始動に際して、一旦「０」に初期化され、その後、ステップＳ６４ａの処理によって、熱量Ｑが積算されていく量である。
【００８１】
ここで、熱量は、筒内圧Ｐと、筒内圧Ｐを検出した際のクランク角センサ５０の出力信号Ｓｃｒから算出される都度のクランク角θとの時系列データに基づき、以下の式（ｃ１）の積分によって算出することができる。
【００８２】
ｄＱ＝｛１／（κ−１）｝・（Ｖ・ｄＰ＋κ・Ｐ・ｄＶ）…（ｃ１）
ここで、容積Ｖは、クランク角θによって変化するものであり、クランク角θに応じて算出される。なお、本実施形態では、上記比熱κを、定数とする。
【００８３】
そしてＣＰＵ４２は、積算熱量ＩｎＱと水温ＴＨＷとに基づき、未寄与分補正率Ｒｎｃを算出する（Ｓ６６ｂ）。具体的には、ＣＰＵ４２は、水温ＴＨＷが同一である場合、積算熱量ＩｎＱが大きい場合に小さい場合よりも、未寄与分補正率Ｒｎｃを小さい値とし、積算熱量ＩｎＱが同一である場合、水温ＴＨＷが高い場合に低い場合よりも未寄与分補正率Ｒｎｃを小さい値とする。なお、ＣＰＵ４２は、ステップＳ６６ｂの処理を、積算熱量ＩｎＱおよび水温ＴＨＷを入力変数とし、未寄与分補正率Ｒｎｃを出力変数とする２次元マップを用いて算出する。
【００８４】
＜対応関係＞
上記「課題を解決するための手段」の欄に記載した事項と、実施形態における事項との対応関係は、次の通りである。以下では、「課題を解決するための手段」の欄に記載した解決手段の番号毎に、対応関係を示している。なお、以下において、「メモリ４４に記憶されたプログラムに従って所定の処理を実行するＣＰＵ４２」のことを、記載を簡素化するために、「所定の処理を実行するＣＰＵ４２」と記載する。
【００８５】
１．増量処理部は、ステップＳ１４〜Ｓ２０，Ｓ２４の処理を実行するＣＰＵ４２に対応し、空燃比制御装置は、制御装置４０に対応する。
２．リッチ処理部は、水温ＴＨＷが低い場合に目標値ＡＦ＊を理論空燃比よりもリッチとする目標値設定処理部Ｍ１０に対応する。
【００８６】
３．空気量積算処理部は、ステップＳ６４の処理を実行するＣＰＵ４２に対応する。
４．噴射量積算処理部は、ステップＳ６４ａの処理を実行するＣＰＵ４２に対応する。
５．熱量算出処理部は、ステップＳ６４ｂの処理を実行するＣＰＵ４２に対応する。
【００８７】
６．更新処理部が、冷却水の温度を加味して学習値を更新することは、ステップＳ６６，Ｓ６６ａ，Ｓ６６ｂの処理を実行するＣＰＵ４２に対応する。
７．増量補正がなされているときの更新対象が低温学習値であることは、図４のステップＳ４６において肯定判定されることを条件にステップＳ５０の処理に移行することに対応し、所定温度は、規定温度Ｔｔｈに対応する。
【００８８】
８．加算処理部は、ステップＳ７８の処理を実行するＣＰＵ４２に対応する。
＜その他の実施形態＞
なお、上記実施形態の各事項の少なくとも１つを、以下のように変更してもよい。
【００８９】
・「積算空気量について」
積算空気量としては、エアフローメータ５６によって検出される吸入空気量Ｇａの積算値を算出するものに限らず、たとえば、ベース噴射量Ｑｂに、目標値ＡＦ＊を乗算した値の積算値としてもよい。また、たとえば、吸入空気量Ｇａに代えて、燃焼室２４に充填される空気量の積算値としてもよい。
【００９０】
・「積算空気量に基づく未寄与分補正率の算出処理について」
図５に例示した処理では、内燃機関１０の始動からの積算空気量ＩｎＧおよび都度の水温ＴＨＷの２次元マップに基づき、未寄与分補正率Ｒｎｃを逐次算出したが、これに限らない。たとえば、未寄与分補正率Ｒｎｃを逐次算出するための入力パラメータとしての水温ＴＨＷについては、内燃機関１０の始動直後における水温ＴＨＷを常時用いることとしてもよい。
【００９１】
また、たとえば、積算空気量ＩｎＧと水温ＴＨＷとを独立変数とし、未寄与分補正率Ｒｎｃを従属変数とする２次関数を用いてもよい。
また、積算空気量ＩｎＧおよび水温ＴＨＷに加えて、燃焼室２４に吸入される空気の温度（吸気温）に基づき未寄与分補正率Ｒｎｃを算出してもよい。この場合、吸気温が高い場合に低い場合よりもシリンダ壁面２１の温度が高いとして未寄与分補正率Ｒｎｃを小さい値に算出する。なお、吸気温は、外気温センサを備えてその検出値を用いればよい。
【００９２】
・「積算噴射量に基づく未寄与分補正率の算出処理について」
図９に例示した処理では、内燃機関１０の始動からの積算噴射量ＩｎＱｂおよび都度の水温ＴＨＷの２次元マップに基づき、未寄与分補正率Ｒｎｃを逐次算出したが、これに限らない。たとえば、未寄与分補正率Ｒｎｃを逐次算出するための入力パラメータとしての水温ＴＨＷについては、内燃機関１０の始動直後における水温ＴＨＷを常時用いることとしてもよい。
【００９３】
また、たとえば、積算噴射量ＩｎＱｂと水温ＴＨＷとを独立変数とし、未寄与分補正率Ｒｎｃを従属変数とする２次関数を用いてもよい。
また、積算噴射量ＩｎＱｂおよび水温ＴＨＷに加えて、燃焼室２４に吸入される空気の温度（吸気温）に基づき未寄与分補正率Ｒｎｃを算出してもよい。この場合、吸気温が高い場合に低い場合よりもシリンダ壁面２１の温度が高いとして未寄与分補正率Ｒｎｃを小さい値に算出する。
【００９４】
・「熱量に基づく未寄与分補正率の算出処理について」
熱量Ｑの算出に用いる上記の式（ｃ１）において、比熱κを、目標値ＡＦ＊に応じて可変設定してもよい。
【００９５】
図１０に例示した処理では、内燃機関１０の始動からの積算熱量ＩｎＱおよび都度の水温ＴＨＷの２次元マップに基づき、未寄与分補正率Ｒｎｃを逐次算出したが、これに限らない。たとえば、未寄与分補正率Ｒｎｃを逐次算出するための入力パラメータとしての水温ＴＨＷについては、内燃機関１０の始動直後における水温ＴＨＷを常時用いることとしてもよい。
【００９６】
またたとえば、積算熱量ＩｎＱと水温ＴＨＷとを独立変数とし、未寄与分補正率Ｒｎｃを従属変数とする２次関数を用いてもよい。
また、たとえば、上記の式（ｃ１）の１燃焼サイクルに渡る積分によって算出される熱量Ｑと、吸入空気量Ｇａ、および水温ＴＨＷに基づき、１燃焼サイクル経過後のシリンダ壁面２１の温度を推定する処理を周期的に実行してもよい。燃焼室２４内に吸入される空気の温度（吸気温）を加味してシリンダ壁面２１の温度を推定してもよい。
【００９７】
・「シリンダ壁面２１の温度について」
積算空気量ＩｎＧや、積算噴射量ＩｎＱｂ、積算熱量ＩｎＱ等に基づき、間接的にシリンダ壁面２１の温度を把握する処理に限らず、たとえば、シリンダ壁面２１の温度を検出するセンサを備えて、その検出値を利用してもよい。
【００９８】
・「低温学習値ＬａｆＬについて」
上記実施形態では、許容下限値ＴｔｈＬ以上であることを条件に低温学習値ＬａｆＬの更新を許可したが、これに限らない。たとえば、許容下限値ＴｔｈＬを設けることなく、低温学習値ＬａｆＬを、規定温度Ｔｔｈ以下である場合に更新するものとしてもよい。
【００９９】
さらに、低温増量処理を実行する温度の上限値である規定温度Ｔｔｈ以下であることを条件に、低温学習値ＬａｆＬを用いることも必須ではない。たとえば、低温増量を実行する温度の上限値よりも高温学習値ＬａｆＨに切り替える水温ＴＨＷの方が高くなるようにしてもよい。
【０１００】
・「高温学習値および低温学習値について」
低温学習値ＬａｆＬおよび高温学習値ＬａｆＨを各別に学習することは必須ではない。また、低温学習値ＬａｆＬおよび高温学習値ＬａｆＨを、吸入空気量Ｇａによって区分された複数の学習領域毎に各別に学習することも必須ではない。
【０１０１】
・「フィードバック処理部について」
上記第１，３，４の実施形態において、フィードバック処理部Ｍ１４を、比例要素、積分要素、および微分要素を備えて構成するものに代えて、たとえば、比例要素および積分要素を備えるものとしてもよく、またたとえば、比例要素のみを備えるものとしてもよい。
【０１０２】
上記第２の実施形態において、フィードバック処理部Ｍ１４を、比例要素、積分要素、および微分要素を備えて構成するものに代えて、たとえば、比例要素および積分要素を備えるものとしてもよく、またたとえば、積分要素のみを備えるものとしてもよい。
【０１０３】
なお、フィードバック処理部が積分要素を備える場合、学習値が更新される都度、学習値の更新量だけ積分要素が保持する値を減少させる等、学習値の更新量に応じて積分要素が保持する値を補正する処理を実行してもよい。
【０１０４】
・「平均操作量算出処理部Ｍ１８ｂについて」
平均操作量算出処理部Ｍ１８ｂとしては、フィードバック操作量ＫＡＦの加重移動平均処理を実行するものに限らず、たとえば、所定の複数個の単純移動平均値を算出する処理であってもよい。ここで、所定の複数個は、１０個以上であることが望ましい。
【０１０５】
平均操作量ＫＡＦａとしては、フィードバック操作量ＫＡＦの加重移動平均値や単純移動平均値に限らず、たとえば、フィードバック操作量ＫＡＦが積分要素の出力値と比例要素の出力値等との和である場合であっても、積分要素の出力値の加重移動平均値や単純移動平均値としてもよい。この場合、リッチ化寄与分補正量Ａｃによる補正対象を、加重移動平均処理や単純移動平均処理の入力となる積分要素の出力値とすればよい。
【０１０６】
・「選択学習処理部Ｍ１８ｃについて」
選択学習処理部Ｍ１８ｃとしては、平均操作量ＫＡＦａと「１」との乖離が大きいほど、学習値の更新量ΔＬの絶対値を大きくするものに限らない。たとえば、更新量ΔＬを、「ＫＡＦａ−１」に所定のゼロ以上１以下の定数を乗算した値としてもよい。
【０１０７】
・「更新処理部について」
更新処理部が、平均操作量ＫＡＦａを算出する処理を実行することは必須ではない。たとえば、フィードバック処理部Ｍ１４の積分要素の出力値に応じて更新量ΔＬを算出したり、「（積分要素の出力値）−１」に所定の定数（＜１）を乗算した値を更新量ΔＬとしたりしてもよい。なお、この場合、積分要素の出力値の変動量が所定量以下となることを条件に、学習値の更新を許可してもよい。ちなみに、この場合、リッチ化寄与分補正量Ａｃによる補正対象は、更新量ΔＬの算出処理の入力となる積分要素の出力値とすればよい。
【０１０８】
たとえばフィードバック処理部Ｍ１４の積分要素の更新周期よりも平均操作量ＫＡＦａの更新周期の方が長い場合において、フィードバック操作量ＫＡＦを、加重移動平均処理や単純移動平均処理が施されたリッチ化寄与分補正量Ａｃによって補正してもよい。ここで、加重移動平均処理や単純移動平均処理が施されたリッチ化寄与分補正量Ａｃは、平均操作量ＫＡＦａの更新周期程度の期間におけるリッチ化寄与分補正量Ａｃの平均値を算出することを狙ったものである。
【０１０９】
低温増量がなされた指令噴射量Ｑ＊による燃料噴射がなされているときの学習値の更新処理としては、フィードバック操作量ＫＡＦに、リッチ化寄与分補正量Ａｃを加算した後に、平均操作量ＫＡＦａを算出する処理を含むものに限らない。たとえば、平均操作量ＫＡＦａと同様の加重移動平均処理や単純移動平均処理が施されたリッチ化寄与分補正量Ａｃを、リッチ化寄与分補正量Ａｃによって補正されていないフィードバック操作量ＫＡＦから算出された平均操作量ＫＡＦａに加算することによって、平均操作量ＫＡＦａを補正してもよい。もっとも、所定のタイミングにおけるリッチ化寄与分補正量Ａｃを、リッチ化寄与分補正量Ａｃによって補正されていないフィードバック操作量ＫＡＦから算出された平均操作量ＫＡＦａに加算することによって平均操作量ＫＡＦａを補正してもよい。
【０１１０】
低温増量がなされた指令噴射量Ｑ＊による燃料噴射がなされているときの学習値の更新処理において、低温増量処理による増量補正量のうちのリッチ化に寄与しない未寄与分を示すパラメータを算出することも必須ではなく、低温増量処理による増量補正量のうちのリッチ化に寄与する寄与分を示すパラメータを算出してもよい。これは、たとえば、寄与分係数Ｋｃ（０＜Ｋｃ＜１）を用いて、リッチ化寄与分補正量Ａｃを「｛１−１／（ＫＷＬＢ・Ｋｃ）｝」とすることで実現できる。また、たとえば、更新量ΔＬに加算されることによって更新量ΔＬを増加補正する補正量ΔＬｃを算出するものとしても実現できる。ただし、ここでの更新量ΔＬは、リッチ化寄与分補正量Ａｃにて補正されていないフィードバック操作量ＫＡＦから算出された平均操作量ＫＡＦａに基づき算出されるものとする。なお、寄与分係数Ｋｃや補正量ΔＬｃは、シリンダ壁面２１の温度が高い場合に低い場合よりも大きい値とされるものである。寄与分係数Ｋｃや補正量ΔＬｃの算出に用いるパラメータは、未寄与分補正率Ｒｎｃを算出したパラメータとすればよい。
【０１１１】
・「加算処理部について」
上記第２の実施形態では、特定の学習領域にある低温学習値ＬａｆＬから同学習領域にある高温学習値ＬａｆＨを減算した値を差分値ΔＩとして、積分要素が保持する値Ｉに加算したがこれに限らない。たとえば、ＣＰＵ４２が、燃料噴射制御に利用する学習値を、複数の学習領域のそれぞれの学習値の補間演算によって算出する場合、複数の学習領域のそれぞれの低温学習値ＬａｆＬの補間演算によって算出された値から、複数の学習領域のそれぞれの高温学習値ＬａｆＨの補間演算によって算出された値を減算した値を差分値ΔＩとしてもよい。なお、補間演算によって燃料噴射制御のための学習値を算出する処理は、たとえば、学習領域の代表点を設定して各学習領域の学習値を代表点における値とし、現在の吸入空気量Ｇａが代表点のいずれにも一致しない場合に、隣接する一対の代表点における学習値の加重移動平均処理として実行することができる。ここで、加重移動平均処理の重み係数は、現在の吸入空気量Ｇａと代表点との距離が近いほど大きい値とすればよい。
【０１１２】
・「空燃比の目標値について」
上記実施形態では、低温増量がなされているときに空燃比の目標値ＡＦ＊を理論空燃比よりもリッチとし、低温増量がなされていないときの目標値ＡＦ＊を理論空燃比としたが、これに限らない。
【０１１３】
・「制御装置について」
制御装置４０が、ＣＰＵ４２およびメモリ４４を備えて、上述した各種処理を全てソフトウェア処理するものに限らない。たとえば、平均操作量算出処理部Ｍ１８ｂの処理を、専用のハードウェア（特定用途向け集積回路：ＡＳＩＣ）にて処理するなど、少なくとも一部の処理を実行するＡＳＩＣを備えたものであってもよい。
【０１１４】
・「燃料噴射弁について」
上記実施形態では、燃料噴射弁として、吸気通路１２に燃料を噴射するポート噴射弁を例示したが、これに限らない。たとえば、燃焼室２４内に燃料を噴射する筒内噴射弁であってもよい。またたとえば、筒内噴射弁とポート噴射弁との双方を備える内燃機関１０を採用してもよい。この場合、筒内噴射弁とポート噴射弁とのそれぞれに、各別に学習値を割り当てることが望ましい。この場合には、「Ｑｂ・ＫＡＦ・ＫＷＬＢ」のうち「ＫＰＦＩ・１００％」をポート噴射弁から噴射するとする場合、水温ＴＨＷが規定温度Ｔｔｈ以下である場合には次のようにすることが望ましい。すなわち、ポート噴射弁の指令噴射量を、ポート噴射弁用の学習値Ｌｐを用いて、「Ｑｂ・ＫＡＦ・ＫＷＬＢ・ＫＰＦＩ・Ｌｐ」とし、筒内噴射弁用の指令噴射量を、筒内噴射弁用の学習値Ｌｄを用いて、「Ｑｂ・ＫＡＦ・ＫＷＬＢ・（１−ＫＰＦＩ）・Ｌｄ」とする。
【０１１５】
この場合、ポート噴射弁用の学習値Ｌｐは、ＫＰＦＩが「１」の場合であっても利用してよく、また、筒内噴射弁用の学習値Ｌｄは、ＫＰＦＩが「０」の場合であっても利用してよい。ただし、ＫＰＦＩが「１」のときと「０」のときと「１」でも「０」でもないときとで、各別の学習値を割り当ててもよい。
【０１１６】
・「開ループ処理部について」
たとえば、ベース噴射量Ｑｂの算出に吸入空気量Ｇａを直接用いることなく、定常時においてエアモデルを補正するためにのみ吸入空気量Ｇａを利用することとし、エアモデルから推定された筒内吸入空気量に基づきベース噴射量Ｑｂを算出してもよい。
【符号の説明】
【０１１７】
１０…内燃機関、１２…吸気通路、１４…スロットルバルブ、１６…ポート噴射弁、１８…吸気バルブ、２０…シリンダ、２１…シリンダ壁面、２２…ピストン、２４…燃焼室、２８…点火プラグ、３０…点火装置、３２…クランク軸、３３…排気バルブ、３４…排気通路、３６…触媒、４０…制御装置、４２…ＣＰＵ、４４…メモリ、５０…クランク角センサ、５２…空燃比センサ、５４…水温センサ、５６…エアフローメータ。
【図１】
2018003603.tif 000003
【図２】
2018003603.tif 000004
【図３】
2018003603.tif 000005
【図４】
2018003603.tif 000006
【図５】
2018003603.tif 000007
【図６】
2018003603.tif 000008
【図７】
2018003603.tif 000009
【図８】
2018003603.tif 000010
【図９】
2018003603.tif 000011
【図１０】
2018003603.tif 000012