(57)【特許請求の範囲】
【請求項１】
内燃機関の始動後のアイドル時に、内燃機関の回転数を目標回転数に収束させるよう回転数フィードバック制御を実施する回転数制御手段と、
前記回転数制御手段による回転数フィードバック制御時の制御量の挙動に応じて燃料性状を判定する燃料性状判定手段と、
を備え、
前記回転数制御手段は、機関回転数を目標回転数に収束させるよう点火時期をフィードバック制御する点火時期制御手段であり、
前記燃料性状判定手段は、前記点火時期制御手段によるフィードバック制御時に機関回転数が目標回転数に対して安定化した時の点火時期制御量と、回転数の安定化後に収束する点火時期制御量とを算出し、それら点火時期制御量の差に基づいて燃料性状を判定することを特徴とする内燃機関の制御装置。
【請求項２】
前記回転数制御手段は、内燃機関の始動後のアイドル時に、機関回転数を目標回転数に収束させるよう内燃機関への吸入空気量をフィードバック制御する吸気量制御手段をさらに備え、前記点火時期制御手段は、前記吸入空気量のフィードバック制御にて吸気制御量が上限値に達した時、それに引き続き、同じく機関回転数を目標回転数に収束させるよう点火時期をフィードバック制御し、
前記燃料性状判定手段は、
前記点火時期制御手段によるフィードバック制御時に機関回転数が目標回転数に対して安定化した時の点火時期制御量を、前記吸気量制御手段によるフィードバック制御時の吸気制御量の上限値により補正し、該補正後の点火時期制御量に応じて燃料性状を判定する第１の判定手段と、
前記点火時期制御手段によるフィードバック制御時に機関回転数が目標回転数に対して安定化した時の点火時期制御量と、回転数の安定化後に収束する点火時期制御量との差に基づいて燃料性状を判定する第２の判定手段とを備え、
機関回転数が目標回転数に対して安定化し、その後点火時期制御量が収束するまでは前記第１の判定手段による燃料性状判定を実施し、点火時期制御量が収束すると第２の判定手段による燃料性状判定に移行することを特徴とする請求項１に記載の内燃機関の制御装置。
【請求項３】
請求項２に記載の内燃機関の制御装置において、
機関始動時の「ピーク回転数」又は「ピーク回転数と目標回転数との偏差」により燃料性状を判定する第３の判定手段を更に備え、前記点火時期制御手段によるフィードバック制御時に機関回転数が目標回転数に対して安定化する以前は、前記第３の判定手段により燃料性状を判定する内燃機関の制御装置。
【請求項４】
請求項１〜３の何れか一項に記載の内燃機関の制御装置において、
燃料性状の判定に用いるための点火時期制御量を、その時の点火時期の進角度合に応じて補正する内燃機関の制御装置。
【請求項５】
前記判定した燃料性状を、内燃機関の運転停止までにバックアップし、次の機関始動時に新たに燃料性状が判定されるまでは、前記バックアップした燃料性状の判定値を読み出して用いる請求項１〜４の何れか一項に記載の内燃機関の制御装置。
【請求項６】
請求項５に記載の内燃機関の制御装置において、
前回の運転時にバックアップした燃料性状の判定値に対して、新たに判定した燃料性状を所定のなまし率にてなましつつ加算し、その加算した値を燃料性状の判定値とする内燃機関の制御装置。
【請求項７】
請求項６に記載の内燃機関の制御装置において、
燃料性状の判定値をバックアップするためのメモリに対して車載バッテリが新たに接続される時、その当初においては新たに判定した燃料性状のなまし度合を小さくする内燃機関の制御装置。
【請求項８】
請求項６に記載の内燃機関の制御装置において、
燃料給油の直後は、新たに判定した燃料性状のなまし度合を小さくする内燃機関の制御装置。
【請求項９】
請求項２に記載の内燃機関の制御装置において、
前回の運転時にバックアップした燃料性状の判定値により、新たに判定した燃料性状をなまし、そのなました値を燃料性状の判定値とすることとし、第２の判定手段による燃料性状の判定値をなます時は、第１の判定手段による燃料性状の判定値をなます時に比べてなまし度合を小さくする内燃機関の制御装置。
【請求項１０】
請求項３に記載の内燃機関の制御装置において、
前回の運転時にバックアップした燃料性状の判定値により、新たに判定した燃料性状をなまし、そのなました値を燃料性状の判定値とすることとし、第３の判定手段による燃料性状の判定値をなます時は、第１又は第２の判定手段による燃料性状の判定値をなます時に比べてなまし度合を大きくする内燃機関の制御装置。
【請求項１１】
請求項２に記載の内燃機関の制御装置において、
アイドル状態が解除された時、或いは前記点火時期制御手段によるフィードバック制御の開始前後で電気負荷等の状態が変化した時、前記第１又は第２の判定手段による燃料性状の判定を禁止する内燃機関の制御装置。
【請求項１２】
内燃機関の始動時及び暖機中に、所定の燃料噴射量増量を行う燃料噴射制御システムに適用され、前記判定した燃料性状に応じて、燃料噴射量増量の度合を変更する請求項１〜１１の何れか一項に記載の内燃機関の制御装置。
【請求項１３】
内燃機関の始動後のアイドル時に、内燃機関の回転数を目標回転数に収束させるよう回転数フィードバック制御を実施する回転数制御手段と、
前記回転数制御手段による回転数フィードバック制御時の制御量の挙動に応じて燃料性状を判定する燃料性状判定手段と、
を備え、
前記回転数制御手段は、機関回転数を目標回転数に収束させるよう内燃機関への吸入空気量をフィードバック制御する吸気量制御手段と、該吸入空気量のフィードバック制御にて吸気制御量が上限値に達した時、それに引き続き、同じく機関回転数を目標回転数に収束させるよう点火時期をフィードバック制御する点火時期制御手段とからなり、
前記燃料性状判定手段は、前記点火時期制御手段によるフィードバック制御時に機関回転数が目標回転数に対して安定化した時の点火時期制御量を、前記吸気量制御手段によるフィードバック制御時の吸気制御量の上限値により補正し、その補正後の点火時期制御量に応じて燃料性状を判定する内燃機関の制御装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、内燃機関の始動時に燃料性状レベルを判定し、その判定結果を燃料噴射制御等に反映させる内燃機関の制御装置に関するものである。
【０００２】
【従来の技術】
この種の従来技術として、例えば特許第２８３３０２０号公報の「エンジンの燃料噴射装置」が知られている。同公報の装置は、エンジン始動時における回転数の挙動に着目し、エンジン始動後のアイドル回転数のピーク値を計測し、そのピーク値に基づいて燃料性状を判定する、或いはエンジン始動後にアイドル回転数がピーク値に達するまでの時間を計測し、その時間に基づいて燃料性状を判定するものであった。
【０００３】
これにより、エンジン回転数の挙動に応じて、使用する燃料（ガソリン）が重質ガソリンか軽質ガソリンかといった、燃料性状が正しく判定でき、ひいては燃料噴射制御が好適に実施されるものとしていた。
【０００４】
【発明が解決しようとする課題】
ところが、エンジン始動後のピーク回転数はそれ自体ばらつきが大きく、特に燃料性状が重質になるほど、その傾向は顕著となる。つまり、例えば重質燃料の場合、不測の失火が発生し易くなり、それが原因でピーク回転数がばらつく。又このとき、吸気管負圧が変動し、インジェクタによる噴射燃料の蒸発率がばらつくと共に、空燃比がばらつき、ひいては機関回転数が不安定になるという事態を招く。
【０００５】
そのため、上記公報の従来技術の場合、燃料性状レベルが誤って判定されるおそれがあり、それが原因で燃料噴射制御の制御性が悪化するという問題があった。
【０００６】
本発明は、上記問題に着目してなされたものであって、従来の課題を解消し、燃料性状を精度良く判定することができる内燃機関の制御装置を提供することを目的とする。
【０００７】
【課題を解決するための手段】
請求項１、１３に記載の発明では、内燃機関の始動後のアイドル時に、内燃機関の回転数を目標回転数に収束させるよう回転数フィードバック制御を実施する回転数制御手段と、前記回転数制御手段による回転数フィードバック制御時の制御量の挙動に応じて燃料性状を判定する燃料性状判定手段とを備える。
【０００８】
本構成によれば、機関回転数が目標値に収束するようフィードバック制御が実施されるため、使用される燃料の燃料性状レベル（揮発性）に関係無く、機関回転数やその時発生する吸気管負圧が安定し、噴射燃料の蒸発率もばらつくこと無く安定する。このとき、噴射燃料の蒸発率が安定化した状態下では、燃料性状レベルに応じて回転数フィードバック制御時の制御量が相違するため、この制御量の挙動に応じて燃料性状を判定することにより、燃料性状を精度良く判定することができる。
【０００９】
また、請求項１に記載の発明では、点火時期制御手段により、機関回転数を目標回転数に収束させるよう点火時期をフィードバック制御することを前提とし、以下の特徴を有する。すなわち、
・請求項１の発明では、点火時期制御手段によるフィードバック制御時に機関回転数が目標回転数に対して安定化した時の点火時期制御量と、回転数の安定化後に収束する点火時期制御量とを算出し、それら点火時期制御量の差に基づいて燃料性状を判定する。
【００１０】
上記請求項１の発明では、例えば、機関始動時に機関回転数がピーク回転数に達し、その後一旦目標回転数を下回る場合には、点火時期が進角側に制御されて回転数上昇が図られる。この時の点火時期制御量が燃料性状判定のためのパラメータとなる。かかる場合にも、回転数安定の状態下、すなわち蒸発率安定の状態下では、使用される燃料の燃料性状レベルに応じて点火時期制御量が相違するため、この制御量の挙動に応じて燃料性状を判定することで、燃料性状を精度良く判定することができる。
【００１１】
機関回転数が目標回転数に対して安定化した時の点火時期制御量は、燃料性状の影響を含め回転数フィードバック時に要した全ての制御量であるのに対し、回転数の安定化後に収束する点火時期制御量は、内燃機関の適合ずれや経時変化に相当する制御量である。そのため、特に請求項４の発明においては、上述の制御量の差により燃料性状を判定することで、内燃機関の適合ずれや経時変化による影響がキャンセルされ、燃料性状の判定精度がより一層向上する。
【００１２】
他方、請求項１３に記載の発明では、吸気量制御手段による吸気量制御と、それに続く点火時期制御手段による点火時期制御とを実施することとし、点火時期制御手段によるフィードバック制御時に機関回転数が目標回転数に対して安定化した時の点火時期制御量を、吸気量制御手段によるフィードバック制御時の吸気制御量の上限値により補正し、その補正後の点火時期制御量に応じて燃料性状を判定する。
【００１３】
吸気制御量の上限値による補正を行うことは、燃料性状判定のパラメータとなる点火時期制御量から、吸気量制御手段による経時変化の影響をキャンセルすることを意味する。それ故、より一層精度の高い燃料性状判定が実施できるようになる。
【００１８】
一方、請求項２に記載の発明では、内燃機関の始動後のアイドル時に、吸気量制御と、それに続く点火時期制御とにより機関回転数が目標回転数に収束するようフィードバック制御される。第１の判定手段は、点火時期制御手段によるフィードバック制御時に機関回転数が目標回転数に対して安定化した時の点火時期制御量を、吸気量制御手段によるフィードバック制御時の吸気制御量の上限値により補正し、該補正後の点火時期制御量に応じて燃料性状を判定する。また、第２の判定手段は、点火時期制御手段によるフィードバック制御時に機関回転数が目標回転数に対して安定化した時の点火時期制御量と、回転数の安定化後に収束する点火時期制御量との差に基づいて燃料性状を判定する。そして、機関回転数が目標回転数に対して安定化し、その後点火時期制御量が収束するまでは前記第１の判定手段による燃料性状判定を実施し、点火時期制御量が収束すると第２の判定手段による燃料性状判定に移行する。
【００１９】
本請求項２の発明によれば、機関始動後、第１及び第２の判定手段が順次実施され、それら各々の燃料性状判定において、点火時期制御量に基づいて燃料性状を精度良く判定することができる。
【００２０】
ここで上記第１及び第２の判定手段は何れも、従来装置に比べて燃料性状を高精度に判定できるものであるが、それら両判定手段を比べると、第２の判定手段による燃料性状判定の方が幾分その精度が高い。従って、上記の如く第１及び第２の判定手段を順次切り換えて実施することで、機関回転数が目標回転数に対して安定化した時点と、その後点火時期制御量が収束した時点とにおいて、それぞれ最も適した手法にて燃料性状が判定できる。
【００２１】
また、請求項３に記載したように、機関始動時の「ピーク回転数」又は「ピーク回転数と目標回転数との偏差」により燃料性状を判定する第３の判定手段を更に備え、前記点火時期制御手段によるフィードバック制御時に機関回転数が目標回転数に対して安定化する以前は、前記第３の判定手段により燃料性状を判定するように構成すれば、内燃機関の始動後、点火時期フィードバック制御や吸気量制御等による燃料性状判定のためのパラメータが揃うまでの期間において、燃料性状が判定できないといった不都合が解消される。
【００２２】
また、点火時期制御量に応じて燃料性状を判定する装置（請求項１〜３の何れか一項の装置）では、その時々の点火時期の進角量に応じてその都度回転数の上昇度合（トルクアップの度合）が変わることが考えられる。そのため、点火時期の進角量が変わると、燃料性状の判定結果に影響が及ぶ。そこで、請求項４に記載の発明では、燃料性状の判定に用いるための点火時期制御量を、その時の点火時期の進角度合に応じて補正する。これにより、より一層精度の高い燃料性状判定が実施できるようになる。
【００２３】
請求項５に記載の発明では、前記判定した燃料性状を、内燃機関の運転停止までにバックアップし、次の機関始動時に新たに燃料性状が判定されるまでは、前記バックアップした燃料性状の判定値を読み出して用いる。これにより、内燃機関の始動後に、燃料性状判定のためのパラメータが用意されるまでの間、バックアップ値での代用により燃料性状が判断できる。
【００２４】
またこのとき、請求項６に記載したように、前回の運転時にバックアップした燃料性状の判定値に対して、新たに判定した燃料性状を所定のなまし率にてなましつつ加算し、その加算した値を燃料性状の判定値とする。上記の如くなまし演算を行うことにより、実用化に適した制御装置が具体化できる。
【００２５】
請求項７に記載の発明では、燃料性状の判定値をバックアップするためのメモリに対して車載バッテリが新たに接続される時、その当初においては新たに判定した燃料性状のなまし度合を小さくする。ここで、なまし度合を小さくするとは、今回新たに判定した燃料性状を真値にいち早く収束させるよう、今回値の反映率を上げることを意味する。これにより、バッテリ交換時等、バックアップ値が無くなった時にも、燃料性状が正しく判定できることとなる。
【００２６】
また、請求項８に記載の発明では、燃料給油の直後は、新たに判定した燃料性状のなまし度合を小さくする。この場合、給油により燃料性状が変化すると考えられる時に、燃料性状を真値にいち早く収束させることができ、燃料性状が正しく判定できる。
【００２７】
請求項９に記載の発明では、前回の運転時にバックアップした燃料性状の判定値により、新たに判定した燃料性状（今回値）をなまし、そのなました値を燃料性状の判定値とすることとし、第２の判定手段による燃料性状の判定値をなます時は、第１の判定手段による燃料性状の判定値をなます時に比べてなまし度合を小さくする。
【００２８】
要するに、上述した通り第１及び第２の判定手段を比べると、第２の判定手段の方が燃料性状の判定精度が幾分高いため、なまし度合を小さくし、今回値の反映率を高くする。また、精度が比較的低い第１の判定手段の燃料性状判定値をなます時は、なまし度合を幾分大きくし、今回値の反映率を低くする。これにより、燃料性状の判定結果の信頼性をより一層向上させることが可能となる。
【００２９】
また、第３の判定手段は、第１及び第２の判定手段に比べて燃料性状の判定精度が幾分低い。そこで、請求項１０に記載したように、第３の判定手段による燃料性状の判定値をなます時は、第１又は第２の判定手段による燃料性状の判定値をなます時に比べてなまし度合を大きくする。これにより、燃料性状の判定結果の信頼性がより一層向上する。
【００３０】
請求項１１に記載の発明では、アイドル状態が解除された時、或いは前記点火時期制御手段によるフィードバック制御の開始前後で電気負荷等の状態が変化した時、前記第１又は第２の判定手段による燃料性状の判定を禁止するので、燃料性状判定のパラメータが誤って認識されることがなく、本装置の信頼性が向上する。
【００３１】
請求項１２に記載したように、内燃機関の始動時及び暖機中に、所定の燃料噴射量増量を行う燃料噴射制御システムに適用され、前記判定した燃料性状に応じて、燃料噴射量増量の度合を変更するのであれば、燃料噴射制御の制御性が向上し、ひいては、排気エミッションの良化を図ることができる。
【００３２】
【発明の実施の形態】
（第１の実施の形態）
以下、この発明を具体化した第１の実施の形態を図面に従って説明する。
【００３３】
本実施の形態の装置は、ガソリン噴射式多気筒内燃機関（以下、エンジンという）の始動時及び暖機中における燃料噴射量を最適に制御する燃料噴射制御システムとして具体化されるものであり、各気筒に燃料を噴射供給するためのインジェクタは、マイクロコンピュータを主体とする電子制御装置（以下、ＥＣＵという）によりその駆動が制御される。特にＥＣＵは、使用される燃料の燃料性状をエンジン始動時に判定し、その判定結果に応じて燃料噴射量を好適に制御する。以下には本システムを詳細に説明する。
【００３４】
図１は、本実施の形態にかかるエンジン制御システムの概要を示す構成図である。図１において、エンジン１には吸気管２と排気管３とが接続されている。吸気管２にはスロットル弁４が設けられており、スロットル弁４の開度はスロットルアクチュエータ５の駆動により制御される。また、このスロットル弁４にはスロットル開度センサ６が配設され、吸気管２のサージタンク７には吸気圧センサ８が配設されている。
【００３５】
シリンダ９内にはピストン１０が配設され、ピストン１０上方の燃焼室１３は、吸気バルブ１４及び排気バルブ１５を介して前記吸気管２及び排気管３に連通している。排気管３には、限界電流式空燃比センサからなるＡ／Ｆセンサ１６が配設されており、同Ａ／Ｆセンサ１６は、排ガス中の酸素濃度（或いは、未燃ガスである一酸化炭素の濃度）に比例して広域で且つリニアな空燃比信号を出力する。また、シリンダ９（ウォータジャケット）には、冷却水温を検出するための水温センサ２１が配設されている。
【００３６】
エンジン１の吸気ポート１７には、気筒毎に電磁駆動式のインジェクタ１８が設けられており、インジェクタ１８は図示しない燃料タンクから供給される燃料（ガソリン）を噴射する。シリンダヘッド１２には点火プラグ１９が配設されている。燃焼に伴う図示しないクランク軸の回転は回転数センサ２０により検出される。
【００３７】
ＥＣＵ３０は、ＣＰＵ３１、ＲＯＭ３２、ＲＡＭ３３、バックアップＲＡＭ３４等からなるマイクロコンピュータを中心に構成される。ＥＣＵ３０には、前述したスロットル開度センサ６、吸気圧センサ８、Ａ／Ｆセンサ１６、回転数センサ２０、水温センサ２１等から各々の検出信号が入力され、ＥＣＵ３０は各検出信号に基づいてスロットル開度、吸気圧、空燃比（Ａ／Ｆ）、エンジン回転数、エンジン水温を検知する。
【００３８】
ＲＯＭ３２内のプログラムに従い各種演算を行うＣＰＵ３１は、その時々のエンジン運転状態に基づいて最適なる燃料噴射量、点火時期、吸入空気量を演算し、その演算結果に対応する制御信号によりインジェクタ１８、点火プラグ１９、スロットルアクチュエータ５の駆動を制御する。また、ＣＰＵ３１は、エンジン始動時に、エンジン回転数を目標アイドル回転数にフィードバック（Ｆ／Ｂ）制御すると共に燃料性状レベルを判定し、その燃料性状レベルにより燃料噴射量を補正する。バックアップＲＡＭ３４は、図示しないバッテリからの給電によりイグニッションスイッチのオフ時にも記憶内容を保持するメモリであり、ＣＰＵ３１により判定される燃料性状レベルを学習値として記憶保持する。
【００３９】
次に、本制御システムの作用を説明する。先ず始めに、図２のタイムチャートを参照して、ＣＰＵ３１による回転数Ｆ／Ｂ制御の概要を説明する。図２には、エンジン始動時におけるエンジン回転数Ｎｅの挙動や各種制御量の推移を示す。
【００４０】
エンジン回転数Ｎｅは、エンジン始動に伴い急激に上昇し、時刻ｔ１でピーク回転数Ｎｐｋに達した後下降に転じ、時刻ｔ２で目標とする始動時アイドル回転数（目標回転数Ｎｔ）を一旦下回る。ピーク回転数Ｎｐｋは、燃料性状に応じて変わることが一般に知られており、燃料が重質ガソリンであるほど（揮発性が低いほど）、ピーク回転数Ｎｐｋが小さくなる。目標回転数Ｎｔは、エンジン水温等に応じて設定されるアイドル回転数であり、一例として１２００ｒｐｍとする。
【００４１】
時刻ｔ２では、エンジン回転数Ｎｅを目標回転数Ｎｔに収束させるための吸気Ｆ／Ｂ制御が開始される。つまり、その時々のエンジン回転数Ｎｅと目標回転数Ｎｔとの差（回転数偏差ΔＮ）に応じて吸気Ｆ／Ｂ量ｑｉが算出され、その吸気Ｆ／Ｂ量ｑｉに基づいてスロットルアクチュエータ５が駆動され吸入空気量が増量される。
【００４２】
吸気Ｆ／Ｂ制御の開始後、時刻ｔ３では、吸気Ｆ／Ｂ量ｑｉが上限値ｑｉＭＡＸに達するため、それ以上の吸気量増量は行われず、これに代わって点火時期Ｆ／Ｂ制御が開始される。つまり、回転数偏差ΔＮに応じて点火時期Ｆ／Ｂ量ａｉが算出され、その点火時期Ｆ／Ｂ量ａｉに基づいて点火時期が制御される。時刻ｔ３以降、点火時期Ｆ／Ｂ量ａｉにより点火時期が進角側に制御される。この点火時期Ｆ／Ｂ制御により、エンジン回転数Ｎｅが目標回転数Ｎｔに次第に収束する。
【００４３】
その後、時刻ｔ４では、エンジン回転数Ｎｅが目標回転数Ｎｔにほぼ収束し、安定化する。こうしてエンジン回転数Ｎｅが安定化すると、その時の点火時期Ｆ／Ｂ量ａｉが、回転数安定化のために要した最大の点火時期Ｆ／Ｂ量（最大値ａｉＭＡＸ）であるとして算出される。そして、点火Ｆ／Ｂ量の最大値ａｉＭＡＸが算出されたことを示す最大値算出完了フラグｘａｉＭＡＸに「１」がセットされる。
【００４４】
更にその後、点火時期Ｆ／Ｂ量ａｉが遅角側に次第に戻される。時刻ｔ５では、点火時期Ｆ／Ｂ量ａｉが収束したとみなされ、その時のａｉ値が最小値ａｉＭＩＮとして算出される。そして、点火Ｆ／Ｂ量の最小値ａｉＭＩＮが算出されたことを示す最小値算出完了フラグｘａｉＭＩＮに「１」がセットされる。
【００４５】
なお、点火時期Ｆ／Ｂ量ａｉの進角量が所定値（例えば、進角５°ＣＡ）以上になる期間Ｔａでは、燃料増量が補助的に行われる。これにより、失火の発生が抑制される。
【００４６】
次いで、ＣＰＵ３１による回転数Ｆ／Ｂ制御手順、並びに燃料性状レベルの判定手順について図３〜図１１のフローチャートを用いて説明する。
図３は、エンジン始動時における回転数Ｆ／Ｂ制御の概要を示すフローチャートであり、本処理はＣＰＵ３１により所定時間毎に実行される。図３において、ステップ１１０では、エンジン回転数Ｎｅがピーク回転数Ｎｐｋに達した後、目標回転数Ｎｔ以下になったか否かを判別し、ＹＥＳであればステップ１１２に進み、Ｆ／Ｂ開始フラグＸＦＢＯＮに「１」をセットする。続くステップ１１４では、 ＸＦＢＯＮ＝１であるか否かを判別する。そして、ＸＦＢＯＮ＝１であることを条件に、ステップ１２０以降の吸気又は点火時期のＦ／Ｂ制御を実施する。
【００４７】
つまり、ステップ１２０では、吸気Ｆ／Ｂ制御による吸気Ｆ／Ｂ量ｑｉが所定の上限値ｑｉＭＡＸ未満であるか否かを判別する。ここで、上限値ｑｉＭＡＸは、例えば図１２に示す関係を用い、ピーク回転数Ｎｐｋ又はピーク回転数Ｎｐｋと目標回転数Ｎｔとの偏差（Ｎｐｋ−Ｎｔ）に応じて設定されるようになっており、ピーク回転数Ｎｐｋが高いほど、又は偏差（Ｎｐｋ−Ｎｔ）が大きいほど、上限値ｑｉＭＡＸが高い値に設定される。
【００４８】
そして、ｑｉ＜ｑｉＭＡＸ（ステップ１２０がＹＥＳ）であれば、ステップ１３０で吸気Ｆ／Ｂ制御を実施する。この吸気Ｆ／Ｂ制御では、図４（ａ）に示す通り、目標回転数Ｎｔからエンジン回転数Ｎｅを減算して回転数偏差ΔＮを求め（ステップ１３１）、その回転数偏差ΔＮに応じてＦ／Ｂ補正項ｋｑｉを算出する（ステップ１３２）。また、吸気Ｆ／Ｂ量ｑｉの前回値に対して、前記算出したＦ／Ｂ補正項ｋｑｉを加算し、その和を吸気Ｆ／Ｂ量ｑｉの今回値とする（ステップ１３３）。
【００４９】
図３に戻り、吸気Ｆ／Ｂ量ｑｉが上限値ｑｉＭＡＸに達していれば（ステップ１２０がＮＯ）、ステップ１４０に進み、吸気Ｆ／Ｂ制御の上限値ｑｉＭＡＸをＲＡＭ３３に保存する。
【００５０】
その後、ステップ１５０では点火時期Ｆ／Ｂ制御を実施する。この点火時期Ｆ／Ｂ制御では、図４（ｂ）に示す通り、目標回転数Ｎｔからエンジン回転数Ｎｅを減算して回転数偏差ΔＮを求め（ステップ１５１）、その回転数偏差ΔＮに応じてＦ／Ｂ補正項ｋａｉを算出する（ステップ１５２）。また、点火時期Ｆ／Ｂ量ａｉの前回値に対して、前記算出したＦ／Ｂ補正項ｋａｉを加算し、その和を点火時期Ｆ／Ｂ量ａｉの今回値とする（ステップ１５３）。
【００５１】
ステップ１５０の実施後、ステップ１６０では、点火時期Ｆ／Ｂ量ａｉに応じて燃料増量を行う。この燃料増量の処理では、例えば図１３に示す関係を用い、点火時期Ｆ／Ｂ量ａｉに応じて燃料増量係数を求め、その燃料増量係数にて燃料噴射量を増量補正する。なお、図１３の関係において、所定進角量（５°ＣＡ）までの領域は不感帯となっている。
【００５２】
上記吸気Ｆ／Ｂ制御、点火時期Ｆ／Ｂ制御において、Ｆ／Ｂ補正項ｋｑｉ，ｋａｉは、比例項（ｐ項）及び積分項（ｉ項）を加算したもの、或いは比例項そのものであってもよい。
【００５３】
図３の処理によれば、図２の時刻ｔ２〜ｔ３の期間において吸気Ｆ／Ｂ制御が実施され、時刻ｔ３以降、吸気Ｆ／Ｂ制御の上限値ｑｉＭＡＸが保持されると共に、点火時期Ｆ／Ｂ制御が実施される。また、同図の期間Ｔａで燃料増量が実施される。
【００５４】
次に、燃料性状レベルの判定手順について図５及び図６のフローチャートを用いて説明する。
先ず図５のステップ２０１では、エンジン水温Ｔｗが所定温度（本実施の形態では７０℃）以下であるか否かを判別し、ＮＯであれば、その本処理を終了する。すなわち、エンジンの暖機状態（Ｔｗ＞７０℃）では、燃料性状レベルの違いがエンジン運転の挙動に現れにくいため、後続の燃料性状判定を実施しない。
【００５５】
ステップ２０２では、ピーク回転数Ｎｐｋの検出が既に完了しているか否かを判別する。ステップ２０２がＮＯの場合、ステップ２０３に進み、バックアップＲＡＭ３４内に記憶されている学習値ＫＬを、燃料性状レベルを判定するための本判定値として確定する。かかる場合、この本判定値を用い、加速増量を行うための過渡燃料噴射量や、スロットル開度の変化量に応じて全気筒噴射を行うための非同期噴射量を補正する（ステップ２０８）。その後、イグニッションスイッチのオフ時でなければ、そのまま本処理を一旦終了する。
【００５６】
一方、ステップ２０１，２０２が共にＹＥＳの場合、第１の燃料性状判定値ＫＮ１、第２の燃料性状判定値ＫＮ２、第３の燃料性状判定値ＫＮ３をステップ２０４以降の手順にて算出する。
【００５７】
すなわち、ステップ２０４では、第２の燃料性状判定値ＫＮ２が既に算出済みであるか否かを判別し、続くステップ２０５では、第１の燃料性状判定値ＫＮ１が既に算出済みであるか否かを判別する。ＫＮ１，ＫＮ２が共に算出されていなければステップ３００に進み、ピーク回転数Ｎｐｋと目標回転数Ｎｔとの偏差ΔＮｐｔに基づいて第１の燃料性状判定値ＫＮ１を算出する。
【００５８】
また、続くステップ４００では、前記図４（ｂ）の処理による点火時期Ｆ／Ｂ量ａｉをモニタし、その最大値ａｉＭＡＸを算出する。但し、ステップ３００，４００の詳細については後述する。
【００５９】
その後、ステップ２０６では、点火時期Ｆ／Ｂ量の最大値ａｉＭＡＸが既に算出され、且つ点火時期Ｆ／Ｂ制御の開始前後で状態変化が無いか否かを判別する。ａｉＭＡＸの算出完了は、最大値算出完了フラグｘａｉＭＡＸにより判断する。また、状態変化の判定に際し、点火時期Ｆ／Ｂ制御の開始前と開始後とを比較して、
・電気負荷、エアコン、パワステ等の負荷状態が変化していない時、
・アイドル状態が解除されていない時、
・変速機のシフト位置がドライブ位置に操作されていない時、
などに状態変化が無いと判断される。
【００６０】
前記ステップ３００によるＫＮ１値の算出直後には、ａｉＭＡＸ値が算出されていないためにステップ２０６がＮＯとなり、続くステップ２０７では、前記算出した第１の燃料性状判定値ＫＮ１を本判定値として確定する。このとき、先のステップ２０３で学習値ＫＬが本判定値として確定されている場合には、その学習値ＫＬが第１の燃料性状判定値ＫＮ１により更新される。そして、その本判定値（ＫＮ１）を用いて過渡燃料噴射量や非同期噴射量を補正する（ステップ２０８）。
【００６１】
上記の如く第１の燃料性状判定値ＫＮ１が算出されると、次に本処理が実行される時、ステップ２０５がＹＥＳとなり、ステップ３００を読み飛ばしてステップ４００に進む。そして、点火時期Ｆ／Ｂ量の最大値ａｉＭＡＸが算出され、且つ状態変化が無いと判断されると（ステップ２０６がＹＥＳ）、図６のステップ５００に進み、点火時期Ｆ／Ｂ量の最大値ａｉＭＡＸに基づいて第２の燃料性状判定値ＫＮ２を算出する。
【００６２】
また、続くステップ６００では、前記図４（ｂ）の処理による点火時期Ｆ／Ｂ量ａｉをモニタし、その最小値ａｉＭＩＮを算出する。但し、ステップ５００，６００の詳細については後述する。
【００６３】
その後、ステップ２１１では、点火時期Ｆ／Ｂ量の最小値ａｉＭＩＮが既に算出され、且つ点火時期Ｆ／Ｂ制御の開始前後で状態変化が無いか否かを判別する。ａｉＭＩＮの算出完了は、最小値算出完了フラグｘａｉＭＩＮにより判断する。
【００６４】
前記ステップ５００によるＫＮ２値の算出直後には、ａｉＭＩＮ値が算出されていないためにステップ２１１がＮＯとなり、続くステップ２１２では、前記算出した第２の燃料性状判定値ＫＮ２を本判定値として確定する。このとき、先のステップ２０７で第１の燃料性状判定値ＫＮ１が本判定値として確定されている場合には、そのＫＮ１が第２の燃料性状判定値ＫＮ２により更新される。そして、その本判定値（ＫＮ２）を用いて過渡燃料噴射量や非同期噴射量を補正する（図５のステップ２０８）。
【００６５】
上記の如く第２の燃料性状判定値ＫＮ２が算出されると、次に本処理が実行される時、図５のステップ２０４がＹＥＳとなり、そのまま図６のステップ６００に進む。そして、点火時期Ｆ／Ｂ量の最小値ａｉＭＩＮが算出され、且つ状態変化が無いと判断されると（ステップ２１１がＹＥＳ）、ステップ７００に進み、点火時期Ｆ／Ｂ量の変化量に基づいて第３の燃料性状判定値ＫＮ３を算出する。このステップ７００の詳細についても後述する。
【００６６】
続くステップ２１３では、第３の燃料性状判定値ＫＮ３を本判定値として確定する。このとき、先のステップ２１２で第２の燃料性状判定値ＫＮ２が本判定値として確定されている場合には、そのＫＮ２が第３の燃料性状判定値ＫＮ３により更新される。そして、その本判定値（ＫＮ３）を用いて過渡燃料噴射量や非同期噴射量を補正する（図５のステップ２０８）。
【００６７】
また、イグニッションスイッチがオフされる時（図５のステップ２０９がＹＥＳ）、その時の本判定値（燃料性状判定値）がバックアップＲＡＭ３４に記憶される。但し、本判定値をバックアップするタイミングは、イグニッションスイッチのオフ時に限らず、第３の燃料性状判定値ＫＮ３が算出された以降であればよい。
【００６８】
図５，６の処理によれば、図２のタイムチャートにおいて、
・時刻ｔ１以前は、バックアップＲＡＭ３４内の学習値ＫＬが本判定値となり、・時刻ｔ１〜ｔ４の期間では、第１の燃料性状判定値ＫＮ１が本判定値となり、・時刻ｔ４〜ｔ５の期間では、第２の燃料性状判定値ＫＮ２が本判定値となり、・時刻ｔ５以降は、第３の燃料性状判定値ＫＮ３が本判定値となる。
【００６９】
図７は、上記図５のステップ３００における第１の燃料性状判定値ＫＮ１の算出手順を詳細に示すフローチャートである。ステップ３０１では、ピーク回転数Ｎｐｋと目標回転数Ｎｔとの偏差ΔＮｐｔを算出する（ΔＮｐｔ＝Ｎｐｋ−Ｎｔ）。続くステップ３０２では、回転数偏差ΔＮｐｔに応じて燃料性状係数Ｆ１を算出する。燃料性状係数Ｆ１はマップ検索にて求められ、例えば回転数偏差ΔＮｐｔが小さい場合、重質燃料であるとみなされて燃料性状係数Ｆ１が比較的大きい値に設定される。
【００７０】
その後、ステップ３０３では、バッテリのＯＮ直後（交換直後）であるか、又はガソリン給油の直後であるかを判別する。つまり、このバッテリのＯＮ直後（交換直後）には、バックアップＲＡＭ３４内の学習値ＫＬがクリアされているため（ＫＬ＝１．０）、燃料性状の学習速度を上げる必要があり、また、ガソリン給油の直後も同様に燃料性状の学習速度を上げる必要がある。そこで、ステップ３０３がＹＥＳの場合には、今回算出した燃料性状係数Ｆ１に対するなまし度合を小さくするようなまし率ｓｍａ，ｓｍｂを設定し（ステップ３０５）、ステップ３０３がＮＯの場合には、通常のなまし度合にてなまし演算を実施するようなまし率ｓｍａ，ｓｍｂを設定する（ステップ３０４）。なお、ガソリン給油の有無は、燃料タンク内のレベルゲージの検出値、或いは燃料タンクの給油口に設けられたキャップセンサの検出値から判断すればよい。
【００７１】
その後、ステップ３０６では、今回算出した燃料性状係数Ｆ１と、前回運転時の学習値ＫＬと、各々のなまし率ｓｍａ，ｓｍｂとから、次の（１）式、
ＫＮ１＝（Ｆ１×ｓｍａ）＋（ＫＬ×ｓｍｂ）        …（１）
を用いて第１の燃料性状判定値ＫＮ１を算出する。
【００７２】
次に、図８は、上記図５のステップ４００における点火時期Ｆ／Ｂ量の最大値算出手順を示すフローチャートである。図８の処理は、所定期間（例えば１秒間）の点火時期Ｆ／Ｂ量の平均値ａｖａｉを求め、その平均値ａｖａｉから最大値ａｉＭＡＸを算出する処理であり、先ずステップ４０１では、前回算出した平均値ａｖａｉを前回値ａｖａｉ０とする。続くステップ４０２では、新たに点火時期Ｆ／Ｂ量の平均値ａｖａｉを算出する。例えば、前記図４（ｂ）の処理による点火時期Ｆ／Ｂ量ａｉを１秒間積算し、その積算値を単位時間で割り算して点火時期Ｆ／Ｂ量の平均値ａｖａｉを算出する。
【００７３】
その後、ステップ４０３では、点火時期Ｆ／Ｂ量の平均値の前回値ａｖａｉ０と今回値ａｖａｉとを比較する。そして、ａｖａｉ０≧ａｖａｉの場合、ステップ４０４に進み、目標回転数Ｎｔとエンジン回転数Ｎｅとの回転数偏差ΔＮ（＝Ｎｔ−Ｎｅ）の絶対値が微小な所定値Ｎｂ未満となり、エンジン回転数Ｎｅが目標回転数Ｎｔに収束したか否かを判定する。
【００７４】
ステップ４０４がＹＥＳの場合、エンジン回転数Ｎｅが目標回転数Ｎｔに対して安定化したとみなし、ステップ４０５では、前回の点火時期Ｆ／Ｂ量の平均値ａｖａｉ０を点火時期Ｆ／Ｂ量の最大値ａｉＭＡＸとし、続くステップ４０６では、最大値算出完了フラグｘａｉＭＡＸに「１」をセットする。
【００７５】
図９は、上記図６のステップ５００における第２の燃料性状判定値ＫＮ２の算出手順を詳細に示すフローチャートである。ステップ５０１では、吸気Ｆ／Ｂ制御における上限値ｑｉＭＡＸに所定の換算係数ｆを乗算して補正項ａｉｈｓを算出し（ａｉｈｓ＝ｆ・ｑｉＭＡＸ）、続くステップ５０２では、点火時期Ｆ／Ｂ量の最大値ａｉＭＡＸと、前記算出した補正項ａｉｈｓとを加算して、点火時期Ｆ／Ｂ量の変化量Δａｉ１を算出する（Δａｉ１＝ａｉＭＡＸ＋ａｉｈｓ）。
【００７６】
ステップ５０３では、点火時期Ｆ／Ｂ量の変化量Δａｉ１に応じて燃料性状係数Ｆ２を算出する。燃料性状係数Ｆ２はマップ検索にて求められ、変化量Δａｉ１が大きいほど、重質燃料であるとみなされて燃料性状係数Ｆ２が比較的大きい値に設定される。
【００７７】
その後、ステップ５０４では、バッテリのＯＮ直後（交換直後）であるか、又はガソリン給油の直後であるかを判別する。ステップ５０４がＮＯの場合には、通常のなまし度合にてなまし演算を実施するようなまし率ｓｍａ，ｓｍｂを設定し（ステップ５０５）、ステップ５０４がＹＥＳの場合には、今回算出した燃料性状係数Ｆ２に対するなまし度合を小さくして学習速度を上げるようなまし率ｓｍａ，ｓｍｂを設定する（ステップ５０６）。
【００７８】
その後、ステップ５０７では、今回算出した燃料性状係数Ｆ２と、前回運転時の学習値ＫＬと、各々のなまし率ｓｍａ，ｓｍｂとから、次の（２）式、
ＫＮ２＝（Ｆ２×ｓｍａ）＋（ＫＬ×ｓｍｂ）        …（２）
を用いて第２の燃料性状判定値ＫＮ２を算出する。
【００７９】
図１０は、上記図６のステップ６００における点火時期Ｆ／Ｂ量の最小値算出手順を示すフローチャートである。ステップ６０１では、最大値算出完了フラグｘａｉＭＡＸが「１」であるか否かを判別する。ｘａｉＭＡＸ＝１の場合、ステップ６０２では、前回算出した平均値ａｖａｉを前回値ａｖａｉ０とする。続くステップ６０３では、新たに点火時期Ｆ／Ｂ量の平均値ａｖａｉを算出する。例えば、前記図４（ｂ）の処理による点火時期Ｆ／Ｂ量ａｉを１秒間積算し、その積算値を単位時間で割り算して点火時期Ｆ／Ｂ量の平均値ａｖａｉを算出する。
【００８０】
その後、ステップ６０４では、点火時期Ｆ／Ｂ量の最大値ａｉＭＡＸの算出後、５秒が経過したか否かを判別し、続くステップ６０５では、同じくａｉＭＡＸの算出後、２０秒が経過したか否かを判別する。ステップ６０４がＹＥＳ、ステップ６０５がＮＯの場合、ステップ６０６に進み、点火時期Ｆ／Ｂ量の平均値の前回値ａｖａｉ０と今回値ａｖａｉとを比較する。そして、ａｖａｉ０≦ａｖａｉの場合、ステップ６０７でその前回値ａｖａｉ０を点火時期Ｆ／Ｂ量の最小値ａｉＭＩＮとする。
【００８１】
また、ａｖａｉ０＞ａｖａｉの場合（ステップ６０６がＮＯ）、ステップ６０８で点火時期Ｆ／Ｂ量の平均値ａｖａｉが収束したか否かを判別する。例えば、平均値ａｖａｉの今回値と前回値との差が十分小さい所定値以下になれば、ａｖａｉ値が収束したとみなし、ステップ６０９に進んで今回の平均値ａｖａｉを点火時期Ｆ／Ｂ量の最小値ａｉＭＩＮとする。
【００８２】
更に、ａｉＭＡＸの算出後、２０秒が経過した場合にも（ステップ６０５がＹＥＳ）、ステップ６０９で今回の平均値ａｖａｉを点火時期Ｆ／Ｂ量の最小値ａｉＭＩＮとする。ａｉＭＩＮ値の算出後、ステップ６１０では、最小値算出完了フラグｘａｉＭＩＮに「１」をセットする。
【００８３】
図１１は、上記図６のステップ７００における第３の燃料性状判定値ＫＮ３の算出手順を詳細に示すフローチャートである。ステップ７０１では、点火時期Ｆ／Ｂ量の最大値ａｉＭＡＸと最小値ａｉＭＩＮとの差から、点火時期Ｆ／Ｂ量の変化量Δａｉ２を算出する（Δａｉ２＝ａｉＭＡＸ−ａｉＭＩＮ）。
【００８４】
その後、ステップ７０２では、点火時期Ｆ／Ｂ量の変化量Δａｉ２に応じて燃料性状係数Ｆ３を算出する。燃料性状係数Ｆ３はマップ検索にて求められ、変化量Δａｉ２が大きいほど、重質燃料であるとみなされて燃料性状係数Ｆ３が比較的大きい値に設定される。
【００８５】
その後、ステップ７０３では、バッテリのＯＮ直後（交換直後）であるか、又はガソリン給油の直後であるかを判別する。ステップ７０３がＮＯの場合には、通常のなまし度合にてなまし演算を実施するようなまし率ｓｍａ，ｓｍｂを設定し（ステップ７０４）、ステップ７０３がＹＥＳの場合には、今回算出した燃料性状係数Ｆ３に対するなまし度合を小さくして学習速度を上げるようなまし率ｓｍａ，ｓｍｂを設定する（ステップ７０５）。
【００８６】
その後、ステップ７０６では、今回算出した燃料性状係数Ｆ３と、前回運転時の学習値ＫＬと、各々のなまし率ｓｍａ，ｓｍｂとから、次の（３）式、
ＫＮ３＝（Ｆ３×ｓｍａ）＋（ＫＬ×ｓｍｂ）        …（３）
を用いて第３の燃料性状判定値ＫＮ３を算出する。
【００８７】
以上の通り、燃料性状係数Ｆ１，Ｆ２，Ｆ３が前回運転時の学習値ＫＬにより所定のなまし率ｓｍａ，ｓｍｂでなまされることにより第１〜第３の燃料性状判定値ＫＮ１，ＫＮ２，ＫＮ３が算出されるが、そのなまし率ｓｍａ，ｓｍｂは、燃料性状係数Ｆ１，Ｆ２，Ｆ３の精度や信頼度に応じて変更されるのが望ましい。すなわち、燃料性状係数Ｆ１，Ｆ２，Ｆ３を比較した場合、燃料性状係数Ｆ３の信頼度が最も高く、燃料性状係数Ｆ１の信頼度が最も低い。そのため、一例として、
・第１の燃料性状判定値ＫＮ１を算出する時、上記（１）式において、ｓｍａ＝０．２，ｓｍｂ＝０．８とし、
・第２の燃料性状判定値ＫＮ２を算出する時、上記（２）式において、ｓｍａ＝０．３，ｓｍｂ＝０．７とし、
・第３の燃料性状判定値ＫＮ３を算出する時、上記（３）式において、ｓｍａ＝０．５，ｓｍｂ＝０．５とし、
この各々設定されるなまし率ｓｍａ，ｓｍｂを用いてなまし演算を行う。これにより、各燃料性状係数はＦ１→Ｆ２→Ｆ３の順になまし度合が小さくなり（反映率が高くなり）、燃料性状の判定結果の信頼性をより一層向上させることが可能となる。
【００８８】
なお本実施の形態では、図３の処理が回転数制御手段に該当し、そのうちステップ１３０（図４（ａ））の処理が吸気量制御手段に該当し、ステップ１５０（図４（ｂ））の処理が点火時期制御手段に該当する。また、図５及び図６の処理が燃料性状判定手段に該当し、そのうち、ステップ５００（図９）の処理が第１の判定手段に、ステップ７００（図１１）の処理が第２の判定手段に、ステップ３００（図７）の処理が第３の判定手段に該当する。
【００８９】
以上詳述した本実施の形態によれば、以下に示す効果が得られる。
（イ）エンジン回転数Ｎｅが目標回転数Ｎｔに収束するよう点火時期Ｆ／Ｂ制御が実施されるため、エンジン回転数Ｎｅやその時発生する吸気管負圧が安定し、噴射燃料の蒸発率もばらつくこと無く安定する。そして、その蒸発率安定の状態下で、点火時期Ｆ／Ｂ量ａｉの挙動に応じて燃料性状を判定することにより、燃料性状を精度良く判定することができる。
【００９０】
特に、点火時期Ｆ／Ｂ量の最大値ａｉＭＡＸを吸気Ｆ／Ｂ量の上限値ｑｉＭＡＸで補正して燃料性状係数Ｆ２（第２の燃料性状判定値ＫＮ２）を算出する一方、点火時期Ｆ／Ｂ量の最大値ａｉＭＡＸと最小値ａｉＭＩＮとの差に基づき燃料性状係数Ｆ３（第３の燃料性状判定値ＫＮ３）を算出するように構成したので、エンジンの適合ずれや経時変化に起因する吸気量、空燃比、フリクション等のばらつきが適宜キャンセルされる。それ故、燃料性状判定の精度がより一層向上する。
【００９１】
（ロ）エンジン回転数Ｎｅが安定化する以前、すなわち点火時期Ｆ／Ｂ量の最大値ａｉＭＡＸが算出される以前に、ピーク回転数Ｎｐｋと目標回転数Ｎｔとの偏差により燃料性状を判定するようにしたので、エンジン始動当初にａｉＭＡＸが算出されるまでの期間において、燃料性状が判定できないといった不都合が解消される。
【００９２】
（ハ）燃料性状判定値をバックアップＲＡＭ３４に記憶し、次のエンジン始動時に新たに燃料性状が判定されるまでは、バックアップＲＡＭ３４の記憶値（学習値ＫＬ）を読み出して用いるので、エンジン始動直後にもバックアップ値での代用により燃料性状が判断できる。
【００９３】
（ニ）バックアップＲＡＭ３４に記憶した学習値ＫＬを用いて、新たに判定した燃料性状係数Ｆ１〜Ｆ３をなまし、第１〜第３の燃料性状判定値ＫＮ１〜ＫＮ３を算出するので、実用化に適した制御装置が具体化できる。
【００９４】
（ホ）バッテリのＯＮ直後（交換直後）である場合、又はガソリン給油の直後である場合、その時々算出される燃料性状係数Ｆ１〜Ｆ３のなまし度合を小さくするので、第１〜第３の燃料性状判定値ＫＮ１〜ＫＮ３を真値にいち早く学習することができ、燃料性状が正しく判定できる。
【００９５】
（ヘ）燃料性状係数Ｆ１〜Ｆ３の精度に応じてなまし度合（なまし率ｓｍａ，ｓｍｂ）を各々変更したので、燃料性状の判定結果の信頼性をより一層向上させることが可能となる。
【００９６】
（ト）アイドル状態が解除された時、或いは点火時期Ｆ／Ｂ制御の開始前後で電気負荷等の状態が変化した時などに、燃料性状の判定を禁止するので、燃料性状判定のパラメータが誤って認識されることがなく、本装置の信頼性が向上する。
【００９７】
（チ）上記の如く高精度で且つ信頼性の高い燃料性状判定値（ＫＮ１〜ＫＮ３）を求め、その判定値を燃料噴射制御に反映させるので、その制御性が向上し、ひいては、排気エミッションの良化を図ることができる。
【００９８】
（第２の実施の形態）
上記実施の形態の如く点火時期Ｆ／Ｂ制御を行う場合、点火時期の進角量に応じて回転数上昇の度合（トルクアップの度合）が異なり、その影響が燃料性状の判定結果に及ぶことが考えられる。つまり、図１４に示すように、点火時期が進角側になるほど回転数上昇の傾きが緩くなり、進角度合に関係なく点火時期をそのまま用いて燃料性状を判定すると、燃料性状の判定結果に影響が及ぶ。そこで、本実施の形態では、燃料性状の判定に用いる点火時期制御量（すなわち、点火時期Ｆ／Ｂ量の最大値ａｉＭＡＸ、及び最小値ａｉＭＩＮ）を点火時期の進角度合に応じて補正し、補正後の点火時期制御量により燃料性状判定を実施する。
【００９９】
図１５は、点火時期Ｆ／Ｂ量の最大値算出手順を示すフローチャートであり、この処理は、前述した図８に置き換えて実施される。但し図１５では、前記図８と同じ処理について同一のステップ番号を付し、その一部を省略している。すなわち、図１５において、ステップ４０１〜４０４では、前記図８で説明したように、点火時期Ｆ／Ｂ量の平均値について前回値ａｖａｉ０と今回値ａｖａｉとを算出すると共に、「ａｖａｉ０≧ａｖａｉか？」、「｜ΔＮ（＝Ｎｔ−Ｎｅ）｜＜Ｎｂか？」といった判別を行う。そして、それらが共に肯定判別される場合、ステップ４０５では、前回の点火時期Ｆ／Ｂ量の平均値ａｖａｉ０を点火時期Ｆ／Ｂ量の最大値ａｉＭＡＸとする。
【０１００】
ａｉＭＡＸの算出後のステップ４２１〜４２３が新たに追加したステップであり、ステップ４２１では、ａｉＭＡＸ算出時の点火時期Ａｏｐを「ａＢＡＳＥ１」とする。ここで、点火時期Ａｏｐは、点火時期Ｆ／Ｂ量ａｉやベース進角量等を含む制御指令値であり、エンジン始動時には図１７に示すように推移する。つまり、始動開始後、エンジン回転数Ｎｅが所定回転数に達すると、点火時期Ａｏｐとして所定の進角量が設定され、その後、点火時期Ｆ／Ｂ制御が始まると、ベース進角量と点火時期Ｆ／Ｂ量ａｉとを足し合わせた形で点火時期Ａｏｐが制御されるようになる。
【０１０１】
そして、続くステップ４２２では、ａＢＡＳＥ１に応じて点火時期補正係数ＫＡを算出する。この場合、ａＢＡＳＥ１が進角側であるほど、補正係数ＫＡとして小さい値が設定される。
【０１０２】
その後、ステップ４２３では、ステップ４０５で算出した点火時期Ｆ／Ｂ量の最大値ａｉＭＡＸに対して補正係数ＫＡを掛け合わせ、その積を新たにａｉＭＡＸとする。最後に、前述の通り最大値算出完了フラグｘａｉＭＡＸに「１」をセットし（ステップ４０６）、本処理を終了する。
【０１０３】
また、図１６は、点火時期Ｆ／Ｂ量の最小値算出手順を示すフローチャートであり、この処理は、前述した図１０に置き換えて実施される。但し図１６では、前記図１０と同じ処理について同一のステップ番号を付し、その一部を省略している。すなわち、図１６において、ステップ６０１〜６０９では、前記図１０で説明したように、点火時期Ｆ／Ｂ量の平均値について前回値ａｖａｉ０と今回値ａｖａｉとを算出し、そのａｖａｉ０，ａｖａｉに基づいて点火時期Ｆ／Ｂ量の最小値ａｉＭＩＮを算出する。
【０１０４】
ａｉＭＩＮの算出後のステップ６２１〜６２３が新たに追加したステップであり、ステップ６２１では、ａｉＭＩＮ算出時の点火時期Ａｏｐ（制御指令値）を「ａＢＡＳＥ２」とする。続くステップ６２２では、ａＢＡＳＥ２に応じて点火時期補正係数ＫＡを算出する。この場合、ａＢＡＳＥ２が進角側であるほど、補正係数ＫＡとして小さい値が設定される。
【０１０５】
その後、ステップ６２３では、図１０のステップ６０７，６０９で算出した点火時期Ｆ／Ｂ量の最小値ａｉＭＩＮに対して補正係数ＫＡを掛け合わせ、その積を新たにａｉＭＩＮとする。最後に、前述の通り最小値算出完了フラグｘａｉＭＩＮに「１」をセットし（ステップ６１０）、本処理を終了する。
【０１０６】
以上第２の実施の形態によれば、燃料性状の判定に用いる点火時期制御量（ａｉＭＡＸ，ａｉＭＩＮ）を点火時期Ａｏｐに応じて補正するようにしたので、より一層精度の高い燃料性状判定が実施できるようになる。
【０１０７】
なお本発明は、上記以外に次の形態にて具体化できる。
上記実施の形態では、点火時期Ｆ／Ｂ量の最大値ａｉＭＡＸの算出に際し、ａｖａｉ０≧ａｖａｉ、且つ｜ΔＮ｜＜Ｎｂとなる時、エンジン回転数Ｎｅが目標回転数Ｎｔに対して安定化したとみなし、点火時期Ｆ／Ｂ量の最大値ａｉＭＡＸを算出したが（図８の処理）、それ以外の算出手法を用いても良い。例えば、エンジン回転数Ｎｅが目標回転数Ｎｔに対して安定化する時、点火時期Ｆ／Ｂ量ａｉの比例項（ｐ項）がほぼ０となり、積分項（ｉ項）が最大値となるため、その時の積分項をａｉＭＡＸとして算出する。
【０１０８】
上記実施の形態では、点火時期Ｆ／Ｂ量の最大値ａｉＭＡＸを吸気Ｆ／Ｂ量の上限値ｑｉＭＡＸで補正して燃料性状係数Ｆ２（第２の燃料性状判定値ＫＮ２）を算出する一方、点火時期Ｆ／Ｂ量の最大値ａｉＭＡＸと最小値ａｉＭＩＮとの差に基づき燃料性状係数Ｆ３（第３の燃料性状判定値ＫＮ３）を算出したが、これら２つの燃料性状係数のうち、何れか一方のみを算出するように構成しても良い。
【０１０９】
これら何れか一方の燃料性状係数を用いる場合にも、燃料の蒸発率が安定化した状態下で燃料性状が判定でき、その精度が向上する。また、エンジンの適合ずれや経時変化に起因する吸気量、空燃比、フリクション等のばらつきが適宜キャンセルされる。それ故、燃料性状判定の精度がより一層向上する。
【０１１０】
上記実施の形態では、ピーク回転数Ｎｐｋと目標回転数Ｎｔとの偏差ΔＮｐｔに基づいて第１の燃料性状判定値ＫＮ１を算出したが、これを変更し、ピーク回転数Ｎｐｋに基づいて第１の燃料性状判定値ＫＮ１を算出しても良い。実際には、図７のステップ３０２において、偏差ΔＮｐｔに代えてピーク回転数Ｎｐｋを用い、ピーク回転数Ｎｐｋに応じて燃料性状係数Ｆ１を算出する。そして、同図のステップ３０６において、燃料性状係数Ｆ１により第１の燃料性状判定値ＫＮ１を算出する。
【０１１１】
また、上述した第１の燃料性状判定値ＫＮ１（燃料性状係数Ｆ１）を算出する処理を実施するか、或いは実施しないかは任意でよい。仮に実施しない場合、第２又は第３の燃料性状判定値ＫＮ２，ＫＮ３（燃料性状係数Ｆ２，Ｆ３）を算出するまでは、バックアップＲＡＭ３４内の学習値ＫＬを読み出して使用すればよい。
【０１１２】
点火時期Ｆ／Ｂ量ａｉに応じて燃料性状を判定する場合、点火時期Ｆ／Ｂ量ａｉの変化速度（変化の傾き）や、最大値ａｉＭＡＸから最小値ａｉＭＩＮに至るまでの経過時間といった変化具合に応じて燃料性状を判定したり、点火時期Ｆ／Ｂ量の最大値ａｉＭＡＸそのものに応じて燃料性状を判定したりしても良い。例えば、
・ａｉの変化速度（変化の傾き）が大きいほど重質である、
・ａｉＭＡＸからａｉＭＩＮまでの経過時間が長いほど重質である、
・ａｉＭＡＸが大きいほど重質である、
として燃料性状を判定する。
【０１１３】
また、吸気Ｆ／Ｂ制御によりエンジン回転数を目標回転数に収束させる制御装置において、吸気Ｆ／Ｂ量に応じて燃料性状を判定しても良い。或いは、燃料噴射Ｆ／Ｂ制御によりエンジン回転数を目標回転数に収束させる制御装置において、燃料噴射Ｆ／Ｂ量に応じて燃料性状を判定しても良い。これらの場合にも、回転数安定の状態下、すなわち蒸発率安定の状態下で燃料性状が判定されるので、燃料性状を精度良く判定することができる。
【０１１４】
上記実施の形態では、バッテリのＯＮ直後（交換直後）やガソリン給油の直後に、燃料性状係数Ｆ１〜Ｆ３のなまし度合を小さくしたが、その処理を排除して構成の簡素化を図っても良い。また、燃料性状係数Ｆ１〜Ｆ３を学習値ＫＬによりなますという処理を排除し、燃料性状係数Ｆ１〜Ｆ３をそのまま本判定値とする構成としても良い。
【０１１５】
上記実施の形態では、本発明を燃料噴射制御システムに適用し、燃料性状レベルに応じて燃料噴射量を制御することとしたが、本発明を他の用途に適用しても良い。例えば、前記の如く判定した燃料性状レベルを、ダイアグ処理（故障診断処理）に適用する。この場合、燃料性状レベルに応じてダイアグ判定値を変更したり、ダイアグ処理の実施の適否を判断したりすることで、当該ダイアグ処理を好適に実施することが可能となる。
【図面の簡単な説明】
【図１】発明の実施の形態におけるエンジンの燃料噴射制御システムの概要を示す構成図。
【図２】回転数Ｆ／Ｂ制御の概要を示すタイムチャート。
【図３】回転数Ｆ／Ｂ制御の手順を示すフローチャート。
【図４】吸気Ｆ／Ｂ制御及び点火時期Ｆ／Ｂ制御の手順を示すフローチャート。
【図５】燃料性状レベルの判定手順を示すフローチャート。
【図６】図５に続き、燃料性状レベルの判定手順を示すフローチャート。
【図７】第１の燃料性状判定値の算出手順を示すフローチャート。
【図８】点火時期Ｆ／Ｂ量の最大値算出手順を示すフローチャート。
【図９】第２の燃料性状判定値の算出手順を示すフローチャート。
【図１０】点火時期Ｆ／Ｂ量の最小値算出手順を示すフローチャート。
【図１１】第３の燃料性状判定値の算出手順を示すフローチャート。
【図１２】吸気量Ｆ／Ｂ量の上限値を設定するための図。
【図１３】燃料増量係数を算出するための図。
【図１４】点火時期と回転数上昇度合との関係を示す図。
【図１５】第２の実施の形態において点火時期Ｆ／Ｂ量の最大値算出手順を示すフローチャート。
【図１６】第２の実施の形態において点火時期Ｆ／Ｂ量の最小値算出手順を示すフローチャート。
【図１７】点火時期Ａｏｐの推移を説明するためのタイムチャート。
【符号の説明】
１…エンジン、１８…インジェクタ、１９…点火プラグ、３０…ＥＣＵ、３１…回転数制御手段，燃料性状判定手段，点火時期制御手段，吸気量制御手段，第１の判定手段，第２の判定手段としてのＣＰＵ、３４…バックアップＲＡＭ。
【図１】
0003863362.tif 000002
【図２】
0003863362.tif 000003
【図３】
0003863362.tif 000004
【図４】
0003863362.tif 000005
【図５】
0003863362.tif 000006
【図６】
0003863362.tif 000007
【図７】
0003863362.tif 000008
【図８】
0003863362.tif 000009
【図９】
0003863362.tif 000010
【図１０】
0003863362.tif 000011
【図１１】
0003863362.tif 000012
【図１２】
0003863362.tif 000013
【図１３】
0003863362.tif 000014
【図１４】
0003863362.tif 000015
【図１５】
0003863362.tif 000016
【図１６】
0003863362.tif 000017
【図１７】
0003863362.tif 000018