以下、図面を参照しながら、本発明の好ましい実施形態を詳細に説明する。図1に示す、本発明を適用した内燃機関(以下「エンジン」という)3は、4つの気筒C(1つのみ図示)を有するガソリンエンジンであり、車両(図示せず)に搭載されている。エンジン3の各気筒Cには、ピストン3bとシリンダヘッド3cの間に燃焼室3dが形成されている。この燃焼室3dには、吸気通路4および排気通路5が接続されるとともに、吸気通路4の吸気ポート4aおよび排気通路5の排気ポート5aには、これらを開閉する吸気弁6および排気弁7がそれぞれ設けられている。
また、エンジン3には、吸気弁6を開閉するとともに、そのバルブタイミングを切り換えるための吸気V/T切換機構13と、排気弁7を開閉するとともに、そのバルブタイミングを切り換えるための排気V/T切換機構14が設けられている。これらの吸気および排気V/T切換機構13、14は、互いに同じ構成を有するので、以下、これらを代表して、吸気V/T切換機構13の構成を説明する。
吸気V/T切換機構13は、吸気弁6のバルブタイミングを、低速バルブタイミングおよび高速バルブタイミングの2段階に切り換えるものである。図3に示すように、吸気V/T切換機構13は、吸気カムシャフト31に一体に並列した状態で設けられた低速カム32aおよび高速カム32bと、ロッカアームシャフト33に回動自在に取り付けられ、低速カム32aおよび高速カム32bによってそれぞれ押圧される低速ロッカアーム34aおよび高速ロッカアーム34bを備えている。低速ロッカアーム34aは吸気弁6に当接している。
また、吸気V/T切換機構13は、上記の2つのロッカアーム34a、34bに選択的に係合し、それらの連結・遮断状態を切り換える切換ピン35と、この切換ピン35を駆動する駆動装置を備えている。図示しないが、この駆動装置は、エンジン3で駆動される油圧ポンプから供給される作動油を駆動源とする油圧式のものであり、その油路に設けられた吸気V/T制御弁36(図2参照)により、切換ピン35に作用する油圧を制御することによって、切換ピン35を位置決めする。吸気V/T制御弁36は、電磁弁で構成されており、その動作はECU2によって制御される。
以上の構成により、図3(a)に示すように、2つのロッカアーム34a、34bが互いに遮断され、独立して回動するときには、吸気弁6は、低速カム32aのカムプロフィールに応じた所定の小さなリフトを有するバルブリフト曲線(図4(b)(c)参照)に従って駆動され、吸気弁6のバルブタイミング(以下「吸気V/T」という)は、低速バルブタイミング(低速V/T)に設定される。
一方、同図(b)に示すように、切換ピン35によって低速ロッカアーム34aと高速ロッカアーム34bが互いに連結されているときには、吸気弁6は、高速カム32bのカムプロフィールに応じた所定の大きなリフトを有するバルブリフト曲線(図4(a)(d)参照)に従って駆動され、吸気V/Tは高速バルブタイミング(高速V/T)に設定される。
前述したように、排気V/T切換機構14は、吸気V/T切換機構13とまったく同じ構成を有しており、排気弁7のバルブタイミングを切り換えるための排気V/T制御弁37(図2参照)を備えている。
したがって、排気V/T制御弁37をECU2で制御することにより、排気弁7のバルブタイミング(以下「排気V/T」という)は、排気弁7が所定の小さなリフトを有するバルブリフト曲線(図4(b)(d)参照)に従って駆動される低速バルブタイミング(低速V/T)と、所定の大きなリフトを有するバルブリフト曲線(図4(a)(c)参照)に従って駆動される高速バルブタイミング(高速V/T)に、切り換えて設定される。
また、上記のように吸気V/Tと排気V/Tが互いに独立して設定される結果、両者の組合わせパターン(以下「V/Tパターン」という)は、図4に示すパターンA〜Dの4通りになる。
例えば、エンジン3が高負荷運転状態のときには、V/Tパターンが、排気V/Tおよび吸気V/Tがいずれも高速V/TであるパターンAに設定されるとともに、後述する火花点火燃焼が行われることで、高出力が得られる。一方、エンジン3が低回転・低負荷運転状態のときには、V/Tパターンが、排気V/Tおよび吸気V/Tがいずれも低速V/TであるパターンBに設定される。これにより、排気弁7の閉弁タイミングが早くなり(早閉じ)、吸気弁6と排気弁7の閉弁期間がオーバーラップする、いわゆる「負のオーバーラップ」が生じることによって、燃焼室3d内に既燃ガスが残留する内部EGRを得ながら圧縮着火燃焼が行われることで、燃費の向上が図られる。
さらに、エンジン3には、気筒Cごとに、点火プラグ17、ポート燃料噴射弁18および筒内燃料噴射弁19が設けられている。点火プラグ17は、シリンダヘッド3cに取り付けられており、火花を発生させることにより、気筒C内の混合気に点火を行う。ポート燃料噴射弁18は、吸気通路4の吸気マニホルドに取り付けられており、吸気ポート4aに向かって燃料を噴射する。また、筒内燃料噴射弁19は、シリンダヘッド3cに取り付けられており、気筒C内に燃料を直接、噴射する。
これらの点火プラグ17の点火時期、ポート燃料噴射弁18および筒内燃料噴射弁19のそれぞれの燃料噴射量および燃料噴射時期は、ECU2によって設定されるとともに、ECU2からの制御信号によって制御される。
また、エンジン3のクランクシャフト3aには、クランク角センサ20および気筒判別センサ21(図2参照)が設けられている。クランクシャフト3aの回転に伴い、クランク角センサ20は、パルス信号であるCRK信号およびTDC信号を出力し、気筒判別センサ21は、気筒Cを判別するためのパルス信号であるCYL信号を出力する。
CRK信号は、所定のクランク角(例えば1°)ごとに出力される。TDC信号は、いずれかの気筒Cにおいてピストン3bが吸気行程の開始時の上死点よりも若干、手前の所定のクランク角位置にあることを表す信号であり、本実施形態のようにエンジン3が4気筒の場合には、クランク角180゜ごとに出力される。
また、CYL信号は、クランク角720゜ごとに出力される。ECU2は、CRK信号に基づき、エンジン3の回転数(以下「エンジン回転数」という)NEを算出するとともに、上記の3つの信号に基づき、排気行程の開始時の下死点を基準位置(=0°)として、クランク角CAを気筒Cごとに算出する。
また、各気筒Cには、筒内圧センサ22が設けられている(図2参照)。筒内圧センサ22は、気筒C内の圧力(以下「筒内圧」という)PCYLの変化量ΔPCYLを表す検出信号を、ECU2に出力する。ECU2は、この検出信号に基づき、筒内圧PCYLを算出する。
また、吸気通路4のスロットル弁16よりも上流側には、エアフローセンサ23が設けられている。エアフローセンサ23は、吸気通路4を流れる空気の質量(以下「吸入空気量」という)GAIRを検出し、その検出信号をECU2に出力する。さらに、ECU2には、水温センサ24からエンジン3の冷却水の温度(以下「エンジン水温」という)TWを表す検出信号が、アクセル開度センサ25から、車両のアクセルペダル(図示せず)の踏み込み量(以下「アクセル開度」という)APを表す検出信号が、それぞれ出力される(図2参照)。
ECU2は、CPU、RAM、ROMおよびI/Oインターフェース(いずれも図示せず)などから成るマイクロコンピュータで構成されている。ECU2は、前述した各種のセンサ20〜25の検出信号などに応じて、エンジン3の燃焼モードを決定するとともに、決定された燃焼モードに応じて、吸気・排気V/T切換機構13、14を介した吸気V/Tおよび排気V/Tの制御や、ポート燃料噴射弁18および筒内燃料噴射弁19からの燃料噴射量および燃料噴射時期の制御などを含むエンジン3の制御処理を実行する。
なお、本実施形態では、ECU2は、燃焼モード決定手段、バルブタイミング制御手段、吸気バルブタイミング検出手段、排気バルブタイミング検出手段、燃料供給手段、圧縮着火燃焼実行手段、第2燃料噴射量増量手段、第2燃料噴射量減量手段、第1燃料噴射時期補正手段および動作遅れパラメータ算出手段に相当する。
上記の燃焼モードには、混合気を圧縮着火によって燃焼させる圧縮着火燃焼を行う圧縮着火燃焼モード(以下、それぞれ「HCCI燃焼」「HCCI燃焼モード」という)と、混合気を点火プラグ17から発生した火花による点火によって燃焼させる火花点火燃焼を行う火花点火燃焼モード(以下、それぞれ「SI燃焼」「SI燃焼モード」という)が含まれる。
このSI燃焼モードでは、吸気・排気V/T切換機構13、14を制御することで、V/Tパターンを、吸気V/Tおよび排気V/Tがいずれも高速V/TであるパターンAに設定するとともに、吸気行程においてポート燃料噴射弁18から燃料を噴射することによって、燃焼室3d内に比較的リッチな混合気を生成する。そして、圧縮行程において点火プラグ17から火花を発生させ、この火花による点火で混合気が燃焼することによって、SI燃焼が行われる。
また、HCCI燃焼モードでは、V/Tパターンを、吸気V/Tおよび排気V/Tがいずれも低速V/TであるパターンBに設定するとともに、吸気行程においてポート燃料噴射弁18から比較的少量の燃料を噴射することによって、SI燃焼モードの場合よりもリーンな混合気を燃焼室3d内に生成する。そして、この混合気を圧縮行程での圧縮による自着火によって燃焼させ、さらに、その燃焼により発生した熱によって、残りの混合気の自着火を誘発し、燃焼させることにより、HCCI燃焼が行われる。
さらに、SI燃焼モードとHCCI燃焼モードとの間の燃焼モードの切換時には、V/Tパターンを、吸気V/Tが高速V/Tで、排気V/Tが低速V/TであるパターンDを経由するように制御するとともに、吸気V/Tおよび排気V/Tが切換先のV/Tに切り換えられるまでの間、HCCI燃焼が行われる(図4参照)。具体的には、吸気行程においてポート燃料噴射弁18から燃料を噴射すること(メイン噴射)によって、均質な混合気を燃焼室3d内に生成するとともに、圧縮行程において筒内燃料噴射弁19から残りの燃料を気筒C内に直接、噴射すること(付加噴射)によって、すでに生成された混合気中に火種を形成する。そして、この火種を圧縮行程での圧縮によって燃焼させ、その燃焼を周囲の混合気に及ぼすことにより、HCCI燃焼が行われる。
図5は、ECU2によって実行される、第1実施形態によるエンジン3の制御処理のメインフローを示す。本処理は、TDC信号の発生に同期して実行される。本処理では、まずステップ1(「S1」と図示。以下同じ)において、燃焼モードの決定処理を実行する。
この燃焼モード決定処理は、エンジン3の燃焼モードをSI燃焼モードまたはHCCI燃焼モードのいずれとするかを決定するものであり、図6はそのサブルーチンを示す。本処理では、まずステップ11において、エンジン水温TWが所定温度TWHCCIよりも高いか否かを判別する。この所定温度TWHCCIは、例えば、HCCI燃焼を実行可能な冷却水の温度範囲の下限値に設定されている。
このステップ11の答がNOで、TW≦TWHCCIのときには、エンジン3の燃焼モードをSI燃焼モードに決定し、そのことを表すために、HCCI燃焼モードフラグF_HCCIを「0」にセットし(ステップ12)、本処理を終了する。
前記ステップ11の答がYESのときには、エンジン3がHCCI燃焼を実行可能なHCCI領域にあるか否かを判別する(ステップ13)。この判別は、図7に示すマップを用い、エンジン回転数NEおよび要求トルクPMCMDが、このマップ中のHCCI領域にあるか否かを判別することによって行われる。このマップでは、HCCI領域は、エンジン回転数NEおよび要求トルクPMCMDがいずれも小さい低回転・低負荷領域に設定されている。なお、要求トルクPMCMDは、エンジン回転数NEおよびアクセル開度APに応じ、所定のマップ(図示せず)を検索することによって算出される。
このステップ13の答がNOで、エンジン3がHCCI領域にないときには、燃焼モードをSI燃焼モードに決定し、前記ステップ12において、HCCI燃焼モードフラグF_HCCIを「0」にセットする。
一方、前記ステップ13の答がYESで、エンジン3がHCCI領域にあるときには、燃焼モードをHCCI燃焼モードに決定し、そのことを表すために、HCCI燃焼モードフラグF_HCCIを「1」にセットし(ステップ14)、本処理を終了する。
図5に戻り、前記ステップ1に続くステップ2では、V/T制御処理を実行する。このV/T制御処理は、ステップ1で決定された燃焼モードと、後述するようにして判定された実際の吸気V/Tおよび排気V/Tに応じて、吸気・排気V/T切換機構13、14を駆動し、吸気V/Tおよび排気V/Tを制御する処理である。
このV/T制御処理の前に、実際の吸気V/Tおよび排気V/Tを判定する処理を、図8を参照して説明する。本処理は、CRK信号の発生に同期して、気筒Cごとに実行される。本処理では、まずステップ21において、そのときのクランク角CAが、吸気行程の初期付近の所定の基準角CAREFINに等しいか否かを判別する。この答がYESで、CA=CAREFINのときには、検出された筒内圧PCYLが吸気V/Tの判定用の所定値PREFIN以下であるか否かを判別する(ステップ22)。
この答がYESのときには、吸気行程の初期における筒内圧PCYLが小さいことから、このタイミングで吸気弁6が比較的大きく開いていると推定されるため、吸気V/Tが高速V/Tであると判定し(図4参照)、そのことを表すために、実吸気V/TフラグF_VTECINAを「0」にセットする(ステップ23)。一方、上記ステップ22の答がNOのときには、吸気V/Tが低速V/Tであると判定し、実吸気V/TフラグF_VTECINAを「1」にセットする(ステップ24)。
前記ステップ21の答がNOのときには、クランク角CAが、排気行程の終期付近の所定の基準角CAREFEXに等しいか否かを判別する(ステップ25)。この答がNOのときには、そのまま本処理を終了する一方、YESで、CA=CAREFEXのときには、筒内圧PCYLが排気V/Tの判定用の所定値PREFEX以下であるか否かを判別する(ステップ26)。
この答がYESのときには、排気行程の終期における筒内圧PCYLが小さいことから、このタイミングで排気弁7がまだ開いている(早閉じではない)と推定されるため、排気V/Tが高速V/Tであると判定し(図4参照)、そのことを表すために、実排気V/TフラグF_VTECEXAを「0」にセットし(ステップ27)、本処理を終了する。一方、上記ステップ26の答がNOのときには、排気V/Tが低速V/Tであると判定し、実排気V/TフラグF_VTECEXAを「1」にセットした(ステップ28)後、本処理を終了する。
図9は、前記ステップ2で実行されるV/T制御処理のサブルーチンである。本処理では、まずステップ31において、HCCI燃焼モードフラグF_HCCIが「1」であるか否かを判定する。この答がYESで、決定された燃焼モードがHCCI燃焼モードのときには、排気V/T指令フラグF_VTECEXSを「1」にセットする(ステップ32)。このようにF_VTECEXS=1にセットされると、ECU2から排気V/T制御弁37に、排気V/TをHCCI燃焼モード用の低速V/Tに設定するための制御信号が出力され、低速V/Tへの排気V/Tの切換動作が開始される。
上記ステップ32に続くステップ33では、すべての気筒Cについて、実排気V/TフラグF_VTECEXAが「1」であるか否かを判別する。この答がNOのとき、すなわち、上記ステップ32において低速V/Tへの排気V/Tの切換動作が開始された後、少なくとも1つの気筒Cにおいて、排気V/Tの切換がまだ完了していないときには、そのまま本処理を終了する。
一方、上記ステップ33の答がYESで、すべての気筒Cにおいて、低速V/Tへの排気V/Tの切換が完了したときには、吸気V/T指令フラグF_VTECINSを「1」にセットし(ステップ34)、本処理を終了する。このようにF_VTECINS=1にセットされると、ECU2から吸気V/T制御弁36に、吸気V/TをHCCI燃焼モード用の低速V/Tに設定するための制御信号が出力され、低速V/Tへの吸気V/Tの切換動作が開始される。
前記ステップ31の答がNOで、決定された燃焼モードがSI燃焼モードのときには、吸気V/T指令フラグF_VTECINSを「0」にセットする(ステップ35)。このようにF_VTECINS=0にセットされると、ECU2から吸気V/T制御弁36に、吸気V/TをSI燃焼モード用の高速V/Tに設定するための制御信号が出力され、高速V/Tへの吸気V/Tの切換動作が開始される。
上記ステップ35に続くステップ36では、すべての気筒Cについて、実吸気V/TフラグF_VTECINAが「0」であるか否かを判別する。この答がNOのとき、すなわち、上記ステップ35において高速V/Tへの吸気V/Tの切換動作が開始された後、少なくとも1つの気筒Cにおいて、吸気V/Tの切換がまだ完了していないときには、そのまま本処理を終了する。
一方、上記ステップ36の答がYESで、すべての気筒Cにおいて、高速V/Tへの吸気V/Tの切換が完了したときには、排気V/T指令フラグF_VTECEXSを「0」にセットし(ステップ37)、本処理を終了する。このようにF_VTECEXS=0にセットされると、ECU2から排気V/T制御弁37に、排気V/TをSI燃焼モード用の高速V/Tに設定するための制御信号が出力され、高速V/Tへの排気V/Tの切換動作が開始される。
以上のV/T制御から明らかなように、また図10に示すように、SI燃焼モードからHCCI燃焼モードへの燃焼モードの切換時には(F_HCCI:0→1)、その決定と同時に低速V/Tへの排気V/Tの切換動作が開始される(F_VTECEXS←1、t1)。その後、すべての気筒Cにおいて、排気V/Tの切換が実際に完了したと判定された時点で(F_VTECEXA=1、t2)、低速V/Tへの吸気V/Tの切換動作が開始される(F_VTECINS←1)。その結果、図10に示すように、SI燃焼モードからHCCI燃焼モードへの燃焼モードの切換時には、V/Tパターンは、A→D→Bの順で推移する。したがって、V/Tパターンが、燃焼が不安定になりやすいパターンCになることを確実に回避でき、安定した燃焼状態を確保することができる。
また、HCCI燃焼モードからSI燃焼モードへの燃焼モードの切換時には(F_HCCI:1→0)、その決定と同時に高速V/Tへの吸気V/Tの切換動作が開始される(F_VTECINS←0、t4)。その後、すべての気筒Cにおいて、吸気V/Tの切換が実際に完了したと判定された時点で(F_VTECINA=0、t5)、高速V/Tへの排気V/Tの切換動作が開始される(F_VTECEXS←0)。その結果、図10に示すように、HCCI燃焼モードからSI燃焼モードへの燃焼モードの切換時には、V/Tパターンは、B→D→Aの順で推移する。したがって、この切換時においても、V/Tパターンが、燃焼が不安定になりやすいパターンCになることを確実に回避でき、安定した燃焼状態を確保することができる。
図5に戻り、前記ステップ2に続くステップ3では、V/T遷移判定処理を実行する。このV/T遷移判定処理は、燃焼モードの切換に伴い、吸気V/Tおよび排気V/Tが切換先の燃焼モード用のV/Tに切り換えられる途中(遷移中)であるか否かを判定する処理である。図11はそのサブルーチンを示す。
本処理では、まずステップ41において、HCCI燃焼モードフラグF_HCCIが「1」であるか否かを判別する。この答がYESで、燃焼モードがHCCI燃焼モードのときには、実吸気V/TフラグF_VTECINAが「0」であるか否かを判別する(ステップ42)。この答がYESのときには、前述したV/T制御処理により、HCCI燃焼モードへの切換時に遅れて切換動作が開始される吸気V/Tが、まだHCCI燃焼モード用の低速V/Tに切り換わっていないため、V/T遷移中であるとして、そのことを表すために、V/T遷移中フラグF_CMCGTRを「1」にセットし(ステップ43)、本処理を終了する。
一方、前記ステップ42の答がNOのときには、吸気V/TがすでにHCCI燃焼モード用の低速V/Tに切り換わっているため、V/T遷移中でないとして、V/T遷移中フラグF_CMCGTRを「0」にセットし(ステップ44)、本処理を終了する。
前記ステップ41の答がNOで、燃焼モードがSI燃焼モードのときには、実排気V/TフラグF_VTECEXAが「1」であるか否かを判別する(ステップ45)。この答がYESのときには、V/T制御処理により、SI燃焼モードへの切換時に遅れて切換動作が開始される排気V/Tが、まだSI燃焼モード用の高速V/Tに切り換わっていないため、V/T遷移中であるとして、V/T遷移中フラグF_CMCGTRを「1」にセットし(ステップ46)、本処理を終了する。
一方、前記ステップ45の答がNOのときには、排気V/TがすでにSI燃焼モード用の高速V/Tに切り換わっているため、V/T遷移中でないとして、V/T遷移中フラグF_CMCGTRを「0」にセットし(ステップ47)、本処理を終了する。
図5に戻り、前記ステップ3に続くステップ4〜7では、メイン噴射量GOUTPIF、メイン噴射時期TINJP、付加噴射量GOUTADFおよび付加噴射時期TINJADの算出処理をそれぞれ実行し、本処理を終了する。ここで、メイン噴射量GOUTPIFおよびメイン噴射時期TINJPは、吸気行程においてポート燃料噴射弁18から噴射されるメイン噴射の燃料噴射量および燃料噴射時期であり、付加噴射量GOUTADFおよび付加噴射時期TINJADは、圧縮行程において筒内燃料噴射弁19から付加的に噴射される付加噴射の燃料噴射量および燃料噴射時期である。以下、これらの算出処理を、それぞれのサブルーチンに基づいて説明する。
図12に示すメイン噴射量GOUTPIFの算出処理では、まずステップ51において、吸入空気量GAIRに応じ、所定のテーブル(図示せず)を検索することによって、テーブル値GFMAFMTを求め、1気筒当たりのストイキ相当の要求燃料量GFMAFMとして算出する。次に、算出した要求燃料量GFMAFMに目標空燃比KCMDを乗算した値を、SI燃焼に必要なSI燃焼用燃料量GOUTINSとして算出する(ステップ52)。なお、目標空燃比KCMDは当量比で表される。
次に、エンジン回転数NEおよび要求トルクPMCMDに応じ、所定のマップ(図示せず)を検索することによって、マップ値GFMH1MPを求め、通常のHCCI燃焼に必要な第1HCCI燃焼用燃料量GOUTINH1として算出する(ステップ53)。HCCI燃焼はSI燃焼よりも燃焼効率が高いため、エンジン3の同じ運転条件に対し、第1HCCI燃焼用燃料量GOUTINH1は、上記のSI燃焼用燃料量GOUTINSよりも小さな値に設定される。
次に、エンジン回転数NEおよび要求トルクPMCMDに応じ、所定のマップ(図示せず)を検索することによって、マップ値GFMH2MPを求め、V/T遷移中のHCCI燃焼に必要な第2HCCI燃焼用燃料量GOUTINH2として算出する(ステップ54)。V/T遷移中のHCCI燃焼の燃焼効率は、SI燃焼と通常のHCCI燃焼の中間の値を示すため、エンジン3の同じ運転条件に対し、第2HCCI燃焼用燃料量GOUTINH2は、SI燃焼用燃料量GOUTINSと第1HCCI燃焼用燃料量GOUTINH1との中間の値に設定される。
次に、図11のV/T遷移判定処理でセットされたV/T遷移中フラグF_CMCGTRが「1」であるか否かを判別する(ステップ55)。この答がNOで、V/T遷移中でないときには、HCCI燃焼モードフラグF_HCCIが「1」であるか否かを判別する(ステップ56)。
この答がNOで、燃焼モードがSI燃焼モードのときには、メイン噴射量GOUTPIFを、前記ステップ52で算出されたSI燃焼用燃料量GOUTINSに設定し(ステップ57)、本処理を終了する。一方、ステップ56の答がYESで、燃焼モードが通常のHCCI燃焼モードのときには、メイン噴射量GOUTPIFを、前記ステップ53で算出された第1HCCI燃焼用燃料量GOUTINH1に設定し(ステップ58)、本処理を終了する。
前記ステップ55の答がYESで、V/T遷移中のときには、HCCI燃焼モードフラグF_HCCIが「1」であるか否かを判別する(ステップ59)。この答がYESで、HCCI燃焼モードへのV/T遷移中のときには、実排気V/TフラグF_VTECEXAが「0」であるか否かを判別する(ステップ60)。
この答がYESで、F_VTECEXA=0のとき、すなわち、先に切換動作が開始される排気V/TがまだHCCI燃焼モード用の低速V/Tに切り換わっていないときには、メイン噴射量GOUTPIFを、前記ステップ54で算出された第2HCCI燃焼用燃料量GOUTINH2に設定し(ステップ61)、本処理を終了する。
一方、前記ステップ60の答がNOで、排気V/TがすでにHCCI燃焼モード用の低速V/Tに切り換わっているときには、メイン噴射量GOUTPIFを第1HCCI燃焼用燃料量GOUTINH1に設定し(ステップ62)、本処理を終了する。
前記ステップ59の答がNOで、SI燃焼モードへのV/T遷移中のときには、実吸気V/TフラグF_VTECINAが「1」であるか否かを判別する(ステップ63)。
この答がYESで、F_VTECINA=1のとき、すなわち、先に切換動作が開始される吸気V/TがまだSI燃焼モード用の高速V/Tに切り換わっていないときには、メイン噴射量GOUTPIFを第1HCCI燃焼用燃料量GOUTINH1に設定し(ステップ64)、本処理を終了する。
一方、前記ステップ63の答がNOで、吸気V/TがすでにSI燃焼モード用の高速V/Tに切り換わっているときには、メイン噴射量GOUTPIFを第2HCCI燃焼用燃料量GOUTINH2に設定し(ステップ65)、本処理を終了する。
図13は、メイン噴射時期TINJPの算出処理のサブルーチンを示す。本処理では、まずステップ71において、エンジン回転数NEおよび要求トルクPMCMDに応じ、所定のマップ(図示せず)を検索することによって、マップ値TINJPSMAPを求め、SI燃焼用噴射時期TINJPSとして算出する。
次に、エンジン回転数NEおよび要求トルクPMCMDに応じ、所定のマップ(図示せず)を検索することによって、マップ値TINJPHMAPを求め、HCCI燃焼用噴射時期TINJPHとして算出する(ステップ72)。HCCI燃焼時には、吸気V/Tが低速V/Tに設定されることから、SI燃焼時よりも吸気弁6の開弁タイミングが遅いため、HCCI燃焼用噴射時期TINJPHは、SI燃焼用噴射時期TINJPSよりも小さな値に、すなわち遅角側に設定されている。
次に、V/T遷移中フラグF_CMCGTRが「1」であるか否かを判別する(ステップ73)。この答がNOで、V/T遷移中でないときには、HCCI燃焼モードフラグF_HCCIが「1」であるか否かを判別する(ステップ74)。
この答がNOで、燃焼モードがSI燃焼モードのときには、メイン噴射時期TINJPを、前記ステップ71で算出されたSI燃焼用噴射時期TINJPSに設定し(ステップ75)、本処理を終了する。一方、ステップ74の答がYESで、燃焼モードがHCCI燃焼モードのときには、メイン噴射時期TINJPを、前記ステップ72で算出されたHCCI燃焼用噴射時期TINJPHに設定し(ステップ76)、本処理を終了する。
前記ステップ73の答がYESで、V/T遷移中のときには、エンジン回転数NEおよび要求トルクPMCMDに応じ、所定のマップ(図示せず)を検索することによって、マップ値DINJTRMを求め、補正量DINJTRとして算出する(ステップ77)。
次に、HCCI燃焼モードフラグF_HCCIが「1」であるか否かを判別する(ステップ78)。この答がYESで、HCCI燃焼モードへのV/T遷移中のときには、実排気V/TフラグF_VTECEXAが「0」であるか否かを判別する(ステップ79)。
この答がYESのとき、すなわち、先に切換動作が開始される排気V/TがまだHCCI燃焼モード用の低速V/Tに切り換わっておらず、したがって、吸気V/Tの切換動作が開始されていないときには、メイン噴射時期TINJPをSI燃焼用噴射時期TINJPSに維持し(ステップ80)、本処理を終了する。
一方、上記ステップ79の答がNOで、排気V/TがHCCI燃焼モード用の低速V/Tに切り換わっており、吸気V/Tの切換動作が開始されているときには、そのときのメイン噴射時期TINJPから前記ステップ77で設定された補正量DINJTRを減算した値を、メイン噴射時期TINJPとして設定し(ステップ81)、本処理を終了する。これにより、メイン噴射時期TINJPは、補正量DINJTRずつ遅角側に徐々に補正される。なお、図示しないが、このときのメイン噴射時期TINJPは、HCCI燃焼用噴射時期TINJPHを下回らないように、すなわちHCCI燃焼時よりも遅角側にならないようにリミット処理される。
前記ステップ78の答がNOで、SI燃焼モードへのV/T遷移中のときには、実吸気V/TフラグF_VTECINAが「1」であるか否かを判別する(ステップ82)。
この答がYESのとき、すなわち、先に切換動作が開始される吸気V/TがまだSI燃焼モード用の高速V/Tに切り換わっていないときには、そのときのメイン噴射時期TINJPに補正量DINJTRを加算した値を、メイン噴射時期TINJPとして設定し(ステップ83)、本処理を終了する。これにより、メイン噴射時期TINJPは、補正量DINJTRずつ進角側に徐々に補正される。なお、図示しないが、このときのメイン噴射時期TINJPは、SI燃焼用噴射時期TINJPSを上回らないように、すなわちSI燃焼時よりも進角側にならないようにリミット処理される。
一方、上記ステップ82の答がNOで、吸気V/TがすでにSI燃焼モード用の高速V/Tに切り換わっているときには、メイン噴射時期TINJPをSI燃焼用噴射時期TINJPSに設定し(ステップ84)、本処理を終了する。
図14および図15は、付加噴射量GOUTADFの算出処理のサブルーチンを示す。本処理では、まずステップ91において、V/T遷移中フラグF_CMCGTRが「1」であるか否かを判別する。この答がNOで、V/T遷移中でないときには、付加噴射量GOUTADFを0に設定する(ステップ92)。
一方、ステップ91の答がNOで、V/T遷移中のときには、HCCI燃焼モードフラグF_HCCIが「1」であるか否かを判別する(ステップ93)。この答がYESで、HCCI燃焼モードへのV/T遷移中のときには、実排気V/TフラグF_VTECEXAが「0」であるか否かを判別する(ステップ94)。
この答がYESで、F_VTECEXA=0のとき、すなわち、排気V/TがまだHCCI燃焼モード用の低速V/Tに切り換わっていないときには、付加噴射量GOUTADFを、SI燃焼用燃料量GOUTINSと第2HCCI燃焼用燃料量GOUTINH2との差(=GOUTINS−GOUTINH2)に設定する(ステップ95)。
上記ステップ94の答がNOで、排気V/Tが低速V/Tに切り換わっているときには、実排気V/Tフラグの前回値F_VTECEXAZが「0」であるか否かを判別する(ステップ96)。この答がYESのとき、すなわち、今回が排気V/Tが低速V/Tに切り換わった直後に相当するときには、付加噴射量GOUTADFを0に設定し(ステップ97)、付加噴射を停止する。
上記ステップ96の答がNOで、排気V/Tが低速V/Tに切り換わった直後でないときには、実吸気V/TフラグF_VTECINAが「0」であるか否かを判別する(ステップ98)。この答がYESで、吸気V/TがまだHCCI燃焼モード用の低速V/Tに切り換わっていないときには、付加噴射量GOUTADFを、第2HCCI燃焼用燃料量GOUTINH2と第1HCCI燃焼用燃料量GOUTINH1との差(=GOUTINH2−GOUTINH1)に設定する(ステップ99)。
一方、上記ステップ98の答がNOで、吸気V/Tが低速V/Tに切り換わったときには、前記ステップ97に進み、付加噴射量GOUTADFを0に設定し、付加噴射を停止する。
前記ステップ93の答がNOで、SI燃焼モードへのV/T遷移中のときには、実吸気V/TフラグF_VTECINAが「1」であるか否かを判別する(ステップ100)。この答がYESで、吸気V/TがまだSI燃焼モード用の高速V/Tに切り換わっていないときには、付加噴射量GOUTADFを0に設定する(ステップ101)。
上記ステップ100の答がNOで、吸気V/Tがすでに高速V/Tに切り換わっているときには、実吸気V/Tフラグの前回値F_VTECINAZが「1」であるか否かを判別する(ステップ102)。この答がYESのとき、すなわち、今回が吸気V/Tが高速V/Tに切り換わった直後に相当するときには、付加噴射量GOUTADFを、第2HCCI燃焼用燃料量GOUTINH2と第1HCCI燃焼用燃料量GOUTINH1との差(=GOUTINH2−GOUTINH1)に設定する(ステップ103)。
上記ステップ102の答がNOで、吸気V/Tが高速V/Tに切り換わった直後でないときには、実排気V/TフラグF_VTECEXAが「1」であるか否かを判別する(ステップ104)。この答がYESで、排気V/TがまだSI燃焼モード用の高速V/Tに切り換わっていないときには、前記ステップ101に進み、付加噴射量GOUTADFを0に設定する。
一方、上記ステップ104の答がNOで、排気V/Tが高速V/Tに切り換わったときには、付加噴射量GOUTADFを、SI燃焼用燃料量GOUTINSと第2HCCI燃焼用燃料量GOUTINH2との差(=GOUTINS−GOUTINH2)に設定する(ステップ105)。
付加噴射量GOUTADFを上述したように設定した後には、実吸気V/TフラグF_VTECINAおよび実排気V/TフラグF_VTECEXAを、それぞれ前回値F_VTECINAZおよびF_VTECEXAZにシフトし(ステップ106、107)、本処理を終了する。
図16は、付加噴射時期TINJADの算出処理のサブルーチンを示す。本処理では、ステップ111において、エンジン回転数NEおよび要求トルクPMCMDに応じ、所定のマップ(図示せず)を検索することによって、マップ値TINJADMPを求め、付加噴射時期TINJADとして算出する。
図17は、これまでに説明したエンジン3の制御処理によって得られる動作例を示す。燃焼モード(F_HCCI)の切換に伴う、吸気V/T指令(F_VTECINS)、排気V/T指令(F_VTECEXS)、実吸気V/T(F_VTECINA)、排気V/T(F_VTECEXA)およびV/Tパターンの推移については、図10を参照しながら、すでに説明したとおりである。
燃焼モードがSI燃焼モードからHCCI燃焼モードに切り換わると、その後、排気V/Tが低速V/Tに切り換わるまでの間(t1〜t2)、メイン噴射量GOUTPIFは、V/T遷移中用の第2HCCI燃焼用燃料量GOUTINH2に設定され(ステップ61)、付加噴射量GOUTADFは、SI燃焼用燃料量GOUTINSと第2HCCI燃焼用燃料量GOUTINH2との差(=GOUTINS−GOUTINH2)に設定される(ステップ95)。その結果、メイン噴射量GOUTPIFと付加噴射量GOUTADFとを合わせた総燃料噴射量Gfuelは、SI燃焼用燃料量GOUTINSと等しくなる。また、この間、メイン噴射時期TINJPは、SI燃焼用噴射時期TINJPSに維持される(ステップ80)。
その後、排気V/Tが低速V/Tに切り換わると(t2)、その直後に1回のみ、付加噴射量GOUTADFが0に設定され(ステップ97)、付加噴射が停止される。
その後、吸気V/Tが低速V/Tに切り換わるまでの間(t2〜t3)、メイン噴射量GOUTPIFは、通常時用の第1HCCI燃焼用燃料量GOUTINH1に設定され(ステップ62)、付加噴射量GOUTADFは、第2HCCI燃焼用燃料量GOUTINH2と第1HCCI燃焼用燃料量GOUTINH1との差(=GOUTINH2−GOUTINH1)に設定される(ステップ99)。その結果、総燃料噴射量Gfuelは、第2HCCI燃焼用燃料量GOUTINH2と等しくなる。また、この間、メイン噴射時期TINJPは、SI燃焼用噴射時期TINJPSを初期値として、補正量DINJTRにより遅角側に徐々に補正される(ステップ81)。
その後、吸気V/Tが低速V/Tに切り換わると(t3)、付加噴射量GOUTADFが0に設定され(ステップ97)、付加噴射が停止される。その後は、V/Tの遷移期間の終了に伴って、通常のHCCI燃焼モード用の燃料噴射制御に移行し、メイン噴射量GOUTPIFは、第1HCCI燃焼用燃料量GOUTINH1に設定され(ステップ58)、メイン噴射時期TINJPは、HCCI燃焼用噴射時期TINJPHに設定される(ステップ76)。
その後、燃焼モードがHCCI燃焼モードからSI燃焼モードに切り換わると、吸気V/Tが高速V/Tに切り換わるまでの間(t4〜t5)、メイン噴射量GOUTPIFは、第1HCCI燃焼用燃料量GOUTINH1に維持され(ステップ64)、付加噴射量GOUTADFは0に設定される(ステップ101)。この間、メイン噴射時期TINJPは、HCCI燃焼用噴射時期TINJPHを初期値として、補正量DINJTRにより進角側に徐々に補正される(ステップ83)。
その後、吸気V/Tが高速V/Tに切り換わると(t5)、その直後に付加噴射量GOUTADFが、第2HCCI燃焼用燃料量GOUTINH2と第1HCCI燃焼用燃料量GOUTINH1との差(=GOUTINH2−GOUTINH1)に設定され(ステップ103)、付加噴射が1回だけ実行される。
その後、排気V/Tが高速V/Tに切り換わるまでの間(t5〜t6)、メイン噴射量GOUTPIFは、第2HCCI燃焼用燃料量GOUTINH2に設定され(ステップ65)、付加噴射量GOUTADFは0に設定される(ステップ101)。この間、メイン噴射時期TINJPは、SI燃焼用噴射時期TINJPSに維持される(ステップ84)。
その後、排気V/Tが高速V/Tに切り換わると(t6)、その直後に付加噴射量GOUTADFが、SI燃焼用燃料量GOUTINSと第2HCCI燃焼用燃料量GOUTINH2との差(=GOUTINS−GOUTINH2)に設定され(ステップ105)、付加噴射が1回だけ実行される。その後は、V/Tの遷移期間の終了に伴って、通常のSI燃焼モード用の燃料噴射制御に移行し、メイン噴射量GOUTPIFは、SI燃焼用燃料量GOUTINSに設定され(ステップ57)、メイン噴射時期TINJPは、SI燃焼用噴射時期TINJPSに設定される(ステップ75)。
以上の燃料噴射制御によれば、燃焼モードの切換に伴うV/T遷移中に、気筒Cへの燃料の供給を、吸気行程におけるポート燃料噴射弁18からのメイン噴射と、圧縮行程における筒内燃料噴射弁19からの付加噴射によって、分割して行うので、このときに必要な燃料量を十分に確保することができる。また、吸気行程におけるメイン噴射による燃料によって気筒C内に均質な混合気を生成し、その後、圧縮行程における付加噴射により気筒C内に直接、噴射される燃料によって、混合気中に火種を形成した状態で、HCCI燃焼を行うので、HCCI燃焼を良好に行うことができる。
また、HCCI燃焼モードへの燃焼モードの切換時、排気V/Tおよび吸気V/Tが低速V/Tに切り換わった直後にそれぞれ、付加噴射を停止するので(ステップ97)、燃焼効率の向上に伴うトルクの増大、およびそれに起因するトルクショックを抑制することができる。同様に、SI燃焼モードへの燃焼モードの切換時、吸気V/Tおよび排気V/Tが高速V/Tに切り換わった直後にそれぞれ、1回のみ付加噴射を実行するので(ステップ103、105)、燃焼効率の低下に伴うトルクの減少、およびそれに起因するトルクショックを抑制することができる。
また、HCCI燃焼モードへの燃焼モードの切換時に、吸気V/Tがその切換動作の開始後、低速V/Tに実際に切り換わるまでの間、メイン噴射時期TINJPを、SI燃焼用噴射時期TINJPSから補正量DINJTRずつ遅角側に徐々に補正する(ステップ80)。また、SI燃焼モードへの燃焼モードの切換時に、吸気V/Tがその切換動作の開始後、高速V/Tに実際に切り換わるまでの間、メイン噴射時期TINJPを、HCCI燃焼用噴射時期TINJPHから補正量DINJTRずつ進角側に徐々に補正する(ステップ83)。したがって、メイン噴射時期TINJPを、吸気V/Tの変化に伴う吸気弁6の実際の開弁タイミングの変化に応じて適切に設定でき、それにより、燃焼モードの切換時にトルクを円滑に変化させ、トルクショックを抑制することができる。
次に、図18および図19を参照しながら、本発明の第2実施形態によるV/T制御処理について説明する。前述した第1実施形態では、燃焼モードの切換時に、実際の吸気V/Tおよび排気V/Tを検出し、その検出結果に基づいて、吸気V/Tおよび排気V/Tの切換動作を開始するのに対し、本実施形態は、吸気V/Tおよび排気V/Tの動作遅れを推定し、その結果に基づいて、吸気V/Tおよび排気V/Tの切換動作を開始するものである。
図18のV/T判定処理では、まずステップ121において、後述する指令ディレイカウンタ値DVTECOを前回値DVTECOZにシフトする。次に、現在のHCCI燃焼モードフラグF_HCCIがその前回値F_HCCIZに等しいか否かを判定する(ステップ122)。この答がNOで、今回が燃焼モードが切り換わった直後に相当するときには、HCCI燃焼モードフラグF_HCCIが「1」であるか否かを判定する(ステップ123)。
この答がYESで、燃焼モードがHCCI燃焼モードに切り換わった直後のときには、エンジン回転数NEおよびエンジン水温TWに応じ、低速V/Tへの排気V/Tの切換用の所定のマップ(図示せず)を検索することによって、マップ値CVTECELMを求め、排気V/T遅れ数CVTECEXとして算出する(ステップ124)。
このマップ値CVTECELMは、低速V/Tへの排気V/Tの切換動作が開始された後、排気V/Tの切換が実際に完了するまでの遅れをあらかじめ求め、TDC数として表したものである。マップ値CVTECELMは、エンジン回転数NEが高いほど、排気V/T切換機構14の作動油の油圧が上昇しやすいことから、より小さな値に設定され、またエンジン水温TWが低いほど、作動油の応答性が低いことから、より大きな値に設定されている。このことは、後述する同種のマップ値についても同様である。
次に、エンジン回転数NEおよびエンジン水温TWに応じ、低速V/Tへの吸気V/Tの切換用の所定のマップ(図示せず)を検索することによって、マップ値CVTECLMを求め、吸気V/T遅れ数CVTECINとして算出する(ステップ125)。このマップ値CVTECLMは、低速V/Tへの吸気V/Tの切換動作が開始された後、吸気V/Tの切換が実際に完了するまでの遅れを、TDC数として表したものである。
次に、算出した排気V/T遅れ数CVTECEXおよび吸気V/T遅れ数CVTECINを用い、次式(1)によって、HCCI燃焼モードへの切換用の指令ディレイカウンタ値DVTECOを算出する(ステップ126)。
DVTECO=CVTECEX−CVTECIN+1 ・・・(1)
この場合の指令ディレイカウンタ値DVTECOは、HCCI燃焼モードへの燃焼モードの切換と同時に低速V/Tへの排気V/Tの切換動作を開始した後、低速V/Tへの吸気V/Tの切換動作を開始するまでの遅れTDC数に相当する。また、式(1)の右辺第3項の「+1」は、1燃焼サイクルの行程を「排気」→「吸気」→「圧縮」→「膨張」としている関係から、排気V/Tの切換動作に対して、吸気V/Tの切換動作を1行程分、遅らせる必要があるためである。
一方、前記ステップ123の答がNOで、燃焼モードがSI燃焼モードに切り換わった直後のときには、エンジン回転数NEおよびエンジン水温TWに応じ、高速V/Tへの排気V/Tの切換用の所定のマップ(図示せず)を検索することによって、マップ値CVTECEHMを求め、排気V/T遅れ数CVTECEXとして算出する(ステップ127)。このマップ値CVTECEHMは、高速V/Tへの排気V/Tの切換動作が開始された後、排気V/Tの切換が実際に完了するまでの遅れを、TDC数として表したものである。
次に、エンジン回転数NEおよびエンジン水温TWに応じ、高速V/Tへの吸気V/Tの切換用の所定のマップ(図示せず)を検索することによって、マップ値CVTECHMを求め、吸気V/T遅れ数CVTECINとして算出する(ステップ128)。このマップ値CVTECHMは、高速V/Tへの吸気V/Tの切換動作が開始された後、吸気V/Tの切換が実際に完了するまでの遅れを、TDC数として表したものである。
次に、算出した排気V/T遅れ数CVTECEXおよび吸気V/T遅れ数CVTECINを用い、次式(2)によって、SI燃焼モードへの切換用の指令ディレイカウンタ値DVTECOを算出する(ステップ129)。
DVTECO=CVTECIN−CVTECEX−1 ・・・(2)
この場合の指令ディレイカウンタ値DVTECOは、SI燃焼モードへの燃焼モードの切換と同時に高速V/Tへの吸気V/Tの切換動作を開始した後、高速V/Tへの排気V/Tの切換動作を開始するまでの遅れTDC数に相当する。また、式(2)の右辺第3項の「−1」は、吸気V/Tの切換動作をに対して、排気V/Tの切換動作を1行程分、早くする必要があるためである。
前記ステップ122の答がYESで、燃焼モードが切り換わった直後でないときには、指令ディレイカウンタ値の前回値DVTECOZから値1を減算することによって、指令ディレイカウンタ値DVTECOをデクリメントする(ステップ130)。
前記ステップ126、129または130の後には、ステップ131および132において、指令ディレイカウンタ値DVTECOの0リミット処理を行い、本処理を終了する。具体的には、算出した指令ディレイカウンタ値DVTECOが0よりも小さいか否かを判別し(ステップ131)、その答がNOのときにはそのまま本処理を終了し、YESで、DVTECO<0のときには、指令ディレイカウンタ値DVTECOを0に設定する(ステップ132)。
図19に示すV/T制御処理では、まずステップ141において、HCCI燃焼モードフラグF_HCCIが「1」であるか否かを判定する。この答がYESで、燃焼モードがHCCI燃焼モードのときには、排気V/T指令フラグF_VTECEXSを「1」にセットする(ステップ142)ことによって、排気V/Tを低速V/Tに切り換える。
次に、V/T判定処理で算出された指令ディレイカウンタ値DVTECOが0に等しいか否かを判別する(ステップ143)。この答がNOのときには、そのまま本処理を終了する。一方、このステップ143の答がYESで、指令ディレイカウンタ値DVTECOが0になったときには、吸気V/T指令フラグF_VTECINSを「1」にセットする(ステップ144)ことによって、低速V/Tへの吸気V/Tの切換動作を開始し、本処理を終了する。
前記ステップ141の答がNOで、燃焼モードがSI燃焼モードのときには、吸気V/T指令フラグF_VTECINSを「0」にセットする(ステップ145)ことによって、吸気V/Tを高速V/Tに切り換える。
次に、指令ディレイカウンタ値DVTECOが0に等しいか否かを判別する(ステップ146)。この答がNOのときには、そのまま本処理を終了する。一方、このステップ143の答がYESで、指令ディレイカウンタ値DVTECOが0になったときには、排気V/T指令フラグF_VTECEXSを「0」にセットする(ステップ147)ことによって、高速V/Tへの排気V/Tの切換動作を開始し、本処理を終了する。
以上のように、本実施形態によれば、燃焼モードの切換時に、油圧式の吸気V/T切換機構13および排気V/T切換機構14の応答性に影響を及ぼすエンジン回転数NEおよびエンジン水温TWに応じて、排気V/Tおよび吸気V/Tの動作遅れをそれぞれ表す排気V/T遅れ数CVTECEXおよび吸気V/T遅れ数CVTECINを算出する。そして、これらの動作遅れパラメータを用い、式(1)または(2)によって算出された指令ディレイカウンタ値DVTECOに基づき、排気V/Tおよび吸気V/Tの切換動作を開始する。
したがって、HCCI燃焼モードへの切換時には、低速V/Tへの排気V/Tの切換を吸気V/Tの切換よりも先に完了させ、SI燃焼モードへの切換時には、高速V/Tへの吸気V/Tの切換を排気V/Tの切換よりも先に完了させることができる。その結果、V/Tパターンが、燃焼が不安定になりやすいパターンCになることを回避でき、安定した燃焼状態を確保することができる。また、第1実施形態と異なり、先に切換動作を開始した吸気V/Tまたは排気V/Tが、実際に切換先の燃焼モード用のV/Tに切り換わるのを待つことなく、他方のV/Tの切換動作を早期に開始できるので、その分、V/Tの切換に要する全体時間を短縮でき、燃費の向上などを図ることができる。
なお、本発明は、説明した実施形態に限定されることなく、種々の態様で実施することができる。例えば、実施形態では、排気弁7のバルブタイミングを変更する可変動弁機構として、バルブタイミングを低速V/Tおよび高速V/Tの2段階に切換可能なタイプのものを用いているが、これに限らず、例えば、クランクシャフト3aに対する排気カムの位相を変更するタイプのものを用いてもよく、あるいは、排気弁のリフトおよび排気カム位相の双方を変更可能なものでもよい。このことは、吸気弁6のバルブタイミングを変更する可変動弁機構についても同様である。
また、第1実施形態では、実際の吸気V/Tおよび排気V/Tの検出を、基準のクランク角CAにおいて検出された筒内圧PCYLに基づいて行っているが、その検出手法は任意である。さらに、第1実施形態では、燃焼モードの切換に伴うV/T遷移中の吸気行程におけるメイン噴射を、ポート燃料噴射弁18を用いて行っているが、筒内燃料噴射弁19を用いて行ってもよい。
また、第2実施形態では、排気V/T遅れ数CVTECEXおよび吸気V/T遅れ数CVTECINを算出する際に、油圧式の吸気V/T切換機構13および排気V/T切換機構14の応答性に影響を及ぼす、作動油の圧力および温度の少なくとも一方に相関するパラメータとして、エンジン回転数NEおよびエンジン水温TWを用いているが、他の適当なパラメータ、例えば作動油の油温を用いてもよい。
さらに、第2実施形態として、V/T判定処理およびV/T制御処理についてのみ説明したが、これらの制御手法を第1実施形態の燃料噴射制御と組み合わせてもよいことはもちろんである。
また、実施形態は、本発明を車両に搭載されたガソリンエンジンに適用した例であるが、本発明は、これに限らず、ガソリンエンジン以外の各種のエンジンに適用してもよく、また、車両用以外のエンジン、例えば、クランクシャフトを鉛直に配置した船外機などの船舶推進機用のエンジンにも適用可能である。その他、本発明の趣旨の範囲内で、細部の構成を適宜、変更することが可能である。