(57)【要約】【課題】ポートウェットの作用に着目することで燃料性状の判定精度を上げ、始動性能の向上と排気エミッションの低減とを両立させる。【解決手段】燃料性状が重質燃料か軽質燃料かの判定実施条件が成立するとき、ポートウェットが同程度の点火回数または噴射回数を１処理単位とするポートウェットサイクルを算出し（Ｓ５）、このポートウェットサイクルの１処理単位毎に、燃料性状を判定して（Ｓ８）噴射量倍率を算出し（Ｓ９）、この噴射量倍率で燃料噴射量を補正する（Ｓ１０）。これにより、燃料性状の判定精度を上げ、始動性能の向上と排気エミッションの低減とを両立させることができる。【選択図】図２
2010037984.tif 000002
【特許請求の範囲】
【請求項１】
吸気系に噴射した燃料の燃料噴射量及び噴射回数に応じて変化するポートウェットを検出するポートウェット検出部と、
上記ポートウェット検出部によって検出されるポートウェットに関連付けて、使用燃料の燃料性状を燃焼状態から判定する燃料性状判定部と、
上記燃料性状判定部によって判定された燃料性状から、上記ポートウェット検出部によって検出されるポートウェットに関連付けて燃料噴射量を補正する燃料噴射量補正部と
を備えることを特徴とするエンジンの制御装置。
【請求項２】
上記ポートウェット検出部は、
上記ポートウェットが同程度である点火回数または噴射回数を１処理単位とするポートウェットサイクルを定義し、該ポートウェットサイクルの１処理単位毎に上記ポートウェットを検出する
ことを特徴とする請求項１に記載のエンジンの制御装置。
【請求項３】
上記ポートウェットサイクルの１処理単位の燃焼状態を検出する期間を更に１処理単位とする燃焼状態検出サイクルを定義して上記ポートウェットサイクルの各１処理単位と上記燃焼状態検出サイクルの各１処理単位とを対応付けし、
上記燃焼状態検出サイクルの開始前を、エンジン始動の初期動作であるエンジンクランキング時に燃料噴射が実施されていない気筒に対する点火の燃焼状態を検出する期間とする
ことを特徴とする請求項２に記載のエンジンの制御装置。
【請求項４】
上記燃料性状判定部は、
上記燃焼状態を数値表現した燃焼状態判定値に対して、重質燃料使用時のリーン燃焼状態を表す閾値以上を経験する回数と、軽質燃料使用時のリッチ燃焼状態を表す閾値以下を経験する回数とを、それぞれ上記燃焼状態検出サイクルの１処理単位毎に計数し、
上記燃焼状態検出サイクルの１処理単位毎に、重質燃料使用時のリーン燃焼状態を表す閾値以上の経験回数が重質燃料の計数判定値以上であれば、重質燃料であると判定し、軽質燃料使用時のリッチ燃焼状態を表す閾値以下の経験回数が軽質燃料の計数判定値以上であれば、軽質燃料であると判定する
ことを特徴とする請求項３に記載のエンジンの制御装置。
【請求項５】
エンジン始動後、初回はエンジン始動前の初期値と上記燃焼状態判定値との間でなまし演算を行った結果を新たな燃焼状態判定値とし、順次、前回のなまし演算結果と今回の燃焼状態判定値との間でなまし演算を行った結果を新たな燃焼状態判定値とする
ことを特徴とする請求項４に記載のエンジンの制御装置。
【請求項６】
重質燃料使用時のリーン燃焼状態を表す閾値及び軽質燃料使用時のリッチ燃焼状態を表す閾値を複数設けた
ことを特徴とする請求項４又は５に記載のエンジンの制御装置。
【請求項７】
上記燃料噴射量補正部は、
重質燃料と軽質燃料との平均的な性状を示す中間燃料使用時の燃料噴射量を基準として上記ポートウェットサイクルの１処理単位毎に重質燃料及び軽質燃料の噴射量倍率を設定し、上記燃料性状判定部によって判定される燃料性状に応じた噴射量倍率に基づいて燃料噴射量を補正する
ことを特徴とする請求項４〜６の何れかに記載のエンジンの制御装置。
【請求項８】
燃料性状が重質燃料から軽質燃料に又は軽質燃料から重質燃料に変化したと判定された場合は、燃料性状を中間燃料に判定し直す
ことを特徴とする請求項７に記載のエンジンの制御装置。
【請求項９】
上記燃焼状態検出サイクルの開始前に上記燃焼状態判定値の値に拘らず失火以外の燃焼状態判定値が得られた場合、上記燃料性状判定部は燃料性状を軽質燃料と判定する
ことを特徴とする請求項７に記載のエンジンの制御装置。
【請求項１０】
上記燃料性状判定部によって判定された燃料性状が重質燃料の場合は、重質燃料の噴射量倍率と中間燃料の噴射量倍率との間で徐々に中間燃料の噴射量倍率の反映率を上げていくなまし演算を行い、なまし演算の結果得られた噴射量倍率で燃料噴射量を補正する
ことを特徴とする請求項７〜９の何れかに記載のエンジンの制御装置。
【請求項１１】
中間燃料の噴射量倍率に収束した時点で燃料性状を中間燃料に更新する
ことを特徴とする請求項１０に記載のエンジンの制御装置。
【請求項１２】
エンジンを始動する直前のエンジン冷却水温度を、上記ポートウェット検出部、上記燃料性状判定部、及び上記燃料噴射量補正部の実施条件として設定する
ことを特徴とする請求項１〜１１の何れかに記載のエンジンの制御装置。
【請求項１３】
上記ポートウェット検出部、上記燃料性状判定部、及び上記燃料噴射量補正部の実施期間を、空燃比フィードバック制御が開始する以前に限定する
ことを特徴とする請求項１２に記載のエンジンの制御装置。
【請求項１４】
上記燃料噴射量補正部によって空燃比フィードバック制御開始直前までに得られた噴射量倍率を、空燃比フィードバック制御開始以降に徐変させて固定値に収束させる
ことを特徴とする請求項１３に記載のエンジンの制御装置。
【請求項１５】
エンジンを始動する直前に燃料性状の学習値を読み出して用いる
ことを特徴とする請求項１〜１４の何れかに記載のエンジンの制御装置。
【請求項１６】
上記燃料性状の学習値を反映する条件としてエンジンを始動する直前のエンジン冷却水温度の範囲を設定し、設定した温度範囲外のときには、上記燃料噴射量補正部による燃料噴射量補正を実施しない
ことを特徴とする請求項１５に記載のエンジンの制御装置。
【請求項１７】
上記燃料性状の学習値に書き換え経験がない場合は燃料性状に重質燃料を設定し、上記燃料性状の学習値が軽質燃料の場合は燃料性状に重質燃料と軽質燃料との平均的な性状を示す中間燃料を設定する
ことを特徴とする請求項１５に記載のエンジンの制御装置。
【請求項１８】
上記燃料性状の学習値を更新する期間を、エンジン始動初期の期間に限定する
ことを特徴とする請求項１５〜１７の何れかに記載のエンジンの制御装置。
【請求項１９】
重質燃料と軽質燃料との平均的な性状を示す中間燃料の噴射量倍率の反映率を上げていく速度を上記ポートウェットサイクルの１処理単位毎に設定可能とし、エンジン始動初期においては比較的速く設定する
ことを特徴とする請求項１８に記載のエンジンの制御装置。
【請求項２０】
エンジン始動後に運転状態の変化を経験した場合、上記燃料性状の学習値の更新を禁止する
ことを特徴とする請求項１８又は１９に記載のエンジンの制御装置。
【請求項２１】
上記燃料性状の学習値の更新期間内に、上記噴射量倍率が重質燃料と軽質燃料との平均的な性状を示す中間燃料に対する設定範囲内に収束した場合には、中間燃料を燃料性状の学習値として記憶保持する
ことを特徴とする請求項１８〜２０の何れかに記載のエンジンの制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、燃料性状に応じて燃料噴射量を制御するエンジンの制御装置に関する。
【背景技術】
【０００２】
従来、エンジン始動時における回転数挙動から燃料性状を判定し、この燃料性状の判定結果に基づき、燃料噴射制御を好適に実施する技術が知られている。このエンジン回転数の挙動から燃料性状を判定し、燃料噴射量制御に反映する技術は、「重質燃料は揮発性が低いため、燃焼状態はリーンになり回転数挙動は不安定になる。逆に、軽質燃料は揮発性が高いため、燃焼状態はリッチになり回転数挙動は安定する。」といった考えに基づいており、回転数挙動が不安定である場合に重質燃料を使用しているものと判断して燃料噴射量を増量制御する。
【０００３】
また、一般のガソリンエンジンにおいては、吸気ポート噴射と呼ばれる燃料噴射が行われており、吸気ポートに配置されたインジェクタからエンジン燃焼室に配置された吸気弁に向けて燃料が噴射されている。このような吸気ポート噴射においては、噴射された燃料の一部が吸気弁や吸気ポートに付着した後、気化してシリンダへ吸入される。気化せずに吸気ポートや吸気弁に付着している燃料は、ポートウェットと呼ばれる。
【０００４】
冷態始動時はポート温度が低いために噴射した燃料は十分に気化することが出来ない。燃料気化不足分を補うためにエンジン暖機後に較べ、より多くの燃料を噴射する必要があり、ポートウェットも増すことになる。ポートウェットは次サイクルの燃焼に寄与するので、例えば、４気筒エンジンの場合、エンジン始動初期においては４点火毎(または４噴射毎)に段階的に変化すると考えられる。
【０００５】
このポートウェットを考慮して燃料噴射量を補正する技術は、例えば、特許文献１に開示されている。特許文献１の技術では、燃料噴射弁から噴射された燃料がポートウェットとなる割合（付着率）と、壁面に付着した燃料が吸気行程の過程で気化することなくポートウェットのまま残留する割合（残留率）とを用いて、噴射された後の燃料の挙動を表すモデルを作成し、所望の燃料噴射量を精度良く算出するようにしている。
【特許文献１】特開２００５−９４６７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
市場における燃料の性状は、揮発性の高いもの(軽質燃料性状)から低いもの(重質燃料性状)まで広く分布する。このため、エンジン始動初期の段階、つまりポートウェットの影響が大きく変化する段階では、燃料性状を適正に判断して燃料噴射量を適正にする必要がある。特に、揮発性の低い燃料の場合、シリンダへ流入する混合気がリーンとなり、回転数挙動が不安定となる傾向がある。
【０００７】
しかしながら、燃料性状を判定する場合、エンジン始動時の回転数挙動は燃料性状以外の影響も受けることから、前述の考えから逸脱する状況が種々存在する。例えば、インジェクタの油密漏れによって吸気系上流に可燃空気が満たされ、シリンダへ供給される混合気がオーバーリッチになり回転数挙動が不安定になる状況、インジェクタの噴射量ばらつきによって気筒間の空燃比がばらつき、回転数挙動が不安定になる状況、高地においてはエンジンに供給される空気密度が小さいため、十分なパワーが得られず回転数挙動が不安定になる状況、また、機差や経時変化によってエンジンフリクションが異なるため、回転数挙動に相違があること等である。
【０００８】
従って、回転数挙動から燃料性状を精度良く判定することは困難であり、燃料性状が誤って判定される可能性がある。燃料性状の誤判定が生じると、燃料噴射量の制御性が悪化し、排気エミッションが悪化する。一方、エンジン始動後、回転数上昇により負圧が高まると、燃料気化が促進され、燃料噴射量を増量する必要性は徐々になくなる。従って、一義的にポートウェットを考慮するのみでは、燃料増量過多となり、排気エミッションが悪化する虞がある。
【０００９】
本発明は上記事情に鑑みてなされたもので、ポートウェットの作用に着目することで燃料性状の判定精度を上げ、始動性能の向上と排気エミッションの低減とを両立させることのできるエンジンの制御装置を提供することを目的としている。
【課題を解決するための手段】
【００１０】
上記目的を達成するため、本発明によるエンジンの制御装置は、吸気系に噴射した燃料の燃料噴射量及び噴射回数に応じて変化するポートウェットを検出するポートウェット検出部と、上記ポートウェット検出部によって検出されるポートウェットに関連付けて、使用燃料の燃料性状を燃焼状態から判定する燃料性状判定部と、上記燃料性状判定部によって判定された燃料性状から、上記ポートウェット検出部によって検出されるポートウェットに関連付けて燃料噴射量を補正する燃料噴射量補正部とを備えることを特徴とする。
【発明の効果】
【００１１】
本発明によれば、ポートウェットの作用に着目することで燃料性状の判定精度を上げることができ、エンジンの始動性能の向上と排気エミッションの低減とを両立させることができる。
【発明を実施するための最良の形態】
【００１２】
以下、図面を参照して本発明の実施の形態を説明する。図１〜図２０は本発明の実施の一形態に係り、図１はエンジン制御系の構成図、図２はメイン処理を示すフローチャート、図３はイニシャル処理のフローチャート、図４は点火回数算出処理のフローチャート、図５は燃焼状態判定結果取得処理のフローチャート、図６は燃料性状判定実施条件成立判定処理のフローチャート、図７はポートウェットサイクル算出処理のフローチャート、図８は燃焼状態判定値算出処理のフローチャート、図９は燃焼状態判定計数算出処理のフローチャート、図１０は燃料性状判定処理のフローチャート、図１１は噴射量倍率算出処理のフローチャート、図１２は学習値書き込み処理のフローチャート、図１３は噴射量算出処理のフローチャート、図１４は中間燃料の燃料噴射量を基準にした重質燃料及び軽質燃料の噴射量倍率を示す説明図、図１５は燃焼状態判定結果の出力タイミングと各処理タイミングとの関係を示す説明図、図１６は重質燃料から中間燃料への燃料性状判定パターン時に重質燃料判定されない場合の噴射量倍率減衰係数の挙動を示す説明図、図１７は重質燃料から中間燃料への燃料性状判定パターン時に重質燃料判定を繰り返す場合の噴射量倍率減衰係数の挙動を示す説明図、図１８は重質燃料から中間燃料への燃料性状判定パターン時に燃料性状学習値更新期間外で減算量を小さくした場合の噴射量倍率減衰係数の挙動を示す説明図、図１９は重質燃料から中間燃料への燃料性状判定パターン時に燃料性状学習値更新期間内で０近傍まで減算された場合の噴射量倍率減衰係数の挙動を示す説明図、図２０はポートウェットサイクルと燃焼状態検出サイクルとの関係を示す説明図である。
【００１３】
図１において、符号１はエンジンであり、このエンジン１のシリンダブロック２に、複数個のシリンダ３（図においては、１個のみを図示）が設けられている。各シリンダ３内には、ピストン４が往復動可能に配設され、ピストン４の頂面とシリンダヘッド５との間で燃焼室６が形成されている。
【００１４】
また、シリンダヘッド５には吸気ポート７及び排気ポート８が設けられ、これらポート７，８の一端は燃焼室６へ接続され、他端は吸気通路９及び排気通路１０に接続されている。燃焼室６と各ポート７，８との各境界面には、それぞれ、吸気弁１１、排気弁１２が介装され、これらの吸気弁１１及び排気弁１２がシリンダヘッド５に配設された弁駆動機構によって往復駆動され、燃焼室６を開閉する。
【００１５】
吸気通路９には、その上流側からエアフィルタ（図示せず）、スロットルバルブ１３、コレクタ１４、吸気マニホールド１５が設けられ、吸気マニホールド１５が吸気ポート７に接続されている。一方、排気通路１０には、その上流側から、排気ポート８に接続される排気マニホールド１６、触媒コンバータ（図示せず）が設けられている。触媒コンバータには、不完全燃焼成分であるＨＣ（炭化水素）及びＣＯ（一酸化炭素）の酸化と、空気中の窒素と燃え残りの酸素とが反応して生成されるＮｏｘ（窒素酸化物）の還元とを同時に促進する三元触媒が収容されている。
【００１６】
以上のエンジン１には、各種アクチュエータが備えられている。すなわち、スロットルバルブ１３にスロットルアクチュエータ１７が連設され、このスロットルアクチュエータ１７によってスロットルバルブ１３が開閉駆動される。また、吸気マニホールド１５には、吸気弁１１及び吸気ポート７へ向けて燃料を噴射するインジェクタ１８が取り付けられている。
【００１７】
更に、シリンダヘッド５には、燃焼室内に取り込んだ混合気に着火するための点火プラグ１９と、この点火プラグ１９に接続される点火コイル２０とが取り付けられている。点火コイル２０は、点火時に１次電流の通電が遮断され、その２次電流が点火プラグ１９に供給される。
【００１８】
また、エンジン１には、各種センサが取り付けられている。すなわち、シリンダブロック２に、エンジン１の冷却水の温度を検出するための水温センサ２１が取り付けられ、吸気通路９に、吸入空気量を検出するためのエアフロメータ２２、及び吸入空気の温度を検出するための吸気温センサ２３が取り付けられている。
【００１９】
また、スロットルバルブ１３の近傍には、その軸の回転角度を検出するためのスロットル開度センサ２４と、スロットルバルブ１３の全閉状態を検出するためのアイドルスイッチ（図示せず）とが配設されている。また、コレクタ１４には、その内部の圧力を検出するための吸気圧センサ２５が取り付けられている。
【００２０】
また、排気マニホールド１６には、排ガス中の酸素濃度（或いは、未燃ガスである一酸化炭素の濃度）に比例して広域で且つリニアな空燃比信号を出力する空燃比（Ａ／Ｆ）センサ２６が取り付けられている。更に、エンジン１のクランクシャフトの近傍には、エンジン回転数を検出するためのクランク角センサ２７が配設されている。
【００２１】
次に、エンジン１の電子制御系について説明する。本発明に係る電子制御系は、燃焼状態検出装置３０及びエンジン制御装置（ＥＣＵ）５０によって代表される。以下、これらの装置について説明する。
【００２２】
燃焼状態検出装置３０は、点火コイル２０の２次巻線側に接続されるイオン電流検出回路３１と、イオン電流検出回路３１の出力であるイオン電流挙動を基に燃焼状態を判定する燃焼状態判定部３２とを備えて構成されている。燃焼状態検出装置３０とＥＣＵ５０とは、互いに通信可能に接続され、燃焼状態判定部３２での燃焼状態の判定結果がＥＣＵ５０に送信される。
【００２３】
ＥＣＵ５０は、ＣＰＵ，ＲＯＭ，ＲＡＭ，バックアップＲＡＭ等から成るマイクロコンピュータを中心に構成されている。ＥＣＵ５０は、前述の各種センサ、スイッチ、及び燃焼状態検出装置３０からの信号を入力し、ＲＯＭ内のプログラムに従ってエンジン制御を実行する。尚、バックアップＲＡＭは、バッテリからの給電によりイグニッションスイッチのオフ時にも記憶内容を保持するメモリであり、各種学習値が記憶保持されている。
【００２４】
ここで、ＥＣＵ５０によるエンジン制御について、代表的な制御、すなわち、点火時期制御、吸入空気量制御、燃料噴射制御について説明する。
【００２５】
点火時期制御においては、ＥＣＵ５０は、各種センサ、スイッチの信号を参照してＲＯＭ内のプログラムに従い最適な点火時期を演算し、その点火時期を実現する点火コイル通電期間をクランク角タイミングに換算する。そして、クランク角タイミングに基づいて、点火コイル２０の１次側コイルに通電信号を送る。尚、冷態始動時は、触媒早期活性のために点火時期は遅角側に制御される。
【００２６】
吸入空気量制御においては、ＥＣＵ５０は、各種センサ、スイッチの信号、及び機関冷却水温度から決定されるアイドル目標回転数を参照し、ＲＯＭ内のプログラムに従い目標回転数を維持することのできる吸入空気量を演算する。そして、その吸入空気量を実現するスロットル開度にスロットルアクチュエータ１７を駆動する。尚、冷態始動時は触媒早期活性のために、暖機後アイドル回転数よりも高いファーストアイドル回転数を目標回転数に設定する。
【００２７】
燃料噴射制御においては、ＥＣＵ５０は、燃焼状態検出装置３０からの燃焼状態に基づいて判定した燃料性状の判定結果と各種センサ，スイッチの信号とを参照してＲＯＭ内のプログラムに従い燃料噴射量を演算し、その燃料噴射量を実現するインジェクタ駆動期間をクランク角タイミングに換算する。そして、そのクランク角タイミングに基づいて、インジェクタ１８に駆動信号を送る。尚、この燃料噴射制御には、Ａ／Ｆセンサ２６の空燃比信号を利用し、空燃比が所定値となる様に燃料噴射量をフィードバック制御する空燃比フィードバック制御を含む。
【００２８】
燃料噴射制御におけるＥＣＵ５０の本発明に係る機能は、気化せずに吸気系に付着する燃料（ポートウェット）を検出するポートウェット検出部５１、燃焼状態検出装置３０からの燃焼状態判定結果に基づき燃料性状を判定する燃料性状判定部５２、燃料性状判定部５２で判定された燃料性状からポートウェットに関連付けて燃料噴射量を補正する燃料噴射量補正部５３によって代表することができる。燃料性状判定部５２で判定された燃料性状は学習され、学習値がバックアップＲＡＭに記憶保持される。
【００２９】
これらのポートウェット検出部５１，燃料性状判定部５２，燃料噴射量補正部５３の各機能は、具体的には、図２〜図１３のフローチャートに示すプログラム処理によって実現される。次に、図２〜図１３のフローチャートに従って各部の機能を詳述する。
【００３０】
図２は本発明に係る制御全体を示すメイン処理を示しており、ステップＳ２とステップＳ５がポートウェット検出部５１に、ステップＳ３とステップＳ６〜Ｓ８が燃料性状判定部５２に、ステップＳ９〜ステップＳ１１が燃料噴射量補正部５３に相当する。このメイン処理における各ステップの詳細は、それぞれ、図３〜図１３のフローチャートに示される。
【００３１】
このメイン処理の流れは、ステップＳ１でイニシャル処理を行い、ステップＳ２で点火回数を算出し、ステップＳ３で、燃焼状態検出装置３０から燃焼状態判定結果を取得する。次に、ステップＳ４で燃料性状が重質燃料か軽質燃料かの判定実施条件が成立するか否かを調べ、条件不成立時はステップＳ１１の噴射量算出処理へ移行し、条件成立時、ステップＳ５のポートウェットサイクル算出処理へ進む。
【００３２】
尚、フローチャート中の条件成立を判断するステップにおいて、Ｔは条件成立（真）、Ｆは条件不成立（偽）を示している。
【００３３】
後述するように、ポートウェットサイクルは、ポートウェットが同程度の点火回数または噴射回数を１処理単位とするものであり、このポートウェットサイクルの１処理単位毎に、ステップＳ６〜Ｓ９の各処理（燃焼状態判定値の算出、燃焼状態判定計数の算出、燃料性状判定、噴射量倍率の算出）が実行され、ステップＳ１０の燃料性状の学習値のバックアップＲＡＭへの書き込み、ステップＳ１１の燃料噴射量の算出処理を経て、メイン処理が終了する。以下、このメイン処理の各ステップの内容について、詳細に説明する。
【００３４】
［イニシャル処理］
図２のメイン処理では、最初のステップＳ１でイニシャル処理を行う。このイニシャル処理は、エンジン始動初期から使用燃料に見合った適正な燃料噴射量とするための処理であり、過度に燃料噴射量を少なくすることを避けることで始動性能の悪化を回避し、排ガス性能の悪化を防止する。
【００３５】
すなわち、一般に、エンジン始動初期の燃料噴射量は、始動性能を確保するために、最も噴射量が多い重質燃料使用時の噴射量を用いる。つまり、重質燃料よりも噴射量が少なくて済む中間燃料または軽質燃料使用時は排ガス性能が悪化する。従って、ステップＳ１のイニシャル処理では、エンジン始動前に燃料性状の学習値を読み込み、エンジン始動初期から使用燃料に見合った適正な燃料噴射量とすることで、排ガス性能の悪化を防ぐ。
【００３６】
但し、学習値の書き換え経験がない場合には、最も噴射量の多い重質燃料を選択し、学習値が軽質燃料の場合には、前回の始動においてインジェクタ油密漏れの影響を受けている可能性がある（インジェクタ油密漏れによって吸気系上流に可燃空気が満たされ、吸気系上流の空気が掃気されるまでリッチな混合気がシリンダ内に供給されることがある)ため、最も噴射量の少ない軽質燃料を避け、平均的な噴射量である中間燃料を選択することで、始動性能の悪化を防止する。
【００３７】
詳細には、イニシャル処理は図３に示す手順に従って実行される。先ず、イグニッションスイッチのオン時にエンジン始動時水温（イグニッションスイッチのオン時のエンジン水温）が下限温度ｋＥＸＥＴＷＬ（例えば、ｋＥＸＥＴＷＬ＝−１５°Ｃ）と、上限温度ｋＥＸＥＴＷＨ（例えば、ｋＥＸＥＴＷＨ＝３０°Ｃ）との設定範囲内である条件をチェックする（ステップＳ１−１）。この条件は、温度に対する燃料の揮発性が燃料性状によって異なるため、エンジン冷却水温度を参照し、燃料性状によって燃料噴射量に顕著な差が生じる温度帯を燃料性状の学習値に反映させるための条件である。
【００３８】
その結果、ステップＳ１−１での条件不成立時は、噴射量倍率ｔａｕａｍｐを１．０にセットし（ステップＳ１−６）、イニシャル処理を終了する。尚、噴射量倍率ｔａｕａｍｐは、中間燃料使用時の燃料噴射量を基準（中間燃料の噴射量倍率ｔａｕａｍｐ＝１．０）として、燃料性状に応じて燃料噴射量を増減するための倍率である。
【００３９】
一方、ステップＳ１−１での条件成立時には、種々のパラメータに適正な値をセットし（ステップＳ１−２）、ステップＳ１−３へ移行する。各パラメータについての詳細は後述するが、ステップＳ１−２の処理は、主として、カウンタやフラグの初期化、判定値、判定値に対する経験回数、係数等への初期値のセット等の処理であり、また、ポートウェットサイクルｗｅｔｃｙｃｌｅを１にセットする。ポートウェットサイクルｗｅｔｃｙｃｌｅは、ポートウェットが同程度の点火回数または噴射回数を１処理単位とするものであり、後述するステップＳ５の処理で算出される。
【００４０】
ステップＳ１−３では、燃料性状の判定結果である燃料性状判定値ｆｕｅｌを学習した学習値ｆｕｅｌ＿ｂｕｒａｍに対して、バックアップＲＡＭでの書き換え経験有りの条件をチェックする。本実施の形態では、ｆｕｅｌ＝１を軽質燃料、ｆｕｅｌ＝２を中間燃料、ｆｕｅｌ＝３を重質燃料としている。
【００４１】
ステップＳ１−３の条件が成立する場合（書き換え経験有り）、前回の始動における燃料性状判定結果をチェックし（ステップＳ１−４）、その結果、前回の始動における燃料性状判定結果が中間燃料または軽質燃料（ｆｕｅｌ＿ｂｕｒａｍ≦２）の場合には、使用燃料に中間燃料を指定する（ステップＳ１−５）。そして、噴射量倍率ｔａｕａｍｐに、中間燃料の噴射量倍率１．０をセットし（ステップＳ１−６）、イニシャル処理を終了する。
【００４２】
一方、ステップＳ１−３或いはステップＳ１−４の条件が不成立の場合には、使用燃料に重質燃料を指定し（ステップＳ１−７）、噴射量倍率ｔａｕａｍｐに、予め設定されているｗｅｔｃｙｃｌｅ＝１の重質燃料の噴射量倍率ｔＨＥＡＶＹＡＭＰをセットした後（ステップＳ１−８）、イニシャル処理を終了する。重質燃料に対して予め設定される噴射量倍率ｔＨＥＡＶＹＡＭＰは、例えば図１４に示すように、ポートウェットサイクル毎に設定され、ステップＳ１−８では、ｗｅｔｃｙｃｌｅ＝１の噴射量倍率ｔＨＥＡＶＹＡＭＰ＝１．１８により、ｔａｕａｍｐ＝１．１８にセットされる。
【００４３】
［点火回数の算出処理］
次に、図２のメイン処理のステップＳ２へ進み、点火回数ｃｎｔｉｇｅｘｅを算出する。詳細には、図４に示すように、点火信号出力毎に、点火回数カウンタｃｎｔｉｇｅｘｅをインクリメントし（ステップＳ２−１）、ステップＳ２の処理を抜ける。
【００４４】
前述したように、本実施の形態においては、燃焼室内の混合気が燃焼することにより生ずるイオンの量に応じたイオン電流を検出するイオン電流検出回路３１と、イオン電流挙動から燃焼状態を判定する燃焼状態判定部３２からなる燃焼状態検出装置３０を、ＥＣＵ５０と別体の構成として通信を行うようにしている。燃焼状態検出装置３０は、点火タイミングに同期して燃焼状態判定結果をＥＣＵ５０へ出力する（図１５参照）。
【００４５】
［燃焼状態判定結果の取得処理］
次のステップＳ３は、燃焼状態判定結果を取得する処理であり、詳細は図５に示される。この燃焼状態判定結果の取得は、ＴＤＣ−１２０ｄｅｇの演算周期毎に、燃焼状態検出装置３０からの燃焼状態判定結果をＡＤ変換し、変数ｉｏｎａｄに格納した後（ステップＳ３−１）、ステップＳ３の処理を抜けてステップＳ４へ進む。
【００４６】
［燃料性状判定実施条件の判定処理］
ステップＳ４は、「燃料性状判定実施条件」の成立を判定する処理であり、詳細は図６に示される。この条件判定はＴＤＣ−４０ｄｅｇ演算周期毎に実施され、「エンジン始動時水温が下限温度ｋＥＸＥＴＷＬ（例えば、ｋＥＸＥＴＷＬ＝−１５°Ｃ）と上限温度ｋＥＸＥＴＷＨ（例えば、ｋＥＸＥＴＷＨ＝３０°Ｃ）の範囲内」で、且つ「空燃比フィードバック実施経験なし」の条件をチェックする（ステップＳ４−１）。
【００４７】
すなわち、温度に対する燃料の揮発性は燃料性状によって異なる。また、エンジン始動後十数秒後にはＡ／Ｆセンサが活性化し、空燃比フィードバック制御が開始すると、空燃比フィードバック制御による燃料噴射量補正と燃料噴射量補正部５３による燃料性状に基づく燃料噴射量補正が重複することになる。
【００４８】
従って、ステップＳ４−１では、エンジン冷却水温度を参照し、燃料性状によって燃料噴射量に顕著な差が生じる温度帯を燃料性状判定実施条件に設定すると共に、燃料性状判定の実施期間を空燃比フィードバック制御を開始する以前に限定し、燃料噴射量補正が複雑化することを避け、空燃比フィードバック制御による燃料噴射量補正に統一する。
【００４９】
そして、ステップＳ４−１において、条件成立時はステップＳ５のポートウェットサイクル算出処理へ移行し、条件不成立時はステップＳ１１の噴射量算出処理へ移行する。
【００５０】
［ポートウェット算出処理］
先ず、ポートウェット算出処理について説明する。エンジンの冷態始動時は、温度が低く、燃料気化不足分を補うためにエンジン暖機後に較べ、より多くの燃料を噴射する必要があり、ポートウェットも増すことになる。ポートウェットは次サイクルの燃焼に寄与するので、例えば４気筒エンジンの場合、エンジン始動初期においては４点火毎または４噴射毎に段階的に変化する。
【００５１】
しかしながら、エンジン回転数の上昇により負圧が発生し、燃料気化が促進されると、燃料噴射量を増量する必要性は徐々になくなり、例えば８点火毎または８噴射毎でポートウェットを把握することができるようになる。従って、ポートウェットが同程度ある点火回数または噴射回数を１処理単位とするポートウェットサイクルｗｅｔｃｙｃｌｅを定義し、このポートウェットサイクルｗｅｔｃｙｃｌｅの各１処理単位を、時系列的にｗｅｔｃｙｃｌｅ＝１，２，３，・・・のように表現することで、ポートウェットを検出する。
【００５２】
この場合、本実施の形態においては、燃焼状態検出装置３０から通信によって燃焼状態判定結果がＥＣＵ５０に送信されるため、ＥＣＵ５０側で認識されるｗｅｔｃｙｃｌｅの各１処理単位と、燃焼状態検出システムから出力される燃焼状態判定結果との対応付けが必要となる。
【００５３】
従って、ポートウェットサイクルｗｅｔｃｙｃｌｅの１処理単位の燃焼状態を検出する期間を更に１処理単位として、燃焼状態検出サイクルｗｅｔｃｙｃｌｅｏｕｔを定義する。すなわち、図２０に示すように、ｗｅｔｃｙｃｌｅ＝１，２，３，…に対して、ｗｅｔｃｙｃｌｅｏｕｔ＝１，２，３，…のようにして、ポートウェットサイクルｗｅｔｃｙｃｌｅの各１処理単位と、ポートウェットサイクルｗｅｔｃｙｃｌｅの各１処理単位の燃焼状態を検出する期間とを対応付けする。但し、ｗｅｔｃｙｃｌｅｏｕｔ＝０は、エンジン始動の初期動作であるエンジンクランキング時に、燃料噴射が実施されていない気筒に対する点火の燃焼状態を検出する期間とする。
【００５４】
ここで、燃料噴射が実施されていない気筒に対する点火を「無効点火」と定義し、燃料噴射が実施された気筒に対する点火を「有効点火」と定義すると、ｗｅｔｃｙｃｌｅｏｕｔ＝０は「無効点火の燃焼状態判定結果格納期間」であり、ｗｅｔｃｙｃｌｅｏｕｔ＝１，２，３・・・は、「ｗｅｔｃｙｃｌｅ＝１，２，３・・・に対する有効点火の燃焼状態判定結果格納期間」となる。一般の内燃機関において、エンジン始動の初期動作であるエンジンクランキング時に少なくとも１回は無効点火が実施される。
【００５５】
具体的には、ポートウェットサイクル算出処理の詳細は、図７に示される。このポートウェットサイクル算出処理は、ＴＤＣ−４０ｄｅｇ演算周期毎に実行され、最初に、点火回数カウンタｃｏｎｔｉｇｅｘｅをチェックする（ステップＳ５−１）。イグニッションスイッチのオン後、初回の点火が実施されたならば、同期用カウンタｃｎｔｓｙｎｃをインクリメントした後（ステップＳ５−２）、ステップＳ５−３へ移行する。ステップＳ５−１の条件不成立時は、本処理を抜ける。
【００５６】
図１５に示すように、本実施の形態においては、燃焼状態検出装置３０からの燃焼状態判定結果の出力タイミングは点火後５４０ｄｅｇＣＡ相当であるため、燃焼状態検出サイクルｗｅｔｃｙｃｌｅｏｕｔの定義に従い、燃焼状態検出サイクルｗｅｔｃｙｃｌｅｏｕｔのインクリメントタイミングと、燃焼状態判定結果の出力タイミングとの同期を取る必要がある。同様に、ポートウェットサイクルｗｅｔｃｙｃｌｅの定義に従い、ポートウェットサイクルｗｅｔｃｙｃｌｅのインクリメントタイミングと噴射タイミングの同期を取る必要もある。
【００５７】
従って、本実施の形態では、点火回数を利用する同期用カウンタｃｎｔｓｙｎｃ、有効点火回数カウンタｃｎｔｉｇ、及び噴射回数カウンタｃｎｔｉｎｊを用意し、これらのカウンタに対する設定値を任意に与えることで同期を取るようにしている。このようにすることで、制御内容を変更することなく、燃焼状態を検出する他のシステムへの置き換えが容易になる。
【００５８】
ステップＳ５−３では、同期用カウンタｃｎｔｓｙｎｃを設定値ｋＣＮＴＩＧＳＹＮＣ（例えば、ｋＣＮＴＩＧＳＹＮＣ＝５）と比較し、設定値ｋＣＮＴＩＧＳＹＮＣ以上であれば、有効点火回数カウンタｃｎｔｉｇをインクリメントした後（ステップＳ５−４）、ステップＳ５−５へ移行する。
【００５９】
ステップＳ５−５では、「燃焼状態検出サイクルｗｅｔｃｙｃｌｅｏｕｔが０」または「有効点火回数カウンタｃｎｔｉｇが設定値ｔＩＸＣＹＣＯＵＴより大きい」条件をチェックする。設定値ｔＩＸＣＹＣＯＵＴは、例えば、ｗｅｔｃｙｃｌｅｏｕｔ＜４０の条件下でｔＩＸＣＹＣＯＵＴ＝４、ｗｅｔｃｙｃｌｅｏｕｔ≧４０の条件下でｔＩＸＣＹＣＯＵＴ＝８に設定される。
【００６０】
そして、条件成立時は有効点火回数カウンタｃｎｔｉｇを１にセットし（ステップＳ５−６）、燃焼状態検出サイクルｗｅｔｃｙｃｌｅｏｕｔをインクリメントした後（ステップＳ５−７）、ステップＳ５−８へ移行する。
【００６１】
一方、ステップＳ５−３とステップＳ５−５の条件不成立時は、ステップＳ５−８へ移行する。ステップＳ５−８では、同期用カウンタｃｎｔｓｙｎｃを設定値ｋＣＮＴＩＮＪＳＹＮＣ（例えば、ｋＣＮＴＩＮＪＳＹＮＣ＝２）と比較し、設定値ｋＣＮＴＩＮＪＳＹＮＣ以上であれば、噴射回数カウンタｃｎｔｉｎｊをインクリメントした後（ステップＳ５−９）、ステップＳ５−１０へ移行する。
【００６２】
ステップＳ５−１０では「ポートウェットサイクルｗｅｔｃｙｃｌｅが１」または「噴射回数カウンタｃｎｔｉｎｊが設定値ｔＩＸＣＹＣより大きい」条件をチェックする。設定値ｔＩＸＣＹＣは、例えば、ｗｅｔｃｙｃｌｅ＜４０の条件下でｔＩＸＣＹＣ＝４、ｗｅｔｃｙｃｌｅ≧４０の条件下でｔＩＸＣＹＣ＝８に設定される。
【００６３】
そして、条件成立時は、噴射回数カウンタｃｎｔｉｎｊを１にセットし（ステップＳ５−１１）、ポートウェットサイクルｗｅｔｃｙｃｌｅをインクリメントした後（ステップＳ５−１２）、本ポートウェットサイクル算出処理を抜け、図２のステップＳ６の燃焼状態判定値算出処理へ移行する。また、ステップＳ５−８とステップＳ５−１０の条件不成立時は、本ポートウェットサイクル算出処理を抜けて図２のステップＳ６の燃焼状態判定値算出処理へ移行する。
【００６４】
［燃焼状態判定値の算出処理］
次に、ステップＳ６の「燃焼状態判定値の算出」について説明する。ステップＳ６の燃焼状態判定値算出処理の詳細は図８に示され、ＴＤＣ−４０ｄｅｇ演算周期毎に実行される。
【００６５】
図８の燃焼状態判定値算出処理では、燃焼状態判定結果のＡＤ変換値ｉｏｎａｄを制御所望の数値に置き換え、燃焼状態を判別するための燃焼状態判定値ｉｏｎに格納した後（ステップＳ６−１）、ステップＳ６−２へ移行する。本実施の形態では、燃焼状態判定値ｉｏｎの値として、６を正常の燃焼、６よりも大きい値をリーン側の燃焼、６よりも小さい値をリッチ側の燃焼、０を失火または不明とする。
【００６６】
尚、ＡＤ変換値ｉｏｎａｄは、前述のステップＳ３で燃焼状態検出装置３０から出力された燃焼状態判定結果をＡＤ変換し、変数ｉｏｎａｄに格納したものであり、燃焼状態検出装置３０から出力された燃焼状態判定結果のＡＤ変換値ｉｏｎａｄを制御所望の数値に置き換える処理を用意することで、制御内容を変更することなく、他の燃焼状態を検出するシステムへの置き換えが容易になる。
【００６７】
次のステップＳ６−２では、燃焼状態判定値ｉｏｎをチェックし、失火または不明を表す０でなければ、以下の（１）式に示すなまし演算を行ってなまし燃焼状態判定値ｉｏｎｓｍを算出し（ステップＳ６−３）、本処理を抜ける。また、ステップＳ６−２においてｉｏｎ≠０である条件の不成立時は、本処理を抜ける。  
ｉｏｎｓｍ（ｎ）＝ｉｏｎｓｍ（ｎ−１）×（１−ｋＩＯＭＳＭ）＋ｉｏｎ×ｋＩＯＮＳＭ  …（１）
但し、ｋＩＯＮＳＭ：なまし係数（例えば、ｋＩＯＮＳＭ＝０．５）
【００６８】
この燃焼状態判定値ｉｏｎのなまし演算を行うことにより、気筒間の燃焼状態のばらつきによる影響や燃料噴射量の部分的な適合ずれによる影響を緩和し、燃料性状の誤判定頻度を軽減させて燃料性状判定の信頼性を向上することができる。
【００６９】
［燃焼状態判定計数の算出処理］
次に、以上のステップＳ６の「燃焼状態判定値の算出」に続いて実行されるステップＳ７の「燃焼状態判定計数の算出処理」について説明する。
【００７０】
本実施の形態においては、燃焼状態判定値ｉｏｎに対して、燃焼状態検出サイクルｗｅｔｃｙｃｌｅｏｕｔの１処理単位毎に、重質燃料使用時のリーン燃焼状態を表す閾値を、２段階（Ｌｏｗレベル，Ｈｉレベル）の閾値ｔＩＯＮＬ＿Ｌ，ｔＩＯＮＨ＿Ｌで設定し、また、軽質燃料使用時のリッチ燃焼状態を表す閾値を、２段階（Ｌｏｗレベル，Ｈｉレベル）の閾値ｔＩＯＮＬ＿Ｒ、ｔＩＯＮＨ＿Ｒで設定する。そして、燃焼状態検出サイクルｗｅｔｃｙｃｌｅｏｕｔの１処理単位毎に、リーン燃焼状態を表す閾値以上またはリッチ燃焼状態を表す閾値以下である経験回数を各設定閾値で分類し、計数する。
【００７１】
燃焼状態判定値ｉｏｎに対する閾値の設定例を、以下の（ａ），（ｂ）に示す。  
（ａ）重質燃料使用時のリーン燃焼状態を表す閾値
ｗｅｔｃｙｃｌｅｏｕｔ＝０のとき、ｔＩＯＮＬ＿Ｌ＝１００
ｔＩＯＮＨ＿Ｌ＝１００
ｗｅｔｃｙｃｌｅｏｕｔ≠０のとき、ｔＩＯＮＬ＿Ｌ＝８
ｔＩＯＮＨ＿Ｌ＝１０
（ｂ）軽質燃料使用時のリッチ燃焼状態を表す閾値
ｗｅｔｃｙｃｌｅｏｕｔ＝０のとき、ｔＩＯＮＬ＿Ｒ＝１００
ｔＩＯＮＨ＿Ｒ＝１００
ｗｅｔｃｙｃｌｅｏｕｔ≠０のとき、ｔＩＯＮＬ＿Ｒ＝４
ｔＩＯＮＨ＿Ｒ＝２
【００７２】
同様に、もう一つのなまし燃焼状態判定値ｉｏｎｓｍに対しては、燃焼状態検出サイクルｗｅｔｃｙｃｌｅｏｕｔの１処理単位毎に、重質燃料使用時のリーン燃焼状態を表す閾値及び軽質燃料使用時のリッチ燃焼状態を表す閾値を、それぞれ１段階の閾値ｔＩＯＮＳＭ＿Ｌ，ｔＩＯＮＳＭ＿Ｒで設定する。そして、燃焼状態検出サイクルｗｅｔｃｙｃｌｅｏｕｔの１処理単位毎に、リーン燃焼状態を表す閾値以上またはリッチ燃焼状態を表す閾値以下である経験回数を設定閾値で分類し、計数する。
【００７３】
なまし燃焼状態判定値ｉｏｎｓｍに対する閾値の設定例を、以下の（ｃ），（ｄ）に示す。  
（ｃ）重質燃料使用時のリーン燃焼状態を表す閾値
ｗｅｔｃｙｃｌｅｏｕｔ＝０のとき、ｔＩＯＮＳＭ＿Ｌ＝１００
ｗｅｔｃｙｃｌｅｏｕｔ≠０のとき、ｔＩＯＮＳＭ＿Ｌ＝９
（ｄ）軽質燃料使用時のリッチ燃焼状態を表す閾値
ｗｅｔｃｙｃｌｅｏｕｔ＝０のとき、ｔＩＯＮＳＭ＿Ｒ＝１００
ｗｅｔｃｙｃｌｅｏｕｔ≠０のとき、ｔＩＯＮＳＭ＿Ｒ＝３
【００７４】
尚、以上の閾値ｔＩＯＮＬ＿Ｌ，ｔＩＯＮＨ＿Ｌ，ｔＩＯＮＬ＿Ｒ，ｔＩＯＮＨ＿Ｒ，ｔＩＯＮＳＭ＿Ｌ，ｔＩＯＮＳＭ＿Ｒは、環境温度によって燃料性状判定パターンが顕著に異なる場合には、燃焼状態検出サイクルｗｅｔｃｙｃｌｅｏｕｔとエンジン冷却水温との２次元マップから設定するようにしても良い。
【００７５】
以上が「燃焼状態判定値計数の算出処理」の概要であり、詳細な手順は図９に示される。この処理は、ＴＤＣ−４０ｄｅｇ演算周期毎に実行され、先ず、前回の燃焼状態検出サイクルｗｅｔｃｙｃｌｅｏｕｔ（ｎ−１）と今回の燃焼状態検出サイクルｗｅｔｃｙｃｌｅｏｕｔ（ｎ）を比較し、両者が等しくない条件が成立するか否かを判定する（ステップＳ７−１）。
【００７６】
その結果、ｗｅｔｃｙｃｌｅｏｕｔ（ｎ−１）≠ｗｅｔｃｙｃｌｅ（ｎ））の条件成立時は、燃焼状態判定値ｉｏｎ，ｉｏｎｓｍに対するリーン側の経験回数である燃焼状態判定計数ｉｏｎｈ＿ｌｃｎｔ，ｉｏｎｌ＿ｌｃｎｔ、ｉｏｎｓｍ＿ｌｃｎｔ、及びリッチ側の経験回数である燃焼状態判定計数ｉｏｎｈ＿ｒｃｎｔ，ｉｏｎｌ＿ｒｃｎｔ、ｉｏｎｓｍ＿ｒｃｎｔをリセットした後（ステップＳ７−２）、ステップＳ７−３へ移行する。また、ステップＳ７−１の条件不成立時は、ステップＳ７−１からステップＳ７−３へ移行する。
【００７７】
ステップＳ７−３では、燃焼状態判定値ｉｏｎをチェックし、失火または不明を表す０でなければ、ステップＳ７−４へ移行する。ステップＳ７−３の条件不成立時（ｉｏｎ＝０）は本処理を抜ける。
【００７８】
ステップＳ７−４では、燃焼状態判定値ｉｏｎとリーン燃焼状態を表す２段目の閾値（Ｈｉレベル）ｔＩＯＮＨ＿Ｌを比較し、当閾値以上であれば、リーン燃焼状態を表す２段目（Ｈｉレベル）の閾値ｔＩＯＮＨ＿Ｌに対する計数ｉｏｎｈ＿ｌｃｎｔと１段目（Ｌｏｗレベル）の閾値ｔＩＯＮＬ＿Ｌに対する計数ｉｏｎｌ＿ｌｃｎｔとを、それぞれインクリメントし（ステップＳ７−５）、ステップＳ７−１２へ移行する。
【００７９】
ステップＳ７−４の条件不成立時は、燃焼状態判定値ｉｏｎとリーン燃焼状態を表す１段目（Ｌｏｗレベル）の閾値ｔＩＯＮＬ＿Ｌを比較し（ステップＳ７−６）、当閾値以上であれば、当閾値に対する計数ｉｏｎｌ＿ｌｃｎｔをインクリメントし（ステップＳ７−７）、ステップＳ７−１２へ移行する。
【００８０】
ステップＳ７−６の条件不成立時は、燃焼状態判定値ｉｏｎとリッチ燃焼状態を表す２段目（Ｈｉレベル）の閾値ｔＩＯＮＨ＿Ｒを比較し（ステップＳ７−８）、当閾値以下であれば、リッチ燃焼状態を表す２段目（Ｈｉレベル）の閾値ｔＩＯＮＨ＿Ｒに対する計数ｉｏｎｈ＿ｒｃｎｔと１段目（Ｌｏｗレベル）の閾値ｔＩＯＮＬ＿Ｒに対する計数ｉｏｎｌ＿ｒｃｎｔとを、それぞれインクリメントし（ステップＳ７−９）、ステップＳ７−１２へ移行する。
【００８１】
ステップＳ７−８の条件不成立時は、燃焼状態判定値ｉｏｎとリッチ燃焼状態を表す１段目（Ｌｏｗレベル）の閾値ｔＩＯＮＬ＿Ｒを比較し（ステップＳ７−１０）、当閾値以下であれば、当閾値に対する計数ｉｏｎｌ＿ｒｃｎｔをインクリメントし（ステップＳ７−１１）、ステップＳ７−１２へ移行する。ステップＳ７−１０の条件不成立時は、ステップＳ７−１２へ移行する。
【００８２】
ステップＳ７−１２では、なまし燃焼状態判定値ｉｏｎｓｍとリーン燃焼状態を表す閾値ｔＩＯＮＳＭ＿Ｌを比較し、当閾値以上であれば、当閾値に対する計数ｉｏｎｓｍ＿ｌｃｎｔをインクリメントし（ステップＳ７−１３）、本処理を抜ける。
【００８３】
ステップＳ７−１２の条件不成立時は、なまし燃焼状態判定値ｉｏｎｓｍとリッチ燃焼状態を表す閾値ｔＩＯＮＳＭ＿Ｒを比較し（ステップＳ７−１４）、当閾値以下であれば、当閾値に対する計数ｉｏｎｓｍ＿ｒｃｎｔをインクリメントし（ステップＳ７−１５）、本処理を抜けて図２のステップＳ８へ進む。ステップＳ７−１４の条件不成立時は、本処理を抜けて図２のステップＳ８へ進む。
【００８４】
［燃料性状の判定処理］
次に、以上のステップＳ７の「燃焼状態判定計数の算出処理」に続いて、ステップＳ８へ進み、「燃料性状の判定処理」が実行される。この燃料性状の判定処理では、燃焼状態検出サイクルｗｅｔｃｙｃｌｅｏｕｔの１処理単位毎に、前述の各閾値で分類した計数結果（燃焼状態判定計数）と、各閾値に対する重質燃料使用時または軽質燃料使用時の計数判定値とを比較し、計数結果が重質燃料使用時の計数判定値以上の場合、使用燃料が重質燃料であると判定し、計数結果が軽質燃料使用時の計数判定値以上の場合、使用燃料が軽質燃料であると判定する。  
各計数判定値の設定例を、以下の（１）〜（６）に示す。
【００８５】
（１）リーン側Ｈｉレベル経験回数に対する重質燃料の判定値（計数ｉｏｎｈ＿ｌｃｎｔに対する計数判定値ｔＩＯＮＨ＿ＬＣＮＴ）
ｗｅｔｃｙｃｌｅｏｕｔ＝０のとき、    ｔＩＯＮＨ＿ＬＣＮＴ＝１００
ｗｅｔｃｙｃｌｅｏｕｔ≦４０のとき、  ｔＩＯＮＨ＿ＬＣＮＴ＝２
ｗｅｔｃｙｃｌｅｏｕｔ＞４０のとき、  ｔＩＯＮＨ＿ＬＣＮＴ＝３
【００８６】
（２）リーン側Ｌｏｗレベル経験回数に対する重質燃料の判定値（計数ｉｏｎｌ＿ｌｃｎｔに対する計数判定値ｔＩＯＮＬ＿ＬＣＮＴ）
ｗｅｔｃｙｃｌｅｏｕｔ＝０のとき、    ｔＩＯＮＬ＿ＬＣＮＴ＝１００
ｗｅｔｃｙｃｌｅｏｕｔ≦４０のとき、  ｔＩＯＮＬ＿ＬＣＮＴ＝３
ｗｅｔｃｙｃｌｅｏｕｔ＞４０のとき、  ｔＩＯＮＬ＿ＬＣＮＴ＝５
【００８７】
（３）なまし後のリーン側経験回数に対する重質燃料の判定値（計数ｉｏｎｓｍ＿ｌｃｎｔに対する計数判定値ｔＩＯＮＳＭ＿ＬＣＮＴ）
ｗｅｔｃｙｃｌｅｏｕｔ＝０のとき、    ｔＩＯＮＳＭ＿ＬＣＮＴ＝１００
ｗｅｔｃｙｃｌｅｏｕｔ≦４０のとき、  ｔＩＯＮＳＭ＿ＬＣＮＴ＝２
ｗｅｔｃｙｃｌｅｏｕｔ＞４０のとき、  ｔＩＯＮＳＭ＿ＬＣＮＴ＝３
【００８８】
（４）リッチ側Ｈｉレベル経験回数に対する軽質燃料の判定値（計数ｉｏｎｈ＿ｒｃｎｔに対する計数判定値ｔＩＯＮＨ＿ＲＣＮＴ）
ｗｅｔｃｙｃｌｅｏｕｔ＝０のとき、    ｔＩＯＮＨ＿ＲＣＮＴ＝１
ｗｅｔｃｙｃｌｅｏｕｔ≦４０のとき、  ｔＩＯＮＨ＿ＲＣＮＴ＝２
ｗｅｔｃｙｃｌｅｏｕｔ＞４０のとき、  ｔＩＯＮＨ＿ＲＣＮＴ＝３
【００８９】
（５）リッチ側Ｌｏｗレベル経験回数に対する軽質燃料の判定値（計数ｉｏｎｌ＿ｒｃｎｔに対する計数判定値ｔＩＯＮＬ＿ＲＣＮＴ）
ｗｅｔｃｙｃｌｅｏｕｔ＝０のとき、    ｔＩＯＮＬ＿ＲＣＮＴ＝１
ｗｅｔｃｙｃｌｅｏｕｔ≦４０のとき、  ｔＩＯＮＬ＿ＲＣＮＴ＝３
ｗｅｔｃｙｃｌｅｏｕｔ＞４０のとき、  ｔＩＯＮＬ＿ＲＣＮＴ＝５
【００９０】
（６）なまし後のリッチ側経験回数に対する軽質燃料の判定値（計数ｉｏｎｓｍ＿ｒｃｎｔに対する計数判定値ｔＩＯＮＳＭ＿ＲＣＮＴ）
ｗｅｔｃｙｃｌｅｏｕｔ＝０のとき、    ｔＩＯＮＳＭ＿ＲＣＮＴ＝１
ｗｅｔｃｙｃｌｅｏｕｔ≦４０のとき、  ｔＩＯＮＳＭ＿ＲＣＮＴ＝２
ｗｅｔｃｙｃｌｅｏｕｔ＞４０のとき、  ｔＩＯＮＳＭ＿ＲＣＮＴ＝３
【００９１】
尚、以上の各判定値ｔＩＯＮＨ＿ＬＣＮＴ，ｔＩＯＮＬ＿ＬＣＮＴ，ｔＩＯＮＳＭ＿ＬＣＮＴ，ｔＩＯＮＨ＿ＲＣＮＴ，ｔＩＯＮＬ＿ＲＣＮＴ，ｔＩＯＮＳＭ＿ＲＣＮＴは、環境温度によって燃料性状判定パターンが顕著に異なる場合には、燃焼状態検出サイクルｗｅｔｃｙｃｌｅｏｕｔとエンジン冷却水温との２次元マップから設定するようにしても良い。
【００９２】
詳細には、燃料性状の判定処理は、ＴＤＣ−４０ｄｅｇ演算周期毎に、図１０に示す手順に従って実行される。
【００９３】
すなわち、先ず、燃焼状態判定値ｉｏｎをチェックし（ステップＳ８−１）、失火または不明を表す０でなければ、ステップＳ８−２へ移行する。また、ステップＳ８−１の条件不成立時は、正常燃焼を示す正常燃焼判定フラグｘｃｏｍｂをリセットした後（ステップＳ８−９）、本判定処理を抜ける。
【００９４】
ステップＳ８−２では、燃焼状態判定値ｉｏｎ，ｉｏｎｓｍに対して、重質燃料使用時のリーン燃焼状態を表す各閾値で分類した計数結果ｉｏｎｈ＿ｌｃｎｔ，ｉｏｎｌ＿ｌｃｎｔ，ｉｏｎｓｍ＿ｌｃｎｔを、各閾値における重質燃料の計数判定値ｔＩＯＮＨ＿ＬＣＮＴ，ｔＩＯＮＬ＿ＬＣＮＴ，ｔＩＯＮＳＭ＿ＬＣＮＴとそれぞれ比較する。そして、当計数判定値以上ならば、使用燃料が重質燃料であると判定して燃料性状判定値ｆｕｅｌに３をセットし（ステップＳ８−３）、ステップＳ８−７へ移行する。
【００９５】
ステップＳ８−２の条件不成立時は、燃焼状態判定値ｉｏｎ，ｉｏｎｓｍに対する軽質燃料使用時のリッチ燃焼状態を表す各閾値で分類した計数結果ｉｏｎｈ＿ｒｃｎｔ，ｉｏｎｌ＿ｒｃｎｔ，ｉｏｎｓｍ＿ｒｃｎｔを、各閾値における軽質燃料の計数判定値ｔＩＯＮＨ＿ＲＣＮＴ，ｔＩＯＮＬ＿ＲＣＮＴ，ｔＩＯＮＳＭ＿ＲＣＮＴとそれぞれ比較する（ステップＳ８−４）。そして、当計数判定値以上ならば、使用燃料が軽質燃料であると判定して燃料性状判定値ｆｕｅｌに１をセットし（ステップＳ８−５）、ステップＳ８−７へ移行する。ステップＳ８−４の条件不成立時は前回の燃料性状を保持し、正常燃焼判定フラグｘｃｏｍｂをセットした後（ステップＳ８−６）、本処理を抜ける。
【００９６】
ステップＳ８−７では、燃焼状態検出サイクルｗｅｔｃｙｃｌｅｏｕｔが０以外のときに、前回の燃料性状判定値ｆｕｅｌ（ｎ−１）と今回の燃料性状判定値ｆｕｅｌ（ｎ）とを比較し、重質燃料から軽質燃料に、または軽質燃料から重質燃料に変化したならば、燃料性状判定値ｆｕｅｌに２をセットして燃料性状を中間燃料とし（ステップＳ８−８）、正常燃焼判定フラグｘｃｏｍｂをリセットした後（ステップＳ８−９）、本処理を抜ける。ステップＳ８−７の条件不成立時は、正常燃焼判定フラグｘｃｏｍｂをリセットした後（ステップＳ８−９）、本処理を抜ける。
【００９７】
以上のステップＳ８−７における燃料性状判定値ｆｕｅｌの条件は、前回の燃料性状判定結果が誤判定か否かを認識し、誤判定である場合に復帰を行うための条件である。すなわち、燃料性状が重質燃料であると判定されると、燃料噴射量を増量させる方向に補正が働く。増量補正の結果、軽質燃料と判定された場合は補正が適正ではないことから、燃料性状を中間燃料に判定し直す。逆もまた同様に、燃料性状が軽質燃料であると判定されると燃料噴射量を減量させる方向に補正が働く。減量補正の結果、重質燃料と判定された場合は補正が適正ではないことから、燃料性状を中間燃料に判定し直す。
【００９８】
また、ステップＳ８−７における「ｗｅｔｃｙｃｌｅｏｕｔ≠０」の条件は、インジェクタの油密漏れによって吸気系上流に可燃空気が満たされ、無効点火によって燃焼した場合に、軽質燃料を選択させてオーバーリッチを回避するための条件である。すなわち、ｗｅｔｃｙｃｌｅｏｕｔ＝０は、「無効点火の燃焼状態判定結果格納期間」を指し、ｗｅｔｃｙｃｌｅｏｕｔ＝０の期間に燃焼状態検出装置３０から失火または不明を表す０以外の燃焼状態判定結果が得られた場合、つまりインジェクタの油密漏れによって吸気系上流に可燃空気が満たされ、無効点火によって燃焼した場合に、燃料性状の学習値に拘らず、最も燃料噴射量が少ない軽質燃料を選択することで、オーバーリッチを回避する。
【００９９】
以上のように、ステップＳ７，Ｓ８の処理においては、燃焼状態判定値を分類する複数の閾値と、これら閾値に対して計数判定値を燃焼状態検出サイクルｗｅｔｃｙｃｌｅｏｕｔの１処理単位毎に適切に設定することで、燃焼状態検出サイクルｗｅｔｃｙｃｌｅｏｕｔの１処理単位毎に適した燃料性状判定パターンを作成することができ、気筒間の燃焼状態のばらつきの影響を緩和し、燃焼状態検出サイクルｗｅｔｓｙｃｌｅｏｕｔの１処理単位における的確な燃料性状を判定することができる。
【０１００】
また、燃料性状によって燃料噴射量に顕著な差が生じるエンジン始動初期において、燃料噴射量の部分的な適合ずれによる燃料性状の誤判定が生じても、燃焼状態検出サイクルｗｅｔｓｙｃｌｅｏｕｔの１処理単位毎に複数回の燃料性状判定が実施されるため、誤判定から復帰することができ、燃料性状判定結果の信頼性を向上することができる。
【０１０１】
［噴射量倍率の算出処理］
次に、ステップＳ９における噴射量倍率ｔａｕａｍｐの算出処理について説明する。本実施の形態においては、中間燃料使用時の燃料噴射量を基準（中間燃料の噴射量倍率ｔａｕａｍｐは１．０）として、ポートウェットサイクルｗｅｔｃｙｃｌｅの１処理単位毎に重質燃料及び軽質燃料の噴射量倍率を予め設定し、先のステップＳ８で判定された燃料性状に基づいて噴射量倍率を算出することで、燃料性状によって燃料噴射量に顕著な差が生じるエンジン始動初期及びファーストアイドル時における緻密な燃料噴射量補正を可能とする。
【０１０２】
更に、ステップＳ８で判定された燃料性状が重質燃料の場合は、重質燃料の噴射量倍率と中間燃料の噴射量倍率との間で、後述する噴射量倍率減衰係数ｔａｕａｍｐｄｍｐを用いて徐々に中間燃料の噴射倍率の反映率を上げるなまし演算を行う。中間燃料の噴射量倍率に収束した時点では、燃料性状を中間燃料に更新する。
【０１０３】
以上が「噴射量倍率の算出」の概要説明であり、詳細な手順は、図１１に示されるフローチャートに従って実施される。この処理はＴＤＣ−４０ｄｅｇ演算周期毎に実施され、先ず、燃焼状態判定値ｉｏｎをチェックする（ステップＳ９−１）。そして、失火または不明を表す０でなければ、ステップＳ９−２へ移行し、ステップＳ９−１の条件不成立時は、ステップＳ９−８へ移行する。
【０１０４】
ステップＳ９−２では、「正常燃焼判定フラグがセット状態（ｘｃｏｍｂ＝１）」で、且つ「燃料性状が重質燃料（ｆｕｅｌ＝３）」である条件をチェックする。ステップＳ９−２の条件不成立時は、噴射量倍率減衰係数ｔａｕａｍｐｄｍｐを１．０にセットし（ステップＳ９−７）、ステップＳ９−８へ移行する。
【０１０５】
一方、ステップＳ９−２の条件成立時は、噴射量倍率減衰係数ｔａｕａｍｐｄｍｐを設定値ｔＴＡＵＡＭＰＤＭＰずつ減算し（ステップＳ９−３）、減算結果をチェックする（ステップＳ９−４）。設定値ｔＴＡＵＡＭＰＤＭＰは、ポートウェットサイクルの１処理単位毎に設定され、例えば、ｗｅｔｃｙｃｌｅ≦１０の条件下では、ｔＴＡＵＡＭＰＤＭＰ＝０．１２５に設定され、ｗｅｔｃｙｃｌｅ＞１０の条件下では、ｔＴＡＵＡＭＰＤＭＰ＝０．０８４に設定される。
【０１０６】
尚、環境温度によって重質燃料の噴射量倍率と軽質燃料の噴射量倍率とが顕著に変化する場合には、設定値ｔＴＡＵＡＭＰＤＭＰをポートウェットサイクルｗｅｔｃｙｃｌｅとエンジン冷却水温との２次元マップから設定するようにしても良い。
【０１０７】
ステップＳ９−４のチェックで噴射量倍率減衰係数ｔａｕａｍｐｄｍｐの減算結果が０以下の場合には、噴射量倍率減衰係数ｔａｕａｍｐｄｍｐを１．０にセットし（ステップＳ９−５）、燃料性状判定値ｆｕｅｌを中間燃料（ｆｕｅｌ＝２）に更新し（ステップＳ９−６）、ステップＳ９−８へ移行する。ステップＳ９−４の条件不成立時はステップＳ９−８へ移行する。
【０１０８】
ステップＳ９−８では、燃料性状が重質燃料であるか（ｆｕｅｌ＝３）をチェックする。その結果、重質燃料ならば、予め設定されている重質燃料の噴射量倍率ｔＨＥＡＶＹＡＭＰに、以下の（２）式に示すように噴射量倍率減衰係数ｔａｕａｍｐｄｍｐを用いたなまし演算を行って噴射量倍率ｔａｕａｍｐを算出し（ステップＳ９−９）、本処理から抜ける。  
ｔａｕａｍｐ＝１．０×（１−ｔａｕａｍｐｄｍｐ）＋ｔＨＥＡＶＹＡＭＰ×ｔａｕａｍｐｄｍｐ  …（２）
【０１０９】
重質燃料に対して予め設定される噴射量倍率ｔＨＥＡＶＹＡＭＰは、図１４に実線で示すように、中間燃料の噴射量倍率を１．０として、ポートウェットサイクルｗｅｔｃｙｃｌｅ毎に予め設定されている。尚、環境温度によって重質燃料の噴射量倍率が顕著に変化する場合には、ポートウェットサイクルｗｅｔｃｙｃｌｅとエンジン冷却水温との２次元マップから噴射量倍率ｔＨＥＡＶＹＡＭＰを設定するようにしても良い。
【０１１０】
一方、ステップＳ９−８の条件不成立時は、燃料性状が中間燃料であるか（ｆｕｅｌ＝２）をチェックし（ステップＳ９−１０）、中間燃料ならば、噴射量倍率減衰係数ｔａｕａｍｐｄｍｐに１．０をセットし（ステップＳ９−１１）、本処理を抜ける。ステップＳ９−１０の条件不成立時は、軽質燃料の噴射量倍率を予め設定されている噴射量倍率ｔＬＩＧＨＴＡＭＰとし（ステップＳ９−１２）、本処理を抜ける。
【０１１１】
軽質燃料に対して予め設定される噴射量倍率ｔＬＩＧＨＴＡＭＰは、図１４に破線で示すように、中間燃料の噴射量倍率を１．０として、ポートウェットサイクルｗｅｔｃｙｃｌｅ毎に予め設定されている。尚、環境温度によって軽質燃料の噴射量倍率が顕著に変化する場合には、ポートウェットサイクルｗｅｔｃｙｃｌｅとエンジン冷却水温との２次元マップから噴射量倍率ｔＬＩＧＨＴＡＭＰを設定するようにしても良い。
【０１１２】
以上の噴射量倍率算出処理においては、最も燃料噴射量が多い重質燃料の場合、噴射量倍率減衰係数ｔａｕａｍｐｄｍｐを用いて常に噴射量を減量する方向に制御するため、予め設定された重質燃料と使用燃料の燃料性状が完全に一致せずとも、最適な燃料噴射量に修正することができる。また、噴射量倍率減衰係数ｔａｕａｍｐｄｍｐが０．０になった時点、つまり中間燃料の燃料噴射量に収束した時点で燃料性状を中間燃料に更新することによって、重質燃料から中間燃料への燃料性状判定パターンとしている。
【０１１３】
また、上述のステップＳ９−３における噴射量倍率減衰係数ｔａｕａｍｐｄｍｐの減算量は、ポートウェットサイクルｗｅｔｃｙｃｌｅの１処理単位毎に設定可能であり、燃料噴射量に見合った減算量を任意に設定することができる。図１６に示すように、燃料性状学習値更新期間（燃料性状学習値更新期間については後述する）内で、噴射量倍率減衰係数ｔａｕａｍｐｄｍｐが０．０になるように比較的減算量を大きく設定する。
【０１１４】
つまり、中間燃料の噴射量倍率の反映率を上げていく速度を、ポートウェットサイクルｗｅｔｃｙｃｌｅの１処理単位毎に変更可能として、エンジン始動初期には比較的速く設定することで、燃料噴射量を減量せしめる時間を短縮し、燃料性状によって燃料噴射量に顕著な差が生じるエンジン始動初期に燃料性状判定を行うことで、判定精度を向上することができる。
【０１１５】
図１６〜図１８は、イグニッションスイッチのオン時に読み込んだ燃料性状学習値ｆｕｅｌ＿ｂｕｒａｍが重質燃料であったため、噴射量倍率減衰係数ｔａｕａｍｐｄｍｐの減算処理が実行される例を示している。
【０１１６】
図１６に示す例では、噴射量倍率減衰係数ｔａｕａｍｐｄｍｐが０．０になるまで減算された結果、燃料性状が中間燃料に更新され、中間燃料の噴射量倍率減衰係数である１．０がセットされる。図１７の例では、噴射量倍率減衰係数ｔａｕａｍｐｄｍｐの減算過程において、再度、燃料性状が重質燃料であると判定される。この場合、噴射量倍率減衰係数ｔａｕａｍｐｄｍｐは、ＰＩ補正的な挙動となり、燃料噴射量も同様な挙動を示すことになる。また、図１８の例は、燃料性状学習値更新期間外では、エンジン始動初期に較べ燃料性状によって燃料噴射量に顕著な差が生じないため、噴射量倍率減衰係数ｔａｕａｍｐｄｍｐの減算量が小さく設定される。
【０１１７】
［学習値書き込み（バックアップＲＡＭ書き込み）処理］
図２のメイン処理においては、以上のステップＳ９に続いて、ステップＳ１０の学習値ｆｕｅｌ＿ｂｕｒａｍのバックアップＲＡＭへの書き込み処理が実行される。
【０１１８】
この「バックアップＲＡＭの書き込み処理」の詳細は図１２に示され、ＴＤＣ−４０ｄｅｇ演算周期毎に、「エンジン回転数が設定値ｋＮＥＢＵ（例えば、ｋＮＥＢＵ＝３００）以上」で、且つ「燃焼状態検出サイクルｗｅｔｃｙｃｌｅｏｕｔが設定値ｋＷＥＴＢＵ（例えば、ｋＷＥＴＢＵ＝１０）以下」で、且つ「状態変化経験なし」の条件をチェックする（ステップＳ１０−１）。そして、ステップＳ１０−１における条件成立時はステップＳ１０−２へ移行し、条件不成立時は本処理を抜ける。
【０１１９】
ステップＳ１０−２では、「噴射量倍率減衰係数ｔａｕａｍｐｄｍｐが設定閾値ｋＦＵＥＬ２（例えば、ｋＦＵＥＬ２＝０．２）より大きい」条件をチェックする。条件成立時は、バックアップＲＡＭに今回の燃料性状ｆｕｅｌを学習値ｆｕｅｌ＿ｂｕｒａｍとして書き込み（ステップＳ１０−３）、本処理を抜ける。条件不成立時は、バックアップＲＡＭに中間燃料の学習値ｆｕｅｌ＿ｂｕｒａｍ（ｆｕｅｌ＿ｂｕｒａｍ＝２）を書き込み（ステップＳ１０−４）、本処理を抜ける。
【０１２０】
精度良く燃料性状を判定するには、燃料性状によって燃料噴射量に顕著な差が生じるエンジン始動初期の期間に限定しなければならない。従って、ステップＳ１０−１では、燃焼状態検出サイクルｗｅｔｃｙｃｌｅｏｕｔの条件によって燃料性状の学習値更新期間を限定するようにしている。また、回転数条件は、エンジン始動の初期動作であるエンジンクランキング期間を除外するためのものである。
【０１２１】
また、ステップＳ１０−１における「状態変化経験なし」条件の「状態変化」とは、エンジン始動前の電気負荷，エアコン，パワステ等の無負荷状態からこれらの負荷状態が変化したとき、エンジン始動前のアイドル状態からアクセル操作によってアイドル状態が解除されたとき、エンジン始動前の変速機のシフト位置がニュートラル状態からドライブ位置に操作されたときを指しており、状態変化が生じたときには、燃料性状に基づく燃料噴射量補正以外の補正が働き、燃料性状の判定精度を下げるため、状態変化を経験した場合は学習値の更新を禁止する。
【０１２２】
更に、ステップＳ１０−２の「噴射量倍率減衰係数ｔａｕａｍｐｄｍｐが設定閾値ｋＦＵＥＬ２以下」の条件は、予め設定された中間燃料に近い燃料性状である場合に学習値として記憶保持するための条件である。図１９にイグニッションスイッチのオン時に読み込んだ燃料性状学習値ｆｕｅｌ＿ｂｕｒａｍが重質燃料であったため、噴射量倍率減衰係数ｔａｕａｍｐｄｍｐの減算処理が実行される例を再提示する。
【０１２３】
この例は、噴射量倍率減衰係数ｔａｕａｍｐｄｍｐの減算過程において、一旦、燃料性状が重質燃料であると判定された後、再度、０．０近傍になるまで減算された例であるが、この様に燃料性状学習値更新期間内で噴射量倍率減衰係数ｔａｕａｍｐｄｍｐが０．０近傍になる場合は、ステップＳ１０−２の「噴射量倍率減衰係数ｔａｕａｍｐｄｍｐが設定閾値ｋＦＵＥＬ２以下」の条件により、予め設定された中間燃料に近い燃料性状であると判断し、学習値として記憶保持する。
【０１２４】
［噴射量算出処理］
次に、図２のメイン処理のステップＳ１１の「噴射量の算出」について説明する。この噴射量算出処理の詳細は、図１３に示され、ＴＤＣ演算周期毎に「燃料性状判定実施条件成立」の条件をチェックする（ステップＳ１１−１）。ステップＳ１１−１の条件成立時は、以下に示す（３）式の演算により、燃料噴射量ｔａｕｏｕｔを算出し（ステップＳ１１−２）、本処理を抜ける。  
ｔａｕｏｕｔ＝ｔａｕ×ｔａｕａｍｐ  …（３）
但し、ｔａｕｏｕｔ：燃料性状補正後の燃料噴射量
ｔａｕ      ：中間燃料の燃料噴射量
ｔａｕａｍｐ：噴射量倍率
【０１２５】
尚、燃料噴射量ｔａｕｏｕｔは、（３）式に代えて、以下の（４）式で表現するようにしても良い。  
ｔａｕｏｕｔ＝ｔｐ×（Ｆｆｂ＋Ｆｌｎ）×｛１＋（Ｆａｓ＋Ｆｔｗ＋Ｆｄａ）×ｔａｕａｍｐ＋  ・・・  ｝＋ｔｖ  …（４）
但し、ｔａｕｏｕｔ：補正後の燃料噴射量
ｔｐ        ：基本噴射量
Ｆｆｂ      ：空燃比フィードバック補正係数
Ｆｌｎ      ：空燃比補正学習値
Ｆａｓ      ：中間燃料の始動後増量補正係数
Ｆｔｗ      ：中間燃料の水温増量補正係数
Ｆｄａ      ：中間燃料の加速増量補正係数
ｔａｕａｍｐ：噴射量倍率
ｔｖ        ：電圧補正
【０１２６】
ステップＳ１１−１の燃料性状判定実施条件不成立時、つまり空燃比フィードバック制御開始時には、空燃比フィードバック制御による燃料噴射量補正と燃料性状に基づく燃料噴射量補正とが重複するため、燃料噴射量補正が複雑化することを避け、空燃比フィードバック制御による燃料噴射量補正に統一する。空燃比フィードバック制御の制御性に影響を与えないように、燃料性状に基づく燃料噴射量補正つまり噴射量倍率を徐変し、固定値（１．０）に収束させる。
【０１２７】
具体的には、噴射量倍率ｔａｕａｍｐをチェックし（ステップＳ１１−３）、１．０以上である場合は、噴射量倍率ｔａｕａｍｐから設定値ｋＴＡＵＤＭＰ（例えば、ｋＴＡＵＤＭＰ＝０．０２）ずつ減算する（ステップＳ１１−４）。ステップＳ１１−４での減算後、再度、噴射量倍率ｔａｕａｍｐをチェックし（ステップＳ１１−５）、１．０より小さい場合は、噴射量倍率ｔａｕａｍｐに１．０をセットした後（ステップＳ１１−６）、（３）式の演算を行って燃料噴射量ｔａｕｏｕｔを算出し（ステップＳ１１−２）、本処理を抜ける。
【０１２８】
ステップＳ１１−３の条件不成立時は、噴射量倍率ｔａｕａｍｐに設定値ｋＴＡＵＤＭＰずつ加算した後（ステップＳ１１−７）、再度、噴射量倍率ｔａｕａｍｐをチェックする（ステップＳ１１−８）。そして、加算結果が１．０以上の場合は、噴射量倍率ｔａｕａｍｐに１．０をセットした後（ステップＳ１１−６）、（３）式の演算により燃料噴射量ｔａｕｏｕｔを算出し（ステップＳ１１−２）、本処理を抜ける。ステップＳ１１−５或いはステップＳ１１−８の条件不成立時は、（３）式の演算により燃料噴射量ｔａｕｏｕｔを算出し（ステップＳ１１−２）、本処理を抜ける。
【図面の簡単な説明】
【０１２９】
【図１】エンジン制御系の構成図
【図２】メイン処理を示すフローチャート
【図３】イニシャル処理のフローチャート
【図４】点火回数算出処理のフローチャート
【図５】燃焼状態判定結果取得処理のフローチャート
【図６】燃料性状判定実施条件成立判定処理のフローチャート
【図７】ポートウェットサイクル算出処理のフローチャート
【図８】燃焼状態判定値算出処理のフローチャート
【図９】燃焼状態判定計数算出処理のフローチャート
【図１０】燃料性状判定処理のフローチャート
【図１１】噴射量倍率算出処理のフローチャート
【図１２】学習値書き込み処理のフローチャート
【図１３】噴射量算出処理のフローチャート
【図１４】中間燃料の燃料噴射量を基準にした重質燃料及び軽質燃料の噴射量倍率を示す説明図
【図１５】燃焼状態判定結果の出力タイミングと各処理タイミングとの関係を示す説明図
【図１６】重質燃料から中間燃料への燃料性状判定パターン時に重質燃料判定されない場合の噴射量倍率減衰係数の挙動を示す説明図
【図１７】重質燃料から中間燃料への燃料性状判定パターン時に重質燃料判定を繰り返す場合の噴射量倍率減衰係数の挙動を示す説明図
【図１８】重質燃料から中間燃料への燃料性状判定パターン時に燃料性状学習値更新期間外で減算量を小さくした場合の噴射量倍率減衰係数の挙動を示す説明図
【図１９】重質燃料から中間燃料への燃料性状判定パターン時に燃料性状学習値更新期間内で０近傍まで減算された場合の噴射量倍率減衰係数の挙動を示す説明図
【図２０】ポートウェットサイクルと燃焼状態検出サイクルとの関係を示す説明図
【符号の説明】
【０１３０】
１  エンジン
３０  燃焼状態検出装置
５０  エンジン制御装置
５１  ポートウェット検出部
５２  燃料性状判定部
５３  燃料噴射量補正部
ｆｕｅｌ  燃料性状判定値
ｆｕｅｌ＿ｂｕｒａｍ  燃料性状学習値
ｉｏｎ，ｉｏｎｓｍ  燃焼状態判定値
ｔａｕａｍｐ  噴射量倍率
ｔａｕａｍｐｄｍｐ  噴射量倍率減衰係数
ｔａｕｏｕｔ  燃料噴射量
ｗｅｔｃｙｃｌｅ  ポートウェットサイクル
ｗｅｔｃｙｃｌｅｏｕｔ  燃焼状態検出サイクル
【図１】
2010037984.tif 000003
【図２】
2010037984.tif 000004
【図３】
2010037984.tif 000005
【図４】
2010037984.tif 000006
【図５】
2010037984.tif 000007
【図６】
2010037984.tif 000008
【図７】
2010037984.tif 000009
【図８】
2010037984.tif 000010
【図９】
2010037984.tif 000011
【図１０】
2010037984.tif 000012
【図１１】
2010037984.tif 000013
【図１２】
2010037984.tif 000014
【図１３】
2010037984.tif 000015
【図１４】
2010037984.tif 000016
【図１５】
2010037984.tif 000017
【図１６】
2010037984.tif 000018
【図１７】
2010037984.tif 000019
【図１８】
2010037984.tif 000020
【図１９】
2010037984.tif 000021
【図２０】
2010037984.tif 000022