(58)【調査した分野】(Int.Cl.,DB名)
複数の気筒を有する内燃機関の無噴射運転時に、前記気筒毎に設けられたインジェクタから学習用噴射を行って当該学習用噴射による内燃機関の回転数の変化に基づいて前記インジェクタ毎の噴射補正量を求める内燃機関の燃料噴射制御装置であって、
複数の前記インジェクタは、予め複数のグループに分けられており、
内燃機関が運転中であるが前記インジェクタから燃料を噴射していない前記無噴射運転時において、前記インジェクタの前記噴射補正量を求めるための噴射量学習実行条件が成立しているか否かを判定する学習条件判定手段と、
前記無噴射運転時であって前記噴射量学習実行条件が成立している噴射量学習タイミング毎に、複数の前記グループの中から1つのグループを特定するとともに特定したグループの中から1つのインジェクタを先行インジェクタとして特定し、特定したグループ内における前記先行インジェクタとは異なるインジェクタを後続インジェクタとして特定し、特定した前記先行インジェクタから、当該先行インジェクタの噴射タイミングにおいて、学習用の微小噴射量である学習用噴射量を噴射する先行学習噴射手段と、
前記先行学習噴射手段の噴射から前記内燃機関の所定量回転後に、特定した前記後続インジェクタから、当該後続インジェクタの噴射タイミングにおいて、前記学習用噴射量を噴射する後続学習噴射手段と、
前記先行インジェクタからの前記学習用噴射量の噴射によって変動した前記内燃機関の回転数の実際の変動量である先行実変動量を検出する先行実変動量検出手段と、
前記後続インジェクタからの前記学習用噴射量の噴射によって変動した前記内燃機関の回転数の実際の変動量である後続実変動量を検出する後続実変動量検出手段と、
1回の前記噴射量学習タイミングにて、前記先行インジェクタから実際に噴射された燃料量である先行実噴射量を、前記先行実変動量と、当該先行実変動量の検出期間における前記内燃機関の回転数と、に基づいて求め、前記後続インジェクタから実際に噴射された燃料量である後続実噴射量を、前記後続実変動量と、当該後続実変動量の検出期間における前記内燃機関の回転数と、に基づいて求めるグループインジェクタ毎実噴射量算出手段と、
インジェクタ毎に複数回求めた前記先行実噴射量及び前記後続実噴射量と、前記学習用噴射量と、の差に基づいて、インジェクタ毎の前記噴射補正量を求めるグループインジェクタ毎補正量算出手段と、
を有するグループインジェクタ学習手段を備えている、
内燃機関の燃料噴射制御装置。
複数の気筒を有する内燃機関の無噴射運転時に、前記気筒毎に設けられたインジェクタから学習用噴射を行って当該学習用噴射による内燃機関の回転数の変化に基づいて前記インジェクタ毎の噴射補正量を求める内燃機関の燃料噴射量学習方法であって、
複数の前記インジェクタを、予め複数のグループに分け、
内燃機関が運転中であるが前記インジェクタから燃料を噴射していない前記無噴射運転時において、前記インジェクタの前記噴射補正量を求めるための噴射量学習実行条件が成立しているか否かを判定する学習条件判定ステップと、
前記無噴射運転時であって前記噴射量学習実行条件が成立している噴射量学習タイミング毎に、複数の前記グループの中から1つのグループを特定するとともに特定したグループの中から1つのインジェクタを先行インジェクタとして特定し、特定したグループ内における前記先行インジェクタとは異なるインジェクタを後続インジェクタとして特定し、特定した前記先行インジェクタから、当該先行インジェクタの噴射タイミングにおいて、学習用の微小噴射量である学習用噴射量を噴射する先行学習噴射ステップと、
前記先行学習噴射ステップの噴射から前記内燃機関の所定量回転後に、特定した前記後続インジェクタから、当該後続インジェクタの噴射タイミングにおいて、前記学習用噴射量を噴射する後続学習噴射ステップと、
前記先行インジェクタからの前記学習用噴射量の噴射によって変動した前記内燃機関の回転数の実際の変動量である先行実変動量を検出する先行実変動量検出ステップと、
前記後続インジェクタからの前記学習用噴射量の噴射によって変動した前記内燃機関の回転数の実際の変動量である後続実変動量を検出する後続実変動量検出ステップと、
1回の前記噴射量学習タイミングにて、前記先行インジェクタから実際に噴射された燃料量である先行実噴射量を、前記先行実変動量と、当該先行実変動量の検出期間における前記内燃機関の回転数と、に基づいて求め、前記後続インジェクタから実際に噴射された燃料量である後続実噴射量を、前記後続実変動量と、当該後続実変動量の検出期間における前記内燃機関の回転数と、に基づいて求めるグループインジェクタ毎実噴射量算出ステップと、
インジェクタ毎に複数回求めた前記先行実噴射量及び前記後続実噴射量と、前記学習用噴射量と、の差に基づいて、インジェクタ毎の前記噴射補正量を求めるグループインジェクタ毎補正量算出ステップと、を有する、
内燃機関の燃料噴射量学習方法。
【発明を実施するための形態】
【0017】
以下に本発明を実施するための形態を図面を用いて説明する。
●[内燃機関の制御システムの概略構成(
図1)と制御手段50の入出力(
図2)]
まず
図1を用いて、制御対象の内燃機関の概略構成について説明する。本実施の形態の説明では、内燃機関の例として、4気筒のエンジン10(例えばディーゼルエンジン)を用いて説明する。エンジン10には、各気筒45A〜45Dへの吸入空気を導入する吸気管11が接続されている。またエンジン10には、各気筒45A〜45Dからの排気が吐出される排気管12が接続されている。またエンジン10にはクランクシャフト13(内燃機関の回転軸に相当)が設けられており、クランクシャフト13は変速機15に回転動力を伝達する。なお、以降の説明において、「#1」は1番気筒を示し、「#2」は2番気筒を示し、「#3」は3番気筒を示し、「#4」は4番気筒を示す。また本実施の形態で用いる4気筒のエンジン10では、爆発行程が、#1−#3−#4−#2−#1・・の順に発生するように設定されているものとする。
【0018】
吸気管11には、吸気温検出手段24が設けられている。吸気温検出手段24は、例えば吸気温センサであり、吸気管11内の吸気の温度に応じた検出信号を制御手段50に出力する。制御手段50(燃料噴射制御装置に相当)は、吸気温検出手段24からの検出信号に基づいて吸入空気の温度を検出可能である。
【0019】
エンジン10には、回転検出手段26、特定気筒検出手段27、冷却水温検出手段22等が設けられている。回転検出手段26は、例えば回転角度センサであり、クランクシャフト13の回転角度に応じた検出信号を制御手段50に出力する。制御手段50は、回転検出手段26からの検出信号に基づいてクランクシャフト13の回転角度を検出し、クランクシャフト13の回転数であるエンジン10の回転数や、クランクシャフト13が所定回転角度となったタイミングを検出可能である。特定気筒検出手段27は、気筒判別センサであり、例えばクランクシャフト13が回転して1番気筒である気筒45A内のピストンが圧縮行程の上死点となった場合に検出信号を出力する。制御手段50は、回転検出手段26からの検出信号と特定気筒検出手段27からの検出信号とに基づいて、各気筒のピストンが、どの行程(吸気行程、圧縮行程、爆発行程、排気行程)の状態にあり、どのようなクランクシャフトの回転角度であるか、を検出可能である。
【0020】
冷却水温検出手段22は、例えば冷却水温センサであり、エンジン10の冷却水(クーラント)の温度に応じた検出信号を制御手段50に出力する。制御手段50は、冷却水温検出手段22からの検出信号に基づいて冷却水の温度を検出可能である。
【0021】
変速機15には、クランクシャフト13と変速機15との締結状態に応じた検出信号を制御手段50に出力するクラッチ検出手段29が設けられている。クラッチ検出手段29は、例えばクランクシャフト13と変速機15とが解放状態とされた場合に検出信号を出力する位置センサであり、制御手段50は、クラッチ検出手段29からの検出信号に基づいて、クランクシャフトと変速機が解放状態であるか否かを検出可能である。
【0022】
エンジン10の気筒45A〜45Dのそれぞれには、制御手段50からの制御信号に基づいて各気筒内に燃料を噴射するインジェクタ43A〜43Dのそれぞれが設けられている。そしてインジェクタ43A〜43Dには、コモンレール41から燃料配管42A〜42Dを介して燃料が供給されている。
【0023】
コモンレール41には燃料タンク(図示省略)から燃料が供給され、コモンレール41内の燃料は高圧に維持されている。コモンレール41には、燃料圧力検出手段21と燃料温度検出手段25が設けられている。燃料圧力検出手段21は、例えば燃料圧力センサであり、制御手段50は、燃料圧力検出手段21からの検出信号に基づいて、コモンレール41内の燃料の圧力を検出可能である。燃料温度検出手段25は、例えば燃料温度センサであり、制御手段50は、燃料温度検出手段25からの検出信号に基づいて、コモンレール41内の燃料の温度を検出可能である。
【0024】
制御手段50は、内部にCPUを備えた制御装置(燃料噴射制御装置)であり、上記に説明した入出力に加えて、例えば、大気圧検出手段23やアクセル踏込量検出手段28からの検出信号が入力されている。大気圧検出手段23は、例えば圧力センサであり、大気圧に応じた検出信号を制御手段50に出力する。制御手段50は、大気圧検出手段23からの検出信号に基づいて、大気圧を検出可能である。アクセル踏込量検出手段28は、例えばアクセルペダルセンサであり、ユーザによるアクセルペダルの踏込量に応じた検出信号を制御手段50に出力する。制御手段50は、アクセル踏込量検出手段28からの検出信号に基づいて、ユーザによるアクセルペダルの踏込量を検出可能である。制御手段50は、上記に説明した各種の検出手段等からの検出信号を取り込んでエンジン10の運転状態を検出し、インジェクタ43A〜43Dを駆動する制御信号を出力する。なお、
図2中の制御手段50内の符号51A〜51G、符号52A、52B、52D、52F、52G、符号53A〜53Cについては後述する。
【0025】
●●[第1の実施の形態における制御手段50の処理手順(
図3〜
図6)]
以下にて、制御手段50によるグループインジェクタ学習を用いた燃料噴射量学習方法の処理手順について説明する。既に説明したように、従来(後述する単独インジェクタ学習)では、1回の噴射量学習タイミングで1つのインジェクタの実噴射量を求め、インジェクタ毎に数10回分の実噴射量を求めた後、インジェクタ毎に噴射補正量を求めている。従って、インジェクタ毎の噴射補正量が更新される頻度が低い。また内燃機関の無噴射運転時に噴射量学習を行っているので、噴射量学習の頻度そのものが比較的低い。そこで本願の第1の実施の形態にて説明するグループインジェクタ学習では、後述するように、1回の噴射量学習タイミングで2つのインジェクタの実噴射量をそれぞれ求めることで、インジェクタ毎の噴射補正量の更新頻度を、従来と比較して2倍にするものである。
【0026】
なお
図5に示すタイムチャートにおいて、最上段のTDCの欄の「#1」の位置は、1番気筒の圧縮上死点のタイミングを示している。同様に「#2」の位置は2番気筒の圧縮上死点のタイミングを示し、「#3」の位置は3番気筒の圧縮上死点のタイミングを示し、「#4」は4番気筒の圧縮上死点のタイミングを示している。なお前述したように4気筒のエンジンの場合、#1−#3−#4−#2−#1・・の順に爆発行程が発生する。また
図5における「インジェクタ1」は1番気筒用のインジェクタ43Aの動作状態を示している。同様に「インジェクタ2」は2番気筒用のインジェクタ43Bの動作状態を示し、「インジェクタ3」は3番気筒用のインジェクタ43Cの動作状態を示し、「インジェクタ4」は4番気筒用のインジェクタ43Dの動作状態を示している。
【0027】
また
図5における「NE」はエンジン10のクランクシャフト13の回転数を示しており、
図5の例では無噴射運転中であるので回転数「NE」が徐々に減少する様子を示している。なお先行学習噴射(
図5の例では「インジェクタ1」からの噴射)と後続学習噴射(
図5の例では「インジェクタ4」からの噴射)が実施された直後は、回転数「NE」が一時的に上昇する様子を示している。また
図5における「ΔNE」は、その時点の「NE」と、その時点から720°CA前の「NE」との差を示している。例えば後続学習噴射を実施した「タイミング」が「#4[i−1]」のタイミングでは、#4用の回転数NE4(
図5の例ではNE4[i−1])が求められ、#4用の回転数変動量ΔNE4(
図5の例ではΔNE4[i−1])が求められる。なお
図5の例に示す回転数変動量ΔNE4[i−1]=回転数NE4[i−1]−回転数NE4[i−2]である。
【0028】
なお、「720°CA」は、クランクシャフトの回転角度で720°分を示しており、例えば180°CAではクランクシャフトの回転角度で180°分を示し、360°CAではクランクシャフトの回転角度で360°分を示す。
【0029】
まず
図1に示すインジェクタ43A〜43Dは、グループAとグループBに分けられている。グループAのインジェクタは、1番気筒(#1)用のインジェクタ43Aと4番気筒(#4)用のインジェクタ43Dである。グループBのインジェクタは、3番気筒(#3)用のインジェクタ43Cと2番気筒(#2)用のインジェクタ43Bである。4気筒のエンジン10では、振動が少ない爆発順として、1番気筒−3番気筒−4番気筒−2番気筒−1番気筒・・の順番に爆発行程となるように設定されている。従って、グループAのインジェクタ43Aとインジェクタ43Dは、先行インジェクタによる爆発行程と後続インジェクタによる爆発行程と、が連続した爆発行程とならないように選定されている。同様に、グループBのインジェクタ43Cとインジェクタ43Bも、先行インジェクタによる爆発行程と後続インジェクタによる爆発行程、が連続した爆発行程とならないように選定されている。
【0030】
次に
図3に示すフローチャートと
図4に示すフローチャートを用いて、第1の実施の形態における制御手段50の処理手順について説明する。
図3に示す処理S100は、例えば各インジェクタから噴射を開始するべき手前の時点で起動される割り込み等の処理であるが、起動のタイミングについては従来と同じであるので、起動タイミングの詳細については説明を省略する。また
図4に示す処理S200は、例えば各気筒のピストンの上死点の位置で起動される割り込み等の処理であり、4気筒のエンジンの場合、180°CA毎に発生する。なお、
図4に示す処理S200も起動のタイミングについては従来と同じであるので、起動タイミングの詳細については説明を省略する。
【0031】
●[先行学習噴射と後続学習噴射を実行する処理の処理手順(
図3)]
図3に示す処理S100が起動されると制御手段50は、ステップS110へと処理を進める。ステップS110にて制御手段50は、無噴射運転中であるか否かを判定し、無噴射運転中である場合(Yes)はステップS120に進み、無噴射運転中でない場合(No)は処理を終了する。なお無噴射運転とは、内燃機関が運転中であるがインジェクタから燃料を噴射していない運転状態を指し、例えば、信号機の有る交差点等の手前や緩やかな下り坂等にて、走行中にユーザがアクセルペダルを離して惰性走行をしている状態を指す。
【0032】
ステップS120に進んだ場合、制御手段50は、噴射量学習実行条件が成立しているか否かを判定し、成立している場合(Yes)はステップS130に進み、成立していない場合(No)は処理を終了する。なお噴射量学習実行条件には種々の条件があり、例えば制御手段50は、以下の(1)〜(5)が全て成立している場合に噴射量学習実行条件が成立している、と判定するが、この条件に限定されるものではない。例えば吸気温度の条件を追加してもよいし、燃料の温度や圧力の条件を追加してもよい。
(1)クラッチ検出手段からの検出信号に基づいてクランクシャフトと変速機とが解放状態であると判定した場合。
(2)アクセル踏込量検出手段からの検出信号に基づいてアクセルペダルの踏み込み量がゼロである(アイドリング状態)と判定した場合。
(3)大気圧検出手段からの検出信号に基づいて大気圧が所定大気圧以上であると判定した場合。
(4)冷却水温検出手段からの検出信号に基づいて冷却水の温度が所定温度範囲内であると判定した場合。
(5)回転検出手段からの検出信号に基づいてクランクシャフトの回転数が所定回転範囲内であると判定した場合。
【0033】
上記のステップS110とステップS120は、無噴射運転時において噴射量学習実行条件が成立しているか否かを判定する学習条件判定ステップに相当する。そして当該学習条件判定ステップを実行している制御手段50は、
図2に示す学習条件判定手段51Aとして動作する。
【0034】
ステップS130に進んだ場合、制御手段50は、グループAのインジェクタの学習のターンであるか否かを判定し、グループAの学習ターンである場合(Yes)はステップS141に進み、グループAの学習ターンでない場合(No、すなわちグループBの学習ターンである場合)はステップS143に進む。例えば制御手段50は、噴射量学習が初めてである場合や前回の噴射量学習のタイミングにてグループB(インジェクタ43Cとインジェクタ43B)の学習を実施した場合、今回の噴射量学習ではグループAの学習ターンであると判定する。制御手段50は、噴射量学習タイミング毎に、グループAの噴射量学習とグループBの噴射量学習とを交互に実施する。
【0035】
ステップS141に進んだ場合、制御手段50は、グループAのインジェクタにて先行学習噴射を実施済であるか否かを判定し、先行学習噴射を実施済である場合(Yes)はステップS142に進み、先行学習噴射を実施済でない場合(No)はステップS151に進む。
【0036】
ステップS151に進んだ場合、制御手段50は、グループAのインジェクタの先行学習噴射の実施タイミングであるか否かを判定し、先行学習噴射の実施タイミングである場合(Yes)はステップS161に進み、先行学習噴射の実施タイミングでない場合(No)は処理を終了する。
【0037】
ステップS161に進んだ場合、制御手段50は、グループAのインジェクタの中から特定した先行インジェクタからの先行学習噴射(学習用噴射量の噴射)を実施して処理を終了する。ステップS161はグループAの先行学習噴射の実行であるので、この場合、1番気筒(#1)用のインジェクタ43Aまたは4番気筒(#4)用のインジェクタ43Dが先行インジェクタとして特定される。また制御手段50は、先行インジェクタとして特定しなかったインジェクタを後続インジェクタとして特定する。
【0038】
制御手段50は、前回のグループAの噴射量学習でどちらのインジェクタを先行インジェクタに特定したかを記憶しており、グループAの噴射量学習毎に、先行インジェクタを変更する。例えば制御手段50は、前回のグループAの噴射量学習ではインジェクタ43Dを先行インジェクタに特定した場合、今回のグループAの噴射量学習ではインジェクタ43Aを先行インジェクタに特定し、インジェクタ43Dを後続インジェクタに特定する。
図5に示す例は、今回の噴射量学習のグループとしてグループAを特定し、かつ1番気筒(#1)用のインジェクタ43A(インジェクタ1)を先行インジェクタに特定し、4番気筒(#4)用のインジェクタ43D(インジェクタ4)を後続インジェクタに特定した場合の例を示している。
【0039】
ステップS142に進んだ場合、制御手段50は、グループAのインジェクタの後続学習噴射を実施済であるか否かを判定し、後続学習噴射を実施済である場合(Yes)は処理を終了し、後続学習噴射を実施済でない場合(No)はステップS152に進む。
【0040】
ステップS152に進んだ場合、制御手段50は、グループAのインジェクタの後続学習噴射の実施タイミングであるか否かを判定し、後続学習噴射の実施タイミングである場合(Yes)はステップS162に進み、後続学習噴射の実施タイミングでない場合(No)は処理を終了する。
【0041】
ステップS162に進んだ場合、制御手段50は、グループAのインジェクタの中から特定した後続インジェクタからの後続学習噴射(学習用噴射量の噴射)を実施して処理を終了する。
【0042】
ステップS143に進んだ場合、制御手段50は、グループBのインジェクタにて先行学習噴射を実施済であるか否かを判定し、先行学習噴射を実施済である場合(Yes)はステップS144に進み、先行学習噴射を実施済でない場合(No)はステップS153に進む。
【0043】
ステップS153に進んだ場合、制御手段50は、グループBのインジェクタの先行学習噴射の実施タイミングであるか否かを判定し、先行学習噴射の実施タイミングである場合(Yes)はステップS163に進み、先行学習噴射の実施タイミングでない場合(No)は処理を終了する。
【0044】
ステップS163に進んだ場合、制御手段50は、グループBのインジェクタの中から特定した先行インジェクタからの先行学習噴射(学習用噴射量の噴射)を実施して処理を終了する。ステップS163はグループBの先行学習噴射の実行であるので、この場合、3番気筒(#3)用のインジェクタ43Cまたは2番気筒(#2)用のインジェクタ43Bが先行インジェクタとして特定される。また制御手段50は、先行インジェクタとして特定しなかったインジェクタを後続インジェクタとして特定する。
【0045】
制御手段50は、前回のグループBの噴射量学習でどちらのインジェクタを先行インジェクタに特定したかを記憶しており、グループBの噴射量学習毎に、先行インジェクタを変更する。例えば制御手段50は、噴射量学習が初めてである場合や前回のグループBの噴射量学習ではインジェクタ43Bを先行インジェクタに特定した場合、今回のグループBの噴射量学習ではインジェクタ43Cを先行インジェクタに特定し、インジェクタ43Bを後続インジェクタに特定する。
【0046】
ステップS144に進んだ場合、制御手段50は、グループBのインジェクタの後続学習噴射を実施済であるか否かを判定し、後続学習噴射を実施済である場合(Yes)は処理を終了し、後続学習噴射を実施済でない場合(No)はステップS154に進む。
【0047】
ステップS154に進んだ場合、制御手段50は、グループBのインジェクタの後続学習噴射の実施タイミングであるか否かを判定し、後続学習噴射の実施タイミングである場合(Yes)はステップS164に進み、後続学習噴射の実施タイミングでない場合(No)は処理を終了する。
【0048】
ステップS164に進んだ場合、制御手段50は、グループBのインジェクタの中から特定した後続インジェクタからの後続学習噴射(学習用噴射量の噴射)を実施して処理を終了する。
【0049】
以上に説明したステップS130、S141、S151、S161、S143、S153、S163の処理は、噴射量学習タイミング毎に、1つのグループを特定し、特定したグループの中から1つのインジェクタを先行インジェクタとして特定し、特定したグループ内における先行インジェクタとは異なるインジェクタを後続インジェクタとして特定し、当該先行インジェクタの噴射タイミングにおいて学習用噴射量を噴射する先行学習噴射ステップに相当する。そして当該先行学習噴射ステップを実行している制御手段50は、
図2に示す先行学習噴射手段51Bとして動作する。
【0050】
また、以上に説明したステップS130、S141、S142、S152、S162、S143、S144、S154、S164の処理は、先行学習噴射(先行学習噴射手段)の噴射から内燃機関の所定量回転後(この場合、360°CA後)に、特定したグループ内における後続インジェクタから、当該後続インジェクタの噴射タイミングにおいて学習用噴射量を噴射する後続学習噴射ステップに相当する。そして当該後続学習噴射ステップを実行している制御手段50は、
図2に示す後続学習噴射手段51Cとして動作する。
【0051】
●[先行学習噴射と後続学習噴射の実噴射量の推定と、噴射補正量を算出する処理手順(
図4〜
図6)]
図4に示す処理S200は、例えば各気筒のピストンの上死点の位置(
図5に示すタイムチャートにおける「TDC」の位置)で起動される。処理S200が起動されると制御手段50は、ステップS210へと処理を進める。
【0052】
ステップS210にて制御手段50は、今回の処理S200が起動された時刻と前回の処理S200が起動された時刻との差から、クランクシャフトの180°CAの回転に要した時間を算出し、最新の回転数NEを算出してステップS215に進む。例えば制御手段50は、気筒毎の回転数を記憶しており、1番気筒(#1)用の最新の回転数NE1[i]、1番気筒用の前回の回転数NE1[i−1]、1番気筒用の前々回の回転数NE[i−2]を記憶している。同様に制御手段50は、2番気筒(#2)用の最新の回転数NE2[i]と、2番気筒用の前回の回転数NE2[i−1]と、2番気筒用の前々回の回転数NE2[i−2]とを記憶している。同様に制御手段50は、3番気筒(#3)用の最新の回転数NE3[i]と、3番気筒用の前回の回転数NE3[i−1]と、3番気筒用の前々回の回転数NE3[i−2]とを記憶している。同様に制御手段50は、4番気筒(#4)用の最新の回転数NE4[i]と、4番気筒用の前回の回転数NE4[i−1]と、4番気筒用の前々回の回転数NE4[i−2]とを記憶している。
【0053】
制御手段50は、
図5に示す「TDC」が「#1」のタイミングでは1番気筒(#1)用の回転数NE1を算出し、「TDC」が「#3」のタイミングでは3番気筒(#3)用の回転数NE3を算出する。また制御手段50は、「TDC」が「#4」のタイミングでは4番気筒(#4)用の回転数NE4を算出し、「TDC」が「#2」のタイミングでは2番気筒(#2)用の回転数NE2を算出する。例えば今回の処理S200のタイミングが
図5中の「タイミング」における#1[i]のタイミングであった場合、制御手段50は、現在記憶されている回転数NE1[i−1]を回転数NE1[i−2]にコピーして、現在記憶されている回転数NE1[i]を回転数NE1[i−1]にコピーして、求めた回転数NEを回転数NE1[i]に記憶する。
【0054】
ステップS215にて制御手段50は、今回の処理S200にて算出したNEと、前回の処理S200にて算出したNEと、の差である回転数変動量ΔNEを算出してステップS220に進む。例えば制御手段50は、気筒毎の回転数変動量を記憶しており、1番気筒(#1)用の最新の回転数変動量ΔNE1[i]と、1番気筒用の前回の回転数変動量ΔNE1[i−1]と、1番気筒用の前々回の回転数変動量ΔNE1[i−2]とを記憶している。同様に制御手段50は、2番気筒(#2)用の最新の回転数変動量ΔNE2[i]と、2番気筒用の前回の回転数変動量ΔNE2[i−1]と、2番気筒用の前々回の回転数変動量ΔNE[i−2]とを記憶している。同様に制御手段50は、3番気筒(#3)用の最新の回転数変動量ΔNE3[i]と、3番気筒用の前回の回転数変動量ΔNE3[i−1]と、3番気筒用の前々回の回転数変動量ΔNE3[i−2]とを記憶している。同様に制御手段50は、4番気筒(#4)用の最新の回転数変動量ΔNE4[i]と、4番気筒用の前回の回転数変動量ΔNE4[i−1]と、4番気筒用の前々回の回転数変動量ΔNE4[i−2]とを記憶している。
【0055】
制御手段50は、
図5に示す「TDC」が「#1」のタイミングでは1番気筒(#1)用の回転数変動量ΔNE1を算出し、「TDC」が「#3」のタイミングでは3番気筒(#3)用の回転数変動量ΔNE3を算出する。また制御手段50は、「TDC」が「#4」のタイミングでは4番気筒(#4)用の回転数変動量ΔNE4を算出し、「TDC」が「#2」のタイミングでは2番気筒(#2)用の回転数変動量ΔNE2を算出する。例えば今回の処理S200のタイミングが
図5中の「タイミング」における#1[i]のタイミングであった場合、制御手段50は、現在記憶されている回転数変動量ΔNE1[i−1]を回転数変動量ΔNE1[i−2]にコピーして、現在記憶されている回転数変動量ΔNE1[i]を回転数変動量ΔNE1[i−1]にコピーして、求めた回転数変動量ΔNE(この場合、NE1[i]−NE1[i−1])を回転数変動量ΔNE1[i]に記憶する。
【0056】
ステップS220にて制御手段50は、後続学習噴射を実施してから1080°CA後のタイミングであるか否かを判定する。後続学習噴射から1080°CA後のタイミングである場合(Yes、
図5の例では「タイミング」が「#1[i]の位置」)はステップS225に進み、そうでない場合(No)は処理を終了する。
【0057】
ステップS225に進んだ場合、制御手段50は、第1ベース変動量ΔAV1、先行学習噴射による先行実変動量δaを算出してステップS230に進む。例えば
図5の「タイミング」が「#1[i]」の場合において、回転数変動量ΔNEにおける符号「a」、「b」、「m」、「n」のそれぞれの回転数変動量ΔNEの平均を第1ベース変動量ΔAV1とする。
図5の例では、第1ベース変動量ΔAV1=(ΔNE2[i−2]+ΔNE1[i−2]+ΔNE2[i]+ΔNE1[i])/4とする。
【0058】
また、例えば
図5の「タイミング」が「#1[i]」の場合において、回転数変動量ΔNEの符号「c」の位置における第1ベース変動量ΔAV1からの変動量δ1と、回転数変動量ΔNEにおける符号「d」の位置における第1ベース変動量ΔAV1からの変動量δ2と、の平均を先行実変動量δaとする。
図5の例では、先行実変動量δa=[(ΔNE3[i−1]−ΔAV1)+(ΔNE4[i−1]−ΔAV1)]/2とする。
【0059】
このステップS225の処理は、先行学習噴射によって変動した内燃機関の回転数の実際の変動量である先行実変動量δaを検出する先行実変動量検出ステップに相当する。そして当該先行実変動量検出ステップを実行している制御手段50は、
図2に示す先行実変動量検出手段51Dとして動作する。
【0060】
ステップS230にて制御手段50は、第2ベース変動量ΔAV2、後続学習噴射による後続実変動量δbを算出してステップS235に進む。例えば
図5の「タイミング」が「#1[i]」の場合において、回転数変動量ΔNEにおける符号「c」、「d」、「g」、「h」のそれぞれの回転数変動量ΔNEの平均を第2ベース変動量ΔAV2とする。
図5の例では、第2ベース変動量ΔAV2=(ΔNE3[i−1]+ΔNE4[i−1]+ΔNE3[i]+ΔNE4[i])/4とする。
【0061】
また、例えば
図5の「タイミング」が「#1[i]」の場合において、回転数変動量ΔNEの符号「e」の位置における第2ベース変動量ΔAV2からの変動量δ3と、回転数変動量ΔNEにおける符号「f」の位置における第2ベース変動量ΔAV2からの変動量δ4と、の平均を後続実変動量δbとする。
図5の例では、後続実変動量δb=[(ΔNE2[i−1]−ΔAV2)+(ΔNE1[i−1]−ΔAV2)]/2とする。
【0062】
このステップS230の処理は、後続学習噴射によって変動した内燃機関の回転数の実際の変動量である後続実変動量δbを検出する後続実変動量検出ステップに相当する。そして当該後続実変動量検出ステップを実行している制御手段50は、
図2に示す後続実変動量検出手段51Eとして動作する。
【0063】
ステップS235にて制御手段50は、先行実噴射量、後続実噴射量、を算出してステップS240に進む。例えば
図5の「タイミング」が「#1[i]」の場合において、制御手段50は、先行実変動量δaと、先行学習噴射を実行した際の回転数NEと(
図5の例では回転数NE1[i−2])、に基づいて先行学習噴射によるトルクを求め、当該トルクを発生させる噴射量である先行実噴射量を求める。このときの回転数NEは、先行実変動量δaの検出期間における内燃機関の回転数に相当する。
【0064】
また、例えば
図5の「タイミング」が「#1[i]」の場合において、制御手段50は、後続実変動量δbと、後続学習噴射を実行した際の回転数NEと(
図5の例では回転数NE4[i−1])、に基づいて後続学習噴射によるトルクを求め、当該トルクを発生させる噴射量である後続実噴射量を求める。このときの回転数NEは、後続実変動量δbの検出期間における内燃機関の回転数に相当する。
【0065】
このステップS235の処理は、先行実変動量δaと、先行実変動量δaの検出期間における内燃機関の回転数と、に基づいて先行実噴射量を求め、後続実変動量δbと、後続実変動量δbの検出期間における内燃機関の回転数と、に基づいて後続実噴射量を求めるグループインジェクタ毎実噴射量算出ステップに相当する。そして当該グループインジェクタ毎実噴射量算出ステップを実行している制御手段50は、
図2に示すグループインジェクタ毎実噴射量算出手段51Fとして動作する。
【0066】
ステップS240にて制御手段50は、先行噴射補正量Ha、後続噴射補正量Hb、を算出してステップS251に進む。例えば
図5の「タイミング」が「#1[i]」の場合において、制御手段50は、学習用噴射量と先行実噴射量との差に基づいて先行噴射補正量Haを算出し、学習用噴射量と後続実噴射量との差に基づいて後続噴射補正量Hbを算出する。
【0067】
ステップS251にて制御手段50は、先行インジェクタがインジェクタ1に特定されているか否かを判定し、インジェクタ1に特定されている場合(Yes)はステップS261に進み、インジェクタ1に特定されていない場合(No)はステップS252に進む。
【0068】
ステップS261に進んだ場合、先行インジェクタはインジェクタ1に特定され、後続インジェクタはインジェクタ4に特定されている場合であるので、制御手段50は、インジェクタ1用の累積補正量1に先行噴射補正量Haを加算して累積補正量1を更新し、インジェクタ4用の累積補正量4に後続噴射補正量Hbを加算して累積補正量4を更新する。また制御手段50は、グループA(インジェクタ1とインジェクタ4にて構成したグループ)用の学習回数であるグループA学習回数をカウントアップして、ステップS271に進む。
【0069】
ステップS252に進んだ場合、制御手段50は、先行インジェクタがインジェクタ4に特定されているか否かを判定し、インジェクタ4に特定されている場合(Yes)はステップS262に進み、インジェクタ4に特定されていない場合(No)はステップS253に進む。
【0070】
ステップS262に進んだ場合、先行インジェクタはインジェクタ4に特定され、後続インジェクタはインジェクタ1に特定されている場合であるので、制御手段50は、インジェクタ4用の累積補正量4に先行噴射補正量Haを加算して累積補正量4を更新し、インジェクタ1用の累積補正量1に後続噴射補正量Hbを加算して累積補正量1を更新する。また制御手段50は、グループA(インジェクタ1とインジェクタ4にて構成したグループ)用の学習回数であるグループA学習回数をカウントアップして、ステップS271に進む。
【0071】
ステップS271に進んだ場合、制御手段50は、グループA学習回数が所定回数以上であるか判定し、所定回数以上である場合はステップS281に進み、所定回数未満である場合は処理を終了する。
【0072】
ステップS281に進んだ場合、制御手段50は、累積補正量1に基づいて(例えば平均化して)インジェクタ1用の噴射補正量1を算出し、累積補正量4に基づいて(例えば平均化して)インジェクタ4用の噴射補正量4を算出する。また制御手段50は、累積補正量1と累積補正量4とグループA学習回数をクリア(初期化)して処理を終了する。
【0073】
ステップS253に進んだ場合、制御手段50は、先行インジェクタがインジェクタ3に特定されているか否かを判定し、インジェクタ3に特定されている場合(Yes)はステップS263に進み、インジェクタ3に特定されていない場合(No)はステップS264に進む。
【0074】
ステップS263に進んだ場合、先行インジェクタはインジェクタ3に特定され、後続インジェクタはインジェクタ2に特定されている場合であるので、制御手段50は、インジェクタ3用の累積補正量3に先行噴射補正量Haを加算して累積補正量3を更新し、インジェクタ2用の累積補正量2に後続噴射補正量Hbを加算して累積補正量2を更新する。また制御手段50は、グループB(インジェクタ3とインジェクタ2にて構成したグループ)用の学習回数であるグループB学習回数をカウントアップして、ステップS273に進む。
【0075】
ステップS264に進んだ場合、先行インジェクタはインジェクタ2に特定され、後続インジェクタはインジェクタ3に特定されている場合であるので、制御手段50は、インジェクタ2用の累積補正量2に先行噴射補正量Haを加算して累積補正量2を更新し、インジェクタ3用の累積補正量3に後続噴射補正量Hbを加算して累積補正量3を更新する。また制御手段50は、グループB(インジェクタ3とインジェクタ2にて構成したグループ)用の学習回数であるグループB学習回数をカウントアップして、ステップS273に進む。
【0076】
ステップS273に進んだ場合、制御手段50は、グループB学習回数が所定回数以上であるか判定し、所定回数以上である場合はステップS283に進み、所定回数未満である場合は処理を終了する。
【0077】
ステップS283に進んだ場合、制御手段50は、累積補正量3に基づいて(例えば平均化して)インジェクタ3用の噴射補正量3を算出し、累積補正量2に基づいて(例えば平均化して)インジェクタ2用の噴射補正量2を算出する。また制御手段50は、累積補正量3と累積補正量2とグループB学習回数をクリア(初期化)して処理を終了する。
【0078】
以上に説明したステップS240以降の処理は、インジェクタ毎に複数回求めた先行実噴射量及び後続実噴射量と、学習用噴射量と、の差に基づいてインジェクタ毎の噴射補正量を求めるグループインジェクタ毎補正量算出ステップに相当する。また当該グループインジェクタ毎補正量算出ステップを実行している制御手段50は、
図2に示すグループインジェクタ毎補正量算出手段51Gとして動作する。
【0079】
以上に説明した
図3及び
図4の処理手順に示すグループインジェクタ学習よって、
図5に示すように、1回の噴射量学習(グループインジェクタ学習)にて、インジェクタ1とインジェクタ4の、2つのインジェクタの噴射量学習が実施される。従って、1回の噴射量学習にて、1つのインジェクタのみ噴射量学習を行っていた従来の単独インジェクタ学習の場合と比較して、インジェクタ毎の噴射補正量の更新頻度を2倍にすることができる(
図6参照)。なお
図2に示すように、グループインジェクタ学習手段は、上述した学習条件判定手段51A〜グループインジェクタ毎補正量算出手段51Gを有している。
【0080】
図6は、上述したグループインジェクタ学習による噴射補正量の更新頻度と、後述する単独インジェクタ学習による噴射補正量の更新頻度とを比較するイメージ図であり、横軸は走行距離を示している。
図6における「単独インジェクタ学習」では、1回の噴射量学習で1つのインジェクタのみ噴射量学習を行うので、「インジェクタ1の噴射量のずれ量」、「インジェクタ3の噴射量のずれ量」、「インジェクタ4の噴射量のずれ量」、「インジェクタ2の噴射量のずれ量」は、いずれも、「更新」のタイミングが4回発生する毎にほぼゼロにリセットされる。そして次のリセットが発生するまでずれ量が徐々に増えていく。つまり、更新の頻度が低いので、噴射量のずれ量の値が大きくなってしまい、あまり好ましくない。
【0081】
これに対して
図6における「グループインジェクタ学習」(
図3、
図4の処理)では、1回の噴射量学習で、2つのインジェクタの噴射量学習を行うので、「インジェクタ1の噴射量のずれ量」、「インジェクタ3の噴射量のずれ量」、「インジェクタ4の噴射量のずれ量」、「インジェクタ2の噴射量のずれ量」は、いずれも、「更新」のタイミングが2回発生する毎にほぼゼロにリセットされ、次のリセットが発生するまでずれ量が徐々に増えていく。また「インジェクタ1の噴射量のずれ量」がほぼゼロにリセットされるタイミングは、
図4に示すフローチャートにおけるステップS281にて噴射補正量1と補正噴射量4を算出したタイミングである。従って「インジェクタ1の噴射量のずれ量」がほぼゼロにリセットされるタイミングでは、「インジェクタ4の噴射量のずれ量」もほぼゼロにリセットされる。同様に「インジェクタ3の噴射量のずれ量」がほぼゼロにリセットされるタイミングでは、「インジェクタ2の噴射量のずれ量」もほぼゼロにリセットされる。
【0082】
●●[第2の実施の形態における制御手段50の処理手順(
図7〜
図11)]
図8は、温度T3、温度T2、温度T1(温度T3>温度T2>温度T1)の各温度の場合において、インジェクタの運転時間(使用累積時間)と、当該インジェクタの噴射量変動量との関係を示すグラフである。インジェクタの噴射量変動量は、
図8に示すように、インジェクタが製造されてから初期の期間では、変動の度合いが比較的大きく変化(傾きが大きく変化)しており、その後は、変動の度合いが小さくなる(傾きが小さくなる)ことが知られている。また温度が高いほど、変動の度合いが比較的大きい期間が短くなることが知られている。この変動の度合いが比較的大きな期間(
図8中のグラフの傾きが比較的大きな期間)を「なじみ期間」と呼ぶ。すなわち、なじみ期間が経過後は、変動の度合いが比較的小さい。
【0083】
上述したグループインジェクタ学習では、後述する単独インジェクタ学習と比較して、噴射補正量の更新頻度は高いが、噴射補正量を求めるための情報量が少ない(
図5中のδ1とδ2で先行インジェクタの噴射補正量を求め、δ3とδ4で後続インジェクタの噴射補正量を求めている)ので、噴射補正量の精度が、やや落ちる可能性がある。また後述するように、単独インジェクタ学習では、グループインジェクタ学習と比較して、噴射補正量の更新頻度は低いが、噴射補正量を求めるための情報量が多い(
図11中のδ5とδ6とδ7とδ8で単独学習インジェクタの噴射補正量を求めている)ので、噴射補正量の精度は高い。そこで、変動量が大きいなじみ期間の間は、グループインジェクタ学習を行って、高い頻度で噴射補正量を更新し、変動量が小さいなじみ期間の経過後では、単独インジェクタ学習を行うことが、より好ましい。
【0084】
図7に示すフローチャートは、上述したように、なじみ期間の間はグループインジェクタ学習を行い、なじみ期間の経過後には単独インジェクタ学習を行う、第2の実施の形態における制御手段50の処理手順の例を示している。
図7に示す処理S300は、所定タイミングで起動され、処理S300が起動されると制御手段50はステップS310へと処理を進める。
【0085】
ステップS310にて制御手段50は、被熱温度を演算してステップS320に進む。例えば制御手段50は、エンジンの回転数と、インジェクタからの燃料噴射量と、に基づいたマップ等(予め記憶手段に記憶されている)を用いて被熱温度を求める。
【0086】
ステップS320にて制御手段50は、被熱量を演算してステップS330に進む。例えば制御手段50は、内燃機関の運転時間(運転継続時間)を計測しており、当該運転時間と、被熱温度と、に基づいたマップ等(予め記憶手段に記憶されている)を用いて被熱量を求める。
【0087】
ステップS330にて制御手段50は、被熱量に基づいた被熱関連量を求め、被熱関連量を累積した(積算した)累積被熱関連量を算出し、ステップS340に進む。被熱量から被熱関連量への換算方法は、特に限定せず、被熱量=被熱関連量としてもよい。
【0088】
ステップS340にて制御手段50は、累積被熱関連量が所定量未満であるか否かを判定し、累積被熱関連量が所定量未満である場合(Yes)はステップS351に進み、累積被熱関連量が所定量以上である場合(No)はステップS352に進む。
【0089】
ステップS351に進んだ場合、制御手段50は、なじみ期間中であると判定してステップS381に進む。
【0090】
ステップS381にて制御手段50は、前述した処理S100、処理S200の起動及び実行を行い(後述する処理S400、処理500を実行せず)、前述したグループインジェクタ学習制御を実行する。
【0091】
ステップS352に進んだ場合、制御手段50は、なじみ期間経過後であると判定してステップS362に進む。
【0092】
ステップS362にて制御手段50は、今回のなじみ期間経過後の判定が、なじみ期間中からなじみ期間経過後へと切替わったタイミングであるか否かを判定し、切替わったタイミングであると判定した場合(Yes)はステップS372に進み、前回もなじみ期間経過後と判定していた場合(No)はステップS382に進む。
【0093】
ステップS372に進んだ場合、制御手段50は、累積補正量1〜累積補正量4をクリア(初期化)し、単独学習回数1〜単独学習回数4をクリア(初期化)してステップS382に進む。制御手段50は、グループインジェクタ学習制御から単独インジェクタ学習制御に切替わったタイミングで、単独インジェクタ学習で用いる累積補正量1〜累積補正量4、単独学習回数1〜単独学習回数4を初期化する。
【0094】
ステップS382に進んだ場合、制御手段50は、前述した処理S100の代わりに後述する処理S400の起動及び実行を行い、前述した処理S200の代わりに後述する処理S500の起動及び実行を行い、後述する単独インジェクタ学習制御を実行する。
【0095】
このステップS310〜S330の処理は、内燃機関の運転状態に基づいて、インジェクタの被熱量に関連した被熱関連量を積算し、積算した被熱関連量である累積被熱関連量を算出する累積被熱関連量算出ステップに相当する。そして当該累積被熱関連量算出ステップを実行している制御手段50は、
図2に示す累積被熱関連量算出手段53Aとして動作する。
【0096】
またステップS340、S351、S381の処理は、累積被熱関連量が所定被熱関連量未満である場合にグループインジェクタ学習手段を用いてインジェクタ毎の噴射補正量を求めるなじみ期間中学習ステップに相当する。そして当該なじみ期間中学習ステップを実行している制御手段50は、
図2に示すなじみ期間中学習手段53Bとして動作する。
【0097】
またステップS340、S352、(S362、S372)、S382の処理は、累積被熱関連量が所定被熱関連量以上である場合に単独インジェクタ学習手段を用いてインジェクタ毎の噴射補正量を求めるなじみ期間経過後学習ステップに相当する。そして当該なじみ期間経過後学習ステップを実行している制御手段50は、
図2に示すなじみ期間経過後学習手段53Cとして動作する。
【0098】
●[単独学習噴射を実行する処理の処理手順(
図9)]
図9は、単独インジェクタ学習制御を行なう際、前述した処理S100(
図3参照)の代わりに起動及び実行される処理である。以下、
図9のフローチャートの各処理について説明する。制御手段50は、
図9に示す処理S400が起動されると、ステップS410へと処理を進める。
【0099】
ステップS410にて制御手段50は、
図3に示すステップS110と同様、無噴射運転中であるか否かを判定し、無噴射運転中である場合(Yes)はステップS420に進み、無噴射運転中でない場合(No)は処理を終了する。
【0100】
ステップS420に進んだ場合、制御手段50は、噴射量学習実行条件が成立しているか否かを判定し、成立している場合(Yes)はステップS441に進み、成立していない場合(No)は処理を終了する。なお、噴射量学習実行条件については、
図3に示すステップS120と同様であるので説明を省略する。
【0101】
上記のステップS410とステップS420の処理は、無噴射運転時において噴射量学習実行条件が成立しているか否かを判定する学習条件判定ステップに相当する。そして当該学習条件判定ステップを実行している制御手段50は、
図2に示す学習条件判定手段52Aとして動作する。
【0102】
ステップS441に進んだ場合、制御手段50は、単独学習噴射を実施済であるか否かを判定し、単独学習噴射を実施済である場合(Yes)は処理を終了し、単独学習噴射を実施済でない場合(No)はステップS451に進む。なお、単独学習噴射を内燃機関の運転時間ごとあるいは内燃機関を搭載した車両の所定走行距離ごとに実施を継続する場合、このステップの処理は実施しなくてもよい。
【0103】
ステップS451に進んだ場合、制御手段50は、単独学習噴射の実施タイミングであるか否かを判定し、単独学習噴射の実施タイミングである場合(Yes)はステップS461に進み、単独学習噴射の実施タイミングでない場合(No)は処理を終了する。
【0104】
ステップS461に進んだ場合、制御手段50は、単独学習噴射(学習用噴射量の噴射)を実施して処理を終了する。制御手段50は、前回の単独学習噴射を、どのインジェクタで実施したかを記憶しており、単独学習噴射毎に、インジェクタを順番に変更する。例えば制御手段50は、前回の単独学習噴射をインジェクタ43A(インジェクタ1)にて実施した場合、今回の単独学習噴射ではインジェクタ43C(インジェクタ3)にて実施する。なお、
図11に示す例は、今回の単独学習噴射を、1番気筒(#1)用のインジェクタ1(インジェクタ43A)にて実施した場合の例を示している。
【0105】
上記のステップS441〜S461の処理は、噴射量学習タイミング毎に、複数のインジェクタの中から1つのインジェクタを単独学習インジェクタとして特定し、特定した単独学習インジェクタから、当該単独学習インジェクタの噴射タイミングにおいて、学習用噴射量を噴射する単独学習噴射ステップに相当する。そして当該単独学習噴射ステップを実行している制御手段50は、
図2に示す単独学習噴射手段52Bとして動作する。
【0106】
●[単独学習噴射の実噴射量の推定と、噴射補正量を算出する処理手順(
図10、
図11)]
図10は、単独インジェクタ学習制御を行なう際、前述した処理S200(
図4参照)の代わりに起動及び実行される処理である。以下、
図10のフローチャートの各処理について説明する。制御手段50は、
図10に示す処理S500が起動されると、ステップS510へと処理を進める。
【0107】
ステップS510にて制御手段50は、
図4に示すステップS210と同様、今回の処理S500が起動された時刻と前回の処理S500が起動された時刻との差から、クランクシャフトの180°CAの回転に要した時間を算出し、最新の回転数NEを算出してステップS515に進む。なお処理の詳細についてはステップS210と同様であるので、説明を省略する。
【0108】
ステップS515にて制御手段50は、
図4に示すステップS215と同様、今回の処理S500にて算出したNEと、前回の処理S500にて算出したNEと、の差である回転数変動量ΔNEを算出してステップS520に進む。なお処理の詳細についてはステップS215と同様であるので、説明を省略する。
【0109】
ステップS520にて制御手段50は、単独学習噴射を実施してから1080°CA後のタイミングであるか否かを判定する。単独学習噴射から1080°CA後のタイミングである場合(Yes、
図11の例では「タイミング」が「#4[i]の位置」)はステップS525に進み、そうでない場合(No)は処理を終了する。
【0110】
ステップS525に進んだ場合、制御手段50は、第3ベース変動量ΔAV3、単独学習噴射による単独実変動量δcを算出してステップS535に進む。例えば
図11の「タイミング」が「#4[i]」の場合において、回転数変動量ΔNEにおける符号「a」、「b」、「g」、「h」のそれぞれの回転数変動量ΔNEの平均を第3ベース変動量ΔAV3とする。
図11の例では、第3ベース変動量ΔAV3=(ΔNE2[i−1]+ΔNE1[i−1]+ΔNE3[i]+ΔNE4[i])/4とする。
【0111】
また、例えば
図11の「タイミング」が「#4[i]」の場合において、回転数変動量ΔNEの符号「c」の位置における第3ベース変動量ΔAV3からの変動量δ5と、回転数変動量ΔNEにおける符号「d」の位置における第3ベース変動量ΔAV3からの変動量δ6と、回転数変動量ΔNEにおける符号「e」の位置における第3ベース変動量ΔAV3からの変動量δ7と、回転数変動量ΔNEにおける符号「f」の位置における第3ベース変動量ΔAV3からの変動量δ8と、の平均を単独実変動量δcとする。
図11の例では、単独実変動量δc=[(ΔNE3[i−1]−ΔAV3)+(ΔNE4[i−1]−ΔAV3)+(ΔNE2[i]−ΔAV3)+(ΔNE1[i]−ΔAV3)]/4とする。
【0112】
このステップS525の処理は、単独学習噴射によって変動した内燃機関の回転数の実際の変動量である単独実変動量δcを検出する単独実変動量検出ステップに相当する。そして当該単独実変動量検出ステップを実行している制御手段50は、
図2に示す単独実変動量検出手段52Dとして動作する。
【0113】
ステップS535にて制御手段50は、単独実噴射量、を算出してステップS540に進む。例えば
図11の「タイミング」が「#4[i]」の場合において、制御手段50は、単独実変動量δcと、単独学習噴射を実行した際の回転数NEと(
図11の例では回転数NE1[i−1])、に基づいて単独学習噴射によるトルクを求め、当該トルクを発生させる噴射量である単独実噴射量を求める。このときの回転数NEは、単独実変動量δcの検出期間における内燃機関の回転数に相当する。
【0114】
このステップS535の処理は、単独実変動量δcと、単独実変動量δcの検出期間における内燃機関の回転数と、に基づいて単独実噴射量を求める、単独インジェクタ毎実噴射量算出ステップに相当する。そして当該単独インジェクタ毎実噴射量算出ステップを実行している制御手段50は、
図2に示す単独インジェクタ毎実噴射量算出手段52Fとして動作する。
【0115】
ステップS540にて制御手段50は、単独噴射補正量Hc、を算出してステップS551に進む。例えば
図11の「タイミング」が「#4[i]」の場合において、制御手段50は、学習用噴射量と単独実噴射量との差に基づいて単独噴射補正量Hcを算出する。
【0116】
ステップS551にて制御手段50は、単独学習インジェクタがインジェクタ1であるか否かを判定し、インジェクタ1である場合(Yes)はステップS561に進み、インジェクタ1でない場合(No)はステップS552に進む。
【0117】
ステップS561に進んだ場合、単独学習インジェクタはインジェクタ1であるので、制御手段50は、インジェクタ1用の累積補正量1に単独噴射補正量Hcを加算して累積補正量1を更新し、インジェクタ1用の学習回数である単独学習回数1をカウントアップして、ステップS571に進む。
【0118】
ステップS571に進んだ場合、制御手段50は、単独学習回数1が所定回数以上であるか否かを判定し、所定回数以上である場合はステップS581に進み、所定回数未満である場合は処理を終了する。
【0119】
ステップS581に進んだ場合、制御手段50は、累積補正量1に基づいて(例えば平均化して)インジェクタ1用の噴射補正量1を算出し、累積補正量1と単独学習回数1をクリア(初期化)して処理を終了する。
【0120】
ステップS552に進んだ場合、制御手段50は、単独学習インジェクタがインジェクタ2であるか否かを判定し、インジェクタ2である場合(Yes)はステップS562に進み、インジェクタ2でない場合(No)はステップS553に進む。
【0121】
ステップS562に進んだ場合、単独学習インジェクタはインジェクタ2であるので、制御手段50は、インジェクタ2用の累積補正量2に単独噴射補正量Hcを加算して累積補正量2を更新し、インジェクタ2用の学習回数である単独学習回数2をカウントアップして、ステップS572に進む。
【0122】
ステップS572に進んだ場合、制御手段50は、単独学習回数2が所定回数以上であるか否かを判定し、所定回数以上である場合はステップS582に進み、所定回数未満である場合は処理を終了する。
【0123】
ステップS582に進んだ場合、制御手段50は、累積補正量2に基づいて(例えば平均化して)インジェクタ2用の噴射補正量2を算出し、累積補正量2と単独学習回数2をクリア(初期化)して処理を終了する。
【0124】
ステップS553に進んだ場合、制御手段50は、単独学習インジェクタがインジェクタ3であるか否かを判定し、インジェクタ3である場合(Yes)はステップS563に進み、インジェクタ3でない場合(No)はステップS564に進む。
【0125】
ステップS563に進んだ場合、単独学習インジェクタはインジェクタ3であるので、制御手段50は、インジェクタ3用の累積補正量3に単独噴射補正量Hcを加算して累積補正量3を更新し、インジェクタ3用の学習回数である単独学習回数3をカウントアップして、ステップS573に進む。
【0126】
ステップS573に進んだ場合、制御手段50は、単独学習回数3が所定回数以上であるか否かを判定し、所定回数以上である場合はステップS583に進み、所定回数未満である場合は処理を終了する。
【0127】
ステップS583に進んだ場合、制御手段50は、累積補正量3に基づいて(例えば平均化して)インジェクタ3用の噴射補正量3を算出し、累積補正量3と単独学習回数3をクリア(初期化)して処理を終了する。
【0128】
ステップS564に進んだ場合、単独学習インジェクタはインジェクタ4であるので、制御手段50は、インジェクタ4用の累積補正量4に単独噴射補正量Hcを加算して累積補正量4を更新し、インジェクタ4用の学習回数である単独学習回数4をカウントアップして、ステップS574に進む。
【0129】
ステップS574に進んだ場合、制御手段50は、単独学習回数4が所定回数以上であるか否かを判定し、所定回数以上である場合はステップS584に進み、所定回数未満である場合は処理を終了する。
【0130】
ステップS584に進んだ場合、制御手段50は、累積補正量4に基づいて(例えば平均化して)インジェクタ4用の噴射補正量4を算出し、累積補正量4と単独学習回数4をクリア(初期化)して処理を終了する。
【0131】
以上に説明したステップS540以降の処理は、インジェクタ毎に複数回求めた単独実噴射量と、学習用噴射量と、の差に基づいてインジェクタ毎の噴射補正量を求める単独インジェクタ毎補正量算出ステップに相当する。また当該単独インジェクタ毎補正量算出ステップを実行している制御手段50は、
図2に示す単独インジェクタ毎補正量算出手段52Gとして動作する。
【0132】
以上に説明した
図9及び
図10の処理手順に示す単独インジェクタ学習よって、
図11に示すように、1回の噴射量学習(単独インジェクタ学習)にて、1つのインジェクタの噴射量学習が実施される。
図11に示す単独インジェクタ学習では、変動量δ5〜δ8の4個の情報を用いて学習している。従って、単独インジェクタ学習は、
図5に示す変動量δ1、δ2の2個の情報を用いて先行インジェクタの噴射量を学習するとともに変動量δ3、δ4の2個の情報を用いて後続インジェクタの噴射量を学習するグループインジェクタ学習とは頻度と、精度が異なる。つまり、単独インジェクタ学習では、1回の噴射量学習にて、1つのインジェクタのみ噴射量学習を行うため、上述したグループインジェクタ学習と比較して、更新頻度は1/2である(
図6参照)が、より多くの情報に基づいて算出される噴射補正量の精度は、より高いといえる。なお
図2に示すように、単独インジェクタ学習手段は、上述した学習条件判定手段52A〜単独インジェクタ毎補正量算出手段52Gを有している。
【0133】
以上、本実施の形態にて説明したグループインジェクタ学習を用いた内燃機関の燃料噴射制御装置、及び内燃機関の燃料噴射量学習方法は、インジェクタ毎の噴射補正量を求める頻度をより高くすることができる。また、なじみ期間に応じてグループインジェクタ学習と単独インジェクタ学習とを切り替えることで、バランスよく噴射補正量の更新頻度と精度を確保することができる。
【0134】
本発明の、内燃機関の燃料噴射制御装置、及び内燃機関の燃料噴射量学習方法は、本実施の形態で説明した構成、構造、動作、処理手順等に限定されず、本発明の要旨を変更しない範囲で種々の変更、追加、削除が可能である。
【0135】
本実施の形態にて説明したフローチャート(
図3、
図4、
図7、
図9、
図10)は、これらに限定されるものではなく、種々の変更、追加、削除が可能である。また動作の例を示すタイムチャート(
図5、
図11)も、この動作に限定されるものではない。
【0136】
また本実施の形態の説明では、4気筒の内燃機関を例として説明したが、6気筒や8気筒等、種々の数の気筒を有する内燃機関に適用することができる。例えば6気筒の場合では、クランクが2回転(720°CA)する間に、第1気筒−第2気筒−第3気筒−第4気筒−第5気筒−第6気筒、の順に爆発行程が発生すると仮定すると、先行インジェクタの爆発行程と後続インジェクタの爆発行程が、連続した爆発行程とならないように、第1気筒用インジェクタと第4気筒用インジェクタにてグループAを構成し、第2気筒用インジェクタと第5気筒用インジェクタにてグループBを構成し、第3気筒用インジェクタと第6気筒用インジェクタにてグループCを構成すればよい。
【0137】
また、以上(≧)、以下(≦)、より大きい(>)、未満(<)等は、等号を含んでも含まなくてもよい。また、本実施の形態の説明に用いた数値は一例であり、この数値に限定されるものではない。