(57)【特許請求の範囲】
【請求項１】
低オクタン価燃料タンクに貯留された低オクタン価燃料と、当該低オクタン価燃料よりもオクタン価が高く、高オクタン価燃料タンクに貯留されるとともに、当該高オクタン価燃料タンク内に設けられた所定のポンプによって吸入されかつ燃料噴射弁側に吐出される高オクタン価燃料とが併用される内燃機関の制御装置であって、
前記高オクタン価燃料タンクの傾斜状態を取得する傾斜状態取得手段と、
前記高オクタン価燃料タンク内の前記高オクタン価燃料の残量を取得する残量取得手段と、
前記取得された高オクタン価燃料タンクの傾斜状態及び高オクタン価燃料の残量に応じて、前記内燃機関の出力を制限する出力制限手段と、
を備え、
前記傾斜状態取得手段は、前記高オクタン価燃料タンクの水平線に対する所定方向への傾斜角を取得するように構成されており、
前記出力制限手段は、前記高オクタン価燃料タンクの前記傾斜角が、前記高オクタン価燃料の残量に応じた所定の上限値以上である場合において、前記高オクタン価燃料の残量が、前記ポンプで吸入不能な所定の下限値に達したときに、前記内燃機関の出力を制限することを特徴とする内燃機関の制御装置。
【請求項２】
低オクタン価燃料タンクに貯留された低オクタン価燃料と、当該低オクタン価燃料よりもオクタン価が高く、高オクタン価燃料タンクに貯留されるとともに、当該高オクタン価燃料タンク内に設けられた所定のポンプによって吸入されかつ燃料噴射弁側に吐出される高オクタン価燃料とが併用される内燃機関の制御装置であって、
前記高オクタン価燃料タンクの傾斜状態を取得する傾斜状態取得手段と、
前記高オクタン価燃料タンク内の前記高オクタン価燃料の残量を取得する残量取得手段と、
前記取得された高オクタン価燃料タンクの傾斜状態及び高オクタン価燃料の残量に応じて、前記内燃機関の出力を制限する出力制限手段と、
を備え、
前記傾斜状態取得手段は、前記高オクタン価燃料タンクの水平線に対する所定方向への傾斜角を取得するように構成されており、
前記出力制限手段は、前記高オクタン価燃料タンクの前記傾斜角が、前記高オクタン価燃料の残量に応じた所定の上限値以上である場合に、前記高オクタン価燃料を前記ポンプで十分に吸入できないとして、前記高オクタン価燃料の残量が減少するのに応じて、前記内燃機関の出力の前記制限を徐々に行うことを特徴とする内燃機関の制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、低オクタン価燃料タンクに貯留された低オクタン価燃料と、高オクタン価燃料タンクに貯留された高オクタン価燃料とが併用される内燃機関の制御装置に関する。
【背景技術】
【０００２】
従来、この種の内燃機関の制御装置として、例えば特許文献１及び特許文献２に開示されたものが知られている。この特許文献１に開示された制御装置では、気筒内に供給される低オクタン価燃料及び高オクタン価燃料の総量に対する高オクタン価燃料の量の割合の基本値である基本高オクタン価燃料割合が、内燃機関の回転数及び負荷に応じて算出される。また、内燃機関のノッキングが、内燃機関の負荷の増大率が大きいほど発生しやすくなる点に着目し、ノッキングを抑制するために、検出された内燃機関の負荷の増大率に基づき、基本高オクタン価燃料割合を増大補正することによって、高オクタン価燃料の量の割合が算出されるとともに、算出された高オクタン価燃料の量の割合に基づいて、気筒内に供給される高オクタン価燃料の量が制御される。
【０００３】
また、特許文献２に開示された制御装置では、内燃機関のノッキングを抑制するために、検出された内燃機関の負荷が増大するほど、気筒内に供給される低オクタン価燃料の量に対する高オクタン価燃料の量の割合が、増大するように算出されるとともに、算出された高オクタン価燃料の量の割合に基づいて、気筒内に供給される高オクタン価燃料の量が制御される。この場合、内燃機関の負荷が増大するときでも、高オクタン価燃料の量に対する低オクタン価燃料の量の割合が値０にならないように、気筒内に供給される低オクタン価燃料の量を制御することによって、高オクタン価燃料を節約するようにしている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００５−１５５４６９号公報
【特許文献２】特開２０１４−０７４３３７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
この種の内燃機関では一般に、燃料タンク内の燃料がポンプで吸入されるとともに、燃料噴射弁側に吐出され、吐出された燃料は、燃料噴射弁から噴射されることによって、気筒内に供給される。例えば、上述した従来の制御装置が適用された内燃機関が車両に搭載されている場合には、車両の旋回時や、加減速時、登坂走行時、降坂走行時に、燃料タンクが車両と一緒に傾斜することにより高オクタン価燃料の液面がポンプに対して傾斜することと、燃料タンク内の高オクタン価燃料の残量が減少することとに起因して、高オクタン価燃料をポンプで十分に吸入できなくなり、それにより、気筒内に高オクタン価燃料を十分に供給できなくなる場合がある。これに対して、前述した従来の制御装置では、内燃機関の回転数や、負荷、負荷の増大率に応じて、高オクタン価燃料の量の割合が算出されるにすぎない。このため、車両の旋回などに伴う燃料タンクの傾斜と高オクタン価燃料の残量の減少とに起因して、気筒内に高オクタン価燃料を十分に供給できなくなる場合があり、その場合には、内燃機関のノッキングを抑制できなくなってしまう。
【０００６】
本発明は、上記の課題を解決するためになされたものであり、高オクタン価燃料タンクの傾斜及び高オクタン価燃料の残量の減少に起因して気筒内に高オクタン価燃料を十分に供給できなくなるような場合に、内燃機関のノッキングを抑制することができる内燃機関の制御装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記の目的を達成するために、請求項１に係る発明は、低オクタン価燃料タンク（実施形態における（以下、本項において同じ）第１燃料タンク２１）に貯留された低オクタン価燃料（ガソリンＧ）と、低オクタン価燃料よりもオクタン価が高く、高オクタン価燃料タンク（第２燃料タンク２２）に貯留されるとともに、高オクタン価燃料タンク内に設けられた所定のポンプ（低圧ポンプ２２ａ）によって吸入されかつ燃料噴射弁（ポート噴射弁７）側に吐出される高オクタン価燃料（エタノールＥ）とが併用される内燃機関３の制御装置であって、高オクタン価燃料タンクの傾斜状態を取得する傾斜状態取得手段（傾斜センサ４０）と、高オクタン価燃料タンク内の高オクタン価燃料の残量を取得する残量取得手段（ＥＣＵ２、図１２及び図１７のステップ９７〜９９）と、取得された高オクタン価燃料タンクの傾斜状態（第２燃料タンク傾斜角θ）及び高オクタン価燃料の残量（リザーバエタノール残量ＱＲＥＲＦ２）に応じて、内燃機関３の出力を制限する出力制限手段（ＥＣＵ２、図１２のステップ９３、図１３のステップ１０１、１０４〜１０７、図１７のステップ１３２、図１８、図１９のステップ１４１〜１４３、１０４〜１０７、図２０）と、を備え、傾斜状態取得手段は、高オクタン価燃料タンクの水平線に対する所定方向への傾斜角を取得するように構成されており、出力制限手段は、高オクタン価燃料タンクの傾斜角（第２燃料タンク傾斜角θ）が、高オクタン価燃料の残量に応じた所定の上限値（上限傾斜角θＬＭＴ）以上である場合（図１２のステップ９３：ＹＥＳ）において、高オクタン価燃料の残量が、ポンプで吸入不能な所定の下限値ＱＬＭＬに達したとき（図１３のステップ１０１：ＹＥＳ）に、内燃機関の出力を制限する（図１３のステップ１０３〜１０７）ことを特徴とする。
【０００８】
この構成によれば、高オクタン価燃料タンクの傾斜状態が傾斜状態取得手段によって取得されるとともに、高オクタン価燃料タンク内の高オクタン価燃料の残量が残量取得手段によって取得される。また、取得された高オクタン価燃料タンクの傾斜状態及び高オクタン価燃料の残量に応じて、内燃機関の出力が出力制限手段により制限される。内燃機関のノッキングは、その出力が高いほど、より発生しやすくなる傾向にある。このため、上述した出力制限手段によって、高オクタン価燃料タンクの傾斜及び高オクタン価燃料の残量の減少に起因して気筒内に高オクタン価燃料を十分に供給できなくなるような場合に、内燃機関の出力を制限することにより、内燃機関のノッキングを抑制することができる。
【００１０】
また、上記の構成によれば、高オクタン価燃料タンクの上記傾斜角が、高オクタン価燃料の残量に応じた所定の上限値以上である場合において、高オクタン価燃料の残量が、ポンプで吸入不能な所定の下限値に達したときに、内燃機関の出力が制限される。このように、高オクタン価燃料タンクが傾斜しただけでなく、高オクタン価燃料の残量が所定の下限値に実際に減少するのを待って、内燃機関の出力を制限するので、当該制限が不要に行われるのを防止することができる。
【００１１】
請求項２に係る発明は、低オクタン価燃料タンク（第１燃料タンク２１）に貯留された低オクタン価燃料（ガソリンＧ）と、低オクタン価燃料よりもオクタン価が高く、高オクタン価燃料タンク（第２燃料タンク２２）に貯留されるとともに、高オクタン価燃料タンク内に設けられた所定のポンプによって吸入されかつ燃料噴射弁側に吐出される高オクタン価燃料（エタノールＥ）とが併用される内燃機関３の制御装置であって、高オクタン価燃料タンクの傾斜状態を取得する傾斜状態取得手段（傾斜センサ４０）と、高オクタン価燃料タンク内の高オクタン価燃料の残量を取得する残量取得手段（ＥＣＵ２、図１２及び図１７のステップ９７〜９９）と、取得された高オクタン価燃料タンクの傾斜状態（第２燃料タンク傾斜角θ）及び高オクタン価燃料の残量（リザーバエタノール残量ＱＲＥＲＦ２）に応じて、内燃機関３の出力を制限する出力制限手段（ＥＣＵ２、図１２のステップ９３、図１３のステップ１０１、１０４〜１０７、図１７のステップ１３２、図１８、図１９のステップ１４１〜１４３、１０４〜１０７、図２０）と、を備え、傾斜状態取得手段は、高オクタン価燃料タンクの水平線に対する所定方向への傾斜角を取得するように構成されており、出力制限手段は、高オクタン価燃料タンクの傾斜角（第２燃料タンク傾斜角θ）が、高オクタン価燃料の残量に応じた所定の上限値（上限傾斜角θＬＭＴ）以上である場合（図１７のステップ９３：ＹＥＳ）に、高オクタン価燃料をポンプで十分に吸入できないとして、高オクタン価燃料の残量が減少するのに応じて、内燃機関の出力の制限を徐々に行う（図１７のステップ１３２、図１８、図１９のステップ１４１〜１４３、１０４〜１０７、図２０）ことを特徴とする。
【００１２】
この構成によれば、前記請求項１と同様、出力制限手段によって、高オクタン価燃料タンクの傾斜及び高オクタン価燃料の残量の減少に起因して気筒内に高オクタン価燃料を十分に供給できなくなるような場合に、内燃機関の出力を制限することにより、内燃機関のノッキングを抑制することができる。また、高オクタン価燃料タンクの上記傾斜角が、高オクタン価燃料の残量に応じた所定の上限値以上である場合に、高オクタン価燃料をポンプで十分に吸入できないとして、高オクタン価燃料の残量が減少するのに応じて、内燃機関の出力の制限が徐々に行われる。したがって、内燃機関のノッキングを抑制しながら、内燃機関の出力の急な制限により運転者に違和感を与えるのを防止することができる。
【図面の簡単な説明】
【００１３】
【図１】本発明の第１実施形態による制御装置を適用した内燃機関を、概略的に示す図である。
【図２】図１の内燃機関の第２燃料タンクなどを拡大して示す断面図である。
【図３】図２の第２燃料タンクの吸入通路などを拡大して示す断面図である。
【図４】第２燃料タンクが右方に傾斜している場合におけるエタノールの液面とリザーバ吸入口との位置関係を、（ａ）第２燃料タンクの傾斜角が比較的小さく、かつタンク本体内のエタノールの残量が非常に少ない場合について、（ｂ）第２燃料タンクの傾斜角が中程度で、かつタンク本体内のエタノールの残量が比較的少ない場合について、（ｃ）第２燃料タンクの傾斜角が非常に大きく、かつタンク本体内のエタノールの残量が図４（ｂ）よりも多い場合について、それぞれ拡大して示す断面図である。
【図５】制御装置のＥＣＵなどを示すブロック図である。
【図６】ＥＣＵによって実行されるエンジン制御処理を示すフローチャートである。
【図７】図６のステップ１１で実行されるノッキング用制御処理のサブルーチンを示すフローチャートである。
【図８】図７の続きを示すフローチャートである。
【図９】図６のステップ１２で実行される非ノッキング用制御処理のサブルーチンを示すフローチャートである。
【図１０】図９の続きを示すフローチャートである。
【図１１】図１０の続きを示すフローチャートである。
【図１２】エンジンの吸入空気量を制御するための処理を示すフローチャートである。
【図１３】図１２の続きを示すフローチャートである。
【図１４】図１３の処理で用いられる上限要求トルクを算出するためのマップの一例である。
【図１５】本発明の第２実施形態による吸入空気量を制御するための処理を示すフローチャートである。
【図１６】図１５の処理で用いられる基本値を算出するためのマップの一例である。
【図１７】図１５の続きを示すフローチャートである。
【図１８】図１７の処理で用いられる第４補正係数を算出するためのマップの一例である。
【図１９】図１７の続きを示すフローチャートである。
【図２０】図１９の処理で用いられる上限要求トルクを算出するためのマップの一例である。
【図２１】第２実施形態による制御装置の動作例を示すタイミングチャートである。
【発明を実施するための形態】
【００１４】
以下、図面を参照しながら、本発明の好ましい実施形態について詳細に説明する。図１は、本発明の第１実施形態による制御装置が適用された内燃機関（以下「エンジン」という）３を示している。エンジン３は、四輪車両（図示せず）に動力源として搭載されており、低オクタン価燃料としてのガソリンＧと、高オクタン価燃料としてのエタノールＥを併用するものである。ガソリンＧは、１０％程度の高オクタン価成分としてのエタノール成分を含む市販のものであり、第１燃料タンク２１に貯留されている。エタノールＥは、６０％程度のエタノール成分を含むものであり、ガソリンＧよりもオクタン価が高く、第２燃料タンク２２に貯留されている。周知のように、燃料のエタノール成分の濃度は、当該燃料のオクタン価を表し、エタノール成分の濃度が高いほど、オクタン価はより高くなる。第１及び第２燃料タンク２１、２２の内部には、低圧ポンプ２１ａ及び２２ａがそれぞれ設けられている。低圧ポンプ２２ａによる燃料の吐出圧は、所定圧ＰＲＥＦに設定されている。
【００１５】
本実施形態では、エタノールＥは、分離装置２３によってガソリンＧから生成される。この分離装置２３は、第１燃料タンク２１から通路２３ａを介して供給されたガソリンＧから、エタノール成分を分離することによって、エタノールＥを生成するとともに、生成したエタノールＥを、通路２３ｂを介して第２燃料タンク２２に供給する。分離装置２３による第２燃料タンク２２へのエタノールＥの生成・供給動作は、制御装置の後述するＥＣＵ２によって制御される（図５参照）。なお、分離装置２３による分離方法として、分離膜による方法や、触媒による方法を適宜、採用可能である。
【００１６】
エンジン３は、例えば４つの気筒３ａ（１つのみ図示）を有している。各気筒３ａのピストン３ｂとシリンダヘッド３ｃとの間には、燃焼室３ｄが形成されている。燃焼室３ｄには、吸気ポート４ａ及び吸気マニホルド４ｂを介して、吸気通路４が接続されるとともに、排気ポート５ａ及び排気マニホルド５ｂを介して、排気通路５が接続されている。
【００１７】
また、シリンダヘッド３ｃには筒内噴射弁６が、吸気マニホルド４ｂにはポート噴射弁７が、気筒３ａごとにそれぞれ設けられている。シリンダヘッド３ｃにはさらに、燃焼室３ｄ内に生成された燃料と空気との混合気を点火するための点火プラグ８が、気筒３ａごとに設けられている。
【００１８】
筒内噴射弁６及びポート噴射弁７はいずれも、ソレノイドやニードル弁（いずれも図示せず）などで構成された一般的なものである。筒内噴射弁６は、噴射孔（図示せず）を有する先端部が燃焼室３ｄに臨むように配置されており、ガソリン供給通路２４、及びその途中に設けられた高圧ポンプ２５を介して、第１燃料タンク２１の低圧ポンプ２１ａに接続されている。ポート噴射弁７は、噴射孔（図示せず）を有する先端部が吸気ポート４ａに臨むように配置されており、エタノール供給通路２６を介して、第２燃料タンク２２の低圧ポンプ２２ａに接続されている。
【００１９】
以上の構成により、ガソリンＧは、第１燃料タンク２１から低圧ポンプ２１ａ及びガソリン供給通路２４を介し、高圧ポンプ２５によって昇圧された状態で、筒内噴射弁６に供給され、筒内噴射弁６から燃焼室３ｄに直接、噴射される。筒内噴射弁６に供給されるガソリンＧの圧力は、高圧ポンプ２５の動作をＥＣＵ２で制御することによって、変更される。また、エタノールＥは、第２燃料タンク２２から低圧ポンプ２２ａ及びエタノール供給通路２６を介して、ポート噴射弁７に供給され、ポート噴射弁７から吸気ポート４ａに噴射される。
【００２０】
次に、第２燃料タンク２２について詳細に説明する。図２に示すように、第２燃料タンク２２は、エタノールＥが貯留されるタンク本体２２ｂと、タンク本体２２ｂ内に設けられたリザーバ２２ｃなどで構成されている。リザーバ２２ｃは、車両の旋回時や、加減速時、登坂走行時、降坂走行時に、第２燃料タンク２２が車両と一緒に傾斜するのに起因して低圧ポンプ２２ａがエタノールＥを吸入できなくなるのを防止するためのものである。
【００２１】
具体的には、リザーバ２２ｃは、鉢状に形成されており、その底部がタンク本体２２ｂの底面に一体に取り付けられている。上記の低圧ポンプ２２ａは、このリザーバ２２ｃ内のエタノールＥを吸入し、エタノール供給通路２６を介してポート噴射弁７側に吐出するように、設けられている。リザーバ２２ｃの底部の左側の壁面の前後方向の中央には、水平方向に延びる管状の吸入通路２２ｄが一体に設けられており、吸入通路２２ｄの内部は、一端部に形成されたリザーバ吸入口２２ｅにおいてタンク本体２２ｂ内に連通しており、他端部に形成された吐出口においてリザーバ２２ｃ内に連通している。
【００２２】
図３に示すように、吸入通路２２ｄの内部には、これを開閉するためのフラッパ２２ｆが設けられており、吸入通路２２ｄの内部におけるフラッパ２２ｆよりもタンク本体２２ｂ側の部分には、フラッパ２２ｆの回動を規制するためのストッパ２２ｇが設けられている。フラッパ２２ｆは、図３に二点鎖線で示す開放位置と、実線で示す閉鎖位置との間で回動自在に設けられている。
【００２３】
タンク本体２２ｂ内の吸入通路２２ｄ側の部分におけるエタノールＥの液面がリザーバ２２ｃ内の吸入通路２２ｄ側の部分におけるエタノールＥの液面よりも高いときには、フラッパ２２ｆは、吸入通路２２ｄ内に導入されるタンク本体２２ｂ内のエタノールＥの液圧で押圧されることによって、開放位置に回動する。これにより、吸入通路２２ｄがフラッパ２２ｆで開放されるのに伴い、タンク本体２２ｂ内のエタノールＥが、吸入通路２２ｄを介してリザーバ２２ｃ内に流入する。
【００２４】
これとは逆に、リザーバ２２ｃ内の吸入通路２２ｄ側の部分におけるエタノールＥの液面がタンク本体２２ｂ内の吸入通路２２ｄ側の部分におけるエタノールＥの液面よりも高いときには、フラッパ２２ｆは、吸入通路２２ｄ内に導入されるリザーバ２２ｃ内のエタノールＥの液圧で押圧されることによって、閉鎖位置側に回動するとともに、ストッパ２２ｇに当接することで閉鎖位置に保持される。これにより、吸入通路２２ｄがフラッパ２２ｆで閉鎖されることによって、リザーバ２２ｃ内のエタノールＥが吸入通路２２ｄを介してタンク本体２２ｂ内に流入するのが阻止される。
【００２５】
また、図４は、左右方向に延びる水平線（二点鎖線で図示）に対して第２燃料タンク２２が右方に傾斜している場合におけるタンク本体２２ｂ内のエタノールＥの液面と吸入通路２２ｄのリザーバ吸入口２２ｅとの位置関係を示している。第２燃料タンク２２が右方に傾斜するような状況は、車両の左旋回時に、遠心力により第２燃料タンク２２が車両と一緒に傾斜することによって発生する。
【００２６】
また、図４（ａ）は、タンク本体２２ｂ内のエタノールＥの液面とリザーバ吸入口２２ｅとの上記の位置関係を、この場合における第２燃料タンク２２の傾斜角（以下「第２燃料タンク傾斜角」という）θが比較的小さく、かつタンク本体２２ｂ内のエタノールＥの残量（以下「本体エタノール残量」という）が非常に少ない場合について、示している。また、タンク本体２２ｂ内のエタノールＥの液面とリザーバ吸入口２２ｅとの上記の位置関係を、図４（ｂ）は、第２燃料タンク傾斜角θが中程度で、かつ本体エタノール残量が比較的少ない場合について、図４（ｃ）は、第２燃料タンク傾斜角θが非常に大きく、かつ本体エタノール残量が図４（ｂ）よりも多い場合について、それぞれ示している。なお、図４（ａ）及び（ｂ）では便宜上、タンク本体２２ｂ内のエタノールＥの液面を一点鎖線で示し、リザーバ２２ｃ内のエタノールＥの液面を実線で示している。
【００２７】
図４（ａ）〜図４（ｃ）に示すように、本体エタノール残量（タンク本体２２ｂ内のエタノールＥの残量）が少ないほど、第２燃料タンク傾斜角θがより小さいときに、リザーバ吸入口２２ｅが、タンク本体２２ｂ内のエタノールＥの液面よりも上方に位置し、エタノールＥに浸されなくなることにより、タンク本体２２ｂ内のエタノールＥをリザーバ２２ｃに流入させることができなくなる。このような場合には、リザーバ２２ｃにそれまでに貯留されたエタノールＥが低圧２２ａポンプで吸入される。ただし、リザーバ２２ｃに貯留できるエタノールＥの量は比較的少ない。
【００２８】
なお、吸入通路２２ｄがリザーバ２２ｃに対して前述したように配置されているため、車両の右旋回時、加減速時、登坂走行時及び降坂走行時には、リザーバ吸入口２２ｅがタンク本体２２ｂ内のエタノールＥの液面よりも上方に位置するような状況は、基本的に発生しない。
【００２９】
また、第１燃料タンク２１は、第２燃料タンク２２と同様に構成されている。前述したようにエタノールＥが分離装置２３でガソリンＧから生成される構成上、第１燃料タンク２１内のガソリンＧの残量は、第２燃料タンク２２内のエタノールＥの残量よりも多くなる傾向にある。また、第１燃料タンク２１内のガソリンＧの残量が少なくなると、そのことが車両の運転席のインジケータ（図示せず）に表示されることによって、運転者に給油が促される。以上から、第１燃料タンク２１では、上述した第２燃料タンク２２の場合と異なり、車両の左旋回時、それに伴って第１燃料タンク２１が傾斜しても、そのタンク本体内のガソリンＧがリザーバに流入しなくなるような事象は、基本的には発生しない。
【００３０】
さらに、エンジン３の吸気通路４には、スロットル弁９が設けられており、スロットル弁９は、吸気通路４を開閉する弁体９ａと、弁体９ａを駆動するＴＨアクチュエータ９ｂを有している。ＴＨアクチュエータ９ｂは、例えば電動モータで構成されており、ＥＣＵ２に接続されている（図５参照）。スロットル弁９の開度はＥＣＵ２により変更され、それにより、吸気通路４を介して気筒３ａ内に流入する吸入空気の量が制御される。
【００３１】
また、エンジン３には、クランク角センサ３１、ノックセンサ３２及び水温センサ３３が設けられている。クランク角センサ３１は、クランクシャフト（図示せず）の回転に伴って、パルス信号であるＣＲＫ信号及びＴＤＣ信号をＥＣＵ２に出力する（図５参照）。ＣＲＫ信号は、所定のクランクシャフトの回転角度（以下「クランク角」という。例えば１°）ごとに出力される。ＥＣＵ２は、このＣＲＫ信号に基づき、エンジン３の回転数（以下「エンジン回転数」という）ＮＥを算出する。また、ＴＤＣ信号は、いずれかの気筒３ａにおいて、ピストン３ｂが吸気行程の開始時の上死点付近に位置することを表す信号であり、実施形態のように気筒３ａが４つの場合には、クランク角１８０°ごとに出力される。
【００３２】
上記のノックセンサ３２は、例えばピエゾ素子などで構成され、エンジン３のシリンダブロックに設けられており、エンジン３のノッキングの強度であるノック強度ＫＮＯＣＫを検出するとともに、その検出信号をＥＣＵ２に出力する。水温センサ３３は、エンジン３の冷却水の温度（以下「エンジン水温」という）ＴＷを検出するとともに、その検出信号をＥＣＵ２に出力する。
【００３３】
また、吸気通路４のスロットル弁９よりも下流側には吸気圧センサ３４が、排気通路５には空燃比センサ３５が、それぞれ設けられている。吸気圧センサ３４は、吸気通路４内の圧力である吸気圧ＰＢＡを検出するとともに、その検出信号をＥＣＵ２に出力する。ＥＣＵ２は、算出されたエンジン回転数ＮＥ及び検出された吸気圧ＰＢＡに応じ、所定のマップ（図示せず）を検索することによって、気筒３ａ内に吸入される吸入空気の吸入空気量ＱＡＩＲを算出する。上記の空燃比センサ３５は燃焼室３ｄ内で燃焼した混合気の空燃比ＬＡＦを検出するとともに、その検出信号をＥＣＵ２に出力する。
【００３４】
さらに、エンジン３には、気筒判別センサ（図示せず）が設けられている。気筒判別センサは、気筒を判別するためのパルス信号である気筒判別信号をＥＣＵ２に出力する。ＥＣＵ２は、この気筒判別信号、上記のＣＲＫ信号及びＴＤＣ信号によって、クランクシャフトの実際の回転角度位置である実クランク角度位置を気筒３ａごとに算出する。この場合、実クランク角度位置は、各気筒３ａのＴＤＣ信号を基準としたクランクシャフトの回転角度位置に算出され、ＴＤＣ信号の発生時には値０に算出される。
【００３５】
また、第１及び第２燃料タンク２１、２２には、例えばフロート式のガソリン残量センサ３６及びエタノール残量センサ３７がそれぞれ設けられている。ガソリン残量センサ３６は、第１燃料タンク２１に貯留されたガソリンＧの残量（以下「ガソリン残量」という）ＱＲＦ１を検出し、その検出信号をＥＣＵ２に出力する。エタノール残量センサ３７は、前記本体エタノール残量ＱＲＦ２（タンク本体２２ｂ内のエタノールＥの残量）を検出し、その検出信号をＥＣＵ２に出力する。
【００３６】
さらに、第１及び第２燃料タンク２１、２２には、例えば静電容量式の第１濃度センサ３８及び第２濃度センサ３９がそれぞれ設けられている。第１濃度センサ３８は、第１燃料タンク２１に貯留されたガソリンＧに含まれるエタノール成分の濃度（以下「第１エタノール濃度」という）ＥＬ１を検出し、その検出信号をＥＣＵ２に出力する。第２濃度センサ３９は、第２燃料タンク２２のリザーバ２２ｃに貯留されたエタノールＥに含まれるエタノール成分の濃度（以下「第２エタノール濃度」という）ＥＬ２を検出し、その検出信号をＥＣＵ２に出力する。なお、第１及び第２濃度センサ３８、３９として、他の適当なセンサ、例えば光学式のセンサなどを用いてもよいことはもちろんである。
【００３７】
また、第２燃料タンク２２には、例えば静電容量式の傾斜センサ４０が設けられている。傾斜センサ４０は、前記第２燃料タンク傾斜角θ（車両の左右方向に延びる水平線に対する第２燃料タンク２２の右方への傾斜角）を検出し、その検出信号をＥＣＵ２に出力する。なお、傾斜センサ４０として、他の適当なセンサ、例えば振り子式のセンサなどを用いてもよいことはもちろんである。
【００３８】
また、ＥＣＵ２には、アクセル開度センサ４１から、車両のアクセルペダル（図示せず）の操作量（以下「アクセル開度」という）ＡＰを表す検出信号が、車速センサ４２から、車両の車速ＶＰを表す検出信号が、それぞれ出力される。
【００３９】
ＥＣＵ２は、ＣＰＵ、ＲＡＭ、ＲＯＭ、及びＩ／Ｏインターフェース（いずれも図示せず）などから成るマイクロコンピュータで構成されている。ＥＣＵ２は、前記各種のセンサ３１〜４２からの検出信号に応じ、ＲＯＭに記憶された制御プログラムに従って、筒内噴射弁６及びポート噴射弁７の各々の燃料噴射時間及び噴射時期や、点火プラグ８の点火時期、スロットル弁９の開度を制御するとともに、前述した分離装置２３や、高圧ポンプ２５の動作を制御する。
【００４０】
次に、図６〜図１４を参照しながら、ＥＣＵ２によって実行される処理について説明する。図６に示すエンジン制御処理は、筒内噴射弁６及びポート噴射弁７の各々の噴射時間及び点火プラグ８の点火時期を気筒３ａごとに制御するための処理であり、ＴＤＣ信号の発生に同期して、繰り返し実行される。まず、図６のステップ１（「Ｓ１」と図示。以下同じ）では、検出された本体エタノール残量ＱＲＦ２を、検出されたガソリン残量ＱＲＦ１とエタノール残量ＱＲＦ２の和で除算することによって、エタノール残量割合ＲＱＲＦ２を算出する［ＲＱＲＦ２＝ＱＲＦ２／（ＱＲＦ１＋ＱＲＦ２）］。
【００４１】
次いで、検出された第１エタノール濃度ＥＬ１を補正することによって、第１推定エタノール濃度ＥＬ１Ｅを算出する（ステップ２）とともに、検出された第２エタノール濃度ＥＬ２を補正することによって、第２推定エタノール濃度ＥＬ２Ｅを算出する（ステップ３）。この場合、第１及び第２推定エタノール濃度ＥＬ１Ｅ、ＥＬ２Ｅは、後述するステップ１０によってエンジン３でノッキングが発生していると判定されるほど、より小さな値に補正される。
【００４２】
次に、エンジン回転数ＮＥ及び算出された吸入空気量ＱＡＩＲに応じ、所定のマップ（図示せず）を検索することによって、基本燃料噴射量ＱＩＮＪＢを算出する（ステップ４）。次いで、エンジン回転数ＮＥ及び吸入空気量ＱＡＩＲに応じ、所定のマップ（図示せず）を検索することによって、要求エタノール濃度ＥＲＥＱを算出する（ステップ５）。この要求エタノール濃度ＥＲＥＱは、燃焼室３ｄ内に供給される燃料のエタノール濃度の要求値であり、上記のマップでは、吸入空気量ＱＡＩＲが大きいほど、より大きな値に設定されている。
【００４３】
次に、前記ステップ２及び３でそれぞれ算出された第１及び第２推定エタノール濃度ＥＬ１Ｅ、ＥＬ２Ｅ、ならびにステップ５で算出された要求エタノール濃度ＥＲＥＱに応じ、所定のマップ（図示せず）を検索することによって、基本ポート噴射割合ＲＦ２Ｂを算出する（ステップ６）。この基本ポート噴射割合ＲＦ２Ｂは、筒内噴射量とポート噴射量の和に対するポート噴射量の割合の基本値であり、上記のマップでは、燃焼室３ｄ内に供給される燃料中のエタノール濃度が要求エタノール濃度ＥＲＥＱになるように、設定されている。
【００４４】
次いで、前記ステップ４で算出された基本燃料噴射量ＱＩＮＪＢに、補正係数ＫＩＮＪを乗算することによって、総燃料噴射量ＱＩＮＪＴを算出する（ステップ７）。総燃料噴射量ＱＩＮＪＴは、筒内噴射弁６の噴射量（以下「筒内噴射量」という）とポート噴射弁７の噴射量（以下「ポート噴射量」という）の和の目標値である。この補正係数ＫＩＮＪは、量論混合比補正係数と、空燃比補正係数とに基づいて設定される。この量論混合比補正係数は、燃料中のエタノール濃度が異なると、吸入空気量ＱＡＩＲに対して空燃比ＬＡＦがストイキ相当空燃比になる燃料の質量割合（以下「量論混合比」という）が異なる大きさになる点に着目し、それによる影響を補償するためのものであり、例えば次のようにして算出される。
【００４５】
すなわち、まず、第１及び第２推定エタノール濃度ＥＬ１Ｅ、ＥＬ２Ｅに応じ、所定のマップ（図示せず）を検索することによって、ガソリンＧ及びエタノールＥの量論混合比を算出する。次いで、値１．０から上記ステップ６で算出された基本ポート噴射割合ＲＦ２Ｂを減算した値に、算出されたガソリンＧの量論混合比を乗算した値と、基本ポート噴射割合ＲＦ２Ｂに、算出されたエタノールＥの量論混合比を乗算した値との和を、量論混合比補正係数として算出する。総燃料噴射量ＱＩＮＪＴは、この量論混合比補正係数に応じて算出されることにより、第１又は第２推定エタノール濃度ＥＬ１Ｅ、ＥＬ２Ｅが大きいほど、より大きな値に算出される。また、上記の空燃比補正係数は、例えば、検出された空燃比ＬＡＦが所定の目標空燃比になるように、所定のフィードバック制御アルゴリズムに従って算出される。なお、量論混合比補正係数を、基本ポート噴射割合ＲＦ２Ｂに代えて、図７のステップ２３や、ステップ２７、図９のステップ４２、図１１のステップ７９、８１で最終的に算出されたポート噴射割合ＲＦ２に応じて算出してもよい。
【００４６】
前記ステップ７に続くステップ８では、エンジン回転数ＮＥ及び吸入空気量ＱＡＩＲに応じ、所定のマップ（図示せず）を検索することによって、基本点火時期ＩＧＢを算出する。次いで、算出された基本点火時期ＩＧＢに、補正係数ＫＩＧを乗算することによって、暫定点火時期ＩＧＴＥＭを算出する（ステップ９）。この補正係数ＫＩＧは、検出されたエンジン水温ＴＷなどに基づいて算出される。以上により、暫定点火時期ＩＧＴＥＭは、エンジン３の効率が最も高くなるような点火プラグ８の最適点火時期に設定される。
【００４７】
次に、検出されたノック強度ＫＮＯＣＫが所定の判定値ＫＪＵＤよりも大きいか否かを判別する（ステップ１０）。なお、本処理及び後述するいずれの処理においても、ノック強度ＫＮＯＣＫとして、そのときに検出されたＫＮＯＣＫではなく、エンジン３の前回の燃焼サイクルにおいて検出されたＫＮＯＣＫの最大値が用いられる。
【００４８】
上記ステップ１０の答がＹＥＳ（ＫＮＯＣＫ＞ＫＪＵＤ）のときには、エンジン３のノッキングが発生していると判定するとともに、ノッキング用制御処理を実行し（ステップ１１）、本処理を終了する。一方、ステップ１０の答がＮＯ（ＫＮＯＣＫ≦ＫＪＵＤ）のときには、エンジン３のノッキングが発生していないと判定するとともに、非ノッキング用制御処理を実行し（ステップ１２）、本処理を終了する。
【００４９】
次に、図７及び図８を参照しながら、図６のステップ１１で実行されるノッキング用制御処理について説明する。まず、図７のステップ２１では、図６のステップ１で算出されたエタノール残量割合ＲＱＲＦ２、ノック強度ＫＮＯＣＫ、エンジン回転数ＮＥ及び吸入空気量ＱＡＩＲに応じ、所定のマップ（図示せず）を検索することによって、加算項ＣＯＡＲＦ２を算出する。このマップでは、加算項ＣＯＡＲＦ２は正値に設定されており、その設定の詳細については後述する。
【００５０】
次いで、前述した基本ポート噴射割合ＲＦ２Ｂの補正値であるポート噴射割合補正項の前回値ＣＯＲＦ２Ｚに、ステップ２１で算出された加算項ＣＯＡＲＦ２を加算することによって、今回のポート噴射割合補正項ＣＯＲＦ２を算出する（ステップ２２）。ポート噴射割合補正項の前回値ＣＯＲＦ２Ｚは、エンジン３の始動時に所定の上限値に設定される。次に、図６のステップ６で算出された基本ポート噴射割合ＲＦ２Ｂに、ステップ２２で算出されたポート噴射割合補正項ＣＯＲＦ２を加算することによって、ポート噴射割合ＲＦ２を算出する（ステップ２３）。
【００５１】
次いで、算出されたポート噴射割合ＲＦ２が、所定の上限値ＲＦ２ＬＭＨよりも大きいか否かを判別する（ステップ２４）。この上限値ＲＦ２ＬＭＨは、値１．０以下の正値に設定されている。このステップ２４の答がＮＯ（ＲＦ２≦ＲＦ２ＬＭＨ）のときには、エタノール残量割合ＲＱＲＦ２に応じ、所定のマップ（図示せず）を検索することによって、第１点火時期補正項ＣＯＩＧ１を算出する（ステップ２５）。このマップでは、第１点火時期補正項ＣＯＩＧ１は正値に設定されており、その設定の詳細については後述する。次に、算出された第１点火時期補正項ＣＯＩＧ１を、点火時期補正項ＣＯＩＧとして設定し（ステップ２６）、ステップ３０に進む。この点火時期補正項ＣＯＩＧは、暫定点火時期ＩＧＴＥＭを補正する補正項である。
【００５２】
一方、前記ステップ２４の答がＹＥＳで、ポート噴射割合ＲＦ２が上限値ＲＦ２ＬＭＨよりも大きいときには、ポート噴射割合ＲＦ２を上限値ＲＦ２ＬＭＨに設定する（ステップ２７）。次いで、エタノール残量割合ＲＱＲＦ２に応じ、所定のマップ（図示せず）を検索することによって、第２点火時期補正項ＣＯＩＧ２を算出する（ステップ２８）。このマップでは、第２点火時期補正項ＣＯＩＧ２は正値に設定されており、その設定の詳細については後述する。次に、算出された第２点火時期補正項ＣＯＩＧ２を、点火時期補正項ＣＯＩＧとして設定し（ステップ２９）、ステップ３０に進む。
【００５３】
前記ステップ２６又は２９に続く図８のステップ３０では、図６のステップ７で算出された総燃料噴射量ＱＩＮＪＴに、前記ステップ２３で算出されたポート噴射割合ＲＦ２を乗算することによって、目標ポート噴射量ＱＩＮＪ２を算出する。次いで、算出された目標ポート噴射量ＱＩＮＪ２に基づき、ポート噴射弁７の開弁時間の目標値である最終ポート噴射時間ＴＯＵＴ２を算出する（ステップ３１）。以上のようにして最終ポート噴射時間ＴＯＵＴ２が算出されると、ポート噴射弁７が、図示しない処理で算出されたポート噴射開始時期に開弁されるとともに、その開弁時間が最終ポート噴射時間ＴＯＵＴ２になるように制御される。その結果、ポート噴射量は、ステップ３０で算出された目標ポート噴射量ＱＩＮＪ２になるように制御される。
【００５４】
次に、総燃料噴射量ＱＩＮＪＴから、上記ステップ３０で算出された目標ポート噴射量ＱＩＮＪ２を減算することによって、目標筒内噴射量ＱＩＮＪ１を算出する（ステップ３２）とともに、算出された目標筒内噴射量ＱＩＮＪ１に基づき、筒内噴射弁６の開弁時間の目標値である最終筒内噴射時間ＴＯＵＴ１を算出する（ステップ３３）。以上のようにして最終筒内噴射時間ＴＯＵＴ１が算出されると、筒内噴射弁６が、図示しない処理で算出された筒内噴射開始時期に開弁されるとともに、その開弁時間が最終筒内噴射時間ＴＯＵＴ１になるように制御される。その結果、筒内噴射量は、ステップ３２で算出された目標筒内噴射量ＱＩＮＪ１になるように制御される。
【００５５】
上記ステップ３３に続くステップ３４では、図６のステップ９で算出された暫定点火時期ＩＧＴＥＭに、ステップ２６又は２９で算出された点火時期補正項ＣＯＩＧを加算することによって、点火時期ＩＧを算出する。次いで、算出された点火時期ＩＧが所定の上限値ＩＧＬＭＨよりも大きいか否かを判別する（ステップ３５）。この上限値ＩＧＬＭＨは、点火時期ＩＧの遅角側の制限値である。このステップ３５の答がＹＥＳ（ＩＧ＞ＩＧＬＭＨ）のときには、点火時期ＩＧを上限値ＩＧＬＭＨに設定し（ステップ３６）、ステップ３７に進む一方、ＮＯ（ＩＧ≦ＩＧＬＭＨ）のときには、ステップ３６をスキップし、ステップ３７に進む。
【００５６】
このステップ３７では、後述する設定フラグＦ＿ＳＥＴ及び減算フラグＦ＿ＳＵＢＴを「１」に設定し、本処理を終了する。以上のようにして点火時期ＩＧが算出されると、点火プラグ８の点火時期が、算出された点火時期ＩＧになるように制御される。なお、点火時期ＩＧは、大きいほど、より遅角側になる。また、設定フラグＦ＿ＳＥＴ及び減算フラグＦ＿ＳＵＢＴは、エンジン３の始動時に「０」にリセットされる。
【００５７】
以上のように、ノッキング用制御処理では、前記ステップ２１〜２３の実行により、基本ポート噴射割合ＲＦ２Ｂにポート噴射割合補正項ＣＯＲＦ２を加算することによって、ポート噴射割合ＲＦ２が増大補正される。この場合、ポート噴射割合補正項ＣＯＲＦ２に加算される加算項ＣＯＡＲＦ２は、前記マップにおいて、エタノール残量割合ＲＱＲＦ２が大きいほど、より大きな値に設定されており、また、ノック強度ＫＮＯＣＫが大きいほど、より大きな値に設定されている。これにより、ポート噴射割合ＲＦ２の増大補正量は、エタノール残量割合ＲＱＲＦ２が大きいほど、また、ノック強度ＫＮＯＣＫが大きいほど、より大きくなる。なお、ポート噴射割合補正項ＣＯＲＦ２は、リミット処理（図示せず）によって、前記上限値以下に制限される。
【００５８】
また、ノッキング用制御処理では、前記ステップ２５、２６、２８、２９及び３４の実行により、基本点火時期ＩＧＢに点火時期補正項ＣＯＩＧを加算することによって、点火時期ＩＧが遅角側に補正される。この場合、点火時期補正項ＣＯＩＧとして用いられる第１及び第２点火時期補正項ＣＯＩＧ１、ＣＯＩＧ２は、前記マップにおいて、エタノール残量割合ＲＱＲＦ２が小さいほど、より大きな値に設定されている。これにより、点火時期ＩＧの遅角補正量は、エタノール残量割合ＲＱＲＦ２が小さいほど、より大きくなる。また、第１及び第２点火時期補正項ＣＯＩＧ１、ＣＯＩＧ２は、吸気ポート４ａの壁面へのエタノールＥの付着の影響や、ポート噴射弁７から噴射された燃料が気筒３ａ内に実際に流入するまでの時間遅れ（以下「ポート噴射燃料の流入時間遅れ」という）の影響に応じて、エンジン３のノッキングを抑制できるような値に設定されている。
【００５９】
また、増大補正されたポート噴射割合ＲＦ２は、上限値ＲＦ２ＬＭＨ以下に制限される（ステップ２４、２７）。さらに、点火時期補正項ＣＯＩＧとして、ポート噴射割合ＲＦ２が上限値ＲＦ２ＬＭＨに制限されているとき（ステップ２４：ＹＥＳ）には、第２点火時期補正項ＣＯＩＧ２が用いられ、制限されていないとき（ステップ２４：ＮＯ）には、第１点火時期補正項ＣＯＩＧ１が用いられる。前記マップにおいて、第２点火時期補正項ＣＯＩＧ２は、エタノール残量割合ＲＱＲＦ２の全体として、第１点火時期補正項ＣＯＩＧ１よりも大きな値に設定されている。これにより、増大補正されたポート噴射割合ＲＦ２が上限値ＲＦ２ＬＭＨに制限されているときには、制限されていないときよりも、点火時期ＩＧの遅角補正量は大きくなる。
【００６０】
次に、図９〜図１１を参照しながら、図６のステップ１２で実行される非ノッキング用制御処理について説明する。まず、図９のステップ４１では、吸入空気量ＱＡＩＲが所定値ＱＫＮＯＣＫよりも大きいか否かを判別する。この答がＮＯ（ＱＡＩＲ≦ＱＫＮＯＣＫ）のときには、エンジン３が、ノッキングが発生するような負荷領域にないと判定する。次いで、図６のステップ６で算出された基本ポート噴射割合ＲＦ２Ｂをそのまま、ポート噴射割合ＲＦ２として設定する（ステップ４２）。
【００６１】
次に、ステップ４３〜４６において、図８のステップ３０〜３３と同様にして、目標ポート噴射量ＱＩＮＪ２、最終ポート噴射時間ＴＯＵＴ２、目標筒内噴射量ＱＩＮＪ１、及び最終筒内噴射時間ＴＯＵＴ１をそれぞれ算出する。以上により、ポート噴射量が、ステップ４３で算出された目標ポート噴射量ＱＩＮＪ２になるように制御されるとともに、筒内噴射量が、ステップ４５で算出された目標筒内噴射量ＱＩＮＪ１になるように制御される。
【００６２】
次いで、点火時期ＩＧを、図６のステップ９で算出された暫定点火時期ＩＧＴＥＭに設定し（ステップ４７）、本処理を終了する。以上のようにして点火時期ＩＧが算出されると、ステップ３４の場合と同様、点火プラグ８の点火時期が、ステップ４７で算出された点火時期ＩＧになるように制御される。
【００６３】
一方、前記ステップ４１の答がＹＥＳ（ＱＡＩＲ＞ＱＫＮＯＣＫ）のときには、エンジン３が、ノッキングが発生するような負荷領域にあると判定する。次いで、図１０のステップ５１において、前記設定フラグＦ＿ＳＥＴが「１」であるか否かを判別する。この答がＹＥＳ（Ｆ＿ＳＥＴ＝１）のときには、エタノール残量割合ＲＱＲＦ２が所定値ＲＱＲＢ以上であるか否かを判別する（ステップ５２）。
【００６４】
このステップ５２の答がＹＥＳ（ＲＱＲＦ２≧ＲＱＲＢ）のときには、エタノール残量割合ＲＱＲＦ２に応じ、所定のマップ（図示せず）を検索することによって、第１減算時間ＴＩＭＡ１を算出する（ステップ５３）。このマップでは、第１減算時間ＴＩＭＡ１は正値に設定されており、その設定の詳細については後述する。次いで、算出された第１減算時間ＴＩＭＡ１で、所定の基本減算項ＣＯＳＩＢを除算することによって、減算項ＣＯＳＩＧを算出する（ステップ５４）。次に、減算項ＣＯＳＩＧの算出・設定を終了するために、設定フラグＦ＿ＳＥＴを「０」にリセットし（ステップ５５）、ステップ５８に進む。
【００６５】
一方、ステップ５２の答がＮＯで、エタノール残量割合ＲＱＲＦ２が所定値ＲＱＲＢよりも小さいときには、エタノール残量割合ＲＱＲＦ２に応じ、所定のマップ（図示せず）を検索することによって、第２減算時間ＴＩＭＡ２を算出する（ステップ５６）。このマップでは、第２減算時間ＴＩＭＡ２は正値に設定されており、その設定の詳細については後述する。次いで、算出された第２減算時間ＴＩＭＡ２で、上記の基本減算項ＣＯＳＩＢを除算することによって、減算項ＣＯＳＩＧを算出する（ステップ５７）。次に、減算項ＣＯＳＩＧの算出・設定を終了するために、上記ステップ５５を実行し（Ｆ＿ＳＥＴ←０）、ステップ５８に進む。
【００６６】
一方、前記ステップ５１の答がＮＯ（Ｆ＿ＳＥＴ＝０）のときには、ステップ５２〜５７をスキップし、ステップ５８に進む。
【００６７】
このステップ５８では、減算フラグＦ＿ＳＵＢＴが「１」であるか否かを判別する。この答がＹＥＳ（Ｆ＿ＳＵＢＴ＝１）のときには、図７のステップ２６又は２９で設定された点火時期補正項の前回値ＣＯＩＧＺから、ステップ５４又は５７で算出された減算項ＣＯＳＩＧを減算することによって、今回の点火時期補正項ＣＯＩＧを算出する（ステップ５９）。
【００６８】
次いで、ステップ５９で算出された点火時期補正項ＣＯＩＧが値０以下であるか否かを判別する（ステップ６０）。この答がＮＯ（ＣＯＩＧ＞０）のときには、図６のステップ９で算出された暫定点火時期ＩＧＴＥＭに、ステップ５９で算出された点火時期補正項ＣＯＩＧを加算することによって、点火時期ＩＧを算出し（ステップ６１）、図１１のステップ７１に進む。以上のようにして点火時期ＩＧが算出されると、図８のステップ３４などと同様、点火プラグ８の点火時期が、ステップ６１で算出された点火時期ＩＧになるように制御される。
【００６９】
一方、上記ステップ６０の答がＹＥＳで、点火時期補正項ＣＯＩＧが値０以下になったときには、ステップ５９による点火時期補正項ＣＯＩＧの減算処理を終了するために、減算フラグＦ＿ＳＵＢＴを「０」にリセットする（ステップ６２）。次いで、点火時期ＩＧを、図６のステップ９で算出された暫定点火時期ＩＧＴＥＭに設定し（ステップ６３）、図１１のステップ７１に進む。
【００７０】
一方、前記ステップ５８の答がＮＯ（Ｆ＿ＳＵＢＴ＝０）のときには、上記ステップ６３を実行することによって、点火時期ＩＧを暫定点火時期ＩＧＴＥＭに設定し、図１１のステップ７１に進む。
【００７１】
図１０のステップ６１又は６３に続く図１１のステップ７１では、エタノール残量割合ＲＱＲＦ２が所定値ＲＱＲＢ以上であるか否かを判別する。この答がＹＥＳ（ＲＱＲＦ２≧ＲＱＲＢ）のときには、減算フラグＦ＿ＳＵＢＴが「１」であるか否かを判別する（ステップ７２）。この答がＹＥＳ（Ｆ＿ＳＵＢＴ＝１）のとき、すなわち、前記ステップ５９による点火時期補正項ＣＯＩＧの減算処理の実行中であるときには、ポート噴射割合補正項の前回値ＣＯＲＦ２Ｚを、今回のポート噴射割合補正項ＣＯＲＦ２として設定し（ステップ７３）、後述するステップ７９に進む。
【００７２】
一方、上記ステップ７２の答がＮＯ（Ｆ＿ＳＵＢＴ＝０）で、点火時期補正項ＣＯＩＧの減算処理の実行中でないときには、エタノール残量割合ＲＱＲＦ２に応じ、所定のマップ（図示せず）を検索することによって、第１減算時間ＴＩＭＢ１を算出する（ステップ７４）。このマップでは、第１減算時間ＴＩＭＢ１は正値に設定されており、その設定の詳細については後述する。次いで、算出された第１減算時間ＴＩＭＢ１で、所定の基本減算項ＣＯＳＲＢを除算することによって、減算項ＣＯＳＲＦ２を算出し（ステップ７５）、ステップ７８に進む。
【００７３】
一方、前記ステップ７１の答がＮＯ（ＲＱＲＦ２＜ＲＱＲＢ）のときには、エタノール残量割合ＲＱＲＦ２に応じ、所定のマップ（図示せず）を検索することによって、第２減算時間ＴＩＭＢ２を算出する（ステップ７６）。このマップでは、第２減算時間ＴＩＭＢ２は正値に設定されており、その設定の詳細については後述する。次いで、算出された第２減算時間ＴＩＭＢ２で、上記の基本減算項ＣＯＳＲＢを除算することによって、減算項ＣＯＳＲＦ２を算出し（ステップ７７）、ステップ７８に進む。
【００７４】
前記ステップ７５又は７７に続くステップ７８では、ポート噴射割合補正項の前回値ＣＯＲＦ２Ｚから、ステップ７５又は７７で算出された減算項ＣＯＳＲＦ２を減算することによって、今回のポート噴射割合補正項ＣＯＲＦ２を算出する。次いで、ステップ７９に進む。
【００７５】
前記ステップ７３又は７８に続くステップ７９では、図６のステップ６で算出された基本ポート噴射割合ＲＦ２Ｂに、ステップ７３又は７８で設定・算出されたポート噴射割合補正項ＣＯＲＦ２を加算することによって、ポート噴射割合ＲＦ２を算出する。次いで、算出されたポート噴射割合ＲＦ２が所定の下限値ＲＦ２ＬＭＬよりも小さいか否かを判別する（ステップ８０）。この下限値ＲＦ２ＬＭＬは、図７のステップ２４で用いられる上限値ＲＦ２ＬＭＨよりも小さな正値に設定されている。
【００７６】
このステップ８０の答がＹＥＳ（ＲＦ２＜ＲＦ２ＬＭＬ）のときには、ポート噴射割合ＲＦ２を下限値ＲＦ２ＬＭＬに設定し（ステップ８１）、ステップ８２に進む。一方、ステップ８０の答がＮＯで、ポート噴射割合ＲＦ２が所定の下限値ＲＦ２ＬＭＬ以上であるときには、ステップ８１をスキップし、ステップ８２に進む。
【００７７】
続くステップ８２〜８５では、図８のステップ３０〜３３と同様にして、目標ポート噴射量ＱＩＮＪ２、最終ポート噴射時間ＴＯＵＴ２、目標筒内噴射量ＱＩＮＪ１及び最終筒内噴射時間ＴＯＵＴ１をそれぞれ算出し、本処理を終了する。以上により、ポート噴射量が、ステップ８２で算出された目標ポート噴射量ＱＩＮＪ２になるように制御されるとともに、筒内噴射量が、ステップ８４で算出された目標筒内噴射量ＱＩＮＪ１になるように制御される。
【００７８】
以上のように、非ノッキング用制御処理では、エンジン３が、ノッキングが発生するような負荷領域にないとき（図９のステップ４１：ＮＯ）には、ポート噴射割合ＲＦ２が基本ポート噴射割合ＲＦ２Ｂに設定される（ステップ４２）とともに、点火時期ＩＧが暫定点火時期ＩＧＴＥＭに設定される（ステップ４７）。また、エンジン３が、ノッキングが発生するような負荷領域にあるとき（ステップ４１：ＹＥＳ）には、エンジン３の始動からノッキングが発生しない限り、減算フラグＦ＿ＳＵＢＴが「０」に保持されることによって、点火時期ＩＧは暫定点火時期ＩＧＴＥＭに設定される（図１０のステップ５８：ＮＯ、ステップ６３）。
【００７９】
一方、エンジン３が、ノッキングが発生するような負荷領域にある場合において、それまでにエンジン３のノッキングが発生したと判定されたことでノッキング用制御処理が実行されていたときには、当該ノッキング用制御処理で設定された点火時期補正項ＣＯＩＧを減算する減算処理が実行される（図１０のステップ５９）。
【００８０】
この点火時期補正項ＣＯＩＧの減算処理は、点火時期補正項ＣＯＩＧが値０以下になるまで繰り返され、その実行中、点火時期ＩＧは、暫定点火時期ＩＧＴＥＭに点火時期補正項ＣＯＩＧを加算した値に、設定される（図１０のステップ６１）。そして、点火時期補正項ＣＯＩＧが値０以下になると（ステップ６０：ＹＥＳ）、点火時期補正項ＣＯＩＧの減算処理が終了され、減算フラグＦ＿ＳＵＢＴが「０」に設定される（ステップ６２）。点火時期補正項ＣＯＩＧの減算処理が終了した以後は、点火時期ＩＧは、暫定点火時期ＩＧＴＥＭに設定される（ステップ５８：ＮＯ、ステップ６３）。以上により、点火時期ＩＧは、エンジン３のノッキングの発生時に、暫定点火時期ＩＧＴＥＭよりも遅角側に補正され、ノッキングが発生しなくなったときに、進角側の暫定点火時期ＩＧＴＥＭに徐々に復帰される。
【００８１】
さらに、点火時期補正項ＣＯＩＧから減算される減算項ＣＯＳＩＧは、所定の基本減算項ＣＯＳＩＢを第１又は第２減算時間ＴＩＭＡ１、ＴＩＭＡ２で除算することによって、算出される（図１０のステップ５４、５７）。これらの第１及び第２減算時間ＴＩＭＡ１、ＴＩＭＡ２は、前記マップにおいて、エタノール残量割合ＲＱＲＦ２が小さいほど、より大きな値に設定されている（ステップ５３、５６）。また、エタノール残量割合ＲＱＲＦ２が所定値ＲＱＲＢ以上であるとき（ステップ５２：ＹＥＳ）には、第１減算時間ＴＩＭＡ１が用いられ、所定値ＲＱＲＢよりも小さいとき（ステップ５２：ＮＯ）には、第２減算時間ＴＩＭＡ２が用いられる。第２減算時間ＴＩＭＡ２は、前記マップにおいて、エタノール残量割合ＲＱＲＦ２の全体として、第１減算時間ＴＩＭＡ１よりも大きな値に設定されている。以上により、エタノール残量割合ＲＱＲＦ２が小さいほど、減算項ＣＯＳＩＧがより小さな値に設定されることによって、点火時期ＩＧが暫定点火時期ＩＧＴＥＭに復帰するまでの時間が、より長くなる。
【００８２】
さらに、第１減算時間ＴＩＭＡ１は、前記マップにおいて、前記ポート噴射燃料の流入時間遅れ（ポート噴射弁７から噴射された燃料が気筒３ａ内に実際に流入するまでの時間遅れ）に応じて、設定されており、このポート噴射燃料の流入時間遅れの間は、点火時期補正項ＣＯＩＧが値０にならないような値に設定されている。
【００８３】
また、非ノッキング用制御処理では、エンジン３が、ノッキングが発生するような負荷領域にあるときには、ポート噴射割合補正項ＣＯＲＦ２を減算するポート噴射割合補正項ＣＯＲＦ２の減算処理が実行される（図１１のステップ７８）。ポート噴射割合補正項ＣＯＲＦ２の減算処理は、基本的には、上述した点火時期補正項ＣＯＩＧの減算処理とは異なり、エンジン３のノッキングが発生しておらず、かつ、エンジン３が、ノッキングが発生するような負荷領域にある限り、繰り返し実行される。
【００８４】
一方、エンジン３のノッキングが発生しなくなった場合において、エタノール残量割合ＲＱＲＦ２が所定値ＲＱＲＢ以上であるとき（ステップ７１：ＹＥＳ）には、非ノッキング用制御処理が開始されてから点火時期補正項ＣＯＩＧの減算処理が終了するまでの間は、ポート噴射割合補正項ＣＯＲＦ２の減算処理は実行されず、ポート噴射割合補正項ＣＯＲＦ２は、その前回値ＣＯＲＦ２Ｚに保持される（ステップ７２：ＹＥＳ、ステップ７３）。これにより、ポート噴射割合補正項ＣＯＲＦ２は、非ノッキング用制御処理が開始されてから点火時期補正項ＣＯＩＧが値０になるまでの間は、ノッキング用制御処理（図７のステップ２２）で増大された値に、保持される。そして、点火時期補正項ＣＯＩＧの減算処理が終了すると（ステップ７２：ＮＯ）、ポート噴射割合補正項ＣＯＲＦ２の減算処理が開始される。
【００８５】
一方、エタノール残量割合ＲＱＲＦ２が所定値ＲＱＲＢよりも小さいとき（ステップ７１：ＮＯ）には、点火時期補正項ＣＯＩＧの減算処理にかかわらず、非ノッキング用制御処理の開始に伴って、ポート噴射割合補正項ＣＯＲＦ２の減算処理が開始される。すなわち、この場合には、点火時期補正項ＣＯＩＧの減算処理と、ポート噴射割合補正項ＣＯＲＦ２の減算処理が互いに併行して実行される。
【００８６】
また、ポート噴射割合補正項ＣＯＲＦ２から減算される減算項ＣＯＳＲＦ２は、所定の基本減算項ＣＯＳＲＢを第１又は第２減算時間ＴＩＭＢ１、ＴＩＭＢ２で除算することによって、算出される（図１１のステップ７５、７７）。これらの第１及び第２減算時間ＴＩＭＢ１、ＴＩＭＢ２は、前記マップにおいて、エタノール残量割合ＲＱＲＦ２が小さいほど、より小さな値に設定されている（ステップ７４、７６）。また、エタノール残量割合ＲＱＲＦ２が所定値ＲＱＲＢ以上であるとき（ステップ７１：ＹＥＳ）には、第１減算時間ＴＩＭＢ１が用いられ、所定値ＲＱＲＢよりも小さいとき（ステップ７１：ＮＯ）には、第２減算時間ＴＩＭＢ２が用いられる。第２減算時間ＴＩＭＢ２は、前記マップにおいて、エタノール残量割合ＲＱＲＦ２の全体として、第１減算時間ＴＩＭＢ１よりも小さな値に設定されている。以上により、エタノール残量割合ＲＱＲＦ２が小さいほど、減算項ＣＯＳＲＦ２がより大きな値に設定されることによって、ポート噴射割合補正項ＣＯＲＦ２がより大きな傾きで減少する結果、ポート噴射割合補正項ＣＯＲＦ２が加算されるポート噴射割合ＲＦ２も、より大きな傾きで減少する。
【００８７】
なお、ポート噴射割合補正項ＣＯＲＦ２は、リミット処理（図示せず）によって、所定の下限値以上に制限される。
【００８８】
以上のように、エンジン制御処理において、ポート噴射割合ＲＦ２を、エンジン３のノッキングが発生していないときに基本的に減少補正するとともに、発生しているときに増大補正するのは、次の理由による。すなわち、第１及び第２濃度センサ３９、４０で検出された第１及び第２エタノール濃度ＥＬ１、ＥＬ２の精度は、両センサ３９、４０の個体差や経年劣化などの影響を受けるため、必ずしも高くはない。このため、第１及び第２エタノール濃度ＥＬ１、ＥＬ２に基づいて算出された第１及び第２推定エタノール濃度ＥＬ１Ｅ、ＥＬ２Ｅや要求エタノール濃度ＥＲＥＱを用いて、ポート噴射割合ＲＦ２を算出しても、燃焼室３ｄ内に供給される燃料の実際のエタノール濃度が、要求エタノール濃度ＥＲＥＱよりも大きくなったり、小さくなったりし、前者の場合にはエタノールＥの無駄な消費につながり、後者の場合にはエンジン３のノッキングの頻繁な発生につながってしまう。この点に着目し、エタノールＥの消費を最小限に抑えながら、エンジン３のノッキングを抑制するためである。
【００８９】
次に、図１２及び図１３を参照しながら、エンジン３の吸入空気量ＱＡＩＲを制御するための処理について説明する。本処理は、ＴＤＣ信号の発生に同期して、かつ、前記エンジン制御処理と併行して、繰り返し実行される。まず、本処理の概要について述べる。すなわち、図４を参照して説明したように、本体エタノール残量ＱＲＦ２（タンク本体２２ｂ内のエタノールＥの残量）と第２燃料タンク傾斜角θとの関係によっては、タンク本体２２ｂ内のエタノールＥをリザーバ２２ｃに導入できず、リザーバ２２ｃ内のエタノールＥしか、低圧ポンプ２２ａで吸入できなくなる。図１２及び図１３に示す処理では、このような場合において、リザーバ２２ｃ内のエタノールＥが後述する下限値ＱＬＭＬに達したときに、エンジン３のノッキングを抑制するために、エンジン３の出力を制限するように、吸入空気量ＱＡＩＲが制御される。
【００９０】
まず、図１２のステップ９１では、本体エタノール残量ＱＲＦ２に応じ、所定のマップ（図示せず）を検索することによって、上限傾斜角θＬＭＴを算出する。この上限傾斜角θＬＭＴは、吸入通路２２ｄのリザーバ吸入口２２ｅがタンク本体２２ｂ内のエタノールＥの液面よりも上方に位置し、エタノールＥに浸されなくなるときの第２燃料タンク傾斜角θの最小値に相当する。上記のマップでは、図４を参照して説明したタンク本体２２ｂ内のエタノールＥの液面とリザーバ吸入口２２ｅとの位置関係に基づいて、上限傾斜角θＬＭＴは、本体エタノール残量ＱＲＦ２が大きいほど、より大きな値に設定されている。
【００９１】
次いで、エンジン回転数ＮＥ及び検出されたアクセル開度ＡＰに応じ、所定のマップ（図示せず）を検索することによって、エンジン３の要求トルクＴＲＥＱを算出する（ステップ９２）。このマップでは、要求トルクＴＲＥＱは、アクセル開度ＡＰが大きいほど、より大きな値に設定されている。次に、検出された第２燃料タンク傾斜角θが上記ステップ９１で算出された上限傾斜角θＬＭＴ以上であるか否かを判別する（ステップ９３）。
【００９２】
このステップ９３の答がＮＯ（θ＜θＬＭＴ）のとき、すなわち、リザーバ吸入口２２ｅがタンク本体２２ｂ内のエタノールＥの液面よりも下方に位置し、エタノールＥに浸されているときには、傾斜済みフラグＦ＿ＤＯＮＥが「１」であるか否かを判別する（ステップ９４）。この傾斜済みフラグＦ＿ＤＯＮＥは、エンジン３の始動後、ステップ９３の答がＹＥＳになったときに、「１」に設定されるものであり、エンジン３の始動時に「０」にリセットされる。
【００９３】
上記ステップ９４の答がＮＯ（Ｆ＿ＤＯＮＥ＝０）のとき、すなわち、エンジン３の始動から現在までの間にわたって、リザーバ吸入口２２ｅが、タンク本体２２ｂ内のエタノールＥの液面よりも下方に継続して位置し、エタノールＥに継続して浸されているときには、後述する図１３のステップ１０６に進む。
【００９４】
一方、前記ステップ９３の答がＹＥＳ（θ≧θＬＭＴ）のとき、すなわち、リザーバ吸入口２２ｅがタンク本体２２ｂ内のエタノールＥの液面よりも上方に位置し、エタノールＥに浸されていないときには、傾斜済みフラグＦ＿ＤＯＮＥが「１」であるか否かを判別する（ステップ９５）。
【００９５】
このステップ９５の答がＮＯ（Ｆ＿ＤＯＮＥ＝０）のときには、エンジン３の始動後、ステップ９３の答がＹＥＳになったことを、すなわち、リザーバ吸入口２２ｅがタンク本体２２ｂ内のエタノールＥの液面よりも上方に位置したことを表すために、傾斜済みフラグＦ＿ＤＯＮＥを「１」に設定する（ステップ９６）。次いで、図８や、図９、図１１などで算出された目標ポート噴射量の前回値ＱＩＮＪ２Ｚを所定値ＱＲＥＲＥＦから減算することによって、リザーバ２２ｃ内のエタノールＥの残量（以下「リザーバエタノール残量」という）ＱＲＥＲＦ２を算出し（ステップ９７）、図１３のステップ１０１に進む。この所定値ＱＲＥＲＥＦは、本処理の前回の実行時で、かつポート噴射弁７によるエタノールＥの噴射が実行される前のリザーバエタノール残量に相当し、例えば、前回時に検出された本体エタノール残量ＱＲＦ２に応じ、所定のマップ（図示せず）を検索することによって、算出される。このマップでは、所定値ＱＲＥＲＥＦは、ＱＲＦ２が大きいほど、より大きな値に設定されている。
【００９６】
一方、上記ステップ９５の答がＹＥＳ（Ｆ＿ＤＯＮＥ＝１）のときには、目標ポート噴射量の前回値ＱＩＮＪ２Ｚをリザーバエタノール残量の前回値ＱＲＥＲＦ２Ｚから減算することによって、今回のリザーバエタノール残量ＱＲＥＲＦ２を算出し（ステップ９８）、図１３のステップ１０１に進む。
【００９７】
一方、前記ステップ９４の答がＹＥＳ（Ｆ＿ＤＯＮＥ＝１）のとき、すなわち、ステップ９３の答が一旦、ＹＥＳになってから、ＮＯになったときには、目標ポート噴射量の前回値ＱＩＮＪ２Ｚをリザーバエタノール残量の前回値ＱＲＥＲＦ２Ｚから減算した値に、エタノール流入量ＱＲＩＮを加算することによって、リザーバエタノール残量ＱＲＥＲＦ２を算出し（ステップ９９）、図１３のステップ１０１に進む。このエタノール流入量ＱＲＩＮは、本処理の前回の処理タイミングから今回の処理タイミングまでの間に、タンク本体２２ｂ内からリザーバ２２ｃ内に流入するエタノールＥの流入量であり、例えば本体エタノール残量ＱＲＦ２に応じたマップ検索によって算出される。エタノール流入量ＱＲＩＮは、基本的には、目標ポート噴射量の前回値ＱＩＮＪ２Ｚよりも大きい。なお、図示しないものの、ステップ９９において、リザーバエタノール残量ＱＲＥＲＦ２は、リザーバ２２ｃに貯留可能なエタノールＥの最大値以下に制限される。
【００９８】
前記ステップ９７、９８又は９９に続く図１３のステップ１０１では、算出されたリザーバエタノール残量ＱＲＥＲＦ２が所定の下限値ＱＬＭＬ以下であるか否かを判別する。この下限値ＱＬＭＬは、上述したようにして算出されるリザーバエタノール残量ＱＲＥＲＦ２に基づいてステップ１０１の答がＹＥＳとＮＯの間で頻繁に切り替わるのを防止するために、所定のヒステリシス付きの値に設定されている。例えば、下限値ＱＬＭＬは、リザーバエタノール残量ＱＲＥＲＦ２がステップ９７又は９８で算出されているときには、値０に設定され、ステップ９９で算出されているときには、値０よりも若干大きな所定値に設定される。
【００９９】
このステップ１０１の答がＮＯ（ＱＲＥＲＦ２＞ＱＬＭＬ）のときには、ステップ１０６に進む。一方、ステップ１０１の答がＹＥＳで、リザーバエタノール残量ＱＲＥＲＦ２が下限値ＱＬＭＬ以下であるときには、ポート噴射割合ＲＦ２を値０に設定する（ステップ１０２）。このステップ１０２が実行されると、それにより値０に設定されたポート噴射割合ＲＦ２は、図８、図９及び図１１には図示しないものの、図８のステップ３０、図９のステップ４３、及び図１１のステップ８２における目標ポート噴射量ＱＩＮＪ２の算出に、優先的に用いられる。これにより、目標ポート噴射量ＱＩＮＪ２が値０に算出されることによって、ポート噴射弁７によるエタノールＥの噴射動作が停止されるとともに、総燃料噴射量ＱＩＮＪＴ分のガソリンＧが筒内噴射弁６から噴射される。
【０１００】
ステップ１０２に続くステップ１０３では、エンジン回転数ＮＥに応じ、図１４に示すマップを検索することによって、上限要求トルクＴＲＥＱＬＩＭを算出する。上限要求トルクＴＲＥＱＬＩＭは、エンジン３の要求トルクＴＲＥＱの上限値であり、この図１４に示すマップでは、ポート噴射割合ＲＦ２が値０に設定されているとき、すなわち、ガソリンＧのみが燃焼室３ｄに供給されているときに、エンジン３のノッキングが確実に抑制されるような最大のトルク値に設定されている。また、図１４に示すように、上限要求トルクＴＲＥＱＬＩＭは、エンジン回転数ＮＥが所定の第１回転数ＮＥ１よりも低い極低回転領域では、ＮＥが高いほど、比較的大きな傾きで、より大きな値に設定され、ＮＥがＮＥ１以上でかつ所定の第２回転数ＮＥ２（＞ＮＥ１）よりも低い低〜高回転領域では、ＮＥが高いほど、比較的小さな傾きで、より大きな値に設定され、ＮＥがＮＥ２以上の高回転領域では、ＮＥが高いほど、比較的大きな傾きで、より小さな値に設定されている。このような上限要求トルクＴＲＥＱＬＩＭの設定は、エンジン回転数ＮＥとエンジン３の出力トルクとの関係に基づくものであり、一般的な内燃機関の回転数と出力トルクとの関係と同様である。
【０１０１】
前記ステップ１０３に続くステップ１０４では、図１２のステップ９２で算出された要求トルクＴＲＥＱが、ステップ１０３で算出された上限要求トルクＴＲＥＱＬＩＭよりも大きいか否かを判別する。この答がＹＥＳ（ＴＲＥＱ＞ＴＲＥＱＬＩＭ）のときには、要求トルクＴＲＥＱを上限要求トルクＴＲＥＱＬＩＭに設定し（ステップ１０５）、ステップ１０６に進む。一方、ステップ１０４の答がＮＯ（ＴＲＥＱ≦ＴＲＥＱＬＩＭ）のときには、ステップ１０５をスキップし、ステップ１０６に進む。
【０１０２】
図１２のステップ９４の答がＮＯ（θ＜θＧＬＭＴかつＦ＿ＤＯＮＥ＝０）のとき、前記ステップ１０１の答がＮＯ（ＱＲＥＲＦ２＞ＱＬＭＬ）のとき、又は、ステップ１０４の答がＮＯ（ＴＲＥＱ≦ＴＲＥＱＬＩＭ）のときに続いて、あるいは、ステップ１０５に続いて実行されるステップ１０６では、図１２のステップ９２又は図１３のステップ１０５で算出・設定された要求トルクＴＲＥＱに応じ、所定のマップ（図示せず）を検索することによって、目標吸入空気量ＱＡＯＢＪを算出する。このマップでは、目標吸入空気量ＱＡＯＢＪは、要求トルクＴＲＥＱが大きいほど、より大きな値に設定されている。
【０１０３】
次いで、算出された目標吸入空気量ＱＡＯＢＪに基づく制御信号をＴＨアクチュエータ９ｂに出力し（ステップ１０７）、本処理を終了する。このステップ１０７の実行により、スロットル弁９の開度が制御されることによって、吸入空気量ＱＡＩＲが目標吸入空気量ＱＡＯＢＪになるように制御され、ひいては、エンジン３のトルクが要求トルクＴＲＥＱになるように制御される。
【０１０４】
以上のように、図１２及び図１３に示す処理によれば、エンジン３の始動後、第２燃料タンク傾斜角θが上限傾斜角θＬＭＴに一度も達していないとき（図１２のステップ９４：ＮＯ）には、エンジン回転数ＮＥなどに応じて算出された要求トルクＴＲＥＱがそのまま吸入空気量ＱＡＩＲの制御に用いられる（ステップ９２、図１３のステップ１０６、１０７）。そして、第２燃料タンク傾斜角θが上限傾斜角θＬＭＴ以上になると（ステップ９３：ＹＥＳ）、リザーバ２２ｃ内のエタノールＥの残量であるリザーバエタノール残量ＱＲＥＲＦ２の算出が行われる。
【０１０５】
この場合、エンジン３の始動後、第２燃料タンク傾斜角θが上限傾斜角θＬＭＴ以上に初めてなったとき（ステップ９５：ＮＯ）には、リザーバエタノール残量ＱＲＥＲＦ２は、前回時でかつポート噴射弁７によるエタノールＥの噴射が実行される前のリザーバエタノール残量に相当する所定値ＱＲＥＲＥＦから、目標ポート噴射量の前回値ＱＩＮＪ２Ｚを減算することによって、算出される（ステップ９７）。その後、リザーバエタノール残量ＱＲＥＲＦ２は、θがθＬＭＴ以上である限り（ステップ９５：ＹＥＳ）、その前回値ＱＲＥＲＦ２Ｚから目標ポート噴射量の前回値ＱＩＮＪ２Ｚを減算することによって、算出される（ステップ９８）。
【０１０６】
第２燃料タンク傾斜角θが上限傾斜角θＬＭＴ以上であるときに、上述したようにしてリザーバエタノール残量ＱＲＥＲＦ２を算出するのは、θ≧θＬＭＴのときには、図４を参照して説明したように、リザーバ吸入口２２ｅがタンク本体２２ｂ内のエタノールＥの液面よりも上方に位置することによりタンク本体２２ｂ内のエタノールＥがリザーバ２２ｃ内に吸入されなくなるとともに、リザーバ２２ｃ内のエタノールＥがポート噴射量（目標ポート噴射量ＱＩＮＪ２）の分、消費されるためである。
【０１０７】
そして、第２燃料タンク傾斜角θがθＬＭＴよりも小さくなると（ステップ９３：ＮＯ、ステップ９４：ＹＥＳ）、リザーバエタノール残量ＱＲＥＲＦ２は、その前回値ＱＲＥＲＦ２Ｚから目標ポート噴射量の前回値ＱＩＮＪ２Ｚを減算した値に、エタノール流入量ＱＲＩＮを加算することによって算出される（ステップ９９）。このエタノール流入量ＱＲＩＮは、前述したように本処理の前回時から今回時までの間にタンク本体２２ｂ内からリザーバ２２ｃ内に流入したエタノールＥの流入量である。
【０１０８】
このような場合に、リザーバエタノール残量ＱＲＥＲＦ２を上述したようにして算出するのは、リザーバ２２ｃ内のエタノールＥがポート噴射量の分、依然として消費されることに加え、θ＜θＬＭＴになると、リザーバ吸入口２２ｅがタンク本体２２ｂ内のエタノールＥに浸されることによって、タンク本体２２ｂ内のエタノールＥがリザーバ２２ｃ内に流入するようになるためである。なお、エタノール流入量ＱＲＩＮは、前述したように基本的にはポート噴射量よりも大きいため、それにより、ステップ９９で算出されるリザーバエタノール残量ＱＲＥＲＦ２は、本処理の実行が繰り返されるのに伴って、増大する。
【０１０９】
また、第１実施形態における各種の要素と、本発明における各種の要素との対応関係は、次のとおりである。すなわち、第１実施形態における第１及び第２燃料タンク２１、２２が、本発明における低オクタン価燃料タンク及び高オクタン価燃料タンクにそれぞれ相当し、本実施形態における傾斜センサ４０が、本発明における傾斜状態取得手段に相当するとともに、本実施形態におけるＥＣＵ２が、本発明における残量取得手段及び出力制限手段に相当する。
【０１１０】
以上のように、第１実施形態によれば、第２燃料タンク２２が右方に傾斜したときの傾斜角である第２燃料タンク傾斜角θが傾斜角センサ４０で検出されるとともに、リザーバ２２ｃ内のエタノールＥの残量であるリザーバエタノール残量ＱＲＥＲＦ２が算出される（図１２のステップ９７〜９９）。また、第２燃料タンク傾斜角θ及びリザーバエタノール残量ＱＲＥＲＦ２に応じて、エンジン３の出力が制限される。
【０１１１】
より具体的には、第２燃料タンク傾斜角θが上限傾斜角θＬＭＴ以上である場合（図１２のステップ９３：ＹＥＳ）において、リザーバエタノール残量ＱＲＥＲＦ２が下限値に達したとき（図１３のステップ１０１：ＹＥＳ）に、エンジン３の出力（トルク）が、気筒３ａ内にガソリンＧのみを供給したときでもノッキングを確実に抑制できるような大きさに、制限される（ステップ１０３〜１０７）。これにより、第２燃料タンク２２の傾斜及びリザーバエタノール残量ＱＲＥＲＦ２の減少に起因して気筒３ａ内にエタノールＥを供給できないような場合に、エンジン３のノッキングを適切に抑制することができる。この場合、エンジン３の出力の制限に用いられる上限要求トルクＴＲＥＱＬＩＭが、ガソリンＧのみが気筒３ａ内に供給されているときに、エンジン３のノッキングが確実に抑制されるような最大のトルク値に設定されている。したがって、エンジン３の出力を過剰に制限することなく、上述した効果を有効に得ることができる。
【０１１２】
また、第２燃料タンク２２が傾斜しただけでなく、リザーバエタノール残量ＱＲＥＲＦ２が下限値ＱＬＭＬに実際に減少するのを待って、エンジン３の出力を制限するので、当該制限が不要に行われるのを防止することができる。
【０１１３】
次に、図１５〜図２１を参照しながら、本発明の第２実施形態による制御装置について説明する。この制御装置は、第１実施形態と比較して、吸入空気量ＱＡＩＲを制御するための処理が主に異なっており、図１５などに示す第２実施形態による吸入空気量ＱＡＩＲを制御するための処理では、第２燃料タンク傾斜角θが上限傾斜角θＬＭＴ以上であるときに、リザーバエタノール残量ＱＲＥＲＦ２が減少するのに応じて、要求トルクＴＲＥＱが徐々に制限される。図１５、図１７及び図１９において、第１実施形態と同じ実行内容の部分については、同じステップ番号を付している。以下、第１実施形態と異なる点を中心に説明する。
【０１１４】
図１５のステップ１１１では、前述した低圧ポンプ２２ａによる燃料の吐出圧である所定圧ＰＲＥＦから、吸気圧ＰＢＡを減算することによって、圧力偏差ＤＰを算出する。次いで、エンジン回転数ＮＥ、吸入空気量ＱＡＩＲ及び、ステップ１１１で算出された圧力偏差ＤＰに応じ、図１６に示すマップを検索することによって、ポート噴射割合ＲＦ２の前記上限値ＲＦ２ＬＭＨの基本値ＢＡＳＥＬＭＨを算出する（ステップ１１２）。
【０１１５】
この基本値ＢＡＳＥＬＭＨを算出するためのマップとして、圧力偏差ＤＰが第１所定値ＤＰＲＥＦａ、第２所定値ＤＰＲＥＦｂ、第３所定値ＤＰＲＥＦｃ及び第４所定値ＤＰＲＥＦｄであるときにそれぞれ用いられる４つのマップが設定されており、図１６は、ＤＰがＤＰＲＥＦａであるときに用いられるマップを示している。また、第１〜第４所定値ＤＰＲＥＦａ〜ＤＰＲＥＦｄの大小関係は、ＤＰＲＥＦａ＞ＤＰＲＥＦｂ＞ＤＰＲＥＦｃ＞ＤＰＲＥＦｄに設定されている。
【０１１６】
また、図１６に示すように、基本値ＢＡＳＥＬＭＨを算出するためのマップでは、エンジン回転数ＮＥ及び吸入空気量ＱＡＩＲで規定される複数の領域αａ、βａ、γａ及びδａが設定されており、ＮＥ及びＱＡＩＲが領域αａ、βａ、γａ及びδａにそれぞれあるときには、基本値ＢＡＳＥＬＭＨは、所定の第１、第２、第３及び第４基本値ＢＡＳＥαａ、ＢＡＳＥβａ、ＢＡＳＥγａ、ＢＡＳＥδａにそれぞれ設定される。なお、図１６に示すマップは、ＤＰがＤＰＲＥＦａであるときに用いられるものである。図示しないものの、ＤＰがＤＰＲＥＦｂであるときに用いられるマップでは、領域αｂ、βｂ、γｂ及びδｂが設定されており、ＮＥ及びＱＡＩＲがこれらの領域αｂ、βｂ、γｂ及びδｂにそれぞれあるときには、基本値ＢＡＳＥＬＭＨは、所定の第１、第２、第３及び第４基本値ＢＡＳＥαｂ、ＢＡＳＥβｂ、ＢＡＳＥγｂ、ＢＡＳＥδｂにそれぞれ設定される。これらの第１〜第４基本値ＢＡＳＥαｂ〜ＢＡＳＥδｂは、上記の第１〜第４基本値ＢＡＳＥαａ〜ＢＡＳＥδａよりも小さな値にそれぞれ設定されている。
【０１１７】
また、ＤＰがＤＰＲＥＦｃであるときに用いられるマップでは、領域αｃ、βｃ、γｃ及びδｃが設定されており、ＮＥ及びＱＡＩＲがこれらの領域αｃ、βｃ、γｃ及びδｃにそれぞれあるときには、基本値ＢＡＳＥＬＭＨは、所定の第１、第２、第３及び第４基本値ＢＡＳＥαｃ、ＢＡＳＥβｃ、ＢＡＳＥγｃ、ＢＡＳＥδｃにそれぞれ設定される。これらの第１〜第４基本値ＢＡＳＥαｃ〜ＢＡＳＥδｃは、上記の第１〜第４基本値ＢＡＳＥαｂ〜ＢＡＳＥδｂよりも小さな値にそれぞれ設定されている。さらに、ＤＰがＤＰＲＥＦｄであるときに用いられるマップでは、領域αｄ、βｄ、γｄ及びδｄが設定されており、ＮＥ及びＱＡＩＲがこれらの領域αｄ、βｄ、γｄ及びδｄにそれぞれあるときには、基本値ＢＡＳＥＬＭＨは、所定の第１、第２、第３及び第４基本値ＢＡＳＥαｄ、ＢＡＳＥβｄ、ＢＡＳＥγｄ、ＢＡＳＥδｄにそれぞれ設定される。これらの第１〜第４基本値ＢＡＳＥαｄ〜ＢＡＳＥδｄは、上記の第１〜第４基本値ＢＡＳＥαｃ〜ＢＡＳＥδｃよりも小さな値にそれぞれ設定されている。
【０１１８】
以上のように、基本値ＢＡＳＥＬＭＨは、圧力偏差ＤＰが小さいほど、より小さな値に設定される。これは、圧力偏差ＤＰが小さいほど、すなわち、ポート噴射弁７によるエタノールＥの噴射圧が吸気ポート４ａにおける圧力に対して低くなるほど、ポート噴射弁７の同じ開弁時間に対して、噴射されるポート噴射量がより少なくなるためである。なお、圧力偏差ＤＰが第１〜第４所定値ＤＰＲＥＦａ〜ＤＰＲＥＦｄのいずれとも異なるときには、基本値ＢＡＳＥＬＭＨは補間演算により算出される。
【０１１９】
また、上記の４つのマップにおいて、領域αａ〜αｄは、エンジン回転数ＮＥ及び吸入空気量ＱＡＩＲで表されるエンジン３の出力（以下「エンジン出力」という）が極めて高い極高出力領域に設定され、領域βａ〜βｄは、エンジン出力が比較的高く、かつ、領域αａ〜αｄよりも低い高出力領域にそれぞれ設定されている。また、領域γａ〜γｄは、エンジン出力が中で、かつ、領域βａ〜βｄよりも低い中出力領域にそれぞれ設定されており、領域δａ〜δｄは、エンジン出力が低から中で、かつ、領域γａ〜γｄよりも低い低中出力領域にそれぞれ設定されている。さらに、第１〜第４基本値ＢＡＳＥαａ〜ＢＡＳＥδａの大小関係は、ＢＡＳＥαａ＜ＢＡＳＥβａ＜ＢＡＳＥγａ＜ＢＡＳＥδａに設定されており、第１〜第４基本値ＢＡＳＥαｂ〜ＢＡＳＥδｂ、ＢＡＳＥαｃ〜ＢＡＳＥδｃ、及びＢＡＳＥαｄ〜ＢＡＳＥδｄの大小関係は、ＢＡＳＥαｂ＜ＢＡＳＥβｂ＜ＢＡＳＥγｂ＜ＢＡＳＥδｂ、ＢＡＳＥαｃ＜ＢＡＳＥβｃ＜ＢＡＳＥγｃ＜ＢＡＳＥδｃ、及びＢＡＳＥαｄ＜ＢＡＳＥβｄ＜ＢＡＳＥγｄ＜ＢＡＳＥδｄにそれぞれ設定されている。以上により、基本値ＢＡＳＥＬＭＨは、エンジン出力が高いほど、より小さな値に算出される。これは次の理由による。
【０１２０】
すなわち、エンジン出力が高く、エンジン回転数ＮＥが高いほど、エンジン３の１燃焼サイクル当たりの時間が短くなることにより、ポート噴射弁７から噴射されたエタノールＥを燃焼室３ｄで燃焼させることが可能なポート噴射弁７の開弁期間が短くなることで、ポート噴射弁７から実質的に噴射することが可能な燃料量が、より少なくなるためである。また、前述した目標筒内噴射量ＱＩＮＪ１の算出手法から明らかなように、ポート噴射割合ＲＦ２が大きいほど、筒内噴射弁６の筒内噴射量がより少なくなる。これにより、筒内噴射弁６の噴射孔部分がガソリンＧで冷却されにくくなることによって、筒内噴射弁６の噴射孔部分の温度（以下「先端温度」という）がより高くなる結果、筒内噴射弁６の噴射孔部分に、デポジットの前駆物質が凝集し、デポジットが堆積しやすくなる。このような傾向は、エンジン出力が高く、吸入空気量ＱＡＩＲが大きいほど、燃焼室３ｄ内の温度が高くなるため、より顕著になる。このデポジットの堆積を防止すべく、エンジン出力が高いほど、ポート噴射弁７のポート噴射割合ＲＦ２をより小さな値に制限することによって、筒内噴射弁６の筒内噴射量をより多くするためである。
【０１２１】
なお、最も大きな値に設定されている第４基本値ＢＡＳＥδａは、エタノールＥを節約するために、値１．０よりも小さな値に設定されている。また、上述した基本値ＢＡＳＥＬＭＨの設定において、吸入空気量ＱＡＩＲに代えて、筒内噴射弁６の先端温度と相関する他の適当なパラメータ、例えばエンジン水温ＴＷなどを用いてもよい。
【０１２２】
前記ステップ１１２に続くステップ１１３では、ノック強度ＫＮＯＣＫに応じ、所定のマップ（図示せず）を検索することによって、第１補正係数ＣＯＬＭＨ１を算出する。第１補正係数ＣＯＬＭＨ１は、上限値ＲＦ２ＬＭＨを算出するために、基本値ＢＡＳＥＬＭＨを補正するための補正係数として用いられるものである。上記のマップでは、第１補正係数ＣＯＬＭＨ１は、ノック強度ＫＮＯＣＫが高いほど、値１．０以上のより大きな値に設定されている。これは、ノック強度ＫＮＯＣＫが高いほど、エンジン３のノッキングを適切に抑制するために、ポート噴射割合ＲＦ２の制限を緩和するためである。
【０１２３】
次いで、エンジン回転数ＮＥ及び吸入空気量ＱＡＩＲに応じ、所定のマップ（図示せず）を検索することによって、点火時期ＩＧの前記上限値ＩＧＬＭＨ（遅角側の制限値）を算出する（ステップ１１４）。このマップでは、上限値ＩＧＬＭＨは、点火時期ＩＧの遅角化によるエンジン３の排ガスの過熱化や燃焼の不安定化を防止できるような値に設定されており、同じＮＥ及びＱＡＩＲに対して、前記暫定点火時期ＩＧＴＥＭよりも大きな値（遅角側の値）に設定されている。
【０１２４】
次に、図８や図１０で算出された点火時期ＩＧが上記ステップ１１４で算出された上限値ＩＧＬＭＨよりも小さいか否かを判別する（ステップ１１５）。この答がＹＥＳ（ＩＧ＜ＩＧＬＭＨ）のとき、すなわち、図８の前記ステップ３５及び３６で点火時期ＩＧが上限値ＩＧＬＭＨに制限されないときには、第２補正係数ＣＯＬＭＨ２を値１．０に設定し（ステップ１１６）、ステップ１１８に進む。この第２補正係数ＣＯＬＭＨ２は、前記第１補正係数ＣＯＬＭＨ１と同様、上限値ＲＦ２ＬＭＨを算出するために、基本値ＢＡＳＥＬＭＨを補正するための補正係数として用いられるものである。
【０１２５】
一方、上記ステップ１１５の答がＮＯ（ＩＧ≧ＩＧＬＭＨ）のとき、すなわち、点火時期ＩＧが上限値ＩＧＬＭＨに制限されるときには、第２補正係数ＣＯＬＭＨ２を値１．０よりも大きな第１所定値ＣＯＬＭＲＥ１に設定し（ステップ１１７）、ステップ１１８に進む。以上のように、第２補正係数ＣＯＬＭＨ２を用いた基本値ＢＡＳＥＬＭＨの補正は、点火時期ＩＧが上限値ＩＧＬＭＨに制限されるときに限って行われ、当該補正により、基本値ＢＡＳＥＬＭＨは増大される。
【０１２６】
ステップ１１６又は１１７に続くステップ１１８では、先端温度ＴＥＤＩ（筒内噴射弁６の噴射孔部分の温度）が所定の上限温度ＴＥＬＭＨよりも低いか否かを判別する。先端温度ＴＥＤＩは、例えば、サーミスタなどで構成されたセンサ（図示せず）によって検出される。あるいは、本出願人による特開２０１５−１６９１８４号公報に開示されているように、筒内噴射弁６の噴射孔部分の温度に影響を及ぼす各種のパラメータ、例えば、エンジン回転数ＮＥ、吸入空気量ＧＡＩＲや、点火時期ＩＧ、エンジン水温ＴＷ、筒内噴射弁６の噴射時間などに応じて算出してもよい。
【０１２７】
上記の上限温度ＴＥＬＭＨは、筒内噴射弁６の噴射孔部分にデポジットが発生し、かつ、筒内噴射弁６の噴射孔部分が過熱化するような温度よりも若干、低い温度に設定されている。このステップ１１８の答がＹＥＳ（ＴＥＤＩ＜ＴＥＬＭＨ）のときには、第３補正係数ＣＯＬＭＨ３を値１．０に設定し（ステップ１１９）、前記ステップ９１に進む。この第３補正係数ＣＯＬＭＨ３は、前記第１補正係数ＣＯＬＭＨ１と同様、上限値ＲＦ２ＬＭＨを算出するために、基本値ＢＡＳＥＬＭＨを補正するための補正係数として用いられるものである。
【０１２８】
一方、ステップ１１８の答がＮＯ（ＴＥＤＩ≧ＴＥＬＭＨ）のときには、第３補正係数ＣＯＬＭＨ３を値１．０よりも小さな第２所定値ＣＯＬＭＲＥ２に設定し（ステップ１２０）、ステップ９１に進む。以上のように、第３補正係数ＣＯＬＭＨ３を用いた基本値ＢＡＳＥＬＭＨの補正は、先端温度ＴＥＤＩが上限温度ＴＥＬＭＨ以上であるときに限って行われ、当該補正により、基本値ＢＡＳＥＬＭＨは減少される。
【０１２９】
図１５及び図１７に示すように、第２実施形態においても、前記ステップ９２に続いて前記ステップ９３〜９９が実行され、これらのステップ９７〜９９において、リザーバエタノール残量ＱＲＥＲＦ２が算出される。図１７の前記ステップ９４の答がＮＯのときには、第１実施形態の場合と異なり、第４補正係数ＣＯＬＭＨ４を値１．０に設定し（ステップ１３１）、後述する図１９のステップ１４１に進む。この第４補正係数ＣＯＬＭＨ４は、前記第１補正係数ＣＯＬＭＨ１と同様、上限値ＲＦ２ＬＭＨを算出するために、基本値ＢＡＳＥＬＭＨを補正するための補正係数として用いられるものである。
【０１３０】
また、図１７のステップ９７、９８又は９９に続くステップ１３２では、算出されたリザーバエタノール残量ＱＲＥＲＦ２に応じ、図１８に示すマップを検索することによって、第４補正係数ＣＯＬＭＨ４を算出する。図１８に示すように、このマップでは、第４補正係数ＣＯＬＭＨ４は、値１．０以下の正値に設定され、リザーバエタノール残量ＱＲＥＲＦ２が小さいほど、より小さな値に設定されており、ＱＲＥＲＦ２が値０のときに、値０に設定されている。これは、リザーバエタノール残量ＱＲＥＲＦ２が小さいほど、ポート噴射割合ＲＦ２の上限値ＲＦ２ＬＭＨをより小さな値に設定することによって、エタノールＥの消費を抑制するとともに、後述する上限要求トルクＴＲＥＱＬＩＭを用いたエンジン３の出力の制限を徐々に行うためである。なお、第４補正係数ＣＯＬＭＨ４を、リザーバエタノール残量ＱＲＥＲＦ２と所定値ＱＲＥＲＥＦとの比（ＱＲＥＲＦ２／ＱＲＥＲＥＦ）に応じて算出してもよい。
【０１３１】
ステップ１３１又は１３２に続く図１９のステップ１４１では、図１５の前記ステップ１１２で算出された基本値ＢＡＳＥＬＭＨに、ステップ１１３で算出された第１補正係数ＣＯＬＭＨ１と、ステップ１１６又は１１７で設定された第２補正係数ＣＯＬＭＨ２と、ステップ１１９又は１２０で設定された第３補正係数ＣＯＬＭＨ３と、ステップ１３１又は１３２で設定された第４補正係数ＣＯＬＭＨ４とを乗算することによって、上限値ＲＦ２ＬＭＨを算出する。当該算出により上限値ＲＦ２ＬＭＨは、値１．０以下に算出される。
【０１３２】
上記のステップ１４１が実行されると、算出された上限値ＲＦ２ＬＭＨは、ノッキング用制御処理における図７の前記ステップ２４において、ポート噴射割合ＲＦ２の制限に用いられる。また、図９及び図１１には図示しないものの、非ノッキング用制御処理における図９のステップ４３及び図１１のステップ８２での目標ポート噴射量ＱＩＮＪ２の算出に、算出された上限値ＲＦ２ＬＭＨ以下に制限されたポート噴射割合ＲＦ２が用いられる。
【０１３３】
ステップ１４１に続くステップ１４２では、図６の前記ステップ２及び３でそれぞれ算出された第１及び第２推定エタノール濃度ＥＬ１Ｅ、ＥＬ２Ｅ、及び上記ステップ１４１で算出された上限値ＲＦ２ＬＭＨを用い、次式（１）によって、筒内供給最大オクタン価ＥＬＣＭＡＸを算出する。この式（１）から明らかなように、筒内供給最大オクタン価ＥＬＣＭＡＸは、燃焼室３ｄ内に供給することが可能な燃料のエタノール濃度の最大値であり、燃焼室３ｄ内に供給することが可能な燃料のオクタン価の最大値に相当する。なお、筒内供給最大オクタン価ＥＬＣＭＡＸを、ＥＬ１Ｅ、ＥＬ２Ｅ及びＲＦ２ＬＭＨに応じたマップ検索により算出してもよい。
ＥＬＣＭＡＸ←ＥＬ１Ｅ（１−ＲＦ２ＬＭＨ）＋ＥＬ２Ｅ・ＲＦ２ＬＭＨ
……（１）
【０１３４】
次に、エンジン回転数ＮＥ及び算出された筒内供給最大オクタン価ＥＬＣＭＡＸに応じ、図２０に示すマップを検索することによって、上限要求トルクＴＲＥＱＬＩＭを算出する（ステップ１４３）。このマップとして、筒内供給最大オクタン価ＥＬＣＭＡＸが所定の第１最大オクタン価ＥＭＡＸ１、第２最大オクタン価ＥＭＡＸ２、及び第３最大オクタン価ＥＭＡＸ３であるときにそれぞれ上限要求トルクＴＲＥＱＬＩＭを算出するための３つのマップが設定されており、第１〜第３最大オクタン価ＥＭＡＸ１〜ＥＭＡＸ３の大小関係は、ＥＭＡＸ１＞ＥＭＡＸ２＞ＥＭＡＸ３に設定されている。なお、筒内供給最大オクタン価ＥＬＣＭＡＸが第１〜第３最大オクタン価ＥＭＡＸ１〜ＥＭＡＸ３のいずれでもないときには、上限要求トルクＴＲＥＱＬＩＭは補間演算により算出される。
【０１３５】
また、図１２に示すように、これらのマップでは、上限要求トルクＴＲＥＱＬＩＭは、筒内供給最大オクタン価ＥＬＣＭＡＸが小さいほど、より小さな値に設定されている。これにより、要求トルクＴＲＥＱは、筒内供給最大オクタン価ＥＬＣＭＡＸが小さいほど、より小さな値に制限される。また、上限要求トルクＴＲＥＱＬＩＭは、ポート噴射割合ＲＦ２が上限値ＲＦ２ＬＭＨに設定されているとき、すなわち、燃焼室３ｄに供給される燃料のエタノール成分の濃度が筒内供給最大オクタン価ＥＬＣＭＡＸに調整されているときに、エンジン３のノッキングが確実に抑制されるような最大のトルク値に、設定されている。
【０１３６】
さらに、上限要求トルクＴＲＥＱＬＩＭは、エンジン回転数ＮＥが所定の第１回転数ＮＥ１よりも低い極低回転領域では、ＮＥが高いほど、比較的大きな傾きで、より大きな値に設定され、ＮＥがＮＥ１以上でかつ所定の第２回転数ＮＥ２（＞ＮＥ１）よりも低い低〜高回転領域では、ＮＥが高いほど、比較的小さな傾きで、より大きな値に設定され、ＮＥがＮＥ２以上の高回転領域では、ＮＥが高いほど、比較的大きな傾きで、より小さな値に設定されている。このような上限要求トルクＴＲＥＱＬＩＭの設定は、エンジン回転数ＮＥとエンジン３の出力トルクとの関係に基づくものであり、一般的な内燃機関の回転数と出力トルクとの関係と同様である。
【０１３７】
また、上記ステップ１４３に次いで、前記ステップ１０４〜１０７を実行し、それにより、ステップ１４３で算出された上限要求トルクＴＲＥＱＬＩＭを用いた要求トルクＴＲＥＱの制限を行うとともに、要求トルクＴＲＥＱに基づく吸入空気量ＱＡＩＲの制御を実行した後、本処理を終了する。
【０１３８】
図２１は、第２実施形態による制御装置の動作例を示している。図２１に示すように、車両の左旋回に起因して第２燃料タンク傾斜角θが上限傾斜角θＬＭＴに達すると（時点ｔ１、図１７のステップ９３：ＹＥＳ）、リザーバエタノール残量ＱＲＥＲＦ２の算出が開始される（ステップ９７）。この場合、前述したようにθ≧θＬＭＴであることでタンク本体２２ｂ内のエタノールＥがリザーバ２２ｃ内に流入せず、また、リザーバ２２ｃ内のエタノールＥがポート噴射弁７による噴射によって消費されるため、リザーバエタノール残量ＱＲＥＲＦ２は、時間ｔの経過に伴って減少する（ステップ９８）。
【０１３９】
また、この場合、前述した第４補正係数ＣＯＬＭＨ４を算出するためのマップ（図１８）から明らかなように、リザーバエタノール残量ＱＲＥＲＦ２が小さくなるほど、ポート噴射割合ＲＦ２の上限値ＲＦ２ＬＭＨがより小さな値に算出される（図１９のステップ１４１）。これにより、エタノールＥの消費が抑えられ、リザーバエタノール残量ＱＲＥＲＦ２の減少速度が小さくなる。また、前記式（１）から明らかなように、上限値ＲＦ２ＬＭＨが小さくなるほど、筒内供給最大オクタン価ＥＬＣＭＡＸがより小さな値に算出される（ステップ１４２）。これに応じて、上限要求トルクＴＲＥＱＬＩＭは、より小さな値に算出されるとともに、筒内供給最大オクタン価ＥＬＣＭＡＸに対してエンジン３のノッキングが確実に抑制されるような最大のトルク値に、算出される（ステップ１４３）。以上により、エンジン３の出力（トルク）は、リザーバエタノール残量ＱＲＥＲＦ２が減少するのに応じて、徐々に制限される。
【０１４０】
そして、リザーバエタノール残量ＱＲＥＲＦ２が値０になると（時点ｔ２）、上限値ＲＦ２ＬＭＨは値０に算出され、それにより、ポート噴射割合ＲＦ２が値０に制限（設定）される。これにより、目標ポート噴射量ＱＩＮＪ２が値０に算出されることによって、ポート噴射弁７によるエタノールＥの噴射動作が停止されるとともに、総燃料噴射量ＱＩＮＪＴ分のガソリンＧが筒内噴射弁６から噴射される。また、上限値ＲＦ２ＬＭＨが値０に算出されるのに応じて、筒内供給最大オクタン価ＥＬＣＭＡＸが第１推定エタノール濃度ＥＬ１Ｅに算出される。上限要求トルクＴＲＥＱＬＩＭは、図２０に示すマップを用いた算出によって、ガソリンＧのみがエンジン３に供給されているとき（ＥＬＣＭＡＸ＝ＥＬ１Ｅ）にノッキングが確実に抑制されるような最大のトルク値に、算出される。
【０１４１】
以上のように、第２実施形態によれば、図２１などを参照して説明したように、第２燃料タンク傾斜角θが上限傾斜角θＬＭＴ以上である場合（図１７のステップ９３：ＹＥＳ）において、リザーバエタノール残量ＱＲＥＲＦ２が減少するのに応じて、エンジン３の出力が徐々に制限される（図１７のステップ１３２、図１８、図１９のステップ１４１〜１４３、１０４〜１０７）。したがって、エンジン３のノッキングを抑制しながら、エンジン３の出力の急な制限により運転者に違和感を与えるのを防止することができる。
【０１４２】
この場合、リザーバエタノール残量ＱＲＥＲＦ２が小さくなるほど、ポート噴射割合ＲＦ２の上限値ＲＦ２ＬＭＨがより小さな値に設定されるとともに、気筒３ａ内に供給可能な燃料のオクタン価の最大値に相当する筒内供給最大オクタン価ＥＬＣＭＡＸが、上限値ＲＦ２ＬＭＨなどに応じて算出される。また、エンジン３の出力の制限に用いられる上限要求トルクＴＲＥＱＬＩＭが、筒内供給最大オクタン価ＥＬＣＭＡＸに応じて算出される。以上により、上限要求トルクＴＲＥＱＬＩＭは、ポート噴射割合ＲＦ２が上限値ＲＦ２ＬＭＨに設定されているとき、すなわち、気筒３ａに供給される燃料のエタノール成分の濃度（オクタン価）が筒内供給最大オクタン価ＥＬＣＭＡＸに調整されているときに、エンジン３のノッキングが確実に抑制されるような最大のトルク値に設定される。したがって、リザーバ２２ｃ内のエタノールＥの消費量を、エンジン３の出力の制限に見合った大きさに抑えながら、エンジン３の出力を過剰に制限せずに、ノッキングを適切に抑制することができる。
【０１４３】
なお、本発明は、説明した第１及び第２実施形態（以下、総称して「実施形態」という）に限定されることなく、種々の態様で実施することができる。例えば、実施形態では、第２燃料タンク傾斜角θを検出しているが、センサで検出された車両の横加速度や、車両の操舵角、車両のヨーレートなどに基づいて算出してもよい。さらに、実施形態では、本発明における高オクタン価燃料タンクの傾斜状態として、第２燃料タンク傾斜角θを用いているが、他の適当なパラメータ、例えば、車両の横加速度や、車両の操舵角、車両のヨーレートなどを用いてもよい。また、実施形態では、リザーバエタノール残量ＱＲＥＲＦ２を算出しているが、センサで検出してもよく、その場合には、例えばフロート式や静電容量式のセンサなどが用いられる。
【０１４４】
さらに、実施形態では、本発明における内燃機関の出力の制限を、吸入空気量の制御に用いる要求トルクＴＲＥＱを低減補正することにより行っているが、目標吸入空気量ＱＡＯＢＪを低減補正することにより行ってもよく、あるいは、点火時期の遅角補正により行ってもよい。
【０１４５】
また、実施形態では、本発明における高オクタン価燃料タンクとして、吸入通路２２ｄがリザーバ２２ｃの底部の左側の壁面の前後方向の中央に設けられた第２燃料タンク２２を用いているが、吸入通路がリザーバの底部の右側の壁面の前後方向の中央、リザーバの底部の前側又は後側の壁面の左右方向の中央に設けられた燃料タンクを用いてもよい。リザーバの底部の前側又は後側の壁面に吸入通路が設けられた燃料タンクを用いた場合には、本発明における高オクタン価燃料タンクの傾斜状態として、例えば、車両の前後方向に延びる水平線に対する高オクタン価燃料タンクの後方又は前方への傾斜角や、車両の加速度又は減速度、アクセルペダルの開度又はブレーキペダルの開度などが用いられ、これらのパラメータは、センサで検出してもよく、あるいは算出（推定）してもよい。
【０１４６】
さらに、実施形態では、本発明における高オクタン価燃料タンクとして、リザーバ２２ｃが設けられた第２燃料タンク２２を用いているが、リザーバが設けられていない燃料タンクを用いてもよい。この場合、第１実施形態に関しては、例えば、取得された高オクタン価燃料タンクの傾斜角が所定値よりも大きく、かつ、取得された高オクタン価燃料タンク内の高オクタン価燃料の残量が所定の下限値に達したときに、高オクタン価燃料タンク内の高オクタン価燃料をポンプで吸入できないとして、内燃機関の出力が制限される。また、第２実施形態に関しては、例えば、取得された高オクタン価燃料タンクの傾斜角が、高オクタン価燃料の残量に基づく所定値よりも大きいときに、高オクタン価燃料をポンプで十分に吸入できないとして、高オクタン価燃料の残量が減少するのに応じて、内燃機関の出力が徐々に制限される。
【０１４７】
また、実施形態で説明したポート噴射割合ＲＦ２及び点火時期ＩＧの設定手法は、あくまで一例であり、本発明の趣旨の範囲内で、他の適当な設定手法を採用してもよいことは、もちろんである。さらに、実施形態では、第１及び第２エタノール濃度ＥＬ１、ＥＬ２を、第１及び第２濃度センサ３９、４０でそれぞれ検出しているが、例えば、次のようにして推定（算出）してもよい。すなわち、内燃機関の負荷が所定の低オクタン価判定領域にあるときに、低オクタン価燃料（ガソリンＧ）のみを内燃機関に供給するとともに、点火時期を通常の点火時期（暫定点火時期ＩＧＴＥＭ）から一旦、遅角側に変化させた後、進角側に徐々に変化させる。上記の低オクタン価判定領域は、内燃機関の点火時期を通常の点火時期よりも遅角側に制御するか、あるいは、低オクタン価燃料に加えて高オクタン価燃料（エタノールＥ）を内燃機関に供給しなければ、内燃機関のノッキングが発生するような負荷領域（以下「ノック領域」という）のうちの低負荷側の領域に設定される。上述したように点火時期を進角側に変化させているときに、内燃機関のノッキングの有無を検出し、ノッキングが発生した時点における点火時期、内燃機関の負荷、内燃機関の回転数、及び実行圧縮比などの内燃機関の運転状態を特定する複数の運転パラメータを取得するとともに、取得された運転パラメータに基づくマップ検索によって、第１エタノール濃度（低オクタン価燃料のオクタン価）を算出（推定）する。
【０１４８】
また、第２エタノール濃度（高オクタン価燃料のオクタン価）の推定は、次のようにして行われる。すなわち、内燃機関の負荷が、上記の低オクタン価判定領域よりも高負荷側の所定の高オクタン価判定領域にあるときに、低オクタン価燃料及び高オクタン価燃料の供給量を図９のステップ４２〜４５と同様にして制御するとともに、点火時期を通常の点火時期から進角側に変化させる。このように点火時期を進角側に変化させているときに、内燃機関のノッキングの有無を検出し、ノッキングが発生した時点におけるポート噴射割合ＲＦ２、第１エタノール濃度、点火時期、内燃機関の負荷、内燃機関の回転数、及び実行圧縮比などの内燃機関の運転状態を特定する複数の運転パラメータを取得するとともに、取得された運転パラメータに基づくマップ検索によって、第２エタノール濃度を算出（推定）する。
【０１４９】
あるいは、ガソリンＧとエタノールＥでは前述した量論混合比が異なるため、両者Ｇ、Ｅから成る混合燃料のエタノール濃度（オクタン価）が高いほど、空燃比ＬＡＦを所定値に維持するのに必要な燃料噴射量が大きくなる点に着目し、第１及び第２エタノール濃度を、次のようにして推定してもよい。すなわち、内燃機関の負荷が所定の非ノック領域にあり、かつ一定であるときに、前述した空燃比ＬＡＦに基づいて算出される補正係数ＫＩＮＪの移動平均値を算出し、この移動平均値を算出した時点における基本燃料噴射量ＱＩＮＪＢに、値１．０からポート噴射割合ＲＦ２を減算した値を乗算することによって、第１基準噴射量を算出する。上記の非ノック領域は、内燃機関に低オクタン価燃料のみを供給しても、内燃機関のノッキングが発生しないような低負荷側の領域に設定される。そして、算出された移動平均値、第１基準噴射量及び第１エタノール濃度の前回値に応じて、今回の第１エタノール濃度を算出（推定）する。
【０１５０】
また、第２エタノール濃度（高オクタン価燃料のオクタン価）の推定は、次のようにして行われる。すなわち、内燃機関の負荷が前記ノック領域にあり、かつ一定であるときに、前述した空燃比ＬＡＦに基づいて算出される補正係数ＫＩＮＪの移動平均値を算出し、この移動平均値を算出した時点における基本燃料噴射量ＱＩＮＪＢを、第２基準噴射量として設定する。そして、算出された移動平均値、第２基準噴射量、第１及び第２エタノール濃度の前回値に応じて、今回の第２エタノール濃度を算出（推定）する。
【０１５１】
また、実施形態では、ガソリンＧ及びエタノールＥのオクタン価として、第１及び第２推定エタノール濃度ＥＬ１Ｅ、ＥＬ２Ｅをそれぞれ算出しているが、検出された第１及び第２エタノール濃度ＥＬ１、ＥＬ２をそれぞれ用いてもよく、ＥＬ１Ｅ及びＥＬ２Ｅ又はＥＬ１及びＥＬ２に基づいて、ガソリンＧ及びエタノールＥのオクタン価そのものをそれぞれ算出してもよい。あるいは、第１及び第２エタノール濃度ＥＬ１、ＥＬ２に基づくオクタン価を表す検出信号を出力するセンサを用いて、ガソリンＧ及びエタノールＥのオクタン価をそれぞれ検出してもよい。さらに、第２実施形態で説明した上限値ＲＦ２ＬＭＨの算出手法は、あくまで一例であり、第１〜第３補正係数ＣＯＬＭＨ１〜ＣＯＬＭＨ３の少なくとも１つを省略したり、基本値ＢＡＳＥＬＭＨの算出手法を変更したりしてもよい。
【０１５２】
また、実施形態では、低オクタン価燃料としてのガソリンＧを気筒３ａ内に、高オクタン価燃料としてのエタノールＥを吸気ポート４ａに、それぞれ噴射しているが、これとは逆に、低オクタン価燃料を吸気ポートに、高オクタン価燃料を気筒内に、それぞれ噴射してもよい。あるいは、低オクタン価燃料及び高オクタン価燃料を、それらの割合を調整した状態で予め混合するとともに、混合した燃料を、単一の噴射弁を用いて気筒内に供給してもよい。
【０１５３】
さらに、実施形態は、低オクタン価燃料としてのガソリンＧからエタノール成分（高オクタン価成分）を分離することによって、高オクタン価燃料としてのエタノールＥが生成されるエンジン３に、本発明を適用した例であるが、本発明はこれに限らず、低オクタン価燃料と高オクタン価燃料が外部から別個の燃料タンクに補給される内燃機関に、適用してもよい。また、実施形態では、低オクタン価燃料及び高オクタン価燃料として、ガソリンＧ及びエタノールＥをそれぞれ用いているが、オクタン価が互いに異なる他の適当な燃料を用いてもよい。
【０１５４】
さらに、実施形態では、本発明における内燃機関は、車両用のエンジン３であるが、他の適当な産業用の内燃機関、例えば船舶用の内燃機関などでもよい。なお、これまでに述べた実施形態に関するバリエーションを適宜、組み合わせて適用してもよいことは、もちろんである。その他、本発明の趣旨の範囲内で、細部の構成を適宜、変更することが可能である。
【符号の説明】
【０１５５】
２  ＥＣＵ（残量取得手段、出力制限手段）
３  内燃機関
Ｇ  ガソリン（低オクタン価燃料）
Ｅ  エタノール（高オクタン価燃料）
２１  第１燃料タンク（低オクタン価燃料タンク）
２２  第２燃料タンク（高オクタン価燃料タンク）
４０  傾斜センサ（傾斜状態取得手段）
θ  第２燃料タンク傾斜角（高オクタン価燃料タンクの傾斜状態）
ＱＲＥＲＦ２  リザーバエタノール残量（高オクタン価燃料タンク内の高オクタン価燃料の残量）
ＱＬＭＬ  下限値
【図１】
0006651379.tif 000002
【図２】
0006651379.tif 000003
【図３】
0006651379.tif 000004
【図４】
0006651379.tif 000005
【図５】
0006651379.tif 000006
【図６】
0006651379.tif 000007
【図７】
0006651379.tif 000008
【図８】
0006651379.tif 000009
【図９】
0006651379.tif 000010
【図１０】
0006651379.tif 000011
【図１１】
0006651379.tif 000012
【図１２】
0006651379.tif 000013
【図１３】
0006651379.tif 000014
【図１４】
0006651379.tif 000015
【図１５】
0006651379.tif 000016
【図１６】
0006651379.tif 000017
【図１７】
0006651379.tif 000018
【図１８】
0006651379.tif 000019
【図１９】
0006651379.tif 000020
【図２０】
0006651379.tif 000021
【図２１】
0006651379.tif 000022