(57)【要約】【課題】予測吸入空気量の推定誤差等による過渡的な燃料噴射量の過不足分とインジェクタの性能ばらつき等による燃料噴射量の定常的な過不足分とを、迅速且つ精度良く補償すること。【解決手段】この燃料噴射量制御装置は、機関の予測運転状態量に基づく予測筒内吸入空気量（ｋｌｆｗｄ）に応じて基本燃料噴射量（ｆｉｎｊｂ（ｋ））を求め、実際の機関の運転状態量から実筒内吸入空気量（ｋｌｃｙ（ｋ−１））を求め、予測筒内吸入空気量と実筒内吸入空気量との誤差による燃料過不足分をフィードフォワード（ＦＦ）系補正量（ｆｉｎｊｋ（ｋ））で補正してＦＦ燃料噴射量（ｆｉｎｊｆｗｄ（ｋ））を求める。また、検出した空燃比（ａｂｙｆｓ）と、ＦＦ燃料噴射量（ｆｉｎｊｆｗｄ（ｋ））により定まる混合気の空燃比とに基づいてフィードバック（ＦＢ）系補正量（ｆｉｎｊｆｂ（ｋ））を求め、このＦＢ系補正量でＦＦ燃料噴射量を補正して最終燃料噴射量（ｆｉｎｊｆｉｎａｌ（ｋ））を求める。【選択図】　図２
2004044454.tif 000002
【特許請求の範囲】
【請求項１】
現時点よりも先の時点における内燃機関の運転状態量を予測するとともに、同機関の特定気筒の任意の吸気行程終了前の時点で同予測した機関の運転状態量に基づいて同任意の吸気行程にて同特定気筒に吸入される吸入空気量を予測筒内吸入空気量として算出する予測筒内吸入空気量算出手段と、
前記算出された予測筒内吸入空気量と目標空燃比とに基づいて同目標空燃比を得るための基本燃料噴射量を算出する基本燃料噴射量算出手段と、
前記特定気筒の前記任意の吸気行程の一回前の吸気行程に対し前記予測筒内吸入空気量算出手段が前記予測筒内吸入空気量の算出に用いた前記機関の運転状態量が確定した後の時点で同確定した実際の運転状態量に基づいて同一回前の吸気行程にて同特定気筒に吸入された吸入空気量を実筒内吸入空気量として算出する実筒内吸入空気量算出手段と、
前記特定気筒の前記任意の吸気行程の一回前の吸気行程に対する前記予測筒内吸入空気量及び同一回前の吸気行程に対する前記実筒内吸入空気量の誤差に起因する同一回前の吸気行程に対する前記基本燃料噴射量の過不足量を補償するためのフィードフォワード系補正量を、同一回前の吸気行程に対する同予測筒内吸入空気量と同一回前の吸気行程に対する同実筒内吸入空気量とに基づいて算出するフィードフォワード系補正量算出手段と、
前記特定気筒の前記任意の吸気行程に対する基本燃料噴射量を前記フィードフォワード系補正量で補正してフィードフォワード燃料噴射量を算出するフィードフォワード燃料噴射量算出手段と、
前記機関の排ガスの空燃比を検出する空燃比検出手段と、
前記空燃比検出手段が空燃比を検出した排ガスに対応する混合気を吸入した前記特定気筒の過去の吸気行程に対し前記フィードフォワード燃料噴射量算出手段が算出していた前記フィードフォワード燃料噴射量に基づいて定まる同混合気の空燃比と、前記空燃比検出手段により検出された空燃比との偏差を小さくするためのフィードバック系補正量を、同混合気の空燃比と同検出された空燃比とに基づいて算出するフィードバック系補正量算出手段と、
前記特定気筒の前記任意の吸気行程に対して算出されたフィードフォワード燃料噴射量を前記フィードバック系補正量で補正することにより最終燃料噴射量を算出する最終燃料噴射量算出手段と、
前記最終燃料噴射量の燃料を前記特定気筒の前記任意の吸気行程に対して噴射する燃料噴射手段と、
を備えた内燃機関の燃料噴射量制御装置。
【請求項２】
現時点よりも先の時点における内燃機関の運転状態量を予測するとともに、同機関の特定気筒の任意の吸気行程終了前の時点で同予測した機関の運転状態量に基づいて同任意の吸気行程にて同特定気筒に吸入される吸入空気量を予測筒内吸入空気量として算出する予測筒内吸入空気量算出手段と、
前記予測筒内吸入空気量と目標空燃比とに基づいて同目標空燃比を得るための基本燃料噴射量を算出する基本燃料噴射量算出手段と、
前記基本燃料噴射量をフィードフォワード系補正量で補正してフィードフォワード燃料噴射量を算出するフィードフォワード燃料噴射量算出手段と、
前記特定気筒の前記任意の吸気行程の一回前の吸気行程よりも後の時点で、同一回前の吸気行程に対して算出された前記フィードフォワード燃料噴射量の燃料が同一回前の吸気行程に対して噴射されたと仮定した場合に同特定気筒に同一回前の吸気行程において供給されたと考えられる燃料量である計算筒内燃料量を算出するフィードフォワード系筒内燃料量算出手段と、
前記特定気筒の前記任意の吸気行程の一回前の吸気行程に対し前記予測筒内吸入空気量算出手段が前記予測筒内吸入空気量の算出に用いた前記機関の運転状態量が確定した時点よりも後の時点で同確定した実際の運転状態量に基づいて同一回前の吸気行程にて同特定気筒に吸入された吸入空気量を実筒内吸入空気量として算出する実筒内吸入空気量算出手段と、
前記実筒内吸入空気量と前記目標空燃比とに基づいて同目標空燃比を得るためのフィードフォワード目標筒内燃料量を算出するフィードフォワード目標筒内燃料量算出手段と、
前記計算筒内燃料量と前記フィードフォワード目標筒内燃料量との偏差が小さくなるように、同計算筒内燃料量と同フィードフォワード目標筒内燃料量とに基づいて前記フィードフォワード系補正量を算出するフィードフォワード系補正量算出手段と、
前記機関の排ガスの空燃比を検出する空燃比検出手段と、
前記検出された空燃比と、前記特定気筒が同検出された空燃比のガスを吸入したと考えられる同特定気筒の所定回数前の吸気行程に対して前記実筒内吸入空気量算出手段が算出した実筒内吸入空気量と、に基づいて同特定気筒の同所定回数前の吸気行程において同特定気筒に実際に供給された燃料量であるセンサ検出筒内燃料量を算出するセンサ検出筒内燃料量算出手段と、
前記特定気筒の前記所定回数前の吸気行程に対して前記フィードフォワード系筒内燃料量算出手段が算出していた計算筒内燃料量と前記センサ検出筒内燃料量算出手段が算出したセンサ検出筒内燃料量との偏差が小さくなるように、同計算筒内燃料量と同センサ検出筒内燃料量とに基づいてフィードバック系補正量を算出するフィードバック系補正量算出手段と、
前記フィードバック系補正量で前記任意の吸気行程に対して算出されたフィードフォワード燃料噴射量を補正することにより最終燃料噴射量を算出する最終燃料噴射量算出手段と、
前記最終燃料噴射量の燃料を前記特定気筒の前記任意の吸気行程に対して噴射する燃料噴射手段と、
を備えた内燃機関の燃料噴射量制御装置。
【請求項３】
現時点よりも先の時点における内燃機関の運転状態量を予測するとともに、同機関の特定気筒の任意の吸気行程終了前の時点で同予測した機関の運転状態量に基づいて同任意の吸気行程にて同特定気筒に吸入される吸入空気量を予測筒内吸入空気量として算出する予測筒内吸入空気量算出手段と、
前記予測筒内吸入空気量と目標空燃比とに基づいて同目標空燃比を得るための基本燃料噴射量を算出する基本燃料噴射量算出手段と、
前記基本燃料噴射量をフィードフォワード系補正量で補正してフィードフォワード燃料噴射量を算出するフィードフォワード燃料噴射量算出手段と、
前記特定気筒の前記任意の吸気行程の一回前の吸気行程よりも後の時点で、同一回前の吸気行程に対して算出された前記フィードフォワード燃料噴射量の燃料が同一回前の吸気行程に対して噴射されたと仮定した場合に同特定気筒に同一回前の吸気行程において供給されたと考えられる燃料量である計算筒内燃料量を算出するフィードフォワード系筒内燃料量算出手段と、
前記特定気筒の前記任意の吸気行程の一回前の吸気行程に対し前記予測筒内吸入空気量算出手段が前記予測筒内吸入空気量の算出に用いた前記機関の運転状態量が確定した時点よりも後の時点で同確定した実際の運転状態量に基づいて同一回前の吸気行程にて同特定気筒に吸入された吸入空気量を実筒内吸入空気量として算出する実筒内吸入空気量算出手段と、
前記実筒内吸入空気量と前記目標空燃比とに基づいて同目標空燃比を得るためのフィードフォワード目標筒内燃料量を算出するフィードフォワード目標筒内燃料量算出手段と、
前記計算筒内燃料量と前記フィードフォワード目標筒内燃料量との偏差が小さくなるように、同計算筒内燃料量と同フィードフォワード目標筒内燃料量とに基づいて前記フィードフォワード系補正量を算出するフィードフォワード系補正量算出手段と、
前記機関の排ガスの空燃比を検出する空燃比検出手段と、
前記空燃比検出手段により検出された空燃比のガスを前記特定気筒が吸入したと考えられる同特定気筒の所定回数前の吸気行程に対して前記実筒内吸入空気量算出手段が算出した実筒内吸入空気量、及び、前記特定気筒の同所定回数前の吸気行程に対して前記フィードフォワード系筒内燃料量算出手段が算出していた計算筒内燃料量に基づいて定まる計算空燃比と、同検出された空燃比と、の偏差が小さくなるように、同計算空燃比と同検出された空燃比とに基づいてフィードバック系補正量を算出するフィードバック系補正量算出手段と、
前記フィードバック系補正量で前記任意の吸気行程に対して算出されたフィードフォワード燃料噴射量を補正することにより最終燃料噴射量を算出する最終燃料噴射量算出手段と、
前記最終燃料噴射量の燃料を前記特定気筒の前記任意の吸気行程に対して噴射する燃料噴射手段と、
を備えた内燃機関の燃料噴射量制御装置。
【請求項４】
請求項２又は請求項３に記載の内燃機関の燃料噴射量制御装置において、
前記フィードフォワード系筒内燃料量算出手段は、前記機関の吸気通路構成部材に付着する燃料の挙動を表す燃料挙動モデルの順モデルを用いて前記計算筒内燃料量を算出するように構成されたことを特徴とする内燃機関の燃料噴射量制御装置。
【請求項５】
請求項１乃至請求項５の何れか一項に記載の内燃機関の燃料噴射量制御装置において、
前記基本燃料噴射量算出手段は、前記機関の吸気通路構成部材に付着する燃料の挙動を表す燃料挙動モデルの逆モデルを用いて前記基本燃料噴射量を算出するように構成されたことを特徴とする内燃機関の燃料噴射量制御装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、内燃機関の燃料噴射量制御装置に関する。
【０００２】
【従来の技術】
電子制御燃料噴射式の内燃機関においては、吸気行程直前又は吸気行程中にあって燃料噴射による燃料の供給が必要な気筒（以下、「特定気筒（特定の気筒）」又は「燃料噴射気筒」と云う。）の同吸気行程における吸入空気量を求め、この求めた吸入空気量に応じた量の燃料を、最も遅くとも同吸気行程が終了する吸気弁閉弁時（吸気弁の状態が開状態から閉状態に変化する時点）までに、場合によっては同吸気行程開始前までに、噴射する必要がある。
【０００３】
このため、例えば、特開平１０−１６９４６９号公報に開示された内燃機関の制御装置は、同内燃機関の運転状態量の一つであるスロットル弁開度を燃料噴射気筒の吸気弁閉弁時まで前もって予測し、少なくとも同予測したスロットル弁開度と内燃機関の吸気系の空気の挙動をモデル化した空気モデルとに基づいて同燃料噴射気筒の吸気弁閉弁時における吸入空気量を同吸気弁閉弁時よりも前の時点で予測し、その予測した吸入空気量に応じた燃料噴射量の燃料を同気筒に対して噴射するようになっている。
【０００４】
ところで、上記従来の制御装置は、例えば、予測したスロットル弁開度と実際のスロットル弁開度とが相違する等の理由により、予測した吸入空気量と実際の吸入空気量との間に差（推定誤差）が生じると、燃料噴射量が適切な値と異なる値となって空燃比が乱れるという問題がある。
【０００５】
これに対し、機関に吸入される混合気の空燃比を目標空燃比に一致させるように、機関の排気通路に配設した空燃比センサによって排ガスの空燃比を検出し、検出した空燃比の目標空燃比からの偏差に応じて燃料噴射量をフィードバック制御する燃料噴射量制御装置が広く知られている。これによれば、燃料性状の変化或いは、製造誤差に基づくインジェクタの性能ばらつき等に起因する混合気の空燃比の目標空燃比に対する定常的な偏差を低減することが可能となる。
【０００６】
【発明が解決しようとする課題】
しかしながら、上記空燃比センサが検出する空燃比は、過去において機関に供給された混合気が燃焼された後に排出され、その後、排気通路を介して同空燃比センサに到達した排ガスの空燃比であるから、フィードバック制御の無駄時間が大きく、予測した吸入空気量の推定誤差に基づく空燃比の乱れを同検出した空燃比に基づくフィードバック制御により迅速に補償しようとするとフィードバック制御ゲインを大きくせざるを得ないので、同制御ゲインが過大となって空燃比がハンチングしてしまう恐れがある。従って、本発明の目的は、上記フィードバック制御の利点を生かしつつ、吸入空気量の推定誤差をも迅速に補償し、以て、機関に供給される混合気の空燃比を目標空燃比に安定的に一致させることが可能な内燃機関の燃料噴射量制御装置を提供することにある。
【０００７】
【発明の概要】
上記目的を達成するための本発明の燃料噴射量制御装置は、図２に示したように、予測筒内吸入空気量算出手段Ｂ１と、基本燃料噴射量算出手段Ｂ３と、実筒内吸入空気量算出手段Ｂ４と、フィードフォワード系補正量算出手段（Ｂ５〜Ｂ７）と、フィードフォワード燃料噴射量算出手段Ａ１と、空燃比検出手段（空燃比センサ）６９と、フィードバック系補正量算出手段（Ｂ８〜Ｂ１１）と、最終燃料噴射量算出手段Ａ２と、燃料噴射手段３９とを備え、算出された最終燃料噴射量の燃料を特定気筒の任意の吸気行程に対して噴射する。
【０００８】
この制御装置は、これらの手段により、予測した機関の運転状態量に基づいて予測筒内吸入空気量（ｋｌｆｗｄ）を算出し、この予測筒内吸入空気量に基づき基本燃料噴射量（ｆｉｎｊｂ（ｋ））を求め、一方で実際の（確定した）機関の運転状態量から実際の筒内吸入空気量（ｋｌｃｙｌ（ｋ−１））を求め、予測筒内吸入空気量と実際の筒内吸入空気量との誤差による燃料の過不足分をフィードフォワード系補正量（ｆｉｎｊｋ（ｋ））で補正してフィードフォワード燃料噴射量（ｆｉｎｊｆｗｄ（ｋ））を求める。また、空燃比検出手段により検出した実際の空燃比（ａｂｙｆｓ）と、フィードフォワード燃料噴射量（ｆｉｎｊｆｗｄ（ｋ））により定まる混合気の空燃比の偏差が小さくなるようにフィードバック系補正量（ｆｉｎｊｆｂ（ｋ））を求め、フィードフォワード燃料噴射量をフィードバック系補正量で補正して最終燃料噴射量（ｆｉｎｊｆｉｎａｌ（ｋ））を求める。以下、各手段について個別具体的に説明する。
【０００９】
予測筒内吸入空気量算出手段Ｂ１は、現時点よりも先の時点における内燃機関の運転状態量を予測する。この運転状態量は、例えば、機関のスロットル弁開度等であって、機関の吸入空気量を予測・推定するのに必要な機関運転状態量である。そして、予測筒内吸入空気量算出手段は、機関の特定気筒の任意の吸気行程終了前の時点で同予測した機関の運転状態量に基づいて同任意の吸気行程にて同特定気筒に吸入される吸入空気量を予測筒内吸入空気量（ｋｌｆｗｄ）として算出する。即ち、この手段は、ある吸気行程が終了する前に、その吸気行程で吸入される空気量を将来の機関運転状態量に基づいて予測する。
【００１０】
基本燃料噴射量算出手段Ｂ３は、前記算出された予測筒内吸入空気量と目標空燃比とに基づいて同目標空燃比を得るための基本燃料噴射量（ｆｉｎｊｂ（ｋ））を、例えば、予測筒内吸入空気量（ｋｌｆｗｄ）を目標空燃比（ａｂｙｆｒｅｆ）で除すること等により算出する。
【００１１】
実筒内吸入空気量算出手段Ｂ４は、実際の運転状態量に基づいて、前記特定気筒の前記任意の吸気行程の一回前の吸気行程にて同特定気筒に吸入された吸入空気量を実筒内吸入空気量（ｋｌｃｙｌ（ｋ−１））として算出する。具体的には、実筒内吸入空気量算出手段は、前記特定気筒の前記任意の吸気行程の一回前の吸気行程に対し前記予測筒内吸入空気量算出手段が前記予測筒内吸入空気量の算出に用いた前記機関の運転状態量が確定した時点よりも後の時点で、同確定した実際の運転状態量に基づいて同一回前の吸気行程にて同特定気筒に吸入された吸入空気量を実筒内吸入空気量（ｋｌｃｙｌ（ｋ−１））として算出する。このように、実筒内吸入空気量（ｋｌｃｙｌ（ｋ−１））は、確定した（予測・推定誤差が含まれていない）機関の運転状態量に基づいて算出されるので、正確な筒内吸入空気量となる。
【００１２】
フィードフォワード系補正量算出手段（Ｂ５〜Ｂ７）は、「前記特定気筒の前記任意の吸気行程の一回前の吸気行程に対する前記予測筒内吸入空気量」と「同一回前の吸気行程に対する前記実筒内吸入空気量」の誤差に起因する同一回前の吸気行程に対する前記基本燃料噴射量の過不足量を補償するためのフィードフォワード系補正量（ｆｉｎｊｋ（ｋ））を、同一回前の吸気行程に対する同予測筒内吸入空気量と同一回前の吸気行程に対する同実筒内吸入空気量とに基づいて算出する。
【００１３】
フィードフォワード燃料噴射量算出手段Ａ１は、前記特定気筒の前記任意の吸気行程に対する基本燃料噴射量（ｆｉｎｊｂ（ｋ））を前記フィードフォワード系補正量ｆｉｎｊｋ（Ｋ））で補正してフィードフォワード燃料噴射量（ｆｉｎｊｆｗｄ（ｋ））を算出する。
【００１４】
空燃比検出手段６９は、前記機関の排ガスの空燃比（ａｂｙｆｓ）を検出する。フィードバック系補正量算出手段（Ｂ８〜Ｂ１１）は、前記空燃比検出手段が空燃比を検出した排ガスに対応する混合気を吸入した前記特定気筒の過去の吸気行程に対し前記フィードフォワード燃料噴射量算出手段が算出していた前記フィードフォワード燃料噴射量（ｆｉｎｊｆｗｄ）に基づいて定まる同混合気の空燃比（ｋｌｃｙｌ（ｋ−Ｎ）／ｆｃ（ｋ−Ｎ））と、前記空燃比検出手段により検出された空燃比（ａｂｙｆｓ）の偏差を小さくするためのフィードバック系補正量（ｆｉｎｊｆｂ（ｋ））を、同混合気の空燃比と同検出された空燃比とに基づいて算出する。
【００１５】
最終燃料噴射量算出手段Ａ２は、前記特定気筒の前記任意の吸気行程に対して算出されたフィードフォワード燃料噴射量（ｆｉｎｊｆｗｄ（ｋ））を前記フィードバック系補正量（ｆｉｎｊｆｂ（ｋ））で補正することにより最終燃料噴射量を算出する。燃料噴射手段３９は、前記最終燃料噴射量（ｆｉｎｊｆｉｎａｌ（ｋ））の燃料を前記特定気筒の前記任意の吸気行程に対して噴射する。
【００１６】
このように、一回前の吸気行程における吸入空気量の予測・推定誤差に基づく基本燃料噴射量の過不足は、かかる予測・推定誤差を反映したフィードフォワード系補正量により今回の吸気行程以降において迅速に補償される。換言すると、フィードフォワード燃料噴射量を算出するフィードフォワード系は、筒内吸入空気量の予測・推定に係る燃料噴射量の適正値からの偏差を空燃比検出手段の検出空燃比によらず補償する。
【００１７】
また、燃料性状の変化やインジェクタの性能ばらつき等に起因する定常的な空燃比の目標空燃比に対する偏差はフィードバック系補正量で確実に補償される。換言すると、フィードバック系補正量を求めるフィードバック系は、フィードフォワード燃料噴射量の定常的な過不足を検出空燃比で補償する。従って、機関が特に過渡運転状態となったことに伴う筒内吸入空気量の予測・推定誤差に起因する過渡的な空燃比の乱れを検出空燃比に基づくフィードバック制御で補償する必要がないので、かかるフィードバック制御のゲインを小さくすることができ、結果として安定した空燃比制御がなされ得る。更に、本燃料噴射量制御装置は、フィードフォワード系とフィードバック系とが、それぞれ異なる要因に基づく燃料噴射量の過不足分を補償しようとするので、互いに干渉して制御が不安定になることもない。
【００１８】
本発明による他の燃料噴射量制御装置は、予測筒内吸入空気量算出手段Ｂ１と、基本燃料噴射量算出手段Ｂ３と、フィードフォワード燃料噴射量算出手段Ａ１と、フィードフォワード系筒内燃料量算出手段Ｂ６と、実筒内吸入空気量算出手段Ｂ４と、フィードフォワード目標筒内燃料量算出手段Ｂ５と、フィードフォワード系補正量算出手段Ｂ７と、空燃比検出手段６９と、センサ検出筒内燃料量算出手段Ｂ８と、フィードバック系補正量算出手段Ｂ１１と、最終燃料噴射量算出手段Ａ２と、燃料噴射手段３９とを備えていて、算出された最終燃料噴射量の燃料を特定気筒の任意の吸気行程に対して噴射する。
【００１９】
この制御装置は、これらの手段により、予測した機関の運転状態量に基づいて予測筒内吸入空気量（ｋｌｆｗｄ）を算出し、この予測筒内吸入空気量に基づき基本燃料噴射量（ｆｉｎｊｂ（ｋ））を求め、この基本燃料噴射量をフィードフォワード系補正量（ｆｉｎｊｋ（ｋ））で補正してフィードフォワード燃料噴射量（ｆｉｎｊｆｗｄ（ｋ））を算出する。また、そのようなフィードフォワード燃料噴射量が一回前の吸気行程に対し噴射されたと仮定した場合に特定気筒に吸入されたと考えられる燃料量を計算筒内燃料量ｆｃ（ｋ−１）として算出するとともに、実際の（確定した）機関の運転状態量から同一回前の吸気行程に対する実際の筒内吸入空気量（ｋｌｃｙｌ（ｋ−１））を求め、この筒内吸入空気量を目標空燃比（ａｂｙｆｒｅｆ）で除すこと等により実際に特定気筒に供給されるべきであった燃料量をフィードフォワード目標筒内燃料量（ｆｃｒｅｆ（ｋ−１））として算出する。そして、計算筒内燃料量とフィードフォワード目標筒内燃料量とに基づいて前記フィードフォワード系補正量（ｆｉｎｊｂ（ｋ））を求める。
【００２０】
一方、排ガスの空燃比（ａｂｙｆｓ）を検出するとともに、その検出空燃比をもたらした混合気を吸入したときの実筒内吸入空気量（即ち、特定気筒の所定回数前の吸気行程に対する実筒内吸入空気量）（ｋｌｃｙｌ（ｋ−Ｎ））と検出空燃比（ａｂｙｆｓ）とに基づいてセンサ検出筒内燃料量（ｆｃｓｎｓ（ｋ−Ｎ））を算出し、所定回数前の吸気行程に対して算出された計算筒内燃料量（ｆｃ（ｋ−Ｎ））とセンサ検出筒内燃料量（ｆｃｓｎｓ（ｋ−Ｎ））との偏差が小さくなるようにフィードバック系補正量（ｆｉｎｊｆｂ（ｋ））を算出し、フィードフォワード燃料噴射量をフィードバック系補正量で補正して最終燃料噴射量ｆｉｎｊｆｉｎａｌ（ｋ）を求める。
【００２１】
このように、本制御装置によっても、一回前の吸気行程における吸入空気量の予測・推定誤差に基づく基本燃料噴射量の過不足は、かかる予測・推定誤差を反映したフィードフォワード系補正量により今回の吸気行程において迅速に補償される。換言すると、フィードフォワード燃料噴射量を算出するフィードフォワード系は、筒内吸入空気量の予測・推定に係る燃料噴射量の適正値からの偏差を空燃比検出手段の検出空燃比によらず迅速に補償する。
【００２２】
また、燃料性状の変化やインジェクタの性能ばらつき等に起因する定常的な空燃比の目標空燃比に対する偏差は、所定回数前の吸気行程において実際に特定気筒に供給された燃料量であるセンサ検出筒内燃料量と同所定回数前の吸気行程において実際に供給されるべきであった計算上の計算筒内燃料量との差に基づくフィードバック系補正量で確実に補償される。換言すると、フィードバック系補正量を求めるフィードバック系は、フィードフォワード燃料噴射量の定常的な過不足を検出空燃比に基づいて補償する。
【００２３】
従って、機関が特に過渡運転状態となったことに伴う筒内吸入空気量の予測・推定誤差に起因する過渡的な空燃比の乱れを検出空燃比に基づくフィードバック制御で補償する必要がないので、かかるフィードバック制御のゲインを小さくすることができ、結果として安定した空燃比制御がなされ得る。更に、本燃料噴射量制御装置は、フィードフォワード系とフィードバック系とが、それぞれ異なる要因に基づく燃料噴射量の過不足分を補償しようとするので、互いに干渉して制御が不安定になることもない。
【００２４】
本発明による他の燃料噴射量制御装置は、予測筒内吸入空気量算出手段Ｂ１と、基本燃料噴射量算出手段Ｂ３と、フィードフォワード燃料噴射量算出手段Ａ１と、フィードフォワード系筒内燃料量算出手段Ｂ６と、実筒内吸入空気量算出手段Ｂ４と、フィードフォワード目標筒内燃料量算出手段Ｂ５と、フィードフォワード系補正量算出手段Ｂ７と、空燃比検出手段６９と、フィードバック系補正量算出手段Ｂ１１と、最終燃料噴射量算出手段Ａ２と、燃料噴射手段３９とを備えていて、算出された最終燃料噴射量の燃料を特定気筒の任意の吸気行程に対して噴射する。
【００２５】
この制御装置は、フィードバック系補正量を除き、上述した燃料噴射量制御装置と同様に各種の量を計算する。そこで、この制御装置のフィードバック系補正量算出手段について説明すると、フィードバック系補正量算出手段は、空燃比検出手段６９により検出された空燃比をもたらした混合気を吸入したときの実筒内吸入空気量（即ち、特定気筒の所定回数前の吸気行程に対する実筒内吸入空気量）（ｋｌｃｙｌ（ｋ−Ｎ））、及び、前記特定気筒の同所定回数前の吸気行程に対して前記フィードフォワード系筒内燃料量算出手段が算出していた計算筒内燃料量ｆｃ（ｋ−Ｎ）とに基づいて定まる計算空燃比（＝ｋｌｃｙｌ（ｋ−Ｎ）／ｆｃ（ｋ−Ｎ））と、同検出された空燃比（ａｂｙｆｓ）と、の偏差が小さくなるように、同計算空燃比と同検出された空燃比とに基づいてフィードバック系補正量ｆｉｎｊｆｂ（ｋ）を算出する。即ち、このフィードバック系補正量算出手段は、フィードフォワード系の計算上の空燃比と検出空燃比とが等しくなるようにフィードバック補正量を算出する。
【００２６】
このように、前記燃料噴射量制御装置は、上述した燃料噴射量制御装置と同様、一回前の吸気行程における吸入空気量の予測・推定誤差に基づく基本燃料噴射量の過不足がフィードフォワード系補正量により今回の吸気行程以降において迅速に補償される。また、燃料性状の変化やインジェクタの性能ばらつき等に起因する定常的な空燃比の目標空燃比に対する偏差は、フィードバック系補正量で確実に補償される。
【００２７】
従って、機関が特に過渡運転状態となったことに伴う筒内吸入空気量の予測・推定誤差に起因する過渡的な空燃比の乱れを検出空燃比に基づくフィードバック制御で補償する必要がないので、かかるフィードバック制御のゲインを小さくすることができ、結果として安定した空燃比制御がなされ得る。更に、本燃料噴射量制御装置は、フィードフォワード系とフィードバック系とが、それぞれ異なる要因に基づく燃料噴射量の過不足分を補償しようとするので、互いに干渉して制御が不安定になることもない。
【００２８】
これらの場合、前記フィードフォワード系筒内燃料量算出手段は、前記機関の吸気通路構成部材に付着する燃料の挙動を表す燃料挙動モデルの順モデルを用いて前記計算筒内燃料量を算出するように構成されることが好適である。また、前記基本燃料噴射量算出手段は、前記機関の吸気通路構成部材に付着する燃料の挙動を表す燃料挙動モデルの逆モデルを用いて前記基本燃料噴射量を算出するように構成されることが好適である。
【００２９】
これらによれば、燃料付着量が考慮されるから、最終燃料噴射量がより一層精度良く算出され、機関の空燃比を目標空燃比により一致させることが可能となる。
【００３０】
【発明の実施の形態】
以下、本発明による内燃機関の燃料噴射量制御装置の実施形態について図面を参照しつつ説明する。図１は、本発明の実施形態に係る燃料噴射量制御装置を火花点火式多気筒（４気筒）内燃機関１０に適用したシステムの概略構成を示している。なお、図１は４気筒のうちの一つの気筒及びその気筒に対して設けられた構成部品を示しているが、他の気筒も同様の構成を有している。
【００３１】
この内燃機関１０は、シリンダブロック、シリンダブロックロワーケース、及びオイルパン等を含むシリンダブロック部２０と、シリンダブロック部２０の上に固定されるシリンダヘッド部３０と、シリンダブロック部２０にガソリン混合気を供給するための吸気系統４０と、シリンダブロック部２０からの排ガスを外部に放出するための排気系統５０とを含んでいる。
【００３２】
シリンダブロック部２０は、シリンダ２１、ピストン２２、コンロッド２３、及びクランク軸２４を含んでいる。ピストン２２はシリンダ２１内を往復動し、ピストン２２の往復動がコンロッド２３を介してクランク軸２４に伝達され、これにより同クランク軸２４が回転するようになっている。シリンダ２１とピストン２２のヘッドは、シリンダヘッド部３０とともに燃焼室２５を形成している。
【００３３】
シリンダヘッド部３０は、燃焼室２５に連通した吸気ポート３１、吸気ポート３１を開閉する吸気弁３２、吸気弁３２を駆動するインテークカムシャフトを含むとともに同インテークカムシャフトの位相角を連続的に変更する可変吸気タイミング装置３３、可変吸気タイミング装置３３のアクチュエータ３３ａ、燃焼室２５に連通した排気ポート３４、排気ポート３４を開閉する排気弁３５、排気弁３５を駆動するエキゾーストカムシャフト３６、点火プラグ３７、点火プラグ３７に与える高電圧を発生するイグニッションコイルを含むイグナイタ３８、及び燃料を吸気ポート３１内に噴射するインジェクタ（燃料噴射手段）３９を備えている。
【００３４】
吸気系統４０は、吸気ポート３１に連通し同吸気ポート３１とともに吸気通路を形成するインテークマニホールドを含む吸気管４１、吸気管４１の端部に設けられたエアフィルタ４２、吸気管４１内にあって各気筒に共通の吸気通路の開口断面積を可変とするスロットル弁４３、スロットル弁駆動手段を構成するスロットル弁アクチュエータ４３ａ、スワールコントロールバルブ（以下、「ＳＣＶ」と称呼する。）４４、及びＳＣＶアクチュエータ４４ａを備えている。
【００３５】
ＤＣモータからなるスロットル弁アクチュエータ４３ａは、後述する電子制御装置７０が達成する電子制御スロットル弁ロジックにより目標スロットル弁開度ＴＡｔが与えられると、実際のスロットル弁開度ＴＡが目標スロットル弁開度ＴＡｔとなるようにスロットル弁４３を駆動するようになっている。
【００３６】
ＤＣモータからなるＳＣＶアクチュエータ４４ａは、電気制御装置７０から駆動信号を受け、前記スロットル弁４３よりも下流で前記インジェクタ３９よりも上流の位置にて前記吸気管４１に対し回動可能に支持され、燃焼室に吸入される空気にスワールを発生させるためのＳＣＶ４４を回転駆動するようになっている。なお、本明細書においては、インテークマニホールドを含む吸気管４１、吸気ポート３１、吸気弁３２、及びＳＣＶ４４等を吸気通路を構成する部材（吸気通路構成部材）と称呼する。
【００３７】
排気系統５０は、排気ポート３４に連通したエキゾーストマニホールド５１、エキゾーストマニホールド５１に接続されたエキゾーストパイプ５２、及びエキゾーストパイプ５２に介装された触媒コンバータ（三元触媒装置）５３を備えている。
【００３８】
一方、このシステムは、熱線式エアフローメータ６１、吸気温センサ６２、大気圧センサ（スロットル弁上流圧力センサ）６３、スロットルポジションセンサ６４、ＳＣＶ開度センサ６５、カムポジションセンサ６６、クランクポジションセンサ６７、水温センサ６８、空燃比センサ６９、及びアクセル操作量検出手段（の一部）を構成するアクセル開度センサ８１を備えている。
【００３９】
エアフローメータ６１は、内燃機関１０に吸入される空気の質量流量を計測し、同質量流量Ｇａを表す信号を出力するようになっている。吸気温センサ６２は、エアフローメータ６１内に備えられていて、吸入空気の温度（吸気温度）を検出し、吸気温度ＴＨＡを表す信号を出力するようになっている。大気圧センサ６３は、スロットル弁４３の上流の圧力（即ち、大気圧）を検出し、スロットル弁上流圧力Ｐａを表す信号を出力するようになっている。スロットルポジションセンサ６４は、スロットル弁４３の開度を検出し、スロットル弁開度ＴＡを表す信号を出力するようになっている。ＳＣＶ開度センサ６５は、ＳＣＶ４４の開度を検出し、ＳＣＶ開度θｉｖを表す信号を出力するようになっている。
【００４０】
カムポジションセンサ６６は、インテークカムシャフトが９０°回転する毎に（即ち、クランク軸２４が１８０°回転する毎に）一つのパルスを有する信号（Ｇ２信号）を発生するようになっている。クランクポジションセンサ６７は、クランク軸２４が１０°回転する毎に幅狭のパルスを有するとともに同クランク軸２４が３６０°回転する毎に幅広のパルスを有する信号を出力するようになっている。この信号は、エンジン回転速度ＮＥを表す。水温センサ６８は、内燃機関１０の冷却水の温度を検出し、冷却水温ＴＨＷを表す信号を出力するようになっている。空燃比センサ６９は、触媒コンバータ５３に流入する排ガス中の酸素濃度を検出する限界電流式空燃比センサであって空燃比ａｂｙｆｓを表す電圧信号ｖａｂｙｆｓを出力するようになっている。アクセル開度センサ８１は、運転者によって操作されるアクセルペダル８２の操作量を検出し、同アクセルペダルの操作量Ａｃｃｐを表す信号を出力するようになっている。
【００４１】
電気制御装置７０は、互いにバスで接続されたＣＰＵ７１、ＣＰＵ７１が実行するプログラム、テーブル（ルックアップテーブル、マップ）、定数等を予め記憶したＲＯＭ７２、ＣＰＵ７１が必要に応じてデータを一時的に格納するＲＡＭ７３、電源が投入された状態でデータを格納するとともに同格納したデータを電源が遮断されている間も保持するバックアップＲＡＭ７４、及びＡＤコンバータを含むインターフェース７５等からなるマイクロコンピュータである。インターフェース７５は、前記センサ６１〜６９，８１と接続され、ＣＰＵ７１にセンサ６１〜６９，８１からの信号を供給するとともに、同ＣＰＵ７１の指示に応じて可変吸気タイミング装置３３のアクチュエータ３３ａ、イグナイタ３８、インジェクタ３９、スロットル弁アクチュエータ４３ａ、及びＳＣＶアクチュエータ４４ａに駆動信号を送出するようになっている。
【００４２】
次に、上記のように構成された燃料噴射量制御装置により燃料噴射気筒に噴射される燃料の量（最終燃料噴射量）の決定方法について、図２を参照しながら説明する。図２の各ブロックＢ１，Ｂ２…，Ａ１，Ａ２等の機能は、後述するように、ＣＰＵ７１が所定のプログラム（ルーチン）を実行することにより達成される。なお、以下において、（ｋ）が付された変数は燃料噴射気筒（特定気筒）の今回の吸気行程（現在は排気行程にあって次に到来する吸気行程）に対する同変数であることを意味し、同様に、（ｋ−１）が付された変数は燃料噴射気筒の今回の吸気行程よりも一回前の吸気行程に対する同変数、（ｋ−Ｎ）が付された変数は燃料噴射気筒の今回の吸気行程よりもＮ回前の吸気行程に対する同変数であることを意味する。
【００４３】
（最終燃料噴射量ｆｉｎｊｆｉｎａｌ（ｋ）の決定方法）
最終燃料噴射量ｆｉｎｊｆｉｎａｌ（ｋ）は、下記数１に示したように、基本燃料噴射量ｆｉｎｊｂ（ｋ）をフィードフォワード系補正量ｆｉｎｊｋ（ｋ）で補正して得られたフィードフォワード燃料噴射量ｆｉｎｊｆｗｄ（ｋ）を、更にフィードバック系補正量ｆｉｎｊｆｂ（ｋ）で補正することにより得られる。以下、基本燃料噴射量ｆｉｎｊｂ（ｋ）、フィードフォワード系補正量ｆｉｎｊｋ（ｋ）、及びフィードバック系補正量ｆｉｎｊｆｂ（ｋ）の順に、それらの算出方法について説明する。
【００４４】
【数１】
ｆｉｎｊｆｉｎａｌ（ｋ）＝ｆｉｎｊｂ（ｋ）　＋　ｆｉｎｊｋ（ｋ）　＋　ｆｉｎｊｆｂ（ｋ）　＝　ｆｉｎｊｆｗｄ（ｋ）　＋　ｆｉｎｊｆｂ（ｋ）
【００４５】
（１）基本燃料噴射量ｆｉｎｊｂ（ｋ）の算出
このような燃料噴射量制御装置は、吸気行程にある気筒、又は吸気行程の直前の排気行程にある気筒（即ち、燃料噴射気筒、特定気筒）の吸気弁３２が、その吸気行程において開弁した状態から閉弁する状態に移行する時点（以下、この時点を「吸気弁閉弁時」又は「吸気行程終了時」とも称呼する。）より前の時点にて、同気筒に対して適切な量の燃料を噴射する必要がある。
【００４６】
そのため、図２に示した燃料噴射量制御装置は、予測筒内吸入空気量算出手段Ｂ１により、燃料噴射気筒の吸気行程終了時よりも前の時点で、同燃料噴射気筒の吸気行程終了時において同気筒内に吸入されているであろう吸入空気量を予測筒内吸入空気量ｋｌｆｗｄ（＝ｋｌｆｗｄ（ｋ））として予測・推定し、同予測筒内吸入空気量に基づいて決定される燃料量の燃料を同気筒の吸気弁３２の閉弁時より前の時点で同気筒に対して噴射する。
【００４７】
具体的には、本燃料噴射量制御装置は、噴射終了時期を燃料噴射気筒の吸気上死点前７５°クランクアングル（以下、「ＢＴＤＣ７５°ＣＡ」と表す。他のクランクアングルについても同様に表す。）としているので、予測筒内吸入空気量算出手段Ｂ１は、噴射に要する時間（インジェクタ３９の開弁時間）やＣＰＵの計算時間等を考慮して、ＢＴＤＣ７５°ＣＡの時点よりも前の時点であるＢＴＤＣ９０°ＣＡにて燃料噴射気筒の予測筒内吸入空気量ｋｌｆｗｄの算出を開始する。
【００４８】
即ち、予測筒内吸入空気量算出手段Ｂ１は、燃料噴射気筒のクランクアングルがＢＴＤＣ９０°となると、少なくとも筒内吸入空気量を予測するための機関の運転状態量であるスロットル弁開度の将来値（現時点よりも先の値）を予測・推定する。この予測・推定されたスロットル弁開度を、以下、「予測（推定）スロットル弁開度ＴＡｅｓｔ」と称呼する。そして、予測筒内吸入空気量算出手段Ｂ１は、スロットル弁開度、エンジン回転速度、及び吸気弁３２の閉弁クランク角度を定めるバルブタイミング（吸気バルブタイミング）と筒内吸入空気量との関係を規定した吸入空気量マップ（ルックアップテーブル）と、予測スロットル弁開度ＴＡｅｓｔと、その時点のエンジン回転速度ＮＥと、その時点のバルブタイミングＶＴとに基づいて、予測筒内吸入空気量ｋｌｆｗｄを算出する。
【００４９】
一方、本制御装置は、目標空燃比設定手段Ｂ２により、アクセル操作量Ａｃｃｐや冷却水温ＴＨＷ等の機関の運転状態量に応じて目標空燃比ａｂｙｆｒｅｆを設定する。この目標空燃比ａｂｙｆｒｅｆは通常の運転状態において理論空燃比ａｂｙｆｓｔｏｉｃｈに設定される。従って、以下においては、目標空燃比ａｂｙｆｒｅｆは常に理論空燃比ａｂｙｆｓｔｏｉｃｈであるとして説明する。
【００５０】
そして、本制御装置は、基本燃料噴射量算出手段Ｂ３により、予測筒内吸入空気量ｋｌｆｗｄを目標空燃比ａｂｙｆｒｅｆで除した値である仮目標筒内燃料量ｔｆｃｒｅｆ（＝ｋｌｆｗｄ／ａｂｙｆｒｅｆ）に基づいて基本燃料噴射量ｆｉｎｊｂ（ｋ）を求める。値ｔｆｃｒｅｆは、燃料噴射気筒（特定気筒）の今回の吸気行程において目標空燃比ａｂｙｆｒｅｆを得るために必要であろうと予測される燃料量であるが、これを「仮の」目標筒内燃料量としているのは、予測筒内吸入空気量ｋｌｆｗｄに予測・推定誤差が含まれているからである。なお、この予測・推定誤差に起因する基本燃料噴射量ｆｉｎｊｂ（ｋ）の過不足分は、後述するフィードフォワード系補正量ｆｉｎｊｋ（ｋ）により補償される。
【００５１】
ここで、基本燃料噴射量算出手段Ｂ３の機能について詳述すると、同基本燃料噴射量算出手段Ｂ３は、吸気通路構成部材への燃料付着による影響を考慮して（即ち、吸気通路構成部材に付着する燃料の挙動を表す燃料挙動モデルの逆モデルを用いて）基本燃料噴射量ｆｉｎｊｂ（ｋ）を算出する。燃料挙動モデルの逆モデルは以下のとおりである。
【００５２】
＜燃料挙動モデルの逆モデル＞
燃料噴射気筒の前回の吸気行程後であって今回の吸気行程直前において、同気筒の吸気ポート（吸気ポート構成部）に付着しているポート燃料付着量をｆｗｐ（ｋ）、同気筒の吸気弁（吸気弁構成部）に付着しているバルブ燃料付着量をｆｗｖ（ｋ）、吸気ポートへの燃料付着率をＲｐ、吸気弁への燃料付着率をＲｖ、吸気ポートへの燃料残留率をＰｐ、及び、吸気弁への燃料残留率をＰｖとし、同気筒の今回の吸気行程に対して噴射量ｆｉｂ（ｋ）の燃料を噴射したと仮定すると、同今回の吸気行程において同気筒に吸入される燃料量ｆｉｎは下記数２により求められる。なお、燃料付着率Ｒｐ，Ｒｖ及び燃料残留率Ｐｐ，Ｐｖは、それぞれ筒内吸入空気量、エンジン回転速度ＮＥ、及びバルブタイミングＶＴの関数である。
【００５３】
【数２】
ｆｉｎ　＝　（１−Ｒｐ−Ｒｖ）・ｆｉｂ（ｋ）　＋　（１−Ｐｐ）・ｆｗｐ（ｋ）　＋　（１−Ｐｖ）・ｆｗｖ（ｋ）
【００５４】
従って、基本燃料噴射量ｆｉｎｊｂ（ｋ）の燃料を噴射することにより、仮目標筒内燃料量ｔｆｃｒｅｆに等しい量の燃料が燃料噴射気筒に吸入されるためには、上記数２の燃料量ｆｉｎを仮目標筒内燃料量ｔｆｃｒｅｆと等しいとおくとともに、上記噴射量ｆｉｂ（ｋ）を基本燃料噴射量ｆｉｎｊｂ（ｋ）とおいて同基本燃料噴射量ｆｉｎｊｂ（ｋ）について解けばよく、計算結果は下記数３のとおりとなる。この数３が燃料挙動の逆モデルを数式化したものであり、基本燃料噴射量算出手段Ｂ３は、同数３に従って基本燃料噴射量ｆｉｎｊｂ（ｋ）を算出する。
【００５５】
なお、基本燃料噴射量算出手段Ｂ３は、下記数３における燃料付着率をＲｐ，Ｒｖ及び燃料残留率をＰｐ，Ｐｖを求めるための筒内吸入空気量として予測筒内吸入空気量ｋｌｆｗｄを採用し、エンジン回転速度及びバルブタイミングとして、それぞれその時点の（即ち、計算時点の）エンジン回転速度ＮＥ及びバルブタイミングＶＴを採用する。また、下記数３で用いられるポート燃料付着量ｆｗｐ（ｋ）及びバルブ燃料付着量ｆｗｖ（ｋ）は、後述する数５及び数６に基づいてそれぞれ更新される。以上により、基本燃料噴射量ｆｉｎｊｂ（ｋ）が算出される。
【００５６】
【数３】
ｆｉｎｊｂ（ｋ）＝｛ｔｆｃｒｅｆ　−　（１−Ｐｐ）・ｆｗｐ（ｋ）　−　（１−Ｐｖ）・ｆｗｖ（ｋ）｝／（１−Ｒｐ−Ｒｖ）
【００５７】
（２）フィードフォワード系補正量ｆｉｎｊｋ（ｋ）とフィードフォワード燃料噴射量ｆｉｎｊｆｗｄ（ｋ）の算出
前述したように、予測筒内吸入空気量ｋｌｆｗｄには予測・推定誤差が含まれるから、仮目標筒内燃料量ｔｆｃｒｅｆ（＝ｋｌｆｗｄ／ａｂｙｆｒｅｆ）や予測筒内吸入空気量ｋｌｆｗｄに基づいて求めた燃料付着率Ｒｐ，Ｒｖ及び燃料残留率Ｐｐ，Ｐｖを使用する燃料挙動の逆モデルにしたがって算出された基本燃料噴射量ｆｉｎｊｂ（ｋ）には誤差が含まれている。
【００５８】
そこで、本燃料噴射量制御装置はフィードフォワード系補正量ｆｉｎｊｋ（ｋ）によりこの誤差を補償する。具体的に述べると、本制御装置は、燃料噴射気筒の前回の吸気行程に対し、前回の基本燃料噴射量ｆｉｎｊｂ（ｋ−１）を前回のフィードフォワード系補正量ｆｉｎｊｋ（ｋ−１）で補正したフィードフォワード燃料噴射量ｆｉｎｊｆｗｄ（ｋ−１）（＝ｆｉｎｊｂ（ｋ−１）＋ｆｉｎｊｋ（ｋ−１））を噴射したと仮定し、この前回のフィードフォワード燃料噴射量ｆｉｎｊｆｗｄ（ｋ−１）と燃料挙動モデルの順モデルとから、同前回の吸気行程に対して吸入された計算上の筒内燃料量を計算筒内燃料量ｆｃ（ｋ−１）として算出する。
【００５９】
また、本制御装置は、前記前回の吸気行程が終了した時点（予測筒内吸入空気量ｋｌｆｗｄ（ｋ−１）が確定した時点）で、同前回の吸気行程における実際の筒内吸入空気量ｋｌｃｙｌ（＝ｋｌｃｙｌ（ｋ−１））を求めるとともに、この実筒内吸入空気量ｋｌｃｙｌを目標空燃比ａｂｙｆｒｅｆで除して、同前回の吸気行程での空燃比が目標空燃比ａｂｙｆｒｅｆと一致するために実際に吸入されるべきであった燃料量（以下、「フィードフォワード目標筒内燃料量ｆｃｒｅｆ（ｋ−１）（＝ｋｌｃｙｌ／ａｂｙｆｒｅｆ）」と称呼する。）を求める。
【００６０】
そして、本制御装置は、このフィードフォワード目標筒内燃料量ｆｃｒｅｆ（ｋ−１）と前回の吸気行程に対して筒内に供給された計算上の燃料量である計算筒内燃料量ｆｃ（ｋ−１）の差を求め、この差が小さくなるようにフィードフォワード系補正量ｆｉｎｊｋ（ｋ）を求め、このフィードフォワード系補正量ｆｉｎｊｋ（ｋ）で基本燃料噴射量ｆｉｎｊｂ（ｋ）を補正することで今回のフィードフォワード燃料噴射量ｆｉｎｊｆｗｄ（ｋ）を算出する。
【００６１】
このように、本制御装置は、予測筒内吸入空気量ｋｌｆｗｄ（ｋ−１）が確定した時点、即ち、予測筒内吸入空気量ｋｌｆｗｄ（ｋ−１）を算出するために使用した機関運転状態量（少なくとも、予測スロットル弁開度ＴＡｅｓｔ）が確定した時点で、同前回の吸気行程における実際の筒内吸入空気量ｋｌｃｙｌ（＝ｋｌｃｙｌ（ｋ−１））を同確定した機関運転状態量に基づいて求め、この実筒内吸入空気量ｋｌｃｙｌに基づいて算出される「前回の吸気行程での空燃比が目標空燃比ａｂｙｆｒｅｆと一致するために実際に吸入されるべきであった燃料量（フィードフォワード目標筒内燃料量）ｆｃｒｅｆ（ｋ−１））」と計算上の計算筒内燃料量ｆｃ（ｋ−１）との差が小さくなるようにフィードフォワード燃料噴射量ｆｉｎｊｆｗｄ（ｋ）を決定する。従って、ある吸気行程での予測筒内吸入空気量ｋｌｆｗｄの推定誤差に基づく燃料噴射量の過不足が、次の吸気行程以降において直ちに補償されて行く。
【００６２】
ここで、以上ようにしてフィードフォワード燃料噴射量ｆｉｎｊｆｗｄ（ｋ）を算出するための各手段の機能について個別に説明すると、本燃料噴射量制御装置の実筒内吸入空気量算出手段Ｂ４は、前回の吸気行程終了時点以降において、同前回の吸気行程終了時の実際のスロットル弁開度ＴＡａｃｔ（ｋ−１）と現時点のエンジン回転速度ＮＥと現時点のバルブタイミングＶＴと前述した吸入空気量マップとに基づいて前回の吸気行程における実筒内吸入空気量ｋｌｃｙｌを求める。
【００６３】
一方、目標筒内燃料量算出手段Ｂ５は、この前回の吸気行程における実筒内吸入空気量ｋｌｃｙｌを目標空燃比設定手段Ｂ２から得られる目標空燃比ａｂｙｆｒｅｆで除すことにより、前回の吸気行程に対するフィードフォワード目標筒内燃料量ｆｃｒｅｆ（ｋ−１）（＝ｋｌｃｙｌ／ａｂｙｆｒｅｆ）を算出する。
【００６４】
他方、フィードフォワード系筒内燃料量算出手段Ｂ６は、前回のフィードフォワード燃料噴射量ｆｉｎｊｆｗｄ（ｋ−１）と下記数４〜数６で表される燃料挙動の順モデルとに基づいて、前回の吸気行程に対する計算筒内燃料量ｆｃ（ｋ−１）を算出する。なお、数４において、ポート燃料付着量ｆｗｐ（ｋ−１）は燃料噴射気筒の前々回の吸気行程後であって前回の吸気行程直前において、同気筒の吸気ポートに付着していた燃料付着量、バルブ燃料付着量ｆｗｖ（ｋ−１）は燃料噴射気筒の前々回の吸気行程後であって前回の吸気行程直前において、同気筒の吸気弁に付着していた燃料付着量である。また、下記数４〜数６で使用される燃料付着率Ｒｐ，Ｒｖ及び燃料残留率Ｐｐ，Ｐｖは、前回の吸気行程における実筒内吸入空気量ｋｌｃｙｌ、現時点のエンジン回転速度ＮＥ、及び現時点のバルブタイミングＶＴに基づいて決定される。
【００６５】
【数４】
ｆｃ（ｋ−１）＝（１−Ｐｐ）・ｆｗｐ（ｋ−１）　＋　（１−Ｐｖ）・ｆｗｖ（ｋ−１）　＋　（１−Ｒｐ−Ｒｖ）・ｆｉｎｊｆｗｄ（ｋ−１）
【００６６】
【数５】
ｆｗｐ（ｋ）＝Ｐｐ・ｆｗｐ（ｋ−１）　＋　Ｒｐ・ｆｉｎｊｆｗｄ（ｋ−１）
【００６７】
【数６】
ｆｗｖ（ｋ）＝Ｐｖ・ｆｗｖ（ｋ−１）　＋　Ｒｖ・ｆｉｎｊｆｗｄ（ｋ−１）
【００６８】
そして、燃料噴射量制御装置は、下記数７に示したように、フィードフォワード目標筒内燃料量ｆｃｒｅｆ（ｋ−１）と前回の吸気行程に対する計算筒内燃料量ｆｃ（ｋ−１）との差をフィードフォワード燃料誤差量（偏差）ｆｃｅｒｒ（ｋ）として求め、これをフィードフォワード系ＰＩＤコントローラ（フィードフォワード系補正量算出手段）Ｂ７によりＰＩＤ処理し、フィードフォワード系補正量ｆｉｎｊｋ（ｋ）を求める。なお、ＰＩＤコントローラＢ７のＰＤＩ処理は、下記数８〜数１０に従って行われる。これらの式において、Ｋｐ，Ｋｄ，Ｋｉはそれぞれ比例ゲイン，微分ゲイン，積分ゲインである。また、ｆｃｅｒｒｄｉｆｆ（ｋ）は誤差微分量であり、ｆｃｅｒｒｉｎ（ｋ）は誤差積分量である。
【００６９】
【数７】
ｆｃｅｒｒ（ｋ）　＝　ｆｃｒｅｆ（ｋ−１）　−　ｆｃ（ｋ−１）
【００７０】
【数８】
ｆｉｎｊｋ（ｋ）　＝　Ｋｐ・ｆｃｅｒｒ（ｋ）　＋　Ｋｄ・ｆｃｅｒｒｄｉｆｆ（ｋ）　＋　Ｋｉ・ｆｃｅｒｒｉｎ（ｋ）
【００７１】
【数９】
ｆｃｅｒｒｄｉｆｆ（ｋ）　＝　ｆｃｅｒｒ（ｋ）　−　ｆｃｅｒｒ（ｋ−１）
【００７２】
【数１０】
ｆｃｅｒｒｉｎ（ｋ）　＝　ｆｃｅｒｒｉｎ（ｋ−１）　＋　ｆｃｅｒｒ（ｋ）
【００７３】
以上により、基本燃料噴射量ｆｉｎｊｂ（ｋ）とフィードフォワード系補正量ｆｉｎｊｋ（ｋ）が算出されるので、燃料噴射量制御装置のフィードフォワード燃料噴射量算出手段Ａ１は、基本燃料噴射量ｆｉｎｊｂ（ｋ）とフィードフォワード系補正量ｆｉｎｊｋ（ｋ）を加算して今回のフィードフォワード燃料噴射量ｆｉｎｊｆｗｄ（ｋ）を算出する（上記数１を参照）。
【００７４】
このように、ブロックＢ１〜ブロックＢ７及びブロックＡ１によりフィードフォワード系が形成され、予測筒内吸入空気量ｋｌｆｗｄの予測・推定誤差に基づく燃料噴射量の過不足が補償される。これによれば、燃料噴射量の過不足量が空燃比センサ６９のように排気系に設けられたセンサを使用しないで補償され、しかも、一回前の吸気行程での燃料の過不足量が今回の吸気行程以降の燃料噴射量によって迅速に補償されて行く。従って、機関の運転状態が急加減速等の過渡運転状態であって予測筒内吸入空気量ｋｌｆｗｄに予測・推定誤差が含まれ易く、その結果、機関に吸入される混合気の空燃比が目標空燃比に対して変動し易い場合にも、この空燃比変動を迅速に抑制することができ、排気浄化性能やドライバビリティを向上することができる。
【００７５】
（３）フィードバック系補正量ｆｉｎｊｆｂ（ｋ）の算出
次に、フィードバック系補正量ｆｉｎｊｆｂ（ｋ）の算出方法について説明すると、燃料噴射量制御装置はセンサ検出筒内燃料量算出手段Ｂ８により、遅延手段Ｂ９を介して得られたＮ回前の吸気行程における実筒内吸入空気量ｋｌｃｙｌ（ｋ−Ｎ）を空燃比センサ６９の出力ｖａｂｙｆｓに基づいて得られた検出空燃比ａｂｙｆｓで除してセンサ検出筒内燃料量ｆｃｓｎｓ（ｋ−Ｎ）（＝ｋｌｃｙｌ（ｋ−Ｎ）／ａｂｙｆｓ）を求める。値「Ｎ」は、気筒内で燃焼されたガスの空燃比が空燃比センサ６９により検出されるまでに要する時間に応じて決定される。かかるセンサ検出筒内燃料量ｆｃｓｎｓ（ｋ−Ｎ）は、Ｎ回前（所定回数前）の吸気行程において実際に燃料噴射気筒に供給された燃料量を示す値である。
【００７６】
そして、燃料噴射量制御装置は、下記数１１に示したように、フィードフォワード系筒内燃料量算出手段Ｂ６によって算出されていたＮ回前の吸気行程に対する計算筒内燃料量ｆｃ（ｋ−Ｎ）を遅延手段Ｂ１０を介して取得し、同計算筒内燃料量ｆｃ（ｋ−Ｎ）からセンサ検出筒内燃料量ｆｃｓｎｓ（ｋ−Ｎ）を減じてフィードバック燃料誤差量（偏差）ｆｃｇｏｓａ（ｋ）を求め、このフィードバック燃料誤差量ｆｃｇｏｓａ（ｋ）を小さくするように、同フィードバック燃料誤差量ｆｃｇｏｓａ（ｋ）をフィードバック系ＰＩＤコントローラ（フィードバック系補正量算出手段）Ｂ１１によりＰＩＤ処理し、フィードバック系補正量ｆｉｎｊｆｂ（ｋ）を求める。このＰＩＤ処理は、下記数１２〜数１４に従って行われる。なお、Ｇｐ，Ｇｄ，Ｇｉはそれぞれ比例ゲイン，微分ゲイン，積分ゲインである。また、ｆｃｇｏｓａｄｉｆｆ（ｋ）は誤差微分量であり、ｆｃｇｏｓａｉｎ（ｋ）は誤差積分量である。
【００７７】
【数１１】
ｆｃｇｏｓａ（ｋ）　＝　ｆｃ（ｋ−Ｎ）　−　ｆｃｓｎｓ（ｋ−Ｎ）
【００７８】
【数１２】
ｆｉｎｊｆｂ（ｋ）　＝　Ｇｐ・ｆｃｇｏｓａ（ｋ）　＋　Ｇｄ・ｆｃｇｏｓａｄｉｆｆ（ｋ）　＋　Ｇｉ・ｆｃｇｏｓａｉｎ（ｋ）
【００７９】
【数１３】
ｆｃｇｏｓａｄｉｆｆ（ｋ）　＝　ｆｃｇｏｓａ（ｋ）　−　ｆｃｇｏｓａ（ｋ−１）
【００８０】
【数１４】
ｆｃｇｏｓａｉｎ（ｋ）　＝　ｆｃｇｏｓａｉｎ（ｋ−１）　＋　ｆｃｇｏｓａ（ｋ）
【００８１】
その後、燃料噴射量制御装置は、上記数１に示したように、最終燃料噴射量算出手段Ａ２によって、今回のフィードフォワード燃料噴射量ｆｉｎｊｆｗｄ（ｋ）にフィードバック系補正量ｆｉｎｊｆｂ（ｋ）を加えることで同フィードフォワード燃料噴射量ｆｉｎｊｆｗｄ（ｋ）を同フィードバック系補正量ｆｉｎｊｆｂ（ｋ）で補正して、最終燃料噴射量ｆｉｎｊｆｉｎａｌ（ｋ）を算出し、この最終燃料噴射量ｆｉｎｊｆｉｎａｌ（ｋ）の燃料をインジェクタ３９から機関１０の燃料噴射気筒に噴射する。
【００８２】
このように、ブロックＢ８〜ブロックＢ１０、ブロックＡ１、及び空燃比センサ６９によってフィードバック系が形成され、同フィードバック系により燃料性状の変化、製造誤差に基づくインジェクタ３９の性能ばらつき等による混合気の空燃比の目標空燃比に対する定常的な偏差が低減される。以上が、最終燃料噴射量ｆｉｎｊｆｉｎａｌ（ｋ）を算出する概要である。
【００８３】
次に、本燃料噴射量制御装置の実際の作動について説明する。
【００８４】
（予測スロットル弁開度ＴＡｅｓｔの算出）
ＣＰＵ７１は、演算周期ΔＴｔ（例えば、８ｍｓｅｃ）の経過毎にアクセル開度センサ８１の出力値に基づいてアクセル操作量Ａｃｃｐを読込み、読み込んだアクセル操作量Ａｃｃｐと、図３のアクセル操作量Ａｃｃｐと目標スロットル弁開度ＴＡａｃｃとの関係を規定したテーブルと、に基づいて今回の暫定目標スロットル弁開度ＴＡａｃｃを求め、この暫定目標スロットル弁開度ＴＡａｃｃを図４のタイムチャートに示したように、所定の遅延時間ＴＤだけ遅延し、この遅延した暫定目標スロットル弁開度ＴＡａｃｃを目標スロットル弁開度ＴＡｔとして設定してスロットル弁アクチュエータ４３ａに出力する。なお、遅延時間ＴＤは、本例においては一定の時間であるが、内燃機関が所定のクランク角度（例えば、クランク角２７０°ＣＡ）だけ回転するのに要する時間Ｔ２７０とする等、エンジン回転速度ＮＥに応じた可変の時間とすることもできる。
【００８５】
ところで、ＣＰＵ７１から目標スロットル弁開度ＴＡｔがスロットル弁アクチュエータ４３ａに出力された場合であっても、同スロットル弁アクチュエータ４３ａの遅れやスロットル弁４３の慣性などにより、実際のスロットル弁開度ＴＡは、ある遅れをもって目標スロットル弁開度ＴＡｔに追従する。そこで、ＣＰＵ７１は、下記数１５に基づいて遅延時間ＴＤ後におけるスロットル弁開度ＴＡｅｓｔ（ｋ＋１）を予測・推定する。
【００８６】
【数１５】
ＴＡｅｓｔ（ｋ＋１）＝ＴＡｅｓｔ（ｋ）＋ΔＴｔ・ｆ（ＴＡｔ（ｋ），ＴＡｅｓｔ（ｋ））
【００８７】
数１５において、ＴＡｅｓｔ（ｋ＋１）は今回の演算タイミングにおいて新たに予測・推定される予測スロットル弁開度ＴＡｅｓｔであり、ＴＡｔ（ｋ）は今回の演算タイミングにて新たに得られた目標スロットル弁開度ＴＡｔであり、ＴＡｅｓｔ（ｋ）は今回の演算タイミングにおいて既に予測・推定されていた最新の予測スロットル弁開度ＴＡｅｓｔ（即ち、前回の演算タイミングにおいて予測・推定されたスロットル弁開度ＴＡｅｓｔ）である。また、関数ｆ（ＴＡｔ（ｋ），ＴＡｅｓｔ（ｋ））は、図５に示したように、ＴＡｔ（ｋ）とＴＡｅｓｔ（ｋ）との差ΔＴＡ（＝ＴＡｔ（ｋ）−ＴＡｅｓｔ（ｋ））が大きい程大きい値をとる関数（ΔＴＡに関して単調増加する関数ｆ）である。
【００８８】
このように、ＣＰＵ７１は、今回の演算タイミングにて遅延時間ＴＤ後の目標スロットル弁開度ＴＡｔを新たに決定するとともに、遅延時間ＴＤ後のスロットル弁開度ＴＡｅｓｔを新たに予測・推定し、現時点から遅延時間ＴＤ経過後までの目標スロットル弁開度ＴＡｔと予測スロットル弁開度ＴＡｅｓｔを、現時点からの時間経過に対応させた形でＲＡＭ７３に記憶・格納する。
【００８９】
図６は、上述した予測スロットル弁開度ＴＡｅｓｔを算出する際に、ＣＰＵ７１が所定時間ΔＴｔの経過毎に実行するルーチンを示したフローチャートである。簡単に説明すると、ＣＰＵ７１は所定のタイミングにてステップ６００から処理を開始し、ステップ６０５に進んで変数ｉに「０」を設定し、ステップ６１０に進んで変数ｉが遅延回数ｎｔｄｌｙと等しいか否かを判定する。この遅延回数ｎｔｄｌｙは、遅延時間ＴＤを演算周期ΔＴｔで除した値である。
【００９０】
この時点で変数ｉは「０」であるから、ＣＰＵ７１はステップ６１０にて「Ｎｏ」と判定し、ステップ６１５に進んで暫定目標スロットル弁開度ＴＡｔ（ｉ）に暫定目標スロットル弁開度ＴＡｔ（ｉ＋１）の値を格納するとともに、続くステップ６２０にて予測スロットル弁開度ＴＡｅｓｔ（ｉ）に予測スロットル弁開度ＴＡｅｓｔ（ｉ＋１）の値を格納する。以上の処理により、暫定目標スロットル弁開度ＴＡｔ（０）に暫定目標スロットル弁開度ＴＡｔ（１）の値が格納され、予測スロットル弁開度ＴＡｅｓｔ（０）に予測スロットル弁開度ＴＡｅｓｔ（１）の値が格納される。
【００９１】
次いで、ＣＰＵ７１は、ステップ６２５にて変数ｉの値を「１」だけ増大してステップ６１０にもどる。そして変数ｉの値が遅延回数ｎｔｄｌｙより小さければ、再びステップ６１５〜ステップ６２５を実行する。即ち、ステップ６１５〜ステップ６２５は、変数ｉの値が遅延回数ｎｔｄｌｙと等しくなるまで繰り返し実行される。これにより、暫定目標スロットル弁開度ＴＡｔ（ｉ＋１）の値が暫定目標スロットル弁開度ＴＡｔ（ｉ）に順次シフトされ、予測スロットル弁開度ＴＡｅｓｔ（ｉ＋１）の値が予測スロットル弁開度ＴＡｅｓｔ（ｉ）に順次シフトされて行く。
【００９２】
前述のステップ６２５が繰り返されることにより変数ｉの値が遅延回数ｎｔｄｌｙと等しくなると、ＣＰＵ７１はステップ６１０にて「Ｙｅｓ」と判定してステップ６３０に進み、同ステップ６３０にて現時点の実際のアクセル操作量Ａｃｃｐと、図３に示したテーブルとに基づいて今回の暫定目標スロットル弁開度ＴＡａｃｃを求め、これを暫定目標スロットル弁開度ＴＡｔ（ｎｔｄｌｙ）に格納する。
【００９３】
次に、ＣＰＵ７１はステップ６３５に進み、同ステップ６３５にて前回の予測スロットル弁開度ＴＡｅｓｔ（ｎｔｄｌｙ−１）と、今回の暫定目標スロットル弁開度ＴＡｔ（ｎｔｄｌｙ）と、上記数１５に基づくステップ６３５内に記載した式とに応じて今回の予測スロットル弁開度ＴＡｅｓｔ（ｎｔｄｌｙ）を算出する。そして、ステップ６４０にて目標スロットル弁開度ＴＡｔに暫定目標スロットル弁開度ＴＡｔ（０）の値を設定し、ステップ６９５に進んで本ルーチンを一旦終了する。
【００９４】
以上のように、目標スロットル弁開度ＴＡｔに関するメモリにおいては、本ルーチンが実行される毎にメモリの内容が一つずつシフトされて行き、暫定目標スロットル弁開度ＴＡｔ（０）に格納された値がスロットル弁アクチュエータ４３ａに出力される目標スロットル弁開度ＴＡｔとして設定される。即ち、今回の本ルーチンの実行により暫定目標スロットル弁開度ＴＡｔ（ｎｔｄｌｙ）に格納された値は、今後において本ルーチンが遅延回数ｎｔｄｌｙだけ繰り返されたときにＴＡｔ（０）に格納され、目標スロットル弁開度ＴＡｔとなる。また、予測スロットル弁開度ＴＡｅｓｔに関するメモリにおいては、同メモリ内のＴＡｅｓｔ（ｍ）に現時点から所定時間（ｍ・ΔＴｔ；ｍは整数）経過後の予測スロットル弁開度ＴＡｅｓｔが格納されて行く。
【００９５】
（実筒内吸入空気量ｋｌｃｙｌの算出）
次に、吸気行程における実際の筒内吸入空気量ｋｌｃｙｌ（ｋ）を算出する際のＣＰＵ７１の作動について、同ＣＰＵ７１が所定時間の経過毎に実行するルーチンをフローチャートにより示した図７を参照しながら説明する。なお、ＣＰＵ７１は、図７に示したルーチンを特定気筒に対して実行するが、同ルーチンと同一のルーチンを他の気筒に対しても独立して実行するようになっている。
【００９６】
ＣＰＵ７１は、所定のタイミングになると、ステップ７００から処理を開始してステップ７０５に進み、同ステップ７０５にて特定気筒の吸気弁３２が開状態から閉状態へと変化したか否か（閉弁した直後であるか否か）を判定する。このとき、吸気弁３２が閉弁した直後でなければ、ＣＰＵ７１はステップ７０５にて「Ｎｏ」と判定してステップ７９５に進み、本ルーチンを一旦終了する。
【００９７】
これに対し、ＣＰＵ７１がステップ７０５に進んだとき、特定気筒の吸気弁３２が閉弁した直後であれば、同ＣＰＵ７１はステップ７０５にて「Ｙｅｓ」と判定してステップ７１０に進み、同ステップ７１０にて変数ｉの値を「０」に設定し、続くステップ７１５にて本ルーチンの前回までの実行により既に求められてＲＡＭ７３に格納されている実際の筒内吸入空気量ｋｌｃｙｌ（ｉ＋１）をｋｌｃｙｌ（ｉ）に格納し、ステップ７２０にて変数ｉの値を「１」だけ増大するとともに、ステップ７２５にて同変数ｉの値が所定の値Ｍとなったか否かを判定する。なお、値Ｍは、前述した値Ｎ（＞１）以上の値である。
【００９８】
この時点で変数ｉは「１」であるから、ＣＰＵ７１はステップ７２５にて「Ｎｏ」と判定し、ステップ７１５に戻る。以上の処理により、実際の筒内吸入空気量ｋｌｃｙｌ（１）の値がｋｌｃｙｌ（０）に格納される。そして、ＣＰＵ７１は、再びステップ７１５〜ステップ７２５を実行する。この結果、実際の筒内吸入空気量ｋｌｃｙｌ（ｉ＋１）が実際の筒内吸入空気量ｋｌｃｙｌ（ｉ）へと順次シフトされて行く。
【００９９】
その後、前述のステップ７２０が繰り返されることにより変数ｉの値が値Ｍと等しくなると、ＣＰＵ７１はステップ７２５にて「Ｙｅｓ」と判定してステップ７３０に進み、同ステップ７３０にて現時点の実際のスロットル弁開度ＴＡを実際のスロットル弁開度ＴＡａｃｔとして取り込み、続くステップ７３５にて実際のスロットル弁開度ＴＡａｃｔと、その時点のエンジン回転速度ＮＥと、その時点のバルブタイミングＶＴと、前述した吸入空気マップとから実際の筒内吸入空気量を決定し、この値を特定気筒の最新の（前回の吸気行程における）実際の筒内吸入空気量としてｋｌｃｙｌ（Ｍ）に格納し、ステップ７９５に進んで本ルーチンを一旦終了する。
【０１００】
このように、ＣＰＵ７１は、ある気筒の吸気弁が閉弁して吸気行程が終了すると、同気筒の同終了した吸気行程での実際の筒内吸入空気量ｋｌｃｙｌを少なくとも同気筒の吸気弁閉弁時における実際のスロットル弁開度ＴＡ（確定した運転状態量）に基づいて算出し、これを順次ＲＡＭ７３の所定のアドレス内に格納して行く。
【０１０１】
（最終燃料噴射量ｆｉｎｊｆｉｎａｌ（ｋ）の算出）
次に、最終燃料噴射量ｆｉｎｊｆｉｎａｌ（ｋ）を決定する際の作動について説明すると、ＣＰＵ７１は図８にフローチャートにより示したルーチンを特定気筒のクランク角度が９０°ＢＴＤＣに一致したときに実行するようになっている。なお、ＣＰＵ７１は、図８に示したルーチンを特定気筒に対して実行するが、同ルーチンと同一のルーチンを他の気筒に対しても独立して実行し、対応する気筒の燃料噴射量を制御するようになっている。
【０１０２】
先ず、ＣＰＵはステップ８００から処理を開始し、ステップ８０５に進んで特定気筒の前回の吸気行程における実際の筒内吸入空気量ｋｌｃｙｌ（＝ｋｌｃｙｌ（ｋ−１））をＲＡＭ７３から読み出す。この場合、ｋｌｃｙｌとして読み出される値はＲＡＭ７３内に格納されているｋｌｃｙｌ（Ｍ）の値である。
【０１０３】
次いで、ＣＰＵ７１はステップ８１０に進んで上記数４に基づく同ステップ８１０中に記載した式に従って前回の吸気行程に対する計算筒内燃料量ｆｃ（ｋ−１）を算出するとともに、ステップ８１５に進んで上記数５及び上記数６に基づく同ステップ８１５に記載した式に従って今回の吸気行程前の燃料付着量ｆｗｐ（ｋ），ｆｗｖ（ｋ）を算出する。なお、例えば、燃料残留率Ｐｐ（ｋｌｃｙｌ）のように（ｋｌｃｙｌ）が付された燃料残量率Ｐｐ，Ｐｖ，燃料付着率Ｒｐ，Ｒｖは、少なくとも、特定気筒の前回の吸気行程における実際の筒内吸入空気量ｋｌｃｙｌに基づいて決定された値であることを示している。
【０１０４】
次に、ＣＰＵ７１はステップ８２０にて実筒内吸入空気量ｋｌｃｙｌを目標空燃比ａｂｙｆｒｅｆで除すことにより前回の吸気行程に対するフィードフォワード目標筒内燃料量ｆｃｒｅｆ（ｋ−１）を求め、続くステップ８２５にて上記数７に基づく同ステップ８２５中に記載した式に従って燃料誤差量ｆｃｅｒｒ（ｋ）を求める。そして、ＣＰＵ７１は、ステップ８３０にて同ステップ８３０中に記載した式（上記数９，数１０を参照。）に従って、誤差微分量ｆｃｅｒｒｄｉｆｆ（ｋ）及び誤差積分量ｆｃｅｒｒｉｎ（ｋ）を求め、続くステップ８３５にて同ステップ８３５中に記載した式（上記数８を参照。）に従ってフィードフォワード系補正量ｆｉｎｊｋ（ｋ）を求める。
【０１０５】
次に、ＣＰＵ７１はステップ８４０に進み、エンジン回転速度ＮＥとバルブタイミングＶＴとに基づいて現時点から特定気筒の今回の吸気行程終了時までの時間を推定し、その推定した時間後の予測スロットル弁開度ＴＡｅｓｔ（ｋ）をＲＡＭ７３に記憶している予測スロットル弁開度の中から選択し、続くステップ８４５にて前記選択した予測スロットル弁開度ＴＡｅｓｔ（ｋ）とその時点のエンジン回転速度ＮＥとバルブタイミングＶＴと前述した吸入空気量マップとから、特定気筒の今回の吸気行程における予測筒内吸入空気量ｋｌｆｗｄを算出する。
【０１０６】
次いで、ＣＰＵ７１はステップ８５０に進み、予測筒内吸入空気量ｋｌｆｗｄを目標空燃比ａｂｙｆｒｅｆで除して仮目標筒内燃料量ｔｆｃｒｅｆを求め、続くステップ８５５にて同ステップ８５５に記載した上記数３に基づく式に従って基本燃料噴射量ｆｉｎｊｂ（ｋ）を求める。なお、例えば、燃料残留率Ｐｐ（ｋｌｆｗｄ）のように（ｋｌｆｗｄ）が付された燃料残量率Ｐｐ，Ｐｖ，燃料付着率Ｒｐ，Ｒｖは、少なくとも、特定気筒の今回の吸気行程における予測筒内吸入空気量ｋｌｆｗｄに基づいて決定された値であることを示している。そして、ＣＰＵ７１は、ステップ８６０にて基本燃料噴射量ｆｉｎｊｂ（ｋ）にフィードフォワード系補正量ｆｉｎｊｋ（ｋ）を加えてフィードフォワード燃料噴射量ｆｉｎｊｆｗｄ（ｋ）を算出する。以上のステップまでで、フィードフォワード系の補正が終了する。
【０１０７】
次に、ＣＰＵ７１はステップ８６５にてＮ回前の吸気行程に対する実筒内吸入空気量ｋｌｃｙｌ（ｋ−Ｎ）を検出空燃比ａｂｙｆｓで除してセンサ検出筒内燃料量（ｆｃｓｎｓ（ｋ−Ｎ））を求め、続くステップ８７０にてフィードバック燃料誤差量ｆｃｇｏｓａ（ｋ）を同ステップ８７０に記載して式に従って算出し、ステップ８７５にて上記数１３及び上記数１４に基づく同ステップ８７５に記載した式に従って誤差微分量ｆｃｇｏｓａｄｉｆｆ（ｋ）と誤差積分量ｆｃｇｏｓａｉｎ（ｋ）とをそれぞれ算出し、ステップ８８０にて上記数１２に基づく同ステップ８８０に記載した式に従ってフィードバック系補正量ｆｉｎｊｆｂ（ｋ）を求める。
【０１０８】
そして、ＣＰＵ７１は、ステップ８８５にて上記数１に従う同ステップ８８５内に記載した式に従って最終燃料噴射量ｆｉｎｊｆｉｎａｌ（ｋ）を求め、ステップ８９０にて同最終燃料噴射量ｆｉｎｊｆｉｎａｌ（ｋ）の燃料を特定気筒に対応するインジェクタ３９から噴射し、ステップ８９５に進んで本ルーチンを一旦終了する。このようにして、フィードバック計補正量ｆｉｎｊｆｂ（ｋ）によりフィードフォワード燃料噴射量ｆｉｎｊｆｗｄ（ｋ）を補正して、最終燃料噴射量ｆｉｎｊｆｉｎａｌ（ｋ）が求められる。以上のステップ８６５〜ステップ８８５により、フィードバック系の補正が終了する。
【０１０９】
以上説明したように、本発明による内燃機関の燃料噴射量制御装置の実施形態によれば、フィードフォワード系により、機関の運転状態量（スロットル弁開度）の予測・推定誤差に起因する燃料の過不足分が実際の運転状態量に基づいて精度良く且つ直ちに補償されて行くので、空燃比を精度良く目標空燃比に維持することができる。また、空燃比センサ６９の検出空燃比に基づくフィードバック系により、燃料性状の変化、製造誤差に基づくインジェクタ３９の性能ばらつき等による混合気の空燃比の目標空燃比に対する定常的な偏差が確実に低減される。更に、本燃料噴射量制御装置は、フィードフォワード系とフィードバック系とが、それぞれ異なる要因に基づく燃料噴射量の過不足分を補償しようとするので、互いに干渉して制御が不安定になることもない。
【０１１０】
なお、本発明は上記実施形態に限定されることはなく、本発明の範囲内において種々の変形例を採用することができる。例えば、上記実施形態においては、計算筒内燃料量（ｆｃ（ｋ−Ｎ））とセンサ検出筒内燃料量（ｆｃｓｎｓ（ｋ−Ｎ））との偏差ｆｃｇｏｓａ（ｋ）が小さくなるようにフィードバック系補正量（ｆｉｎｊｆｂ（ｋ））が算出されているが、空燃比検出手段６９により検出された空燃比のガスをもたらした混合気を吸入したときの吸気行程における実筒内吸入空気量（ｋｌｃｙｌ（ｋ−Ｎ））を計算筒内燃料量（ｆｃ（ｋ−Ｎ））で除することにより計算上の空燃比をフィードバック用の目標空燃比として求め、この計算上の空燃比と空燃比センサ６９が検出した空燃比との偏差が小さくなるように同偏差をＰＩＤ処理する等によってフィードバック系補正量（ｆｉｎｊｆｂ（ｋ））を算出してもよい。
【０１１１】
また、予測筒内吸入空気量は、特開２００１−４１０９５号公報に記載されているように、内燃機関の吸気系における空気の挙動をモデル化した空気モデルに基づいて算出してもよい。更に、上記実施形態において、スロットル弁開度の時間的変化量が小さいときのように内燃機関が定常運転状態にあるときには、今回の吸気行程における吸入空気量がエアフローメータ６１の出力に実質的に基いて決定されるように構成してもよい。
【図面の簡単な説明】
【図１】本発明による燃料噴射量制御装置を火花点火式多気筒内燃機関に適用したシステムの概略構成図である。
【図２】図１に示した電気制御装置により達成される燃料噴射量を決定するための各機能を表したブロック図である。
【図３】図１に示したＣＰＵが参照するアクセルペダル操作量と暫定目標スロットル弁開度との関係を規定したテーブルを示した図である。
【図４】暫定目標スロットル弁開度、目標スロットル弁開度、及び予測スロットル弁開度の変化を示したタイムチャートである。
【図５】予測スロットル弁開度を算出する際に用いる関数を示したグラフである。
【図６】図１に示したＣＰＵが実行する目標スロットル弁開度、及び予測スロットル弁開度を演算するためのプログラムを示したフローチャートである。
【図７】図１に示したＣＰＵが実行する実筒内吸入空気量を算出するためのプログラムを示したフローチャートである。
【図８】図１に示したＣＰＵが実行する最終燃料噴射量を算出するためのプログラムを示したフローチャートである。
【符号の説明】
１０…火花点火式多気筒内燃機関、２０…シリンダブロック部（エンジン本体部）、２５…燃焼室、３１…吸気ポート、３２…吸気弁、３９…インジェクタ、４１…吸気管、４３…スロットル弁、４３ａ…スロットル弁アクチュエータ、７０…電気制御装置、７１…ＣＰＵ。
【図１】
2004044454.tif 000003
【図２】
2004044454.tif 000004
【図３】
2004044454.tif 000005
【図４】
2004044454.tif 000006
【図５】
2004044454.tif 000007
【図６】
2004044454.tif 000008
【図７】
2004044454.tif 000009
【図８】
2004044454.tif 000010