(57)【要約】      （修正有）【課題】実効性の高い「熱発生率重心位置を用いた機関の燃焼状態の制御」を実現する。【解決手段】制御装置は、平均重心位置Ｇｃaveが目標重心位置Ｇｃtgtと一致するように、任意の気筒の燃焼パラメータＣＭinjを所定量ΔＦＢ変更し且つ残りの気筒の燃焼パラメータＣＭinjを前記所定量ΔＦＢ変更する。一方、失火状態が生じている場合、失火気筒の熱発生率重心位置が目標重心位置と一致するように、失火気筒の燃焼パラメータを所定量変更し且つ残りの気筒の燃焼パラメータを前記所定量変更する。失火状態が生じておらず且つ最も進角側にある重心位置が目標重心位置Ｇｃtgt及び平均重心位置Ｇｃaveよりも進角側に所定値ΔＧｃth１よりも大きく乖離している場合、その乖離している気筒の重心位置が目標重心位置と一致するように、その気筒の燃焼パラメータを所定量変更し且つ残りの気筒の燃焼パラメータを前記所定量変更する。【選択図】図９
2016023618.tif 000002
【特許請求の範囲】
【請求項１】
複数の気筒を備えた内燃機関に適用され、少なくとも各気筒の燃焼状態を気筒毎に個別に制御する燃焼パラメータ、を変更することにより各気筒の熱発生率重心位置を制御する制御装置であって、
少なくとも前記機関の負荷が第１閾値から同第１閾値よりも大きい第２閾値までの範囲内にある場合には、前記負荷に依らず一定のクランク角度を目標重心位置に設定し、且つ、前記負荷が前記第２閾値よりも大きい範囲にある場合には、前記負荷が大きくなるほど前記一定のクランク角度よりも遅角側の範囲においてより遅角側となるクランク角度を目標重心位置に設定する、目標重心位置設定部と、
前記気筒のうち少なくとも２つの気筒の筒内圧力をそれぞれ検出する筒内圧力検出部と、
前記筒内圧力に基づいて前記２つの気筒の熱発生率重心位置をぞれぞれ算出する重心位置算出部と、
前記算出された前記２つの気筒それぞれの熱発生率重心位置の総和を同気筒の数で割って得られる値を平均重心位置として算出する平均重心位置算出部と、
前記算出された平均重心位置が前記目標重心位置と一致するように、前記複数の気筒のそれぞれの前記燃焼パラメータを第１所定量ずつ変更する平均重心制御を行う制御部と、
を具備し、
前記制御部は、
前記平均重心制御中に、前記算出された熱発生率重心位置に基づき前記２つの気筒の前記燃焼状態の何れかが失火状態にあると判定された場合、失火状態にあると判定された気筒の熱発生率重心位置が前記目標重心位置と一致するように、その気筒の前記燃焼パラメータを第２所定量変更するとともに、残りの気筒の前記燃焼パラメータを前記第２所定量変更する最遅角気筒制御を行い、
前記平均重心制御中に、前記算出された熱発生率重心位置に基づき前記２つの気筒の前記燃焼状態の何れも失火状態にないと判定され且つ前記算出された２つの気筒の前記熱発生率重心位置のうち最も進角側にある熱発生率重心位置が前記目標重心位置及び前記平均重心位置の少なくとも一方よりも進角側に所定値よりも大きく乖離していると判定された場合、同乖離していると判定された気筒の熱発生率重心位置が前記目標重心位置と一致するように、その気筒の前記燃焼パラメータを第３所定量変更するとともに、残りの気筒の前記燃焼パラメータを前記第３所定量変更する最進角気筒制御を行う、
制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、内燃機関に供給される燃料（混合気）の燃焼状態を制御する制御装置に関する。
【背景技術】
【０００２】
一般に、ディーゼル機関等の内燃機関（以下、単に「機関」とも称呼する。）の運転時、混合気の燃焼によって生じるエネルギーの一部はクランクシャフトを回転させる仕事に変換されるが、残りは損失となる。この損失には、冷却損失、排気損失、吸気及び排気に伴って発生するポンプ損失、並びに、機械抵抗損失等が含まれる。このうち、冷却損失及び排気損失は、損失全体に対して大きな割合を占める。従って、内燃機関の燃費を改善させるためには冷却損失及び排気損失を減少させることが有効である。
【０００３】
しかしながら、一般に、冷却損失と排気損失とはトレードオフの関係にある。即ち、冷却損失を低下させれば排気損失が増加し、排気損失を低下させれば冷却損失が増加する。従って、冷却損失と排気損失との和が最小となる燃焼状態を実現できれば、機関の燃費は大幅に改善される。
【０００４】
ところで、燃焼状態は燃料噴射時期及び過給圧等の「燃焼状態に影響を及ぼす多くのパラメータ」に応じて変化する。以下、この燃焼状態に影響を及ぼすパラメータは単に「燃焼パラメータ」とも称呼される。ところが、複数の燃焼パラメータが各運転状態に対して適切な値（組み合わせ）となるように、各燃焼パラメータを実験及びシミュレーション等によって予め求めることは容易ではなく、且つ、莫大な適合時間を必要とする。そのため、燃焼パラメータを体系的に決定する手法が提案されてきている。
【０００５】
例えば、従来の制御装置の１つ（以下、「従来装置」とも称呼する。）は「１回の燃焼行程中に発生する総熱量のうち、その半分の熱量が発生した時点のクランク角度（以下、「燃焼重心角度」と称呼する。）」を算出する。更に、従来装置は、その燃焼重心角度と所定の基準値とが乖離している場合、燃料噴射時期を補正することによって、或いは、ＥＧＲ率を調整して燃焼室（気筒）内の酸素濃度を調節することによって、燃焼重心角度を前記所定の基準値と一致させている（例えば、特許文献１を参照。）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１１−２０２６２９号公報
【特許文献２】特開２００５−５４７５３号公報
【特許文献３】特開２００７−２８５１９４号公報
【発明の概要】
【０００７】
例えばディーゼル機関においては、１つのサイクルの燃焼に対して燃料を複数回噴射する多段噴射が行われる場合がある。より具体的に述べると、ディーゼル機関においては、主噴射（メイン噴射）に先立ちパイロット噴射が行なわれ、次いで、主噴射が行なわれる場合がある。更に、主噴射の後にアフター噴射が行われる場合がある。
【０００８】
パイロット噴射と主噴射とが行われる場合のクランク角度と熱発生率との関係は、例えば、図１の（Ａ）の曲線Ｃ１により示された波形により表される。熱発生率とは、単位クランク角度（クランクシャフトの回転位置の単位変化量）あたりに混合気の燃焼により発生する熱の量、即ち、単位クランク角度あたりの熱発生量である。この波形は、以下「燃焼波形」とも称呼される。図１の（Ａ）に示された波形は、クランク角度θ１にて開始されるパイロット噴射により極大値Ｌｐをとり、クランク角度θ２にて開始される主噴射により極大値Ｌｍをとっている。この場合において、前述した燃焼重心角度（発熱量比率が５０％となるクランク角度）がクランク角度θ３であるとする。
【０００９】
これに対し、図１の（Ｂ）に曲線Ｃ２により示したように、パイロット噴射の開始時期のみがクランク角度θ１からクランク角度θ０へとΔθｐだけ進角側に移動された場合、パイロット噴射の燃料の燃焼によって発熱が始まるクランク角度（発熱開始角度、燃焼開始クランク角度）はΔθｐだけ進角側に移動する。この場合においても、燃焼重心角度はクランク角度θ３のままであって変化しない。即ち、パイロット噴射時期が進角側に移動することによって燃焼波形が変化しても、燃焼重心角度が変化しない場合がある。換言すると、燃焼重心角度は必ずしも各サイクルの燃焼状態を正確に反映する指標値ではない。
【００１０】
実際に、本願発明者が「燃焼重心角度と燃費悪化率との関係」を種々の「機関の負荷及び機関回転速度」に対して測定したところ、発明者は、機関の負荷及び／又は機関回転速度が相違すると、燃費悪化率が最小となる燃焼重心角度（燃費が最良となる燃焼重心角度）も相違するとの知見を得た。換言すると、燃焼重心角度が一定の基準値に一致するように燃焼状態が制御されたとしても、機関の負荷及び／又は機関回転速度が相違すれば燃費悪化率が最小にならないことが判明した。
【００１１】
そこで、発明者は、燃焼状態を表す指標値として、従来の燃焼重心角度の代わりに「熱発生率重心位置」に着目した。この熱発生率重心位置は、以下に述べるように種々の手法により定義される。熱発生率重心位置は、クランクシャフト回転位置（即ち、クランク角度）で表される。
【００１２】
（定義１）熱発生率重心位置Ｇｃは、図１（Ａ）に示したように、「クランク角度を横軸に設定し、且つ、熱発生率（単位クランク角度あたりの熱の発生量）を縦軸に設定した座標系（グラフ）」に描かれる熱発生率の波形と、前記横軸と、により囲まれる領域の幾何学的重心Ｇに対応するクランク角度である。
【００１３】
（定義２）熱発生率重心位置Ｇｃは、下記の（１）式を満たすクランク角度Ｇｃである。この（１）式において、ＣＡｓは燃料の燃焼が始まるクランク角度（燃焼開始クランク角度）であり、ＣＡｅは前記燃焼が終わるクランク角度（燃焼終了クランク角度）である。更に、θは任意のクランク角度であり、ｄＱ（θ）はクランク角度θにおける熱発生率である。
【数１】
2016023618.tif 000003
【００１４】
（定義２’）上記（１）式を変形すると下記の（２）式が得られる。即ち、熱発生率重心位置Ｇｃは、下記の（２）式を満たすクランク角度Ｇｃである。
【数２】
2016023618.tif 000004
【００１５】
（定義３）定義２及び定義２’に基づけば、熱発生率重心位置Ｇｃは、下記（３）式に則った演算により求められるクランク角度Ｇｃであると定義される。
【数３】
2016023618.tif 000005
【００１６】
（定義３’）
定義３に基づけば、熱発生率重心位置Ｇｃは、任意のクランク角度と燃焼開始クランク角度との差（Ａ＝θ−ＣＡｓ）と、同任意のクランク角度における熱発生率（Ｂ＝ｄＱ（θ））と、の積（Ａ・Ｂ）のクランク角度についての積分値（上記（３）式の右辺第１項の分子）を、クランク角度に対する熱発生率の波形によって画定される領域の面積（上記（３）式の右辺第１項の分母）で割って得られる値に、前記燃焼開始クランク角度（ＣＡｓ）を加えることにより得られるクランク角度である、と定義される。
【００１７】
この熱発生率重心位置Ｇｃは、例えば、図１の（Ａ）に示した例においてはクランク角度θ３である。加えて、図１（Ｂ）に示したように、パイロット噴射の開始時期がクランク角度θ１からΔθｐだけ進角側へ移動されてクランク角度θ０に設定されると、重心位置Ｇｃはクランク角度Δθｇだけ進角側へと移動してクランク角度θ３’となる。これらから理解されるように、重心位置Ｇｃは、従来の燃焼状態の指標値である燃焼重心角度に比較して、燃焼状態をより正確に反映する指標値であると言える。
【００１８】
更に、種々の機関回転速度と機関の負荷（要求トルク）との組合せについて熱発生率重心位置Ｇｃと燃費悪化率との関係を測定したところ、機関回転速度及び機関の負荷が相違した場合であっても、燃費悪化率が最小となる重心位置Ｇｃは特定のクランク角度（例えば、圧縮上死点後７°）であった。更に、重心位置Ｇｃがこの特定のクランク角度の近傍の値にあれば、機関回転速度及び機関の負荷に拘わらず燃費悪化率は最小値近傍の略一定値となること判明した。
【００１９】
これらから、発明者は、熱発生率重心位置Ｇｃは燃焼状態を良好に示す指標値であり、従って、重心位置Ｇｃを負荷及び／又は機関回転速度に依らず一定に維持することにより機関の燃焼状態を特定の状態に維持できるとの知見を得た。更に、発明者は、重心位置Ｇｃを「燃費悪化率が最小となるような（即ち、冷却損失と排気損失との和が最小となって、燃費が最も良くなるような）一定のクランク角度」に維持すれば、機関の運転状態（負荷及び／又は機関回転速度）に依らず、機関の燃費を容易に改善することができるとの知見を得た。
【００２０】
一方、熱発生率重心位置Ｇｃを前記一定のクランク角度に維持した状態において機関の負荷が全負荷に近い領域に到達すると（即ち、燃料噴射量を非常に大きくすると）、燃焼中における筒内圧力の最大値が許容圧力を超える場合があることが判明した。
【００２１】
そこで、本発明による内燃機関の制御装置（以下、「本発明装置」とも称呼する。）は、図２に示したように、少なくとも前記機関の負荷が「第１閾値（Pem1）と、その第１閾値よりも大きい第２閾値（Pem2）と、の間の範囲（特定範囲）」内にある場合には、前記負荷に依らず一定のクランク角度（θａ）を目標重心位置に設定する。尚、第１閾値（Pem1）は、機関がとり得る負荷のうちの最小値であってもよく、その最小値よりも大きい値であってもよい。
【００２２】
更に、本発明装置は、前記負荷が前記第２閾値（Pem2）よりも大きい範囲にある場合には、前記負荷が大きくなるほど前記一定のクランク角度（θａ）よりも遅角側の範囲においてより遅角側となるクランク角度を目標重心位置に設定する。
【００２３】
ところで、本発明装置は、複数の気筒を備えた内燃機関に適用され、少なくとも各気筒の燃焼状態を気筒毎に個別に制御する燃焼パラメータを変更することにより各気筒の熱発生率重心位置を制御する。
【００２４】
前述したように、各気筒の熱発生率重心位置をそれぞれ目標重心位置に一致させつつ、機関を運転させれば、機関の燃焼状態を特定の状態（所望の状態）に維持することができる。ところが、通常、機関の負荷及び／又は機関回転速度は一定ではなく頻繁に変化する。このため、各機関サイクルにおける燃料噴射量及び／又は各気筒に吸入される空気の量も頻繁に変化する。
【００２５】
従って、各気筒の実際の熱発生率重心位置を各気筒毎に目標重心位置に一致させる制御を行ったとしても、各気筒の実際の熱発生率重心位置を目標重心位置に精度良く一致させ続けることは困難であり、その一方で、制御が非常に煩雑になる。
【００２６】
そこで、本発明の目的の１つは、実効性の高い「熱発生率重心位置を用いた機関の燃焼状態の制御」を実現することができる、内燃機関の制御装置を提供することにある。
【００２７】
この目的を達成するために、本発明装置は、前記気筒のうち少なくとも２つの気筒の筒内圧力をそれぞれ検出する筒内圧力検出部（例えば、筒内圧センサ）と、前記筒内圧力に基づいて前記２つの気筒の熱発生率重心位置をそれぞれ算出する重心位置算出部と、前記２つの気筒それぞれの熱発生率重心位置の総和を同気筒の数で割って得られる値を平均重心位置として算出する平均重心位置算出部と、を具備する。
【００２８】
更に、本発明装置は、前記平均重心位置が前記目標重心位置と一致するように、前記複数の気筒のそれぞれの前記燃焼パラメータを第１所定量ずつ変更する平均重心制御を行う制御部を具備する。即ち、制御部は、任意の気筒の前記燃焼状態を制御する燃焼パラメータを第１所定量変更するとともに、残りの気筒の前記燃焼状態を制御する燃焼パラメータを前記第１所定量変更する。このように、ある気筒に対する燃焼パラメータの補正量は、他の任意の気筒に対する燃焼パラメータの補正量と同じである。
【００２９】
このように平均重心位置が目標重心位置と一致するように各気筒の燃焼パラメータを制御すれば、機関全体の熱発生率重心位置を平均的に略目標重心位置と一致させることができる。このため、機関の負荷及び／又は機関回転速度が一定ではなく頻繁に変化する状況下においても、制御の煩雑化を招くことなく、機関の燃焼状態を安定して特定の状態に維持することができる。
【００３０】
更に、平均重心位置を前述したように設定される目標重心位置と一致させることにより、燃焼中の筒内圧力の最大値が許容圧力を超えないようにしながら、熱発生率重心位置を燃焼状態を示す指標値として考慮した燃焼制御を実現することができる。加えて、本発明装置は、前記一定の目標重心位置（Ｇｃtgt＝前記一定の値θａ）が前記燃費最良クランク角度又はその近傍のクランク角度に設定されている場合、燃費を改善することができる。
【００３１】
ところで、例えば、内燃機関が過給機を備えている場合がある。この場合において、機関の負荷及び／又は機関回転速度が急激に変化したときに、過給圧が急激に変化することがある。このとき、ある気筒に導入される空気の量が想定している量よりも少なくなることがあり得る。この場合、その気筒の圧縮上死点近傍での筒内温度が低くなり、その気筒内の燃料の着火時期及び／又は燃焼が遅くなる。その結果、その気筒の燃焼が緩慢になり、燃焼状態が前記特定の状態（所望の燃焼状態）から乖離する可能性がある（以下、燃焼が緩慢になった結果、所望の燃焼状態から乖離した燃焼状態を「失火状態」と称呼する。）。
【００３２】
更に、内燃機関が各気筒から排気通路に排出された排ガスを吸気通路に再循環させることにより各気筒に排ガスを導入する排ガス再循環システムを備えている場合もある。この場合において、機関の負荷及び／又は機関回転速度が急激に変化したときに、ある気筒に導入される排ガス（ＥＧＲガス）の量が想定しているＥＧＲガスの量よりも多くなることがあり得る。この場合、その気筒に吸入される空気の量が想定している量よりも少なくなる。その結果、前述した理由と同じ理由から、その気筒の燃焼状態が失火状態となる可能性がある。
【００３３】
そこで、本発明装置の前記制御部は、前記平均重心制御中に、前記熱発生率重心位置に基づき前記２つの気筒の前記燃焼状態の何れかが失火状態にあると判定された場合、失火状態にあると判定された気筒の熱発生率重心位置が前記目標重心位置と一致するように、その気筒の前記燃焼パラメータを第２所定量変更するとともに、残りの気筒の前記燃焼パラメータを前記第２所定量変更する最遅角気筒制御を行う。
【００３４】
これによれば、失火状態にあると判定された気筒（失火気筒）の熱発生率重心位置が進角する。こうした熱発生率重心位置の進角は、気筒内の燃料の燃焼の開始時期が進角したとき（燃焼期間が進角したとき）に生じる。従って、前記失火気筒の熱発生率重心位置が前記最遅角気筒制御により進角されることは、失火気筒内の燃料の燃焼の開始時期が進角したことを意味する。このように燃焼の開始時期が進角すれば、燃料が十分に燃焼しやすいので、失火状態が改善される。
【００３５】
一方、機関の負荷及び／又は機関回転速度が急激に変化し、過給圧が急激に変化したときに、ある気筒に導入される空気の量が想定している量よりも多くなることがあり得る。この場合、その気筒の圧縮上死点近傍での筒内温度が高くなり、その気筒内の燃料の着火時期及び／又は燃焼が早くなる。その結果、その気筒におけるＮＯｘ生成量が増大し、機関から排出されるＮＯｘの量が増大してしまう可能性がある。
【００３６】
更に、機関の負荷及び／又は機関回転速度が急激に変化したときに、ある気筒に導入される排ガス（ＥＧＲガス）の量が想定しているＥＧＲガスの量よりも少なくなることがあり得る。この場合、その気筒に吸入される空気の量が想定している量よりも多くなる。その結果、前述した理由と同じ理由から、その気筒におけるＮＯｘ生成量が増大し、機関から排出されるＮＯｘの量が増大してしまう可能性がある。
【００３７】
そこで、前記制御部は、前記平均重心制御中に、前記熱発生率重心位置に基づき前記２つの気筒の前記燃焼状態の何れも失火状態にないと判定され且つ前記２つの気筒の前記熱発生率重心位置のうち最も進角側にある熱発生率重心位置が前記目標重心位置及び前記平均重心位置の少なくとも一方よりも進角側に所定値よりも大きく乖離していると判定された場合、同乖離していると判定された気筒の熱発生率重心位置が前記目標重心位置と一致するように、その気筒の前記燃焼パラメータを第３所定量変更するとともに、残りの気筒の前記燃焼パラメータを前記第３所定量変更する最進角気筒制御を行う。
【００３８】
これによれば、熱発生率重心位置が目標重心位置及び／又は平均重心位置よりも進角側に所定値よりも大きく乖離していると判定された気筒（最進角気筒）の熱発生率重心位置が遅角する。こうした熱発生率重心位置の遅角は、気筒内の燃料の燃焼の開始時期が遅角したとき（燃焼期間が遅角したとき）に生じる。従って、前記最進角気筒の熱発生率重心位置が前記最進角気筒制御により遅角されることは、最進角気筒の燃料の燃焼の開始時期が遅角したことを意味する。このように燃焼の開始時期が遅角すれば、燃焼が緩慢になるので、最進角気筒における燃焼温度が低下する。このため、最進角気筒におけるＮＯｘ生成量を低減することができ、その結果、機関から排出されるＮＯｘ量も低減することができる。
【図面の簡単な説明】
【００３９】
【図１】図１は熱発生率重心位置を説明するためのグラフであり、（Ａ）は所定のタイミングにてパイロット噴射及び主噴射が行なわれた場合の燃焼波形を示し、（Ｂ）は（Ａ）に比べてパイロット噴射が進角された場合の燃焼波形を示す。
【図２】図２は機関の負荷と目標熱発生率重心位置との関係を表したグラフである。
【図３】図３は「本発明の実施形態に係る制御装置」及び「その制御装置が適用される内燃機関」の概略構成図である。
【図４】図４は平均重心位置を目標重心位置と一致させる制御（平均重心制御）を説明するための図であり、（Ａ）は同制御の実行前の各気筒の熱発生率重心位置を示しており、（Ｂ）は同制御の実行後の各気筒の熱発生率重心位置を示している。
【図５】図５は最も遅角側にある熱発生率重心位置を目標重心位置と一致させる制御（最遅角気筒制御）を説明するための図であり、（Ａ）は同制御の実行前の各気筒の熱発生率重心位置を示し、（Ｂ）は同制御の実行後の各気筒の熱発生率重心位置を示している。
【図６】図６は最も進角側にある熱発生率重心位置を目標重心位置と一致させる制御（最進角気筒制御）を説明するための図であり、（Ａ）は同制御の実行前の各気筒の熱発生率重心位置を示し、（Ｂ）は同制御の実行後の各気筒の熱発生率重心位置を示している。
【図７】図７は最も進角側にある熱発生率重心位置が目標重心位置よりも遅角側にある場合の制御（最進角気筒制御）を説明するための図であり、（Ａ）は同制御の実行前の各気筒の熱発生率重心位置を示し、（Ｂ）は同制御の実行後の各気筒の熱発生率重心位置を示している。
【図８】図８は図３に示した制御装置のＣＰＵが実行する燃焼状態制御ルーチンを示したフローチャートである。
【図９】図９は図３に示した制御装置のＣＰＵが実行する熱発生率重心位置フィードバック制御ルーチンを示したフローチャートである。
【図１０】図１０は図３に示した制御装置のＣＰＵが実行する失火フラグ処理ルーチンを示したフローチャートである。
【図１１】図１１は図３に示した制御装置のＣＰＵが実行する平均重心制御ルーチンを示したフローチャートである。
【図１２】図１２は図３に示した制御装置のＣＰＵが実行する最進角気筒制御ルーチンを示したフローチャートである。
【図１３】図１３は図３に示した制御装置のＣＰＵが実行する最遅角気筒制御ルーチンを示したフローチャートである。
【発明を実施するための形態】
【００４０】
以下、図面を参照しながら本発明の実施形態に係る内燃機関の制御装置（以下、「本制御装置」とも称呼する。）について説明する。
【００４１】
（構成）
本制御装置は、図３に示した内燃機関（機関）１０に適用される。機関１０は、多気筒（本例では直列４気筒）・４サイクル・ピストン往復動型・ディーゼル機関である。機関１０は、機関本体部２０、燃料供給システム３０、吸気システム４０、排気システム５０及びＥＧＲシステム６０を含んでいる。
【００４２】
機関本体部２０は、シリンダブロック、シリンダヘッド及びクランクケース等を含む本体２１を含む。本体２１には、４つの気筒（燃焼室）♯１乃至♯４が形成されている。各気筒の上部には燃料噴射弁（インジェクタ）２３が配設されている。燃料噴射弁２３は、後述するエンジンＥＣＵ（電子制御ユニット）７０の指示に応答して開弁し、気筒内に燃料を直接噴射するようになっている。
【００４３】
燃料供給システム３０は、燃料加圧ポンプ（サプライポンプ）３１と、燃料送出管３２と、コモンレール（蓄圧室）３３と、を含む。燃料加圧ポンプ３１の吐出口は燃料送出管３２に接続されている。燃料送出管３２はコモンレール３３に接続されている。コモンレール３３は燃料噴射弁２３に接続されている。
【００４４】
燃料加圧ポンプ３１は、図示しない燃料タンクに貯留されている燃料を汲み上げた後に加圧し、その加圧された高圧燃料を燃料送出管３２を通してコモンレール３３へ供給するようになっている。ポンプ３１は、機関１０のクランクシャフトに連動する駆動軸により作動する。ポンプ３１は、ＥＣＵ７０の指示に応答し、コモンレール３３内の燃料の圧力（即ち、燃料噴射圧、コモンレール圧）を調整できるようになっている。
【００４５】
吸気システム４０は、インテークマニホールド４１、吸気管４２、エアクリーナ４３、過給機４４のコンプレッサ４４ａ、インタークーラー４５、スロットル弁４６及びスロットル弁アクチュエータ４７を含んでいる。
【００４６】
インテークマニホールド４１は各気筒♯１乃至♯４に接続された枝部と、枝部が集合した集合部と、を含む。吸気管４２はインテークマニホールド４１の集合部に接続されている。インテークマニホールド４１及び吸気管４２は吸気通路を構成している。吸気管４２には、吸入空気の流れの上流から下流に向け、エアクリーナ４３、コンプレッサ４４ａ、インタークーラー４５及びスロットル弁４６が順に配設されている。スロットル弁アクチュエータ４７は、ＥＣＵ７０の指示に応じてスロットル弁４６の開度を変更するようになっている。
【００４７】
インタークーラー４５は、吸気温度を低下するようになっている。インタークーラー４５は、図示しないバイパス通路及びそのバイパス通路に介装されたバイパスバルブを備える。更に、インタークーラー４５は図示しない冷却機との間で通流する冷却水（冷媒）量を調整できるようになっている。従って、インタークーラー４５は、ＥＣＵ７０の指示に応答してバイパスバルブの開度及び／又は冷却水量を調整することにより、同クーラー４５の冷却効率（同クーラー４５の流入ガスの温度と同クーラー４５の流出ガスの温度との比により表される効率）を変更できるようになっている。
【００４８】
排気システム５０は、エキゾーストマニホールド５１、排気管５２、過給機４４のタービン４４ｂ、ＳＣＲ触媒５３及び尿素水添加装置５４を含んでいる。
【００４９】
エキゾーストマニホールド５１は各気筒♯１乃至♯４に接続された枝部と、枝部が集合した集合部と、を含む。排気管５２はエキゾーストマニホールド５１の集合部に接続されている。エキゾーストマニホールド５１及び排気管５２は排気通路を構成している。排気管５２には、排ガスの流れの上流から下流に向け、タービン４４ｂ及びＳＣＲ触媒５３が配設されている。
【００５０】
尿素水添加装置５４は、尿素水タンク５５、第１接続管５６、尿素水加圧装置５７、第２接続管５８及び尿素水噴射弁５９を含んでいる。第１接続管５６は、尿素水タンク５５と尿素水加圧装置５７とを接続している。第２接続管５８は、尿素水加圧装置５７と尿素水噴射弁５９とを接続している。尿素水噴射弁５９は、排気管５２のＳＣＲ触媒５３の上流位置に配設されている。尿素水噴射弁５９は、ＥＣＵ７０の指示に応答して尿素水タンク５５内の尿素水を排気管５２内に噴射する。これにより、尿素水がＳＣＲ触媒５３に供給される。ＳＣＲ触媒５３は、前記尿素水から生成されるアンモニアを還元剤として排ガス中のＮＯｘを還元浄化する。
【００５１】
過給機４４は周知の可変容量型過給機であり、そのタービン４４ｂには図示しない複数のノズルベーン（可変ノズル）が設けられている。このノズルベーンは、ＥＣＵ７０の指示に応じて開度が変更され、その結果、過給圧が変更（制御）されるようになっている。尚、過給機４４のタービン４４ｂは、図示しない「タービン４４ｂのバイパス通路、及び、そのバイパス通路に設けられたバイパスバルブ」を備えていてもよく、このバイパスバルブ開度がＥＣＵ７０の指示に応じて変更されることにより過給圧が変更されてもよい。即ち、本明細書において「過給機４４を制御する」とは、ノズルベーンの角度及び／又はバイパスバルブの開度を変更することによって過給圧を変更することを意味する。
【００５２】
ＥＧＲシステム６０は、排気還流管６１、ＥＧＲ制御弁６２及びＥＧＲクーラー６３を含んでいる。
排気還流管６１は、排気通路（エキゾーストマニホールド５１）であってタービン４４ｂよりも上流位置と、吸気通路（インテークマニホールド４１）であってスロットル弁４６の下流位置と、を連通している。排気還流管６１はＥＧＲガス通路を構成している。
ＥＧＲ制御弁６２は排気還流管６１に配設されている。ＥＧＲ制御弁６２は、ＥＣＵ７０からの指示に応答してＥＧＲガス通路の通路断面積を変更することにより、排気通路から吸気通路へと再循環される排ガス量（ＥＧＲガス量）を変更し得るようになっている。
【００５３】
ＥＧＲクーラー６３は排気還流管６１に介装され、排気還流管６１を通過するＥＧＲガスの温度を低下するようになっている。ＥＧＲクーラー６３は、図示しないバイパス通路及びそのバイパス通路に介装されたバイパスバルブを備える。更に、ＥＧＲクーラー６３は図示しない冷却機との間で通流する冷却水（冷媒）量を調整できるようになっている。従って、ＥＧＲクーラー６３は、ＥＣＵ７０の指示に応答してバイパスバルブ開度及び／又は冷却水量を調整することにより、同クーラー６３の冷却効率（同クーラー６３の流入ガスの温度と同クーラー６３の流出ガスの温度との比により表される効率）を変更できるようになっている。
【００５４】
ＥＣＵ７０は、周知のマイクロコンピュータを含む電子回路であり、ＣＰＵ、ＲＯＭ、ＲＡＭ、バックアップＲＡＭ及びインターフェース等を含む。ＥＣＵ７０は、以下に述べるセンサ類と接続されていて、これらのセンサからの信号を受信（入力）するようになっている。更に、ＥＣＵ７０は、各種アクチュエータに指示（駆動）信号を送出するようになっている。
【００５５】
ＥＣＵ７０は、エアフローメータ７１、スロットル弁開度センサ７２、吸気管圧力センサ７３、燃料圧力センサ７４、筒内圧センサ７５、クランク角度センサ７６、ＥＧＲ制御弁開度センサ７７、及び、水温センサ７８と接続されている。
【００５６】
エアフローメータ７１は吸気通路内を通過する吸入空気（ＥＧＲガスを含まない新気）の質量流量（吸入空気量）を測定し、その吸入空気量Ｇａを表す信号を出力する。更に、エアフローメータ７１は吸入空気の温度（吸気温）を検出し、その吸気温ＴＨＡを表す信号を出力する。
スロットル弁開度センサ７２はスロットル弁開度を検出し、スロットル弁開度ＴＡを表す信号を出力する。
吸気管圧力センサ７３は、吸気通路内であってスロットル弁４６よりも下流の吸気管内のガスの圧力（吸気管圧力）Ｐｉｍを表す信号を出力する。吸気管圧力Ｐｉｍは過給圧であると言うこともできる。
【００５７】
燃料圧力センサ７４は、コモンレール（蓄圧室）３３内の燃料の圧力（燃料圧力、燃料噴射圧、コモンレール圧）を検出し、燃料噴射圧Ｆｐを表す信号を出力する。
【００５８】
筒内圧センサ７５は、各気筒（燃焼室）♯１乃至♯４に対応して一つずつ配設されている。筒内圧センサ７５は、各気筒♯１乃至♯４内の圧力（即ち、筒内圧力）を検出し、筒内圧力Ｐｃを表す信号を出力する。ＥＣＵ７０は、各気筒の筒内圧センサ７５が検出する筒内圧力Ｐｃに基づいてクランク角度θ［ｄｅｇＡＴＤＣ］に対する単位クランク角度あたりの発熱量である熱発生率ｄＱ（θ）を求め（例えば、特許文献２及び特許文献３等を参照。）、上記（３）式を用いて各気筒の熱発生率重心位置を取得する。
【００５９】
クランク角度センサ７６は、機関１０の図示しないクランクシャフトの回転位置（即ち、クランク角度）に応じた信号を出力する。ＥＣＵ７０は、このクランク角度センサ７６及び図示しないカムポジションセンサからの信号に基づいて、所定の気筒の圧縮上死点を基準とした機関１０のクランク角度（絶対クランク角度）θを取得する。更に、ＥＣＵ７０は、クランク角度センサ７６からの信号に基づいて、機関回転速度Ｎｅを取得する。
【００６０】
ＥＧＲ制御弁開度センサ７７は、ＥＧＲ制御弁６２の開度を検出し、その開度を表す信号Ｖegrを出力する。
水温センサ７８は、機関１０の冷却水の温度（冷却水温度）を検出し、冷却水温ＴＨＷを表す信号を出力する。
【００６１】
加えて、ＥＣＵ７０は、アクセル開度センサ８１及び車速センサ８２と接続されている。
アクセル開度センサ８１は、図示しないアクセルペダルの開度（アクセルペダル操作量）を検出し、アクセルペダル開度Ａｃｃｐを表す信号を出力する。
車速センサ８２は、機関１０が搭載された車両の走行速度を検出し、その走行速度（車速）Ｓｐｄを表す信号を出力する。
【００６２】
（燃焼制御の概要）
次に、本制御装置の作動の概要について説明する。本制御装置は、前述したように取得される「各気筒♯１乃至♯４の熱発生率重心位置Ｇｃ１乃至Ｇｃ４」の平均値（＝（Ｇｃ１＋Ｇｃ２＋Ｇｃ３＋Ｇｃ４）／４）が目標熱発生率重心位置Ｇｃtgtとなるように各気筒の燃焼制御を行う。目標熱発生率重心位置は、目標重心位置、目標熱発生率重心角度又は目標クランク角度とも称呼される。
【００６３】
より具体的に述べると、本制御装置においては、各気筒♯１乃至♯４の熱発生率重心位置Ｇｃ１乃至Ｇｃ４それぞれが目標重心位置Ｇｃtgtと一致するように、各気筒の燃焼状態を制御する燃焼パラメータが機関１０の運転状態（機関１０の負荷及び機関回転速度等、並びに、目標重心位置Ｇｃtgt）に対して予め定められ且つＲＯＭに記憶されている。本制御装置は、実際の機関の運転状態に応じてＲＯＭから燃焼パラメータを読み出し、その燃焼パラメータを使用して各気筒♯１乃至♯４の燃焼状態を制御することによって各気筒の熱発生率重心位置Ｇｃ１乃至Ｇｃ４を目標重心位置Ｇｃtgtにフィードフォワード制御する。
【００６４】
更に、本制御装置は、各気筒♯１乃至♯４の実際の熱発生率重心位置Ｇｃ１乃至Ｇｃ４それぞれを筒内圧センサ７５が検出する筒内圧力Ｐｃに基づいて算出する。本制御装置は、これらの算出した重心位置Ｇｃ１乃至Ｇｃ４の平均値（以下、「平均重心位置」と称呼する。）Ｇｃaveが目標重心位置Ｇｃtgtと一致するように、各気筒の燃焼パラメータをフィードバック制御する。
【００６５】
以下、燃焼パラメータとして「各気筒の燃焼状態を気筒毎に個別に制御可能な主噴射の燃料噴射時期ＣＭinj」を採用した場合を例に、各気筒の燃焼パラメータのフィードバック制御についてより具体的に説明する。
【００６６】
本制御装置は、図４の（Ａ）に示したように、前記平均重心位置Ｇｃaveが目標重心位置Ｇｃtgtよりも進角側にあるときには、図４の（Ｂ）に示したように、第１気筒♯１（任意の気筒）の重心位置Ｇｃ１が遅角するように、同気筒♯１の主噴射の燃料噴射時期ＣＭinj１を所定量（第１所定量）遅角させる。更に、本制御装置は、残りの気筒♯２乃至♯４の主噴射の燃料噴射時期ＣＭinj２乃至ＣＭinj４も前記所定量（第１所定量）遅角させる。
【００６７】
逆に、本制御装置は、平均重心位置Ｇｃaveが目標重心位置Ｇｃtgtよりも遅角側にあるときには、第１気筒♯１の重心位置Ｇｃ１が進角するように、第１気筒♯１（任意の気筒）の主噴射の燃料噴射時期ＣＭinj１を所定量（第１所定量）進角させる。更に、本制御装置は、残りの気筒♯２乃至♯４の主噴射の燃料噴射時期ＣＭinj２乃至ＣＭinj４も前記所定量（第１所定量）進角させる。
【００６８】
以上の主噴射の燃料噴射時期ＣＭinjの制御により、平均重心位置Ｇｃaveが目標重心位置Ｇｃtgtと一致せしめられる。以下、この平均重心位置Ｇｃaveを目標重心位置Ｇｃtgtと一致させる制御を「平均重心制御」と称呼する。
【００６９】
ところで、機関の負荷及び／又は機関回転速度が急激に変化したときに、過給圧が急激に変化することがある。このとき、ある気筒に導入される空気の量が想定している量よりも少なくなることがあり得る。更には、ある気筒に導入される排ガス（ＥＧＲガス）の量が想定しているＥＧＲガスの量よりも多くなることもあり得る。この場合、前述したように、その気筒内の燃料の着火時期及び／又は燃焼が遅くなる。その結果、その気筒の燃焼が緩慢になり、燃焼状態が前記特定の状態（所望の燃焼状態）から乖離する可能性がある。
【００７０】
このため、図５（Ａ）に示したように、平均重心制御中、平均重心位置Ｇｃaveが目標重心位置Ｇｃtgtと一致していたとしても、何れかの気筒の重心位置（本例において、第１気筒♯１の重心位置Ｇｃ１）が目標重心位置Ｇｃtgtから遅角側に大きく乖離することがある。
【００７１】
この場合、第１気筒♯１の燃焼状態が前記特定の状態（所望の燃焼状態）から乖離する可能性がある。ここでは、この乖離した燃焼状態を「失火状態」と称呼する。但し、この失火状態は、完全な失火が発生している状態ではなく、燃焼が生じているもののその発生時期が過度に遅いために、燃焼が機関トルクに効率良く変換されないような状態を意味する。
【００７２】
そこで、本制御装置は、平均重心制御中、何れかの気筒の燃焼状態が失火状態にあるか否かを判定する。何れの気筒の燃焼状態も失火状態にない場合、本制御装置は平均重心制御を継続する。
【００７３】
これに対し、何れかの気筒の燃焼状態が失火状態にある場合、本制御装置は、その気筒の失火状態を改善するための失火改善処理を行う。本例においては、本制御装置は、失火改善処理として、「各気筒におけるパイロット噴射量の一律増量」及び／又は「ＥＧＲガス量の減量」を行う。
【００７４】
各気筒におけるパイロット噴射量の一律増量が行われると、各気筒♯１乃至♯４の重心位置Ｇｃ１乃至Ｇｃ４が進角する。更に、ＥＧＲガス量の減量が行われても、各気筒の重心位置が進角する。こうした重心位置の進角は、気筒内の燃料の燃焼開始時期が進角したとき（燃焼期間が進角したとき）に生じる。従って、失火状態にある気筒（失火気筒）の重心位置が前記失火改善処理により進角されることは、失火気筒の燃焼開始時期が進角したことを意味する。このように燃焼開始時期が進角すれば、燃焼が燃焼しやすくなるので、失火状態が改善される。
【００７５】
更に、前記失火改善処理が行われても、失火状態が改善されない場合、本制御装置は、失火気筒（図５（Ａ）に示した例において、重心位置が最も遅角側にある第１気筒♯１であり、以下、「最遅角気筒」とも称呼する。）の重心位置Ｇｃ１が目標重心位置Ｇｃtgtと一致するように、最遅角気筒♯１の主噴射の燃料噴射時期ＣＭinj１を所定量（第２所定量）進角する（フィードバック制御する）。
【００７６】
その結果、最遅角気筒♯１の重心位置Ｇｃ１は、図５（Ｂ）に示したように、目標重心位置Ｇｃtgtまで進角する。これにより、最遅角気筒（失火気筒）♯１における燃焼開始時期が進角し、燃料が十分に燃焼しやすくなる。このため、最遅角気筒（失火気筒）♯１の失火状態が改善される。
【００７７】
加えて、本制御装置は、他の気筒♯２乃至♯４の主噴射の燃料噴射時期ＣＭinj２乃至ＣＭinj４も前記所定量（第２所定量）進角する。その結果、他の気筒♯２乃至♯４の重心位置Ｇｃ２乃至Ｇｃ４も進角する。
【００７８】
この最遅角気筒（失火気筒）の重心位置が目標重心位置Ｇｃtgtと一致するように、各気筒♯１乃至♯４の主噴射の燃料噴射時期ＣＭinj１乃至ＣＭinj４を変更する制御を「最遅角気筒制御」と称呼する。
【００７９】
一方、機関の負荷及び／又は機関回転速度が急激に変化し、過給圧が急激に変化したときに、ある気筒の吸入空気量が想定している量よりも多くなることがあり得る。更には、ある気筒に導入される排ガス（ＥＧＲガス）の量が想定しているＥＧＲガスの量よりも少なくなることもあり得る。この場合、前述したように、その気筒内の燃料の着火時期及び／又は燃焼が早くなる。
【００８０】
このため、図６（Ａ）に示したように、平均重心制御中、平均重心位置Ｇｃaveが目標重心位置Ｇｃtgtに一致していたとしても、何れかの気筒の重心位置（本例においては、第１気筒♯１の重心位置Ｇｃ１）が平均重心位置Ｇｃaveから進角側に大きく乖離し、しかも、同重心位置Ｇｃ１が目標重心位置Ｇｃtgtからも進角側に大きく乖離することがある。
【００８１】
この場合、第1気筒♯１における燃焼温度が過剰に高くなり、その気筒♯１におけるＮＯｘ生成量が増大する。その結果、機関から排出されるＮＯｘの量が極めて多くなる可能性がある。これによると、ＳＣＲ触媒５３に供給すべき尿素水量が増大してしまう。
【００８２】
そこで、本制御装置は、平均重心制御中、何れの気筒の燃焼状態も失火状態にないときに、最も進角側にある重心位置（本例においては、第１気筒♯１の重心位置Ｇｃ１）が「平均重心位置Ｇｃave及び目標重心位置Ｇｃtgt」から値ΔＧｃth１よりも大きく乖離している場合、その大きく乖離している気筒（本例において、第１気筒♯１であり、以下、「最進角気筒」と称呼する。）の重心位置Ｇｃ１が目標重心位置Ｇｃtgtと一致するように、最進角気筒♯１の主噴射の燃料噴射時期ＣＭinj１を所定量（第３所定量）遅角する。
【００８３】
その結果、最進角気筒♯１の重心位置Ｇｃ１が目標重心位置Ｇｃtgtまで遅角する。これにより、最進角気筒♯１における燃焼開始時期が遅角する。このため、最進角気筒♯１における燃焼が緩慢となり、その結果、同気筒♯１内の燃焼温度が低下する。従って、最進角気筒♯１におけるＮＯｘ生成量を減少させることができる。
【００８４】
加えて、本制御装置は、他の気筒♯２乃至♯４の主噴射の燃料噴射時期ＣＭinj２乃至ＣＭinj４も前記所定量（第３所定量）遅角する。その結果、他の気筒の重心位置Ｇｃ２乃至Ｇｃ４も遅角する。このため、これら気筒♯２乃至♯４におけるＮＯｘ生成量も減少するので、機関１０における総ＮＯｘ生成量を更に減少させることができる。
【００８５】
この最進角気筒の重心位置が目標重心位置Ｇｃtgtと一致するように、各気筒♯１乃至♯４の主噴射の燃料噴射時期ＣＭinj１乃至ＣＭinj４を変更する制御を「最進角気筒制御」と称呼する。
【００８６】
尚、図６（Ｂ）から理解されるように、前述した最進角気筒制御によると、平均重心位置Ｇｃaveが目標重心位置Ｇｃtgtよりも遅角側となる。このため、機関１０の燃料消費量は最小とはならない。しかしながら、前述したように、機関１０における総ＮＯｘ生成量を大幅に減少させることができるので、尿素消費量を大幅に減少させることができる。従って、燃料コストと尿素水コストとを合わせたトータルランニングコスト（燃料消費量と尿素消費量とから定まる「単位距離を機関１０を搭載した車両が走行したときのコスト」）は低減される。
【００８７】
ところで、本制御装置は、図７（Ａ）に示したように、最も進角側にある重心位置（本例において、第１気筒♯１の重心位置Ｇｃ１）が目標重心位置Ｇｃtgtよりも遅角側にある場合であっても、同重心位置Ｇｃ１が「平均重心位置Ｇｃave及び目標重心位置Ｇｃtgt」から前記値ΔＧｃth１よりも大きく乖離しているときには、その重心位置Ｇｃ１が目標重心位置Ｇｃtgtと一致するように、最進角気筒♯１の主噴射の燃料噴射時期ＣＭinj１を所定量（第３所定量）進角する。
【００８８】
その結果、最進角気筒♯１の重心位置Ｇｃ１が目標重心位置Ｇｃtgtまで進角する。
【００８９】
加えて、本制御装置は、他の気筒♯２乃至♯４の主噴射の燃料噴射時期ＣＭinj２乃至ＣＭinj４も前記所定量（第３所定量）進角する。その結果、他の気筒の重心位置Ｇｃ２乃至Ｇｃ４も進角する。
【００９０】
これにより、各気筒♯１乃至♯４におけるＮＯｘ生成量は若干増大するので、ＳＣＲ触媒５３における尿素水消費量も若干増大する。しかしながら、平均重心位置Ｇｃaveが目標重心位置Ｇｃtgtに近づくので、燃料消費量は比較的大きく減少する。このため、前述のトータルランニングコストは低減される。
【００９１】
ところで、本制御装置は、図２に示したように、少なくとも機関の負荷が「第１閾値Pem1から第２閾値Pem2までの範囲」内にあるときには、機関の負荷及び機関回転速度に依らず、目標重心位置Ｇｃtgtを一定クランク角度θａ（例えば、ＡＴＤＣ７°）に設定する。これによれば、機関１０の燃費を良好にすることができる。尚、このときの目標重心位置Ｇｃtgtは、前述のトータルランニングコストが最小となる一定のクランク角度θａ’（θａから所定範囲内のクランク角度）であって、機関の負荷及び機関回転速度に依らず燃費悪化率（燃料消費量）が最小値近傍の一定となるクランク角度であってもよい。
【００９２】
一方、本制御装置は、機関の負荷が第２閾値Pem2よりも大きい範囲にあるときには、負荷が増大するにつれ（燃料噴射量が増大するにつれ）、目標重心位置Ｇｃtgtを「前記一定クランク角度θａよりも遅角側の範囲」において次第に遅角側となるクランク角度に設定する。これによれば、筒内圧力の最大値が機関１０の許容圧力を超えることが回避される。更に、機関の負荷が第２閾値Pem2よりも大きい範囲において、燃費は多少悪化するものの燃料噴射量を増大することができるので、機関１０の発生トルク（従って、出力）を増大することができる。
【００９３】
尚、熱発生率重心位置が遅角側に移行するほど排気損失が増大するので、排気温度が上昇する。そして、機関１０が許容できる排気温度（許容排気温度）に到達した時点で、本制御装置は燃料噴射量の増大を停止する。
【００９４】
更に、本制御装置は、機関の負荷が第１閾値Pem1以下であるときも、一定クランク角度θａを目標重心位置Ｇｃtgtに設定する。但し、本制御装置は、機関の負荷が第１閾値Pem1以下であるとき、他の要求に基づいて、前記一定クランク角度θａ以外のクランク角度を目標重心位置Ｇｃtgtに設定する場合もある。更に、前述したように、本制御装置は、機関の負荷が「第１閾値Ｐem1から第２閾値Pem2までの範囲」内にあるとき、「一定クランク角度θａから所定範囲内のクランク角度（一定値）θａ’」を目標重心位置に設定してもよい。
【００９５】
（実際の作動）
次に、ＥＣＵ７０のＣＰＵ（以下、単に「ＣＰＵ」と表記する。）が実行する燃焼状態を制御するための処理について図８を参照しながら説明する。尚、以下の説明において、記号MapＸ（P1,P2…）は、引数（パラメータ）をP1,P2…として値Ｘを得るルックアップテーブル（又は関数）を表す。加えて、説明を簡単にするため、以下においてＣＰＵは、主噴射時期（主噴射の燃料噴射時期）、過給圧及び燃料噴射圧を上述した燃焼パラメータとして採用し、且つ、パイロット噴射及びアフター噴射は行わない。
【００９６】
ＣＰＵは、任意の気筒のクランク角度が７２０°経過する毎に図８にフローチャートにより示した「燃焼状態制御ルーチン」を実行するようになっている。従って、適当なタイミングになると、ＣＰＵは図８のステップ８００から処理を開始し、以下に述べるステップ８０５乃至ステップ８１５の処理を順に行い、ステップ８２０に進む。
【００９７】
ステップ８０５：ＣＰＵは、アクセルペダル開度Ａｃｃｐ及び機関回転速度Ｎｅを取得する。
ステップ８１０：ＣＰＵは、アクセルペダル開度Ａｃｃｐ及び機関回転速度Ｎｅに基づいて、要求噴射量（指令噴射量）Ｑfinを決定する（Ｑfin＝MapＱfin(Ａｃｃｐ，Ｎｅ）。要求噴射量Ｑfinは要求トルクと言うこともできる。
ステップ８１５：ＣＰＵは、別途算出されている最大噴射量Ｑmaxを取得する。最大噴射量Ｑmaxは、「排ガスに含まれるスモーク等の有害物質が所定の閾値を超えない範囲において噴射可能な最大の噴射量」と「機関１０のトルクが機関１０が搭載された車両の駆動トルク伝達機構の許容限界トルクを超えないために噴射可能な最大の噴射量」とのうちの小さいほうの噴射量である。
【００９８】
次に、ＣＰＵはステップ８２０に進み、要求噴射量Ｑfinが最大噴射量Ｑmax以下であるか否かを判定する。要求噴射量Ｑfinが最大噴射量Ｑmax以下であれば、ＣＰＵはステップ８２０にて「Ｙｅｓ」と判定してステップ８２５に進み、最終燃料噴射量Ｑactを要求噴射量Ｑfinと等しい値に設定する。一方、要求噴射量Ｑfinが最大噴射量Ｑmaxよりも大きければ、ＣＰＵはステップ８２０にて「Ｎｏ」と判定してステップ８３０に進み、最終燃料噴射量Ｑactを最大噴射量Ｑmaxと等しい値に設定する。尚、エミッション及び／又は許容限界トルクの制約がない場合、ステップ８１５乃至ステップ８３０は省略されても良い。この場合、最終燃料噴射量Ｑactは常に要求噴射量Ｑfinと等しくなる。
【００９９】
ＣＰＵは、ステップ８２５又はステップ８３０の処理を行った後、以下に述べるステップ８３５乃至ステップ８４５の処理を順に行い、ステップ８５０に進む。
【０１００】
ステップ８３５：ＣＰＵは、最終燃料噴射量Ｑact及び機関回転速度Ｎｅと、ルックアップテーブルMapＦｐ（Ｑact,Ｎｅ）と、に基づいて燃料噴射圧Ｆｐを決定する。このとき、燃料噴射圧Ｆｐは、ブロックＢ１に示したように、要求出力Ｐｒに実質的に比例した値に設定される。但し、前述したように、機関の負荷（この場合、要求噴射量Ｑfin）が所定値以上となって、筒内圧力の最大値が許容圧力を超えるような領域において、燃料噴射圧Ｆｐは最終燃料噴射量Ｑactが大きくなるほど小さくなる値に設定される。ＣＰＵは、図示しない駆動ルーチンにより、実際の燃料噴射圧がこのステップ８３５にて決定された燃料噴射圧Ｆｐと等しくなるように、燃料加圧ポンプ３１等を制御する。
【０１０１】
ステップ８４０：ＣＰＵは、最終燃料噴射量Ｑact及び機関回転速度Ｎｅと、ルックアップテーブルMapＴｐ（Ｑact,Ｎｅ）と、に基づいて過給圧Ｔｐを決定する。このとき、過給圧Ｔｐは、ブロックＢ２に示したように、要求出力Ｐｒに実質的に比例した値に設定される。但し、前述したように、機関の負荷（この場合、要求噴射量Ｑfin）が所定値以上となって、筒内圧力の最大値が許容圧力を超えるような領域において、過給圧Ｔｐは最終燃料噴射量Ｑactが大きくなるほど小さくなる値に設定される。ＣＰＵは、図示しない駆動ルーチンにより、実際の過給圧がこのステップ８４０にて決定された過給圧Ｔｐと等しくなるように、過給機４４を制御する。
【０１０２】
ステップ８４５：ＣＰＵは、最終燃料噴射量Ｑact（機関の負荷）と、図２に示したルックアップテーブルと同等のルックアップテーブルMapＧｃtgt（Ｑact）と、に基づいて目標重心位置Ｇｃtgtを決定する。
【０１０３】
次に、ＣＰＵはステップ８５０に進み、前記決定された目標重心位置Ｇｃtgtが本ルーチンの開始前の目標重心位置Ｇｃtgtとは異なるか否か（目標重心位置Ｇｃtgtが変更されたか否か）を判定する。前記決定された目標重心位置Ｇｃtgtが本ルーチンの開始前の目標重心位置Ｇｃtgtとは異なる場合、ＣＰＵはそのステップ８５０にて「Ｙｅｓ」と判定してステップ８５５に進み、最終燃料噴射量Ｑact、機関回転速度Ｎｅ及び目標重心位置Ｇｃtgtと、ルックアップテーブルMapＣＭinj（Ｑact, Ｎｅ, Ｇｃtgt）と、に基づいて、主噴射の燃料噴射時期ＣＭinjを決定する。このルックアップテーブルMapＣＭinj（Ｑact, Ｎｅ Ｇｃtgt）は、熱発生率重心位置が図２に示した目標重心位置Ｇｃtgtに一致するように、予め実験により定められ、ＲＯＭに記憶されている。
【０１０４】
尚、ＣＰＵは、任意の気筒のクランク角度がこのステップ８５５及び後述するステップ８６５の処理にて決定された燃料噴射時期ＣＭinjに一致するとき、その気筒の燃料噴射弁２３から燃料噴射量Ｑactの燃料を噴射させる。従って、ステップ８５５の処理は、各気筒♯１乃至♯４の主噴射の燃料噴射時期ＣＭinjのフィードフォワード制御を行うための処理である。
【０１０５】
次に、ＣＰＵはステップ８６０に進み、フィードバック制御フラグＦfbに「０」を入力し、その後、ＣＰＵはステップ８６５に進む。フィードバック制御フラグＦfbは、各気筒の熱発生率重心位置がフィードバック制御されたことを示すフラグである。より具体的に述べると、このフラグＦfbには、前述したように熱発生率重心位置がフィードフォワード制御されたときに「０」が入力され、後述するように熱発生率重心位置がフィードバック制御されたときに「１」が入力される。
【０１０６】
一方、ＣＰＵがステップ８５０の処理を実行する時点において、前記決定された目標重心位置Ｇｃtgtが本ルーチンの開始前の目標重心位置Ｇｃtgtと同じ場合、ＣＰＵはそのステップ８５０にて「Ｎｏ」と判定してステップ８６５に進む。
【０１０７】
ＣＰＵがステップ８６５に進むと、図９にフローチャートに示した「熱発生率重心位置フィードバック制御ルーチン」を実行し、その後、ＣＰＵはステップ８９５に進み、本ルーチンを一旦終了する。
【０１０８】
即ち、主燃料の燃料噴射時期ＣＭinjは、機関１０の個体差及び経年変化等によって熱発生率重心位置Ｇｃが目標重心位置Ｇｃtgtから大きく乖離することがないように、図９に示されたフィードバック制御によって調整される。
【０１０９】
前述したように、ＣＰＵは図８のステップ８６５に進むと、図９にフローチャートにより示した「熱発生率重心位置フィードバック制御ルーチン」を実行する。従って、ＣＰＵは図９のステップ９００から処理を開始し、以下に述べるステップ９０５乃至ステップ９３５の処理を順に行い、ステップ９４０に進む。尚、クランク角度θは、各気筒の圧縮上死点後のクランク角度（ＡＴＤＣ  ｄｅｇ）によって表される。従って、圧縮上死点よりも進角側のクランク角度θは負の値となる。
【０１１０】
ところで、ＣＰＵは、単位クランク角度が経過する毎に各気筒の筒内圧力Ｐｃを取得し、その筒内圧力Ｐｃを「その筒内圧力Ｐｃが取得された気筒」及び「その気筒のクランク角度」に対応付けてＲＡＭ内に記憶するようになっている。
【０１１１】
更に、ＣＰＵは、図示しない熱発生率重心位置算出ルーチンにより、各気筒♯１乃至♯４の熱発生率重心位置Ｇｃ(n)（ｎ＝１〜４の整数）を算出する。具体的に述べると、ある気筒のクランク角度がその気筒の吸気上死点に一致すると、ＣＰＵは、その気筒（着目気筒）の直近の１サイクルにおける筒内圧力Ｐｃに基づいてクランク角度θ［ｄｅｇＡＴＤＣ］に対する単位クランク角度あたりの発熱量である熱発生率ｄＱ（θ）［Ｊ／ｄｅｇＡＴＤＣ］を周知の手法に基づいて算出する（例えば、特許文献２及び特許文献３等を参照。）。
【０１１２】
更に、ＣＰＵは、算出した熱発生率ｄＱ（θ）を下記の（４）式に適用することにより、着目気筒の熱発生率重心位置Ｇｃを取得・推定する。実際には、熱発生率重心位置Ｇｃは、（４）式をデジタル演算式に変換した式に基づいて計算される。（４）式において、ＣＡｓは着目気筒において燃焼が開始するクランク角度（燃焼開始クランク角度）であり、ＣＡｅは同燃焼が終了するクランク角度（燃焼終了クランク角度）である。尚、（４）式のＣＡｓに代えて燃焼開始クランク角度よりも十分に早いクランク角度が（４）式による計算に採用され、且つ、ＣＡｅに代えて燃焼終了クランク角度よりも十分に遅いクランク角度が（４）式による計算に採用され得る。
【数４】
2016023618.tif 000006
【０１１３】
加えて、ＣＰＵは、取得・推定した着目気筒の熱発生率重心位置Ｇｃをその気筒に対応付けてＲＡＭ内に記憶するようになっている。
【０１１４】
ステップ９０５：ＣＰＵは、ＲＡＭ内に記憶されている各気筒♯１乃至♯４のそれぞれ最新の熱発生率重心位置Ｇｃ(n)を取得する。
ステップ９１０：ＣＰＵは、前記取得した各気筒の熱発生率重心位置Ｇｃ(n)に基づいて平均重心位置Ｇｃaveを算出する。
ステップ９１５：ＣＰＵは、前記取得した熱発生率重心位置Ｇｃ(n)それぞれと前記算出した平均重心位置Ｇｃaveとの偏差（平均重心偏差）ΔＧｃave(n)（＝|Ｇｃ(n)−Ｇｃave|）を算出する。
ステップ９２０：ＣＰＵは、前記算出した平均重心偏差ΔＧｃave(n)のうち、最大の平均重心偏差ΔＧｃave-mを取得する。
【０１１５】
ステップ９２５：ＣＰＵは、前記取得した熱発生率重心位置Ｇｃ(n)それぞれと前記決定した目標重心位置Ｇｃtgtとの偏差（目標重心偏差）ΔＧｃtgt(n)（＝|Ｇｃ(n)−Ｇｃtgt|）を算出する。
ステップ９３０：ＣＰＵは、前記算出した目標重心偏差ΔＧｃtgt(n)のうち、最大の目標重心偏差ΔＧｃtgt-mを取得する。
【０１１６】
ステップ９３５：ＣＰＵは、図１０にフローチャートにより示した失火フラグ処理ルーチンを実行する。図１０の失火フラグ処理ルーチンにより、何れかの気筒の燃焼状態が失火状態にある場合、失火フラグＦafに「１」が入力される。一方、何れの気筒の燃焼状態も失火状態にない場合、失火フラグＦafに「０」が入力される。図１０の失火フラグ処理ルーチンについては、後に説明する。
【０１１７】
ＣＰＵは、図９のステップ９３５の処理後、ステップ９４０に進むと、失火フラグＦafの値が「０」であるか否かを判定する。失火フラグＦafの値が「０」である場合、ＣＰＵはそのステップ９４０にて「Ｙｅｓ」と判定してステップ９４５に進み、前述した失火改善処理が実行されている場合、その失火改善処理を終了する。
【０１１８】
次に、ＣＰＵはステップ９５０に進み、失火改善処理フラグＦrに「０」を入力する。このフラグＦrは、失火改善処理の実行中であることを示すフラグである。より具体的に述べると、このフラグＦrには、ステップ９７５において失火改善処理が開始されたときに「１」が入力される。
【０１１９】
次に、ＣＰＵはステップ９５５に進み、前記取得した「最大平均重心偏差ΔＧｃave-m及び最大目標重心偏差ΔＧｃtgt-m」の双方が何れも第１偏差ΔＧｃth１よりも大きいか否かを判定する。これら「偏差ΔＧｃave-m及びΔＧｃtgt-m」が第１偏差ΔＧｃth１よりも大きい場合、ＣＰＵはそのステップ９５５にて「Ｙｅｓ」と判定してステップ９６５に進み、図１２にフローチャートにより示した最進角気筒制御ルーチンを実行する。この図１２の最進角気筒制御ルーチンについては、後に説明する。
【０１２０】
これに対し、ＣＰＵがステップ９５５の処理を実行する時点において、前記偏差ΔＧｃave-m及びΔＧｃtgt-mの少なくとも一方が第１偏差ΔＧｃth１以下である場合、ＣＰＵはそのステップ９５５にて「Ｎｏ」と判定してステップ９６０に進み、図１１にフローチャートに示した平均重心制御ルーチンを実行する。この図１１の平均重心制御ルーチンについては、後に説明する。
【０１２１】
一方、ＣＰＵがステップ９４０の処理を実行する時点において、失火フラグＦafの値が「１」である場合、ＣＰＵはそのステップ９４０にて「Ｎｏ」と判定してステップ９７０に進み、失火改善処理フラグＦrの値が「０」であるか否かを判定する。フラグＦrの値が「０」である場合、ＣＰＵはそのステップ９７０にて「Ｙｅｓ」と判定してステップ９７５に進み、前述した失火改善処理を開始する。次に、ＣＰＵはステップ９８０に進み、失火改善処理フラグＦrに「１」を入力し、その後、ＣＰＵはステップ９９５に進み、本ルーチンを一旦終了する。
【０１２２】
これに対し、ＣＰＵがステップ９７０の処理を実行する時点において、失火フラグＦafの値が「１」である場合、ＣＰＵはそのステップ９７０にて「Ｎｏ」と判定してステップ９８５に進み、図１３にフローチャートにより示した最遅角気筒制御ルーチンを実行する。この図１３の最遅角気筒制御ルーチンについては、後に説明する。
【０１２３】
ＣＰＵは、ステップ９６０、ステップ９６５及びステップ９８５の何れかのステップの処理後、ステップ９９０に進み、フィードバック制御フラグＦfbに「１」を入力し、その後、ＣＰＵはステップ９９５に進み、本ルーチンを一旦終了する。以上により、フィードバック制御が実行される。
【０１２４】
＜＜失火フラグ処理＞＞
ところで、前述したように、ＣＰＵは図９のステップ９３５に進むと、図１０にフローチャートにより示した「失火フラグ処理ルーチン」を実行する。従って、ＣＰＵは図１０のステップ１０００から処理を開始してステップ１００５に進み、フィードバック制御フラグＦfbの値が「１」であるか否かを判定する。このフラグＦfbの値が「０」である場合、ＣＰＵはそのステップ１００５にて「Ｎｏ」と判定してステップ１０４０に進み、失火フラグＦafに「０」を入力する。その後、ＣＰＵは、ステップ１０９５に進み、本ルーチンを終了し、図９のステップ９４０に進む。
【０１２５】
これに対し、ＣＰＵがステップ１００５の処理を実行する時点において、フラグＦfbの値が「１」である場合、ＣＰＵはそのステップ１００５にて「Ｙｅｓ」と判定してステップ１０１０に進み、理論重心位置Ｇｃsyを算出する。この理論重心位置Ｇｃsyは、失火状態が生じていない場合の熱発生率重心位置として計算により推定される重心位置であり、簡易的に下記の（５）式に基づいて算出される。
【数５】
2016023618.tif 000007
【０１２６】
この（５）式において、「ＣＡinjs」は、主噴射が始まるクランク角度（主噴射開始時期）であり、「ＣＡinje」は、主噴射が終了するクランク角度（主噴射終了時期）である。更に、「θ」は、任意のクランク角度であり、「ｄＱinj（θ）」は、クランク角度θにおける燃料噴射量であり、「α」は、実験により予め求められている定数である。
【０１２７】
次に、ＣＰＵはステップ１０１５に進み、図９のステップ９０５にて取得した各気筒の熱発生率重心位置Ｇｃ(n)それぞれと前記算出した理論重心位置Ｇｃsyとの偏差（理論重心偏差）ΔＧｃsy(n)（＝Ｇｃ(n)−Ｇｃsy）（ｎ＝１〜４の整数）を算出する。
【０１２８】
次に、ＣＰＵはステップ１０２０に進み、前記算出した理論重心偏差ΔＧｃsy(n)それぞれが第２偏差ΔＧｃth２よりも大きいか否かを判定する。何れかの理論重心偏差ΔＧｃsy(n)が所定偏差ΔＧｃth２よりも大きい場合、ＣＰＵはそのステップ１０２０にて「Ｙｅｓ」と判定してステップ１０４５に進み、失火フラグＦafに「１」を入力する。同時に、ＣＰＵは、所定偏差ΔＧｃth２よりも大きいと判定された理論重心偏差ΔＧｃsy(n)に対応する気筒（ｎ）をＲＡＭに失火気筒として記憶しておく。その後、ＣＰＵはステップ１０９５に進み、本ルーチンを終了し、図９のステップ９４０に進む。
【０１２９】
これに対し、ＣＰＵがステップ１０２０の処理を実行する時点において、何れの理論重心偏差ΔＧｃsy(n)も第２偏差ΔＧｃth２以下である場合、ＣＰＵはそのステップ１０２０にて「Ｎｏ」と判定してステップ１０２５に進み、各気筒♯１乃至♯４における熱発生量Ｈp(n)を算出する。この熱発生量Ｈp(n)は、下記の（６）式に基づいて算出される。
【数６】
2016023618.tif 000008
【０１３０】
次に、ＣＰＵはステップ１０３０に進み、各気筒♯１乃至♯４における理論熱発生量Ｈpsyを算出する。この理論熱発生量Ｈpsyは、失火状態が生じていない場合において、各気筒の１機関サイクル中に燃焼により発生する熱量として計算により推定される熱発生量である。この理論熱発生量Ｈpsyは、「１機関サイクル中に燃料噴射弁２３から噴射された燃料の総量Ｑinj」及び「１機関サイクル中に各気筒に吸入された空気の量（吸入空気量）Ｇａ」を用いて算出可能である（Ｈpsy＝Ｆ（Ｑinj, Ｇａ））。
【０１３１】
次に、ＣＰＵはステップ１０３５に進み、前記算出した理論熱発生量Ｈpsyに対する前記算出した各気筒の熱発生量Ｈp(n)それぞれの比（熱発生量比）Ｈp(n)／Ｈpsyが所定比Ｒthよりも小さいか否かを判定する。何れかの熱発生量比Ｈp(n)／Ｈpsyが所定比Ｒthよりも小さい場合、ＣＰＵはそのステップ１０３５にて「Ｙｅｓ」と判定してステップ１０４５に進み、失火フラグＦafに「１」を入力する。その後、ＣＰＵはステップ１０９５に進み、本ルーチンを終了し、図９のステップ９４０に進む。
【０１３２】
これに対し、ＣＰＵがステップ１０３５の処理を実行する時点において、何れの熱発生量比Ｈp(n)／Ｈpsyも所定比Ｒth以上である場合、ＣＰＵはそのステップ１０３５にて「Ｎｏ」と判定してステップ１０４０に進み、失火フラグＦafに「０」を入力する。その後、ＣＰＵはステップ１０９５に進み、本ルーチンを終了し、図９のステップ９４０に進む。以上が、失火フラグ処理である。
【０１３３】
＜＜平均重心制御＞＞
更に、前述したように、ＣＰＵは、図９のステップ９６０に進むと、図１１にフローチャートにより示した「平均重心制御」を実行する。従って、ＣＰＵは図１１のステップ１１００から処理を開始してステップ１１０５に進み、平均重心位置Ｇｃaveが目標重心位置Ｇｃtgtに対して正の微小角度Δθｓ以上遅角側であるか否かを判定する。平均重心位置Ｇｃaveが目標重心位置Ｇｃtgtに対して正の微小角度Δθｓ以上遅角側である場合、ＣＰＵはそのステップ１１０５にて「Ｙｅｓ」と判定してステップ１１１０に進み、各気筒♯１乃至♯４の主噴射の燃料噴射時期ＣＭinj１乃至ＣＭinj４を補正するための補正量ＦＢを所定の微少量ΔＦＢだけ小さくする。
【０１３４】
次に、ＣＰＵはステップ１１２５に進み、ステップ１１１０にて微少量ΔＦＢだけ小さくされた補正量ＦＢを「本ルーチンの開始時における各気筒の主噴射の燃料噴射時期ＣＭinj１乃至ＣＭinj４」に加算する。
【０１３５】
これにより、総ての気筒♯１乃至♯４の主噴射の燃料噴射時期ＣＭinj１乃至ＣＭinj４が進角されるので、各気筒♯１乃至♯４の重心位置Ｇｃ１乃至Ｇｃ４が僅かに進角側に移動する。その結果、平均重心位置Ｇｃaveが僅かに進角側に移動するので、目標重心位置Ｇｃtgtに近づく。
【０１３６】
その後、ＣＰＵは、ステップ１１９５に進み、本ルーチンを一旦終了し、図９のステップ９９０に進む。
【０１３７】
これに対し、ＣＰＵがステップ１１０５の処理を実行する時点において、平均重心位置Ｇｃaveが目標重心位置Ｇｃtgtに対して正の微小角度Δθｓ以上遅角側でない場合、ＣＰＵはそのステップ１１０５にて「Ｎｏ」と判定してステップ１１１５に進み、平均重心位置Ｇｃaveが目標重心位置Ｇｃtgtに対して正の微小角度Δθｓ以上進角側であるか否かを判定する。
【０１３８】
平均重心位置Ｇｃaveが目標重心位置Ｇｃtgtに対して正の微小角度Δθｓ以上進角側である場合、ＣＰＵはそのステップ１１１５にて「Ｙｅｓ」と判定してステップ１１２０に進み、前記補正量ＦＢを所定の微少量ΔＦＢだけ大きくする。
【０１３９】
次に、ＣＰＵはステップ１１２５に進み、ステップ１１２０にて微少量ΔＦＢだけ大きくされた補正量ＦＢを「本ルーチンの開始時における各気筒の主噴射の燃料噴射時期ＣＭinj１乃至ＣＭinj４」に加算する。
【０１４０】
これにより、総ての気筒♯１乃至♯４の主噴射の燃料噴射時期ＣＭinj１乃至ＣＭinj４が遅角されるので、各気筒♯１乃至♯４の重心位置Ｇｃ１乃至Ｇｃ４が僅かに遅角側に移動する。その結果、平均重心位置Ｇｃaveが僅かに遅角側に移動するので、目標重心位置Ｇｃtgtに近づく。
【０１４１】
その後、ＣＰＵは、ステップ１１９５に進み、本ルーチンを一旦終了し、図９のステップ９９０に進む。
【０１４２】
更に、ＣＰＵがステップ１１１５の処理を実行する時点において、平均重心位置Ｇｃaveが目標重心位置Ｇｃtgtに対して正の微小角度Δθｓ以上進角側でなければ、平均重心位置Ｇｃaveと目標重心位置Ｇｃtgtとの差の大きさは微小角度Δθｓ未満である。この場合、ＣＰＵはそのステップ１１１５にて「Ｎｏ」と判定してステップ１１２５に直接進み、その後、ステップ１１９５に進む。そして、ＣＰＵは本ルーチンを一旦終了して、図９のステップ９９０に進む。この場合、各気筒の主噴射の燃料噴射時期ＣＭinj１乃至ＣＭinj４の補正量ＦＢは変更されない。
【０１４３】
＜＜最進角気筒制御＞＞
更に、前述したように、ＣＰＵはステップ９６５に進むと、図１２にフローチャートにより示した「最進角気筒制御ルーチン」を実行する。従って、ＣＰＵは図１２のステップ１２００から処理を開始してステップ１２０５に進み、熱発生率重心位置Ｇｃ(n)の中から最も進角側にある重心位置（最進角重心位置）Ｇｃadv-mを取得する。次に、ＣＰＵはステップ１２１０に進み、前記取得した最進角重心位置Ｇｃadv-mが目標重心位置Ｇｃtgtに対して正の微小角度Δθｓ以上遅角側であるか否かを判定する。
【０１４４】
最進角重心位置Ｇｃadv-mが目標重心位置Ｇｃtgtに対して正の微小角度Δθｓ以上遅角側である場合、ＣＰＵはそのステップ１２１０にて「Ｙｅｓ」と判定してステップ１２１５に進み、前記補正量ＦＢを所定の微少量ΔＦＢだけ小さくする。
【０１４５】
次に、ＣＰＵはステップ１２３０に進み、ステップ１２１５にて微少量ΔＦＢだけ小さくされた補正量ＦＢを「本ルーチンの開始時における各気筒の主噴射の燃料噴射時期ＣＭinj(n)」に加算する。
【０１４６】
これにより、最進角気筒の主噴射の燃料噴射時期ＣＭinjが僅かに進角されるので、その気筒の重心位置も僅かに進角側に移動する。その結果、最進角気筒の重心位置が目標重心位置Ｇｃtgtに近づく。他の気筒の重心位置も僅かに進角側に移動する。
【０１４７】
その後、ＣＰＵは、ステップ１２９５に進み、本ルーチンを一旦終了し、図９のステップ９９０に進む。
【０１４８】
これに対し、ＣＰＵがステップ１２１０の処理を実行する時点において、最進角重心位置Ｇｃadv-mが目標重心位置Ｇｃtgtに対して正の微小角度Δθｓ以上遅角側でない場合、ＣＰＵはそのステップ１２１０にて「Ｎｏ」と判定してステップ１２２０に進み、最進角重心位置Ｇｃadv-mが目標重心位置Ｇｃtgtに対して正の微小角度Δθｓ以上進角側であるか否かを判定する。
【０１４９】
最進角重心位置Ｇｃadv-mが目標重心位置Ｇｃtgtに対して正の微小角度Δθｓ以上進角側である場合、ＣＰＵはそのステップ１２２０にて「Ｙｅｓ」と判定してステップ１２２５に進み、前記補正量ＦＢを所定の微少量ΔＦＢだけ大きくする。
【０１５０】
次に、ＣＰＵはステップ１２３０に進み、ステップ１２２５にて微少量ΔＦＢだけ大きくされた補正量ＦＢを「本ルーチンの開始時における各気筒の主噴射の燃料噴射時期ＣＭinj(n)」に加算する。
【０１５１】
これにより、最進角気筒の主噴射の燃料噴射時期ＣＭinjが僅かに遅角されるので、その気筒の重心位置も僅かに遅角側に移動する。その結果、最進角気筒の重心位置が目標重心位置Ｇｃtgtに近づく。他の気筒の重心位置も僅かに遅角側に移動する。
【０１５２】
その後、ＣＰＵは、ステップ１２９５に進み、本ルーチンを一旦終了し、図９のステップ９９０に進む。
【０１５３】
更に、ＣＰＵがステップ１２２０の処理を実行する時点において、最進角重心位置Ｇｃadv-mが目標重心位置Ｇｃtgtに対して正の微小角度Δθｓ以上進角側でなければ、最進角重心位置Ｇｃadv-mと目標重心位置Ｇｃtgtとの差の大きさは微小角度Δθｓ未満である。この場合、ＣＰＵはそのステップ１２２０にて「Ｎｏ」と判定してステップ１２３０に直接進み、その後、ステップ１２９５に進む。そして、ＣＰＵは本ルーチンを一旦終了して、図９のステップ９９０に進む。この場合、各気筒の主噴射の燃料噴射時期ＣＭinj１乃至ＣＭinj４の補正量ＦＢは変更されない。
【０１５４】
＜＜最遅角気筒制御＞＞
一方、前述したように、ＣＰＵは、ステップ９８５に進むと、図１３にフローチャートにより示した「最遅角気筒制御ルーチン」を実行する。従って、ＣＰＵは図１３のステップ１３００から処理を開始してステップ１３０５に進み、熱発生率重心位置Ｇｃ(n)の中から最も遅角側にある重心位置（最遅角重心位置）Ｇｃrtd-mを取得する。なお、ＣＰＵは、失火フラグ処理にて失火状態にあると判定された気筒の重心位置を、便宜上、最遅角重心位置Ｇｃrtd-mとして取得してもよい。失火状態が発生している気筒の重心位置が、一般には、熱発生率重心位置Ｇｃ(n)の中から最も遅角側にある重心位置だからである。次に、ＣＰＵはステップ１３１０に進み、前記取得された最遅角重心位置Ｇｃrtd-mが目標重心位置Ｇｃtgtに対して正の微小角度Δθｓ以上遅角側であるか否かを判定する。
【０１５５】
最遅角重心位置Ｇｃrtd-mが目標重心位置Ｇｃtgtに対して正の微小角度Δθｓ以上遅角側である場合、ＣＰＵはそのステップ１３１０にて「Ｙｅｓ」と判定してステップ１３１５に進み、前記補正量ＦＢを所定の微少量ΔＦＢだけ小さくする。
【０１５６】
次に、ＣＰＵはステップ１３３０に進み、ステップ１３１５にて微少量ΔＦＢだけ小さくされた補正量ＦＢを「本ルーチンの開始時における各気筒の主噴射の燃料噴射時期ＣＭinj(n)」に加算する。
【０１５７】
これにより、最遅角気筒の主噴射の燃料噴射時期ＣＭinjが僅かに進角されるので、その気筒の重心位置も僅かに進角側に移動する。その結果、最遅角気筒の重心位置が目標重心位置Ｇｃtgtに近づく。他の気筒の重心位置も僅かに進角側に移動する。
【０１５８】
その後、ＣＰＵは、ステップ１３９５に進み、本ルーチンを一旦終了し、図９のステップ９９０に進む。
【０１５９】
これに対し、ＣＰＵがステップ１３１０の処理を実行する時点において、最遅角重心位置Ｇｃrtd-mが目標重心位置Ｇｃtgtに対して正の微小角度Δθｓ以上遅角側でない場合、ＣＰＵはそのステップ１３１０にて「Ｎｏ」と判定してステップ１３２０に進み、最遅角重心位置Ｇｃrtd-mが目標重心位置Ｇｃtgtに対して正の微小角度Δθｓ以上進角側であるか否かを判定する。
【０１６０】
最遅角重心位置Ｇｃrtd-mが目標重心位置Ｇｃtgtに対して正の微小角度Δθｓ以上進角側である場合、ＣＰＵはそのステップ１３２０にて「Ｙｅｓ」と判定してステップ１３２５に進み、前記補正量ＦＢを所定の微少量ΔＦＢだけ大きくする。
【０１６１】
次に、ＣＰＵはステップ１３３０に進み、ステップ１３２５にて微少量ΔＦＢだけ大きくされた補正量ＦＢを「本ルーチンの開始時における各気筒の主噴射の燃料噴射時期ＣＭinj(n)」に加算する。
【０１６２】
これにより、最遅角気筒の主噴射の燃料噴射時期ＣＭinjが僅かに遅角されるので、その気筒の重心位置も僅かに遅角側に移動する。その結果、最遅角気筒の重心位置が目標重心位置Ｇｃtgtに近づく。他の気筒の重心位置も僅かに遅角側に移動する。
【０１６３】
その後、ＣＰＵは、ステップ１３９５に進み、本ルーチンを一旦終了し、図９のステップ９９０に進む。
【０１６４】
更に、ＣＰＵがステップ１３２０の処理を実行する時点において、最遅角重心位置Ｇｃrtd-mが目標重心位置Ｇｃtgtに対して正の微小角度Δθｓ以上進角側でなければ、最遅角重心位置Ｇｃrtd-mと目標重心位置Ｇｃtgtとの差の大きさは微小角度Δθｓ未満である。この場合、ＣＰＵはそのステップ１３２０にて「Ｎｏ」と判定してステップ１３３０に直接進み、その後、ステップ１３９５に進む。そして、ＣＰＵは本ルーチンを一旦終了して、図９のステップ９９０に進む。この場合、各気筒の主噴射の燃料噴射時期ＣＭinj１乃至ＣＭinj４の補正量ＦＢは変更されない。
【０１６５】
以上説明したように、本実施形態に係る制御装置は、複数の気筒♯１乃至♯４を備えた内燃機関１０に適用され、少なくとも各気筒♯１乃至♯４の燃焼状態を気筒毎に個別に制御する燃焼パラメータＣＭinjを変更することにより各気筒の熱発生率重心位置Ｇｃ(n)を制御する。
【０１６６】
本制御装置は、少なくとも機関１０の負荷が第１閾値Pem1から第２閾値Pem2までの範囲（特定負荷範囲）内にある場合には、機関の負荷に依らず一定のクランク角度（θａ又はθａ’）を目標重心位置に設定し、且つ、機関の負荷が第２閾値Pem2よりも大きい範囲にある場合には、機関の負荷が大きくなるほど前記一定のクランク角度よりも遅角側の範囲において「より遅角側となるクランク角度」を目標重心位置に設定する（図２及び図８のステップ８４５を参照。）。
【０１６７】
更に、本制御装置は、気筒のうち少なくとも２つの気筒の筒内圧力をそれぞれ検出する筒内圧力検出部（筒内圧センサ７５及びＥＣＵ７０のＣＰＵ）と、筒内圧力に基づいて前記２つの気筒の熱発生率重心位置Ｇｃ(n)をそれぞれ算出する重心位置算出部（図９のステップ９０５を参照。）と、前記算出された前記２つの気筒それぞれの熱発生率重心位置Ｇｃ(n)の総和を同気筒の数で割って得られる値を平均重心位置Ｇｃaveとして算出する平均重心位置算出部（図９のステップ９１５を参照。）と、を具備する。
【０１６８】
本制御装置は、前記算出された平均重心位置Ｇｃaveが目標重心位置Ｇｃtgtと一致するように、前記複数の気筒のそれぞれの前記燃焼パラメータを第１所定量（所定の微少量ΔＦＢ）ずつ変更する平均重心制御を行う（図９のステップ９４０にて「Ｙｅｓ」及びステップ９５５にて「Ｎｏ」と判定された場合、並びに、ステップ９６０及び図１１を参照。）。即ち、本制御装置は、任意の気筒の燃焼パラメータＣＭinjを第１所定量変更するとともに、残りの気筒の燃焼パラメータＣＭinjを前記第１所定量変更する平均重心制御を行う。
【０１６９】
一方、本制御装置は、前記平均重心制御中に、前記熱発生率重心位置Ｇｃ(n)に基づき前記気筒の燃焼状態の何れかが失火状態にあると判定された場合（図１０のステップ１０２０及びステップ１０３５にて「Ｙｅｓ」と判定された場合を参照。）、失火状態にあると判定された気筒（最遅角気筒）の熱発生率重心位置（最遅角重心位置）Ｇｃrtd-mが目標重心位置Ｇｃtgtと一致するように、その気筒の燃焼パラメータＣＭinjを第２所定量（所定の微少量ΔＦＢ）変更するとともに、残りの気筒の燃焼パラメータＣＭinjを前記第２所定量変更する最遅角気筒制御を行う（図９のステップ９４０にて「Ｎｏ」及びステップ９７０にて「Ｎｏ」と判定された場合、並びに、ステップ９８５及び図１３を参照。）。
【０１７０】
更に、前記制御装置は、前記平均重心制御中に、前記算出された熱発生率重心位置Ｇｃ(n)に基づき前記気筒の燃焼状態の何れも失火状態にないと判定され、且つ、前記熱発生率重心位置Ｇｃ(n)のうち最も進角側にある熱発生率重心位置（最進角重心位置）Ｇｃadv-mが「前記目標重心位置Ｇｃtgt及び平均重心位置Ｇｃave」よりも進角側に所定値（第１偏差ΔＧｃth１）よりも大きく乖離していると判定された場合（図９のステップ９４０にて「Ｙｅｓ」及びステップ９５５にて「Ｙｅｓ」と判定された場合を参照。）、同乖離していると判定された気筒（最進角気筒）の熱発生率重心位置（最進角重心位置）Ｇｃadv-mが目標重心位置Ｇｃtgtと一致するように、その気筒の前記燃焼パラメータＣＭinjを第３所定量（所定の微少量ΔＦＢ）変更するとともに、残りの気筒の前記燃焼パラメータＣＭinjを前記第３所定量変更する最進角気筒制御を行う（図９のステップ９６５及び図１２を参照。）。
【０１７１】
前記平均重心制御により、機関の燃焼状態を安定して特定の状態に維持することができる。更に、前記最遅角気筒制御により、失火状態を改善することができる。加えて、前記最進角気筒制御により、機関１０から排出されるＮＯｘ量を低減することができる。
【０１７２】
更に、本制御装置は、各気筒♯１乃至♯４の熱発生率重心位置を適切なクランク角度（一定クランク角度θａ又はクランク角度θａにできるだけ近いクランク角度θａ’）に制御しながら、高負荷運転状態において筒内圧力の最大値が許容圧力を超えないようにすることができる。この結果、機関の燃費を改善するとともに、高負荷時において機関が発生するトルクが要求トルクよりも低下することを回避することができる。換言すると、本制御装置は、機関が発生し得る最大トルクを低下させないようにすることができる。
【０１７３】
本発明は上記実施形態に限定されることはなく、本発明の範囲内において種々の変形例を採用することができる。
【０１７４】
上記実施形態は、前記平均重心制御、最進角気筒制御及び最遅角気筒制御により制御される燃焼パラメータとして、各気筒の燃焼状態を気筒毎に個別に制御可能な燃焼パラメータを用いる。上記実施形態は、この燃焼パラメータとして、以下に述べる値の１つ以上を採用することもできる。
【０１７５】
（１）主噴射（メイン噴射）の燃料噴射時期
（２）主噴射よりも進角側にて行われる燃料噴射であるパイロット噴射の燃料噴射量
（３）パイロット噴射の回数
（４）パイロット噴射の燃料噴射時期
（５）各パイロット噴射の燃料噴射量
（６）主噴射よりも遅角側にて行われる燃料噴射であるアフター噴射の噴射量
（７）各気筒内のスワール流の強度（例えば、スワールコントロールバルブの開度）
【０１７６】
尚、熱発生率重心位置Ｇｃを進角させる場合には、制御装置は、以下の動作を行えばよい。熱発生率重心位置Ｇｃを遅角させる場合には、以下の動作と反対方向側に各燃焼パラメータを変化させればよい。
（１ａ）制御装置は、主噴射の燃料噴射時期を進角側に移動させる。
（２ａ）制御装置は、パイロット噴射の燃料噴射量を増加させる。
（３ａ）制御装置は、パイロット噴射のみに関して決まる「パイロット噴射の熱発生率重心角度」が進角側へ移動するようにパイロット噴射の回数を変更する。
（４ａ）制御装置は、パイロット噴射の熱発生率重心角度が進角側へ移動するようにパイロット噴射の燃料噴射時期を変更する。
（５ａ）制御装置は、パイロット噴射の熱発生率重心角度が進角側へ移動するように各パイロット噴射の燃料噴射量を変更する。
（６ａ）制御装置は、アフター噴射の噴射量を減少する、若しくは、アフター噴射を行わない。
（７ａ）制御装置は、各気筒のスワール流の強度を増大させる。
【０１７７】
更に、上記実施形態は、各気筒の燃焼状態を一律に制御する燃焼パラメータとして以下の述べる値の１つ以上を採用することもできる。
（８）燃料噴射弁が燃料を噴射するときの圧力である燃料噴射圧
（９）過給機４４による過給圧
（１０）インタークーラー４５の冷却効率（冷却能力）
（１１）吸入空気に対するＥＧＲガスの比率であるＥＧＲ率（又は、ＥＧＲガスの量）
（１２）ＥＧＲクーラー６３の冷却効率（冷却能力）
【０１７８】
これら値を採用する場合において、熱発生率重心位置Ｇｃを進角させる場合には、制御装置は、以下の動作を行えばよい。熱発生率重心位置Ｇｃを遅角させる場合には、以下の動作と反対方向側に各燃焼パラメータを変化させればよい。
（８ａ）制御装置は、燃料噴射圧を増加させる。
（９ａ）制御装置は、過給圧を増加させる。
（１０ａ）制御装置は、インタークーラー４５のバイパスバルブ開度を増大するか、或いは、冷却水量を減少させることにより、インタークーラー４５の冷却効率を低下させる。
（１１ａ）制御装置は、ＥＧＲ制御弁６２の開度を減少させる（ＥＧＲガス通路の通路断面積を減少させる）ことにより、ＥＧＲ率を低下させる（ＥＧＲ量を減少させる。）。
（１２ａ）制御装置は、ＥＧＲクーラー６３のバイパスバルブ開度を増大するか、或いは、冷却水量を減少させることにより、ＥＧＲクーラー６３の冷却効率を低下させる。
【０１７９】
更に、上記実施形態において、機関１０の負荷が第１閾値Pem1から第２閾値Pem2までの範囲内にある場合における制御目標としての熱発生率重心位置（即ち、上記一定クランク角度θａ）はＡＴＤＣ７°であったが、この値は機関毎に異なる。
【０１８０】
尚、上述した実施形態に係る制御装置は、最遅角気筒制御の前に失火改善処理を行うが、失火改善処理を行わずに最遅角気筒制御を行ってもよい。
【０１８１】
更に、上述した実施形態において、最進角重心位置Ｇｃadv-mが平均重心位置Ｇｃave及び目標重心位置Ｇｃtgtから「進角側」に乖離している場合にのみ、前記最進角気筒制御を行うように制御装置を構成してもよい。同様に、最遅角重心位置Ｇｃrtd-mが平均重心位置Ｇｃave及び目標重心位置Ｇｃtgtから「遅角側」に乖離している場合にのみ、前記最遅角気筒制御を行うように制御装置を構成してもよい。
【０１８２】
更に、前記第１偏差ΔＧｃth１は、最大の平均重心偏差ΔＧｃave-m及び最大の目標重心偏差ΔＧｃtgt-mに共通して用いられる閾値であるが、これら偏差ΔＧｃave-m及びΔＧｃtgt-mに対して、それぞれ、異なる閾値を用意してもよい。
【０１８３】
加えて、「最大の平均重心偏差ΔＧｃave-mが第１偏差ΔＧｃth１よりも大きいとき」及び「最大の目標重心偏差ΔＧｃtgt-mが第１偏差ΔＧｃth１よりも大きいとき」の少なくとも一方のときに、前記最進角気筒制御を行うようにしてもよい。
【０１８４】
更に、前記第１乃至第３所定量は互いに同じ値であってもよいし、互いに異なる値であってもよい。
【符号の説明】
【０１８５】
１０…内燃機関、２３…燃料噴射弁、７０…ＥＣＵ、７５…筒内圧センサ、７６…クランク角度センサ、♯１…第１気筒、♯２…第２気筒、♯３…第３気筒、♯４…第４気筒
【図１】
2016023618.tif 000009
【図２】
2016023618.tif 000010
【図３】
2016023618.tif 000011
【図４】
2016023618.tif 000012
【図５】
2016023618.tif 000013
【図６】
2016023618.tif 000014
【図７】
2016023618.tif 000015
【図８】
2016023618.tif 000016
【図９】
2016023618.tif 000017
【図１０】
2016023618.tif 000018
【図１１】
2016023618.tif 000019
【図１２】
2016023618.tif 000020
【図１３】
2016023618.tif 000021