以下、本発明の実施形態を図面に基づいて説明する。尚、以下の好ましい実施形態の説明は、本質的に例示に過ぎず、本発明、その適用物或いはその用途を制限することを意図するものではない。
(エンジン・システムの全体構成)
図1に示されるように、エンジン・システムは、エンジン1、エンジン1に付随する様々なアクチュエーター、様々なセンサー、及びセンサーからの信号に基づきアクチュエーターを制御するエンジン制御器100を有する。
エンジン1は、火花点火式内燃機関であって、第1〜第4の4つのシリンダ11,11,…を有する。但し、エンジン1は、いかなる数のシリンダを有するものであってもよい。エンジン1は、自動車等の車両に搭載され、その出力軸は、図示しないが、変速機を介して駆動輪に連結されている。エンジン1の出力が駆動輪に伝達されることによって、車両が推進する。
エンジン1は、シリンダブロック12と、その上に載置されるシリンダヘッド13とを備えており、ブロック12の内部にシリンダ11,11,…が形成されている。周知のように、シリンダブロック12には、ジャーナル、ベアリングなどによりクランクシャフト14が回転自在に支持されており、このクランクシャフト14が、コネクティングロッド16を介してピストン15に連結されている。
前記ピストン15は、各シリンダ11内に摺動自在に嵌挿されており、シリンダ11及びシリンダヘッド13と共に燃焼室17を区画している。図には1つのみ示すが、シリンダ11毎に2つの吸気ポート18がシリンダヘッド13に形成され、それぞれが燃焼室17に連通している。同様に、シリンダ11毎に2つの排気ポート19がシリンダヘッド13に形成され、それぞれが燃焼室17に連通している。図に示すように、吸気弁21及び排気弁22はそれぞれ、吸気ポート18及び排気ポート19を燃焼室17から遮断(閉)することができるように配設されている。吸気弁21は吸気弁駆動機構30により、排気弁22は排気弁駆動機構40により、それぞれ駆動され、それによって所定のタイミングで往復動して、吸気ポート18及び排気ポート19を開閉する。
吸気弁駆動機構30及び排気弁駆動機構40は、それぞれ吸気カムシャフト31及び排気カムシャフト41を有する。カムシャフト31,41は、周知のチェーン/スプロケット機構等の動力伝達機構を介してクランクシャフト14に連結される。動力伝達機構は、周知のように、クランクシャフト14が二回転する間に、カムシャフト31,41を一回転させる。
吸気弁駆動機構30は、吸気弁21のリフト量を連続的に変化させるリフト可変機構(Variable Valve Lift:VVL)と、吸気カムシャフト31の位相を所定の角度範囲内で連続的に変更可能な位相可変機構(Variable Valve Timing:VVT)と、を含んで構成されている。これらの機構の詳細は後述する。
吸気カムシャフト31の位相角は、カム位相センサー35により検出され、その出力信号θVVT_Aがエンジン制御器100に入力される。
点火プラグ51は、例えばねじ等の周知の構造によって、シリンダヘッド13に取り付けられている。点火システム52は、エンジン制御器100からの制御信号SAを受けて、点火プラグ51が所望の点火タイミングで火花を発生するよう、それに通電する。
燃料噴射弁53は、例えばブラケットを使用する等、周知の構造でシリンダヘッド13の一側(図例では吸気側)に取り付けられている。燃料噴射弁53の先端は、上下方向については2つの吸気ポート18の下方に、また、水平方向については2つの吸気ポート18の中間に位置して、燃焼室17内に臨んでいる。
燃料供給システム54は、図示しないが、燃料噴射弁53に燃料を昇圧して供給する高圧ポンプと、この高圧ポンプに対して燃料タンクからの燃料を送る配管やホース等と、燃料噴射弁53を駆動する電気回路と、を備えている。この電気回路は、エンジン制御器100からの制御信号FPを受けて燃料噴射弁53のソレノイドを作動させ、所定のタイミングで所望量の燃料を、燃焼室17内に噴射させる。
吸気ポート18は、吸気マニホルド55内の吸気経路55bによってサージタンク55aに連通している。図示しないエアクリーナからの吸気流は、スロットルボデー56を通過してサージタンク55aに供給される。スロットルボデー56にはスロットル弁57が配置されており、このスロットル弁57は、周知のようにサージタンク55aに向かう吸気流を絞って、その流量を調整する。スロットル・アクチュエーター58が、エンジン制御器100からの制御信号TVOを受けて、スロットル弁57の開度を調整する。
排気ポート19は、排気マニホルド60内の排気経路によって周知のように排気管内の通路に連通している。排気マニホルド60よりも下流の排気通路には、1つ以上の触媒コンバータ61を有する排気ガス浄化システムが配置される。触媒コンバータ61は、周知の三元触媒、リーンNOx触媒、酸化触媒等とすることができ、それ以外にも、特定の燃料制御手法による排気ガス浄化の目的にかなうものであれば、いかなるタイプの触媒としてもよい。
また、排気ガスの一部を吸気系に循環させる(以下、EGRともいう)ために、吸気マニホルド55(スロットル弁57よりも下流側)と排気マニホルド60との間がEGRパイプ62によって接続されている。排気側の圧力は吸入側よりも高いので、排気ガスの一部は吸気マニホルド55に流れ込むようになり(EGRガスと呼ぶ)、この吸気マニホルド55から燃焼室17に吸入される新気と混ざることになる。EGRパイプ62にはEGRバルブ63が配設され、このバルブ63によってEGRガスの流量を調整する。EGRバルブ・アクチュエーター64は、エンジン制御器100からの制御信号EGROPENを受けて、EGRバルブ63の開度を調整する。
エンジン制御器100は、周知のマイクロコンピュータをベースとするコントローラであって、プログラムを実行する中央演算処理装置(CPU)と、例えばRAMやROMにより構成されてプログラム及びデータを格納するメモリと、電気信号の入出力をする入出力(I/O)バスと、を備えている。
エンジン制御器100は、エアフローセンサー71からの吸気流量AF、吸気圧センサー72からの吸気マニホルド圧MAP、クランク角センサー73からのクランク角パルス信号というように、種々の入力を受ける。エンジン制御器100は、例えばクランク角パルス信号に基づいて、エンジン回転数NENGを計算する。また、エンジン制御器100は、酸素濃度センサー74からの排気ガスの酸素濃度EGOの入力も受ける。さらに、エンジン制御器100は、アクセル・ペダルの踏み込み量を検出するアクセル開度センサー75からのアクセル開度信号αを受ける。またエンジン制御器100には、変速機の出力軸の回転速度を検出する車速センサー76からの車速信号VSPが入力される。さらに外気温センサー77からの外気温TAMBが入力される。
より具体的に、エンジン制御器100は前記のような入力に基づいて、以下のようなエンジン1の制御パラメーターを計算する。例えば、所望のスロットル開度信号TVO、燃料噴射パルスFP、点火信号SA、バルブ位相角信号θVVT、EGR開度信号EGROPEN等である。
そしてエンジン制御器100は、それらの信号を、スロットル・アクチュエーター58、燃料供給システム54、点火システム52、吸気弁駆動機構30及びEGRバルブ・アクチュエーター64等に出力する。
(吸気弁駆動機構の詳細)
本実施形態の吸気弁駆動機構30は、図2に示すように、VVT機構103を備えており、これはチェーンドライブ機構によってクランクシャフト14に駆動連結されている。チェーンドライブ機構は、ドリブン・スプロケット104の他に、図示しないが、クランクシャフト14のドライブ・スプロケットと、それら両スプロケットに巻き掛けられたチェーンとを備える。
VVT機構103は、公知の機構であり、ドリブン・スプロケット104に一体に回転するように固定されたケースと、それに収容されるとともにインナシャフト105(吸気カムシャフト31と相当する)に一体に回転するように固定されたロータと、を有する。ケースとロータとの間には複数の液圧室が、回転軸X(図3に示す)の周りに(周方向に)並んで形成される。そして、ポンプ142により加圧された液体(例えばエンジンオイル)が各々の液圧室に選択的に供給されることによって、互いに対向する液圧室の間に圧力差を形成する。
電磁バルブ141を含むVVTアクチュエーター140は、エンジン制御器100からの制御信号θVVTを受け、電磁バルブ141が液圧のデューティ制御をすることによって、前記液圧室に供給する液体の流量や圧力を調整する。これによりスプロケット104とインナシャフト105との間の実際の位相差が変更され、それによって、周知のようにインナシャフト105の所望の回転位相が達成される。
インナシャフト105は、図3に示すように各々のシリンダ11に対応して一体的に設けられたディスク形状のカム106を有する。このカム106は、インナシャフト105の軸心から偏心して設けられ、VVT機構103により規定される位相で回転する。この偏心カム106の外周にはリング状アーム107の内周が回転自在に嵌め合わされており、インナシャフト105がその軸心X周りに回転すると、リング状アーム107は、同じ軸心Xの回りを公転しながら偏心カム106の中心の周りを回動する。
また、前記インナシャフト105には、シリンダ11毎にロッカーコネクタ110が配設されている。このロッカーコネクタ110は円筒状で、インナシャフト105に外挿されて同軸に軸支されている。換言すれば、ロッカーコネクタ110は、その軸心X周りに回動可能に支持されている。一方、該ロッカーコネクタ110の外周面はベアリング・ジャーナルとされ、シリンダヘッド13に配設されたベアリング・キャップ(図示せず)によって回転可能に支持されている。
前記ロッカーコネクタ110には、第1及び第2のロッカーカム111,112が一体的に設けられている。両者の構成は同じなので、図3にはロッカーカム111について示す。このロッカーカム111は、曲率半径が漸次大きくなっているカム面111aと曲率半径が一定のベース面111bとを有し、それらはいずれもタペット115の上面に接触する。ロッカーカム111は、連続的には回転せず、揺動運動することを除いては、一般的な動弁機構のカムと同様にタペット115を押圧してバルブを開くものである。タペット115は、バルブスプリング116によって吸気ポート18を閉じる方向(吸気弁21のリフト方向とは反対方向)に付勢されている。バルブスプリング116は、周知のように保持器117,118の間に支持されている。
再度、図2を参照すると、インナシャフト105及びロッカーカム部品110〜112の組立体と並んで、その上方にコントロールシャフト120が配置されている。このコントロールシャフト120は、図示しないベアリングによって回転可能に支持されており、その長手方向の中央付近には、外周面から突出する同軸状のウォームギヤ121が一体的に設けられている。
そのウォームギヤ121はウォーム122と係合し、このウォーム122は、VVL機構のアクチュエーターである、例えばステッピングモーター123(以下、VVLアクチュエーターともいう)の出力軸に固定されている。エンジン制御器100から駆動回路101を通じて制御信号θVVLを受けたモーター123の作動により、コントロールシャフト120を所望の位置に回動させることができる。こうして回動されるコントロールシャフト120にはシリンダ11毎のコントロールアーム131が取り付けられており、それらはコントロールシャフト120の回動によって一体的に回動される。そうして回動されるコントロールアーム131は、コントロールリンク132によってリング状アーム107に連結されている。すなわち、コントロールリンク132の一端部はコントロールピボット133によってコントロールアーム131の先端部に回転自在に連結され、該コントロールリンク132の他端部はコモンピボット134によってリング状アーム107に回転自在に連結されている。
ここで、コモンピボット134は、前記のようにコントロールリンク132の他端部をリング状アーム107に連結するとともに、このリング状アーム107を貫通してそれをロッカーリンク135の一端部にも回転自在に連結している。そして、このロッカーリンク135の他端部がロッカーピボット136によってロッカーカム111に回転自在に連結されており、これによりリング状アーム107の回転がロッカーカム111に伝えられるようになっている。
より具体的に、インナシャフト105が回転して、これと一体に偏心カム106が回転するとき、図3の左側に示すように偏心カム106が下側に位置すれば、リング状アーム107も下側に位置するようになり、一方、同図の右側に示すように偏心カム106が上側に位置すれば、リング状アーム107も上側に位置するようになる。
その際、リング状アーム107とコントロールリンク132とを連結するコモンピボット134の位置は、コントロールピボット133の位置と、偏心カム106及びリング状アーム107の共通中心位置との、3者相互の位置関係によって規定されるから、図示のようにコントロールピボット133の位置が変化しない(コントロールシャフト120が回動しない)とすれば、コモンピボット134は、偏心カム106及びリング状アーム107の共通中心周りの回転のみに対応して概略上下に往復動作するようになる。
そのようなコモンピボット134の往復動作はロッカーリンク135によって第1のロッカーカム111に伝えられ、該第1のロッカーカム111を、ロッカーコネクタ110で連結された第2のロッカーカム112と共に軸心X周りに揺動させる。こうして揺動するロッカーカム111は、そのカム面111aがタペット115の上面に接触する間は、当該タペット115をバルブスプリング116のばね力に抗して押し下げ、このタペット115が吸気弁21を押し下げて、吸気ポート18を開かせる。
一方で、ロッカーカム111のベース面111bがタペット115の上面に接触するとき、それは押し下げられない。これは、軸心Xを中心とするロッカーカム111のベース面111bの半径が、その軸心Xとタペット115の上面との間隔に等しいからである。
上述の如きコントロールピボット133と、コモンピボット134と、偏心カム106及びリング状アーム107の共通中心との相互の位置関係において、コントロールピボット133の位置が変化すれば、これにより3者相互の位置関係に変化が生じ、コモンピボット134は前記とは異なる軌跡を描いて往復動作するようになる。
よって、モーター123の作動によりコントロールシャフト120及びコントロールアーム131を回転させて、コントロールピボット133の位置を変えることにより、ロッカーカム111,112の揺動範囲を変更することができる。例えば、コントロールアーム131を図3において時計回りに回動させて、コントロールピボット133を同図に示す位置から左斜め上側にずらすと、ロッカーカム111の揺動範囲は、ベース面111bがタペット115の上面に接触する傾向の相対的に強いものとなる。これによりバルブリフト量は、前記よりも小さくなる。
そして、さらにコントロールアーム131を回動させて、ロッカーカム111の揺動範囲をより大きく変化させると、このロッカーカム111のベース面111bのみがタペット115の上面に接触し、カム面111aはタペット115の上面に接触しないようにすることができる。こうなるとバルブリフト量はゼロになる。
コントロールシャフト120の端部には、このコントロールシャフト120の回動角度を検出する角度センサー124が取り付けられ、角度センサー124が検出した回動角度信号(吸気弁21のリフト量に対応する信号θVVL_A)は、エンジン制御器100に入力される。また、VVLアクチュエーター123の駆動回路101は、VVLアクチュエーター123に供給される電力の電流値を検出する電流センサー101aを含んでおり、この電流センサー101aによって検出された電流値IVVLもまた、エンジン制御器100に入力される。さらに、VVLアクチュエーター123の温度を検出する温度センサー125がVVLアクチュエーター123に取り付けられ、その検出値TMOTORもエンジン制御器100に入力される。これら、VVLアクチュエーター123の実際値θVVL_A、VVLアクチュエーター123の駆動電流値IVVL、及びVVLアクチュエーター123の温度TMOTORはそれぞれ、後述するエンジン制御に用いられる。
斯くして吸気弁駆動機構30は、図4に示すように、VVT機構103及びこれに関連する構成部品によって吸気弁21のバルブタイミングの位相を変化させることができる(同図のθVVT参照)と共に、VVL機構のモーター123の作動制御によって吸気弁21のバルブリフト量をゼロから最大値まで変化させることができる(同図のθVVL参照)。従って、吸気弁21の開作動タイミング及び閉作動タイミングのいかなる組合せも可能になる。
尚、VVL機構の構成は、図2,3に示す構成に限定されない。電動アクチュエーターによって作動されて、吸気弁21のリフト量を連続的に変化させる機構であれば、どのような機構であってもよい。
(エンジンの吸気量制御)
図5は、エンジン制御器100が実行する、特にVVL機構に関係した吸気量制御のメインフローを示している。VVL機構は、エンジン運転モードRUN MODE、エンジン冷間運転モードCOLD RUN MODE、エンジン始動モードSTART MODE、エンジン停止制御モードSTOP MODE、エンジン停止中のスリープ・モードSLEEP MODE、そしてエンジン停止中に定期的にシステムが立ち上がるウェーク・モードWAKE MODEを持ち、状況に応じて、それぞれのモードに入る。
先ず、ステップS51では、各種信号を読み込み、続くステップS52において、イグニッションスイッチがオンであるか否かを判定する。イグニッションスイッチがオンであるYESのときにはステップS53に移行し、オンでないNOのときにはステップS55に移行する。
ステップS53では、スタートフラグFSTARTが1であるか否かを判定し、スタートフラグFSTART=1のYESのときには、ステップS58に移行する。ステップS58では、スターター駆動禁止フラグFSTARTER_PROをセットする(FSTARTER_PRO=1)。そして、ステップS59に移行する。
一方、スタートフラグFSTART=0のNOのときにはステップS54に移行する。ステップS54では、コールドランフラグFCOLD_RUNが1であるか否かを判定し、コールドランフラグFCOLD_RUN=1のYESのときにはステップS57に移行する一方、コールドランフラグFCOLD_RUN=0のNOのときにはステップS56に移行する。尚、スターター駆動禁止フラグFSTARTER_PRO、スタートフラグFSTART及びコールドランフラグFCOLD_RUNについては後述する。
ステップS55では、図6,7に示すエンジン停止制御モードSTOP MODE、スリープ・モードSLEEP MODE、及びウェーク・モードWAKE MODEを、ステップS56では、図9に示すエンジン運転モードRUN MODEを、ステップS57では、図10に示すエンジン冷間運転モードCOLD RUN MODEを、ステップS59では、図8に示すエンジン始動モードSTART MODEを、それぞれ実行する。
図12に示すように、VVL機構の制御特性マップにおいて、高負荷高回転域では、目標気筒空気量が多いほど、また高回転ほど、吸気弁21のリフト量が大となるように設定される。一方、低負荷低回転域では、目標気筒空気量が少ないほど、また低回転ほど、吸気弁21のリフト量が大となるように設定される。これは、VVL機構は、前述したように、1本のコントロールシャフト120に対し連結された4つのリンク機構によって、4つのシリンダ11それぞれの吸気弁21のリフト量を制御するように構成されていることに起因する。つまり、この構成では、シリンダ11間でリフト量のばらつきが生じやすく、エンジン1のアイドル時のような、目標気筒空気量が相対的に少ないときには、そのリフト量のシリンダ間ばらつきによる影響が大きくなりやすいのである。そこで、低負荷低回転域では、目標気筒空気量が少ないほど、また低回転ほど、吸気弁21のリフト量が大となるように設定される。このため、駆動中のエンジン1が停止される場合は、図11にθVVL_IDLEで示すように、吸気弁21のリフト量が比較的大に設定された状態で、エンジン1が停止される。
尚、この低負荷低回転域では、目標気筒空気量が少ないほど、また低回転ほど、スロットル弁57の開度TVOが小となるように設定される(換言すれば吸気マニホルド55内の圧力が低くなる)。このことによって、前述したリフト量が大とされる設定分を差し引いて、目標気筒空気量を達成するようにする。さらに、高負荷高回転域では、スロットル弁57の開度TVOが略一定に設定される(換言すれば吸気マニホルド55圧が略一定になる)。つまり、スロットル弁57の開度を比較的大に設定しつつ、吸気弁21のリフト量の変更によって目標気筒空気量を達成することで、ポンピングロスを低減する。
エンジン1が停止されれば、図5のフローにおけるステップS52の判定がNOになるため、ステップS55に移行することになる。
図6は、図5のステップS55における、エンジン停止制御モードSTOP MODE及びスリープ・モードSLEEP MODEに関するフローであり、このフローは、前述したように、イグニッションスイッチがオンからオフになることによってスタートする。
先ずステップS61で各種信号を読み込み、続くステップS62で、スリープフラグFSLEEPが1であるか否かを判定する。スリープフラグFSLEEP=1であるYESのときにはステップS68に移行する一方、スリープフラグFSLEEP=0であるNOのときにはステップS63に移行する。ここでは、スリープフラグFSLEEP=0として、説明を続ける。
ステップS63では、スリープフラグFSLEEPをセットし(FSLEEP=1)、続くステップS64でスタートフラグFSTARTをセットする(FSTART=1)。そして、ステップS65でウェークアップフラグFWAKEをセットする(FWAKE=1)。
そうして、ステップS66で、外気温センサー77により検出された外気温TAMBと予めエンジン制御器100に記憶されているマップとに基づいて、ウェークアップタイマーカウントアップ目標値CUWAKEを設定する。このマップは図示するように、外気温が低いほど短く設定される。つまり、詳しくは後述するが、外気温が低いほど頻繁にウェーク・モードに入るように設定される。
ここで、スリープフラグFSLEEPは、イグニッションスイッチがオンからオフに変化した直後はクリアされている(0である)一方で、前述のカウントアップ目標値CUWAKEが設定されるときにセットされるフラグであり、スタートフラグFSTARTはイグニッションスイッチがオンからオフに変化したときにセットされる一方、後述するようにイグニッションスイッチがオフからオンに変わって、エンジン1が始動したときにはクリアされる。さらに、ウェークアップフラグFWAKEは、ウェークアップタイマーカウントアップ目標値CUWAKEが設定されるときにセットされるフラグであると共に、後述するように、ウェーク・モードに入る必要がなくなったときにはクリアされる。
ステップS67では、カウンターCWAKEをリセット(CWAKE=0)し、図5のメインフローにリターンする。イグニッションスイッチがオフのままであれば、図6のフローが繰り返されることになる。
前述したようにスリープフラグFSLEEPがセットされれば、ステップS62の判定がYESとなり、ステップS68に移行することになる。ステップS68では、ウェークアップフラグFWAKEが1であるか否かが判定され、ウェークアップフラグFWAKE=1のYESのときにはステップS69に移行する一方、ウェークアップフラグFWAKE=0のNOのときにはステップS69以降のステップに移行することなく、リターンする。
ステップS69では、カウンターCWAKEをカウントアップし、続くステップS610で、カウンターCWAKEが、ステップS66で設定したウェークアップタイマーカウントアップ目標値CUWAKEになったか否かを判定する。カウンターCWAKEがカウントアップ目標値CUWAKEに到達していないのNOのときにはそのままリターンする一方、カウンターCWAKEがカウントアップ目標値CUWAKEに到達したのYESのときにはステップS611に移行する。
ステップS611では、カウンターCWAKEをリセットし(CWAKE=0)、続くステップS612で、ウェーク・モードに入る。従って、カウンターCWAKEが目標値CUWAKEになる毎に、フローはウェーク・モードに入ることになる。
図7は、前記ステップS612における、ウェーク・モードWAKE MODEに関するフローであり、このフローは、カウンターCWAKEが目標値CUWAKEになることによってスタートする。
先ずステップS71では、各種信号を読み込んで、続くステップS72で、外気温センサー77により検出された外気温TAMBが、予め設定した温度TAMB_COLDよりも低いか否かが判定される。この設定温度TAMB_COLDは、VVLアクチュエーター(モーター)123の、低温側の作動限界温度に基づいて設定される温度である。ここでいう作動限界温度は、その温度状態でVVLアクチュエーター123に電流を付与した場合に、それの磁性体構造が損傷を受ける可能性が生じる温度である。設定温度TAMB_COLDは、少なくともその作動限界温度よりも高い温度で適宜設定される。
ステップS72で、外気温TAMBが、設定温度TAMB_COLDよりも低いのYESと判定されたときにはステップS73に移行する。一方、外気温TAMBが、設定温度TAMB_COLD以上であるのNOと判定されたときには、そのまま、図6のフローにリターンする。この場合はスリープ・モードになり、イグニッションスイッチがオンされるか(この場合はエンジン始動モードに移行する)、又は、カウンターCWAKEがカウントアップ目標値CWAKEとなる(この場合は再びウェーク・モードに入る)まで、スリープ・モードが継続される。
ステップS73では、VVLアクチュエーター123の制御目標値θVVL_Dを低温始動用の目標値θVVL_COLDに設定する。図11に示すように、この低温始動用の目標値θVVL_COLDによって、吸気弁21のリフト量は比較的大きくなる。尚、目標値θVVL_COLDを、図11に破線で示す最大リフト量に設定してもよい。
続くステップS74では、その低温始動用の目標値θVVL_COLDに基づいて、VVLアクチュエーター123を駆動する。
ステップS75では、角度センサー124によって検出された実測値θVVL_Aに基づき、その実測値θVVL_Aが目標値θVVL_Dに到達したか否かが判定され、到達したのYESのときにはステップS78に移行する。一方、ステップS75で目標値θVVL_Dに到達していないのNOのときにはステップS76に移行し、カウンターCWAKE_2をカウントアップし、続くステップS77でカウンターCWAKE_2が、設定値CUWAKE_2となったか否かを判定する。そうして、カウンターCWAKE_2が設定値CUWAKE_2となっていないのNOのときにはステップS74に戻って、VVLアクチュエーター123の駆動を継続する一方、カウンターCWAKE_2が設定値CUWAKE_2に到達したのYESのときのときには、ステップS78に移行する。
ステップS78では、カウンターCWAKE_2をリセットし、続くステップS79では、吸気弁21のリフト量を低温始動用の大きいリフト量となるように既に変更設定したため、これ以上ウェーク・モードに入る必要がなくなったとしてウェークアップフラグFWAKEをリセットし、続くステップS710でコールドランフラグFCOLD_RUNをセットする(FCOLD_RUN=1)。そうしてステップS711では、冷間運転用のカウンターCCOLD_RUNを0にリセットして、フローを終了する。
このようにウェーク・モードでは外気温をモニタし、それによって、当該外気温がいわゆる極低温となってVVLアクチュエーター123の温度が低下して、エンジン1の始動時にそのVVLアクチュエーター123を駆動させることができなくなるか否かを判断する。VVLアクチュエーター123の温度が作動限界温度以下の状態で、当該VVLアクチュエーター123に通電すると、磁性体の磁性構造が破壊されてVVLアクチュエーター123が破損してしまうのである。
VVLアクチュエーター123を駆動させることができなくなると予想されるときには、エンジン1の始動時に、VVLアクチュエーター123を駆動させる必要がないように、予めリフト量を大きめとなるように(又は最大となるように)、吸気弁21のリフト特性を設定しておく。VVLアクチュエーター123の温度が作動限界温度以下となる前にそれを駆動することで、VVLアクチュエーター123の破損が回避される。
また、低温始動時には、例えばエンジンオイルの粘性に起因してエンジン1の回転抵抗が増大するため、必要な気筒空気量は相対的に大になる。このため、エンジン1の低温始動時には、吸気弁21のリフト量を比較的大に設定しておくことが求められる。ウェーク・モードは、吸気弁21のリフト量を比較的大に設定しておくことによって、エンジン1の低温始動時に低温のVVLアクチュエーター123を駆動させなくても、十分な気筒空気量を確保することを可能にする。その結果、エンジン1の始動性が高まるのである。
外気温が低いほど頻繁にウェーク・モードに入ることから、外気温が低いほど、VVLアクチュエーター123の温度状態の監視が強化されることになる。これによって、VVLアクチュエーター123の温度が作動限界温度低下となる前に、そのVVLアクチュエーター123を確実に駆動させることができ、VVLアクチュエーター123の破損をより確実に回避することができると共に、エンジン1の始動性を確実に確保することができる。
尚、ウェーク・モードにおいては、外気温をモニタする以外にも、VVLアクチュエーター123の温度に関係するパラメーター値であれば、そのモニタ対象は、どのような値でもよい。
エンジン1を始動させるべくイグニッションスイッチがオンにされたときには、図5のフローにおけるステップS52の判定がYESとなり、前述したように、ステップS53でスタートフラグFSTARTが1であるか否かが判定される。ここでは、スタートフラグFSTART=1であるため、ステップS58を介し、ステップS59でエンジン始動モードに入る。
図8は、前記ステップS59における、エンジン始動モードSTART MODEに関するフローであり、このフローは、前述したように、イグニッションスイッチがオフからオンになることによってスタートする。
先ずステップS81では、各種信号を読み込んで、続くステップS82で、スリープフラグFSLEEPが1であるか否かを判定する。スリープフラグFSLEEP=1のYESのときにはステップS83で、スリープフラグをリセットした(FSLEEP=0)後にステップS84に移行する。一方、スリープフラグFSLEEP=0のNOのときにはそのままステップS84に移行する。
ステップS84では、温度センサー125によって検出される、VVLアクチュエーター(モーター)123の温度TMOTORが予め設定された第2モーター温度TMOTOR_2よりも高いか否かが判定される。VVLアクチュエーター123の温度TMOTORが第2モーター温度TMOTOR_2よりも高いのYESのときには、ステップS85以降の各ステップに移行することなく、ステップS815に移行し、温度TMOTORが第2モーター温度TMOTOR_2以下であるのNOのときには、ステップS85に移行する。第2モーター温度TMOTOR_2は、VVLアクチュエーター123の高温側の作動限界温度に対応している。VVLアクチュエーター123の温度TMOTORが第2モーター温度TMOTOR_2よりも高いときに、このVVLアクチュエーター123を駆動させると、モーター部品の焼き付き等が生じる虞があることから、VVLアクチュエーター123の駆動を回避すべく、ステップS815に移行する。従ってこの場合は、エンジン1の始動時にVVLアクチュエーター123は駆動されないため、吸気弁21のリフト量は変化せず、現状のリフト量(例えばイグニッションオフに伴うエンジン停止時におけるリフト量)でもって、エンジン1が始動される。
ステップS85では、外気温TAMBが、所定温度TAMB_1よりも高いか否かが判定される。所定温度よりも高いのYESのときには、ステップS86に移行する一方、所定温度以下で、外気温が比較的低温であるのNOのときには、ステップS812に移行する。例えば前述したように、エンジン1の停止中において、吸気弁21のリフト量が低温始動用のリフト量θVVL_COLDに設定された場合等には、ステップS812に移行することになる。ここで、所定温度TAMB_1は、例えば前記設定温度TAMB_COLDよりも高く設定すればよい(TAMB_1>TAMB_COLD)。
ステップS85でYESと判定された場合に実行されるS86〜S811の各ステップでは、図11に示すように、エンジン1の始動前に、吸気弁21のリフト量を、比較的小の、始動用リフト量θVVL_STARTに設定する。
先ずステップS86では、VVLアクチュエーターの目標値θVVL_Dを、始動用の目標値θVVL_STARTに設定し、続くステップS87では、その始動用の目標値θVVL_STARTに基づいて、VVLアクチュエーター123を駆動する。
ステップS88では、角度センサー124によって検出された実測値θVVL_Aに基づいて、実測値θVVL_Aが目標値θVVL_Dに到達したか否かが判定され、到達したのYESのときにはステップS811に移行する。一方、ステップS88で目標値に到達していないのNOのときにはステップS89に移行し、カウンターCSTART_2をカウントアップし、続くステップS810でカウンターCSTART_2が、設定値CUSTART_2となったか否かを判定する。そうして、カウンターCSTART_2が設定値CUSTART_2となっていないのNOのときにはステップS87に戻って、VVLアクチュエーター123の駆動を継続する一方、カウンターCSTART_2が設定値CUSTART_2となったのYESのときのときには、ステップS811に移行する。そうして、ステップS811では、カウンターCSTART_2をリセットする。
これに対し、ステップS85でNOと判定された場合に実行されるステップS812では、コールドランフラグFCOLD_RUNが1であるか否かが判定され、コールドランフラグFCOLD_RUN=1のYESのときには、そのままステップS815に移行する一方、コールドランフラグFCOLD_RUN=0のNOのときには、ステップS813に移行して、コールドランフラグFCOLD_RUNをセットする(FCOLD_RUN=1)と共に、続くステップS814で、冷間運転用のカウンターCCOLD_RUNを0にリセットする。
ステップS811,S812又はS814からステップS815へ移行するが、この段階でVVL機構が、その時点でのエンジン始動に適した状態にセットされている。そこで、ステップS815では、スターター駆動禁止フラグFSTARTER_PROが1であるか否かを判定する。スターター駆動禁止フラグFSTARTER_PROは、図5のステップS58において、エンジン始動モードSTART MODEに入る前にセットされたフラグである。このフラグがセットされている間は、エンジン始動時にエンジン1をクランキングするスターターモーター(不図示)の駆動が禁止される。
ステップS815において、スターター駆動禁止フラグFSTARTER_PRO=1であり、スターターモーターの駆動が禁止されているYESのときにはステップS816に移行して、スターター駆動禁止フラグFSTARTER_PROをリセットする(FSTARTER_PRO=0)。一方、スターター駆動禁止フラグFSTARTER_PRO=0であり、スターターモーターの駆動が可能であるのNOのときには、ステップS816に移行せずに、次のステップS818に移行する。
そうして、スターターモーターの駆動が許可されて、エンジン1がクランキングされる。それと共に、エンジン1への燃料噴射弁53による燃料供給及び点火プラグ51による点火が開始される。その結果、エンジン回転数が上昇することになる。そこで、ステップS818において、エンジン回転数NENGが所定の始動回転数NSTARTよりも高くなったか否かを判定し、高くなっていないのNOのときにはリターンしてスタートモードSTART MODEを継続する一方で、高くなったのYESのときにはステップS819においてスタートフラグFSTARTをリセットし(FSTART=0)、リターンする。
従って、このエンジン始動モードにおいては、ステップS84からステップS815に移行した場合には、吸気弁21のリフト量は、エンジン1の停止時におけるリフト量(例えばアイドル時のリフト量であって、比較的大きいリフト量であるθVVL_IDLE:図11参照)でもって、エンジン1が始動され、ステップS86を経てステップS815に移行した場合には、比較的小さいリフト量であるθVVL_STARTでもって、エンジン1が始動される。また、ステップ85からステップS812を経てステップS815に移行した場合には、ウェーク・モードにおいて低温始動用のさらに大きいリフト量θVVL_COLDに設定されているときには、そのリフト量でもって、また、低温始動用のバルブリフト量に設定されていないときには、エンジン1の停止時におけるリフト量(例えばアイドル時のリフト量θVVL_IDLE)でもってエンジン1が始動される。
このようにして通常のエンジン始動時には、吸気弁21のリフト量を比較的小に設定する(θVVL_START)ことによって、バルブリフトに伴う抵抗がその分低減するため、機械損失の低減によりエンジン1の始動性が向上すると共に、燃費の上でも有利になる。
一方、前述したように、VVLアクチュエーター123を駆動させることができない極低温の始動時においては、エンジン1の停止中においてリフト量を予め大に設定しておく(θVVL_COLD)ことによって、必要な気筒空気量を確保してエンジン1を確実に始動させることができる。また、吸気弁21のリフト量を低温始動用に設定していない場合でも、エンジン1の始動時において外気温が比較的低温であるときには、吸気弁21のリフト量は比較的大のままにされるため、気筒空気量は比較的大であり、低温時におけるエンジン1の始動性を向上させることができる。
さらに、エンジン1の始動時において、VVLアクチュエーター123の温度が高温であるときには、そのアクチュエーター123の駆動を停止させることによって、モーター部品の焼き付き等を防止して、アクチュエーター123を保護することができる。
従って、前記のエンジン始動制御によって、エンジン1の始動性と、VVLアクチュエーター123の破損を回避することによる信頼性とを両立させることができる。
そのようにしてエンジン1が始動すれば、図5のフローにおけるステップS53の判定がNOとなり、前述したように、ステップS54において、コールドランフラグFCOLD_RUNが1であるか否かを判定する。低温始動時等においては、コールドランフラグFCOLD_RUN=1であるため、ステップS54の判定がYESとなり、ステップS57に移行して、エンジン冷間運転モードCOLD RUN MODEとなる。一方、低温始動時でない通常時においては、コールドランフラグFCOLD_RUN=0であるため、ステップS54の判定がNOとなり、ステップS56に移行して、エンジン運転モードRUN MODEとなる。
図9は、図5のステップS56における、エンジン運転モードRUN MODEに関するフローであり、このフローは、前述したように、通常のエンジン1の始動後にスタートする。
先ずステップS91では、各種信号を読み込み、それに基づいてエンジン1の運転状態を判断する。そうして目標トルクを設定し、その目標トルクから、目標気筒空気量を設定する。続くステップS92では、設定した目標気筒空気量となるように、VVLアクチュエーター123の制御目標値θVVL_D、VVTアクチュエーター140の制御目標値θVVT_D、及びスロットル・アクチュエーター58の制御目標値TVODをそれぞれ設定する。
ステップS93では、VVLアクチュエーター(モーター)123の温度TMOTORが、予め設定された第1モーター温度TMOTOR_1よりも高いか否かを判定する。モーター123の温度TMOTORが第1モーター温度TMOTOR_1よりも高いのYESのときには、ステップS94に移行する一方、温度TMOTORが第1モーター温度TMOTOR_1以下であるのNOのときには、ステップS95に移行する。第1モーター温度TMOTOR_1は、モーター123の高温側の作動限界温度に対応して設定されていて、この温度以上にモーター123の温度が高まると焼き付き等が生じる虞のある温度として設定されている。例えば第1モーター温度TMOTOR_1は、第2モーター温度TMOTOR_2よりも低く設定される(TMOTOR_1<TMOTOR_2)。
ステップS94では、アクチュエーター123の温度が高くなることを抑制すべくVVLアクチュエーター123への供給電力を減少させる。具体的には、温度TMOTORと予め設定された関数とに従って、VVLアクチュエーターの制御ゲインGVVL1を設定する。この関数は、所定の第1温度までは制御ゲインGVVL1を一定値にする一方、その第1温度を超えると、アクチュエーター温度が高くなるほど制御ゲインGVVL1を一様に下げ、さらに、第1温度よりも高い第2温度を超えると、制御ゲインGVVL1を0(ゼロ)に設定する。
また、ステップS94では、温度TMOTORと予め設定された関数とに従って、スロットル・アクチュエーター58の制御ゲインGTVO1を設定する。この関数は、第1温度までは制御ゲインGTVO1を相対的に低い値(一定値)にする一方、その第1温度を超えると、アクチュエーター温度が高くなるほど制御ゲインGTVO1を一様に上げ、さらに、第2温度を超えると、制御ゲインGTVO1を相対的に高い値(一定値)にする。つまり、VVLアクチュエーター123の制御ゲインGVVL1が低くなるときには、スロットル・アクチュエーター58の制御ゲインGTVO1は高まるようにする。
これに対しステップS95では、電流センサー101aにより検出されるVVLアクチュエーター123の駆動電流IVVLに対するそのVVLアクチュエーター123の制御目標値の変化率dθVVL_Dに基づいて、VVLアクチュエーター123の制御ゲインGVVL1と、スロットル・アクチュエーター58の制御ゲインGTVO1と、をそれぞれ設定する。
つまり、VVLアクチュエーター123に所定の駆動電流を与えても、そのVVLアクチュエーター123が所望の動作をせずに、制御目標値の変化率が小さくなるとき(IVVL/dθVVL_Dが比較的大きいとき)には、VVLアクチュエーター123の温度が高いと判定することができる。そこで、これ以上の温度上昇を抑制する必要があるとして、VVLアクチュエーター123の制御ゲインを低下させ、それによって、VVLアクチュエーター123への操作量を低下させる。そのために、ステップS95では、前記駆動電流及び制御目標値の変化率の比IVVL/dθVVL_Dと予め設定された関数とに従って、VVLアクチュエーター123の制御ゲインGVVL1を設定する。この関数は、前記比IVVL/dθVVL_Dが第1所定値となるまでは制御ゲインGVVL1を一定値にする一方、その第1所定値を超えると(例えば制御目標値の変化率が小さくなると)、その比が大きくなるほど制御ゲインGVVL1を一様に下げ、さらに、第2所定値を超えると、制御ゲインGVVL1を0(ゼロ)に設定する。
このことは、駆動電流IVVL>第1所定値×dθVVL_Dであるときに、制御ゲインGVVL1を低下させることと同義であるため、第1所定値×dθVVL_Dを、制御目標値の変化率に関係する第1のしきい値、第2所定値×dθVVL_Dを、制御目標値の変化率に関係する第2のしきい値とみなせば、ステップS95は、駆動電流IVVLが第1しきい値よりも大であるときに、制御ゲインGVVL1を低下させると共に、駆動電流IVVLが第2しきい値よりも大であるときに、制御ゲインGVVL1をゼロにするステップとなる。
また、スロットル・アクチュエーター58の制御ゲインGTVO1も、VVLアクチュエーター123の制御ゲインGVVL1と同様に、前記比IVVL/dθVVL_Dと予め設定された関数とに従って設定する。この関数は、前記比IVVL/dθVVL_Dが第1所定値となるまでは制御ゲインGTVO1を相対的に低い一定値にする一方、その第1所定値を超えると、前記比が大きくなるほど制御ゲインGTVO1を一様に上げ、さらに、第2所定値を超えると、制御ゲインGTVO1を相対的に高い一定値にする。こうしてVVLアクチュエーター123の制御ゲインGVVL1が低くなるときには、スロットル・アクチュエーター58の制御ゲインGTVO1は高まるようにする。
続くステップS96では、ステップS95で設定したVVLアクチュエーター123及びスロットル・アクチュエーター58の制御ゲインの補正を行うべく、VVLアクチュエーター123の駆動電流IVVLに対するそのVVLアクチュエーター123の制御目標値θVVL_Dに基づいて、VVLアクチュエーター123の制御ゲインGVVL2と、スロットル・アクチュエーター58の制御ゲインGTVO2と、をそれぞれ設定する。
つまり、VVLアクチュエーター123の制御目標値に対して、駆動電流が相対的に高くなってしまうときには、VVLアクチュエーター123の温度が高いとして、その制御ゲインを低下させるようにする。そのために、ステップS96では、前記駆動電流及び制御目標値の比IVVL/θVVL_Dと予め設定された関数とに従って、VVLアクチュエーター123の制御ゲインGVVL2を設定する。この関数は、ステップS95における関数と同様である。つまり、前記比IVVL/θVVL_Dが第1所定値となるまでは制御ゲインGVVL2を一定値にする一方、その第1所定値を超えると、その比が大きくなるほど制御ゲインGVVL2を一様に下げ、さらに、第2所定値を超えると、制御ゲインGVVL2を0(ゼロ)に設定する。
このことも前記と同様に、駆動電流IVVL>第1所定値×θVVL_Dであるときに、制御ゲインGVVL2を低下させることと同義であるため、第1所定値×θVVL_Dを、制御目標値に関係する第1のしきい値、第2所定値×θVVL_Dを、制御目標値に関係する第2のしきい値とみなせば、ステップS95は、駆動電流IVVLが第1しきい値よりも大であるときに、制御ゲインGVVL2を低下させると共に、駆動電流IVVLが第2しきい値よりも大であるときに、制御ゲインGVVL2をゼロにするステップとなる。
また、スロットル・アクチュエーター58の制御ゲインGTVO2を設定する関数も、ステップS95における関数と同様に、前記比IVVL/θVVL_Dが第1所定値となるまでは制御ゲインGTVO2を相対的に低い一定値にする一方、その第1所定値を超えると、比が大きくなるほど制御ゲインGTVO2を一様に上げ、さらに、第2所定値を超えると、制御ゲインGTVO2を相対的に高い一定値にする。
このようにして、ステップS94〜S96においてVVLアクチュエーター123の制御ゲイン及びスロットル・アクチュエーター58の制御ゲインがそれぞれ設定されれば、ステップS97において、VVLアクチュエーター123の制御ゲインGVVL(GVVL1,GVVL2)が所定値GVVL_1よりも大きいか否かを判定する。つまり、ステップS94〜S96において、VVLアクチュエーター123の制御ゲインGVVLを、通常よりも下げる設定を行ったか否かを判定する。VVLアクチュエーター123の制御ゲインGVVLが下げられた(GVVL≦GVVL_1)のNOのときには、ステップS98に移行する一方、制御ゲインGVVLが下げられていない(GVVL>GVVL_1)のYESのときには、ステップS910に移行する。
ステップS98では、VVLアクチュエーター123の制御目標値θVVL_Dを制御ゲインGVVLの減少に応じて増大させ、続くステップS99では、スロットル・アクチュエーター58の制御目標値TVODを、VVLアクチュエーター123の制御目標値の増大に対応させて減少させる。
前述したように、VVLアクチュエーター123の制御ゲインGVVLを低下させる場合は、VVLアクチュエーター123の温度が高いことに起因して、VVLアクチュエーター123をあまり動かさない場合に相当する。そのため、VVLアクチュエーター123を大きく動かさなくても目標気筒空気量が最大となる場合に対応し得るように、吸気弁21のリフト量を予め大きめに設定しておくことが好ましい。そのために、ステップS98では、VVLアクチュエーター123の制御目標値を増大側に、換言すれば吸気弁21のリフト量が大となる側に変更し、それに対応してステップS99では、スロットル・アクチュエーター58の制御目標値を減少側に、換言すればスロットル弁57の開度が小となる側に変更する。
そうして、ステップS910では、前記の目標値θVVL_D、実際値θVVL_A及び制御ゲインGVVL1、GVVL2に基づいてVVLアクチュエーター123を駆動し、ステップS911では、目標値θVVT_D、及び実際値θVVT_Aに基づいてVVTアクチュエーター140を駆動し、そして、ステップS912では、前記の目標値TVOD、実際値TVOA及び制御ゲインGTVO1、GTVO2に基づいてスロットル・アクチュエーター58を駆動し、それによって、目標気筒空気量となるようにする。
このようにエンジン運転モードにおいては、基本的には、VVLアクチュエーター123、VVTアクチュエーター140及びスロットル・アクチュエーター58の制御によって目標気筒空気量を実現する。但し、VVLアクチュエーター123の温度状態を判断し、VVLアクチュエーター123の温度が比較的高いときには、自己発熱によるVVLアクチュエーター123のモーター部品の焼き付き等を防止すべく、VVLアクチュエーター123への操作量を低減する。
その場合において、VVLアクチュエーター123の駆動電流IVVLのみに基づいて、そのVVLアクチュエーター123の温度状態を判断するのではなく、VVLアクチュエーター123の駆動電流IVVLと、VVLアクチュエーター123の制御目標値の変化率dθVVL_Dとに基づいて、VVLアクチュエーター123の温度状態を推定する。これによって、VVLアクチュエーター123の温度状態をより正確に判断することができ、VVLアクチュエーター123の過熱状態を回避しつつも、そのVVLアクチュエーター123が動作することによる吸気弁21のリフト可変制御の実行頻度が高まる。つまり、VVT機構を必要以上に停止させることがない。その結果、エンジン運転モードにおいては、ポンピングロスが低減して、燃費の向上を図ることができる。
また、VVLアクチュエーター123の駆動電流IVVLと、VVLアクチュエーター123の制御目標値VVL_Dとに基づいて、VVLアクチュエーター123の制御ゲインを補正することによって、制御ゲインをより適切に設定することができる。
尚、制御フローは、ステップS95及びS96のいずれか一方のみとしてもよい。つまり、駆動電流IVVLと制御目標値の変化率dθVVL_Dとに基づいてVVLアクチュエーター123の制御ゲインを設定するのみでもよいし、駆動電流IVVLと制御目標値θVVL_Dとに基づいてVVLアクチュエーター123の制御ゲインを設定するのみでもよい。
さらに、VVLアクチュエーター123の温度を温度センサー125によって検出し、その検出値TMOTORに基づいて、VVLアクチュエーター123の制御ゲインを変更することも併せて行うため、VVLアクチュエーター123の焼き付き等を確実に回避することができる。
以上のようにエンジン運転モードにおいては、VVLアクチュエーター123をできるだけ駆動することによって燃費を向上させるものの、前述したように、VVLアクチュエーター123の温度が低いときには、エンジン1の始動後においてもVVLアクチュエーター123を駆動させることができない。エンジン冷間運転モードは、VVLアクチュエーター123の温度が高まるまで、そのVVLアクチュエーター123の駆動を停止させるためのモードである。
図10は、図5のステップS57における、エンジン冷間運転モードCOLD RUN MODEに関するフローであり、このフローは、前述したように、低温であることを理由として、VVLアクチュエーター123を作動させることなくエンジン1を始動させた後にスタートする。
先ずステップS101では、各種信号を読み込み、続くステップS102で、冷間運転用のカウンターCCOLD_RUNをカウントアップする。
ステップS103では、カウンターCCOLD_RUNが、設定値CCOLD_RUN_1を超えたか否かを判定し、設定値を超えた、換言すればエンジン1の始動後、所定時間が経過したのYESのときには、ステップS108に移行して、コールドランフラグFCOLD_RUNをリセットする。一方、設定値を超えていない、換言すればエンジン1の始動後、所定時間を経過していないのNOのときには、ステップS104に移行する。所定時間は、エンジン1の暖機等に伴い、VVLアクチュエーター123に通電することが可能な程度にVVLアクチュエーターの温度が高まったと推定することができる時間として、予め設定すればよい。
ステップS104では、VVLアクチュエーター123の温度TMOTORが、第3モーター温度TMOTOR_3を超えたか否かが判定され、第3モーター温度TMOTOR_3を超えたのYESのときには、ステップS108に移行して、コールドランフラグFCOLD_RUNをリセットする一方、超えていないのNOのときには、ステップS105に移行する。この第3モーター温度TMOTOR_3は、VVLアクチュエーター123の温度が高まって、VVLアクチュエーターに通電することが可能になる温度として、低温側の動作限界温度に基づいて適宜設定すればよい。
ステップS105では、前記ステップS101で読み込んだ各種信号に基づいて、前述したように、VVTアクチュエーター140の制御目標値θVVT_D及びスロットル・アクチュエーター58の制御目標値TVODをそれぞれ設定する。
そうして、ステップS106では、設定した目標値θVVT_D、実際値θVVT_Aに基づいて、VVTアクチュエーター140を駆動し、ステップS107では、設定した目標値TVOD、実際値TVOAに基づいて、スロットル・アクチュエーター58を駆動する。
このように、エンジン冷間運転モードでは、エンジン1の始動後、VVLアクチュエーター123の実際の温度を測定してそれがVVLアクチュエーター123に通電することが可能になる温度に到達したと判断するか、又は、エンジン1の始動後から所定時間が経過して、VVLアクチュエーター123に通電することが可能な程度にVVLアクチュエーターの温度が高まったと推定できるまでは、VVLアクチュエーター123を駆動しない。このことで、VVLアクチュエーター123への損傷を防止する。一方で、VVLアクチュエーター123の温度が高まった、又は、高まったと推定することができるときには、コールドランフラグFCOLD_RUNをクリアして、エンジン冷間運転モードを終了する。これによって、図5のフローにおいては、ステップS54の判定がNOとなり、ステップS56に移行して、前述したエンジン運転モードとなる。こうして、燃費を向上させた運転が行われる。
尚、前記の制御においては、VVL機構によって吸気弁21のリフト量を変更することを主に行っていたが、VVT機構によって吸気弁21の開閉タイミングを変更することによっても、同様の吸気量制御を実現し得る。
また、吸気弁のリフト特性を変化させる機構としては、VVL機構のみとしてもよいし、VVT機構のみとしてもよい。