以下、図面を参照しながら、本発明の一実施形態に係る内燃機関の吸入空気量制御装置について説明する。この吸入空気量制御装置1は、図2に示すように、ECU2を備えており、このECU2は、後述するように、内燃機関(以下「エンジン」という)3の運転状態に応じて、吸入空気量制御を含む各種の制御処理を実行する。
エンジン3は、図示しない車両に搭載された直列4気筒ガソリンエンジン(1気筒のみ図示)であり、図1および図3に示すように、気筒ごとに設けられ、吸気ポートおよび排気ポートをそれぞれ開閉する吸気弁4および排気弁7と、吸気弁4駆動用の吸気カムシャフト5および吸気カム6と、吸気弁4を開閉駆動する可変式吸気動弁機構40と、排気弁7駆動用の排気カムシャフト8および排気カム9と、排気弁7を開閉駆動する排気動弁機構80などを備えている。
吸気弁4は、そのステム4aがガイド4bに摺動自在に嵌合しており、このガイド4bは、シリンダヘッド3aに固定されている。さらに、吸気弁4は、図4に示すように、上下のスプリングシート4c,4dと、これらの間に設けられたバルブスプリング4eとを備えており、このバルブスプリング4eにより、閉弁方向に付勢されている。
また、吸気カムシャフト5および排気カムシャフト8はそれぞれ、図示しないホルダを介して、シリンダヘッド3aに回動自在に取り付けられている。この吸気カムシャフト5上には、スプロケット5a(図9参照)が同軸に配置され、回転自在に設けられている。このスプロケット5aは、図示しないタイミングベルトを介してクランクシャフト3bに連結され、後述するカム位相可変機構70を介して吸気カムシャフト5に連結されている。以上の構成により、吸気カムシャフト5は、クランクシャフト3bが2回転するごとに1回転する。また、吸気カム6は、吸気カムシャフト5上にこれと一体に回転するように気筒ごとに設けられている。
さらに、可変式吸気動弁機構40は、吸気カムシャフト5の回転に伴って、各気筒の吸気弁4を開閉駆動するとともに、そのバルブリフトおよびバルブタイミングを変更するものであり、その詳細については、後述する。なお、本実施形態では、「吸気弁4のバルブリフト」は、吸気弁4の最大揚程を表すものとする。
一方、排気弁7は、そのステム7aがガイド7bに摺動自在に嵌合しており、このガイド7bは、シリンダヘッド3aに固定されている。さらに、排気弁7は、上下のスプリングシート7c,7dと、これらの間に設けられたバルブスプリング7eとを備えており、このバルブスプリング7eにより、閉弁方向に付勢されている。
また、排気カムシャフト8は、これと一体のスプロケット(図示せず)を備え、このスプロケットおよび図示しないタイミングベルトを介してクランクシャフト3bに連結されており、それにより、クランクシャフト3bが2回転するごとに1回転する。さらに、排気カム9は、排気カムシャフト8上にこれと一体に回転するように気筒ごとに設けられている。
さらに、排気動弁機構80は、排気ロッカアーム81を備えており、この排気ロッカアーム81が排気カム9の回転に伴って回動することにより、バルブスプリング7eの付勢力に抗しながら、排気弁7を開閉駆動する。
一方、エンジン3には、クランク角センサ20および水温センサ21がそれぞれ設けられている。このクランク角センサ20は、クランクシャフト3bの回転に伴い、いずれもパルス信号であるCRK信号およびTDC信号をECU2に出力する。このCRK信号は、所定のクランク角(例えば30deg)ごとに1パルスが出力され、ECU2は、このCRK信号に基づき、エンジン3の回転数(以下「エンジン回転数」という)NEを算出する。また、TDC信号は、各気筒のピストン3cが吸気行程のTDC位置よりも若干、手前の所定のクランク角位置にあることを表す信号であり、所定クランク角ごとに1パルスが出力される。なお、本実施形態では、エンジン回転数NEが負荷パラメータおよび第1負荷パラメータに相当する。
一方、水温センサ21は、エンジン本体に取り付けられたサーミスタなどで構成されており、エンジン3のシリンダブロック3d内を循環する冷却水の温度であるエンジン水温TWを検出して、その検出信号をECU2に出力する。
また、エンジン3の吸気管10には、上流側から順に、エアフローセンサ22、スロットル弁機構11、吸気管内絶対圧センサ23および燃料噴射弁12などが設けられている。
このエアフローセンサ22(吸入空気量検出手段)は、熱線式エアフローメータで構成されており、後述するスロットル弁11aを通過する吸入空気量(以下「TH通過吸入空気量」という)Gthを表す検出信号をECU2に出力する。
また、スロットル弁機構11は、スロットル弁11aおよびこれを開閉駆動するTHアクチュエータ11bなどを備えている。スロットル弁11aは、吸気管10の途中に回動自在に設けられており、当該回動に伴う開度の変化によりTH通過吸入空気量Gthを変化させる。THアクチュエータ11bは、ECU2に接続されたモータにギヤ機構(いずれも図示せず)を組み合わせたものであり、ECU2からの制御入力によって駆動されることにより、スロットル弁11aの開度を変化させる。
ECU2は、通常運転時、スロットル弁11aを全開状態に保持するとともに、可変式吸気動弁機構40の故障時またはマスタバック(図示せず)への負圧供給時には、スロットル弁11aの開度を制御する。
また、吸気管10のスロットル弁11aよりも下流側の部分は、サージタンク10aになっており、このサージタンク10aに、吸気管内絶対圧センサ23が設けられている。この吸気管内絶対圧センサ23(吸入空気量検出手段)は、例えば半導体圧力センサなどで構成され、吸気管10内の絶対圧(以下「吸気管内絶対圧」という)PBAを表す検出信号をECU2に出力する。
さらに、燃料噴射弁12は、ECU2からの、燃料噴射量TOUTを表す制御入力によって駆動され、燃料を吸気管10内に噴射する。
一方、エンジン3の排気管15には、上流側から順に、第1および第2触媒装置16a,16bが設けられており、これらの触媒装置16a,16bにより、排気ガス中のNOx、HCおよびCOなどが浄化される。
これらの触媒装置16a,16bの間に、酸素濃度センサ(以下「O2センサ」という)25が設けられている。このO2センサ25は、ジルコニアおよび白金電極などで構成され、第1触媒装置16aの下流側の排気ガス中の酸素濃度に基づく検出信号をECU2に出力する。
また、排気管15の第1触媒装置16aよりも上流側に、LAFセンサ24が設けられている。このLAFセンサ24は、O2センサ25と同様のセンサとリニアライザなどの検出回路とを組み合わせることによって構成されており、リッチ領域からリーン領域までの広範囲な空燃比の領域において排気ガス中の酸素濃度をリニアに検出して、その酸素濃度に比例する検出信号をECU2に出力する。ECU2は、これらのLAFセンサ24およびO2センサ25の検出信号に基づき、空燃比制御を実行する。
さらに、エンジン3のシリンダヘッド3eには、点火プラグ13(図2参照)が取り付けられている。この点火プラグ13は、ECU2に接続されており、ECU2から点火時期Iglogに応じたタイミングで高電圧が加えられることで放電し、それにより、燃焼室内の混合気を燃焼させる。
次に、前述した可変式吸気動弁機構40について説明する。この可変式吸気動弁機構40は、図4に示すように、吸気カムシャフト5、吸気カム6、バルブリフト可変機構50およびカム位相可変機構70などで構成されている。
このバルブリフト可変機構50は、吸気カムシャフト5の回転に伴って吸気弁4を開閉駆動するとともに、吸気弁4のバルブリフトLiftinを所定範囲(後述する最大値Liftinmaxと最小値Liftinminとの間の範囲)内で無段階に変更するものであり、気筒ごとに設けられた四節リンク式のロッカアーム機構51と、これらのロッカアーム機構51を同時に駆動するリフトアクチュエータ60などを備えている。
各ロッカアーム機構51は、ロッカアーム52および上下のリンク53,54などで構成されている。この上リンク53の一端部は、上ピン55を介して、ロッカアーム52の上端部に回動自在に取り付けられており、他端部は、ロッカアームシャフト56に回動自在に取り付けられている。このロッカアームシャフト56は、図示しないホルダを介して、シリンダヘッド3aに取り付けられている。
また、ロッカアーム52の上ピン55上には、ローラ57が回動自在に設けられている。このローラ57は、吸気カム6のカム面に当接しており、吸気カム6が回転する際、そのカム面に案内されながら吸気カム6上を転動する。これにより、ロッカアーム52は上下方向に駆動されるとともに、上リンク53が、ロッカアームシャフト56を中心として回動する。
さらに、ロッカアーム52の吸気弁4側の端部には、アジャストボルト52aが取り付けられている。このアジャストボルト52aは、吸気弁4の閉弁状態では、その下端面と吸気弁4のステム4aの上端面との間に所定のバルブクリアランスを有しているとともに、吸気カム6の回転に伴ってロッカアーム52が上下方向に移動すると、バルブスプリング4eの付勢力に抗しながら、ステム4aを上下方向に駆動し、吸気弁4を開閉する。
また、下リンク54の一端部は、下ピン58を介して、ロッカアーム52の下端部に回動自在に取り付けられており、下リンク54の他端部には、連結ピン59が回動自在に取り付けられている。下リンク54は、この連結ピン59を介して、リフトアクチュエータ60の後述する短アーム65に連結されている。
一方、リフトアクチュエータ60は、図5に示すように、モータ61、ナット62、リンク63、長アーム64および短アーム65などを備えている。このモータ61は、ECU2に接続され(図2参照)、エンジン3のヘッドカバー3eの外側に配置されている。モータ61の回転軸は、雄ねじが形成されたねじ軸61aになっており、このねじ軸61aに、ナット62が螺合している。このナット62は、リンク63を介して、長アーム64に連結されている。このリンク63の一端部は、ピン63aを介して、ナット62に回動自在に取り付けられ、他端部は、ピン63bを介して、長アーム64の一端部に回動自在に取り付けられている。
また、長アーム64の他端部は、回動軸66を介して短アーム65の一端部に取り付けられている。この回動軸66は、断面円形に形成され、エンジン3のヘッドカバー3eを貫通しているとともに、これに回動自在に支持されている。この回動軸66の回動に伴い、長アーム64および短アーム65はこれと一体に回動する。
さらに、短アーム65の他端部には、前述した連結ピン59が回動自在に取り付けられており、これにより、短アーム65は、連結ピン59を介して、下リンク54に連結されている。
次に、以上のように構成されたバルブリフト可変機構50の動作について説明する。このバルブリフト可変機構50では、ECU2からの後述するリフト制御入力Uliftinがリフトアクチュエータ60のモータ61に入力されると、ねじ軸61aが回転し、それに伴うナット62の移動により、長アーム64および短アーム65が回動軸66を中心として回動するとともに、この短アーム65の回動に伴って、ロッカアーム機構51の下リンク54が、下ピン58を中心として回動する。すなわち、リフトアクチュエータ60により、下リンク54が駆動される。
その際、ECU2によるフィードバック制御により、短アーム65の回動範囲は、図5(a)に示す最大リフト位置と図5(b)に示す最小リフト位置との間に規制され、それにより、下リンク54の回動範囲も、図4に実線で示す最大リフト位置と、図4に2点鎖線で示す最小リフト位置との間に規制される。
下リンク54が最大リフト位置にある場合、ロッカアームシャフト56、上下のピン55,58および連結ピン59によって構成される四節リンクでは、上ピン55および下ピン58の中心間の距離が、ロッカアームシャフト56および連結ピン59の中心間の距離よりも長くなるように構成されており、それにより、図6に示すように、吸気カム6が回転すると、これとローラ57との当接点の移動量よりも、アジャストボルト52aの移動量の方が大きくなる。
一方、下リンク54が最小リフト位置にある場合、上記四節リンクでは、上ピン55および下ピン58の中心間の距離が、ロッカアームシャフト56および連結ピン59の中心間の距離よりも短くなるように構成されており、それにより、図7に示すように、吸気カム6が回転すると、これとローラ57との当接点の移動量よりも、アジャストボルト52aの移動量の方が小さくなる。
以上の理由により、吸気弁4は、下リンク54が最大リフト位置にあるときには、最小リフト位置にあるときよりも大きなバルブリフトLiftinで開弁する。具体的には、吸気カム6の回転中、吸気弁4は、下リンク54が最大リフト位置にあるときには、図8の実線で示すバルブリフト曲線に従って開弁し、バルブリフトLiftinは、その最大値Liftinmaxを示す。一方、下リンク54が最小リフト位置にあるときには、2点鎖線で示すバルブリフト曲線に従って開弁し、バルブリフトLiftinは、その最小値Liftinminを示す。なお、図8の横軸は、吸気カムシャフト5の回転角度であるカム角を表している。
したがって、このバルブリフト可変機構50では、モータ61を介して、下リンク54を最大リフト位置と最小リフト位置との間で回動させることにより、吸気弁4のバルブリフトLiftinを、最大値Liftinmaxと最小値Liftinminとの間で無段階に変化させることができる。なお、同図に示すように、吸気弁4の開弁タイミングは、バルブリフトLiftinが最小値Liftinminを示すときには、最大値Liftinmaxを示すときよりも遅くなる。これは、バルブリフトLiftinが小さいほど、バルブリフト曲線の立ち上がりの勾配がより小さくなるので、バルブクリアランスの影響により、吸気弁4の開き始めがより遅くなることに起因する。
また、エンジン3には、回動角センサ26が設けられおり(図2参照)、この回動角センサ26は、回動軸66すなわち短アーム65の回動角を検出して、その検出信号をECU2に出力する。ECU2は、この回動角センサ26の検出信号に基づき、吸気弁4のバルブリフトLiftinを算出する。
次に、前述したカム位相可変機構70について説明する。このカム位相可変機構70は、電磁式のものであり、以下に述べるように、電磁力Fsolにより、吸気カム6すなわち吸気カムシャフト5のクランクシャフト3bに対する位相(以下「カム位相」という)Cainを、所定範囲(後述する最遅角値Cainrtと最進角値Cainadとの間の範囲)内で無段階に変更することで、吸気弁4のバルブタイミングを無段階に変更するものである。カム位相可変機構70は、図9〜図11に示すように、遊星歯車装置71および電磁ブレーキ72などを備えている。
この遊星歯車装置71は、吸気カムシャフト5およびスプロケット5aの間で回転を伝達するものであり、リングギヤ71a、3つのプラネタリピニオンギヤ71b、サンギヤ71cおよびプラネタリキャリア71dを備えている。このリングギヤ71aは、電磁ブレーキ72の後述するアウタケーシング73に連結されており、これと同軸かつ一体に回転する。また、サンギヤ71cは、吸気カムシャフト5の先端部に同軸かつ一体に回転するように取り付けられている。
一方、プラネタリキャリア71dは、その断面がほぼ三角形に形成され、その3つの角部にシャフト71eがそれぞれ突設されている。プラネタリキャリア71dは、これらのシャフト71eを介してスプロケット5aに連結されており、それにより、スプロケット5aと同軸かつ一体に回転するように構成されている。
また、各プラネタリピニオンギヤ71bは、プラネタリキャリア71dの各シャフト71eに回転自在に支持され、サンギヤ71cとリングギヤ71aの間に配置され、これらと常に噛み合っている。
さらに、前述した電磁ブレーキ72は、アウタケーシング73、コア74、ソレノイド75およびリターンスプリング76を備えている。アウタケーシング73は、中空に形成され、その内部にコア74が相対的に回動自在に設けられている。コア74は、断面円形の基部74aと、これから放射状に延びる2つのアーム74b,74bを備えている。コア74は、その基部74aがプラネタリキャリア71dに取り付けられており、それにより、プラネタリキャリア71dと同軸かつ一体に回転する。
一方、アウタケーシング73の内周面には、最遅角位置および最進角位置の一対のストッパ73a,73bを1組として、計2組のストッパ73a,73bが互いに間隔を存して設けられている。コア74の各アーム74bは、一対のストッパ73a,73b間に配置されており、それにより、コア74は、アーム74bが最遅角位置ストッパ73aに当接し、係止される最遅角位置(図11に実線で示す位置)と、最進角位置ストッパ73bに当接し、係止される最進角位置(図11に2点鎖線で示す位置)との間で、アウタケーシング73に対して相対的に回動可能に構成されている。
また、リターンスプリング76は、圧縮された状態で、最進角位置ストッパ73bの一つと、これと対向するアーム74bとの間に掛け渡されており、このリターンスプリング76の付勢力により、アーム74bは最遅角位置ストッパ73a側に付勢されている。
一方、ソレノイド75は、リターンスプリング76と反対側の最進角位置ストッパ73bに取り付けられており、この最進角位置ストッパ73bの、アーム74bと対向する側の端部に面一の状態で設けられている。このソレノイド75は、ECU2に電気的に接続されており、ECU2からの位相制御入力Ucain(電圧信号)により励磁されると、その電磁力Fsolにより、対向するアーム74bを、リターンスプリング76の付勢力に抗しながら吸引し、最進角位置ストッパ73b側に回動させる。
以上のように構成されたカム位相可変機構70の動作について説明する。このカム位相可変機構70では、電磁ブレーキ72のソレノイド75が励磁されていないときには、コア74は、リターンスプリング76の付勢力により、そのアーム74bが最遅角位置ストッパ73aに当接する最遅角位置に保持され、それにより、カム位相Cainは、最遅角値Cainrt(図12参照)に保持される。
その状態で、スプロケット5aが図11の矢印Y1方向に回転すると、プラネタリキャリア71dおよびリングギヤ71aが一体に回転することにより、プラネタリピニオンギヤ71bが回転せず、サンギヤ71cがプラネタリキャリア71dおよびリングギヤ71aと一体に回転する。すなわち、スプロケット5aと吸気カムシャフト5が一体に回転する。
また、コア74が最遅角位置に保持されている状態で、ソレノイド75がECU2からの位相制御入力Ucainにより励磁されると、ソレノイド75の電磁力Fsolにより、コア74のアーム74bが、リターンスプリング76の付勢力に抗しながら、最進角位置ストッパ73b側すなわち最進角位置側に吸引され、電磁力Fsolとリターンスプリング76の付勢力とが釣り合う位置まで回動する。言い換えれば、アウタケーシング73が、コア74に対して相対的に矢印Y1と逆方向に回動する。
これにより、リングギヤ71aがプラネタリキャリア71dに対して相対的に図10の矢印Y2方向に回動し、それに伴い、プラネタリピニオンギヤ71bが図10の矢印Y3方向に回動することで、サンギヤ71cが図10の矢印Y4方向に回動する。その結果、吸気カムシャフト5が、スプロケット5aに対して相対的にスプロケットの回転方向(すなわち図10の矢印Y2と逆方向)に回動することになり、カム位相Cainが進角される。
この場合、アウタケーシング73の回動がリングギヤ71a、プラネタリピニオンギヤ71bおよびサンギヤ71cを介して、吸気カムシャフト5に伝達されるので、遊星歯車装置71の増速作用により、吸気カムシャフト5は、スプロケット5aに対してアウタケーシング73の回動角度が増幅された角度分、回動することになる。すなわち、吸気カム6のカム位相Cainの進角量は、アウタケーシング73の回動角度を増幅した値になるように設定されている。これは、ソレノイド75の電磁力Fsolが作用可能な距離には限界があるので、それを補償し、カム位相Cainをより広範囲で変化させるためである。
以上のカム位相可変機構70の動作中、図12に示すように、カム位相Cainは、ソレノイド75への位相制御入力Ucainにより、最遅角値Cainrt(0゜)と最進角値Cainad(例えば55゜)の間で連続的に変化するとともに、位相制御入力Ucainが増大する方向のときのカム位相Cainの値を示す実線の曲線と、位相制御入力Ucainが減少する方向のときのカム位相Cainの値を示す破線の曲線とが互いに異なる、いわゆるヒシテリシス特性を示す。これは、図13に示すように、ソレノイド75が、位相制御入力Ucainにより励磁され、電磁力Fsolを発生する際、起動時の電磁力Fsolの立ち上がりが遅いという特性を備えていることに起因する。
また、以上のように、カム位相Cainが最遅角値Cainrtと最進角値Cainadの間で変更されることにより、吸気弁4のバルブタイミングは、図14に実線で示す最遅角タイミングと、図14に2点鎖線で示す最進角タイミングとの間で、無段階に変更される。
なお、本実施形態において、以上のようなカム位相可変機構70を、従来の油圧駆動式のカム位相可変機構に代えて用いた理由は、以下による。すなわち、従来の油圧駆動式のカム位相可変機構は、油圧ポンプなどの起動により油圧が立ち上がり、カム位相Cainを制御可能になるまでに時間を要するとともに、油温が極低温のときには、応答性が悪化してしまう特性を有し、むだ時間が大きく、応答性が低いという欠点を備えている。これに対して、本実施形態のカム位相可変機構70は、油圧の立ち上がりを待つ必要がなく、油温の影響を受けることがなく、起動時からカム位相Cainを適切に制御できるとともに、むだ時間がより小さく、より高い応答性を確保できるという利点を備えていることによる。
以上のように、本実施形態の可変式吸気動弁機構40では、バルブリフト可変機構50により、吸気弁4のバルブリフトLiftinが無段階に変更されるとともに、カム位相可変機構70により、カム位相Cainすなわち吸気弁4のバルブタイミングが無段階に変更される。また、ECU2により、後述するように、バルブリフト可変機構50およびカム位相可変機構70を介して、バルブリフトLiftinおよびカム位相Cainがそれぞれ制御される。その際、例えば、バルブリフトLiftinが最大値Liftinmaxに制御され、かつカム位相Cainが最遅角値Cainrtに制御されているときでも、吸気弁4を吸気行程のTDC位置よりも前のタイミングで開弁させるように、可変式吸気動弁機構40は構成されている。
一方、吸気カムシャフト5のカム位相可変機構70と反対側の端部には、カム角センサ27(図2参照)が設けられている。このカム角センサ27は、例えばマグネットロータおよびMREピックアップで構成されており、吸気カムシャフト5の回転に伴い、パルス信号であるCAM信号を所定のカム角(例えば1゜)ごとにECU2に出力する。ECU2は、このCAM信号および前述したCRK信号に基づき、カム位相Cainを算出する。
さらに、図2に示すように、ECU2には、アクセル開度センサ28およびイグニッション・スイッチ(以下「IG・SW」という)29が接続されている。このアクセル開度センサ28は、図示しないアクセルペダルの開度(以下「アクセル開度」という)APを検出して、その検出信号をECU2に出力する。また、IG・SW29は、イグニッションキー(図示せず)操作によりON/OFFされるとともに、そのON/OFF状態を表す信号をECU2に出力する。なお、本実施形態では、アクセル開度APが負荷パラメータおよび第1負荷パラメータに相当する。
ECU2は、I/Oインターフェース、CPU、RAMおよびROMなどからなるマイクロコンピュータで構成されており、前述した各種のセンサ20〜28の検出信号およびIG・SW29のON/OFF信号などに応じて、エンジン3の運転状態を判別するとともに、吸入空気量を制御する。具体的には、後述するように、バルブリフト可変機構50およびカム位相可変機構70を介して、バルブリフトLiftinおよびカム位相Cainをそれぞれ制御することにより、吸入空気量が制御される。
一般に、吸入空気量制御では、バルブリフトLiftinを制御したときの方が、カム位相Cainを制御したときよりも、高い応答性を確保できる。言い換えれば、カム位相Cainを制御したときの方が、バルブリフトLiftinを制御したときよりも、吸入空気量を微少な変化量できめ細かく制御でき、高い制御精度を確保できる。これは、以下の理由による。
すなわち、図15(a)〜(c)に示すように、バルブリフトLiftinのみを変化させると、同図のハッチング部分の面積は、バルブリフトLiftinの減少に伴って、2次元的に減少する。その際、吸入空気量は、このハッチング部の面積に比例して変化するので、バルブリフトLiftinの増減により、吸入空気量を急激に増減させることができ、高い応答性を確保できることが判る。
一方、図16(a)〜(c)に示すように、カム位相Cainのみを変化させると、同図のハッチング部分の面積は、カム位相Cainの進角に伴って、ほぼ1次元的に変化する。この傾向は、バルブリフトLiftinが極めて小さい状態では顕著となる。その際、上述したように、吸入空気量は、同図のハッチング部分の面積に比例して変化するので、カム位相Cainの進角・遅角により、吸入空気量を微少な変化量できめ細かく増減させることができ、高い制御精度を確保できることが判る。
したがって、本実施形態の吸入空気量制御では、上述した理由により、バルブリフト制御およびカム位相制御の一方を、マスタ側とし、他方をスレーブ側とするマスタ・スレーブ制御が後述するように実行される。すなわち、吸入空気量制御において、エンジン3の高負荷運転時などの高い応答性が要求されるときには、バルブリフト制御がマスタ側に、カム位相制御がスレーブ側にそれぞれ設定されるとともに、低負荷運転時などの高い制御精度が要求されるときには、バルブリフト制御がスレーブ側に、カム位相制御がマスタ側にそれぞれ設定される。
なお、以下の説明では、バルブリフト制御がマスタ側で、カム位相制御がスレーブ側に設定されている制御モードを、「リフトマスタモード」と表記し、バルブリフト制御がスレーブ側で、カム位相制御がマスタ側に設定されている制御モードを、「位相マスタモード」と表記する。
また、本実施形態では、ECU2により、目標吸入空気量設定手段、吸入空気量検出手段、第1制御値算出手段、第2制御値算出手段、制御入力算出手段、第1制御手段、第2制御手段、制御選択手段、負荷域判定手段、第2負荷パラメータ設定手段、カム位相制御値算出手段およびバルブリフト制御値算出手段が構成されている。
次に、図17を参照しながら、本実施形態の吸入空気量制御装置1について説明する。同図に示すように、吸入空気量制御装置1は、目標吸入空気量算出部90、第1ACTASSコントローラ100、第1スレーブ値算出部110、目標バルブリフト算出部111、バルブリフトコントローラ120、第2ACTASSコントローラ200、第2スレーブ値算出部210、目標カム位相算出部211、カム位相コントローラ220、およびマスタ・スレーブ選択部230を備えており、これらはいずれも、具体的には、ECU2により構成されている。
この吸入空気量制御装置1では、以下に述べるように、リフト制御入力Uliftinおよび位相制御入力Ucainが算出されるとともに、これらの制御入力Uliftin,Ucainがそれぞれ、バルブリフト可変機構50およびカム位相可変機構70に入力されることにより、実吸入空気量Gcylが目標吸入空気量Gcyl_cmdに収束するように制御される。
この実吸入空気量Gcylは、気筒内に実際に吸入されたと推定される吸入空気量であり、具体的には、図19の式(1)により算出される。同式(1)において、VBは吸気管内体積を、Rは所定の気体定数をそれぞれ表している。また、同式(1)において、記号(k)付きの各離散データは、所定の制御周期ΔT1に同期してサンプリング(または算出)されたデータであることを示しており、記号kは各離散データのサンプリングサイクルの順番を表している。例えば、記号kは今回の制御タイミングでサンプリングされた値であることを、記号k−1は前回の制御タイミングでサンプリングされた値であることをそれぞれ示している。この点は、以下の離散データにおいても同様である。なお、以下の説明では、各離散データにおける記号(k)などを適宜、省略する。
また、制御周期ΔT1は、吸入空気量の動特性を後述するプラントモデル[式(8),(22)]に適切に反映することができるような所定の値(例えば10msec)に設定されている。さらに、本実施形態では、制御周期ΔT1は、第1および第2制御値算出手段の算出周期に相当する。
この吸入空気量制御装置1では、まず、目標吸入空気量算出部90(目標吸入空気量設定手段)により、アクセル開度AP、エンジン回転数NEおよびエンジン水温TWなどに応じて、目標吸入空気量Gcyl_cmdが算出される。
次に、第1ACTASSコントローラ100(第1制御値算出手段、第1制御手段)において、後述する制御アルゴリズムにより、目標吸入空気量Gcyl_cmdに応じて、目標バルブリフトのマスタ値Liftin_cmd_msが算出されるとともに、第1スレーブ値算出部110(第2制御値算出手段、第1制御手段)において、後述するテーブル検索により、目標カム位相Cain_cmdに応じて、目標バルブリフトのスレーブ値Liftin_cmd_slが算出される。
さらに、目標バルブリフト算出部111により、目標バルブリフトLiftin_cmdが、そのマスタ値Liftin_cmd_msとスレーブ値Liftin_cmd_slの和として算出される。そして、バルブリフトコントローラ120(制御入力算出手段)において、後述する制御アルゴリズムにより、目標バルブリフトLiftin_cmdおよびバルブリフトLiftinに応じて、バルブリフト可変機構50への制御入力であるリフト制御入力Uliftinが算出される。
一方、第2ACTASSコントローラ200(第1制御値算出手段、第2制御手段)において、後述する制御アルゴリズムにより、目標吸入空気量Gcyl_cmdに応じて、目標カム位相のマスタ値Cain_cmd_msが算出されるとともに、第2スレーブ値算出部210(第2制御値算出手段、第2制御手段)において、後述するテーブル検索により、目標バルブリフトLiftin_cmdに応じて、目標カム位相のスレーブ値Cain_cmd_slが算出される。
さらに、目標カム位相算出部211により、目標カム位相Cain_cmdが、そのマスタ値Cain_cmd_msとスレーブ値Cain_cmd_slの和として算出される。そして、カム位相コントローラ220(制御入力算出手段)において、後述する制御アルゴリズムにより、目標カム位相Cain_cmdおよびカム位相Cainに応じて、カム位相可変機構70への制御入力である位相制御入力Ucainが算出される。
また、マスタ・スレーブ選択部230(制御選択手段)により、後述するように、目標バルブリフトLiftin_cmdまたは目標カム位相Cain_cmdに基づき、第1ACTASSコントローラ100における目標バルブリフトのマスタ値Liftin_cmd_msの算出アルゴリズムが選択されるとともに、第2ACTASSコントローラ200における目標カム位相のマスタ値Cain_cmd_msの算出アルゴリズムが選択される。
なお、本実施形態では、目標カム位相Cain_cmdが、第1制御値、第2制御値、第2負荷パラメータ、カム位相制御の状態を表すパラメータおよびカム位相制御値に相当する。また、目標カム位相のマスタ値Cain_cmd_msが、フィードバック制御値およびカム位相フィードバック制御値に相当し、目標カム位相のスレーブ値Cain_cmd_slが、第2制御値およびカム位相設定値に相当する。
さらに、目標バルブリフトLiftin_cmdが、第1制御値、第2制御値、第2負荷パラメータ、バルブリフト制御の状態を表すパラメータおよびバルブリフト制御値に相当する。また、目標バルブリフトのマスタ値Liftin_cmd_msが、フィードバック制御値およびバルブリフトフィードバック制御値に相当し、目標バルブリフトのスレーブ値Liftin_cmd_slが、第2制御値およびバルブリフト設定値に相当する。
次に、図18を参照しながら、前述した第1ACTASSコントローラ100について説明する。この第1ACTASSコントローラ100は、目標値フィルタ型2自由度スライディングモード制御アルゴリズム[図19に示す式(2)〜(7)]により、目標バルブリフトのマスタ値Liftin_cmd_msを算出するものであり、目標値フィルタ101、スライディングモードコントローラ102および適応外乱オブザーバ108を備えている。
この目標値フィルタ101では、図19の式(2)に示す一次遅れフィルタアルゴリズムにより、目標吸入空気量のフィルタ値Gcyl_cmd_fが算出される。同式(2)において、POLE_fは、目標値フィルタ設定パラメータであり、−1<POLE_f<0の関係が成立する値に設定される。
次に、スライディングモードコントローラ102について説明する。このスライディングモードコントローラ102は、以下に述べるスライディングモード制御アルゴリズムにより、目標バルブリフトのマスタ値Liftin_cmd_msを算出するものであり、等価制御入力算出部103、追従誤差算出部104、切換関数算出部105、到達則入力算出部106およびマスタ値算出部107を備えている。
まず、等価制御入力算出部103では、図19の式(4)により、等価制御入力Ueqが算出される。同式(4)において、POLEは、後述する切換関数設定パラメータであり、a1,a2,b1,b2は、後述するモデルのモデルパラメータであり、c1は、適応外乱オブザーバ108により、後述するように算出される外乱推定値を表している。
また、追従誤差算出部104では、図19の式(7)により、追従誤差Egcが算出され、切換関数算出部105では、図19の式(6)により、切換関数σが算出される。同式(6)において、切換関数設定パラメータPOLEは、−1<POLE<0の関係が成立する値に設定される。
さらに、到達則入力算出部106では、図19の式(5)により、到達則入力Urchが算出される。同式(5)において、Krchは、到達則ゲインであり、所定値に設定される。そして、マスタ値算出部107において、式(3)により、目標バルブリフトのマスタ値Liftin_cmd_msが算出される。
以上のように、スライディングモードコントローラ102では、図19の式(3)〜(7)のスライディングモード制御アルゴリズムにより、目標バルブリフトのマスタ値Liftin_cmd_msが算出される。なお、これらの式(3)〜(7)は、以下のように導出される。
まず、プラント112(図18参照)を、目標バルブリフトLiftin_cmdを入力とし、実吸入空気量Gcylを出力とする系として定義するとともに、離散時間系モデルとしてモデル化すると、図19に示す式(8)が得られる。同式(8)において、a1,a2,b1,b2は、モデルパラメータを示しており、これらは所定値に設定されている。
同式(8)は、目標バルブリフトLiftin_cmdと実吸入空気量Gcylとの間の動特性の関係を表しているが、両者の動特性の関係と、目標バルブリフトLiftin_cmdのフィードバック成分であるマスタ値Liftin_cmd_msと、実吸入空気量Gcylとの動特性の関係は、実質的に同じと考えられるので、同式(8)の目標バルブリフトLiftin_cmdを、目標バルブリフトのマスタ値Liftin_cmd_msに置き換えると、図19の式(9)のモデルが導出される。さらに、このモデルに基づき、実吸入空気量Gcylが目標吸入空気量のフィルタ値Gcyl_cmd_fに収束するように、スライディングモード制御アルゴリズムを適用すると、前述した図19の式(3)〜(7)が導出される。
一方、適応外乱オブザーバ108では、以下に述べるように、外乱推定値c1が算出されるとともに、その算出アルゴリズムが、前述したマスタ・スレーブ選択部230により、目標バルブリフトLiftin_cmdまたは目標カム位相Cain_cmdに基づいて選択される。
すなわち、前述したように、吸入空気量制御において、リフトマスタモードのときには、外乱推定値c1が、図20の式(10)〜(14)の同定アルゴリズムにより算出される。同式(10)において、Pdovは所定の同定ゲインを、e_dovは同定誤差をそれぞれ表している。この同定誤差e_dovは、式(11)により算出される。また、同式(11)のGcyl_hatは、実吸入空気量Gcylの同定値であり、式(12)により算出される。同式(12)のθは、その転置行列が式(13)のように表されるベクトルであり、ζは、その転置行列が式(14)のように表されるベクトルである。
一方、位相マスタモードのときには、図20の式(15)により、外乱推定値c1が算出される。同式(15)を参照すると明らかなように、この式(15)で算出された外乱推定値c1を、前述した式(4)に適用すると、Ueq=−Urchとなり、その結果、バルブリフト制御でのフィードバック成分である目標バルブリフトのマスタ値Liftin_cmd_msが値0となる。すなわち、位相マスタモードのときには、Liftin_cmd=Liftin_cmd_slとなる。
以上のように、第1ACTASSコントローラ100では、目標バルブリフトのマスタ値Liftin_cmd_msが、吸入空気量の制御モードがリフトマスタモードのときには、リフトマスタモード用アルゴリズム[式(2)〜(7),(10)〜(14)]で算出され、位相マスタモードでは、位相マスタモード用アルゴリズム[式(2)〜(7),(15)]で算出される。
このように、目標バルブリフトのマスタ値Liftin_cmd_msがリフトマスタモード用アルゴリズムで算出されたときには、上述したフィルタ型2自由度スライディングモード制御アルゴリズムにより、実吸入空気量Gcylの目標吸入空気量Gcyl_cmdへの追従性、および外乱抑制能力をいずれも高いレベルで確保できる。特に、目標値フィルタ設定パラメータPOLE_fを、−1<POLE_f<0の範囲内で任意に設定することにより、追従性を自在に指定することができるとともに、切換関数設定パラメータPOLEを、−1<POLE<0の範囲内で任意に設定することにより、外乱抑制能力を自在に指定することができる。
これを図21を参照しながら具体的に説明すると、同図の実吸入空気量Gcylを表す曲線において、実線で示す曲線は、目標値フィルタ設定パラメータPOLE_fおよび切換関数設定パラメータPOLEをいずれも値0に近い値に設定した場合のものを示しており、2点鎖線で示す曲線は、目標値フィルタ設定パラメータPOLE_fおよび切換関数設定パラメータPOLEをいずれも値−1に近い値に設定した場合のものを示している。
同図において、目標吸入空気量Gcyl_cmdが値0から変化した以降(時刻t1以降)における2つの曲線を比較すると、目標値フィルタ設定パラメータPOLE_fを値0に近い値に設定したときの方が、値−1に近い値に設定したときよりも、実吸入空気量Gcylの目標吸入空気量Gcyl_cmdへの追従性が向上することが判る。また、外乱が加えられた以降(時刻t2以降)の2つの曲線を比較すると、切換関数設定パラメータPOLEを値0に近い値に設定したときの方が、値−1に近い値に設定したときよりも、外乱抑制能力が向上することが判る。
以上のように、目標値フィルタ設定パラメータPOLE_fを前述した範囲内で値0に近い値に設定することにより、追従性を向上させることができるとともに、切換関数設定パラメータPOLEを、前述した範囲内で値0に近い値に設定することにより、外乱抑制能力を向上させることができる。すなわち、エンジン3の要求トルクが急変した際でも、吸入空気量制御でのオーバーシュートおよび振動的な挙動を回避できる。さらに、2自由度スライディングモード制御アルゴリズムを用いているので、目標値フィルタ設定パラメータPOLE_fおよび切換関数設定パラメータPOLEを互いに別個に設定できる。それにより、例えば、オーバーシュートを回避すべく、実吸入空気量Gcylの目標吸入空気量Gcyl_cmdへの追従性(収束速度)を緩やかに設定した場合でも、高い外乱抑制能力を確保することができる。
次に、図22を参照しながら、前述した第2ACTASSコントローラ200について説明する。この第2ACTASSコントローラ200は、前述した第1ACTASSコントローラ100と同様に、目標値フィルタ型2自由度スライディングモード制御アルゴリズム[図23に示す式(16)〜(21)]により、目標カム位相のマスタ値Cain_cmd_msを算出するものであり、目標値フィルタ201、スライディングモードコントローラ202および適応外乱オブザーバ208を備えている。
この目標値フィルタ201では、図23の式(16)により、すなわち前述した式(2)と同じ1次遅れフィルタアルゴリズムにより、目標吸入空気量のフィルタ値Gcyl_cmd_fが算出される。
次に、スライディングモードコントローラ202について説明する。このスライディングモードコントローラ202は、前述したスライディングモードコントローラ102と同様に、以下に述べるスライディングモード制御アルゴリズムにより、目標カム位相のマスタ値Cain_cmd_msを算出するものであり、等価制御入力算出部203、追従誤差算出部204、切換関数算出部205、到達則入力算出部206およびマスタ値算出部207を備えている。
まず、等価制御入力算出部203では、図23の式(18)により、等価制御入力Ueq’が算出される。同式(18)において、POLE’は、後述する切換関数設定パラメータであり、a1’,a2’,b1’,b2’は、後述するモデルのモデルパラメータであり、c1’は、適応外乱オブザーバ208により、後述するように算出される外乱推定値を表している。
また、追従誤差算出部204では、図23の式(21)すなわち前述した式(7)と同じ式により、追従誤差Egcが算出され、切換関数算出部205では、図23の式(20)により、切換関数σ’が算出される。同式(20)において、切換関数設定パラメータPOLE’は、−1<POLE’<0の関係が成立する値に設定される。
さらに、到達則入力算出部206では、図23の式(19)により、到達則入力Urch’が算出される。同式(19)において、Krch’は、到達則ゲインを表しており、所定値に設定される。そして、マスタ値算出部207において、式(17)により、目標カム位相のマスタ値Cain_cmd_msが算出される。
以上のように、スライディングモードコントローラ202では、図23の式(17)〜(21)のスライディングモード制御アルゴリズムにより、目標カム位相のマスタ値Cain_cmd_msが算出される。これらの式(17)〜(21)は、以下のように導出される。
まず、プラント212(図22参照)を、目標カム位相Cain_cmdを入力とし、実吸入空気量Gcylを出力とする系として定義するとともに、離散時間系モデルとしてモデル化すると、図23に示す式(22)が得られる。同式(22)において、a1’,a2’,b1’,b2’は、モデルパラメータを示しており、これらは所定値に設定されている。
同式(22)の目標カム位相Cain_cmdを、目標カム位相のマスタ値Cain_cmd_msに置き換えると、図23の式(23)のモデルが導出される。さらに、このモデルに基づき、実吸入空気量Gcylが目標吸入空気量のフィルタ値Gcyl_cmd_fに収束するように、スライディングモード制御アルゴリズムを適用すると、前述した式(17)〜(21)が導出される。
一方、適応外乱オブザーバ208では、以下に述べるように、外乱推定値c1’が算出されるとともに、その算出アルゴリズムが、前述したマスタ・スレーブ選択部230により、目標バルブリフトLiftin_cmdまたは目標カム位相Cain_cmdに基づいて選択される。
すなわち、吸入空気量制御において、位相マスタモードのときには、外乱推定値c1’が、図24の式(24)〜(28)の同定アルゴリズムにより算出される。同式(25)において、Pdov’は所定の同定ゲインを、e_dov’は、同定誤差をそれぞれ表している。この同定誤差e_dov’は、式(25)により算出される。また、同式(25)のGcyl_hat’は、実吸入空気量Gcylの同定値であり、式(26)により算出される。同式(26)のθ’は、その転置行列が式(27)のように表されるベクトルであり、ζ’は、その転置行列が式(28)のように表されるベクトルである。
一方、リフトマスタモードのときには、図24の式(29)により、外乱推定値c1’が算出される。同式(29)を参照すると明らかなように、この式(29)で算出された外乱推定値c1’を、前述した式(18)に適用すると、Ueq’=−Urch’となり、その結果、カム位相制御でのフィードバック成分である目標カム位相のマスタ値Cain_cmd_msが値0となる。すなわち、リフトマスタモードのときには、Cain_cmd=Cain_cmd_slとなる。
以上のように、第2ACTASSコントローラ200では、目標カム位相のマスタ値Cain_cmd_msが、吸入空気量の制御モードが位相マスタモードのときには、位相マスタモード用アルゴリズム[式(16)〜(21),(24)〜(28)]で算出され、リフトマスタモードでは、リフトマスタモード用アルゴリズム[式(16)〜(21),(29)]で算出される。
このように、目標カム位相のマスタ値Cain_cmd_msが、位相マスタモード用アルゴリズムで算出されたときには、上述した目標値フィルタ型2自由度スライディングモード制御アルゴリズムにより、実吸入空気量Gcylの目標吸入空気量Gcyl_cmdへの追従性、および外乱抑制能力をいずれも高いレベルで確保できる。特に、前述したように、目標値フィルタ設定パラメータPOLE_fを、−1<POLE_f<0の範囲内で任意に設定することにより、追従性を自在に指定することができるとともに、切換関数設定パラメータPOLE’を、−1<POLE’<0の範囲内で任意に設定することにより、外乱抑制能力を自在に指定することができる。
次に、前述したバルブリフトコントローラ120について説明する。このバルブリフトコントローラ120は、以下に述べる制御アルゴリズムにより、バルブリフトLiftinを目標バルブリフトLiftin_cmdに収束させるように、リフト制御入力Uliftinを算出するものであり、図25に示すように、状態予測器121、オンボード同定器122および2自由度スライディングモードコントローラ123で構成されている。
この状態予測器121では、以下に述べる予測アルゴリズムにより、バルブリフトLiftinの予測値である予測バルブリフトPre_Liftinが算出される。
具体的には、プラントモデルとして、図26に示す式(30)を用いる。同式(30)において、dxはプラントの特性によって決まるむだ時間を表している。また、a1'',a2'',b1'',b2''はモデルパラメータを表しており、オンボード同定器122により、後述するように逐次同定される。さらに、記号nは離散化した時間を表し、記号(n)の付いた各離散データは、前述した記号(k)付きの離散データよりも短い所定の制御周期ΔT2(例えば2msec)に同期してサンプリングされたデータであることを示している。この点は、以下の他の離散データにおいても同様であり、また、以下の説明では、離散データであることを表す記号(n)を適宜、省略する。なお、本実施形態では、制御周期ΔT2は、制御入力算出手段の算出周期に相当する。
次に、マトリクスA、Bを、モデルパラメータa1'',a2'',b1'',b2''を用いて図26に示す式(31),(32)のように定義するとともに、上記式(30)を変形することにより、図26に示す式(33)が得られる。
この式(33)を用いることで、予測バルブリフトPre_Liftinを算出することは可能であるけれども、モデル次数の不足や制御対象の非線形特性などに起因して、予測バルブリフトPre_Liftinに定常偏差およびモデル化誤差が生じる可能性がある。
これを回避するために、本実施形態の状態予測器121では、式(33)に代えて、図26に示す式(34)により、予測バルブリフトPre_Liftinを算出する。この式(34)は、式(33)の右辺に、定常偏差およびモデル化誤差を補償するための補償値γ1を加入するとともに、左辺のLiftinをPre_Liftinに置き換えたものである。
次に、オンボード同定器122について説明する。このオンボード同定器122は、以下に述べる逐次型同定アルゴリズムにより、前述した式(34)におけるモデルパラメータの行列成分α1,α2,βjおよび補償値γ1のベクトルθxを同定するものである。
具体的には、図27に示す式(35)〜(40)により、ベクトルθxを算出する。このベクトルθxは、その転置行列が同図の式(39)のように定義される。また、式(35)において、KPはゲイン係数のベクトルを表しており、このゲイン係数のベクトルKPは、式(36)により算出される。この式(36)のPは、式(37)で定義されるdx+4次の正方行列であり、ζxは、その転置行列が式(40)のように定義されるベクトルである。さらに、式(35)の同定誤差ideは、式(38)により算出される。
以上のような同定アルゴリズムでは、式(37)の重みパラメータλ1、λ2の設定により、以下の4つの同定アルゴリズムのうちの1つが選択される。
すなわち、
λ1=1,λ2=0 ;固定ゲインアルゴリズム
λ1=1,λ2=1 ;最小2乗法アルゴリズム
λ1=1,λ2=λ ;漸減ゲインアルゴリズム
λ1=λ,λ2=1 ;重み付き最小2乗法アルゴリズム
ただし、λは、0<λ<1に設定される所定値。
なお、本実施形態では、同定精度およびベクトルθxの最適値への収束速度をいずれも最適に確保するために、重み付き最小2乗法アルゴリズムが採用されている。
次に、2自由度スライディングモードコントローラ(以下「TDFSLDコントローラ」という)123について説明する。このTDFSLDコントローラ123では、以下に述べるように、目標値フィルタ型2自由度スライディングモード制御アルゴリズムにより、バルブリフトLiftinが目標バルブリフトLiftin_cmdに収束するように、リフト制御入力Uliftinが算出される。
具体的には、前述した式(30)のプラントモデルに基づき、前記第1ACTASSコントローラ100と同様に、目標値フィルタ型2自由度スライディングモード制御アルゴリズムを適用すると、図28に示す式(41)〜(46)が導出される。同図の式(41)において、Liftin_cmd_fは、目標バルブリフトのフィルタ値を表しており、POLE_f''は、目標値フィルタ設定パラメータであり、−1<POLE_f''<0の関係が成立する値に設定される。
また、等価制御入力Ueq''は、式(43)により算出される。同式(43)において、POLE''は、切換関数設定パラメータであり、−1<POLE''<0の関係が成立する値に設定される。
さらに、到達則入力Urch''は、式(44)により算出される。同式(44)において、Krch''は、所定の到達則ゲインであり、Pre_σ''は、式(45)により算出される予測切換関数である。また、同式(45)のPre_E_lfは、追従誤差であり、式(46)により算出される。
以上のように、このバルブリフトコントローラ120では、状態予測器121において、補償値γ1を加えた状態予測アルゴリズムにより、予測バルブリフトPre_Liftinが算出されるとともに、この補償値γ1がオンボード同定器122により逐次同定されるので、前述した定常偏差およびモデル化誤差を補償しながら、予測バルブリフトPre_Liftinを精度よく算出することができる。
また、TDFSLDコントローラ123においては、バルブリフトLiftinを目標バルブリフトLiftin_cmdに収束させることができると同時に、前述したように、その収束挙動および収束速度を、切換関数設定パラメータPOLE''の設定により任意に指定することができる。さらに、補償値γ1が等価制御入力Ueq''の算出式(43)に含まれていることにより、外乱抑制能力も向上させることができる。
なお、第1ACTASSコントローラ100およびバルブリフトコントローラ120における切換関数設定パラメータPOLE,POLE''は、−1<POLE<POLE''<0の関係が成立する値に設定される。これにより、バルブリフトコントローラ120による制御の速応性を、第1ACTASSコントローラ100による制御よりも高めることができ、吸入空気量制御の安定性すなわち制御性を向上させることができる。
さらに、バルブリフトコントローラ120では、前述した制御周期ΔT2に同期してサンプリングされたデータを用いることにより、リフト制御入力Uliftinが算出される。すなわち、リフト制御入力Uliftinは、目標バルブリフトLiftin_cmdの算出周期(すなわち制御周期ΔT1)よりも短い周期ΔT2で算出される。これにより、バルブリフトコントローラ120の制御による、バルブリフトLiftinの目標バルブリフトLiftin_cmdへの収束速度を、第1ACTASSコントローラ100の制御による、実吸入空気量Gcylの目標吸入空気量Gcyl_cmdへの収束速度よりも早めることができ、その結果、吸入空気量制御の安定性すなわち制御性をさらに向上させることができる。
次に、前述したカム位相コントローラ220について説明する。このカム位相コントローラ220は、前述したバルブリフトコントローラ120と同様に、以下に述べる制御アルゴリズムにより、カム位相Cainを目標カム位相Cain_cmdに収束させるように、位相制御入力Ucainを算出するものであり、図29に示すように、状態予測器221、オンボード同定器222および2自由度スライディングモードコントローラ223で構成されている。
この状態予測器221では、前述した状態予測器121と同様の予測アルゴリズム、すなわち図30の式(51)により、カム位相Cainの予測値である予測カム位相Pre_Cainが算出される。この式(51)は、以下のように導出される。すなわち、プラントモデルとして、図30に示す式(47)を用いる。同式(47)において、dyはプラントの特性によって決まるむだ時間を表している。また、a1*,a2*,b1*,b2*はモデルパラメータを表しており、オンボード同定器222により、後述するように逐次同定される。
次に、マトリクスA、Bを、モデルパラメータa1*,a2*,b1*,b2*を用いて図30に示す式(48),(49)のように定義するとともに、上記式(47)を変形することにより、図30に示す式(50)が得られる。さらに、この式(50)の右辺に、前述したように、定常偏差およびモデル化誤差を補償するための補償値γ1*を加入するとともに、左辺のCainをPre_Cainに置き換えることにより、図30の式(51)が導出される。
次に、オンボード同定器222について説明する。このオンボード同定器222では、前述したオンボード同定器122と同様の逐次型同定アルゴリズムにより、上記式(51)におけるモデルパラメータの行列成分α1*,α2*,βj*および補償値γ1*のベクトルθ*が同定される。
具体的には、図31に示す式(52)〜(57)により、ベクトルθ*を算出する。このベクトルθ*は、その転置行列が同図の式(56)のように定義される。また、式(52)において、KP*はゲイン係数のベクトルを表しており、このゲイン係数のベクトルKP*は、式(53)により算出される。この式(53)のP*は、式(54)で定義されるdy+4次の正方行列であり、ζ*は、その転置行列が式(57)のように定義されるベクトルである。さらに、式(52)の同定誤差ide*は、式(55)により算出される。
以上のような同定アルゴリズムでは、前述したように、式(54)の重みパラメータλ1*、λ2*の設定により、固定ゲインアルゴリズム、最小2乗法アルゴリズム、漸減ゲインアルゴリズムおよび重み付き最小2乗法アルゴリズムのいずれかを選択可能であり、本実施形態では、前述した理由により、重み付き最小2乗法アルゴリズムが採用される。
次に、2自由度スライディングモードコントローラ(以下「TDFSLDコントローラ」という)223について説明する。このTDFSLDコントローラ223では、以下に述べるように、目標値フィルタ型2自由度スライディングモード制御アルゴリズムにより、カム位相Cainが目標カム位相Cain_cmdに収束するように、位相制御入力Ucainが算出される。
具体的には、前述した式(47)のプラントモデルに基づき、前記TDFSLDコントローラ123と同様の目標値フィルタ型2自由度スライディングモード制御アルゴリズムを適用すると、図32に示す式(58)〜(63)が導出される。同図の式(58)において、Cain_cmd_fは、目標カム位相のフィルタ値を表しており、POLE_f*は、目標値フィルタ設定パラメータであり、−1<POLE_f*<0の関係が成立する値に設定される。
また、等価制御入力Ueq*は、式(60)により算出される。同式(60)において、POLE*は、切換関数設定パラメータであり、−1<POLE*<0の関係が成立する値に設定される。
さらに、到達則入力Urch*は、式(61)により算出される。同式(61)において、Krch*は、所定の到達則ゲインであり、Pre_σ*は、式(62)により算出される予測切換関数である。また、同式(62)のPre_E_ca*は、追従誤差であり、式(63)により算出される。
以上のように、このカム位相コントローラ220では、状態予測器221において、補償値γ1*を加えた状態予測アルゴリズムにより、予測カム位相Pre_Cainが算出されるとともに、この補償値γ1*がオンボード同定器222により逐次同定されるので、前述した定常偏差およびモデル化誤差を補償しながら、予測カム位相Pre_Cainを精度よく算出することができる。
また、TDFSLDコントローラ223においては、カム位相Cainを目標カム位相Cain_cmdに収束させることができると同時に、前述したように、その収束挙動および収束速度を、切換関数設定パラメータPOLE*の設定により任意に指定することができる。さらに、補償値γ1*が等価制御入力Ueq*の算出式(60)に含まれていることにより、外乱抑制能力も向上させることができる。
なお、第2ACTASSコントローラ200およびカム位相コントローラ220における切換関数設定パラメータPOLE’,POLE*は、−1<POLE’<POLE*<0の関係が成立する値に設定される。これにより、カム位相コントローラ220による制御の速応性を、第2ACTASSコントローラ200による制御よりも高めることができ、吸入空気量制御の安定性すなわち制御性を向上させることができる。
さらに、カム位相コントローラ220では、前述した制御周期ΔT2に同期してサンプリングされたデータを用いることにより、位相制御入力Ucainが算出される。すなわち、位相制御入力Ucainが、目標カム位相Cain_cmdの算出周期(すなわち制御周期ΔT1)よりも短い周期ΔT2で算出される。これにより、カム位相コントローラ220の制御による、カム位相Cainの目標カム位相Cain_cmdへの収束速度を、第2ACTASSコントローラ200の制御による、実吸入空気量Gcylの目標吸入空気量Gcyl_cmdへの収束速度よりも早めることができ、その結果、吸入空気量制御の安定性すなわち制御性をさらに向上させることができる。
以下、図33を参照しながら、ECU2により実行されるエンジン制御のうちの主要な制御処理について説明する。同図(a)に示すように、ステップ1(図では「S1」と略す。以下同じ)では、吸入空気量制御処理が、前述した制御周期ΔT1で実行される。この処理では、後述するように、目標バルブリフトLiftin_cmdおよび目標カム位相Cain_cmdなどが算出される。
また、同図(b)に示すように、ステップ2,3では、リフト制御入力Uliftinおよび位相制御入力Ucainが後述するように算出される。これらの算出処理は、前述した理由により、制御周期ΔT1よりも短い制御周期ΔT2(<ΔT1)で実行される。
さらに、同図(c)に示すように、ステップ4,5では、燃料制御処理および点火時期制御処理がTDC信号の発生タイミングに同期してそれぞれ実行される。この燃料制御処理では、その詳細な説明は省略するが、エンジン3の運転状態に応じて、燃料噴射弁12の燃料噴射量TOUTが算出される。また、点火時期制御処理では、後述するように、点火時期Iglogが算出される。
次に、図34を参照しながら、前述した吸入空気量制御処理について説明する。同図に示すように、このプログラムでは、まず、ステップ10で、吸気動弁機構故障フラグF_VLVNGが「1」であるか否かを判別する。この吸気動弁機構故障フラグF_VLVNGは、可変式吸気動弁機構40が故障しているときには「1」に、正常であるときには「0」にそれぞれ設定されるものである。
この判別結果がYESで、可変式吸気動弁機構40が故障しているときには、そのまま本プログラムを終了する。一方、この判別結果がNOで、可変式吸気動弁機構40が正常であるときには、ステップ11に進み、エンジン始動フラグF_ENGSTARTが「1」であるか否かを判別する。このエンジン始動フラグF_ENGSTARTは、図示しない判定処理において、エンジン回転数NEおよびIG・SW29の出力状態に応じて、エンジン始動制御中すなわちクランキング中であるか否かを判定することにより設定されるものであり、具体的には、エンジン始動制御中であるときには「1」に、それ以外のときには「0」にそれぞれ設定される。
ステップ11の判別結果がYESで、エンジン始動制御中であるときには、ステップ12に進み、エンジン水温TWに応じて、図35に示すテーブルを検索することにより、目標吸入空気量の始動時用値Gcyl_cmd_crkを算出する。同図に示すように、このテーブルでは、目標吸入空気量の始動時用値Gcyl_cmd_crkは、エンジン水温TWが高いほど、小さい値に設定されている。これは、エンジン水温TWが高いほど、エンジン3が始動しやすいことで、吸入空気量および燃料噴射量をいずれも小さくできることによる。
次いで、ステップ13に進み、目標吸入空気量Gcyl_cmdを上記始動時用値Gcyl_cmd_crkに設定した後、ステップ14において、前述した式(1)により、実吸入空気量Gcylを算出する。次に、ステップ15に進み、後述するように、リフト&位相制御処理を実行した後、本プログラムを終了する。
一方、ステップ11の判別結果がNOで、エンジン始動制御中でないときには、ステップ16に進み、エンジン3の始動終了直後からの経過時間である触媒暖機制御の実行時間Tcatが所定値Tcatlmt(例えば、30sec)より小さいか否かを判別する。この触媒暖機制御は、エンジン始動後に触媒装置16a,16b内の触媒を急速に活性化させるためのものである。
このステップ16の判別結果がYESで、Tcat<Tcatlmtのときには、ステップ17に進み、アクセル開度APが所定値APREFより小さいか否かを判別する。この所定値APREFは、アクセルペダルが踏まれていないことを判定するためのものであり、アクセルペダルが踏まれていないことを判定可能な値(例えば1゜)に設定されている。
このステップ17の判別結果がYESで、アクセルペダルが踏まれていないときには、触媒暖機制御を実行すべきであるとして、ステップ18に進み、触媒暖機制御の実行時間Tcatおよびエンジン水温TWに応じて、図36に示すマップを検索することにより、目標吸入空気量の触媒暖機用値Gcyl_cmd_astを算出する。
同図のマップにおいて、エンジン水温TWの所定値TW1〜TW3は、TW1<TW2<TW3の関係が成立するように設定されている。このマップでは、目標吸入空気量の触媒暖機用値Gcyl_cmd_astは、エンジン水温TWが低いほど、より大きい値に設定されている。これは、エンジン水温TWが低いほど、触媒の活性化に要する時間が長くなるので、排気ガスボリュームを大きくすることで、触媒の活性化に要する時間を短縮するためである。これに加えて、このマップでは、目標吸入空気量の触媒暖機用値Gcyl_cmd_astは、触媒暖機制御の実行時間Tcatが所定時間Tcat1を経過するまでの間は、実行時間Tcatが長いほど、より大きな値に設定され、所定時間Tcat1の経過後は、実行時間Tcatが長いほど、より小さな値に設定されている。これは、実行時間Tcatの経過に伴い、エンジン3の暖機が進むことで、フリクションが低下した場合において、目標吸入空気量Gcyl_cmdを低減しないと、エンジン回転数NEを目標値に維持するために点火時期が過剰にリタード制御された状態となり、燃焼状態が不安定になってしまうので、それを回避するためである。
次いで、ステップ19に進み、目標吸入空気量Gcyl_cmdを上記触媒暖機用値Gcyl_cmd_astに設定する。次に、前述したステップ14,15を実行した後、本プログラムを終了する。
一方、ステップ16またはステップ17の判別結果がNOのとき、すなわちTcat≧Tcatlmtであるとき、またはアクセルペダルが踏まれているときには、ステップ20に進み、目標吸入空気量の通常運転用値Gcyl_cmd_drvを、アクセル開度APおよびエンジン回転数NEに応じて、図37に示すマップを検索することにより算出する。
同図のマップにおいて、アクセル開度APの所定値AP1〜AP3は、AP1>AP2>AP3の関係が成立するように設定されており、この関係は以下の説明でも同様である。このマップでは、目標吸入空気量の通常運転用値Gcyl_cmd_drvは、エンジン回転数NEが高いほど、またはアクセル開度APが大きいほど、より大きな値に設定されている。これは、エンジン回転数NEが高いほど、またはアクセル開度APが大きいほど、エンジン3が高負荷域にあることで、より大きな吸入空気量が要求されることによる。
次いで、ステップ21に進み、目標吸入空気量Gcyl_cmdを上記通常運転値Gcyl_cmd_drvに設定する。次に、前述したステップ14,15を実行した後、本プログラムを終了する。
次に、図38を参照しながら、前述したリフト&位相制御処理について説明する。このプログラムでは、まず、ステップ30において、前回のループで設定されたリフトマスタフラグF_MSLIFTの値が「1」であるか否かを判別する。この判別結果がNOで、前回の制御モードが位相マスタモードであったときには、ステップ31に進み、偏差Δgcyl_cmdがしきい値Gcyl_accよりも大きいか否かを判別する。
この偏差Δgcyl_cmdは、目標吸入空気量の今回値と前回値との偏差[Gcyl_cmd(k)−Gcyl_cmd(k−1)]として算出される。また、しきい値Gcyl_accは、エンジン3が加速運転中であるか否かを判別するための所定値である。
ステップ31の判別結果がYESで、エンジン3が加速運転中であるときには、ステップ32で、目標カム位相のしきい値Cain_mssw_lmtを、所定の加速用値Cain_mssw1に設定する。一方、ステップ31の判別結果がNOで、エンジン3が減速運転中または定速運転中のとき、すなわち非加速運転中のときには、ステップ33で、目標カム位相のしきい値Cain_mssw_lmtを、上記加速用値Cain_mssw1よりも小さい所定の非加速用値Cain_mssw2(<Cain_mssw1)に設定する。
これらのステップ32またはステップ33に続くステップ34では、目標カム位相の前回値Cain_cmd(k−1)が上記しきい値Cain_mssw_lmtより小さいか否かを判別する。この判別結果がNOで、Cain_cmd(k−1)≧Cain_mssw_lmtのときには、位相マスタモードを実行すべき所定の低負荷域(所定の第1負荷域)にあるとして、ステップ35に進み、それを表すためにリフトマスタフラグF_MSLIFTを「0」に設定する。
一方、ステップ34の判別結果がYESで、Cain_cmd(k−1)<Cain_mssw_lmtのときには、リフトマスタモードを実行すべき所定の高負荷域(所定の第2負荷域)にあるとして、ステップ36に進み、それを表すためにリフトマスタフラグF_MSLIFTを「1」に設定する。
これらのステップ35またはステップ36に続くステップ37では、後述するように、目標バルブリフトLiftin_cmdの算出処理を実行する。次に、ステップ38で、後述するように、目標カム位相Cain_cmdの算出処理を実行した後、本プログラムを終了する。
一方、ステップ30の判別結果がYESで、前回の制御モードがリフトマスタモードであったときには、ステップ39に進み、目標バルブリフトの前回値Liftin_cmd(k−1)が所定のしきい値Liftin_mssw以下であるか否かを判別する。この判別結果がYESで、Liftin_cmd(k−1)≦Liftin_msswのときには、位相マスタモードを実行すべき所定の低負荷域にあるとして、前述したステップ35で、リフトマスタフラグF_MSLIFTを「0」に設定する。次いで、前述したステップ37,38を実行した後、本プログラムを終了する。
一方、ステップ39の判別結果がNOで、Liftin_cmd(k−1)>Liftin_msswのときには、リフトマスタモードを実行すべき所定の高負荷域にあるとして、前述したステップ36で、リフトマスタフラグF_MSLIFTを「1」に設定する。次いで、前述したステップ37,38を実行した後、本プログラムを終了する。
次に、図39を参照しながら、前述した目標バルブリフトLiftin_cmdの算出処理について説明する。このプログラムでは、まず、ステップ50において、前述したステップ30と同様に、偏差Δgcyl_cmdがしきい値Gcyl_accよりも大きいか否かを判別する。
この判別結果がYESで、エンジン3が加速運転中であるときには、ステップ51に進み、目標バルブリフトのスレーブ値Liftin_cmd_slを、目標カム位相Cain_cmdに応じて、図40に示す加速時用テーブルを検索することにより算出する。なお、この加速時用テーブルの検索では、目標カム位相Cain_cmdとして、その前回値Cain_cmd(k−1)を用いる。また、同図におけるLiftin_ref1は、前述した所定のしきい値Liftin_msswよりも小さい所定値であり、Cain_ref1は、Cain_mssw1<Cain_ref1<Cainadの関係が成立するように設定された所定値である。
同図に示すように、この加速時用テーブルにおいては、スレーブ値Liftin_cmd_slは、Cain_cmd<Cain_mssw1の範囲では、前述した所定のしきい値Liftin_msswに設定され、Cain_cmd>Cain_ref1の範囲では、所定値Liftin_ref1に設定されているとともに、Cain_mssw1≦Cain_cmd≦Cain_ref1の範囲では、目標カム位相Cain_cmdが進角側の値であるほど、より小さい値に設定されている。これは、前述したように、加速運転中、Cain_cmd≧Cain_mssw1のときには、制御モードが位相マスタモードに設定されるので、目標カム位相Cain_cmdが進角側の値であるほど、すなわちエンジン負荷が小さいほど、目標バルブリフトLiftin_cmdをより小さく設定することで、吸入空気量が小さくなるように、可変式吸気動弁機構40を制御するためである。
一方、ステップ50の判別結果がNOで、エンジン3が非加速運転中であるときには、ステップ52に進み、目標バルブリフトのスレーブ値Liftin_cmd_slを、目標カム位相Cain_cmdに応じて、図41に示す非加速時用テーブルを検索することにより算出する。なお、この非加速時用テーブルの検索でも、目標カム位相Cain_cmdとして、その前回値Cain_cmd(k−1)を用いる。
同図に示すように、この非加速時用テーブルにおいては、スレーブ値Liftin_cmd_slは、Cain_cmd<Cain_mssw2の範囲では、所定のしきい値Liftin_msswに設定され、Cain_cmd>Cain_ref1の範囲では、所定値Liftin_ref1に設定されているとともに、Cain_mssw2≦Cain_cmd≦Cain_ref1の範囲では、目標カム位相Cain_cmdが最進角値Cainad側の値であるほど、より小さい値に設定されている。これは、前述した図40の加速時用テーブルの説明で述べた理由と同じ理由に起因する。
さらに、この非加速時用テーブルと、図40の加速時用テーブルとを比較すると明らかなように、スレーブ値Liftin_cmd_slは、Cain_mssw2≦Cain_cmd≦Cain_ref1の範囲では、加速時用テーブルの方が、非加速時用テーブルよりも大きい値に設定されている。これは、加速運転時には、非加速運転時と比べて、エンジントルク制御の応答性を高める必要性があるので、吸入空気量制御の応答性を高めるべく、制御モードが位相マスタモードのときには、リフトマスタモードへの移行を早めるようにするためである。
ステップ51またはステップ52に続くステップ53では、リフトマスタフラグF_MSLIFTが「1」であるか否かを判別する。この判別結果がYESで、リフトマスタモードであるときには、ステップ54に進み、前述した式(2)〜(7),(10)〜(14)のリフトマスタモード用アルゴリズムにより、目標バルブリフトのマスタ値Liftin_cmd_msを算出する。
一方、ステップ53の判別結果がNOで、位相マスタモードであるときには、ステップ55に進み、前述した式(2)〜(7),(15)の位相マスタモード用アルゴリズムにより、目標バルブリフトのマスタ値Liftin_cmd_msを算出する。すなわち、Liftin_cmd_msが値0として算出される。
ステップ54またはステップ55に続くステップ56において、目標バルブリフトLiftin_cmdを、そのマスタ値とスレーブ値の和(Liftin_cmd_ms+Liftin_cmd_sl)に設定した後、本プログラムを終了する。
次に、図42を参照しながら、前述した目標カム位相Cain_cmdの算出処理について説明する。このプログラムでは、まず、ステップ60において、目標カム位相のスレーブ値Cain_cmd_slを、目標バルブリフトLiftin_cmdに応じて、図43に示すテーブルを検索することにより算出する。なお、このテーブルの検索では、目標バルブリフトLiftin_cmdとして、その前回値Liftin_cmd(k−1)を用いる。また、同図のLiftin_ref2は、所定のしきい値Liftin_msswよりも大きい所定値であり、Cain_ref2は、Cainrt<Cain_ref2<Cain_mssw2の関係が成立するように設定された所定値である。
同図に示すように、このテーブルにおいては、スレーブ値Cain_cmd_slは、Liftin_cmd≦Liftin_msswの範囲では、所定値Cain_mssw2に設定され、Liftin_cmd≧Liftin_ref2の範囲では、所定値Cain_ref2に設定されているとともに、Liftin_mssw<Liftin_cmd<Liftin_ref2の範囲では、目標バルブリフトLiftin_cmdが大きいほど、より遅角側の値に設定されている。これは、前述したように、Liftin_cmd>Liftin_msswのときには、制御モードがリフトマスタモードに設定されるので、目標バルブリフトLiftin_cmdが大きいほど、すなわちエンジン負荷が大きいほど、目標カム位相Cain_cmdをより遅角側の値に設定することで、吸入空気量が大きくなるように、可変式吸気動弁機構40を制御するためである。
次いで、ステップ61に進み、リフトマスタフラグF_MSLIFTが「1」であるか否かを判別する。この判別結果がNOで、位相マスタモードであるときには、ステップ62に進み、前述した式(16)〜(21),(24)〜(28)の位相マスタモード用アルゴリズムにより、目標カム位相のマスタ値Cain_cmd_msを算出する。
一方、ステップ61の判別結果がYESで、リフトマスタモードであるときには、ステップ63に進み、前述した式(16)〜(21),(29)のリフトマスタモード用アルゴリズムにより、目標カム位相のマスタ値Cain_cmd_msを算出する。すなわち、マスタ値Cain_cmd_msが値0に設定される。
ステップ62またはステップ63に続くステップ64において、目標カム位相Cain_cmdを、そのマスタ値とスレーブ値の和(Cain_cmd_ms+Cain_cmd_sl)に設定した後、本プログラムを終了する。
次に、前述したリフト制御入力Uliftinの算出処理について説明する。図44に示すように、このプログラムでは、まず、ステップ70で、前述した吸気動弁機構故障フラグF_VLVNGが「1」であるか否かを判別する。この判別結果がNOで、可変式吸気動弁機構40が正常であるときには、ステップ71に進み、リフト偏差Pole_eliftinを、バルブリフトと目標バルブリフトとの偏差(Liftin−Liftin_cmd)に設定する。
次いで、ステップ72に進み、このリフト偏差Pole_eliftinに応じて、図45に示すテーブルを検索することにより、目標値フィルタ設定パラメータPOLE_f''を算出する。同図において、Pole_f''1,Pole_f''2は、−1<Pole_f''2<Pole_f''1<0の関係が成立するように設定された所定値であり、Pole_eliftin1,Pole_eliftin2は、Pole_eliftin1<Pole_eliftin2の関係が成立するように設定された所定値である。
同図に示すように、このテーブルにおいては、目標値フィルタ設定パラメータPOLE_f''は、Pole_eliftin<Pole_eliftin1の範囲では、所定値Pole_f''1に設定され、Pole_eliftin>Pole_eliftin2の範囲では、所定値Pole_f''2に設定されているとともに、Pole_eliftin1≦Pole_eliftin≦Pole_eliftin2の範囲では、リフト偏差Pole_eliftinが大きいほど、より値−1に近い値に設定されている。これは、以下の理由による。
すなわち、前述したように、目標バルブリフトのスレーブ値Liftin_cmd_slは、加速運転中と非加速運転中とで、互いに異なる2つのテーブルを検索することにより、互いに異なる値として設定されるので、エンジン3の運転状態が加速状態と非加速状態との間で移行すると、その移行前後において、目標バルブリフトLiftin_cmdが急変することがあり、その場合には、目標バルブリフトLiftin_cmdに追従するように制御されるバルブリフトLiftinも急変し、吸入空気量が急変することで、トルク段差などが発生してしまう。したがって、そのような目標バルブリフトLiftin_cmdすなわちバルブリフトLiftinの急変を回避するために、目標値フィルタ設定パラメータPOLE_f''は、リフト偏差Pole_eliftinが大きいほど、すなわちバルブリフトLiftinと目標バルブリフトLiftin_cmdとの乖離度合いが大きいほど、より値−1に近い値になるように設定されている。これにより、目標バルブリフトのフィルタ値Liftin_cmd_fの急変を回避でき、その結果、バルブリフトLiftinの急変を回避できる。
次いで、ステップ73に進み、前述した式(34)〜(46)の制御アルゴリズムにより、リフト制御入力Uliftinを算出した後、本プログラムを終了する。
一方、ステップ70の判別結果がYESで、可変式吸気動弁機構40が故障しているときには、ステップ74に進み、リフト制御入力Uliftinを所定の故障時用値Uliftin_fsに設定した後、本プログラムを終了する。この故障時用値Uliftin_fsは、バルブリフトLiftinが所定の微小値に制御されるような値(例えば、自動変速機タイプの車両では、クリープ走行可能な値)に設定される。
次に、前述した位相制御入力Ucainの算出処理について説明する。図46に示すように、このプログラムでは、まず、ステップ80で、前述した吸気動弁機構故障フラグF_VLVNGが「1」であるか否かを判別する。この判別結果がNOで、可変式吸気動弁機構40が正常であるときには、ステップ81に進み、位相偏差Pole_ecainを、カム位相と目標カム位相との偏差(Cain−Cain_cmd)に設定する。
次いで、ステップ82に進み、この位相偏差Pole_ecainに応じて、図47に示すテーブルを検索することにより、目標値フィルタ設定パラメータPOLE_f*を算出する。同図において、Pole_f*1,Pole_f*2は、−1<Pole_f*2<Pole_f*1<0の関係が成立するように設定された所定値であり、Pole_ecain1,Pole_ecain2は、Pole_ecain1<Pole_ecain2の関係が成立するように設定された所定値である。
このテーブルにおいては、目標値フィルタ設定パラメータPOLE_f*は、Pole_ecain<Pole_ecain1の範囲では、所定値Pole_f*1に設定され、Pole_ecain>Pole_ecain2の範囲では、所定値Pole_f*2に設定されているとともに、Pole_ecain1≦Pole_ecain≦Pole_ecain2の範囲では、位相偏差Pole_ecainが大きいほど、より値−1に近い値に設定されている。これは、以下の理由による。
すなわち、前述したように、エンジン3の運転状態が非加速状態から加速状態に移行すると、その移行前後において、目標バルブリフトLiftin_cmdが急変することがあり、その場合には、目標カム位相のスレーブ値Cain_cmd_slが目標バルブリフトLiftin_cmdに応じて設定されるので、目標カム位相Cain_cmdも急変することで、これに追従するように制御されるカム位相Cainも急変する。その結果、吸入空気量が急変することで、トルク段差などが発生することがある。それを回避するために、リフト偏差Pole_ecainが大きいほど、すなわちカム位相Cainと目標カム位相Cain_cmdとの乖離度合いが大きいほど、目標値フィルタ設定パラメータPOLE_f*が、より値−1に近い値になるように設定される。これにより、非加速状態から加速状態に移行した際、目標カム位相Cain_cmdの急変を回避でき、その結果、カム位相Cainの急変を回避できる。
次いで、ステップ83に進み、前述した式(51)〜(63)の制御アルゴリズムにより、位相制御入力Ucainを算出した後、本プログラムを終了する。
一方、ステップ80の判別結果がYESで、可変式吸気動弁機構40が故障しているときには、ステップ84に進み、位相制御入力Ucainを所定の故障時用値Ucain_fsに設定した後、本プログラムを終了する。この故障時用値Ucain_fsは、カム位相Cainが最遅角値Cainrtに制御されるような値に設定される。
次に、図48を参照しながら、前述した点火時期制御処理について説明する。同図に示すように、このプログラムでは、まず、ステップ90で、前述したように、吸気動弁機構故障フラグF_VLVNGが「1」であるか否かを判別する。この判別結果がNOで、可変式吸気動弁機構40が正常であるときには、ステップ91に進み、エンジン始動フラグF_ENGSTARTが「1」であるか否かを判別する。
この判別結果がYESで、エンジン始動制御中であるときには、ステップ92に進み、点火時期Iglogを、所定の始動時用値Ig_crk(例えばBTDC10deg)に設定した後、本プログラムを終了する。
一方、ステップ91の判別結果がNOで、エンジン始動制御中でないときには、ステップ93に進み、前述したように、触媒暖機制御の実行時間Tcatが前述した所定値Tcatlmtより小さいか否かを判別する。この判別結果がYESで、Tcat<Tcatlmtのときには、ステップ94に進み、前述したように、アクセル開度APが所定値APREFより小さいか否かを判別する。
この判別結果がYESで、アクセルペダルが踏まれていないときには、触媒暖機制御を実行すべきであるとして、ステップ95に進み、触媒暖機用値Ig_astを算出する。この触媒暖機用値Ig_astは、具体的には、図49に示す式(64)〜(66)の応答指定型制御アルゴリズム(スライディングモード制御アルゴリズムまたはバックステッピング制御アルゴリズム)により、算出される。
なお、式(64)〜(66)における記号(m)付きの各離散データは、TDC信号の入力に同期してサンプリング(または算出)されたデータであることを示しており、記号mは各離散データのサンプリングサイクルの順番を表している。なお、以下の説明では、各離散データにおける記号(m)を適宜、省略する。
同図の式(64)において、ig_ast_baseは、所定の触媒暖機用の基準点火時期(例えばBTDC5deg)を表し、Krch#,Kadp#は、フィードバックゲインを表している。また、σ#は、式(65)(66)により算出される切換関数である。同式(65)において、POLE#は、−1<POLE#<0の関係が成立するように設定される応答指定パラメータであり、Enastは、式(66)により算出される追従誤差である。式(66)において、NE_astは、所定の触媒暖機用の目標回転数(例えば1800rpm)である。以上の制御アルゴリズムにより、触媒暖機用値Ig_astは、エンジン回転数NEを上記触媒暖機用の目標回転数NE_astに収束させる値として、算出される。
次いで、ステップ96に進み、点火時期Iglogを上記触媒暖機用値Ig_astに設定した後、本プログラムを終了する。
一方、ステップ93またはステップ94の判別結果がNOのとき、すなわちTcat≧Tcatlmtであるとき、またはアクセルペダルが踏まれているときには、ステップ97に進み、アクセル開度APおよびエンジン回転数NEに応じて、図50に示すマップを検索することにより、通常運転用値Ig_drvを算出する。
このマップでは、通常運転用値Ig_drvは、アクセル開度APが大きいほど、より進角度合いの小さい値に設定されている。これは、アクセル開度APが大きいほど、エンジン3が高負荷域にあることで、ノッキングが発生しやすくなるので、それを回避するためである。これに加えて、通常運転用値Ig_drvは、低回転域では、エンジン回転数NEが高いほど、より進角度合いの大きい値に設定され、高回転域では、エンジン回転数NEが高いほど、より進角度合いの小さい値に設定されている。これは、低回転域では、ノッキングが発生しにくいので、エンジン回転数NEが高いほど、点火時期をより進角度合いの大きい値に設定することで、燃焼ガス温度を高め、燃焼効率を高めるためである。一方、高回転域では、ノッキングが発生しやすくなるので、エンジン回転数NEが高いほど、点火時期をより進角度合いの小さい値に設定することで、ノッキングの発生を回避するためである。
次いで、ステップ98に進み、点火時期Iglogを上記通常運転用値Ig_drvに設定した後、本プログラムを終了する。
一方、ステップ90の判別結果がYESで、可変式吸気動弁機構40が故障しているときには、ステップ99に進み、故障時用値Ig_fsを算出する。この故障時用値Ig_fsは、具体的には、図49に示す式(67)〜(69)の応答指定型制御アルゴリズム(スライディングモード制御アルゴリズムまたはバックステッピング制御アルゴリズム)により、算出される。
同図の式(67)において、ig_fs_baseは、所定の故障時用の基準点火時期(例えばTDC+0deg)を表し、Krch##,Kadp##は、フィードバックゲインを表している。また、σ##は、式(68)(69)により算出される切換関数である。同式(68)において、POLE##は、−1<POLE##<0の関係が成立するように設定される応答指定パラメータであり、Enfsは、式(69)により算出される追従誤差である。式(69)において、NE_fsは、所定の故障時用の目標回転数(例えば2000rpm)である。以上の制御アルゴリズムにより、故障時用値Ig_fsは、エンジン回転数NEを上記故障時用の目標回転数NE_fsに収束させる値として、算出される。
次いで、ステップ100に進み、点火時期Iglogを上記故障時用値Ig_fsに設定した後、本プログラムを終了する。
以上のような本実施形態の吸入空気量制御装置1によれば、目標バルブリフトLiftin_cmdを所定のしきい値Liftin_msswと比較することにより、または目標カム位相Cain_cmdをしきい値Cain_mssw_lmtと比較することにより、吸入空気量制御の制御モードとして、リフトマスタモードまたは位相マスタモードが選択される。具体的には、Liftin_cmd>Liftin_msswのとき、またはCain_cmd≦Cain_mssw_lmtのとき、すなわちエンジン3の負荷が所定の高負荷域にあるときには、リフトマスタモードが選択され、それ以外のとき、すなわちエンジン3の負荷が所定の低負荷域にあるときには、位相マスタモードが選択される。
このリフトマスタモードでは、目標バルブリフトLiftin_cmdが、リフトマスタモード用アルゴリズム[式(2)〜(7),(10)〜(14)]で算出された目標バルブリフトのマスタ値Liftin_cmd_msと、テーブル検索により算出された目標バルブリフトのスレーブ値Liftin_cmd_slとの和として算出され、それにより、実吸入空気量Gcylが目標吸入空気量Gcyl_cmdに収束するように制御される。さらに、目標カム位相のマスタ値Cain_cmd_msが値0に設定されるとともに、スレーブ値Cain_cmd_slが、目標バルブリフトLiftin_cmdに応じて、テーブル検索により算出される。このように、エンジン3の負荷が所定の高負荷域にあることで、リフトマスタモードが選択されたときには、バルブリフト制御により、実吸入空気量Gcylを目標吸入空気量Gcyl_cmdに収束するように制御でき、吸入空気量制御のむだ時間を小さくでき、応答性を向上させることができる。これに加えて、目標カム位相Cain_cmdすなわちそのスレーブ値Cain_cmd_slが、目標バルブリフトLiftin_cmdに応じて設定されるので、そのようなバルブリフト制御に干渉しないように、カム位相Cainを制御することができる。すなわち、吸入空気量制御における高い応答性が要求される高負荷域では、カム位相制御およびバルブリフト制御が互いに干渉し合うのを回避しながら、そのような高い応答性を確保することができる。
一方、位相マスタモードでは、目標カム位相Cain_cmdが、位相マスタモード用アルゴリズム[式(16)〜(21),(24)〜(28)]で算出された目標カム位相のマスタ値Cain_cmd_msと、テーブル検索により算出された目標カム位相のスレーブ値Cain_cmd_slとの和として算出され、それにより、実吸入空気量Gcylが目標吸入空気量Gcyl_cmdに収束するように制御される。さらに、目標バルブリフトのマスタ値Liftin_cmd_msが値0に設定されるとともに、スレーブ値Liftin_cmd_slが、目標カム位相Cain_cmdに応じて、テーブル検索により算出される。このように、エンジン3の負荷が所定の低負荷域にあることで、位相マスタモードが選択されたときには、カム位相制御により、実吸入空気量Gcylを目標吸入空気量Gcyl_cmdに収束するように制御でき、吸入空気量を微小な変化量できめ細かく制御することができ、制御精度を向上させることができる。これに加えて、目標バルブリフトLiftin_cmdすなわちそのスレーブ値Liftin_cmd_slが、目標カム位相Cain_cmdに応じて設定されるので、そのようなカム位相制御に干渉しないように、バルブリフトLiftinを制御することができる。すなわち、吸入空気量制御における高い制御精度が要求される低負荷域では、カム位相制御およびバルブリフト制御が互いに干渉し合うのを回避しながら、そのような高い制御精度を確保することができる。
また、図40,41のテーブルでは、目標バルブリフトのスレーブ値Liftin_cmd_slによる吸入空気量の増減方向が、目標カム位相Cain_cmdによる吸入空気量の増減方向に合致するように、両者の関係が設定されているとともに、図43のテーブルでは、目標カム位相のスレーブ値Cain_cmd_slによる吸入空気量の増減方向が、目標バルブリフトLiftin_cmdによる吸入空気量の増減方向に合致するように、両者の関係が設定されている。これにより、カム位相制御およびバルブリフト制御が互いに干渉し合うのをより確実に回避できる。
さらに、一般に、吸気弁4の開弁タイミングがより早くなると、内部EGR量が増大し、燃焼速度が低下する。これに対して、図40,41のテーブルでは、目標カム位相Cain_cmdが進角側の値であるほど、すなわち吸気弁4の開弁タイミングがより早くなる値であるほど、目標バルブリフトのスレーブ値Liftin_cmd_slがより小さくなるように設定されているので、開弁タイミングの早期化に伴ってバルブリフトLiftinがより小さく制御されることで、筒内流動を増大させることができ、それにより、上記のような燃焼速度の低下を補償でき、安定した燃焼状態を実現することができる。さらに、吸気弁4の開弁タイミングがより進角すると、バルブリフトLiftinが必ず小さくなるように制御されるので、例えば、吸気弁4および排気弁7が同時に開弁状態になると互いに当接するようなレイアウトのエンジンに適用した場合、そのような当接を確実に回避することができる。
また、目標カム位相Cain_cmdと比較されるしきい値Cain_mssw_lmtは、エンジン3の加速運転中は、非加速運転中よりも小さな値に設定されるので、Cain_cmd≦Cain_mssw_lmtが成立しやすくなることで、位相マスタモードからリフトマスタモードへの切り換えが迅速に実行される。すなわち、エンジン3の加速運転中にあり、エンジン負荷が高い状態では、それに応じてリフトマスタモードへの移行を迅速に行うことができ、それにより、吸入空気量制御での高い応答性を迅速かつ適切に確保することができる。
さらに、目標バルブリフトLiftin_cmdのスレーブ値Liftin_cmd_slが、エンジン3の加速運転中は、非加速運転中よりも大きな値に設定されるので、ステップ39において、Liftin_cmd>Liftin_msswが成立しやすくなることで、制御モードがリフトマスタモードにある場合には、リフトマスタモードに維持される領域が拡大される。これにより、エンジン3が加速運転中にあり、エンジン負荷が高い状態では、それに応じてリフトマスタモードを実行する領域を拡大することができ、それにより、吸入空気量制御での高い応答性を迅速かつ適切に確保することができる。また、同じ理由により、ステップ60で、加速運転中は、目標カム位相のスレーブ値Cain_cmd_slが非加速運転中よりも小さな値に設定されることにより、ステップ34において、Cain_cmd≦Cain_mssw_lmtが成立しやすくなることで、上述したように、位相マスタモードからリフトマスタモードへの切り換えが迅速に実行される。
また、吸入空気量の制御モードがリフトマスタモードのときには、目標カム位相のマスタ値Cain_cmd_msが値0に設定され、位相マスタモードのときには、目標バルブリフトのマスタ値Liftin_cmd_msが値0に設定されるので、例えば、制御モードが位相マスタモードからリフトマスタモードに切り換わる際、その切り換え前のバルブリフトのマスタ値Liftin_cmd_msが、値0に設定されていることで、切り換え後にその初期値として値0が用いられることにより、目標バルブリフトLiftin_cmdが急変するのを回避できる。これとは逆に、制御モードがリフトマスタモードから位相マスタモードに切り換わる際にも、切り換え後、目標カム位相のマスタ値Cain_cmd_msの初期値として値0が用いられることにより、目標カム位相Cain_cmdが急変するのを回避できる。以上のように、制御モードの切り換えの前後における吸入空気量の制御状態の急変を回避でき、それにより、トルク段差などの発生を回避できる。
さらに、2つのマスタ値Liftin_cmd_ms,Cain_cmd_msがいずれも、前述した目標値フィルタ型2自由度スライディングモード制御アルゴリズムにより算出されるので、目標値フィルタアルゴリズムにより、実吸入空気量Gcylの目標吸入空気量Gcyl_cmdへの収束速度を適切に設定することができるとともに、スライディングモード制御アルゴリズムにより、実吸入空気量Gcylの目標吸入空気量Gcyl_cmdへの収束挙動を適切に設定することができる。
また、目標カム位相Cain_cmdおよび目標バルブリフトLiftin_cmdの算出周期すなわち制御周期ΔT1が、吸入空気量の動特性をプラントモデル[式(8),(22)]に適切に反映されるような所定の値に設定されているので、目標カム位相Cain_cmdおよび目標バルブリフトLiftin_cmdにより、吸入空気量の過渡的変化を精度よく、制御することができる。また、リフト制御入力Uliftinおよび位相制御入力Ucainの算出周期すなわち制御周期ΔT2が、目標バルブリフトLiftin_cmdおよび目標カム位相Cain_cmdの算出周期ΔT1よりも短い値に設定されているので、バルブリフトコントローラ120の制御によるバルブリフトLiftinの目標バルブリフトLiftin_cmdへの収束速度、およびカム位相コントローラ220の制御によるカム位相Cainの目標カム位相Cain_cmdへの収束速度を、第1および第2ACTASSコントローラ100,200の制御による、実吸入空気量Gcylの目標吸入空気量Gcyl_cmdへの収束速度よりも早めることができ、それにより、吸入空気量制御の安定性すなわち制御性をさらに向上させることができる。
なお、第1および第2ACTASSコントローラ100,200において、式(2)〜(7),(10)〜(15)および式(16)〜(21),(24)〜(29)の制御アルゴリズムに代えて、図51に示す式(70)〜(77)および図52に示す式(78)〜(85)の簡易型の目標値フィルタ型2自由度スライディングモード制御アルゴリズムにより、目標バルブリフトおよび目標カム位相のマスタ値Liftin_cmd_ms,Cain_cmd_msを算出してもよい。なお、式(71)におけるUadpは、式(73)により算出される適応則入力であり、式(73)のKadpは、フィードバックゲインである。これと同様に、式(79)におけるUadp’は、式(81)により算出される適応則入力であり、式(81)のKadp’は、フィードバックゲインである。
この場合、目標バルブリフトのマスタ値Liftin_cmd_msは、リフトマスタモードのときには、式(70)〜(74),(76),(77)により算出され、位相マスタモードのときには、式(70)〜(73),(75)〜(77)により値0として算出される。さらに、目標カム位相のマスタ値Cain_cmd_msは、位相マスタモードのときには、式(78)〜(82),(84),(85)により算出され、リフトマスタモードのときには、式(78)〜(81),(83)〜(85)により値0として算出される。以上の式(70)〜(77)および式(78)〜(85)の簡易型の目標値フィルタ型2自由度スライディングモード制御アルゴリズムを用いた場合、前述した外乱推定値c1,c1’を算出する必要がなくなり、適応外乱オブザーバ108,208が不要になるので、その分、ECU2の演算負荷を低減することができる。
図53に示すように、式(70)〜(77)および式(78)〜(85)の簡易型の目標値フィルタ型2自由度スライディングモード制御アルゴリズムを用いた場合でも、実吸入空気量Gcylを目標吸入空気量Gcyl_cmdに追従させるように制御できることが判る。特に、目標吸入空気量Gcyl_cmdが大きい値に設定されている場合、すなわちエンジン負荷が高い場合、制御モードとしてリフトマスタモードが選択されることにより、目標吸入空気量Gcyl_cmdの大きな変化に対して、実吸入空気量Gcylの追従性を高められることが判る。
一方、目標吸入空気量Gcyl_cmdが小さい値に設定されている場合、すなわちエンジン負荷が低い場合、制御モードとして位相マスタモードが選択されることにより、バルブリフトLiftinの変化量ΔLiftin[=Liftin(k)−Liftin(k−1)]を小さい値に制御することができることが判る。これにより、吸入空気量を微小な値で制御するときでも、バルブリフト可変機構50の個体間のばらつきや経年変化の影響を回避できることが判る。
なお、実施形態は、カム位相Cainを制御する所定の第1制御アルゴリズムとして、目標カム位相のスレーブ値Cain_cmd_slを、目標バルブリフトLiftin_cmdに応じて、テーブル検索することにより算出するアルゴリズムを用いた例であるが、所定の第1制御アルゴリズムはこれに限らず、バルブリフト制御を補助するために、カム位相Cainを制御するものであればよい。例えば、目標カム位相のスレーブ値Cain_cmd_slを、エンジン回転数NEおよびアクセル開度APなどのエンジン負荷を表すパラメータに応じて、マップ検索またはテーブル検索により算出するアルゴリズムでもよい。
また、実施形態は、バルブリフトLiftinを制御する所定の第2制御アルゴリズムとして、目標バルブリフトのスレーブ値Liftin_cmd_slを、目標カム位相Cain_cmdに応じて、テーブル検索することにより算出するアルゴリズムを用いた例であるが、所定の第2制御アルゴリズムはこれに限らず、カム位相制御を補助するために、バルブリフトLiftinを制御するものであればよい。例えば、目標バルブリフトのスレーブ値Liftin_cmd_slを、エンジン回転数NEおよびアクセル開度APなどのエンジン負荷を表すパラメータに応じて、マップ検索またはテーブル検索により算出するアルゴリズムでもよい。
さらに、実施形態は、2自由度制御アルゴリズムとして目標値フィルタ型2自由度制御アルゴリズムを用いた例であるが、2自由度制御アルゴリズムはこれに限らず、フィードバック制御アルゴリズムを含むものであればよい。例えば、2自由度制御アルゴリズムとして、フィードバック補償型2自由度制御アルゴリズムを用いてもよい。
また、実施形態は、カム位相およびバルブリフトの制御状態を表すパラメータとして、目標カム位相Cain_cmdおよび目標バルブリフトLiftin_cmdをそれぞれ用いた例であるが、これらに代えて、カム位相CainおよびバルブリフトLiftinを用いてもよい。具体的には、目標バルブリフトのスレーブ値Liftin_cmd_slを、図40,41のテーブルに代えて、スレーブ値Liftin_cmd_slがカム位相Cainに応じて設定されたテーブルを検索することにより、算出するとともに、目標カム位相のスレーブ値Cain_cmd_slを、図43のテーブルに代えて、スレーブ値Cain_cmd_slがバルブリフトLiftinに応じて設定されたテーブルを検索することにより、算出してもよい。さらに、これらのスレーブ値Liftin_cmd_sl,Cain_cmd_slを、エンジン回転数NE、アクセル開度AP、目標吸入空気量Gcyl_cmdおよび実吸入空気量Gcylのうちの1つのパラメータに応じて設定されたテーブル、または2つのパラメータに応じて設定されたマップを検索することにより、算出するようにしてもよい。
さらに、実施形態は、負荷パラメータおよび第1負荷パラメータとして、エンジン回転数NEおよびアクセル開度AP(または目標吸入空気量Gcyl_cmd)を用いた例であるが、負荷パラメータおよび第1負荷パラメータはこれに限らず、エンジン3の負荷を表すものであればよい。例えば、負荷パラメータおよび第1負荷パラメータとして、実吸入空気量Gcylなどを用いてもよい。
また、実施形態は、第2負荷パラメータとして、目標バルブリフトLiftin_cmdおよび目標カム位相Cain_cmdを用いた例であるが、第2負荷パラメータはこれに限らず、エンジン3の負荷を表すものであればよい。例えば、第2負荷パラメータとして、バルブリフトLiftinおよびカム位相Cainを用いてもよく、さらに、エンジン回転数NE、アクセル開度AP、目標吸入空気量Gcyl_cmdおよび実吸入空気量Gcylなどを用いてもよい。
さらに、ステップ34の判別において、カム位相Cainと所定値Cain_mssw_imtを比較し、ステップ39の判別において、バルブリフトLiftinと所定のしきい値Liftin_msswを比較するようにしてもよい。
さらに、エンジン3が加速状態にあるか否かを判定する手法は、偏差Δgcyl_cmdを所定値Gcyl_accと比較する実施形態の例(ステップ31)に限らず、エンジン3が加速状態にあるか否かを判定できるものであればよい。例えば、実施形態のステップ31で、実吸入空気量Gcylの今回値と前回値との偏差を所定値と比較してもよい。
また、第1および第2ACTASSコントローラ100,200の制御アルゴリズムにおいて、バルブリフトコントローラ120およびカム位相コントローラ220と同様に、状態予測器およびオンボード同定器を付加してもよく、また、パラメータスケジューラなどを付加してもよい。
さらに、実施形態は、バルブリフト可変機構として、バルブリフトを無段階(連続的)に変更可能なものを用いた例であるが、バルブリフト可変機構はこれに限らず、バルブリフトを変更可能なものであればよい。例えば、バルブリフト可変機構として、バルブリフトを複数段階で変更可能なものを用いてもよい。
また、実施形態は、カム位相可変機構として、カム位相を無段階(連続的)に変更可能なものを用いた例であるが、カム位相可変機構はこれに限らず、カム位相を変更可能なものであればよい。例えば、カム位相可変機構として、カム位相を複数段階で変更可能なものを用いてもよい。
また、本発明の吸入空気量制御装置は、実施形態の車両用の内燃機関に限らず、船舶などの各種の産業機械用の内燃機関に適用可能であることは言うまでもない。