(57)【特許請求の範囲】
【請求項１】
エンジン運転状態に応じて燃料噴射量を補正し、リーンバーンに適合する燃料噴射量を設定するリーンバーンエンジンの燃料噴射制御装置において、
燃焼圧力変動率に基づきリーン限界か否かを判別するリーン限界判別手段と、
上記リーン限界の判別結果に応じてリーン限界補正値を設定するリーン限界補正値設定手段と、
エンジン運転状態に基づいて設定した基本減量値に上記リーン限界補正値を乗算して目標リーン減量係数を設定する目標リーン減量係数設定手段と、
エンジン運転状態に応じて設定される各種補正項を加算した加算項に対し上記目標リーン減量係数を減算項として与え、空気過剰率の逆数で表される目標当量比を算出する目標当量比算出手段と、
エンジン運転状態に基づいて設定した燃料噴射量を上記目標当量比により補正してエンジンへ供給する最終的な燃料噴射量を設定する燃料噴射量設定手段とを備えたことを特徴とするリーンバーンエンジンの燃料噴射制御装置。
【請求項２】
エンジン運転状態に応じて燃料噴射量を補正し、リーンバーンに適合する燃料噴射量を設定するリーンバーンエンジンの燃料噴射制御装置において、
燃焼圧力変動率に基づきリーン限界か否かを判別するリーン限界判別手段と、
上記リーン限界の判別結果に応じてリーン限界補正値を修正設定するリーン限界補正値設定手段と、
エンジン運転状態に基づいて設定した基本減量値に上記リーン限界補正値を乗算して目標リーン減量係数を設定する目標リーン減量係数設定手段と、
エンジン運転状態に応じて設定される各種補正項を加算した加算項に対し上記目標リーン減量係数を減算項として与え、空気過剰率の逆数で表される目標当量比を算出する目標当量比算出手段と、
空燃比センサの出力値に基づき排気当量比を検出する排気当量比検出手段と、
上記目標当量比と排気当量比との比較結果に応じて空燃比フィードバック補正係数を設定する空燃比フィードバック補正係数設定手段と、
エンジン運転状態に基づいて設定した燃料噴射量を上記目標当量比及び上記空燃比フィードバック補正係数により補正してエンジンへ供給する最終的な燃料噴射量を設定する燃料噴射量設定手段とを備えたことを特徴とするリーンバーンエンジンの燃料噴射制御装置。
【請求項３】
上記リーン限界補正値設定手段は、リーン限界と判別されたとき、上記リーン限界補正値を減少修正し、非リーン限界のとき、リーン限界補正値を増加修正することを特徴とする請求項１或いは請求項２記載のリーンバーンエンジンの燃料噴射制御装置。
【請求項４】
上記リーン限界判別手段および上記リーン限界補正値設定手段は、エンジン運転領域がリーンバーン領域外の時、過渡運転状態時、及び、自動変速機搭載車の場合には変速制御中の時、手動変速機搭載車の場合には変速操作中の時の少なくとも一つの条件が成立するとき、リーン限界の判別を中止し、リーン限界補正値の修正を中止することを特徴とする請求項１ないし請求項３の何れか一に記載のリーンバーンエンジンの燃料噴射制御装置。
【請求項５】
上記リーン限界判別手段は、最大燃焼圧力を得る所定クランク角毎に燃焼行程気筒の燃焼圧力をサンプリングし、この燃焼圧力を平均処理して燃焼圧力平均値を算出すると共に該燃焼圧力平均値に対する燃焼圧力分散値を算出し、この燃焼圧力平均値及び燃焼圧力分散値に基づき算出した燃焼圧力変動率がリーン限界を判定するための判定値を上回るとき、リーン限界と判別することを特徴とする請求項１ないし請求項４の何れか一に記載のリーンバーンエンジンの燃料噴射制御装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、エンジン運転状態に応じ空気過剰率の逆数で表される目標当量比を設定し、該目標当量比により燃料噴射量を補正してリーンバーンに適合する燃料噴射量を設定するリーンバーンエンジンの燃料噴射制御装置に関し、詳しくは、リーン限界に応じ上記目標当量比を補正して空燃比制御性を向上するリーンバーンエンジンの燃料噴射制御装置に関する。
【０００２】
【従来の技術】
従来から、低，中負荷領域においてリーン空燃比での運転を実施し、ポンピングロスの低減や理論熱効率の向上により燃費を向上するリーンバーンエンジンが知られている。
【０００３】
また、通常、エンジンの排気系に介装される三元触媒は、空燃比リーン運転時において排気ガス中の窒素酸化物（以下、「ＮＯｘ」と記する）を浄化できず、このため、リーンバーンエンジンにおいては、図１９に示すように、ＮＯｘ排出量の低下するリーン限界（空燃比リーンによる失火限界）付近に空燃比を制御する必要がある。このリーン限界はエンジン運転領域毎に異なり、また、エンジンの経時変化やエンジン個々のばらつきにより影響を受ける。従って、空燃比リーン運転時においてリーン限界を検出し、このリーン限界に応じて空燃比を制御する必要がある。
【０００４】
これに対処するに、特開平５−２４８２８１号公報に開示の技術がある。すなわち、この開示技術は、エンジン回転変動量或いはトルク変動量の絶対値の所定期間における平均値を算出して、この平均値を基準レベルと比較し、燃焼不安定度（トルク変動）を示す上記変動量平均値が基準レベルを上回るとき、リーン限界に達したことによって燃焼が不安定化し出力変動が生じたと判断して、目標空燃比補正係数を所定値だけ減算補正し、そして、エンジン負荷及びエンジン回転数に基づいてマップ検索により設定されるその時の運転状態に対応して最大限に空燃比をリーン化し得る基本目標空燃比を、上記目標空燃比補正係数により補正して最終的な目標空燃比を算出し、この目標空燃比の逆数を、基本燃料噴射量に乗算して基本燃料噴射量を補正することで、空燃比をリッチ側に修正して燃焼を安定化させる。一方、上記変動量平均値が基準レベル以下のときには、燃焼が安定しており、更にリーン側への空燃比修正に余裕があると判断して、目標空燃比補正係数を所定値だけ加算補正することで、空燃比をリーン側に修正する。これによって、上記先行例においては、リーン限界での運転を可能としつつ、エンジン運転性の悪化及び排気エミッションの悪化を防止している。
【０００５】
【発明が解決しようとする課題】
しかしながら、上記先行例では、最大限にリーン設定されている基本空燃比を目標空燃比補正係数によって補正して目標空燃比を算出し、この目標空燃比の逆数を基本燃料噴射量に乗算して目標空燃比に相当する基本燃料噴射量に換算し、更に、この値に各種補正係数を乗算して燃料噴射量を算出しており、ダイナミックレンジすなわち領域間における変化量の大きい目標空燃比を直接的に燃料噴射量の補正項として採用し、この目標空燃比をリーン限界に応じて設定される目標空燃比補正係数によって直接補正している。
【０００６】
このため、目標空燃比を修正設定するための上記目標空燃比補正係数では、運転領域毎に要求される目標空燃比が大きく異なる場合に、対応することができない。
【０００７】
すなわち、例えば空燃比Ａ／Ｆ＝２４の目標空燃比（基本空燃比）領域において設定された目標空燃比補正係数は、空燃比Ａ／Ｆ＝１８の目標空燃比領域での補正量としては大き過ぎ、また、これに対応して該目標空燃比補正係数は変動量平均値と基準レベルとの比較結果に応じて修正されるものの、修正量を多く必要とし、リーン限界に対応して収束するまでに時間がかかり、エンジン運転状態の変化すなわちエンジン運転領域の移行に対応して要求される目標空燃比が大きく変化した場合には対応することができず、制御性が悪化する不都合がある。
【０００８】
これに対処するに上記目標空燃比補正係数に対する１回当たりの修正量を大きくすると、制御が粗くなり、制御精度が悪化する不都合がある。また、各基本空燃比領域毎に対応して目標空燃比補正係数を複数設定することも考えられるが、この場合には、リーン限界に応じて目標空燃比を補正するための目標空燃比補正係数を複数設定するために、制御系が複雑化し、且つ、エンジン運転状態の変化に応じ目標空燃比が大きく相違する領域に移行した場合に、各目標空燃比補正係数間の移行に際し、該目標空燃比補正係数間に段差が生じ、従って、速い制御収束性が得られず適正なリーン空燃比での運転を行うことができない。
【０００９】
また、空燃比センサによる空燃比フィードバック制御について考慮すると、空燃比センサの一例としてのリニア空燃比センサの出力特性は、空気過剰率λの逆数として表される当量比１／λを横軸とした図２０に実線で示すセンサ新品時の初期特性或いは中心値特性に対し、経時変化やセンサの個々のばらつきにより、同図に破線で示すように、当量比１／λ＝１．０のストイキオ（理論空燃比）対応の出力値（出力電圧）ＶＯ2は殆ど変化しないが、リーン及びリッチ方向への出力変化率（傾き）がずれる。
【００１０】
しかし、上記先行例においては、エンジン運転状態に応じて設定される基本空燃比を一義的な目標空燃比補正係数によって一律に補正して目標空燃比を設定し、この目標空燃比により燃料噴射量を補正しているため、図２１に示すように、実線の空燃比センサ新品時の初期特性或いは中央値特性に対し、経時変化が生じたりばらつきが有る場合には、同図に破線で示すように一義的にシフトして補正することとなり、実際の空燃比センサの出力特性変化に一致せず、従って、空燃比フィードバック制御に対応できない不都合がある。
【００１１】
本発明は、上記事情に鑑み、運転領域毎に要求される目標空燃比が大きく相違してもリーン限界に対する空燃比補正を的確に行うことができ、空燃比制御性を向上することが可能なリーンバーンエンジンの燃料噴射制御装置を提供することを第１の目的とする。また、上記第１の目的に加え、空燃比センサの出力特性が経時変化やばらつきにより変化した場合においても、これに対応して適正に空燃比フィードバック制御を行うことが可能なリーンバーンエンジンの燃料噴射制御装置を提供することを第２の目的とする。
【００１２】
【課題を解決するための手段】
上記第１の目的を達成するため、請求項１記載の発明は、エンジン運転状態に応じて燃料噴射量を補正し、リーンバーンに適合する燃料噴射量を設定するリーンバーンエンジンの燃料噴射制御装置において、図１（ａ）の基本構成図に示すように、燃焼圧力変動率に基づきリーン限界か否かを判別するリーン限界判別手段と、上記リーン限界の判別結果に応じてリーン限界補正値を設定するリーン限界補正値設定手段と、エンジン運転状態に基づいて設定した基本減量値に上記リーン限界補正値を乗算して目標リーン減量係数を設定する目標リーン減量係数設定手段と、エンジン運転状態に応じて設定される各種補正項を加算した加算項に対し上記目標リーン減量係数を減算項として与え、空気過剰率の逆数で表される目標当量比を算出する目標当量比算出手段と、エンジン運転状態に基づいて設定した燃料噴射量を上記目標当量比により補正してエンジンへ供給する最終的な燃料噴射量を設定する燃料噴射量設定手段とを備えたことを特徴とする。
【００１３】
上記第２の目的を達成するため、請求項２記載の発明は、エンジン運転状態に応じて燃料噴射量を補正し、リーンバーンに適合する燃料噴射量を設定するリーンバーンエンジンの燃料噴射制御装置において、図１（ｂ）の基本構成図に示すように、燃焼圧力変動率に基づきリーン限界か否かを判別するリーン限界判別手段と、上記リーン限界の判別結果に応じてリーン限界補正値を修正設定するリーン限界補正値設定手段と、エンジン運転状態に基づいて設定した基本減量値に上記リーン限界補正値を乗算して目標リーン減量係数を設定する目標リーン減量係数設定手段と、エンジン運転状態に応じて設定される各種補正項を加算した加算項に対し上記目標リーン減量係数を減算項として与え、空気過剰率の逆数で表される目標当量比を算出する目標当量比算出手段と、空燃比センサの出力値に基づき排気当量比を検出する排気当量比検出手段と、上記目標当量比と排気当量比との比較結果に応じて空燃比フィードバック補正係数を設定する空燃比フィードバック補正係数設定手段と、エンジン運転状態に基づいて設定した燃料噴射量を上記目標当量比及び上記空燃比フィードバック補正係数により補正してエンジンへ供給する最終的な燃料噴射量を設定する燃料噴射量設定手段とを備えたことを特徴とする。
【００１４】
請求項３記載の発明は、請求項１或いは請求項２記載の発明において、上記リーン限界補正値設定手段は、リーン限界と判別されたとき、上記リーン限界補正値を減少修正し、非リーン限界のとき、リーン限界補正値を増加修正することを特徴とする。
【００１５】
請求項４記載の発明は、請求項１ないし請求項３の何れか一に記載の発明において、上記リーン限界判別手段および上記リーン限界補正値設定手段は、エンジン運転領域がリーンバーン領域外の時、過渡運転状態時、及び、自動変速機搭載車の場合には変速制御中の時、手動変速機搭載車の場合には変速操作中の時の少なくとも一つの条件が成立するとき、リーン限界の判別を中止し、リーン限界補正値の修正を中止することを特徴とする。
【００１６】
請求項５記載の発明は、請求項１ないし請求項４の何れか一に記載の発明において、上記リーン限界判別手段は、最大燃焼圧力を得る所定クランク角毎に燃焼行程気筒の燃焼圧力をサンプリングし、この燃焼圧力を平均処理して燃焼圧力平均値を算出すると共に該燃焼圧力平均値に対する燃焼圧力分散値を算出し、この燃焼圧力平均値及び燃焼圧力分散値に基づき算出した燃焼圧力変動率がリーン限界を判定するための判定値を上回るとき、リーン限界と判別することを特徴とする。
【００１７】
すなわち、請求項１記載の発明では、燃焼圧力変動率に基づいてリーン限界を判別し、この判別結果に応じてリーン限界補正値を設定する。そして、エンジン運転状態に基づいて設定した基本減量値に上記リーン限界補正値を乗算して目標リーン減量係数を設定し、エンジン運転状態に応じて設定される各種補正項を加算した加算項に対し上記目標リーン減量係数を減算項として与え空気過剰率の逆数として表される目標当量比を算出する。そして、この目標当量比によりエンジン運転状態に基づいて設定した燃料噴射量を補正して、エンジンへ供給する最終的な燃料噴射量を設定する。
【００１８】
ここで、空気過剰率の逆数で表され燃料噴射量を空燃比補正するための目標当量比は、リーンバーンに対応して空燃比をリーン補正する目標リーン減量係数を、エンジン運転状態に応じて設定される各種補正項に対しマイナス項で与えて算出される。更に、この目標リーン減量係数は、エンジン運転状態に応じて設定された基本減量値に、燃焼圧力変動率に基づくリーン限界判別結果に応じて設定されるリーン限界補正値を乗算して設定される。従って、ダイナミックレンジすなわち領域間における変化量の大きい目標空燃比を直接採用することなく実現でき、リーンバーンに対応して空燃比をリーン補正するための目標リーン減量係数を目標当量比の一つの補正項として目標当量比の演算式に組み込み、このリーン減量係数の設定に際して、基本減量値にリーン限界に応じて設定されるリーン限界補正値を乗算して補正するため、目標空燃比全体をリーン限界に応じて補正するのと異なり、目標当量比の演算式中の一つの補正項によるダイナミックレンジの小さい部分的な補正で対応することが可能となり、運転領域毎に要求される目標空燃比が大きく相違してもリーン限界に対する空燃比補正を的確に行うことができ、制御収束性及び空燃比制御性を向上することが可能となる。
【００１９】
請求項２記載の発明では、燃焼圧力変動率に基づいてリーン限界を判別し、この判別結果に応じてリーン限界補正値を修正設定する。そして、エンジン運転状態に基づいて設定した基本減量値に上記リーン限界補正値を乗算して目標リーン減量係数を設定し、エンジン運転状態に応じて設定される各種補正項を加算した加算項に対し上記目標リーン減量係数を減算項として与え空気過剰率の逆数として表される目標当量比を算出する。また、空燃比センサの出力値に基づき排気当量比を検出し、上記目標当量比と排気当量比との比較結果に応じて空燃比フィードバック補正係数を設定する。そして、エンジン運転状態に基づいて設定した燃料噴射量を上記目標当量比及び上記空燃比フィードバック補正係数により補正してエンジンへ供給する最終的な燃料噴射量を設定する。
【００２０】
すなわち、空気過剰率の逆数で表され燃料噴射量を空燃比補正するための目標当量比は、リーンバーンに対応して空燃比をリーン補正する目標リーン減量係数を、エンジン運転状態に応じて設定される各種補正項に対しマイナス項で与えて算出される。更に、この目標リーン減量係数は、エンジン運転状態に応じて設定された基本減量値を、燃焼圧力変動率に基づくリーン限界判別結果に応じて設定されるリーン限界補正値により補正して設定される。そして、この目標当量比と空燃比センサの出力値に基づいて検出した排気当量比との比較結果に応じ、燃料噴射量をフィードバック補正するための空燃比フィードバック補正係数を設定することで、空燃比センサの出力特性が経時変化やばらつき等によって変化し、空燃比フィードバックの初期目標値に対し目標値が変化しても、リーン限界補正により目標空燃比を得るための目標当量比が修正され、これに対応して空燃比フィードバック補正係数が修正される。従って、リーン限界検出制御による目標当量比の補正にて的確に対応されて、高い空燃比フィードバック制御精度を維持することが可能となり、経時変化やばらつき等による空燃比センサの出力特性の変化に対応して適正に空燃比フィードバック制御を行うことが可能となる。
【００２１】
また、リーン限界補正値の設定に際し、請求項３記載の発明では、リーン限界と判別されたとき、上記リーン限界補正値を減少修正し、非リーン限界のとき、リーン限界補正値を増加修正する。
【００２２】
さらに、請求項４記載の発明では、リーン限界検出条件を判断し、エンジン運転領域がリーンバーン領域外の時、過渡運転状態時、及び、自動変速機搭載車の場合には変速制御中の時、手動変速機搭載車の場合は変速操作中の時の少なくとも一つの条件が成立するとき、リーン限界の判別を中止し、上記リーン限界補正値の修正を中止する。
【００２３】
また、請求項５記載の発明では、リーン限界の判別に際し、最大燃焼圧力を得る所定クランク角毎に燃焼行程気筒の燃焼圧力をサンプリングし、この燃焼圧力を平均処理して燃焼圧力平均値を算出すると共に該燃焼圧力平均値に対する燃焼圧力分散値を算出する。そして、この燃焼圧力平均値及び燃焼圧力分散値に基づき算出した燃焼圧力変動率がリーン限界を判定するための判定値を上回るとき、リーン限界と判別する。
【００２４】
【発明の実施の形態】
以下、図面に基づいて本発明の実施の一形態を説明する。
【００２５】
先ず、図１４に基づいてエンジンの全体構成について説明する。同図において、符号１は自動車等の車輌用のリーンバーンエンジン（以下、単に「エンジン」と略記する）であり、図においては水平対向型４気筒ガソリンエンジンを示す。このエンジン１のシリンダブロック１ａの左右両バンクには、シリンダヘッド２がそれぞれ設けられ、各シリンダヘッド２に吸気ポート２ａと排気ポート２ｂが形成されている。
【００２６】
このエンジン１の吸気系は、各吸気ポート２ａにインテークマニホルド３が連通され、このインテークマニホルド３に各気筒の吸気通路が集合するエアチャンバ４を介してスロットルチャンバ５が連通されている。そして、このスロットルチャンバ５の上流側に吸気管６を介してエアクリーナ７が取り付けられ、このエアクリーナ７がエアインテークチャンバ８に連通されている。
【００２７】
また、上記スロットルチャンバ５には、アクセルペダルに連動するスロットル弁５ａが設けられている。上記吸気管６には、スロットル弁５ａをバイパスするバイパス通路９が接続され、このバイパス通路９に、アイドル時にその弁開度によって該バイパス通路９を流れるバイパス空気量を調整することでアイドル回転数を制御するアイドル回転数制御弁（ＩＳＣ弁）１０が介装されている。
【００２８】
更に、上記インテークマニホールド３の各気筒の吸気ポート２ａの直上流に、吸気流方向に指向してインジェクタ１１が配設されている。
【００２９】
図１５に示すように、上記吸気ポート２ａはストレートポート形状に形成されており、吸入空気量の少ない低，中負荷時には、吸気ポート２ａのストレート形状による吸気流によって、燃焼室１２に流入する混合気に該燃焼室１２に対して同図に矢印で示すように縦方向の渦流いわゆるタンブル流が生じ、リーン空燃比制御時には、このタンブル流により層状燃焼が可能となり、リーンバーンが行われる。また、吸入空気量の多い高負荷時には、燃焼室１２に流入する混合気がタンブル流によって流動強化されて、燃焼性が向上し、これとストイキオ（理論空燃比）制御（リッチ空燃比制御を含む）によりエンジン出力が確保される。尚、図１５において、符号１３は吸気弁、１４は排気弁である。
【００３０】
上記インジェクタ１１は燃料供給路１５を介して燃料タンク１６に連通されており、この燃料タンク１６にはインタンク式の燃料ポンプ１７が設けられている。この燃料ポンプ１７からの燃料が、上記燃料供給路１５に介装された燃料フィルタ１８を経て上記インジェクタ１１及びプレッシャレギュレータ１９に圧送され、このプレッシャレギュレータ１９から上記燃料タンク１６にリターンされて上記インジェクタ１１への燃料圧力が所定の圧力に調圧される。
【００３１】
一方、上記シリンダヘッド２の各気筒毎に、先端の放電電極２０ａを上記燃焼室１２に露呈する点火プラグ２０が取り付けられ、この点火プラグ２０に、各気筒毎に配設された点火コイル２１を介してイグナイタ２２が接続されている。
【００３２】
また、エンジン１の排気系としては、上記シリンダヘッド２の各排気ポート２ｂに連通するエキゾーストマニホルド２３の集合部に排気管２４が連通され、この排気管２４に触媒コンバータ２５が介装されてマフラ２６に連通されている。
【００３３】
次に、エンジン運転状態を検出するためのセンサ類について説明する。上記吸気管６のエアクリーナ７の直下流に、ホットワイヤ或いはホットフィルム等を用いた熱式の吸入空気量センサ２７が介装され、更に、上記スロットルチャンバ５に設けられたスロットル弁５ａに、スロットル開度センサ２８ａとスロットル弁５ａの全閉でＯＮするアイドルスイッチ２８ｂとを内蔵したスロットルセンサ２８が連設されている。
【００３４】
また、エンジン１のシリンダブロック１ａにノックセンサ２９が取り付けられていると共に、シリンダブロック１ａの左右バンクを連通する冷却水通路３０に冷却水温センサ３１が臨まされ、また、上記触媒コンバータ２５の上流に空燃比センサの一例として、空燃比に応じてリニアな出力特性を有するリニアＯ2センサ（リニア空燃比センサ）３２が配設されている。
【００３５】
さらに、シリンダヘッド２の点火プラグ２０の周囲に燃焼室１２に対向して、該燃焼室１２内の筒内圧力を検出する筒内圧力センサ３３が各気筒毎に配設されている。
【００３６】
また、エンジン１のクランクシャフト３４に軸着するクランクロータ３５の外周に、クランク角センサ３６が対設され、更に、クランクシャフト３４に対して１／２回転するカムシャフト３７に連設するカムロータ３８に、気筒判別用のカム角センサ３９が対設されている。
【００３７】
上記クランクロータ３５は、図１６に示すように、その外周に突起３５ａ，３５ｂ，３５ｃ，３５ｄが形成され、これらの各突起３５ａ，３５ｂ，３５ｃが、各気筒（＃１，＃２気筒と＃３，＃４気筒）の圧縮上死点前（ＢＴＤＣ）θ1，θ2，θ3の位置に形成されており、更に、突起３５ｄが各気筒の圧縮上死点後（ＡＴＤＣ）θ4の位置に形成されている。本形態においては、θ1＝９７°ＣＡ，θ2＝６５°ＣＡ，θ3＝１０°ＣＡ，θ4＝１０°ＣＡである。
【００３８】
また、図１７に示すように、上記カムロータ３８の外周には、気筒判別用の突起３８ａ，３８ｂ，３８ｃが形成され、突起３８ａが＃３，＃４気筒のＡＴＤＣθ5の位置に形成され、突起３８ｂが３個の突起で構成されて最初の突起が＃１気筒のＡＴＤＣθ6の位置に形成されている。更に、突起３８ｃが２個の突起で形成され、最初の突起が＃２気筒のＡＴＤＣθ7の位置に形成されている。本形態においては、θ5＝２０°ＣＡ，θ6＝１５°ＣＡ，θ7＝２０°ＣＡである。
【００３９】
そして、図９のタイムチャートに示すように、エンジン運転に伴いクランクシャフト３４及びカムシャフト３７の回転により上記クランクロータ３５及びカムロータ３８が回転して、クランクロータ３５の各突起が上記クランク角センサ３６によって検出され、クランク角センサ４１からθ1，θ2，θ3，θ4（ＢＴＤＣ９７°，６５°，１０°ＣＡ，ＡＴＤＣ１０°）の各クランクパルスがエンジン１／２回転（１８０°ＣＡ）毎に出力される。一方、θ4クランクパルスとθ1クランクパルスとの間で上記カムロータ３８の各突起が上記カム角センサ３９によって検出され、カム角センサ３９から所定数のカムパルスが出力される。
【００４０】
そして、後述する電子制御装置５０（図１８参照）において、上記クランク角センサ３６から出力されるクランクパルスの入力間隔時間Ｔθに基づいてエンジン回転数ＮEを算出し、また、各気筒の燃焼行程順（例えば、＃１気筒→＃３気筒→＃２気筒→＃４気筒）と、上記カム角センサ３９からのカムパルスをカウンタによって計数した値とのパターンに基づいて、燃焼行程気筒、燃料噴射対象気筒や点火対象気筒の気筒判別を行う。
【００４１】
尚、クランクロータ３５の突起３５ｄによるＡＴＤＣθ4（ＡＴＤＣ１０°ＣＡ）のクランクパルスは、図９に示すように、各気筒において最大燃焼圧力が得られる時点で燃焼圧力の検出タイミングを与えるためのもので、換言すれば、上記突起３５は、各気筒において最大燃焼圧力が得られるタイミング位置に形成される。そして、電子制御装置５０において、ＡＴＤＣθ4クランクパルスが入力したとき、その時の燃焼行程気筒の筒内圧力センサ３３からの出力信号を入力し、燃焼圧力をサンプリングする。
【００４２】
上記インジェクタ１１、点火プラグ２０、ＩＳＣ弁１０等のアクチュエータ類に対する制御量の演算、制御信号の出力、すなわち空燃比制御を含む燃料噴射制御、点火時期制御、アイドル回転数制御等のエンジン制御は、図１８に示す電子制御装置（ＥＣＵ）５０によって行われる。
【００４３】
上記ＥＣＵ５０は、ＣＰＵ５１、ＲＯＭ５２、ＲＡＭ５３、バックアップＲＡＭ５４、カウンタ・タイマ群５５、及びＩ／Ｏインターフェイス５６がバスラインを介して互いに接続されるマイクロコンピュータを中心として構成され、各部に安定化電源を供給する定電圧回路５７、上記Ｉ／Ｏインターフェイス５６に接続される駆動回路５８及びＡ／Ｄ変換器５９等の周辺回路が内蔵されている。
【００４４】
なお、上記カウンタ・タイマ群５５は、フリーランカウンタ、カム角センサ信号（カムパルス）の入力計数用カウンタ等の各種カウンタ、燃料噴射用タイマ、点火用タイマ、定期割り込みを発生させるための定期割り込み用タイマ、クランク角センサ信号（クランクパルス）の入力間隔計時用タイマ、エンジン始動後の経過時間を計時する始動後時間計時用タイマ、及びシステム異常監視用のウオッチドッグタイマ等の各種タイマを便宜上総称するものであり、その他、各種のソフトウエアカウンタ・タイマが用いられる。
【００４５】
上記定電圧回路５７は、２回路のリレー接点を有する電源リレー６０の第１のリレー接点を介してバッテリ６１に接続され、バッテリ６１に、上記電源リレー６０のリレーコイルがイグニッションスイッチ６２を介して接続されている。また、上記定電圧回路５７は、直接、上記バッテリ６１に接続されており、イグニッションスイッチ６２がＯＮされて電源リレー６０の接点が閉となるとＥＣＵ５０内の各部へ電源を供給する一方、上記イグニッションスイッチ６２のＯＮ，ＯＦＦに拘らず、常時、上記バックアップＲＡＭ５４にバックアップ用の電源を供給する。更に、上記バッテリ６１には、燃料ポンプリレー６３のリレー接点を介して燃料ポンプ１７が接続されている。なお、上記電源リレー６０の第２のリレー接点には、上記バッテリ６１から各アクチュエータに電源を供給するための電源線が接続されている。
【００４６】
上記Ｉ／Ｏインターフェイス５６の入力ポートには、アイドルスイッチ２８ｂ、ノックセンサ２９、クランク角センサ３６、カム角センサ３９、車速を検出するための車速センサ４０、エンジン始動状態を検出するためスタータスイッチ４１が接続されており、また、自動変速機搭載車（ＡＴ車）において自動変速機を電子制御する変速機制御装置４５からの変速信号ラインが接続されており（手動変速機搭載車、いわゆるＭＴ車の場合は、ニュートラル状態を検出するニュートラルスイッチ、及びクラッチペダルの操作状態を検出するクラッチスイッチを用いる）、更に、上記Ａ／Ｄ変換器５９を介して、吸入空気量センサ２７、スロットル開度センサ２８ａ、冷却水温センサ３１、リニアＯ2センサ３２、及び筒内圧力センサ３３が接続されると共に、バッテリ電圧ＶBが入力されてモニタされる。
【００４７】
一方、上記Ｉ／Ｏインターフェイス５６の出力ポートには、ＩＳＣ弁１０、インジェクタ１１、及び、燃料ポンプリレー６３のリレーコイルが上記駆動回路５８を介して接続されると共に、イグナイタ２２が接続されている。
【００４８】
上記ＣＰＵ５１では、ＲＯＭ５２に記憶されている制御プログラムに従って、Ｉ／Ｏインターフェイス５６を介して入力されるセンサ・スイッチ類からの検出信号、及びバッテリ電圧等を処理し、ＲＡＭ５３に格納される各種データ、及びバックアップＲＡＭ５４に格納されている各種学習値データ，ＲＯＭ５２に記憶されている固定データ等に基づき、燃料噴射量、点火時期、ＩＳＣ弁１０に対する駆動信号のデューティ比等を演算し、空燃比制御を含む燃料噴射制御、点火時期制御、アイドル回転数制御等のエンジン制御を行う。
【００４９】
このようなエンジン制御系において、ＥＣＵ５０では、燃焼圧力変動率に基づいてリーン限界を判別し、この判別結果に応じてリーン限界補正値ＫSURGEを設定する。そして、エンジン運転状態に基づいて設定した基本減量値ＫLNMAPを上記リーン限界補正値ＫSURGEにより補正して目標リーン減量係数ＫLEANを設定し、エンジン運転状態に応じて設定される各種補正項に対し上記目標リーン減量係数ＫLEANを減算項として与え空気過剰率λの逆数として表される目標当量比ＫTGTを算出する。そして、この目標当量比ＫTGTによりエンジン運転状態に基づいて設定した燃料噴射量を補正して、エンジンへ供給する最終的な燃料噴射量を定める燃料噴射パルス幅Ｔｉを設定する。
【００５０】
すなわち、空気過剰率の逆数で表され燃料噴射量を空燃比補正するための目標当量比ＫTGTを算出するに際し、リーンバーンに対応して空燃比をリーン補正する目標リーン減量係数ＫLEANをエンジン運転状態に応じて設定される各種補正項に対しマイナス項で与える。更に、この目標リーン減量係数ＫLEANは、エンジン運転領域に応じ適正リーン空燃比を得るための燃料減量率を定める基本減量値ＫLNMAPをエンジン運転状態に基づいて設定し、この基本減量値ＫLNMAPを、燃焼圧力変動率に基づくリーン限界判別結果に応じて設定されるリーン限界補正値ＫSURGEにより補正して設定される。
【００５１】
従って、ダイナミックレンジすなわち領域間における変化量の大きい目標空燃比を直接採用することなく実現でき、リーンバーンに対応して空燃比をリーン補正するための目標リーン減量係数ＫLEANを、空気過剰率の逆数で表され燃料噴射量を空燃比補正するための目標当量比ＫTGTの一つの補正項として該目標当量比ＫTGTの演算式に組み込み、このリーン減量係数ＫLEANの設定に際して、基本減量値ＫLNMAPにリーン限界に応じて設定されるリーン限界補正値ＫSURGEを乗算して補正するため、目標空燃比全体をリーン限界に応じて補正するのと異なり、目標当量比ＫTGTの演算式中の一つの補正項によるダイナミックレンジの小さい部分的な補正で対応することが可能となり、運転領域毎に要求される目標空燃比が大きく相違してもリーン限界に対する空燃比補正を的確に行うことができ、制御収束性及び空燃比制御性を向上することが可能となる。
【００５２】
また、この燃料噴射制御に空燃比フィードバック制御を組み込み、リニアＯ2センサ３２の出力電圧（出力値）ＶＯ2に基づいて排気当量比ＥＸＲを検出する。そして、上記目標当量比ＫTGTと排気当量比ＥＸＲとの比較結果に応じて空燃比フィードバック補正係数ＬＡＭＢＤＡを設定し、エンジン運転状態に基づいて設定した燃料噴射量を上記目標当量比ＫTGT及び上記空燃比フィードバック補正係数ＬＡＭＢＤＡによって補正してエンジンへ供給する最終的な燃料噴射量を定める燃料噴射パルス幅Ｔｉを設定する。
【００５３】
すなわち、空気過剰率λの逆数で表され燃料噴射量を空燃比補正するための目標当量比ＫTGTは、リーンバーンに対応して空燃比をリーン補正する目標リーン減量係数ＫLEANを、エンジン運転状態に応じて設定される各種補正項に対しマイナス項で与えて算出される。更に、この目標リーン減量係数ＫLEANは、エンジン運転状態に応じて設定された基本減量値ＫLNMAPを、燃焼圧力変動率に基づくリーン限界判別結果に応じて設定されるリーン限界補正値ＫSURGEにより補正して設定される。そして、この目標当量比ＫTGTとリニアＯ2センサ３２の出力電圧ＶＯ2に基づいて検出した排気当量比ＥＸＲとの比較結果に応じ、燃料噴射量をフィードバック補正するための空燃比フィードバック補正係数ＬＡＭＢＤＡを設定することで、リニアＯ2センサ３２の出力特性が経時変化やばらつき等によって変化し、空燃比フィードバックの初期目標値に対し目標値が変化しても、リーン限界補正により目標空燃比を得るための目標当量比ＫTGTが修正され、この目標当量比ＫTGTとの比較結果に応じて設定される空燃比フィードバック補正係数ＬＡＭＢＤＡが修正されて、その結果、目標とするリーン運転時空燃比を適切に得ることが可能となる。
【００５４】
従って、リーン限界検出制御による目標当量比ＫTGTの補正にて的確に対応されて、高い空燃比フィードバック制御精度を維持することが可能となり、経時変化やばらつき等によるリニアＯ2センサ３２の出力特性の変化に対応して適正に空燃比フィードバック制御を行うことが可能となる。
【００５５】
すなわち、ＥＣＵ５０は、本発明に係るリーン限界判別手段、リーン限界補正値設定手段、目標リーン減量係数設定手段、目標当量比算出手段、燃料噴射量設定手段の機能を有し、更に、排気当量比検出手段、空燃比フィードバック補正係数設定手段としての機能をも実現する。
【００５６】
より詳細には、本実施の形態においては、最大燃焼圧力を得る所定クランク角すなわちＡＴＤＣθ4クランクパルス入力毎に燃焼行程気筒＃ｎの燃焼圧力Ｐをサンプリングし、この燃焼圧力Ｐを平均処理して燃焼圧力平均値Ｐaveを算出すると共に該燃焼圧力平均値Ｐaveに対する燃焼圧力分散値Ｐsigを算出する。そして、この燃焼圧力平均値Ｐave及び燃焼圧力分散値Ｐsigに基づいて燃焼圧力変動率Ｐｘを算出し、この燃焼圧力変動率Ｐｘをリーン限界を判断するための判定値Ｐｘｓと比較することでリーン限界か否かを判別する。そして、燃焼圧力変動率Ｐｘが判定値Ｐｘｓを上回るとき、リーン限界と判断して上記リーン限界補正値ＫSURGEを減少修正し、一方、燃焼圧力変動率Ｐｘが判定値Ｐｘｓ以下のとき、非リーン限界と判断してリーン限界補正値ＫSURGEを増加修正する。
【００５７】
そして、エンジン運転状態に基づいて設定した基本減量値ＫLNMAPを上記リーン限界補正値ＫSURGEにより補正して目標リーン減量係数ＫLEANを設定し、エンジン運転状態に応じて設定される各種補正項に対し上記目標リーン減量係数ＫLEANを減算項として与え空気過剰率λの逆数として表される目標当量比ＫTGTを算出する。また、リニアＯ2センサ３２の出力電圧ＶＯ2に基づいて排気当量比ＥＸＲを検出し、上記目標当量比ＫTGTと排気当量比ＥＸＲとの比較結果に応じて空燃比フィードバック補正係数ＬＡＭＢＤＡを設定する。そして、エンジン運転状態に基づいて設定した基本燃料噴射量を定める基本燃料パルス幅Ｔｐを、上記目標当量比ＫTGT及び上記空燃比フィードバック補正係数ＬＡＭＢＤＡによって補正してエンジンへ供給する最終的な燃料噴射量を定める燃料噴射パルス幅Ｔｉを設定する。
【００５８】
さらに、本実施の形態においては、リーン限界検出に際して条件判断を行い、エンジン運転領域がリーンバーン領域外の時、過渡運転状態時、及び、自動変速機搭載車（ＡＴ車）の場合には変速制御中の時、手動変速機搭載車（ＭＴ車）の場合は変速操作中の時の少なくとも一つの条件が成立するとき、燃焼圧力の検出、及びリーン限界の判別を中止して、リーン限界補正値ＫSURGEの修正を中止する。
【００５９】
以下、上記ＥＣＵ５０によって実行される本発明に係る燃料噴射制御処理について、図２〜図８に示すフローチャートに従って説明する。
【００６０】
先ず、イグニッションスイッチ６２がＯＮされ、ＥＣＵ５０に電源が投入されると、システムがイニシャライズされ、バックアップＲＡＭ５４に格納されている各種学習値等のデータを除く、各フラグ、各カウンタ類が初期化される。そして、スタータスイッチ４１がＯＮされてエンジン１が起動すると、クランク角センサ３６からのクランクパルス入力毎に、図２に示す気筒判別／エンジン回転数算出ルーチンが実行される。
【００６１】
この気筒判別／エンジン回転数算出ルーチンでは、エンジン運転に伴いクランクロータ３５が回転してクランク角センサ３６からのクランクパルスが入力されると、先ず、ステップS1で、今回入力されたクランクパルスがθ1，θ2，θ3，θ4の何れのクランク角に対応する信号かをカム角センサ３９からのカムパルスの入力パターンに基づいて識別し、ステップS2で、クランクパルスとカムパルスとの入力パターンから燃焼行程気筒、点火対象気筒、及び燃料噴射対象気筒等の気筒判別を行う。
【００６２】
すなわち、図９のタイムチャートに示すように、例えば、前回クランクパルスが入力してから今回クランクパルスが入力されるまでの間にカムパルス入力があれば、今回のクランクパルスはθ1クランクパルスであると識別でき、更に次回入力されるクランクパルスはθ2クランクパルスと識別できる。
【００６３】
また、前回と今回とのクランクパルス入力間にカムパルス入力がなく、前々回と前回のクランクパルス入力間にカムパルス入力が有ったときには、今回のクランクパルスはθ2クランクパルスと識別でき、次回入力されるクランクパルスはθ3クランクパルスと識別できる。また、前回と今回との間、及び前々回と前回とのクランクパルス入力間に、何れもカムパルス入力が無いときには、今回入力されたクランクパルスはθ3クランクパルスと識別でき、次回入力されるクランクパルスはθ4クランクパルスと判別できる。
【００６４】
また、クランクパルス入力間に３回連続してカムパルス入力が無いときには、今回入力されたクランクパルスはθ4クランクパルスと識別でき、次回入力されるクランクパルスはθ1クランクパルスと識別できる。
【００６５】
さらに、前回と今回とのクランクパルス入力間にカムパルスが３個入力（突起３８ｂに対応するθ6カムパルス）したときには、次の圧縮上死点は＃３気筒であり、現在の燃焼行程気筒は＃１気筒であって、次のθ4クランクパルス入力時点での燃焼行程気筒＃ｎは＃３気筒と判別することができ、また、点火対象気筒は＃３気筒、燃料噴射対象気筒は、その２つ後の＃４気筒と判別することができる。また、前回と今回のクランクパルス入力間にカムパルスが２個入力（突起３８ｃに対応するθ7カムパルス）したときには、次の圧縮上死点は＃４気筒であり、現在の燃焼行程気筒は＃２気筒であって、次のθ4クランクパルス入力時点での燃焼行程気筒＃ｎは＃４気筒と判別でき、また、点火対象気筒は＃４気筒、燃料噴射対象気筒は＃３気筒と判別できる。
【００６６】
また、前回と今回のクランクパルス入力間にカムパルスが１個入力（突起３８ａに対応するθ5カムパルス）し、前の圧縮上死点判別が＃４気筒であったときには、次の圧縮上死点は＃１気筒であり、現在の燃焼行程気筒は＃４気筒であって、次のθ4クランクパルス入力時点での燃焼行程気筒＃ｎは＃１気筒と判別でき、また、点火対象気筒は＃１気筒、燃料噴射対象気筒は＃２気筒と判別できる。同様に、前回と今回のクランクパルス入力間にカムパルスが１個入力し、前の圧縮上死点判別が＃３気筒であったときには、次の圧縮上死点は＃２気筒であり、現在の燃焼行程気筒は＃３気筒であって、次のθ4クランクパルス入力時点での燃焼行程気筒＃ｎは＃２気筒と判別でき、また、点火対象気筒は＃２気筒、燃料噴射対象気筒は＃１気筒と判別できる。
【００６７】
その後、ステップS2からステップS3へ進み、前記クランクパルス入力間隔計時用タイマによって計時された前回のクランクパルス入力から今回のクランクパルス入力までの時間、すなわちクランクパルス入力間隔時間（θ1クランクパルスとθ2クランクパルスの入力間隔時間Ｔθ12、θ2クランクパルスとθ3クランクパルスの入力間隔時間Ｔθ23、θ3クランクパルスとθ4クランクパルスの入力間隔時間Ｔθ34、或いはθ4クランクパルスとθ1クランクパルスの入力間隔時間Ｔθ41）を読み出し、クランクパルス入力間隔時間Ｔθを検出する。
【００６８】
次いで、ステップS4へ進み、今回識別したクランクパルスに対応するクランクパルス間角度を読み出し、このクランクパルス間角度と上記クランクパルス入力間隔時間Ｔθとに基づいて現在のエンジン回転数ＮEを算出し、ＲＡＭ５３の所定アドレスにストアしてルーチンを抜ける。なお、上記クランクパルス間角度は既知であり、予めＲＯＭ５２に固定データとして記憶されているものであり、本実施の形態においては、θ1クランクパルスとθ2クランクパルス間の角度は３２°ＣＡであり、θ2クランクパルスとθ3クランクパルス間の角度は５５°ＣＡ、θ3クランクパルスとθ4クランクパルス間の角度は２０°ＣＡ、θ4クランクパルスとθ1クランクパルス間の角度は７３°ＣＡである。
【００６９】
一方、システムイニシャライズ後、図３に示すリーン限界検出条件判別ルーチンが所定時間毎に実行される。
【００７０】
このリーン限界検出条件判別ルーチンは、リーン限界検出に際して条件判断を行い、エンジン運転領域がリーンバーン領域外の時、過渡運転状態時、及び、自動変速機搭載車（ＡＴ車）の場合には変速制御中の時、手動変速機搭載車（ＭＴ車）の場合は変速操作中の時の少なくとも一つの条件が成立するとき、リーン限界検出の中止、すなわち燃焼圧力Ｐの検出及び燃焼圧力変動率によるリーン限界の判別を中止して、リーン限界補正値ＫSURGEの修正を中止するためのものである。
【００７１】
次に、このリーン限界検出条件判別ルーチンについて説明すると、先ずステップS11で、後述する図５の目標当量比算出ルーチンにおいて設定される基本減量値ＫLNMAPを参照し、現在の運転領域がリーンバーンを実行する領域にあるか否かを判断する。
【００７２】
上記基本減量値ＫLNMAPは、エンジン運転領域に応じ適正リーン空燃比を得るための燃料減量率を定めるためのもので、エンジン回転数ＮEとエンジン負荷を表す基本燃料噴射パルス幅Ｔｐ（＝Ｋ×Ｑ／ＮE；Ｑは吸入空気量、Ｋはインジェクタ特性補正定数）とに基づいて基本減量値テーブルを検索することにより設定される。この基本減量値テーブルは、図１１に示すように、極低負荷低回転域及び高負荷領域においては、空燃比をストイキオ（或いはリッチ）に制御する領域であり、基本減量値ＫLNMAPがＫLNMAP＝０に設定され、基本減量値ＫLNMAPによる燃料減量補正無しの状態に設定される。また、極低負荷低回転域及び高負荷域を除く低負荷域及び中負荷域がリーン空燃比によりリーンバーンを行うリーンバーン領域であり、この領域において上記基本減量値ＫLNMAPがＫLNMAP＞０に設定され、燃料減量補正が行われる。
【００７３】
従って、上記ステップS11においてＫLNMAP＝０で、基本減量値ＫLNMAPによる燃料減量補正無しのときは、リーンバーン領域外のストイキオ制御時（リッチ制御を含む）であって、リーン限界（空燃比リーンによる失火限界）を検出する必要が無く、従って、この時にはリーン限界検出条件の不成立と判断し、ステップS15へジャンプする。
【００７４】
尚、後述の図５の目標当量比算出ルーチンにおいて未だ基本減量値ＫLNMAPが設定されていないときは、システムイニシャライズにより基本減量値ＫLNMAPを含む各データがクリアされており、従って、この時にはＫLNMAP＝０によりステップS11からステップS15へジャンプする。
【００７５】
また、ステップS11においてＫLNMAP≠０で、現在のエンジン運転状態がリーンバーン領域にあるときには、ステップS12へ進み、目標当量比算出ルーチンにおいて設定されるフル増量係数ＫFULLを参照する。
【００７６】
上記フル増量係数ＫFULLは、加速或いは高速運転等によりエンジン運転状態が高回転及び高負荷との少なくとも一方の状態のときに、燃料増量補正により触媒温度の異常上昇を防止して触媒を保護すると共にエンジン出力を確保するためのものである。
【００７７】
従って、上記ステップS12においてＫFULL≠０で、フル増量係数ＫFULLによる燃料増量補正中の時には、少なくとも空燃比リーン制御が行われていないため、同様に、リーン限界を検出する必要が無く、従って、この時にもリーン限界検出条件の不成立と判断し、ステップS15へジャンプする。
【００７８】
また、上記ステップS12で、ＫFULL＝０のフル増量係数ＫFULLによる燃料増量補正が行われていないときには、ステップS13へ進み、更に、燃料カット中か否かを判断する。すなわち、燃料カット中の時には燃料が噴射されておらず、換言すれば、燃料カットによる失火状態にあり、このときリーン限界を検出すると誤検出を生じる。従って、この時にもリーン限界検出条件の不成立と判断し、ステップS15へジャンプする。
【００７９】
さらに、上記ステップS13において燃料カットが行われていないときには、ステップS14へ進み、自動変速機を電子制御する変速機制御装置４５からの変速信号ラインを介しての変速制御信号に基づいて変速制御中か否かを判断する。すなわち、変速制御中で変速機が変速される時には、エンジン回転数ＮEが急変し、これに対応して燃焼圧力Ｐも急変するため、このとき燃焼圧力に基づいてリーン限界を検出すると、リーン限界の誤検出を生じる。従って、変速制御中の時にもリーン限界検出条件の不成立と判断し、ステップS15へジャンプする。
【００８０】
尚、上記ステップS14は自動変速機搭載車（ＡＴ車）に対応しているが、手動変速機搭載車（ＭＴ車）の場合には、ニュートラル状態を検出するニュートラルスイッチ、及びクラッチペダルの操作状態を検出するクラッチスイッチを用い、これらスイッチの作動状態から変速操作中か否かを判断し、変速中のとき、リーン限界検出条件の不成立と判断し、ステップS15へジャンプする。
【００８１】
そして、ステップS14において変速制御中でないとき（ＭＴ車の場合は変速操作中でないとき）、すなわち、エンジン運転領域がリーンバーン領域にあり、且つ、フル増量係数ＫFULLが設定される加速或いは燃料カット中の減速或いは変速機の変速時等の過渡運転状態を除くエンジン運転状態にあり、確実にリーンバーンに対応して空燃比リーン制御が行われているときのみリーン限界検出条件の成立と判断して、ステップS16へ進み、更に、ステップS16以降の処理によってリーン限界検出条件成立の継続時間を判断する。
【００８２】
一方、上記ステップS11〜S14の何れかでリーン限界検出条件の不成立時には、該当するステップからステップS15へ進み、リーン限界検出許可フラグＦPERMをクリアしてリーン限界の検出を禁止し（ＦPERM←０）、ステップS20で、リーン限界検出条件成立の継続時間を計時する継続時間カウント値ＣTMをクリアして（ＣTM←０）、ルーチンを抜ける。
【００８３】
また、リーン限界検出条件の成立により上記ステップS14からステップS16へ進むと、リーン限界検出許可フラグＦPERMを参照する。このリーン限界検出許可フラグＦPERMは、上記ステップS11〜S14による全ての条件が成立しリーン限界検出条件成立状態が設定時間以上継続したとき、セットされる。
【００８４】
従って、ＦPERM＝１のときには、既にリーン限界検出条件の成立状態が設定時間以上継続しリーン限界検出が許可されているため、そのままルーチンを抜ける。
【００８５】
また、上記ステップS16においてＦPERM＝０のときには、ステップS17へ進み、ステップS17，S18で、リーン限界検出条件の成立状態が設定時間以上継続したか否かを判断する。すなわち、ステップS17では、上記継続時間カウント値ＣTMをカウントアップし（ＣTM←ＣTM＋１）、続くステップS18で、この継続時間カウント値ＣTMをエンジン定常運転状態と見なし得る設定時間に対応する設定値ＴＭＳと比較する。
【００８６】
そして、ＣTM＜ＴＭＳのときには、そのままルーチンを抜け、ＣTM≧ＴＭＳでリーン限界検出条件成立の継続時間が上記設定値ＴＭＳにより定まる設定時間に達したとき、ステップS18からステップS19へ進み、リーン限界検出許可フラグＦPERMをセットしてリーン限界の検出を許可し（ＦPERM←１）、上記ステップS20を経て上記継続時間カウント値ＣTMをクリアして、ルーチンを抜ける。
【００８７】
そして、θ4クランクパルス入力毎に実行される図４に示すリーン限界補正値算出ルーチンにおいて、上記リーン限界検出許可フラグＦPERMが参照され、リーン限界検出が許可されているときのみ、燃焼圧力変動率Ｐｘに基づいてリーン限界を判別し、この判別結果に応じて、エンジン運転領域に対応して適正リーン空燃比を得るための燃料減量率を定める基本減量値ＫLNMAPを補正するためのリーン限界補正値ＫSURGEを設定する。
【００８８】
次に、図４のリーン限界補正値算出ルーチンについて説明する。
【００８９】
このリーン限界補正値算出ルーチンは、最大燃焼圧力を得るθ4クランクパルス入力毎に実行され、先ずステップS31で、上記リーン限界検出条件判別ルーチンによって設定されたリーン限界検出許可フラグＦPERMを参照し、ＦPERM＝０で、リーン限界検出が禁止されているときには、ステップS32へ進み、燃焼圧力Ｐのサンプリング数ＣNがシフトレジスタによって可能なデータ取扱数に対応する設定数に達したときセットされる燃焼圧力変動率算出許可フラグＦDATAをクリアし（ＦDATA←０）、続くステップS33で、上記サンプリング数ＣNをクリアして（ＣN←０）、ルーチンを抜ける。
【００９０】
一方、上記ステップS31においてＦPERM＝１で、リーン限界検出が許可されているときには、ステップS34へ進み、本ルーチンが実行されるθ4クランクパルス入力時点における現在の燃焼行程気筒＃ｎを、上記気筒判別／エンジン回転数算出ルーチンにおける燃焼行程気筒データから特定し、続くステップS35で、該当燃焼行程気筒＃ｎの筒内圧力センサ３３による筒内圧力すなわち燃焼圧力Ｐ#nを読み込む。
【００９１】
次いでステップS36で、シフトレジスタに格納されている各燃焼圧力データを下位ビットから上位ビットにかけて、１データづつ順次シフトさせ、最下位ビットに今回読み込んだ上記燃焼圧力Ｐ#nを格納して（ＰN←ＰN-1，ＰN-1←ＰN-2，…，Ｐ3←Ｐ2，Ｐ2←Ｐ1，Ｐ1←Ｐ#n）、ステップS37へ進む。
【００９２】
ステップS37では、上記燃焼圧力変動率算出許可フラグＦDATAを参照し、燃焼圧力Ｐのサンプリング数ＣNがシフトレジスタによって可能なデータ取扱数に対応する設定数に達したか否か、すなわち順次サンプリングした燃焼圧力データによってシフトレジスタの全ての領域に燃焼圧力が格納されたか否かを判断する。
【００９３】
すなわち、上述のように上記燃焼圧力変動率算出許可フラグＦDATAは、燃焼圧力Ｐのサンプリング数ＣNがシフトレジスタによって可能なデータ取扱数に対応する設定数に達したとき、セットされる。
【００９４】
従って、ＦDATA＝１のときには、既に順次サンプリングした燃焼圧力データによってシフトレジスタの全ての領域に燃焼圧力が格納されているため、ステップS42へジャンプして、ステップS42以降の処理により、シフトレジスタに格納されている各燃焼圧力Ｐを平均処理して燃焼圧力平均値Ｐaveを算出すると共に該燃焼圧力平均値Ｐaveに対する燃焼圧力分散値Ｐsigを算出する。そして、この燃焼圧力平均値Ｐave及び燃焼圧力分散値Ｐsigに基づいて燃焼圧力変動率Ｐｘを算出し、この燃焼圧力変動率Ｐｘをリーン限界を判断するための判定値Ｐｘｓと比較することでリーン限界か否かを判別する。そして、燃焼圧力変動率Ｐｘが判定値Ｐｘｓを上回るとき、リーン限界と判断して上記リーン限界補正値ＫSURGEを減少修正し、また、燃焼圧力変動率Ｐｘが判定値Ｐｘｓ以下のとき、非リーン限界と判断してリーン限界補正値ＫSURGEを増加修正する。
【００９５】
一方、上記ステップS37においてＦDATA＝０のときには、ステップS38へ進み、ステップS38，S39で、燃焼圧力Ｐのサンプリング数ＣNが、シフトレジスタによって可能なデータ取扱数に対応する設定数Ｎに達したか否かを判断する。すなわち、ステップS38では、上記サンプリング数ＣNをカウントアップし（ＣN←ＣN＋１）、続くステップS39で、このサンプリング数ＣNを上記設定数Ｎと比較する。
【００９６】
そして、ＣN＜Ｎのときには、そのままルーチンを抜け、ＣN≧Ｎで燃焼圧力Ｐのサンプリング数ＣNが設定数Ｎに達し、順次サンプリングした燃焼圧力データによってシフトレジスタの全ての領域に燃焼圧力Ｐが格納されたとき、ステップS39からステップS40へ進み、燃焼圧力変動率算出許可フラグＦDATAをセットし（ＦDATA←１）、続くステップS41で、上記サンプリング数ＣNをクリアして、ステップS42へ進む。
【００９７】
そして、ステップS42で、シフトレジスタに格納されている全ての燃焼圧力Ｐを単純平均して燃焼圧力平均値Ｐaveを算出し（Ｐave←（Ｐ1＋Ｐ2＋Ｐ3＋…＋ＰN-1＋ＰN）／Ｎ）、ステップS43で、上記各燃焼圧力Ｐを用い、この燃焼圧力平均値Ｐaveに対する燃焼圧力の分散度合いを表す燃焼圧力分散値Ｐsigを、次式により算出する。
【００９８】
【数１】
0004263258.tif 000002
次いでステップS44で、この燃焼圧力分散値Ｐsigを上記燃焼圧力平均値Ｐaveにより除算して燃焼圧力変動値Ｐｘを算出して（Ｐｘ←Ｐsig／Ｐave）、ステップS45へ進む。
【００９９】
ステップS45では、エンジン運転状態としてエンジン回転数ＮEとエンジン負荷を表す前記基本燃料噴射パルス幅Ｔｐとに基づいて判定値テーブルを検索し補間計算によりリーン限界を判定するための判定値Ｐｘｓを設定する。
【０１００】
上記判定値テーブルは、エンジン負荷を表す基本燃料噴射パルス幅Ｔｐとエンジン回転数ＮEとによる領域毎に、空燃比リーンによる失火限界すなわちリーン限界での燃焼圧力変動率を予めシミュレーション或いは実験等により求め、このリーン限界での燃焼圧力変動率を判定値Ｐｘｓとして、基本燃料噴射パルス幅Ｔｐとエンジン回転数ＮEとをパラメータとするテーブルとして設定し、ＲＯＭ５２の一連のアドレスにストアされているものである。
【０１０１】
上記判定値テーブルの一例を、図１０に示す。この判定値テーブルには、基本燃料噴射パルス幅Ｔｐが大きくエンジン回転数ＮEが高いほど、すなわち高負荷高回転であるほど、大きい値の判定値Ｐｘｓがメモリされている。
【０１０２】
すなわち、リーン限界はエンジン運転領域毎に異なり、また、燃焼圧力変動率Ｐｘには、失火による燃焼圧力変動の他に、各気筒毎の燃焼圧力のばらつきが含まれている。この各気筒毎の燃焼圧力のばらつきは、吸入管形状の複雑化や気筒間の吸気干渉等による各気筒毎の吸気分配率の相違、冷却水による冷却順路によって生じる各気筒毎の燃焼圧力の相違、各気筒の燃焼室容積やピストン形状の製造上のばらつき、インジェクタの製造誤差等による燃料噴射量の違いから生じる各気筒の空燃比の僅かなばらつき、これらに起因して生じ、また、エンジン運転状態が高負荷高回転であるほど、これらによる影響が大きくなり、燃焼圧力のばらつきが大きくなる。
【０１０３】
従って、これに対応してエンジン運転状態が高負荷高回転であるほど、判定値Ｐｘｓを大きく設定することでリーン限界の誤判定を防止することが可能となる。
【０１０４】
次いでステップS46へ進み、上記ステップS44で算出した燃焼圧力変動率Ｐｘを、エンジン運転状態に基づいて設定した上記判定値Ｐｘｓと比較する。
【０１０５】
そして、Ｐｘ＞Ｐｘｓで燃焼圧力変動率Ｐｘが判定値Ｐｘｓを上回るとき、燃焼が不安定化して燃焼圧力変動が増大しリーン限界に達したと判断して、ステップS47へ進み、エンジン運転領域に応じ適正リーン空燃比を得るための燃料減量率を定める上記基本減量値ＫLNMAPをリーン限界に応じ補正するリーン限界補正値ＫSURGEから所定値ＳＵＲＧ２を減算し、該リーン限界補正値ＫSURGEを減少修正して（ＫSURGE←ＫSURGE−ＳＵＲＧ２）、ルーチンを抜ける。
【０１０６】
ここで、上記リーン限界補正値ＫSURGEは、後述の目標当量比算出ルーチンにおいて目標リーン減量係数ＫLEANの演算式に組み込まれ（図５のステップS55）、エンジン運転状態に応じて設定された基本減量値ＫLNMAPに該リーン限界補正値ＫSURGEを乗算して目標リーン減量係数ＫLEANが算出される。さらに、この目標リーン減量係数ＫLEANが目標当量比算出ルーチンで目標当量比ＫTGTの演算式においてマイナス項で与えられ（図５のステップS56）、この目標当量比ＫTGTが、燃料噴射量設定ルーチンにおいて燃料噴射量を定める燃料噴射パルス幅Ｔｉの演算式に組み込まれることで（図８のステップS87）、燃料噴射量が上記所定値ＳＵＲＧ２に対応する分、増量補正されて、空燃比が所定値ＳＵＲＧ２による所定割合でリッチ側に修正され、空燃比リーンの度合いが減少される。これにより、リーン限界を超えたことによる燃焼状態の悪化や失火等が抑制され、リーンバーン時の燃焼状態の安定化が図られる。
【０１０７】
尚、ここで上記当量比は、空気過剰率λの逆数１／λであり、空気過剰率λは、λ＝実空燃比／理論空燃比である。従って、上記目標当量比ＫTGTは、理論空燃比／目標空燃比として表される。
【０１０８】
一方、上記ステップS46においてＰｘ≦Ｐｘｓで燃焼圧力変動率Ｐｘが判定値Ｐｘｓ以下の時には、非リーン限界でありリーン限界まで余裕があると判断して、ステップS48へ進み、上記リーン限界補正値ＫSURGEに所定値ＳＵＲＧ１を加算し、該リーン限界補正値ＫSURGEを増加修正して（ＫSURGE←ＫSURGE＋ＳＵＲＧ１）、ルーチンを抜ける。
【０１０９】
その結果、非リーン限界時には、燃料噴射量が上記所定値ＳＵＲＧ１に対応する分、更に減量補正されて、空燃比が所定値ＳＵＲＧ１による所定割合でよりリーン側に修正され、空燃比リーンの度合いが増加される。これにより、リーン限界に余裕のあるときには、リーン限界に達するまで燃料減量補正され、リーンバーン時の燃焼状態の安定を維持しつつ、燃費の向上及び排気エミッションの改善（特に、ＮＯｘの低減）が図られる。
【０１１０】
従って、リーン限界に応じて上記リーン限界補正値ＫSURGEを修正することで、リーン限界に対応する適正なリーン空燃比での運転を行うことが可能となる。
【０１１１】
また、空気過剰率の逆数で表され燃料噴射量を空燃比補正するための目標当量比ＫTGTを算出するに際し、リーンバーンに対応して燃料噴射量を減量補正し空燃比をリーン補正するための目標リーン減量係数ＫLEANを、エンジン運転状態に応じて設定される各種補正項に対しマイナス項で与える。更に、この目標リーン減量係数ＫLEANは、エンジン運転領域に応じ適正リーン空燃比を得るための燃料減量率を定める基本減量値ＫLNMAPをエンジン運転状態に基づいて設定し、この基本減量値ＫLNMAPを、燃焼圧力変動率Ｐｘに基づくリーン限界判別結果に応じて増減修正して設定されるリーン限界補正値ＫSURGEにより補正して設定される。
【０１１２】
従って、ダイナミックレンジすなわちエンジン領域間における変化量の大きい目標空燃比を直接採用することなく実現でき、リーンバーンに対応して空燃比をリーン補正するための目標リーン減量係数ＫLEANを、燃料噴射量を空燃比補正するための目標当量比ＫTGTの一つの補正項として該目標当量比ＫTGTの演算式に組み込み、この目標リーン減量係数ＫLEANの設定に際して、上記基本減量値ＫLNMAPにリーン限界に応じて修正設定されるリーン限界補正値ＫSURGEを乗算して補正するため、目標当量比ＫTGTの演算式中の一つの補正項によるダイナミックレンジの小さい部分的な補正で対応することが可能となり、エンジン運転領域毎に要求される目標空燃比が大きく相違してもリーン限界に対する空燃比補正を的確に行うことができ、制御収束性及び空燃比制御性を向上することが可能となる。
【０１１３】
また、燃焼状態を表す直接的なパラメータである最大燃焼圧力を得る所定クランク角毎の燃焼圧力Ｐを採用し、且つ、上記設定数Ｎによる所定期間における各気筒の燃焼圧力Ｐを平均処理した燃焼圧力平均値Ｐaveと、該燃焼圧力平均値Ｐaveに対する燃焼圧力分散値Ｐsigとにより燃焼圧力変動率Ｐｘを算出し、この燃焼圧力変動率Ｐｘに基づいてリーン限界を判断するので、的確に燃焼状態を判断することができ、且つ、一時的な燃焼圧力変動の影響を排除して適正にリーン限界を判断することが可能となる。更に、この判別結果に基づいて上記リーン限界補正値ＫSURGEを修正するため、リーンバーンに対応する空燃比リーン制御時には、常にリーン限界に相当する適正なリーン空燃比を得ることが可能となる。
【０１１４】
そして、以上のリーン限界補正値算出ルーチンにおいてリーン限界の判別結果に応じて増減修正されたリーン限界補正値ＫSURGEが、図５に示す目標当量比算出ルーチンにおいて読み出され、燃料減量により空燃比をリーンにするためのリーン減量係数ＫLEANの算出に用いられる。そして、このリーン減量係数ＫLEANが、目標当量比ＫTGTの演算式においてマイナス項で与えられ（図５のステップS56）、この目標当量比ＫTGTが、燃料噴射量設定ルーチンにおいて燃料噴射量を定める燃料噴射パルス幅Ｔｉの演算式に組み込まれることで（図８のステップS87）、燃料噴射量が減量補正され、空燃比がリーンに制御される。
【０１１５】
次に、図５の目標当量比算出ルーチンについて説明する。
【０１１６】
この目標当量比算出ルーチンは、システムイニシャライズ後、所定周期毎に実行され、ステップS51で、エンジン回転数ＮEとエンジン負荷を表す基本燃料噴射パルス幅Ｔｐとに基づいてＲＯＭ５２に格納されているフル増量係数テーブルを参照してフル増量係数ＫFULLを設定する。
【０１１７】
上記フル増量係数ＫFULLは、エンジン運転状態が高回転及び高負荷との少なくとも一方の状態のときに、燃料増量補正により触媒温度の異常上昇を防止して触媒を保護すると共にエンジン出力を確保するためのものである。
【０１１８】
上記フル増量係数テーブルの一例を、ステップS51中に示す。このフル増量係数テーブルにおいては、基本燃料噴射パルス幅Ｔｐが大きいエンジン高負荷領域及びエンジン高回転領域との少なくとも一方の領域にあるとき、フル増量係数ＫFULLが、ＫFULL＞０に設定される。そして、この領域がフル増量係数ＫFULLにより燃料増量補正が行われる、いわゆるフル増量領域となる。このフル増量領域外においては、フル増量係数ＫFULLが、ＫFULL＝０に設定され、フル増量係数ＫFULLによる燃料増量補正は行われない。また、フル増量係数テーブルには、基本燃料噴射パルス幅Ｔｐが大きくエンジン回転数ＮEが高いほど、すなわち高負荷高回転であるほど、大きい値のフル増量係数ＫFULLがメモリされている。
【０１１９】
続くステップS52では、始動後増量係数ＫASを設定する。この始動後増量係数ＫASは、エンジン始動直後のエンジン回転数の安定性を確保するためエンジン始動直後から所定期間燃料増量補正を行うためのもので、冷却水温センサ３１による冷却水温度ＴWに基づいて初期値を設定し、ステップS52中に示すように、スタータスイッチ４１のＯＦＦによるエンジン始動後、ＫAS＝０になるまで漸次的に減少される。
【０１２０】
次いでステップS53で、冷却水温度ＴWに基づいてテーブル参照により水温増量係数ＫTWを設定する。この水温増量係数ＫTWは、エンジン冷態時の運転性を確保するための燃料増量率を定めるものであり、ステップS53中に示すように、冷却水温度ＴWが低いほど、大きい値の水温増量係数ＫTWがテーブルにストアされている。
【０１２１】
そして、ステップS54で、エンジン運転状態としてエンジン負荷を表す基本燃料噴射パルス幅Ｔｐとエンジン回転数ＮEとに基づいて基本減量値テーブルを検索し、エンジン運転領域に応じ適正リーン空燃比を得るための燃料減量率を定める基本減量値ＫLNMAPを設定する。
【０１２２】
上記基本減量値テーブルは、エンジン負荷を表す基本燃料噴射パルス幅Ｔｐとエンジン回転数ＮEとによる領域毎に、適正空燃比を得るに的確な燃料減量率を予めシミュレーション或いは実験等により求め、この燃料減量率に対応し当量比に対する減算値を基本減量値ＫLNMAPとして、基本燃料噴射パルス幅Ｔｐとエンジン回転数ＮEとをパラメータとするテーブルとして設定し、ＲＯＭ５２の一連のアドレスにストアされているものである。
【０１２３】
上記基本減量値テーブルの一例を、図１１に示す。同図に示すように、極低負荷低回転領域及び高負荷領域においては、空燃比をストイキオ（或いはリッチ）に制御する領域であり、基本減量値ＫLNMAPが、ＫLNMAP＝０に設定され、基本減量値ＫLNMAPによる燃料減量補正無しの状態に設定される。また、極低負荷低回転領域及び高負荷領域を除く低負荷及び中負荷領域がリーン空燃比によりリーンバーンを行うリーンバーン領域であり、この領域において上記基本減量値ＫLNMAPが、ＫLNMAP＞０に設定されて、燃料減量補正が行われ空燃比がリーンに制御される。
【０１２４】
すなわち、リーンバーンを行うリーンバーン領域においては、上記リーン限界補正値ＫSURGEの補正対象となる基本減量値ＫLNMAPが、ＫLNMAP＝０．３１〜０．４０の範囲で設定され、目標空燃比よりもダイナミックレンジが著しく狭い。
【０１２５】
従って、エンジン運転領域毎に要求される目標空燃比が大きく相違しても、このリーン限界補正値ＫSURGEによるリーン限界に対する空燃比補正が迅速且つ的確に行われ、エンジン運転領域の移行により目標空燃比が変化しても早期に追従し制御収束性及び空燃比制御性の向上を図ることが可能となる。
【０１２６】
次いでステップS55へ進み、上記リーン限界補正値算出ルーチンによりリーン限界に応じて修正設定されたリーン限界補正値ＫSURGEを読み出し、上記ステップS54においてエンジン運転状態に基づいて設定した基本減量値ＫLNMAPに上記リーン限界補正値ＫSURGEを乗算して、該基本減量値ＫLNMAPを上記リーン限界補正値ＫSURGEにより補正し目標リーン減量係数ＫLEANを設定する（ＫLEAN←ＫLNMAP×ＫSURGE）。
【０１２７】
そして、ステップS56で、エンジン運転状態に応じて設定された各種補正項に対し上記目標リーン減量係数ＫLEANを減算項として与え空気過剰率λの逆数として表される目標当量比ＫTGTを算出する。すなわち、上記フル増量係数ＫFULL、始動後増量係数ＫAS、水温増量係数ＫTW、及び上記目標リーン減量係数ＫLEANによって、目標空燃比を得るための補正係数として空気過剰率の逆数として表される目標当量比ＫTGTを次式により算出し、ルーチンを抜ける。
【０１２８】
ＫTGT←１＋ＫFULL＋ＫAS＋ＫTW−ＫLEAN
また、図６及び図７に示す空燃比フィードバック補正係数設定ルーチンにおいて、リニアＯ2センサ３２の出力電圧ＶＯ2に基づいて実空気過剰率の逆数としての排気当量比ＥＸＲを検出し、この排気当量比ＥＸＲと上記目標当量比ＫTGTとの比較結果に応じて空燃比フィードバック補正係数ＬＡＭＢＤＡを設定する。そして、エンジン運転状態に基づいて設定した基本燃料噴射量を定める基本燃料パルス幅Ｔｐを、上記目標当量比ＫTGT及び上記空燃比フィードバック補正係数ＬＡＭＢＤＡによって補正してエンジンへ供給する最終的な燃料噴射量を定める燃料噴射パルス幅Ｔｉを設定する。
【０１２９】
次に、図６及び図７の空燃比フィードバック補正係数設定ルーチンについて説明する。
【０１３０】
この空燃比フィードバック補正係数設定ルーチンは、システムイニシャライズ後、所定周期毎に実行され、先ず、ステップS61〜S63で、空燃比フィードバック条件が成立しているか否かを判断する。この空燃比フィードバック条件は、ステップS61で初期条件を判断し、ＮE≠０のエンジン回転状態で、且つスタータスイッチ４１がＯＦＦ、且つ前記始動後時間計時用タイマにより計時されるスタータスイッチ４１のＯＦＦによるエンジン始動後の時間が設定時間（例えば、４sec）以上経過しており、初期条件が非成立のとき、且つ、ステップS62でリニアＯ2センサ３２の出力電圧ＶＯ２が設定値以上或いは所定範囲の状態が設定時間以上継続しておりリニアＯ2センサ３２が活性状態と判断され、且つ、ステップS63でクランプ条件非成立のエンジン定常運転状態のとき、空燃比フィードバック条件成立と判断する。
【０１３１】
上記ステップS61で、ＮE＝０のエンジン非回転状態、或いはスタータスイッチ４１がＯＮのエンジンクランキング時、或いはエンジン始動後の時間が設定時間に達しておらず、初期条件の成立時、或いはステップS62でリニアＯ2センサ３２が不活性状態のときには、ステップS64へ進み、空燃比フィードバック補正係数ＬＡＭＢＤＡを、ＬＡＭＢＤＡ＝１．０に固定してルーチンを抜ける。また、上記ステップS63で、加減速中、燃料カット中等、エンジン過渡運転状態のクランプ条件の成立時には、ステップS65へ進み、空燃比フィードバック補正係数ＬＡＭＢＤＡを所定値（通常、１．０）にクランプしてルーチンを抜ける。その結果、空燃比フィードバック条件の非成立時には、空燃比オープンループ制御となる。
【０１３２】
一方、上記ステップS61〜S63の判断により空燃比フィードバック条件の成立時には、ステップS66へ進み、ステップS66以下の処理によりリニアＯ2センサ３２の出力電圧に基づき検出した排気当量比ＥＸＲと上記目標当量比算出ルーチンにおいて算出された目標当量比ＫTGTとの比較結果に応じ比例積分制御（ＰＩ制御）によって空燃比フィードバック補正係数ＬＡＭＢＤＡを設定する。
【０１３３】
ステップS66では、リニアＯ2センサ３２の出力電圧ＶＯ2を読み込み、リニアＯ2センサ出力電圧ＶＯ2に基づいてテーブル参照等によって排気当量比ＥＸＲを検出する。
【０１３４】
すなわち、リニアＯ2センサ３２の出力特性は、図１２に示すように、排気当量比ＥＸＲ＝１／λ（＝理論空燃比／実空燃比）に対しリニアな出力電圧ＶＯ2を出力する。従って、同図の実線で示すリニアＯ2センサ３２の初期特性、中央値特性におけるリニアＯ2センサ出力電圧ＶＯ2に対応する排気当量比ＥＸＲを、予め実験等により求め、ステップS66中に示すように、リニアＯ2センサ出力電圧ＶＯ2をパラメータとするテーブルとして設定し、ＲＯＭ５２の一連のアドレスにメモリしておくことで、リニアＯ2センサ出力電圧ＶＯ2に基づいてテーブル参照により容易に排気当量比ＥＸＲを検出することが可能となる。
【０１３５】
尚、このリニアＯ2センサ３２の出力特性は経時変化やばらつき等によって変化するが、このリニアＯ2センサ３２の出力電圧ＶＯ2に基づく排気当量比ＥＸＲと上記目標当量比ＫTGTとの比較結果に応じて空燃比フィードバック補正係数ＬＡＭＢＤＡを設定することで補償される。
【０１３６】
すなわち、上記目標当量比ＫTGTにおいて、リーンバーンに対応して空燃比をリーン補正する目標リーン減量係数ＫLEANがエンジン運転状態に応じて設定される各種補正項に対してマイナス項で与えられる（図５のステップS56）。更に、この目標リーン減量係数ＫLEANは、エンジン運転状態に応じて設定される基本減量値ＫLNMAPを、燃焼圧力変動率Ｐｘに基づくリーン限界判別結果に応じて設定されるリーン限界補正値ＫSURGEによって補正して設定される。そして、この目標当量比ＫTGTとリニアＯ2センサ３２の出力電圧ＶＯ2に基づいて検出した排気当量比ＥＸＲとの比較結果に応じ、燃料噴射量をフィードバック補正するための空燃比フィードバック補正係数ＬＡＭＢＤＡを設定することで、リニアＯ2センサ３２の出力特性が、図１２に実線で示す初期特性、中央値特性に対し、同図に破線で示すように、経時変化やばらつき等によって変化し、空燃比フィードバックの初期目標値に対し目標値が変化しても、リーン限界補正により目標空燃比を得るための目標当量比ＫTGTが修正され、この目標当量比ＫTGTとの比較結果に応じて設定される空燃比フィードバック補正係数ＬＡＭＢＤＡが修正される。その結果、図１２に示すように、空燃比フィードバックの初期目標値とこのリーン限界補正後の目標値とにおいて、目標とするリーン運転時空燃比が一致し、目標とするリーン運転時空燃比を適切に得ることが可能となる。
【０１３７】
従って、リーン限界検出制御による目標当量比ＫTGTの補正にて的確に対応されて、この目標当量比ＫTGTとリニアＯ2センサ３２の出力電圧ＶＯ2による排気当量比ＥＸＲとの比較結果に応じて空燃比フィードバック補正係数ＬＡＭＢＤＡを設定することで、高い空燃比フィードバック制御精度を維持することが可能となり、経時変化やばらつき等によるリニアＯ2センサ３２の出力特性の変化に対応して適正に空燃比フィードバック制御を行うことが可能となる。
【０１３８】
そして、ステップS67で、上記目標当量比算出ルーチンにおいて設定された目標当量比ＫTGTを読み出し、上記ステップS66で検出した排気当量比ＥＸＲを、該目標当量比ＫTGTと比較する。
【０１３９】
そして、ＥＸＲ＞ＫTGTで、目標当量比ＫTGTにより定まる目標空燃比に対して排気当量比ＥＸＲによる実空燃比がリッチのときには、ステップS68へ進み、反転初回判別フラグＦRを参照する。
【０１４０】
この反転初回判別フラグＦRは、目標当量比ＫTGTと排気当量比ＥＸＲとの比較により排気当量比ＥＸＲが目標当量比ＫTGTを横切った初回、すなわち目標当量比ＫTGTにより定まる目標空燃比に対し排気当量比ＥＸＲによる実空燃比がリーンからリッチに反転した初回、或いはリッチからリーンに反転した初回を判断するためのフラグであり、ＥＸＲ≦ＫTGTからＥＸＲ＞ＫTGTとなった後、すなわち目標空燃比に対し実空燃比がリーンからリッチに反転した後に０→１とされ、ＥＸＲ＞ＫTGTからＥＸＲ≦ＫTGTとなり目標空燃比に対し実空燃比がリッチからリーンに反転した後に１→０とされる。
【０１４１】
従って、ＥＸＲ＞ＫTGTで、且つＦR＝０のときには、目標空燃比に対し実空燃比がリーンからリッチに反転した初回であるため、上記ステップS68からステップS69へ進み、エンジン回転数ＮEとエンジン負荷を表す基本燃料噴射パルス幅Ｔｐとに基づいてテーブル参照により空燃比フィードバック補正係数ＬＡＭＢＤＡをマイナス方向にスキップさせるためのＰＩ制御の比例定数ＰDを設定する。
【０１４２】
ステップS69中に示すように、上記テーブルには、基本燃料噴射パルス幅Ｔｐが増加しエンジン回転数ＮEが高いほど、すなわち高負荷高回転であるほど、大きい値の比例定数ＰDがメモリされている。
【０１４３】
すなわち、エンジン運転状態が高負荷高回転であるほど、比例定数ＰDを大きくすることで、排気当量比ＥＸＲの目標当量比ＫTGTに対する収束性を向上し、逆に、低負荷低回転であるほど、比例定数ＰDを小さくすることで、低負荷低回転域での空燃比フィードバック制御による過補正を防止すると共に空燃比の安定性を向上する。
【０１４４】
そして、ステップS70で、空燃比フィードバック補正係数ＬＡＭＢＤＡを上記比例定数ＰDによりマイナス方向へスキップさせ（ＬＡＭＢＤＡ←ＬＡＭＢＤＡ−ＰD）、ステップS71で、反転初回判別フラグＦRをセットして（ＦR←１）、ルーチンを抜ける。
【０１４５】
また、上記ステップS67，S68において、ＥＸＲ＞ＫTGTで目標当量比ＫTGTにより定まる目標空燃比に対して排気当量比ＥＸＲによる実空燃比がリッチで、且つＦR＝１のときには、既に空燃比フィードバック補正係数ＬＡＭＢＤＡに対し比例定数ＰDによるマイナス方向へのスキップが実行されているため上記ステップS68からステップS72へ進み、エンジン回転数ＮEとエンジン負荷を表す基本燃料噴射パルス幅Ｔｐとに基づいてテーブル参照により空燃比フィードバック補正係数ＬＡＭＢＤＡを漸次的に減少させるためのＰＩ制御の積分定数ＩDを設定する。
【０１４６】
ステップS72中に示すように、このテーブルには、基本燃料噴射パルス幅Ｔｐが増加しエンジン回転数ＮEが高いほど、すなわち高負荷高回転であるほど、大きい値の積分定数ＩDがメモリされている。
【０１４７】
すなわち、上記比例定数ＰDと同様に、エンジン運転状態が高負荷高回転であるほど、積分定数ＩDを大きくすることで、排気当量比ＥＸＲの目標当量比ＫTGTに対する収束性を向上し、逆に、低負荷低回転であるほど、積分定数ＩDを小さくすることで、低負荷低回転域での空燃比フィードバック制御による過補正を防止すると共に空燃比の安定性を確保する。
【０１４８】
そして、ステップS73で、空燃比フィードバック補正係数ＬＡＭＢＤＡを上記積分定数ＩDによりルーチン実行毎に漸次減少させ（ＬＡＭＢＤＡ←ＬＡＭＢＤＡ−ＩD）、上記ステップS71を経てルーチンを抜ける。
【０１４９】
一方、上記ステップS67において、ＥＸＲ≦ＫTGTで目標当量比ＫTGTにより定まる目標空燃比に対して排気当量比ＥＸＲによる実空燃比がリーンのときには、ステップS74へ分岐し、同様に反転初回判別フラグFRを参照する。そして、目標空燃比に対し実空燃比がリーンで、且つＦR＝１のときには、目標空燃比に対し実空燃比がリッチからリーンに反転した初回であるため、上記ステップS74からステップS75へ進み、エンジン回転数ＮEと基本燃料噴射パルス幅Ｔｐとに基づいてテーブル参照により空燃比フィードバック補正係数ＬＡＭＢＤＡをプラス方向にスキップさせるためのＰＩ制御の比例定数ＰUを設定する。
【０１５０】
ステップS75中に示すように、上記テーブルには、上述のマイナス方向へのスキップを行わせるための比例定数ＰDと同様に、基本燃料噴射パルス幅Ｔｐが増加しエンジン回転数ＮEが高いほど、すなわち高負荷高回転であるほど、大きい値の比例定数ＰUがメモリされている。
【０１５１】
そして、ステップS76で、空燃比フィードバック補正係数ＬＡＭＢＤＡを上記比例定数ＰUによりプラス方向へスキップさせ（ＬＡＭＢＤＡ←ＬＡＭＢＤＡ＋ＰU）、ステップS77で、反転初回判別フラグＦRをクリアして（ＦR←０）、ルーチンを抜ける。
【０１５２】
また、上記ステップS67，S74において、ＥＸＲ≦ＫTGTで目標当量比ＫTGTにより定まる目標空燃比に対して排気当量比ＥＸＲによる実空燃比がリーンで、且つＦR＝０のときには、既に空燃比フィードバック補正係数ＬＡＭＢＤＡに対し比例定数ＰUによるプラス方向へのスキップが実行されているため上記ステップS74からステップS78へ進み、エンジン回転数ＮEと基本燃料噴射パルス幅Ｔｐとに基づいてテーブル参照により空燃比フィードバック補正係数ＬＡＭＢＤＡを漸次的に増加させるためのＰＩ制御の積分定数ＩUを設定する。
【０１５３】
ステップS78中に示すように、上記テーブルには、上述のマイナス方向への積分定数ＩDと同様に、基本燃料噴射パルス幅Ｔｐが増加しエンジン回転数ＮEが高いほど、すなわち高負荷高回転であるほど、大きい値の積分定数ＩUがメモリされている。
【０１５４】
そして、ステップS79で、空燃比フィードバック補正係数ＬＡＭＢＤＡを上記積分定数ＩUによりルーチン実行毎に漸次増加させ（ＬＡＭＢＤＡ←ＬＡＭＢＤＡ＋ＩU）、上記ステップS77を経てルーチンを抜ける。
【０１５５】
以上の排気当量比ＥＸＲと目標当量比ＫTGTとの比較結果に対する空燃比フィードバック補正係数ＬＡＭＢＤＡの設定関係を、図１３のタイムチャートに示す。
【０１５６】
すなわち、比例積分制御によって、ＥＸＲ＞ＫTGTで目標当量比ＫTGTにより定まる目標空燃比に対して排気当量比ＥＸＲによる実空燃比がリッチのときには、空燃比フィードバック補正係数ＬＡＭＢＤＡが減少され、ＥＸＲ≦ＫTGTで目標空燃比に対し実空燃比がリーンのときには空燃比フィードバック補正係数ＬＡＭＢＤＡが増加される。そして、この空燃比フィードバック補正係数ＬＡＭＢＤＡが、燃料噴射パルス幅Ｔｉの演算式に組み込まれることで（図８のステップS87）、ＥＸＲ＞ＫTGTで目標空燃比に対し実空燃比がリッチのときには燃料噴射量が空燃比フィードバック補正係数ＬＡＭＢＤＡによって減量補正され、また、ＥＸＲ≦ＫTGTで目標空燃比に対して実空燃比がリーンのときには燃料噴射量が増量補正され、これによって排気当量比ＥＸＲが目標当量比ＫTGTに収束するよう、すなわち、排気当量比ＥＸＲによる実空燃比が、目標当量比ＫTGTにより定まる目標空燃比に収束するよう制御される。
【０１５７】
そして、上記目標当量比ＫTGT、及び上記空燃比フィードバック補正係数ＬＡＭＢＤＡに応じて、図８に示す燃料噴射量設定ルーチンにおいて、気筒毎にエンジンに供給する最終的な燃料噴射量を定める燃料噴射パルス幅Ｔｉが設定される。
【０１５８】
この燃料噴射量算出ルーチンは、所定周期（例えば、１８０°ＣＡ）毎に実行され、ステップS81で、エンジン回転数ＮEと吸入空気量センサ２７からの出力信号に基づく吸入空気量Ｑとから、基本燃料噴射量を定める基本燃料噴射パルス幅Ｔｐを算出し（Ｔｐ←Ｋ×Ｑ／ＮE；Ｋはインジェクタ特性補正定数）、ステップS82，S83で、それぞれ上記目標当量比ＫTGT、空燃比フィードバック補正係数ＬＡＭＢＤＡを読み出す。
【０１５９】
続くステップS84では、エンジン回転数ＮEとエンジン負荷を表す基本燃料噴射パルス幅Ｔｐとに基づいてバックアップＲＡＭ５４の一連のアドレスからなる空燃比学習値テーブルを参照して空燃比学習値ＫLRを検索し、補間計算により空燃比学習補正係数ＫBLRCを設定して、ステップS85へ進む。この空燃比学習補正係数ＫBLRCの基となる空燃比学習値ＫLRは、周知のように、エンジン回転数ＮEとエンジン負荷を表す基本燃料噴射パルス幅Ｔｐとによるエンジン運転領域毎に、上記空燃比フィードバック補正係数ＬＡＭＢＤＡの所定周期における平均値の基準値に対するずれに応じて学習され、吸入空気量センサ２７等の吸入空気量計測系、及びインジェクタ１１等の燃料供給系の生産時のバラツキや経時劣化等を補正するためのものである。
【０１６０】
そして、ステップS85へ進み、吸入空気量Ｑ、冷却水温度ＴW、及びエンジン回転数ＮEに基づいて、燃料付着補正係数Ｋｘを設定する。この燃料付着補正係数Ｋｘは、周知のように、インジェクタ１１からの噴射燃料の一部が吸気ポート壁面に付着することによる付着燃料量分を補償するためのもので、冷却水温度TWにより基本燃料付着率をテーブル参照等により設定し、この基本燃料付着率をエンジン回転数ＮEに基づき補正して燃料付着率を求め、更に、この燃料付着率と吸入空気量の加重平均値とによって該燃料付着補正係数Ｋｘが設定される。
【０１６１】
次いでステップS86で、バッテリ電圧ＶBに基づきテーブル参照によりインジェクタ１１の無効噴射時間を補償する電圧補正パルス幅ＴSを設定する。そして、ステップS87で、上記基本燃料噴射パルス幅Ｔｐに、上記目標当量比ＫTGT及び空燃比フィードバック補正係数ＬＡＭＢＤＡを乗算して空燃比補正すると共に、空燃比学習補正係数ＫBLRCを乗算して学習補正し、また、上記燃料付着補正係数Ｋｘを乗算して燃料付着補正を行い、更に上記電圧補正パルス幅ＴSを加算して電圧補正し、エンジンへ供給する最終的な燃料噴射量を定める燃料噴射パルス幅Ｔｉを算出する（Ｔｉ←Ｔｐ×ＫTGT×ＬＡＭＢＤＡ×ＫBLRC×Ｋｘ＋ＴS）。
【０１６２】
そして、ステップS88で、上記燃料噴射パルス幅Ｔｉを燃料噴射対象気筒の噴射タイマにセットしてルーチンを抜ける。
【０１６３】
その結果、所定タイミングで上記噴射タイマがスタートされ、上記燃料噴射パルス幅Ｔｉの駆動パルス信号が燃料噴射対象気筒のインジェクタ１１へ出力され、該インジェクタ１１から所定に計量された燃料が噴射される。
【０１６４】
ここで、エンジン運転状態が低負荷及び中負荷のリーンバーン領域にあるときには、燃料減量率を定める基本減量値ＫLNMAPが、ＫLNMAP＞０に設定される。また、このリーンバーン領域においてリーン限界を検出し、このリーン限界に応じてリーン限界補正値ＫSURGEが増減修正される。
【０１６５】
そして、上記基本減量値ＫLNMAPに該リーン限界補正値ＫSURGEを乗算して目標リーン減量係数ＫLEANが算出される。さらに、この目標リーン減量係数ＫLEANが、目標当量比算出ルーチンにおいてエンジン運転状態に応じて設定されるフル増量係数ＫFULL、始動後増量係数ＫAS、及び水温増量係数ＫTW等の各種補正項に対し、目標当量比ＫTGTの演算式においてマイナス項で与えられる（図５のステップS56）。そして、この目標当量比ＫTGTが、燃料噴射量設定ルーチンにおいて燃料噴射量を定める燃料噴射パルス幅Ｔｉの演算式に組み込まれることで（図８のステップS87）、エンジン運転状態がリーンバーン領域にあるときには、燃料噴射量が減量補正され、空燃比がリーンに制御される。
【０１６６】
また、この空燃比リーン運転時において、燃焼圧力変動率Ｐｘを算出し、該燃焼圧力変動率Ｐｘが判定値Ｐｘｓを上回り、リーン限界に達したときには、上記リーン限界補正値ＫSURGEが所定値ＳＵＲＧ２により減少修正される。その結果、燃料噴射量が上記所定値ＳＵＲＧ２に対応する分、増量側に補正されて、空燃比が所定値ＳＵＲＧ２による所定割合でリッチ側に修正され、空燃比リーンの度合いが減少される。これにより、リーン限界を超えたことによる燃焼状態の悪化や失火等が抑制され、リーンバーン時の燃焼状態の安定化が図られる。
【０１６７】
また、燃焼圧力変動率Ｐｘが判定値Ｐｘｓ以下で、リーン限界まで余裕があるときには、上記リーン限界補正値ＫSURGEが所定値ＳＵＲＧ１により増加修正される。その結果、このときには、燃料噴射量が上記所定値ＳＵＲＧ１に対応する分、更に減量補正されて、空燃比が所定値ＳＵＲＧ１による所定割合でよりリーン側に修正され、空燃比リーンの度合いが増加される。これにより、リーン限界に余裕のあるときには、リーン限界に達するまで燃料減量補正され、リーンバーン時の燃焼状態の安定を維持しつつ、燃費の向上及び排気エミッションの改善が図られ、ＮＯｘの低減が可能となる。
【０１６８】
尚、本発明は、上記実施の形態に限定されず、例えば、上記形態においてはエンジン負荷として基本燃料噴射量を定める基本燃料噴射パルス幅Ｔｐを採用しているが、エンジン負荷を表すものであればよく、これに限定されない。
【０１６９】
【発明の効果】
以上説明したように、請求項１記載の発明によれば、燃焼圧力変動率に基づいてリーン限界を判別し、この判別結果に応じてリーン限界補正値を設定する。そして、エンジン運転状態に基づいて設定した基本減量値に上記リーン限界補正値を乗算して目標リーン減量係数を設定し、エンジン運転状態に応じて設定される各種補正項を加算した加算項に対し上記目標リーン減量係数を減算項として与え空気過剰率の逆数として表される目標当量比を算出する。そして、この目標当量比によりエンジン運転状態に基づいて設定した燃料噴射量を補正して、エンジンへ供給する最終的な燃料噴射量を設定するので、リーンバーンに対応して空燃比をリーン補正するための目標リーン減量係数を目標当量比の一つの補正項として目標当量比の演算式に組み込み、このリーン減量係数の設定に際して、基本減量値にリーン限界に応じて設定されるリーン限界補正値を乗算して補正するため、目標空燃比を直接採用することなく実現でき、この目標空燃比全体をリーン限界に応じて補正するのと異なり、目標当量比の演算式中の一つの補正項によるダイナミックレンジの小さい部分的な補正で対応することが可能となり、運転領域毎に要求される目標空燃比が大きく相違してもリーン限界に対する空燃比補正を的確に行うことができ、制御収束性及び空燃比制御性を向上することができる。
【０１７０】
また、１つのリーン限界補正値を全運転領域に反映することができ、制御系を簡素にして実現することが可能となり、エンジン運転状態の変化に伴い運転領域が移行し要求される目標空燃比が大きく変化した場合であっても、１つのリーン限界補正値によってリーン限界に応じて適切に空燃比補正を行うことができる。
【０１７１】
請求項２記載の発明によれば、燃焼圧力変動率に基づいてリーン限界を判別し、この判別結果に応じてリーン限界補正値を修正設定する。そして、エンジン運転状態に基づいて設定した基本減量値に上記リーン限界補正値を乗算して目標リーン減量係数を設定し、エンジン運転状態に応じて設定される各種補正項を加算した加算項に対し上記目標リーン減量係数を減算項として与え空気過剰率の逆数として表される目標当量比を算出する。また、空燃比センサの出力値に基づき排気当量比を検出し、上記目標当量比と排気当量比との比較結果に応じて空燃比フィードバック補正係数を設定する。そして、エンジン運転状態に基づいて設定した燃料噴射量を上記目標当量比及び上記空燃比フィードバック補正係数により補正してエンジンへ供給する最終的な燃料噴射量を設定するので、空燃比センサの出力特性が経時変化やばらつき等によって変化し、空燃比フィードバックの初期目標値に対し目標値が変化しても、上記リーン限界補正値によるリーン限界補正によって目標空燃比を得るための目標当量比が修正され、この目標当量比との比較結果に応じて設定される空燃比フィードバック補正係数が修正される。その結果、空燃比フィードバックの初期目標値とこのリーン限界補正後の目標値とにおいて、目標とするリーン運転時空燃比が一致し、目標とするリーン運転時空燃比を適切に得ることができる。
【０１７２】
従って、上記請求項１記載の発明の効果に加え、リーン限界検出制御による目標当量比の補正にて的確に対応されて、この目標当量比と空燃比センサの出力値に基づき検出した排気当量比との比較結果に応じ空燃比フィードバック補正係数を設定することで、高い空燃比フィードバック制御精度を維持することが可能となり、経時変化やばらつき等による空燃比センサの出力特性の変化に対応して適正に空燃比フィードバック制御を行うことができる効果を有する。
【０１７３】
その際、請求項３記載の発明では、リーン限界補正値の設定に際し、リーン限界と判別されたとき、上記リーン限界補正値を減少修正し、非リーン限界のとき、リーン限界補正値を増加修正するので、上記請求項１或いは請求項２記載の発明の効果に加え、リーン限界のときには、リーン限界補正値の減少修正によって燃料噴射量がリッチ側に修正され空燃比リーンの度合いが減少されて、リーン限界を超えたことによる燃焼状態の悪化や失火等が抑制され、リーンバーン時の燃焼状態の安定化を図ることができる。また、非リーン限界のときには、リーン限界補正値の増加修正によって燃料噴射量が更に減量補正されリーン側に修正されて、空燃比リーンの度合いが増加され、従って、リーン限界に余裕のあるときには、リーン限界に達するまで燃料減量補正され、リーンバーン時の燃焼状態の安定を維持しつつ、燃費の向上及び排気エミッションの改善を図ることができる。
【０１７４】
請求項４記載の発明によれば、リーン限界検出条件を判断し、エンジン運転領域がリーンバーン領域外の時、過渡運転状態時、及び、自動変速機搭載車の場合には変速制御中の時、手動変速機搭載車の場合は変速操作中の時の少なくとも一つの条件が成立するとき、リーン限界の判別を中止し、リーン限界補正値の修正を中止するので、上記請求項１ないし請求項３の何れか一に記載の発明の効果に加え、エンジン運転領域がリーンバーン領域外、或いは過渡運転状態時におけるリーン限界補正値の誤修正を防止することができ、また、変速制御中或いは変速操作中においてエンジン回転数が急変し燃焼圧力変動率が急変することに起因するリーン限界の誤検出を防止して未然にリーン限界補正値の誤修正を防止することができる効果を有する。
【０１７５】
また、請求項５記載の発明では、リーン限界の判別に際し、最大燃焼圧力を得る所定クランク角毎に燃焼行程気筒の燃焼圧力をサンプリングし、この燃焼圧力を平均処理して燃焼圧力平均値を算出すると共に該燃焼圧力平均値に対する燃焼圧力分散値を算出する。そして、この燃焼圧力平均値及び燃焼圧力分散値に基づき算出した燃焼圧力変動率がリーン限界を判定するための判定値を上回るとき、リーン限界と判別するので、上記請求項１ないし請求項４の何れか一に記載の発明の効果に加え、燃焼状態を表す直接的なパラメータである最大燃焼圧力を得る所定クランク角毎の燃焼圧力を採用し、この燃焼圧力の平均値と該燃焼圧力平均値に対する燃焼圧力分散値とにより燃焼圧力変動率を算出し、この燃焼圧力変動率に基づいてリーン限界が判断されるため、的確にエンジン燃焼状態を判断することができ、且つ、一時的な燃焼圧力変動の影響を排除して適正にリーン限界を判断することができる。また、この判別結果に基づいて上記リーン限界補正値が修正されるため、リーンバーンに対応する空燃比リーン制御時には、常にリーン限界に相当する適正なリーン空燃比を得ることができる効果を有する。
【図面の簡単な説明】
【図１】本発明の基本構成図
【図２】気筒判別／エンジン回転数算出ルーチンのフローチャート
【図３】リーン限界検出条件判別ルーチンのフローチャート
【図４】リーン限界補正値算出ルーチンのフローチャート
【図５】目標当量比算出ルーチンのフローチャート
【図６】空燃比フィードバック補正係数設定ルーチンのフローチャート
【図７】空燃比フィードバック補正係数設定ルーチンのフローチャート（続き）
【図８】燃料噴射量設定ルーチンのフローチャート
【図９】クランクパルス、カムパルス、燃焼行程気筒、各気筒の筒内圧力、点火信号、及びインジェクタ駆動信号の関係を示すタイムチャート
【図１０】判定値テーブルの説明図
【図１１】基本減量値テーブルの説明図
【図１２】リニアＯ2センサの出力特性を示す説明図
【図１３】目標当量比と排気当量比との比較結果による空燃比フィードバック補正係数の設定状態を示すタイムチャート
【図１４】エンジンの全体概略図
【図１５】吸気系の要部詳細を示す説明図
【図１６】クランクロータとクランク角センサの正面図
【図１７】カムロータとカム角センサの正面図
【図１８】電子制御系の回路構成図
【図１９】従来例に係り、空燃比によるＮＯｘ排出量、燃費、及び燃焼圧力変動率の関係を示す説明図
【図２０】同上、リニア空燃比センサの出力特性を示す説明図
【図２１】同上、空燃比フィードバック制御を行った場合の補正状態を示す説明図
【符号の説明】
１  リーンバーンエンジン
１１  インジェクタ
３３  筒内圧力センサ
３６  クランク角センサ
５０  電子制御装置（リーン限界判別手段、リーン限界補正値設定手段、目標リーン減量係数設定手段、目標当量比算出手段、燃料噴射量設定手段、排気当量比検出手段、空燃比フィードバック補正係数設定手段）
Ｐｘ  燃焼圧力変動率
ＫSURGE  リーン限界補正値
ＫLNMAP  基本減量値
ＫLEAN  目標リーン減量係数
ＫFULL  フル増量係数（各種補正項）
ＫAS  始動後増量係数（各種補正項）
ＫTW  水温増量係数（各種補正項）
λ  空気過剰率
ＫTGT  目標当量比
Ｔｐ  基本燃料噴射パルス幅（基本燃料噴射量）
Ｔｉ  燃料噴射パルス幅（最終的な燃料噴射量）
ＶＯ2  リニアＯ2センサ出力電圧（空燃比センサの出力値）
ＥＸＲ  排気当量比
ＬＡＭＢＤＡ  空燃比フィードバック補正係数
＃ｎ  燃焼行程気筒
Ｐ  燃焼圧力
Ｐave  燃焼圧力平均値
Ｐsig  燃焼圧力分散値
Ｐｘｓ  判定値
【図１】
0004263258.tif 000003
【図２】
0004263258.tif 000004
【図３】
0004263258.tif 000005
【図４】
0004263258.tif 000006
【図５】
0004263258.tif 000007
【図６】
0004263258.tif 000008
【図７】
0004263258.tif 000009
【図８】
0004263258.tif 000010
【図９】
0004263258.tif 000011
【図１０】
0004263258.tif 000012
【図１１】
0004263258.tif 000013
【図１２】
0004263258.tif 000014
【図１３】
0004263258.tif 000015
【図１４】
0004263258.tif 000016
【図１５】
0004263258.tif 000017
【図１６】
0004263258.tif 000018
【図１７】
0004263258.tif 000019
【図１８】
0004263258.tif 000020
【図１９】
0004263258.tif 000021
【図２０】
0004263258.tif 000022
【図２１】
0004263258.tif 000023