以下、図面を参照して本発明の実施形態について説明する。図1に概略的に示した機関本体1は筒内噴射型火花点火式内燃機関を示す。しかしながら、本発明をポート噴射型火花点火式内燃機関等の別の火花点火式内燃機関や圧縮自着火式内燃機関に適用してもよい。
図1に示したように、本発明の実施形態では機関本体1はシリンダブロック2と、シリンダブロック2内で往復動するピストン3と、シリンダブロック2上に固定されたシリンダヘッド4とを具備する。ピストン3とシリンダヘッド4との間には燃焼室5が形成される。シリンダヘッド4には各気筒毎に吸気弁6と、吸気ポート7と、排気弁8と、排気ポート9とが配置される。さらに、図1に示したようにシリンダヘッド4の内壁面の中央部には点火プラグ10が配置され、シリンダヘッド4内壁面周辺部には燃料噴射弁11が配置される。また、ピストン3の頂面には燃料噴射弁11の下方から点火プラグ10の下方まで延びるキャビティ12が形成されている。さらに、シリンダヘッド4には、吸気弁6の位相角およびバルブリフト量を連続的に変更可能な吸気弁制御装置13が設けられている。
各気筒の吸気ポート7は吸気枝管14を介してサージタンク15に連結され、サージタンク15は吸気管16を介してエアクリーナ17に連結される。吸気管16内にはステップモータ18によって駆動されるスロットル弁19が配置される。一方、各気筒の排気ポート9は排気管20に連結され、この排気管20は排気浄化触媒21を内蔵したケーシング22に連結される。なお、以下の説明では、スロットル弁19から吸気弁6までの吸気枝管14、サージタンク15、吸気管16等の部分を吸気管部分23と称す。
電子制御ユニット(ECU)31はディジタルコンピュータからなり、双方向性バス32を介して相互に接続されたRAM(ランダムアクセスメモリ)33、ROM(リードオンリメモリ)34、CPU(マイクロプロセッサ)35、入力ポート36および出力ポート37を具備する。サージタンク13には、吸気管部分23内の空気(吸気ガス)の圧力を検出するための吸気管内圧力センサ40が設けられており、吸気管内圧力センサ40は吸気管部分23内の圧力に比例した出力電圧を発生し、この出力電圧が対応するAD変換器38を介して入力ポート36に入力される。
また、スロットル弁19の上流側の吸気管16には吸気管16内を通過して流れる吸入空気流量を検出するエアフロメータ41が設けられており、本実施形態におけるエアフロメータ41の構成については後述する。さらに、エアクリーナ17近傍には吸気温度を検出する吸気温度センサ42と、大気圧を検出する大気圧センサ43とが設けられる。スロットル弁19にはスロットル弁19の開度を検出するスロットル弁開度センサ44が設けられており、スロットル弁開度センサ44はスロットル弁開度に対応する出力信号を発生させる。これらエアフロメータ41、吸気温度センサ42、大気圧センサ43およびスロットル弁開度センサ44はそれぞれ吸入空気流量(質量流量)、吸気温度(大気温度)、大気圧およびスロットル弁開度に対応する出力信号を発生し、この出力信号が対応するAD変換器38を介して入力ポート36に入力される。
また、アクセルペダル45にはアクセルペダル45の踏込み量に比例した出力電圧を発生する負荷センサ46が接続され、負荷センサ46の出力電圧は対応するAD変換器38を介して入力ポート36に入力される。また、クランク角センサ47は例えばクランクシャフトが15度回転する毎に出力パルスを発生し、この出力パルスが入力ポート36に入力される。CPU35ではこのクランク角センサ45の出力パルスから機関回転数が計算される。
一方、出力ポート37は対応する駆動回路39を介して点火プラグ10、燃料噴射弁11、吸気弁制御装置13およびステップモータ18に接続される。
図2は本実施形態で用いられるエアフロメータ41の概略斜視図を、図3は図2に示したエアフロメータ41の熱線計量部の拡大斜視図である。本実施形態では、エアフロメータ41は、熱線式流量計とされており、図2に示したように吸気管16内を流れる空気の一部をバイパスさせるバイパス通路と、このバイパス通路にバイパスされた吸入空気の質量流量を計測する熱線計量部41aと、計測された質量流量に応じた電圧を出力する信号処理部41bとを有する。熱線計量部41aは図3に示したように白金熱線から成る吸気温度計測用抵抗41a1と、この吸気温度計測用抵抗41a1を信号処理部41bに連結して保持するサポート部41a2と、加熱用抵抗(ボビン部)41a3と、この加熱用抵抗41a3を信号処理部41bに連結して保持するサポート部41a4とを備える。信号処理部41bは、吸気温度計測用抵抗41a1と加熱用抵抗41a3とで構成されるブリッジ回路を有し、このブリッジ回路により吸気温度計測用抵抗41a1と加熱用抵抗41a3との温度差を常に一定に維持するように加熱用抵抗41a3に供給する電力を調整すると共に、この供給する電力を電圧に変換して出力するようになっている。エアフロメータ41の出力電圧Vgとエアフロメータ41が配置された吸気管16内を通過する空気の流量(以下、「エアフロ通過空気流量」と称す)との関係は図4に示した通りである。
ところで、内燃機関の制御装置では、内燃機関の燃焼室5において燃焼される混合気の空燃比を目標空燃比にするために、吸気弁6が閉じたときに燃焼室5内に充填されている空気の量(以下、「筒内充填空気量Mc」と称す)を推定し、推定された筒内充填空気量Mcに基づいて混合気の空燃比が目標空燃比となるように燃料噴射弁11によって内燃機関の燃焼室5(または吸気通路)に噴射する燃料の量(以下、「燃料噴射量」と称す)を定めている。したがって、内燃機関の燃焼室5において燃焼される混合気の空燃比を正確に目標空燃比とするためには、筒内充填空気量Mcを正確に推定する必要がある。
通常、筒内充填空気量Mcは、エアフロメータ等の多数のセンサ、およびこれらセンサからの出力値を引数とした多数のマップから推定される。ところが、このようにマップを用いて筒内充填空気量Mcを推定する場合、推定される筒内充填空気量Mcの値をより正確なものにするためには、必要なマップの数およびその引数の数が多くなる。このようにマップの数が多くなると、マップを保存するためのECUのROMを記憶容量の大きいものにしなければならず、内燃機関の制御装置の製造コストが高くなってしまう。さらに、各マップを作成するにはマップが用いられる内燃機関の形式毎に適合作業を行わなければならないが、この適合作業における測定点はマップの数およびその引数の数に応じて増大するため、マップの数およびその引数の数が多くなると適合作業の工数も増大してしまう。
そこで、マップを用いずに様々なモデルを用いて、数値計算により筒内充填空気量Mcを算出する内燃機関の制御装置が検討されている。このような制御装置では、数値計算を多用することにより必要なマップの数を極力減らすようにしており、これにより適合作業を行う際の工数を大幅に削減しながらも、筒内充填空気量Mcを正確に算出することができる。このような制御装置のうち本願出願人により提案されたものの一つに、図5に示したエアモデルを搭載した制御装置がある。図示したエアモデルは内燃機関に適用される最も単純なモデルであり、以下このエアモデルについて説明する。
エアモデルは、図5に示したようにスロットルモデルM10、吸気管モデルM20、吸気弁モデルM30を備える。スロットルモデルM10には、スロットル弁開度センサ44によって検出されたスロットル弁19の開度(スロットル弁開度)θtと、大気圧センサ43によって検出された内燃機関周囲の大気圧(または、吸気管16に吸入される空気の圧力)Paと、吸気温度センサ42によって検出された内燃機関周囲の大気温度(または、吸気管16に吸入される空気の温度)Taと、後述する吸気管モデルM20において算出された吸気管部分23内の圧力(以下、「吸気管内圧力」と称す)Pmとが入力され、これら入力された各パラメータの値を後述するスロットルモデルM10のモデル式に代入することで、単位時間当たりにスロットル弁19を通過する空気の流量(以下、「スロットル通過空気流量の推定値mt」と称す)が算出される。スロットルモデルM10において算出されたスロットル通過空気流量の推定値mtは、吸気管モデルM20へ入力される。
吸気管モデルM20には、スロットルモデルM10において算出されたスロットル通過空気流量の推定値mtと、以下で詳述する単位時間当たりに燃焼室5内に流入する空気の流量(以下、「筒内吸入空気流量mc」と称す。なお、筒内吸入空気流量mcの定義については、吸気弁モデルM30の説明において詳述する)とが入力され、これら入力された各パラメータの値を後述する吸気管モデルM20のモデル式に代入することで、吸気管部分23内に存在する空気の圧力(以下、「吸気管内圧力Pm」と称す)と吸気管部分23内に存在する空気の温度(以下、「吸気管内温度Tm」と称す)とが算出される。吸気管モデルM20において算出された吸気管内圧力Pmと吸気管内温度Tmは共に吸気弁モデルM30へ入力され、さらに吸気管内圧力PmはスロットルモデルM10にも入力される。
吸気弁モデルM30には、吸気管モデルM20において算出された吸気管内圧力Pmおよび吸気管内温度Tmの他に大気温度Taが入力され、これら入力された各パラメータの値を後述する吸気弁モデルM30のモデル式に代入することで、筒内吸入空気流量mcが算出される。算出された筒内吸入空気流量mcは、筒内充填空気量Mcに変換され、この筒内充填空気量Mcに基づいて燃料噴射弁からの燃料噴射量が決定される。また、吸気弁モデルM30において算出された筒内吸入空気流量mcは吸気管モデルM20に入力される。
図5から分かるように、エアモデルでは或るモデルにおいて算出されたパラメータの値が別のモデルへの入力値として利用されるので、エアモデル全体では、実際に入力される値はスロットル弁開度θt、大気圧Pa、および大気温度Taの三つのパラメータのみであり、これら三つのパラメータから筒内充填空気量Mcが算出される。
次に、エアモデルの各モデルM10〜M30について説明する。
スロットルモデルM10では、大気圧Pa、大気温度Ta、吸気内圧力Pm、スロットル弁開度θtから、下記式(1)に基づいてスロットル通過空気流量の推定値mtが算出される。ここで、式(1)におけるμtはスロットル弁における流量係数で、スロットル弁開度θtの関数であり、よって図6に示したようなマップから定まる。また、Atはスロットル弁の開口断面積を示し、スロットル弁開度θtの関数であり、図7に示したようなマップから定まる。なお、これら流量係数μtおよび開口断面積Atをまとめたμt・Atをスロットル弁開度θtから一つのマップで求まるようにしてもよい。また、Rは気体定数に関する定数であり、実際には気体定数を1mol当たりの気体(空気)の質量Mlmolで除算した値である。
また、Φ(Pm/Pa)は下記式(2)に示した関数であり、この式(2)におけるκは比熱比(一定値とする)である。この関数Φ(Pm/Pa)は図8に示したようなグラフに表すことができるので、このようなグラフをマップとしてECU31のROM34に保存し、実際には式(2)を用いて計算するのではなくマップからΦ(Pm/Pa)の値を求めるようにしてもよい。
これらスロットルモデルM10の式(1)および式(2)は、スロットル弁19上流の気体の圧力を大気圧Pa、スロットル弁19上流の気体の温度を大気温度Ta、スロットル弁19の下流の気体の圧力を吸気管内圧力Pmとして、図9に示したようなスロットル弁19のモデルに対して、質量保存則、エネルギ保存則および運動量保存則を適用し、さらに気体の状態方程式、比熱比の定義式、およびマイヤーの関係式を利用することによって得られる。
吸気管モデルM20では、スロットル通過空気流量の推定値mt、筒内吸入空気流量mc、および大気温度Taから、下記式(3)および式(4)に基づいて吸気管内圧力Pmおよび吸気管内温度Tmが算出される。なお、式(3)および式(4)におけるVmはスロットル弁19から吸気弁6までの吸気枝管14、サージタンク15、吸気管16等の部分(吸気管部分23)の容積に等しい定数である。
ここで、吸気管モデルM20について図10を参照して説明する。吸気管部分23の総気体量(総空気量)をMとすると、総気体量Mの時間的変化は、吸気管部分に流入する気体の流量、すなわちスロットル通過空気流量の推定値mtと、吸気管部分から流出する気体の流量、すなわち筒内吸入空気流量mcとの差に等しいため、質量保存則により下記式(5)が得られ、この式(5)および吸気管部分23における気体の状態方程式(Pm・Vm=M・R・Tm)より、式(3)が得られる。
また、吸気管部分23の気体のエネルギM・Cv・Tmの時間的変化量は、吸気管部分23に流入する気体のエネルギと吸気管部分23から流出する気体のエネルギとの差に等しい。このため、吸気管部分23に流入する気体の温度を大気温度Ta、吸気管部分23から流出する気体の温度を吸気管内温度Tmとすると、エネルギ保存則により下記式(6)が得られ、この式(6)および上記気体の状態方程式より、式(4)が得られる。
吸気弁モデルM30では、吸気管内圧力Pm、吸気管内温度Tm、および大気温度Taから、下記式(7)に基づいて、筒内吸入空気流量mcが算出される。なお、式(7)におけるa、bは、機関回転数Neから、さらに吸気弁6の位相角(バルブタイミング)および作用角を変更できる可変動弁機構を備えた内燃機関の場合には吸気弁6の位相角、作用角から定まる値である。
上述した吸気弁モデルM30について図11を参照して説明する。一般に、吸気弁6が閉じたときに燃焼室5内に充填されている空気の量である筒内充填空気量Mcは、吸気弁6が閉弁するとき(吸気弁閉弁時)に確定し、吸気弁6閉弁時の燃焼室5内の圧力に比例する。また、吸気弁6閉弁時の燃焼室5内の圧力は吸気弁6上流の気体の圧力、すなわち吸気管内圧力Pmと等しいとみなすことができる。したがって、筒内充填空気量Mcは、吸気管内圧力Pmに比例すると近似することができる。
ここで、一定時間(例えば、クランク角720°分)当たりに吸気管部分23から流出する全空気流量を平均化したもの、または一定時間(例えば、クランク角720°分)当たりに吸気管部分23から全ての気筒の燃焼室5に吸入される空気量を上記一定時間で除算したものを筒内吸入空気流量mc(以下で詳述する)とすると、筒内充填空気量Mcが吸気管内圧力Pmに比例することから、筒内吸入空気流量mcも吸気管内圧力Pmに比例すると考えられる。このことから、理論および経験則に基づいて、上記式(7)が得られる。なお、式(7)における値aは比例係数であり、値bは燃焼室5内に残存していた既燃ガスを表す値(排気弁8閉弁時に燃焼室5内に残る既燃ガス量を後述する時間ΔT180°で除算したものと考えられる)である。また、実際の運転では過渡運転時に吸気管内温度Tmが大きく変化する場合があるため、これに対する補正として理論および経験則に基づいて導かれたTa/Tmが乗算されている。
ここで、筒内吸入空気流量mcについて、図12を参照して内燃機関が4気筒である場合について説明する。なお、図12は横軸がクランクシャフトの回転角度、縦軸が単位時間当たりに吸気管部分23から燃焼室5に実際に流入する空気の流量である。図12に示したように、4気筒の内燃機関では、吸気弁6が例えば1番気筒、3番気筒、4番気筒、2番気筒の順に開弁し、各気筒に対応する吸気弁6の開弁量に応じて吸気管部分23から各気筒の燃焼室5内へ空気が流入する。例えば、吸気管部分23から各気筒の燃焼室5内に流入する空気の流量の変位は図12に破線で示した通りであり、これを総合して吸気管部分23から全気筒の燃焼室5に流入する空気の流量は図12に実線で示した通りである。また、例えば1番気筒への筒内充填空気量Mcは図12に斜線で示した通りである。
これに対して、実線で示した吸気管部分23から全ての気筒の燃焼室5に流入する空気の流量を平均化したものが筒内吸入空気流量mcであり、図中に一点鎖線で示す。そして、この一点鎖線で示した筒内吸入空気流量mcに、4気筒の場合にはクランクシャフトが180°(すなわち、4ストローク式内燃機関において1サイクル中にクランクシャフトが回転する角度720°を気筒数で割った角度)回転するのにかかる時間ΔT180°を乗算したものが筒内充填空気量Mcとなる。したがって、吸気弁モデルM30で算出された筒内吸入空気流量mcにΔT180°を乗算することで、筒内充填空気量Mcが算出される(Mc=mc・ΔT180°)。より詳細には、筒内充填空気量Mcが吸気弁閉弁時の圧力に比例することを考慮して、吸気弁閉弁時の筒内吸入空気流量mcにΔT180°を乗算したものが筒内充填空気量Mcとされる。
次に、上記エアモデルを内燃機関の制御装置に実装して、実際に筒内充填空気量Mcを算出する場合について説明する。筒内充填空気量Mcはエアモデルを用いて、上記式(1)、式(3)、式(4)、および式(7)を解くことにより表される。この場合、ECU31で処理するために、これらの式を離散化する必要がある。時刻t、計算間隔Δtを用いて式(1)、式(3)、式(4)、および式(7)を離散化すると、それぞれ下記式(8)、式(9)、式(10)、および式(11)が得られる。なお、吸気管内温度Tm(t+Δt)は、式(9)および式(10)によってそれぞれ算出されたPm/Tm(t+Δt)およびPm(t+Δt)から、式(12)によって算出される。
このようにして実装されたエアモデルでは、スロットルモデルM10の式(8)で算出された時刻tにおけるスロットル通過空気流量の推定値mt(t)と、吸気弁モデルM30の式(11)で算出された時刻tにおける筒内吸入空気流量mc(t)とが、吸気管モデルM20の式(9)および式(10)に代入され、これにより時刻t+Δtにおける吸気管内圧力Pm(t+Δt)および吸気管内温度Tm(t+Δt)が算出される。次いで、算出されたPm(t+Δt)およびTm(t+Δt)は、スロットルモデルM10および吸気弁モデルM30の式(8)および式(11)に代入され、これにより時刻t+Δtにおけるスロットル通過空気流量の推定値mt(t+Δt)および筒内吸入空気流量mc(t+Δt)が算出される。そして、このような計算を繰り返すことによって、スロットル弁開度θt、大気圧Pa、および大気温度Taから、任意の時刻tにおける筒内吸入空気流量mcが算出され、算出された筒内吸入空気流量mcに上記時間ΔT180°を乗算することで、任意の時刻tにおける筒内充填空気量Mcが算出される。
なお、内燃機関の始動時には、すなわち時刻t=0においては、吸気管内圧力Pmは大気圧と等しい(Pm(0)=Pa)とされ、吸気管内温度Tmは大気温度と等しい(Tm(0)=Ta)とされて、各モデルM10〜M30における計算が開始される。
なお、上記エアモデルでは、大気温度Taおよび大気圧Paが一定であるとしているが、時刻によって変化する値としてもよく、例えば、大気温度を検出するための吸気温度センサによって時刻tにおいて検出された値を大気温度Ta(t)、大気圧を検出するための大気圧センサによって時刻tにおいて検出された値を大気圧Pa(t)として上記式(8)、式(10)、および式(11)に代入するようにしてもよい。
ところで、上記したように図5の装置ではスロットル弁開度θt、大気温度Taおよび大気圧Paのみを入力するモデル式を用いて機関始動時からの逐次計算により筒内充填吸気量が算出される。このため、エアモデルの各要素モデルにモデル化誤差が生じていると、算出される筒内充填吸気量は不正確になり燃料噴射量の正確な算出ができなくなる。
一方、エアモデルの各要素モデル(スロットルモデルM10、吸気管モデルM20および吸気弁モデルM30)を考えると、モデル化そのものには誤差がない場合であっても、使用による特性の変化や製作公差によるばらつきなどによりモデル化誤差が生じている場合がある。このため、エアモデルにより求めた筒内充填吸気量等の値をエアフロメータや吸気管内圧力から求めた吸気量と比較し、モデル式から計算した吸気量をエアフロメータなどにより求めた実測値に合致するように修正することが行われている。
しかし、このような従来の修正方法は各要素モデルの集合であるエアモデルの全体を一律に修正するものであるのに対して、実際には各モデルに発生する誤差は一律ではなく、それぞれのモデル毎に相違している。このため、全体を一律に修正する方法では正確なモデルの修正を行うことはできず、例えば内燃機関が定常運転を行っているときに筒内充填吸気量を実測値に合致するように補正すると、内燃機関が過渡運転を行っているときなどでは吸気圧力の計算値が実測値から大きく離れてしまい、過渡運転を行っているときの筒内充填吸気量に大きな誤差が生じるような場合がある。
そこで、本実施形態では、実測値に基づいてモデル修正するものの、エアモデル全体(M10〜M30)を一律に修正するのではなく、それぞれの要素モデルに応じた補正を別個に行う。
ここで、エアモデルに含まれる各要素モデルのうち、スロットルモデルM10と吸気弁モデルM30とは製作・組み立て公差によるばらつきや、使用による特性変化(流量係数の変化等)が生じやすい。これに対して、吸気管モデルM20は単に容積のみが問題となる比較的単純なモデルであり、ばらつきや使用による特性変化は生じにくいため、当初のモデル化さえ正確にできていれば、運転中にこのモデルを修正する必要はない。したがって、本実施形態ではモデル化誤差が生じやすいスロットルモデルM10と吸気弁モデルM30とを機関運転中に実測値に基づいて個別にモデル式を修正するようにしている。
以下、本実施形態のモデル修正方法について説明する。本実施形態では、現在の実際のエアフロ通過空気流量、スロットル弁開度、吸気管内圧力を、それぞれエアフロメータ41、スロットル弁開度センサ44、吸気圧センサ40で実測し、これらの値を用いて図5の筒内充填吸気量計算とは独立してスロットルモデルM10、吸気弁モデルM30等についての修正操作を行う。
まず、スロットルモデルM10の修正操作について説明する。図13は、スロットルモデルM10の修正操作を説明するブロック図である。図13に示したように、スロットルモデルの修正操作を行う際には、エアフロメータモデルM40が用いられる。エアフロメータモデルM40には、スロットルモデルM10によって算出されたスロットル通過空気流量(以下、「スロットル通過空気流量の推定値」と称す)mtが入力され、この入力されたパラメータの値を後述するエアフロメータモデルM40のモデル式に代入することで、実際にスロットル弁19を通過する空気の流量(以下、「実際のスロットル通過空気流量」と称す)がこの値のときにエアフロメータ61が出力するであろう出力値が算出される。
すなわち、実際のエアフロメータ41の出力は、実際のエアフロ通過空気流量(エアフロ通過空気流量とスロットル通過空気流量はほぼ同一であると考えられるため、以下ではスロットル通過空気流量として説明する)に対して固有の応答特性に基づく応答遅れを有しており、したがってそのときの実際のスロットル通過空気流量のみに対応した値となっているわけではない。エアフロメータモデルM40は、この応答特性をシュミレートしたモデルであり、上記エアフロメータ41の応答遅れを考慮した上で、スロットル弁19をスロットル通過空気流量の推定値mtだけ空気が流れている場合にエアフロメータ41が出力するであろう出力値(以下、「予想出力値」と称す)を算出する。
ここで、エアフロメータモデルM40について具体的に説明する。エアフロメータ41では、上述したように吸気温度計測用抵抗41a1と加熱用抵抗(ボビン部)41a3との温度差を常に一定に維持するように加熱用抵抗41a3に供給する電力を調整するとともに、その供給電力に基づいてエアフロ通過空気流量を算出するようにしている。ここで、この供給電力はボビン部41a3およびサポート部41a4から吸気管16内を通過する空気への放熱量を示すことから、エアフロメータ41はボビン部41a3およびサポート部41a4からの放熱量に基づいてエアフロ通過空気流量を算出すると言い換えることができる。
ここで、ボビン部41a3は、より詳細には円筒状のセラミックスボビンに白金熱線を巻回し、その外周にガラスをコーティングすることにより形成される。このため、白金熱線から周囲の空気への放熱は白金熱線と周囲の空気との間にガラス層が介在することにより遅れてしまう。したがって、吸気管16内を通過する空気の流量が急激に増大したような場合であっても、ボビン部41a3からの単位時間当たりの放熱量(以下、単に「放熱量」と称す)は直ぐには増大せず、或る程度の遅れをもって増大することになる。換言すると、ボビン部41a3からの放熱量は実際のエアフロ通過空気流量に対して応答遅れが存在する。また、同様なことがサポート部41a4からの放熱量についても言え、サポート部41a4からの放熱量は実際のエアフロ通過空気流量に対して応答遅れが存在する。
この応答遅れは、一次遅れに近似することができることがわかっており、ボビン部41a3の放熱量の応答遅れは次の式(13)で表される。ここで、式(13)におけるω
bはエアフロメータ41の出力値から換算したボビン部41a3の放熱量、すなわち放熱遅れが生じた結果ボビン部41a3の白金熱線から実際に放熱される放熱量(以下、「遅れ放熱量」と称す)を示している。また、式(13)におけるW
bは、応答遅れを補償した放熱量、すなわち放熱遅れが生じないと仮定した場合におけるボビン部41a3の白金熱線から放熱される放熱量(以下、「完全放熱量」と称す)を示している。すなわち、完全放熱量W
bは、内燃機関が定常運転を行っているときにおける放熱量に等しく、基本的にエアフロメータ41近傍の吸気管16内を通過する空気流量のみの関数である。エアフロメータ41近傍の吸気管16内を通過する空気流量はスロットル通過空気流とほぼ等しいため、完全放熱量W
bはスロットル通過空気流量の関数と考えることができ、スロットル通過空気流量とボビン部41a3からの完全放熱量W
bとの関係は図14のように表すことができる。さらに、式(13)におけるτ
bは、ボビン部41a3からの放熱における一次遅れの時定数であり、その算出方法については後述する。
同様に、サポート部41a4の放熱量の応答遅れは式(14)で表される。サポート部41a4からの完全放熱量W
bもスロットル通過空気流量の関数と考えることができ、スロットル通過空気流量とサポート部41a4からの完全放熱量W
sとの関係は図14のように表すことができる。また、式(14)におけるτ
sは、サポート部41a4からの放熱における一次遅れの時定数である。
式(13)および式(14)によりボビン部41a3およびサポート部41a4からの遅れ放熱量ω
b、ω
sが算出される。エアフロメータ41では、放熱遅れが生じた結果ボビン部41a3およびサポート部41a4から実際に放熱される放熱量、すなわち遅れ放熱量に応じて出力電圧が変化するため、式(13)および式(14)によって算出された遅れ放熱量の和(ω
b+ω
s)に基づいてエアフロメータ41が出力するであろう出力値(予想出力値)AFMmtが算出される。本実施形態では、エアフロメータ41における遅れ放熱量の和(ω
b+ω
s)とエアフロメータ41の予想出力値AFMmtの関係を予め実験的にまたは計算によって求め、図15に示したようなマップとしてECU31のROM34に記憶させておく。そして、式(13)および式(14)から算出された遅れ放熱量の和ω
b+ω
sに基づいて上記マップを用いてエアフロメータ41の予想出力値AFMmtが算出される。なお、上記マップを用いた遅れ放熱量の和ω
b+ω
sに基づくエアフロメータ41の予想出力値AFMmtの算出は下記式(15)のように表すことができる。
なお、ボビン部41a3の一次遅れの時定数τ
bは下記式(16)によって、またサポート部41a4の一次遅れの時定数τ
sは下記式(17)によって算出される。式(16)および式(17)において、uは、エアフロメータ41の検出部における流路、すなわちエアフロメータ41のバイパス通路における単位断面積当たりの空気流量である。単位断面積当たりの空気流量uはエアフロメータ41の出力値AFMに基づいてマップによりまたは所定の計算式により算出される。また、k
b、k
s、m
b、m
sは予め実験または計算によって求められる定数であり、k
b、m
bがボビン部41a3についての定数、k
s、m
sがサポート部41a4についての定数をそれぞれ示している。ボビン部41a3とサポート部41a4とでは応答遅れの度合いが異なるので、ボビン部41a3とサポート部41a4とを分離して時定数を設定することによってスロットル通過空気流量から予想出力値を算出するための算出精度を向上させることとしている。
次に、上記エアフロメータモデルM40を内燃機関の制御装置に実装して、実際にスロットルモデルM10によって算出されたスロットル通過空気流量の推定値mtからエアフロメータ41の予想出力値AFMmtを算出する場合について説明する。エアフロメータ41の予想出力値AFMmtはエアフロメータモデルM40を用いて、上記式(13)、式(14)を解くことにより表される。この場合、ECU31で処理するために、これらの式を離散化する必要がある。時刻t、計算間隔Δtを用いて式(13)、式(14)を離散化すると、それぞれ下記式(18)、式(19)が得られる。
このようにして実装されたエアフロメータモデルM40では、時刻tにおけるボビン部41a3からの遅れ放熱量ωb(t)、サポート部41a4からの遅れ放熱量ωs(t)およびスロットルモデルM10の式(8)で算出された時刻tにおけるスロットル通過空気流量の推定値mt(t)が式(18)および式(19)に代入され、これにより時刻t+Δtにおけるボビン部41a3からの遅れ放熱量ωb(t+Δt)およびサポート部41a4からの遅れ放熱量ωs(t+Δt)が算出される。そして、これら遅れ放熱量ωb(t+Δt)およびωs(t+Δt)を用いて式(15)により時刻t+Δtにおけるエアフロメータ41の予想出力値AFMmt(t+Δt)が算出される。
再びスロットルモデルの修正操作について話を戻すと、本実施形態では、吸気圧センサ40とスロットル弁開度センサ44とで実測した現在の吸気管内圧力Pmとスロットル弁開度θt(および大気圧Pa、大気温度Ta)とを用いてスロットルモデルM10(図5)によって算出されるスロットル通過空気流量の推定値mtが、エアフロメータ41の出力から算出した現在のスロットル通過空気流量に一致するようにスロットルモデルの式(1)を修正する。
すなわち、図13において、実測値Pmとスロットル弁開度θtとを用いてスロットルモデルM10の式(1)によって算出されたスロットル通過空気流量の推定値mtをエアフロメータモデルM40に入力すると、実際のスロットル通過空気流量が上記スロットル通過空気流量の推定値mtとなっていたと仮定した場合におけるエアフロメータ41の予想出力値AFMmtに変換される。
したがって、スロットルモデルM10にモデル化誤差が含まれていない場合、すなわち実際のスロットル通過空気流量とスロットルモデルM10によって算出されたスロットル通過空気流量の推定値mtとが一致している場合には、実際のエアフロメータ41の出力値AFMとエアフロメータモデルM40の予想出力値AFMmtとが一致するはずであり、一致していない場合には実際のスロットル通過空気流量とスロットル通過空気流量の推定値mtとが一致していないと考えられ、よってスロットルモデルM10にモデル化誤差が生じていると考えられる。
したがって、出力値AFMと予想出力値AFMmtとが一致しない場合には、スロットルモデルM10に生じているモデル化誤差を補償するために、予想出力値AFMmtがエアフロメータ41の出力値(実測値)AFMに一致するようにスロットルモデルM10の計算式を修正する必要がある。
ここで、本実施形態では、上述したようにスロットルモデルM10の計算式として、下記式(20)を用いている。
上記式(20)のパラメータのうち流量係数μtは製品毎のばらつきや使用による特性変化の影響を受けやすい。したがって、本実施形態では、スロットルモデルM10の式(20)により算出されたスロットル通過空気流量の推定値mtをエアフロメータモデルM40の式(13)および式(14)に代入して算出された予想出力値AFMmtがエアフロメータ41の出力値AFMに一致するように流量係数μtの値を修正することとしている。これにより、スロットルモデルM10が修正され、スロットルモデルM10を用いた計算結果をエアフロメータ41の出力値と一致させることができるようになり、よってスロットルモデルM10によって算出されたスロットル通過空気流量の推定値mtを実際のスロットル通過空気流量に一致させることができるようになる。なお、当然ながらスロットルモデルM10の上記修正結果は図5筒内充填吸気量Mcの計算にも同時に反映され、筒内充填吸気量Mcの推定精度が向上するようになる。
このような流量係数μtの値の修正方法としては、例えば、下記式(21)によるものが考えられる。なお、式(21)におけるμt’は修正後の流量係数である。
ところが、式(21)により流量係数μtの値を修正すると、内燃機関が定常運転を行っているときには適切に修正することができるが、内燃機関が過渡運転を行っているときには適切に修正することができない。以下、このことについて図16を参照して簡単に説明する。
図16は、スロットル弁開度θtと空気流量に関する各種パラメータの値とのタイムチャートである。図中、時刻t0はスロットル弁開度θtがθt0となったとき、時刻t1はスロットル弁開度θtがθt1となったときを示している。また、図16は、実際のスロットル通過空気流量(図16中の実線)と、スロットルモデルM10によって算出されたスロットル通過空気流量の推定値mt(図16中の一点鎖線)とが時刻t0前まではずれているが、時刻t0以降はほぼ一致している場合のタイムチャートを示している。すなわち、図16は、時刻t0前、すなわちスロットル弁開度θtがθt0よりも小さいときには、流量係数μtの値に誤差が生じていてスロットルモデルM10によって算出されたスロットル通過空気流量の推定値mtが実際のスロットル通過空気流量からずれてしまっていると共に、時刻t0以降、すなわちスロットル弁開度θtがθt0以上であるときには、流量係数μtの値に誤差がほとんどなく、スロットルモデルM10によって算出されたスロットル通過空気流量の推定値mtが実際のスロットル通過空気流量にほぼ一致している場合のタイムチャートを示している。
上述したように、エアフロメータ41には放熱遅れに基づく応答遅れがあるため、図16に示したように実際のスロットル通過空気流量が変化している場合に、エアフロメータ41の出力値AFM(図16中の破線)には実際のスロットル通過空気流量に対して遅れが生じる。特に、エアフロメータ41の出力値AFMを実際のスロットル通過空気流量に対して一次遅れで近似することができることを考えると、エアフロメータ41の現在の出力値AFMは現在の実際のスロットル通過空気流量のみに応じて変化するわけではなく、過去の実際のスロットル通過空気流量の履歴にも応じて変化する。
また、上述したようにエアフロメータモデルM40ではエアフロメータ41の放熱遅れに基づく応答遅れが考慮されているため、図16に示したように実際のスロットル通過空気流量が変化している場合には、エアフロメータモデルM40によって算出される予想出力値AFMmtにもスロットルモデルM10によって算出されたスロットル通過空気流量の推定値mtに対して遅れが生じている。
このため、図16に示したように、時刻t0以降においてスロットルモデルM10によって算出されたスロットル通過空気流量の推定値mtが実際のスロットル通過空気流量にほぼ一致しているにも関わらず、時刻t0以降においてエアフロメータ41の出力値AFMとエアフロメータモデルM40によって算出された予想出力値AFMmtとは一致していない。したがって、例えば、出力値AFMと予想出力値AFMmtとを用いて式(21)によってスロットルモデルM10の流量係数μtを修正しようとすると、時刻t0以降において流量係数μtには誤差が無いにも関わらず、流量係数μtが修正されてしまうことになる。
或いは、流量係数μtの値の修正方法としては、例えば、下記式(22)によるものが考えられる。このように、積分を用いることにより、エアフロメータ41の出力値AFMに存在するノイズの影響を抑制することができる。
ところが、式(22)により流量係数μtの値を修正する場合であっても、内燃機関が定常運転を行っているときには適切に修正することができるが、内燃機関が過渡運転を行っているときには適切に修正することができない。以下、このことについて簡単に説明する。
ここで、流量係数μtのマップは一定の機関運転領域に区切られており、流量係数μtのマップ値は機関運転領域毎に設定される。具体的には、流量係数μtのマップは図17に示したようにスロットル弁開度θtを複数のマップ領域に分割し、スロットル弁開度θtの各マップ領域毎に一つの流量係数μtのマップ値が設定される。したがって、流量係数μtを修正する場合にはスロットル弁開度θtの各マップ領域毎にそのマップ領域に対応する流量係数μtの値を修正することになる。
図16に示した例を参照すると、スロットル弁開度θtの一つのマップ領域がθt0からθt1である場合、スロットル弁開度θtがそのマップ領域内にある期間は時刻t0から時刻t1までとなっている。したがって、このスロットル弁開度θtがこのマップ領域にある場合における流量係数μtの値の誤差率を、時刻t0から時刻t1までのエアフロメータ41の出力値AFMの平均値とエアフロメータモデルM40によって算出された予想出力値AFMmtの平均値との比に基づいて算出すると、比較的正確に流量係数μtの値の誤差を補償することができると考えられ、斯かる考えに基づいて式(22)による流量係数μtの値の修正が提案されている。より詳細には、式(22)では、エアフロメータ41の出力値AFMの平均値とその予想出力値AFMmtの平均値との比は、エアフロメータ41の出力値AFMの積分値とその予想出力値AFMmtの積分値との比に等しいため、式(22)では現在マップに保存されている流量係数μt(θt)に、エアフロメータ41の出力値AFMの積分値(図16中の面積S1+S2)を予想出力値AFMmtの積分値(図16中の面積S1)で除算したものを乗算することによって(θt・(S1+S2)/S1)、流量係数μt(θt)を修正した値μt’(θt)を算出している。
ところが、上述したように、図16に示した例では、時刻t0以降は実際のスロットル通過空気流量とスロットルモデルM40により算出されたスロットル通過空気流量の推定値mtとがほぼ一致しているにも関わらず、エアフロメータ41に応答遅れが存在するため、エアフロメータ41の出力値AFMの時刻t0から時刻t1までの積分値(S1+S2)とエアフロメータモデルM40によって算出された予想出力値AFMmtの時刻t0から時刻t1までの積分値(S1)とが一致しない。このため、スロットル弁開度θtがθt1からθt2であるマップ領域における流量係数μtには誤差が無いにも関わらず流量係数μtが修正されてしまうことになる。
このように、式(21)および式(22)により流量係数μtの値を修正すると、内燃機関が定常運転を行っているときには的確に修正することができるが、内燃機関が過渡運転を行っているときには的確に修正することができない。そこで、本発明では、内燃機関が過渡運転を行っているときにおいても的確に流量係数μtの値を修正することができるような内燃機関の吸入空気量推定装置を提供する。
図18は、図16と同様に、スロットル弁開度θtと空気流量に関する各種パラメータの値とのタイムチャートである。以下では、図18を参照して、スロットル弁開度θtがθt0からθt1であるマップ領域Aにおける、流量係数μtの修正について考える。式(13)および式(14)に示したように、エアフロメータモデルM40では、スロットルモデルM10によって算出されたスロットル通過空気流量の推定値mtに対して一次遅れが存在するとしてエアフロメータ41の予想出力値AFMmtを算出している。このため、エアフロメータモデルM40の予想出力値AFMmtは、スロットルモデルM10によって算出された現在のスロットル通過空気流量の推定値mtだけでなく所定時間前のスロットル通過空気流量の推定値mtに基づいて算出されることになる。
例えば、図18に示したように時刻t0においてスロットル弁開度θtがマップ領域Aに侵入したとき、時刻t0以降においてエアフロメータモデルM40によって算出された予想出力値AFMmtは、時刻t0以降においてスロットルモデルM10によって算出されたスロットル通過空気流量の推定値mtだけでなく、時刻t0以前にスロットルモデルM10によって算出されたスロットル通過空気流量の推定値mtを用いて算出されることになる。すなわち、エアフロメータモデルM40によって算出される予想出力値AFMmtは、スロットル弁開度θtがマップ領域A以外のマップ領域にあるときのスロットル通過空気流量の推定値mtに基づいて算出されることになる。
ここで、上述したように図18に示した例では、スロットル弁開度θtがθt0からθt1であるマップ領域Aに対応する流量係数μtの修正を行おうとしており、流量係数μtの修正を行うに当たって実際のスロットル通過空気流量とスロットルモデルM10によって算出されたスロットル通過空気流量の推定値mtとの比をエアフロメータ41の出力値AFMとエアフロメータモデルM40によって算出された予想出力値AFMmtとの比から算出しようとしている。ところが、スロットル弁開度θtがマップ領域Aにある場合においてエアフロメータモデルM40によって算出される予想出力値AFMmtは、マップ領域A以外のマップ領域におけるスロットル通過空気流量の推定値mtの影響を受けており、よってスロットル弁開度θtがマップ領域Aにある場合におけるエアフロメータ41の出力値AFMとエアフロメータモデルM40によって算出される予想出力値AFMmtとの比は、スロットル弁開度θtがマップ領域Aにある場合における実際のスロットル通過空気流量とスロットル通過空気流量の推定値mtとの比を表したものではないものとなっている。
そこで、本実施形態では、スロットル弁開度θtがマップ領域Aにある場合における流量係数μtを修正するときには、エアフロメータモデルM40によって算出された予想出力値AFMmtを直接利用せずに、この予想出力値AFMmtからスロットル弁開度θtがマップ領域Aに侵入する前(図18に示した例では、スロットル弁開度θtがθt0よりも小さいとき)のスロットル通過空気流量の推定値mtの影響を除去した値(以下、「修正出力値」と称す)AFMmteを用いることとする。
本実施形態では、修正出力値AFMmteの算出は基本的にエアフロメータモデルM40における予想出力値AFMmtの算出と同様に行われる。すなわち、下記式(23)および式(24)によりボビン部41a3およびサポート部41a4の遅れ放熱量ω
be、ω
seが算出され、算出された遅れ放熱量ω
be、ω
seに基づいて式(25)により図15に示したマップと同様なマップから修正出力値AFMmteが算出される。式(23)および式(24)は、ECU31で処理するために時刻t、計算間隔Δtを用いて下記式(26)および式(27)のように離散化されて用いられる。
ただし、エアフロメータモデルM40における予想出力値AFMmtの算出と異なり、修正出力値AFMmteの算出はマップ領域毎に行われる。すなわち、スロットル弁開度θtが或るマップ領域に侵入したとき、図18に示した例ではスロットル弁開度θtがマップ領域Aに侵入したとき(すなわちスロットル弁開度θtがθt0となったとき)にそのマップ領域における修正出力値AFMmteの算出が開始されると共に、スロットル弁開度θtがそのマップ領域から離脱したとき、図18に示した例ではスロットル弁開度θtがマップ領域Aから離脱したとき(すなわちスロットル弁開度θtがθt1となったとき)にそのマップ領域における修正出力値AFMmteの算出が終了せしめられる。
そして、修正出力値AFMmteの算出にあたっては、スロットル弁開度θtがマップ領域Aに侵入する前にスロットルモデルM10によって算出されたスロットル通過空気流量の推定値mt(以下、「過去のスロットル通過空気流量の推定値mt」と称す)の影響を除去するために、スロットル弁開度θtがマップ領域Aに侵入したときの修正出力値AFMmteの値(以下、「初期値」と称す)を、エアフロメータ41の出力値AFMとほぼ同様な値になるようにしている。
すなわち、上述したように修正出力値AFMmteはECU31において上記離散化された式(26)および式(27)に基づいて算出されるが、これら式(26)および式(27)には初期値以外に過去の(スロットル弁開度θtがマップ領域Aに侵入する前の)スロットル通過空気流量の推定値mtが影響するような項は存在しない。逆に言うと、初期値を過去のスロットル通過空気流量の推定値mtの影響を受けていない値に設定しさえすれば、修正出力値AFMmteに対する過去のスロットル通過空気流量の推定値mtの影響を最小限に抑制することができる。
本実施形態では、スロットル弁開度θtがマップ領域Aに侵入したときの修正出力値AFMmteの初期値をそのときのエアフロメータ41の出力値AFMとほぼ同様な値としているため、修正出力値AFMmteの初期値は過去のスロットル通過空気流量の推定値mtに基づいて定まる値ではなく、スロットル弁開度θtがマップ領域Aに侵入したときのエアフロメータ41の出力値AFMに基づいて定まる値であり、よって修正出力値AFMmteから過去のスロットル通過空気流量の推定値mtの影響が除去される。
このように、修正出力値AFMmteの初期値をエアフロメータ41の出力値AFMとほぼ同様な値として式(23)および式(24)によってその後の修正出力値AFMmtを算出するためには、時刻t0におけるボビン部41a3の遅れ放熱量およびサポート部41a4の遅れ放熱量を時刻t0におけるボビン部41a3からの実際の放熱量およびサポート部41a4からの実際の放熱量に一致させることが必要である。ところが、時刻t0におけるエアフロメータ41の出力値AFMから時刻t0におけるボビン部41a3およびサポート部41a4からの実際の放熱量を算出することは困難である。すなわち、図15に示したマップ等によってエアフロメータ41の出力値AFMからボビン部41a3およびサポート部41a4からの実際の放熱量を合計した値を求めることはできるが、ボビン部41a3およびサポー部41a4それぞれからの実際の放熱量を求めることはできない。
そこで、本実施形態では、エアフロメータ41のボビン部41a3およびサポート部41a4それぞれからの実際の放熱量を比較的正確に算出することができるオブザーバを用いるようにしている。このオブザーバは、時刻やスロットル弁開度θtのマップ領域とは無関係に、常にエアフロメータ41のボビン部41a3およびサポート部41a4それぞれからの実際の放熱量の近似値を算出している。
具体的には、オブザーバは、下記式(28)および式(29)によってボビン部41a3からの実際の放熱量の近似値(以下、「近似放熱量」と称す)ω
boおよびサポート部41a4からの実際の放熱量の近似値(以下、「近似放熱量」と称す)ω
soをそれぞれ算出している。式(28)および式(29)において、K
Iは積分制御等に用いられる積分係数と同様な係数である。また、AFMmtoはオブザーバによって算出された近似放熱量ω
bo、ω
soを合計した値に基づいて下記式(30)により(すなわち、図15のマップにより)算出された値である。
したがって、オブザーバでは、エアフロメータ41の出力値AFMとオブザーバによって算出された近似放熱量ωbo、ωsoに基づいて算出されるエアフロメータ41の出力値(以下、「近似出力値」と称す)AFMmtoとの偏差(AFM−AFMmto)を時間的に累積する。この出力値AFMと近似出力値AFMmtoとの偏差の累積値は、実際のスロットル通過空気流量とスロットルモデルM10によって算出されたスロットル通過空気流量の推定値mtとの誤差に基づいて変化し、この誤差の絶対値が大きいほど上記偏差の累積値の絶対値が大きくなる。したがって、スロットルモデルM10によって算出されたスロットル通過空気流量の推定値mtに、出力値AFMとオブザーバによって算出された近似出力値AFMmtoとの偏差の累積値に係数KIを乗じた値を加算することで、実際のスロットル通過空気流量とスロットルモデルM10によって算出されたスロットル通過空気流量の推定値mtとの誤差を或る程度補償することができる。これにより、オブザーバでは、実際のスロットル通過空気流量とほぼ等しいスロットル通過空気流量に基づいて近似放熱量ωbo、ωsoが算出されるため、オブザーバによって算出された近似放熱量ωbo、ωsoはボビン部41a3およびサポート部41a4からの実際の放熱量とほぼ等しい値となっている。
なお、上記オブザーバを内燃機関の制御装置に実装して、スロットル通過空気流量の推定値mtおよびエアフロメータ41の出力値AFMから近似放熱量ω
bo、ω
soを算出するためには、式(28)および式(29)を離散化する必要がある。時刻t、計算間隔Δtを用いて式(28)および式(29)を離散化すると、それぞれ下記式(31)および式(32)が得られる。なお、式(31)および式(32)中のΔAFMINT(t)は、時刻tにおけるAFM(t)−AFMmto(t)の累積値であり、下記式(33)により表される。
このようにして実装されたオブザーバでは、時刻tにおけるボビン部41a3およびサポート部41a4からの近似放熱量ωbo(t)およびωso(t)、スロットルモデルM10の式(8)によって算出された時刻tにおけるスロットル通過空気流量の推定値mt(t)、時刻tにおけるエアフロメータ41の出力値AFM(t)、および時刻tにおいてオブザーバによって算出された近似出力値AFMmto(t)が式(31)、式(32)および式(33)に代入され、これにより時刻t+Δtにおける近似放熱量ωbo(t+Δt)およびωso(t+Δt)が算出される。そして、これら近似放熱量ωbo(t+Δt)およびωso(t+Δt)に基づいて式(30)により時刻t+Δtにおける近似出力値AFMmto(t+Δt)が算出され、この時刻t+Δtにおける近似出力値AFMmto(t+Δt)はその後の近似放熱量ωboおよびωsoの算出に利用される。そして、このような計算を繰り返すことによって、スロットル通過空気流量の推定値mt、エアフロメータ41の出力値AFMから、任意の時刻tにおける近似放熱量ωbo、ωsoが算出される。
図19は、図18の時刻t0〜t1における流量に関するパラメータの推移を拡大して示したタイムチャートである。図19から分かるように、オブザーバによって算出された近似出力値AFMmto(図19中の短い破線)は、エアフロメータ41の出力値AFMとほぼ同様な値となっている。上述したように修正出力値AFMmteの算出にあたっては、スロットル弁開度θtがマップ領域Aに侵入したときに、すなわち時刻t0においてオブザーバによって算出されたボビン部41a3の近似放熱量ωboおよびサポート部41a4の近似放熱量ωsoが用いられる。したがって、修正出力値AFMmteの算出においては、遅れ放熱量ωbe、ωseの初期値、すなわち時刻t0における遅れ放熱量ωbe(t0)、ωse(t0)はオブザーバによって算出された時刻t0における近似放熱量ωbo(t0)、ωse(t0)とされる(ωbe(t0)=ωbo(t0)、ωse(t0)=ωso(t0))。このため、時刻t0における修正出力値AFMmteは、時刻t0におけるオブザーバの近似出力値AFMmtoと同一の値となる。
そして、修正出力値AFMmteの算出に当たっては、遅れ放熱量ωbe、ωseの初期値、すなわち時刻t0における遅れ放熱量ωbe(t0)、ωse(t0)が算出された後に、上述した式(26)および式(27)によって時刻t0以降における遅れ放熱量ωbe(t)、ωse(t)が算出され、そしてこれら時刻t0以降の時刻tにおける遅れ放熱量ωbe(t)、ωse(t)に基づいて上記式(25)を用いて時刻t0以降の時刻tにおける修正出力値AFMmte(t)が算出される。このようにして算出された修正出力値AFMmteは図19に点線で示したように推移する。すなわち、修正出力値AFMmteは時刻t0においてはオブザーバによって算出された近似出力値AFMmtoと同一の値となっており、その後徐々にエアフロメータモデルM40によって算出された予想出力値AFMmtに近づくように推移する。
このようにして算出された修正出力値AFMmteは、上述したようにスロットル弁開度θtがマップ領域Aに侵入する前のスロットル通過空気流量の推定値mtの影響が除去された値となっている。このため、マップ領域Aにおけるエアフロメータ41の出力値AFMと修正出力値AFMmteとの比は、マップ領域Aにおける実際のスロットル通過空気流量とスロットルモデルM10によって算出されたスロットル通過空気流量との比を比較的正確に示しており、すなわちマップ領域AにおけるスロットルモデルM10の流量係数μtの誤差率を示している。したがって、上記式(22)と同様に、エアフロメータ41の出力値AFMと修正出力値AFMmteとに基づいて下記式(34)により誤差率Errが算出される。
すなわち、誤差率Errは、スロットル弁開度θtが特定のマップ領域(図18、19に示した例ではマップ領域A)にある間に亘ってエアフロメータ41の出力値AFMを積分した値、すなわち時刻t0からt1に亘って出力値AFMを積分した値(図19中の面積S3+S4)を、スロットル弁開度θtが上記特定のマップ領域(図18、19に示した例ではマップ領域A)にある間に亘って修正出力値AFMmteを積分した値、すなわち修正出力値AFMmteを時刻t0からt1に亘って積分した値(図19中の面積S3)で除算した値((S3+S4)/S3)に等しい。このようにして算出された誤差率Errを上記特定のマップ領域(図18、19に示した例ではマップ領域A)の流量係数μtのマップ値に乗算することで、流量係数μtのマップ値が的確に修正される。
なお、上記実施形態では、スロットル弁開度θtがθt0〜θt1であるマップ領域Aに対応する流量係数μtのマップ値を修正する場合について示したが、他のマップ領域においても同様にそのマップ領域に対応する流量係数μtのマップ値が修正せしめられる。これにより、内燃機関の過渡運転中であっても各マップ領域に対応する流量係数μtのマップ値が的確に修正せしめられる。
ところで、上述したように、修正出力値AFMmteを用いることでスロットル弁開度θtがマップ領域Aに侵入する前のスロットル通過空気流量の推定値mtの影響が除去される。ところが、エアフロメータ41の出力値AFMもスロットル弁開度θtがマップ領域Aに侵入する前の実際のスロットル通過空気流量の影響を受けており、上述したように修正出力値AFMmteを用いたとしてもエアフロメータ41の出力値AFMから過去の実際のスロットル通過空気流量の影響を除去することができない。このため、上述したように、エアフロメータ41の出力値AFMと修正出力値AFMmteとに基づいて算出されたスロットルモデルM10の流量係数μtの誤差率は、実際の流量係数μtの誤差率に対して僅かに異なった値となる。
そこで、上記実施形態の変更例では、エアフロメータ41の出力値AFMから過去の実際のスロットル通過空気流量の影響を除去することとしている。以下、エアフロメータ41の出力値AFMから過去の実際のスロットル通過空気流量の影響を除去してスロットルモデルM10の流量係数μtの誤差率を正確に算出する方法について説明する。
ところで、一般に、エアフロメータ41等のセンサの応答は、初期値応答とゼロ応答とに分離することができる。ここで、初期値応答とは、或る時刻t以降の状態量がゼロであると仮定した場合における時刻t以降のセンサの出力値の推移であり、ゼロ応答とは、或る時刻tまで状態量がゼロであると仮定した場合における時刻t以降のセンサの出力値の推移である。
図20は、エアフロメータ41の出力値AFMについての初期値応答曲線とゼロ応答曲線とを示す図である。ここで、Φ1は時刻0を基準とした初期値応答曲線(破線)を示しており、時刻0以降に実際のスロットル通過空気流量がゼロであると仮定した場合におけるエアフロメータ41の出力値の推移を示している。また、Φ2は時刻0を基準としたゼロ応答曲線(一点鎖線)を示しており、時刻0までの実際のスロットル通過空気流量がゼロであると仮定した場合、すなわち時刻0からエアフロメータ41での計測が開始された場合におけるエアフロメータ41の出力値の推移を示している。
すなわち、初期値応答曲線は時刻0におけるエアフロメータ41の出力値に応じて、すなわち時刻0よりも前の実際のスロットル通過空気流量に応じて変化するのに対して、ゼロ応答曲線は時刻0以降における実際のスロットル通過空気流量に応じて変化する。そして、時刻0以降の各時刻tにおけるエアフロメータ41の出力値AFM(t)は、初期値応答曲線の時刻tにおける値Φ1(t)とゼロ応答曲線の時刻tにおける値Φ2(t)とを合計した値に等しい(AFM(t)=Φ1(t)+Φ2(t))。そして、このようなエアフロメータ41の出力値AFMと、初期値応答曲線の各時刻における値Φ1と、ゼロ応答曲線の各時刻における値Φ2との関係は、基準となる時刻(図20に示した例では時刻0)を如何なる時刻にしても成立する。
上述したようにゼロ応答曲線は所定時刻以降における実際のスロットル通過空気流量に応じて変化するため、特定のマップ領域に侵入した時刻を基準としたエアフロメータ41の出力値AFMのゼロ応答曲線からは、その特定のマップ領域に侵入する前の実際のスロットル通過空気流量の影響が除去されている。したがって、斯かるゼロ応答曲線を求め、これと修正出力値AFMmteについてのゼロ応答曲線(正確には、修正出力値AFMmteについてのゼロ応答曲線に対応する曲線)とを後述するように比較することにより、上記特定のマップ領域に侵入する前の実際のスロットル通過空気流量の影響を除去して、流量係数μの誤差率を的確に算出することができる。
ただし、時刻t0を基準としたゼロ応答を算出するのは困難であることから、本実施形態では、エアフロメータ41の出力値AFMから時刻t0を基準とした初期値応答曲線の各時刻における値Φ1を減算することでゼロ応答を算出することとしている(Φ2(t)=AFM(t)−Φ1(t))。
ここで、時刻t
0を基準とした初期値応答曲線の各時刻における値Φ
1の算出方法について説明する。上述したように初期値応答曲線の各時刻における値Φ
1は、時刻t
0以降に実際のスロットル通過空気流量がゼロであると仮定した場合におけるエアフロメータ41の出力値の推移を示しているため、上記式(13)および式(14)のスロットル通過空気流量の推定値mtをゼロとすることにより求めることができる。すなわち、初期値応答曲線についての放熱量ω
bi、ω
siは下記式(35)および式(36)により表される。この場合、時刻t
0における放熱量ω
bi(t
0)、ω
si(t
0)は、時刻t
0における実際の放熱量の近似値である近似放熱量ω
bo(t
0)、ω
so(t
0)が用いられる。
そして、式(35)、(36)により算出された放熱量ω
bi、ω
siに基づいて、式(37)により図15に示したマップと同様なマップから初期値応答曲線の各時刻における値Φ
1が算出される。なお、式(35)および式(36)は、ECU31で処理するために離散化されて用いられる。
このようにして算出された時刻t0を基準とした初期値応答曲線の各時刻における値Φ1をエアフロメータ41の出力値AFMから減算することにより、エアフロメータ41の出力値についての時刻t0を基準としたゼロ応答曲線の各時刻における値Φ2が算出される。
また、修正出力値AFMmteも時刻t
0において近似放熱量ω
bo、ω
soを利用しているため、修正出力値AFMmteから上述した初期値応答曲線の各時刻における値Φ
1を減算することにより、修正出力値AFMmteについてのゼロ応答曲線の各時刻における値が算出される。このため、本実施形態では、スロットルモデルM10の流量係数μtの誤差率Errを算出するにあたって、エアフロメータ41の出力値AFMと、修正出力値AFMmteと、エアフロメータ41の出力値についての時刻t
0を基準とした初期値応答曲線の各時刻における値Φ
1とを用いて下記式(38)により算出される。
このように、流量係数μtの誤差率を算出するにあたって、修正出力値AFMmteを用いることにより、エアフロメータモデルM40によって算出された予想出力値AFMmtに存在する過去のスロットル通過空気流量の推定値mtの影響が除去され、すなわち所定時間前のスロットル通過空気流量の影響で予想出力値AFMmtに含まれている成分を予想出力値AFMmtから除去される。さらに、エアフロメータ41の出力値AFMおよび修正出力値AFMmteから初期値応答曲線の各時刻における値Φ1を減算することにより、エアフロメータ41の出力値AFM等に存在する過去の実際のスロットル通過空気流量の影響が除去され、すなわち所定時間前のスロットル通過空気流量の影響でエアフロメータの出力値AFMに含まれている成分をこのエアフロメータの出力値から除去することができる。
このため、上記式(38)により算出された誤差率Errはスロットル弁開度θtが所定のマップ領域内にあるときの実際のスロットル通過空気流量およびスロットルモデルM10によって算出されたスロットル通過空気流量の推定値に基づいて算出されることになるため、スロットル弁開度θtが所定のマップ領域内にあるときの流量係数の誤差率を正確に算出することができる。
ところで、上記説明では、スロットル弁開度θtが或るマップ領域A(θt0〜θt1)内にあるときにおける流量係数μtのマップ値を修正するのに、スロットル弁開度θtがθt0になったとき(時刻t0)からθt1になったとき(時刻t1)まで、すなわちスロットル弁開度θtがそのマップ領域Aに侵入してから離脱するまでのエアフロメータ41の出力値AFMの積分値と修正出力値AFMmteの積分値とを用いて誤差率Errを算出することとしている。
ところが、定常運転時等には、スロットル弁開度θtがほとんど変化せず、よってスロットル弁開度θtが或る特定のマップ領域内にある時間が長くなる。ここで、例えば、流量係数μtのマップ値に誤差が生じている場合にはエアモデル(M10〜M30)によって算出される筒内充填空気量Mcにも誤差が生じているため、流量係数μtのマップ値に生じている誤差を迅速に補償する必要がある。しかしながら、定常運転時等にはスロットル弁開度θtが特定のマップ領域からはなかなか離脱しないため、上述したようにスロットル弁開度θtが特定のマップ領域内に侵入してから離脱するまでの積分値(平均値)を用いて流量係数μtの誤差率Errを算出するようにしていると、この特定のマップ領域に対応する流量係数μtのマップ値を迅速に補償することができなくなってしまう。すなわち、流量係数μtのマップ値に誤差が生じている場合であっても長期間継続している定常運転時等には流量係数μtを補償することができない。
そこで、本発明の実施形態では、スロットル弁開度θtが或るマップ領域内に侵入してから後述する最長学習時間が経過してもまだそのマップ領域内にある場合には、スロットル弁開度θtがこのマップ領域に侵入してから上記最長学習時間が経過するまでのエアフロメータ41の出力値AFMの積分値と修正出力値AFMmteの積分値とを用いて流量係数μtの誤差率Errを算出することとしている。以下、このことについて詳細に説明する。
図21はスロットル弁開度と空気流量に関する各種パラメータの値とのタイムチャートであって図19と同様な図である。図21は、スロットル弁開度及び空気流量に関する各種パラメータの値の推移の例を示している。図21に示した例では、時刻t0においてスロットル弁開度θtがθt0となって或る特定のマップ領域A(θt0〜θt1)に侵入していると共に、時刻t1においてスロットル開度θtがθt1となってその特定のマップ領域Aから離脱している。
図示した例では、スロットル弁開度θtの単位時間当たりの変化量が非常に小さく、よってスロットル弁開度θtが一つのマップ領域A内にある時間が長い。このため、時刻t0から時刻t1までの時間は最長学習時間Tmaxよりも長いものとなっている。このような場合、本発明の実施形態では、流量係数μtの誤差率Errの算出を、スロットル弁開度θtが或る特定のマップ領域Aから離脱する(時刻t1)まで待たずに、スロットル弁開度θtがその特定のマップ領域A内に侵入したとき(時刻t0)から最長学習時間Tmaxが経過した時点(時刻t2)で行うようにしている。
また、最長学習時間Tmaxが経過した時点で行われる流量係数μtの誤差率Errの算出は、下記式(39)によって行われる。すなわち、上述したように、流量係数μtの誤差率Errの算出にあたっては、エアフロメータ41の出力値AFMの積分値および修正出力値AFMmteの積分値が用いられるが、これら積分値としてはスロットル弁開度θtが或る特定のマップ領域に侵入してから離脱するまで積分(すなわち時刻t
0から時刻t
1までの積分)したものではなく、スロットル弁開度θtがその特定のマップ領域に侵入してから最長学習時間Tmaxが経過するまで積分(すなわち時刻t
0から時刻t
2まで積分)したものが用いられる。したがって、図21に示した例では、流量係数μtの誤差率Errの算出にあたって、エアフロメータ41の出力値AFMの積分値として図中の面積S
5+S
6が用いられ、修正出力値AFMmteの積分値として図中の面積S
5が用いられる。
ここで、最長学習時間とは、エアフロメータ41の出力値AFMおよび修正出力値AFMmteの積分値に基づいて流量係数μtの誤差率Errを算出するにあたって、高い精度で流量係数μtの誤差率Errを算出するのに十分な積分時間を意味する。換言すると、最長学習時間とは、高い精度で流量係数μtの誤差率Errを算出するのに十分な数の出力値AFMおよび修正出力値AFMmteのデータを取得するのにかかる時間を意味する。したがって、スロットル弁開度θtが特定のマップ領域に侵入してから最長学習時間Tmaxが経過するまでのエアフロメータ41の出力値AFMおよび修正出力値AFMmteの積分値に基づいて算出された流量係数μtの誤差率Errは、それ以上の長時間に亘って積分されたエアフロメータ41の出力値AFMおよび修正出力値AFMmteの積分値に基づいて算出された流量係数μtの誤差率Errとほぼ同一の値となる。
また、最長学習時間は、機関運転状態に応じて変更せしめられる。例えば、スロットル弁開度が小さい場合、スロットル弁を通過する空気の速度が音速に近づくため、吸気弁の開閉に伴って吸気管内圧力が変動してもスロットル弁を通過する空気の流速の変動は小さいものとなり、よってスロットル弁通過空気流量の変動も小さいものとなる。このため、エアフロメータ41の出力値AFMおよび修正出力値AFMmteの積分時間が短くても、これら値の積分値から流量係数μtの誤差率Errを比較的正確に算出することができる。このため、スロットル弁開度が小さい場合には最長学習時間は短いものとされ、逆にスロットル弁開度が大きい場合には最長学習時間は長いものとされる。
このように、内燃機関の定常運転時等、スロットル弁開度θtが長時間に亘って或るマップ領域内にある場合に、最長学習時間Tmaxが経過した時点で流量係数μtの誤差率Errを算出し、算出された誤差率Errに基づいてそのマップ領域に対応する流量係数μtのマップ値を修正することにより、スロットル弁開度θtがそのマップ領域内にある間にそのマップ領域に対応する流量係数μtのマップ値を修正することができるようになる。このため、流量係数μtのマップ値を効率的に修正することができる。さらに、最長学習時間が高い精度で流量係数の誤差率を算出するのに十分な積分時間であるため、最長学習時間でエアフロメータ41の出力値AFMや修正出力値AFMmteの検出、算出を中止しても算出された流量係数μtの誤差率Errは比較的正確に実際の流量係数の誤差率を示している。したがって、本発明の実施形態によれば、効率的に且つ比較的高い精度で流量係数μtの誤差を修正することができる。
一方、流量係数μtの誤差率Errを比較的高い精度で算出するにあたり、エアフロメータ41の出力値に存在するノイズ等の影響を除去するためにはある程度の数のエアフロメータ41の出力値AFMのデータが必要である。また、上述したようにスロットル弁開度θtが或るマップ領域に侵入したときには、修正出力値AFMmteとしてオブザーバによって算出された近似出力値AFMmtoを用いているため、スロットル弁開度θtがそのマップ領域に侵入した直後においては修正出力値AFMmteの正確性は低い。したがって、流量係数μtの誤差率Errを比較的高い精度で算出するためには、スロットル弁開度θtが或るマップ領域内の開度となっていてエアフロメータ41の出力値AFMおよび修正出力値AFMmteのデータを取得することができる期間がある程度必要である。
そこで、本実施形態では、スロットル弁開度θtが或るマップ領域に侵入してから最短学習時間が経過せずにそのマップ領域から離脱した場合には流量係数μtの誤差率Errの修正を行わないこととしている。したがって、上述したように、本発明の実施形態によれば、内燃機関が過渡運転を行っている場合であっても基本的に流量係数μtのマップ値の修正は行われるが、スロットル弁開度の変化速度があまりにも速い場合には流量係数μtのマップ値の修正は行われない。
ここで、最短学習時間とは、エアフロメータ41の出力値AFMおよび修正出力値AFMmteの積分値に基づいて流量係数μtの誤差率Errを算出するにあたって、ある程度高い精度で流量係数μtの誤差率Errを算出するのに最低限必要な積分時間を意味する。換言すると、最短学習時間とは、或る程度高い精度で流量係数μtの誤差率Errを算出するのに最低限必要な数の出力値AFMおよび修正出力値AFMmteのデータを取得するのにかかる時間を意味する。したがって、スロットル弁開度θtが或るマップ領域に侵入してから最短学習時間Tminが経過するまでのエアフロメータ41の出力値AFMおよび修正出力値AFMmteの積分値に基づいて算出された流量係数μtの誤差率Errは、実際の流量係数μtの誤差率Errにほぼ等しい。
なお、最短学習時間Tminも、上述した最長学習時間Tmaxと同様に、機関運転状態に応じて変更せしめられる。例えば、スロットル弁開度が小さい場合には最短学習時間Tminは短いものとされ、逆にスロットル弁開度が大きい場合には最短学習時間Tminは長いものとされる。
このように、最短学習時間Tminが経過しなかった場合には流量係数μtの誤差率Errを修正しないようにすることにより、エアフロメータ41の出力値AFMに存在するノイズ等の影響や、スロットル弁開度θtが或るマップ領域に侵入した直後における修正出力値AFMmteの正確性の低さの影響を受けて流量係数μtの誤差率Errの算出精度が低下してしまうのが防止せしめられる。
図22は、流量係数μtの修正制御の制御ルーチンを示すフローチャートである。図22に示した制御ルーチンは、一定時間間隔の割り込みによって実行される。
まず、ステップ101において、侵入フラグXが0であるか否かが判定される。この侵入フラグXは、スロットル開度θtが或る特定のマップ領域内にあるか否かを示すフラグであり、スロットル開度θtがその特定のマップ領域内にある場合に1とされ、それ以外の場合に0とされる。ステップ101においてスロットル開度θtが特定のマップ領域内にない(X=0)と判定された場合には、ステップ102へと進む。ステップ102では、スロットル開度θtが特定のマップ領域に侵入したか否かが判定される。スロットル開度θtが特定のマップ領域に侵入していないと判定された場合には制御ルーチンが終了せしめられる。
一方、ステップ102において、スロットル開度θtが特定のマップ領域に侵入したと判定された場合には、ステップ103へと進む。ステップ103では、そのときのスロットル弁開度θt等の機関運転状態に基づいて最長学習時間Tmax及び最短学習時間Tminが算出され、次いでステップ104では時間カウンタTcountがゼロにリセットされる。ここで、時間カウンタTcountは、スロットル弁開度θtが特定のマップ領域に侵入してから経過した時間を表すカウンタである。そして、ステップ105では侵入フラグXが1にセットされる。
このように侵入フラグXが1にセットされた後の制御ルーチンでは、まずステップ101においてスロットル弁開度θtが特定のマップ領域内にない(X=1)と判定され、ステップ106へと進む。ステップ106では、時間カウンタTcountの値がTcount+1とされる。次いで、ステップ107ではエアフロメータ41の出力値AFMが検出されると共に、修正出力値AFMmteが算出される。
ステップ108では、時間カウンタTcountが最長学習時間Tmaxよりも大きいか否か、すなわちスロットル弁開度θtが特定のマップ領域に侵入してから最長学習時間Tmaxが経過したか否かが判定される。スロットル弁開度θtが特定のマップ領域に侵入してから最長学習時間Tmaxが経過していない(Tcount≦Tmax)と判定された場合にはステップ109へと進む。ステップ109では、スロットル弁開度θtが特定のマップ領域から離脱したか否かが判定される。スロットル弁開度θtが特定のマップ領域から離脱していないと判定された場合には制御ルーチンが終了せしめられる。
一方、ステップ109において、スロットル弁開度θtが特定のマップ領域から離脱したと判定された場合には、ステップ110へと進む。ステップ110では、時間カウンタTcountが最短学習時間Tmin以上であるか否か、すなわちスロットル弁開度θtが特定のマップ領域に侵入してから最短学習時間Tminが経過したか否かが判定される。ステップ110においてスロットル弁開度θtが特定のマップ領域に侵入してから最短学習時間Tminが経過した(Tcount≧Tmin)と判定された場合にはステップ111へと進む。ステップ111では、スロットル弁開度θtが特定のマップ領域に侵入してからステップ107で算出されてきたエアフロメータ41の出力値AFMおよび修正出力値AFMmteに基づいて流量係数μtの誤差率Errが算出され、次いでステップ112において侵入フラグXが0にリセットされる。一方、ステップ110において、スロットル弁開度θtが特定のマップ領域に侵入してから最短学習時間Tminが経過していない(Tcount<Tmin)と判定された場合には、流量係数μtの誤差率Errの算出が行われることなくステップ113において侵入フラグXが0にリセットされる。
一方、ステップ108においてスロットル弁開度θtが特定のマップ領域に侵入してから最長学習時間Tmaxが経過した(Tcount>Tmax)と判定された場合にはステップ111へと進む。ステップ111では、スロットル弁開度θtが特定のマップ領域に侵入してから最長学習時間Tmaxが経過するまでの間にステップ107で算出されてきたエアフロメータ41の出力値AFMおよび修正出力値AFMmteに基づいて流量係数μtの誤差率Errが算出され、次いでステップ112において侵入フラグXが0にリセットされる。
ところで、上記実施形態では、スロットル開度θtを複数のマップ領域に分けて、スロットル開度θtの各マップ領域に対応する流量係数μtを設定するようにしているが、実際には各スロットル開度θtの値に対して最適な流量係数μtの値が存在する。したがって、スロットル開度θtの或るマップ領域について考えてみると、そのマップ領域内の複数のスロットル開度θtの値それぞれに対して最適な流量係数μtの値が存在することになる。したがって、各マップ領域内のスロットル弁開度θtに対して最適な流量係数μtは、一つの値に定まるものではなく、或る程度の幅をもったものとなる。
このような状況を考慮すると、或るマップ領域に対応する流量係数として一つの値を設定する場合には、そのマップ領域に対応する流量係数のマップ値としてこのマップ領域の中心のスロットル開度θtにおいて最適な流量係数μtの値を用いることが好ましい。このように各マップ領域に対応する流量係数μtのマップ値を設定することにより、流量係数μtのマップ値をそのマップ領域内の如何なるスロットル弁開度θtに対しても比較的適した値とすることができる。
そこで、本発明の第二実施形態では、スロットル弁開度θtが或るマップ領域に侵入してから上記最長学習時間Tmaxよりも長い時間の経過後にスロットル弁開度θtがそのマップ領域から離脱した場合、スロットル弁開度θtが下記の中心領域にあったときのエアフロメータ41の出力値AFMおよび修正出力値AFMmteに基づいて流量係数μtの誤差率Errを算出するようにしている。以下、このことについて詳細に説明する。
図23はスロットル弁開度と空気流量に関する各種パラメータの値とのタイムチャートであって、図19および図21と同様な図である。図23に示した例では、スロットル弁開度および空気流量に関する各種パラメータの値は図21に示した例と同様に推移している。また、図23に示した例では、図21と同様に、時刻t0においてスロットル弁開度θtがθt0となって或る特定のマップ領域A(θt0〜θt1)に侵入していると共に、時刻t1においてスロットル弁開度θtがθt1となってその特定のマップ領域Aから離脱している。
図23から分かるように、図示した例では、時刻t0から時刻t1までの時間は最長学習時間Tmaxよりも長いものとなっている。このような場合、本実施形態では、流量係数μtの誤差率Errの算出を、スロットル弁開度θtが中心領域A’にあったときのエアフロメータ41の出力値AFMおよび修正出力値AFMmteに基づいて行うこととしている。
ここで、中心領域とは、或るマップ領域に含まれるスロットル弁開度の領域であって、そのマップ領域の中心近傍の領域を意味する。図23に示した例で説明すると、マップ領域Aの中心領域A’の範囲(θt3〜θt4)はそのマップ領域Aの範囲(θt0〜θt1)に含まれている。また、この中心領域A’は、マップ領域Aの中心、すなわちスロットル弁開度θt0およびθt1の中間のスロットル弁開度θt2(=(θt0+θt1)/2)の近傍の領域となっており、より詳細にはマップ領域Aの中心のスロットル弁開度θt2を中心とした領域となっている。
また、本実施形態では、中心領域A’は、スロットル弁開度θtが中心領域A’内にある期間が最長学習時間Tmaxと等しくなるように定められる。図23に示した例で説明すると、中心領域A’の下限スロットル弁開度θt3と上限スロットル弁開度θt4は、スロットル弁開度θtが下限スロットル弁開度θt3と上限スロットル弁開度θt4との間にある期間(時刻t3〜時刻t4)が最長学習時間Tmaxと等しくなるように定められる。なお、図示した例では、スロットル弁開度θtが中心領域A’内にある期間は時刻t3から時刻t4まで連続しているが、斯かる期間は連続していない複数の期間から構成されてもよい。
したがって、図示した例では、流量係数μtの誤差率Errの算出は、下記式(40)によって行われる。すなわち、上述したように、流量係数μtの誤差率Errの算出にあたっては、エアフロメータ41の出力値AFMの積分値および修正出力値AFMmteの積分値が用いられるが、本実施形態ではこれら積分値としてスロットル弁開度θtが下限スロットル弁開度θt
3となった時刻t
3からスロットル弁開度θtが上限スロットル弁開度θt
4となった時刻t
4まで積分した値が用いられる。したがって、図23に示した例では、流量係数μtの誤差率Errの算出にあたっては、エアフロメータ41の出力値AFMの積分値として図中の面積S
7+S
8が用いられ、修正出力値AFMmteの積分値として図中の面積S
7が用いられる。
なお、上記第一実施形態では、修正出力値AFMmteの初期値をスロットル開度θtがマップ領域Aに侵入したとき(すなわち、時刻t0)においてオブザーバによって算出されたボビン部41a3の近似放熱量ωboおよびサポート部41a4の近似放熱量ωsoに基づいて算出すると共に、その後式(25)、式(26)および式(27)を用いて時刻t0以降の修正出力値AFMmteを算出するようにしている。しかしながら、このように修正出力値AFMmteを算出すると、修正出力値AFMmteには時刻t0から時刻t3までの間のスロットル通過空気流量の推定値mtの影響が含まれた値となってしまう。このため、このように修正出力値AFMmteを算出すると、スロットル弁開度θtが中心領域A’にある場合における流量係数μtの誤差率Errを的確に算出することができない。
そこで、本実施形態では、図23に示したように修正出力値AFMmteの初期値をスロットル開度θtが中心領域A’に侵入したとき(すなわち、時刻t3)においてオブザーバによって算出されたボビン部41a3の近似放熱量ωboおよびサポート部41a4の近似放熱量ωsoに基づいて算出すると共に、その後式(25)、式(26)および式(27)を用いて時刻t3以降の修正出力値AFMmteを算出するようにしている(このように算出した修正出力値をAFMmte’とする)。これにより修正出力値AFMmte’には時刻t3より前のスロットル通過空気流量の推定値mtの影響が含まれておらず、スロットル開度θtが中心領域A’にある場合における流量係数μtの誤差率Errを的確に算出することができるようになる。
このように、内燃機関の定常運転時等、スロットル弁開度θtが長時間に亘って或る特定のマップ領域内にある場合に、スロットル弁開度θtが中心領域にあったときのエアフロメータ41の出力値AFMおよび修正出力値AFMmteに基づいて流量係数μtの誤差率Errを算出するようにしているため、その特定のマップ領域の中心のスロットル弁開度に対応するように誤差率Errを算出することができる。これにより、この誤差率Errに基づいて修正された流量係数μtのマップ値は、或る特定のマップ領域の中心のスロットル弁開度に対応するような値となっており、これにより流量係数μtのマップ値をそのマップ領域内の如何なるスロットル弁開度θtに対しても比較的適した値とすることができる。
図24は、流量係数μtの修正制御の制御ルーチンを示すフローチャートである。図24に示した制御ルーチンは、一定時間間隔の割り込みによって実行される。ステップ151〜ステップ157は、図22のステップ101〜ステップ107と同様であるため説明を省略する。
ステップ158では、スロットル弁開度θtが特定のマップ領域から離脱したか否かが判定される。スロットル弁開度θtが特定のマップ領域から離脱していないと判定された場合には制御ルーチンが終了せしめられる。一方、ステップ158において、スロットル弁開度θtが特定のマップ領域から離脱したと判定された場合には、ステップ159へと進む。ステップ159では、時間カウンタTcountが最短学習時間Tmin以上であるか否か、すなわちスロットル弁開度θtが特定のマップ領域に侵入してから最短学習時間Tminが経過しているか否かが判定される。ステップ159においてスロットル弁開度θtが特定のマップ領域に侵入してから最短学習時間Tminが経過していない(Tcount<Tmin)と判定された場合には、流量係数μtの誤差率Errの算出が行われることなくステップ160において侵入フラグXが0にリセットされる。
一方、ステップ159においてスロットル弁開度θtが特定のマップ領域に侵入してから最短学習時間Tminが経過している(Tcount≧Tmin)と判定された場合にはステップ161へと進む。ステップ161では、スロットル弁開度θtが特定のマップ領域に侵入してから最長学習時間Tmaxが経過しているか否かが判定される。スロットル弁開度θtが特定のマップ領域に侵入してから最長学習時間Tmaxが経過していると判定された場合(Tcount>Tmax)には、ステップ162へと進む。
ステップ162では、スロットル弁開度θtが中心領域内にあったときのエアフロメータ41の出力値AFMおよびスロットル通過空気流量の推定値mtが抽出される。具体的には、スロットル弁開度θtがマップ領域Aの中心のスロットル弁開度(図23に示した例ではθt2)に近いときの出力値AFMおよびスロットル通過空気流量の推定値mtから抽出していき、出力値AFMおよびスロットル通過空気流量の推定値mtのデータの数が最大学習時間Tmaxに対応する数になるまで抽出が行われる。次いで、ステップ163では、ステップ162で抽出されたスロットル通過空気流量の推定値mtと抽出されたデータのうち最も早く抽出されたデータの抽出時刻におけるオブザーバの出力とに基づいてスロットル開度θtが中心領域A’に侵入してからの修正出力値AFMmte’が算出される。次いでステップ164では、ステップ162において抽出されたエアフロメータ41の出力値AFMおよびステップ163で算出された修正出力値AFMmte’に基づいて式(40)により流量係数μtの誤差率Errが算出され、その後ステップ160において侵入フラグXが0にリセットされる。
一方、ステップ161において、スロットル弁開度θtが特定のマップ領域に侵入してから最長学習時間Tmaxが経過していないと判定された場合(Tcount≦Tmax)には、ステップ165へと進む。ステップ165では、ステップ157で算出されてきたエアフロメータ41の出力値AFMおよび修正出力値AFMmteの全てに基づいて流量係数μtの誤差率Errが算出され、その後ステップ160において侵入フラグXが0にリセットされる。
次に、吸気弁モデルM30の修正操作について説明する。上述したように、吸気弁モデルM30の式(7)において用いられる値aは比例係数であり、また値bは燃焼室5内に残存していた既燃ガスを表す値である。これら値a、bは、機関回転数NE、吸気弁の位相角および作用角(以下では、吸気弁の開弁時期VVTを例にとって説明する)に応じて変化する。このため、機関回転数NEおよび吸気弁の開弁時期VVTとこれら値a、bとの関係を予め実験的にまたは計算により算出し、図25(a)および図25(b)に示したようにマップとしてECU31に保存すると共に、吸気弁モデルM30において上記式(7)の計算をするにあたってはクランク角センサ47によって検出された機関回転数NEおよび吸気弁制御装置13への吸気弁開弁時期VVTを用いて上記マップによりこれら値a、bを算出している。なお、図25(a)は値aのマップを、図25(b)は値bのマップをそれぞれ示しており、図中のx軸は機関回転数NEを、y軸は吸気弁開弁時期VVT(y軸が大きくなるほど進角)をそれぞれ示している。
ところが、これら値a、bには、上述したように使用による特性の変化や製作公差によるばらつきなどにより誤差が生じる場合がある。このように、値a、bに誤差が生じている場合には、吸気弁モデルM30のモデル化誤差を補償するためにこれら値a、bのマップ値を修正していく必要がある。ここで、本実施形態では、値a、bは、機関運転領域毎に定められている。図25に示した例では、値a、bは、マップ領域(例えば、図25中の斜線部分が一つのマップ領域を表している)毎に、すなわち一定間隔の機関回転数毎および一定間隔の吸気弁開弁時期毎に定められている。したがって値a、bの修正は、各マップ領域毎に行われなければならない。
そこで、本実施形態では、吸気弁モデルM30の式(11)で用いられる値a、bをマップ領域毎に修正することとしている。以下では、例として、機関回転数NEおよび吸気弁開弁時期VVTがマップ領域B(すなわち、機関回転数NEがNE1からNE2の間であって且つ吸気弁開弁時期VVTがVVT1からVVT2の間であるマップ領域)にある場合における値a、bのマップ値aij、bijの修正方法について説明する。
図26は、内燃機関の運転中における吸気管内圧力Pm、機関回転数NEおよび吸気弁開弁時期VVTのタイムチャートである。図示した例では、時刻t0以降において機関回転数NEがNE0以上となっており、また時刻t1以降において機関回転数NEがNE1以上となっている。すなわち、機関回転数NEは時刻t0から時刻t1までに亘ってNE0とNE1との間の値となっており、それ以外の時刻においてはNE0とNE1との間の値となっていない。一方、吸気弁開弁時期VVTは時刻t0から時刻t1までに亘ってVVT1とVVT2との間の値となっている。
したがって、機関回転数NEおよび吸気弁開弁時期VVTの値は、時刻t0以前はマップ領域B内にはなく、時刻t0においてマップ領域Bに侵入すると共に時刻t0から時刻t1までに亘ってマップ領域B内にある。その後、時刻t1においてマップ領域Bから離脱して、時刻t1以降はマップ領域B内にはない。そして、機関回転数NEおよび吸気弁開弁時期VVTの値がマップ領域B内にあるとき、すなわち時刻t0から時刻t1までの間において、吸気弁モデルM30ではマップ領域Bに対応した値aij、bijが用いられる。
ここで、上記式(6)について再び考えると、式(6)の左辺は吸気管部分23の気体の内部エネルギの時間的変化量を表しており、式(6)の右辺のCp・mt・Taは吸気管部分23に流入する気体のエネルギを、Cp・mc・Tmは吸気管部分23から流出した気体のエネルギをそれぞれ表している。ここで、吸気管部分23における気体の状態方程式(Pm・Vm=M・R・Tm)を考慮すると、式(6)の左辺は下記式(41)のように表せる。
したがって、時刻t
0から時刻t
1までの間の内部エネルギの変化量は下記式(42)のように表せる。特に、吸気管内圧力センサ40により実際の吸気管内圧力Pmrが検出されているため、式(42)において実際の吸気管内圧力Pmrを用いることによって、時刻t
0から時刻t
1までの間の実際の内部エネルギの変化量を正確に算出することができる。なお、式(42)においてPmr(t
0)は時刻t
0における実際の吸気管内圧力を、Pmr(t
1)は時刻t
1における実際の吸気管内圧力をそれぞれ示している。
一方、吸気管部分23に流入する気体のエネルギ(すなわち、式(6)の左辺のCp・mt・Ta)に関しては、上述したようにスロットルモデルM10の流量係数μtのマップ値が逐次修正されるため、スロットルモデルM10の流量係数μtは適切な値となっている。したがって、スロットルモデルM10の式(1)の吸気管内圧力Pmとして吸気管内圧力センサ40によって検出された実際の吸気管内圧力Pmrを用いると、吸気管部分23に流入する気体のエネルギを正確に算出することができる。特に、時刻t
0から時刻t
1までに吸気管部分23に流入する気体のエネルギは下記式(43)により算出することができる。
このように時刻t
0から時刻t
1までの間の内部エネルギの変化量が上記式(42)で、時刻t
0から時刻t
1までに吸気管部分23に流入する気体のエネルギが上記式(43)でそれぞれ正確に算出されることから、式(43)から式(42)を減算した下記式(44)により時刻t
0から時刻t
1までに吸気管部分23から流出した気体のエネルギを正確に算出することができる。
ここで、上述したように吸気管部分23から流出した気体のエネルギをCp・mc・Tmで表すことができ、またこのmcとして吸気弁モデルM30によって算出された筒内吸入空気流量mc(すなわち、式(7))を用いると、時刻t
0から時刻t
1までに吸気管部分23から流出した気体のエネルギは下記式(45)のように表せる。そして、式(44)及び式(45)はいずれも吸気管部分23から流出した気体のエネルギを表しているため、本来であればこれら式によって算出された値は一致するはずである。
ところが、吸気弁モデルM30のモデル式(7)に誤差があると、式(44)と式(45)とによって算出された値は一致しない。特に上記式(45)では吸気管内圧力として吸気管内圧力センサ40により検出された実際の吸気管内圧力Pmrが用いられていることを考慮すると、式(44)と式(45)とが一致しない場合は式(7)で用いられる値a、bのマップ値に誤差がある場合であると考えられる。
そこで、本実施形態では、実際の筒内吸入空気流量に対する吸気弁モデルM30によって算出された筒内吸入空気流量mcの誤差率(実際の筒内吸入空気流量/吸気弁モデルM30によって算出された筒内吸入空気流量)をαとする。この誤差率αを式(45)に乗算して算出された値と式(44)によって算出された値は等しくなるため、下記式(46)が成立する。そして、式(46)を誤差率αについて解くと、誤差率αは下記式(47)のように表せる。
このようにして算出された誤差率αは、機関回転数NEおよび吸気弁開弁時期VVTがマップ領域Bにある場合における実際の筒内吸入空気流量と吸気弁モデルM30によって算出された筒内吸入空気流量の推定値mcとの誤差率を表している。そして、この筒内吸入空気流量における誤差を補償するためには、本実施形態では、マップ領域Bに対応するマップ値aij、bijに誤差率αを乗算したものを新たな値a、bのマップ領域Bにおけるマップ値aij、bijとすることとしている(aij=α・aij、bij=α・bij)。このように吸気弁モデルM30の式(7)に用いられる値a、bのマップ値を修正することにより、吸気弁モデルM30によって算出される筒内吸入空気流量の推定値mcを実際の筒内吸入空気流量とほぼ等しい値とすることができる。
このように、本実施形態では、機関運転状態(例えば、機関回転数NEおよび吸気弁開弁時期VVT等)が特定の機関運転領域(例えば、上記マップ領域B)に侵入してから離脱するまでに吸気管部分23から流出した気体のエネルギの実際の値(すなわち、吸気管部分23のエネルギ保存則を用いて算出された値)と、斯かる気体のエネルギの吸気弁モデルM30を用いて算出された値とが求められ、実際の値と吸気弁モデルM30を用いて算出された値との比率に基づいて上記特定の機関運転領域に対応する値a、bのマップ値を修正することにより、内燃機関が過渡運転を行っている場合であっても値a、bのマップ値を的確に修正することができる。
ここで、吸気管モデルM20によって算出された吸気管内圧力の推定値Pmは所定時間前に吸気弁モデルM30によって算出された筒内吸入空気流量の推定値mcを用いて算出されている。このため、例えば吸気管内圧力の実測値と吸気弁モデルM30によって算出された筒内吸入空気流量の推定値mcを用いて吸気管モデルM20によって算出された吸気管内圧力の推定値との偏差に基づいて値a、bのマップ値を修正しようとすると、吸気管内圧力の実測値が現在の実際の筒内吸入空気流量に対応した値であるのに対して吸気管モデルM20によって算出された吸気管内圧力の推定値は吸気弁モデルM30によって算出された過去の筒内吸入空気流量の推定値mcに対応した値となっているため、内燃機関が定常運転を行っているときには比較的的確に吸気弁モデルを修正することができるが、内燃機関が過渡運転を行っているときには的確に吸気弁モデルを修正することができない。
一方、本実施形態では、機関運転状態(例えば、機関回転数NEおよび吸気弁開弁時期VVT等)が特定の機関運転領域(例えば、上記マップ領域B)に侵入してから離脱するまでに吸気管部分23から流出した気体のエネルギの実際の値(すなわち、吸気管部分23のエネルギ保存則を用いて算出された値)と、斯かる気体のエネルギの吸気弁モデルM30を用いて算出された値とを比較し、これら値が一致するように値a、bのマップ値を修正するようにしている。このように機関運転状態が特定の機関運転領域にある間に吸気管部分23から流出した気体のエネルギの総量同士を比較することにより、すなわち斯かる間の単位時間当たりのエネルギ流出量の積分値同士を比較することにより、内燃機関が過渡運転を行っている場合であっても、この特定の機関運転領域に対応する値a、bのマップ値を的確に修正することができるようになる。
次に、上記式(47)を内燃機関の制御装置に実装して、実際にスロットル通過空気流量の推定値mtおよび吸気管内圧力の実測値Pmrから誤差率αを算出する場合について説明する。ECU31では式(47)中の積分項をそのまま算出することはできない。このため、式(47)中のスロットル通過空気流量の推定値mtについての積分項は時刻t、計算間隔Δtを用いて離散化された下記式(48)によって算出され、吸気管内圧力の実測値Pmrについての積分項は時刻t、計算間隔Δtを用いて離散化された下記式(49)によって算出される。
そして、スロットル通過空気流量の推定値mtについての積分項に関しては、時刻tにおけるスロットル通過空気流量の推定値mt(t)が式(48)に代入され、これにより時刻tにおけるスロットル通過空気流量の推定値mtについての積分項の値mtint(t)が算出される。また、吸気管内圧力の実測値Pmrについての積分項に関しては、時刻tにおける吸気管内圧力の実測値Pmr(t)が式(49)に代入され、これにより時刻tにおける吸気管内圧力の実測値Pmrについての積分項の値hint(t)が算出される。なお、いずれの積分項の算出にあたっても、機関回転数NEおよび吸気弁開弁時期VVTが対象となるマップ領域に侵入したとき、すなわち時刻t0におけるスロットル通過空気流量の推定値mt(t0)および吸気管内圧力Pm(t0)を初期値として上記式(48)および式(49)の計算が行われる。
そして、式(47)による誤差率αの算出は、機関回転数NEおよび吸気弁開弁時期VVTが対象となるマップ領域から離脱した後、すなわち時刻t
1以降に行われる。式(48)についての初期値が時刻t
0におけるスロットル通過空気流量の推定値mt(t
0)であることから、時刻t
1におけるスロットル通過空気流量の推定値mtについての積分項の値mtint(t
1)は時刻t
0から時刻t
1までのmtの積分値を表しており、また、式(49)についての初期値が時刻t
0における吸気管内圧力の実測値Pmr(t
0)であることから、時刻t
1における吸気管内圧力の実測値Pmrについての積分項の値hint(t
1)は時刻t
0から時刻t
1までのa・Pmr+bの積分値を表している。このため、上記マップ領域における誤差率αは下記式(50)により算出せしめられる。
ところで、上記説明では、吸気管内圧力センサ40によって実測された吸気管内圧力を用いて式(43)により誤差率αを算出することとしている。ところが、実際の吸気管部分23内の圧力は吸気脈動により大きく変動しており、吸気管内圧力センサ40によって実測される吸気管内圧力も図27に実線で示したように大きく変動する。一方、上述した吸気管モデルM20や吸気弁モデルM30では、吸気管部分23内に生じる圧力脈動を無視して吸気管部分23内の実際の圧力の1サイクル(本実施形態では、クランク角720°)当たりの平均値(以下、「サイクル間平均値」と称す。)を吸気管内圧力Pmとして用いている。また、吸気管内圧力センサ40の出力にはノイズが含まれてしまうことも多い。
このため、吸気管内圧力センサ40によって実測された時刻t0および時刻t1における吸気管内圧力Pm(t0)およびPm(t1)を直接用いて誤差率αを算出すると、すなわち機関回転数NEおよび吸気弁開弁時期VVTが或るマップ領域に侵入した時およびこのマップ領域から離脱した時に吸気管内圧力センサ40によって実測された吸気管内圧力Pmrを直接用いて誤差率αを算出すると、算出された誤差率αの値が不正確なものになってしまう場合がある。
そこで、本実施形態では、上述したように吸気管内圧力センサ40によって実測された吸気管内圧力を直接用いて誤差率αを算出せずに、吸気管内圧力センサ40によって実測された吸気管内圧力のサイクル間平均値(図27中の破線)を用いて誤差率αを算出することとしている。すなわち、機関回転数NEおよび吸気弁開弁時期VVTが或るマップ領域に侵入した時を含むサイクルにおいて吸気管内圧力センサ40によって実測された吸気管内圧力のサイクル間平均値をこのマップ侵入時の吸気管内圧力Pmrとして用い、このマップ領域から離脱した時を含むサイクルにおいて吸気管内圧力センサ40によって実測された吸気管内圧力のサイクル間平均値をこのマップ離脱時の吸気管内圧力Pmrとして用いて、上記式(43)により誤差率αを算出する。
このように、式(43)に用いる吸気管内圧力Pmrとして吸気管内圧力センサ40によって検出された吸気管内圧力のサイクル間平均値を用いることにより、式(43)に入力される吸気管内圧力Pmrが、吸気管モデルM20や吸気弁モデルM30で用いられている吸気管内圧力Pmと同様に、吸気管部分23内に生じる圧力脈動の影響を排除した値となっており、よって式(43)によって正確に誤差率αを算出することができるようになる。また、誤差率αを算出するにあたって吸気管内圧力センサ40の出力に含まれているノイズの影響を抑制することができる。
次に、上記実施形態の変更例について説明する。上記実施形態では、誤差率αを算出した後、この誤差率αを値aおよび値bに乗算して値a、bの両マップ値を同じ割合で修正している。しかしながら、値aおよび値bの両マップ値に必ずしも同程度の誤差が生じている場合ばかりではなく、値aのみの誤差が大きい場合や値bのみの誤差が大きい場合も存在する。したがって、値aおよび値bのマップ値を正確に修正するためには、値aおよび値bを同率で修正せずに、値aおよび値bを別々に修正する必要がある。
そこで、本変更例では、上述したように算出された誤差率αに基づいて値aおよび値bを別々に修正することとしている。本変更例では、まず、機関回転数NEおよび吸気弁開弁時期VVTが或るマップ領域にある場合において、上記式(43)に基づいて誤差率αを算出すると共に、誤差率αの算出における積分期間、すなわち機関回転数NEおよび吸気弁開弁時期VVTが上記マップ領域にある期間中における吸気管内圧力Pmの平均値Pmaveを算出する。便宜上、このようにして算出された誤差率および吸気管内圧力の平均値をそれぞれα1、Pm1とする。その後、再び機関回転数NEおよび吸気弁開弁時期VVTが上記マップ領域にある場合において、上述したように誤差率αと吸気管内圧力の平均値Pmaveを算出する。便宜上、このようにして算出された誤差率および吸気管内圧力の平均値をそれぞれα2、Pm2とする。
図28は、機関回転数NEおよび吸気弁開弁時期VVTが上記マップ領域にある場合における吸気管内圧力Pmと筒内吸入空気流量mcとの関係を示した図である。値a、bのマップ値が修正される前に吸気弁モデルM30によって算出される筒内吸入空気流量mcと吸気管内圧力Pmとの関係は、例えば、図28に実線で示された関係になっている。
ここで、上述したようにして算出された誤差率α1および吸気管内圧力Pm1を用いて算出されたα1(a・Pm1+b)は吸気管内圧力がPm1であるときの実際の筒内吸入空気流量を正確に表しており、また、誤差率α2および吸気管内圧力Pm2を用いて算出されたα2(a・Pm2+b)は吸気管内圧力がPm2であるときの実際の筒内吸入空気流量を正確に表している。このことから、点(Pm1、α1(a・Pm1+b))および点(Pm2、α2(a・Pm2+b))の二点を通る直線(図28中の破線)は、吸気管内圧力と実際の筒内吸入空気流量との関係を比較的正確に表していると考えられる。
したがって、値a、bのマップ値を修正することで吸気管内圧力Pmと吸気弁モデルM30によって算出される筒内吸入空気流量mcとの関係を、上記二点を通る直線とすることで、吸気弁モデルM30によって算出される筒内吸入空気流量の推定値mcを実際の筒内吸入空気流量とほぼ等しい値にすることができる。
そこで、本実施形態では、上述した誤差率α
1、α
2および吸気管内圧力Pm
1、Pm
2を用いることで、値a、bのマップ値を下記式(51)、(52)により修正することとしている。なお、式(51)、(52)において、値a’および値b’はそれぞれ修正後のマップ値を示している。
このように値a、bのマップ値を修正することで、修正後の値a’および値b’のマップ値を用いた吸気弁モデルM30によって算出される筒内吸入空気流量mcは実際の筒内空乳空気流量とほぼ等しい値となっている。したがって、本変更例によれば、値aおよび値bのマップ値を別々に修正することができ、これにより値aおよび値bのマップ値を正確に修正することができるようになる。
また、吸気弁モデルM30の修正操作においても、スロットルモデルM10における流量係数の修正と同様に、機関回転数NEおよび吸気弁開弁時期VVTが或るマップ領域内に侵入してから上述したような最長学習時間が経過してもまだそのマップ領域内にある場合には、機関回転数NEおよび吸気弁開弁時期VVTがこのマップ領域に侵入してから最長学習時間が経過するまでの吸気管内圧力の実測値Pmrを用いて値aおよび値bの誤差率αを算出するようにしている。これにより、値aおよび値bのマップ値の修正を効率的に且つ比較的高い精度で行うことができる。
なお、吸気弁モデルM30の修正操作において用いられる最長学習時間Tmaxも、スロットルモデルM10の修正操作の場合と同様に機関運転状態に応じて変更せしめられる。例えば、上述したように吸気管モデルM20や吸気弁モデルM30においては、パラメータとして吸気管内圧力Pmの実際の値ではなくそのサイクル間平均値が用いられる。したがって、吸気管内圧力の実測値Pmrを用いて吸気弁モデルM30の値aおよび値bの誤差率αを算出する場合には、吸気管内圧力の実測値Pmrの積分値を算出するにあたってサイクル数が多いことが必要とされる。よって、機関回転数が高いときには単位時間当たりのサイクル数が多くなるため最長学習時間が短いものとされ、逆に機関回転数が低いときには単位時間当たりのサイクル数が少なくなるため最長学習時間が長いものとされる。
さらに、吸気弁モデルM30の修正操作においても、スロットルモデルM10における流量係数の修正と同様に、機関回転数NEおよび吸気弁開弁時期VVTが或るマップ領域内に侵入してから最短学習時間が経過せずにそのマップ領域から離脱した場合には値aおよび値bのマップ値の修正を行わないこととしている。これにより、吸気管内圧力センサ40の実測値に存在するノイズ等の影響を受けて値aおよび値bの誤差率αの算出精度が低下してしまうのが防止される。
或いは、機関回転数NEおよび吸気弁開弁時期VVTが或るマップ領域に侵入してから上記最長学習時間Tmaxよりも長い時間の経過後にそのマップ領域から離脱した場合に、機関回転数NEおよび吸気弁開弁時期VVTが中心領域にあったときの吸気管内圧力センサ40の実測値に基づいて値aおよび値bのマップ値を修正するようにしてもよい。この場合、中心領域B’は、上述したスロットルモデルM10の修正操作の場合と同様に、機関回転数NEおよび吸気弁開弁時期VVTが中心領域B’内にある期間が最長学習時間Tmaxと等しくなるように定められる。図29に示した例で説明すると、中心領域B’の下限機関回転数NE3および上限機関回転数NE4と下限吸気弁開弁時期VVT3および上限吸気弁開弁時期VVT4とは、機関回転数NEが下限機関回転数NE3と上限機関回転数NE4との間にあって且つ吸気弁開弁時期VVTが下限吸気弁開弁時期VVT3と上限吸気弁開弁時期VVT4との間にある期間(時刻t3〜時刻t4)が最長学習時間Tmaxと等しくなるように定められる。
したがって、図29に示した例では、誤差率αの算出は、下記式(53)によって行われる。式(53)からわかるように、吸気管内圧力の実測値Pmrの積分は、マップ領域Bに侵入・離脱した時刻t
0から時刻t
1に亘って行われるのではなく、中心領域B’に侵入・離脱した時刻t
3から時刻t
4に亘って行われる。これにより、この誤差率αに基づいて修正された値aおよび値bのマップ値は、或る特定のマップ領域の中心の機関回転数および吸気弁開弁時期に対応するような値とされ、これにより値a、bのマップ値をそのマップ領域内の如何なる機関回転数NEおよび吸気弁開弁時期VVTに対しても比較的適した値とすることができる。