(57)【特許請求の範囲】
【請求項１】
複数の気筒を有する多気筒内燃機関に適用され、
前記複数の気筒のそれぞれについて圧縮上死点後第一クランク角における実際の燃焼割合を第一燃焼割合として取得するとともに前記第一クランク角よりも遅角側である圧縮上死点後第二クランク角における実際の燃焼割合を第二燃焼割合として取得する燃焼割合取得手段と、
前記機関に要求されるトルクである要求トルクを変更するために変更される要求トルク関連量に基づいて前記複数の気筒のそれぞれに供給する燃料量を決定するとともに同決定した燃料量の燃料を同複数の気筒のそれぞれに供給する燃料供給手段と、
前記複数の気筒のそれぞれに対して取得された前記第二燃焼割合に基づいて定められる空気量制御用第二燃焼割合が目標第二燃焼割合に一致するように前記機関の吸入空気量を制御する吸入空気量制御手段と、
前記複数の気筒のそれぞれに対して取得された前記第一燃焼割合が前記目標第二燃焼割合よりも小さい目標第一燃焼割合に一致するように同複数の気筒のそれぞれの点火時期を制御する点火時期制御手段と、
前記機関の状態を表す運転状態パラメータを取得するとともに同取得した運転状態パラメータに応じて前記目標第一燃焼割合を変更する目標第一燃焼割合変更手段と、
を備えた内燃機関の制御装置において、
前記目標第一燃焼割合変更手段は、前記運転状態パラメータとして前記複数の気筒のそれぞれについて取得された前記第一燃焼割合の所定の期間における標準偏差を取得するとともに、前記複数の気筒のうちの任意の一つの気筒である特定気筒に対して取得した同標準偏差が所定の標準偏差閾値よりも大きいとき同特定気筒に対する前記目標第一燃焼割合を減少するように構成された制御装置。
【請求項２】
請求項１に記載の内燃機関の制御装置において、
前記目標第一燃焼割合変更手段は、前記運転状態パラメータとして前記機関のトルク変動量に応じた値を取得するとともに、同取得したトルク変動量に応じた値が所定のトルク変動量閾値よりも大きくなったと推定されるとき同複数の気筒のそれぞれに対する前記目標第一燃焼割合を同複数の気筒の総てに対して共通の所定値に設定するように構成された制御装置。
【請求項３】
請求項２に記載の内燃機関の制御装置において、
前記目標第一燃焼割合変更手段は、前記機関のトルク変動量に応じた値として、
前記複数の気筒のそれぞれが一回の燃焼行程を終了する期間において同複数の気筒のそれぞれの点火時期を制御する際に前記点火時期制御手段によって用いられた前記目標第一燃焼割合のうちの最大値と最小値との差、
前記複数の気筒のうちの点火順序が連続する二つの気筒のそれぞれに対する前記目標第一燃焼割合の差、
前記複数の気筒のそれぞれが一回の燃焼行程を終了する期間において得られるそれぞれの気筒に対する図示トルクのうちの最大値と最小値との差、及び、
前記複数の気筒のうちの点火順序が連続する二つの気筒のそれぞれに対する図示トルクの差、
のうちの少なくとも一つを取得するように構成された制御装置。
【請求項４】
複数の気筒を有する多気筒内燃機関に適用され、
前記複数の気筒のそれぞれについて圧縮上死点後第一クランク角における実際の燃焼割合を第一燃焼割合として取得するとともに前記第一クランク角よりも遅角側である圧縮上死点後第二クランク角における実際の燃焼割合を第二燃焼割合として取得する燃焼割合取得手段と、
前記機関に要求されるトルクである要求トルクを変更するために変更される要求トルク関連量に基づいて前記複数の気筒のそれぞれに供給する燃料量を決定するとともに同決定した燃料量の燃料を同複数の気筒のそれぞれに供給する燃料供給手段と、
前記複数の気筒のそれぞれに対して取得された前記第二燃焼割合に基づいて定められる空気量制御用第二燃焼割合が目標第二燃焼割合に一致するように前記機関の吸入空気量を制御する吸入空気量制御手段と、
前記複数の気筒のそれぞれに対して取得された前記第一燃焼割合が前記目標第二燃焼割合よりも小さい目標第一燃焼割合に一致するように同複数の気筒のそれぞれの点火時期を制御する点火時期制御手段と、
前記機関の状態を表す運転状態パラメータを取得するとともに同取得した運転状態パラメータに応じて前記目標第一燃焼割合を変更する目標第一燃焼割合変更手段と、
を備えた内燃機関の制御装置において、
前記目標第一燃焼割合変更手段は、前記運転状態パラメータとして前記機関に供給された混合気の実際の空燃比を取得するとともに、同取得した空燃比が理論空燃比又は理論空燃比から所定空燃比だけ大きい空燃比よりも小さいとき前記目標第一燃焼割合を増大させるように構成された制御装置。
【請求項５】
請求項４に記載の内燃機関の制御装置において、
前記目標第一燃焼割合変更手段は、前記運転状態パラメータとして前記複数の気筒のそれぞれが少なくとも一回の燃焼行程を終了する期間における前記機関のトルク変動量に応じた値を取得するとともに、同取得したトルク変動量に応じた値が所定のトルク変動量閾値を超えないように前記目標第一燃焼割合を増大させる制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、内燃機関の点火時期及び吸入空気量を燃焼割合に基づいて制御する内燃機関の制御装置に関する。
【背景技術】
【０００２】
従来から、燃焼割合ＭＦＢ（Ｍａｓｓ  Ｆｒａｃｔｉｏｎ  Ｂｕｒｎｔ）に基づいて点火時期を制御することにより、点火時期をＭＢＴ（Ｍｉｎｉｍｕｍ  ａｄｖａｎｃｅ  ｆｏｒ  Ｂｅｓｔ  Ｔｏｒｑｕｅ、機関が発生するトルクが最大となる点火時期）に設定する点火時期制御装置が知られている。そのような点火時期制御装置の一つは、圧縮上死点後クランク角θ（例えば、θ＝８）度における実際の燃焼割合ＭＦＢθを取得し、その実際の燃焼割合ＭＦＢθが所定の目標燃焼割合（例えば、６０％）となるように点火時期を制御する。しかしながら、点火時期をＭＢＴに近づけようと厳密に制御する際、点火時期が過進角となってノッキングが発生する等の問題が生じる。
【０００３】
そこで、従来の点火時期制御装置は、実際の燃焼割合ＭＦＢθが前記所定の目標燃焼割合に十分近い値となったとき、機関が発生するトルクの変化が許容範囲内に収まるように目標燃焼割合を減少させ、点火時期を僅かに遅角側に変更するようになっている（例えば、特許文献１を参照。）。しかしながら、特許文献１は、機関に供給される混合気の空燃比（機関の空燃比）をどのように理論空燃比よりもリーン側の空燃比に制御するかについては何ら開示していない。
【０００４】
一方、燃焼割合を用いることなく機関の空燃比を理論空燃比よりもリーン側の空燃比に制御すること（即ち、希薄燃焼を達成すること）により、燃費を改善しようとする空燃比制御装置は多数知られている（例えば、特許文献２を参照。）。しかしながら、そのような従来の空燃比制御装置は、燃焼割合に基づいて点火時期及び空燃比を制御していないので、燃焼割合を用いて点火時期をＭＢＴに近づけるとともに空燃比を適切な空燃比にまでリーン化することができない。
【特許文献１】特開２００６−１４４６４５号公報
【特許文献２】特開２００５−３３７１０４号公報
【発明の開示】
【０００５】
本発明は上記課題に対処するようになされたものである。本発明の目的の一つは、燃焼割合を用いて点火時期を最適な時期に近づけるとともに燃焼割合を用いて空燃比を希薄限界に近い空燃比に制御し、且つ、機関の運転状態を安定化させることが可能な制御装置を提供することにある。
【０００６】
本発明の内燃機関の制御装置は、複数の気筒を有する多気筒内燃機関に適用され、燃焼割合取得手段と、燃料供給手段と、吸入空気量制御手段と、点火時期制御手段と、目標第一燃焼割合変更手段と、を備える。
【０００７】
前記燃焼割合取得手段は、前記複数の気筒のそれぞれについて、圧縮上死点後第一クランク角における実際の燃焼割合を第一燃焼割合として取得する。圧縮上死点後第一クランク角は燃焼が開始した時点から燃焼が終了する時点までの燃焼期間内であって燃焼期間の初期〜中期に相当するクランク角に設定される。例えば、圧縮上死点後第一クランク角は圧縮上死点後８度クランク角（ＡＴＤＣ８°）である。更に、前記燃焼割合取得手段は、前記複数の気筒のそれぞれについて、前記圧縮上死点後第一クランク角よりも遅角側である圧縮上死点後第二クランク角における実際の燃焼割合を第二燃焼割合として取得する。圧縮上死点後第二クランク角は、燃焼が実質的に終了する直前の時点（即ち、燃焼期間の後期）のクランク角に設定される。例えば、圧縮上死点後第二クランク角は圧縮上死点後３０度クランク角（ＡＴＤＣ３０°）である。
【０００８】
前記燃料供給手段は、前記機関に要求されるトルクである「要求トルク」を変更するために変更される「要求トルク関連量」に基づいて、前記複数の気筒のそれぞれに供給する燃料量を決定する。更に、前記燃料供給手段は、その決定した燃料量の燃料を前記複数の気筒のそれぞれに供給する。「要求トルク関連量」は、前記機関が発生すべきトルクを決定するパラメータである。例えば、要求トルク関連量は、アクセルペダル操作量、アクセルペダル操作量及び機関回転速度、及び、他の装置（例えば、ハイブリッド車両の制御装置）からの要求トルク等である。
【０００９】
図１は、ある内燃機関について、点火時期ＳＡと、第一燃焼割合（圧縮上死点後８度クランク角における燃焼割合ＭＦＢ８）と、その機関の発生トルクＴＲＱと、の関係を示したグラフである。図１から理解されるように、発生トルクＴＲＱが最大となる第一燃焼割合（ＭＦＢ８）は約６０％（図１の領域Ａを参照。）である。目標第一燃焼割合は、このように発生トルクＴＲＱが最大となる場合の第一燃焼割合又はその近傍の割合に設定される。
【００１０】
ある気筒において所定の燃料量、所定の吸入空気量及び所定の点火時期にて混合気を燃焼させた場合の第一燃焼割合は、他の気筒において同所定の燃料量、同所定の吸入空気量及び同所定の点火時期にて混合気を燃焼させた場合の第一燃焼割合と一致するとは限らない。これは、ある気筒の「燃焼室の形状、デポジットの付着の仕方及び量、吸気弁の移動軌跡、点火プラグ性能、燃焼室の冷却効率、並びに、ガスの流れ方」等の燃焼状態に影響を及ぼす気筒性能が、他の気筒の気筒性能と完全には一致しないからである。更に、同一機種の内燃機関であっても、各機関は製造上の個体差を有する。
【００１１】
そこで、本制御装置の点火時期制御手段は、それぞれの気筒の第一燃焼割合が目標第一燃焼割合に近しくなるようにそれぞれの気筒の点火時期を制御する。この結果、各気筒は最大トルクに近しいトルクを発生することができる。目標第一燃焼割合は、例えば、４５〜６５％のうちの適値である。
【００１２】
図２は、燃料供給量を変化させることなく吸入空気量を変更することにより機関に供給される混合気の空燃比を変化させた場合における燃焼割合を示したグラフである。図２において点火時期Ａigは一定である。図２において、破線は混合気の空燃比が理論空燃比である場合の燃焼割合を示し、実線は混合気の空燃比が理論空燃比よりも大きい第一リーン空燃比である場合の燃焼割合を示し、一点鎖線は混合気の空燃比が第一リーン空燃比よりも大きい第二リーン空燃比である場合の燃焼割合を示す。
【００１３】
図２に示したように、空燃比が大きくなるほど（リーン側の空燃比になるほど）、燃焼割合の変化率（即ち、燃焼速度に相当する値）は減少する。従って、点Ｐ１ａ、Ｐ１ｂ及びＰ１ｃにより示されるように、燃焼期間の初期〜中期の第一燃焼割合（図２においては圧縮上死点後８度クランク角における燃焼割合ＭＦＢ８）は、燃焼される混合気の空燃比が大きいほど小さくなる。更に、点Ｐ２ａ、Ｐ２ｂ及びＰ２ｃにより示されるように、燃焼期間の後期の燃焼割合である第二燃焼割合（図２においては圧縮上死点後３０度クランク角における燃焼割合ＭＦＢ３０）は、燃焼される混合気の空燃比が大きいほど小さくなる。
【００１４】
以上のことから、第二燃焼割合が目標第二燃焼割合よりも大きい場合、燃料供給量を一定に維持しながら吸入空気量を増大することにより空燃比を大きくすれば（リーン化すれば）、第二燃焼割合は目標第二燃焼割合に近づくことが理解される。更に、第二燃焼割合が目標第二燃焼割合よりも小さい場合、燃料供給量を一定に維持しながら吸入空気量を減少することにより空燃比を小さくすれば（リッチ化すれば）、第二燃焼割合は目標第二燃焼割合に近づくことが理解される。
【００１５】
図３は、燃料供給量及び吸入空気量を変化させることなく（即ち、空燃比を変化させることなく）、点火時期を変化させた場合における燃焼割合を示したグラフである。図３において、破線は点火時期が第一点火時期Ａig１である場合の燃焼割合を示し、実線は点火時期が第一点火時期Ａig１よりも遅角側の第二点火時期Ａig２である場合の燃焼割合を示し、一点鎖線は点火時期が第二点火時期Ａig２よりも遅角側の第三点火時期Ａig３である場合の燃焼割合を示す。
【００１６】
図３に示したように、点火時期が遅角側に移行するほど、燃焼割合の立ち上がり開始時期が遅くなる。従って、点Ｐ１ｄ、Ｐ１ｅ及びＰ１ｆにより示されるように、第一燃焼割合（図３の例における燃焼割合ＭＦＢ８）は、点火時期が遅角側に移行するほど小さくなる。更に、点Ｐ２ｄ、Ｐ２ｅ及びＰ２ｆにより示されるように、第二燃焼割合（図３の例における燃焼割合ＭＦＢ３０）は、点火時期が遅角側に移行するほど小さくなる。
【００１７】
以上のことから、第一燃焼割合が目標第一燃焼割合よりも大きい場合、点火時期を遅角側に変化させれば、第一燃焼割合は目標第一燃焼割合に近づくことが理解される。更に、第一燃焼割合が目標第一燃焼割合よりも小さい場合、点火時期を進角側に変化させれば、第一燃焼割合は目標第一燃焼割合に近づくことが理解される。加えて、点火時期を進角側に変化させれば第二燃焼割合は大きくなり、点火時期を遅角側に変化させれば第二燃焼割合は小さくなることが理解される。
【００１８】
以上の観点に立ち、本制御装置の吸入空気量制御手段は、空気量制御用第二燃焼割合が目標第二燃焼割合に一致するように前記機関の吸入空気量を制御する。空気量制御用第二燃焼割合は、前記複数の気筒のそれぞれに対して取得された前記第二燃焼割合に基づいて定められる。例えば、空気量制御用第二燃焼割合は、それぞれの気筒に対して取得された前記第二燃焼割合の平均値、それぞれの気筒に対して取得された前記第二燃焼割合のうちの最小値、及び、それぞれの気筒に対して取得された前記第二燃焼割合のうちの最小値を除いた残りの前記第二燃焼割合の平均値等である。例えば、目標第二燃焼割合は、８５〜９５％のうちの適値である。目標第二燃焼割合は、正常な燃焼が発生しているとき、空気量制御用第二燃焼割合が目標第二燃焼割合に一致するように前記機関の吸入空気量を制御することにより、機関（各気筒）に供給される混合気の空燃比が希薄限界に近いリーン空燃比になるように設定される。
【００１９】
このように、本発明の制御装置によれば、燃料量は要求トルク関連量に応じて定められ、吸入空気量は空気量制御用第二燃焼割合が目標第二燃焼割合に一致するように制御される。更に、点火時期は、「前記複数の気筒のそれぞれに対して取得された前記第一燃焼割合」が「前記目標第二燃焼割合よりも小さい目標第一燃焼割合」に一致するように、気筒毎に独立して制御され、ＭＢＴに近づく。従って、理想的な希薄燃焼が行われ、優れた燃費を期待することができる。
【００２０】
しかしながら、そもそも、混合気の空燃比が大きい場合の燃焼（希薄燃焼）は不安定な燃焼になり易い。また、混合気の空燃比が過大になると、空気量制御用第二燃焼割合は目標第二燃焼割合よりも小さくなり、同時に第一燃焼割合は目標第一燃焼割合より小さくなる。その結果、点火時期は進角側に移行される。これにより、希薄燃焼時の着火遅れ（点火時期から実際の燃焼が開始するまでの時間）は補償されるものの、点火時期は相当に進角側の値となるから、燃焼が更に不安定となり易い。
【００２１】
加えて、前述した燃焼状態に影響を及ぼす気筒性能は、他の気筒の気筒性能と完全には一致しない。以上から、燃焼が極めて不安定となる気筒が発生する場合が生じる。
【００２２】
そこで、前記目標第一燃焼割合変更手段は、前記機関の状態を表す運転状態パラメータを取得するとともに同取得した運転状態パラメータに応じて前記目標第一燃焼割合を変更する。この運転状態パラメータは、後述するように、例えば、「それぞれの気筒の第一燃焼割合の標準偏差」、「機関のトルク変動量に応じた値」及び「機関に供給された混合気の実際の空燃比」等である。このように、所定の運転状態パラメータに応じて目標第一燃焼割合を変更することにより、各気筒の燃焼を安定化させることができる。
【００２３】
より具体的に述べると、本発明の一態様に係る内燃機関の制御装置において、前記目標第一燃焼割合変更手段は、「前記運転状態パラメータ」として「前記複数の気筒のそれぞれについて取得された前記第一燃焼割合の、所定の期間における標準偏差（それぞれの気筒の第一燃焼割合の標準偏差）」を取得する。更に、前記目標第一燃焼割合変更手段は、「前記複数の気筒のうちの任意の一つの気筒である特定気筒」に対して取得した第一燃焼割合の標準偏差が、所定の標準偏差閾値よりも大きいとき、その特定気筒に対する「前記目標第一燃焼割合」を減少する。
【００２４】
所定の期間における「ある気筒の第一燃焼割合の標準偏差」が所定の標準偏差閾値よりも大きいことは、その気筒の第一燃焼割合が点火毎に大きく変動していることを示す。即ち、そのような気筒においては、点火時期がその気筒にとって過進角状態となっていて正常な燃焼が成立していない可能性が高い。そこで、上記目標第一燃焼割合変更手段のように、そのような気筒に対する「前記目標第一燃焼割合」を減少すれば、点火時期が遅角側に移行されるので、その気筒の燃焼が安定化する。以上により、本制御装置は、燃焼割合を用いて各気筒の点火時期を最適な時期に近づけるとともに、燃焼割合を用いて空燃比を希薄限界に近い空燃比に制御し、且つ、機関の運転状態を安定化させることができる。
【００２５】
上記目標第一燃焼割合変更手段が、正常な燃焼が成立していない可能性の高い気筒に対する「前記目標第一燃焼割合」を減少することにより、その気筒の点火時期が遅角側に移行されると、その気筒の点火時期が他の気筒の点火時期と大きく相違する事態が発生する。換言すると、気筒間の点火時期の差が大きくなる場合が生じる。この場合、気筒間の発生トルク差が大きくなるから機関のトルク変動量が大きくなり、その結果、機関の振動が過大となる。
【００２６】
そこで、前記目標第一燃焼割合変更手段は、「前記運転状態パラメータ」として「前記機関のトルク変動量に応じた値」を取得するとともに、「その取得したトルク変動量に応じた値」が「所定のトルク変動量閾値」よりも大きくなったと推定されるとき、「前記複数の気筒のそれぞれに対する前記目標第一燃焼割合」を「同複数の気筒の総てに対して共通の所定値」に設定するように構成されることが望ましい。この「共通の所定値」は、点火時期が過進角とならない値に選択される。これによれば、機関の振動を低減することができる。なお、この場合、空燃比は狙いとするリーン空燃比よりもリッチ側の空燃比に収束する。
【００２７】
更に、この場合、前記目標第一燃焼割合変更手段は、前記機関のトルク変動量に応じた値として、以下の（１）〜（４）のうちの少なくとも一つを取得するように構成され得る。
（１）前記複数の気筒のそれぞれが一回の燃焼行程を終了する期間において同複数の気筒のそれぞれの点火時期を制御する際に前記点火時期制御手段によって用いられた前記目標第一燃焼割合のうちの最大値と最小値との差（即ち、前記複数の気筒のそれぞれが一回の燃焼行程を終了する期間におけるそれぞれの気筒に対する前記目標第一燃焼割合のうちの最大値と最小値との差）、
（２）前記複数の気筒のうちの点火順序が連続する二つの気筒のそれぞれに対する前記目標第一燃焼割合の差、
（３）前記複数の気筒のそれぞれが一回の燃焼行程を終了する期間におけるそれぞれの気筒に対する図示トルクのうちの最大値と最小値との差、及び、
（４）前記複数の気筒のうちの点火順序が連続する二つの気筒のそれぞれに対する図示トルクの差。
【００２８】
ところで、上述したように、空燃比を大きくして希薄燃焼を行うと、点火時期はかなり進角側の時期となる。また、前述した気筒性能が気筒間において一致しないので、ある気筒が発生するトルクと他の気筒が発生するトルクとの差が大きくなる。加えて、ある気筒においては正常な燃焼が成立していても、他の気筒においては正常な燃焼が成立していない場合が発生する。
【００２９】
以上のことから、点火時期をＭＢＴに厳密に一致させるために目標第一燃焼割合を相当に大きい値に設定することは必ずしも得策ではない。よって、第一目標燃焼割合を、ＭＢＴを狙うための理想値（例えば、６０％）よりも僅かに小さい値（例えば、５０％）に設定することにより、点火時期を遅角側に設定し、もって、燃焼を安定させることにより結果的に燃費を向上することが考えられる。
【００３０】
しかしながら、このように目標第一燃焼割合を理想値よりも小さい値に設定すると、点火時期は遅角側となる。従って、燃焼割合の立ち上がりが遅れる。この結果、混合気の空燃比が希薄限界近傍の空燃比であると、運転状態によっては空気量制御用第二燃焼割合が目標第二燃焼割合に到達できない場合が発生する。この場合、吸入空気量制御手段は空気量制御用第二燃焼割合を目標第二燃焼割合に一致させるように吸入空気量を減少させる。即ち、空燃比は希薄限界から遠ざかる（リッチ側の空燃比となる）。その結果、燃費が悪化する。
【００３１】
そこで、本発明の他の態様に係る内燃機関の制御装置において、
前記目標第一燃焼割合変更手段は、「前記運転状態パラメータ」として「前記機関に供給された混合気の実際の空燃比」を取得するとともに、その取得した空燃比が「理論空燃比、又は、理論空燃比から所定空燃比だけ大きい空燃比」よりも小さいとき、前記目標第一燃焼割合を増大させるように構成される。
【００３２】
これによれば、点火時期の制御に当初の目標第一燃焼割合（安定した燃焼を実現するために点火時期を若干遅角側に設定する目標第一燃焼割合）を使用した場合であって、実際の空燃比が希薄限界から遠い空燃比（リッチ側の空燃比）となったときには、その目標第一燃焼割合が増大される。この結果、点火時期は進角されるから、燃焼割合が速やかに増大する。従って、空気量制御用第二燃焼割合は目標第二燃焼割合よりも大きくなるので、吸入空気量が増大され、その結果、混合気の空燃比を希薄限界に近づけることができる。
【００３３】
この場合、前記目標第一燃焼割合変更手段は、「前記運転状態パラメータ」として「前記複数の気筒のそれぞれが少なくとも一回の燃焼行程を終了する期間における前記機関のトルク変動量に応じた値」を取得するとともに、「その取得したトルク変動量に応じた値」が所定のトルク変動量閾値を超えないように前記目標第一燃焼割合を増大させることが望ましい。
【００３４】
これによれば、「点火時期が過進角となることに起因して、機関のトルク変動量が大きくなり、よって、機関の振動が大きくなること」を回避することができる。換言すると、空燃比をリーン側の空燃比へ移行するよりも、燃焼が安定化するための制御が優先される。
【発明を実施するための最良の形態】
【００３５】
以下、本発明の各実施形態に係る内燃機関の制御装置について図面を参照しつつ説明する。
＜第一実施形態＞
（構成）
図４は、第一実施形態に係る内燃機関の制御装置（以下、「第一制御装置」と称呼することもある。）をピストン往復動型の火花点火式多気筒（４気筒）４サイクル内燃機関１０に適用したシステムの概略構成を示している。なお、図１は、特定の気筒の断面のみを図示しているが、他の気筒も同様な構成を備えている。
【００３６】
この内燃機関１０は、シリンダブロック、シリンダブロックロワーケース及びオイルパン等を含むシリンダブロック部２０と、シリンダブロック部２０の上に固定されるシリンダヘッド部３０と、シリンダブロック部２０にガソリン混合気を供給するための吸気系統４０と、シリンダブロック部２０からの排ガスを外部に放出するための排気系統５０と、を含んでいる。
【００３７】
シリンダブロック部２０は、シリンダ２１、ピストン２２、コンロッド２３及びクランク軸２４を含んでいる。ピストン２２はシリンダ２１内を往復動し、ピストン２２の往復動がコンロッド２３を介してクランク軸２４に伝達され、これによりクランク軸２４が回転するようになっている。シリンダ２１とピストン２２のヘッドは、シリンダヘッド部３０とともに燃焼室２５を形成している。
【００３８】
シリンダヘッド部３０は、燃焼室２５に連通した吸気ポート３１、吸気ポート３１を開閉する吸気弁３２、吸気弁３２を開閉駆動する吸気弁制御装置３３、燃焼室２５に連通した排気ポート３４、排気ポート３４を開閉する排気弁３５、排気弁３５を駆動するエキゾーストカムシャフト３６、点火プラグ３７、点火プラグ３７に与える高電圧を発生するイグニッションコイルを含むイグナイタ３８及び燃料を吸気ポート３１内に噴射するインジェクタ（燃料噴射手段）３９を備えている。
【００３９】
吸気弁制御装置３３は、インテークカムシャフトとインテークカム（図示せず）との相対回転角度（位相角度）を油圧により調整・制御する周知の構成を備え、吸気弁３２の開弁時期（吸気弁開弁時期）ＶＴを変更することができるようになっている。本例において、吸気弁の開弁期間（開弁クランク角幅）は一定である。従って、吸気弁開弁時期が所定角度だけ進角又は遅角させられると、吸気弁閉弁時期も同所定角度だけ進角又は遅角させられる。
【００４０】
吸気系統４０は、吸気ポート３１に連通し吸気ポート３１とともに吸気通路を形成するインテークマニホールドを含む吸気管４１、吸気管４１の端部に設けられたエアフィルタ４２、吸気管４１内にあって吸気通路の開口断面積を可変とするスロットル弁４３及びスロットル弁駆動手段（スロットル弁制御手段）を構成するＤＣモータからなるスロットル弁アクチュエータ４３ａを備えている。スロットル弁アクチュエータ４３ａは、目標スロットル弁開度ＴＡｔｇｔを表す指示信号（駆動信号）が与えられたとき、スロットル弁４３の実際の開度ＴＡを目標スロットル弁開度ＴＡｔｇｔに一致させるようになっている。
【００４１】
排気系統５０は、排気ポート３４に連通したエキゾーストマニホールド５１、エキゾーストマニホールド５１に接続されたエキゾーストパイプ（排気管）５２、上流側の三元触媒５３及び下流側の三元触媒５４を備えている。上流側の三元触媒５３は、エキゾーストパイプ５２に配設されている。下流側の三元触媒５４は、上流側の三元触媒５３の下流においてエキゾーストパイプ５２に配設されている。排気ポート３４、エキゾーストマニホールド５１及びエキゾーストパイプ５２は、排気通路を構成している。
【００４２】
一方、このシステムは、熱線式エアフローメータ６１、スロットルポジションセンサ６２、カムポジションセンサ６３、クランクポジションセンサ６４、各気筒に設けられた筒内圧センサ６５、冷却水温センサ６６、第１触媒５３の上流の排気通路に配設された空燃比センサ６７、第１触媒５３の下流であって第２触媒５４の上流の排気通路に配設された空燃比センサ６８及びアクセル操作量センサ６９を備えている。
【００４３】
熱線式エアフローメータ６１は、吸気管４１内を流れる吸入空気の単位時間あたりの質量流量を検出し、質量流量Ｇａを表す信号を出力するようになっている。
スロットルポジションセンサ６２は、スロットル弁４３の開度を検出し、スロットル弁開度ＴＡを表す信号を出力するようになっている。
カムポジションセンサ６３は、インテークカムシャフトが所定角度から９０度、次いで９０度、更に１８０度回転する毎に一つのパルスを出力するようになっている。
クランクポジションセンサ６４は、クランク軸２４が１０度回転する毎にパルスを出力するようになっている。クランクポジションセンサ６４から出力されるパルスはエンジン回転速度ＮＥを表す信号に変換されるようになっている。
更に、カムポジションセンサ６３及びクランクポジションセンサ６４からの信号に基いて、機関１０の絶対的なクランク角及び各気筒の圧縮上死点を基準としたクランク角が求められるようになっている。
筒内圧センサ６５は、筒内圧センサ６５が取り付けられた燃焼室２５内の圧力を検出し、その燃焼室２５内の圧力である筒内圧Ｐｃを表す信号を出力するようになっている。
【００４４】
上流側空燃比センサ６７は、限界電流式の空燃比センサである。空燃比センサ６７は、検出対象ガス（本例では、触媒５３の上流の排ガス）中の酸素濃度及び燃料の未燃成分（例えば、炭化水素）濃度に基づいて上流側空燃比を検出し、上流側空燃比Abyfsを表す信号を出力するようになっている。この上流側空燃比Abyfsは機関に供給される混合気の空燃比（以下、「機関の空燃比」とも称呼する。）がリーン側の空燃比になるほど大きくなる。
【００４５】
下流流側空燃比センサ６８は、濃淡電池型の空燃比センサである。空燃比センサ６８は、検出対象ガス（本例では、触媒５３の下流の排ガス）の空燃比が理論空燃比よりもリッチであるとき約０．９Ｖ、理論空燃比よりもリーンであるとき約０．１Ｖ、理論空燃比であるとき約０．５Ｖの電圧信号を出力するようになっている。
アクセル操作量センサ６９は、運転者によって操作されるアクセルペダル８１の操作量を検出し、アクセルペダル８１の操作量Accpを表す信号を出力するようになっている。
【００４６】
電気制御装置７０は、ＣＰＵ７１、ＣＰＵ７１が実行するルーチン（プログラム）、テーブル（ルックアップテーブル、マップ）及び定数等を予め記憶したＲＯＭ７２、ＣＰＵ７１が必要に応じてデータを一時的に格納するＲＡＭ７３、電源が投入された状態でデータを格納するとともに格納したデータを電源が遮断されている間も保持するバックアップＲＡＭ７４、並びに、ＡＤコンバータを含むインターフェース７５等からなるマイクロコンピュータである。インターフェース７５は、前記センサ６１〜６９と接続され、ＣＰＵ７１にセンサ６１〜６９からの信号を供給するようになっている。インターフェース７５は、ＣＰＵ７１の指示に応じて吸気弁制御装置３３、各気筒の燃料噴射弁３９及びスロットル弁アクチュエータ４３ａに指示信号（駆動信号）を送出するとともに、各気筒のイグナイタ３８に点火指示信号を送出するようになっている。
【００４７】
（第一制御装置の作動）
第一制御装置を含む本発明に係る制御装置は、内燃機関の制御に燃焼割合を使用する。燃焼割合は機関の燃焼状態を示す燃焼状態指標値である。燃焼割合は図示熱量の割合と実質的に等価な値である。図示熱量の割合は、一回の燃焼行程に関して、「燃焼室において燃焼した総ての燃料によって発生した熱のうちピストンに対する仕事に変換された熱の総量Ｑtotalに対する、所定のタイミング（圧縮上死点後クランク角θ）までに同燃焼室において燃焼した燃料によって発生した熱のうちピストンに対する仕事に変換された熱の積算量Ｑsumの割合Ｑsum／Ｑtotal」と定義される。燃焼割合は、「燃焼室において燃焼した総ての燃料のうちピストンに対する仕事に寄与した燃料の総量に対する、所定のタイミング（圧縮上死点後クランク角θ）までに同燃焼室において燃焼した燃料のうちピストンに対する仕事に寄与した燃料の積算量の割合」と定義される。
【００４８】
このように定義される燃焼割合は図示熱量の割合Ｑsum／Ｑtotalを表す値として推定（取得）される。燃焼割合を「筒内圧センサ６５によって検出された筒内圧Ｐｃ」に基づいて求める手法の詳細は、例えば、特開２００６−１４４６４５号公報に開示されているので、以下、その概略について述べる。
【００４９】
本例において、燃焼割合は所定のタイミングを表すクランク角θに対応して求められる。クランク角θにおける燃焼割合をＭＦＢθと表す。このクランク角θは圧縮上死点において「０」となり、圧縮上死点から圧縮上死点前に向って進角するほど絶対値が大きくなる負の値をとり、圧縮上死点から圧縮上死点後に向って遅角するほど絶対値が大きくなる正の値をとるように定義される。即ち、燃焼割合ＭＦＢθにおいてθが−θ１度クランク角（＝−θ１°、θ１＞０）であるとき、その燃焼割合ＭＦＢθは「ＢＴＤＣθ１°における燃焼割合」である。燃焼割合ＭＦＢθにおいてθがθ２度クランク角（＝θ２°、θ２＞０）であるとき、その燃焼割合ＭＦＢθは「ＡＴＤＣθ２°における燃焼割合」である。
【００５０】
クランク角θにおける燃焼割合ＭＦＢθは、下記の（１）式により推定される。（１）式において、クランク角θｓ（θｓ＜０）は、対象とする燃焼行程（膨張行程）に向う圧縮行程において吸気弁３２及び排気弁３５の両方が閉じた状態にあり且つ点火時期よりも十分に進角した時期（例えば、θｓ＝−６０°、即ち、ＢＴＤＣ６０°）である。クランク角θｅ（θｅ＞０）は、対象とする燃焼行程における燃焼が実質的に終了する最も遅い時期よりも遅い所定の時期且つ排気弁開弁時期よりも進角した時期（例えば、θｅ＝６０°、即ち、ＡＴＤＣ６０°）である。
【数１】
0005077562.tif 000002
【００５１】
この（１）式は、発生した熱のうちピストンに対する仕事に寄与した熱の積算量Ｑの変化パターンがＰｃ（θ）Ｖ（θ）κの変化パターンと概ね一致するという知見に基いている。Ｐｃ（θ）は圧縮上死点後クランク角θにおける筒内圧、Ｖ（θ）は圧縮上死点後クランク角θにおける燃焼室２５の容積、κは混合ガスの比熱比（例えば、１．３２）である。なお、（１）式の分母はＭＦＢの１００％に相当する値である。
【００５２】
第一制御装置は、第一燃焼割合及び第二燃焼割合を用いて内燃機関１０の制御を行う。
【００５３】
第一燃焼割合は、圧縮上死点後第一クランク角における燃焼割合である。圧縮上死点後第一クランク角は燃焼が開始した時点から燃焼が終了する時点までの燃焼期間内であって燃焼期間の初期から中期までの間の所定のクランク角に設定される。本例において、圧縮上死点後第一クランク角はＡＴＤＣ８°である。よって、以下、第一燃焼割合は８deg燃焼割合ＭＦＢ８（又は単にＭＦＢ８）とも表記される。８deg燃焼割合ＭＦＢ８は、上記（１）式においてＰｃ（θ）にＰｃ（８°）を代入し、Ｖ（θ）にＶ（８°）を代入することにより取得される。
【００５４】
第二燃焼割合は、圧縮上死点後第二クランク角における燃焼割合である。圧縮上死点後第二クランク角は圧縮上死点後第一クランク角よりも遅角側のクランク角である。即ち、圧縮上死点後第二クランク角は、燃焼が実質的に終了する直前の時点（即ち、燃焼期間の後期）のクランク角に設定される。本例において、圧縮上死点後第二クランク角はＡＴＤＣ３０°である。よって、以下、第二燃焼割合は３０deg燃焼割合ＭＦＢ３０（又は単にＭＦＢ３０）とも表記される。３０deg燃焼割合ＭＦＢ３０は、上記（１）式においてＰｃ（θ）にＰｃ（３０°）を代入し、Ｖ（θ）にＶ（３０°）を代入することにより取得される。
【００５５】
（第一制御装置による制御の概要）
次に、図５に示した概略フローチャートに沿って第一制御装置による制御の概要について説明する。
【００５６】
第一制御装置は、ステップ５１０において、各気筒の３０deg燃焼割合ＭＦＢ３０（第二燃焼割合）に基づいて空気量制御用第二燃焼割合ＭＦＢ３０ＴＡを求める。この空気量制御用第二燃焼割合ＭＦＢ３０ＴＡは、例えば、
（１）それぞれの気筒に対して取得された３０deg燃焼割合ＭＦＢ３０（第二燃焼割合）の平均値、
（２）それぞれの気筒に対して取得された３０deg燃焼割合ＭＦＢ３０（第二燃焼割合）のうちの最小値、及び、
（３）それぞれの気筒に対して取得された３０deg燃焼割合ＭＦＢ３０（第二燃焼割合）のうちの最小値を除いた残りの３０deg燃焼割合ＭＦＢ３０の平均値、
等のうちの一つである。
【００５７】
更に、第一制御装置は空気量制御用第二燃焼割合ＭＦＢ３０ＴＡに基づいて吸入空気量を制御する。即ち、第一制御装置は、ステップ５１０において、その空気量制御用第二燃焼割合ＭＦＢ３０ＴＡが目標第二燃焼割合ＭＦＢ３０tgtに一致するようにスロットル弁４３の開度を制御する。本例において、目標第二燃焼割合ＭＦＢ３０tgtは９０％である。
【００５８】
ところで、燃焼される混合気の空燃比（各気筒に供給される混合気の空燃比）が大きくなるほど燃焼速度は低下する。従って、図２に示したように、燃焼される混合気の空燃比が大きくなるほど、燃焼割合の変化率（上昇率）は減少する。この結果、点Ｐ２ａ、Ｐ２ｂ及びＰ２ｃにより示されるように、燃焼期間の後期の燃焼割合である３０deg燃焼割合ＭＦＢ３０（第二燃焼割合）は、燃焼される混合気の空燃比が大きいほど小さくなる。この結果、空気量制御用第二燃焼割合ＭＦＢ３０ＴＡは、燃焼される混合気の空燃比が大きいほど小さくなる。
【００５９】
従って、第一制御装置は、空気量制御用第二燃焼割合ＭＦＢ３０ＴＡが目標第二燃焼割合ＭＦＢ３０tgtより大きいとき、要求トルクに基づいて決定される燃料供給量を変化させることなくスロットル弁開度を増大することによって吸入空気量を増大させ、それにより、燃焼される混合気の空燃比を大きくする（リーン側の空燃比に制御する）。これに対し、第一制御装置は、空気量制御用第二燃焼割合ＭＦＢ３０ＴＡが目標第二燃焼割合ＭＦＢ３０tgtより小さいとき、要求トルクに基づいて決定される燃料供給量を変化させることなくスロットル弁開度を減少することによって吸入空気量を減少させ、それにより、燃焼される混合気の空燃比を小さくする（リッチ側の空燃比に制御する）。このステップ５１０の処理により、燃焼される混合気の空燃比は希薄限界の空燃比へと近づく。
【００６０】
次に、第一制御装置はステップ５２０に進み、第ｎ気筒（ｎは１〜４の整数）の８deg燃焼割合ＭＦＢ８（＃ｎ）が第ｎ気筒の目標８deg燃焼割合ＭＦＢ８tgt（＃ｎ）と一致するように、第ｎ気筒の点火時期ＳＡ（＃ｎ）を制御する。目標８deg燃焼割合ＭＦＢ８tgt（＃ｎ）の初期値は、点火時期をＭＢＴに一致させるための値（本例において６０％）に設定される。このステップ５２０の処理により、各気筒の点火時期はＭＢＴに近づく。
【００６１】
次に、第一制御装置はステップ５３０に進み、第ｎ気筒の８deg燃焼割合ＭＦＢ８（＃ｎ）の過去数１０サイクル（過去数１０回の燃焼行程）に対する標準偏差σ（ＭＦＢ８（＃ｎ））を取得する。そして、第一制御装置は、第ｎ気筒の標準偏差σ（ＭＦＢ８（＃ｎ））が閾値標準偏差σｔｈよりも大きい場合、その第ｎ気筒の目標８deg燃焼割合ＭＦＢ８tgt（＃ｎ）を所定割合ΔＭＦＢ８tgtだけ減少させる。なお、標準偏差σ（ＭＦＢ８（＃ｎ））は、機関１０の状態を表す運転状態パラメータである。
【００６２】
燃焼室２５の形状、デポジットの付着の仕方及び量、吸気弁３２の移動軌跡、並びに、点火プラグ３７の点火性能等の燃焼状態に関係する「気筒性能」は気筒間において相違する。従って、第ｎ気筒の標準偏差σ（ＭＦＢ８（＃ｎ））が閾値標準偏差σｔｈよりも大きい場合、その第ｎ気筒の気筒性能に起因して第ｎ気筒の点火時期ＳＡ（＃ｎ）が過進角となっているために、第ｎ気筒において着火不良が発生していると考えられる。即ち、そのような場合、第ｎ気筒における燃焼が不安定になっている。そこで、第一制御装置は、上述したステップ５３０の処理によって、そのような気筒の目標８deg燃焼割合ＭＦＢ８tgt（＃ｎ）を減少させることにより、その気筒の点火時期を遅角側に移行させ、その気筒の燃焼を安定化させる。この結果、その気筒においても正常な（安定した）燃焼が成立する。
【００６３】
ところが、気筒毎に目標８deg燃焼割合ＭＦＢ８tgt（＃ｎ）を変更（設定）していると、ある気筒（第ｑ気筒）の目標８deg燃焼割合ＭＦＢ８tgt（＃ｑ）と別の気筒（第ｒ気筒）の目標８deg燃焼割合ＭＦＢ８tgt（＃ｒ）との差が所定値（許容値）ΔＡｔｈよりも大きくなる場合が生じる。図１に示したように、図示トルクは目標８deg燃焼割合ＭＦＢ８tgt（＃ｎ）に基づいて制御される８deg燃焼割合ＭＦＢ８（＃ｎ）に依存して大きく変化する。以上のことから、ある気筒（第ｑ気筒）の目標８deg燃焼割合ＭＦＢ８tgt（＃ｑ）と別の気筒（第ｒ気筒）の目標８deg燃焼割合ＭＦＢ８tgt（＃ｒ）との差が所定値（許容値）ΔＡｔｈよりも大きくなると、第ｑ気筒が発生するトルクと第ｒ気筒が発生するトルクとの差が大きくなり（即ち、各気筒が発生するトルクのうちの最大値と最小値との差が大きくなり）、機関１０の振動が過大になる。
【００６４】
そこで、第一制御装置は、ステップ５４０にて以下に述べる条件１及び条件２のうちの少なくとも一方が成立しているか否かを判定する。条件１は気筒別第一目標値設定禁止条件１であり、条件２は気筒別第一目標値設定禁止条件２である。
【００６５】
（条件１）第ｎ気筒（ｎは１〜４の整数）の目標８deg燃焼割合ＭＦＢ８tgt（＃ｎ）のうちの最大値と最小値の差が所定値ΔＡｔｈよりも大きい。第ｎ気筒の目標８deg燃焼割合ＭＦＢ８tgt（＃ｎ）のうちの最大値とは、各気筒に対する目標８deg燃焼割合ＭＦＢ８tgtの中の最大値のことである。第ｎ気筒の目標８deg燃焼割合ＭＦＢ８tgt（＃ｎ）のうちの最小値とは、各気筒に対する目標８deg燃焼割合ＭＦＢ８tgtの中の最小値のことである。
【００６６】
（条件２）第ｎ気筒（ｎは１〜４の整数）の図示トルクＴＲＱ（＃ｎ）の最大値と最小値の差が所定値ΔＢｔｈよりも大きい。第ｎ気筒の図示トルクＴＲＱ（＃ｎ）の最大値とは、各気筒の図示トルクＴＲＱの中の最大値のことである。第ｎ気筒の図示トルクＴＲＱ（＃ｎ）の最小値とは、各気筒の図示トルクＴＲＱの中の最小値のことである。
【００６７】
そして、第一制御装置は、条件１又は条件２が成立しているとき機関の振動が許容レベルよりも大きくなっていると判断し、ステップ５５０に進んで第ｎ気筒（ｎは１〜４の整数）の８deg燃焼割合ＭＦＢ８（＃ｎ）が総ての気筒に共通の（唯一の）目標８deg燃焼割合ＭＦＢ８tgtＡＬＬと一致するように第ｎ気筒の点火時期ＳＡ（＃ｎ）を制御する。共通の目標８deg燃焼割合ＭＦＢ８tgtＡＬＬは、気筒間に気筒性能のバラツキがある場合でも、各気筒における燃焼が安定するような値である。より具体的に述べると、共通の目標８deg燃焼割合ＭＦＢ８tgtＡＬＬは、気筒毎の燃焼割合による制御を行うことなく、各気筒の点火時期を一律に制御する場合において点火時期が極力ＭＢＴに近くなるように適合された場合に相当する値（例えば、３５〜４０％）である。これにより、機関の振動レベルを小さくすることができる。以上が、第一制御装置による制御の概要である。
【００６８】
（第一制御装置による制御の詳細）
次に、第一制御装置による制御の詳細について説明する。
【００６９】
１．燃料噴射制御
ＣＰＵ７１は、図６に示した燃料噴射制御ルーチンを「各気筒のクランク角が吸気上死点前の所定クランク角度（例えば、吸気上死点前９０°）に一致する毎」に繰り返し実行するようになっている。以下、クランク角が吸気上死点前の前記所定クランク角に一致した気筒を燃料噴射気筒とも称呼する。
【００７０】
従って、何れかの気筒のクランク角が吸気上死点前の所定クランク角度に一致すると、ＣＰＵ７１はステップ６００から処理を開始し、以下に述べるステップ６１０及びステップ６２０の処理を順に行い、ステップ６９５に進んで本ルーチンを一旦終了する。
【００７１】
ステップ６１０：ＣＰＵ７１は、燃料噴射量ＴＡＵを決定する。より具体的に述べると、ＣＰＵ７１は、現時点のアクセルペダル操作量Accp及び現時点のエンジン回転速度ＮＥを噴射量決定用テーブルMapTAUに適用することにより今回の燃料噴射量ＴＡＵを算出する。噴射量決定用テーブルMapTAUは、アクセルペダル操作量Accp及びエンジン回転速度ＮＥにより定まる「要求トルク」を発生するために必要な「燃料噴射量ＴＡＵ」を算出するためのルックアップテーブルである。噴射量決定用テーブルMapTAUは、予め実験により測定された「アクセルペダル操作量Accp及びエンジン回転速度ＮＥと、要求トルクを発生させるために必要な燃料噴射量ＴＡＵと、の関係」がルックアップテーブルの形式にてＲＯＭ７２内に格納されたテーブルである。アクセルペダル操作量Accp及びエンジン回転速度ＮＥは、「機関１０に要求されるトルク（即ち、要求トルク）」を変更するために変更される要求トルク関連量である。
【００７２】
ステップ６２０：ＣＰＵ７１は、燃料噴射気筒に対応する燃料噴射弁３９から燃料噴射量ＴＡＵの燃料が噴射されるように、その燃料噴射弁３９に指示信号を送出する。
【００７３】
２．スロットル弁制御（吸入空気量制御・空燃比制御）
ＣＰＵ７１は、図７に示したスロットル弁制御ルーチンを所定時間の経過毎に繰り返し実行している。従って、所定のタイミングになると、ＣＰＵ７１はステップ７００から処理を開始し、ステップ７１０に進んで空気量制御用第二燃焼割合ＭＦＢ３０ＴＡを求める。ここでは、ＣＰＵ７１は、「現時点から７２０°クランク角前の時点」から「現時点」までに「それぞれの気筒に対して取得された３０deg燃焼割合ＭＦＢ３０（第二燃焼割合）」の平均値を、空気量制御用第二燃焼割合ＭＦＢ３０ＴＡとして算出する。なお、ＣＰＵ７１は、後述する図９のステップ９４０の処理により、各気筒のクランク角が圧縮上死点後６０度となったとき、そのクランク角が圧縮上死点後６０度となった気筒の３０deg燃焼割合ＭＦＢ３０を上記（１）式に基づいて取得し、その気筒の３０deg燃焼割合ＭＦＢ３０としてＲＡＭ７３に格納している。
【００７４】
次に、ＣＰＵ７１はステップ７２０に進み、空気量制御用第二燃焼割合ＭＦＢ３０ＴＡが目標第二燃焼割合ＭＦＢ３０tgtよりも小さいか否かを判定する。そして、空気量制御用第二燃焼割合ＭＦＢ３０ＴＡが目標第二燃焼割合ＭＦＢ３０tgtよりも小さいとき、ＣＰＵ７１はステップ７３０に進んで目標スロットル弁開度ＴＡｔｇｔを所定値ΔＴＡｔｇｔだけ減少させる。その後、ＣＰＵ７１はステップ７４０に進み、スロットル弁開度ＴＡが目標スロットル弁開度ＴＡｔｇｔに一致するようにスロットル弁アクチュエータ４３ａに指示信号を送出する。これにより、燃料供給量は変化しない状態において吸入空気量が減少する。従って、燃焼される混合気の空燃比は僅かにリッチ側に移行させられる。その後、ＣＰＵ７１はステップ７９５に進み、本ルーチンを一旦終了する。
【００７５】
一方、ステップ７２０の判定時において、空気量制御用第二燃焼割合ＭＦＢ３０ＴＡが目標第二燃焼割合ＭＦＢ３０tgt以上であるとき、ＣＰＵ７１はステップ７２０からステップ７５０に進んで目標スロットル弁開度ＴＡｔｇｔを所定値ΔＴＡｔｇｔだけ増大させる。その後、ＣＰＵ７１はステップ７４０の処理を実行する。これにより、燃料供給量は変化しない状態において吸入空気量が増大する。従って、燃焼される混合気の空燃比は僅かにリーン側に移行させられる。その後、ＣＰＵ７１はステップ７９５に進み、本ルーチンを一旦終了する。
【００７６】
なお、ＣＰＵ７１は、ステップ７２０、ステップ７３０及びステップ７５０に代えて、以下のように目標スロットル弁開度ＴＡｔｇｔを決定してもよい。
（１）ＣＰＵ７１は、アクセルペダル操作量Accp及び現時点のエンジン回転速度ＮＥを目標基本スロットル弁開度決定用テーブルMapTAbtgtに適用することにより目標基本スロットル弁開度TAbtgtを決定する。例えば、目標基本スロットル弁開度決定用テーブルMapTAbtgtは、アクセルペダル操作量Accp及び現時点のエンジン回転速度ＮＥと噴射量決定用テーブルMapTAUとにより定まる燃料噴射量ＴＡＵが噴射されたとき、混合気の空燃比を理論空燃比又は所定の希薄空燃比に一致させるのに必要な吸入空気量の空気が機関に供給されるような目標基本スロットル弁開度TAbtgtを決定するように定められる。
（２）ＣＰＵ７１は、空気量制御用第二燃焼割合ＭＦＢ３０ＴＡが目標第二燃焼割合ＭＦＢ３０tgtより小さいとき、補正量ΔＴＡｈを所定量ΔＴ（ΔＴ＞０）だけ増大する。
（３）ＣＰＵ７１は、空気量制御用第二燃焼割合ＭＦＢ３０ＴＡが目標第二燃焼割合ＭＦＢ３０tgt以上であるとき、補正量ΔＴＡｈを所定量ΔＴだけ減少する。
（４）ＣＰＵ７１は、目標基本スロットル弁開度TAbtgtに補正量ΔＴＡｈを加えた値を目標スロットル弁開度ＴＡｔｇｔとして決定する。
【００７７】
３．点火時期制御
３−１．目標８deg燃焼割合ＭＦＢ８tgt（目標第一燃焼割合）の気筒別設定
ＣＰＵ７１は、図８に示した目標第一燃焼割合ＭＦＢ８tgt設定ルーチンを所定時間の経過毎に繰り返し実行している。従って、所定のタイミングになると、ＣＰＵ７１はステップ８００から処理を開始し、気筒別制御フラグＸＫＴＢＴの値が「１」であるか否かを判定する。
【００７８】
気筒別制御フラグＸＫＴＢＴは、その値が「１」であるとき目標８deg燃焼割合ＭＦＢ８tgtを気筒別に設定することを許容し、その値が「０」であるとき目標８deg燃焼割合ＭＦＢ８tgtを気筒別に設定することを禁止するフラグである。気筒別制御フラグＸＫＴＢＴの値は、イグニッション・キー・スイッチがオフ位置からオン位置へと変更されたときに実行される図示しないイニシャルルーチンにおいて「１」に設定される。
【００７９】
いま、気筒別制御フラグＸＫＴＢＴの値が「１」であると仮定する。この場合、ＣＰＵ７１はステップ８１０にて「Ｙｅｓ」と判定し、ステップ８２０に進んで各気筒の燃焼割合ＭＦＢ８（＃ｎ）の過去数１０サイクルに対する標準偏差σ（ＭＦＢ８（＃ｎ））を各気筒毎に取得する。ｎは１以上４以下の整数である。
【００８０】
次に、第一制御装置はステップ８３０に進み、変数ｎに「１」を設定する。次いで、ＣＰＵ７１はステップ８４０に進み、第ｎ気筒（この場合、ｎ＝１）の標準偏差σ（ＭＦＢ８（＃ｎ））が閾値標準偏差σｔｈよりも大きいか否かを判定する。このとき、第ｎ気筒の標準偏差σ（ＭＦＢ８（＃ｎ））が閾値標準偏差σｔｈよりも大きいと、ＣＰＵ７１はステップ８４０にて「Ｙｅｓ」と判定してステップ８５０に進み、第ｎ気筒の目標８deg燃焼割合ＭＦＢ８tgt（＃ｎ）を所定割合ΔＭＦＢ８tgtだけ減少させ、ステップ８６０に進む。これに対し、第ｎ気筒の標準偏差σ（ＭＦＢ８（＃ｎ））が閾値標準偏差σｔｈ以下であると、ＣＰＵ７１はステップ８４０にて「Ｎｏ」と判定してステップ８６０に直接進む。
【００８１】
ＣＰＵ７１は、ステップ８６０にて変数ｎの値が「４（機関１０の気筒数）」であるか否かを判定する。現時点においてｎの値は「１」である。従って、ＣＰＵ７１はステップ８６０にて「Ｎｏ」と判定してステップ８７０に進み、変数ｎの値を「１」だけ増大する。その後、ＣＰＵ７１はステップ８４０に戻る。このような処理はｎの値が４に一致するまで繰り返し実行される。その結果、第ｎ気筒の標準偏差σ（ＭＦＢ８（＃ｎ））が閾値標準偏差σｔｈよりも大きいとき、その第ｎ気筒の目標８deg燃焼割合ＭＦＢ８tgt（＃ｎ）が所定割合ΔＭＦＢ８tgtだけ減少させられる。そして、ｎの値が４となったとき、ＣＰＵ７１はステップ８６０にて「Ｙｅｓ」と判定し、ステップ８９５に進んで本ルーチンを一旦終了する。この結果、気筒別制御フラグＸＫＴＢＴの値が「１」であるとき、目標８deg燃焼割合ＭＦＢ８tgtは気筒毎に設定・変更される。なお、気筒別制御フラグＸＫＴＢＴの値が「０」であるときの処理については後述する。
【００８２】
３−２．点火時期制御（気筒別点火時期制御）
ＣＰＵ７１は、図９に示した点火時期制御ルーチンを所定の微小時間の経過毎に繰り返し実行している。従って、所定のタイミングになると、ＣＰＵ７１はステップ９００から処理を開始してステップ９１０に進み、変数ｎの値を「１」に設定する。次いで、ＣＰＵ７１はステップ９２０に進み、現時点のクランク角が「第ｎ気筒（この場合、第１気筒）の圧縮上死点後６０度クランク角」であるか否かを判定する。
【００８３】
このとき、現時点のクランク角が「第ｎ気筒（この場合、第１気筒）の圧縮上死点後６０度クランク角」であると、ＣＰＵ７１はステップ９２０にて「Ｙｅｓ」と判定し、後述するステップ９３０乃至ステップ９６０の処理を順に行うことにより、第ｎ気筒の点火時期ＳＡ（＃ｎ）を設定し、ステップ９９５に進んで本ルーチンを一旦終了する。一方、ステップ９２０の処理の実行時点において、現時点のクランク角が「第ｎ気筒（この場合、第１気筒）の圧縮上死点後６０度クランク角」でないと、ＣＰＵ７１は以下に述べるステップ９７０及びステップ９８０の処理を実行する。
【００８４】
ステップ９７０：ＣＰＵ７１は変数ｎの値を「１」だけ増大する。
ステップ９８０：ＣＰＵ７１は変数ｎの値が「４（機関１０の気筒数）」よりも大きいか否かを判定する。変数ｎの値が「４」よりも大きいと、ＣＰＵ７１はステップ９８０にて「Ｙｅｓ」と判定し、ステップ９９５に進んで本ルーチンを一旦終了する。一方、変数ｎの値が「４」以下であると、ＣＰＵ７１はステップ９８０にて「Ｎｏ」と判定し、ステップ９２０に戻る。
【００８５】
このステップ９７０及びステップ９８０の処理により、現時点が「第１気筒乃至第４気筒のうちの何れかの気筒のクランク角がその気筒の圧縮上死点後６０度クランク角」である場合に、ステップ９３０乃至ステップ９６０の処理が行われることになる。
【００８６】
ステップ９３０：ＣＰＵ７１は、上記（１）式に従って第ｎ気筒の８deg燃焼割合ＭＦＢ８（＃ｎ）を取得する。即ち、ＣＰＵ７１は、上記（１）式のＰｃ（θ）に第ｎ気筒の筒内圧センサ６５の出力に基づいて得られたＰｃ（８°）を代入し、Ｖ（θ）にＶ（８°）を代入することにより、第ｎ気筒の８deg燃焼割合ＭＦＢ８（＃ｎ）を算出する。このステップ９３０は、機能ブロック図である図１０に示した「実燃焼割合ＭＦＢ８算出手段Ａ１」の機能に対応している。Ｖ（８°）は予めＲＯＭ７２に記憶されている。
【００８７】
ステップ９４０：ＣＰＵ７１は、上記（１）式に従って第ｎ気筒の３０deg燃焼割合ＭＦＢ３０（＃ｎ）を取得する。即ち、ＣＰＵ７１は、上記（１）式のＰｃ（θ）に第ｎ気筒の筒内圧センサ６５の出力に基づいて得られたＰｃ（３０°）を代入し、Ｖ（θ）にＶ（３０°）を代入することにより、第ｎ気筒の３０deg燃焼割合ＭＦＢ３０（＃ｎ）を算出する。Ｖ（３０°）は予めＲＯＭ７２に記憶されている。
【００８８】
ステップ９５０：ＣＰＵ７１は、ステップ９３０にて取得した８deg燃焼割合ＭＦＢ８（＃ｎ）を、第ｎ気筒の目標８deg燃焼割合ＭＦＢ８tgt（＃ｎ）と一致させるための点火時期補正量ΔＳＡ（＃ｎ）を決定する。このステップ９５０は、図１０に示した「偏差算出手段Ａ３及び点火時期補正量算出手段Ａ４」の機能に対応している。
【００８９】
より具体的に説明すると、図１０に示した目標値設定手段Ａ２は、図８に示したルーチンの機能に対応している。即ち、目標値設定手段Ａ２は、第ｎ気筒の目標８deg燃焼割合ＭＦＢ８tgt（＃ｎ）を出力する。偏差算出手段Ａ３は、この第ｎ気筒の目標８deg燃焼割合ＭＦＢ８tgt（＃ｎ）から実燃焼割合ＭＦＢ８算出手段Ａ１により算出された第ｎ気筒の８deg燃焼割合ＭＦＢ８（＃ｎ）を減じることにより、これらの偏差ΔＭを算出する。点火時期補正量算出手段Ａ４は、下記（２）式に示したように、差ΔＭに対してＰＩ（比例・積分）処理を行うことにより第ｎ気筒の点火時期補正量ΔＳＡ（＃ｎ）を求める。（２）式のＫｐは比例定数であり、Ｋｉは積分定数である。ＳΔＭは差ΔＭの積分値であり、下記（３）式に基いて求められる。
【数２】
0005077562.tif 000003
【数３】
0005077562.tif 000004
【００９０】
ステップ９６０：ＣＰＵ７１は、点火時期モデルＦＳＡを用いて基本点火時期ＳＡｂを求める。即ち、ＣＰＵ７１は、図１０に示した運転状態量取得手段Ａ５によって取得された実運転状態量（ＮＥ（ｋ），ＫＬ（ｋ））を図１０に示した基本点火時期決定手段Ａ６に相当する「点火時期モデルＦＳＡ」に適用する。これにより、ＣＰＵ７１は、今回の燃焼に対する基本点火時期ＳＡｂを算出する。ＮＥ（ｋ）は現時点におけるエンジン回転速度ＮＥであり、ＫＬ（ｋ）は現時点における負荷率である。負荷率ＫＬ（ｋ）は、下記の（４）式により求められる。（４）式において、Ｍｃ（ｋ）は筒内吸入空気量であり、エアフローメータ６１の検出する質量流量Ｇａ及びエンジン回転速度ＮＥに基づいて求められる。ρは空気密度（単位は（ｇ／ｌ））、Ｌは機関１０の排気量（単位は（ｌ））、「４」は機関１０の気筒数である。点火時期モデルは、下記の（５）式の形の関数によって表される。θ０〜θ３、ａ、ｂ、ｃ及びｄは予め定められた定数である。
【数４】
0005077562.tif 000005
【数５】
0005077562.tif 000006
【００９１】
なお、筒内吸入空気量Ｍｃ（ｋ）は、空気の挙動を記述した周知の空気モデルにより取得されてもよい。運転状態量取得手段Ａ５は、負荷ＫＬ（ｋ）として、アクセルペダル８１の操作量Accpを取得するように構成されていてもよい。
【００９２】
更に、ＣＰＵ７１は図９のステップ９６０において、基本点火時期ＳＡｂにステップ９５０にて算出した第ｎ気筒の点火時期補正量ΔＳＡ（＃ｎ）を加え、第ｎ気筒の点火時期ＳＡ（＃ｎ）を決定する。加えて、ＣＰＵ７１は、第ｎ気筒の実際の点火時期が第ｎ気筒の点火時期ＳＡ（＃ｎ）と一致するように、第ｎ気筒のイグナイタ３８に点火指示信号を送出する。なお、このステップ９６０は、図１０に示した「運転状態量取得手段Ａ５、基本点火時期決定手段Ａ６及び点火時期設定手段Ａ７」に相当している。
【００９３】
以上の作動は、気筒別制御フラグＸＫＴＢＴの値が「１」である場合、即ち、気筒別点火時期制御が許容されている場合の作動である。次に、気筒別点火時期制御を中止すべきか否かを判定するルーチンについて説明する。
【００９４】
３−３．気筒別点火時期制御の中止判定（その１）
ＣＰＵ７１は、図１１に示したルーチンを所定時間の経過毎に繰り返し実行している。従って、所定のタイミングになると、ＣＰＵ７１はステップ１１００から処理を開始し、ステップ１１１０に進んで気筒別制御フラグＸＫＴＢＴの値が「１」であるか否かを判定する。
【００９５】
現時点において気筒別制御フラグＸＫＴＢＴの値が「１」であると仮定する。この場合、ＣＰＵ７１はステップ１１１０にて「Ｙｅｓ」と判定し、以下に述べるステップ１１２０乃至ステップ１１５０の処理を順に行う。
【００９６】
ステップ１１２０：ＣＰＵ７１は、各気筒の目標８deg燃焼割合ＭＦＢ８tgt（＃ｎ）（即ち、第１気筒の目標８deg燃焼割合ＭＦＢ８tgt（＃１）、第２気筒の目標８deg燃焼割合ＭＦＢ８tgt（＃２）、第３気筒の目標８deg燃焼割合ＭＦＢ８tgt（＃３）及び第４気筒の目標８deg燃焼割合ＭＦＢ８tgt（＃４））の最新値を読み込む。これらの値は、先に説明した図８のステップ８５０において更新される毎にＲＡＭ７３に格納されている。
【００９７】
ステップ１１３０：第ｎ気筒の目標８deg燃焼割合ＭＦＢ８tgt（＃ｎ）（即ち、第１気筒の目標８deg燃焼割合ＭＦＢ８tgt（＃１）乃至第４気筒の目標８deg燃焼割合ＭＦＢ８tgt（＃４））の中で最小値ＭＩＮを選択し、その最小値ＭＩＮを最小目標燃焼割合ＭＦＢ８tgtMinに格納する。
【００９８】
ステップ１１４０：第ｎ気筒の目標８deg燃焼割合ＭＦＢ８tgt（＃ｎ）（即ち、第１気筒の目標８deg燃焼割合ＭＦＢ８tgt（＃１）乃至第４気筒の目標８deg燃焼割合ＭＦＢ８tgt（＃４））の中で最大値ＭＡＸを選択し、その最大値ＭＡＸを最大目標燃焼割合ＭＦＢ８tgtMaxに格納する。
【００９９】
ステップ１１５０：最大目標燃焼割合ＭＦＢ８tgtMaxから最小目標燃焼割合ＭＦＢ８tgtMinを減じることにより、それらの差（最大最小差）ΔＭＦＢ８tgtを取得する。この最大最小差ΔＭＦＢ８tgtは、機関１０の総ての気筒のそれぞれが「少なくとも一回の燃焼行程を終了する期間」における機関１０のトルク変動量に応じた値である。
【０１００】
次に、ＣＰＵ７１はステップ１１６０に進み、最大最小差ΔＭＦＢ８tgtが所定の閾値ΔＡｔｈよりも大きいか否かを判定する。最大最小差ΔＭＦＢ８tgtが所定の閾値ΔＡｔｈよりも大きい場合、「目標８deg燃焼割合ＭＦＢ８tgtが最大目標燃焼割合ＭＦＢ８tgtMaxとなっている気筒が発生するトルク（図示トルク）」と「目標８deg燃焼割合ＭＦＢ８tgtが最小目標燃焼割合ＭＦＢ８tgtMinとなっている気筒が発生するトルク（図示トルク）」との差が許容値を超えていて、機関１０の振動が過大となっていると推定される。
【０１０１】
そこで、ＣＰＵ７１は、最大最小差ΔＭＦＢ８tgtが所定の閾値ΔＡｔｈよりも大きい場合、ステップ１１６０にて「Ｙｅｓ」と判定してステップ１１７０に進み、気筒別点火時期制御（気筒別に目標８deg燃焼割合ＭＦＢ８tgtを設定する制御）を中止するように、気筒別制御フラグＸＫＴＢＴの値を「０」に設定する。その後、ＣＰＵ７１はステップ１１９５に進み、本ルーチンを一旦終了する。なお、ステップ１１６０の処理が実行される時点において最大最小差ΔＭＦＢ８tgtが所定の閾値ΔＡｔｈ以下である場合、ＣＰＵ７１はそのステップ１１６０にて「Ｎｏ」と判定し、ステップ１１９５に直接進んで本ルーチンを一旦終了する。また、ステップ１１１０の処理が実行される時点において気筒別制御フラグＸＫＴＢＴの値が「０」であれば、ＣＰＵ７１はそのステップ１１１０にて「Ｎｏ」と判定し、ステップ１１９５に直接進んで本ルーチンを一旦終了する。
【０１０２】
３−４．点火時期制御（全気筒同時点火時期制御）
このように気筒別制御フラグＸＫＴＢＴの値が「０」に設定されたとき、ＣＰＵ７１が図８に示したルーチンの処理をステップ８００から開始すると、ＣＰＵ７１は続くステップ８１０にて「Ｎｏ」と判定する。そして、ＣＰＵ７１はステップ８８０に進み、第ｎ気筒（ｎは１以上４以下の整数）目標８deg燃焼割合ＭＦＢ８tgt（＃ｎ）に「総ての気筒に共通の（唯一の）目標８deg燃焼割合ＭＦＢ８tgtＡＬＬ」を格納し、ステップ８９５に進んで本ルーチンを一旦終了する。この結果、各気筒の目標８deg燃焼割合ＭＦＢ８tgt（＃ｎ）は目標８deg燃焼割合ＭＦＢ８tgtＡＬＬに一致させられる。
【０１０３】
この結果、ＣＰＵ７１が図９のルーチンのステップ９５０及びステップ９６０を実行することにより、各気筒の目標８deg燃焼割合ＭＦＢ８（＃ｎ）が目標８deg燃焼割合ＭＦＢ８tgtＡＬＬと一致するように各気筒の点火時期ＳＡ（＃ｎ）が制御される。
【０１０４】
３−５．気筒別点火時期制御の中止判定（その２）
更に、ＣＰＵ７１は、図１２に示したルーチンを所定時間の経過毎に繰り返し実行している。従って、所定のタイミングになると、ＣＰＵ７１はステップ１２００から処理を開始し、ステップ１２１０に進んで気筒別制御フラグＸＫＴＢＴの値が「１」であるか否かを判定する。
【０１０５】
現時点において気筒別制御フラグＸＫＴＢＴの値が「１」であると仮定する。この場合、ＣＰＵ７１はステップ１２１０にて「Ｙｅｓ」と判定し、以下に述べるステップ１２２０乃至ステップ１２５０の処理を順に行う。
【０１０６】
ステップ１２２０：ＣＰＵ７１は、各気筒の図示トルクＴＲＱ（＃ｎ）（即ち、第１気筒の図示トルクＴＲＱ（＃１）、第２気筒の図示トルクＴＲＱ（＃２）、第３気筒の図示トルクＴＲＱ（＃３）及び第４気筒の図示トルクＴＲＱ（＃４））の最新値を読み込む。これらの図示トルクＴＲＱは、別途説明する図１３に示したルーチンの処理を実行することにより気筒別に取得され、且つ、ＲＡＭ７３に格納されている。
【０１０７】
ステップ１２３０：第ｎ気筒の図示トルクＴＲＱ（＃ｎ）（即ち、第１気筒の図示トルクＴＲＱtgt（＃１）乃至第４気筒の図示トルクＴＲＱ（＃４））の中で最小値ＭＩＮを選択し、その最小値ＭＩＮを最小図示トルクＴＲＱＭＩＮに格納する。
【０１０８】
ステップ１２４０：第ｎ気筒の図示トルクＴＲＱ（＃ｎ）（即ち、第１気筒の図示トルクＴＲＱtgt（＃１）乃至第４気筒の図示トルクＴＲＱ（＃４））の中で最大値ＭＡＸを選択し、その最大値ＭＡＸを最大図示トルクＴＲＱＭＡＸに格納する。
【０１０９】
ステップ１２５０：最大図示トルクＴＲＱＭＡＸから最小図示トルクＴＲＱＭＩＮを減じることにより、それらの差（最大最小差）ΔＴＲＱを取得する。この最大最小差ΔＴＲＱは、機関１０の総ての気筒のそれぞれが「少なくとも一回の燃焼行程を終了する期間」における機関１０のトルク変動量に応じた値である。
【０１１０】
次に、ＣＰＵ７１はステップ１２６０に進み、最大最小差ΔＴＲＱが所定の閾値ΔＢｔｈよりも大きいか否かを判定する。最大最小差ΔＴＲＱが所定の閾値ΔＢｔｈよりも大きい場合、機関１０の振動が過大となっていると推定される。そこで、ＣＰＵ７１は、最大最小差ΔＴＲＱが所定の閾値ΔＢｔｈよりも大きい場合、ステップ１２６０にて「Ｙｅｓ」と判定してステップ１２７０に進み、気筒別点火時期制御（気筒別に目標８deg燃焼割合ＭＦＢ８tgtを設定する制御）を中止するように、気筒別制御フラグＸＫＴＢＴの値を「０」に設定する。その後、ＣＰＵ７１はステップ１２９５に進み、本ルーチンを一旦終了する。
【０１１１】
なお、ステップ１２６０の処理が実行される時点において最大最小差ΔＴＲＱが所定の閾値ΔＢｔｈ以下である場合、ＣＰＵ７１はそのステップ１２６０にて「Ｎｏ」と判定し、ステップ１２９５に直接進んで本ルーチンを一旦終了する。また、ステップ１２１０の処理が実行される時点において気筒別制御フラグＸＫＴＢＴの値が「０」であれば、ＣＰＵ７１はそのステップ１２１０にて「Ｎｏ」と判定し、ステップ１２９５に直接進んで本ルーチンを一旦終了する。
【０１１２】
３−６．点火時期制御（全気筒同時点火時期制御）
このように気筒別制御フラグＸＫＴＢＴの値が「０」に設定されると、前述したように、ＣＰＵ７１は図８に示したルーチンの処理を実行することにより、各気筒の最大目標燃焼割合ＭＦＢ８tgtMax（＃ｎ）を各気筒に共通の目標８deg燃焼割合ＭＦＢ８tgtＡＬＬに設定する。更に、ＣＰＵ７１は図９に示したルーチンの処理を実行することにより、各気筒の８deg燃焼割合ＭＦＢ８（＃ｎ）が目標８deg燃焼割合ＭＦＢ８tgtＡＬＬに一致するように、各気筒の点火時期ＳＡ（＃ｎ）を制御する。
【０１１３】
３−７．図示トルクＴＲＱの取得（推定）
ＣＰＵ７１は、図１２に示したルーチンにおいて使用される図示トルクＴＲＱ（＃ｎ）を取得するために、図１３に示した「図示トルクＴＲＱ算出ルーチン」を所定時間（クランク軸が１°クランク角回転するよりも短い時間）の経過毎に実行するようになっている。なお、このルーチンは気筒毎に独立して実行される。
【０１１４】
ＣＰＵ７１は、図示トルクＴＲＱとしての「平均有効トルク値」を、以下に記載したステップ１３０２乃至ステップ１３４６の処理を行うことにより算出（推定）する。この方法は、特開平５−２４８２９０号公報、特開平８−３１９８６２号公報及び特開平２−１５３２４３号公報等に記載されている周知の方法である。以下、第１気筒〜第４気筒のうちの特定の気筒に着目して説明を行う。なお、ここではその特定気筒の筒内圧センサ６５が検出する筒内圧をＰｃ１と表記する。
【０１１５】
ステップ１３０２：ＣＰＵ７１は特定気筒のクランク角がＢＴＤＣ２０５°（圧縮上死点前２０５°）であるか否かを判定する。ＣＰＵ７１は、現在の特定気筒のクランク角がＢＴＤＣ２０５°であればステップ１３０４に進み、現在のクランク角がＢＴＤＣ２０５°でなければステップ１３０６に進む。
ステップ１３０４：ＣＰＵ７１は、特定気筒に設けられている筒内圧センサ６５から筒内圧Ｐｃ１を値Ｖ０１として取得し、ステップ１３０６に進む。
【０１１６】
ステップ１３０６〜ステップ１３１６：以下、ＣＰＵ７１は、ステップ１３０２及びステップ１３０４と同様な処理を行うことにより、特定気筒のクランク角が、ＢＴＤＣ１９０°であるときの筒内圧Ｐｃ１を値Ｖ０２として取得し（ステップ１３０６及びステップ１３０８）、ＢＴＤＣ１７５°であるときの筒内圧Ｐｃ１を値Ｖ０３として取得し（ステップ１３１０及びステップ１３１２）、ＢＴＤＣ１６０°であるときの筒内圧Ｐｃ１を値Ｖ０４として取得する（ステップ１３１４及びステップ１３１６）。
【０１１７】
ステップ１３１８：ＣＰＵ７１はステップ１３１６の処理を行った後、ステップ１３１８に進み、値Ｖ０１〜Ｖ０４の平均値（＝（Ｖ０１＋Ｖ０２＋Ｖ０３＋Ｖ０４）／４）を基準値Ｖ０として設定する。その後、ＣＰＵ７１はステップ１３２０に進む。
【０１１８】
ステップ１３２０：ＣＰＵ７１は、特定気筒のクランク角が圧縮上死点後５°（ＡＴＤＣ５°）であるか否かを判定する。ＣＰＵ７１は、現在のクランク角がＡＴＤＣ５°であればステップ１３２２〜ステップ１３２６に進み、現在のクランク角がＡＴＤＣ５°でなければステップ１３２６に直接進む。
ステップ１３２２：ＣＰＵ７１は特定気筒に設けられている筒内圧センサ６５から筒内圧Ｐｃ１を値Ｖ１として取得する。
ステップ１３２４：ＣＰＵ７１は、値Ｖ１から基準値Ｖ０を減算した値を特定気筒の第１筒内圧Ｐｃ１（１）として取得する。
【０１１９】
ステップ１３２６〜ステップ１３３０：ＣＰＵ７１は、ステップ１３２０乃至ステップ１３２４と同様な処理を行うことにより、特定気筒のクランク角がＡＴＤＣ２０°であるときの筒内圧Ｐｃ１を値Ｖ２として取得するとともに、値Ｖ２から基準値Ｖ０を減算した値を第２筒内圧Ｐｃ１（２）として取得する。
ステップ１３３２〜ステップ１３３６：ＣＰＵ７１は、ステップ１３２０乃至ステップ１３２４と同様な処理を行うことにより、特定気筒のクランク角がＡＴＤＣ３５°であるときの筒内圧Ｐｃ１を値Ｖ３として取得するとともに、値Ｖ３から基準値Ｖ０を減算した値を第３筒内圧Ｐｃ１（３）として取得する。
ステップ１３３８〜ステップ１３４２：ＣＰＵ７１は、ステップ１３２０乃至ステップ１３２４と同様な処理を行うことにより、特定気筒のクランク角がＡＴＤＣ５０°であるときの筒内圧Ｐｃ１を値Ｖ４として取得するとともに、値Ｖ４から基準値Ｖ０を減算した値を第４筒内圧Ｐｃ１（４）として取得する。ＣＰＵ７１は、ステップ１３４２を処理した後、ステップ１３４６に進む。
【０１２０】
ステップ１３４６：ＣＰＵ７１は、下記の（６）式に従って前回の燃焼サイクルにおける特定気筒の図示トルクＴＲＱ（平均有効トルク値ＴＲＱ）を算出する。
【数６】
0005077562.tif 000007
【０１２１】
以上、説明したように、第一制御装置は、
機関１０の有する複数の気筒のそれぞれについて圧縮上死点後第一クランク角における実際の燃焼割合（例えば、８deg燃焼割合ＭＦＢ８（＃ｎ））を第一燃焼割合として取得するとともに、その第一クランク角よりも遅角側である圧縮上死点後第二クランク角における実際の燃焼割合（例えば、３０deg燃焼割合ＭＦＢ３０（＃ｎ））を第二燃焼割合として取得する燃焼割合取得手段（図５のステップ５１０及びステップ５２０、図９のステップ９３０及びステップ９４０等）と、
前記機関に要求されるトルクである要求トルクを変更するために変更される要求トルク関連量に基づいて前記複数の気筒のそれぞれに供給する燃料量を決定するとともに同決定した燃料量の燃料を同複数の気筒のそれぞれに供給する燃料供給手段（図６のルーチン）と、
前記複数の気筒のそれぞれに対して取得された前記第二燃焼割合に基づいて定められる空気量制御用第二燃焼割合（ＭＦＢ３０ＴＡ）が目標第二燃焼割合（ＭＦＢ３０tgt）に一致するように前記機関の吸入空気量を制御する吸入空気量制御手段（図５のステップ５１０、図７のルーチン）と、
前記複数の気筒のそれぞれに対して取得された前記第一燃焼割合が前記目標第二燃焼割合よりも小さい目標第一燃焼割合（目標８deg燃焼割合ＭＦＢ８tgt（＃ｎ））に一致するように同複数の気筒のそれぞれの点火時期を制御する点火時期制御手段（図５のステップ５２０、図９のルーチン、図１０）と、
前記機関の状態を表す運転状態パラメータを取得するとともに同取得した運転状態パラメータに応じて前記目標第一燃焼割合を変更する目標第一燃焼割合変更手段（図５のステップ５３０、図８のステップ８２０〜ステップ８７０）と、
を備える。
【０１２２】
これにより、気筒間に気筒性能の差がある場合であっても、各気筒における燃焼が安定する。従って、第一制御装置は、燃焼割合（第一燃焼割合）を用いて点火時期を最適な時期に近づけるとともに、燃焼割合（第二燃焼割合）を用いて空燃比を希薄限界に近い空燃比に制御し、且つ、機関１０の運転状態を安定化させることができる。
【０１２３】
更に詳細には、第一制御装置の目標第一燃焼割合変更手段は、前記運転状態パラメータとして前記複数の気筒のそれぞれについて取得された前記第一燃焼割合の所定の期間における標準偏差σ（ＭＦＢ８（＃ｎ））を取得するとともに、前記複数の気筒のうちの任意の一つの気筒である特定気筒に対して取得した同標準偏差が所定の標準偏差閾値よりも大きいとき同特定気筒に対する前記目標第一燃焼割合を減少するように構成されている（図５のステップ５３０、図８のステップ８２０〜ステップ８７０）。
【０１２４】
これにより、燃焼が不安定となっている気筒の点火時期が遅角側に移行されるので、その気筒の燃焼が安定化する。
【０１２５】
更に、前記目標第一燃焼割合変更手段は、前記運転状態パラメータとして（前記複数の気筒のそれぞれが少なくとも一回の燃焼行程を終了する期間における）前記機関のトルク変動量に応じた値（最大最小差ΔＭＦＢ８tgt、最大最小差ΔＴＲＱ）を取得するとともに、同取得したトルク変動量に応じた値が所定のトルク変動量閾値よりも大きくなったと推定されるとき同複数の気筒のそれぞれに対する前記目標第一燃焼割合（目標８deg燃焼割合ＭＦＢ８tgt（＃ｎ））を同複数の気筒の総てに対して共通の所定値（目標８deg燃焼割合ＭＦＢ８tgtＡＬＬ）に設定する（気筒別点火時期制御を中止する）ように構成されている（図５のステップ５４０及びステップ５５０、図１１のルーチン、図１２のルーチン、図８のステップ８１０及びステップ８８０、並びに、図９のルーチン）。
【０１２６】
この「共通の所定値（目標８deg燃焼割合ＭＦＢ８tgtＡＬＬ）」は、各気筒の点火時期が過進角とならない値に選択される。従って、第一制御装置は、機関１０の振動を低減することができる。
【０１２７】
なお、第一制御装置は、上記最大最小差ΔＭＦＢ８tgt（即ち、機関１０の有する複数の気筒のそれぞれが一回の燃焼行程を終了する期間において同複数の気筒のそれぞれの点火時期を制御する際に前記点火時期制御手段によって用いられた前記目標第一燃焼割合のうちの最大値と最小値との差）、及び、上記最大最小差ΔＴＲＱ（即ち、前記複数の気筒のそれぞれが一回の燃焼行程を終了する期間におけるそれぞれの気筒に対する図示トルクのうちの最大値と最小値との差）の何れか一方のみを取得し、それに基づいて気筒別点火時期制御を中止するか否かを判定するように構成され得る。
【０１２８】
更に、第一制御装置は、運転状態パラメータとしての「機関のトルク変動量に応じた値」として、複数の気筒のうちの点火順序が連続する二つの気筒のそれぞれに対する前記目標第一燃焼割合の差ΔＹ１、又は、前記複数の気筒のうちの点火順序が連続する二つの気筒のそれぞれに対する図示トルクの差ΔＹ２、を取得し、それに基づいて気筒別点火時期制御を中止するか否かを判定するように構成されることもできる。即ち、この場合、第一制御装置は、差ΔＹ１が所定値ΔＹ１ｔｈよりも大きければ気筒別点火時期制御を中止し、差ΔＹ２が所定値ΔＹ２ｔｈよりも大きければ気筒別点火時期制御を中止する。これは、点火順序が連続する二つの気筒が発生するトルク差が大きいと、機関１０が振動し易くなるからである。
【０１２９】
＜第二実施形態＞
次に、本発明の第二実施形態に係る制御装置（以下、「第二制御装置」と称呼する。）について説明する。第二制御装置において、目標第一燃焼割合は総ての気筒に対して共通（目標８deg燃焼割合ＭＦＢ８tgtＡ）である。即ち、第二制御装置は、気筒別点火時期制御（目標第一燃焼割合である目標８deg燃焼割合ＭＦＢ８tgtを気筒別に設定する制御）を実行しない。但し、第二制御装置は、機関１０に供給された混合気の実際の空燃比を取得するとともに、その取得した空燃比が「理論空燃比又は理論空燃比から所定空燃比だけ大きい空燃比」よりも小さいとき目標第一燃焼割合（目標８deg燃焼割合ＭＦＢ８tgtＡ）を変更（増大）させる。
【０１３０】
（第二制御装置による制御の概要）
以下、図１４に示した概略フローチャートに沿って第二制御装置による制御の概要について説明する。
【０１３１】
先ず、第二制御装置はステップ１４１０に進み、先に説明した図５のステップ５１０と同じ処理を行う。即ち、第二制御装置は、各気筒の３０deg燃焼割合ＭＦＢ３０（第二燃焼割合）に基づいて空気量制御用第二燃焼割合ＭＦＢ３０ＴＡを求める。更に、第二制御装置は空気量制御用第二燃焼割合ＭＦＢ３０ＴＡが目標第二燃焼割合ＭＦＢ３０tgtと一致するように吸入空気量（実際には、スロットル弁４３の開度）を制御する。本例においても、目標第二燃焼割合ＭＦＢ３０tgtは９０％である。
【０１３２】
ところで、ある機関において点火時期をＭＢＴに設定するための目標第一燃焼割合（目標８deg燃焼割合ＭＦＢ８tgt）は６０％である（即ち、図１に示した領域Ａに対応するＭＦＢ８tgtが６０％である）と仮定する。しかし、圧縮上死点後８°クランク角は、燃焼の初期〜中期であるから、目標８deg燃焼割合ＭＦＢ８tgtを６０％に設定すると、点火時期はかなり進角側の時期になる。その結果、燃焼は不安定になる傾向にある。
【０１３３】
更に、上述した気筒性能は気筒間において相違する。従って、ある気筒の燃焼状態が他の気筒に比べて大きく悪化する可能性がある。その場合、燃費が悪化する場合が発生する。
【０１３４】
以上のことから、点火時期をＭＢＴに厳密に一致させるために目標第一燃焼割合を相当に大きい値に設定することは必ずしも得策ではない。よって、第一目標燃焼割合を、ＭＢＴを狙うための理想値（例えば、６０％）よりも僅かに小さい値（例えば、５０％）に設定することにより、点火時期を遅角側に設定し、もって、燃焼を安定させることにより結果的に燃費を向上することが考えられる。
【０１３５】
しかしながら、このように目標第一燃焼割合を相対的に小さい値に設定すると点火時期は遅角側となるから、燃焼割合ＭＦＢの立ち上がりが遅れる。この結果、機関の空燃比が希薄限界近傍の空燃比であると、第二燃焼割合（３０deg燃焼割合ＭＦＢ３０）が十分な大きさとならず、空気量制御用第二燃焼割合ＭＦＢ３０ＴＡが目標第二燃焼割合ＭＦＢ３０tgtに到達できない場合が発生する。この場合、第二制御装置は、空気量制御用第二燃焼割合ＭＦＢ３０ＴＡを目標第二燃焼割合ＭＦＢ３０tgtに一致させるように吸入空気量を減少させ、それにより空燃比をリッチ化する。即ち、空燃比は希薄限界から遠ざかる。その結果、燃費が悪化する場合がある。
【０１３６】
図１５乃至図１７は、このような現象を示したグラフである。図１５は、機関１０を搭載した車両の速度（車速）に対する燃料消費率を示したグラフである。このグラフにおいて、燃料消費率が小さいほど機関の熱効率が良好である（即ち、燃費が良好である）ことを示す。図１５から理解されるように、車速が６０ｋｍ／ｈである場合、目標第一燃焼割合（目標８deg燃焼割合ＭＦＢ８tgt）が５０％であるときの燃料消費率（ケースＢ）のほうが、目標第一燃焼割合（目標８deg燃焼割合ＭＦＢ８tgt）が６０％であるときの燃料消費率（ケースＣ）よりも良好である。
【０１３７】
図１６は、車速が６０ｋｍ／ｈである場合における空燃比と燃焼のバラツキ度合いを示したグラフである。この図１６から、目標第一燃焼割合（目標８deg燃焼割合ＭＦＢ８tgt）が５０％であるとき（ケースＢ）の空燃比と目標第一燃焼割合（目標８deg燃焼割合ＭＦＢ８tgt）が６０％であるとき（ケースＣ）の空燃比とは同じ程度の希薄空燃比であることが判る。これに対し、目標第一燃焼割合（目標８deg燃焼割合ＭＦＢ８tgt）が５０％であるとき（ケースＢ）の燃焼バラツキは、目標第一燃焼割合（目標８deg燃焼割合ＭＦＢ８tgt）が６０％であるとき（ケースＣ）の燃焼バラツキよりも小さい。即ち、図１６は、車速６０ｋｍ／ｈの場合、燃焼バラツキが小さくなるように（燃焼が安定するように）目標第一燃焼割合（目標８deg燃焼割合ＭＦＢ８tgt）を小さめの値に設定したほうが、結果的に燃費が良くなることを示している。
【０１３８】
一方、図１５から理解されるように、車速が１２０ｋｍ／ｈである場合、目標第一燃焼割合（目標８deg燃焼割合ＭＦＢ８tgt）が６０％であるときの燃料消費率（ケースＣ）のほうが、目標第一燃焼割合（目標８deg燃焼割合ＭＦＢ８tgt）が５０％であるときの燃料消費率（ケースＢ）よりも良好である。
【０１３９】
図１７は、車速が１２０ｋｍ／ｈである場合における空燃比と燃焼のバラツキ度合いを示したグラフである。この図１７から、目標第一燃焼割合（目標８deg燃焼割合ＭＦＢ８tgt）が６０％であるとき（ケースＣ）の空燃比は１９以上の希薄空燃比になっているが、目標第一燃焼割合（目標８deg燃焼割合ＭＦＢ８tgt）が５０％であるとき（ケースＢ）の空燃比は１５．５前後であって希薄空燃比になっていない。これに対し、目標第一燃焼割合（目標８deg燃焼割合ＭＦＢ８tgt）が６０％であるとき（ケースＣ）の燃焼バラツキは、目標第一燃焼割合（目標８deg燃焼割合ＭＦＢ８tgt）が５０％であるとき（ケースＢ）の燃焼バラツキよりも僅かに大きい。即ち、図１７は、車速１２０ｋｍ／ｈの場合、燃焼バラツキは多少大きくなるものの、目標第一燃焼割合（目標８deg燃焼割合ＭＦＢ８tgt）を６０％に設定することにより空燃比が大きくなり、その結果、燃費率が良好になることを示している。
【０１４０】
そこで、第二制御装置は、図１４のステップ１４２０において、第ｎ気筒（ｎは１〜４の整数）の８deg燃焼割合ＭＦＢ８（＃ｎ）が「総ての気筒に共通の目標８deg燃焼割合ＭＦＢ８tgtＡ」と一致するように、第ｎ気筒の点火時期ＳＡ（＃ｎ）を制御する。この目標８deg燃焼割合ＭＦＢ８tgtＡの初期値は、ＭＢＴを狙う値（例えば、６０％）より小さい値（例えば、５０％）に設定される。
【０１４１】
次に、第二制御装置はステップ１４３０に進み、空燃比センサ６７の出力に基づいて取得される実際の空燃比が閾値空燃比（例えば、１７）よりも小さい（リッチ側の空燃比）であるか否かを判定する。この閾値空燃比は、理論空燃比又は理論空燃比から所定空燃比だけ大きい空燃比に設定される。
【０１４２】
このとき、実際の空燃比が閾値空燃比以上であれば（即ち、実際の空燃比が希薄限界空燃比に十分に近しい空燃比となっていれば）、第二制御装置はステップ１４３０にて「Ｎｏ」と判定してステップ１４１０に戻る。
【０１４３】
これに対し、実際の空燃比が閾値空燃比よりも小さいと、第二制御装置はステップ１４３０にて「Ｙｅｓ」と判定してステップ１４４０に進み、現時点の燃焼は安定しているか否かを判定する。より具体的には、第二制御装置は、少なくとも総ての気筒のそれぞれが一回の燃焼行程を終了する期間（例えば、７２０度クランク角）における「機関１０のトルク変動量に応じた値」を取得し、その取得したトルク変動量に応じた値が所定のトルク変動量閾値よりも小さいか否かを判定する。
【０１４４】
現時点の燃焼が安定している場合、第二制御装置はステップ１４５０に進み、目標８deg燃焼割合ＭＦＢ８tgtＡを所定量だけ増大する。この結果、目標８deg燃焼割合ＭＦＢ８tgtＡは例えば６０％に近づく。但し、第二制御装置は、目標８deg燃焼割合ＭＦＢ８tgtＡが最大目標８deg燃焼割合ＭＦＢ８max（例えば６０％）を超えないように、目標８deg燃焼割合ＭＦＢ８tgtＡを変更する。その後、第二制御装置はステップ１４００からの処理を繰り返す。
【０１４５】
このような処理により、目標８deg燃焼割合ＭＦＢ８tgtＡは増大して行く。その結果、点火時期は進角側に移行する。従って、燃焼割合が上昇を開始する時点が早くなるので、空気量制御用第二燃焼割合ＭＦＢ３０ＴＡは上昇し、目標第二燃焼割合ＭＦＢ３０tgtよりも大きくなる。よって、空気量制御用第二燃焼割合ＭＦＢ３０ＴＡが目標第二燃焼割合ＭＦＢ３０tgtに一致するように吸入空気量が増大せしめられ、実際の空燃比は大きくなる（希薄限界の空燃比に近づく）。従って、燃費が良好になる。
【０１４６】
また、ステップ１４４０の判定時において、現時点の燃焼が安定していない場合、第二制御装置はステップ１４４０からステップ１４６０に進み、目標８deg燃焼割合ＭＦＢ８tgtＡを所定量だけ減少する。この結果、目標８deg燃焼割合ＭＦＢ８tgtＡは例えば５０％に近づく。但し、第二制御装置は、目標８deg燃焼割合ＭＦＢ８tgtＡが最小目標８deg燃焼割合ＭＦＢ８min（例えば５０％）を下回ることがないように、目標８deg燃焼割合ＭＦＢ８tgtＡを変更する。これにより、燃焼が過度に不安定になり、トルク変動が大きくなることを回避することができる。その後、第二制御装置はステップ１４００からの処理を繰り返す。なお、第二制御装置は、ステップ１４３０からステップ１４１０に戻る途中に、実際の空燃比が希薄限界空燃比に近い空燃比よりも大きくなっているとき、目標８deg燃焼割合ＭＦＢ８tgtＡを所定量だけ増大してもよい。
【０１４７】
（第二制御装置による制御の詳細）
次に、第二制御装置による制御の詳細について説明する。
【０１４８】
第二制御装置のＣＰＵ７１は、図６及び図７に示したルーチンを実行することにより、燃料噴射制御及びスロットル弁（吸入空気量）制御を行う。更に、第二制御装置のＣＰＵ７１は、図１８及び図１９に示したルーチンを実行することにより、点火時期制御を行う。図６及び図７に示したルーチンによる処理は説明済みである。従って、以下、図１８及び図１９に示したルーチンに従って第二制御装置の点火時期制御について説明する。
【０１４９】
４−１．点火時期制御
ＣＰＵ７１は、図１８に示した点火時期制御ルーチンを所定の微小時間の経過毎に繰り返し実行している。図１８に示したルーチンは図９に示したルーチンにおけるステップ９５０をステップ１８１０に置換した点のみにおいて、図９に示したルーチンと相違している。なお、図１８において図９に示したステップと同一の処理を行うためのステップには、図９のそのようなステップに付された符号と同一の符号が付されている。これらのステップについての詳細な説明は省略される。
【０１５０】
ＣＰＵ７１は、現時点のクランク角が「第ｎ気筒の圧縮上死点後６０度クランク角」に一致するとステップ９３０に進み、第ｎ気筒の８deg燃焼割合ＭＦＢ８（＃ｎ）を取得する。次に、ＣＰＵ７１は、ステップ９４０にて第ｎ気筒の３０deg燃焼割合ＭＦＢ３０（＃ｎ）を取得する。次いで、ＣＰＵ７１はステップ１８１０に進み、ステップ９３０にて取得した８deg燃焼割合ＭＦＢ８（＃ｎ）を、総ての気筒に共通の目標８deg燃焼割合ＭＦＢ８tgtＡと一致させるための点火時期補正量ΔＳＡ（＃ｎ）を決定する。点火時期補正量ΔＳＡ（＃ｎ）の算出の仕方はステップ９５０と同様である。そして、ＣＰＵ７１はステップ９６０に進み、第ｎ気筒の点火時期ＳＡ（＃ｎ）を決定するとともに、第ｎ気筒の実際の点火時期が第ｎ気筒の点火時期ＳＡ（＃ｎ）と一致するように、第ｎ気筒のイグナイタ３８に点火指示信号を送出する。
【０１５１】
４−２．目標８deg燃焼割合ＭＦＢ８tgtＡの設定
ＣＰＵ７１は、図１９に示した目標第一燃焼割合ＭＦＢ８tgt設定ルーチンを所定時間の経過毎に繰り返し実行している。従って、所定のタイミングになると、ＣＰＵ７１はステップ１９００から処理を開始し、７２０度クランク角前の時点から現時点までにおける「機関１０のトルク変動量ｄＴＲＱ」を取得する。機関１０のトルク変動量ｄＴＲＱは、７２０度クランク角前の時点から現時点までにおける図示トルクの最大値と最小値との差である。更に、ＣＰＵ７１は、そのトルク変動量ｄＴＲＱが閾値トルク変動量ｄＴＲＱｔｈより小さいか否かを判定する。なお、ＣＰＵ７１は、図１３に示したルーチンを各気筒別に実行し、取得したトルクＴＲＱを気筒別に且つその時点のクランク角に対応付けてＲＡＭ７３に格納している。
【０１５２】
いま、燃焼が安定していて、機関１０のトルク変動量ｄＴＲＱが閾値トルク変動量ｄＴＲＱｔｈより小さいと仮定する。この場合、ＣＰＵ７１はステップ１９１０にて「Ｙｅｓ」と判定してステップ１９２０に進み、空燃比センサ６７によって検出された空燃比Abyfsが閾値空燃比ALth（例えば、１７）よりも小さい（リッチ側の空燃比である）か否かを判定する。この閾値空燃比ALthは、理論空燃比又は理論空燃比から所定空燃比だけ大きい空燃比に設定される。
【０１５３】
いま、検出された空燃比Abyfsが閾値空燃比ALthよりも小さいと仮定する。この場合、ＣＰＵ７１はステップ１９２０にて「Ｙｅｓ」と判定し、ステップ１９３０に進んで目標８deg燃焼割合ＭＦＢ８tgtＡを所定量Δmfbだけ増大する。次いで、ＣＰＵ７１は以下に述べるステップ１９４０乃至ステップ１９７０のうちの必要な処理を実行し、ステップ１９９５に進んで本ルーチンを一旦終了する。
【０１５４】
ステップ１９４０：ＣＰＵ７１は、目標８deg燃焼割合ＭＦＢ８tgtＡが最小目標８deg燃焼割合ＭＦＢ８min（本例においては５０％）以下であるか否かを判定する。目標８deg燃焼割合ＭＦＢ８tgtＡが最小目標８deg燃焼割合ＭＦＢ８min以下であると、ＣＰＵ７１はステップ１９５０に進む。目標８deg燃焼割合ＭＦＢ８tgtＡが最小目標８deg燃焼割合ＭＦＢ８minよりも大きいと、ＣＰＵ７１はステップ１９４０からステップ１９６０に直接進む。
ステップ１９５０：ＣＰＵ７１は、目標８deg燃焼割合ＭＦＢ８tgtＡに最小目標８deg燃焼割合ＭＦＢ８minを格納する。
【０１５５】
ステップ１９６０：ＣＰＵ７１は、目標８deg燃焼割合ＭＦＢ８tgtＡが最大目標８deg燃焼割合ＭＦＢ８max（本例においては６０％）以上であるか否かを判定する。目標８deg燃焼割合ＭＦＢ８tgtＡが最大目標８deg燃焼割合ＭＦＢ８max以上であると、ＣＰＵ７１はステップ１９７０に進む。目標８deg燃焼割合ＭＦＢ８tgtＡが最大目標８deg燃焼割合ＭＦＢ８maxよりも小さいと、ＣＰＵ７１はステップ１９６０からステップ１９９５に直接進む。
ステップ１９７０：ＣＰＵ７１は、目標８deg燃焼割合ＭＦＢ８tgtＡに最大目標８deg燃焼割合ＭＦＢ８maxを格納する。
【０１５６】
一方、ステップ１９１０の判定時点において機関１０のトルク変動量ｄＴＲＱが閾値トルク変動量ｄＴＲＱｔｈ以上であると、ＣＰＵ７１はステップ１９１０にて「Ｎｏ」と判定してステップ１９８０に進み、目標８deg燃焼割合ＭＦＢ８tgtＡを所定量Δmfbだけ減少する。次いで、ＣＰＵ７１はステップ１９４０乃至ステップ１９７０のうちの必要な処理を実行し、ステップ１９９５に進んで本ルーチンを一旦終了する。
【０１５７】
以上、説明したように、第二制御装置は、第一制御装置と同様に、燃焼割合取得手段、燃料供給手段、吸入空気量制御手段及び点火時期制御手段を有する。更に、第二制御装置は、前記機関の状態を表す運転状態パラメータ（実際の空燃比Abyfs）を取得するとともに同取得した運転状態パラメータに応じて前記目標第一燃焼割合を変更する目標第一燃焼割合変更手段（図１４のステップ１４３０及びステップ１４５０、図１９のステップ１９２０及びステップ１９３０）を備える。
【０１５８】
従って、第二制御装置は、点火時期の制御に「安定した燃焼を実現するために点火時期を若干遅角側に設定する目標第一燃焼割合」を使用することができるので、燃焼を安定させながら空燃比を希薄限界に近しいリーン空燃比に設定できる。更に、第二制御装置は、実際の空燃比が希薄限界から遠い空燃比（リッチ側の空燃比）となったときには、その目標第一燃焼割合を増大する。この結果、点火時期は進角されるから、燃焼割合が速やかに増大する。従って、空気量制御用第二燃焼割合が目標第二燃焼割合よりも大きくなるので、吸入空気量が増大され、その結果、混合気の空燃比が希薄限界に近づくので、燃費が改善される。
【０１５９】
更に、第二制御装置の目標第一燃焼割合変更手段は、「前記運転状態パラメータ」として「前記複数の気筒のそれぞれが少なくとも一回の燃焼行程を終了する期間における前記機関のトルク変動量に応じた値（ｄＴＲＱ）」を取得するとともに、「その取得したトルク変動量に応じた値」が所定のトルク変動量閾値（ｄＴＲＱｔｈ）を超えないように前記目標第一燃焼割合を増大させる（図１９のステップ１９１０を参照。）。
【０１６０】
従って、「点火時期が過進角となることに起因して、機関のトルク変動量が大きくなり、よって、機関１０の振動が大きくなること」を回避することができる。
【０１６１】
以上、説明したように、本発明に係る内燃機関の制御装置によれば、第一燃焼割合を用いて点火時期を最適な時期に近づけるとともに第二燃焼割合を用いて空燃比を希薄限界に近い空燃比に制御し、且つ、機関１０の運転状態を安定化させることができる。
【０１６２】
更に、上記実施形態によれば、空燃比がよりリーンな空燃比に変更される際、燃焼に寄与する燃料の量である燃料噴射量ＴＡＵが低下しないので、機関発生トルクは要求トルクに一致し続ける。即ち、「機関発生トルクが比較的大きく減少することに起因して運転者が違和感を覚える」という問題を回避することもできる。
【０１６３】
本発明は上記各実施形態に限定されることはなく、本発明の範囲内において種々の変形例を採用することができる。例えば、上記各実施形態は、燃焼割合ＭＦＢ（従って、図示熱量の割合Ｑsum／Ｑtotal）を筒内圧に基いて取得していたが、燃焼割合ＭＦＢをWiebe関数と呼ばれる燃焼モデル（例えば、特開２００６−９７２０号公報を参照。）により求めるように構成することもできる。
【図面の簡単な説明】
【０１６４】
【図１】点火時期と、クランク角が所定の第一クランク角であるときの実際の燃焼割合と、機関の発生トルクと、の関係を示したグラフである。
【図２】空燃比を変更した各場合における、燃焼割合のクランク角に対する変化の様子を示したグラフである。
【図３】点火時期を変更した各場合における、燃焼割合のクランク角に対する変化の様子を示したタイムチャートである。
【図４】本発明の第一実施形態に係る制御装置（第一制御装置）を適用した内燃機関の概略図である。
【図５】第一制御装置の作動を示す概略フローチャートである。
【図６】第一制御装置のＣＰＵが実行するルーチンを示したフローチャートである。
【図７】第一制御装置のＣＰＵが実行するルーチンを示したフローチャートである。
【図８】第一制御装置のＣＰＵが実行するルーチンを示したフローチャートである。
【図９】第一制御装置のＣＰＵが実行するルーチンを示したフローチャートである。
【図１０】第一制御装置の点火時期制御を行うための機能ブロック図である。
【図１１】第一制御装置のＣＰＵが実行するルーチンを示したフローチャートである。
【図１２】第一制御装置のＣＰＵが実行するルーチンを示したフローチャートである。
【図１３】第一制御装置のＣＰＵが実行するルーチンを示したフローチャートである。
【図１４】本発明の第二実施形態に係る制御装置（第二制御装置）の作動を示す概略フローチャートである。
【図１５】目標第一燃焼割合を変更した場合における、種々の車速に対する燃料消費率を示したグラフである。
【図１６】目標第一燃焼割合を変更した場合における、空燃比と燃焼のバラツキとの関係を示したグラフである。
【図１７】目標第一燃焼割合を変更した場合における、空燃比と燃焼のバラツキとの関係を示したグラフである。
【図１８】第二制御装置のＣＰＵが実行するルーチンを示したフローチャートである。
【図１９】第二制御装置のＣＰＵが実行するルーチンを示したフローチャートである。
【符号の説明】
【０１６５】
１０…内燃機関、２０…シリンダブロック部、２５…燃焼室、３０…シリンダヘッド部、３７…点火プラグ、３８…イグナイタ、３９…燃料噴射弁、４０…吸気系統、４３…スロットル弁、４３ａ…スロットル弁アクチュエータ、５０…排気系統、６１…エアフローメータ、６５…筒内圧センサ、６７…上流側空燃比センサ、６９…アクセル操作量センサ、７０…電気制御装置、７１…ＣＰＵ。
【図１】
0005077562.tif 000008
【図２】
0005077562.tif 000009
【図３】
0005077562.tif 000010
【図４】
0005077562.tif 000011
【図５】
0005077562.tif 000012
【図６】
0005077562.tif 000013
【図７】
0005077562.tif 000014
【図８】
0005077562.tif 000015
【図９】
0005077562.tif 000016
【図１０】
0005077562.tif 000017
【図１１】
0005077562.tif 000018
【図１２】
0005077562.tif 000019
【図１３】
0005077562.tif 000020
【図１４】
0005077562.tif 000021
【図１５】
0005077562.tif 000022
【図１６】
0005077562.tif 000023
【図１７】
0005077562.tif 000024
【図１８】
0005077562.tif 000025
【図１９】
0005077562.tif 000026