以下、本発明による内燃機関の制御装置の各実施形態について図面を参照しつつ説明する。
(第1実施形態)
図1は、本発明の第1実施形態に係る制御装置を含んだ燃料噴射量制御装置を火花点火式多気筒(4気筒)内燃機関10に適用したシステムの概略構成を示している。この内燃機関10は、シリンダブロック、シリンダブロックロワーケース、及びオイルパン等を含むシリンダブロック部20と、シリンダブロック部20の上に固定されるシリンダヘッド部30と、シリンダブロック部20にガソリン混合気を供給するための吸気系統40と、シリンダブロック部20からの排ガスを外部に放出するための排気系統50とを含んでいる。
シリンダブロック部20は、シリンダ21、ピストン22、コンロッド23、及びクランク軸24を含んでいる。ピストン22はシリンダ21内を往復動し、ピストン22の往復動がコンロッド23を介してクランク軸24に伝達され、これにより同クランク軸24が回転するようになっている。シリンダ21とピストン22のヘッドは、シリンダヘッド部30とともに燃焼室25を形成している。
シリンダヘッド部30は、燃焼室25に連通した吸気ポート31、吸気ポート31を開閉する吸気弁32、吸気弁32を駆動するインテークカムシャフトを含むとともに同インテークカムシャフトの位相角、従って、吸気弁32の開閉タイミングの進角量(以下、単に、「進角量」と云う。)を連続的に変更する可変吸気タイミング装置33、可変吸気タイミング装置33のアクチュエータ33a、燃焼室25に連通した排気ポート34、排気ポート34を開閉する排気弁35、排気弁35を駆動するエキゾーストカムシャフト36、点火プラグ37、点火プラグ37に与える高電圧を発生するイグニッションコイルを含むイグナイタ38、及び燃料を吸気ポート31内に噴射するインジェクタ(燃料噴射手段)39を備えている。
アクチュエータ33aは、後述する電子制御装置70により目標進角量VVTtが与えられると、実際の進角量VVTが目標進角量VVTtとなるように可変吸気タイミング装置33を駆動するようになっている。目標進角量VVTtは、エンジン回転速度NEと、機関の負荷(具体的には、後述する予測吸入空気量KLfwd)とに基づいて逐次決定されるようになっている。
吸気系統40は、吸気ポート31に連通し同吸気ポート31とともに吸気通路を形成するインテークマニホールドを含む吸気管41、吸気管41の端部に設けられたエアフィルタ42、吸気管41内にあって吸気通路の開口断面積を可変とするスロットル弁43、スロットル弁駆動手段を構成するスロットル弁アクチュエータ43a、スワールコントロールバルブ(以下、「SCV」と称呼する。)44、及びSCVアクチュエータ44aを備えている。
DCモータからなるスロットル弁アクチュエータ43aは、電子制御装置70が達成する電子制御スロットル弁ロジックにより目標スロットル弁開度TAtが与えられると、実際のスロットル弁開度TAが目標スロットル弁開度TAtとなるようにスロットル弁43を駆動するようになっている。
排気系統50は、排気ポート34に連通したエキゾーストマニホールド51、エキゾーストマニホールド51に接続されたエキゾーストパイプ52、及び、エキゾーストパイプ52に介装された触媒コンバータ(三元触媒装置)53を備えている。ここで、排気ポート34、エキゾーストマニホールド51、及びエキゾーストパイプ52は、排気通路を構成している。
一方、このシステムは、熱線式エアフローメータ61、吸気温センサ62、大気圧センサ(スロットル弁上流圧力センサ)63、スロットルポジションセンサ64、SCV開度センサ65、カムポジションセンサ66、クランクポジションセンサ67、水温センサ68、空燃比センサ69、及び、アクセル開度センサ81を備えている。
エアフローメータ61は、吸気管41内を流れる吸入空気の質量流量を計測し、同質量流量に応じた電圧Vgを出力するようになっている。大気温センサ62は、エアフローメータ61内に備えられていて、吸入空気の温度(従って、大気温度)を検出し、大気温度Taを表す信号を出力するようになっている。大気圧センサ63は、スロットル弁43の上流の圧力(即ち、大気圧)を検出し、大気圧Paを表す信号を出力するようになっている。
スロットルポジションセンサ64は、スロットル弁43の開度を検出し、スロットル弁開度TAを表す信号を出力するようになっている。SCV開度センサ65は、SCV44の開度を検出し、SCV開度θivを表す信号を出力するようになっている。カムポジションセンサ66は、インテークカムシャフトが90°回転する毎に(即ち、クランク軸24が180°回転する毎に)一つのパルスを有する信号(G2信号)を発生するようになっている。この信号は、(実際の)進角量VVTを表す。クランクポジションセンサ67は、クランク軸24が10°回転する毎に幅狭のパルスを有するとともに同クランク軸24が360°回転する毎に幅広のパルスを有する信号を出力するようになっている。この信号は、エンジン回転速度NE(rev/min)を表す。
水温センサ68は、内燃機関10の冷却水の温度を検出し、冷却水温THWを表す信号を出力するようになっている。空燃比センサ69は、触媒コンバータ53に流入する排ガス中の酸素濃度を検出することで同排ガスの空燃比を表す信号を出力するようになっている。アクセル開度センサ81は、運転者によって操作されるアクセルペダルAPの操作量を検出し、同アクセルペダルの操作量Accpを表す信号を出力するようになっている。
電気制御装置70は、互いにバスで接続されたCPU71、CPU71が実行するプログラム、テーブル(ルックアップテーブル、マップ)、定数等を予め記憶したROM72、CPU71が必要に応じてデータを一時的に格納するRAM73、電源が投入された状態でデータを格納するとともに同格納したデータを電源が遮断されている間も保持するバックアップRAM74、及びADコンバータを含むインターフェース75等からなるマイクロコンピュータである。インターフェース75は、前記センサ61〜69,81と接続され、CPU71にセンサ61〜69,81からの信号を供給するとともに、同CPU71の指示に応じて可変吸気タイミング装置33のアクチュエータ33a、イグナイタ38、インジェクタ39、スロットル弁アクチュエータ43a、及びSCVアクチュエータ44aに駆動信号を送出するようになっている。
次に、上記のように構成された制御装置を含んだ燃料噴射量制御装置(以下、「本装置」と云うこともある。)による物理モデルを用いた燃料噴射量の決定方法について説明する。以下に述べる処理は、CPU71がプログラムを実行することにより行われる。
(燃料噴射量fiの決定方法の概要)
このような燃料噴射量制御装置は、吸気行程にある気筒、又は吸気行程の直前の排気行程にある気筒の吸気弁32が、その吸気行程において開弁した状態から閉弁する状態に移行する時点(即ち、吸気弁閉時)より前の時点にて、同気筒に対して所定量の燃料を噴射する必要がある。そのため、本装置は、吸気弁閉時において同気筒内に吸入されているであろう筒内吸入空気量を前もって予測し、同予測した筒内吸入空気量に応じた燃料量の燃料を吸気弁閉時より前の時点で同気筒に対して噴射する。
本例においては、噴射開始時期を、エンジンの運転状態に応じて別途定められる排気行程中における所定の時期と定めている。よって、本例では、排気行程にある気筒(特定気筒)を燃料噴射気筒(#inj気筒)と呼ぶ。そして、本装置は、#inj気筒の排気行程中における上記所定の噴射開始時期よりも前の時点(算出時点)にて、#inj気筒の筒内吸入空気量(後述する予測吸入空気量KLfwd。即ち、「特定気筒について機関を制御するために使用される値」)を予測・算出する。なお、説明の便宜上、現在#inj気筒となっている気筒以外の残りの3気筒を、その後に燃料噴射されていく(従って、点火されていく)順に、#(inj+1)気筒、#(inj+2)気筒、#(inj+3)気筒と呼ぶことにする。
一方、吸気弁閉時のスロットル弁下流の吸気管内の空気圧力(即ち、吸気管圧力)は、筒内吸入空気量と密接な関係にある。また、吸気弁閉時の吸気管圧力は、吸気弁閉時のスロットル弁開度に依存する。そこで、本装置は、#inj気筒の吸気弁閉時のスロットル弁開度を予測・推定し、そのスロットル弁開度に基づいて上記予測吸入空気量KLfwdを算出する。
また、予測吸入空気量KLfwdは、エンジン回転速度に影響される値であり、且つ吸気弁閉時に確定する値であるから、少なくとも吸気弁閉時におけるエンジン回転速度に大きく依存する値である。そこで、本装置は、予測吸入空気量KLfwdを予測する時点(算出時点)よりも前の#inj気筒の排気行程中の時点(予測時点)にて、#inj気筒の吸気弁閉時におけるエンジン回転速度(予測エンジン回転速度NEfwd)を事前に予測し、その予測エンジン回転速度NEfwdにも基づいて#inj気筒の予測吸入空気量KLfwdを算出する。
そして、本装置は、このように算出された予測吸入空気量KLfwdに応じて燃料噴射量fi(=fi(k))を求める。ここで、添え字kは今回の演算値であることを示している(以下、他の変数等についても同様。)。以上が、燃料噴射量fiを求める方法の概要である。
(具体的構成・作用)
以下、上記した燃料噴射量fiを求めるための本装置の具体的構成、及び作用について説明する。本装置は、機能ブロック図である図2に示したように、予測エンジン回転速度NEfwdを予測するNE予測モデルA1、電子制御スロットル弁ロジックA2、電子制御スロットル弁モデルA3、内燃機関の吸気系における空気の挙動をモデル化した空気モデルを含む吸入空気モデルA4、予測吸入空気量KLfwdを算出するKL予測モデルA5、目標空燃比設定手段A6、及び噴射量決定手段A7を含んでいる。以下、個別具体的に、各手段、及びモデル等について説明する。
(NE予測モデル)
先ず、#inj気筒の吸気弁閉時における予測エンジン回転速度NEfwdを予測するNE予測モデルA1について説明する。図3は、機関10の始動直後におけるエンジン回転速度NEの変化、並びに、各気筒の噴射期間、吸気弁32の開弁期間、及び点火タイミングの一例を示した図である。図3に示したように、機関10においては、#1気筒、#3気筒、#4気筒、#2気筒の順に、排気行程にある気筒(従って、#inj気筒)に対して同排気行程中の所定の噴射開始時期が到来する毎に燃料が繰り返し噴射されていくようになっている。
また、この例では、クランク角度CA0以前にて図示しないスタータモータにより機関が所定の低回転速度にて駆動されるとともに、#1気筒が圧縮行程から膨張行程に移行するタイミング(即ち、#1気筒の膨張上死点が到来する時点)であるクランク角度CA0にて最初の点火(従って、最初の燃焼)が実行されている。以降、各気筒の膨張上死点が到来する毎に(即ち、クランク角度CAが180°増加する毎に)同膨張上死点が到来する気筒に対して順次点火が実行されていく。この結果、エンジン回転速度NEは、クランク角度CA0以降、膨張行程における燃焼エネルギーにより急激に増大している。
NE予測モデルA1は、各気筒が膨張行程から排気行程に移行するタイミング(即ち、各気筒の膨張下死点)が到来する毎(即ち、クランク角度CAが180°増加する毎。図3においては、例えば、クランク角度CA1,CA2,CA3,CA5に対応する。)に、同排気行程に移行した気筒、即ち、新たに#inj気筒となった気筒のその後の吸気弁閉時におけるエンジン回転速度NEfwdを順次予測していく。以下、現時点がクランク角度CA1に対応していて、NE予測モデルA1が、現時点(予測時点)にて、将来のクランク角度CA4に対応する#inj気筒(即ち、#1気筒)の吸気弁閉時におけるエンジン回転速度を予測するものとして説明を続ける。
この場合、現時点(クランク角度CA1。#inj気筒の膨張行程終了時点)から、#inj気筒の吸気弁閉時(即ち、クランク角度CA4)までの間におけるエンジン回転速度NEの変化の経緯は、その間において順次実行されていく#(inj+1)気筒(即ち、#3気筒)、及び#(inj+2)気筒(即ち、#4気筒)の各膨張行程(図3において、B、及びCに対応する。)におけるそれぞれの燃焼エネルギー(従って、機関の図示仕事)に強く依存して決定される。
また、膨張行程における機関の図示仕事は、同膨張行程中における機関の平均図示トルクを用いて求めることができる。従って、現時点(クランク角度CA1)において、図3におけるB、及びCに対応する#(inj+1)気筒、及び#(inj+2)気筒の各膨張行程におけるそれぞれの機関の平均図示トルクを予測することができれば、#inj気筒の吸気弁閉時(クランク角度CA4)における予測エンジン回転速度NEfwdを予測することができる。
以上の観点に基づき、NE予測モデルA1は、図4に示す各手段A11〜A17を備えている。以下、個別具体的に、各手段について説明する。
<#inj気筒の図示トルク算出手段A11>
#inj気筒の図示トルク算出手段A11は、現時点(予測時点)の直前において既に実行された#inj気筒の膨張行程(図3において、Aに対応する。)における機関の平均実図示トルクTi#injを、クランク軸24の回転運動方程式に基づいて得られた下記(1)式に従って算出する手段である。下記(1)式については、特開2004−92603号公報に記載されているので、ここでは、その詳細な説明を省略する。
Ti#inj=J・(dω/dt)ave+Tf#inj ・・・(1)
上記(1)式において、Jは混合気の燃焼によって駆動されるクランク軸24を含む駆動系部材全体の慣性モーメントである。(dω/dt)aveはクランク軸24の回転角速度(従って、エンジン回転角速度)ω(rad/sec)の時間微分値であるエンジン回転角加速度dω/dtの上記#inj気筒の膨張行程における平均値(平均エンジン回転角加速度)である。ここで、J・(dω/dt)aveは、エンジン回転角加速度に起因する動的な損失トルクを表す。Tf#injはシリンダ21の内壁面とピストン22の外周面との摩擦等に基づく上記#inj気筒の膨張行程におけるフリクショントルクである。
平均エンジン回転角加速度(dω/dt)aveは、下記(2)式に従って求めることができる。下記(2)式において、ωbdc#injは上記#inj気筒の膨張行程終了時点(即ち、膨張下死点時。図3において、クランク角度CA1に対応する。)におけるエンジン回転角速度である。ωtdcは上記#inj気筒の膨張行程開始時点(即ち、膨張上死点時。図3において、クランク角度CA0に対応する。)におけるエンジン回転角速度である。ΔTは上記#inj気筒の膨張行程に要した時間である。これら2つのエンジン回転角速度は、現時点(クランク角度CA1)において、クランクポジションセンサ67により得られる過去のエンジン回転速度NEからそれぞれ取得することができる。
(dω/dt)ave=(ωbdc#inj−ωtdc)/ΔT ・・・(2)
また、フリクショントルクTf#injは、エンジン回転速度NEと、冷却水温THWに強く依存して決定されると考えられる。従って、エンジン回転速度NE、及び冷却水温THWと、フリクショントルクTf#injとの関係を規定するテーブルを予め実験等を通して作製しておけば、フリクショントルクTf#injは同作製したテーブルMapTf(NE,THW)に従って求めることができる。本例では、テーブルMap(NE,THW)の引数として、上記#inj気筒の膨張行程における平均エンジン回転速度、及び平均冷却水温が使用される。以上により、現時点において、上記(1)式に使用される各変数は総て取得され得、同(1)式に従って#inj気筒の膨張行程(図3において、Aに対応する。)における機関の平均実図示トルクTi#injを算出することができる。
<#inj気筒の図示熱効率算出手段A12>
#inj気筒の図示熱効率算出手段A12は、上記#inj気筒の膨張行程(図3において、Aに対応する。)における機関の図示熱効率η#injを、下記(3)式に従って算出する手段である。
上記(3)式において、Ti#injは上記(1)式に従って求められる機関の平均実図示トルクである。Huは機関10が使用する燃料(ガソリン)の低発熱量(本例では、一般的な燃料についての値。一定値)である。mf#inj(k-1)は現時点において既知である後述する#inj気筒についての前回の筒内流入燃料量(即ち、#inj気筒の膨張行程(図3において、Aに対応する。)の燃焼に寄与した燃料量。図3を参照。)である。なお、添え字k-1は前回の演算値であることを示している(以下、他の変数等についても同様。)。
上記(3)式において、分母は上記#inj気筒の膨張行程における燃焼により発生し得る燃焼エネルギーの理論値を表し、分子は同膨張行程中(クランク角度πrad分)における機関の図示仕事を表す。以上により、現時点において、上記(3)式に使用される各変数は総て取得され得、同(3)式に従って#inj気筒の膨張行程(図3において、Aに対応する。)における機関の図示熱効率η#injを算出することができる。
<#(inj+1)気筒の図示トルク予測手段A13>
#(inj+1)気筒の図示トルク予測手段A13は、#(inj+1)気筒の膨張行程(図3において、Bに対応する。)における機関の平均予測図示トルクTi#(inj+1)を予測する手段である。上記(3)式と同様に、#(inj+1)気筒の膨張行程における機関の図示熱効率η#(inj+1)は下記(4)式に従って表すことができる。下記(4)式において、mf#(inj+1)(k-1)は現時点において既知である#(inj+1)気筒についての前回の筒内流入燃料量(即ち、#(inj+1)気筒の膨張行程(図3において、Bに対応する。)の燃焼に寄与した燃料量。図3を参照。)である。
他方、現時点(クランク角度CA1)から#inj気筒の吸気弁閉時(クランク角度CA4)までの短期間の間において実行される#(inj+1)気筒、及び#(inj+2)気筒の各膨張行程(図3において、B、及びCに対応する。)における機関の図示熱効率は、上記(3)式に従って求められる#inj気筒の膨張行程(図3において、Aに対応する。)における上記機関の図示熱効率η#injと略等しいと考えることができる。
以上のことから、#(inj+1)気筒の図示トルク予測手段A13は、上記(4)式においてη#(inj+1)をη#injと置き換えた後の式をTi#(inj+1)について解くことで得られる下記(5)式に従って、#(inj+1)気筒の膨張行程(図3において、Bに対応する。)における機関の平均予測図示トルクTi#(inj+1)を予測する。
<#(inj+2)気筒の図示トルク予測手段A14>
#(inj+2)気筒の図示トルク予測手段A14は、#(inj+2)気筒の膨張行程(図3において、Cに対応する。)における機関の平均予測図示トルクTi#(inj+2)を予測する手段である。#(inj+2)気筒の図示トルク予測手段A14は、#(inj+1)気筒の図示トルク予測手段A13と同様、上記(5)式に相当する下記(6)式に従って、上記機関の平均予測図示トルクTi#(inj+2)を予測する。
上記(6)式において、mf#(inj+2)(k-1)は現時点において既知である#(inj+2)気筒についての前回の筒内流入燃料量(即ち、#(inj+2)気筒の膨張行程(図3において、Cに対応する。)の燃焼に寄与した燃料量。図3を参照。)である。
<#(inj+1)気筒の膨張下死点でのNE予測手段A15>
#(inj+1)気筒の膨張下死点でのNE予測手段A15は、#(inj+1)気筒の膨張行程(図3において、Bに対応する。)の終了時点(クランク角度CA2)におけるエンジン回転角速度ωbdc#(inj+1)(従って、エンジン回転速度NEbdc#(inj+1))を予測する手段である。
機関10のように4気筒内燃機関の場合、図3に示すように、クランク角度CAが180°だけ増加する毎に各膨張行程が順次実行されていくから、各膨張行程が互いにオーバラップすることなく連続的に実行されていく。従って、各膨張行程(クランク角度πrad分)において機関が駆動系部材に与えることができる仕事(即ち、正味仕事)は、同膨張行程における同駆動系部材の回転運動エネルギーの増加分と等しくなる。
他方、膨張行程における機関の正味仕事は、膨張行程における機関の図示仕事からシリンダ21の内壁面とピストン22の外周面との摩擦等に基づく膨張行程における摩擦仕事(損失仕事)を減じることで求めることができる。以上のことから、#(inj+1)気筒の膨張行程(図3において、Bに対応する。)について下記(7)式が成立する。
上記(7)式において、ωbdc#injは#inj気筒の膨張行程(図3において、Aに対応する。)の終了時点(クランク角度CA1。即ち、現時点)における既知であるエンジン回転速度NEbdc#injから求められる同時点でのエンジン回転角速度である。Ti#(inj+1)は上記(5)式に従って求められる#(inj+1)気筒の膨張行程における機関の平均予測図示トルクである。Tf#(inj+1)は#(inj+1)気筒の膨張行程におけるフリクショントルクであって、上記テーブルMapTf(NE,THW)に従って求めることができる。ここでは、テーブルMap(NE,THW)の引数として、便宜上、現時点(即ち、#(inj+1)気筒の膨張行程開始時点)におけるエンジン回転速度、及び冷却水温が使用される。
上記(7)式において、左辺は、#(inj+1)気筒の膨張行程における駆動系部材の回転運動エネルギーの増加分を表す。また、右辺において、「π・Ti#(inj+1)」は#(inj+1)気筒の膨張行程(クランク角度πrad分)における機関の図示仕事を表し、「π・Tf#(inj+1)」は同膨張行程における摩擦仕事を表すから、右辺は、#(inj+1)気筒の膨張行程における機関の正味仕事を表す。上記(7)式をωbdc#(inj+1)について解くと下記(8)式が得られる。
以上により、現時点において、上記(8)式に使用される各変数は総て取得され得、#(inj+1)気筒の膨張下死点でのNE予測手段A15は、同(8)式に従って#(inj+1)気筒の膨張行程(図3において、Bに対応する。)の終了時点(クランク角度CA2)におけるエンジン回転角速度ωbdc#(inj+1)(従って、エンジン回転速度NEbdc#(inj+1))を予測する。
<#(inj+2)気筒の膨張下死点でのNE予測手段A16>
#(inj+2)気筒の膨張下死点でのNE予測手段A16は、#(inj+2)気筒の膨張行程(図3において、Cに対応する。)の終了時点(クランク角度CA3)におけるエンジン回転角速度ωbdc#(inj+2)(従って、エンジン回転速度NEbdc#(inj+2))を予測する手段である。#(inj+2)気筒の膨張下死点でのNE予測手段A16は、#(inj+1)気筒の膨張下死点でのNE予測手段A15と同様、上記(8)式に相当する下記(9)式に従って、上記エンジン回転角速度ωbdc#(inj+2)(従って、エンジン回転速度NEbdc#(inj+2))を予測する。
上記(9)式において、ωbdc#(inj+1)は上記(8)式に従って求められる#(inj+1)気筒の膨張行程の終了時点におけるエンジン回転角速度である。Ti#(inj+2)は上記(6)式に従って求められる#(inj+2)気筒の膨張行程における機関の平均予測図示トルクである。Tf#(inj+2)は#(inj+2)気筒の膨張行程におけるフリクショントルクであって、上記テーブルMapTf(NE,THW)に従って求めることができる。ここでは、テーブルMap(NE,THW)の引数として、便宜上、#(inj+2)気筒の膨張行程開始時点(即ち、クランク角度CA2)における上記予測されたエンジン回転速度NEbdc#(inj+1)、及び現時点での冷却水温が使用される。
<#inj気筒の吸気弁閉時NE予測手段A17>
#inj気筒の吸気弁閉時NE予測手段A17は、#inj気筒の吸気弁閉時(クランク角度CA4)における予測エンジン回転速度NEfwdを予測する手段である。本装置は、吸気弁閉時を機関の運転状態に応じて、吸気行程終了時点よりも後の時点であって同時点の近傍の時点に設定する。従って、図3に示した例のように、#inj気筒の吸気行程終了時点(即ち、#(inj+2)気筒の膨張行程終了時点。クランク角度C3)と#inj気筒の吸気弁閉時(クランク角度C4)との間にクランク角度差ΔCAlateが存在する場合、#inj気筒の吸気弁閉時におけるエンジン回転速度は、同クランク角度差ΔCAlateに応じた分だけ上記(9)式に従って求められる#(inj+2)気筒の膨張行程終了時点におけるエンジン回転速度NEbdc#(inj+2)と異なる値となる。
従って、#inj気筒の吸気弁閉時におけるエンジン回転速度を精度良く予測するためには、上記エンジン回転速度NEbdc#(inj+2)を上記クランク角度差ΔCAlateに応じた補正量ΔNEだけ補正する必要がある。ここで、係る補正量ΔNEは、少なくとも、上記クランク角度差ΔCAlateと、上記予測されたエンジン回転速度NEbdc#(inj+2)と、#inj気筒の吸気弁閉時(クランク角度CA4)において実行される#(inj+3)気筒(即ち、#2気筒)の膨張行程(図3において、Dに対応する。)の燃焼に寄与する燃料量(即ち、現時点(クランク角度CA1)において既知である#(inj+3)気筒についての前回の筒内流入燃料量mf#(inj+3)(k-1)とに応じて決定されると考えられる。
従って、補正量ΔNEは予め求められている関数funcΔNEを用いて下記(10)式に従って求めることができる。以上のことから、#inj気筒の吸気弁閉時NE予測手段A17(補正手段)は、下記(11)式に従って、#inj気筒の吸気弁閉時(クランク角度CA4)における予測エンジン回転速度NEfwdを予測する。
ΔNE=funcΔNE(ΔCAlate, NEbdc#(inj+2),
mf#(inj+3)(k-1)) ・・・(10)
NEfwd=NEbdc#(inj+2)+ΔNE ・・・(11)
以上のように、NE予測モデルA1は、現時点(クランク角度CA1)において、#inj気筒の膨張行程終了時点(即ち、現時点)でのエンジン回転速度NEbdc#injと、#(inj+1)気筒の膨張行程における平均予測図示トルクTi#(inj+1)と、#(inj+2)気筒の膨張行程における平均予測図示トルクTi#(inj+2)とに基づいて、#inj気筒の吸気弁閉時(クランク角度CA4)における予測エンジン回転速度NEfwdを予測する。そして、現時点以降、NE予測モデルA1は、各気筒の膨張下死点が到来する毎(即ち、クランク角度CAが180°増加する毎)に、新たに#inj気筒となった気筒のその後の吸気弁閉時における新たなエンジン回転速度NEfwdを順次予測していく。
(電子制御スロットル弁ロジックA2と電子制御スロットル弁モデルA3)
次に、図2を再び参照しながら、スロットル弁開度を制御するための電子制御スロットル弁ロジックA2と、将来における(現時点よりも先の時点における)スロットル弁開度を予測する電子制御スロットル弁モデルA3について説明する。
電子制御スロットル弁ロジックA2は、演算周期Δt(例えば、8msec)の経過毎にアクセル開度センサ81の出力値に基づいてアクセルペダル操作量Accpを読み込み、読み込んだアクセル操作量Accpと図5のアクセル操作量Accpと目標スロットル弁開度TAaccとの関係を規定したテーブルとに基づいて暫定目標スロットル弁開度TAaccを求め、この暫定目標スロットル弁開度TAaccを図6のタイムチャートに示したように、所定の遅延時間TDだけ遅延し、この遅延した暫定目標スロットル弁開度TAaccを目標スロットル弁開度TAtとして設定してスロットル弁アクチュエータ43aに出力する。
そして、電子制御スロットル弁モデルA3は、実際のスロットル弁開度TAが将来において目標スロットル弁開度TAtと一致していくものとして、現時点から遅延時間TD経過後までにおけるスロットル弁開度を予測・推定する(図6を参照)。
このように、電子制御スロットル弁モデルA3(CPU71)は、今回の演算タイミングにて遅延時間TD後の目標スロットル弁開度TAtを新たに決定し、現時点から遅延時間TD経過後までの目標スロットル弁開度TAt(即ち、予測スロットル弁開度)を、演算周期Δt毎に現時点からの時間経過に対応させた形で、TAt(0),TAt(1),・・・,TAt(ntdly)としてRAM73に記憶・格納する。なお、ntdlyは遅延時間TDを演算周期Δtで除した値である。
(吸入空気モデルA4)
吸入空気モデルA4は、内燃機関の吸気系における空気の挙動をモデル化した空気モデルを構成するスロットルモデルA41、吸気弁モデルA42、及び吸気管モデルA43を備えていて、スロットルポジションセンサ64から得られる現時点での実際のスロットル弁開度TAに基づいて現時点での、スロットル弁通過空気流量mt(k)、吸気弁通過空気流量mc(k)、吸気管圧力Pm(k)、及び吸気管内の空気温度(吸気管温度Tm(k))をそれぞれ推定する。上記スロットルモデルA41、吸気弁モデルA42、及び吸気管モデルA43については、後に詳述する。
(KL予測モデルA5)
KL予測モデルA5は、吸入空気モデルA4から得られる現時点での吸気管圧力Pm(k)(=Pmc(0))等、電子制御スロットル弁モデルA3から得られる将来の予測スロットル弁開度(目標スロットル弁開度)TAt(i)(i=1,2,・・・)、及び、NE予測モデルA1から得られる#inj気筒の吸気弁閉時における予測エンジン回転速度NEfwdとに基づいて、#inj気筒の吸気弁閉時における筒内吸入空気量(予測吸入空気量KLfwd)を予測する。このKLfwd予測モデルA5についても後に詳述する。
(目標空燃比設定手段A6)
目標空燃比設定手段A6は、内燃機関の運転状態であるエンジン回転速度NE、及び目標スロットル弁開度TAt等に基づいて目標空燃比AbyFrefを決定する手段である。この目標空燃比AbyFrefは、例えば、内燃機関の暖機終了後においては、特殊な場合を除き理論空燃比に設定されてよい。
(噴射量決定手段A7)
噴射量決定手段A7は、KL予測モデルA5により算出された#inj気筒の吸気弁閉時の予測吸入空気量KLfwd、目標空燃比設定手段A6により決定された目標空燃比AbyFref、及びNE予測モデルA1から得られる#inj気筒の吸気弁閉時における予測エンジン回転速度NEfwdに基づいて、#inj気筒についての今回の燃料噴射量fi(k)を決定する手段である。この噴射量決定手段A7についても後に詳述する。
次に、上述した吸入空気モデルA4が備える各モデルA41〜A43について、個別に説明を加える。
(スロットルモデルA41)
スロットルモデルA41は、現時点においてスロットル弁43を通過する空気流量(スロットル弁通過空気流量)mtを、エネルギー保存則、運動量保存則、質量保存則、及び状態方程式等の物理法則に基づいて得られた下記(12)式、及び下記(13)式に基づいて推定するモデルである。下記(12)式及び下記(13)式において、Ct(θt)はスロットル弁開度θtに応じて変化する流量係数、At(θt)はスロットル弁開度θtに応じて変化するスロットル開口面積(吸気管41の開口面積)、νはスロットル弁43を通過する空気の流速、ρmは大気密度、Paはスロットル弁上流の空気圧力(即ち、大気圧)、Pmは吸気管内の空気圧力(即ち、吸気管圧力)、Taはスロットル弁上流の空気温度(即ち、大気温度)、Rは気体定数、及びκは比熱比である。なお、本例では、空気を酸素原子と窒素原子の2原子にて構成された2原子分子として扱うことにより、比熱比κを1.4(一定値)と仮定する。なお、下記(12)式、及び下記(13)の導出過程については、上記特許文献1にて詳述されているので、ここでは、その詳細な説明を省略する。
mt=Ct(θt)・At(θt)・ν・ρm=Ct(θt)・At(θt)・{Pa/(R・Ta)1/2}・Φ(Pm/Pa)・・・(12)
上記(13)式において、値(1/(κ+1))≒0.4167は吸気管圧力Pmが流体力学における臨界圧力(critical
pressure)になっているときに対応している。上記(13)式から理解できるように、吸気管圧力Pmが前記臨界圧力よりも大きいとき(即ち、値(Pm/Pa)>0.4167のとき)、同吸気管圧力Pmの増加に応じて値Φ(Pm/Pa)(従って、スロットル弁通過空気流量mt)は減少する。他方、吸気管圧力Pmが前記臨界圧力以下のとき(即ち、値(Pm/Pa)≦0.4167のとき)、値Φ(Pm/Pa)(従って、スロットル弁通過空気流量mt)は吸気管圧力Pmに係わらず一定値となる。
スロットルモデルA41は、スロットル弁開度θtと流量係数Ct(θt)との関係を規定した図7に示すテーブルと、スロットル弁開度θtとを用いて流量係数Ct(θt)を求めるとともに、スロットル弁開度θtと開口面積At(θt)との関係を規定した図8に示すテーブルと、スロットル弁開度θtとを用いて開口面積At(θt)を求める。なお、スロットルモデルA41は、スロットル弁開度θtと、流量係数Ct(θt)と開口面積At(θt)の積値Ct(θt)・At(θt)との関係を規定した図9に示すテーブル、及びスロットル弁開度θtとを用いて積値Ct(θt)・At(θt)を一時に求めるように構成してもよい。
スロットルモデルA41は、スロットル弁開度θtとしてスロットルポジションセンサ64から得られる現時点でのスロットル弁開度TAを使用し、大気圧Pa、及び大気温度Taを大気圧センサ63、及び吸気温センサ62からそれぞれ取得するとともに、吸気管圧力Pm(=Pm(k))を後述する吸気管モデルA43から取得する。
そして、スロットルモデルA41は、演算周期Δt毎に、これらの値を用いて上記(12)式、及び上記(13)式を計算して、現時点でのスロットル弁通過空気流量mt(=mt(k))を推定していく。以下、説明の便宜上、上記(12)式、及び上記(13)式を、関数funcmtを用いて下記(14)式にて表す。
mt=funcmt(Pm,θt) ・・・(14)
(吸気弁モデルA42)
吸気弁モデルA42は、吸気管圧力Pm等から吸気弁通過空気流量mcを推定するモデルである。吸気弁閉時の気筒内圧力は吸気弁32の上流の圧力、即ち吸気弁閉時の吸気管圧力Pmとみなすことができるので、吸気弁通過空気流量mcは吸気弁閉時の吸気管圧力Pmに比例する。そこで、吸気弁モデルA42は吸気弁通過空気流量mcを、経験則に基づく下記(15)式にしたがって求める。
mc=a・Pm−b ・・・(15)
上記(15)式において、値aは比例係数、値bは筒内に残存していた既燃ガス量に対応する値である。係る比例係数a、及び既燃ガス量bは、エンジン回転速度、及び進角量に応じて変化する値である。吸気弁モデルA42は、エンジン回転速度NE、及び進角量VVTと、比例係数a、及び既燃ガス量bとの関係をそれぞれ規定するテーブルMAPa、及びMAPbをROM72内に格納していて、現時点の実際のエンジン回転速度NEと、現時点の実際の進角量VVTと、前記格納しているテーブルとから比例係数a(=MAPa(NE,VVT))、及び既燃ガス量b(=MAPb(NE,VVT))を求める。
また、吸気弁モデルA42は、演算周期Δt毎に、計算時点(現時点)にて後述する吸気管モデルA43により既に推定されている最新の(現時点での)吸気圧力Pm(=Pm(k))を上記(15)式に適用し、現時点での吸気弁通過空気流量mc(=mc(k))を推定していく。
(吸気管モデルA43)
吸気管モデルA43は、質量保存則とエネルギー保存則とにそれぞれ基づいた下記(16)式及び下記(17)式、スロットル弁通過空気流量mt、スロットル弁通過空気温度(即ち、大気温度)Ta、及び吸気管41から流出する吸気弁通過空気流量mcから、吸気管圧力Pm、及び吸気管温度Tmを求めるモデルである。下記(16)式、及び下記(17)式において、Vmはスロットル弁下流(スロットル弁43から吸気弁32までの)の吸気管41(以下、単に、「吸気管部」と称呼する。)の容積である。
d(Pm/Tm)/dt=(R/Vm)・(mt−mc) ・・・(16)
dPm/dt=κ・(R/Vm)・(mt・Ta−mc・Tm) ・・・(17)
吸気管モデルA43は、上記(16)式、及び上記(17)式の右辺におけるスロットル弁通過空気流量mt(=mt(k-1))をスロットルモデルA41から取得するとともに、吸気弁通過空気流量mc(=mc(k-1))を吸気弁モデルA42から取得する。そして、(16)式及び(17)式に基づく計算を行って最新の(現時点での)吸気管圧力Pm(=Pm(k))、及び吸気管温度Tm(=Tm(k))を推定する。
ここで、上記吸気管モデルA43を記述した(16)式及び(17)式の導出過程について説明する。いま、吸気管部の総空気量(総空気質量)をMとすると、総空気量Mの時間的変化量は、吸気管部に流入する空気量に相当するスロットル弁通過空気流量mtと同吸気管部から流出する空気量に相当する吸気弁通過空気流量mcの差であるから、吸気管部の空気について適用される質量保存則に基づく下記(18)式が得られる。
dM/dt=mt−mc ・・・(18)
また、吸気管部の空気についての状態方程式は下記(19)式となるから、上記(18)式と下記(19)式とから総空気量Mを消去することにより、吸気管部の空気について適用される質量保存則に基づく上記(16)式が得られる。
Pm・Vm=M・R・Tm ・・・(19)
次に、吸気管部の空気に関するエネルギー保存則について検討する。この場合、吸気管部の容積Vmは変化せず、また、エネルギーの殆どが温度上昇に寄与する(運動エネルギーは無視し得る)ものと考えられる。そうすると、吸気管部の空気のエネルギーM・Cv・Tmの時間的変化量は、同吸気管部に流入する空気のエネルギーCp・mt・Taと同吸気管部から流出する空気のエネルギーCp・mc・Tmの差に等しいので、下記(20)が得られる。ここにおいて、Cvは定容比熱、Cpは定圧比熱である。
d(M・Cv・Tm)/dt=Cp・mt・Ta−Cp・mc・Tm ・・・(20)
この上記(20)式を、比熱比κ=Cp/Cvなる関係と、上記(19)式(Pm・Vm=M・R・Tm)とを用いて変形することにより、上記(17)式が得られる。
実際には、吸気管モデルA43は、上記(16)式及び上記(17)式の各々を時間について演算周期Δtをもって離散化した下記(21)式及び下記(22)式に基づいて、同演算周期Δt毎に、現時点での吸気管圧力Pm(k)、及び吸気管温度Tm(k)を求めていく。以上が、吸入空気モデルA4が備える各モデルA41〜A43についての概要である。
(KL予測モデルA5)
次に、KL予測モデルA5について説明する。KL予測モデルA5は、先に述べたように、現時点(算出時点)で#inj気筒となっている気筒の吸気弁閉時における予測吸入空気量KLfwd(「機関を制御するために使用される値」)を予測するモデルである。KL予測モデルA5は、予測吸入空気量KLfwdを求めるため、先ず、吸気弁閉時における吸気管圧力(予測吸気管圧力Pmfwd)を予測する。以下、KL予測モデルA5による予測吸気管圧力Pmfwdの予測方法について先に説明する。
<予測吸気管圧力Pmfwdの予測方法>
KL予測モデルA5は、図10に示したように、上記(21)式及び(22)式を利用した上記吸気管モデルA43と同様のモデル(以下、「吸気管モデル相当モデル」と称呼する。)を利用して、現時点にて、現時点から吸気弁閉時までの将来の吸気管圧力、及び吸気管温度を、演算周期Δt毎に現時点からの時間経過に対応させた形でPmc(i),Tmc(i)(i=0,1,・・・,nfwd)として予測していく。なお、nfwdは現時点から吸気弁閉時までの遅延時間tfwdを演算周期Δtで除した値(予測回数)である。また、図10は、機関の始動直後のようにエンジン回転速度NEが急増することに起因して吸気管圧力Pmが現時点以降、遅延時間tfwdの間において減少していく場合を示している。
また、このように吸気管モデル相当モデルを表す上記(21)式及び(22)式に相当する式を用いて将来の吸気管圧力等を順次予測するため、KL予測モデルA5は、上記(14)式を利用したスロットルモデルA41と同様のモデル(以下、「スロットルモデル相当モデル」と称呼する。)、及び、上記(15)式を利用した吸気弁モデルA42と同様のモデル(以下、「吸気弁モデル相当モデル」と称呼する。)を利用する。そして、KL予測モデルA5は、現時点にて、現時点から吸気弁閉時までの将来のスロットル弁通過空気流量、及び吸気弁通過空気流量を、演算周期Δt毎に現時点からの時間経過に対応させた形で上記吸気管圧力Pmc(i)を順次用いて、mtc(i),mcc(i)(i=0,1,・・・,nfwd)として予測していく。
その際、KL予測モデルA5は、上記(14)式に相当するスロットルモデル相当モデルを表す式の引数であるスロットル弁開度θtとして、前述の電子制御スロットル弁モデルA3により予測されRAM73に記憶されている上記予測スロットル弁開度TAt(i)(i=O,1,・・・)を、現時点からの時間経過に対応させて読み出すことで順次使用していく。
以上のような計算を行う場合、予測回数nfwd(即ち、遅延時間tfwd)をどのように決定するかが問題となる。即ち、吸気弁閉時は同吸気弁閉時に相当するクランク角度CAが決定されることで決定されるため、遅延時間tfwdは現時点から吸気弁閉時までの間のエンジン回転速度NEに応じて変動する。
従って、機関が定常運転状態にある場合、遅延時間tfwd(従って、予測回数nfwd)は、現時点でのエンジン回転速度NEのみから精度良く決定され得る。一方、図10に示したエンジン回転速度NEが急増する場合等、機関が過渡運転状態にある場合、遅延時間tfwd(従って、予測回数nfwd)を精度良く決定するためには、現時点でのエンジン回転速度NEのみならず、現時点から吸気弁閉時までのエンジン回転速度NEの変化を考慮する必要がある。
そこで、KL予測モデルA5は、NE予測モデルA1が現時点で予測している#inj気筒の吸気弁閉時における上記予測エンジン回転速度NEfwdを利用する。即ち、図11に示したように、現時点(算出時点)から遅延時間tfwdの間にクランク角度CAが遅延クランク角度ΔCAivcだけ増加し、その間に、エンジン回転速度NE(従って、エンジン回転角速度ω)が、現時点でのエンジン回転速度NEnow(従って、エンジン回転角速度ωnow)から上記予測エンジン回転速度NEfwd(即ち、予測エンジン回転角速度ωfwd)まで変化するものと仮定する(図11における実線を参照。)。そうすると、遅延時間tfwdは、下記(23)式にて表すことができる。下記(23)式において、t0、及びCA0はそれぞれ、現時点(算出時点)での時刻、及びクランク角度である。
上記(23)式は、遅延時間tfwdは、クランク角度CAの関数であるエンジン回転角速度ωの逆数である値(1/ω)を、クランク角度CA0からクランク角度(CA0+ΔCAivc)までについて、クランク角度CAで定積分した値に相当することを表している。ここで、KL予測モデルA5は、クランク角度CA0からクランク角度(CA0+ΔCAivc)までの間において、値(1/ω)が値(1/ωnow)から値(1/ωfwd)まで線形的に変化するものと仮定する。この仮定は十分に精度の高いものである。この結果、遅延時間tfwdは、図12に斜線で示した、上底を(1/ωfwd)、下底を(1/ωnow)、高さをΔCAivcとする台形の面積に相当する値となる。
以上のことから、KL予測モデルA5は、遅延時間tfwdを、下記(24)式に従って決定する。このように、KL予測モデルA5は、現時点から遅延時間tfwdの間において、値(1/ω)、即ち、「機関の回転速度に応じた値」がクランク角度CAと線形関係にあると仮定することを利用して遅延時間tfwd(従って、予測回数nfwd)を決定する。
他方、吸気弁モデル相当モデルが上記(15)式に相当する式を利用して将来の吸気弁通過空気流量mcc(i)(i=0,1,・・・,nfwd)を順次予測していく場合、同(15)式に相当する式における比例係数a、及び既燃ガス量bを求める際に使用されるテーブルMAPa(NE,VVT)、及びMAPb(NE,VVT)の引数であるエンジン回転速度NEとして、どのような値を使用するかが問題となる。
即ち、機関が定常運転状態にある場合、遅延時間tfwd中における上記引数としてのエンジン回転速度として、現時点での値を順次使用していけばよい。一方、機関が過渡運転状態にある場合、遅延時間tfwd中の比例係数a、及び既燃ガス量b(従って、吸気弁通過空気流量mcc(i)(i=0,1,・・・))を精度良く順次求めていくためには、現時点から吸気弁閉時までのエンジン回転速度NEの変化の経緯を考慮する必要がある。
そこで、KL予測モデルA5は、図11に示したように、上記クランク角度ΔCAivc、並びに、上記エンジン回転角速度ωnow、及び上記予測エンジン回転角速度ωfwdから傾きgを求める。そして、KL予測モデルA5は、現時点でのクランク角度CA0から吸気弁閉時におけるクランク角度(CA0+ΔCAivc)までの間において、エンジン回転角速度ωが、クランク角度CAの増加に応じて傾きgをもって線形的に変化(増加)するものと仮定する(図11における破線を参照。)。
そうすると、図13に示したように、現時点(時刻t0)から遅延時間tfwdの間において、一演算周期Δtあたりのエンジン回転角速度ωの増加分Δωは、エンジン回転角速度ωに応じて変化する(具体的には、増加分Δωはエンジン回転角速度ωが大きいほど大きい値となる)。以下、一演算周期Δtあたりのエンジン回転角速度ωの増加分Δωを、同エンジン回転角速度ωの関数として求める手法について説明する。
いま、一演算周期Δtの間において、クランク角度CAが微小クランク角度Δcaだけ増加するとともにエンジン回転角速度が値ωから値(ω+Δω)まで変化したものとする。そうすると、上記傾きgを利用して下記(25)式が成立する。
Δω=g・Δca ・・・(25)
また、このとき、一演算周期Δtは、上述した図12に示した台形面積を利用して遅延時間tfwdを算出する場合と同様の手法によれば、図14に斜線で示した、上底を(1/(ω+Δω))、下底を(1/ω)、高さを微小クランク角度Δcaとする台形の面積に相当する値となる。従って、下記(26)式が成立する。
上記(25)式と、上記(26)式から微小クランク角度Δcaを消去して増加分Δωについて解くと、一演算周期Δtあたりのエンジン回転角速度ωの増加分Δωをエンジン回転角速度ωの関数として求めるための式である下記(27)式が得られる。これにより、或る時点でのエンジン回転角速度ωが取得できれば、値ωを下記(27)式に適用することで増加分Δωが求められ、この結果、同或る時点から一演算周期Δt後におけるエンジン回転角速度を(ω+Δω)として予測することができる。
この手法を用いて、KL予測モデルA5は、図13に示すように、現時点(即ち、時刻t0)でのエンジン回転角速度ωnowの値と上記(27)式とに基づいて、現時点から吸気弁閉時(即ち、時刻(t0+tfwd)における将来のエンジン回転角速度(従って、エンジン回転速度)の変化の経緯を、演算周期Δt毎に現時点からの時間経過に対応させた形でエンジン回転角速度ωc(i)(従って、エンジン回転速度NEc(i))(i=0,1,・・・,nfwd)として順次予測していく。
そして、KL予測モデルA5は、将来の吸気弁通過空気流量mcc(i)(i=0,1,・・・,nfwd)を順次予測していく際、同(15)式に相当する式における比例係数a、及び既燃ガス量bを求める際に使用されるテーブルMAPa(NE,VVT)、及びMAPb(NE,VVT)の引数であるエンジン回転速度NEとして、上記エンジン回転速度NEc(i)(i=0,1,・・・,nfwd)の値を順次使用していく。
なお、この過程において、テーブルMAPa(NE,VVT)、及びMAPb(NE,VVT)の引数である進角量VVTとしては、現時点(算出時点。即ち、時刻t0)においてカムポジションセンサ66から得られる現時点での実際の進角量VVTの値が使用される。実際の進角量VVTの応答性は比較的低いから、現時点から遅延時間tfwdの短期間においては、実際の進角量VVTの値は一定であると仮定することができるからである。
以上のようにして、KL予測モデルA5は、現時点(算出時点)でのエンジン回転速度NEnowのみならず、現時点にてNE予測モデルA1が予測している#inj気筒の吸気弁閉時における予測エンジン回転速度NEfwdをも利用して、遅延時間tfwd(従って、予測回数nfwd)、並びに、吸気弁通過空気流量mcc(i)(i=0,1,・・・,nfwd)を順次予測する際において使用されるテーブルMAPa(NE,VVT)、及びMAPb(NE,VVT)の引数であるエンジン回転速度NEの値を決定する。
そして、KL予測モデルA5は、図10に示したように、現時点(算出時点。時刻t0)にて、現時点から遅延時間後である吸気弁閉時(時刻(t0+tfwd))における吸気管圧力Pmc(nfwd)を計算し、同吸気管圧力Pmc(nfwd)の値を同吸気弁閉時における予測吸気管圧力Pmfwdとして予測する。
図15は、図10に示した場合と同様、機関の始動直後のようにエンジン回転速度NEが急増することに起因して吸気管圧力Pmが現時点(算出時点)から吸気弁閉時までの間において減少していく場合を示している。この場合、上述した従来の装置においては、便宜上、現時点でのエンジン回転速度を使用して遅延時間tfwd’が決定されるため、同決定された遅延時間tfwd’は実際の遅延時間よりも長い時間となる(図12に示した長方形の面積を参照)。
更には、上記テーブルMAPa(NE,VVT)、及びMAPb(NE,VVT)の引数である遅延時間tfwd’の間におけるエンジン回転速度NEの値として、現時点での値(一定値)が使用されるため、上記吸気弁通過空気流量mcc(i)(i=1,2,・・・)が小さめの値に計算されることに起因して、図10において破線にて示したように、吸気管圧力Pmc(i)(i=1,2,・・・)は大きめの値として計算されていく。
従って、このようにエンジン回転速度NEが急増する場合、従来の装置においては、予測回数nfwdが大きめに設定されること、及び吸気管圧力Pmc(i)(i=1,2,・・・)が大きめの値として計算されることにより、吸気弁閉時における予測吸気管圧力Pmfwd’の値(白い星印を参照)が実際の値と大きく異なる場合がある。
これに対し、本装置においては、このようにエンジン回転速度NEが急増する場合においても、遅延時間tfwdが実際の遅延時間に近い時間に決定され得るから、予測回数nfwdも適切な値として決定され得る。また、上記吸気弁通過空気流量mcc(i)(i=1,2,・・・)も適切な値に計算され得るから、吸気管圧力Pmc(i)(i=1,2,・・・)も適切な値に計算され得る。この結果、予測吸気管圧力Pmfwd(黒い星印を参照)は吸気弁閉時における実際の吸気管圧力に近い精度の値となり得る。以上が、KL予測モデルA5による吸気弁閉時における予測吸気管圧力Pmfwdの予測方法である。
<吸気弁開弁時間Tint、及び予測吸入空気量KLfwdの予測方法>
以上のようにして、#inj気筒の吸気弁閉時における予測吸気管圧力Pmfwdが求められると、上記吸気弁モデル相当モデルは、上記テーブルMAPa(NE,VVT)、及びMAPb(NE,VVT)の引数であるエンジン回転速度NEとして、同吸気弁閉時における上記予測エンジン回転速度NEfwdを使用するとともに、同引数である進角量VVTとして現時点での値を使用して、同吸気弁閉時における比例係数afwd、及び既燃ガス量bfwdを求め、これらの値と、上記(15)式に相当する式とに基づいて、同吸気弁閉時における吸気弁通過空気流量mcfwdを求める。
そして、#inj気筒の吸気弁閉時における吸気弁通過空気流量mcfwdが求められると、同吸気弁通過空気流量mcfwdに、#inj気筒の吸気弁32の開弁時間Tintを乗じることにより予測吸入空気量KLfwdを求めることができる。ここで、この開弁時間Tintをどのように決定するかが問題となる。
即ち、進角量VVTの値にかかわらず吸気弁の開弁時間Tintに相当するクランク角度CAは常に一定となるから、同開弁時間Tintは現時点よりも将来の吸気弁開時から吸気弁閉時までの間のエンジン回転速度NEに応じて変動する。
従って、機関が定常運転状態にある場合、吸気弁32の開弁時間Tintは、現時点でのエンジン回転速度NEのみから精度良く決定され得る。一方、図11に示したエンジン回転速度NEが急増する場合等、機関が過渡運転状態にある場合、開弁時間Tintを精度良く決定するためには、吸気弁開時から吸気弁閉時までのエンジン回転速度NEの変化を考慮する必要がある。
ここで、図11に示したように、吸気弁開時におけるエンジン回転角速度ωivoは、現時点から同吸気弁開時までのクランク角度ΔCAivoと、現時点のエンジン回転角速度ωnowと、上記傾きgとに基づいて予測することができる。従って、吸気弁32の開弁時間Tintの間にクランク角度CAが遅延クランク角度(ΔCAivc−ΔCAivo)だけ増加し、その間に、エンジン回転角速度ωが、吸気弁開時におけるエンジン回転角速度ωivoから上記予測エンジン回転角速度ωfwdまで変化するものと仮定する。
そうすると、吸気弁32の開弁時間Tintは、上述した図12に示した台形面積を利用して遅延時間tfwdを算出する場合等と同様の手法によれば、図16に斜線で示した、上底を(1/ωfwd)、下底を(1/ωivo)、高さを(ΔCAivc−ΔCAivo)とする台形の面積に相当する値となる。従って、下記(28)式が成立する。KL予測モデルA5は、下記(28)式に従って#inj気筒の吸気弁32の開弁時間Tintを求め、上記吸気弁閉時における吸気弁通過空気流量mcfwdに同求めた開弁時間Tintを乗じることにより予測吸入空気量KLfwdを求める。
KL予測モデルA5は、このような予測吸入空気量KLfwdの計算を、上記吸入空気モデルA4(具体的には、吸気管モデルA43)が吸気管圧力Pm(k)、及び吸気管温度Tm(k)を求める周期である演算周期Δtに同期して、同演算周期Δt毎に、#inj気筒となっている気筒について、現時点(算出時点)で既にNE予測モデルA1により計算されている#inj気筒の吸気弁閉時における最新の予測エンジン回転速度NEfwdに基づいて行う。
そして、噴射量決定手段A7は、#inj気筒の排気行程中の所定の時点に設定される上述した#inj気筒の噴射開始時期の直前で計算された予測吸入空気量KLfwdに基づいて今回の燃料噴射量fi(k)を決定する。このようにして、KL予測モデルA5(算出手段)は、#inj気筒の排気行程開始時点(即ち、予測時点)よりも後であって#inj気筒の吸気弁閉時よりも前の時点(即ち、算出時点)で、今回の燃料噴射量fi(k)の算出に実際に使用される予測吸入空気量KLfwd(従って、「機関を制御するために使用される値」)を上記予測エンジン回転速度NEfwdに基づいて算出する。以上が、KL予測モデルA5の概要である。
(噴射量決定手段)
次に、噴射量決定手段A7について説明する。噴射量決定手段A7は、その機能ブロック図である図17に示したように、予測必要燃料量算出手段A71と、燃料挙動逆モデルA72とを備えている。以下、これらについて個別に説明していく。
(予測必要燃料量算出手段A71)
予測必要燃料量算出手段A71は、KL予測モデルA5により求められた#inj気筒の吸気弁閉時における予測吸入空気量KLfwd(の最新値)を、目標空燃比設定手段A6により求められた目標空燃比AbyFrefで除することにより、予測必要燃料量fc(k)を求める手段である。即ち、この予測必要燃料量fc(k)は、#inj気筒の吸気行程において吸入される混合気の空燃比を目標空燃比AbyFrefとするために、#inj気筒に吸入されるべき燃料の量である。
(燃料挙動逆モデルA72)
燃料挙動逆モデルA72は、後述する燃料挙動の逆モデルを用いて、上記予測必要燃料量算出手段A71により算出された予測必要燃料量fc(k)の燃料を#inj気筒に供給するために必要とされる今回の燃料噴射量fi(k)を算出する手段である。
図18に概念的に示したように、#inj気筒の排気行程中において#inj気筒のインジェクタ39から噴射された燃料は、その一部が吸気管41の壁面部、及び吸気弁32等からなる吸気通路構成部材に付着する。ここで、fiをインジェクタ39から#inj気筒の吸気行程に対して噴射される燃料噴射量、fwを吸気通路構成部材に既に付着している燃料付着量、pを吸気通路構成部材に既に付着している燃料のうち一吸気行程を経た後に同吸気通路構成部材に付着したまま残留している燃料の割合(残留率p)、rをインジェクタ39から噴射された前記燃料のうち吸気通路構成部材へ付着する燃料の割合(付着率r)とする。
そうすると、今回噴射された燃料fi(k)のうち吸気通路構成部材に新たに付着する燃料量はr・fi(k)であり、吸気通路構成部材に既に付着していた今回の燃料fw(k)のうち同吸気通路構成部材に残留する燃料量はp・fw(k)であるから、次回の燃料付着量fw(k+1)について下記(29)式が成立する。下記(29)式は、燃料付着量を求めるための燃料付着モデルを記述した式である。
fw(k+1)=r・fi(k)+p・fw(k) ・・・(29)
従って、一吸気行程において、今回噴射された燃料のうち吸気通路構成部材に付着せず#inj気筒の筒内に直接吸入される燃料量は(1−r)・fi(k)となり、吸気通路構成部材に付着していた燃料のうち同吸気通路構成部材から離脱して同筒内に吸入される燃料量は(1−p)・fw(k)となる。よって、#inj気筒に対してfi(k)の燃料を噴射したとき、#inj気筒の筒内に流入する筒内流入燃料量finは下記(30)式により表すことができる。
fin=(1−r)・fi(k)+(1−p)・fw(k) ・・・(30)
以上のことから、#inj気筒の吸気行程において上記予測必要燃料量fc(k)が#inj気筒に吸入されるために必要な今回の燃料噴射量fi(k)は、上記(30)式において筒内流入燃料量finを予測必要燃料量fc(k)に置き換えた式をfi(k)について解くことにより得られる下記(31)式に従って求めることができる。下記(31)式における燃料付着量fw(k)は、上記(29)式を順次適用することで算出・更新される値である。係る(31)式が燃料挙動逆モデルを記述した式である。
fi(k)=(fc(k)−(1-p)・fw(k)) / (1-r) ・・・(31)
他方、残留率p、及び付着率rは、エンジン回転速度、予測吸入空気量、及び進角量に応じて変化する値である。噴射量決定手段A7(燃料挙動逆モデルA72)は、エンジン回転速度NE、予測吸入空気量KLfwd、及び進角量VVTと、残留率p、及び付着率rとの関係をそれぞれ規定するテーブルMAPp、及びMAPrをROM72内に格納していて、同テーブルMAPp、及びMAPrに基づいて残留率p(=MAPp(NE,KLfwd,VVT))、及び付着率r(=MAPr(NE,KLfwd,VVT))を求める。
そして、噴射量決定手段A7(燃料挙動逆モデルA72)は、#inj気筒の排気行程中における噴射開始時期(の直前の時点)にて、上記(31)式に従って今回の燃料噴射量fi(k)を求める。このとき、上記テーブルMAPp(NE,KLfwd,VVT)、及びMAPr(NE,KLfwd,VVT)の引数であるエンジン回転速度NEとして、どのような値を使用するかが問題となる。
即ち、図19に示したように、残留率p、及び付着率rは、エンジン回転速度NEに応じて変動する。加えて、残留率p、及び付着率rは、上記(29)式から理解できるように、今回の燃料噴射量fi(k)と今回の燃料付着量fw(k)とから次回の燃料付着量fw(k+1)を求めるために機能する値であり、次回の燃料付着量fw(k+1)は、#inj気筒の今回の吸気行程における吸気弁閉時に確定する値である。換言すれば、残留率p、及び付着率rは、#inj気筒の今回の吸気行程における吸気弁閉時におけるエンジン回転速度NEfwdに大きく影響される値である。
以上のことから、機関が定常運転状態にある場合、上記引数としてのエンジン回転速度として、噴射量決定手段A7が今回の燃料噴射量fi(k)を算出する時期である噴射開始時期(算出時点。現時点)におけるエンジン回転速度NEinjを使用すればよい。一方、図19に示した場合のように、機関が過渡運転状態にある場合、残留率p、及び付着率r(従って、燃料付着量)を精度良く求めるためには、上記引数としてのエンジン回転速度を決定するにあたり、噴射開始時期(算出時点)におけるエンジン回転速度NEinjのみならず、吸気弁閉時におけるエンジン回転速度NEfwdをも考慮する必要がある。
そこで、噴射量決定手段A7(燃料挙動逆モデルA72)は、上記テーブルMAPp(NE,KLfwd,VVT)、及びMAPr(NE,KLfwd,VVT)の引数であるエンジン回転速度NEとして、噴射開始時期(算出時点)におけるエンジン回転速度NEinjと、NE予測モデルA1により同噴射開始時期において予測されている吸気弁閉時におけるエンジン回転速度NEfwd(の最新値)の平均値を使用する。
また、テーブルMAPp(NE,KLfwd,VVT)、及びMAPr(NE,KLfwd,VVT)の引数である進角量VVTとしては、現時点(算出時点。即ち、噴射開始時期)においてカムポジションセンサ66から得られる現時点での実際の進角量VVTの値が使用される。実際の進角量VVTの応答性は比較的低いから、噴射開始時期から吸気弁閉時までの短期間においては、実際の進角量VVTの値は一定であると仮定することができるからである。また、上記引数である予測吸入空気量KLfwdとしては、KL予測モデルA5により取得される最新値が使用される。
噴射量決定手段A7は、このような燃料噴射量fi(k)の計算を、#inj気筒となっている気筒について、#inj気筒の噴射開始時期が到来する毎に、現時点(算出時点)で既にNE予測モデルA1により計算されている#inj気筒の吸気弁閉時における最新の予測エンジン回転速度NEfwdに基づいて、気筒毎に行う。
このようにして、噴射量決定手段A7(算出手段)は、#inj気筒の排気行程開始時点(即ち、予測時点)よりも後であって#inj気筒の吸気弁閉時よりも前の時点(即ち、算出時点)で、残留率p、及び付着率r(従って、燃料付着量。即ち、「機関を制御するために使用される値」)を上記予測エンジン回転速度NEfwdに基づいて算出する。以上が、噴射量決定手段A7の概要である。
以上のように、図2に示した各モデル、及び各手段により#inj気筒についての今回の燃料噴射量fi(k)が計算されていく。その際、#inj気筒の排気行程開始時点(即ち、予測時点)よりも後であって#inj気筒の吸気弁閉時よりも前の時点(即ち、算出時点)にて、NE予測モデルA1により既に予測された#inj気筒の吸気弁閉時におけるエンジン回転速度NEfwdに基づいて、「機関を制御するために使用される値」としての、予測吸入空気量KLfwd(具体的には、KLfwdを求めるために必要な比例係数a、及び既燃ガス量b)、及び燃料付着量fw(具体的には、fwを求めるために必要な残留率p、及び付着率r)が算出される。
次に、電気制御装置70の実際の作動について、図20〜図27に示したフローチャートを参照しながら説明する。
(予測回転速度の算出)
CPU71は、図20、及び図21にフローチャートにより示した一連のルーチンを演算周期Δt(ここでは、8msec)の経過毎に、気筒毎に、実行することにより、上記NE予測モデルA1の機能を達成する。具体的に述べると、CPU71は所定のタイミングにてステップ2000から処理を開始し、ステップ2002に進んで特定の(任意の)気筒の状態が圧縮行程から膨張行程に移行したか否か(膨張行程開始時点が到来したか否か)をモニタする。
いま、上記特定気筒の状態が圧縮行程の途中にあるものとすると、CPU71はステップ2002にて「No」と判定してステップ2012に進み、特定気筒の状態が膨張行程から排気行程に移行したか否か(膨張行程終了時点が到来したか否か)をモニタし、ここでも「No」と判定してステップ2095に直ちに進んで本ルーチンを一旦終了する。以降、特定気筒の膨張行程開始時点が到来するまで、CPU71はステップ2000、2002、2012の処理を繰り返し実行する。
次に、この状態にて特定気筒の膨張行程開始時点が到来したものとすると、CPU71はステップ2002に進んだとき「Yes」と判定してステップ2004に進むようになり、同ステップ2004にて経過時間Tをリセットする。ここで、経過時間Tは電気制御装置70において各気筒用にそれぞれ内蔵されたタイマにより計測される、特定気筒の膨張行程開始時点からの経過時間を表す。
次いで、CPU71はステップ2006に進み、現時点(即ち、膨張行程開始時点)でのエンジン回転速度NEを膨張行程開始時エンジン回転速度NEtdcとして格納し、続くステップ2008にて同膨張行程開始時エンジン回転速度NEtdcに相当する膨張行程開始時エンジン回転角速度ωtdcを求める。続いて、CPU71はステップ2010に進み、現時点(即ち、膨張行程開始時点)での冷却水温THWを膨張行程開始時冷却水温THWtdcとして格納した後、ステップ2095に進んで本ルーチンを一旦終了する。以降、CPU71は、特定気筒の膨張行程終了時点が到来するまで、ステップ2000、2002、2012の処理を繰り返し実行する。
次に、この状態から特定気筒の膨張行程終了時点が到来したものとすると、CPU71はステップ2012に進んだとき「Yes」と判定してステップ2014に進むようになり、同ステップ2014にて現時点での経過時間T(即ち、特定気筒の膨張行程開始時点から膨張行程終了時点までの時間)を膨張行程経過時間Δtとして格納する。なお、この時点で、この特定気筒が#inj気筒となる。
続いて、CPU71はステップ2016に進んで、現時点(即ち、膨張行程終了時点)でのエンジン回転速度NEを膨張行程終了時エンジン回転速度NEbdc#injとして格納し、続くステップ2018にて同膨張行程終了時エンジン回転速度NEbdc#injに相当する膨張行程終了時エンジン回転角速度ωbdc#injを求める。続いて、CPU71はステップ2020に進み、現時点(即ち、膨張行程終了時点)での冷却水温THWを膨張行程終了時冷却水温THWbdcとして格納する。
次に、CPU71はステップ2022に進み、上記膨張行程終了時エンジン回転角速度ωbdc#injと、上記膨張行程開始時エンジン回転角速度ωtdcと、上記膨張行程経過時間Δtと、上記(2)式とに基づいて平均エンジン回転角加速度(dω/dt)aveを求める。次いで、CPU71はステップ2024に進んで、上記膨張行程開始時エンジン回転速度NEtdcと、上記膨張行程終了時エンジン回転速度NEbdc#injの平均値である平均エンジン回転速度NEaveを求め、続くステップ2026にて、上記膨張行程開始時冷却水温THWtdcと、上記膨張行程終了時冷却水温THWbdcの平均値である平均冷却水温THWaveを求める。
次に、CPU71は、ステップ2028に進んで、上記平均エンジン回転速度NEaveと、平均冷却水温THWaveと、テーブルMapTfとに基づいてフリクショントルクTf#injを求める。続いて、CPU71はステップ2030に進み、上記平均エンジン回転角加速度(dω/dt)aveと、上記フリクショントルクTf#injと、上記(1)式とに基づいて#inj気筒の膨張行程における機関の平均実図示トルクTi#injを求める。このようにして平均実図示トルクTi#injを算出する手段が#inj気筒の図示トルク算出手段A11に相当する。
次いで、CPU71はステップ2032に進んで、上記#inj気筒の膨張行程における機関の平均実図示トルクTi#injと、後述する図27に示すルーチンのステップ2750にて格納されている#inj気筒についての前回の筒内流入燃料量mf#inj(k-1)と、上記(3)式とに基づいて#inj気筒の膨張行程における図示熱効率η#injを求める。このようにして図示熱効率η#injを算出する手段が#inj気筒の図示熱効率算出手段A12に相当する。
次に、CPU71は、図21のステップ2034に進んで、上記図示熱効率η#injと、後述する図27に示すルーチンのステップ2750にて格納されている#(inj+1)気筒についての前回の筒内流入燃料量mf#(inj+1)(k-1)と、上記(5)式とに基づいて#(inj+1)気筒の膨張行程における機関の平均予測図示トルクTi#(inj+1)を求める。このようにして平均予測図示トルクTi#(inj+1)を算出する手段が#(inj+1)気筒の図示トルク予測手段A13に相当する。
続いて、CPU71はステップ2036に進んで、上記図示熱効率η#injと、後述する図27に示すルーチンのステップ2750にて格納されている#(inj+2)気筒についての前回の筒内流入燃料量mf#(inj+2)(k-1)と、上記(6)式とに基づいて#(inj+2)気筒の膨張行程における機関の平均予測図示トルクTi#(inj+2)を求める。このようにして平均予測図示トルクTi#(inj+2)を算出する手段が#(inj+2)気筒の図示トルク予測手段A14に相当する。
次に、CPU71はステップ2038に進み、上記膨張行程終了時エンジン回転速度NEbdc#injと、上記膨張行程終了時冷却水温THWbdcと、テーブルMapTfとに基づいてフリクショントルクTf#(inj+1)を求める。続いて、CPU71はステップ2040に進んで、上記平均予測図示トルクTi#(inj+1)と、上記フリクショントルクTf#(inj+1)と、上記膨張行程終了時エンジン回転角速度ωbdc#injと、上記(8)式とに基づいて#(inj+1)気筒の膨張下死点でのエンジン回転角速度ωbdc#(inj+1)を求め、続くステップ2042にて同エンジン回転角速度ωbdc#(inj+1)に相当する#(inj+1)気筒の膨張下死点でのエンジン回転速度NEbdc#(inj+1)を求める。このようにしてエンジン回転速度NEbdc#(inj+1)を算出する手段が#(inj+1)気筒の膨張下死点でのNE予測手段A15に相当する。
続いて、CPU71はステップ2044に進んで、#(inj+1)気筒の膨張下死点でのエンジン回転速度NEbdc#(inj+1)と、上記膨張行程終了時冷却水温THWbdcと、テーブルMapTfとに基づいてフリクショントルクTf#(inj+2)を求める。続いて、CPU71はステップ2046に進んで、上記平均予測図示トルクTi#(inj+2)と、上記フリクショントルクTf#(inj+2)と、#(inj+2)気筒の膨張下死点でのエンジン回転角速度ωbdc#(inj+1)と、上記(9)式とに基づいて#(inj+2)気筒の膨張下死点でのエンジン回転角速度ωbdc#(inj+2)を求め、続くステップ2048にて同エンジン回転角速度ωbdc#(inj+2)に相当する#(inj+2)気筒の膨張下死点でのエンジン回転速度NEbdc#(inj+2)を求める。このようにしてエンジン回転速度NEbdc#(inj+2)を算出する手段が#(inj+2)気筒の膨張下死点でのNE予測手段A16に相当する。
次に、CPU71はステップ2050に進んで、#inj気筒の吸気弁閉時のクランク角度から遅角量ΔCAlateを取得し、続くステップ2052にて、上記遅角量ΔCAlateと、上記する#(inj+2)気筒の膨張下死点でのエンジン回転速度NEbdc#(inj+2)と、後述する図27に示すルーチンのステップ2750にて格納されている#(inj+3)気筒についての前回の筒内流入燃料量mf#(inj+3)(k-1)と、上記(10)式とに基づいて補正量ΔNEを求める。
そして、CPU71はステップ2054に進んで、上記エンジン回転速度NEbdc#(inj+2)と、上記補正量ΔNEと、上記(11)式とに基づいて#inj気筒の吸気弁閉時における予測エンジン回転速度NEfwdを求め、ステップ2095に進んで本ルーチンを一旦終了する。
以降、CPU71は、上記特定気筒の次の膨張行程開始時点が到来するまでの間、ステップ2000、2002、2012の処理を繰り返し実行する。このようにして、各気筒の膨張行程終了時点が到来する毎に、新たに#inj気筒となった気筒の吸気弁閉時における新たなエンジン回転速度NEfwdが順次計算されていく。
(目標スロットル弁開度の計算)
また、CPU71は、図22にフローチャートにより示したルーチンを演算周期Δt(ここでは、8msec)の経過毎に実行することにより、上記電子制御スロットル弁ロジックA2、及び電子制御スロットル弁モデルA3の機能を達成する。具体的に述べると、CPU71は所定のタイミングにてステップ2200から処理を開始し、ステップ2205に進んで変数iに「0」を設定し、ステップ2210に進んで変数iが前記遅延回数ntdlyと等しいか否かを判定する。
この時点で変数iは「0」であるから、CPU71はステップ2210にて「No」と判定し、ステップ2215に進んで目標スロットル弁開度(予測スロットル弁開度)TAt(i)に目標スロットル弁開度(予測スロットル弁開度)TAt(i+1)の値を格納する。以上の処理により、目標スロットル弁開度TAt(0)に目標スロットル弁開度TAt(1)の値が格納される。
次いで、CPU71は、ステップ2220にて変数iの値を「1」だけ増大してステップ2210にもどる。そして変数iの値が遅延回数ntdlyより小さければ、再びステップ2215〜2220を実行する。即ち、ステップ2215〜2220は、変数iの値が遅延回数ntdlyと等しくなるまで繰り返し実行される。これにより、目標スロットル弁開度TAt(i+1)の値が目標スロットル弁開度TAt(i)に順次シフトされていく。
前述のステップ2220が繰り返されることにより変数iの値が遅延回数ntdlyと等しくなると、CPU71はステップ2210にて「Yes」と判定してステッ2225に進み、同ステップ2225にて、今回の暫定目標スロットル弁開度TAaccを目標スロットル弁開度(予測スロットル弁開度)TAt(ntdly)として格納する。そして、ステップ2230にて目標スロットル弁開度TAtに目標スロットル弁開度TAt(0)の値を設定した後、ステップ2295に進んで本ルーチンを一旦終了する。
以上のように、目標スロットル弁開度TAtに関するメモリにおいては、本ルーチンが実行される毎にメモリの内容が一つずつシフトされて行き、目標スロットル弁開度TAt(0)に格納された値が、電子制御スロットル弁ロジックA2によってスロットル弁アクチュエータ43aに出力される目標スロットル弁開度TAtとして設定される。即ち、今回の本ルーチンの実行により目標スロットル弁開度TAt(ntdly)に格納された値は、今後において本ルーチンが遅延回数ntdlyだけ繰り返されたときにTAt(0)に格納され、目標スロットル弁開度TAtとなる。
(予測吸入空気量KLfwdの計算)
CPU71は、上述した図22のルーチンの演算周期Δtに同期して、同演算周期Δt(8msec)の経過毎に図23に示した予測吸入空気量計算ルーチンを実行することで、吸入空気モデルA4(スロットルモデルA41、吸気弁モデルA42、及び吸気管モデルA43)、並びに、KL予測モデルA5の機能を達成するようになっている。
具体的に説明すると、所定のタイミングになったとき、CPU71はステップ2300から処理を開始し、ステップ2305に進んで、上記吸気管モデルA43を表す上記(21)式、及び(22)式と、前回の本ルーチン実行時における後述するステップ2325にて格納されている各種前回値 Pm(k-1),(Pm/Tm)(k-1),Tm(k-1),mt(k-1),mc(k-1)と、に基づいて、今回の吸気管圧力Pm(k)、今回の吸気管温度(k)、及び今回の値(Pm/Tm)(k)を求める。
次に、CPU71はステップ2310に進み、スロットルモデルA41を表す上記(14)式と、上記求めた今回の吸気管圧力Pm(k)と、スロットルポジションセンサ64から得られる現時点でのスロットル弁開度TAとに基づいて今回のスロットル弁通過空気流量mt(k)を求める。
続いて、CPU71は、ステップ2315に進んで、現時点でのエンジン回転速度NEと、現時点での進角量VVTと、テーブルMapa及びMapbと、に基づいて今回の比例係数a(k)と、今回の既燃ガス量b(k)とを求め、続くステップ2320にて、吸気弁モデルA42を表す上記(25)式と、上記求めた今回の吸気管圧力Pm(k)と、上記今回の比例係数a(k)及び既燃ガス量b(k)とに基づいて今回の吸気弁通過空気流量mc(k)を求める。
次いで、CPU71はステップ2325に進み、次回の計算の準備のため、各種今回値
Pm(k),(Pm/Tm)(k),Tm(k),mt(k),mc(k)をそれぞれ、各種前回値 Pm(k-1),(Pm/Tm)(k-1),Tm(k-1),mt(k-1),mc(k-1)として格納する。
続いて、CPU71はステップ2330を経由して、図24、及び図25にフローチャートにして示した一連の予測吸気管圧力Pmfwd算出ルーチンの処理をステップ2400から開始する。CPU71は、ステップ2400からステップ2405に進むと、現時点でのエンジン回転速度NEを現在エンジン回転速度NEnowとして格納する。
次に、CPU71はステップ2410に進み、上記現在エンジン回転速度NEnowに相当する現在エンジン回転角速度ωnowを求めるとともに、先の図21のステップ2054にて既に求めている#inj気筒の吸気弁閉時における予測エンジン回転速度NEfwdの最新値に相当する予測エンジン回転角速度ωfwdを求める。
続いて、CPU71はステップ2415に進んで、現時点から#inj気筒の吸気弁閉時までのクランク角度である遅延クランク角度ΔCAivcを取得するとともに、続くステップ2420にて現時点から#inj気筒の吸気弁開時までのクランク角度ΔCAivoを取得する。
次いで、CPU71はステップ2425に進んで、上記予測エンジン回転角速度ωfwdと、上記現在エンジン回転角速度ωnowと、上記遅延クランク角度ΔCAivcとから傾きgを求め、続くステップ2430にて、上記予測エンジン回転角速度ωfwdと、上記現在エンジン回転角速度ωnowと、上記遅延クランク角度ΔCAivcと、上記(24)式とに基づいて遅延時間tfwdを求める。次に、CPU71はステップ2435に進んで、上記遅延時間tfwdを演算周期Δtで除した値を予測回数nfwdとして決定する。
続いて、CPU71はステップ2440に進み、予測吸気管圧力Pmfwdの計算の準備のため、各種今回値
Pm(k),(Pm/Tm)(k),Tm(k),mt(k),mc(k)、及び上記現在エンジン回転速度NEnowの値をそれぞれ、Pmc(0),(Pm/Tm)c(0),Tmc(0),mtc(0),mcc(0),NEc(0)(ωc(0))として格納する。
次に、CPU71は図25のステップ2445に進んで変数iに「0」を設定し、ステップ2450に進んで変数iが先のステップ2435にて求めた予測回数nfwdと等しいか否かを判定する。この時点で変数iは「0」であるから、CPU71はステップ2450にて「No」と判定し、続くステップ2455にて変数iの値を「1」だけ増大する。
続いて、CPU71はステップ2460に進み、先のステップ2305と同様にして、上記吸気管モデル相当モデルを表す上記(21)式及び(22)式に相当する式と、各種値 Pmc(i-1),(Pm/Tm)c(i-1),Tmc(i-1),mtc(i-1),mcc(i-1)と、に基づいて、吸気管圧力Pmc(i)、吸気管温度(i)、及び値(Pm/Tm)(i)を求める。以上の処理により、先のステップ2440にて格納されている各種値Pmc(0),(Pm/Tm)c(0),Tmc(0),mtc(0),mcc(0)と、に基づいて、現時点から一演算周期Δt後の将来の予測値である吸気管圧力Pmc(1)、吸気管温度(1)、及び値(Pm/Tm)(1)が求められる。
次いで、CPU71はステップ2465に進んで、先のステップ2310と同様にして、上記スロットルモデル相当モデルを表す上記(14)式に相当する式と、吸気管圧力Pmc(i)と、電子制御スロットル弁モデルA3が予測している予測スロットル弁開度TAt(i)とに基づいてスロットル弁通過空気流量mtc(i)を求める。これにより、現時点から一演算周期Δt後の将来の予測値である吸気管圧力Pmc(1)と、現時点から一演算周期Δt後の将来の予測値であるスロットル弁開度TAt(1)とに基づいて現時点から一演算周期Δt後の将来の予測値であるスロットル弁通過空気流量mtc(1)が求められる。
次に、CPU71はステップ2470に進み、先のステップ2425にて求めた傾きgと、エンジン回転角速度ωc(i-1)と、上記(27)式とに基づいて、現時点から時間「Δt・(i-1)」が経過した時点から、一演算周期Δtが経過する間におけるエンジン回転角速度ωの増加分Δωを求める。これにより、現時点から一演算周期Δtが経過する間における増加分Δωが求められる。
続いて、CPU71はステップ2475に進んで、エンジン回転角速度ωc(i-1)に上記求めた増加分Δωを加えた値をエンジン回転角速度ωc(i)として格納し、続くステップ2480にて、エンジン回転角速度ωc(i)に相当するエンジン回転速度NEc(i)を求める。これにより、現時点から一演算周期Δt経過後の将来のエンジン回転角速度ωc(1)、及び同エンジン回転角速度ωc(1)に相当するエンジン回転速度NE(1)が求められる。
次に、CPU71はステップ2485に進み、上記エンジン回転速度NEc(i)と、現時点での進角量VVTと、テーブルMapa及びMapbとに基づいて比例係数ac(i)、及び既燃ガス量bc(i)を求める。続いて、CPU71はステップ2490に進んで、上記吸気弁モデル相当モデルを表す上記(15)式に相当する式と、上記吸気管圧力Pmc(i)と、上記比例係数ac(i)及び既燃ガス量bc(i)とに基づいて吸気弁通過空気流量mcc(i)を求める。これにより、現時点から一演算周期Δt後の将来の予測値である吸気管圧力Pmc(1)と、現時点から一演算周期Δt後の将来の予測値であるエンジン回転速度NEc(1)に基づいて決定された比例係数ac(1)及び既燃ガス量bc(1)とに基づいて、現時点から一演算周期Δt後の将来の予測値である吸気弁通過空気流量mcc(1)が求められる。
そして、CPU71はステップ2450にもどり、変数iの値が予測回数nfwdより小さければ、再びステップ2455〜2490を実行する。即ち、ステップ2455〜2490は、変数iの値が予測回数nfwdと等しくなるまで繰り返し実行される。これにより、現時点から時間「Δt・i」が経過した時点における予測値である各種値
Pmc(i),(Pm/Tm)c(i),Tmc(i),mtc(i),mcc(i),ωc(i),NEc(i),ac(i),bc(i) (i=1,2,・・・,nfwd)が順次計算されていく。
前述のステップ2455が繰り返されることにより変数iの値が遅延回数nfwdと等しくなると、CPU71は、現時点から時間「Δt・nfwd」が経過した時点(即ち、#inj気筒の吸気弁閉時)における予測値である上記各種値
Pmc(nfwd)等を計算し、その後にステップ2450にもどったとき「Yes」と判定してステッ2495に進む。
CPU71はステップ2495に進むと、吸気管圧力Pmc(i)(即ち、Pmc(nfwd))の値を予測吸気管圧力Pmfwdとして設定し、続くステップ2499を経由して図23のステップ2335に戻る。これにより、#inj気筒の吸気弁閉時における予測吸気管圧力Pmfwdが求められる。
CPU71はステップ2335に進むと、同ステップ2335を経由して、図26にフローチャートにして示した吸気弁開弁時間Tint算出ルーチンの処理をステップ2600から開始する。CPU71は、ステップ2600からステップ2605に進むと、先のステップ2410にて求めた現在エンジン回転角速度ωnowと、先のステップ2425にて求めた傾きgと、現時点から#inj気筒の吸気弁開時までのクランク角度ΔCAivoとに基づいて同吸気弁開時におけるエンジン回転角速度ωivoを求める(図11を参照)。
次に、CPU71はステップ2610に進んで、上記エンジン回転角速度ωivoと、先のステップ2410にて求めた予測エンジン回転角速度ωfwdと、遅延クランク角度(ΔCAivc−ΔCAivo)と、上記(28)式とに基づいて吸気弁開弁時間Tintを求め、ステップ2695を経由して図23のステップ2340に戻る。これにより、#inj気筒の吸気弁開弁時間Tintが求められる。
CPU71はステップ2340に進むと、図21のステップ2054にて求められている#inj気筒の吸気弁閉時における予測エンジン回転速度NEfwdと、現時点での進角量VVTと、テーブルMapa,Mapbとに基づいて、同予測エンジン回転速度NEfwdに基づいて決定される比例係数afwd、及び既燃ガス量bfwdを求める。
次に、CPU71はステップ2345に進み、上記吸気弁モデル相当モデルを表す上記(15)式に相当する式と、上記比例係数afwd、及び既燃ガス量bfwdと、図25のステップ2495にて格納した#inj気筒の吸気弁閉時における予測吸気管圧力Pmfwdとに基づいて同吸気弁閉時における吸気弁通過空気流量mcfwdを求める。
そして、CPU71はステップ2350に進み、上記吸気弁閉時における吸気弁通過空気流量mcfwdに、図26のステップ2610にて求めた#inj気筒の吸気弁開弁時間Tintを乗じた値を#inj気筒の吸気弁閉時における予測吸入空気量KLfwdとして決定し、ステップ2395に進んで本ルーチンを一旦終了する。これにより、#inj気筒の吸気弁閉時における予測吸入空気量KLfwdが求められる。
(噴射実行ルーチン)
次に、電気制御装置70が、実際に噴射を行うために実行するルーチンについて、同ルーチンをフローチャートにより示した図27を参照して説明すると、CPU71は各気筒の排気行程中における噴射開始時期が到来する毎に(即ち、#inj気筒の噴射開始時期が到来する毎に)、各気筒毎に同図27に示したルーチンを実行するようになっている。
従って、特定の(任意の)気筒(#inj気筒)の噴射開始時期が到来すると、CPU71はステップ2700から処理を開始し、ステップ2705に進んで、現時点でのエンジン回転速度NEを噴射開始時エンジン回転速度NE#injとして格納し、続くステップ2710にて、同噴射開始時エンジン回転速度NE#injと、図21のステップ2054にて求められている#inj気筒(即ち、上記特定気筒)の吸気弁閉時における予測エンジン回転速度NEfwdとの平均値である平均エンジン回転速度NEaveを求める。
次に、CPU71はステップ2715に進み、上記平均エンジン回転速度NEaveと、図23のステップ2350にて求められている最新の#inj気筒の吸気弁閉時における予測吸入空気量KLfwdと、現時点での進角量VVTと、テーブルMappとに基づいて残留率pを求める。続いて、CPU71はステップ2720に進んで、ステップ2715と同様にして付着率rを求める。
次いで、CPU71はステップ2725に進んで、上記最新の予測吸入空気量KLfwdを、図示しないルーチンにて別途定められている目標空燃比AbyFrefで除することにより特定気筒の予測必要燃料量fc(k)を求める。係る手段が予測必要燃料量算出手段A71に相当する。
続いて、CPU71はステップ2730に進み、燃料挙動逆モデルA72を表す上記(31)式と、上記特定気筒の予測必要燃料量fc(k)と、上記求めた残留率p及び付着率rと、前回の本ルーチン実行時における後述するステップ2740にて格納された燃料付着量fw(k)とに基づいて、特定気筒の今回の燃料噴射量fi(k)を求める。
次に、CPU71はステップ2735に進んで、燃料付着モデルを表す上記(29)式と、上記求めた残留率p及び付着率rと、前回の本ルーチン実行時における後述するステップ2740にて格納された燃料付着量fw(k)とに基づいて、特定気筒の次回の燃料付着量fw(k+1)を求め、続くステップ2740にて、次回の計算の準備のため、同求めた特定気筒の次回の燃料付着量fw(K+1)を今回の燃料付着量fw(k)として格納しておく。
次いで、CPU71はステップ2745に進んで、特定気筒(即ち、#inj気筒)のインジェクタ39に対して上記求めた燃料噴射量fi(k)の燃料の噴射を指示する。これにより、燃料噴射量fi(k)に応じた量の燃料が特定気筒のインジェクタ39から噴射される。そして、CPU71はステップ2750に進み、上記求めた特定気筒(即ち、#inj気筒)の予測必要燃料量fc(k)の値を、同特定気筒(即ち、現時点で#inj気筒となっている気筒)についての前回の筒内流入燃料量mf#inj(k-1)として格納した後、ステップ2795に進んで本ルーチンを一旦終了する。
今回格納された上記前回の筒内流入燃料量mf#inj(k-1)の値は、その後において各気筒の膨張行程終了時点が終了する毎(即ち、#inj気筒となる気筒が変更される毎)に順次、図21のステップ2052における#(inj+3)気筒についての前回の筒内流入燃料量mf#(inj+3)(k-1)、ステップ2036における#(inj+2)気筒についての前回の筒内流入燃料量mf#(inj+2)(k-1)、ステップ2034における#(inj+1)気筒についての前回の筒内流入燃料量mf#(inj+1)(k-1)、図20のステップ2032における#inj気筒についての前回の筒内流入燃料量mf#inj(k-1)として使用されていくことになる。
以上、説明したように、本発明による内燃機関の制御装置を含んだ燃料噴射量制御装置の上記第1実施形態によれば、各気筒の膨張行程終了時点(排気行程開始時点。予測時点)が到来する毎(例えば、図3において、クランク角度CA1,CA2,CA3,CA5)に、排気行程に移行した気筒である#inj気筒のその後の吸気弁閉時における予測エンジン回転速度NEfwdを順次予測していく。この予測エンジン回転速度NEfwdの推定は、既に実行された#inj気筒の膨張行程における機関の実際の平均実図示トルクTi#inj(従って、図示熱効率η#inj)に基づいて予測され得る#(inj+1)気筒、及び#(inj+2)気筒の各膨張行程における平均予測図示トルクTi#(inj+1),及びTi#(inj+2)をそれぞれ利用することで行う。
また、#inj気筒の排気行程開始時点(予測時点)よりも後であって#inj気筒の吸気弁閉時よりも前の時点(算出時点)にて、既に予測されている#inj気筒の吸気弁閉時におけるエンジン回転速度NEfwdが考慮されて、#inj気筒の吸気弁閉時における予測吸入空気量KLfwd(具体的には、予測吸入空気量KLfwdを求めるために必要な比例係数a、及び既燃ガス量b)、及び燃料付着量fw(具体的には、燃料付着量fwを求めるために必要な残留率p、及び付着率r)が算出される。
そして、係る予測吸入空気量KLfwd、及び燃料付着量fwに基づいて#inj気筒についての今回の燃料噴射量fi(k)が計算される。従って、機関の始動直後、レーシング(空ぶかし)等、エンジン回転速度NEが急変して現時点(即ち、算出時点)でのエンジン回転速度がその後の吸気弁閉時における上記予測エンジン回転速度NEfwdと大きく異なる場合であっても、吸気弁閉時における機関の回転速度に大きく依存する値である予測吸入空気量KLfwd、燃料付着量fwの値が精度良く算出され得る。この結果、エンジン回転速度NEが急変する場合であっても、機関に吸入される混合気の空燃比を精度良く目標空燃比AbyFrefに維持することができる。
本発明は上記第1実施形態に限定されることはなく、本発明の範囲内において種々の変形例を採用することができる。例えば、上記第1実施形態においては、図20のステップ2032における#inj気筒についての前回の筒内流入燃料量mf#inj(k-1)、並びに、図21のステップ2034における#(inj+1)気筒についての前回の筒内流入燃料量mf#(inj+1)(k-1)、ステップ2036における#(inj+2)気筒についての前回の筒内流入燃料量mf#(inj+2)(k-1)、ステップ2052における#(inj+3)気筒についての前回の筒内流入燃料量mf#(inj+3)(k-1)として、予測必要燃料量算出手段A71が算出した各気筒についての予測必要燃料量fc(k)が使用されているが、燃料挙動逆モデルA72が算出した各気筒についての燃料噴射量fi(k)が使用されてもよい。
また、上記第1実施形態においては、#inj気筒の膨張行程における機関の熱効率η#inj等を算出する際に使用される燃料の低発熱量Huが一般的な燃料についての値(一定値)として扱われているが、燃料の性状を取得する燃料性状取得手段により燃料の低発熱量Huを取得し、同取得した燃料の低発熱量Huを使用して#inj気筒の膨張行程における機関の熱効率η#inj等を算出するように構成してもよい。
この場合、燃料性状取得手段は、燃料の性状として、例えば、機関が始動する際のエンジン回転速度の上昇勾配等を取得し、係る上昇勾配等から燃料の低発熱量Huを推定するように構成されることが好適である。
また、上記第1実施形態においては、#inj気筒の排気行程開始時点(即ち、予測時点)が、機関の始動後における最初の燃焼に係わる膨張行程の終了時点(例えば、図3に示した例では、クランク角度CA1)よりも前の時点となる場合、同予測時点の直前において実行された#inj気筒の膨張行程において燃焼(着火)が未だ発生していない。従って、予測時点の直前の#inj気筒の膨張行程における機関の図示熱効率η#injを算出することができず、この結果、他の気筒の膨張行程における機関の予測図示トルクを予測することができない。
このような場合、inj気筒の膨張行程における機関の図示熱効率η#injとして予め設定されている所定の図示熱効率ηrefを使用して他の気筒の膨張行程における機関の予測図示トルクを予測するように構成されることが好適である。ここで、所定の図示熱効率ηrefは、例えば、機関の始動後における最初の燃焼に係わる膨張行程以降の幾つかの各膨張行程における機関の図示熱効率を実験等を通して予め調査することで取得することができる。
例えば、図3に示した例においては、予測時点がクランク角度CAaに相当する時点であって同予測時点にて#inj気筒となった#4気筒の吸気弁閉時における予測エンジン回転速度NEfwdを予測する場合、#(inj+2)気筒である#1気筒の膨張行程(図3において、Aに対応する。)における機関の平均予測図示トルクTi#1は、筒内流入燃料量mf#1と上記図示熱効率ηrefと、上記(6)式に相当する式とにより予測することができる。
そして、予測時点(即ち、クランク角度CAa)でのエンジン回転速度と、上記平均予測図示トルクTi#1とに基づいて、#(inj+2)気筒である#1気筒の膨張行程終了時点でのエンジン回転速度NEbdc#1(即ち、クランク角度CA1でのエンジン回転速度)を予測することができる。従って、この予測されたエンジン回転速度NEbdc#1と、上記(10)式から得られる補正量ΔNEとにより、#inj気筒である#4気筒の吸気弁閉時における予測エンジン回転速度NEfwdを求めることができる。
同様に、例えば、図3に示した例において、予測時点がクランク角度CA0に相当する時点であって同予測時点にて#inj気筒となった#2気筒の吸気弁閉時における予測エンジン回転速度NEfwdを予測する場合、#(inj+1)気筒である#1気筒の膨張行程(図3において、Aに対応する。)における機関の平均予測図示トルクTi#1は、筒内流入燃料量mf#1と上記図示熱効率ηrefと、上記(5)式に相当する式とにより予測することができる。同様に、#(inj+2)気筒である#3気筒の膨張行程(図3において、Bに対応する。)における機関の平均予測図示トルクTi#3は、筒内流入燃料量mf#3と上記図示熱効率ηrefと、上記(6)式に相当する式とにより予測することができる。
そして、予測時点(即ち、クランク角度CA0)でのエンジン回転速度と、上記平均予測図示トルクTi#1と、上記平均予測図示トルクTi#3とに基づいて、#(inj+2)気筒である#3気筒の膨張行程終了時点でのエンジン回転速度NEbdc#3(即ち、クランク角度CA2でのエンジン回転速度)を予測することができる。従って、この予測されたエンジン回転速度NEbdc#3と、上記(10)式から得られる補正量ΔNEとにより、#inj気筒である#2気筒の吸気弁閉時における予測エンジン回転速度NEfwdを求めることができる。
また、上記第1実施形態においては、#inj気筒の噴射開始時期が#inj気筒の(吸気行程の前の)排気行程中の所定の時点に設定されているため、#(inj+1)気筒と、#(inj+2)気筒の2つの平均予測図示トルクTi#(inj+1),
Ti#(inj+2)を使用して#inj気筒の吸気弁閉時におけるエンジン回転速度NEfwdを予測しなければならない。従って、エンジン回転速度NEfwdを予測するために必要な予測図示トルク値が複数となるから、特に急激な過渡運転状態等において、予測されるエンジン回転速度NEfwdの推定誤差が大きくなる可能性がある。よって、予測吸入空気量KLfwd等の計算誤差が大きくなり、この結果、機関に吸入される混合気の空燃比が乱れる可能性がある。
以上のことから、機関に供給される混合気の空燃比を高精度に制御する必要がある場合等においては、#inj気筒の噴射開始時期を#inj気筒の吸気行程中の所定の時点に設定することが好適である。これにより、#inj気筒の吸気行程開始時点(即ち、#(inj+1)気筒の膨張行程終了時点。予測時点)にて、同時点における実際のエンジン回転速度NEbdc#(inj+1)と、#(inj+2)気筒の膨張行程における機関の平均予測図示トルクTi#(inj+2)とを使用して#inj気筒の吸気弁閉時におけるエンジン回転速度NEfwdを予測することができる。
これにより、エンジン回転速度NEfwdを予測するために必要な予測図示トルク値が一つとなるから、予測されるエンジン回転速度NEfwdの推定誤差が小さくなる。この結果、予測吸入空気量KLfwd等の計算誤差が小さくなって機関に吸入される混合気の空燃比がより一層精度良く目標空燃比に維持され得る。
なお、この場合、#(inj+2)気筒の膨張行程における機関の平均予測図示トルクTi#(inj+2)を予測するにあたり、上記第1実施形態と同様に既に実行された#inj気筒の膨張行程における機関の平均実図示トルク(従って、図示熱効率)を利用してもよいし、既に実行された#(inj+1)気筒の膨張行程における機関の平均実図示トルク(従って、図示熱効率)を利用してもよい。
また、上記第1実施形態においては、#(inj+2)気筒の膨張行程終了時点におけるエンジン回転速度NEbdc#(inj+2)と、#inj気筒の吸気行程終了時点と#inj気筒の吸気弁閉時との間のクランク角度差ΔCAlateに応じた補正量ΔNEとに基づいて、#inj気筒の吸気弁閉時における予測エンジン回転速度NEfwdを予測するように構成されているが(上記(11)式を参照。)、機関が所定の運転状態(例えば、機関の始動直後等)にある場合のみ、NE予測モデルA1により予測エンジン回転速度NEfwdを予測するように構成するとともに、機関が上記所定の運転状態にある期間中において、#inj気筒の吸気弁閉時が#(inj+2)気筒の膨張行程終了時点(即ち、#inj気筒の吸気行程終了時点)と一致するように#inj気筒の吸気弁32の進角量VVTを制御するように構成してもよい。
これにより、#(inj+2)気筒の膨張行程終了時点におけるエンジン回転速度NEbdc#(inj+2)そのものを予測エンジン回転速度NEfwdとすることができるから、同予測エンジン回転速度NEfwdの推定において上記補正量ΔNEの推定誤差の影響を排除することができる。従って、予測エンジン回転速度NEfwdの推定誤差が小さくなるから、予測吸入空気量KLfwd等の計算誤差が小さくなって機関に吸入される混合気の空燃比がより一層精度良く目標空燃比に維持され得る。
また、上記第1実施形態においては、#inj気筒の膨張行程における機関の平均実図示トルクTi#inj(実図示トルク関連量)を上記(1)式に基づく計算により取得しているが、筒内圧力を検出可能な筒内圧力センサが総ての気筒に対してそれぞれ設けられている場合、#inj気筒の膨張行程中における各筒内圧力センサの出力に基づいて#inj気筒の膨張行程における機関の実図示トルク関連量(具体的には、実際の図示仕事Wi#inj)を取得するように構成してもよい。
以下、図28に示したように、予測時点がクランク角度CA=3πに相当する時点であって同予測時点にて#inj気筒となった#1気筒の吸気弁閉時における予測エンジン回転速度NEfwdを予測する場合を例にとって説明する。この場合、#inj気筒である#1気筒の膨張行程(クランク角度CA:2π〜3π)における機関の図示仕事Wi#inj(即ち、図示仕事Wi#1)は、同膨張行程における各気筒の仕事の和であるから、下記(32)式に従って取得することができる。
上記(32)式において、Wi#1exp, Wi#3com,
Wi#4in, Wi#2out はそれぞれ、#inj気筒である#1気筒の膨張行程(クランク角度CA:2π〜3π)における、#1気筒の膨張行程における仕事、#(inj+1)気筒である#3気筒の圧縮行程における仕事、#(inj+2)気筒である#4気筒の吸気行程における仕事、#(inj+3)気筒である#2気筒の排気行程における仕事である(図28に示した太枠を参照。)。
P#1(CA),P#2(CA),P#3(CA),P#4(CA)は、各気筒の筒内圧力センサの出力からそれぞれ取得される実際の各筒内圧力(のクランク角度CAに対する変化の経緯)である。また、dV#1(CA)/dCA,
dV#2(CA)/dCA, dV#3(CA)/dCA, dV#4(CA)/dCAは、機関の設計諸元から予め決定される各気筒の筒内容積のクランク角度CAに対する変化率(クランク角度CAの関数)であり、ROM72内に予め記憶されているクランク角度CAを引数とする所定のテーブルから取得される。
上述のように、上記(32)式に従って、機関の図示仕事Wi#inj、即ち、図示仕事Wi#1が取得されると、#inj気筒である#1気筒の膨張行程(クランク角度CA:2π〜3π)における機関の図示熱効率η#inj(即ち、図示熱効率η#1)は、上記(3)式に代わりに下記(33)式に従って取得することができる。
図示熱効率η#1が取得できると、上記第1実施形態と同様、上記(5)式、及び(6)式に従って、#(inj+1)気筒である#3気筒の膨張行程(クランク角度CA:3π〜4π)における機関の平均予測図示トルクTi#3、及び、#(inj+2)気筒である#4気筒の膨張行程(クランク角度CA:4π〜5π)における機関の平均予測図示トルクTi#4をそれぞれ予測することができる。
以上、筒内圧力センサが総ての気筒に対してそれぞれ設けられている場合における#inj気筒の膨張行程における機関の実図示トルク関連量(具体的には、実際の図示仕事Wi#inj)の取得方法について説明した。これに対し、複数気筒のうち一部の気筒にのみ筒内圧力センサが設けられている場合、#inj気筒が筒内圧力センサが設けられていない気筒に対応するときは上記第1実施形態と同様に上記(1)式に基づく計算により#inj気筒の膨張行程における機関の実図示トルク関連量を取得するとともに、#inj気筒が筒内圧力センサが設けられている気筒に対応するときは、#inj気筒の膨張行程を含む#inj気筒の一燃焼サイクル中における#inj気筒の筒内圧力センサの出力に基づいて#inj気筒の膨張行程における機関の実図示トルク関連量(具体的には、実際の図示仕事Wi#inj)を取得するように構成してもよい。
以下、少なくとも#1気筒に筒内圧力センサが設けられていて、図29に示したように、予測時点がクランク角度CA=3πに相当する時点であって同予測時点にて#inj気筒となった#1気筒の吸気弁閉時における予測エンジン回転速度NEfwdを予測する場合を例にとって説明する。
特定気筒の膨張行程中における各気筒の仕事の和(即ち、同特定気筒の膨張行程における機関の図示仕事)は、同特定気筒の膨張行程を含む同特定気筒の一燃焼サイクル中(吸気行程開始から排気行程終了までの間)における同特定気筒の各行程における仕事の和と略等しいと考えることができる。従って、この場合、#inj気筒である#1気筒の膨張行程(クランク角度CA:2π〜3π)における機関の図示仕事Wi#inj(即ち、図示仕事Wi#1)は、下記(34)式に従って取得することができる。
上記(34)式において、Wi#1in, Wi#1com,
Wi#1exp, Wi#1out はそれぞれ、#inj気筒である#1気筒の吸気行程(クランク角度CA:0〜π)における仕事、#1気筒の圧縮行程(クランク角度CA:π〜2π)における仕事、#1気筒の膨張行程(クランク角度CA:2π〜3π)における仕事、#1気筒の排気行程(クランク角度CA:3π〜4π)における仕事である(図29に示した太枠を参照。)。
また、上記(34)式において、P#1(CA),dV#1(CA)/dCAは、上記(32)式のものと同様、#1気筒の筒内圧力センサの出力から取得される実際の#1気筒の筒内圧力(のクランク角度CAに対する変化の経緯)、#1気筒の筒内容積のクランク角度CAに対する変化率(クランク角度CAの関数)である。
ここで、予測時点(即ち、現時点)はクランク角度CA=3πに相当する時点であるから、#1気筒の排気行程(クランク角度CA:3π〜4π)における筒内圧力P#1(CA)を現時点で取得することはできない。他方、一般に、排気行程中における筒内圧力は、同排気行程の開始時点での筒内圧力、或いは大気圧に略等しいと考えることができる。従って、ここでは、#1気筒の筒内圧力センサから得られる現時点での#1気筒の筒内圧力P#1(3π)、或いは大気圧センサ63から得られる現時点での大気圧Paを、上記(34)式における筒内圧力P#1(CA)(CA:3π〜4π)として使用する。
上述のように、上記(34)式に従って、機関の図示仕事Wi#inj、即ち、図示仕事Wi#1が取得されると、#inj気筒である#1気筒の膨張行程(クランク角度CA:2π〜3π)における機関の図示熱効率η#inj(即ち、図示熱効率η#1)は、上記(3)式に代わりに上記(33)式に従って取得することができ、図示熱効率η#1が取得できると、上記(5)式、及び(6)式に従って、#(inj+1)気筒である#3気筒の膨張行程(クランク角度CA:3π〜4π)における機関の平均予測図示トルクTi#3、及び、#(inj+2)気筒である#4気筒の膨張行程(クランク角度CA:4π〜5π)における機関の平均予測図示トルクTi#4をそれぞれ予測することができる。
(第2実施形態)
次に、本発明による第2実施形態に係る制御装置(燃料噴射量制御装置)について説明する。この燃料噴射量制御装置は、#inj気筒の吸気弁閉時における予測エンジン回転速度NEfwdを取得する手法においてのみ第1実施形態に係る燃料噴射量制御装置と異なっている。従って、以下、係る相違点についてのみ説明する。
この装置は、図30に示したように、機関の始動直後の所定の短期間内における基準エンジン回転速度NEref(従って、基準エンジン回転角速度ωref)の変化の経緯を、所定の時点からの延べクランク角度(以下、「絶対クランク角度CAabs」と称呼する。)の関数funcωref(CAabs)としてROM72に予め記憶している。係る基準エンジン回転角速度ωrefの変化の経緯は、機関を実際に複数回始動させることにより得られる始動直後のエンジン回転角速度ωに係わる複数のデータの平均値を求めること等により予め取得され得る。
従って、機関の始動直後の所定の短期間内において、原則的には、#inj気筒の吸気弁閉時における絶対クランク角度CAabsfwdと、関数funcωrefとに基づいて同吸気弁閉時における予測エンジン回転角速度ωfwd(従って、予測エンジン回転速度NEfwd)が同吸気弁閉時よりも前の時点にて値funcωref(CAabsfwd)として予測され得る。
しかしながら、機関の始動直後の実際のエンジン回転角速度ωの変化の経緯が始動毎に毎回、上記基準エンジン回転角速度ωrefの変化の経緯と完全に一致することはないから、実際のエンジン回転角速度ωと上記基準エンジン回転角速度ωrefとの誤差を補償する必要がある。
そこで、この装置は、上記誤差を補償するための補正係数を求める関数gain(x)を導入する。以下、この関数gain(x)の求め方について図30を参照しながら説明する。図30に示したように、現時点(今回のNE予測時点。即ち、現時点で新たに#inj気筒となった気筒の排気行程開始時点)での絶対クランク角度CAabsを今回予測時絶対クランク角度CAabsnowとし、現時点での実際のエンジン回転角速度を今回予測時エンジン回転角速度ωnowとし、前回のNE予測時点(即ち、現時点の直前まで#inj気筒であった気筒の排気行程開始時点)での絶対クランク角度CAabsを前回予測時絶対クランク角度CAabsbとし、前回のNE予測時点での実際のエンジン回転角速度を前回予測時エンジン回転角速度ωnowbとする。
また、今回予測時比率ratioを下記(35)にて定義し、前回予測時比率ratiobを下記(36)式にて定義する。下記(35)式において、ωrefは現時点(今回のNE予測時点)での基準エンジン回転角速度である。また、下記(36)式において、ωrefbは前回のNE予測時点での基準エンジン回転角速度である。
ratio=ωnow / ωref ・・・(35)
ratiob=ωnowb / ωrefb ・・・(36)
この場合、関数gain(x)は、その引数である変数x=CAabsbであるときに上記前回予測時比率ratiobの値を採り、且つ、変数x=CAabsnowであるときに上記今回予測時比率ratioの値を採る直線(即ち、変数xについての一次関数)として、現時点(今回のNE予測時点)にて、下記(37)式に従って求められる。即ち、関数gain(x)は、NE予測時点が新たに到来する毎(従って、絶対クランク角度CAabsが180°だけ増加する毎)に、新たに求められる今回予測時比率ratioと、新たに求められる前回予測時比率ratiobとに基づいて順次更新されていく。
上述のように、今回のNE予測時点(現時点)にて関数gain(x)が求められると、関数gain(x)において変数xを#inj気筒の吸気弁閉時における絶対クランク角度CAabsfwdと置くことで得られる値gain(CAabsfwd)は、同吸気弁閉時における基準エンジン回転角速度である値funcωref(CAabsfwd)に対する同吸気弁閉時における将来の実際のエンジン回転角速度の比率を精度良く表す値となり得る。換言すれば、値gain(CAabsfwd)は、実際のエンジン回転角速度ωと上記基準エンジン回転角速度ωrefとの誤差を補償するための#inj気筒の吸気弁閉時における補正係数となり得る。
そこで、この装置は、今回のNE予測時点(現時点)にて、#inj気筒の吸気弁閉時における絶対クランク角度CAabsfwdの値を用いて、値funcωref(CAabsfwd)に上記求めた値gain(CAabsfwd)を乗じた値「funcωref(CAabsfwd)・gain(CAabsfwd)」を#inj気筒の吸気弁閉時におけるエンジン回転角速度ωfwd(従って、エンジン回転速度NEfwd)として予測・推定する。
(第2実施形態の実際の作動)
次に、第2実施形態に係る制御装置(燃料噴射量制御装置)の実際の作動について説明する。この装置のCPU71は、第1実施形態のCPU71が実行する図20、及び図21に示したルーチンに代えて、図31にフローチャートにより示したルーチンを実行することで#inj気筒の吸気弁閉時における予測エンジン回転速度NEfwdを求める。以下、第2実施形態に特有のルーチンである図31のルーチンについてのみ説明する。
CPU71は、図31のルーチンを演算周期Δt(ここでは、8msec)の経過毎に実行することにより、上記NE予測モデルA1の機能を達成する。具体的に述べると、CPU71は所定のタイミングにてステップ3100から処理を開始し、ステップ3105に進んで、特定気筒の状態が膨張行程から排気行程に移行したか否か(排気行程開始時点が到来したか否か)を判定し、「No」と判定する場合、ステップ3195に直ちに進んで本ルーチンを一旦終了する。以降、特定気筒の排気行程開始時点が到来するまで、CPU71はステップ3100、3105、3195の処理を繰り返し実行する。
次に、この状態にて特定気筒の排気行程開始時点が到来したものとすると、CPU71はステップ3105に進んだとき「Yes」と判定してステップ3110に進むようになり、同ステップ3110にて現時点(即ち、今回のNE予測時点)での絶対クランク角度CAabsの値を今回予測時絶対クランク角度CAabsnowとして格納する。
次に、CPU71はステップ3115に進み、現時点でのエンジン回転速度NEに相当するエンジン回転角速度ωを今回予測時エンジン回転角速度ωnowとして格納する。続いて、CPU71はステップ3120に進んで、ROM72に記憶されている関数funcωrefと、上記今回予測時絶対クランク角度CAabsnowとに基づいて得られる値funcωref(CAabsnow)を現時点での基準エンジン回転角速度ωrefとして格納する。
次いで、CPU71はステップ3125に進み、上記今回予測時エンジン回転角速度ωnowを上記現時点での基準エンジン回転角速度ωrefで除した値を今回予測時比率ratioとして格納し、続くステップ3130にて、上記今回予測時比率ratioと、上記今回予測時絶対クランク角度CAabsnowと、前回の本ルーチン実行時における後述するステップ3165にて格納されている前回予測時比率ratiob及び前回予測時絶対クランク角度CAabsbと、上記(37)式とに基づいて関数gain(x)を求める(更新する)。
次に、CPU71はステップ3135に進み、上記更新された関数gain(x)の引数xを現時点で新たに#inj気筒となった気筒の吸気弁閉時における絶対クランク角度CAabsfwdとしたときに得られる関数値(即ち、#inj気筒の吸気弁閉時における補正係数を表す値)gain(CAabsfwd)が所定の下限値lowerlimit以上であって所定の上限値upperlimit以下であるか否かを判定し、「Yes」と判定する場合、ステップ3155に直ちに進む。
一方、CPU71はステップ3135にて「No」と判定する場合、ステップ3140に進んで、上記関数値gain(CAabsfwd)が上限値upperlimitよりも大きいか否かを判定し、「Yes」と判定する場合、続くステップ3145にて同上限値upperlimitを同関数値gain(CAabsfwd)として再設定する。他方、CPU71はステップ3140にて「No」と判定する場合、ステップ3150に進んで下限値lowerlimitを関数値gain(CAabsfwd)として再設定する。換言すれば、関数値gain(CAabsfwd)は、上限値upperlimitを超えた場合には同上限値upperlimitに、下限値lowerlimitを下回った場合には同下限値lowerlimitに制限される。
CPU71はステップ3155に進むと、関数funcωrefと、上記吸気弁閉時における絶対クランク角度CAabsfwdとに基づいて得られる同吸気弁閉時における基準エンジン回転角速度funcωref(CAabsfwd)の値に、上記関数値gain(CAabsfwd)を乗じた値を同吸気弁閉時における予測エンジン回転角速度ωfwdとして決定する。
続いて、CPU71はステップ3160に進み、上記吸気弁閉時における予測エンジン回転角速度ωfwdに相当する予測エンジン回転速度NEfwdを求め、続くステップ3165にて、次回の計算の準備として、上記求めた今回予測時比率ratioを前回予測時比率ratiobとして格納するとともに、上記今回予測時絶対クランク角度CAabsnowを前回予測時絶対クランク角度CAabsbとして格納した後、ステップ3195に進んで本ルーチンを一旦終了する。
以降、CPU71は、次の排気行程開始時点が到来するまでの間、ステップ3100、3105、3195の処理を繰り返し実行する。このようにして、各気筒の排気行程開始時点が到来する毎に、新たに#inj気筒となった気筒の吸気弁閉時における新たなエンジン回転速度NEfwdが順次計算されていく。なお、このルーチンは、機関の始動直後の所定の短期間内においてのみ実行される。
以上、説明したように、本発明による内燃機関の制御装置を含んだ燃料噴射量制御装置の第2実施形態によれば、機関の始動直後の所定の短期間内における基準エンジン回転速度NEref(従って、基準エンジン回転角速度ωref)の変化の経緯を表す予め取得されている関数funcωref(CAabs)と、機関の実際のエンジン回転速度NEと基準エンジン回転速度NErefとの誤差を補償するための関数gain(x)とに基づいて、現時点(予測時点)よりも後の時点である#inj気筒の吸気弁閉時における予測エンジン回転速度NEfwdを精度良く予測することができる。
本発明は上記第2実施形態に限定されることはなく、本発明の範囲内において種々の変形例を採用することができる。例えば、上記第2実施形態においては、上記関数funcωref(CAabs)と、上記関数gain(x)とを利用することで予測吸入空気量KLfwdを求めるために必要な遅延時間tfwdを第1実施形態よりも精度良く求めることができる。
より具体的に述べると、上記第1実施形態においては、遅延時間tfwdは、クランク角度CAの関数であるエンジン回転角速度ωの逆数である値(1/ω)を、現時点(算出時点)でのクランク角度CA0(絶対クランク角度CAabs0)から吸気弁閉時のクランク角度(CAabs0+ΔCAivc)までについて、クランク角度CAで定積分した値に相当することを利用し、且つ、係る定積分した値が図12に斜線で示した台形の面積として近似できることを利用して、図24に示したルーチンのステップ2430にて、同台形の面積を求めることで遅延時間tfwdを求めている。
これに対し、上記第2実施形態においては、図32に示したように、絶対クランク角度CAabsの関数であるエンジン回転角速度ωの逆数である値(1/ω)を、関数funcωref(CAabs)と現時点における最新の関数gain(x)とを用いて絶対クランク角度CAabsの連続的な関数値「1/{funcωref(CAabs)・gain(CAabs)}」として求める。そして、係る絶対クランク角度CAabsの関数値「1/{funcωref(CAabs)・gain(CAabs)}」を、現時点での絶対クランク角度CAabs0から吸気弁閉時のクランク角度(CAabs0+ΔCAivc)までについて、絶対クランク角度CAabsで定積分した値を遅延時間tfwdとして求めるように構成してもよい(図32において斜線で示した面積を参照)。これによると、第1実施形態のように、定積分した値を台形の面積で近似することなく遅延時間tfwdがより一層精度良く求められる。
同様に、上記第2実施形態においては、上記関数funcωref(CAabs)と、上記関数gain(x)とを利用することで、燃料付着量fw(具体的には、残留率p、及び付着率r)を求めるために必要な現時点(噴射開始時期)から#inj気筒の吸気弁閉時までのエンジン回転速度NEの平均値NEaveを第1実施形態よりも精度良く求めることができる。
より具体的に述べると、上記第1実施形態においては、図27に示したルーチンのステップ2710にて、上記エンジン回転速度NEの平均値NEaveを、現時点(噴射開始時期)でのエンジン回転速度NEinjと、#inj気筒の吸気弁閉時における予測エンジン回転速度NEfwdとの2つの値の平均値として求めている。
これに対し、上記第2実施形態においては、図33に示したように、絶対クランク角度CAabsの関数であるエンジン回転角速度ωを、関数funcωref(CAabs)と現時点における最新の関数gain(x)とを用いて絶対クランク角度CAabsの連続的な関数値「funcωref(CAabs)・gain(CAabs)」として求める。そして、係る絶対クランク角度CAabsの関数値「funcωref(CAabs)・gain(CAabs)」を、現時点(噴射開始時期)での絶対クランク角度CAabs1から#inj気筒の吸気弁閉時のクランク角度(CAabs1+ΔCA1)までについて、絶対クランク角度CAabsで定積分した値を積分値sumωとして求める(図33において斜線で示した面積を参照)。
そして、この積分値sumωを現時点での絶対クランク角度と#inj気筒の吸気弁閉時の絶対クランク角度とのクランク角度差ΔCA1で除した値を上記エンジン回転速度NEの平均値NEaveに相当するエンジン回転角速度として求めることで、同エンジン回転速度NEの平均値NEaveを求めるように構成してもよい。
また、上記第2実施形態においては、機関の実際のエンジン回転速度NEと基準エンジン回転速度NErefとの誤差を補償するための関数gain(x)を、今回予測時比率ratioと、前回予測時比率ratiobとに基づいて変数xの一次関数として求めているが、前回よりも更に前の過去の比率をも利用して多項式近似関数、指数関数等として求めるように構成してもよい。
(第3実施形態)
次に、本発明による第3実施形態に係る制御装置(燃料噴射量制御装置)について説明する。この燃料噴射量制御装置は、特定の過渡運転状態においてのみ#inj気筒の吸気弁閉時における予測エンジン回転速度NEfwdを考慮して予測吸入空気量KLfwd、及び燃料付着量fwを算出し、同特定の過渡運転状態以外の状態では予測エンジン回転速度NEfwdを考慮することなく現時点(算出時点)でのエンジン回転速度NEに基づいて予測吸入空気量KLfwd、及び燃料付着量fwを算出する点においてのみ、第1実施形態に係る燃料噴射量制御装置と異なっている。従って、以下、係る相違点についてのみ説明する。
この装置は、特定の過渡運転状態として、エンジン回転速度NEが急増していく代表的な場合である「機関の始動直後」、及び「空ぶかし時」を想定している。そして、この装置は、予測エンジン回転速度NEfwdを考慮して予測吸入空気量KLfwd等を算出するための条件(以下、「算出条件」と呼ぶ。具体的には、算出開始条件と算出終了条件)を、「機関の始動直後」、及び「空ぶかし時」についてそれぞれ設定している。「算出条件が成立していると判定されている場合」とは、算出開始条件が成立してから算出終了条件が成立するまでの期間に対応する。
(第3実施形態の実際の作動)
以下、第3実施形態に係る制御装置(燃料噴射量制御装置)の実際の作動について説明する。この装置のCPU71は、第1実施形態のCPU71が実行する図20〜図27に示したルーチンのうち、図20〜図22のルーチンを、図示しないイグニッションがOFF状態からON状態へと移行した時点以降、所定のタイミング毎に実行する。
この装置のCPU71は、イグニッションがOFF状態からON状態へと移行した時点以降、「算出条件が成立していると判定されている場合」、予測エンジン回転速度NEfwdを考慮して予測吸入空気量KLfwd等を算出していくために図23〜図27を所定のタイミング毎に実行する。一方、この装置のCPU71は、「算出条件が成立していないと判定されている場合」、現時点(算出時点)でのエンジン回転速度NEに基づいて予測吸入空気量KLfwd等を算出していくために図23〜図27に代えて、図23〜図27にそれぞれ対応する図36〜図40に示したルーチンを所定のタイミング毎に実行する。
更には、この装置のCPU71は、図34、及び図35に示したルーチンを追加的に実行することで上記「算出条件」が成立しているか否かを判定する。以下、第3実施形態に特有のルーチンである図34〜図40のルーチンについてのみ説明する。なお、イグニッションがOFF状態からON状態へと移行した時点において、CPU71の演算に使用される初期値設定の必要な各変数にはそれぞれ適切な初期値が設定される。
CPU71は、図34のルーチンを演算周期Δt(ここでは、8msec)の経過毎に実行することにより、上記「算出条件」が成立しているか否かを判定する。即ち、予測エンジン回転速度NEfwdと現時点でのエンジン回転速度NEのいずれを使用して予測吸入空気量KLfwd等を算出するかを選択・決定する。本ルーチンは、算出条件判定手段に対応している。
具体的に述べると、CPU71は所定のタイミングにてステップ3400から処理を開始し、ステップ3402に進んで、イグニッションがOFF状態からON状態へと移行した直後か否かを判定する。
いま、運転者がイグニッションをOFF状態からON状態へと移行した直後であるものとすると、CPU71はステップ3402にて「Yes」と判定してステップ3404に進み、NEfwd選択開始基準気筒を特定する。ここで、NEfwd選択開始基準気筒とは、機関の始動後(イグニッションの「START」指示があった後)において予測エンジン回転速度NEfwdを使用して予測吸入空気量KLfwd等を算出すべき最初の気筒である。
エンジン回転速度NEは、機関の始動後、最初の燃焼(以下、「初爆」と称呼する。)に係わる膨張行程の開始時点(図3に示した例では、クランク角度CA0)以前はスタータモータの回転速度に依存しほぼ一定で推移し、初爆に係わる膨張行程の開始時点以降において急増する。従って、初爆に係わる膨張行程の開始時点近傍(或いは、直後)にて吸気弁閉時が到来する気筒についての予測吸入空気量KLfwd等を算出するタイミング(算出時点。図3に示した例では、クランク角度CAb近傍)までは、前記「回転上昇量」が小さいから、先に述べたように、現時点(算出時点)でのエンジン回転速度NEを使用して予測吸入空気量KLfwd等を算出することが予測吸入空気量KLfwd等を精度良く算出する上で好ましい。
一方、初爆に係わる膨張行程の終了時点(図3に示した例では、クランク角度CA1)の近傍(或いは、直後)にて吸気弁閉時が到来する気筒についての予測吸入空気量KLfwd等を算出するタイミング(算出時点。図3に示した例では、クランク角度CAa近傍)からは、前記「回転上昇量」が大きくなるから、先に述べたように、予測エンジン回転速度NEfwdを使用して予測吸入空気量KLfwd等を算出することが予測吸入空気量KLfwd等を精度良く算出する上で好ましい。
以上のことから、上記「NEfwd選択開始基準気筒」は、具体的には、初爆に係わる膨張行程の終了時点(図3に示した例では、クランク角度CA1)の近傍(或いは、直後)にて吸気弁閉時が到来する気筒(図3に示した例では、#4気筒)である。
次に、CPU71は、ステップ3406に進み、フラグFWDの値を「0」に、フラグINIの値を「1」に初期化する。ここで、フラグFWDは、その値が「0」のとき「算出条件」が成立していないこと(即ち、現時点でのエンジン回転速度NEを使用して予測吸入空気量KLfwd等を算出すること)を示し、その値が「1」のとき「算出条件」が成立していること(即ち、予測エンジン回転速度NEfwdを使用して予測吸入空気量KLfwd等を算出すること)を示す。また、フラグINIは、その値が「1」のとき特定の過渡運転状態としての「機関の始動直後」が想定されていることを示し、その値が「0」のとき特定の過渡運転状態としての「空ぶかし時」が想定されていることを示す。
次いで、CPU71はステップ3408に進んで、現時点が、図20、及び図21のルーチン(具体的には、ステップ2054にて)の実行により予測エンジン回転速度NEfwdが算出(更新)された直後であるか否かを判定する。現時点は、運転者がイグニッションをOFF状態からON状態へと移行した直後であるから、図20のステップ2012にて「Yes」と判定され得ず、従って、ステップ2054が実行され得ない。即ち、CPU71はステップ3408にて「No」と判定してステップ3442に直ちに進む。
CPU71は、ステップ3442に進むと、フラグFWDの値が「0」であるか否かを判定する。現時点では先のステップ3406の実行によりフラグFWDの値が「0」となっている。即ち、「算出条件」が成立していない。この場合、CPU71はステップ3442にて「Yes」と判定してステップ3444に進む。これにより、図23〜図27のルーチンを実行することなく図36〜図40のルーチンが所定のタイミング毎に実行される。
以下、図36〜図40のルーチンについて簡単に説明する。図36〜図40のルーチンは、図23〜図27のルーチンにそれぞれ対応するものであって、図36〜図40のルーチンにおいて、対応するルーチンのステップと同一のステップについては同対応するルーチンのステップ番号と同一のステップ番号を付している。以下、図36〜図40のルーチンにおける対応するルーチンとの相違点について順に説明する。
図36のルーチンは、図23のルーチンにおいてステップ2340をステップ3605に代えたものである。ステップ3605では、#inj気筒の吸気弁閉時における予測エンジン回転速度NEfwdに代えて現時点(算出時点)でのエンジン回転速度NEを使用して予測吸入空気量KLfwdを算出するための比例係数afwd、及び既燃ガス量bfwdが求められる。
図37のルーチンは、図24のルーチンにおいてステップ2405、2410、2425を削除するとともに、ステップ2430をステップ3705に代え、ステップ2440をステップ3710に代えたものである。ステップ3705では、上記(24)式に代えて現時点(算出時点)でのエンジン回転速度NEと、ステップ2415にて求めた現時点から#inj気筒の吸気弁閉時までのクランク角度である遅延クランク角度ΔCAivcとから遅延時間tfwdが求められる。この遅延時間tfwdは、図12、及び図15に示した遅延時間tfwd’に相当する。
図38のルーチンは、図25のルーチンにおいてステップ2470〜2480を削除するとともに、ステップ2485をステップ3715に代えたものである。ステップ3715では、上記エンジン回転速度NEc(i)に代えて現時点(算出時点)でのエンジン回転速度NEを使用して予測吸入空気量KLfwdを算出するための比例係数ac(i)、及び既燃ガス量bc(i)が求められる。
図39のルーチンは、図26のルーチンにおいてステップ2605を削除するとともに、ステップ2610をステップ3905に代えたものである。ステップ3905では、上記(28)式に代えて現時点(算出時点)でのエンジン回転速度NEと、ステップ2415にて求めた「現時点から#inj気筒の吸気弁閉時までのクランク角度である遅延クランク角度ΔCAivc」からステップ2420にて求めた「現時点から#inj気筒の吸気弁開時までのクランク角度ΔCAivo」を減じた値(ΔCAivc−ΔCAivo)と、から吸気弁開弁時間Tintが求められる。
図40のルーチンは、図27のルーチンにおいてステップ2705、2710を削除するとともに、ステップ2715、2720をそれぞれステップ4005、4010に代えたものである。ステップ4005、4010では、予測エンジン回転速度NEfwdが考慮された上記平均エンジン回転速度NEaveに代えて現時点(算出時点)でのエンジン回転速度NEを使用して燃料付着量fwを算出するための残留率p、及び付着率rが求められる。
このようにして、フラグFWDの値が「0」となっている場合、即ち、「算出条件」が成立していない場合、図36〜図40に示したルーチンにより、現時点(算出時点)でのエンジン回転速度NEに基づいて(予測エンジン回転速度NEfwdが考慮されることなく)予測吸入空気量KLfwd、及び燃料付着量fwが所定のタイミング毎に計算されていく。
即ち、運転者がイグニッションをOFF状態からON状態へと移行した時点以降、先ず、現時点(算出時点)でのエンジン回転速度NEに基づいて予測吸入空気量KLfwd、及び燃料付着量fwが計算されていく。そして、CPU71はステップ3402、3408、3442、3444の処理を演算周期Δt毎に繰り返し実行する。
その後、運転者がイグニッションの「START」指示を行って機関が始動されると、特定気筒の排気行程開始時点が到来する毎に、CPU71は図20のステップ2012にて「Yes」と判定して図21のステップ2054にて予測エンジン回転速度NEfwdを算出・更新していく。
いま、イグニッションがOFF状態からON状態へと移行した時点以降、予測エンジン回転速度NEfwdが最初に算出された直後であるものとすると、図34のルーチンを繰り返し実行しているCPU71はステップ3408に進んだとき初めて「Yes」と判定して、ステップ3410に進むようになる。
CPU71はステップ3410に進むと、フラグINIの値が「1」であるか否かを判定する。現時点では、ステップ3406の処理によりフラグINIの値が「1」になっている。従って、CPU71はステップ3410にて「Yes」と判定してステップ3412に進んで、フラグFWDの値が「0」であるか否かを判定する。現時点では、ステップ3406の処理によりフラグFWDの値が「0」になっている。従って、CPU71はステップ3412でも「Yes」と判定してステップ3414に進む。
CPU71はステップ3414に進むと、現時点(NEfwd予測時点)での#inj気筒(即ち、排気行程の開始時点にある気筒)がステップ3404にて特定されたNEfwd選択開始基準気筒に対応しているか否か(図3に示した例では、現時点(NEfwd予測時点)がクランク角度CAaに対応しているか否か)を判定する。このステップ3414の条件は、「機関の始動直後」についての「算出開始条件」に対応する。
現時点は、予測エンジン回転速度NEfwdが最初に算出された直後であって#inj気筒がNEfwd選択開始基準気筒に対応していないから、CPU71はステップ3414にて「No」と判定してフラグFWDの値を「0」に維持したままステップ3442、3444へと進む。これにより、現時点(算出時点)でのエンジン回転速度NEに基づく予測吸入空気量KLfwd、及び燃料付着量fwの計算が継続される。
以降、#inj気筒がNEfwd選択開始基準気筒に対応するまでの間、図21のステップ2054にて予測エンジン回転速度NEfwdが算出・更新される毎に、ステップ3408にて「Yes」と判定されるものの、ステップ3414にて「No」と判定され続ける。この結果、フラグFWDの値が「0」に維持される。
一方、予測エンジン回転速度NEfwdが算出された直後であって#inj気筒がNEfwd選択開始基準気筒に対応するようになると(図3に示した例では、現時点(NEfwd予測時点)がクランク角度CAaに対応すると)(即ち、「機関の始動直後」についての「算出開始条件」が成立すると)、CPU71はステップ3414に進んだとき「Yes」と判定してステップ3416に進み、フラグFWDの値を「0」から「1」に変更する。
この結果、CPU71はステップ3442にて「No」と判定してステップ3446に進むようになる。これにより、所定のタイミング毎に実行されていた図36〜図40のルーチンが実行されなくなる一方で、上記第1実施形態と同様、図23〜図27のルーチンが所定のタイミング毎に実行される。
このようにして、フラグFWDの値が「1」となっている場合、即ち、「算出条件」が成立している場合、上記第1実施形態と同様、図23〜図27に示したルーチンにより、図21のステップ2054にて算出されている最新の予測エンジン回転速度NEfwdが考慮されて予測吸入空気量KLfwd、及び燃料付着量fwが所定のタイミング毎に計算されていく。
以降、フラグFWDの値が「1」となっているから、CPU71はステップ3412に進んだとき「No」と判定してステップ3418に進み、同ステップ3418を経由して図35に示した燃焼悪化判定を行うためのルーチンの処理を実行する。
即ち、CPU71はステップ3505に進むと、現時点が初爆に係わる膨張行程の終了時点(図3に示した例では、クランク角度CA1)以降となっているか否かを判定する。現時点は、#inj気筒がNEfwd選択開始基準気筒に対応するようになった直後(図3に示した例では、クランク角度CAa)であるから、CPU71はステップ3505にて「No」と判定してステップ3510に進み、フラグBADの値を「0」に設定した後、ステップ3595を経由して図34のステップ3420に戻る。
ここで、フラグBADは、その値が「0」のとき#inj気筒において悪化燃焼が発生していないことを示し、その値が「1」のとき#inj気筒において悪化燃焼が発生していることを示す。なお、以降、説明の便宜上、初爆に係わる膨張行程の終了時点以降において悪化燃焼が発生せず、従って、フラグBADの値は「0」に維持されている(ステップ3505で「Yes」と判定されても後述するステップ3520で「No」と判定される)ものとして説明を続ける。
CPU71はステップ3420に戻ると、フラグBADの値が「0」であるか否かを判定し、現時点では「Yes」と判定してステップ3422に進み、図21のステップ2054にて算出されている最新の予測エンジン回転速度NEfwdから現時点(NEfwd予測時点)でのエンジン回転速度NEを減じた値(即ち、前記「回転上昇量」)が所定回転速度C1(正の定数)未満であって、且つ同予測エンジン回転速度NEfwdが所定値C2(正の定数)より大きいか否かを判定する。このステップ3422の条件は、「機関の始動直後」についての「算出終了条件」に対応する。
現時点は、#inj気筒がNEfwd選択開始基準気筒に対応するようになった直後であって「回転上昇量」は大きいから、CPU71はステップ3422にて「No」と判定して、フラグFWDの値を「1」に維持したままステップ3442、3446へと進んで、最新の予測エンジン回転速度NEfwdが考慮された予測吸入空気量KLfwd、及び燃料付着量fwの計算が継続される。
以降、ステップ3422の条件(即ち、「機関の始動直後」についての「算出終了条件」)が成立するまでの間、ステップ3422にて「No」と判定され続ける。この結果、フラグFWDの値が「1」に維持される。
一方、所定時間が経過して、エンジン回転速度NEが上記所定値C2を超えるとともに、エンジン回転速度NEの増加速度が小さくなることで「回転上昇量」が所定回転速度C1未満となると、CPU71はステップ3422に進んだとき「Yes」と判定してステップ3424に進み、フラグFWDの値を「1」から「0」に変更し、続くステップ3426にて
フラグINIの値を「1」から「0」に変更する。
この結果、CPU71はステップ3442にて「Yes」と判定してステップ3444に再び進むようになる。これにより、現時点(算出時点)でのエンジン回転速度NEに基づく予測吸入空気量KLfwd、及び燃料付着量fwの計算が再び開始・継続される。
このようにして、フラグINIの値が「1」になっている間、即ち、「機関の始動直後」が想定されている間、機関の始動後、ステップ3414の条件(「機関の始動直後」についての「算出開始条件」)が成立するまで(即ち、「算出条件」が成立していない場合)は、現時点(算出時点)でのエンジン回転速度NEに基づく予測吸入空気量KLfwd、及び燃料付着量fwの計算が実行され、ステップ3414の条件が成立した後ステップ3422の条件(「機関の始動直後」についての「算出終了条件」)が成立するまで(即ち、「算出条件」が成立している場合)は、最新の予測エンジン回転速度NEfwdが考慮された予測吸入空気量KLfwd、及び燃料付着量fwの計算が継続される。そして、ステップ3422の条件が成立した後(即ち、「算出条件」が成立していない場合)は、現時点(算出時点)でのエンジン回転速度NEに基づく予測吸入空気量KLfwd、及び燃料付着量fwの計算が再び実行されていく。
一方、以降、フラグINIの値が「0」になっているから、CPU71はステップ3410に進んだとき「No」と判定してステップ3428以降に進むようになる。これにより、「空ぶかし時」が想定された処理が開始される。ここで、「空ぶかし時」が想定された処理を行うステップ3428〜3440は、「機関の始動直後」が想定された処理を行う先のステップ3412〜3424にそれぞれ対応している。
即ち、フラグINIの値が「0」になっている間、上述したステップ3422の条件(「機関の始動直後」についての「算出終了条件」)が成立した後、ステップ3430の条件(「空ぶかし時」についての「算出開始条件」)が成立するまで(即ち、「算出条件」が成立していない場合)は、現時点(算出時点)でのエンジン回転速度NEに基づく予測吸入空気量KLfwd、及び燃料付着量fwの計算が実行され、ステップ3430の条件が成立した後ステップ3438の条件(「空ぶかし時」についての「算出終了条件」)が成立するまで(即ち、「算出条件」が成立している場合)は、最新の予測エンジン回転速度NEfwdが考慮された予測吸入空気量KLfwd、及び燃料付着量fwの計算が継続される。そして、ステップ3438の条件が成立した後(即ち、「算出条件」が成立していない場合)は、現時点(算出時点)でのエンジン回転速度NEに基づく予測吸入空気量KLfwd、及び燃料付着量fwの計算が再び実行されていく。
ここで、ステップ3430の条件(「空ぶかし時」についての「算出開始条件」)は、運転者がアクセルペダルAPを操作して空ぶかしを行うことでスロットル弁開度TAの増加速度d(TA)/dtが所定速度C3を超えた場合に成立する。また、ステップ3438の条件(「空ぶかし時」についての「算出終了条件」)は、ステップ3422の条件(「機関の始動直後」についての「算出終了条件」)と同様、「回転上昇量」が所定回転速度C4(正の定数)未満となった場合に成立する。
以上の説明では、フラグFWDの値が「1」になっている間(即ち、「算出条件」が成立している場合)において悪化燃焼が発生しない場合が想定されていた。次に、フラグFWDの値が「1」になっている間(且つ、初爆の膨張行程終了時点以降である場合)において悪化燃焼が発生した場合について説明する。
図34のルーチンを繰り返し実行しているCPU71は、フラグFWDの値が「1」になっていることでステップ3418、又はステップ3434を経由して先に述べたように図35のルーチンを実行する。
この場合、CPU71はステップ3505にて「Yes」と判定してステップ3515に進み、図27のステップ2750の処理にて格納されている#inj気筒についての前回の筒内流入燃料量mf#inj(k-1)と、既知である#inj気筒についての前回の点火時期SA#inj(k-1)と、所定の関数或いはマップと、に従って、#inj気筒についての前回の(直前の)膨張行程における基準熱効率ηieを算出する。この基準熱効率ηieは、筒内の燃料が総て完全燃焼したとの仮定のもとで算出される熱効率である。
次いで、CPU71はステップ3520に進み、図20のステップ2032にて求められている#inj気筒についての前回の(直前の)膨張行程における図示熱効率η#injに対する上記求めた基準熱効率ηieの比率が所定値C5未満であるか否かを判定する。ここで、比率が所定値C5未満であることは#inj気筒についての前回の(直前の)膨張行程において悪化燃焼が発生したことに対応する。即ち、ステップ3520は、悪化燃焼判定手段に相当する。
ここで、#inj気筒についての前回の(直前の)膨張行程において悪化燃焼が発生していない場合、CPU71はステップ3520で「No」と判定してステップ3510に進み、フラグBADの値を「0」に設定する。一方、現時点では、上記仮定により悪化燃焼が発生しているから、CPU71はステップ3520にて「Yes」と判定してステップ3525に進んでフラグBADの値を「1」に設定する。
この場合、ステップ3595を経て図34のステップ3420、又はステップ3436に進んだCPU71は、「No」と判定してフラグFWDの値を「1」に維持したままステップ3442、3446へと進む。即ち、ステップ3422、又はステップ3438の「算出終了条件」が成立しているか否かにかかわらず(ステップ3422、又はステップ3438の判定を行うことなく)、予測エンジン回転速度NEfwdが考慮された予測吸入空気量KLfwd、及び燃料付着量fwの計算が継続される。
このようにして、#inj気筒についての前回の(直前の)膨張行程において悪化燃焼が発生した場合、フラグFWDの値が「1」に維持されることで「算出条件」が成立していないと判定することが禁止される。即ち、ステップ3420、又はステップ3436は禁止手段に相当する。
以上、説明したように、本発明による内燃機関の制御装置を含んだ燃料噴射量制御装置の第3実施形態によれば、現時点(排気行程中の或る時点、算出時点)とその後の吸気弁閉時とでエンジン回転速度NEが大きく異なることが想定されるエンジン回転速度NEが急増する特定の過渡運転状態(本例では、「機関の始動直後」、及び「空ぶかし時」)においてのみ、予測エンジン回転速度NEfwdを考慮して予測吸入空気量KLfwd等を算出するための条件である「算出条件」が成立するように構成される。
これにより、燃焼噴射量fiを算出するために使用される予測吸入空気量KLfwd、及び燃料付着量fwは、上記特定の過渡運転状態では予測エンジン回転速度NEfwd(推定値)が考慮されて算出され、同特定の過渡運転状態以外の状態(例えば、定常運転状態)では、推定誤差を含まない現時点(即ち、予測吸入空気量KLfwd、燃料付着量fwを算出する時点)におけるエンジン回転速度NE(検出値)に基づいて算出される。
従って、機関の運転状態にかかわらず「機関を制御するために使用される値」、即ち、燃料噴射量fiの算出に使用される値(KLfwd、fw)が十分に精度の良い値となり得、この結果、機関の運転状態にかかわらず機関に吸入される混合気の空燃比を精度良く目標空燃比に維持し得る。
また、機関が上記特定の過渡運転状態にあって「算出条件」が成立している場合において、悪化燃焼が発生した場合、「算出条件」が成立していないとの判定がなされることが禁止される。これにより、「算出条件」が成立していないとの判定がなされるべきでないにもかかわらず悪化燃焼の発生に起因して「算出条件」が成立していないとの誤った判定がなされることが防止される。
本発明は上記第3実施形態に限定されることはなく、本発明の範囲内において種々の変形例を採用することができる。例えば、上記第3実施形態においては、図34のステップ3422の条件(「機関の始動直後」についての「算出終了条件」)として、「回転上昇量(NEfwd−NE)が所定回転速度C1未満であって、且つ予測エンジン回転速度NEfwdが所定値C2より大きいこと」が採用されているが、「予測エンジン回転速度NEfwdが所定値C2より大きいこと」が省略されてもよい。
また、上記第3実施形態においては、図34のステップ3430の条件(「空ぶかし時」についての「算出開始条件」)として、「スロットル弁開度TAの増加速度d(TA)/dtが所定速度C3を超えること」が採用されているが、これに「変速用のシフト位置がニュートラル(N)位置になっていること」を加えてもよい。
また、図34のステップ3422の条件(「機関の始動直後」についての「算出終了条件」)における所定回転速度C1と、図34のステップ3438の条件(「空ぶかし時」についての「算出終了条件」)における所定回転速度C4とは等しい値であっても異なる値であってもよい。
また、上記第3実施形態においては、悪化燃焼の発生を判定するために使用される基準熱効率ηie(ステップ3515を参照)は、#inj気筒についての前回の筒内流入燃料量mf#inj(k-1)と、既知である#inj気筒についての前回の点火時期SA#inj(k-1)とに基づいて算出されているが、これに加えて#inj気筒についての前回の予測吸入空気量KLfwdにも基づいて算出されるように構成してもよい。
更には、本発明は上記各実施形態に限定されることはなく、本発明の範囲内において種々の変形例を採用することができる。例えば、上記各実施形態においては、各気筒の排気行程開始時点が到来する毎に、同時点にて、新たに#inj気筒となった気筒の吸気弁閉時における新たなエンジン回転速度NEfwdが順次計算されている。これに対し、例えば、#inj気筒の噴射開始時期の直前に実行される図22〜図26、或いは図36〜図39に示したルーチンの実行直前の時点が到来する毎に、同時点にて、現時点で#inj気筒となっている気筒の吸気弁閉時における新たなエンジン回転速度NEfwdを順次計算していくように構成してもよい。
10…火花点火式多気筒内燃機関、32…吸気弁、33…可変吸気タイミング装置、33a…可変吸気タイミング装置のアクチュエータ、39…インジェクタ、41…吸気管、43…スロットル弁、43a…スロットル弁アクチュエータ、64…スロットルポジションセンサ、66…カムポジションセンサ、67…クランクポジションセンサ、70…電気制御装置、71…CPU、81…アクセル開度センサ