以下、図面を参照して本発明の実施形態を説明する。
まず、本発明に係る点火時期制御装置が適用されるデュアル噴射型内燃機関の概略構成が示されている図1を参照するに、エンジン1は4つの気筒1aを備えている。各気筒1aはそれぞれ対応する吸気枝管2を介して共通のサージタンク3に接続されている。サージタンク3は吸気ダクト4を介してエアフローメータ4aに接続され、エアフローメータ4aはエアクリーナ5に接続されている。吸気ダクト4内にはステップモータ6によって駆動されるスロットル弁7が配置されている。このスロットル弁7はアクセルペダル10の踏み込みにほぼ連動して吸気ダクト4を開閉する。一方、各気筒1aは共通の排気マニホルド8に連結され、この排気マニホルド8は三元触媒コンバータ9に連結されている。
各気筒1aには、筒内に向けて燃料を噴射するための筒内噴射用インジェクタ11と吸気ポートまたは吸気通路内に向けて燃料を噴射するための吸気ポート噴射用インジェクタ12とがそれぞれ取り付けられている。これらインジェクタ11、12は電子制御ユニット30の出力信号に基づいてそれぞれ制御される。また、各筒内噴射用インジェクタ11は共通の燃料分配管13に接続されており、この燃料分配管13は燃料分配管13に向けて流通可能な逆止弁14を介して、機関駆動式の高圧燃料ポンプ15に接続されている。
図1に示すように、高圧燃料ポンプ15の吐出側はスピル電磁弁15aを介して高圧燃料ポンプ15の吸入側に連結されており、このスピル電磁弁15aの開度が小さいとき程、高圧燃料ポンプ15から燃料分配管13内に供給される燃料量が増大され、スピル電磁弁15aが全開にされると、高圧燃料ポンプ15から燃料分配管13への燃料供給が停止されるように構成されている。なお、スピル電磁弁15aは電子制御ユニット30の出力信号に基づいて制御される。
一方、各吸気ポート噴射用インジェクタ12は共通の燃料分配管16に接続されており、燃料分配管16および高圧燃料ポンプ15は共通の燃料圧レギュレータ17を介して、電動モータ駆動式の低圧燃料ポンプ18に接続されている。さらに、低圧燃料ポンプ18は燃料フィルタ19を介して燃料タンク20に接続されている。燃料圧レギュレータ17は低圧燃料ポンプ18から吐出された燃料の燃料圧が予め定められた設定燃料圧よりも高くなると、低圧燃料ポンプ18から吐出された燃料の一部を燃料タンク20に戻すように構成されており、したがって吸気ポート噴射用インジェクタ12に供給されている燃料圧および高圧燃料ポンプ15に供給されている燃料圧が上記設定燃料圧よりも高くなるのを阻止している。さらに、図1に示すように、高圧燃料ポンプ15と燃料圧レギュレータ17との間には流通弁21が設けられている。この流通弁21は通常開弁されており、この流通弁21が閉弁されると低圧燃料ポンプ18から高圧燃料ポンプ15への燃料供給が停止される。なお、この流通弁21の開閉は電子制御ユニット30の出力信号に基づいて制御される。
さらに、図2には気筒1aの側断面図が示されている。図2を参照するに、61はシリンダブロック、62は頂面上に凹部62aが形成されたピストン、63はシリンダブロック61上に固締されたシリンダヘッド、64はピストン62とシリンダヘッド63間に形成された燃焼室、65は吸気バルブ、66は排気バルブ、67は吸気ポート、68は排気ポート、69は点火プラグ、および70はイグナイタをそれぞれ示している。吸気ポート67は燃焼室64内に流入した空気がシリンダ軸線周りの旋回流を発生するように形成されている。凹部62aは筒内噴射用インジェクタ11側に位置するピストン62の周縁部からピストン62中央部に向かって延び、また点火プラグ69の下方において上方に延びるように形成されている。なお、46は機関出力軸であるクランクシャフトの回転角、ひいては機関回転速度ないしは機関回転数を表す出力パルスを発生する回転数センサである。
また、電子制御ユニット30はデジタルコンピュータからなり、双方向性バス31を介して相互に接続されたROM(リードオンリメモリ)32、RAM(ランダムアクセスメモリ)33、CPU(マイクロプロセッサ)34、入力ポート35および出力ポート36を具備している。エアフローメータ4aは吸入空気量に比例した出力電圧を発生し、このエアフローメータ4aの出力電圧はAD変換器37を介して入力ポート35に入力される。エンジン1には機関冷却水温に比例した出力電圧を発生する水温センサ38が取付けられ、この水温センサ38の出力電圧はAD変換器39を介して入力ポート35に入力される。燃料分配管13には燃料分配管13内の燃料圧に比例した出力電圧を発生する燃料圧センサ40が取付けられ、この燃料圧センサ40の出力電圧はAD変換器41を介して入力ポート35に入力される。触媒9上流の排気マニホルド8には排気ガス中の酸素濃度に比例した出力電圧を発生する空燃比センサ42が取付けられ、この空燃比センサ42の出力電圧はAD変換器43を介して入力ポート35に入力される。
アクセルペダル10はアクセルペダル10の踏込み量に比例した出力電圧を発生するアクセル開度センサ44に接続され、アクセル開度センサ44の出力電圧はAD変換器45を介して入力ポート35に入力される。また、入力ポート35には上述の機関回転数を表す出力パルスを発生する回転数センサ46が接続されており、電子制御ユニット30のROM32には、上述のアクセル開度センサ44ないしはエアフローメータ4aにより得られる機関負荷率および回転数センサ46により得られる機関回転数に基づき、運転状態に対応させて設定されている基本燃料噴射量や後述する点火時期の値や機関冷却水温に基づく補正値等が予めマップ化されて記憶されている。
ここで、電子制御ユニット30の出力ポート36は対応する駆動回路47を介して、ステップモータ6、各筒内噴射用インジェクタ11、各吸気ポート噴射用インジェクタ12、点火プラグ69のイグナイタ70等に接続されている。
なお、本実施の形態におけるエンジン1では、例えば、図3に示すような運転領域ないしは条件マップに対応して、燃焼形態ないしは噴射形態が設定されると共に、筒内噴射用インジェクタ11と吸気ポート噴射用インジェクタ12とによる噴射の分担率αおよびβが定められている。ここで、分担率αとは、全燃料噴射量に対する筒内噴射用インジェクタ11から噴射される燃料量の割合、分担率βとは、全燃料噴射量に対する吸気ポート噴射用インジェクタ12から噴射される燃料量の割合の意味で用い、α+β=100%となる。そして、図3において、直噴100%とは、筒内噴射用インジェクタ11のみから噴射が行なわれる分担率α=100%、すなわちβ=0%領域であることを意味し、直噴0%とは、吸気ポート噴射用インジェクタ12のみからの噴射が行なわれる分担率β=100%、すなわちα=0%領域であることを意味している。さらに、蛇足ながら直噴40〜80%とは、α=40〜80%、β=60〜20%であることを意味しているが、これらの分担率αおよびベータの値は、用いられるエンジン1に要求される運転条件に応じて、適度に変えられるものである。
次に、上記電子制御ユニット30により実行される燃料噴射制御や点火時期制御を含む各種制御のうち、本発明の一実施形態に係る点火時期の適正点火時期設定ルーチンについて、図4に示すフローチャートを参照して説明する。この適正点火時期設定ルーチンは例えば、クランク角度が所定角度進む毎に実行される。そこで、そのステップS401では、エンジン1の運転状態を表すパラメータとして、回転数センサ46から算出される機関回転数およびアクセル開度センサ44から検出されるアクセル開度に基づく機関負荷率が読み込まれる。次に、ステップS402において、噴射形態Aに対応して電子制御ユニット30のメモリにあらかじめ記憶されている基本マップAから、上記運転状態における基本点火時期値が求められる。さらに、ステップS403において、噴射形態Bに対応して電子制御ユニット30のメモリにあらかじめ記憶されている基本マップBから、上記運転状態における基本点火時期値が求められる。
本実施の形態では、上述の噴射形態Aは筒内噴射用インジェクタ11からの燃料噴射分担率α=100%(以下、直噴100%とも云う)の場合であり、噴射形態Bは吸気ポート噴射用インジェクタ12からの燃料噴射分担率β=100%(以下、ポート噴射100%とも云う)の場合である。これらの噴射形態Aおよび噴射形態Bにそれぞれ対応する基本マップAおよび基本マップBは、図5の(A)および(B)にそれぞれ示すように、縦軸に負荷率、横軸に機関回転数を取った二次元マップであり、運転状態に対応させてそれぞれ基本点火時期値が保存されている。より詳しくは、基本マップAには直噴100%時における基本点火時期値Dij、基本マップBにはポート噴射100%時における基本点火時期値Pijのデータが保存されている。ここで、基本点火時期値DijおよびPijは圧縮上死点を基準とするクランク角で表したものである。
そして、上記ステップS402およびS403の後はステップS404に進み、ステップS401にて読み込まれた機関回転数および機関負荷率に基づき、図3に示したマップから現在の運転状態における燃料噴射分担率αおよび/またはβが求められる。そして、ステップS405に進み、この現在の運転状態における燃料噴射分担率αおよび/またはβに対応させた適正点火時期値(D+P)ijが、上述の基本マップAおよび基本マップBから、そこにそれぞれ設定されていた基本点火時期値DijおよびPijを補間計算することにより求められる。
かくて、電子制御ユニット30において、上述のステップS401ないしS405を実行する機能部位が、本発明における、筒内噴射用インジェクタ11と吸気ポート噴射用インジェクタ12とからの燃料噴射分担率にそれぞれ対応させて適正な点火時期を設定する適正点火時期設定手段を構成することになる。
なお、上述の実施形態において用いた、直噴100%のときの基本マップAおよびポート噴射100%のときの基本マップBに代えて、筒内噴射用インジェクタ11からの燃料噴射分担率αが50%を超えるときの直噴主体時基本点火時期値が保存された基本マップA1、および吸気ポート噴射用インジェクタ12からの燃料噴射分担率βが50%を超えるときのポート噴射主体時基本点火時期値が保存された基本マップB1を用いるようにしてもよい。あるいは、上記の基本マップAと基本マップB1との組合せ、または、基本マップA1と基本マップBとの組合せにより、この現在の運転状態における燃料噴射分担率αおよび/またはβに対応させた適正点火時期値を同じく補間計算により求めるようにしてもよい。このようにすると、いずれにしても、メモリ32へのデータ保存量を少なくすることができ、小容量のメモリでの対応が可能となる。
なお、本明細書で云う適正点火時期とは、エンジン1が所定の燃料噴射分担率(α=0またはβ=0の場合も含む)で運転されているときに、良好な着火燃焼が行われる点火時期を意味し、その具体的な値は適用されるエンジンにより異なる。また、この適正点火時期に対しては、周知のようにエンジン1の冷却水温や空燃比制御等に基づいて各種の補正が行なわれ得、そして、最終点火時期が設定されて点火が実行される。但し、本明細書においてはかかる補正に関しては周知であるので詳述しない。
このように、本実施の形態では、燃料噴射分担率の相違に起因して燃焼室64内における混合気の温度や燃料の混合状態が異なることがあっても、その運転状態に対応させた適正な点火時期に設定された点火時期値に基づき点火が実行されて運転が行われるので、過進角によるノッキングの発生や、過遅角による発生出力の不足等を招くおそれが低減される。
次に、本発明の他の実施の形態1につき図6のフローチャートを参照して説明する。この他の実施の形態1は、エンジン1の運転状態の変化に伴い噴射形態が変更されたとき、例えば、上述の直噴100%の噴射形態Aからポート噴射100%の噴射形態Bへ、またはその逆へ変更された場合や、噴射形態A+Bのうちのある燃料噴射分担率α(このとき、β=100−αとなること上述の通りであるから、以下の説明においては筒内噴射用インジェクタ11からの燃料噴射分担率αのみを用いることにする)から他の燃料噴射分担率αへ変更された場合に対処するものである。
そこで、制御がスタートすると、まずステップS601において、上述の実施形態における図4のフローチャートの適正点火時期設定ルーチンの手順により、燃料噴射分担率に対する適正点火時期値が、点火時期計算用の燃料噴射分担率α1に対する適正点火時期値SA2として算出される。そして、次のステップS602において、現在の運転状態における燃料噴射分担率αとステップS601における点火時期計算用の燃料噴射分担率α1とが等しくないか否かが判定される。等しくない、すなわち「YES」のときは、運転状態が変化している、換言すると過渡状態にあるとして、ステップS603に進む。
一方、等しい、すなわち「NO」のときは、運転状態が変化していない定常状態にあるとしてステップS611に進み、最終点火時期値が点火時期計算用の燃料噴射分担率α1に対する適正点火時期値SA2とされて、このルーチンは終了される。なお、ここで上記の点火時期計算用の燃料噴射分担率α1は点火時期を算出するために用いられる仮の噴射分担率であり、点火時期が所定の遅れの後に目標の点火時期に修正されるまでに用いられ、目標の点火時期に近づくとα1=αとされるものである。
そこで、過渡状態にあるときに実行されるステップS603においては、現在の運転状態における燃料噴射分担率αに対する適正点火時期値SA1が求められる。そして、次のステップS604において、現在の運転状態における燃料噴射分担率αに対する適正点火時期値SA1と点火時期計算用の燃料噴射分担率α1に対する適正点火時期値SA2とが比較され、いずれの点火時期値がより遅角側にあるかが判断される。
そして、現在の運転状態における燃料噴射分担率αに対する適正点火時期値SA1よりも点火時期計算用の燃料噴射分担率α1に対する適正点火時期値SA2がより遅角側にあるときにはステップS605に進み、点火時期固定用カウンタが所定の設定値を超えているか否かが判断される。
この点火時期固定用カウンタは、上述のように燃料噴射分担率が変更されたとき、該変更後の少なくとも所定期間において該変更の前後における適正点火時期値のうち遅角側の点火時期値を選択して設定するためのものであり、その設定値としては、例えば十数回の点火回数や経過時間に相当する所定期間とすることができる。
なお、ステップS605における判断で、カウント値が所定の設定値を超えていないときはステップS613に進み、上記点火時期固定用カウンタのカウントアップを行なった後、ステップS611に進む。このステップS611では、前述のように、最終点火時期値が点火時期計算用の燃料噴射分担率α1に対する適正点火時期値SA2とされて、このルーチンは終了される。
一方、ステップS604における判断で、現在の運転状態における燃料噴射分担率αに対する適正点火時期値SA1よりも点火時期計算用の燃料噴射分担率α1に対する適正点火時期値SA2がより進角側、換言すると、現在の運転状態における燃料噴射分担率αに対する適正点火時期値SA1が点火時期計算用の燃料噴射分担率α1に対する適正点火時期値SA2よりも遅角側にあるとき、すなわち「NO」のときにはステップS612に進み、現在の運転状態における燃料噴射分担率αを点火時期計算用の燃料噴射分担率α1と等しくする。そして、ステップS614に進み、最終点火時期値が現在の運転状態における燃料噴射分担率αに対する適正点火時期値SA1とされて、このルーチンは終了される。
さらに、上述のステップS605における判断で、カウント値が所定の設定値を超えているとき、すなわち燃料噴射分担率の変更後に所定期間が経過しているときはステップS606に進み、それ以下における、その変更後の現在の燃料噴射分担率αに対応する適正点火時期値SA1に向けて所定の速度で進角させつつ点火時期を設定するルーチンが実行されることになる。これを詳述すると、まずステップS606において、点火時期計算用の燃料噴射分担率α1が下式により求められる。
点火時期計算用の燃料噴射分担率α1=点火時期計算用の燃料噴射分担率α1+(現在の運転状態における燃料噴射分担率α−点火時期計算用の燃料噴射分担率α1)×なまし係数。
なお、このなまし係数は一定値であってもよく、機関の冷却水温変化に対応する二次曲線値や吸入空気量に比例する直線値であってもよい。
そして、次のステップS607では、上述の現在の燃料噴射分担率αに対応する適正点火時期値SA1に向けて所定の速度で進角させつつ点火時期を設定するルーチンを終了させるための判定が行なわれる。具体的には、現在の燃料噴射分担率αと点火時期計算用の燃料噴射分担率α1との差の絶対値が所定値より小さいか否かが判定される。この差の絶対値が所定値より小さくないとき、すなわち「NO」のときは、ステップS610に進み、点火時期計算用の燃料噴射分担率α1に対する適正点火時期値SA2が算出される。そして、ステップS611に進み、この適正点火時期値SA2が最終点火時期値として設定されること前述の通りである。
しかしながら、ステップS607での判定で、現在の燃料噴射分担率αと点火時期計算用の燃料噴射分担率α1との差の絶対値が所定値より小さいとき、すなわち「YES」のときは、ステップS608に進み、上述の現在の燃料噴射分担率αに対応する適正点火時期値SA1に向けて所定の速度で進角させつつ点火時期を設定するルーチンを終了させるべく、現在の燃料噴射分担率αと点火時期計算用の燃料噴射分担率α1とが等しくされる。そして、ステップS609において、上述の点火時期固定用カウンタのカウント値がクリアされる。
なお、このステップS609を通過した後のステップS610およびステップS611においては、図6に示されると共に上述した適正点火時期値SA2に代えて、現在の燃料噴射分担率αに対応する適正点火時期値SA1が算出されて、これが最終点火時期値として設定されることになる。但し、これは表現の違いのみで、実質の点火時期値としては同一である。
さらに、上述の図6のフローチャートの制御ルーチンによる他の実施の形態1の理解の容易化を図るべく、エンジン1の運転状態の変化に伴い噴射形態が変更されたときの点火時期の制御による変化の様子を図7のタイムチャートを参照して説明する。図7において、左側には、燃料噴射分担率αが0%であるポート噴射100%の噴射形態Bから時刻t1において直噴100%の噴射形態Aへ、さらに、時刻t2において噴射形態Aからポート噴射100%の噴射形態Bへ切替えられて移行した例が示されている。一方、図7において、右側には、噴射形態(A+B)のうちの直噴割合が低い燃料噴射分担率αLから時刻t3において直噴割合が高い他の燃料噴射分担率αUへ変更され、さらに時刻t4において燃料噴射分担率αLに戻されて移行した例が示されている。
そこで、例えば時刻t1で燃料噴射分担率αが0%から100%に変更されたときは、この変更後の少なくとも所定期間(t5−t1)は変更前における適正点火時期値SA2と変更後における適正点火時期値SA1とのうちの遅角側の点火時期値SA2が選択されて、最終点火時期値として設定される。かくて、過進角によるノッキングの発生が確実に防止されることになる。
一方、例えば時刻t2で燃料噴射分担率αが100%から0%に変更されたときは、変更前における適正点火時期値SA1と変更後における適正点火時期値SA2とのうちの遅角側の点火時期値SA2が選択されて、最終点火時期値として設定される。この場合には、遅角側の点火時期値SA2が選択されるので、発生出力の変化が過大になることがなく、トルクショックを防止することができる。
また、例えば時刻t3で燃料噴射分担率αL%からαU%に変更されたときは、この変更後の少なくとも所定期間(t6−t3)は、上記の場合と同様に、変更前における適正点火時期値SA2と変更後における適正点火時期値SA1とのうちの遅角側の点火時期値SA2が選択されて、最終点火時期値として設定される。かくて、この場合も過進角によるノッキングの発生が確実に防止されることになる。
一方、例えば時刻t4で燃料噴射分担率αU%からαL%に変更されたときは、変更前における適正点火時期値SA1と変更後における適正点火時期値SA2とのうちの遅角側の点火時期値SA2が選択されて、最終点火時期値として設定される。この場合にも、遅角側の点火時期値SA2が選択されるので、発生出力の変化が過大になることがなく、トルクショックを防止することができるのである。
なお、上述の図7のタイムチャートにおいて、筒内噴射用インジェクタ11からの燃料噴射分担率αが吸気ポート噴射用インジェクタ12からの燃料噴射分担率よりも大きくなるように変更される場合、すなわち上述の時刻t1およびt3で変更される場合には、上述の所定期間(t5−t1)または所定期間(t6−t3)の経過後に、その変更後の燃料噴射分担率αまたは燃料噴射分担率αUに対応する適正点火時期値SA1に向けて所定の速度(これの大きさは、前述のなまし係数により決定される)で進角させつつ過渡的に適正点火時期が設定される。この形態によれば、発生出力の変化が過大になることがなく、トルクショックを防止することができる。
次に、本発明の他の実施の形態2につき図8のフローチャートおよび図9のタイムチャートを参照して説明する。この他の実施の形態2は、エンジン1の運転状態の変化に伴い噴射形態が変更されたとき、例えば、上述の直噴100%の噴射形態Aからポート噴射100%の噴射形態Bへの変更や、噴射形態(A+B)のうちで、筒内噴射用インジェクタ11からの燃料噴射分担率が大きい状態から小さい状態へ変更された場合等に対処するものである。
そこで、制御がスタートすると、まずステップS801において、上述の実施形態における図4のフローチャートの適正点火時期設定ルーチンの手順により、変更後の現在の燃料噴射分担率に対する適正点火時期値SAnが算出される。次にステップS802において、変更前の前回の燃料噴射分担率に対する適正点火時期値SApが算出される。そして、次のステップS803において、現在の運転状態における燃料噴射分担率に対する適正点火時期値SAnと前回の燃料噴射分担率に対する適正点火時期値SApとの大小、すなわちいずれがより遅角側にあるかが判定される。因みに、進角量が小さくより遅角側にあるときが値は小さい。この判定の結果、変更後の現在の燃料噴射分担率に対する適正点火時期値SAnがより遅角側にあるときはステップS804に進み、この遅角側の適正点火時期値SAnを最終点火時期値として一時的に設定する。また、前回の燃料噴射分担率に対する適正点火時期値SApがより遅角側にあるときはステップS805に進み、この遅角側の適正点火時期値SApを同じく最終点火時期値として一時的に設定する。
そして、ステップS806に進み、変更後の噴射形態ないしは燃料噴射分担率に対する適正点火時期値が選択されたか否かが判定される。判定の結果、「NO」のときは、このルーチンは終了される。換言すると、ステップS805にて最終点火時期値として一時的に設定された前回の燃料噴射分担率に対する適正点火時期値SApのまま運転が継続される。一方、変更後の噴射形態ないしは燃料噴射分担率に対する適正点火時期値SAnが選択された場合、すなわち「YES」のときはステップS807に進み、その遅角量Dが制限遅角量としての遅角ガード値Lを超えていないか否かが判定される。詳述すると、遅角量Dは前回の燃料噴射分担率に対する適正点火時期値SApと現在の燃料噴射分担率に対する適正点火時期値SAnとの差であり、これが所定の大きさの遅角ガード値Lを超えないか否かが判定されるのである。この遅角ガード値Lは、遅角量Dが理想的な量よりも過大であった場合に生ずるエンジン1の発生出力の急低下によるトルクショックや異常燃焼を防止すべく設定されており、その観点から、図9にも示されるように、エンジン1の運転状態の変化に伴う噴射形態の切替えや燃料噴射分担率の変更の態様に合わせて適宜、大きさが設定され得るものである。
そこで、ステップS807において遅角量Dが遅角ガード値Lよりも小さいと判定されると、上述のようなトルクショックの問題は生じないので、このルーチンは終了される。換言すると、ステップS804にて最終点火時期値として一時的に設定された現在の燃料噴射分担率に対する適正点火時期値SAnを最終点火時期値として運転が行われる。一方、ステップS807において遅角量Dが遅角ガード値Lよりも大きい、すなわち「NO」と判定されるとステップS808に進む。そして、ステップS808では、前回の燃料噴射分担率に対する適正点火時期値SApから遅角ガード値Lが減ぜられた点火時期値が最終点火時期値としてこのルーチンは終了される。
なお、図9のタイムチャートにおいても、図7のタイムチャートと同様に、左側に、燃料噴射分担率αが0%であるポート噴射100%の噴射形態Bから時刻t1において直噴100%の噴射形態Aへ、さらに、時刻t2において噴射形態Aからポート噴射100%の噴射形態Bへ切替えられて移行した例が示され、右側には、噴射形態(A+B)のうちの直噴割合が低い燃料噴射分担率αLから時刻t3において直噴割合が高い他の燃料噴射分担率αUへ変更され、さらに時刻t4において燃料噴射分担率αLに戻されて移行した例が示されている。
ここで、時刻t1で燃料噴射分担率αが0%から100%に変更されたとき、および時刻t3で燃料噴射分担率αL%からαU%に変更されたときの点火時期の制御による変化の様子は、図7のタイムチャートに示した前実施の形態と同じであるから重複説明を避ける。
本実施の形態では、例えば時刻t2で燃料噴射分担率αが100%から0%に変更されたとき、および例えば時刻t4で燃料噴射分担率αU%からαL%に変更されたとき、換言すると、筒内噴射用インジェクタ11からの燃料噴射分担率αが吸気ポート噴射用インジェクタ12からの燃料噴射分担率よりも小さくなるように燃料噴射分担率が変更されたときに対処している。すなわち、この時刻t2または時刻t4において変更されたときには、多くとも所定の制限遅角量である遅角ガード値Lだけ遅角させ、この変更後の少なくとも所定期間(t7−t2)または所定期間(t8−t4)は、変更後における適正点火時期値SAnに向けて所定の速度で遅角させつつ点火時期が設定される。
この実施の形態によれば、発生出力の低下が過大になることがなく、トルクショックを防止することができる。
さらに、本発明の他の実施の形態3につき図10のフローチャートおよび図11のタイムチャートを参照して説明する。この他の実施の形態3は、前他の実施の形態2がエンジン1の運転状態の変化に伴い噴射形態が変更されたとき、直噴100%の噴射形態Aからポート噴射100%の噴射形態Bへの変更や、噴射形態(A+B)のうちで、筒内噴射用インジェクタ11からの燃料噴射分担率が大きい状態から小さい状態へ変更された場合等に対処するのに対し、例えばポート噴射100%の噴射形態Bから直噴100%の噴射形態Aへの変更や、筒内噴射用インジェクタ11からの燃料噴射分担率が小さい状態から大きい状態へ変更された場合等に対処するものである。
そこで、制御がスタートすると、まずステップS1001において、前述の実施形態における図4のフローチャートの適正点火時期設定ルーチンの手順により、変更後の現在の燃料噴射分担率に対する適正点火時期値SAnが算出される。次にステップS1002において、変更前の前回の燃料噴射分担率に対する適正点火時期値SApが算出される。そして、次のステップS1003において、現在の運転状態における燃料噴射分担率に対する適正点火時期値SAnと前回の燃料噴射分担率に対する適正点火時期値SApとの大小、すなわちいずれがより遅角側にあるかが判定される。因みに、上述のように、進角量が小さくより遅角側にあるときが値は小さい。この判定の結果、変更後の現在の燃料噴射分担率に対する適正点火時期値SAnがより遅角側にあるときはステップS1004に進み、この遅角側の適正点火時期値SAnを最終点火時期値として一時的に設定する。また、前回の燃料噴射分担率に対する適正点火時期値SApがより遅角側にあるときはステップS1005に進み、この遅角側の適正点火時期値SApを同じく最終点火時期値として一時的に設定する。
そして、ステップS1006に進み、変更前の噴射形態ないしは燃料噴射分担率に対する適正点火時期値が選択されたか否かが判定される。判定の結果、「NO」のときは、このルーチンは終了される。換言すると、ステップS1005にて最終点火時期値として一時的に設定された前回の燃料噴射分担率に対する適正点火時期値SApのまま運転が継続される。一方、変更前の噴射形態ないしは燃料噴射分担率に対する適正点火時期値SApが選択された場合、すなわち「YES」のときはステップS1007に進み、現在の燃料噴射分担率に対する適正点火時期値SAnと前回の燃料噴射分担率に対する適正点火時期値SApとの差、すなわち現在の燃料噴射分担率に対する適正点火時期値SAnに対する遅角量Dが制限遅角量としての遅角ガード値Lを超えていないか否かが判定される。詳述すると、この遅角量Dが所定の大きさの遅角ガード値Lを超えないか否かが判定されるのである。この遅角ガード値Lは、前実施の形態の場合も述べたように、遅角量Dが理想的な量よりも過大であった場合に生ずるエンジン1の発生出力の急低下によるトルクショックや異常燃焼を防止すべく設定されており、その観点から、図11にも示されるように、エンジン1の運転状態の変化に伴う噴射形態の切替えや燃料噴射分担率の変更の態様に合わせて適宜、大きさが設定され得る。
そこで、ステップS1007において遅角量Dが遅角ガード値Lよりも小さいと判定されると、上述のようなトルクショックの問題は生じないので、このルーチンは終了される。換言すると、ステップS1004にて最終点火時期値として一時的に設定された現在の燃料噴射分担率に対する適正点火時期値SAnを最終点火時期値として運転が行われる。一方、ステップS1007において遅角量Dが遅角ガード値Lよりも大きい、すなわち「NO」と判定されるとステップS1008に進む。そして、ステップS1008では、噴射形態変更後の現在の燃料噴射分担率に対する適正点火時期値SAnから遅角ガード値Lが減ぜられた点火時期値が最終点火時期値とされてこのルーチンは終了される。
なお、図11のタイムチャートにおいても、図7および図9のタイムチャートと同様に、左側に、燃料噴射分担率αが0%であるポート噴射100%の噴射形態Bから時刻t1において直噴100%の噴射形態Aへ、さらに、時刻t2において噴射形態Aからポート噴射100%の噴射形態Bへ切替えられて移行した例が示され、右側には、噴射形態(A+B)のうちの直噴割合が低い燃料噴射分担率αLから時刻t3において直噴割合が高い他の燃料噴射分担率αUへ変更され、さらに時刻t4において燃料噴射分担率αLに戻されて移行した例が示されている。
ここで、時刻t2で燃料噴射分担率αが100%から0%に変更されたとき、および時刻t4で燃料噴射分担率αU%からαL%に変更されたときの点火時期の制御による変化の様子は、図7のタイムチャートに示した前実施の形態と同じであるから重複説明はしない。本実施の形態では、例えば時刻t1で燃料噴射分担率αが0%から100%に変更されたとき、および例えば時刻t3で燃料噴射分担率αL%からαU%に変更されたとき、換言すると、筒内噴射用インジェクタ11からの燃料噴射分担率αが吸気ポート噴射用インジェクタ12からの燃料噴射分担率よりも大きくなるように燃料噴射分担率が変更されたときに対処している。すなわち、この時刻t1または時刻t3において変更されたときには、その変更後の燃料噴射分担率に対応する適正点火時期値SAnに対し所定の制限遅角量である遅角ガード値Lだけ遅角された点火時期に進角させ、この変更後の少なくとも所定期間(t9−t1)または所定期間(t10−t3)は、変更後における適正点火時期値SAnに向けて所定の速度で遅角させつつ点火時期が設定される。
この実施の形態によれば、上記形態と同様に、発生出力の低下が過大になることがなく、トルクショックを防止することができる。