(57)【要約】【課題】アルコール濃度の学習が完了しない場合でもノックを確実に抑制すると共に、加速性能の低下を可能な限り回避する内燃機関の制御装置を提供する。【解決手段】燃料に混合されたアルコール濃度の学習が完了している場合には学習されたアルコール濃度に応じて点火時期の遅角限界値を設定する一方、学習が完了していない場合には所定のアルコール濃度に応じて点火時期の遅角限界値を設定する内燃機関の制御装置において、学習が完了するまで所定の運転状態、より具体的にはオクタン価が低く（Ｓ１１４）、エンジン冷却水温ＴＷや吸気温度ＴＡが高く（Ｓ１１８）、エンジン回転数ＮＥが所定回転数未満のとき（Ｓ１２６）、スロットルバルブなど吸入空気量を調整する弁の開度を上限値ＴＨＯＭＸＬＧＧＸ（より具体的には最終上限値ＴＨＯＭＡＸＬＧＧ）に制限する（Ｓ１２８からＳ１３４）。【選択図】図７
2010037970.tif 000002
【特許請求の範囲】
【請求項１】
クランク角度に対する点火時期を設定する点火時期設定手段と、燃料に混合されたアルコール濃度を学習するアルコール濃度学習手段と、前記学習が完了している場合には学習されたアルコール濃度に応じて前記点火時期の遅角限界値を設定する一方、前記学習が完了していない場合には所定のアルコール濃度に応じて前記点火時期の遅角限界値を設定する遅角限界値設定手段とを備えた火花点火式の内燃機関の制御装置において、前記学習が完了するまで所定の運転状態において吸入空気量を調整する弁の開度を上限値に制限する弁開度制限手段を備えたことを特徴とする内燃機関の制御装置。
【請求項２】
前記所定の運転状態は、前記所定のアルコール濃度よりも低いアルコール濃度においてノックを生じる運転状態であることを特徴とする請求項１記載の内燃機関の制御装置。
【請求項３】
前記所定の運転状態は、前記所定のアルコール濃度よりも低いアルコール濃度において、前記所定のアルコール濃度に応じて設定される遅角限界値よりも遅角側でノックを生じる運転状態であることを特徴とする請求項１記載の内燃機関の制御装置。
【請求項４】
前記所定の運転状態は、機関回転数が所定回転数以上となる運転状態であることを特徴とする請求項１から３のいずれかに記載の内燃機関の制御装置。
【請求項５】
前記所定の運転状態は、前記燃料の推定オクタン価が所定オクタン価未満となる運転状態であることを特徴とする請求項１から４のいずれかに記載の内燃機関の制御装置。
【請求項６】
前記所定の運転状態は、機関温度と吸気温度の少なくともいずれかを含む温度パラメータが所定値以上の高温と判断される運転状態であることを特徴とする請求項１から５のいずれかに記載の内燃機関の制御装置。
【請求項７】
前記燃料のオクタン価、機関温度および吸気温度の少なくともいずれかを含むパラメータを検出し、前記検出されたパラメータに基づいて前記所定の運転状態にあるか否か判定する運転状態判定手段と、前記弁開度制限手段による制限が実行中か否か判定する制限実行判定手段と、前記制限実行判定手段によって前記制限が実行中と判定されるとき、前記運転状態判定手段の判定を禁止する判定禁止手段とを備えたことを特徴とする請求項１から６のいずれかに記載の内燃機関の制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は内燃機関の制御装置に関し、より詳しくはフレキシブル・フューエル・ビークル（Flexible Fuel Vehicle）、即ち、ガソリン燃料でも、エタノール燃料でも、あるいはガソリンとエタノールの混合燃料でも運転可能な車両用の内燃機関の制御装置に関する。
【背景技術】
【０００２】
近時、フレキシブル・フューエル・ビークル（以下「ＦＦＶ」という）用の内燃機関の制御装置が種々提案されており、その一例として特許文献１，２記載の技術を挙げることができる。特許文献１は、学習されたアルコール濃度に応じて点火時期の遅角限界値を設定すると共に、学習が完了しない場合には最も高いアルコール濃度に応じて点火時期の遅角限界値を設定する技術を開示する。尚、遅角限界値は、アルコール濃度が高い場合、低い場合よりも進角側に設定される。
【０００３】
特許文献２は、機関の負荷が所定値以上のとき、空燃比フィードバック制御を中止すると共に、アルコール濃度の学習が完了するまで、機関の負荷が前記所定値以上とならないようにスロットル開度を上限値に制限する技術を開示する。
【特許文献１】特開２００８−１１５８０４号公報
【特許文献２】特開２００８−１１５８０３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
給油などによって燃料のアルコール濃度が低下すると、高い場合に比してノックが発生し易いためにノック抑制のための遅角量が増加するが、特許文献１記載の技術にあっては学習が完了しない場合には点火時期の遅角限界値が進角側に設定されるため、ノック抑制のための遅角量を確保できない場合がある。
【０００５】
その場合、特許文献２記載の技術のように、アルコール濃度の学習が完了するまでスロットル開度を上限値に制限すれば、機関の負荷の上昇を抑制できるので、ノックを抑制することができる。しかしながら、アルコール濃度の学習が完了するまで常にスロットル開度を制限すると、運転者の加速要求に十分に応えられない恐れがある。
【０００６】
従って、この発明の目的は上記した課題を解決し、アルコール濃度の学習が完了しない場合でもノックを確実に抑制すると共に、加速性能の低下を可能な限り回避する内燃機関の制御装置を提供することにある。
【課題を解決するための手段】
【０００７】
上記の目的を解決するために、請求項１にあっては、クランク角度に対する点火時期を設定する点火時期設定手段と、燃料に混合されたアルコール濃度を学習するアルコール濃度学習手段と、前記学習が完了している場合には学習されたアルコール濃度に応じて前記点火時期の遅角限界値を設定する一方、前記学習が完了していない場合には所定のアルコール濃度に応じて前記点火時期の遅角限界値を設定する遅角限界値設定手段とを備えた火花点火式の内燃機関の制御装置において、前記学習が完了するまで所定の運転状態において吸入空気量を調整する弁の開度を上限値に制限する弁開度制限手段を備える如く構成した。
【０００８】
請求項２に係る内燃機関の制御装置にあっては、前記所定の運転状態は、前記所定のアルコール濃度よりも低いアルコール濃度においてノックを生じる運転状態である如く構成した。
【０００９】
請求項３に係る内燃機関の制御装置にあっては、前記所定の運転状態は、前記所定のアルコール濃度よりも低いアルコール濃度において、前記所定のアルコール濃度に応じて設定される遅角限界値よりも遅角側でノックを生じる運転状態である如く構成した。
【００１０】
請求項４に係る内燃機関の制御装置にあっては、前記所定の運転状態は、機関回転数が所定回転数以上となる運転状態である如く構成した。
【００１１】
請求項５に係る内燃機関の制御装置にあっては、前記所定の運転状態は、前記燃料の推定オクタン価が所定オクタン価未満となる運転状態である如く構成した。
【００１２】
請求項６に係る内燃機関の制御装置にあっては、前記所定の運転状態は、機関温度と吸気温度の少なくともいずれかを含む温度パラメータが所定値以上の高温と判断される運転状態である如く構成した。
【００１３】
請求項７に係る内燃機関の制御装置にあっては、前記燃料のオクタン価、機関温度および吸気温度の少なくともいずれかを含むパラメータを検出し、前記検出されたパラメータに基づいて前記所定の運転状態にあるか否か判定する運転状態判定手段と、前記弁開度制限手段による制限が実行中か否か判定する制限実行判定手段と、前記制限実行判定手段によって前記制限が実行中と判定されるとき、前記運転状態判定手段の判定を禁止する判定禁止手段とを備える如く構成した。
【発明の効果】
【００１４】
請求項１に係る内燃機関の制御装置にあっては、燃料に混合されたアルコール濃度を学習するアルコール濃度学習が完了していない場合には所定のアルコール濃度に応じて点火時期の遅角限界値を設定すると共に、学習が完了するまで所定の運転状態において吸入空気量を調整する弁の開度を上限値に制限する如く構成したので、アルコール濃度の学習が完了せず、（高い場合に比して）ノックが発生し易い低いアルコール濃度であったとしても、吸入空気量を調整する弁の開度を制限することで機関の負荷の上昇を抑制してノックを確実に抑制できる一方、弁の開度の制限を所定の運転状態に限定することで、加速性能の低下を可能な限り回避することができる。
【００１５】
また、アルコール濃度に応じて点火時期の遅角限界値を設定するので、比較的高いアルコール濃度の燃料を使用するときには点火プラグの要求電圧に応じた遅角限界値を設定することで失火を防止できると共に、比較的低いアルコール濃度の燃料の使用時には点火プラグの要求電圧を考慮しなくても良いため、遅角限界値をより遅角側に設定することができ、ノックやトルクショックの抑制の遅角量も確保することができる。
【００１６】
請求項２に係る内燃機関の制御装置にあっては、所定の運転状態は、所定のアルコール濃度よりも低いアルコール濃度においてノックを生じる運転状態である如く構成したので、上記したアルコール濃度が低い場合のノックの抑制と加速性能の低下の回避を最適に両立させることができる。
【００１７】
請求項３に係る内燃機関の制御装置にあっては、所定の運転状態は、所定のアルコール濃度よりも低いアルコール濃度において、所定のアルコール濃度に応じて設定される遅角限界値よりも遅角側でノックを生じる運転状態である如く構成したので、同様に上記したアルコール濃度が低い場合のノックの抑制と加速性能の低下の回避を最適に両立させることができる。
【００１８】
請求項４に係る内燃機関の制御装置にあっては、所定の運転状態は、機関回転数が所定回転数以上となる運転状態である如く構成したので、上記したアルコール濃度が低い場合のノックの抑制と加速性能の低下の回避を一層最適に両立させることができる。即ち、アルコール濃度が高い場合の遅角限界値は高回転域で進角側となるので、高回転域では低アルコール濃度によるノック発生時の遅角余裕がなくなってしまうが、所定回転数を適宜設定すると共に、それ以上の高回転域にあるときに吸入空気量を調整する弁の開度を上限値に制限することで、そのような不都合を回避することができる。
【００１９】
請求項５に係る内燃機関の制御装置にあっては、所定の運転状態は、燃料の推定オクタン価が所定オクタン価未満となる運転状態である如く構成したので、上記したアルコール濃度が低い場合のノックの抑制と加速性能の低下の回避を一層最適に両立させることができる。即ち、オクタン価が低いとノックが発生しやすくなるが、所定オクタン価を適宜設定すると共に、それ未満のオクタン価にあるときに吸入空気量を調整する弁の開度を上限値に制限することで、そのような不都合を回避することができる。
【００２０】
請求項６に係る内燃機関の制御装置にあっては、所定の運転状態は、機関温度と吸気温度の少なくともいずれかを含む温度パラメータが所定値以上の高温と判断される運転状態である如く構成したので、上記したアルコール濃度が低い場合のノックの抑制と加速性能の低下の回避を一層最適に両立させることができる。即ち、機関温度または吸気温度が高いとノックが発生しやすくなるが、所定値を適宜設定すると共に、それ以上の高温と判断されるときに吸入空気量を調整する弁の開度を上限値に制限することで、そのような不都合を回避することができる。
【００２１】
請求項７に係る内燃機関の制御装置にあっては、燃料のオクタン価、機関温度および吸気温度の少なくともいずれかを含むパラメータに基づいて所定の運転状態にあるか否か判定する運転状態判定手段と、弁開度制限手段による制限が実行中か否か判定する制限実行判定手段と、制限実行判定手段によって制限が実行中と判定されるとき、運転状態判定手段の判定を禁止する判定禁止手段とを備える如く構成したので、上記した効果に加え、機関出力の不要の変動を回避することができる。即ち、かかる内燃機関はアクセル操作量などに応じて出力が決定されるが、弁開度制限手段による制限の実行中にパラメータが変化した場合、所定の運転状態にあるか否か判定しないことで、アクセル操作量が同一であるにも関わらず、出力が変動してしまうのを回避することができる。
【発明を実施するための最良の形態】
【００２２】
以下、添付図面に即してこの発明に係る内燃機関の制御装置を実施するための最良の形態について説明する。
【実施例】
【００２３】
図１は、この発明の実施例に係る内燃機関の制御装置を全体的に示す概略図である。
【００２４】
図１において、符号１０は、ＦＦＶ（図示せず）に搭載される、４気筒（シリンダ）４サイクルの内燃機関（１気筒のみ図示。以下「エンジン」という）を示す。エンジン１０において、エアクリーナ１２から吸入されて吸気管１４を通る吸入空気量はスロットルバルブ（弁）１６で流量を調節されて吸気マニホルド１８を流れ、２個の吸気バルブ（１個のみ図示）２０が開弁されるとき、燃焼室に流入する。
【００２５】
スロットルバルブ１６は、ＦＦＶ運転席床面に配置されたアクセルペダル（図示せず）との機械的な接続を絶たれ、ＤＣモータ（アクチュエータ）２２に接続され、ＤＣモータ２２で駆動されて開閉する。このように、スロットルバルブ１６の開度はＤＢＷ（Drive By Wire）方式で制御される。
【００２６】
吸気バルブ２０の手前の吸気ポート付近には、メイン・インジェクタ２４が配置される。メイン・インジェクタ２４には、メイン燃料タンク２６に貯留され、メイン燃料タンク２６の内部に配置されたメイン燃料ポンプ２８で汲み上げられる燃料がメイン燃料供給管３０を介して圧送される。
【００２７】
メイン燃料タンク２６に貯留される燃料としては、ガソリンとエタノール（エチルアルコール）の混合燃料、具体的にはガソリン７８％とエタノール２２％の混合燃料（Ｅ２２）からガソリン０％とエタノール１００％のエタノール燃料（Ｅ１００）までの間のアルコール燃料が予定される。尚、アルコール燃料はガソリンに比して理論空燃比がリッチ側にずれると共に、そのずれはアルコール濃度の増加につれて拡大する。
【００２８】
吸気ポート付近においてメイン・インジェクタ２４の上流側には、サブ・インジェクタ３２が配置される。サブ・インジェクタ３２には、サブ燃料タンク３４に貯留されてサブ燃料ポンプ３６で汲み上げられるサブ燃料がサブ燃料供給管３８を介して圧送される。サブ燃料としては、ガソリン燃料、Ｅ２２燃料などが使用される。
【００２９】
メイン・インジェクタ２４とサブ・インジェクタ３２は、駆動回路（図示せず）を通じてＥＣＵ（Electronic Control Unit。電子制御ユニット）４０に電気的に接続され、ＥＣＵ４０から開弁時間を示す駆動信号が駆動回路を通じて供給されると開弁し、開弁時間に応じた燃料を吸気ポートに噴射する。噴射された燃料は、流入した空気と混合して混合気（予混合気）を形成し、吸気バルブ２０が開弁されるとき、燃焼室に流入する。サブ燃料は、エンジン１０の始動時にのみ使用される。
【００３０】
燃焼室には点火プラグ４４が配置される。点火プラグ４４はイグナイタなどからなる点火装置（図示せず）に接続される。点火装置はＥＣＵ４０から点火信号が供給されると、点火プラグ４４の電極間に火花放電を生じさせる。混合気はそれによって着火されて燃焼し、ピストン４６を下方に駆動する。
【００３１】
ピストン４６を包み込むシリンダブロックの下部のクランクケース４８の内部には、ピストン４６に接続され、ピストン４６の上下運動を回転運動に変換するクランクシャフト（図示せず。５０はそれに取り付けられるパルサプレートを示す）が収容される。クランクケース４８の下部は、オイル（潤滑油）を受けるオイルパンを構成する。
【００３２】
燃焼によって生じた排気（排ガス）は、２個の排気バルブ（図示せず）が開弁するとき、排気ポート５２を通って排気管５４に流れる。排気管５４には、（２床の三元触媒からなる）触媒装置５６が配置される。排気は、触媒装置５６が活性状態にあるとき、ＨＣ，ＣＯ，ＮＯｘなどの有害成分を除去されてエンジン外の大気に放出される。
【００３３】
メイン燃料タンク２６とサブ燃料タンク３４の液面上方空間はチャージ通路５８，６０を介してキャニスタ６２に接続されると共に、キャニスタ６２はパージ通路６４を介して吸気管１４にスロットルバルブ１６の配置位置の下流で接続される。パージ通路６４には電磁バルブからなるパージ制御バルブ６４ａが設けられ、励磁されるとき、パージ通路６４を開放する。
【００３４】
上記した構成において、メイン燃料タンク２６とサブ燃料タンク３４から蒸発した燃料蒸気はチャージ通路５８，６０を通ってキャニスタ６２に流れ、その内部に収容された吸着材６２ａに吸着される。キャニスタ６２の内部はパージ制御バルブ６４ａが励磁されるとき、吸気管１４から負圧が作用し、吸着された燃料蒸気は大気開放孔６２ｂから導入される新気と共に、パージ通路６４を通って吸気系にパージされる。
【００３５】
クランクケース４８の上部はＰＣＶ（Positive Crankcase Ventilation）用の孔が穿設され、吸気管１４のスロットルバルブ１６の配置位置の下流と還流通路６８で接続される。還流通路６８にはチェックバルブ６８ａが設けられ、クランクケース内のオイルに混入したアルコール蒸気は、所定圧以上となるとチェックバルブ６８ａを押し開き、還流通路６８を通ってブローバイガスとして吸気系にパージされる。
【００３６】
シリンダブロックの上のシリンダヘッドには油圧で動作する動弁機構７０が設けられ、吸気バルブ２０のバルブタイミングとリフト量を高低２種のエンジン出力特性の間で変更（換言すれば、吸入空気量を調整する吸気バルブ２０の開度を変更）する。
【００３７】
尚、エンジン１０の出力はＡＴ（自動変速機）に送られ、そこで変速されて駆動輪に伝達されるが、ＡＴなどの図示は省略する。
【００３８】
エンジン１０のクランクシャフトの付近にはクランク角センサ７２が配置され、前記したパルサプレート５０の回転から気筒判別信号と、各気筒のＴＤＣ（上死点）あるいはその付近のクランク角度を示すＴＤＣ信号と、ＴＤＣ信号を細分してなるクランク角度信号とを出力する。
【００３９】
エアクリーナ１２の付近には温度検出素子を備えたエアフローメータ７４が配置され、エアクリーナ１２から吸入される空気（吸気）量Ｑと吸気温度ＴＡに応じた信号を出力する。
【００４０】
吸気管１４においてスロットルバルブ１６の下流にはＭＡＰセンサ７６が配置され、吸気管内圧力ＰＢＡを絶対圧で示す信号を出力すると共に、スロットルバルブ１６にはスロットル開度センサ７８が配置され、スロットルバルブ１６の位置、即ち、スロットル開度ＴＨに応じた信号を出力する。
【００４１】
エンジン１０の冷却水通路（図示せず）には水温センサ８０が配置されてエンジン冷却水温、即ち、エンジン温度ＴＷに応じた信号を出力すると共に、シリンダブロックにはノックセンサ８２が配置され、ノックに起因してエンジン１０に生じる振動に応じた信号を出力する。
【００４２】
排気系において触媒装置５６の上流には広域空燃比センサ８４が配置され、理論空燃比からリッチあるいはリーンに至るまでの広い範囲において排気中の酸素濃度に応じた信号を出力する。広域空燃比センサ８４の出力に基づき、検出空燃比ＫＡＣＴが当量比で算出される。また、触媒装置５６の触媒床の間にはＯ２センサ８６が配置され、排気中の酸素濃度が理論空燃比からリッチあるいはリーンに変化するたびに反転する信号を出力する。
【００４３】
メイン燃料タンク２６にはフューエルレベルセンサ８８が配置され、燃料の液面高さに応じた信号を出力する。
【００４４】
アクセルペダルの付近にはアクセル開度センサ９０が設けられ、運転者のアクセルペダル踏み込み量を示すアクセル位置（エンジン負荷を示す）ＡＰに応じた信号を出力する。ドライブシャフト（図示せず）の付近には車速センサ９２が設けられ、ドライブシャフトの回転当たりにパルス信号を出力すると共に、ＦＦＶの適宜位置には大気圧センサ９４が設けられ、大気圧ＰＡに応じた信号を出力する。
【００４５】
上記したセンサ群の出力は、ＥＣＵ４０に入力される。ＥＣＵ４０はマイクロコンピュータからなり、ＣＰＵ，ＲＯＭ，ＲＡＭ，Ａ／Ｄ変換回路、入出力回路およびカウンタ（全て図示せず）を備える。ＥＣＵ４０は入力信号の内、クランク角度信号をカウントしてエンジン回転数ＮＥを算出（検出）すると共に、車速センサ９２の出力をカウントして車速ＶＰを算出（検出）する。
【００４６】
ＥＣＵ４０は入力値と算出値に基づき、ＲＯＭに格納されている命令に従い、続いて述べるように、燃料噴射量などを算出すると共に、エンジン回転数ＮＥと吸気管内絶対圧ＰＢＡとから吸気バルブ２０のバルブタイミングとリフト量を高低２種の特性の間で変更する。
【００４７】
図２は、そのＥＣＵ４０の動作を機能的に説明するブロック図である。
【００４８】
符号４０ａは燃料噴射量算出ブロックを示し、そこにおいては検出された運転状態に応じてエンジン１０に供給すべき燃料噴射量ＴＯＵＴが算出される。
【００４９】
即ち、エンジン負荷に応じて基本燃料噴射量ＴＩＭが算出されると共に、検出された空燃比ＫＡＣＴを目標空燃比ＫＣＭＤに制御する空燃比フィードバック制御においてそれらの偏差に応じて空燃比補正係数（空燃比フィードバック補正係数）ＫＡＦが算出され、さらにアルコール濃度補正係数（アルコール濃度学習値）ＫＲＥＦＢＳなど、その他の補正係数が算出されて基本燃料噴射量が補正されることで、燃料噴射量ＴＯＵＴが算出される。
【００５０】
燃料噴射量算出ブロック４０ａでは、空燃比補正係数ＫＡＦの制限値が設定されると共に、アルコール濃度が学習されるときの制限値の変更の際、空燃比補正係数ＫＡＦが制限値に達したとき、制限値を変更する如く構成される。
【００５１】
算出された燃料噴射量ＴＯＵＴに基づき、メイン・インジェクタ２４が駆動される。尚、アルコール燃料はエンジン冷却水温ＴＷが低いときに始動性が悪いことから、エンジン１０の始動時にはメイン・インジェクタ２４に加え、サブ・インジェクタ３２を駆動してサブ燃料が噴射される。
【００５２】
符号４０ｂはアルコール濃度学習ブロックを示し、そこにおいては空燃比補正係数ＫＡＦに基づいて燃料に含まれるアルコール濃度が学習される。即ち、空燃比補正係数ＫＡＦをなましてアルコール濃度学習値ＫＲＥＦＸを算出し、それを前回のアルコール濃度補正係数ＫＲＥＦＢＳに乗算して補正することでアルコール濃度補正係数ＫＲＥＦＢＳが更新される。アルコール濃度補正係数ＫＲＥＦＢＳは、ブロック４０ａに送られる。
【００５３】
図３を参照してアルコール濃度学習を説明すると、この実施例では空燃比補正係数ＫＡＦをなまして得たアルコール濃度学習値ＫＲＥＦＸに基づいてアルコール濃度が学習（検出）される。燃料としてＥ１００からＥ２２までを予定するが、アルコール濃度補正係数ＫＲＥＦＢＳはその中間のＥ６４に相当する値（１．０。補正なし）となるように初期値が設定される。
【００５４】
図３の左端に示す如く、Ｅ６４使用時、給油により燃料がＥ１００に切り替えられたとすると、それに応じて空燃比補正係数ＫＡＦとそれをなましたアルコール濃度学習値ＫＲＥＦＸは変化し、アルコール濃度補正係数は１．２に修正される。
【００５５】
その後、最下部のフラグＦ_ＲＥＦＵＥＬＦＦＶ（給油判定）のビットの変化に示すようにアイドル中に給油により燃料がＥ２２に切り替えられたとすると、空燃比補正係数ＫＡＦと学習値ＫＲＥＦＸは反転し、アルコール濃度補正係数は０．８に修正される。
【００５６】
尚、学習は、学習準備完了を示すフラグＦ_ＫＡＬＣＯＫがオンされているとき、フューエルカット実行を示すフラグＦ_ＦＣがオンされているときに実行される。また、給油判定後は、パージ許可を示すフラグＦ_ＦＦＶＰＧＧＯがオフされて旧燃料が消費されるまでパージが停止されるが、その間は学習も待機させられる。
【００５７】
図２の説明に戻ると、符号４０ｃは点火時期算出ブロックを示し、そこにおいては検出された運転状態に応じてエンジン１０に供給すべき点火時期が算出され、それに基づいて点火装置を介して点火プラグ４４の点火が制御される。
【００５８】
図４は点火時期算出ブロック４０ｃの処理の一部である点火時期の遅角限界値の算出処理を示すフロー・チャートである。図示のプログラムは、それぞれの気筒のＴＤＣ付近の所定クランク角度で実行される。
【００５９】
以下説明すると、Ｓ１０においてトルクショック抑制用に点火時期を遅角させるためのトルクショック遅角量が設定されているか否か判断する。
【００６０】
図５は、点火時期算出ブロック４０ｃの処理の一部を示すブロック図であり、図示の如く、点火時期算出ブロック４０ｃは、主としてトルクショック抑制用に点火時期を遅角させるためのトルクショック遅角量を設定するブロック４０ｃ１と、主としてノック発生時に点火時期を遅角させるためのノック遅角量を設定するブロック４０ｃ２を備える。
【００６１】
トルクショック遅角量は、過渡時のトルクショック抑制遅角量ＩＧＡＣＣＲと、スロットル開度急変時のノック抑制遅角量ＩＧＫＡＲＩと、フューエルカットからの復帰時の遅角量ＩＧＡＦＣＲと、ＡＴ（自動変速機）の変速ショック抑制遅角量ＩＧＡＴＲの４種からなる。
【００６２】
ノック遅角量は、ノックセンサ８２がノックを検出したときに設定される遅角量ＩＧＫＮＯＣＫと、吸気温度ＴＡに応じて設定されるノック補正量ＩＧＴＡと、エンジン冷却水温ＴＷに応じて設定されるＩＧＴＷＲの３種からなる。ノック遅角量は、それらを合算することで最終的に設定（算出）される。
【００６３】
ＩＧＴＡは、吸気温度ＴＡが所定温度（例えば３５℃）未満では０となり、所定温度以上の場合は高温になるほどその値が大きくなるが、ある高温（例えば１００℃）を超えると所定の一定値となるように設定される。ＩＧＴＷＲは、エンジン冷却水温ＴＷが所定温度（例えば８５℃）未満では０となり、所定温度以上の場合は高温になるほどその値が大きくなるが、ある高温（例えば１１５℃）を超えると所定の一定値となるように設定される。
【００６４】
上記した２種の遅角量の内、Ｓ１０においてはブロック４０ｃ１で算出されるトルクショック遅角量が設定されているか否か判断する。
【００６５】
Ｓ１０で肯定されるときはＳ１２に進み、フラグＦ_ＫＲＥＦＢＳＯＮのビットが１にセットされているか否か判断する。このフラグは別ルーチンにおいてアルコール濃度補正係数の更新、換言すればアルコール濃度の学習の実行が終了するときそのビットが１にセットされることから、Ｓ１２の判断はアルコール濃度の学習が完了したか否か判断することに相当する。
【００６６】
Ｓ１２で肯定されるときはＳ１４に進み、算出されたアルコール濃度補正ＫＲＥＦＢＳをそのまま点火時期算出用アルコール濃度ＫＲＥＦＢＳＩＧと設定する。これはアルコール濃度が高くなるにつれて遅角限界値が進角側に移動することから、点火時期を算出されたアルコール濃度に相応する値とするためである。
【００６７】
一方、Ｓ１２で否定されるときはＳ１６に進み、１．２を点火時期算出用アルコール濃度ＫＲＥＦＢＳＩＧと設定する。図３から明らかな如く、アルコール濃度補正係数ＫＲＥＦＢＳ１．２は、Ｅ１００を示す。
【００６８】
このようにＳ１２からＳ１６までの処理においてアルコール濃度の学習が完了したか否かによって遅角限界値を算出するためのアルコール濃度を持ち替える。また、アルコール濃度の学習が完了するまで、比較的高いアルコール濃度、より正確には最も高いアルコール濃度Ｅ１００に応じて遅角限界値が設定されるようにすることで失火を確実に防止する。
【００６９】
次いでＳ１８に進み、フラグＦ_ＶＴＥＣＩＧのビットが１にセットされているか否か判断する。このフラグは別ルーチンにおいて動弁機構７０の特性が高い側の特性に設定されているときそのビットが１にセットされることから、Ｓ１８の処理はそれを判断することに相当する。動弁機構７０の特性によって判断するのは、それによってエンジン１０の出力が相違するためである。
【００７０】
Ｓ１８で肯定されるときはＳ２０に進み、エンジン回転数ＮＥと設定された点火時期算出用アルコール濃度ＫＲＥＦＢＳＩＧで図６に示す特性から値ＩＧＬＧＧ０ＨＭを検索し、検索値を遅角限界値ＩＧＬＧＧとする。
【００７１】
またＳ１８で否定されるときはＳ２２に進み、エンジン回転数ＮＥと設定された点火時期算出用アルコール濃度ＫＲＥＦＢＳＩＧから図６に示す特性と類似する特性（図示せず）から値ＩＧＬＧＧ０ＬＭを検索し、検索値を遅角限界値ＩＧＬＧＧとする。
【００７２】
図６はエンジン回転数ＮＥに対してＥ２２とＥ６５とＥ１００の３種のアルコール濃度について設定された点火時期の遅角限界値ＩＧＬＧＧ０ＨＭの特性を示す説明グラフである。
【００７３】
点火時期は、基本点火時期からこの遅角限界値までの範囲内で算出される。即ち、図２の点火時期算出ブロック４０ｃで算出された遅角量が上記の遅角限界値を遅角側に超える場合、算出された遅角量は遅角限界値に制限される。
【００７４】
尚、Ｅ２２とＥ６５とＥ１００の間のアルコール濃度に相応する値は、補間によって求められる。これらの値ＩＧＬＧＧ０ＨＭ（および図示しないＩＧＬＧＧ０ＬＭ）は、点火プラグ４４の要求電圧に基づいた要求電圧遅角限界値である。
【００７５】
他方、Ｓ１０で否定されるときはＳ２４に進み、フラグＦ_ＫＲＥＦＢＳＯＮのビットが１にセットされているか否か判断する。
【００７６】
Ｓ２４で肯定されるときはＳ２６に進み、Ｓ１２以降の処理と同様、算出されたアルコール濃度補正ＫＲＥＦＢＳをそのまま点火時期算出用アルコール濃度ＫＲＥＦＢＳＩＧと設定すると共に、否定されるときはＳ２８に進み、１．２を点火時期算出用アルコール濃度ＫＲＥＦＢＳＩＧと設定する。
【００７７】
次いでＳ３０に進み、フラグＦ_ＶＴＥＣＩＧのビットが１にセットされているか否か判断し、肯定されるときはＳ３２に進み、エンジン回転数ＮＥで図示しない特性から値ＩＧＬＧＧ１Ｈを検索し、検索値を仮値ｉｇｌｇｇ１とする。次いでＳ３４に進み、Ｓ２０の処理と同様、エンジン回転数ＮＥと設定された点火時期算出用アルコール濃度ＫＲＥＦＢＳＩＧで図６に示す特性から値ＩＧＬＧＧ０ＨＭを検索し、検索値を仮値ｉｇｌｇｇ０とする。
【００７８】
他方、Ｓ３０で否定されるときはＳ３６，Ｓ３８に進み、共に図示しない特性を検索してＳ３２，Ｓ３４と同様の処理を行う。
【００７９】
次いでＳ４０に進み、仮値ｉｇｌｇｇ１，ｉｇｌｇｇ０の中でｍａｘ値、即ち、より進角側の値を選択し、遅角限界値ＩＧＬＧＧと確定する。
【００８０】
上記において、値ＩＧＬＧＧ０ＬＭ，ＩＧＬＧＧ０ＨＭが点火プラグ４４の要求電圧に基づいた要求電圧遅角限界値であるのに対し、値ＩＧＬＧＧ１Ｌ，ＩＧＬＧＧ１Ｈは触媒装置５６を保護するための触媒保護遅角限界値であり、Ｅ２２，Ｅ６５，Ｅ１００に共通に設定される。
【００８１】
トルクショック遅角量は比較的一過的な値であることから、点火プラグ４４の失火限界だけを考慮してプラグ要求電圧遅角限界値から設定する一方、ノック遅角量は比較的長時間に及ぶことから、プラグ要求電圧遅角限界値と触媒保護遅角限界値の中で、より進角側の値を前記遅角限界値として設定する如く構成した。
【００８２】
図２の説明に戻ると、符号４０ｄはスロットル開度制御値算出ブロックを示し、そこにおいてはスロットル開度ＴＨの制御値が算出され、それに基づいてＤＣモータ２２が駆動される。
【００８３】
図７は、スロットル開度制御値算出ブロック４０ｄの処理の一部である、プラグ保護用スロットル開度上限値算出処理を示すフロー・チャートである。図示のプログラムは１０ｍｓｅｃごとに実行される。
【００８４】
以下説明すると、Ｓ１００においてフラグＦ_ＦＳＰＡＦＦＢのビットが１にセットされているか否か判断する。このフラグは別ルーチンにおいて空燃比フィードバック制御停止となる故障、例えば広域空燃比センサ８４に故障が生じたとき、そのビットが１にセットされることから、Ｓ１００の処理はそれを判断することに相当する。
【００８５】
Ｓ１００で否定されるときはＳ１０２に進み、フラグＦ_ＦＳＡ０６のビットが１にセットされているか否か判断する。このフラグは別ルーチンにおいて水温センサ８０に故障が生じたとき、そのビットが１にセットされることから、Ｓ１０２の処理はそれを判断することに相当する。
【００８６】
Ｓ１０２で否定されるときはＳ１０４に進み、フラグＦ_ＦＳＡ１０のビットが１にセットされているか否か判断する。このフラグは別ルーチンにおいてエアフローメータ７４の温度検出素子に故障が生じたとき、そのビットが１にセットされることから、Ｓ１０４の処理はそれを判断することに相当する。
【００８７】
Ｓ１０４で否定されるときはＳ１０６に進み、フラグＦ_ＦＳＡ２３のビットが１にセットされているか否か判断する。このフラグは別ルーチンにおいてノックセンサ８２に故障が生じたとき、そのビットが１にセットされることから、Ｓ１０６の処理はそれを判断することに相当する。
【００８８】
Ｓ１０６で否定されるときはＳ１０８に進み、フラグＦ_ＴＨＯＭＸＬＧＧのビットが１にセットされているか否か判断する。このフラグは後述するようにスロットル開度ＴＨなどの弁の開度を上限値に制限する制御が実行されるとき、そのビットが１にセットされることから、Ｓ１０８はその制御が実行されているか否か判断することに相当する。
【００８９】
Ｓ１０８で肯定されるときはＳ１１０に進み、フラグＦ_ＴＨＩＤＬＥのビットが１にセットされているか否か判断する。このフラグは別ルーチンにおいてスロットル開度ＴＨが所定のアイドル開度（スロットル全閉付近に設定される）よりも大きいとき、そのビットが１にセットされる。
【００９０】
Ｓ１１０で否定されてスロットル開度ＴＨがアイドル開度より大きくない、換言すればスロットルバルブ１６が閉じられていると判断されるときはＳ１１２に進み、フラグＦ_ＫＲＥＦＢＳＯＮのビットからアルコール濃度の学習が完了したか否か判断し、否定されるときはＳ１１４に進み、値ＫＩＧＫＮが所定値ＫＩＧＴＨＬＧＧＬ以上か否か判断する。
【００９１】
値ＫＩＧＫＮはノックセンサ８２の出力からノックが検出されるたびにインクリメントされるカウンタ値で、ＲＯＮ（Research Octane Number。リサーチオクタン価）の推定値に相当することから、Ｓ１１４の処理は燃料のオクタン価が所定値ＫＩＧＴＨＬＧＧＬに相当するオクタン価（例えば８８ＲＯＮ）以下か否か判断することを意味する。
【００９２】
Ｓ１１４で肯定されるときはＳ１１６に進み、前記した点火時期の遅角量として算出される、吸気温度ＴＡが所定値以上のときに設定されるノック補正量ＩＧＴＡと、エンジン冷却水温ＴＷが高いときに設定されるＩＧＴＷＲとを合算し、その和ＤＩＧＴＡＴＷ（温度パラメータ）を算出する。
【００９３】
次いでＳ１１８に進み、和ＤＩＧＴＡＴＷが所定値ＤＩＧＴＨＬＧＧＬ以上か否か、換言すれば冷却水温ＴＷ、即ち、エンジン温度と吸気温度ＴＡが高い、より具体的にはノックが生じ易い運転状態にあるか否か判断する。
【００９４】
Ｓ１１８で肯定されるときはＳ１２０に進み、フラグＦ_ＶＴＥＣのビットが１にセットされているか否か判断する。このフラグは、別ルーチンにおいて動弁機構７０の特性がバルブリフト量の大きい高出力側の特性に設定されているとき、そのビットが１にセットされる。
【００９５】
Ｓ１２０で否定されるときはＳ１２２に進み、エンジン回転数ＮＥから図８に示す特性を検索してスロットル開度ＴＨの上限値ＴＨＯＭＸＬＧＧＸを算出する一方、Ｓ１２０で肯定されるときはＳ１２４に進み、同様にエンジン回転数ＮＥから図９に示す特性を検索してスロットル開度ＴＨの上限値ＴＨＯＭＸＬＧＧＸを算出する。
【００９６】
図８と図９に示す如く、スロットル開度ＴＨの上限値ＴＨＯＭＸＬＧＧＸはエンジン回転数ＮＥがＮＥ１（例えば４０００ｒｐｍ）にあるときは全開相当値、換言すれば制限されない開度に設定されると共に、ＮＥ１を超えるにつれて徐々に減少させられ、図８の場合はＮＥ２（例えば５５００ｒｐｍ）、図９の場合はＮＥ２よりも高回転であるＮＥ３を超えた後に、図示の如く、それぞれ所定の低開度ＴＨ１，ＴＨ２に設定される（ＴＨ１＞ＴＨ２）。
【００９７】
これは、エンジン回転数ＮＥがＮＥ１を超えて増加するほどＥ１００の遅角限界値が進角側となり、ノック発生時の遅角余裕が少なくなるため、それに応じてスロットル開度ＴＨを閉じ側に制限することでノックの発生を抑制するためである。
【００９８】
尚、図８と図９の対比から明らかな如く、動弁機構７０の特性が高出力側の特性に設定されている場合、然らざる場合に比し、ＮＥ２を超えた後もＴＨ１よりさらに低開度側のＴＨ２に設定される。これは、高回転側ほどＥ１００の遅角限界値が進角側となってノック発生時の遅角余裕が少なくなることと、吸入空気量を制限するに当たり、バルブリフト量が大きいほどスロットルバルブ１６の開度を低開度側に設定する必要があるためである。
【００９９】
図７の説明に戻ると、次いでＳ１２６に進み、算出（検索）されたスロットル開度ＴＨの上限値ＴＨＯＭＸＬＧＧＸが値ＴＨＭＡＸ以上か否か判断する。値ＴＨＭＡＸは全開相当のスロットル開度（スロットル開度の最大値、具体的には８３．３度）を意味する。
【０１００】
この値は、図８と図９においてＮＥ１未満のときのスロットル開度の上限値ＴＨＯＭＸＬＧＧＸと同一であり、従ってＳ１２６の判断はエンジン回転数ＮＥが所定回転数（例えば４０００ｒｐｍ）未満か否か判断することに相当する。
【０１０１】
Ｓ１２６で否定されてエンジン回転数ＮＥが所定回転数以上と判断されるときはＳ１２８に進み、目標スロットル開度ＴＨＯ、より正確には前回の目標スロットル開度ＴＨＯが、今回算出された上限値ＴＨＯＭＸＬＧＧＸを超えるか否か判断する。尚、目標スロットル開度ＴＨＯは、図２のスロットル開度制御値算出ブロック４０ｄにおいて図示しないルーチンに従って同様に１０ｍｓｅｃごとに算出される。
【０１０２】
Ｓ１２８で肯定されるときはＳ１３０に進み、前回の目標スロットル開度ＴＨＯから微小値ＤＴＨＴＨＬＧＧ（例えば０．２５度／１０ｍｓｅｃ）を減算して得た差を補正値ｔｈｏｍｘｌｇｇとし、Ｓ１３２に進み、補正値ｔｈｏｍｘｌｇｇをスロットル開度ＴＨの最終上限値ＴＨＯＭＸＬＧＧとする。
【０１０３】
即ち、目標スロットル開度ＴＨＯが上限値ＴＨＯＭＸＬＧＧＸを超えるときは、急変させず、徐々に上限値（最終上限値）ＴＨＯＭＸＬＧＧＸに近づける。尚、ｔｈｏｍｘｌｇｇの最小値はＴＨＯＭＸＬＧＧＸとし、ｔｈｏｍｘｌｇｇがＴＨＯＭＸＬＧＧＸを下回らないようにする。
【０１０４】
Ｓ１２８で否定されるときはＳ１３４に進み、算出されたスロットル開度ＴＨの上限値ＴＨＯＭＸＬＧＧＸをそのまま最終上限値ＴＨＯＭＸＬＧＧとし、Ｓ１３６に進み、前記したフラグＦ_ＴＨＯＭＸＬＧＧのビットを１にセットする。
【０１０５】
尚、図７の処理より算出されるスロットル開度ＴＨの制限値は、アルコール濃度の学習が完了していないときのノック対策を目的とするが、別の目的から図示しないルーチンに従ってスロットル開度ＴＨの制限値が算出されることもある。例えば特許文献２のように空燃比フィードバック制御を継続するために、図７の処理と平行してスロットル開度ＴＨの制限値が算出されることも考えられ、その場合には算出された制限値の中で最小値を選択することになる。
【０１０６】
他方、Ｓ１１２で肯定されてアルコール濃度の学習が完了したと判断されるときはＳ１３８に進み、スロットル開度ＴＨの最終上限値ＴＨＯＭＸＬＧＧを前記したＴＨＭＡＸ（全開相当のスロットル開度）に設定、換言すれば図７の処理ではスロットル開度ＴＨを制限しないこととする。
【０１０７】
次いでＳ１４０に進み、フラグＦ_ＴＨＯＭＸＬＧＧのビットを０にリセットする。先に述べた如く、このフラグのビットが１にセットされることは図７のスロットル開度ＴＨの上限値制限制御が実行されることを、０にリセットされることはその制御が実行されないことを意味する。
【０１０８】
尚、Ｓ１２６で肯定されてスロットル開度ＴＨの上限値ＴＨＯＭＸＬＧＧＸが全開相当のスロットル開度ＴＨＭＡＸ以上と判断されるとき、換言すれば図８（あるいは図９）においてエンジン回転数ＮＥが４０００ｒｐｍ未満のときは、制限する必要がないため、Ｓ１３８に進む。
【０１０９】
尚、Ｓ１００からＳ１０６のいずれかで肯定されるときは、Ｓ１１２からＳ１１８までの処理をスキップしてＳ１２０以降に進み、スロットル開度ＴＨを上限値に制限する。
【０１１０】
これは、空燃比フィードバック制御停止となる故障、例えば広域空燃比センサ８４に故障が生じたときはアルコール濃度が学習できず、水温センサ８０やエアフローメータ７４の温度検出素子に故障が生じたときはＳ１１６で要求されるＩＧＴＷＲやＩＧＴＡが算出できず、ノックセンサ８２に故障が生じたときはＳ１１４のオクタン価の推定値を算出できないため、いずれにしてもスロットル開度ＴＨを制限してノックあるいは失火を防止する必要があるからである。
【０１１１】
また、Ｓ１１０で肯定されてスロットル開度ＴＨがアイドル開度よりも大きいと判断されるときも、Ｓ１１２からＳ１１８までの処理をスキップしてＳ１２０以降に進む。
【０１１２】
即ち、スロットル開度ＴＨの上限値はプログラムループのたびにＳ１１２以降に規定される条件が成立すれば検索されるが、Ｓ１０８で肯定されてスロットル開度ＴＨの上限値制限制御が既に実行されている場合、エンジン１０の出力変動を可能な限り抑制する意図から、スロットル開度ＴＨがアイドル開度より大きいと判断されるときはＳ１１２からＳ１１８までの処理をスキップさせ、上限値の検索を中止させることとする。
【０１１３】
従って、Ｓ１０８で否定される場合、スロットル開度ＴＨの上限値制限制御が実行されていないことから、エンジン１０の出力が変動する恐れが少ないため、Ｓ１１０をスキップする。
【０１１４】
また、Ｓ１１４あるいはＳ１１８で否定される、即ち、オクタン価が高い、あるいはエンジン水温ＴＷや吸気温度ＴＡが低い、換言すればノックが生じ難いと判断されるときにＳ１３８に進む。
【０１１５】
これについて説明すると、この実施例にあってはアルコール濃度に応じて点火時期の遅角限界値ＩＧＬＧＧを設定しているため、例えばＥ１００を使用するときには点火プラグ４４の要求電圧に応じた遅角限界値を設定することで失火を防止できると共に、例えばＥ２２の使用時には遅角限界値を一層遅角側に設定できてノックやトルクショックの抑制の遅角量も確保することができる。
【０１１６】
また、アルコール濃度の学習が完了するまでは最も高いアルコール濃度Ｅ１００に応じて遅角限界値を設定するので、点火プラグ４４の失火を一層確実に防止することができる。
【０１１７】
しかしながら、アルコール濃度の学習が完了するまではアルコール濃度Ｅ１００に応じて遅角限界値を設定することで、アルコール濃度がＥ２２に変更されたとき、Ｅ２２のノックラインがＥ１００の遅角限界値に張り付いてしまうことがある。
【０１１８】
それについて図１０を参照して説明すると、図１０はＥ１００に応じて設定される遅角限界値ＩＧＬＧＧに対するＥ２２のノックラインを示し、同図（ａ）は基準ノックライン、即ち、吸気温度ＴＡ３０℃、エンジン冷却水温ＴＷ８０℃、オクタン価８８ＲＯＮのときのノックラインを示す。
【０１１９】
同図（ｂ）（ｃ）はそれよりも高温のときのノックライン、即ち、同図（ｂ）は吸気温度ＴＡ５０℃、エンジン冷却水温ＴＷ１０５℃、オクタン価８８ＲＯＮ、同図（ｃ）は吸気温度ＴＡ３０℃、エンジン冷却水温ＴＷ８０℃、オクタン価８５ＲＯＮのときのノックラインを示す。
【０１２０】
尚、ノックラインとは、定常状態におけるノック関連遅角量（ＩＧＫＮＯＣＫ＋ＩＧＴＡ＋ＩＧＴＷＲ）を考慮した最終点火時期で、これより進角側ではノックが発生する点火時期を意味する。図１０においてＥ２２のノックラインは、低負荷と高負荷の２種を示す。
【０１２１】
図４の処理においてはアルコール濃度の学習が完了するまで、最も高いアルコール濃度Ｅ１００に応じて遅角限界値ＩＧＬＧＧが設定されるが、給油などによって燃料のアルコール濃度が低い値に変更されることがある。図１０（ａ）は最も低いアルコール濃度であるＥ２２の基準ノックラインを示す。
【０１２２】
アルコール濃度が低い場合は高い場合に比してノックが発生し易いことから、Ｅ２２のノックラインは、図１０（ｂ）に示す如く、高温となると、エンジン回転数ＮＥが４０００ｒｐｍを超える付近から高負荷側でＥ１００の遅角限界値に接近し、５５００ｒｐｍ付近で張り付いてしまう。さらに、図１０（ｃ）に示す如く、オクタン価も低下すると、ノックラインは一層遅角側に移行し、高負荷側ではその回転域で遅角限界値を遅角側に超えてしまう。
【０１２３】
そこで、所定の運転状態においてスロットル開度ＴＨを制限して負荷を下げるようにした。即ち、図１０（ｃ）から明らかな如く、Ｅ２２のノックラインが遅角側に移行しても、低負荷側であれば、Ｅ１００用の遅角限界値ＩＧＬＧＧまでに若干の余裕があるからである。
【０１２４】
これにより、給油などによって燃料のアルコール濃度が想定されている最も低濃度のアルコール燃料Ｅ２２に変化したときも、ノック抑制のための遅角量を確保することができ、ノックを抑制することができる。尚、アルコール濃度において最も低いＥ２２でも遅角量を確保できる限り、Ｅ１００までの中間のアルコール濃度に変更されても支障ないことはいうまでもない。
【０１２５】
他方、アルコール濃度の学習が完了するまで常にスロットル開度ＴＨを上限値に制限し続けると、運転者の加速要求に十分に応えられない恐れがある。その意図から、この実施例においては、スロットル開度ＴＨの上限値制限を必要最低限の運転状態（所定の運転状態）においてのみ実行するようにした。
【０１２６】
具体的には、エンジン回転数が所定回転数（例えば４０００ｒｐｍ）以上となる運転状態（Ｓ１２６）、あるいは燃料のオクタン価ＲＯＮが所定オクタン価（例えば８８ＲＯＮ）未満となる運転状態（Ｓ１１４）、あるいはエンジン温度（エンジン冷却水温）ＴＷと吸気温度ＴＡの少なくともいずれか、具体的にはその両者を含む温度パラメータが所定値以上の高温、より具体的にはエンジン温度ＴＷが例えば９５℃で吸気温度ＴＡが例えば５０℃以上の高温と判断される運転状態（Ｓ１１８）、で実行するようにした。
【０１２７】
この実施例は上記の如く、クランク角度に対する点火時期を設定する点火時期設定手段（ＥＣＵ４０、点火時期算出ブロック４０ｃ）と、燃料に混合されたアルコール濃度を学習するアルコール濃度学習手段（ＥＣＵ４０、アルコール濃度学習ブロック４０ｂ）と、前記学習が完了している場合には学習されたアルコール濃度に応じて前記点火時期の遅角限界値ＩＧＬＧＧを設定する一方、前記学習が完了していない場合には所定のアルコール濃度、具体的には比較的高いアルコール濃度（例えばＥ９５からＥ１００）に応じて前記点火時期の遅角限界値ＩＧＬＧＧを設定する遅角限界値設定手段（ＥＣＵ４０，Ｓ１０からＳ４０）とを備えた火花点火式の内燃機関（エンジン）１０の制御装置（ＥＣＵ４０）において、前記学習が完了するまで所定の運転状態において吸入空気量を調整する弁、より具体的にはスロットルバルブ１６の開度を上限値ＴＨＯＭＸＬＧＧＸ（より具体的には最終上限値ＴＨＯＭＡＸＬＧＧ）に制限する弁開度制限手段（ＥＣＵ４０、スロットル開度制御値算出ブロック４０ｄ，Ｓ１００からＳ１４０）を備える如く構成したので、アルコール濃度の学習が完了せず、（高い場合に比して）ノックが発生し易い低いアルコール濃度の燃料であったとしても、スロットル開度ＴＨなどの弁の開度を制限することでエンジン１０の負荷の上昇を抑制してノックを確実に抑制できる一方、弁の開度の制限を所定の運転状態に限定することで、加速性能の低下を可能な限り回避することができる。
【０１２８】
尚、吸気バルブ２０のリフト量を連続変化可能な手段を設け、吸気バルブ２０によって吸入空気量を制御する場合には、スロットルバルブ１６ではなく、吸気バルブ２０の開度の上限値を設定するようにしても良い。
【０１２９】
また、アルコール濃度に応じて点火時期の遅角限界値ＩＧＬＧＧを設定するので、比較的高いアルコール濃度の燃料を使用するときには点火プラグ４４の要求電圧に応じた遅角限界値を設定することで失火を防止できると共に、比較的低いアルコール濃度の燃料の使用時には点火プラグ４４の要求電圧を考慮しなくても良いため、遅角限界値をより遅角側に設定することができ、ノックやトルクショックの抑制の遅角量も確保することができる。
【０１３０】
また、前記所定の運転状態は、前記所定のアルコール濃度（例えばＥ１００）よりも低いアルコール濃度（例えばＥ２２）においてノックを生じる運転状態である如く構成したので、上記したアルコール濃度が低い場合のノックの抑制と加速性能の低下の回避を最適に両立させることができる。尚、前記所定のアルコール濃度を例えばＥ１００とするとき、それよりも低いアルコール濃度は具体的には、最も低いアルコール濃度Ｅ２２を意味する。
【０１３１】
また、前記所定の運転状態は、前記所定のアルコール濃度（例えばＥ１００）よりも低いアルコール濃度（例えばＥ２２）において、前記所定のアルコール濃度（Ｅ１００）に応じて設定される遅角限界値ＩＧＬＧＧ、より正確にはＩＧＬＧＧ０ＬＭ（Ｅ１００）よりも遅角側でノックを生じる運転状態である如く構成したので、同様に上記したアルコール濃度が低い場合のノックの抑制と加速性能の低下の回避を最適に両立させることができる。
【０１３２】
また、前記所定の運転状態は、機関回転数が所定回転数（例えば４０００ｒｐｍ）以上となる運転状態（Ｓ１２６）である如く構成したので、上記したアルコール濃度が低い場合のノックの抑制と加速性能の低下の回避を一層最適に両立させることができる。即ち、アルコール濃度が高い場合の遅角限界値は高回転域で進角側となるので、高回転域では低アルコール濃度によるノック発生時の遅角余裕がなくなってしまうが、所定回転数を適宜設定すると共に、それ以上の高回転域にあるときに吸入空気量を調整するスロットルバルブ１６などの弁の開度を設定した所定上限値に制限することで、そのような不都合を回避することができる。
【０１３３】
また、前記所定の運転状態は、前記燃料の推定オクタン価が所定オクタン価（例えば８８ＲＯＮ）未満となる運転状態（Ｓ１１４）である如く構成したので、上記したアルコール濃度が低い場合のノックの抑制と加速性能の低下の回避を一層最適に両立させることができる。即ち、オクタン価が低いとノックが発生しやすくなるが、所定オクタン価を適宜設定すると共に、それ未満のオクタン価にあるときに吸入空気量を調整するスロットルバルブ１６などの弁の開度を設定した所定上限値に制限することで、そのような不都合を回避することができる。
【０１３４】
また、前記所定の運転状態は、機関温度と吸気温度の少なくともいずれかを含む温度パラメータ、具体的にはＤＩＧＴＡＴＷが所定値以上の高温と判断される運転状態（Ｓ１１６，Ｓ１１８）である如く構成したので、上記したアルコール濃度が低い場合のノックの抑制と加速性能の低下の回避を一層最適に両立させることができる。即ち、機関温度または吸気温度が高いとノックが発生しやすくなるが、所定値を適宜設定すると共に、それ以上の高温と判断されるときに吸入空気量を調整するスロットルバルブ１６などの弁の開度を上限値に制限することで、そのような不都合を回避することができる。尚、上記において温度パラメータとして外気温を追加しても良い。
【０１３５】
また、前記燃料のオクタン価、機関温度および吸気温度の少なくともいずれかを含むパラメータを検出し、前記検出されたパラメータに基づいて前記所定の運転状態にあるか否か判定する運転状態判定手段（Ｓ１１４からＳ１１８，Ｓ１２６）と、弁開度制限手段による制限が実行中か否か判定する制限実行判定手段（Ｓ１０８）と、制限実行判定手段によって制限が実行中と判定されるとき、運転状態判定手段の判定を禁止する判定禁止手段（Ｓ１１０）とを備える如く構成したので、上記した効果に加え、エンジン１０の出力の不要の変動を回避することができる。
【０１３６】
即ち、かかるエンジン１０はアクセル操作量などに応じて出力が決定されるが、弁開度制限手段による制限の実行中にパラメータが変化した場合、所定の運転状態にあるか否か判定しないことで、アクセル操作量が同一であるにも関わらず、出力が変動してしまうのを回避することができる。
【０１３７】
尚、上記において、所定の運転状態はスロットル開度ＴＨなどを必要最小限とする観点からは上の３つの要件が全て満足されることが最も好ましいが、ノックを確実に回避する観点からは上の３つの要件のいずれか満足されれば足りる。その場合でも、スロットル開度ＴＨの制限の運転状態がある程度限定されることから、加速性能の低下を可能な限り回避することができる。
【０１３８】
図１１は、クランク角度に対するプラグ要求電圧をアルコール濃度Ｅ１００，Ｅ２２ごとに示す説明図である。
【０１３９】
給油などで燃料のアルコール濃度がＥ１００からＥ２２に変化したとすると、Ｅ２２の典型的な点火時期は角度Ｃｒ１、遅角限界値はＣｒ２である。それに対し、Ｅ１００の遅角限界値は進角側のＣｒ３である。
【０１４０】
そのため、給油などによって燃料のアルコール濃度がＥ２２に変化したとき、Ｅ１００の全負荷時のプラグ要求電圧特性に従えば、Ｃｒ３とＣｒ２の斜線で示す差だけ遅角量が不足する。従って、スロットル開度ＴＨを上限値に制限することで、Ｅ１００のプラグ要求電圧を破線で示す如く低下させることができる。
【０１４１】
即ち、プラグ要求電圧は、アルコール濃度が高いほど高くなると共に、筒内圧が高い、換言すれば、負荷が高いほど高くなる。このことは、負荷を下げれば、プラグ要求電圧は低くなることを意味する。
【０１４２】
また、上記した如く、スロットル開度ＴＨなどの制限によりエンジン１０の負荷が減少すると、Ｅ１００のプラグ要求電圧も低下し、Ｅ１００の遅角限界値も遅角側に移行する。
【０１４３】
そこで、遅角限界値をアルコール濃度と負荷（またはアルコール濃度とエンジン回転数ＮＥと負荷）から算出するようにすれば、スロットル開度ＴＨを制限することで負荷が減少すると、Ｅ１００の遅角限界値も遅角側に下がる。それにより、Ｅ２２のノックラインをＥ１００の遅角限界値から離すことができ、ノック抑制のための遅角量を確保することができる。
【０１４４】
その場合、例えば図６に示したマップ（特性）を負荷の大きさ、例えば高低２種の負荷に応じて設け、それから遅角限界値を算出するようにしても良い（高低２種の間の負荷は補間によって求める）。
【０１４５】
また、上記において図８と図９に示す特性に関し、低出力側においてはリフト量が小さく、燃焼室に吸入される空気量も減少してスロットル開度ＴＨを制限するのと同様になることから、図７フロー・チャートのＳ１２０で否定されるときはＳ１３８に進むように構成しても良い。
【０１４６】
また、エンジン温度を水温センサ８０の出力から検出したが、エンジン１０の潤滑油の温度から検出しても良い。
【０１４７】
また、エアフローメータ７４の温度検出素子から吸気温度ＴＡを検出するように構成したが、吸気温度センサを独立に設けても良い。
【０１４８】
また、アルコール濃度の学習が未完の場合、前回までに学習されている最新のアルコール濃度を所定のアルコール濃度として遅角限界値を求めるようにしても良い。
【図面の簡単な説明】
【０１４９】
【図１】この発明の実施例に係る内燃機関の制御装置を全体的に示す概略図である。
【図２】図１に示す装置の動作、より具体的には図１に示す装置の中のＥＣＵ（電子制御ユニット）の動作を説明するブロック図である。
【図３】図２に示すアルコール濃度学習を説明するタイム・チャートである。
【図４】図２に示す点火時期算出ブロックの処理の一部である点火時期の遅角限界値の算出処理を示すフロー・チャートである。
【図５】図２に示す点火時期算出ブロックの処理の一部を示すブロック図である。
【図６】図４フロー・チャートで使用される３種のアルコール濃度について設定された遅角限界値などの特性を示す説明グラフである。
【図７】図２に示すスロットル開度算出ブロックの処理の一部であるプラグ保護用スロットル開度上限値算出処理を示すフロー・チャートである。
【図８】図７フロー・チャートで使用されるスロットル開度の上限値の特性を示す説明グラフである。
【図９】同様に、図７フロー・チャートで使用されるスロットル開度の上限値の特性を示す説明グラフである。
【図１０】図７フロー・チャートの処理の特徴を示す、アルコール濃度Ｅ１００に応じて設定される遅角限界値に対するアルコール濃度Ｅ２２のノックラインを示す説明図である。
【図１１】図７フロー・チャートの処理の特徴を示す、クランク角度に対するプラグ要求電圧をアルコール濃度Ｅ１００，Ｅ２２ごとに示す説明図である。
【符号の説明】
【０１５０】
１０  内燃機関（エンジン）、１６  スロットルバルブ、２２  ＤＣモータ、２４  メイン・インジェクタ、２６  メイン燃料タンク、４０  ＥＣＵ（電子制御ユニット）、４４  点火プラグ、５６  触媒装置、６２  キャニスタ、７０  動弁機構、７２  クランク角センサ、７４  エアフローメータ、７６  ＭＡＰセンサ、８０  水温センサ、８４  広域空燃比センサ、９０  アクセル開度センサ、９２  車速センサ、９４  大気圧センサ
【図１】
2010037970.tif 000003
【図２】
2010037970.tif 000004
【図３】
2010037970.tif 000005
【図４】
2010037970.tif 000006
【図５】
2010037970.tif 000007
【図６】
2010037970.tif 000008
【図７】
2010037970.tif 000009
【図８】
2010037970.tif 000010
【図９】
2010037970.tif 000011
【図１０】
2010037970.tif 000012
【図１１】
2010037970.tif 000013