(57)【特許請求の範囲】
【請求項１】
複数の気筒を有する内燃機関の気筒毎に設けられ、筒内圧を検出する筒内圧検出手段と、
気筒毎に、前記筒内圧検出手段の検出信号に基づいて、クランク角度毎の実熱発生率を算出する実熱発生率算出手段と、
前記気筒内の熱発生をモデル化するWiebe関数により算出されるモデル熱発生率の波形が、前記実熱発生率算出手段により算出された実熱発生率の波形に一致するように、Wiebe関数パラメータの値を気筒毎に算出するパラメータ算出手段と、
Wiebe関数パラメータの値と、前記気筒に吸入された空気量の指標となる空気量指標値との対応関係に基づいて、吸入空気量の気筒間ばらつきの状態を推定する吸入空気量気筒間ばらつき推定手段と、
前記推定された吸入空気量の気筒間ばらつきの状態に基づいて、燃料噴射量および／または点火時期を気筒毎に制御する気筒毎制御手段と、
を備え、
前記吸入空気量気筒間ばらつき推定手段は、
前記対応関係を予め記憶した対応関係記憶手段と、
前記パラメータ算出手段により算出された気筒毎のWiebe関数パラメータの値を前記対応関係と照合することにより、吸入空気量の気筒間ばらつきの状態を推定する手段と、
を含むことを特徴とする内燃機関の制御装置。
【請求項２】
前記対応関係は、燃料噴射量が一定の下で吸入空気量を変化させた場合のWiebe関数パラメータ値の変化を表すものであることを特徴とする請求項１記載の内燃機関の制御装置。
【請求項３】
前記気筒毎制御手段は、前記推定された吸入空気量の気筒間ばらつきの状態に基づいて、気筒間の空燃比ばらつきがなくなるように、燃料噴射量を気筒毎に制御する気筒毎燃料噴射量制御手段を含むことを特徴とする請求項１または２記載の内燃機関の制御装置。
【請求項４】
前記気筒毎制御手段は、前記推定された吸入空気量の気筒間ばらつきの状態に基づいて、各気筒の点火時期を、その気筒の空気量および空燃比に応じた点火時期となるように、気筒毎に制御する気筒毎点火時期制御手段を含むことを特徴とする請求項１または２記載の内燃機関の制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、内燃機関の制御装置に関する。
【背景技術】
【０００２】
内燃機関システムにおいて、良好な排気浄化性能および燃費性能を得るためには、空燃比を精度良く制御することが重要である。このため、従来より、吸気通路に設けたエアフローメータで吸入空気量を検出し、その吸入空気量を目標空燃比で除することによって燃料噴射量を算出するとともに、排気通路に設けた空燃比センサで検出した空燃比と目標空燃比との偏差に基づく補正値を燃料噴射量にフィードバックすることで、空燃比を制御する空燃比フィードバック制御が行われている。この従来の空燃比フィードバック制御によれば、内燃機関全体としての空燃比を正確に制御することができる。
【０００３】
特公平３−３９１８４号公報には、筒内圧センサを用いて空燃比等を制御する装置が開示されている。この装置では、まず、燃焼開始が圧縮上死点後になるように点火時期を遅角した状態で、圧縮行程および膨張行程の筒内圧を筒内圧センサによりクランク角度毎に検出する。次いで、圧縮上死点より前の筒内圧力波形を圧縮上死点を介して対称に再現することで、全範囲のモータリング圧力波形を求める。そして、圧縮上死点後の筒内圧力波形から、上記モータリング圧力波形を引き算することによって、燃焼圧力の波形を求め、その燃焼圧力波形に基づいて、空燃比等を制御することとしている。
【０００４】
【特許文献１】特公平３−３９１８４号公報
【特許文献２】特開平６−１０１５６４号公報
【特許文献３】特開２００５−２３８５０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ところで、複数気筒を有する内燃機関の場合には、一般に、燃料を噴射するインジェクタが気筒毎に設けられている。そして、各気筒のインジェクタから燃料を噴射する場合、各気筒に吸入される空気量は等しいとの前提で、各気筒の燃料噴射量は同じにされるのが普通である。
【０００６】
しかしながら、実際には、気筒毎の吸入空気量は必ずしも均等ではなく、気筒間でばらつきが存在する。この原因は、吸気マニホールドの吸気管形状や吸気管長さが気筒毎に異なることなどにあると考えられる。
【０００７】
このように、気筒間で吸入空気量にばらつきが存在することから、内燃機関全体としては目標空燃比に制御されていたとしても、気筒毎に見ると、目標空燃比からのずれ、つまり最適な空燃比からのずれが存在していることとなる。高い排気浄化率を得るには、空燃比を理論空燃比に精度良く制御する必要があるため、上述のような空燃比の気筒間ばらつきの存在は、排気浄化性能に悪影響を及ぼし易い。
【０００８】
また、燃費を改善するには、点火時期を、トルクが最大となる最適な点火時期、つまりＭＢＴ（Minimum advance for the Best Torque）に精度良く制御することが重要である。ＭＢＴは、吸入空気量や空燃比に応じて変化するため、吸入空気量や空燃比の気筒間ばらつきの存在は、燃費性能にも悪影響を及ぼし易い。
【０００９】
この発明は、上記の点に鑑みてなされたものであり、複数の気筒を有する内燃機関において、吸入空気量の気筒間ばらつきに起因する悪影響を有効に抑制することのできる内燃機関の制御装置を提供することを目的とする。
【課題を解決するための手段】
【００１０】
第１の発明は、上記の目的を達成するため、内燃機関の制御装置であって、
複数の気筒を有する内燃機関の気筒毎に設けられ、筒内圧を検出する筒内圧検出手段と、
気筒毎に、前記筒内圧検出手段の検出信号に基づいて、クランク角度毎の実熱発生率を算出する実熱発生率算出手段と、
前記気筒内の熱発生をモデル化するWiebe関数により算出されるモデル熱発生率の波形が、前記実熱発生率算出手段により算出された実熱発生率の波形に一致するように、Wiebe関数パラメータの値を気筒毎に算出するパラメータ算出手段と、
Wiebe関数パラメータの値と、前記気筒に吸入された空気量の指標となる空気量指標値との対応関係に基づいて、吸入空気量の気筒間ばらつきの状態を推定する吸入空気量気筒間ばらつき推定手段と、
前記推定された吸入空気量の気筒間ばらつきの状態に基づいて、燃料噴射量および／または点火時期を気筒毎に制御する気筒毎制御手段と、
を備えることを特徴とする。
【００１１】
また、第２の発明は、第１の発明において、
吸入空気量気筒間ばらつき推定手段は、
前記対応関係を予め記憶した対応関係記憶手段と、
前記パラメータ算出手段により算出された気筒毎のWiebe関数パラメータの値を前記対応関係と照合することにより、吸入空気量の気筒間ばらつきの状態を推定する手段と、
を含むことを特徴とする。
【００１２】
また、第３の発明は、第１または第２の発明において、
前記対応関係は、燃料噴射量が一定の下で吸入空気量を変化させた場合のWiebe関数パラメータ値の変化を表すものであることを特徴とする。
【００１３】
また、第４の発明は、第１乃至第３の発明の何れかにおいて、
前記気筒毎制御手段は、前記推定された吸入空気量の気筒間ばらつきの状態に基づいて、気筒間の空燃比ばらつきがなくなるように、燃料噴射量を気筒毎に制御する気筒毎燃料噴射量制御手段を含むことを特徴とする。
【００１４】
また、第５の発明は、第１乃至第３の発明の何れかにおいて、
前記気筒毎制御手段は、前記推定された吸入空気量の気筒間ばらつきの状態に基づいて、各気筒の点火時期がその気筒の空気量および空燃比に応じた最適な点火時期となるように、点火時期を気筒毎に制御する気筒毎点火時期制御手段を含むことを特徴とする。
【発明の効果】
【００１５】
第１の発明によれば、気筒毎の実筒内圧から算出される気筒毎の実熱発生率に基づいて、熱発生をモデル化するWiebe関数のパラメータの値を気筒毎に算出することができる。そして、Wiebe関数パラメータの値と、筒内吸入空気量の指標となる空気量指標値との対応関係に基づいて、吸入空気量の気筒間ばらつきの状態を高精度に推定することができる。更に、第１の発明によれば、推定された吸入空気量の気筒間ばらつきの状態に応じて、燃料噴射量および点火時期の少なくとも一方を気筒毎に制御することができる。このため、吸入空気量の気筒間ばらつきが排気浄化性能や燃費性能に及ぼす悪影響を有効に抑制することができ、排気浄化性能および燃費性能を向上することができる。
【００１６】
第２の発明によれば、実熱発生率に基づいて算出された気筒毎のWiebe関数パラメータを上記対応関係と照合することにより、吸入空気量の気筒間ばらつきの状態を高精度かつ容易に推定することができる。
【００１７】
第３の発明によれば、上記対応関係を、燃料噴射量が一定の下で吸入空気量を変化させた場合のWiebe関数パラメータ値の変化を表すものとすることができる。このような対応関係を用いることにより、吸入空気量の気筒間ばらつきの状態をより高い精度で推定することができる。
【００１８】
第４の発明によれば、推定された吸入空気量の気筒間ばらつきの状態に基づいて、気筒間の空燃比ばらつきがなくなるように、燃料噴射量を気筒毎に制御することができる。このため、第４の発明によれば、空気量の気筒間ばらつきにかかわらず、各気筒の空燃比を目標空燃比に正確に一致させることができる。よって、排気浄化性能および燃費性能を更に向上することができる。
【００１９】
第５の発明によれば、推定された吸入空気量の気筒間ばらつきの状態に基づいて、各気筒の点火時期がその気筒の空気量および空燃比に応じた最適な点火時期となるように、点火時期を気筒毎に制御することができる。このため、第５の発明によれば、空気量および空燃比の気筒間ばらつきにかかわらず、何れの気筒においても、その気筒の空気量および空燃比に見合った最適な点火時期とすることができる。このため、内燃機関の熱効率をより向上することができ、燃費を更に改善することができる。
【００２０】
実施の形態１．
［システム構成の説明］
図１は、本発明の実施の形態１で用いられるシステム構成を説明するための図である。図１に示すように、本実施形態のシステムは、火花点火式の内燃機関１０を備えている。内燃機関１０は、複数の気筒を有する多気筒内燃機関であり、図１はそのうちの一つの気筒のみを示した図である。内燃機関１０の各気筒には、吸気弁１４、排気弁１６および点火プラグ３０が設けられている。
【００２１】
内燃機関１０には、クランク軸の回転位置（クランク角度）を検出するクランク角センサ１２が設けられている。クランク角センサ１２は、クランク軸が所定回転角だけ回転する毎に、Hi出力とLo出力を反転させるセンサである。クランク角センサ１２の出力によれば、機関回転数NEを検知することもできる。
【００２２】
また、内燃機関１０の各気筒には、筒内圧センサ１８が設けられている。筒内圧センサ１８によれば、気筒内（燃焼室内）に生ずる圧力を検出することができる。
【００２３】
内燃機関１０の吸気通路１９の途中には、サージタンク２０が設けられている。サージタンク２０には、その内部の圧力、すなわち吸気管圧力を検出する吸気圧センサ２１が設置されている。また、吸気通路１９には、その内部を流通する吸入空気量を検出するエアフローメータ２２が配置されている。
【００２４】
エアフローメータ２２の下流には、スロットル弁２４が配置されている。スロットル弁２４の近傍には、スロットル開度TAを検出するスロットル開度センサ２６が組み付けられている。
【００２５】
内燃機関１０の吸気ポートには、ガソリン等の燃料を噴射するためのインジェクタ２８が配設されている。なお、本発明における内燃機関は、このようなポート噴射式の内燃機関に限定されるものではなく、筒内直接噴射式の内燃機関や、ポート噴射と筒内噴射とを併用する内燃機関であってもよい。
【００２６】
内燃機関１０の排気通路３２には、排気ガスの空燃比を検出する空燃比センサ３３が設置されている。また、排気通路３２には、排気ガスを浄化するための触媒３４が組み込まれている。
【００２７】
本実施形態のシステムは、制御装置として、ECU(Electronic Control Unit)５０を備えている。ECU５０には、上述した各種のセンサからセンサ信号が供給されている。ECU５０は、それらのセンサ信号に基づいて、スロットル弁２４や、インジェクタ２８、点火プラグ３０などの各種アクチュエータを制御することができる。特に、本実施形態のシステムでは、インジェクタ２８からの燃料噴射量と、点火プラグ３０の点火時期SAとを気筒毎に個別に制御することができるようになっている。
【００２８】
［実施の形態１の特徴］
前述したように、内燃機関１０のような多気筒機関では、各気筒の吸気管形状や吸気管長さの相違などに起因して、気筒毎の空気量に多少のばらつきが生ずるのが普通である。また、空気量の気筒間ばらつきの状態は、同型式の内燃機関１０であっても、個体差があるものと考えられる。本実施形態では、気筒内の熱発生をモデル化することが可能なWiebe関数を用いて各気筒の実際の吸入空気量を推定することにより、吸入空気量の気筒間ばらつきを推定することとした。以下、本実施形態で用いるWiebe関数について説明する。
【００２９】
（Wiebe関数）
本実施形態のWiebe関数は、下記（１）式あるいは下記（２）式で表される。    
【数１】
0004605060.tif 000002
【００３０】
上記（１）および（２）式中の各記号の意味は、次の通りである。
Ｑ：内燃機関１０の気筒内の発熱量［J］
Ｑtotal：気筒内に供給された燃料の熱量［J］
θ：熱発生開始点を基準とするクランク角度［°］
θｐ：燃焼期間［°］
ｍ：形状パラメータ
ｋ：効率
【００３１】
上記（１）式は、内燃機関１０の気筒内における熱発生率dＱ/dθを算出するためのWiebe関数である。上記（２）式の左辺のＱ/ｋＱtotalは、後述するように、内燃機関１０の気筒内における燃焼割合を表す。つまり、上記（２）式は、燃焼割合Ｑ/ｋＱtotalを算出するためのWiebe関数である。
【００３２】
図２は、内燃機関１０の気筒で生ずる筒内圧の波形の一例を示す図であり、実線はファイアリング時（燃焼時）の筒内圧、破線はモータリング時の筒内圧である。また、図２中、一点鎖線は、ファイアリング時の燃焼期間における熱発生率の波形の一例である。
【００３３】
上記（１）式のWiebe関数によれば、図２中に例示するようなクランク角度毎の熱発生率dＱ/dθを算出することができる。以下の説明では、このWiebe関数に基づいて算出される熱発生率dＱ/dθを「モデル熱発生率」と称する。
【００３４】
上記（１）式のWiebe関数において、θ＝０のときには、モデル熱発生率dＱ/dθ＝０と算出される。そして、θが０を超えた時点からdＱ/dθ＞０となり、熱発生が開始することを意味する。つまり、上記（１）式のWiebe関数では、θ＝０が熱発生開始点（燃焼開始点）となるので、θは上記のように熱発生開始点を基準とするクランク角度（熱発生開始後の経過クランク角度）を意味することになる。
【００３５】
なお、本明細書において、「クランク角度毎」と言ったとき、そのクランク角度の間隔は、特に限定されるものではなく、例えば１°間隔程度とすることができる。
【００３６】
また、図１に示すシステムでは、各気筒の筒内圧センサ１８により、各気筒の筒内圧をクランク角度毎に計測することができる。以下の説明では、筒内圧センサ１８による計測値を「実筒内圧」と称する。そして、クランク角度毎の実筒内圧が得られれば、以下に説明するようにして、クランク角度毎の熱発生率を算出することができる。本明細書では、以下に説明するようにして実筒内圧から算出される熱発生率を「実熱発生率」と称する。
【００３７】
次式は、熱発生率dＱ/dθと、筒内圧Ｐと、筒内容積Ｖ［m3］と、クランク角度θとを用いて、熱力学上のエネルギー保存則を表した式である。なお、次式中のクランク角度θは、上記（１）式等のWiebe関数におけるθとは異なり、上死点基準の絶対的なクランク角度を表すものとする。
【数２】
0004605060.tif 000003
【００３８】
上記（３）式中、κは比熱比であり、燃焼ガスの組成などに基づいて定まる値である。また、筒内容積Ｖおよびその変化率dＶ/dθは、クランク角度θに応じて幾何学的に決まる値である。よって、κ、Ｖ、dＶ/dθの値は取得可能であり、上記（３）式に代入することができる。そして、筒内圧センサ１８の信号から得られたクランク角度毎の実筒内圧の値を上記（３）式に更に代入することにより、クランク角度毎の実熱発生率dＱ/dθを算出することができる。
【００３９】
このようにして得られた実熱発生率の波形に、Wiebe関数によって算出されるモデル熱発生率の波形を精度良く一致させることができれば、気筒内での燃焼がWiebe関数によって正確にモデル化されたことになる。そして、モデル熱発生率の波形を実熱発生率の波形に精度良く一致させるには、次に説明する複数のWiebe関数パラメータの値を精度良く算出する必要がある。以下、Wiebe関数の各パラメータについて順次説明する。
【００４０】
（燃焼期間θｐ）
図３は、Wiebe関数により算出されるモデル熱発生率の波形の一例を示す図である。図３に示すように、燃焼期間θｐは、燃焼による熱の発生が継続する期間、つまり熱発生開始点（燃焼開始点）から熱発生終了点（燃焼終了点）までの期間をクランク角度で表したものとしての物理的意味を有している。上記（１）式のWiebe関数は、熱発生が継続している状態をモデル化するものであるので、その定義域は０≦θ≦θｐとなる。
【００４１】
（熱発生開始点ズレ量θｂ）
クランク角度毎のモデル熱発生率を算出するためには、Wiebe関数の熱発生開始点、つまり上記（１）式におけるθ＝０の点の絶対的なクランク角度を定める必要がある。この場合、本発明者の知見によれば、Wiebe関数の熱発生開始点を点火時期SAに一致させることとすると、Wiebe関数によるモデル熱発生率の波形を実熱発生率の波形に精度良く一致させることができない。そこで、本実施形態では、Wiebe関数の熱発生開始点（θ＝０）を点火時期SAと異なる点とすることとした。そして、その両者のズレ量を熱発生開始点ズレ量θｂ[°]として表し、これをWiebe関数のパラメータとして導入することとした。すなわち、熱発生開始点ズレ量θｂは、Wiebe関数の熱発生開始点と、点火時期SAとのズレ量をクランク角度で表すパラメータである（図３参照）。本実施形態では、上記（１）式等のWiebe関数を用いる場合、点火時期SAから熱発生開始点ズレ量θｂ分だけずれた点を熱発生開始点（θ＝０）として算出処理を行うものとする。
【００４２】
（形状パラメータｍ）
形状パラメータｍは、図３のようなグラフにおけるモデル熱発生率の形状に大きく関与するパラメータであり、特に、モデル熱発生率が最大値をとるクランク角度に大きく関与するパラメータである。
【００４３】
（効率ｋ）
上記（１）および（２）式中、気筒内に供給された燃料の熱量Ｑtotalは、筒内に供給された燃料量に、その燃料の低位発熱量を乗ずることにより算出することができる。なお、低位発熱量は、真発熱量とも呼ばれる物性値である。低位発熱量とは、単位量の燃料が完全燃焼したときに発生する熱量から、燃料中に含まれる水分および燃焼によって生じる水分を蒸発させるのに必要な熱量（潜熱）を差し引いた残りの熱量を意味する。
【００４４】
内燃機関における燃焼では、冷却損失や燃料の燃え残りなどに起因して、何らかの熱損失を伴うのが普通である。このため、気筒内に供給された燃料の熱量Ｑtotalが全部そのまま気筒内の発熱量Ｑに変換されることは実際上はあり得ない。本実施形態では、このことをWiebe関数に反映させるパラメータとして、効率ｋを導入している。すなわち、効率ｋは、気筒内に供給された燃料の熱量Ｑtotalが発熱量Ｑに変換される効率としての物理的意味を有しており、０＜ｋ＜１なる範囲の数である。
【００４５】
効率ｋを用いると、気筒内での総発熱量は、Ｑtotalにｋを乗じたｋＱtotalとして表すことができる。総発熱量ｋＱtotalは、熱発生率dＱ/dθのグラフにおいて、熱発生率dＱ/dθの曲線と、dＱ/dθ＝０の直線とが囲む面積（図３中ではハッチング部分の面積）で表される。
【００４６】
上記のように総発熱量がｋＱtotalとして表されるので、あるクランク角度θにおける燃焼割合は、そのクランク角度θまでの発熱量Ｑと、総発熱量ｋＱtotalとの比Ｑ/ｋＱtotalとして表すことができる。この燃焼割合Ｑ/ｋＱtotalは、Wiebe関数によれば、上記（２）式で表される。上記（２）式をθで微分すると、上記（１）式が得られる。つまり、上記（２）式は、上記（１）式と等価である。
【００４７】
（パラメータａ）
燃焼割合の本来の定義からすると、燃焼割合の値は、燃焼終了時、つまりθ＝θｐにおいて１（１００％）となるべきである。一方、Wiebe関数では、燃焼終了時の燃焼割合は、上記（２）式にθ＝θｐを代入することにより、下記式で表される。
Ｑ/ｋＱtotal（燃焼終了時）＝１−exp（−ａ）      ・・・（４）
【００４８】
上記（４）式が示すように、Wiebe関数で算出される燃焼終了時の燃焼割合Ｑ/ｋＱtotalの値は、パラメータａのみの関数となる。そして、この値は１よりも「−exp（−ａ）」だけ小さくなることになり、１になり得ない。そこで、本実施形態では、Wiebe関数で算出される燃焼終了時の燃焼割合が１近傍の値（ここでは０．９９９とする）になると仮定する。この仮定によれば、下記式が得られる。
Ｑ/ｋＱtotal（燃焼終了時）＝１−exp（−ａ）＝０．９９９      ・・・（５）
【００４９】
上記（５）式を方程式として解くと、ａ≒６．９となる。そこで、本実施形態では、パラメータａを定数６．９として扱うものとする。
【００５０】
本実施形態では、Wiebe関数パラメータとして、以上説明した燃焼期間θｐ、熱発生開始点ズレ量θｂ、形状パラメータｍ、効率ｋ、パラメータａの５つを用いるが、本発明におけるWiebe関数パラメータは、これらに限定されるものではない。例えば、熱発生開始点ズレ量θｂに代えて、熱発生率が最大となった時点の絶対的なクランク角度である熱発生率最大クランク角度ＣＡｍ［°ATDC］をWiebe関数パラメータとして使用するようにしてもよい。
【００５１】
本実施形態の５つのWiebe関数パラメータのうち、パラメータａは上述したように定数として扱われる。このため、モデル熱発生率の波形を実熱発生率の波形に精度良く一致させるには、残りの、燃焼期間θｐ、熱発生開始点ズレ量θｂ、形状パラメータｍ、効率ｋの４つの値を精度良く算出する必要がある。本発明では、モデル熱発生率の波形が実熱発生率の波形に精度良く一致するようにWiebe関数パラメータの値を算出する方法は特に限定されず、いかなる方法でもよいが、例えば次のような方法によって算出することができる。
【００５２】
（効率ｋの算出方法）
図１に示すシステムにおいては、気筒内に供給された燃料の熱量Ｑtotalの値は、燃料の低位発熱量が既知であるものとして、インジェクタ２８からの燃料噴射量に基づいて算出することができる。あるいは、空燃比A/Fおよび筒内空気量（負荷率KL）からＱtotalを算出することもできる。総発熱量ｋＱtotalの値は、上記（３）式に基づいて算出されたクランク角度毎の実熱発生率を積分（積算）することによって算出することができる。よって、その総発熱量ｋＱtotalをＱtotalで除することにより、効率ｋの値を算出することができる。
【００５３】
（形状パラメータｍの算出方法）
形状パラメータｍの値は、熱発生率が最大となったときの燃焼割合に着目することにより、算出することができる。モデル熱発生率が最大となったときの燃焼割合は、図３のモデル熱発生率のグラフが囲む面積のうち、モデル熱発生率が最大となったクランク角度までの面積を、全部の面積（図３中のハッチング部分）で除した値として算出される。
【００５４】
この値を算出するには、まず、上記（１）式をθで微分し、d２Ｑ/dθ２＝０とおくことにより、モデル熱発生率dＱ/dθが最大となるクランク角度θ＊を求める。下記の式展開を行うことにより、クランク角度θ＊を表す式が得られる。
【数３】
0004605060.tif 000004
【００５５】
上記（６）式で表されるクランク角度θ＊を上記（２）式に代入することにより、モデル熱発生率dＱ/dθが最大となるクランク角度θ＊での燃焼割合は、下記（７）式で表すことができる。
【数４】
0004605060.tif 000005
【００５６】
上記（７）式に示されるように、モデル熱発生率が最大となるクランク角度での燃焼割合は、形状パラメータｍのみの関数で表される。そこで、これに対応する値を実熱発生率の波形から求めて、その値が上記（７）式の右辺と等しいとおけば、ｍを算出することができる。その値、つまり、実熱発生率が最大となるクランク角度での燃焼割合の値は、クランク角毎の実熱発生率を実熱発生率が最大となるクランク角度まで積分（積算）した値を、総発熱量ｋＱtotalで除することにより算出することができる。以下、この値を実燃焼割合と称し、記号αで表す。本実施形態では、この実燃焼割合αを上記（７）式の右辺と等しいとおくことにより、形状パラメータｍの値を下記（８）式で算出することができる。
【数５】
0004605060.tif 000006
【００５７】
（燃焼期間θｐの算出方法）
上記（６）式で表されるクランク角度θ＊を上記（１）式に代入することにより、モデル熱発生率の最大値（dＱ/dθ）maxは、下記（９）式で表すことができる。
【数６】
0004605060.tif 000007
【００５８】
よって、実熱発生率の最大値をβとすると、この最大値βが上記（９）式の下段と等しいとおくことにより、下記式が得られる。
【数７】
0004605060.tif 000008
【００５９】
上記（１０）式の右辺において、ａ/θｐm+1以外の部分は、総発熱量ｋＱtotalおよび形状パラメータｍのみで表されている。総発熱量ｋＱtotalの値は、前述したように、実熱発生率を積分することによって算出することができる。そして、ｍの値は、上記（８）式により算出することができる。よって、それらの値と、実熱発生率最大値βとを上記（１０）式に代入することにより、ａ/θｐm+1の値を算出することができる。また、本実施形態では、前述したように、ａ＝６．９とすることにしている。よって、ａ/θｐm+1の値が算出できれば、燃焼期間θｐの値を算出することができる。
【００６０】
（熱発生開始点ズレ量θｂの算出方法）
熱発生開始点ズレ量θｂの値は、モデル熱発生率が最大となる位置と、実熱発生率が最大となる位置とを一致させることにより、算出することができる。すなわち、実熱発生率が最大となったときの圧縮上死点基準のクランク角度をθATDC＊[°ATDC]としたとき、モデル熱発生率が最大となるクランク角度θ＊の位置がθATDC＊に一致するようにする。
【００６１】
図３を参照して分かる通り、点火時期をSA[°BTDC]とし、θ＊とθATDC＊との位置が一致するものとすると、SA、θATDC＊、θｂ、およびθ＊の間に、下記（１２）式が成り立つ。また、上記（６）式は、下記（１１）式のように変形することができる。
【数８】
0004605060.tif 000009
【００６２】
上記（１１）式によれば、先に算出されたｍの値とａ/θｐm+1の値とに基づいてクランク角度θ＊を算出することができる。そして、そのθ＊と、点火時期SAと、実熱発生率データから得られるθATDC＊とを上記（１２）式に代入することにより、熱発生開始点ズレ量θｂの値を算出することができる。
【００６３】
以上の方法により、実熱発生率の波形から、Wiebe関数パラメータｍ、ｋ、θｐ、θｂの各々の値を高い精度で算出することができる。なお、Wiebe関数パラメータの算出方法は、上述したような方法に限定されるものではない。例えば、最小二乗法などの最適化手法を用いて各Wiebe関数パラメータを算出するようにしてもよい。
【００６４】
最小二乗法を用いてWiebe関数パラメータを算出する場合には、ｍ、ｋ、θｐ、θｂに暫定的な値を代入したWiebe関数により算出されるクランク角毎のモデル熱発生率と、クランク角度毎の実熱発生率との誤差（偏差）の二乗を足し合わせた値（誤差二乗和）を算出する。そして、ｍ、ｋ、θｂ、θｐの各々の値を変化させながら誤差二乗和を繰り返し算出し、誤差二乗和が最小となるような一組のｍ、ｋ、θｂ、θｐの値が最終的な値（最適値）として決定される。
【００６５】
（筒内吸入空気量の気筒間ばらつき推定方法）
以上説明したような方法によって算出されるWiebe関数パラメータｍ、ｋ、θｐ、θｂの値は、気筒内に吸入される空気量に応じて変化する。図４は、Wiebe関数パラメータｍ、ｋ、θｐ、θｂの何れか一つ（以下、「Wiebe関数パラメータＸ」と称する）の値と、内燃機関１０の負荷率KL［％］との対応関係を示すマップの一例である。このマップは、本実施形態において、吸入空気量の気筒間ばらつきの状態を推定するのに利用されるマップである。
【００６６】
図４のマップの横軸は、負荷率KLを示す。この負荷率KLは、筒内に吸入される空気量と相関する値であり、筒内吸入空気量の指標となる値である。負荷率KLとして用いられる値にはいくつかの種類があるが、本実施形態では、内燃機関１０の充填効率と同じ値を負荷率KLとして用いるものとする。そして、図１に示すシステムでは、エアフローメータ２２または吸気圧センサ２１の検出信号と、機関回転数NEとに基づいて、全気筒を平均した負荷率KLmeanを算出することができる。
【００６７】
図４のマップの縦軸は、Wiebe関数パラメータＸを示す。このWiebe関数パラメータＸは、上述したｍ、ｋ、θｐ、θｂの何れであってもよいが、筒内吸入空気量の変化に対してより敏感な感度を有するものを選択するのが好ましい。
【００６８】
図４に示すマップは、次のような手順による実験に基づいて作成されたものである。
（１）内燃機関１０と同型のエンジンをエンジンベンチに据え置き、図１と同様のシステムを構成するとともに、ある一つの気筒の負荷率KL（筒内吸入空気量）を正確に計測できるように、その気筒専用にエアフローメータまたは吸気圧センサ等の吸入空気量検出手段を設ける。
（２）点火時期SAを、基準負荷率KL0（ここでは、KL0＝５０％とする）および基準空燃比AF0（例えば理論空燃比：１４．５）に対応するベース点火時期として、エンジンベンチ上の内燃機関１０を運転する。
（３）当該気筒において、筒内圧センサ１８により検出される実筒内圧に基づいて実熱発生率を求め、その実熱発生率の波形にモデル熱発生率の波形が精度良く一致するように、前述した方法などの所定のWiebe関数パラメータ算出方法に従い、Wiebe関数パラメータＸの値を算出する。
（４）当該気筒への燃料噴射量ｑを一定としたまま当該気筒の負荷率KLを基準負荷率KL0の前後で変化させて、上記（３）のパラメータ算出処理を繰り返し行う。
（５）上記（４）の実験結果に基づいて、基準負荷率KL0付近における負荷率KLの変化に対するWiebe関数パラメータＸの値の変化を把握し、マップ化する。
【００６９】
図１に示す本実施形態のシステムのECU５０には、上記のような手順で作成された図４のマップが予め記憶されている。そして、ECU５０は、吸入空気量の気筒間ばらつきの状態を推定する際には、まず、各気筒の筒内圧センサ１８により検出される実筒内圧に基づいて気筒毎の実熱発生率を算出する。更に、その実熱発生率の波形にモデル熱発生率の波形が精度良く一致するように、上記（３）と同様の方法によってWiebe関数パラメータＸの値を気筒毎に算出する。
【００７０】
ここで、以下の説明では、内燃機関１０の各気筒の気筒番号を記号ｉで表すこととする。例えば、Ｘｉとの表記は、＃ｉ気筒について算出されたWiebe関数パラメータＸの値を意味するものとする。
【００７１】
図４に示すように、各気筒の実熱発生率に基づいて気筒毎に算出されたWiebe関数パラメータＸｉと、図４のマップとを照合すれば、気筒毎の実際の負荷率KLiを求めることができる。そして、気筒毎の実際の負荷率KLiによれば、気筒毎の実際の筒内吸入空気量GAiを知ることができる。よって、筒内吸入空気量GAiの気筒間ばらつきの状態を推定することができる。
【００７２】
上述したように、図４のマップは、燃料噴射量ｑを一定のまま負荷率KLを変化させたときのWiebe関数パラメータＸの変化を表したものである。このため、図４のマップ上で負荷率KLを変化させた場合、これに応じて空燃比A/Fも次のように変化する。図４に示すように、基準負荷率KL0における空燃比A/FをAF0とし、そこから負荷率KLがΔKLだけ離れた（KL0＋ΔKL）における空燃比A/Fを（AF0＋ΔAF）とする。また、基準負荷率KL0を筒内吸入空気量に換算した値をGA0とし、（KL0＋ΔKL）を筒内吸入空気量に換算した値を（GA0＋ΔGA）とすると、負荷率KLがΔKLだけ変化したときの空燃比A/Fの変化ΔAFは、次のようにして求められる。
AF0＝GA0/ｑ
AF0＋ΔAF＝（GA0＋ΔGA）/ｑ＝AF0＋ΔGA/ｑ
∴ΔAF＝ΔGA/ｑ
【００７３】
このように、図４のマップ上における負荷率KLの変化は、空燃比A/Fの変化と一対一に対応している。このため、図４に示すマップによれば、気筒毎の実際の負荷率KLiに加えて、気筒毎の実際の空燃比AFiを求めることもできる。
【００７４】
［実施の形態１における具体的処理］
図５は、上述した考え方に基づいて筒内吸入空気量の気筒間ばらつきの状態を推定するために、本実施形態においてECU５０が実行するルーチンのフローチャートである。なお、本ルーチンは、所定時間毎に周期的に実行されるものとする。
【００７５】
筒内吸入空気量の気筒間ばらつきの状態の推定を精度良く行う上では、内燃機関１０の運転条件が図４に示すマップの作成時の運転条件と同じになっていることが好ましい。そこで、図５に示すルーチンによれば、まず、内燃機関１０が、図４に示すマップの作成時の運転条件と同じ運転条件で定常運転されているか否かが判別される（ステップ１００）。具体的には、エアフローメータ２２または吸気圧センサ２１の信号に基づいて算出される全気筒の平均負荷率KLmeanが図４のマップの基準負荷率KL0に一致しており、かつ、燃料噴射量ｑおよび点火時期SAも図４のマップの作成時の値に一致しているか否かが判別される。その結果、現在の運転条件が図４に示すマップの作成時の条件と一致していないと判別された場合には、そのまま今回の処理サイクルが終了される。
【００７６】
一方、現在の運転条件が図４に示すマップの作成時の条件に一致しており、かつ定常運転状態にあると判別された場合には、次に、各気筒の筒内圧センサ１８の出力に基づいて、気筒毎に、クランク角度毎の実筒内圧が計測される（ステップ１０２）。このステップ１０２において、実筒内圧の計測は、各気筒の作動サイクルの全クランク角度範囲に渡って行わなくてもよく、各気筒について少なくとも実際の燃焼期間が含まれる範囲で行えばよい。
【００７７】
続いて、上記ステップ１０２で計測された各気筒の実筒内圧データに基づいて、気筒毎に、クランク角度毎の実熱発生率が算出される（ステップ１０４）。この算出処理は、前述したように、上記（３）式を用いて行うことができる。
【００７８】
次いで、気筒毎に、上記ステップ１０４で算出された各気筒の実熱発生率の波形にモデル熱発生率の波形が精度良く一致するようにWiebe関数パラメータｍ、ｋ、θｐ、θｂの値が算出される（ステップ１０６）。この算出処理は、図４のマップ作成時に用いたのと同じ、所定のWiebe関数パラメータ算出方法に従って行われる。
【００７９】
続いて、気筒毎に、上記ステップ１０６で算出されたｍ、ｋ、θｐ、θｂのうちのWiebe関数パラメータＸに選択されているものの値Ｘｉを図４のマップと照合することにより、気筒毎の実際の負荷率KLiが取得される（ステップ１０８）。そして、この気筒毎の負荷率KLiが、公知の手法により、気筒毎の筒内吸入空気量GAiに換算される（ステップ１１０）。
【００８０】
そして、上記ステップ１１０で算出された気筒毎の筒内吸入空気量GAiに基づいて、下記式で定義される気筒毎の空気量ずれ率Δｉが算出される（ステップ１１２）。
Δｉ＝（GAi−GA0）/GAi      ・・・（１３）
【００８１】
上記（１３）式中のGA0は、図４のマップの基準負荷率KL0を筒内吸入空気量に換算した値であり、筒内吸入空気量の基準値である。つまり、空気量ずれ率Δｉは、＃ｉ気筒の筒内吸入空気量GAiの、基準値からのずれの割合を示す値である。本実施形態では、気筒毎の空気量ずれ率Δｉを算出することにより、筒内吸入空気量の気筒間ばらつきの状態を検出することができる。
【００８２】
図６は、図５に示すルーチンの処理によって検出された筒内吸入空気量の気筒間ばらつきの状態に基づいて、空燃比A/Fの気筒間ばらつきをなくすために、本実施形態においてECU５０が実行するルーチンのフローチャートである。なお、本ルーチンは、内燃機関１０の作動サイクル毎に実行されるものとする。
【００８３】
図６に示すルーチンによれば、まず、エアフローメータ２２または吸気圧センサ２１の信号等に基づいて、現在の運転状態における全気筒平均の負荷率KLmeanが検出される（ステップ１１４）。続いて、この全気筒平均負荷率KLmeanが、現在の運転状態における全気筒平均の筒内吸入空気量GAmeanに換算される（ステップ１１６）。
【００８４】
次いで、上記ステップ１１６で算出された全気筒平均の筒内吸入空気量GAmeanと、図５に示すルーチンの処理で算出された気筒毎の空気量ずれ率Δｉとに基づいて、気筒毎の現在の筒内吸入空気量GAiが下記式により算出される（ステップ１１８）。
GAi＝（１＋Δｉ）×GAmean      ・・・（１４）
【００８５】
図５に示すルーチンの処理で得られた空気量ずれ率Δｉは、図４のマップの基準負荷率KL0付近、つまり負荷率KLが５０％付近での空気量ずれを示す値であるが、通常は、負荷率KLがそれ以外の領域にある場合であっても、同様の割合で気筒毎の空気量ずれが生ずると考えることができる。このため、上記ステップ１１８の処理によれば、現在の負荷率KLから計算される全気筒平均筒内吸入空気量GAmeanに空気量ずれ率Δｉ分の補正を加えることにより、現在の気筒毎の筒内吸入空気量GAiを精度良く算出することができる。
【００８６】
気筒毎の筒内吸入空気量GAiが算出されたら、次に、気筒毎の燃料噴射量ｑｉが算出される（ステップ１２０）。気筒毎の燃料噴射量ｑｉは、気筒毎の筒内吸入空気量GAiを目標空燃比で除することにより、算出される。そして、各気筒のインジェクタ２８から噴射される燃料量が、このステップ１２０で算出された燃料噴射量ｑｉとなるように、各気筒のインジェクタ２８が制御され、燃料噴射が実行される（ステップ１２２）。
【００８７】
上述した図６のルーチンの処理によれば、各気筒の燃料噴射量ｑｉが、その気筒の筒内吸入空気量GAiに応じた値となるように制御される。このため、空気量の気筒間ばらつきにかかわらず、各気筒の空燃比を目標空燃比に正確に一致させることができる。その結果、排気浄化性能および燃費性能の向上に寄与する。
【００８８】
なお、上述した実施の形態１においては、負荷率KLが前記第１の発明における「空気量指標値」に、図４に示すマップが前記第１乃至第３の発明における「対応関係」に、ECU５０が前記第２の発明における「対応関係記憶手段」に、筒内圧センサ１８が前記第１の発明における「筒内圧検出手段」に、それぞれ相当している。また、ECU５０が、上記ステップ１０４の処理を実行することにより前記第１の発明における「実熱発生率算出手段」が、上記ステップ１０６の処理を実行することにより前記第１の発明における「パラメータ算出手段」が、上記ステップ１０８〜１１２の処理を実行することにより前記第１および第２の発明における「吸入空気量気筒間ばらつき推定手段」が、図６に示すルーチンの処理を実行することにより前記第１の発明における「気筒毎制御手段」および前記第４の発明における「気筒毎燃料噴射量制御手段」が、それぞれ実現されている。
【００８９】
また、上述した実施の形態１では、各気筒の空燃比を同じ空燃比に制御する場合について説明したが、本発明は、そのような場合の制御に限定されるものではない。例えば、排気浄化触媒の硫黄被毒再生時などにおいて、リッチ空燃比にする気筒と、リーン空燃比にする気筒とを意識的に混在させる制御が行われる場合がある。そのような制御を行う場合にも、本発明を適用することにより、気筒間の空気量のばらつきによる空燃比誤差を精度良く補正することができ、気筒毎の空燃比を気筒毎の目標空燃比に正確に一致させることが可能となる。
【００９０】
また、上述した実施の形態１では、一点の基準負荷率KL0（５０％）の下で作成したマップ（図４のマップ）から求めた空気量ずれ率Δｉを、いかなる負荷率KLの下でもそのまま利用することとしている。これに対し、空気量ずれ率Δｉが負荷率KLに応じて変化する特性を有する内燃機関１０の場合には、複数点の基準負荷率KL0（例えば２０％、５０％、７０％）の下で作成した複数のマップを用意しておき、それらのマップから求めた空気量ずれ率Δｉの値を補間することで、現在の負荷率KLにおける空気量ずれ率Δｉを求めるようにしてもよい。また、機関回転数NEについても、複数点の機関回転数NEの下で作成した複数のマップを用意しておき、それらのマップから求めた空気量ずれ率Δｉの値を補間することで、現在の機関回転数NEにおける空気量ずれ率Δｉを求めるようにしてもよい。
【００９１】
実施の形態２．
次に、図７を参照して、本発明の実施の形態２について説明するが、上述した実施の形態１との相違点を中心に説明し、同様の事項については、その説明を省略または簡略する。本実施形態のシステムは、図１に示すハードウェア構成を用いて、ECU５０に、図６に示すルーチンに代えて後述する図７に示すルーチンを実行させることにより実現することができる。
【００９２】
［実施の形態２の特徴］
前述した実施の形態１では、図５に示すルーチンの処理によって検出された筒内吸入空気量の気筒間ばらつきの状態に基づいて、気筒間での空燃比A/Fのばらつきがなくなるように、燃料噴射量を気筒毎に制御することとしている。これに対し、本実施形態では、燃料噴射量を気筒毎に制御することはせずに、各気筒の点火時期SAがその気筒の筒内吸入空気量GAiおよび空燃比A/Fに応じた最適点火時期となるように、気筒毎に点火時期SAを制御することとした。
【００９３】
［実施の形態２における具体的処理］
図７は、上記の機能を実現するために本実施形態においてECU５０が実行するルーチンのフローチャートである。以下、図７において、図６に示すステップと同様のステップについては、同一の符号を付してその説明を省略または簡略する。
【００９４】
図７に示すルーチンによれば、ステップ１１４から１１８までは、図６に示すルーチンと同様の処理が行われ、気筒毎の筒内吸入空気量GAiが算出される。続いて、気筒毎の筒内吸入空気量GAiを現在の燃料噴射量ｑで除することにより、気筒毎の実際の空燃比AFiが算出される（ステップ１２４）。本実施形態では、各気筒の燃料噴射量ｑは同じとされており、各気筒の筒内吸入空気量GAiに応じて気筒毎の空燃比AFiにばらつきが生ずるものとする。
【００９５】
一般に、トルクが最大となる最適な点火時期、つまりＭＢＴ（Minimum advance for the Best Torque）は、筒内吸入空気量や空燃比に応じて変化する。本実施形態において、ECU５０には、筒内吸入空気量および空燃比と、ＭＢＴとの関係を表すマップが予め記憶されているものとする。そして、図７に示すルーチンによれば、そのマップと、上記ステップ１１８および１２４で算出された気筒毎の筒内吸入空気量GAiおよび空燃比AFiとを照合することにより、最適な点火時期が気筒毎に取得される（ステップ１２６）。そして、その取得された気筒毎の最適点火時期に基づいて、各気筒の点火プラグ３０に対する駆動信号が個別に制御される（ステップ１２８）。
【００９６】
上述した図７に示すルーチンの処理によれば、各気筒の実際の筒内吸入空気量GAiおよび空燃比A/Fに応じた最適な点火時期SAが実現されるように、各気筒の点火時期SAを個別に制御することができる。このため、筒内吸入空気量GAiおよび空燃比A/Fの気筒間ばらつきにかかわらず、何れの気筒においてもその気筒の筒内吸入空気量GAiおよび空燃比A/Fに見合った最適な点火時期とすることができる。このため、内燃機関１０の熱効率を向上することができ、燃費を改善することができる。
【００９７】
なお、上述した実施の形態２においては、ECU５０が、図７に示すルーチンの処理を実行することにより、前記第１の発明における「気筒毎制御手段」および前記第５の発明における「気筒毎点火時期制御手段」が実現されている。
【００９８】
また、上述した実施の形態１および２においては、燃料噴射量および点火時期SAの一方を気筒毎に制御する場合について説明したが、本発明では、燃料噴射量および点火時期SAの両方を気筒毎に制御するようにしてもよい。
【図面の簡単な説明】
【００９９】
【図１】本発明の実施の形態１のシステム構成を説明するための図である。
【図２】内燃機関の気筒で生ずる筒内圧の波形の一例を示す図である。
【図３】Wiebe関数により算出されるモデル熱発生率の波形の一例を示す図である。
【図４】Wiebe関数パラメータの値と、内燃機関の負荷率KLとの対応関係を示すマップである。
【図５】本発明の実施の形態１において実行されるルーチンのフローチャートである。
【図６】本発明の実施の形態１において実行されるルーチンのフローチャートである。
【図７】本発明の実施の形態２において実行されるルーチンのフローチャートである。
【符号の説明】
【０１００】
１０  内燃機関
１２  クランク角センサ
１４  吸気弁
１６  排気弁
１８  筒内圧センサ
２１  吸気圧センサ
３０  点火プラグ
３３  空燃比センサ
３４  触媒
５０  ECU(Electronic Control Unit)
【図１】
0004605060.tif 000010
【図２】
0004605060.tif 000011
【図３】
0004605060.tif 000012
【図４】
0004605060.tif 000013
【図５】
0004605060.tif 000014
【図６】
0004605060.tif 000015
【図７】
0004605060.tif 000016