(57)【特許請求の範囲】
【請求項１】
耐ノック係数の異なる２つの燃料を第１基準燃料、第２基準燃料として予め定めておき、第１基準燃料に対するトレース点火時期である第１基準トレース点火時期と、第２基準燃料に対するトレース点火時期である第２基準トレース点火時期とをそれぞれ算出する基準トレース点火時期算出処理手順と、
使用燃料の耐ノック係数を推定する耐ノック係数推定処理手順と、
横軸を耐ノック係数とトレース点火時期の一方の値、縦軸を残りの値とする平面上において前記２つの基準トレース点火時期の間を上に凸または下に凸の曲線で変化する実際のトレース点火時期を、前記第１基準トレース点火時期と前記曲線上の所定の点とを結ぶ直線と、前記第２基準トレース点火時期と前記所定の点とを結ぶ直線との２つの直線で近似し、その近似した２つの直線の傾きを算出する傾き算出処理手順と、
この算出した傾きと前記推定耐ノック係数とに基づいて、使用燃料のトレース点火時期補正量を算出するトレース点火時期補正量算出処理手順と、
この算出したトレース点火時期補正量と前記２つの基準トレース点火時期とに基づいて、前記使用燃料に対するトレース点火時期を算出するトレース点火時期算出処理手順と
この算出されたトレース点火時期で火花点火を行う火花点火処理手順と
を含むことを特徴とするエンジンの点火時期制御方法。
【請求項２】
前記耐ノック係数の値は大きくなるほど耐ノック性の高い値であり、
前記第１基準燃料は耐ノック係数最小値の燃料、前記第２基準燃料は耐ノック係数最大値の燃料であることを特徴とする請求項１に記載のエンジンの点火時期制御方法。
【請求項３】
前記耐ノック係数最小値の燃料はガソリン燃料を対象とする場合にレギュラーガソリンであることを特徴とする請求項２に記載のエンジンの点火時期制御方法。
【請求項４】
前記耐ノック係数最大値の燃料はガソリン燃料を対象とする場合にハイオクガソリンであることを特徴とする請求項２に記載のエンジンの点火時期制御方法。
【請求項５】
使用燃料の耐ノック係数が前記耐ノック係数最小値と前記耐ノック係数最大値のいずれに近い側にあるのかを判定する燃料判定処理手順を含み、
この燃料判定結果に応じ、使用燃料の耐ノック係数が耐ノック係数最小値に近い側にあるときには前記第１基準トレース点火時期を、使用燃料の耐ノック係数が耐ノック係数最大値に近いときには前記第２基準トレース点火時期を用いることを特徴とする請求項２に記載のエンジンの点火時期制御方法。
【請求項６】
使用燃料の耐ノック係数が前記耐ノック係数最小値と前記耐ノック係数最大値のいずれに近い側にあるのかの判定をエンジン始動時に実行することを特徴とする請求項５に記載のエンジンの点火時期制御方法。
【請求項７】
前記推定耐ノック係数が、所定の閾値以上となったとき、前記耐ノック係数最大値に近い側にあると判定することを特徴とする請求項５に記載のエンジンの点火時期制御方法。
【請求項８】
前記推定耐ノック係数が、所定の閾値以下となったとき、前記耐ノック係数最小値に近い側にあると判定することを特徴とする請求項５に記載のエンジンの点火時期制御方法。
【請求項９】
前記トレース点火時期補正量を、前記２つの直線のうち前記第１基準トレース点火時期の側にある一方の直線の傾きを表す第１傾きと、前記２つの直線のうち前記第２基準トレース点火時期の側にある他方の直線の傾きを表す第２傾きとに基づいて算出することを特徴とする請求項１に記載のエンジンの点火時期制御方法。
【請求項１０】
前記耐ノック係数の値は大きくなるほど耐ノック性の高い値であり、
前記第１基準燃料は耐ノック係数最小値の燃料、前記第２基準燃料は耐ノック係数最大値の燃料であり、
前記推定耐ノック係数が前記耐ノック係数最小値と前記耐ノック係数最大値のいずれに近い側にあるのかを判定する燃料判定処理手順を含み、
この燃料判定結果に応じ、推定耐ノック係数が耐ノック係数最小値に近い側にあるときには推定耐ノック係数と耐ノック係数最小値との差を差分推定耐ノック係数として算出し、この差分推定耐ノック係数をも用いて前記トレース点火時期補正量を算出することを特徴とする請求項９に記載のエンジンの点火時期制御方法。
【請求項１１】
前記耐ノック係数の値は大きくなるほど耐ノック性の高い値であり、
前記第１基準燃料は耐ノック係数最小値の燃料、前記第２基準燃料は耐ノック係数最大値の燃料であり、
前記推定耐ノック係数が前記耐ノック係数最小値と前記耐ノック係数最大値のいずれに近い側にあるのかを判定する燃料判定処理手順を含み、
この燃料判定結果に応じ、推定耐ノック係数が耐ノック係数最大値に近い側にあるときには推定耐ノック係数と耐ノック係数最大値との差を差分推定耐ノック係数として算出し、この差分推定耐ノック係数をも用いて前記トレース点火時期補正量を算出することを特徴とする請求項９に記載のエンジンの点火時期制御方法。
【請求項１２】
前記耐ノック係数の値は大きくなるほど耐ノック性の高い値であり、
前記第１基準燃料は耐ノック係数最小値の燃料、前記第２基準燃料は耐ノック係数最大値の燃料であり、
使用燃料の耐ノック係数が前記耐ノック係数最小値と前記耐ノック係数最大値のいずれに近い側にあるのかを判定する燃料判定処理手順を含み、
この燃料判定結果に応じ、使用燃料の耐ノック係数が耐ノック係数最小値に近い側にあるときには前記第１傾きを、使用燃料の耐ノック係数が耐ノック係数最大値に近い側にあるときには前記第２傾きを用いることを特徴とする請求項９に記載のエンジンの点火時期制御方法。
【請求項１３】
前記第１傾き及び第２傾きを、エンジンの負荷と回転速度のうち少なくとも１つに基づいて算出することを特徴とする請求項１２に記載のエンジンの点火時期制御方法。
【請求項１４】
前記推定耐ノック係数をノックセンサに基づいて算出することを特徴とする請求項１０または１１に記載のエンジンの点火時期制御方法。
【請求項１５】
前記ノックセンサに基づきノックが発生したときに前記推定耐ノック係数が小さくなる側に所定の減少量だけ減少させることを特徴とする請求項１４に記載のエンジンの点火時期制御方法。
【請求項１６】
前記減少量だけ減少させた後の推定耐ノック係数が予め記憶された下限値より小さい場合に、前記減少量だけ減少させた後の推定耐ノック係数をこの下限値に制限することを特徴とする請求項１５に記載のエンジンの点火時期制御方法。
【請求項１７】
前記減少量をエンジンの運転条件に応じて算出することを特徴とする請求項１５に記載のエンジンの点火時期制御方法。
【請求項１８】
前記減少量の１回の減算によって前記使用燃料に対するトレース点火時期が、所定時間当たり所定クランク角だけ遅角側にずれるように前記減少量を設定することを特徴とする請求項１６に記載のエンジンの点火時期制御方法。
【請求項１９】
前記エンジンの運転条件は、エンジンの負荷と回転速度のうち少なくとも１つであることを特徴とする請求項１７に記載のエンジンの点火時期制御方法。
【請求項２０】
前記ノックセンサに基づきノックが非発生のときに前記推定耐ノック係数が大きくなる側に所定の増加量だけ増加させることを特徴とする請求項１４に記載のエンジンの点火時期制御方法。
【請求項２１】
前記増加量だけ増加させた後の推定耐ノック係数が予め記憶された上限値より大きい場合に、前記増加量だけ増加させた後の推定耐ノック係数をこの上限値に制限することを特徴とする請求項２０に記載のエンジンの点火時期制御方法。
【請求項２２】
点火時期以外の要求から、耐ノック係数の増加が制限されている場合に、前記推定耐ノック係数を増加させないことを特徴とする請求項２０に記載のエンジンの点火時期制御方法。
【請求項２３】
前記推定耐ノック係数の燃料に対するトレース点火時期が、ＭＢＴの得られる基本点火時期より進角した場合に、前記推定耐ノック係数を増加させないことを特徴とする請求項２０に記載のエンジンの点火時期制御方法。
【請求項２４】
前記増加量をエンジンの運転条件に応じて算出することを特徴とする請求項２０に記載のエンジンの点火時期制御方法。
【請求項２５】
前記増加量の１回の加算によって前記使用燃料に対するトレース点火時期が、所定時間当たり所定クランク角だけ進角側にずれるように前記増加量を設定することを特徴とする請求項２０に記載のエンジンの点火時期制御方法。
【請求項２６】
前記エンジンの運転条件は、エンジンの負荷と回転速度のうち少なくとも１つであることを特徴とする請求項２４に記載のエンジンの点火時期制御方法。
【請求項２７】
前記推定耐ノック係数の初期値をエンジン始動時の環境条件及び前回エンジン停止時の推定耐ノック係数に基づいて設定することを特徴とする請求項１０または１１に記載のエンジンの点火時期制御方法。
【請求項２８】
前記トレース点火時期が制限されている場合に、前記耐ノック係数を保持することを特徴とする請求項１４に記載のエンジンの点火時期制御方法。
【請求項２９】
耐ノック係数の異なる２つの燃料を第１基準燃料、第２基準燃料として予め定めておき、第１基準燃料に対するトレース点火時期である第１基準トレース点火時期と、第２基準燃料に対するトレース点火時期である第２基準トレース点火時期とをそれぞれ算出する基準トレース点火時期算出手段と、
使用燃料の耐ノック係数を推定する耐ノック係数推定手段と、
横軸を耐ノック係数とトレース点火時期の一方の値、縦軸を残りの値とする平面上において前記２つの基準トレース点火時期の間を上に凸または下に凸の曲線で変化する実際のトレース点火時期を、前記第１基準トレース点火時期と前記曲線上の所定の点とを結ぶ直線と、前記第２基準トレース点火時期と前記所定の点とを結ぶ直線との２つの直線で近似し、その近似した２つの直線の傾きを算出する傾き算出手段と、
この算出した傾きと前記推定耐ノック係数とに基づいて、使用燃料のトレース点火時期補正量を算出するトレース点火時期補正量算出手段と、
この算出したトレース点火時期補正量と前記２つの基準トレース点火時期とに基づいて、前記使用燃料に対するトレース点火時期を算出するトレース点火時期算出手段と
この算出されたトレース点火時期で火花点火を行う火花点火実行手段と
を含むことを特徴とするエンジンの点火時期制御装置。
【請求項３０】
前記耐ノック係数の値は大きくなるほど耐ノック性の高い値であり、
前記第１基準燃料は耐ノック係数最小値の燃料、前記第２基準燃料は耐ノック係数最大値の燃料であることを特徴とする請求項２９に記載のエンジンの点火時期制御装置。
【請求項３１】
前記耐ノック係数最小値の燃料はガソリン燃料を対象とする場合にレギュラーガソリンであることを特徴とする請求項３０に記載のエンジンの点火時期制御装置。
【請求項３２】
前記耐ノック係数最大値の燃料はガソリン燃料を対象とする場合にハイオクガソリンであることを特徴とする請求項３０に記載のエンジンの点火時期制御装置。
【請求項３３】
使用燃料の耐ノック係数が前記耐ノック係数最小値と前記耐ノック係数最大値のいずれに近い側にあるのかを判定する燃料判定手段を含み、
この燃料判定結果に応じ、使用燃料の耐ノック係数が耐ノック係数最小値に近い側にあるときには前記第１基準トレース点火時期を、使用燃料の耐ノック係数が耐ノック係数最大値に近いときには前記第２基準トレース点火時期を用いることを特徴とする請求項３０に記載のエンジンの点火時期制御装置。
【請求項３４】
使用燃料の耐ノック係数が前記耐ノック係数最小値と前記耐ノック係数最大値のいずれに近い側にあるのかの判定をエンジン始動時に実行することを特徴とする請求項３３に記載のエンジンの点火時期制御装置。
【請求項３５】
前記推定耐ノック係数が、所定の閾値以上となったとき、前記耐ノック係数最大値に近い側にあると判定することを特徴とする請求項３３に記載のエンジンの点火時期制御装置。
【請求項３６】
前記推定耐ノック係数が、所定の閾値以下となったとき、前記耐ノック係数最小値に近い側にあると判定することを特徴とする請求項３３に記載のエンジンの点火時期制御装置。
【請求項３７】
前記トレース点火時期補正量を、前記２つの直線のうち前記第１基準トレース点火時期の側にある一方の直線の傾きを表す第１傾きと、前記２つの直線のうち前記第２傾きとに基づいて算出することを特徴とする請求項２９に記載のエンジンの点火時期制御装置。
【請求項３８】
前記耐ノック係数の値は大きくなるほど耐ノック性の高い値であり、
前記第１基準燃料は耐ノック係数最小値の燃料、前記第２基準燃料は耐ノック係数最大値の燃料であり、
前記推定耐ノック係数が前記耐ノック係数最小値と前記耐ノック係数最大値のいずれに近い側にあるのかを判定する燃料判定手段を含み、
この燃料判定結果に応じ、推定耐ノック係数が耐ノック係数最小値に近い側にあるときには推定耐ノック係数と耐ノック係数最小値との差を差分推定耐ノック係数として算出し、この差分推定耐ノック係数をも用いて前記トレース点火時期補正量を算出することを特徴とする請求項３７に記載のエンジンの点火時期制御装置。
【請求項３９】
前記耐ノック係数の値は大きくなるほど耐ノック性の高い値であり、
前記第１基準燃料は耐ノック係数最小値の燃料、前記第２基準燃料は耐ノック係数最大値の燃料であり、
前記推定耐ノック係数が前記耐ノック係数最小値と前記耐ノック係数最大値のいずれに近い側にあるのかを判定する燃料判定手段を含み、
この燃料判定結果に応じ、推定耐ノック係数が耐ノック係数最大値に近い側にあるときには推定耐ノック係数と耐ノック係数最大値との差を差分推定耐ノック係数として算出し、この差分推定耐ノック係数をも用いて前記トレース点火時期補正量を算出することを特徴とする請求項３７に記載のエンジンの点火時期制御装置。
【請求項４０】
前記耐ノック係数の値は大きくなるほど耐ノック性の高い値であり、
前記第１基準燃料は耐ノック係数最小値の燃料、前記第２基準燃料は耐ノック係数最大値の燃料であり、
使用燃料の耐ノック係数が前記耐ノック係数最小値と前記耐ノック係数最大値のいずれに近い側にあるのかを判定する燃料判定手段を含み、
この燃料判定結果に応じ、使用燃料の耐ノック係数が耐ノック係数最小値に近い側にあるときには前記第１傾きを、使用燃料の耐ノック係数が耐ノック係数最大値に近い側にあるときには前記第２傾きを用いることを特徴とする請求項３７に記載のエンジンの点火時期制御装置。
【請求項４１】
前記第１傾き及び第２傾きを、エンジンの負荷と回転速度のうち少なくとも１つに基づいて算出することを特徴とする請求項４０に記載のエンジンの点火時期制御装置。
【請求項４２】
前記推定耐ノック係数をノックセンサに基づいて算出することを特徴とする請求項３８または３９に記載のエンジンの点火時期制御装置。
【請求項４３】
前記ノックセンサに基づきノックが発生したときに前記推定耐ノック係数が小さくなる側に所定の減少量だけ減少させることを特徴とする請求項４２に記載のエンジンの点火時期制御装置。
【請求項４４】
前記減少量だけ減少させた後の推定耐ノック係数が予め記憶された下限値より小さい場合に、前記減少量だけ減少させた後の推定耐ノック係数をこの下限値に制限することを特徴とする請求項４３に記載のエンジンの点火時期制御装置。
【請求項４５】
前記減少量をエンジンの運転条件に応じて算出することを特徴とする請求項４３に記載のエンジンの点火時期制御装置。
【請求項４６】
前記減少量の１回の減算によって前記使用燃料に対するトレース点火時期が、所定時間当たり所定クランク角だけ遅角側にずれるように前記減少量を設定することを特徴とする請求項４４に記載のエンジンの点火時期制御装置。
【請求項４７】
前記エンジンの運転条件は、エンジンの負荷と回転速度のうち少なくとも１つであることを特徴とする請求項４５に記載のエンジンの点火時期制御装置。
【請求項４８】
前記ノックセンサに基づきノックが非発生のときに前記推定耐ノック係数が大きくなる側に所定の増加量だけ増加させることを特徴とする請求項４２に記載のエンジンの点火時期制御装置。
【請求項４９】
前記増加量だけ増加させた後の推定耐ノック係数が予め記憶された上限値より大きい場合に、前記増加量だけ増加させた後の推定耐ノック係数をこの上限値に制限することを特徴とする請求項４８に記載のエンジンの点火時期制御装置。
【請求項５０】
点火時期以外の要求から、耐ノック係数の増加が制限されている場合に、前記推定耐ノック係数を増加させないことを特徴とする請求項４８に記載のエンジンの点火時期制御装置。
【請求項５１】
前記推定耐ノック係数の燃料に対するトレース点火時期が、ＭＢＴの得られる基本点火時期より進角した場合に、前記推定耐ノック係数を増加させないことを特徴とする請求項４８に記載のエンジンの点火時期制御装置。
【請求項５２】
前記増加量をエンジンの運転条件に応じて算出することを特徴とする請求項４８に記載のエンジンの点火時期制御装置。
【請求項５３】
前記増加量の１回の加算によって前記使用燃料に対するトレース点火時期が、所定時間当たり所定クランク角だけ進角側にずれるように前記増加量を設定することを特徴とする請求項４８に記載のエンジンの点火時期制御装置。
【請求項５４】
前記エンジンの運転条件は、エンジンの負荷と回転速度のうち少なくとも１つであることを特徴とする請求項５２に記載のエンジンの点火時期制御装置。
【請求項５５】
前記推定耐ノック係数の初期値をエンジン始動時の環境条件及び前回エンジン停止時の推定耐ノック係数に基づいて設定することを特徴とする請求項３８または３９に記載のエンジンの点火時期制御装置。
【請求項５６】
前記トレース点火時期が制限されている場合に、前記耐ノック係数を保持することを特徴とする請求項４２に記載のエンジンの点火時期制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、エンジン（内燃機関）の点火時期制御方法及びエンジンの点火時期制御装置に関する。
【背景技術】
【０００２】
最小オクタン価の燃料に対するトレース点火時期と、最大オクタン価の燃料に対するトレース点火時期との２つのトレース点火時期の間の変化量ＡＤＶＭＡＸを１００％とする、最小オクタン価の燃料に対するトレース点火時期から使用燃料のトレース点火時期までの変化量を進角率ＫＡＤＶ［％］として導入したとき、この進角率ＫＡＤＶとオクタン価との間には相関がある。そこで、ノッキングの有無に基づいて使用燃料のオクタン価推定値ＫＲＯＮを算出し、このオクタン価推定値ＫＲＯＮに応じて進角率ＫＡＤＶを求め、この進角率ＫＡＤＶと、上記のトレース点火時期変化量ＡＤＶＭＡＸとの積で点火時期のノッキング補正量ＩＧＫＮＯＣＫを算出するものがある（特許文献１参照）。
【特許文献１】特許第２８４４４１８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
ところで、従来技術（上記特許文献１の技術）では、上記進角率ＫＡＤＶの特性をエンジンの運転条件に関係なく１つだけとし、トレース点火時期変化量ＡＤＶＭＡＸを運転条件に応じて与えている。すなわち、従来技術は、トレース点火時期変化量ＡＤＶＭＡＸはエンジンの運転条件の相違で変化するものの、トレース点火時期変化量ＡＤＶＭＡＸを１００％としたときには実際のトレース点火時期は、エンジンの運転条件に関係なく１つの曲線で近似できるとみなすものである。
【０００４】
しかしながら、一つの運転条件に対して最小オクタン価の燃料に対するトレース点火時期と、最大オクタン価の燃料に対するトレース点火時期との間で変化する実際のトレース点火時期の曲線特性は、エンジンの運転条件に依存して大きく変化すると思われるので、従来技術のように１つの曲線を与えるだけでは、運転条件によっては実際のトレース点火時期からの誤差が大きくなり、実際のトレース点火時期を近似できない場合が考えられる。かといって進角率ＫＡＤＶの曲線特性を運転条件毎に用意するのでは、メモリ容量が莫大なものとなってしまう。
【０００５】
そこで本発明は、一つの運転条件において曲線で変化し、運転条件が相違すればその曲線の形状が変化する実際のトレース点火時期の近似方法を工夫することにより、メモリ容量が莫大になるのを防止しつつ実際のトレース点火時期からのずれができるだけ生じないようにした点火時期制御方法及び点火時期制御装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明は、耐ノック係数の異なる２つの燃料を第１基準燃料、第２基準燃料として予め定めておき、第１基準燃料に対するトレース点火時期である第１基準トレース点火時期と、第２基準燃料に対するトレース点火時期である第２基準トレース点火時期とをそれぞれ算出し、使用燃料の耐ノック係数を推定し、横軸を耐ノック係数とトレース点火時期の一方の値、縦軸を残りの値とする平面上において前記２つの基準トレース点火時期の間を上に凸または下に凸の曲線で変化する実際のトレース点火時期を、前記第１基準トレース点火時期と前記曲線上の所定の点とを結ぶ直線と、前記第２基準トレース点火時期と前記所定の点とを結ぶ直線と２つの直線で近似し、その近似した２つの直線の傾きを算出し、この算出した傾きと前記推定耐ノック係数とに基づいて、耐ノック係数が第１基準燃料と第２基準燃料の間にある使用燃料のトレース点火時期補正量（ＤＡＤＶ）を算出し、この算出したトレース点火時期補正量（ＤＡＤＶ）と前記２つの基準トレース点火時期とに基づいて、前記使用燃料に対するトレース点火時期を算出し、この算出されたトレース点火時期で火花点火を行うように構成する。
【発明の効果】
【０００７】
本発明では、１つの運転条件において図３に示したように実際のトレース点火時期を二本の直線で近似する。すなわち、図３において一点鎖線で示したように、Ｇ点とＩ点を結ぶ直線と、Ｈ点とＩ点を結ぶ直線との二本の直線で実際のトレース点火時期を近似することにより、特許文献１の技術のように曲線で近似する場合よりは若干精度は落ちるものの、実際のトレース点火時期からの誤差が大きくならないようにすることができる。そして、本発明により１つの運転条件に対して実際のトレース点火時期を２本の直線で近似するのであれば、１つの運転条件に対してメモリに記憶させる値は２つ直線の傾き、つまり２つでよいことになる。従って、運転条件の相違毎に２つの値を記憶させるだけで済むのであれば、実際のトレース点火時期の曲線特性を運転条件の相違毎に記憶させる場合に比較して、メモリ容量が膨大となることもない。
【０００８】
このように、本発明によれば、耐ノック係係数（ノックの起こりにくさの程度）の異なる２つの燃料を第１基準燃料、第２基準燃料として予め定めておき、第１基準燃料に対するトレース点火時期である第１基準トレース点火時期と、第２基準燃料に対するトレース点火時期である第２基準トレース点火時期とをそれぞれ算出し、使用燃料の耐ノック係数を推定し、横軸を耐ノック係数とトレース点火時期の一方の値、縦軸を残りの値とする平面上において前記２つの基準トレース点火時期の間を上に凸または下に凸の曲線で変化する実際のトレース点火時期を、前記第１基準トレース点火時期と前記曲線上の所定の点とを結ぶ直線と、前記第２基準トレース点火時期と前記所定の点とを結ぶ直線との２つの直線で近似し、その近似した２つの直線の傾きを算出し、この算出した傾きと前記推定耐ノック係数とに基づいて、耐ノック係数が第１基準燃料と第２基準燃料の間にある使用燃料のトレース点火時期補正量（ＤＡＤＶ）を算出し、この算出したトレース点火時期補正量（ＤＡＤＶ）と前記２つの基準トレース点火時期とに基づいて、前記使用燃料に対するトレース点火時期を算出し、この算出されたトレース点火時期で火花点火を行うので、メモリ容量を制限しつつ、エンジンの運転条件の相違に関係なく、使用燃料のノックの起こりにくさの程度（ガソリン燃料を対象としている場合にはオクタン価）が２つの各基準燃料よりより大きく離れている場合においても、実際のトレース点火時期からのずれを防ぐことができる。
【発明を実施するための最良の形態】
【０００９】
以下、図面に基づき本発明の実施形態について説明する。
【００１０】
図１は、エンジンの点火時期制御方法の実施に直接使用するエンジンの点火時期制御装置の概略構成を示している。
【００１１】
空気は吸気コレクタ２に蓄えられた後、吸気マニホールド３を介して各気筒の燃焼室５に導入される。燃料は各気筒の吸気ポート４に配置された燃料インジェクタ２１より噴射供給される。空気中に噴射された燃料は気化しつつ空気と混合してガス（混合気）を作り、燃焼室５に流入する。この混合気は吸気弁１５が閉じることで燃焼室５内に閉じこめられ、ピストン６の上昇によって圧縮される。
【００１２】
この圧縮混合気に対して高圧火花により点火を行うため、パワートランジスタ内蔵の点火コイルを各気筒に配した電子配電システムの点火装置１１を備える。すなわち、点火装置１１は、バッテリからの電気エネルギーを蓄える点火コイル１３と、点火コイル１３の一次側への通電、遮断を行うパワートランジスタ（図示しない）と、燃焼室５の天井に設けられ点火コイル１３の一次電流の遮断によって点火コイル１３の二次側に発生する高電圧を受けて、火花放電を行う点火プラグ１４とからなっている。
【００１３】
圧縮上死点より少し手前で点火プラグ１４により火花が飛ばされ圧縮混合気に着火されると、火炎が広がりやがて爆発的に燃焼し、この燃焼によるガス圧がピストン６を押し下げる仕事を行う。この仕事はクランクシャフト７の回転力として取り出される。燃焼後のガス（排気）は排気弁１６が開いたときに排気通路８へと排出される。
【００１４】
排気通路８には三元触媒９、１０を備える。三元触媒９、１０は排気の空燃比が理論空燃比を中心とした狭い範囲（ウインドウ）にあるとき、排気中に含まれるＨＣ、ＣＯ、ＮＯｘといった有害三成分を同時に効率よく除去できる。空燃比は吸入空気量と燃料量の比であるので、エンジンの１サイクル（４サイクルエンジンではクランク角で７２０°区間）当たりに燃焼室５に導入される吸入空気量と、燃料インジェクタ２１からの燃料噴射量との比が理論空燃比となるように、エンジンコントローラ３１ではエアフローメータ３２からの吸入空気流量の信号とクランク角センサ（３３、３４）からの信号に基づいて燃料インジェクタ２１からの燃料噴射量を定めると共に、三元触媒９の上流に設けたＯ2センサ３５からの信号に基づいて空燃比をフィードバック制御している。
【００１５】
吸気コレクタ２の上流には絞り弁２３がスロットルモータ２４により駆動される、いわゆる電子制御スロットル２２を備える。運転者が要求するトルクはアクセルペダル４１の踏み込み量（アクセル開度）に現れるので、エンジンコントローラ３１ではアクセルセンサ４２からの信号に基づいて目標トルクを定め、この目標トルクを実現するための目標空気量を定め、この目標空気量が得られるようにスロットルモータ２４を介して絞り弁２３の開度を制御する。
【００１６】
吸気弁１５、排気弁１６は、クランクシャフト７を動力源として、各々吸気側カムシャフト２５及び排気側カムシャフト２６に設けられたカムの動作により開閉駆動される。吸気側には、吸気弁１５のバルブリフト量及び作動角を連続的に可変制御する多節リンク状の機構で構成される可変バルブ機構（ＶＥＬ機構）２８を備える。このＶＥＬ機構２８には吸気弁１５のバルブリフト量及び作動角を検出する作動角センサ（図示しない）が併設されている。
【００１７】
同じく吸気側には、クランクシャフト７と吸気側カムシャフト２５との回転位相差を連続的に可変制御して、吸気弁１５のバルブタイミングを進遅角する可変バルブタイミング機構（ＶＴＣ機構）２７を備える。また、吸気側カムシャフト２５の他端には吸気側カムシャフト２５の回転位置を検出するためのカム角センサ３４が併設されている。
【００１８】
これらＶＥＬ機構２８及びＶＴＣ機構２７（可変動弁装置）の具体的な構成は特開２００３−３８７２号公報により公知であるので、その詳しい説明は省略する。
【００１９】
ＶＥＬ機構２８、ＶＴＣ機構２７の各アクチュエータに指令して、吸気弁１５のリフト特性（バルブタイミング（開閉時期）や吸気弁１５のバルブリフト量）を変えると燃焼室５に残留する不活性ガスの量が変化する。燃焼室５内の不活性ガスの量が増えるほどポンピングロスが減って燃費がよくなるので、運転条件によりどのくらいの不活性ガスが燃焼室５内に残留したらよいかを目標吸気弁閉時期や目標バルブリフト量にして予め定めており、エンジンコントローラ３１ではそのときの運転条件（エンジンの負荷と回転速度）より目標吸気弁閉時期と目標バルブリフト量とを定め、それら目標値が得られるようにＶＴＣ機構２７及びＶＥＬ機構２８の各アクチュエータを介して吸気弁１５の閉時期とバルブリフト量とを制御する。
【００２０】
また、ノックセンサ３７からの信号、エンジンの負荷と回転速度の信号が、水温センサ３８からの水温の信号、吸気温度センサ４３からの吸気温度の信号、大気圧センサ４４からの大気圧の信号と共に入力されるエンジンコントローラ３１では、点火コイル１３を介して点火プラグ１４の一次側電流の遮断時期である点火時期を制御する。
【００２１】
さて、点火時期は、ＭＢＴ（最大トルクの得られる最小進角値）とトレース点火時期とから定まる。ここで、トレース点火時期とは、エンジンにダメージを与えることのない軽いノックを許容している点火時期のことで、トレース点火時期よりも点火時期を進めることは避けなければならない。
【００２２】
ところで、ガソリン燃料を対象とする場合に使用燃料に対するトレース点火時期はオクタン価に依存し、オクタン価が大きくなるほどノックが発生しにくくなる（耐ノック性が高くなる）のであるが、ガソリンにアルコールを混入させている、いわゆるアルコール燃料を対象とする場合には、使用燃料に対するトレース点火時期はアルコール混入率（アルコール混入率が０％はガソリンのみ、１００％はアルコールのみを表す）に依存し、アルコール混入率が大きくなるほどノックが発生しにくくなる（耐ノック性が高くなる）。また、同じオクタン価のガソリン燃料を対象とする場合に、ノックは環境条件の一つである外気の湿度に依存し、外気の湿度が大きくなるほどノックが発生しにくくなる（耐ノック性が高くなる）。従って、
〔１〕ガソリン燃料を対象とする場合におけるオクタン価、
〔２〕アルコール燃料を対象とする場合におけるアルコール混入率、
〔３〕同じオクタン価のガソリン燃料を対象とする場合における外気の湿度
は耐ノック性と相関する値となるので、ガソリン燃料を対象とする場合におけるオクタン価、アルコール燃料を対象とする場合におけるアルコール混入率、同じオクタン価のガソリン燃料を対象とする場合における外気の湿度の総称として、「耐ノック係数」を導入している。
【００２３】
ここで、上記〔１〕の場合における耐ノック係数の数値の採り方としては、次のようにする。すなわち、図３下方に示したように、耐ノック係数最小値は最小オクタン価（９０）に対応させて、また耐ノック係数最大値は最大オクタン価（１００）に対応させて採り、耐ノック係数の数値はオクタン価が大きくなるほど大きくなるように採る。従って、耐ノック係数は、この値が大きくなるほどノックが生じにくい、つまり耐ノック性が高いことを表す物理量として定義されることとなる。上記〔２〕、〔３〕の場合についても同様に考えればよい。なお、最小オクタン価（９０）の燃料とは具体的にはレギュラーガソリンのこと、また最大オクタン価（１００）の燃料とは具体的にはハイオクガソリンのことである。
【００２４】
ガソリン燃料を対象とする場合に、ＭＢＴとトレース点火時期の２つの点火時期を図２に示すと、ＭＢＴはエンジン負荷の増大に対してほぼ直線的に小さくなるのに対して、トレース点火時期は負荷が大きくなるほどゆるやかに下に凸の弧を描きながら遅角側に移動する。
【００２５】
このうち、図２（Ａ）はエンジン回転速度Ｎｅが低い（例えば２０００ｒｐｍ）ときの、図２（Ｂ）はエンジン回転速度Ｎｅが高い（例えば６０００ｒｐｍ）ときの点火時期の特性で、横軸にエンジンの負荷を、縦軸に点火時期［ｄｅｇＢＴＤＣ］を採っている。縦軸は、上側が進角側、下側が遅角側である。
【００２６】
耐ノック係数の異なる２つの燃料、例えば耐ノック係数最小値の燃料を第１基準燃料として、耐ノック係数最大値の燃料を第２基準燃料としてそれぞれ定めたとき、図２（Ａ）、図２（Ｂ）には第１基準燃料に対するトレース点火時期である第１基準トレース点火時期と、第２基準燃料に対するトレース点火時期である第２基準トレース点火時期の２つの特性を、耐ノック係数中間値の燃料に対するトレース点火時期の特性と共に、実線で重ねて示している。ここで、「耐ノック係数」は、上記のように、この値が大きくなるほどノックが生じにくい、つまり耐ノック性が高いことを表す物理量であるから、例えばガソリン燃料を対象とする場合には、耐ノック係数最小値は最小オクタン価（例えば９０）を、耐ノック係数最大値は最大オクタン価（例えば１００）を、耐ノック係数中間値は最小オクタン価と最大オクタン価の平均値（９５）を表すことになる。
【００２７】
図２（Ａ）より、例えば第１基準燃料の使用時にエンジンの負荷を大きくしていくと、一点鎖線で示すＭＢＴと太実線で示す第１基準トレース点火時期とがＡ点で交差し、第１基準トレース点火時期のほうがＭＢＴより遅角側にくる。このため、第１基準燃料の使用時には、Ａ点までの小さな負荷域でＭＢＴを、パワートランジスタ１３に与える最終の点火時期（ＡＤＶ）として、またＡ点より大きな負荷域で第１基準トレース点火時期を最終の点火時期（ＡＤＶ）として制御することになる。
【００２８】
ガソリン燃料を対象とする場合には、図２（Ａ）に示したように、同じエンジン運転条件（エンジン負荷と回転速度Ｎｅが同じ）であれば、第１基準トレース点火時期のほうが第２基準トレース点火時期より遅角側にあり、かつ同じエンジン負荷のときの２つの基準トレース点火時期の間の変化量は、負荷が大きくなるほど大きくなっている。こうした傾向は、高回転速度時を示す図２（Ｂ）においても同じであるが、高回転速度時になると、図２（Ａ）に示す低回転速度時より、第１基準トレース点火時期と、第２基準トレース点火時期との２つの基準トレース点火時期の特性が全体的に遅角側に移動し、かつ同じエンジン負荷のときの２つの基準トレース点火時期の間の変化量は、高回転速度時のほうが低回転速度時より小さくなっている。
【００２９】
この場合に、使用燃料の耐ノック係数が耐ノック係数最小値と耐ノック係数最大値の間にある場合を考えると、使用燃料に対するトレース点火時期は、例えば図２（Ａ）の破線に示したように、第１基準トレース点火時期と第２基準トレース点火時期との間にあるのであるから、使用燃料に対するトレース点火時期は、エンジンの負荷と回転速度Ｎｅにより定まる運転条件に加えて、耐ノック係数の相違（例えばガソリン燃料を対象とする場合には燃料性状の一つであるオクタン価の相違の影響）を大きく受けている。
【００３０】
いま、横軸に耐ノック係数を、縦軸に点火時期［ｄｅｇＢＴＤＣ］を採り直すと、実際のトレース点火時期は、図３実線で示したようになり、第１基準トレース点火時期と第２基準トレース点火時期との間で上に凸の曲線で変化する、という性質を有する。
【００３１】
さて、ノックセンサに基づいて使用燃料の耐ノック係数を推定したとき、その推定耐ノック係数は、耐ノック係数の最小値と耐ノック係数の最大値の間のいずれかの位置にある。図３において実際のトレース点火時期は実線で示したように上に凸の曲線であるので、実際のトレース点火時期を直線で近似することを考える。例えば、実際のトレース点火時期を図示のＧ点とＨ点とを結んだ一本の直線（図示しない）で近似することを考えると、この場合には、推定耐ノック係数が耐ノック係数の最小値と耐ノック係数の最大値のちょうど真ん中付近にあるときに実際のトレース点火時期からの誤差が大きくなってしまう。
【００３２】
そこで、従来技術では、図１４に示したように実際のトレース点火時期に合わせて曲線で近似している。ただし、図１４に示す進角率ＫＡＤＶの特性はエンジンの運転条件に関係なく１つだけとし、トレース点火時期変化量ＡＤＶＭＡＸのほうを運転条件に応じて与えている。すなわち、従来技術は、トレース点火時期変化量ＡＤＶＭＡＸはエンジンの運転条件の相違で変化するものの、トレース点火時期変化量ＡＤＶＭＡＸを１００％としたときには実際のトレース点火時期は、エンジンの運転条件に関係なく図１４に示す１つの曲線で近似できるとみなすものである。
【００３３】
しかしながら、図３に示した実際のトレース点火時期の曲線の特性は、図２（Ａ）、図２（Ｂ）より類推して、エンジンの運転条件に依存して大きく変化すると思われるので、従来技術のように図１４に示す１つの曲線を与えるだけでは、運転条件によっては実際のトレース点火時期からの誤差が大きくなり、実際のトレース点火時期を近似できない場合が考えられる。かといって図１４に示す特性を運転条件毎に用意するのでは、メモリ容量が莫大なものとなってしまう。
【００３４】
そこで本発明では、第１基準トレース点火時期と第２基準トレース点火時期との２つの基準トレース点火時期の間を上に凸の曲線で変化する実際のトレース点火時期を２つの直線で近似し、その近似した２つの直線と、使用燃料の推定耐ノック係数（推定したした使用燃料のノックの起こりにくさの程度）とに基づいて、使用燃料のトレース点火時期補正量を算出し、この算出したトレース点火時期補正量と２つの基準トレース点火時期とに基づいて、使用燃料に対するトレース点火時期を算出し、この算出されたトレース点火時期で火花点火を行う。
【００３５】
この使用燃料に対するトレース点火時期の算出方法について図３をさらに参照して説明する。
【００３６】
１つの運転条件において横軸に耐ノック係数を、縦軸に点火時期［ｄｅｇＢＴＤＣ］を採ると、実際のトレース点火時期は、第１基準トレース点火時期と、第２基準トレース点火時期との間で、図３実線で示したように、上に凸の曲線で変化する性質を有する。
【００３７】
さて、ノックセンサ３７に基づいて使用燃料の耐ノック係数を推定したとき、その推定耐ノック係数は、耐ノック係数最小値と耐ノック係数最大値の間のいずれかの位置にある。実際のトレース点火時期は図３実線で示したように上に凸の曲線であるので、こうした場合に、実際のトレース点火時期を直線で近似することが一般的である。例えば、図示のＧ点とＨ点とを結んだ一本の直線（図示しない）で近似することである。しかしながら、図３実線で示す曲線が大きく曲がっている場合において、推定耐ノック係数が耐ノック係数最小値と耐ノック係数最大値のちょうど真ん中付近にあるときに実際のトレース点火時期からの誤差が大きくなってしまう。
【００３８】
そこで本発明では、実際のトレース点火時期を二本の直線で近似する。すなわち、図３に一点鎖線で示したように、Ｇ点とＩ点を結ぶ直線と、Ｈ点とＩ点を結ぶ直線との二本の直線で近似することにより、実際のトレース点火時期からの誤差が大きくならないようにする。
【００３９】
今、推定耐ノック係数が、耐ノック係数中間値よりも耐ノック係数最小値に近い側にある、つまり耐ノック係数最小値と耐ノック係数中間値との間の図示位置にあるとすると、Ｇ点よりＪ点（トレース点火時期）までのトレース点火時期補正量ＤＡＤＶ［ｄｅｇ］は次式により算出することができる。
【００４０】
ＤＡＤＶ＝ａ×（ＡＮＴＩＫＮＫｅｓｔ−ＡＮＴＩＫＮＫｍｉｎ）
…（１）
ただし、ａ：直線の傾き
ＡＮＴＩＫＮＫｅｓｔ：推定耐ノック係数、
ＡＮＴＩＫＮＫｍｉｎ：耐ノック係数最小値、
ここで、（１）式の直線の傾きａは、図３においてＧ点とＩ点を結ぶ直線（第１基準トレース点火時期に近い側の直線）の傾きであり、本発明ではこの直線の傾きａを改めて「トレース点火時期移動量基本値」という名称で定義する。
【００４１】
このようして、トレース点火時期補正量ＤＡＤＶが求まれば、Ｇ点の第１基準トレース点火時期［ｄｅｇＢＴＤＣ］よりこのトレース点火時期補正量ＤＡＤＶだけ進角側の値を推定耐ノック係数の燃料（使用燃料）に対するトレース点火時期ＫＮＫＣＡＬ［ｄｅｇＢＴＤＣ］として、つまり次式により使用燃料に対するトレース点火時期ＫＮＫＣＡＬを求めることができる。
【００４２】
ＫＮＫＣＡＬ＝ＴＲＣＡＤＶ１＋ＤＡＤＶ                …（２）
ただし、ＴＲＣＡＤＶ１：第１基準トレース点火時期、
点火時期の単位は圧縮上死点を基準として進角側に計測したクランク角位置であるので、この点火時期の値が大きくなるほど点火時期は進角側に向かう。従って、（２）式によりトレース点火時期補正量ＤＡＤＶを加算することは、第１基準トレース点火時期よりトレース点火時期補正量ＤＡＤＶだけ進角させた値をトレース点火時期ＫＮＫＣＡＬとして定めることを意味するので、（２）式によりＪ点のトレース点火時期を求めることができている。
【００４３】
一方、推定耐ノック係数が、耐ノック係数中間値よりも耐ノック係数最大値に近い側にある、つまり耐ノック係数最大値と耐ノック係数中間値との間の図示位置にあるとすると、Ｈ点よりＫ点（トレース点火時期）までのトレース点火時期補正量ＤＡＤＶ［ｄｅｇ］を次式により算出することができる。
【００４４】
ＤＡＤＶ＝ｂ×（ＡＮＴＩＫＮＫｍａｘ−ＡＮＴＩＫＮＫｅｓｔ）
…（３）
ただし、ｂ：直線の傾き
ＡＮＴＩＫＮＫｅｓｔ：推定耐ノック係数、
ＡＮＴＩＫＮＫｍａｘ：耐ノック係数最大値、
ここで、（３）式の直線の傾きｂは、図３においてＩ点とＨ点を結ぶ直線（第２基準トレース点火時期に近い側の直線）の傾きのことで、本発明ではこの直線の傾きｂも「トレース点火時期移動量基本値」と定義する。上記の傾きａとこの傾きｂとを区別するため、上記の傾きａを「第１トレース点火時期移動量基本値」、傾きｂを「第２トレース点火時期移動量基本値」という。
【００４５】
このようして、トレース点火時期補正量ＤＡＤＶが求まれば、Ｈ点の第２基準トレース点火時期［ｄｅｇＢＴＤＣ］よりこのトレース点火時期補正量ＤＡＤＶだけ遅角側の値を推定耐ノック係数の燃料（使用燃料）に対するトレース点火時期ＫＮＫＣＡＬ［ｄｅｇＢＴＤＣ］として、つまり次式により使用燃料に対するトレース点火時期ＫＮＫＣＡＬを求めることができる。
【００４６】
ＫＮＫＣＡＬ＝ＴＲＣＡＤＶ２−ＤＡＤＶ                …（４）
ただし、ＴＲＣＡＤＶ２：第２基準トレース点火時期
（４）式によりトレース点火時期補正量ＤＡＤＶを減算することは、第２基準トレース点火時期よりトレース点火時期補正量ＤＡＤＶだけ遅角させた値をトレース点火時期ＫＮＫＣＡＬとして定めることを意味するので、（４）式によりＫ点のトレース点火時期を求めることができている。
【００４７】
上記（１）式の第１トレース点火時期移動量基本値ａ及び上記（３）式の第２トレース点火時期移動量基本値ｂは、図２（Ａ）、図２（Ｂ）の特性より類推して、エンジンの負荷及び回転速度（つまりエンジン運転条件）と耐ノック係数とにより異なっている。ガソリン燃料を対象とする場合には、例えば図４に示したように、第１トレース点火時期移動量基本値ａは、エンジンの運転条件が同じであれば、推定耐ノック係数が大きくなるほど大きくなり、推定耐ノック係数と回転速度Ｎｅが同じであれば、高負荷時のほうが低負荷時より大きくなる傾向を有している。従って、（１）式の第１トレース点火時期移動量基本値ａ及び（３）式の第２トレース点火時期移動量基本値ｂは、後述するように、エンジンの負荷と回転速度Ｎｅをパラメータとして予めマップにしておく。
【００４８】
なお、実際のトレース点火時期を近似する２つの直線を定めるのに、実施形態では図３においてＩ点、つまり耐ノック係数中間値に対する実トレース点火時期を採用しているが、これに限られるものでなく、実際のトレース点火時期が図示のような曲線であるときにはＩ点をもっと左側に採ることが考えられる。
【００４９】
次に、エンジンコントローラ３１で実行されるこの点火時期制御を以下のブロック図に基づいて詳述する。
【００５０】
図５は、エンジンコントローラ３１の有する点火時期算出部の全体構成図で、点火時期算出部は、基準トレース点火時期算出部５１、耐ノック係数推定部５２、燃料判定部５３、切換スイッチ５４、トレース点火時期補正量算出部５５、加算器５６、基本点火時期算出部５７、最小値選択部５８からなっている。
【００５１】
このうち基準トレース点火時期算出部５１の詳細を図６に、耐ノック係数推定部５２の詳細を図７に、ガソリン燃料を対象とする場合の燃料判定部５３の詳細を図８（Ａ）に、アルコール燃料を対象とする場合の燃料判定部５３の詳細を図８（Ｂ）に、同じオクタン価のガソリン燃料を対象とする場合の燃料判定部５３の詳細を図８（Ｃ）に、トレース点火時期補正量算出部５２の詳細を図１１に、基本点火時期算出部５７の詳細を図１２にそれぞれ示している。
【００５２】
まず、図６から説明すると、図６において第１基準トレース点火時期算出部６１ではエンジンの負荷と回転速度Ｎｅから所定のマップを検索することにより第１基準燃料に対するトレース点火時期である第１基準トレース点火時期ＴＲＣＡＤＶ１［ｄｅｇＢＴＤＣ］を算出する。同様にして、第２基準トレース点火時期算出部６２ではエンジンの負荷と回転速度Ｎｅから所定のマップを検索することにより第２基準燃料に対するトレース点火時期である第２基準トレース点火時期ＴＲＣＡＤＶ２［ｄｅｇＢＴＤＣ］を算出する。
【００５３】
第１基準トレース点火時期ＴＲＣＡＤＶ１、第２基準トレース点火時期ＴＲＣＡＤＶ２はいずれも、同じ回転速度Ｎｅであればエンジンの負荷が大きくなるほど遅角側に向かい、また同じ負荷であればエンジンの回転速度Ｎｅが低くなるほど遅角側に向かう値である。また、第２基準燃料のほうが、第１基準燃料よりノックが生じにくい分だけ、第２基準トレース点火時期ＴＲＣＡＤＶ２のほうが全体として第１基準トレース点火時期ＴＲＣＡＤＶ１より進角側の値となっている。
【００５４】
図７に示している耐ノック係数の推定はノックの発生する時期に合わせて行う。ノックの発生する時期は点火直後であり、点火は気筒毎に所定のクランク角位置で行われるので、図７に示している耐ノック係数の推定は気筒毎の所定のクランク角位置で行う。
【００５５】
図７おいてまず、耐ノック係数増加量算出部７１では、エンジンの負荷と回転速度Ｎｅから所定のマップを検索することにより耐ノック係数増加量ＤＺＯＵ［無名数］を算出する。同様にして、耐ノック係数減少量算出部７２では、エンジンの負荷と回転速度Ｎｅから所定のマップを検索することにより耐ノック係数減少量ＤＧＥＮ［無名数］を算出する。
【００５６】
切換スイッチ７３では、耐ノック係数増加制限の条件でないとき耐ノック係数増加量ＤＺＯＵをそのまま出力し、これに対して耐ノック係数増加制限の条件であるときには耐ノック係数増加量ＤＺＯＵをゼロとして出力する（つまり耐ノック係数増加量ＤＺＯＵを出力しない）。
【００５７】
ここで、耐ノック係数増加制限の条件とは、第１に、図２（Ａ）に示したように、推定耐ノック係数ＡＮＴＩＫＮＫｅｓｔの燃料（使用燃料）に対するトレース点火時期が破線の位置にあったとして、この破線と一点鎖線のＭＢＴとが交わる点をＢ点としたとき、Ｂ点より負荷の小さな領域（耐ノック係数増加制限域）にあるときであり、第２にはノックが生じているときである。当該耐ノック係数増加制限域で耐ノック係数増加量ＤＺＯＵをゼロとするのは、この耐ノック係数増加制限域ではできるだけノックを発生させたくないためである。すなわち、耐ノック係数増加量ＤＺＯＵを加算することは、後述するようにその加算分だけ耐ノック性が高い燃料であると推定するものであるため、最終的に求められる推定耐ノック係数の燃料（使用燃料）に対するトレース点火時期（ＫＮＫＣＡＬ）がその加算分だけ進角側の値となる。ということは、それだけノックが生じやすくなるわけである。そこで、この耐ノック係数増加制限域では耐ノック係数増加量ＤＺＯＵを加算させないようにする。
【００５８】
ノックが生じているときに耐ノック係数増加量ＤＺＯＵをゼロとするのは、後述するように、ノックが生じているときに耐ノック係数減少量ＤＧＥＮが、耐ノック係数増加量ＤＺＯＵに代わって出力されるので、ノックが生じているときには耐ノック係数増加量ＤＺＯＵを出力する必要がないためである。
【００５９】
図７において、切換スイッチ７４では、ノック判定結果に基づき、ノックが発生しているときには耐ノック減少量ＤＧＥＮをそのまま出力し、これに対してノックが生じていないときには、耐ノック減少量ＤＧＥＮをゼロとして出力する。ここで、ノック判定結果とは、ノックセンサ３７に基づいてノック判定部７６で行われる、ノックが生じているか否かの判定結果のことである。
【００６０】
切換スイッチ７４からの出力が入力される反転器７５では、入力値の符号を逆にして出力する。つまり、耐ノック係数減少量ＤＧＥＮがゼロでないときに、その正の値の耐ノック係数減少量ＤＧＥＮにマイナスの符号を付けて出力する。
【００６１】
切換スイッチ７７では、ノック判定結果に基づきノックが生じているときはマイナスの符号の付された耐ノック係数減少量ＤＧＥＮを出力し、これに対してノックが生じていないときには切換スイッチ７３の出力をそのまま出力する。
【００６２】
加算器７９では、推定耐ノック係数前回値保持器７８からの推定耐ノック係数前回値に切換スイッチ７７からの出力を加算した値を推定耐ノック係数（今回値）ＡＮＴＩＫＮＫｅｓｔとして算出する。つまり、次式により推定耐ノック係数ＡＮＴＩＫＮＫｅｓｔを更新する。
【００６３】
ＡＮＴＩＫＮＥｅｓｔ＝ＡＮＴＩＫＮＥｅｓｔ（前回）＋切換スイッチ出力
…（５）
ただし、ＡＮＴＩＫＮＥｅｓｔ（前回）：ＡＮＴＩＫＮＥｅｓｔの前回値、
（５）式は、ノックが発生したときには、次の（６）式となり、耐ノック係数増加制限の条件でないときには次の（７）式となる。すなわち、ノックが発生しているか否かの判定結果に基づいて、ノックが発生したときには、推定耐ノック係数ＡＮＴＩＫＮＫｅｓｔを耐ノック係数減少量ＤＧＥＮだけ小さくし、ノックが発生していないあいだは耐ノック係数増加量ＤＺＯＵずつ推定耐ノック係数ＡＮＴＩＫＮＫｅｓｔを大きくしていく。
【００６４】
ＡＮＴＩＫＮＥｅｓｔ＝ＡＮＴＩＫＮＥｅｓｔ（前回）−ＤＧＥＮ
…（６）
ＡＮＴＩＫＮＥｅｓｔ＝ＡＮＴＩＫＮＥｅｓｔ（前回）＋ＤＺＯＵ
…（７）
このようにして、推定耐ノック係数ＡＮＴＩＫＮＥｅｓｔは、ガソリン燃料を対象とする場合にそのときに使用しているガソリン燃料のオクタン価に応じたものとなる。また、アルコール燃料を対象とする場合には、推定耐ノック係数はそのときに使用しているアルコール燃料のアルコール混入率に応じたものと、さらに、同じオクタン価のガソリン燃料を対象とする場合には、推定耐ノック係数はそのときの環境条件である外気の湿度に応じたものとなる。
【００６５】
耐ノック係数リミッタ８０では、加算器７８によって更新された推定耐ノック係数ＡＮＴＩＫＮＫｅｓｔを上限値と下限値の間に制限している。すなわち、更新された推定耐ノック係数ＡＮＴＩＫＮＫｅｓｔが上限値を超えているときには上限値を推定耐ノック係数ＡＮＴＩＫＮＫｅｓｔとし、これに対して更新された推定耐ノック係数ＡＮＴＩＫＮＫｅｓｔが下限値を下回っているときには下限値を推定耐ノック係数ＡＮＴＩＫＮＫｅｓｔとする。
【００６６】
耐ノック係数の上限値、耐ノック係数の下限値としては耐ノック係数の最小値、耐ノック係数の最大値よりも外側に設ける。ガソリン燃料を対象とする場合には例えば、オクタン価下限値（例えば８０）を耐ノック係数上限値として、オクタン価上限値（例えば１１０）を耐ノック係数上限値としてそれぞれ設定する。
【００６７】
このようにして耐ノック係数リミッタ７９により制限された後の推定耐ノック係数は、推定耐ノック係数前回値保持器７６により推定耐ノック係数前回値として保持される。
【００６８】
上記の耐ノック係数増加量ＤＺＯＵ、耐ノック係数減少量ＤＧＥＮは、エンジンの回転速度Ｎｅが同じであれば、エンジンの負荷が大きくなるほど小さくなり、またエンジンの負荷が同じであれば回転速度Ｎｅが低くなるほど小さくなる値である。耐ノック係数増加量ＤＺＯＵと耐ノック係数減少量ＤＧＥＮとの比較では、エンジンの負荷と回転速度Ｎｅが同じとき、耐ノック係数増加量ＤＺＯＵのほうが耐ノック係数減少量ＤＧＥＮより小さくなっている。
【００６９】
ここで、耐ノック係数増加量ＤＺＯＵをエンジンの負荷と回転速度Ｎｅをパラメータとする可変値で設定したのは、次の理由からである。すなわち、エンジンの負荷や回転速度Ｎｅに関係なく、耐ノック係数増加量ＤＺＯＵの１回の加算によって最終的に求まる使用燃料のトレース点火時期（ＫＮＫＣＡＬ）が、所定時間当たり１度（あるいは２度）といったクランク角だけ進角側にずれるように、この逆に耐ノック係数減少量ＤＧＥＮの１回の減算によって最終的に求まる使用燃料のトレース点火時期（ＫＮＫＣＡＬ）が、今度は進角側とは反対側の遅角側に、所定時間当たり同じクランク角だけずれるように設定したい、という要求があり、この要求に応えたものである。逆に言うと、最終的に求まる使用燃料のトレース点火時期が、エンジンの負荷や回転速度Ｎｅに関係なく所定時間当たり同じクランク角だけ進角側や遅角側にずれるように、耐ノック係数増加量ＤＺＯＵと耐ノック係数減少量ＤＧＥＮとをエンジンの負荷と回転速度Ｎｅとに応じて設定している。
【００７０】
こうした耐ノック係数増加量ＤＺＯＵ及び耐ノック係数減少量ＤＧＥＮの設定によって、エンジンの負荷や回転速度Ｎｅに関係なく、トレース点火時期ＫＮＫＣＡＬの算出タイミングでノックが生じる毎に一定角度ずつトレース点火時期ＫＮＫＣＡＬが遅角されてゆき、またトレース点火時期ＫＮＫＣＡＬの算出タイミングにノックが生じてなければ一定角度ずつトレース点火時期ＫＮＫＣＡＬが進角されてゆくこととなる。
【００７１】
ガソリン燃料を対象とする場合の燃料判定部５３の詳細が図８（Ａ）、アルコール燃料を対象とする場合の燃料判定部５３の詳細が図８（Ｂ）、同じオクタン価のガソリン燃料を対象とする場合の燃料判定部５３の詳細が図８（Ｃ）であるが、代表してアルコール燃料を対象とする場合で説明する。
【００７２】
燃料性状の判定は気筒毎の所定のクランク角位置で（つまりノックが発生しているか否かの判定タイミング毎に）行う。図８（Ａ）において燃料判定部８１では、推定耐ノック係数ＡＮＴＩＫＮＫｅｓｔをオクタン価へと変換する。この場合に、推定耐ノック係数ＡＮＴＩＫＮＫｅｓｔからオクタン価への変換にはヒステリシスを設けている。すなわち、推定耐ノック係数ＡＮＴＩＫＮＫｅｓｔが、今仮に耐ノック係数最小値ＡＮＴＩＫＮＫｍｉｎにあり、その後に変化して耐ノック係数最小値ＡＮＴＩＫＮＫｍｉｎより大きくなっても、オクタン価は最小オクタン価（９０）のままで変わらず、さらに変化して耐ノック係数最大値ＡＮＴＩＫＮＫｍａｘ（閾値）に等しくなるか耐ノック係数最大値ＡＮＴＩＫＮＫｍａｘを上回って大きくなるとオクタン価は最大オクタン価（１００）へと切換わる。この逆に、推定耐ノック係数ＡＮＴＩＫＮＫｅｓｔが、今仮に耐ノック係数最大値ＡＮＴＩＫＮＫｍａｘにあり、その後に変化して耐ノック係数最大値ＡＮＴＩＫＮＫｍａｘより小さくなっても、オクタン価は最大オクタン価（１００）のままであり、さらに変化して耐ノック係数最小値ＡＮＴＩＫＮＫｍｉｎ（閾値）に等しくなるか耐ノック係数最小値ＮＴＩＫＮＫｍｉｎを下回って小さくなるとオクタン価は最小オクタン価（９０）へと切換わる。言い換えると、燃料判定結果として、オクタン価９０が出力されることは、使用燃料のオクタン価が最小オクタン価に近い側にあることを、またオクタン価１００が出力されることは、使用燃料のオクタン価が最大オクタン価に近い側にあることを意味している。
【００７３】
このようにして、使用燃料のオクタン価が最小オクタン価かまたは最大オクタン価のいずれに近い側にあるのかの燃料判が行われる（燃料判定部８１により、使用燃料が最小オクタン価の燃料に近い側にあるのかそれとも最大オクタン価の燃料に近い側にあるのかの判定が行われる）。
【００７４】
上記（５）式、（６）式、（７）式の推定耐ノック係数の前回値を表すＡＮＴＩＫＮＥｅｓｔ（前回）の初期値（耐ノック係数初期値）は、エンジンの始動時毎に設定する。
【００７５】
これを図９により説明すると、図９において横軸に推定耐ノック係数を、縦軸に耐ノック係数初期値を採っている。前回のエンジン運転時に推定耐ノック係数が演算されているとして、その演算値が収まる範囲の上限と下限に上限閾値Ｌｏと下限閾値Ｈｉを定めれば、前回のエンジン運転時に推定耐ノック係数が演算されていれば、その演算値はこれら上限閾値Ｌｏと下限閾値Ｈｉの間に収まることとなる。従って、このときには前回のエンジン運転時に演算されている推定耐ノック係数をそのまま今回のエンジン運転時における耐ノック係数初期値として設定すればよい。
【００７６】
これに対して、推定耐ノック係数がこれら上限閾値Ｌｏと下限閾値Ｈｉの間に収まっていない場合とは、推定耐ノック係数が一度も演算されていない、つまり今回のエンジン運転時に初めて推定耐ノック係数を演算する場合である。このときには、何らかの値を、つまりメモリに予め設定している値を耐ノック係数初期値として与えてやる必要がある。このため、上限閾値Ｌｏと下限閾値Ｈｉの中間に設けた中間閾値と推定耐ノック係数とを比較し、推定耐ノック係数が中間閾値より大きいときにはＲＯＭに記憶している最大値を耐ノック係数初期値として、この逆に推定耐ノック係数が中間閾値より小さいときにはＲＯＭに記憶している最小値を耐ノック係数初期値として設定する。この結果、図９において太実線で示す特性が耐ノック係数初期値の特性を表すことになる。
【００７７】
図９に示した耐ノック係数初期値の設定については、図１０のフローにより説明する。図１０のフローはエンジンの始動時に１回だけ実行する。
【００７８】
図１０において、まずステップ９１〜９４では次の条件が成立しているか否かを一つずつ確かめ、すべての条件が成立しているときにステップ９５に進んで前回のエンジン停止時にメモリに格納されている推定耐ノック係数の値をそのまま、今回のエンジン運転時の耐ノック係数初期値として設定する。
〈１〉前回のエンジン停止時の推定耐ノック係数が下限閾値Ｌｏ以上かつ上限閾値Ｈｉ以      下であること。
〈２〉水温センサ３８により検出される始動時水温と、前回のエンジン停止時の水温との      差が所定値以内であること。
〈３〉吸気温度センサ４３により検出される始動時の吸気温度と、前回のエンジン停止時      の吸気温度との差が所定値以内であること。
〈４〉大気圧センサ４４により検出される始動時の大気圧と、前回のエンジン停止時の大      気圧との差が所定値以内であること。
【００７９】
ここで、〈１〉は前回のエンジン運転時に推定耐ノック係数が演算されていることを条件とするものである。〈２〉〜〈４〉は前回のエンジン運転時と今回のエンジン運転時との間で環境条件が変化していないことを条件とするものである。すなわち、前回のエンジン運転時に推定耐ノック係数が演算されており、かつ前回のエンジン運転時と今回のエンジン運転時との間で環境条件が変化していなければ、前回のエンジン運転時に演算している推定耐ノック係数をそのまま今回のエンジン運転時の耐ノック係数初期値とする。
【００８０】
一方、上記〈１〉〜〈４〉のいずれかでも満たさない場合には、ステップ９６に進んで前回のエンジン停止時の推定耐ノック係数と中間閾値とを比較する。前回のエンジン停止時の推定耐ノック係数が中間閾値より大きい場合にはステップ９７に進んでエンジンコントローラ３１内のＲＯＭに記憶されている最大値を耐ノック係数初期値として、また前回のエンジン停止時の推定耐ノック係数が中間閾値より小さい場合にはステップ９８に進んでエンジンコントローラ３１内のＲＯＭに記憶されている最小値を耐ノック係数初期値としてそれぞれ設定する。
【００８１】
図５に戻り、ガソリン燃料を対象とする場合に、切換スイッチ５４で、燃料判定部５３による燃料判定結果に基づき、使用燃料のオクタン価が第１基準燃料のオクタン価（９０）に近い側にあるときには第１基準トレース点火時期ＴＲＣＡＤＶ１を、また使用燃料のオクタン価が第２基準燃料のオクタン価（１００）に近い側にあるときには第２基準トレース点火時期ＴＲＣＡＤＶ２を基本トレース点火時期ＴＲＣＡＤＶ０として出力する。
【００８２】
同様にして、アルコール燃料を対象とする場合に、切換スイッチ５４で燃料判定結果に基づき、使用燃料のアルコール混入率がアルコール混入率０％の燃料（第１基準燃料）に近い側にあるときには第１基準トレース点火時期ＴＲＣＡＤＶ１を、また使用燃料のアルコール混入率がアルコール混入率１００％の燃料（第２基準燃料）に近い側にあるときには第２基準トレース点火時期ＴＲＣＡＤＶ２を基本トレース点火時期ＴＲＣＡＤＶ０として、また、同じオクタン価のガソリン燃料を対象とする場合に、切換スイッチ５４で燃料判定結果に基づき、外気の湿度が最小湿度に近い側にあるときには第１基準トレース点火時期ＴＲＣＡＤＶ１を、また外気の湿度が最大湿度に近い側にあるときには第２基準トレース点火時期ＴＲＣＡＤＶ２を基本トレース点火時期ＴＲＣＡＤＶ０としてそれぞれ出力する。
【００８３】
図１１に示しているトレース点火時期補正量の算出は気筒毎の所定のクランク角位置で行う。図１１において、第１トレース点火時期移動量基本値算出部１０１ではエンジンの負荷と回転速度Ｎｅから所定のマップを検索することにより、推定耐ノック係数ＡＮＴＩＫＮＫｅｓｔが、耐ノック係数中間値ＡＮＴＩＫＮＫｍｉｄよりも耐ノック係数最小値ＡＮＴＩＫＮＫｍｉｎに近い側にある場合のトレース点火時期移動量基本値である第１トレース点火時期移動量基本値ａ［ｄｅｇＢＴＤＣ］を算出する。同様にして、第２移動量基本値算出部１０２ではエンジンの負荷と回転速度Ｎｅから所定のマップを検索することにより、推定耐ノック係数ＡＮＴＩＫＮＫｅｓｔが、耐ノック係数中間値ＡＮＴＩＫＮＫｍｉｄよりも耐ノック係数最大値ＡＮＴＩＫＮＫｍａｘに近い側にある場合のトレース点火時期移動量基本値である第２トレース点火時期移動量基本値ｂ［ｄｅｇＢＴＤＣ］を算出する。
【００８４】
切換スイッチ１０３では、ガソリン燃料を対象とする場合において、燃料判定結果に基づき、使用燃料のオクタン価が第１基準燃料のオクタン（９０）に近い側にあるときには第１トレース点火時期移動量基本値ａを、また使用燃料のオクタン価が第２基準燃料のオクタン価（１００）に近い側にあるときには第２トレース点火時期移動量基本値ｂをトレース点火時期移動量基本値ｃ［ｄｅｇＢＴＤＣ］として出力する。
【００８５】
同様にして、アルコール燃料を対象とする場合に、使用燃料のアルコール混入率がアルコール混入率０％の燃料に近い側にあるときには第１トレース点火時期移動量基本値ａを、また使用燃料のアルコール混入率がアルコール混入率１００％の燃料に近い側にあるときには第２トレース点火時期移動量基本値ｂをトレース点火時期移動量基本値ｃとして、また、同じオクタン価のガソリン燃料を対象とする場合に、外気の湿度が最小湿度に近い側にあるときには第１トレース点火時期移動量基本値ａを、また外気の湿度が最大湿度に近い側にあるときには第２トレース点火時期移動量基本値ｂをトレース点火時期移動量基本値ｃとしてそれぞれ出力する。
【００８６】
一方、もう一つの切換スイッチ１０４では、ガソリン燃料を対象とする場合に、燃料判定結果に基づき、使用燃料のオクタン価が最小オクタン価に近い側にあるときに第１基準耐ノック係数ＡＮＴＩＫＮＫ１を、また使用燃料のオクタン価が最大オクタン価に近い側にあるときに第２基準耐ノック係数ＡＮＴＩＫＮＫ２を基準耐ノック係数ＡＮＴＩＫＮＫ０として出力する。ここで、第１基準耐ノック係数とは耐ノック係数最小値ＡＮＴＩＫＮＫｍｉｎのこと、第２基準耐ノック係数とは耐ノック係数最大値ＡＮＴＩＫＮＫｍａｘのことである。
【００８７】
差分器１０５では推定耐ノック係数ＡＮＴＩＫＮＫｅｓｔと切換スイッチ１０４の出力である基準耐ノック係数ＡＮＴＩＫＮＫ０との差を差分推定耐ノック係数ＤＡＮＴＩとして算出する。すなわち、次式により差分推定耐ノック係数ＤＡＮＴＩを算出する。
【００８８】
ＤＡＮＴＩ＝ＡＮＴＩＫＮＫｅｓｔ−ＡＮＴＩＫＮＫ０    …（８）
乗算器１０６ではトレース点火時期移動量基本値ｃにこの差分推定耐ノック係数ＤＡＮＴＩを乗算した値をトレース点火時期補正量ＤＡＤＶ［ｄｅｇ］として、つまり次式によりトレース点火時期補正量ＤＡＤＶを算出する。
【００８９】
ＤＡＤＶ＝ｃ×ＤＡＮＴＩ                              …（９）
図５に戻り、加算器５６では基本トレース点火時期ＴＲＣＡＤＶ０とトレース点火時期補正量ＤＡＤＶを加算して、つまり次式によりトレース点火時期ＫＮＫＣＡＬ［ｄｅｇＢＴＤＣ］を算出する。
【００９０】
ＫＮＫＣＡＬ＝ＴＲＣＡＤＶ０＋ＤＡＤＶ                …（１０）
上記（９）式は、推定耐ノック係数ＡＮＴＩＫＮＫｅｓｔが、耐ノック係数中間値ＡＮＴＩＫＮＫｍｉｄよりも耐ノック係数最小値ＡＮＴＩＫＮＫｍｉｎに近い側にある場合には次の（１１）式となり、また耐ノック係数中間値ＡＮＴＩＫＮＫｍｉｄよりも耐ノック係数最大値ＡＮＴＩＫＮＫｍａｘに近い側にある場合には次の（１２）式となる。
【００９１】
ＤＡＤＶ＝ａ×ＤＡＮＴＩ
＝ａ×（ＡＮＴＩＫＮＫｅｓｔ−ＡＮＴＩＫＮＫ１）
＝ａ×（ＡＮＴＩＫＮＫｅｓｔ−ＡＮＴＩＫＮＫｍｉｎ）
…（１１）
ＤＡＤＶ＝ｂ×ＤＡＮＴＩ
＝ｂ×（ＡＮＴＩＫＮＫｅｓｔ−ＡＮＴＩＫＮＫ２）
＝ｂ×（ＡＮＴＩＫＮＫｅｓｔ−ＡＮＴＩＫＮＫｍａｘ）
…（１２）
ここで、（１１）式は上記（１）式と同じである。一方、（１２）式では、ＡＮＴＩＫＮＫｅｓｔ＜ＡＮＴＩＫＮＫｍａｘであることより、トレース点火時期補正量ＤＡＤＶはマイナスの値を含んでいることになる。このため、（１２）式と（１０）式とを合わせ考えれば、上記（３）式と（４）式の組合せと実質的に同じであることがわかる。
【００９２】
図１２に示しているＭＢＴの得られる基本点火時期ＭＢＴＣＡＬの算出は気筒毎の所定のクランク角位置で行ってもよいし、一定時間毎（例えば１０ｍｓ毎）に行わせてもかまわない。図１２において基本点火時期算出部１１１ではエンジンの負荷と回転速度Ｎｅから所定のマップを検索することによりＭＢＴの得られる基本点火時期ＭＢＴＣＡＬ［ｄｅｇＢＴＤＣ］を算出する。基本点火時期ＭＢＴＣＡＬは、同じ回転速度Ｎｅであればエンジンの負荷が大きくなるほど遅角側に向かい、また同じ負荷であればエンジンの回転速度Ｎｅが低くなるほど遅角側に向かう値である。ＭＢＴの得られる基本点火時期ＭＢＴＣＡＬは燃料の種類や性状に依存しない値であるため、ガソリン燃料を対象とする場合、アルコール燃料を対象とする場合、同じオクタン価のガソリン燃料を対象とする場合のいずれの場合においても１つのマップでかまわない。
【００９３】
図５に戻り、最小値選択部５８ではトレース点火時期ＫＮＫＣＡＬと基本点火時期ＭＢＴＣＡＬとを比較し、小さい方の値を最終的な点火時期ＡＤＶ［ｄｅｇＢＴＤＣ］として選択する。点火時期の単位は、圧縮上死点を基準として進角側に計測したクランク角位置であるので、小さい方を選択するとは、トレース点火時期ＫＮＫＣＡＬと基本点火時期ＭＢＴＣＡＬのうち遅角側の値を選択することである。
【００９４】
このようにして算出した点火時期ＡＤＶは、点火時期指令値として点火レジスタに移され、実際のクランク角がこの点火時期指令値と一致したタイミングでエンジンコントローラ３１より一次電流を遮断する点火信号がパワートランジスタに出力される。
【００９５】
ここで、本実施形態の作用効果を説明する。
【００９６】
本実施形形態（請求項１に記載の発明）では、エンジンの負荷と回転速度Ｎｅから定まる１つの運転条件において図３に示したように実際のトレース点火時期を二本の直線で近似する。すなわち、図３一点鎖線で示したように、Ｇ点とＩ点を結ぶ直線と、Ｈ点とＩ点を結ぶ直線との二本の直線で実際のトレース点火時期を近似することにより、特許文献１の技術のように曲線で近似する場合よりは若干精度は落ちるものの、実際のトレース点火時期からの誤差が大きくならないようにすることができる。そして、本実施形態（請求項１に記載の発明）により１つの運転条件に対して実際のトレース点火時期を２本の直線で近似するのであれば、１つの運転条件に対してメモリに記憶させる値は２つ直線の傾き、つまり２つでよいことになる。従って、運転条件の相違毎に２つの値を記憶させるだけで済むのであれば、特許文献１の技術のように図１４の曲線特性を運転条件の相違毎に記憶させる場合に比較して、メモリ容量が膨大となることもない。
【００９７】
このように、本実施形態（請求項１、２９に記載の発明）によれば、耐ノック係数（ノックの起こりにくさの程度）の異なる２つの燃料を第１基準燃料、第２基準燃料として予め定めておき、第１基準燃料に対するトレース点火時期である第１基準トレース点火時期ＴＲＣＡＤＶ１と、第２基準燃料に対するトレース点火時期である第２基準トレース点火時期ＴＲＣＡＤＶ２とをそれぞれ算出し、使用燃料の耐ノック係数を推定し、前記２つの基準トレース点火時期の間を曲線で変化する実際のトレース点火時期を２つの直線で近似し、その近似した２つの直線と推定耐ノック係数ＡＮＴＩＫＮＫｅｓｔとに基づいて、使用燃料のトレース点火時期補正量ＤＡＤＶを算出し、この算出したトレース点火時期補正量ＤＡＤＶと２つの基準トレース点火時期ＴＲＣＡＤＶ１、ＴＲＣＡＤＶ２とに基づいて、使用燃料に対するトレース点火時期ＫＮＫＣＡＬを算出し、この算出されたトレース点火時期ＫＮＫＣＡＬで火花点火を行うので、メモリ容量を制限しつつ、エンジンの運転条件の相違に関係なく、使用燃料の耐ノック係数（ガソリン燃料を対象としている場合にはオクタン価）が２つの各基準燃料よりより大きく離れている場合においても、実際のトレース点火時期からのずれを防ぐことができる。
【００９８】
本実施形態（請求項１６、４４に記載の発明）によれば、図７の耐ノック係数リミッタ８０において、耐ノック係数減少量ＤＧＥＮだけ減少させた後の推定耐ノック係数ＡＮＴＩＫＮＫｅｓｔが予め記憶された下限値より小さい場合に、耐ノック係数減少量ＤＧＥＮだけ減少させた後の推定耐ノック係数ＡＮＴＩＫＮＫｅｓｔをこの下限値に制限するので、誤リタードを防止することができる。
【００９９】
本実施形態（請求項１８、４６に記載の発明）によれば、図７の耐ノック係数減少量算出部７２において、耐ノック係数減少量ＤＧＥＮの１回の減算によって使用燃料に対するトレース点火時期ＫＮＫＣＡＬが、所定時間当たり所定クランク角（１度あるいは２度）だけ遅角側にずれるように耐ノック係数減少量ＤＧＥＮを設定するので、ノック回避のために必要最低限のリタードとすることができる。
【０１００】
本実施形態（請求項２１、４９に記載の発明）によれば、図７の耐ノック係数リミッタ８０において、耐ノック係数増加量ＤＺＯＵだけ増加させた後の推定耐ノック係数ＡＮＴＩＫＮＫｅｓｔが予め記憶された上限値より大きい場合に、耐ノック係数増加量ＤＺＯＵだけ増加させた後の推定耐ノック係数ＡＮＴＩＫＮＫｅｓｔをこの上限値に制限するので、誤進角を防止することができる。
【０１０１】
本実施形態（請求項２２、５０に記載の発明）によれば、点火時期以外の要求から、耐ノック係数の増加が制限されている場合に、図７の切換スイッチにおいて、推定耐ノック係数ＡＮＴＩＫＮＫｅｓｔを増加させないので、誤進角を防止することができる。
【０１０２】
本実施形態（請求項２３、５１に記載の発明）によれば、耐ノック係数増加制限域（図２（Ａ）参照）で、推定耐ノック係数ＡＮＴＩＫＮＫｅｓｔの燃料に対するトレース点火時期が、ＭＢＴの得られる基本点火時期ＭＢＴＣＡＬより進角した場合に、推定耐ノック係数ＡＮＴＩＫＮＫｅｓｔを増加させないので、ＭＢＴよりトレース点火時期が進角することによるトルク低下を防止できる（誤進角防止）。
【０１０３】
本実施形態（請求項２５、５３に記載の発明）によれば、図７の耐ノック係数増加量算出部７１において、耐ノック係数増加量ＤＺＯＵの１回の加算によって使用燃料に対するトレース点火時期ＫＮＫＣＡＬが、所定時間当たり所定クランク角（１度あるいは２度）だけ進角側にずれるように前記ック係数増加量ＤＺＯＵを設定するので、急に強いノックが発生するのを防げる。
【０１０４】
請求項１に記載の発明において、基準トレース点火時期算出処理手順は図５の基準トレース得点火時期算出部５１により、トレース点火時期補正量算出処理手順は図５のトレース点火時期補正量部５５により、トレース点火時期算出処理手順は図５の切換スイッチ５４及び加算器５６により、火花点火処理手順は図１のエンジンコントローラ３１及び点火装置１１によりそれぞれ果たされている。
【０１０５】
請求項２９に記載の発明において、基準トレース点火時期算出手段の機能は図５の基準トレース得点火時期算出部５１により、トレース点火時期補正量算出手段の機能は図５のトレース点火時期補正量部５５により、トレース点火時期算出手段の機能は図５の切換スイッチ５４及び加算器５６により、火花点火実行手段の機能は図１のエンジンコントローラ３１及び点火装置１１によりそれぞれ果たされている。
【図面の簡単な説明】
【０１０６】
【図１】本発明の第１実施形態のエンジンの点火時期制御装置の概略構成図。
【図２】ＭＢＴ、トレース点火時期の２つの点火時期の特性図。
【図３】使用燃料に対するトレース点火時期の算出方法を説明するための特性図。
【図４】第１トレース点火時期移動量基本値の特性図。
【図５】エンジンコントローラの有する点火時期算出部の全体構成図。
【図６】基準トレース点火時期算出部の詳細図。
【図７】耐ノック係数推定部の詳細図。
【図８（Ａ）】ガソリン燃料を対象とする場合の燃料判定部の詳細図。
【図８（Ｂ）】アルコール燃料を対象とする場合の燃料判定部の詳細図。
【図８（Ｃ）】同じオクタン価のガソリン燃料を対象とする場合の燃料判定部の詳細図。
【図９】耐ノック係数初期値の特性図。
【図１０】耐ノック係数初期値の設定を説明するためのフローチャート。
【図１１】トレース点火時期補正量算出部の詳細図。
【図１２】基本点火時期算出部の詳細図。
【図１３】従来技術のＭＢＴ、トレース点火時期の２つの点火時期の特性図。
【図１４】従来技術の進角率の特性図。
【符号の説明】
【０１０７】
１１  点火装置
３１  エンジンコントローラ
３７  ノックセンサ
【図１】
0004839892.tif 000002
【図２】
0004839892.tif 000003
【図３】
0004839892.tif 000004
【図４】
0004839892.tif 000005
【図５】
0004839892.tif 000006
【図６】
0004839892.tif 000007
【図７】
0004839892.tif 000008
【図８（Ａ）】
0004839892.tif 000009
【図８（Ｂ）】
0004839892.tif 000010
【図８（Ｃ）】
0004839892.tif 000011
【図９】
0004839892.tif 000012
【図１０】
0004839892.tif 000013
【図１１】
0004839892.tif 000014
【図１２】
0004839892.tif 000015
【図１３】
0004839892.tif 000016
【図１４】
0004839892.tif 000017