図1は、本発明の一実施例としてのエンジンの状態推定装置を備えるエンジン装置10の構成の概略を示す構成図であり、図2は、エンジン装置10の電子制御ユニット70に入出力される信号の一例を示す説明図である。実施例のエンジン装置10は、図1や図2に示すように、エンジン12と電子制御ユニット70とを備える。このエンジン装置10は、エンジン12からの動力を用いて走行する一般的な車両や、エンジン12に加えてモータを備える各種のハイブリッド車両などに搭載される。実施例の状態推定装置としては、電子制御ユニット70が該当する。
エンジン12は、ガソリンや軽油などの燃料を用いて吸気、圧縮、膨張、排気の4行程により動力を出力する4気筒の内燃機関として構成されている。このエンジン12は、エアクリーナ22により清浄された空気を吸気管23に吸入してスロットルバルブ26、サージタンク27の順に通過させると共に吸気管23のサージタンク27よりも下流側で燃料噴射弁28から燃料を噴射し、空気と燃料とを混合する。以下、吸気管23のスロットルバルブ26よりも上流側の部分を「スロットル上流部23u」といい、スロットルバルブ26よりも下流側の部分を「スロットル下流部23d」という。そして、この混合気を吸気バルブ29を介して燃焼室30に吸入し、点火プラグ31による電気火花により爆発燃焼させて、爆発燃焼によるエネルギにより押し下げられるピストン32の往復運動をクランクシャフト14の回転運動に変換する。燃焼室30から排気バルブ33を介して排気管35に排出される排気は、浄化装置37,38を介して外気に排出されると共に排気再循環装置(以下、「EGR(Exhaust Gas Recirculation)装置」という)40を介して吸気管23のサージタンク27に供給(還流)される。
浄化装置37,38は、それぞれ、一酸化炭素(CO)や炭化水素(HC)、窒素酸化物(NOx)の有害成分を浄化する触媒(三元触媒)37a,38aを有する。EGR装置40は、EGR管42とEGRバルブ44とを備える。EGR管42は、排気管35の浄化装置37と浄化装置38との間と吸気管23のサージタンク27とを連絡する。EGRバルブ44は、EGR管42に設けられ、電子制御ユニット70により制御される。このEGR装置40では、EGRバルブ44の開度の調節により、排気管35の排気の還流量が調節されて吸気管23に還流する。エンジン12は、このようにして空気と排気と燃料との混合気を燃焼室30に吸引することができる。
また、エンジン12は、可変バルブタイミング装置34を更に備える。可変バルブタイミング装置34は、吸気バルブ29や排気バルブ33の開閉タイミングをそれぞれ連続的に変更可能に構成されている。
過給機50は、ターボチャージャとして構成されており、タービン51と、コンプレッサ52と、ウェイストゲートバルブ54と、ブローオフバルブ55とを備える。タービン51は、排気管35の浄化装置37よりも上流側に配置されている。コンプレッサ52は、吸気管23のスロットルバルブ26よりも上流側に配置されており、タービン51に回転軸53を介して連結されている。ウェイストゲートバルブ54は、排気管35のタービン51よりも上流側と下流側とを連絡するバイパス管36に設けられており、電子制御ユニット70により制御される。ブローオフバルブ55は、吸気管23のコンプレッサ52よりも上流側と下流側とを連絡するバイパス管24に設けられており、電子制御ユニット70により制御される。
この過給機50では、ウェイストゲートバルブ54の開度の調節により、バイパス管36を流通する排気量とタービン51を流通する排気量との配分比が調節され、タービン51の回転駆動力が調節され、コンプレッサ52による圧縮空気量が調節され、エンジン12の過給圧(吸気圧)が調節される。なお、エンジン12は、ウェイストゲートバルブ54が全開のときには、過給機50を備えない自然吸気タイプのエンジンと同様に動作可能になっている。
また、過給機50では、吸気管23のコンプレッサ52よりも下流側の圧力が上流側の圧力よりもある程度高いときに、ブローオフバルブ55の開弁により、コンプレッサ52よりも下流側の余剰圧力を解放することができる。なお、ブローオフバルブ55は、電子制御ユニット70により制御されるバルブに代えて、吸気管23のコンプレッサ52よりも下流側の圧力が上流側の圧力よりもある程度高くなると開弁する逆止弁が用いられるものとしてもよい。
インタークーラ25は、吸気管23のコンプレッサ52とスロットルバルブ26との間に配置されている。このインタークーラ25は、コンプレッサ52により圧縮された空気と図示しない冷却装置の冷却水との熱交換を行なう。
電子制御ユニット70は、図2に示すように、CPU71やROM72、RAM73、フラッシュメモリ74、入出力ポートを有するマイクロコンピュータを備える。電子制御ユニット70には、各種センサからの信号が入力ポートを介して入力される。電子制御ユニット70に入力される信号としては、例えば、エンジン12のクランクシャフト14の回転位置を検出するクランクポジションセンサ14aからのクランク角θcrや、エンジン12の冷却水の温度を検出する水温センサ15からの冷却水温Tw、スロットルバルブ26のポジション(開度)を検出するスロットルポジションセンサ26aからのスロットル開度θtを挙げることができる。吸気バルブ29を開閉するインテークカムシャフトの回転位置や排気バルブ33を開閉するエキゾーストカムシャフトの回転位置を検出するカムポジションセンサ16からのカム角θci,θcoも挙げることができる。吸気管23のスロットルバルブ26よりも上流側に取り付けられたエアフローメータ23aからの吸入空気量Qaや、吸気管23のスロットルバルブ26よりも上流側に取り付けられた吸気温センサ23tからの吸気温Ta、吸気管23のスロットルバルブ26よりも上流側に取り付けられた吸気圧センサ23bからの吸気圧Paも挙げることができる。サージタンク27に取り付けられた圧力センサ27aからの吸気管23のスロットル下流部23dの気体の圧力である第1下流部圧Psや、サージタンク27に取り付けられた温度センサ27tからの吸気管23のスロットル下流部23dの空気の温度である下流部温Tsも挙げることができる。排気管35の浄化装置37よりも上流側に取り付けられたフロント空燃比センサ39aからのフロント空燃比AF1や、排気管35の浄化装置37と浄化装置38との間に取り付けられたリヤ空燃比センサ39bからのリヤ空燃比AF2も挙げることができる。EGRバルブ44の開度を検出する開度センサ45からのEGRバルブ44の開度θegrも挙げることができる。吸気管23のコンプレッサ52とインタークーラ25との間に取り付けられた過給圧センサ23cからの過給圧Pcを挙げることができる。
電子制御ユニット70からは、各種制御信号が出力ポートを介して出力される。電子制御ユニット70から出力される信号としては、例えば、エンジン12のスロットルバルブ26への制御信号や、燃料噴射弁28への制御信号、点火プラグ31への制御信号、可変バルブタイミング装置34への制御信号を挙げることができる。EGRバルブ44への制御信号も挙げることができる。ウェイストゲートバルブ54への制御信号や、ブローオフバルブ55への制御信号を挙げることができる。
電子制御ユニット70は、クランクポジションセンサ14aからのクランクシャフト14のクランク角θcrに基づいて、エンジン12の回転数Neを演算する。また、電子制御ユニット70は、エアフローメータ23aからの吸入空気量Qaとエンジン12の回転数Neとに基づいて、負荷率(エンジン12の1サイクルあたりの行程容積に対する1サイクルで実際に吸入される空気の容積の割合)KLを演算する。更に、電子制御ユニット70は、クランクポジションセンサ14aからのクランクシャフト14のクランク角θcrに対するカムポジションセンサ16からのインテークカムシャフトやエキゾーストカムシャフトのカム角θci,θcoの角度(θci-θcr),(θco-θcr)に基づいて、吸気バルブ29や排気バルブ33の開閉タイミングVTi,VToを演算する。
こうして構成された実施例のエンジンの状態推定装置を搭載したエンジン装置10では、電子制御ユニット70のCPU71は、エンジン12の要求負荷率KL*に基づいて、エンジン12の運転制御(吸入空気量制御や燃料噴射制御、点火制御、可変バルブタイミング制御)やEGR制御、過給制御を行なう。吸入空気量制御については後述する。燃料噴射制御では、燃料噴射弁28からの燃料噴射量を制御する。点火制御では、点火プラグ31の点火時期を制御する。可変バルブタイミング制御では、可変バルブタイミング装置34により吸気バルブ29や排気バルブ33の開閉タイミングを制御する。EGR制御では、EGRバルブ44の開度を制御する。過給制御では、ウェイストゲートバルブ54の開度を制御する。
次に、実施例のエンジン装置10における吸入空気量制御について説明する。吸入空気量制御は、負荷率(エンジン12の1サイクルあたりの行程容積に対する1サイクルで実際に吸入される空気の容積の割合)KLを上限負荷率KLmaxで上限ガードしたものを制御用負荷率KLexeに設定し(負荷率KLと上限負荷率KLmaxのうち小さいほうの値を制御用負荷率KLexeに設定し)、制御用負荷率KLexeが要求負荷率KL*となるようにスロットルバルブ26の開度を調整する。負荷率KLは、基本的には、エアフローメータ23aからの吸入空気量Qaとエンジン12の回転数Neとに基づいて演算される。しかし、過給機50が過給を行なっている状態で減速によりスロットル開度θtが値0になっているときは、過給による残圧の影響でエアフローメータ23aによる検出値の精度が悪くなり、負荷率KLの精度が悪くなる。そのため、過給機50が過給を行なっている状態で減速によりスロットル開度θtが値0になっているときは、吸気管23のスロットルバルブ26よりも上流側に取り付けられた吸気圧センサ23bからの吸気圧(吸気管23内の圧力)Paと負荷率設定用マップとから負荷率KLを導出する。負荷率設定用マップは、エンジン12が適正に燃焼している場合の吸気圧Paと負荷率KLとの関係として予め実験や解析などにより定められたマップである。上限負荷率KLmaxは、後述するエアモデルを用いて演算される。実施例では、エアフローメータ23aからの吸入空気量Qaとエンジン12の回転数Neとから演算する負荷率KLを用いた吸入空気量制御を「LJ制御」と称することがある。また、吸気管23のスロットルバルブ26よりも上流側に取り付けられた吸気圧センサ23bからの吸気圧Paと負荷率設定用マップとから導出される負荷率KLを用いた吸入空気量制御を「DJ制御」と称することがある。
ここで、エアモデルについて説明する。実施例のエンジン装置10では、電子制御ユニット70のCPU71は、図3のエアモデルを用いて、スロットル通過空気量mtや第2下流部圧Pm、下流部温Tm、筒内流入空気量mci、下流部体積Vm、筒内充填空気量mcfを演算する(推定する)。ここで、スロットル通過空気量mtは、単位時間当たりにスロットルバルブ26を通過する空気の流量である。第2下流部圧Pmは、現在のスロットル開度θtに応じた吸気管23のスロットル下流部23dの気体の圧力である。下流部温Tmは、スロットル下流部23dの空気の温度である。筒内流入空気量mciは、単位時間当たりに燃焼室30に流入する空気の流量(スロットル下流部23dから全気筒の燃焼室30に流入する空気の流量を平均化した値)である。下流部体積Vmは、スロットル下流部23dの体積である。筒内充填空気量mcfは、吸気バルブ29が閉弁したときに燃焼室30内に充填されている空気の量である。演算したスロットル通過空気量mtや第2下流部圧Pm、下流部温Tm、筒内流入空気量mci、下流部体積Vm、筒内充填空気量mcfのうち、筒内充填空気量mcfは、エンジン12の吸入空気量制御に用いられる。
図3のエアモデルは、スロットルモデルM10と、吸気管モデルM20と、吸気バルブモデルM30と、を有する。スロットルモデルM10には、スロットル開度θtや吸気温Ta、吸気圧Pa、第2下流部圧Pmが入力される。スロットル開度θtは、スロットルポジションセンサ26aにより検出された値が入力される。吸気温Taは、吸気温センサ23tにより検出された値が入力される。吸気圧Paは、吸気圧センサ23bにより検出された値が入力される。第2下流部圧Pmは、吸気管モデルM20により演算された値が入力される。スロットルモデルM10は、スロットル開度θtや吸気温Ta、吸気圧Pa、第2下流部圧PmをスロットルモデルM10のモデル式に代入してスロットル通過空気量mtを演算し、演算したスロットル通過空気量mtを吸気管モデルM20に出力する。
吸気管モデルM20には、吸気温Taやスロットル通過空気量mt、筒内流入空気量mci、下流部体積Vmが入力される。吸気温Taは、吸気温センサ23tにより検出された値が入力される。スロットル通過空気量mtは、スロットルモデルM10により演算され値が入力される。筒内流入空気量mciは、吸気バルブモデルM30により演算された値が入力される。下流部体積Vmは、下流部体積ベース値Vm0が入力される。下流部体積ベース値Vm0は、スロットル下流部23dの体積のベース値(例えば、エンジン装置10の製造完了時の値)として予め定められた値である。吸気管モデルM20は、吸気温Taやスロットル通過空気量mt、筒内流入空気量mci、下流部体積Vmを吸気管モデルM20のモデル式に代入して第2下流部圧Pmおよび下流部温Tmを演算し、演算した第2下流部圧PmをスロットルモデルM10および吸気バルブモデルM30に出力すると共に、演算した下流部温Tmを吸気バルブモデルM30に出力する。
吸気バルブモデルM30には、吸気温Taや回転数Ne、吸気バルブ29や排気バルブ33の開閉タイミングVTi,VTo、第2下流部圧Pm、下流部温Tmが入力される。吸気温Taは、吸気温センサ23tにより検出された値が入力される。回転数Neは、クランクポジションセンサ14aからのクランクシャフト14のクランク角θcrに基づいて演算された値が入力される。吸気バルブ29や排気バルブ33の開閉タイミングVTi,VToは、クランクポジションセンサ14aからのクランクシャフト14のクランク角θcrに対するカムポジションセンサ16からのインテークカムシャフトやエキゾーストカムシャフトのカム角θci,θcoの角度(θci-θcr),(θco-θcr)に基づいて演算された値が入力される。第2下流部圧Pmおよび下流部温Tmは、吸気管モデルM20により演算された値が入力される。吸気バルブモデルM30は、吸気温Taや回転数Ne、吸気バルブ29や排気バルブ33の開閉タイミングVTi,VTo、第2下流部圧Pm、下流部温Tmを吸気バルブモデルM30のモデル式に代入して筒内流入空気量mciを演算し、これを筒内充填空気量mcfに変換して出力すると共に吸気管モデルM20に出力する。
スロットルモデルM10、吸気管モデルM20、吸気バルブモデルM30の詳細について順に説明する。最初に、スロットルモデルM10の詳細について説明する。スロットルモデルM10は、式(1)に示すように、スロットル開度θtと吸気温Taと吸気圧Paと第2下流部圧Pmとを用いてスロットル通過空気量mtを演算する。
ここで、式(1)中、「μ(θt)」は、スロットルバルブ26における流量係数である。この流量係数μ(θt)は、実施例では、スロットル開度θtを流量係数推定用マップに適用して推定される。ここで、流量係数推定用マップは、スロットル開度θtと流量係数μ(θt)との関係として予め実験や解析により定められ、フラッシュメモリ74に記憶されている。図4は、流量係数推定用マップの一例を示す説明図である。流量係数μ(θt)は、図示するように、スロットル開度θtが大きいほど小さくなるように設定される。
式(1)中、「A(θt)」は、スロットルバルブ26の開口断面積である。この開口断面積A(θt)は、実施例では、スロットル開度θtを開口断面積推定用マップに適用して推定される。ここで、開口断面積推定用マップは、スロットル開度θtと開口断面積A(θt)との関係として予め実験や解析により定められ、フラッシュメモリ74に記憶されている。図5は、開口断面積推定用マップの一例を示す説明図である。開口断面積A(θt)は、図示するように、スロットル開度θtが所定値θt1未満の領域では、スロットル開度θtが大きいほど所定値A1に向けて大きくなり、スロットル開度θtが所定値θt1以上の領域では、所定値A1で一定となるように設定される。なお、スロットル開度θtと、流量係数μ(θt)と開口断面積A(θt)との積としての値μ(θt)・A(θt)と、の予め定められた関係にスロットル開度θtが適用されて値μ(θt)・A(θt)が推定されるものとしてもよい。
式(1)中、「R」は、気体定数に関する定数である。この定数Rは、気体定数を1mol当たりの気体(空気)の質量で除した値に相当する。式(1)中、「Φ(Pm/Pa)」は、式(2)および式(3)により得られる関数である。式(2)および式(3)中、「κ」は、比熱比である。この比熱比は、一定値とした。この関数Φ(Pm/Pa)は、図6に示すように、マップとして表わすことができる。したがって、式(2)および式(3)に代えて、図6のマップに、第2下流部圧Pmと吸気圧Paとを適用して、関数Φ(Pm/Pa)の値を求めるものとしてもよい。
図7は、スロットルモデルM10についての説明図である。上述の式(1)~式(3)は、以下のようにして得られる。最初に、スロットル上流部23uの気体の圧力を吸気圧Pa、スロットル上流部23uの気体の温度を吸気温Ta、スロットル下流部23dの気体の圧力を第2下流部圧Pmとする。そして、図7のスロットルモデルM10に対して質量保存則とエネルギ保存則と運動量保存則とを適用し、更に、気体の状態方程式と比熱比の方程式とマイヤーの関係式とを利用する。これにより、式(1)~式(3)が得られる。
次に、吸気管モデルM20の詳細について説明する。吸気管モデルM20は、式(4)および式(5)に示すように、吸気温Taとスロットル通過空気量mtと筒内流入空気量mciと下流部体積Vmと定数Rと比熱比κとを用いて第2下流部圧Pmおよび下流部温Tmを演算する。
図8は、吸気管モデルM20についての説明図である。図8から分かるように、スロットル下流部23dの総気体量(総空気量)をMとすると、総気体量Mの時間変化量は、スロットル下流部23dに流入する気体の流量すなわちスロットル通過空気量mtと、スロットル下流部23dから流出する気体の流量すなわち筒内流入空気量mciと、の差に等しい。このため、質量保存則により、式(6)が得られる。そして、この式(6)とスロットル下流部23dにおける気体の状態方程式(Pm・Vm=M・R・Tm)とにより、式(4)が得られる。
また、スロットル下流部23dの気体のエネルギM・Cv・Tmの時間変化量は、スロットル下流部23dに流入する気体のエネルギと、スロットル下流部23dから流出する気体のエネルギと、の差に等しい。このため、スロットル下流部23dに流入する気体の温度を吸気温Ta、スロットル下流部23dから流出する気体の温度を下流部温Tmとすると、エネルギ保存則により、式(7)が得られる。ここで、式(7)中、「Cp」は空気の定圧比熱であり、「Cv」は空気の定容比熱である、そして、この式(7)と上述の気体の状態方程式とにより、式(5)が得られる。
次に、吸気バルブモデルM30の詳細について説明する。吸気バルブモデルM30は、式(8)に示すように、吸気温Taと第2下流部圧Pmと下流部温Tmとを用いて筒内流入空気量mciを演算する。ここで、式(8)中、「a」および「b」は、エンジン12の回転数Neと、吸気バルブ29や排気バルブ33の開閉タイミングVTi,VToとに基づいて定められる。
図9は、吸気バルブモデルM30についての説明図である。一般に、筒内充填空気量mcfは、吸気バルブ29の閉弁時に確定し、そのときの燃焼室30内の圧力に比例する。また、吸気バルブ29の閉弁時の燃焼室30内の圧力は、吸気バルブ29よりも上流側の気体の圧力、具体的には、第2下流部圧Pmと等しいとみなすことができる。したがって、筒内充填空気量mcfは、第2下流部圧Pmに比例すると近似することができる。
ここで、所定時間(例えば、クランク角θcrの720°分)当たりにスロットル下流部23dから全気筒の燃焼室30に流入する空気の流量をその所定時間で除算したもの(平均化したもの)を筒内流入空気量mciとすると、上述のように、筒内充填空気量mcfが第2下流部圧Pmに比例することから、筒内流入空気量mciも第2下流部圧Pmに比例すると考えられる。このことから、理論および経験則に基づいて、上述の式(8)が得られる。式(8)中、「a」は、比例係数であり、「b」は、燃焼室30内に残存する既燃ガスを表わす適合値である。この適合値は、排気バルブ33の閉弁時に燃焼室30内に残存する既燃ガス量を、クランクシャフト14が180°回転するのに要する時間ΔT180°で除して得られる。ここで、180°は、1サイクル(吸気、圧縮、膨張、排気の4行程)でクランクシャフト14が回転する角度720°をエンジン12の気筒数4で除した角度を意味する。また、エンジン12の実際の運転では、下流部温Tmが大きく変化する場合がある。このため、式(8)では、下流部温Tmの変化を考慮した補正として、理論および経験則に基づいて導いた「Ta/Tm」を「a・Pm-b」に乗じるものとした。
図10は、筒内流入空気量mciおよび筒内充填空気量mcfについての説明図である。図10中、横軸は、クランクシャフト14のクランク角θcrであり、縦軸は、単位時間当たりにスロットル下流部23dから各気筒の燃焼室30に実際に流入する空気の流量である。実施例では、4気筒のエンジン12を用いるから、吸気バルブ29は、例えば、1番気筒、3番気筒、4番気筒、2番気筒の順に開弁する。そして、図示するように、各気筒に対応する吸気バルブ29の開弁量に応じて、スロットル下流部23dから各気筒の燃焼室30に空気が流入する。例えば、スロットル下流部23dから各気筒の燃焼室30に流入する空気の流量は、図10に破線で示した通りである。また、この変位を総合して、スロットル下流部23dから全気筒の燃焼室30に流入する空気の流量は、図10に実線で示した通りである。更に、1番気筒の筒内充填空気量mcfは、図10にハッチングで示した通りである。
これに対して、スロットル下流部23dから全気筒の燃焼室30に流入する空気の流量を平均化したものが筒内流入空気量mciであり、図10に一点鎖線で示した通りである。そして、この筒内流入空気量mciに時間ΔT180°を乗じたものが筒内充填空気量mcfとなる。したがって、吸気バルブモデルM30により演算された筒内流入空気量mciに時間ΔT180°を乗算することにより、筒内充填空気量mcfを演算することができる。より詳細には、筒内充填空気量mcfが吸気バルブ29の閉弁時の圧力に比例することを考慮して、吸気バルブ29の閉弁時の筒内流入空気量mciに時間ΔT180°を乗算したものが筒内充填空気量mcfとされる。
続いて、上限負荷率KLmaxを設定する上限負荷率設定処理について説明する。図11は、上限負荷率設定処理の一例を示すブロック図である。上限負荷率設定処理は、ガード係数設定処理S100と、なまし処理S102と、乗算処理S104、S106と、加算処理S108と、変換処理S110と、を有する。
ガード係数設定処理S100には、スロットル開度θt、回転数Neが入力される。スロットル開度θtは、スロットルポジションセンサ26aにより検出された値が入力される。回転数Neは、クランクポジションセンサ14aからのクランクシャフト14のクランク角θcrに基づいて演算された値が入力される。ガード係数設定処理S100は、マップMapからスロットル開度θt、回転数Neに対応するガード係数(上限係数)Cgを設定する。図12は、マップMapの一例を示す説明図である。ガード係数Cgは、値1より大きく、回転数Neが所定回転数Neref以上のときには、回転数Neが所定回転数Neref未満のときに比して、小さくなるように設定される。エンジン12の回転数Neが低回転のとき、すなわち、ピストン32がゆっくり動いているときには、筒内に吸入される空気量は、燃焼不良が発生していてもさほど少なくならない。こうしたことを考慮して、所定回転数Nerefは、エンジン12に燃焼不良が発生したときに、適正な燃焼が行なわれているときに比して、筒内に吸入される空気量が少なくなる回転数の下限値に設定されている。ガード係数Cgは、回転数Neが所定回転数Neref以上のときには、スロットル開度θtが所定開度θtrefになると徐々に大きくなるように設定される。これは、スロットル開度θt(スロットルバルブ26の開口断面積)が小さいほどスロットルバルブ26の個体バラツキによる流量感度が大きくなることに基づく。
なまし処理S102には、ガード係数設定処理S100により演算されたガード係数Cgが入力される。なまし処理S102は、スロットル開度θtの変化に対する筒内流入空気量mciの応答遅れを考慮して、ガード係数Cgの変化を緩やかにする処理である。
乗算処理S104には、筒内流入空気量mciや移行係数Ct、ガード係数Cgが入力される。筒内流入空気量mciは、吸気バルブモデルM30により演算された値が入力される。移行係数Ctは、吸入空気量制御としてDJ制御を実行しているときには値1に設定され、吸入空気量制御としてLJ制御を実行しているときには値0に設定される値である。ガード係数Cgは、なまし処理S102により設定された値が入力される。乗算処理S104は、筒内流入空気量mciと移行係数Ctとガード係数Cgとを乗じた上限ガード値mmax2を加算処理S108に出力する。したがって、上限ガード値mmax2は、次式(9)により演算される。上限ガード値mmax2は、DJ制御を実行しているときには、筒内流入空気量mciと移行係数Ctとを乗じた値になり、LJ制御を実行しているときには、値0になる。
mmax2=mci・Ct・Cg ・・・(9)
乗算処理S106には、筒内流入空気量mciや値1から移行係数Ctを減じた値(1-Ct)が入力される。筒内流入空気量mciは、吸気バルブモデルM30により演算された値が入力される。移行係数Ctは、吸入空気量制御としてDJ制御を実行しているときには値1に設定され、吸入空気量制御としてLJ制御を実行しているときには値0に設定される値である。乗算処理S104は、筒内流入空気量mciと値1から移行係数Ctを減じた値とを乗じた上限ガード値mmax1を加算処理S108に出力する。したがって、上限ガード値mmax1は、次式(10)により演算される。上限ガード値mmax1は、LJ制御を実行しているときには、筒内流入空気量mciになり、DJ制御を実行しているときには、値0になる。
mmax1=mci・(1-Ct) ・・・(10)
加算処理S108には、上限ガード値mmax1、mmax2が入力される。上限ガード値mmax1は、乗算処理S106により演算された値が入力される。上限ガード値mmax2は、乗算処理S104により演算された値が入力される。加算処理S108は、上限ガード値mmax1に上限ガード値mmax2を加えた上限ガード値mmaxを演算し、演算した上限ガード値mmaxを変換処理S110に出力する。したがって、上限ガード値mmaxは、次式(11)により演算される。LJ制御を実行しているときには、上限ガード値mmax2は値0になることから、上限ガード値mmaxは、上限ガード値mmax1(筒内流入空気量mci)となる。DJ制御を実行しているときには、上限ガード値mmax1は値0になることから、上限ガード値mmaxは、上限ガード値mmax2となる。
mmax=mmax1+mmax2 ・・・(11)
変換処理S110には、上限ガード値mmaxが入力される。上限ガード値mmaxは、加算処理S108で演算した値が入力される。変換処理S110は、演算した上限ガード値mmaxを負荷率に換算した上限負荷率KLmaxを演算する。LJ制御を実行しているときには、上限ガード値mmaxは上限ガード値mmax1(筒内流入空気量mci)になることから、上限負荷率KLmaxは、上限ガード値mmax1(筒内流入空気量mci)を負荷率に換算した値になる。DJ制御を実行しているときには、上限ガード値mmaxは上限ガード値mmax2になることから、上限負荷率KLmaxは、上限ガード値mmax2を負荷率に換算した値になる。
こうして上限負荷率KLmaxを演算することにより、LJ制御を実行しているときには、エアフローメータ23aからの吸入空気量Qaを用いて演算した負荷率KLを上限負荷率KLmax(筒内流入空気量mci)で上限ガードしたものを制御用負荷率KLexeに設定し、制御用負荷率KLexeが要求負荷率KL*となるようにスロットルバルブ26の開度を調整する。LJ制御では、エアフローメータ23aからの吸入空気量Qaを用いて演算した負荷率KLと筒内流入空気量mciである上限負荷率KLmaxとの乖離が小さいことから、エアフローメータ23aからの吸入空気量Qaを用いて演算した負荷率KLに近い値を制御用負荷率KLexeとして、スロットルバルブ26の開度を調整することになる。
DJ制御を実行しているときには、吸気圧センサ23bからの吸気圧Paを用いて設定した負荷率KLを上限負荷率KLmax(上限ガード値mmax2)で上限ガードしたものを制御用負荷率KLexeに設定し、制御用負荷率KLexeが要求負荷率KL*となるようにスロットルバルブ26の開度を調整する。DJ制御では、上述したように、吸気圧センサ23bからの吸気圧Paを用いて設定した負荷率KLが実際の負荷率より過度に大きくなることがある。そのため、エンジン12の燃焼不良が発生しているときに、DJ制御が実行されると、吸気圧センサ23bからの吸気圧Paを用いて設定した負荷率KLを制御用負荷率KLexeに設定すると、過剰な燃料が噴射されてリッチな状態となり、燃焼不良が更に継続する場合がある。実施例では、DJ制御を実行しているときには、負荷率KLを上限負荷率KLmax(上限ガード値mmax2)で上限ガードしたものを制御用負荷率KLexeに設定することにより、過剰な燃料が噴射されてリッチな状態となることを抑制できる。これにより、エンジン12の燃焼不良の継続を抑制できる。
以上説明した実施例のエンジンの状態推定装置を搭載したエンジン装置10では、推定した筒内流入空気量mciと、エンジン12の回転数Neに基づくガード係数(上限係数)Cgと、を用いて、筒内流入空気量mciの上限ガード値mmax2を演算し、吸気圧Paに基づく負荷率KLと、上限負荷率KLmaxと、のうち小さいほうの値を制御用負荷率KLexeに設定(推定)することにより、エンジン12の燃焼不良の継続を抑制できる。
実施例のエンジンの状態推定装置を搭載したエンジン装置10では、乗算処理S104で、筒内流入空気量mciと移行係数Ctとガード係数Cgとを乗じた値を上限ガード値mmax2として演算している。しかし、LJ制御からDJ制御へ移行する場合において上限ガード値mmax2が吸気圧Paを用いて設定した負荷率KL未満のときには、直ちに上限負荷率KLmax(上限ガード値mmax2)で負荷率KLを上限ガードしたものを制御用負荷率KLexeとすると、実際の負荷率が急変することがある。こうした負荷率の急変を抑制するために、LJ制御からDJ制御へ移行する場合において上限ガード値mmax2が負荷率KL未満のときに、移行係数Ctを値0から値1に向けて徐々に変化させてもよい。同様に、DJ制御からLJ制御へ移行する場合において上限ガード値mmax2が吸気圧Paを用いて設定した負荷率KL未満のときには、移行係数Ctを値1から値0に向けて徐々に変化させてもよい。
実施例のエンジンの状態推定装置を搭載したエンジン装置10では、エンジン12として、過給機50を備えている。しかしながら、過給機50を備えていないものとして、吸入空気量制御として、上述のDJ制御を常時行なっていてもよい。
実施例のエンジンの状態推定装置を搭載したエンジン装置10では、吸気圧Paに基づく負荷率KLと、設定した上限ガード値mmaxを負荷率に変換した上限負荷率KLmaxと、のうち小さいほうの値を、制御用負荷率KLexeと推定している。しかし、吸気圧Paに基づく吸入空気量と、設定した上限ガード値mmaxと、のうち小さいほうの値を、吸入空気量と推定して、吸入空気量制御において、推定した吸入空気量がエンジン12の目標トルクTe*に対応する目標吸入空気量Qa*になるようにスロットル開度θtを調整してもよい。
実施例や変形例のエンジン装置10では、エンジン12は、4気筒として構成されるものとしたが、6気筒や8気筒などとして構成されるものとしてもよい。また、エンジン12は、EGR装置40を備えるものとしたが、EGR装置40を備えないものとしてもよい。
実施例の主要な要素と課題を解決するための手段の欄に記載した発明の主要な要素との対応関係について説明する。実施例では、電子制御ユニット70が「エンジンの状態推定装置」に相当する。
なお、実施例の主要な要素と課題を解決するための手段の欄に記載した発明の主要な要素との対応関係は、実施例が課題を解決するための手段の欄に記載した発明を実施するための形態を具体的に説明するための一例であることから、課題を解決するための手段の欄に記載した発明の要素を限定するものではない。即ち、課題を解決するための手段の欄に記載した発明についての解釈はその欄の記載に基づいて行なわれるべきものであり、実施例は課題を解決するための手段の欄に記載した発明の具体的な一例に過ぎないものである。
以上、本発明を実施するための形態について実施例を用いて説明したが、本発明はこうした実施例に何等限定されるものではなく、本発明の要旨を逸脱しない範囲内において、種々なる形態で実施し得ることは勿論である。