以下、図面を参照しながら、本発明の好ましい実施形態について説明する。図1は、本発明の内燃機関の制御装置1の概略構成を示している。同図に示すように、制御装置1はECU2を備えており、このECU2は、後述するように、内燃機関(以下「エンジン」という)3の各種の制御処理を行う。
エンジン3は、車両(図示せず)に搭載された、複数の気筒(図示せず)を有するガソリンエンジンである。エンジン3の吸気管の吸気マニホルド(いずれも図示せず)には、燃料噴射弁(以下「インジェクタ」という)4が取り付けられており、インジェクタ4から吸気管内に燃料が噴射される。インジェクタ4の開閉は、ECU2からの制御信号によって制御され、それにより、開弁タイミングに相当する燃料噴射時期と、開弁時間に相当する燃料噴射量QINJが制御される。
エンジン3のクランクシャフト(図示せず)には、自動変速機6の入力軸(図示せず)が連結されている。自動変速機6は、前進6速および後進1速の変速段を有するギヤ式の有段変速機である。この自動変速機6の変速段は、変速段センサ24によって検出され、その検出信号はECU2に出力される。ECU2は、この検出信号に基づき、前進1〜6速の変速段に対して、1〜6の変速段値NGRをそれぞれ割り当てる。
また、シフトレバー(図示せず)は、「P」「R」「N」「D」「S(スポーツ)」および「L」の6つのシフト位置のいずれかにシフトされる。このシフト位置は、シフト位置センサ25によって検出され、その検出信号はECU2に出力される。
また、自動変速機6の変速モードは、シフト位置が「D」のときには、ノーマルモード(以下「Nモード」という)に設定され、シフト位置が「S」のときには、スポーツモード(以下「Sモード」という)に設定される。なお、Sモードの場合には、Nモードの場合よりも、自動変速機6の変速比が高い側に設定される。
また、図2に示すように、ステアリングホイールHには、シフトアップスイッチ(SW)31およびシフトダウンスイッチ(SW)32が設けられており、これらはステアリングホイールHの左右にそれぞれ配置されている。
これらのシフトアップスイッチ31およびシフトダウンスイッチ32の操作状態に応じ、自動変速機6の変速モードは、車両の運転状態に応じて変速段を自動的に設定する自動変速モード(以下「ATモード」という)と、運転者の変速意思に従って変速段を設定する手動変速モード(以下「MTモード」という)に切り換えられる。
一方、クランクシャフトには、マグネットロータおよびMREピックアップ(いずれも図示せず)で構成されたクランク角センサ22が設けられている。クランク角センサ22は、クランクシャフトの回転に伴い、パルス信号であるCRK信号およびTDC信号を出力する。
CRK信号は、所定のクランク角(例えば30゜)ごとに出力される。ECU2は、このCRK信号に基づき、エンジン3の回転数(以下「エンジン回転数」という)NEを算出する。TDC信号は、いずれかの気筒においてエンジン3のピストン(図示せず)が吸気行程開始時のTDC(上死点)付近の所定クランク角度位置にあることを表す信号である。
また、エンジン3の吸気管には、インジェクタ4よりも上流側にスロットル弁(図示せず)が設けられており、このスロットル弁には、アクチュエータ5が連結されている。スロットル弁の開度は、ECU2によりアクチュエータ5を制御することによって制御され、それにより、エンジン3に吸入される吸入空気量が制御される。
さらに、ECU2には、車速センサ21から、車両の速度である車速VPを表す検出信号が、アクセル開度センサ23から、運転者によって操作されるアクセルペダル(図示せず)の開度(以下「アクセル開度」という)APを表す検出信号が、それぞれ出力される。
また、ECU2は、CPU、RAM、ROMおよび入出力インターフェース(いずれも図示せず)などから成るマイクロコンピュータ(図示せず)で構成されている。前述したセンサ21〜25の検出信号はそれぞれ、ECU2に入力され、入力インターフェースでA/D変換や整形がなされた後、CPUに入力される。CPUは、これらの入力信号に応じ、ROMに記憶された制御プログラムなどに従って、エンジン3の運転状態を判別するとともに、判別した運転状態に応じて、燃料噴射制御を含むエンジン3の制御を実行する。
この燃料噴射制御では、エンジン回転数NEが所定のフューエルカット回転数(以下「F/C回転数」という)NEFC(例えば7000rpm)以上のときに、エンジン3を保護するために、インジェクタ4からの燃料噴射を停止するフューエルカットを実行するとともに、その後、エンジン回転数NEが復帰回転数NERTN(例えば6500rpm)を下回ったときに、フューエルカットを終了し、インジェクタ4からの燃料の供給を再開する。また、このF/C回転数の付近においてエンジン回転数NEを目標回転数NELMTCMに制御するNEリミット制御が実行される。
なお、本実施形態では、ECU2が、第1回転数制御手段、第2回転数制御手段、選択手段、所定回転数設定手段、フィードフォワード項算出手段およびフィードバック項算出手段に相当する。
次に、図3〜図8を参照しながら、上述したエンジン回転数NEのリミット制御処理について説明する。本処理は所定時間ごとに実行される。
図3は、本発明によるNEリミット制御トルクTRQNELMTの算出処理を示す。このNEリミット制御トルクTRQNELMTは、エンジン回転数NEを目標回転数NELMTCMに制御するためのトルクである。本処理ではまず、ステップ1(「S1」と図示。以下同じ)において、NEリミット制御の実行判定処理を行う。
図4は、このNEリミット制御の実行判定処理を示す。本処理は、NEリミット制御を実行するか否かを判定するとともに、NEリミット制御に用いるエンジン回転数NEの各種のしきい値を設定するものである。本処理ではまず、ステップ31において、変速モードがATモードであるか否かを判別する。この答がNOで、変速モードがMTモードのときには、ステップ32に進む。
一方、上記ステップ31の答がYESで、変速モードがATモードのときには、ステップ33において、変速段値NGRが6であるか否かを判別する。この答がYESで、自動変速機6の変速段が最高速の6速に設定されているときにもまた、ステップ32に進む。
このステップ32では、変速モードがSモードであるか否かを判別する。この答がYESで、変速モードがSモードのときには、ステップ34〜37において、Sモード用のエンジン回転数NEの各種のしきい値を設定する(図8(a)参照)。まずステップ34では、後述するNE上昇補正値DNELMTSTTを0に設定する。
次に、ステップ35において、F/C回転数NEFCから第1所定値NEREF1(例えば200rpm)を減算することによって、NEリミット制御における目標回転数NELMTCM(=NEFC−NEREF1)を算出する。この第1所定値NEREF1は、目標回転数NELMTCMからF/C回転数NEFCまでの余裕量に相当する。
次に、ステップ36において、NEリミット開始回転数NELMTHをF/C回転数NEFCに設定する。すなわち、変速モードがSモードのときには、NEリミット開始回転数NELMTHは、F/C回転数NEFCに等しく、目標回転数NELMTCMよりも大きい。
次に、ステップ37において、NEリミット開始回転数NELMTHからSモード用のヒステリシス定数DNELMHYSS(例えば700rpm)を減算することによって、Sモード用のNEリミット終了回転数NELMTL(=NELMTH−DNELMHYSS)を算出し、後述するステップ42に進む。このヒステリシス定数DNELMHYSSは、Sモード用のNEリミット終了回転数NELMTLが、復帰回転数NERTNおよび目標回転数NELMTCMよりも小さな値になるように設定されている。
一方、前記ステップ32の答がNOで、変速モードがNモードのときには、ステップ38〜41において、Nモード用のエンジン回転数NEの各種のしきい値を設定する(図8(b)参照)。まずステップ38では、エンジン回転数NEの今回値NE(n)および前回値NE(n−1)を用い、次式(1)によって、NE上昇補正値DNELMTSTTを算出する。
DNELMTSTT={NE(n)−NE(n−1)}・KDNEGAIN ・・・・(1)
ここで、{NE(n)−NE(n−1)}はエンジン回転数NEの上昇量ΔNEを表し、KDNEGAINは、所定の補正ゲインである。以上のように、NE上昇補正値DNELMTSTTは、エンジン回転数NEの上昇量ΔNEが大きいほど、より大きな値に設定される。なお、NE上昇補正値DNELMTSTTは、上昇量ΔNEが0以下で、エンジン回転数NEが上昇していないときには、値0に設定される。
次に、ステップ39において、前記ステップ35と同様、F/C回転数NEFCから第1所定値NEREF1を減算することによって、目標回転数NELMTCM(=NEFC−NEREF1)を算出する。
次に、ステップ40において、F/C回転数NEFC、第2所定値NEREF2、および算出されたNE上昇補正値DNELMTSTTを用い、次式(2)によって、NEリミット開始回転数NELMTHを算出する。
NELMTH=NEFC−NEREF2−DNELMTSTT ・・・・(2)
この第2所定値NEREF2は、前記第1所定値NEREF1よりも大きな値(例えば400rpm)であり、NE上昇補正値DNELMTSTT≧0である。したがって、変速モードがNモードのときには、NEリミット開始回転数NELMTHは、目標回転数NELMTCMよりも小さな値に設定される。また、前述したように、NE上昇補正値DNELMTSTTは、エンジン回転数NEの上昇量ΔNEが大きいほど、より大きな値に設定されるので、このNEリミット開始回転数NELMTHは、エンジン回転数NEの上昇量ΔNEが大きいほど、より小さな値に設定される。
次に、ステップ41において、NEリミット開始回転数NELMTHからNモード用のヒステリシス定数DNELMHYSN(例えば300rpm)を減算することによって、Nモード用のNEリミット終了回転数NELMTL(=NELMTH−DNELMHYSN)を算出し、ステップ42に進む。
ステップ37または41に続くステップ42では、NEリミットフラグF_NELMTAが「1」であるか否かを判別する。この答がNOで、NEリミット制御が実行されていないときには、NEリミット判定値NELMTをNEリミット開始回転数NELMTHにセットする(ステップ43)。一方、上記ステップ42の答がYESで、NEリミット制御が実行されているときには、NEリミット判定値NELMTをNEリミット終了回転数NELMTLにセットする(ステップ44)。
次に、ステップ45において、エンジン回転数NEがNEリミット判定値NELMT以上であるか否かを判別する。この答がYESで、NE≧NELMTのときには、NEリミット制御を開始すべきとして、NEリミットフラグF_NELMTAを「1」にセットし(ステップ46)、本処理を終了する。
一方、上記ステップ45の答がNOで、NE<NELMTのときには、NEリミット制御を終了すべきとして、NEリミットフラグF_NELMTAを「0」にセットし(ステップ51)、本処理を終了する。
また、前述したように、NEリミット開始回転数NELMTHとNEリミット終了回転数NELMTLとの間には、ヒステリシス定数DNELMHYSによるヒステリシスが設定されている。したがって、エンジン回転数NEがこれらの回転数の間にあるときには、そのときまでのNEリミット制御の実行/非実行の状態が保持され、それにより制御ハンチングが防止される。
一方、前記ステップ33の答がNOのとき、すなわち変速モードがATモードで、かつ自動変速機6の変速段が最高速の6速でないときには、NEリミット制御を実行しないものとする。これは、この状況では、エンジン回転数NEが上昇するのに応じて、自動変速機6の変速段がシフトアップし、エンジン回転数NEがF/C回転数NEFCに達することがないためである。
このため、ステップ33の答がNOのときには、NE上昇補正値DNELMTSTTを0に設定する(ステップ47)とともに、ステップ48〜50において、目標回転数NELMTCM、NEリミット開始回転数NELMTHおよびNEリミット終了回転数NELMTLを、非常に大きな所定値NELRGにそれぞれ設定する。また、前記ステップ51においてNEリミットフラグF_NELMTAを「0」にセットし、本処理を終了する。
図3に戻り、前記ステップ1に続くステップ2では、NEリミットフラグF_NELMTAが「1」であるか否かを判別する。この答がNOで、NEリミット制御が実行されていないときには、NEリミット制御トルクTRQNELMTのフィードバック項(以下「F/B項」という)のI項TRQNELMIを0にリセットする(ステップ3)。
次に、ステップ4において、NEリミット制御トルクTRQNELMTのフィードフォワード項(以下「F/F項」という)を算出する。
図5は、その算出処理を示す。本処理ではまず、ステップ61において、シフト位置フラグF_ATNPACが「1」であるか否かを判別する。このシフト位置フラグF_ATNPACは、シフト位置が「N」または「P」のときに「1」にセットされるものである。
この答がYESで、エンジン3のトルクが自動変速機6から車輪側に伝達されない状態のときには、目標トルクTRQNELMFTを0に設定し(ステップ62)、トルク漸減量DTRQNELMFFを所定値DTRQNELFFに設定した(ステップ63)後、後述するステップ68に進む。
一方、前記ステップ61の答がNOで、シフト位置が「N」および「P」以外のときには、検出された車速VPに応じ、所定のテーブル(図示せず)を検索することによって、目標トルクの基本値TRQNELVPを算出する(ステップ64)。このテーブルでは、基本値TRQNELVPは、車速VPが大きいほど、より大きな値に設定されている。
次に、ステップ65において、自動変速機6の変速段値NGRに応じ、所定のテーブル(図示せず)を検索することによって、ギヤレシオ補正係数KGRNELMを算出する。このテーブルでは、ギヤレシオ補正係数KGRNELMは、変速段値NGRが大きいほど、すなわち自動変速機6の変速段が高速側に設定されているほど、より大きな値に設定されている。
次に、ステップ66において、基本値TRQNELVPにギヤレシオ補正係数KGRNELMNを乗算することによって、目標トルクTRQNELMFTを算出する。したがって、目標トルクTRQNELMFTは、車速VPが大きいほど、また自動変速機6の変速段が高速側に設定されているほど、より大きな値に設定される。
次に、ステップ67において、変速段値NGRに応じ、所定のテーブル(図示せず)を検索することによって、トルク漸減量DTRQNELMFFを算出する。このテーブルでは、トルク漸減量DTRQNELMFFは、変速段値NGRが大きく、自動変速機6の変速段が高速側に設定されているほど、より大きな値に設定されている。
前記ステップ63または67に続くステップ68では、現在トルクTRQNELMFFを運転者が要求するトルク(以下「DRV要求トルク」という)TRQTGDRVに設定し、本処理を終了する。このDRV要求トルクTRQTGDRVは、エンジン回転数NEおよびアクセル開度APに応じ、所定のマップ(図示せず)を検索することによって算出される。
図3に戻り、前記ステップ4に続くステップ5では、現在トルクTRQNELMFFと目標トルクTRQNELMFTとの差(=TRQNELMFF−TRQNELMFT)を、トルク偏差DTRQNELMFとして算出する。
次に、ステップ6において、ダウンカウント式のディレイタイマの値(以下「F/Bディレイタイマ値」という)TDLYNELMを所定時間TMDLYNELMにセットする。この所定時間TMDLYNELMは、算出されたトルク偏差DTRQNELMFおよびエンジン回転数NEに応じ、所定のマップ(図示せず)を検索することによって算出される。このマップでは、所定時間TMDLYNELMは、トルク偏差DTRQNELMFが大きいほど、またエンジン回転数NEが小さいほど、より大きな値に設定されている。これは、トルク偏差DTRQNELMFが大きいほど、現在トルクTRQNELMFFが目標トルクTRQNELMFTに近づくまでのスロットル弁の作動量が大きく、また、エンジン回転数NEが小さいほど、吸入空気の流速が低く、スロットル弁の開度が変更されてから吸入空気がエンジン3に到達するまでの遅れが大きくなるからである。
また、前述したように、エンジン回転数NEがNEリミット開始回転数NELMTH以上になったときにNEリミット制御が開始されるので、NEリミット制御に実際に用いられる所定時間TMDLYNELMは、NEリミット開始回転数NELMTHにほぼ等しいエンジン回転数NEに応じて算出される。したがって、上述したように算出される所定時間TMDLYNELMは、NEリミット開始回転数NELMTHを反映した値になる。
次に、ステップ7において、後述するトルク非制限フラグF_TRQNELMSを「0」にセットし、NEリミット制御トルクTRQNELMTをDRV要求トルクTRQTGDRVに設定した(ステップ8)後、本処理を終了する。
一方、前記ステップ2の答がYESで、NEリミット制御が実行されているときには、F/Bディレイタイマ値TDLYNELMが0であるか否かを判別する(ステップ9)。この答がNOで、NEリミット制御が開始されてから所定時間TMDLYNELMが経過していないときには、本来、エンジン回転数NEと目標回転数NELMTCMとの差であるNE偏差DNELMCMを、0に設定する(ステップ10)。これにより、NE偏差DNELMCMに基づき、後述するステップ12〜14において算出されるF/B項が0になる。
一方、上記ステップ9の答がYESで、NEリミット制御が開始されてから所定時間TMDLYNELMが経過したときには、検出された実際のエンジン回転数NEと目標回転数NELMTCMとの差(=NE−NELMTCM)を、NE偏差DNELMCMとして算出する(ステップ11)。
前記ステップ10または11に続くステップ12では、F/B項のP項TRQNELMPおよびI項加算値DTRQNELを算出する。このP項TRQNELMPの算出は、NE偏差DNELMCMに応じ、所定のテーブル(図示せず)を検索することによって行われる。このテーブルでは、P項TRQNELMPは、NE偏差DNELMCMが大きいほど、より大きな値に設定されている。
また、I項加算値DTRQNELの算出は、NE偏差DNELMCMに応じ、所定のテーブル(図示せず)を検索することによって行われる。このテーブルでは、I項加算値DTRQNELは、NE偏差DNELMCMが大きいほど、より大きな値に設定されている。
次に、ステップ13において、トルク非制限フラグF_TRQNELMSが「1」であるか否かを判別する。後述するように、このトルク非制限フラグF_TRQNELMSは、NEリミット制御トルクTRQNELMTによるトルクの制限が実質的に行われていないときに「1」にセットされるものである。ステップ13の答がNOで、NEリミット制御トルクTRQNELMTによるトルク制限が行われているときには、ステップ12で算出されたI項加算値DTRQNELを前回までに算出されたI項TRQNELMIに加算することによって、今回のI項TRQNELMIを算出し(ステップ14)、ステップ15に進む。
一方、上記ステップ13の答がYESで、NEリミット制御トルクTRQNELMTによるトルク制限が行われていないときには、ステップ14をスキップし、ステップ15に進む。
このステップ15では、現在トルクTRQNELMFFをF/F項として算出する。図6は、この現在トルクTRQNELMFFの算出処理を示す。本処理ではまず、ステップ71において、前回の現在トルクTRQNELMFFから、図5のステップ63または67で算出されたトルク漸減量DTRQNELMFFを減算することによって、現在トルク計算値trqnelmffを算出する。
次に、ステップ72において、この現在トルク計算値trqnelmffが、図5のステップ62または66で算出された目標トルクTRQNELMFTよりも小さいか否かを判別する。この答がNOで、trqnelmff≧TRQNELMFTのときには、現在トルクTRQNELMFFを現在トルク計算値trqnelmffに設定し(ステップ73)、本処理を終了する。このようにステップ71〜73が繰り返し実行されることによって、現在トルク計算値trqnelmffおよび現在トルクTRQNELMFFは、トルク漸減量DTRQNELMFFずつ漸減する。
一方、上記ステップ72の答がYESで、漸減した現在トルク計算値trqnelmffが目標トルクTRQNELMFTよりも小さくなったときには、現在トルクTRQNELMFFを目標トルクTRQNELMFTに設定し(ステップ74)、本処理を終了する。
図3に戻り、前記ステップ15に続くステップ16では、上記ステップ73または74で算出された、F/F項としての現在トルクTRQNELMFFに、F/B項のP項TRQNELMPおよびI項TRQNELMIを加算することによって、NEリミット制御トルクの暫定値TRQNELMTBSを算出する。
次に、ステップ17において、この暫定値TRQNELMTBSがDRV要求トルクTRQTGDRVよりも小さいか否かを判別する。この答がYESで、TRQNELMTBS<TRQTGDRVのときには、トルク非制限フラグF_TRQNELMSを「0」にセットする(ステップ18)とともに、NEリミット制御トルクTRQNELMTを暫定値TRQNELMTBSに設定し(ステップ19)、本処理を終了する。
一方、上記ステップ17の答がNOで、TRQNELMTBS≧TRQTGDRVのときには、制限しようとするトルクよりも運転者が要求するトルクの方が小さく、NEリミット制御トルクTRQNELMTによるトルクの制限が必要ないことを意味する。このため、そのことを表すために、トルク非制限フラグF_TRQNELMSを「1」にセットする(ステップ20)とともに、NEリミット制御トルクTRQNELMTをDRV要求トルクTRQTGDRVに設定し(ステップ21)、本処理を終了する。
図7は、エンジン3が出力するトルクの最終的な目標となる最終目標トルクTRQTGTNESの設定処理を示す。本処理ではまず、ステップ81において、NEリミットフラグF_NELMTAが「1」であるか否かを判別する。
この答がNOで、NEリミット制御が実行されていないときには、最終目標トルクTRQTGTNESをDRV要求トルクTRQTGDRVに設定し(ステップ82)、本処理を終了する。
一方、上記ステップ81の答がYESで、NEリミット制御が実行されているときには、最終目標トルクTRQTGTNESをNEリミット制御トルクTRQNELMTに設定し(ステップ83)、本処理を終了する。
図8は、これまでに説明したNEリミット制御処理によって得られる動作例を、変速モードごとに示している。同図(a)に示す変速モードがSモードの場合には、前述したように、NEリミット開始回転数NELMTHは、F/C回転数NEFCに等しい値に設定されている(図4のステップ36)。この例では、時点t1までは、DRV要求トルクTRQTGDRVが増加し、それに伴ってエンジン回転数NEが上昇しているものの、エンジン回転数NEがF/C回転数NEFCおよびNEリミット開始回転数NELMTHに達していないため、フューエルカットもNEリミット制御も実行されず、最終目標トルクTRQTGTNESは、DRV要求トルクTRQTGDRVに設定されている(図7のステップ82)。
そして、エンジン回転数NEがF/C回転数NEFCおよびNEリミット開始回転数NELMTHに達すると(t1)、フューエルカットフラグF_FCが「1」にセットされ、フューエルカットが開始される。また、それと同時に、NEリミットフラグF_NELMTAが「1」にセットされ、NEリミット制御が開始される(図4のステップ45,46)ことによって、最終目標トルクTRQTGTNESはNEリミット制御トルクTRQNELMTに設定される(図7のステップ83)。
そして、フューエルカットが実行された結果、エンジン回転数NEが減少し、その後、エンジン回転数NEが復帰回転数NERTNを下回ったときに(t2)、フューエルカットが終了し、インジェクタ4からの燃料の供給が再開され、それに伴ってエンジン回転数NEが再び上昇する。その後は、最終目標トルクTRQTGTNESをNEリミット制御トルクTRQNELMTに設定するNEリミット制御が継続して実行されることによって、エンジン回転数NEが目標回転数NELMTCMに制御される(t3以降)。なお、同図(a)では、目標回転数NELMTCMは、復帰回転数NERTNよりも大きな値に設定されているが、復帰回転数NERTNよりも小さな値に設定してもよい。
一方、同図(b)に示す変速モードがNモードの場合には、前述したように、NEリミット開始回転数NELMTHは、エンジン回転数NEの上昇量ΔNEに応じ、F/C回転数NEFCよりも小さな値に設定されている(図4のステップ40)。この例では、時点t4までは、DRV要求トルクTRQTGDRVが増加し、それに伴ってエンジン回転数NEが上昇しているものの、エンジン回転数NEがNEリミット開始回転数NELMTHに達していないため、フューエルカットもNEリミット制御も実行されず、最終目標トルクTRQTGTNESは、DRV要求トルクTRQTGDRVに設定されている(図7のステップ82)。
そして、エンジン回転数NEがNEリミット開始回転数NELMTHに達すると(t4)、NEリミットフラグF_NELMTAが「1」にセットされ、NEリミット制御が開始される(図4のステップ45,46)ことによって、最終目標トルクTRQTGTNESはNEリミット制御トルクTRQNELMTに設定される(図7のステップ83)。このNEリミット制御により、エンジン回転数NEが目標回転数NELMTCMに制御される(t5以降)。
以上のように、本実施形態によれば、変速モードがSモードのときには、エンジン回転数NEをF/C回転数NEFCに達するまでは、NEリミット制御によるトルクの制限を行わないので、エンジン3の最大トルクを得ることができ、走行性能が重視されるSモードにおいて、それに適したドライバビリティを得ることができる。また、エンジン回転数がF/C回転数NEFCに達してからインジェクタ4からの燃料噴射が再開された後に、エンジン回転数NEをF/C回転数NEFCよりも小さな目標回転数NELMTCMに制御するので、その後は、エンジン3のオーバーレブを防止することができる。
一方、変速モードがNモードのときには、エンジン回転数NEがF/C回転数NEFCに達する前にNEトルクリミット制御によってトルクを制限し、エンジン回転数NEを目標回転数NELMTCMに制御するので、エンジン回転数NEがF/C回転数NEFCに達したときのフューエルカットの実行および燃料供給の再開に伴うエンジン3のトルク変動を回避できる。それにより、エンジン3のトルクおよびエンジン回転数NEが滑らかに変化する結果、円滑性が重視されるNモードにおいて、それに適したドライバビリティを得ることができる。
また、変速モードがNモードのときには、エンジン回転数NEの上昇量ΔNEが大きいほど、NEリミット開始回転数NELMTHをより小さな値に設定し、NEリミット制御をより低いエンジン回転数NEから開始する。したがって、エンジン回転数NEの上昇量ΔNEが大きい場合でも、エンジン回転数NEが目標回転数NELMTCMを大きくオーバーシュートすることがなくなるので、目標回転数NELMTCMへの収束性を高めることができるとともに、エンジン回転数NEがF/C回転数NEFCに達することを回避でき、それにより、変速モードがNモードのときに、円滑な運転性をより確実に実現することができる。
さらに、NEリミット制御トルクTRQNELMTを、エンジン回転数NEがNEリミット開始回転数NELMTHを超え、NEリミット制御が開始された後、所定時間TMDLYNELMが経過するまでは、F/B項(P項TRQNELMPおよびI項TRQNELMI)を0に設定し(ステップ10、12)、F/F項(現在トルクTRQNELMFF)のみを用いて算出し(図3のステップ9,10、図9のステップ101,102)、その後、所定時間TMDLYNELMが経過した後に、F/F項およびF/B項を用いて算出する(図3のステップ9,11、図9のステップ101,103)。したがって、NEリミット制御において、エンジン3のトルクおよびエンジン回転数NEの急激な変動を回避しながら、エンジン回転数NEを目標回転数NELMTCMに高い応答性および収束性で精度良く制御でき、それにより、円滑な運転性をさらに良好に実現することができる。
図9および図10は、変形例によるNEリミット制御トルクTRQNELMTの算出処理を示す。本処理もまた、所定時間ごとに実行される。この変形例は、前述した実施形態による図3の算出処理にステップ99および100の処理を追加したものである。
本処理ではまず、ステップ91および92において、図3のステップ1および2と同様の処理を行う。このステップ92の答がYESで、NEリミット制御が実行されているときには、フューエルカットフラグF_FCが「1」であるか否かを判別する(ステップ99)。この答がYESで、フューエルカットの実行中のときには、F/Bディレイタイマ値TDLYNELMを所定時間TMDLYNELMにセットし(ステップ100)、ステップ101に進む。
一方、上記ステップ99の答がNOで、フューエルカットの実行中でないときには、前記ステップ100をスキップし、ステップ101に進む。このステップ101〜113では、図3のステップ9〜21と同じ処理を行い、本処理を終了する。
一方、前記ステップ92の答がNOで、NEリミット制御が実行されていないときには、ステップ93〜98において、図3のステップ3〜8と同じ処理を行い、本処理を終了する。
以上のように、この変形例では、ステップ99および100が追加されることにより、変速モードがSモードのときには、NEリミット制御トルクTRQNELMTを、フューエルカット後に燃料の供給が再開された後、所定時間TMDLYNELMが経過するまでは、F/B項を0に設定し、F/F項のみを用いて算出し、所定時間TMDLYNELMが経過した後に、F/F項およびF/B項を用いて算出する。したがって、フューエルカット中にフィードバック制御が開始されることを回避できるとともに、エンジン3のトルクおよびエンジン回転数NEの急激な変動を回避しながら、エンジン回転数NEを目標回転数NELMTCMに高い応答性および収束性で精度良く制御することができる。
なお、本発明は、説明した実施形態に限定されることなく、種々の態様で実施することができる。例えば、実施形態では、目標回転数NELMTCMを、SモードとNモードとの間で互いに同じ値に設定しているが、異なる値に設定してもよい。
また、変速モードがNモードの場合のNEリミット開始回転数NELMTHを、F/C回転数NEFCから、第2所定値NEREF2およびNE上昇補正値DNELMTSTTを減算することによって算出しているが、これに代えて、目標回転数NELMTCMから、所定値およびNE上昇補正値DNELMTSTTを減算することによって算出してもよい。これにより、NEリミット開始回転数NELMTHが目標回転数NELMTCMよりも確実に小さく設定されることで、NEリミット制御を目標回転数NELMTCMよりも小さなエンジン回転数NEから開始することができる。
また、所定時間TMDLYNELMを、トルク偏差DTRQNELMFおよびエンジン回転数NEに応じて算出しているが、エンジン回転数NEが目標回転数NELMTCMに近づくまでの遅れを反映するものであればよく、例えば、エンジン回転数NEに代えて、NEリミット開始回転数NELMTHやF/C回転数NEFCを用いてもよい。
また、F/C回転数NEFCは固定値であるが、例えばエンジン回転数NEの上昇量ΔNEに応じて算出してもよい。また、実施形態では、F/C回転数NEFCは、エンジン3を保護するための大きな値に設定されているが、フェールセーフアクションの際にエンジン回転数NEを制限するためのより小さな値に設定してもよく、そのように設定されたF/C回転数NEFCの付近でNEリミット制御を行ってもよい。
また、実施形態は、本発明を車両に搭載されたガソリンエンジンに適用した例であるが、本発明は、これに限らず、ガソリンエンジン以外のディーゼルエンジンなどの各種のエンジンに適用してもよく、また、車両用以外のエンジン、例えば、クランク軸を鉛直に配置した船外機などのような船舶推進機用エンジンにも適用可能である。その他、本発明の趣旨の範囲内で、細部の構成を適宜、変更することが可能である。